diff --git a/CHANGELOG.md b/CHANGELOG.md index ee7e2d7..043041a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,12 @@ -## [0.170.5] - 2024-10-1 +## [0.170.6] - 2024-10-3 - bump data-sdk version, fixing workers performance. -## [0.170.4] - 2024-10-2 +## [0.170.5] - 2024-10-2 + +- bump data-sdk version, fixing workers performance. + +## [0.170.4] - 2024-10-1 - bump data-sdk version, fixing workers performance. diff --git a/dist/VERSION b/dist/VERSION index dac09d3..735624a 100644 --- a/dist/VERSION +++ b/dist/VERSION @@ -1 +1 @@ -0.170.5 +0.170.6 diff --git a/dist/assets/index-ee6f87b7.js b/dist/assets/index-3f3ea195.js similarity index 96% rename from dist/assets/index-ee6f87b7.js rename to dist/assets/index-3f3ea195.js index 13acdcf..733239d 100644 --- a/dist/assets/index-ee6f87b7.js +++ b/dist/assets/index-3f3ea195.js @@ -22,7 +22,7 @@ function _mergeNamespaces(s,o){for(var et=0;et>>1,zt=Wt[Pt];if(0>>1;Ptnt(nn,Et))Ztnt(jt,nn)?(Wt[Pt]=jt,Wt[Zt]=Et,Pt=Zt):(Wt[Pt]=nn,Wt[Kt]=Et,Pt=Kt);else if(Ztnt(jt,Et))Wt[Pt]=jt,Wt[Zt]=Et,Pt=Zt;else break e}}return Dt}function nt(Wt,Dt){var Et=Wt.sortIndex-Dt.sortIndex;return Et!==0?Et:Wt.id-Dt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var rt=performance;s.unstable_now=function(){return rt.now()}}else{var it=Date,ot=it.now();s.unstable_now=function(){return it.now()-ot}}var st=[],at=[],lt=1,ut=null,dt=3,ht=!1,ct=!1,pt=!1,ft=typeof setTimeout=="function"?setTimeout:null,gt=typeof clearTimeout=="function"?clearTimeout:null,yt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Ut(Wt){for(var Dt=et(at);Dt!==null;){if(Dt.callback===null)tt(at);else if(Dt.startTime<=Wt)tt(at),Dt.sortIndex=Dt.expirationTime,o(st,Dt);else break;Dt=et(at)}}function Ft(Wt){if(pt=!1,Ut(Wt),!ct)if(et(st)!==null)ct=!0,Nt(mt);else{var Dt=et(at);Dt!==null&&Ot(Ft,Dt.startTime-Wt)}}function mt(Wt,Dt){ct=!1,pt&&(pt=!1,gt(Lt),Lt=-1),ht=!0;var Et=dt;try{for(Ut(Dt),ut=et(st);ut!==null&&(!(ut.expirationTime>Dt)||Wt&&!Tt());){var Pt=ut.callback;if(typeof Pt=="function"){ut.callback=null,dt=ut.priorityLevel;var zt=Pt(ut.expirationTime<=Dt);Dt=s.unstable_now(),typeof zt=="function"?ut.callback=zt:ut===et(st)&&tt(st),Ut(Dt)}else tt(st);ut=et(st)}if(ut!==null)var en=!0;else{var Kt=et(at);Kt!==null&&Ot(Ft,Kt.startTime-Dt),en=!1}return en}finally{ut=null,dt=Et,ht=!1}}var vt=!1,At=null,Lt=-1,Rt=5,St=-1;function Tt(){return!(s.unstable_now()-StWt||125Pt?(Wt.sortIndex=Et,o(at,Wt),et(st)===null&&Wt===et(at)&&(pt?(gt(Lt),Lt=-1):pt=!0,Ot(Ft,Et-Pt))):(Wt.sortIndex=zt,o(st,Wt),ct||ht||(ct=!0,Nt(mt))),Wt},s.unstable_shouldYield=Tt,s.unstable_wrapCallback=function(Wt){var Dt=dt;return function(){var Et=dt;dt=Dt;try{return Wt.apply(this,arguments)}finally{dt=Et}}}})(scheduler_production_min$1);scheduler$1.exports=scheduler_production_min$1;var schedulerExports$1=scheduler$1.exports;/** + */(function(s){function o(Jt,Dt){var Et=Jt.length;Jt.push(Dt);e:for(;0>>1,zt=Jt[Pt];if(0>>1;Ptnt(nn,Et))Ztnt(jt,nn)?(Jt[Pt]=jt,Jt[Zt]=Et,Pt=Zt):(Jt[Pt]=nn,Jt[Kt]=Et,Pt=Kt);else if(Ztnt(jt,Et))Jt[Pt]=jt,Jt[Zt]=Et,Pt=Zt;else break e}}return Dt}function nt(Jt,Dt){var Et=Jt.sortIndex-Dt.sortIndex;return Et!==0?Et:Jt.id-Dt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var rt=performance;s.unstable_now=function(){return rt.now()}}else{var it=Date,ot=it.now();s.unstable_now=function(){return it.now()-ot}}var st=[],at=[],lt=1,ut=null,dt=3,ht=!1,ct=!1,pt=!1,ft=typeof setTimeout=="function"?setTimeout:null,gt=typeof clearTimeout=="function"?clearTimeout:null,yt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Ut(Jt){for(var Dt=et(at);Dt!==null;){if(Dt.callback===null)tt(at);else if(Dt.startTime<=Jt)tt(at),Dt.sortIndex=Dt.expirationTime,o(st,Dt);else break;Dt=et(at)}}function Ft(Jt){if(pt=!1,Ut(Jt),!ct)if(et(st)!==null)ct=!0,Nt(mt);else{var Dt=et(at);Dt!==null&&Ot(Ft,Dt.startTime-Jt)}}function mt(Jt,Dt){ct=!1,pt&&(pt=!1,gt(Lt),Lt=-1),ht=!0;var Et=dt;try{for(Ut(Dt),ut=et(st);ut!==null&&(!(ut.expirationTime>Dt)||Jt&&!Tt());){var Pt=ut.callback;if(typeof Pt=="function"){ut.callback=null,dt=ut.priorityLevel;var zt=Pt(ut.expirationTime<=Dt);Dt=s.unstable_now(),typeof zt=="function"?ut.callback=zt:ut===et(st)&&tt(st),Ut(Dt)}else tt(st);ut=et(st)}if(ut!==null)var en=!0;else{var Kt=et(at);Kt!==null&&Ot(Ft,Kt.startTime-Dt),en=!1}return en}finally{ut=null,dt=Et,ht=!1}}var vt=!1,At=null,Lt=-1,Rt=5,St=-1;function Tt(){return!(s.unstable_now()-StJt||125Pt?(Jt.sortIndex=Et,o(at,Jt),et(st)===null&&Jt===et(at)&&(pt?(gt(Lt),Lt=-1):pt=!0,Ot(Ft,Et-Pt))):(Jt.sortIndex=zt,o(st,Jt),ct||ht||(ct=!0,Nt(mt))),Jt},s.unstable_shouldYield=Tt,s.unstable_wrapCallback=function(Jt){var Dt=dt;return function(){var Et=dt;dt=Dt;try{return Jt.apply(this,arguments)}finally{dt=Et}}}})(scheduler_production_min$1);scheduler$1.exports=scheduler_production_min$1;var schedulerExports$1=scheduler$1.exports;/** * @license React * react-dom.production.min.js * @@ -41,7 +41,7 @@ Error generating stack: `+rt.message+` * @license * Copyright 2010-2024 Three.js Authors * SPDX-License-Identifier: MIT - */const REVISION="165",MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},CullFaceNone=0,CullFaceBack=1,CullFaceFront=2,CullFaceFrontBack=3,BasicShadowMap=0,PCFShadowMap=1,PCFSoftShadowMap=2,VSMShadowMap=3,FrontSide=0,BackSide=1,DoubleSide=2,NoBlending=0,NormalBlending=1,AdditiveBlending=2,SubtractiveBlending=3,MultiplyBlending=4,CustomBlending=5,AddEquation=100,SubtractEquation=101,ReverseSubtractEquation=102,MinEquation=103,MaxEquation=104,ZeroFactor=200,OneFactor=201,SrcColorFactor=202,OneMinusSrcColorFactor=203,SrcAlphaFactor=204,OneMinusSrcAlphaFactor=205,DstAlphaFactor=206,OneMinusDstAlphaFactor=207,DstColorFactor=208,OneMinusDstColorFactor=209,SrcAlphaSaturateFactor=210,ConstantColorFactor=211,OneMinusConstantColorFactor=212,ConstantAlphaFactor=213,OneMinusConstantAlphaFactor=214,NeverDepth=0,AlwaysDepth=1,LessDepth=2,LessEqualDepth=3,EqualDepth=4,GreaterEqualDepth=5,GreaterDepth=6,NotEqualDepth=7,MultiplyOperation=0,MixOperation=1,AddOperation=2,NoToneMapping=0,LinearToneMapping=1,ReinhardToneMapping=2,CineonToneMapping=3,ACESFilmicToneMapping=4,CustomToneMapping=5,AgXToneMapping=6,NeutralToneMapping=7,AttachedBindMode="attached",DetachedBindMode="detached",UVMapping=300,CubeReflectionMapping=301,CubeRefractionMapping=302,EquirectangularReflectionMapping=303,EquirectangularRefractionMapping=304,CubeUVReflectionMapping=306,RepeatWrapping=1e3,ClampToEdgeWrapping=1001,MirroredRepeatWrapping=1002,NearestFilter=1003,NearestMipmapNearestFilter=1004,NearestMipMapNearestFilter=1004,NearestMipmapLinearFilter=1005,NearestMipMapLinearFilter=1005,LinearFilter=1006,LinearMipmapNearestFilter=1007,LinearMipMapNearestFilter=1007,LinearMipmapLinearFilter=1008,LinearMipMapLinearFilter=1008,UnsignedByteType=1009,ByteType=1010,ShortType=1011,UnsignedShortType=1012,IntType=1013,UnsignedIntType=1014,FloatType=1015,HalfFloatType=1016,UnsignedShort4444Type=1017,UnsignedShort5551Type=1018,UnsignedInt248Type=1020,UnsignedInt5999Type=35902,AlphaFormat=1021,RGBFormat=1022,RGBAFormat=1023,LuminanceFormat=1024,LuminanceAlphaFormat=1025,DepthFormat=1026,DepthStencilFormat=1027,RedFormat=1028,RedIntegerFormat=1029,RGFormat=1030,RGIntegerFormat=1031,RGBAIntegerFormat=1033,RGB_S3TC_DXT1_Format=33776,RGBA_S3TC_DXT1_Format=33777,RGBA_S3TC_DXT3_Format=33778,RGBA_S3TC_DXT5_Format=33779,RGB_PVRTC_4BPPV1_Format=35840,RGB_PVRTC_2BPPV1_Format=35841,RGBA_PVRTC_4BPPV1_Format=35842,RGBA_PVRTC_2BPPV1_Format=35843,RGB_ETC1_Format=36196,RGB_ETC2_Format=37492,RGBA_ETC2_EAC_Format=37496,RGBA_ASTC_4x4_Format=37808,RGBA_ASTC_5x4_Format=37809,RGBA_ASTC_5x5_Format=37810,RGBA_ASTC_6x5_Format=37811,RGBA_ASTC_6x6_Format=37812,RGBA_ASTC_8x5_Format=37813,RGBA_ASTC_8x6_Format=37814,RGBA_ASTC_8x8_Format=37815,RGBA_ASTC_10x5_Format=37816,RGBA_ASTC_10x6_Format=37817,RGBA_ASTC_10x8_Format=37818,RGBA_ASTC_10x10_Format=37819,RGBA_ASTC_12x10_Format=37820,RGBA_ASTC_12x12_Format=37821,RGBA_BPTC_Format=36492,RGB_BPTC_SIGNED_Format=36494,RGB_BPTC_UNSIGNED_Format=36495,RED_RGTC1_Format=36283,SIGNED_RED_RGTC1_Format=36284,RED_GREEN_RGTC2_Format=36285,SIGNED_RED_GREEN_RGTC2_Format=36286,LoopOnce=2200,LoopRepeat=2201,LoopPingPong=2202,InterpolateDiscrete=2300,InterpolateLinear=2301,InterpolateSmooth=2302,ZeroCurvatureEnding=2400,ZeroSlopeEnding=2401,WrapAroundEnding=2402,NormalAnimationBlendMode=2500,AdditiveAnimationBlendMode=2501,TrianglesDrawMode=0,TriangleStripDrawMode=1,TriangleFanDrawMode=2,BasicDepthPacking=3200,RGBADepthPacking=3201,TangentSpaceNormalMap=0,ObjectSpaceNormalMap=1,NoColorSpace="",SRGBColorSpace$1="srgb",LinearSRGBColorSpace$1="srgb-linear",DisplayP3ColorSpace="display-p3",LinearDisplayP3ColorSpace="display-p3-linear",LinearTransfer="linear",SRGBTransfer="srgb",Rec709Primaries="rec709",P3Primaries="p3",ZeroStencilOp=0,KeepStencilOp=7680,ReplaceStencilOp=7681,IncrementStencilOp=7682,DecrementStencilOp=7683,IncrementWrapStencilOp=34055,DecrementWrapStencilOp=34056,InvertStencilOp=5386,NeverStencilFunc=512,LessStencilFunc=513,EqualStencilFunc=514,LessEqualStencilFunc=515,GreaterStencilFunc=516,NotEqualStencilFunc=517,GreaterEqualStencilFunc=518,AlwaysStencilFunc=519,NeverCompare=512,LessCompare=513,EqualCompare=514,LessEqualCompare=515,GreaterCompare=516,NotEqualCompare=517,GreaterEqualCompare=518,AlwaysCompare=519,StaticDrawUsage=35044,DynamicDrawUsage=35048,StreamDrawUsage=35040,StaticReadUsage=35045,DynamicReadUsage=35049,StreamReadUsage=35041,StaticCopyUsage=35046,DynamicCopyUsage=35050,StreamCopyUsage=35042,GLSL1="100",GLSL3="300 es",WebGLCoordinateSystem=2e3,WebGPUCoordinateSystem=2001;let EventDispatcher$1=class{addEventListener(o,et){this._listeners===void 0&&(this._listeners={});const tt=this._listeners;tt[o]===void 0&&(tt[o]=[]),tt[o].indexOf(et)===-1&&tt[o].push(et)}hasEventListener(o,et){if(this._listeners===void 0)return!1;const tt=this._listeners;return tt[o]!==void 0&&tt[o].indexOf(et)!==-1}removeEventListener(o,et){if(this._listeners===void 0)return;const nt=this._listeners[o];if(nt!==void 0){const rt=nt.indexOf(et);rt!==-1&&nt.splice(rt,1)}}dispatchEvent(o){if(this._listeners===void 0)return;const tt=this._listeners[o.type];if(tt!==void 0){o.target=this;const nt=tt.slice(0);for(let rt=0,it=nt.length;rt>8&255]+_lut[s>>16&255]+_lut[s>>24&255]+"-"+_lut[o&255]+_lut[o>>8&255]+"-"+_lut[o>>16&15|64]+_lut[o>>24&255]+"-"+_lut[et&63|128]+_lut[et>>8&255]+"-"+_lut[et>>16&255]+_lut[et>>24&255]+_lut[tt&255]+_lut[tt>>8&255]+_lut[tt>>16&255]+_lut[tt>>24&255]).toLowerCase()}function clamp$4(s,o,et){return Math.max(o,Math.min(et,s))}function euclideanModulo(s,o){return(s%o+o)%o}function mapLinear(s,o,et,tt,nt){return tt+(s-o)*(nt-tt)/(et-o)}function inverseLerp(s,o,et){return s!==o?(et-s)/(o-s):0}function lerp(s,o,et){return(1-et)*s+et*o}function damp(s,o,et,tt){return lerp(s,o,1-Math.exp(-et*tt))}function pingpong(s,o=1){return o-Math.abs(euclideanModulo(s,o*2)-o)}function smoothstep(s,o,et){return s<=o?0:s>=et?1:(s=(s-o)/(et-o),s*s*(3-2*s))}function smootherstep(s,o,et){return s<=o?0:s>=et?1:(s=(s-o)/(et-o),s*s*s*(s*(s*6-15)+10))}function randInt(s,o){return s+Math.floor(Math.random()*(o-s+1))}function randFloat(s,o){return s+Math.random()*(o-s)}function randFloatSpread(s){return s*(.5-Math.random())}function seededRandom(s){s!==void 0&&(_seed=s);let o=_seed+=1831565813;return o=Math.imul(o^o>>>15,o|1),o^=o+Math.imul(o^o>>>7,o|61),((o^o>>>14)>>>0)/4294967296}function degToRad(s){return s*DEG2RAD$1}function radToDeg(s){return s*RAD2DEG}function isPowerOfTwo(s){return(s&s-1)===0&&s!==0}function ceilPowerOfTwo(s){return Math.pow(2,Math.ceil(Math.log(s)/Math.LN2))}function floorPowerOfTwo(s){return Math.pow(2,Math.floor(Math.log(s)/Math.LN2))}function setQuaternionFromProperEuler(s,o,et,tt,nt){const rt=Math.cos,it=Math.sin,ot=rt(et/2),st=it(et/2),at=rt((o+tt)/2),lt=it((o+tt)/2),ut=rt((o-tt)/2),dt=it((o-tt)/2),ht=rt((tt-o)/2),ct=it((tt-o)/2);switch(nt){case"XYX":s.set(ot*lt,st*ut,st*dt,ot*at);break;case"YZY":s.set(st*dt,ot*lt,st*ut,ot*at);break;case"ZXZ":s.set(st*ut,st*dt,ot*lt,ot*at);break;case"XZX":s.set(ot*lt,st*ct,st*ht,ot*at);break;case"YXY":s.set(st*ht,ot*lt,st*ct,ot*at);break;case"ZYZ":s.set(st*ct,st*ht,ot*lt,ot*at);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+nt)}}function denormalize(s,o){switch(o.constructor){case Float32Array:return s;case Uint32Array:return s/4294967295;case Uint16Array:return s/65535;case Uint8Array:return s/255;case Int32Array:return Math.max(s/2147483647,-1);case Int16Array:return Math.max(s/32767,-1);case Int8Array:return Math.max(s/127,-1);default:throw new Error("Invalid component type.")}}function normalize(s,o){switch(o.constructor){case Float32Array:return s;case Uint32Array:return Math.round(s*4294967295);case Uint16Array:return Math.round(s*65535);case Uint8Array:return Math.round(s*255);case Int32Array:return Math.round(s*2147483647);case Int16Array:return Math.round(s*32767);case Int8Array:return Math.round(s*127);default:throw new Error("Invalid component type.")}}const MathUtils={DEG2RAD:DEG2RAD$1,RAD2DEG,generateUUID,clamp:clamp$4,euclideanModulo,mapLinear,inverseLerp,lerp,damp,pingpong,smoothstep,smootherstep,randInt,randFloat,randFloatSpread,seededRandom,degToRad,radToDeg,isPowerOfTwo,ceilPowerOfTwo,floorPowerOfTwo,setQuaternionFromProperEuler,normalize,denormalize};class Vector2{constructor(o=0,et=0){Vector2.prototype.isVector2=!0,this.x=o,this.y=et}get width(){return this.x}set width(o){this.x=o}get height(){return this.y}set height(o){this.y=o}set(o,et){return this.x=o,this.y=et,this}setScalar(o){return this.x=o,this.y=o,this}setX(o){return this.x=o,this}setY(o){return this.y=o,this}setComponent(o,et){switch(o){case 0:this.x=et;break;case 1:this.y=et;break;default:throw new Error("index is out of range: "+o)}return this}getComponent(o){switch(o){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+o)}}clone(){return new this.constructor(this.x,this.y)}copy(o){return this.x=o.x,this.y=o.y,this}add(o){return this.x+=o.x,this.y+=o.y,this}addScalar(o){return this.x+=o,this.y+=o,this}addVectors(o,et){return this.x=o.x+et.x,this.y=o.y+et.y,this}addScaledVector(o,et){return this.x+=o.x*et,this.y+=o.y*et,this}sub(o){return this.x-=o.x,this.y-=o.y,this}subScalar(o){return this.x-=o,this.y-=o,this}subVectors(o,et){return this.x=o.x-et.x,this.y=o.y-et.y,this}multiply(o){return this.x*=o.x,this.y*=o.y,this}multiplyScalar(o){return this.x*=o,this.y*=o,this}divide(o){return this.x/=o.x,this.y/=o.y,this}divideScalar(o){return this.multiplyScalar(1/o)}applyMatrix3(o){const et=this.x,tt=this.y,nt=o.elements;return this.x=nt[0]*et+nt[3]*tt+nt[6],this.y=nt[1]*et+nt[4]*tt+nt[7],this}min(o){return this.x=Math.min(this.x,o.x),this.y=Math.min(this.y,o.y),this}max(o){return this.x=Math.max(this.x,o.x),this.y=Math.max(this.y,o.y),this}clamp(o,et){return this.x=Math.max(o.x,Math.min(et.x,this.x)),this.y=Math.max(o.y,Math.min(et.y,this.y)),this}clampScalar(o,et){return this.x=Math.max(o,Math.min(et,this.x)),this.y=Math.max(o,Math.min(et,this.y)),this}clampLength(o,et){const tt=this.length();return this.divideScalar(tt||1).multiplyScalar(Math.max(o,Math.min(et,tt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(o){return this.x*o.x+this.y*o.y}cross(o){return this.x*o.y-this.y*o.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(o){const et=Math.sqrt(this.lengthSq()*o.lengthSq());if(et===0)return Math.PI/2;const tt=this.dot(o)/et;return Math.acos(clamp$4(tt,-1,1))}distanceTo(o){return Math.sqrt(this.distanceToSquared(o))}distanceToSquared(o){const et=this.x-o.x,tt=this.y-o.y;return et*et+tt*tt}manhattanDistanceTo(o){return Math.abs(this.x-o.x)+Math.abs(this.y-o.y)}setLength(o){return this.normalize().multiplyScalar(o)}lerp(o,et){return this.x+=(o.x-this.x)*et,this.y+=(o.y-this.y)*et,this}lerpVectors(o,et,tt){return this.x=o.x+(et.x-o.x)*tt,this.y=o.y+(et.y-o.y)*tt,this}equals(o){return o.x===this.x&&o.y===this.y}fromArray(o,et=0){return this.x=o[et],this.y=o[et+1],this}toArray(o=[],et=0){return o[et]=this.x,o[et+1]=this.y,o}fromBufferAttribute(o,et){return this.x=o.getX(et),this.y=o.getY(et),this}rotateAround(o,et){const tt=Math.cos(et),nt=Math.sin(et),rt=this.x-o.x,it=this.y-o.y;return this.x=rt*tt-it*nt+o.x,this.y=rt*nt+it*tt+o.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Matrix3{constructor(o,et,tt,nt,rt,it,ot,st,at){Matrix3.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],o!==void 0&&this.set(o,et,tt,nt,rt,it,ot,st,at)}set(o,et,tt,nt,rt,it,ot,st,at){const lt=this.elements;return lt[0]=o,lt[1]=nt,lt[2]=ot,lt[3]=et,lt[4]=rt,lt[5]=st,lt[6]=tt,lt[7]=it,lt[8]=at,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(o){const et=this.elements,tt=o.elements;return et[0]=tt[0],et[1]=tt[1],et[2]=tt[2],et[3]=tt[3],et[4]=tt[4],et[5]=tt[5],et[6]=tt[6],et[7]=tt[7],et[8]=tt[8],this}extractBasis(o,et,tt){return o.setFromMatrix3Column(this,0),et.setFromMatrix3Column(this,1),tt.setFromMatrix3Column(this,2),this}setFromMatrix4(o){const et=o.elements;return this.set(et[0],et[4],et[8],et[1],et[5],et[9],et[2],et[6],et[10]),this}multiply(o){return this.multiplyMatrices(this,o)}premultiply(o){return this.multiplyMatrices(o,this)}multiplyMatrices(o,et){const tt=o.elements,nt=et.elements,rt=this.elements,it=tt[0],ot=tt[3],st=tt[6],at=tt[1],lt=tt[4],ut=tt[7],dt=tt[2],ht=tt[5],ct=tt[8],pt=nt[0],ft=nt[3],gt=nt[6],yt=nt[1],Ut=nt[4],Ft=nt[7],mt=nt[2],vt=nt[5],At=nt[8];return rt[0]=it*pt+ot*yt+st*mt,rt[3]=it*ft+ot*Ut+st*vt,rt[6]=it*gt+ot*Ft+st*At,rt[1]=at*pt+lt*yt+ut*mt,rt[4]=at*ft+lt*Ut+ut*vt,rt[7]=at*gt+lt*Ft+ut*At,rt[2]=dt*pt+ht*yt+ct*mt,rt[5]=dt*ft+ht*Ut+ct*vt,rt[8]=dt*gt+ht*Ft+ct*At,this}multiplyScalar(o){const et=this.elements;return et[0]*=o,et[3]*=o,et[6]*=o,et[1]*=o,et[4]*=o,et[7]*=o,et[2]*=o,et[5]*=o,et[8]*=o,this}determinant(){const o=this.elements,et=o[0],tt=o[1],nt=o[2],rt=o[3],it=o[4],ot=o[5],st=o[6],at=o[7],lt=o[8];return et*it*lt-et*ot*at-tt*rt*lt+tt*ot*st+nt*rt*at-nt*it*st}invert(){const o=this.elements,et=o[0],tt=o[1],nt=o[2],rt=o[3],it=o[4],ot=o[5],st=o[6],at=o[7],lt=o[8],ut=lt*it-ot*at,dt=ot*st-lt*rt,ht=at*rt-it*st,ct=et*ut+tt*dt+nt*ht;if(ct===0)return this.set(0,0,0,0,0,0,0,0,0);const pt=1/ct;return o[0]=ut*pt,o[1]=(nt*at-lt*tt)*pt,o[2]=(ot*tt-nt*it)*pt,o[3]=dt*pt,o[4]=(lt*et-nt*st)*pt,o[5]=(nt*rt-ot*et)*pt,o[6]=ht*pt,o[7]=(tt*st-at*et)*pt,o[8]=(it*et-tt*rt)*pt,this}transpose(){let o;const et=this.elements;return o=et[1],et[1]=et[3],et[3]=o,o=et[2],et[2]=et[6],et[6]=o,o=et[5],et[5]=et[7],et[7]=o,this}getNormalMatrix(o){return this.setFromMatrix4(o).invert().transpose()}transposeIntoArray(o){const et=this.elements;return o[0]=et[0],o[1]=et[3],o[2]=et[6],o[3]=et[1],o[4]=et[4],o[5]=et[7],o[6]=et[2],o[7]=et[5],o[8]=et[8],this}setUvTransform(o,et,tt,nt,rt,it,ot){const st=Math.cos(rt),at=Math.sin(rt);return this.set(tt*st,tt*at,-tt*(st*it+at*ot)+it+o,-nt*at,nt*st,-nt*(-at*it+st*ot)+ot+et,0,0,1),this}scale(o,et){return this.premultiply(_m3.makeScale(o,et)),this}rotate(o){return this.premultiply(_m3.makeRotation(-o)),this}translate(o,et){return this.premultiply(_m3.makeTranslation(o,et)),this}makeTranslation(o,et){return o.isVector2?this.set(1,0,o.x,0,1,o.y,0,0,1):this.set(1,0,o,0,1,et,0,0,1),this}makeRotation(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(et,-tt,0,tt,et,0,0,0,1),this}makeScale(o,et){return this.set(o,0,0,0,et,0,0,0,1),this}equals(o){const et=this.elements,tt=o.elements;for(let nt=0;nt<9;nt++)if(et[nt]!==tt[nt])return!1;return!0}fromArray(o,et=0){for(let tt=0;tt<9;tt++)this.elements[tt]=o[tt+et];return this}toArray(o=[],et=0){const tt=this.elements;return o[et]=tt[0],o[et+1]=tt[1],o[et+2]=tt[2],o[et+3]=tt[3],o[et+4]=tt[4],o[et+5]=tt[5],o[et+6]=tt[6],o[et+7]=tt[7],o[et+8]=tt[8],o}clone(){return new this.constructor().fromArray(this.elements)}}const _m3=new Matrix3;function arrayNeedsUint32(s){for(let o=s.length-1;o>=0;--o)if(s[o]>=65535)return!0;return!1}const TYPED_ARRAYS={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function getTypedArray(s,o){return new TYPED_ARRAYS[s](o)}function createElementNS(s){return document.createElementNS("http://www.w3.org/1999/xhtml",s)}function createCanvasElement(){const s=createElementNS("canvas");return s.style.display="block",s}const _cache={};function warnOnce(s){s in _cache||(_cache[s]=!0,console.warn(s))}function probeAsync(s,o,et){return new Promise(function(tt,nt){function rt(){switch(s.clientWaitSync(o,s.SYNC_FLUSH_COMMANDS_BIT,0)){case s.WAIT_FAILED:nt();break;case s.TIMEOUT_EXPIRED:setTimeout(rt,et);break;default:tt()}}setTimeout(rt,et)})}const LINEAR_SRGB_TO_LINEAR_DISPLAY_P3=new Matrix3().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),LINEAR_DISPLAY_P3_TO_LINEAR_SRGB=new Matrix3().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),COLOR_SPACES={[LinearSRGBColorSpace$1]:{transfer:LinearTransfer,primaries:Rec709Primaries,toReference:s=>s,fromReference:s=>s},[SRGBColorSpace$1]:{transfer:SRGBTransfer,primaries:Rec709Primaries,toReference:s=>s.convertSRGBToLinear(),fromReference:s=>s.convertLinearToSRGB()},[LinearDisplayP3ColorSpace]:{transfer:LinearTransfer,primaries:P3Primaries,toReference:s=>s.applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),fromReference:s=>s.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3)},[DisplayP3ColorSpace]:{transfer:SRGBTransfer,primaries:P3Primaries,toReference:s=>s.convertSRGBToLinear().applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),fromReference:s=>s.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3).convertLinearToSRGB()}},SUPPORTED_WORKING_COLOR_SPACES=new Set([LinearSRGBColorSpace$1,LinearDisplayP3ColorSpace]),ColorManagement={enabled:!0,_workingColorSpace:LinearSRGBColorSpace$1,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(s){if(!SUPPORTED_WORKING_COLOR_SPACES.has(s))throw new Error(`Unsupported working color space, "${s}".`);this._workingColorSpace=s},convert:function(s,o,et){if(this.enabled===!1||o===et||!o||!et)return s;const tt=COLOR_SPACES[o].toReference,nt=COLOR_SPACES[et].fromReference;return nt(tt(s))},fromWorkingColorSpace:function(s,o){return this.convert(s,this._workingColorSpace,o)},toWorkingColorSpace:function(s,o){return this.convert(s,o,this._workingColorSpace)},getPrimaries:function(s){return COLOR_SPACES[s].primaries},getTransfer:function(s){return s===NoColorSpace?LinearTransfer:COLOR_SPACES[s].transfer}};function SRGBToLinear(s){return s<.04045?s*.0773993808:Math.pow(s*.9478672986+.0521327014,2.4)}function LinearToSRGB(s){return s<.0031308?s*12.92:1.055*Math.pow(s,.41666)-.055}let _canvas;class ImageUtils{static getDataURL(o){if(/^data:/i.test(o.src)||typeof HTMLCanvasElement>"u")return o.src;let et;if(o instanceof HTMLCanvasElement)et=o;else{_canvas===void 0&&(_canvas=createElementNS("canvas")),_canvas.width=o.width,_canvas.height=o.height;const tt=_canvas.getContext("2d");o instanceof ImageData?tt.putImageData(o,0,0):tt.drawImage(o,0,0,o.width,o.height),et=_canvas}return et.width>2048||et.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",o),et.toDataURL("image/jpeg",.6)):et.toDataURL("image/png")}static sRGBToLinear(o){if(typeof HTMLImageElement<"u"&&o instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&o instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&o instanceof ImageBitmap){const et=createElementNS("canvas");et.width=o.width,et.height=o.height;const tt=et.getContext("2d");tt.drawImage(o,0,0,o.width,o.height);const nt=tt.getImageData(0,0,o.width,o.height),rt=nt.data;for(let it=0;it0&&(tt.userData=this.userData),et||(o.textures[this.uuid]=tt),tt}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(o){if(this.mapping!==UVMapping)return o;if(o.applyMatrix3(this.matrix),o.x<0||o.x>1)switch(this.wrapS){case RepeatWrapping:o.x=o.x-Math.floor(o.x);break;case ClampToEdgeWrapping:o.x=o.x<0?0:1;break;case MirroredRepeatWrapping:Math.abs(Math.floor(o.x)%2)===1?o.x=Math.ceil(o.x)-o.x:o.x=o.x-Math.floor(o.x);break}if(o.y<0||o.y>1)switch(this.wrapT){case RepeatWrapping:o.y=o.y-Math.floor(o.y);break;case ClampToEdgeWrapping:o.y=o.y<0?0:1;break;case MirroredRepeatWrapping:Math.abs(Math.floor(o.y)%2)===1?o.y=Math.ceil(o.y)-o.y:o.y=o.y-Math.floor(o.y);break}return this.flipY&&(o.y=1-o.y),o}set needsUpdate(o){o===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(o){o===!0&&this.pmremVersion++}}Texture.DEFAULT_IMAGE=null;Texture.DEFAULT_MAPPING=UVMapping;Texture.DEFAULT_ANISOTROPY=1;class Vector4{constructor(o=0,et=0,tt=0,nt=1){Vector4.prototype.isVector4=!0,this.x=o,this.y=et,this.z=tt,this.w=nt}get width(){return this.z}set width(o){this.z=o}get height(){return this.w}set height(o){this.w=o}set(o,et,tt,nt){return this.x=o,this.y=et,this.z=tt,this.w=nt,this}setScalar(o){return this.x=o,this.y=o,this.z=o,this.w=o,this}setX(o){return this.x=o,this}setY(o){return this.y=o,this}setZ(o){return this.z=o,this}setW(o){return this.w=o,this}setComponent(o,et){switch(o){case 0:this.x=et;break;case 1:this.y=et;break;case 2:this.z=et;break;case 3:this.w=et;break;default:throw new Error("index is out of range: "+o)}return this}getComponent(o){switch(o){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+o)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(o){return this.x=o.x,this.y=o.y,this.z=o.z,this.w=o.w!==void 0?o.w:1,this}add(o){return this.x+=o.x,this.y+=o.y,this.z+=o.z,this.w+=o.w,this}addScalar(o){return this.x+=o,this.y+=o,this.z+=o,this.w+=o,this}addVectors(o,et){return this.x=o.x+et.x,this.y=o.y+et.y,this.z=o.z+et.z,this.w=o.w+et.w,this}addScaledVector(o,et){return this.x+=o.x*et,this.y+=o.y*et,this.z+=o.z*et,this.w+=o.w*et,this}sub(o){return this.x-=o.x,this.y-=o.y,this.z-=o.z,this.w-=o.w,this}subScalar(o){return this.x-=o,this.y-=o,this.z-=o,this.w-=o,this}subVectors(o,et){return this.x=o.x-et.x,this.y=o.y-et.y,this.z=o.z-et.z,this.w=o.w-et.w,this}multiply(o){return this.x*=o.x,this.y*=o.y,this.z*=o.z,this.w*=o.w,this}multiplyScalar(o){return this.x*=o,this.y*=o,this.z*=o,this.w*=o,this}applyMatrix4(o){const et=this.x,tt=this.y,nt=this.z,rt=this.w,it=o.elements;return this.x=it[0]*et+it[4]*tt+it[8]*nt+it[12]*rt,this.y=it[1]*et+it[5]*tt+it[9]*nt+it[13]*rt,this.z=it[2]*et+it[6]*tt+it[10]*nt+it[14]*rt,this.w=it[3]*et+it[7]*tt+it[11]*nt+it[15]*rt,this}divideScalar(o){return this.multiplyScalar(1/o)}setAxisAngleFromQuaternion(o){this.w=2*Math.acos(o.w);const et=Math.sqrt(1-o.w*o.w);return et<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=o.x/et,this.y=o.y/et,this.z=o.z/et),this}setAxisAngleFromRotationMatrix(o){let et,tt,nt,rt;const st=o.elements,at=st[0],lt=st[4],ut=st[8],dt=st[1],ht=st[5],ct=st[9],pt=st[2],ft=st[6],gt=st[10];if(Math.abs(lt-dt)<.01&&Math.abs(ut-pt)<.01&&Math.abs(ct-ft)<.01){if(Math.abs(lt+dt)<.1&&Math.abs(ut+pt)<.1&&Math.abs(ct+ft)<.1&&Math.abs(at+ht+gt-3)<.1)return this.set(1,0,0,0),this;et=Math.PI;const Ut=(at+1)/2,Ft=(ht+1)/2,mt=(gt+1)/2,vt=(lt+dt)/4,At=(ut+pt)/4,Lt=(ct+ft)/4;return Ut>Ft&&Ut>mt?Ut<.01?(tt=0,nt=.707106781,rt=.707106781):(tt=Math.sqrt(Ut),nt=vt/tt,rt=At/tt):Ft>mt?Ft<.01?(tt=.707106781,nt=0,rt=.707106781):(nt=Math.sqrt(Ft),tt=vt/nt,rt=Lt/nt):mt<.01?(tt=.707106781,nt=.707106781,rt=0):(rt=Math.sqrt(mt),tt=At/rt,nt=Lt/rt),this.set(tt,nt,rt,et),this}let yt=Math.sqrt((ft-ct)*(ft-ct)+(ut-pt)*(ut-pt)+(dt-lt)*(dt-lt));return Math.abs(yt)<.001&&(yt=1),this.x=(ft-ct)/yt,this.y=(ut-pt)/yt,this.z=(dt-lt)/yt,this.w=Math.acos((at+ht+gt-1)/2),this}min(o){return this.x=Math.min(this.x,o.x),this.y=Math.min(this.y,o.y),this.z=Math.min(this.z,o.z),this.w=Math.min(this.w,o.w),this}max(o){return this.x=Math.max(this.x,o.x),this.y=Math.max(this.y,o.y),this.z=Math.max(this.z,o.z),this.w=Math.max(this.w,o.w),this}clamp(o,et){return this.x=Math.max(o.x,Math.min(et.x,this.x)),this.y=Math.max(o.y,Math.min(et.y,this.y)),this.z=Math.max(o.z,Math.min(et.z,this.z)),this.w=Math.max(o.w,Math.min(et.w,this.w)),this}clampScalar(o,et){return this.x=Math.max(o,Math.min(et,this.x)),this.y=Math.max(o,Math.min(et,this.y)),this.z=Math.max(o,Math.min(et,this.z)),this.w=Math.max(o,Math.min(et,this.w)),this}clampLength(o,et){const tt=this.length();return this.divideScalar(tt||1).multiplyScalar(Math.max(o,Math.min(et,tt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(o){return this.x*o.x+this.y*o.y+this.z*o.z+this.w*o.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(o){return this.normalize().multiplyScalar(o)}lerp(o,et){return this.x+=(o.x-this.x)*et,this.y+=(o.y-this.y)*et,this.z+=(o.z-this.z)*et,this.w+=(o.w-this.w)*et,this}lerpVectors(o,et,tt){return this.x=o.x+(et.x-o.x)*tt,this.y=o.y+(et.y-o.y)*tt,this.z=o.z+(et.z-o.z)*tt,this.w=o.w+(et.w-o.w)*tt,this}equals(o){return o.x===this.x&&o.y===this.y&&o.z===this.z&&o.w===this.w}fromArray(o,et=0){return this.x=o[et],this.y=o[et+1],this.z=o[et+2],this.w=o[et+3],this}toArray(o=[],et=0){return o[et]=this.x,o[et+1]=this.y,o[et+2]=this.z,o[et+3]=this.w,o}fromBufferAttribute(o,et){return this.x=o.getX(et),this.y=o.getY(et),this.z=o.getZ(et),this.w=o.getW(et),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class RenderTarget extends EventDispatcher$1{constructor(o=1,et=1,tt={}){super(),this.isRenderTarget=!0,this.width=o,this.height=et,this.depth=1,this.scissor=new Vector4(0,0,o,et),this.scissorTest=!1,this.viewport=new Vector4(0,0,o,et);const nt={width:o,height:et,depth:1};tt=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:LinearFilter,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},tt);const rt=new Texture(nt,tt.mapping,tt.wrapS,tt.wrapT,tt.magFilter,tt.minFilter,tt.format,tt.type,tt.anisotropy,tt.colorSpace);rt.flipY=!1,rt.generateMipmaps=tt.generateMipmaps,rt.internalFormat=tt.internalFormat,this.textures=[];const it=tt.count;for(let ot=0;ot=0?1:-1,Ut=1-gt*gt;if(Ut>Number.EPSILON){const mt=Math.sqrt(Ut),vt=Math.atan2(mt,gt*yt);ft=Math.sin(ft*vt)/mt,ot=Math.sin(ot*vt)/mt}const Ft=ot*yt;if(st=st*ft+dt*Ft,at=at*ft+ht*Ft,lt=lt*ft+ct*Ft,ut=ut*ft+pt*Ft,ft===1-ot){const mt=1/Math.sqrt(st*st+at*at+lt*lt+ut*ut);st*=mt,at*=mt,lt*=mt,ut*=mt}}o[et]=st,o[et+1]=at,o[et+2]=lt,o[et+3]=ut}static multiplyQuaternionsFlat(o,et,tt,nt,rt,it){const ot=tt[nt],st=tt[nt+1],at=tt[nt+2],lt=tt[nt+3],ut=rt[it],dt=rt[it+1],ht=rt[it+2],ct=rt[it+3];return o[et]=ot*ct+lt*ut+st*ht-at*dt,o[et+1]=st*ct+lt*dt+at*ut-ot*ht,o[et+2]=at*ct+lt*ht+ot*dt-st*ut,o[et+3]=lt*ct-ot*ut-st*dt-at*ht,o}get x(){return this._x}set x(o){this._x=o,this._onChangeCallback()}get y(){return this._y}set y(o){this._y=o,this._onChangeCallback()}get z(){return this._z}set z(o){this._z=o,this._onChangeCallback()}get w(){return this._w}set w(o){this._w=o,this._onChangeCallback()}set(o,et,tt,nt){return this._x=o,this._y=et,this._z=tt,this._w=nt,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(o){return this._x=o.x,this._y=o.y,this._z=o.z,this._w=o.w,this._onChangeCallback(),this}setFromEuler(o,et=!0){const tt=o._x,nt=o._y,rt=o._z,it=o._order,ot=Math.cos,st=Math.sin,at=ot(tt/2),lt=ot(nt/2),ut=ot(rt/2),dt=st(tt/2),ht=st(nt/2),ct=st(rt/2);switch(it){case"XYZ":this._x=dt*lt*ut+at*ht*ct,this._y=at*ht*ut-dt*lt*ct,this._z=at*lt*ct+dt*ht*ut,this._w=at*lt*ut-dt*ht*ct;break;case"YXZ":this._x=dt*lt*ut+at*ht*ct,this._y=at*ht*ut-dt*lt*ct,this._z=at*lt*ct-dt*ht*ut,this._w=at*lt*ut+dt*ht*ct;break;case"ZXY":this._x=dt*lt*ut-at*ht*ct,this._y=at*ht*ut+dt*lt*ct,this._z=at*lt*ct+dt*ht*ut,this._w=at*lt*ut-dt*ht*ct;break;case"ZYX":this._x=dt*lt*ut-at*ht*ct,this._y=at*ht*ut+dt*lt*ct,this._z=at*lt*ct-dt*ht*ut,this._w=at*lt*ut+dt*ht*ct;break;case"YZX":this._x=dt*lt*ut+at*ht*ct,this._y=at*ht*ut+dt*lt*ct,this._z=at*lt*ct-dt*ht*ut,this._w=at*lt*ut-dt*ht*ct;break;case"XZY":this._x=dt*lt*ut-at*ht*ct,this._y=at*ht*ut-dt*lt*ct,this._z=at*lt*ct+dt*ht*ut,this._w=at*lt*ut+dt*ht*ct;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+it)}return et===!0&&this._onChangeCallback(),this}setFromAxisAngle(o,et){const tt=et/2,nt=Math.sin(tt);return this._x=o.x*nt,this._y=o.y*nt,this._z=o.z*nt,this._w=Math.cos(tt),this._onChangeCallback(),this}setFromRotationMatrix(o){const et=o.elements,tt=et[0],nt=et[4],rt=et[8],it=et[1],ot=et[5],st=et[9],at=et[2],lt=et[6],ut=et[10],dt=tt+ot+ut;if(dt>0){const ht=.5/Math.sqrt(dt+1);this._w=.25/ht,this._x=(lt-st)*ht,this._y=(rt-at)*ht,this._z=(it-nt)*ht}else if(tt>ot&&tt>ut){const ht=2*Math.sqrt(1+tt-ot-ut);this._w=(lt-st)/ht,this._x=.25*ht,this._y=(nt+it)/ht,this._z=(rt+at)/ht}else if(ot>ut){const ht=2*Math.sqrt(1+ot-tt-ut);this._w=(rt-at)/ht,this._x=(nt+it)/ht,this._y=.25*ht,this._z=(st+lt)/ht}else{const ht=2*Math.sqrt(1+ut-tt-ot);this._w=(it-nt)/ht,this._x=(rt+at)/ht,this._y=(st+lt)/ht,this._z=.25*ht}return this._onChangeCallback(),this}setFromUnitVectors(o,et){let tt=o.dot(et)+1;return ttMath.abs(o.z)?(this._x=-o.y,this._y=o.x,this._z=0,this._w=tt):(this._x=0,this._y=-o.z,this._z=o.y,this._w=tt)):(this._x=o.y*et.z-o.z*et.y,this._y=o.z*et.x-o.x*et.z,this._z=o.x*et.y-o.y*et.x,this._w=tt),this.normalize()}angleTo(o){return 2*Math.acos(Math.abs(clamp$4(this.dot(o),-1,1)))}rotateTowards(o,et){const tt=this.angleTo(o);if(tt===0)return this;const nt=Math.min(1,et/tt);return this.slerp(o,nt),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(o){return this._x*o._x+this._y*o._y+this._z*o._z+this._w*o._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let o=this.length();return o===0?(this._x=0,this._y=0,this._z=0,this._w=1):(o=1/o,this._x=this._x*o,this._y=this._y*o,this._z=this._z*o,this._w=this._w*o),this._onChangeCallback(),this}multiply(o){return this.multiplyQuaternions(this,o)}premultiply(o){return this.multiplyQuaternions(o,this)}multiplyQuaternions(o,et){const tt=o._x,nt=o._y,rt=o._z,it=o._w,ot=et._x,st=et._y,at=et._z,lt=et._w;return this._x=tt*lt+it*ot+nt*at-rt*st,this._y=nt*lt+it*st+rt*ot-tt*at,this._z=rt*lt+it*at+tt*st-nt*ot,this._w=it*lt-tt*ot-nt*st-rt*at,this._onChangeCallback(),this}slerp(o,et){if(et===0)return this;if(et===1)return this.copy(o);const tt=this._x,nt=this._y,rt=this._z,it=this._w;let ot=it*o._w+tt*o._x+nt*o._y+rt*o._z;if(ot<0?(this._w=-o._w,this._x=-o._x,this._y=-o._y,this._z=-o._z,ot=-ot):this.copy(o),ot>=1)return this._w=it,this._x=tt,this._y=nt,this._z=rt,this;const st=1-ot*ot;if(st<=Number.EPSILON){const ht=1-et;return this._w=ht*it+et*this._w,this._x=ht*tt+et*this._x,this._y=ht*nt+et*this._y,this._z=ht*rt+et*this._z,this.normalize(),this}const at=Math.sqrt(st),lt=Math.atan2(at,ot),ut=Math.sin((1-et)*lt)/at,dt=Math.sin(et*lt)/at;return this._w=it*ut+this._w*dt,this._x=tt*ut+this._x*dt,this._y=nt*ut+this._y*dt,this._z=rt*ut+this._z*dt,this._onChangeCallback(),this}slerpQuaternions(o,et,tt){return this.copy(o).slerp(et,tt)}random(){const o=2*Math.PI*Math.random(),et=2*Math.PI*Math.random(),tt=Math.random(),nt=Math.sqrt(1-tt),rt=Math.sqrt(tt);return this.set(nt*Math.sin(o),nt*Math.cos(o),rt*Math.sin(et),rt*Math.cos(et))}equals(o){return o._x===this._x&&o._y===this._y&&o._z===this._z&&o._w===this._w}fromArray(o,et=0){return this._x=o[et],this._y=o[et+1],this._z=o[et+2],this._w=o[et+3],this._onChangeCallback(),this}toArray(o=[],et=0){return o[et]=this._x,o[et+1]=this._y,o[et+2]=this._z,o[et+3]=this._w,o}fromBufferAttribute(o,et){return this._x=o.getX(et),this._y=o.getY(et),this._z=o.getZ(et),this._w=o.getW(et),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(o){return this._onChangeCallback=o,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Vector3{constructor(o=0,et=0,tt=0){Vector3.prototype.isVector3=!0,this.x=o,this.y=et,this.z=tt}set(o,et,tt){return tt===void 0&&(tt=this.z),this.x=o,this.y=et,this.z=tt,this}setScalar(o){return this.x=o,this.y=o,this.z=o,this}setX(o){return this.x=o,this}setY(o){return this.y=o,this}setZ(o){return this.z=o,this}setComponent(o,et){switch(o){case 0:this.x=et;break;case 1:this.y=et;break;case 2:this.z=et;break;default:throw new Error("index is out of range: "+o)}return this}getComponent(o){switch(o){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+o)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(o){return this.x=o.x,this.y=o.y,this.z=o.z,this}add(o){return this.x+=o.x,this.y+=o.y,this.z+=o.z,this}addScalar(o){return this.x+=o,this.y+=o,this.z+=o,this}addVectors(o,et){return this.x=o.x+et.x,this.y=o.y+et.y,this.z=o.z+et.z,this}addScaledVector(o,et){return this.x+=o.x*et,this.y+=o.y*et,this.z+=o.z*et,this}sub(o){return this.x-=o.x,this.y-=o.y,this.z-=o.z,this}subScalar(o){return this.x-=o,this.y-=o,this.z-=o,this}subVectors(o,et){return this.x=o.x-et.x,this.y=o.y-et.y,this.z=o.z-et.z,this}multiply(o){return this.x*=o.x,this.y*=o.y,this.z*=o.z,this}multiplyScalar(o){return this.x*=o,this.y*=o,this.z*=o,this}multiplyVectors(o,et){return this.x=o.x*et.x,this.y=o.y*et.y,this.z=o.z*et.z,this}applyEuler(o){return this.applyQuaternion(_quaternion$4.setFromEuler(o))}applyAxisAngle(o,et){return this.applyQuaternion(_quaternion$4.setFromAxisAngle(o,et))}applyMatrix3(o){const et=this.x,tt=this.y,nt=this.z,rt=o.elements;return this.x=rt[0]*et+rt[3]*tt+rt[6]*nt,this.y=rt[1]*et+rt[4]*tt+rt[7]*nt,this.z=rt[2]*et+rt[5]*tt+rt[8]*nt,this}applyNormalMatrix(o){return this.applyMatrix3(o).normalize()}applyMatrix4(o){const et=this.x,tt=this.y,nt=this.z,rt=o.elements,it=1/(rt[3]*et+rt[7]*tt+rt[11]*nt+rt[15]);return this.x=(rt[0]*et+rt[4]*tt+rt[8]*nt+rt[12])*it,this.y=(rt[1]*et+rt[5]*tt+rt[9]*nt+rt[13])*it,this.z=(rt[2]*et+rt[6]*tt+rt[10]*nt+rt[14])*it,this}applyQuaternion(o){const et=this.x,tt=this.y,nt=this.z,rt=o.x,it=o.y,ot=o.z,st=o.w,at=2*(it*nt-ot*tt),lt=2*(ot*et-rt*nt),ut=2*(rt*tt-it*et);return this.x=et+st*at+it*ut-ot*lt,this.y=tt+st*lt+ot*at-rt*ut,this.z=nt+st*ut+rt*lt-it*at,this}project(o){return this.applyMatrix4(o.matrixWorldInverse).applyMatrix4(o.projectionMatrix)}unproject(o){return this.applyMatrix4(o.projectionMatrixInverse).applyMatrix4(o.matrixWorld)}transformDirection(o){const et=this.x,tt=this.y,nt=this.z,rt=o.elements;return this.x=rt[0]*et+rt[4]*tt+rt[8]*nt,this.y=rt[1]*et+rt[5]*tt+rt[9]*nt,this.z=rt[2]*et+rt[6]*tt+rt[10]*nt,this.normalize()}divide(o){return this.x/=o.x,this.y/=o.y,this.z/=o.z,this}divideScalar(o){return this.multiplyScalar(1/o)}min(o){return this.x=Math.min(this.x,o.x),this.y=Math.min(this.y,o.y),this.z=Math.min(this.z,o.z),this}max(o){return this.x=Math.max(this.x,o.x),this.y=Math.max(this.y,o.y),this.z=Math.max(this.z,o.z),this}clamp(o,et){return this.x=Math.max(o.x,Math.min(et.x,this.x)),this.y=Math.max(o.y,Math.min(et.y,this.y)),this.z=Math.max(o.z,Math.min(et.z,this.z)),this}clampScalar(o,et){return this.x=Math.max(o,Math.min(et,this.x)),this.y=Math.max(o,Math.min(et,this.y)),this.z=Math.max(o,Math.min(et,this.z)),this}clampLength(o,et){const tt=this.length();return this.divideScalar(tt||1).multiplyScalar(Math.max(o,Math.min(et,tt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(o){return this.x*o.x+this.y*o.y+this.z*o.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(o){return this.normalize().multiplyScalar(o)}lerp(o,et){return this.x+=(o.x-this.x)*et,this.y+=(o.y-this.y)*et,this.z+=(o.z-this.z)*et,this}lerpVectors(o,et,tt){return this.x=o.x+(et.x-o.x)*tt,this.y=o.y+(et.y-o.y)*tt,this.z=o.z+(et.z-o.z)*tt,this}cross(o){return this.crossVectors(this,o)}crossVectors(o,et){const tt=o.x,nt=o.y,rt=o.z,it=et.x,ot=et.y,st=et.z;return this.x=nt*st-rt*ot,this.y=rt*it-tt*st,this.z=tt*ot-nt*it,this}projectOnVector(o){const et=o.lengthSq();if(et===0)return this.set(0,0,0);const tt=o.dot(this)/et;return this.copy(o).multiplyScalar(tt)}projectOnPlane(o){return _vector$c.copy(this).projectOnVector(o),this.sub(_vector$c)}reflect(o){return this.sub(_vector$c.copy(o).multiplyScalar(2*this.dot(o)))}angleTo(o){const et=Math.sqrt(this.lengthSq()*o.lengthSq());if(et===0)return Math.PI/2;const tt=this.dot(o)/et;return Math.acos(clamp$4(tt,-1,1))}distanceTo(o){return Math.sqrt(this.distanceToSquared(o))}distanceToSquared(o){const et=this.x-o.x,tt=this.y-o.y,nt=this.z-o.z;return et*et+tt*tt+nt*nt}manhattanDistanceTo(o){return Math.abs(this.x-o.x)+Math.abs(this.y-o.y)+Math.abs(this.z-o.z)}setFromSpherical(o){return this.setFromSphericalCoords(o.radius,o.phi,o.theta)}setFromSphericalCoords(o,et,tt){const nt=Math.sin(et)*o;return this.x=nt*Math.sin(tt),this.y=Math.cos(et)*o,this.z=nt*Math.cos(tt),this}setFromCylindrical(o){return this.setFromCylindricalCoords(o.radius,o.theta,o.y)}setFromCylindricalCoords(o,et,tt){return this.x=o*Math.sin(et),this.y=tt,this.z=o*Math.cos(et),this}setFromMatrixPosition(o){const et=o.elements;return this.x=et[12],this.y=et[13],this.z=et[14],this}setFromMatrixScale(o){const et=this.setFromMatrixColumn(o,0).length(),tt=this.setFromMatrixColumn(o,1).length(),nt=this.setFromMatrixColumn(o,2).length();return this.x=et,this.y=tt,this.z=nt,this}setFromMatrixColumn(o,et){return this.fromArray(o.elements,et*4)}setFromMatrix3Column(o,et){return this.fromArray(o.elements,et*3)}setFromEuler(o){return this.x=o._x,this.y=o._y,this.z=o._z,this}setFromColor(o){return this.x=o.r,this.y=o.g,this.z=o.b,this}equals(o){return o.x===this.x&&o.y===this.y&&o.z===this.z}fromArray(o,et=0){return this.x=o[et],this.y=o[et+1],this.z=o[et+2],this}toArray(o=[],et=0){return o[et]=this.x,o[et+1]=this.y,o[et+2]=this.z,o}fromBufferAttribute(o,et){return this.x=o.getX(et),this.y=o.getY(et),this.z=o.getZ(et),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const o=Math.random()*Math.PI*2,et=Math.random()*2-1,tt=Math.sqrt(1-et*et);return this.x=tt*Math.cos(o),this.y=et,this.z=tt*Math.sin(o),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const _vector$c=new Vector3,_quaternion$4=new Quaternion;class Box3{constructor(o=new Vector3(1/0,1/0,1/0),et=new Vector3(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=o,this.max=et}set(o,et){return this.min.copy(o),this.max.copy(et),this}setFromArray(o){this.makeEmpty();for(let et=0,tt=o.length;etthis.max.x||o.ythis.max.y||o.zthis.max.z)}containsBox(o){return this.min.x<=o.min.x&&o.max.x<=this.max.x&&this.min.y<=o.min.y&&o.max.y<=this.max.y&&this.min.z<=o.min.z&&o.max.z<=this.max.z}getParameter(o,et){return et.set((o.x-this.min.x)/(this.max.x-this.min.x),(o.y-this.min.y)/(this.max.y-this.min.y),(o.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(o){return!(o.max.xthis.max.x||o.max.ythis.max.y||o.max.zthis.max.z)}intersectsSphere(o){return this.clampPoint(o.center,_vector$b),_vector$b.distanceToSquared(o.center)<=o.radius*o.radius}intersectsPlane(o){let et,tt;return o.normal.x>0?(et=o.normal.x*this.min.x,tt=o.normal.x*this.max.x):(et=o.normal.x*this.max.x,tt=o.normal.x*this.min.x),o.normal.y>0?(et+=o.normal.y*this.min.y,tt+=o.normal.y*this.max.y):(et+=o.normal.y*this.max.y,tt+=o.normal.y*this.min.y),o.normal.z>0?(et+=o.normal.z*this.min.z,tt+=o.normal.z*this.max.z):(et+=o.normal.z*this.max.z,tt+=o.normal.z*this.min.z),et<=-o.constant&&tt>=-o.constant}intersectsTriangle(o){if(this.isEmpty())return!1;this.getCenter(_center),_extents.subVectors(this.max,_center),_v0$2.subVectors(o.a,_center),_v1$7.subVectors(o.b,_center),_v2$4.subVectors(o.c,_center),_f0.subVectors(_v1$7,_v0$2),_f1.subVectors(_v2$4,_v1$7),_f2.subVectors(_v0$2,_v2$4);let et=[0,-_f0.z,_f0.y,0,-_f1.z,_f1.y,0,-_f2.z,_f2.y,_f0.z,0,-_f0.x,_f1.z,0,-_f1.x,_f2.z,0,-_f2.x,-_f0.y,_f0.x,0,-_f1.y,_f1.x,0,-_f2.y,_f2.x,0];return!satForAxes(et,_v0$2,_v1$7,_v2$4,_extents)||(et=[1,0,0,0,1,0,0,0,1],!satForAxes(et,_v0$2,_v1$7,_v2$4,_extents))?!1:(_triangleNormal.crossVectors(_f0,_f1),et=[_triangleNormal.x,_triangleNormal.y,_triangleNormal.z],satForAxes(et,_v0$2,_v1$7,_v2$4,_extents))}clampPoint(o,et){return et.copy(o).clamp(this.min,this.max)}distanceToPoint(o){return this.clampPoint(o,_vector$b).distanceTo(o)}getBoundingSphere(o){return this.isEmpty()?o.makeEmpty():(this.getCenter(o.center),o.radius=this.getSize(_vector$b).length()*.5),o}intersect(o){return this.min.max(o.min),this.max.min(o.max),this.isEmpty()&&this.makeEmpty(),this}union(o){return this.min.min(o.min),this.max.max(o.max),this}applyMatrix4(o){return this.isEmpty()?this:(_points[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(o),_points[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(o),_points[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(o),_points[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(o),_points[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(o),_points[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(o),_points[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(o),_points[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(o),this.setFromPoints(_points),this)}translate(o){return this.min.add(o),this.max.add(o),this}equals(o){return o.min.equals(this.min)&&o.max.equals(this.max)}}const _points=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3],_vector$b=new Vector3,_box$4=new Box3,_v0$2=new Vector3,_v1$7=new Vector3,_v2$4=new Vector3,_f0=new Vector3,_f1=new Vector3,_f2=new Vector3,_center=new Vector3,_extents=new Vector3,_triangleNormal=new Vector3,_testAxis=new Vector3;function satForAxes(s,o,et,tt,nt){for(let rt=0,it=s.length-3;rt<=it;rt+=3){_testAxis.fromArray(s,rt);const ot=nt.x*Math.abs(_testAxis.x)+nt.y*Math.abs(_testAxis.y)+nt.z*Math.abs(_testAxis.z),st=o.dot(_testAxis),at=et.dot(_testAxis),lt=tt.dot(_testAxis);if(Math.max(-Math.max(st,at,lt),Math.min(st,at,lt))>ot)return!1}return!0}const _box$3=new Box3,_v1$6=new Vector3,_v2$3=new Vector3;let Sphere$1=class{constructor(o=new Vector3,et=-1){this.isSphere=!0,this.center=o,this.radius=et}set(o,et){return this.center.copy(o),this.radius=et,this}setFromPoints(o,et){const tt=this.center;et!==void 0?tt.copy(et):_box$3.setFromPoints(o).getCenter(tt);let nt=0;for(let rt=0,it=o.length;rtthis.radius*this.radius&&(et.sub(this.center).normalize(),et.multiplyScalar(this.radius).add(this.center)),et}getBoundingBox(o){return this.isEmpty()?(o.makeEmpty(),o):(o.set(this.center,this.center),o.expandByScalar(this.radius),o)}applyMatrix4(o){return this.center.applyMatrix4(o),this.radius=this.radius*o.getMaxScaleOnAxis(),this}translate(o){return this.center.add(o),this}expandByPoint(o){if(this.isEmpty())return this.center.copy(o),this.radius=0,this;_v1$6.subVectors(o,this.center);const et=_v1$6.lengthSq();if(et>this.radius*this.radius){const tt=Math.sqrt(et),nt=(tt-this.radius)*.5;this.center.addScaledVector(_v1$6,nt/tt),this.radius+=nt}return this}union(o){return o.isEmpty()?this:this.isEmpty()?(this.copy(o),this):(this.center.equals(o.center)===!0?this.radius=Math.max(this.radius,o.radius):(_v2$3.subVectors(o.center,this.center).setLength(o.radius),this.expandByPoint(_v1$6.copy(o.center).add(_v2$3)),this.expandByPoint(_v1$6.copy(o.center).sub(_v2$3))),this)}equals(o){return o.center.equals(this.center)&&o.radius===this.radius}clone(){return new this.constructor().copy(this)}};const _vector$a=new Vector3,_segCenter=new Vector3,_segDir=new Vector3,_diff=new Vector3,_edge1=new Vector3,_edge2=new Vector3,_normal$1=new Vector3;let Ray$1=class{constructor(o=new Vector3,et=new Vector3(0,0,-1)){this.origin=o,this.direction=et}set(o,et){return this.origin.copy(o),this.direction.copy(et),this}copy(o){return this.origin.copy(o.origin),this.direction.copy(o.direction),this}at(o,et){return et.copy(this.origin).addScaledVector(this.direction,o)}lookAt(o){return this.direction.copy(o).sub(this.origin).normalize(),this}recast(o){return this.origin.copy(this.at(o,_vector$a)),this}closestPointToPoint(o,et){et.subVectors(o,this.origin);const tt=et.dot(this.direction);return tt<0?et.copy(this.origin):et.copy(this.origin).addScaledVector(this.direction,tt)}distanceToPoint(o){return Math.sqrt(this.distanceSqToPoint(o))}distanceSqToPoint(o){const et=_vector$a.subVectors(o,this.origin).dot(this.direction);return et<0?this.origin.distanceToSquared(o):(_vector$a.copy(this.origin).addScaledVector(this.direction,et),_vector$a.distanceToSquared(o))}distanceSqToSegment(o,et,tt,nt){_segCenter.copy(o).add(et).multiplyScalar(.5),_segDir.copy(et).sub(o).normalize(),_diff.copy(this.origin).sub(_segCenter);const rt=o.distanceTo(et)*.5,it=-this.direction.dot(_segDir),ot=_diff.dot(this.direction),st=-_diff.dot(_segDir),at=_diff.lengthSq(),lt=Math.abs(1-it*it);let ut,dt,ht,ct;if(lt>0)if(ut=it*st-ot,dt=it*ot-st,ct=rt*lt,ut>=0)if(dt>=-ct)if(dt<=ct){const pt=1/lt;ut*=pt,dt*=pt,ht=ut*(ut+it*dt+2*ot)+dt*(it*ut+dt+2*st)+at}else dt=rt,ut=Math.max(0,-(it*dt+ot)),ht=-ut*ut+dt*(dt+2*st)+at;else dt=-rt,ut=Math.max(0,-(it*dt+ot)),ht=-ut*ut+dt*(dt+2*st)+at;else dt<=-ct?(ut=Math.max(0,-(-it*rt+ot)),dt=ut>0?-rt:Math.min(Math.max(-rt,-st),rt),ht=-ut*ut+dt*(dt+2*st)+at):dt<=ct?(ut=0,dt=Math.min(Math.max(-rt,-st),rt),ht=dt*(dt+2*st)+at):(ut=Math.max(0,-(it*rt+ot)),dt=ut>0?rt:Math.min(Math.max(-rt,-st),rt),ht=-ut*ut+dt*(dt+2*st)+at);else dt=it>0?-rt:rt,ut=Math.max(0,-(it*dt+ot)),ht=-ut*ut+dt*(dt+2*st)+at;return tt&&tt.copy(this.origin).addScaledVector(this.direction,ut),nt&&nt.copy(_segCenter).addScaledVector(_segDir,dt),ht}intersectSphere(o,et){_vector$a.subVectors(o.center,this.origin);const tt=_vector$a.dot(this.direction),nt=_vector$a.dot(_vector$a)-tt*tt,rt=o.radius*o.radius;if(nt>rt)return null;const it=Math.sqrt(rt-nt),ot=tt-it,st=tt+it;return st<0?null:ot<0?this.at(st,et):this.at(ot,et)}intersectsSphere(o){return this.distanceSqToPoint(o.center)<=o.radius*o.radius}distanceToPlane(o){const et=o.normal.dot(this.direction);if(et===0)return o.distanceToPoint(this.origin)===0?0:null;const tt=-(this.origin.dot(o.normal)+o.constant)/et;return tt>=0?tt:null}intersectPlane(o,et){const tt=this.distanceToPlane(o);return tt===null?null:this.at(tt,et)}intersectsPlane(o){const et=o.distanceToPoint(this.origin);return et===0||o.normal.dot(this.direction)*et<0}intersectBox(o,et){let tt,nt,rt,it,ot,st;const at=1/this.direction.x,lt=1/this.direction.y,ut=1/this.direction.z,dt=this.origin;return at>=0?(tt=(o.min.x-dt.x)*at,nt=(o.max.x-dt.x)*at):(tt=(o.max.x-dt.x)*at,nt=(o.min.x-dt.x)*at),lt>=0?(rt=(o.min.y-dt.y)*lt,it=(o.max.y-dt.y)*lt):(rt=(o.max.y-dt.y)*lt,it=(o.min.y-dt.y)*lt),tt>it||rt>nt||((rt>tt||isNaN(tt))&&(tt=rt),(it=0?(ot=(o.min.z-dt.z)*ut,st=(o.max.z-dt.z)*ut):(ot=(o.max.z-dt.z)*ut,st=(o.min.z-dt.z)*ut),tt>st||ot>nt)||((ot>tt||tt!==tt)&&(tt=ot),(st=0?tt:nt,et)}intersectsBox(o){return this.intersectBox(o,_vector$a)!==null}intersectTriangle(o,et,tt,nt,rt){_edge1.subVectors(et,o),_edge2.subVectors(tt,o),_normal$1.crossVectors(_edge1,_edge2);let it=this.direction.dot(_normal$1),ot;if(it>0){if(nt)return null;ot=1}else if(it<0)ot=-1,it=-it;else return null;_diff.subVectors(this.origin,o);const st=ot*this.direction.dot(_edge2.crossVectors(_diff,_edge2));if(st<0)return null;const at=ot*this.direction.dot(_edge1.cross(_diff));if(at<0||st+at>it)return null;const lt=-ot*_diff.dot(_normal$1);return lt<0?null:this.at(lt/it,rt)}applyMatrix4(o){return this.origin.applyMatrix4(o),this.direction.transformDirection(o),this}equals(o){return o.origin.equals(this.origin)&&o.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}};class Matrix4{constructor(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct,pt,ft){Matrix4.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],o!==void 0&&this.set(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct,pt,ft)}set(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct,pt,ft){const gt=this.elements;return gt[0]=o,gt[4]=et,gt[8]=tt,gt[12]=nt,gt[1]=rt,gt[5]=it,gt[9]=ot,gt[13]=st,gt[2]=at,gt[6]=lt,gt[10]=ut,gt[14]=dt,gt[3]=ht,gt[7]=ct,gt[11]=pt,gt[15]=ft,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Matrix4().fromArray(this.elements)}copy(o){const et=this.elements,tt=o.elements;return et[0]=tt[0],et[1]=tt[1],et[2]=tt[2],et[3]=tt[3],et[4]=tt[4],et[5]=tt[5],et[6]=tt[6],et[7]=tt[7],et[8]=tt[8],et[9]=tt[9],et[10]=tt[10],et[11]=tt[11],et[12]=tt[12],et[13]=tt[13],et[14]=tt[14],et[15]=tt[15],this}copyPosition(o){const et=this.elements,tt=o.elements;return et[12]=tt[12],et[13]=tt[13],et[14]=tt[14],this}setFromMatrix3(o){const et=o.elements;return this.set(et[0],et[3],et[6],0,et[1],et[4],et[7],0,et[2],et[5],et[8],0,0,0,0,1),this}extractBasis(o,et,tt){return o.setFromMatrixColumn(this,0),et.setFromMatrixColumn(this,1),tt.setFromMatrixColumn(this,2),this}makeBasis(o,et,tt){return this.set(o.x,et.x,tt.x,0,o.y,et.y,tt.y,0,o.z,et.z,tt.z,0,0,0,0,1),this}extractRotation(o){const et=this.elements,tt=o.elements,nt=1/_v1$5.setFromMatrixColumn(o,0).length(),rt=1/_v1$5.setFromMatrixColumn(o,1).length(),it=1/_v1$5.setFromMatrixColumn(o,2).length();return et[0]=tt[0]*nt,et[1]=tt[1]*nt,et[2]=tt[2]*nt,et[3]=0,et[4]=tt[4]*rt,et[5]=tt[5]*rt,et[6]=tt[6]*rt,et[7]=0,et[8]=tt[8]*it,et[9]=tt[9]*it,et[10]=tt[10]*it,et[11]=0,et[12]=0,et[13]=0,et[14]=0,et[15]=1,this}makeRotationFromEuler(o){const et=this.elements,tt=o.x,nt=o.y,rt=o.z,it=Math.cos(tt),ot=Math.sin(tt),st=Math.cos(nt),at=Math.sin(nt),lt=Math.cos(rt),ut=Math.sin(rt);if(o.order==="XYZ"){const dt=it*lt,ht=it*ut,ct=ot*lt,pt=ot*ut;et[0]=st*lt,et[4]=-st*ut,et[8]=at,et[1]=ht+ct*at,et[5]=dt-pt*at,et[9]=-ot*st,et[2]=pt-dt*at,et[6]=ct+ht*at,et[10]=it*st}else if(o.order==="YXZ"){const dt=st*lt,ht=st*ut,ct=at*lt,pt=at*ut;et[0]=dt+pt*ot,et[4]=ct*ot-ht,et[8]=it*at,et[1]=it*ut,et[5]=it*lt,et[9]=-ot,et[2]=ht*ot-ct,et[6]=pt+dt*ot,et[10]=it*st}else if(o.order==="ZXY"){const dt=st*lt,ht=st*ut,ct=at*lt,pt=at*ut;et[0]=dt-pt*ot,et[4]=-it*ut,et[8]=ct+ht*ot,et[1]=ht+ct*ot,et[5]=it*lt,et[9]=pt-dt*ot,et[2]=-it*at,et[6]=ot,et[10]=it*st}else if(o.order==="ZYX"){const dt=it*lt,ht=it*ut,ct=ot*lt,pt=ot*ut;et[0]=st*lt,et[4]=ct*at-ht,et[8]=dt*at+pt,et[1]=st*ut,et[5]=pt*at+dt,et[9]=ht*at-ct,et[2]=-at,et[6]=ot*st,et[10]=it*st}else if(o.order==="YZX"){const dt=it*st,ht=it*at,ct=ot*st,pt=ot*at;et[0]=st*lt,et[4]=pt-dt*ut,et[8]=ct*ut+ht,et[1]=ut,et[5]=it*lt,et[9]=-ot*lt,et[2]=-at*lt,et[6]=ht*ut+ct,et[10]=dt-pt*ut}else if(o.order==="XZY"){const dt=it*st,ht=it*at,ct=ot*st,pt=ot*at;et[0]=st*lt,et[4]=-ut,et[8]=at*lt,et[1]=dt*ut+pt,et[5]=it*lt,et[9]=ht*ut-ct,et[2]=ct*ut-ht,et[6]=ot*lt,et[10]=pt*ut+dt}return et[3]=0,et[7]=0,et[11]=0,et[12]=0,et[13]=0,et[14]=0,et[15]=1,this}makeRotationFromQuaternion(o){return this.compose(_zero,o,_one)}lookAt(o,et,tt){const nt=this.elements;return _z.subVectors(o,et),_z.lengthSq()===0&&(_z.z=1),_z.normalize(),_x.crossVectors(tt,_z),_x.lengthSq()===0&&(Math.abs(tt.z)===1?_z.x+=1e-4:_z.z+=1e-4,_z.normalize(),_x.crossVectors(tt,_z)),_x.normalize(),_y.crossVectors(_z,_x),nt[0]=_x.x,nt[4]=_y.x,nt[8]=_z.x,nt[1]=_x.y,nt[5]=_y.y,nt[9]=_z.y,nt[2]=_x.z,nt[6]=_y.z,nt[10]=_z.z,this}multiply(o){return this.multiplyMatrices(this,o)}premultiply(o){return this.multiplyMatrices(o,this)}multiplyMatrices(o,et){const tt=o.elements,nt=et.elements,rt=this.elements,it=tt[0],ot=tt[4],st=tt[8],at=tt[12],lt=tt[1],ut=tt[5],dt=tt[9],ht=tt[13],ct=tt[2],pt=tt[6],ft=tt[10],gt=tt[14],yt=tt[3],Ut=tt[7],Ft=tt[11],mt=tt[15],vt=nt[0],At=nt[4],Lt=nt[8],Rt=nt[12],St=nt[1],Tt=nt[5],Bt=nt[9],xt=nt[13],Ct=nt[2],kt=nt[6],Nt=nt[10],Ot=nt[14],Wt=nt[3],Dt=nt[7],Et=nt[11],Pt=nt[15];return rt[0]=it*vt+ot*St+st*Ct+at*Wt,rt[4]=it*At+ot*Tt+st*kt+at*Dt,rt[8]=it*Lt+ot*Bt+st*Nt+at*Et,rt[12]=it*Rt+ot*xt+st*Ot+at*Pt,rt[1]=lt*vt+ut*St+dt*Ct+ht*Wt,rt[5]=lt*At+ut*Tt+dt*kt+ht*Dt,rt[9]=lt*Lt+ut*Bt+dt*Nt+ht*Et,rt[13]=lt*Rt+ut*xt+dt*Ot+ht*Pt,rt[2]=ct*vt+pt*St+ft*Ct+gt*Wt,rt[6]=ct*At+pt*Tt+ft*kt+gt*Dt,rt[10]=ct*Lt+pt*Bt+ft*Nt+gt*Et,rt[14]=ct*Rt+pt*xt+ft*Ot+gt*Pt,rt[3]=yt*vt+Ut*St+Ft*Ct+mt*Wt,rt[7]=yt*At+Ut*Tt+Ft*kt+mt*Dt,rt[11]=yt*Lt+Ut*Bt+Ft*Nt+mt*Et,rt[15]=yt*Rt+Ut*xt+Ft*Ot+mt*Pt,this}multiplyScalar(o){const et=this.elements;return et[0]*=o,et[4]*=o,et[8]*=o,et[12]*=o,et[1]*=o,et[5]*=o,et[9]*=o,et[13]*=o,et[2]*=o,et[6]*=o,et[10]*=o,et[14]*=o,et[3]*=o,et[7]*=o,et[11]*=o,et[15]*=o,this}determinant(){const o=this.elements,et=o[0],tt=o[4],nt=o[8],rt=o[12],it=o[1],ot=o[5],st=o[9],at=o[13],lt=o[2],ut=o[6],dt=o[10],ht=o[14],ct=o[3],pt=o[7],ft=o[11],gt=o[15];return ct*(+rt*st*ut-nt*at*ut-rt*ot*dt+tt*at*dt+nt*ot*ht-tt*st*ht)+pt*(+et*st*ht-et*at*dt+rt*it*dt-nt*it*ht+nt*at*lt-rt*st*lt)+ft*(+et*at*ut-et*ot*ht-rt*it*ut+tt*it*ht+rt*ot*lt-tt*at*lt)+gt*(-nt*ot*lt-et*st*ut+et*ot*dt+nt*it*ut-tt*it*dt+tt*st*lt)}transpose(){const o=this.elements;let et;return et=o[1],o[1]=o[4],o[4]=et,et=o[2],o[2]=o[8],o[8]=et,et=o[6],o[6]=o[9],o[9]=et,et=o[3],o[3]=o[12],o[12]=et,et=o[7],o[7]=o[13],o[13]=et,et=o[11],o[11]=o[14],o[14]=et,this}setPosition(o,et,tt){const nt=this.elements;return o.isVector3?(nt[12]=o.x,nt[13]=o.y,nt[14]=o.z):(nt[12]=o,nt[13]=et,nt[14]=tt),this}invert(){const o=this.elements,et=o[0],tt=o[1],nt=o[2],rt=o[3],it=o[4],ot=o[5],st=o[6],at=o[7],lt=o[8],ut=o[9],dt=o[10],ht=o[11],ct=o[12],pt=o[13],ft=o[14],gt=o[15],yt=ut*ft*at-pt*dt*at+pt*st*ht-ot*ft*ht-ut*st*gt+ot*dt*gt,Ut=ct*dt*at-lt*ft*at-ct*st*ht+it*ft*ht+lt*st*gt-it*dt*gt,Ft=lt*pt*at-ct*ut*at+ct*ot*ht-it*pt*ht-lt*ot*gt+it*ut*gt,mt=ct*ut*st-lt*pt*st-ct*ot*dt+it*pt*dt+lt*ot*ft-it*ut*ft,vt=et*yt+tt*Ut+nt*Ft+rt*mt;if(vt===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const At=1/vt;return o[0]=yt*At,o[1]=(pt*dt*rt-ut*ft*rt-pt*nt*ht+tt*ft*ht+ut*nt*gt-tt*dt*gt)*At,o[2]=(ot*ft*rt-pt*st*rt+pt*nt*at-tt*ft*at-ot*nt*gt+tt*st*gt)*At,o[3]=(ut*st*rt-ot*dt*rt-ut*nt*at+tt*dt*at+ot*nt*ht-tt*st*ht)*At,o[4]=Ut*At,o[5]=(lt*ft*rt-ct*dt*rt+ct*nt*ht-et*ft*ht-lt*nt*gt+et*dt*gt)*At,o[6]=(ct*st*rt-it*ft*rt-ct*nt*at+et*ft*at+it*nt*gt-et*st*gt)*At,o[7]=(it*dt*rt-lt*st*rt+lt*nt*at-et*dt*at-it*nt*ht+et*st*ht)*At,o[8]=Ft*At,o[9]=(ct*ut*rt-lt*pt*rt-ct*tt*ht+et*pt*ht+lt*tt*gt-et*ut*gt)*At,o[10]=(it*pt*rt-ct*ot*rt+ct*tt*at-et*pt*at-it*tt*gt+et*ot*gt)*At,o[11]=(lt*ot*rt-it*ut*rt-lt*tt*at+et*ut*at+it*tt*ht-et*ot*ht)*At,o[12]=mt*At,o[13]=(lt*pt*nt-ct*ut*nt+ct*tt*dt-et*pt*dt-lt*tt*ft+et*ut*ft)*At,o[14]=(ct*ot*nt-it*pt*nt-ct*tt*st+et*pt*st+it*tt*ft-et*ot*ft)*At,o[15]=(it*ut*nt-lt*ot*nt+lt*tt*st-et*ut*st-it*tt*dt+et*ot*dt)*At,this}scale(o){const et=this.elements,tt=o.x,nt=o.y,rt=o.z;return et[0]*=tt,et[4]*=nt,et[8]*=rt,et[1]*=tt,et[5]*=nt,et[9]*=rt,et[2]*=tt,et[6]*=nt,et[10]*=rt,et[3]*=tt,et[7]*=nt,et[11]*=rt,this}getMaxScaleOnAxis(){const o=this.elements,et=o[0]*o[0]+o[1]*o[1]+o[2]*o[2],tt=o[4]*o[4]+o[5]*o[5]+o[6]*o[6],nt=o[8]*o[8]+o[9]*o[9]+o[10]*o[10];return Math.sqrt(Math.max(et,tt,nt))}makeTranslation(o,et,tt){return o.isVector3?this.set(1,0,0,o.x,0,1,0,o.y,0,0,1,o.z,0,0,0,1):this.set(1,0,0,o,0,1,0,et,0,0,1,tt,0,0,0,1),this}makeRotationX(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(1,0,0,0,0,et,-tt,0,0,tt,et,0,0,0,0,1),this}makeRotationY(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(et,0,tt,0,0,1,0,0,-tt,0,et,0,0,0,0,1),this}makeRotationZ(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(et,-tt,0,0,tt,et,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(o,et){const tt=Math.cos(et),nt=Math.sin(et),rt=1-tt,it=o.x,ot=o.y,st=o.z,at=rt*it,lt=rt*ot;return this.set(at*it+tt,at*ot-nt*st,at*st+nt*ot,0,at*ot+nt*st,lt*ot+tt,lt*st-nt*it,0,at*st-nt*ot,lt*st+nt*it,rt*st*st+tt,0,0,0,0,1),this}makeScale(o,et,tt){return this.set(o,0,0,0,0,et,0,0,0,0,tt,0,0,0,0,1),this}makeShear(o,et,tt,nt,rt,it){return this.set(1,tt,rt,0,o,1,it,0,et,nt,1,0,0,0,0,1),this}compose(o,et,tt){const nt=this.elements,rt=et._x,it=et._y,ot=et._z,st=et._w,at=rt+rt,lt=it+it,ut=ot+ot,dt=rt*at,ht=rt*lt,ct=rt*ut,pt=it*lt,ft=it*ut,gt=ot*ut,yt=st*at,Ut=st*lt,Ft=st*ut,mt=tt.x,vt=tt.y,At=tt.z;return nt[0]=(1-(pt+gt))*mt,nt[1]=(ht+Ft)*mt,nt[2]=(ct-Ut)*mt,nt[3]=0,nt[4]=(ht-Ft)*vt,nt[5]=(1-(dt+gt))*vt,nt[6]=(ft+yt)*vt,nt[7]=0,nt[8]=(ct+Ut)*At,nt[9]=(ft-yt)*At,nt[10]=(1-(dt+pt))*At,nt[11]=0,nt[12]=o.x,nt[13]=o.y,nt[14]=o.z,nt[15]=1,this}decompose(o,et,tt){const nt=this.elements;let rt=_v1$5.set(nt[0],nt[1],nt[2]).length();const it=_v1$5.set(nt[4],nt[5],nt[6]).length(),ot=_v1$5.set(nt[8],nt[9],nt[10]).length();this.determinant()<0&&(rt=-rt),o.x=nt[12],o.y=nt[13],o.z=nt[14],_m1$4.copy(this);const at=1/rt,lt=1/it,ut=1/ot;return _m1$4.elements[0]*=at,_m1$4.elements[1]*=at,_m1$4.elements[2]*=at,_m1$4.elements[4]*=lt,_m1$4.elements[5]*=lt,_m1$4.elements[6]*=lt,_m1$4.elements[8]*=ut,_m1$4.elements[9]*=ut,_m1$4.elements[10]*=ut,et.setFromRotationMatrix(_m1$4),tt.x=rt,tt.y=it,tt.z=ot,this}makePerspective(o,et,tt,nt,rt,it,ot=WebGLCoordinateSystem){const st=this.elements,at=2*rt/(et-o),lt=2*rt/(tt-nt),ut=(et+o)/(et-o),dt=(tt+nt)/(tt-nt);let ht,ct;if(ot===WebGLCoordinateSystem)ht=-(it+rt)/(it-rt),ct=-2*it*rt/(it-rt);else if(ot===WebGPUCoordinateSystem)ht=-it/(it-rt),ct=-it*rt/(it-rt);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+ot);return st[0]=at,st[4]=0,st[8]=ut,st[12]=0,st[1]=0,st[5]=lt,st[9]=dt,st[13]=0,st[2]=0,st[6]=0,st[10]=ht,st[14]=ct,st[3]=0,st[7]=0,st[11]=-1,st[15]=0,this}makeOrthographic(o,et,tt,nt,rt,it,ot=WebGLCoordinateSystem){const st=this.elements,at=1/(et-o),lt=1/(tt-nt),ut=1/(it-rt),dt=(et+o)*at,ht=(tt+nt)*lt;let ct,pt;if(ot===WebGLCoordinateSystem)ct=(it+rt)*ut,pt=-2*ut;else if(ot===WebGPUCoordinateSystem)ct=rt*ut,pt=-1*ut;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+ot);return st[0]=2*at,st[4]=0,st[8]=0,st[12]=-dt,st[1]=0,st[5]=2*lt,st[9]=0,st[13]=-ht,st[2]=0,st[6]=0,st[10]=pt,st[14]=-ct,st[3]=0,st[7]=0,st[11]=0,st[15]=1,this}equals(o){const et=this.elements,tt=o.elements;for(let nt=0;nt<16;nt++)if(et[nt]!==tt[nt])return!1;return!0}fromArray(o,et=0){for(let tt=0;tt<16;tt++)this.elements[tt]=o[tt+et];return this}toArray(o=[],et=0){const tt=this.elements;return o[et]=tt[0],o[et+1]=tt[1],o[et+2]=tt[2],o[et+3]=tt[3],o[et+4]=tt[4],o[et+5]=tt[5],o[et+6]=tt[6],o[et+7]=tt[7],o[et+8]=tt[8],o[et+9]=tt[9],o[et+10]=tt[10],o[et+11]=tt[11],o[et+12]=tt[12],o[et+13]=tt[13],o[et+14]=tt[14],o[et+15]=tt[15],o}}const _v1$5=new Vector3,_m1$4=new Matrix4,_zero=new Vector3(0,0,0),_one=new Vector3(1,1,1),_x=new Vector3,_y=new Vector3,_z=new Vector3,_matrix$2=new Matrix4,_quaternion$3=new Quaternion;class Euler{constructor(o=0,et=0,tt=0,nt=Euler.DEFAULT_ORDER){this.isEuler=!0,this._x=o,this._y=et,this._z=tt,this._order=nt}get x(){return this._x}set x(o){this._x=o,this._onChangeCallback()}get y(){return this._y}set y(o){this._y=o,this._onChangeCallback()}get z(){return this._z}set z(o){this._z=o,this._onChangeCallback()}get order(){return this._order}set order(o){this._order=o,this._onChangeCallback()}set(o,et,tt,nt=this._order){return this._x=o,this._y=et,this._z=tt,this._order=nt,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(o){return this._x=o._x,this._y=o._y,this._z=o._z,this._order=o._order,this._onChangeCallback(),this}setFromRotationMatrix(o,et=this._order,tt=!0){const nt=o.elements,rt=nt[0],it=nt[4],ot=nt[8],st=nt[1],at=nt[5],lt=nt[9],ut=nt[2],dt=nt[6],ht=nt[10];switch(et){case"XYZ":this._y=Math.asin(clamp$4(ot,-1,1)),Math.abs(ot)<.9999999?(this._x=Math.atan2(-lt,ht),this._z=Math.atan2(-it,rt)):(this._x=Math.atan2(dt,at),this._z=0);break;case"YXZ":this._x=Math.asin(-clamp$4(lt,-1,1)),Math.abs(lt)<.9999999?(this._y=Math.atan2(ot,ht),this._z=Math.atan2(st,at)):(this._y=Math.atan2(-ut,rt),this._z=0);break;case"ZXY":this._x=Math.asin(clamp$4(dt,-1,1)),Math.abs(dt)<.9999999?(this._y=Math.atan2(-ut,ht),this._z=Math.atan2(-it,at)):(this._y=0,this._z=Math.atan2(st,rt));break;case"ZYX":this._y=Math.asin(-clamp$4(ut,-1,1)),Math.abs(ut)<.9999999?(this._x=Math.atan2(dt,ht),this._z=Math.atan2(st,rt)):(this._x=0,this._z=Math.atan2(-it,at));break;case"YZX":this._z=Math.asin(clamp$4(st,-1,1)),Math.abs(st)<.9999999?(this._x=Math.atan2(-lt,at),this._y=Math.atan2(-ut,rt)):(this._x=0,this._y=Math.atan2(ot,ht));break;case"XZY":this._z=Math.asin(-clamp$4(it,-1,1)),Math.abs(it)<.9999999?(this._x=Math.atan2(dt,at),this._y=Math.atan2(ot,rt)):(this._x=Math.atan2(-lt,ht),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+et)}return this._order=et,tt===!0&&this._onChangeCallback(),this}setFromQuaternion(o,et,tt){return _matrix$2.makeRotationFromQuaternion(o),this.setFromRotationMatrix(_matrix$2,et,tt)}setFromVector3(o,et=this._order){return this.set(o.x,o.y,o.z,et)}reorder(o){return _quaternion$3.setFromEuler(this),this.setFromQuaternion(_quaternion$3,o)}equals(o){return o._x===this._x&&o._y===this._y&&o._z===this._z&&o._order===this._order}fromArray(o){return this._x=o[0],this._y=o[1],this._z=o[2],o[3]!==void 0&&(this._order=o[3]),this._onChangeCallback(),this}toArray(o=[],et=0){return o[et]=this._x,o[et+1]=this._y,o[et+2]=this._z,o[et+3]=this._order,o}_onChange(o){return this._onChangeCallback=o,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Euler.DEFAULT_ORDER="XYZ";class Layers{constructor(){this.mask=1}set(o){this.mask=(1<>>0}enable(o){this.mask|=1<1){for(let et=0;et1){for(let tt=0;tt0&&(nt.userData=this.userData),nt.layers=this.layers.mask,nt.matrix=this.matrix.toArray(),nt.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(nt.matrixAutoUpdate=!1),this.isInstancedMesh&&(nt.type="InstancedMesh",nt.count=this.count,nt.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(nt.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(nt.type="BatchedMesh",nt.perObjectFrustumCulled=this.perObjectFrustumCulled,nt.sortObjects=this.sortObjects,nt.drawRanges=this._drawRanges,nt.reservedRanges=this._reservedRanges,nt.visibility=this._visibility,nt.active=this._active,nt.bounds=this._bounds.map(ot=>({boxInitialized:ot.boxInitialized,boxMin:ot.box.min.toArray(),boxMax:ot.box.max.toArray(),sphereInitialized:ot.sphereInitialized,sphereRadius:ot.sphere.radius,sphereCenter:ot.sphere.center.toArray()})),nt.maxGeometryCount=this._maxGeometryCount,nt.maxVertexCount=this._maxVertexCount,nt.maxIndexCount=this._maxIndexCount,nt.geometryInitialized=this._geometryInitialized,nt.geometryCount=this._geometryCount,nt.matricesTexture=this._matricesTexture.toJSON(o),this._colorsTexture!==null&&(nt.colorsTexture=this._colorsTexture.toJSON(o)),this.boundingSphere!==null&&(nt.boundingSphere={center:nt.boundingSphere.center.toArray(),radius:nt.boundingSphere.radius}),this.boundingBox!==null&&(nt.boundingBox={min:nt.boundingBox.min.toArray(),max:nt.boundingBox.max.toArray()}));function rt(ot,st){return ot[st.uuid]===void 0&&(ot[st.uuid]=st.toJSON(o)),st.uuid}if(this.isScene)this.background&&(this.background.isColor?nt.background=this.background.toJSON():this.background.isTexture&&(nt.background=this.background.toJSON(o).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(nt.environment=this.environment.toJSON(o).uuid);else if(this.isMesh||this.isLine||this.isPoints){nt.geometry=rt(o.geometries,this.geometry);const ot=this.geometry.parameters;if(ot!==void 0&&ot.shapes!==void 0){const st=ot.shapes;if(Array.isArray(st))for(let at=0,lt=st.length;at0){nt.children=[];for(let ot=0;ot0){nt.animations=[];for(let ot=0;ot0&&(tt.geometries=ot),st.length>0&&(tt.materials=st),at.length>0&&(tt.textures=at),lt.length>0&&(tt.images=lt),ut.length>0&&(tt.shapes=ut),dt.length>0&&(tt.skeletons=dt),ht.length>0&&(tt.animations=ht),ct.length>0&&(tt.nodes=ct)}return tt.object=nt,tt;function it(ot){const st=[];for(const at in ot){const lt=ot[at];delete lt.metadata,st.push(lt)}return st}}clone(o){return new this.constructor().copy(this,o)}copy(o,et=!0){if(this.name=o.name,this.up.copy(o.up),this.position.copy(o.position),this.rotation.order=o.rotation.order,this.quaternion.copy(o.quaternion),this.scale.copy(o.scale),this.matrix.copy(o.matrix),this.matrixWorld.copy(o.matrixWorld),this.matrixAutoUpdate=o.matrixAutoUpdate,this.matrixWorldAutoUpdate=o.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=o.matrixWorldNeedsUpdate,this.layers.mask=o.layers.mask,this.visible=o.visible,this.castShadow=o.castShadow,this.receiveShadow=o.receiveShadow,this.frustumCulled=o.frustumCulled,this.renderOrder=o.renderOrder,this.animations=o.animations.slice(),this.userData=JSON.parse(JSON.stringify(o.userData)),et===!0)for(let tt=0;tt0?nt.multiplyScalar(1/Math.sqrt(rt)):nt.set(0,0,0)}static getBarycoord(o,et,tt,nt,rt){_v0$1.subVectors(nt,et),_v1$3.subVectors(tt,et),_v2$2.subVectors(o,et);const it=_v0$1.dot(_v0$1),ot=_v0$1.dot(_v1$3),st=_v0$1.dot(_v2$2),at=_v1$3.dot(_v1$3),lt=_v1$3.dot(_v2$2),ut=it*at-ot*ot;if(ut===0)return rt.set(0,0,0),null;const dt=1/ut,ht=(at*st-ot*lt)*dt,ct=(it*lt-ot*st)*dt;return rt.set(1-ht-ct,ct,ht)}static containsPoint(o,et,tt,nt){return this.getBarycoord(o,et,tt,nt,_v3$2)===null?!1:_v3$2.x>=0&&_v3$2.y>=0&&_v3$2.x+_v3$2.y<=1}static getInterpolation(o,et,tt,nt,rt,it,ot,st){return this.getBarycoord(o,et,tt,nt,_v3$2)===null?(st.x=0,st.y=0,"z"in st&&(st.z=0),"w"in st&&(st.w=0),null):(st.setScalar(0),st.addScaledVector(rt,_v3$2.x),st.addScaledVector(it,_v3$2.y),st.addScaledVector(ot,_v3$2.z),st)}static isFrontFacing(o,et,tt,nt){return _v0$1.subVectors(tt,et),_v1$3.subVectors(o,et),_v0$1.cross(_v1$3).dot(nt)<0}set(o,et,tt){return this.a.copy(o),this.b.copy(et),this.c.copy(tt),this}setFromPointsAndIndices(o,et,tt,nt){return this.a.copy(o[et]),this.b.copy(o[tt]),this.c.copy(o[nt]),this}setFromAttributeAndIndices(o,et,tt,nt){return this.a.fromBufferAttribute(o,et),this.b.fromBufferAttribute(o,tt),this.c.fromBufferAttribute(o,nt),this}clone(){return new this.constructor().copy(this)}copy(o){return this.a.copy(o.a),this.b.copy(o.b),this.c.copy(o.c),this}getArea(){return _v0$1.subVectors(this.c,this.b),_v1$3.subVectors(this.a,this.b),_v0$1.cross(_v1$3).length()*.5}getMidpoint(o){return o.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(o){return Triangle.getNormal(this.a,this.b,this.c,o)}getPlane(o){return o.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(o,et){return Triangle.getBarycoord(o,this.a,this.b,this.c,et)}getInterpolation(o,et,tt,nt,rt){return Triangle.getInterpolation(o,this.a,this.b,this.c,et,tt,nt,rt)}containsPoint(o){return Triangle.containsPoint(o,this.a,this.b,this.c)}isFrontFacing(o){return Triangle.isFrontFacing(this.a,this.b,this.c,o)}intersectsBox(o){return o.intersectsTriangle(this)}closestPointToPoint(o,et){const tt=this.a,nt=this.b,rt=this.c;let it,ot;_vab.subVectors(nt,tt),_vac.subVectors(rt,tt),_vap.subVectors(o,tt);const st=_vab.dot(_vap),at=_vac.dot(_vap);if(st<=0&&at<=0)return et.copy(tt);_vbp.subVectors(o,nt);const lt=_vab.dot(_vbp),ut=_vac.dot(_vbp);if(lt>=0&&ut<=lt)return et.copy(nt);const dt=st*ut-lt*at;if(dt<=0&&st>=0&<<=0)return it=st/(st-lt),et.copy(tt).addScaledVector(_vab,it);_vcp.subVectors(o,rt);const ht=_vab.dot(_vcp),ct=_vac.dot(_vcp);if(ct>=0&&ht<=ct)return et.copy(rt);const pt=ht*at-st*ct;if(pt<=0&&at>=0&&ct<=0)return ot=at/(at-ct),et.copy(tt).addScaledVector(_vac,ot);const ft=lt*ct-ht*ut;if(ft<=0&&ut-lt>=0&&ht-ct>=0)return _vbc.subVectors(rt,nt),ot=(ut-lt)/(ut-lt+(ht-ct)),et.copy(nt).addScaledVector(_vbc,ot);const gt=1/(ft+pt+dt);return it=pt*gt,ot=dt*gt,et.copy(tt).addScaledVector(_vab,it).addScaledVector(_vac,ot)}equals(o){return o.a.equals(this.a)&&o.b.equals(this.b)&&o.c.equals(this.c)}}const _colorKeywords={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},_hslA={h:0,s:0,l:0},_hslB={h:0,s:0,l:0};function hue2rgb(s,o,et){return et<0&&(et+=1),et>1&&(et-=1),et<1/6?s+(o-s)*6*et:et<1/2?o:et<2/3?s+(o-s)*6*(2/3-et):s}let Color$2=class{constructor(o,et,tt){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(o,et,tt)}set(o,et,tt){if(et===void 0&&tt===void 0){const nt=o;nt&&nt.isColor?this.copy(nt):typeof nt=="number"?this.setHex(nt):typeof nt=="string"&&this.setStyle(nt)}else this.setRGB(o,et,tt);return this}setScalar(o){return this.r=o,this.g=o,this.b=o,this}setHex(o,et=SRGBColorSpace$1){return o=Math.floor(o),this.r=(o>>16&255)/255,this.g=(o>>8&255)/255,this.b=(o&255)/255,ColorManagement.toWorkingColorSpace(this,et),this}setRGB(o,et,tt,nt=ColorManagement.workingColorSpace){return this.r=o,this.g=et,this.b=tt,ColorManagement.toWorkingColorSpace(this,nt),this}setHSL(o,et,tt,nt=ColorManagement.workingColorSpace){if(o=euclideanModulo(o,1),et=clamp$4(et,0,1),tt=clamp$4(tt,0,1),et===0)this.r=this.g=this.b=tt;else{const rt=tt<=.5?tt*(1+et):tt+et-tt*et,it=2*tt-rt;this.r=hue2rgb(it,rt,o+1/3),this.g=hue2rgb(it,rt,o),this.b=hue2rgb(it,rt,o-1/3)}return ColorManagement.toWorkingColorSpace(this,nt),this}setStyle(o,et=SRGBColorSpace$1){function tt(rt){rt!==void 0&&parseFloat(rt)<1&&console.warn("THREE.Color: Alpha component of "+o+" will be ignored.")}let nt;if(nt=/^(\w+)\(([^\)]*)\)/.exec(o)){let rt;const it=nt[1],ot=nt[2];switch(it){case"rgb":case"rgba":if(rt=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ot))return tt(rt[4]),this.setRGB(Math.min(255,parseInt(rt[1],10))/255,Math.min(255,parseInt(rt[2],10))/255,Math.min(255,parseInt(rt[3],10))/255,et);if(rt=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ot))return tt(rt[4]),this.setRGB(Math.min(100,parseInt(rt[1],10))/100,Math.min(100,parseInt(rt[2],10))/100,Math.min(100,parseInt(rt[3],10))/100,et);break;case"hsl":case"hsla":if(rt=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ot))return tt(rt[4]),this.setHSL(parseFloat(rt[1])/360,parseFloat(rt[2])/100,parseFloat(rt[3])/100,et);break;default:console.warn("THREE.Color: Unknown color model "+o)}}else if(nt=/^\#([A-Fa-f\d]+)$/.exec(o)){const rt=nt[1],it=rt.length;if(it===3)return this.setRGB(parseInt(rt.charAt(0),16)/15,parseInt(rt.charAt(1),16)/15,parseInt(rt.charAt(2),16)/15,et);if(it===6)return this.setHex(parseInt(rt,16),et);console.warn("THREE.Color: Invalid hex color "+o)}else if(o&&o.length>0)return this.setColorName(o,et);return this}setColorName(o,et=SRGBColorSpace$1){const tt=_colorKeywords[o.toLowerCase()];return tt!==void 0?this.setHex(tt,et):console.warn("THREE.Color: Unknown color "+o),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(o){return this.r=o.r,this.g=o.g,this.b=o.b,this}copySRGBToLinear(o){return this.r=SRGBToLinear(o.r),this.g=SRGBToLinear(o.g),this.b=SRGBToLinear(o.b),this}copyLinearToSRGB(o){return this.r=LinearToSRGB(o.r),this.g=LinearToSRGB(o.g),this.b=LinearToSRGB(o.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(o=SRGBColorSpace$1){return ColorManagement.fromWorkingColorSpace(_color.copy(this),o),Math.round(clamp$4(_color.r*255,0,255))*65536+Math.round(clamp$4(_color.g*255,0,255))*256+Math.round(clamp$4(_color.b*255,0,255))}getHexString(o=SRGBColorSpace$1){return("000000"+this.getHex(o).toString(16)).slice(-6)}getHSL(o,et=ColorManagement.workingColorSpace){ColorManagement.fromWorkingColorSpace(_color.copy(this),et);const tt=_color.r,nt=_color.g,rt=_color.b,it=Math.max(tt,nt,rt),ot=Math.min(tt,nt,rt);let st,at;const lt=(ot+it)/2;if(ot===it)st=0,at=0;else{const ut=it-ot;switch(at=lt<=.5?ut/(it+ot):ut/(2-it-ot),it){case tt:st=(nt-rt)/ut+(nt0!=o>0&&this.version++,this._alphaTest=o}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(o){if(o!==void 0)for(const et in o){const tt=o[et];if(tt===void 0){console.warn(`THREE.Material: parameter '${et}' has value of undefined.`);continue}const nt=this[et];if(nt===void 0){console.warn(`THREE.Material: '${et}' is not a property of THREE.${this.type}.`);continue}nt&&nt.isColor?nt.set(tt):nt&&nt.isVector3&&tt&&tt.isVector3?nt.copy(tt):this[et]=tt}}toJSON(o){const et=o===void 0||typeof o=="string";et&&(o={textures:{},images:{}});const tt={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};tt.uuid=this.uuid,tt.type=this.type,this.name!==""&&(tt.name=this.name),this.color&&this.color.isColor&&(tt.color=this.color.getHex()),this.roughness!==void 0&&(tt.roughness=this.roughness),this.metalness!==void 0&&(tt.metalness=this.metalness),this.sheen!==void 0&&(tt.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(tt.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(tt.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(tt.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(tt.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(tt.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(tt.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(tt.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(tt.shininess=this.shininess),this.clearcoat!==void 0&&(tt.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(tt.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(tt.clearcoatMap=this.clearcoatMap.toJSON(o).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(tt.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(o).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(tt.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(o).uuid,tt.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.dispersion!==void 0&&(tt.dispersion=this.dispersion),this.iridescence!==void 0&&(tt.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(tt.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(tt.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(tt.iridescenceMap=this.iridescenceMap.toJSON(o).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(tt.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(o).uuid),this.anisotropy!==void 0&&(tt.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(tt.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(tt.anisotropyMap=this.anisotropyMap.toJSON(o).uuid),this.map&&this.map.isTexture&&(tt.map=this.map.toJSON(o).uuid),this.matcap&&this.matcap.isTexture&&(tt.matcap=this.matcap.toJSON(o).uuid),this.alphaMap&&this.alphaMap.isTexture&&(tt.alphaMap=this.alphaMap.toJSON(o).uuid),this.lightMap&&this.lightMap.isTexture&&(tt.lightMap=this.lightMap.toJSON(o).uuid,tt.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(tt.aoMap=this.aoMap.toJSON(o).uuid,tt.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(tt.bumpMap=this.bumpMap.toJSON(o).uuid,tt.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(tt.normalMap=this.normalMap.toJSON(o).uuid,tt.normalMapType=this.normalMapType,tt.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(tt.displacementMap=this.displacementMap.toJSON(o).uuid,tt.displacementScale=this.displacementScale,tt.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(tt.roughnessMap=this.roughnessMap.toJSON(o).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(tt.metalnessMap=this.metalnessMap.toJSON(o).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(tt.emissiveMap=this.emissiveMap.toJSON(o).uuid),this.specularMap&&this.specularMap.isTexture&&(tt.specularMap=this.specularMap.toJSON(o).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(tt.specularIntensityMap=this.specularIntensityMap.toJSON(o).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(tt.specularColorMap=this.specularColorMap.toJSON(o).uuid),this.envMap&&this.envMap.isTexture&&(tt.envMap=this.envMap.toJSON(o).uuid,this.combine!==void 0&&(tt.combine=this.combine)),this.envMapRotation!==void 0&&(tt.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(tt.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(tt.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(tt.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(tt.gradientMap=this.gradientMap.toJSON(o).uuid),this.transmission!==void 0&&(tt.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(tt.transmissionMap=this.transmissionMap.toJSON(o).uuid),this.thickness!==void 0&&(tt.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(tt.thicknessMap=this.thicknessMap.toJSON(o).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(tt.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(tt.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(tt.size=this.size),this.shadowSide!==null&&(tt.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(tt.sizeAttenuation=this.sizeAttenuation),this.blending!==NormalBlending&&(tt.blending=this.blending),this.side!==FrontSide&&(tt.side=this.side),this.vertexColors===!0&&(tt.vertexColors=!0),this.opacity<1&&(tt.opacity=this.opacity),this.transparent===!0&&(tt.transparent=!0),this.blendSrc!==SrcAlphaFactor&&(tt.blendSrc=this.blendSrc),this.blendDst!==OneMinusSrcAlphaFactor&&(tt.blendDst=this.blendDst),this.blendEquation!==AddEquation&&(tt.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(tt.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(tt.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(tt.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(tt.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(tt.blendAlpha=this.blendAlpha),this.depthFunc!==LessEqualDepth&&(tt.depthFunc=this.depthFunc),this.depthTest===!1&&(tt.depthTest=this.depthTest),this.depthWrite===!1&&(tt.depthWrite=this.depthWrite),this.colorWrite===!1&&(tt.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(tt.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==AlwaysStencilFunc&&(tt.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(tt.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(tt.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==KeepStencilOp&&(tt.stencilFail=this.stencilFail),this.stencilZFail!==KeepStencilOp&&(tt.stencilZFail=this.stencilZFail),this.stencilZPass!==KeepStencilOp&&(tt.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(tt.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(tt.rotation=this.rotation),this.polygonOffset===!0&&(tt.polygonOffset=!0),this.polygonOffsetFactor!==0&&(tt.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(tt.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(tt.linewidth=this.linewidth),this.dashSize!==void 0&&(tt.dashSize=this.dashSize),this.gapSize!==void 0&&(tt.gapSize=this.gapSize),this.scale!==void 0&&(tt.scale=this.scale),this.dithering===!0&&(tt.dithering=!0),this.alphaTest>0&&(tt.alphaTest=this.alphaTest),this.alphaHash===!0&&(tt.alphaHash=!0),this.alphaToCoverage===!0&&(tt.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(tt.premultipliedAlpha=!0),this.forceSinglePass===!0&&(tt.forceSinglePass=!0),this.wireframe===!0&&(tt.wireframe=!0),this.wireframeLinewidth>1&&(tt.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(tt.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(tt.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(tt.flatShading=!0),this.visible===!1&&(tt.visible=!1),this.toneMapped===!1&&(tt.toneMapped=!1),this.fog===!1&&(tt.fog=!1),Object.keys(this.userData).length>0&&(tt.userData=this.userData);function nt(rt){const it=[];for(const ot in rt){const st=rt[ot];delete st.metadata,it.push(st)}return it}if(et){const rt=nt(o.textures),it=nt(o.images);rt.length>0&&(tt.textures=rt),it.length>0&&(tt.images=it)}return tt}clone(){return new this.constructor().copy(this)}copy(o){this.name=o.name,this.blending=o.blending,this.side=o.side,this.vertexColors=o.vertexColors,this.opacity=o.opacity,this.transparent=o.transparent,this.blendSrc=o.blendSrc,this.blendDst=o.blendDst,this.blendEquation=o.blendEquation,this.blendSrcAlpha=o.blendSrcAlpha,this.blendDstAlpha=o.blendDstAlpha,this.blendEquationAlpha=o.blendEquationAlpha,this.blendColor.copy(o.blendColor),this.blendAlpha=o.blendAlpha,this.depthFunc=o.depthFunc,this.depthTest=o.depthTest,this.depthWrite=o.depthWrite,this.stencilWriteMask=o.stencilWriteMask,this.stencilFunc=o.stencilFunc,this.stencilRef=o.stencilRef,this.stencilFuncMask=o.stencilFuncMask,this.stencilFail=o.stencilFail,this.stencilZFail=o.stencilZFail,this.stencilZPass=o.stencilZPass,this.stencilWrite=o.stencilWrite;const et=o.clippingPlanes;let tt=null;if(et!==null){const nt=et.length;tt=new Array(nt);for(let rt=0;rt!==nt;++rt)tt[rt]=et[rt].clone()}return this.clippingPlanes=tt,this.clipIntersection=o.clipIntersection,this.clipShadows=o.clipShadows,this.shadowSide=o.shadowSide,this.colorWrite=o.colorWrite,this.precision=o.precision,this.polygonOffset=o.polygonOffset,this.polygonOffsetFactor=o.polygonOffsetFactor,this.polygonOffsetUnits=o.polygonOffsetUnits,this.dithering=o.dithering,this.alphaTest=o.alphaTest,this.alphaHash=o.alphaHash,this.alphaToCoverage=o.alphaToCoverage,this.premultipliedAlpha=o.premultipliedAlpha,this.forceSinglePass=o.forceSinglePass,this.visible=o.visible,this.toneMapped=o.toneMapped,this.userData=JSON.parse(JSON.stringify(o.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(o){o===!0&&this.version++}}class MeshBasicMaterial extends Material{constructor(o){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Color$2(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.map=o.map,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.specularMap=o.specularMap,this.alphaMap=o.alphaMap,this.envMap=o.envMap,this.envMapRotation.copy(o.envMapRotation),this.combine=o.combine,this.reflectivity=o.reflectivity,this.refractionRatio=o.refractionRatio,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.fog=o.fog,this}}const _tables=_generateTables();function _generateTables(){const s=new ArrayBuffer(4),o=new Float32Array(s),et=new Uint32Array(s),tt=new Uint32Array(512),nt=new Uint32Array(512);for(let st=0;st<256;++st){const at=st-127;at<-27?(tt[st]=0,tt[st|256]=32768,nt[st]=24,nt[st|256]=24):at<-14?(tt[st]=1024>>-at-14,tt[st|256]=1024>>-at-14|32768,nt[st]=-at-1,nt[st|256]=-at-1):at<=15?(tt[st]=at+15<<10,tt[st|256]=at+15<<10|32768,nt[st]=13,nt[st|256]=13):at<128?(tt[st]=31744,tt[st|256]=64512,nt[st]=24,nt[st|256]=24):(tt[st]=31744,tt[st|256]=64512,nt[st]=13,nt[st|256]=13)}const rt=new Uint32Array(2048),it=new Uint32Array(64),ot=new Uint32Array(64);for(let st=1;st<1024;++st){let at=st<<13,lt=0;for(;!(at&8388608);)at<<=1,lt-=8388608;at&=-8388609,lt+=947912704,rt[st]=at|lt}for(let st=1024;st<2048;++st)rt[st]=939524096+(st-1024<<13);for(let st=1;st<31;++st)it[st]=st<<23;it[31]=1199570944,it[32]=2147483648;for(let st=33;st<63;++st)it[st]=2147483648+(st-32<<23);it[63]=3347054592;for(let st=1;st<64;++st)st!==32&&(ot[st]=1024);return{floatView:o,uint32View:et,baseTable:tt,shiftTable:nt,mantissaTable:rt,exponentTable:it,offsetTable:ot}}function toHalfFloat(s){Math.abs(s)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),s=clamp$4(s,-65504,65504),_tables.floatView[0]=s;const o=_tables.uint32View[0],et=o>>23&511;return _tables.baseTable[et]+((o&8388607)>>_tables.shiftTable[et])}function fromHalfFloat(s){const o=s>>10;return _tables.uint32View[0]=_tables.mantissaTable[_tables.offsetTable[o]+(s&1023)]+_tables.exponentTable[o],_tables.floatView[0]}const DataUtils={toHalfFloat,fromHalfFloat},_vector$9=new Vector3,_vector2$1=new Vector2;class BufferAttribute{constructor(o,et,tt=!1){if(Array.isArray(o))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=o,this.itemSize=et,this.count=o!==void 0?o.length/et:0,this.normalized=tt,this.usage=StaticDrawUsage,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=FloatType,this.version=0}onUploadCallback(){}set needsUpdate(o){o===!0&&this.version++}get updateRange(){return warnOnce("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(o){return this.usage=o,this}addUpdateRange(o,et){this.updateRanges.push({start:o,count:et})}clearUpdateRanges(){this.updateRanges.length=0}copy(o){return this.name=o.name,this.array=new o.array.constructor(o.array),this.itemSize=o.itemSize,this.count=o.count,this.normalized=o.normalized,this.usage=o.usage,this.gpuType=o.gpuType,this}copyAt(o,et,tt){o*=this.itemSize,tt*=et.itemSize;for(let nt=0,rt=this.itemSize;nt0&&(o.userData=this.userData),this.parameters!==void 0){const st=this.parameters;for(const at in st)st[at]!==void 0&&(o[at]=st[at]);return o}o.data={attributes:{}};const et=this.index;et!==null&&(o.data.index={type:et.array.constructor.name,array:Array.prototype.slice.call(et.array)});const tt=this.attributes;for(const st in tt){const at=tt[st];o.data.attributes[st]=at.toJSON(o.data)}const nt={};let rt=!1;for(const st in this.morphAttributes){const at=this.morphAttributes[st],lt=[];for(let ut=0,dt=at.length;ut0&&(nt[st]=lt,rt=!0)}rt&&(o.data.morphAttributes=nt,o.data.morphTargetsRelative=this.morphTargetsRelative);const it=this.groups;it.length>0&&(o.data.groups=JSON.parse(JSON.stringify(it)));const ot=this.boundingSphere;return ot!==null&&(o.data.boundingSphere={center:ot.center.toArray(),radius:ot.radius}),o}clone(){return new this.constructor().copy(this)}copy(o){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const et={};this.name=o.name;const tt=o.index;tt!==null&&this.setIndex(tt.clone(et));const nt=o.attributes;for(const at in nt){const lt=nt[at];this.setAttribute(at,lt.clone(et))}const rt=o.morphAttributes;for(const at in rt){const lt=[],ut=rt[at];for(let dt=0,ht=ut.length;dt0){const nt=et[tt[0]];if(nt!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let rt=0,it=nt.length;rt(o.far-o.near)**2))&&(_inverseMatrix$3.copy(rt).invert(),_ray$3.copy(o.ray).applyMatrix4(_inverseMatrix$3),!(tt.boundingBox!==null&&_ray$3.intersectsBox(tt.boundingBox)===!1)&&this._computeIntersections(o,et,_ray$3)))}_computeIntersections(o,et,tt){let nt;const rt=this.geometry,it=this.material,ot=rt.index,st=rt.attributes.position,at=rt.attributes.uv,lt=rt.attributes.uv1,ut=rt.attributes.normal,dt=rt.groups,ht=rt.drawRange;if(ot!==null)if(Array.isArray(it))for(let ct=0,pt=dt.length;ctet.far?null:{distance:at,point:_intersectionPointWorld.clone(),object:s}}function checkGeometryIntersection(s,o,et,tt,nt,rt,it,ot,st,at){s.getVertexPosition(ot,_vA$1),s.getVertexPosition(st,_vB$1),s.getVertexPosition(at,_vC$1);const lt=checkIntersection$1(s,o,et,tt,_vA$1,_vB$1,_vC$1,_intersectionPoint);if(lt){nt&&(_uvA$1.fromBufferAttribute(nt,ot),_uvB$1.fromBufferAttribute(nt,st),_uvC$1.fromBufferAttribute(nt,at),lt.uv=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_uvA$1,_uvB$1,_uvC$1,new Vector2)),rt&&(_uvA$1.fromBufferAttribute(rt,ot),_uvB$1.fromBufferAttribute(rt,st),_uvC$1.fromBufferAttribute(rt,at),lt.uv1=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_uvA$1,_uvB$1,_uvC$1,new Vector2)),it&&(_normalA.fromBufferAttribute(it,ot),_normalB.fromBufferAttribute(it,st),_normalC.fromBufferAttribute(it,at),lt.normal=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_normalA,_normalB,_normalC,new Vector3),lt.normal.dot(tt.direction)>0&<.normal.multiplyScalar(-1));const ut={a:ot,b:st,c:at,normal:new Vector3,materialIndex:0};Triangle.getNormal(_vA$1,_vB$1,_vC$1,ut.normal),lt.face=ut}return lt}class BoxGeometry extends BufferGeometry{constructor(o=1,et=1,tt=1,nt=1,rt=1,it=1){super(),this.type="BoxGeometry",this.parameters={width:o,height:et,depth:tt,widthSegments:nt,heightSegments:rt,depthSegments:it};const ot=this;nt=Math.floor(nt),rt=Math.floor(rt),it=Math.floor(it);const st=[],at=[],lt=[],ut=[];let dt=0,ht=0;ct("z","y","x",-1,-1,tt,et,o,it,rt,0),ct("z","y","x",1,-1,tt,et,-o,it,rt,1),ct("x","z","y",1,1,o,tt,et,nt,it,2),ct("x","z","y",1,-1,o,tt,-et,nt,it,3),ct("x","y","z",1,-1,o,et,tt,nt,rt,4),ct("x","y","z",-1,-1,o,et,-tt,nt,rt,5),this.setIndex(st),this.setAttribute("position",new Float32BufferAttribute(at,3)),this.setAttribute("normal",new Float32BufferAttribute(lt,3)),this.setAttribute("uv",new Float32BufferAttribute(ut,2));function ct(pt,ft,gt,yt,Ut,Ft,mt,vt,At,Lt,Rt){const St=Ft/At,Tt=mt/Lt,Bt=Ft/2,xt=mt/2,Ct=vt/2,kt=At+1,Nt=Lt+1;let Ot=0,Wt=0;const Dt=new Vector3;for(let Et=0;Et0?1:-1,lt.push(Dt.x,Dt.y,Dt.z),ut.push(zt/At),ut.push(1-Et/Lt),Ot+=1}}for(let Et=0;Et>8&255]+_lut[s>>16&255]+_lut[s>>24&255]+"-"+_lut[o&255]+_lut[o>>8&255]+"-"+_lut[o>>16&15|64]+_lut[o>>24&255]+"-"+_lut[et&63|128]+_lut[et>>8&255]+"-"+_lut[et>>16&255]+_lut[et>>24&255]+_lut[tt&255]+_lut[tt>>8&255]+_lut[tt>>16&255]+_lut[tt>>24&255]).toLowerCase()}function clamp$4(s,o,et){return Math.max(o,Math.min(et,s))}function euclideanModulo(s,o){return(s%o+o)%o}function mapLinear(s,o,et,tt,nt){return tt+(s-o)*(nt-tt)/(et-o)}function inverseLerp(s,o,et){return s!==o?(et-s)/(o-s):0}function lerp(s,o,et){return(1-et)*s+et*o}function damp(s,o,et,tt){return lerp(s,o,1-Math.exp(-et*tt))}function pingpong(s,o=1){return o-Math.abs(euclideanModulo(s,o*2)-o)}function smoothstep(s,o,et){return s<=o?0:s>=et?1:(s=(s-o)/(et-o),s*s*(3-2*s))}function smootherstep(s,o,et){return s<=o?0:s>=et?1:(s=(s-o)/(et-o),s*s*s*(s*(s*6-15)+10))}function randInt(s,o){return s+Math.floor(Math.random()*(o-s+1))}function randFloat(s,o){return s+Math.random()*(o-s)}function randFloatSpread(s){return s*(.5-Math.random())}function seededRandom(s){s!==void 0&&(_seed=s);let o=_seed+=1831565813;return o=Math.imul(o^o>>>15,o|1),o^=o+Math.imul(o^o>>>7,o|61),((o^o>>>14)>>>0)/4294967296}function degToRad(s){return s*DEG2RAD$1}function radToDeg(s){return s*RAD2DEG}function isPowerOfTwo(s){return(s&s-1)===0&&s!==0}function ceilPowerOfTwo(s){return Math.pow(2,Math.ceil(Math.log(s)/Math.LN2))}function floorPowerOfTwo(s){return Math.pow(2,Math.floor(Math.log(s)/Math.LN2))}function setQuaternionFromProperEuler(s,o,et,tt,nt){const rt=Math.cos,it=Math.sin,ot=rt(et/2),st=it(et/2),at=rt((o+tt)/2),lt=it((o+tt)/2),ut=rt((o-tt)/2),dt=it((o-tt)/2),ht=rt((tt-o)/2),ct=it((tt-o)/2);switch(nt){case"XYX":s.set(ot*lt,st*ut,st*dt,ot*at);break;case"YZY":s.set(st*dt,ot*lt,st*ut,ot*at);break;case"ZXZ":s.set(st*ut,st*dt,ot*lt,ot*at);break;case"XZX":s.set(ot*lt,st*ct,st*ht,ot*at);break;case"YXY":s.set(st*ht,ot*lt,st*ct,ot*at);break;case"ZYZ":s.set(st*ct,st*ht,ot*lt,ot*at);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+nt)}}function denormalize(s,o){switch(o.constructor){case Float32Array:return s;case Uint32Array:return s/4294967295;case Uint16Array:return s/65535;case Uint8Array:return s/255;case Int32Array:return Math.max(s/2147483647,-1);case Int16Array:return Math.max(s/32767,-1);case Int8Array:return Math.max(s/127,-1);default:throw new Error("Invalid component type.")}}function normalize(s,o){switch(o.constructor){case Float32Array:return s;case Uint32Array:return Math.round(s*4294967295);case Uint16Array:return Math.round(s*65535);case Uint8Array:return Math.round(s*255);case Int32Array:return Math.round(s*2147483647);case Int16Array:return Math.round(s*32767);case Int8Array:return Math.round(s*127);default:throw new Error("Invalid component type.")}}const MathUtils={DEG2RAD:DEG2RAD$1,RAD2DEG,generateUUID,clamp:clamp$4,euclideanModulo,mapLinear,inverseLerp,lerp,damp,pingpong,smoothstep,smootherstep,randInt,randFloat,randFloatSpread,seededRandom,degToRad,radToDeg,isPowerOfTwo,ceilPowerOfTwo,floorPowerOfTwo,setQuaternionFromProperEuler,normalize,denormalize};class Vector2{constructor(o=0,et=0){Vector2.prototype.isVector2=!0,this.x=o,this.y=et}get width(){return this.x}set width(o){this.x=o}get height(){return this.y}set height(o){this.y=o}set(o,et){return this.x=o,this.y=et,this}setScalar(o){return this.x=o,this.y=o,this}setX(o){return this.x=o,this}setY(o){return this.y=o,this}setComponent(o,et){switch(o){case 0:this.x=et;break;case 1:this.y=et;break;default:throw new Error("index is out of range: "+o)}return this}getComponent(o){switch(o){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+o)}}clone(){return new this.constructor(this.x,this.y)}copy(o){return this.x=o.x,this.y=o.y,this}add(o){return this.x+=o.x,this.y+=o.y,this}addScalar(o){return this.x+=o,this.y+=o,this}addVectors(o,et){return this.x=o.x+et.x,this.y=o.y+et.y,this}addScaledVector(o,et){return this.x+=o.x*et,this.y+=o.y*et,this}sub(o){return this.x-=o.x,this.y-=o.y,this}subScalar(o){return this.x-=o,this.y-=o,this}subVectors(o,et){return this.x=o.x-et.x,this.y=o.y-et.y,this}multiply(o){return this.x*=o.x,this.y*=o.y,this}multiplyScalar(o){return this.x*=o,this.y*=o,this}divide(o){return this.x/=o.x,this.y/=o.y,this}divideScalar(o){return this.multiplyScalar(1/o)}applyMatrix3(o){const et=this.x,tt=this.y,nt=o.elements;return this.x=nt[0]*et+nt[3]*tt+nt[6],this.y=nt[1]*et+nt[4]*tt+nt[7],this}min(o){return this.x=Math.min(this.x,o.x),this.y=Math.min(this.y,o.y),this}max(o){return this.x=Math.max(this.x,o.x),this.y=Math.max(this.y,o.y),this}clamp(o,et){return this.x=Math.max(o.x,Math.min(et.x,this.x)),this.y=Math.max(o.y,Math.min(et.y,this.y)),this}clampScalar(o,et){return this.x=Math.max(o,Math.min(et,this.x)),this.y=Math.max(o,Math.min(et,this.y)),this}clampLength(o,et){const tt=this.length();return this.divideScalar(tt||1).multiplyScalar(Math.max(o,Math.min(et,tt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(o){return this.x*o.x+this.y*o.y}cross(o){return this.x*o.y-this.y*o.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(o){const et=Math.sqrt(this.lengthSq()*o.lengthSq());if(et===0)return Math.PI/2;const tt=this.dot(o)/et;return Math.acos(clamp$4(tt,-1,1))}distanceTo(o){return Math.sqrt(this.distanceToSquared(o))}distanceToSquared(o){const et=this.x-o.x,tt=this.y-o.y;return et*et+tt*tt}manhattanDistanceTo(o){return Math.abs(this.x-o.x)+Math.abs(this.y-o.y)}setLength(o){return this.normalize().multiplyScalar(o)}lerp(o,et){return this.x+=(o.x-this.x)*et,this.y+=(o.y-this.y)*et,this}lerpVectors(o,et,tt){return this.x=o.x+(et.x-o.x)*tt,this.y=o.y+(et.y-o.y)*tt,this}equals(o){return o.x===this.x&&o.y===this.y}fromArray(o,et=0){return this.x=o[et],this.y=o[et+1],this}toArray(o=[],et=0){return o[et]=this.x,o[et+1]=this.y,o}fromBufferAttribute(o,et){return this.x=o.getX(et),this.y=o.getY(et),this}rotateAround(o,et){const tt=Math.cos(et),nt=Math.sin(et),rt=this.x-o.x,it=this.y-o.y;return this.x=rt*tt-it*nt+o.x,this.y=rt*nt+it*tt+o.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Matrix3{constructor(o,et,tt,nt,rt,it,ot,st,at){Matrix3.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],o!==void 0&&this.set(o,et,tt,nt,rt,it,ot,st,at)}set(o,et,tt,nt,rt,it,ot,st,at){const lt=this.elements;return lt[0]=o,lt[1]=nt,lt[2]=ot,lt[3]=et,lt[4]=rt,lt[5]=st,lt[6]=tt,lt[7]=it,lt[8]=at,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(o){const et=this.elements,tt=o.elements;return et[0]=tt[0],et[1]=tt[1],et[2]=tt[2],et[3]=tt[3],et[4]=tt[4],et[5]=tt[5],et[6]=tt[6],et[7]=tt[7],et[8]=tt[8],this}extractBasis(o,et,tt){return o.setFromMatrix3Column(this,0),et.setFromMatrix3Column(this,1),tt.setFromMatrix3Column(this,2),this}setFromMatrix4(o){const et=o.elements;return this.set(et[0],et[4],et[8],et[1],et[5],et[9],et[2],et[6],et[10]),this}multiply(o){return this.multiplyMatrices(this,o)}premultiply(o){return this.multiplyMatrices(o,this)}multiplyMatrices(o,et){const tt=o.elements,nt=et.elements,rt=this.elements,it=tt[0],ot=tt[3],st=tt[6],at=tt[1],lt=tt[4],ut=tt[7],dt=tt[2],ht=tt[5],ct=tt[8],pt=nt[0],ft=nt[3],gt=nt[6],yt=nt[1],Ut=nt[4],Ft=nt[7],mt=nt[2],vt=nt[5],At=nt[8];return rt[0]=it*pt+ot*yt+st*mt,rt[3]=it*ft+ot*Ut+st*vt,rt[6]=it*gt+ot*Ft+st*At,rt[1]=at*pt+lt*yt+ut*mt,rt[4]=at*ft+lt*Ut+ut*vt,rt[7]=at*gt+lt*Ft+ut*At,rt[2]=dt*pt+ht*yt+ct*mt,rt[5]=dt*ft+ht*Ut+ct*vt,rt[8]=dt*gt+ht*Ft+ct*At,this}multiplyScalar(o){const et=this.elements;return et[0]*=o,et[3]*=o,et[6]*=o,et[1]*=o,et[4]*=o,et[7]*=o,et[2]*=o,et[5]*=o,et[8]*=o,this}determinant(){const o=this.elements,et=o[0],tt=o[1],nt=o[2],rt=o[3],it=o[4],ot=o[5],st=o[6],at=o[7],lt=o[8];return et*it*lt-et*ot*at-tt*rt*lt+tt*ot*st+nt*rt*at-nt*it*st}invert(){const o=this.elements,et=o[0],tt=o[1],nt=o[2],rt=o[3],it=o[4],ot=o[5],st=o[6],at=o[7],lt=o[8],ut=lt*it-ot*at,dt=ot*st-lt*rt,ht=at*rt-it*st,ct=et*ut+tt*dt+nt*ht;if(ct===0)return this.set(0,0,0,0,0,0,0,0,0);const pt=1/ct;return o[0]=ut*pt,o[1]=(nt*at-lt*tt)*pt,o[2]=(ot*tt-nt*it)*pt,o[3]=dt*pt,o[4]=(lt*et-nt*st)*pt,o[5]=(nt*rt-ot*et)*pt,o[6]=ht*pt,o[7]=(tt*st-at*et)*pt,o[8]=(it*et-tt*rt)*pt,this}transpose(){let o;const et=this.elements;return o=et[1],et[1]=et[3],et[3]=o,o=et[2],et[2]=et[6],et[6]=o,o=et[5],et[5]=et[7],et[7]=o,this}getNormalMatrix(o){return this.setFromMatrix4(o).invert().transpose()}transposeIntoArray(o){const et=this.elements;return o[0]=et[0],o[1]=et[3],o[2]=et[6],o[3]=et[1],o[4]=et[4],o[5]=et[7],o[6]=et[2],o[7]=et[5],o[8]=et[8],this}setUvTransform(o,et,tt,nt,rt,it,ot){const st=Math.cos(rt),at=Math.sin(rt);return this.set(tt*st,tt*at,-tt*(st*it+at*ot)+it+o,-nt*at,nt*st,-nt*(-at*it+st*ot)+ot+et,0,0,1),this}scale(o,et){return this.premultiply(_m3.makeScale(o,et)),this}rotate(o){return this.premultiply(_m3.makeRotation(-o)),this}translate(o,et){return this.premultiply(_m3.makeTranslation(o,et)),this}makeTranslation(o,et){return o.isVector2?this.set(1,0,o.x,0,1,o.y,0,0,1):this.set(1,0,o,0,1,et,0,0,1),this}makeRotation(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(et,-tt,0,tt,et,0,0,0,1),this}makeScale(o,et){return this.set(o,0,0,0,et,0,0,0,1),this}equals(o){const et=this.elements,tt=o.elements;for(let nt=0;nt<9;nt++)if(et[nt]!==tt[nt])return!1;return!0}fromArray(o,et=0){for(let tt=0;tt<9;tt++)this.elements[tt]=o[tt+et];return this}toArray(o=[],et=0){const tt=this.elements;return o[et]=tt[0],o[et+1]=tt[1],o[et+2]=tt[2],o[et+3]=tt[3],o[et+4]=tt[4],o[et+5]=tt[5],o[et+6]=tt[6],o[et+7]=tt[7],o[et+8]=tt[8],o}clone(){return new this.constructor().fromArray(this.elements)}}const _m3=new Matrix3;function arrayNeedsUint32(s){for(let o=s.length-1;o>=0;--o)if(s[o]>=65535)return!0;return!1}const TYPED_ARRAYS={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function getTypedArray(s,o){return new TYPED_ARRAYS[s](o)}function createElementNS(s){return document.createElementNS("http://www.w3.org/1999/xhtml",s)}function createCanvasElement(){const s=createElementNS("canvas");return s.style.display="block",s}const _cache={};function warnOnce(s){s in _cache||(_cache[s]=!0,console.warn(s))}function probeAsync(s,o,et){return new Promise(function(tt,nt){function rt(){switch(s.clientWaitSync(o,s.SYNC_FLUSH_COMMANDS_BIT,0)){case s.WAIT_FAILED:nt();break;case s.TIMEOUT_EXPIRED:setTimeout(rt,et);break;default:tt()}}setTimeout(rt,et)})}const LINEAR_SRGB_TO_LINEAR_DISPLAY_P3=new Matrix3().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),LINEAR_DISPLAY_P3_TO_LINEAR_SRGB=new Matrix3().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),COLOR_SPACES={[LinearSRGBColorSpace$1]:{transfer:LinearTransfer,primaries:Rec709Primaries,toReference:s=>s,fromReference:s=>s},[SRGBColorSpace$1]:{transfer:SRGBTransfer,primaries:Rec709Primaries,toReference:s=>s.convertSRGBToLinear(),fromReference:s=>s.convertLinearToSRGB()},[LinearDisplayP3ColorSpace]:{transfer:LinearTransfer,primaries:P3Primaries,toReference:s=>s.applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),fromReference:s=>s.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3)},[DisplayP3ColorSpace]:{transfer:SRGBTransfer,primaries:P3Primaries,toReference:s=>s.convertSRGBToLinear().applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),fromReference:s=>s.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3).convertLinearToSRGB()}},SUPPORTED_WORKING_COLOR_SPACES=new Set([LinearSRGBColorSpace$1,LinearDisplayP3ColorSpace]),ColorManagement={enabled:!0,_workingColorSpace:LinearSRGBColorSpace$1,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(s){if(!SUPPORTED_WORKING_COLOR_SPACES.has(s))throw new Error(`Unsupported working color space, "${s}".`);this._workingColorSpace=s},convert:function(s,o,et){if(this.enabled===!1||o===et||!o||!et)return s;const tt=COLOR_SPACES[o].toReference,nt=COLOR_SPACES[et].fromReference;return nt(tt(s))},fromWorkingColorSpace:function(s,o){return this.convert(s,this._workingColorSpace,o)},toWorkingColorSpace:function(s,o){return this.convert(s,o,this._workingColorSpace)},getPrimaries:function(s){return COLOR_SPACES[s].primaries},getTransfer:function(s){return s===NoColorSpace?LinearTransfer:COLOR_SPACES[s].transfer}};function SRGBToLinear(s){return s<.04045?s*.0773993808:Math.pow(s*.9478672986+.0521327014,2.4)}function LinearToSRGB(s){return s<.0031308?s*12.92:1.055*Math.pow(s,.41666)-.055}let _canvas;class ImageUtils{static getDataURL(o){if(/^data:/i.test(o.src)||typeof HTMLCanvasElement>"u")return o.src;let et;if(o instanceof HTMLCanvasElement)et=o;else{_canvas===void 0&&(_canvas=createElementNS("canvas")),_canvas.width=o.width,_canvas.height=o.height;const tt=_canvas.getContext("2d");o instanceof ImageData?tt.putImageData(o,0,0):tt.drawImage(o,0,0,o.width,o.height),et=_canvas}return et.width>2048||et.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",o),et.toDataURL("image/jpeg",.6)):et.toDataURL("image/png")}static sRGBToLinear(o){if(typeof HTMLImageElement<"u"&&o instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&o instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&o instanceof ImageBitmap){const et=createElementNS("canvas");et.width=o.width,et.height=o.height;const tt=et.getContext("2d");tt.drawImage(o,0,0,o.width,o.height);const nt=tt.getImageData(0,0,o.width,o.height),rt=nt.data;for(let it=0;it0&&(tt.userData=this.userData),et||(o.textures[this.uuid]=tt),tt}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(o){if(this.mapping!==UVMapping)return o;if(o.applyMatrix3(this.matrix),o.x<0||o.x>1)switch(this.wrapS){case RepeatWrapping:o.x=o.x-Math.floor(o.x);break;case ClampToEdgeWrapping:o.x=o.x<0?0:1;break;case MirroredRepeatWrapping:Math.abs(Math.floor(o.x)%2)===1?o.x=Math.ceil(o.x)-o.x:o.x=o.x-Math.floor(o.x);break}if(o.y<0||o.y>1)switch(this.wrapT){case RepeatWrapping:o.y=o.y-Math.floor(o.y);break;case ClampToEdgeWrapping:o.y=o.y<0?0:1;break;case MirroredRepeatWrapping:Math.abs(Math.floor(o.y)%2)===1?o.y=Math.ceil(o.y)-o.y:o.y=o.y-Math.floor(o.y);break}return this.flipY&&(o.y=1-o.y),o}set needsUpdate(o){o===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(o){o===!0&&this.pmremVersion++}}Texture.DEFAULT_IMAGE=null;Texture.DEFAULT_MAPPING=UVMapping;Texture.DEFAULT_ANISOTROPY=1;class Vector4{constructor(o=0,et=0,tt=0,nt=1){Vector4.prototype.isVector4=!0,this.x=o,this.y=et,this.z=tt,this.w=nt}get width(){return this.z}set width(o){this.z=o}get height(){return this.w}set height(o){this.w=o}set(o,et,tt,nt){return this.x=o,this.y=et,this.z=tt,this.w=nt,this}setScalar(o){return this.x=o,this.y=o,this.z=o,this.w=o,this}setX(o){return this.x=o,this}setY(o){return this.y=o,this}setZ(o){return this.z=o,this}setW(o){return this.w=o,this}setComponent(o,et){switch(o){case 0:this.x=et;break;case 1:this.y=et;break;case 2:this.z=et;break;case 3:this.w=et;break;default:throw new Error("index is out of range: "+o)}return this}getComponent(o){switch(o){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+o)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(o){return this.x=o.x,this.y=o.y,this.z=o.z,this.w=o.w!==void 0?o.w:1,this}add(o){return this.x+=o.x,this.y+=o.y,this.z+=o.z,this.w+=o.w,this}addScalar(o){return this.x+=o,this.y+=o,this.z+=o,this.w+=o,this}addVectors(o,et){return this.x=o.x+et.x,this.y=o.y+et.y,this.z=o.z+et.z,this.w=o.w+et.w,this}addScaledVector(o,et){return this.x+=o.x*et,this.y+=o.y*et,this.z+=o.z*et,this.w+=o.w*et,this}sub(o){return this.x-=o.x,this.y-=o.y,this.z-=o.z,this.w-=o.w,this}subScalar(o){return this.x-=o,this.y-=o,this.z-=o,this.w-=o,this}subVectors(o,et){return this.x=o.x-et.x,this.y=o.y-et.y,this.z=o.z-et.z,this.w=o.w-et.w,this}multiply(o){return this.x*=o.x,this.y*=o.y,this.z*=o.z,this.w*=o.w,this}multiplyScalar(o){return this.x*=o,this.y*=o,this.z*=o,this.w*=o,this}applyMatrix4(o){const et=this.x,tt=this.y,nt=this.z,rt=this.w,it=o.elements;return this.x=it[0]*et+it[4]*tt+it[8]*nt+it[12]*rt,this.y=it[1]*et+it[5]*tt+it[9]*nt+it[13]*rt,this.z=it[2]*et+it[6]*tt+it[10]*nt+it[14]*rt,this.w=it[3]*et+it[7]*tt+it[11]*nt+it[15]*rt,this}divideScalar(o){return this.multiplyScalar(1/o)}setAxisAngleFromQuaternion(o){this.w=2*Math.acos(o.w);const et=Math.sqrt(1-o.w*o.w);return et<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=o.x/et,this.y=o.y/et,this.z=o.z/et),this}setAxisAngleFromRotationMatrix(o){let et,tt,nt,rt;const st=o.elements,at=st[0],lt=st[4],ut=st[8],dt=st[1],ht=st[5],ct=st[9],pt=st[2],ft=st[6],gt=st[10];if(Math.abs(lt-dt)<.01&&Math.abs(ut-pt)<.01&&Math.abs(ct-ft)<.01){if(Math.abs(lt+dt)<.1&&Math.abs(ut+pt)<.1&&Math.abs(ct+ft)<.1&&Math.abs(at+ht+gt-3)<.1)return this.set(1,0,0,0),this;et=Math.PI;const Ut=(at+1)/2,Ft=(ht+1)/2,mt=(gt+1)/2,vt=(lt+dt)/4,At=(ut+pt)/4,Lt=(ct+ft)/4;return Ut>Ft&&Ut>mt?Ut<.01?(tt=0,nt=.707106781,rt=.707106781):(tt=Math.sqrt(Ut),nt=vt/tt,rt=At/tt):Ft>mt?Ft<.01?(tt=.707106781,nt=0,rt=.707106781):(nt=Math.sqrt(Ft),tt=vt/nt,rt=Lt/nt):mt<.01?(tt=.707106781,nt=.707106781,rt=0):(rt=Math.sqrt(mt),tt=At/rt,nt=Lt/rt),this.set(tt,nt,rt,et),this}let yt=Math.sqrt((ft-ct)*(ft-ct)+(ut-pt)*(ut-pt)+(dt-lt)*(dt-lt));return Math.abs(yt)<.001&&(yt=1),this.x=(ft-ct)/yt,this.y=(ut-pt)/yt,this.z=(dt-lt)/yt,this.w=Math.acos((at+ht+gt-1)/2),this}min(o){return this.x=Math.min(this.x,o.x),this.y=Math.min(this.y,o.y),this.z=Math.min(this.z,o.z),this.w=Math.min(this.w,o.w),this}max(o){return this.x=Math.max(this.x,o.x),this.y=Math.max(this.y,o.y),this.z=Math.max(this.z,o.z),this.w=Math.max(this.w,o.w),this}clamp(o,et){return this.x=Math.max(o.x,Math.min(et.x,this.x)),this.y=Math.max(o.y,Math.min(et.y,this.y)),this.z=Math.max(o.z,Math.min(et.z,this.z)),this.w=Math.max(o.w,Math.min(et.w,this.w)),this}clampScalar(o,et){return this.x=Math.max(o,Math.min(et,this.x)),this.y=Math.max(o,Math.min(et,this.y)),this.z=Math.max(o,Math.min(et,this.z)),this.w=Math.max(o,Math.min(et,this.w)),this}clampLength(o,et){const tt=this.length();return this.divideScalar(tt||1).multiplyScalar(Math.max(o,Math.min(et,tt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(o){return this.x*o.x+this.y*o.y+this.z*o.z+this.w*o.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(o){return this.normalize().multiplyScalar(o)}lerp(o,et){return this.x+=(o.x-this.x)*et,this.y+=(o.y-this.y)*et,this.z+=(o.z-this.z)*et,this.w+=(o.w-this.w)*et,this}lerpVectors(o,et,tt){return this.x=o.x+(et.x-o.x)*tt,this.y=o.y+(et.y-o.y)*tt,this.z=o.z+(et.z-o.z)*tt,this.w=o.w+(et.w-o.w)*tt,this}equals(o){return o.x===this.x&&o.y===this.y&&o.z===this.z&&o.w===this.w}fromArray(o,et=0){return this.x=o[et],this.y=o[et+1],this.z=o[et+2],this.w=o[et+3],this}toArray(o=[],et=0){return o[et]=this.x,o[et+1]=this.y,o[et+2]=this.z,o[et+3]=this.w,o}fromBufferAttribute(o,et){return this.x=o.getX(et),this.y=o.getY(et),this.z=o.getZ(et),this.w=o.getW(et),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class RenderTarget extends EventDispatcher$1{constructor(o=1,et=1,tt={}){super(),this.isRenderTarget=!0,this.width=o,this.height=et,this.depth=1,this.scissor=new Vector4(0,0,o,et),this.scissorTest=!1,this.viewport=new Vector4(0,0,o,et);const nt={width:o,height:et,depth:1};tt=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:LinearFilter,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},tt);const rt=new Texture(nt,tt.mapping,tt.wrapS,tt.wrapT,tt.magFilter,tt.minFilter,tt.format,tt.type,tt.anisotropy,tt.colorSpace);rt.flipY=!1,rt.generateMipmaps=tt.generateMipmaps,rt.internalFormat=tt.internalFormat,this.textures=[];const it=tt.count;for(let ot=0;ot=0?1:-1,Ut=1-gt*gt;if(Ut>Number.EPSILON){const mt=Math.sqrt(Ut),vt=Math.atan2(mt,gt*yt);ft=Math.sin(ft*vt)/mt,ot=Math.sin(ot*vt)/mt}const Ft=ot*yt;if(st=st*ft+dt*Ft,at=at*ft+ht*Ft,lt=lt*ft+ct*Ft,ut=ut*ft+pt*Ft,ft===1-ot){const mt=1/Math.sqrt(st*st+at*at+lt*lt+ut*ut);st*=mt,at*=mt,lt*=mt,ut*=mt}}o[et]=st,o[et+1]=at,o[et+2]=lt,o[et+3]=ut}static multiplyQuaternionsFlat(o,et,tt,nt,rt,it){const ot=tt[nt],st=tt[nt+1],at=tt[nt+2],lt=tt[nt+3],ut=rt[it],dt=rt[it+1],ht=rt[it+2],ct=rt[it+3];return o[et]=ot*ct+lt*ut+st*ht-at*dt,o[et+1]=st*ct+lt*dt+at*ut-ot*ht,o[et+2]=at*ct+lt*ht+ot*dt-st*ut,o[et+3]=lt*ct-ot*ut-st*dt-at*ht,o}get x(){return this._x}set x(o){this._x=o,this._onChangeCallback()}get y(){return this._y}set y(o){this._y=o,this._onChangeCallback()}get z(){return this._z}set z(o){this._z=o,this._onChangeCallback()}get w(){return this._w}set w(o){this._w=o,this._onChangeCallback()}set(o,et,tt,nt){return this._x=o,this._y=et,this._z=tt,this._w=nt,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(o){return this._x=o.x,this._y=o.y,this._z=o.z,this._w=o.w,this._onChangeCallback(),this}setFromEuler(o,et=!0){const tt=o._x,nt=o._y,rt=o._z,it=o._order,ot=Math.cos,st=Math.sin,at=ot(tt/2),lt=ot(nt/2),ut=ot(rt/2),dt=st(tt/2),ht=st(nt/2),ct=st(rt/2);switch(it){case"XYZ":this._x=dt*lt*ut+at*ht*ct,this._y=at*ht*ut-dt*lt*ct,this._z=at*lt*ct+dt*ht*ut,this._w=at*lt*ut-dt*ht*ct;break;case"YXZ":this._x=dt*lt*ut+at*ht*ct,this._y=at*ht*ut-dt*lt*ct,this._z=at*lt*ct-dt*ht*ut,this._w=at*lt*ut+dt*ht*ct;break;case"ZXY":this._x=dt*lt*ut-at*ht*ct,this._y=at*ht*ut+dt*lt*ct,this._z=at*lt*ct+dt*ht*ut,this._w=at*lt*ut-dt*ht*ct;break;case"ZYX":this._x=dt*lt*ut-at*ht*ct,this._y=at*ht*ut+dt*lt*ct,this._z=at*lt*ct-dt*ht*ut,this._w=at*lt*ut+dt*ht*ct;break;case"YZX":this._x=dt*lt*ut+at*ht*ct,this._y=at*ht*ut+dt*lt*ct,this._z=at*lt*ct-dt*ht*ut,this._w=at*lt*ut-dt*ht*ct;break;case"XZY":this._x=dt*lt*ut-at*ht*ct,this._y=at*ht*ut-dt*lt*ct,this._z=at*lt*ct+dt*ht*ut,this._w=at*lt*ut+dt*ht*ct;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+it)}return et===!0&&this._onChangeCallback(),this}setFromAxisAngle(o,et){const tt=et/2,nt=Math.sin(tt);return this._x=o.x*nt,this._y=o.y*nt,this._z=o.z*nt,this._w=Math.cos(tt),this._onChangeCallback(),this}setFromRotationMatrix(o){const et=o.elements,tt=et[0],nt=et[4],rt=et[8],it=et[1],ot=et[5],st=et[9],at=et[2],lt=et[6],ut=et[10],dt=tt+ot+ut;if(dt>0){const ht=.5/Math.sqrt(dt+1);this._w=.25/ht,this._x=(lt-st)*ht,this._y=(rt-at)*ht,this._z=(it-nt)*ht}else if(tt>ot&&tt>ut){const ht=2*Math.sqrt(1+tt-ot-ut);this._w=(lt-st)/ht,this._x=.25*ht,this._y=(nt+it)/ht,this._z=(rt+at)/ht}else if(ot>ut){const ht=2*Math.sqrt(1+ot-tt-ut);this._w=(rt-at)/ht,this._x=(nt+it)/ht,this._y=.25*ht,this._z=(st+lt)/ht}else{const ht=2*Math.sqrt(1+ut-tt-ot);this._w=(it-nt)/ht,this._x=(rt+at)/ht,this._y=(st+lt)/ht,this._z=.25*ht}return this._onChangeCallback(),this}setFromUnitVectors(o,et){let tt=o.dot(et)+1;return ttMath.abs(o.z)?(this._x=-o.y,this._y=o.x,this._z=0,this._w=tt):(this._x=0,this._y=-o.z,this._z=o.y,this._w=tt)):(this._x=o.y*et.z-o.z*et.y,this._y=o.z*et.x-o.x*et.z,this._z=o.x*et.y-o.y*et.x,this._w=tt),this.normalize()}angleTo(o){return 2*Math.acos(Math.abs(clamp$4(this.dot(o),-1,1)))}rotateTowards(o,et){const tt=this.angleTo(o);if(tt===0)return this;const nt=Math.min(1,et/tt);return this.slerp(o,nt),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(o){return this._x*o._x+this._y*o._y+this._z*o._z+this._w*o._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let o=this.length();return o===0?(this._x=0,this._y=0,this._z=0,this._w=1):(o=1/o,this._x=this._x*o,this._y=this._y*o,this._z=this._z*o,this._w=this._w*o),this._onChangeCallback(),this}multiply(o){return this.multiplyQuaternions(this,o)}premultiply(o){return this.multiplyQuaternions(o,this)}multiplyQuaternions(o,et){const tt=o._x,nt=o._y,rt=o._z,it=o._w,ot=et._x,st=et._y,at=et._z,lt=et._w;return this._x=tt*lt+it*ot+nt*at-rt*st,this._y=nt*lt+it*st+rt*ot-tt*at,this._z=rt*lt+it*at+tt*st-nt*ot,this._w=it*lt-tt*ot-nt*st-rt*at,this._onChangeCallback(),this}slerp(o,et){if(et===0)return this;if(et===1)return this.copy(o);const tt=this._x,nt=this._y,rt=this._z,it=this._w;let ot=it*o._w+tt*o._x+nt*o._y+rt*o._z;if(ot<0?(this._w=-o._w,this._x=-o._x,this._y=-o._y,this._z=-o._z,ot=-ot):this.copy(o),ot>=1)return this._w=it,this._x=tt,this._y=nt,this._z=rt,this;const st=1-ot*ot;if(st<=Number.EPSILON){const ht=1-et;return this._w=ht*it+et*this._w,this._x=ht*tt+et*this._x,this._y=ht*nt+et*this._y,this._z=ht*rt+et*this._z,this.normalize(),this}const at=Math.sqrt(st),lt=Math.atan2(at,ot),ut=Math.sin((1-et)*lt)/at,dt=Math.sin(et*lt)/at;return this._w=it*ut+this._w*dt,this._x=tt*ut+this._x*dt,this._y=nt*ut+this._y*dt,this._z=rt*ut+this._z*dt,this._onChangeCallback(),this}slerpQuaternions(o,et,tt){return this.copy(o).slerp(et,tt)}random(){const o=2*Math.PI*Math.random(),et=2*Math.PI*Math.random(),tt=Math.random(),nt=Math.sqrt(1-tt),rt=Math.sqrt(tt);return this.set(nt*Math.sin(o),nt*Math.cos(o),rt*Math.sin(et),rt*Math.cos(et))}equals(o){return o._x===this._x&&o._y===this._y&&o._z===this._z&&o._w===this._w}fromArray(o,et=0){return this._x=o[et],this._y=o[et+1],this._z=o[et+2],this._w=o[et+3],this._onChangeCallback(),this}toArray(o=[],et=0){return o[et]=this._x,o[et+1]=this._y,o[et+2]=this._z,o[et+3]=this._w,o}fromBufferAttribute(o,et){return this._x=o.getX(et),this._y=o.getY(et),this._z=o.getZ(et),this._w=o.getW(et),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(o){return this._onChangeCallback=o,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Vector3{constructor(o=0,et=0,tt=0){Vector3.prototype.isVector3=!0,this.x=o,this.y=et,this.z=tt}set(o,et,tt){return tt===void 0&&(tt=this.z),this.x=o,this.y=et,this.z=tt,this}setScalar(o){return this.x=o,this.y=o,this.z=o,this}setX(o){return this.x=o,this}setY(o){return this.y=o,this}setZ(o){return this.z=o,this}setComponent(o,et){switch(o){case 0:this.x=et;break;case 1:this.y=et;break;case 2:this.z=et;break;default:throw new Error("index is out of range: "+o)}return this}getComponent(o){switch(o){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+o)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(o){return this.x=o.x,this.y=o.y,this.z=o.z,this}add(o){return this.x+=o.x,this.y+=o.y,this.z+=o.z,this}addScalar(o){return this.x+=o,this.y+=o,this.z+=o,this}addVectors(o,et){return this.x=o.x+et.x,this.y=o.y+et.y,this.z=o.z+et.z,this}addScaledVector(o,et){return this.x+=o.x*et,this.y+=o.y*et,this.z+=o.z*et,this}sub(o){return this.x-=o.x,this.y-=o.y,this.z-=o.z,this}subScalar(o){return this.x-=o,this.y-=o,this.z-=o,this}subVectors(o,et){return this.x=o.x-et.x,this.y=o.y-et.y,this.z=o.z-et.z,this}multiply(o){return this.x*=o.x,this.y*=o.y,this.z*=o.z,this}multiplyScalar(o){return this.x*=o,this.y*=o,this.z*=o,this}multiplyVectors(o,et){return this.x=o.x*et.x,this.y=o.y*et.y,this.z=o.z*et.z,this}applyEuler(o){return this.applyQuaternion(_quaternion$4.setFromEuler(o))}applyAxisAngle(o,et){return this.applyQuaternion(_quaternion$4.setFromAxisAngle(o,et))}applyMatrix3(o){const et=this.x,tt=this.y,nt=this.z,rt=o.elements;return this.x=rt[0]*et+rt[3]*tt+rt[6]*nt,this.y=rt[1]*et+rt[4]*tt+rt[7]*nt,this.z=rt[2]*et+rt[5]*tt+rt[8]*nt,this}applyNormalMatrix(o){return this.applyMatrix3(o).normalize()}applyMatrix4(o){const et=this.x,tt=this.y,nt=this.z,rt=o.elements,it=1/(rt[3]*et+rt[7]*tt+rt[11]*nt+rt[15]);return this.x=(rt[0]*et+rt[4]*tt+rt[8]*nt+rt[12])*it,this.y=(rt[1]*et+rt[5]*tt+rt[9]*nt+rt[13])*it,this.z=(rt[2]*et+rt[6]*tt+rt[10]*nt+rt[14])*it,this}applyQuaternion(o){const et=this.x,tt=this.y,nt=this.z,rt=o.x,it=o.y,ot=o.z,st=o.w,at=2*(it*nt-ot*tt),lt=2*(ot*et-rt*nt),ut=2*(rt*tt-it*et);return this.x=et+st*at+it*ut-ot*lt,this.y=tt+st*lt+ot*at-rt*ut,this.z=nt+st*ut+rt*lt-it*at,this}project(o){return this.applyMatrix4(o.matrixWorldInverse).applyMatrix4(o.projectionMatrix)}unproject(o){return this.applyMatrix4(o.projectionMatrixInverse).applyMatrix4(o.matrixWorld)}transformDirection(o){const et=this.x,tt=this.y,nt=this.z,rt=o.elements;return this.x=rt[0]*et+rt[4]*tt+rt[8]*nt,this.y=rt[1]*et+rt[5]*tt+rt[9]*nt,this.z=rt[2]*et+rt[6]*tt+rt[10]*nt,this.normalize()}divide(o){return this.x/=o.x,this.y/=o.y,this.z/=o.z,this}divideScalar(o){return this.multiplyScalar(1/o)}min(o){return this.x=Math.min(this.x,o.x),this.y=Math.min(this.y,o.y),this.z=Math.min(this.z,o.z),this}max(o){return this.x=Math.max(this.x,o.x),this.y=Math.max(this.y,o.y),this.z=Math.max(this.z,o.z),this}clamp(o,et){return this.x=Math.max(o.x,Math.min(et.x,this.x)),this.y=Math.max(o.y,Math.min(et.y,this.y)),this.z=Math.max(o.z,Math.min(et.z,this.z)),this}clampScalar(o,et){return this.x=Math.max(o,Math.min(et,this.x)),this.y=Math.max(o,Math.min(et,this.y)),this.z=Math.max(o,Math.min(et,this.z)),this}clampLength(o,et){const tt=this.length();return this.divideScalar(tt||1).multiplyScalar(Math.max(o,Math.min(et,tt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(o){return this.x*o.x+this.y*o.y+this.z*o.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(o){return this.normalize().multiplyScalar(o)}lerp(o,et){return this.x+=(o.x-this.x)*et,this.y+=(o.y-this.y)*et,this.z+=(o.z-this.z)*et,this}lerpVectors(o,et,tt){return this.x=o.x+(et.x-o.x)*tt,this.y=o.y+(et.y-o.y)*tt,this.z=o.z+(et.z-o.z)*tt,this}cross(o){return this.crossVectors(this,o)}crossVectors(o,et){const tt=o.x,nt=o.y,rt=o.z,it=et.x,ot=et.y,st=et.z;return this.x=nt*st-rt*ot,this.y=rt*it-tt*st,this.z=tt*ot-nt*it,this}projectOnVector(o){const et=o.lengthSq();if(et===0)return this.set(0,0,0);const tt=o.dot(this)/et;return this.copy(o).multiplyScalar(tt)}projectOnPlane(o){return _vector$c.copy(this).projectOnVector(o),this.sub(_vector$c)}reflect(o){return this.sub(_vector$c.copy(o).multiplyScalar(2*this.dot(o)))}angleTo(o){const et=Math.sqrt(this.lengthSq()*o.lengthSq());if(et===0)return Math.PI/2;const tt=this.dot(o)/et;return Math.acos(clamp$4(tt,-1,1))}distanceTo(o){return Math.sqrt(this.distanceToSquared(o))}distanceToSquared(o){const et=this.x-o.x,tt=this.y-o.y,nt=this.z-o.z;return et*et+tt*tt+nt*nt}manhattanDistanceTo(o){return Math.abs(this.x-o.x)+Math.abs(this.y-o.y)+Math.abs(this.z-o.z)}setFromSpherical(o){return this.setFromSphericalCoords(o.radius,o.phi,o.theta)}setFromSphericalCoords(o,et,tt){const nt=Math.sin(et)*o;return this.x=nt*Math.sin(tt),this.y=Math.cos(et)*o,this.z=nt*Math.cos(tt),this}setFromCylindrical(o){return this.setFromCylindricalCoords(o.radius,o.theta,o.y)}setFromCylindricalCoords(o,et,tt){return this.x=o*Math.sin(et),this.y=tt,this.z=o*Math.cos(et),this}setFromMatrixPosition(o){const et=o.elements;return this.x=et[12],this.y=et[13],this.z=et[14],this}setFromMatrixScale(o){const et=this.setFromMatrixColumn(o,0).length(),tt=this.setFromMatrixColumn(o,1).length(),nt=this.setFromMatrixColumn(o,2).length();return this.x=et,this.y=tt,this.z=nt,this}setFromMatrixColumn(o,et){return this.fromArray(o.elements,et*4)}setFromMatrix3Column(o,et){return this.fromArray(o.elements,et*3)}setFromEuler(o){return this.x=o._x,this.y=o._y,this.z=o._z,this}setFromColor(o){return this.x=o.r,this.y=o.g,this.z=o.b,this}equals(o){return o.x===this.x&&o.y===this.y&&o.z===this.z}fromArray(o,et=0){return this.x=o[et],this.y=o[et+1],this.z=o[et+2],this}toArray(o=[],et=0){return o[et]=this.x,o[et+1]=this.y,o[et+2]=this.z,o}fromBufferAttribute(o,et){return this.x=o.getX(et),this.y=o.getY(et),this.z=o.getZ(et),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const o=Math.random()*Math.PI*2,et=Math.random()*2-1,tt=Math.sqrt(1-et*et);return this.x=tt*Math.cos(o),this.y=et,this.z=tt*Math.sin(o),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const _vector$c=new Vector3,_quaternion$4=new Quaternion;class Box3{constructor(o=new Vector3(1/0,1/0,1/0),et=new Vector3(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=o,this.max=et}set(o,et){return this.min.copy(o),this.max.copy(et),this}setFromArray(o){this.makeEmpty();for(let et=0,tt=o.length;etthis.max.x||o.ythis.max.y||o.zthis.max.z)}containsBox(o){return this.min.x<=o.min.x&&o.max.x<=this.max.x&&this.min.y<=o.min.y&&o.max.y<=this.max.y&&this.min.z<=o.min.z&&o.max.z<=this.max.z}getParameter(o,et){return et.set((o.x-this.min.x)/(this.max.x-this.min.x),(o.y-this.min.y)/(this.max.y-this.min.y),(o.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(o){return!(o.max.xthis.max.x||o.max.ythis.max.y||o.max.zthis.max.z)}intersectsSphere(o){return this.clampPoint(o.center,_vector$b),_vector$b.distanceToSquared(o.center)<=o.radius*o.radius}intersectsPlane(o){let et,tt;return o.normal.x>0?(et=o.normal.x*this.min.x,tt=o.normal.x*this.max.x):(et=o.normal.x*this.max.x,tt=o.normal.x*this.min.x),o.normal.y>0?(et+=o.normal.y*this.min.y,tt+=o.normal.y*this.max.y):(et+=o.normal.y*this.max.y,tt+=o.normal.y*this.min.y),o.normal.z>0?(et+=o.normal.z*this.min.z,tt+=o.normal.z*this.max.z):(et+=o.normal.z*this.max.z,tt+=o.normal.z*this.min.z),et<=-o.constant&&tt>=-o.constant}intersectsTriangle(o){if(this.isEmpty())return!1;this.getCenter(_center),_extents.subVectors(this.max,_center),_v0$2.subVectors(o.a,_center),_v1$7.subVectors(o.b,_center),_v2$4.subVectors(o.c,_center),_f0.subVectors(_v1$7,_v0$2),_f1.subVectors(_v2$4,_v1$7),_f2.subVectors(_v0$2,_v2$4);let et=[0,-_f0.z,_f0.y,0,-_f1.z,_f1.y,0,-_f2.z,_f2.y,_f0.z,0,-_f0.x,_f1.z,0,-_f1.x,_f2.z,0,-_f2.x,-_f0.y,_f0.x,0,-_f1.y,_f1.x,0,-_f2.y,_f2.x,0];return!satForAxes(et,_v0$2,_v1$7,_v2$4,_extents)||(et=[1,0,0,0,1,0,0,0,1],!satForAxes(et,_v0$2,_v1$7,_v2$4,_extents))?!1:(_triangleNormal.crossVectors(_f0,_f1),et=[_triangleNormal.x,_triangleNormal.y,_triangleNormal.z],satForAxes(et,_v0$2,_v1$7,_v2$4,_extents))}clampPoint(o,et){return et.copy(o).clamp(this.min,this.max)}distanceToPoint(o){return this.clampPoint(o,_vector$b).distanceTo(o)}getBoundingSphere(o){return this.isEmpty()?o.makeEmpty():(this.getCenter(o.center),o.radius=this.getSize(_vector$b).length()*.5),o}intersect(o){return this.min.max(o.min),this.max.min(o.max),this.isEmpty()&&this.makeEmpty(),this}union(o){return this.min.min(o.min),this.max.max(o.max),this}applyMatrix4(o){return this.isEmpty()?this:(_points[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(o),_points[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(o),_points[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(o),_points[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(o),_points[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(o),_points[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(o),_points[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(o),_points[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(o),this.setFromPoints(_points),this)}translate(o){return this.min.add(o),this.max.add(o),this}equals(o){return o.min.equals(this.min)&&o.max.equals(this.max)}}const _points=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3],_vector$b=new Vector3,_box$4=new Box3,_v0$2=new Vector3,_v1$7=new Vector3,_v2$4=new Vector3,_f0=new Vector3,_f1=new Vector3,_f2=new Vector3,_center=new Vector3,_extents=new Vector3,_triangleNormal=new Vector3,_testAxis=new Vector3;function satForAxes(s,o,et,tt,nt){for(let rt=0,it=s.length-3;rt<=it;rt+=3){_testAxis.fromArray(s,rt);const ot=nt.x*Math.abs(_testAxis.x)+nt.y*Math.abs(_testAxis.y)+nt.z*Math.abs(_testAxis.z),st=o.dot(_testAxis),at=et.dot(_testAxis),lt=tt.dot(_testAxis);if(Math.max(-Math.max(st,at,lt),Math.min(st,at,lt))>ot)return!1}return!0}const _box$3=new Box3,_v1$6=new Vector3,_v2$3=new Vector3;let Sphere$1=class{constructor(o=new Vector3,et=-1){this.isSphere=!0,this.center=o,this.radius=et}set(o,et){return this.center.copy(o),this.radius=et,this}setFromPoints(o,et){const tt=this.center;et!==void 0?tt.copy(et):_box$3.setFromPoints(o).getCenter(tt);let nt=0;for(let rt=0,it=o.length;rtthis.radius*this.radius&&(et.sub(this.center).normalize(),et.multiplyScalar(this.radius).add(this.center)),et}getBoundingBox(o){return this.isEmpty()?(o.makeEmpty(),o):(o.set(this.center,this.center),o.expandByScalar(this.radius),o)}applyMatrix4(o){return this.center.applyMatrix4(o),this.radius=this.radius*o.getMaxScaleOnAxis(),this}translate(o){return this.center.add(o),this}expandByPoint(o){if(this.isEmpty())return this.center.copy(o),this.radius=0,this;_v1$6.subVectors(o,this.center);const et=_v1$6.lengthSq();if(et>this.radius*this.radius){const tt=Math.sqrt(et),nt=(tt-this.radius)*.5;this.center.addScaledVector(_v1$6,nt/tt),this.radius+=nt}return this}union(o){return o.isEmpty()?this:this.isEmpty()?(this.copy(o),this):(this.center.equals(o.center)===!0?this.radius=Math.max(this.radius,o.radius):(_v2$3.subVectors(o.center,this.center).setLength(o.radius),this.expandByPoint(_v1$6.copy(o.center).add(_v2$3)),this.expandByPoint(_v1$6.copy(o.center).sub(_v2$3))),this)}equals(o){return o.center.equals(this.center)&&o.radius===this.radius}clone(){return new this.constructor().copy(this)}};const _vector$a=new Vector3,_segCenter=new Vector3,_segDir=new Vector3,_diff=new Vector3,_edge1=new Vector3,_edge2=new Vector3,_normal$1=new Vector3;let Ray$1=class{constructor(o=new Vector3,et=new Vector3(0,0,-1)){this.origin=o,this.direction=et}set(o,et){return this.origin.copy(o),this.direction.copy(et),this}copy(o){return this.origin.copy(o.origin),this.direction.copy(o.direction),this}at(o,et){return et.copy(this.origin).addScaledVector(this.direction,o)}lookAt(o){return this.direction.copy(o).sub(this.origin).normalize(),this}recast(o){return this.origin.copy(this.at(o,_vector$a)),this}closestPointToPoint(o,et){et.subVectors(o,this.origin);const tt=et.dot(this.direction);return tt<0?et.copy(this.origin):et.copy(this.origin).addScaledVector(this.direction,tt)}distanceToPoint(o){return Math.sqrt(this.distanceSqToPoint(o))}distanceSqToPoint(o){const et=_vector$a.subVectors(o,this.origin).dot(this.direction);return et<0?this.origin.distanceToSquared(o):(_vector$a.copy(this.origin).addScaledVector(this.direction,et),_vector$a.distanceToSquared(o))}distanceSqToSegment(o,et,tt,nt){_segCenter.copy(o).add(et).multiplyScalar(.5),_segDir.copy(et).sub(o).normalize(),_diff.copy(this.origin).sub(_segCenter);const rt=o.distanceTo(et)*.5,it=-this.direction.dot(_segDir),ot=_diff.dot(this.direction),st=-_diff.dot(_segDir),at=_diff.lengthSq(),lt=Math.abs(1-it*it);let ut,dt,ht,ct;if(lt>0)if(ut=it*st-ot,dt=it*ot-st,ct=rt*lt,ut>=0)if(dt>=-ct)if(dt<=ct){const pt=1/lt;ut*=pt,dt*=pt,ht=ut*(ut+it*dt+2*ot)+dt*(it*ut+dt+2*st)+at}else dt=rt,ut=Math.max(0,-(it*dt+ot)),ht=-ut*ut+dt*(dt+2*st)+at;else dt=-rt,ut=Math.max(0,-(it*dt+ot)),ht=-ut*ut+dt*(dt+2*st)+at;else dt<=-ct?(ut=Math.max(0,-(-it*rt+ot)),dt=ut>0?-rt:Math.min(Math.max(-rt,-st),rt),ht=-ut*ut+dt*(dt+2*st)+at):dt<=ct?(ut=0,dt=Math.min(Math.max(-rt,-st),rt),ht=dt*(dt+2*st)+at):(ut=Math.max(0,-(it*rt+ot)),dt=ut>0?rt:Math.min(Math.max(-rt,-st),rt),ht=-ut*ut+dt*(dt+2*st)+at);else dt=it>0?-rt:rt,ut=Math.max(0,-(it*dt+ot)),ht=-ut*ut+dt*(dt+2*st)+at;return tt&&tt.copy(this.origin).addScaledVector(this.direction,ut),nt&&nt.copy(_segCenter).addScaledVector(_segDir,dt),ht}intersectSphere(o,et){_vector$a.subVectors(o.center,this.origin);const tt=_vector$a.dot(this.direction),nt=_vector$a.dot(_vector$a)-tt*tt,rt=o.radius*o.radius;if(nt>rt)return null;const it=Math.sqrt(rt-nt),ot=tt-it,st=tt+it;return st<0?null:ot<0?this.at(st,et):this.at(ot,et)}intersectsSphere(o){return this.distanceSqToPoint(o.center)<=o.radius*o.radius}distanceToPlane(o){const et=o.normal.dot(this.direction);if(et===0)return o.distanceToPoint(this.origin)===0?0:null;const tt=-(this.origin.dot(o.normal)+o.constant)/et;return tt>=0?tt:null}intersectPlane(o,et){const tt=this.distanceToPlane(o);return tt===null?null:this.at(tt,et)}intersectsPlane(o){const et=o.distanceToPoint(this.origin);return et===0||o.normal.dot(this.direction)*et<0}intersectBox(o,et){let tt,nt,rt,it,ot,st;const at=1/this.direction.x,lt=1/this.direction.y,ut=1/this.direction.z,dt=this.origin;return at>=0?(tt=(o.min.x-dt.x)*at,nt=(o.max.x-dt.x)*at):(tt=(o.max.x-dt.x)*at,nt=(o.min.x-dt.x)*at),lt>=0?(rt=(o.min.y-dt.y)*lt,it=(o.max.y-dt.y)*lt):(rt=(o.max.y-dt.y)*lt,it=(o.min.y-dt.y)*lt),tt>it||rt>nt||((rt>tt||isNaN(tt))&&(tt=rt),(it=0?(ot=(o.min.z-dt.z)*ut,st=(o.max.z-dt.z)*ut):(ot=(o.max.z-dt.z)*ut,st=(o.min.z-dt.z)*ut),tt>st||ot>nt)||((ot>tt||tt!==tt)&&(tt=ot),(st=0?tt:nt,et)}intersectsBox(o){return this.intersectBox(o,_vector$a)!==null}intersectTriangle(o,et,tt,nt,rt){_edge1.subVectors(et,o),_edge2.subVectors(tt,o),_normal$1.crossVectors(_edge1,_edge2);let it=this.direction.dot(_normal$1),ot;if(it>0){if(nt)return null;ot=1}else if(it<0)ot=-1,it=-it;else return null;_diff.subVectors(this.origin,o);const st=ot*this.direction.dot(_edge2.crossVectors(_diff,_edge2));if(st<0)return null;const at=ot*this.direction.dot(_edge1.cross(_diff));if(at<0||st+at>it)return null;const lt=-ot*_diff.dot(_normal$1);return lt<0?null:this.at(lt/it,rt)}applyMatrix4(o){return this.origin.applyMatrix4(o),this.direction.transformDirection(o),this}equals(o){return o.origin.equals(this.origin)&&o.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}};class Matrix4{constructor(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct,pt,ft){Matrix4.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],o!==void 0&&this.set(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct,pt,ft)}set(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct,pt,ft){const gt=this.elements;return gt[0]=o,gt[4]=et,gt[8]=tt,gt[12]=nt,gt[1]=rt,gt[5]=it,gt[9]=ot,gt[13]=st,gt[2]=at,gt[6]=lt,gt[10]=ut,gt[14]=dt,gt[3]=ht,gt[7]=ct,gt[11]=pt,gt[15]=ft,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Matrix4().fromArray(this.elements)}copy(o){const et=this.elements,tt=o.elements;return et[0]=tt[0],et[1]=tt[1],et[2]=tt[2],et[3]=tt[3],et[4]=tt[4],et[5]=tt[5],et[6]=tt[6],et[7]=tt[7],et[8]=tt[8],et[9]=tt[9],et[10]=tt[10],et[11]=tt[11],et[12]=tt[12],et[13]=tt[13],et[14]=tt[14],et[15]=tt[15],this}copyPosition(o){const et=this.elements,tt=o.elements;return et[12]=tt[12],et[13]=tt[13],et[14]=tt[14],this}setFromMatrix3(o){const et=o.elements;return this.set(et[0],et[3],et[6],0,et[1],et[4],et[7],0,et[2],et[5],et[8],0,0,0,0,1),this}extractBasis(o,et,tt){return o.setFromMatrixColumn(this,0),et.setFromMatrixColumn(this,1),tt.setFromMatrixColumn(this,2),this}makeBasis(o,et,tt){return this.set(o.x,et.x,tt.x,0,o.y,et.y,tt.y,0,o.z,et.z,tt.z,0,0,0,0,1),this}extractRotation(o){const et=this.elements,tt=o.elements,nt=1/_v1$5.setFromMatrixColumn(o,0).length(),rt=1/_v1$5.setFromMatrixColumn(o,1).length(),it=1/_v1$5.setFromMatrixColumn(o,2).length();return et[0]=tt[0]*nt,et[1]=tt[1]*nt,et[2]=tt[2]*nt,et[3]=0,et[4]=tt[4]*rt,et[5]=tt[5]*rt,et[6]=tt[6]*rt,et[7]=0,et[8]=tt[8]*it,et[9]=tt[9]*it,et[10]=tt[10]*it,et[11]=0,et[12]=0,et[13]=0,et[14]=0,et[15]=1,this}makeRotationFromEuler(o){const et=this.elements,tt=o.x,nt=o.y,rt=o.z,it=Math.cos(tt),ot=Math.sin(tt),st=Math.cos(nt),at=Math.sin(nt),lt=Math.cos(rt),ut=Math.sin(rt);if(o.order==="XYZ"){const dt=it*lt,ht=it*ut,ct=ot*lt,pt=ot*ut;et[0]=st*lt,et[4]=-st*ut,et[8]=at,et[1]=ht+ct*at,et[5]=dt-pt*at,et[9]=-ot*st,et[2]=pt-dt*at,et[6]=ct+ht*at,et[10]=it*st}else if(o.order==="YXZ"){const dt=st*lt,ht=st*ut,ct=at*lt,pt=at*ut;et[0]=dt+pt*ot,et[4]=ct*ot-ht,et[8]=it*at,et[1]=it*ut,et[5]=it*lt,et[9]=-ot,et[2]=ht*ot-ct,et[6]=pt+dt*ot,et[10]=it*st}else if(o.order==="ZXY"){const dt=st*lt,ht=st*ut,ct=at*lt,pt=at*ut;et[0]=dt-pt*ot,et[4]=-it*ut,et[8]=ct+ht*ot,et[1]=ht+ct*ot,et[5]=it*lt,et[9]=pt-dt*ot,et[2]=-it*at,et[6]=ot,et[10]=it*st}else if(o.order==="ZYX"){const dt=it*lt,ht=it*ut,ct=ot*lt,pt=ot*ut;et[0]=st*lt,et[4]=ct*at-ht,et[8]=dt*at+pt,et[1]=st*ut,et[5]=pt*at+dt,et[9]=ht*at-ct,et[2]=-at,et[6]=ot*st,et[10]=it*st}else if(o.order==="YZX"){const dt=it*st,ht=it*at,ct=ot*st,pt=ot*at;et[0]=st*lt,et[4]=pt-dt*ut,et[8]=ct*ut+ht,et[1]=ut,et[5]=it*lt,et[9]=-ot*lt,et[2]=-at*lt,et[6]=ht*ut+ct,et[10]=dt-pt*ut}else if(o.order==="XZY"){const dt=it*st,ht=it*at,ct=ot*st,pt=ot*at;et[0]=st*lt,et[4]=-ut,et[8]=at*lt,et[1]=dt*ut+pt,et[5]=it*lt,et[9]=ht*ut-ct,et[2]=ct*ut-ht,et[6]=ot*lt,et[10]=pt*ut+dt}return et[3]=0,et[7]=0,et[11]=0,et[12]=0,et[13]=0,et[14]=0,et[15]=1,this}makeRotationFromQuaternion(o){return this.compose(_zero,o,_one)}lookAt(o,et,tt){const nt=this.elements;return _z.subVectors(o,et),_z.lengthSq()===0&&(_z.z=1),_z.normalize(),_x.crossVectors(tt,_z),_x.lengthSq()===0&&(Math.abs(tt.z)===1?_z.x+=1e-4:_z.z+=1e-4,_z.normalize(),_x.crossVectors(tt,_z)),_x.normalize(),_y.crossVectors(_z,_x),nt[0]=_x.x,nt[4]=_y.x,nt[8]=_z.x,nt[1]=_x.y,nt[5]=_y.y,nt[9]=_z.y,nt[2]=_x.z,nt[6]=_y.z,nt[10]=_z.z,this}multiply(o){return this.multiplyMatrices(this,o)}premultiply(o){return this.multiplyMatrices(o,this)}multiplyMatrices(o,et){const tt=o.elements,nt=et.elements,rt=this.elements,it=tt[0],ot=tt[4],st=tt[8],at=tt[12],lt=tt[1],ut=tt[5],dt=tt[9],ht=tt[13],ct=tt[2],pt=tt[6],ft=tt[10],gt=tt[14],yt=tt[3],Ut=tt[7],Ft=tt[11],mt=tt[15],vt=nt[0],At=nt[4],Lt=nt[8],Rt=nt[12],St=nt[1],Tt=nt[5],Bt=nt[9],xt=nt[13],Ct=nt[2],kt=nt[6],Nt=nt[10],Ot=nt[14],Jt=nt[3],Dt=nt[7],Et=nt[11],Pt=nt[15];return rt[0]=it*vt+ot*St+st*Ct+at*Jt,rt[4]=it*At+ot*Tt+st*kt+at*Dt,rt[8]=it*Lt+ot*Bt+st*Nt+at*Et,rt[12]=it*Rt+ot*xt+st*Ot+at*Pt,rt[1]=lt*vt+ut*St+dt*Ct+ht*Jt,rt[5]=lt*At+ut*Tt+dt*kt+ht*Dt,rt[9]=lt*Lt+ut*Bt+dt*Nt+ht*Et,rt[13]=lt*Rt+ut*xt+dt*Ot+ht*Pt,rt[2]=ct*vt+pt*St+ft*Ct+gt*Jt,rt[6]=ct*At+pt*Tt+ft*kt+gt*Dt,rt[10]=ct*Lt+pt*Bt+ft*Nt+gt*Et,rt[14]=ct*Rt+pt*xt+ft*Ot+gt*Pt,rt[3]=yt*vt+Ut*St+Ft*Ct+mt*Jt,rt[7]=yt*At+Ut*Tt+Ft*kt+mt*Dt,rt[11]=yt*Lt+Ut*Bt+Ft*Nt+mt*Et,rt[15]=yt*Rt+Ut*xt+Ft*Ot+mt*Pt,this}multiplyScalar(o){const et=this.elements;return et[0]*=o,et[4]*=o,et[8]*=o,et[12]*=o,et[1]*=o,et[5]*=o,et[9]*=o,et[13]*=o,et[2]*=o,et[6]*=o,et[10]*=o,et[14]*=o,et[3]*=o,et[7]*=o,et[11]*=o,et[15]*=o,this}determinant(){const o=this.elements,et=o[0],tt=o[4],nt=o[8],rt=o[12],it=o[1],ot=o[5],st=o[9],at=o[13],lt=o[2],ut=o[6],dt=o[10],ht=o[14],ct=o[3],pt=o[7],ft=o[11],gt=o[15];return ct*(+rt*st*ut-nt*at*ut-rt*ot*dt+tt*at*dt+nt*ot*ht-tt*st*ht)+pt*(+et*st*ht-et*at*dt+rt*it*dt-nt*it*ht+nt*at*lt-rt*st*lt)+ft*(+et*at*ut-et*ot*ht-rt*it*ut+tt*it*ht+rt*ot*lt-tt*at*lt)+gt*(-nt*ot*lt-et*st*ut+et*ot*dt+nt*it*ut-tt*it*dt+tt*st*lt)}transpose(){const o=this.elements;let et;return et=o[1],o[1]=o[4],o[4]=et,et=o[2],o[2]=o[8],o[8]=et,et=o[6],o[6]=o[9],o[9]=et,et=o[3],o[3]=o[12],o[12]=et,et=o[7],o[7]=o[13],o[13]=et,et=o[11],o[11]=o[14],o[14]=et,this}setPosition(o,et,tt){const nt=this.elements;return o.isVector3?(nt[12]=o.x,nt[13]=o.y,nt[14]=o.z):(nt[12]=o,nt[13]=et,nt[14]=tt),this}invert(){const o=this.elements,et=o[0],tt=o[1],nt=o[2],rt=o[3],it=o[4],ot=o[5],st=o[6],at=o[7],lt=o[8],ut=o[9],dt=o[10],ht=o[11],ct=o[12],pt=o[13],ft=o[14],gt=o[15],yt=ut*ft*at-pt*dt*at+pt*st*ht-ot*ft*ht-ut*st*gt+ot*dt*gt,Ut=ct*dt*at-lt*ft*at-ct*st*ht+it*ft*ht+lt*st*gt-it*dt*gt,Ft=lt*pt*at-ct*ut*at+ct*ot*ht-it*pt*ht-lt*ot*gt+it*ut*gt,mt=ct*ut*st-lt*pt*st-ct*ot*dt+it*pt*dt+lt*ot*ft-it*ut*ft,vt=et*yt+tt*Ut+nt*Ft+rt*mt;if(vt===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const At=1/vt;return o[0]=yt*At,o[1]=(pt*dt*rt-ut*ft*rt-pt*nt*ht+tt*ft*ht+ut*nt*gt-tt*dt*gt)*At,o[2]=(ot*ft*rt-pt*st*rt+pt*nt*at-tt*ft*at-ot*nt*gt+tt*st*gt)*At,o[3]=(ut*st*rt-ot*dt*rt-ut*nt*at+tt*dt*at+ot*nt*ht-tt*st*ht)*At,o[4]=Ut*At,o[5]=(lt*ft*rt-ct*dt*rt+ct*nt*ht-et*ft*ht-lt*nt*gt+et*dt*gt)*At,o[6]=(ct*st*rt-it*ft*rt-ct*nt*at+et*ft*at+it*nt*gt-et*st*gt)*At,o[7]=(it*dt*rt-lt*st*rt+lt*nt*at-et*dt*at-it*nt*ht+et*st*ht)*At,o[8]=Ft*At,o[9]=(ct*ut*rt-lt*pt*rt-ct*tt*ht+et*pt*ht+lt*tt*gt-et*ut*gt)*At,o[10]=(it*pt*rt-ct*ot*rt+ct*tt*at-et*pt*at-it*tt*gt+et*ot*gt)*At,o[11]=(lt*ot*rt-it*ut*rt-lt*tt*at+et*ut*at+it*tt*ht-et*ot*ht)*At,o[12]=mt*At,o[13]=(lt*pt*nt-ct*ut*nt+ct*tt*dt-et*pt*dt-lt*tt*ft+et*ut*ft)*At,o[14]=(ct*ot*nt-it*pt*nt-ct*tt*st+et*pt*st+it*tt*ft-et*ot*ft)*At,o[15]=(it*ut*nt-lt*ot*nt+lt*tt*st-et*ut*st-it*tt*dt+et*ot*dt)*At,this}scale(o){const et=this.elements,tt=o.x,nt=o.y,rt=o.z;return et[0]*=tt,et[4]*=nt,et[8]*=rt,et[1]*=tt,et[5]*=nt,et[9]*=rt,et[2]*=tt,et[6]*=nt,et[10]*=rt,et[3]*=tt,et[7]*=nt,et[11]*=rt,this}getMaxScaleOnAxis(){const o=this.elements,et=o[0]*o[0]+o[1]*o[1]+o[2]*o[2],tt=o[4]*o[4]+o[5]*o[5]+o[6]*o[6],nt=o[8]*o[8]+o[9]*o[9]+o[10]*o[10];return Math.sqrt(Math.max(et,tt,nt))}makeTranslation(o,et,tt){return o.isVector3?this.set(1,0,0,o.x,0,1,0,o.y,0,0,1,o.z,0,0,0,1):this.set(1,0,0,o,0,1,0,et,0,0,1,tt,0,0,0,1),this}makeRotationX(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(1,0,0,0,0,et,-tt,0,0,tt,et,0,0,0,0,1),this}makeRotationY(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(et,0,tt,0,0,1,0,0,-tt,0,et,0,0,0,0,1),this}makeRotationZ(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(et,-tt,0,0,tt,et,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(o,et){const tt=Math.cos(et),nt=Math.sin(et),rt=1-tt,it=o.x,ot=o.y,st=o.z,at=rt*it,lt=rt*ot;return this.set(at*it+tt,at*ot-nt*st,at*st+nt*ot,0,at*ot+nt*st,lt*ot+tt,lt*st-nt*it,0,at*st-nt*ot,lt*st+nt*it,rt*st*st+tt,0,0,0,0,1),this}makeScale(o,et,tt){return this.set(o,0,0,0,0,et,0,0,0,0,tt,0,0,0,0,1),this}makeShear(o,et,tt,nt,rt,it){return this.set(1,tt,rt,0,o,1,it,0,et,nt,1,0,0,0,0,1),this}compose(o,et,tt){const nt=this.elements,rt=et._x,it=et._y,ot=et._z,st=et._w,at=rt+rt,lt=it+it,ut=ot+ot,dt=rt*at,ht=rt*lt,ct=rt*ut,pt=it*lt,ft=it*ut,gt=ot*ut,yt=st*at,Ut=st*lt,Ft=st*ut,mt=tt.x,vt=tt.y,At=tt.z;return nt[0]=(1-(pt+gt))*mt,nt[1]=(ht+Ft)*mt,nt[2]=(ct-Ut)*mt,nt[3]=0,nt[4]=(ht-Ft)*vt,nt[5]=(1-(dt+gt))*vt,nt[6]=(ft+yt)*vt,nt[7]=0,nt[8]=(ct+Ut)*At,nt[9]=(ft-yt)*At,nt[10]=(1-(dt+pt))*At,nt[11]=0,nt[12]=o.x,nt[13]=o.y,nt[14]=o.z,nt[15]=1,this}decompose(o,et,tt){const nt=this.elements;let rt=_v1$5.set(nt[0],nt[1],nt[2]).length();const it=_v1$5.set(nt[4],nt[5],nt[6]).length(),ot=_v1$5.set(nt[8],nt[9],nt[10]).length();this.determinant()<0&&(rt=-rt),o.x=nt[12],o.y=nt[13],o.z=nt[14],_m1$4.copy(this);const at=1/rt,lt=1/it,ut=1/ot;return _m1$4.elements[0]*=at,_m1$4.elements[1]*=at,_m1$4.elements[2]*=at,_m1$4.elements[4]*=lt,_m1$4.elements[5]*=lt,_m1$4.elements[6]*=lt,_m1$4.elements[8]*=ut,_m1$4.elements[9]*=ut,_m1$4.elements[10]*=ut,et.setFromRotationMatrix(_m1$4),tt.x=rt,tt.y=it,tt.z=ot,this}makePerspective(o,et,tt,nt,rt,it,ot=WebGLCoordinateSystem){const st=this.elements,at=2*rt/(et-o),lt=2*rt/(tt-nt),ut=(et+o)/(et-o),dt=(tt+nt)/(tt-nt);let ht,ct;if(ot===WebGLCoordinateSystem)ht=-(it+rt)/(it-rt),ct=-2*it*rt/(it-rt);else if(ot===WebGPUCoordinateSystem)ht=-it/(it-rt),ct=-it*rt/(it-rt);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+ot);return st[0]=at,st[4]=0,st[8]=ut,st[12]=0,st[1]=0,st[5]=lt,st[9]=dt,st[13]=0,st[2]=0,st[6]=0,st[10]=ht,st[14]=ct,st[3]=0,st[7]=0,st[11]=-1,st[15]=0,this}makeOrthographic(o,et,tt,nt,rt,it,ot=WebGLCoordinateSystem){const st=this.elements,at=1/(et-o),lt=1/(tt-nt),ut=1/(it-rt),dt=(et+o)*at,ht=(tt+nt)*lt;let ct,pt;if(ot===WebGLCoordinateSystem)ct=(it+rt)*ut,pt=-2*ut;else if(ot===WebGPUCoordinateSystem)ct=rt*ut,pt=-1*ut;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+ot);return st[0]=2*at,st[4]=0,st[8]=0,st[12]=-dt,st[1]=0,st[5]=2*lt,st[9]=0,st[13]=-ht,st[2]=0,st[6]=0,st[10]=pt,st[14]=-ct,st[3]=0,st[7]=0,st[11]=0,st[15]=1,this}equals(o){const et=this.elements,tt=o.elements;for(let nt=0;nt<16;nt++)if(et[nt]!==tt[nt])return!1;return!0}fromArray(o,et=0){for(let tt=0;tt<16;tt++)this.elements[tt]=o[tt+et];return this}toArray(o=[],et=0){const tt=this.elements;return o[et]=tt[0],o[et+1]=tt[1],o[et+2]=tt[2],o[et+3]=tt[3],o[et+4]=tt[4],o[et+5]=tt[5],o[et+6]=tt[6],o[et+7]=tt[7],o[et+8]=tt[8],o[et+9]=tt[9],o[et+10]=tt[10],o[et+11]=tt[11],o[et+12]=tt[12],o[et+13]=tt[13],o[et+14]=tt[14],o[et+15]=tt[15],o}}const _v1$5=new Vector3,_m1$4=new Matrix4,_zero=new Vector3(0,0,0),_one=new Vector3(1,1,1),_x=new Vector3,_y=new Vector3,_z=new Vector3,_matrix$2=new Matrix4,_quaternion$3=new Quaternion;class Euler{constructor(o=0,et=0,tt=0,nt=Euler.DEFAULT_ORDER){this.isEuler=!0,this._x=o,this._y=et,this._z=tt,this._order=nt}get x(){return this._x}set x(o){this._x=o,this._onChangeCallback()}get y(){return this._y}set y(o){this._y=o,this._onChangeCallback()}get z(){return this._z}set z(o){this._z=o,this._onChangeCallback()}get order(){return this._order}set order(o){this._order=o,this._onChangeCallback()}set(o,et,tt,nt=this._order){return this._x=o,this._y=et,this._z=tt,this._order=nt,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(o){return this._x=o._x,this._y=o._y,this._z=o._z,this._order=o._order,this._onChangeCallback(),this}setFromRotationMatrix(o,et=this._order,tt=!0){const nt=o.elements,rt=nt[0],it=nt[4],ot=nt[8],st=nt[1],at=nt[5],lt=nt[9],ut=nt[2],dt=nt[6],ht=nt[10];switch(et){case"XYZ":this._y=Math.asin(clamp$4(ot,-1,1)),Math.abs(ot)<.9999999?(this._x=Math.atan2(-lt,ht),this._z=Math.atan2(-it,rt)):(this._x=Math.atan2(dt,at),this._z=0);break;case"YXZ":this._x=Math.asin(-clamp$4(lt,-1,1)),Math.abs(lt)<.9999999?(this._y=Math.atan2(ot,ht),this._z=Math.atan2(st,at)):(this._y=Math.atan2(-ut,rt),this._z=0);break;case"ZXY":this._x=Math.asin(clamp$4(dt,-1,1)),Math.abs(dt)<.9999999?(this._y=Math.atan2(-ut,ht),this._z=Math.atan2(-it,at)):(this._y=0,this._z=Math.atan2(st,rt));break;case"ZYX":this._y=Math.asin(-clamp$4(ut,-1,1)),Math.abs(ut)<.9999999?(this._x=Math.atan2(dt,ht),this._z=Math.atan2(st,rt)):(this._x=0,this._z=Math.atan2(-it,at));break;case"YZX":this._z=Math.asin(clamp$4(st,-1,1)),Math.abs(st)<.9999999?(this._x=Math.atan2(-lt,at),this._y=Math.atan2(-ut,rt)):(this._x=0,this._y=Math.atan2(ot,ht));break;case"XZY":this._z=Math.asin(-clamp$4(it,-1,1)),Math.abs(it)<.9999999?(this._x=Math.atan2(dt,at),this._y=Math.atan2(ot,rt)):(this._x=Math.atan2(-lt,ht),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+et)}return this._order=et,tt===!0&&this._onChangeCallback(),this}setFromQuaternion(o,et,tt){return _matrix$2.makeRotationFromQuaternion(o),this.setFromRotationMatrix(_matrix$2,et,tt)}setFromVector3(o,et=this._order){return this.set(o.x,o.y,o.z,et)}reorder(o){return _quaternion$3.setFromEuler(this),this.setFromQuaternion(_quaternion$3,o)}equals(o){return o._x===this._x&&o._y===this._y&&o._z===this._z&&o._order===this._order}fromArray(o){return this._x=o[0],this._y=o[1],this._z=o[2],o[3]!==void 0&&(this._order=o[3]),this._onChangeCallback(),this}toArray(o=[],et=0){return o[et]=this._x,o[et+1]=this._y,o[et+2]=this._z,o[et+3]=this._order,o}_onChange(o){return this._onChangeCallback=o,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Euler.DEFAULT_ORDER="XYZ";class Layers{constructor(){this.mask=1}set(o){this.mask=(1<>>0}enable(o){this.mask|=1<1){for(let et=0;et1){for(let tt=0;tt0&&(nt.userData=this.userData),nt.layers=this.layers.mask,nt.matrix=this.matrix.toArray(),nt.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(nt.matrixAutoUpdate=!1),this.isInstancedMesh&&(nt.type="InstancedMesh",nt.count=this.count,nt.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(nt.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(nt.type="BatchedMesh",nt.perObjectFrustumCulled=this.perObjectFrustumCulled,nt.sortObjects=this.sortObjects,nt.drawRanges=this._drawRanges,nt.reservedRanges=this._reservedRanges,nt.visibility=this._visibility,nt.active=this._active,nt.bounds=this._bounds.map(ot=>({boxInitialized:ot.boxInitialized,boxMin:ot.box.min.toArray(),boxMax:ot.box.max.toArray(),sphereInitialized:ot.sphereInitialized,sphereRadius:ot.sphere.radius,sphereCenter:ot.sphere.center.toArray()})),nt.maxGeometryCount=this._maxGeometryCount,nt.maxVertexCount=this._maxVertexCount,nt.maxIndexCount=this._maxIndexCount,nt.geometryInitialized=this._geometryInitialized,nt.geometryCount=this._geometryCount,nt.matricesTexture=this._matricesTexture.toJSON(o),this._colorsTexture!==null&&(nt.colorsTexture=this._colorsTexture.toJSON(o)),this.boundingSphere!==null&&(nt.boundingSphere={center:nt.boundingSphere.center.toArray(),radius:nt.boundingSphere.radius}),this.boundingBox!==null&&(nt.boundingBox={min:nt.boundingBox.min.toArray(),max:nt.boundingBox.max.toArray()}));function rt(ot,st){return ot[st.uuid]===void 0&&(ot[st.uuid]=st.toJSON(o)),st.uuid}if(this.isScene)this.background&&(this.background.isColor?nt.background=this.background.toJSON():this.background.isTexture&&(nt.background=this.background.toJSON(o).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(nt.environment=this.environment.toJSON(o).uuid);else if(this.isMesh||this.isLine||this.isPoints){nt.geometry=rt(o.geometries,this.geometry);const ot=this.geometry.parameters;if(ot!==void 0&&ot.shapes!==void 0){const st=ot.shapes;if(Array.isArray(st))for(let at=0,lt=st.length;at0){nt.children=[];for(let ot=0;ot0){nt.animations=[];for(let ot=0;ot0&&(tt.geometries=ot),st.length>0&&(tt.materials=st),at.length>0&&(tt.textures=at),lt.length>0&&(tt.images=lt),ut.length>0&&(tt.shapes=ut),dt.length>0&&(tt.skeletons=dt),ht.length>0&&(tt.animations=ht),ct.length>0&&(tt.nodes=ct)}return tt.object=nt,tt;function it(ot){const st=[];for(const at in ot){const lt=ot[at];delete lt.metadata,st.push(lt)}return st}}clone(o){return new this.constructor().copy(this,o)}copy(o,et=!0){if(this.name=o.name,this.up.copy(o.up),this.position.copy(o.position),this.rotation.order=o.rotation.order,this.quaternion.copy(o.quaternion),this.scale.copy(o.scale),this.matrix.copy(o.matrix),this.matrixWorld.copy(o.matrixWorld),this.matrixAutoUpdate=o.matrixAutoUpdate,this.matrixWorldAutoUpdate=o.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=o.matrixWorldNeedsUpdate,this.layers.mask=o.layers.mask,this.visible=o.visible,this.castShadow=o.castShadow,this.receiveShadow=o.receiveShadow,this.frustumCulled=o.frustumCulled,this.renderOrder=o.renderOrder,this.animations=o.animations.slice(),this.userData=JSON.parse(JSON.stringify(o.userData)),et===!0)for(let tt=0;tt0?nt.multiplyScalar(1/Math.sqrt(rt)):nt.set(0,0,0)}static getBarycoord(o,et,tt,nt,rt){_v0$1.subVectors(nt,et),_v1$3.subVectors(tt,et),_v2$2.subVectors(o,et);const it=_v0$1.dot(_v0$1),ot=_v0$1.dot(_v1$3),st=_v0$1.dot(_v2$2),at=_v1$3.dot(_v1$3),lt=_v1$3.dot(_v2$2),ut=it*at-ot*ot;if(ut===0)return rt.set(0,0,0),null;const dt=1/ut,ht=(at*st-ot*lt)*dt,ct=(it*lt-ot*st)*dt;return rt.set(1-ht-ct,ct,ht)}static containsPoint(o,et,tt,nt){return this.getBarycoord(o,et,tt,nt,_v3$2)===null?!1:_v3$2.x>=0&&_v3$2.y>=0&&_v3$2.x+_v3$2.y<=1}static getInterpolation(o,et,tt,nt,rt,it,ot,st){return this.getBarycoord(o,et,tt,nt,_v3$2)===null?(st.x=0,st.y=0,"z"in st&&(st.z=0),"w"in st&&(st.w=0),null):(st.setScalar(0),st.addScaledVector(rt,_v3$2.x),st.addScaledVector(it,_v3$2.y),st.addScaledVector(ot,_v3$2.z),st)}static isFrontFacing(o,et,tt,nt){return _v0$1.subVectors(tt,et),_v1$3.subVectors(o,et),_v0$1.cross(_v1$3).dot(nt)<0}set(o,et,tt){return this.a.copy(o),this.b.copy(et),this.c.copy(tt),this}setFromPointsAndIndices(o,et,tt,nt){return this.a.copy(o[et]),this.b.copy(o[tt]),this.c.copy(o[nt]),this}setFromAttributeAndIndices(o,et,tt,nt){return this.a.fromBufferAttribute(o,et),this.b.fromBufferAttribute(o,tt),this.c.fromBufferAttribute(o,nt),this}clone(){return new this.constructor().copy(this)}copy(o){return this.a.copy(o.a),this.b.copy(o.b),this.c.copy(o.c),this}getArea(){return _v0$1.subVectors(this.c,this.b),_v1$3.subVectors(this.a,this.b),_v0$1.cross(_v1$3).length()*.5}getMidpoint(o){return o.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(o){return Triangle.getNormal(this.a,this.b,this.c,o)}getPlane(o){return o.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(o,et){return Triangle.getBarycoord(o,this.a,this.b,this.c,et)}getInterpolation(o,et,tt,nt,rt){return Triangle.getInterpolation(o,this.a,this.b,this.c,et,tt,nt,rt)}containsPoint(o){return Triangle.containsPoint(o,this.a,this.b,this.c)}isFrontFacing(o){return Triangle.isFrontFacing(this.a,this.b,this.c,o)}intersectsBox(o){return o.intersectsTriangle(this)}closestPointToPoint(o,et){const tt=this.a,nt=this.b,rt=this.c;let it,ot;_vab.subVectors(nt,tt),_vac.subVectors(rt,tt),_vap.subVectors(o,tt);const st=_vab.dot(_vap),at=_vac.dot(_vap);if(st<=0&&at<=0)return et.copy(tt);_vbp.subVectors(o,nt);const lt=_vab.dot(_vbp),ut=_vac.dot(_vbp);if(lt>=0&&ut<=lt)return et.copy(nt);const dt=st*ut-lt*at;if(dt<=0&&st>=0&<<=0)return it=st/(st-lt),et.copy(tt).addScaledVector(_vab,it);_vcp.subVectors(o,rt);const ht=_vab.dot(_vcp),ct=_vac.dot(_vcp);if(ct>=0&&ht<=ct)return et.copy(rt);const pt=ht*at-st*ct;if(pt<=0&&at>=0&&ct<=0)return ot=at/(at-ct),et.copy(tt).addScaledVector(_vac,ot);const ft=lt*ct-ht*ut;if(ft<=0&&ut-lt>=0&&ht-ct>=0)return _vbc.subVectors(rt,nt),ot=(ut-lt)/(ut-lt+(ht-ct)),et.copy(nt).addScaledVector(_vbc,ot);const gt=1/(ft+pt+dt);return it=pt*gt,ot=dt*gt,et.copy(tt).addScaledVector(_vab,it).addScaledVector(_vac,ot)}equals(o){return o.a.equals(this.a)&&o.b.equals(this.b)&&o.c.equals(this.c)}}const _colorKeywords={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},_hslA={h:0,s:0,l:0},_hslB={h:0,s:0,l:0};function hue2rgb(s,o,et){return et<0&&(et+=1),et>1&&(et-=1),et<1/6?s+(o-s)*6*et:et<1/2?o:et<2/3?s+(o-s)*6*(2/3-et):s}let Color$2=class{constructor(o,et,tt){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(o,et,tt)}set(o,et,tt){if(et===void 0&&tt===void 0){const nt=o;nt&&nt.isColor?this.copy(nt):typeof nt=="number"?this.setHex(nt):typeof nt=="string"&&this.setStyle(nt)}else this.setRGB(o,et,tt);return this}setScalar(o){return this.r=o,this.g=o,this.b=o,this}setHex(o,et=SRGBColorSpace$1){return o=Math.floor(o),this.r=(o>>16&255)/255,this.g=(o>>8&255)/255,this.b=(o&255)/255,ColorManagement.toWorkingColorSpace(this,et),this}setRGB(o,et,tt,nt=ColorManagement.workingColorSpace){return this.r=o,this.g=et,this.b=tt,ColorManagement.toWorkingColorSpace(this,nt),this}setHSL(o,et,tt,nt=ColorManagement.workingColorSpace){if(o=euclideanModulo(o,1),et=clamp$4(et,0,1),tt=clamp$4(tt,0,1),et===0)this.r=this.g=this.b=tt;else{const rt=tt<=.5?tt*(1+et):tt+et-tt*et,it=2*tt-rt;this.r=hue2rgb(it,rt,o+1/3),this.g=hue2rgb(it,rt,o),this.b=hue2rgb(it,rt,o-1/3)}return ColorManagement.toWorkingColorSpace(this,nt),this}setStyle(o,et=SRGBColorSpace$1){function tt(rt){rt!==void 0&&parseFloat(rt)<1&&console.warn("THREE.Color: Alpha component of "+o+" will be ignored.")}let nt;if(nt=/^(\w+)\(([^\)]*)\)/.exec(o)){let rt;const it=nt[1],ot=nt[2];switch(it){case"rgb":case"rgba":if(rt=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ot))return tt(rt[4]),this.setRGB(Math.min(255,parseInt(rt[1],10))/255,Math.min(255,parseInt(rt[2],10))/255,Math.min(255,parseInt(rt[3],10))/255,et);if(rt=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ot))return tt(rt[4]),this.setRGB(Math.min(100,parseInt(rt[1],10))/100,Math.min(100,parseInt(rt[2],10))/100,Math.min(100,parseInt(rt[3],10))/100,et);break;case"hsl":case"hsla":if(rt=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ot))return tt(rt[4]),this.setHSL(parseFloat(rt[1])/360,parseFloat(rt[2])/100,parseFloat(rt[3])/100,et);break;default:console.warn("THREE.Color: Unknown color model "+o)}}else if(nt=/^\#([A-Fa-f\d]+)$/.exec(o)){const rt=nt[1],it=rt.length;if(it===3)return this.setRGB(parseInt(rt.charAt(0),16)/15,parseInt(rt.charAt(1),16)/15,parseInt(rt.charAt(2),16)/15,et);if(it===6)return this.setHex(parseInt(rt,16),et);console.warn("THREE.Color: Invalid hex color "+o)}else if(o&&o.length>0)return this.setColorName(o,et);return this}setColorName(o,et=SRGBColorSpace$1){const tt=_colorKeywords[o.toLowerCase()];return tt!==void 0?this.setHex(tt,et):console.warn("THREE.Color: Unknown color "+o),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(o){return this.r=o.r,this.g=o.g,this.b=o.b,this}copySRGBToLinear(o){return this.r=SRGBToLinear(o.r),this.g=SRGBToLinear(o.g),this.b=SRGBToLinear(o.b),this}copyLinearToSRGB(o){return this.r=LinearToSRGB(o.r),this.g=LinearToSRGB(o.g),this.b=LinearToSRGB(o.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(o=SRGBColorSpace$1){return ColorManagement.fromWorkingColorSpace(_color.copy(this),o),Math.round(clamp$4(_color.r*255,0,255))*65536+Math.round(clamp$4(_color.g*255,0,255))*256+Math.round(clamp$4(_color.b*255,0,255))}getHexString(o=SRGBColorSpace$1){return("000000"+this.getHex(o).toString(16)).slice(-6)}getHSL(o,et=ColorManagement.workingColorSpace){ColorManagement.fromWorkingColorSpace(_color.copy(this),et);const tt=_color.r,nt=_color.g,rt=_color.b,it=Math.max(tt,nt,rt),ot=Math.min(tt,nt,rt);let st,at;const lt=(ot+it)/2;if(ot===it)st=0,at=0;else{const ut=it-ot;switch(at=lt<=.5?ut/(it+ot):ut/(2-it-ot),it){case tt:st=(nt-rt)/ut+(nt0!=o>0&&this.version++,this._alphaTest=o}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(o){if(o!==void 0)for(const et in o){const tt=o[et];if(tt===void 0){console.warn(`THREE.Material: parameter '${et}' has value of undefined.`);continue}const nt=this[et];if(nt===void 0){console.warn(`THREE.Material: '${et}' is not a property of THREE.${this.type}.`);continue}nt&&nt.isColor?nt.set(tt):nt&&nt.isVector3&&tt&&tt.isVector3?nt.copy(tt):this[et]=tt}}toJSON(o){const et=o===void 0||typeof o=="string";et&&(o={textures:{},images:{}});const tt={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};tt.uuid=this.uuid,tt.type=this.type,this.name!==""&&(tt.name=this.name),this.color&&this.color.isColor&&(tt.color=this.color.getHex()),this.roughness!==void 0&&(tt.roughness=this.roughness),this.metalness!==void 0&&(tt.metalness=this.metalness),this.sheen!==void 0&&(tt.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(tt.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(tt.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(tt.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(tt.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(tt.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(tt.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(tt.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(tt.shininess=this.shininess),this.clearcoat!==void 0&&(tt.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(tt.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(tt.clearcoatMap=this.clearcoatMap.toJSON(o).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(tt.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(o).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(tt.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(o).uuid,tt.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.dispersion!==void 0&&(tt.dispersion=this.dispersion),this.iridescence!==void 0&&(tt.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(tt.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(tt.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(tt.iridescenceMap=this.iridescenceMap.toJSON(o).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(tt.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(o).uuid),this.anisotropy!==void 0&&(tt.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(tt.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(tt.anisotropyMap=this.anisotropyMap.toJSON(o).uuid),this.map&&this.map.isTexture&&(tt.map=this.map.toJSON(o).uuid),this.matcap&&this.matcap.isTexture&&(tt.matcap=this.matcap.toJSON(o).uuid),this.alphaMap&&this.alphaMap.isTexture&&(tt.alphaMap=this.alphaMap.toJSON(o).uuid),this.lightMap&&this.lightMap.isTexture&&(tt.lightMap=this.lightMap.toJSON(o).uuid,tt.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(tt.aoMap=this.aoMap.toJSON(o).uuid,tt.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(tt.bumpMap=this.bumpMap.toJSON(o).uuid,tt.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(tt.normalMap=this.normalMap.toJSON(o).uuid,tt.normalMapType=this.normalMapType,tt.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(tt.displacementMap=this.displacementMap.toJSON(o).uuid,tt.displacementScale=this.displacementScale,tt.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(tt.roughnessMap=this.roughnessMap.toJSON(o).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(tt.metalnessMap=this.metalnessMap.toJSON(o).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(tt.emissiveMap=this.emissiveMap.toJSON(o).uuid),this.specularMap&&this.specularMap.isTexture&&(tt.specularMap=this.specularMap.toJSON(o).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(tt.specularIntensityMap=this.specularIntensityMap.toJSON(o).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(tt.specularColorMap=this.specularColorMap.toJSON(o).uuid),this.envMap&&this.envMap.isTexture&&(tt.envMap=this.envMap.toJSON(o).uuid,this.combine!==void 0&&(tt.combine=this.combine)),this.envMapRotation!==void 0&&(tt.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(tt.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(tt.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(tt.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(tt.gradientMap=this.gradientMap.toJSON(o).uuid),this.transmission!==void 0&&(tt.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(tt.transmissionMap=this.transmissionMap.toJSON(o).uuid),this.thickness!==void 0&&(tt.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(tt.thicknessMap=this.thicknessMap.toJSON(o).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(tt.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(tt.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(tt.size=this.size),this.shadowSide!==null&&(tt.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(tt.sizeAttenuation=this.sizeAttenuation),this.blending!==NormalBlending&&(tt.blending=this.blending),this.side!==FrontSide&&(tt.side=this.side),this.vertexColors===!0&&(tt.vertexColors=!0),this.opacity<1&&(tt.opacity=this.opacity),this.transparent===!0&&(tt.transparent=!0),this.blendSrc!==SrcAlphaFactor&&(tt.blendSrc=this.blendSrc),this.blendDst!==OneMinusSrcAlphaFactor&&(tt.blendDst=this.blendDst),this.blendEquation!==AddEquation&&(tt.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(tt.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(tt.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(tt.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(tt.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(tt.blendAlpha=this.blendAlpha),this.depthFunc!==LessEqualDepth&&(tt.depthFunc=this.depthFunc),this.depthTest===!1&&(tt.depthTest=this.depthTest),this.depthWrite===!1&&(tt.depthWrite=this.depthWrite),this.colorWrite===!1&&(tt.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(tt.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==AlwaysStencilFunc&&(tt.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(tt.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(tt.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==KeepStencilOp&&(tt.stencilFail=this.stencilFail),this.stencilZFail!==KeepStencilOp&&(tt.stencilZFail=this.stencilZFail),this.stencilZPass!==KeepStencilOp&&(tt.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(tt.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(tt.rotation=this.rotation),this.polygonOffset===!0&&(tt.polygonOffset=!0),this.polygonOffsetFactor!==0&&(tt.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(tt.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(tt.linewidth=this.linewidth),this.dashSize!==void 0&&(tt.dashSize=this.dashSize),this.gapSize!==void 0&&(tt.gapSize=this.gapSize),this.scale!==void 0&&(tt.scale=this.scale),this.dithering===!0&&(tt.dithering=!0),this.alphaTest>0&&(tt.alphaTest=this.alphaTest),this.alphaHash===!0&&(tt.alphaHash=!0),this.alphaToCoverage===!0&&(tt.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(tt.premultipliedAlpha=!0),this.forceSinglePass===!0&&(tt.forceSinglePass=!0),this.wireframe===!0&&(tt.wireframe=!0),this.wireframeLinewidth>1&&(tt.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(tt.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(tt.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(tt.flatShading=!0),this.visible===!1&&(tt.visible=!1),this.toneMapped===!1&&(tt.toneMapped=!1),this.fog===!1&&(tt.fog=!1),Object.keys(this.userData).length>0&&(tt.userData=this.userData);function nt(rt){const it=[];for(const ot in rt){const st=rt[ot];delete st.metadata,it.push(st)}return it}if(et){const rt=nt(o.textures),it=nt(o.images);rt.length>0&&(tt.textures=rt),it.length>0&&(tt.images=it)}return tt}clone(){return new this.constructor().copy(this)}copy(o){this.name=o.name,this.blending=o.blending,this.side=o.side,this.vertexColors=o.vertexColors,this.opacity=o.opacity,this.transparent=o.transparent,this.blendSrc=o.blendSrc,this.blendDst=o.blendDst,this.blendEquation=o.blendEquation,this.blendSrcAlpha=o.blendSrcAlpha,this.blendDstAlpha=o.blendDstAlpha,this.blendEquationAlpha=o.blendEquationAlpha,this.blendColor.copy(o.blendColor),this.blendAlpha=o.blendAlpha,this.depthFunc=o.depthFunc,this.depthTest=o.depthTest,this.depthWrite=o.depthWrite,this.stencilWriteMask=o.stencilWriteMask,this.stencilFunc=o.stencilFunc,this.stencilRef=o.stencilRef,this.stencilFuncMask=o.stencilFuncMask,this.stencilFail=o.stencilFail,this.stencilZFail=o.stencilZFail,this.stencilZPass=o.stencilZPass,this.stencilWrite=o.stencilWrite;const et=o.clippingPlanes;let tt=null;if(et!==null){const nt=et.length;tt=new Array(nt);for(let rt=0;rt!==nt;++rt)tt[rt]=et[rt].clone()}return this.clippingPlanes=tt,this.clipIntersection=o.clipIntersection,this.clipShadows=o.clipShadows,this.shadowSide=o.shadowSide,this.colorWrite=o.colorWrite,this.precision=o.precision,this.polygonOffset=o.polygonOffset,this.polygonOffsetFactor=o.polygonOffsetFactor,this.polygonOffsetUnits=o.polygonOffsetUnits,this.dithering=o.dithering,this.alphaTest=o.alphaTest,this.alphaHash=o.alphaHash,this.alphaToCoverage=o.alphaToCoverage,this.premultipliedAlpha=o.premultipliedAlpha,this.forceSinglePass=o.forceSinglePass,this.visible=o.visible,this.toneMapped=o.toneMapped,this.userData=JSON.parse(JSON.stringify(o.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(o){o===!0&&this.version++}}class MeshBasicMaterial extends Material{constructor(o){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Color$2(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.map=o.map,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.specularMap=o.specularMap,this.alphaMap=o.alphaMap,this.envMap=o.envMap,this.envMapRotation.copy(o.envMapRotation),this.combine=o.combine,this.reflectivity=o.reflectivity,this.refractionRatio=o.refractionRatio,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.fog=o.fog,this}}const _tables=_generateTables();function _generateTables(){const s=new ArrayBuffer(4),o=new Float32Array(s),et=new Uint32Array(s),tt=new Uint32Array(512),nt=new Uint32Array(512);for(let st=0;st<256;++st){const at=st-127;at<-27?(tt[st]=0,tt[st|256]=32768,nt[st]=24,nt[st|256]=24):at<-14?(tt[st]=1024>>-at-14,tt[st|256]=1024>>-at-14|32768,nt[st]=-at-1,nt[st|256]=-at-1):at<=15?(tt[st]=at+15<<10,tt[st|256]=at+15<<10|32768,nt[st]=13,nt[st|256]=13):at<128?(tt[st]=31744,tt[st|256]=64512,nt[st]=24,nt[st|256]=24):(tt[st]=31744,tt[st|256]=64512,nt[st]=13,nt[st|256]=13)}const rt=new Uint32Array(2048),it=new Uint32Array(64),ot=new Uint32Array(64);for(let st=1;st<1024;++st){let at=st<<13,lt=0;for(;!(at&8388608);)at<<=1,lt-=8388608;at&=-8388609,lt+=947912704,rt[st]=at|lt}for(let st=1024;st<2048;++st)rt[st]=939524096+(st-1024<<13);for(let st=1;st<31;++st)it[st]=st<<23;it[31]=1199570944,it[32]=2147483648;for(let st=33;st<63;++st)it[st]=2147483648+(st-32<<23);it[63]=3347054592;for(let st=1;st<64;++st)st!==32&&(ot[st]=1024);return{floatView:o,uint32View:et,baseTable:tt,shiftTable:nt,mantissaTable:rt,exponentTable:it,offsetTable:ot}}function toHalfFloat(s){Math.abs(s)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),s=clamp$4(s,-65504,65504),_tables.floatView[0]=s;const o=_tables.uint32View[0],et=o>>23&511;return _tables.baseTable[et]+((o&8388607)>>_tables.shiftTable[et])}function fromHalfFloat(s){const o=s>>10;return _tables.uint32View[0]=_tables.mantissaTable[_tables.offsetTable[o]+(s&1023)]+_tables.exponentTable[o],_tables.floatView[0]}const DataUtils={toHalfFloat,fromHalfFloat},_vector$9=new Vector3,_vector2$1=new Vector2;class BufferAttribute{constructor(o,et,tt=!1){if(Array.isArray(o))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=o,this.itemSize=et,this.count=o!==void 0?o.length/et:0,this.normalized=tt,this.usage=StaticDrawUsage,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=FloatType,this.version=0}onUploadCallback(){}set needsUpdate(o){o===!0&&this.version++}get updateRange(){return warnOnce("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(o){return this.usage=o,this}addUpdateRange(o,et){this.updateRanges.push({start:o,count:et})}clearUpdateRanges(){this.updateRanges.length=0}copy(o){return this.name=o.name,this.array=new o.array.constructor(o.array),this.itemSize=o.itemSize,this.count=o.count,this.normalized=o.normalized,this.usage=o.usage,this.gpuType=o.gpuType,this}copyAt(o,et,tt){o*=this.itemSize,tt*=et.itemSize;for(let nt=0,rt=this.itemSize;nt0&&(o.userData=this.userData),this.parameters!==void 0){const st=this.parameters;for(const at in st)st[at]!==void 0&&(o[at]=st[at]);return o}o.data={attributes:{}};const et=this.index;et!==null&&(o.data.index={type:et.array.constructor.name,array:Array.prototype.slice.call(et.array)});const tt=this.attributes;for(const st in tt){const at=tt[st];o.data.attributes[st]=at.toJSON(o.data)}const nt={};let rt=!1;for(const st in this.morphAttributes){const at=this.morphAttributes[st],lt=[];for(let ut=0,dt=at.length;ut0&&(nt[st]=lt,rt=!0)}rt&&(o.data.morphAttributes=nt,o.data.morphTargetsRelative=this.morphTargetsRelative);const it=this.groups;it.length>0&&(o.data.groups=JSON.parse(JSON.stringify(it)));const ot=this.boundingSphere;return ot!==null&&(o.data.boundingSphere={center:ot.center.toArray(),radius:ot.radius}),o}clone(){return new this.constructor().copy(this)}copy(o){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const et={};this.name=o.name;const tt=o.index;tt!==null&&this.setIndex(tt.clone(et));const nt=o.attributes;for(const at in nt){const lt=nt[at];this.setAttribute(at,lt.clone(et))}const rt=o.morphAttributes;for(const at in rt){const lt=[],ut=rt[at];for(let dt=0,ht=ut.length;dt0){const nt=et[tt[0]];if(nt!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let rt=0,it=nt.length;rt(o.far-o.near)**2))&&(_inverseMatrix$3.copy(rt).invert(),_ray$3.copy(o.ray).applyMatrix4(_inverseMatrix$3),!(tt.boundingBox!==null&&_ray$3.intersectsBox(tt.boundingBox)===!1)&&this._computeIntersections(o,et,_ray$3)))}_computeIntersections(o,et,tt){let nt;const rt=this.geometry,it=this.material,ot=rt.index,st=rt.attributes.position,at=rt.attributes.uv,lt=rt.attributes.uv1,ut=rt.attributes.normal,dt=rt.groups,ht=rt.drawRange;if(ot!==null)if(Array.isArray(it))for(let ct=0,pt=dt.length;ctet.far?null:{distance:at,point:_intersectionPointWorld.clone(),object:s}}function checkGeometryIntersection(s,o,et,tt,nt,rt,it,ot,st,at){s.getVertexPosition(ot,_vA$1),s.getVertexPosition(st,_vB$1),s.getVertexPosition(at,_vC$1);const lt=checkIntersection$1(s,o,et,tt,_vA$1,_vB$1,_vC$1,_intersectionPoint);if(lt){nt&&(_uvA$1.fromBufferAttribute(nt,ot),_uvB$1.fromBufferAttribute(nt,st),_uvC$1.fromBufferAttribute(nt,at),lt.uv=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_uvA$1,_uvB$1,_uvC$1,new Vector2)),rt&&(_uvA$1.fromBufferAttribute(rt,ot),_uvB$1.fromBufferAttribute(rt,st),_uvC$1.fromBufferAttribute(rt,at),lt.uv1=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_uvA$1,_uvB$1,_uvC$1,new Vector2)),it&&(_normalA.fromBufferAttribute(it,ot),_normalB.fromBufferAttribute(it,st),_normalC.fromBufferAttribute(it,at),lt.normal=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_normalA,_normalB,_normalC,new Vector3),lt.normal.dot(tt.direction)>0&<.normal.multiplyScalar(-1));const ut={a:ot,b:st,c:at,normal:new Vector3,materialIndex:0};Triangle.getNormal(_vA$1,_vB$1,_vC$1,ut.normal),lt.face=ut}return lt}class BoxGeometry extends BufferGeometry{constructor(o=1,et=1,tt=1,nt=1,rt=1,it=1){super(),this.type="BoxGeometry",this.parameters={width:o,height:et,depth:tt,widthSegments:nt,heightSegments:rt,depthSegments:it};const ot=this;nt=Math.floor(nt),rt=Math.floor(rt),it=Math.floor(it);const st=[],at=[],lt=[],ut=[];let dt=0,ht=0;ct("z","y","x",-1,-1,tt,et,o,it,rt,0),ct("z","y","x",1,-1,tt,et,-o,it,rt,1),ct("x","z","y",1,1,o,tt,et,nt,it,2),ct("x","z","y",1,-1,o,tt,-et,nt,it,3),ct("x","y","z",1,-1,o,et,tt,nt,rt,4),ct("x","y","z",-1,-1,o,et,-tt,nt,rt,5),this.setIndex(st),this.setAttribute("position",new Float32BufferAttribute(at,3)),this.setAttribute("normal",new Float32BufferAttribute(lt,3)),this.setAttribute("uv",new Float32BufferAttribute(ut,2));function ct(pt,ft,gt,yt,Ut,Ft,mt,vt,At,Lt,Rt){const St=Ft/At,Tt=mt/Lt,Bt=Ft/2,xt=mt/2,Ct=vt/2,kt=At+1,Nt=Lt+1;let Ot=0,Jt=0;const Dt=new Vector3;for(let Et=0;Et0?1:-1,lt.push(Dt.x,Dt.y,Dt.z),ut.push(zt/At),ut.push(1-Et/Lt),Ot+=1}}for(let Et=0;Et #include #include -}`,ShaderChunk={alphahash_fragment,alphahash_pars_fragment,alphamap_fragment,alphamap_pars_fragment,alphatest_fragment,alphatest_pars_fragment,aomap_fragment,aomap_pars_fragment,batching_pars_vertex,batching_vertex,begin_vertex,beginnormal_vertex,bsdfs,iridescence_fragment,bumpmap_pars_fragment,clipping_planes_fragment,clipping_planes_pars_fragment,clipping_planes_pars_vertex,clipping_planes_vertex,color_fragment,color_pars_fragment,color_pars_vertex,color_vertex,common:common$4,cube_uv_reflection_fragment,defaultnormal_vertex,displacementmap_pars_vertex,displacementmap_vertex,emissivemap_fragment,emissivemap_pars_fragment,colorspace_fragment,colorspace_pars_fragment,envmap_fragment,envmap_common_pars_fragment,envmap_pars_fragment,envmap_pars_vertex,envmap_physical_pars_fragment,envmap_vertex,fog_vertex,fog_pars_vertex,fog_fragment,fog_pars_fragment,gradientmap_pars_fragment,lightmap_pars_fragment,lights_lambert_fragment,lights_lambert_pars_fragment,lights_pars_begin,lights_toon_fragment,lights_toon_pars_fragment,lights_phong_fragment,lights_phong_pars_fragment,lights_physical_fragment,lights_physical_pars_fragment,lights_fragment_begin,lights_fragment_maps,lights_fragment_end,logdepthbuf_fragment,logdepthbuf_pars_fragment,logdepthbuf_pars_vertex,logdepthbuf_vertex,map_fragment,map_pars_fragment,map_particle_fragment,map_particle_pars_fragment,metalnessmap_fragment,metalnessmap_pars_fragment,morphinstance_vertex,morphcolor_vertex,morphnormal_vertex,morphtarget_pars_vertex,morphtarget_vertex,normal_fragment_begin,normal_fragment_maps,normal_pars_fragment,normal_pars_vertex,normal_vertex,normalmap_pars_fragment,clearcoat_normal_fragment_begin,clearcoat_normal_fragment_maps,clearcoat_pars_fragment,iridescence_pars_fragment,opaque_fragment,packing,premultiplied_alpha_fragment,project_vertex,dithering_fragment,dithering_pars_fragment,roughnessmap_fragment,roughnessmap_pars_fragment,shadowmap_pars_fragment,shadowmap_pars_vertex,shadowmap_vertex,shadowmask_pars_fragment,skinbase_vertex,skinning_pars_vertex,skinning_vertex,skinnormal_vertex,specularmap_fragment,specularmap_pars_fragment,tonemapping_fragment,tonemapping_pars_fragment,transmission_fragment,transmission_pars_fragment,uv_pars_fragment,uv_pars_vertex,uv_vertex,worldpos_vertex,background_vert:vertex$h,background_frag:fragment$h,backgroundCube_vert:vertex$g,backgroundCube_frag:fragment$g,cube_vert:vertex$f,cube_frag:fragment$f,depth_vert:vertex$e,depth_frag:fragment$e,distanceRGBA_vert:vertex$d,distanceRGBA_frag:fragment$d,equirect_vert:vertex$c,equirect_frag:fragment$c,linedashed_vert:vertex$b,linedashed_frag:fragment$b,meshbasic_vert:vertex$a,meshbasic_frag:fragment$a,meshlambert_vert:vertex$9,meshlambert_frag:fragment$9,meshmatcap_vert:vertex$8,meshmatcap_frag:fragment$8,meshnormal_vert:vertex$7,meshnormal_frag:fragment$7,meshphong_vert:vertex$6,meshphong_frag:fragment$6,meshphysical_vert:vertex$5,meshphysical_frag:fragment$5,meshtoon_vert:vertex$4,meshtoon_frag:fragment$4,points_vert:vertex$3,points_frag:fragment$3,shadow_vert:vertex$2,shadow_frag:fragment$2,sprite_vert:vertex$1,sprite_frag:fragment$1},UniformsLib={common:{diffuse:{value:new Color$2(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Matrix3}},envmap:{envMap:{value:null},envMapRotation:{value:new Matrix3},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Matrix3}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Matrix3}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Matrix3},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Matrix3},normalScale:{value:new Vector2(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Matrix3},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Matrix3}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Matrix3}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Matrix3}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Color$2(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Color$2(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0},uvTransform:{value:new Matrix3}},sprite:{diffuse:{value:new Color$2(16777215)},opacity:{value:1},center:{value:new Vector2(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}}},ShaderLib={basic:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.fog]),vertexShader:ShaderChunk.meshbasic_vert,fragmentShader:ShaderChunk.meshbasic_frag},lambert:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)}}]),vertexShader:ShaderChunk.meshlambert_vert,fragmentShader:ShaderChunk.meshlambert_frag},phong:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)},specular:{value:new Color$2(1118481)},shininess:{value:30}}]),vertexShader:ShaderChunk.meshphong_vert,fragmentShader:ShaderChunk.meshphong_frag},standard:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.roughnessmap,UniformsLib.metalnessmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag},toon:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.gradientmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)}}]),vertexShader:ShaderChunk.meshtoon_vert,fragmentShader:ShaderChunk.meshtoon_frag},matcap:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,{matcap:{value:null}}]),vertexShader:ShaderChunk.meshmatcap_vert,fragmentShader:ShaderChunk.meshmatcap_frag},points:{uniforms:mergeUniforms([UniformsLib.points,UniformsLib.fog]),vertexShader:ShaderChunk.points_vert,fragmentShader:ShaderChunk.points_frag},dashed:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:ShaderChunk.linedashed_vert,fragmentShader:ShaderChunk.linedashed_frag},depth:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap]),vertexShader:ShaderChunk.depth_vert,fragmentShader:ShaderChunk.depth_frag},normal:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,{opacity:{value:1}}]),vertexShader:ShaderChunk.meshnormal_vert,fragmentShader:ShaderChunk.meshnormal_frag},sprite:{uniforms:mergeUniforms([UniformsLib.sprite,UniformsLib.fog]),vertexShader:ShaderChunk.sprite_vert,fragmentShader:ShaderChunk.sprite_frag},background:{uniforms:{uvTransform:{value:new Matrix3},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:ShaderChunk.background_vert,fragmentShader:ShaderChunk.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Matrix3}},vertexShader:ShaderChunk.backgroundCube_vert,fragmentShader:ShaderChunk.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:ShaderChunk.cube_vert,fragmentShader:ShaderChunk.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:ShaderChunk.equirect_vert,fragmentShader:ShaderChunk.equirect_frag},distanceRGBA:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap,{referencePosition:{value:new Vector3},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:ShaderChunk.distanceRGBA_vert,fragmentShader:ShaderChunk.distanceRGBA_frag},shadow:{uniforms:mergeUniforms([UniformsLib.lights,UniformsLib.fog,{color:{value:new Color$2(0)},opacity:{value:1}}]),vertexShader:ShaderChunk.shadow_vert,fragmentShader:ShaderChunk.shadow_frag}};ShaderLib.physical={uniforms:mergeUniforms([ShaderLib.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Matrix3},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Matrix3},clearcoatNormalScale:{value:new Vector2(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Matrix3},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Matrix3},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Matrix3},sheen:{value:0},sheenColor:{value:new Color$2(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Matrix3},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Matrix3},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Matrix3},transmissionSamplerSize:{value:new Vector2},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Matrix3},attenuationDistance:{value:0},attenuationColor:{value:new Color$2(0)},specularColor:{value:new Color$2(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Matrix3},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Matrix3},anisotropyVector:{value:new Vector2},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Matrix3}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag};const _rgb={r:0,b:0,g:0},_e1$1=new Euler,_m1$1=new Matrix4;function WebGLBackground(s,o,et,tt,nt,rt,it){const ot=new Color$2(0);let st=rt===!0?0:1,at,lt,ut=null,dt=0,ht=null;function ct(yt){let Ut=yt.isScene===!0?yt.background:null;return Ut&&Ut.isTexture&&(Ut=(yt.backgroundBlurriness>0?et:o).get(Ut)),Ut}function pt(yt){let Ut=!1;const Ft=ct(yt);Ft===null?gt(ot,st):Ft&&Ft.isColor&&(gt(Ft,1),Ut=!0);const mt=s.xr.getEnvironmentBlendMode();mt==="additive"?tt.buffers.color.setClear(0,0,0,1,it):mt==="alpha-blend"&&tt.buffers.color.setClear(0,0,0,0,it),(s.autoClear||Ut)&&(tt.buffers.depth.setTest(!0),tt.buffers.depth.setMask(!0),tt.buffers.color.setMask(!0),s.clear(s.autoClearColor,s.autoClearDepth,s.autoClearStencil))}function ft(yt,Ut){const Ft=ct(Ut);Ft&&(Ft.isCubeTexture||Ft.mapping===CubeUVReflectionMapping)?(lt===void 0&&(lt=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:"BackgroundCubeMaterial",uniforms:cloneUniforms(ShaderLib.backgroundCube.uniforms),vertexShader:ShaderLib.backgroundCube.vertexShader,fragmentShader:ShaderLib.backgroundCube.fragmentShader,side:BackSide,depthTest:!1,depthWrite:!1,fog:!1})),lt.geometry.deleteAttribute("normal"),lt.geometry.deleteAttribute("uv"),lt.onBeforeRender=function(mt,vt,At){this.matrixWorld.copyPosition(At.matrixWorld)},Object.defineProperty(lt.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),nt.update(lt)),_e1$1.copy(Ut.backgroundRotation),_e1$1.x*=-1,_e1$1.y*=-1,_e1$1.z*=-1,Ft.isCubeTexture&&Ft.isRenderTargetTexture===!1&&(_e1$1.y*=-1,_e1$1.z*=-1),lt.material.uniforms.envMap.value=Ft,lt.material.uniforms.flipEnvMap.value=Ft.isCubeTexture&&Ft.isRenderTargetTexture===!1?-1:1,lt.material.uniforms.backgroundBlurriness.value=Ut.backgroundBlurriness,lt.material.uniforms.backgroundIntensity.value=Ut.backgroundIntensity,lt.material.uniforms.backgroundRotation.value.setFromMatrix4(_m1$1.makeRotationFromEuler(_e1$1)),lt.material.toneMapped=ColorManagement.getTransfer(Ft.colorSpace)!==SRGBTransfer,(ut!==Ft||dt!==Ft.version||ht!==s.toneMapping)&&(lt.material.needsUpdate=!0,ut=Ft,dt=Ft.version,ht=s.toneMapping),lt.layers.enableAll(),yt.unshift(lt,lt.geometry,lt.material,0,0,null)):Ft&&Ft.isTexture&&(at===void 0&&(at=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:"BackgroundMaterial",uniforms:cloneUniforms(ShaderLib.background.uniforms),vertexShader:ShaderLib.background.vertexShader,fragmentShader:ShaderLib.background.fragmentShader,side:FrontSide,depthTest:!1,depthWrite:!1,fog:!1})),at.geometry.deleteAttribute("normal"),Object.defineProperty(at.material,"map",{get:function(){return this.uniforms.t2D.value}}),nt.update(at)),at.material.uniforms.t2D.value=Ft,at.material.uniforms.backgroundIntensity.value=Ut.backgroundIntensity,at.material.toneMapped=ColorManagement.getTransfer(Ft.colorSpace)!==SRGBTransfer,Ft.matrixAutoUpdate===!0&&Ft.updateMatrix(),at.material.uniforms.uvTransform.value.copy(Ft.matrix),(ut!==Ft||dt!==Ft.version||ht!==s.toneMapping)&&(at.material.needsUpdate=!0,ut=Ft,dt=Ft.version,ht=s.toneMapping),at.layers.enableAll(),yt.unshift(at,at.geometry,at.material,0,0,null))}function gt(yt,Ut){yt.getRGB(_rgb,getUnlitUniformColorSpace(s)),tt.buffers.color.setClear(_rgb.r,_rgb.g,_rgb.b,Ut,it)}return{getClearColor:function(){return ot},setClearColor:function(yt,Ut=1){ot.set(yt),st=Ut,gt(ot,st)},getClearAlpha:function(){return st},setClearAlpha:function(yt){st=yt,gt(ot,st)},render:pt,addToRenderList:ft}}function WebGLBindingStates(s,o){const et=s.getParameter(s.MAX_VERTEX_ATTRIBS),tt={},nt=dt(null);let rt=nt,it=!1;function ot(St,Tt,Bt,xt,Ct){let kt=!1;const Nt=ut(xt,Bt,Tt);rt!==Nt&&(rt=Nt,at(rt.object)),kt=ht(St,xt,Bt,Ct),kt&&ct(St,xt,Bt,Ct),Ct!==null&&o.update(Ct,s.ELEMENT_ARRAY_BUFFER),(kt||it)&&(it=!1,Ft(St,Tt,Bt,xt),Ct!==null&&s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,o.get(Ct).buffer))}function st(){return s.createVertexArray()}function at(St){return s.bindVertexArray(St)}function lt(St){return s.deleteVertexArray(St)}function ut(St,Tt,Bt){const xt=Bt.wireframe===!0;let Ct=tt[St.id];Ct===void 0&&(Ct={},tt[St.id]=Ct);let kt=Ct[Tt.id];kt===void 0&&(kt={},Ct[Tt.id]=kt);let Nt=kt[xt];return Nt===void 0&&(Nt=dt(st()),kt[xt]=Nt),Nt}function dt(St){const Tt=[],Bt=[],xt=[];for(let Ct=0;Ct=0){const Et=Ct[Wt];let Pt=kt[Wt];if(Pt===void 0&&(Wt==="instanceMatrix"&&St.instanceMatrix&&(Pt=St.instanceMatrix),Wt==="instanceColor"&&St.instanceColor&&(Pt=St.instanceColor)),Et===void 0||Et.attribute!==Pt||Pt&&Et.data!==Pt.data)return!0;Nt++}return rt.attributesNum!==Nt||rt.index!==xt}function ct(St,Tt,Bt,xt){const Ct={},kt=Tt.attributes;let Nt=0;const Ot=Bt.getAttributes();for(const Wt in Ot)if(Ot[Wt].location>=0){let Et=kt[Wt];Et===void 0&&(Wt==="instanceMatrix"&&St.instanceMatrix&&(Et=St.instanceMatrix),Wt==="instanceColor"&&St.instanceColor&&(Et=St.instanceColor));const Pt={};Pt.attribute=Et,Et&&Et.data&&(Pt.data=Et.data),Ct[Wt]=Pt,Nt++}rt.attributes=Ct,rt.attributesNum=Nt,rt.index=xt}function pt(){const St=rt.newAttributes;for(let Tt=0,Bt=St.length;Tt=0){let Dt=Ct[Ot];if(Dt===void 0&&(Ot==="instanceMatrix"&&St.instanceMatrix&&(Dt=St.instanceMatrix),Ot==="instanceColor"&&St.instanceColor&&(Dt=St.instanceColor)),Dt!==void 0){const Et=Dt.normalized,Pt=Dt.itemSize,zt=o.get(Dt);if(zt===void 0)continue;const en=zt.buffer,Kt=zt.type,nn=zt.bytesPerElement,Zt=Kt===s.INT||Kt===s.UNSIGNED_INT||Dt.gpuType===IntType;if(Dt.isInterleavedBufferAttribute){const jt=Dt.data,Vt=jt.stride,It=Dt.offset;if(jt.isInstancedInterleavedBuffer){for(let $t=0;$t0&&s.getShaderPrecisionFormat(s.FRAGMENT_SHADER,s.HIGH_FLOAT).precision>0)return"highp";vt="mediump"}return vt==="mediump"&&s.getShaderPrecisionFormat(s.VERTEX_SHADER,s.MEDIUM_FLOAT).precision>0&&s.getShaderPrecisionFormat(s.FRAGMENT_SHADER,s.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let at=et.precision!==void 0?et.precision:"highp";const lt=st(at);lt!==at&&(console.warn("THREE.WebGLRenderer:",at,"not supported, using",lt,"instead."),at=lt);const ut=et.logarithmicDepthBuffer===!0,dt=s.getParameter(s.MAX_TEXTURE_IMAGE_UNITS),ht=s.getParameter(s.MAX_VERTEX_TEXTURE_IMAGE_UNITS),ct=s.getParameter(s.MAX_TEXTURE_SIZE),pt=s.getParameter(s.MAX_CUBE_MAP_TEXTURE_SIZE),ft=s.getParameter(s.MAX_VERTEX_ATTRIBS),gt=s.getParameter(s.MAX_VERTEX_UNIFORM_VECTORS),yt=s.getParameter(s.MAX_VARYING_VECTORS),Ut=s.getParameter(s.MAX_FRAGMENT_UNIFORM_VECTORS),Ft=ht>0,mt=s.getParameter(s.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:rt,getMaxPrecision:st,textureFormatReadable:it,textureTypeReadable:ot,precision:at,logarithmicDepthBuffer:ut,maxTextures:dt,maxVertexTextures:ht,maxTextureSize:ct,maxCubemapSize:pt,maxAttributes:ft,maxVertexUniforms:gt,maxVaryings:yt,maxFragmentUniforms:Ut,vertexTextures:Ft,maxSamples:mt}}function WebGLClipping(s){const o=this;let et=null,tt=0,nt=!1,rt=!1;const it=new Plane,ot=new Matrix3,st={value:null,needsUpdate:!1};this.uniform=st,this.numPlanes=0,this.numIntersection=0,this.init=function(ut,dt){const ht=ut.length!==0||dt||tt!==0||nt;return nt=dt,tt=ut.length,ht},this.beginShadows=function(){rt=!0,lt(null)},this.endShadows=function(){rt=!1},this.setGlobalState=function(ut,dt){et=lt(ut,dt,0)},this.setState=function(ut,dt,ht){const ct=ut.clippingPlanes,pt=ut.clipIntersection,ft=ut.clipShadows,gt=s.get(ut);if(!nt||ct===null||ct.length===0||rt&&!ft)rt?lt(null):at();else{const yt=rt?0:tt,Ut=yt*4;let Ft=gt.clippingState||null;st.value=Ft,Ft=lt(ct,dt,Ut,ht);for(let mt=0;mt!==Ut;++mt)Ft[mt]=et[mt];gt.clippingState=Ft,this.numIntersection=pt?this.numPlanes:0,this.numPlanes+=yt}};function at(){st.value!==et&&(st.value=et,st.needsUpdate=tt>0),o.numPlanes=tt,o.numIntersection=0}function lt(ut,dt,ht,ct){const pt=ut!==null?ut.length:0;let ft=null;if(pt!==0){if(ft=st.value,ct!==!0||ft===null){const gt=ht+pt*4,yt=dt.matrixWorldInverse;ot.getNormalMatrix(yt),(ft===null||ft.length0){const at=new WebGLCubeRenderTarget(st.height);return at.fromEquirectangularTexture(s,it),o.set(it,at),it.addEventListener("dispose",nt),et(at.texture,it.mapping)}else return null}}return it}function nt(it){const ot=it.target;ot.removeEventListener("dispose",nt);const st=o.get(ot);st!==void 0&&(o.delete(ot),st.dispose())}function rt(){o=new WeakMap}return{get:tt,dispose:rt}}class OrthographicCamera extends Camera{constructor(o=-1,et=1,tt=1,nt=-1,rt=.1,it=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=o,this.right=et,this.top=tt,this.bottom=nt,this.near=rt,this.far=it,this.updateProjectionMatrix()}copy(o,et){return super.copy(o,et),this.left=o.left,this.right=o.right,this.top=o.top,this.bottom=o.bottom,this.near=o.near,this.far=o.far,this.zoom=o.zoom,this.view=o.view===null?null:Object.assign({},o.view),this}setViewOffset(o,et,tt,nt,rt,it){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=o,this.view.fullHeight=et,this.view.offsetX=tt,this.view.offsetY=nt,this.view.width=rt,this.view.height=it,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const o=(this.right-this.left)/(2*this.zoom),et=(this.top-this.bottom)/(2*this.zoom),tt=(this.right+this.left)/2,nt=(this.top+this.bottom)/2;let rt=tt-o,it=tt+o,ot=nt+et,st=nt-et;if(this.view!==null&&this.view.enabled){const at=(this.right-this.left)/this.view.fullWidth/this.zoom,lt=(this.top-this.bottom)/this.view.fullHeight/this.zoom;rt+=at*this.view.offsetX,it=rt+at*this.view.width,ot-=lt*this.view.offsetY,st=ot-lt*this.view.height}this.projectionMatrix.makeOrthographic(rt,it,ot,st,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(o){const et=super.toJSON(o);return et.object.zoom=this.zoom,et.object.left=this.left,et.object.right=this.right,et.object.top=this.top,et.object.bottom=this.bottom,et.object.near=this.near,et.object.far=this.far,this.view!==null&&(et.object.view=Object.assign({},this.view)),et}}const LOD_MIN=4,EXTRA_LOD_SIGMA=[.125,.215,.35,.446,.526,.582],MAX_SAMPLES=20,_flatCamera=new OrthographicCamera,_clearColor=new Color$2;let _oldTarget=null,_oldActiveCubeFace=0,_oldActiveMipmapLevel=0,_oldXrEnabled=!1;const PHI=(1+Math.sqrt(5))/2,INV_PHI=1/PHI,_axisDirections=[new Vector3(-PHI,INV_PHI,0),new Vector3(PHI,INV_PHI,0),new Vector3(-INV_PHI,0,PHI),new Vector3(INV_PHI,0,PHI),new Vector3(0,PHI,-INV_PHI),new Vector3(0,PHI,INV_PHI),new Vector3(-1,1,-1),new Vector3(1,1,-1),new Vector3(-1,1,1),new Vector3(1,1,1)];class PMREMGenerator{constructor(o){this._renderer=o,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(o,et=0,tt=.1,nt=100){_oldTarget=this._renderer.getRenderTarget(),_oldActiveCubeFace=this._renderer.getActiveCubeFace(),_oldActiveMipmapLevel=this._renderer.getActiveMipmapLevel(),_oldXrEnabled=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const rt=this._allocateTargets();return rt.depthBuffer=!0,this._sceneToCubeUV(o,tt,nt,rt),et>0&&this._blur(rt,0,0,et),this._applyPMREM(rt),this._cleanup(rt),rt}fromEquirectangular(o,et=null){return this._fromTexture(o,et)}fromCubemap(o,et=null){return this._fromTexture(o,et)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=_getCubemapMaterial(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=_getEquirectMaterial(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(o){this._lodMax=Math.floor(Math.log2(o)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let o=0;o2?Ut:0,Ut,Ut),lt.setRenderTarget(nt),pt&<.render(ct,ot),lt.render(o,ot)}ct.geometry.dispose(),ct.material.dispose(),lt.toneMapping=dt,lt.autoClear=ut,o.background=ft}_textureToCubeUV(o,et){const tt=this._renderer,nt=o.mapping===CubeReflectionMapping||o.mapping===CubeRefractionMapping;nt?(this._cubemapMaterial===null&&(this._cubemapMaterial=_getCubemapMaterial()),this._cubemapMaterial.uniforms.flipEnvMap.value=o.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=_getEquirectMaterial());const rt=nt?this._cubemapMaterial:this._equirectMaterial,it=new Mesh(this._lodPlanes[0],rt),ot=rt.uniforms;ot.envMap.value=o;const st=this._cubeSize;_setViewport(et,0,0,3*st,2*st),tt.setRenderTarget(et),tt.render(it,_flatCamera)}_applyPMREM(o){const et=this._renderer,tt=et.autoClear;et.autoClear=!1;const nt=this._lodPlanes.length;for(let rt=1;rtMAX_SAMPLES&&console.warn(`sigmaRadians, ${rt}, is too large and will clip, as it requested ${ft} samples when the maximum is set to ${MAX_SAMPLES}`);const gt=[];let yt=0;for(let At=0;AtUt-LOD_MIN?nt-Ut+LOD_MIN:0),vt=4*(this._cubeSize-Ft);_setViewport(et,mt,vt,3*Ft,2*Ft),st.setRenderTarget(et),st.render(ut,_flatCamera)}}function _createPlanes(s){const o=[],et=[],tt=[];let nt=s;const rt=s-LOD_MIN+1+EXTRA_LOD_SIGMA.length;for(let it=0;its-LOD_MIN?st=EXTRA_LOD_SIGMA[it-s+LOD_MIN-1]:it===0&&(st=0),tt.push(st);const at=1/(ot-2),lt=-at,ut=1+at,dt=[lt,lt,ut,lt,ut,ut,lt,lt,ut,ut,lt,ut],ht=6,ct=6,pt=3,ft=2,gt=1,yt=new Float32Array(pt*ct*ht),Ut=new Float32Array(ft*ct*ht),Ft=new Float32Array(gt*ct*ht);for(let vt=0;vt2?0:-1,Rt=[At,Lt,0,At+2/3,Lt,0,At+2/3,Lt+1,0,At,Lt,0,At+2/3,Lt+1,0,At,Lt+1,0];yt.set(Rt,pt*ct*vt),Ut.set(dt,ft*ct*vt);const St=[vt,vt,vt,vt,vt,vt];Ft.set(St,gt*ct*vt)}const mt=new BufferGeometry;mt.setAttribute("position",new BufferAttribute(yt,pt)),mt.setAttribute("uv",new BufferAttribute(Ut,ft)),mt.setAttribute("faceIndex",new BufferAttribute(Ft,gt)),o.push(mt),nt>LOD_MIN&&nt--}return{lodPlanes:o,sizeLods:et,sigmas:tt}}function _createRenderTarget(s,o,et){const tt=new WebGLRenderTarget(s,o,et);return tt.texture.mapping=CubeUVReflectionMapping,tt.texture.name="PMREM.cubeUv",tt.scissorTest=!0,tt}function _setViewport(s,o,et,tt,nt){s.viewport.set(o,et,tt,nt),s.scissor.set(o,et,tt,nt)}function _getBlurShader(s,o,et){const tt=new Float32Array(MAX_SAMPLES),nt=new Vector3(0,1,0);return new ShaderMaterial({name:"SphericalGaussianBlur",defines:{n:MAX_SAMPLES,CUBEUV_TEXEL_WIDTH:1/o,CUBEUV_TEXEL_HEIGHT:1/et,CUBEUV_MAX_MIP:`${s}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:tt},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:nt}},vertexShader:_getCommonVertexShader(),fragmentShader:` +}`,ShaderChunk={alphahash_fragment,alphahash_pars_fragment,alphamap_fragment,alphamap_pars_fragment,alphatest_fragment,alphatest_pars_fragment,aomap_fragment,aomap_pars_fragment,batching_pars_vertex,batching_vertex,begin_vertex,beginnormal_vertex,bsdfs,iridescence_fragment,bumpmap_pars_fragment,clipping_planes_fragment,clipping_planes_pars_fragment,clipping_planes_pars_vertex,clipping_planes_vertex,color_fragment,color_pars_fragment,color_pars_vertex,color_vertex,common:common$4,cube_uv_reflection_fragment,defaultnormal_vertex,displacementmap_pars_vertex,displacementmap_vertex,emissivemap_fragment,emissivemap_pars_fragment,colorspace_fragment,colorspace_pars_fragment,envmap_fragment,envmap_common_pars_fragment,envmap_pars_fragment,envmap_pars_vertex,envmap_physical_pars_fragment,envmap_vertex,fog_vertex,fog_pars_vertex,fog_fragment,fog_pars_fragment,gradientmap_pars_fragment,lightmap_pars_fragment,lights_lambert_fragment,lights_lambert_pars_fragment,lights_pars_begin,lights_toon_fragment,lights_toon_pars_fragment,lights_phong_fragment,lights_phong_pars_fragment,lights_physical_fragment,lights_physical_pars_fragment,lights_fragment_begin,lights_fragment_maps,lights_fragment_end,logdepthbuf_fragment,logdepthbuf_pars_fragment,logdepthbuf_pars_vertex,logdepthbuf_vertex,map_fragment,map_pars_fragment,map_particle_fragment,map_particle_pars_fragment,metalnessmap_fragment,metalnessmap_pars_fragment,morphinstance_vertex,morphcolor_vertex,morphnormal_vertex,morphtarget_pars_vertex,morphtarget_vertex,normal_fragment_begin,normal_fragment_maps,normal_pars_fragment,normal_pars_vertex,normal_vertex,normalmap_pars_fragment,clearcoat_normal_fragment_begin,clearcoat_normal_fragment_maps,clearcoat_pars_fragment,iridescence_pars_fragment,opaque_fragment,packing,premultiplied_alpha_fragment,project_vertex,dithering_fragment,dithering_pars_fragment,roughnessmap_fragment,roughnessmap_pars_fragment,shadowmap_pars_fragment,shadowmap_pars_vertex,shadowmap_vertex,shadowmask_pars_fragment,skinbase_vertex,skinning_pars_vertex,skinning_vertex,skinnormal_vertex,specularmap_fragment,specularmap_pars_fragment,tonemapping_fragment,tonemapping_pars_fragment,transmission_fragment,transmission_pars_fragment,uv_pars_fragment,uv_pars_vertex,uv_vertex,worldpos_vertex,background_vert:vertex$h,background_frag:fragment$h,backgroundCube_vert:vertex$g,backgroundCube_frag:fragment$g,cube_vert:vertex$f,cube_frag:fragment$f,depth_vert:vertex$e,depth_frag:fragment$e,distanceRGBA_vert:vertex$d,distanceRGBA_frag:fragment$d,equirect_vert:vertex$c,equirect_frag:fragment$c,linedashed_vert:vertex$b,linedashed_frag:fragment$b,meshbasic_vert:vertex$a,meshbasic_frag:fragment$a,meshlambert_vert:vertex$9,meshlambert_frag:fragment$9,meshmatcap_vert:vertex$8,meshmatcap_frag:fragment$8,meshnormal_vert:vertex$7,meshnormal_frag:fragment$7,meshphong_vert:vertex$6,meshphong_frag:fragment$6,meshphysical_vert:vertex$5,meshphysical_frag:fragment$5,meshtoon_vert:vertex$4,meshtoon_frag:fragment$4,points_vert:vertex$3,points_frag:fragment$3,shadow_vert:vertex$2,shadow_frag:fragment$2,sprite_vert:vertex$1,sprite_frag:fragment$1},UniformsLib={common:{diffuse:{value:new Color$2(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Matrix3}},envmap:{envMap:{value:null},envMapRotation:{value:new Matrix3},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Matrix3}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Matrix3}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Matrix3},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Matrix3},normalScale:{value:new Vector2(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Matrix3},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Matrix3}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Matrix3}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Matrix3}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Color$2(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Color$2(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0},uvTransform:{value:new Matrix3}},sprite:{diffuse:{value:new Color$2(16777215)},opacity:{value:1},center:{value:new Vector2(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}}},ShaderLib={basic:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.fog]),vertexShader:ShaderChunk.meshbasic_vert,fragmentShader:ShaderChunk.meshbasic_frag},lambert:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)}}]),vertexShader:ShaderChunk.meshlambert_vert,fragmentShader:ShaderChunk.meshlambert_frag},phong:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)},specular:{value:new Color$2(1118481)},shininess:{value:30}}]),vertexShader:ShaderChunk.meshphong_vert,fragmentShader:ShaderChunk.meshphong_frag},standard:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.roughnessmap,UniformsLib.metalnessmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag},toon:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.gradientmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)}}]),vertexShader:ShaderChunk.meshtoon_vert,fragmentShader:ShaderChunk.meshtoon_frag},matcap:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,{matcap:{value:null}}]),vertexShader:ShaderChunk.meshmatcap_vert,fragmentShader:ShaderChunk.meshmatcap_frag},points:{uniforms:mergeUniforms([UniformsLib.points,UniformsLib.fog]),vertexShader:ShaderChunk.points_vert,fragmentShader:ShaderChunk.points_frag},dashed:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:ShaderChunk.linedashed_vert,fragmentShader:ShaderChunk.linedashed_frag},depth:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap]),vertexShader:ShaderChunk.depth_vert,fragmentShader:ShaderChunk.depth_frag},normal:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,{opacity:{value:1}}]),vertexShader:ShaderChunk.meshnormal_vert,fragmentShader:ShaderChunk.meshnormal_frag},sprite:{uniforms:mergeUniforms([UniformsLib.sprite,UniformsLib.fog]),vertexShader:ShaderChunk.sprite_vert,fragmentShader:ShaderChunk.sprite_frag},background:{uniforms:{uvTransform:{value:new Matrix3},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:ShaderChunk.background_vert,fragmentShader:ShaderChunk.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Matrix3}},vertexShader:ShaderChunk.backgroundCube_vert,fragmentShader:ShaderChunk.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:ShaderChunk.cube_vert,fragmentShader:ShaderChunk.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:ShaderChunk.equirect_vert,fragmentShader:ShaderChunk.equirect_frag},distanceRGBA:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap,{referencePosition:{value:new Vector3},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:ShaderChunk.distanceRGBA_vert,fragmentShader:ShaderChunk.distanceRGBA_frag},shadow:{uniforms:mergeUniforms([UniformsLib.lights,UniformsLib.fog,{color:{value:new Color$2(0)},opacity:{value:1}}]),vertexShader:ShaderChunk.shadow_vert,fragmentShader:ShaderChunk.shadow_frag}};ShaderLib.physical={uniforms:mergeUniforms([ShaderLib.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Matrix3},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Matrix3},clearcoatNormalScale:{value:new Vector2(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Matrix3},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Matrix3},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Matrix3},sheen:{value:0},sheenColor:{value:new Color$2(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Matrix3},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Matrix3},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Matrix3},transmissionSamplerSize:{value:new Vector2},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Matrix3},attenuationDistance:{value:0},attenuationColor:{value:new Color$2(0)},specularColor:{value:new Color$2(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Matrix3},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Matrix3},anisotropyVector:{value:new Vector2},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Matrix3}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag};const _rgb={r:0,b:0,g:0},_e1$1=new Euler,_m1$1=new Matrix4;function WebGLBackground(s,o,et,tt,nt,rt,it){const ot=new Color$2(0);let st=rt===!0?0:1,at,lt,ut=null,dt=0,ht=null;function ct(yt){let Ut=yt.isScene===!0?yt.background:null;return Ut&&Ut.isTexture&&(Ut=(yt.backgroundBlurriness>0?et:o).get(Ut)),Ut}function pt(yt){let Ut=!1;const Ft=ct(yt);Ft===null?gt(ot,st):Ft&&Ft.isColor&&(gt(Ft,1),Ut=!0);const mt=s.xr.getEnvironmentBlendMode();mt==="additive"?tt.buffers.color.setClear(0,0,0,1,it):mt==="alpha-blend"&&tt.buffers.color.setClear(0,0,0,0,it),(s.autoClear||Ut)&&(tt.buffers.depth.setTest(!0),tt.buffers.depth.setMask(!0),tt.buffers.color.setMask(!0),s.clear(s.autoClearColor,s.autoClearDepth,s.autoClearStencil))}function ft(yt,Ut){const Ft=ct(Ut);Ft&&(Ft.isCubeTexture||Ft.mapping===CubeUVReflectionMapping)?(lt===void 0&&(lt=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:"BackgroundCubeMaterial",uniforms:cloneUniforms(ShaderLib.backgroundCube.uniforms),vertexShader:ShaderLib.backgroundCube.vertexShader,fragmentShader:ShaderLib.backgroundCube.fragmentShader,side:BackSide,depthTest:!1,depthWrite:!1,fog:!1})),lt.geometry.deleteAttribute("normal"),lt.geometry.deleteAttribute("uv"),lt.onBeforeRender=function(mt,vt,At){this.matrixWorld.copyPosition(At.matrixWorld)},Object.defineProperty(lt.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),nt.update(lt)),_e1$1.copy(Ut.backgroundRotation),_e1$1.x*=-1,_e1$1.y*=-1,_e1$1.z*=-1,Ft.isCubeTexture&&Ft.isRenderTargetTexture===!1&&(_e1$1.y*=-1,_e1$1.z*=-1),lt.material.uniforms.envMap.value=Ft,lt.material.uniforms.flipEnvMap.value=Ft.isCubeTexture&&Ft.isRenderTargetTexture===!1?-1:1,lt.material.uniforms.backgroundBlurriness.value=Ut.backgroundBlurriness,lt.material.uniforms.backgroundIntensity.value=Ut.backgroundIntensity,lt.material.uniforms.backgroundRotation.value.setFromMatrix4(_m1$1.makeRotationFromEuler(_e1$1)),lt.material.toneMapped=ColorManagement.getTransfer(Ft.colorSpace)!==SRGBTransfer,(ut!==Ft||dt!==Ft.version||ht!==s.toneMapping)&&(lt.material.needsUpdate=!0,ut=Ft,dt=Ft.version,ht=s.toneMapping),lt.layers.enableAll(),yt.unshift(lt,lt.geometry,lt.material,0,0,null)):Ft&&Ft.isTexture&&(at===void 0&&(at=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:"BackgroundMaterial",uniforms:cloneUniforms(ShaderLib.background.uniforms),vertexShader:ShaderLib.background.vertexShader,fragmentShader:ShaderLib.background.fragmentShader,side:FrontSide,depthTest:!1,depthWrite:!1,fog:!1})),at.geometry.deleteAttribute("normal"),Object.defineProperty(at.material,"map",{get:function(){return this.uniforms.t2D.value}}),nt.update(at)),at.material.uniforms.t2D.value=Ft,at.material.uniforms.backgroundIntensity.value=Ut.backgroundIntensity,at.material.toneMapped=ColorManagement.getTransfer(Ft.colorSpace)!==SRGBTransfer,Ft.matrixAutoUpdate===!0&&Ft.updateMatrix(),at.material.uniforms.uvTransform.value.copy(Ft.matrix),(ut!==Ft||dt!==Ft.version||ht!==s.toneMapping)&&(at.material.needsUpdate=!0,ut=Ft,dt=Ft.version,ht=s.toneMapping),at.layers.enableAll(),yt.unshift(at,at.geometry,at.material,0,0,null))}function gt(yt,Ut){yt.getRGB(_rgb,getUnlitUniformColorSpace(s)),tt.buffers.color.setClear(_rgb.r,_rgb.g,_rgb.b,Ut,it)}return{getClearColor:function(){return ot},setClearColor:function(yt,Ut=1){ot.set(yt),st=Ut,gt(ot,st)},getClearAlpha:function(){return st},setClearAlpha:function(yt){st=yt,gt(ot,st)},render:pt,addToRenderList:ft}}function WebGLBindingStates(s,o){const et=s.getParameter(s.MAX_VERTEX_ATTRIBS),tt={},nt=dt(null);let rt=nt,it=!1;function ot(St,Tt,Bt,xt,Ct){let kt=!1;const Nt=ut(xt,Bt,Tt);rt!==Nt&&(rt=Nt,at(rt.object)),kt=ht(St,xt,Bt,Ct),kt&&ct(St,xt,Bt,Ct),Ct!==null&&o.update(Ct,s.ELEMENT_ARRAY_BUFFER),(kt||it)&&(it=!1,Ft(St,Tt,Bt,xt),Ct!==null&&s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,o.get(Ct).buffer))}function st(){return s.createVertexArray()}function at(St){return s.bindVertexArray(St)}function lt(St){return s.deleteVertexArray(St)}function ut(St,Tt,Bt){const xt=Bt.wireframe===!0;let Ct=tt[St.id];Ct===void 0&&(Ct={},tt[St.id]=Ct);let kt=Ct[Tt.id];kt===void 0&&(kt={},Ct[Tt.id]=kt);let Nt=kt[xt];return Nt===void 0&&(Nt=dt(st()),kt[xt]=Nt),Nt}function dt(St){const Tt=[],Bt=[],xt=[];for(let Ct=0;Ct=0){const Et=Ct[Jt];let Pt=kt[Jt];if(Pt===void 0&&(Jt==="instanceMatrix"&&St.instanceMatrix&&(Pt=St.instanceMatrix),Jt==="instanceColor"&&St.instanceColor&&(Pt=St.instanceColor)),Et===void 0||Et.attribute!==Pt||Pt&&Et.data!==Pt.data)return!0;Nt++}return rt.attributesNum!==Nt||rt.index!==xt}function ct(St,Tt,Bt,xt){const Ct={},kt=Tt.attributes;let Nt=0;const Ot=Bt.getAttributes();for(const Jt in Ot)if(Ot[Jt].location>=0){let Et=kt[Jt];Et===void 0&&(Jt==="instanceMatrix"&&St.instanceMatrix&&(Et=St.instanceMatrix),Jt==="instanceColor"&&St.instanceColor&&(Et=St.instanceColor));const Pt={};Pt.attribute=Et,Et&&Et.data&&(Pt.data=Et.data),Ct[Jt]=Pt,Nt++}rt.attributes=Ct,rt.attributesNum=Nt,rt.index=xt}function pt(){const St=rt.newAttributes;for(let Tt=0,Bt=St.length;Tt=0){let Dt=Ct[Ot];if(Dt===void 0&&(Ot==="instanceMatrix"&&St.instanceMatrix&&(Dt=St.instanceMatrix),Ot==="instanceColor"&&St.instanceColor&&(Dt=St.instanceColor)),Dt!==void 0){const Et=Dt.normalized,Pt=Dt.itemSize,zt=o.get(Dt);if(zt===void 0)continue;const en=zt.buffer,Kt=zt.type,nn=zt.bytesPerElement,Zt=Kt===s.INT||Kt===s.UNSIGNED_INT||Dt.gpuType===IntType;if(Dt.isInterleavedBufferAttribute){const jt=Dt.data,Vt=jt.stride,It=Dt.offset;if(jt.isInstancedInterleavedBuffer){for(let $t=0;$t0&&s.getShaderPrecisionFormat(s.FRAGMENT_SHADER,s.HIGH_FLOAT).precision>0)return"highp";vt="mediump"}return vt==="mediump"&&s.getShaderPrecisionFormat(s.VERTEX_SHADER,s.MEDIUM_FLOAT).precision>0&&s.getShaderPrecisionFormat(s.FRAGMENT_SHADER,s.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let at=et.precision!==void 0?et.precision:"highp";const lt=st(at);lt!==at&&(console.warn("THREE.WebGLRenderer:",at,"not supported, using",lt,"instead."),at=lt);const ut=et.logarithmicDepthBuffer===!0,dt=s.getParameter(s.MAX_TEXTURE_IMAGE_UNITS),ht=s.getParameter(s.MAX_VERTEX_TEXTURE_IMAGE_UNITS),ct=s.getParameter(s.MAX_TEXTURE_SIZE),pt=s.getParameter(s.MAX_CUBE_MAP_TEXTURE_SIZE),ft=s.getParameter(s.MAX_VERTEX_ATTRIBS),gt=s.getParameter(s.MAX_VERTEX_UNIFORM_VECTORS),yt=s.getParameter(s.MAX_VARYING_VECTORS),Ut=s.getParameter(s.MAX_FRAGMENT_UNIFORM_VECTORS),Ft=ht>0,mt=s.getParameter(s.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:rt,getMaxPrecision:st,textureFormatReadable:it,textureTypeReadable:ot,precision:at,logarithmicDepthBuffer:ut,maxTextures:dt,maxVertexTextures:ht,maxTextureSize:ct,maxCubemapSize:pt,maxAttributes:ft,maxVertexUniforms:gt,maxVaryings:yt,maxFragmentUniforms:Ut,vertexTextures:Ft,maxSamples:mt}}function WebGLClipping(s){const o=this;let et=null,tt=0,nt=!1,rt=!1;const it=new Plane,ot=new Matrix3,st={value:null,needsUpdate:!1};this.uniform=st,this.numPlanes=0,this.numIntersection=0,this.init=function(ut,dt){const ht=ut.length!==0||dt||tt!==0||nt;return nt=dt,tt=ut.length,ht},this.beginShadows=function(){rt=!0,lt(null)},this.endShadows=function(){rt=!1},this.setGlobalState=function(ut,dt){et=lt(ut,dt,0)},this.setState=function(ut,dt,ht){const ct=ut.clippingPlanes,pt=ut.clipIntersection,ft=ut.clipShadows,gt=s.get(ut);if(!nt||ct===null||ct.length===0||rt&&!ft)rt?lt(null):at();else{const yt=rt?0:tt,Ut=yt*4;let Ft=gt.clippingState||null;st.value=Ft,Ft=lt(ct,dt,Ut,ht);for(let mt=0;mt!==Ut;++mt)Ft[mt]=et[mt];gt.clippingState=Ft,this.numIntersection=pt?this.numPlanes:0,this.numPlanes+=yt}};function at(){st.value!==et&&(st.value=et,st.needsUpdate=tt>0),o.numPlanes=tt,o.numIntersection=0}function lt(ut,dt,ht,ct){const pt=ut!==null?ut.length:0;let ft=null;if(pt!==0){if(ft=st.value,ct!==!0||ft===null){const gt=ht+pt*4,yt=dt.matrixWorldInverse;ot.getNormalMatrix(yt),(ft===null||ft.length0){const at=new WebGLCubeRenderTarget(st.height);return at.fromEquirectangularTexture(s,it),o.set(it,at),it.addEventListener("dispose",nt),et(at.texture,it.mapping)}else return null}}return it}function nt(it){const ot=it.target;ot.removeEventListener("dispose",nt);const st=o.get(ot);st!==void 0&&(o.delete(ot),st.dispose())}function rt(){o=new WeakMap}return{get:tt,dispose:rt}}class OrthographicCamera extends Camera{constructor(o=-1,et=1,tt=1,nt=-1,rt=.1,it=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=o,this.right=et,this.top=tt,this.bottom=nt,this.near=rt,this.far=it,this.updateProjectionMatrix()}copy(o,et){return super.copy(o,et),this.left=o.left,this.right=o.right,this.top=o.top,this.bottom=o.bottom,this.near=o.near,this.far=o.far,this.zoom=o.zoom,this.view=o.view===null?null:Object.assign({},o.view),this}setViewOffset(o,et,tt,nt,rt,it){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=o,this.view.fullHeight=et,this.view.offsetX=tt,this.view.offsetY=nt,this.view.width=rt,this.view.height=it,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const o=(this.right-this.left)/(2*this.zoom),et=(this.top-this.bottom)/(2*this.zoom),tt=(this.right+this.left)/2,nt=(this.top+this.bottom)/2;let rt=tt-o,it=tt+o,ot=nt+et,st=nt-et;if(this.view!==null&&this.view.enabled){const at=(this.right-this.left)/this.view.fullWidth/this.zoom,lt=(this.top-this.bottom)/this.view.fullHeight/this.zoom;rt+=at*this.view.offsetX,it=rt+at*this.view.width,ot-=lt*this.view.offsetY,st=ot-lt*this.view.height}this.projectionMatrix.makeOrthographic(rt,it,ot,st,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(o){const et=super.toJSON(o);return et.object.zoom=this.zoom,et.object.left=this.left,et.object.right=this.right,et.object.top=this.top,et.object.bottom=this.bottom,et.object.near=this.near,et.object.far=this.far,this.view!==null&&(et.object.view=Object.assign({},this.view)),et}}const LOD_MIN=4,EXTRA_LOD_SIGMA=[.125,.215,.35,.446,.526,.582],MAX_SAMPLES=20,_flatCamera=new OrthographicCamera,_clearColor=new Color$2;let _oldTarget=null,_oldActiveCubeFace=0,_oldActiveMipmapLevel=0,_oldXrEnabled=!1;const PHI=(1+Math.sqrt(5))/2,INV_PHI=1/PHI,_axisDirections=[new Vector3(-PHI,INV_PHI,0),new Vector3(PHI,INV_PHI,0),new Vector3(-INV_PHI,0,PHI),new Vector3(INV_PHI,0,PHI),new Vector3(0,PHI,-INV_PHI),new Vector3(0,PHI,INV_PHI),new Vector3(-1,1,-1),new Vector3(1,1,-1),new Vector3(-1,1,1),new Vector3(1,1,1)];class PMREMGenerator{constructor(o){this._renderer=o,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(o,et=0,tt=.1,nt=100){_oldTarget=this._renderer.getRenderTarget(),_oldActiveCubeFace=this._renderer.getActiveCubeFace(),_oldActiveMipmapLevel=this._renderer.getActiveMipmapLevel(),_oldXrEnabled=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const rt=this._allocateTargets();return rt.depthBuffer=!0,this._sceneToCubeUV(o,tt,nt,rt),et>0&&this._blur(rt,0,0,et),this._applyPMREM(rt),this._cleanup(rt),rt}fromEquirectangular(o,et=null){return this._fromTexture(o,et)}fromCubemap(o,et=null){return this._fromTexture(o,et)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=_getCubemapMaterial(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=_getEquirectMaterial(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(o){this._lodMax=Math.floor(Math.log2(o)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let o=0;o2?Ut:0,Ut,Ut),lt.setRenderTarget(nt),pt&<.render(ct,ot),lt.render(o,ot)}ct.geometry.dispose(),ct.material.dispose(),lt.toneMapping=dt,lt.autoClear=ut,o.background=ft}_textureToCubeUV(o,et){const tt=this._renderer,nt=o.mapping===CubeReflectionMapping||o.mapping===CubeRefractionMapping;nt?(this._cubemapMaterial===null&&(this._cubemapMaterial=_getCubemapMaterial()),this._cubemapMaterial.uniforms.flipEnvMap.value=o.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=_getEquirectMaterial());const rt=nt?this._cubemapMaterial:this._equirectMaterial,it=new Mesh(this._lodPlanes[0],rt),ot=rt.uniforms;ot.envMap.value=o;const st=this._cubeSize;_setViewport(et,0,0,3*st,2*st),tt.setRenderTarget(et),tt.render(it,_flatCamera)}_applyPMREM(o){const et=this._renderer,tt=et.autoClear;et.autoClear=!1;const nt=this._lodPlanes.length;for(let rt=1;rtMAX_SAMPLES&&console.warn(`sigmaRadians, ${rt}, is too large and will clip, as it requested ${ft} samples when the maximum is set to ${MAX_SAMPLES}`);const gt=[];let yt=0;for(let At=0;AtUt-LOD_MIN?nt-Ut+LOD_MIN:0),vt=4*(this._cubeSize-Ft);_setViewport(et,mt,vt,3*Ft,2*Ft),st.setRenderTarget(et),st.render(ut,_flatCamera)}}function _createPlanes(s){const o=[],et=[],tt=[];let nt=s;const rt=s-LOD_MIN+1+EXTRA_LOD_SIGMA.length;for(let it=0;its-LOD_MIN?st=EXTRA_LOD_SIGMA[it-s+LOD_MIN-1]:it===0&&(st=0),tt.push(st);const at=1/(ot-2),lt=-at,ut=1+at,dt=[lt,lt,ut,lt,ut,ut,lt,lt,ut,ut,lt,ut],ht=6,ct=6,pt=3,ft=2,gt=1,yt=new Float32Array(pt*ct*ht),Ut=new Float32Array(ft*ct*ht),Ft=new Float32Array(gt*ct*ht);for(let vt=0;vt2?0:-1,Rt=[At,Lt,0,At+2/3,Lt,0,At+2/3,Lt+1,0,At,Lt,0,At+2/3,Lt+1,0,At,Lt+1,0];yt.set(Rt,pt*ct*vt),Ut.set(dt,ft*ct*vt);const St=[vt,vt,vt,vt,vt,vt];Ft.set(St,gt*ct*vt)}const mt=new BufferGeometry;mt.setAttribute("position",new BufferAttribute(yt,pt)),mt.setAttribute("uv",new BufferAttribute(Ut,ft)),mt.setAttribute("faceIndex",new BufferAttribute(Ft,gt)),o.push(mt),nt>LOD_MIN&&nt--}return{lodPlanes:o,sizeLods:et,sigmas:tt}}function _createRenderTarget(s,o,et){const tt=new WebGLRenderTarget(s,o,et);return tt.texture.mapping=CubeUVReflectionMapping,tt.texture.name="PMREM.cubeUv",tt.scissorTest=!0,tt}function _setViewport(s,o,et,tt,nt){s.viewport.set(o,et,tt,nt),s.scissor.set(o,et,tt,nt)}function _getBlurShader(s,o,et){const tt=new Float32Array(MAX_SAMPLES),nt=new Vector3(0,1,0);return new ShaderMaterial({name:"SphericalGaussianBlur",defines:{n:MAX_SAMPLES,CUBEUV_TEXEL_WIDTH:1/o,CUBEUV_TEXEL_HEIGHT:1/et,CUBEUV_MAX_MIP:`${s}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:tt},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:nt}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; @@ -3779,14 +3779,14 @@ void main() { `)+` `+ft,gt=["#define varying in",et.glslVersion===GLSL3?"":"layout(location = 0) out highp vec4 pc_fragColor;",et.glslVersion===GLSL3?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` `)+` -`+gt);const Ut=yt+ft+it,Ft=yt+gt+ot,mt=WebGLShader(nt,nt.VERTEX_SHADER,Ut),vt=WebGLShader(nt,nt.FRAGMENT_SHADER,Ft);nt.attachShader(pt,mt),nt.attachShader(pt,vt),et.index0AttributeName!==void 0?nt.bindAttribLocation(pt,0,et.index0AttributeName):et.morphTargets===!0&&nt.bindAttribLocation(pt,0,"position"),nt.linkProgram(pt);function At(Tt){if(s.debug.checkShaderErrors){const Bt=nt.getProgramInfoLog(pt).trim(),xt=nt.getShaderInfoLog(mt).trim(),Ct=nt.getShaderInfoLog(vt).trim();let kt=!0,Nt=!0;if(nt.getProgramParameter(pt,nt.LINK_STATUS)===!1)if(kt=!1,typeof s.debug.onShaderError=="function")s.debug.onShaderError(nt,pt,mt,vt);else{const Ot=getShaderErrors(nt,mt,"vertex"),Wt=getShaderErrors(nt,vt,"fragment");console.error("THREE.WebGLProgram: Shader Error "+nt.getError()+" - VALIDATE_STATUS "+nt.getProgramParameter(pt,nt.VALIDATE_STATUS)+` +`+gt);const Ut=yt+ft+it,Ft=yt+gt+ot,mt=WebGLShader(nt,nt.VERTEX_SHADER,Ut),vt=WebGLShader(nt,nt.FRAGMENT_SHADER,Ft);nt.attachShader(pt,mt),nt.attachShader(pt,vt),et.index0AttributeName!==void 0?nt.bindAttribLocation(pt,0,et.index0AttributeName):et.morphTargets===!0&&nt.bindAttribLocation(pt,0,"position"),nt.linkProgram(pt);function At(Tt){if(s.debug.checkShaderErrors){const Bt=nt.getProgramInfoLog(pt).trim(),xt=nt.getShaderInfoLog(mt).trim(),Ct=nt.getShaderInfoLog(vt).trim();let kt=!0,Nt=!0;if(nt.getProgramParameter(pt,nt.LINK_STATUS)===!1)if(kt=!1,typeof s.debug.onShaderError=="function")s.debug.onShaderError(nt,pt,mt,vt);else{const Ot=getShaderErrors(nt,mt,"vertex"),Jt=getShaderErrors(nt,vt,"fragment");console.error("THREE.WebGLProgram: Shader Error "+nt.getError()+" - VALIDATE_STATUS "+nt.getProgramParameter(pt,nt.VALIDATE_STATUS)+` Material Name: `+Tt.name+` Material Type: `+Tt.type+` Program Info Log: `+Bt+` `+Ot+` -`+Wt)}else Bt!==""?console.warn("THREE.WebGLProgram: Program Info Log:",Bt):(xt===""||Ct==="")&&(Nt=!1);Nt&&(Tt.diagnostics={runnable:kt,programLog:Bt,vertexShader:{log:xt,prefix:ft},fragmentShader:{log:Ct,prefix:gt}})}nt.deleteShader(mt),nt.deleteShader(vt),Lt=new WebGLUniforms(nt,pt),Rt=fetchAttributeLocations(nt,pt)}let Lt;this.getUniforms=function(){return Lt===void 0&&At(this),Lt};let Rt;this.getAttributes=function(){return Rt===void 0&&At(this),Rt};let St=et.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return St===!1&&(St=nt.getProgramParameter(pt,COMPLETION_STATUS_KHR)),St},this.destroy=function(){tt.releaseStatesOfProgram(this),nt.deleteProgram(pt),this.program=void 0},this.type=et.shaderType,this.name=et.shaderName,this.id=programIdCount++,this.cacheKey=o,this.usedTimes=1,this.program=pt,this.vertexShader=mt,this.fragmentShader=vt,this}let _id$1=0;class WebGLShaderCache{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(o){const et=o.vertexShader,tt=o.fragmentShader,nt=this._getShaderStage(et),rt=this._getShaderStage(tt),it=this._getShaderCacheForMaterial(o);return it.has(nt)===!1&&(it.add(nt),nt.usedTimes++),it.has(rt)===!1&&(it.add(rt),rt.usedTimes++),this}remove(o){const et=this.materialCache.get(o);for(const tt of et)tt.usedTimes--,tt.usedTimes===0&&this.shaderCache.delete(tt.code);return this.materialCache.delete(o),this}getVertexShaderID(o){return this._getShaderStage(o.vertexShader).id}getFragmentShaderID(o){return this._getShaderStage(o.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(o){const et=this.materialCache;let tt=et.get(o);return tt===void 0&&(tt=new Set,et.set(o,tt)),tt}_getShaderStage(o){const et=this.shaderCache;let tt=et.get(o);return tt===void 0&&(tt=new WebGLShaderStage(o),et.set(o,tt)),tt}}class WebGLShaderStage{constructor(o){this.id=_id$1++,this.code=o,this.usedTimes=0}}function WebGLPrograms(s,o,et,tt,nt,rt,it){const ot=new Layers,st=new WebGLShaderCache,at=new Set,lt=[],ut=nt.logarithmicDepthBuffer,dt=nt.vertexTextures;let ht=nt.precision;const ct={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function pt(Rt){return at.add(Rt),Rt===0?"uv":`uv${Rt}`}function ft(Rt,St,Tt,Bt,xt){const Ct=Bt.fog,kt=xt.geometry,Nt=Rt.isMeshStandardMaterial?Bt.environment:null,Ot=(Rt.isMeshStandardMaterial?et:o).get(Rt.envMap||Nt),Wt=Ot&&Ot.mapping===CubeUVReflectionMapping?Ot.image.height:null,Dt=ct[Rt.type];Rt.precision!==null&&(ht=nt.getMaxPrecision(Rt.precision),ht!==Rt.precision&&console.warn("THREE.WebGLProgram.getParameters:",Rt.precision,"not supported, using",ht,"instead."));const Et=kt.morphAttributes.position||kt.morphAttributes.normal||kt.morphAttributes.color,Pt=Et!==void 0?Et.length:0;let zt=0;kt.morphAttributes.position!==void 0&&(zt=1),kt.morphAttributes.normal!==void 0&&(zt=2),kt.morphAttributes.color!==void 0&&(zt=3);let en,Kt,nn,Zt;if(Dt){const tr=ShaderLib[Dt];en=tr.vertexShader,Kt=tr.fragmentShader}else en=Rt.vertexShader,Kt=Rt.fragmentShader,st.update(Rt),nn=st.getVertexShaderID(Rt),Zt=st.getFragmentShaderID(Rt);const jt=s.getRenderTarget(),Vt=xt.isInstancedMesh===!0,It=xt.isBatchedMesh===!0,$t=!!Rt.map,Ht=!!Rt.matcap,qt=!!Ot,on=!!Rt.aoMap,Xt=!!Rt.lightMap,dn=!!Rt.bumpMap,_n=!!Rt.normalMap,Fn=!!Rt.displacementMap,Un=!!Rt.emissiveMap,On=!!Rt.metalnessMap,gn=!!Rt.roughnessMap,hn=Rt.anisotropy>0,wn=Rt.clearcoat>0,Zn=Rt.dispersion>0,Pn=Rt.iridescence>0,$n=Rt.sheen>0,Tr=Rt.transmission>0,Qr=hn&&!!Rt.anisotropyMap,_r=wn&&!!Rt.clearcoatMap,Ir=wn&&!!Rt.clearcoatNormalMap,Wr=wn&&!!Rt.clearcoatRoughnessMap,qr=Pn&&!!Rt.iridescenceMap,Uo=Pn&&!!Rt.iridescenceThicknessMap,eo=$n&&!!Rt.sheenColorMap,Yr=$n&&!!Rt.sheenRoughnessMap,_o=!!Rt.specularMap,ro=!!Rt.specularColorMap,Fo=!!Rt.specularIntensityMap,kn=Tr&&!!Rt.transmissionMap,un=Tr&&!!Rt.thicknessMap,pn=!!Rt.gradientMap,Qn=!!Rt.alphaMap,Wn=Rt.alphaTest>0,jn=!!Rt.alphaHash,Fr=!!Rt.extensions;let Er=NoToneMapping;Rt.toneMapped&&(jt===null||jt.isXRRenderTarget===!0)&&(Er=s.toneMapping);const wr={shaderID:Dt,shaderType:Rt.type,shaderName:Rt.name,vertexShader:en,fragmentShader:Kt,defines:Rt.defines,customVertexShaderID:nn,customFragmentShaderID:Zt,isRawShaderMaterial:Rt.isRawShaderMaterial===!0,glslVersion:Rt.glslVersion,precision:ht,batching:It,batchingColor:It&&xt._colorsTexture!==null,instancing:Vt,instancingColor:Vt&&xt.instanceColor!==null,instancingMorph:Vt&&xt.morphTexture!==null,supportsVertexTextures:dt,outputColorSpace:jt===null?s.outputColorSpace:jt.isXRRenderTarget===!0?jt.texture.colorSpace:LinearSRGBColorSpace$1,alphaToCoverage:!!Rt.alphaToCoverage,map:$t,matcap:Ht,envMap:qt,envMapMode:qt&&Ot.mapping,envMapCubeUVHeight:Wt,aoMap:on,lightMap:Xt,bumpMap:dn,normalMap:_n,displacementMap:dt&&Fn,emissiveMap:Un,normalMapObjectSpace:_n&&Rt.normalMapType===ObjectSpaceNormalMap,normalMapTangentSpace:_n&&Rt.normalMapType===TangentSpaceNormalMap,metalnessMap:On,roughnessMap:gn,anisotropy:hn,anisotropyMap:Qr,clearcoat:wn,clearcoatMap:_r,clearcoatNormalMap:Ir,clearcoatRoughnessMap:Wr,dispersion:Zn,iridescence:Pn,iridescenceMap:qr,iridescenceThicknessMap:Uo,sheen:$n,sheenColorMap:eo,sheenRoughnessMap:Yr,specularMap:_o,specularColorMap:ro,specularIntensityMap:Fo,transmission:Tr,transmissionMap:kn,thicknessMap:un,gradientMap:pn,opaque:Rt.transparent===!1&&Rt.blending===NormalBlending&&Rt.alphaToCoverage===!1,alphaMap:Qn,alphaTest:Wn,alphaHash:jn,combine:Rt.combine,mapUv:$t&&pt(Rt.map.channel),aoMapUv:on&&pt(Rt.aoMap.channel),lightMapUv:Xt&&pt(Rt.lightMap.channel),bumpMapUv:dn&&pt(Rt.bumpMap.channel),normalMapUv:_n&&pt(Rt.normalMap.channel),displacementMapUv:Fn&&pt(Rt.displacementMap.channel),emissiveMapUv:Un&&pt(Rt.emissiveMap.channel),metalnessMapUv:On&&pt(Rt.metalnessMap.channel),roughnessMapUv:gn&&pt(Rt.roughnessMap.channel),anisotropyMapUv:Qr&&pt(Rt.anisotropyMap.channel),clearcoatMapUv:_r&&pt(Rt.clearcoatMap.channel),clearcoatNormalMapUv:Ir&&pt(Rt.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Wr&&pt(Rt.clearcoatRoughnessMap.channel),iridescenceMapUv:qr&&pt(Rt.iridescenceMap.channel),iridescenceThicknessMapUv:Uo&&pt(Rt.iridescenceThicknessMap.channel),sheenColorMapUv:eo&&pt(Rt.sheenColorMap.channel),sheenRoughnessMapUv:Yr&&pt(Rt.sheenRoughnessMap.channel),specularMapUv:_o&&pt(Rt.specularMap.channel),specularColorMapUv:ro&&pt(Rt.specularColorMap.channel),specularIntensityMapUv:Fo&&pt(Rt.specularIntensityMap.channel),transmissionMapUv:kn&&pt(Rt.transmissionMap.channel),thicknessMapUv:un&&pt(Rt.thicknessMap.channel),alphaMapUv:Qn&&pt(Rt.alphaMap.channel),vertexTangents:!!kt.attributes.tangent&&(_n||hn),vertexColors:Rt.vertexColors,vertexAlphas:Rt.vertexColors===!0&&!!kt.attributes.color&&kt.attributes.color.itemSize===4,pointsUvs:xt.isPoints===!0&&!!kt.attributes.uv&&($t||Qn),fog:!!Ct,useFog:Rt.fog===!0,fogExp2:!!Ct&&Ct.isFogExp2,flatShading:Rt.flatShading===!0,sizeAttenuation:Rt.sizeAttenuation===!0,logarithmicDepthBuffer:ut,skinning:xt.isSkinnedMesh===!0,morphTargets:kt.morphAttributes.position!==void 0,morphNormals:kt.morphAttributes.normal!==void 0,morphColors:kt.morphAttributes.color!==void 0,morphTargetsCount:Pt,morphTextureStride:zt,numDirLights:St.directional.length,numPointLights:St.point.length,numSpotLights:St.spot.length,numSpotLightMaps:St.spotLightMap.length,numRectAreaLights:St.rectArea.length,numHemiLights:St.hemi.length,numDirLightShadows:St.directionalShadowMap.length,numPointLightShadows:St.pointShadowMap.length,numSpotLightShadows:St.spotShadowMap.length,numSpotLightShadowsWithMaps:St.numSpotLightShadowsWithMaps,numLightProbes:St.numLightProbes,numClippingPlanes:it.numPlanes,numClipIntersection:it.numIntersection,dithering:Rt.dithering,shadowMapEnabled:s.shadowMap.enabled&&Tt.length>0,shadowMapType:s.shadowMap.type,toneMapping:Er,decodeVideoTexture:$t&&Rt.map.isVideoTexture===!0&&ColorManagement.getTransfer(Rt.map.colorSpace)===SRGBTransfer,premultipliedAlpha:Rt.premultipliedAlpha,doubleSided:Rt.side===DoubleSide,flipSided:Rt.side===BackSide,useDepthPacking:Rt.depthPacking>=0,depthPacking:Rt.depthPacking||0,index0AttributeName:Rt.index0AttributeName,extensionClipCullDistance:Fr&&Rt.extensions.clipCullDistance===!0&&tt.has("WEBGL_clip_cull_distance"),extensionMultiDraw:Fr&&Rt.extensions.multiDraw===!0&&tt.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:tt.has("KHR_parallel_shader_compile"),customProgramCacheKey:Rt.customProgramCacheKey()};return wr.vertexUv1s=at.has(1),wr.vertexUv2s=at.has(2),wr.vertexUv3s=at.has(3),at.clear(),wr}function gt(Rt){const St=[];if(Rt.shaderID?St.push(Rt.shaderID):(St.push(Rt.customVertexShaderID),St.push(Rt.customFragmentShaderID)),Rt.defines!==void 0)for(const Tt in Rt.defines)St.push(Tt),St.push(Rt.defines[Tt]);return Rt.isRawShaderMaterial===!1&&(yt(St,Rt),Ut(St,Rt),St.push(s.outputColorSpace)),St.push(Rt.customProgramCacheKey),St.join()}function yt(Rt,St){Rt.push(St.precision),Rt.push(St.outputColorSpace),Rt.push(St.envMapMode),Rt.push(St.envMapCubeUVHeight),Rt.push(St.mapUv),Rt.push(St.alphaMapUv),Rt.push(St.lightMapUv),Rt.push(St.aoMapUv),Rt.push(St.bumpMapUv),Rt.push(St.normalMapUv),Rt.push(St.displacementMapUv),Rt.push(St.emissiveMapUv),Rt.push(St.metalnessMapUv),Rt.push(St.roughnessMapUv),Rt.push(St.anisotropyMapUv),Rt.push(St.clearcoatMapUv),Rt.push(St.clearcoatNormalMapUv),Rt.push(St.clearcoatRoughnessMapUv),Rt.push(St.iridescenceMapUv),Rt.push(St.iridescenceThicknessMapUv),Rt.push(St.sheenColorMapUv),Rt.push(St.sheenRoughnessMapUv),Rt.push(St.specularMapUv),Rt.push(St.specularColorMapUv),Rt.push(St.specularIntensityMapUv),Rt.push(St.transmissionMapUv),Rt.push(St.thicknessMapUv),Rt.push(St.combine),Rt.push(St.fogExp2),Rt.push(St.sizeAttenuation),Rt.push(St.morphTargetsCount),Rt.push(St.morphAttributeCount),Rt.push(St.numDirLights),Rt.push(St.numPointLights),Rt.push(St.numSpotLights),Rt.push(St.numSpotLightMaps),Rt.push(St.numHemiLights),Rt.push(St.numRectAreaLights),Rt.push(St.numDirLightShadows),Rt.push(St.numPointLightShadows),Rt.push(St.numSpotLightShadows),Rt.push(St.numSpotLightShadowsWithMaps),Rt.push(St.numLightProbes),Rt.push(St.shadowMapType),Rt.push(St.toneMapping),Rt.push(St.numClippingPlanes),Rt.push(St.numClipIntersection),Rt.push(St.depthPacking)}function Ut(Rt,St){ot.disableAll(),St.supportsVertexTextures&&ot.enable(0),St.instancing&&ot.enable(1),St.instancingColor&&ot.enable(2),St.instancingMorph&&ot.enable(3),St.matcap&&ot.enable(4),St.envMap&&ot.enable(5),St.normalMapObjectSpace&&ot.enable(6),St.normalMapTangentSpace&&ot.enable(7),St.clearcoat&&ot.enable(8),St.iridescence&&ot.enable(9),St.alphaTest&&ot.enable(10),St.vertexColors&&ot.enable(11),St.vertexAlphas&&ot.enable(12),St.vertexUv1s&&ot.enable(13),St.vertexUv2s&&ot.enable(14),St.vertexUv3s&&ot.enable(15),St.vertexTangents&&ot.enable(16),St.anisotropy&&ot.enable(17),St.alphaHash&&ot.enable(18),St.batching&&ot.enable(19),St.dispersion&&ot.enable(20),St.batchingColor&&ot.enable(21),Rt.push(ot.mask),ot.disableAll(),St.fog&&ot.enable(0),St.useFog&&ot.enable(1),St.flatShading&&ot.enable(2),St.logarithmicDepthBuffer&&ot.enable(3),St.skinning&&ot.enable(4),St.morphTargets&&ot.enable(5),St.morphNormals&&ot.enable(6),St.morphColors&&ot.enable(7),St.premultipliedAlpha&&ot.enable(8),St.shadowMapEnabled&&ot.enable(9),St.doubleSided&&ot.enable(10),St.flipSided&&ot.enable(11),St.useDepthPacking&&ot.enable(12),St.dithering&&ot.enable(13),St.transmission&&ot.enable(14),St.sheen&&ot.enable(15),St.opaque&&ot.enable(16),St.pointsUvs&&ot.enable(17),St.decodeVideoTexture&&ot.enable(18),St.alphaToCoverage&&ot.enable(19),Rt.push(ot.mask)}function Ft(Rt){const St=ct[Rt.type];let Tt;if(St){const Bt=ShaderLib[St];Tt=UniformsUtils.clone(Bt.uniforms)}else Tt=Rt.uniforms;return Tt}function mt(Rt,St){let Tt;for(let Bt=0,xt=lt.length;Bt0?tt.push(gt):ht.transparent===!0?nt.push(gt):et.push(gt)}function st(ut,dt,ht,ct,pt,ft){const gt=it(ut,dt,ht,ct,pt,ft);ht.transmission>0?tt.unshift(gt):ht.transparent===!0?nt.unshift(gt):et.unshift(gt)}function at(ut,dt){et.length>1&&et.sort(ut||painterSortStable),tt.length>1&&tt.sort(dt||reversePainterSortStable),nt.length>1&&nt.sort(dt||reversePainterSortStable)}function lt(){for(let ut=o,dt=s.length;ut=rt.length?(it=new WebGLRenderList,rt.push(it)):it=rt[nt],it}function et(){s=new WeakMap}return{get:o,dispose:et}}function UniformsCache(){const s={};return{get:function(o){if(s[o.id]!==void 0)return s[o.id];let et;switch(o.type){case"DirectionalLight":et={direction:new Vector3,color:new Color$2};break;case"SpotLight":et={position:new Vector3,direction:new Vector3,color:new Color$2,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":et={position:new Vector3,color:new Color$2,distance:0,decay:0};break;case"HemisphereLight":et={direction:new Vector3,skyColor:new Color$2,groundColor:new Color$2};break;case"RectAreaLight":et={color:new Color$2,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3};break}return s[o.id]=et,et}}}function ShadowUniformsCache(){const s={};return{get:function(o){if(s[o.id]!==void 0)return s[o.id];let et;switch(o.type){case"DirectionalLight":et={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"SpotLight":et={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"PointLight":et={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1e3};break}return s[o.id]=et,et}}}let nextVersion=0;function shadowCastingAndTexturingLightsFirst(s,o){return(o.castShadow?2:0)-(s.castShadow?2:0)+(o.map?1:0)-(s.map?1:0)}function WebGLLights(s){const o=new UniformsCache,et=ShadowUniformsCache(),tt={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let at=0;at<9;at++)tt.probe.push(new Vector3);const nt=new Vector3,rt=new Matrix4,it=new Matrix4;function ot(at){let lt=0,ut=0,dt=0;for(let Rt=0;Rt<9;Rt++)tt.probe[Rt].set(0,0,0);let ht=0,ct=0,pt=0,ft=0,gt=0,yt=0,Ut=0,Ft=0,mt=0,vt=0,At=0;at.sort(shadowCastingAndTexturingLightsFirst);for(let Rt=0,St=at.length;Rt0&&(s.has("OES_texture_float_linear")===!0?(tt.rectAreaLTC1=UniformsLib.LTC_FLOAT_1,tt.rectAreaLTC2=UniformsLib.LTC_FLOAT_2):(tt.rectAreaLTC1=UniformsLib.LTC_HALF_1,tt.rectAreaLTC2=UniformsLib.LTC_HALF_2)),tt.ambient[0]=lt,tt.ambient[1]=ut,tt.ambient[2]=dt;const Lt=tt.hash;(Lt.directionalLength!==ht||Lt.pointLength!==ct||Lt.spotLength!==pt||Lt.rectAreaLength!==ft||Lt.hemiLength!==gt||Lt.numDirectionalShadows!==yt||Lt.numPointShadows!==Ut||Lt.numSpotShadows!==Ft||Lt.numSpotMaps!==mt||Lt.numLightProbes!==At)&&(tt.directional.length=ht,tt.spot.length=pt,tt.rectArea.length=ft,tt.point.length=ct,tt.hemi.length=gt,tt.directionalShadow.length=yt,tt.directionalShadowMap.length=yt,tt.pointShadow.length=Ut,tt.pointShadowMap.length=Ut,tt.spotShadow.length=Ft,tt.spotShadowMap.length=Ft,tt.directionalShadowMatrix.length=yt,tt.pointShadowMatrix.length=Ut,tt.spotLightMatrix.length=Ft+mt-vt,tt.spotLightMap.length=mt,tt.numSpotLightShadowsWithMaps=vt,tt.numLightProbes=At,Lt.directionalLength=ht,Lt.pointLength=ct,Lt.spotLength=pt,Lt.rectAreaLength=ft,Lt.hemiLength=gt,Lt.numDirectionalShadows=yt,Lt.numPointShadows=Ut,Lt.numSpotShadows=Ft,Lt.numSpotMaps=mt,Lt.numLightProbes=At,tt.version=nextVersion++)}function st(at,lt){let ut=0,dt=0,ht=0,ct=0,pt=0;const ft=lt.matrixWorldInverse;for(let gt=0,yt=at.length;gt=it.length?(ot=new WebGLRenderState(s),it.push(ot)):ot=it[rt],ot}function tt(){o=new WeakMap}return{get:et,dispose:tt}}class MeshDepthMaterial extends Material{constructor(o){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=BasicDepthPacking,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(o)}copy(o){return super.copy(o),this.depthPacking=o.depthPacking,this.map=o.map,this.alphaMap=o.alphaMap,this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this}}class MeshDistanceMaterial extends Material{constructor(o){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(o)}copy(o){return super.copy(o),this.map=o.map,this.alphaMap=o.alphaMap,this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this}}const vertex=`void main() { +`+Jt)}else Bt!==""?console.warn("THREE.WebGLProgram: Program Info Log:",Bt):(xt===""||Ct==="")&&(Nt=!1);Nt&&(Tt.diagnostics={runnable:kt,programLog:Bt,vertexShader:{log:xt,prefix:ft},fragmentShader:{log:Ct,prefix:gt}})}nt.deleteShader(mt),nt.deleteShader(vt),Lt=new WebGLUniforms(nt,pt),Rt=fetchAttributeLocations(nt,pt)}let Lt;this.getUniforms=function(){return Lt===void 0&&At(this),Lt};let Rt;this.getAttributes=function(){return Rt===void 0&&At(this),Rt};let St=et.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return St===!1&&(St=nt.getProgramParameter(pt,COMPLETION_STATUS_KHR)),St},this.destroy=function(){tt.releaseStatesOfProgram(this),nt.deleteProgram(pt),this.program=void 0},this.type=et.shaderType,this.name=et.shaderName,this.id=programIdCount++,this.cacheKey=o,this.usedTimes=1,this.program=pt,this.vertexShader=mt,this.fragmentShader=vt,this}let _id$1=0;class WebGLShaderCache{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(o){const et=o.vertexShader,tt=o.fragmentShader,nt=this._getShaderStage(et),rt=this._getShaderStage(tt),it=this._getShaderCacheForMaterial(o);return it.has(nt)===!1&&(it.add(nt),nt.usedTimes++),it.has(rt)===!1&&(it.add(rt),rt.usedTimes++),this}remove(o){const et=this.materialCache.get(o);for(const tt of et)tt.usedTimes--,tt.usedTimes===0&&this.shaderCache.delete(tt.code);return this.materialCache.delete(o),this}getVertexShaderID(o){return this._getShaderStage(o.vertexShader).id}getFragmentShaderID(o){return this._getShaderStage(o.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(o){const et=this.materialCache;let tt=et.get(o);return tt===void 0&&(tt=new Set,et.set(o,tt)),tt}_getShaderStage(o){const et=this.shaderCache;let tt=et.get(o);return tt===void 0&&(tt=new WebGLShaderStage(o),et.set(o,tt)),tt}}class WebGLShaderStage{constructor(o){this.id=_id$1++,this.code=o,this.usedTimes=0}}function WebGLPrograms(s,o,et,tt,nt,rt,it){const ot=new Layers,st=new WebGLShaderCache,at=new Set,lt=[],ut=nt.logarithmicDepthBuffer,dt=nt.vertexTextures;let ht=nt.precision;const ct={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function pt(Rt){return at.add(Rt),Rt===0?"uv":`uv${Rt}`}function ft(Rt,St,Tt,Bt,xt){const Ct=Bt.fog,kt=xt.geometry,Nt=Rt.isMeshStandardMaterial?Bt.environment:null,Ot=(Rt.isMeshStandardMaterial?et:o).get(Rt.envMap||Nt),Jt=Ot&&Ot.mapping===CubeUVReflectionMapping?Ot.image.height:null,Dt=ct[Rt.type];Rt.precision!==null&&(ht=nt.getMaxPrecision(Rt.precision),ht!==Rt.precision&&console.warn("THREE.WebGLProgram.getParameters:",Rt.precision,"not supported, using",ht,"instead."));const Et=kt.morphAttributes.position||kt.morphAttributes.normal||kt.morphAttributes.color,Pt=Et!==void 0?Et.length:0;let zt=0;kt.morphAttributes.position!==void 0&&(zt=1),kt.morphAttributes.normal!==void 0&&(zt=2),kt.morphAttributes.color!==void 0&&(zt=3);let en,Kt,nn,Zt;if(Dt){const tr=ShaderLib[Dt];en=tr.vertexShader,Kt=tr.fragmentShader}else en=Rt.vertexShader,Kt=Rt.fragmentShader,st.update(Rt),nn=st.getVertexShaderID(Rt),Zt=st.getFragmentShaderID(Rt);const jt=s.getRenderTarget(),Vt=xt.isInstancedMesh===!0,It=xt.isBatchedMesh===!0,$t=!!Rt.map,Ht=!!Rt.matcap,qt=!!Ot,on=!!Rt.aoMap,Xt=!!Rt.lightMap,dn=!!Rt.bumpMap,_n=!!Rt.normalMap,Fn=!!Rt.displacementMap,Un=!!Rt.emissiveMap,On=!!Rt.metalnessMap,gn=!!Rt.roughnessMap,hn=Rt.anisotropy>0,wn=Rt.clearcoat>0,Zn=Rt.dispersion>0,Pn=Rt.iridescence>0,$n=Rt.sheen>0,Tr=Rt.transmission>0,Qr=hn&&!!Rt.anisotropyMap,_r=wn&&!!Rt.clearcoatMap,Ir=wn&&!!Rt.clearcoatNormalMap,Jr=wn&&!!Rt.clearcoatRoughnessMap,qr=Pn&&!!Rt.iridescenceMap,Uo=Pn&&!!Rt.iridescenceThicknessMap,eo=$n&&!!Rt.sheenColorMap,Yr=$n&&!!Rt.sheenRoughnessMap,_o=!!Rt.specularMap,ro=!!Rt.specularColorMap,Fo=!!Rt.specularIntensityMap,kn=Tr&&!!Rt.transmissionMap,un=Tr&&!!Rt.thicknessMap,pn=!!Rt.gradientMap,Qn=!!Rt.alphaMap,Jn=Rt.alphaTest>0,jn=!!Rt.alphaHash,Fr=!!Rt.extensions;let Er=NoToneMapping;Rt.toneMapped&&(jt===null||jt.isXRRenderTarget===!0)&&(Er=s.toneMapping);const wr={shaderID:Dt,shaderType:Rt.type,shaderName:Rt.name,vertexShader:en,fragmentShader:Kt,defines:Rt.defines,customVertexShaderID:nn,customFragmentShaderID:Zt,isRawShaderMaterial:Rt.isRawShaderMaterial===!0,glslVersion:Rt.glslVersion,precision:ht,batching:It,batchingColor:It&&xt._colorsTexture!==null,instancing:Vt,instancingColor:Vt&&xt.instanceColor!==null,instancingMorph:Vt&&xt.morphTexture!==null,supportsVertexTextures:dt,outputColorSpace:jt===null?s.outputColorSpace:jt.isXRRenderTarget===!0?jt.texture.colorSpace:LinearSRGBColorSpace$1,alphaToCoverage:!!Rt.alphaToCoverage,map:$t,matcap:Ht,envMap:qt,envMapMode:qt&&Ot.mapping,envMapCubeUVHeight:Jt,aoMap:on,lightMap:Xt,bumpMap:dn,normalMap:_n,displacementMap:dt&&Fn,emissiveMap:Un,normalMapObjectSpace:_n&&Rt.normalMapType===ObjectSpaceNormalMap,normalMapTangentSpace:_n&&Rt.normalMapType===TangentSpaceNormalMap,metalnessMap:On,roughnessMap:gn,anisotropy:hn,anisotropyMap:Qr,clearcoat:wn,clearcoatMap:_r,clearcoatNormalMap:Ir,clearcoatRoughnessMap:Jr,dispersion:Zn,iridescence:Pn,iridescenceMap:qr,iridescenceThicknessMap:Uo,sheen:$n,sheenColorMap:eo,sheenRoughnessMap:Yr,specularMap:_o,specularColorMap:ro,specularIntensityMap:Fo,transmission:Tr,transmissionMap:kn,thicknessMap:un,gradientMap:pn,opaque:Rt.transparent===!1&&Rt.blending===NormalBlending&&Rt.alphaToCoverage===!1,alphaMap:Qn,alphaTest:Jn,alphaHash:jn,combine:Rt.combine,mapUv:$t&&pt(Rt.map.channel),aoMapUv:on&&pt(Rt.aoMap.channel),lightMapUv:Xt&&pt(Rt.lightMap.channel),bumpMapUv:dn&&pt(Rt.bumpMap.channel),normalMapUv:_n&&pt(Rt.normalMap.channel),displacementMapUv:Fn&&pt(Rt.displacementMap.channel),emissiveMapUv:Un&&pt(Rt.emissiveMap.channel),metalnessMapUv:On&&pt(Rt.metalnessMap.channel),roughnessMapUv:gn&&pt(Rt.roughnessMap.channel),anisotropyMapUv:Qr&&pt(Rt.anisotropyMap.channel),clearcoatMapUv:_r&&pt(Rt.clearcoatMap.channel),clearcoatNormalMapUv:Ir&&pt(Rt.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Jr&&pt(Rt.clearcoatRoughnessMap.channel),iridescenceMapUv:qr&&pt(Rt.iridescenceMap.channel),iridescenceThicknessMapUv:Uo&&pt(Rt.iridescenceThicknessMap.channel),sheenColorMapUv:eo&&pt(Rt.sheenColorMap.channel),sheenRoughnessMapUv:Yr&&pt(Rt.sheenRoughnessMap.channel),specularMapUv:_o&&pt(Rt.specularMap.channel),specularColorMapUv:ro&&pt(Rt.specularColorMap.channel),specularIntensityMapUv:Fo&&pt(Rt.specularIntensityMap.channel),transmissionMapUv:kn&&pt(Rt.transmissionMap.channel),thicknessMapUv:un&&pt(Rt.thicknessMap.channel),alphaMapUv:Qn&&pt(Rt.alphaMap.channel),vertexTangents:!!kt.attributes.tangent&&(_n||hn),vertexColors:Rt.vertexColors,vertexAlphas:Rt.vertexColors===!0&&!!kt.attributes.color&&kt.attributes.color.itemSize===4,pointsUvs:xt.isPoints===!0&&!!kt.attributes.uv&&($t||Qn),fog:!!Ct,useFog:Rt.fog===!0,fogExp2:!!Ct&&Ct.isFogExp2,flatShading:Rt.flatShading===!0,sizeAttenuation:Rt.sizeAttenuation===!0,logarithmicDepthBuffer:ut,skinning:xt.isSkinnedMesh===!0,morphTargets:kt.morphAttributes.position!==void 0,morphNormals:kt.morphAttributes.normal!==void 0,morphColors:kt.morphAttributes.color!==void 0,morphTargetsCount:Pt,morphTextureStride:zt,numDirLights:St.directional.length,numPointLights:St.point.length,numSpotLights:St.spot.length,numSpotLightMaps:St.spotLightMap.length,numRectAreaLights:St.rectArea.length,numHemiLights:St.hemi.length,numDirLightShadows:St.directionalShadowMap.length,numPointLightShadows:St.pointShadowMap.length,numSpotLightShadows:St.spotShadowMap.length,numSpotLightShadowsWithMaps:St.numSpotLightShadowsWithMaps,numLightProbes:St.numLightProbes,numClippingPlanes:it.numPlanes,numClipIntersection:it.numIntersection,dithering:Rt.dithering,shadowMapEnabled:s.shadowMap.enabled&&Tt.length>0,shadowMapType:s.shadowMap.type,toneMapping:Er,decodeVideoTexture:$t&&Rt.map.isVideoTexture===!0&&ColorManagement.getTransfer(Rt.map.colorSpace)===SRGBTransfer,premultipliedAlpha:Rt.premultipliedAlpha,doubleSided:Rt.side===DoubleSide,flipSided:Rt.side===BackSide,useDepthPacking:Rt.depthPacking>=0,depthPacking:Rt.depthPacking||0,index0AttributeName:Rt.index0AttributeName,extensionClipCullDistance:Fr&&Rt.extensions.clipCullDistance===!0&&tt.has("WEBGL_clip_cull_distance"),extensionMultiDraw:Fr&&Rt.extensions.multiDraw===!0&&tt.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:tt.has("KHR_parallel_shader_compile"),customProgramCacheKey:Rt.customProgramCacheKey()};return wr.vertexUv1s=at.has(1),wr.vertexUv2s=at.has(2),wr.vertexUv3s=at.has(3),at.clear(),wr}function gt(Rt){const St=[];if(Rt.shaderID?St.push(Rt.shaderID):(St.push(Rt.customVertexShaderID),St.push(Rt.customFragmentShaderID)),Rt.defines!==void 0)for(const Tt in Rt.defines)St.push(Tt),St.push(Rt.defines[Tt]);return Rt.isRawShaderMaterial===!1&&(yt(St,Rt),Ut(St,Rt),St.push(s.outputColorSpace)),St.push(Rt.customProgramCacheKey),St.join()}function yt(Rt,St){Rt.push(St.precision),Rt.push(St.outputColorSpace),Rt.push(St.envMapMode),Rt.push(St.envMapCubeUVHeight),Rt.push(St.mapUv),Rt.push(St.alphaMapUv),Rt.push(St.lightMapUv),Rt.push(St.aoMapUv),Rt.push(St.bumpMapUv),Rt.push(St.normalMapUv),Rt.push(St.displacementMapUv),Rt.push(St.emissiveMapUv),Rt.push(St.metalnessMapUv),Rt.push(St.roughnessMapUv),Rt.push(St.anisotropyMapUv),Rt.push(St.clearcoatMapUv),Rt.push(St.clearcoatNormalMapUv),Rt.push(St.clearcoatRoughnessMapUv),Rt.push(St.iridescenceMapUv),Rt.push(St.iridescenceThicknessMapUv),Rt.push(St.sheenColorMapUv),Rt.push(St.sheenRoughnessMapUv),Rt.push(St.specularMapUv),Rt.push(St.specularColorMapUv),Rt.push(St.specularIntensityMapUv),Rt.push(St.transmissionMapUv),Rt.push(St.thicknessMapUv),Rt.push(St.combine),Rt.push(St.fogExp2),Rt.push(St.sizeAttenuation),Rt.push(St.morphTargetsCount),Rt.push(St.morphAttributeCount),Rt.push(St.numDirLights),Rt.push(St.numPointLights),Rt.push(St.numSpotLights),Rt.push(St.numSpotLightMaps),Rt.push(St.numHemiLights),Rt.push(St.numRectAreaLights),Rt.push(St.numDirLightShadows),Rt.push(St.numPointLightShadows),Rt.push(St.numSpotLightShadows),Rt.push(St.numSpotLightShadowsWithMaps),Rt.push(St.numLightProbes),Rt.push(St.shadowMapType),Rt.push(St.toneMapping),Rt.push(St.numClippingPlanes),Rt.push(St.numClipIntersection),Rt.push(St.depthPacking)}function Ut(Rt,St){ot.disableAll(),St.supportsVertexTextures&&ot.enable(0),St.instancing&&ot.enable(1),St.instancingColor&&ot.enable(2),St.instancingMorph&&ot.enable(3),St.matcap&&ot.enable(4),St.envMap&&ot.enable(5),St.normalMapObjectSpace&&ot.enable(6),St.normalMapTangentSpace&&ot.enable(7),St.clearcoat&&ot.enable(8),St.iridescence&&ot.enable(9),St.alphaTest&&ot.enable(10),St.vertexColors&&ot.enable(11),St.vertexAlphas&&ot.enable(12),St.vertexUv1s&&ot.enable(13),St.vertexUv2s&&ot.enable(14),St.vertexUv3s&&ot.enable(15),St.vertexTangents&&ot.enable(16),St.anisotropy&&ot.enable(17),St.alphaHash&&ot.enable(18),St.batching&&ot.enable(19),St.dispersion&&ot.enable(20),St.batchingColor&&ot.enable(21),Rt.push(ot.mask),ot.disableAll(),St.fog&&ot.enable(0),St.useFog&&ot.enable(1),St.flatShading&&ot.enable(2),St.logarithmicDepthBuffer&&ot.enable(3),St.skinning&&ot.enable(4),St.morphTargets&&ot.enable(5),St.morphNormals&&ot.enable(6),St.morphColors&&ot.enable(7),St.premultipliedAlpha&&ot.enable(8),St.shadowMapEnabled&&ot.enable(9),St.doubleSided&&ot.enable(10),St.flipSided&&ot.enable(11),St.useDepthPacking&&ot.enable(12),St.dithering&&ot.enable(13),St.transmission&&ot.enable(14),St.sheen&&ot.enable(15),St.opaque&&ot.enable(16),St.pointsUvs&&ot.enable(17),St.decodeVideoTexture&&ot.enable(18),St.alphaToCoverage&&ot.enable(19),Rt.push(ot.mask)}function Ft(Rt){const St=ct[Rt.type];let Tt;if(St){const Bt=ShaderLib[St];Tt=UniformsUtils.clone(Bt.uniforms)}else Tt=Rt.uniforms;return Tt}function mt(Rt,St){let Tt;for(let Bt=0,xt=lt.length;Bt0?tt.push(gt):ht.transparent===!0?nt.push(gt):et.push(gt)}function st(ut,dt,ht,ct,pt,ft){const gt=it(ut,dt,ht,ct,pt,ft);ht.transmission>0?tt.unshift(gt):ht.transparent===!0?nt.unshift(gt):et.unshift(gt)}function at(ut,dt){et.length>1&&et.sort(ut||painterSortStable),tt.length>1&&tt.sort(dt||reversePainterSortStable),nt.length>1&&nt.sort(dt||reversePainterSortStable)}function lt(){for(let ut=o,dt=s.length;ut=rt.length?(it=new WebGLRenderList,rt.push(it)):it=rt[nt],it}function et(){s=new WeakMap}return{get:o,dispose:et}}function UniformsCache(){const s={};return{get:function(o){if(s[o.id]!==void 0)return s[o.id];let et;switch(o.type){case"DirectionalLight":et={direction:new Vector3,color:new Color$2};break;case"SpotLight":et={position:new Vector3,direction:new Vector3,color:new Color$2,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":et={position:new Vector3,color:new Color$2,distance:0,decay:0};break;case"HemisphereLight":et={direction:new Vector3,skyColor:new Color$2,groundColor:new Color$2};break;case"RectAreaLight":et={color:new Color$2,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3};break}return s[o.id]=et,et}}}function ShadowUniformsCache(){const s={};return{get:function(o){if(s[o.id]!==void 0)return s[o.id];let et;switch(o.type){case"DirectionalLight":et={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"SpotLight":et={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"PointLight":et={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1e3};break}return s[o.id]=et,et}}}let nextVersion=0;function shadowCastingAndTexturingLightsFirst(s,o){return(o.castShadow?2:0)-(s.castShadow?2:0)+(o.map?1:0)-(s.map?1:0)}function WebGLLights(s){const o=new UniformsCache,et=ShadowUniformsCache(),tt={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let at=0;at<9;at++)tt.probe.push(new Vector3);const nt=new Vector3,rt=new Matrix4,it=new Matrix4;function ot(at){let lt=0,ut=0,dt=0;for(let Rt=0;Rt<9;Rt++)tt.probe[Rt].set(0,0,0);let ht=0,ct=0,pt=0,ft=0,gt=0,yt=0,Ut=0,Ft=0,mt=0,vt=0,At=0;at.sort(shadowCastingAndTexturingLightsFirst);for(let Rt=0,St=at.length;Rt0&&(s.has("OES_texture_float_linear")===!0?(tt.rectAreaLTC1=UniformsLib.LTC_FLOAT_1,tt.rectAreaLTC2=UniformsLib.LTC_FLOAT_2):(tt.rectAreaLTC1=UniformsLib.LTC_HALF_1,tt.rectAreaLTC2=UniformsLib.LTC_HALF_2)),tt.ambient[0]=lt,tt.ambient[1]=ut,tt.ambient[2]=dt;const Lt=tt.hash;(Lt.directionalLength!==ht||Lt.pointLength!==ct||Lt.spotLength!==pt||Lt.rectAreaLength!==ft||Lt.hemiLength!==gt||Lt.numDirectionalShadows!==yt||Lt.numPointShadows!==Ut||Lt.numSpotShadows!==Ft||Lt.numSpotMaps!==mt||Lt.numLightProbes!==At)&&(tt.directional.length=ht,tt.spot.length=pt,tt.rectArea.length=ft,tt.point.length=ct,tt.hemi.length=gt,tt.directionalShadow.length=yt,tt.directionalShadowMap.length=yt,tt.pointShadow.length=Ut,tt.pointShadowMap.length=Ut,tt.spotShadow.length=Ft,tt.spotShadowMap.length=Ft,tt.directionalShadowMatrix.length=yt,tt.pointShadowMatrix.length=Ut,tt.spotLightMatrix.length=Ft+mt-vt,tt.spotLightMap.length=mt,tt.numSpotLightShadowsWithMaps=vt,tt.numLightProbes=At,Lt.directionalLength=ht,Lt.pointLength=ct,Lt.spotLength=pt,Lt.rectAreaLength=ft,Lt.hemiLength=gt,Lt.numDirectionalShadows=yt,Lt.numPointShadows=Ut,Lt.numSpotShadows=Ft,Lt.numSpotMaps=mt,Lt.numLightProbes=At,tt.version=nextVersion++)}function st(at,lt){let ut=0,dt=0,ht=0,ct=0,pt=0;const ft=lt.matrixWorldInverse;for(let gt=0,yt=at.length;gt=it.length?(ot=new WebGLRenderState(s),it.push(ot)):ot=it[rt],ot}function tt(){o=new WeakMap}return{get:et,dispose:tt}}class MeshDepthMaterial extends Material{constructor(o){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=BasicDepthPacking,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(o)}copy(o){return super.copy(o),this.depthPacking=o.depthPacking,this.map=o.map,this.alphaMap=o.alphaMap,this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this}}class MeshDistanceMaterial extends Material{constructor(o){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(o)}copy(o){return super.copy(o),this.map=o.map,this.alphaMap=o.alphaMap,this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this}}const vertex=`void main() { gl_Position = vec4( position, 1.0 ); }`,fragment=`uniform sampler2D shadow_pass; uniform vec2 resolution; @@ -3814,7 +3814,7 @@ void main() { squared_mean = squared_mean / samples; float std_dev = sqrt( squared_mean - mean * mean ); gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); -}`;function WebGLShadowMap(s,o,et){let tt=new Frustum;const nt=new Vector2,rt=new Vector2,it=new Vector4,ot=new MeshDepthMaterial({depthPacking:RGBADepthPacking}),st=new MeshDistanceMaterial,at={},lt=et.maxTextureSize,ut={[FrontSide]:BackSide,[BackSide]:FrontSide,[DoubleSide]:DoubleSide},dt=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:vertex,fragmentShader:fragment}),ht=dt.clone();ht.defines.HORIZONTAL_PASS=1;const ct=new BufferGeometry;ct.setAttribute("position",new BufferAttribute(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const pt=new Mesh(ct,dt),ft=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=PCFShadowMap;let gt=this.type;this.render=function(vt,At,Lt){if(ft.enabled===!1||ft.autoUpdate===!1&&ft.needsUpdate===!1||vt.length===0)return;const Rt=s.getRenderTarget(),St=s.getActiveCubeFace(),Tt=s.getActiveMipmapLevel(),Bt=s.state;Bt.setBlending(NoBlending),Bt.buffers.color.setClear(1,1,1,1),Bt.buffers.depth.setTest(!0),Bt.setScissorTest(!1);const xt=gt!==VSMShadowMap&&this.type===VSMShadowMap,Ct=gt===VSMShadowMap&&this.type!==VSMShadowMap;for(let kt=0,Nt=vt.length;ktlt||nt.y>lt)&&(nt.x>lt&&(rt.x=Math.floor(lt/Dt.x),nt.x=rt.x*Dt.x,Wt.mapSize.x=rt.x),nt.y>lt&&(rt.y=Math.floor(lt/Dt.y),nt.y=rt.y*Dt.y,Wt.mapSize.y=rt.y)),Wt.map===null||xt===!0||Ct===!0){const Pt=this.type!==VSMShadowMap?{minFilter:NearestFilter,magFilter:NearestFilter}:{};Wt.map!==null&&Wt.map.dispose(),Wt.map=new WebGLRenderTarget(nt.x,nt.y,Pt),Wt.map.texture.name=Ot.name+".shadowMap",Wt.camera.updateProjectionMatrix()}s.setRenderTarget(Wt.map),s.clear();const Et=Wt.getViewportCount();for(let Pt=0;Pt0||At.map&&At.alphaTest>0){const Bt=St.uuid,xt=At.uuid;let Ct=at[Bt];Ct===void 0&&(Ct={},at[Bt]=Ct);let kt=Ct[xt];kt===void 0&&(kt=St.clone(),Ct[xt]=kt,At.addEventListener("dispose",mt)),St=kt}if(St.visible=At.visible,St.wireframe=At.wireframe,Rt===VSMShadowMap?St.side=At.shadowSide!==null?At.shadowSide:At.side:St.side=At.shadowSide!==null?At.shadowSide:ut[At.side],St.alphaMap=At.alphaMap,St.alphaTest=At.alphaTest,St.map=At.map,St.clipShadows=At.clipShadows,St.clippingPlanes=At.clippingPlanes,St.clipIntersection=At.clipIntersection,St.displacementMap=At.displacementMap,St.displacementScale=At.displacementScale,St.displacementBias=At.displacementBias,St.wireframeLinewidth=At.wireframeLinewidth,St.linewidth=At.linewidth,Lt.isPointLight===!0&&St.isMeshDistanceMaterial===!0){const Bt=s.properties.get(St);Bt.light=Lt}return St}function Ft(vt,At,Lt,Rt,St){if(vt.visible===!1)return;if(vt.layers.test(At.layers)&&(vt.isMesh||vt.isLine||vt.isPoints)&&(vt.castShadow||vt.receiveShadow&&St===VSMShadowMap)&&(!vt.frustumCulled||tt.intersectsObject(vt))){vt.modelViewMatrix.multiplyMatrices(Lt.matrixWorldInverse,vt.matrixWorld);const xt=o.update(vt),Ct=vt.material;if(Array.isArray(Ct)){const kt=xt.groups;for(let Nt=0,Ot=kt.length;Nt=1):Ot.indexOf("OpenGL ES")!==-1&&(Nt=parseFloat(/^OpenGL ES (\d)/.exec(Ot)[1]),kt=Nt>=2);let Wt=null,Dt={};const Et=s.getParameter(s.SCISSOR_BOX),Pt=s.getParameter(s.VIEWPORT),zt=new Vector4().fromArray(Et),en=new Vector4().fromArray(Pt);function Kt(kn,un,pn,Qn){const Wn=new Uint8Array(4),jn=s.createTexture();s.bindTexture(kn,jn),s.texParameteri(kn,s.TEXTURE_MIN_FILTER,s.NEAREST),s.texParameteri(kn,s.TEXTURE_MAG_FILTER,s.NEAREST);for(let Fr=0;Fr"u"?!1:/OculusBrowser/g.test(navigator.userAgent),at=new Vector2,lt=new WeakMap;let ut;const dt=new WeakMap;let ht=!1;try{ht=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function ct(gn,hn){return ht?new OffscreenCanvas(gn,hn):createElementNS("canvas")}function pt(gn,hn,wn){let Zn=1;const Pn=On(gn);if((Pn.width>wn||Pn.height>wn)&&(Zn=wn/Math.max(Pn.width,Pn.height)),Zn<1)if(typeof HTMLImageElement<"u"&&gn instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&gn instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&gn instanceof ImageBitmap||typeof VideoFrame<"u"&&gn instanceof VideoFrame){const $n=Math.floor(Zn*Pn.width),Tr=Math.floor(Zn*Pn.height);ut===void 0&&(ut=ct($n,Tr));const Qr=hn?ct($n,Tr):ut;return Qr.width=$n,Qr.height=Tr,Qr.getContext("2d").drawImage(gn,0,0,$n,Tr),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+Pn.width+"x"+Pn.height+") to ("+$n+"x"+Tr+")."),Qr}else return"data"in gn&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+Pn.width+"x"+Pn.height+")."),gn;return gn}function ft(gn){return gn.generateMipmaps&&gn.minFilter!==NearestFilter&&gn.minFilter!==LinearFilter}function gt(gn){s.generateMipmap(gn)}function yt(gn,hn,wn,Zn,Pn=!1){if(gn!==null){if(s[gn]!==void 0)return s[gn];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+gn+"'")}let $n=hn;if(hn===s.RED&&(wn===s.FLOAT&&($n=s.R32F),wn===s.HALF_FLOAT&&($n=s.R16F),wn===s.UNSIGNED_BYTE&&($n=s.R8)),hn===s.RED_INTEGER&&(wn===s.UNSIGNED_BYTE&&($n=s.R8UI),wn===s.UNSIGNED_SHORT&&($n=s.R16UI),wn===s.UNSIGNED_INT&&($n=s.R32UI),wn===s.BYTE&&($n=s.R8I),wn===s.SHORT&&($n=s.R16I),wn===s.INT&&($n=s.R32I)),hn===s.RG&&(wn===s.FLOAT&&($n=s.RG32F),wn===s.HALF_FLOAT&&($n=s.RG16F),wn===s.UNSIGNED_BYTE&&($n=s.RG8)),hn===s.RG_INTEGER&&(wn===s.UNSIGNED_BYTE&&($n=s.RG8UI),wn===s.UNSIGNED_SHORT&&($n=s.RG16UI),wn===s.UNSIGNED_INT&&($n=s.RG32UI),wn===s.BYTE&&($n=s.RG8I),wn===s.SHORT&&($n=s.RG16I),wn===s.INT&&($n=s.RG32I)),hn===s.RGB&&wn===s.UNSIGNED_INT_5_9_9_9_REV&&($n=s.RGB9_E5),hn===s.RGBA){const Tr=Pn?LinearTransfer:ColorManagement.getTransfer(Zn);wn===s.FLOAT&&($n=s.RGBA32F),wn===s.HALF_FLOAT&&($n=s.RGBA16F),wn===s.UNSIGNED_BYTE&&($n=Tr===SRGBTransfer?s.SRGB8_ALPHA8:s.RGBA8),wn===s.UNSIGNED_SHORT_4_4_4_4&&($n=s.RGBA4),wn===s.UNSIGNED_SHORT_5_5_5_1&&($n=s.RGB5_A1)}return($n===s.R16F||$n===s.R32F||$n===s.RG16F||$n===s.RG32F||$n===s.RGBA16F||$n===s.RGBA32F)&&o.get("EXT_color_buffer_float"),$n}function Ut(gn,hn){let wn;return gn?hn===null||hn===UnsignedIntType||hn===UnsignedInt248Type?wn=s.DEPTH24_STENCIL8:hn===FloatType?wn=s.DEPTH32F_STENCIL8:hn===UnsignedShortType&&(wn=s.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):hn===null||hn===UnsignedIntType||hn===UnsignedInt248Type?wn=s.DEPTH_COMPONENT24:hn===FloatType?wn=s.DEPTH_COMPONENT32F:hn===UnsignedShortType&&(wn=s.DEPTH_COMPONENT16),wn}function Ft(gn,hn){return ft(gn)===!0||gn.isFramebufferTexture&&gn.minFilter!==NearestFilter&&gn.minFilter!==LinearFilter?Math.log2(Math.max(hn.width,hn.height))+1:gn.mipmaps!==void 0&&gn.mipmaps.length>0?gn.mipmaps.length:gn.isCompressedTexture&&Array.isArray(gn.image)?hn.mipmaps.length:1}function mt(gn){const hn=gn.target;hn.removeEventListener("dispose",mt),At(hn),hn.isVideoTexture&<.delete(hn)}function vt(gn){const hn=gn.target;hn.removeEventListener("dispose",vt),Rt(hn)}function At(gn){const hn=tt.get(gn);if(hn.__webglInit===void 0)return;const wn=gn.source,Zn=dt.get(wn);if(Zn){const Pn=Zn[hn.__cacheKey];Pn.usedTimes--,Pn.usedTimes===0&&Lt(gn),Object.keys(Zn).length===0&&dt.delete(wn)}tt.remove(gn)}function Lt(gn){const hn=tt.get(gn);s.deleteTexture(hn.__webglTexture);const wn=gn.source,Zn=dt.get(wn);delete Zn[hn.__cacheKey],it.memory.textures--}function Rt(gn){const hn=tt.get(gn);if(gn.depthTexture&&gn.depthTexture.dispose(),gn.isWebGLCubeRenderTarget)for(let Zn=0;Zn<6;Zn++){if(Array.isArray(hn.__webglFramebuffer[Zn]))for(let Pn=0;Pn=nt.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+gn+" texture units while this GPU supports only "+nt.maxTextures),St+=1,gn}function xt(gn){const hn=[];return hn.push(gn.wrapS),hn.push(gn.wrapT),hn.push(gn.wrapR||0),hn.push(gn.magFilter),hn.push(gn.minFilter),hn.push(gn.anisotropy),hn.push(gn.internalFormat),hn.push(gn.format),hn.push(gn.type),hn.push(gn.generateMipmaps),hn.push(gn.premultiplyAlpha),hn.push(gn.flipY),hn.push(gn.unpackAlignment),hn.push(gn.colorSpace),hn.join()}function Ct(gn,hn){const wn=tt.get(gn);if(gn.isVideoTexture&&Fn(gn),gn.isRenderTargetTexture===!1&&gn.version>0&&wn.__version!==gn.version){const Zn=gn.image;if(Zn===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Zn.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{en(wn,gn,hn);return}}et.bindTexture(s.TEXTURE_2D,wn.__webglTexture,s.TEXTURE0+hn)}function kt(gn,hn){const wn=tt.get(gn);if(gn.version>0&&wn.__version!==gn.version){en(wn,gn,hn);return}et.bindTexture(s.TEXTURE_2D_ARRAY,wn.__webglTexture,s.TEXTURE0+hn)}function Nt(gn,hn){const wn=tt.get(gn);if(gn.version>0&&wn.__version!==gn.version){en(wn,gn,hn);return}et.bindTexture(s.TEXTURE_3D,wn.__webglTexture,s.TEXTURE0+hn)}function Ot(gn,hn){const wn=tt.get(gn);if(gn.version>0&&wn.__version!==gn.version){Kt(wn,gn,hn);return}et.bindTexture(s.TEXTURE_CUBE_MAP,wn.__webglTexture,s.TEXTURE0+hn)}const Wt={[RepeatWrapping]:s.REPEAT,[ClampToEdgeWrapping]:s.CLAMP_TO_EDGE,[MirroredRepeatWrapping]:s.MIRRORED_REPEAT},Dt={[NearestFilter]:s.NEAREST,[NearestMipmapNearestFilter]:s.NEAREST_MIPMAP_NEAREST,[NearestMipmapLinearFilter]:s.NEAREST_MIPMAP_LINEAR,[LinearFilter]:s.LINEAR,[LinearMipmapNearestFilter]:s.LINEAR_MIPMAP_NEAREST,[LinearMipmapLinearFilter]:s.LINEAR_MIPMAP_LINEAR},Et={[NeverCompare]:s.NEVER,[AlwaysCompare]:s.ALWAYS,[LessCompare]:s.LESS,[LessEqualCompare]:s.LEQUAL,[EqualCompare]:s.EQUAL,[GreaterEqualCompare]:s.GEQUAL,[GreaterCompare]:s.GREATER,[NotEqualCompare]:s.NOTEQUAL};function Pt(gn,hn){if(hn.type===FloatType&&o.has("OES_texture_float_linear")===!1&&(hn.magFilter===LinearFilter||hn.magFilter===LinearMipmapNearestFilter||hn.magFilter===NearestMipmapLinearFilter||hn.magFilter===LinearMipmapLinearFilter||hn.minFilter===LinearFilter||hn.minFilter===LinearMipmapNearestFilter||hn.minFilter===NearestMipmapLinearFilter||hn.minFilter===LinearMipmapLinearFilter)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),s.texParameteri(gn,s.TEXTURE_WRAP_S,Wt[hn.wrapS]),s.texParameteri(gn,s.TEXTURE_WRAP_T,Wt[hn.wrapT]),(gn===s.TEXTURE_3D||gn===s.TEXTURE_2D_ARRAY)&&s.texParameteri(gn,s.TEXTURE_WRAP_R,Wt[hn.wrapR]),s.texParameteri(gn,s.TEXTURE_MAG_FILTER,Dt[hn.magFilter]),s.texParameteri(gn,s.TEXTURE_MIN_FILTER,Dt[hn.minFilter]),hn.compareFunction&&(s.texParameteri(gn,s.TEXTURE_COMPARE_MODE,s.COMPARE_REF_TO_TEXTURE),s.texParameteri(gn,s.TEXTURE_COMPARE_FUNC,Et[hn.compareFunction])),o.has("EXT_texture_filter_anisotropic")===!0){if(hn.magFilter===NearestFilter||hn.minFilter!==NearestMipmapLinearFilter&&hn.minFilter!==LinearMipmapLinearFilter||hn.type===FloatType&&o.has("OES_texture_float_linear")===!1)return;if(hn.anisotropy>1||tt.get(hn).__currentAnisotropy){const wn=o.get("EXT_texture_filter_anisotropic");s.texParameterf(gn,wn.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(hn.anisotropy,nt.getMaxAnisotropy())),tt.get(hn).__currentAnisotropy=hn.anisotropy}}}function zt(gn,hn){let wn=!1;gn.__webglInit===void 0&&(gn.__webglInit=!0,hn.addEventListener("dispose",mt));const Zn=hn.source;let Pn=dt.get(Zn);Pn===void 0&&(Pn={},dt.set(Zn,Pn));const $n=xt(hn);if($n!==gn.__cacheKey){Pn[$n]===void 0&&(Pn[$n]={texture:s.createTexture(),usedTimes:0},it.memory.textures++,wn=!0),Pn[$n].usedTimes++;const Tr=Pn[gn.__cacheKey];Tr!==void 0&&(Pn[gn.__cacheKey].usedTimes--,Tr.usedTimes===0&&Lt(hn)),gn.__cacheKey=$n,gn.__webglTexture=Pn[$n].texture}return wn}function en(gn,hn,wn){let Zn=s.TEXTURE_2D;(hn.isDataArrayTexture||hn.isCompressedArrayTexture)&&(Zn=s.TEXTURE_2D_ARRAY),hn.isData3DTexture&&(Zn=s.TEXTURE_3D);const Pn=zt(gn,hn),$n=hn.source;et.bindTexture(Zn,gn.__webglTexture,s.TEXTURE0+wn);const Tr=tt.get($n);if($n.version!==Tr.__version||Pn===!0){et.activeTexture(s.TEXTURE0+wn);const Qr=ColorManagement.getPrimaries(ColorManagement.workingColorSpace),_r=hn.colorSpace===NoColorSpace?null:ColorManagement.getPrimaries(hn.colorSpace),Ir=hn.colorSpace===NoColorSpace||Qr===_r?s.NONE:s.BROWSER_DEFAULT_WEBGL;s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,hn.flipY),s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,hn.premultiplyAlpha),s.pixelStorei(s.UNPACK_ALIGNMENT,hn.unpackAlignment),s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,Ir);let Wr=pt(hn.image,!1,nt.maxTextureSize);Wr=Un(hn,Wr);const qr=rt.convert(hn.format,hn.colorSpace),Uo=rt.convert(hn.type);let eo=yt(hn.internalFormat,qr,Uo,hn.colorSpace,hn.isVideoTexture);Pt(Zn,hn);let Yr;const _o=hn.mipmaps,ro=hn.isVideoTexture!==!0,Fo=Tr.__version===void 0||Pn===!0,kn=$n.dataReady,un=Ft(hn,Wr);if(hn.isDepthTexture)eo=Ut(hn.format===DepthStencilFormat,hn.type),Fo&&(ro?et.texStorage2D(s.TEXTURE_2D,1,eo,Wr.width,Wr.height):et.texImage2D(s.TEXTURE_2D,0,eo,Wr.width,Wr.height,0,qr,Uo,null));else if(hn.isDataTexture)if(_o.length>0){ro&&Fo&&et.texStorage2D(s.TEXTURE_2D,un,eo,_o[0].width,_o[0].height);for(let pn=0,Qn=_o.length;pn0){for(const Wn of hn.layerUpdates){const jn=Yr.width*Yr.height;et.compressedTexSubImage3D(s.TEXTURE_2D_ARRAY,pn,0,0,Wn,Yr.width,Yr.height,1,qr,Yr.data.slice(jn*Wn,jn*(Wn+1)),0,0)}hn.clearLayerUpdates()}else et.compressedTexSubImage3D(s.TEXTURE_2D_ARRAY,pn,0,0,0,Yr.width,Yr.height,Wr.depth,qr,Yr.data,0,0)}else et.compressedTexImage3D(s.TEXTURE_2D_ARRAY,pn,eo,Yr.width,Yr.height,Wr.depth,0,Yr.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else ro?kn&&et.texSubImage3D(s.TEXTURE_2D_ARRAY,pn,0,0,0,Yr.width,Yr.height,Wr.depth,qr,Uo,Yr.data):et.texImage3D(s.TEXTURE_2D_ARRAY,pn,eo,Yr.width,Yr.height,Wr.depth,0,qr,Uo,Yr.data)}else{ro&&Fo&&et.texStorage2D(s.TEXTURE_2D,un,eo,_o[0].width,_o[0].height);for(let pn=0,Qn=_o.length;pn0){let pn;switch(Uo){case s.UNSIGNED_BYTE:switch(qr){case s.ALPHA:pn=1;break;case s.LUMINANCE:pn=1;break;case s.LUMINANCE_ALPHA:pn=2;break;case s.RGB:pn=3;break;case s.RGBA:pn=4;break;default:throw new Error(`Unknown texel size for format ${qr}.`)}break;case s.UNSIGNED_SHORT_4_4_4_4:case s.UNSIGNED_SHORT_5_5_5_1:case s.UNSIGNED_SHORT_5_6_5:pn=1;break;default:throw new Error(`Unknown texel size for type ${Uo}.`)}const Qn=Wr.width*Wr.height*pn;for(const Wn of hn.layerUpdates)et.texSubImage3D(s.TEXTURE_2D_ARRAY,0,0,0,Wn,Wr.width,Wr.height,1,qr,Uo,Wr.data.slice(Qn*Wn,Qn*(Wn+1)));hn.clearLayerUpdates()}else et.texSubImage3D(s.TEXTURE_2D_ARRAY,0,0,0,0,Wr.width,Wr.height,Wr.depth,qr,Uo,Wr.data)}else et.texImage3D(s.TEXTURE_2D_ARRAY,0,eo,Wr.width,Wr.height,Wr.depth,0,qr,Uo,Wr.data);else if(hn.isData3DTexture)ro?(Fo&&et.texStorage3D(s.TEXTURE_3D,un,eo,Wr.width,Wr.height,Wr.depth),kn&&et.texSubImage3D(s.TEXTURE_3D,0,0,0,0,Wr.width,Wr.height,Wr.depth,qr,Uo,Wr.data)):et.texImage3D(s.TEXTURE_3D,0,eo,Wr.width,Wr.height,Wr.depth,0,qr,Uo,Wr.data);else if(hn.isFramebufferTexture){if(Fo)if(ro)et.texStorage2D(s.TEXTURE_2D,un,eo,Wr.width,Wr.height);else{let pn=Wr.width,Qn=Wr.height;for(let Wn=0;Wn>=1,Qn>>=1}}else if(_o.length>0){if(ro&&Fo){const pn=On(_o[0]);et.texStorage2D(s.TEXTURE_2D,un,eo,pn.width,pn.height)}for(let pn=0,Qn=_o.length;pn0&&un++;const Qn=On(qr[0]);et.texStorage2D(s.TEXTURE_CUBE_MAP,un,_o,Qn.width,Qn.height)}for(let Qn=0;Qn<6;Qn++)if(Wr){ro?kn&&et.texSubImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+Qn,0,0,0,qr[Qn].width,qr[Qn].height,eo,Yr,qr[Qn].data):et.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+Qn,0,_o,qr[Qn].width,qr[Qn].height,0,eo,Yr,qr[Qn].data);for(let Wn=0;Wn>$n),qr=Math.max(1,hn.height>>$n);Pn===s.TEXTURE_3D||Pn===s.TEXTURE_2D_ARRAY?et.texImage3D(Pn,$n,_r,Wr,qr,hn.depth,0,Tr,Qr,null):et.texImage2D(Pn,$n,_r,Wr,qr,0,Tr,Qr,null)}et.bindFramebuffer(s.FRAMEBUFFER,gn),_n(hn)?ot.framebufferTexture2DMultisampleEXT(s.FRAMEBUFFER,Zn,Pn,tt.get(wn).__webglTexture,0,dn(hn)):(Pn===s.TEXTURE_2D||Pn>=s.TEXTURE_CUBE_MAP_POSITIVE_X&&Pn<=s.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&s.framebufferTexture2D(s.FRAMEBUFFER,Zn,Pn,tt.get(wn).__webglTexture,$n),et.bindFramebuffer(s.FRAMEBUFFER,null)}function Zt(gn,hn,wn){if(s.bindRenderbuffer(s.RENDERBUFFER,gn),hn.depthBuffer){const Zn=hn.depthTexture,Pn=Zn&&Zn.isDepthTexture?Zn.type:null,$n=Ut(hn.stencilBuffer,Pn),Tr=hn.stencilBuffer?s.DEPTH_STENCIL_ATTACHMENT:s.DEPTH_ATTACHMENT,Qr=dn(hn);_n(hn)?ot.renderbufferStorageMultisampleEXT(s.RENDERBUFFER,Qr,$n,hn.width,hn.height):wn?s.renderbufferStorageMultisample(s.RENDERBUFFER,Qr,$n,hn.width,hn.height):s.renderbufferStorage(s.RENDERBUFFER,$n,hn.width,hn.height),s.framebufferRenderbuffer(s.FRAMEBUFFER,Tr,s.RENDERBUFFER,gn)}else{const Zn=hn.textures;for(let Pn=0;Pn1;if(Tr||(Zn.__webglTexture===void 0&&(Zn.__webglTexture=s.createTexture()),Zn.__version=hn.version,it.memory.textures++),$n){wn.__webglFramebuffer=[];for(let Qr=0;Qr<6;Qr++)if(hn.mipmaps&&hn.mipmaps.length>0){wn.__webglFramebuffer[Qr]=[];for(let _r=0;_r0){wn.__webglFramebuffer=[];for(let Qr=0;Qr0&&_n(gn)===!1){wn.__webglMultisampledFramebuffer=s.createFramebuffer(),wn.__webglColorRenderbuffer=[],et.bindFramebuffer(s.FRAMEBUFFER,wn.__webglMultisampledFramebuffer);for(let Qr=0;Qr0)for(let _r=0;_r0)for(let _r=0;_r0){if(_n(gn)===!1){const hn=gn.textures,wn=gn.width,Zn=gn.height;let Pn=s.COLOR_BUFFER_BIT;const $n=gn.stencilBuffer?s.DEPTH_STENCIL_ATTACHMENT:s.DEPTH_ATTACHMENT,Tr=tt.get(gn),Qr=hn.length>1;if(Qr)for(let _r=0;_r0&&o.has("WEBGL_multisampled_render_to_texture")===!0&&hn.__useRenderToTexture!==!1}function Fn(gn){const hn=it.render.frame;lt.get(gn)!==hn&&(lt.set(gn,hn),gn.update())}function Un(gn,hn){const wn=gn.colorSpace,Zn=gn.format,Pn=gn.type;return gn.isCompressedTexture===!0||gn.isVideoTexture===!0||wn!==LinearSRGBColorSpace$1&&wn!==NoColorSpace&&(ColorManagement.getTransfer(wn)===SRGBTransfer?(Zn!==RGBAFormat||Pn!==UnsignedByteType)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",wn)),hn}function On(gn){return typeof HTMLImageElement<"u"&&gn instanceof HTMLImageElement?(at.width=gn.naturalWidth||gn.width,at.height=gn.naturalHeight||gn.height):typeof VideoFrame<"u"&&gn instanceof VideoFrame?(at.width=gn.displayWidth,at.height=gn.displayHeight):(at.width=gn.width,at.height=gn.height),at}this.allocateTextureUnit=Bt,this.resetTextureUnits=Tt,this.setTexture2D=Ct,this.setTexture2DArray=kt,this.setTexture3D=Nt,this.setTextureCube=Ot,this.rebindTextures=It,this.setupRenderTarget=$t,this.updateRenderTargetMipmap=Ht,this.updateMultisampleRenderTarget=Xt,this.setupDepthRenderbuffer=Vt,this.setupFrameBufferTexture=nn,this.useMultisampledRTT=_n}function WebGLUtils(s,o){function et(tt,nt=NoColorSpace){let rt;const it=ColorManagement.getTransfer(nt);if(tt===UnsignedByteType)return s.UNSIGNED_BYTE;if(tt===UnsignedShort4444Type)return s.UNSIGNED_SHORT_4_4_4_4;if(tt===UnsignedShort5551Type)return s.UNSIGNED_SHORT_5_5_5_1;if(tt===UnsignedInt5999Type)return s.UNSIGNED_INT_5_9_9_9_REV;if(tt===ByteType)return s.BYTE;if(tt===ShortType)return s.SHORT;if(tt===UnsignedShortType)return s.UNSIGNED_SHORT;if(tt===IntType)return s.INT;if(tt===UnsignedIntType)return s.UNSIGNED_INT;if(tt===FloatType)return s.FLOAT;if(tt===HalfFloatType)return s.HALF_FLOAT;if(tt===AlphaFormat)return s.ALPHA;if(tt===RGBFormat)return s.RGB;if(tt===RGBAFormat)return s.RGBA;if(tt===LuminanceFormat)return s.LUMINANCE;if(tt===LuminanceAlphaFormat)return s.LUMINANCE_ALPHA;if(tt===DepthFormat)return s.DEPTH_COMPONENT;if(tt===DepthStencilFormat)return s.DEPTH_STENCIL;if(tt===RedFormat)return s.RED;if(tt===RedIntegerFormat)return s.RED_INTEGER;if(tt===RGFormat)return s.RG;if(tt===RGIntegerFormat)return s.RG_INTEGER;if(tt===RGBAIntegerFormat)return s.RGBA_INTEGER;if(tt===RGB_S3TC_DXT1_Format||tt===RGBA_S3TC_DXT1_Format||tt===RGBA_S3TC_DXT3_Format||tt===RGBA_S3TC_DXT5_Format)if(it===SRGBTransfer)if(rt=o.get("WEBGL_compressed_texture_s3tc_srgb"),rt!==null){if(tt===RGB_S3TC_DXT1_Format)return rt.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT1_Format)return rt.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT3_Format)return rt.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(tt===RGBA_S3TC_DXT5_Format)return rt.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(rt=o.get("WEBGL_compressed_texture_s3tc"),rt!==null){if(tt===RGB_S3TC_DXT1_Format)return rt.COMPRESSED_RGB_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT1_Format)return rt.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT3_Format)return rt.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(tt===RGBA_S3TC_DXT5_Format)return rt.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(tt===RGB_PVRTC_4BPPV1_Format||tt===RGB_PVRTC_2BPPV1_Format||tt===RGBA_PVRTC_4BPPV1_Format||tt===RGBA_PVRTC_2BPPV1_Format)if(rt=o.get("WEBGL_compressed_texture_pvrtc"),rt!==null){if(tt===RGB_PVRTC_4BPPV1_Format)return rt.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(tt===RGB_PVRTC_2BPPV1_Format)return rt.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(tt===RGBA_PVRTC_4BPPV1_Format)return rt.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(tt===RGBA_PVRTC_2BPPV1_Format)return rt.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(tt===RGB_ETC1_Format||tt===RGB_ETC2_Format||tt===RGBA_ETC2_EAC_Format)if(rt=o.get("WEBGL_compressed_texture_etc"),rt!==null){if(tt===RGB_ETC1_Format||tt===RGB_ETC2_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ETC2:rt.COMPRESSED_RGB8_ETC2;if(tt===RGBA_ETC2_EAC_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:rt.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(tt===RGBA_ASTC_4x4_Format||tt===RGBA_ASTC_5x4_Format||tt===RGBA_ASTC_5x5_Format||tt===RGBA_ASTC_6x5_Format||tt===RGBA_ASTC_6x6_Format||tt===RGBA_ASTC_8x5_Format||tt===RGBA_ASTC_8x6_Format||tt===RGBA_ASTC_8x8_Format||tt===RGBA_ASTC_10x5_Format||tt===RGBA_ASTC_10x6_Format||tt===RGBA_ASTC_10x8_Format||tt===RGBA_ASTC_10x10_Format||tt===RGBA_ASTC_12x10_Format||tt===RGBA_ASTC_12x12_Format)if(rt=o.get("WEBGL_compressed_texture_astc"),rt!==null){if(tt===RGBA_ASTC_4x4_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:rt.COMPRESSED_RGBA_ASTC_4x4_KHR;if(tt===RGBA_ASTC_5x4_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:rt.COMPRESSED_RGBA_ASTC_5x4_KHR;if(tt===RGBA_ASTC_5x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:rt.COMPRESSED_RGBA_ASTC_5x5_KHR;if(tt===RGBA_ASTC_6x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:rt.COMPRESSED_RGBA_ASTC_6x5_KHR;if(tt===RGBA_ASTC_6x6_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:rt.COMPRESSED_RGBA_ASTC_6x6_KHR;if(tt===RGBA_ASTC_8x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:rt.COMPRESSED_RGBA_ASTC_8x5_KHR;if(tt===RGBA_ASTC_8x6_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:rt.COMPRESSED_RGBA_ASTC_8x6_KHR;if(tt===RGBA_ASTC_8x8_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:rt.COMPRESSED_RGBA_ASTC_8x8_KHR;if(tt===RGBA_ASTC_10x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:rt.COMPRESSED_RGBA_ASTC_10x5_KHR;if(tt===RGBA_ASTC_10x6_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:rt.COMPRESSED_RGBA_ASTC_10x6_KHR;if(tt===RGBA_ASTC_10x8_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:rt.COMPRESSED_RGBA_ASTC_10x8_KHR;if(tt===RGBA_ASTC_10x10_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:rt.COMPRESSED_RGBA_ASTC_10x10_KHR;if(tt===RGBA_ASTC_12x10_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:rt.COMPRESSED_RGBA_ASTC_12x10_KHR;if(tt===RGBA_ASTC_12x12_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:rt.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(tt===RGBA_BPTC_Format||tt===RGB_BPTC_SIGNED_Format||tt===RGB_BPTC_UNSIGNED_Format)if(rt=o.get("EXT_texture_compression_bptc"),rt!==null){if(tt===RGBA_BPTC_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:rt.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(tt===RGB_BPTC_SIGNED_Format)return rt.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(tt===RGB_BPTC_UNSIGNED_Format)return rt.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(tt===RED_RGTC1_Format||tt===SIGNED_RED_RGTC1_Format||tt===RED_GREEN_RGTC2_Format||tt===SIGNED_RED_GREEN_RGTC2_Format)if(rt=o.get("EXT_texture_compression_rgtc"),rt!==null){if(tt===RGBA_BPTC_Format)return rt.COMPRESSED_RED_RGTC1_EXT;if(tt===SIGNED_RED_RGTC1_Format)return rt.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(tt===RED_GREEN_RGTC2_Format)return rt.COMPRESSED_RED_GREEN_RGTC2_EXT;if(tt===SIGNED_RED_GREEN_RGTC2_Format)return rt.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return tt===UnsignedInt248Type?s.UNSIGNED_INT_24_8:s[tt]!==void 0?s[tt]:null}return{convert:et}}class ArrayCamera extends PerspectiveCamera$1{constructor(o=[]){super(),this.isArrayCamera=!0,this.cameras=o}}class Group extends Object3D{constructor(){super(),this.isGroup=!0,this.type="Group"}}const _moveEvent={type:"move"};class WebXRController{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Vector3),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Vector3),this._grip}dispatchEvent(o){return this._targetRay!==null&&this._targetRay.dispatchEvent(o),this._grip!==null&&this._grip.dispatchEvent(o),this._hand!==null&&this._hand.dispatchEvent(o),this}connect(o){if(o&&o.hand){const et=this._hand;if(et)for(const tt of o.hand.values())this._getHandJoint(et,tt)}return this.dispatchEvent({type:"connected",data:o}),this}disconnect(o){return this.dispatchEvent({type:"disconnected",data:o}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(o,et,tt){let nt=null,rt=null,it=null;const ot=this._targetRay,st=this._grip,at=this._hand;if(o&&et.session.visibilityState!=="visible-blurred"){if(at&&o.hand){it=!0;for(const pt of o.hand.values()){const ft=et.getJointPose(pt,tt),gt=this._getHandJoint(at,pt);ft!==null&&(gt.matrix.fromArray(ft.transform.matrix),gt.matrix.decompose(gt.position,gt.rotation,gt.scale),gt.matrixWorldNeedsUpdate=!0,gt.jointRadius=ft.radius),gt.visible=ft!==null}const lt=at.joints["index-finger-tip"],ut=at.joints["thumb-tip"],dt=lt.position.distanceTo(ut.position),ht=.02,ct=.005;at.inputState.pinching&&dt>ht+ct?(at.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:o.handedness,target:this})):!at.inputState.pinching&&dt<=ht-ct&&(at.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:o.handedness,target:this}))}else st!==null&&o.gripSpace&&(rt=et.getPose(o.gripSpace,tt),rt!==null&&(st.matrix.fromArray(rt.transform.matrix),st.matrix.decompose(st.position,st.rotation,st.scale),st.matrixWorldNeedsUpdate=!0,rt.linearVelocity?(st.hasLinearVelocity=!0,st.linearVelocity.copy(rt.linearVelocity)):st.hasLinearVelocity=!1,rt.angularVelocity?(st.hasAngularVelocity=!0,st.angularVelocity.copy(rt.angularVelocity)):st.hasAngularVelocity=!1));ot!==null&&(nt=et.getPose(o.targetRaySpace,tt),nt===null&&rt!==null&&(nt=rt),nt!==null&&(ot.matrix.fromArray(nt.transform.matrix),ot.matrix.decompose(ot.position,ot.rotation,ot.scale),ot.matrixWorldNeedsUpdate=!0,nt.linearVelocity?(ot.hasLinearVelocity=!0,ot.linearVelocity.copy(nt.linearVelocity)):ot.hasLinearVelocity=!1,nt.angularVelocity?(ot.hasAngularVelocity=!0,ot.angularVelocity.copy(nt.angularVelocity)):ot.hasAngularVelocity=!1,this.dispatchEvent(_moveEvent)))}return ot!==null&&(ot.visible=nt!==null),st!==null&&(st.visible=rt!==null),at!==null&&(at.visible=it!==null),this}_getHandJoint(o,et){if(o.joints[et.jointName]===void 0){const tt=new Group;tt.matrixAutoUpdate=!1,tt.visible=!1,o.joints[et.jointName]=tt,o.add(tt)}return o.joints[et.jointName]}}const _occlusion_vertex=` +}`;function WebGLShadowMap(s,o,et){let tt=new Frustum;const nt=new Vector2,rt=new Vector2,it=new Vector4,ot=new MeshDepthMaterial({depthPacking:RGBADepthPacking}),st=new MeshDistanceMaterial,at={},lt=et.maxTextureSize,ut={[FrontSide]:BackSide,[BackSide]:FrontSide,[DoubleSide]:DoubleSide},dt=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:vertex,fragmentShader:fragment}),ht=dt.clone();ht.defines.HORIZONTAL_PASS=1;const ct=new BufferGeometry;ct.setAttribute("position",new BufferAttribute(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const pt=new Mesh(ct,dt),ft=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=PCFShadowMap;let gt=this.type;this.render=function(vt,At,Lt){if(ft.enabled===!1||ft.autoUpdate===!1&&ft.needsUpdate===!1||vt.length===0)return;const Rt=s.getRenderTarget(),St=s.getActiveCubeFace(),Tt=s.getActiveMipmapLevel(),Bt=s.state;Bt.setBlending(NoBlending),Bt.buffers.color.setClear(1,1,1,1),Bt.buffers.depth.setTest(!0),Bt.setScissorTest(!1);const xt=gt!==VSMShadowMap&&this.type===VSMShadowMap,Ct=gt===VSMShadowMap&&this.type!==VSMShadowMap;for(let kt=0,Nt=vt.length;ktlt||nt.y>lt)&&(nt.x>lt&&(rt.x=Math.floor(lt/Dt.x),nt.x=rt.x*Dt.x,Jt.mapSize.x=rt.x),nt.y>lt&&(rt.y=Math.floor(lt/Dt.y),nt.y=rt.y*Dt.y,Jt.mapSize.y=rt.y)),Jt.map===null||xt===!0||Ct===!0){const Pt=this.type!==VSMShadowMap?{minFilter:NearestFilter,magFilter:NearestFilter}:{};Jt.map!==null&&Jt.map.dispose(),Jt.map=new WebGLRenderTarget(nt.x,nt.y,Pt),Jt.map.texture.name=Ot.name+".shadowMap",Jt.camera.updateProjectionMatrix()}s.setRenderTarget(Jt.map),s.clear();const Et=Jt.getViewportCount();for(let Pt=0;Pt0||At.map&&At.alphaTest>0){const Bt=St.uuid,xt=At.uuid;let Ct=at[Bt];Ct===void 0&&(Ct={},at[Bt]=Ct);let kt=Ct[xt];kt===void 0&&(kt=St.clone(),Ct[xt]=kt,At.addEventListener("dispose",mt)),St=kt}if(St.visible=At.visible,St.wireframe=At.wireframe,Rt===VSMShadowMap?St.side=At.shadowSide!==null?At.shadowSide:At.side:St.side=At.shadowSide!==null?At.shadowSide:ut[At.side],St.alphaMap=At.alphaMap,St.alphaTest=At.alphaTest,St.map=At.map,St.clipShadows=At.clipShadows,St.clippingPlanes=At.clippingPlanes,St.clipIntersection=At.clipIntersection,St.displacementMap=At.displacementMap,St.displacementScale=At.displacementScale,St.displacementBias=At.displacementBias,St.wireframeLinewidth=At.wireframeLinewidth,St.linewidth=At.linewidth,Lt.isPointLight===!0&&St.isMeshDistanceMaterial===!0){const Bt=s.properties.get(St);Bt.light=Lt}return St}function Ft(vt,At,Lt,Rt,St){if(vt.visible===!1)return;if(vt.layers.test(At.layers)&&(vt.isMesh||vt.isLine||vt.isPoints)&&(vt.castShadow||vt.receiveShadow&&St===VSMShadowMap)&&(!vt.frustumCulled||tt.intersectsObject(vt))){vt.modelViewMatrix.multiplyMatrices(Lt.matrixWorldInverse,vt.matrixWorld);const xt=o.update(vt),Ct=vt.material;if(Array.isArray(Ct)){const kt=xt.groups;for(let Nt=0,Ot=kt.length;Nt=1):Ot.indexOf("OpenGL ES")!==-1&&(Nt=parseFloat(/^OpenGL ES (\d)/.exec(Ot)[1]),kt=Nt>=2);let Jt=null,Dt={};const Et=s.getParameter(s.SCISSOR_BOX),Pt=s.getParameter(s.VIEWPORT),zt=new Vector4().fromArray(Et),en=new Vector4().fromArray(Pt);function Kt(kn,un,pn,Qn){const Jn=new Uint8Array(4),jn=s.createTexture();s.bindTexture(kn,jn),s.texParameteri(kn,s.TEXTURE_MIN_FILTER,s.NEAREST),s.texParameteri(kn,s.TEXTURE_MAG_FILTER,s.NEAREST);for(let Fr=0;Fr"u"?!1:/OculusBrowser/g.test(navigator.userAgent),at=new Vector2,lt=new WeakMap;let ut;const dt=new WeakMap;let ht=!1;try{ht=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function ct(gn,hn){return ht?new OffscreenCanvas(gn,hn):createElementNS("canvas")}function pt(gn,hn,wn){let Zn=1;const Pn=On(gn);if((Pn.width>wn||Pn.height>wn)&&(Zn=wn/Math.max(Pn.width,Pn.height)),Zn<1)if(typeof HTMLImageElement<"u"&&gn instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&gn instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&gn instanceof ImageBitmap||typeof VideoFrame<"u"&&gn instanceof VideoFrame){const $n=Math.floor(Zn*Pn.width),Tr=Math.floor(Zn*Pn.height);ut===void 0&&(ut=ct($n,Tr));const Qr=hn?ct($n,Tr):ut;return Qr.width=$n,Qr.height=Tr,Qr.getContext("2d").drawImage(gn,0,0,$n,Tr),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+Pn.width+"x"+Pn.height+") to ("+$n+"x"+Tr+")."),Qr}else return"data"in gn&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+Pn.width+"x"+Pn.height+")."),gn;return gn}function ft(gn){return gn.generateMipmaps&&gn.minFilter!==NearestFilter&&gn.minFilter!==LinearFilter}function gt(gn){s.generateMipmap(gn)}function yt(gn,hn,wn,Zn,Pn=!1){if(gn!==null){if(s[gn]!==void 0)return s[gn];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+gn+"'")}let $n=hn;if(hn===s.RED&&(wn===s.FLOAT&&($n=s.R32F),wn===s.HALF_FLOAT&&($n=s.R16F),wn===s.UNSIGNED_BYTE&&($n=s.R8)),hn===s.RED_INTEGER&&(wn===s.UNSIGNED_BYTE&&($n=s.R8UI),wn===s.UNSIGNED_SHORT&&($n=s.R16UI),wn===s.UNSIGNED_INT&&($n=s.R32UI),wn===s.BYTE&&($n=s.R8I),wn===s.SHORT&&($n=s.R16I),wn===s.INT&&($n=s.R32I)),hn===s.RG&&(wn===s.FLOAT&&($n=s.RG32F),wn===s.HALF_FLOAT&&($n=s.RG16F),wn===s.UNSIGNED_BYTE&&($n=s.RG8)),hn===s.RG_INTEGER&&(wn===s.UNSIGNED_BYTE&&($n=s.RG8UI),wn===s.UNSIGNED_SHORT&&($n=s.RG16UI),wn===s.UNSIGNED_INT&&($n=s.RG32UI),wn===s.BYTE&&($n=s.RG8I),wn===s.SHORT&&($n=s.RG16I),wn===s.INT&&($n=s.RG32I)),hn===s.RGB&&wn===s.UNSIGNED_INT_5_9_9_9_REV&&($n=s.RGB9_E5),hn===s.RGBA){const Tr=Pn?LinearTransfer:ColorManagement.getTransfer(Zn);wn===s.FLOAT&&($n=s.RGBA32F),wn===s.HALF_FLOAT&&($n=s.RGBA16F),wn===s.UNSIGNED_BYTE&&($n=Tr===SRGBTransfer?s.SRGB8_ALPHA8:s.RGBA8),wn===s.UNSIGNED_SHORT_4_4_4_4&&($n=s.RGBA4),wn===s.UNSIGNED_SHORT_5_5_5_1&&($n=s.RGB5_A1)}return($n===s.R16F||$n===s.R32F||$n===s.RG16F||$n===s.RG32F||$n===s.RGBA16F||$n===s.RGBA32F)&&o.get("EXT_color_buffer_float"),$n}function Ut(gn,hn){let wn;return gn?hn===null||hn===UnsignedIntType||hn===UnsignedInt248Type?wn=s.DEPTH24_STENCIL8:hn===FloatType?wn=s.DEPTH32F_STENCIL8:hn===UnsignedShortType&&(wn=s.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):hn===null||hn===UnsignedIntType||hn===UnsignedInt248Type?wn=s.DEPTH_COMPONENT24:hn===FloatType?wn=s.DEPTH_COMPONENT32F:hn===UnsignedShortType&&(wn=s.DEPTH_COMPONENT16),wn}function Ft(gn,hn){return ft(gn)===!0||gn.isFramebufferTexture&&gn.minFilter!==NearestFilter&&gn.minFilter!==LinearFilter?Math.log2(Math.max(hn.width,hn.height))+1:gn.mipmaps!==void 0&&gn.mipmaps.length>0?gn.mipmaps.length:gn.isCompressedTexture&&Array.isArray(gn.image)?hn.mipmaps.length:1}function mt(gn){const hn=gn.target;hn.removeEventListener("dispose",mt),At(hn),hn.isVideoTexture&<.delete(hn)}function vt(gn){const hn=gn.target;hn.removeEventListener("dispose",vt),Rt(hn)}function At(gn){const hn=tt.get(gn);if(hn.__webglInit===void 0)return;const wn=gn.source,Zn=dt.get(wn);if(Zn){const Pn=Zn[hn.__cacheKey];Pn.usedTimes--,Pn.usedTimes===0&&Lt(gn),Object.keys(Zn).length===0&&dt.delete(wn)}tt.remove(gn)}function Lt(gn){const hn=tt.get(gn);s.deleteTexture(hn.__webglTexture);const wn=gn.source,Zn=dt.get(wn);delete Zn[hn.__cacheKey],it.memory.textures--}function Rt(gn){const hn=tt.get(gn);if(gn.depthTexture&&gn.depthTexture.dispose(),gn.isWebGLCubeRenderTarget)for(let Zn=0;Zn<6;Zn++){if(Array.isArray(hn.__webglFramebuffer[Zn]))for(let Pn=0;Pn=nt.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+gn+" texture units while this GPU supports only "+nt.maxTextures),St+=1,gn}function xt(gn){const hn=[];return hn.push(gn.wrapS),hn.push(gn.wrapT),hn.push(gn.wrapR||0),hn.push(gn.magFilter),hn.push(gn.minFilter),hn.push(gn.anisotropy),hn.push(gn.internalFormat),hn.push(gn.format),hn.push(gn.type),hn.push(gn.generateMipmaps),hn.push(gn.premultiplyAlpha),hn.push(gn.flipY),hn.push(gn.unpackAlignment),hn.push(gn.colorSpace),hn.join()}function Ct(gn,hn){const wn=tt.get(gn);if(gn.isVideoTexture&&Fn(gn),gn.isRenderTargetTexture===!1&&gn.version>0&&wn.__version!==gn.version){const Zn=gn.image;if(Zn===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Zn.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{en(wn,gn,hn);return}}et.bindTexture(s.TEXTURE_2D,wn.__webglTexture,s.TEXTURE0+hn)}function kt(gn,hn){const wn=tt.get(gn);if(gn.version>0&&wn.__version!==gn.version){en(wn,gn,hn);return}et.bindTexture(s.TEXTURE_2D_ARRAY,wn.__webglTexture,s.TEXTURE0+hn)}function Nt(gn,hn){const wn=tt.get(gn);if(gn.version>0&&wn.__version!==gn.version){en(wn,gn,hn);return}et.bindTexture(s.TEXTURE_3D,wn.__webglTexture,s.TEXTURE0+hn)}function Ot(gn,hn){const wn=tt.get(gn);if(gn.version>0&&wn.__version!==gn.version){Kt(wn,gn,hn);return}et.bindTexture(s.TEXTURE_CUBE_MAP,wn.__webglTexture,s.TEXTURE0+hn)}const Jt={[RepeatWrapping]:s.REPEAT,[ClampToEdgeWrapping]:s.CLAMP_TO_EDGE,[MirroredRepeatWrapping]:s.MIRRORED_REPEAT},Dt={[NearestFilter]:s.NEAREST,[NearestMipmapNearestFilter]:s.NEAREST_MIPMAP_NEAREST,[NearestMipmapLinearFilter]:s.NEAREST_MIPMAP_LINEAR,[LinearFilter]:s.LINEAR,[LinearMipmapNearestFilter]:s.LINEAR_MIPMAP_NEAREST,[LinearMipmapLinearFilter]:s.LINEAR_MIPMAP_LINEAR},Et={[NeverCompare]:s.NEVER,[AlwaysCompare]:s.ALWAYS,[LessCompare]:s.LESS,[LessEqualCompare]:s.LEQUAL,[EqualCompare]:s.EQUAL,[GreaterEqualCompare]:s.GEQUAL,[GreaterCompare]:s.GREATER,[NotEqualCompare]:s.NOTEQUAL};function Pt(gn,hn){if(hn.type===FloatType&&o.has("OES_texture_float_linear")===!1&&(hn.magFilter===LinearFilter||hn.magFilter===LinearMipmapNearestFilter||hn.magFilter===NearestMipmapLinearFilter||hn.magFilter===LinearMipmapLinearFilter||hn.minFilter===LinearFilter||hn.minFilter===LinearMipmapNearestFilter||hn.minFilter===NearestMipmapLinearFilter||hn.minFilter===LinearMipmapLinearFilter)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),s.texParameteri(gn,s.TEXTURE_WRAP_S,Jt[hn.wrapS]),s.texParameteri(gn,s.TEXTURE_WRAP_T,Jt[hn.wrapT]),(gn===s.TEXTURE_3D||gn===s.TEXTURE_2D_ARRAY)&&s.texParameteri(gn,s.TEXTURE_WRAP_R,Jt[hn.wrapR]),s.texParameteri(gn,s.TEXTURE_MAG_FILTER,Dt[hn.magFilter]),s.texParameteri(gn,s.TEXTURE_MIN_FILTER,Dt[hn.minFilter]),hn.compareFunction&&(s.texParameteri(gn,s.TEXTURE_COMPARE_MODE,s.COMPARE_REF_TO_TEXTURE),s.texParameteri(gn,s.TEXTURE_COMPARE_FUNC,Et[hn.compareFunction])),o.has("EXT_texture_filter_anisotropic")===!0){if(hn.magFilter===NearestFilter||hn.minFilter!==NearestMipmapLinearFilter&&hn.minFilter!==LinearMipmapLinearFilter||hn.type===FloatType&&o.has("OES_texture_float_linear")===!1)return;if(hn.anisotropy>1||tt.get(hn).__currentAnisotropy){const wn=o.get("EXT_texture_filter_anisotropic");s.texParameterf(gn,wn.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(hn.anisotropy,nt.getMaxAnisotropy())),tt.get(hn).__currentAnisotropy=hn.anisotropy}}}function zt(gn,hn){let wn=!1;gn.__webglInit===void 0&&(gn.__webglInit=!0,hn.addEventListener("dispose",mt));const Zn=hn.source;let Pn=dt.get(Zn);Pn===void 0&&(Pn={},dt.set(Zn,Pn));const $n=xt(hn);if($n!==gn.__cacheKey){Pn[$n]===void 0&&(Pn[$n]={texture:s.createTexture(),usedTimes:0},it.memory.textures++,wn=!0),Pn[$n].usedTimes++;const Tr=Pn[gn.__cacheKey];Tr!==void 0&&(Pn[gn.__cacheKey].usedTimes--,Tr.usedTimes===0&&Lt(hn)),gn.__cacheKey=$n,gn.__webglTexture=Pn[$n].texture}return wn}function en(gn,hn,wn){let Zn=s.TEXTURE_2D;(hn.isDataArrayTexture||hn.isCompressedArrayTexture)&&(Zn=s.TEXTURE_2D_ARRAY),hn.isData3DTexture&&(Zn=s.TEXTURE_3D);const Pn=zt(gn,hn),$n=hn.source;et.bindTexture(Zn,gn.__webglTexture,s.TEXTURE0+wn);const Tr=tt.get($n);if($n.version!==Tr.__version||Pn===!0){et.activeTexture(s.TEXTURE0+wn);const Qr=ColorManagement.getPrimaries(ColorManagement.workingColorSpace),_r=hn.colorSpace===NoColorSpace?null:ColorManagement.getPrimaries(hn.colorSpace),Ir=hn.colorSpace===NoColorSpace||Qr===_r?s.NONE:s.BROWSER_DEFAULT_WEBGL;s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,hn.flipY),s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,hn.premultiplyAlpha),s.pixelStorei(s.UNPACK_ALIGNMENT,hn.unpackAlignment),s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,Ir);let Jr=pt(hn.image,!1,nt.maxTextureSize);Jr=Un(hn,Jr);const qr=rt.convert(hn.format,hn.colorSpace),Uo=rt.convert(hn.type);let eo=yt(hn.internalFormat,qr,Uo,hn.colorSpace,hn.isVideoTexture);Pt(Zn,hn);let Yr;const _o=hn.mipmaps,ro=hn.isVideoTexture!==!0,Fo=Tr.__version===void 0||Pn===!0,kn=$n.dataReady,un=Ft(hn,Jr);if(hn.isDepthTexture)eo=Ut(hn.format===DepthStencilFormat,hn.type),Fo&&(ro?et.texStorage2D(s.TEXTURE_2D,1,eo,Jr.width,Jr.height):et.texImage2D(s.TEXTURE_2D,0,eo,Jr.width,Jr.height,0,qr,Uo,null));else if(hn.isDataTexture)if(_o.length>0){ro&&Fo&&et.texStorage2D(s.TEXTURE_2D,un,eo,_o[0].width,_o[0].height);for(let pn=0,Qn=_o.length;pn0){for(const Jn of hn.layerUpdates){const jn=Yr.width*Yr.height;et.compressedTexSubImage3D(s.TEXTURE_2D_ARRAY,pn,0,0,Jn,Yr.width,Yr.height,1,qr,Yr.data.slice(jn*Jn,jn*(Jn+1)),0,0)}hn.clearLayerUpdates()}else et.compressedTexSubImage3D(s.TEXTURE_2D_ARRAY,pn,0,0,0,Yr.width,Yr.height,Jr.depth,qr,Yr.data,0,0)}else et.compressedTexImage3D(s.TEXTURE_2D_ARRAY,pn,eo,Yr.width,Yr.height,Jr.depth,0,Yr.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else ro?kn&&et.texSubImage3D(s.TEXTURE_2D_ARRAY,pn,0,0,0,Yr.width,Yr.height,Jr.depth,qr,Uo,Yr.data):et.texImage3D(s.TEXTURE_2D_ARRAY,pn,eo,Yr.width,Yr.height,Jr.depth,0,qr,Uo,Yr.data)}else{ro&&Fo&&et.texStorage2D(s.TEXTURE_2D,un,eo,_o[0].width,_o[0].height);for(let pn=0,Qn=_o.length;pn0){let pn;switch(Uo){case s.UNSIGNED_BYTE:switch(qr){case s.ALPHA:pn=1;break;case s.LUMINANCE:pn=1;break;case s.LUMINANCE_ALPHA:pn=2;break;case s.RGB:pn=3;break;case s.RGBA:pn=4;break;default:throw new Error(`Unknown texel size for format ${qr}.`)}break;case s.UNSIGNED_SHORT_4_4_4_4:case s.UNSIGNED_SHORT_5_5_5_1:case s.UNSIGNED_SHORT_5_6_5:pn=1;break;default:throw new Error(`Unknown texel size for type ${Uo}.`)}const Qn=Jr.width*Jr.height*pn;for(const Jn of hn.layerUpdates)et.texSubImage3D(s.TEXTURE_2D_ARRAY,0,0,0,Jn,Jr.width,Jr.height,1,qr,Uo,Jr.data.slice(Qn*Jn,Qn*(Jn+1)));hn.clearLayerUpdates()}else et.texSubImage3D(s.TEXTURE_2D_ARRAY,0,0,0,0,Jr.width,Jr.height,Jr.depth,qr,Uo,Jr.data)}else et.texImage3D(s.TEXTURE_2D_ARRAY,0,eo,Jr.width,Jr.height,Jr.depth,0,qr,Uo,Jr.data);else if(hn.isData3DTexture)ro?(Fo&&et.texStorage3D(s.TEXTURE_3D,un,eo,Jr.width,Jr.height,Jr.depth),kn&&et.texSubImage3D(s.TEXTURE_3D,0,0,0,0,Jr.width,Jr.height,Jr.depth,qr,Uo,Jr.data)):et.texImage3D(s.TEXTURE_3D,0,eo,Jr.width,Jr.height,Jr.depth,0,qr,Uo,Jr.data);else if(hn.isFramebufferTexture){if(Fo)if(ro)et.texStorage2D(s.TEXTURE_2D,un,eo,Jr.width,Jr.height);else{let pn=Jr.width,Qn=Jr.height;for(let Jn=0;Jn>=1,Qn>>=1}}else if(_o.length>0){if(ro&&Fo){const pn=On(_o[0]);et.texStorage2D(s.TEXTURE_2D,un,eo,pn.width,pn.height)}for(let pn=0,Qn=_o.length;pn0&&un++;const Qn=On(qr[0]);et.texStorage2D(s.TEXTURE_CUBE_MAP,un,_o,Qn.width,Qn.height)}for(let Qn=0;Qn<6;Qn++)if(Jr){ro?kn&&et.texSubImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+Qn,0,0,0,qr[Qn].width,qr[Qn].height,eo,Yr,qr[Qn].data):et.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+Qn,0,_o,qr[Qn].width,qr[Qn].height,0,eo,Yr,qr[Qn].data);for(let Jn=0;Jn>$n),qr=Math.max(1,hn.height>>$n);Pn===s.TEXTURE_3D||Pn===s.TEXTURE_2D_ARRAY?et.texImage3D(Pn,$n,_r,Jr,qr,hn.depth,0,Tr,Qr,null):et.texImage2D(Pn,$n,_r,Jr,qr,0,Tr,Qr,null)}et.bindFramebuffer(s.FRAMEBUFFER,gn),_n(hn)?ot.framebufferTexture2DMultisampleEXT(s.FRAMEBUFFER,Zn,Pn,tt.get(wn).__webglTexture,0,dn(hn)):(Pn===s.TEXTURE_2D||Pn>=s.TEXTURE_CUBE_MAP_POSITIVE_X&&Pn<=s.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&s.framebufferTexture2D(s.FRAMEBUFFER,Zn,Pn,tt.get(wn).__webglTexture,$n),et.bindFramebuffer(s.FRAMEBUFFER,null)}function Zt(gn,hn,wn){if(s.bindRenderbuffer(s.RENDERBUFFER,gn),hn.depthBuffer){const Zn=hn.depthTexture,Pn=Zn&&Zn.isDepthTexture?Zn.type:null,$n=Ut(hn.stencilBuffer,Pn),Tr=hn.stencilBuffer?s.DEPTH_STENCIL_ATTACHMENT:s.DEPTH_ATTACHMENT,Qr=dn(hn);_n(hn)?ot.renderbufferStorageMultisampleEXT(s.RENDERBUFFER,Qr,$n,hn.width,hn.height):wn?s.renderbufferStorageMultisample(s.RENDERBUFFER,Qr,$n,hn.width,hn.height):s.renderbufferStorage(s.RENDERBUFFER,$n,hn.width,hn.height),s.framebufferRenderbuffer(s.FRAMEBUFFER,Tr,s.RENDERBUFFER,gn)}else{const Zn=hn.textures;for(let Pn=0;Pn1;if(Tr||(Zn.__webglTexture===void 0&&(Zn.__webglTexture=s.createTexture()),Zn.__version=hn.version,it.memory.textures++),$n){wn.__webglFramebuffer=[];for(let Qr=0;Qr<6;Qr++)if(hn.mipmaps&&hn.mipmaps.length>0){wn.__webglFramebuffer[Qr]=[];for(let _r=0;_r0){wn.__webglFramebuffer=[];for(let Qr=0;Qr0&&_n(gn)===!1){wn.__webglMultisampledFramebuffer=s.createFramebuffer(),wn.__webglColorRenderbuffer=[],et.bindFramebuffer(s.FRAMEBUFFER,wn.__webglMultisampledFramebuffer);for(let Qr=0;Qr0)for(let _r=0;_r0)for(let _r=0;_r0){if(_n(gn)===!1){const hn=gn.textures,wn=gn.width,Zn=gn.height;let Pn=s.COLOR_BUFFER_BIT;const $n=gn.stencilBuffer?s.DEPTH_STENCIL_ATTACHMENT:s.DEPTH_ATTACHMENT,Tr=tt.get(gn),Qr=hn.length>1;if(Qr)for(let _r=0;_r0&&o.has("WEBGL_multisampled_render_to_texture")===!0&&hn.__useRenderToTexture!==!1}function Fn(gn){const hn=it.render.frame;lt.get(gn)!==hn&&(lt.set(gn,hn),gn.update())}function Un(gn,hn){const wn=gn.colorSpace,Zn=gn.format,Pn=gn.type;return gn.isCompressedTexture===!0||gn.isVideoTexture===!0||wn!==LinearSRGBColorSpace$1&&wn!==NoColorSpace&&(ColorManagement.getTransfer(wn)===SRGBTransfer?(Zn!==RGBAFormat||Pn!==UnsignedByteType)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",wn)),hn}function On(gn){return typeof HTMLImageElement<"u"&&gn instanceof HTMLImageElement?(at.width=gn.naturalWidth||gn.width,at.height=gn.naturalHeight||gn.height):typeof VideoFrame<"u"&&gn instanceof VideoFrame?(at.width=gn.displayWidth,at.height=gn.displayHeight):(at.width=gn.width,at.height=gn.height),at}this.allocateTextureUnit=Bt,this.resetTextureUnits=Tt,this.setTexture2D=Ct,this.setTexture2DArray=kt,this.setTexture3D=Nt,this.setTextureCube=Ot,this.rebindTextures=It,this.setupRenderTarget=$t,this.updateRenderTargetMipmap=Ht,this.updateMultisampleRenderTarget=Xt,this.setupDepthRenderbuffer=Vt,this.setupFrameBufferTexture=nn,this.useMultisampledRTT=_n}function WebGLUtils(s,o){function et(tt,nt=NoColorSpace){let rt;const it=ColorManagement.getTransfer(nt);if(tt===UnsignedByteType)return s.UNSIGNED_BYTE;if(tt===UnsignedShort4444Type)return s.UNSIGNED_SHORT_4_4_4_4;if(tt===UnsignedShort5551Type)return s.UNSIGNED_SHORT_5_5_5_1;if(tt===UnsignedInt5999Type)return s.UNSIGNED_INT_5_9_9_9_REV;if(tt===ByteType)return s.BYTE;if(tt===ShortType)return s.SHORT;if(tt===UnsignedShortType)return s.UNSIGNED_SHORT;if(tt===IntType)return s.INT;if(tt===UnsignedIntType)return s.UNSIGNED_INT;if(tt===FloatType)return s.FLOAT;if(tt===HalfFloatType)return s.HALF_FLOAT;if(tt===AlphaFormat)return s.ALPHA;if(tt===RGBFormat)return s.RGB;if(tt===RGBAFormat)return s.RGBA;if(tt===LuminanceFormat)return s.LUMINANCE;if(tt===LuminanceAlphaFormat)return s.LUMINANCE_ALPHA;if(tt===DepthFormat)return s.DEPTH_COMPONENT;if(tt===DepthStencilFormat)return s.DEPTH_STENCIL;if(tt===RedFormat)return s.RED;if(tt===RedIntegerFormat)return s.RED_INTEGER;if(tt===RGFormat)return s.RG;if(tt===RGIntegerFormat)return s.RG_INTEGER;if(tt===RGBAIntegerFormat)return s.RGBA_INTEGER;if(tt===RGB_S3TC_DXT1_Format||tt===RGBA_S3TC_DXT1_Format||tt===RGBA_S3TC_DXT3_Format||tt===RGBA_S3TC_DXT5_Format)if(it===SRGBTransfer)if(rt=o.get("WEBGL_compressed_texture_s3tc_srgb"),rt!==null){if(tt===RGB_S3TC_DXT1_Format)return rt.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT1_Format)return rt.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT3_Format)return rt.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(tt===RGBA_S3TC_DXT5_Format)return rt.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(rt=o.get("WEBGL_compressed_texture_s3tc"),rt!==null){if(tt===RGB_S3TC_DXT1_Format)return rt.COMPRESSED_RGB_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT1_Format)return rt.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT3_Format)return rt.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(tt===RGBA_S3TC_DXT5_Format)return rt.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(tt===RGB_PVRTC_4BPPV1_Format||tt===RGB_PVRTC_2BPPV1_Format||tt===RGBA_PVRTC_4BPPV1_Format||tt===RGBA_PVRTC_2BPPV1_Format)if(rt=o.get("WEBGL_compressed_texture_pvrtc"),rt!==null){if(tt===RGB_PVRTC_4BPPV1_Format)return rt.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(tt===RGB_PVRTC_2BPPV1_Format)return rt.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(tt===RGBA_PVRTC_4BPPV1_Format)return rt.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(tt===RGBA_PVRTC_2BPPV1_Format)return rt.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(tt===RGB_ETC1_Format||tt===RGB_ETC2_Format||tt===RGBA_ETC2_EAC_Format)if(rt=o.get("WEBGL_compressed_texture_etc"),rt!==null){if(tt===RGB_ETC1_Format||tt===RGB_ETC2_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ETC2:rt.COMPRESSED_RGB8_ETC2;if(tt===RGBA_ETC2_EAC_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:rt.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(tt===RGBA_ASTC_4x4_Format||tt===RGBA_ASTC_5x4_Format||tt===RGBA_ASTC_5x5_Format||tt===RGBA_ASTC_6x5_Format||tt===RGBA_ASTC_6x6_Format||tt===RGBA_ASTC_8x5_Format||tt===RGBA_ASTC_8x6_Format||tt===RGBA_ASTC_8x8_Format||tt===RGBA_ASTC_10x5_Format||tt===RGBA_ASTC_10x6_Format||tt===RGBA_ASTC_10x8_Format||tt===RGBA_ASTC_10x10_Format||tt===RGBA_ASTC_12x10_Format||tt===RGBA_ASTC_12x12_Format)if(rt=o.get("WEBGL_compressed_texture_astc"),rt!==null){if(tt===RGBA_ASTC_4x4_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:rt.COMPRESSED_RGBA_ASTC_4x4_KHR;if(tt===RGBA_ASTC_5x4_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:rt.COMPRESSED_RGBA_ASTC_5x4_KHR;if(tt===RGBA_ASTC_5x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:rt.COMPRESSED_RGBA_ASTC_5x5_KHR;if(tt===RGBA_ASTC_6x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:rt.COMPRESSED_RGBA_ASTC_6x5_KHR;if(tt===RGBA_ASTC_6x6_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:rt.COMPRESSED_RGBA_ASTC_6x6_KHR;if(tt===RGBA_ASTC_8x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:rt.COMPRESSED_RGBA_ASTC_8x5_KHR;if(tt===RGBA_ASTC_8x6_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:rt.COMPRESSED_RGBA_ASTC_8x6_KHR;if(tt===RGBA_ASTC_8x8_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:rt.COMPRESSED_RGBA_ASTC_8x8_KHR;if(tt===RGBA_ASTC_10x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:rt.COMPRESSED_RGBA_ASTC_10x5_KHR;if(tt===RGBA_ASTC_10x6_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:rt.COMPRESSED_RGBA_ASTC_10x6_KHR;if(tt===RGBA_ASTC_10x8_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:rt.COMPRESSED_RGBA_ASTC_10x8_KHR;if(tt===RGBA_ASTC_10x10_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:rt.COMPRESSED_RGBA_ASTC_10x10_KHR;if(tt===RGBA_ASTC_12x10_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:rt.COMPRESSED_RGBA_ASTC_12x10_KHR;if(tt===RGBA_ASTC_12x12_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:rt.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(tt===RGBA_BPTC_Format||tt===RGB_BPTC_SIGNED_Format||tt===RGB_BPTC_UNSIGNED_Format)if(rt=o.get("EXT_texture_compression_bptc"),rt!==null){if(tt===RGBA_BPTC_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:rt.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(tt===RGB_BPTC_SIGNED_Format)return rt.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(tt===RGB_BPTC_UNSIGNED_Format)return rt.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(tt===RED_RGTC1_Format||tt===SIGNED_RED_RGTC1_Format||tt===RED_GREEN_RGTC2_Format||tt===SIGNED_RED_GREEN_RGTC2_Format)if(rt=o.get("EXT_texture_compression_rgtc"),rt!==null){if(tt===RGBA_BPTC_Format)return rt.COMPRESSED_RED_RGTC1_EXT;if(tt===SIGNED_RED_RGTC1_Format)return rt.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(tt===RED_GREEN_RGTC2_Format)return rt.COMPRESSED_RED_GREEN_RGTC2_EXT;if(tt===SIGNED_RED_GREEN_RGTC2_Format)return rt.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return tt===UnsignedInt248Type?s.UNSIGNED_INT_24_8:s[tt]!==void 0?s[tt]:null}return{convert:et}}class ArrayCamera extends PerspectiveCamera$1{constructor(o=[]){super(),this.isArrayCamera=!0,this.cameras=o}}class Group extends Object3D{constructor(){super(),this.isGroup=!0,this.type="Group"}}const _moveEvent={type:"move"};class WebXRController{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Vector3),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Vector3),this._grip}dispatchEvent(o){return this._targetRay!==null&&this._targetRay.dispatchEvent(o),this._grip!==null&&this._grip.dispatchEvent(o),this._hand!==null&&this._hand.dispatchEvent(o),this}connect(o){if(o&&o.hand){const et=this._hand;if(et)for(const tt of o.hand.values())this._getHandJoint(et,tt)}return this.dispatchEvent({type:"connected",data:o}),this}disconnect(o){return this.dispatchEvent({type:"disconnected",data:o}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(o,et,tt){let nt=null,rt=null,it=null;const ot=this._targetRay,st=this._grip,at=this._hand;if(o&&et.session.visibilityState!=="visible-blurred"){if(at&&o.hand){it=!0;for(const pt of o.hand.values()){const ft=et.getJointPose(pt,tt),gt=this._getHandJoint(at,pt);ft!==null&&(gt.matrix.fromArray(ft.transform.matrix),gt.matrix.decompose(gt.position,gt.rotation,gt.scale),gt.matrixWorldNeedsUpdate=!0,gt.jointRadius=ft.radius),gt.visible=ft!==null}const lt=at.joints["index-finger-tip"],ut=at.joints["thumb-tip"],dt=lt.position.distanceTo(ut.position),ht=.02,ct=.005;at.inputState.pinching&&dt>ht+ct?(at.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:o.handedness,target:this})):!at.inputState.pinching&&dt<=ht-ct&&(at.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:o.handedness,target:this}))}else st!==null&&o.gripSpace&&(rt=et.getPose(o.gripSpace,tt),rt!==null&&(st.matrix.fromArray(rt.transform.matrix),st.matrix.decompose(st.position,st.rotation,st.scale),st.matrixWorldNeedsUpdate=!0,rt.linearVelocity?(st.hasLinearVelocity=!0,st.linearVelocity.copy(rt.linearVelocity)):st.hasLinearVelocity=!1,rt.angularVelocity?(st.hasAngularVelocity=!0,st.angularVelocity.copy(rt.angularVelocity)):st.hasAngularVelocity=!1));ot!==null&&(nt=et.getPose(o.targetRaySpace,tt),nt===null&&rt!==null&&(nt=rt),nt!==null&&(ot.matrix.fromArray(nt.transform.matrix),ot.matrix.decompose(ot.position,ot.rotation,ot.scale),ot.matrixWorldNeedsUpdate=!0,nt.linearVelocity?(ot.hasLinearVelocity=!0,ot.linearVelocity.copy(nt.linearVelocity)):ot.hasLinearVelocity=!1,nt.angularVelocity?(ot.hasAngularVelocity=!0,ot.angularVelocity.copy(nt.angularVelocity)):ot.hasAngularVelocity=!1,this.dispatchEvent(_moveEvent)))}return ot!==null&&(ot.visible=nt!==null),st!==null&&(st.visible=rt!==null),at!==null&&(at.visible=it!==null),this}_getHandJoint(o,et){if(o.joints[et.jointName]===void 0){const tt=new Group;tt.matrixAutoUpdate=!1,tt.visible=!1,o.joints[et.jointName]=tt,o.add(tt)}return o.joints[et.jointName]}}const _occlusion_vertex=` void main() { gl_Position = vec4( position, 1.0 ); @@ -3838,7 +3838,7 @@ void main() { } -}`;class WebXRDepthSensing{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(o,et,tt){if(this.texture===null){const nt=new Texture,rt=o.properties.get(nt);rt.__webglTexture=et.texture,(et.depthNear!=tt.depthNear||et.depthFar!=tt.depthFar)&&(this.depthNear=et.depthNear,this.depthFar=et.depthFar),this.texture=nt}}getMesh(o){if(this.texture!==null&&this.mesh===null){const et=o.cameras[0].viewport,tt=new ShaderMaterial({vertexShader:_occlusion_vertex,fragmentShader:_occlusion_fragment,uniforms:{depthColor:{value:this.texture},depthWidth:{value:et.z},depthHeight:{value:et.w}}});this.mesh=new Mesh(new PlaneGeometry(20,20),tt)}return this.mesh}reset(){this.texture=null,this.mesh=null}}class WebXRManager extends EventDispatcher$1{constructor(o,et){super();const tt=this;let nt=null,rt=1,it=null,ot="local-floor",st=1,at=null,lt=null,ut=null,dt=null,ht=null,ct=null;const pt=new WebXRDepthSensing,ft=et.getContextAttributes();let gt=null,yt=null;const Ut=[],Ft=[],mt=new Vector2;let vt=null;const At=new PerspectiveCamera$1;At.layers.enable(1),At.viewport=new Vector4;const Lt=new PerspectiveCamera$1;Lt.layers.enable(2),Lt.viewport=new Vector4;const Rt=[At,Lt],St=new ArrayCamera;St.layers.enable(1),St.layers.enable(2);let Tt=null,Bt=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Kt){let nn=Ut[Kt];return nn===void 0&&(nn=new WebXRController,Ut[Kt]=nn),nn.getTargetRaySpace()},this.getControllerGrip=function(Kt){let nn=Ut[Kt];return nn===void 0&&(nn=new WebXRController,Ut[Kt]=nn),nn.getGripSpace()},this.getHand=function(Kt){let nn=Ut[Kt];return nn===void 0&&(nn=new WebXRController,Ut[Kt]=nn),nn.getHandSpace()};function xt(Kt){const nn=Ft.indexOf(Kt.inputSource);if(nn===-1)return;const Zt=Ut[nn];Zt!==void 0&&(Zt.update(Kt.inputSource,Kt.frame,at||it),Zt.dispatchEvent({type:Kt.type,data:Kt.inputSource}))}function Ct(){nt.removeEventListener("select",xt),nt.removeEventListener("selectstart",xt),nt.removeEventListener("selectend",xt),nt.removeEventListener("squeeze",xt),nt.removeEventListener("squeezestart",xt),nt.removeEventListener("squeezeend",xt),nt.removeEventListener("end",Ct),nt.removeEventListener("inputsourceschange",kt);for(let Kt=0;Kt=0&&(Ft[jt]=null,Ut[jt].disconnect(Zt))}for(let nn=0;nn=Ft.length){Ft.push(Zt),jt=It;break}else if(Ft[It]===null){Ft[It]=Zt,jt=It;break}if(jt===-1)break}const Vt=Ut[jt];Vt&&Vt.connect(Zt)}}const Nt=new Vector3,Ot=new Vector3;function Wt(Kt,nn,Zt){Nt.setFromMatrixPosition(nn.matrixWorld),Ot.setFromMatrixPosition(Zt.matrixWorld);const jt=Nt.distanceTo(Ot),Vt=nn.projectionMatrix.elements,It=Zt.projectionMatrix.elements,$t=Vt[14]/(Vt[10]-1),Ht=Vt[14]/(Vt[10]+1),qt=(Vt[9]+1)/Vt[5],on=(Vt[9]-1)/Vt[5],Xt=(Vt[8]-1)/Vt[0],dn=(It[8]+1)/It[0],_n=$t*Xt,Fn=$t*dn,Un=jt/(-Xt+dn),On=Un*-Xt;nn.matrixWorld.decompose(Kt.position,Kt.quaternion,Kt.scale),Kt.translateX(On),Kt.translateZ(Un),Kt.matrixWorld.compose(Kt.position,Kt.quaternion,Kt.scale),Kt.matrixWorldInverse.copy(Kt.matrixWorld).invert();const gn=$t+Un,hn=Ht+Un,wn=_n-On,Zn=Fn+(jt-On),Pn=qt*Ht/hn*gn,$n=on*Ht/hn*gn;Kt.projectionMatrix.makePerspective(wn,Zn,Pn,$n,gn,hn),Kt.projectionMatrixInverse.copy(Kt.projectionMatrix).invert()}function Dt(Kt,nn){nn===null?Kt.matrixWorld.copy(Kt.matrix):Kt.matrixWorld.multiplyMatrices(nn.matrixWorld,Kt.matrix),Kt.matrixWorldInverse.copy(Kt.matrixWorld).invert()}this.updateCamera=function(Kt){if(nt===null)return;pt.texture!==null&&(Kt.near=pt.depthNear,Kt.far=pt.depthFar),St.near=Lt.near=At.near=Kt.near,St.far=Lt.far=At.far=Kt.far,(Tt!==St.near||Bt!==St.far)&&(nt.updateRenderState({depthNear:St.near,depthFar:St.far}),Tt=St.near,Bt=St.far,At.near=Tt,At.far=Bt,Lt.near=Tt,Lt.far=Bt,At.updateProjectionMatrix(),Lt.updateProjectionMatrix(),Kt.updateProjectionMatrix());const nn=Kt.parent,Zt=St.cameras;Dt(St,nn);for(let jt=0;jt0&&(ft.alphaTest.value=gt.alphaTest);const yt=o.get(gt),Ut=yt.envMap,Ft=yt.envMapRotation;Ut&&(ft.envMap.value=Ut,_e1.copy(Ft),_e1.x*=-1,_e1.y*=-1,_e1.z*=-1,Ut.isCubeTexture&&Ut.isRenderTargetTexture===!1&&(_e1.y*=-1,_e1.z*=-1),ft.envMapRotation.value.setFromMatrix4(_m1.makeRotationFromEuler(_e1)),ft.flipEnvMap.value=Ut.isCubeTexture&&Ut.isRenderTargetTexture===!1?-1:1,ft.reflectivity.value=gt.reflectivity,ft.ior.value=gt.ior,ft.refractionRatio.value=gt.refractionRatio),gt.lightMap&&(ft.lightMap.value=gt.lightMap,ft.lightMapIntensity.value=gt.lightMapIntensity,et(gt.lightMap,ft.lightMapTransform)),gt.aoMap&&(ft.aoMap.value=gt.aoMap,ft.aoMapIntensity.value=gt.aoMapIntensity,et(gt.aoMap,ft.aoMapTransform))}function it(ft,gt){ft.diffuse.value.copy(gt.color),ft.opacity.value=gt.opacity,gt.map&&(ft.map.value=gt.map,et(gt.map,ft.mapTransform))}function ot(ft,gt){ft.dashSize.value=gt.dashSize,ft.totalSize.value=gt.dashSize+gt.gapSize,ft.scale.value=gt.scale}function st(ft,gt,yt,Ut){ft.diffuse.value.copy(gt.color),ft.opacity.value=gt.opacity,ft.size.value=gt.size*yt,ft.scale.value=Ut*.5,gt.map&&(ft.map.value=gt.map,et(gt.map,ft.uvTransform)),gt.alphaMap&&(ft.alphaMap.value=gt.alphaMap,et(gt.alphaMap,ft.alphaMapTransform)),gt.alphaTest>0&&(ft.alphaTest.value=gt.alphaTest)}function at(ft,gt){ft.diffuse.value.copy(gt.color),ft.opacity.value=gt.opacity,ft.rotation.value=gt.rotation,gt.map&&(ft.map.value=gt.map,et(gt.map,ft.mapTransform)),gt.alphaMap&&(ft.alphaMap.value=gt.alphaMap,et(gt.alphaMap,ft.alphaMapTransform)),gt.alphaTest>0&&(ft.alphaTest.value=gt.alphaTest)}function lt(ft,gt){ft.specular.value.copy(gt.specular),ft.shininess.value=Math.max(gt.shininess,1e-4)}function ut(ft,gt){gt.gradientMap&&(ft.gradientMap.value=gt.gradientMap)}function dt(ft,gt){ft.metalness.value=gt.metalness,gt.metalnessMap&&(ft.metalnessMap.value=gt.metalnessMap,et(gt.metalnessMap,ft.metalnessMapTransform)),ft.roughness.value=gt.roughness,gt.roughnessMap&&(ft.roughnessMap.value=gt.roughnessMap,et(gt.roughnessMap,ft.roughnessMapTransform)),gt.envMap&&(ft.envMapIntensity.value=gt.envMapIntensity)}function ht(ft,gt,yt){ft.ior.value=gt.ior,gt.sheen>0&&(ft.sheenColor.value.copy(gt.sheenColor).multiplyScalar(gt.sheen),ft.sheenRoughness.value=gt.sheenRoughness,gt.sheenColorMap&&(ft.sheenColorMap.value=gt.sheenColorMap,et(gt.sheenColorMap,ft.sheenColorMapTransform)),gt.sheenRoughnessMap&&(ft.sheenRoughnessMap.value=gt.sheenRoughnessMap,et(gt.sheenRoughnessMap,ft.sheenRoughnessMapTransform))),gt.clearcoat>0&&(ft.clearcoat.value=gt.clearcoat,ft.clearcoatRoughness.value=gt.clearcoatRoughness,gt.clearcoatMap&&(ft.clearcoatMap.value=gt.clearcoatMap,et(gt.clearcoatMap,ft.clearcoatMapTransform)),gt.clearcoatRoughnessMap&&(ft.clearcoatRoughnessMap.value=gt.clearcoatRoughnessMap,et(gt.clearcoatRoughnessMap,ft.clearcoatRoughnessMapTransform)),gt.clearcoatNormalMap&&(ft.clearcoatNormalMap.value=gt.clearcoatNormalMap,et(gt.clearcoatNormalMap,ft.clearcoatNormalMapTransform),ft.clearcoatNormalScale.value.copy(gt.clearcoatNormalScale),gt.side===BackSide&&ft.clearcoatNormalScale.value.negate())),gt.dispersion>0&&(ft.dispersion.value=gt.dispersion),gt.iridescence>0&&(ft.iridescence.value=gt.iridescence,ft.iridescenceIOR.value=gt.iridescenceIOR,ft.iridescenceThicknessMinimum.value=gt.iridescenceThicknessRange[0],ft.iridescenceThicknessMaximum.value=gt.iridescenceThicknessRange[1],gt.iridescenceMap&&(ft.iridescenceMap.value=gt.iridescenceMap,et(gt.iridescenceMap,ft.iridescenceMapTransform)),gt.iridescenceThicknessMap&&(ft.iridescenceThicknessMap.value=gt.iridescenceThicknessMap,et(gt.iridescenceThicknessMap,ft.iridescenceThicknessMapTransform))),gt.transmission>0&&(ft.transmission.value=gt.transmission,ft.transmissionSamplerMap.value=yt.texture,ft.transmissionSamplerSize.value.set(yt.width,yt.height),gt.transmissionMap&&(ft.transmissionMap.value=gt.transmissionMap,et(gt.transmissionMap,ft.transmissionMapTransform)),ft.thickness.value=gt.thickness,gt.thicknessMap&&(ft.thicknessMap.value=gt.thicknessMap,et(gt.thicknessMap,ft.thicknessMapTransform)),ft.attenuationDistance.value=gt.attenuationDistance,ft.attenuationColor.value.copy(gt.attenuationColor)),gt.anisotropy>0&&(ft.anisotropyVector.value.set(gt.anisotropy*Math.cos(gt.anisotropyRotation),gt.anisotropy*Math.sin(gt.anisotropyRotation)),gt.anisotropyMap&&(ft.anisotropyMap.value=gt.anisotropyMap,et(gt.anisotropyMap,ft.anisotropyMapTransform))),ft.specularIntensity.value=gt.specularIntensity,ft.specularColor.value.copy(gt.specularColor),gt.specularColorMap&&(ft.specularColorMap.value=gt.specularColorMap,et(gt.specularColorMap,ft.specularColorMapTransform)),gt.specularIntensityMap&&(ft.specularIntensityMap.value=gt.specularIntensityMap,et(gt.specularIntensityMap,ft.specularIntensityMapTransform))}function ct(ft,gt){gt.matcap&&(ft.matcap.value=gt.matcap)}function pt(ft,gt){const yt=o.get(gt).light;ft.referencePosition.value.setFromMatrixPosition(yt.matrixWorld),ft.nearDistance.value=yt.shadow.camera.near,ft.farDistance.value=yt.shadow.camera.far}return{refreshFogUniforms:tt,refreshMaterialUniforms:nt}}function WebGLUniformsGroups(s,o,et,tt){let nt={},rt={},it=[];const ot=s.getParameter(s.MAX_UNIFORM_BUFFER_BINDINGS);function st(yt,Ut){const Ft=Ut.program;tt.uniformBlockBinding(yt,Ft)}function at(yt,Ut){let Ft=nt[yt.id];Ft===void 0&&(ct(yt),Ft=lt(yt),nt[yt.id]=Ft,yt.addEventListener("dispose",ft));const mt=Ut.program;tt.updateUBOMapping(yt,mt);const vt=o.render.frame;rt[yt.id]!==vt&&(dt(yt),rt[yt.id]=vt)}function lt(yt){const Ut=ut();yt.__bindingPointIndex=Ut;const Ft=s.createBuffer(),mt=yt.__size,vt=yt.usage;return s.bindBuffer(s.UNIFORM_BUFFER,Ft),s.bufferData(s.UNIFORM_BUFFER,mt,vt),s.bindBuffer(s.UNIFORM_BUFFER,null),s.bindBufferBase(s.UNIFORM_BUFFER,Ut,Ft),Ft}function ut(){for(let yt=0;yt0&&(Ft+=mt-vt),yt.__size=Ft,yt.__cache={},this}function pt(yt){const Ut={boundary:0,storage:0};return typeof yt=="number"||typeof yt=="boolean"?(Ut.boundary=4,Ut.storage=4):yt.isVector2?(Ut.boundary=8,Ut.storage=8):yt.isVector3||yt.isColor?(Ut.boundary=16,Ut.storage=12):yt.isVector4?(Ut.boundary=16,Ut.storage=16):yt.isMatrix3?(Ut.boundary=48,Ut.storage=48):yt.isMatrix4?(Ut.boundary=64,Ut.storage=64):yt.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",yt),Ut}function ft(yt){const Ut=yt.target;Ut.removeEventListener("dispose",ft);const Ft=it.indexOf(Ut.__bindingPointIndex);it.splice(Ft,1),s.deleteBuffer(nt[Ut.id]),delete nt[Ut.id],delete rt[Ut.id]}function gt(){for(const yt in nt)s.deleteBuffer(nt[yt]);it=[],nt={},rt={}}return{bind:st,update:at,dispose:gt}}class WebGLRenderer{constructor(o={}){const{canvas:et=createCanvasElement(),context:tt=null,depth:nt=!0,stencil:rt=!1,alpha:it=!1,antialias:ot=!1,premultipliedAlpha:st=!0,preserveDrawingBuffer:at=!1,powerPreference:lt="default",failIfMajorPerformanceCaveat:ut=!1}=o;this.isWebGLRenderer=!0;let dt;if(tt!==null){if(typeof WebGLRenderingContext<"u"&&tt instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");dt=tt.getContextAttributes().alpha}else dt=it;const ht=new Uint32Array(4),ct=new Int32Array(4);let pt=null,ft=null;const gt=[],yt=[];this.domElement=et,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=SRGBColorSpace$1,this.toneMapping=NoToneMapping,this.toneMappingExposure=1;const Ut=this;let Ft=!1,mt=0,vt=0,At=null,Lt=-1,Rt=null;const St=new Vector4,Tt=new Vector4;let Bt=null;const xt=new Color$2(0);let Ct=0,kt=et.width,Nt=et.height,Ot=1,Wt=null,Dt=null;const Et=new Vector4(0,0,kt,Nt),Pt=new Vector4(0,0,kt,Nt);let zt=!1;const en=new Frustum;let Kt=!1,nn=!1;const Zt=new Matrix4,jt=new Vector3,Vt={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let It=!1;function $t(){return At===null?Ot:1}let Ht=tt;function qt(Nn,rr){return et.getContext(Nn,rr)}try{const Nn={alpha:!0,depth:nt,stencil:rt,antialias:ot,premultipliedAlpha:st,preserveDrawingBuffer:at,powerPreference:lt,failIfMajorPerformanceCaveat:ut};if("setAttribute"in et&&et.setAttribute("data-engine",`three.js r${REVISION}`),et.addEventListener("webglcontextlost",un,!1),et.addEventListener("webglcontextrestored",pn,!1),et.addEventListener("webglcontextcreationerror",Qn,!1),Ht===null){const rr="webgl2";if(Ht=qt(rr,Nn),Ht===null)throw qt(rr)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(Nn){throw console.error("THREE.WebGLRenderer: "+Nn.message),Nn}let on,Xt,dn,_n,Fn,Un,On,gn,hn,wn,Zn,Pn,$n,Tr,Qr,_r,Ir,Wr,qr,Uo,eo,Yr,_o,ro;function Fo(){on=new WebGLExtensions(Ht),on.init(),Yr=new WebGLUtils(Ht,on),Xt=new WebGLCapabilities(Ht,on,o,Yr),dn=new WebGLState(Ht),_n=new WebGLInfo(Ht),Fn=new WebGLProperties,Un=new WebGLTextures(Ht,on,dn,Fn,Xt,Yr,_n),On=new WebGLCubeMaps(Ut),gn=new WebGLCubeUVMaps(Ut),hn=new WebGLAttributes(Ht),_o=new WebGLBindingStates(Ht,hn),wn=new WebGLGeometries(Ht,hn,_n,_o),Zn=new WebGLObjects(Ht,wn,hn,_n),qr=new WebGLMorphtargets(Ht,Xt,Un),_r=new WebGLClipping(Fn),Pn=new WebGLPrograms(Ut,On,gn,on,Xt,_o,_r),$n=new WebGLMaterials(Ut,Fn),Tr=new WebGLRenderLists,Qr=new WebGLRenderStates(on),Wr=new WebGLBackground(Ut,On,gn,dn,Zn,dt,st),Ir=new WebGLShadowMap(Ut,Zn,Xt),ro=new WebGLUniformsGroups(Ht,_n,Xt,dn),Uo=new WebGLBufferRenderer(Ht,on,_n),eo=new WebGLIndexedBufferRenderer(Ht,on,_n),_n.programs=Pn.programs,Ut.capabilities=Xt,Ut.extensions=on,Ut.properties=Fn,Ut.renderLists=Tr,Ut.shadowMap=Ir,Ut.state=dn,Ut.info=_n}Fo();const kn=new WebXRManager(Ut,Ht);this.xr=kn,this.getContext=function(){return Ht},this.getContextAttributes=function(){return Ht.getContextAttributes()},this.forceContextLoss=function(){const Nn=on.get("WEBGL_lose_context");Nn&&Nn.loseContext()},this.forceContextRestore=function(){const Nn=on.get("WEBGL_lose_context");Nn&&Nn.restoreContext()},this.getPixelRatio=function(){return Ot},this.setPixelRatio=function(Nn){Nn!==void 0&&(Ot=Nn,this.setSize(kt,Nt,!1))},this.getSize=function(Nn){return Nn.set(kt,Nt)},this.setSize=function(Nn,rr,Rr=!0){if(kn.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}kt=Nn,Nt=rr,et.width=Math.floor(Nn*Ot),et.height=Math.floor(rr*Ot),Rr===!0&&(et.style.width=Nn+"px",et.style.height=rr+"px"),this.setViewport(0,0,Nn,rr)},this.getDrawingBufferSize=function(Nn){return Nn.set(kt*Ot,Nt*Ot).floor()},this.setDrawingBufferSize=function(Nn,rr,Rr){kt=Nn,Nt=rr,Ot=Rr,et.width=Math.floor(Nn*Rr),et.height=Math.floor(rr*Rr),this.setViewport(0,0,Nn,rr)},this.getCurrentViewport=function(Nn){return Nn.copy(St)},this.getViewport=function(Nn){return Nn.copy(Et)},this.setViewport=function(Nn,rr,Rr,vr){Nn.isVector4?Et.set(Nn.x,Nn.y,Nn.z,Nn.w):Et.set(Nn,rr,Rr,vr),dn.viewport(St.copy(Et).multiplyScalar(Ot).round())},this.getScissor=function(Nn){return Nn.copy(Pt)},this.setScissor=function(Nn,rr,Rr,vr){Nn.isVector4?Pt.set(Nn.x,Nn.y,Nn.z,Nn.w):Pt.set(Nn,rr,Rr,vr),dn.scissor(Tt.copy(Pt).multiplyScalar(Ot).round())},this.getScissorTest=function(){return zt},this.setScissorTest=function(Nn){dn.setScissorTest(zt=Nn)},this.setOpaqueSort=function(Nn){Wt=Nn},this.setTransparentSort=function(Nn){Dt=Nn},this.getClearColor=function(Nn){return Nn.copy(Wr.getClearColor())},this.setClearColor=function(){Wr.setClearColor.apply(Wr,arguments)},this.getClearAlpha=function(){return Wr.getClearAlpha()},this.setClearAlpha=function(){Wr.setClearAlpha.apply(Wr,arguments)},this.clear=function(Nn=!0,rr=!0,Rr=!0){let vr=0;if(Nn){let fr=!1;if(At!==null){const zr=At.texture.format;fr=zr===RGBAIntegerFormat||zr===RGIntegerFormat||zr===RedIntegerFormat}if(fr){const zr=At.texture.type,Gr=zr===UnsignedByteType||zr===UnsignedIntType||zr===UnsignedShortType||zr===UnsignedInt248Type||zr===UnsignedShort4444Type||zr===UnsignedShort5551Type,Pr=Wr.getClearColor(),oo=Wr.getClearAlpha(),ao=Pr.r,mo=Pr.g,lo=Pr.b;Gr?(ht[0]=ao,ht[1]=mo,ht[2]=lo,ht[3]=oo,Ht.clearBufferuiv(Ht.COLOR,0,ht)):(ct[0]=ao,ct[1]=mo,ct[2]=lo,ct[3]=oo,Ht.clearBufferiv(Ht.COLOR,0,ct))}else vr|=Ht.COLOR_BUFFER_BIT}rr&&(vr|=Ht.DEPTH_BUFFER_BIT),Rr&&(vr|=Ht.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),Ht.clear(vr)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){et.removeEventListener("webglcontextlost",un,!1),et.removeEventListener("webglcontextrestored",pn,!1),et.removeEventListener("webglcontextcreationerror",Qn,!1),Tr.dispose(),Qr.dispose(),Fn.dispose(),On.dispose(),gn.dispose(),Zn.dispose(),_o.dispose(),ro.dispose(),Pn.dispose(),kn.dispose(),kn.removeEventListener("sessionstart",ar),kn.removeEventListener("sessionend",hr),cn.stop()};function un(Nn){Nn.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),Ft=!0}function pn(){console.log("THREE.WebGLRenderer: Context Restored."),Ft=!1;const Nn=_n.autoReset,rr=Ir.enabled,Rr=Ir.autoUpdate,vr=Ir.needsUpdate,fr=Ir.type;Fo(),_n.autoReset=Nn,Ir.enabled=rr,Ir.autoUpdate=Rr,Ir.needsUpdate=vr,Ir.type=fr}function Qn(Nn){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",Nn.statusMessage)}function Wn(Nn){const rr=Nn.target;rr.removeEventListener("dispose",Wn),jn(rr)}function jn(Nn){Fr(Nn),Fn.remove(Nn)}function Fr(Nn){const rr=Fn.get(Nn).programs;rr!==void 0&&(rr.forEach(function(Rr){Pn.releaseProgram(Rr)}),Nn.isShaderMaterial&&Pn.releaseShaderCache(Nn))}this.renderBufferDirect=function(Nn,rr,Rr,vr,fr,zr){rr===null&&(rr=Vt);const Gr=fr.isMesh&&fr.matrixWorld.determinant()<0,Pr=nr(Nn,rr,Rr,vr,fr);dn.setMaterial(vr,Gr);let oo=Rr.index,ao=1;if(vr.wireframe===!0){if(oo=wn.getWireframeAttribute(Rr),oo===void 0)return;ao=2}const mo=Rr.drawRange,lo=Rr.attributes.position;let To=mo.start*ao,Jo=(mo.start+mo.count)*ao;zr!==null&&(To=Math.max(To,zr.start*ao),Jo=Math.min(Jo,(zr.start+zr.count)*ao)),oo!==null?(To=Math.max(To,0),Jo=Math.min(Jo,oo.count)):lo!=null&&(To=Math.max(To,0),Jo=Math.min(Jo,lo.count));const Go=Jo-To;if(Go<0||Go===1/0)return;_o.setup(fr,vr,Pr,Rr,oo);let cs,So=Uo;if(oo!==null&&(cs=hn.get(oo),So=eo,So.setIndex(cs)),fr.isMesh)vr.wireframe===!0?(dn.setLineWidth(vr.wireframeLinewidth*$t()),So.setMode(Ht.LINES)):So.setMode(Ht.TRIANGLES);else if(fr.isLine){let so=vr.linewidth;so===void 0&&(so=1),dn.setLineWidth(so*$t()),fr.isLineSegments?So.setMode(Ht.LINES):fr.isLineLoop?So.setMode(Ht.LINE_LOOP):So.setMode(Ht.LINE_STRIP)}else fr.isPoints?So.setMode(Ht.POINTS):fr.isSprite&&So.setMode(Ht.TRIANGLES);if(fr.isBatchedMesh)fr._multiDrawInstances!==null?So.renderMultiDrawInstances(fr._multiDrawStarts,fr._multiDrawCounts,fr._multiDrawCount,fr._multiDrawInstances):So.renderMultiDraw(fr._multiDrawStarts,fr._multiDrawCounts,fr._multiDrawCount);else if(fr.isInstancedMesh)So.renderInstances(To,Go,fr.count);else if(Rr.isInstancedBufferGeometry){const so=Rr._maxInstanceCount!==void 0?Rr._maxInstanceCount:1/0,Bo=Math.min(Rr.instanceCount,so);So.renderInstances(To,Go,Bo)}else So.render(To,Go)};function Er(Nn,rr,Rr){Nn.transparent===!0&&Nn.side===DoubleSide&&Nn.forceSinglePass===!1?(Nn.side=BackSide,Nn.needsUpdate=!0,gr(Nn,rr,Rr),Nn.side=FrontSide,Nn.needsUpdate=!0,gr(Nn,rr,Rr),Nn.side=DoubleSide):gr(Nn,rr,Rr)}this.compile=function(Nn,rr,Rr=null){Rr===null&&(Rr=Nn),ft=Qr.get(Rr),ft.init(rr),yt.push(ft),Rr.traverseVisible(function(fr){fr.isLight&&fr.layers.test(rr.layers)&&(ft.pushLight(fr),fr.castShadow&&ft.pushShadow(fr))}),Nn!==Rr&&Nn.traverseVisible(function(fr){fr.isLight&&fr.layers.test(rr.layers)&&(ft.pushLight(fr),fr.castShadow&&ft.pushShadow(fr))}),ft.setupLights();const vr=new Set;return Nn.traverse(function(fr){const zr=fr.material;if(zr)if(Array.isArray(zr))for(let Gr=0;Gr{function zr(){if(vr.forEach(function(Gr){Fn.get(Gr).currentProgram.isReady()&&vr.delete(Gr)}),vr.size===0){fr(Nn);return}setTimeout(zr,10)}on.get("KHR_parallel_shader_compile")!==null?zr():setTimeout(zr,10)})};let wr=null;function tr(Nn){wr&&wr(Nn)}function ar(){cn.stop()}function hr(){cn.start()}const cn=new WebGLAnimation;cn.setAnimationLoop(tr),typeof self<"u"&&cn.setContext(self),this.setAnimationLoop=function(Nn){wr=Nn,kn.setAnimationLoop(Nn),Nn===null?cn.stop():cn.start()},kn.addEventListener("sessionstart",ar),kn.addEventListener("sessionend",hr),this.render=function(Nn,rr){if(rr!==void 0&&rr.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(Ft===!0)return;if(Nn.matrixWorldAutoUpdate===!0&&Nn.updateMatrixWorld(),rr.parent===null&&rr.matrixWorldAutoUpdate===!0&&rr.updateMatrixWorld(),kn.enabled===!0&&kn.isPresenting===!0&&(kn.cameraAutoUpdate===!0&&kn.updateCamera(rr),rr=kn.getCamera()),Nn.isScene===!0&&Nn.onBeforeRender(Ut,Nn,rr,At),ft=Qr.get(Nn,yt.length),ft.init(rr),yt.push(ft),Zt.multiplyMatrices(rr.projectionMatrix,rr.matrixWorldInverse),en.setFromProjectionMatrix(Zt),nn=this.localClippingEnabled,Kt=_r.init(this.clippingPlanes,nn),pt=Tr.get(Nn,gt.length),pt.init(),gt.push(pt),kn.enabled===!0&&kn.isPresenting===!0){const zr=Ut.xr.getDepthSensingMesh();zr!==null&&mn(zr,rr,-1/0,Ut.sortObjects)}mn(Nn,rr,0,Ut.sortObjects),pt.finish(),Ut.sortObjects===!0&&pt.sort(Wt,Dt),It=kn.enabled===!1||kn.isPresenting===!1||kn.hasDepthSensing()===!1,It&&Wr.addToRenderList(pt,Nn),this.info.render.frame++,Kt===!0&&_r.beginShadows();const Rr=ft.state.shadowsArray;Ir.render(Rr,Nn,rr),Kt===!0&&_r.endShadows(),this.info.autoReset===!0&&this.info.reset();const vr=pt.opaque,fr=pt.transmissive;if(ft.setupLights(),rr.isArrayCamera){const zr=rr.cameras;if(fr.length>0)for(let Gr=0,Pr=zr.length;Gr0&&Gn(vr,fr,Nn,rr),It&&Wr.render(Nn),xn(pt,Nn,rr);At!==null&&(Un.updateMultisampleRenderTarget(At),Un.updateRenderTargetMipmap(At)),Nn.isScene===!0&&Nn.onAfterRender(Ut,Nn,rr),_o.resetDefaultState(),Lt=-1,Rt=null,yt.pop(),yt.length>0?(ft=yt[yt.length-1],Kt===!0&&_r.setGlobalState(Ut.clippingPlanes,ft.state.camera)):ft=null,gt.pop(),gt.length>0?pt=gt[gt.length-1]:pt=null};function mn(Nn,rr,Rr,vr){if(Nn.visible===!1)return;if(Nn.layers.test(rr.layers)){if(Nn.isGroup)Rr=Nn.renderOrder;else if(Nn.isLOD)Nn.autoUpdate===!0&&Nn.update(rr);else if(Nn.isLight)ft.pushLight(Nn),Nn.castShadow&&ft.pushShadow(Nn);else if(Nn.isSprite){if(!Nn.frustumCulled||en.intersectsSprite(Nn)){vr&&jt.setFromMatrixPosition(Nn.matrixWorld).applyMatrix4(Zt);const Gr=Zn.update(Nn),Pr=Nn.material;Pr.visible&&pt.push(Nn,Gr,Pr,Rr,jt.z,null)}}else if((Nn.isMesh||Nn.isLine||Nn.isPoints)&&(!Nn.frustumCulled||en.intersectsObject(Nn))){const Gr=Zn.update(Nn),Pr=Nn.material;if(vr&&(Nn.boundingSphere!==void 0?(Nn.boundingSphere===null&&Nn.computeBoundingSphere(),jt.copy(Nn.boundingSphere.center)):(Gr.boundingSphere===null&&Gr.computeBoundingSphere(),jt.copy(Gr.boundingSphere.center)),jt.applyMatrix4(Nn.matrixWorld).applyMatrix4(Zt)),Array.isArray(Pr)){const oo=Gr.groups;for(let ao=0,mo=oo.length;ao0&&er(fr,rr,Rr),zr.length>0&&er(zr,rr,Rr),Gr.length>0&&er(Gr,rr,Rr),dn.buffers.depth.setTest(!0),dn.buffers.depth.setMask(!0),dn.buffers.color.setMask(!0),dn.setPolygonOffset(!1)}function Gn(Nn,rr,Rr,vr){if((Rr.isScene===!0?Rr.overrideMaterial:null)!==null)return;ft.state.transmissionRenderTarget[vr.id]===void 0&&(ft.state.transmissionRenderTarget[vr.id]=new WebGLRenderTarget(1,1,{generateMipmaps:!0,type:on.has("EXT_color_buffer_half_float")||on.has("EXT_color_buffer_float")?HalfFloatType:UnsignedByteType,minFilter:LinearMipmapLinearFilter,samples:4,stencilBuffer:rt,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:ColorManagement.workingColorSpace}));const zr=ft.state.transmissionRenderTarget[vr.id],Gr=vr.viewport||St;zr.setSize(Gr.z,Gr.w);const Pr=Ut.getRenderTarget();Ut.setRenderTarget(zr),Ut.getClearColor(xt),Ct=Ut.getClearAlpha(),Ct<1&&Ut.setClearColor(16777215,.5),It?Wr.render(Rr):Ut.clear();const oo=Ut.toneMapping;Ut.toneMapping=NoToneMapping;const ao=vr.viewport;if(vr.viewport!==void 0&&(vr.viewport=void 0),ft.setupLightsView(vr),Kt===!0&&_r.setGlobalState(Ut.clippingPlanes,vr),er(Nn,Rr,vr),Un.updateMultisampleRenderTarget(zr),Un.updateRenderTargetMipmap(zr),on.has("WEBGL_multisampled_render_to_texture")===!1){let mo=!1;for(let lo=0,To=rr.length;lo0),lo=!!Rr.morphAttributes.position,To=!!Rr.morphAttributes.normal,Jo=!!Rr.morphAttributes.color;let Go=NoToneMapping;vr.toneMapped&&(At===null||At.isXRRenderTarget===!0)&&(Go=Ut.toneMapping);const cs=Rr.morphAttributes.position||Rr.morphAttributes.normal||Rr.morphAttributes.color,So=cs!==void 0?cs.length:0,so=Fn.get(vr),Bo=ft.state.lights;if(Kt===!0&&(nn===!0||Nn!==Rt)){const No=Nn===Rt&&vr.id===Lt;_r.setState(vr,Nn,No)}let Io=!1;vr.version===so.__version?(so.needsLights&&so.lightsStateVersion!==Bo.state.version||so.outputColorSpace!==Pr||fr.isBatchedMesh&&so.batching===!1||!fr.isBatchedMesh&&so.batching===!0||fr.isBatchedMesh&&so.batchingColor===!0&&fr.colorTexture===null||fr.isBatchedMesh&&so.batchingColor===!1&&fr.colorTexture!==null||fr.isInstancedMesh&&so.instancing===!1||!fr.isInstancedMesh&&so.instancing===!0||fr.isSkinnedMesh&&so.skinning===!1||!fr.isSkinnedMesh&&so.skinning===!0||fr.isInstancedMesh&&so.instancingColor===!0&&fr.instanceColor===null||fr.isInstancedMesh&&so.instancingColor===!1&&fr.instanceColor!==null||fr.isInstancedMesh&&so.instancingMorph===!0&&fr.morphTexture===null||fr.isInstancedMesh&&so.instancingMorph===!1&&fr.morphTexture!==null||so.envMap!==oo||vr.fog===!0&&so.fog!==zr||so.numClippingPlanes!==void 0&&(so.numClippingPlanes!==_r.numPlanes||so.numIntersection!==_r.numIntersection)||so.vertexAlphas!==ao||so.vertexTangents!==mo||so.morphTargets!==lo||so.morphNormals!==To||so.morphColors!==Jo||so.toneMapping!==Go||so.morphTargetsCount!==So)&&(Io=!0):(Io=!0,so.__version=vr.version);let ns=so.currentProgram;Io===!0&&(ns=gr(vr,rr,fr));let ps=!1,gs=!1,bs=!1;const Lo=ns.getUniforms(),Qs=so.uniforms;if(dn.useProgram(ns.program)&&(ps=!0,gs=!0,bs=!0),vr.id!==Lt&&(Lt=vr.id,gs=!0),ps||Rt!==Nn){Lo.setValue(Ht,"projectionMatrix",Nn.projectionMatrix),Lo.setValue(Ht,"viewMatrix",Nn.matrixWorldInverse);const No=Lo.map.cameraPosition;No!==void 0&&No.setValue(Ht,jt.setFromMatrixPosition(Nn.matrixWorld)),Xt.logarithmicDepthBuffer&&Lo.setValue(Ht,"logDepthBufFC",2/(Math.log(Nn.far+1)/Math.LN2)),(vr.isMeshPhongMaterial||vr.isMeshToonMaterial||vr.isMeshLambertMaterial||vr.isMeshBasicMaterial||vr.isMeshStandardMaterial||vr.isShaderMaterial)&&Lo.setValue(Ht,"isOrthographic",Nn.isOrthographicCamera===!0),Rt!==Nn&&(Rt=Nn,gs=!0,bs=!0)}if(fr.isSkinnedMesh){Lo.setOptional(Ht,fr,"bindMatrix"),Lo.setOptional(Ht,fr,"bindMatrixInverse");const No=fr.skeleton;No&&(No.boneTexture===null&&No.computeBoneTexture(),Lo.setValue(Ht,"boneTexture",No.boneTexture,Un))}fr.isBatchedMesh&&(Lo.setOptional(Ht,fr,"batchingTexture"),Lo.setValue(Ht,"batchingTexture",fr._matricesTexture,Un),Lo.setOptional(Ht,fr,"batchingColorTexture"),fr._colorsTexture!==null&&Lo.setValue(Ht,"batchingColorTexture",fr._colorsTexture,Un));const Ps=Rr.morphAttributes;if((Ps.position!==void 0||Ps.normal!==void 0||Ps.color!==void 0)&&qr.update(fr,Rr,ns),(gs||so.receiveShadow!==fr.receiveShadow)&&(so.receiveShadow=fr.receiveShadow,Lo.setValue(Ht,"receiveShadow",fr.receiveShadow)),vr.isMeshGouraudMaterial&&vr.envMap!==null&&(Qs.envMap.value=oo,Qs.flipEnvMap.value=oo.isCubeTexture&&oo.isRenderTargetTexture===!1?-1:1),vr.isMeshStandardMaterial&&vr.envMap===null&&rr.environment!==null&&(Qs.envMapIntensity.value=rr.environmentIntensity),gs&&(Lo.setValue(Ht,"toneMappingExposure",Ut.toneMappingExposure),so.needsLights&&Kr(Qs,bs),zr&&vr.fog===!0&&$n.refreshFogUniforms(Qs,zr),$n.refreshMaterialUniforms(Qs,vr,Ot,Nt,ft.state.transmissionRenderTarget[Nn.id]),WebGLUniforms.upload(Ht,br(so),Qs,Un)),vr.isShaderMaterial&&vr.uniformsNeedUpdate===!0&&(WebGLUniforms.upload(Ht,br(so),Qs,Un),vr.uniformsNeedUpdate=!1),vr.isSpriteMaterial&&Lo.setValue(Ht,"center",fr.center),Lo.setValue(Ht,"modelViewMatrix",fr.modelViewMatrix),Lo.setValue(Ht,"normalMatrix",fr.normalMatrix),Lo.setValue(Ht,"modelMatrix",fr.matrixWorld),vr.isShaderMaterial||vr.isRawShaderMaterial){const No=vr.uniformsGroups;for(let ys=0,Ns=No.length;ys0&&Un.useMultisampledRTT(Nn)===!1?fr=Fn.get(Nn).__webglMultisampledFramebuffer:Array.isArray(mo)?fr=mo[Rr]:fr=mo,St.copy(Nn.viewport),Tt.copy(Nn.scissor),Bt=Nn.scissorTest}else St.copy(Et).multiplyScalar(Ot).floor(),Tt.copy(Pt).multiplyScalar(Ot).floor(),Bt=zt;if(dn.bindFramebuffer(Ht.FRAMEBUFFER,fr)&&vr&&dn.drawBuffers(Nn,fr),dn.viewport(St),dn.scissor(Tt),dn.setScissorTest(Bt),zr){const oo=Fn.get(Nn.texture);Ht.framebufferTexture2D(Ht.FRAMEBUFFER,Ht.COLOR_ATTACHMENT0,Ht.TEXTURE_CUBE_MAP_POSITIVE_X+rr,oo.__webglTexture,Rr)}else if(Gr){const oo=Fn.get(Nn.texture),ao=rr||0;Ht.framebufferTextureLayer(Ht.FRAMEBUFFER,Ht.COLOR_ATTACHMENT0,oo.__webglTexture,Rr||0,ao)}Lt=-1},this.readRenderTargetPixels=function(Nn,rr,Rr,vr,fr,zr,Gr){if(!(Nn&&Nn.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Pr=Fn.get(Nn).__webglFramebuffer;if(Nn.isWebGLCubeRenderTarget&&Gr!==void 0&&(Pr=Pr[Gr]),Pr){dn.bindFramebuffer(Ht.FRAMEBUFFER,Pr);try{const oo=Nn.texture,ao=oo.format,mo=oo.type;if(!Xt.textureFormatReadable(ao)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!Xt.textureTypeReadable(mo)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}rr>=0&&rr<=Nn.width-vr&&Rr>=0&&Rr<=Nn.height-fr&&Ht.readPixels(rr,Rr,vr,fr,Yr.convert(ao),Yr.convert(mo),zr)}finally{const oo=At!==null?Fn.get(At).__webglFramebuffer:null;dn.bindFramebuffer(Ht.FRAMEBUFFER,oo)}}},this.readRenderTargetPixelsAsync=async function(Nn,rr,Rr,vr,fr,zr,Gr){if(!(Nn&&Nn.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Pr=Fn.get(Nn).__webglFramebuffer;if(Nn.isWebGLCubeRenderTarget&&Gr!==void 0&&(Pr=Pr[Gr]),Pr){dn.bindFramebuffer(Ht.FRAMEBUFFER,Pr);try{const oo=Nn.texture,ao=oo.format,mo=oo.type;if(!Xt.textureFormatReadable(ao))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!Xt.textureTypeReadable(mo))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(rr>=0&&rr<=Nn.width-vr&&Rr>=0&&Rr<=Nn.height-fr){const lo=Ht.createBuffer();Ht.bindBuffer(Ht.PIXEL_PACK_BUFFER,lo),Ht.bufferData(Ht.PIXEL_PACK_BUFFER,zr.byteLength,Ht.STREAM_READ),Ht.readPixels(rr,Rr,vr,fr,Yr.convert(ao),Yr.convert(mo),0),Ht.flush();const To=Ht.fenceSync(Ht.SYNC_GPU_COMMANDS_COMPLETE,0);await probeAsync(Ht,To,4);try{Ht.bindBuffer(Ht.PIXEL_PACK_BUFFER,lo),Ht.getBufferSubData(Ht.PIXEL_PACK_BUFFER,0,zr)}finally{Ht.deleteBuffer(lo),Ht.deleteSync(To)}return zr}}finally{const oo=At!==null?Fn.get(At).__webglFramebuffer:null;dn.bindFramebuffer(Ht.FRAMEBUFFER,oo)}}},this.copyFramebufferToTexture=function(Nn,rr=null,Rr=0){Nn.isTexture!==!0&&(console.warn("WebGLRenderer: copyFramebufferToTexture function signature has changed."),rr=arguments[0]||null,Nn=arguments[1]);const vr=Math.pow(2,-Rr),fr=Math.floor(Nn.image.width*vr),zr=Math.floor(Nn.image.height*vr),Gr=rr!==null?rr.x:0,Pr=rr!==null?rr.y:0;Un.setTexture2D(Nn,0),Ht.copyTexSubImage2D(Ht.TEXTURE_2D,Rr,0,0,Gr,Pr,fr,zr),dn.unbindTexture()},this.copyTextureToTexture=function(Nn,rr,Rr=null,vr=null,fr=0){Nn.isTexture!==!0&&(console.warn("WebGLRenderer: copyTextureToTexture function signature has changed."),vr=arguments[0]||null,Nn=arguments[1],rr=arguments[2],fr=arguments[3]||0,Rr=null);let zr,Gr,Pr,oo,ao,mo;Rr!==null?(zr=Rr.max.x-Rr.min.x,Gr=Rr.max.y-Rr.min.y,Pr=Rr.min.x,oo=Rr.min.y):(zr=Nn.image.width,Gr=Nn.image.height,Pr=0,oo=0),vr!==null?(ao=vr.x,mo=vr.y):(ao=0,mo=0);const lo=Yr.convert(rr.format),To=Yr.convert(rr.type);Un.setTexture2D(rr,0),Ht.pixelStorei(Ht.UNPACK_FLIP_Y_WEBGL,rr.flipY),Ht.pixelStorei(Ht.UNPACK_PREMULTIPLY_ALPHA_WEBGL,rr.premultiplyAlpha),Ht.pixelStorei(Ht.UNPACK_ALIGNMENT,rr.unpackAlignment);const Jo=Ht.getParameter(Ht.UNPACK_ROW_LENGTH),Go=Ht.getParameter(Ht.UNPACK_IMAGE_HEIGHT),cs=Ht.getParameter(Ht.UNPACK_SKIP_PIXELS),So=Ht.getParameter(Ht.UNPACK_SKIP_ROWS),so=Ht.getParameter(Ht.UNPACK_SKIP_IMAGES),Bo=Nn.isCompressedTexture?Nn.mipmaps[fr]:Nn.image;Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Bo.width),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Bo.height),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,Pr),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,oo),Nn.isDataTexture?Ht.texSubImage2D(Ht.TEXTURE_2D,fr,ao,mo,zr,Gr,lo,To,Bo.data):Nn.isCompressedTexture?Ht.compressedTexSubImage2D(Ht.TEXTURE_2D,fr,ao,mo,Bo.width,Bo.height,lo,Bo.data):Ht.texSubImage2D(Ht.TEXTURE_2D,fr,ao,mo,lo,To,Bo),Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Jo),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Go),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,cs),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,So),Ht.pixelStorei(Ht.UNPACK_SKIP_IMAGES,so),fr===0&&rr.generateMipmaps&&Ht.generateMipmap(Ht.TEXTURE_2D),dn.unbindTexture()},this.copyTextureToTexture3D=function(Nn,rr,Rr=null,vr=null,fr=0){Nn.isTexture!==!0&&(console.warn("WebGLRenderer: copyTextureToTexture3D function signature has changed."),Rr=arguments[0]||null,vr=arguments[1]||null,Nn=arguments[2],rr=arguments[3],fr=arguments[4]||0);let zr,Gr,Pr,oo,ao,mo,lo,To,Jo;const Go=Nn.isCompressedTexture?Nn.mipmaps[fr]:Nn.image;Rr!==null?(zr=Rr.max.x-Rr.min.x,Gr=Rr.max.y-Rr.min.y,Pr=Rr.max.z-Rr.min.z,oo=Rr.min.x,ao=Rr.min.y,mo=Rr.min.z):(zr=Go.width,Gr=Go.height,Pr=Go.depth,oo=0,ao=0,mo=0),vr!==null?(lo=vr.x,To=vr.y,Jo=vr.z):(lo=0,To=0,Jo=0);const cs=Yr.convert(rr.format),So=Yr.convert(rr.type);let so;if(rr.isData3DTexture)Un.setTexture3D(rr,0),so=Ht.TEXTURE_3D;else if(rr.isDataArrayTexture||rr.isCompressedArrayTexture)Un.setTexture2DArray(rr,0),so=Ht.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}Ht.pixelStorei(Ht.UNPACK_FLIP_Y_WEBGL,rr.flipY),Ht.pixelStorei(Ht.UNPACK_PREMULTIPLY_ALPHA_WEBGL,rr.premultiplyAlpha),Ht.pixelStorei(Ht.UNPACK_ALIGNMENT,rr.unpackAlignment);const Bo=Ht.getParameter(Ht.UNPACK_ROW_LENGTH),Io=Ht.getParameter(Ht.UNPACK_IMAGE_HEIGHT),ns=Ht.getParameter(Ht.UNPACK_SKIP_PIXELS),ps=Ht.getParameter(Ht.UNPACK_SKIP_ROWS),gs=Ht.getParameter(Ht.UNPACK_SKIP_IMAGES);Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Go.width),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Go.height),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,oo),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,ao),Ht.pixelStorei(Ht.UNPACK_SKIP_IMAGES,mo),Nn.isDataTexture||Nn.isData3DTexture?Ht.texSubImage3D(so,fr,lo,To,Jo,zr,Gr,Pr,cs,So,Go.data):rr.isCompressedArrayTexture?Ht.compressedTexSubImage3D(so,fr,lo,To,Jo,zr,Gr,Pr,cs,Go.data):Ht.texSubImage3D(so,fr,lo,To,Jo,zr,Gr,Pr,cs,So,Go),Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Bo),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Io),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,ns),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,ps),Ht.pixelStorei(Ht.UNPACK_SKIP_IMAGES,gs),fr===0&&rr.generateMipmaps&&Ht.generateMipmap(so),dn.unbindTexture()},this.initRenderTarget=function(Nn){Fn.get(Nn).__webglFramebuffer===void 0&&Un.setupRenderTarget(Nn)},this.initTexture=function(Nn){Nn.isCubeTexture?Un.setTextureCube(Nn,0):Nn.isData3DTexture?Un.setTexture3D(Nn,0):Nn.isDataArrayTexture||Nn.isCompressedArrayTexture?Un.setTexture2DArray(Nn,0):Un.setTexture2D(Nn,0),dn.unbindTexture()},this.resetState=function(){mt=0,vt=0,At=null,dn.reset(),_o.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return WebGLCoordinateSystem}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(o){this._outputColorSpace=o;const et=this.getContext();et.drawingBufferColorSpace=o===DisplayP3ColorSpace?"display-p3":"srgb",et.unpackColorSpace=ColorManagement.workingColorSpace===LinearDisplayP3ColorSpace?"display-p3":"srgb"}}class FogExp2{constructor(o,et=25e-5){this.isFogExp2=!0,this.name="",this.color=new Color$2(o),this.density=et}clone(){return new FogExp2(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Fog{constructor(o,et=1,tt=1e3){this.isFog=!0,this.name="",this.color=new Color$2(o),this.near=et,this.far=tt}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Scene extends Object3D{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Euler,this.environmentIntensity=1,this.environmentRotation=new Euler,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(o,et){return super.copy(o,et),o.background!==null&&(this.background=o.background.clone()),o.environment!==null&&(this.environment=o.environment.clone()),o.fog!==null&&(this.fog=o.fog.clone()),this.backgroundBlurriness=o.backgroundBlurriness,this.backgroundIntensity=o.backgroundIntensity,this.backgroundRotation.copy(o.backgroundRotation),this.environmentIntensity=o.environmentIntensity,this.environmentRotation.copy(o.environmentRotation),o.overrideMaterial!==null&&(this.overrideMaterial=o.overrideMaterial.clone()),this.matrixAutoUpdate=o.matrixAutoUpdate,this}toJSON(o){const et=super.toJSON(o);return this.fog!==null&&(et.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(et.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(et.object.backgroundIntensity=this.backgroundIntensity),et.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(et.object.environmentIntensity=this.environmentIntensity),et.object.environmentRotation=this.environmentRotation.toArray(),et}}class InterleavedBuffer{constructor(o,et){this.isInterleavedBuffer=!0,this.array=o,this.stride=et,this.count=o!==void 0?o.length/et:0,this.usage=StaticDrawUsage,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=generateUUID()}onUploadCallback(){}set needsUpdate(o){o===!0&&this.version++}get updateRange(){return warnOnce("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(o){return this.usage=o,this}addUpdateRange(o,et){this.updateRanges.push({start:o,count:et})}clearUpdateRanges(){this.updateRanges.length=0}copy(o){return this.array=new o.array.constructor(o.array),this.count=o.count,this.stride=o.stride,this.usage=o.usage,this}copyAt(o,et,tt){o*=this.stride,tt*=et.stride;for(let nt=0,rt=this.stride;nto.far||et.push({distance:st,point:_intersectPoint.clone(),uv:Triangle.getInterpolation(_intersectPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2),face:null,object:this})}copy(o,et){return super.copy(o,et),o.center!==void 0&&this.center.copy(o.center),this.material=o.material,this}}function transformVertex(s,o,et,tt,nt,rt){_alignedPosition.subVectors(s,et).addScalar(.5).multiply(tt),nt!==void 0?(_rotatedPosition.x=rt*_alignedPosition.x-nt*_alignedPosition.y,_rotatedPosition.y=nt*_alignedPosition.x+rt*_alignedPosition.y):_rotatedPosition.copy(_alignedPosition),s.copy(o),s.x+=_rotatedPosition.x,s.y+=_rotatedPosition.y,s.applyMatrix4(_viewWorldMatrix)}const _v1$2=new Vector3,_v2$1=new Vector3;class LOD extends Object3D{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(o){super.copy(o,!1);const et=o.levels;for(let tt=0,nt=et.length;tt0){let tt,nt;for(tt=1,nt=et.length;tt0){_v1$2.setFromMatrixPosition(this.matrixWorld);const nt=o.ray.origin.distanceTo(_v1$2);this.getObjectForDistance(nt).raycast(o,et)}}update(o){const et=this.levels;if(et.length>1){_v1$2.setFromMatrixPosition(o.matrixWorld),_v2$1.setFromMatrixPosition(this.matrixWorld);const tt=_v1$2.distanceTo(_v2$1)/o.zoom;et[0].object.visible=!0;let nt,rt;for(nt=1,rt=et.length;nt=it)et[nt-1].object.visible=!1,et[nt].object.visible=!0;else break}for(this._currentLevel=nt-1;nt=tt.length&&tt.push({start:-1,count:-1,z:-1});const rt=tt[this.index];nt.push(rt),this.index++,rt.start=o.start,rt.count=o.count,rt.z=et}reset(){this.list.length=0,this.index=0}}const ID_ATTR_NAME="batchId",_matrix$1=new Matrix4,_invMatrixWorld=new Matrix4,_identityMatrix$2=new Matrix4,_whiteColor=new Color$2(1,1,1),_projScreenMatrix$2=new Matrix4,_frustum=new Frustum,_box$1$1=new Box3,_sphere$2=new Sphere$1,_vector$5=new Vector3,_forward=new Vector3,_temp=new Vector3,_renderList=new MultiDrawRenderList,_mesh=new Mesh,_batchIntersects=[];function copyAttributeData(s,o,et=0){const tt=o.itemSize;if(s.isInterleavedBufferAttribute||s.array.constructor!==o.array.constructor){const nt=s.count;for(let rt=0;rt65536?new Uint32Array(rt):new Uint16Array(rt);et.setIndex(new BufferAttribute(ot,1))}const it=nt>65536?new Uint32Array(tt):new Uint16Array(tt);et.setAttribute(ID_ATTR_NAME,new BufferAttribute(it,1)),this._geometryInitialized=!0}}_validateGeometry(o){if(o.getAttribute(ID_ATTR_NAME))throw new Error(`BatchedMesh: Geometry cannot use attribute "${ID_ATTR_NAME}"`);const et=this.geometry;if(!!o.getIndex()!=!!et.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const tt in et.attributes){if(tt===ID_ATTR_NAME)continue;if(!o.hasAttribute(tt))throw new Error(`BatchedMesh: Added geometry missing "${tt}". All geometries must have consistent attributes.`);const nt=o.getAttribute(tt),rt=et.getAttribute(tt);if(nt.itemSize!==rt.itemSize||nt.normalized!==rt.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(o){return this.customSort=o,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Box3);const o=this._geometryCount,et=this.boundingBox,tt=this._active;et.makeEmpty();for(let nt=0;nt=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const nt={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let rt=null;const it=this._reservedRanges,ot=this._drawRanges,st=this._bounds;this._geometryCount!==0&&(rt=it[it.length-1]),et===-1?nt.vertexCount=o.getAttribute("position").count:nt.vertexCount=et,rt===null?nt.vertexStart=0:nt.vertexStart=rt.vertexStart+rt.vertexCount;const at=o.getIndex(),lt=at!==null;if(lt&&(tt===-1?nt.indexCount=at.count:nt.indexCount=tt,rt===null?nt.indexStart=0:nt.indexStart=rt.indexStart+rt.indexCount),nt.indexStart!==-1&&nt.indexStart+nt.indexCount>this._maxIndexCount||nt.vertexStart+nt.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const ut=this._visibility,dt=this._active,ht=this._matricesTexture,ct=this._matricesTexture.image.data,pt=this._colorsTexture;ut.push(!0),dt.push(!0);const ft=this._geometryCount;this._geometryCount++,_identityMatrix$2.toArray(ct,ft*16),ht.needsUpdate=!0,pt!==null&&(_whiteColor.toArray(pt.image.data,ft*4),pt.needsUpdate=!0),it.push(nt),ot.push({start:lt?nt.indexStart:nt.vertexStart,count:-1}),st.push({boxInitialized:!1,box:new Box3,sphereInitialized:!1,sphere:new Sphere$1});const gt=this.geometry.getAttribute(ID_ATTR_NAME);for(let yt=0;yt=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(et);const tt=this.geometry,nt=tt.getIndex()!==null,rt=tt.getIndex(),it=et.getIndex(),ot=this._reservedRanges[o];if(nt&&it.count>ot.indexCount||et.attributes.position.count>ot.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const st=ot.vertexStart,at=ot.vertexCount;for(const ht in tt.attributes){if(ht===ID_ATTR_NAME)continue;const ct=et.getAttribute(ht),pt=tt.getAttribute(ht);copyAttributeData(ct,pt,st);const ft=ct.itemSize;for(let gt=ct.count,yt=at;gt=et.length||et[o]===!1?this:(et[o]=!1,this._visibilityChanged=!0,this)}getInstanceCountAt(o){return this._multiDrawInstances===null?null:this._multiDrawInstances[o]}setInstanceCountAt(o,et){return this._multiDrawInstances===null&&(this._multiDrawInstances=new Int32Array(this._maxGeometryCount).fill(1)),this._multiDrawInstances[o]=et,o}getBoundingBoxAt(o,et){if(this._active[o]===!1)return null;const nt=this._bounds[o],rt=nt.box,it=this.geometry;if(nt.boxInitialized===!1){rt.makeEmpty();const ot=it.index,st=it.attributes.position,at=this._drawRanges[o];for(let lt=at.start,ut=at.start+at.count;lt=it||tt[o]===!1?this:(et.toArray(rt,o*16),nt.needsUpdate=!0,this)}getMatrixAt(o,et){const tt=this._active,nt=this._matricesTexture.image.data,rt=this._geometryCount;return o>=rt||tt[o]===!1?null:et.fromArray(nt,o*16)}setColorAt(o,et){this._colorsTexture===null&&this._initColorsTexture();const tt=this._active,nt=this._colorsTexture,rt=this._colorsTexture.image.data,it=this._geometryCount;return o>=it||tt[o]===!1?this:(et.toArray(rt,o*4),nt.needsUpdate=!0,this)}getColorAt(o,et){const tt=this._active,nt=this._colorsTexture.image.data,rt=this._geometryCount;return o>=rt||tt[o]===!1?null:et.fromArray(nt,o*4)}setVisibleAt(o,et){const tt=this._visibility,nt=this._active,rt=this._geometryCount;return o>=rt||nt[o]===!1||tt[o]===et?this:(tt[o]=et,this._visibilityChanged=!0,this)}getVisibleAt(o){const et=this._visibility,tt=this._active,nt=this._geometryCount;return o>=nt||tt[o]===!1?!1:et[o]}raycast(o,et){const tt=this._visibility,nt=this._active,rt=this._drawRanges,it=this._geometryCount,ot=this.matrixWorld,st=this.geometry;_mesh.material=this.material,_mesh.geometry.index=st.index,_mesh.geometry.attributes=st.attributes,_mesh.geometry.boundingBox===null&&(_mesh.geometry.boundingBox=new Box3),_mesh.geometry.boundingSphere===null&&(_mesh.geometry.boundingSphere=new Sphere$1);for(let at=0;at({...et})),this._reservedRanges=o._reservedRanges.map(et=>({...et})),this._visibility=o._visibility.slice(),this._active=o._active.slice(),this._bounds=o._bounds.map(et=>({boxInitialized:et.boxInitialized,box:et.box.clone(),sphereInitialized:et.sphereInitialized,sphere:et.sphere.clone()})),this._maxGeometryCount=o._maxGeometryCount,this._maxVertexCount=o._maxVertexCount,this._maxIndexCount=o._maxIndexCount,this._geometryInitialized=o._geometryInitialized,this._geometryCount=o._geometryCount,this._multiDrawCounts=o._multiDrawCounts.slice(),this._multiDrawStarts=o._multiDrawStarts.slice(),this._matricesTexture=o._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this._colorsTexture!==null&&(this._colorsTexture=o._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.slice()),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null),this}onBeforeRender(o,et,tt,nt,rt){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const it=nt.getIndex(),ot=it===null?1:it.array.BYTES_PER_ELEMENT,st=this._active,at=this._visibility,lt=this._multiDrawStarts,ut=this._multiDrawCounts,dt=this._drawRanges,ht=this.perObjectFrustumCulled;ht&&(_projScreenMatrix$2.multiplyMatrices(tt.projectionMatrix,tt.matrixWorldInverse).multiply(this.matrixWorld),_frustum.setFromProjectionMatrix(_projScreenMatrix$2,o.coordinateSystem));let ct=0;if(this.sortObjects){_invMatrixWorld.copy(this.matrixWorld).invert(),_vector$5.setFromMatrixPosition(tt.matrixWorld).applyMatrix4(_invMatrixWorld),_forward.set(0,0,-1).transformDirection(tt.matrixWorld).transformDirection(_invMatrixWorld);for(let gt=0,yt=at.length;gt0){const nt=et[tt[0]];if(nt!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let rt=0,it=nt.length;rttt)return;_intersectPointOnRay.applyMatrix4(s.matrixWorld);const st=o.ray.origin.distanceTo(_intersectPointOnRay);if(!(sto.far))return{distance:st,point:_intersectPointOnSegment.clone().applyMatrix4(s.matrixWorld),index:nt,face:null,faceIndex:null,object:s}}const _start$1=new Vector3,_end$1=new Vector3;class LineSegments extends Line$1{constructor(o,et){super(o,et),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const o=this.geometry;if(o.index===null){const et=o.attributes.position,tt=[];for(let nt=0,rt=et.count;nt0){const nt=et[tt[0]];if(nt!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let rt=0,it=nt.length;rtnt.far)return;rt.push({distance:at,distanceToRay:Math.sqrt(ot),point:st,index:o,face:null,object:it})}}class VideoTexture extends Texture{constructor(o,et,tt,nt,rt,it,ot,st,at){super(o,et,tt,nt,rt,it,ot,st,at),this.isVideoTexture=!0,this.minFilter=it!==void 0?it:LinearFilter,this.magFilter=rt!==void 0?rt:LinearFilter,this.generateMipmaps=!1;const lt=this;function ut(){lt.needsUpdate=!0,o.requestVideoFrameCallback(ut)}"requestVideoFrameCallback"in o&&o.requestVideoFrameCallback(ut)}clone(){return new this.constructor(this.image).copy(this)}update(){const o=this.image;"requestVideoFrameCallback"in o===!1&&o.readyState>=o.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class FramebufferTexture extends Texture{constructor(o,et){super({width:o,height:et}),this.isFramebufferTexture=!0,this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.generateMipmaps=!1,this.needsUpdate=!0}}class CompressedTexture extends Texture{constructor(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt){super(null,it,ot,st,at,lt,nt,rt,ut,dt),this.isCompressedTexture=!0,this.image={width:et,height:tt},this.mipmaps=o,this.flipY=!1,this.generateMipmaps=!1}}class CompressedArrayTexture extends CompressedTexture{constructor(o,et,tt,nt,rt,it){super(o,et,tt,rt,it),this.isCompressedArrayTexture=!0,this.image.depth=nt,this.wrapR=ClampToEdgeWrapping,this.layerUpdates=new Set}addLayerUpdates(o){this.layerUpdates.add(o)}clearLayerUpdates(){this.layerUpdates.clear()}}class CompressedCubeTexture extends CompressedTexture{constructor(o,et,tt){super(void 0,o[0].width,o[0].height,et,tt,CubeReflectionMapping),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=o}}class CanvasTexture extends Texture{constructor(o,et,tt,nt,rt,it,ot,st,at){super(o,et,tt,nt,rt,it,ot,st,at),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Curve{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(o,et){const tt=this.getUtoTmapping(o);return this.getPoint(tt,et)}getPoints(o=5){const et=[];for(let tt=0;tt<=o;tt++)et.push(this.getPoint(tt/o));return et}getSpacedPoints(o=5){const et=[];for(let tt=0;tt<=o;tt++)et.push(this.getPointAt(tt/o));return et}getLength(){const o=this.getLengths();return o[o.length-1]}getLengths(o=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===o+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const et=[];let tt,nt=this.getPoint(0),rt=0;et.push(0);for(let it=1;it<=o;it++)tt=this.getPoint(it/o),rt+=tt.distanceTo(nt),et.push(rt),nt=tt;return this.cacheArcLengths=et,et}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(o,et){const tt=this.getLengths();let nt=0;const rt=tt.length;let it;et?it=et:it=o*tt[rt-1];let ot=0,st=rt-1,at;for(;ot<=st;)if(nt=Math.floor(ot+(st-ot)/2),at=tt[nt]-it,at<0)ot=nt+1;else if(at>0)st=nt-1;else{st=nt;break}if(nt=st,tt[nt]===it)return nt/(rt-1);const lt=tt[nt],dt=tt[nt+1]-lt,ht=(it-lt)/dt;return(nt+ht)/(rt-1)}getTangent(o,et){let nt=o-1e-4,rt=o+1e-4;nt<0&&(nt=0),rt>1&&(rt=1);const it=this.getPoint(nt),ot=this.getPoint(rt),st=et||(it.isVector2?new Vector2:new Vector3);return st.copy(ot).sub(it).normalize(),st}getTangentAt(o,et){const tt=this.getUtoTmapping(o);return this.getTangent(tt,et)}computeFrenetFrames(o,et){const tt=new Vector3,nt=[],rt=[],it=[],ot=new Vector3,st=new Matrix4;for(let ht=0;ht<=o;ht++){const ct=ht/o;nt[ht]=this.getTangentAt(ct,new Vector3)}rt[0]=new Vector3,it[0]=new Vector3;let at=Number.MAX_VALUE;const lt=Math.abs(nt[0].x),ut=Math.abs(nt[0].y),dt=Math.abs(nt[0].z);lt<=at&&(at=lt,tt.set(1,0,0)),ut<=at&&(at=ut,tt.set(0,1,0)),dt<=at&&tt.set(0,0,1),ot.crossVectors(nt[0],tt).normalize(),rt[0].crossVectors(nt[0],ot),it[0].crossVectors(nt[0],rt[0]);for(let ht=1;ht<=o;ht++){if(rt[ht]=rt[ht-1].clone(),it[ht]=it[ht-1].clone(),ot.crossVectors(nt[ht-1],nt[ht]),ot.length()>Number.EPSILON){ot.normalize();const ct=Math.acos(clamp$4(nt[ht-1].dot(nt[ht]),-1,1));rt[ht].applyMatrix4(st.makeRotationAxis(ot,ct))}it[ht].crossVectors(nt[ht],rt[ht])}if(et===!0){let ht=Math.acos(clamp$4(rt[0].dot(rt[o]),-1,1));ht/=o,nt[0].dot(ot.crossVectors(rt[0],rt[o]))>0&&(ht=-ht);for(let ct=1;ct<=o;ct++)rt[ct].applyMatrix4(st.makeRotationAxis(nt[ct],ht*ct)),it[ct].crossVectors(nt[ct],rt[ct])}return{tangents:nt,normals:rt,binormals:it}}clone(){return new this.constructor().copy(this)}copy(o){return this.arcLengthDivisions=o.arcLengthDivisions,this}toJSON(){const o={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return o.arcLengthDivisions=this.arcLengthDivisions,o.type=this.type,o}fromJSON(o){return this.arcLengthDivisions=o.arcLengthDivisions,this}}class EllipseCurve extends Curve{constructor(o=0,et=0,tt=1,nt=1,rt=0,it=Math.PI*2,ot=!1,st=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=o,this.aY=et,this.xRadius=tt,this.yRadius=nt,this.aStartAngle=rt,this.aEndAngle=it,this.aClockwise=ot,this.aRotation=st}getPoint(o,et=new Vector2){const tt=et,nt=Math.PI*2;let rt=this.aEndAngle-this.aStartAngle;const it=Math.abs(rt)nt;)rt-=nt;rt0?0:(Math.floor(Math.abs(ot)/rt)+1)*rt:st===0&&ot===rt-1&&(ot=rt-2,st=1);let at,lt;this.closed||ot>0?at=nt[(ot-1)%rt]:(tmp.subVectors(nt[0],nt[1]).add(nt[0]),at=tmp);const ut=nt[ot%rt],dt=nt[(ot+1)%rt];if(this.closed||ot+2nt.length-2?nt.length-1:it+1],ut=nt[it>nt.length-3?nt.length-1:it+2];return tt.set(CatmullRom(ot,st.x,at.x,lt.x,ut.x),CatmullRom(ot,st.y,at.y,lt.y,ut.y)),tt}copy(o){super.copy(o),this.points=[];for(let et=0,tt=o.points.length;et=tt){const it=nt[rt]-tt,ot=this.curves[rt],st=ot.getLength(),at=st===0?0:1-it/st;return ot.getPointAt(at,et)}rt++}return null}getLength(){const o=this.getCurveLengths();return o[o.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const o=[];let et=0;for(let tt=0,nt=this.curves.length;tt1&&!et[et.length-1].equals(et[0])&&et.push(et[0]),et}copy(o){super.copy(o),this.curves=[];for(let et=0,tt=o.curves.length;et0){const ut=at.getPoint(0);ut.equals(this.currentPoint)||this.lineTo(ut.x,ut.y)}this.curves.push(at);const lt=at.getPoint(1);return this.currentPoint.copy(lt),this}copy(o){return super.copy(o),this.currentPoint.copy(o.currentPoint),this}toJSON(){const o=super.toJSON();return o.currentPoint=this.currentPoint.toArray(),o}fromJSON(o){return super.fromJSON(o),this.currentPoint.fromArray(o.currentPoint),this}};class LatheGeometry extends BufferGeometry{constructor(o=[new Vector2(0,-.5),new Vector2(.5,0),new Vector2(0,.5)],et=12,tt=0,nt=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:o,segments:et,phiStart:tt,phiLength:nt},et=Math.floor(et),nt=clamp$4(nt,0,Math.PI*2);const rt=[],it=[],ot=[],st=[],at=[],lt=1/et,ut=new Vector3,dt=new Vector2,ht=new Vector3,ct=new Vector3,pt=new Vector3;let ft=0,gt=0;for(let yt=0;yt<=o.length-1;yt++)switch(yt){case 0:ft=o[yt+1].x-o[yt].x,gt=o[yt+1].y-o[yt].y,ht.x=gt*1,ht.y=-ft,ht.z=gt*0,pt.copy(ht),ht.normalize(),st.push(ht.x,ht.y,ht.z);break;case o.length-1:st.push(pt.x,pt.y,pt.z);break;default:ft=o[yt+1].x-o[yt].x,gt=o[yt+1].y-o[yt].y,ht.x=gt*1,ht.y=-ft,ht.z=gt*0,ct.copy(ht),ht.x+=pt.x,ht.y+=pt.y,ht.z+=pt.z,ht.normalize(),st.push(ht.x,ht.y,ht.z),pt.copy(ct)}for(let yt=0;yt<=et;yt++){const Ut=tt+yt*lt*nt,Ft=Math.sin(Ut),mt=Math.cos(Ut);for(let vt=0;vt<=o.length-1;vt++){ut.x=o[vt].x*Ft,ut.y=o[vt].y,ut.z=o[vt].x*mt,it.push(ut.x,ut.y,ut.z),dt.x=yt/et,dt.y=vt/(o.length-1),ot.push(dt.x,dt.y);const At=st[3*vt+0]*Ft,Lt=st[3*vt+1],Rt=st[3*vt+0]*mt;at.push(At,Lt,Rt)}}for(let yt=0;yt0&&Ut(!0),et>0&&Ut(!1)),this.setIndex(lt),this.setAttribute("position",new Float32BufferAttribute(ut,3)),this.setAttribute("normal",new Float32BufferAttribute(dt,3)),this.setAttribute("uv",new Float32BufferAttribute(ht,2));function yt(){const Ft=new Vector3,mt=new Vector3;let vt=0;const At=(et-o)/tt;for(let Lt=0;Lt<=rt;Lt++){const Rt=[],St=Lt/rt,Tt=St*(et-o)+o;for(let Bt=0;Bt<=nt;Bt++){const xt=Bt/nt,Ct=xt*st+ot,kt=Math.sin(Ct),Nt=Math.cos(Ct);mt.x=Tt*kt,mt.y=-St*tt+ft,mt.z=Tt*Nt,ut.push(mt.x,mt.y,mt.z),Ft.set(kt,At,Nt).normalize(),dt.push(Ft.x,Ft.y,Ft.z),ht.push(xt,1-St),Rt.push(ct++)}pt.push(Rt)}for(let Lt=0;Lt.9&&At<.1&&(Ut<.2&&(it[yt+0]+=1),Ft<.2&&(it[yt+2]+=1),mt<.2&&(it[yt+4]+=1))}}function dt(yt){rt.push(yt.x,yt.y,yt.z)}function ht(yt,Ut){const Ft=yt*3;Ut.x=o[Ft+0],Ut.y=o[Ft+1],Ut.z=o[Ft+2]}function ct(){const yt=new Vector3,Ut=new Vector3,Ft=new Vector3,mt=new Vector3,vt=new Vector2,At=new Vector2,Lt=new Vector2;for(let Rt=0,St=0;Rt80*et){ot=at=s[0],st=lt=s[1];for(let ct=et;ctat&&(at=ut),dt>lt&&(lt=dt);ht=Math.max(at-ot,lt-st),ht=ht!==0?32767/ht:0}return earcutLinked(rt,it,et,ot,st,ht,0),it}};function linkedList(s,o,et,tt,nt){let rt,it;if(nt===signedArea(s,o,et,tt)>0)for(rt=o;rt=o;rt-=tt)it=insertNode(rt,s[rt],s[rt+1],it);return it&&equals(it,it.next)&&(removeNode(it),it=it.next),it}function filterPoints(s,o){if(!s)return s;o||(o=s);let et=s,tt;do if(tt=!1,!et.steiner&&(equals(et,et.next)||area(et.prev,et,et.next)===0)){if(removeNode(et),et=o=et.prev,et===et.next)break;tt=!0}else et=et.next;while(tt||et!==o);return o}function earcutLinked(s,o,et,tt,nt,rt,it){if(!s)return;!it&&rt&&indexCurve(s,tt,nt,rt);let ot=s,st,at;for(;s.prev!==s.next;){if(st=s.prev,at=s.next,rt?isEarHashed(s,tt,nt,rt):isEar(s)){o.push(st.i/et|0),o.push(s.i/et|0),o.push(at.i/et|0),removeNode(s),s=at.next,ot=at.next;continue}if(s=at,s===ot){it?it===1?(s=cureLocalIntersections(filterPoints(s),o,et),earcutLinked(s,o,et,tt,nt,rt,2)):it===2&&splitEarcut(s,o,et,tt,nt,rt):earcutLinked(filterPoints(s),o,et,tt,nt,rt,1);break}}}function isEar(s){const o=s.prev,et=s,tt=s.next;if(area(o,et,tt)>=0)return!1;const nt=o.x,rt=et.x,it=tt.x,ot=o.y,st=et.y,at=tt.y,lt=ntrt?nt>it?nt:it:rt>it?rt:it,ht=ot>st?ot>at?ot:at:st>at?st:at;let ct=tt.next;for(;ct!==o;){if(ct.x>=lt&&ct.x<=dt&&ct.y>=ut&&ct.y<=ht&&pointInTriangle(nt,ot,rt,st,it,at,ct.x,ct.y)&&area(ct.prev,ct,ct.next)>=0)return!1;ct=ct.next}return!0}function isEarHashed(s,o,et,tt){const nt=s.prev,rt=s,it=s.next;if(area(nt,rt,it)>=0)return!1;const ot=nt.x,st=rt.x,at=it.x,lt=nt.y,ut=rt.y,dt=it.y,ht=otst?ot>at?ot:at:st>at?st:at,ft=lt>ut?lt>dt?lt:dt:ut>dt?ut:dt,gt=zOrder(ht,ct,o,et,tt),yt=zOrder(pt,ft,o,et,tt);let Ut=s.prevZ,Ft=s.nextZ;for(;Ut&&Ut.z>=gt&&Ft&&Ft.z<=yt;){if(Ut.x>=ht&&Ut.x<=pt&&Ut.y>=ct&&Ut.y<=ft&&Ut!==nt&&Ut!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ut.x,Ut.y)&&area(Ut.prev,Ut,Ut.next)>=0||(Ut=Ut.prevZ,Ft.x>=ht&&Ft.x<=pt&&Ft.y>=ct&&Ft.y<=ft&&Ft!==nt&&Ft!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ft.x,Ft.y)&&area(Ft.prev,Ft,Ft.next)>=0))return!1;Ft=Ft.nextZ}for(;Ut&&Ut.z>=gt;){if(Ut.x>=ht&&Ut.x<=pt&&Ut.y>=ct&&Ut.y<=ft&&Ut!==nt&&Ut!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ut.x,Ut.y)&&area(Ut.prev,Ut,Ut.next)>=0)return!1;Ut=Ut.prevZ}for(;Ft&&Ft.z<=yt;){if(Ft.x>=ht&&Ft.x<=pt&&Ft.y>=ct&&Ft.y<=ft&&Ft!==nt&&Ft!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ft.x,Ft.y)&&area(Ft.prev,Ft,Ft.next)>=0)return!1;Ft=Ft.nextZ}return!0}function cureLocalIntersections(s,o,et){let tt=s;do{const nt=tt.prev,rt=tt.next.next;!equals(nt,rt)&&intersects(nt,tt,tt.next,rt)&&locallyInside(nt,rt)&&locallyInside(rt,nt)&&(o.push(nt.i/et|0),o.push(tt.i/et|0),o.push(rt.i/et|0),removeNode(tt),removeNode(tt.next),tt=s=rt),tt=tt.next}while(tt!==s);return filterPoints(tt)}function splitEarcut(s,o,et,tt,nt,rt){let it=s;do{let ot=it.next.next;for(;ot!==it.prev;){if(it.i!==ot.i&&isValidDiagonal(it,ot)){let st=splitPolygon(it,ot);it=filterPoints(it,it.next),st=filterPoints(st,st.next),earcutLinked(it,o,et,tt,nt,rt,0),earcutLinked(st,o,et,tt,nt,rt,0);return}ot=ot.next}it=it.next}while(it!==s)}function eliminateHoles(s,o,et,tt){const nt=[];let rt,it,ot,st,at;for(rt=0,it=o.length;rt=et.next.y&&et.next.y!==et.y){const dt=et.x+(it-et.y)*(et.next.x-et.x)/(et.next.y-et.y);if(dt<=rt&&dt>tt&&(tt=dt,nt=et.x=et.x&&et.x>=st&&rt!==et.x&&pointInTriangle(itnt.x||et.x===nt.x&§orContainsSector(nt,et)))&&(nt=et,lt=ut)),et=et.next;while(et!==ot);return nt}function sectorContainsSector(s,o){return area(s.prev,s,o.prev)<0&&area(o.next,s,s.next)<0}function indexCurve(s,o,et,tt){let nt=s;do nt.z===0&&(nt.z=zOrder(nt.x,nt.y,o,et,tt)),nt.prevZ=nt.prev,nt.nextZ=nt.next,nt=nt.next;while(nt!==s);nt.prevZ.nextZ=null,nt.prevZ=null,sortLinked(nt)}function sortLinked(s){let o,et,tt,nt,rt,it,ot,st,at=1;do{for(et=s,s=null,rt=null,it=0;et;){for(it++,tt=et,ot=0,o=0;o0||st>0&&tt;)ot!==0&&(st===0||!tt||et.z<=tt.z)?(nt=et,et=et.nextZ,ot--):(nt=tt,tt=tt.nextZ,st--),rt?rt.nextZ=nt:s=nt,nt.prevZ=rt,rt=nt;et=tt}rt.nextZ=null,at*=2}while(it>1);return s}function zOrder(s,o,et,tt,nt){return s=(s-et)*nt|0,o=(o-tt)*nt|0,s=(s|s<<8)&16711935,s=(s|s<<4)&252645135,s=(s|s<<2)&858993459,s=(s|s<<1)&1431655765,o=(o|o<<8)&16711935,o=(o|o<<4)&252645135,o=(o|o<<2)&858993459,o=(o|o<<1)&1431655765,s|o<<1}function getLeftmost(s){let o=s,et=s;do(o.x=(s-it)*(rt-ot)&&(s-it)*(tt-ot)>=(et-it)*(o-ot)&&(et-it)*(rt-ot)>=(nt-it)*(tt-ot)}function isValidDiagonal(s,o){return s.next.i!==o.i&&s.prev.i!==o.i&&!intersectsPolygon(s,o)&&(locallyInside(s,o)&&locallyInside(o,s)&&middleInside(s,o)&&(area(s.prev,s,o.prev)||area(s,o.prev,o))||equals(s,o)&&area(s.prev,s,s.next)>0&&area(o.prev,o,o.next)>0)}function area(s,o,et){return(o.y-s.y)*(et.x-o.x)-(o.x-s.x)*(et.y-o.y)}function equals(s,o){return s.x===o.x&&s.y===o.y}function intersects(s,o,et,tt){const nt=sign$1(area(s,o,et)),rt=sign$1(area(s,o,tt)),it=sign$1(area(et,tt,s)),ot=sign$1(area(et,tt,o));return!!(nt!==rt&&it!==ot||nt===0&&onSegment(s,et,o)||rt===0&&onSegment(s,tt,o)||it===0&&onSegment(et,s,tt)||ot===0&&onSegment(et,o,tt))}function onSegment(s,o,et){return o.x<=Math.max(s.x,et.x)&&o.x>=Math.min(s.x,et.x)&&o.y<=Math.max(s.y,et.y)&&o.y>=Math.min(s.y,et.y)}function sign$1(s){return s>0?1:s<0?-1:0}function intersectsPolygon(s,o){let et=s;do{if(et.i!==s.i&&et.next.i!==s.i&&et.i!==o.i&&et.next.i!==o.i&&intersects(et,et.next,s,o))return!0;et=et.next}while(et!==s);return!1}function locallyInside(s,o){return area(s.prev,s,s.next)<0?area(s,o,s.next)>=0&&area(s,s.prev,o)>=0:area(s,o,s.prev)<0||area(s,s.next,o)<0}function middleInside(s,o){let et=s,tt=!1;const nt=(s.x+o.x)/2,rt=(s.y+o.y)/2;do et.y>rt!=et.next.y>rt&&et.next.y!==et.y&&nt<(et.next.x-et.x)*(rt-et.y)/(et.next.y-et.y)+et.x&&(tt=!tt),et=et.next;while(et!==s);return tt}function splitPolygon(s,o){const et=new Node$1(s.i,s.x,s.y),tt=new Node$1(o.i,o.x,o.y),nt=s.next,rt=o.prev;return s.next=o,o.prev=s,et.next=nt,nt.prev=et,tt.next=et,et.prev=tt,rt.next=tt,tt.prev=rt,tt}function insertNode(s,o,et,tt){const nt=new Node$1(s,o,et);return tt?(nt.next=tt.next,nt.prev=tt,tt.next.prev=nt,tt.next=nt):(nt.prev=nt,nt.next=nt),nt}function removeNode(s){s.next.prev=s.prev,s.prev.next=s.next,s.prevZ&&(s.prevZ.nextZ=s.nextZ),s.nextZ&&(s.nextZ.prevZ=s.prevZ)}function Node$1(s,o,et){this.i=s,this.x=o,this.y=et,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function signedArea(s,o,et,tt){let nt=0;for(let rt=o,it=et-tt;rt2&&s[o-1].equals(s[0])&&s.pop()}function addContour(s,o){for(let et=0;etNumber.EPSILON){const Pn=Math.sqrt(wn),$n=Math.sqrt(gn*gn+hn*hn),Tr=on.x-On/Pn,Qr=on.y+Un/Pn,_r=Xt.x-hn/$n,Ir=Xt.y+gn/$n,Wr=((_r-Tr)*hn-(Ir-Qr)*gn)/(Un*hn-On*gn);dn=Tr+Un*Wr-qt.x,_n=Qr+On*Wr-qt.y;const qr=dn*dn+_n*_n;if(qr<=2)return new Vector2(dn,_n);Fn=Math.sqrt(qr/2)}else{let Pn=!1;Un>Number.EPSILON?gn>Number.EPSILON&&(Pn=!0):Un<-Number.EPSILON?gn<-Number.EPSILON&&(Pn=!0):Math.sign(On)===Math.sign(hn)&&(Pn=!0),Pn?(dn=-On,_n=Un,Fn=Math.sqrt(wn)):(dn=Un,_n=On,Fn=Math.sqrt(wn/2))}return new Vector2(dn/Fn,_n/Fn)}const Dt=[];for(let qt=0,on=Ct.length,Xt=on-1,dn=qt+1;qt=0;qt--){const on=qt/ft,Xt=ht*Math.cos(on*Math.PI/2),dn=ct*Math.sin(on*Math.PI/2)+pt;for(let _n=0,Fn=Ct.length;_n=0;){const dn=Xt;let _n=Xt-1;_n<0&&(_n=qt.length-1);for(let Fn=0,Un=lt+ft*2;Fn0)&&ht.push(Ut,Ft,vt),(gt!==tt-1||st0!=o>0&&this.version++,this._anisotropy=o}get clearcoat(){return this._clearcoat}set clearcoat(o){this._clearcoat>0!=o>0&&this.version++,this._clearcoat=o}get iridescence(){return this._iridescence}set iridescence(o){this._iridescence>0!=o>0&&this.version++,this._iridescence=o}get dispersion(){return this._dispersion}set dispersion(o){this._dispersion>0!=o>0&&this.version++,this._dispersion=o}get sheen(){return this._sheen}set sheen(o){this._sheen>0!=o>0&&this.version++,this._sheen=o}get transmission(){return this._transmission}set transmission(o){this._transmission>0!=o>0&&this.version++,this._transmission=o}copy(o){return super.copy(o),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=o.anisotropy,this.anisotropyRotation=o.anisotropyRotation,this.anisotropyMap=o.anisotropyMap,this.clearcoat=o.clearcoat,this.clearcoatMap=o.clearcoatMap,this.clearcoatRoughness=o.clearcoatRoughness,this.clearcoatRoughnessMap=o.clearcoatRoughnessMap,this.clearcoatNormalMap=o.clearcoatNormalMap,this.clearcoatNormalScale.copy(o.clearcoatNormalScale),this.dispersion=o.dispersion,this.ior=o.ior,this.iridescence=o.iridescence,this.iridescenceMap=o.iridescenceMap,this.iridescenceIOR=o.iridescenceIOR,this.iridescenceThicknessRange=[...o.iridescenceThicknessRange],this.iridescenceThicknessMap=o.iridescenceThicknessMap,this.sheen=o.sheen,this.sheenColor.copy(o.sheenColor),this.sheenColorMap=o.sheenColorMap,this.sheenRoughness=o.sheenRoughness,this.sheenRoughnessMap=o.sheenRoughnessMap,this.transmission=o.transmission,this.transmissionMap=o.transmissionMap,this.thickness=o.thickness,this.thicknessMap=o.thicknessMap,this.attenuationDistance=o.attenuationDistance,this.attenuationColor.copy(o.attenuationColor),this.specularIntensity=o.specularIntensity,this.specularIntensityMap=o.specularIntensityMap,this.specularColor.copy(o.specularColor),this.specularColorMap=o.specularColorMap,this}}class MeshPhongMaterial extends Material{constructor(o){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Color$2(16777215),this.specular=new Color$2(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$2(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.specular.copy(o.specular),this.shininess=o.shininess,this.map=o.map,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.emissive.copy(o.emissive),this.emissiveMap=o.emissiveMap,this.emissiveIntensity=o.emissiveIntensity,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.specularMap=o.specularMap,this.alphaMap=o.alphaMap,this.envMap=o.envMap,this.envMapRotation.copy(o.envMapRotation),this.combine=o.combine,this.reflectivity=o.reflectivity,this.refractionRatio=o.refractionRatio,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.flatShading=o.flatShading,this.fog=o.fog,this}}class MeshToonMaterial extends Material{constructor(o){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Color$2(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$2(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.map=o.map,this.gradientMap=o.gradientMap,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.emissive.copy(o.emissive),this.emissiveMap=o.emissiveMap,this.emissiveIntensity=o.emissiveIntensity,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.alphaMap=o.alphaMap,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.fog=o.fog,this}}class MeshNormalMaterial extends Material{constructor(o){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(o)}copy(o){return super.copy(o),this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.flatShading=o.flatShading,this}}class MeshLambertMaterial extends Material{constructor(o){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Color$2(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$2(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.map=o.map,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.emissive.copy(o.emissive),this.emissiveMap=o.emissiveMap,this.emissiveIntensity=o.emissiveIntensity,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.specularMap=o.specularMap,this.alphaMap=o.alphaMap,this.envMap=o.envMap,this.envMapRotation.copy(o.envMapRotation),this.combine=o.combine,this.reflectivity=o.reflectivity,this.refractionRatio=o.refractionRatio,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.flatShading=o.flatShading,this.fog=o.fog,this}}class MeshMatcapMaterial extends Material{constructor(o){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Color$2(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.defines={MATCAP:""},this.color.copy(o.color),this.matcap=o.matcap,this.map=o.map,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.alphaMap=o.alphaMap,this.flatShading=o.flatShading,this.fog=o.fog,this}}class LineDashedMaterial extends LineBasicMaterial{constructor(o){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(o)}copy(o){return super.copy(o),this.scale=o.scale,this.dashSize=o.dashSize,this.gapSize=o.gapSize,this}}function convertArray(s,o,et){return!s||!et&&s.constructor===o?s:typeof o.BYTES_PER_ELEMENT=="number"?new o(s):Array.prototype.slice.call(s)}function isTypedArray(s){return ArrayBuffer.isView(s)&&!(s instanceof DataView)}function getKeyframeOrder(s){function o(nt,rt){return s[nt]-s[rt]}const et=s.length,tt=new Array(et);for(let nt=0;nt!==et;++nt)tt[nt]=nt;return tt.sort(o),tt}function sortedArray(s,o,et){const tt=s.length,nt=new s.constructor(tt);for(let rt=0,it=0;it!==tt;++rt){const ot=et[rt]*o;for(let st=0;st!==o;++st)nt[it++]=s[ot+st]}return nt}function flattenJSON(s,o,et,tt){let nt=1,rt=s[0];for(;rt!==void 0&&rt[tt]===void 0;)rt=s[nt++];if(rt===void 0)return;let it=rt[tt];if(it!==void 0)if(Array.isArray(it))do it=rt[tt],it!==void 0&&(o.push(rt.time),et.push.apply(et,it)),rt=s[nt++];while(rt!==void 0);else if(it.toArray!==void 0)do it=rt[tt],it!==void 0&&(o.push(rt.time),it.toArray(et,et.length)),rt=s[nt++];while(rt!==void 0);else do it=rt[tt],it!==void 0&&(o.push(rt.time),et.push(it)),rt=s[nt++];while(rt!==void 0)}function subclip(s,o,et,tt,nt=30){const rt=s.clone();rt.name=o;const it=[];for(let st=0;st=tt)){ut.push(at.times[ht]);for(let pt=0;ptrt.tracks[st].times[0]&&(ot=rt.tracks[st].times[0]);for(let st=0;st=ot.times[ct]){const gt=ct*ut+lt,yt=gt+ut-lt;pt=ot.values.slice(gt,yt)}else{const gt=ot.createInterpolant(),yt=lt,Ut=ut-lt;gt.evaluate(rt),pt=gt.resultBuffer.slice(yt,Ut)}st==="quaternion"&&new Quaternion().fromArray(pt).normalize().conjugate().toArray(pt);const ft=at.times.length;for(let gt=0;gt=rt)){const ot=et[1];o=rt)break t}it=tt,tt=0;break n}break e}for(;tt>>1;oet;)--it;if(++it,rt!==0||it!==nt){rt>=it&&(it=Math.max(it,1),rt=it-1);const ot=this.getValueSize();this.times=tt.slice(rt,it),this.values=this.values.slice(rt*ot,it*ot)}return this}validate(){let o=!0;const et=this.getValueSize();et-Math.floor(et)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),o=!1);const tt=this.times,nt=this.values,rt=tt.length;rt===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),o=!1);let it=null;for(let ot=0;ot!==rt;ot++){const st=tt[ot];if(typeof st=="number"&&isNaN(st)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,ot,st),o=!1;break}if(it!==null&&it>st){console.error("THREE.KeyframeTrack: Out of order keys.",this,ot,st,it),o=!1;break}it=st}if(nt!==void 0&&isTypedArray(nt))for(let ot=0,st=nt.length;ot!==st;++ot){const at=nt[ot];if(isNaN(at)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,ot,at),o=!1;break}}return o}optimize(){const o=this.times.slice(),et=this.values.slice(),tt=this.getValueSize(),nt=this.getInterpolation()===InterpolateSmooth,rt=o.length-1;let it=1;for(let ot=1;ot0){o[it]=o[rt];for(let ot=rt*tt,st=it*tt,at=0;at!==tt;++at)et[st+at]=et[ot+at];++it}return it!==o.length?(this.times=o.slice(0,it),this.values=et.slice(0,it*tt)):(this.times=o,this.values=et),this}clone(){const o=this.times.slice(),et=this.values.slice(),tt=this.constructor,nt=new tt(this.name,o,et);return nt.createInterpolant=this.createInterpolant,nt}}KeyframeTrack.prototype.TimeBufferType=Float32Array;KeyframeTrack.prototype.ValueBufferType=Float32Array;KeyframeTrack.prototype.DefaultInterpolation=InterpolateLinear;class BooleanKeyframeTrack extends KeyframeTrack{constructor(o,et,tt){super(o,et,tt)}}BooleanKeyframeTrack.prototype.ValueTypeName="bool";BooleanKeyframeTrack.prototype.ValueBufferType=Array;BooleanKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class ColorKeyframeTrack extends KeyframeTrack{}ColorKeyframeTrack.prototype.ValueTypeName="color";class NumberKeyframeTrack extends KeyframeTrack{}NumberKeyframeTrack.prototype.ValueTypeName="number";class QuaternionLinearInterpolant extends Interpolant{constructor(o,et,tt,nt){super(o,et,tt,nt)}interpolate_(o,et,tt,nt){const rt=this.resultBuffer,it=this.sampleValues,ot=this.valueSize,st=(tt-et)/(nt-et);let at=o*ot;for(let lt=at+ot;at!==lt;at+=4)Quaternion.slerpFlat(rt,0,it,at-ot,it,at,st);return rt}}class QuaternionKeyframeTrack extends KeyframeTrack{InterpolantFactoryMethodLinear(o){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),o)}}QuaternionKeyframeTrack.prototype.ValueTypeName="quaternion";QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class StringKeyframeTrack extends KeyframeTrack{constructor(o,et,tt){super(o,et,tt)}}StringKeyframeTrack.prototype.ValueTypeName="string";StringKeyframeTrack.prototype.ValueBufferType=Array;StringKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class VectorKeyframeTrack extends KeyframeTrack{}VectorKeyframeTrack.prototype.ValueTypeName="vector";class AnimationClip{constructor(o="",et=-1,tt=[],nt=NormalAnimationBlendMode){this.name=o,this.tracks=tt,this.duration=et,this.blendMode=nt,this.uuid=generateUUID(),this.duration<0&&this.resetDuration()}static parse(o){const et=[],tt=o.tracks,nt=1/(o.fps||1);for(let it=0,ot=tt.length;it!==ot;++it)et.push(parseKeyframeTrack(tt[it]).scale(nt));const rt=new this(o.name,o.duration,et,o.blendMode);return rt.uuid=o.uuid,rt}static toJSON(o){const et=[],tt=o.tracks,nt={name:o.name,duration:o.duration,tracks:et,uuid:o.uuid,blendMode:o.blendMode};for(let rt=0,it=tt.length;rt!==it;++rt)et.push(KeyframeTrack.toJSON(tt[rt]));return nt}static CreateFromMorphTargetSequence(o,et,tt,nt){const rt=et.length,it=[];for(let ot=0;ot1){const ut=lt[1];let dt=nt[ut];dt||(nt[ut]=dt=[]),dt.push(at)}}const it=[];for(const ot in nt)it.push(this.CreateFromMorphTargetSequence(ot,nt[ot],et,tt));return it}static parseAnimation(o,et){if(!o)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const tt=function(ut,dt,ht,ct,pt){if(ht.length!==0){const ft=[],gt=[];flattenJSON(ht,ft,gt,ct),ft.length!==0&&pt.push(new ut(dt,ft,gt))}},nt=[],rt=o.name||"default",it=o.fps||30,ot=o.blendMode;let st=o.length||-1;const at=o.hierarchy||[];for(let ut=0;ut{et&&et(rt),this.manager.itemEnd(o)},0),rt;if(loading[o]!==void 0){loading[o].push({onLoad:et,onProgress:tt,onError:nt});return}loading[o]=[],loading[o].push({onLoad:et,onProgress:tt,onError:nt});const it=new Request(o,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),ot=this.mimeType,st=this.responseType;fetch(it).then(at=>{if(at.status===200||at.status===0){if(at.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||at.body===void 0||at.body.getReader===void 0)return at;const lt=loading[o],ut=at.body.getReader(),dt=at.headers.get("X-File-Size")||at.headers.get("Content-Length"),ht=dt?parseInt(dt):0,ct=ht!==0;let pt=0;const ft=new ReadableStream({start(gt){yt();function yt(){ut.read().then(({done:Ut,value:Ft})=>{if(Ut)gt.close();else{pt+=Ft.byteLength;const mt=new ProgressEvent("progress",{lengthComputable:ct,loaded:pt,total:ht});for(let vt=0,At=lt.length;vt{gt.error(Ut)})}}});return new Response(ft)}else throw new HttpError(`fetch for "${at.url}" responded with ${at.status}: ${at.statusText}`,at)}).then(at=>{switch(st){case"arraybuffer":return at.arrayBuffer();case"blob":return at.blob();case"document":return at.text().then(lt=>new DOMParser().parseFromString(lt,ot));case"json":return at.json();default:if(ot===void 0)return at.text();{const ut=/charset="?([^;"\s]*)"?/i.exec(ot),dt=ut&&ut[1]?ut[1].toLowerCase():void 0,ht=new TextDecoder(dt);return at.arrayBuffer().then(ct=>ht.decode(ct))}}}).then(at=>{Cache.add(o,at);const lt=loading[o];delete loading[o];for(let ut=0,dt=lt.length;ut{const lt=loading[o];if(lt===void 0)throw this.manager.itemError(o),at;delete loading[o];for(let ut=0,dt=lt.length;ut{this.manager.itemEnd(o)}),this.manager.itemStart(o)}setResponseType(o){return this.responseType=o,this}setMimeType(o){return this.mimeType=o,this}}class AnimationLoader extends Loader{constructor(o){super(o)}load(o,et,tt,nt){const rt=this,it=new FileLoader(this.manager);it.setPath(this.path),it.setRequestHeader(this.requestHeader),it.setWithCredentials(this.withCredentials),it.load(o,function(ot){try{et(rt.parse(JSON.parse(ot)))}catch(st){nt?nt(st):console.error(st),rt.manager.itemError(o)}},tt,nt)}parse(o){const et=[];for(let tt=0;tt0:nt.vertexColors=o.vertexColors),o.uniforms!==void 0)for(const rt in o.uniforms){const it=o.uniforms[rt];switch(nt.uniforms[rt]={},it.type){case"t":nt.uniforms[rt].value=tt(it.value);break;case"c":nt.uniforms[rt].value=new Color$2().setHex(it.value);break;case"v2":nt.uniforms[rt].value=new Vector2().fromArray(it.value);break;case"v3":nt.uniforms[rt].value=new Vector3().fromArray(it.value);break;case"v4":nt.uniforms[rt].value=new Vector4().fromArray(it.value);break;case"m3":nt.uniforms[rt].value=new Matrix3().fromArray(it.value);break;case"m4":nt.uniforms[rt].value=new Matrix4().fromArray(it.value);break;default:nt.uniforms[rt].value=it.value}}if(o.defines!==void 0&&(nt.defines=o.defines),o.vertexShader!==void 0&&(nt.vertexShader=o.vertexShader),o.fragmentShader!==void 0&&(nt.fragmentShader=o.fragmentShader),o.glslVersion!==void 0&&(nt.glslVersion=o.glslVersion),o.extensions!==void 0)for(const rt in o.extensions)nt.extensions[rt]=o.extensions[rt];if(o.lights!==void 0&&(nt.lights=o.lights),o.clipping!==void 0&&(nt.clipping=o.clipping),o.size!==void 0&&(nt.size=o.size),o.sizeAttenuation!==void 0&&(nt.sizeAttenuation=o.sizeAttenuation),o.map!==void 0&&(nt.map=tt(o.map)),o.matcap!==void 0&&(nt.matcap=tt(o.matcap)),o.alphaMap!==void 0&&(nt.alphaMap=tt(o.alphaMap)),o.bumpMap!==void 0&&(nt.bumpMap=tt(o.bumpMap)),o.bumpScale!==void 0&&(nt.bumpScale=o.bumpScale),o.normalMap!==void 0&&(nt.normalMap=tt(o.normalMap)),o.normalMapType!==void 0&&(nt.normalMapType=o.normalMapType),o.normalScale!==void 0){let rt=o.normalScale;Array.isArray(rt)===!1&&(rt=[rt,rt]),nt.normalScale=new Vector2().fromArray(rt)}return o.displacementMap!==void 0&&(nt.displacementMap=tt(o.displacementMap)),o.displacementScale!==void 0&&(nt.displacementScale=o.displacementScale),o.displacementBias!==void 0&&(nt.displacementBias=o.displacementBias),o.roughnessMap!==void 0&&(nt.roughnessMap=tt(o.roughnessMap)),o.metalnessMap!==void 0&&(nt.metalnessMap=tt(o.metalnessMap)),o.emissiveMap!==void 0&&(nt.emissiveMap=tt(o.emissiveMap)),o.emissiveIntensity!==void 0&&(nt.emissiveIntensity=o.emissiveIntensity),o.specularMap!==void 0&&(nt.specularMap=tt(o.specularMap)),o.specularIntensityMap!==void 0&&(nt.specularIntensityMap=tt(o.specularIntensityMap)),o.specularColorMap!==void 0&&(nt.specularColorMap=tt(o.specularColorMap)),o.envMap!==void 0&&(nt.envMap=tt(o.envMap)),o.envMapRotation!==void 0&&nt.envMapRotation.fromArray(o.envMapRotation),o.envMapIntensity!==void 0&&(nt.envMapIntensity=o.envMapIntensity),o.reflectivity!==void 0&&(nt.reflectivity=o.reflectivity),o.refractionRatio!==void 0&&(nt.refractionRatio=o.refractionRatio),o.lightMap!==void 0&&(nt.lightMap=tt(o.lightMap)),o.lightMapIntensity!==void 0&&(nt.lightMapIntensity=o.lightMapIntensity),o.aoMap!==void 0&&(nt.aoMap=tt(o.aoMap)),o.aoMapIntensity!==void 0&&(nt.aoMapIntensity=o.aoMapIntensity),o.gradientMap!==void 0&&(nt.gradientMap=tt(o.gradientMap)),o.clearcoatMap!==void 0&&(nt.clearcoatMap=tt(o.clearcoatMap)),o.clearcoatRoughnessMap!==void 0&&(nt.clearcoatRoughnessMap=tt(o.clearcoatRoughnessMap)),o.clearcoatNormalMap!==void 0&&(nt.clearcoatNormalMap=tt(o.clearcoatNormalMap)),o.clearcoatNormalScale!==void 0&&(nt.clearcoatNormalScale=new Vector2().fromArray(o.clearcoatNormalScale)),o.iridescenceMap!==void 0&&(nt.iridescenceMap=tt(o.iridescenceMap)),o.iridescenceThicknessMap!==void 0&&(nt.iridescenceThicknessMap=tt(o.iridescenceThicknessMap)),o.transmissionMap!==void 0&&(nt.transmissionMap=tt(o.transmissionMap)),o.thicknessMap!==void 0&&(nt.thicknessMap=tt(o.thicknessMap)),o.anisotropyMap!==void 0&&(nt.anisotropyMap=tt(o.anisotropyMap)),o.sheenColorMap!==void 0&&(nt.sheenColorMap=tt(o.sheenColorMap)),o.sheenRoughnessMap!==void 0&&(nt.sheenRoughnessMap=tt(o.sheenRoughnessMap)),nt}setTextures(o){return this.textures=o,this}static createMaterialFromType(o){const et={ShadowMaterial,SpriteMaterial,RawShaderMaterial,ShaderMaterial,PointsMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshPhongMaterial,MeshToonMaterial,MeshNormalMaterial,MeshLambertMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshBasicMaterial,MeshMatcapMaterial,LineDashedMaterial,LineBasicMaterial,Material};return new et[o]}}class LoaderUtils{static decodeText(o){if(console.warn("THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead."),typeof TextDecoder<"u")return new TextDecoder().decode(o);let et="";for(let tt=0,nt=o.length;tt0){const st=new LoadingManager(et);rt=new ImageLoader(st),rt.setCrossOrigin(this.crossOrigin);for(let at=0,lt=o.length;at0){nt=new ImageLoader(this.manager),nt.setCrossOrigin(this.crossOrigin);for(let it=0,ot=o.length;it{const ft=new Box3;ft.min.fromArray(pt.boxMin),ft.max.fromArray(pt.boxMax);const gt=new Sphere$1;return gt.radius=pt.sphereRadius,gt.center.fromArray(pt.sphereCenter),{boxInitialized:pt.boxInitialized,box:ft,sphereInitialized:pt.sphereInitialized,sphere:gt}}),it._maxGeometryCount=o.maxGeometryCount,it._maxVertexCount=o.maxVertexCount,it._maxIndexCount=o.maxIndexCount,it._geometryInitialized=o.geometryInitialized,it._geometryCount=o.geometryCount,it._matricesTexture=at(o.matricesTexture.uuid),o.colorsTexture!==void 0&&(it._colorsTexture=at(o.colorsTexture.uuid));break;case"LOD":it=new LOD;break;case"Line":it=new Line$1(ot(o.geometry),st(o.material));break;case"LineLoop":it=new LineLoop(ot(o.geometry),st(o.material));break;case"LineSegments":it=new LineSegments(ot(o.geometry),st(o.material));break;case"PointCloud":case"Points":it=new Points(ot(o.geometry),st(o.material));break;case"Sprite":it=new Sprite(st(o.material));break;case"Group":it=new Group;break;case"Bone":it=new Bone;break;default:it=new Object3D}if(it.uuid=o.uuid,o.name!==void 0&&(it.name=o.name),o.matrix!==void 0?(it.matrix.fromArray(o.matrix),o.matrixAutoUpdate!==void 0&&(it.matrixAutoUpdate=o.matrixAutoUpdate),it.matrixAutoUpdate&&it.matrix.decompose(it.position,it.quaternion,it.scale)):(o.position!==void 0&&it.position.fromArray(o.position),o.rotation!==void 0&&it.rotation.fromArray(o.rotation),o.quaternion!==void 0&&it.quaternion.fromArray(o.quaternion),o.scale!==void 0&&it.scale.fromArray(o.scale)),o.up!==void 0&&it.up.fromArray(o.up),o.castShadow!==void 0&&(it.castShadow=o.castShadow),o.receiveShadow!==void 0&&(it.receiveShadow=o.receiveShadow),o.shadow&&(o.shadow.bias!==void 0&&(it.shadow.bias=o.shadow.bias),o.shadow.normalBias!==void 0&&(it.shadow.normalBias=o.shadow.normalBias),o.shadow.radius!==void 0&&(it.shadow.radius=o.shadow.radius),o.shadow.mapSize!==void 0&&it.shadow.mapSize.fromArray(o.shadow.mapSize),o.shadow.camera!==void 0&&(it.shadow.camera=this.parseObject(o.shadow.camera))),o.visible!==void 0&&(it.visible=o.visible),o.frustumCulled!==void 0&&(it.frustumCulled=o.frustumCulled),o.renderOrder!==void 0&&(it.renderOrder=o.renderOrder),o.userData!==void 0&&(it.userData=o.userData),o.layers!==void 0&&(it.layers.mask=o.layers),o.children!==void 0){const dt=o.children;for(let ht=0;ht"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(o){return this.options=o,this}load(o,et,tt,nt){o===void 0&&(o=""),this.path!==void 0&&(o=this.path+o),o=this.manager.resolveURL(o);const rt=this,it=Cache.get(o);if(it!==void 0){if(rt.manager.itemStart(o),it.then){it.then(at=>{et&&et(at),rt.manager.itemEnd(o)}).catch(at=>{nt&&nt(at)});return}return setTimeout(function(){et&&et(it),rt.manager.itemEnd(o)},0),it}const ot={};ot.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",ot.headers=this.requestHeader;const st=fetch(o,ot).then(function(at){return at.blob()}).then(function(at){return createImageBitmap(at,Object.assign(rt.options,{colorSpaceConversion:"none"}))}).then(function(at){return Cache.add(o,at),et&&et(at),rt.manager.itemEnd(o),at}).catch(function(at){nt&&nt(at),Cache.remove(o),rt.manager.itemError(o),rt.manager.itemEnd(o)});Cache.add(o,st),rt.manager.itemStart(o)}}let _context;class AudioContext{static getContext(){return _context===void 0&&(_context=new(window.AudioContext||window.webkitAudioContext)),_context}static setContext(o){_context=o}}class AudioLoader extends Loader{constructor(o){super(o)}load(o,et,tt,nt){const rt=this,it=new FileLoader(this.manager);it.setResponseType("arraybuffer"),it.setPath(this.path),it.setRequestHeader(this.requestHeader),it.setWithCredentials(this.withCredentials),it.load(o,function(st){try{const at=st.slice(0);AudioContext.getContext().decodeAudioData(at,function(ut){et(ut)}).catch(ot)}catch(at){ot(at)}},tt,nt);function ot(st){nt?nt(st):console.error(st),rt.manager.itemError(o)}}}const _eyeRight=new Matrix4,_eyeLeft=new Matrix4,_projectionMatrix=new Matrix4;class StereoCamera{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new PerspectiveCamera$1,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new PerspectiveCamera$1,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(o){const et=this._cache;if(et.focus!==o.focus||et.fov!==o.fov||et.aspect!==o.aspect*this.aspect||et.near!==o.near||et.far!==o.far||et.zoom!==o.zoom||et.eyeSep!==this.eyeSep){et.focus=o.focus,et.fov=o.fov,et.aspect=o.aspect*this.aspect,et.near=o.near,et.far=o.far,et.zoom=o.zoom,et.eyeSep=this.eyeSep,_projectionMatrix.copy(o.projectionMatrix);const nt=et.eyeSep/2,rt=nt*et.near/et.focus,it=et.near*Math.tan(DEG2RAD$1*et.fov*.5)/et.zoom;let ot,st;_eyeLeft.elements[12]=-nt,_eyeRight.elements[12]=nt,ot=-it*et.aspect+rt,st=it*et.aspect+rt,_projectionMatrix.elements[0]=2*et.near/(st-ot),_projectionMatrix.elements[8]=(st+ot)/(st-ot),this.cameraL.projectionMatrix.copy(_projectionMatrix),ot=-it*et.aspect-rt,st=it*et.aspect-rt,_projectionMatrix.elements[0]=2*et.near/(st-ot),_projectionMatrix.elements[8]=(st+ot)/(st-ot),this.cameraR.projectionMatrix.copy(_projectionMatrix)}this.cameraL.matrixWorld.copy(o.matrixWorld).multiply(_eyeLeft),this.cameraR.matrixWorld.copy(o.matrixWorld).multiply(_eyeRight)}}class Clock{constructor(o=!0){this.autoStart=o,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let o=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const et=now();o=(et-this.oldTime)/1e3,this.oldTime=et,this.elapsedTime+=o}return o}}function now(){return(typeof performance>"u"?Date:performance).now()}const _position$1=new Vector3,_quaternion$1=new Quaternion,_scale$1=new Vector3,_orientation$1=new Vector3;class AudioListener extends Object3D{constructor(){super(),this.type="AudioListener",this.context=AudioContext.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Clock}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(o){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=o,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(o){return this.gain.gain.setTargetAtTime(o,this.context.currentTime,.01),this}updateMatrixWorld(o){super.updateMatrixWorld(o);const et=this.context.listener,tt=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(_position$1,_quaternion$1,_scale$1),_orientation$1.set(0,0,-1).applyQuaternion(_quaternion$1),et.positionX){const nt=this.context.currentTime+this.timeDelta;et.positionX.linearRampToValueAtTime(_position$1.x,nt),et.positionY.linearRampToValueAtTime(_position$1.y,nt),et.positionZ.linearRampToValueAtTime(_position$1.z,nt),et.forwardX.linearRampToValueAtTime(_orientation$1.x,nt),et.forwardY.linearRampToValueAtTime(_orientation$1.y,nt),et.forwardZ.linearRampToValueAtTime(_orientation$1.z,nt),et.upX.linearRampToValueAtTime(tt.x,nt),et.upY.linearRampToValueAtTime(tt.y,nt),et.upZ.linearRampToValueAtTime(tt.z,nt)}else et.setPosition(_position$1.x,_position$1.y,_position$1.z),et.setOrientation(_orientation$1.x,_orientation$1.y,_orientation$1.z,tt.x,tt.y,tt.z)}}class Audio extends Object3D{constructor(o){super(),this.type="Audio",this.listener=o,this.context=o.context,this.gain=this.context.createGain(),this.gain.connect(o.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(o){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=o,this.connect(),this}setMediaElementSource(o){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(o),this.connect(),this}setMediaStreamSource(o){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(o),this.connect(),this}setBuffer(o){return this.buffer=o,this.sourceType="buffer",this.autoplay&&this.play(),this}play(o=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+o;const et=this.context.createBufferSource();return et.buffer=this.buffer,et.loop=this.loop,et.loopStart=this.loopStart,et.loopEnd=this.loopEnd,et.onended=this.onEnded.bind(this),et.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=et,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let o=1,et=this.filters.length;o0){this.source.disconnect(this.filters[0]);for(let o=1,et=this.filters.length;o0&&this._mixBufferRegionAdditive(tt,nt,this._addIndex*et,1,et);for(let st=et,at=et+et;st!==at;++st)if(tt[st]!==tt[st+et]){ot.setValue(tt,nt);break}}saveOriginalState(){const o=this.binding,et=this.buffer,tt=this.valueSize,nt=tt*this._origIndex;o.getValue(et,nt);for(let rt=tt,it=nt;rt!==it;++rt)et[rt]=et[nt+rt%tt];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const o=this.valueSize*3;this.binding.setValue(this.buffer,o)}_setAdditiveIdentityNumeric(){const o=this._addIndex*this.valueSize,et=o+this.valueSize;for(let tt=o;tt=.5)for(let it=0;it!==rt;++it)o[et+it]=o[tt+it]}_slerp(o,et,tt,nt){Quaternion.slerpFlat(o,et,o,et,o,tt,nt)}_slerpAdditive(o,et,tt,nt,rt){const it=this._workIndex*rt;Quaternion.multiplyQuaternionsFlat(o,it,o,et,o,tt),Quaternion.slerpFlat(o,et,o,et,o,it,nt)}_lerp(o,et,tt,nt,rt){const it=1-nt;for(let ot=0;ot!==rt;++ot){const st=et+ot;o[st]=o[st]*it+o[tt+ot]*nt}}_lerpAdditive(o,et,tt,nt,rt){for(let it=0;it!==rt;++it){const ot=et+it;o[ot]=o[ot]+o[tt+it]*nt}}}const _RESERVED_CHARS_RE="\\[\\]\\.:\\/",_reservedRe=new RegExp("["+_RESERVED_CHARS_RE+"]","g"),_wordChar="[^"+_RESERVED_CHARS_RE+"]",_wordCharOrDot="[^"+_RESERVED_CHARS_RE.replace("\\.","")+"]",_directoryRe=/((?:WC+[\/:])*)/.source.replace("WC",_wordChar),_nodeRe=/(WCOD+)?/.source.replace("WCOD",_wordCharOrDot),_objectRe=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",_wordChar),_propertyRe=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",_wordChar),_trackRe=new RegExp("^"+_directoryRe+_nodeRe+_objectRe+_propertyRe+"$"),_supportedObjectNames=["material","materials","bones","map"];class Composite{constructor(o,et,tt){const nt=tt||PropertyBinding.parseTrackName(et);this._targetGroup=o,this._bindings=o.subscribe_(et,nt)}getValue(o,et){this.bind();const tt=this._targetGroup.nCachedObjects_,nt=this._bindings[tt];nt!==void 0&&nt.getValue(o,et)}setValue(o,et){const tt=this._bindings;for(let nt=this._targetGroup.nCachedObjects_,rt=tt.length;nt!==rt;++nt)tt[nt].setValue(o,et)}bind(){const o=this._bindings;for(let et=this._targetGroup.nCachedObjects_,tt=o.length;et!==tt;++et)o[et].bind()}unbind(){const o=this._bindings;for(let et=this._targetGroup.nCachedObjects_,tt=o.length;et!==tt;++et)o[et].unbind()}}class PropertyBinding{constructor(o,et,tt){this.path=et,this.parsedPath=tt||PropertyBinding.parseTrackName(et),this.node=PropertyBinding.findNode(o,this.parsedPath.nodeName),this.rootNode=o,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(o,et,tt){return o&&o.isAnimationObjectGroup?new PropertyBinding.Composite(o,et,tt):new PropertyBinding(o,et,tt)}static sanitizeNodeName(o){return o.replace(/\s/g,"_").replace(_reservedRe,"")}static parseTrackName(o){const et=_trackRe.exec(o);if(et===null)throw new Error("PropertyBinding: Cannot parse trackName: "+o);const tt={nodeName:et[2],objectName:et[3],objectIndex:et[4],propertyName:et[5],propertyIndex:et[6]},nt=tt.nodeName&&tt.nodeName.lastIndexOf(".");if(nt!==void 0&&nt!==-1){const rt=tt.nodeName.substring(nt+1);_supportedObjectNames.indexOf(rt)!==-1&&(tt.nodeName=tt.nodeName.substring(0,nt),tt.objectName=rt)}if(tt.propertyName===null||tt.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+o);return tt}static findNode(o,et){if(et===void 0||et===""||et==="."||et===-1||et===o.name||et===o.uuid)return o;if(o.skeleton){const tt=o.skeleton.getBoneByName(et);if(tt!==void 0)return tt}if(o.children){const tt=function(rt){for(let it=0;it=rt){const ut=rt++,dt=o[ut];et[dt.uuid]=lt,o[lt]=dt,et[at]=ut,o[ut]=st;for(let ht=0,ct=nt;ht!==ct;++ht){const pt=tt[ht],ft=pt[ut],gt=pt[lt];pt[lt]=ft,pt[ut]=gt}}}this.nCachedObjects_=rt}uncache(){const o=this._objects,et=this._indicesByUUID,tt=this._bindings,nt=tt.length;let rt=this.nCachedObjects_,it=o.length;for(let ot=0,st=arguments.length;ot!==st;++ot){const at=arguments[ot],lt=at.uuid,ut=et[lt];if(ut!==void 0)if(delete et[lt],ut0&&(et[ht.uuid]=ut),o[ut]=ht,o.pop();for(let ct=0,pt=nt;ct!==pt;++ct){const ft=tt[ct];ft[ut]=ft[dt],ft.pop()}}}this.nCachedObjects_=rt}subscribe_(o,et){const tt=this._bindingsIndicesByPath;let nt=tt[o];const rt=this._bindings;if(nt!==void 0)return rt[nt];const it=this._paths,ot=this._parsedPaths,st=this._objects,at=st.length,lt=this.nCachedObjects_,ut=new Array(at);nt=rt.length,tt[o]=nt,it.push(o),ot.push(et),rt.push(ut);for(let dt=lt,ht=st.length;dt!==ht;++dt){const ct=st[dt];ut[dt]=new PropertyBinding(ct,o,et)}return ut}unsubscribe_(o){const et=this._bindingsIndicesByPath,tt=et[o];if(tt!==void 0){const nt=this._paths,rt=this._parsedPaths,it=this._bindings,ot=it.length-1,st=it[ot],at=o[ot];et[at]=tt,it[tt]=st,it.pop(),rt[tt]=rt[ot],rt.pop(),nt[tt]=nt[ot],nt.pop()}}}class AnimationAction{constructor(o,et,tt=null,nt=et.blendMode){this._mixer=o,this._clip=et,this._localRoot=tt,this.blendMode=nt;const rt=et.tracks,it=rt.length,ot=new Array(it),st={endingStart:ZeroCurvatureEnding,endingEnd:ZeroCurvatureEnding};for(let at=0;at!==it;++at){const lt=rt[at].createInterpolant(null);ot[at]=lt,lt.settings=st}this._interpolantSettings=st,this._interpolants=ot,this._propertyBindings=new Array(it),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=LoopRepeat,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(o){return this._startTime=o,this}setLoop(o,et){return this.loop=o,this.repetitions=et,this}setEffectiveWeight(o){return this.weight=o,this._effectiveWeight=this.enabled?o:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(o){return this._scheduleFading(o,0,1)}fadeOut(o){return this._scheduleFading(o,1,0)}crossFadeFrom(o,et,tt){if(o.fadeOut(et),this.fadeIn(et),tt){const nt=this._clip.duration,rt=o._clip.duration,it=rt/nt,ot=nt/rt;o.warp(1,it,et),this.warp(ot,1,et)}return this}crossFadeTo(o,et,tt){return o.crossFadeFrom(this,et,tt)}stopFading(){const o=this._weightInterpolant;return o!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(o)),this}setEffectiveTimeScale(o){return this.timeScale=o,this._effectiveTimeScale=this.paused?0:o,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(o){return this.timeScale=this._clip.duration/o,this.stopWarping()}syncWith(o){return this.time=o.time,this.timeScale=o.timeScale,this.stopWarping()}halt(o){return this.warp(this._effectiveTimeScale,0,o)}warp(o,et,tt){const nt=this._mixer,rt=nt.time,it=this.timeScale;let ot=this._timeScaleInterpolant;ot===null&&(ot=nt._lendControlInterpolant(),this._timeScaleInterpolant=ot);const st=ot.parameterPositions,at=ot.sampleValues;return st[0]=rt,st[1]=rt+tt,at[0]=o/it,at[1]=et/it,this}stopWarping(){const o=this._timeScaleInterpolant;return o!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(o)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(o,et,tt,nt){if(!this.enabled){this._updateWeight(o);return}const rt=this._startTime;if(rt!==null){const st=(o-rt)*tt;st<0||tt===0?et=0:(this._startTime=null,et=tt*st)}et*=this._updateTimeScale(o);const it=this._updateTime(et),ot=this._updateWeight(o);if(ot>0){const st=this._interpolants,at=this._propertyBindings;switch(this.blendMode){case AdditiveAnimationBlendMode:for(let lt=0,ut=st.length;lt!==ut;++lt)st[lt].evaluate(it),at[lt].accumulateAdditive(ot);break;case NormalAnimationBlendMode:default:for(let lt=0,ut=st.length;lt!==ut;++lt)st[lt].evaluate(it),at[lt].accumulate(nt,ot)}}}_updateWeight(o){let et=0;if(this.enabled){et=this.weight;const tt=this._weightInterpolant;if(tt!==null){const nt=tt.evaluate(o)[0];et*=nt,o>tt.parameterPositions[1]&&(this.stopFading(),nt===0&&(this.enabled=!1))}}return this._effectiveWeight=et,et}_updateTimeScale(o){let et=0;if(!this.paused){et=this.timeScale;const tt=this._timeScaleInterpolant;if(tt!==null){const nt=tt.evaluate(o)[0];et*=nt,o>tt.parameterPositions[1]&&(this.stopWarping(),et===0?this.paused=!0:this.timeScale=et)}}return this._effectiveTimeScale=et,et}_updateTime(o){const et=this._clip.duration,tt=this.loop;let nt=this.time+o,rt=this._loopCount;const it=tt===LoopPingPong;if(o===0)return rt===-1?nt:it&&(rt&1)===1?et-nt:nt;if(tt===LoopOnce){rt===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(nt>=et)nt=et;else if(nt<0)nt=0;else{this.time=nt;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=nt,this._mixer.dispatchEvent({type:"finished",action:this,direction:o<0?-1:1})}}else{if(rt===-1&&(o>=0?(rt=0,this._setEndings(!0,this.repetitions===0,it)):this._setEndings(this.repetitions===0,!0,it)),nt>=et||nt<0){const ot=Math.floor(nt/et);nt-=et*ot,rt+=Math.abs(ot);const st=this.repetitions-rt;if(st<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,nt=o>0?et:0,this.time=nt,this._mixer.dispatchEvent({type:"finished",action:this,direction:o>0?1:-1});else{if(st===1){const at=o<0;this._setEndings(at,!at,it)}else this._setEndings(!1,!1,it);this._loopCount=rt,this.time=nt,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:ot})}}else this.time=nt;if(it&&(rt&1)===1)return et-nt}return nt}_setEndings(o,et,tt){const nt=this._interpolantSettings;tt?(nt.endingStart=ZeroSlopeEnding,nt.endingEnd=ZeroSlopeEnding):(o?nt.endingStart=this.zeroSlopeAtStart?ZeroSlopeEnding:ZeroCurvatureEnding:nt.endingStart=WrapAroundEnding,et?nt.endingEnd=this.zeroSlopeAtEnd?ZeroSlopeEnding:ZeroCurvatureEnding:nt.endingEnd=WrapAroundEnding)}_scheduleFading(o,et,tt){const nt=this._mixer,rt=nt.time;let it=this._weightInterpolant;it===null&&(it=nt._lendControlInterpolant(),this._weightInterpolant=it);const ot=it.parameterPositions,st=it.sampleValues;return ot[0]=rt,st[0]=et,ot[1]=rt+o,st[1]=tt,this}}const _controlInterpolantsResultBuffer=new Float32Array(1);class AnimationMixer extends EventDispatcher$1{constructor(o){super(),this._root=o,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(o,et){const tt=o._localRoot||this._root,nt=o._clip.tracks,rt=nt.length,it=o._propertyBindings,ot=o._interpolants,st=tt.uuid,at=this._bindingsByRootAndName;let lt=at[st];lt===void 0&&(lt={},at[st]=lt);for(let ut=0;ut!==rt;++ut){const dt=nt[ut],ht=dt.name;let ct=lt[ht];if(ct!==void 0)++ct.referenceCount,it[ut]=ct;else{if(ct=it[ut],ct!==void 0){ct._cacheIndex===null&&(++ct.referenceCount,this._addInactiveBinding(ct,st,ht));continue}const pt=et&&et._propertyBindings[ut].binding.parsedPath;ct=new PropertyMixer(PropertyBinding.create(tt,ht,pt),dt.ValueTypeName,dt.getValueSize()),++ct.referenceCount,this._addInactiveBinding(ct,st,ht),it[ut]=ct}ot[ut].resultBuffer=ct.buffer}}_activateAction(o){if(!this._isActiveAction(o)){if(o._cacheIndex===null){const tt=(o._localRoot||this._root).uuid,nt=o._clip.uuid,rt=this._actionsByClip[nt];this._bindAction(o,rt&&rt.knownActions[0]),this._addInactiveAction(o,nt,tt)}const et=o._propertyBindings;for(let tt=0,nt=et.length;tt!==nt;++tt){const rt=et[tt];rt.useCount++===0&&(this._lendBinding(rt),rt.saveOriginalState())}this._lendAction(o)}}_deactivateAction(o){if(this._isActiveAction(o)){const et=o._propertyBindings;for(let tt=0,nt=et.length;tt!==nt;++tt){const rt=et[tt];--rt.useCount===0&&(rt.restoreOriginalState(),this._takeBackBinding(rt))}this._takeBackAction(o)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const o=this;this.stats={actions:{get total(){return o._actions.length},get inUse(){return o._nActiveActions}},bindings:{get total(){return o._bindings.length},get inUse(){return o._nActiveBindings}},controlInterpolants:{get total(){return o._controlInterpolants.length},get inUse(){return o._nActiveControlInterpolants}}}}_isActiveAction(o){const et=o._cacheIndex;return et!==null&&et=0;--tt)o[tt].stop();return this}update(o){o*=this.timeScale;const et=this._actions,tt=this._nActiveActions,nt=this.time+=o,rt=Math.sign(o),it=this._accuIndex^=1;for(let at=0;at!==tt;++at)et[at]._update(nt,o,rt,it);const ot=this._bindings,st=this._nActiveBindings;for(let at=0;at!==st;++at)ot[at].apply(it);return this}setTime(o){this.time=0;for(let et=0;etthis.max.x||o.ythis.max.y)}containsBox(o){return this.min.x<=o.min.x&&o.max.x<=this.max.x&&this.min.y<=o.min.y&&o.max.y<=this.max.y}getParameter(o,et){return et.set((o.x-this.min.x)/(this.max.x-this.min.x),(o.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(o){return!(o.max.xthis.max.x||o.max.ythis.max.y)}clampPoint(o,et){return et.copy(o).clamp(this.min,this.max)}distanceToPoint(o){return this.clampPoint(o,_vector$4).distanceTo(o)}intersect(o){return this.min.max(o.min),this.max.min(o.max),this.isEmpty()&&this.makeEmpty(),this}union(o){return this.min.min(o.min),this.max.max(o.max),this}translate(o){return this.min.add(o),this.max.add(o),this}equals(o){return o.min.equals(this.min)&&o.max.equals(this.max)}}const _startP=new Vector3,_startEnd=new Vector3;class Line3{constructor(o=new Vector3,et=new Vector3){this.start=o,this.end=et}set(o,et){return this.start.copy(o),this.end.copy(et),this}copy(o){return this.start.copy(o.start),this.end.copy(o.end),this}getCenter(o){return o.addVectors(this.start,this.end).multiplyScalar(.5)}delta(o){return o.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(o,et){return this.delta(et).multiplyScalar(o).add(this.start)}closestPointToPointParameter(o,et){_startP.subVectors(o,this.start),_startEnd.subVectors(this.end,this.start);const tt=_startEnd.dot(_startEnd);let rt=_startEnd.dot(_startP)/tt;return et&&(rt=clamp$4(rt,0,1)),rt}closestPointToPoint(o,et,tt){const nt=this.closestPointToPointParameter(o,et);return this.delta(tt).multiplyScalar(nt).add(this.start)}applyMatrix4(o){return this.start.applyMatrix4(o),this.end.applyMatrix4(o),this}equals(o){return o.start.equals(this.start)&&o.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const _vector$3=new Vector3;class SpotLightHelper extends Object3D{constructor(o,et){super(),this.light=o,this.matrixAutoUpdate=!1,this.color=et,this.type="SpotLightHelper";const tt=new BufferGeometry,nt=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let it=0,ot=1,st=32;it1)for(let ut=0;ut.99999)this.quaternion.set(0,0,0,1);else if(o.y<-.99999)this.quaternion.set(1,0,0,0);else{_axis.set(o.z,0,-o.x).normalize();const et=Math.acos(o.y);this.quaternion.setFromAxisAngle(_axis,et)}}setLength(o,et=o*.2,tt=et*.2){this.line.scale.set(1,Math.max(1e-4,o-et),1),this.line.updateMatrix(),this.cone.scale.set(tt,et,tt),this.cone.position.y=o,this.cone.updateMatrix()}setColor(o){this.line.material.color.set(o),this.cone.material.color.set(o)}copy(o){return super.copy(o,!1),this.line.copy(o.line),this.cone.copy(o.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class AxesHelper extends LineSegments{constructor(o=1){const et=[0,0,0,o,0,0,0,0,0,0,o,0,0,0,0,0,0,o],tt=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],nt=new BufferGeometry;nt.setAttribute("position",new Float32BufferAttribute(et,3)),nt.setAttribute("color",new Float32BufferAttribute(tt,3));const rt=new LineBasicMaterial({vertexColors:!0,toneMapped:!1});super(nt,rt),this.type="AxesHelper"}setColors(o,et,tt){const nt=new Color$2,rt=this.geometry.attributes.color.array;return nt.set(o),nt.toArray(rt,0),nt.toArray(rt,3),nt.set(et),nt.toArray(rt,6),nt.toArray(rt,9),nt.set(tt),nt.toArray(rt,12),nt.toArray(rt,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class ShapePath{constructor(){this.type="ShapePath",this.color=new Color$2,this.subPaths=[],this.currentPath=null}moveTo(o,et){return this.currentPath=new Path$1,this.subPaths.push(this.currentPath),this.currentPath.moveTo(o,et),this}lineTo(o,et){return this.currentPath.lineTo(o,et),this}quadraticCurveTo(o,et,tt,nt){return this.currentPath.quadraticCurveTo(o,et,tt,nt),this}bezierCurveTo(o,et,tt,nt,rt,it){return this.currentPath.bezierCurveTo(o,et,tt,nt,rt,it),this}splineThru(o){return this.currentPath.splineThru(o),this}toShapes(o){function et(gt){const yt=[];for(let Ut=0,Ft=gt.length;UtNumber.EPSILON){if(St<0&&(At=yt[vt],Rt=-Rt,Lt=yt[mt],St=-St),gt.yLt.y)continue;if(gt.y===At.y){if(gt.x===At.x)return!0}else{const Tt=St*(gt.x-At.x)-Rt*(gt.y-At.y);if(Tt===0)return!0;if(Tt<0)continue;Ft=!Ft}}else{if(gt.y!==At.y)continue;if(Lt.x<=gt.x&>.x<=At.x||At.x<=gt.x&>.x<=Lt.x)return!0}}return Ft}const nt=ShapeUtils.isClockWise,rt=this.subPaths;if(rt.length===0)return[];let it,ot,st;const at=[];if(rt.length===1)return ot=rt[0],st=new Shape,st.curves=ot.curves,at.push(st),at;let lt=!nt(rt[0].getPoints());lt=o?!lt:lt;const ut=[],dt=[];let ht=[],ct=0,pt;dt[ct]=void 0,ht[ct]=[];for(let gt=0,yt=rt.length;gt1){let gt=!1,yt=0;for(let Ut=0,Ft=dt.length;Ut0&>===!1&&(ht=ut)}let ft;for(let gt=0,yt=dt.length;gt=0&&(Ft[jt]=null,Ut[jt].disconnect(Zt))}for(let nn=0;nn=Ft.length){Ft.push(Zt),jt=It;break}else if(Ft[It]===null){Ft[It]=Zt,jt=It;break}if(jt===-1)break}const Vt=Ut[jt];Vt&&Vt.connect(Zt)}}const Nt=new Vector3,Ot=new Vector3;function Jt(Kt,nn,Zt){Nt.setFromMatrixPosition(nn.matrixWorld),Ot.setFromMatrixPosition(Zt.matrixWorld);const jt=Nt.distanceTo(Ot),Vt=nn.projectionMatrix.elements,It=Zt.projectionMatrix.elements,$t=Vt[14]/(Vt[10]-1),Ht=Vt[14]/(Vt[10]+1),qt=(Vt[9]+1)/Vt[5],on=(Vt[9]-1)/Vt[5],Xt=(Vt[8]-1)/Vt[0],dn=(It[8]+1)/It[0],_n=$t*Xt,Fn=$t*dn,Un=jt/(-Xt+dn),On=Un*-Xt;nn.matrixWorld.decompose(Kt.position,Kt.quaternion,Kt.scale),Kt.translateX(On),Kt.translateZ(Un),Kt.matrixWorld.compose(Kt.position,Kt.quaternion,Kt.scale),Kt.matrixWorldInverse.copy(Kt.matrixWorld).invert();const gn=$t+Un,hn=Ht+Un,wn=_n-On,Zn=Fn+(jt-On),Pn=qt*Ht/hn*gn,$n=on*Ht/hn*gn;Kt.projectionMatrix.makePerspective(wn,Zn,Pn,$n,gn,hn),Kt.projectionMatrixInverse.copy(Kt.projectionMatrix).invert()}function Dt(Kt,nn){nn===null?Kt.matrixWorld.copy(Kt.matrix):Kt.matrixWorld.multiplyMatrices(nn.matrixWorld,Kt.matrix),Kt.matrixWorldInverse.copy(Kt.matrixWorld).invert()}this.updateCamera=function(Kt){if(nt===null)return;pt.texture!==null&&(Kt.near=pt.depthNear,Kt.far=pt.depthFar),St.near=Lt.near=At.near=Kt.near,St.far=Lt.far=At.far=Kt.far,(Tt!==St.near||Bt!==St.far)&&(nt.updateRenderState({depthNear:St.near,depthFar:St.far}),Tt=St.near,Bt=St.far,At.near=Tt,At.far=Bt,Lt.near=Tt,Lt.far=Bt,At.updateProjectionMatrix(),Lt.updateProjectionMatrix(),Kt.updateProjectionMatrix());const nn=Kt.parent,Zt=St.cameras;Dt(St,nn);for(let jt=0;jt0&&(ft.alphaTest.value=gt.alphaTest);const yt=o.get(gt),Ut=yt.envMap,Ft=yt.envMapRotation;Ut&&(ft.envMap.value=Ut,_e1.copy(Ft),_e1.x*=-1,_e1.y*=-1,_e1.z*=-1,Ut.isCubeTexture&&Ut.isRenderTargetTexture===!1&&(_e1.y*=-1,_e1.z*=-1),ft.envMapRotation.value.setFromMatrix4(_m1.makeRotationFromEuler(_e1)),ft.flipEnvMap.value=Ut.isCubeTexture&&Ut.isRenderTargetTexture===!1?-1:1,ft.reflectivity.value=gt.reflectivity,ft.ior.value=gt.ior,ft.refractionRatio.value=gt.refractionRatio),gt.lightMap&&(ft.lightMap.value=gt.lightMap,ft.lightMapIntensity.value=gt.lightMapIntensity,et(gt.lightMap,ft.lightMapTransform)),gt.aoMap&&(ft.aoMap.value=gt.aoMap,ft.aoMapIntensity.value=gt.aoMapIntensity,et(gt.aoMap,ft.aoMapTransform))}function it(ft,gt){ft.diffuse.value.copy(gt.color),ft.opacity.value=gt.opacity,gt.map&&(ft.map.value=gt.map,et(gt.map,ft.mapTransform))}function ot(ft,gt){ft.dashSize.value=gt.dashSize,ft.totalSize.value=gt.dashSize+gt.gapSize,ft.scale.value=gt.scale}function st(ft,gt,yt,Ut){ft.diffuse.value.copy(gt.color),ft.opacity.value=gt.opacity,ft.size.value=gt.size*yt,ft.scale.value=Ut*.5,gt.map&&(ft.map.value=gt.map,et(gt.map,ft.uvTransform)),gt.alphaMap&&(ft.alphaMap.value=gt.alphaMap,et(gt.alphaMap,ft.alphaMapTransform)),gt.alphaTest>0&&(ft.alphaTest.value=gt.alphaTest)}function at(ft,gt){ft.diffuse.value.copy(gt.color),ft.opacity.value=gt.opacity,ft.rotation.value=gt.rotation,gt.map&&(ft.map.value=gt.map,et(gt.map,ft.mapTransform)),gt.alphaMap&&(ft.alphaMap.value=gt.alphaMap,et(gt.alphaMap,ft.alphaMapTransform)),gt.alphaTest>0&&(ft.alphaTest.value=gt.alphaTest)}function lt(ft,gt){ft.specular.value.copy(gt.specular),ft.shininess.value=Math.max(gt.shininess,1e-4)}function ut(ft,gt){gt.gradientMap&&(ft.gradientMap.value=gt.gradientMap)}function dt(ft,gt){ft.metalness.value=gt.metalness,gt.metalnessMap&&(ft.metalnessMap.value=gt.metalnessMap,et(gt.metalnessMap,ft.metalnessMapTransform)),ft.roughness.value=gt.roughness,gt.roughnessMap&&(ft.roughnessMap.value=gt.roughnessMap,et(gt.roughnessMap,ft.roughnessMapTransform)),gt.envMap&&(ft.envMapIntensity.value=gt.envMapIntensity)}function ht(ft,gt,yt){ft.ior.value=gt.ior,gt.sheen>0&&(ft.sheenColor.value.copy(gt.sheenColor).multiplyScalar(gt.sheen),ft.sheenRoughness.value=gt.sheenRoughness,gt.sheenColorMap&&(ft.sheenColorMap.value=gt.sheenColorMap,et(gt.sheenColorMap,ft.sheenColorMapTransform)),gt.sheenRoughnessMap&&(ft.sheenRoughnessMap.value=gt.sheenRoughnessMap,et(gt.sheenRoughnessMap,ft.sheenRoughnessMapTransform))),gt.clearcoat>0&&(ft.clearcoat.value=gt.clearcoat,ft.clearcoatRoughness.value=gt.clearcoatRoughness,gt.clearcoatMap&&(ft.clearcoatMap.value=gt.clearcoatMap,et(gt.clearcoatMap,ft.clearcoatMapTransform)),gt.clearcoatRoughnessMap&&(ft.clearcoatRoughnessMap.value=gt.clearcoatRoughnessMap,et(gt.clearcoatRoughnessMap,ft.clearcoatRoughnessMapTransform)),gt.clearcoatNormalMap&&(ft.clearcoatNormalMap.value=gt.clearcoatNormalMap,et(gt.clearcoatNormalMap,ft.clearcoatNormalMapTransform),ft.clearcoatNormalScale.value.copy(gt.clearcoatNormalScale),gt.side===BackSide&&ft.clearcoatNormalScale.value.negate())),gt.dispersion>0&&(ft.dispersion.value=gt.dispersion),gt.iridescence>0&&(ft.iridescence.value=gt.iridescence,ft.iridescenceIOR.value=gt.iridescenceIOR,ft.iridescenceThicknessMinimum.value=gt.iridescenceThicknessRange[0],ft.iridescenceThicknessMaximum.value=gt.iridescenceThicknessRange[1],gt.iridescenceMap&&(ft.iridescenceMap.value=gt.iridescenceMap,et(gt.iridescenceMap,ft.iridescenceMapTransform)),gt.iridescenceThicknessMap&&(ft.iridescenceThicknessMap.value=gt.iridescenceThicknessMap,et(gt.iridescenceThicknessMap,ft.iridescenceThicknessMapTransform))),gt.transmission>0&&(ft.transmission.value=gt.transmission,ft.transmissionSamplerMap.value=yt.texture,ft.transmissionSamplerSize.value.set(yt.width,yt.height),gt.transmissionMap&&(ft.transmissionMap.value=gt.transmissionMap,et(gt.transmissionMap,ft.transmissionMapTransform)),ft.thickness.value=gt.thickness,gt.thicknessMap&&(ft.thicknessMap.value=gt.thicknessMap,et(gt.thicknessMap,ft.thicknessMapTransform)),ft.attenuationDistance.value=gt.attenuationDistance,ft.attenuationColor.value.copy(gt.attenuationColor)),gt.anisotropy>0&&(ft.anisotropyVector.value.set(gt.anisotropy*Math.cos(gt.anisotropyRotation),gt.anisotropy*Math.sin(gt.anisotropyRotation)),gt.anisotropyMap&&(ft.anisotropyMap.value=gt.anisotropyMap,et(gt.anisotropyMap,ft.anisotropyMapTransform))),ft.specularIntensity.value=gt.specularIntensity,ft.specularColor.value.copy(gt.specularColor),gt.specularColorMap&&(ft.specularColorMap.value=gt.specularColorMap,et(gt.specularColorMap,ft.specularColorMapTransform)),gt.specularIntensityMap&&(ft.specularIntensityMap.value=gt.specularIntensityMap,et(gt.specularIntensityMap,ft.specularIntensityMapTransform))}function ct(ft,gt){gt.matcap&&(ft.matcap.value=gt.matcap)}function pt(ft,gt){const yt=o.get(gt).light;ft.referencePosition.value.setFromMatrixPosition(yt.matrixWorld),ft.nearDistance.value=yt.shadow.camera.near,ft.farDistance.value=yt.shadow.camera.far}return{refreshFogUniforms:tt,refreshMaterialUniforms:nt}}function WebGLUniformsGroups(s,o,et,tt){let nt={},rt={},it=[];const ot=s.getParameter(s.MAX_UNIFORM_BUFFER_BINDINGS);function st(yt,Ut){const Ft=Ut.program;tt.uniformBlockBinding(yt,Ft)}function at(yt,Ut){let Ft=nt[yt.id];Ft===void 0&&(ct(yt),Ft=lt(yt),nt[yt.id]=Ft,yt.addEventListener("dispose",ft));const mt=Ut.program;tt.updateUBOMapping(yt,mt);const vt=o.render.frame;rt[yt.id]!==vt&&(dt(yt),rt[yt.id]=vt)}function lt(yt){const Ut=ut();yt.__bindingPointIndex=Ut;const Ft=s.createBuffer(),mt=yt.__size,vt=yt.usage;return s.bindBuffer(s.UNIFORM_BUFFER,Ft),s.bufferData(s.UNIFORM_BUFFER,mt,vt),s.bindBuffer(s.UNIFORM_BUFFER,null),s.bindBufferBase(s.UNIFORM_BUFFER,Ut,Ft),Ft}function ut(){for(let yt=0;yt0&&(Ft+=mt-vt),yt.__size=Ft,yt.__cache={},this}function pt(yt){const Ut={boundary:0,storage:0};return typeof yt=="number"||typeof yt=="boolean"?(Ut.boundary=4,Ut.storage=4):yt.isVector2?(Ut.boundary=8,Ut.storage=8):yt.isVector3||yt.isColor?(Ut.boundary=16,Ut.storage=12):yt.isVector4?(Ut.boundary=16,Ut.storage=16):yt.isMatrix3?(Ut.boundary=48,Ut.storage=48):yt.isMatrix4?(Ut.boundary=64,Ut.storage=64):yt.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",yt),Ut}function ft(yt){const Ut=yt.target;Ut.removeEventListener("dispose",ft);const Ft=it.indexOf(Ut.__bindingPointIndex);it.splice(Ft,1),s.deleteBuffer(nt[Ut.id]),delete nt[Ut.id],delete rt[Ut.id]}function gt(){for(const yt in nt)s.deleteBuffer(nt[yt]);it=[],nt={},rt={}}return{bind:st,update:at,dispose:gt}}class WebGLRenderer{constructor(o={}){const{canvas:et=createCanvasElement(),context:tt=null,depth:nt=!0,stencil:rt=!1,alpha:it=!1,antialias:ot=!1,premultipliedAlpha:st=!0,preserveDrawingBuffer:at=!1,powerPreference:lt="default",failIfMajorPerformanceCaveat:ut=!1}=o;this.isWebGLRenderer=!0;let dt;if(tt!==null){if(typeof WebGLRenderingContext<"u"&&tt instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");dt=tt.getContextAttributes().alpha}else dt=it;const ht=new Uint32Array(4),ct=new Int32Array(4);let pt=null,ft=null;const gt=[],yt=[];this.domElement=et,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=SRGBColorSpace$1,this.toneMapping=NoToneMapping,this.toneMappingExposure=1;const Ut=this;let Ft=!1,mt=0,vt=0,At=null,Lt=-1,Rt=null;const St=new Vector4,Tt=new Vector4;let Bt=null;const xt=new Color$2(0);let Ct=0,kt=et.width,Nt=et.height,Ot=1,Jt=null,Dt=null;const Et=new Vector4(0,0,kt,Nt),Pt=new Vector4(0,0,kt,Nt);let zt=!1;const en=new Frustum;let Kt=!1,nn=!1;const Zt=new Matrix4,jt=new Vector3,Vt={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let It=!1;function $t(){return At===null?Ot:1}let Ht=tt;function qt(Nn,rr){return et.getContext(Nn,rr)}try{const Nn={alpha:!0,depth:nt,stencil:rt,antialias:ot,premultipliedAlpha:st,preserveDrawingBuffer:at,powerPreference:lt,failIfMajorPerformanceCaveat:ut};if("setAttribute"in et&&et.setAttribute("data-engine",`three.js r${REVISION}`),et.addEventListener("webglcontextlost",un,!1),et.addEventListener("webglcontextrestored",pn,!1),et.addEventListener("webglcontextcreationerror",Qn,!1),Ht===null){const rr="webgl2";if(Ht=qt(rr,Nn),Ht===null)throw qt(rr)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(Nn){throw console.error("THREE.WebGLRenderer: "+Nn.message),Nn}let on,Xt,dn,_n,Fn,Un,On,gn,hn,wn,Zn,Pn,$n,Tr,Qr,_r,Ir,Jr,qr,Uo,eo,Yr,_o,ro;function Fo(){on=new WebGLExtensions(Ht),on.init(),Yr=new WebGLUtils(Ht,on),Xt=new WebGLCapabilities(Ht,on,o,Yr),dn=new WebGLState(Ht),_n=new WebGLInfo(Ht),Fn=new WebGLProperties,Un=new WebGLTextures(Ht,on,dn,Fn,Xt,Yr,_n),On=new WebGLCubeMaps(Ut),gn=new WebGLCubeUVMaps(Ut),hn=new WebGLAttributes(Ht),_o=new WebGLBindingStates(Ht,hn),wn=new WebGLGeometries(Ht,hn,_n,_o),Zn=new WebGLObjects(Ht,wn,hn,_n),qr=new WebGLMorphtargets(Ht,Xt,Un),_r=new WebGLClipping(Fn),Pn=new WebGLPrograms(Ut,On,gn,on,Xt,_o,_r),$n=new WebGLMaterials(Ut,Fn),Tr=new WebGLRenderLists,Qr=new WebGLRenderStates(on),Jr=new WebGLBackground(Ut,On,gn,dn,Zn,dt,st),Ir=new WebGLShadowMap(Ut,Zn,Xt),ro=new WebGLUniformsGroups(Ht,_n,Xt,dn),Uo=new WebGLBufferRenderer(Ht,on,_n),eo=new WebGLIndexedBufferRenderer(Ht,on,_n),_n.programs=Pn.programs,Ut.capabilities=Xt,Ut.extensions=on,Ut.properties=Fn,Ut.renderLists=Tr,Ut.shadowMap=Ir,Ut.state=dn,Ut.info=_n}Fo();const kn=new WebXRManager(Ut,Ht);this.xr=kn,this.getContext=function(){return Ht},this.getContextAttributes=function(){return Ht.getContextAttributes()},this.forceContextLoss=function(){const Nn=on.get("WEBGL_lose_context");Nn&&Nn.loseContext()},this.forceContextRestore=function(){const Nn=on.get("WEBGL_lose_context");Nn&&Nn.restoreContext()},this.getPixelRatio=function(){return Ot},this.setPixelRatio=function(Nn){Nn!==void 0&&(Ot=Nn,this.setSize(kt,Nt,!1))},this.getSize=function(Nn){return Nn.set(kt,Nt)},this.setSize=function(Nn,rr,Rr=!0){if(kn.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}kt=Nn,Nt=rr,et.width=Math.floor(Nn*Ot),et.height=Math.floor(rr*Ot),Rr===!0&&(et.style.width=Nn+"px",et.style.height=rr+"px"),this.setViewport(0,0,Nn,rr)},this.getDrawingBufferSize=function(Nn){return Nn.set(kt*Ot,Nt*Ot).floor()},this.setDrawingBufferSize=function(Nn,rr,Rr){kt=Nn,Nt=rr,Ot=Rr,et.width=Math.floor(Nn*Rr),et.height=Math.floor(rr*Rr),this.setViewport(0,0,Nn,rr)},this.getCurrentViewport=function(Nn){return Nn.copy(St)},this.getViewport=function(Nn){return Nn.copy(Et)},this.setViewport=function(Nn,rr,Rr,vr){Nn.isVector4?Et.set(Nn.x,Nn.y,Nn.z,Nn.w):Et.set(Nn,rr,Rr,vr),dn.viewport(St.copy(Et).multiplyScalar(Ot).round())},this.getScissor=function(Nn){return Nn.copy(Pt)},this.setScissor=function(Nn,rr,Rr,vr){Nn.isVector4?Pt.set(Nn.x,Nn.y,Nn.z,Nn.w):Pt.set(Nn,rr,Rr,vr),dn.scissor(Tt.copy(Pt).multiplyScalar(Ot).round())},this.getScissorTest=function(){return zt},this.setScissorTest=function(Nn){dn.setScissorTest(zt=Nn)},this.setOpaqueSort=function(Nn){Jt=Nn},this.setTransparentSort=function(Nn){Dt=Nn},this.getClearColor=function(Nn){return Nn.copy(Jr.getClearColor())},this.setClearColor=function(){Jr.setClearColor.apply(Jr,arguments)},this.getClearAlpha=function(){return Jr.getClearAlpha()},this.setClearAlpha=function(){Jr.setClearAlpha.apply(Jr,arguments)},this.clear=function(Nn=!0,rr=!0,Rr=!0){let vr=0;if(Nn){let fr=!1;if(At!==null){const zr=At.texture.format;fr=zr===RGBAIntegerFormat||zr===RGIntegerFormat||zr===RedIntegerFormat}if(fr){const zr=At.texture.type,Gr=zr===UnsignedByteType||zr===UnsignedIntType||zr===UnsignedShortType||zr===UnsignedInt248Type||zr===UnsignedShort4444Type||zr===UnsignedShort5551Type,Pr=Jr.getClearColor(),oo=Jr.getClearAlpha(),ao=Pr.r,mo=Pr.g,lo=Pr.b;Gr?(ht[0]=ao,ht[1]=mo,ht[2]=lo,ht[3]=oo,Ht.clearBufferuiv(Ht.COLOR,0,ht)):(ct[0]=ao,ct[1]=mo,ct[2]=lo,ct[3]=oo,Ht.clearBufferiv(Ht.COLOR,0,ct))}else vr|=Ht.COLOR_BUFFER_BIT}rr&&(vr|=Ht.DEPTH_BUFFER_BIT),Rr&&(vr|=Ht.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),Ht.clear(vr)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){et.removeEventListener("webglcontextlost",un,!1),et.removeEventListener("webglcontextrestored",pn,!1),et.removeEventListener("webglcontextcreationerror",Qn,!1),Tr.dispose(),Qr.dispose(),Fn.dispose(),On.dispose(),gn.dispose(),Zn.dispose(),_o.dispose(),ro.dispose(),Pn.dispose(),kn.dispose(),kn.removeEventListener("sessionstart",ar),kn.removeEventListener("sessionend",hr),cn.stop()};function un(Nn){Nn.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),Ft=!0}function pn(){console.log("THREE.WebGLRenderer: Context Restored."),Ft=!1;const Nn=_n.autoReset,rr=Ir.enabled,Rr=Ir.autoUpdate,vr=Ir.needsUpdate,fr=Ir.type;Fo(),_n.autoReset=Nn,Ir.enabled=rr,Ir.autoUpdate=Rr,Ir.needsUpdate=vr,Ir.type=fr}function Qn(Nn){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",Nn.statusMessage)}function Jn(Nn){const rr=Nn.target;rr.removeEventListener("dispose",Jn),jn(rr)}function jn(Nn){Fr(Nn),Fn.remove(Nn)}function Fr(Nn){const rr=Fn.get(Nn).programs;rr!==void 0&&(rr.forEach(function(Rr){Pn.releaseProgram(Rr)}),Nn.isShaderMaterial&&Pn.releaseShaderCache(Nn))}this.renderBufferDirect=function(Nn,rr,Rr,vr,fr,zr){rr===null&&(rr=Vt);const Gr=fr.isMesh&&fr.matrixWorld.determinant()<0,Pr=nr(Nn,rr,Rr,vr,fr);dn.setMaterial(vr,Gr);let oo=Rr.index,ao=1;if(vr.wireframe===!0){if(oo=wn.getWireframeAttribute(Rr),oo===void 0)return;ao=2}const mo=Rr.drawRange,lo=Rr.attributes.position;let To=mo.start*ao,Wo=(mo.start+mo.count)*ao;zr!==null&&(To=Math.max(To,zr.start*ao),Wo=Math.min(Wo,(zr.start+zr.count)*ao)),oo!==null?(To=Math.max(To,0),Wo=Math.min(Wo,oo.count)):lo!=null&&(To=Math.max(To,0),Wo=Math.min(Wo,lo.count));const Go=Wo-To;if(Go<0||Go===1/0)return;_o.setup(fr,vr,Pr,Rr,oo);let cs,So=Uo;if(oo!==null&&(cs=hn.get(oo),So=eo,So.setIndex(cs)),fr.isMesh)vr.wireframe===!0?(dn.setLineWidth(vr.wireframeLinewidth*$t()),So.setMode(Ht.LINES)):So.setMode(Ht.TRIANGLES);else if(fr.isLine){let so=vr.linewidth;so===void 0&&(so=1),dn.setLineWidth(so*$t()),fr.isLineSegments?So.setMode(Ht.LINES):fr.isLineLoop?So.setMode(Ht.LINE_LOOP):So.setMode(Ht.LINE_STRIP)}else fr.isPoints?So.setMode(Ht.POINTS):fr.isSprite&&So.setMode(Ht.TRIANGLES);if(fr.isBatchedMesh)fr._multiDrawInstances!==null?So.renderMultiDrawInstances(fr._multiDrawStarts,fr._multiDrawCounts,fr._multiDrawCount,fr._multiDrawInstances):So.renderMultiDraw(fr._multiDrawStarts,fr._multiDrawCounts,fr._multiDrawCount);else if(fr.isInstancedMesh)So.renderInstances(To,Go,fr.count);else if(Rr.isInstancedBufferGeometry){const so=Rr._maxInstanceCount!==void 0?Rr._maxInstanceCount:1/0,Bo=Math.min(Rr.instanceCount,so);So.renderInstances(To,Go,Bo)}else So.render(To,Go)};function Er(Nn,rr,Rr){Nn.transparent===!0&&Nn.side===DoubleSide&&Nn.forceSinglePass===!1?(Nn.side=BackSide,Nn.needsUpdate=!0,gr(Nn,rr,Rr),Nn.side=FrontSide,Nn.needsUpdate=!0,gr(Nn,rr,Rr),Nn.side=DoubleSide):gr(Nn,rr,Rr)}this.compile=function(Nn,rr,Rr=null){Rr===null&&(Rr=Nn),ft=Qr.get(Rr),ft.init(rr),yt.push(ft),Rr.traverseVisible(function(fr){fr.isLight&&fr.layers.test(rr.layers)&&(ft.pushLight(fr),fr.castShadow&&ft.pushShadow(fr))}),Nn!==Rr&&Nn.traverseVisible(function(fr){fr.isLight&&fr.layers.test(rr.layers)&&(ft.pushLight(fr),fr.castShadow&&ft.pushShadow(fr))}),ft.setupLights();const vr=new Set;return Nn.traverse(function(fr){const zr=fr.material;if(zr)if(Array.isArray(zr))for(let Gr=0;Gr{function zr(){if(vr.forEach(function(Gr){Fn.get(Gr).currentProgram.isReady()&&vr.delete(Gr)}),vr.size===0){fr(Nn);return}setTimeout(zr,10)}on.get("KHR_parallel_shader_compile")!==null?zr():setTimeout(zr,10)})};let wr=null;function tr(Nn){wr&&wr(Nn)}function ar(){cn.stop()}function hr(){cn.start()}const cn=new WebGLAnimation;cn.setAnimationLoop(tr),typeof self<"u"&&cn.setContext(self),this.setAnimationLoop=function(Nn){wr=Nn,kn.setAnimationLoop(Nn),Nn===null?cn.stop():cn.start()},kn.addEventListener("sessionstart",ar),kn.addEventListener("sessionend",hr),this.render=function(Nn,rr){if(rr!==void 0&&rr.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(Ft===!0)return;if(Nn.matrixWorldAutoUpdate===!0&&Nn.updateMatrixWorld(),rr.parent===null&&rr.matrixWorldAutoUpdate===!0&&rr.updateMatrixWorld(),kn.enabled===!0&&kn.isPresenting===!0&&(kn.cameraAutoUpdate===!0&&kn.updateCamera(rr),rr=kn.getCamera()),Nn.isScene===!0&&Nn.onBeforeRender(Ut,Nn,rr,At),ft=Qr.get(Nn,yt.length),ft.init(rr),yt.push(ft),Zt.multiplyMatrices(rr.projectionMatrix,rr.matrixWorldInverse),en.setFromProjectionMatrix(Zt),nn=this.localClippingEnabled,Kt=_r.init(this.clippingPlanes,nn),pt=Tr.get(Nn,gt.length),pt.init(),gt.push(pt),kn.enabled===!0&&kn.isPresenting===!0){const zr=Ut.xr.getDepthSensingMesh();zr!==null&&mn(zr,rr,-1/0,Ut.sortObjects)}mn(Nn,rr,0,Ut.sortObjects),pt.finish(),Ut.sortObjects===!0&&pt.sort(Jt,Dt),It=kn.enabled===!1||kn.isPresenting===!1||kn.hasDepthSensing()===!1,It&&Jr.addToRenderList(pt,Nn),this.info.render.frame++,Kt===!0&&_r.beginShadows();const Rr=ft.state.shadowsArray;Ir.render(Rr,Nn,rr),Kt===!0&&_r.endShadows(),this.info.autoReset===!0&&this.info.reset();const vr=pt.opaque,fr=pt.transmissive;if(ft.setupLights(),rr.isArrayCamera){const zr=rr.cameras;if(fr.length>0)for(let Gr=0,Pr=zr.length;Gr0&&Gn(vr,fr,Nn,rr),It&&Jr.render(Nn),xn(pt,Nn,rr);At!==null&&(Un.updateMultisampleRenderTarget(At),Un.updateRenderTargetMipmap(At)),Nn.isScene===!0&&Nn.onAfterRender(Ut,Nn,rr),_o.resetDefaultState(),Lt=-1,Rt=null,yt.pop(),yt.length>0?(ft=yt[yt.length-1],Kt===!0&&_r.setGlobalState(Ut.clippingPlanes,ft.state.camera)):ft=null,gt.pop(),gt.length>0?pt=gt[gt.length-1]:pt=null};function mn(Nn,rr,Rr,vr){if(Nn.visible===!1)return;if(Nn.layers.test(rr.layers)){if(Nn.isGroup)Rr=Nn.renderOrder;else if(Nn.isLOD)Nn.autoUpdate===!0&&Nn.update(rr);else if(Nn.isLight)ft.pushLight(Nn),Nn.castShadow&&ft.pushShadow(Nn);else if(Nn.isSprite){if(!Nn.frustumCulled||en.intersectsSprite(Nn)){vr&&jt.setFromMatrixPosition(Nn.matrixWorld).applyMatrix4(Zt);const Gr=Zn.update(Nn),Pr=Nn.material;Pr.visible&&pt.push(Nn,Gr,Pr,Rr,jt.z,null)}}else if((Nn.isMesh||Nn.isLine||Nn.isPoints)&&(!Nn.frustumCulled||en.intersectsObject(Nn))){const Gr=Zn.update(Nn),Pr=Nn.material;if(vr&&(Nn.boundingSphere!==void 0?(Nn.boundingSphere===null&&Nn.computeBoundingSphere(),jt.copy(Nn.boundingSphere.center)):(Gr.boundingSphere===null&&Gr.computeBoundingSphere(),jt.copy(Gr.boundingSphere.center)),jt.applyMatrix4(Nn.matrixWorld).applyMatrix4(Zt)),Array.isArray(Pr)){const oo=Gr.groups;for(let ao=0,mo=oo.length;ao0&&er(fr,rr,Rr),zr.length>0&&er(zr,rr,Rr),Gr.length>0&&er(Gr,rr,Rr),dn.buffers.depth.setTest(!0),dn.buffers.depth.setMask(!0),dn.buffers.color.setMask(!0),dn.setPolygonOffset(!1)}function Gn(Nn,rr,Rr,vr){if((Rr.isScene===!0?Rr.overrideMaterial:null)!==null)return;ft.state.transmissionRenderTarget[vr.id]===void 0&&(ft.state.transmissionRenderTarget[vr.id]=new WebGLRenderTarget(1,1,{generateMipmaps:!0,type:on.has("EXT_color_buffer_half_float")||on.has("EXT_color_buffer_float")?HalfFloatType:UnsignedByteType,minFilter:LinearMipmapLinearFilter,samples:4,stencilBuffer:rt,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:ColorManagement.workingColorSpace}));const zr=ft.state.transmissionRenderTarget[vr.id],Gr=vr.viewport||St;zr.setSize(Gr.z,Gr.w);const Pr=Ut.getRenderTarget();Ut.setRenderTarget(zr),Ut.getClearColor(xt),Ct=Ut.getClearAlpha(),Ct<1&&Ut.setClearColor(16777215,.5),It?Jr.render(Rr):Ut.clear();const oo=Ut.toneMapping;Ut.toneMapping=NoToneMapping;const ao=vr.viewport;if(vr.viewport!==void 0&&(vr.viewport=void 0),ft.setupLightsView(vr),Kt===!0&&_r.setGlobalState(Ut.clippingPlanes,vr),er(Nn,Rr,vr),Un.updateMultisampleRenderTarget(zr),Un.updateRenderTargetMipmap(zr),on.has("WEBGL_multisampled_render_to_texture")===!1){let mo=!1;for(let lo=0,To=rr.length;lo0),lo=!!Rr.morphAttributes.position,To=!!Rr.morphAttributes.normal,Wo=!!Rr.morphAttributes.color;let Go=NoToneMapping;vr.toneMapped&&(At===null||At.isXRRenderTarget===!0)&&(Go=Ut.toneMapping);const cs=Rr.morphAttributes.position||Rr.morphAttributes.normal||Rr.morphAttributes.color,So=cs!==void 0?cs.length:0,so=Fn.get(vr),Bo=ft.state.lights;if(Kt===!0&&(nn===!0||Nn!==Rt)){const No=Nn===Rt&&vr.id===Lt;_r.setState(vr,Nn,No)}let Io=!1;vr.version===so.__version?(so.needsLights&&so.lightsStateVersion!==Bo.state.version||so.outputColorSpace!==Pr||fr.isBatchedMesh&&so.batching===!1||!fr.isBatchedMesh&&so.batching===!0||fr.isBatchedMesh&&so.batchingColor===!0&&fr.colorTexture===null||fr.isBatchedMesh&&so.batchingColor===!1&&fr.colorTexture!==null||fr.isInstancedMesh&&so.instancing===!1||!fr.isInstancedMesh&&so.instancing===!0||fr.isSkinnedMesh&&so.skinning===!1||!fr.isSkinnedMesh&&so.skinning===!0||fr.isInstancedMesh&&so.instancingColor===!0&&fr.instanceColor===null||fr.isInstancedMesh&&so.instancingColor===!1&&fr.instanceColor!==null||fr.isInstancedMesh&&so.instancingMorph===!0&&fr.morphTexture===null||fr.isInstancedMesh&&so.instancingMorph===!1&&fr.morphTexture!==null||so.envMap!==oo||vr.fog===!0&&so.fog!==zr||so.numClippingPlanes!==void 0&&(so.numClippingPlanes!==_r.numPlanes||so.numIntersection!==_r.numIntersection)||so.vertexAlphas!==ao||so.vertexTangents!==mo||so.morphTargets!==lo||so.morphNormals!==To||so.morphColors!==Wo||so.toneMapping!==Go||so.morphTargetsCount!==So)&&(Io=!0):(Io=!0,so.__version=vr.version);let ns=so.currentProgram;Io===!0&&(ns=gr(vr,rr,fr));let ps=!1,gs=!1,bs=!1;const Lo=ns.getUniforms(),Qs=so.uniforms;if(dn.useProgram(ns.program)&&(ps=!0,gs=!0,bs=!0),vr.id!==Lt&&(Lt=vr.id,gs=!0),ps||Rt!==Nn){Lo.setValue(Ht,"projectionMatrix",Nn.projectionMatrix),Lo.setValue(Ht,"viewMatrix",Nn.matrixWorldInverse);const No=Lo.map.cameraPosition;No!==void 0&&No.setValue(Ht,jt.setFromMatrixPosition(Nn.matrixWorld)),Xt.logarithmicDepthBuffer&&Lo.setValue(Ht,"logDepthBufFC",2/(Math.log(Nn.far+1)/Math.LN2)),(vr.isMeshPhongMaterial||vr.isMeshToonMaterial||vr.isMeshLambertMaterial||vr.isMeshBasicMaterial||vr.isMeshStandardMaterial||vr.isShaderMaterial)&&Lo.setValue(Ht,"isOrthographic",Nn.isOrthographicCamera===!0),Rt!==Nn&&(Rt=Nn,gs=!0,bs=!0)}if(fr.isSkinnedMesh){Lo.setOptional(Ht,fr,"bindMatrix"),Lo.setOptional(Ht,fr,"bindMatrixInverse");const No=fr.skeleton;No&&(No.boneTexture===null&&No.computeBoneTexture(),Lo.setValue(Ht,"boneTexture",No.boneTexture,Un))}fr.isBatchedMesh&&(Lo.setOptional(Ht,fr,"batchingTexture"),Lo.setValue(Ht,"batchingTexture",fr._matricesTexture,Un),Lo.setOptional(Ht,fr,"batchingColorTexture"),fr._colorsTexture!==null&&Lo.setValue(Ht,"batchingColorTexture",fr._colorsTexture,Un));const Ps=Rr.morphAttributes;if((Ps.position!==void 0||Ps.normal!==void 0||Ps.color!==void 0)&&qr.update(fr,Rr,ns),(gs||so.receiveShadow!==fr.receiveShadow)&&(so.receiveShadow=fr.receiveShadow,Lo.setValue(Ht,"receiveShadow",fr.receiveShadow)),vr.isMeshGouraudMaterial&&vr.envMap!==null&&(Qs.envMap.value=oo,Qs.flipEnvMap.value=oo.isCubeTexture&&oo.isRenderTargetTexture===!1?-1:1),vr.isMeshStandardMaterial&&vr.envMap===null&&rr.environment!==null&&(Qs.envMapIntensity.value=rr.environmentIntensity),gs&&(Lo.setValue(Ht,"toneMappingExposure",Ut.toneMappingExposure),so.needsLights&&Kr(Qs,bs),zr&&vr.fog===!0&&$n.refreshFogUniforms(Qs,zr),$n.refreshMaterialUniforms(Qs,vr,Ot,Nt,ft.state.transmissionRenderTarget[Nn.id]),WebGLUniforms.upload(Ht,br(so),Qs,Un)),vr.isShaderMaterial&&vr.uniformsNeedUpdate===!0&&(WebGLUniforms.upload(Ht,br(so),Qs,Un),vr.uniformsNeedUpdate=!1),vr.isSpriteMaterial&&Lo.setValue(Ht,"center",fr.center),Lo.setValue(Ht,"modelViewMatrix",fr.modelViewMatrix),Lo.setValue(Ht,"normalMatrix",fr.normalMatrix),Lo.setValue(Ht,"modelMatrix",fr.matrixWorld),vr.isShaderMaterial||vr.isRawShaderMaterial){const No=vr.uniformsGroups;for(let ys=0,Ns=No.length;ys0&&Un.useMultisampledRTT(Nn)===!1?fr=Fn.get(Nn).__webglMultisampledFramebuffer:Array.isArray(mo)?fr=mo[Rr]:fr=mo,St.copy(Nn.viewport),Tt.copy(Nn.scissor),Bt=Nn.scissorTest}else St.copy(Et).multiplyScalar(Ot).floor(),Tt.copy(Pt).multiplyScalar(Ot).floor(),Bt=zt;if(dn.bindFramebuffer(Ht.FRAMEBUFFER,fr)&&vr&&dn.drawBuffers(Nn,fr),dn.viewport(St),dn.scissor(Tt),dn.setScissorTest(Bt),zr){const oo=Fn.get(Nn.texture);Ht.framebufferTexture2D(Ht.FRAMEBUFFER,Ht.COLOR_ATTACHMENT0,Ht.TEXTURE_CUBE_MAP_POSITIVE_X+rr,oo.__webglTexture,Rr)}else if(Gr){const oo=Fn.get(Nn.texture),ao=rr||0;Ht.framebufferTextureLayer(Ht.FRAMEBUFFER,Ht.COLOR_ATTACHMENT0,oo.__webglTexture,Rr||0,ao)}Lt=-1},this.readRenderTargetPixels=function(Nn,rr,Rr,vr,fr,zr,Gr){if(!(Nn&&Nn.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Pr=Fn.get(Nn).__webglFramebuffer;if(Nn.isWebGLCubeRenderTarget&&Gr!==void 0&&(Pr=Pr[Gr]),Pr){dn.bindFramebuffer(Ht.FRAMEBUFFER,Pr);try{const oo=Nn.texture,ao=oo.format,mo=oo.type;if(!Xt.textureFormatReadable(ao)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!Xt.textureTypeReadable(mo)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}rr>=0&&rr<=Nn.width-vr&&Rr>=0&&Rr<=Nn.height-fr&&Ht.readPixels(rr,Rr,vr,fr,Yr.convert(ao),Yr.convert(mo),zr)}finally{const oo=At!==null?Fn.get(At).__webglFramebuffer:null;dn.bindFramebuffer(Ht.FRAMEBUFFER,oo)}}},this.readRenderTargetPixelsAsync=async function(Nn,rr,Rr,vr,fr,zr,Gr){if(!(Nn&&Nn.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Pr=Fn.get(Nn).__webglFramebuffer;if(Nn.isWebGLCubeRenderTarget&&Gr!==void 0&&(Pr=Pr[Gr]),Pr){dn.bindFramebuffer(Ht.FRAMEBUFFER,Pr);try{const oo=Nn.texture,ao=oo.format,mo=oo.type;if(!Xt.textureFormatReadable(ao))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!Xt.textureTypeReadable(mo))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(rr>=0&&rr<=Nn.width-vr&&Rr>=0&&Rr<=Nn.height-fr){const lo=Ht.createBuffer();Ht.bindBuffer(Ht.PIXEL_PACK_BUFFER,lo),Ht.bufferData(Ht.PIXEL_PACK_BUFFER,zr.byteLength,Ht.STREAM_READ),Ht.readPixels(rr,Rr,vr,fr,Yr.convert(ao),Yr.convert(mo),0),Ht.flush();const To=Ht.fenceSync(Ht.SYNC_GPU_COMMANDS_COMPLETE,0);await probeAsync(Ht,To,4);try{Ht.bindBuffer(Ht.PIXEL_PACK_BUFFER,lo),Ht.getBufferSubData(Ht.PIXEL_PACK_BUFFER,0,zr)}finally{Ht.deleteBuffer(lo),Ht.deleteSync(To)}return zr}}finally{const oo=At!==null?Fn.get(At).__webglFramebuffer:null;dn.bindFramebuffer(Ht.FRAMEBUFFER,oo)}}},this.copyFramebufferToTexture=function(Nn,rr=null,Rr=0){Nn.isTexture!==!0&&(console.warn("WebGLRenderer: copyFramebufferToTexture function signature has changed."),rr=arguments[0]||null,Nn=arguments[1]);const vr=Math.pow(2,-Rr),fr=Math.floor(Nn.image.width*vr),zr=Math.floor(Nn.image.height*vr),Gr=rr!==null?rr.x:0,Pr=rr!==null?rr.y:0;Un.setTexture2D(Nn,0),Ht.copyTexSubImage2D(Ht.TEXTURE_2D,Rr,0,0,Gr,Pr,fr,zr),dn.unbindTexture()},this.copyTextureToTexture=function(Nn,rr,Rr=null,vr=null,fr=0){Nn.isTexture!==!0&&(console.warn("WebGLRenderer: copyTextureToTexture function signature has changed."),vr=arguments[0]||null,Nn=arguments[1],rr=arguments[2],fr=arguments[3]||0,Rr=null);let zr,Gr,Pr,oo,ao,mo;Rr!==null?(zr=Rr.max.x-Rr.min.x,Gr=Rr.max.y-Rr.min.y,Pr=Rr.min.x,oo=Rr.min.y):(zr=Nn.image.width,Gr=Nn.image.height,Pr=0,oo=0),vr!==null?(ao=vr.x,mo=vr.y):(ao=0,mo=0);const lo=Yr.convert(rr.format),To=Yr.convert(rr.type);Un.setTexture2D(rr,0),Ht.pixelStorei(Ht.UNPACK_FLIP_Y_WEBGL,rr.flipY),Ht.pixelStorei(Ht.UNPACK_PREMULTIPLY_ALPHA_WEBGL,rr.premultiplyAlpha),Ht.pixelStorei(Ht.UNPACK_ALIGNMENT,rr.unpackAlignment);const Wo=Ht.getParameter(Ht.UNPACK_ROW_LENGTH),Go=Ht.getParameter(Ht.UNPACK_IMAGE_HEIGHT),cs=Ht.getParameter(Ht.UNPACK_SKIP_PIXELS),So=Ht.getParameter(Ht.UNPACK_SKIP_ROWS),so=Ht.getParameter(Ht.UNPACK_SKIP_IMAGES),Bo=Nn.isCompressedTexture?Nn.mipmaps[fr]:Nn.image;Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Bo.width),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Bo.height),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,Pr),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,oo),Nn.isDataTexture?Ht.texSubImage2D(Ht.TEXTURE_2D,fr,ao,mo,zr,Gr,lo,To,Bo.data):Nn.isCompressedTexture?Ht.compressedTexSubImage2D(Ht.TEXTURE_2D,fr,ao,mo,Bo.width,Bo.height,lo,Bo.data):Ht.texSubImage2D(Ht.TEXTURE_2D,fr,ao,mo,lo,To,Bo),Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Wo),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Go),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,cs),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,So),Ht.pixelStorei(Ht.UNPACK_SKIP_IMAGES,so),fr===0&&rr.generateMipmaps&&Ht.generateMipmap(Ht.TEXTURE_2D),dn.unbindTexture()},this.copyTextureToTexture3D=function(Nn,rr,Rr=null,vr=null,fr=0){Nn.isTexture!==!0&&(console.warn("WebGLRenderer: copyTextureToTexture3D function signature has changed."),Rr=arguments[0]||null,vr=arguments[1]||null,Nn=arguments[2],rr=arguments[3],fr=arguments[4]||0);let zr,Gr,Pr,oo,ao,mo,lo,To,Wo;const Go=Nn.isCompressedTexture?Nn.mipmaps[fr]:Nn.image;Rr!==null?(zr=Rr.max.x-Rr.min.x,Gr=Rr.max.y-Rr.min.y,Pr=Rr.max.z-Rr.min.z,oo=Rr.min.x,ao=Rr.min.y,mo=Rr.min.z):(zr=Go.width,Gr=Go.height,Pr=Go.depth,oo=0,ao=0,mo=0),vr!==null?(lo=vr.x,To=vr.y,Wo=vr.z):(lo=0,To=0,Wo=0);const cs=Yr.convert(rr.format),So=Yr.convert(rr.type);let so;if(rr.isData3DTexture)Un.setTexture3D(rr,0),so=Ht.TEXTURE_3D;else if(rr.isDataArrayTexture||rr.isCompressedArrayTexture)Un.setTexture2DArray(rr,0),so=Ht.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}Ht.pixelStorei(Ht.UNPACK_FLIP_Y_WEBGL,rr.flipY),Ht.pixelStorei(Ht.UNPACK_PREMULTIPLY_ALPHA_WEBGL,rr.premultiplyAlpha),Ht.pixelStorei(Ht.UNPACK_ALIGNMENT,rr.unpackAlignment);const Bo=Ht.getParameter(Ht.UNPACK_ROW_LENGTH),Io=Ht.getParameter(Ht.UNPACK_IMAGE_HEIGHT),ns=Ht.getParameter(Ht.UNPACK_SKIP_PIXELS),ps=Ht.getParameter(Ht.UNPACK_SKIP_ROWS),gs=Ht.getParameter(Ht.UNPACK_SKIP_IMAGES);Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Go.width),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Go.height),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,oo),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,ao),Ht.pixelStorei(Ht.UNPACK_SKIP_IMAGES,mo),Nn.isDataTexture||Nn.isData3DTexture?Ht.texSubImage3D(so,fr,lo,To,Wo,zr,Gr,Pr,cs,So,Go.data):rr.isCompressedArrayTexture?Ht.compressedTexSubImage3D(so,fr,lo,To,Wo,zr,Gr,Pr,cs,Go.data):Ht.texSubImage3D(so,fr,lo,To,Wo,zr,Gr,Pr,cs,So,Go),Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Bo),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Io),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,ns),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,ps),Ht.pixelStorei(Ht.UNPACK_SKIP_IMAGES,gs),fr===0&&rr.generateMipmaps&&Ht.generateMipmap(so),dn.unbindTexture()},this.initRenderTarget=function(Nn){Fn.get(Nn).__webglFramebuffer===void 0&&Un.setupRenderTarget(Nn)},this.initTexture=function(Nn){Nn.isCubeTexture?Un.setTextureCube(Nn,0):Nn.isData3DTexture?Un.setTexture3D(Nn,0):Nn.isDataArrayTexture||Nn.isCompressedArrayTexture?Un.setTexture2DArray(Nn,0):Un.setTexture2D(Nn,0),dn.unbindTexture()},this.resetState=function(){mt=0,vt=0,At=null,dn.reset(),_o.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return WebGLCoordinateSystem}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(o){this._outputColorSpace=o;const et=this.getContext();et.drawingBufferColorSpace=o===DisplayP3ColorSpace?"display-p3":"srgb",et.unpackColorSpace=ColorManagement.workingColorSpace===LinearDisplayP3ColorSpace?"display-p3":"srgb"}}class FogExp2{constructor(o,et=25e-5){this.isFogExp2=!0,this.name="",this.color=new Color$2(o),this.density=et}clone(){return new FogExp2(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Fog{constructor(o,et=1,tt=1e3){this.isFog=!0,this.name="",this.color=new Color$2(o),this.near=et,this.far=tt}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Scene extends Object3D{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Euler,this.environmentIntensity=1,this.environmentRotation=new Euler,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(o,et){return super.copy(o,et),o.background!==null&&(this.background=o.background.clone()),o.environment!==null&&(this.environment=o.environment.clone()),o.fog!==null&&(this.fog=o.fog.clone()),this.backgroundBlurriness=o.backgroundBlurriness,this.backgroundIntensity=o.backgroundIntensity,this.backgroundRotation.copy(o.backgroundRotation),this.environmentIntensity=o.environmentIntensity,this.environmentRotation.copy(o.environmentRotation),o.overrideMaterial!==null&&(this.overrideMaterial=o.overrideMaterial.clone()),this.matrixAutoUpdate=o.matrixAutoUpdate,this}toJSON(o){const et=super.toJSON(o);return this.fog!==null&&(et.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(et.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(et.object.backgroundIntensity=this.backgroundIntensity),et.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(et.object.environmentIntensity=this.environmentIntensity),et.object.environmentRotation=this.environmentRotation.toArray(),et}}class InterleavedBuffer{constructor(o,et){this.isInterleavedBuffer=!0,this.array=o,this.stride=et,this.count=o!==void 0?o.length/et:0,this.usage=StaticDrawUsage,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=generateUUID()}onUploadCallback(){}set needsUpdate(o){o===!0&&this.version++}get updateRange(){return warnOnce("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(o){return this.usage=o,this}addUpdateRange(o,et){this.updateRanges.push({start:o,count:et})}clearUpdateRanges(){this.updateRanges.length=0}copy(o){return this.array=new o.array.constructor(o.array),this.count=o.count,this.stride=o.stride,this.usage=o.usage,this}copyAt(o,et,tt){o*=this.stride,tt*=et.stride;for(let nt=0,rt=this.stride;nto.far||et.push({distance:st,point:_intersectPoint.clone(),uv:Triangle.getInterpolation(_intersectPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2),face:null,object:this})}copy(o,et){return super.copy(o,et),o.center!==void 0&&this.center.copy(o.center),this.material=o.material,this}}function transformVertex(s,o,et,tt,nt,rt){_alignedPosition.subVectors(s,et).addScalar(.5).multiply(tt),nt!==void 0?(_rotatedPosition.x=rt*_alignedPosition.x-nt*_alignedPosition.y,_rotatedPosition.y=nt*_alignedPosition.x+rt*_alignedPosition.y):_rotatedPosition.copy(_alignedPosition),s.copy(o),s.x+=_rotatedPosition.x,s.y+=_rotatedPosition.y,s.applyMatrix4(_viewWorldMatrix)}const _v1$2=new Vector3,_v2$1=new Vector3;class LOD extends Object3D{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(o){super.copy(o,!1);const et=o.levels;for(let tt=0,nt=et.length;tt0){let tt,nt;for(tt=1,nt=et.length;tt0){_v1$2.setFromMatrixPosition(this.matrixWorld);const nt=o.ray.origin.distanceTo(_v1$2);this.getObjectForDistance(nt).raycast(o,et)}}update(o){const et=this.levels;if(et.length>1){_v1$2.setFromMatrixPosition(o.matrixWorld),_v2$1.setFromMatrixPosition(this.matrixWorld);const tt=_v1$2.distanceTo(_v2$1)/o.zoom;et[0].object.visible=!0;let nt,rt;for(nt=1,rt=et.length;nt=it)et[nt-1].object.visible=!1,et[nt].object.visible=!0;else break}for(this._currentLevel=nt-1;nt=tt.length&&tt.push({start:-1,count:-1,z:-1});const rt=tt[this.index];nt.push(rt),this.index++,rt.start=o.start,rt.count=o.count,rt.z=et}reset(){this.list.length=0,this.index=0}}const ID_ATTR_NAME="batchId",_matrix$1=new Matrix4,_invMatrixWorld=new Matrix4,_identityMatrix$2=new Matrix4,_whiteColor=new Color$2(1,1,1),_projScreenMatrix$2=new Matrix4,_frustum=new Frustum,_box$1$1=new Box3,_sphere$2=new Sphere$1,_vector$5=new Vector3,_forward=new Vector3,_temp=new Vector3,_renderList=new MultiDrawRenderList,_mesh=new Mesh,_batchIntersects=[];function copyAttributeData(s,o,et=0){const tt=o.itemSize;if(s.isInterleavedBufferAttribute||s.array.constructor!==o.array.constructor){const nt=s.count;for(let rt=0;rt65536?new Uint32Array(rt):new Uint16Array(rt);et.setIndex(new BufferAttribute(ot,1))}const it=nt>65536?new Uint32Array(tt):new Uint16Array(tt);et.setAttribute(ID_ATTR_NAME,new BufferAttribute(it,1)),this._geometryInitialized=!0}}_validateGeometry(o){if(o.getAttribute(ID_ATTR_NAME))throw new Error(`BatchedMesh: Geometry cannot use attribute "${ID_ATTR_NAME}"`);const et=this.geometry;if(!!o.getIndex()!=!!et.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const tt in et.attributes){if(tt===ID_ATTR_NAME)continue;if(!o.hasAttribute(tt))throw new Error(`BatchedMesh: Added geometry missing "${tt}". All geometries must have consistent attributes.`);const nt=o.getAttribute(tt),rt=et.getAttribute(tt);if(nt.itemSize!==rt.itemSize||nt.normalized!==rt.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(o){return this.customSort=o,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Box3);const o=this._geometryCount,et=this.boundingBox,tt=this._active;et.makeEmpty();for(let nt=0;nt=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const nt={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let rt=null;const it=this._reservedRanges,ot=this._drawRanges,st=this._bounds;this._geometryCount!==0&&(rt=it[it.length-1]),et===-1?nt.vertexCount=o.getAttribute("position").count:nt.vertexCount=et,rt===null?nt.vertexStart=0:nt.vertexStart=rt.vertexStart+rt.vertexCount;const at=o.getIndex(),lt=at!==null;if(lt&&(tt===-1?nt.indexCount=at.count:nt.indexCount=tt,rt===null?nt.indexStart=0:nt.indexStart=rt.indexStart+rt.indexCount),nt.indexStart!==-1&&nt.indexStart+nt.indexCount>this._maxIndexCount||nt.vertexStart+nt.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const ut=this._visibility,dt=this._active,ht=this._matricesTexture,ct=this._matricesTexture.image.data,pt=this._colorsTexture;ut.push(!0),dt.push(!0);const ft=this._geometryCount;this._geometryCount++,_identityMatrix$2.toArray(ct,ft*16),ht.needsUpdate=!0,pt!==null&&(_whiteColor.toArray(pt.image.data,ft*4),pt.needsUpdate=!0),it.push(nt),ot.push({start:lt?nt.indexStart:nt.vertexStart,count:-1}),st.push({boxInitialized:!1,box:new Box3,sphereInitialized:!1,sphere:new Sphere$1});const gt=this.geometry.getAttribute(ID_ATTR_NAME);for(let yt=0;yt=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(et);const tt=this.geometry,nt=tt.getIndex()!==null,rt=tt.getIndex(),it=et.getIndex(),ot=this._reservedRanges[o];if(nt&&it.count>ot.indexCount||et.attributes.position.count>ot.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const st=ot.vertexStart,at=ot.vertexCount;for(const ht in tt.attributes){if(ht===ID_ATTR_NAME)continue;const ct=et.getAttribute(ht),pt=tt.getAttribute(ht);copyAttributeData(ct,pt,st);const ft=ct.itemSize;for(let gt=ct.count,yt=at;gt=et.length||et[o]===!1?this:(et[o]=!1,this._visibilityChanged=!0,this)}getInstanceCountAt(o){return this._multiDrawInstances===null?null:this._multiDrawInstances[o]}setInstanceCountAt(o,et){return this._multiDrawInstances===null&&(this._multiDrawInstances=new Int32Array(this._maxGeometryCount).fill(1)),this._multiDrawInstances[o]=et,o}getBoundingBoxAt(o,et){if(this._active[o]===!1)return null;const nt=this._bounds[o],rt=nt.box,it=this.geometry;if(nt.boxInitialized===!1){rt.makeEmpty();const ot=it.index,st=it.attributes.position,at=this._drawRanges[o];for(let lt=at.start,ut=at.start+at.count;lt=it||tt[o]===!1?this:(et.toArray(rt,o*16),nt.needsUpdate=!0,this)}getMatrixAt(o,et){const tt=this._active,nt=this._matricesTexture.image.data,rt=this._geometryCount;return o>=rt||tt[o]===!1?null:et.fromArray(nt,o*16)}setColorAt(o,et){this._colorsTexture===null&&this._initColorsTexture();const tt=this._active,nt=this._colorsTexture,rt=this._colorsTexture.image.data,it=this._geometryCount;return o>=it||tt[o]===!1?this:(et.toArray(rt,o*4),nt.needsUpdate=!0,this)}getColorAt(o,et){const tt=this._active,nt=this._colorsTexture.image.data,rt=this._geometryCount;return o>=rt||tt[o]===!1?null:et.fromArray(nt,o*4)}setVisibleAt(o,et){const tt=this._visibility,nt=this._active,rt=this._geometryCount;return o>=rt||nt[o]===!1||tt[o]===et?this:(tt[o]=et,this._visibilityChanged=!0,this)}getVisibleAt(o){const et=this._visibility,tt=this._active,nt=this._geometryCount;return o>=nt||tt[o]===!1?!1:et[o]}raycast(o,et){const tt=this._visibility,nt=this._active,rt=this._drawRanges,it=this._geometryCount,ot=this.matrixWorld,st=this.geometry;_mesh.material=this.material,_mesh.geometry.index=st.index,_mesh.geometry.attributes=st.attributes,_mesh.geometry.boundingBox===null&&(_mesh.geometry.boundingBox=new Box3),_mesh.geometry.boundingSphere===null&&(_mesh.geometry.boundingSphere=new Sphere$1);for(let at=0;at({...et})),this._reservedRanges=o._reservedRanges.map(et=>({...et})),this._visibility=o._visibility.slice(),this._active=o._active.slice(),this._bounds=o._bounds.map(et=>({boxInitialized:et.boxInitialized,box:et.box.clone(),sphereInitialized:et.sphereInitialized,sphere:et.sphere.clone()})),this._maxGeometryCount=o._maxGeometryCount,this._maxVertexCount=o._maxVertexCount,this._maxIndexCount=o._maxIndexCount,this._geometryInitialized=o._geometryInitialized,this._geometryCount=o._geometryCount,this._multiDrawCounts=o._multiDrawCounts.slice(),this._multiDrawStarts=o._multiDrawStarts.slice(),this._matricesTexture=o._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this._colorsTexture!==null&&(this._colorsTexture=o._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.slice()),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null),this}onBeforeRender(o,et,tt,nt,rt){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const it=nt.getIndex(),ot=it===null?1:it.array.BYTES_PER_ELEMENT,st=this._active,at=this._visibility,lt=this._multiDrawStarts,ut=this._multiDrawCounts,dt=this._drawRanges,ht=this.perObjectFrustumCulled;ht&&(_projScreenMatrix$2.multiplyMatrices(tt.projectionMatrix,tt.matrixWorldInverse).multiply(this.matrixWorld),_frustum.setFromProjectionMatrix(_projScreenMatrix$2,o.coordinateSystem));let ct=0;if(this.sortObjects){_invMatrixWorld.copy(this.matrixWorld).invert(),_vector$5.setFromMatrixPosition(tt.matrixWorld).applyMatrix4(_invMatrixWorld),_forward.set(0,0,-1).transformDirection(tt.matrixWorld).transformDirection(_invMatrixWorld);for(let gt=0,yt=at.length;gt0){const nt=et[tt[0]];if(nt!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let rt=0,it=nt.length;rttt)return;_intersectPointOnRay.applyMatrix4(s.matrixWorld);const st=o.ray.origin.distanceTo(_intersectPointOnRay);if(!(sto.far))return{distance:st,point:_intersectPointOnSegment.clone().applyMatrix4(s.matrixWorld),index:nt,face:null,faceIndex:null,object:s}}const _start$1=new Vector3,_end$1=new Vector3;class LineSegments extends Line$1{constructor(o,et){super(o,et),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const o=this.geometry;if(o.index===null){const et=o.attributes.position,tt=[];for(let nt=0,rt=et.count;nt0){const nt=et[tt[0]];if(nt!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let rt=0,it=nt.length;rtnt.far)return;rt.push({distance:at,distanceToRay:Math.sqrt(ot),point:st,index:o,face:null,object:it})}}class VideoTexture extends Texture{constructor(o,et,tt,nt,rt,it,ot,st,at){super(o,et,tt,nt,rt,it,ot,st,at),this.isVideoTexture=!0,this.minFilter=it!==void 0?it:LinearFilter,this.magFilter=rt!==void 0?rt:LinearFilter,this.generateMipmaps=!1;const lt=this;function ut(){lt.needsUpdate=!0,o.requestVideoFrameCallback(ut)}"requestVideoFrameCallback"in o&&o.requestVideoFrameCallback(ut)}clone(){return new this.constructor(this.image).copy(this)}update(){const o=this.image;"requestVideoFrameCallback"in o===!1&&o.readyState>=o.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class FramebufferTexture extends Texture{constructor(o,et){super({width:o,height:et}),this.isFramebufferTexture=!0,this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.generateMipmaps=!1,this.needsUpdate=!0}}class CompressedTexture extends Texture{constructor(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt){super(null,it,ot,st,at,lt,nt,rt,ut,dt),this.isCompressedTexture=!0,this.image={width:et,height:tt},this.mipmaps=o,this.flipY=!1,this.generateMipmaps=!1}}class CompressedArrayTexture extends CompressedTexture{constructor(o,et,tt,nt,rt,it){super(o,et,tt,rt,it),this.isCompressedArrayTexture=!0,this.image.depth=nt,this.wrapR=ClampToEdgeWrapping,this.layerUpdates=new Set}addLayerUpdates(o){this.layerUpdates.add(o)}clearLayerUpdates(){this.layerUpdates.clear()}}class CompressedCubeTexture extends CompressedTexture{constructor(o,et,tt){super(void 0,o[0].width,o[0].height,et,tt,CubeReflectionMapping),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=o}}class CanvasTexture extends Texture{constructor(o,et,tt,nt,rt,it,ot,st,at){super(o,et,tt,nt,rt,it,ot,st,at),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Curve{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(o,et){const tt=this.getUtoTmapping(o);return this.getPoint(tt,et)}getPoints(o=5){const et=[];for(let tt=0;tt<=o;tt++)et.push(this.getPoint(tt/o));return et}getSpacedPoints(o=5){const et=[];for(let tt=0;tt<=o;tt++)et.push(this.getPointAt(tt/o));return et}getLength(){const o=this.getLengths();return o[o.length-1]}getLengths(o=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===o+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const et=[];let tt,nt=this.getPoint(0),rt=0;et.push(0);for(let it=1;it<=o;it++)tt=this.getPoint(it/o),rt+=tt.distanceTo(nt),et.push(rt),nt=tt;return this.cacheArcLengths=et,et}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(o,et){const tt=this.getLengths();let nt=0;const rt=tt.length;let it;et?it=et:it=o*tt[rt-1];let ot=0,st=rt-1,at;for(;ot<=st;)if(nt=Math.floor(ot+(st-ot)/2),at=tt[nt]-it,at<0)ot=nt+1;else if(at>0)st=nt-1;else{st=nt;break}if(nt=st,tt[nt]===it)return nt/(rt-1);const lt=tt[nt],dt=tt[nt+1]-lt,ht=(it-lt)/dt;return(nt+ht)/(rt-1)}getTangent(o,et){let nt=o-1e-4,rt=o+1e-4;nt<0&&(nt=0),rt>1&&(rt=1);const it=this.getPoint(nt),ot=this.getPoint(rt),st=et||(it.isVector2?new Vector2:new Vector3);return st.copy(ot).sub(it).normalize(),st}getTangentAt(o,et){const tt=this.getUtoTmapping(o);return this.getTangent(tt,et)}computeFrenetFrames(o,et){const tt=new Vector3,nt=[],rt=[],it=[],ot=new Vector3,st=new Matrix4;for(let ht=0;ht<=o;ht++){const ct=ht/o;nt[ht]=this.getTangentAt(ct,new Vector3)}rt[0]=new Vector3,it[0]=new Vector3;let at=Number.MAX_VALUE;const lt=Math.abs(nt[0].x),ut=Math.abs(nt[0].y),dt=Math.abs(nt[0].z);lt<=at&&(at=lt,tt.set(1,0,0)),ut<=at&&(at=ut,tt.set(0,1,0)),dt<=at&&tt.set(0,0,1),ot.crossVectors(nt[0],tt).normalize(),rt[0].crossVectors(nt[0],ot),it[0].crossVectors(nt[0],rt[0]);for(let ht=1;ht<=o;ht++){if(rt[ht]=rt[ht-1].clone(),it[ht]=it[ht-1].clone(),ot.crossVectors(nt[ht-1],nt[ht]),ot.length()>Number.EPSILON){ot.normalize();const ct=Math.acos(clamp$4(nt[ht-1].dot(nt[ht]),-1,1));rt[ht].applyMatrix4(st.makeRotationAxis(ot,ct))}it[ht].crossVectors(nt[ht],rt[ht])}if(et===!0){let ht=Math.acos(clamp$4(rt[0].dot(rt[o]),-1,1));ht/=o,nt[0].dot(ot.crossVectors(rt[0],rt[o]))>0&&(ht=-ht);for(let ct=1;ct<=o;ct++)rt[ct].applyMatrix4(st.makeRotationAxis(nt[ct],ht*ct)),it[ct].crossVectors(nt[ct],rt[ct])}return{tangents:nt,normals:rt,binormals:it}}clone(){return new this.constructor().copy(this)}copy(o){return this.arcLengthDivisions=o.arcLengthDivisions,this}toJSON(){const o={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return o.arcLengthDivisions=this.arcLengthDivisions,o.type=this.type,o}fromJSON(o){return this.arcLengthDivisions=o.arcLengthDivisions,this}}class EllipseCurve extends Curve{constructor(o=0,et=0,tt=1,nt=1,rt=0,it=Math.PI*2,ot=!1,st=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=o,this.aY=et,this.xRadius=tt,this.yRadius=nt,this.aStartAngle=rt,this.aEndAngle=it,this.aClockwise=ot,this.aRotation=st}getPoint(o,et=new Vector2){const tt=et,nt=Math.PI*2;let rt=this.aEndAngle-this.aStartAngle;const it=Math.abs(rt)nt;)rt-=nt;rt0?0:(Math.floor(Math.abs(ot)/rt)+1)*rt:st===0&&ot===rt-1&&(ot=rt-2,st=1);let at,lt;this.closed||ot>0?at=nt[(ot-1)%rt]:(tmp.subVectors(nt[0],nt[1]).add(nt[0]),at=tmp);const ut=nt[ot%rt],dt=nt[(ot+1)%rt];if(this.closed||ot+2nt.length-2?nt.length-1:it+1],ut=nt[it>nt.length-3?nt.length-1:it+2];return tt.set(CatmullRom(ot,st.x,at.x,lt.x,ut.x),CatmullRom(ot,st.y,at.y,lt.y,ut.y)),tt}copy(o){super.copy(o),this.points=[];for(let et=0,tt=o.points.length;et=tt){const it=nt[rt]-tt,ot=this.curves[rt],st=ot.getLength(),at=st===0?0:1-it/st;return ot.getPointAt(at,et)}rt++}return null}getLength(){const o=this.getCurveLengths();return o[o.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const o=[];let et=0;for(let tt=0,nt=this.curves.length;tt1&&!et[et.length-1].equals(et[0])&&et.push(et[0]),et}copy(o){super.copy(o),this.curves=[];for(let et=0,tt=o.curves.length;et0){const ut=at.getPoint(0);ut.equals(this.currentPoint)||this.lineTo(ut.x,ut.y)}this.curves.push(at);const lt=at.getPoint(1);return this.currentPoint.copy(lt),this}copy(o){return super.copy(o),this.currentPoint.copy(o.currentPoint),this}toJSON(){const o=super.toJSON();return o.currentPoint=this.currentPoint.toArray(),o}fromJSON(o){return super.fromJSON(o),this.currentPoint.fromArray(o.currentPoint),this}};class LatheGeometry extends BufferGeometry{constructor(o=[new Vector2(0,-.5),new Vector2(.5,0),new Vector2(0,.5)],et=12,tt=0,nt=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:o,segments:et,phiStart:tt,phiLength:nt},et=Math.floor(et),nt=clamp$4(nt,0,Math.PI*2);const rt=[],it=[],ot=[],st=[],at=[],lt=1/et,ut=new Vector3,dt=new Vector2,ht=new Vector3,ct=new Vector3,pt=new Vector3;let ft=0,gt=0;for(let yt=0;yt<=o.length-1;yt++)switch(yt){case 0:ft=o[yt+1].x-o[yt].x,gt=o[yt+1].y-o[yt].y,ht.x=gt*1,ht.y=-ft,ht.z=gt*0,pt.copy(ht),ht.normalize(),st.push(ht.x,ht.y,ht.z);break;case o.length-1:st.push(pt.x,pt.y,pt.z);break;default:ft=o[yt+1].x-o[yt].x,gt=o[yt+1].y-o[yt].y,ht.x=gt*1,ht.y=-ft,ht.z=gt*0,ct.copy(ht),ht.x+=pt.x,ht.y+=pt.y,ht.z+=pt.z,ht.normalize(),st.push(ht.x,ht.y,ht.z),pt.copy(ct)}for(let yt=0;yt<=et;yt++){const Ut=tt+yt*lt*nt,Ft=Math.sin(Ut),mt=Math.cos(Ut);for(let vt=0;vt<=o.length-1;vt++){ut.x=o[vt].x*Ft,ut.y=o[vt].y,ut.z=o[vt].x*mt,it.push(ut.x,ut.y,ut.z),dt.x=yt/et,dt.y=vt/(o.length-1),ot.push(dt.x,dt.y);const At=st[3*vt+0]*Ft,Lt=st[3*vt+1],Rt=st[3*vt+0]*mt;at.push(At,Lt,Rt)}}for(let yt=0;yt0&&Ut(!0),et>0&&Ut(!1)),this.setIndex(lt),this.setAttribute("position",new Float32BufferAttribute(ut,3)),this.setAttribute("normal",new Float32BufferAttribute(dt,3)),this.setAttribute("uv",new Float32BufferAttribute(ht,2));function yt(){const Ft=new Vector3,mt=new Vector3;let vt=0;const At=(et-o)/tt;for(let Lt=0;Lt<=rt;Lt++){const Rt=[],St=Lt/rt,Tt=St*(et-o)+o;for(let Bt=0;Bt<=nt;Bt++){const xt=Bt/nt,Ct=xt*st+ot,kt=Math.sin(Ct),Nt=Math.cos(Ct);mt.x=Tt*kt,mt.y=-St*tt+ft,mt.z=Tt*Nt,ut.push(mt.x,mt.y,mt.z),Ft.set(kt,At,Nt).normalize(),dt.push(Ft.x,Ft.y,Ft.z),ht.push(xt,1-St),Rt.push(ct++)}pt.push(Rt)}for(let Lt=0;Lt.9&&At<.1&&(Ut<.2&&(it[yt+0]+=1),Ft<.2&&(it[yt+2]+=1),mt<.2&&(it[yt+4]+=1))}}function dt(yt){rt.push(yt.x,yt.y,yt.z)}function ht(yt,Ut){const Ft=yt*3;Ut.x=o[Ft+0],Ut.y=o[Ft+1],Ut.z=o[Ft+2]}function ct(){const yt=new Vector3,Ut=new Vector3,Ft=new Vector3,mt=new Vector3,vt=new Vector2,At=new Vector2,Lt=new Vector2;for(let Rt=0,St=0;Rt80*et){ot=at=s[0],st=lt=s[1];for(let ct=et;ctat&&(at=ut),dt>lt&&(lt=dt);ht=Math.max(at-ot,lt-st),ht=ht!==0?32767/ht:0}return earcutLinked(rt,it,et,ot,st,ht,0),it}};function linkedList(s,o,et,tt,nt){let rt,it;if(nt===signedArea(s,o,et,tt)>0)for(rt=o;rt=o;rt-=tt)it=insertNode(rt,s[rt],s[rt+1],it);return it&&equals(it,it.next)&&(removeNode(it),it=it.next),it}function filterPoints(s,o){if(!s)return s;o||(o=s);let et=s,tt;do if(tt=!1,!et.steiner&&(equals(et,et.next)||area(et.prev,et,et.next)===0)){if(removeNode(et),et=o=et.prev,et===et.next)break;tt=!0}else et=et.next;while(tt||et!==o);return o}function earcutLinked(s,o,et,tt,nt,rt,it){if(!s)return;!it&&rt&&indexCurve(s,tt,nt,rt);let ot=s,st,at;for(;s.prev!==s.next;){if(st=s.prev,at=s.next,rt?isEarHashed(s,tt,nt,rt):isEar(s)){o.push(st.i/et|0),o.push(s.i/et|0),o.push(at.i/et|0),removeNode(s),s=at.next,ot=at.next;continue}if(s=at,s===ot){it?it===1?(s=cureLocalIntersections(filterPoints(s),o,et),earcutLinked(s,o,et,tt,nt,rt,2)):it===2&&splitEarcut(s,o,et,tt,nt,rt):earcutLinked(filterPoints(s),o,et,tt,nt,rt,1);break}}}function isEar(s){const o=s.prev,et=s,tt=s.next;if(area(o,et,tt)>=0)return!1;const nt=o.x,rt=et.x,it=tt.x,ot=o.y,st=et.y,at=tt.y,lt=ntrt?nt>it?nt:it:rt>it?rt:it,ht=ot>st?ot>at?ot:at:st>at?st:at;let ct=tt.next;for(;ct!==o;){if(ct.x>=lt&&ct.x<=dt&&ct.y>=ut&&ct.y<=ht&&pointInTriangle(nt,ot,rt,st,it,at,ct.x,ct.y)&&area(ct.prev,ct,ct.next)>=0)return!1;ct=ct.next}return!0}function isEarHashed(s,o,et,tt){const nt=s.prev,rt=s,it=s.next;if(area(nt,rt,it)>=0)return!1;const ot=nt.x,st=rt.x,at=it.x,lt=nt.y,ut=rt.y,dt=it.y,ht=otst?ot>at?ot:at:st>at?st:at,ft=lt>ut?lt>dt?lt:dt:ut>dt?ut:dt,gt=zOrder(ht,ct,o,et,tt),yt=zOrder(pt,ft,o,et,tt);let Ut=s.prevZ,Ft=s.nextZ;for(;Ut&&Ut.z>=gt&&Ft&&Ft.z<=yt;){if(Ut.x>=ht&&Ut.x<=pt&&Ut.y>=ct&&Ut.y<=ft&&Ut!==nt&&Ut!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ut.x,Ut.y)&&area(Ut.prev,Ut,Ut.next)>=0||(Ut=Ut.prevZ,Ft.x>=ht&&Ft.x<=pt&&Ft.y>=ct&&Ft.y<=ft&&Ft!==nt&&Ft!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ft.x,Ft.y)&&area(Ft.prev,Ft,Ft.next)>=0))return!1;Ft=Ft.nextZ}for(;Ut&&Ut.z>=gt;){if(Ut.x>=ht&&Ut.x<=pt&&Ut.y>=ct&&Ut.y<=ft&&Ut!==nt&&Ut!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ut.x,Ut.y)&&area(Ut.prev,Ut,Ut.next)>=0)return!1;Ut=Ut.prevZ}for(;Ft&&Ft.z<=yt;){if(Ft.x>=ht&&Ft.x<=pt&&Ft.y>=ct&&Ft.y<=ft&&Ft!==nt&&Ft!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ft.x,Ft.y)&&area(Ft.prev,Ft,Ft.next)>=0)return!1;Ft=Ft.nextZ}return!0}function cureLocalIntersections(s,o,et){let tt=s;do{const nt=tt.prev,rt=tt.next.next;!equals(nt,rt)&&intersects(nt,tt,tt.next,rt)&&locallyInside(nt,rt)&&locallyInside(rt,nt)&&(o.push(nt.i/et|0),o.push(tt.i/et|0),o.push(rt.i/et|0),removeNode(tt),removeNode(tt.next),tt=s=rt),tt=tt.next}while(tt!==s);return filterPoints(tt)}function splitEarcut(s,o,et,tt,nt,rt){let it=s;do{let ot=it.next.next;for(;ot!==it.prev;){if(it.i!==ot.i&&isValidDiagonal(it,ot)){let st=splitPolygon(it,ot);it=filterPoints(it,it.next),st=filterPoints(st,st.next),earcutLinked(it,o,et,tt,nt,rt,0),earcutLinked(st,o,et,tt,nt,rt,0);return}ot=ot.next}it=it.next}while(it!==s)}function eliminateHoles(s,o,et,tt){const nt=[];let rt,it,ot,st,at;for(rt=0,it=o.length;rt=et.next.y&&et.next.y!==et.y){const dt=et.x+(it-et.y)*(et.next.x-et.x)/(et.next.y-et.y);if(dt<=rt&&dt>tt&&(tt=dt,nt=et.x=et.x&&et.x>=st&&rt!==et.x&&pointInTriangle(itnt.x||et.x===nt.x&§orContainsSector(nt,et)))&&(nt=et,lt=ut)),et=et.next;while(et!==ot);return nt}function sectorContainsSector(s,o){return area(s.prev,s,o.prev)<0&&area(o.next,s,s.next)<0}function indexCurve(s,o,et,tt){let nt=s;do nt.z===0&&(nt.z=zOrder(nt.x,nt.y,o,et,tt)),nt.prevZ=nt.prev,nt.nextZ=nt.next,nt=nt.next;while(nt!==s);nt.prevZ.nextZ=null,nt.prevZ=null,sortLinked(nt)}function sortLinked(s){let o,et,tt,nt,rt,it,ot,st,at=1;do{for(et=s,s=null,rt=null,it=0;et;){for(it++,tt=et,ot=0,o=0;o0||st>0&&tt;)ot!==0&&(st===0||!tt||et.z<=tt.z)?(nt=et,et=et.nextZ,ot--):(nt=tt,tt=tt.nextZ,st--),rt?rt.nextZ=nt:s=nt,nt.prevZ=rt,rt=nt;et=tt}rt.nextZ=null,at*=2}while(it>1);return s}function zOrder(s,o,et,tt,nt){return s=(s-et)*nt|0,o=(o-tt)*nt|0,s=(s|s<<8)&16711935,s=(s|s<<4)&252645135,s=(s|s<<2)&858993459,s=(s|s<<1)&1431655765,o=(o|o<<8)&16711935,o=(o|o<<4)&252645135,o=(o|o<<2)&858993459,o=(o|o<<1)&1431655765,s|o<<1}function getLeftmost(s){let o=s,et=s;do(o.x=(s-it)*(rt-ot)&&(s-it)*(tt-ot)>=(et-it)*(o-ot)&&(et-it)*(rt-ot)>=(nt-it)*(tt-ot)}function isValidDiagonal(s,o){return s.next.i!==o.i&&s.prev.i!==o.i&&!intersectsPolygon(s,o)&&(locallyInside(s,o)&&locallyInside(o,s)&&middleInside(s,o)&&(area(s.prev,s,o.prev)||area(s,o.prev,o))||equals(s,o)&&area(s.prev,s,s.next)>0&&area(o.prev,o,o.next)>0)}function area(s,o,et){return(o.y-s.y)*(et.x-o.x)-(o.x-s.x)*(et.y-o.y)}function equals(s,o){return s.x===o.x&&s.y===o.y}function intersects(s,o,et,tt){const nt=sign$1(area(s,o,et)),rt=sign$1(area(s,o,tt)),it=sign$1(area(et,tt,s)),ot=sign$1(area(et,tt,o));return!!(nt!==rt&&it!==ot||nt===0&&onSegment(s,et,o)||rt===0&&onSegment(s,tt,o)||it===0&&onSegment(et,s,tt)||ot===0&&onSegment(et,o,tt))}function onSegment(s,o,et){return o.x<=Math.max(s.x,et.x)&&o.x>=Math.min(s.x,et.x)&&o.y<=Math.max(s.y,et.y)&&o.y>=Math.min(s.y,et.y)}function sign$1(s){return s>0?1:s<0?-1:0}function intersectsPolygon(s,o){let et=s;do{if(et.i!==s.i&&et.next.i!==s.i&&et.i!==o.i&&et.next.i!==o.i&&intersects(et,et.next,s,o))return!0;et=et.next}while(et!==s);return!1}function locallyInside(s,o){return area(s.prev,s,s.next)<0?area(s,o,s.next)>=0&&area(s,s.prev,o)>=0:area(s,o,s.prev)<0||area(s,s.next,o)<0}function middleInside(s,o){let et=s,tt=!1;const nt=(s.x+o.x)/2,rt=(s.y+o.y)/2;do et.y>rt!=et.next.y>rt&&et.next.y!==et.y&&nt<(et.next.x-et.x)*(rt-et.y)/(et.next.y-et.y)+et.x&&(tt=!tt),et=et.next;while(et!==s);return tt}function splitPolygon(s,o){const et=new Node$1(s.i,s.x,s.y),tt=new Node$1(o.i,o.x,o.y),nt=s.next,rt=o.prev;return s.next=o,o.prev=s,et.next=nt,nt.prev=et,tt.next=et,et.prev=tt,rt.next=tt,tt.prev=rt,tt}function insertNode(s,o,et,tt){const nt=new Node$1(s,o,et);return tt?(nt.next=tt.next,nt.prev=tt,tt.next.prev=nt,tt.next=nt):(nt.prev=nt,nt.next=nt),nt}function removeNode(s){s.next.prev=s.prev,s.prev.next=s.next,s.prevZ&&(s.prevZ.nextZ=s.nextZ),s.nextZ&&(s.nextZ.prevZ=s.prevZ)}function Node$1(s,o,et){this.i=s,this.x=o,this.y=et,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function signedArea(s,o,et,tt){let nt=0;for(let rt=o,it=et-tt;rt2&&s[o-1].equals(s[0])&&s.pop()}function addContour(s,o){for(let et=0;etNumber.EPSILON){const Pn=Math.sqrt(wn),$n=Math.sqrt(gn*gn+hn*hn),Tr=on.x-On/Pn,Qr=on.y+Un/Pn,_r=Xt.x-hn/$n,Ir=Xt.y+gn/$n,Jr=((_r-Tr)*hn-(Ir-Qr)*gn)/(Un*hn-On*gn);dn=Tr+Un*Jr-qt.x,_n=Qr+On*Jr-qt.y;const qr=dn*dn+_n*_n;if(qr<=2)return new Vector2(dn,_n);Fn=Math.sqrt(qr/2)}else{let Pn=!1;Un>Number.EPSILON?gn>Number.EPSILON&&(Pn=!0):Un<-Number.EPSILON?gn<-Number.EPSILON&&(Pn=!0):Math.sign(On)===Math.sign(hn)&&(Pn=!0),Pn?(dn=-On,_n=Un,Fn=Math.sqrt(wn)):(dn=Un,_n=On,Fn=Math.sqrt(wn/2))}return new Vector2(dn/Fn,_n/Fn)}const Dt=[];for(let qt=0,on=Ct.length,Xt=on-1,dn=qt+1;qt=0;qt--){const on=qt/ft,Xt=ht*Math.cos(on*Math.PI/2),dn=ct*Math.sin(on*Math.PI/2)+pt;for(let _n=0,Fn=Ct.length;_n=0;){const dn=Xt;let _n=Xt-1;_n<0&&(_n=qt.length-1);for(let Fn=0,Un=lt+ft*2;Fn0)&&ht.push(Ut,Ft,vt),(gt!==tt-1||st0!=o>0&&this.version++,this._anisotropy=o}get clearcoat(){return this._clearcoat}set clearcoat(o){this._clearcoat>0!=o>0&&this.version++,this._clearcoat=o}get iridescence(){return this._iridescence}set iridescence(o){this._iridescence>0!=o>0&&this.version++,this._iridescence=o}get dispersion(){return this._dispersion}set dispersion(o){this._dispersion>0!=o>0&&this.version++,this._dispersion=o}get sheen(){return this._sheen}set sheen(o){this._sheen>0!=o>0&&this.version++,this._sheen=o}get transmission(){return this._transmission}set transmission(o){this._transmission>0!=o>0&&this.version++,this._transmission=o}copy(o){return super.copy(o),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=o.anisotropy,this.anisotropyRotation=o.anisotropyRotation,this.anisotropyMap=o.anisotropyMap,this.clearcoat=o.clearcoat,this.clearcoatMap=o.clearcoatMap,this.clearcoatRoughness=o.clearcoatRoughness,this.clearcoatRoughnessMap=o.clearcoatRoughnessMap,this.clearcoatNormalMap=o.clearcoatNormalMap,this.clearcoatNormalScale.copy(o.clearcoatNormalScale),this.dispersion=o.dispersion,this.ior=o.ior,this.iridescence=o.iridescence,this.iridescenceMap=o.iridescenceMap,this.iridescenceIOR=o.iridescenceIOR,this.iridescenceThicknessRange=[...o.iridescenceThicknessRange],this.iridescenceThicknessMap=o.iridescenceThicknessMap,this.sheen=o.sheen,this.sheenColor.copy(o.sheenColor),this.sheenColorMap=o.sheenColorMap,this.sheenRoughness=o.sheenRoughness,this.sheenRoughnessMap=o.sheenRoughnessMap,this.transmission=o.transmission,this.transmissionMap=o.transmissionMap,this.thickness=o.thickness,this.thicknessMap=o.thicknessMap,this.attenuationDistance=o.attenuationDistance,this.attenuationColor.copy(o.attenuationColor),this.specularIntensity=o.specularIntensity,this.specularIntensityMap=o.specularIntensityMap,this.specularColor.copy(o.specularColor),this.specularColorMap=o.specularColorMap,this}}class MeshPhongMaterial extends Material{constructor(o){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Color$2(16777215),this.specular=new Color$2(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$2(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.specular.copy(o.specular),this.shininess=o.shininess,this.map=o.map,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.emissive.copy(o.emissive),this.emissiveMap=o.emissiveMap,this.emissiveIntensity=o.emissiveIntensity,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.specularMap=o.specularMap,this.alphaMap=o.alphaMap,this.envMap=o.envMap,this.envMapRotation.copy(o.envMapRotation),this.combine=o.combine,this.reflectivity=o.reflectivity,this.refractionRatio=o.refractionRatio,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.flatShading=o.flatShading,this.fog=o.fog,this}}class MeshToonMaterial extends Material{constructor(o){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Color$2(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$2(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.map=o.map,this.gradientMap=o.gradientMap,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.emissive.copy(o.emissive),this.emissiveMap=o.emissiveMap,this.emissiveIntensity=o.emissiveIntensity,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.alphaMap=o.alphaMap,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.fog=o.fog,this}}class MeshNormalMaterial extends Material{constructor(o){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(o)}copy(o){return super.copy(o),this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.flatShading=o.flatShading,this}}class MeshLambertMaterial extends Material{constructor(o){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Color$2(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$2(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.map=o.map,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.emissive.copy(o.emissive),this.emissiveMap=o.emissiveMap,this.emissiveIntensity=o.emissiveIntensity,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.specularMap=o.specularMap,this.alphaMap=o.alphaMap,this.envMap=o.envMap,this.envMapRotation.copy(o.envMapRotation),this.combine=o.combine,this.reflectivity=o.reflectivity,this.refractionRatio=o.refractionRatio,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.flatShading=o.flatShading,this.fog=o.fog,this}}class MeshMatcapMaterial extends Material{constructor(o){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Color$2(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.defines={MATCAP:""},this.color.copy(o.color),this.matcap=o.matcap,this.map=o.map,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.alphaMap=o.alphaMap,this.flatShading=o.flatShading,this.fog=o.fog,this}}class LineDashedMaterial extends LineBasicMaterial{constructor(o){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(o)}copy(o){return super.copy(o),this.scale=o.scale,this.dashSize=o.dashSize,this.gapSize=o.gapSize,this}}function convertArray(s,o,et){return!s||!et&&s.constructor===o?s:typeof o.BYTES_PER_ELEMENT=="number"?new o(s):Array.prototype.slice.call(s)}function isTypedArray(s){return ArrayBuffer.isView(s)&&!(s instanceof DataView)}function getKeyframeOrder(s){function o(nt,rt){return s[nt]-s[rt]}const et=s.length,tt=new Array(et);for(let nt=0;nt!==et;++nt)tt[nt]=nt;return tt.sort(o),tt}function sortedArray(s,o,et){const tt=s.length,nt=new s.constructor(tt);for(let rt=0,it=0;it!==tt;++rt){const ot=et[rt]*o;for(let st=0;st!==o;++st)nt[it++]=s[ot+st]}return nt}function flattenJSON(s,o,et,tt){let nt=1,rt=s[0];for(;rt!==void 0&&rt[tt]===void 0;)rt=s[nt++];if(rt===void 0)return;let it=rt[tt];if(it!==void 0)if(Array.isArray(it))do it=rt[tt],it!==void 0&&(o.push(rt.time),et.push.apply(et,it)),rt=s[nt++];while(rt!==void 0);else if(it.toArray!==void 0)do it=rt[tt],it!==void 0&&(o.push(rt.time),it.toArray(et,et.length)),rt=s[nt++];while(rt!==void 0);else do it=rt[tt],it!==void 0&&(o.push(rt.time),et.push(it)),rt=s[nt++];while(rt!==void 0)}function subclip(s,o,et,tt,nt=30){const rt=s.clone();rt.name=o;const it=[];for(let st=0;st=tt)){ut.push(at.times[ht]);for(let pt=0;ptrt.tracks[st].times[0]&&(ot=rt.tracks[st].times[0]);for(let st=0;st=ot.times[ct]){const gt=ct*ut+lt,yt=gt+ut-lt;pt=ot.values.slice(gt,yt)}else{const gt=ot.createInterpolant(),yt=lt,Ut=ut-lt;gt.evaluate(rt),pt=gt.resultBuffer.slice(yt,Ut)}st==="quaternion"&&new Quaternion().fromArray(pt).normalize().conjugate().toArray(pt);const ft=at.times.length;for(let gt=0;gt=rt)){const ot=et[1];o=rt)break t}it=tt,tt=0;break n}break e}for(;tt>>1;oet;)--it;if(++it,rt!==0||it!==nt){rt>=it&&(it=Math.max(it,1),rt=it-1);const ot=this.getValueSize();this.times=tt.slice(rt,it),this.values=this.values.slice(rt*ot,it*ot)}return this}validate(){let o=!0;const et=this.getValueSize();et-Math.floor(et)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),o=!1);const tt=this.times,nt=this.values,rt=tt.length;rt===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),o=!1);let it=null;for(let ot=0;ot!==rt;ot++){const st=tt[ot];if(typeof st=="number"&&isNaN(st)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,ot,st),o=!1;break}if(it!==null&&it>st){console.error("THREE.KeyframeTrack: Out of order keys.",this,ot,st,it),o=!1;break}it=st}if(nt!==void 0&&isTypedArray(nt))for(let ot=0,st=nt.length;ot!==st;++ot){const at=nt[ot];if(isNaN(at)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,ot,at),o=!1;break}}return o}optimize(){const o=this.times.slice(),et=this.values.slice(),tt=this.getValueSize(),nt=this.getInterpolation()===InterpolateSmooth,rt=o.length-1;let it=1;for(let ot=1;ot0){o[it]=o[rt];for(let ot=rt*tt,st=it*tt,at=0;at!==tt;++at)et[st+at]=et[ot+at];++it}return it!==o.length?(this.times=o.slice(0,it),this.values=et.slice(0,it*tt)):(this.times=o,this.values=et),this}clone(){const o=this.times.slice(),et=this.values.slice(),tt=this.constructor,nt=new tt(this.name,o,et);return nt.createInterpolant=this.createInterpolant,nt}}KeyframeTrack.prototype.TimeBufferType=Float32Array;KeyframeTrack.prototype.ValueBufferType=Float32Array;KeyframeTrack.prototype.DefaultInterpolation=InterpolateLinear;class BooleanKeyframeTrack extends KeyframeTrack{constructor(o,et,tt){super(o,et,tt)}}BooleanKeyframeTrack.prototype.ValueTypeName="bool";BooleanKeyframeTrack.prototype.ValueBufferType=Array;BooleanKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class ColorKeyframeTrack extends KeyframeTrack{}ColorKeyframeTrack.prototype.ValueTypeName="color";class NumberKeyframeTrack extends KeyframeTrack{}NumberKeyframeTrack.prototype.ValueTypeName="number";class QuaternionLinearInterpolant extends Interpolant{constructor(o,et,tt,nt){super(o,et,tt,nt)}interpolate_(o,et,tt,nt){const rt=this.resultBuffer,it=this.sampleValues,ot=this.valueSize,st=(tt-et)/(nt-et);let at=o*ot;for(let lt=at+ot;at!==lt;at+=4)Quaternion.slerpFlat(rt,0,it,at-ot,it,at,st);return rt}}class QuaternionKeyframeTrack extends KeyframeTrack{InterpolantFactoryMethodLinear(o){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),o)}}QuaternionKeyframeTrack.prototype.ValueTypeName="quaternion";QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class StringKeyframeTrack extends KeyframeTrack{constructor(o,et,tt){super(o,et,tt)}}StringKeyframeTrack.prototype.ValueTypeName="string";StringKeyframeTrack.prototype.ValueBufferType=Array;StringKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class VectorKeyframeTrack extends KeyframeTrack{}VectorKeyframeTrack.prototype.ValueTypeName="vector";class AnimationClip{constructor(o="",et=-1,tt=[],nt=NormalAnimationBlendMode){this.name=o,this.tracks=tt,this.duration=et,this.blendMode=nt,this.uuid=generateUUID(),this.duration<0&&this.resetDuration()}static parse(o){const et=[],tt=o.tracks,nt=1/(o.fps||1);for(let it=0,ot=tt.length;it!==ot;++it)et.push(parseKeyframeTrack(tt[it]).scale(nt));const rt=new this(o.name,o.duration,et,o.blendMode);return rt.uuid=o.uuid,rt}static toJSON(o){const et=[],tt=o.tracks,nt={name:o.name,duration:o.duration,tracks:et,uuid:o.uuid,blendMode:o.blendMode};for(let rt=0,it=tt.length;rt!==it;++rt)et.push(KeyframeTrack.toJSON(tt[rt]));return nt}static CreateFromMorphTargetSequence(o,et,tt,nt){const rt=et.length,it=[];for(let ot=0;ot1){const ut=lt[1];let dt=nt[ut];dt||(nt[ut]=dt=[]),dt.push(at)}}const it=[];for(const ot in nt)it.push(this.CreateFromMorphTargetSequence(ot,nt[ot],et,tt));return it}static parseAnimation(o,et){if(!o)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const tt=function(ut,dt,ht,ct,pt){if(ht.length!==0){const ft=[],gt=[];flattenJSON(ht,ft,gt,ct),ft.length!==0&&pt.push(new ut(dt,ft,gt))}},nt=[],rt=o.name||"default",it=o.fps||30,ot=o.blendMode;let st=o.length||-1;const at=o.hierarchy||[];for(let ut=0;ut{et&&et(rt),this.manager.itemEnd(o)},0),rt;if(loading[o]!==void 0){loading[o].push({onLoad:et,onProgress:tt,onError:nt});return}loading[o]=[],loading[o].push({onLoad:et,onProgress:tt,onError:nt});const it=new Request(o,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),ot=this.mimeType,st=this.responseType;fetch(it).then(at=>{if(at.status===200||at.status===0){if(at.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||at.body===void 0||at.body.getReader===void 0)return at;const lt=loading[o],ut=at.body.getReader(),dt=at.headers.get("X-File-Size")||at.headers.get("Content-Length"),ht=dt?parseInt(dt):0,ct=ht!==0;let pt=0;const ft=new ReadableStream({start(gt){yt();function yt(){ut.read().then(({done:Ut,value:Ft})=>{if(Ut)gt.close();else{pt+=Ft.byteLength;const mt=new ProgressEvent("progress",{lengthComputable:ct,loaded:pt,total:ht});for(let vt=0,At=lt.length;vt{gt.error(Ut)})}}});return new Response(ft)}else throw new HttpError(`fetch for "${at.url}" responded with ${at.status}: ${at.statusText}`,at)}).then(at=>{switch(st){case"arraybuffer":return at.arrayBuffer();case"blob":return at.blob();case"document":return at.text().then(lt=>new DOMParser().parseFromString(lt,ot));case"json":return at.json();default:if(ot===void 0)return at.text();{const ut=/charset="?([^;"\s]*)"?/i.exec(ot),dt=ut&&ut[1]?ut[1].toLowerCase():void 0,ht=new TextDecoder(dt);return at.arrayBuffer().then(ct=>ht.decode(ct))}}}).then(at=>{Cache.add(o,at);const lt=loading[o];delete loading[o];for(let ut=0,dt=lt.length;ut{const lt=loading[o];if(lt===void 0)throw this.manager.itemError(o),at;delete loading[o];for(let ut=0,dt=lt.length;ut{this.manager.itemEnd(o)}),this.manager.itemStart(o)}setResponseType(o){return this.responseType=o,this}setMimeType(o){return this.mimeType=o,this}}class AnimationLoader extends Loader{constructor(o){super(o)}load(o,et,tt,nt){const rt=this,it=new FileLoader(this.manager);it.setPath(this.path),it.setRequestHeader(this.requestHeader),it.setWithCredentials(this.withCredentials),it.load(o,function(ot){try{et(rt.parse(JSON.parse(ot)))}catch(st){nt?nt(st):console.error(st),rt.manager.itemError(o)}},tt,nt)}parse(o){const et=[];for(let tt=0;tt0:nt.vertexColors=o.vertexColors),o.uniforms!==void 0)for(const rt in o.uniforms){const it=o.uniforms[rt];switch(nt.uniforms[rt]={},it.type){case"t":nt.uniforms[rt].value=tt(it.value);break;case"c":nt.uniforms[rt].value=new Color$2().setHex(it.value);break;case"v2":nt.uniforms[rt].value=new Vector2().fromArray(it.value);break;case"v3":nt.uniforms[rt].value=new Vector3().fromArray(it.value);break;case"v4":nt.uniforms[rt].value=new Vector4().fromArray(it.value);break;case"m3":nt.uniforms[rt].value=new Matrix3().fromArray(it.value);break;case"m4":nt.uniforms[rt].value=new Matrix4().fromArray(it.value);break;default:nt.uniforms[rt].value=it.value}}if(o.defines!==void 0&&(nt.defines=o.defines),o.vertexShader!==void 0&&(nt.vertexShader=o.vertexShader),o.fragmentShader!==void 0&&(nt.fragmentShader=o.fragmentShader),o.glslVersion!==void 0&&(nt.glslVersion=o.glslVersion),o.extensions!==void 0)for(const rt in o.extensions)nt.extensions[rt]=o.extensions[rt];if(o.lights!==void 0&&(nt.lights=o.lights),o.clipping!==void 0&&(nt.clipping=o.clipping),o.size!==void 0&&(nt.size=o.size),o.sizeAttenuation!==void 0&&(nt.sizeAttenuation=o.sizeAttenuation),o.map!==void 0&&(nt.map=tt(o.map)),o.matcap!==void 0&&(nt.matcap=tt(o.matcap)),o.alphaMap!==void 0&&(nt.alphaMap=tt(o.alphaMap)),o.bumpMap!==void 0&&(nt.bumpMap=tt(o.bumpMap)),o.bumpScale!==void 0&&(nt.bumpScale=o.bumpScale),o.normalMap!==void 0&&(nt.normalMap=tt(o.normalMap)),o.normalMapType!==void 0&&(nt.normalMapType=o.normalMapType),o.normalScale!==void 0){let rt=o.normalScale;Array.isArray(rt)===!1&&(rt=[rt,rt]),nt.normalScale=new Vector2().fromArray(rt)}return o.displacementMap!==void 0&&(nt.displacementMap=tt(o.displacementMap)),o.displacementScale!==void 0&&(nt.displacementScale=o.displacementScale),o.displacementBias!==void 0&&(nt.displacementBias=o.displacementBias),o.roughnessMap!==void 0&&(nt.roughnessMap=tt(o.roughnessMap)),o.metalnessMap!==void 0&&(nt.metalnessMap=tt(o.metalnessMap)),o.emissiveMap!==void 0&&(nt.emissiveMap=tt(o.emissiveMap)),o.emissiveIntensity!==void 0&&(nt.emissiveIntensity=o.emissiveIntensity),o.specularMap!==void 0&&(nt.specularMap=tt(o.specularMap)),o.specularIntensityMap!==void 0&&(nt.specularIntensityMap=tt(o.specularIntensityMap)),o.specularColorMap!==void 0&&(nt.specularColorMap=tt(o.specularColorMap)),o.envMap!==void 0&&(nt.envMap=tt(o.envMap)),o.envMapRotation!==void 0&&nt.envMapRotation.fromArray(o.envMapRotation),o.envMapIntensity!==void 0&&(nt.envMapIntensity=o.envMapIntensity),o.reflectivity!==void 0&&(nt.reflectivity=o.reflectivity),o.refractionRatio!==void 0&&(nt.refractionRatio=o.refractionRatio),o.lightMap!==void 0&&(nt.lightMap=tt(o.lightMap)),o.lightMapIntensity!==void 0&&(nt.lightMapIntensity=o.lightMapIntensity),o.aoMap!==void 0&&(nt.aoMap=tt(o.aoMap)),o.aoMapIntensity!==void 0&&(nt.aoMapIntensity=o.aoMapIntensity),o.gradientMap!==void 0&&(nt.gradientMap=tt(o.gradientMap)),o.clearcoatMap!==void 0&&(nt.clearcoatMap=tt(o.clearcoatMap)),o.clearcoatRoughnessMap!==void 0&&(nt.clearcoatRoughnessMap=tt(o.clearcoatRoughnessMap)),o.clearcoatNormalMap!==void 0&&(nt.clearcoatNormalMap=tt(o.clearcoatNormalMap)),o.clearcoatNormalScale!==void 0&&(nt.clearcoatNormalScale=new Vector2().fromArray(o.clearcoatNormalScale)),o.iridescenceMap!==void 0&&(nt.iridescenceMap=tt(o.iridescenceMap)),o.iridescenceThicknessMap!==void 0&&(nt.iridescenceThicknessMap=tt(o.iridescenceThicknessMap)),o.transmissionMap!==void 0&&(nt.transmissionMap=tt(o.transmissionMap)),o.thicknessMap!==void 0&&(nt.thicknessMap=tt(o.thicknessMap)),o.anisotropyMap!==void 0&&(nt.anisotropyMap=tt(o.anisotropyMap)),o.sheenColorMap!==void 0&&(nt.sheenColorMap=tt(o.sheenColorMap)),o.sheenRoughnessMap!==void 0&&(nt.sheenRoughnessMap=tt(o.sheenRoughnessMap)),nt}setTextures(o){return this.textures=o,this}static createMaterialFromType(o){const et={ShadowMaterial,SpriteMaterial,RawShaderMaterial,ShaderMaterial,PointsMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshPhongMaterial,MeshToonMaterial,MeshNormalMaterial,MeshLambertMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshBasicMaterial,MeshMatcapMaterial,LineDashedMaterial,LineBasicMaterial,Material};return new et[o]}}class LoaderUtils{static decodeText(o){if(console.warn("THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead."),typeof TextDecoder<"u")return new TextDecoder().decode(o);let et="";for(let tt=0,nt=o.length;tt0){const st=new LoadingManager(et);rt=new ImageLoader(st),rt.setCrossOrigin(this.crossOrigin);for(let at=0,lt=o.length;at0){nt=new ImageLoader(this.manager),nt.setCrossOrigin(this.crossOrigin);for(let it=0,ot=o.length;it{const ft=new Box3;ft.min.fromArray(pt.boxMin),ft.max.fromArray(pt.boxMax);const gt=new Sphere$1;return gt.radius=pt.sphereRadius,gt.center.fromArray(pt.sphereCenter),{boxInitialized:pt.boxInitialized,box:ft,sphereInitialized:pt.sphereInitialized,sphere:gt}}),it._maxGeometryCount=o.maxGeometryCount,it._maxVertexCount=o.maxVertexCount,it._maxIndexCount=o.maxIndexCount,it._geometryInitialized=o.geometryInitialized,it._geometryCount=o.geometryCount,it._matricesTexture=at(o.matricesTexture.uuid),o.colorsTexture!==void 0&&(it._colorsTexture=at(o.colorsTexture.uuid));break;case"LOD":it=new LOD;break;case"Line":it=new Line$1(ot(o.geometry),st(o.material));break;case"LineLoop":it=new LineLoop(ot(o.geometry),st(o.material));break;case"LineSegments":it=new LineSegments(ot(o.geometry),st(o.material));break;case"PointCloud":case"Points":it=new Points(ot(o.geometry),st(o.material));break;case"Sprite":it=new Sprite(st(o.material));break;case"Group":it=new Group;break;case"Bone":it=new Bone;break;default:it=new Object3D}if(it.uuid=o.uuid,o.name!==void 0&&(it.name=o.name),o.matrix!==void 0?(it.matrix.fromArray(o.matrix),o.matrixAutoUpdate!==void 0&&(it.matrixAutoUpdate=o.matrixAutoUpdate),it.matrixAutoUpdate&&it.matrix.decompose(it.position,it.quaternion,it.scale)):(o.position!==void 0&&it.position.fromArray(o.position),o.rotation!==void 0&&it.rotation.fromArray(o.rotation),o.quaternion!==void 0&&it.quaternion.fromArray(o.quaternion),o.scale!==void 0&&it.scale.fromArray(o.scale)),o.up!==void 0&&it.up.fromArray(o.up),o.castShadow!==void 0&&(it.castShadow=o.castShadow),o.receiveShadow!==void 0&&(it.receiveShadow=o.receiveShadow),o.shadow&&(o.shadow.bias!==void 0&&(it.shadow.bias=o.shadow.bias),o.shadow.normalBias!==void 0&&(it.shadow.normalBias=o.shadow.normalBias),o.shadow.radius!==void 0&&(it.shadow.radius=o.shadow.radius),o.shadow.mapSize!==void 0&&it.shadow.mapSize.fromArray(o.shadow.mapSize),o.shadow.camera!==void 0&&(it.shadow.camera=this.parseObject(o.shadow.camera))),o.visible!==void 0&&(it.visible=o.visible),o.frustumCulled!==void 0&&(it.frustumCulled=o.frustumCulled),o.renderOrder!==void 0&&(it.renderOrder=o.renderOrder),o.userData!==void 0&&(it.userData=o.userData),o.layers!==void 0&&(it.layers.mask=o.layers),o.children!==void 0){const dt=o.children;for(let ht=0;ht"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(o){return this.options=o,this}load(o,et,tt,nt){o===void 0&&(o=""),this.path!==void 0&&(o=this.path+o),o=this.manager.resolveURL(o);const rt=this,it=Cache.get(o);if(it!==void 0){if(rt.manager.itemStart(o),it.then){it.then(at=>{et&&et(at),rt.manager.itemEnd(o)}).catch(at=>{nt&&nt(at)});return}return setTimeout(function(){et&&et(it),rt.manager.itemEnd(o)},0),it}const ot={};ot.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",ot.headers=this.requestHeader;const st=fetch(o,ot).then(function(at){return at.blob()}).then(function(at){return createImageBitmap(at,Object.assign(rt.options,{colorSpaceConversion:"none"}))}).then(function(at){return Cache.add(o,at),et&&et(at),rt.manager.itemEnd(o),at}).catch(function(at){nt&&nt(at),Cache.remove(o),rt.manager.itemError(o),rt.manager.itemEnd(o)});Cache.add(o,st),rt.manager.itemStart(o)}}let _context;class AudioContext{static getContext(){return _context===void 0&&(_context=new(window.AudioContext||window.webkitAudioContext)),_context}static setContext(o){_context=o}}class AudioLoader extends Loader{constructor(o){super(o)}load(o,et,tt,nt){const rt=this,it=new FileLoader(this.manager);it.setResponseType("arraybuffer"),it.setPath(this.path),it.setRequestHeader(this.requestHeader),it.setWithCredentials(this.withCredentials),it.load(o,function(st){try{const at=st.slice(0);AudioContext.getContext().decodeAudioData(at,function(ut){et(ut)}).catch(ot)}catch(at){ot(at)}},tt,nt);function ot(st){nt?nt(st):console.error(st),rt.manager.itemError(o)}}}const _eyeRight=new Matrix4,_eyeLeft=new Matrix4,_projectionMatrix=new Matrix4;class StereoCamera{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new PerspectiveCamera$1,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new PerspectiveCamera$1,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(o){const et=this._cache;if(et.focus!==o.focus||et.fov!==o.fov||et.aspect!==o.aspect*this.aspect||et.near!==o.near||et.far!==o.far||et.zoom!==o.zoom||et.eyeSep!==this.eyeSep){et.focus=o.focus,et.fov=o.fov,et.aspect=o.aspect*this.aspect,et.near=o.near,et.far=o.far,et.zoom=o.zoom,et.eyeSep=this.eyeSep,_projectionMatrix.copy(o.projectionMatrix);const nt=et.eyeSep/2,rt=nt*et.near/et.focus,it=et.near*Math.tan(DEG2RAD$1*et.fov*.5)/et.zoom;let ot,st;_eyeLeft.elements[12]=-nt,_eyeRight.elements[12]=nt,ot=-it*et.aspect+rt,st=it*et.aspect+rt,_projectionMatrix.elements[0]=2*et.near/(st-ot),_projectionMatrix.elements[8]=(st+ot)/(st-ot),this.cameraL.projectionMatrix.copy(_projectionMatrix),ot=-it*et.aspect-rt,st=it*et.aspect-rt,_projectionMatrix.elements[0]=2*et.near/(st-ot),_projectionMatrix.elements[8]=(st+ot)/(st-ot),this.cameraR.projectionMatrix.copy(_projectionMatrix)}this.cameraL.matrixWorld.copy(o.matrixWorld).multiply(_eyeLeft),this.cameraR.matrixWorld.copy(o.matrixWorld).multiply(_eyeRight)}}class Clock{constructor(o=!0){this.autoStart=o,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let o=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const et=now();o=(et-this.oldTime)/1e3,this.oldTime=et,this.elapsedTime+=o}return o}}function now(){return(typeof performance>"u"?Date:performance).now()}const _position$1=new Vector3,_quaternion$1=new Quaternion,_scale$1=new Vector3,_orientation$1=new Vector3;class AudioListener extends Object3D{constructor(){super(),this.type="AudioListener",this.context=AudioContext.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Clock}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(o){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=o,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(o){return this.gain.gain.setTargetAtTime(o,this.context.currentTime,.01),this}updateMatrixWorld(o){super.updateMatrixWorld(o);const et=this.context.listener,tt=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(_position$1,_quaternion$1,_scale$1),_orientation$1.set(0,0,-1).applyQuaternion(_quaternion$1),et.positionX){const nt=this.context.currentTime+this.timeDelta;et.positionX.linearRampToValueAtTime(_position$1.x,nt),et.positionY.linearRampToValueAtTime(_position$1.y,nt),et.positionZ.linearRampToValueAtTime(_position$1.z,nt),et.forwardX.linearRampToValueAtTime(_orientation$1.x,nt),et.forwardY.linearRampToValueAtTime(_orientation$1.y,nt),et.forwardZ.linearRampToValueAtTime(_orientation$1.z,nt),et.upX.linearRampToValueAtTime(tt.x,nt),et.upY.linearRampToValueAtTime(tt.y,nt),et.upZ.linearRampToValueAtTime(tt.z,nt)}else et.setPosition(_position$1.x,_position$1.y,_position$1.z),et.setOrientation(_orientation$1.x,_orientation$1.y,_orientation$1.z,tt.x,tt.y,tt.z)}}class Audio extends Object3D{constructor(o){super(),this.type="Audio",this.listener=o,this.context=o.context,this.gain=this.context.createGain(),this.gain.connect(o.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(o){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=o,this.connect(),this}setMediaElementSource(o){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(o),this.connect(),this}setMediaStreamSource(o){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(o),this.connect(),this}setBuffer(o){return this.buffer=o,this.sourceType="buffer",this.autoplay&&this.play(),this}play(o=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+o;const et=this.context.createBufferSource();return et.buffer=this.buffer,et.loop=this.loop,et.loopStart=this.loopStart,et.loopEnd=this.loopEnd,et.onended=this.onEnded.bind(this),et.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=et,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let o=1,et=this.filters.length;o0){this.source.disconnect(this.filters[0]);for(let o=1,et=this.filters.length;o0&&this._mixBufferRegionAdditive(tt,nt,this._addIndex*et,1,et);for(let st=et,at=et+et;st!==at;++st)if(tt[st]!==tt[st+et]){ot.setValue(tt,nt);break}}saveOriginalState(){const o=this.binding,et=this.buffer,tt=this.valueSize,nt=tt*this._origIndex;o.getValue(et,nt);for(let rt=tt,it=nt;rt!==it;++rt)et[rt]=et[nt+rt%tt];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const o=this.valueSize*3;this.binding.setValue(this.buffer,o)}_setAdditiveIdentityNumeric(){const o=this._addIndex*this.valueSize,et=o+this.valueSize;for(let tt=o;tt=.5)for(let it=0;it!==rt;++it)o[et+it]=o[tt+it]}_slerp(o,et,tt,nt){Quaternion.slerpFlat(o,et,o,et,o,tt,nt)}_slerpAdditive(o,et,tt,nt,rt){const it=this._workIndex*rt;Quaternion.multiplyQuaternionsFlat(o,it,o,et,o,tt),Quaternion.slerpFlat(o,et,o,et,o,it,nt)}_lerp(o,et,tt,nt,rt){const it=1-nt;for(let ot=0;ot!==rt;++ot){const st=et+ot;o[st]=o[st]*it+o[tt+ot]*nt}}_lerpAdditive(o,et,tt,nt,rt){for(let it=0;it!==rt;++it){const ot=et+it;o[ot]=o[ot]+o[tt+it]*nt}}}const _RESERVED_CHARS_RE="\\[\\]\\.:\\/",_reservedRe=new RegExp("["+_RESERVED_CHARS_RE+"]","g"),_wordChar="[^"+_RESERVED_CHARS_RE+"]",_wordCharOrDot="[^"+_RESERVED_CHARS_RE.replace("\\.","")+"]",_directoryRe=/((?:WC+[\/:])*)/.source.replace("WC",_wordChar),_nodeRe=/(WCOD+)?/.source.replace("WCOD",_wordCharOrDot),_objectRe=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",_wordChar),_propertyRe=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",_wordChar),_trackRe=new RegExp("^"+_directoryRe+_nodeRe+_objectRe+_propertyRe+"$"),_supportedObjectNames=["material","materials","bones","map"];class Composite{constructor(o,et,tt){const nt=tt||PropertyBinding.parseTrackName(et);this._targetGroup=o,this._bindings=o.subscribe_(et,nt)}getValue(o,et){this.bind();const tt=this._targetGroup.nCachedObjects_,nt=this._bindings[tt];nt!==void 0&&nt.getValue(o,et)}setValue(o,et){const tt=this._bindings;for(let nt=this._targetGroup.nCachedObjects_,rt=tt.length;nt!==rt;++nt)tt[nt].setValue(o,et)}bind(){const o=this._bindings;for(let et=this._targetGroup.nCachedObjects_,tt=o.length;et!==tt;++et)o[et].bind()}unbind(){const o=this._bindings;for(let et=this._targetGroup.nCachedObjects_,tt=o.length;et!==tt;++et)o[et].unbind()}}class PropertyBinding{constructor(o,et,tt){this.path=et,this.parsedPath=tt||PropertyBinding.parseTrackName(et),this.node=PropertyBinding.findNode(o,this.parsedPath.nodeName),this.rootNode=o,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(o,et,tt){return o&&o.isAnimationObjectGroup?new PropertyBinding.Composite(o,et,tt):new PropertyBinding(o,et,tt)}static sanitizeNodeName(o){return o.replace(/\s/g,"_").replace(_reservedRe,"")}static parseTrackName(o){const et=_trackRe.exec(o);if(et===null)throw new Error("PropertyBinding: Cannot parse trackName: "+o);const tt={nodeName:et[2],objectName:et[3],objectIndex:et[4],propertyName:et[5],propertyIndex:et[6]},nt=tt.nodeName&&tt.nodeName.lastIndexOf(".");if(nt!==void 0&&nt!==-1){const rt=tt.nodeName.substring(nt+1);_supportedObjectNames.indexOf(rt)!==-1&&(tt.nodeName=tt.nodeName.substring(0,nt),tt.objectName=rt)}if(tt.propertyName===null||tt.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+o);return tt}static findNode(o,et){if(et===void 0||et===""||et==="."||et===-1||et===o.name||et===o.uuid)return o;if(o.skeleton){const tt=o.skeleton.getBoneByName(et);if(tt!==void 0)return tt}if(o.children){const tt=function(rt){for(let it=0;it=rt){const ut=rt++,dt=o[ut];et[dt.uuid]=lt,o[lt]=dt,et[at]=ut,o[ut]=st;for(let ht=0,ct=nt;ht!==ct;++ht){const pt=tt[ht],ft=pt[ut],gt=pt[lt];pt[lt]=ft,pt[ut]=gt}}}this.nCachedObjects_=rt}uncache(){const o=this._objects,et=this._indicesByUUID,tt=this._bindings,nt=tt.length;let rt=this.nCachedObjects_,it=o.length;for(let ot=0,st=arguments.length;ot!==st;++ot){const at=arguments[ot],lt=at.uuid,ut=et[lt];if(ut!==void 0)if(delete et[lt],ut0&&(et[ht.uuid]=ut),o[ut]=ht,o.pop();for(let ct=0,pt=nt;ct!==pt;++ct){const ft=tt[ct];ft[ut]=ft[dt],ft.pop()}}}this.nCachedObjects_=rt}subscribe_(o,et){const tt=this._bindingsIndicesByPath;let nt=tt[o];const rt=this._bindings;if(nt!==void 0)return rt[nt];const it=this._paths,ot=this._parsedPaths,st=this._objects,at=st.length,lt=this.nCachedObjects_,ut=new Array(at);nt=rt.length,tt[o]=nt,it.push(o),ot.push(et),rt.push(ut);for(let dt=lt,ht=st.length;dt!==ht;++dt){const ct=st[dt];ut[dt]=new PropertyBinding(ct,o,et)}return ut}unsubscribe_(o){const et=this._bindingsIndicesByPath,tt=et[o];if(tt!==void 0){const nt=this._paths,rt=this._parsedPaths,it=this._bindings,ot=it.length-1,st=it[ot],at=o[ot];et[at]=tt,it[tt]=st,it.pop(),rt[tt]=rt[ot],rt.pop(),nt[tt]=nt[ot],nt.pop()}}}class AnimationAction{constructor(o,et,tt=null,nt=et.blendMode){this._mixer=o,this._clip=et,this._localRoot=tt,this.blendMode=nt;const rt=et.tracks,it=rt.length,ot=new Array(it),st={endingStart:ZeroCurvatureEnding,endingEnd:ZeroCurvatureEnding};for(let at=0;at!==it;++at){const lt=rt[at].createInterpolant(null);ot[at]=lt,lt.settings=st}this._interpolantSettings=st,this._interpolants=ot,this._propertyBindings=new Array(it),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=LoopRepeat,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(o){return this._startTime=o,this}setLoop(o,et){return this.loop=o,this.repetitions=et,this}setEffectiveWeight(o){return this.weight=o,this._effectiveWeight=this.enabled?o:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(o){return this._scheduleFading(o,0,1)}fadeOut(o){return this._scheduleFading(o,1,0)}crossFadeFrom(o,et,tt){if(o.fadeOut(et),this.fadeIn(et),tt){const nt=this._clip.duration,rt=o._clip.duration,it=rt/nt,ot=nt/rt;o.warp(1,it,et),this.warp(ot,1,et)}return this}crossFadeTo(o,et,tt){return o.crossFadeFrom(this,et,tt)}stopFading(){const o=this._weightInterpolant;return o!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(o)),this}setEffectiveTimeScale(o){return this.timeScale=o,this._effectiveTimeScale=this.paused?0:o,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(o){return this.timeScale=this._clip.duration/o,this.stopWarping()}syncWith(o){return this.time=o.time,this.timeScale=o.timeScale,this.stopWarping()}halt(o){return this.warp(this._effectiveTimeScale,0,o)}warp(o,et,tt){const nt=this._mixer,rt=nt.time,it=this.timeScale;let ot=this._timeScaleInterpolant;ot===null&&(ot=nt._lendControlInterpolant(),this._timeScaleInterpolant=ot);const st=ot.parameterPositions,at=ot.sampleValues;return st[0]=rt,st[1]=rt+tt,at[0]=o/it,at[1]=et/it,this}stopWarping(){const o=this._timeScaleInterpolant;return o!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(o)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(o,et,tt,nt){if(!this.enabled){this._updateWeight(o);return}const rt=this._startTime;if(rt!==null){const st=(o-rt)*tt;st<0||tt===0?et=0:(this._startTime=null,et=tt*st)}et*=this._updateTimeScale(o);const it=this._updateTime(et),ot=this._updateWeight(o);if(ot>0){const st=this._interpolants,at=this._propertyBindings;switch(this.blendMode){case AdditiveAnimationBlendMode:for(let lt=0,ut=st.length;lt!==ut;++lt)st[lt].evaluate(it),at[lt].accumulateAdditive(ot);break;case NormalAnimationBlendMode:default:for(let lt=0,ut=st.length;lt!==ut;++lt)st[lt].evaluate(it),at[lt].accumulate(nt,ot)}}}_updateWeight(o){let et=0;if(this.enabled){et=this.weight;const tt=this._weightInterpolant;if(tt!==null){const nt=tt.evaluate(o)[0];et*=nt,o>tt.parameterPositions[1]&&(this.stopFading(),nt===0&&(this.enabled=!1))}}return this._effectiveWeight=et,et}_updateTimeScale(o){let et=0;if(!this.paused){et=this.timeScale;const tt=this._timeScaleInterpolant;if(tt!==null){const nt=tt.evaluate(o)[0];et*=nt,o>tt.parameterPositions[1]&&(this.stopWarping(),et===0?this.paused=!0:this.timeScale=et)}}return this._effectiveTimeScale=et,et}_updateTime(o){const et=this._clip.duration,tt=this.loop;let nt=this.time+o,rt=this._loopCount;const it=tt===LoopPingPong;if(o===0)return rt===-1?nt:it&&(rt&1)===1?et-nt:nt;if(tt===LoopOnce){rt===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(nt>=et)nt=et;else if(nt<0)nt=0;else{this.time=nt;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=nt,this._mixer.dispatchEvent({type:"finished",action:this,direction:o<0?-1:1})}}else{if(rt===-1&&(o>=0?(rt=0,this._setEndings(!0,this.repetitions===0,it)):this._setEndings(this.repetitions===0,!0,it)),nt>=et||nt<0){const ot=Math.floor(nt/et);nt-=et*ot,rt+=Math.abs(ot);const st=this.repetitions-rt;if(st<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,nt=o>0?et:0,this.time=nt,this._mixer.dispatchEvent({type:"finished",action:this,direction:o>0?1:-1});else{if(st===1){const at=o<0;this._setEndings(at,!at,it)}else this._setEndings(!1,!1,it);this._loopCount=rt,this.time=nt,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:ot})}}else this.time=nt;if(it&&(rt&1)===1)return et-nt}return nt}_setEndings(o,et,tt){const nt=this._interpolantSettings;tt?(nt.endingStart=ZeroSlopeEnding,nt.endingEnd=ZeroSlopeEnding):(o?nt.endingStart=this.zeroSlopeAtStart?ZeroSlopeEnding:ZeroCurvatureEnding:nt.endingStart=WrapAroundEnding,et?nt.endingEnd=this.zeroSlopeAtEnd?ZeroSlopeEnding:ZeroCurvatureEnding:nt.endingEnd=WrapAroundEnding)}_scheduleFading(o,et,tt){const nt=this._mixer,rt=nt.time;let it=this._weightInterpolant;it===null&&(it=nt._lendControlInterpolant(),this._weightInterpolant=it);const ot=it.parameterPositions,st=it.sampleValues;return ot[0]=rt,st[0]=et,ot[1]=rt+o,st[1]=tt,this}}const _controlInterpolantsResultBuffer=new Float32Array(1);class AnimationMixer extends EventDispatcher$1{constructor(o){super(),this._root=o,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(o,et){const tt=o._localRoot||this._root,nt=o._clip.tracks,rt=nt.length,it=o._propertyBindings,ot=o._interpolants,st=tt.uuid,at=this._bindingsByRootAndName;let lt=at[st];lt===void 0&&(lt={},at[st]=lt);for(let ut=0;ut!==rt;++ut){const dt=nt[ut],ht=dt.name;let ct=lt[ht];if(ct!==void 0)++ct.referenceCount,it[ut]=ct;else{if(ct=it[ut],ct!==void 0){ct._cacheIndex===null&&(++ct.referenceCount,this._addInactiveBinding(ct,st,ht));continue}const pt=et&&et._propertyBindings[ut].binding.parsedPath;ct=new PropertyMixer(PropertyBinding.create(tt,ht,pt),dt.ValueTypeName,dt.getValueSize()),++ct.referenceCount,this._addInactiveBinding(ct,st,ht),it[ut]=ct}ot[ut].resultBuffer=ct.buffer}}_activateAction(o){if(!this._isActiveAction(o)){if(o._cacheIndex===null){const tt=(o._localRoot||this._root).uuid,nt=o._clip.uuid,rt=this._actionsByClip[nt];this._bindAction(o,rt&&rt.knownActions[0]),this._addInactiveAction(o,nt,tt)}const et=o._propertyBindings;for(let tt=0,nt=et.length;tt!==nt;++tt){const rt=et[tt];rt.useCount++===0&&(this._lendBinding(rt),rt.saveOriginalState())}this._lendAction(o)}}_deactivateAction(o){if(this._isActiveAction(o)){const et=o._propertyBindings;for(let tt=0,nt=et.length;tt!==nt;++tt){const rt=et[tt];--rt.useCount===0&&(rt.restoreOriginalState(),this._takeBackBinding(rt))}this._takeBackAction(o)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const o=this;this.stats={actions:{get total(){return o._actions.length},get inUse(){return o._nActiveActions}},bindings:{get total(){return o._bindings.length},get inUse(){return o._nActiveBindings}},controlInterpolants:{get total(){return o._controlInterpolants.length},get inUse(){return o._nActiveControlInterpolants}}}}_isActiveAction(o){const et=o._cacheIndex;return et!==null&&et=0;--tt)o[tt].stop();return this}update(o){o*=this.timeScale;const et=this._actions,tt=this._nActiveActions,nt=this.time+=o,rt=Math.sign(o),it=this._accuIndex^=1;for(let at=0;at!==tt;++at)et[at]._update(nt,o,rt,it);const ot=this._bindings,st=this._nActiveBindings;for(let at=0;at!==st;++at)ot[at].apply(it);return this}setTime(o){this.time=0;for(let et=0;etthis.max.x||o.ythis.max.y)}containsBox(o){return this.min.x<=o.min.x&&o.max.x<=this.max.x&&this.min.y<=o.min.y&&o.max.y<=this.max.y}getParameter(o,et){return et.set((o.x-this.min.x)/(this.max.x-this.min.x),(o.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(o){return!(o.max.xthis.max.x||o.max.ythis.max.y)}clampPoint(o,et){return et.copy(o).clamp(this.min,this.max)}distanceToPoint(o){return this.clampPoint(o,_vector$4).distanceTo(o)}intersect(o){return this.min.max(o.min),this.max.min(o.max),this.isEmpty()&&this.makeEmpty(),this}union(o){return this.min.min(o.min),this.max.max(o.max),this}translate(o){return this.min.add(o),this.max.add(o),this}equals(o){return o.min.equals(this.min)&&o.max.equals(this.max)}}const _startP=new Vector3,_startEnd=new Vector3;class Line3{constructor(o=new Vector3,et=new Vector3){this.start=o,this.end=et}set(o,et){return this.start.copy(o),this.end.copy(et),this}copy(o){return this.start.copy(o.start),this.end.copy(o.end),this}getCenter(o){return o.addVectors(this.start,this.end).multiplyScalar(.5)}delta(o){return o.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(o,et){return this.delta(et).multiplyScalar(o).add(this.start)}closestPointToPointParameter(o,et){_startP.subVectors(o,this.start),_startEnd.subVectors(this.end,this.start);const tt=_startEnd.dot(_startEnd);let rt=_startEnd.dot(_startP)/tt;return et&&(rt=clamp$4(rt,0,1)),rt}closestPointToPoint(o,et,tt){const nt=this.closestPointToPointParameter(o,et);return this.delta(tt).multiplyScalar(nt).add(this.start)}applyMatrix4(o){return this.start.applyMatrix4(o),this.end.applyMatrix4(o),this}equals(o){return o.start.equals(this.start)&&o.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const _vector$3=new Vector3;class SpotLightHelper extends Object3D{constructor(o,et){super(),this.light=o,this.matrixAutoUpdate=!1,this.color=et,this.type="SpotLightHelper";const tt=new BufferGeometry,nt=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let it=0,ot=1,st=32;it1)for(let ut=0;ut.99999)this.quaternion.set(0,0,0,1);else if(o.y<-.99999)this.quaternion.set(1,0,0,0);else{_axis.set(o.z,0,-o.x).normalize();const et=Math.acos(o.y);this.quaternion.setFromAxisAngle(_axis,et)}}setLength(o,et=o*.2,tt=et*.2){this.line.scale.set(1,Math.max(1e-4,o-et),1),this.line.updateMatrix(),this.cone.scale.set(tt,et,tt),this.cone.position.y=o,this.cone.updateMatrix()}setColor(o){this.line.material.color.set(o),this.cone.material.color.set(o)}copy(o){return super.copy(o,!1),this.line.copy(o.line),this.cone.copy(o.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class AxesHelper extends LineSegments{constructor(o=1){const et=[0,0,0,o,0,0,0,0,0,0,o,0,0,0,0,0,0,o],tt=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],nt=new BufferGeometry;nt.setAttribute("position",new Float32BufferAttribute(et,3)),nt.setAttribute("color",new Float32BufferAttribute(tt,3));const rt=new LineBasicMaterial({vertexColors:!0,toneMapped:!1});super(nt,rt),this.type="AxesHelper"}setColors(o,et,tt){const nt=new Color$2,rt=this.geometry.attributes.color.array;return nt.set(o),nt.toArray(rt,0),nt.toArray(rt,3),nt.set(et),nt.toArray(rt,6),nt.toArray(rt,9),nt.set(tt),nt.toArray(rt,12),nt.toArray(rt,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class ShapePath{constructor(){this.type="ShapePath",this.color=new Color$2,this.subPaths=[],this.currentPath=null}moveTo(o,et){return this.currentPath=new Path$1,this.subPaths.push(this.currentPath),this.currentPath.moveTo(o,et),this}lineTo(o,et){return this.currentPath.lineTo(o,et),this}quadraticCurveTo(o,et,tt,nt){return this.currentPath.quadraticCurveTo(o,et,tt,nt),this}bezierCurveTo(o,et,tt,nt,rt,it){return this.currentPath.bezierCurveTo(o,et,tt,nt,rt,it),this}splineThru(o){return this.currentPath.splineThru(o),this}toShapes(o){function et(gt){const yt=[];for(let Ut=0,Ft=gt.length;UtNumber.EPSILON){if(St<0&&(At=yt[vt],Rt=-Rt,Lt=yt[mt],St=-St),gt.yLt.y)continue;if(gt.y===At.y){if(gt.x===At.x)return!0}else{const Tt=St*(gt.x-At.x)-Rt*(gt.y-At.y);if(Tt===0)return!0;if(Tt<0)continue;Ft=!Ft}}else{if(gt.y!==At.y)continue;if(Lt.x<=gt.x&>.x<=At.x||At.x<=gt.x&>.x<=Lt.x)return!0}}return Ft}const nt=ShapeUtils.isClockWise,rt=this.subPaths;if(rt.length===0)return[];let it,ot,st;const at=[];if(rt.length===1)return ot=rt[0],st=new Shape,st.curves=ot.curves,at.push(st),at;let lt=!nt(rt[0].getPoints());lt=o?!lt:lt;const ut=[],dt=[];let ht=[],ct=0,pt;dt[ct]=void 0,ht[ct]=[];for(let gt=0,yt=rt.length;gt1){let gt=!1,yt=0;for(let Ut=0,Ft=dt.length;Ut0&>===!1&&(ht=ut)}let ft;for(let gt=0,yt=dt.length;gt>>1,zt=Wt[Pt];if(0>>1;Ptnt(nn,Et))Ztnt(jt,nn)?(Wt[Pt]=jt,Wt[Zt]=Et,Pt=Zt):(Wt[Pt]=nn,Wt[Kt]=Et,Pt=Kt);else if(Ztnt(jt,Et))Wt[Pt]=jt,Wt[Zt]=Et,Pt=Zt;else break e}}return Dt}function nt(Wt,Dt){var Et=Wt.sortIndex-Dt.sortIndex;return Et!==0?Et:Wt.id-Dt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var rt=performance;s.unstable_now=function(){return rt.now()}}else{var it=Date,ot=it.now();s.unstable_now=function(){return it.now()-ot}}var st=[],at=[],lt=1,ut=null,dt=3,ht=!1,ct=!1,pt=!1,ft=typeof setTimeout=="function"?setTimeout:null,gt=typeof clearTimeout=="function"?clearTimeout:null,yt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Ut(Wt){for(var Dt=et(at);Dt!==null;){if(Dt.callback===null)tt(at);else if(Dt.startTime<=Wt)tt(at),Dt.sortIndex=Dt.expirationTime,o(st,Dt);else break;Dt=et(at)}}function Ft(Wt){if(pt=!1,Ut(Wt),!ct)if(et(st)!==null)ct=!0,Nt(mt);else{var Dt=et(at);Dt!==null&&Ot(Ft,Dt.startTime-Wt)}}function mt(Wt,Dt){ct=!1,pt&&(pt=!1,gt(Lt),Lt=-1),ht=!0;var Et=dt;try{for(Ut(Dt),ut=et(st);ut!==null&&(!(ut.expirationTime>Dt)||Wt&&!Tt());){var Pt=ut.callback;if(typeof Pt=="function"){ut.callback=null,dt=ut.priorityLevel;var zt=Pt(ut.expirationTime<=Dt);Dt=s.unstable_now(),typeof zt=="function"?ut.callback=zt:ut===et(st)&&tt(st),Ut(Dt)}else tt(st);ut=et(st)}if(ut!==null)var en=!0;else{var Kt=et(at);Kt!==null&&Ot(Ft,Kt.startTime-Dt),en=!1}return en}finally{ut=null,dt=Et,ht=!1}}var vt=!1,At=null,Lt=-1,Rt=5,St=-1;function Tt(){return!(s.unstable_now()-StWt||125Pt?(Wt.sortIndex=Et,o(at,Wt),et(st)===null&&Wt===et(at)&&(pt?(gt(Lt),Lt=-1):pt=!0,Ot(Ft,Et-Pt))):(Wt.sortIndex=zt,o(st,Wt),ct||ht||(ct=!0,Nt(mt))),Wt},s.unstable_shouldYield=Tt,s.unstable_wrapCallback=function(Wt){var Dt=dt;return function(){var Et=dt;dt=Dt;try{return Wt.apply(this,arguments)}finally{dt=Et}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;var schedulerExports=scheduler.exports;/** + */(function(s){function o(Jt,Dt){var Et=Jt.length;Jt.push(Dt);e:for(;0>>1,zt=Jt[Pt];if(0>>1;Ptnt(nn,Et))Ztnt(jt,nn)?(Jt[Pt]=jt,Jt[Zt]=Et,Pt=Zt):(Jt[Pt]=nn,Jt[Kt]=Et,Pt=Kt);else if(Ztnt(jt,Et))Jt[Pt]=jt,Jt[Zt]=Et,Pt=Zt;else break e}}return Dt}function nt(Jt,Dt){var Et=Jt.sortIndex-Dt.sortIndex;return Et!==0?Et:Jt.id-Dt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var rt=performance;s.unstable_now=function(){return rt.now()}}else{var it=Date,ot=it.now();s.unstable_now=function(){return it.now()-ot}}var st=[],at=[],lt=1,ut=null,dt=3,ht=!1,ct=!1,pt=!1,ft=typeof setTimeout=="function"?setTimeout:null,gt=typeof clearTimeout=="function"?clearTimeout:null,yt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Ut(Jt){for(var Dt=et(at);Dt!==null;){if(Dt.callback===null)tt(at);else if(Dt.startTime<=Jt)tt(at),Dt.sortIndex=Dt.expirationTime,o(st,Dt);else break;Dt=et(at)}}function Ft(Jt){if(pt=!1,Ut(Jt),!ct)if(et(st)!==null)ct=!0,Nt(mt);else{var Dt=et(at);Dt!==null&&Ot(Ft,Dt.startTime-Jt)}}function mt(Jt,Dt){ct=!1,pt&&(pt=!1,gt(Lt),Lt=-1),ht=!0;var Et=dt;try{for(Ut(Dt),ut=et(st);ut!==null&&(!(ut.expirationTime>Dt)||Jt&&!Tt());){var Pt=ut.callback;if(typeof Pt=="function"){ut.callback=null,dt=ut.priorityLevel;var zt=Pt(ut.expirationTime<=Dt);Dt=s.unstable_now(),typeof zt=="function"?ut.callback=zt:ut===et(st)&&tt(st),Ut(Dt)}else tt(st);ut=et(st)}if(ut!==null)var en=!0;else{var Kt=et(at);Kt!==null&&Ot(Ft,Kt.startTime-Dt),en=!1}return en}finally{ut=null,dt=Et,ht=!1}}var vt=!1,At=null,Lt=-1,Rt=5,St=-1;function Tt(){return!(s.unstable_now()-StJt||125Pt?(Jt.sortIndex=Et,o(at,Jt),et(st)===null&&Jt===et(at)&&(pt?(gt(Lt),Lt=-1):pt=!0,Ot(Ft,Et-Pt))):(Jt.sortIndex=zt,o(st,Jt),ct||ht||(ct=!0,Nt(mt))),Jt},s.unstable_shouldYield=Tt,s.unstable_wrapCallback=function(Jt){var Dt=dt;return function(){var Et=dt;dt=Dt;try{return Jt.apply(this,arguments)}finally{dt=Et}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;var schedulerExports=scheduler.exports;/** * @license React * react-reconciler.production.min.js * @@ -3862,17 +3862,17 @@ void main() { * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var reactReconciler_production_min=function(o){var et={},tt=reactExports,nt=schedulerExports,rt=Object.assign;function it(wt){for(var Mt="https://reactjs.org/docs/error-decoder.html?invariant="+wt,Gt=1;Gtpr||ln[Xn]!==yn[pr]){var Or=` -`+ln[Xn].replace(" at new "," at ");return wt.displayName&&Or.includes("")&&(Or=Or.replace("",wt.displayName)),Or}while(1<=Xn&&0<=pr);break}}}finally{lo=!1,Error.prepareStackTrace=Gt}return(wt=wt?wt.displayName||wt.name:"")?mo(wt):""}var Jo=Object.prototype.hasOwnProperty,Go=[],cs=-1;function So(wt){return{current:wt}}function so(wt){0>cs||(wt.current=Go[cs],Go[cs]=null,cs--)}function Bo(wt,Mt){cs++,Go[cs]=wt.current,wt.current=Mt}var Io={},ns=So(Io),ps=So(!1),gs=Io;function bs(wt,Mt){var Gt=wt.type.contextTypes;if(!Gt)return Io;var rn=wt.stateNode;if(rn&&rn.__reactInternalMemoizedUnmaskedChildContext===Mt)return rn.__reactInternalMemoizedMaskedChildContext;var ln={},yn;for(yn in Gt)ln[yn]=Mt[yn];return rn&&(wt=wt.stateNode,wt.__reactInternalMemoizedUnmaskedChildContext=Mt,wt.__reactInternalMemoizedMaskedChildContext=ln),ln}function Lo(wt){return wt=wt.childContextTypes,wt!=null}function Qs(){so(ps),so(ns)}function Ps(wt,Mt,Gt){if(ns.current!==Io)throw Error(it(168));Bo(ns,Mt),Bo(ps,Gt)}function No(wt,Mt,Gt){var rn=wt.stateNode;if(Mt=Mt.childContextTypes,typeof rn.getChildContext!="function")return Gt;rn=rn.getChildContext();for(var ln in rn)if(!(ln in Mt))throw Error(it(108,Lt(wt)||"Unknown",ln));return rt({},Gt,rn)}function ys(wt){return wt=(wt=wt.stateNode)&&wt.__reactInternalMemoizedMergedChildContext||Io,gs=ns.current,Bo(ns,wt),Bo(ps,ps.current),!0}function Ns(wt,Mt,Gt){var rn=wt.stateNode;if(!rn)throw Error(it(169));Gt?(wt=No(wt,Mt,gs),rn.__reactInternalMemoizedMergedChildContext=wt,so(ps),so(ns),Bo(ns,wt)):so(ps),Bo(ps,Gt)}var fs=Math.clz32?Math.clz32:As,Zs=Math.log,Sl=Math.LN2;function As(wt){return wt>>>=0,wt===0?32:31-(Zs(wt)/Sl|0)|0}var ks=64,js=4194304;function Xs(wt){switch(wt&-wt){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return wt&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return wt&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return wt}}function vo(wt,Mt){var Gt=wt.pendingLanes;if(Gt===0)return 0;var rn=0,ln=wt.suspendedLanes,yn=wt.pingedLanes,Xn=Gt&268435455;if(Xn!==0){var pr=Xn&~ln;pr!==0?rn=Xs(pr):(yn&=Xn,yn!==0&&(rn=Xs(yn)))}else Xn=Gt&~ln,Xn!==0?rn=Xs(Xn):yn!==0&&(rn=Xs(yn));if(rn===0)return 0;if(Mt!==0&&Mt!==rn&&!(Mt&ln)&&(ln=rn&-rn,yn=Mt&-Mt,ln>=yn||ln===16&&(yn&4194240)!==0))return Mt;if(rn&4&&(rn|=Gt&16),Mt=wt.entangledLanes,Mt!==0)for(wt=wt.entanglements,Mt&=rn;0Gt;Gt++)Mt.push(wt);return Mt}function Mn(wt,Mt,Gt){wt.pendingLanes|=Mt,Mt!==536870912&&(wt.suspendedLanes=0,wt.pingedLanes=0),wt=wt.eventTimes,Mt=31-fs(Mt),wt[Mt]=Gt}function Jn(wt,Mt){var Gt=wt.pendingLanes&~Mt;wt.pendingLanes=Mt,wt.suspendedLanes=0,wt.pingedLanes=0,wt.expiredLanes&=Mt,wt.mutableReadLanes&=Mt,wt.entangledLanes&=Mt,Mt=wt.entanglements;var rn=wt.eventTimes;for(wt=wt.expirationTimes;0>=Xn,ln-=Xn,Bu=1<<32-fs(Mt)+ln|Gt<Xo?(Vs=jo,jo=null):Vs=jo.sibling;var ss=wo(xr,jo,Dr[Xo],fo);if(ss===null){jo===null&&(jo=Vs);break}wt&&jo&&ss.alternate===null&&Mt(xr,jo),yr=yn(ss,yr,Xo),Yo===null?Qo=ss:Yo.sibling=ss,Yo=ss,jo=Vs}if(Xo===Dr.length)return Gt(xr,jo),Us&&vu(xr,Xo),Qo;if(jo===null){for(;XoXo?(Vs=jo,jo=null):Vs=jo.sibling;var yu=wo(xr,jo,ss.value,fo);if(yu===null){jo===null&&(jo=Vs);break}wt&&jo&&yu.alternate===null&&Mt(xr,jo),yr=yn(yu,yr,Xo),Yo===null?Qo=yu:Yo.sibling=yu,Yo=yu,jo=Vs}if(ss.done)return Gt(xr,jo),Us&&vu(xr,Xo),Qo;if(jo===null){for(;!ss.done;Xo++,ss=Dr.next())ss=Zo(xr,ss.value,fo),ss!==null&&(yr=yn(ss,yr,Xo),Yo===null?Qo=ss:Yo.sibling=ss,Yo=ss);return Us&&vu(xr,Xo),Qo}for(jo=rn(xr,jo);!ss.done;Xo++,ss=Dr.next())ss=ds(jo,xr,Xo,ss.value,fo),ss!==null&&(wt&&ss.alternate!==null&&jo.delete(ss.key===null?Xo:ss.key),yr=yn(ss,yr,Xo),Yo===null?Qo=ss:Yo.sibling=ss,Yo=ss);return wt&&jo.forEach(function(A0){return Mt(xr,A0)}),Us&&vu(xr,Xo),Qo}function Ol(xr,yr,Dr,fo){if(typeof Dr=="object"&&Dr!==null&&Dr.type===lt&&Dr.key===null&&(Dr=Dr.props.children),typeof Dr=="object"&&Dr!==null){switch(Dr.$$typeof){case st:e:{for(var Qo=Dr.key,Yo=yr;Yo!==null;){if(Yo.key===Qo){if(Qo=Dr.type,Qo===lt){if(Yo.tag===7){Gt(xr,Yo.sibling),yr=ln(Yo,Dr.props.children),yr.return=xr,xr=yr;break e}}else if(Yo.elementType===Qo||typeof Qo=="object"&&Qo!==null&&Qo.$$typeof===Ut&&Op(Qo)===Yo.type){Gt(xr,Yo.sibling),yr=ln(Yo,Dr.props),yr.ref=hp(xr,Yo,Dr),yr.return=xr,xr=yr;break e}Gt(xr,Yo);break}else Mt(xr,Yo);Yo=Yo.sibling}Dr.type===lt?(yr=ju(Dr.props.children,xr.mode,fo,Dr.key),yr.return=xr,xr=yr):(fo=M0(Dr.type,Dr.key,Dr.props,null,xr.mode,fo),fo.ref=hp(xr,yr,Dr),fo.return=xr,xr=fo)}return Xn(xr);case at:e:{for(Yo=Dr.key;yr!==null;){if(yr.key===Yo)if(yr.tag===4&&yr.stateNode.containerInfo===Dr.containerInfo&&yr.stateNode.implementation===Dr.implementation){Gt(xr,yr.sibling),yr=ln(yr,Dr.children||[]),yr.return=xr,xr=yr;break e}else{Gt(xr,yr);break}else Mt(xr,yr);yr=yr.sibling}yr=Zl(Dr,xr.mode,fo),yr.return=xr,xr=yr}return Xn(xr);case Ut:return Yo=Dr._init,Ol(xr,yr,Yo(Dr._payload),fo)}if(kt(Dr))return bo(xr,yr,Dr,fo);if(vt(Dr))return yl(xr,yr,Dr,fo);tu(xr,Dr)}return typeof Dr=="string"&&Dr!==""||typeof Dr=="number"?(Dr=""+Dr,yr!==null&&yr.tag===6?(Gt(xr,yr.sibling),yr=ln(yr,Dr),yr.return=xr,xr=yr):(Gt(xr,yr),yr=Fl(Dr,xr.mode,fo),yr.return=xr,xr=yr),Xn(xr)):Gt(xr,yr)}return Ol}var pp=V1(!0),M1=V1(!1),du={},vs=So(du),fp=So(du),gp=So(du);function hu(wt){if(wt===du)throw Error(it(174));return wt}function Z0(wt,Mt){Bo(gp,Mt),Bo(fp,wt),Bo(vs,du),wt=Ot(Mt),so(vs),Bo(vs,wt)}function mp(){so(vs),so(fp),so(gp)}function N1(wt){var Mt=hu(gp.current),Gt=hu(vs.current);Mt=Wt(Gt,wt.type,Mt),Gt!==Mt&&(Bo(fp,wt),Bo(vs,Mt))}function Vu(wt){fp.current===wt&&(so(vs),so(fp))}var dr=So(0);function Lr(wt){for(var Mt=wt;Mt!==null;){if(Mt.tag===13){var Gt=Mt.memoizedState;if(Gt!==null&&(Gt=Gt.dehydrated,Gt===null||Gn(Gt)||er(Gt)))return Mt}else if(Mt.tag===19&&Mt.memoizedProps.revealOrder!==void 0){if(Mt.flags&128)return Mt}else if(Mt.child!==null){Mt.child.return=Mt,Mt=Mt.child;continue}if(Mt===wt)break;for(;Mt.sibling===null;){if(Mt.return===null||Mt.return===wt)return null;Mt=Mt.return}Mt.sibling.return=Mt.return,Mt=Mt.sibling}return null}var Nr=[];function go(){for(var wt=0;wtGt?Gt:4,wt(!0);var rn=zo.transition;zo.transition={};try{wt(!1),Mt()}finally{Cr=Gt,zo.transition=rn}}function O1(){return xl().memoizedState}function Ws(wt,Mt,Gt){var rn=Uu(wt);Gt={lane:rn,action:Gt,hasEagerState:!1,eagerState:null,next:null},W1(wt)?J1(Mt,Gt):(Y0(wt,Mt,Gt),Gt=xa(),wt=Ll(wt,rn,Gt),wt!==null&&I1(wt,Mt,rn))}function na(wt,Mt,Gt){var rn=Uu(wt),ln={lane:rn,action:Gt,hasEagerState:!1,eagerState:null,next:null};if(W1(wt))J1(Mt,ln);else{Y0(wt,Mt,ln);var yn=wt.alternate;if(wt.lanes===0&&(yn===null||yn.lanes===0)&&(yn=Mt.lastRenderedReducer,yn!==null))try{var Xn=Mt.lastRenderedState,pr=yn(Xn,Gt);if(ln.hasEagerState=!0,ln.eagerState=pr,vn(pr,Xn))return}catch{}finally{}Gt=xa(),wt=Ll(wt,rn,Gt),wt!==null&&I1(wt,Mt,rn)}}function W1(wt){var Mt=wt.alternate;return wt===ko||Mt!==null&&Mt===ko}function J1(wt,Mt){Mu=_l=!0;var Gt=wt.pending;Gt===null?Mt.next=Mt:(Mt.next=Gt.next,Gt.next=Mt),wt.pending=Mt}function Y0(wt,Mt,Gt){Cs!==null&&wt.mode&1&&!(Ho&2)?(wt=Mt.interleaved,wt===null?(Gt.next=Gt,uu===null?uu=[Mt]:uu.push(Mt)):(Gt.next=wt.next,wt.next=Gt),Mt.interleaved=Gt):(wt=Mt.pending,wt===null?Gt.next=Gt:(Gt.next=wt.next,wt.next=Gt),Mt.pending=Gt)}function I1(wt,Mt,Gt){if(Gt&4194240){var rn=Mt.lanes;rn&=wt.pendingLanes,Gt|=rn,Mt.lanes=Gt,Vr(wt,Gt)}}var Rp={readContext:Rs,useCallback:Os,useContext:Os,useEffect:Os,useImperativeHandle:Os,useInsertionEffect:Os,useLayoutEffect:Os,useMemo:Os,useReducer:Os,useRef:Os,useState:Os,useDebugValue:Os,useDeferredValue:Os,useTransition:Os,useMutableSource:Os,useSyncExternalStore:Os,useId:Os,unstable_isNewReconciler:!1},$p={readContext:Rs,useCallback:function(wt,Mt){return pu().memoizedState=[wt,Mt===void 0?null:Mt],wt},useContext:Rs,useEffect:yp,useImperativeHandle:function(wt,Mt,Gt){return Gt=Gt!=null?Gt.concat([wt]):null,Au(4194308,4,Zp.bind(null,Mt,wt),Gt)},useLayoutEffect:function(wt,Mt){return Au(4194308,4,wt,Mt)},useInsertionEffect:function(wt,Mt){return Au(4,2,wt,Mt)},useMemo:function(wt,Mt){var Gt=pu();return Mt=Mt===void 0?null:Mt,wt=wt(),Gt.memoizedState=[wt,Mt],wt},useReducer:function(wt,Mt,Gt){var rn=pu();return Mt=Gt!==void 0?Gt(Mt):Mt,rn.memoizedState=rn.baseState=Mt,wt={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:wt,lastRenderedState:Mt},rn.queue=wt,wt=wt.dispatch=Ws.bind(null,ko,wt),[rn.memoizedState,wt]},useRef:function(wt){var Mt=pu();return wt={current:wt},Mt.memoizedState=wt},useState:m0,useDebugValue:zp,useDeferredValue:function(wt){var Mt=m0(wt),Gt=Mt[0],rn=Mt[1];return yp(function(){var ln=zo.transition;zo.transition={};try{rn(wt)}finally{zo.transition=ln}},[wt]),Gt},useTransition:function(){var wt=m0(!1),Mt=wt[0];return wt=T2.bind(null,wt[1]),pu().memoizedState=wt,[Mt,wt]},useMutableSource:function(){},useSyncExternalStore:function(wt,Mt,Gt){var rn=ko,ln=pu();if(Us){if(Gt===void 0)throw Error(it(407));Gt=Gt()}else{if(Gt=Mt(),Cs===null)throw Error(it(349));Ss&30||Ip(rn,Mt,Gt)}ln.memoizedState=Gt;var yn={value:Gt,getSnapshot:Mt};return ln.queue=yn,yp(Lp.bind(null,rn,yn,wt),[wt]),rn.flags|=2048,Nu(9,z0.bind(null,rn,yn,Gt,Mt),void 0,null),Gt},useId:function(){var wt=pu(),Mt=Cs.identifierPrefix;if(Us){var Gt=_c,rn=Bu;Gt=(rn&~(1<<32-fs(rn)-1)).toString(32)+Gt,Mt=":"+Mt+"R"+Gt,Gt=Wp++,0")&&(Or=Or.replace("",wt.displayName)),Or}while(1<=Xn&&0<=pr);break}}}finally{lo=!1,Error.prepareStackTrace=Gt}return(wt=wt?wt.displayName||wt.name:"")?mo(wt):""}var Wo=Object.prototype.hasOwnProperty,Go=[],cs=-1;function So(wt){return{current:wt}}function so(wt){0>cs||(wt.current=Go[cs],Go[cs]=null,cs--)}function Bo(wt,Mt){cs++,Go[cs]=wt.current,wt.current=Mt}var Io={},ns=So(Io),ps=So(!1),gs=Io;function bs(wt,Mt){var Gt=wt.type.contextTypes;if(!Gt)return Io;var rn=wt.stateNode;if(rn&&rn.__reactInternalMemoizedUnmaskedChildContext===Mt)return rn.__reactInternalMemoizedMaskedChildContext;var ln={},yn;for(yn in Gt)ln[yn]=Mt[yn];return rn&&(wt=wt.stateNode,wt.__reactInternalMemoizedUnmaskedChildContext=Mt,wt.__reactInternalMemoizedMaskedChildContext=ln),ln}function Lo(wt){return wt=wt.childContextTypes,wt!=null}function Qs(){so(ps),so(ns)}function Ps(wt,Mt,Gt){if(ns.current!==Io)throw Error(it(168));Bo(ns,Mt),Bo(ps,Gt)}function No(wt,Mt,Gt){var rn=wt.stateNode;if(Mt=Mt.childContextTypes,typeof rn.getChildContext!="function")return Gt;rn=rn.getChildContext();for(var ln in rn)if(!(ln in Mt))throw Error(it(108,Lt(wt)||"Unknown",ln));return rt({},Gt,rn)}function ys(wt){return wt=(wt=wt.stateNode)&&wt.__reactInternalMemoizedMergedChildContext||Io,gs=ns.current,Bo(ns,wt),Bo(ps,ps.current),!0}function Ns(wt,Mt,Gt){var rn=wt.stateNode;if(!rn)throw Error(it(169));Gt?(wt=No(wt,Mt,gs),rn.__reactInternalMemoizedMergedChildContext=wt,so(ps),so(ns),Bo(ns,wt)):so(ps),Bo(ps,Gt)}var fs=Math.clz32?Math.clz32:As,Zs=Math.log,Sl=Math.LN2;function As(wt){return wt>>>=0,wt===0?32:31-(Zs(wt)/Sl|0)|0}var ks=64,js=4194304;function Xs(wt){switch(wt&-wt){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return wt&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return wt&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return wt}}function vo(wt,Mt){var Gt=wt.pendingLanes;if(Gt===0)return 0;var rn=0,ln=wt.suspendedLanes,yn=wt.pingedLanes,Xn=Gt&268435455;if(Xn!==0){var pr=Xn&~ln;pr!==0?rn=Xs(pr):(yn&=Xn,yn!==0&&(rn=Xs(yn)))}else Xn=Gt&~ln,Xn!==0?rn=Xs(Xn):yn!==0&&(rn=Xs(yn));if(rn===0)return 0;if(Mt!==0&&Mt!==rn&&!(Mt&ln)&&(ln=rn&-rn,yn=Mt&-Mt,ln>=yn||ln===16&&(yn&4194240)!==0))return Mt;if(rn&4&&(rn|=Gt&16),Mt=wt.entangledLanes,Mt!==0)for(wt=wt.entanglements,Mt&=rn;0Gt;Gt++)Mt.push(wt);return Mt}function Mn(wt,Mt,Gt){wt.pendingLanes|=Mt,Mt!==536870912&&(wt.suspendedLanes=0,wt.pingedLanes=0),wt=wt.eventTimes,Mt=31-fs(Mt),wt[Mt]=Gt}function Wn(wt,Mt){var Gt=wt.pendingLanes&~Mt;wt.pendingLanes=Mt,wt.suspendedLanes=0,wt.pingedLanes=0,wt.expiredLanes&=Mt,wt.mutableReadLanes&=Mt,wt.entangledLanes&=Mt,Mt=wt.entanglements;var rn=wt.eventTimes;for(wt=wt.expirationTimes;0>=Xn,ln-=Xn,Bu=1<<32-fs(Mt)+ln|Gt<Xo?(Vs=jo,jo=null):Vs=jo.sibling;var ss=wo(xr,jo,Dr[Xo],fo);if(ss===null){jo===null&&(jo=Vs);break}wt&&jo&&ss.alternate===null&&Mt(xr,jo),yr=yn(ss,yr,Xo),Yo===null?Qo=ss:Yo.sibling=ss,Yo=ss,jo=Vs}if(Xo===Dr.length)return Gt(xr,jo),Us&&vu(xr,Xo),Qo;if(jo===null){for(;XoXo?(Vs=jo,jo=null):Vs=jo.sibling;var yu=wo(xr,jo,ss.value,fo);if(yu===null){jo===null&&(jo=Vs);break}wt&&jo&&yu.alternate===null&&Mt(xr,jo),yr=yn(yu,yr,Xo),Yo===null?Qo=yu:Yo.sibling=yu,Yo=yu,jo=Vs}if(ss.done)return Gt(xr,jo),Us&&vu(xr,Xo),Qo;if(jo===null){for(;!ss.done;Xo++,ss=Dr.next())ss=Zo(xr,ss.value,fo),ss!==null&&(yr=yn(ss,yr,Xo),Yo===null?Qo=ss:Yo.sibling=ss,Yo=ss);return Us&&vu(xr,Xo),Qo}for(jo=rn(xr,jo);!ss.done;Xo++,ss=Dr.next())ss=ds(jo,xr,Xo,ss.value,fo),ss!==null&&(wt&&ss.alternate!==null&&jo.delete(ss.key===null?Xo:ss.key),yr=yn(ss,yr,Xo),Yo===null?Qo=ss:Yo.sibling=ss,Yo=ss);return wt&&jo.forEach(function(A0){return Mt(xr,A0)}),Us&&vu(xr,Xo),Qo}function Ol(xr,yr,Dr,fo){if(typeof Dr=="object"&&Dr!==null&&Dr.type===lt&&Dr.key===null&&(Dr=Dr.props.children),typeof Dr=="object"&&Dr!==null){switch(Dr.$$typeof){case st:e:{for(var Qo=Dr.key,Yo=yr;Yo!==null;){if(Yo.key===Qo){if(Qo=Dr.type,Qo===lt){if(Yo.tag===7){Gt(xr,Yo.sibling),yr=ln(Yo,Dr.props.children),yr.return=xr,xr=yr;break e}}else if(Yo.elementType===Qo||typeof Qo=="object"&&Qo!==null&&Qo.$$typeof===Ut&&Op(Qo)===Yo.type){Gt(xr,Yo.sibling),yr=ln(Yo,Dr.props),yr.ref=hp(xr,Yo,Dr),yr.return=xr,xr=yr;break e}Gt(xr,Yo);break}else Mt(xr,Yo);Yo=Yo.sibling}Dr.type===lt?(yr=ju(Dr.props.children,xr.mode,fo,Dr.key),yr.return=xr,xr=yr):(fo=M0(Dr.type,Dr.key,Dr.props,null,xr.mode,fo),fo.ref=hp(xr,yr,Dr),fo.return=xr,xr=fo)}return Xn(xr);case at:e:{for(Yo=Dr.key;yr!==null;){if(yr.key===Yo)if(yr.tag===4&&yr.stateNode.containerInfo===Dr.containerInfo&&yr.stateNode.implementation===Dr.implementation){Gt(xr,yr.sibling),yr=ln(yr,Dr.children||[]),yr.return=xr,xr=yr;break e}else{Gt(xr,yr);break}else Mt(xr,yr);yr=yr.sibling}yr=Zl(Dr,xr.mode,fo),yr.return=xr,xr=yr}return Xn(xr);case Ut:return Yo=Dr._init,Ol(xr,yr,Yo(Dr._payload),fo)}if(kt(Dr))return bo(xr,yr,Dr,fo);if(vt(Dr))return yl(xr,yr,Dr,fo);tu(xr,Dr)}return typeof Dr=="string"&&Dr!==""||typeof Dr=="number"?(Dr=""+Dr,yr!==null&&yr.tag===6?(Gt(xr,yr.sibling),yr=ln(yr,Dr),yr.return=xr,xr=yr):(Gt(xr,yr),yr=Fl(Dr,xr.mode,fo),yr.return=xr,xr=yr),Xn(xr)):Gt(xr,yr)}return Ol}var pp=V1(!0),M1=V1(!1),du={},vs=So(du),fp=So(du),gp=So(du);function hu(wt){if(wt===du)throw Error(it(174));return wt}function Z0(wt,Mt){Bo(gp,Mt),Bo(fp,wt),Bo(vs,du),wt=Ot(Mt),so(vs),Bo(vs,wt)}function mp(){so(vs),so(fp),so(gp)}function N1(wt){var Mt=hu(gp.current),Gt=hu(vs.current);Mt=Jt(Gt,wt.type,Mt),Gt!==Mt&&(Bo(fp,wt),Bo(vs,Mt))}function Vu(wt){fp.current===wt&&(so(vs),so(fp))}var dr=So(0);function Lr(wt){for(var Mt=wt;Mt!==null;){if(Mt.tag===13){var Gt=Mt.memoizedState;if(Gt!==null&&(Gt=Gt.dehydrated,Gt===null||Gn(Gt)||er(Gt)))return Mt}else if(Mt.tag===19&&Mt.memoizedProps.revealOrder!==void 0){if(Mt.flags&128)return Mt}else if(Mt.child!==null){Mt.child.return=Mt,Mt=Mt.child;continue}if(Mt===wt)break;for(;Mt.sibling===null;){if(Mt.return===null||Mt.return===wt)return null;Mt=Mt.return}Mt.sibling.return=Mt.return,Mt=Mt.sibling}return null}var Nr=[];function go(){for(var wt=0;wtGt?Gt:4,wt(!0);var rn=zo.transition;zo.transition={};try{wt(!1),Mt()}finally{Cr=Gt,zo.transition=rn}}function O1(){return xl().memoizedState}function Js(wt,Mt,Gt){var rn=Uu(wt);Gt={lane:rn,action:Gt,hasEagerState:!1,eagerState:null,next:null},J1(wt)?W1(Mt,Gt):(Y0(wt,Mt,Gt),Gt=xa(),wt=Ll(wt,rn,Gt),wt!==null&&I1(wt,Mt,rn))}function na(wt,Mt,Gt){var rn=Uu(wt),ln={lane:rn,action:Gt,hasEagerState:!1,eagerState:null,next:null};if(J1(wt))W1(Mt,ln);else{Y0(wt,Mt,ln);var yn=wt.alternate;if(wt.lanes===0&&(yn===null||yn.lanes===0)&&(yn=Mt.lastRenderedReducer,yn!==null))try{var Xn=Mt.lastRenderedState,pr=yn(Xn,Gt);if(ln.hasEagerState=!0,ln.eagerState=pr,vn(pr,Xn))return}catch{}finally{}Gt=xa(),wt=Ll(wt,rn,Gt),wt!==null&&I1(wt,Mt,rn)}}function J1(wt){var Mt=wt.alternate;return wt===ko||Mt!==null&&Mt===ko}function W1(wt,Mt){Mu=_l=!0;var Gt=wt.pending;Gt===null?Mt.next=Mt:(Mt.next=Gt.next,Gt.next=Mt),wt.pending=Mt}function Y0(wt,Mt,Gt){Cs!==null&&wt.mode&1&&!(Ho&2)?(wt=Mt.interleaved,wt===null?(Gt.next=Gt,uu===null?uu=[Mt]:uu.push(Mt)):(Gt.next=wt.next,wt.next=Gt),Mt.interleaved=Gt):(wt=Mt.pending,wt===null?Gt.next=Gt:(Gt.next=wt.next,wt.next=Gt),Mt.pending=Gt)}function I1(wt,Mt,Gt){if(Gt&4194240){var rn=Mt.lanes;rn&=wt.pendingLanes,Gt|=rn,Mt.lanes=Gt,Vr(wt,Gt)}}var Rp={readContext:Rs,useCallback:Os,useContext:Os,useEffect:Os,useImperativeHandle:Os,useInsertionEffect:Os,useLayoutEffect:Os,useMemo:Os,useReducer:Os,useRef:Os,useState:Os,useDebugValue:Os,useDeferredValue:Os,useTransition:Os,useMutableSource:Os,useSyncExternalStore:Os,useId:Os,unstable_isNewReconciler:!1},$p={readContext:Rs,useCallback:function(wt,Mt){return pu().memoizedState=[wt,Mt===void 0?null:Mt],wt},useContext:Rs,useEffect:yp,useImperativeHandle:function(wt,Mt,Gt){return Gt=Gt!=null?Gt.concat([wt]):null,Au(4194308,4,Zp.bind(null,Mt,wt),Gt)},useLayoutEffect:function(wt,Mt){return Au(4194308,4,wt,Mt)},useInsertionEffect:function(wt,Mt){return Au(4,2,wt,Mt)},useMemo:function(wt,Mt){var Gt=pu();return Mt=Mt===void 0?null:Mt,wt=wt(),Gt.memoizedState=[wt,Mt],wt},useReducer:function(wt,Mt,Gt){var rn=pu();return Mt=Gt!==void 0?Gt(Mt):Mt,rn.memoizedState=rn.baseState=Mt,wt={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:wt,lastRenderedState:Mt},rn.queue=wt,wt=wt.dispatch=Js.bind(null,ko,wt),[rn.memoizedState,wt]},useRef:function(wt){var Mt=pu();return wt={current:wt},Mt.memoizedState=wt},useState:m0,useDebugValue:zp,useDeferredValue:function(wt){var Mt=m0(wt),Gt=Mt[0],rn=Mt[1];return yp(function(){var ln=zo.transition;zo.transition={};try{rn(wt)}finally{zo.transition=ln}},[wt]),Gt},useTransition:function(){var wt=m0(!1),Mt=wt[0];return wt=T2.bind(null,wt[1]),pu().memoizedState=wt,[Mt,wt]},useMutableSource:function(){},useSyncExternalStore:function(wt,Mt,Gt){var rn=ko,ln=pu();if(Us){if(Gt===void 0)throw Error(it(407));Gt=Gt()}else{if(Gt=Mt(),Cs===null)throw Error(it(349));Ss&30||Ip(rn,Mt,Gt)}ln.memoizedState=Gt;var yn={value:Gt,getSnapshot:Mt};return ln.queue=yn,yp(Lp.bind(null,rn,yn,wt),[wt]),rn.flags|=2048,Nu(9,z0.bind(null,rn,yn,Gt,Mt),void 0,null),Gt},useId:function(){var wt=pu(),Mt=Cs.identifierPrefix;if(Us){var Gt=_c,rn=Bu;Gt=(rn&~(1<<32-fs(rn)-1)).toString(32)+Gt,Mt=":"+Mt+"R"+Gt,Gt=Jp++,0_f&&(Mt.flags|=128,rn=!0,ga(ln,!1),Mt.lanes=4194304)}else{if(!rn)if(wt=Lr(yn),wt!==null){if(Mt.flags|=128,rn=!0,wt=wt.updateQueue,wt!==null&&(Mt.updateQueue=wt,Mt.flags|=4),ga(ln,!0),ln.tail===null&&ln.tailMode==="hidden"&&!yn.alternate&&!Us)return Mo(Mt),null}else 2*ir()-ln.renderingStartTime>_f&&Gt!==1073741824&&(Mt.flags|=128,rn=!0,ga(ln,!1),Mt.lanes=4194304);ln.isBackwards?(yn.sibling=Mt.child,Mt.child=yn):(wt=ln.last,wt!==null?wt.sibling=yn:Mt.child=yn,ln.last=yn)}return ln.tail!==null?(Mt=ln.tail,ln.rendering=Mt,ln.tail=Mt.sibling,ln.renderingStartTime=ir(),Mt.sibling=null,wt=dr.current,Bo(dr,rn?wt&1|2:wt&1),Mt):(Mo(Mt),null);case 22:case 23:return f1(),rn=Mt.memoizedState!==null,wt!==null&&wt.memoizedState!==null!==rn&&(Mt.flags|=8192),rn&&Mt.mode&1?Al&1073741824&&(Mo(Mt),Ht&&Mt.subtreeFlags&6&&(Mt.flags|=8192)):Mo(Mt),null;case 24:return null;case 25:return null}throw Error(it(156,Mt.tag))}var C2=ot.ReactCurrentOwner,Vl=!1;function _s(wt,Mt,Gt,rn){Mt.child=wt===null?M1(Mt,null,Gt,rn):pp(Mt,wt.child,Gt,rn)}function z1(wt,Mt,Gt,rn,ln){Gt=Gt.render;var yn=Mt.ref;return $u(Mt,ln),rn=us(wt,Mt,Gt,rn,yn,ln),Gt=j0(),wt!==null&&!Vl?(Mt.updateQueue=wt.updateQueue,Mt.flags&=-2053,wt.lanes&=~ln,Js(wt,Mt,ln)):(Us&&Gt&&p0(Mt),Mt.flags|=1,_s(wt,Mt,rn,ln),Mt.child)}function $1(wt,Mt,Gt,rn,ln){if(wt===null){var yn=Gt.type;return typeof yn=="function"&&!R1(yn)&&yn.defaultProps===void 0&&Gt.compare===null&&Gt.defaultProps===void 0?(Mt.tag=15,Mt.type=yn,G1(wt,Mt,yn,rn,ln)):(wt=M0(Gt.type,null,rn,Mt,Mt.mode,ln),wt.ref=Mt.ref,wt.return=Mt,Mt.child=wt)}if(yn=wt.child,!(wt.lanes&ln)){var Xn=yn.memoizedProps;if(Gt=Gt.compare,Gt=Gt!==null?Gt:no,Gt(Xn,rn)&&wt.ref===Mt.ref)return Js(wt,Mt,ln)}return Mt.flags|=1,wt=Tu(yn,rn),wt.ref=Mt.ref,wt.return=Mt,Mt.child=wt}function G1(wt,Mt,Gt,rn,ln){if(wt!==null&&no(wt.memoizedProps,rn)&&wt.ref===Mt.ref)if(Vl=!1,(wt.lanes&ln)!==0)wt.flags&131072&&(Vl=!0);else return Mt.lanes=wt.lanes,Js(wt,Mt,ln);return nu(wt,Mt,Gt,rn,ln)}function H1(wt,Mt,Gt){var rn=Mt.pendingProps,ln=rn.children,yn=wt!==null?wt.memoizedState:null;if(rn.mode==="hidden")if(!(Mt.mode&1))Mt.memoizedState={baseLanes:0,cachePool:null},Bo(_p,Al),Al|=Gt;else if(Gt&1073741824)Mt.memoizedState={baseLanes:0,cachePool:null},rn=yn!==null?yn.baseLanes:Gt,Bo(_p,Al),Al|=rn;else return wt=yn!==null?yn.baseLanes|Gt:Gt,Mt.lanes=Mt.childLanes=1073741824,Mt.memoizedState={baseLanes:wt,cachePool:null},Mt.updateQueue=null,Bo(_p,Al),Al|=wt,null;else yn!==null?(rn=yn.baseLanes|Gt,Mt.memoizedState=null):rn=Gt,Bo(_p,Al),Al|=rn;return _s(wt,Mt,ln,Gt),Mt.child}function Y1(wt,Mt){var Gt=Mt.ref;(wt===null&&Gt!==null||wt!==null&&wt.ref!==Gt)&&(Mt.flags|=512,Mt.flags|=2097152)}function nu(wt,Mt,Gt,rn,ln){var yn=Lo(Gt)?gs:ns.current;return yn=bs(Mt,yn),$u(Mt,ln),Gt=us(wt,Mt,Gt,rn,yn,ln),rn=j0(),wt!==null&&!Vl?(Mt.updateQueue=wt.updateQueue,Mt.flags&=-2053,wt.lanes&=~ln,Js(wt,Mt,ln)):(Us&&rn&&p0(Mt),Mt.flags|=1,_s(wt,Mt,Gt,ln),Mt.child)}function X1(wt,Mt,Gt,rn,ln){if(Lo(Gt)){var yn=!0;ys(Mt)}else yn=!1;if($u(Mt,ln),Mt.stateNode===null)wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),T1(Mt,Gt,rn),lp(Mt,Gt,rn,ln),rn=!0;else if(wt===null){var Xn=Mt.stateNode,pr=Mt.memoizedProps;Xn.props=pr;var Or=Xn.context,io=Gt.contextType;typeof io=="object"&&io!==null?io=Rs(io):(io=Lo(Gt)?gs:ns.current,io=bs(Mt,io));var yo=Gt.getDerivedStateFromProps,Zo=typeof yo=="function"||typeof Xn.getSnapshotBeforeUpdate=="function";Zo||typeof Xn.UNSAFE_componentWillReceiveProps!="function"&&typeof Xn.componentWillReceiveProps!="function"||(pr!==rn||Or!==io)&&I0(Mt,Xn,rn,io),Ds=!1;var wo=Mt.memoizedState;Xn.state=wo,Xl(Mt,rn,Xn,ln),Or=Mt.memoizedState,pr!==rn||wo!==Or||ps.current||Ds?(typeof yo=="function"&&(Mp(Mt,Gt,yo,rn),Or=Mt.memoizedState),(pr=Ds||E1(Mt,Gt,pr,rn,wo,Or,io))?(Zo||typeof Xn.UNSAFE_componentWillMount!="function"&&typeof Xn.componentWillMount!="function"||(typeof Xn.componentWillMount=="function"&&Xn.componentWillMount(),typeof Xn.UNSAFE_componentWillMount=="function"&&Xn.UNSAFE_componentWillMount()),typeof Xn.componentDidMount=="function"&&(Mt.flags|=4194308)):(typeof Xn.componentDidMount=="function"&&(Mt.flags|=4194308),Mt.memoizedProps=rn,Mt.memoizedState=Or),Xn.props=rn,Xn.state=Or,Xn.context=io,rn=pr):(typeof Xn.componentDidMount=="function"&&(Mt.flags|=4194308),rn=!1)}else{Xn=Mt.stateNode,J0(wt,Mt),pr=Mt.memoizedProps,io=Mt.type===Mt.elementType?pr:Co(Mt.type,pr),Xn.props=io,Zo=Mt.pendingProps,wo=Xn.context,Or=Gt.contextType,typeof Or=="object"&&Or!==null?Or=Rs(Or):(Or=Lo(Gt)?gs:ns.current,Or=bs(Mt,Or));var ds=Gt.getDerivedStateFromProps;(yo=typeof ds=="function"||typeof Xn.getSnapshotBeforeUpdate=="function")||typeof Xn.UNSAFE_componentWillReceiveProps!="function"&&typeof Xn.componentWillReceiveProps!="function"||(pr!==Zo||wo!==Or)&&I0(Mt,Xn,rn,Or),Ds=!1,wo=Mt.memoizedState,Xn.state=wo,Xl(Mt,rn,Xn,ln);var bo=Mt.memoizedState;pr!==Zo||wo!==bo||ps.current||Ds?(typeof ds=="function"&&(Mp(Mt,Gt,ds,rn),bo=Mt.memoizedState),(io=Ds||E1(Mt,Gt,io,rn,wo,bo,Or)||!1)?(yo||typeof Xn.UNSAFE_componentWillUpdate!="function"&&typeof Xn.componentWillUpdate!="function"||(typeof Xn.componentWillUpdate=="function"&&Xn.componentWillUpdate(rn,bo,Or),typeof Xn.UNSAFE_componentWillUpdate=="function"&&Xn.UNSAFE_componentWillUpdate(rn,bo,Or)),typeof Xn.componentDidUpdate=="function"&&(Mt.flags|=4),typeof Xn.getSnapshotBeforeUpdate=="function"&&(Mt.flags|=1024)):(typeof Xn.componentDidUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=4),typeof Xn.getSnapshotBeforeUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=1024),Mt.memoizedProps=rn,Mt.memoizedState=bo),Xn.props=rn,Xn.state=bo,Xn.context=Or,rn=io):(typeof Xn.componentDidUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=4),typeof Xn.getSnapshotBeforeUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=1024),rn=!1)}return K0(wt,Mt,Gt,rn,yn,ln)}function K0(wt,Mt,Gt,rn,ln,yn){Y1(wt,Mt);var Xn=(Mt.flags&128)!==0;if(!rn&&!Xn)return ln&&Ns(Mt,Gt,!1),Js(wt,Mt,yn);rn=Mt.stateNode,C2.current=Mt;var pr=Xn&&typeof Gt.getDerivedStateFromError!="function"?null:rn.render();return Mt.flags|=1,wt!==null&&Xn?(Mt.child=pp(Mt,wt.child,null,yn),Mt.child=pp(Mt,null,pr,yn)):_s(wt,Mt,pr,yn),Mt.memoizedState=rn.state,ln&&Ns(Mt,Gt,!0),Mt.child}function K1(wt){var Mt=wt.stateNode;Mt.pendingContext?Ps(wt,Mt.pendingContext,Mt.pendingContext!==Mt.context):Mt.context&&Ps(wt,Mt.context,!1),Z0(wt,Mt.containerInfo)}function q1(wt,Mt,Gt,rn,ln){return dp(),Dp(ln),Mt.flags|=256,_s(wt,Mt,Gt,rn),Mt.child}var F0={dehydrated:null,treeContext:null,retryLane:0};function Il(wt){return{baseLanes:wt,cachePool:null}}function _g(wt,Mt,Gt){var rn=Mt.pendingProps,ln=dr.current,yn=!1,Xn=(Mt.flags&128)!==0,pr;if((pr=Xn)||(pr=wt!==null&&wt.memoizedState===null?!1:(ln&2)!==0),pr?(yn=!0,Mt.flags&=-129):(wt===null||wt.memoizedState!==null)&&(ln|=1),Bo(dr,ln&1),wt===null)return P0(Mt),wt=Mt.memoizedState,wt!==null&&(wt=wt.dehydrated,wt!==null)?(Mt.mode&1?er(wt)?Mt.lanes=8:Mt.lanes=1073741824:Mt.lanes=1,null):(ln=rn.children,wt=rn.fallback,yn?(rn=Mt.mode,yn=Mt.child,ln={mode:"hidden",children:ln},!(rn&1)&&yn!==null?(yn.childLanes=0,yn.pendingProps=ln):yn=i0(ln,rn,0,null),wt=ju(wt,rn,Gt,null),yn.return=Mt,wt.return=Mt,yn.sibling=wt,Mt.child=yn,Mt.child.memoizedState=Il(Gt),Mt.memoizedState=F0,wt):q0(Mt,ln));if(ln=wt.memoizedState,ln!==null){if(pr=ln.dehydrated,pr!==null){if(Xn)return Mt.flags&256?(Mt.flags&=-257,y0(wt,Mt,Gt,Error(it(422)))):Mt.memoizedState!==null?(Mt.child=wt.child,Mt.flags|=128,null):(yn=rn.fallback,ln=Mt.mode,rn=i0({mode:"visible",children:rn.children},ln,0,null),yn=ju(yn,ln,Gt,null),yn.flags|=2,rn.return=Mt,yn.return=Mt,rn.sibling=yn,Mt.child=rn,Mt.mode&1&&pp(Mt,wt.child,null,Gt),Mt.child.memoizedState=Il(Gt),Mt.memoizedState=F0,yn);if(!(Mt.mode&1))Mt=y0(wt,Mt,Gt,null);else if(er(pr))Mt=y0(wt,Mt,Gt,Error(it(419)));else if(rn=(Gt&wt.childLanes)!==0,Vl||rn){if(rn=Cs,rn!==null){switch(Gt&-Gt){case 4:yn=2;break;case 16:yn=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:yn=32;break;case 536870912:yn=268435456;break;default:yn=0}rn=yn&(rn.suspendedLanes|Gt)?0:yn,rn!==0&&rn!==ln.retryLane&&(ln.retryLane=rn,Ll(wt,rn,-1))}C0(),Mt=y0(wt,Mt,Gt,Error(it(421)))}else Gn(pr)?(Mt.flags|=128,Mt.child=wt.child,Mt=Zu.bind(null,wt),cr(pr,Mt),Mt=null):(Gt=ln.treeContext,on&&(Hs=nr(pr),Ql=Mt,Us=!0,eu=null,up=!1,Gt!==null&&(El[Tl++]=Bu,El[Tl++]=_c,El[Tl++]=xu,Bu=Gt.id,_c=Gt.overflow,xu=Mt)),Mt=q0(Mt,Mt.pendingProps.children),Mt.flags|=4096);return Mt}return yn?(rn=t2(wt,Mt,rn.children,rn.fallback,Gt),yn=Mt.child,ln=wt.child.memoizedState,yn.memoizedState=ln===null?Il(Gt):{baseLanes:ln.baseLanes|Gt,cachePool:null},yn.childLanes=wt.childLanes&~Gt,Mt.memoizedState=F0,rn):(Gt=e2(wt,Mt,rn.children,Gt),Mt.memoizedState=null,Gt)}return yn?(rn=t2(wt,Mt,rn.children,rn.fallback,Gt),yn=Mt.child,ln=wt.child.memoizedState,yn.memoizedState=ln===null?Il(Gt):{baseLanes:ln.baseLanes|Gt,cachePool:null},yn.childLanes=wt.childLanes&~Gt,Mt.memoizedState=F0,rn):(Gt=e2(wt,Mt,rn.children,Gt),Mt.memoizedState=null,Gt)}function q0(wt,Mt){return Mt=i0({mode:"visible",children:Mt},wt.mode,0,null),Mt.return=wt,wt.child=Mt}function e2(wt,Mt,Gt,rn){var ln=wt.child;return wt=ln.sibling,Gt=Tu(ln,{mode:"visible",children:Gt}),!(Mt.mode&1)&&(Gt.lanes=rn),Gt.return=Mt,Gt.sibling=null,wt!==null&&(rn=Mt.deletions,rn===null?(Mt.deletions=[wt],Mt.flags|=16):rn.push(wt)),Mt.child=Gt}function t2(wt,Mt,Gt,rn,ln){var yn=Mt.mode;wt=wt.child;var Xn=wt.sibling,pr={mode:"hidden",children:Gt};return!(yn&1)&&Mt.child!==wt?(Gt=Mt.child,Gt.childLanes=0,Gt.pendingProps=pr,Mt.deletions=null):(Gt=Tu(wt,pr),Gt.subtreeFlags=wt.subtreeFlags&14680064),Xn!==null?rn=Tu(Xn,rn):(rn=ju(rn,yn,ln,null),rn.flags|=2),rn.return=Mt,Gt.return=Mt,Gt.sibling=rn,Mt.child=Gt,rn}function y0(wt,Mt,Gt,rn){return rn!==null&&Dp(rn),pp(Mt,wt.child,null,Gt),wt=q0(Mt,Mt.pendingProps.children),wt.flags|=2,Mt.memoizedState=null,wt}function ku(wt,Mt,Gt){wt.lanes|=Mt;var rn=wt.alternate;rn!==null&&(rn.lanes|=Mt),u0(wt.return,Mt,Gt)}function e1(wt,Mt,Gt,rn,ln){var yn=wt.memoizedState;yn===null?wt.memoizedState={isBackwards:Mt,rendering:null,renderingStartTime:0,last:rn,tail:Gt,tailMode:ln}:(yn.isBackwards=Mt,yn.rendering=null,yn.renderingStartTime=0,yn.last=rn,yn.tail=Gt,yn.tailMode=ln)}function n2(wt,Mt,Gt){var rn=Mt.pendingProps,ln=rn.revealOrder,yn=rn.tail;if(_s(wt,Mt,rn.children,Gt),rn=dr.current,rn&2)rn=rn&1|2,Mt.flags|=128;else{if(wt!==null&&wt.flags&128)e:for(wt=Mt.child;wt!==null;){if(wt.tag===13)wt.memoizedState!==null&&ku(wt,Gt,Mt);else if(wt.tag===19)ku(wt,Gt,Mt);else if(wt.child!==null){wt.child.return=wt,wt=wt.child;continue}if(wt===Mt)break e;for(;wt.sibling===null;){if(wt.return===null||wt.return===Mt)break e;wt=wt.return}wt.sibling.return=wt.return,wt=wt.sibling}rn&=1}if(Bo(dr,rn),!(Mt.mode&1))Mt.memoizedState=null;else switch(ln){case"forwards":for(Gt=Mt.child,ln=null;Gt!==null;)wt=Gt.alternate,wt!==null&&Lr(wt)===null&&(ln=Gt),Gt=Gt.sibling;Gt=ln,Gt===null?(ln=Mt.child,Mt.child=null):(ln=Gt.sibling,Gt.sibling=null),e1(Mt,!1,ln,Gt,yn);break;case"backwards":for(Gt=null,ln=Mt.child,Mt.child=null;ln!==null;){if(wt=ln.alternate,wt!==null&&Lr(wt)===null){Mt.child=ln;break}wt=ln.sibling,ln.sibling=Gt,Gt=ln,ln=wt}e1(Mt,!0,Gt,null,yn);break;case"together":e1(Mt,!1,null,null,void 0);break;default:Mt.memoizedState=null}return Mt.child}function Js(wt,Mt,Gt){if(wt!==null&&(Mt.dependencies=wt.dependencies),Tp|=Mt.lanes,!(Gt&Mt.childLanes))return null;if(wt!==null&&Mt.child!==wt.child)throw Error(it(153));if(Mt.child!==null){for(wt=Mt.child,Gt=Tu(wt,wt.pendingProps),Mt.child=Gt,Gt.return=Mt;wt.sibling!==null;)wt=wt.sibling,Gt=Gt.sibling=Tu(wt,wt.pendingProps),Gt.return=Mt;Gt.sibling=null}return Mt.child}function x2(wt,Mt,Gt){switch(Mt.tag){case 3:K1(Mt),dp();break;case 5:N1(Mt);break;case 1:Lo(Mt.type)&&ys(Mt);break;case 4:Z0(Mt,Mt.stateNode.containerInfo);break;case 10:Ks(Mt,Mt.type._context,Mt.memoizedProps.value);break;case 13:var rn=Mt.memoizedState;if(rn!==null)return rn.dehydrated!==null?(Bo(dr,dr.current&1),Mt.flags|=128,null):Gt&Mt.child.childLanes?_g(wt,Mt,Gt):(Bo(dr,dr.current&1),wt=Js(wt,Mt,Gt),wt!==null?wt.sibling:null);Bo(dr,dr.current&1);break;case 19:if(rn=(Gt&Mt.childLanes)!==0,wt.flags&128){if(rn)return n2(wt,Mt,Gt);Mt.flags|=128}var ln=Mt.memoizedState;if(ln!==null&&(ln.rendering=null,ln.tail=null,ln.lastEffect=null),Bo(dr,dr.current),rn)break;return null;case 22:case 23:return Mt.lanes=0,H1(wt,Mt,Gt)}return Js(wt,Mt,Gt)}function V2(wt,Mt){switch(Bl(Mt),Mt.tag){case 1:return Lo(Mt.type)&&Qs(),wt=Mt.flags,wt&65536?(Mt.flags=wt&-65537|128,Mt):null;case 3:return mp(),so(ps),so(ns),go(),wt=Mt.flags,wt&65536&&!(wt&128)?(Mt.flags=wt&-65537|128,Mt):null;case 5:return Vu(Mt),null;case 13:if(so(dr),wt=Mt.memoizedState,wt!==null&&wt.dehydrated!==null){if(Mt.alternate===null)throw Error(it(340));dp()}return wt=Mt.flags,wt&65536?(Mt.flags=wt&-65537|128,Mt):null;case 19:return so(dr),null;case 4:return mp(),null;case 10:return c0(Mt.type._context),null;case 22:case 23:return f1(),null;case 24:return null;default:return null}}var R0=!1,qu=!1,M2=typeof WeakSet=="function"?WeakSet:Set,uo=null;function Yp(wt,Mt){var Gt=wt.ref;if(Gt!==null)if(typeof Gt=="function")try{Gt(null)}catch(rn){Ul(wt,Mt,rn)}else Gt.current=null}function t1(wt,Mt,Gt){try{Gt()}catch(rn){Ul(wt,Mt,rn)}}var r2=!1;function n1(wt,Mt){for(Dt(wt.containerInfo),uo=Mt;uo!==null;)if(wt=uo,Mt=wt.child,(wt.subtreeFlags&1028)!==0&&Mt!==null)Mt.return=wt,uo=Mt;else for(;uo!==null;){wt=uo;try{var Gt=wt.alternate;if(wt.flags&1024)switch(wt.tag){case 0:case 11:case 15:break;case 1:if(Gt!==null){var rn=Gt.memoizedProps,ln=Gt.memoizedState,yn=wt.stateNode,Xn=yn.getSnapshotBeforeUpdate(wt.elementType===wt.type?rn:Co(wt.type,rn),ln);yn.__reactInternalSnapshotBeforeUpdate=Xn}break;case 3:Ht&&Wn(wt.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(it(163))}}catch(pr){Ul(wt,wt.return,pr)}if(Mt=wt.sibling,Mt!==null){Mt.return=wt.return,uo=Mt;break}uo=wt.return}return Gt=r2,r2=!1,Gt}function ru(wt,Mt,Gt){var rn=Mt.updateQueue;if(rn=rn!==null?rn.lastEffect:null,rn!==null){var ln=rn=rn.next;do{if((ln.tag&wt)===wt){var yn=ln.destroy;ln.destroy=void 0,yn!==void 0&&t1(Mt,Gt,yn)}ln=ln.next}while(ln!==rn)}}function Du(wt,Mt){if(Mt=Mt.updateQueue,Mt=Mt!==null?Mt.lastEffect:null,Mt!==null){var Gt=Mt=Mt.next;do{if((Gt.tag&wt)===wt){var rn=Gt.create;Gt.destroy=rn()}Gt=Gt.next}while(Gt!==Mt)}}function r1(wt){var Mt=wt.ref;if(Mt!==null){var Gt=wt.stateNode;switch(wt.tag){case 5:wt=Nt(Gt);break;default:wt=Gt}typeof Mt=="function"?Mt(wt):Mt.current=wt}}function i1(wt,Mt,Gt){if(co&&typeof co.onCommitFiberUnmount=="function")try{co.onCommitFiberUnmount(Hr,Mt)}catch{}switch(Mt.tag){case 0:case 11:case 14:case 15:if(wt=Mt.updateQueue,wt!==null&&(wt=wt.lastEffect,wt!==null)){var rn=wt=wt.next;do{var ln=rn,yn=ln.destroy;ln=ln.tag,yn!==void 0&&(ln&2||ln&4)&&t1(Mt,Gt,yn),rn=rn.next}while(rn!==wt)}break;case 1:if(Yp(Mt,Gt),wt=Mt.stateNode,typeof wt.componentWillUnmount=="function")try{wt.props=Mt.memoizedProps,wt.state=Mt.memoizedState,wt.componentWillUnmount()}catch(Xn){Ul(Mt,Gt,Xn)}break;case 5:Yp(Mt,Gt);break;case 4:Ht?s1(wt,Mt,Gt):qt&&qt&&(Mt=Mt.stateNode.containerInfo,Gt=Fr(Mt),tr(Mt,Gt))}}function i2(wt,Mt,Gt){for(var rn=Mt;;)if(i1(wt,rn,Gt),rn.child===null||Ht&&rn.tag===4){if(rn===Mt)break;for(;rn.sibling===null;){if(rn.return===null||rn.return===Mt)return;rn=rn.return}rn.sibling.return=rn.return,rn=rn.sibling}else rn.child.return=rn,rn=rn.child}function mu(wt){var Mt=wt.alternate;Mt!==null&&(wt.alternate=null,mu(Mt)),wt.child=null,wt.deletions=null,wt.sibling=null,wt.tag===5&&(Mt=wt.stateNode,Mt!==null&&Fn(Mt)),wt.stateNode=null,wt.return=null,wt.dependencies=null,wt.memoizedProps=null,wt.memoizedState=null,wt.pendingProps=null,wt.stateNode=null,wt.updateQueue=null}function S0(wt){return wt.tag===5||wt.tag===3||wt.tag===4}function Ou(wt){e:for(;;){for(;wt.sibling===null;){if(wt.return===null||S0(wt.return))return null;wt=wt.return}for(wt.sibling.return=wt.return,wt=wt.sibling;wt.tag!==5&&wt.tag!==6&&wt.tag!==18;){if(wt.flags&2||wt.child===null||wt.tag===4)continue e;wt.child.return=wt,wt=wt.child}if(!(wt.flags&2))return wt.stateNode}}function Ml(wt){if(Ht){e:{for(var Mt=wt.return;Mt!==null;){if(S0(Mt))break e;Mt=Mt.return}throw Error(it(160))}var Gt=Mt;switch(Gt.tag){case 5:Mt=Gt.stateNode,Gt.flags&32&&(Fo(Mt),Gt.flags&=-33),Gt=Ou(wt),B0(wt,Gt,Mt);break;case 3:case 4:Mt=Gt.stateNode.containerInfo,Gt=Ou(wt),o1(wt,Gt,Mt);break;default:throw Error(it(161))}}}function o1(wt,Mt,Gt){var rn=wt.tag;if(rn===5||rn===6)wt=wt.stateNode,Mt?Yr(Gt,wt,Mt):Ir(Gt,wt);else if(rn!==4&&(wt=wt.child,wt!==null))for(o1(wt,Mt,Gt),wt=wt.sibling;wt!==null;)o1(wt,Mt,Gt),wt=wt.sibling}function B0(wt,Mt,Gt){var rn=wt.tag;if(rn===5||rn===6)wt=wt.stateNode,Mt?eo(Gt,wt,Mt):_r(Gt,wt);else if(rn!==4&&(wt=wt.child,wt!==null))for(B0(wt,Mt,Gt),wt=wt.sibling;wt!==null;)B0(wt,Mt,Gt),wt=wt.sibling}function s1(wt,Mt,Gt){for(var rn=Mt,ln=!1,yn,Xn;;){if(!ln){ln=rn.return;e:for(;;){if(ln===null)throw Error(it(160));switch(yn=ln.stateNode,ln.tag){case 5:Xn=!1;break e;case 3:yn=yn.containerInfo,Xn=!0;break e;case 4:yn=yn.containerInfo,Xn=!0;break e}ln=ln.return}ln=!0}if(rn.tag===5||rn.tag===6)i2(wt,rn,Gt),Xn?ro(yn,rn.stateNode):_o(yn,rn.stateNode);else if(rn.tag===18)Xn?zr(yn,rn.stateNode):fr(yn,rn.stateNode);else if(rn.tag===4){if(rn.child!==null){yn=rn.stateNode.containerInfo,Xn=!0,rn.child.return=rn,rn=rn.child;continue}}else if(i1(wt,rn,Gt),rn.child!==null){rn.child.return=rn,rn=rn.child;continue}if(rn===Mt)break;for(;rn.sibling===null;){if(rn.return===null||rn.return===Mt)return;rn=rn.return,rn.tag===4&&(ln=!1)}rn.sibling.return=rn.return,rn=rn.sibling}}function _d(wt,Mt){if(Ht){switch(Mt.tag){case 0:case 11:case 14:case 15:ru(3,Mt,Mt.return),Du(3,Mt),ru(5,Mt,Mt.return);return;case 1:return;case 5:var Gt=Mt.stateNode;if(Gt!=null){var rn=Mt.memoizedProps;wt=wt!==null?wt.memoizedProps:rn;var ln=Mt.type,yn=Mt.updateQueue;Mt.updateQueue=null,yn!==null&&Uo(Gt,yn,ln,wt,rn,Mt)}return;case 6:if(Mt.stateNode===null)throw Error(it(162));Gt=Mt.memoizedProps,Wr(Mt.stateNode,wt!==null?wt.memoizedProps:Gt,Gt);return;case 3:on&&wt!==null&&wt.memoizedState.isDehydrated&&Rr(Mt.stateNode.containerInfo);return;case 12:return;case 13:iu(Mt);return;case 19:iu(Mt);return;case 17:return}throw Error(it(163))}switch(Mt.tag){case 0:case 11:case 14:case 15:ru(3,Mt,Mt.return),Du(3,Mt),ru(5,Mt,Mt.return);return;case 12:return;case 13:iu(Mt);return;case 19:iu(Mt);return;case 3:on&&wt!==null&&wt.memoizedState.isDehydrated&&Rr(Mt.stateNode.containerInfo);break;case 22:case 23:return}e:if(qt){switch(Mt.tag){case 1:case 5:case 6:break e;case 3:case 4:Mt=Mt.stateNode,tr(Mt.containerInfo,Mt.pendingChildren);break e}throw Error(it(163))}}function iu(wt){var Mt=wt.updateQueue;if(Mt!==null){wt.updateQueue=null;var Gt=wt.stateNode;Gt===null&&(Gt=wt.stateNode=new M2),Mt.forEach(function(rn){var ln=p2.bind(null,wt,rn);Gt.has(rn)||(Gt.add(rn),rn.then(ln,ln))})}}function o2(wt,Mt){for(uo=Mt;uo!==null;){Mt=uo;var Gt=Mt.deletions;if(Gt!==null)for(var rn=0;rn";case Kp:return":has("+(qp(wt)||"")+")";case Nl:return'[role="'+wt.value+'"]';case _h:return'"'+wt.value+'"';case bp:return'[data-testname="'+wt.value+'"]';default:throw Error(it(365))}}function a2(wt,Mt){var Gt=[];wt=[wt,0];for(var rn=0;rnln&&(ln=Xn),rn&=~yn}if(rn=ln,rn=ir()-rn,rn=(120>rn?120:480>rn?480:1080>rn?1080:1920>rn?1920:3e3>rn?3e3:4320>rn?4320:1960*A2(rn/1960))-rn,10wt?16:wt,Eu===null)var rn=!1;else{if(wt=Eu,Eu=null,t0=0,Ho&6)throw Error(it(331));var ln=Ho;for(Ho|=4,uo=wt.current;uo!==null;){var yn=uo,Xn=yn.child;if(uo.flags&16){var pr=yn.deletions;if(pr!==null){for(var Or=0;Orir()-d1?Fu(wt,0):u1|=Gt),Vo(wt,Mt)}function d2(wt,Mt){Mt===0&&(wt.mode&1?(Mt=js,js<<=1,!(js&130023424)&&(js=4194304)):Mt=1);var Gt=xa();wt=xp(wt,Mt),wt!==null&&(Mn(wt,Mt,Gt),Vo(wt,Gt))}function Zu(wt){var Mt=wt.memoizedState,Gt=0;Mt!==null&&(Gt=Mt.retryLane),d2(wt,Gt)}function p2(wt,Mt){var Gt=0;switch(wt.tag){case 13:var rn=wt.stateNode,ln=wt.memoizedState;ln!==null&&(Gt=ln.retryLane);break;case 19:rn=wt.stateNode;break;default:throw Error(it(314))}rn!==null&&rn.delete(Mt),d2(wt,Gt)}var y1;y1=function(wt,Mt,Gt){if(wt!==null)if(wt.memoizedProps!==Mt.pendingProps||ps.current)Vl=!0;else{if(!(wt.lanes&Gt)&&!(Mt.flags&128))return Vl=!1,x2(wt,Mt,Gt);Vl=!!(wt.flags&131072)}else Vl=!1,Us&&Mt.flags&1048576&&w1(Mt,Ap,Mt.index);switch(Mt.lanes=0,Mt.tag){case 2:var rn=Mt.type;wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),wt=Mt.pendingProps;var ln=bs(Mt,ns.current);$u(Mt,Gt),ln=us(null,Mt,rn,wt,ln,Gt);var yn=j0();return Mt.flags|=1,typeof ln=="object"&&ln!==null&&typeof ln.render=="function"&&ln.$$typeof===void 0?(Mt.tag=1,Mt.memoizedState=null,Mt.updateQueue=null,Lo(rn)?(yn=!0,ys(Mt)):yn=!1,Mt.memoizedState=ln.state!==null&&ln.state!==void 0?ln.state:null,W0(Mt),ln.updater=h0,Mt.stateNode=ln,ln._reactInternals=Mt,lp(Mt,rn,wt,Gt),Mt=K0(null,Mt,rn,!0,yn,Gt)):(Mt.tag=0,Us&&yn&&p0(Mt),_s(null,Mt,ln,Gt),Mt=Mt.child),Mt;case 16:rn=Mt.elementType;e:{switch(wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),wt=Mt.pendingProps,ln=rn._init,rn=ln(rn._payload),Mt.type=rn,ln=Mt.tag=f2(rn),wt=Co(rn,wt),ln){case 0:Mt=nu(null,Mt,rn,wt,Gt);break e;case 1:Mt=X1(null,Mt,rn,wt,Gt);break e;case 11:Mt=z1(null,Mt,rn,wt,Gt);break e;case 14:Mt=$1(null,Mt,rn,Co(rn.type,wt),Gt);break e}throw Error(it(306,rn,""))}return Mt;case 0:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),nu(wt,Mt,rn,ln,Gt);case 1:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),X1(wt,Mt,rn,ln,Gt);case 3:e:{if(K1(Mt),wt===null)throw Error(it(387));rn=Mt.pendingProps,yn=Mt.memoizedState,ln=yn.element,J0(wt,Mt),Xl(Mt,rn,null,Gt);var Xn=Mt.memoizedState;if(rn=Xn.element,on&&yn.isDehydrated)if(yn={element:rn,isDehydrated:!1,cache:Xn.cache,transitions:Xn.transitions},Mt.updateQueue.baseState=yn,Mt.memoizedState=yn,Mt.flags&256){ln=Error(it(423)),Mt=q1(wt,Mt,rn,Gt,ln);break e}else if(rn!==ln){ln=Error(it(424)),Mt=q1(wt,Mt,rn,Gt,ln);break e}else for(on&&(Hs=ur(Mt.stateNode.containerInfo),Ql=Mt,Us=!0,eu=null,up=!1),Gt=M1(Mt,null,rn,Gt),Mt.child=Gt;Gt;)Gt.flags=Gt.flags&-3|4096,Gt=Gt.sibling;else{if(dp(),rn===ln){Mt=Js(wt,Mt,Gt);break e}_s(wt,Mt,rn,Gt)}Mt=Mt.child}return Mt;case 5:return N1(Mt),wt===null&&P0(Mt),rn=Mt.type,ln=Mt.pendingProps,yn=wt!==null?wt.memoizedProps:null,Xn=ln.children,nn(rn,ln)?Xn=null:yn!==null&&nn(rn,yn)&&(Mt.flags|=32),Y1(wt,Mt),_s(wt,Mt,Xn,Gt),Mt.child;case 6:return wt===null&&P0(Mt),null;case 13:return _g(wt,Mt,Gt);case 4:return Z0(Mt,Mt.stateNode.containerInfo),rn=Mt.pendingProps,wt===null?Mt.child=pp(Mt,null,rn,Gt):_s(wt,Mt,rn,Gt),Mt.child;case 11:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),z1(wt,Mt,rn,ln,Gt);case 7:return _s(wt,Mt,Mt.pendingProps,Gt),Mt.child;case 8:return _s(wt,Mt,Mt.pendingProps.children,Gt),Mt.child;case 12:return _s(wt,Mt,Mt.pendingProps.children,Gt),Mt.child;case 10:e:{if(rn=Mt.type._context,ln=Mt.pendingProps,yn=Mt.memoizedProps,Xn=ln.value,Ks(Mt,rn,Xn),yn!==null)if(vn(yn.value,Xn)){if(yn.children===ln.children&&!ps.current){Mt=Js(wt,Mt,Gt);break e}}else for(yn=Mt.child,yn!==null&&(yn.return=Mt);yn!==null;){var pr=yn.dependencies;if(pr!==null){Xn=yn.child;for(var Or=pr.firstContext;Or!==null;){if(Or.context===rn){if(yn.tag===1){Or=qs(-1,Gt&-Gt),Or.tag=2;var io=yn.updateQueue;if(io!==null){io=io.shared;var yo=io.pending;yo===null?Or.next=Or:(Or.next=yo.next,yo.next=Or),io.pending=Or}}yn.lanes|=Gt,Or=yn.alternate,Or!==null&&(Or.lanes|=Gt),u0(yn.return,Gt,Mt),pr.lanes|=Gt;break}Or=Or.next}}else if(yn.tag===10)Xn=yn.type===Mt.type?null:yn.child;else if(yn.tag===18){if(Xn=yn.return,Xn===null)throw Error(it(341));Xn.lanes|=Gt,pr=Xn.alternate,pr!==null&&(pr.lanes|=Gt),u0(Xn,Gt,Mt),Xn=yn.sibling}else Xn=yn.child;if(Xn!==null)Xn.return=yn;else for(Xn=yn;Xn!==null;){if(Xn===Mt){Xn=null;break}if(yn=Xn.sibling,yn!==null){yn.return=Xn.return,Xn=yn;break}Xn=Xn.return}yn=Xn}_s(wt,Mt,ln.children,Gt),Mt=Mt.child}return Mt;case 9:return ln=Mt.type,rn=Mt.pendingProps.children,$u(Mt,Gt),ln=Rs(ln),rn=rn(ln),Mt.flags|=1,_s(wt,Mt,rn,Gt),Mt.child;case 14:return rn=Mt.type,ln=Co(rn,Mt.pendingProps),ln=Co(rn.type,ln),$1(wt,Mt,rn,ln,Gt);case 15:return G1(wt,Mt,Mt.type,Mt.pendingProps,Gt);case 17:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),Mt.tag=1,Lo(rn)?(wt=!0,ys(Mt)):wt=!1,$u(Mt,Gt),T1(Mt,rn,ln),lp(Mt,rn,ln,Gt),K0(null,Mt,rn,!0,wt,Gt);case 19:return n2(wt,Mt,Gt);case 22:return H1(wt,Mt,Gt)}throw Error(it(156,Mt.tag))};function V0(wt,Mt){return bn(wt,Mt)}function k2(wt,Mt,Gt,rn){this.tag=wt,this.key=Gt,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=Mt,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=rn,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pl(wt,Mt,Gt,rn){return new k2(wt,Mt,Gt,rn)}function R1(wt){return wt=wt.prototype,!(!wt||!wt.isReactComponent)}function f2(wt){if(typeof wt=="function")return R1(wt)?1:0;if(wt!=null){if(wt=wt.$$typeof,wt===pt)return 11;if(wt===yt)return 14}return 2}function Tu(wt,Mt){var Gt=wt.alternate;return Gt===null?(Gt=Pl(wt.tag,Mt,wt.key,wt.mode),Gt.elementType=wt.elementType,Gt.type=wt.type,Gt.stateNode=wt.stateNode,Gt.alternate=wt,wt.alternate=Gt):(Gt.pendingProps=Mt,Gt.type=wt.type,Gt.flags=0,Gt.subtreeFlags=0,Gt.deletions=null),Gt.flags=wt.flags&14680064,Gt.childLanes=wt.childLanes,Gt.lanes=wt.lanes,Gt.child=wt.child,Gt.memoizedProps=wt.memoizedProps,Gt.memoizedState=wt.memoizedState,Gt.updateQueue=wt.updateQueue,Mt=wt.dependencies,Gt.dependencies=Mt===null?null:{lanes:Mt.lanes,firstContext:Mt.firstContext},Gt.sibling=wt.sibling,Gt.index=wt.index,Gt.ref=wt.ref,Gt}function M0(wt,Mt,Gt,rn,ln,yn){var Xn=2;if(rn=wt,typeof wt=="function")R1(wt)&&(Xn=1);else if(typeof wt=="string")Xn=5;else e:switch(wt){case lt:return ju(Gt.children,ln,yn,Mt);case ut:Xn=8,ln|=8;break;case dt:return wt=Pl(12,Gt,Mt,ln|2),wt.elementType=dt,wt.lanes=yn,wt;case ft:return wt=Pl(13,Gt,Mt,ln),wt.elementType=ft,wt.lanes=yn,wt;case gt:return wt=Pl(19,Gt,Mt,ln),wt.elementType=gt,wt.lanes=yn,wt;case Ft:return i0(Gt,ln,yn,Mt);default:if(typeof wt=="object"&&wt!==null)switch(wt.$$typeof){case ht:Xn=10;break e;case ct:Xn=9;break e;case pt:Xn=11;break e;case yt:Xn=14;break e;case Ut:Xn=16,rn=null;break e}throw Error(it(130,wt==null?wt:typeof wt,""))}return Mt=Pl(Xn,Gt,Mt,ln),Mt.elementType=wt,Mt.type=rn,Mt.lanes=yn,Mt}function ju(wt,Mt,Gt,rn){return wt=Pl(7,wt,rn,Mt),wt.lanes=Gt,wt}function i0(wt,Mt,Gt,rn){return wt=Pl(22,wt,rn,Mt),wt.elementType=Ft,wt.lanes=Gt,wt.stateNode={},wt}function Fl(wt,Mt,Gt){return wt=Pl(6,wt,null,Mt),wt.lanes=Gt,wt}function Zl(wt,Mt,Gt){return Mt=Pl(4,wt.children!==null?wt.children:[],wt.key,Mt),Mt.lanes=Gt,Mt.stateNode={containerInfo:wt.containerInfo,pendingChildren:null,implementation:wt.implementation},Mt}function D2(wt,Mt,Gt,rn,ln){this.tag=Mt,this.containerInfo=wt,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=It,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Dn(0),this.expirationTimes=Dn(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Dn(0),this.identifierPrefix=rn,this.onRecoverableError=ln,on&&(this.mutableSourceEagerHydrationData=null)}function g2(wt,Mt,Gt,rn,ln,yn,Xn,pr,Or){return wt=new D2(wt,Mt,Gt,pr,Or),Mt===1?(Mt=1,yn===!0&&(Mt|=8)):Mt=0,yn=Pl(3,null,null,Mt),wt.current=yn,yn.stateNode=wt,yn.memoizedState={element:rn,isDehydrated:Gt,cache:null,transitions:null},W0(yn),wt}function o0(wt){if(!wt)return Io;wt=wt._reactInternals;e:{if(Rt(wt)!==wt||wt.tag!==1)throw Error(it(170));var Mt=wt;do{switch(Mt.tag){case 3:Mt=Mt.stateNode.context;break e;case 1:if(Lo(Mt.type)){Mt=Mt.stateNode.__reactInternalMemoizedMergedChildContext;break e}}Mt=Mt.return}while(Mt!==null);throw Error(it(171))}if(wt.tag===1){var Gt=wt.type;if(Lo(Gt))return No(wt,Gt,Mt)}return Mt}function np(wt){var Mt=wt._reactInternals;if(Mt===void 0)throw typeof wt.render=="function"?Error(it(188)):(wt=Object.keys(wt).join(","),Error(it(268,wt)));return wt=Bt(Mt),wt===null?null:wt.stateNode}function S1(wt,Mt){if(wt=wt.memoizedState,wt!==null&&wt.dehydrated!==null){var Gt=wt.retryLane;wt.retryLane=Gt!==0&&Gt=io&&yn>=Zo&&ln<=yo&&Xn<=wo){wt.splice(Mt,1);break}else if(rn!==io||Gt.width!==Or.width||woXn){if(!(yn!==Zo||Gt.height!==Or.height||yoln)){io>rn&&(Or.width+=io-rn,Or.x=rn),yoyn&&(Or.height+=Zo-yn,Or.y=yn),woGt&&(Gt=Xn)),Xn_f&&(Mt.flags|=128,rn=!0,ga(ln,!1),Mt.lanes=4194304)}else{if(!rn)if(wt=Lr(yn),wt!==null){if(Mt.flags|=128,rn=!0,wt=wt.updateQueue,wt!==null&&(Mt.updateQueue=wt,Mt.flags|=4),ga(ln,!0),ln.tail===null&&ln.tailMode==="hidden"&&!yn.alternate&&!Us)return Mo(Mt),null}else 2*ir()-ln.renderingStartTime>_f&&Gt!==1073741824&&(Mt.flags|=128,rn=!0,ga(ln,!1),Mt.lanes=4194304);ln.isBackwards?(yn.sibling=Mt.child,Mt.child=yn):(wt=ln.last,wt!==null?wt.sibling=yn:Mt.child=yn,ln.last=yn)}return ln.tail!==null?(Mt=ln.tail,ln.rendering=Mt,ln.tail=Mt.sibling,ln.renderingStartTime=ir(),Mt.sibling=null,wt=dr.current,Bo(dr,rn?wt&1|2:wt&1),Mt):(Mo(Mt),null);case 22:case 23:return f1(),rn=Mt.memoizedState!==null,wt!==null&&wt.memoizedState!==null!==rn&&(Mt.flags|=8192),rn&&Mt.mode&1?Al&1073741824&&(Mo(Mt),Ht&&Mt.subtreeFlags&6&&(Mt.flags|=8192)):Mo(Mt),null;case 24:return null;case 25:return null}throw Error(it(156,Mt.tag))}var C2=ot.ReactCurrentOwner,Vl=!1;function _s(wt,Mt,Gt,rn){Mt.child=wt===null?M1(Mt,null,Gt,rn):pp(Mt,wt.child,Gt,rn)}function z1(wt,Mt,Gt,rn,ln){Gt=Gt.render;var yn=Mt.ref;return $u(Mt,ln),rn=us(wt,Mt,Gt,rn,yn,ln),Gt=j0(),wt!==null&&!Vl?(Mt.updateQueue=wt.updateQueue,Mt.flags&=-2053,wt.lanes&=~ln,Ws(wt,Mt,ln)):(Us&&Gt&&p0(Mt),Mt.flags|=1,_s(wt,Mt,rn,ln),Mt.child)}function $1(wt,Mt,Gt,rn,ln){if(wt===null){var yn=Gt.type;return typeof yn=="function"&&!R1(yn)&&yn.defaultProps===void 0&&Gt.compare===null&&Gt.defaultProps===void 0?(Mt.tag=15,Mt.type=yn,G1(wt,Mt,yn,rn,ln)):(wt=M0(Gt.type,null,rn,Mt,Mt.mode,ln),wt.ref=Mt.ref,wt.return=Mt,Mt.child=wt)}if(yn=wt.child,!(wt.lanes&ln)){var Xn=yn.memoizedProps;if(Gt=Gt.compare,Gt=Gt!==null?Gt:no,Gt(Xn,rn)&&wt.ref===Mt.ref)return Ws(wt,Mt,ln)}return Mt.flags|=1,wt=Tu(yn,rn),wt.ref=Mt.ref,wt.return=Mt,Mt.child=wt}function G1(wt,Mt,Gt,rn,ln){if(wt!==null&&no(wt.memoizedProps,rn)&&wt.ref===Mt.ref)if(Vl=!1,(wt.lanes&ln)!==0)wt.flags&131072&&(Vl=!0);else return Mt.lanes=wt.lanes,Ws(wt,Mt,ln);return nu(wt,Mt,Gt,rn,ln)}function H1(wt,Mt,Gt){var rn=Mt.pendingProps,ln=rn.children,yn=wt!==null?wt.memoizedState:null;if(rn.mode==="hidden")if(!(Mt.mode&1))Mt.memoizedState={baseLanes:0,cachePool:null},Bo(_p,Al),Al|=Gt;else if(Gt&1073741824)Mt.memoizedState={baseLanes:0,cachePool:null},rn=yn!==null?yn.baseLanes:Gt,Bo(_p,Al),Al|=rn;else return wt=yn!==null?yn.baseLanes|Gt:Gt,Mt.lanes=Mt.childLanes=1073741824,Mt.memoizedState={baseLanes:wt,cachePool:null},Mt.updateQueue=null,Bo(_p,Al),Al|=wt,null;else yn!==null?(rn=yn.baseLanes|Gt,Mt.memoizedState=null):rn=Gt,Bo(_p,Al),Al|=rn;return _s(wt,Mt,ln,Gt),Mt.child}function Y1(wt,Mt){var Gt=Mt.ref;(wt===null&&Gt!==null||wt!==null&&wt.ref!==Gt)&&(Mt.flags|=512,Mt.flags|=2097152)}function nu(wt,Mt,Gt,rn,ln){var yn=Lo(Gt)?gs:ns.current;return yn=bs(Mt,yn),$u(Mt,ln),Gt=us(wt,Mt,Gt,rn,yn,ln),rn=j0(),wt!==null&&!Vl?(Mt.updateQueue=wt.updateQueue,Mt.flags&=-2053,wt.lanes&=~ln,Ws(wt,Mt,ln)):(Us&&rn&&p0(Mt),Mt.flags|=1,_s(wt,Mt,Gt,ln),Mt.child)}function X1(wt,Mt,Gt,rn,ln){if(Lo(Gt)){var yn=!0;ys(Mt)}else yn=!1;if($u(Mt,ln),Mt.stateNode===null)wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),T1(Mt,Gt,rn),lp(Mt,Gt,rn,ln),rn=!0;else if(wt===null){var Xn=Mt.stateNode,pr=Mt.memoizedProps;Xn.props=pr;var Or=Xn.context,io=Gt.contextType;typeof io=="object"&&io!==null?io=Rs(io):(io=Lo(Gt)?gs:ns.current,io=bs(Mt,io));var yo=Gt.getDerivedStateFromProps,Zo=typeof yo=="function"||typeof Xn.getSnapshotBeforeUpdate=="function";Zo||typeof Xn.UNSAFE_componentWillReceiveProps!="function"&&typeof Xn.componentWillReceiveProps!="function"||(pr!==rn||Or!==io)&&I0(Mt,Xn,rn,io),Ds=!1;var wo=Mt.memoizedState;Xn.state=wo,Xl(Mt,rn,Xn,ln),Or=Mt.memoizedState,pr!==rn||wo!==Or||ps.current||Ds?(typeof yo=="function"&&(Mp(Mt,Gt,yo,rn),Or=Mt.memoizedState),(pr=Ds||E1(Mt,Gt,pr,rn,wo,Or,io))?(Zo||typeof Xn.UNSAFE_componentWillMount!="function"&&typeof Xn.componentWillMount!="function"||(typeof Xn.componentWillMount=="function"&&Xn.componentWillMount(),typeof Xn.UNSAFE_componentWillMount=="function"&&Xn.UNSAFE_componentWillMount()),typeof Xn.componentDidMount=="function"&&(Mt.flags|=4194308)):(typeof Xn.componentDidMount=="function"&&(Mt.flags|=4194308),Mt.memoizedProps=rn,Mt.memoizedState=Or),Xn.props=rn,Xn.state=Or,Xn.context=io,rn=pr):(typeof Xn.componentDidMount=="function"&&(Mt.flags|=4194308),rn=!1)}else{Xn=Mt.stateNode,W0(wt,Mt),pr=Mt.memoizedProps,io=Mt.type===Mt.elementType?pr:Co(Mt.type,pr),Xn.props=io,Zo=Mt.pendingProps,wo=Xn.context,Or=Gt.contextType,typeof Or=="object"&&Or!==null?Or=Rs(Or):(Or=Lo(Gt)?gs:ns.current,Or=bs(Mt,Or));var ds=Gt.getDerivedStateFromProps;(yo=typeof ds=="function"||typeof Xn.getSnapshotBeforeUpdate=="function")||typeof Xn.UNSAFE_componentWillReceiveProps!="function"&&typeof Xn.componentWillReceiveProps!="function"||(pr!==Zo||wo!==Or)&&I0(Mt,Xn,rn,Or),Ds=!1,wo=Mt.memoizedState,Xn.state=wo,Xl(Mt,rn,Xn,ln);var bo=Mt.memoizedState;pr!==Zo||wo!==bo||ps.current||Ds?(typeof ds=="function"&&(Mp(Mt,Gt,ds,rn),bo=Mt.memoizedState),(io=Ds||E1(Mt,Gt,io,rn,wo,bo,Or)||!1)?(yo||typeof Xn.UNSAFE_componentWillUpdate!="function"&&typeof Xn.componentWillUpdate!="function"||(typeof Xn.componentWillUpdate=="function"&&Xn.componentWillUpdate(rn,bo,Or),typeof Xn.UNSAFE_componentWillUpdate=="function"&&Xn.UNSAFE_componentWillUpdate(rn,bo,Or)),typeof Xn.componentDidUpdate=="function"&&(Mt.flags|=4),typeof Xn.getSnapshotBeforeUpdate=="function"&&(Mt.flags|=1024)):(typeof Xn.componentDidUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=4),typeof Xn.getSnapshotBeforeUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=1024),Mt.memoizedProps=rn,Mt.memoizedState=bo),Xn.props=rn,Xn.state=bo,Xn.context=Or,rn=io):(typeof Xn.componentDidUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=4),typeof Xn.getSnapshotBeforeUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=1024),rn=!1)}return K0(wt,Mt,Gt,rn,yn,ln)}function K0(wt,Mt,Gt,rn,ln,yn){Y1(wt,Mt);var Xn=(Mt.flags&128)!==0;if(!rn&&!Xn)return ln&&Ns(Mt,Gt,!1),Ws(wt,Mt,yn);rn=Mt.stateNode,C2.current=Mt;var pr=Xn&&typeof Gt.getDerivedStateFromError!="function"?null:rn.render();return Mt.flags|=1,wt!==null&&Xn?(Mt.child=pp(Mt,wt.child,null,yn),Mt.child=pp(Mt,null,pr,yn)):_s(wt,Mt,pr,yn),Mt.memoizedState=rn.state,ln&&Ns(Mt,Gt,!0),Mt.child}function K1(wt){var Mt=wt.stateNode;Mt.pendingContext?Ps(wt,Mt.pendingContext,Mt.pendingContext!==Mt.context):Mt.context&&Ps(wt,Mt.context,!1),Z0(wt,Mt.containerInfo)}function q1(wt,Mt,Gt,rn,ln){return dp(),Dp(ln),Mt.flags|=256,_s(wt,Mt,Gt,rn),Mt.child}var F0={dehydrated:null,treeContext:null,retryLane:0};function Il(wt){return{baseLanes:wt,cachePool:null}}function _g(wt,Mt,Gt){var rn=Mt.pendingProps,ln=dr.current,yn=!1,Xn=(Mt.flags&128)!==0,pr;if((pr=Xn)||(pr=wt!==null&&wt.memoizedState===null?!1:(ln&2)!==0),pr?(yn=!0,Mt.flags&=-129):(wt===null||wt.memoizedState!==null)&&(ln|=1),Bo(dr,ln&1),wt===null)return P0(Mt),wt=Mt.memoizedState,wt!==null&&(wt=wt.dehydrated,wt!==null)?(Mt.mode&1?er(wt)?Mt.lanes=8:Mt.lanes=1073741824:Mt.lanes=1,null):(ln=rn.children,wt=rn.fallback,yn?(rn=Mt.mode,yn=Mt.child,ln={mode:"hidden",children:ln},!(rn&1)&&yn!==null?(yn.childLanes=0,yn.pendingProps=ln):yn=i0(ln,rn,0,null),wt=ju(wt,rn,Gt,null),yn.return=Mt,wt.return=Mt,yn.sibling=wt,Mt.child=yn,Mt.child.memoizedState=Il(Gt),Mt.memoizedState=F0,wt):q0(Mt,ln));if(ln=wt.memoizedState,ln!==null){if(pr=ln.dehydrated,pr!==null){if(Xn)return Mt.flags&256?(Mt.flags&=-257,y0(wt,Mt,Gt,Error(it(422)))):Mt.memoizedState!==null?(Mt.child=wt.child,Mt.flags|=128,null):(yn=rn.fallback,ln=Mt.mode,rn=i0({mode:"visible",children:rn.children},ln,0,null),yn=ju(yn,ln,Gt,null),yn.flags|=2,rn.return=Mt,yn.return=Mt,rn.sibling=yn,Mt.child=rn,Mt.mode&1&&pp(Mt,wt.child,null,Gt),Mt.child.memoizedState=Il(Gt),Mt.memoizedState=F0,yn);if(!(Mt.mode&1))Mt=y0(wt,Mt,Gt,null);else if(er(pr))Mt=y0(wt,Mt,Gt,Error(it(419)));else if(rn=(Gt&wt.childLanes)!==0,Vl||rn){if(rn=Cs,rn!==null){switch(Gt&-Gt){case 4:yn=2;break;case 16:yn=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:yn=32;break;case 536870912:yn=268435456;break;default:yn=0}rn=yn&(rn.suspendedLanes|Gt)?0:yn,rn!==0&&rn!==ln.retryLane&&(ln.retryLane=rn,Ll(wt,rn,-1))}C0(),Mt=y0(wt,Mt,Gt,Error(it(421)))}else Gn(pr)?(Mt.flags|=128,Mt.child=wt.child,Mt=Zu.bind(null,wt),cr(pr,Mt),Mt=null):(Gt=ln.treeContext,on&&(Hs=nr(pr),Ql=Mt,Us=!0,eu=null,up=!1,Gt!==null&&(El[Tl++]=Bu,El[Tl++]=_c,El[Tl++]=xu,Bu=Gt.id,_c=Gt.overflow,xu=Mt)),Mt=q0(Mt,Mt.pendingProps.children),Mt.flags|=4096);return Mt}return yn?(rn=t2(wt,Mt,rn.children,rn.fallback,Gt),yn=Mt.child,ln=wt.child.memoizedState,yn.memoizedState=ln===null?Il(Gt):{baseLanes:ln.baseLanes|Gt,cachePool:null},yn.childLanes=wt.childLanes&~Gt,Mt.memoizedState=F0,rn):(Gt=e2(wt,Mt,rn.children,Gt),Mt.memoizedState=null,Gt)}return yn?(rn=t2(wt,Mt,rn.children,rn.fallback,Gt),yn=Mt.child,ln=wt.child.memoizedState,yn.memoizedState=ln===null?Il(Gt):{baseLanes:ln.baseLanes|Gt,cachePool:null},yn.childLanes=wt.childLanes&~Gt,Mt.memoizedState=F0,rn):(Gt=e2(wt,Mt,rn.children,Gt),Mt.memoizedState=null,Gt)}function q0(wt,Mt){return Mt=i0({mode:"visible",children:Mt},wt.mode,0,null),Mt.return=wt,wt.child=Mt}function e2(wt,Mt,Gt,rn){var ln=wt.child;return wt=ln.sibling,Gt=Tu(ln,{mode:"visible",children:Gt}),!(Mt.mode&1)&&(Gt.lanes=rn),Gt.return=Mt,Gt.sibling=null,wt!==null&&(rn=Mt.deletions,rn===null?(Mt.deletions=[wt],Mt.flags|=16):rn.push(wt)),Mt.child=Gt}function t2(wt,Mt,Gt,rn,ln){var yn=Mt.mode;wt=wt.child;var Xn=wt.sibling,pr={mode:"hidden",children:Gt};return!(yn&1)&&Mt.child!==wt?(Gt=Mt.child,Gt.childLanes=0,Gt.pendingProps=pr,Mt.deletions=null):(Gt=Tu(wt,pr),Gt.subtreeFlags=wt.subtreeFlags&14680064),Xn!==null?rn=Tu(Xn,rn):(rn=ju(rn,yn,ln,null),rn.flags|=2),rn.return=Mt,Gt.return=Mt,Gt.sibling=rn,Mt.child=Gt,rn}function y0(wt,Mt,Gt,rn){return rn!==null&&Dp(rn),pp(Mt,wt.child,null,Gt),wt=q0(Mt,Mt.pendingProps.children),wt.flags|=2,Mt.memoizedState=null,wt}function ku(wt,Mt,Gt){wt.lanes|=Mt;var rn=wt.alternate;rn!==null&&(rn.lanes|=Mt),u0(wt.return,Mt,Gt)}function e1(wt,Mt,Gt,rn,ln){var yn=wt.memoizedState;yn===null?wt.memoizedState={isBackwards:Mt,rendering:null,renderingStartTime:0,last:rn,tail:Gt,tailMode:ln}:(yn.isBackwards=Mt,yn.rendering=null,yn.renderingStartTime=0,yn.last=rn,yn.tail=Gt,yn.tailMode=ln)}function n2(wt,Mt,Gt){var rn=Mt.pendingProps,ln=rn.revealOrder,yn=rn.tail;if(_s(wt,Mt,rn.children,Gt),rn=dr.current,rn&2)rn=rn&1|2,Mt.flags|=128;else{if(wt!==null&&wt.flags&128)e:for(wt=Mt.child;wt!==null;){if(wt.tag===13)wt.memoizedState!==null&&ku(wt,Gt,Mt);else if(wt.tag===19)ku(wt,Gt,Mt);else if(wt.child!==null){wt.child.return=wt,wt=wt.child;continue}if(wt===Mt)break e;for(;wt.sibling===null;){if(wt.return===null||wt.return===Mt)break e;wt=wt.return}wt.sibling.return=wt.return,wt=wt.sibling}rn&=1}if(Bo(dr,rn),!(Mt.mode&1))Mt.memoizedState=null;else switch(ln){case"forwards":for(Gt=Mt.child,ln=null;Gt!==null;)wt=Gt.alternate,wt!==null&&Lr(wt)===null&&(ln=Gt),Gt=Gt.sibling;Gt=ln,Gt===null?(ln=Mt.child,Mt.child=null):(ln=Gt.sibling,Gt.sibling=null),e1(Mt,!1,ln,Gt,yn);break;case"backwards":for(Gt=null,ln=Mt.child,Mt.child=null;ln!==null;){if(wt=ln.alternate,wt!==null&&Lr(wt)===null){Mt.child=ln;break}wt=ln.sibling,ln.sibling=Gt,Gt=ln,ln=wt}e1(Mt,!0,Gt,null,yn);break;case"together":e1(Mt,!1,null,null,void 0);break;default:Mt.memoizedState=null}return Mt.child}function Ws(wt,Mt,Gt){if(wt!==null&&(Mt.dependencies=wt.dependencies),Tp|=Mt.lanes,!(Gt&Mt.childLanes))return null;if(wt!==null&&Mt.child!==wt.child)throw Error(it(153));if(Mt.child!==null){for(wt=Mt.child,Gt=Tu(wt,wt.pendingProps),Mt.child=Gt,Gt.return=Mt;wt.sibling!==null;)wt=wt.sibling,Gt=Gt.sibling=Tu(wt,wt.pendingProps),Gt.return=Mt;Gt.sibling=null}return Mt.child}function x2(wt,Mt,Gt){switch(Mt.tag){case 3:K1(Mt),dp();break;case 5:N1(Mt);break;case 1:Lo(Mt.type)&&ys(Mt);break;case 4:Z0(Mt,Mt.stateNode.containerInfo);break;case 10:Ks(Mt,Mt.type._context,Mt.memoizedProps.value);break;case 13:var rn=Mt.memoizedState;if(rn!==null)return rn.dehydrated!==null?(Bo(dr,dr.current&1),Mt.flags|=128,null):Gt&Mt.child.childLanes?_g(wt,Mt,Gt):(Bo(dr,dr.current&1),wt=Ws(wt,Mt,Gt),wt!==null?wt.sibling:null);Bo(dr,dr.current&1);break;case 19:if(rn=(Gt&Mt.childLanes)!==0,wt.flags&128){if(rn)return n2(wt,Mt,Gt);Mt.flags|=128}var ln=Mt.memoizedState;if(ln!==null&&(ln.rendering=null,ln.tail=null,ln.lastEffect=null),Bo(dr,dr.current),rn)break;return null;case 22:case 23:return Mt.lanes=0,H1(wt,Mt,Gt)}return Ws(wt,Mt,Gt)}function V2(wt,Mt){switch(Bl(Mt),Mt.tag){case 1:return Lo(Mt.type)&&Qs(),wt=Mt.flags,wt&65536?(Mt.flags=wt&-65537|128,Mt):null;case 3:return mp(),so(ps),so(ns),go(),wt=Mt.flags,wt&65536&&!(wt&128)?(Mt.flags=wt&-65537|128,Mt):null;case 5:return Vu(Mt),null;case 13:if(so(dr),wt=Mt.memoizedState,wt!==null&&wt.dehydrated!==null){if(Mt.alternate===null)throw Error(it(340));dp()}return wt=Mt.flags,wt&65536?(Mt.flags=wt&-65537|128,Mt):null;case 19:return so(dr),null;case 4:return mp(),null;case 10:return c0(Mt.type._context),null;case 22:case 23:return f1(),null;case 24:return null;default:return null}}var R0=!1,qu=!1,M2=typeof WeakSet=="function"?WeakSet:Set,uo=null;function Yp(wt,Mt){var Gt=wt.ref;if(Gt!==null)if(typeof Gt=="function")try{Gt(null)}catch(rn){Ul(wt,Mt,rn)}else Gt.current=null}function t1(wt,Mt,Gt){try{Gt()}catch(rn){Ul(wt,Mt,rn)}}var r2=!1;function n1(wt,Mt){for(Dt(wt.containerInfo),uo=Mt;uo!==null;)if(wt=uo,Mt=wt.child,(wt.subtreeFlags&1028)!==0&&Mt!==null)Mt.return=wt,uo=Mt;else for(;uo!==null;){wt=uo;try{var Gt=wt.alternate;if(wt.flags&1024)switch(wt.tag){case 0:case 11:case 15:break;case 1:if(Gt!==null){var rn=Gt.memoizedProps,ln=Gt.memoizedState,yn=wt.stateNode,Xn=yn.getSnapshotBeforeUpdate(wt.elementType===wt.type?rn:Co(wt.type,rn),ln);yn.__reactInternalSnapshotBeforeUpdate=Xn}break;case 3:Ht&&Jn(wt.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(it(163))}}catch(pr){Ul(wt,wt.return,pr)}if(Mt=wt.sibling,Mt!==null){Mt.return=wt.return,uo=Mt;break}uo=wt.return}return Gt=r2,r2=!1,Gt}function ru(wt,Mt,Gt){var rn=Mt.updateQueue;if(rn=rn!==null?rn.lastEffect:null,rn!==null){var ln=rn=rn.next;do{if((ln.tag&wt)===wt){var yn=ln.destroy;ln.destroy=void 0,yn!==void 0&&t1(Mt,Gt,yn)}ln=ln.next}while(ln!==rn)}}function Du(wt,Mt){if(Mt=Mt.updateQueue,Mt=Mt!==null?Mt.lastEffect:null,Mt!==null){var Gt=Mt=Mt.next;do{if((Gt.tag&wt)===wt){var rn=Gt.create;Gt.destroy=rn()}Gt=Gt.next}while(Gt!==Mt)}}function r1(wt){var Mt=wt.ref;if(Mt!==null){var Gt=wt.stateNode;switch(wt.tag){case 5:wt=Nt(Gt);break;default:wt=Gt}typeof Mt=="function"?Mt(wt):Mt.current=wt}}function i1(wt,Mt,Gt){if(co&&typeof co.onCommitFiberUnmount=="function")try{co.onCommitFiberUnmount(Hr,Mt)}catch{}switch(Mt.tag){case 0:case 11:case 14:case 15:if(wt=Mt.updateQueue,wt!==null&&(wt=wt.lastEffect,wt!==null)){var rn=wt=wt.next;do{var ln=rn,yn=ln.destroy;ln=ln.tag,yn!==void 0&&(ln&2||ln&4)&&t1(Mt,Gt,yn),rn=rn.next}while(rn!==wt)}break;case 1:if(Yp(Mt,Gt),wt=Mt.stateNode,typeof wt.componentWillUnmount=="function")try{wt.props=Mt.memoizedProps,wt.state=Mt.memoizedState,wt.componentWillUnmount()}catch(Xn){Ul(Mt,Gt,Xn)}break;case 5:Yp(Mt,Gt);break;case 4:Ht?s1(wt,Mt,Gt):qt&&qt&&(Mt=Mt.stateNode.containerInfo,Gt=Fr(Mt),tr(Mt,Gt))}}function i2(wt,Mt,Gt){for(var rn=Mt;;)if(i1(wt,rn,Gt),rn.child===null||Ht&&rn.tag===4){if(rn===Mt)break;for(;rn.sibling===null;){if(rn.return===null||rn.return===Mt)return;rn=rn.return}rn.sibling.return=rn.return,rn=rn.sibling}else rn.child.return=rn,rn=rn.child}function mu(wt){var Mt=wt.alternate;Mt!==null&&(wt.alternate=null,mu(Mt)),wt.child=null,wt.deletions=null,wt.sibling=null,wt.tag===5&&(Mt=wt.stateNode,Mt!==null&&Fn(Mt)),wt.stateNode=null,wt.return=null,wt.dependencies=null,wt.memoizedProps=null,wt.memoizedState=null,wt.pendingProps=null,wt.stateNode=null,wt.updateQueue=null}function S0(wt){return wt.tag===5||wt.tag===3||wt.tag===4}function Ou(wt){e:for(;;){for(;wt.sibling===null;){if(wt.return===null||S0(wt.return))return null;wt=wt.return}for(wt.sibling.return=wt.return,wt=wt.sibling;wt.tag!==5&&wt.tag!==6&&wt.tag!==18;){if(wt.flags&2||wt.child===null||wt.tag===4)continue e;wt.child.return=wt,wt=wt.child}if(!(wt.flags&2))return wt.stateNode}}function Ml(wt){if(Ht){e:{for(var Mt=wt.return;Mt!==null;){if(S0(Mt))break e;Mt=Mt.return}throw Error(it(160))}var Gt=Mt;switch(Gt.tag){case 5:Mt=Gt.stateNode,Gt.flags&32&&(Fo(Mt),Gt.flags&=-33),Gt=Ou(wt),B0(wt,Gt,Mt);break;case 3:case 4:Mt=Gt.stateNode.containerInfo,Gt=Ou(wt),o1(wt,Gt,Mt);break;default:throw Error(it(161))}}}function o1(wt,Mt,Gt){var rn=wt.tag;if(rn===5||rn===6)wt=wt.stateNode,Mt?Yr(Gt,wt,Mt):Ir(Gt,wt);else if(rn!==4&&(wt=wt.child,wt!==null))for(o1(wt,Mt,Gt),wt=wt.sibling;wt!==null;)o1(wt,Mt,Gt),wt=wt.sibling}function B0(wt,Mt,Gt){var rn=wt.tag;if(rn===5||rn===6)wt=wt.stateNode,Mt?eo(Gt,wt,Mt):_r(Gt,wt);else if(rn!==4&&(wt=wt.child,wt!==null))for(B0(wt,Mt,Gt),wt=wt.sibling;wt!==null;)B0(wt,Mt,Gt),wt=wt.sibling}function s1(wt,Mt,Gt){for(var rn=Mt,ln=!1,yn,Xn;;){if(!ln){ln=rn.return;e:for(;;){if(ln===null)throw Error(it(160));switch(yn=ln.stateNode,ln.tag){case 5:Xn=!1;break e;case 3:yn=yn.containerInfo,Xn=!0;break e;case 4:yn=yn.containerInfo,Xn=!0;break e}ln=ln.return}ln=!0}if(rn.tag===5||rn.tag===6)i2(wt,rn,Gt),Xn?ro(yn,rn.stateNode):_o(yn,rn.stateNode);else if(rn.tag===18)Xn?zr(yn,rn.stateNode):fr(yn,rn.stateNode);else if(rn.tag===4){if(rn.child!==null){yn=rn.stateNode.containerInfo,Xn=!0,rn.child.return=rn,rn=rn.child;continue}}else if(i1(wt,rn,Gt),rn.child!==null){rn.child.return=rn,rn=rn.child;continue}if(rn===Mt)break;for(;rn.sibling===null;){if(rn.return===null||rn.return===Mt)return;rn=rn.return,rn.tag===4&&(ln=!1)}rn.sibling.return=rn.return,rn=rn.sibling}}function _d(wt,Mt){if(Ht){switch(Mt.tag){case 0:case 11:case 14:case 15:ru(3,Mt,Mt.return),Du(3,Mt),ru(5,Mt,Mt.return);return;case 1:return;case 5:var Gt=Mt.stateNode;if(Gt!=null){var rn=Mt.memoizedProps;wt=wt!==null?wt.memoizedProps:rn;var ln=Mt.type,yn=Mt.updateQueue;Mt.updateQueue=null,yn!==null&&Uo(Gt,yn,ln,wt,rn,Mt)}return;case 6:if(Mt.stateNode===null)throw Error(it(162));Gt=Mt.memoizedProps,Jr(Mt.stateNode,wt!==null?wt.memoizedProps:Gt,Gt);return;case 3:on&&wt!==null&&wt.memoizedState.isDehydrated&&Rr(Mt.stateNode.containerInfo);return;case 12:return;case 13:iu(Mt);return;case 19:iu(Mt);return;case 17:return}throw Error(it(163))}switch(Mt.tag){case 0:case 11:case 14:case 15:ru(3,Mt,Mt.return),Du(3,Mt),ru(5,Mt,Mt.return);return;case 12:return;case 13:iu(Mt);return;case 19:iu(Mt);return;case 3:on&&wt!==null&&wt.memoizedState.isDehydrated&&Rr(Mt.stateNode.containerInfo);break;case 22:case 23:return}e:if(qt){switch(Mt.tag){case 1:case 5:case 6:break e;case 3:case 4:Mt=Mt.stateNode,tr(Mt.containerInfo,Mt.pendingChildren);break e}throw Error(it(163))}}function iu(wt){var Mt=wt.updateQueue;if(Mt!==null){wt.updateQueue=null;var Gt=wt.stateNode;Gt===null&&(Gt=wt.stateNode=new M2),Mt.forEach(function(rn){var ln=p2.bind(null,wt,rn);Gt.has(rn)||(Gt.add(rn),rn.then(ln,ln))})}}function o2(wt,Mt){for(uo=Mt;uo!==null;){Mt=uo;var Gt=Mt.deletions;if(Gt!==null)for(var rn=0;rn";case Kp:return":has("+(qp(wt)||"")+")";case Nl:return'[role="'+wt.value+'"]';case _h:return'"'+wt.value+'"';case bp:return'[data-testname="'+wt.value+'"]';default:throw Error(it(365))}}function a2(wt,Mt){var Gt=[];wt=[wt,0];for(var rn=0;rnln&&(ln=Xn),rn&=~yn}if(rn=ln,rn=ir()-rn,rn=(120>rn?120:480>rn?480:1080>rn?1080:1920>rn?1920:3e3>rn?3e3:4320>rn?4320:1960*A2(rn/1960))-rn,10wt?16:wt,Eu===null)var rn=!1;else{if(wt=Eu,Eu=null,t0=0,Ho&6)throw Error(it(331));var ln=Ho;for(Ho|=4,uo=wt.current;uo!==null;){var yn=uo,Xn=yn.child;if(uo.flags&16){var pr=yn.deletions;if(pr!==null){for(var Or=0;Orir()-d1?Fu(wt,0):u1|=Gt),Vo(wt,Mt)}function d2(wt,Mt){Mt===0&&(wt.mode&1?(Mt=js,js<<=1,!(js&130023424)&&(js=4194304)):Mt=1);var Gt=xa();wt=xp(wt,Mt),wt!==null&&(Mn(wt,Mt,Gt),Vo(wt,Gt))}function Zu(wt){var Mt=wt.memoizedState,Gt=0;Mt!==null&&(Gt=Mt.retryLane),d2(wt,Gt)}function p2(wt,Mt){var Gt=0;switch(wt.tag){case 13:var rn=wt.stateNode,ln=wt.memoizedState;ln!==null&&(Gt=ln.retryLane);break;case 19:rn=wt.stateNode;break;default:throw Error(it(314))}rn!==null&&rn.delete(Mt),d2(wt,Gt)}var y1;y1=function(wt,Mt,Gt){if(wt!==null)if(wt.memoizedProps!==Mt.pendingProps||ps.current)Vl=!0;else{if(!(wt.lanes&Gt)&&!(Mt.flags&128))return Vl=!1,x2(wt,Mt,Gt);Vl=!!(wt.flags&131072)}else Vl=!1,Us&&Mt.flags&1048576&&w1(Mt,Ap,Mt.index);switch(Mt.lanes=0,Mt.tag){case 2:var rn=Mt.type;wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),wt=Mt.pendingProps;var ln=bs(Mt,ns.current);$u(Mt,Gt),ln=us(null,Mt,rn,wt,ln,Gt);var yn=j0();return Mt.flags|=1,typeof ln=="object"&&ln!==null&&typeof ln.render=="function"&&ln.$$typeof===void 0?(Mt.tag=1,Mt.memoizedState=null,Mt.updateQueue=null,Lo(rn)?(yn=!0,ys(Mt)):yn=!1,Mt.memoizedState=ln.state!==null&&ln.state!==void 0?ln.state:null,J0(Mt),ln.updater=h0,Mt.stateNode=ln,ln._reactInternals=Mt,lp(Mt,rn,wt,Gt),Mt=K0(null,Mt,rn,!0,yn,Gt)):(Mt.tag=0,Us&&yn&&p0(Mt),_s(null,Mt,ln,Gt),Mt=Mt.child),Mt;case 16:rn=Mt.elementType;e:{switch(wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),wt=Mt.pendingProps,ln=rn._init,rn=ln(rn._payload),Mt.type=rn,ln=Mt.tag=f2(rn),wt=Co(rn,wt),ln){case 0:Mt=nu(null,Mt,rn,wt,Gt);break e;case 1:Mt=X1(null,Mt,rn,wt,Gt);break e;case 11:Mt=z1(null,Mt,rn,wt,Gt);break e;case 14:Mt=$1(null,Mt,rn,Co(rn.type,wt),Gt);break e}throw Error(it(306,rn,""))}return Mt;case 0:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),nu(wt,Mt,rn,ln,Gt);case 1:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),X1(wt,Mt,rn,ln,Gt);case 3:e:{if(K1(Mt),wt===null)throw Error(it(387));rn=Mt.pendingProps,yn=Mt.memoizedState,ln=yn.element,W0(wt,Mt),Xl(Mt,rn,null,Gt);var Xn=Mt.memoizedState;if(rn=Xn.element,on&&yn.isDehydrated)if(yn={element:rn,isDehydrated:!1,cache:Xn.cache,transitions:Xn.transitions},Mt.updateQueue.baseState=yn,Mt.memoizedState=yn,Mt.flags&256){ln=Error(it(423)),Mt=q1(wt,Mt,rn,Gt,ln);break e}else if(rn!==ln){ln=Error(it(424)),Mt=q1(wt,Mt,rn,Gt,ln);break e}else for(on&&(Hs=ur(Mt.stateNode.containerInfo),Ql=Mt,Us=!0,eu=null,up=!1),Gt=M1(Mt,null,rn,Gt),Mt.child=Gt;Gt;)Gt.flags=Gt.flags&-3|4096,Gt=Gt.sibling;else{if(dp(),rn===ln){Mt=Ws(wt,Mt,Gt);break e}_s(wt,Mt,rn,Gt)}Mt=Mt.child}return Mt;case 5:return N1(Mt),wt===null&&P0(Mt),rn=Mt.type,ln=Mt.pendingProps,yn=wt!==null?wt.memoizedProps:null,Xn=ln.children,nn(rn,ln)?Xn=null:yn!==null&&nn(rn,yn)&&(Mt.flags|=32),Y1(wt,Mt),_s(wt,Mt,Xn,Gt),Mt.child;case 6:return wt===null&&P0(Mt),null;case 13:return _g(wt,Mt,Gt);case 4:return Z0(Mt,Mt.stateNode.containerInfo),rn=Mt.pendingProps,wt===null?Mt.child=pp(Mt,null,rn,Gt):_s(wt,Mt,rn,Gt),Mt.child;case 11:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),z1(wt,Mt,rn,ln,Gt);case 7:return _s(wt,Mt,Mt.pendingProps,Gt),Mt.child;case 8:return _s(wt,Mt,Mt.pendingProps.children,Gt),Mt.child;case 12:return _s(wt,Mt,Mt.pendingProps.children,Gt),Mt.child;case 10:e:{if(rn=Mt.type._context,ln=Mt.pendingProps,yn=Mt.memoizedProps,Xn=ln.value,Ks(Mt,rn,Xn),yn!==null)if(vn(yn.value,Xn)){if(yn.children===ln.children&&!ps.current){Mt=Ws(wt,Mt,Gt);break e}}else for(yn=Mt.child,yn!==null&&(yn.return=Mt);yn!==null;){var pr=yn.dependencies;if(pr!==null){Xn=yn.child;for(var Or=pr.firstContext;Or!==null;){if(Or.context===rn){if(yn.tag===1){Or=qs(-1,Gt&-Gt),Or.tag=2;var io=yn.updateQueue;if(io!==null){io=io.shared;var yo=io.pending;yo===null?Or.next=Or:(Or.next=yo.next,yo.next=Or),io.pending=Or}}yn.lanes|=Gt,Or=yn.alternate,Or!==null&&(Or.lanes|=Gt),u0(yn.return,Gt,Mt),pr.lanes|=Gt;break}Or=Or.next}}else if(yn.tag===10)Xn=yn.type===Mt.type?null:yn.child;else if(yn.tag===18){if(Xn=yn.return,Xn===null)throw Error(it(341));Xn.lanes|=Gt,pr=Xn.alternate,pr!==null&&(pr.lanes|=Gt),u0(Xn,Gt,Mt),Xn=yn.sibling}else Xn=yn.child;if(Xn!==null)Xn.return=yn;else for(Xn=yn;Xn!==null;){if(Xn===Mt){Xn=null;break}if(yn=Xn.sibling,yn!==null){yn.return=Xn.return,Xn=yn;break}Xn=Xn.return}yn=Xn}_s(wt,Mt,ln.children,Gt),Mt=Mt.child}return Mt;case 9:return ln=Mt.type,rn=Mt.pendingProps.children,$u(Mt,Gt),ln=Rs(ln),rn=rn(ln),Mt.flags|=1,_s(wt,Mt,rn,Gt),Mt.child;case 14:return rn=Mt.type,ln=Co(rn,Mt.pendingProps),ln=Co(rn.type,ln),$1(wt,Mt,rn,ln,Gt);case 15:return G1(wt,Mt,Mt.type,Mt.pendingProps,Gt);case 17:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),Mt.tag=1,Lo(rn)?(wt=!0,ys(Mt)):wt=!1,$u(Mt,Gt),T1(Mt,rn,ln),lp(Mt,rn,ln,Gt),K0(null,Mt,rn,!0,wt,Gt);case 19:return n2(wt,Mt,Gt);case 22:return H1(wt,Mt,Gt)}throw Error(it(156,Mt.tag))};function V0(wt,Mt){return bn(wt,Mt)}function k2(wt,Mt,Gt,rn){this.tag=wt,this.key=Gt,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=Mt,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=rn,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pl(wt,Mt,Gt,rn){return new k2(wt,Mt,Gt,rn)}function R1(wt){return wt=wt.prototype,!(!wt||!wt.isReactComponent)}function f2(wt){if(typeof wt=="function")return R1(wt)?1:0;if(wt!=null){if(wt=wt.$$typeof,wt===pt)return 11;if(wt===yt)return 14}return 2}function Tu(wt,Mt){var Gt=wt.alternate;return Gt===null?(Gt=Pl(wt.tag,Mt,wt.key,wt.mode),Gt.elementType=wt.elementType,Gt.type=wt.type,Gt.stateNode=wt.stateNode,Gt.alternate=wt,wt.alternate=Gt):(Gt.pendingProps=Mt,Gt.type=wt.type,Gt.flags=0,Gt.subtreeFlags=0,Gt.deletions=null),Gt.flags=wt.flags&14680064,Gt.childLanes=wt.childLanes,Gt.lanes=wt.lanes,Gt.child=wt.child,Gt.memoizedProps=wt.memoizedProps,Gt.memoizedState=wt.memoizedState,Gt.updateQueue=wt.updateQueue,Mt=wt.dependencies,Gt.dependencies=Mt===null?null:{lanes:Mt.lanes,firstContext:Mt.firstContext},Gt.sibling=wt.sibling,Gt.index=wt.index,Gt.ref=wt.ref,Gt}function M0(wt,Mt,Gt,rn,ln,yn){var Xn=2;if(rn=wt,typeof wt=="function")R1(wt)&&(Xn=1);else if(typeof wt=="string")Xn=5;else e:switch(wt){case lt:return ju(Gt.children,ln,yn,Mt);case ut:Xn=8,ln|=8;break;case dt:return wt=Pl(12,Gt,Mt,ln|2),wt.elementType=dt,wt.lanes=yn,wt;case ft:return wt=Pl(13,Gt,Mt,ln),wt.elementType=ft,wt.lanes=yn,wt;case gt:return wt=Pl(19,Gt,Mt,ln),wt.elementType=gt,wt.lanes=yn,wt;case Ft:return i0(Gt,ln,yn,Mt);default:if(typeof wt=="object"&&wt!==null)switch(wt.$$typeof){case ht:Xn=10;break e;case ct:Xn=9;break e;case pt:Xn=11;break e;case yt:Xn=14;break e;case Ut:Xn=16,rn=null;break e}throw Error(it(130,wt==null?wt:typeof wt,""))}return Mt=Pl(Xn,Gt,Mt,ln),Mt.elementType=wt,Mt.type=rn,Mt.lanes=yn,Mt}function ju(wt,Mt,Gt,rn){return wt=Pl(7,wt,rn,Mt),wt.lanes=Gt,wt}function i0(wt,Mt,Gt,rn){return wt=Pl(22,wt,rn,Mt),wt.elementType=Ft,wt.lanes=Gt,wt.stateNode={},wt}function Fl(wt,Mt,Gt){return wt=Pl(6,wt,null,Mt),wt.lanes=Gt,wt}function Zl(wt,Mt,Gt){return Mt=Pl(4,wt.children!==null?wt.children:[],wt.key,Mt),Mt.lanes=Gt,Mt.stateNode={containerInfo:wt.containerInfo,pendingChildren:null,implementation:wt.implementation},Mt}function D2(wt,Mt,Gt,rn,ln){this.tag=Mt,this.containerInfo=wt,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=It,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Dn(0),this.expirationTimes=Dn(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Dn(0),this.identifierPrefix=rn,this.onRecoverableError=ln,on&&(this.mutableSourceEagerHydrationData=null)}function g2(wt,Mt,Gt,rn,ln,yn,Xn,pr,Or){return wt=new D2(wt,Mt,Gt,pr,Or),Mt===1?(Mt=1,yn===!0&&(Mt|=8)):Mt=0,yn=Pl(3,null,null,Mt),wt.current=yn,yn.stateNode=wt,yn.memoizedState={element:rn,isDehydrated:Gt,cache:null,transitions:null},J0(yn),wt}function o0(wt){if(!wt)return Io;wt=wt._reactInternals;e:{if(Rt(wt)!==wt||wt.tag!==1)throw Error(it(170));var Mt=wt;do{switch(Mt.tag){case 3:Mt=Mt.stateNode.context;break e;case 1:if(Lo(Mt.type)){Mt=Mt.stateNode.__reactInternalMemoizedMergedChildContext;break e}}Mt=Mt.return}while(Mt!==null);throw Error(it(171))}if(wt.tag===1){var Gt=wt.type;if(Lo(Gt))return No(wt,Gt,Mt)}return Mt}function np(wt){var Mt=wt._reactInternals;if(Mt===void 0)throw typeof wt.render=="function"?Error(it(188)):(wt=Object.keys(wt).join(","),Error(it(268,wt)));return wt=Bt(Mt),wt===null?null:wt.stateNode}function S1(wt,Mt){if(wt=wt.memoizedState,wt!==null&&wt.dehydrated!==null){var Gt=wt.retryLane;wt.retryLane=Gt!==0&&Gt=io&&yn>=Zo&&ln<=yo&&Xn<=wo){wt.splice(Mt,1);break}else if(rn!==io||Gt.width!==Or.width||woXn){if(!(yn!==Zo||Gt.height!==Or.height||yoln)){io>rn&&(Or.width+=io-rn,Or.x=rn),yoyn&&(Or.height+=Zo-yn,Or.y=yn),woGt&&(Gt=Xn)),Xn ")+` No matching component was found for: - `)+wt.join(" > ")}return null},et.getPublicRootInstance=function(wt){if(wt=wt.current,!wt.child)return null;switch(wt.child.tag){case 5:return Nt(wt.child.stateNode);default:return wt.child.stateNode}},et.injectIntoDevTools=function(wt){if(wt={bundleType:wt.bundleType,version:wt.version,rendererPackageName:wt.rendererPackageName,rendererConfig:wt.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ot.ReactCurrentDispatcher,findHostInstanceByFiber:O2,findFiberByHostInstance:wt.findFiberByHostInstance||m2,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")wt=!1;else{var Mt=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(Mt.isDisabled||!Mt.supportsFiber)wt=!0;else{try{Hr=Mt.inject(wt),co=Mt}catch{}wt=!!Mt.checkDCE}}return wt},et.isAlreadyRendering=function(){return!1},et.observeVisibleRects=function(wt,Mt,Gt,rn){if(!gn)throw Error(it(363));wt=l1(wt,Mt);var ln=Qr(wt,Gt,rn).disconnect;return{disconnect:function(){ln()}}},et.registerMutableSourceForHydration=function(wt,Mt){var Gt=Mt._getVersion;Gt=Gt(Mt._source),wt.mutableSourceEagerHydrationData==null?wt.mutableSourceEagerHydrationData=[Mt,Gt]:wt.mutableSourceEagerHydrationData.push(Mt,Gt)},et.runWithPriority=function(wt,Mt){var Gt=Cr;try{return Cr=wt,Mt()}finally{Cr=Gt}},et.shouldError=function(){return null},et.shouldSuspend=function(){return!1},et.updateContainer=function(wt,Mt,Gt,rn){var ln=Mt.current,yn=xa(),Xn=Uu(ln);return Gt=o0(Gt),Mt.context===null?Mt.context=Gt:Mt.pendingContext=Gt,Mt=qs(yn,Xn),Mt.payload={element:wt},rn=rn===void 0?null:rn,rn!==null&&(Mt.callback=rn),Yl(ln,Mt),wt=Ll(ln,Xn,yn),wt!==null&&ap(wt,ln,Xn),Xn},et};reactReconciler.exports=reactReconciler_production_min;var reactReconcilerExports=reactReconciler.exports;const Reconciler=getDefaultExportFromCjs$1(reactReconcilerExports),isPromise=s=>typeof s=="object"&&typeof s.then=="function",globalCache=[];function shallowEqualArrays(s,o,et=(tt,nt)=>tt===nt){if(s===o)return!0;if(!s||!o)return!1;const tt=s.length;if(o.length!==tt)return!1;for(let nt=0;nt0&&(rt.timeout&&clearTimeout(rt.timeout),rt.timeout=setTimeout(rt.remove,tt.lifespan)),rt.response;if(!et)throw rt.promise}const nt={keys:o,equal:tt.equal,remove:()=>{const rt=globalCache.indexOf(nt);rt!==-1&&globalCache.splice(rt,1)},promise:(isPromise(s)?s:s(...o)).then(rt=>{nt.response=rt,tt.lifespan&&tt.lifespan>0&&(nt.timeout=setTimeout(nt.remove,tt.lifespan))}).catch(rt=>nt.error=rt)};if(globalCache.push(nt),!et)throw nt.promise}const suspend=(s,o,et)=>query$4(s,o,!1,et),preload=(s,o,et)=>void query$4(s,o,!0,et),clear=s=>{if(s===void 0||s.length===0)globalCache.splice(0,globalCache.length);else{const o=globalCache.find(et=>shallowEqualArrays(s,et.keys,et.equal));o&&o.remove()}},catalogue={},extend=s=>void Object.assign(catalogue,s);function createRenderer(s,o){function et(lt,{args:ut=[],attach:dt,...ht},ct){let pt=`${lt[0].toUpperCase()}${lt.slice(1)}`,ft;if(lt==="primitive"){if(ht.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const gt=ht.object;ft=prepare$1(gt,{type:lt,root:ct,attach:dt,primitive:!0})}else{const gt=catalogue[pt];if(!gt)throw new Error(`R3F: ${pt} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(ut))throw new Error("R3F: The args prop must be an array!");ft=prepare$1(new gt(...ut),{type:lt,root:ct,attach:dt,memoizedProps:{args:ut}})}return ft.__r3f.attach===void 0&&(ft instanceof BufferGeometry?ft.__r3f.attach="geometry":ft instanceof Material&&(ft.__r3f.attach="material")),pt!=="inject"&&applyProps$1(ft,ht),ft}function tt(lt,ut){let dt=!1;if(ut){var ht,ct;(ht=ut.__r3f)!=null&&ht.attach?attach(lt,ut,ut.__r3f.attach):ut.isObject3D&<.isObject3D&&(lt.add(ut),dt=!0),dt||(ct=lt.__r3f)==null||ct.objects.push(ut),ut.__r3f||prepare$1(ut,{}),ut.__r3f.parent=lt,updateInstance(ut),invalidateInstance(ut)}}function nt(lt,ut,dt){let ht=!1;if(ut){var ct,pt;if((ct=ut.__r3f)!=null&&ct.attach)attach(lt,ut,ut.__r3f.attach);else if(ut.isObject3D&<.isObject3D){ut.parent=lt,ut.dispatchEvent({type:"added"}),lt.dispatchEvent({type:"childadded",child:ut});const ft=lt.children.filter(yt=>yt!==ut),gt=ft.indexOf(dt);lt.children=[...ft.slice(0,gt),ut,...ft.slice(gt)],ht=!0}ht||(pt=lt.__r3f)==null||pt.objects.push(ut),ut.__r3f||prepare$1(ut,{}),ut.__r3f.parent=lt,updateInstance(ut),invalidateInstance(ut)}}function rt(lt,ut,dt=!1){lt&&[...lt].forEach(ht=>it(ut,ht,dt))}function it(lt,ut,dt){if(ut){var ht,ct,pt;if(ut.__r3f&&(ut.__r3f.parent=null),(ht=lt.__r3f)!=null&&ht.objects&&(lt.__r3f.objects=lt.__r3f.objects.filter(Ft=>Ft!==ut)),(ct=ut.__r3f)!=null&&ct.attach)detach(lt,ut,ut.__r3f.attach);else if(ut.isObject3D&<.isObject3D){var ft;lt.remove(ut),(ft=ut.__r3f)!=null&&ft.root&&removeInteractivity(findInitialRoot(ut),ut)}const yt=(pt=ut.__r3f)==null?void 0:pt.primitive,Ut=!yt&&(dt===void 0?ut.dispose!==null:dt);if(!yt){var gt;rt((gt=ut.__r3f)==null?void 0:gt.objects,ut,Ut),rt(ut.children,ut,Ut)}if(delete ut.__r3f,Ut&&ut.dispose&&ut.type!=="Scene"){const Ft=()=>{try{ut.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?schedulerExports.unstable_scheduleCallback(schedulerExports.unstable_IdlePriority,Ft):Ft()}invalidateInstance(lt)}}function ot(lt,ut,dt,ht){var ct;const pt=(ct=lt.__r3f)==null?void 0:ct.parent;if(!pt)return;const ft=et(ut,dt,lt.__r3f.root);if(lt.children){for(const gt of lt.children)gt.__r3f&&tt(ft,gt);lt.children=lt.children.filter(gt=>!gt.__r3f)}lt.__r3f.objects.forEach(gt=>tt(ft,gt)),lt.__r3f.objects=[],lt.__r3f.autoRemovedBeforeAppend||it(pt,lt),ft.parent&&(ft.__r3f.autoRemovedBeforeAppend=!0),tt(pt,ft),ft.raycast&&ft.__r3f.eventCount&&findInitialRoot(ft).getState().internal.interaction.push(ft),[ht,ht.alternate].forEach(gt=>{gt!==null&&(gt.stateNode=ft,gt.ref&&(typeof gt.ref=="function"?gt.ref(ft):gt.ref.current=ft))})}const st=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:Reconciler({createInstance:et,removeChild:it,appendChild:tt,appendInitialChild:tt,insertBefore:nt,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(lt,ut)=>{if(!ut)return;const dt=lt.getState().scene;dt.__r3f&&(dt.__r3f.root=lt,tt(dt,ut))},removeChildFromContainer:(lt,ut)=>{ut&&it(lt.getState().scene,ut)},insertInContainerBefore:(lt,ut,dt)=>{if(!ut||!dt)return;const ht=lt.getState().scene;ht.__r3f&&nt(ht,ut,dt)},getRootHostContext:()=>null,getChildHostContext:lt=>lt,finalizeInitialChildren(lt){var ut;return!!((ut=lt?.__r3f)!=null?ut:{}).handlers},prepareUpdate(lt,ut,dt,ht){var ct;if(((ct=lt?.__r3f)!=null?ct:{}).primitive&&ht.object&&ht.object!==lt)return[!0];{const{args:ft=[],children:gt,...yt}=ht,{args:Ut=[],children:Ft,...mt}=dt;if(!Array.isArray(ft))throw new Error("R3F: the args prop must be an array!");if(ft.some((At,Lt)=>At!==Ut[Lt]))return[!0];const vt=diffProps(lt,yt,mt,!0);return vt.changes.length?[!1,vt]:null}},commitUpdate(lt,[ut,dt],ht,ct,pt,ft){ut?ot(lt,ht,pt,ft):applyProps$1(lt,dt)},commitMount(lt,ut,dt,ht){var ct;const pt=(ct=lt.__r3f)!=null?ct:{};lt.raycast&&pt.handlers&&pt.eventCount&&findInitialRoot(lt).getState().internal.interaction.push(lt)},getPublicInstance:lt=>lt,prepareForCommit:()=>null,preparePortalMount:lt=>prepare$1(lt.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(lt){var ut;const{attach:dt,parent:ht}=(ut=lt.__r3f)!=null?ut:{};dt&&ht&&detach(ht,lt,dt),lt.isObject3D&&(lt.visible=!1),invalidateInstance(lt)},unhideInstance(lt,ut){var dt;const{attach:ht,parent:ct}=(dt=lt.__r3f)!=null?dt:{};ht&&ct&&attach(ct,lt,ht),(lt.isObject3D&&ut.visible==null||ut.visible)&&(lt.visible=!0),invalidateInstance(lt)},createTextInstance:st,hideTextInstance:st,unhideTextInstance:st,getCurrentEventPriority:()=>o?o():constantsExports.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&is.fun(performance.now)?performance.now:is.fun(Date.now)?Date.now:()=>0,scheduleTimeout:is.fun(setTimeout)?setTimeout:void 0,cancelTimeout:is.fun(clearTimeout)?clearTimeout:void 0}),applyProps:applyProps$1}}var _window$document,_window$navigator;const hasColorSpace=s=>"colorSpace"in s||"outputColorSpace"in s,getColorManagement=()=>{var s;return(s=catalogue.ColorManagement)!=null?s:null},isOrthographicCamera$1=s=>s&&s.isOrthographicCamera,isRef=s=>s&&s.hasOwnProperty("current"),useIsomorphicLayoutEffect$1=typeof window<"u"&&((_window$document=window.document)!=null&&_window$document.createElement||((_window$navigator=window.navigator)==null?void 0:_window$navigator.product)==="ReactNative")?reactExports.useLayoutEffect:reactExports.useEffect;function useMutableCallback(s){const o=reactExports.useRef(s);return useIsomorphicLayoutEffect$1(()=>void(o.current=s),[s]),o}function Block({set:s}){return useIsomorphicLayoutEffect$1(()=>(s(new Promise(()=>null)),()=>s(!1)),[s]),null}class ErrorBoundary extends reactExports.Component{constructor(...o){super(...o),this.state={error:!1}}componentDidCatch(o){this.props.set(o)}render(){return this.state.error?null:this.props.children}}ErrorBoundary.getDerivedStateFromError=()=>({error:!0});const DEFAULT="__default",DEFAULTS=new Map,isDiffSet=s=>s&&!!s.memoized&&!!s.changes;function calculateDpr(s){var o;const et=typeof window<"u"?(o=window.devicePixelRatio)!=null?o:2:1;return Array.isArray(s)?Math.min(Math.max(s[0],et),s[1]):s}const getRootState=s=>{var o;return(o=s.__r3f)==null?void 0:o.root.getState()};function findInitialRoot(s){let o=s.__r3f.root;for(;o.getState().previousRoot;)o=o.getState().previousRoot;return o}const is={obj:s=>s===Object(s)&&!is.arr(s)&&typeof s!="function",fun:s=>typeof s=="function",str:s=>typeof s=="string",num:s=>typeof s=="number",boo:s=>typeof s=="boolean",und:s=>s===void 0,arr:s=>Array.isArray(s),equ(s,o,{arrays:et="shallow",objects:tt="reference",strict:nt=!0}={}){if(typeof s!=typeof o||!!s!=!!o)return!1;if(is.str(s)||is.num(s)||is.boo(s))return s===o;const rt=is.obj(s);if(rt&&tt==="reference")return s===o;const it=is.arr(s);if(it&&et==="reference")return s===o;if((it||rt)&&s===o)return!0;let ot;for(ot in s)if(!(ot in o))return!1;if(rt&&et==="shallow"&&tt==="shallow"){for(ot in nt?o:s)if(!is.equ(s[ot],o[ot],{strict:nt,objects:"reference"}))return!1}else for(ot in nt?o:s)if(s[ot]!==o[ot])return!1;if(is.und(ot)){if(it&&s.length===0&&o.length===0||rt&&Object.keys(s).length===0&&Object.keys(o).length===0)return!0;if(s!==o)return!1}return!0}};function buildGraph(s){const o={nodes:{},materials:{}};return s&&s.traverse(et=>{et.name&&(o.nodes[et.name]=et),et.material&&!o.materials[et.material.name]&&(o.materials[et.material.name]=et.material)}),o}function dispose(s){s.dispose&&s.type!=="Scene"&&s.dispose();for(const o in s)o.dispose==null||o.dispose(),delete s[o]}function prepare$1(s,o){const et=s;return et.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...o},s}function resolve$1(s,o){let et=s;if(o.includes("-")){const tt=o.split("-"),nt=tt.pop();return et=tt.reduce((rt,it)=>rt[it],s),{target:et,key:nt}}else return{target:et,key:o}}const INDEX_REGEX=/-\d+$/;function attach(s,o,et){if(is.str(et)){if(INDEX_REGEX.test(et)){const rt=et.replace(INDEX_REGEX,""),{target:it,key:ot}=resolve$1(s,rt);Array.isArray(it[ot])||(it[ot]=[])}const{target:tt,key:nt}=resolve$1(s,et);o.__r3f.previousAttach=tt[nt],tt[nt]=o}else o.__r3f.previousAttach=et(s,o)}function detach(s,o,et){var tt,nt;if(is.str(et)){const{target:rt,key:it}=resolve$1(s,et),ot=o.__r3f.previousAttach;ot===void 0?delete rt[it]:rt[it]=ot}else(tt=o.__r3f)==null||tt.previousAttach==null||tt.previousAttach(s,o);(nt=o.__r3f)==null||delete nt.previousAttach}function diffProps(s,{children:o,key:et,ref:tt,...nt},{children:rt,key:it,ref:ot,...st}={},at=!1){const lt=s.__r3f,ut=Object.entries(nt),dt=[];if(at){const ct=Object.keys(st);for(let pt=0;pt{var ft;if((ft=s.__r3f)!=null&&ft.primitive&&ct==="object"||is.equ(pt,st[ct]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(ct))return dt.push([ct,pt,!0,[]]);let gt=[];ct.includes("-")&&(gt=ct.split("-")),dt.push([ct,pt,!1,gt]);for(const yt in nt){const Ut=nt[yt];yt.startsWith(`${ct}-`)&&dt.push([yt,Ut,!1,yt.split("-")])}});const ht={...nt};return lt!=null&<.memoizedProps&<!=null&<.memoizedProps.args&&(ht.args=lt.memoizedProps.args),lt!=null&<.memoizedProps&<!=null&<.memoizedProps.attach&&(ht.attach=lt.memoizedProps.attach),{memoized:ht,changes:dt}}const __DEV__=typeof process<"u"&&!1;function applyProps$1(s,o){var et;const tt=s.__r3f,nt=tt?.root,rt=nt==null||nt.getState==null?void 0:nt.getState(),{memoized:it,changes:ot}=isDiffSet(o)?o:diffProps(s,o),st=tt?.eventCount;s.__r3f&&(s.__r3f.memoizedProps=it);for(let lt=0;ltgt[yt],s),!(ft&&ft.set))){const[gt,...yt]=ct.reverse();pt=yt.reverse().reduce((Ut,Ft)=>Ut[Ft],s),ut=gt}if(dt===DEFAULT+"remove")if(pt.constructor){let gt=DEFAULTS.get(pt.constructor);gt||(gt=new pt.constructor,DEFAULTS.set(pt.constructor,gt)),dt=gt[ut]}else dt=0;if(ht&&tt)dt?tt.handlers[ut]=dt:delete tt.handlers[ut],tt.eventCount=Object.keys(tt.handlers).length;else if(ft&&ft.set&&(ft.copy||ft instanceof Layers)){if(Array.isArray(dt))ft.fromArray?ft.fromArray(dt):ft.set(...dt);else if(ft.copy&&dt&&dt.constructor&&(__DEV__?ft.constructor.name===dt.constructor.name:ft.constructor===dt.constructor))ft.copy(dt);else if(dt!==void 0){const gt=ft instanceof Color$2;!gt&&ft.setScalar?ft.setScalar(dt):ft instanceof Layers&&dt instanceof Layers?ft.mask=dt.mask:ft.set(dt),!getColorManagement()&&rt&&!rt.linear&>&&ft.convertSRGBToLinear()}}else if(pt[ut]=dt,pt[ut]instanceof Texture&&pt[ut].format===RGBAFormat&&pt[ut].type===UnsignedByteType&&rt){const gt=pt[ut];hasColorSpace(gt)&&hasColorSpace(rt.gl)?gt.colorSpace=rt.gl.outputColorSpace:gt.encoding=rt.gl.outputEncoding}invalidateInstance(s)}if(tt&&tt.parent&&s.raycast&&st!==tt.eventCount){const lt=findInitialRoot(s).getState().internal,ut=lt.interaction.indexOf(s);ut>-1&<.interaction.splice(ut,1),tt.eventCount&<.interaction.push(s)}return!(ot.length===1&&ot[0][0]==="onUpdate")&&ot.length&&(et=s.__r3f)!=null&&et.parent&&updateInstance(s),s}function invalidateInstance(s){var o,et;const tt=(o=s.__r3f)==null||(et=o.root)==null||et.getState==null?void 0:et.getState();tt&&tt.internal.frames===0&&tt.invalidate()}function updateInstance(s){s.onUpdate==null||s.onUpdate(s)}function updateCamera(s,o){s.manual||(isOrthographicCamera$1(s)?(s.left=o.width/-2,s.right=o.width/2,s.top=o.height/2,s.bottom=o.height/-2):s.aspect=o.width/o.height,s.updateProjectionMatrix(),s.updateMatrixWorld())}function makeId(s){return(s.eventObject||s.object).uuid+"/"+s.index+s.instanceId}function getEventPriority(){var s;const o=typeof self<"u"&&self||typeof window<"u"&&window;if(!o)return constantsExports.DefaultEventPriority;switch((s=o.event)==null?void 0:s.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return constantsExports.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return constantsExports.ContinuousEventPriority;default:return constantsExports.DefaultEventPriority}}function releaseInternalPointerCapture(s,o,et,tt){const nt=et.get(o);nt&&(et.delete(o),et.size===0&&(s.delete(tt),nt.target.releasePointerCapture(tt)))}function removeInteractivity(s,o){const{internal:et}=s.getState();et.interaction=et.interaction.filter(tt=>tt!==o),et.initialHits=et.initialHits.filter(tt=>tt!==o),et.hovered.forEach((tt,nt)=>{(tt.eventObject===o||tt.object===o)&&et.hovered.delete(nt)}),et.capturedMap.forEach((tt,nt)=>{releaseInternalPointerCapture(et.capturedMap,o,tt,nt)})}function createEvents(s){function o(st){const{internal:at}=s.getState(),lt=st.offsetX-at.initialClick[0],ut=st.offsetY-at.initialClick[1];return Math.round(Math.sqrt(lt*lt+ut*ut))}function et(st){return st.filter(at=>["Move","Over","Enter","Out","Leave"].some(lt=>{var ut;return(ut=at.__r3f)==null?void 0:ut.handlers["onPointer"+lt]}))}function tt(st,at){const lt=s.getState(),ut=new Set,dt=[],ht=at?at(lt.internal.interaction):lt.internal.interaction;for(let gt=0;gt{const Ut=getRootState(gt.object),Ft=getRootState(yt.object);return!Ut||!Ft?gt.distance-yt.distance:Ft.events.priority-Ut.events.priority||gt.distance-yt.distance}).filter(gt=>{const yt=makeId(gt);return ut.has(yt)?!1:(ut.add(yt),!0)});lt.events.filter&&(pt=lt.events.filter(pt,lt));for(const gt of pt){let yt=gt.object;for(;yt;){var ft;(ft=yt.__r3f)!=null&&ft.eventCount&&dt.push({...gt,eventObject:yt}),yt=yt.parent}}if("pointerId"in st&<.internal.capturedMap.has(st.pointerId))for(let gt of lt.internal.capturedMap.get(st.pointerId).values())ut.has(makeId(gt.intersection))||dt.push(gt.intersection);return dt}function nt(st,at,lt,ut){const dt=s.getState();if(st.length){const ht={stopped:!1};for(const ct of st){const pt=getRootState(ct.object)||dt,{raycaster:ft,pointer:gt,camera:yt,internal:Ut}=pt,Ft=new Vector3(gt.x,gt.y,0).unproject(yt),mt=St=>{var Tt,Bt;return(Tt=(Bt=Ut.capturedMap.get(St))==null?void 0:Bt.has(ct.eventObject))!=null?Tt:!1},vt=St=>{const Tt={intersection:ct,target:at.target};Ut.capturedMap.has(St)?Ut.capturedMap.get(St).set(ct.eventObject,Tt):Ut.capturedMap.set(St,new Map([[ct.eventObject,Tt]])),at.target.setPointerCapture(St)},At=St=>{const Tt=Ut.capturedMap.get(St);Tt&&releaseInternalPointerCapture(Ut.capturedMap,ct.eventObject,Tt,St)};let Lt={};for(let St in at){let Tt=at[St];typeof Tt!="function"&&(Lt[St]=Tt)}let Rt={...ct,...Lt,pointer:gt,intersections:st,stopped:ht.stopped,delta:lt,unprojectedPoint:Ft,ray:ft.ray,camera:yt,stopPropagation(){const St="pointerId"in at&&Ut.capturedMap.get(at.pointerId);if((!St||St.has(ct.eventObject))&&(Rt.stopped=ht.stopped=!0,Ut.hovered.size&&Array.from(Ut.hovered.values()).find(Tt=>Tt.eventObject===ct.eventObject))){const Tt=st.slice(0,st.indexOf(ct));rt([...Tt,ct])}},target:{hasPointerCapture:mt,setPointerCapture:vt,releasePointerCapture:At},currentTarget:{hasPointerCapture:mt,setPointerCapture:vt,releasePointerCapture:At},nativeEvent:at};if(ut(Rt),ht.stopped===!0)break}}return st}function rt(st){const{internal:at}=s.getState();for(const lt of at.hovered.values())if(!st.length||!st.find(ut=>ut.object===lt.object&&ut.index===lt.index&&ut.instanceId===lt.instanceId)){const dt=lt.eventObject.__r3f,ht=dt?.handlers;if(at.hovered.delete(makeId(lt)),dt!=null&&dt.eventCount){const ct={...lt,intersections:st};ht.onPointerOut==null||ht.onPointerOut(ct),ht.onPointerLeave==null||ht.onPointerLeave(ct)}}}function it(st,at){for(let lt=0;ltrt([]);case"onLostPointerCapture":return at=>{const{internal:lt}=s.getState();"pointerId"in at&<.capturedMap.has(at.pointerId)&&requestAnimationFrame(()=>{lt.capturedMap.has(at.pointerId)&&(lt.capturedMap.delete(at.pointerId),rt([]))})}}return function(lt){const{onPointerMissed:ut,internal:dt}=s.getState();dt.lastEvent.current=lt;const ht=st==="onPointerMove",ct=st==="onClick"||st==="onContextMenu"||st==="onDoubleClick",ft=tt(lt,ht?et:void 0),gt=ct?o(lt):0;st==="onPointerDown"&&(dt.initialClick=[lt.offsetX,lt.offsetY],dt.initialHits=ft.map(Ut=>Ut.eventObject)),ct&&!ft.length&><=2&&(it(lt,dt.interaction),ut&&ut(lt)),ht&&rt(ft);function yt(Ut){const Ft=Ut.eventObject,mt=Ft.__r3f,vt=mt?.handlers;if(mt!=null&&mt.eventCount)if(ht){if(vt.onPointerOver||vt.onPointerEnter||vt.onPointerOut||vt.onPointerLeave){const At=makeId(Ut),Lt=dt.hovered.get(At);Lt?Lt.stopped&&Ut.stopPropagation():(dt.hovered.set(At,Ut),vt.onPointerOver==null||vt.onPointerOver(Ut),vt.onPointerEnter==null||vt.onPointerEnter(Ut))}vt.onPointerMove==null||vt.onPointerMove(Ut)}else{const At=vt[st];At?(!ct||dt.initialHits.includes(Ft))&&(it(lt,dt.interaction.filter(Lt=>!dt.initialHits.includes(Lt))),At(Ut)):ct&&dt.initialHits.includes(Ft)&&it(lt,dt.interaction.filter(Lt=>!dt.initialHits.includes(Lt)))}}nt(ft,lt,gt,yt)}}return{handlePointer:ot}}const privateKeys=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],isRenderer=s=>!!(s!=null&&s.render),context$3=reactExports.createContext(null),createStore=(s,o)=>{const et=create$1((ot,st)=>{const at=new Vector3,lt=new Vector3,ut=new Vector3;function dt(gt=st().camera,yt=lt,Ut=st().size){const{width:Ft,height:mt,top:vt,left:At}=Ut,Lt=Ft/mt;yt instanceof Vector3?ut.copy(yt):ut.set(...yt);const Rt=gt.getWorldPosition(at).distanceTo(ut);if(isOrthographicCamera$1(gt))return{width:Ft/gt.zoom,height:mt/gt.zoom,top:vt,left:At,factor:1,distance:Rt,aspect:Lt};{const St=gt.fov*Math.PI/180,Tt=2*Math.tan(St/2)*Rt,Bt=Tt*(Ft/mt);return{width:Bt,height:Tt,top:vt,left:At,factor:Ft/Bt,distance:Rt,aspect:Lt}}}let ht;const ct=gt=>ot(yt=>({performance:{...yt.performance,current:gt}})),pt=new Vector2;return{set:ot,get:st,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(gt=1)=>s(st(),gt),advance:(gt,yt)=>o(gt,yt,st()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new Clock,pointer:pt,mouse:pt,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const gt=st();ht&&clearTimeout(ht),gt.performance.current!==gt.performance.min&&ct(gt.performance.min),ht=setTimeout(()=>ct(st().performance.max),gt.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:dt},setEvents:gt=>ot(yt=>({...yt,events:{...yt.events,...gt}})),setSize:(gt,yt,Ut,Ft,mt)=>{const vt=st().camera,At={width:gt,height:yt,top:Ft||0,left:mt||0,updateStyle:Ut};ot(Lt=>({size:At,viewport:{...Lt.viewport,...dt(vt,lt,At)}}))},setDpr:gt=>ot(yt=>{const Ut=calculateDpr(gt);return{viewport:{...yt.viewport,dpr:Ut,initialDpr:yt.viewport.initialDpr||Ut}}}),setFrameloop:(gt="always")=>{const yt=st().clock;yt.stop(),yt.elapsedTime=0,gt!=="never"&&(yt.start(),yt.elapsedTime=0),ot(()=>({frameloop:gt}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:reactExports.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(gt,yt,Ut)=>{const Ft=st().internal;return Ft.priority=Ft.priority+(yt>0?1:0),Ft.subscribers.push({ref:gt,priority:yt,store:Ut}),Ft.subscribers=Ft.subscribers.sort((mt,vt)=>mt.priority-vt.priority),()=>{const mt=st().internal;mt!=null&&mt.subscribers&&(mt.priority=mt.priority-(yt>0?1:0),mt.subscribers=mt.subscribers.filter(vt=>vt.ref!==gt))}}}}}),tt=et.getState();let nt=tt.size,rt=tt.viewport.dpr,it=tt.camera;return et.subscribe(()=>{const{camera:ot,size:st,viewport:at,gl:lt,set:ut}=et.getState();if(st.width!==nt.width||st.height!==nt.height||at.dpr!==rt){var dt;nt=st,rt=at.dpr,updateCamera(ot,st),lt.setPixelRatio(at.dpr);const ht=(dt=st.updateStyle)!=null?dt:typeof HTMLCanvasElement<"u"&<.domElement instanceof HTMLCanvasElement;lt.setSize(st.width,st.height,ht)}ot!==it&&(it=ot,ut(ht=>({viewport:{...ht.viewport,...ht.viewport.getCurrentViewport(ot)}})))}),et.subscribe(ot=>s(ot)),et};function createSubs(s,o){const et={callback:s};return o.add(et),()=>void o.delete(et)}let i$2,globalEffects=new Set,globalAfterEffects=new Set,globalTailEffects=new Set;const addEffect=s=>createSubs(s,globalEffects),addAfterEffect=s=>createSubs(s,globalAfterEffects);function run(s,o){if(s.size)for(const{callback:et}of s.values())et(o)}function flushGlobalEffects(s,o){switch(s){case"before":return run(globalEffects,o);case"after":return run(globalAfterEffects,o);case"tail":return run(globalTailEffects,o)}}let subscribers,subscription;function render$1(s,o,et){let tt=o.clock.getDelta();for(o.frameloop==="never"&&typeof s=="number"&&(tt=s-o.clock.elapsedTime,o.clock.oldTime=o.clock.elapsedTime,o.clock.elapsedTime=s),subscribers=o.internal.subscribers,i$2=0;i$20)&&!((lt=rt.gl.xr)!=null&<.isPresenting)&&(tt+=render$1(at,rt))}if(et=!1,flushGlobalEffects("after",at),tt===0)return flushGlobalEffects("tail",at),o=!1,cancelAnimationFrame(nt)}function ot(at,lt=1){var ut;if(!at)return s.forEach(dt=>ot(dt.store.getState(),lt));(ut=at.gl.xr)!=null&&ut.isPresenting||!at.internal.active||at.frameloop==="never"||(lt>1?at.internal.frames=Math.min(60,at.internal.frames+lt):et?at.internal.frames=2:at.internal.frames=1,o||(o=!0,requestAnimationFrame(it)))}function st(at,lt=!0,ut,dt){if(lt&&flushGlobalEffects("before",at),ut)render$1(at,ut,dt);else for(const ht of s.values())render$1(at,ht.store.getState());lt&&flushGlobalEffects("after",at)}return{loop:it,invalidate:ot,advance:st}}function useInstanceHandle(s){const o=reactExports.useRef(null);return useIsomorphicLayoutEffect$1(()=>void(o.current=s.current.__r3f),[s]),o}function useStore(){const s=reactExports.useContext(context$3);if(!s)throw new Error("R3F: Hooks can only be used within the Canvas component!");return s}function useThree(s=et=>et,o){return useStore()(s,o)}function useFrame(s,o=0){const et=useStore(),tt=et.getState().internal.subscribe,nt=useMutableCallback(s);return useIsomorphicLayoutEffect$1(()=>tt(nt,o,et),[o,tt,et]),null}const memoizedLoaders=new WeakMap;function loadingFn(s,o){return function(et,...tt){let nt=memoizedLoaders.get(et);return nt||(nt=new et,memoizedLoaders.set(et,nt)),s&&s(nt),Promise.all(tt.map(rt=>new Promise((it,ot)=>nt.load(rt,st=>{st.scene&&Object.assign(st,buildGraph(st.scene)),it(st)},o,st=>ot(new Error(`Could not load ${rt}: ${st?.message}`))))))}}function useLoader(s,o,et,tt){const nt=Array.isArray(o)?o:[o],rt=suspend(loadingFn(et,tt),[s,...nt],{equal:is.equ});return Array.isArray(o)?rt:rt[0]}useLoader.preload=function(s,o,et){const tt=Array.isArray(o)?o:[o];return preload(loadingFn(et),[s,...tt])};useLoader.clear=function(s,o){const et=Array.isArray(o)?o:[o];return clear([s,...et])};const roots=new Map,{invalidate,advance}=createLoop(roots),{reconciler,applyProps}=createRenderer(roots,getEventPriority),shallowLoose={objects:"shallow",strict:!1},createRendererInstance=(s,o)=>{const et=typeof s=="function"?s(o):s;return isRenderer(et)?et:new WebGLRenderer({powerPreference:"high-performance",canvas:o,antialias:!0,alpha:!0,...s})};function computeInitialSize(s,o){const et=typeof HTMLCanvasElement<"u"&&s instanceof HTMLCanvasElement;if(o){const{width:tt,height:nt,top:rt,left:it,updateStyle:ot=et}=o;return{width:tt,height:nt,top:rt,left:it,updateStyle:ot}}else if(typeof HTMLCanvasElement<"u"&&s instanceof HTMLCanvasElement&&s.parentElement){const{width:tt,height:nt,top:rt,left:it}=s.parentElement.getBoundingClientRect();return{width:tt,height:nt,top:rt,left:it,updateStyle:et}}else if(typeof OffscreenCanvas<"u"&&s instanceof OffscreenCanvas)return{width:s.width,height:s.height,top:0,left:0,updateStyle:et};return{width:0,height:0,top:0,left:0}}function createRoot(s){const o=roots.get(s),et=o?.fiber,tt=o?.store;o&&console.warn("R3F.createRoot should only be called once!");const nt=typeof reportError=="function"?reportError:console.error,rt=tt||createStore(invalidate,advance),it=et||reconciler.createContainer(rt,constantsExports.ConcurrentRoot,null,!1,null,"",nt,null);o||roots.set(s,{fiber:it,store:rt});let ot,st=!1,at;return{configure(lt={}){let{gl:ut,size:dt,scene:ht,events:ct,onCreated:pt,shadows:ft=!1,linear:gt=!1,flat:yt=!1,legacy:Ut=!1,orthographic:Ft=!1,frameloop:mt="always",dpr:vt=[1,2],performance:At,raycaster:Lt,camera:Rt,onPointerMissed:St}=lt,Tt=rt.getState(),Bt=Tt.gl;Tt.gl||Tt.set({gl:Bt=createRendererInstance(ut,s)});let xt=Tt.raycaster;xt||Tt.set({raycaster:xt=new Raycaster});const{params:Ct,...kt}=Lt||{};if(is.equ(kt,xt,shallowLoose)||applyProps(xt,{...kt}),is.equ(Ct,xt.params,shallowLoose)||applyProps(xt,{params:{...xt.params,...Ct}}),!Tt.camera||Tt.camera===at&&!is.equ(at,Rt,shallowLoose)){at=Rt;const Et=Rt instanceof Camera,Pt=Et?Rt:Ft?new OrthographicCamera(0,0,0,0,.1,1e3):new PerspectiveCamera$1(75,0,.1,1e3);Et||(Pt.position.z=5,Rt&&(applyProps(Pt,Rt),("aspect"in Rt||"left"in Rt||"right"in Rt||"bottom"in Rt||"top"in Rt)&&(Pt.manual=!0,Pt.updateProjectionMatrix())),!Tt.camera&&!(Rt!=null&&Rt.rotation)&&Pt.lookAt(0,0,0)),Tt.set({camera:Pt}),xt.camera=Pt}if(!Tt.scene){let Et;ht instanceof Scene?Et=ht:(Et=new Scene,ht&&applyProps(Et,ht)),Tt.set({scene:prepare$1(Et)})}if(!Tt.xr){var Nt;const Et=(en,Kt)=>{const nn=rt.getState();nn.frameloop!=="never"&&advance(en,!0,nn,Kt)},Pt=()=>{const en=rt.getState();en.gl.xr.enabled=en.gl.xr.isPresenting,en.gl.xr.setAnimationLoop(en.gl.xr.isPresenting?Et:null),en.gl.xr.isPresenting||invalidate(en)},zt={connect(){const en=rt.getState().gl;en.xr.addEventListener("sessionstart",Pt),en.xr.addEventListener("sessionend",Pt)},disconnect(){const en=rt.getState().gl;en.xr.removeEventListener("sessionstart",Pt),en.xr.removeEventListener("sessionend",Pt)}};typeof((Nt=Bt.xr)==null?void 0:Nt.addEventListener)=="function"&&zt.connect(),Tt.set({xr:zt})}if(Bt.shadowMap){const Et=Bt.shadowMap.enabled,Pt=Bt.shadowMap.type;if(Bt.shadowMap.enabled=!!ft,is.boo(ft))Bt.shadowMap.type=PCFSoftShadowMap;else if(is.str(ft)){var Ot;const zt={basic:BasicShadowMap,percentage:PCFShadowMap,soft:PCFSoftShadowMap,variance:VSMShadowMap};Bt.shadowMap.type=(Ot=zt[ft])!=null?Ot:PCFSoftShadowMap}else is.obj(ft)&&Object.assign(Bt.shadowMap,ft);(Et!==Bt.shadowMap.enabled||Pt!==Bt.shadowMap.type)&&(Bt.shadowMap.needsUpdate=!0)}const Wt=getColorManagement();Wt&&("enabled"in Wt?Wt.enabled=!Ut:"legacyMode"in Wt&&(Wt.legacyMode=Ut)),st||applyProps(Bt,{outputEncoding:gt?3e3:3001,toneMapping:yt?NoToneMapping:ACESFilmicToneMapping}),Tt.legacy!==Ut&&Tt.set(()=>({legacy:Ut})),Tt.linear!==gt&&Tt.set(()=>({linear:gt})),Tt.flat!==yt&&Tt.set(()=>({flat:yt})),ut&&!is.fun(ut)&&!isRenderer(ut)&&!is.equ(ut,Bt,shallowLoose)&&applyProps(Bt,ut),ct&&!Tt.events.handlers&&Tt.set({events:ct(rt)});const Dt=computeInitialSize(s,dt);return is.equ(Dt,Tt.size,shallowLoose)||Tt.setSize(Dt.width,Dt.height,Dt.updateStyle,Dt.top,Dt.left),vt&&Tt.viewport.dpr!==calculateDpr(vt)&&Tt.setDpr(vt),Tt.frameloop!==mt&&Tt.setFrameloop(mt),Tt.onPointerMissed||Tt.set({onPointerMissed:St}),At&&!is.equ(At,Tt.performance,shallowLoose)&&Tt.set(Et=>({performance:{...Et.performance,...At}})),ot=pt,st=!0,this},render(lt){return st||this.configure(),reconciler.updateContainer(jsx$2(Provider,{store:rt,children:lt,onCreated:ot,rootElement:s}),it,null,()=>{}),rt},unmount(){unmountComponentAtNode(s)}}}function Provider({store:s,children:o,onCreated:et,rootElement:tt}){return useIsomorphicLayoutEffect$1(()=>{const nt=s.getState();nt.set(rt=>({internal:{...rt.internal,active:!0}})),et&&et(nt),s.getState().events.connected||nt.events.connect==null||nt.events.connect(tt)},[]),jsx$2(context$3.Provider,{value:s,children:o})}function unmountComponentAtNode(s,o){const et=roots.get(s),tt=et?.fiber;if(tt){const nt=et?.store.getState();nt&&(nt.internal.active=!1),reconciler.updateContainer(null,tt,null,()=>{nt&&setTimeout(()=>{try{var rt,it,ot,st;nt.events.disconnect==null||nt.events.disconnect(),(rt=nt.gl)==null||(it=rt.renderLists)==null||it.dispose==null||it.dispose(),(ot=nt.gl)==null||ot.forceContextLoss==null||ot.forceContextLoss(),(st=nt.gl)!=null&&st.xr&&nt.xr.disconnect(),dispose(nt),roots.delete(s),o&&o(s)}catch{}},500)})}}function createPortal(s,o,et){return jsx$2(Portal,{children:s,container:o,state:et},o.uuid)}function Portal({state:s={},children:o,container:et}){const{events:tt,size:nt,...rt}=s,it=useStore(),[ot]=reactExports.useState(()=>new Raycaster),[st]=reactExports.useState(()=>new Vector2),at=reactExports.useCallback((ut,dt)=>{const ht={...ut};Object.keys(ut).forEach(pt=>{(privateKeys.includes(pt)||ut[pt]!==dt[pt]&&dt[pt])&&delete ht[pt]});let ct;if(dt&&nt){const pt=dt.camera;ct=ut.viewport.getCurrentViewport(pt,new Vector3,nt),pt!==ut.camera&&updateCamera(pt,nt)}return{...ht,scene:et,raycaster:ot,pointer:st,mouse:st,previousRoot:it,events:{...ut.events,...dt?.events,...tt},size:{...ut.size,...nt},viewport:{...ut.viewport,...ct},...rt}},[s]),[lt]=reactExports.useState(()=>{const ut=it.getState();return create$1((ht,ct)=>({...ut,scene:et,raycaster:ot,pointer:st,mouse:st,previousRoot:it,events:{...ut.events,...tt},size:{...ut.size,...nt},...rt,set:ht,get:ct,setEvents:pt=>ht(ft=>({...ft,events:{...ft.events,...pt}}))}))});return reactExports.useEffect(()=>{const ut=it.subscribe(dt=>lt.setState(ht=>at(dt,ht)));return()=>{ut()}},[at]),reactExports.useEffect(()=>{lt.setState(ut=>at(it.getState(),ut))},[at]),reactExports.useEffect(()=>()=>{lt.destroy()},[]),jsx$2(Fragment$2,{children:reconciler.createPortal(jsx$2(context$3.Provider,{value:lt,children:o}),lt,null)})}reconciler.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:reactExports.version});function debounce(s,o,et){var tt,nt,rt,it,ot;o==null&&(o=100);function st(){var lt=Date.now()-it;lt=0?tt=setTimeout(st,o-lt):(tt=null,et||(ot=s.apply(rt,nt),rt=nt=null))}var at=function(){rt=this,nt=arguments,it=Date.now();var lt=et&&!tt;return tt||(tt=setTimeout(st,o)),lt&&(ot=s.apply(rt,nt),rt=nt=null),ot};return at.clear=function(){tt&&(clearTimeout(tt),tt=null)},at.flush=function(){tt&&(ot=s.apply(rt,nt),rt=nt=null,clearTimeout(tt),tt=null)},at}debounce.debounce=debounce;var debounce_1=debounce;const createDebounce=getDefaultExportFromCjs$1(debounce_1);function useMeasure(s){let{debounce:o,scroll:et,polyfill:tt,offsetSize:nt}=s===void 0?{debounce:0,scroll:!1,offsetSize:!1}:s;const rt=tt||(typeof window>"u"?class{}:window.ResizeObserver);if(!rt)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[it,ot]=reactExports.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),st=reactExports.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:it}),at=o?typeof o=="number"?o:o.scroll:null,lt=o?typeof o=="number"?o:o.resize:null,ut=reactExports.useRef(!1);reactExports.useEffect(()=>(ut.current=!0,()=>void(ut.current=!1)));const[dt,ht,ct]=reactExports.useMemo(()=>{const yt=()=>{if(!st.current.element)return;const{left:Ut,top:Ft,width:mt,height:vt,bottom:At,right:Lt,x:Rt,y:St}=st.current.element.getBoundingClientRect(),Tt={left:Ut,top:Ft,width:mt,height:vt,bottom:At,right:Lt,x:Rt,y:St};st.current.element instanceof HTMLElement&&nt&&(Tt.height=st.current.element.offsetHeight,Tt.width=st.current.element.offsetWidth),Object.freeze(Tt),ut.current&&!areBoundsEqual(st.current.lastBounds,Tt)&&ot(st.current.lastBounds=Tt)};return[yt,lt?createDebounce(yt,lt):yt,at?createDebounce(yt,at):yt]},[ot,nt,at,lt]);function pt(){st.current.scrollContainers&&(st.current.scrollContainers.forEach(yt=>yt.removeEventListener("scroll",ct,!0)),st.current.scrollContainers=null),st.current.resizeObserver&&(st.current.resizeObserver.disconnect(),st.current.resizeObserver=null)}function ft(){st.current.element&&(st.current.resizeObserver=new rt(ct),st.current.resizeObserver.observe(st.current.element),et&&st.current.scrollContainers&&st.current.scrollContainers.forEach(yt=>yt.addEventListener("scroll",ct,{capture:!0,passive:!0})))}const gt=yt=>{!yt||yt===st.current.element||(pt(),st.current.element=yt,st.current.scrollContainers=findScrollContainers(yt),ft())};return useOnWindowScroll(ct,!!et),useOnWindowResize(ht),reactExports.useEffect(()=>{pt(),ft()},[et,ct,ht]),reactExports.useEffect(()=>pt,[]),[gt,it,dt]}function useOnWindowResize(s){reactExports.useEffect(()=>{const o=s;return window.addEventListener("resize",o),()=>void window.removeEventListener("resize",o)},[s])}function useOnWindowScroll(s,o){reactExports.useEffect(()=>{if(o){const et=s;return window.addEventListener("scroll",et,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",et,!0)}},[s,o])}function findScrollContainers(s){const o=[];if(!s||s===document.body)return o;const{overflow:et,overflowX:tt,overflowY:nt}=window.getComputedStyle(s);return[et,tt,nt].some(rt=>rt==="auto"||rt==="scroll")&&o.push(s),[...o,...findScrollContainers(s.parentElement)]}const keys=["x","y","top","bottom","left","right","width","height"],areBoundsEqual=(s,o)=>keys.every(et=>s[et]===o[et]);var __defProp$4=Object.defineProperty,__defProps$2=Object.defineProperties,__getOwnPropDescs$2=Object.getOwnPropertyDescriptors,__getOwnPropSymbols$2=Object.getOwnPropertySymbols,__hasOwnProp$2=Object.prototype.hasOwnProperty,__propIsEnum$2=Object.prototype.propertyIsEnumerable,__defNormalProp$4=(s,o,et)=>o in s?__defProp$4(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,__spreadValues$2=(s,o)=>{for(var et in o||(o={}))__hasOwnProp$2.call(o,et)&&__defNormalProp$4(s,et,o[et]);if(__getOwnPropSymbols$2)for(var et of __getOwnPropSymbols$2(o))__propIsEnum$2.call(o,et)&&__defNormalProp$4(s,et,o[et]);return s},__spreadProps$2=(s,o)=>__defProps$2(s,__getOwnPropDescs$2(o));function traverseFiber(s,o,et){if(!s)return;if(et(s)===!0)return s;let tt=o?s.return:s.child;for(;tt;){const nt=traverseFiber(tt,o,et);if(nt)return nt;tt=o?null:tt.sibling}}function wrapContext(s){try{return Object.defineProperties(s,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return s}}const FiberContext=wrapContext(reactExports.createContext(null));class FiberProvider extends reactExports.Component{render(){return reactExports.createElement(FiberContext.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner,ReactCurrentDispatcher}=reactExports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function useFiber(){const s=reactExports.useContext(FiberContext);if(s===null)throw new Error("its-fine: useFiber must be called within a !");const o=reactExports.useId();return reactExports.useMemo(()=>{for(const tt of[ReactCurrentOwner?.current,s,s?.alternate]){if(!tt)continue;const nt=traverseFiber(tt,!1,rt=>{let it=rt.memoizedState;for(;it;){if(it.memoizedState===o)return!0;it=it.next}});if(nt)return nt}},[s,o])}function useContextMap(){var s,o;const et=useFiber(),[tt]=reactExports.useState(()=>new Map);tt.clear();let nt=et;for(;nt;){const rt=(s=nt.type)==null?void 0:s._context;rt&&rt!==FiberContext&&!tt.has(rt)&&tt.set(rt,(o=ReactCurrentDispatcher?.current)==null?void 0:o.readContext(wrapContext(rt))),nt=nt.return}return tt}function useContextBridge(){const s=useContextMap();return reactExports.useMemo(()=>Array.from(s.keys()).reduce((o,et)=>tt=>reactExports.createElement(o,null,reactExports.createElement(et.Provider,__spreadProps$2(__spreadValues$2({},tt),{value:s.get(et)}))),o=>reactExports.createElement(FiberProvider,__spreadValues$2({},o))),[s])}const DOM_EVENTS={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function createPointerEvents(s){const{handlePointer:o}=createEvents(s);return{priority:1,enabled:!0,compute(et,tt,nt){tt.pointer.set(et.offsetX/tt.size.width*2-1,-(et.offsetY/tt.size.height)*2+1),tt.raycaster.setFromCamera(tt.pointer,tt.camera)},connected:void 0,handlers:Object.keys(DOM_EVENTS).reduce((et,tt)=>({...et,[tt]:o(tt)}),{}),update:()=>{var et;const{events:tt,internal:nt}=s.getState();(et=nt.lastEvent)!=null&&et.current&&tt.handlers&&tt.handlers.onPointerMove(nt.lastEvent.current)},connect:et=>{var tt;const{set:nt,events:rt}=s.getState();rt.disconnect==null||rt.disconnect(),nt(it=>({events:{...it.events,connected:et}})),Object.entries((tt=rt.handlers)!=null?tt:[]).forEach(([it,ot])=>{const[st,at]=DOM_EVENTS[it];et.addEventListener(st,ot,{passive:at})})},disconnect:()=>{const{set:et,events:tt}=s.getState();if(tt.connected){var nt;Object.entries((nt=tt.handlers)!=null?nt:[]).forEach(([rt,it])=>{if(tt&&tt.connected instanceof HTMLElement){const[ot]=DOM_EVENTS[rt];tt.connected.removeEventListener(ot,it)}}),et(rt=>({events:{...rt.events,connected:void 0}}))}}}}const CanvasImpl=reactExports.forwardRef(function({children:o,fallback:et,resize:tt,style:nt,gl:rt,events:it=createPointerEvents,eventSource:ot,eventPrefix:st,shadows:at,linear:lt,flat:ut,legacy:dt,orthographic:ht,frameloop:ct,dpr:pt,performance:ft,raycaster:gt,camera:yt,scene:Ut,onPointerMissed:Ft,onCreated:mt,...vt},At){reactExports.useMemo(()=>extend(THREE$1),[]);const Lt=useContextBridge(),[Rt,St]=useMeasure({scroll:!0,debounce:{scroll:50,resize:0},...tt}),Tt=reactExports.useRef(null),Bt=reactExports.useRef(null);reactExports.useImperativeHandle(At,()=>Tt.current);const xt=useMutableCallback(Ft),[Ct,kt]=reactExports.useState(!1),[Nt,Ot]=reactExports.useState(!1);if(Ct)throw Ct;if(Nt)throw Nt;const Wt=reactExports.useRef(null);return useIsomorphicLayoutEffect$1(()=>{const Et=Tt.current;St.width>0&&St.height>0&&Et&&(Wt.current||(Wt.current=createRoot(Et)),Wt.current.configure({gl:rt,events:it,shadows:at,linear:lt,flat:ut,legacy:dt,orthographic:ht,frameloop:ct,dpr:pt,performance:ft,raycaster:gt,camera:yt,scene:Ut,size:St,onPointerMissed:(...Pt)=>xt.current==null?void 0:xt.current(...Pt),onCreated:Pt=>{Pt.events.connect==null||Pt.events.connect(ot?isRef(ot)?ot.current:ot:Bt.current),st&&Pt.setEvents({compute:(zt,en)=>{const Kt=zt[st+"X"],nn=zt[st+"Y"];en.pointer.set(Kt/en.size.width*2-1,-(nn/en.size.height)*2+1),en.raycaster.setFromCamera(en.pointer,en.camera)}}),mt?.(Pt)}}),Wt.current.render(jsx$2(Lt,{children:jsx$2(ErrorBoundary,{set:Ot,children:jsx$2(reactExports.Suspense,{fallback:jsx$2(Block,{set:kt}),children:o})})})))}),reactExports.useEffect(()=>{const Et=Tt.current;if(Et)return()=>unmountComponentAtNode(Et)},[]),jsx$2("div",{ref:Bt,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:ot?"none":"auto",...nt},...vt,children:jsx$2("div",{ref:Rt,style:{width:"100%",height:"100%"},children:jsx$2("canvas",{ref:Tt,style:{display:"block"},children:et})})})}),Canvas=reactExports.forwardRef(function(o,et){return jsx$2(FiberProvider,{children:jsx$2(CanvasImpl,{...o,ref:et})})});function _extends$2(){return _extends$2=Object.assign?Object.assign.bind():function(s){for(var o=1;oMath.PI/2}function isObjectVisible(s,o,et,tt){const nt=v1$1.setFromMatrixPosition(s.matrixWorld),rt=nt.clone();rt.project(o),v4$1.set(rt.x,rt.y),et.setFromCamera(v4$1,o);const it=et.intersectObjects(tt,!0);if(it.length){const ot=it[0].distance;return nt.distanceTo(et.ray.origin)Math.abs(s)<1e-10?0:s;function getCSSMatrix(s,o,et=""){let tt="matrix3d(";for(let nt=0;nt!==16;nt++)tt+=epsilon(o[nt]*s.elements[nt])+(nt!==15?",":")");return et+tt}const getCameraCSSMatrix=(s=>o=>getCSSMatrix(o,s))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),getObjectCSSMatrix=(s=>(o,et)=>getCSSMatrix(o,s(et),"translate(-50%,-50%)"))(s=>[1/s,1/s,1/s,1,-1/s,-1/s,-1/s,-1,1/s,1/s,1/s,1,1,1,1,1]);function isRefObject(s){return s&&typeof s=="object"&&"current"in s}const Html=reactExports.forwardRef(({children:s,eps:o=.001,style:et,className:tt,prepend:nt,center:rt,fullscreen:it,portal:ot,distanceFactor:st,sprite:at=!1,transform:lt=!1,occlude:ut,onOcclude:dt,castShadow:ht,receiveShadow:ct,material:pt,geometry:ft,zIndexRange:gt=[16777271,0],calculatePosition:yt=defaultCalculatePosition,as:Ut="div",wrapperClass:Ft,pointerEvents:mt="auto",...vt},At)=>{const{gl:Lt,camera:Rt,scene:St,size:Tt,raycaster:Bt,events:xt,viewport:Ct}=useThree(),[kt]=reactExports.useState(()=>document.createElement(Ut)),Nt=reactExports.useRef(),Ot=reactExports.useRef(null),Wt=reactExports.useRef(0),Dt=reactExports.useRef([0,0]),Et=reactExports.useRef(null),Pt=reactExports.useRef(null),zt=ot?.current||xt.connected||Lt.domElement.parentNode,en=reactExports.useRef(null),Kt=reactExports.useRef(!1),nn=reactExports.useMemo(()=>ut&&ut!=="blending"||Array.isArray(ut)&&ut.length&&isRefObject(ut[0]),[ut]);reactExports.useLayoutEffect(()=>{const $t=Lt.domElement;ut&&ut==="blending"?($t.style.zIndex=`${Math.floor(gt[0]/2)}`,$t.style.position="absolute",$t.style.pointerEvents="none"):($t.style.zIndex=null,$t.style.position=null,$t.style.pointerEvents=null)},[ut]),reactExports.useLayoutEffect(()=>{if(Ot.current){const $t=Nt.current=createRoot$1(kt);if(St.updateMatrixWorld(),lt)kt.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const Ht=yt(Ot.current,Rt,Tt);kt.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${Ht[0]}px,${Ht[1]}px,0);transform-origin:0 0;`}return zt&&(nt?zt.prepend(kt):zt.appendChild(kt)),()=>{zt&&zt.removeChild(kt),$t.unmount()}}},[zt,lt]),reactExports.useLayoutEffect(()=>{Ft&&(kt.className=Ft)},[Ft]);const Zt=reactExports.useMemo(()=>lt?{position:"absolute",top:0,left:0,width:Tt.width,height:Tt.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:rt?"translate3d(-50%,-50%,0)":"none",...it&&{top:-Tt.height/2,left:-Tt.width/2,width:Tt.width,height:Tt.height},...et},[et,rt,it,Tt,lt]),jt=reactExports.useMemo(()=>({position:"absolute",pointerEvents:mt}),[mt]);reactExports.useLayoutEffect(()=>{if(Kt.current=!1,lt){var $t;($t=Nt.current)==null||$t.render(reactExports.createElement("div",{ref:Et,style:Zt},reactExports.createElement("div",{ref:Pt,style:jt},reactExports.createElement("div",{ref:At,className:tt,style:et,children:s}))))}else{var Ht;(Ht=Nt.current)==null||Ht.render(reactExports.createElement("div",{ref:At,style:Zt,className:tt,children:s}))}});const Vt=reactExports.useRef(!0);useFrame($t=>{if(Ot.current){Rt.updateMatrixWorld(),Ot.current.updateWorldMatrix(!0,!1);const Ht=lt?Dt.current:yt(Ot.current,Rt,Tt);if(lt||Math.abs(Wt.current-Rt.zoom)>o||Math.abs(Dt.current[0]-Ht[0])>o||Math.abs(Dt.current[1]-Ht[1])>o){const qt=isObjectBehindCamera(Ot.current,Rt);let on=!1;nn&&(Array.isArray(ut)?on=ut.map(Fn=>Fn.current):ut!=="blending"&&(on=[St]));const Xt=Vt.current;if(on){const Fn=isObjectVisible(Ot.current,Rt,Bt,on);Vt.current=Fn&&!qt}else Vt.current=!qt;Xt!==Vt.current&&(dt?dt(!Vt.current):kt.style.display=Vt.current?"block":"none");const dn=Math.floor(gt[0]/2),_n=ut?nn?[gt[0],dn]:[dn-1,0]:gt;if(kt.style.zIndex=`${objectZIndex(Ot.current,Rt,_n)}`,lt){const[Fn,Un]=[Tt.width/2,Tt.height/2],On=Rt.projectionMatrix.elements[5]*Un,{isOrthographicCamera:gn,top:hn,left:wn,bottom:Zn,right:Pn}=Rt,$n=getCameraCSSMatrix(Rt.matrixWorldInverse),Tr=gn?`scale(${On})translate(${epsilon(-(Pn+wn)/2)}px,${epsilon((hn+Zn)/2)}px)`:`translateZ(${On}px)`;let Qr=Ot.current.matrixWorld;at&&(Qr=Rt.matrixWorldInverse.clone().transpose().copyPosition(Qr).scale(Ot.current.scale),Qr.elements[3]=Qr.elements[7]=Qr.elements[11]=0,Qr.elements[15]=1),kt.style.width=Tt.width+"px",kt.style.height=Tt.height+"px",kt.style.perspective=gn?"":`${On}px`,Et.current&&Pt.current&&(Et.current.style.transform=`${Tr}${$n}translate(${Fn}px,${Un}px)`,Pt.current.style.transform=getObjectCSSMatrix(Qr,1/((st||10)/400)))}else{const Fn=st===void 0?1:objectScale(Ot.current,Rt)*st;kt.style.transform=`translate3d(${Ht[0]}px,${Ht[1]}px,0) scale(${Fn})`}Dt.current=Ht,Wt.current=Rt.zoom}}if(!nn&&en.current&&!Kt.current)if(lt){if(Et.current){const Ht=Et.current.children[0];if(Ht!=null&&Ht.clientWidth&&Ht!=null&&Ht.clientHeight){const{isOrthographicCamera:qt}=Rt;if(qt||ft)vt.scale&&(Array.isArray(vt.scale)?vt.scale instanceof Vector3?en.current.scale.copy(vt.scale.clone().divideScalar(1)):en.current.scale.set(1/vt.scale[0],1/vt.scale[1],1/vt.scale[2]):en.current.scale.setScalar(1/vt.scale));else{const on=(st||10)/400,Xt=Ht.clientWidth*on,dn=Ht.clientHeight*on;en.current.scale.set(Xt,dn,1)}Kt.current=!0}}}else{const Ht=kt.children[0];if(Ht!=null&&Ht.clientWidth&&Ht!=null&&Ht.clientHeight){const qt=1/Ct.factor,on=Ht.clientWidth*qt,Xt=Ht.clientHeight*qt;en.current.scale.set(on,Xt,1),Kt.current=!0}en.current.lookAt($t.camera.position)}});const It=reactExports.useMemo(()=>({vertexShader:lt?void 0:` + `)+wt.join(" > ")}return null},et.getPublicRootInstance=function(wt){if(wt=wt.current,!wt.child)return null;switch(wt.child.tag){case 5:return Nt(wt.child.stateNode);default:return wt.child.stateNode}},et.injectIntoDevTools=function(wt){if(wt={bundleType:wt.bundleType,version:wt.version,rendererPackageName:wt.rendererPackageName,rendererConfig:wt.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ot.ReactCurrentDispatcher,findHostInstanceByFiber:O2,findFiberByHostInstance:wt.findFiberByHostInstance||m2,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")wt=!1;else{var Mt=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(Mt.isDisabled||!Mt.supportsFiber)wt=!0;else{try{Hr=Mt.inject(wt),co=Mt}catch{}wt=!!Mt.checkDCE}}return wt},et.isAlreadyRendering=function(){return!1},et.observeVisibleRects=function(wt,Mt,Gt,rn){if(!gn)throw Error(it(363));wt=l1(wt,Mt);var ln=Qr(wt,Gt,rn).disconnect;return{disconnect:function(){ln()}}},et.registerMutableSourceForHydration=function(wt,Mt){var Gt=Mt._getVersion;Gt=Gt(Mt._source),wt.mutableSourceEagerHydrationData==null?wt.mutableSourceEagerHydrationData=[Mt,Gt]:wt.mutableSourceEagerHydrationData.push(Mt,Gt)},et.runWithPriority=function(wt,Mt){var Gt=Cr;try{return Cr=wt,Mt()}finally{Cr=Gt}},et.shouldError=function(){return null},et.shouldSuspend=function(){return!1},et.updateContainer=function(wt,Mt,Gt,rn){var ln=Mt.current,yn=xa(),Xn=Uu(ln);return Gt=o0(Gt),Mt.context===null?Mt.context=Gt:Mt.pendingContext=Gt,Mt=qs(yn,Xn),Mt.payload={element:wt},rn=rn===void 0?null:rn,rn!==null&&(Mt.callback=rn),Yl(ln,Mt),wt=Ll(ln,Xn,yn),wt!==null&&ap(wt,ln,Xn),Xn},et};reactReconciler.exports=reactReconciler_production_min;var reactReconcilerExports=reactReconciler.exports;const Reconciler=getDefaultExportFromCjs$1(reactReconcilerExports),isPromise=s=>typeof s=="object"&&typeof s.then=="function",globalCache=[];function shallowEqualArrays(s,o,et=(tt,nt)=>tt===nt){if(s===o)return!0;if(!s||!o)return!1;const tt=s.length;if(o.length!==tt)return!1;for(let nt=0;nt0&&(rt.timeout&&clearTimeout(rt.timeout),rt.timeout=setTimeout(rt.remove,tt.lifespan)),rt.response;if(!et)throw rt.promise}const nt={keys:o,equal:tt.equal,remove:()=>{const rt=globalCache.indexOf(nt);rt!==-1&&globalCache.splice(rt,1)},promise:(isPromise(s)?s:s(...o)).then(rt=>{nt.response=rt,tt.lifespan&&tt.lifespan>0&&(nt.timeout=setTimeout(nt.remove,tt.lifespan))}).catch(rt=>nt.error=rt)};if(globalCache.push(nt),!et)throw nt.promise}const suspend=(s,o,et)=>query$4(s,o,!1,et),preload=(s,o,et)=>void query$4(s,o,!0,et),clear=s=>{if(s===void 0||s.length===0)globalCache.splice(0,globalCache.length);else{const o=globalCache.find(et=>shallowEqualArrays(s,et.keys,et.equal));o&&o.remove()}},catalogue={},extend=s=>void Object.assign(catalogue,s);function createRenderer(s,o){function et(lt,{args:ut=[],attach:dt,...ht},ct){let pt=`${lt[0].toUpperCase()}${lt.slice(1)}`,ft;if(lt==="primitive"){if(ht.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const gt=ht.object;ft=prepare$1(gt,{type:lt,root:ct,attach:dt,primitive:!0})}else{const gt=catalogue[pt];if(!gt)throw new Error(`R3F: ${pt} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(ut))throw new Error("R3F: The args prop must be an array!");ft=prepare$1(new gt(...ut),{type:lt,root:ct,attach:dt,memoizedProps:{args:ut}})}return ft.__r3f.attach===void 0&&(ft instanceof BufferGeometry?ft.__r3f.attach="geometry":ft instanceof Material&&(ft.__r3f.attach="material")),pt!=="inject"&&applyProps$1(ft,ht),ft}function tt(lt,ut){let dt=!1;if(ut){var ht,ct;(ht=ut.__r3f)!=null&&ht.attach?attach(lt,ut,ut.__r3f.attach):ut.isObject3D&<.isObject3D&&(lt.add(ut),dt=!0),dt||(ct=lt.__r3f)==null||ct.objects.push(ut),ut.__r3f||prepare$1(ut,{}),ut.__r3f.parent=lt,updateInstance(ut),invalidateInstance(ut)}}function nt(lt,ut,dt){let ht=!1;if(ut){var ct,pt;if((ct=ut.__r3f)!=null&&ct.attach)attach(lt,ut,ut.__r3f.attach);else if(ut.isObject3D&<.isObject3D){ut.parent=lt,ut.dispatchEvent({type:"added"}),lt.dispatchEvent({type:"childadded",child:ut});const ft=lt.children.filter(yt=>yt!==ut),gt=ft.indexOf(dt);lt.children=[...ft.slice(0,gt),ut,...ft.slice(gt)],ht=!0}ht||(pt=lt.__r3f)==null||pt.objects.push(ut),ut.__r3f||prepare$1(ut,{}),ut.__r3f.parent=lt,updateInstance(ut),invalidateInstance(ut)}}function rt(lt,ut,dt=!1){lt&&[...lt].forEach(ht=>it(ut,ht,dt))}function it(lt,ut,dt){if(ut){var ht,ct,pt;if(ut.__r3f&&(ut.__r3f.parent=null),(ht=lt.__r3f)!=null&&ht.objects&&(lt.__r3f.objects=lt.__r3f.objects.filter(Ft=>Ft!==ut)),(ct=ut.__r3f)!=null&&ct.attach)detach(lt,ut,ut.__r3f.attach);else if(ut.isObject3D&<.isObject3D){var ft;lt.remove(ut),(ft=ut.__r3f)!=null&&ft.root&&removeInteractivity(findInitialRoot(ut),ut)}const yt=(pt=ut.__r3f)==null?void 0:pt.primitive,Ut=!yt&&(dt===void 0?ut.dispose!==null:dt);if(!yt){var gt;rt((gt=ut.__r3f)==null?void 0:gt.objects,ut,Ut),rt(ut.children,ut,Ut)}if(delete ut.__r3f,Ut&&ut.dispose&&ut.type!=="Scene"){const Ft=()=>{try{ut.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?schedulerExports.unstable_scheduleCallback(schedulerExports.unstable_IdlePriority,Ft):Ft()}invalidateInstance(lt)}}function ot(lt,ut,dt,ht){var ct;const pt=(ct=lt.__r3f)==null?void 0:ct.parent;if(!pt)return;const ft=et(ut,dt,lt.__r3f.root);if(lt.children){for(const gt of lt.children)gt.__r3f&&tt(ft,gt);lt.children=lt.children.filter(gt=>!gt.__r3f)}lt.__r3f.objects.forEach(gt=>tt(ft,gt)),lt.__r3f.objects=[],lt.__r3f.autoRemovedBeforeAppend||it(pt,lt),ft.parent&&(ft.__r3f.autoRemovedBeforeAppend=!0),tt(pt,ft),ft.raycast&&ft.__r3f.eventCount&&findInitialRoot(ft).getState().internal.interaction.push(ft),[ht,ht.alternate].forEach(gt=>{gt!==null&&(gt.stateNode=ft,gt.ref&&(typeof gt.ref=="function"?gt.ref(ft):gt.ref.current=ft))})}const st=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:Reconciler({createInstance:et,removeChild:it,appendChild:tt,appendInitialChild:tt,insertBefore:nt,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(lt,ut)=>{if(!ut)return;const dt=lt.getState().scene;dt.__r3f&&(dt.__r3f.root=lt,tt(dt,ut))},removeChildFromContainer:(lt,ut)=>{ut&&it(lt.getState().scene,ut)},insertInContainerBefore:(lt,ut,dt)=>{if(!ut||!dt)return;const ht=lt.getState().scene;ht.__r3f&&nt(ht,ut,dt)},getRootHostContext:()=>null,getChildHostContext:lt=>lt,finalizeInitialChildren(lt){var ut;return!!((ut=lt?.__r3f)!=null?ut:{}).handlers},prepareUpdate(lt,ut,dt,ht){var ct;if(((ct=lt?.__r3f)!=null?ct:{}).primitive&&ht.object&&ht.object!==lt)return[!0];{const{args:ft=[],children:gt,...yt}=ht,{args:Ut=[],children:Ft,...mt}=dt;if(!Array.isArray(ft))throw new Error("R3F: the args prop must be an array!");if(ft.some((At,Lt)=>At!==Ut[Lt]))return[!0];const vt=diffProps(lt,yt,mt,!0);return vt.changes.length?[!1,vt]:null}},commitUpdate(lt,[ut,dt],ht,ct,pt,ft){ut?ot(lt,ht,pt,ft):applyProps$1(lt,dt)},commitMount(lt,ut,dt,ht){var ct;const pt=(ct=lt.__r3f)!=null?ct:{};lt.raycast&&pt.handlers&&pt.eventCount&&findInitialRoot(lt).getState().internal.interaction.push(lt)},getPublicInstance:lt=>lt,prepareForCommit:()=>null,preparePortalMount:lt=>prepare$1(lt.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(lt){var ut;const{attach:dt,parent:ht}=(ut=lt.__r3f)!=null?ut:{};dt&&ht&&detach(ht,lt,dt),lt.isObject3D&&(lt.visible=!1),invalidateInstance(lt)},unhideInstance(lt,ut){var dt;const{attach:ht,parent:ct}=(dt=lt.__r3f)!=null?dt:{};ht&&ct&&attach(ct,lt,ht),(lt.isObject3D&&ut.visible==null||ut.visible)&&(lt.visible=!0),invalidateInstance(lt)},createTextInstance:st,hideTextInstance:st,unhideTextInstance:st,getCurrentEventPriority:()=>o?o():constantsExports.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&is.fun(performance.now)?performance.now:is.fun(Date.now)?Date.now:()=>0,scheduleTimeout:is.fun(setTimeout)?setTimeout:void 0,cancelTimeout:is.fun(clearTimeout)?clearTimeout:void 0}),applyProps:applyProps$1}}var _window$document,_window$navigator;const hasColorSpace=s=>"colorSpace"in s||"outputColorSpace"in s,getColorManagement=()=>{var s;return(s=catalogue.ColorManagement)!=null?s:null},isOrthographicCamera$1=s=>s&&s.isOrthographicCamera,isRef=s=>s&&s.hasOwnProperty("current"),useIsomorphicLayoutEffect$1=typeof window<"u"&&((_window$document=window.document)!=null&&_window$document.createElement||((_window$navigator=window.navigator)==null?void 0:_window$navigator.product)==="ReactNative")?reactExports.useLayoutEffect:reactExports.useEffect;function useMutableCallback(s){const o=reactExports.useRef(s);return useIsomorphicLayoutEffect$1(()=>void(o.current=s),[s]),o}function Block({set:s}){return useIsomorphicLayoutEffect$1(()=>(s(new Promise(()=>null)),()=>s(!1)),[s]),null}class ErrorBoundary extends reactExports.Component{constructor(...o){super(...o),this.state={error:!1}}componentDidCatch(o){this.props.set(o)}render(){return this.state.error?null:this.props.children}}ErrorBoundary.getDerivedStateFromError=()=>({error:!0});const DEFAULT="__default",DEFAULTS=new Map,isDiffSet=s=>s&&!!s.memoized&&!!s.changes;function calculateDpr(s){var o;const et=typeof window<"u"?(o=window.devicePixelRatio)!=null?o:2:1;return Array.isArray(s)?Math.min(Math.max(s[0],et),s[1]):s}const getRootState=s=>{var o;return(o=s.__r3f)==null?void 0:o.root.getState()};function findInitialRoot(s){let o=s.__r3f.root;for(;o.getState().previousRoot;)o=o.getState().previousRoot;return o}const is={obj:s=>s===Object(s)&&!is.arr(s)&&typeof s!="function",fun:s=>typeof s=="function",str:s=>typeof s=="string",num:s=>typeof s=="number",boo:s=>typeof s=="boolean",und:s=>s===void 0,arr:s=>Array.isArray(s),equ(s,o,{arrays:et="shallow",objects:tt="reference",strict:nt=!0}={}){if(typeof s!=typeof o||!!s!=!!o)return!1;if(is.str(s)||is.num(s)||is.boo(s))return s===o;const rt=is.obj(s);if(rt&&tt==="reference")return s===o;const it=is.arr(s);if(it&&et==="reference")return s===o;if((it||rt)&&s===o)return!0;let ot;for(ot in s)if(!(ot in o))return!1;if(rt&&et==="shallow"&&tt==="shallow"){for(ot in nt?o:s)if(!is.equ(s[ot],o[ot],{strict:nt,objects:"reference"}))return!1}else for(ot in nt?o:s)if(s[ot]!==o[ot])return!1;if(is.und(ot)){if(it&&s.length===0&&o.length===0||rt&&Object.keys(s).length===0&&Object.keys(o).length===0)return!0;if(s!==o)return!1}return!0}};function buildGraph(s){const o={nodes:{},materials:{}};return s&&s.traverse(et=>{et.name&&(o.nodes[et.name]=et),et.material&&!o.materials[et.material.name]&&(o.materials[et.material.name]=et.material)}),o}function dispose(s){s.dispose&&s.type!=="Scene"&&s.dispose();for(const o in s)o.dispose==null||o.dispose(),delete s[o]}function prepare$1(s,o){const et=s;return et.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...o},s}function resolve$1(s,o){let et=s;if(o.includes("-")){const tt=o.split("-"),nt=tt.pop();return et=tt.reduce((rt,it)=>rt[it],s),{target:et,key:nt}}else return{target:et,key:o}}const INDEX_REGEX=/-\d+$/;function attach(s,o,et){if(is.str(et)){if(INDEX_REGEX.test(et)){const rt=et.replace(INDEX_REGEX,""),{target:it,key:ot}=resolve$1(s,rt);Array.isArray(it[ot])||(it[ot]=[])}const{target:tt,key:nt}=resolve$1(s,et);o.__r3f.previousAttach=tt[nt],tt[nt]=o}else o.__r3f.previousAttach=et(s,o)}function detach(s,o,et){var tt,nt;if(is.str(et)){const{target:rt,key:it}=resolve$1(s,et),ot=o.__r3f.previousAttach;ot===void 0?delete rt[it]:rt[it]=ot}else(tt=o.__r3f)==null||tt.previousAttach==null||tt.previousAttach(s,o);(nt=o.__r3f)==null||delete nt.previousAttach}function diffProps(s,{children:o,key:et,ref:tt,...nt},{children:rt,key:it,ref:ot,...st}={},at=!1){const lt=s.__r3f,ut=Object.entries(nt),dt=[];if(at){const ct=Object.keys(st);for(let pt=0;pt{var ft;if((ft=s.__r3f)!=null&&ft.primitive&&ct==="object"||is.equ(pt,st[ct]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(ct))return dt.push([ct,pt,!0,[]]);let gt=[];ct.includes("-")&&(gt=ct.split("-")),dt.push([ct,pt,!1,gt]);for(const yt in nt){const Ut=nt[yt];yt.startsWith(`${ct}-`)&&dt.push([yt,Ut,!1,yt.split("-")])}});const ht={...nt};return lt!=null&<.memoizedProps&<!=null&<.memoizedProps.args&&(ht.args=lt.memoizedProps.args),lt!=null&<.memoizedProps&<!=null&<.memoizedProps.attach&&(ht.attach=lt.memoizedProps.attach),{memoized:ht,changes:dt}}const __DEV__=typeof process<"u"&&!1;function applyProps$1(s,o){var et;const tt=s.__r3f,nt=tt?.root,rt=nt==null||nt.getState==null?void 0:nt.getState(),{memoized:it,changes:ot}=isDiffSet(o)?o:diffProps(s,o),st=tt?.eventCount;s.__r3f&&(s.__r3f.memoizedProps=it);for(let lt=0;ltgt[yt],s),!(ft&&ft.set))){const[gt,...yt]=ct.reverse();pt=yt.reverse().reduce((Ut,Ft)=>Ut[Ft],s),ut=gt}if(dt===DEFAULT+"remove")if(pt.constructor){let gt=DEFAULTS.get(pt.constructor);gt||(gt=new pt.constructor,DEFAULTS.set(pt.constructor,gt)),dt=gt[ut]}else dt=0;if(ht&&tt)dt?tt.handlers[ut]=dt:delete tt.handlers[ut],tt.eventCount=Object.keys(tt.handlers).length;else if(ft&&ft.set&&(ft.copy||ft instanceof Layers)){if(Array.isArray(dt))ft.fromArray?ft.fromArray(dt):ft.set(...dt);else if(ft.copy&&dt&&dt.constructor&&(__DEV__?ft.constructor.name===dt.constructor.name:ft.constructor===dt.constructor))ft.copy(dt);else if(dt!==void 0){const gt=ft instanceof Color$2;!gt&&ft.setScalar?ft.setScalar(dt):ft instanceof Layers&&dt instanceof Layers?ft.mask=dt.mask:ft.set(dt),!getColorManagement()&&rt&&!rt.linear&>&&ft.convertSRGBToLinear()}}else if(pt[ut]=dt,pt[ut]instanceof Texture&&pt[ut].format===RGBAFormat&&pt[ut].type===UnsignedByteType&&rt){const gt=pt[ut];hasColorSpace(gt)&&hasColorSpace(rt.gl)?gt.colorSpace=rt.gl.outputColorSpace:gt.encoding=rt.gl.outputEncoding}invalidateInstance(s)}if(tt&&tt.parent&&s.raycast&&st!==tt.eventCount){const lt=findInitialRoot(s).getState().internal,ut=lt.interaction.indexOf(s);ut>-1&<.interaction.splice(ut,1),tt.eventCount&<.interaction.push(s)}return!(ot.length===1&&ot[0][0]==="onUpdate")&&ot.length&&(et=s.__r3f)!=null&&et.parent&&updateInstance(s),s}function invalidateInstance(s){var o,et;const tt=(o=s.__r3f)==null||(et=o.root)==null||et.getState==null?void 0:et.getState();tt&&tt.internal.frames===0&&tt.invalidate()}function updateInstance(s){s.onUpdate==null||s.onUpdate(s)}function updateCamera(s,o){s.manual||(isOrthographicCamera$1(s)?(s.left=o.width/-2,s.right=o.width/2,s.top=o.height/2,s.bottom=o.height/-2):s.aspect=o.width/o.height,s.updateProjectionMatrix(),s.updateMatrixWorld())}function makeId(s){return(s.eventObject||s.object).uuid+"/"+s.index+s.instanceId}function getEventPriority(){var s;const o=typeof self<"u"&&self||typeof window<"u"&&window;if(!o)return constantsExports.DefaultEventPriority;switch((s=o.event)==null?void 0:s.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return constantsExports.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return constantsExports.ContinuousEventPriority;default:return constantsExports.DefaultEventPriority}}function releaseInternalPointerCapture(s,o,et,tt){const nt=et.get(o);nt&&(et.delete(o),et.size===0&&(s.delete(tt),nt.target.releasePointerCapture(tt)))}function removeInteractivity(s,o){const{internal:et}=s.getState();et.interaction=et.interaction.filter(tt=>tt!==o),et.initialHits=et.initialHits.filter(tt=>tt!==o),et.hovered.forEach((tt,nt)=>{(tt.eventObject===o||tt.object===o)&&et.hovered.delete(nt)}),et.capturedMap.forEach((tt,nt)=>{releaseInternalPointerCapture(et.capturedMap,o,tt,nt)})}function createEvents(s){function o(st){const{internal:at}=s.getState(),lt=st.offsetX-at.initialClick[0],ut=st.offsetY-at.initialClick[1];return Math.round(Math.sqrt(lt*lt+ut*ut))}function et(st){return st.filter(at=>["Move","Over","Enter","Out","Leave"].some(lt=>{var ut;return(ut=at.__r3f)==null?void 0:ut.handlers["onPointer"+lt]}))}function tt(st,at){const lt=s.getState(),ut=new Set,dt=[],ht=at?at(lt.internal.interaction):lt.internal.interaction;for(let gt=0;gt{const Ut=getRootState(gt.object),Ft=getRootState(yt.object);return!Ut||!Ft?gt.distance-yt.distance:Ft.events.priority-Ut.events.priority||gt.distance-yt.distance}).filter(gt=>{const yt=makeId(gt);return ut.has(yt)?!1:(ut.add(yt),!0)});lt.events.filter&&(pt=lt.events.filter(pt,lt));for(const gt of pt){let yt=gt.object;for(;yt;){var ft;(ft=yt.__r3f)!=null&&ft.eventCount&&dt.push({...gt,eventObject:yt}),yt=yt.parent}}if("pointerId"in st&<.internal.capturedMap.has(st.pointerId))for(let gt of lt.internal.capturedMap.get(st.pointerId).values())ut.has(makeId(gt.intersection))||dt.push(gt.intersection);return dt}function nt(st,at,lt,ut){const dt=s.getState();if(st.length){const ht={stopped:!1};for(const ct of st){const pt=getRootState(ct.object)||dt,{raycaster:ft,pointer:gt,camera:yt,internal:Ut}=pt,Ft=new Vector3(gt.x,gt.y,0).unproject(yt),mt=St=>{var Tt,Bt;return(Tt=(Bt=Ut.capturedMap.get(St))==null?void 0:Bt.has(ct.eventObject))!=null?Tt:!1},vt=St=>{const Tt={intersection:ct,target:at.target};Ut.capturedMap.has(St)?Ut.capturedMap.get(St).set(ct.eventObject,Tt):Ut.capturedMap.set(St,new Map([[ct.eventObject,Tt]])),at.target.setPointerCapture(St)},At=St=>{const Tt=Ut.capturedMap.get(St);Tt&&releaseInternalPointerCapture(Ut.capturedMap,ct.eventObject,Tt,St)};let Lt={};for(let St in at){let Tt=at[St];typeof Tt!="function"&&(Lt[St]=Tt)}let Rt={...ct,...Lt,pointer:gt,intersections:st,stopped:ht.stopped,delta:lt,unprojectedPoint:Ft,ray:ft.ray,camera:yt,stopPropagation(){const St="pointerId"in at&&Ut.capturedMap.get(at.pointerId);if((!St||St.has(ct.eventObject))&&(Rt.stopped=ht.stopped=!0,Ut.hovered.size&&Array.from(Ut.hovered.values()).find(Tt=>Tt.eventObject===ct.eventObject))){const Tt=st.slice(0,st.indexOf(ct));rt([...Tt,ct])}},target:{hasPointerCapture:mt,setPointerCapture:vt,releasePointerCapture:At},currentTarget:{hasPointerCapture:mt,setPointerCapture:vt,releasePointerCapture:At},nativeEvent:at};if(ut(Rt),ht.stopped===!0)break}}return st}function rt(st){const{internal:at}=s.getState();for(const lt of at.hovered.values())if(!st.length||!st.find(ut=>ut.object===lt.object&&ut.index===lt.index&&ut.instanceId===lt.instanceId)){const dt=lt.eventObject.__r3f,ht=dt?.handlers;if(at.hovered.delete(makeId(lt)),dt!=null&&dt.eventCount){const ct={...lt,intersections:st};ht.onPointerOut==null||ht.onPointerOut(ct),ht.onPointerLeave==null||ht.onPointerLeave(ct)}}}function it(st,at){for(let lt=0;ltrt([]);case"onLostPointerCapture":return at=>{const{internal:lt}=s.getState();"pointerId"in at&<.capturedMap.has(at.pointerId)&&requestAnimationFrame(()=>{lt.capturedMap.has(at.pointerId)&&(lt.capturedMap.delete(at.pointerId),rt([]))})}}return function(lt){const{onPointerMissed:ut,internal:dt}=s.getState();dt.lastEvent.current=lt;const ht=st==="onPointerMove",ct=st==="onClick"||st==="onContextMenu"||st==="onDoubleClick",ft=tt(lt,ht?et:void 0),gt=ct?o(lt):0;st==="onPointerDown"&&(dt.initialClick=[lt.offsetX,lt.offsetY],dt.initialHits=ft.map(Ut=>Ut.eventObject)),ct&&!ft.length&><=2&&(it(lt,dt.interaction),ut&&ut(lt)),ht&&rt(ft);function yt(Ut){const Ft=Ut.eventObject,mt=Ft.__r3f,vt=mt?.handlers;if(mt!=null&&mt.eventCount)if(ht){if(vt.onPointerOver||vt.onPointerEnter||vt.onPointerOut||vt.onPointerLeave){const At=makeId(Ut),Lt=dt.hovered.get(At);Lt?Lt.stopped&&Ut.stopPropagation():(dt.hovered.set(At,Ut),vt.onPointerOver==null||vt.onPointerOver(Ut),vt.onPointerEnter==null||vt.onPointerEnter(Ut))}vt.onPointerMove==null||vt.onPointerMove(Ut)}else{const At=vt[st];At?(!ct||dt.initialHits.includes(Ft))&&(it(lt,dt.interaction.filter(Lt=>!dt.initialHits.includes(Lt))),At(Ut)):ct&&dt.initialHits.includes(Ft)&&it(lt,dt.interaction.filter(Lt=>!dt.initialHits.includes(Lt)))}}nt(ft,lt,gt,yt)}}return{handlePointer:ot}}const privateKeys=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],isRenderer=s=>!!(s!=null&&s.render),context$3=reactExports.createContext(null),createStore=(s,o)=>{const et=create$1((ot,st)=>{const at=new Vector3,lt=new Vector3,ut=new Vector3;function dt(gt=st().camera,yt=lt,Ut=st().size){const{width:Ft,height:mt,top:vt,left:At}=Ut,Lt=Ft/mt;yt instanceof Vector3?ut.copy(yt):ut.set(...yt);const Rt=gt.getWorldPosition(at).distanceTo(ut);if(isOrthographicCamera$1(gt))return{width:Ft/gt.zoom,height:mt/gt.zoom,top:vt,left:At,factor:1,distance:Rt,aspect:Lt};{const St=gt.fov*Math.PI/180,Tt=2*Math.tan(St/2)*Rt,Bt=Tt*(Ft/mt);return{width:Bt,height:Tt,top:vt,left:At,factor:Ft/Bt,distance:Rt,aspect:Lt}}}let ht;const ct=gt=>ot(yt=>({performance:{...yt.performance,current:gt}})),pt=new Vector2;return{set:ot,get:st,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(gt=1)=>s(st(),gt),advance:(gt,yt)=>o(gt,yt,st()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new Clock,pointer:pt,mouse:pt,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const gt=st();ht&&clearTimeout(ht),gt.performance.current!==gt.performance.min&&ct(gt.performance.min),ht=setTimeout(()=>ct(st().performance.max),gt.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:dt},setEvents:gt=>ot(yt=>({...yt,events:{...yt.events,...gt}})),setSize:(gt,yt,Ut,Ft,mt)=>{const vt=st().camera,At={width:gt,height:yt,top:Ft||0,left:mt||0,updateStyle:Ut};ot(Lt=>({size:At,viewport:{...Lt.viewport,...dt(vt,lt,At)}}))},setDpr:gt=>ot(yt=>{const Ut=calculateDpr(gt);return{viewport:{...yt.viewport,dpr:Ut,initialDpr:yt.viewport.initialDpr||Ut}}}),setFrameloop:(gt="always")=>{const yt=st().clock;yt.stop(),yt.elapsedTime=0,gt!=="never"&&(yt.start(),yt.elapsedTime=0),ot(()=>({frameloop:gt}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:reactExports.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(gt,yt,Ut)=>{const Ft=st().internal;return Ft.priority=Ft.priority+(yt>0?1:0),Ft.subscribers.push({ref:gt,priority:yt,store:Ut}),Ft.subscribers=Ft.subscribers.sort((mt,vt)=>mt.priority-vt.priority),()=>{const mt=st().internal;mt!=null&&mt.subscribers&&(mt.priority=mt.priority-(yt>0?1:0),mt.subscribers=mt.subscribers.filter(vt=>vt.ref!==gt))}}}}}),tt=et.getState();let nt=tt.size,rt=tt.viewport.dpr,it=tt.camera;return et.subscribe(()=>{const{camera:ot,size:st,viewport:at,gl:lt,set:ut}=et.getState();if(st.width!==nt.width||st.height!==nt.height||at.dpr!==rt){var dt;nt=st,rt=at.dpr,updateCamera(ot,st),lt.setPixelRatio(at.dpr);const ht=(dt=st.updateStyle)!=null?dt:typeof HTMLCanvasElement<"u"&<.domElement instanceof HTMLCanvasElement;lt.setSize(st.width,st.height,ht)}ot!==it&&(it=ot,ut(ht=>({viewport:{...ht.viewport,...ht.viewport.getCurrentViewport(ot)}})))}),et.subscribe(ot=>s(ot)),et};function createSubs(s,o){const et={callback:s};return o.add(et),()=>void o.delete(et)}let i$2,globalEffects=new Set,globalAfterEffects=new Set,globalTailEffects=new Set;const addEffect=s=>createSubs(s,globalEffects),addAfterEffect=s=>createSubs(s,globalAfterEffects);function run(s,o){if(s.size)for(const{callback:et}of s.values())et(o)}function flushGlobalEffects(s,o){switch(s){case"before":return run(globalEffects,o);case"after":return run(globalAfterEffects,o);case"tail":return run(globalTailEffects,o)}}let subscribers,subscription;function render$1(s,o,et){let tt=o.clock.getDelta();for(o.frameloop==="never"&&typeof s=="number"&&(tt=s-o.clock.elapsedTime,o.clock.oldTime=o.clock.elapsedTime,o.clock.elapsedTime=s),subscribers=o.internal.subscribers,i$2=0;i$20)&&!((lt=rt.gl.xr)!=null&<.isPresenting)&&(tt+=render$1(at,rt))}if(et=!1,flushGlobalEffects("after",at),tt===0)return flushGlobalEffects("tail",at),o=!1,cancelAnimationFrame(nt)}function ot(at,lt=1){var ut;if(!at)return s.forEach(dt=>ot(dt.store.getState(),lt));(ut=at.gl.xr)!=null&&ut.isPresenting||!at.internal.active||at.frameloop==="never"||(lt>1?at.internal.frames=Math.min(60,at.internal.frames+lt):et?at.internal.frames=2:at.internal.frames=1,o||(o=!0,requestAnimationFrame(it)))}function st(at,lt=!0,ut,dt){if(lt&&flushGlobalEffects("before",at),ut)render$1(at,ut,dt);else for(const ht of s.values())render$1(at,ht.store.getState());lt&&flushGlobalEffects("after",at)}return{loop:it,invalidate:ot,advance:st}}function useInstanceHandle(s){const o=reactExports.useRef(null);return useIsomorphicLayoutEffect$1(()=>void(o.current=s.current.__r3f),[s]),o}function useStore(){const s=reactExports.useContext(context$3);if(!s)throw new Error("R3F: Hooks can only be used within the Canvas component!");return s}function useThree(s=et=>et,o){return useStore()(s,o)}function useFrame(s,o=0){const et=useStore(),tt=et.getState().internal.subscribe,nt=useMutableCallback(s);return useIsomorphicLayoutEffect$1(()=>tt(nt,o,et),[o,tt,et]),null}const memoizedLoaders=new WeakMap;function loadingFn(s,o){return function(et,...tt){let nt=memoizedLoaders.get(et);return nt||(nt=new et,memoizedLoaders.set(et,nt)),s&&s(nt),Promise.all(tt.map(rt=>new Promise((it,ot)=>nt.load(rt,st=>{st.scene&&Object.assign(st,buildGraph(st.scene)),it(st)},o,st=>ot(new Error(`Could not load ${rt}: ${st?.message}`))))))}}function useLoader(s,o,et,tt){const nt=Array.isArray(o)?o:[o],rt=suspend(loadingFn(et,tt),[s,...nt],{equal:is.equ});return Array.isArray(o)?rt:rt[0]}useLoader.preload=function(s,o,et){const tt=Array.isArray(o)?o:[o];return preload(loadingFn(et),[s,...tt])};useLoader.clear=function(s,o){const et=Array.isArray(o)?o:[o];return clear([s,...et])};const roots=new Map,{invalidate,advance}=createLoop(roots),{reconciler,applyProps}=createRenderer(roots,getEventPriority),shallowLoose={objects:"shallow",strict:!1},createRendererInstance=(s,o)=>{const et=typeof s=="function"?s(o):s;return isRenderer(et)?et:new WebGLRenderer({powerPreference:"high-performance",canvas:o,antialias:!0,alpha:!0,...s})};function computeInitialSize(s,o){const et=typeof HTMLCanvasElement<"u"&&s instanceof HTMLCanvasElement;if(o){const{width:tt,height:nt,top:rt,left:it,updateStyle:ot=et}=o;return{width:tt,height:nt,top:rt,left:it,updateStyle:ot}}else if(typeof HTMLCanvasElement<"u"&&s instanceof HTMLCanvasElement&&s.parentElement){const{width:tt,height:nt,top:rt,left:it}=s.parentElement.getBoundingClientRect();return{width:tt,height:nt,top:rt,left:it,updateStyle:et}}else if(typeof OffscreenCanvas<"u"&&s instanceof OffscreenCanvas)return{width:s.width,height:s.height,top:0,left:0,updateStyle:et};return{width:0,height:0,top:0,left:0}}function createRoot(s){const o=roots.get(s),et=o?.fiber,tt=o?.store;o&&console.warn("R3F.createRoot should only be called once!");const nt=typeof reportError=="function"?reportError:console.error,rt=tt||createStore(invalidate,advance),it=et||reconciler.createContainer(rt,constantsExports.ConcurrentRoot,null,!1,null,"",nt,null);o||roots.set(s,{fiber:it,store:rt});let ot,st=!1,at;return{configure(lt={}){let{gl:ut,size:dt,scene:ht,events:ct,onCreated:pt,shadows:ft=!1,linear:gt=!1,flat:yt=!1,legacy:Ut=!1,orthographic:Ft=!1,frameloop:mt="always",dpr:vt=[1,2],performance:At,raycaster:Lt,camera:Rt,onPointerMissed:St}=lt,Tt=rt.getState(),Bt=Tt.gl;Tt.gl||Tt.set({gl:Bt=createRendererInstance(ut,s)});let xt=Tt.raycaster;xt||Tt.set({raycaster:xt=new Raycaster});const{params:Ct,...kt}=Lt||{};if(is.equ(kt,xt,shallowLoose)||applyProps(xt,{...kt}),is.equ(Ct,xt.params,shallowLoose)||applyProps(xt,{params:{...xt.params,...Ct}}),!Tt.camera||Tt.camera===at&&!is.equ(at,Rt,shallowLoose)){at=Rt;const Et=Rt instanceof Camera,Pt=Et?Rt:Ft?new OrthographicCamera(0,0,0,0,.1,1e3):new PerspectiveCamera$1(75,0,.1,1e3);Et||(Pt.position.z=5,Rt&&(applyProps(Pt,Rt),("aspect"in Rt||"left"in Rt||"right"in Rt||"bottom"in Rt||"top"in Rt)&&(Pt.manual=!0,Pt.updateProjectionMatrix())),!Tt.camera&&!(Rt!=null&&Rt.rotation)&&Pt.lookAt(0,0,0)),Tt.set({camera:Pt}),xt.camera=Pt}if(!Tt.scene){let Et;ht instanceof Scene?Et=ht:(Et=new Scene,ht&&applyProps(Et,ht)),Tt.set({scene:prepare$1(Et)})}if(!Tt.xr){var Nt;const Et=(en,Kt)=>{const nn=rt.getState();nn.frameloop!=="never"&&advance(en,!0,nn,Kt)},Pt=()=>{const en=rt.getState();en.gl.xr.enabled=en.gl.xr.isPresenting,en.gl.xr.setAnimationLoop(en.gl.xr.isPresenting?Et:null),en.gl.xr.isPresenting||invalidate(en)},zt={connect(){const en=rt.getState().gl;en.xr.addEventListener("sessionstart",Pt),en.xr.addEventListener("sessionend",Pt)},disconnect(){const en=rt.getState().gl;en.xr.removeEventListener("sessionstart",Pt),en.xr.removeEventListener("sessionend",Pt)}};typeof((Nt=Bt.xr)==null?void 0:Nt.addEventListener)=="function"&&zt.connect(),Tt.set({xr:zt})}if(Bt.shadowMap){const Et=Bt.shadowMap.enabled,Pt=Bt.shadowMap.type;if(Bt.shadowMap.enabled=!!ft,is.boo(ft))Bt.shadowMap.type=PCFSoftShadowMap;else if(is.str(ft)){var Ot;const zt={basic:BasicShadowMap,percentage:PCFShadowMap,soft:PCFSoftShadowMap,variance:VSMShadowMap};Bt.shadowMap.type=(Ot=zt[ft])!=null?Ot:PCFSoftShadowMap}else is.obj(ft)&&Object.assign(Bt.shadowMap,ft);(Et!==Bt.shadowMap.enabled||Pt!==Bt.shadowMap.type)&&(Bt.shadowMap.needsUpdate=!0)}const Jt=getColorManagement();Jt&&("enabled"in Jt?Jt.enabled=!Ut:"legacyMode"in Jt&&(Jt.legacyMode=Ut)),st||applyProps(Bt,{outputEncoding:gt?3e3:3001,toneMapping:yt?NoToneMapping:ACESFilmicToneMapping}),Tt.legacy!==Ut&&Tt.set(()=>({legacy:Ut})),Tt.linear!==gt&&Tt.set(()=>({linear:gt})),Tt.flat!==yt&&Tt.set(()=>({flat:yt})),ut&&!is.fun(ut)&&!isRenderer(ut)&&!is.equ(ut,Bt,shallowLoose)&&applyProps(Bt,ut),ct&&!Tt.events.handlers&&Tt.set({events:ct(rt)});const Dt=computeInitialSize(s,dt);return is.equ(Dt,Tt.size,shallowLoose)||Tt.setSize(Dt.width,Dt.height,Dt.updateStyle,Dt.top,Dt.left),vt&&Tt.viewport.dpr!==calculateDpr(vt)&&Tt.setDpr(vt),Tt.frameloop!==mt&&Tt.setFrameloop(mt),Tt.onPointerMissed||Tt.set({onPointerMissed:St}),At&&!is.equ(At,Tt.performance,shallowLoose)&&Tt.set(Et=>({performance:{...Et.performance,...At}})),ot=pt,st=!0,this},render(lt){return st||this.configure(),reconciler.updateContainer(jsx$2(Provider,{store:rt,children:lt,onCreated:ot,rootElement:s}),it,null,()=>{}),rt},unmount(){unmountComponentAtNode(s)}}}function Provider({store:s,children:o,onCreated:et,rootElement:tt}){return useIsomorphicLayoutEffect$1(()=>{const nt=s.getState();nt.set(rt=>({internal:{...rt.internal,active:!0}})),et&&et(nt),s.getState().events.connected||nt.events.connect==null||nt.events.connect(tt)},[]),jsx$2(context$3.Provider,{value:s,children:o})}function unmountComponentAtNode(s,o){const et=roots.get(s),tt=et?.fiber;if(tt){const nt=et?.store.getState();nt&&(nt.internal.active=!1),reconciler.updateContainer(null,tt,null,()=>{nt&&setTimeout(()=>{try{var rt,it,ot,st;nt.events.disconnect==null||nt.events.disconnect(),(rt=nt.gl)==null||(it=rt.renderLists)==null||it.dispose==null||it.dispose(),(ot=nt.gl)==null||ot.forceContextLoss==null||ot.forceContextLoss(),(st=nt.gl)!=null&&st.xr&&nt.xr.disconnect(),dispose(nt),roots.delete(s),o&&o(s)}catch{}},500)})}}function createPortal(s,o,et){return jsx$2(Portal,{children:s,container:o,state:et},o.uuid)}function Portal({state:s={},children:o,container:et}){const{events:tt,size:nt,...rt}=s,it=useStore(),[ot]=reactExports.useState(()=>new Raycaster),[st]=reactExports.useState(()=>new Vector2),at=reactExports.useCallback((ut,dt)=>{const ht={...ut};Object.keys(ut).forEach(pt=>{(privateKeys.includes(pt)||ut[pt]!==dt[pt]&&dt[pt])&&delete ht[pt]});let ct;if(dt&&nt){const pt=dt.camera;ct=ut.viewport.getCurrentViewport(pt,new Vector3,nt),pt!==ut.camera&&updateCamera(pt,nt)}return{...ht,scene:et,raycaster:ot,pointer:st,mouse:st,previousRoot:it,events:{...ut.events,...dt?.events,...tt},size:{...ut.size,...nt},viewport:{...ut.viewport,...ct},...rt}},[s]),[lt]=reactExports.useState(()=>{const ut=it.getState();return create$1((ht,ct)=>({...ut,scene:et,raycaster:ot,pointer:st,mouse:st,previousRoot:it,events:{...ut.events,...tt},size:{...ut.size,...nt},...rt,set:ht,get:ct,setEvents:pt=>ht(ft=>({...ft,events:{...ft.events,...pt}}))}))});return reactExports.useEffect(()=>{const ut=it.subscribe(dt=>lt.setState(ht=>at(dt,ht)));return()=>{ut()}},[at]),reactExports.useEffect(()=>{lt.setState(ut=>at(it.getState(),ut))},[at]),reactExports.useEffect(()=>()=>{lt.destroy()},[]),jsx$2(Fragment$2,{children:reconciler.createPortal(jsx$2(context$3.Provider,{value:lt,children:o}),lt,null)})}reconciler.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:reactExports.version});function debounce(s,o,et){var tt,nt,rt,it,ot;o==null&&(o=100);function st(){var lt=Date.now()-it;lt=0?tt=setTimeout(st,o-lt):(tt=null,et||(ot=s.apply(rt,nt),rt=nt=null))}var at=function(){rt=this,nt=arguments,it=Date.now();var lt=et&&!tt;return tt||(tt=setTimeout(st,o)),lt&&(ot=s.apply(rt,nt),rt=nt=null),ot};return at.clear=function(){tt&&(clearTimeout(tt),tt=null)},at.flush=function(){tt&&(ot=s.apply(rt,nt),rt=nt=null,clearTimeout(tt),tt=null)},at}debounce.debounce=debounce;var debounce_1=debounce;const createDebounce=getDefaultExportFromCjs$1(debounce_1);function useMeasure(s){let{debounce:o,scroll:et,polyfill:tt,offsetSize:nt}=s===void 0?{debounce:0,scroll:!1,offsetSize:!1}:s;const rt=tt||(typeof window>"u"?class{}:window.ResizeObserver);if(!rt)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[it,ot]=reactExports.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),st=reactExports.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:it}),at=o?typeof o=="number"?o:o.scroll:null,lt=o?typeof o=="number"?o:o.resize:null,ut=reactExports.useRef(!1);reactExports.useEffect(()=>(ut.current=!0,()=>void(ut.current=!1)));const[dt,ht,ct]=reactExports.useMemo(()=>{const yt=()=>{if(!st.current.element)return;const{left:Ut,top:Ft,width:mt,height:vt,bottom:At,right:Lt,x:Rt,y:St}=st.current.element.getBoundingClientRect(),Tt={left:Ut,top:Ft,width:mt,height:vt,bottom:At,right:Lt,x:Rt,y:St};st.current.element instanceof HTMLElement&&nt&&(Tt.height=st.current.element.offsetHeight,Tt.width=st.current.element.offsetWidth),Object.freeze(Tt),ut.current&&!areBoundsEqual(st.current.lastBounds,Tt)&&ot(st.current.lastBounds=Tt)};return[yt,lt?createDebounce(yt,lt):yt,at?createDebounce(yt,at):yt]},[ot,nt,at,lt]);function pt(){st.current.scrollContainers&&(st.current.scrollContainers.forEach(yt=>yt.removeEventListener("scroll",ct,!0)),st.current.scrollContainers=null),st.current.resizeObserver&&(st.current.resizeObserver.disconnect(),st.current.resizeObserver=null)}function ft(){st.current.element&&(st.current.resizeObserver=new rt(ct),st.current.resizeObserver.observe(st.current.element),et&&st.current.scrollContainers&&st.current.scrollContainers.forEach(yt=>yt.addEventListener("scroll",ct,{capture:!0,passive:!0})))}const gt=yt=>{!yt||yt===st.current.element||(pt(),st.current.element=yt,st.current.scrollContainers=findScrollContainers(yt),ft())};return useOnWindowScroll(ct,!!et),useOnWindowResize(ht),reactExports.useEffect(()=>{pt(),ft()},[et,ct,ht]),reactExports.useEffect(()=>pt,[]),[gt,it,dt]}function useOnWindowResize(s){reactExports.useEffect(()=>{const o=s;return window.addEventListener("resize",o),()=>void window.removeEventListener("resize",o)},[s])}function useOnWindowScroll(s,o){reactExports.useEffect(()=>{if(o){const et=s;return window.addEventListener("scroll",et,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",et,!0)}},[s,o])}function findScrollContainers(s){const o=[];if(!s||s===document.body)return o;const{overflow:et,overflowX:tt,overflowY:nt}=window.getComputedStyle(s);return[et,tt,nt].some(rt=>rt==="auto"||rt==="scroll")&&o.push(s),[...o,...findScrollContainers(s.parentElement)]}const keys=["x","y","top","bottom","left","right","width","height"],areBoundsEqual=(s,o)=>keys.every(et=>s[et]===o[et]);var __defProp$4=Object.defineProperty,__defProps$2=Object.defineProperties,__getOwnPropDescs$2=Object.getOwnPropertyDescriptors,__getOwnPropSymbols$2=Object.getOwnPropertySymbols,__hasOwnProp$2=Object.prototype.hasOwnProperty,__propIsEnum$2=Object.prototype.propertyIsEnumerable,__defNormalProp$4=(s,o,et)=>o in s?__defProp$4(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,__spreadValues$2=(s,o)=>{for(var et in o||(o={}))__hasOwnProp$2.call(o,et)&&__defNormalProp$4(s,et,o[et]);if(__getOwnPropSymbols$2)for(var et of __getOwnPropSymbols$2(o))__propIsEnum$2.call(o,et)&&__defNormalProp$4(s,et,o[et]);return s},__spreadProps$2=(s,o)=>__defProps$2(s,__getOwnPropDescs$2(o));function traverseFiber(s,o,et){if(!s)return;if(et(s)===!0)return s;let tt=o?s.return:s.child;for(;tt;){const nt=traverseFiber(tt,o,et);if(nt)return nt;tt=o?null:tt.sibling}}function wrapContext(s){try{return Object.defineProperties(s,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return s}}const FiberContext=wrapContext(reactExports.createContext(null));class FiberProvider extends reactExports.Component{render(){return reactExports.createElement(FiberContext.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner,ReactCurrentDispatcher}=reactExports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function useFiber(){const s=reactExports.useContext(FiberContext);if(s===null)throw new Error("its-fine: useFiber must be called within a !");const o=reactExports.useId();return reactExports.useMemo(()=>{for(const tt of[ReactCurrentOwner?.current,s,s?.alternate]){if(!tt)continue;const nt=traverseFiber(tt,!1,rt=>{let it=rt.memoizedState;for(;it;){if(it.memoizedState===o)return!0;it=it.next}});if(nt)return nt}},[s,o])}function useContextMap(){var s,o;const et=useFiber(),[tt]=reactExports.useState(()=>new Map);tt.clear();let nt=et;for(;nt;){const rt=(s=nt.type)==null?void 0:s._context;rt&&rt!==FiberContext&&!tt.has(rt)&&tt.set(rt,(o=ReactCurrentDispatcher?.current)==null?void 0:o.readContext(wrapContext(rt))),nt=nt.return}return tt}function useContextBridge(){const s=useContextMap();return reactExports.useMemo(()=>Array.from(s.keys()).reduce((o,et)=>tt=>reactExports.createElement(o,null,reactExports.createElement(et.Provider,__spreadProps$2(__spreadValues$2({},tt),{value:s.get(et)}))),o=>reactExports.createElement(FiberProvider,__spreadValues$2({},o))),[s])}const DOM_EVENTS={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function createPointerEvents(s){const{handlePointer:o}=createEvents(s);return{priority:1,enabled:!0,compute(et,tt,nt){tt.pointer.set(et.offsetX/tt.size.width*2-1,-(et.offsetY/tt.size.height)*2+1),tt.raycaster.setFromCamera(tt.pointer,tt.camera)},connected:void 0,handlers:Object.keys(DOM_EVENTS).reduce((et,tt)=>({...et,[tt]:o(tt)}),{}),update:()=>{var et;const{events:tt,internal:nt}=s.getState();(et=nt.lastEvent)!=null&&et.current&&tt.handlers&&tt.handlers.onPointerMove(nt.lastEvent.current)},connect:et=>{var tt;const{set:nt,events:rt}=s.getState();rt.disconnect==null||rt.disconnect(),nt(it=>({events:{...it.events,connected:et}})),Object.entries((tt=rt.handlers)!=null?tt:[]).forEach(([it,ot])=>{const[st,at]=DOM_EVENTS[it];et.addEventListener(st,ot,{passive:at})})},disconnect:()=>{const{set:et,events:tt}=s.getState();if(tt.connected){var nt;Object.entries((nt=tt.handlers)!=null?nt:[]).forEach(([rt,it])=>{if(tt&&tt.connected instanceof HTMLElement){const[ot]=DOM_EVENTS[rt];tt.connected.removeEventListener(ot,it)}}),et(rt=>({events:{...rt.events,connected:void 0}}))}}}}const CanvasImpl=reactExports.forwardRef(function({children:o,fallback:et,resize:tt,style:nt,gl:rt,events:it=createPointerEvents,eventSource:ot,eventPrefix:st,shadows:at,linear:lt,flat:ut,legacy:dt,orthographic:ht,frameloop:ct,dpr:pt,performance:ft,raycaster:gt,camera:yt,scene:Ut,onPointerMissed:Ft,onCreated:mt,...vt},At){reactExports.useMemo(()=>extend(THREE$1),[]);const Lt=useContextBridge(),[Rt,St]=useMeasure({scroll:!0,debounce:{scroll:50,resize:0},...tt}),Tt=reactExports.useRef(null),Bt=reactExports.useRef(null);reactExports.useImperativeHandle(At,()=>Tt.current);const xt=useMutableCallback(Ft),[Ct,kt]=reactExports.useState(!1),[Nt,Ot]=reactExports.useState(!1);if(Ct)throw Ct;if(Nt)throw Nt;const Jt=reactExports.useRef(null);return useIsomorphicLayoutEffect$1(()=>{const Et=Tt.current;St.width>0&&St.height>0&&Et&&(Jt.current||(Jt.current=createRoot(Et)),Jt.current.configure({gl:rt,events:it,shadows:at,linear:lt,flat:ut,legacy:dt,orthographic:ht,frameloop:ct,dpr:pt,performance:ft,raycaster:gt,camera:yt,scene:Ut,size:St,onPointerMissed:(...Pt)=>xt.current==null?void 0:xt.current(...Pt),onCreated:Pt=>{Pt.events.connect==null||Pt.events.connect(ot?isRef(ot)?ot.current:ot:Bt.current),st&&Pt.setEvents({compute:(zt,en)=>{const Kt=zt[st+"X"],nn=zt[st+"Y"];en.pointer.set(Kt/en.size.width*2-1,-(nn/en.size.height)*2+1),en.raycaster.setFromCamera(en.pointer,en.camera)}}),mt?.(Pt)}}),Jt.current.render(jsx$2(Lt,{children:jsx$2(ErrorBoundary,{set:Ot,children:jsx$2(reactExports.Suspense,{fallback:jsx$2(Block,{set:kt}),children:o})})})))}),reactExports.useEffect(()=>{const Et=Tt.current;if(Et)return()=>unmountComponentAtNode(Et)},[]),jsx$2("div",{ref:Bt,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:ot?"none":"auto",...nt},...vt,children:jsx$2("div",{ref:Rt,style:{width:"100%",height:"100%"},children:jsx$2("canvas",{ref:Tt,style:{display:"block"},children:et})})})}),Canvas=reactExports.forwardRef(function(o,et){return jsx$2(FiberProvider,{children:jsx$2(CanvasImpl,{...o,ref:et})})});function _extends$2(){return _extends$2=Object.assign?Object.assign.bind():function(s){for(var o=1;oMath.PI/2}function isObjectVisible(s,o,et,tt){const nt=v1$1.setFromMatrixPosition(s.matrixWorld),rt=nt.clone();rt.project(o),v4$1.set(rt.x,rt.y),et.setFromCamera(v4$1,o);const it=et.intersectObjects(tt,!0);if(it.length){const ot=it[0].distance;return nt.distanceTo(et.ray.origin)Math.abs(s)<1e-10?0:s;function getCSSMatrix(s,o,et=""){let tt="matrix3d(";for(let nt=0;nt!==16;nt++)tt+=epsilon(o[nt]*s.elements[nt])+(nt!==15?",":")");return et+tt}const getCameraCSSMatrix=(s=>o=>getCSSMatrix(o,s))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),getObjectCSSMatrix=(s=>(o,et)=>getCSSMatrix(o,s(et),"translate(-50%,-50%)"))(s=>[1/s,1/s,1/s,1,-1/s,-1/s,-1/s,-1,1/s,1/s,1/s,1,1,1,1,1]);function isRefObject(s){return s&&typeof s=="object"&&"current"in s}const Html=reactExports.forwardRef(({children:s,eps:o=.001,style:et,className:tt,prepend:nt,center:rt,fullscreen:it,portal:ot,distanceFactor:st,sprite:at=!1,transform:lt=!1,occlude:ut,onOcclude:dt,castShadow:ht,receiveShadow:ct,material:pt,geometry:ft,zIndexRange:gt=[16777271,0],calculatePosition:yt=defaultCalculatePosition,as:Ut="div",wrapperClass:Ft,pointerEvents:mt="auto",...vt},At)=>{const{gl:Lt,camera:Rt,scene:St,size:Tt,raycaster:Bt,events:xt,viewport:Ct}=useThree(),[kt]=reactExports.useState(()=>document.createElement(Ut)),Nt=reactExports.useRef(),Ot=reactExports.useRef(null),Jt=reactExports.useRef(0),Dt=reactExports.useRef([0,0]),Et=reactExports.useRef(null),Pt=reactExports.useRef(null),zt=ot?.current||xt.connected||Lt.domElement.parentNode,en=reactExports.useRef(null),Kt=reactExports.useRef(!1),nn=reactExports.useMemo(()=>ut&&ut!=="blending"||Array.isArray(ut)&&ut.length&&isRefObject(ut[0]),[ut]);reactExports.useLayoutEffect(()=>{const $t=Lt.domElement;ut&&ut==="blending"?($t.style.zIndex=`${Math.floor(gt[0]/2)}`,$t.style.position="absolute",$t.style.pointerEvents="none"):($t.style.zIndex=null,$t.style.position=null,$t.style.pointerEvents=null)},[ut]),reactExports.useLayoutEffect(()=>{if(Ot.current){const $t=Nt.current=createRoot$1(kt);if(St.updateMatrixWorld(),lt)kt.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const Ht=yt(Ot.current,Rt,Tt);kt.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${Ht[0]}px,${Ht[1]}px,0);transform-origin:0 0;`}return zt&&(nt?zt.prepend(kt):zt.appendChild(kt)),()=>{zt&&zt.removeChild(kt),$t.unmount()}}},[zt,lt]),reactExports.useLayoutEffect(()=>{Ft&&(kt.className=Ft)},[Ft]);const Zt=reactExports.useMemo(()=>lt?{position:"absolute",top:0,left:0,width:Tt.width,height:Tt.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:rt?"translate3d(-50%,-50%,0)":"none",...it&&{top:-Tt.height/2,left:-Tt.width/2,width:Tt.width,height:Tt.height},...et},[et,rt,it,Tt,lt]),jt=reactExports.useMemo(()=>({position:"absolute",pointerEvents:mt}),[mt]);reactExports.useLayoutEffect(()=>{if(Kt.current=!1,lt){var $t;($t=Nt.current)==null||$t.render(reactExports.createElement("div",{ref:Et,style:Zt},reactExports.createElement("div",{ref:Pt,style:jt},reactExports.createElement("div",{ref:At,className:tt,style:et,children:s}))))}else{var Ht;(Ht=Nt.current)==null||Ht.render(reactExports.createElement("div",{ref:At,style:Zt,className:tt,children:s}))}});const Vt=reactExports.useRef(!0);useFrame($t=>{if(Ot.current){Rt.updateMatrixWorld(),Ot.current.updateWorldMatrix(!0,!1);const Ht=lt?Dt.current:yt(Ot.current,Rt,Tt);if(lt||Math.abs(Jt.current-Rt.zoom)>o||Math.abs(Dt.current[0]-Ht[0])>o||Math.abs(Dt.current[1]-Ht[1])>o){const qt=isObjectBehindCamera(Ot.current,Rt);let on=!1;nn&&(Array.isArray(ut)?on=ut.map(Fn=>Fn.current):ut!=="blending"&&(on=[St]));const Xt=Vt.current;if(on){const Fn=isObjectVisible(Ot.current,Rt,Bt,on);Vt.current=Fn&&!qt}else Vt.current=!qt;Xt!==Vt.current&&(dt?dt(!Vt.current):kt.style.display=Vt.current?"block":"none");const dn=Math.floor(gt[0]/2),_n=ut?nn?[gt[0],dn]:[dn-1,0]:gt;if(kt.style.zIndex=`${objectZIndex(Ot.current,Rt,_n)}`,lt){const[Fn,Un]=[Tt.width/2,Tt.height/2],On=Rt.projectionMatrix.elements[5]*Un,{isOrthographicCamera:gn,top:hn,left:wn,bottom:Zn,right:Pn}=Rt,$n=getCameraCSSMatrix(Rt.matrixWorldInverse),Tr=gn?`scale(${On})translate(${epsilon(-(Pn+wn)/2)}px,${epsilon((hn+Zn)/2)}px)`:`translateZ(${On}px)`;let Qr=Ot.current.matrixWorld;at&&(Qr=Rt.matrixWorldInverse.clone().transpose().copyPosition(Qr).scale(Ot.current.scale),Qr.elements[3]=Qr.elements[7]=Qr.elements[11]=0,Qr.elements[15]=1),kt.style.width=Tt.width+"px",kt.style.height=Tt.height+"px",kt.style.perspective=gn?"":`${On}px`,Et.current&&Pt.current&&(Et.current.style.transform=`${Tr}${$n}translate(${Fn}px,${Un}px)`,Pt.current.style.transform=getObjectCSSMatrix(Qr,1/((st||10)/400)))}else{const Fn=st===void 0?1:objectScale(Ot.current,Rt)*st;kt.style.transform=`translate3d(${Ht[0]}px,${Ht[1]}px,0) scale(${Fn})`}Dt.current=Ht,Jt.current=Rt.zoom}}if(!nn&&en.current&&!Kt.current)if(lt){if(Et.current){const Ht=Et.current.children[0];if(Ht!=null&&Ht.clientWidth&&Ht!=null&&Ht.clientHeight){const{isOrthographicCamera:qt}=Rt;if(qt||ft)vt.scale&&(Array.isArray(vt.scale)?vt.scale instanceof Vector3?en.current.scale.copy(vt.scale.clone().divideScalar(1)):en.current.scale.set(1/vt.scale[0],1/vt.scale[1],1/vt.scale[2]):en.current.scale.setScalar(1/vt.scale));else{const on=(st||10)/400,Xt=Ht.clientWidth*on,dn=Ht.clientHeight*on;en.current.scale.set(Xt,dn,1)}Kt.current=!0}}}else{const Ht=kt.children[0];if(Ht!=null&&Ht.clientWidth&&Ht!=null&&Ht.clientHeight){const qt=1/Ct.factor,on=Ht.clientWidth*qt,Xt=Ht.clientHeight*qt;en.current.scale.set(on,Xt,1),Kt.current=!0}en.current.lookAt($t.camera.position)}});const It=reactExports.useMemo(()=>({vertexShader:lt?void 0:` /* This shader is from the THREE's SpriteMaterial. We need to turn the backing plane into a Sprite @@ -4323,7 +4323,7 @@ No matching component was found for: * https://github.com/yomotsu/camera-controls * (c) 2017 @yomotsu * Released under the MIT License. - */const MOUSE_BUTTON={LEFT:1,RIGHT:2,MIDDLE:4},ACTION=Object.freeze({NONE:0,ROTATE:1,TRUCK:2,OFFSET:4,DOLLY:8,ZOOM:16,TOUCH_ROTATE:32,TOUCH_TRUCK:64,TOUCH_OFFSET:128,TOUCH_DOLLY:256,TOUCH_ZOOM:512,TOUCH_DOLLY_TRUCK:1024,TOUCH_DOLLY_OFFSET:2048,TOUCH_DOLLY_ROTATE:4096,TOUCH_ZOOM_TRUCK:8192,TOUCH_ZOOM_OFFSET:16384,TOUCH_ZOOM_ROTATE:32768}),DOLLY_DIRECTION={NONE:0,IN:1,OUT:-1};function isPerspectiveCamera(s){return s.isPerspectiveCamera}function isOrthographicCamera(s){return s.isOrthographicCamera}const PI_2=Math.PI*2,PI_HALF=Math.PI/2,EPSILON$1=1e-5,DEG2RAD=Math.PI/180;function clamp$3(s,o,et){return Math.max(o,Math.min(et,s))}function approxZero(s,o=EPSILON$1){return Math.abs(s)0==ht>lt&&(ht=lt,et.value=(ht-lt)/rt),ht}function smoothDampVec3(s,o,et,tt,nt=1/0,rt,it){tt=Math.max(1e-4,tt);const ot=2/tt,st=ot*rt,at=1/(1+st+.48*st*st+.235*st*st*st);let lt=o.x,ut=o.y,dt=o.z,ht=s.x-lt,ct=s.y-ut,pt=s.z-dt;const ft=lt,gt=ut,yt=dt,Ut=nt*tt,Ft=Ut*Ut,mt=ht*ht+ct*ct+pt*pt;if(mt>Ft){const kt=Math.sqrt(mt);ht=ht/kt*Ut,ct=ct/kt*Ut,pt=pt/kt*Ut}lt=s.x-ht,ut=s.y-ct,dt=s.z-pt;const vt=(et.x+ot*ht)*rt,At=(et.y+ot*ct)*rt,Lt=(et.z+ot*pt)*rt;et.x=(et.x-ot*vt)*at,et.y=(et.y-ot*At)*at,et.z=(et.z-ot*Lt)*at,it.x=lt+(ht+vt)*at,it.y=ut+(ct+At)*at,it.z=dt+(pt+Lt)*at;const Rt=ft-s.x,St=gt-s.y,Tt=yt-s.z,Bt=it.x-ft,xt=it.y-gt,Ct=it.z-yt;return Rt*Bt+St*xt+Tt*Ct>0&&(it.x=ft,it.y=gt,it.z=yt,et.x=(it.x-ft)/rt,et.y=(it.y-gt)/rt,et.z=(it.z-yt)/rt),it}function extractClientCoordFromEvent(s,o){o.set(0,0),s.forEach(et=>{o.x+=et.clientX,o.y+=et.clientY}),o.x/=s.length,o.y/=s.length}function notSupportedInOrthographicCamera(s,o){return isOrthographicCamera(s)?(console.warn(`${o} is not supported in OrthographicCamera`),!0):!1}class EventDispatcher{constructor(){this._listeners={}}addEventListener(o,et){const tt=this._listeners;tt[o]===void 0&&(tt[o]=[]),tt[o].indexOf(et)===-1&&tt[o].push(et)}hasEventListener(o,et){const tt=this._listeners;return tt[o]!==void 0&&tt[o].indexOf(et)!==-1}removeEventListener(o,et){const nt=this._listeners[o];if(nt!==void 0){const rt=nt.indexOf(et);rt!==-1&&nt.splice(rt,1)}}removeAllEventListeners(o){if(!o){this._listeners={};return}Array.isArray(this._listeners[o])&&(this._listeners[o].length=0)}dispatchEvent(o){const tt=this._listeners[o.type];if(tt!==void 0){o.target=this;const nt=tt.slice(0);for(let rt=0,it=nt.length;rt{},this._enabled=!0,this._state=ACTION.NONE,this._viewport=null,this._changedDolly=0,this._changedZoom=0,this._hasRested=!0,this._boundaryEnclosesCamera=!1,this._needsUpdate=!0,this._updatedLastTime=!1,this._elementRect=new DOMRect,this._isDragging=!1,this._dragNeedsUpdate=!0,this._activePointers=[],this._lockedPointer=null,this._interactiveArea=new DOMRect(0,0,1,1),this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._isUserControllingOffset=!1,this._isUserControllingZoom=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._thetaVelocity={value:0},this._phiVelocity={value:0},this._radiusVelocity={value:0},this._targetVelocity=new THREE.Vector3,this._focalOffsetVelocity=new THREE.Vector3,this._zoomVelocity={value:0},this._truckInternal=(Ft,mt,vt)=>{let At,Lt;if(isPerspectiveCamera(this._camera)){const Rt=_v3A.copy(this._camera.position).sub(this._target),St=this._camera.getEffectiveFOV()*DEG2RAD,Tt=Rt.length()*Math.tan(St*.5);At=this.truckSpeed*Ft*Tt/this._elementRect.height,Lt=this.truckSpeed*mt*Tt/this._elementRect.height}else if(isOrthographicCamera(this._camera)){const Rt=this._camera;At=Ft*(Rt.right-Rt.left)/Rt.zoom/this._elementRect.width,Lt=mt*(Rt.top-Rt.bottom)/Rt.zoom/this._elementRect.height}else return;this.verticalDragToForward?(vt?this.setFocalOffset(this._focalOffsetEnd.x+At,this._focalOffsetEnd.y,this._focalOffsetEnd.z,!0):this.truck(At,0,!0),this.forward(-Lt,!0)):vt?this.setFocalOffset(this._focalOffsetEnd.x+At,this._focalOffsetEnd.y+Lt,this._focalOffsetEnd.z,!0):this.truck(At,Lt,!0)},this._rotateInternal=(Ft,mt)=>{const vt=PI_2*this.azimuthRotateSpeed*Ft/this._elementRect.height,At=PI_2*this.polarRotateSpeed*mt/this._elementRect.height;this.rotate(vt,At,!0)},this._dollyInternal=(Ft,mt,vt)=>{const At=Math.pow(.95,-Ft*this.dollySpeed),Lt=this._sphericalEnd.radius,Rt=this._sphericalEnd.radius*At,St=clamp$3(Rt,this.minDistance,this.maxDistance),Tt=St-Rt;this.infinityDolly&&this.dollyToCursor?this._dollyToNoClamp(Rt,!0):this.infinityDolly&&!this.dollyToCursor?(this.dollyInFixed(Tt,!0),this._dollyToNoClamp(St,!0)):this._dollyToNoClamp(St,!0),this.dollyToCursor&&(this._changedDolly+=(this.infinityDolly?Rt:St)-Lt,this._dollyControlCoord.set(mt,vt)),this._lastDollyDirection=Math.sign(-Ft)},this._zoomInternal=(Ft,mt,vt)=>{const At=Math.pow(.95,Ft*this.dollySpeed),Lt=this._zoom,Rt=this._zoom*At;this.zoomTo(Rt,!0),this.dollyToCursor&&(this._changedZoom+=Rt-Lt,this._dollyControlCoord.set(mt,vt))},typeof THREE>"u"&&console.error("camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information."),this._camera=o,this._yAxisUpSpace=new THREE.Quaternion().setFromUnitVectors(this._camera.up,_AXIS_Y),this._yAxisUpSpaceInverse=this._yAxisUpSpace.clone().invert(),this._state=ACTION.NONE,this._target=new THREE.Vector3,this._targetEnd=this._target.clone(),this._focalOffset=new THREE.Vector3,this._focalOffsetEnd=this._focalOffset.clone(),this._spherical=new THREE.Spherical().setFromVector3(_v3A.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace)),this._sphericalEnd=this._spherical.clone(),this._lastDistance=this._spherical.radius,this._zoom=this._camera.zoom,this._zoomEnd=this._zoom,this._lastZoom=this._zoom,this._nearPlaneCorners=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3],this._updateNearPlaneCorners(),this._boundary=new THREE.Box3(new THREE.Vector3(-1/0,-1/0,-1/0),new THREE.Vector3(1/0,1/0,1/0)),this._cameraUp0=this._camera.up.clone(),this._target0=this._target.clone(),this._position0=this._camera.position.clone(),this._zoom0=this._zoom,this._focalOffset0=this._focalOffset.clone(),this._dollyControlCoord=new THREE.Vector2,this.mouseButtons={left:ACTION.ROTATE,middle:ACTION.DOLLY,right:ACTION.TRUCK,wheel:isPerspectiveCamera(this._camera)?ACTION.DOLLY:isOrthographicCamera(this._camera)?ACTION.ZOOM:ACTION.NONE},this.touches={one:ACTION.TOUCH_ROTATE,two:isPerspectiveCamera(this._camera)?ACTION.TOUCH_DOLLY_TRUCK:isOrthographicCamera(this._camera)?ACTION.TOUCH_ZOOM_TRUCK:ACTION.NONE,three:ACTION.TOUCH_TRUCK};const tt=new THREE.Vector2,nt=new THREE.Vector2,rt=new THREE.Vector2,it=Ft=>{if(!this._enabled||!this._domElement)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const At=this._domElement.getBoundingClientRect(),Lt=Ft.clientX/At.width,Rt=Ft.clientY/At.height;if(Ltthis._interactiveArea.right||Rtthis._interactiveArea.bottom)return}const mt=Ft.pointerType!=="mouse"?null:(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE?MOUSE_BUTTON.MIDDLE:(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT?MOUSE_BUTTON.RIGHT:null;if(mt!==null){const At=this._findPointerByMouseButton(mt);At&&this._disposePointer(At)}if((Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT&&this._lockedPointer)return;const vt={pointerId:Ft.pointerId,clientX:Ft.clientX,clientY:Ft.clientY,deltaX:0,deltaY:0,mouseButton:mt};this._activePointers.push(vt),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.addEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.addEventListener("pointerup",lt),this._isDragging=!0,pt(Ft)},ot=Ft=>{if(!this._enabled||!this._domElement||this._lockedPointer)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const At=this._domElement.getBoundingClientRect(),Lt=Ft.clientX/At.width,Rt=Ft.clientY/At.height;if(Ltthis._interactiveArea.right||Rtthis._interactiveArea.bottom)return}const mt=(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE?MOUSE_BUTTON.MIDDLE:(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT?MOUSE_BUTTON.RIGHT:null;if(mt!==null){const At=this._findPointerByMouseButton(mt);At&&this._disposePointer(At)}const vt={pointerId:1,clientX:Ft.clientX,clientY:Ft.clientY,deltaX:0,deltaY:0,mouseButton:(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.MIDDLE:(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.RIGHT:null};this._activePointers.push(vt),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("mouseup",ut),this._domElement.ownerDocument.addEventListener("mousemove",at),this._domElement.ownerDocument.addEventListener("mouseup",ut),this._isDragging=!0,pt(Ft)},st=Ft=>{Ft.cancelable&&Ft.preventDefault();const mt=Ft.pointerId,vt=this._lockedPointer||this._findPointerById(mt);if(vt){if(vt.clientX=Ft.clientX,vt.clientY=Ft.clientY,vt.deltaX=Ft.movementX,vt.deltaY=Ft.movementY,this._state=0,Ft.pointerType==="touch")switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else(!this._isDragging&&this._lockedPointer||this._isDragging&&(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT)&&(this._state=this._state|this.mouseButtons.left),this._isDragging&&(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),this._isDragging&&(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right);ft()}},at=Ft=>{const mt=this._lockedPointer||this._findPointerById(1);mt&&(mt.clientX=Ft.clientX,mt.clientY=Ft.clientY,mt.deltaX=Ft.movementX,mt.deltaY=Ft.movementY,this._state=0,(this._lockedPointer||(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT)&&(this._state=this._state|this.mouseButtons.left),(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right),ft())},lt=Ft=>{const mt=this._findPointerById(Ft.pointerId);if(!(mt&&mt===this._lockedPointer)){if(mt&&this._disposePointer(mt),Ft.pointerType==="touch")switch(this._activePointers.length){case 0:this._state=ACTION.NONE;break;case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else this._state=ACTION.NONE;gt()}},ut=()=>{const Ft=this._findPointerById(1);Ft&&Ft===this._lockedPointer||(Ft&&this._disposePointer(Ft),this._state=ACTION.NONE,gt())};let dt=-1;const ht=Ft=>{if(!this._domElement||!this._enabled||this.mouseButtons.wheel===ACTION.NONE)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const Rt=this._domElement.getBoundingClientRect(),St=Ft.clientX/Rt.width,Tt=Ft.clientY/Rt.height;if(Stthis._interactiveArea.right||Ttthis._interactiveArea.bottom)return}if(Ft.preventDefault(),this.dollyToCursor||this.mouseButtons.wheel===ACTION.ROTATE||this.mouseButtons.wheel===ACTION.TRUCK){const Rt=performance.now();dt-Rt<1e3&&this._getClientRect(this._elementRect),dt=Rt}const mt=isMac?-1:-3,vt=Ft.deltaMode===1?Ft.deltaY/mt:Ft.deltaY/(mt*10),At=this.dollyToCursor?(Ft.clientX-this._elementRect.x)/this._elementRect.width*2-1:0,Lt=this.dollyToCursor?(Ft.clientY-this._elementRect.y)/this._elementRect.height*-2+1:0;switch(this.mouseButtons.wheel){case ACTION.ROTATE:{this._rotateInternal(Ft.deltaX,Ft.deltaY),this._isUserControllingRotate=!0;break}case ACTION.TRUCK:{this._truckInternal(Ft.deltaX,Ft.deltaY,!1),this._isUserControllingTruck=!0;break}case ACTION.OFFSET:{this._truckInternal(Ft.deltaX,Ft.deltaY,!0),this._isUserControllingOffset=!0;break}case ACTION.DOLLY:{this._dollyInternal(-vt,At,Lt),this._isUserControllingDolly=!0;break}case ACTION.ZOOM:{this._zoomInternal(-vt,At,Lt),this._isUserControllingZoom=!0;break}}this.dispatchEvent({type:"control"})},ct=Ft=>{if(!(!this._domElement||!this._enabled)){if(this.mouseButtons.right===sm.ACTION.NONE){const mt=Ft instanceof PointerEvent?Ft.pointerId:(Ft instanceof MouseEvent,0),vt=this._findPointerById(mt);vt&&this._disposePointer(vt),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("mouseup",ut);return}Ft.preventDefault()}},pt=Ft=>{if(!this._enabled)return;if(extractClientCoordFromEvent(this._activePointers,_v2),this._getClientRect(this._elementRect),tt.copy(_v2),nt.copy(_v2),this._activePointers.length>=2){const vt=_v2.x-this._activePointers[1].clientX,At=_v2.y-this._activePointers[1].clientY,Lt=Math.sqrt(vt*vt+At*At);rt.set(0,Lt);const Rt=(this._activePointers[0].clientX+this._activePointers[1].clientX)*.5,St=(this._activePointers[0].clientY+this._activePointers[1].clientY)*.5;nt.set(Rt,St)}if(this._state=0,!Ft)this._lockedPointer&&(this._state=this._state|this.mouseButtons.left);else if("pointerType"in Ft&&Ft.pointerType==="touch")switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else!this._lockedPointer&&(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT&&(this._state=this._state|this.mouseButtons.left),(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right);((this._state&ACTION.ROTATE)===ACTION.ROTATE||(this._state&ACTION.TOUCH_ROTATE)===ACTION.TOUCH_ROTATE||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._sphericalEnd.theta=this._spherical.theta,this._sphericalEnd.phi=this._spherical.phi,this._thetaVelocity.value=0,this._phiVelocity.value=0),((this._state&ACTION.TRUCK)===ACTION.TRUCK||(this._state&ACTION.TOUCH_TRUCK)===ACTION.TOUCH_TRUCK||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK)&&(this._targetEnd.copy(this._target),this._targetVelocity.set(0,0,0)),((this._state&ACTION.DOLLY)===ACTION.DOLLY||(this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE)&&(this._sphericalEnd.radius=this._spherical.radius,this._radiusVelocity.value=0),((this._state&ACTION.ZOOM)===ACTION.ZOOM||(this._state&ACTION.TOUCH_ZOOM)===ACTION.TOUCH_ZOOM||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._zoomEnd=this._zoom,this._zoomVelocity.value=0),((this._state&ACTION.OFFSET)===ACTION.OFFSET||(this._state&ACTION.TOUCH_OFFSET)===ACTION.TOUCH_OFFSET||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET)&&(this._focalOffsetEnd.copy(this._focalOffset),this._focalOffsetVelocity.set(0,0,0)),this.dispatchEvent({type:"controlstart"})},ft=()=>{if(!this._enabled||!this._dragNeedsUpdate)return;this._dragNeedsUpdate=!1,extractClientCoordFromEvent(this._activePointers,_v2);const mt=this._domElement&&document.pointerLockElement===this._domElement?this._lockedPointer||this._activePointers[0]:null,vt=mt?-mt.deltaX:nt.x-_v2.x,At=mt?-mt.deltaY:nt.y-_v2.y;if(nt.copy(_v2),((this._state&ACTION.ROTATE)===ACTION.ROTATE||(this._state&ACTION.TOUCH_ROTATE)===ACTION.TOUCH_ROTATE||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._rotateInternal(vt,At),this._isUserControllingRotate=!0),(this._state&ACTION.DOLLY)===ACTION.DOLLY||(this._state&ACTION.ZOOM)===ACTION.ZOOM){const Lt=this.dollyToCursor?(tt.x-this._elementRect.x)/this._elementRect.width*2-1:0,Rt=this.dollyToCursor?(tt.y-this._elementRect.y)/this._elementRect.height*-2+1:0,St=this.dollyDragInverted?-1:1;(this._state&ACTION.DOLLY)===ACTION.DOLLY?(this._dollyInternal(St*At*TOUCH_DOLLY_FACTOR,Lt,Rt),this._isUserControllingDolly=!0):(this._zoomInternal(St*At*TOUCH_DOLLY_FACTOR,Lt,Rt),this._isUserControllingZoom=!0)}if((this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_ZOOM)===ACTION.TOUCH_ZOOM||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE){const Lt=_v2.x-this._activePointers[1].clientX,Rt=_v2.y-this._activePointers[1].clientY,St=Math.sqrt(Lt*Lt+Rt*Rt),Tt=rt.y-St;rt.set(0,St);const Bt=this.dollyToCursor?(nt.x-this._elementRect.x)/this._elementRect.width*2-1:0,xt=this.dollyToCursor?(nt.y-this._elementRect.y)/this._elementRect.height*-2+1:0;(this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET?(this._dollyInternal(Tt*TOUCH_DOLLY_FACTOR,Bt,xt),this._isUserControllingDolly=!0):(this._zoomInternal(Tt*TOUCH_DOLLY_FACTOR,Bt,xt),this._isUserControllingZoom=!0)}((this._state&ACTION.TRUCK)===ACTION.TRUCK||(this._state&ACTION.TOUCH_TRUCK)===ACTION.TOUCH_TRUCK||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK)&&(this._truckInternal(vt,At,!1),this._isUserControllingTruck=!0),((this._state&ACTION.OFFSET)===ACTION.OFFSET||(this._state&ACTION.TOUCH_OFFSET)===ACTION.TOUCH_OFFSET||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET)&&(this._truckInternal(vt,At,!0),this._isUserControllingOffset=!0),this.dispatchEvent({type:"control"})},gt=()=>{extractClientCoordFromEvent(this._activePointers,_v2),nt.copy(_v2),this._dragNeedsUpdate=!1,(this._activePointers.length===0||this._activePointers.length===1&&this._activePointers[0]===this._lockedPointer)&&(this._isDragging=!1),this._activePointers.length===0&&this._domElement&&(this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.removeEventListener("mouseup",ut),this.dispatchEvent({type:"controlend"}))};this.lockPointer=()=>{!this._enabled||!this._domElement||(this.cancel(),this._lockedPointer={pointerId:-1,clientX:0,clientY:0,deltaX:0,deltaY:0,mouseButton:null},this._activePointers.push(this._lockedPointer),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.requestPointerLock(),this._domElement.ownerDocument.addEventListener("pointerlockchange",yt),this._domElement.ownerDocument.addEventListener("pointerlockerror",Ut),this._domElement.ownerDocument.addEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.addEventListener("pointerup",lt),pt())},this.unlockPointer=()=>{this._lockedPointer!==null&&(this._disposePointer(this._lockedPointer),this._lockedPointer=null),document.exitPointerLock(),this.cancel(),this._domElement&&(this._domElement.ownerDocument.removeEventListener("pointerlockchange",yt),this._domElement.ownerDocument.removeEventListener("pointerlockerror",Ut))};const yt=()=>{this._domElement&&this._domElement.ownerDocument.pointerLockElement===this._domElement||this.unlockPointer()},Ut=()=>{this.unlockPointer()};this._addAllEventListeners=Ft=>{this._domElement=Ft,this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none",this._domElement.addEventListener("pointerdown",it),isPointerEventsNotSupported&&this._domElement.addEventListener("mousedown",ot),this._domElement.addEventListener("pointercancel",lt),this._domElement.addEventListener("wheel",ht,{passive:!1}),this._domElement.addEventListener("contextmenu",ct)},this._removeAllEventListeners=()=>{this._domElement&&(this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect="",this._domElement.removeEventListener("pointerdown",it),this._domElement.removeEventListener("mousedown",ot),this._domElement.removeEventListener("pointercancel",lt),this._domElement.removeEventListener("wheel",ht,{passive:!1}),this._domElement.removeEventListener("contextmenu",ct),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.removeEventListener("mouseup",ut),this._domElement.ownerDocument.removeEventListener("pointerlockchange",yt),this._domElement.ownerDocument.removeEventListener("pointerlockerror",Ut))},this.cancel=()=>{this._state!==ACTION.NONE&&(this._state=ACTION.NONE,this._activePointers.length=0,gt())},et&&this.connect(et),this.update(0)}get camera(){return this._camera}set camera(o){this._camera=o,this.updateCameraUp(),this._camera.updateProjectionMatrix(),this._updateNearPlaneCorners(),this._needsUpdate=!0}get enabled(){return this._enabled}set enabled(o){this._enabled=o,this._domElement&&(o?(this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none"):(this.cancel(),this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect=""))}get active(){return!this._hasRested}get currentAction(){return this._state}get distance(){return this._spherical.radius}set distance(o){this._spherical.radius===o&&this._sphericalEnd.radius===o||(this._spherical.radius=o,this._sphericalEnd.radius=o,this._needsUpdate=!0)}get azimuthAngle(){return this._spherical.theta}set azimuthAngle(o){this._spherical.theta===o&&this._sphericalEnd.theta===o||(this._spherical.theta=o,this._sphericalEnd.theta=o,this._needsUpdate=!0)}get polarAngle(){return this._spherical.phi}set polarAngle(o){this._spherical.phi===o&&this._sphericalEnd.phi===o||(this._spherical.phi=o,this._sphericalEnd.phi=o,this._needsUpdate=!0)}get boundaryEnclosesCamera(){return this._boundaryEnclosesCamera}set boundaryEnclosesCamera(o){this._boundaryEnclosesCamera=o,this._needsUpdate=!0}set interactiveArea(o){this._interactiveArea.width=clamp$3(o.width,0,1),this._interactiveArea.height=clamp$3(o.height,0,1),this._interactiveArea.x=clamp$3(o.x,0,1-this._interactiveArea.width),this._interactiveArea.y=clamp$3(o.y,0,1-this._interactiveArea.height)}addEventListener(o,et){super.addEventListener(o,et)}removeEventListener(o,et){super.removeEventListener(o,et)}rotate(o,et,tt=!1){return this.rotateTo(this._sphericalEnd.theta+o,this._sphericalEnd.phi+et,tt)}rotateAzimuthTo(o,et=!1){return this.rotateTo(o,this._sphericalEnd.phi,et)}rotatePolarTo(o,et=!1){return this.rotateTo(this._sphericalEnd.theta,o,et)}rotateTo(o,et,tt=!1){this._isUserControllingRotate=!1;const nt=clamp$3(o,this.minAzimuthAngle,this.maxAzimuthAngle),rt=clamp$3(et,this.minPolarAngle,this.maxPolarAngle);this._sphericalEnd.theta=nt,this._sphericalEnd.phi=rt,this._sphericalEnd.makeSafe(),this._needsUpdate=!0,tt||(this._spherical.theta=this._sphericalEnd.theta,this._spherical.phi=this._sphericalEnd.phi);const it=!tt||approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold);return this._createOnRestPromise(it)}dolly(o,et=!1){return this.dollyTo(this._sphericalEnd.radius-o,et)}dollyTo(o,et=!1){return this._isUserControllingDolly=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0,this._dollyToNoClamp(clamp$3(o,this.minDistance,this.maxDistance),et)}_dollyToNoClamp(o,et=!1){const tt=this._sphericalEnd.radius;if(this.colliderMeshes.length>=1){const it=this._collisionTest(),ot=approxEquals(it,this._spherical.radius);if(!(tt>o)&&ot)return Promise.resolve();this._sphericalEnd.radius=Math.min(o,it)}else this._sphericalEnd.radius=o;this._needsUpdate=!0,et||(this._spherical.radius=this._sphericalEnd.radius);const rt=!et||approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(rt)}dollyInFixed(o,et=!1){this._targetEnd.add(this._getCameraDirection(_cameraDirection).multiplyScalar(o)),et||this._target.copy(this._targetEnd);const tt=!et||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(tt)}zoom(o,et=!1){return this.zoomTo(this._zoomEnd+o,et)}zoomTo(o,et=!1){this._isUserControllingZoom=!1,this._zoomEnd=clamp$3(o,this.minZoom,this.maxZoom),this._needsUpdate=!0,et||(this._zoom=this._zoomEnd);const tt=!et||approxEquals(this._zoom,this._zoomEnd,this.restThreshold);return this._changedZoom=0,this._createOnRestPromise(tt)}pan(o,et,tt=!1){return console.warn("`pan` has been renamed to `truck`"),this.truck(o,et,tt)}truck(o,et,tt=!1){this._camera.updateMatrix(),_xColumn.setFromMatrixColumn(this._camera.matrix,0),_yColumn.setFromMatrixColumn(this._camera.matrix,1),_xColumn.multiplyScalar(o),_yColumn.multiplyScalar(-et);const nt=_v3A.copy(_xColumn).add(_yColumn),rt=_v3B.copy(this._targetEnd).add(nt);return this.moveTo(rt.x,rt.y,rt.z,tt)}forward(o,et=!1){_v3A.setFromMatrixColumn(this._camera.matrix,0),_v3A.crossVectors(this._camera.up,_v3A),_v3A.multiplyScalar(o);const tt=_v3B.copy(this._targetEnd).add(_v3A);return this.moveTo(tt.x,tt.y,tt.z,et)}elevate(o,et=!1){return _v3A.copy(this._camera.up).multiplyScalar(o),this.moveTo(this._targetEnd.x+_v3A.x,this._targetEnd.y+_v3A.y,this._targetEnd.z+_v3A.z,et)}moveTo(o,et,tt,nt=!1){this._isUserControllingTruck=!1;const rt=_v3A.set(o,et,tt).sub(this._targetEnd);this._encloseToBoundary(this._targetEnd,rt,this.boundaryFriction),this._needsUpdate=!0,nt||this._target.copy(this._targetEnd);const it=!nt||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(it)}lookInDirectionOf(o,et,tt,nt=!1){const ot=_v3A.set(o,et,tt).sub(this._targetEnd).normalize().multiplyScalar(-this._sphericalEnd.radius);return this.setPosition(ot.x,ot.y,ot.z,nt)}fitToBox(o,et,{cover:tt=!1,paddingLeft:nt=0,paddingRight:rt=0,paddingBottom:it=0,paddingTop:ot=0}={}){const st=[],at=o.isBox3?_box3A.copy(o):_box3A.setFromObject(o);at.isEmpty()&&(console.warn("camera-controls: fitTo() cannot be used with an empty box. Aborting"),Promise.resolve());const lt=roundToStep(this._sphericalEnd.theta,PI_HALF),ut=roundToStep(this._sphericalEnd.phi,PI_HALF);st.push(this.rotateTo(lt,ut,et));const dt=_v3A.setFromSpherical(this._sphericalEnd).normalize(),ht=_quaternionA.setFromUnitVectors(dt,_AXIS_Z),ct=approxEquals(Math.abs(dt.y),1);ct&&ht.multiply(_quaternionB.setFromAxisAngle(_AXIS_Y,lt)),ht.multiply(this._yAxisUpSpaceInverse);const pt=_box3B.makeEmpty();_v3B.copy(at.min).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.min).setX(at.max.x).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.min).setY(at.max.y).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).setZ(at.min.z).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.min).setZ(at.max.z).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).setY(at.min.y).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).setX(at.min.x).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).applyQuaternion(ht),pt.expandByPoint(_v3B),pt.min.x-=nt,pt.min.y-=it,pt.max.x+=rt,pt.max.y+=ot,ht.setFromUnitVectors(_AXIS_Z,dt),ct&&ht.premultiply(_quaternionB.invert()),ht.premultiply(this._yAxisUpSpace);const ft=pt.getSize(_v3A),gt=pt.getCenter(_v3B).applyQuaternion(ht);if(isPerspectiveCamera(this._camera)){const yt=this.getDistanceToFitBox(ft.x,ft.y,ft.z,tt);st.push(this.moveTo(gt.x,gt.y,gt.z,et)),st.push(this.dollyTo(yt,et)),st.push(this.setFocalOffset(0,0,0,et))}else if(isOrthographicCamera(this._camera)){const yt=this._camera,Ut=yt.right-yt.left,Ft=yt.top-yt.bottom,mt=tt?Math.max(Ut/ft.x,Ft/ft.y):Math.min(Ut/ft.x,Ft/ft.y);st.push(this.moveTo(gt.x,gt.y,gt.z,et)),st.push(this.zoomTo(mt,et)),st.push(this.setFocalOffset(0,0,0,et))}return Promise.all(st)}fitToSphere(o,et){const tt=[],rt=o instanceof THREE.Sphere?_sphere.copy(o):sm.createBoundingSphere(o,_sphere);if(tt.push(this.moveTo(rt.center.x,rt.center.y,rt.center.z,et)),isPerspectiveCamera(this._camera)){const it=this.getDistanceToFitSphere(rt.radius);tt.push(this.dollyTo(it,et))}else if(isOrthographicCamera(this._camera)){const it=this._camera.right-this._camera.left,ot=this._camera.top-this._camera.bottom,st=2*rt.radius,at=Math.min(it/st,ot/st);tt.push(this.zoomTo(at,et))}return tt.push(this.setFocalOffset(0,0,0,et)),Promise.all(tt)}setLookAt(o,et,tt,nt,rt,it,ot=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0;const st=_v3B.set(nt,rt,it),at=_v3A.set(o,et,tt);this._targetEnd.copy(st),this._sphericalEnd.setFromVector3(at.sub(st).applyQuaternion(this._yAxisUpSpace)),this.normalizeRotations(),this._needsUpdate=!0,ot||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));const lt=!ot||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold)&&approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(lt)}lerpLookAt(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0;const pt=_v3A.set(nt,rt,it),ft=_v3B.set(o,et,tt);_sphericalA.setFromVector3(ft.sub(pt).applyQuaternion(this._yAxisUpSpace));const gt=_v3C.set(lt,ut,dt),yt=_v3B.set(ot,st,at);_sphericalB.setFromVector3(yt.sub(gt).applyQuaternion(this._yAxisUpSpace)),this._targetEnd.copy(pt.lerp(gt,ht));const Ut=_sphericalB.theta-_sphericalA.theta,Ft=_sphericalB.phi-_sphericalA.phi,mt=_sphericalB.radius-_sphericalA.radius;this._sphericalEnd.set(_sphericalA.radius+mt*ht,_sphericalA.phi+Ft*ht,_sphericalA.theta+Ut*ht),this.normalizeRotations(),this._needsUpdate=!0,ct||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));const vt=!ct||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold)&&approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(vt)}setPosition(o,et,tt,nt=!1){return this.setLookAt(o,et,tt,this._targetEnd.x,this._targetEnd.y,this._targetEnd.z,nt)}setTarget(o,et,tt,nt=!1){const rt=this.getPosition(_v3A),it=this.setLookAt(rt.x,rt.y,rt.z,o,et,tt,nt);return this._sphericalEnd.phi=clamp$3(this._sphericalEnd.phi,this.minPolarAngle,this.maxPolarAngle),it}setFocalOffset(o,et,tt,nt=!1){this._isUserControllingOffset=!1,this._focalOffsetEnd.set(o,et,tt),this._needsUpdate=!0,nt||this._focalOffset.copy(this._focalOffsetEnd);const rt=!nt||approxEquals(this._focalOffset.x,this._focalOffsetEnd.x,this.restThreshold)&&approxEquals(this._focalOffset.y,this._focalOffsetEnd.y,this.restThreshold)&&approxEquals(this._focalOffset.z,this._focalOffsetEnd.z,this.restThreshold);return this._createOnRestPromise(rt)}setOrbitPoint(o,et,tt){this._camera.updateMatrixWorld(),_xColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,0),_yColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,1),_zColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,2);const nt=_v3A.set(o,et,tt),rt=nt.distanceTo(this._camera.position),it=nt.sub(this._camera.position);_xColumn.multiplyScalar(it.x),_yColumn.multiplyScalar(it.y),_zColumn.multiplyScalar(it.z),_v3A.copy(_xColumn).add(_yColumn).add(_zColumn),_v3A.z=_v3A.z+rt,this.dollyTo(rt,!1),this.setFocalOffset(-_v3A.x,_v3A.y,-_v3A.z,!1),this.moveTo(o,et,tt,!1)}setBoundary(o){if(!o){this._boundary.min.set(-1/0,-1/0,-1/0),this._boundary.max.set(1/0,1/0,1/0),this._needsUpdate=!0;return}this._boundary.copy(o),this._boundary.clampPoint(this._targetEnd,this._targetEnd),this._needsUpdate=!0}setViewport(o,et,tt,nt){if(o===null){this._viewport=null;return}this._viewport=this._viewport||new THREE.Vector4,typeof o=="number"?this._viewport.set(o,et,tt,nt):this._viewport.copy(o)}getDistanceToFitBox(o,et,tt,nt=!1){if(notSupportedInOrthographicCamera(this._camera,"getDistanceToFitBox"))return this._spherical.radius;const rt=o/et,it=this._camera.getEffectiveFOV()*DEG2RAD,ot=this._camera.aspect;return((nt?rt>ot:rtet.pointerId===o)}_findPointerByMouseButton(o){return this._activePointers.find(et=>et.mouseButton===o)}_disposePointer(o){this._activePointers.splice(this._activePointers.indexOf(o),1)}_encloseToBoundary(o,et,tt){const nt=et.lengthSq();if(nt===0)return o;const rt=_v3B.copy(et).add(o),ot=this._boundary.clampPoint(rt,_v3C).sub(rt),st=ot.lengthSq();if(st===0)return o.add(et);if(st===nt)return o;if(tt===0)return o.add(et).add(ot);{const at=1+tt*st/et.dot(ot);return o.add(_v3B.copy(et).multiplyScalar(at)).add(ot.multiplyScalar(1-tt))}}_updateNearPlaneCorners(){if(isPerspectiveCamera(this._camera)){const o=this._camera,et=o.near,tt=o.getEffectiveFOV()*DEG2RAD,nt=Math.tan(tt*.5)*et,rt=nt*o.aspect;this._nearPlaneCorners[0].set(-rt,-nt,0),this._nearPlaneCorners[1].set(rt,-nt,0),this._nearPlaneCorners[2].set(rt,nt,0),this._nearPlaneCorners[3].set(-rt,nt,0)}else if(isOrthographicCamera(this._camera)){const o=this._camera,et=1/o.zoom,tt=o.left*et,nt=o.right*et,rt=o.top*et,it=o.bottom*et;this._nearPlaneCorners[0].set(tt,rt,0),this._nearPlaneCorners[1].set(nt,rt,0),this._nearPlaneCorners[2].set(nt,it,0),this._nearPlaneCorners[3].set(tt,it,0)}}_collisionTest(){let o=1/0;if(!(this.colliderMeshes.length>=1)||notSupportedInOrthographicCamera(this._camera,"_collisionTest"))return o;const tt=this._getTargetDirection(_cameraDirection);_rotationMatrix.lookAt(_ORIGIN,tt,this._camera.up);for(let nt=0;nt<4;nt++){const rt=_v3B.copy(this._nearPlaneCorners[nt]);rt.applyMatrix4(_rotationMatrix);const it=_v3C.addVectors(this._target,rt);_raycaster.set(it,tt),_raycaster.far=this._spherical.radius+1;const ot=_raycaster.intersectObjects(this.colliderMeshes);ot.length!==0&&ot[0].distance{const tt=()=>{this.removeEventListener("rest",tt),et()};this.addEventListener("rest",tt)}))}_addAllEventListeners(o){}_removeAllEventListeners(){}get dampingFactor(){return console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead."),0}set dampingFactor(o){console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead.")}get draggingDampingFactor(){return console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead."),0}set draggingDampingFactor(o){console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.")}static createBoundingSphere(o,et=new THREE.Sphere){const tt=et,nt=tt.center;_box3A.makeEmpty(),o.traverseVisible(it=>{it.isMesh&&_box3A.expandByObject(it)}),_box3A.getCenter(nt);let rt=0;return o.traverseVisible(it=>{if(!it.isMesh)return;const ot=it,st=ot.geometry.clone();st.applyMatrix4(ot.matrixWorld);const lt=st.attributes.position;for(let ut=0,dt=lt.count;ut{reactExports.useMemo(()=>{const mt={Box3,MathUtils:{clamp:MathUtils.clamp},Matrix4,Quaternion,Raycaster,Sphere:Sphere$1,Spherical,Vector2,Vector3,Vector4};CameraControls$1.install({THREE:mt}),extend({CameraControlsImpl:CameraControls$1})},[]);const{camera:et,domElement:tt,makeDefault:nt,onStart:rt,onEnd:it,onChange:ot,regress:st,...at}=s,lt=useThree(mt=>mt.camera),ut=useThree(mt=>mt.gl),dt=useThree(mt=>mt.invalidate),ht=useThree(mt=>mt.events),ct=useThree(mt=>mt.setEvents),pt=useThree(mt=>mt.set),ft=useThree(mt=>mt.get),gt=useThree(mt=>mt.performance),yt=et||lt,Ut=tt||ht.connected||ut.domElement,Ft=reactExports.useMemo(()=>new CameraControls$1(yt),[yt]);return useFrame((mt,vt)=>{Ft.enabled&&Ft.update(vt)},-1),reactExports.useEffect(()=>(Ft.connect(Ut),()=>void Ft.disconnect()),[Ut,Ft]),reactExports.useEffect(()=>{const mt=Lt=>{dt(),st&>.regress(),ot&&ot(Lt)},vt=Lt=>{rt&&rt(Lt)},At=Lt=>{it&&it(Lt)};return Ft.addEventListener("update",mt),Ft.addEventListener("controlstart",vt),Ft.addEventListener("controlend",At),Ft.addEventListener("control",mt),Ft.addEventListener("transitionstart",mt),Ft.addEventListener("wake",mt),()=>{Ft.removeEventListener("update",mt),Ft.removeEventListener("controlstart",vt),Ft.removeEventListener("controlend",At),Ft.removeEventListener("control",mt),Ft.removeEventListener("transitionstart",mt),Ft.removeEventListener("wake",mt)}},[Ft,rt,it,dt,ct,st,ot]),reactExports.useEffect(()=>{if(nt){const mt=ft().controls;return pt({controls:Ft}),()=>pt({controls:mt})}},[nt,Ft]),reactExports.createElement("primitive",_extends$2({ref:o,object:Ft},at))});function useHelper(s,o,...et){const tt=reactExports.useRef(),nt=useThree(rt=>rt.scene);return reactExports.useLayoutEffect(()=>{let rt;if(s&&s!=null&&s.current&&o&&(tt.current=rt=new o(s.current,...et)),rt)return rt.traverse(it=>it.raycast=()=>null),nt.add(rt),()=>{tt.current=void 0,nt.remove(rt),rt.dispose==null||rt.dispose()}},[nt,o,s,...et]),useFrame(()=>{var rt;return void((rt=tt.current)==null||rt.update==null?void 0:rt.update())}),tt}var stats_min={exports:{}};(function(s,o){(function(et,tt){s.exports=tt()})(commonjsGlobal$2,function(){var et=function(){function tt(ht){return it.appendChild(ht.dom),ht}function nt(ht){for(var ct=0;ctst+1e3&&(lt.update(1e3*at/(ht-st),100),st=ht,at=0,dt)){var ct=performance.memory;dt.update(ct.usedJSHeapSize/1048576,ct.jsHeapSizeLimit/1048576)}return ht},update:function(){ot=this.end()},domElement:it,setMode:nt}};return et.Panel=function(tt,nt,rt){var it=1/0,ot=0,st=Math.round,at=st(window.devicePixelRatio||1),lt=80*at,ut=48*at,dt=3*at,ht=2*at,ct=3*at,pt=15*at,ft=74*at,gt=30*at,yt=document.createElement("canvas");yt.width=lt,yt.height=ut,yt.style.cssText="width:80px;height:48px";var Ut=yt.getContext("2d");return Ut.font="bold "+9*at+"px Helvetica,Arial,sans-serif",Ut.textBaseline="top",Ut.fillStyle=rt,Ut.fillRect(0,0,lt,ut),Ut.fillStyle=nt,Ut.fillText(tt,dt,ht),Ut.fillRect(ct,pt,ft,gt),Ut.fillStyle=rt,Ut.globalAlpha=.9,Ut.fillRect(ct,pt,ft,gt),{dom:yt,update:function(Ft,mt){it=Math.min(it,Ft),ot=Math.max(ot,Ft),Ut.fillStyle=rt,Ut.globalAlpha=1,Ut.fillRect(0,0,lt,pt),Ut.fillStyle=nt,Ut.fillText(st(Ft)+" "+tt+" ("+st(it)+"-"+st(ot)+")",dt,ht),Ut.drawImage(yt,ct+at,pt,ft-at,gt,ct,pt,ft-at,gt),Ut.fillRect(ct+ft-at,pt,at,gt),Ut.fillStyle=rt,Ut.globalAlpha=.9,Ut.fillRect(ct+ft-at,pt,at,st((1-Ft/mt)*gt))}}},et})})(stats_min);var stats_minExports=stats_min.exports;const StatsImpl=getDefaultExportFromCjs$1(stats_minExports);function call$1(s,o){typeof s=="function"?s(o):s!=null&&(s.current=o)}function useEffectfulState(s,o=[],et){const[tt,nt]=reactExports.useState();return reactExports.useLayoutEffect(()=>{const rt=s();return nt(rt),call$1(et,rt),()=>call$1(et,null)},o),tt}function Stats({showPanel:s=0,className:o,parent:et}){const tt=useEffectfulState(()=>new StatsImpl,[]);return reactExports.useEffect(()=>{if(tt){const nt=et&&et.current||document.body;tt.showPanel(s),nt?.appendChild(tt.dom);const rt=(o??"").split(" ").filter(st=>st);rt.length&&tt.dom.classList.add(...rt);const it=addEffect(()=>tt.begin()),ot=addAfterEffect(()=>tt.end());return()=>{rt.length&&tt.dom.classList.remove(...rt),nt?.removeChild(tt.dom),it(),ot()}}},[et,tt,o,s]),null}function create(s,o){const et=s+"Geometry";return reactExports.forwardRef(({args:tt,children:nt,...rt},it)=>{const ot=reactExports.useRef(null);return reactExports.useImperativeHandle(it,()=>ot.current),reactExports.useLayoutEffect(()=>void o?.(ot.current)),reactExports.createElement("mesh",_extends$2({ref:ot},rt),reactExports.createElement(et,{attach:"geometry",args:tt}),nt)})}const Box=create("box"),Sphere=create("sphere");let getRandomValues;const rnds8=new Uint8Array(16);function rng(){if(!getRandomValues&&(getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!getRandomValues))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}const byteToHex=[];for(let s=0;s<256;++s)byteToHex.push((s+256).toString(16).slice(1));function unsafeStringify(s,o=0){return byteToHex[s[o+0]]+byteToHex[s[o+1]]+byteToHex[s[o+2]]+byteToHex[s[o+3]]+"-"+byteToHex[s[o+4]]+byteToHex[s[o+5]]+"-"+byteToHex[s[o+6]]+byteToHex[s[o+7]]+"-"+byteToHex[s[o+8]]+byteToHex[s[o+9]]+"-"+byteToHex[s[o+10]]+byteToHex[s[o+11]]+byteToHex[s[o+12]]+byteToHex[s[o+13]]+byteToHex[s[o+14]]+byteToHex[s[o+15]]}let _nodeId,_clockseq,_lastMSecs=0,_lastNSecs=0;function v1(s,o,et){let tt=o&&et||0;const nt=o||new Array(16);s=s||{};let rt=s.node||_nodeId,it=s.clockseq!==void 0?s.clockseq:_clockseq;if(rt==null||it==null){const dt=s.random||(s.rng||rng)();rt==null&&(rt=_nodeId=[dt[0]|1,dt[1],dt[2],dt[3],dt[4],dt[5]]),it==null&&(it=_clockseq=(dt[6]<<8|dt[7])&16383)}let ot=s.msecs!==void 0?s.msecs:Date.now(),st=s.nsecs!==void 0?s.nsecs:_lastNSecs+1;const at=ot-_lastMSecs+(st-_lastNSecs)/1e4;if(at<0&&s.clockseq===void 0&&(it=it+1&16383),(at<0||ot>_lastMSecs)&&s.nsecs===void 0&&(st=0),st>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=ot,_lastNSecs=st,_clockseq=it,ot+=122192928e5;const lt=((ot&268435455)*1e4+st)%4294967296;nt[tt++]=lt>>>24&255,nt[tt++]=lt>>>16&255,nt[tt++]=lt>>>8&255,nt[tt++]=lt&255;const ut=ot/4294967296*1e4&268435455;nt[tt++]=ut>>>8&255,nt[tt++]=ut&255,nt[tt++]=ut>>>24&15|16,nt[tt++]=ut>>>16&255,nt[tt++]=it>>>8|128,nt[tt++]=it&255;for(let dt=0;dt<6;++dt)nt[tt+dt]=rt[dt];return o||unsafeStringify(nt)}const randomUUID=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),native={randomUUID};function v4(s,o,et){if(native.randomUUID&&!o&&!s)return native.randomUUID();s=s||{};const tt=s.random||(s.rng||rng)();if(tt[6]=tt[6]&15|64,tt[8]=tt[8]&63|128,o){et=et||0;for(let nt=0;nt<16;++nt)o[et+nt]=tt[nt];return o}return unsafeStringify(tt)}const context$2=reactExports.createContext(null),vec1$2=new Vector3,vec2$2=new Vector3,calculateOffset$2=(s,o,et,tt)=>{const nt=o.dot(o),rt=o.dot(s)-o.dot(et),it=o.dot(tt);return it===0?-rt/nt:(vec1$2.copy(tt).multiplyScalar(nt/it).sub(o),vec2$2.copy(tt).multiplyScalar(rt/it).add(et).sub(s),-vec1$2.dot(vec2$2)/vec1$2.dot(vec1$2))},upV$2=new Vector3(0,1,0),offsetMatrix$3=new Matrix4,AxisArrow$1=({direction:s,axis:o})=>{const{translation:et,translationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context$2),gt=useThree(Ot=>Ot.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(0),[vt,At]=reactExports.useState(!1),Lt=reactExports.useCallback(Ot=>{nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`,yt.current.style.display="block"),Ot.stopPropagation();const Wt=new Matrix4().extractRotation(Ut.current.matrixWorld),Dt=Ot.point.clone(),Et=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Pt=s.clone().applyMatrix4(Wt).normalize();Ft.current={clickPoint:Dt,dir:Pt},mt.current=et.current[o],ht({component:"Arrow",axis:o,origin:Et,directions:[Pt]}),gt&&(gt.enabled=!1),Ot.target.setPointerCapture(Ot.pointerId)},[nt,s,gt,ht,et,o]),Rt=reactExports.useCallback(Ot=>{if(Ot.stopPropagation(),vt||At(!0),Ft.current){const{clickPoint:Wt,dir:Dt}=Ft.current,[Et,Pt]=tt?.[o]||[void 0,void 0];let zt=calculateOffset$2(Wt,Dt,Ot.ray.origin,Ot.ray.direction);Et!==void 0&&(zt=Math.max(zt,Et-mt.current)),Pt!==void 0&&(zt=Math.min(zt,Pt-mt.current)),et.current[o]=mt.current+zt,nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`),offsetMatrix$3.makeTranslation(Dt.x*zt,Dt.y*zt,Dt.z*zt),ct(offsetMatrix$3)}},[nt,ct,vt,et,tt,o]),St=reactExports.useCallback(Ot=>{nt&&(yt.current.style.display="none"),Ot.stopPropagation(),Ft.current=null,pt(),gt&&(gt.enabled=!0),Ot.target.releasePointerCapture(Ot.pointerId)},[nt,gt,pt]),Tt=reactExports.useCallback(Ot=>{Ot.stopPropagation(),At(!1)},[]),{cylinderLength:Bt,coneWidth:xt,coneLength:Ct,matrixL:kt}=reactExports.useMemo(()=>{const Ot=at?st/ot*1.6:ot/20,Wt=at?.2:ot/5,Dt=at?1-Wt:ot-Wt,Et=new Quaternion().setFromUnitVectors(upV$2,s.clone().normalize()),Pt=new Matrix4().makeRotationFromQuaternion(Et);return{cylinderLength:Dt,coneWidth:Ot,coneLength:Wt,matrixL:Pt}},[s,ot,st,at]),Nt=vt?ut:lt[o];return reactExports.createElement("group",{ref:Ut},reactExports.createElement("group",{matrix:kt,matrixAutoUpdate:!1,onPointerDown:Lt,onPointerMove:Rt,onPointerUp:St,onPointerOut:Tt},nt&&reactExports.createElement(Html,{position:[0,-Ct,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})),reactExports.createElement("mesh",{visible:!1,position:[0,(Bt+Ct)/2,0],userData:ft},reactExports.createElement("cylinderGeometry",{args:[xt*1.4,xt*1.4,Bt+Ct,8,1]})),reactExports.createElement(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:[0,0,0,0,Bt,0],lineWidth:st,side:DoubleSide,color:Nt,opacity:dt,polygonOffset:!0,renderOrder:1,polygonOffsetFactor:-10,fog:!1}),reactExports.createElement("mesh",{raycast:()=>null,position:[0,Bt+Ct/2,0],renderOrder:500},reactExports.createElement("coneGeometry",{args:[xt,Ct,24,1]}),reactExports.createElement("meshBasicMaterial",{transparent:!0,depthTest:it,color:Nt,opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))))},clickDir$1=new Vector3,intersectionDir$1=new Vector3,toDegrees$2=s=>s*180/Math.PI,toRadians$2=s=>s*Math.PI/180,calculateAngle$1=(s,o,et,tt,nt)=>{clickDir$1.copy(s).sub(et),intersectionDir$1.copy(o).sub(et);const rt=tt.dot(tt),it=nt.dot(nt),ot=clickDir$1.dot(tt)/rt,st=clickDir$1.dot(nt)/it,at=intersectionDir$1.dot(tt)/rt,lt=intersectionDir$1.dot(nt)/it,ut=Math.atan2(st,ot);return Math.atan2(lt,at)-ut},fmod$1=(s,o)=>{let et=Math.floor(s/o);return et=et<0?et+1:et,s-et*o},minimizeAngle$1=s=>{let o=fmod$1(s,2*Math.PI);return Math.abs(o)<1e-6?0:(o<0&&(o+=2*Math.PI),o)},rotMatrix$1=new Matrix4,posNew$1=new Vector3,ray$3=new Ray$1,intersection$3=new Vector3,AxisRotator$1=({dir1:s,dir2:o,axis:et})=>{const{rotationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context$2),gt=useThree(Nt=>Nt.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(0),mt=reactExports.useRef(0),vt=reactExports.useRef(null),[At,Lt]=reactExports.useState(!1),Rt=reactExports.useCallback(Nt=>{nt&&(yt.current.innerText=`${toDegrees$2(mt.current).toFixed(0)}º`,yt.current.style.display="block"),Nt.stopPropagation();const Ot=Nt.point.clone(),Wt=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Dt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,0).normalize(),Et=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,1).normalize(),Pt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,2).normalize(),zt=new Plane().setFromNormalAndCoplanarPoint(Pt,Wt);vt.current={clickPoint:Ot,origin:Wt,e1:Dt,e2:Et,normal:Pt,plane:zt},ht({component:"Rotator",axis:et,origin:Wt,directions:[Dt,Et,Pt]}),gt&&(gt.enabled=!1),Nt.target.setPointerCapture(Nt.pointerId)},[nt,gt,ht,et]),St=reactExports.useCallback(Nt=>{if(Nt.stopPropagation(),At||Lt(!0),vt.current){const{clickPoint:Ot,origin:Wt,e1:Dt,e2:Et,normal:Pt,plane:zt}=vt.current,[en,Kt]=tt?.[et]||[void 0,void 0];ray$3.copy(Nt.ray),ray$3.intersectPlane(zt,intersection$3),ray$3.direction.negate(),ray$3.intersectPlane(zt,intersection$3);let nn=calculateAngle$1(Ot,intersection$3,Wt,Dt,Et),Zt=toDegrees$2(nn);Nt.shiftKey&&(Zt=Math.round(Zt/10)*10,nn=toRadians$2(Zt)),en!==void 0&&Kt!==void 0&&Kt-en<2*Math.PI?(nn=minimizeAngle$1(nn),nn=nn>Math.PI?nn-2*Math.PI:nn,nn=MathUtils.clamp(nn,en-Ft.current,Kt-Ft.current),mt.current=Ft.current+nn):(mt.current=minimizeAngle$1(Ft.current+nn),mt.current=mt.current>Math.PI?mt.current-2*Math.PI:mt.current),nt&&(Zt=toDegrees$2(mt.current),yt.current.innerText=`${Zt.toFixed(0)}º`),rotMatrix$1.makeRotationAxis(Pt,nn),posNew$1.copy(Wt).applyMatrix4(rotMatrix$1).sub(Wt).negate(),rotMatrix$1.setPosition(posNew$1),ct(rotMatrix$1)}},[nt,ct,At,tt,et]),Tt=reactExports.useCallback(Nt=>{nt&&(yt.current.style.display="none"),Nt.stopPropagation(),Ft.current=mt.current,vt.current=null,pt(),gt&&(gt.enabled=!0),Nt.target.releasePointerCapture(Nt.pointerId)},[nt,gt,pt]),Bt=reactExports.useCallback(Nt=>{Nt.stopPropagation(),Lt(!1)},[]),xt=reactExports.useMemo(()=>{const Nt=s.clone().normalize(),Ot=o.clone().normalize();return new Matrix4().makeBasis(Nt,Ot,Nt.clone().cross(Ot))},[s,o]),Ct=at?.65:ot*.65,kt=reactExports.useMemo(()=>{const Ot=[];for(let Wt=0;Wt<=32;Wt++){const Dt=Wt*(Math.PI/2)/32;Ot.push(new Vector3(Math.cos(Dt)*Ct,Math.sin(Dt)*Ct,0))}return Ot},[Ct]);return reactExports.createElement("group",{ref:Ut,onPointerDown:Rt,onPointerMove:St,onPointerUp:Tt,onPointerOut:Bt,matrix:xt,matrixAutoUpdate:!1},nt&&reactExports.createElement(Html,{position:[Ct,Ct,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})),reactExports.createElement(Line,{points:kt,lineWidth:st*4,visible:!1,userData:ft}),reactExports.createElement(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:kt,lineWidth:st,side:DoubleSide,color:At?ut:lt[et],opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))},decomposeIntoBasis$1=(s,o,et)=>{const tt=Math.abs(s.x)>=Math.abs(s.y)&&Math.abs(s.x)>=Math.abs(s.z)?0:Math.abs(s.y)>=Math.abs(s.x)&&Math.abs(s.y)>=Math.abs(s.z)?1:2,nt=[0,1,2].sort((ct,pt)=>Math.abs(o.getComponent(pt))-Math.abs(o.getComponent(ct))),rt=tt===nt[0]?nt[1]:nt[0],it=s.getComponent(tt),ot=s.getComponent(rt),st=o.getComponent(tt),at=o.getComponent(rt),lt=et.getComponent(tt),dt=(et.getComponent(rt)-lt*(ot/it))/(at-st*(ot/it));return[(lt-dt*st)/it,dt]},ray$2=new Ray$1,intersection$2=new Vector3,offsetMatrix$2=new Matrix4,PlaneSlider$1=({dir1:s,dir2:o,axis:et})=>{const{translation:tt,translationLimits:nt,annotations:rt,annotationsClass:it,depthTest:ot,scale:st,lineWidth:at,fixed:lt,axisColors:ut,hoveredColor:dt,opacity:ht,onDragStart:ct,onDrag:pt,onDragEnd:ft,userData:gt}=reactExports.useContext(context$2),yt=useThree(Dt=>Dt.controls),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(null),vt=reactExports.useRef(0),At=reactExports.useRef(0),[Lt,Rt]=reactExports.useState(!1),St=reactExports.useCallback(Dt=>{rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`,Ut.current.style.display="block"),Dt.stopPropagation();const Et=Dt.point.clone(),Pt=new Vector3().setFromMatrixPosition(Ft.current.matrixWorld),zt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,0).normalize(),en=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,1).normalize(),Kt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,2).normalize(),nn=new Plane().setFromNormalAndCoplanarPoint(Kt,Pt);mt.current={clickPoint:Et,e1:zt,e2:en,plane:nn},vt.current=tt.current[(et+1)%3],At.current=tt.current[(et+2)%3],ct({component:"Slider",axis:et,origin:Pt,directions:[zt,en,Kt]}),yt&&(yt.enabled=!1),Dt.target.setPointerCapture(Dt.pointerId)},[rt,yt,ct,et]),Tt=reactExports.useCallback(Dt=>{if(Dt.stopPropagation(),Lt||Rt(!0),mt.current){const{clickPoint:Et,e1:Pt,e2:zt,plane:en}=mt.current,[Kt,nn]=nt?.[(et+1)%3]||[void 0,void 0],[Zt,jt]=nt?.[(et+2)%3]||[void 0,void 0];ray$2.copy(Dt.ray),ray$2.intersectPlane(en,intersection$2),ray$2.direction.negate(),ray$2.intersectPlane(en,intersection$2),intersection$2.sub(Et);let[Vt,It]=decomposeIntoBasis$1(Pt,zt,intersection$2);Kt!==void 0&&(Vt=Math.max(Vt,Kt-vt.current)),nn!==void 0&&(Vt=Math.min(Vt,nn-vt.current)),Zt!==void 0&&(It=Math.max(It,Zt-At.current)),jt!==void 0&&(It=Math.min(It,jt-At.current)),tt.current[(et+1)%3]=vt.current+Vt,tt.current[(et+2)%3]=At.current+It,rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`),offsetMatrix$2.makeTranslation(Vt*Pt.x+It*zt.x,Vt*Pt.y+It*zt.y,Vt*Pt.z+It*zt.z),pt(offsetMatrix$2)}},[rt,pt,Lt,tt,nt,et]),Bt=reactExports.useCallback(Dt=>{rt&&(Ut.current.style.display="none"),Dt.stopPropagation(),mt.current=null,ft(),yt&&(yt.enabled=!0),Dt.target.releasePointerCapture(Dt.pointerId)},[rt,yt,ft]),xt=reactExports.useCallback(Dt=>{Dt.stopPropagation(),Rt(!1)},[]),Ct=reactExports.useMemo(()=>{const Dt=s.clone().normalize(),Et=o.clone().normalize();return new Matrix4().makeBasis(Dt,Et,Dt.clone().cross(Et))},[s,o]),kt=lt?1/7:st/7,Nt=lt?.225:st*.225,Ot=Lt?dt:ut[et],Wt=reactExports.useMemo(()=>[new Vector3(0,0,0),new Vector3(0,Nt,0),new Vector3(Nt,Nt,0),new Vector3(Nt,0,0),new Vector3(0,0,0)],[Nt]);return reactExports.createElement("group",{ref:Ft,matrix:Ct,matrixAutoUpdate:!1},rt&&reactExports.createElement(Html,{position:[0,0,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:it,ref:Ut})),reactExports.createElement("group",{position:[kt*1.7,kt*1.7,0]},reactExports.createElement("mesh",{visible:!0,onPointerDown:St,onPointerMove:Tt,onPointerUp:Bt,onPointerOut:xt,scale:Nt,userData:gt},reactExports.createElement("planeGeometry",null),reactExports.createElement("meshBasicMaterial",{transparent:!0,depthTest:ot,color:Ot,polygonOffset:!0,polygonOffsetFactor:-10,side:DoubleSide,fog:!1})),reactExports.createElement(Line,{position:[-Nt/2,-Nt/2,0],transparent:!0,depthTest:ot,points:Wt,lineWidth:at,color:Ot,opacity:ht,polygonOffset:!0,polygonOffsetFactor:-10,userData:gt,fog:!1})))},vec1$1=new Vector3,vec2$1=new Vector3,calculateOffset$1=(s,o,et,tt)=>{const nt=o.dot(o),rt=o.dot(s)-o.dot(et),it=o.dot(tt);return it===0?-rt/nt:(vec1$1.copy(tt).multiplyScalar(nt/it).sub(o),vec2$1.copy(tt).multiplyScalar(rt/it).add(et).sub(s),-vec1$1.dot(vec2$1)/vec1$1.dot(vec1$1))},upV$1=new Vector3(0,1,0),scaleV=new Vector3,scaleMatrix=new Matrix4,ScalingSphere=({direction:s,axis:o})=>{const{scaleLimits:et,annotations:tt,annotationsClass:nt,depthTest:rt,scale:it,lineWidth:ot,fixed:st,axisColors:at,hoveredColor:lt,opacity:ut,onDragStart:dt,onDrag:ht,onDragEnd:ct,userData:pt}=reactExports.useContext(context$2),ft=useThree(Wt=>Wt.size),gt=useThree(Wt=>Wt.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(1),vt=reactExports.useRef(1),At=reactExports.useRef(null),[Lt,Rt]=reactExports.useState(!1),St=st?1.2:1.2*it,Tt=reactExports.useCallback(Wt=>{tt&&(yt.current.innerText=`${vt.current.toFixed(2)}`,yt.current.style.display="block"),Wt.stopPropagation();const Dt=new Matrix4().extractRotation(Ut.current.matrixWorld),Et=Wt.point.clone(),Pt=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),zt=s.clone().applyMatrix4(Dt).normalize(),en=Ut.current.matrixWorld.clone(),Kt=en.clone().invert(),nn=st?1/calculateScaleFactor$1(Ut.current.getWorldPosition(vec1$1),it,Wt.camera,ft):1;At.current={clickPoint:Et,dir:zt,mPLG:en,mPLGInv:Kt,offsetMultiplier:nn},dt({component:"Sphere",axis:o,origin:Pt,directions:[zt]}),gt&&(gt.enabled=!1),Wt.target.setPointerCapture(Wt.pointerId)},[tt,gt,s,dt,o,st,it,ft]),Bt=reactExports.useCallback(Wt=>{if(Wt.stopPropagation(),Lt||Rt(!0),At.current){const{clickPoint:Dt,dir:Et,mPLG:Pt,mPLGInv:zt,offsetMultiplier:en}=At.current,[Kt,nn]=et?.[o]||[1e-5,void 0],jt=calculateOffset$1(Dt,Et,Wt.ray.origin,Wt.ray.direction)*en,Vt=st?jt:jt/it;let It=Math.pow(2,Vt*.2);Wt.shiftKey&&(It=Math.round(It*10)/10),It=Math.max(It,Kt/mt.current),nn!==void 0&&(It=Math.min(It,nn/mt.current)),vt.current=mt.current*It,Ft.current.position.set(0,St+jt,0),tt&&(yt.current.innerText=`${vt.current.toFixed(2)}`),scaleV.set(1,1,1),scaleV.setComponent(o,It),scaleMatrix.makeScale(scaleV.x,scaleV.y,scaleV.z).premultiply(Pt).multiply(zt),ht(scaleMatrix)}},[tt,St,ht,Lt,et,o]),xt=reactExports.useCallback(Wt=>{tt&&(yt.current.style.display="none"),Wt.stopPropagation(),mt.current=vt.current,At.current=null,Ft.current.position.set(0,St,0),ct(),gt&&(gt.enabled=!0),Wt.target.releasePointerCapture(Wt.pointerId)},[tt,gt,ct,St]),Ct=reactExports.useCallback(Wt=>{Wt.stopPropagation(),Rt(!1)},[]),{radius:kt,matrixL:Nt}=reactExports.useMemo(()=>{const Wt=st?ot/it*1.8:it/22.5,Dt=new Quaternion().setFromUnitVectors(upV$1,s.clone().normalize()),Et=new Matrix4().makeRotationFromQuaternion(Dt);return{radius:Wt,matrixL:Et}},[s,it,ot,st]),Ot=Lt?lt:at[o];return reactExports.createElement("group",{ref:Ut},reactExports.createElement("group",{matrix:Nt,matrixAutoUpdate:!1,onPointerDown:Tt,onPointerMove:Bt,onPointerUp:xt,onPointerOut:Ct},tt&&reactExports.createElement(Html,{position:[0,St/2,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:nt,ref:yt})),reactExports.createElement("mesh",{ref:Ft,position:[0,St,0],renderOrder:500,userData:pt},reactExports.createElement("sphereGeometry",{args:[kt,12,12]}),reactExports.createElement("meshBasicMaterial",{transparent:!0,depthTest:rt,color:Ot,opacity:ut,polygonOffset:!0,polygonOffsetFactor:-10}))))},mL0$1=new Matrix4,mW0$1=new Matrix4,mP$1=new Matrix4,mPInv$1=new Matrix4,mW$1=new Matrix4,mL$1=new Matrix4,mL0Inv$1=new Matrix4,mdL$1=new Matrix4,mG=new Matrix4,bb$1=new Box3,bbObj$1=new Box3,vCenter$1=new Vector3,vSize$1=new Vector3,vAnchorOffset$1=new Vector3,vPosition$1=new Vector3,vScale=new Vector3,xDir$1=new Vector3(1,0,0),yDir$1=new Vector3(0,1,0),zDir$1=new Vector3(0,0,1),PivotControls$1=reactExports.forwardRef(({matrix:s,onDragStart:o,onDrag:et,onDragEnd:tt,autoTransform:nt=!0,anchor:rt,disableAxes:it=!1,disableSliders:ot=!1,disableRotations:st=!1,disableScaling:at=!1,activeAxes:lt=[!0,!0,!0],offset:ut=[0,0,0],rotation:dt=[0,0,0],scale:ht=1,lineWidth:ct=4,fixed:pt=!1,translationLimits:ft,rotationLimits:gt,scaleLimits:yt,depthTest:Ut=!0,axisColors:Ft=["#ff2060","#20df80","#2080ff"],hoveredColor:mt="#ffff40",annotations:vt=!1,annotationsClass:At,opacity:Lt=1,visible:Rt=!0,userData:St,children:Tt,...Bt},xt)=>{const Ct=useThree(Kt=>Kt.invalidate),kt=reactExports.useRef(null),Nt=reactExports.useRef(null),Ot=reactExports.useRef(null),Wt=reactExports.useRef(null),Dt=reactExports.useRef([0,0,0]),Et=reactExports.useRef(new Vector3(1,1,1)),Pt=reactExports.useRef(new Vector3(1,1,1));reactExports.useLayoutEffect(()=>{rt&&(Wt.current.updateWorldMatrix(!0,!0),mPInv$1.copy(Wt.current.matrixWorld).invert(),bb$1.makeEmpty(),Wt.current.traverse(Kt=>{Kt.geometry&&(Kt.geometry.boundingBox||Kt.geometry.computeBoundingBox(),mL$1.copy(Kt.matrixWorld).premultiply(mPInv$1),bbObj$1.copy(Kt.geometry.boundingBox),bbObj$1.applyMatrix4(mL$1),bb$1.union(bbObj$1))}),vCenter$1.copy(bb$1.max).add(bb$1.min).multiplyScalar(.5),vSize$1.copy(bb$1.max).sub(bb$1.min).multiplyScalar(.5),vAnchorOffset$1.copy(vSize$1).multiply(new Vector3(...rt)).add(vCenter$1),vPosition$1.set(...ut).add(vAnchorOffset$1),Ot.current.position.copy(vPosition$1),Ct())});const zt=reactExports.useMemo(()=>({onDragStart:Kt=>{mL0$1.copy(Nt.current.matrix),mW0$1.copy(Nt.current.matrixWorld),o&&o(Kt),Ct()},onDrag:Kt=>{mP$1.copy(kt.current.matrixWorld),mPInv$1.copy(mP$1).invert(),mW$1.copy(mW0$1).premultiply(Kt),mL$1.copy(mW$1).premultiply(mPInv$1),mL0Inv$1.copy(mL0$1).invert(),mdL$1.copy(mL$1).multiply(mL0Inv$1),nt&&Nt.current.matrix.copy(mL$1),et&&et(mL$1,mdL$1,mW$1,Kt),Ct()},onDragEnd:()=>{tt&&tt(),Ct()},translation:Dt,translationLimits:ft,rotationLimits:gt,axisColors:Ft,hoveredColor:mt,opacity:Lt,scale:ht,lineWidth:ct,fixed:pt,depthTest:Ut,userData:St,annotations:vt,annotationsClass:At}),[o,et,tt,Dt,ft,gt,yt,Ut,ht,ct,pt,...Ft,mt,Lt,St,nt,vt,At]),en=new Vector3;return useFrame(Kt=>{if(pt){const nn=calculateScaleFactor$1(Ot.current.getWorldPosition(en),ht,Kt.camera,Kt.size);Et.current.setScalar(nn)}s&&s instanceof Matrix4&&(Nt.current.matrix=s),Nt.current.updateWorldMatrix(!0,!0),mG.makeRotationFromEuler(Ot.current.rotation).setPosition(Ot.current.position).premultiply(Nt.current.matrixWorld),Pt.current.setFromMatrixScale(mG),vScale.copy(Et.current).divide(Pt.current),(Math.abs(Ot.current.scale.x-vScale.x)>1e-4||Math.abs(Ot.current.scale.y-vScale.y)>1e-4||Math.abs(Ot.current.scale.z-vScale.z)>1e-4)&&(Ot.current.scale.copy(vScale),Kt.invalidate())}),reactExports.useImperativeHandle(xt,()=>Nt.current,[]),reactExports.createElement(context$2.Provider,{value:zt},reactExports.createElement("group",{ref:kt},reactExports.createElement("group",_extends$2({ref:Nt,matrix:s,matrixAutoUpdate:!1},Bt),reactExports.createElement("group",{visible:Rt,ref:Ot,position:ut,rotation:dt},!it&<[0]&&reactExports.createElement(AxisArrow$1,{axis:0,direction:xDir$1}),!it&<[1]&&reactExports.createElement(AxisArrow$1,{axis:1,direction:yDir$1}),!it&<[2]&&reactExports.createElement(AxisArrow$1,{axis:2,direction:zDir$1}),!ot&<[0]&<[1]&&reactExports.createElement(PlaneSlider$1,{axis:2,dir1:xDir$1,dir2:yDir$1}),!ot&<[0]&<[2]&&reactExports.createElement(PlaneSlider$1,{axis:1,dir1:zDir$1,dir2:xDir$1}),!ot&<[2]&<[1]&&reactExports.createElement(PlaneSlider$1,{axis:0,dir1:yDir$1,dir2:zDir$1}),!st&<[0]&<[1]&&reactExports.createElement(AxisRotator$1,{axis:2,dir1:xDir$1,dir2:yDir$1}),!st&<[0]&<[2]&&reactExports.createElement(AxisRotator$1,{axis:1,dir1:zDir$1,dir2:xDir$1}),!st&<[2]&<[1]&&reactExports.createElement(AxisRotator$1,{axis:0,dir1:yDir$1,dir2:zDir$1}),!at&<[0]&&reactExports.createElement(ScalingSphere,{axis:0,direction:xDir$1}),!at&<[1]&&reactExports.createElement(ScalingSphere,{axis:1,direction:yDir$1}),!at&<[2]&&reactExports.createElement(ScalingSphere,{axis:2,direction:zDir$1})),reactExports.createElement("group",{ref:Wt},Tt))))}),FormantColors={flagship:"#1C1E2D",silver:"#BAC4E2",white:"white",module:"#2D3855",steel01:"#282f45",steel02:"#3b4668",steel03:"#657197",red:"#EA719D",green:"#2EC495",blue:"#20A0FF",gradient01:["#FF72CC","#00E4FF"],mapColor:"#0b1224",occupiedColor:"#4f5f96",primary:"#729fda",critical:"#FF72CC",dark:"#0a0b10",offwhite:"#f8f9fc",blueice:"#f0f7fe",royalBlue:"#20a0ff",royalBluedark:"#256faf",greendark:"#2d8376",mint:"#64d7d4",mintdark:"#4a8d98",purple:"#a961e4",purpledark:"#564a94",reddark:"#7f5072",orange:"#f89973",orangedark:"#94645f",yellow:"#f9c36e",yellowdark:"#9a8261",rhenium:"#797DDB",mithril:"#76A7DC"};/** + */const MOUSE_BUTTON={LEFT:1,RIGHT:2,MIDDLE:4},ACTION=Object.freeze({NONE:0,ROTATE:1,TRUCK:2,OFFSET:4,DOLLY:8,ZOOM:16,TOUCH_ROTATE:32,TOUCH_TRUCK:64,TOUCH_OFFSET:128,TOUCH_DOLLY:256,TOUCH_ZOOM:512,TOUCH_DOLLY_TRUCK:1024,TOUCH_DOLLY_OFFSET:2048,TOUCH_DOLLY_ROTATE:4096,TOUCH_ZOOM_TRUCK:8192,TOUCH_ZOOM_OFFSET:16384,TOUCH_ZOOM_ROTATE:32768}),DOLLY_DIRECTION={NONE:0,IN:1,OUT:-1};function isPerspectiveCamera(s){return s.isPerspectiveCamera}function isOrthographicCamera(s){return s.isOrthographicCamera}const PI_2=Math.PI*2,PI_HALF=Math.PI/2,EPSILON$1=1e-5,DEG2RAD=Math.PI/180;function clamp$3(s,o,et){return Math.max(o,Math.min(et,s))}function approxZero(s,o=EPSILON$1){return Math.abs(s)0==ht>lt&&(ht=lt,et.value=(ht-lt)/rt),ht}function smoothDampVec3(s,o,et,tt,nt=1/0,rt,it){tt=Math.max(1e-4,tt);const ot=2/tt,st=ot*rt,at=1/(1+st+.48*st*st+.235*st*st*st);let lt=o.x,ut=o.y,dt=o.z,ht=s.x-lt,ct=s.y-ut,pt=s.z-dt;const ft=lt,gt=ut,yt=dt,Ut=nt*tt,Ft=Ut*Ut,mt=ht*ht+ct*ct+pt*pt;if(mt>Ft){const kt=Math.sqrt(mt);ht=ht/kt*Ut,ct=ct/kt*Ut,pt=pt/kt*Ut}lt=s.x-ht,ut=s.y-ct,dt=s.z-pt;const vt=(et.x+ot*ht)*rt,At=(et.y+ot*ct)*rt,Lt=(et.z+ot*pt)*rt;et.x=(et.x-ot*vt)*at,et.y=(et.y-ot*At)*at,et.z=(et.z-ot*Lt)*at,it.x=lt+(ht+vt)*at,it.y=ut+(ct+At)*at,it.z=dt+(pt+Lt)*at;const Rt=ft-s.x,St=gt-s.y,Tt=yt-s.z,Bt=it.x-ft,xt=it.y-gt,Ct=it.z-yt;return Rt*Bt+St*xt+Tt*Ct>0&&(it.x=ft,it.y=gt,it.z=yt,et.x=(it.x-ft)/rt,et.y=(it.y-gt)/rt,et.z=(it.z-yt)/rt),it}function extractClientCoordFromEvent(s,o){o.set(0,0),s.forEach(et=>{o.x+=et.clientX,o.y+=et.clientY}),o.x/=s.length,o.y/=s.length}function notSupportedInOrthographicCamera(s,o){return isOrthographicCamera(s)?(console.warn(`${o} is not supported in OrthographicCamera`),!0):!1}class EventDispatcher{constructor(){this._listeners={}}addEventListener(o,et){const tt=this._listeners;tt[o]===void 0&&(tt[o]=[]),tt[o].indexOf(et)===-1&&tt[o].push(et)}hasEventListener(o,et){const tt=this._listeners;return tt[o]!==void 0&&tt[o].indexOf(et)!==-1}removeEventListener(o,et){const nt=this._listeners[o];if(nt!==void 0){const rt=nt.indexOf(et);rt!==-1&&nt.splice(rt,1)}}removeAllEventListeners(o){if(!o){this._listeners={};return}Array.isArray(this._listeners[o])&&(this._listeners[o].length=0)}dispatchEvent(o){const tt=this._listeners[o.type];if(tt!==void 0){o.target=this;const nt=tt.slice(0);for(let rt=0,it=nt.length;rt{},this._enabled=!0,this._state=ACTION.NONE,this._viewport=null,this._changedDolly=0,this._changedZoom=0,this._hasRested=!0,this._boundaryEnclosesCamera=!1,this._needsUpdate=!0,this._updatedLastTime=!1,this._elementRect=new DOMRect,this._isDragging=!1,this._dragNeedsUpdate=!0,this._activePointers=[],this._lockedPointer=null,this._interactiveArea=new DOMRect(0,0,1,1),this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._isUserControllingOffset=!1,this._isUserControllingZoom=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._thetaVelocity={value:0},this._phiVelocity={value:0},this._radiusVelocity={value:0},this._targetVelocity=new THREE.Vector3,this._focalOffsetVelocity=new THREE.Vector3,this._zoomVelocity={value:0},this._truckInternal=(Ft,mt,vt)=>{let At,Lt;if(isPerspectiveCamera(this._camera)){const Rt=_v3A.copy(this._camera.position).sub(this._target),St=this._camera.getEffectiveFOV()*DEG2RAD,Tt=Rt.length()*Math.tan(St*.5);At=this.truckSpeed*Ft*Tt/this._elementRect.height,Lt=this.truckSpeed*mt*Tt/this._elementRect.height}else if(isOrthographicCamera(this._camera)){const Rt=this._camera;At=Ft*(Rt.right-Rt.left)/Rt.zoom/this._elementRect.width,Lt=mt*(Rt.top-Rt.bottom)/Rt.zoom/this._elementRect.height}else return;this.verticalDragToForward?(vt?this.setFocalOffset(this._focalOffsetEnd.x+At,this._focalOffsetEnd.y,this._focalOffsetEnd.z,!0):this.truck(At,0,!0),this.forward(-Lt,!0)):vt?this.setFocalOffset(this._focalOffsetEnd.x+At,this._focalOffsetEnd.y+Lt,this._focalOffsetEnd.z,!0):this.truck(At,Lt,!0)},this._rotateInternal=(Ft,mt)=>{const vt=PI_2*this.azimuthRotateSpeed*Ft/this._elementRect.height,At=PI_2*this.polarRotateSpeed*mt/this._elementRect.height;this.rotate(vt,At,!0)},this._dollyInternal=(Ft,mt,vt)=>{const At=Math.pow(.95,-Ft*this.dollySpeed),Lt=this._sphericalEnd.radius,Rt=this._sphericalEnd.radius*At,St=clamp$3(Rt,this.minDistance,this.maxDistance),Tt=St-Rt;this.infinityDolly&&this.dollyToCursor?this._dollyToNoClamp(Rt,!0):this.infinityDolly&&!this.dollyToCursor?(this.dollyInFixed(Tt,!0),this._dollyToNoClamp(St,!0)):this._dollyToNoClamp(St,!0),this.dollyToCursor&&(this._changedDolly+=(this.infinityDolly?Rt:St)-Lt,this._dollyControlCoord.set(mt,vt)),this._lastDollyDirection=Math.sign(-Ft)},this._zoomInternal=(Ft,mt,vt)=>{const At=Math.pow(.95,Ft*this.dollySpeed),Lt=this._zoom,Rt=this._zoom*At;this.zoomTo(Rt,!0),this.dollyToCursor&&(this._changedZoom+=Rt-Lt,this._dollyControlCoord.set(mt,vt))},typeof THREE>"u"&&console.error("camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information."),this._camera=o,this._yAxisUpSpace=new THREE.Quaternion().setFromUnitVectors(this._camera.up,_AXIS_Y),this._yAxisUpSpaceInverse=this._yAxisUpSpace.clone().invert(),this._state=ACTION.NONE,this._target=new THREE.Vector3,this._targetEnd=this._target.clone(),this._focalOffset=new THREE.Vector3,this._focalOffsetEnd=this._focalOffset.clone(),this._spherical=new THREE.Spherical().setFromVector3(_v3A.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace)),this._sphericalEnd=this._spherical.clone(),this._lastDistance=this._spherical.radius,this._zoom=this._camera.zoom,this._zoomEnd=this._zoom,this._lastZoom=this._zoom,this._nearPlaneCorners=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3],this._updateNearPlaneCorners(),this._boundary=new THREE.Box3(new THREE.Vector3(-1/0,-1/0,-1/0),new THREE.Vector3(1/0,1/0,1/0)),this._cameraUp0=this._camera.up.clone(),this._target0=this._target.clone(),this._position0=this._camera.position.clone(),this._zoom0=this._zoom,this._focalOffset0=this._focalOffset.clone(),this._dollyControlCoord=new THREE.Vector2,this.mouseButtons={left:ACTION.ROTATE,middle:ACTION.DOLLY,right:ACTION.TRUCK,wheel:isPerspectiveCamera(this._camera)?ACTION.DOLLY:isOrthographicCamera(this._camera)?ACTION.ZOOM:ACTION.NONE},this.touches={one:ACTION.TOUCH_ROTATE,two:isPerspectiveCamera(this._camera)?ACTION.TOUCH_DOLLY_TRUCK:isOrthographicCamera(this._camera)?ACTION.TOUCH_ZOOM_TRUCK:ACTION.NONE,three:ACTION.TOUCH_TRUCK};const tt=new THREE.Vector2,nt=new THREE.Vector2,rt=new THREE.Vector2,it=Ft=>{if(!this._enabled||!this._domElement)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const At=this._domElement.getBoundingClientRect(),Lt=Ft.clientX/At.width,Rt=Ft.clientY/At.height;if(Ltthis._interactiveArea.right||Rtthis._interactiveArea.bottom)return}const mt=Ft.pointerType!=="mouse"?null:(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE?MOUSE_BUTTON.MIDDLE:(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT?MOUSE_BUTTON.RIGHT:null;if(mt!==null){const At=this._findPointerByMouseButton(mt);At&&this._disposePointer(At)}if((Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT&&this._lockedPointer)return;const vt={pointerId:Ft.pointerId,clientX:Ft.clientX,clientY:Ft.clientY,deltaX:0,deltaY:0,mouseButton:mt};this._activePointers.push(vt),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.addEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.addEventListener("pointerup",lt),this._isDragging=!0,pt(Ft)},ot=Ft=>{if(!this._enabled||!this._domElement||this._lockedPointer)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const At=this._domElement.getBoundingClientRect(),Lt=Ft.clientX/At.width,Rt=Ft.clientY/At.height;if(Ltthis._interactiveArea.right||Rtthis._interactiveArea.bottom)return}const mt=(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE?MOUSE_BUTTON.MIDDLE:(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT?MOUSE_BUTTON.RIGHT:null;if(mt!==null){const At=this._findPointerByMouseButton(mt);At&&this._disposePointer(At)}const vt={pointerId:1,clientX:Ft.clientX,clientY:Ft.clientY,deltaX:0,deltaY:0,mouseButton:(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.MIDDLE:(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.RIGHT:null};this._activePointers.push(vt),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("mouseup",ut),this._domElement.ownerDocument.addEventListener("mousemove",at),this._domElement.ownerDocument.addEventListener("mouseup",ut),this._isDragging=!0,pt(Ft)},st=Ft=>{Ft.cancelable&&Ft.preventDefault();const mt=Ft.pointerId,vt=this._lockedPointer||this._findPointerById(mt);if(vt){if(vt.clientX=Ft.clientX,vt.clientY=Ft.clientY,vt.deltaX=Ft.movementX,vt.deltaY=Ft.movementY,this._state=0,Ft.pointerType==="touch")switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else(!this._isDragging&&this._lockedPointer||this._isDragging&&(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT)&&(this._state=this._state|this.mouseButtons.left),this._isDragging&&(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),this._isDragging&&(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right);ft()}},at=Ft=>{const mt=this._lockedPointer||this._findPointerById(1);mt&&(mt.clientX=Ft.clientX,mt.clientY=Ft.clientY,mt.deltaX=Ft.movementX,mt.deltaY=Ft.movementY,this._state=0,(this._lockedPointer||(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT)&&(this._state=this._state|this.mouseButtons.left),(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right),ft())},lt=Ft=>{const mt=this._findPointerById(Ft.pointerId);if(!(mt&&mt===this._lockedPointer)){if(mt&&this._disposePointer(mt),Ft.pointerType==="touch")switch(this._activePointers.length){case 0:this._state=ACTION.NONE;break;case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else this._state=ACTION.NONE;gt()}},ut=()=>{const Ft=this._findPointerById(1);Ft&&Ft===this._lockedPointer||(Ft&&this._disposePointer(Ft),this._state=ACTION.NONE,gt())};let dt=-1;const ht=Ft=>{if(!this._domElement||!this._enabled||this.mouseButtons.wheel===ACTION.NONE)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const Rt=this._domElement.getBoundingClientRect(),St=Ft.clientX/Rt.width,Tt=Ft.clientY/Rt.height;if(Stthis._interactiveArea.right||Ttthis._interactiveArea.bottom)return}if(Ft.preventDefault(),this.dollyToCursor||this.mouseButtons.wheel===ACTION.ROTATE||this.mouseButtons.wheel===ACTION.TRUCK){const Rt=performance.now();dt-Rt<1e3&&this._getClientRect(this._elementRect),dt=Rt}const mt=isMac?-1:-3,vt=Ft.deltaMode===1?Ft.deltaY/mt:Ft.deltaY/(mt*10),At=this.dollyToCursor?(Ft.clientX-this._elementRect.x)/this._elementRect.width*2-1:0,Lt=this.dollyToCursor?(Ft.clientY-this._elementRect.y)/this._elementRect.height*-2+1:0;switch(this.mouseButtons.wheel){case ACTION.ROTATE:{this._rotateInternal(Ft.deltaX,Ft.deltaY),this._isUserControllingRotate=!0;break}case ACTION.TRUCK:{this._truckInternal(Ft.deltaX,Ft.deltaY,!1),this._isUserControllingTruck=!0;break}case ACTION.OFFSET:{this._truckInternal(Ft.deltaX,Ft.deltaY,!0),this._isUserControllingOffset=!0;break}case ACTION.DOLLY:{this._dollyInternal(-vt,At,Lt),this._isUserControllingDolly=!0;break}case ACTION.ZOOM:{this._zoomInternal(-vt,At,Lt),this._isUserControllingZoom=!0;break}}this.dispatchEvent({type:"control"})},ct=Ft=>{if(!(!this._domElement||!this._enabled)){if(this.mouseButtons.right===sm.ACTION.NONE){const mt=Ft instanceof PointerEvent?Ft.pointerId:(Ft instanceof MouseEvent,0),vt=this._findPointerById(mt);vt&&this._disposePointer(vt),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("mouseup",ut);return}Ft.preventDefault()}},pt=Ft=>{if(!this._enabled)return;if(extractClientCoordFromEvent(this._activePointers,_v2),this._getClientRect(this._elementRect),tt.copy(_v2),nt.copy(_v2),this._activePointers.length>=2){const vt=_v2.x-this._activePointers[1].clientX,At=_v2.y-this._activePointers[1].clientY,Lt=Math.sqrt(vt*vt+At*At);rt.set(0,Lt);const Rt=(this._activePointers[0].clientX+this._activePointers[1].clientX)*.5,St=(this._activePointers[0].clientY+this._activePointers[1].clientY)*.5;nt.set(Rt,St)}if(this._state=0,!Ft)this._lockedPointer&&(this._state=this._state|this.mouseButtons.left);else if("pointerType"in Ft&&Ft.pointerType==="touch")switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else!this._lockedPointer&&(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT&&(this._state=this._state|this.mouseButtons.left),(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right);((this._state&ACTION.ROTATE)===ACTION.ROTATE||(this._state&ACTION.TOUCH_ROTATE)===ACTION.TOUCH_ROTATE||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._sphericalEnd.theta=this._spherical.theta,this._sphericalEnd.phi=this._spherical.phi,this._thetaVelocity.value=0,this._phiVelocity.value=0),((this._state&ACTION.TRUCK)===ACTION.TRUCK||(this._state&ACTION.TOUCH_TRUCK)===ACTION.TOUCH_TRUCK||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK)&&(this._targetEnd.copy(this._target),this._targetVelocity.set(0,0,0)),((this._state&ACTION.DOLLY)===ACTION.DOLLY||(this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE)&&(this._sphericalEnd.radius=this._spherical.radius,this._radiusVelocity.value=0),((this._state&ACTION.ZOOM)===ACTION.ZOOM||(this._state&ACTION.TOUCH_ZOOM)===ACTION.TOUCH_ZOOM||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._zoomEnd=this._zoom,this._zoomVelocity.value=0),((this._state&ACTION.OFFSET)===ACTION.OFFSET||(this._state&ACTION.TOUCH_OFFSET)===ACTION.TOUCH_OFFSET||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET)&&(this._focalOffsetEnd.copy(this._focalOffset),this._focalOffsetVelocity.set(0,0,0)),this.dispatchEvent({type:"controlstart"})},ft=()=>{if(!this._enabled||!this._dragNeedsUpdate)return;this._dragNeedsUpdate=!1,extractClientCoordFromEvent(this._activePointers,_v2);const mt=this._domElement&&document.pointerLockElement===this._domElement?this._lockedPointer||this._activePointers[0]:null,vt=mt?-mt.deltaX:nt.x-_v2.x,At=mt?-mt.deltaY:nt.y-_v2.y;if(nt.copy(_v2),((this._state&ACTION.ROTATE)===ACTION.ROTATE||(this._state&ACTION.TOUCH_ROTATE)===ACTION.TOUCH_ROTATE||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._rotateInternal(vt,At),this._isUserControllingRotate=!0),(this._state&ACTION.DOLLY)===ACTION.DOLLY||(this._state&ACTION.ZOOM)===ACTION.ZOOM){const Lt=this.dollyToCursor?(tt.x-this._elementRect.x)/this._elementRect.width*2-1:0,Rt=this.dollyToCursor?(tt.y-this._elementRect.y)/this._elementRect.height*-2+1:0,St=this.dollyDragInverted?-1:1;(this._state&ACTION.DOLLY)===ACTION.DOLLY?(this._dollyInternal(St*At*TOUCH_DOLLY_FACTOR,Lt,Rt),this._isUserControllingDolly=!0):(this._zoomInternal(St*At*TOUCH_DOLLY_FACTOR,Lt,Rt),this._isUserControllingZoom=!0)}if((this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_ZOOM)===ACTION.TOUCH_ZOOM||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE){const Lt=_v2.x-this._activePointers[1].clientX,Rt=_v2.y-this._activePointers[1].clientY,St=Math.sqrt(Lt*Lt+Rt*Rt),Tt=rt.y-St;rt.set(0,St);const Bt=this.dollyToCursor?(nt.x-this._elementRect.x)/this._elementRect.width*2-1:0,xt=this.dollyToCursor?(nt.y-this._elementRect.y)/this._elementRect.height*-2+1:0;(this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET?(this._dollyInternal(Tt*TOUCH_DOLLY_FACTOR,Bt,xt),this._isUserControllingDolly=!0):(this._zoomInternal(Tt*TOUCH_DOLLY_FACTOR,Bt,xt),this._isUserControllingZoom=!0)}((this._state&ACTION.TRUCK)===ACTION.TRUCK||(this._state&ACTION.TOUCH_TRUCK)===ACTION.TOUCH_TRUCK||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK)&&(this._truckInternal(vt,At,!1),this._isUserControllingTruck=!0),((this._state&ACTION.OFFSET)===ACTION.OFFSET||(this._state&ACTION.TOUCH_OFFSET)===ACTION.TOUCH_OFFSET||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET)&&(this._truckInternal(vt,At,!0),this._isUserControllingOffset=!0),this.dispatchEvent({type:"control"})},gt=()=>{extractClientCoordFromEvent(this._activePointers,_v2),nt.copy(_v2),this._dragNeedsUpdate=!1,(this._activePointers.length===0||this._activePointers.length===1&&this._activePointers[0]===this._lockedPointer)&&(this._isDragging=!1),this._activePointers.length===0&&this._domElement&&(this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.removeEventListener("mouseup",ut),this.dispatchEvent({type:"controlend"}))};this.lockPointer=()=>{!this._enabled||!this._domElement||(this.cancel(),this._lockedPointer={pointerId:-1,clientX:0,clientY:0,deltaX:0,deltaY:0,mouseButton:null},this._activePointers.push(this._lockedPointer),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.requestPointerLock(),this._domElement.ownerDocument.addEventListener("pointerlockchange",yt),this._domElement.ownerDocument.addEventListener("pointerlockerror",Ut),this._domElement.ownerDocument.addEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.addEventListener("pointerup",lt),pt())},this.unlockPointer=()=>{this._lockedPointer!==null&&(this._disposePointer(this._lockedPointer),this._lockedPointer=null),document.exitPointerLock(),this.cancel(),this._domElement&&(this._domElement.ownerDocument.removeEventListener("pointerlockchange",yt),this._domElement.ownerDocument.removeEventListener("pointerlockerror",Ut))};const yt=()=>{this._domElement&&this._domElement.ownerDocument.pointerLockElement===this._domElement||this.unlockPointer()},Ut=()=>{this.unlockPointer()};this._addAllEventListeners=Ft=>{this._domElement=Ft,this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none",this._domElement.addEventListener("pointerdown",it),isPointerEventsNotSupported&&this._domElement.addEventListener("mousedown",ot),this._domElement.addEventListener("pointercancel",lt),this._domElement.addEventListener("wheel",ht,{passive:!1}),this._domElement.addEventListener("contextmenu",ct)},this._removeAllEventListeners=()=>{this._domElement&&(this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect="",this._domElement.removeEventListener("pointerdown",it),this._domElement.removeEventListener("mousedown",ot),this._domElement.removeEventListener("pointercancel",lt),this._domElement.removeEventListener("wheel",ht,{passive:!1}),this._domElement.removeEventListener("contextmenu",ct),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.removeEventListener("mouseup",ut),this._domElement.ownerDocument.removeEventListener("pointerlockchange",yt),this._domElement.ownerDocument.removeEventListener("pointerlockerror",Ut))},this.cancel=()=>{this._state!==ACTION.NONE&&(this._state=ACTION.NONE,this._activePointers.length=0,gt())},et&&this.connect(et),this.update(0)}get camera(){return this._camera}set camera(o){this._camera=o,this.updateCameraUp(),this._camera.updateProjectionMatrix(),this._updateNearPlaneCorners(),this._needsUpdate=!0}get enabled(){return this._enabled}set enabled(o){this._enabled=o,this._domElement&&(o?(this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none"):(this.cancel(),this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect=""))}get active(){return!this._hasRested}get currentAction(){return this._state}get distance(){return this._spherical.radius}set distance(o){this._spherical.radius===o&&this._sphericalEnd.radius===o||(this._spherical.radius=o,this._sphericalEnd.radius=o,this._needsUpdate=!0)}get azimuthAngle(){return this._spherical.theta}set azimuthAngle(o){this._spherical.theta===o&&this._sphericalEnd.theta===o||(this._spherical.theta=o,this._sphericalEnd.theta=o,this._needsUpdate=!0)}get polarAngle(){return this._spherical.phi}set polarAngle(o){this._spherical.phi===o&&this._sphericalEnd.phi===o||(this._spherical.phi=o,this._sphericalEnd.phi=o,this._needsUpdate=!0)}get boundaryEnclosesCamera(){return this._boundaryEnclosesCamera}set boundaryEnclosesCamera(o){this._boundaryEnclosesCamera=o,this._needsUpdate=!0}set interactiveArea(o){this._interactiveArea.width=clamp$3(o.width,0,1),this._interactiveArea.height=clamp$3(o.height,0,1),this._interactiveArea.x=clamp$3(o.x,0,1-this._interactiveArea.width),this._interactiveArea.y=clamp$3(o.y,0,1-this._interactiveArea.height)}addEventListener(o,et){super.addEventListener(o,et)}removeEventListener(o,et){super.removeEventListener(o,et)}rotate(o,et,tt=!1){return this.rotateTo(this._sphericalEnd.theta+o,this._sphericalEnd.phi+et,tt)}rotateAzimuthTo(o,et=!1){return this.rotateTo(o,this._sphericalEnd.phi,et)}rotatePolarTo(o,et=!1){return this.rotateTo(this._sphericalEnd.theta,o,et)}rotateTo(o,et,tt=!1){this._isUserControllingRotate=!1;const nt=clamp$3(o,this.minAzimuthAngle,this.maxAzimuthAngle),rt=clamp$3(et,this.minPolarAngle,this.maxPolarAngle);this._sphericalEnd.theta=nt,this._sphericalEnd.phi=rt,this._sphericalEnd.makeSafe(),this._needsUpdate=!0,tt||(this._spherical.theta=this._sphericalEnd.theta,this._spherical.phi=this._sphericalEnd.phi);const it=!tt||approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold);return this._createOnRestPromise(it)}dolly(o,et=!1){return this.dollyTo(this._sphericalEnd.radius-o,et)}dollyTo(o,et=!1){return this._isUserControllingDolly=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0,this._dollyToNoClamp(clamp$3(o,this.minDistance,this.maxDistance),et)}_dollyToNoClamp(o,et=!1){const tt=this._sphericalEnd.radius;if(this.colliderMeshes.length>=1){const it=this._collisionTest(),ot=approxEquals(it,this._spherical.radius);if(!(tt>o)&&ot)return Promise.resolve();this._sphericalEnd.radius=Math.min(o,it)}else this._sphericalEnd.radius=o;this._needsUpdate=!0,et||(this._spherical.radius=this._sphericalEnd.radius);const rt=!et||approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(rt)}dollyInFixed(o,et=!1){this._targetEnd.add(this._getCameraDirection(_cameraDirection).multiplyScalar(o)),et||this._target.copy(this._targetEnd);const tt=!et||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(tt)}zoom(o,et=!1){return this.zoomTo(this._zoomEnd+o,et)}zoomTo(o,et=!1){this._isUserControllingZoom=!1,this._zoomEnd=clamp$3(o,this.minZoom,this.maxZoom),this._needsUpdate=!0,et||(this._zoom=this._zoomEnd);const tt=!et||approxEquals(this._zoom,this._zoomEnd,this.restThreshold);return this._changedZoom=0,this._createOnRestPromise(tt)}pan(o,et,tt=!1){return console.warn("`pan` has been renamed to `truck`"),this.truck(o,et,tt)}truck(o,et,tt=!1){this._camera.updateMatrix(),_xColumn.setFromMatrixColumn(this._camera.matrix,0),_yColumn.setFromMatrixColumn(this._camera.matrix,1),_xColumn.multiplyScalar(o),_yColumn.multiplyScalar(-et);const nt=_v3A.copy(_xColumn).add(_yColumn),rt=_v3B.copy(this._targetEnd).add(nt);return this.moveTo(rt.x,rt.y,rt.z,tt)}forward(o,et=!1){_v3A.setFromMatrixColumn(this._camera.matrix,0),_v3A.crossVectors(this._camera.up,_v3A),_v3A.multiplyScalar(o);const tt=_v3B.copy(this._targetEnd).add(_v3A);return this.moveTo(tt.x,tt.y,tt.z,et)}elevate(o,et=!1){return _v3A.copy(this._camera.up).multiplyScalar(o),this.moveTo(this._targetEnd.x+_v3A.x,this._targetEnd.y+_v3A.y,this._targetEnd.z+_v3A.z,et)}moveTo(o,et,tt,nt=!1){this._isUserControllingTruck=!1;const rt=_v3A.set(o,et,tt).sub(this._targetEnd);this._encloseToBoundary(this._targetEnd,rt,this.boundaryFriction),this._needsUpdate=!0,nt||this._target.copy(this._targetEnd);const it=!nt||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(it)}lookInDirectionOf(o,et,tt,nt=!1){const ot=_v3A.set(o,et,tt).sub(this._targetEnd).normalize().multiplyScalar(-this._sphericalEnd.radius);return this.setPosition(ot.x,ot.y,ot.z,nt)}fitToBox(o,et,{cover:tt=!1,paddingLeft:nt=0,paddingRight:rt=0,paddingBottom:it=0,paddingTop:ot=0}={}){const st=[],at=o.isBox3?_box3A.copy(o):_box3A.setFromObject(o);at.isEmpty()&&(console.warn("camera-controls: fitTo() cannot be used with an empty box. Aborting"),Promise.resolve());const lt=roundToStep(this._sphericalEnd.theta,PI_HALF),ut=roundToStep(this._sphericalEnd.phi,PI_HALF);st.push(this.rotateTo(lt,ut,et));const dt=_v3A.setFromSpherical(this._sphericalEnd).normalize(),ht=_quaternionA.setFromUnitVectors(dt,_AXIS_Z),ct=approxEquals(Math.abs(dt.y),1);ct&&ht.multiply(_quaternionB.setFromAxisAngle(_AXIS_Y,lt)),ht.multiply(this._yAxisUpSpaceInverse);const pt=_box3B.makeEmpty();_v3B.copy(at.min).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.min).setX(at.max.x).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.min).setY(at.max.y).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).setZ(at.min.z).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.min).setZ(at.max.z).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).setY(at.min.y).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).setX(at.min.x).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).applyQuaternion(ht),pt.expandByPoint(_v3B),pt.min.x-=nt,pt.min.y-=it,pt.max.x+=rt,pt.max.y+=ot,ht.setFromUnitVectors(_AXIS_Z,dt),ct&&ht.premultiply(_quaternionB.invert()),ht.premultiply(this._yAxisUpSpace);const ft=pt.getSize(_v3A),gt=pt.getCenter(_v3B).applyQuaternion(ht);if(isPerspectiveCamera(this._camera)){const yt=this.getDistanceToFitBox(ft.x,ft.y,ft.z,tt);st.push(this.moveTo(gt.x,gt.y,gt.z,et)),st.push(this.dollyTo(yt,et)),st.push(this.setFocalOffset(0,0,0,et))}else if(isOrthographicCamera(this._camera)){const yt=this._camera,Ut=yt.right-yt.left,Ft=yt.top-yt.bottom,mt=tt?Math.max(Ut/ft.x,Ft/ft.y):Math.min(Ut/ft.x,Ft/ft.y);st.push(this.moveTo(gt.x,gt.y,gt.z,et)),st.push(this.zoomTo(mt,et)),st.push(this.setFocalOffset(0,0,0,et))}return Promise.all(st)}fitToSphere(o,et){const tt=[],rt=o instanceof THREE.Sphere?_sphere.copy(o):sm.createBoundingSphere(o,_sphere);if(tt.push(this.moveTo(rt.center.x,rt.center.y,rt.center.z,et)),isPerspectiveCamera(this._camera)){const it=this.getDistanceToFitSphere(rt.radius);tt.push(this.dollyTo(it,et))}else if(isOrthographicCamera(this._camera)){const it=this._camera.right-this._camera.left,ot=this._camera.top-this._camera.bottom,st=2*rt.radius,at=Math.min(it/st,ot/st);tt.push(this.zoomTo(at,et))}return tt.push(this.setFocalOffset(0,0,0,et)),Promise.all(tt)}setLookAt(o,et,tt,nt,rt,it,ot=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0;const st=_v3B.set(nt,rt,it),at=_v3A.set(o,et,tt);this._targetEnd.copy(st),this._sphericalEnd.setFromVector3(at.sub(st).applyQuaternion(this._yAxisUpSpace)),this.normalizeRotations(),this._needsUpdate=!0,ot||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));const lt=!ot||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold)&&approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(lt)}lerpLookAt(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0;const pt=_v3A.set(nt,rt,it),ft=_v3B.set(o,et,tt);_sphericalA.setFromVector3(ft.sub(pt).applyQuaternion(this._yAxisUpSpace));const gt=_v3C.set(lt,ut,dt),yt=_v3B.set(ot,st,at);_sphericalB.setFromVector3(yt.sub(gt).applyQuaternion(this._yAxisUpSpace)),this._targetEnd.copy(pt.lerp(gt,ht));const Ut=_sphericalB.theta-_sphericalA.theta,Ft=_sphericalB.phi-_sphericalA.phi,mt=_sphericalB.radius-_sphericalA.radius;this._sphericalEnd.set(_sphericalA.radius+mt*ht,_sphericalA.phi+Ft*ht,_sphericalA.theta+Ut*ht),this.normalizeRotations(),this._needsUpdate=!0,ct||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));const vt=!ct||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold)&&approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(vt)}setPosition(o,et,tt,nt=!1){return this.setLookAt(o,et,tt,this._targetEnd.x,this._targetEnd.y,this._targetEnd.z,nt)}setTarget(o,et,tt,nt=!1){const rt=this.getPosition(_v3A),it=this.setLookAt(rt.x,rt.y,rt.z,o,et,tt,nt);return this._sphericalEnd.phi=clamp$3(this._sphericalEnd.phi,this.minPolarAngle,this.maxPolarAngle),it}setFocalOffset(o,et,tt,nt=!1){this._isUserControllingOffset=!1,this._focalOffsetEnd.set(o,et,tt),this._needsUpdate=!0,nt||this._focalOffset.copy(this._focalOffsetEnd);const rt=!nt||approxEquals(this._focalOffset.x,this._focalOffsetEnd.x,this.restThreshold)&&approxEquals(this._focalOffset.y,this._focalOffsetEnd.y,this.restThreshold)&&approxEquals(this._focalOffset.z,this._focalOffsetEnd.z,this.restThreshold);return this._createOnRestPromise(rt)}setOrbitPoint(o,et,tt){this._camera.updateMatrixWorld(),_xColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,0),_yColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,1),_zColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,2);const nt=_v3A.set(o,et,tt),rt=nt.distanceTo(this._camera.position),it=nt.sub(this._camera.position);_xColumn.multiplyScalar(it.x),_yColumn.multiplyScalar(it.y),_zColumn.multiplyScalar(it.z),_v3A.copy(_xColumn).add(_yColumn).add(_zColumn),_v3A.z=_v3A.z+rt,this.dollyTo(rt,!1),this.setFocalOffset(-_v3A.x,_v3A.y,-_v3A.z,!1),this.moveTo(o,et,tt,!1)}setBoundary(o){if(!o){this._boundary.min.set(-1/0,-1/0,-1/0),this._boundary.max.set(1/0,1/0,1/0),this._needsUpdate=!0;return}this._boundary.copy(o),this._boundary.clampPoint(this._targetEnd,this._targetEnd),this._needsUpdate=!0}setViewport(o,et,tt,nt){if(o===null){this._viewport=null;return}this._viewport=this._viewport||new THREE.Vector4,typeof o=="number"?this._viewport.set(o,et,tt,nt):this._viewport.copy(o)}getDistanceToFitBox(o,et,tt,nt=!1){if(notSupportedInOrthographicCamera(this._camera,"getDistanceToFitBox"))return this._spherical.radius;const rt=o/et,it=this._camera.getEffectiveFOV()*DEG2RAD,ot=this._camera.aspect;return((nt?rt>ot:rtet.pointerId===o)}_findPointerByMouseButton(o){return this._activePointers.find(et=>et.mouseButton===o)}_disposePointer(o){this._activePointers.splice(this._activePointers.indexOf(o),1)}_encloseToBoundary(o,et,tt){const nt=et.lengthSq();if(nt===0)return o;const rt=_v3B.copy(et).add(o),ot=this._boundary.clampPoint(rt,_v3C).sub(rt),st=ot.lengthSq();if(st===0)return o.add(et);if(st===nt)return o;if(tt===0)return o.add(et).add(ot);{const at=1+tt*st/et.dot(ot);return o.add(_v3B.copy(et).multiplyScalar(at)).add(ot.multiplyScalar(1-tt))}}_updateNearPlaneCorners(){if(isPerspectiveCamera(this._camera)){const o=this._camera,et=o.near,tt=o.getEffectiveFOV()*DEG2RAD,nt=Math.tan(tt*.5)*et,rt=nt*o.aspect;this._nearPlaneCorners[0].set(-rt,-nt,0),this._nearPlaneCorners[1].set(rt,-nt,0),this._nearPlaneCorners[2].set(rt,nt,0),this._nearPlaneCorners[3].set(-rt,nt,0)}else if(isOrthographicCamera(this._camera)){const o=this._camera,et=1/o.zoom,tt=o.left*et,nt=o.right*et,rt=o.top*et,it=o.bottom*et;this._nearPlaneCorners[0].set(tt,rt,0),this._nearPlaneCorners[1].set(nt,rt,0),this._nearPlaneCorners[2].set(nt,it,0),this._nearPlaneCorners[3].set(tt,it,0)}}_collisionTest(){let o=1/0;if(!(this.colliderMeshes.length>=1)||notSupportedInOrthographicCamera(this._camera,"_collisionTest"))return o;const tt=this._getTargetDirection(_cameraDirection);_rotationMatrix.lookAt(_ORIGIN,tt,this._camera.up);for(let nt=0;nt<4;nt++){const rt=_v3B.copy(this._nearPlaneCorners[nt]);rt.applyMatrix4(_rotationMatrix);const it=_v3C.addVectors(this._target,rt);_raycaster.set(it,tt),_raycaster.far=this._spherical.radius+1;const ot=_raycaster.intersectObjects(this.colliderMeshes);ot.length!==0&&ot[0].distance{const tt=()=>{this.removeEventListener("rest",tt),et()};this.addEventListener("rest",tt)}))}_addAllEventListeners(o){}_removeAllEventListeners(){}get dampingFactor(){return console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead."),0}set dampingFactor(o){console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead.")}get draggingDampingFactor(){return console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead."),0}set draggingDampingFactor(o){console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.")}static createBoundingSphere(o,et=new THREE.Sphere){const tt=et,nt=tt.center;_box3A.makeEmpty(),o.traverseVisible(it=>{it.isMesh&&_box3A.expandByObject(it)}),_box3A.getCenter(nt);let rt=0;return o.traverseVisible(it=>{if(!it.isMesh)return;const ot=it,st=ot.geometry.clone();st.applyMatrix4(ot.matrixWorld);const lt=st.attributes.position;for(let ut=0,dt=lt.count;ut{reactExports.useMemo(()=>{const mt={Box3,MathUtils:{clamp:MathUtils.clamp},Matrix4,Quaternion,Raycaster,Sphere:Sphere$1,Spherical,Vector2,Vector3,Vector4};CameraControls$1.install({THREE:mt}),extend({CameraControlsImpl:CameraControls$1})},[]);const{camera:et,domElement:tt,makeDefault:nt,onStart:rt,onEnd:it,onChange:ot,regress:st,...at}=s,lt=useThree(mt=>mt.camera),ut=useThree(mt=>mt.gl),dt=useThree(mt=>mt.invalidate),ht=useThree(mt=>mt.events),ct=useThree(mt=>mt.setEvents),pt=useThree(mt=>mt.set),ft=useThree(mt=>mt.get),gt=useThree(mt=>mt.performance),yt=et||lt,Ut=tt||ht.connected||ut.domElement,Ft=reactExports.useMemo(()=>new CameraControls$1(yt),[yt]);return useFrame((mt,vt)=>{Ft.enabled&&Ft.update(vt)},-1),reactExports.useEffect(()=>(Ft.connect(Ut),()=>void Ft.disconnect()),[Ut,Ft]),reactExports.useEffect(()=>{const mt=Lt=>{dt(),st&>.regress(),ot&&ot(Lt)},vt=Lt=>{rt&&rt(Lt)},At=Lt=>{it&&it(Lt)};return Ft.addEventListener("update",mt),Ft.addEventListener("controlstart",vt),Ft.addEventListener("controlend",At),Ft.addEventListener("control",mt),Ft.addEventListener("transitionstart",mt),Ft.addEventListener("wake",mt),()=>{Ft.removeEventListener("update",mt),Ft.removeEventListener("controlstart",vt),Ft.removeEventListener("controlend",At),Ft.removeEventListener("control",mt),Ft.removeEventListener("transitionstart",mt),Ft.removeEventListener("wake",mt)}},[Ft,rt,it,dt,ct,st,ot]),reactExports.useEffect(()=>{if(nt){const mt=ft().controls;return pt({controls:Ft}),()=>pt({controls:mt})}},[nt,Ft]),reactExports.createElement("primitive",_extends$2({ref:o,object:Ft},at))});function useHelper(s,o,...et){const tt=reactExports.useRef(),nt=useThree(rt=>rt.scene);return reactExports.useLayoutEffect(()=>{let rt;if(s&&s!=null&&s.current&&o&&(tt.current=rt=new o(s.current,...et)),rt)return rt.traverse(it=>it.raycast=()=>null),nt.add(rt),()=>{tt.current=void 0,nt.remove(rt),rt.dispose==null||rt.dispose()}},[nt,o,s,...et]),useFrame(()=>{var rt;return void((rt=tt.current)==null||rt.update==null?void 0:rt.update())}),tt}var stats_min={exports:{}};(function(s,o){(function(et,tt){s.exports=tt()})(commonjsGlobal$2,function(){var et=function(){function tt(ht){return it.appendChild(ht.dom),ht}function nt(ht){for(var ct=0;ctst+1e3&&(lt.update(1e3*at/(ht-st),100),st=ht,at=0,dt)){var ct=performance.memory;dt.update(ct.usedJSHeapSize/1048576,ct.jsHeapSizeLimit/1048576)}return ht},update:function(){ot=this.end()},domElement:it,setMode:nt}};return et.Panel=function(tt,nt,rt){var it=1/0,ot=0,st=Math.round,at=st(window.devicePixelRatio||1),lt=80*at,ut=48*at,dt=3*at,ht=2*at,ct=3*at,pt=15*at,ft=74*at,gt=30*at,yt=document.createElement("canvas");yt.width=lt,yt.height=ut,yt.style.cssText="width:80px;height:48px";var Ut=yt.getContext("2d");return Ut.font="bold "+9*at+"px Helvetica,Arial,sans-serif",Ut.textBaseline="top",Ut.fillStyle=rt,Ut.fillRect(0,0,lt,ut),Ut.fillStyle=nt,Ut.fillText(tt,dt,ht),Ut.fillRect(ct,pt,ft,gt),Ut.fillStyle=rt,Ut.globalAlpha=.9,Ut.fillRect(ct,pt,ft,gt),{dom:yt,update:function(Ft,mt){it=Math.min(it,Ft),ot=Math.max(ot,Ft),Ut.fillStyle=rt,Ut.globalAlpha=1,Ut.fillRect(0,0,lt,pt),Ut.fillStyle=nt,Ut.fillText(st(Ft)+" "+tt+" ("+st(it)+"-"+st(ot)+")",dt,ht),Ut.drawImage(yt,ct+at,pt,ft-at,gt,ct,pt,ft-at,gt),Ut.fillRect(ct+ft-at,pt,at,gt),Ut.fillStyle=rt,Ut.globalAlpha=.9,Ut.fillRect(ct+ft-at,pt,at,st((1-Ft/mt)*gt))}}},et})})(stats_min);var stats_minExports=stats_min.exports;const StatsImpl=getDefaultExportFromCjs$1(stats_minExports);function call$1(s,o){typeof s=="function"?s(o):s!=null&&(s.current=o)}function useEffectfulState(s,o=[],et){const[tt,nt]=reactExports.useState();return reactExports.useLayoutEffect(()=>{const rt=s();return nt(rt),call$1(et,rt),()=>call$1(et,null)},o),tt}function Stats({showPanel:s=0,className:o,parent:et}){const tt=useEffectfulState(()=>new StatsImpl,[]);return reactExports.useEffect(()=>{if(tt){const nt=et&&et.current||document.body;tt.showPanel(s),nt?.appendChild(tt.dom);const rt=(o??"").split(" ").filter(st=>st);rt.length&&tt.dom.classList.add(...rt);const it=addEffect(()=>tt.begin()),ot=addAfterEffect(()=>tt.end());return()=>{rt.length&&tt.dom.classList.remove(...rt),nt?.removeChild(tt.dom),it(),ot()}}},[et,tt,o,s]),null}function create(s,o){const et=s+"Geometry";return reactExports.forwardRef(({args:tt,children:nt,...rt},it)=>{const ot=reactExports.useRef(null);return reactExports.useImperativeHandle(it,()=>ot.current),reactExports.useLayoutEffect(()=>void o?.(ot.current)),reactExports.createElement("mesh",_extends$2({ref:ot},rt),reactExports.createElement(et,{attach:"geometry",args:tt}),nt)})}const Box=create("box"),Sphere=create("sphere");let getRandomValues;const rnds8=new Uint8Array(16);function rng(){if(!getRandomValues&&(getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!getRandomValues))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}const byteToHex=[];for(let s=0;s<256;++s)byteToHex.push((s+256).toString(16).slice(1));function unsafeStringify(s,o=0){return byteToHex[s[o+0]]+byteToHex[s[o+1]]+byteToHex[s[o+2]]+byteToHex[s[o+3]]+"-"+byteToHex[s[o+4]]+byteToHex[s[o+5]]+"-"+byteToHex[s[o+6]]+byteToHex[s[o+7]]+"-"+byteToHex[s[o+8]]+byteToHex[s[o+9]]+"-"+byteToHex[s[o+10]]+byteToHex[s[o+11]]+byteToHex[s[o+12]]+byteToHex[s[o+13]]+byteToHex[s[o+14]]+byteToHex[s[o+15]]}let _nodeId,_clockseq,_lastMSecs=0,_lastNSecs=0;function v1(s,o,et){let tt=o&&et||0;const nt=o||new Array(16);s=s||{};let rt=s.node||_nodeId,it=s.clockseq!==void 0?s.clockseq:_clockseq;if(rt==null||it==null){const dt=s.random||(s.rng||rng)();rt==null&&(rt=_nodeId=[dt[0]|1,dt[1],dt[2],dt[3],dt[4],dt[5]]),it==null&&(it=_clockseq=(dt[6]<<8|dt[7])&16383)}let ot=s.msecs!==void 0?s.msecs:Date.now(),st=s.nsecs!==void 0?s.nsecs:_lastNSecs+1;const at=ot-_lastMSecs+(st-_lastNSecs)/1e4;if(at<0&&s.clockseq===void 0&&(it=it+1&16383),(at<0||ot>_lastMSecs)&&s.nsecs===void 0&&(st=0),st>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=ot,_lastNSecs=st,_clockseq=it,ot+=122192928e5;const lt=((ot&268435455)*1e4+st)%4294967296;nt[tt++]=lt>>>24&255,nt[tt++]=lt>>>16&255,nt[tt++]=lt>>>8&255,nt[tt++]=lt&255;const ut=ot/4294967296*1e4&268435455;nt[tt++]=ut>>>8&255,nt[tt++]=ut&255,nt[tt++]=ut>>>24&15|16,nt[tt++]=ut>>>16&255,nt[tt++]=it>>>8|128,nt[tt++]=it&255;for(let dt=0;dt<6;++dt)nt[tt+dt]=rt[dt];return o||unsafeStringify(nt)}const randomUUID=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),native={randomUUID};function v4(s,o,et){if(native.randomUUID&&!o&&!s)return native.randomUUID();s=s||{};const tt=s.random||(s.rng||rng)();if(tt[6]=tt[6]&15|64,tt[8]=tt[8]&63|128,o){et=et||0;for(let nt=0;nt<16;++nt)o[et+nt]=tt[nt];return o}return unsafeStringify(tt)}const context$2=reactExports.createContext(null),vec1$2=new Vector3,vec2$2=new Vector3,calculateOffset$2=(s,o,et,tt)=>{const nt=o.dot(o),rt=o.dot(s)-o.dot(et),it=o.dot(tt);return it===0?-rt/nt:(vec1$2.copy(tt).multiplyScalar(nt/it).sub(o),vec2$2.copy(tt).multiplyScalar(rt/it).add(et).sub(s),-vec1$2.dot(vec2$2)/vec1$2.dot(vec1$2))},upV$2=new Vector3(0,1,0),offsetMatrix$3=new Matrix4,AxisArrow$1=({direction:s,axis:o})=>{const{translation:et,translationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context$2),gt=useThree(Ot=>Ot.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(0),[vt,At]=reactExports.useState(!1),Lt=reactExports.useCallback(Ot=>{nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`,yt.current.style.display="block"),Ot.stopPropagation();const Jt=new Matrix4().extractRotation(Ut.current.matrixWorld),Dt=Ot.point.clone(),Et=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Pt=s.clone().applyMatrix4(Jt).normalize();Ft.current={clickPoint:Dt,dir:Pt},mt.current=et.current[o],ht({component:"Arrow",axis:o,origin:Et,directions:[Pt]}),gt&&(gt.enabled=!1),Ot.target.setPointerCapture(Ot.pointerId)},[nt,s,gt,ht,et,o]),Rt=reactExports.useCallback(Ot=>{if(Ot.stopPropagation(),vt||At(!0),Ft.current){const{clickPoint:Jt,dir:Dt}=Ft.current,[Et,Pt]=tt?.[o]||[void 0,void 0];let zt=calculateOffset$2(Jt,Dt,Ot.ray.origin,Ot.ray.direction);Et!==void 0&&(zt=Math.max(zt,Et-mt.current)),Pt!==void 0&&(zt=Math.min(zt,Pt-mt.current)),et.current[o]=mt.current+zt,nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`),offsetMatrix$3.makeTranslation(Dt.x*zt,Dt.y*zt,Dt.z*zt),ct(offsetMatrix$3)}},[nt,ct,vt,et,tt,o]),St=reactExports.useCallback(Ot=>{nt&&(yt.current.style.display="none"),Ot.stopPropagation(),Ft.current=null,pt(),gt&&(gt.enabled=!0),Ot.target.releasePointerCapture(Ot.pointerId)},[nt,gt,pt]),Tt=reactExports.useCallback(Ot=>{Ot.stopPropagation(),At(!1)},[]),{cylinderLength:Bt,coneWidth:xt,coneLength:Ct,matrixL:kt}=reactExports.useMemo(()=>{const Ot=at?st/ot*1.6:ot/20,Jt=at?.2:ot/5,Dt=at?1-Jt:ot-Jt,Et=new Quaternion().setFromUnitVectors(upV$2,s.clone().normalize()),Pt=new Matrix4().makeRotationFromQuaternion(Et);return{cylinderLength:Dt,coneWidth:Ot,coneLength:Jt,matrixL:Pt}},[s,ot,st,at]),Nt=vt?ut:lt[o];return reactExports.createElement("group",{ref:Ut},reactExports.createElement("group",{matrix:kt,matrixAutoUpdate:!1,onPointerDown:Lt,onPointerMove:Rt,onPointerUp:St,onPointerOut:Tt},nt&&reactExports.createElement(Html,{position:[0,-Ct,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})),reactExports.createElement("mesh",{visible:!1,position:[0,(Bt+Ct)/2,0],userData:ft},reactExports.createElement("cylinderGeometry",{args:[xt*1.4,xt*1.4,Bt+Ct,8,1]})),reactExports.createElement(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:[0,0,0,0,Bt,0],lineWidth:st,side:DoubleSide,color:Nt,opacity:dt,polygonOffset:!0,renderOrder:1,polygonOffsetFactor:-10,fog:!1}),reactExports.createElement("mesh",{raycast:()=>null,position:[0,Bt+Ct/2,0],renderOrder:500},reactExports.createElement("coneGeometry",{args:[xt,Ct,24,1]}),reactExports.createElement("meshBasicMaterial",{transparent:!0,depthTest:it,color:Nt,opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))))},clickDir$1=new Vector3,intersectionDir$1=new Vector3,toDegrees$2=s=>s*180/Math.PI,toRadians$2=s=>s*Math.PI/180,calculateAngle$1=(s,o,et,tt,nt)=>{clickDir$1.copy(s).sub(et),intersectionDir$1.copy(o).sub(et);const rt=tt.dot(tt),it=nt.dot(nt),ot=clickDir$1.dot(tt)/rt,st=clickDir$1.dot(nt)/it,at=intersectionDir$1.dot(tt)/rt,lt=intersectionDir$1.dot(nt)/it,ut=Math.atan2(st,ot);return Math.atan2(lt,at)-ut},fmod$1=(s,o)=>{let et=Math.floor(s/o);return et=et<0?et+1:et,s-et*o},minimizeAngle$1=s=>{let o=fmod$1(s,2*Math.PI);return Math.abs(o)<1e-6?0:(o<0&&(o+=2*Math.PI),o)},rotMatrix$1=new Matrix4,posNew$1=new Vector3,ray$3=new Ray$1,intersection$3=new Vector3,AxisRotator$1=({dir1:s,dir2:o,axis:et})=>{const{rotationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context$2),gt=useThree(Nt=>Nt.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(0),mt=reactExports.useRef(0),vt=reactExports.useRef(null),[At,Lt]=reactExports.useState(!1),Rt=reactExports.useCallback(Nt=>{nt&&(yt.current.innerText=`${toDegrees$2(mt.current).toFixed(0)}º`,yt.current.style.display="block"),Nt.stopPropagation();const Ot=Nt.point.clone(),Jt=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Dt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,0).normalize(),Et=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,1).normalize(),Pt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,2).normalize(),zt=new Plane().setFromNormalAndCoplanarPoint(Pt,Jt);vt.current={clickPoint:Ot,origin:Jt,e1:Dt,e2:Et,normal:Pt,plane:zt},ht({component:"Rotator",axis:et,origin:Jt,directions:[Dt,Et,Pt]}),gt&&(gt.enabled=!1),Nt.target.setPointerCapture(Nt.pointerId)},[nt,gt,ht,et]),St=reactExports.useCallback(Nt=>{if(Nt.stopPropagation(),At||Lt(!0),vt.current){const{clickPoint:Ot,origin:Jt,e1:Dt,e2:Et,normal:Pt,plane:zt}=vt.current,[en,Kt]=tt?.[et]||[void 0,void 0];ray$3.copy(Nt.ray),ray$3.intersectPlane(zt,intersection$3),ray$3.direction.negate(),ray$3.intersectPlane(zt,intersection$3);let nn=calculateAngle$1(Ot,intersection$3,Jt,Dt,Et),Zt=toDegrees$2(nn);Nt.shiftKey&&(Zt=Math.round(Zt/10)*10,nn=toRadians$2(Zt)),en!==void 0&&Kt!==void 0&&Kt-en<2*Math.PI?(nn=minimizeAngle$1(nn),nn=nn>Math.PI?nn-2*Math.PI:nn,nn=MathUtils.clamp(nn,en-Ft.current,Kt-Ft.current),mt.current=Ft.current+nn):(mt.current=minimizeAngle$1(Ft.current+nn),mt.current=mt.current>Math.PI?mt.current-2*Math.PI:mt.current),nt&&(Zt=toDegrees$2(mt.current),yt.current.innerText=`${Zt.toFixed(0)}º`),rotMatrix$1.makeRotationAxis(Pt,nn),posNew$1.copy(Jt).applyMatrix4(rotMatrix$1).sub(Jt).negate(),rotMatrix$1.setPosition(posNew$1),ct(rotMatrix$1)}},[nt,ct,At,tt,et]),Tt=reactExports.useCallback(Nt=>{nt&&(yt.current.style.display="none"),Nt.stopPropagation(),Ft.current=mt.current,vt.current=null,pt(),gt&&(gt.enabled=!0),Nt.target.releasePointerCapture(Nt.pointerId)},[nt,gt,pt]),Bt=reactExports.useCallback(Nt=>{Nt.stopPropagation(),Lt(!1)},[]),xt=reactExports.useMemo(()=>{const Nt=s.clone().normalize(),Ot=o.clone().normalize();return new Matrix4().makeBasis(Nt,Ot,Nt.clone().cross(Ot))},[s,o]),Ct=at?.65:ot*.65,kt=reactExports.useMemo(()=>{const Ot=[];for(let Jt=0;Jt<=32;Jt++){const Dt=Jt*(Math.PI/2)/32;Ot.push(new Vector3(Math.cos(Dt)*Ct,Math.sin(Dt)*Ct,0))}return Ot},[Ct]);return reactExports.createElement("group",{ref:Ut,onPointerDown:Rt,onPointerMove:St,onPointerUp:Tt,onPointerOut:Bt,matrix:xt,matrixAutoUpdate:!1},nt&&reactExports.createElement(Html,{position:[Ct,Ct,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})),reactExports.createElement(Line,{points:kt,lineWidth:st*4,visible:!1,userData:ft}),reactExports.createElement(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:kt,lineWidth:st,side:DoubleSide,color:At?ut:lt[et],opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))},decomposeIntoBasis$1=(s,o,et)=>{const tt=Math.abs(s.x)>=Math.abs(s.y)&&Math.abs(s.x)>=Math.abs(s.z)?0:Math.abs(s.y)>=Math.abs(s.x)&&Math.abs(s.y)>=Math.abs(s.z)?1:2,nt=[0,1,2].sort((ct,pt)=>Math.abs(o.getComponent(pt))-Math.abs(o.getComponent(ct))),rt=tt===nt[0]?nt[1]:nt[0],it=s.getComponent(tt),ot=s.getComponent(rt),st=o.getComponent(tt),at=o.getComponent(rt),lt=et.getComponent(tt),dt=(et.getComponent(rt)-lt*(ot/it))/(at-st*(ot/it));return[(lt-dt*st)/it,dt]},ray$2=new Ray$1,intersection$2=new Vector3,offsetMatrix$2=new Matrix4,PlaneSlider$1=({dir1:s,dir2:o,axis:et})=>{const{translation:tt,translationLimits:nt,annotations:rt,annotationsClass:it,depthTest:ot,scale:st,lineWidth:at,fixed:lt,axisColors:ut,hoveredColor:dt,opacity:ht,onDragStart:ct,onDrag:pt,onDragEnd:ft,userData:gt}=reactExports.useContext(context$2),yt=useThree(Dt=>Dt.controls),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(null),vt=reactExports.useRef(0),At=reactExports.useRef(0),[Lt,Rt]=reactExports.useState(!1),St=reactExports.useCallback(Dt=>{rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`,Ut.current.style.display="block"),Dt.stopPropagation();const Et=Dt.point.clone(),Pt=new Vector3().setFromMatrixPosition(Ft.current.matrixWorld),zt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,0).normalize(),en=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,1).normalize(),Kt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,2).normalize(),nn=new Plane().setFromNormalAndCoplanarPoint(Kt,Pt);mt.current={clickPoint:Et,e1:zt,e2:en,plane:nn},vt.current=tt.current[(et+1)%3],At.current=tt.current[(et+2)%3],ct({component:"Slider",axis:et,origin:Pt,directions:[zt,en,Kt]}),yt&&(yt.enabled=!1),Dt.target.setPointerCapture(Dt.pointerId)},[rt,yt,ct,et]),Tt=reactExports.useCallback(Dt=>{if(Dt.stopPropagation(),Lt||Rt(!0),mt.current){const{clickPoint:Et,e1:Pt,e2:zt,plane:en}=mt.current,[Kt,nn]=nt?.[(et+1)%3]||[void 0,void 0],[Zt,jt]=nt?.[(et+2)%3]||[void 0,void 0];ray$2.copy(Dt.ray),ray$2.intersectPlane(en,intersection$2),ray$2.direction.negate(),ray$2.intersectPlane(en,intersection$2),intersection$2.sub(Et);let[Vt,It]=decomposeIntoBasis$1(Pt,zt,intersection$2);Kt!==void 0&&(Vt=Math.max(Vt,Kt-vt.current)),nn!==void 0&&(Vt=Math.min(Vt,nn-vt.current)),Zt!==void 0&&(It=Math.max(It,Zt-At.current)),jt!==void 0&&(It=Math.min(It,jt-At.current)),tt.current[(et+1)%3]=vt.current+Vt,tt.current[(et+2)%3]=At.current+It,rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`),offsetMatrix$2.makeTranslation(Vt*Pt.x+It*zt.x,Vt*Pt.y+It*zt.y,Vt*Pt.z+It*zt.z),pt(offsetMatrix$2)}},[rt,pt,Lt,tt,nt,et]),Bt=reactExports.useCallback(Dt=>{rt&&(Ut.current.style.display="none"),Dt.stopPropagation(),mt.current=null,ft(),yt&&(yt.enabled=!0),Dt.target.releasePointerCapture(Dt.pointerId)},[rt,yt,ft]),xt=reactExports.useCallback(Dt=>{Dt.stopPropagation(),Rt(!1)},[]),Ct=reactExports.useMemo(()=>{const Dt=s.clone().normalize(),Et=o.clone().normalize();return new Matrix4().makeBasis(Dt,Et,Dt.clone().cross(Et))},[s,o]),kt=lt?1/7:st/7,Nt=lt?.225:st*.225,Ot=Lt?dt:ut[et],Jt=reactExports.useMemo(()=>[new Vector3(0,0,0),new Vector3(0,Nt,0),new Vector3(Nt,Nt,0),new Vector3(Nt,0,0),new Vector3(0,0,0)],[Nt]);return reactExports.createElement("group",{ref:Ft,matrix:Ct,matrixAutoUpdate:!1},rt&&reactExports.createElement(Html,{position:[0,0,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:it,ref:Ut})),reactExports.createElement("group",{position:[kt*1.7,kt*1.7,0]},reactExports.createElement("mesh",{visible:!0,onPointerDown:St,onPointerMove:Tt,onPointerUp:Bt,onPointerOut:xt,scale:Nt,userData:gt},reactExports.createElement("planeGeometry",null),reactExports.createElement("meshBasicMaterial",{transparent:!0,depthTest:ot,color:Ot,polygonOffset:!0,polygonOffsetFactor:-10,side:DoubleSide,fog:!1})),reactExports.createElement(Line,{position:[-Nt/2,-Nt/2,0],transparent:!0,depthTest:ot,points:Jt,lineWidth:at,color:Ot,opacity:ht,polygonOffset:!0,polygonOffsetFactor:-10,userData:gt,fog:!1})))},vec1$1=new Vector3,vec2$1=new Vector3,calculateOffset$1=(s,o,et,tt)=>{const nt=o.dot(o),rt=o.dot(s)-o.dot(et),it=o.dot(tt);return it===0?-rt/nt:(vec1$1.copy(tt).multiplyScalar(nt/it).sub(o),vec2$1.copy(tt).multiplyScalar(rt/it).add(et).sub(s),-vec1$1.dot(vec2$1)/vec1$1.dot(vec1$1))},upV$1=new Vector3(0,1,0),scaleV=new Vector3,scaleMatrix=new Matrix4,ScalingSphere=({direction:s,axis:o})=>{const{scaleLimits:et,annotations:tt,annotationsClass:nt,depthTest:rt,scale:it,lineWidth:ot,fixed:st,axisColors:at,hoveredColor:lt,opacity:ut,onDragStart:dt,onDrag:ht,onDragEnd:ct,userData:pt}=reactExports.useContext(context$2),ft=useThree(Jt=>Jt.size),gt=useThree(Jt=>Jt.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(1),vt=reactExports.useRef(1),At=reactExports.useRef(null),[Lt,Rt]=reactExports.useState(!1),St=st?1.2:1.2*it,Tt=reactExports.useCallback(Jt=>{tt&&(yt.current.innerText=`${vt.current.toFixed(2)}`,yt.current.style.display="block"),Jt.stopPropagation();const Dt=new Matrix4().extractRotation(Ut.current.matrixWorld),Et=Jt.point.clone(),Pt=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),zt=s.clone().applyMatrix4(Dt).normalize(),en=Ut.current.matrixWorld.clone(),Kt=en.clone().invert(),nn=st?1/calculateScaleFactor$1(Ut.current.getWorldPosition(vec1$1),it,Jt.camera,ft):1;At.current={clickPoint:Et,dir:zt,mPLG:en,mPLGInv:Kt,offsetMultiplier:nn},dt({component:"Sphere",axis:o,origin:Pt,directions:[zt]}),gt&&(gt.enabled=!1),Jt.target.setPointerCapture(Jt.pointerId)},[tt,gt,s,dt,o,st,it,ft]),Bt=reactExports.useCallback(Jt=>{if(Jt.stopPropagation(),Lt||Rt(!0),At.current){const{clickPoint:Dt,dir:Et,mPLG:Pt,mPLGInv:zt,offsetMultiplier:en}=At.current,[Kt,nn]=et?.[o]||[1e-5,void 0],jt=calculateOffset$1(Dt,Et,Jt.ray.origin,Jt.ray.direction)*en,Vt=st?jt:jt/it;let It=Math.pow(2,Vt*.2);Jt.shiftKey&&(It=Math.round(It*10)/10),It=Math.max(It,Kt/mt.current),nn!==void 0&&(It=Math.min(It,nn/mt.current)),vt.current=mt.current*It,Ft.current.position.set(0,St+jt,0),tt&&(yt.current.innerText=`${vt.current.toFixed(2)}`),scaleV.set(1,1,1),scaleV.setComponent(o,It),scaleMatrix.makeScale(scaleV.x,scaleV.y,scaleV.z).premultiply(Pt).multiply(zt),ht(scaleMatrix)}},[tt,St,ht,Lt,et,o]),xt=reactExports.useCallback(Jt=>{tt&&(yt.current.style.display="none"),Jt.stopPropagation(),mt.current=vt.current,At.current=null,Ft.current.position.set(0,St,0),ct(),gt&&(gt.enabled=!0),Jt.target.releasePointerCapture(Jt.pointerId)},[tt,gt,ct,St]),Ct=reactExports.useCallback(Jt=>{Jt.stopPropagation(),Rt(!1)},[]),{radius:kt,matrixL:Nt}=reactExports.useMemo(()=>{const Jt=st?ot/it*1.8:it/22.5,Dt=new Quaternion().setFromUnitVectors(upV$1,s.clone().normalize()),Et=new Matrix4().makeRotationFromQuaternion(Dt);return{radius:Jt,matrixL:Et}},[s,it,ot,st]),Ot=Lt?lt:at[o];return reactExports.createElement("group",{ref:Ut},reactExports.createElement("group",{matrix:Nt,matrixAutoUpdate:!1,onPointerDown:Tt,onPointerMove:Bt,onPointerUp:xt,onPointerOut:Ct},tt&&reactExports.createElement(Html,{position:[0,St/2,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:nt,ref:yt})),reactExports.createElement("mesh",{ref:Ft,position:[0,St,0],renderOrder:500,userData:pt},reactExports.createElement("sphereGeometry",{args:[kt,12,12]}),reactExports.createElement("meshBasicMaterial",{transparent:!0,depthTest:rt,color:Ot,opacity:ut,polygonOffset:!0,polygonOffsetFactor:-10}))))},mL0$1=new Matrix4,mW0$1=new Matrix4,mP$1=new Matrix4,mPInv$1=new Matrix4,mW$1=new Matrix4,mL$1=new Matrix4,mL0Inv$1=new Matrix4,mdL$1=new Matrix4,mG=new Matrix4,bb$1=new Box3,bbObj$1=new Box3,vCenter$1=new Vector3,vSize$1=new Vector3,vAnchorOffset$1=new Vector3,vPosition$1=new Vector3,vScale=new Vector3,xDir$1=new Vector3(1,0,0),yDir$1=new Vector3(0,1,0),zDir$1=new Vector3(0,0,1),PivotControls$1=reactExports.forwardRef(({matrix:s,onDragStart:o,onDrag:et,onDragEnd:tt,autoTransform:nt=!0,anchor:rt,disableAxes:it=!1,disableSliders:ot=!1,disableRotations:st=!1,disableScaling:at=!1,activeAxes:lt=[!0,!0,!0],offset:ut=[0,0,0],rotation:dt=[0,0,0],scale:ht=1,lineWidth:ct=4,fixed:pt=!1,translationLimits:ft,rotationLimits:gt,scaleLimits:yt,depthTest:Ut=!0,axisColors:Ft=["#ff2060","#20df80","#2080ff"],hoveredColor:mt="#ffff40",annotations:vt=!1,annotationsClass:At,opacity:Lt=1,visible:Rt=!0,userData:St,children:Tt,...Bt},xt)=>{const Ct=useThree(Kt=>Kt.invalidate),kt=reactExports.useRef(null),Nt=reactExports.useRef(null),Ot=reactExports.useRef(null),Jt=reactExports.useRef(null),Dt=reactExports.useRef([0,0,0]),Et=reactExports.useRef(new Vector3(1,1,1)),Pt=reactExports.useRef(new Vector3(1,1,1));reactExports.useLayoutEffect(()=>{rt&&(Jt.current.updateWorldMatrix(!0,!0),mPInv$1.copy(Jt.current.matrixWorld).invert(),bb$1.makeEmpty(),Jt.current.traverse(Kt=>{Kt.geometry&&(Kt.geometry.boundingBox||Kt.geometry.computeBoundingBox(),mL$1.copy(Kt.matrixWorld).premultiply(mPInv$1),bbObj$1.copy(Kt.geometry.boundingBox),bbObj$1.applyMatrix4(mL$1),bb$1.union(bbObj$1))}),vCenter$1.copy(bb$1.max).add(bb$1.min).multiplyScalar(.5),vSize$1.copy(bb$1.max).sub(bb$1.min).multiplyScalar(.5),vAnchorOffset$1.copy(vSize$1).multiply(new Vector3(...rt)).add(vCenter$1),vPosition$1.set(...ut).add(vAnchorOffset$1),Ot.current.position.copy(vPosition$1),Ct())});const zt=reactExports.useMemo(()=>({onDragStart:Kt=>{mL0$1.copy(Nt.current.matrix),mW0$1.copy(Nt.current.matrixWorld),o&&o(Kt),Ct()},onDrag:Kt=>{mP$1.copy(kt.current.matrixWorld),mPInv$1.copy(mP$1).invert(),mW$1.copy(mW0$1).premultiply(Kt),mL$1.copy(mW$1).premultiply(mPInv$1),mL0Inv$1.copy(mL0$1).invert(),mdL$1.copy(mL$1).multiply(mL0Inv$1),nt&&Nt.current.matrix.copy(mL$1),et&&et(mL$1,mdL$1,mW$1,Kt),Ct()},onDragEnd:()=>{tt&&tt(),Ct()},translation:Dt,translationLimits:ft,rotationLimits:gt,axisColors:Ft,hoveredColor:mt,opacity:Lt,scale:ht,lineWidth:ct,fixed:pt,depthTest:Ut,userData:St,annotations:vt,annotationsClass:At}),[o,et,tt,Dt,ft,gt,yt,Ut,ht,ct,pt,...Ft,mt,Lt,St,nt,vt,At]),en=new Vector3;return useFrame(Kt=>{if(pt){const nn=calculateScaleFactor$1(Ot.current.getWorldPosition(en),ht,Kt.camera,Kt.size);Et.current.setScalar(nn)}s&&s instanceof Matrix4&&(Nt.current.matrix=s),Nt.current.updateWorldMatrix(!0,!0),mG.makeRotationFromEuler(Ot.current.rotation).setPosition(Ot.current.position).premultiply(Nt.current.matrixWorld),Pt.current.setFromMatrixScale(mG),vScale.copy(Et.current).divide(Pt.current),(Math.abs(Ot.current.scale.x-vScale.x)>1e-4||Math.abs(Ot.current.scale.y-vScale.y)>1e-4||Math.abs(Ot.current.scale.z-vScale.z)>1e-4)&&(Ot.current.scale.copy(vScale),Kt.invalidate())}),reactExports.useImperativeHandle(xt,()=>Nt.current,[]),reactExports.createElement(context$2.Provider,{value:zt},reactExports.createElement("group",{ref:kt},reactExports.createElement("group",_extends$2({ref:Nt,matrix:s,matrixAutoUpdate:!1},Bt),reactExports.createElement("group",{visible:Rt,ref:Ot,position:ut,rotation:dt},!it&<[0]&&reactExports.createElement(AxisArrow$1,{axis:0,direction:xDir$1}),!it&<[1]&&reactExports.createElement(AxisArrow$1,{axis:1,direction:yDir$1}),!it&<[2]&&reactExports.createElement(AxisArrow$1,{axis:2,direction:zDir$1}),!ot&<[0]&<[1]&&reactExports.createElement(PlaneSlider$1,{axis:2,dir1:xDir$1,dir2:yDir$1}),!ot&<[0]&<[2]&&reactExports.createElement(PlaneSlider$1,{axis:1,dir1:zDir$1,dir2:xDir$1}),!ot&<[2]&<[1]&&reactExports.createElement(PlaneSlider$1,{axis:0,dir1:yDir$1,dir2:zDir$1}),!st&<[0]&<[1]&&reactExports.createElement(AxisRotator$1,{axis:2,dir1:xDir$1,dir2:yDir$1}),!st&<[0]&<[2]&&reactExports.createElement(AxisRotator$1,{axis:1,dir1:zDir$1,dir2:xDir$1}),!st&<[2]&<[1]&&reactExports.createElement(AxisRotator$1,{axis:0,dir1:yDir$1,dir2:zDir$1}),!at&<[0]&&reactExports.createElement(ScalingSphere,{axis:0,direction:xDir$1}),!at&<[1]&&reactExports.createElement(ScalingSphere,{axis:1,direction:yDir$1}),!at&<[2]&&reactExports.createElement(ScalingSphere,{axis:2,direction:zDir$1})),reactExports.createElement("group",{ref:Jt},Tt))))}),FormantColors={flagship:"#1C1E2D",silver:"#BAC4E2",white:"white",module:"#2D3855",steel01:"#282f45",steel02:"#3b4668",steel03:"#657197",red:"#EA719D",green:"#2EC495",blue:"#20A0FF",gradient01:["#FF72CC","#00E4FF"],mapColor:"#0b1224",occupiedColor:"#4f5f96",primary:"#729fda",critical:"#FF72CC",dark:"#0a0b10",offwhite:"#f8f9fc",blueice:"#f0f7fe",royalBlue:"#20a0ff",royalBluedark:"#256faf",greendark:"#2d8376",mint:"#64d7d4",mintdark:"#4a8d98",purple:"#a961e4",purpledark:"#564a94",reddark:"#7f5072",orange:"#f89973",orangedark:"#94645f",yellow:"#f9c36e",yellowdark:"#9a8261",rhenium:"#797DDB",mithril:"#76A7DC"};/** * postprocessing v6.35.5 build Sat Jun 01 2024 * https://github.com/pmndrs/postprocessing * Copyright 2015-2024 Raoul van Rüschen @@ -4566,7 +4566,7 @@ return orthographicDepthToViewZ(depth,cameraNear,cameraFar); animation-iteration-count: infinite; animation-delay: 200ms; } -`),touchRippleClasses$1.rippleVisible,enterKeyframe,DURATION,({theme:s})=>s.transitions.easing.easeInOut,touchRippleClasses$1.ripplePulsate,({theme:s})=>s.transitions.duration.shorter,touchRippleClasses$1.child,touchRippleClasses$1.childLeaving,exitKeyframe,DURATION,({theme:s})=>s.transitions.easing.easeInOut,touchRippleClasses$1.childPulsate,pulsateKeyframe,({theme:s})=>s.transitions.easing.easeInOut),TouchRipple=reactExports.forwardRef(function(o,et){const tt=useThemeProps({props:o,name:"MuiTouchRipple"}),{center:nt=!1,classes:rt={},className:it}=tt,ot=_objectWithoutPropertiesLoose$2(tt,_excluded$b),[st,at]=reactExports.useState([]),lt=reactExports.useRef(0),ut=reactExports.useRef(null);reactExports.useEffect(()=>{ut.current&&(ut.current(),ut.current=null)},[st]);const dt=reactExports.useRef(!1),ht=reactExports.useRef(0),ct=reactExports.useRef(null),pt=reactExports.useRef(null);reactExports.useEffect(()=>()=>{ht.current&&clearTimeout(ht.current)},[]);const ft=reactExports.useCallback(Ft=>{const{pulsate:mt,rippleX:vt,rippleY:At,rippleSize:Lt,cb:Rt}=Ft;at(St=>[...St,jsx$2(TouchRippleRipple,{classes:{ripple:clsx(rt.ripple,touchRippleClasses$1.ripple),rippleVisible:clsx(rt.rippleVisible,touchRippleClasses$1.rippleVisible),ripplePulsate:clsx(rt.ripplePulsate,touchRippleClasses$1.ripplePulsate),child:clsx(rt.child,touchRippleClasses$1.child),childLeaving:clsx(rt.childLeaving,touchRippleClasses$1.childLeaving),childPulsate:clsx(rt.childPulsate,touchRippleClasses$1.childPulsate)},timeout:DURATION,pulsate:mt,rippleX:vt,rippleY:At,rippleSize:Lt},lt.current)]),lt.current+=1,ut.current=Rt},[rt]),gt=reactExports.useCallback((Ft={},mt={},vt=()=>{})=>{const{pulsate:At=!1,center:Lt=nt||mt.pulsate,fakeElement:Rt=!1}=mt;if(Ft?.type==="mousedown"&&dt.current){dt.current=!1;return}Ft?.type==="touchstart"&&(dt.current=!0);const St=Rt?null:pt.current,Tt=St?St.getBoundingClientRect():{width:0,height:0,left:0,top:0};let Bt,xt,Ct;if(Lt||Ft===void 0||Ft.clientX===0&&Ft.clientY===0||!Ft.clientX&&!Ft.touches)Bt=Math.round(Tt.width/2),xt=Math.round(Tt.height/2);else{const{clientX:kt,clientY:Nt}=Ft.touches&&Ft.touches.length>0?Ft.touches[0]:Ft;Bt=Math.round(kt-Tt.left),xt=Math.round(Nt-Tt.top)}if(Lt)Ct=Math.sqrt((2*Tt.width**2+Tt.height**2)/3),Ct%2===0&&(Ct+=1);else{const kt=Math.max(Math.abs((St?St.clientWidth:0)-Bt),Bt)*2+2,Nt=Math.max(Math.abs((St?St.clientHeight:0)-xt),xt)*2+2;Ct=Math.sqrt(kt**2+Nt**2)}Ft!=null&&Ft.touches?ct.current===null&&(ct.current=()=>{ft({pulsate:At,rippleX:Bt,rippleY:xt,rippleSize:Ct,cb:vt})},ht.current=setTimeout(()=>{ct.current&&(ct.current(),ct.current=null)},DELAY_RIPPLE)):ft({pulsate:At,rippleX:Bt,rippleY:xt,rippleSize:Ct,cb:vt})},[nt,ft]),yt=reactExports.useCallback(()=>{gt({},{pulsate:!0})},[gt]),Ut=reactExports.useCallback((Ft,mt)=>{if(clearTimeout(ht.current),Ft?.type==="touchend"&&ct.current){ct.current(),ct.current=null,ht.current=setTimeout(()=>{Ut(Ft,mt)});return}ct.current=null,at(vt=>vt.length>0?vt.slice(1):vt),ut.current=mt},[]);return reactExports.useImperativeHandle(et,()=>({pulsate:yt,start:gt,stop:Ut}),[yt,gt,Ut]),jsx$2(TouchRippleRoot,_extends$2({className:clsx(touchRippleClasses$1.root,rt.root,it),ref:pt},ot,{children:jsx$2(TransitionGroup$1,{component:null,exit:!0,children:st})}))}),TouchRipple$1=TouchRipple;function getButtonBaseUtilityClass(s){return generateUtilityClass$1("MuiButtonBase",s)}const buttonBaseClasses=generateUtilityClasses$1("MuiButtonBase",["root","disabled","focusVisible"]),buttonBaseClasses$1=buttonBaseClasses,_excluded$a=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],useUtilityClasses$2=s=>{const{disabled:o,focusVisible:et,focusVisibleClassName:tt,classes:nt}=s,it=composeClasses({root:["root",o&&"disabled",et&&"focusVisible"]},getButtonBaseUtilityClass,nt);return et&&tt&&(it.root+=` ${tt}`),it},ButtonBaseRoot=styled$4("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(s,o)=>o.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${buttonBaseClasses$1.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),ButtonBase=reactExports.forwardRef(function(o,et){const tt=useThemeProps({props:o,name:"MuiButtonBase"}),{action:nt,centerRipple:rt=!1,children:it,className:ot,component:st="button",disabled:at=!1,disableRipple:lt=!1,disableTouchRipple:ut=!1,focusRipple:dt=!1,LinkComponent:ht="a",onBlur:ct,onClick:pt,onContextMenu:ft,onDragLeave:gt,onFocus:yt,onFocusVisible:Ut,onKeyDown:Ft,onKeyUp:mt,onMouseDown:vt,onMouseLeave:At,onMouseUp:Lt,onTouchEnd:Rt,onTouchMove:St,onTouchStart:Tt,tabIndex:Bt=0,TouchRippleProps:xt,touchRippleRef:Ct,type:kt}=tt,Nt=_objectWithoutPropertiesLoose$2(tt,_excluded$a),Ot=reactExports.useRef(null),Wt=reactExports.useRef(null),Dt=useForkRef(Wt,Ct),{isFocusVisibleRef:Et,onFocus:Pt,onBlur:zt,ref:en}=useIsFocusVisible(),[Kt,nn]=reactExports.useState(!1);at&&Kt&&nn(!1),reactExports.useImperativeHandle(nt,()=>({focusVisible:()=>{nn(!0),Ot.current.focus()}}),[]);const[Zt,jt]=reactExports.useState(!1);reactExports.useEffect(()=>{jt(!0)},[]);const Vt=Zt&&!lt&&!at;reactExports.useEffect(()=>{Kt&&dt&&!lt&&Zt&&Wt.current.pulsate()},[lt,dt,Kt,Zt]);function It(Ir,Wr,qr=ut){return useEventCallback(Uo=>(Wr&&Wr(Uo),!qr&&Wt.current&&Wt.current[Ir](Uo),!0))}const $t=It("start",vt),Ht=It("stop",ft),qt=It("stop",gt),on=It("stop",Lt),Xt=It("stop",Ir=>{Kt&&Ir.preventDefault(),At&&At(Ir)}),dn=It("start",Tt),_n=It("stop",Rt),Fn=It("stop",St),Un=It("stop",Ir=>{zt(Ir),Et.current===!1&&nn(!1),ct&&ct(Ir)},!1),On=useEventCallback(Ir=>{Ot.current||(Ot.current=Ir.currentTarget),Pt(Ir),Et.current===!0&&(nn(!0),Ut&&Ut(Ir)),yt&&yt(Ir)}),gn=()=>{const Ir=Ot.current;return st&&st!=="button"&&!(Ir.tagName==="A"&&Ir.href)},hn=reactExports.useRef(!1),wn=useEventCallback(Ir=>{dt&&!hn.current&&Kt&&Wt.current&&Ir.key===" "&&(hn.current=!0,Wt.current.stop(Ir,()=>{Wt.current.start(Ir)})),Ir.target===Ir.currentTarget&&gn()&&Ir.key===" "&&Ir.preventDefault(),Ft&&Ft(Ir),Ir.target===Ir.currentTarget&&gn()&&Ir.key==="Enter"&&!at&&(Ir.preventDefault(),pt&&pt(Ir))}),Zn=useEventCallback(Ir=>{dt&&Ir.key===" "&&Wt.current&&Kt&&!Ir.defaultPrevented&&(hn.current=!1,Wt.current.stop(Ir,()=>{Wt.current.pulsate(Ir)})),mt&&mt(Ir),pt&&Ir.target===Ir.currentTarget&&gn()&&Ir.key===" "&&!Ir.defaultPrevented&&pt(Ir)});let Pn=st;Pn==="button"&&(Nt.href||Nt.to)&&(Pn=ht);const $n={};Pn==="button"?($n.type=kt===void 0?"button":kt,$n.disabled=at):(!Nt.href&&!Nt.to&&($n.role="button"),at&&($n["aria-disabled"]=at));const Tr=useForkRef(et,en,Ot),Qr=_extends$2({},tt,{centerRipple:rt,component:st,disabled:at,disableRipple:lt,disableTouchRipple:ut,focusRipple:dt,tabIndex:Bt,focusVisible:Kt}),_r=useUtilityClasses$2(Qr);return jsxs$2(ButtonBaseRoot,_extends$2({as:Pn,className:clsx(_r.root,ot),ownerState:Qr,onBlur:Un,onClick:pt,onContextMenu:Ht,onFocus:On,onKeyDown:wn,onKeyUp:Zn,onMouseDown:$t,onMouseLeave:Xt,onMouseUp:on,onDragLeave:qt,onTouchEnd:_n,onTouchMove:Fn,onTouchStart:dn,ref:Tr,tabIndex:at?-1:Bt,type:kt},$n,Nt,{children:[it,Vt?jsx$2(TouchRipple$1,_extends$2({ref:Dt,center:rt},xt)):null]}))}),ButtonBase$1=ButtonBase;function getTypographyUtilityClass(s){return generateUtilityClass$1("MuiTypography",s)}generateUtilityClasses$1("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const _excluded$9=["align","className","component","gutterBottom","noWrap","paragraph","variant","variantMapping"],useUtilityClasses$1=s=>{const{align:o,gutterBottom:et,noWrap:tt,paragraph:nt,variant:rt,classes:it}=s,ot={root:["root",rt,s.align!=="inherit"&&`align${capitalize(o)}`,et&&"gutterBottom",tt&&"noWrap",nt&&"paragraph"]};return composeClasses(ot,getTypographyUtilityClass,it)},TypographyRoot=styled$4("span",{name:"MuiTypography",slot:"Root",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.root,et.variant&&o[et.variant],et.align!=="inherit"&&o[`align${capitalize(et.align)}`],et.noWrap&&o.noWrap,et.gutterBottom&&o.gutterBottom,et.paragraph&&o.paragraph]}})(({theme:s,ownerState:o})=>_extends$2({margin:0},o.variant==="inherit"&&{font:"inherit"},o.variant!=="inherit"&&s.typography[o.variant],o.align!=="inherit"&&{textAlign:o.align},o.noWrap&&{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},o.gutterBottom&&{marginBottom:"0.35em"},o.paragraph&&{marginBottom:16})),defaultVariantMapping={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},colorTransformations={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},transformDeprecatedColors=s=>colorTransformations[s]||s,Typography=reactExports.forwardRef(function(o,et){const tt=useThemeProps({props:o,name:"MuiTypography"}),nt=transformDeprecatedColors(tt.color),rt=extendSxProp(_extends$2({},tt,{color:nt})),{align:it="inherit",className:ot,component:st,gutterBottom:at=!1,noWrap:lt=!1,paragraph:ut=!1,variant:dt="body1",variantMapping:ht=defaultVariantMapping}=rt,ct=_objectWithoutPropertiesLoose$2(rt,_excluded$9),pt=_extends$2({},rt,{align:it,color:nt,className:ot,component:st,gutterBottom:at,noWrap:lt,paragraph:ut,variant:dt,variantMapping:ht}),ft=st||(ut?"p":ht[dt]||defaultVariantMapping[dt])||"span",gt=useUtilityClasses$1(pt);return jsx$2(TypographyRoot,_extends$2({as:ft,ref:et,ownerState:pt,className:clsx(gt.root,ot)},ct))}),Typography$1=Typography;function getButtonUtilityClass(s){return generateUtilityClass$1("MuiButton",s)}const buttonClasses=generateUtilityClasses$1("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),buttonClasses$1=buttonClasses,ButtonGroupContext=reactExports.createContext({}),ButtonGroupContext$1=ButtonGroupContext,ButtonGroupButtonContext=reactExports.createContext(void 0),ButtonGroupButtonContext$1=ButtonGroupButtonContext,_excluded=["children","color","component","className","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"],useUtilityClasses=s=>{const{color:o,disableElevation:et,fullWidth:tt,size:nt,variant:rt,classes:it}=s,ot={root:["root",rt,`${rt}${capitalize(o)}`,`size${capitalize(nt)}`,`${rt}Size${capitalize(nt)}`,o==="inherit"&&"colorInherit",et&&"disableElevation",tt&&"fullWidth"],label:["label"],startIcon:["startIcon",`iconSize${capitalize(nt)}`],endIcon:["endIcon",`iconSize${capitalize(nt)}`]},st=composeClasses(ot,getButtonUtilityClass,it);return _extends$2({},it,st)},commonIconStyles=s=>_extends$2({},s.size==="small"&&{"& > *:nth-of-type(1)":{fontSize:18}},s.size==="medium"&&{"& > *:nth-of-type(1)":{fontSize:20}},s.size==="large"&&{"& > *:nth-of-type(1)":{fontSize:22}}),ButtonRoot=styled$4(ButtonBase$1,{shouldForwardProp:s=>rootShouldForwardProp$1(s)||s==="classes",name:"MuiButton",slot:"Root",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.root,o[et.variant],o[`${et.variant}${capitalize(et.color)}`],o[`size${capitalize(et.size)}`],o[`${et.variant}Size${capitalize(et.size)}`],et.color==="inherit"&&o.colorInherit,et.disableElevation&&o.disableElevation,et.fullWidth&&o.fullWidth]}})(({theme:s,ownerState:o})=>{var et,tt;const nt=s.palette.mode==="light"?s.palette.grey[300]:s.palette.grey[800],rt=s.palette.mode==="light"?s.palette.grey.A100:s.palette.grey[700];return _extends$2({},s.typography.button,{minWidth:64,padding:"6px 16px",borderRadius:(s.vars||s).shape.borderRadius,transition:s.transitions.create(["background-color","box-shadow","border-color","color"],{duration:s.transitions.duration.short}),"&:hover":_extends$2({textDecoration:"none",backgroundColor:s.vars?`rgba(${s.vars.palette.text.primaryChannel} / ${s.vars.palette.action.hoverOpacity})`:alpha$1(s.palette.text.primary,s.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},o.variant==="text"&&o.color!=="inherit"&&{backgroundColor:s.vars?`rgba(${s.vars.palette[o.color].mainChannel} / ${s.vars.palette.action.hoverOpacity})`:alpha$1(s.palette[o.color].main,s.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},o.variant==="outlined"&&o.color!=="inherit"&&{border:`1px solid ${(s.vars||s).palette[o.color].main}`,backgroundColor:s.vars?`rgba(${s.vars.palette[o.color].mainChannel} / ${s.vars.palette.action.hoverOpacity})`:alpha$1(s.palette[o.color].main,s.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},o.variant==="contained"&&{backgroundColor:s.vars?s.vars.palette.Button.inheritContainedHoverBg:rt,boxShadow:(s.vars||s).shadows[4],"@media (hover: none)":{boxShadow:(s.vars||s).shadows[2],backgroundColor:(s.vars||s).palette.grey[300]}},o.variant==="contained"&&o.color!=="inherit"&&{backgroundColor:(s.vars||s).palette[o.color].dark,"@media (hover: none)":{backgroundColor:(s.vars||s).palette[o.color].main}}),"&:active":_extends$2({},o.variant==="contained"&&{boxShadow:(s.vars||s).shadows[8]}),[`&.${buttonClasses$1.focusVisible}`]:_extends$2({},o.variant==="contained"&&{boxShadow:(s.vars||s).shadows[6]}),[`&.${buttonClasses$1.disabled}`]:_extends$2({color:(s.vars||s).palette.action.disabled},o.variant==="outlined"&&{border:`1px solid ${(s.vars||s).palette.action.disabledBackground}`},o.variant==="contained"&&{color:(s.vars||s).palette.action.disabled,boxShadow:(s.vars||s).shadows[0],backgroundColor:(s.vars||s).palette.action.disabledBackground})},o.variant==="text"&&{padding:"6px 8px"},o.variant==="text"&&o.color!=="inherit"&&{color:(s.vars||s).palette[o.color].main},o.variant==="outlined"&&{padding:"5px 15px",border:"1px solid currentColor"},o.variant==="outlined"&&o.color!=="inherit"&&{color:(s.vars||s).palette[o.color].main,border:s.vars?`1px solid rgba(${s.vars.palette[o.color].mainChannel} / 0.5)`:`1px solid ${alpha$1(s.palette[o.color].main,.5)}`},o.variant==="contained"&&{color:s.vars?s.vars.palette.text.primary:(et=(tt=s.palette).getContrastText)==null?void 0:et.call(tt,s.palette.grey[300]),backgroundColor:s.vars?s.vars.palette.Button.inheritContainedBg:nt,boxShadow:(s.vars||s).shadows[2]},o.variant==="contained"&&o.color!=="inherit"&&{color:(s.vars||s).palette[o.color].contrastText,backgroundColor:(s.vars||s).palette[o.color].main},o.color==="inherit"&&{color:"inherit",borderColor:"currentColor"},o.size==="small"&&o.variant==="text"&&{padding:"4px 5px",fontSize:s.typography.pxToRem(13)},o.size==="large"&&o.variant==="text"&&{padding:"8px 11px",fontSize:s.typography.pxToRem(15)},o.size==="small"&&o.variant==="outlined"&&{padding:"3px 9px",fontSize:s.typography.pxToRem(13)},o.size==="large"&&o.variant==="outlined"&&{padding:"7px 21px",fontSize:s.typography.pxToRem(15)},o.size==="small"&&o.variant==="contained"&&{padding:"4px 10px",fontSize:s.typography.pxToRem(13)},o.size==="large"&&o.variant==="contained"&&{padding:"8px 22px",fontSize:s.typography.pxToRem(15)},o.fullWidth&&{width:"100%"})},({ownerState:s})=>s.disableElevation&&{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${buttonClasses$1.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${buttonClasses$1.disabled}`]:{boxShadow:"none"}}),ButtonStartIcon=styled$4("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.startIcon,o[`iconSize${capitalize(et.size)}`]]}})(({ownerState:s})=>_extends$2({display:"inherit",marginRight:8,marginLeft:-4},s.size==="small"&&{marginLeft:-2},commonIconStyles(s))),ButtonEndIcon=styled$4("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.endIcon,o[`iconSize${capitalize(et.size)}`]]}})(({ownerState:s})=>_extends$2({display:"inherit",marginRight:-4,marginLeft:8},s.size==="small"&&{marginRight:-2},commonIconStyles(s))),Button=reactExports.forwardRef(function(o,et){const tt=reactExports.useContext(ButtonGroupContext$1),nt=reactExports.useContext(ButtonGroupButtonContext$1),rt=resolveProps(tt,o),it=useThemeProps({props:rt,name:"MuiButton"}),{children:ot,color:st="primary",component:at="button",className:lt,disabled:ut=!1,disableElevation:dt=!1,disableFocusRipple:ht=!1,endIcon:ct,focusVisibleClassName:pt,fullWidth:ft=!1,size:gt="medium",startIcon:yt,type:Ut,variant:Ft="text"}=it,mt=_objectWithoutPropertiesLoose$2(it,_excluded),vt=_extends$2({},it,{color:st,component:at,disabled:ut,disableElevation:dt,disableFocusRipple:ht,fullWidth:ft,size:gt,type:Ut,variant:Ft}),At=useUtilityClasses(vt),Lt=yt&&jsx$2(ButtonStartIcon,{className:At.startIcon,ownerState:vt,children:yt}),Rt=ct&&jsx$2(ButtonEndIcon,{className:At.endIcon,ownerState:vt,children:ct}),St=nt||"";return jsxs$2(ButtonRoot,_extends$2({ownerState:vt,className:clsx(tt.className,At.root,lt,St),component:at,disabled:ut,focusRipple:!ht,focusVisibleClassName:clsx(At.focusVisible,pt),ref:et,type:Ut},mt,{classes:At,children:[Lt,ot,Rt]}))}),Button$1=Button;var classnames$1={exports:{}};/*! +`),touchRippleClasses$1.rippleVisible,enterKeyframe,DURATION,({theme:s})=>s.transitions.easing.easeInOut,touchRippleClasses$1.ripplePulsate,({theme:s})=>s.transitions.duration.shorter,touchRippleClasses$1.child,touchRippleClasses$1.childLeaving,exitKeyframe,DURATION,({theme:s})=>s.transitions.easing.easeInOut,touchRippleClasses$1.childPulsate,pulsateKeyframe,({theme:s})=>s.transitions.easing.easeInOut),TouchRipple=reactExports.forwardRef(function(o,et){const tt=useThemeProps({props:o,name:"MuiTouchRipple"}),{center:nt=!1,classes:rt={},className:it}=tt,ot=_objectWithoutPropertiesLoose$2(tt,_excluded$b),[st,at]=reactExports.useState([]),lt=reactExports.useRef(0),ut=reactExports.useRef(null);reactExports.useEffect(()=>{ut.current&&(ut.current(),ut.current=null)},[st]);const dt=reactExports.useRef(!1),ht=reactExports.useRef(0),ct=reactExports.useRef(null),pt=reactExports.useRef(null);reactExports.useEffect(()=>()=>{ht.current&&clearTimeout(ht.current)},[]);const ft=reactExports.useCallback(Ft=>{const{pulsate:mt,rippleX:vt,rippleY:At,rippleSize:Lt,cb:Rt}=Ft;at(St=>[...St,jsx$2(TouchRippleRipple,{classes:{ripple:clsx(rt.ripple,touchRippleClasses$1.ripple),rippleVisible:clsx(rt.rippleVisible,touchRippleClasses$1.rippleVisible),ripplePulsate:clsx(rt.ripplePulsate,touchRippleClasses$1.ripplePulsate),child:clsx(rt.child,touchRippleClasses$1.child),childLeaving:clsx(rt.childLeaving,touchRippleClasses$1.childLeaving),childPulsate:clsx(rt.childPulsate,touchRippleClasses$1.childPulsate)},timeout:DURATION,pulsate:mt,rippleX:vt,rippleY:At,rippleSize:Lt},lt.current)]),lt.current+=1,ut.current=Rt},[rt]),gt=reactExports.useCallback((Ft={},mt={},vt=()=>{})=>{const{pulsate:At=!1,center:Lt=nt||mt.pulsate,fakeElement:Rt=!1}=mt;if(Ft?.type==="mousedown"&&dt.current){dt.current=!1;return}Ft?.type==="touchstart"&&(dt.current=!0);const St=Rt?null:pt.current,Tt=St?St.getBoundingClientRect():{width:0,height:0,left:0,top:0};let Bt,xt,Ct;if(Lt||Ft===void 0||Ft.clientX===0&&Ft.clientY===0||!Ft.clientX&&!Ft.touches)Bt=Math.round(Tt.width/2),xt=Math.round(Tt.height/2);else{const{clientX:kt,clientY:Nt}=Ft.touches&&Ft.touches.length>0?Ft.touches[0]:Ft;Bt=Math.round(kt-Tt.left),xt=Math.round(Nt-Tt.top)}if(Lt)Ct=Math.sqrt((2*Tt.width**2+Tt.height**2)/3),Ct%2===0&&(Ct+=1);else{const kt=Math.max(Math.abs((St?St.clientWidth:0)-Bt),Bt)*2+2,Nt=Math.max(Math.abs((St?St.clientHeight:0)-xt),xt)*2+2;Ct=Math.sqrt(kt**2+Nt**2)}Ft!=null&&Ft.touches?ct.current===null&&(ct.current=()=>{ft({pulsate:At,rippleX:Bt,rippleY:xt,rippleSize:Ct,cb:vt})},ht.current=setTimeout(()=>{ct.current&&(ct.current(),ct.current=null)},DELAY_RIPPLE)):ft({pulsate:At,rippleX:Bt,rippleY:xt,rippleSize:Ct,cb:vt})},[nt,ft]),yt=reactExports.useCallback(()=>{gt({},{pulsate:!0})},[gt]),Ut=reactExports.useCallback((Ft,mt)=>{if(clearTimeout(ht.current),Ft?.type==="touchend"&&ct.current){ct.current(),ct.current=null,ht.current=setTimeout(()=>{Ut(Ft,mt)});return}ct.current=null,at(vt=>vt.length>0?vt.slice(1):vt),ut.current=mt},[]);return reactExports.useImperativeHandle(et,()=>({pulsate:yt,start:gt,stop:Ut}),[yt,gt,Ut]),jsx$2(TouchRippleRoot,_extends$2({className:clsx(touchRippleClasses$1.root,rt.root,it),ref:pt},ot,{children:jsx$2(TransitionGroup$1,{component:null,exit:!0,children:st})}))}),TouchRipple$1=TouchRipple;function getButtonBaseUtilityClass(s){return generateUtilityClass$1("MuiButtonBase",s)}const buttonBaseClasses=generateUtilityClasses$1("MuiButtonBase",["root","disabled","focusVisible"]),buttonBaseClasses$1=buttonBaseClasses,_excluded$a=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],useUtilityClasses$2=s=>{const{disabled:o,focusVisible:et,focusVisibleClassName:tt,classes:nt}=s,it=composeClasses({root:["root",o&&"disabled",et&&"focusVisible"]},getButtonBaseUtilityClass,nt);return et&&tt&&(it.root+=` ${tt}`),it},ButtonBaseRoot=styled$4("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(s,o)=>o.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${buttonBaseClasses$1.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),ButtonBase=reactExports.forwardRef(function(o,et){const tt=useThemeProps({props:o,name:"MuiButtonBase"}),{action:nt,centerRipple:rt=!1,children:it,className:ot,component:st="button",disabled:at=!1,disableRipple:lt=!1,disableTouchRipple:ut=!1,focusRipple:dt=!1,LinkComponent:ht="a",onBlur:ct,onClick:pt,onContextMenu:ft,onDragLeave:gt,onFocus:yt,onFocusVisible:Ut,onKeyDown:Ft,onKeyUp:mt,onMouseDown:vt,onMouseLeave:At,onMouseUp:Lt,onTouchEnd:Rt,onTouchMove:St,onTouchStart:Tt,tabIndex:Bt=0,TouchRippleProps:xt,touchRippleRef:Ct,type:kt}=tt,Nt=_objectWithoutPropertiesLoose$2(tt,_excluded$a),Ot=reactExports.useRef(null),Jt=reactExports.useRef(null),Dt=useForkRef(Jt,Ct),{isFocusVisibleRef:Et,onFocus:Pt,onBlur:zt,ref:en}=useIsFocusVisible(),[Kt,nn]=reactExports.useState(!1);at&&Kt&&nn(!1),reactExports.useImperativeHandle(nt,()=>({focusVisible:()=>{nn(!0),Ot.current.focus()}}),[]);const[Zt,jt]=reactExports.useState(!1);reactExports.useEffect(()=>{jt(!0)},[]);const Vt=Zt&&!lt&&!at;reactExports.useEffect(()=>{Kt&&dt&&!lt&&Zt&&Jt.current.pulsate()},[lt,dt,Kt,Zt]);function It(Ir,Jr,qr=ut){return useEventCallback(Uo=>(Jr&&Jr(Uo),!qr&&Jt.current&&Jt.current[Ir](Uo),!0))}const $t=It("start",vt),Ht=It("stop",ft),qt=It("stop",gt),on=It("stop",Lt),Xt=It("stop",Ir=>{Kt&&Ir.preventDefault(),At&&At(Ir)}),dn=It("start",Tt),_n=It("stop",Rt),Fn=It("stop",St),Un=It("stop",Ir=>{zt(Ir),Et.current===!1&&nn(!1),ct&&ct(Ir)},!1),On=useEventCallback(Ir=>{Ot.current||(Ot.current=Ir.currentTarget),Pt(Ir),Et.current===!0&&(nn(!0),Ut&&Ut(Ir)),yt&&yt(Ir)}),gn=()=>{const Ir=Ot.current;return st&&st!=="button"&&!(Ir.tagName==="A"&&Ir.href)},hn=reactExports.useRef(!1),wn=useEventCallback(Ir=>{dt&&!hn.current&&Kt&&Jt.current&&Ir.key===" "&&(hn.current=!0,Jt.current.stop(Ir,()=>{Jt.current.start(Ir)})),Ir.target===Ir.currentTarget&&gn()&&Ir.key===" "&&Ir.preventDefault(),Ft&&Ft(Ir),Ir.target===Ir.currentTarget&&gn()&&Ir.key==="Enter"&&!at&&(Ir.preventDefault(),pt&&pt(Ir))}),Zn=useEventCallback(Ir=>{dt&&Ir.key===" "&&Jt.current&&Kt&&!Ir.defaultPrevented&&(hn.current=!1,Jt.current.stop(Ir,()=>{Jt.current.pulsate(Ir)})),mt&&mt(Ir),pt&&Ir.target===Ir.currentTarget&&gn()&&Ir.key===" "&&!Ir.defaultPrevented&&pt(Ir)});let Pn=st;Pn==="button"&&(Nt.href||Nt.to)&&(Pn=ht);const $n={};Pn==="button"?($n.type=kt===void 0?"button":kt,$n.disabled=at):(!Nt.href&&!Nt.to&&($n.role="button"),at&&($n["aria-disabled"]=at));const Tr=useForkRef(et,en,Ot),Qr=_extends$2({},tt,{centerRipple:rt,component:st,disabled:at,disableRipple:lt,disableTouchRipple:ut,focusRipple:dt,tabIndex:Bt,focusVisible:Kt}),_r=useUtilityClasses$2(Qr);return jsxs$2(ButtonBaseRoot,_extends$2({as:Pn,className:clsx(_r.root,ot),ownerState:Qr,onBlur:Un,onClick:pt,onContextMenu:Ht,onFocus:On,onKeyDown:wn,onKeyUp:Zn,onMouseDown:$t,onMouseLeave:Xt,onMouseUp:on,onDragLeave:qt,onTouchEnd:_n,onTouchMove:Fn,onTouchStart:dn,ref:Tr,tabIndex:at?-1:Bt,type:kt},$n,Nt,{children:[it,Vt?jsx$2(TouchRipple$1,_extends$2({ref:Dt,center:rt},xt)):null]}))}),ButtonBase$1=ButtonBase;function getTypographyUtilityClass(s){return generateUtilityClass$1("MuiTypography",s)}generateUtilityClasses$1("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const _excluded$9=["align","className","component","gutterBottom","noWrap","paragraph","variant","variantMapping"],useUtilityClasses$1=s=>{const{align:o,gutterBottom:et,noWrap:tt,paragraph:nt,variant:rt,classes:it}=s,ot={root:["root",rt,s.align!=="inherit"&&`align${capitalize(o)}`,et&&"gutterBottom",tt&&"noWrap",nt&&"paragraph"]};return composeClasses(ot,getTypographyUtilityClass,it)},TypographyRoot=styled$4("span",{name:"MuiTypography",slot:"Root",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.root,et.variant&&o[et.variant],et.align!=="inherit"&&o[`align${capitalize(et.align)}`],et.noWrap&&o.noWrap,et.gutterBottom&&o.gutterBottom,et.paragraph&&o.paragraph]}})(({theme:s,ownerState:o})=>_extends$2({margin:0},o.variant==="inherit"&&{font:"inherit"},o.variant!=="inherit"&&s.typography[o.variant],o.align!=="inherit"&&{textAlign:o.align},o.noWrap&&{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},o.gutterBottom&&{marginBottom:"0.35em"},o.paragraph&&{marginBottom:16})),defaultVariantMapping={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},colorTransformations={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},transformDeprecatedColors=s=>colorTransformations[s]||s,Typography=reactExports.forwardRef(function(o,et){const tt=useThemeProps({props:o,name:"MuiTypography"}),nt=transformDeprecatedColors(tt.color),rt=extendSxProp(_extends$2({},tt,{color:nt})),{align:it="inherit",className:ot,component:st,gutterBottom:at=!1,noWrap:lt=!1,paragraph:ut=!1,variant:dt="body1",variantMapping:ht=defaultVariantMapping}=rt,ct=_objectWithoutPropertiesLoose$2(rt,_excluded$9),pt=_extends$2({},rt,{align:it,color:nt,className:ot,component:st,gutterBottom:at,noWrap:lt,paragraph:ut,variant:dt,variantMapping:ht}),ft=st||(ut?"p":ht[dt]||defaultVariantMapping[dt])||"span",gt=useUtilityClasses$1(pt);return jsx$2(TypographyRoot,_extends$2({as:ft,ref:et,ownerState:pt,className:clsx(gt.root,ot)},ct))}),Typography$1=Typography;function getButtonUtilityClass(s){return generateUtilityClass$1("MuiButton",s)}const buttonClasses=generateUtilityClasses$1("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),buttonClasses$1=buttonClasses,ButtonGroupContext=reactExports.createContext({}),ButtonGroupContext$1=ButtonGroupContext,ButtonGroupButtonContext=reactExports.createContext(void 0),ButtonGroupButtonContext$1=ButtonGroupButtonContext,_excluded=["children","color","component","className","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"],useUtilityClasses=s=>{const{color:o,disableElevation:et,fullWidth:tt,size:nt,variant:rt,classes:it}=s,ot={root:["root",rt,`${rt}${capitalize(o)}`,`size${capitalize(nt)}`,`${rt}Size${capitalize(nt)}`,o==="inherit"&&"colorInherit",et&&"disableElevation",tt&&"fullWidth"],label:["label"],startIcon:["startIcon",`iconSize${capitalize(nt)}`],endIcon:["endIcon",`iconSize${capitalize(nt)}`]},st=composeClasses(ot,getButtonUtilityClass,it);return _extends$2({},it,st)},commonIconStyles=s=>_extends$2({},s.size==="small"&&{"& > *:nth-of-type(1)":{fontSize:18}},s.size==="medium"&&{"& > *:nth-of-type(1)":{fontSize:20}},s.size==="large"&&{"& > *:nth-of-type(1)":{fontSize:22}}),ButtonRoot=styled$4(ButtonBase$1,{shouldForwardProp:s=>rootShouldForwardProp$1(s)||s==="classes",name:"MuiButton",slot:"Root",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.root,o[et.variant],o[`${et.variant}${capitalize(et.color)}`],o[`size${capitalize(et.size)}`],o[`${et.variant}Size${capitalize(et.size)}`],et.color==="inherit"&&o.colorInherit,et.disableElevation&&o.disableElevation,et.fullWidth&&o.fullWidth]}})(({theme:s,ownerState:o})=>{var et,tt;const nt=s.palette.mode==="light"?s.palette.grey[300]:s.palette.grey[800],rt=s.palette.mode==="light"?s.palette.grey.A100:s.palette.grey[700];return _extends$2({},s.typography.button,{minWidth:64,padding:"6px 16px",borderRadius:(s.vars||s).shape.borderRadius,transition:s.transitions.create(["background-color","box-shadow","border-color","color"],{duration:s.transitions.duration.short}),"&:hover":_extends$2({textDecoration:"none",backgroundColor:s.vars?`rgba(${s.vars.palette.text.primaryChannel} / ${s.vars.palette.action.hoverOpacity})`:alpha$1(s.palette.text.primary,s.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},o.variant==="text"&&o.color!=="inherit"&&{backgroundColor:s.vars?`rgba(${s.vars.palette[o.color].mainChannel} / ${s.vars.palette.action.hoverOpacity})`:alpha$1(s.palette[o.color].main,s.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},o.variant==="outlined"&&o.color!=="inherit"&&{border:`1px solid ${(s.vars||s).palette[o.color].main}`,backgroundColor:s.vars?`rgba(${s.vars.palette[o.color].mainChannel} / ${s.vars.palette.action.hoverOpacity})`:alpha$1(s.palette[o.color].main,s.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},o.variant==="contained"&&{backgroundColor:s.vars?s.vars.palette.Button.inheritContainedHoverBg:rt,boxShadow:(s.vars||s).shadows[4],"@media (hover: none)":{boxShadow:(s.vars||s).shadows[2],backgroundColor:(s.vars||s).palette.grey[300]}},o.variant==="contained"&&o.color!=="inherit"&&{backgroundColor:(s.vars||s).palette[o.color].dark,"@media (hover: none)":{backgroundColor:(s.vars||s).palette[o.color].main}}),"&:active":_extends$2({},o.variant==="contained"&&{boxShadow:(s.vars||s).shadows[8]}),[`&.${buttonClasses$1.focusVisible}`]:_extends$2({},o.variant==="contained"&&{boxShadow:(s.vars||s).shadows[6]}),[`&.${buttonClasses$1.disabled}`]:_extends$2({color:(s.vars||s).palette.action.disabled},o.variant==="outlined"&&{border:`1px solid ${(s.vars||s).palette.action.disabledBackground}`},o.variant==="contained"&&{color:(s.vars||s).palette.action.disabled,boxShadow:(s.vars||s).shadows[0],backgroundColor:(s.vars||s).palette.action.disabledBackground})},o.variant==="text"&&{padding:"6px 8px"},o.variant==="text"&&o.color!=="inherit"&&{color:(s.vars||s).palette[o.color].main},o.variant==="outlined"&&{padding:"5px 15px",border:"1px solid currentColor"},o.variant==="outlined"&&o.color!=="inherit"&&{color:(s.vars||s).palette[o.color].main,border:s.vars?`1px solid rgba(${s.vars.palette[o.color].mainChannel} / 0.5)`:`1px solid ${alpha$1(s.palette[o.color].main,.5)}`},o.variant==="contained"&&{color:s.vars?s.vars.palette.text.primary:(et=(tt=s.palette).getContrastText)==null?void 0:et.call(tt,s.palette.grey[300]),backgroundColor:s.vars?s.vars.palette.Button.inheritContainedBg:nt,boxShadow:(s.vars||s).shadows[2]},o.variant==="contained"&&o.color!=="inherit"&&{color:(s.vars||s).palette[o.color].contrastText,backgroundColor:(s.vars||s).palette[o.color].main},o.color==="inherit"&&{color:"inherit",borderColor:"currentColor"},o.size==="small"&&o.variant==="text"&&{padding:"4px 5px",fontSize:s.typography.pxToRem(13)},o.size==="large"&&o.variant==="text"&&{padding:"8px 11px",fontSize:s.typography.pxToRem(15)},o.size==="small"&&o.variant==="outlined"&&{padding:"3px 9px",fontSize:s.typography.pxToRem(13)},o.size==="large"&&o.variant==="outlined"&&{padding:"7px 21px",fontSize:s.typography.pxToRem(15)},o.size==="small"&&o.variant==="contained"&&{padding:"4px 10px",fontSize:s.typography.pxToRem(13)},o.size==="large"&&o.variant==="contained"&&{padding:"8px 22px",fontSize:s.typography.pxToRem(15)},o.fullWidth&&{width:"100%"})},({ownerState:s})=>s.disableElevation&&{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${buttonClasses$1.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${buttonClasses$1.disabled}`]:{boxShadow:"none"}}),ButtonStartIcon=styled$4("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.startIcon,o[`iconSize${capitalize(et.size)}`]]}})(({ownerState:s})=>_extends$2({display:"inherit",marginRight:8,marginLeft:-4},s.size==="small"&&{marginLeft:-2},commonIconStyles(s))),ButtonEndIcon=styled$4("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.endIcon,o[`iconSize${capitalize(et.size)}`]]}})(({ownerState:s})=>_extends$2({display:"inherit",marginRight:-4,marginLeft:8},s.size==="small"&&{marginRight:-2},commonIconStyles(s))),Button=reactExports.forwardRef(function(o,et){const tt=reactExports.useContext(ButtonGroupContext$1),nt=reactExports.useContext(ButtonGroupButtonContext$1),rt=resolveProps(tt,o),it=useThemeProps({props:rt,name:"MuiButton"}),{children:ot,color:st="primary",component:at="button",className:lt,disabled:ut=!1,disableElevation:dt=!1,disableFocusRipple:ht=!1,endIcon:ct,focusVisibleClassName:pt,fullWidth:ft=!1,size:gt="medium",startIcon:yt,type:Ut,variant:Ft="text"}=it,mt=_objectWithoutPropertiesLoose$2(it,_excluded),vt=_extends$2({},it,{color:st,component:at,disabled:ut,disableElevation:dt,disableFocusRipple:ht,fullWidth:ft,size:gt,type:Ut,variant:Ft}),At=useUtilityClasses(vt),Lt=yt&&jsx$2(ButtonStartIcon,{className:At.startIcon,ownerState:vt,children:yt}),Rt=ct&&jsx$2(ButtonEndIcon,{className:At.endIcon,ownerState:vt,children:ct}),St=nt||"";return jsxs$2(ButtonRoot,_extends$2({ownerState:vt,className:clsx(tt.className,At.root,lt,St),component:at,disabled:ut,focusRipple:!ht,focusVisibleClassName:clsx(At.focusVisible,pt),ref:et,type:Ut},mt,{classes:At,children:[Lt,ot,Rt]}))}),Button$1=Button;var classnames$1={exports:{}};/*! Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames @@ -4589,31 +4589,31 @@ return orthographicDepthToViewZ(depth,cameraNear,cameraFar); * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */function styled$2(s,o){return newStyled(s,o)}function merge$2(s,o){return o?deepmerge(s,o,{clone:!1}):s}const values={xs:0,sm:600,md:900,lg:1200,xl:1536},defaultBreakpoints={keys:["xs","sm","md","lg","xl"],up:s=>`@media (min-width:${values[s]}px)`};function handleBreakpoints(s,o,et){const tt=s.theme||{};if(Array.isArray(o)){const nt=tt.breakpoints||defaultBreakpoints;return o.reduce((rt,it,ot)=>(rt[nt.up(nt.keys[ot])]=et(o[ot]),rt),{})}if(typeof o=="object"){const nt=tt.breakpoints||defaultBreakpoints;return Object.keys(o).reduce((rt,it)=>{if(Object.keys(nt.values||values).indexOf(it)!==-1){const ot=nt.up(it);rt[ot]=et(o[it],it)}else{const ot=it;rt[ot]=o[ot]}return rt},{})}return et(o)}function createEmptyBreakpointObject(s={}){var o;return(s==null||(o=s.keys)==null?void 0:o.reduce((et,tt)=>{const nt=s.up(tt);return et[nt]={},et},{}))||{}}function removeUnusedBreakpoints(s,o){return s.reduce((et,tt)=>{const nt=et[tt];return(!nt||Object.keys(nt).length===0)&&delete et[tt],et},o)}function getPath(s,o){return!o||typeof o!="string"?null:o.split(".").reduce((et,tt)=>et&&et[tt]?et[tt]:null,s)}function getValue$1(s,o,et,tt=et){let nt;return typeof s=="function"?nt=s(et):Array.isArray(s)?nt=s[et]||tt:nt=getPath(s,et)||tt,o&&(nt=o(nt)),nt}function style$1(s){const{prop:o,cssProperty:et=s.prop,themeKey:tt,transform:nt}=s,rt=it=>{if(it[o]==null)return null;const ot=it[o],st=it.theme,at=getPath(st,tt)||{};return handleBreakpoints(it,ot,lt=>{let ut=getValue$1(at,nt,lt);return lt===ut&&typeof lt=="string"&&(ut=getValue$1(at,nt,`${o}${lt==="default"?"":capitalize(lt)}`,lt)),et===!1?ut:{[et]:ut}})};return rt.propTypes={},rt.filterProps=[o],rt}function compose(...s){const o=s.reduce((tt,nt)=>(nt.filterProps.forEach(rt=>{tt[rt]=nt}),tt),{}),et=tt=>Object.keys(tt).reduce((nt,rt)=>o[rt]?merge$2(nt,o[rt](tt)):nt,{});return et.propTypes={},et.filterProps=s.reduce((tt,nt)=>tt.concat(nt.filterProps),[]),et}function memoize$1(s){const o={};return et=>(o[et]===void 0&&(o[et]=s(et)),o[et])}const properties={m:"margin",p:"padding"},directions={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},aliases={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},getCssProperties=memoize$1(s=>{if(s.length>2)if(aliases[s])s=aliases[s];else return[s];const[o,et]=s.split(""),tt=properties[o],nt=directions[et]||"";return Array.isArray(nt)?nt.map(rt=>tt+rt):[tt+nt]}),marginKeys=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],paddingKeys=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],spacingKeys=[...marginKeys,...paddingKeys];function createUnaryUnit(s,o,et,tt){const nt=getPath(s,o)||et;return typeof nt=="number"?rt=>typeof rt=="string"?rt:nt*rt:Array.isArray(nt)?rt=>typeof rt=="string"?rt:nt[rt]:typeof nt=="function"?nt:()=>{}}function createUnarySpacing(s){return createUnaryUnit(s,"spacing",8)}function getValue(s,o){if(typeof o=="string"||o==null)return o;const et=Math.abs(o),tt=s(et);return o>=0?tt:typeof tt=="number"?-tt:`-${tt}`}function getStyleFromPropValue(s,o){return et=>s.reduce((tt,nt)=>(tt[nt]=getValue(o,et),tt),{})}function resolveCssProperty(s,o,et,tt){if(o.indexOf(et)===-1)return null;const nt=getCssProperties(et),rt=getStyleFromPropValue(nt,tt),it=s[et];return handleBreakpoints(s,it,rt)}function style(s,o){const et=createUnarySpacing(s.theme);return Object.keys(s).map(tt=>resolveCssProperty(s,o,tt,et)).reduce(merge$2,{})}function spacing$1(s){return style(s,spacingKeys)}spacing$1.propTypes={};spacing$1.filterProps=spacingKeys;function getBorder(s){return typeof s!="number"?s:`${s}px solid`}const border$1=style$1({prop:"border",themeKey:"borders",transform:getBorder}),borderTop=style$1({prop:"borderTop",themeKey:"borders",transform:getBorder}),borderRight=style$1({prop:"borderRight",themeKey:"borders",transform:getBorder}),borderBottom=style$1({prop:"borderBottom",themeKey:"borders",transform:getBorder}),borderLeft=style$1({prop:"borderLeft",themeKey:"borders",transform:getBorder}),borderColor=style$1({prop:"borderColor",themeKey:"palette"}),borderTopColor=style$1({prop:"borderTopColor",themeKey:"palette"}),borderRightColor=style$1({prop:"borderRightColor",themeKey:"palette"}),borderBottomColor=style$1({prop:"borderBottomColor",themeKey:"palette"}),borderLeftColor=style$1({prop:"borderLeftColor",themeKey:"palette"}),borderRadius=s=>{if(s.borderRadius!==void 0&&s.borderRadius!==null){const o=createUnaryUnit(s.theme,"shape.borderRadius",4),et=tt=>({borderRadius:getValue(o,tt)});return handleBreakpoints(s,s.borderRadius,et)}return null};borderRadius.propTypes={};borderRadius.filterProps=["borderRadius"];const borders=compose(border$1,borderTop,borderRight,borderBottom,borderLeft,borderColor,borderTopColor,borderRightColor,borderBottomColor,borderLeftColor,borderRadius),borders$1=borders,displayPrint=style$1({prop:"displayPrint",cssProperty:!1,transform:s=>({"@media print":{display:s}})}),displayRaw=style$1({prop:"display"}),overflow=style$1({prop:"overflow"}),textOverflow=style$1({prop:"textOverflow"}),visibility=style$1({prop:"visibility"}),whiteSpace=style$1({prop:"whiteSpace"}),display=compose(displayPrint,displayRaw,overflow,textOverflow,visibility,whiteSpace),flexBasis=style$1({prop:"flexBasis"}),flexDirection=style$1({prop:"flexDirection"}),flexWrap=style$1({prop:"flexWrap"}),justifyContent=style$1({prop:"justifyContent"}),alignItems=style$1({prop:"alignItems"}),alignContent=style$1({prop:"alignContent"}),order=style$1({prop:"order"}),flex=style$1({prop:"flex"}),flexGrow=style$1({prop:"flexGrow"}),flexShrink=style$1({prop:"flexShrink"}),alignSelf=style$1({prop:"alignSelf"}),justifyItems=style$1({prop:"justifyItems"}),justifySelf=style$1({prop:"justifySelf"}),flexbox=compose(flexBasis,flexDirection,flexWrap,justifyContent,alignItems,alignContent,order,flex,flexGrow,flexShrink,alignSelf,justifyItems,justifySelf),flexbox$1=flexbox,gap=s=>{if(s.gap!==void 0&&s.gap!==null){const o=createUnaryUnit(s.theme,"spacing",8),et=tt=>({gap:getValue(o,tt)});return handleBreakpoints(s,s.gap,et)}return null};gap.propTypes={};gap.filterProps=["gap"];const columnGap=s=>{if(s.columnGap!==void 0&&s.columnGap!==null){const o=createUnaryUnit(s.theme,"spacing",8),et=tt=>({columnGap:getValue(o,tt)});return handleBreakpoints(s,s.columnGap,et)}return null};columnGap.propTypes={};columnGap.filterProps=["columnGap"];const rowGap=s=>{if(s.rowGap!==void 0&&s.rowGap!==null){const o=createUnaryUnit(s.theme,"spacing",8),et=tt=>({rowGap:getValue(o,tt)});return handleBreakpoints(s,s.rowGap,et)}return null};rowGap.propTypes={};rowGap.filterProps=["rowGap"];const gridColumn=style$1({prop:"gridColumn"}),gridRow=style$1({prop:"gridRow"}),gridAutoFlow=style$1({prop:"gridAutoFlow"}),gridAutoColumns=style$1({prop:"gridAutoColumns"}),gridAutoRows=style$1({prop:"gridAutoRows"}),gridTemplateColumns=style$1({prop:"gridTemplateColumns"}),gridTemplateRows=style$1({prop:"gridTemplateRows"}),gridTemplateAreas=style$1({prop:"gridTemplateAreas"}),gridArea=style$1({prop:"gridArea"}),grid=compose(gap,columnGap,rowGap,gridColumn,gridRow,gridAutoFlow,gridAutoColumns,gridAutoRows,gridTemplateColumns,gridTemplateRows,gridTemplateAreas,gridArea),grid$1=grid,color$1=style$1({prop:"color",themeKey:"palette"}),bgcolor=style$1({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette"}),backgroundColor=style$1({prop:"backgroundColor",themeKey:"palette"}),palette=compose(color$1,bgcolor,backgroundColor),palette$1=palette,position=style$1({prop:"position"}),zIndex$2=style$1({prop:"zIndex",themeKey:"zIndex"}),top$1=style$1({prop:"top"}),right$1=style$1({prop:"right"}),bottom$1=style$1({prop:"bottom"}),left$1=style$1({prop:"left"}),positions$1=compose(position,zIndex$2,top$1,right$1,bottom$1,left$1),boxShadow=style$1({prop:"boxShadow",themeKey:"shadows"}),shadows$2=boxShadow;function transform(s){return s<=1&&s!==0?`${s*100}%`:s}const width=style$1({prop:"width",transform}),maxWidth=s=>{if(s.maxWidth!==void 0&&s.maxWidth!==null){const o=et=>{var tt,nt,rt;return{maxWidth:((tt=s.theme)==null||(nt=tt.breakpoints)==null||(rt=nt.values)==null?void 0:rt[et])||values[et]||transform(et)}};return handleBreakpoints(s,s.maxWidth,o)}return null};maxWidth.filterProps=["maxWidth"];const minWidth=style$1({prop:"minWidth",transform}),height=style$1({prop:"height",transform}),maxHeight=style$1({prop:"maxHeight",transform}),minHeight=style$1({prop:"minHeight",transform});style$1({prop:"size",cssProperty:"width",transform});style$1({prop:"size",cssProperty:"height",transform});const boxSizing=style$1({prop:"boxSizing"}),sizing=compose(width,maxWidth,minWidth,height,maxHeight,minHeight,boxSizing),sizing$1=sizing,fontFamily=style$1({prop:"fontFamily",themeKey:"typography"}),fontSize=style$1({prop:"fontSize",themeKey:"typography"}),fontStyle=style$1({prop:"fontStyle",themeKey:"typography"}),fontWeight=style$1({prop:"fontWeight",themeKey:"typography"}),letterSpacing=style$1({prop:"letterSpacing"}),textTransform=style$1({prop:"textTransform"}),lineHeight=style$1({prop:"lineHeight"}),textAlign=style$1({prop:"textAlign"}),typographyVariant=style$1({prop:"typography",cssProperty:!1,themeKey:"typography"}),typography=compose(typographyVariant,fontFamily,fontSize,fontStyle,fontWeight,letterSpacing,lineHeight,textAlign,textTransform),typography$1=typography,filterPropsMapping={borders:borders$1.filterProps,display:display.filterProps,flexbox:flexbox$1.filterProps,grid:grid$1.filterProps,positions:positions$1.filterProps,palette:palette$1.filterProps,shadows:shadows$2.filterProps,sizing:sizing$1.filterProps,spacing:spacing$1.filterProps,typography:typography$1.filterProps},styleFunctionMapping={borders:borders$1,display,flexbox:flexbox$1,grid:grid$1,positions:positions$1,palette:palette$1,shadows:shadows$2,sizing:sizing$1,spacing:spacing$1,typography:typography$1};Object.keys(filterPropsMapping).reduce((s,o)=>(filterPropsMapping[o].forEach(et=>{s[et]=styleFunctionMapping[o]}),s),{});function objectsHaveSameKeys(...s){const o=s.reduce((tt,nt)=>tt.concat(Object.keys(nt)),[]),et=new Set(o);return s.every(tt=>et.size===Object.keys(tt).length)}function callIfFn(s,o){return typeof s=="function"?s(o):s}function unstable_createStyleFunctionSx(s=styleFunctionMapping){const o=Object.keys(s).reduce((nt,rt)=>(s[rt].filterProps.forEach(it=>{nt[it]=s[rt]}),nt),{});function et(nt,rt,it){const ot={[nt]:rt,theme:it},st=o[nt];return st?st(ot):{[nt]:rt}}function tt(nt){const{sx:rt,theme:it={}}=nt||{};if(!rt)return null;function ot(st){let at=st;if(typeof st=="function")at=st(it);else if(typeof st!="object")return st;if(!at)return null;const lt=createEmptyBreakpointObject(it.breakpoints),ut=Object.keys(lt);let dt=lt;return Object.keys(at).forEach(ht=>{const ct=callIfFn(at[ht],it);if(ct!=null)if(typeof ct=="object")if(o[ht])dt=merge$2(dt,et(ht,ct,it));else{const pt=handleBreakpoints({theme:it},ct,ft=>({[ht]:ft}));objectsHaveSameKeys(pt,ct)?dt[ht]=tt({sx:ct,theme:it}):dt=merge$2(dt,pt)}else dt=merge$2(dt,et(ht,ct,it))}),removeUnusedBreakpoints(ut,dt)}return Array.isArray(rt)?rt.map(ot):ot(rt)}return tt}const styleFunctionSx=unstable_createStyleFunctionSx();styleFunctionSx.filterProps=["sx"];const defaultStyleFunctionSx=styleFunctionSx,_excluded$8=["values","unit","step"],sortBreakpointsValues=s=>{const o=Object.keys(s).map(et=>({key:et,val:s[et]}))||[];return o.sort((et,tt)=>et.val-tt.val),o.reduce((et,tt)=>_extends$1({},et,{[tt.key]:tt.val}),{})};function createBreakpoints(s){const{values:o={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:et="px",step:tt=5}=s,nt=_objectWithoutPropertiesLoose$1(s,_excluded$8),rt=sortBreakpointsValues(o),it=Object.keys(rt);function ot(dt){return`@media (min-width:${typeof o[dt]=="number"?o[dt]:dt}${et})`}function st(dt){return`@media (max-width:${(typeof o[dt]=="number"?o[dt]:dt)-tt/100}${et})`}function at(dt,ht){const ct=it.indexOf(ht);return`@media (min-width:${typeof o[dt]=="number"?o[dt]:dt}${et}) and (max-width:${(ct!==-1&&typeof o[it[ct]]=="number"?o[it[ct]]:ht)-tt/100}${et})`}function lt(dt){return it.indexOf(dt)+1(tt.length===0?[1]:tt).map(nt=>{const rt=o(nt);return typeof rt=="number"?`${rt}px`:rt}).join(" ");return et.mui=!0,et}const _excluded$7=["breakpoints","palette","spacing","shape"];function createTheme$1(s={},...o){const{breakpoints:et={},palette:tt={},spacing:nt,shape:rt={}}=s,it=_objectWithoutPropertiesLoose$1(s,_excluded$7),ot=createBreakpoints(et),st=createSpacing(nt);let at=deepmerge({breakpoints:ot,direction:"ltr",components:{},palette:_extends$1({mode:"light"},tt),spacing:st,shape:_extends$1({},shape$1,rt)},it);return at=o.reduce((lt,ut)=>deepmerge(lt,ut),at),at}createTheme$1();const _excluded$6=["variant"];function isEmpty$1(s){return s.length===0}function propsToClassKey(s){const{variant:o}=s,et=_objectWithoutPropertiesLoose$1(s,_excluded$6);let tt=o||"";return Object.keys(et).sort().forEach(nt=>{nt==="color"?tt+=isEmpty$1(tt)?s[nt]:capitalize(s[nt]):tt+=`${isEmpty$1(tt)?nt:capitalize(nt)}${capitalize(s[nt].toString())}`}),tt}const _excluded$5=["name","slot","skipVariantsResolver","skipSx","overridesResolver"],_excluded2=["theme"],_excluded3=["theme"];function isEmpty(s){return Object.keys(s).length===0}const getStyleOverrides=(s,o)=>o.components&&o.components[s]&&o.components[s].styleOverrides?o.components[s].styleOverrides:null,getVariantStyles=(s,o)=>{let et=[];o&&o.components&&o.components[s]&&o.components[s].variants&&(et=o.components[s].variants);const tt={};return et.forEach(nt=>{const rt=propsToClassKey(nt.props);tt[rt]=nt.style}),tt},variantsResolver=(s,o,et,tt)=>{var nt,rt;const{ownerState:it={}}=s,ot=[],st=et==null||(nt=et.components)==null||(rt=nt[tt])==null?void 0:rt.variants;return st&&st.forEach(at=>{let lt=!0;Object.keys(at.props).forEach(ut=>{it[ut]!==at.props[ut]&&s[ut]!==at.props[ut]&&(lt=!1)}),lt&&ot.push(o[propsToClassKey(at.props)])}),ot};function shouldForwardProp(s){return s!=="ownerState"&&s!=="theme"&&s!=="sx"&&s!=="as"}const systemDefaultTheme=createTheme$1();function createStyled$1(s={}){const{defaultTheme:o=systemDefaultTheme,rootShouldForwardProp:et=shouldForwardProp,slotShouldForwardProp:tt=shouldForwardProp,styleFunctionSx:nt=defaultStyleFunctionSx}=s;return(rt,it={})=>{const{name:ot,slot:st,skipVariantsResolver:at,skipSx:lt,overridesResolver:ut}=it,dt=_objectWithoutPropertiesLoose$1(it,_excluded$5),ht=at!==void 0?at:st&&st!=="Root"||!1,ct=lt||!1;let pt,ft=shouldForwardProp;st==="Root"?ft=et:st&&(ft=tt);const gt=styled$2(rt,_extends$1({shouldForwardProp:ft,label:pt},dt)),yt=(Ut,...Ft)=>{const mt=Ft?Ft.map(Rt=>typeof Rt=="function"&&Rt.__emotion_real!==Rt?St=>{let{theme:Tt}=St,Bt=_objectWithoutPropertiesLoose$1(St,_excluded2);return Rt(_extends$1({theme:isEmpty(Tt)?o:Tt},Bt))}:Rt):[];let vt=Ut;ot&&ut&&mt.push(Rt=>{const St=isEmpty(Rt.theme)?o:Rt.theme,Tt=getStyleOverrides(ot,St);if(Tt){const Bt={};return Object.entries(Tt).forEach(([xt,Ct])=>{Bt[xt]=typeof Ct=="function"?Ct(Rt):Ct}),ut(Rt,Bt)}return null}),ot&&!ht&&mt.push(Rt=>{const St=isEmpty(Rt.theme)?o:Rt.theme;return variantsResolver(Rt,getVariantStyles(ot,St),St,ot)}),ct||mt.push(Rt=>{const St=isEmpty(Rt.theme)?o:Rt.theme;return nt(_extends$1({},Rt,{theme:St}))});const At=mt.length-Ft.length;if(Array.isArray(Ut)&&At>0){const Rt=new Array(At).fill("");vt=[...Ut,...Rt],vt.raw=[...Ut.raw,...Rt]}else typeof Ut=="function"&&Ut.__emotion_real!==Ut&&(vt=Rt=>{let{theme:St}=Rt,Tt=_objectWithoutPropertiesLoose$1(Rt,_excluded3);return Ut(_extends$1({theme:isEmpty(St)?o:St},Tt))});return gt(vt,...mt)};return gt.withConfig&&(yt.withConfig=gt.withConfig),yt}}function clamp$1$1(s,o=0,et=1){return Math.min(Math.max(o,s),et)}function hexToRgb(s){s=s.slice(1);const o=new RegExp(`.{1,${s.length>=6?2:1}}`,"g");let et=s.match(o);return et&&et[0].length===1&&(et=et.map(tt=>tt+tt)),et?`rgb${et.length===4?"a":""}(${et.map((tt,nt)=>nt<3?parseInt(tt,16):Math.round(parseInt(tt,16)/255*1e3)/1e3).join(", ")})`:""}function decomposeColor(s){if(s.type)return s;if(s.charAt(0)==="#")return decomposeColor(hexToRgb(s));const o=s.indexOf("("),et=s.substring(0,o);if(["rgb","rgba","hsl","hsla","color"].indexOf(et)===-1)throw new Error(formatMuiErrorMessage(9,s));let tt=s.substring(o+1,s.length-1),nt;if(et==="color"){if(tt=tt.split(" "),nt=tt.shift(),tt.length===4&&tt[3].charAt(0)==="/"&&(tt[3]=tt[3].slice(1)),["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(nt)===-1)throw new Error(formatMuiErrorMessage(10,nt))}else tt=tt.split(",");return tt=tt.map(rt=>parseFloat(rt)),{type:et,values:tt,colorSpace:nt}}function recomposeColor(s){const{type:o,colorSpace:et}=s;let{values:tt}=s;return o.indexOf("rgb")!==-1?tt=tt.map((nt,rt)=>rt<3?parseInt(nt,10):nt):o.indexOf("hsl")!==-1&&(tt[1]=`${tt[1]}%`,tt[2]=`${tt[2]}%`),o.indexOf("color")!==-1?tt=`${et} ${tt.join(" ")}`:tt=`${tt.join(", ")}`,`${o}(${tt})`}function hslToRgb(s){s=decomposeColor(s);const{values:o}=s,et=o[0],tt=o[1]/100,nt=o[2]/100,rt=tt*Math.min(nt,1-nt),it=(at,lt=(at+et/30)%12)=>nt-rt*Math.max(Math.min(lt-3,9-lt,1),-1);let ot="rgb";const st=[Math.round(it(0)*255),Math.round(it(8)*255),Math.round(it(4)*255)];return s.type==="hsla"&&(ot+="a",st.push(o[3])),recomposeColor({type:ot,values:st})}function getLuminance(s){s=decomposeColor(s);let o=s.type==="hsl"?decomposeColor(hslToRgb(s)).values:s.values;return o=o.map(et=>(s.type!=="color"&&(et/=255),et<=.03928?et/12.92:((et+.055)/1.055)**2.4)),Number((.2126*o[0]+.7152*o[1]+.0722*o[2]).toFixed(3))}function getContrastRatio(s,o){const et=getLuminance(s),tt=getLuminance(o);return(Math.max(et,tt)+.05)/(Math.min(et,tt)+.05)}function darken(s,o){if(s=decomposeColor(s),o=clamp$1$1(o),s.type.indexOf("hsl")!==-1)s.values[2]*=1-o;else if(s.type.indexOf("rgb")!==-1||s.type.indexOf("color")!==-1)for(let et=0;et<3;et+=1)s.values[et]*=1-o;return recomposeColor(s)}function lighten(s,o){if(s=decomposeColor(s),o=clamp$1$1(o),s.type.indexOf("hsl")!==-1)s.values[2]+=(100-s.values[2])*o;else if(s.type.indexOf("rgb")!==-1)for(let et=0;et<3;et+=1)s.values[et]+=(255-s.values[et])*o;else if(s.type.indexOf("color")!==-1)for(let et=0;et<3;et+=1)s.values[et]+=(1-s.values[et])*o;return recomposeColor(s)}function createMixins(s,o,et){return _extends$1({toolbar:{minHeight:56,[`${s.up("xs")} and (orientation: landscape)`]:{minHeight:48},[s.up("sm")]:{minHeight:64}}},et)}const common$1={black:"#000",white:"#fff"},common$1$1=common$1,grey={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},grey$1=grey,purple={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},purple$1=purple,red={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},red$1=red,orange={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},orange$1=orange,blue={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},blue$1=blue,lightBlue={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},lightBlue$1=lightBlue,green={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},green$1=green,_excluded$4=["mode","contrastThreshold","tonalOffset"],light={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:common$1$1.white,default:common$1$1.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},dark={text:{primary:common$1$1.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:common$1$1.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function addLightOrDark(s,o,et,tt){const nt=tt.light||tt,rt=tt.dark||tt*1.5;s[o]||(s.hasOwnProperty(et)?s[o]=s[et]:o==="light"?s.light=lighten(s.main,nt):o==="dark"&&(s.dark=darken(s.main,rt)))}function getDefaultPrimary(s="light"){return s==="dark"?{main:blue$1[200],light:blue$1[50],dark:blue$1[400]}:{main:blue$1[700],light:blue$1[400],dark:blue$1[800]}}function getDefaultSecondary(s="light"){return s==="dark"?{main:purple$1[200],light:purple$1[50],dark:purple$1[400]}:{main:purple$1[500],light:purple$1[300],dark:purple$1[700]}}function getDefaultError(s="light"){return s==="dark"?{main:red$1[500],light:red$1[300],dark:red$1[700]}:{main:red$1[700],light:red$1[400],dark:red$1[800]}}function getDefaultInfo(s="light"){return s==="dark"?{main:lightBlue$1[400],light:lightBlue$1[300],dark:lightBlue$1[700]}:{main:lightBlue$1[700],light:lightBlue$1[500],dark:lightBlue$1[900]}}function getDefaultSuccess(s="light"){return s==="dark"?{main:green$1[400],light:green$1[300],dark:green$1[700]}:{main:green$1[800],light:green$1[500],dark:green$1[900]}}function getDefaultWarning(s="light"){return s==="dark"?{main:orange$1[400],light:orange$1[300],dark:orange$1[700]}:{main:"#ed6c02",light:orange$1[500],dark:orange$1[900]}}function createPalette(s){const{mode:o="light",contrastThreshold:et=3,tonalOffset:tt=.2}=s,nt=_objectWithoutPropertiesLoose$1(s,_excluded$4),rt=s.primary||getDefaultPrimary(o),it=s.secondary||getDefaultSecondary(o),ot=s.error||getDefaultError(o),st=s.info||getDefaultInfo(o),at=s.success||getDefaultSuccess(o),lt=s.warning||getDefaultWarning(o);function ut(ct){return getContrastRatio(ct,dark.text.primary)>=et?dark.text.primary:light.text.primary}const dt=({color:ct,name:pt,mainShade:ft=500,lightShade:gt=300,darkShade:yt=700})=>{if(ct=_extends$1({},ct),!ct.main&&ct[ft]&&(ct.main=ct[ft]),!ct.hasOwnProperty("main"))throw new Error(formatMuiErrorMessage(11,pt?` (${pt})`:"",ft));if(typeof ct.main!="string")throw new Error(formatMuiErrorMessage(12,pt?` (${pt})`:"",JSON.stringify(ct.main)));return addLightOrDark(ct,"light",gt,tt),addLightOrDark(ct,"dark",yt,tt),ct.contrastText||(ct.contrastText=ut(ct.main)),ct},ht={dark,light};return deepmerge(_extends$1({common:common$1$1,mode:o,primary:dt({color:rt,name:"primary"}),secondary:dt({color:it,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:dt({color:ot,name:"error"}),warning:dt({color:lt,name:"warning"}),info:dt({color:st,name:"info"}),success:dt({color:at,name:"success"}),grey:grey$1,contrastThreshold:et,getContrastText:ut,augmentColor:dt,tonalOffset:tt},ht[o]),nt)}const _excluded$3=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];function round$1(s){return Math.round(s*1e5)/1e5}const caseAllCaps={textTransform:"uppercase"},defaultFontFamily='"Roboto", "Helvetica", "Arial", sans-serif';function createTypography(s,o){const et=typeof o=="function"?o(s):o,{fontFamily:tt=defaultFontFamily,fontSize:nt=14,fontWeightLight:rt=300,fontWeightRegular:it=400,fontWeightMedium:ot=500,fontWeightBold:st=700,htmlFontSize:at=16,allVariants:lt,pxToRem:ut}=et,dt=_objectWithoutPropertiesLoose$1(et,_excluded$3),ht=nt/14,ct=ut||(gt=>`${gt/at*ht}rem`),pt=(gt,yt,Ut,Ft,mt)=>_extends$1({fontFamily:tt,fontWeight:gt,fontSize:ct(yt),lineHeight:Ut},tt===defaultFontFamily?{letterSpacing:`${round$1(Ft/yt)}em`}:{},mt,lt),ft={h1:pt(rt,96,1.167,-1.5),h2:pt(rt,60,1.2,-.5),h3:pt(it,48,1.167,0),h4:pt(it,34,1.235,.25),h5:pt(it,24,1.334,0),h6:pt(ot,20,1.6,.15),subtitle1:pt(it,16,1.75,.15),subtitle2:pt(ot,14,1.57,.1),body1:pt(it,16,1.5,.15),body2:pt(it,14,1.43,.15),button:pt(ot,14,1.75,.4,caseAllCaps),caption:pt(it,12,1.66,.4),overline:pt(it,12,2.66,1,caseAllCaps)};return deepmerge(_extends$1({htmlFontSize:at,pxToRem:ct,fontFamily:tt,fontSize:nt,fontWeightLight:rt,fontWeightRegular:it,fontWeightMedium:ot,fontWeightBold:st},ft),dt,{clone:!1})}const shadowKeyUmbraOpacity=.2,shadowKeyPenumbraOpacity=.14,shadowAmbientShadowOpacity=.12;function createShadow(...s){return[`${s[0]}px ${s[1]}px ${s[2]}px ${s[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`,`${s[4]}px ${s[5]}px ${s[6]}px ${s[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`,`${s[8]}px ${s[9]}px ${s[10]}px ${s[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(",")}const shadows=["none",createShadow(0,2,1,-1,0,1,1,0,0,1,3,0),createShadow(0,3,1,-2,0,2,2,0,0,1,5,0),createShadow(0,3,3,-2,0,3,4,0,0,1,8,0),createShadow(0,2,4,-1,0,4,5,0,0,1,10,0),createShadow(0,3,5,-1,0,5,8,0,0,1,14,0),createShadow(0,3,5,-1,0,6,10,0,0,1,18,0),createShadow(0,4,5,-2,0,7,10,1,0,2,16,1),createShadow(0,5,5,-3,0,8,10,1,0,3,14,2),createShadow(0,5,6,-3,0,9,12,1,0,3,16,2),createShadow(0,6,6,-3,0,10,14,1,0,4,18,3),createShadow(0,6,7,-4,0,11,15,1,0,4,20,3),createShadow(0,7,8,-4,0,12,17,2,0,5,22,4),createShadow(0,7,8,-4,0,13,19,2,0,5,24,4),createShadow(0,7,9,-4,0,14,21,2,0,5,26,4),createShadow(0,8,9,-5,0,15,22,2,0,6,28,5),createShadow(0,8,10,-5,0,16,24,2,0,6,30,5),createShadow(0,8,11,-5,0,17,26,2,0,6,32,5),createShadow(0,9,11,-5,0,18,28,2,0,7,34,6),createShadow(0,9,12,-6,0,19,29,2,0,7,36,6),createShadow(0,10,13,-6,0,20,31,3,0,8,38,7),createShadow(0,10,13,-6,0,21,33,3,0,8,40,7),createShadow(0,10,14,-6,0,22,35,3,0,8,42,7),createShadow(0,11,14,-7,0,23,36,3,0,9,44,8),createShadow(0,11,15,-7,0,24,38,3,0,9,46,8)],shadows$1=shadows,_excluded$2=["duration","easing","delay"],easing={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},duration$4={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function formatMs(s){return`${Math.round(s)}ms`}function getAutoHeightDuration(s){if(!s)return 0;const o=s/36;return Math.round((4+15*o**.25+o/5)*10)}function createTransitions(s){const o=_extends$1({},easing,s.easing),et=_extends$1({},duration$4,s.duration);return _extends$1({getAutoHeightDuration,create:(tt=["all"],nt={})=>{const{duration:rt=et.standard,easing:it=o.easeInOut,delay:ot=0}=nt;return _objectWithoutPropertiesLoose$1(nt,_excluded$2),(Array.isArray(tt)?tt:[tt]).map(st=>`${st} ${typeof rt=="string"?rt:formatMs(rt)} ${it} ${typeof ot=="string"?ot:formatMs(ot)}`).join(",")}},s,{easing:o,duration:et})}const zIndex={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},zIndex$1=zIndex,_excluded$1=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function createTheme(s={},...o){const{mixins:et={},palette:tt={},transitions:nt={},typography:rt={}}=s,it=_objectWithoutPropertiesLoose$1(s,_excluded$1),ot=createPalette(tt),st=createTheme$1(s);let at=deepmerge(st,{mixins:createMixins(st.breakpoints,st.spacing,et),palette:ot,shadows:shadows$1.slice(),typography:createTypography(ot,rt),transitions:createTransitions(nt),zIndex:_extends$1({},zIndex$1)});return at=deepmerge(at,it),at=o.reduce((lt,ut)=>deepmerge(lt,ut),at),at}const defaultTheme$1=createTheme(),defaultTheme$2=defaultTheme$1,rootShouldForwardProp=s=>shouldForwardProp(s)&&s!=="classes",styled$1=createStyled$1({defaultTheme:defaultTheme$2,rootShouldForwardProp}),styled$1$1=styled$1,html=(s,o)=>_extends$1({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%"},o&&{colorScheme:s.palette.mode}),body=s=>_extends$1({color:s.palette.text.primary},s.typography.body1,{backgroundColor:s.palette.background.default,"@media print":{backgroundColor:s.palette.common.white}});generateUtilityClasses("MuiScopedCssBaseline",["root"]);styled$1$1("div",{name:"MuiScopedCssBaseline",slot:"Root",overridesResolver:(s,o)=>o.root})(({theme:s,ownerState:o})=>_extends$1({},html(s,o.enableColorScheme),body(s),{"& *, & *::before, & *::after":{boxSizing:"inherit"},"& strong, & b":{fontWeight:s.typography.fontWeightBold}}));const baseTheme=createTheme$2({typography:{fontFamily:"'Moderat', 'Inter', 'Source Sans Pro', sans-serif",h1:{fontStyle:"normal",fontWeight:"normal",fontSize:"2rem",lineHeight:"2.5rem",letterSpacing:0},h2:{fontStyle:"normal",fontWeight:"normal",fontSize:"1.5rem",lineHeight:"2.125rem",letterSpacing:"0.069rem",fontFeatureSettings:'"zero" on'},h3:{fontStyle:"normal",fontWeight:500,fontSize:"1.125rem",lineHeight:"1.688rem",letterSpacing:"0.069rem"},h4:{fontStyle:"normal",fontWeight:700,fontSize:"0.813rem",lineHeight:"1.375rem",letterSpacing:"0.069rem",textTransform:"uppercase"},h5:{fontStyle:"normal",fontWeight:700,fontSize:"0.813rem",lineHeight:"1.125rem",letterSpacing:"0.038rem",textTransform:"uppercase"},h6:{fontStyle:"normal",fontWeight:"normal",fontSize:"0.625rem",lineHeight:"0.938rem",letterSpacing:"0.063rem"},body1:{fontStyle:"normal",fontWeight:"normal",fontSize:"1rem",lineHeight:"1.688rem",letterSpacing:"0.063rem",fontFeatureSettings:'"zero" on'},body2:{fontStyle:"normal",fontWeight:"normal",fontSize:"1rem",lineHeight:"1.688rem",letterSpacing:"0.063rem",fontFeatureSettings:'"zero" on',fontVariantNumeric:"tabular-nums"},button:{fontWeight:500,fontSize:"0.875rem",lineHeight:"1.05rem",letterSpacing:"0.053.rem",textTransform:"uppercase"}}}),lightPalette={palette:{mode:"light",success:{main:"#34dea9",dark:"#2d8376"},info:{main:"#297ceb",dark:"#256faf",light:"#3BABFF"},error:{main:"#fd76a7",dark:"#7f5072"},warning:{main:"#ffb179",dark:"#94645f"},primary:{main:"#657197",light:"#BAC4E2",dark:"#3B4668"},secondary:{main:"#3babff",dark:"#76a7dc"},background:{default:"#FFFFFF",paper:"#F1F3F9"},common:{black:"#ffffff",white:"#000000"}}},darkPalette={palette:{mode:"dark",primary:{main:"#657197",dark:"#3B4668",light:"#BAC4E2",contrastText:"#ffffff"},secondary:{main:"#18d2ff",light:"#18d2ff",dark:"#256faf"},background:{default:"#2d3855",paper:"#2d3855"},common:{black:"#000000",white:"#ffffff"},text:{primary:"#bac4e2"},error:{main:"#ea719d",dark:"#7F5072"},warning:{main:"#a961e4",dark:"#564A94"},info:{main:"#20a0ff",dark:"#256FAF"},success:{main:"#2ec495",dark:"#2D8376"}}};function createComponents(s){const o={components:{MuiCssBaseline:{styleOverrides:{body:{"&::-webkit-scrollbar, & *::-webkit-scrollbar":{background:"transparent",width:"0.5rem",height:"0.5rem"},"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb":{background:s.palette.primary.light,borderRadius:"0.25rem"},"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover":{backgroundColor:s.palette.primary.light},"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner":{backgroundColor:s.palette.primary.light}}}},MuiLink:{styleOverrides:{root:{color:s.palette.secondary.main}}},MuiDialogActions:{styleOverrides:{root:{padding:baseTheme.spacing(3)}}},MuiInputLabel:{styleOverrides:{root:{color:s.palette.primary.light,"&.Mui-focused":{color:s.palette.secondary.main}},outlined:{borderRadius:4,padding:"0.125rem 0.375rem","&.Mui-focused":{backgroundColor:"#2d3855"}}}},MuiFilledInput:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,borderTop:"1px solid transparent",":before":{borderBottom:`1px dotted ${s.palette.primary.light}`},"&.Mui-focused":{background:s.palette.common.black,border:`1px solid ${s.palette.secondary.main}`,borderBottom:"none",borderTop:`1px solid ${s.palette.secondary.main}`},":after":{borderBottom:`1px solid ${s.palette.secondary.main}`}}}},MuiOutlinedInput:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,borderBottomLeftRadius:0,borderBottomRightRadius:0,borderBottom:`1px dotted ${s.palette.primary.light}`,"&.Mui-focused":{border:`1px solid ${s.palette.secondary.main}`,backgroundColor:s.palette.common.black}},notchedOutline:{border:"transparent"},input:{"&:-webkit-autofill":{"-webkit-box-shadow":`0 0 0 100px ${s.palette.primary.dark} inset`,"-webkit-text-fill-color":s.palette.primary.light}}}},MuiFormHelperText:{styleOverrides:{root:{color:s.palette.error.main}}},MuiTooltip:{styleOverrides:{tooltip:{backgroundColor:"rgba(0, 0, 0, 0.87)",color:"white",padding:baseTheme.spacing(1.2)}}},MuiDialogTitle:{styleOverrides:{root:{color:s.palette.common.white,fontStyle:"normal",fontWeight:500,...baseTheme.typography.h3}}},MuiDialogContentText:{styleOverrides:{root:{color:s.palette.primary.light}}},MuiButtonBase:{defaultProps:{disableRipple:!0}},MuiButton:{styleOverrides:{root:{willChange:"background-color , color , border-color , box-shadow",transition:"background-color 200ms ease-in-out 0ms , color 200ms ease-in-out 0ms , border-color 200ms ease-in-out 0ms , box-shadow 200ms ease-in-out 0ms",borderRadius:40,boxShadow:`0 0 0 0rem ${s.palette.primary.main}`,"&.Mui-disabled":{color:s.palette.primary.main}},sizeSmall:{height:"1.25rem",fontWeight:500,fontSize:"0.688rem",lineHeight:"0.825rem",letterSpacing:"0.047rem"},sizeMedium:{height:"1.813rem",fontWeight:500},sizeLarge:{height:"2.563rem",fontWeight:500,fontSize:"0.875rem",lineHeight:"1.05rem",letterSpacing:"0.053rem"},containedPrimary:{background:s.palette.primary.light,color:s.palette.common.black,"@media(hover: hover)":{"&:hover":{boxShadow:`0 0 0 0.4rem ${s.palette.primary.light}`,background:s.palette.primary.light}}},containedSecondary:{color:s.palette.common.black,"@media(hover: hover)":{"&:hover":{boxShadow:`0 0 0 0.4rem ${s.palette.secondary.main}`,background:s.palette.secondary.main}}},outlinedPrimary:{color:s.palette.primary.light}}},MuiDialog:{styleOverrides:{paper:{background:s.palette.background.paper}}},MuiNativeSelect:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,borderTop:"1px solid transparent"},icon:{color:s.palette.primary.light}}},MuiSelect:{styleOverrides:{icon:{color:s.palette.primary.light}}},MuiSnackbarContent:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,color:s.palette.primary.light}}},MuiSwitch:{styleOverrides:{switchBase:{"&.Mui-checked+.MuiSwitch-track":{backgroundColor:s.palette.common.black},"&.Mui-checked .MuiSwitch-thumb":{backgroundColor:s.palette.secondary.main}},thumb:{backgroundColor:s.palette.primary.light},track:{backgroundColor:s.palette.common.black}}}}};return createTheme$2(s,o)}createComponents(createTheme$2(baseTheme,darkPalette));createComponents(createTheme$2(baseTheme,lightPalette));function toInteger$1(s){if(s===null||s===!0||s===!1)return NaN;var o=Number(s);return isNaN(o)?o:o<0?Math.ceil(o):Math.floor(o)}function requiredArgs$1(s,o){if(o.length1?"s":"")+" required, but only "+o.length+" present")}function _typeof$1$1(s){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$1$1=function(o){return typeof o}:_typeof$1$1=function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof$1$1(s)}function toDate$1(s){requiredArgs$1(1,arguments);var o=Object.prototype.toString.call(s);return s instanceof Date||_typeof$1$1(s)==="object"&&o==="[object Date]"?new Date(s.getTime()):typeof s=="number"||o==="[object Number]"?new Date(s):((typeof s=="string"||o==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function addDays$1(s,o){requiredArgs$1(2,arguments);var et=toDate$1(s),tt=toInteger$1(o);return isNaN(tt)?new Date(NaN):(tt&&et.setDate(et.getDate()+tt),et)}function addMonths$1(s,o){requiredArgs$1(2,arguments);var et=toDate$1(s),tt=toInteger$1(o);if(isNaN(tt))return new Date(NaN);if(!tt)return et;var nt=et.getDate(),rt=new Date(et.getTime());rt.setMonth(et.getMonth()+tt+1,0);var it=rt.getDate();return nt>=it?rt:(et.setFullYear(rt.getFullYear(),rt.getMonth(),nt),et)}function addMilliseconds$1(s,o){requiredArgs$1(2,arguments);var et=toDate$1(s).getTime(),tt=toInteger$1(o);return new Date(et+tt)}var MILLISECONDS_IN_HOUR$1=36e5;function addHours$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addMilliseconds$1(s,et*MILLISECONDS_IN_HOUR$1)}var defaultOptions$1={};function getDefaultOptions$1(){return defaultOptions$1}function startOfWeek$1(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs$1(1,arguments);var lt=getDefaultOptions$1(),ut=toInteger$1((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate$1(s),ht=dt.getDay(),ct=(ht=it)throw new RangeError("Invalid interval");var ot=[],st=tt,at=Number((et=o?.step)!==null&&et!==void 0?et:1);if(at<1||isNaN(at))throw new RangeError("`options.step` must be a number equal to or greater than 1");for(;st.getTime()<=it;)ot.push(toDate$1(st)),st=addMinutes$1(st,at);return ot}function eachMonthOfInterval$1(s){requiredArgs$1(1,arguments);var o=s||{},et=toDate$1(o.start),tt=toDate$1(o.end),nt=tt.getTime(),rt=[];if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var it=et;for(it.setHours(0,0,0,0),it.setDate(1);it.getTime()<=nt;)rt.push(toDate$1(it)),it.setMonth(it.getMonth()+1);return rt}function startOfQuarter$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s),et=o.getMonth(),tt=et-et%3;return o.setMonth(tt,1),o.setHours(0,0,0,0),o}function eachQuarterOfInterval$1(s){requiredArgs$1(1,arguments);var o=s||{},et=toDate$1(o.start),tt=toDate$1(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=startOfQuarter$1(et),it=startOfQuarter$1(tt);nt=it.getTime();for(var ot=[],st=rt;st.getTime()<=nt;)ot.push(toDate$1(st)),st=addQuarters$1(st,1);return ot}function eachWeekOfInterval$1(s,o){requiredArgs$1(1,arguments);var et=s||{},tt=toDate$1(et.start),nt=toDate$1(et.end),rt=nt.getTime();if(!(tt.getTime()<=rt))throw new RangeError("Invalid interval");var it=startOfWeek$1(tt,o),ot=startOfWeek$1(nt,o);it.setHours(15),ot.setHours(15),rt=ot.getTime();for(var st=[],at=it;at.getTime()<=rt;)at.setHours(0),st.push(toDate$1(at)),at=addWeeks$1(at,1),at.setHours(15);return st}function startOfMonth$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s);return o.setDate(1),o.setHours(0,0,0,0),o}function endOfYear$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s),et=o.getFullYear();return o.setFullYear(et+1,0,0),o.setHours(23,59,59,999),o}function startOfYear$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s),et=new Date(0);return et.setFullYear(o.getFullYear(),0,1),et.setHours(0,0,0,0),et}function eachYearOfInterval$1(s){requiredArgs$1(1,arguments);var o=s||{},et=toDate$1(o.start),tt=toDate$1(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=[],it=et;for(it.setHours(0,0,0,0),it.setMonth(0,1);it.getTime()<=nt;)rt.push(toDate$1(it)),it.setFullYear(it.getFullYear()+1);return rt}function endOfHour$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s);return o.setMinutes(59,59,999),o}function endOfWeek$1(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs$1(1,arguments);var lt=getDefaultOptions$1(),ut=toInteger$1((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate$1(s),ht=dt.getDay(),ct=(ht=1&&ht<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var ct=new Date(0);ct.setFullYear(ut+1,0,ht),ct.setHours(0,0,0,0);var pt=startOfWeek$1(ct,o),ft=new Date(0);ft.setFullYear(ut,0,ht),ft.setHours(0,0,0,0);var gt=startOfWeek$1(ft,o);return lt.getTime()>=pt.getTime()?ut+1:lt.getTime()>=gt.getTime()?ut:ut-1}function startOfWeekYear$1(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs$1(1,arguments);var lt=getDefaultOptions$1(),ut=toInteger$1((et=(tt=(nt=(rt=o?.firstWeekContainsDate)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.firstWeekContainsDate)!==null&&nt!==void 0?nt:lt.firstWeekContainsDate)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.firstWeekContainsDate)!==null&&et!==void 0?et:1),dt=getWeekYear$1(s,o),ht=new Date(0);ht.setFullYear(dt,0,ut),ht.setHours(0,0,0,0);var ct=startOfWeek$1(ht,o);return ct}var MILLISECONDS_IN_WEEK$1=6048e5;function getWeek$1(s,o){requiredArgs$1(1,arguments);var et=toDate$1(s),tt=startOfWeek$1(et,o).getTime()-startOfWeekYear$1(et,o).getTime();return Math.round(tt/MILLISECONDS_IN_WEEK$1)+1}function getYear$1(s){return requiredArgs$1(1,arguments),toDate$1(s).getFullYear()}function startOfHour$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s);return o.setMinutes(0,0,0),o}function subDays$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addDays$1(s,-et)}function roundToNearestMinutes$1(s,o){var et;if(arguments.length<1)throw new TypeError("1 argument required, but only none provided present");var tt=toInteger$1((et=o?.nearestTo)!==null&&et!==void 0?et:1);if(tt<1||tt>30)throw new RangeError("`options.nearestTo` must be between 1 and 30");var nt=toDate$1(s),rt=nt.getSeconds(),it=nt.getMinutes()+rt/60,ot=getRoundingMethod$1(o?.roundingMethod),st=ot(it/tt)*tt,at=it%tt,lt=Math.round(at/tt)*tt;return new Date(nt.getFullYear(),nt.getMonth(),nt.getDate(),nt.getHours(),st+lt)}function subMonths$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addMonths$1(s,-et)}function subHours$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addHours$1(s,-et)}function subMinutes$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addMinutes$1(s,-et)}function subQuarters$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addQuarters$1(s,-et)}function subWeeks$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addWeeks$1(s,-et)}function subYears$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addYears$1(s,-et)}var __defProp$1=Object.defineProperty,__defNormalProp$1=(s,o,et)=>o in s?__defProp$1(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,__publicField$1=(s,o,et)=>(__defNormalProp$1(s,typeof o!="symbol"?o+"":o,et),et),dist$1={exports:{}};/*! For license information please see index.js.LICENSE.txt */(function(module,exports){(function(s,o){module.exports=o()})(window,function(){return function(s){function o(at){for(var lt,ut,dt=at[0],ht=at[1],ct=0,pt=[];ct1?"s":"")+" required, but only "+$t.length+" present")}function ut(It){if(It===null||It===!0||It===!1)return NaN;var $t=Number(It);return isNaN($t)?$t:$t<0?Math.ceil($t):Math.floor($t)}var dt={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},ht=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,ct=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,pt=/^([+-])(\d{2})(?::?(\d{2}))?$/;function ft(It){var $t,Ht={},qt=It.split(dt.dateTimeDelimiter);if(qt.length>2)return Ht;if(/:/.test(qt[0])?$t=qt[0]:(Ht.date=qt[0],$t=qt[1],dt.timeZoneDelimiter.test(Ht.date)&&(Ht.date=It.split(dt.timeZoneDelimiter)[0],$t=It.substr(Ht.date.length,It.length))),$t){var on=dt.timezone.exec($t);on?(Ht.time=$t.replace(on[1],""),Ht.timezone=on[1]):Ht.time=$t}return Ht}function gt(It,$t){var Ht=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+$t)+"})|(\\d{2}|[+-]\\d{"+(2+$t)+"})$)"),qt=It.match(Ht);if(!qt)return{year:NaN,restDateString:""};var on=qt[1]?parseInt(qt[1]):null,Xt=qt[2]?parseInt(qt[2]):null;return{year:Xt===null?on:100*Xt,restDateString:It.slice((qt[1]||qt[2]).length)}}function yt(It,$t){if($t===null)return new Date(NaN);var Ht=It.match(ht);if(!Ht)return new Date(NaN);var qt=!!Ht[4],on=Ut(Ht[1]),Xt=Ut(Ht[2])-1,dn=Ut(Ht[3]),_n=Ut(Ht[4]),Fn=Ut(Ht[5])-1;if(qt)return function(On,gn,hn){return gn>=1&&gn<=53&&hn>=0&&hn<=6}(0,_n,Fn)?function(On,gn,hn){var wn=new Date(0);wn.setUTCFullYear(On,0,4);var Zn=wn.getUTCDay()||7,Pn=7*(gn-1)+hn+1-Zn;return wn.setUTCDate(wn.getUTCDate()+Pn),wn}($t,_n,Fn):new Date(NaN);var Un=new Date(0);return function(On,gn,hn){return gn>=0&&gn<=11&&hn>=1&&hn<=(At[gn]||(Lt(On)?29:28))}($t,Xt,dn)&&function(On,gn){return gn>=1&&gn<=(Lt(On)?366:365)}($t,on)?(Un.setUTCFullYear($t,Xt,Math.max(on,dn)),Un):new Date(NaN)}function Ut(It){return It?parseInt(It):1}function Ft(It){var $t=It.match(ct);if(!$t)return NaN;var Ht=mt($t[1]),qt=mt($t[2]),on=mt($t[3]);return function(Xt,dn,_n){return Xt===24?dn===0&&_n===0:_n>=0&&_n<60&&dn>=0&&dn<60&&Xt>=0&&Xt<25}(Ht,qt,on)?36e5*Ht+6e4*qt+1e3*on:NaN}function mt(It){return It&&parseFloat(It.replace(",","."))||0}function vt(It){if(It==="Z")return 0;var $t=It.match(pt);if(!$t)return 0;var Ht=$t[1]==="+"?-1:1,qt=parseInt($t[2]),on=$t[3]&&parseInt($t[3])||0;return function(Xt,dn){return dn>=0&&dn<=59}(0,on)?Ht*(36e5*qt+6e4*on):NaN}var At=[31,null,31,30,31,30,31,31,30,31,30,31];function Lt(It){return It%400==0||It%4==0&&It%100!=0}function Rt(It){return lt(1,arguments),It instanceof Date||typeof It=="object"&&Object.prototype.toString.call(It)==="[object Date]"}function St(It){lt(1,arguments);var $t=Object.prototype.toString.call(It);return It instanceof Date||typeof It=="object"&&$t==="[object Date]"?new Date(It.getTime()):typeof It=="number"||$t==="[object Number]"?new Date(It):(typeof It!="string"&&$t!=="[object String]"||typeof console>"u"||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function Tt(It){const $t=function(Ht,qt){var on;lt(1,arguments);var Xt=ut((on=qt?.additionalDigits)!==null&&on!==void 0?on:2);if(Xt!==2&&Xt!==1&&Xt!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(typeof Ht!="string"&&Object.prototype.toString.call(Ht)!=="[object String]")return new Date(NaN);var dn,_n=ft(Ht);if(_n.date){var Fn=gt(_n.date,Xt);dn=yt(Fn.restDateString,Fn.year)}if(!dn||isNaN(dn.getTime()))return new Date(NaN);var Un,On=dn.getTime(),gn=0;if(_n.time&&(gn=Ft(_n.time),isNaN(gn)))return new Date(NaN);if(!_n.timezone){var hn=new Date(On+gn),wn=new Date(0);return wn.setFullYear(hn.getUTCFullYear(),hn.getUTCMonth(),hn.getUTCDate()),wn.setHours(hn.getUTCHours(),hn.getUTCMinutes(),hn.getUTCSeconds(),hn.getUTCMilliseconds()),wn}return Un=vt(_n.timezone),isNaN(Un)?new Date(NaN):new Date(On+gn+Un)}(It);if(!function(Ht){if(lt(1,arguments),!Rt(Ht)&&typeof Ht!="number")return!1;var qt=St(Ht);return!isNaN(Number(qt))}($t))throw new Error(`Invalid ISO 8601 date string (${It})`);return $t}var Bt=et(4),xt=et(34);function Ct(It){return nt()(It,{cycles:!0})}var kt=function(It,$t){var Ht={};for(var qt in It)Object.prototype.hasOwnProperty.call(It,qt)&&$t.indexOf(qt)<0&&(Ht[qt]=It[qt]);if(It!=null&&typeof Object.getOwnPropertySymbols=="function"){var on=0;for(qt=Object.getOwnPropertySymbols(It);on$t.redacted!==!1?Object(xt.a)(_n):_n;if(!It.stack)return{message:Ct(Ht(It))};const{name:qt,message:on,stack:Xt}=It,dn=kt(It,["name","message","stack"]);return{name:qt,message:on!==void 0?on:Ct(Ht(It)),stack:Xt,meta:dn&&Object.keys(dn).length===0?void 0:Ht(dn)}}function Ot(It,$t={}){const{message:Ht,stack:qt,meta:on}=Nt(It,$t);return`${qt||Ht||""}${on&&Object.keys(on).length>0?` -- ${Ct(on)}`:""}`}var Wt=et(39),Dt=et(103),Et=et.n(Dt),Pt=function(It,$t,Ht,qt){return new(Ht||(Ht=Promise))(function(on,Xt){function dn(Un){try{Fn(qt.next(Un))}catch(On){Xt(On)}}function _n(Un){try{Fn(qt.throw(Un))}catch(On){Xt(On)}}function Fn(Un){var On;Un.done?on(Un.value):(On=Un.value,On instanceof Ht?On:new Ht(function(gn){gn(On)})).then(dn,_n)}Fn((qt=qt.apply(It,$t||[])).next())})},zt=function(It,$t){var Ht={};for(var qt in It)Object.prototype.hasOwnProperty.call(It,qt)&&$t.indexOf(qt)<0&&(Ht[qt]=It[qt]);if(It!=null&&typeof Object.getOwnPropertySymbols=="function"){var on=0;for(qt=Object.getOwnPropertySymbols(It);on{var{timestamp:$t,level:Ht,message:qt,error:on}=It,Xt=Kt(It,["timestamp","level","message","error"]);const dn=Object.assign(Object.assign({timestamp:$t?Tt($t).getTime():new Date().getTime(),level:Ht.toUpperCase(),message:qt},on?{error:Nt(on)}:{}),{meta:Object.assign(Object.assign({},nn),Xt)});return nt()(dn,{cycles:!0})}):ot.format.printf(It=>{var{timestamp:$t,level:Ht,message:qt,error:on}=It,Xt=Kt(It,["timestamp","level","message","error"]);let dn=`${$t||new Date().toISOString()} ${Ht.toUpperCase()}: ${qt} `;return Object.keys(Xt).length>0&&(dn+=nt()(Xt,{cycles:!0})),on&&(dn+=` -${Ot(on)}`),dn}),jt=Object(ot.createLogger)({level:Bt.f});if(Bt.g&&jt.add(new ot.transports.Console({format:Zt,level:"debug"})),Bt.d&&jt.add(new en(Bt.d,nn)),Bt.h){const It=it.resolve(rt.tmpdir(),`silly-${Bt.a}.log`);jt.debug("Logging silly logs to file",{filename:It}),jt.add(new ot.transports.File({filename:It,maxsize:1*at,maxFiles:10,format:ot.format.combine((Vt="silly",Object(ot.format)($t=>$t.level===Vt&&$t)()),Zt),level:"silly"}))}var Vt},function(s,o,et){et.d(o,"a",function(){return tt});const tt={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:2592e6,year:31536e6}},function(s,o){var et,tt,nt=s.exports={};function rt(){throw new Error("setTimeout has not been defined")}function it(){throw new Error("clearTimeout has not been defined")}function ot(ft){if(et===setTimeout)return setTimeout(ft,0);if((et===rt||!et)&&setTimeout)return et=setTimeout,setTimeout(ft,0);try{return et(ft,0)}catch{try{return et.call(null,ft,0)}catch{return et.call(this,ft,0)}}}(function(){try{et=typeof setTimeout=="function"?setTimeout:rt}catch{et=rt}try{tt=typeof clearTimeout=="function"?clearTimeout:it}catch{tt=it}})();var st,at=[],lt=!1,ut=-1;function dt(){lt&&st&&(lt=!1,st.length?at=st.concat(at):ut=-1,at.length&&ht())}function ht(){if(!lt){var ft=ot(dt);lt=!0;for(var gt=at.length;gt;){for(st=at,at=[];++ut1)for(var yt=1;yt=ot())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ot().toString(16)+" bytes");return 0|Vt}function pt(Vt,It){if(at.isBuffer(Vt))return Vt.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(Vt)||Vt instanceof ArrayBuffer))return Vt.byteLength;typeof Vt!="string"&&(Vt=""+Vt);var $t=Vt.length;if($t===0)return 0;for(var Ht=!1;;)switch(It){case"ascii":case"latin1":case"binary":return $t;case"utf8":case"utf-8":case void 0:return nn(Vt).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*$t;case"hex":return $t>>>1;case"base64":return Zt(Vt).length;default:if(Ht)return nn(Vt).length;It=(""+It).toLowerCase(),Ht=!0}}function ft(Vt,It,$t){var Ht=!1;if((It===void 0||It<0)&&(It=0),It>this.length||(($t===void 0||$t>this.length)&&($t=this.length),$t<=0)||($t>>>=0)<=(It>>>=0))return"";for(Vt||(Vt="utf8");;)switch(Vt){case"hex":return Ct(this,It,$t);case"utf8":case"utf-8":return Tt(this,It,$t);case"ascii":return Bt(this,It,$t);case"latin1":case"binary":return xt(this,It,$t);case"base64":return St(this,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return kt(this,It,$t);default:if(Ht)throw new TypeError("Unknown encoding: "+Vt);Vt=(Vt+"").toLowerCase(),Ht=!0}}function gt(Vt,It,$t){var Ht=Vt[It];Vt[It]=Vt[$t],Vt[$t]=Ht}function yt(Vt,It,$t,Ht,qt){if(Vt.length===0)return-1;if(typeof $t=="string"?(Ht=$t,$t=0):$t>2147483647?$t=2147483647:$t<-2147483648&&($t=-2147483648),$t=+$t,isNaN($t)&&($t=qt?0:Vt.length-1),$t<0&&($t=Vt.length+$t),$t>=Vt.length){if(qt)return-1;$t=Vt.length-1}else if($t<0){if(!qt)return-1;$t=0}if(typeof It=="string"&&(It=at.from(It,Ht)),at.isBuffer(It))return It.length===0?-1:Ut(Vt,It,$t,Ht,qt);if(typeof It=="number")return It&=255,at.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?qt?Uint8Array.prototype.indexOf.call(Vt,It,$t):Uint8Array.prototype.lastIndexOf.call(Vt,It,$t):Ut(Vt,[It],$t,Ht,qt);throw new TypeError("val must be string, number or Buffer")}function Ut(Vt,It,$t,Ht,qt){var on,Xt=1,dn=Vt.length,_n=It.length;if(Ht!==void 0&&((Ht=String(Ht).toLowerCase())==="ucs2"||Ht==="ucs-2"||Ht==="utf16le"||Ht==="utf-16le")){if(Vt.length<2||It.length<2)return-1;Xt=2,dn/=2,_n/=2,$t/=2}function Fn(hn,wn){return Xt===1?hn[wn]:hn.readUInt16BE(wn*Xt)}if(qt){var Un=-1;for(on=$t;ondn&&($t=dn-_n),on=$t;on>=0;on--){for(var On=!0,gn=0;gn<_n;gn++)if(Fn(Vt,on+gn)!==Fn(It,gn)){On=!1;break}if(On)return on}return-1}function Ft(Vt,It,$t,Ht){$t=Number($t)||0;var qt=Vt.length-$t;Ht?(Ht=Number(Ht))>qt&&(Ht=qt):Ht=qt;var on=It.length;if(on%2!=0)throw new TypeError("Invalid hex string");Ht>on/2&&(Ht=on/2);for(var Xt=0;Xt>8,_n=Xt%256,Fn.push(_n),Fn.push(dn);return Fn}(It,Vt.length-$t),Vt,$t,Ht)}function St(Vt,It,$t){return It===0&&$t===Vt.length?nt.fromByteArray(Vt):nt.fromByteArray(Vt.slice(It,$t))}function Tt(Vt,It,$t){$t=Math.min(Vt.length,$t);for(var Ht=[],qt=It;qt<$t;){var on,Xt,dn,_n,Fn=Vt[qt],Un=null,On=Fn>239?4:Fn>223?3:Fn>191?2:1;if(qt+On<=$t)switch(On){case 1:Fn<128&&(Un=Fn);break;case 2:(192&(on=Vt[qt+1]))==128&&(_n=(31&Fn)<<6|63&on)>127&&(Un=_n);break;case 3:on=Vt[qt+1],Xt=Vt[qt+2],(192&on)==128&&(192&Xt)==128&&(_n=(15&Fn)<<12|(63&on)<<6|63&Xt)>2047&&(_n<55296||_n>57343)&&(Un=_n);break;case 4:on=Vt[qt+1],Xt=Vt[qt+2],dn=Vt[qt+3],(192&on)==128&&(192&Xt)==128&&(192&dn)==128&&(_n=(15&Fn)<<18|(63&on)<<12|(63&Xt)<<6|63&dn)>65535&&_n<1114112&&(Un=_n)}Un===null?(Un=65533,On=1):Un>65535&&(Un-=65536,Ht.push(Un>>>10&1023|55296),Un=56320|1023&Un),Ht.push(Un),qt+=On}return function(gn){var hn=gn.length;if(hn<=4096)return String.fromCharCode.apply(String,gn);for(var wn="",Zn=0;Zn0&&(Vt=this.toString("hex",0,It).match(/.{2}/g).join(" "),this.length>It&&(Vt+=" ... ")),""},at.prototype.compare=function(Vt,It,$t,Ht,qt){if(!at.isBuffer(Vt))throw new TypeError("Argument must be a Buffer");if(It===void 0&&(It=0),$t===void 0&&($t=Vt?Vt.length:0),Ht===void 0&&(Ht=0),qt===void 0&&(qt=this.length),It<0||$t>Vt.length||Ht<0||qt>this.length)throw new RangeError("out of range index");if(Ht>=qt&&It>=$t)return 0;if(Ht>=qt)return-1;if(It>=$t)return 1;if(this===Vt)return 0;for(var on=(qt>>>=0)-(Ht>>>=0),Xt=($t>>>=0)-(It>>>=0),dn=Math.min(on,Xt),_n=this.slice(Ht,qt),Fn=Vt.slice(It,$t),Un=0;Unqt)&&($t=qt),Vt.length>0&&($t<0||It<0)||It>this.length)throw new RangeError("Attempt to write outside buffer bounds");Ht||(Ht="utf8");for(var on=!1;;)switch(Ht){case"hex":return Ft(this,Vt,It,$t);case"utf8":case"utf-8":return mt(this,Vt,It,$t);case"ascii":return vt(this,Vt,It,$t);case"latin1":case"binary":return At(this,Vt,It,$t);case"base64":return Lt(this,Vt,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Rt(this,Vt,It,$t);default:if(on)throw new TypeError("Unknown encoding: "+Ht);Ht=(""+Ht).toLowerCase(),on=!0}},at.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Bt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(127&Vt[qt]);return Ht}function xt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(Vt[qt]);return Ht}function Ct(Vt,It,$t){var Ht=Vt.length;(!It||It<0)&&(It=0),(!$t||$t<0||$t>Ht)&&($t=Ht);for(var qt="",on=It;on<$t;++on)qt+=Kt(Vt[on]);return qt}function kt(Vt,It,$t){for(var Ht=Vt.slice(It,$t),qt="",on=0;on$t)throw new RangeError("Trying to access beyond buffer length")}function Ot(Vt,It,$t,Ht,qt,on){if(!at.isBuffer(Vt))throw new TypeError('"buffer" argument must be a Buffer instance');if(It>qt||ItVt.length)throw new RangeError("Index out of range")}function Wt(Vt,It,$t,Ht){It<0&&(It=65535+It+1);for(var qt=0,on=Math.min(Vt.length-$t,2);qt>>8*(Ht?qt:1-qt)}function Dt(Vt,It,$t,Ht){It<0&&(It=4294967295+It+1);for(var qt=0,on=Math.min(Vt.length-$t,4);qt>>8*(Ht?qt:3-qt)&255}function Et(Vt,It,$t,Ht,qt,on){if($t+Ht>Vt.length)throw new RangeError("Index out of range");if($t<0)throw new RangeError("Index out of range")}function Pt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,4),rt.write(Vt,It,$t,Ht,23,4),$t+4}function zt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,8),rt.write(Vt,It,$t,Ht,52,8),$t+8}at.prototype.slice=function(Vt,It){var $t,Ht=this.length;if((Vt=~~Vt)<0?(Vt+=Ht)<0&&(Vt=0):Vt>Ht&&(Vt=Ht),(It=It===void 0?Ht:~~It)<0?(It+=Ht)<0&&(It=0):It>Ht&&(It=Ht),It0&&(qt*=256);)Ht+=this[Vt+--It]*qt;return Ht},at.prototype.readUInt8=function(Vt,It){return It||Nt(Vt,1,this.length),this[Vt]},at.prototype.readUInt16LE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]|this[Vt+1]<<8},at.prototype.readUInt16BE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]<<8|this[Vt+1]},at.prototype.readUInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),(this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16)+16777216*this[Vt+3]},at.prototype.readUInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),16777216*this[Vt]+(this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3])},at.prototype.readIntLE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=this[Vt],qt=1,on=0;++on=(qt*=128)&&(Ht-=Math.pow(2,8*It)),Ht},at.prototype.readIntBE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=It,qt=1,on=this[Vt+--Ht];Ht>0&&(qt*=256);)on+=this[Vt+--Ht]*qt;return on>=(qt*=128)&&(on-=Math.pow(2,8*It)),on},at.prototype.readInt8=function(Vt,It){return It||Nt(Vt,1,this.length),128&this[Vt]?-1*(255-this[Vt]+1):this[Vt]},at.prototype.readInt16LE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt]|this[Vt+1]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt16BE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt+1]|this[Vt]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16|this[Vt+3]<<24},at.prototype.readInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]<<24|this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3]},at.prototype.readFloatLE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!0,23,4)},at.prototype.readFloatBE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!1,23,4)},at.prototype.readDoubleLE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!0,52,8)},at.prototype.readDoubleBE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!1,52,8)},at.prototype.writeUIntLE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=1,on=0;for(this[It]=255&Vt;++on<$t&&(qt*=256);)this[It+on]=Vt/qt&255;return It+$t},at.prototype.writeUIntBE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=$t-1,on=1;for(this[It+qt]=255&Vt;--qt>=0&&(on*=256);)this[It+qt]=Vt/on&255;return It+$t},at.prototype.writeUInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,255,0),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),this[It]=255&Vt,It+1},at.prototype.writeUInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Wt(this,Vt,It,!0),It+2},at.prototype.writeUInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Wt(this,Vt,It,!1),It+2},at.prototype.writeUInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It+3]=Vt>>>24,this[It+2]=Vt>>>16,this[It+1]=Vt>>>8,this[It]=255&Vt):Dt(this,Vt,It,!0),It+4},at.prototype.writeUInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeIntLE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=0,Xt=1,dn=0;for(this[It]=255&Vt;++on<$t&&(Xt*=256);)Vt<0&&dn===0&&this[It+on-1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeIntBE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=$t-1,Xt=1,dn=0;for(this[It+on]=255&Vt;--on>=0&&(Xt*=256);)Vt<0&&dn===0&&this[It+on+1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,127,-128),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),Vt<0&&(Vt=255+Vt+1),this[It]=255&Vt,It+1},at.prototype.writeInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Wt(this,Vt,It,!0),It+2},at.prototype.writeInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Wt(this,Vt,It,!1),It+2},at.prototype.writeInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8,this[It+2]=Vt>>>16,this[It+3]=Vt>>>24):Dt(this,Vt,It,!0),It+4},at.prototype.writeInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),Vt<0&&(Vt=4294967295+Vt+1),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeFloatLE=function(Vt,It,$t){return Pt(this,Vt,It,!0,$t)},at.prototype.writeFloatBE=function(Vt,It,$t){return Pt(this,Vt,It,!1,$t)},at.prototype.writeDoubleLE=function(Vt,It,$t){return zt(this,Vt,It,!0,$t)},at.prototype.writeDoubleBE=function(Vt,It,$t){return zt(this,Vt,It,!1,$t)},at.prototype.copy=function(Vt,It,$t,Ht){if($t||($t=0),Ht||Ht===0||(Ht=this.length),It>=Vt.length&&(It=Vt.length),It||(It=0),Ht>0&&Ht<$t&&(Ht=$t),Ht===$t||Vt.length===0||this.length===0)return 0;if(It<0)throw new RangeError("targetStart out of bounds");if($t<0||$t>=this.length)throw new RangeError("sourceStart out of bounds");if(Ht<0)throw new RangeError("sourceEnd out of bounds");Ht>this.length&&(Ht=this.length),Vt.length-It=0;--qt)Vt[qt+It]=this[qt+$t];else if(on<1e3||!at.TYPED_ARRAY_SUPPORT)for(qt=0;qt>>=0,$t=$t===void 0?this.length:$t>>>0,Vt||(Vt=0),typeof Vt=="number")for(on=It;on<$t;++on)this[on]=Vt;else{var Xt=at.isBuffer(Vt)?Vt:nn(new at(Vt,Ht).toString()),dn=Xt.length;for(on=0;on<$t-It;++on)this[on+It]=Xt[on%dn]}return this};var en=/[^+\/0-9A-Za-z-_]/g;function Kt(Vt){return Vt<16?"0"+Vt.toString(16):Vt.toString(16)}function nn(Vt,It){var $t;It=It||1/0;for(var Ht=Vt.length,qt=null,on=[],Xt=0;Xt55295&&$t<57344){if(!qt){if($t>56319){(It-=3)>-1&&on.push(239,191,189);continue}if(Xt+1===Ht){(It-=3)>-1&&on.push(239,191,189);continue}qt=$t;continue}if($t<56320){(It-=3)>-1&&on.push(239,191,189),qt=$t;continue}$t=65536+(qt-55296<<10|$t-56320)}else qt&&(It-=3)>-1&&on.push(239,191,189);if(qt=null,$t<128){if((It-=1)<0)break;on.push($t)}else if($t<2048){if((It-=2)<0)break;on.push($t>>6|192,63&$t|128)}else if($t<65536){if((It-=3)<0)break;on.push($t>>12|224,$t>>6&63|128,63&$t|128)}else{if(!($t<1114112))throw new Error("Invalid code point");if((It-=4)<0)break;on.push($t>>18|240,$t>>12&63|128,$t>>6&63|128,63&$t|128)}}return on}function Zt(Vt){return nt.toByteArray(function(It){if((It=function($t){return $t.trim?$t.trim():$t.replace(/^\s+|\s+$/g,"")}(It).replace(en,"")).length<2)return"";for(;It.length%4!=0;)It+="=";return It}(Vt))}function jt(Vt,It,$t,Ht){for(var qt=0;qt=It.length||qt>=Vt.length);++qt)It[qt+$t]=Vt[qt];return qt}}).call(this,et(6))},function(s,o){var et;et=function(){return this}();try{et=et||new Function("return this")()}catch{typeof window=="object"&&(et=window)}s.exports=et},function(s,o){typeof Object.create=="function"?s.exports=function(et,tt){tt&&(et.super_=tt,et.prototype=Object.create(tt.prototype,{constructor:{value:et,enumerable:!1,writable:!0,configurable:!0}}))}:s.exports=function(et,tt){if(tt){et.super_=tt;var nt=function(){};nt.prototype=tt.prototype,et.prototype=new nt,et.prototype.constructor=et}}},function(s,o,et){et.d(o,"a",function(){return tt});const tt=nt=>new Promise(rt=>setTimeout(rt,nt||0))},function(s,o,et){var tt=et(99),nt=tt,rt=Function("return this")(),it=et(98);nt.object.extend(proto,it),nt.exportSymbol("proto.v1.signaling.api.CreatePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.CreatePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.Peer",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.SessionType",null,rt),nt.exportSymbol("proto.v1.signaling.api.Signal",null,rt),proto.v1.signaling.api.Peer=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.Peer.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.Peer,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Peer.displayName="proto.v1.signaling.api.Peer"),proto.v1.signaling.api.Signal=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.Signal,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Signal.displayName="proto.v1.signaling.api.Signal"),proto.v1.signaling.api.GetHealthRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthRequest.displayName="proto.v1.signaling.api.GetHealthRequest"),proto.v1.signaling.api.GetHealthResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthResponse.displayName="proto.v1.signaling.api.GetHealthResponse"),proto.v1.signaling.api.CreatePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerRequest.displayName="proto.v1.signaling.api.CreatePeerRequest"),proto.v1.signaling.api.CreatePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerResponse.displayName="proto.v1.signaling.api.CreatePeerResponse"),proto.v1.signaling.api.DeletePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerRequest.displayName="proto.v1.signaling.api.DeletePeerRequest"),proto.v1.signaling.api.DeletePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerResponse.displayName="proto.v1.signaling.api.DeletePeerResponse"),proto.v1.signaling.api.RefreshPeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerRequest.displayName="proto.v1.signaling.api.RefreshPeerRequest"),proto.v1.signaling.api.RefreshPeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerResponse.displayName="proto.v1.signaling.api.RefreshPeerResponse"),proto.v1.signaling.api.GetPeersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetPeersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersRequest.displayName="proto.v1.signaling.api.GetPeersRequest"),proto.v1.signaling.api.GetPeersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.GetPeersResponse.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.GetPeersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersResponse.displayName="proto.v1.signaling.api.GetPeersResponse"),proto.v1.signaling.api.GetIceServersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersRequest.displayName="proto.v1.signaling.api.GetIceServersRequest"),proto.v1.signaling.api.GetIceServersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersResponse.displayName="proto.v1.signaling.api.GetIceServersResponse"),proto.v1.signaling.api.SendSignalRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalRequest.displayName="proto.v1.signaling.api.SendSignalRequest"),proto.v1.signaling.api.SendSignalResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalResponse.displayName="proto.v1.signaling.api.SendSignalResponse"),proto.v1.signaling.api.ReceiveSignalStreamRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.displayName="proto.v1.signaling.api.ReceiveSignalStreamRequest"),proto.v1.signaling.api.ReceiveSignalStreamResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.displayName="proto.v1.signaling.api.ReceiveSignalStreamResponse"),proto.v1.signaling.api.Peer.repeatedFields_=[5],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Peer.prototype.toObject=function(ot){return proto.v1.signaling.api.Peer.toObject(ot,this)},proto.v1.signaling.api.Peer.toObject=function(ot,st){var at,lt={peerId:tt.Message.getFieldWithDefault(st,1,""),organizationId:tt.Message.getFieldWithDefault(st,2,""),userId:(at=st.getUserId())&&it.StringValue.toObject(ot,at),deviceId:(at=st.getDeviceId())&&it.StringValue.toObject(ot,at),sessionIdsList:(at=tt.Message.getRepeatedField(st,5))==null?void 0:at,peerCreatedTimestamp:(at=st.getPeerCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Peer.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Peer;return proto.v1.signaling.api.Peer.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Peer.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;case 2:at=st.readString(),ot.setOrganizationId(at);break;case 3:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setUserId(at);break;case 4:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setDeviceId(at);break;case 5:at=st.readString(),ot.addSessionIds(at);break;case 6:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setPeerCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Peer.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Peer.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Peer.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getPeerId()).length>0&&st.writeString(1,at),(at=ot.getOrganizationId()).length>0&&st.writeString(2,at),(at=ot.getUserId())!=null&&st.writeMessage(3,at,it.StringValue.serializeBinaryToWriter),(at=ot.getDeviceId())!=null&&st.writeMessage(4,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionIdsList()).length>0&&st.writeRepeatedString(5,at),(at=ot.getPeerCreatedTimestamp())!=null&&st.writeMessage(6,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.Peer.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.Peer.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},proto.v1.signaling.api.Peer.prototype.getOrganizationId=function(){return tt.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.Peer.prototype.setOrganizationId=function(ot){return tt.Message.setProto3StringField(this,2,ot)},proto.v1.signaling.api.Peer.prototype.getUserId=function(){return tt.Message.getWrapperField(this,it.StringValue,3)},proto.v1.signaling.api.Peer.prototype.setUserId=function(ot){return tt.Message.setWrapperField(this,3,ot)},proto.v1.signaling.api.Peer.prototype.clearUserId=function(){return this.setUserId(void 0)},proto.v1.signaling.api.Peer.prototype.hasUserId=function(){return tt.Message.getField(this,3)!=null},proto.v1.signaling.api.Peer.prototype.getDeviceId=function(){return tt.Message.getWrapperField(this,it.StringValue,4)},proto.v1.signaling.api.Peer.prototype.setDeviceId=function(ot){return tt.Message.setWrapperField(this,4,ot)},proto.v1.signaling.api.Peer.prototype.clearDeviceId=function(){return this.setDeviceId(void 0)},proto.v1.signaling.api.Peer.prototype.hasDeviceId=function(){return tt.Message.getField(this,4)!=null},proto.v1.signaling.api.Peer.prototype.getSessionIdsList=function(){return tt.Message.getRepeatedField(this,5)},proto.v1.signaling.api.Peer.prototype.setSessionIdsList=function(ot){return tt.Message.setField(this,5,ot||[])},proto.v1.signaling.api.Peer.prototype.addSessionIds=function(ot,st){return tt.Message.addToRepeatedField(this,5,ot,st)},proto.v1.signaling.api.Peer.prototype.clearSessionIdsList=function(){return this.setSessionIdsList([])},proto.v1.signaling.api.Peer.prototype.getPeerCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,6)},proto.v1.signaling.api.Peer.prototype.setPeerCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,6,ot)},proto.v1.signaling.api.Peer.prototype.clearPeerCreatedTimestamp=function(){return this.setPeerCreatedTimestamp(void 0)},proto.v1.signaling.api.Peer.prototype.hasPeerCreatedTimestamp=function(){return tt.Message.getField(this,6)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Signal.prototype.toObject=function(ot){return proto.v1.signaling.api.Signal.toObject(ot,this)},proto.v1.signaling.api.Signal.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at),senderId:tt.Message.getFieldWithDefault(st,3,""),receiverId:tt.Message.getFieldWithDefault(st,4,""),payload:tt.Message.getFieldWithDefault(st,5,""),iceServers:tt.Message.getFieldWithDefault(st,6,""),iceTransportPolicy:tt.Message.getFieldWithDefault(st,7,""),sessionType:tt.Message.getFieldWithDefault(st,8,0)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Signal.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Signal;return proto.v1.signaling.api.Signal.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Signal.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;case 3:at=st.readString(),ot.setSenderId(at);break;case 4:at=st.readString(),ot.setReceiverId(at);break;case 5:at=st.readString(),ot.setPayload(at);break;case 6:at=st.readString(),ot.setIceServers(at);break;case 7:at=st.readString(),ot.setIceTransportPolicy(at);break;case 8:at=st.readEnum(),ot.setSessionType(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Signal.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Signal.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Signal.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter),(at=ot.getSenderId()).length>0&&st.writeString(3,at),(at=ot.getReceiverId()).length>0&&st.writeString(4,at),(at=ot.getPayload()).length>0&&st.writeString(5,at),(at=ot.getIceServers()).length>0&&st.writeString(6,at),(at=ot.getIceTransportPolicy()).length>0&&st.writeString(7,at),(at=ot.getSessionType())!==0&&st.writeEnum(8,at)},proto.v1.signaling.api.Signal.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.Signal.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.Signal.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.Signal.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},proto.v1.signaling.api.Signal.prototype.getSenderId=function(){return tt.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.Signal.prototype.setSenderId=function(ot){return tt.Message.setProto3StringField(this,3,ot)},proto.v1.signaling.api.Signal.prototype.getReceiverId=function(){return tt.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.Signal.prototype.setReceiverId=function(ot){return tt.Message.setProto3StringField(this,4,ot)},proto.v1.signaling.api.Signal.prototype.getPayload=function(){return tt.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.Signal.prototype.setPayload=function(ot){return tt.Message.setProto3StringField(this,5,ot)},proto.v1.signaling.api.Signal.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,6,"")},proto.v1.signaling.api.Signal.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,6,ot)},proto.v1.signaling.api.Signal.prototype.getIceTransportPolicy=function(){return tt.Message.getFieldWithDefault(this,7,"")},proto.v1.signaling.api.Signal.prototype.setIceTransportPolicy=function(ot){return tt.Message.setProto3StringField(this,7,ot)},proto.v1.signaling.api.Signal.prototype.getSessionType=function(){return tt.Message.getFieldWithDefault(this,8,0)},proto.v1.signaling.api.Signal.prototype.setSessionType=function(ot){return tt.Message.setProto3EnumField(this,8,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthRequest.toObject(ot,this)},proto.v1.signaling.api.GetHealthRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthRequest;return proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetHealthRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthResponse.toObject(ot,this)},proto.v1.signaling.api.GetHealthResponse.toObject=function(ot,st){var at={version:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthResponse;return proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setVersion(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetHealthResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getVersion()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetHealthResponse.prototype.getVersion=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetHealthResponse.prototype.setVersion=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerRequest.toObject(ot,this)},proto.v1.signaling.api.CreatePeerRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.CreatePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerRequest;return proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.CreatePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerResponse.toObject(ot,this)},proto.v1.signaling.api.CreatePeerResponse.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.CreatePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerResponse;return proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.CreatePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.CreatePeerResponse.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.CreatePeerResponse.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.CreatePeerResponse.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.CreatePeerResponse.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerRequest.toObject(ot,this)},proto.v1.signaling.api.DeletePeerRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerRequest;return proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.DeletePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.DeletePeerRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.DeletePeerRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerResponse.toObject(ot,this)},proto.v1.signaling.api.DeletePeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerResponse;return proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.DeletePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerRequest.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerRequest.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.RefreshPeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerRequest;return proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.RefreshPeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.RefreshPeerRequest.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.RefreshPeerRequest.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.RefreshPeerRequest.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.RefreshPeerRequest.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerResponse.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.RefreshPeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerResponse;return proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.RefreshPeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersRequest.toObject(ot,this)},proto.v1.signaling.api.GetPeersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersRequest;return proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetPeersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter=function(ot,st){},proto.v1.signaling.api.GetPeersResponse.repeatedFields_=[1],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersResponse.toObject(ot,this)},proto.v1.signaling.api.GetPeersResponse.toObject=function(ot,st){var at={peersList:tt.Message.toObjectList(st.getPeersList(),proto.v1.signaling.api.Peer.toObject,ot)};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersResponse;return proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.addPeers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetPeersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeersList()).length>0&&st.writeRepeatedMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.GetPeersResponse.prototype.getPeersList=function(){return tt.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.GetPeersResponse.prototype.setPeersList=function(ot){return tt.Message.setRepeatedWrapperField(this,1,ot)},proto.v1.signaling.api.GetPeersResponse.prototype.addPeers=function(ot,st){return tt.Message.addToRepeatedWrapperField(this,1,ot,proto.v1.signaling.api.Peer,st)},proto.v1.signaling.api.GetPeersResponse.prototype.clearPeersList=function(){return this.setPeersList([])},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersRequest.toObject(ot,this)},proto.v1.signaling.api.GetIceServersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersRequest;return proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetIceServersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersResponse.toObject(ot,this)},proto.v1.signaling.api.GetIceServersResponse.toObject=function(ot,st){var at={iceServers:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersResponse;return proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setIceServers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetIceServersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getIceServers()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetIceServersResponse.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetIceServersResponse.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalRequest.toObject(ot,this)},proto.v1.signaling.api.SendSignalRequest.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalRequest;return proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalRequest.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.SendSignalRequest.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalRequest.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.SendSignalRequest.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalResponse.toObject(ot,this)},proto.v1.signaling.api.SendSignalResponse.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalResponse;return proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamRequest;return proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamResponse;return proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SessionType={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3},nt.object.extend(o,proto.v1.signaling.api)},function(s,o,et){function tt(nt,rt,it=()=>!0){if(nt instanceof rt&&it(nt))return nt;throw nt}et.d(o,"a",function(){return tt})},function(s,o,et){et.d(o,"a",function(){return nt});var tt=et(34);class nt extends Error{constructor(it,ot,st,at,lt={},ut){super(`Unexpected response (${st}) for ${it} ${ot}: ${JSON.stringify(ut?Object(tt.a)([...ut.entries()].reduce((dt,[ht,ct])=>(dt[ht]=ct,dt),{})):{})} -- ${JSON.stringify(Object(tt.a)(at))}`),this.method=it,this.url=ot,this.statusCode=st,this.body=at,this.validationErrors=lt,this.headers=ut}}},function(s,o,et){function tt(dt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ht){return typeof ht}:function(ht){return ht&&typeof Symbol=="function"&&ht.constructor===Symbol&&ht!==Symbol.prototype?"symbol":typeof ht})(dt)}function nt(dt,ht){return!ht||tt(ht)!=="object"&&typeof ht!="function"?rt(dt):ht}function rt(dt){if(dt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return dt}function it(dt){var ht=typeof Map=="function"?new Map:void 0;return(it=function(ct){if(ct===null||(pt=ct,Function.toString.call(pt).indexOf("[native code]")===-1))return ct;var pt;if(typeof ct!="function")throw new TypeError("Super expression must either be null or a function");if(ht!==void 0){if(ht.has(ct))return ht.get(ct);ht.set(ct,ft)}function ft(){return ot(ct,arguments,lt(this).constructor)}return ft.prototype=Object.create(ct.prototype,{constructor:{value:ft,enumerable:!1,writable:!0,configurable:!0}}),at(ft,ct)})(dt)}function ot(dt,ht,ct){return(ot=st()?Reflect.construct:function(pt,ft,gt){var yt=[null];yt.push.apply(yt,ft);var Ut=new(Function.bind.apply(pt,yt));return gt&&at(Ut,gt.prototype),Ut}).apply(null,arguments)}function st(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function at(dt,ht){return(at=Object.setPrototypeOf||function(ct,pt){return ct.__proto__=pt,ct})(dt,ht)}function lt(dt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(ht){return ht.__proto__||Object.getPrototypeOf(ht)})(dt)}var ut=function(dt){(function(gt,yt){if(typeof yt!="function"&&yt!==null)throw new TypeError("Super expression must either be null or a function");gt.prototype=Object.create(yt&&yt.prototype,{constructor:{value:gt,writable:!0,configurable:!0}}),yt&&at(gt,yt)})(ft,dt);var ht,ct,pt=(ht=ft,ct=st(),function(){var gt,yt=lt(ht);if(ct){var Ut=lt(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return nt(this,gt)});function ft(gt){var yt;return function(Ut,Ft){if(!(Ut instanceof Ft))throw new TypeError("Cannot call a class as a function")}(this,ft),yt=pt.call(this,`Format functions must be synchronous taking a two arguments: (info, opts) + */function styled$2(s,o){return newStyled(s,o)}function merge$2(s,o){return o?deepmerge(s,o,{clone:!1}):s}const values={xs:0,sm:600,md:900,lg:1200,xl:1536},defaultBreakpoints={keys:["xs","sm","md","lg","xl"],up:s=>`@media (min-width:${values[s]}px)`};function handleBreakpoints(s,o,et){const tt=s.theme||{};if(Array.isArray(o)){const nt=tt.breakpoints||defaultBreakpoints;return o.reduce((rt,it,ot)=>(rt[nt.up(nt.keys[ot])]=et(o[ot]),rt),{})}if(typeof o=="object"){const nt=tt.breakpoints||defaultBreakpoints;return Object.keys(o).reduce((rt,it)=>{if(Object.keys(nt.values||values).indexOf(it)!==-1){const ot=nt.up(it);rt[ot]=et(o[it],it)}else{const ot=it;rt[ot]=o[ot]}return rt},{})}return et(o)}function createEmptyBreakpointObject(s={}){var o;return(s==null||(o=s.keys)==null?void 0:o.reduce((et,tt)=>{const nt=s.up(tt);return et[nt]={},et},{}))||{}}function removeUnusedBreakpoints(s,o){return s.reduce((et,tt)=>{const nt=et[tt];return(!nt||Object.keys(nt).length===0)&&delete et[tt],et},o)}function getPath(s,o){return!o||typeof o!="string"?null:o.split(".").reduce((et,tt)=>et&&et[tt]?et[tt]:null,s)}function getValue$1(s,o,et,tt=et){let nt;return typeof s=="function"?nt=s(et):Array.isArray(s)?nt=s[et]||tt:nt=getPath(s,et)||tt,o&&(nt=o(nt)),nt}function style$1(s){const{prop:o,cssProperty:et=s.prop,themeKey:tt,transform:nt}=s,rt=it=>{if(it[o]==null)return null;const ot=it[o],st=it.theme,at=getPath(st,tt)||{};return handleBreakpoints(it,ot,lt=>{let ut=getValue$1(at,nt,lt);return lt===ut&&typeof lt=="string"&&(ut=getValue$1(at,nt,`${o}${lt==="default"?"":capitalize(lt)}`,lt)),et===!1?ut:{[et]:ut}})};return rt.propTypes={},rt.filterProps=[o],rt}function compose(...s){const o=s.reduce((tt,nt)=>(nt.filterProps.forEach(rt=>{tt[rt]=nt}),tt),{}),et=tt=>Object.keys(tt).reduce((nt,rt)=>o[rt]?merge$2(nt,o[rt](tt)):nt,{});return et.propTypes={},et.filterProps=s.reduce((tt,nt)=>tt.concat(nt.filterProps),[]),et}function memoize$1(s){const o={};return et=>(o[et]===void 0&&(o[et]=s(et)),o[et])}const properties={m:"margin",p:"padding"},directions={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},aliases={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},getCssProperties=memoize$1(s=>{if(s.length>2)if(aliases[s])s=aliases[s];else return[s];const[o,et]=s.split(""),tt=properties[o],nt=directions[et]||"";return Array.isArray(nt)?nt.map(rt=>tt+rt):[tt+nt]}),marginKeys=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],paddingKeys=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],spacingKeys=[...marginKeys,...paddingKeys];function createUnaryUnit(s,o,et,tt){const nt=getPath(s,o)||et;return typeof nt=="number"?rt=>typeof rt=="string"?rt:nt*rt:Array.isArray(nt)?rt=>typeof rt=="string"?rt:nt[rt]:typeof nt=="function"?nt:()=>{}}function createUnarySpacing(s){return createUnaryUnit(s,"spacing",8)}function getValue(s,o){if(typeof o=="string"||o==null)return o;const et=Math.abs(o),tt=s(et);return o>=0?tt:typeof tt=="number"?-tt:`-${tt}`}function getStyleFromPropValue(s,o){return et=>s.reduce((tt,nt)=>(tt[nt]=getValue(o,et),tt),{})}function resolveCssProperty(s,o,et,tt){if(o.indexOf(et)===-1)return null;const nt=getCssProperties(et),rt=getStyleFromPropValue(nt,tt),it=s[et];return handleBreakpoints(s,it,rt)}function style(s,o){const et=createUnarySpacing(s.theme);return Object.keys(s).map(tt=>resolveCssProperty(s,o,tt,et)).reduce(merge$2,{})}function spacing$1(s){return style(s,spacingKeys)}spacing$1.propTypes={};spacing$1.filterProps=spacingKeys;function getBorder(s){return typeof s!="number"?s:`${s}px solid`}const border$1=style$1({prop:"border",themeKey:"borders",transform:getBorder}),borderTop=style$1({prop:"borderTop",themeKey:"borders",transform:getBorder}),borderRight=style$1({prop:"borderRight",themeKey:"borders",transform:getBorder}),borderBottom=style$1({prop:"borderBottom",themeKey:"borders",transform:getBorder}),borderLeft=style$1({prop:"borderLeft",themeKey:"borders",transform:getBorder}),borderColor=style$1({prop:"borderColor",themeKey:"palette"}),borderTopColor=style$1({prop:"borderTopColor",themeKey:"palette"}),borderRightColor=style$1({prop:"borderRightColor",themeKey:"palette"}),borderBottomColor=style$1({prop:"borderBottomColor",themeKey:"palette"}),borderLeftColor=style$1({prop:"borderLeftColor",themeKey:"palette"}),borderRadius=s=>{if(s.borderRadius!==void 0&&s.borderRadius!==null){const o=createUnaryUnit(s.theme,"shape.borderRadius",4),et=tt=>({borderRadius:getValue(o,tt)});return handleBreakpoints(s,s.borderRadius,et)}return null};borderRadius.propTypes={};borderRadius.filterProps=["borderRadius"];const borders=compose(border$1,borderTop,borderRight,borderBottom,borderLeft,borderColor,borderTopColor,borderRightColor,borderBottomColor,borderLeftColor,borderRadius),borders$1=borders,displayPrint=style$1({prop:"displayPrint",cssProperty:!1,transform:s=>({"@media print":{display:s}})}),displayRaw=style$1({prop:"display"}),overflow=style$1({prop:"overflow"}),textOverflow=style$1({prop:"textOverflow"}),visibility=style$1({prop:"visibility"}),whiteSpace=style$1({prop:"whiteSpace"}),display=compose(displayPrint,displayRaw,overflow,textOverflow,visibility,whiteSpace),flexBasis=style$1({prop:"flexBasis"}),flexDirection=style$1({prop:"flexDirection"}),flexWrap=style$1({prop:"flexWrap"}),justifyContent=style$1({prop:"justifyContent"}),alignItems=style$1({prop:"alignItems"}),alignContent=style$1({prop:"alignContent"}),order=style$1({prop:"order"}),flex=style$1({prop:"flex"}),flexGrow=style$1({prop:"flexGrow"}),flexShrink=style$1({prop:"flexShrink"}),alignSelf=style$1({prop:"alignSelf"}),justifyItems=style$1({prop:"justifyItems"}),justifySelf=style$1({prop:"justifySelf"}),flexbox=compose(flexBasis,flexDirection,flexWrap,justifyContent,alignItems,alignContent,order,flex,flexGrow,flexShrink,alignSelf,justifyItems,justifySelf),flexbox$1=flexbox,gap=s=>{if(s.gap!==void 0&&s.gap!==null){const o=createUnaryUnit(s.theme,"spacing",8),et=tt=>({gap:getValue(o,tt)});return handleBreakpoints(s,s.gap,et)}return null};gap.propTypes={};gap.filterProps=["gap"];const columnGap=s=>{if(s.columnGap!==void 0&&s.columnGap!==null){const o=createUnaryUnit(s.theme,"spacing",8),et=tt=>({columnGap:getValue(o,tt)});return handleBreakpoints(s,s.columnGap,et)}return null};columnGap.propTypes={};columnGap.filterProps=["columnGap"];const rowGap=s=>{if(s.rowGap!==void 0&&s.rowGap!==null){const o=createUnaryUnit(s.theme,"spacing",8),et=tt=>({rowGap:getValue(o,tt)});return handleBreakpoints(s,s.rowGap,et)}return null};rowGap.propTypes={};rowGap.filterProps=["rowGap"];const gridColumn=style$1({prop:"gridColumn"}),gridRow=style$1({prop:"gridRow"}),gridAutoFlow=style$1({prop:"gridAutoFlow"}),gridAutoColumns=style$1({prop:"gridAutoColumns"}),gridAutoRows=style$1({prop:"gridAutoRows"}),gridTemplateColumns=style$1({prop:"gridTemplateColumns"}),gridTemplateRows=style$1({prop:"gridTemplateRows"}),gridTemplateAreas=style$1({prop:"gridTemplateAreas"}),gridArea=style$1({prop:"gridArea"}),grid=compose(gap,columnGap,rowGap,gridColumn,gridRow,gridAutoFlow,gridAutoColumns,gridAutoRows,gridTemplateColumns,gridTemplateRows,gridTemplateAreas,gridArea),grid$1=grid,color$1=style$1({prop:"color",themeKey:"palette"}),bgcolor=style$1({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette"}),backgroundColor=style$1({prop:"backgroundColor",themeKey:"palette"}),palette=compose(color$1,bgcolor,backgroundColor),palette$1=palette,position=style$1({prop:"position"}),zIndex$2=style$1({prop:"zIndex",themeKey:"zIndex"}),top$1=style$1({prop:"top"}),right$1=style$1({prop:"right"}),bottom$1=style$1({prop:"bottom"}),left$1=style$1({prop:"left"}),positions$1=compose(position,zIndex$2,top$1,right$1,bottom$1,left$1),boxShadow=style$1({prop:"boxShadow",themeKey:"shadows"}),shadows$2=boxShadow;function transform(s){return s<=1&&s!==0?`${s*100}%`:s}const width=style$1({prop:"width",transform}),maxWidth=s=>{if(s.maxWidth!==void 0&&s.maxWidth!==null){const o=et=>{var tt,nt,rt;return{maxWidth:((tt=s.theme)==null||(nt=tt.breakpoints)==null||(rt=nt.values)==null?void 0:rt[et])||values[et]||transform(et)}};return handleBreakpoints(s,s.maxWidth,o)}return null};maxWidth.filterProps=["maxWidth"];const minWidth=style$1({prop:"minWidth",transform}),height=style$1({prop:"height",transform}),maxHeight=style$1({prop:"maxHeight",transform}),minHeight=style$1({prop:"minHeight",transform});style$1({prop:"size",cssProperty:"width",transform});style$1({prop:"size",cssProperty:"height",transform});const boxSizing=style$1({prop:"boxSizing"}),sizing=compose(width,maxWidth,minWidth,height,maxHeight,minHeight,boxSizing),sizing$1=sizing,fontFamily=style$1({prop:"fontFamily",themeKey:"typography"}),fontSize=style$1({prop:"fontSize",themeKey:"typography"}),fontStyle=style$1({prop:"fontStyle",themeKey:"typography"}),fontWeight=style$1({prop:"fontWeight",themeKey:"typography"}),letterSpacing=style$1({prop:"letterSpacing"}),textTransform=style$1({prop:"textTransform"}),lineHeight=style$1({prop:"lineHeight"}),textAlign=style$1({prop:"textAlign"}),typographyVariant=style$1({prop:"typography",cssProperty:!1,themeKey:"typography"}),typography=compose(typographyVariant,fontFamily,fontSize,fontStyle,fontWeight,letterSpacing,lineHeight,textAlign,textTransform),typography$1=typography,filterPropsMapping={borders:borders$1.filterProps,display:display.filterProps,flexbox:flexbox$1.filterProps,grid:grid$1.filterProps,positions:positions$1.filterProps,palette:palette$1.filterProps,shadows:shadows$2.filterProps,sizing:sizing$1.filterProps,spacing:spacing$1.filterProps,typography:typography$1.filterProps},styleFunctionMapping={borders:borders$1,display,flexbox:flexbox$1,grid:grid$1,positions:positions$1,palette:palette$1,shadows:shadows$2,sizing:sizing$1,spacing:spacing$1,typography:typography$1};Object.keys(filterPropsMapping).reduce((s,o)=>(filterPropsMapping[o].forEach(et=>{s[et]=styleFunctionMapping[o]}),s),{});function objectsHaveSameKeys(...s){const o=s.reduce((tt,nt)=>tt.concat(Object.keys(nt)),[]),et=new Set(o);return s.every(tt=>et.size===Object.keys(tt).length)}function callIfFn(s,o){return typeof s=="function"?s(o):s}function unstable_createStyleFunctionSx(s=styleFunctionMapping){const o=Object.keys(s).reduce((nt,rt)=>(s[rt].filterProps.forEach(it=>{nt[it]=s[rt]}),nt),{});function et(nt,rt,it){const ot={[nt]:rt,theme:it},st=o[nt];return st?st(ot):{[nt]:rt}}function tt(nt){const{sx:rt,theme:it={}}=nt||{};if(!rt)return null;function ot(st){let at=st;if(typeof st=="function")at=st(it);else if(typeof st!="object")return st;if(!at)return null;const lt=createEmptyBreakpointObject(it.breakpoints),ut=Object.keys(lt);let dt=lt;return Object.keys(at).forEach(ht=>{const ct=callIfFn(at[ht],it);if(ct!=null)if(typeof ct=="object")if(o[ht])dt=merge$2(dt,et(ht,ct,it));else{const pt=handleBreakpoints({theme:it},ct,ft=>({[ht]:ft}));objectsHaveSameKeys(pt,ct)?dt[ht]=tt({sx:ct,theme:it}):dt=merge$2(dt,pt)}else dt=merge$2(dt,et(ht,ct,it))}),removeUnusedBreakpoints(ut,dt)}return Array.isArray(rt)?rt.map(ot):ot(rt)}return tt}const styleFunctionSx=unstable_createStyleFunctionSx();styleFunctionSx.filterProps=["sx"];const defaultStyleFunctionSx=styleFunctionSx,_excluded$8=["values","unit","step"],sortBreakpointsValues=s=>{const o=Object.keys(s).map(et=>({key:et,val:s[et]}))||[];return o.sort((et,tt)=>et.val-tt.val),o.reduce((et,tt)=>_extends$1({},et,{[tt.key]:tt.val}),{})};function createBreakpoints(s){const{values:o={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:et="px",step:tt=5}=s,nt=_objectWithoutPropertiesLoose$1(s,_excluded$8),rt=sortBreakpointsValues(o),it=Object.keys(rt);function ot(dt){return`@media (min-width:${typeof o[dt]=="number"?o[dt]:dt}${et})`}function st(dt){return`@media (max-width:${(typeof o[dt]=="number"?o[dt]:dt)-tt/100}${et})`}function at(dt,ht){const ct=it.indexOf(ht);return`@media (min-width:${typeof o[dt]=="number"?o[dt]:dt}${et}) and (max-width:${(ct!==-1&&typeof o[it[ct]]=="number"?o[it[ct]]:ht)-tt/100}${et})`}function lt(dt){return it.indexOf(dt)+1(tt.length===0?[1]:tt).map(nt=>{const rt=o(nt);return typeof rt=="number"?`${rt}px`:rt}).join(" ");return et.mui=!0,et}const _excluded$7=["breakpoints","palette","spacing","shape"];function createTheme$1(s={},...o){const{breakpoints:et={},palette:tt={},spacing:nt,shape:rt={}}=s,it=_objectWithoutPropertiesLoose$1(s,_excluded$7),ot=createBreakpoints(et),st=createSpacing(nt);let at=deepmerge({breakpoints:ot,direction:"ltr",components:{},palette:_extends$1({mode:"light"},tt),spacing:st,shape:_extends$1({},shape$1,rt)},it);return at=o.reduce((lt,ut)=>deepmerge(lt,ut),at),at}createTheme$1();const _excluded$6=["variant"];function isEmpty$1(s){return s.length===0}function propsToClassKey(s){const{variant:o}=s,et=_objectWithoutPropertiesLoose$1(s,_excluded$6);let tt=o||"";return Object.keys(et).sort().forEach(nt=>{nt==="color"?tt+=isEmpty$1(tt)?s[nt]:capitalize(s[nt]):tt+=`${isEmpty$1(tt)?nt:capitalize(nt)}${capitalize(s[nt].toString())}`}),tt}const _excluded$5=["name","slot","skipVariantsResolver","skipSx","overridesResolver"],_excluded2=["theme"],_excluded3=["theme"];function isEmpty(s){return Object.keys(s).length===0}const getStyleOverrides=(s,o)=>o.components&&o.components[s]&&o.components[s].styleOverrides?o.components[s].styleOverrides:null,getVariantStyles=(s,o)=>{let et=[];o&&o.components&&o.components[s]&&o.components[s].variants&&(et=o.components[s].variants);const tt={};return et.forEach(nt=>{const rt=propsToClassKey(nt.props);tt[rt]=nt.style}),tt},variantsResolver=(s,o,et,tt)=>{var nt,rt;const{ownerState:it={}}=s,ot=[],st=et==null||(nt=et.components)==null||(rt=nt[tt])==null?void 0:rt.variants;return st&&st.forEach(at=>{let lt=!0;Object.keys(at.props).forEach(ut=>{it[ut]!==at.props[ut]&&s[ut]!==at.props[ut]&&(lt=!1)}),lt&&ot.push(o[propsToClassKey(at.props)])}),ot};function shouldForwardProp(s){return s!=="ownerState"&&s!=="theme"&&s!=="sx"&&s!=="as"}const systemDefaultTheme=createTheme$1();function createStyled$1(s={}){const{defaultTheme:o=systemDefaultTheme,rootShouldForwardProp:et=shouldForwardProp,slotShouldForwardProp:tt=shouldForwardProp,styleFunctionSx:nt=defaultStyleFunctionSx}=s;return(rt,it={})=>{const{name:ot,slot:st,skipVariantsResolver:at,skipSx:lt,overridesResolver:ut}=it,dt=_objectWithoutPropertiesLoose$1(it,_excluded$5),ht=at!==void 0?at:st&&st!=="Root"||!1,ct=lt||!1;let pt,ft=shouldForwardProp;st==="Root"?ft=et:st&&(ft=tt);const gt=styled$2(rt,_extends$1({shouldForwardProp:ft,label:pt},dt)),yt=(Ut,...Ft)=>{const mt=Ft?Ft.map(Rt=>typeof Rt=="function"&&Rt.__emotion_real!==Rt?St=>{let{theme:Tt}=St,Bt=_objectWithoutPropertiesLoose$1(St,_excluded2);return Rt(_extends$1({theme:isEmpty(Tt)?o:Tt},Bt))}:Rt):[];let vt=Ut;ot&&ut&&mt.push(Rt=>{const St=isEmpty(Rt.theme)?o:Rt.theme,Tt=getStyleOverrides(ot,St);if(Tt){const Bt={};return Object.entries(Tt).forEach(([xt,Ct])=>{Bt[xt]=typeof Ct=="function"?Ct(Rt):Ct}),ut(Rt,Bt)}return null}),ot&&!ht&&mt.push(Rt=>{const St=isEmpty(Rt.theme)?o:Rt.theme;return variantsResolver(Rt,getVariantStyles(ot,St),St,ot)}),ct||mt.push(Rt=>{const St=isEmpty(Rt.theme)?o:Rt.theme;return nt(_extends$1({},Rt,{theme:St}))});const At=mt.length-Ft.length;if(Array.isArray(Ut)&&At>0){const Rt=new Array(At).fill("");vt=[...Ut,...Rt],vt.raw=[...Ut.raw,...Rt]}else typeof Ut=="function"&&Ut.__emotion_real!==Ut&&(vt=Rt=>{let{theme:St}=Rt,Tt=_objectWithoutPropertiesLoose$1(Rt,_excluded3);return Ut(_extends$1({theme:isEmpty(St)?o:St},Tt))});return gt(vt,...mt)};return gt.withConfig&&(yt.withConfig=gt.withConfig),yt}}function clamp$1$1(s,o=0,et=1){return Math.min(Math.max(o,s),et)}function hexToRgb(s){s=s.slice(1);const o=new RegExp(`.{1,${s.length>=6?2:1}}`,"g");let et=s.match(o);return et&&et[0].length===1&&(et=et.map(tt=>tt+tt)),et?`rgb${et.length===4?"a":""}(${et.map((tt,nt)=>nt<3?parseInt(tt,16):Math.round(parseInt(tt,16)/255*1e3)/1e3).join(", ")})`:""}function decomposeColor(s){if(s.type)return s;if(s.charAt(0)==="#")return decomposeColor(hexToRgb(s));const o=s.indexOf("("),et=s.substring(0,o);if(["rgb","rgba","hsl","hsla","color"].indexOf(et)===-1)throw new Error(formatMuiErrorMessage(9,s));let tt=s.substring(o+1,s.length-1),nt;if(et==="color"){if(tt=tt.split(" "),nt=tt.shift(),tt.length===4&&tt[3].charAt(0)==="/"&&(tt[3]=tt[3].slice(1)),["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(nt)===-1)throw new Error(formatMuiErrorMessage(10,nt))}else tt=tt.split(",");return tt=tt.map(rt=>parseFloat(rt)),{type:et,values:tt,colorSpace:nt}}function recomposeColor(s){const{type:o,colorSpace:et}=s;let{values:tt}=s;return o.indexOf("rgb")!==-1?tt=tt.map((nt,rt)=>rt<3?parseInt(nt,10):nt):o.indexOf("hsl")!==-1&&(tt[1]=`${tt[1]}%`,tt[2]=`${tt[2]}%`),o.indexOf("color")!==-1?tt=`${et} ${tt.join(" ")}`:tt=`${tt.join(", ")}`,`${o}(${tt})`}function hslToRgb(s){s=decomposeColor(s);const{values:o}=s,et=o[0],tt=o[1]/100,nt=o[2]/100,rt=tt*Math.min(nt,1-nt),it=(at,lt=(at+et/30)%12)=>nt-rt*Math.max(Math.min(lt-3,9-lt,1),-1);let ot="rgb";const st=[Math.round(it(0)*255),Math.round(it(8)*255),Math.round(it(4)*255)];return s.type==="hsla"&&(ot+="a",st.push(o[3])),recomposeColor({type:ot,values:st})}function getLuminance(s){s=decomposeColor(s);let o=s.type==="hsl"?decomposeColor(hslToRgb(s)).values:s.values;return o=o.map(et=>(s.type!=="color"&&(et/=255),et<=.03928?et/12.92:((et+.055)/1.055)**2.4)),Number((.2126*o[0]+.7152*o[1]+.0722*o[2]).toFixed(3))}function getContrastRatio(s,o){const et=getLuminance(s),tt=getLuminance(o);return(Math.max(et,tt)+.05)/(Math.min(et,tt)+.05)}function darken(s,o){if(s=decomposeColor(s),o=clamp$1$1(o),s.type.indexOf("hsl")!==-1)s.values[2]*=1-o;else if(s.type.indexOf("rgb")!==-1||s.type.indexOf("color")!==-1)for(let et=0;et<3;et+=1)s.values[et]*=1-o;return recomposeColor(s)}function lighten(s,o){if(s=decomposeColor(s),o=clamp$1$1(o),s.type.indexOf("hsl")!==-1)s.values[2]+=(100-s.values[2])*o;else if(s.type.indexOf("rgb")!==-1)for(let et=0;et<3;et+=1)s.values[et]+=(255-s.values[et])*o;else if(s.type.indexOf("color")!==-1)for(let et=0;et<3;et+=1)s.values[et]+=(1-s.values[et])*o;return recomposeColor(s)}function createMixins(s,o,et){return _extends$1({toolbar:{minHeight:56,[`${s.up("xs")} and (orientation: landscape)`]:{minHeight:48},[s.up("sm")]:{minHeight:64}}},et)}const common$1={black:"#000",white:"#fff"},common$1$1=common$1,grey={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},grey$1=grey,purple={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},purple$1=purple,red={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},red$1=red,orange={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},orange$1=orange,blue={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},blue$1=blue,lightBlue={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},lightBlue$1=lightBlue,green={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},green$1=green,_excluded$4=["mode","contrastThreshold","tonalOffset"],light={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:common$1$1.white,default:common$1$1.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},dark={text:{primary:common$1$1.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:common$1$1.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function addLightOrDark(s,o,et,tt){const nt=tt.light||tt,rt=tt.dark||tt*1.5;s[o]||(s.hasOwnProperty(et)?s[o]=s[et]:o==="light"?s.light=lighten(s.main,nt):o==="dark"&&(s.dark=darken(s.main,rt)))}function getDefaultPrimary(s="light"){return s==="dark"?{main:blue$1[200],light:blue$1[50],dark:blue$1[400]}:{main:blue$1[700],light:blue$1[400],dark:blue$1[800]}}function getDefaultSecondary(s="light"){return s==="dark"?{main:purple$1[200],light:purple$1[50],dark:purple$1[400]}:{main:purple$1[500],light:purple$1[300],dark:purple$1[700]}}function getDefaultError(s="light"){return s==="dark"?{main:red$1[500],light:red$1[300],dark:red$1[700]}:{main:red$1[700],light:red$1[400],dark:red$1[800]}}function getDefaultInfo(s="light"){return s==="dark"?{main:lightBlue$1[400],light:lightBlue$1[300],dark:lightBlue$1[700]}:{main:lightBlue$1[700],light:lightBlue$1[500],dark:lightBlue$1[900]}}function getDefaultSuccess(s="light"){return s==="dark"?{main:green$1[400],light:green$1[300],dark:green$1[700]}:{main:green$1[800],light:green$1[500],dark:green$1[900]}}function getDefaultWarning(s="light"){return s==="dark"?{main:orange$1[400],light:orange$1[300],dark:orange$1[700]}:{main:"#ed6c02",light:orange$1[500],dark:orange$1[900]}}function createPalette(s){const{mode:o="light",contrastThreshold:et=3,tonalOffset:tt=.2}=s,nt=_objectWithoutPropertiesLoose$1(s,_excluded$4),rt=s.primary||getDefaultPrimary(o),it=s.secondary||getDefaultSecondary(o),ot=s.error||getDefaultError(o),st=s.info||getDefaultInfo(o),at=s.success||getDefaultSuccess(o),lt=s.warning||getDefaultWarning(o);function ut(ct){return getContrastRatio(ct,dark.text.primary)>=et?dark.text.primary:light.text.primary}const dt=({color:ct,name:pt,mainShade:ft=500,lightShade:gt=300,darkShade:yt=700})=>{if(ct=_extends$1({},ct),!ct.main&&ct[ft]&&(ct.main=ct[ft]),!ct.hasOwnProperty("main"))throw new Error(formatMuiErrorMessage(11,pt?` (${pt})`:"",ft));if(typeof ct.main!="string")throw new Error(formatMuiErrorMessage(12,pt?` (${pt})`:"",JSON.stringify(ct.main)));return addLightOrDark(ct,"light",gt,tt),addLightOrDark(ct,"dark",yt,tt),ct.contrastText||(ct.contrastText=ut(ct.main)),ct},ht={dark,light};return deepmerge(_extends$1({common:common$1$1,mode:o,primary:dt({color:rt,name:"primary"}),secondary:dt({color:it,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:dt({color:ot,name:"error"}),warning:dt({color:lt,name:"warning"}),info:dt({color:st,name:"info"}),success:dt({color:at,name:"success"}),grey:grey$1,contrastThreshold:et,getContrastText:ut,augmentColor:dt,tonalOffset:tt},ht[o]),nt)}const _excluded$3=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];function round$1(s){return Math.round(s*1e5)/1e5}const caseAllCaps={textTransform:"uppercase"},defaultFontFamily='"Roboto", "Helvetica", "Arial", sans-serif';function createTypography(s,o){const et=typeof o=="function"?o(s):o,{fontFamily:tt=defaultFontFamily,fontSize:nt=14,fontWeightLight:rt=300,fontWeightRegular:it=400,fontWeightMedium:ot=500,fontWeightBold:st=700,htmlFontSize:at=16,allVariants:lt,pxToRem:ut}=et,dt=_objectWithoutPropertiesLoose$1(et,_excluded$3),ht=nt/14,ct=ut||(gt=>`${gt/at*ht}rem`),pt=(gt,yt,Ut,Ft,mt)=>_extends$1({fontFamily:tt,fontWeight:gt,fontSize:ct(yt),lineHeight:Ut},tt===defaultFontFamily?{letterSpacing:`${round$1(Ft/yt)}em`}:{},mt,lt),ft={h1:pt(rt,96,1.167,-1.5),h2:pt(rt,60,1.2,-.5),h3:pt(it,48,1.167,0),h4:pt(it,34,1.235,.25),h5:pt(it,24,1.334,0),h6:pt(ot,20,1.6,.15),subtitle1:pt(it,16,1.75,.15),subtitle2:pt(ot,14,1.57,.1),body1:pt(it,16,1.5,.15),body2:pt(it,14,1.43,.15),button:pt(ot,14,1.75,.4,caseAllCaps),caption:pt(it,12,1.66,.4),overline:pt(it,12,2.66,1,caseAllCaps)};return deepmerge(_extends$1({htmlFontSize:at,pxToRem:ct,fontFamily:tt,fontSize:nt,fontWeightLight:rt,fontWeightRegular:it,fontWeightMedium:ot,fontWeightBold:st},ft),dt,{clone:!1})}const shadowKeyUmbraOpacity=.2,shadowKeyPenumbraOpacity=.14,shadowAmbientShadowOpacity=.12;function createShadow(...s){return[`${s[0]}px ${s[1]}px ${s[2]}px ${s[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`,`${s[4]}px ${s[5]}px ${s[6]}px ${s[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`,`${s[8]}px ${s[9]}px ${s[10]}px ${s[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(",")}const shadows=["none",createShadow(0,2,1,-1,0,1,1,0,0,1,3,0),createShadow(0,3,1,-2,0,2,2,0,0,1,5,0),createShadow(0,3,3,-2,0,3,4,0,0,1,8,0),createShadow(0,2,4,-1,0,4,5,0,0,1,10,0),createShadow(0,3,5,-1,0,5,8,0,0,1,14,0),createShadow(0,3,5,-1,0,6,10,0,0,1,18,0),createShadow(0,4,5,-2,0,7,10,1,0,2,16,1),createShadow(0,5,5,-3,0,8,10,1,0,3,14,2),createShadow(0,5,6,-3,0,9,12,1,0,3,16,2),createShadow(0,6,6,-3,0,10,14,1,0,4,18,3),createShadow(0,6,7,-4,0,11,15,1,0,4,20,3),createShadow(0,7,8,-4,0,12,17,2,0,5,22,4),createShadow(0,7,8,-4,0,13,19,2,0,5,24,4),createShadow(0,7,9,-4,0,14,21,2,0,5,26,4),createShadow(0,8,9,-5,0,15,22,2,0,6,28,5),createShadow(0,8,10,-5,0,16,24,2,0,6,30,5),createShadow(0,8,11,-5,0,17,26,2,0,6,32,5),createShadow(0,9,11,-5,0,18,28,2,0,7,34,6),createShadow(0,9,12,-6,0,19,29,2,0,7,36,6),createShadow(0,10,13,-6,0,20,31,3,0,8,38,7),createShadow(0,10,13,-6,0,21,33,3,0,8,40,7),createShadow(0,10,14,-6,0,22,35,3,0,8,42,7),createShadow(0,11,14,-7,0,23,36,3,0,9,44,8),createShadow(0,11,15,-7,0,24,38,3,0,9,46,8)],shadows$1=shadows,_excluded$2=["duration","easing","delay"],easing={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},duration$4={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function formatMs(s){return`${Math.round(s)}ms`}function getAutoHeightDuration(s){if(!s)return 0;const o=s/36;return Math.round((4+15*o**.25+o/5)*10)}function createTransitions(s){const o=_extends$1({},easing,s.easing),et=_extends$1({},duration$4,s.duration);return _extends$1({getAutoHeightDuration,create:(tt=["all"],nt={})=>{const{duration:rt=et.standard,easing:it=o.easeInOut,delay:ot=0}=nt;return _objectWithoutPropertiesLoose$1(nt,_excluded$2),(Array.isArray(tt)?tt:[tt]).map(st=>`${st} ${typeof rt=="string"?rt:formatMs(rt)} ${it} ${typeof ot=="string"?ot:formatMs(ot)}`).join(",")}},s,{easing:o,duration:et})}const zIndex={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},zIndex$1=zIndex,_excluded$1=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function createTheme(s={},...o){const{mixins:et={},palette:tt={},transitions:nt={},typography:rt={}}=s,it=_objectWithoutPropertiesLoose$1(s,_excluded$1),ot=createPalette(tt),st=createTheme$1(s);let at=deepmerge(st,{mixins:createMixins(st.breakpoints,st.spacing,et),palette:ot,shadows:shadows$1.slice(),typography:createTypography(ot,rt),transitions:createTransitions(nt),zIndex:_extends$1({},zIndex$1)});return at=deepmerge(at,it),at=o.reduce((lt,ut)=>deepmerge(lt,ut),at),at}const defaultTheme$1=createTheme(),defaultTheme$2=defaultTheme$1,rootShouldForwardProp=s=>shouldForwardProp(s)&&s!=="classes",styled$1=createStyled$1({defaultTheme:defaultTheme$2,rootShouldForwardProp}),styled$1$1=styled$1,html=(s,o)=>_extends$1({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%"},o&&{colorScheme:s.palette.mode}),body=s=>_extends$1({color:s.palette.text.primary},s.typography.body1,{backgroundColor:s.palette.background.default,"@media print":{backgroundColor:s.palette.common.white}});generateUtilityClasses("MuiScopedCssBaseline",["root"]);styled$1$1("div",{name:"MuiScopedCssBaseline",slot:"Root",overridesResolver:(s,o)=>o.root})(({theme:s,ownerState:o})=>_extends$1({},html(s,o.enableColorScheme),body(s),{"& *, & *::before, & *::after":{boxSizing:"inherit"},"& strong, & b":{fontWeight:s.typography.fontWeightBold}}));const baseTheme=createTheme$2({typography:{fontFamily:"'Moderat', 'Inter', 'Source Sans Pro', sans-serif",h1:{fontStyle:"normal",fontWeight:"normal",fontSize:"2rem",lineHeight:"2.5rem",letterSpacing:0},h2:{fontStyle:"normal",fontWeight:"normal",fontSize:"1.5rem",lineHeight:"2.125rem",letterSpacing:"0.069rem",fontFeatureSettings:'"zero" on'},h3:{fontStyle:"normal",fontWeight:500,fontSize:"1.125rem",lineHeight:"1.688rem",letterSpacing:"0.069rem"},h4:{fontStyle:"normal",fontWeight:700,fontSize:"0.813rem",lineHeight:"1.375rem",letterSpacing:"0.069rem",textTransform:"uppercase"},h5:{fontStyle:"normal",fontWeight:700,fontSize:"0.813rem",lineHeight:"1.125rem",letterSpacing:"0.038rem",textTransform:"uppercase"},h6:{fontStyle:"normal",fontWeight:"normal",fontSize:"0.625rem",lineHeight:"0.938rem",letterSpacing:"0.063rem"},body1:{fontStyle:"normal",fontWeight:"normal",fontSize:"1rem",lineHeight:"1.688rem",letterSpacing:"0.063rem",fontFeatureSettings:'"zero" on'},body2:{fontStyle:"normal",fontWeight:"normal",fontSize:"1rem",lineHeight:"1.688rem",letterSpacing:"0.063rem",fontFeatureSettings:'"zero" on',fontVariantNumeric:"tabular-nums"},button:{fontWeight:500,fontSize:"0.875rem",lineHeight:"1.05rem",letterSpacing:"0.053.rem",textTransform:"uppercase"}}}),lightPalette={palette:{mode:"light",success:{main:"#34dea9",dark:"#2d8376"},info:{main:"#297ceb",dark:"#256faf",light:"#3BABFF"},error:{main:"#fd76a7",dark:"#7f5072"},warning:{main:"#ffb179",dark:"#94645f"},primary:{main:"#657197",light:"#BAC4E2",dark:"#3B4668"},secondary:{main:"#3babff",dark:"#76a7dc"},background:{default:"#FFFFFF",paper:"#F1F3F9"},common:{black:"#ffffff",white:"#000000"}}},darkPalette={palette:{mode:"dark",primary:{main:"#657197",dark:"#3B4668",light:"#BAC4E2",contrastText:"#ffffff"},secondary:{main:"#18d2ff",light:"#18d2ff",dark:"#256faf"},background:{default:"#2d3855",paper:"#2d3855"},common:{black:"#000000",white:"#ffffff"},text:{primary:"#bac4e2"},error:{main:"#ea719d",dark:"#7F5072"},warning:{main:"#a961e4",dark:"#564A94"},info:{main:"#20a0ff",dark:"#256FAF"},success:{main:"#2ec495",dark:"#2D8376"}}};function createComponents(s){const o={components:{MuiCssBaseline:{styleOverrides:{body:{"&::-webkit-scrollbar, & *::-webkit-scrollbar":{background:"transparent",width:"0.5rem",height:"0.5rem"},"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb":{background:s.palette.primary.light,borderRadius:"0.25rem"},"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover":{backgroundColor:s.palette.primary.light},"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner":{backgroundColor:s.palette.primary.light}}}},MuiLink:{styleOverrides:{root:{color:s.palette.secondary.main}}},MuiDialogActions:{styleOverrides:{root:{padding:baseTheme.spacing(3)}}},MuiInputLabel:{styleOverrides:{root:{color:s.palette.primary.light,"&.Mui-focused":{color:s.palette.secondary.main}},outlined:{borderRadius:4,padding:"0.125rem 0.375rem","&.Mui-focused":{backgroundColor:"#2d3855"}}}},MuiFilledInput:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,borderTop:"1px solid transparent",":before":{borderBottom:`1px dotted ${s.palette.primary.light}`},"&.Mui-focused":{background:s.palette.common.black,border:`1px solid ${s.palette.secondary.main}`,borderBottom:"none",borderTop:`1px solid ${s.palette.secondary.main}`},":after":{borderBottom:`1px solid ${s.palette.secondary.main}`}}}},MuiOutlinedInput:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,borderBottomLeftRadius:0,borderBottomRightRadius:0,borderBottom:`1px dotted ${s.palette.primary.light}`,"&.Mui-focused":{border:`1px solid ${s.palette.secondary.main}`,backgroundColor:s.palette.common.black}},notchedOutline:{border:"transparent"},input:{"&:-webkit-autofill":{"-webkit-box-shadow":`0 0 0 100px ${s.palette.primary.dark} inset`,"-webkit-text-fill-color":s.palette.primary.light}}}},MuiFormHelperText:{styleOverrides:{root:{color:s.palette.error.main}}},MuiTooltip:{styleOverrides:{tooltip:{backgroundColor:"rgba(0, 0, 0, 0.87)",color:"white",padding:baseTheme.spacing(1.2)}}},MuiDialogTitle:{styleOverrides:{root:{color:s.palette.common.white,fontStyle:"normal",fontWeight:500,...baseTheme.typography.h3}}},MuiDialogContentText:{styleOverrides:{root:{color:s.palette.primary.light}}},MuiButtonBase:{defaultProps:{disableRipple:!0}},MuiButton:{styleOverrides:{root:{willChange:"background-color , color , border-color , box-shadow",transition:"background-color 200ms ease-in-out 0ms , color 200ms ease-in-out 0ms , border-color 200ms ease-in-out 0ms , box-shadow 200ms ease-in-out 0ms",borderRadius:40,boxShadow:`0 0 0 0rem ${s.palette.primary.main}`,"&.Mui-disabled":{color:s.palette.primary.main}},sizeSmall:{height:"1.25rem",fontWeight:500,fontSize:"0.688rem",lineHeight:"0.825rem",letterSpacing:"0.047rem"},sizeMedium:{height:"1.813rem",fontWeight:500},sizeLarge:{height:"2.563rem",fontWeight:500,fontSize:"0.875rem",lineHeight:"1.05rem",letterSpacing:"0.053rem"},containedPrimary:{background:s.palette.primary.light,color:s.palette.common.black,"@media(hover: hover)":{"&:hover":{boxShadow:`0 0 0 0.4rem ${s.palette.primary.light}`,background:s.palette.primary.light}}},containedSecondary:{color:s.palette.common.black,"@media(hover: hover)":{"&:hover":{boxShadow:`0 0 0 0.4rem ${s.palette.secondary.main}`,background:s.palette.secondary.main}}},outlinedPrimary:{color:s.palette.primary.light}}},MuiDialog:{styleOverrides:{paper:{background:s.palette.background.paper}}},MuiNativeSelect:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,borderTop:"1px solid transparent"},icon:{color:s.palette.primary.light}}},MuiSelect:{styleOverrides:{icon:{color:s.palette.primary.light}}},MuiSnackbarContent:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,color:s.palette.primary.light}}},MuiSwitch:{styleOverrides:{switchBase:{"&.Mui-checked+.MuiSwitch-track":{backgroundColor:s.palette.common.black},"&.Mui-checked .MuiSwitch-thumb":{backgroundColor:s.palette.secondary.main}},thumb:{backgroundColor:s.palette.primary.light},track:{backgroundColor:s.palette.common.black}}}}};return createTheme$2(s,o)}createComponents(createTheme$2(baseTheme,darkPalette));createComponents(createTheme$2(baseTheme,lightPalette));function toInteger$1(s){if(s===null||s===!0||s===!1)return NaN;var o=Number(s);return isNaN(o)?o:o<0?Math.ceil(o):Math.floor(o)}function requiredArgs$1(s,o){if(o.length1?"s":"")+" required, but only "+o.length+" present")}function _typeof$1$1(s){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$1$1=function(o){return typeof o}:_typeof$1$1=function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof$1$1(s)}function toDate$1(s){requiredArgs$1(1,arguments);var o=Object.prototype.toString.call(s);return s instanceof Date||_typeof$1$1(s)==="object"&&o==="[object Date]"?new Date(s.getTime()):typeof s=="number"||o==="[object Number]"?new Date(s):((typeof s=="string"||o==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function addDays$1(s,o){requiredArgs$1(2,arguments);var et=toDate$1(s),tt=toInteger$1(o);return isNaN(tt)?new Date(NaN):(tt&&et.setDate(et.getDate()+tt),et)}function addMonths$1(s,o){requiredArgs$1(2,arguments);var et=toDate$1(s),tt=toInteger$1(o);if(isNaN(tt))return new Date(NaN);if(!tt)return et;var nt=et.getDate(),rt=new Date(et.getTime());rt.setMonth(et.getMonth()+tt+1,0);var it=rt.getDate();return nt>=it?rt:(et.setFullYear(rt.getFullYear(),rt.getMonth(),nt),et)}function addMilliseconds$1(s,o){requiredArgs$1(2,arguments);var et=toDate$1(s).getTime(),tt=toInteger$1(o);return new Date(et+tt)}var MILLISECONDS_IN_HOUR$1=36e5;function addHours$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addMilliseconds$1(s,et*MILLISECONDS_IN_HOUR$1)}var defaultOptions$1={};function getDefaultOptions$1(){return defaultOptions$1}function startOfWeek$1(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs$1(1,arguments);var lt=getDefaultOptions$1(),ut=toInteger$1((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate$1(s),ht=dt.getDay(),ct=(ht=it)throw new RangeError("Invalid interval");var ot=[],st=tt,at=Number((et=o?.step)!==null&&et!==void 0?et:1);if(at<1||isNaN(at))throw new RangeError("`options.step` must be a number equal to or greater than 1");for(;st.getTime()<=it;)ot.push(toDate$1(st)),st=addMinutes$1(st,at);return ot}function eachMonthOfInterval$1(s){requiredArgs$1(1,arguments);var o=s||{},et=toDate$1(o.start),tt=toDate$1(o.end),nt=tt.getTime(),rt=[];if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var it=et;for(it.setHours(0,0,0,0),it.setDate(1);it.getTime()<=nt;)rt.push(toDate$1(it)),it.setMonth(it.getMonth()+1);return rt}function startOfQuarter$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s),et=o.getMonth(),tt=et-et%3;return o.setMonth(tt,1),o.setHours(0,0,0,0),o}function eachQuarterOfInterval$1(s){requiredArgs$1(1,arguments);var o=s||{},et=toDate$1(o.start),tt=toDate$1(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=startOfQuarter$1(et),it=startOfQuarter$1(tt);nt=it.getTime();for(var ot=[],st=rt;st.getTime()<=nt;)ot.push(toDate$1(st)),st=addQuarters$1(st,1);return ot}function eachWeekOfInterval$1(s,o){requiredArgs$1(1,arguments);var et=s||{},tt=toDate$1(et.start),nt=toDate$1(et.end),rt=nt.getTime();if(!(tt.getTime()<=rt))throw new RangeError("Invalid interval");var it=startOfWeek$1(tt,o),ot=startOfWeek$1(nt,o);it.setHours(15),ot.setHours(15),rt=ot.getTime();for(var st=[],at=it;at.getTime()<=rt;)at.setHours(0),st.push(toDate$1(at)),at=addWeeks$1(at,1),at.setHours(15);return st}function startOfMonth$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s);return o.setDate(1),o.setHours(0,0,0,0),o}function endOfYear$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s),et=o.getFullYear();return o.setFullYear(et+1,0,0),o.setHours(23,59,59,999),o}function startOfYear$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s),et=new Date(0);return et.setFullYear(o.getFullYear(),0,1),et.setHours(0,0,0,0),et}function eachYearOfInterval$1(s){requiredArgs$1(1,arguments);var o=s||{},et=toDate$1(o.start),tt=toDate$1(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=[],it=et;for(it.setHours(0,0,0,0),it.setMonth(0,1);it.getTime()<=nt;)rt.push(toDate$1(it)),it.setFullYear(it.getFullYear()+1);return rt}function endOfHour$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s);return o.setMinutes(59,59,999),o}function endOfWeek$1(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs$1(1,arguments);var lt=getDefaultOptions$1(),ut=toInteger$1((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate$1(s),ht=dt.getDay(),ct=(ht=1&&ht<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var ct=new Date(0);ct.setFullYear(ut+1,0,ht),ct.setHours(0,0,0,0);var pt=startOfWeek$1(ct,o),ft=new Date(0);ft.setFullYear(ut,0,ht),ft.setHours(0,0,0,0);var gt=startOfWeek$1(ft,o);return lt.getTime()>=pt.getTime()?ut+1:lt.getTime()>=gt.getTime()?ut:ut-1}function startOfWeekYear$1(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs$1(1,arguments);var lt=getDefaultOptions$1(),ut=toInteger$1((et=(tt=(nt=(rt=o?.firstWeekContainsDate)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.firstWeekContainsDate)!==null&&nt!==void 0?nt:lt.firstWeekContainsDate)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.firstWeekContainsDate)!==null&&et!==void 0?et:1),dt=getWeekYear$1(s,o),ht=new Date(0);ht.setFullYear(dt,0,ut),ht.setHours(0,0,0,0);var ct=startOfWeek$1(ht,o);return ct}var MILLISECONDS_IN_WEEK$1=6048e5;function getWeek$1(s,o){requiredArgs$1(1,arguments);var et=toDate$1(s),tt=startOfWeek$1(et,o).getTime()-startOfWeekYear$1(et,o).getTime();return Math.round(tt/MILLISECONDS_IN_WEEK$1)+1}function getYear$1(s){return requiredArgs$1(1,arguments),toDate$1(s).getFullYear()}function startOfHour$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s);return o.setMinutes(0,0,0),o}function subDays$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addDays$1(s,-et)}function roundToNearestMinutes$1(s,o){var et;if(arguments.length<1)throw new TypeError("1 argument required, but only none provided present");var tt=toInteger$1((et=o?.nearestTo)!==null&&et!==void 0?et:1);if(tt<1||tt>30)throw new RangeError("`options.nearestTo` must be between 1 and 30");var nt=toDate$1(s),rt=nt.getSeconds(),it=nt.getMinutes()+rt/60,ot=getRoundingMethod$1(o?.roundingMethod),st=ot(it/tt)*tt,at=it%tt,lt=Math.round(at/tt)*tt;return new Date(nt.getFullYear(),nt.getMonth(),nt.getDate(),nt.getHours(),st+lt)}function subMonths$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addMonths$1(s,-et)}function subHours$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addHours$1(s,-et)}function subMinutes$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addMinutes$1(s,-et)}function subQuarters$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addQuarters$1(s,-et)}function subWeeks$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addWeeks$1(s,-et)}function subYears$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addYears$1(s,-et)}var __defProp$1=Object.defineProperty,__defNormalProp$1=(s,o,et)=>o in s?__defProp$1(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,__publicField$1=(s,o,et)=>(__defNormalProp$1(s,typeof o!="symbol"?o+"":o,et),et),dist$1={exports:{}};/*! For license information please see index.js.LICENSE.txt */(function(module,exports){(function(s,o){module.exports=o()})(window,function(){return function(s){function o(at){for(var lt,ut,dt=at[0],ht=at[1],ct=0,pt=[];ct1?"s":"")+" required, but only "+$t.length+" present")}function ut(It){if(It===null||It===!0||It===!1)return NaN;var $t=Number(It);return isNaN($t)?$t:$t<0?Math.ceil($t):Math.floor($t)}var dt={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},ht=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,ct=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,pt=/^([+-])(\d{2})(?::?(\d{2}))?$/;function ft(It){var $t,Ht={},qt=It.split(dt.dateTimeDelimiter);if(qt.length>2)return Ht;if(/:/.test(qt[0])?$t=qt[0]:(Ht.date=qt[0],$t=qt[1],dt.timeZoneDelimiter.test(Ht.date)&&(Ht.date=It.split(dt.timeZoneDelimiter)[0],$t=It.substr(Ht.date.length,It.length))),$t){var on=dt.timezone.exec($t);on?(Ht.time=$t.replace(on[1],""),Ht.timezone=on[1]):Ht.time=$t}return Ht}function gt(It,$t){var Ht=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+$t)+"})|(\\d{2}|[+-]\\d{"+(2+$t)+"})$)"),qt=It.match(Ht);if(!qt)return{year:NaN,restDateString:""};var on=qt[1]?parseInt(qt[1]):null,Xt=qt[2]?parseInt(qt[2]):null;return{year:Xt===null?on:100*Xt,restDateString:It.slice((qt[1]||qt[2]).length)}}function yt(It,$t){if($t===null)return new Date(NaN);var Ht=It.match(ht);if(!Ht)return new Date(NaN);var qt=!!Ht[4],on=Ut(Ht[1]),Xt=Ut(Ht[2])-1,dn=Ut(Ht[3]),_n=Ut(Ht[4]),Fn=Ut(Ht[5])-1;if(qt)return function(On,gn,hn){return gn>=1&&gn<=53&&hn>=0&&hn<=6}(0,_n,Fn)?function(On,gn,hn){var wn=new Date(0);wn.setUTCFullYear(On,0,4);var Zn=wn.getUTCDay()||7,Pn=7*(gn-1)+hn+1-Zn;return wn.setUTCDate(wn.getUTCDate()+Pn),wn}($t,_n,Fn):new Date(NaN);var Un=new Date(0);return function(On,gn,hn){return gn>=0&&gn<=11&&hn>=1&&hn<=(At[gn]||(Lt(On)?29:28))}($t,Xt,dn)&&function(On,gn){return gn>=1&&gn<=(Lt(On)?366:365)}($t,on)?(Un.setUTCFullYear($t,Xt,Math.max(on,dn)),Un):new Date(NaN)}function Ut(It){return It?parseInt(It):1}function Ft(It){var $t=It.match(ct);if(!$t)return NaN;var Ht=mt($t[1]),qt=mt($t[2]),on=mt($t[3]);return function(Xt,dn,_n){return Xt===24?dn===0&&_n===0:_n>=0&&_n<60&&dn>=0&&dn<60&&Xt>=0&&Xt<25}(Ht,qt,on)?36e5*Ht+6e4*qt+1e3*on:NaN}function mt(It){return It&&parseFloat(It.replace(",","."))||0}function vt(It){if(It==="Z")return 0;var $t=It.match(pt);if(!$t)return 0;var Ht=$t[1]==="+"?-1:1,qt=parseInt($t[2]),on=$t[3]&&parseInt($t[3])||0;return function(Xt,dn){return dn>=0&&dn<=59}(0,on)?Ht*(36e5*qt+6e4*on):NaN}var At=[31,null,31,30,31,30,31,31,30,31,30,31];function Lt(It){return It%400==0||It%4==0&&It%100!=0}function Rt(It){return lt(1,arguments),It instanceof Date||typeof It=="object"&&Object.prototype.toString.call(It)==="[object Date]"}function St(It){lt(1,arguments);var $t=Object.prototype.toString.call(It);return It instanceof Date||typeof It=="object"&&$t==="[object Date]"?new Date(It.getTime()):typeof It=="number"||$t==="[object Number]"?new Date(It):(typeof It!="string"&&$t!=="[object String]"||typeof console>"u"||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function Tt(It){const $t=function(Ht,qt){var on;lt(1,arguments);var Xt=ut((on=qt?.additionalDigits)!==null&&on!==void 0?on:2);if(Xt!==2&&Xt!==1&&Xt!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(typeof Ht!="string"&&Object.prototype.toString.call(Ht)!=="[object String]")return new Date(NaN);var dn,_n=ft(Ht);if(_n.date){var Fn=gt(_n.date,Xt);dn=yt(Fn.restDateString,Fn.year)}if(!dn||isNaN(dn.getTime()))return new Date(NaN);var Un,On=dn.getTime(),gn=0;if(_n.time&&(gn=Ft(_n.time),isNaN(gn)))return new Date(NaN);if(!_n.timezone){var hn=new Date(On+gn),wn=new Date(0);return wn.setFullYear(hn.getUTCFullYear(),hn.getUTCMonth(),hn.getUTCDate()),wn.setHours(hn.getUTCHours(),hn.getUTCMinutes(),hn.getUTCSeconds(),hn.getUTCMilliseconds()),wn}return Un=vt(_n.timezone),isNaN(Un)?new Date(NaN):new Date(On+gn+Un)}(It);if(!function(Ht){if(lt(1,arguments),!Rt(Ht)&&typeof Ht!="number")return!1;var qt=St(Ht);return!isNaN(Number(qt))}($t))throw new Error(`Invalid ISO 8601 date string (${It})`);return $t}var Bt=et(4),xt=et(34);function Ct(It){return nt()(It,{cycles:!0})}var kt=function(It,$t){var Ht={};for(var qt in It)Object.prototype.hasOwnProperty.call(It,qt)&&$t.indexOf(qt)<0&&(Ht[qt]=It[qt]);if(It!=null&&typeof Object.getOwnPropertySymbols=="function"){var on=0;for(qt=Object.getOwnPropertySymbols(It);on$t.redacted!==!1?Object(xt.a)(_n):_n;if(!It.stack)return{message:Ct(Ht(It))};const{name:qt,message:on,stack:Xt}=It,dn=kt(It,["name","message","stack"]);return{name:qt,message:on!==void 0?on:Ct(Ht(It)),stack:Xt,meta:dn&&Object.keys(dn).length===0?void 0:Ht(dn)}}function Ot(It,$t={}){const{message:Ht,stack:qt,meta:on}=Nt(It,$t);return`${qt||Ht||""}${on&&Object.keys(on).length>0?` -- ${Ct(on)}`:""}`}var Jt=et(39),Dt=et(103),Et=et.n(Dt),Pt=function(It,$t,Ht,qt){return new(Ht||(Ht=Promise))(function(on,Xt){function dn(Un){try{Fn(qt.next(Un))}catch(On){Xt(On)}}function _n(Un){try{Fn(qt.throw(Un))}catch(On){Xt(On)}}function Fn(Un){var On;Un.done?on(Un.value):(On=Un.value,On instanceof Ht?On:new Ht(function(gn){gn(On)})).then(dn,_n)}Fn((qt=qt.apply(It,$t||[])).next())})},zt=function(It,$t){var Ht={};for(var qt in It)Object.prototype.hasOwnProperty.call(It,qt)&&$t.indexOf(qt)<0&&(Ht[qt]=It[qt]);if(It!=null&&typeof Object.getOwnPropertySymbols=="function"){var on=0;for(qt=Object.getOwnPropertySymbols(It);on{var{timestamp:$t,level:Ht,message:qt,error:on}=It,Xt=Kt(It,["timestamp","level","message","error"]);const dn=Object.assign(Object.assign({timestamp:$t?Tt($t).getTime():new Date().getTime(),level:Ht.toUpperCase(),message:qt},on?{error:Nt(on)}:{}),{meta:Object.assign(Object.assign({},nn),Xt)});return nt()(dn,{cycles:!0})}):ot.format.printf(It=>{var{timestamp:$t,level:Ht,message:qt,error:on}=It,Xt=Kt(It,["timestamp","level","message","error"]);let dn=`${$t||new Date().toISOString()} ${Ht.toUpperCase()}: ${qt} `;return Object.keys(Xt).length>0&&(dn+=nt()(Xt,{cycles:!0})),on&&(dn+=` +${Ot(on)}`),dn}),jt=Object(ot.createLogger)({level:Bt.f});if(Bt.g&&jt.add(new ot.transports.Console({format:Zt,level:"debug"})),Bt.d&&jt.add(new en(Bt.d,nn)),Bt.h){const It=it.resolve(rt.tmpdir(),`silly-${Bt.a}.log`);jt.debug("Logging silly logs to file",{filename:It}),jt.add(new ot.transports.File({filename:It,maxsize:1*at,maxFiles:10,format:ot.format.combine((Vt="silly",Object(ot.format)($t=>$t.level===Vt&&$t)()),Zt),level:"silly"}))}var Vt},function(s,o,et){et.d(o,"a",function(){return tt});const tt={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:2592e6,year:31536e6}},function(s,o){var et,tt,nt=s.exports={};function rt(){throw new Error("setTimeout has not been defined")}function it(){throw new Error("clearTimeout has not been defined")}function ot(ft){if(et===setTimeout)return setTimeout(ft,0);if((et===rt||!et)&&setTimeout)return et=setTimeout,setTimeout(ft,0);try{return et(ft,0)}catch{try{return et.call(null,ft,0)}catch{return et.call(this,ft,0)}}}(function(){try{et=typeof setTimeout=="function"?setTimeout:rt}catch{et=rt}try{tt=typeof clearTimeout=="function"?clearTimeout:it}catch{tt=it}})();var st,at=[],lt=!1,ut=-1;function dt(){lt&&st&&(lt=!1,st.length?at=st.concat(at):ut=-1,at.length&&ht())}function ht(){if(!lt){var ft=ot(dt);lt=!0;for(var gt=at.length;gt;){for(st=at,at=[];++ut1)for(var yt=1;yt=ot())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ot().toString(16)+" bytes");return 0|Vt}function pt(Vt,It){if(at.isBuffer(Vt))return Vt.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(Vt)||Vt instanceof ArrayBuffer))return Vt.byteLength;typeof Vt!="string"&&(Vt=""+Vt);var $t=Vt.length;if($t===0)return 0;for(var Ht=!1;;)switch(It){case"ascii":case"latin1":case"binary":return $t;case"utf8":case"utf-8":case void 0:return nn(Vt).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*$t;case"hex":return $t>>>1;case"base64":return Zt(Vt).length;default:if(Ht)return nn(Vt).length;It=(""+It).toLowerCase(),Ht=!0}}function ft(Vt,It,$t){var Ht=!1;if((It===void 0||It<0)&&(It=0),It>this.length||(($t===void 0||$t>this.length)&&($t=this.length),$t<=0)||($t>>>=0)<=(It>>>=0))return"";for(Vt||(Vt="utf8");;)switch(Vt){case"hex":return Ct(this,It,$t);case"utf8":case"utf-8":return Tt(this,It,$t);case"ascii":return Bt(this,It,$t);case"latin1":case"binary":return xt(this,It,$t);case"base64":return St(this,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return kt(this,It,$t);default:if(Ht)throw new TypeError("Unknown encoding: "+Vt);Vt=(Vt+"").toLowerCase(),Ht=!0}}function gt(Vt,It,$t){var Ht=Vt[It];Vt[It]=Vt[$t],Vt[$t]=Ht}function yt(Vt,It,$t,Ht,qt){if(Vt.length===0)return-1;if(typeof $t=="string"?(Ht=$t,$t=0):$t>2147483647?$t=2147483647:$t<-2147483648&&($t=-2147483648),$t=+$t,isNaN($t)&&($t=qt?0:Vt.length-1),$t<0&&($t=Vt.length+$t),$t>=Vt.length){if(qt)return-1;$t=Vt.length-1}else if($t<0){if(!qt)return-1;$t=0}if(typeof It=="string"&&(It=at.from(It,Ht)),at.isBuffer(It))return It.length===0?-1:Ut(Vt,It,$t,Ht,qt);if(typeof It=="number")return It&=255,at.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?qt?Uint8Array.prototype.indexOf.call(Vt,It,$t):Uint8Array.prototype.lastIndexOf.call(Vt,It,$t):Ut(Vt,[It],$t,Ht,qt);throw new TypeError("val must be string, number or Buffer")}function Ut(Vt,It,$t,Ht,qt){var on,Xt=1,dn=Vt.length,_n=It.length;if(Ht!==void 0&&((Ht=String(Ht).toLowerCase())==="ucs2"||Ht==="ucs-2"||Ht==="utf16le"||Ht==="utf-16le")){if(Vt.length<2||It.length<2)return-1;Xt=2,dn/=2,_n/=2,$t/=2}function Fn(hn,wn){return Xt===1?hn[wn]:hn.readUInt16BE(wn*Xt)}if(qt){var Un=-1;for(on=$t;ondn&&($t=dn-_n),on=$t;on>=0;on--){for(var On=!0,gn=0;gn<_n;gn++)if(Fn(Vt,on+gn)!==Fn(It,gn)){On=!1;break}if(On)return on}return-1}function Ft(Vt,It,$t,Ht){$t=Number($t)||0;var qt=Vt.length-$t;Ht?(Ht=Number(Ht))>qt&&(Ht=qt):Ht=qt;var on=It.length;if(on%2!=0)throw new TypeError("Invalid hex string");Ht>on/2&&(Ht=on/2);for(var Xt=0;Xt>8,_n=Xt%256,Fn.push(_n),Fn.push(dn);return Fn}(It,Vt.length-$t),Vt,$t,Ht)}function St(Vt,It,$t){return It===0&&$t===Vt.length?nt.fromByteArray(Vt):nt.fromByteArray(Vt.slice(It,$t))}function Tt(Vt,It,$t){$t=Math.min(Vt.length,$t);for(var Ht=[],qt=It;qt<$t;){var on,Xt,dn,_n,Fn=Vt[qt],Un=null,On=Fn>239?4:Fn>223?3:Fn>191?2:1;if(qt+On<=$t)switch(On){case 1:Fn<128&&(Un=Fn);break;case 2:(192&(on=Vt[qt+1]))==128&&(_n=(31&Fn)<<6|63&on)>127&&(Un=_n);break;case 3:on=Vt[qt+1],Xt=Vt[qt+2],(192&on)==128&&(192&Xt)==128&&(_n=(15&Fn)<<12|(63&on)<<6|63&Xt)>2047&&(_n<55296||_n>57343)&&(Un=_n);break;case 4:on=Vt[qt+1],Xt=Vt[qt+2],dn=Vt[qt+3],(192&on)==128&&(192&Xt)==128&&(192&dn)==128&&(_n=(15&Fn)<<18|(63&on)<<12|(63&Xt)<<6|63&dn)>65535&&_n<1114112&&(Un=_n)}Un===null?(Un=65533,On=1):Un>65535&&(Un-=65536,Ht.push(Un>>>10&1023|55296),Un=56320|1023&Un),Ht.push(Un),qt+=On}return function(gn){var hn=gn.length;if(hn<=4096)return String.fromCharCode.apply(String,gn);for(var wn="",Zn=0;Zn0&&(Vt=this.toString("hex",0,It).match(/.{2}/g).join(" "),this.length>It&&(Vt+=" ... ")),""},at.prototype.compare=function(Vt,It,$t,Ht,qt){if(!at.isBuffer(Vt))throw new TypeError("Argument must be a Buffer");if(It===void 0&&(It=0),$t===void 0&&($t=Vt?Vt.length:0),Ht===void 0&&(Ht=0),qt===void 0&&(qt=this.length),It<0||$t>Vt.length||Ht<0||qt>this.length)throw new RangeError("out of range index");if(Ht>=qt&&It>=$t)return 0;if(Ht>=qt)return-1;if(It>=$t)return 1;if(this===Vt)return 0;for(var on=(qt>>>=0)-(Ht>>>=0),Xt=($t>>>=0)-(It>>>=0),dn=Math.min(on,Xt),_n=this.slice(Ht,qt),Fn=Vt.slice(It,$t),Un=0;Unqt)&&($t=qt),Vt.length>0&&($t<0||It<0)||It>this.length)throw new RangeError("Attempt to write outside buffer bounds");Ht||(Ht="utf8");for(var on=!1;;)switch(Ht){case"hex":return Ft(this,Vt,It,$t);case"utf8":case"utf-8":return mt(this,Vt,It,$t);case"ascii":return vt(this,Vt,It,$t);case"latin1":case"binary":return At(this,Vt,It,$t);case"base64":return Lt(this,Vt,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Rt(this,Vt,It,$t);default:if(on)throw new TypeError("Unknown encoding: "+Ht);Ht=(""+Ht).toLowerCase(),on=!0}},at.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Bt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(127&Vt[qt]);return Ht}function xt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(Vt[qt]);return Ht}function Ct(Vt,It,$t){var Ht=Vt.length;(!It||It<0)&&(It=0),(!$t||$t<0||$t>Ht)&&($t=Ht);for(var qt="",on=It;on<$t;++on)qt+=Kt(Vt[on]);return qt}function kt(Vt,It,$t){for(var Ht=Vt.slice(It,$t),qt="",on=0;on$t)throw new RangeError("Trying to access beyond buffer length")}function Ot(Vt,It,$t,Ht,qt,on){if(!at.isBuffer(Vt))throw new TypeError('"buffer" argument must be a Buffer instance');if(It>qt||ItVt.length)throw new RangeError("Index out of range")}function Jt(Vt,It,$t,Ht){It<0&&(It=65535+It+1);for(var qt=0,on=Math.min(Vt.length-$t,2);qt>>8*(Ht?qt:1-qt)}function Dt(Vt,It,$t,Ht){It<0&&(It=4294967295+It+1);for(var qt=0,on=Math.min(Vt.length-$t,4);qt>>8*(Ht?qt:3-qt)&255}function Et(Vt,It,$t,Ht,qt,on){if($t+Ht>Vt.length)throw new RangeError("Index out of range");if($t<0)throw new RangeError("Index out of range")}function Pt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,4),rt.write(Vt,It,$t,Ht,23,4),$t+4}function zt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,8),rt.write(Vt,It,$t,Ht,52,8),$t+8}at.prototype.slice=function(Vt,It){var $t,Ht=this.length;if((Vt=~~Vt)<0?(Vt+=Ht)<0&&(Vt=0):Vt>Ht&&(Vt=Ht),(It=It===void 0?Ht:~~It)<0?(It+=Ht)<0&&(It=0):It>Ht&&(It=Ht),It0&&(qt*=256);)Ht+=this[Vt+--It]*qt;return Ht},at.prototype.readUInt8=function(Vt,It){return It||Nt(Vt,1,this.length),this[Vt]},at.prototype.readUInt16LE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]|this[Vt+1]<<8},at.prototype.readUInt16BE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]<<8|this[Vt+1]},at.prototype.readUInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),(this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16)+16777216*this[Vt+3]},at.prototype.readUInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),16777216*this[Vt]+(this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3])},at.prototype.readIntLE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=this[Vt],qt=1,on=0;++on=(qt*=128)&&(Ht-=Math.pow(2,8*It)),Ht},at.prototype.readIntBE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=It,qt=1,on=this[Vt+--Ht];Ht>0&&(qt*=256);)on+=this[Vt+--Ht]*qt;return on>=(qt*=128)&&(on-=Math.pow(2,8*It)),on},at.prototype.readInt8=function(Vt,It){return It||Nt(Vt,1,this.length),128&this[Vt]?-1*(255-this[Vt]+1):this[Vt]},at.prototype.readInt16LE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt]|this[Vt+1]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt16BE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt+1]|this[Vt]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16|this[Vt+3]<<24},at.prototype.readInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]<<24|this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3]},at.prototype.readFloatLE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!0,23,4)},at.prototype.readFloatBE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!1,23,4)},at.prototype.readDoubleLE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!0,52,8)},at.prototype.readDoubleBE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!1,52,8)},at.prototype.writeUIntLE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=1,on=0;for(this[It]=255&Vt;++on<$t&&(qt*=256);)this[It+on]=Vt/qt&255;return It+$t},at.prototype.writeUIntBE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=$t-1,on=1;for(this[It+qt]=255&Vt;--qt>=0&&(on*=256);)this[It+qt]=Vt/on&255;return It+$t},at.prototype.writeUInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,255,0),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),this[It]=255&Vt,It+1},at.prototype.writeUInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Jt(this,Vt,It,!0),It+2},at.prototype.writeUInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Jt(this,Vt,It,!1),It+2},at.prototype.writeUInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It+3]=Vt>>>24,this[It+2]=Vt>>>16,this[It+1]=Vt>>>8,this[It]=255&Vt):Dt(this,Vt,It,!0),It+4},at.prototype.writeUInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeIntLE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=0,Xt=1,dn=0;for(this[It]=255&Vt;++on<$t&&(Xt*=256);)Vt<0&&dn===0&&this[It+on-1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeIntBE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=$t-1,Xt=1,dn=0;for(this[It+on]=255&Vt;--on>=0&&(Xt*=256);)Vt<0&&dn===0&&this[It+on+1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,127,-128),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),Vt<0&&(Vt=255+Vt+1),this[It]=255&Vt,It+1},at.prototype.writeInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Jt(this,Vt,It,!0),It+2},at.prototype.writeInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Jt(this,Vt,It,!1),It+2},at.prototype.writeInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8,this[It+2]=Vt>>>16,this[It+3]=Vt>>>24):Dt(this,Vt,It,!0),It+4},at.prototype.writeInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),Vt<0&&(Vt=4294967295+Vt+1),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeFloatLE=function(Vt,It,$t){return Pt(this,Vt,It,!0,$t)},at.prototype.writeFloatBE=function(Vt,It,$t){return Pt(this,Vt,It,!1,$t)},at.prototype.writeDoubleLE=function(Vt,It,$t){return zt(this,Vt,It,!0,$t)},at.prototype.writeDoubleBE=function(Vt,It,$t){return zt(this,Vt,It,!1,$t)},at.prototype.copy=function(Vt,It,$t,Ht){if($t||($t=0),Ht||Ht===0||(Ht=this.length),It>=Vt.length&&(It=Vt.length),It||(It=0),Ht>0&&Ht<$t&&(Ht=$t),Ht===$t||Vt.length===0||this.length===0)return 0;if(It<0)throw new RangeError("targetStart out of bounds");if($t<0||$t>=this.length)throw new RangeError("sourceStart out of bounds");if(Ht<0)throw new RangeError("sourceEnd out of bounds");Ht>this.length&&(Ht=this.length),Vt.length-It=0;--qt)Vt[qt+It]=this[qt+$t];else if(on<1e3||!at.TYPED_ARRAY_SUPPORT)for(qt=0;qt>>=0,$t=$t===void 0?this.length:$t>>>0,Vt||(Vt=0),typeof Vt=="number")for(on=It;on<$t;++on)this[on]=Vt;else{var Xt=at.isBuffer(Vt)?Vt:nn(new at(Vt,Ht).toString()),dn=Xt.length;for(on=0;on<$t-It;++on)this[on+It]=Xt[on%dn]}return this};var en=/[^+\/0-9A-Za-z-_]/g;function Kt(Vt){return Vt<16?"0"+Vt.toString(16):Vt.toString(16)}function nn(Vt,It){var $t;It=It||1/0;for(var Ht=Vt.length,qt=null,on=[],Xt=0;Xt55295&&$t<57344){if(!qt){if($t>56319){(It-=3)>-1&&on.push(239,191,189);continue}if(Xt+1===Ht){(It-=3)>-1&&on.push(239,191,189);continue}qt=$t;continue}if($t<56320){(It-=3)>-1&&on.push(239,191,189),qt=$t;continue}$t=65536+(qt-55296<<10|$t-56320)}else qt&&(It-=3)>-1&&on.push(239,191,189);if(qt=null,$t<128){if((It-=1)<0)break;on.push($t)}else if($t<2048){if((It-=2)<0)break;on.push($t>>6|192,63&$t|128)}else if($t<65536){if((It-=3)<0)break;on.push($t>>12|224,$t>>6&63|128,63&$t|128)}else{if(!($t<1114112))throw new Error("Invalid code point");if((It-=4)<0)break;on.push($t>>18|240,$t>>12&63|128,$t>>6&63|128,63&$t|128)}}return on}function Zt(Vt){return nt.toByteArray(function(It){if((It=function($t){return $t.trim?$t.trim():$t.replace(/^\s+|\s+$/g,"")}(It).replace(en,"")).length<2)return"";for(;It.length%4!=0;)It+="=";return It}(Vt))}function jt(Vt,It,$t,Ht){for(var qt=0;qt=It.length||qt>=Vt.length);++qt)It[qt+$t]=Vt[qt];return qt}}).call(this,et(6))},function(s,o){var et;et=function(){return this}();try{et=et||new Function("return this")()}catch{typeof window=="object"&&(et=window)}s.exports=et},function(s,o){typeof Object.create=="function"?s.exports=function(et,tt){tt&&(et.super_=tt,et.prototype=Object.create(tt.prototype,{constructor:{value:et,enumerable:!1,writable:!0,configurable:!0}}))}:s.exports=function(et,tt){if(tt){et.super_=tt;var nt=function(){};nt.prototype=tt.prototype,et.prototype=new nt,et.prototype.constructor=et}}},function(s,o,et){et.d(o,"a",function(){return tt});const tt=nt=>new Promise(rt=>setTimeout(rt,nt||0))},function(s,o,et){var tt=et(99),nt=tt,rt=Function("return this")(),it=et(98);nt.object.extend(proto,it),nt.exportSymbol("proto.v1.signaling.api.CreatePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.CreatePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.Peer",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.SessionType",null,rt),nt.exportSymbol("proto.v1.signaling.api.Signal",null,rt),proto.v1.signaling.api.Peer=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.Peer.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.Peer,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Peer.displayName="proto.v1.signaling.api.Peer"),proto.v1.signaling.api.Signal=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.Signal,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Signal.displayName="proto.v1.signaling.api.Signal"),proto.v1.signaling.api.GetHealthRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthRequest.displayName="proto.v1.signaling.api.GetHealthRequest"),proto.v1.signaling.api.GetHealthResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthResponse.displayName="proto.v1.signaling.api.GetHealthResponse"),proto.v1.signaling.api.CreatePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerRequest.displayName="proto.v1.signaling.api.CreatePeerRequest"),proto.v1.signaling.api.CreatePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerResponse.displayName="proto.v1.signaling.api.CreatePeerResponse"),proto.v1.signaling.api.DeletePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerRequest.displayName="proto.v1.signaling.api.DeletePeerRequest"),proto.v1.signaling.api.DeletePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerResponse.displayName="proto.v1.signaling.api.DeletePeerResponse"),proto.v1.signaling.api.RefreshPeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerRequest.displayName="proto.v1.signaling.api.RefreshPeerRequest"),proto.v1.signaling.api.RefreshPeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerResponse.displayName="proto.v1.signaling.api.RefreshPeerResponse"),proto.v1.signaling.api.GetPeersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetPeersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersRequest.displayName="proto.v1.signaling.api.GetPeersRequest"),proto.v1.signaling.api.GetPeersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.GetPeersResponse.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.GetPeersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersResponse.displayName="proto.v1.signaling.api.GetPeersResponse"),proto.v1.signaling.api.GetIceServersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersRequest.displayName="proto.v1.signaling.api.GetIceServersRequest"),proto.v1.signaling.api.GetIceServersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersResponse.displayName="proto.v1.signaling.api.GetIceServersResponse"),proto.v1.signaling.api.SendSignalRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalRequest.displayName="proto.v1.signaling.api.SendSignalRequest"),proto.v1.signaling.api.SendSignalResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalResponse.displayName="proto.v1.signaling.api.SendSignalResponse"),proto.v1.signaling.api.ReceiveSignalStreamRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.displayName="proto.v1.signaling.api.ReceiveSignalStreamRequest"),proto.v1.signaling.api.ReceiveSignalStreamResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.displayName="proto.v1.signaling.api.ReceiveSignalStreamResponse"),proto.v1.signaling.api.Peer.repeatedFields_=[5],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Peer.prototype.toObject=function(ot){return proto.v1.signaling.api.Peer.toObject(ot,this)},proto.v1.signaling.api.Peer.toObject=function(ot,st){var at,lt={peerId:tt.Message.getFieldWithDefault(st,1,""),organizationId:tt.Message.getFieldWithDefault(st,2,""),userId:(at=st.getUserId())&&it.StringValue.toObject(ot,at),deviceId:(at=st.getDeviceId())&&it.StringValue.toObject(ot,at),sessionIdsList:(at=tt.Message.getRepeatedField(st,5))==null?void 0:at,peerCreatedTimestamp:(at=st.getPeerCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Peer.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Peer;return proto.v1.signaling.api.Peer.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Peer.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;case 2:at=st.readString(),ot.setOrganizationId(at);break;case 3:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setUserId(at);break;case 4:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setDeviceId(at);break;case 5:at=st.readString(),ot.addSessionIds(at);break;case 6:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setPeerCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Peer.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Peer.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Peer.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getPeerId()).length>0&&st.writeString(1,at),(at=ot.getOrganizationId()).length>0&&st.writeString(2,at),(at=ot.getUserId())!=null&&st.writeMessage(3,at,it.StringValue.serializeBinaryToWriter),(at=ot.getDeviceId())!=null&&st.writeMessage(4,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionIdsList()).length>0&&st.writeRepeatedString(5,at),(at=ot.getPeerCreatedTimestamp())!=null&&st.writeMessage(6,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.Peer.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.Peer.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},proto.v1.signaling.api.Peer.prototype.getOrganizationId=function(){return tt.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.Peer.prototype.setOrganizationId=function(ot){return tt.Message.setProto3StringField(this,2,ot)},proto.v1.signaling.api.Peer.prototype.getUserId=function(){return tt.Message.getWrapperField(this,it.StringValue,3)},proto.v1.signaling.api.Peer.prototype.setUserId=function(ot){return tt.Message.setWrapperField(this,3,ot)},proto.v1.signaling.api.Peer.prototype.clearUserId=function(){return this.setUserId(void 0)},proto.v1.signaling.api.Peer.prototype.hasUserId=function(){return tt.Message.getField(this,3)!=null},proto.v1.signaling.api.Peer.prototype.getDeviceId=function(){return tt.Message.getWrapperField(this,it.StringValue,4)},proto.v1.signaling.api.Peer.prototype.setDeviceId=function(ot){return tt.Message.setWrapperField(this,4,ot)},proto.v1.signaling.api.Peer.prototype.clearDeviceId=function(){return this.setDeviceId(void 0)},proto.v1.signaling.api.Peer.prototype.hasDeviceId=function(){return tt.Message.getField(this,4)!=null},proto.v1.signaling.api.Peer.prototype.getSessionIdsList=function(){return tt.Message.getRepeatedField(this,5)},proto.v1.signaling.api.Peer.prototype.setSessionIdsList=function(ot){return tt.Message.setField(this,5,ot||[])},proto.v1.signaling.api.Peer.prototype.addSessionIds=function(ot,st){return tt.Message.addToRepeatedField(this,5,ot,st)},proto.v1.signaling.api.Peer.prototype.clearSessionIdsList=function(){return this.setSessionIdsList([])},proto.v1.signaling.api.Peer.prototype.getPeerCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,6)},proto.v1.signaling.api.Peer.prototype.setPeerCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,6,ot)},proto.v1.signaling.api.Peer.prototype.clearPeerCreatedTimestamp=function(){return this.setPeerCreatedTimestamp(void 0)},proto.v1.signaling.api.Peer.prototype.hasPeerCreatedTimestamp=function(){return tt.Message.getField(this,6)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Signal.prototype.toObject=function(ot){return proto.v1.signaling.api.Signal.toObject(ot,this)},proto.v1.signaling.api.Signal.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at),senderId:tt.Message.getFieldWithDefault(st,3,""),receiverId:tt.Message.getFieldWithDefault(st,4,""),payload:tt.Message.getFieldWithDefault(st,5,""),iceServers:tt.Message.getFieldWithDefault(st,6,""),iceTransportPolicy:tt.Message.getFieldWithDefault(st,7,""),sessionType:tt.Message.getFieldWithDefault(st,8,0)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Signal.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Signal;return proto.v1.signaling.api.Signal.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Signal.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;case 3:at=st.readString(),ot.setSenderId(at);break;case 4:at=st.readString(),ot.setReceiverId(at);break;case 5:at=st.readString(),ot.setPayload(at);break;case 6:at=st.readString(),ot.setIceServers(at);break;case 7:at=st.readString(),ot.setIceTransportPolicy(at);break;case 8:at=st.readEnum(),ot.setSessionType(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Signal.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Signal.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Signal.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter),(at=ot.getSenderId()).length>0&&st.writeString(3,at),(at=ot.getReceiverId()).length>0&&st.writeString(4,at),(at=ot.getPayload()).length>0&&st.writeString(5,at),(at=ot.getIceServers()).length>0&&st.writeString(6,at),(at=ot.getIceTransportPolicy()).length>0&&st.writeString(7,at),(at=ot.getSessionType())!==0&&st.writeEnum(8,at)},proto.v1.signaling.api.Signal.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.Signal.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.Signal.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.Signal.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},proto.v1.signaling.api.Signal.prototype.getSenderId=function(){return tt.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.Signal.prototype.setSenderId=function(ot){return tt.Message.setProto3StringField(this,3,ot)},proto.v1.signaling.api.Signal.prototype.getReceiverId=function(){return tt.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.Signal.prototype.setReceiverId=function(ot){return tt.Message.setProto3StringField(this,4,ot)},proto.v1.signaling.api.Signal.prototype.getPayload=function(){return tt.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.Signal.prototype.setPayload=function(ot){return tt.Message.setProto3StringField(this,5,ot)},proto.v1.signaling.api.Signal.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,6,"")},proto.v1.signaling.api.Signal.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,6,ot)},proto.v1.signaling.api.Signal.prototype.getIceTransportPolicy=function(){return tt.Message.getFieldWithDefault(this,7,"")},proto.v1.signaling.api.Signal.prototype.setIceTransportPolicy=function(ot){return tt.Message.setProto3StringField(this,7,ot)},proto.v1.signaling.api.Signal.prototype.getSessionType=function(){return tt.Message.getFieldWithDefault(this,8,0)},proto.v1.signaling.api.Signal.prototype.setSessionType=function(ot){return tt.Message.setProto3EnumField(this,8,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthRequest.toObject(ot,this)},proto.v1.signaling.api.GetHealthRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthRequest;return proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetHealthRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthResponse.toObject(ot,this)},proto.v1.signaling.api.GetHealthResponse.toObject=function(ot,st){var at={version:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthResponse;return proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setVersion(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetHealthResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getVersion()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetHealthResponse.prototype.getVersion=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetHealthResponse.prototype.setVersion=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerRequest.toObject(ot,this)},proto.v1.signaling.api.CreatePeerRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.CreatePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerRequest;return proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.CreatePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerResponse.toObject(ot,this)},proto.v1.signaling.api.CreatePeerResponse.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.CreatePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerResponse;return proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.CreatePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.CreatePeerResponse.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.CreatePeerResponse.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.CreatePeerResponse.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.CreatePeerResponse.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerRequest.toObject(ot,this)},proto.v1.signaling.api.DeletePeerRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerRequest;return proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.DeletePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.DeletePeerRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.DeletePeerRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerResponse.toObject(ot,this)},proto.v1.signaling.api.DeletePeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerResponse;return proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.DeletePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerRequest.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerRequest.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.RefreshPeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerRequest;return proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.RefreshPeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.RefreshPeerRequest.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.RefreshPeerRequest.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.RefreshPeerRequest.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.RefreshPeerRequest.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerResponse.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.RefreshPeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerResponse;return proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.RefreshPeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersRequest.toObject(ot,this)},proto.v1.signaling.api.GetPeersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersRequest;return proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetPeersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter=function(ot,st){},proto.v1.signaling.api.GetPeersResponse.repeatedFields_=[1],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersResponse.toObject(ot,this)},proto.v1.signaling.api.GetPeersResponse.toObject=function(ot,st){var at={peersList:tt.Message.toObjectList(st.getPeersList(),proto.v1.signaling.api.Peer.toObject,ot)};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersResponse;return proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.addPeers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetPeersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeersList()).length>0&&st.writeRepeatedMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.GetPeersResponse.prototype.getPeersList=function(){return tt.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.GetPeersResponse.prototype.setPeersList=function(ot){return tt.Message.setRepeatedWrapperField(this,1,ot)},proto.v1.signaling.api.GetPeersResponse.prototype.addPeers=function(ot,st){return tt.Message.addToRepeatedWrapperField(this,1,ot,proto.v1.signaling.api.Peer,st)},proto.v1.signaling.api.GetPeersResponse.prototype.clearPeersList=function(){return this.setPeersList([])},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersRequest.toObject(ot,this)},proto.v1.signaling.api.GetIceServersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersRequest;return proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetIceServersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersResponse.toObject(ot,this)},proto.v1.signaling.api.GetIceServersResponse.toObject=function(ot,st){var at={iceServers:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersResponse;return proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setIceServers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetIceServersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getIceServers()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetIceServersResponse.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetIceServersResponse.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalRequest.toObject(ot,this)},proto.v1.signaling.api.SendSignalRequest.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalRequest;return proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalRequest.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.SendSignalRequest.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalRequest.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.SendSignalRequest.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalResponse.toObject(ot,this)},proto.v1.signaling.api.SendSignalResponse.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalResponse;return proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamRequest;return proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamResponse;return proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SessionType={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3},nt.object.extend(o,proto.v1.signaling.api)},function(s,o,et){function tt(nt,rt,it=()=>!0){if(nt instanceof rt&&it(nt))return nt;throw nt}et.d(o,"a",function(){return tt})},function(s,o,et){et.d(o,"a",function(){return nt});var tt=et(34);class nt extends Error{constructor(it,ot,st,at,lt={},ut){super(`Unexpected response (${st}) for ${it} ${ot}: ${JSON.stringify(ut?Object(tt.a)([...ut.entries()].reduce((dt,[ht,ct])=>(dt[ht]=ct,dt),{})):{})} -- ${JSON.stringify(Object(tt.a)(at))}`),this.method=it,this.url=ot,this.statusCode=st,this.body=at,this.validationErrors=lt,this.headers=ut}}},function(s,o,et){function tt(dt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ht){return typeof ht}:function(ht){return ht&&typeof Symbol=="function"&&ht.constructor===Symbol&&ht!==Symbol.prototype?"symbol":typeof ht})(dt)}function nt(dt,ht){return!ht||tt(ht)!=="object"&&typeof ht!="function"?rt(dt):ht}function rt(dt){if(dt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return dt}function it(dt){var ht=typeof Map=="function"?new Map:void 0;return(it=function(ct){if(ct===null||(pt=ct,Function.toString.call(pt).indexOf("[native code]")===-1))return ct;var pt;if(typeof ct!="function")throw new TypeError("Super expression must either be null or a function");if(ht!==void 0){if(ht.has(ct))return ht.get(ct);ht.set(ct,ft)}function ft(){return ot(ct,arguments,lt(this).constructor)}return ft.prototype=Object.create(ct.prototype,{constructor:{value:ft,enumerable:!1,writable:!0,configurable:!0}}),at(ft,ct)})(dt)}function ot(dt,ht,ct){return(ot=st()?Reflect.construct:function(pt,ft,gt){var yt=[null];yt.push.apply(yt,ft);var Ut=new(Function.bind.apply(pt,yt));return gt&&at(Ut,gt.prototype),Ut}).apply(null,arguments)}function st(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function at(dt,ht){return(at=Object.setPrototypeOf||function(ct,pt){return ct.__proto__=pt,ct})(dt,ht)}function lt(dt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(ht){return ht.__proto__||Object.getPrototypeOf(ht)})(dt)}var ut=function(dt){(function(gt,yt){if(typeof yt!="function"&&yt!==null)throw new TypeError("Super expression must either be null or a function");gt.prototype=Object.create(yt&&yt.prototype,{constructor:{value:gt,writable:!0,configurable:!0}}),yt&&at(gt,yt)})(ft,dt);var ht,ct,pt=(ht=ft,ct=st(),function(){var gt,yt=lt(ht);if(ct){var Ut=lt(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return nt(this,gt)});function ft(gt){var yt;return function(Ut,Ft){if(!(Ut instanceof Ft))throw new TypeError("Cannot call a class as a function")}(this,ft),yt=pt.call(this,`Format functions must be synchronous taking a two arguments: (info, opts) Found: `.concat(gt.toString().split(` `)[0],` -`)),Error.captureStackTrace(rt(yt),ft),yt}return ft}(it(Error));s.exports=function(dt){if(dt.length>2)throw new ut(dt);function ht(){var pt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.options=pt}function ct(pt){return new ht(pt)}return ht.prototype.transform=dt,ct.Format=ht,ct}},function(s,o,et){(function(tt){var nt=Object.getOwnPropertyDescriptors||function(Nt){for(var Ot=Object.keys(Nt),Wt={},Dt=0;Dt=Et)return en;switch(en){case"%s":return String(Dt[Wt++]);case"%d":return Number(Dt[Wt++]);case"%j":try{return JSON.stringify(Dt[Wt++])}catch{return"[Circular]"}default:return en}}),zt=Dt[Wt];Wt=3&&(Wt.depth=arguments[2]),arguments.length>=4&&(Wt.colors=arguments[3]),pt(Ot)?Wt.showHidden=Ot:Ot&&o._extend(Wt,Ot),Ut(Wt.showHidden)&&(Wt.showHidden=!1),Ut(Wt.depth)&&(Wt.depth=2),Ut(Wt.colors)&&(Wt.colors=!1),Ut(Wt.customInspect)&&(Wt.customInspect=!0),Wt.colors&&(Wt.stylize=at),ut(Wt,Nt,Wt.depth)}function at(Nt,Ot){var Wt=st.styles[Ot];return Wt?"\x1B["+st.colors[Wt][0]+"m"+Nt+"\x1B["+st.colors[Wt][1]+"m":Nt}function lt(Nt,Ot){return Nt}function ut(Nt,Ot,Wt){if(Nt.customInspect&&Ot&&Lt(Ot.inspect)&&Ot.inspect!==o.inspect&&(!Ot.constructor||Ot.constructor.prototype!==Ot)){var Dt=Ot.inspect(Wt,Nt);return yt(Dt)||(Dt=ut(Nt,Dt,Wt)),Dt}var Et=function(Vt,It){if(Ut(It))return Vt.stylize("undefined","undefined");if(yt(It)){var $t="'"+JSON.stringify(It).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return Vt.stylize($t,"string")}if(gt(It))return Vt.stylize(""+It,"number");if(pt(It))return Vt.stylize(""+It,"boolean");if(ft(It))return Vt.stylize("null","null")}(Nt,Ot);if(Et)return Et;var Pt=Object.keys(Ot),zt=function(Vt){var It={};return Vt.forEach(function($t,Ht){It[$t]=!0}),It}(Pt);if(Nt.showHidden&&(Pt=Object.getOwnPropertyNames(Ot)),At(Ot)&&(Pt.indexOf("message")>=0||Pt.indexOf("description")>=0))return dt(Ot);if(Pt.length===0){if(Lt(Ot)){var en=Ot.name?": "+Ot.name:"";return Nt.stylize("[Function"+en+"]","special")}if(Ft(Ot))return Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp");if(vt(Ot))return Nt.stylize(Date.prototype.toString.call(Ot),"date");if(At(Ot))return dt(Ot)}var Kt,nn="",Zt=!1,jt=["{","}"];return ct(Ot)&&(Zt=!0,jt=["[","]"]),Lt(Ot)&&(nn=" [Function"+(Ot.name?": "+Ot.name:"")+"]"),Ft(Ot)&&(nn=" "+RegExp.prototype.toString.call(Ot)),vt(Ot)&&(nn=" "+Date.prototype.toUTCString.call(Ot)),At(Ot)&&(nn=" "+dt(Ot)),Pt.length!==0||Zt&&Ot.length!=0?Wt<0?Ft(Ot)?Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp"):Nt.stylize("[Object]","special"):(Nt.seen.push(Ot),Kt=Zt?function(Vt,It,$t,Ht,qt){for(var on=[],Xt=0,dn=It.length;Xt2)throw new ut(dt);function ht(){var pt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.options=pt}function ct(pt){return new ht(pt)}return ht.prototype.transform=dt,ct.Format=ht,ct}},function(s,o,et){(function(tt){var nt=Object.getOwnPropertyDescriptors||function(Nt){for(var Ot=Object.keys(Nt),Jt={},Dt=0;Dt=Et)return en;switch(en){case"%s":return String(Dt[Jt++]);case"%d":return Number(Dt[Jt++]);case"%j":try{return JSON.stringify(Dt[Jt++])}catch{return"[Circular]"}default:return en}}),zt=Dt[Jt];Jt=3&&(Jt.depth=arguments[2]),arguments.length>=4&&(Jt.colors=arguments[3]),pt(Ot)?Jt.showHidden=Ot:Ot&&o._extend(Jt,Ot),Ut(Jt.showHidden)&&(Jt.showHidden=!1),Ut(Jt.depth)&&(Jt.depth=2),Ut(Jt.colors)&&(Jt.colors=!1),Ut(Jt.customInspect)&&(Jt.customInspect=!0),Jt.colors&&(Jt.stylize=at),ut(Jt,Nt,Jt.depth)}function at(Nt,Ot){var Jt=st.styles[Ot];return Jt?"\x1B["+st.colors[Jt][0]+"m"+Nt+"\x1B["+st.colors[Jt][1]+"m":Nt}function lt(Nt,Ot){return Nt}function ut(Nt,Ot,Jt){if(Nt.customInspect&&Ot&&Lt(Ot.inspect)&&Ot.inspect!==o.inspect&&(!Ot.constructor||Ot.constructor.prototype!==Ot)){var Dt=Ot.inspect(Jt,Nt);return yt(Dt)||(Dt=ut(Nt,Dt,Jt)),Dt}var Et=function(Vt,It){if(Ut(It))return Vt.stylize("undefined","undefined");if(yt(It)){var $t="'"+JSON.stringify(It).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return Vt.stylize($t,"string")}if(gt(It))return Vt.stylize(""+It,"number");if(pt(It))return Vt.stylize(""+It,"boolean");if(ft(It))return Vt.stylize("null","null")}(Nt,Ot);if(Et)return Et;var Pt=Object.keys(Ot),zt=function(Vt){var It={};return Vt.forEach(function($t,Ht){It[$t]=!0}),It}(Pt);if(Nt.showHidden&&(Pt=Object.getOwnPropertyNames(Ot)),At(Ot)&&(Pt.indexOf("message")>=0||Pt.indexOf("description")>=0))return dt(Ot);if(Pt.length===0){if(Lt(Ot)){var en=Ot.name?": "+Ot.name:"";return Nt.stylize("[Function"+en+"]","special")}if(Ft(Ot))return Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp");if(vt(Ot))return Nt.stylize(Date.prototype.toString.call(Ot),"date");if(At(Ot))return dt(Ot)}var Kt,nn="",Zt=!1,jt=["{","}"];return ct(Ot)&&(Zt=!0,jt=["[","]"]),Lt(Ot)&&(nn=" [Function"+(Ot.name?": "+Ot.name:"")+"]"),Ft(Ot)&&(nn=" "+RegExp.prototype.toString.call(Ot)),vt(Ot)&&(nn=" "+Date.prototype.toUTCString.call(Ot)),At(Ot)&&(nn=" "+dt(Ot)),Pt.length!==0||Zt&&Ot.length!=0?Jt<0?Ft(Ot)?Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp"):Nt.stylize("[Object]","special"):(Nt.seen.push(Ot),Kt=Zt?function(Vt,It,$t,Ht,qt){for(var on=[],Xt=0,dn=It.length;Xt=0,Ht+qt.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?$t[0]+(It===""?"":It+` `)+" "+Vt.join(`, - `)+" "+$t[1]:$t[0]+It+" "+Vt.join(", ")+" "+$t[1]}(Kt,nn,jt)):jt[0]+nn+jt[1]}function dt(Nt){return"["+Error.prototype.toString.call(Nt)+"]"}function ht(Nt,Ot,Wt,Dt,Et,Pt){var zt,en,Kt;if((Kt=Object.getOwnPropertyDescriptor(Ot,Et)||{value:Ot[Et]}).get?en=Kt.set?Nt.stylize("[Getter/Setter]","special"):Nt.stylize("[Getter]","special"):Kt.set&&(en=Nt.stylize("[Setter]","special")),xt(Dt,Et)||(zt="["+Et+"]"),en||(Nt.seen.indexOf(Kt.value)<0?(en=ft(Wt)?ut(Nt,Kt.value,null):ut(Nt,Kt.value,Wt-1)).indexOf(` + `)+" "+$t[1]:$t[0]+It+" "+Vt.join(", ")+" "+$t[1]}(Kt,nn,jt)):jt[0]+nn+jt[1]}function dt(Nt){return"["+Error.prototype.toString.call(Nt)+"]"}function ht(Nt,Ot,Jt,Dt,Et,Pt){var zt,en,Kt;if((Kt=Object.getOwnPropertyDescriptor(Ot,Et)||{value:Ot[Et]}).get?en=Kt.set?Nt.stylize("[Getter/Setter]","special"):Nt.stylize("[Getter]","special"):Kt.set&&(en=Nt.stylize("[Setter]","special")),xt(Dt,Et)||(zt="["+Et+"]"),en||(Nt.seen.indexOf(Kt.value)<0?(en=ft(Jt)?ut(Nt,Kt.value,null):ut(Nt,Kt.value,Jt-1)).indexOf(` `)>-1&&(en=Pt?en.split(` `).map(function(nn){return" "+nn}).join(` `).substr(2):` `+en.split(` `).map(function(nn){return" "+nn}).join(` -`)):en=Nt.stylize("[Circular]","special")),Ut(zt)){if(Pt&&Et.match(/^\d+$/))return en;(zt=JSON.stringify(""+Et)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(zt=zt.substr(1,zt.length-2),zt=Nt.stylize(zt,"name")):(zt=zt.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),zt=Nt.stylize(zt,"string"))}return zt+": "+en}function ct(Nt){return Array.isArray(Nt)}function pt(Nt){return typeof Nt=="boolean"}function ft(Nt){return Nt===null}function gt(Nt){return typeof Nt=="number"}function yt(Nt){return typeof Nt=="string"}function Ut(Nt){return Nt===void 0}function Ft(Nt){return mt(Nt)&&Rt(Nt)==="[object RegExp]"}function mt(Nt){return typeof Nt=="object"&&Nt!==null}function vt(Nt){return mt(Nt)&&Rt(Nt)==="[object Date]"}function At(Nt){return mt(Nt)&&(Rt(Nt)==="[object Error]"||Nt instanceof Error)}function Lt(Nt){return typeof Nt=="function"}function Rt(Nt){return Object.prototype.toString.call(Nt)}function St(Nt){return Nt<10?"0"+Nt.toString(10):Nt.toString(10)}o.debuglog=function(Nt){if(Ut(it)&&(it=tt.env.NODE_DEBUG||""),Nt=Nt.toUpperCase(),!ot[Nt])if(new RegExp("\\b"+Nt+"\\b","i").test(it)){var Ot=tt.pid;ot[Nt]=function(){var Wt=o.format.apply(o,arguments);console.error("%s %d: %s",Nt,Ot,Wt)}}else ot[Nt]=function(){};return ot[Nt]},o.inspect=st,st.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},st.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},o.isArray=ct,o.isBoolean=pt,o.isNull=ft,o.isNullOrUndefined=function(Nt){return Nt==null},o.isNumber=gt,o.isString=yt,o.isSymbol=function(Nt){return typeof Nt=="symbol"},o.isUndefined=Ut,o.isRegExp=Ft,o.isObject=mt,o.isDate=vt,o.isError=At,o.isFunction=Lt,o.isPrimitive=function(Nt){return Nt===null||typeof Nt=="boolean"||typeof Nt=="number"||typeof Nt=="string"||typeof Nt=="symbol"||Nt===void 0},o.isBuffer=et(107);var Tt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Bt(){var Nt=new Date,Ot=[St(Nt.getHours()),St(Nt.getMinutes()),St(Nt.getSeconds())].join(":");return[Nt.getDate(),Tt[Nt.getMonth()],Ot].join(" ")}function xt(Nt,Ot){return Object.prototype.hasOwnProperty.call(Nt,Ot)}o.log=function(){console.log("%s - %s",Bt(),o.format.apply(o,arguments))},o.inherits=et(108),o._extend=function(Nt,Ot){if(!Ot||!mt(Ot))return Nt;for(var Wt=Object.keys(Ot),Dt=Wt.length;Dt--;)Nt[Wt[Dt]]=Ot[Wt[Dt]];return Nt};var Ct=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;function kt(Nt,Ot){if(!Nt){var Wt=new Error("Promise was rejected with a falsy value");Wt.reason=Nt,Nt=Wt}return Ot(Nt)}o.promisify=function(Nt){if(typeof Nt!="function")throw new TypeError('The "original" argument must be of type Function');if(Ct&&Nt[Ct]){var Ot;if(typeof(Ot=Nt[Ct])!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(Ot,Ct,{value:Ot,enumerable:!1,writable:!1,configurable:!0}),Ot}function Ot(){for(var Wt,Dt,Et=new Promise(function(en,Kt){Wt=en,Dt=Kt}),Pt=[],zt=0;zt=0&&(ot._idleTimeoutId=setTimeout(function(){ot._onTimeout&&ot._onTimeout()},st))},et(141),o.setImmediate=typeof self<"u"&&self.setImmediate||tt!==void 0&&tt.setImmediate||this&&this.setImmediate,o.clearImmediate=typeof self<"u"&&self.clearImmediate||tt!==void 0&&tt.clearImmediate||this&&this.clearImmediate}).call(this,et(6))},function(s,o,et){(function(tt){tt===void 0||!tt.version||tt.version.indexOf("v0.")===0||tt.version.indexOf("v1.")===0&&tt.version.indexOf("v1.8.")!==0?s.exports={nextTick:function(nt,rt,it,ot){if(typeof nt!="function")throw new TypeError('"callback" argument must be a function');var st,at,lt=arguments.length;switch(lt){case 0:case 1:return tt.nextTick(nt);case 2:return tt.nextTick(function(){nt.call(null,rt)});case 3:return tt.nextTick(function(){nt.call(null,rt,it)});case 4:return tt.nextTick(function(){nt.call(null,rt,it,ot)});default:for(st=new Array(lt-1),at=0;at0&&arguments[0]!==void 0?arguments[0]:{};nt.call(this,{objectMode:!0,highWaterMark:st.highWaterMark}),this.format=st.format,this.level=st.level,this.handleExceptions=st.handleExceptions,this.handleRejections=st.handleRejections,this.silent=st.silent,st.log&&(this.log=st.log),st.logv&&(this.logv=st.logv),st.close&&(this.close=st.close),this.once("pipe",function(at){ot.levels=at.levels,ot.parent=at}),this.once("unpipe",function(at){at===ot.parent&&(ot.parent=null,ot.close&&ot.close())})};tt.inherits(it,nt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);var lt=this.level||this.parent&&this.parent.level;if(!lt||this.levels[lt]>=this.levels[ot[rt]]){if(ot&&!this.format)return this.log(ot,at);var ut=void 0,dt=void 0;try{dt=this.format.transform(Object.assign({},ot),this.format.options)}catch(ht){ut=ht}if(ut||!dt){if(at(),ut)throw ut;return}return this.log(dt,at)}return at(null)},it.prototype._writev=function(ot,st){if(this.logv){var at=ot.filter(this._accept,this);return at.length?this.logv(at,st):st(null)}for(var lt=0;lt=this.levels[st[rt]])||!this.handleExceptions&&st.exception===!0)},it.prototype._nop=function(){},s.exports.LegacyTransportStream=et(148)},function(s,o,et){var tt,nt=typeof Reflect=="object"?Reflect:null,rt=nt&&typeof nt.apply=="function"?nt.apply:function(ft,gt,yt){return Function.prototype.apply.call(ft,gt,yt)};tt=nt&&typeof nt.ownKeys=="function"?nt.ownKeys:Object.getOwnPropertySymbols?function(ft){return Object.getOwnPropertyNames(ft).concat(Object.getOwnPropertySymbols(ft))}:function(ft){return Object.getOwnPropertyNames(ft)};var it=Number.isNaN||function(ft){return ft!=ft};function ot(){ot.init.call(this)}s.exports=ot,ot.EventEmitter=ot,ot.prototype._events=void 0,ot.prototype._eventsCount=0,ot.prototype._maxListeners=void 0;var st=10;function at(ft){return ft._maxListeners===void 0?ot.defaultMaxListeners:ft._maxListeners}function lt(ft,gt,yt,Ut){var Ft,mt,vt,At;if(typeof yt!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof yt);if((mt=ft._events)===void 0?(mt=ft._events=Object.create(null),ft._eventsCount=0):(mt.newListener!==void 0&&(ft.emit("newListener",gt,yt.listener?yt.listener:yt),mt=ft._events),vt=mt[gt]),vt===void 0)vt=mt[gt]=yt,++ft._eventsCount;else if(typeof vt=="function"?vt=mt[gt]=Ut?[yt,vt]:[vt,yt]:Ut?vt.unshift(yt):vt.push(yt),(Ft=at(ft))>0&&vt.length>Ft&&!vt.warned){vt.warned=!0;var Lt=new Error("Possible EventEmitter memory leak detected. "+vt.length+" "+String(gt)+" listeners added. Use emitter.setMaxListeners() to increase limit");Lt.name="MaxListenersExceededWarning",Lt.emitter=ft,Lt.type=gt,Lt.count=vt.length,At=Lt,console&&console.warn&&console.warn(At)}return ft}function ut(){for(var ft=[],gt=0;gt0&&(mt=gt[0]),mt instanceof Error)throw mt;var vt=new Error("Unhandled error."+(mt?" ("+mt.message+")":""));throw vt.context=mt,vt}var At=Ft[ft];if(At===void 0)return!1;if(typeof At=="function")rt(At,this,gt);else{var Lt=At.length,Rt=pt(At,Lt);for(yt=0;yt=0;mt--)if(yt[mt]===gt||yt[mt].listener===gt){vt=yt[mt].listener,Ft=mt;break}if(Ft<0)return this;Ft===0?yt.shift():function(At,Lt){for(;Lt+1=0;Ut--)this.removeListener(ft,gt[Ut]);return this},ot.prototype.listeners=function(ft){return ht(this,ft,!0)},ot.prototype.rawListeners=function(ft){return ht(this,ft,!1)},ot.listenerCount=function(ft,gt){return typeof ft.listenerCount=="function"?ft.listenerCount(gt):ct.call(ft,gt)},ot.prototype.listenerCount=ct,ot.prototype.eventNames=function(){return this._eventsCount>0?tt(this._events):[]}},function(s,o,et){var tt=et(147).Buffer,nt=tt.isEncoding||function(ct){switch((ct=""+ct)&&ct.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function rt(ct){var pt;switch(this.encoding=function(ft){var gt=function(yt){if(!yt)return"utf8";for(var Ut;;)switch(yt){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return yt;default:if(Ut)return;yt=(""+yt).toLowerCase(),Ut=!0}}(ft);if(typeof gt!="string"&&(tt.isEncoding===nt||!nt(ft)))throw new Error("Unknown encoding: "+ft);return gt||ft}(ct),this.encoding){case"utf16le":this.text=st,this.end=at,pt=4;break;case"utf8":this.fillLast=ot,pt=4;break;case"base64":this.text=lt,this.end=ut,pt=3;break;default:return this.write=dt,void(this.end=ht)}this.lastNeed=0,this.lastTotal=0,this.lastChar=tt.allocUnsafe(pt)}function it(ct){return ct<=127?0:ct>>5==6?2:ct>>4==14?3:ct>>3==30?4:ct>>6==2?-1:-2}function ot(ct){var pt=this.lastTotal-this.lastNeed,ft=function(gt,yt,Ut){if((192&yt[0])!=128)return gt.lastNeed=0,"�";if(gt.lastNeed>1&&yt.length>1){if((192&yt[1])!=128)return gt.lastNeed=1,"�";if(gt.lastNeed>2&&yt.length>2&&(192&yt[2])!=128)return gt.lastNeed=2,"�"}}(this,ct);return ft!==void 0?ft:this.lastNeed<=ct.length?(ct.copy(this.lastChar,pt,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(ct.copy(this.lastChar,pt,0,ct.length),void(this.lastNeed-=ct.length))}function st(ct,pt){if((ct.length-pt)%2==0){var ft=ct.toString("utf16le",pt);if(ft){var gt=ft.charCodeAt(ft.length-1);if(gt>=55296&><=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1],ft.slice(0,-1)}return ft}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=ct[ct.length-1],ct.toString("utf16le",pt,ct.length-1)}function at(ct){var pt=ct&&ct.length?this.write(ct):"";if(this.lastNeed){var ft=this.lastTotal-this.lastNeed;return pt+this.lastChar.toString("utf16le",0,ft)}return pt}function lt(ct,pt){var ft=(ct.length-pt)%3;return ft===0?ct.toString("base64",pt):(this.lastNeed=3-ft,this.lastTotal=3,ft===1?this.lastChar[0]=ct[ct.length-1]:(this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1]),ct.toString("base64",pt,ct.length-ft))}function ut(ct){var pt=ct&&ct.length?this.write(ct):"";return this.lastNeed?pt+this.lastChar.toString("base64",0,3-this.lastNeed):pt}function dt(ct){return ct.toString(this.encoding)}function ht(ct){return ct&&ct.length?this.write(ct):""}o.StringDecoder=rt,rt.prototype.write=function(ct){if(ct.length===0)return"";var pt,ft;if(this.lastNeed){if((pt=this.fillLast(ct))===void 0)return"";ft=this.lastNeed,this.lastNeed=0}else ft=0;return ft=0?(vt>0&&(yt.lastNeed=vt-1),vt):--mt=0?(vt>0&&(yt.lastNeed=vt-2),vt):--mt=0?(vt>0&&(vt===2?vt=0:yt.lastNeed=vt-3),vt):0}(this,ct,pt);if(!this.lastNeed)return ct.toString("utf8",pt);this.lastTotal=ft;var gt=ct.length-(ft-this.lastNeed);return ct.copy(this.lastChar,0,gt),ct.toString("utf8",pt,gt)},rt.prototype.fillLast=function(ct){if(this.lastNeed<=ct.length)return ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,ct.length),this.lastNeed-=ct.length}},function(s,o,et){var tt=et(16),nt=Object.keys||function(ct){var pt=[];for(var ft in ct)pt.push(ft);return pt};s.exports=ut;var rt=et(17);rt.inherits=et(7);var it=et(69),ot=et(48);rt.inherits(ut,it);for(var st=nt(ot.prototype),at=0;at(Vn=Vn||0)&&(Vn=Math.max(Vn+Hn,0));Vnbn?1:0}e:{var Zt=lt.navigator;if(Zt){var jt=Zt.userAgent;if(jt){zt=jt;break e}}zt=""}var Vt="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function It(an){var bn=1;an=an.split(":");for(var Vn=[];0parseFloat(On)){Ht=String(hn);break e}}Ht=On}var wn,Zn={};function Pn(an){return function(bn,Vn){var zn=Zn;return Object.prototype.hasOwnProperty.call(zn,bn)?zn[bn]:zn[bn]=Vn(bn)}(an,function(){for(var bn=0,Vn=en(String(Ht)).split("."),zn=en(String(an)).split("."),Hn=Math.max(Vn.length,zn.length),ir=0;bn==0&&ir=an.keyCode)&&(an.keyCode=-1)}catch{}};var ro="closure_listenable_"+(1e6*Math.random()|0),Fo=0;function kn(an,bn,Vn,zn,Hn){this.listener=an,this.proxy=null,this.src=bn,this.type=Vn,this.capture=!!zn,this.A=Hn,this.key=++Fo,this.s=this.v=!1}function un(an){an.s=!0,an.listener=null,an.proxy=null,an.src=null,an.A=null}function pn(an){this.src=an,this.a={},this.b=0}function Qn(an,bn){var Vn=bn.type;if(Vn in an.a){var zn,Hn=an.a[Vn],ir=Pt(Hn,bn);(zn=0<=ir)&&Array.prototype.splice.call(Hn,ir,1),zn&&(un(bn),an.a[Vn].length==0&&(delete an.a[Vn],an.b--))}}function Wn(an,bn,Vn,zn){for(var Hn=0;HnVn.keyCode||Vn.returnValue!=null)){e:{var Hn=!1;if(Vn.keyCode==0)try{Vn.keyCode=-1;break e}catch{Hn=!0}(Hn||Vn.returnValue==null)&&(Vn.returnValue=!0)}for(Vn=[],Hn=bn.a;Hn;Hn=Hn.parentNode)Vn.push(Hn);for(an=an.type,Hn=Vn.length-1;0<=Hn;Hn--){bn.a=Vn[Hn];var ir=hr(Vn[Hn],an,!0,bn);zn=zn&&ir}for(Hn=0;Hn>>0);function er(an){return ht(an)=="function"?an:(an[Gn]||(an[Gn]=function(bn){return an.handleEvent(bn)}),an[Gn])}function cr(){Qr.call(this),this.f=new pn(this),this.N=this}function gr(an,bn){an=an.N;var Vn=bn.type||bn;if(typeof bn=="string")bn=new eo(bn,an);else if(bn instanceof eo)bn.target=bn.target||an;else{var zn=bn;(function(Hn,ir){for(var Yn,or,Mr=1;Mr=vr(this).value)for(ht(bn)=="function"&&(bn=bn()),an=new nr(an,String(bn),this.f),Vn&&(an.a=Vn),Vn=this;Vn;)Vn=Vn.a};var fr,zr={},Gr=null;function Pr(an,bn){an&&an.log(Rr,bn,void 0)}function oo(){}function ao(an){var bn;return(bn=an.a)||(bn={},To(an)&&(bn[0]=!0,bn[1]=!0),bn=an.a=bn),bn}function mo(){}function lo(an){return(an=To(an))?new ActiveXObject(an):new XMLHttpRequest}function To(an){if(!an.b&&typeof XMLHttpRequest>"u"&&typeof ActiveXObject<"u"){for(var bn=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],Vn=0;VnYn?null:typeof ir=="string"?ir.charAt(Yn):ir[Yn]}((Vn=new Jo(an.headers)).f()),Hn=lt.FormData&&bn instanceof lt.FormData;!(0<=Pt(bs,"POST"))||zn||Hn||Vn.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),Vn.forEach(function(ir,Yn){this.a.setRequestHeader(Yn,ir)},an),an.j&&(an.a.responseType=an.j),"withCredentials"in an.a&&an.a.withCredentials!==an.H&&(an.a.withCredentials=an.H);try{fs(an),0>4),co!=64&&(Yn(Hr<<4&240|co>>2),_i!=64&&Yn(co<<6&192|_i))}}(an,function(ir){zn[Hn++]=ir}),zn.subarray(0,Hn)}function vo(){if(!js){js={};for(var an="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),bn=["+/=","+/","-_=","-_.","-_"],Vn=0;5>Vn;Vn++){var zn=an.concat(bn[Vn].split(""));ks[Vn]=zn;for(var Hn=0;Hn=0&&(ot._idleTimeoutId=setTimeout(function(){ot._onTimeout&&ot._onTimeout()},st))},et(141),o.setImmediate=typeof self<"u"&&self.setImmediate||tt!==void 0&&tt.setImmediate||this&&this.setImmediate,o.clearImmediate=typeof self<"u"&&self.clearImmediate||tt!==void 0&&tt.clearImmediate||this&&this.clearImmediate}).call(this,et(6))},function(s,o,et){(function(tt){tt===void 0||!tt.version||tt.version.indexOf("v0.")===0||tt.version.indexOf("v1.")===0&&tt.version.indexOf("v1.8.")!==0?s.exports={nextTick:function(nt,rt,it,ot){if(typeof nt!="function")throw new TypeError('"callback" argument must be a function');var st,at,lt=arguments.length;switch(lt){case 0:case 1:return tt.nextTick(nt);case 2:return tt.nextTick(function(){nt.call(null,rt)});case 3:return tt.nextTick(function(){nt.call(null,rt,it)});case 4:return tt.nextTick(function(){nt.call(null,rt,it,ot)});default:for(st=new Array(lt-1),at=0;at0&&arguments[0]!==void 0?arguments[0]:{};nt.call(this,{objectMode:!0,highWaterMark:st.highWaterMark}),this.format=st.format,this.level=st.level,this.handleExceptions=st.handleExceptions,this.handleRejections=st.handleRejections,this.silent=st.silent,st.log&&(this.log=st.log),st.logv&&(this.logv=st.logv),st.close&&(this.close=st.close),this.once("pipe",function(at){ot.levels=at.levels,ot.parent=at}),this.once("unpipe",function(at){at===ot.parent&&(ot.parent=null,ot.close&&ot.close())})};tt.inherits(it,nt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);var lt=this.level||this.parent&&this.parent.level;if(!lt||this.levels[lt]>=this.levels[ot[rt]]){if(ot&&!this.format)return this.log(ot,at);var ut=void 0,dt=void 0;try{dt=this.format.transform(Object.assign({},ot),this.format.options)}catch(ht){ut=ht}if(ut||!dt){if(at(),ut)throw ut;return}return this.log(dt,at)}return at(null)},it.prototype._writev=function(ot,st){if(this.logv){var at=ot.filter(this._accept,this);return at.length?this.logv(at,st):st(null)}for(var lt=0;lt=this.levels[st[rt]])||!this.handleExceptions&&st.exception===!0)},it.prototype._nop=function(){},s.exports.LegacyTransportStream=et(148)},function(s,o,et){var tt,nt=typeof Reflect=="object"?Reflect:null,rt=nt&&typeof nt.apply=="function"?nt.apply:function(ft,gt,yt){return Function.prototype.apply.call(ft,gt,yt)};tt=nt&&typeof nt.ownKeys=="function"?nt.ownKeys:Object.getOwnPropertySymbols?function(ft){return Object.getOwnPropertyNames(ft).concat(Object.getOwnPropertySymbols(ft))}:function(ft){return Object.getOwnPropertyNames(ft)};var it=Number.isNaN||function(ft){return ft!=ft};function ot(){ot.init.call(this)}s.exports=ot,ot.EventEmitter=ot,ot.prototype._events=void 0,ot.prototype._eventsCount=0,ot.prototype._maxListeners=void 0;var st=10;function at(ft){return ft._maxListeners===void 0?ot.defaultMaxListeners:ft._maxListeners}function lt(ft,gt,yt,Ut){var Ft,mt,vt,At;if(typeof yt!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof yt);if((mt=ft._events)===void 0?(mt=ft._events=Object.create(null),ft._eventsCount=0):(mt.newListener!==void 0&&(ft.emit("newListener",gt,yt.listener?yt.listener:yt),mt=ft._events),vt=mt[gt]),vt===void 0)vt=mt[gt]=yt,++ft._eventsCount;else if(typeof vt=="function"?vt=mt[gt]=Ut?[yt,vt]:[vt,yt]:Ut?vt.unshift(yt):vt.push(yt),(Ft=at(ft))>0&&vt.length>Ft&&!vt.warned){vt.warned=!0;var Lt=new Error("Possible EventEmitter memory leak detected. "+vt.length+" "+String(gt)+" listeners added. Use emitter.setMaxListeners() to increase limit");Lt.name="MaxListenersExceededWarning",Lt.emitter=ft,Lt.type=gt,Lt.count=vt.length,At=Lt,console&&console.warn&&console.warn(At)}return ft}function ut(){for(var ft=[],gt=0;gt0&&(mt=gt[0]),mt instanceof Error)throw mt;var vt=new Error("Unhandled error."+(mt?" ("+mt.message+")":""));throw vt.context=mt,vt}var At=Ft[ft];if(At===void 0)return!1;if(typeof At=="function")rt(At,this,gt);else{var Lt=At.length,Rt=pt(At,Lt);for(yt=0;yt=0;mt--)if(yt[mt]===gt||yt[mt].listener===gt){vt=yt[mt].listener,Ft=mt;break}if(Ft<0)return this;Ft===0?yt.shift():function(At,Lt){for(;Lt+1=0;Ut--)this.removeListener(ft,gt[Ut]);return this},ot.prototype.listeners=function(ft){return ht(this,ft,!0)},ot.prototype.rawListeners=function(ft){return ht(this,ft,!1)},ot.listenerCount=function(ft,gt){return typeof ft.listenerCount=="function"?ft.listenerCount(gt):ct.call(ft,gt)},ot.prototype.listenerCount=ct,ot.prototype.eventNames=function(){return this._eventsCount>0?tt(this._events):[]}},function(s,o,et){var tt=et(147).Buffer,nt=tt.isEncoding||function(ct){switch((ct=""+ct)&&ct.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function rt(ct){var pt;switch(this.encoding=function(ft){var gt=function(yt){if(!yt)return"utf8";for(var Ut;;)switch(yt){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return yt;default:if(Ut)return;yt=(""+yt).toLowerCase(),Ut=!0}}(ft);if(typeof gt!="string"&&(tt.isEncoding===nt||!nt(ft)))throw new Error("Unknown encoding: "+ft);return gt||ft}(ct),this.encoding){case"utf16le":this.text=st,this.end=at,pt=4;break;case"utf8":this.fillLast=ot,pt=4;break;case"base64":this.text=lt,this.end=ut,pt=3;break;default:return this.write=dt,void(this.end=ht)}this.lastNeed=0,this.lastTotal=0,this.lastChar=tt.allocUnsafe(pt)}function it(ct){return ct<=127?0:ct>>5==6?2:ct>>4==14?3:ct>>3==30?4:ct>>6==2?-1:-2}function ot(ct){var pt=this.lastTotal-this.lastNeed,ft=function(gt,yt,Ut){if((192&yt[0])!=128)return gt.lastNeed=0,"�";if(gt.lastNeed>1&&yt.length>1){if((192&yt[1])!=128)return gt.lastNeed=1,"�";if(gt.lastNeed>2&&yt.length>2&&(192&yt[2])!=128)return gt.lastNeed=2,"�"}}(this,ct);return ft!==void 0?ft:this.lastNeed<=ct.length?(ct.copy(this.lastChar,pt,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(ct.copy(this.lastChar,pt,0,ct.length),void(this.lastNeed-=ct.length))}function st(ct,pt){if((ct.length-pt)%2==0){var ft=ct.toString("utf16le",pt);if(ft){var gt=ft.charCodeAt(ft.length-1);if(gt>=55296&><=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1],ft.slice(0,-1)}return ft}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=ct[ct.length-1],ct.toString("utf16le",pt,ct.length-1)}function at(ct){var pt=ct&&ct.length?this.write(ct):"";if(this.lastNeed){var ft=this.lastTotal-this.lastNeed;return pt+this.lastChar.toString("utf16le",0,ft)}return pt}function lt(ct,pt){var ft=(ct.length-pt)%3;return ft===0?ct.toString("base64",pt):(this.lastNeed=3-ft,this.lastTotal=3,ft===1?this.lastChar[0]=ct[ct.length-1]:(this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1]),ct.toString("base64",pt,ct.length-ft))}function ut(ct){var pt=ct&&ct.length?this.write(ct):"";return this.lastNeed?pt+this.lastChar.toString("base64",0,3-this.lastNeed):pt}function dt(ct){return ct.toString(this.encoding)}function ht(ct){return ct&&ct.length?this.write(ct):""}o.StringDecoder=rt,rt.prototype.write=function(ct){if(ct.length===0)return"";var pt,ft;if(this.lastNeed){if((pt=this.fillLast(ct))===void 0)return"";ft=this.lastNeed,this.lastNeed=0}else ft=0;return ft=0?(vt>0&&(yt.lastNeed=vt-1),vt):--mt=0?(vt>0&&(yt.lastNeed=vt-2),vt):--mt=0?(vt>0&&(vt===2?vt=0:yt.lastNeed=vt-3),vt):0}(this,ct,pt);if(!this.lastNeed)return ct.toString("utf8",pt);this.lastTotal=ft;var gt=ct.length-(ft-this.lastNeed);return ct.copy(this.lastChar,0,gt),ct.toString("utf8",pt,gt)},rt.prototype.fillLast=function(ct){if(this.lastNeed<=ct.length)return ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,ct.length),this.lastNeed-=ct.length}},function(s,o,et){var tt=et(16),nt=Object.keys||function(ct){var pt=[];for(var ft in ct)pt.push(ft);return pt};s.exports=ut;var rt=et(17);rt.inherits=et(7);var it=et(69),ot=et(48);rt.inherits(ut,it);for(var st=nt(ot.prototype),at=0;at(Vn=Vn||0)&&(Vn=Math.max(Vn+Hn,0));Vnbn?1:0}e:{var Zt=lt.navigator;if(Zt){var jt=Zt.userAgent;if(jt){zt=jt;break e}}zt=""}var Vt="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function It(an){var bn=1;an=an.split(":");for(var Vn=[];0parseFloat(On)){Ht=String(hn);break e}}Ht=On}var wn,Zn={};function Pn(an){return function(bn,Vn){var zn=Zn;return Object.prototype.hasOwnProperty.call(zn,bn)?zn[bn]:zn[bn]=Vn(bn)}(an,function(){for(var bn=0,Vn=en(String(Ht)).split("."),zn=en(String(an)).split("."),Hn=Math.max(Vn.length,zn.length),ir=0;bn==0&&ir=an.keyCode)&&(an.keyCode=-1)}catch{}};var ro="closure_listenable_"+(1e6*Math.random()|0),Fo=0;function kn(an,bn,Vn,zn,Hn){this.listener=an,this.proxy=null,this.src=bn,this.type=Vn,this.capture=!!zn,this.A=Hn,this.key=++Fo,this.s=this.v=!1}function un(an){an.s=!0,an.listener=null,an.proxy=null,an.src=null,an.A=null}function pn(an){this.src=an,this.a={},this.b=0}function Qn(an,bn){var Vn=bn.type;if(Vn in an.a){var zn,Hn=an.a[Vn],ir=Pt(Hn,bn);(zn=0<=ir)&&Array.prototype.splice.call(Hn,ir,1),zn&&(un(bn),an.a[Vn].length==0&&(delete an.a[Vn],an.b--))}}function Jn(an,bn,Vn,zn){for(var Hn=0;HnVn.keyCode||Vn.returnValue!=null)){e:{var Hn=!1;if(Vn.keyCode==0)try{Vn.keyCode=-1;break e}catch{Hn=!0}(Hn||Vn.returnValue==null)&&(Vn.returnValue=!0)}for(Vn=[],Hn=bn.a;Hn;Hn=Hn.parentNode)Vn.push(Hn);for(an=an.type,Hn=Vn.length-1;0<=Hn;Hn--){bn.a=Vn[Hn];var ir=hr(Vn[Hn],an,!0,bn);zn=zn&&ir}for(Hn=0;Hn>>0);function er(an){return ht(an)=="function"?an:(an[Gn]||(an[Gn]=function(bn){return an.handleEvent(bn)}),an[Gn])}function cr(){Qr.call(this),this.f=new pn(this),this.N=this}function gr(an,bn){an=an.N;var Vn=bn.type||bn;if(typeof bn=="string")bn=new eo(bn,an);else if(bn instanceof eo)bn.target=bn.target||an;else{var zn=bn;(function(Hn,ir){for(var Yn,or,Mr=1;Mr=vr(this).value)for(ht(bn)=="function"&&(bn=bn()),an=new nr(an,String(bn),this.f),Vn&&(an.a=Vn),Vn=this;Vn;)Vn=Vn.a};var fr,zr={},Gr=null;function Pr(an,bn){an&&an.log(Rr,bn,void 0)}function oo(){}function ao(an){var bn;return(bn=an.a)||(bn={},To(an)&&(bn[0]=!0,bn[1]=!0),bn=an.a=bn),bn}function mo(){}function lo(an){return(an=To(an))?new ActiveXObject(an):new XMLHttpRequest}function To(an){if(!an.b&&typeof XMLHttpRequest>"u"&&typeof ActiveXObject<"u"){for(var bn=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],Vn=0;VnYn?null:typeof ir=="string"?ir.charAt(Yn):ir[Yn]}((Vn=new Wo(an.headers)).f()),Hn=lt.FormData&&bn instanceof lt.FormData;!(0<=Pt(bs,"POST"))||zn||Hn||Vn.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),Vn.forEach(function(ir,Yn){this.a.setRequestHeader(Yn,ir)},an),an.j&&(an.a.responseType=an.j),"withCredentials"in an.a&&an.a.withCredentials!==an.H&&(an.a.withCredentials=an.H);try{fs(an),0>4),co!=64&&(Yn(Hr<<4&240|co>>2),_i!=64&&Yn(co<<6&192|_i))}}(an,function(ir){zn[Hn++]=ir}),zn.subarray(0,Hn)}function vo(){if(!js){js={};for(var an="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),bn=["+/=","+/","-_=","-_.","-_"],Vn=0;5>Vn;Vn++){var zn=an.concat(bn[Vn].split(""));ks[Vn]=zn;for(var Hn=0;Hn2*or.c&&Go(or)),1/0===Yn&&(Yn=0),0(Yn=Hn.indexOf("#"))&&(Yn=Hn.length),0>(or=Hn.indexOf("?"))||or>Yn?(or=Yn,Mr=""):Mr=Hn.substring(or+1,Yn),Yn=(Hn=[Hn.substr(0,or),Mr,Hn.substr(Yn)])[1],Hn[1]=Hr?Yn?Yn+"&"+Hr:Hr:Yn,Hn=Hn[0]+(Hn[1]?"?"+Hn[1]:"")+Hn[2])):Hn.a("$httpHeaders",Yn))}for(zn=(bn=(0,zn.a)(bn.getRequestMessage())).length,Hr=[0,0,0,0],Yn=new Uint8Array(5+zn),or=3;0<=or;or--)Hr[or]=zn%256,zn>>>=8;if(Yn.set(new Uint8Array(Hr),1),Yn.set(bn,5),bn=Yn,an.a=="text"){var co;for(an=bn,co===void 0&&(co=0),vo(),co=ks[co],bn=[],zn=0;zn>2,Jr=(3&Jr)<<4|_i>>4,_i=(15&_i)<<2|(Mr=(Yn=zn+2>6,Mr&=63,Yn||(Mr=64,Hr||(_i=64)),bn.push(co[or],co[Jr],co[_i]||"",co[Mr]||"")}bn=bn.join("")}else an.a=="binary"&&(Vn.j="arraybuffer");return Lo(Vn,Hn,bn),ir}function Vr(an,bn,Vn){var zn=null,Hn=!1;an.on("data",function(ir){zn=ir}),an.on("error",function(ir){ir.code==0||Hn||(Hn=!0,bn(ir,null))}),an.on("status",function(ir){ir.code==0||Hn?Vn&&bn(null,null,ir):(Hn=!0,bn({code:ir.code,message:ir.details,metadata:ir.metadata},null))}),Vn&&an.on("metadata",function(ir){bn(null,null,null,ir)}),an.on("end",function(){Hn||(zn==null?bn({code:2,message:"Incomplete response"}):bn(null,zn)),Vn&&bn(null,null)})}function Cr(an,bn){var Vn=an;return bn.forEach(function(zn){var Hn=Vn;Vn=function(ir){return zn.intercept(ir,Hn)}}),Vn}Tn.prototype.on=function(an,bn){return an=="data"?this.b.push(bn):an=="status"?this.h.push(bn):an=="metadata"?this.g.push(bn):an=="end"?this.c.push(bn):an=="error"&&this.f.push(bn),this},Tn.prototype.removeListener=function(an,bn){return an=="data"?En(this.b,bn):an=="status"?En(this.h,bn):an=="metadata"?En(this.g,bn):an=="end"?En(this.c,bn):an=="error"&&En(this.f,bn),this},Tn.prototype.cancel=function(){this.j=!0,this.a.abort()},Tn.prototype.cancel=Tn.prototype.cancel,Tn.prototype.removeListener=Tn.prototype.removeListener,Tn.prototype.on=Tn.prototype.on,Mn.prototype.P=function(an,bn,Vn,zn,Hn){var ir=this;zn=Lt(an,bn,"unary",zn);var Yn=an.substr(0,an.length-zn.name.length);return Vr(an=Cr(function(or){return Jn(ir,or,Yn)},this.b).call(this,At(zn,bn,Vn)),Hn,!1),new Rt(an)},Mn.prototype.M=function(an,bn,Vn,zn){var Hn=this;zn=Lt(an,bn,"unary",zn);var ir=an.substr(0,an.length-zn.name.length);return Cr(function(Yn){return new Promise(function(or,Mr){var Jr,Hr,co;Vr(Jn(Hn,Yn,ir),function(_i,sn,vn,In){_i?Mr(_i):sn?co=sn:vn?Hr=vn:In?Jr=In:(_i=Yn.getMethodDescriptor(),or(new mt(co,_i,sn=(sn=Jr)===void 0?{}:sn,Hr===void 0?null:Hr)))},!0)})},this.g).call(this,At(zn,bn,Vn)).then(function(Yn){return Yn.getResponseMessage()})},Mn.prototype.unaryCall=function(an,bn,Vn,zn){return this.M(an,bn,Vn,zn)},Mn.prototype.R=function(an,bn,Vn,zn){var Hn=this;zn=Lt(an,bn,"server_streaming",zn);var ir=an.substr(0,an.length-zn.name.length);return Cr(function(Yn){return Jn(Hn,Yn,ir)},this.b).call(this,At(zn,bn,Vn))},Mn.prototype.serverStreaming=Mn.prototype.R,Mn.prototype.unaryCall=Mn.prototype.unaryCall,Mn.prototype.thenableCall=Mn.prototype.M,Mn.prototype.rpcCall=Mn.prototype.P,s.exports.AbstractClientBase={MethodInfo:function(an,bn,Vn,zn,Hn){this.name=zn,this.b=Hn,this.f=an,this.a=bn,this.c=Vn}},s.exports.GrpcWebClientBase=Mn,s.exports.StatusCode={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,UNAUTHENTICATED:16,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15},s.exports.MethodDescriptor=vt,s.exports.MethodType={UNARY:"unary",SERVER_STREAMING:"server_streaming"}}).call(this,et(6))},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.isAsyncIterable=o.isAsyncGenerator=o.isAsync=void 0;var tt,nt=et(152),rt=(tt=nt)&&tt.__esModule?tt:{default:tt};function it(ot){return ot[Symbol.toStringTag]==="AsyncFunction"}o.default=function(ot){if(typeof ot!="function")throw new Error("expected a function");return it(ot)?(0,rt.default)(ot):ot},o.isAsync=it,o.isAsyncGenerator=function(ot){return ot[Symbol.toStringTag]==="AsyncGenerator"},o.isAsyncIterable=function(ot){return typeof ot[Symbol.asyncIterator]=="function"}},function(s,o,et){var tt={};function nt(it,ot,st){st||(st=Error);var at=function(lt){var ut,dt;function ht(ct,pt,ft){return lt.call(this,function(gt,yt,Ut){return typeof ot=="string"?ot:ot(gt,yt,Ut)}(ct,pt,ft))||this}return dt=lt,(ut=ht).prototype=Object.create(dt.prototype),ut.prototype.constructor=ut,ut.__proto__=dt,ht}(st);at.prototype.name=st.name,at.prototype.code=it,tt[it]=at}function rt(it,ot){if(Array.isArray(it)){var st=it.length;return it=it.map(function(at){return String(at)}),st>2?"one of ".concat(ot," ").concat(it.slice(0,st-1).join(", "),", or ")+it[st-1]:st===2?"one of ".concat(ot," ").concat(it[0]," or ").concat(it[1]):"of ".concat(ot," ").concat(it[0])}return"of ".concat(ot," ").concat(String(it))}nt("ERR_INVALID_OPT_VALUE",function(it,ot){return'The value "'+ot+'" is invalid for option "'+it+'"'},TypeError),nt("ERR_INVALID_ARG_TYPE",function(it,ot,st){var at,lt,ut;if(typeof ot=="string"&&(lt="not ",ot.substr(0,lt.length)===lt)?(at="must not be",ot=ot.replace(/^not /,"")):at="must be",function(ht,ct,pt){return(pt===void 0||pt>ht.length)&&(pt=ht.length),ht.substring(pt-ct.length,pt)===ct}(it," argument"))ut="The ".concat(it," ").concat(at," ").concat(rt(ot,"type"));else{var dt=function(ht,ct,pt){return typeof pt!="number"&&(pt=0),!(pt+ct.length>ht.length)&&ht.indexOf(ct,pt)!==-1}(it,".")?"property":"argument";ut='The "'.concat(it,'" ').concat(dt," ").concat(at," ").concat(rt(ot,"type"))}return ut+=". Received type ".concat(typeof st)},TypeError),nt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),nt("ERR_METHOD_NOT_IMPLEMENTED",function(it){return"The "+it+" method is not implemented"}),nt("ERR_STREAM_PREMATURE_CLOSE","Premature close"),nt("ERR_STREAM_DESTROYED",function(it){return"Cannot call "+it+" after a stream was destroyed"}),nt("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),nt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),nt("ERR_STREAM_WRITE_AFTER_END","write after end"),nt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),nt("ERR_UNKNOWN_ENCODING",function(it){return"Unknown encoding: "+it},TypeError),nt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),s.exports.codes=tt},function(s,o,et){(function(tt){var nt=Object.keys||function(ht){var ct=[];for(var pt in ht)ct.push(pt);return ct};s.exports=lt;var rt=et(77),it=et(81);et(7)(lt,rt);for(var ot=nt(it.prototype),st=0;st`${lt.get("app-id")}`.startsWith("formant/")?{}:rt},at)),this.endpoint=st}getHeaders(){return Object.assign(Object.assign({},it.headers),{"App-ID":`formant/${nt.a}`,"App-Version":nt.j})}}it.headers={}},function(s,o,et){et(227),s.exports={encode:tt=>new TextEncoder().encode(tt),decode:tt=>new TextDecoder().decode(tt)}},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt,nt=tt.length){if(!nt)throw new Error("arity is undefined");return function(...rt){return typeof rt[nt-1]=="function"?tt.apply(this,rt):new Promise((it,ot)=>{rt[nt-1]=(st,...at)=>{if(st)return ot(st);it(at.length>1?at:at[0])},tt.apply(this,rt)})}},s.exports=o.default},function(s,o,et){(o=s.exports=et(69)).Stream=o,o.Readable=o,o.Writable=et(48),o.Duplex=et(23),o.Transform=et(72),o.PassThrough=et(165)},function(s,o,et){(o=s.exports=et(77)).Stream=o,o.Readable=o,o.Writable=et(81),o.Duplex=et(27),o.Transform=et(82),o.PassThrough=et(184),o.finished=et(49),o.pipeline=et(185)},function(s,o,et){s.exports=function(tt){return tt}},function(s,o,et){et.d(o,"a",function(){return nt});const tt=["password","secret","token","key","buffer"];function nt(rt,it=new Set){return it.has(rt)?"[ RECURSIVE ]":!(ot=rt)||typeof ot!="object"&&typeof ot!="function"?rt:(it.add(rt),Object.keys(rt).reduce((st,at)=>(st[at]=tt.some(lt=>at.toLowerCase().includes(lt.toLowerCase()))?"[ REDACTED ]":nt(rt[at],it),st),{}));var ot}},function(s,o){s.exports=tt,tt.default=tt,tt.stable=rt,tt.stableStringify=rt;var et=[];function tt(it,ot,st){(function ut(dt,ht,ct,pt){var ft;if(typeof dt=="object"&&dt!==null){for(ft=0;ftot?1:0}function rt(it,ot,st){for(var at=function dt(ht,ct,pt,ft){var gt;if(typeof ht=="object"&&ht!==null){for(gt=0;gtFt.validateHeaders?Ft.validateHeaders(mt):{},this.verbose=Ft.verbose!==!1,Ft.retries!==void 0&&!(Ft.retries>=0))throw new Error("retries must be positive or zero");if(this.configuredRetries=Ft.retries,Ft.timeoutMs!==void 0&&!(Ft.timeoutMs>0))throw new Error("timeoutMs must be positive");if(this.timeoutMs=Ft.timeoutMs,Ft.maxBackoffDelayMs!==void 0&&!(Ft.maxBackoffDelayMs>0))throw new Error("maxBackoffDelayMs must be positive");this.maxBackoffDelayMs=Ft.maxBackoffDelayMs||30*tt.a.second}getRetries(){return this.configuredRetries!==void 0?this.configuredRetries:this.getConstructor().retries}getHeaders(){return{}}fetch(Ut,Ft={}){return ct(this,void 0,void 0,function*(){return(yield this.fetchVerbose(Ut,Ft)).body})}fetchVerbose(Ut,Ft={}){return ct(this,void 0,void 0,function*(){let mt=100*tt.a.millisecond,vt=0;const At=this.timeoutMs!==void 0?new Date().getTime()+this.timeoutMs:void 0,Lt=At?()=>Math.max(At-new Date().getTime(),0):void 0;for(;;)try{return yield this.doFetch(Ut,Ft,Lt)}catch(Rt){const St=Object(ut.a)(Rt,st);if(Lt?.()===0||vt===this.getRetries()||!St.retryable)throw St;vt++,mt=Math.min(...Lt?[Lt()]:[],mt*(2+.1*(Math.random()-.5)),this.maxBackoffDelayMs),yield Object(at.a)(mt),this.verbose&<.a.warn(`Connection failure, retrying. Error: ${Rt.cause.message}`,{url:Rt.url,error:Rt.cause,attempt:vt})}})}doFetch(Ut,Ft,mt){return ct(this,void 0,void 0,function*(){const{token:vt,json:At,allowUnsafeRetries:Lt}=Ft,Rt=pt(Ft,["token","json","allowUnsafeRetries"]),St=(Rt.method||"GET").toUpperCase(),Tt=this.endpoint!==void 0?`${this.endpoint}${Ut?`/${Ut}`:""}`:Ut,Bt=new rt.a;let xt;if(mt){const Ct=mt();Ct>0?xt=setTimeout(()=>{Bt.abort()},Ct):Bt.abort()}try{let Ct;yield Promise.race([this.getConstructor().waitForConnectivity(),new Promise(Pt=>{Ct=setTimeout(Pt,mt?Math.min(tt.a.minute,mt()):tt.a.minute)})]),Ct&&clearTimeout(Ct);const kt=yield ot()(Tt,Object.assign(Object.assign({},Rt),{headers:Object.assign(Object.assign(Object.assign(Object.assign({},At!==!1?{"Content-Type":"application/json"}:{}),this.getHeaders()),Rt.headers||{}),vt!==void 0?{Authorization:`Bearer ${vt}`}:{}),signal:Bt.signal})),Nt=kt.headers.get("content-type")||"",Ot=Nt&&Nt.startsWith("application/json"),Wt=Ot?yield kt.json():yield kt.text(),Dt=()=>new dt.a(St,Tt,kt.status,Wt,Wt&&Wt.validationErrors||{},kt.headers);if(!kt.ok)throw this.verbose&<.a[kt.status>=500?"warn":"info"]("Response error",{method:St,url:Tt,statusCode:kt.status}),Dt();const Et=this.validateHeaders(kt.headers);if(Object.keys(Et).length!==0)throw new ht(Et,Dt());if(kt.status===204)return{body:void 0,headers:kt.headers};if(At&&!Ot)throw new Error(`Response is not JSON: ${JSON.stringify(Wt)}`);return{body:Wt,headers:kt.headers}}catch(Ct){const kt=Lt||ft.has(St);if(Ct.message==="Network request failed")throw new st(Ct,Tt,kt);if(Ct.type==="system"&&["EAI_AGAIN","ECONNREFUSED","EHOSTUNREACH","ENOTFOUND"].find(Dt=>Dt===Ct.code))throw new st(Ct,Tt,!0);if(Ct.type==="system"&&["ETIMEDOUT","ECONNRESET","ESOCKETTIMEDOUT","EPIPE"].find(Dt=>Dt===Ct.code))throw new st(Ct,Tt,kt);if(Ct.name==="AbortError")throw new st(Ct,Tt,kt);const Nt=Object(ut.a)(Ct,dt.a),{statusCode:Ot}=Nt;if(Ot===408||Ot===429||Ot===502||Ot===503||Ot===504)throw this.verbose&&!kt&<.a.warn("Potentially unsafe retry"),new st(Ct,Tt,!0);const Wt=this.validateHeaders(Nt.headers);throw Object.keys(Wt).length!==0?new ht(Wt,Nt):(yield this.getConstructor().onResponseError(Nt),Ct)}finally{xt&&clearTimeout(xt)}})}getConstructor(){return Object.getPrototypeOf(this).constructor}}gt.retries=8,gt.waitForConnectivity=()=>ct(void 0,void 0,void 0,function*(){}),gt.onResponseError=()=>ct(void 0,void 0,void 0,function*(){})},function(s,o,et){function tt(ut,dt){if(!(ut instanceof dt))throw new TypeError("Cannot call a class as a function")}function nt(ut,dt){for(var ht=0;ht0&&arguments[0]!==void 0?arguments[0]:{};tt(this,ut),pt.colors&&this.addColors(pt.colors),this.options=pt}var dt,ht,ct;return dt=ut,ct=[{key:"addColors",value:function(pt){var ft=Object.keys(pt).reduce(function(gt,yt){return gt[yt]=at.test(pt[yt])?pt[yt].split(at):pt[yt],gt},{});return ut.allColors=Object.assign({},ut.allColors||{},ft),ut.allColors}}],(ht=[{key:"addColors",value:function(pt){return ut.addColors(pt)}},{key:"colorize",value:function(pt,ft,gt){if(gt===void 0&&(gt=ft),!Array.isArray(ut.allColors[pt]))return rt[ut.allColors[pt]](gt);for(var yt=0,Ut=ut.allColors[pt].length;yt=0&&tt.length%1==0},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default={},s.exports=o.default},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){(function(tt,nt,rt){var it=et(16);function ot(St){var Tt=this;this.next=null,this.entry=null,this.finish=function(){(function(Bt,xt,Ct){var kt=Bt.entry;for(Bt.entry=null;kt;){var Nt=kt.callback;xt.pendingcb--,Nt(Ct),kt=kt.next}xt.corkedRequestsFree?xt.corkedRequestsFree.next=Bt:xt.corkedRequestsFree=Bt})(Tt,St)}}s.exports=Ut;var st,at=!tt.browser&&["v0.10","v0.9."].indexOf(tt.version.slice(0,5))>-1?nt:it.nextTick;Ut.WritableState=yt;var lt=et(17);lt.inherits=et(7);var ut={deprecate:et(43)},dt=et(70),ht=et(47).Buffer,ct=rt.Uint8Array||function(){},pt,ft=et(71);function gt(){}function yt(St,Tt){st=st||et(23),St=St||{};var Bt=Tt instanceof st;this.objectMode=!!St.objectMode,Bt&&(this.objectMode=this.objectMode||!!St.writableObjectMode);var xt=St.highWaterMark,Ct=St.writableHighWaterMark,kt=this.objectMode?16:16384;this.highWaterMark=xt||xt===0?xt:Bt&&(Ct||Ct===0)?Ct:kt,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Nt=St.decodeStrings===!1;this.decodeStrings=!Nt,this.defaultEncoding=St.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Ot){(function(Wt,Dt){var Et=Wt._writableState,Pt=Et.sync,zt=Et.writecb;if(function(Kt){Kt.writing=!1,Kt.writecb=null,Kt.length-=Kt.writelen,Kt.writelen=0}(Et),Dt)(function(Kt,nn,Zt,jt,Vt){--nn.pendingcb,Zt?(it.nextTick(Vt,jt),it.nextTick(Rt,Kt,nn),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt)):(Vt(jt),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt),Rt(Kt,nn))})(Wt,Et,Pt,Dt,zt);else{var en=At(Et);en||Et.corked||Et.bufferProcessing||!Et.bufferedRequest||vt(Wt,Et),Pt?at(mt,Wt,Et,en,zt):mt(Wt,Et,en,zt)}})(Tt,Ot)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new ot(this)}function Ut(St){if(st=st||et(23),!(pt.call(Ut,this)||this instanceof st))return new Ut(St);this._writableState=new yt(St,this),this.writable=!0,St&&(typeof St.write=="function"&&(this._write=St.write),typeof St.writev=="function"&&(this._writev=St.writev),typeof St.destroy=="function"&&(this._destroy=St.destroy),typeof St.final=="function"&&(this._final=St.final)),dt.call(this)}function Ft(St,Tt,Bt,xt,Ct,kt,Nt){Tt.writelen=xt,Tt.writecb=Nt,Tt.writing=!0,Tt.sync=!0,Bt?St._writev(Ct,Tt.onwrite):St._write(Ct,kt,Tt.onwrite),Tt.sync=!1}function mt(St,Tt,Bt,xt){Bt||function(Ct,kt){kt.length===0&&kt.needDrain&&(kt.needDrain=!1,Ct.emit("drain"))}(St,Tt),Tt.pendingcb--,xt(),Rt(St,Tt)}function vt(St,Tt){Tt.bufferProcessing=!0;var Bt=Tt.bufferedRequest;if(St._writev&&Bt&&Bt.next){var xt=Tt.bufferedRequestCount,Ct=new Array(xt),kt=Tt.corkedRequestsFree;kt.entry=Bt;for(var Nt=0,Ot=!0;Bt;)Ct[Nt]=Bt,Bt.isBuf||(Ot=!1),Bt=Bt.next,Nt+=1;Ct.allBuffers=Ot,Ft(St,Tt,!0,Tt.length,Ct,"",kt.finish),Tt.pendingcb++,Tt.lastBufferedRequest=null,kt.next?(Tt.corkedRequestsFree=kt.next,kt.next=null):Tt.corkedRequestsFree=new ot(Tt),Tt.bufferedRequestCount=0}else{for(;Bt;){var Wt=Bt.chunk,Dt=Bt.encoding,Et=Bt.callback;if(Ft(St,Tt,!1,Tt.objectMode?1:Wt.length,Wt,Dt,Et),Bt=Bt.next,Tt.bufferedRequestCount--,Tt.writing)break}Bt===null&&(Tt.lastBufferedRequest=null)}Tt.bufferedRequest=Bt,Tt.bufferProcessing=!1}function At(St){return St.ending&&St.length===0&&St.bufferedRequest===null&&!St.finished&&!St.writing}function Lt(St,Tt){St._final(function(Bt){Tt.pendingcb--,Bt&&St.emit("error",Bt),Tt.prefinished=!0,St.emit("prefinish"),Rt(St,Tt)})}function Rt(St,Tt){var Bt=At(Tt);return Bt&&(function(xt,Ct){Ct.prefinished||Ct.finalCalled||(typeof xt._final=="function"?(Ct.pendingcb++,Ct.finalCalled=!0,it.nextTick(Lt,xt,Ct)):(Ct.prefinished=!0,xt.emit("prefinish")))}(St,Tt),Tt.pendingcb===0&&(Tt.finished=!0,St.emit("finish"))),Bt}lt.inherits(Ut,dt),yt.prototype.getBuffer=function(){for(var St=this.bufferedRequest,Tt=[];St;)Tt.push(St),St=St.next;return Tt},function(){try{Object.defineProperty(yt.prototype,"buffer",{get:ut.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(pt=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ut,Symbol.hasInstance,{value:function(St){return!!pt.call(this,St)||this===Ut&&St&&St._writableState instanceof yt}})):pt=function(St){return St instanceof this},Ut.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Ut.prototype.write=function(St,Tt,Bt){var xt,Ct=this._writableState,kt=!1,Nt=!Ct.objectMode&&(xt=St,ht.isBuffer(xt)||xt instanceof ct);return Nt&&!ht.isBuffer(St)&&(St=function(Ot){return ht.from(Ot)}(St)),typeof Tt=="function"&&(Bt=Tt,Tt=null),Nt?Tt="buffer":Tt||(Tt=Ct.defaultEncoding),typeof Bt!="function"&&(Bt=gt),Ct.ended?function(Ot,Wt){var Dt=new Error("write after end");Ot.emit("error",Dt),it.nextTick(Wt,Dt)}(this,Bt):(Nt||function(Ot,Wt,Dt,Et){var Pt=!0,zt=!1;return Dt===null?zt=new TypeError("May not write null values to stream"):typeof Dt=="string"||Dt===void 0||Wt.objectMode||(zt=new TypeError("Invalid non-string/buffer chunk")),zt&&(Ot.emit("error",zt),it.nextTick(Et,zt),Pt=!1),Pt}(this,Ct,St,Bt))&&(Ct.pendingcb++,kt=function(Ot,Wt,Dt,Et,Pt,zt){if(!Dt){var en=function(jt,Vt,It){return jt.objectMode||jt.decodeStrings===!1||typeof Vt!="string"||(Vt=ht.from(Vt,It)),Vt}(Wt,Et,Pt);Et!==en&&(Dt=!0,Pt="buffer",Et=en)}var Kt=Wt.objectMode?1:Et.length;Wt.length+=Kt;var nn=Wt.length-1))throw new TypeError("Unknown encoding: "+St);return this._writableState.defaultEncoding=St,this},Object.defineProperty(Ut.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Ut.prototype._write=function(St,Tt,Bt){Bt(new Error("_write() is not implemented"))},Ut.prototype._writev=null,Ut.prototype.end=function(St,Tt,Bt){var xt=this._writableState;typeof St=="function"?(Bt=St,St=null,Tt=null):typeof Tt=="function"&&(Bt=Tt,Tt=null),St!=null&&this.write(St,Tt),xt.corked&&(xt.corked=1,this.uncork()),xt.ending||xt.finished||function(Ct,kt,Nt){kt.ending=!0,Rt(Ct,kt),Nt&&(kt.finished?it.nextTick(Nt):Ct.once("finish",Nt)),kt.ended=!0,Ct.writable=!1}(this,xt,Bt)},Object.defineProperty(Ut.prototype,"destroyed",{get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(St){this._writableState&&(this._writableState.destroyed=St)}}),Ut.prototype.destroy=ft.destroy,Ut.prototype._undestroy=ft.undestroy,Ut.prototype._destroy=function(St,Tt){this.end(),Tt(St)}}).call(this,et(2),et(15).setImmediate,et(6))},function(s,o,et){var tt=et(26).codes.ERR_STREAM_PREMATURE_CLOSE;function nt(){}s.exports=function rt(it,ot,st){if(typeof ot=="function")return rt(it,null,ot);ot||(ot={}),st=function(Ut){var Ft=!1;return function(){if(!Ft){Ft=!0;for(var mt=arguments.length,vt=new Array(mt),At=0;At=0;lt--){var ut=ot[lt];ut==="."?ot.splice(lt,1):ut===".."?(ot.splice(lt,1),at++):at&&(ot.splice(lt,1),at--)}if(st)for(;at--;at)ot.unshift("..");return ot}function rt(ot,st){if(ot.filter)return ot.filter(st);for(var at=[],lt=0;lt=-1&&!st;at--){var lt=at>=0?arguments[at]:tt.cwd();if(typeof lt!="string")throw new TypeError("Arguments to path.resolve must be strings");lt&&(ot=lt+"/"+ot,st=lt.charAt(0)==="/")}return(st?"/":"")+(ot=nt(rt(ot.split("/"),function(ut){return!!ut}),!st).join("/"))||"."},o.normalize=function(ot){var st=o.isAbsolute(ot),at=it(ot,-1)==="/";return(ot=nt(rt(ot.split("/"),function(lt){return!!lt}),!st).join("/"))||st||(ot="."),ot&&at&&(ot+="/"),(st?"/":"")+ot},o.isAbsolute=function(ot){return ot.charAt(0)==="/"},o.join=function(){var ot=Array.prototype.slice.call(arguments,0);return o.normalize(rt(ot,function(st,at){if(typeof st!="string")throw new TypeError("Arguments to path.join must be strings");return st}).join("/"))},o.relative=function(ot,st){function at(ft){for(var gt=0;gt=0&&ft[yt]==="";yt--);return gt>yt?[]:ft.slice(gt,yt-gt+1)}ot=o.resolve(ot).substr(1),st=o.resolve(st).substr(1);for(var lt=at(ot.split("/")),ut=at(st.split("/")),dt=Math.min(lt.length,ut.length),ht=dt,ct=0;ct=1;--dt)if((st=ot.charCodeAt(dt))===47){if(!ut){lt=dt;break}}else ut=!1;return lt===-1?at?"/":".":at&<===1?"/":ot.slice(0,lt)},o.basename=function(ot,st){var at=function(lt){typeof lt!="string"&&(lt+="");var ut,dt=0,ht=-1,ct=!0;for(ut=lt.length-1;ut>=0;--ut)if(lt.charCodeAt(ut)===47){if(!ct){dt=ut+1;break}}else ht===-1&&(ct=!1,ht=ut+1);return ht===-1?"":lt.slice(dt,ht)}(ot);return st&&at.substr(-1*st.length)===st&&(at=at.substr(0,at.length-st.length)),at},o.extname=function(ot){typeof ot!="string"&&(ot+="");for(var st=-1,at=0,lt=-1,ut=!0,dt=0,ht=ot.length-1;ht>=0;--ht){var ct=ot.charCodeAt(ht);if(ct!==47)lt===-1&&(ut=!1,lt=ht+1),ct===46?st===-1?st=ht:dt!==1&&(dt=1):st!==-1&&(dt=-1);else if(!ut){at=ht+1;break}}return st===-1||lt===-1||dt===0||dt===1&&st===lt-1&&st===at+1?"":ot.slice(st,lt)};var it="ab".substr(-1)==="b"?function(ot,st,at){return ot.substr(st,at)}:function(ot,st,at){return st<0&&(st=ot.length+st),ot.substr(st,at)}}).call(this,et(2))},,function(s,o,et){var tt=o.format=et(12);o.levels=et(105),Object.defineProperty(tt,"align",{value:et(122)}),Object.defineProperty(tt,"cli",{value:et(123)}),Object.defineProperty(tt,"combine",{value:et(124)}),Object.defineProperty(tt,"colorize",{value:et(41)}),Object.defineProperty(tt,"json",{value:et(125)}),Object.defineProperty(tt,"label",{value:et(128)}),Object.defineProperty(tt,"logstash",{value:et(129)}),Object.defineProperty(tt,"metadata",{value:et(130)}),Object.defineProperty(tt,"padLevels",{value:et(60)}),Object.defineProperty(tt,"prettyPrint",{value:et(131)}),Object.defineProperty(tt,"printf",{value:et(132)}),Object.defineProperty(tt,"simple",{value:et(133)}),Object.defineProperty(tt,"splat",{value:et(134)}),Object.defineProperty(tt,"timestamp",{value:et(135)}),Object.defineProperty(tt,"uncolorize",{value:et(137)})},function(s,o,et){var tt=et(106);s.exports=tt},function(s,o,et){function tt(dt){return function(ht){if(Array.isArray(ht))return nt(ht)}(dt)||function(ht){if(typeof Symbol<"u"&&Symbol.iterator in Object(ht))return Array.from(ht)}(dt)||function(ht,ct){if(ht){if(typeof ht=="string")return nt(ht,ct);var pt=Object.prototype.toString.call(ht).slice(8,-1);if(pt==="Object"&&ht.constructor&&(pt=ht.constructor.name),pt==="Map"||pt==="Set")return Array.from(ht);if(pt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(pt))return nt(ht,ct)}}(dt)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +`);for(var Wr=0;Wr2*or.c&&Go(or)),1/0===Yn&&(Yn=0),0(Yn=Hn.indexOf("#"))&&(Yn=Hn.length),0>(or=Hn.indexOf("?"))||or>Yn?(or=Yn,Mr=""):Mr=Hn.substring(or+1,Yn),Yn=(Hn=[Hn.substr(0,or),Mr,Hn.substr(Yn)])[1],Hn[1]=Hr?Yn?Yn+"&"+Hr:Hr:Yn,Hn=Hn[0]+(Hn[1]?"?"+Hn[1]:"")+Hn[2])):Hn.a("$httpHeaders",Yn))}for(zn=(bn=(0,zn.a)(bn.getRequestMessage())).length,Hr=[0,0,0,0],Yn=new Uint8Array(5+zn),or=3;0<=or;or--)Hr[or]=zn%256,zn>>>=8;if(Yn.set(new Uint8Array(Hr),1),Yn.set(bn,5),bn=Yn,an.a=="text"){var co;for(an=bn,co===void 0&&(co=0),vo(),co=ks[co],bn=[],zn=0;zn>2,Wr=(3&Wr)<<4|_i>>4,_i=(15&_i)<<2|(Mr=(Yn=zn+2>6,Mr&=63,Yn||(Mr=64,Hr||(_i=64)),bn.push(co[or],co[Wr],co[_i]||"",co[Mr]||"")}bn=bn.join("")}else an.a=="binary"&&(Vn.j="arraybuffer");return Lo(Vn,Hn,bn),ir}function Vr(an,bn,Vn){var zn=null,Hn=!1;an.on("data",function(ir){zn=ir}),an.on("error",function(ir){ir.code==0||Hn||(Hn=!0,bn(ir,null))}),an.on("status",function(ir){ir.code==0||Hn?Vn&&bn(null,null,ir):(Hn=!0,bn({code:ir.code,message:ir.details,metadata:ir.metadata},null))}),Vn&&an.on("metadata",function(ir){bn(null,null,null,ir)}),an.on("end",function(){Hn||(zn==null?bn({code:2,message:"Incomplete response"}):bn(null,zn)),Vn&&bn(null,null)})}function Cr(an,bn){var Vn=an;return bn.forEach(function(zn){var Hn=Vn;Vn=function(ir){return zn.intercept(ir,Hn)}}),Vn}Tn.prototype.on=function(an,bn){return an=="data"?this.b.push(bn):an=="status"?this.h.push(bn):an=="metadata"?this.g.push(bn):an=="end"?this.c.push(bn):an=="error"&&this.f.push(bn),this},Tn.prototype.removeListener=function(an,bn){return an=="data"?En(this.b,bn):an=="status"?En(this.h,bn):an=="metadata"?En(this.g,bn):an=="end"?En(this.c,bn):an=="error"&&En(this.f,bn),this},Tn.prototype.cancel=function(){this.j=!0,this.a.abort()},Tn.prototype.cancel=Tn.prototype.cancel,Tn.prototype.removeListener=Tn.prototype.removeListener,Tn.prototype.on=Tn.prototype.on,Mn.prototype.P=function(an,bn,Vn,zn,Hn){var ir=this;zn=Lt(an,bn,"unary",zn);var Yn=an.substr(0,an.length-zn.name.length);return Vr(an=Cr(function(or){return Wn(ir,or,Yn)},this.b).call(this,At(zn,bn,Vn)),Hn,!1),new Rt(an)},Mn.prototype.M=function(an,bn,Vn,zn){var Hn=this;zn=Lt(an,bn,"unary",zn);var ir=an.substr(0,an.length-zn.name.length);return Cr(function(Yn){return new Promise(function(or,Mr){var Wr,Hr,co;Vr(Wn(Hn,Yn,ir),function(_i,sn,vn,In){_i?Mr(_i):sn?co=sn:vn?Hr=vn:In?Wr=In:(_i=Yn.getMethodDescriptor(),or(new mt(co,_i,sn=(sn=Wr)===void 0?{}:sn,Hr===void 0?null:Hr)))},!0)})},this.g).call(this,At(zn,bn,Vn)).then(function(Yn){return Yn.getResponseMessage()})},Mn.prototype.unaryCall=function(an,bn,Vn,zn){return this.M(an,bn,Vn,zn)},Mn.prototype.R=function(an,bn,Vn,zn){var Hn=this;zn=Lt(an,bn,"server_streaming",zn);var ir=an.substr(0,an.length-zn.name.length);return Cr(function(Yn){return Wn(Hn,Yn,ir)},this.b).call(this,At(zn,bn,Vn))},Mn.prototype.serverStreaming=Mn.prototype.R,Mn.prototype.unaryCall=Mn.prototype.unaryCall,Mn.prototype.thenableCall=Mn.prototype.M,Mn.prototype.rpcCall=Mn.prototype.P,s.exports.AbstractClientBase={MethodInfo:function(an,bn,Vn,zn,Hn){this.name=zn,this.b=Hn,this.f=an,this.a=bn,this.c=Vn}},s.exports.GrpcWebClientBase=Mn,s.exports.StatusCode={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,UNAUTHENTICATED:16,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15},s.exports.MethodDescriptor=vt,s.exports.MethodType={UNARY:"unary",SERVER_STREAMING:"server_streaming"}}).call(this,et(6))},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.isAsyncIterable=o.isAsyncGenerator=o.isAsync=void 0;var tt,nt=et(152),rt=(tt=nt)&&tt.__esModule?tt:{default:tt};function it(ot){return ot[Symbol.toStringTag]==="AsyncFunction"}o.default=function(ot){if(typeof ot!="function")throw new Error("expected a function");return it(ot)?(0,rt.default)(ot):ot},o.isAsync=it,o.isAsyncGenerator=function(ot){return ot[Symbol.toStringTag]==="AsyncGenerator"},o.isAsyncIterable=function(ot){return typeof ot[Symbol.asyncIterator]=="function"}},function(s,o,et){var tt={};function nt(it,ot,st){st||(st=Error);var at=function(lt){var ut,dt;function ht(ct,pt,ft){return lt.call(this,function(gt,yt,Ut){return typeof ot=="string"?ot:ot(gt,yt,Ut)}(ct,pt,ft))||this}return dt=lt,(ut=ht).prototype=Object.create(dt.prototype),ut.prototype.constructor=ut,ut.__proto__=dt,ht}(st);at.prototype.name=st.name,at.prototype.code=it,tt[it]=at}function rt(it,ot){if(Array.isArray(it)){var st=it.length;return it=it.map(function(at){return String(at)}),st>2?"one of ".concat(ot," ").concat(it.slice(0,st-1).join(", "),", or ")+it[st-1]:st===2?"one of ".concat(ot," ").concat(it[0]," or ").concat(it[1]):"of ".concat(ot," ").concat(it[0])}return"of ".concat(ot," ").concat(String(it))}nt("ERR_INVALID_OPT_VALUE",function(it,ot){return'The value "'+ot+'" is invalid for option "'+it+'"'},TypeError),nt("ERR_INVALID_ARG_TYPE",function(it,ot,st){var at,lt,ut;if(typeof ot=="string"&&(lt="not ",ot.substr(0,lt.length)===lt)?(at="must not be",ot=ot.replace(/^not /,"")):at="must be",function(ht,ct,pt){return(pt===void 0||pt>ht.length)&&(pt=ht.length),ht.substring(pt-ct.length,pt)===ct}(it," argument"))ut="The ".concat(it," ").concat(at," ").concat(rt(ot,"type"));else{var dt=function(ht,ct,pt){return typeof pt!="number"&&(pt=0),!(pt+ct.length>ht.length)&&ht.indexOf(ct,pt)!==-1}(it,".")?"property":"argument";ut='The "'.concat(it,'" ').concat(dt," ").concat(at," ").concat(rt(ot,"type"))}return ut+=". Received type ".concat(typeof st)},TypeError),nt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),nt("ERR_METHOD_NOT_IMPLEMENTED",function(it){return"The "+it+" method is not implemented"}),nt("ERR_STREAM_PREMATURE_CLOSE","Premature close"),nt("ERR_STREAM_DESTROYED",function(it){return"Cannot call "+it+" after a stream was destroyed"}),nt("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),nt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),nt("ERR_STREAM_WRITE_AFTER_END","write after end"),nt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),nt("ERR_UNKNOWN_ENCODING",function(it){return"Unknown encoding: "+it},TypeError),nt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),s.exports.codes=tt},function(s,o,et){(function(tt){var nt=Object.keys||function(ht){var ct=[];for(var pt in ht)ct.push(pt);return ct};s.exports=lt;var rt=et(77),it=et(81);et(7)(lt,rt);for(var ot=nt(it.prototype),st=0;st`${lt.get("app-id")}`.startsWith("formant/")?{}:rt},at)),this.endpoint=st}getHeaders(){return Object.assign(Object.assign({},it.headers),{"App-ID":`formant/${nt.a}`,"App-Version":nt.j})}}it.headers={}},function(s,o,et){et(227),s.exports={encode:tt=>new TextEncoder().encode(tt),decode:tt=>new TextDecoder().decode(tt)}},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt,nt=tt.length){if(!nt)throw new Error("arity is undefined");return function(...rt){return typeof rt[nt-1]=="function"?tt.apply(this,rt):new Promise((it,ot)=>{rt[nt-1]=(st,...at)=>{if(st)return ot(st);it(at.length>1?at:at[0])},tt.apply(this,rt)})}},s.exports=o.default},function(s,o,et){(o=s.exports=et(69)).Stream=o,o.Readable=o,o.Writable=et(48),o.Duplex=et(23),o.Transform=et(72),o.PassThrough=et(165)},function(s,o,et){(o=s.exports=et(77)).Stream=o,o.Readable=o,o.Writable=et(81),o.Duplex=et(27),o.Transform=et(82),o.PassThrough=et(184),o.finished=et(49),o.pipeline=et(185)},function(s,o,et){s.exports=function(tt){return tt}},function(s,o,et){et.d(o,"a",function(){return nt});const tt=["password","secret","token","key","buffer"];function nt(rt,it=new Set){return it.has(rt)?"[ RECURSIVE ]":!(ot=rt)||typeof ot!="object"&&typeof ot!="function"?rt:(it.add(rt),Object.keys(rt).reduce((st,at)=>(st[at]=tt.some(lt=>at.toLowerCase().includes(lt.toLowerCase()))?"[ REDACTED ]":nt(rt[at],it),st),{}));var ot}},function(s,o){s.exports=tt,tt.default=tt,tt.stable=rt,tt.stableStringify=rt;var et=[];function tt(it,ot,st){(function ut(dt,ht,ct,pt){var ft;if(typeof dt=="object"&&dt!==null){for(ft=0;ftot?1:0}function rt(it,ot,st){for(var at=function dt(ht,ct,pt,ft){var gt;if(typeof ht=="object"&&ht!==null){for(gt=0;gtFt.validateHeaders?Ft.validateHeaders(mt):{},this.verbose=Ft.verbose!==!1,Ft.retries!==void 0&&!(Ft.retries>=0))throw new Error("retries must be positive or zero");if(this.configuredRetries=Ft.retries,Ft.timeoutMs!==void 0&&!(Ft.timeoutMs>0))throw new Error("timeoutMs must be positive");if(this.timeoutMs=Ft.timeoutMs,Ft.maxBackoffDelayMs!==void 0&&!(Ft.maxBackoffDelayMs>0))throw new Error("maxBackoffDelayMs must be positive");this.maxBackoffDelayMs=Ft.maxBackoffDelayMs||30*tt.a.second}getRetries(){return this.configuredRetries!==void 0?this.configuredRetries:this.getConstructor().retries}getHeaders(){return{}}fetch(Ut,Ft={}){return ct(this,void 0,void 0,function*(){return(yield this.fetchVerbose(Ut,Ft)).body})}fetchVerbose(Ut,Ft={}){return ct(this,void 0,void 0,function*(){let mt=100*tt.a.millisecond,vt=0;const At=this.timeoutMs!==void 0?new Date().getTime()+this.timeoutMs:void 0,Lt=At?()=>Math.max(At-new Date().getTime(),0):void 0;for(;;)try{return yield this.doFetch(Ut,Ft,Lt)}catch(Rt){const St=Object(ut.a)(Rt,st);if(Lt?.()===0||vt===this.getRetries()||!St.retryable)throw St;vt++,mt=Math.min(...Lt?[Lt()]:[],mt*(2+.1*(Math.random()-.5)),this.maxBackoffDelayMs),yield Object(at.a)(mt),this.verbose&<.a.warn(`Connection failure, retrying. Error: ${Rt.cause.message}`,{url:Rt.url,error:Rt.cause,attempt:vt})}})}doFetch(Ut,Ft,mt){return ct(this,void 0,void 0,function*(){const{token:vt,json:At,allowUnsafeRetries:Lt}=Ft,Rt=pt(Ft,["token","json","allowUnsafeRetries"]),St=(Rt.method||"GET").toUpperCase(),Tt=this.endpoint!==void 0?`${this.endpoint}${Ut?`/${Ut}`:""}`:Ut,Bt=new rt.a;let xt;if(mt){const Ct=mt();Ct>0?xt=setTimeout(()=>{Bt.abort()},Ct):Bt.abort()}try{let Ct;yield Promise.race([this.getConstructor().waitForConnectivity(),new Promise(Pt=>{Ct=setTimeout(Pt,mt?Math.min(tt.a.minute,mt()):tt.a.minute)})]),Ct&&clearTimeout(Ct);const kt=yield ot()(Tt,Object.assign(Object.assign({},Rt),{headers:Object.assign(Object.assign(Object.assign(Object.assign({},At!==!1?{"Content-Type":"application/json"}:{}),this.getHeaders()),Rt.headers||{}),vt!==void 0?{Authorization:`Bearer ${vt}`}:{}),signal:Bt.signal})),Nt=kt.headers.get("content-type")||"",Ot=Nt&&Nt.startsWith("application/json"),Jt=Ot?yield kt.json():yield kt.text(),Dt=()=>new dt.a(St,Tt,kt.status,Jt,Jt&&Jt.validationErrors||{},kt.headers);if(!kt.ok)throw this.verbose&<.a[kt.status>=500?"warn":"info"]("Response error",{method:St,url:Tt,statusCode:kt.status}),Dt();const Et=this.validateHeaders(kt.headers);if(Object.keys(Et).length!==0)throw new ht(Et,Dt());if(kt.status===204)return{body:void 0,headers:kt.headers};if(At&&!Ot)throw new Error(`Response is not JSON: ${JSON.stringify(Jt)}`);return{body:Jt,headers:kt.headers}}catch(Ct){const kt=Lt||ft.has(St);if(Ct.message==="Network request failed")throw new st(Ct,Tt,kt);if(Ct.type==="system"&&["EAI_AGAIN","ECONNREFUSED","EHOSTUNREACH","ENOTFOUND"].find(Dt=>Dt===Ct.code))throw new st(Ct,Tt,!0);if(Ct.type==="system"&&["ETIMEDOUT","ECONNRESET","ESOCKETTIMEDOUT","EPIPE"].find(Dt=>Dt===Ct.code))throw new st(Ct,Tt,kt);if(Ct.name==="AbortError")throw new st(Ct,Tt,kt);const Nt=Object(ut.a)(Ct,dt.a),{statusCode:Ot}=Nt;if(Ot===408||Ot===429||Ot===502||Ot===503||Ot===504)throw this.verbose&&!kt&<.a.warn("Potentially unsafe retry"),new st(Ct,Tt,!0);const Jt=this.validateHeaders(Nt.headers);throw Object.keys(Jt).length!==0?new ht(Jt,Nt):(yield this.getConstructor().onResponseError(Nt),Ct)}finally{xt&&clearTimeout(xt)}})}getConstructor(){return Object.getPrototypeOf(this).constructor}}gt.retries=8,gt.waitForConnectivity=()=>ct(void 0,void 0,void 0,function*(){}),gt.onResponseError=()=>ct(void 0,void 0,void 0,function*(){})},function(s,o,et){function tt(ut,dt){if(!(ut instanceof dt))throw new TypeError("Cannot call a class as a function")}function nt(ut,dt){for(var ht=0;ht0&&arguments[0]!==void 0?arguments[0]:{};tt(this,ut),pt.colors&&this.addColors(pt.colors),this.options=pt}var dt,ht,ct;return dt=ut,ct=[{key:"addColors",value:function(pt){var ft=Object.keys(pt).reduce(function(gt,yt){return gt[yt]=at.test(pt[yt])?pt[yt].split(at):pt[yt],gt},{});return ut.allColors=Object.assign({},ut.allColors||{},ft),ut.allColors}}],(ht=[{key:"addColors",value:function(pt){return ut.addColors(pt)}},{key:"colorize",value:function(pt,ft,gt){if(gt===void 0&&(gt=ft),!Array.isArray(ut.allColors[pt]))return rt[ut.allColors[pt]](gt);for(var yt=0,Ut=ut.allColors[pt].length;yt=0&&tt.length%1==0},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default={},s.exports=o.default},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){(function(tt,nt,rt){var it=et(16);function ot(St){var Tt=this;this.next=null,this.entry=null,this.finish=function(){(function(Bt,xt,Ct){var kt=Bt.entry;for(Bt.entry=null;kt;){var Nt=kt.callback;xt.pendingcb--,Nt(Ct),kt=kt.next}xt.corkedRequestsFree?xt.corkedRequestsFree.next=Bt:xt.corkedRequestsFree=Bt})(Tt,St)}}s.exports=Ut;var st,at=!tt.browser&&["v0.10","v0.9."].indexOf(tt.version.slice(0,5))>-1?nt:it.nextTick;Ut.WritableState=yt;var lt=et(17);lt.inherits=et(7);var ut={deprecate:et(43)},dt=et(70),ht=et(47).Buffer,ct=rt.Uint8Array||function(){},pt,ft=et(71);function gt(){}function yt(St,Tt){st=st||et(23),St=St||{};var Bt=Tt instanceof st;this.objectMode=!!St.objectMode,Bt&&(this.objectMode=this.objectMode||!!St.writableObjectMode);var xt=St.highWaterMark,Ct=St.writableHighWaterMark,kt=this.objectMode?16:16384;this.highWaterMark=xt||xt===0?xt:Bt&&(Ct||Ct===0)?Ct:kt,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Nt=St.decodeStrings===!1;this.decodeStrings=!Nt,this.defaultEncoding=St.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Ot){(function(Jt,Dt){var Et=Jt._writableState,Pt=Et.sync,zt=Et.writecb;if(function(Kt){Kt.writing=!1,Kt.writecb=null,Kt.length-=Kt.writelen,Kt.writelen=0}(Et),Dt)(function(Kt,nn,Zt,jt,Vt){--nn.pendingcb,Zt?(it.nextTick(Vt,jt),it.nextTick(Rt,Kt,nn),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt)):(Vt(jt),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt),Rt(Kt,nn))})(Jt,Et,Pt,Dt,zt);else{var en=At(Et);en||Et.corked||Et.bufferProcessing||!Et.bufferedRequest||vt(Jt,Et),Pt?at(mt,Jt,Et,en,zt):mt(Jt,Et,en,zt)}})(Tt,Ot)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new ot(this)}function Ut(St){if(st=st||et(23),!(pt.call(Ut,this)||this instanceof st))return new Ut(St);this._writableState=new yt(St,this),this.writable=!0,St&&(typeof St.write=="function"&&(this._write=St.write),typeof St.writev=="function"&&(this._writev=St.writev),typeof St.destroy=="function"&&(this._destroy=St.destroy),typeof St.final=="function"&&(this._final=St.final)),dt.call(this)}function Ft(St,Tt,Bt,xt,Ct,kt,Nt){Tt.writelen=xt,Tt.writecb=Nt,Tt.writing=!0,Tt.sync=!0,Bt?St._writev(Ct,Tt.onwrite):St._write(Ct,kt,Tt.onwrite),Tt.sync=!1}function mt(St,Tt,Bt,xt){Bt||function(Ct,kt){kt.length===0&&kt.needDrain&&(kt.needDrain=!1,Ct.emit("drain"))}(St,Tt),Tt.pendingcb--,xt(),Rt(St,Tt)}function vt(St,Tt){Tt.bufferProcessing=!0;var Bt=Tt.bufferedRequest;if(St._writev&&Bt&&Bt.next){var xt=Tt.bufferedRequestCount,Ct=new Array(xt),kt=Tt.corkedRequestsFree;kt.entry=Bt;for(var Nt=0,Ot=!0;Bt;)Ct[Nt]=Bt,Bt.isBuf||(Ot=!1),Bt=Bt.next,Nt+=1;Ct.allBuffers=Ot,Ft(St,Tt,!0,Tt.length,Ct,"",kt.finish),Tt.pendingcb++,Tt.lastBufferedRequest=null,kt.next?(Tt.corkedRequestsFree=kt.next,kt.next=null):Tt.corkedRequestsFree=new ot(Tt),Tt.bufferedRequestCount=0}else{for(;Bt;){var Jt=Bt.chunk,Dt=Bt.encoding,Et=Bt.callback;if(Ft(St,Tt,!1,Tt.objectMode?1:Jt.length,Jt,Dt,Et),Bt=Bt.next,Tt.bufferedRequestCount--,Tt.writing)break}Bt===null&&(Tt.lastBufferedRequest=null)}Tt.bufferedRequest=Bt,Tt.bufferProcessing=!1}function At(St){return St.ending&&St.length===0&&St.bufferedRequest===null&&!St.finished&&!St.writing}function Lt(St,Tt){St._final(function(Bt){Tt.pendingcb--,Bt&&St.emit("error",Bt),Tt.prefinished=!0,St.emit("prefinish"),Rt(St,Tt)})}function Rt(St,Tt){var Bt=At(Tt);return Bt&&(function(xt,Ct){Ct.prefinished||Ct.finalCalled||(typeof xt._final=="function"?(Ct.pendingcb++,Ct.finalCalled=!0,it.nextTick(Lt,xt,Ct)):(Ct.prefinished=!0,xt.emit("prefinish")))}(St,Tt),Tt.pendingcb===0&&(Tt.finished=!0,St.emit("finish"))),Bt}lt.inherits(Ut,dt),yt.prototype.getBuffer=function(){for(var St=this.bufferedRequest,Tt=[];St;)Tt.push(St),St=St.next;return Tt},function(){try{Object.defineProperty(yt.prototype,"buffer",{get:ut.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(pt=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ut,Symbol.hasInstance,{value:function(St){return!!pt.call(this,St)||this===Ut&&St&&St._writableState instanceof yt}})):pt=function(St){return St instanceof this},Ut.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Ut.prototype.write=function(St,Tt,Bt){var xt,Ct=this._writableState,kt=!1,Nt=!Ct.objectMode&&(xt=St,ht.isBuffer(xt)||xt instanceof ct);return Nt&&!ht.isBuffer(St)&&(St=function(Ot){return ht.from(Ot)}(St)),typeof Tt=="function"&&(Bt=Tt,Tt=null),Nt?Tt="buffer":Tt||(Tt=Ct.defaultEncoding),typeof Bt!="function"&&(Bt=gt),Ct.ended?function(Ot,Jt){var Dt=new Error("write after end");Ot.emit("error",Dt),it.nextTick(Jt,Dt)}(this,Bt):(Nt||function(Ot,Jt,Dt,Et){var Pt=!0,zt=!1;return Dt===null?zt=new TypeError("May not write null values to stream"):typeof Dt=="string"||Dt===void 0||Jt.objectMode||(zt=new TypeError("Invalid non-string/buffer chunk")),zt&&(Ot.emit("error",zt),it.nextTick(Et,zt),Pt=!1),Pt}(this,Ct,St,Bt))&&(Ct.pendingcb++,kt=function(Ot,Jt,Dt,Et,Pt,zt){if(!Dt){var en=function(jt,Vt,It){return jt.objectMode||jt.decodeStrings===!1||typeof Vt!="string"||(Vt=ht.from(Vt,It)),Vt}(Jt,Et,Pt);Et!==en&&(Dt=!0,Pt="buffer",Et=en)}var Kt=Jt.objectMode?1:Et.length;Jt.length+=Kt;var nn=Jt.length-1))throw new TypeError("Unknown encoding: "+St);return this._writableState.defaultEncoding=St,this},Object.defineProperty(Ut.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Ut.prototype._write=function(St,Tt,Bt){Bt(new Error("_write() is not implemented"))},Ut.prototype._writev=null,Ut.prototype.end=function(St,Tt,Bt){var xt=this._writableState;typeof St=="function"?(Bt=St,St=null,Tt=null):typeof Tt=="function"&&(Bt=Tt,Tt=null),St!=null&&this.write(St,Tt),xt.corked&&(xt.corked=1,this.uncork()),xt.ending||xt.finished||function(Ct,kt,Nt){kt.ending=!0,Rt(Ct,kt),Nt&&(kt.finished?it.nextTick(Nt):Ct.once("finish",Nt)),kt.ended=!0,Ct.writable=!1}(this,xt,Bt)},Object.defineProperty(Ut.prototype,"destroyed",{get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(St){this._writableState&&(this._writableState.destroyed=St)}}),Ut.prototype.destroy=ft.destroy,Ut.prototype._undestroy=ft.undestroy,Ut.prototype._destroy=function(St,Tt){this.end(),Tt(St)}}).call(this,et(2),et(15).setImmediate,et(6))},function(s,o,et){var tt=et(26).codes.ERR_STREAM_PREMATURE_CLOSE;function nt(){}s.exports=function rt(it,ot,st){if(typeof ot=="function")return rt(it,null,ot);ot||(ot={}),st=function(Ut){var Ft=!1;return function(){if(!Ft){Ft=!0;for(var mt=arguments.length,vt=new Array(mt),At=0;At=0;lt--){var ut=ot[lt];ut==="."?ot.splice(lt,1):ut===".."?(ot.splice(lt,1),at++):at&&(ot.splice(lt,1),at--)}if(st)for(;at--;at)ot.unshift("..");return ot}function rt(ot,st){if(ot.filter)return ot.filter(st);for(var at=[],lt=0;lt=-1&&!st;at--){var lt=at>=0?arguments[at]:tt.cwd();if(typeof lt!="string")throw new TypeError("Arguments to path.resolve must be strings");lt&&(ot=lt+"/"+ot,st=lt.charAt(0)==="/")}return(st?"/":"")+(ot=nt(rt(ot.split("/"),function(ut){return!!ut}),!st).join("/"))||"."},o.normalize=function(ot){var st=o.isAbsolute(ot),at=it(ot,-1)==="/";return(ot=nt(rt(ot.split("/"),function(lt){return!!lt}),!st).join("/"))||st||(ot="."),ot&&at&&(ot+="/"),(st?"/":"")+ot},o.isAbsolute=function(ot){return ot.charAt(0)==="/"},o.join=function(){var ot=Array.prototype.slice.call(arguments,0);return o.normalize(rt(ot,function(st,at){if(typeof st!="string")throw new TypeError("Arguments to path.join must be strings");return st}).join("/"))},o.relative=function(ot,st){function at(ft){for(var gt=0;gt=0&&ft[yt]==="";yt--);return gt>yt?[]:ft.slice(gt,yt-gt+1)}ot=o.resolve(ot).substr(1),st=o.resolve(st).substr(1);for(var lt=at(ot.split("/")),ut=at(st.split("/")),dt=Math.min(lt.length,ut.length),ht=dt,ct=0;ct=1;--dt)if((st=ot.charCodeAt(dt))===47){if(!ut){lt=dt;break}}else ut=!1;return lt===-1?at?"/":".":at&<===1?"/":ot.slice(0,lt)},o.basename=function(ot,st){var at=function(lt){typeof lt!="string"&&(lt+="");var ut,dt=0,ht=-1,ct=!0;for(ut=lt.length-1;ut>=0;--ut)if(lt.charCodeAt(ut)===47){if(!ct){dt=ut+1;break}}else ht===-1&&(ct=!1,ht=ut+1);return ht===-1?"":lt.slice(dt,ht)}(ot);return st&&at.substr(-1*st.length)===st&&(at=at.substr(0,at.length-st.length)),at},o.extname=function(ot){typeof ot!="string"&&(ot+="");for(var st=-1,at=0,lt=-1,ut=!0,dt=0,ht=ot.length-1;ht>=0;--ht){var ct=ot.charCodeAt(ht);if(ct!==47)lt===-1&&(ut=!1,lt=ht+1),ct===46?st===-1?st=ht:dt!==1&&(dt=1):st!==-1&&(dt=-1);else if(!ut){at=ht+1;break}}return st===-1||lt===-1||dt===0||dt===1&&st===lt-1&&st===at+1?"":ot.slice(st,lt)};var it="ab".substr(-1)==="b"?function(ot,st,at){return ot.substr(st,at)}:function(ot,st,at){return st<0&&(st=ot.length+st),ot.substr(st,at)}}).call(this,et(2))},,function(s,o,et){var tt=o.format=et(12);o.levels=et(105),Object.defineProperty(tt,"align",{value:et(122)}),Object.defineProperty(tt,"cli",{value:et(123)}),Object.defineProperty(tt,"combine",{value:et(124)}),Object.defineProperty(tt,"colorize",{value:et(41)}),Object.defineProperty(tt,"json",{value:et(125)}),Object.defineProperty(tt,"label",{value:et(128)}),Object.defineProperty(tt,"logstash",{value:et(129)}),Object.defineProperty(tt,"metadata",{value:et(130)}),Object.defineProperty(tt,"padLevels",{value:et(60)}),Object.defineProperty(tt,"prettyPrint",{value:et(131)}),Object.defineProperty(tt,"printf",{value:et(132)}),Object.defineProperty(tt,"simple",{value:et(133)}),Object.defineProperty(tt,"splat",{value:et(134)}),Object.defineProperty(tt,"timestamp",{value:et(135)}),Object.defineProperty(tt,"uncolorize",{value:et(137)})},function(s,o,et){var tt=et(106);s.exports=tt},function(s,o,et){function tt(dt){return function(ht){if(Array.isArray(ht))return nt(ht)}(dt)||function(ht){if(typeof Symbol<"u"&&Symbol.iterator in Object(ht))return Array.from(ht)}(dt)||function(ht,ct){if(ht){if(typeof ht=="string")return nt(ht,ct);var pt=Object.prototype.toString.call(ht).slice(8,-1);if(pt==="Object"&&ht.constructor&&(pt=ht.constructor.name),pt==="Map"||pt==="Set")return Array.from(ht);if(pt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(pt))return nt(ht,ct)}}(dt)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function nt(dt,ht){(ht==null||ht>dt.length)&&(ht=dt.length);for(var ct=0,pt=new Array(ht);ct0&&arguments[0]!==void 0?arguments[0]:{levels:st.npm.levels};rt(this,dt),this.paddings=dt.paddingForLevels(ft.levels,ft.filler),this.options=ft}var ht,ct,pt;return ht=dt,pt=[{key:"getLongestLevel",value:function(ft){var gt=Object.keys(ft).map(function(yt){return yt.length});return Math.max.apply(Math,tt(gt))}},{key:"paddingForLevel",value:function(ft,gt,yt){var Ut=yt+1-ft.length,Ft=Math.floor(Ut/gt.length);return"".concat(gt).concat(gt.repeat(Ft)).slice(0,Ut)}},{key:"paddingForLevels",value:function(ft){var gt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:" ",yt=dt.getLongestLevel(ft);return Object.keys(ft).reduce(function(Ut,Ft){return Ut[Ft]=dt.paddingForLevel(Ft,gt,yt),Ut},{})}}],(ct=[{key:"transform",value:function(ft,gt){return ft.message="".concat(this.paddings[ft[at]]).concat(ft.message),ft[lt]&&(ft[lt]="".concat(this.paddings[ft[at]]).concat(ft[lt])),ft}}])&&it(ht.prototype,ct),pt&&it(ht,pt),dt}();s.exports=function(dt){return new ut(dt)},s.exports.Padder=s.exports.Format=ut},function(s,o,et){var tt=et(13).format;o.warn={deprecated:function(nt){return function(){throw new Error(tt("{ %s } was removed in winston@3.0.0.",nt))}},useFormat:function(nt){return function(){throw new Error([tt("{ %s } was removed in winston@3.0.0.",nt),"Use a custom winston.format = winston.format(function) instead."].join(` `))}},forFunctions:function(nt,rt,it){it.forEach(function(ot){nt[ot]=o.warn[rt](ot)})},moved:function(nt,rt,it){function ot(){return function(){throw new Error([tt("winston.%s was moved in winston@3.0.0.",it),tt("Use a winston.%s instead.",rt)].join(` -`))}}Object.defineProperty(nt,it,{get:ot,set:ot})},forProperties:function(nt,rt,it){it.forEach(function(ot){var st=o.warn[rt](ot);Object.defineProperty(nt,ot,{get:st,set:st})})}}},function(s,o,et){(function(tt,nt,rt){var it=et(16);function ot(St){var Tt=this;this.next=null,this.entry=null,this.finish=function(){(function(Bt,xt,Ct){var kt=Bt.entry;for(Bt.entry=null;kt;){var Nt=kt.callback;xt.pendingcb--,Nt(Ct),kt=kt.next}xt.corkedRequestsFree?xt.corkedRequestsFree.next=Bt:xt.corkedRequestsFree=Bt})(Tt,St)}}s.exports=Ut;var st,at=!tt.browser&&["v0.10","v0.9."].indexOf(tt.version.slice(0,5))>-1?nt:it.nextTick;Ut.WritableState=yt;var lt=Object.create(et(17));lt.inherits=et(7);var ut={deprecate:et(43)},dt=et(63),ht=et(44).Buffer,ct=rt.Uint8Array||function(){},pt,ft=et(64);function gt(){}function yt(St,Tt){st=st||et(36),St=St||{};var Bt=Tt instanceof st;this.objectMode=!!St.objectMode,Bt&&(this.objectMode=this.objectMode||!!St.writableObjectMode);var xt=St.highWaterMark,Ct=St.writableHighWaterMark,kt=this.objectMode?16:16384;this.highWaterMark=xt||xt===0?xt:Bt&&(Ct||Ct===0)?Ct:kt,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Nt=St.decodeStrings===!1;this.decodeStrings=!Nt,this.defaultEncoding=St.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Ot){(function(Wt,Dt){var Et=Wt._writableState,Pt=Et.sync,zt=Et.writecb;if(function(Kt){Kt.writing=!1,Kt.writecb=null,Kt.length-=Kt.writelen,Kt.writelen=0}(Et),Dt)(function(Kt,nn,Zt,jt,Vt){--nn.pendingcb,Zt?(it.nextTick(Vt,jt),it.nextTick(Rt,Kt,nn),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt)):(Vt(jt),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt),Rt(Kt,nn))})(Wt,Et,Pt,Dt,zt);else{var en=At(Et);en||Et.corked||Et.bufferProcessing||!Et.bufferedRequest||vt(Wt,Et),Pt?at(mt,Wt,Et,en,zt):mt(Wt,Et,en,zt)}})(Tt,Ot)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new ot(this)}function Ut(St){if(st=st||et(36),!(pt.call(Ut,this)||this instanceof st))return new Ut(St);this._writableState=new yt(St,this),this.writable=!0,St&&(typeof St.write=="function"&&(this._write=St.write),typeof St.writev=="function"&&(this._writev=St.writev),typeof St.destroy=="function"&&(this._destroy=St.destroy),typeof St.final=="function"&&(this._final=St.final)),dt.call(this)}function Ft(St,Tt,Bt,xt,Ct,kt,Nt){Tt.writelen=xt,Tt.writecb=Nt,Tt.writing=!0,Tt.sync=!0,Bt?St._writev(Ct,Tt.onwrite):St._write(Ct,kt,Tt.onwrite),Tt.sync=!1}function mt(St,Tt,Bt,xt){Bt||function(Ct,kt){kt.length===0&&kt.needDrain&&(kt.needDrain=!1,Ct.emit("drain"))}(St,Tt),Tt.pendingcb--,xt(),Rt(St,Tt)}function vt(St,Tt){Tt.bufferProcessing=!0;var Bt=Tt.bufferedRequest;if(St._writev&&Bt&&Bt.next){var xt=Tt.bufferedRequestCount,Ct=new Array(xt),kt=Tt.corkedRequestsFree;kt.entry=Bt;for(var Nt=0,Ot=!0;Bt;)Ct[Nt]=Bt,Bt.isBuf||(Ot=!1),Bt=Bt.next,Nt+=1;Ct.allBuffers=Ot,Ft(St,Tt,!0,Tt.length,Ct,"",kt.finish),Tt.pendingcb++,Tt.lastBufferedRequest=null,kt.next?(Tt.corkedRequestsFree=kt.next,kt.next=null):Tt.corkedRequestsFree=new ot(Tt),Tt.bufferedRequestCount=0}else{for(;Bt;){var Wt=Bt.chunk,Dt=Bt.encoding,Et=Bt.callback;if(Ft(St,Tt,!1,Tt.objectMode?1:Wt.length,Wt,Dt,Et),Bt=Bt.next,Tt.bufferedRequestCount--,Tt.writing)break}Bt===null&&(Tt.lastBufferedRequest=null)}Tt.bufferedRequest=Bt,Tt.bufferProcessing=!1}function At(St){return St.ending&&St.length===0&&St.bufferedRequest===null&&!St.finished&&!St.writing}function Lt(St,Tt){St._final(function(Bt){Tt.pendingcb--,Bt&&St.emit("error",Bt),Tt.prefinished=!0,St.emit("prefinish"),Rt(St,Tt)})}function Rt(St,Tt){var Bt=At(Tt);return Bt&&(function(xt,Ct){Ct.prefinished||Ct.finalCalled||(typeof xt._final=="function"?(Ct.pendingcb++,Ct.finalCalled=!0,it.nextTick(Lt,xt,Ct)):(Ct.prefinished=!0,xt.emit("prefinish")))}(St,Tt),Tt.pendingcb===0&&(Tt.finished=!0,St.emit("finish"))),Bt}lt.inherits(Ut,dt),yt.prototype.getBuffer=function(){for(var St=this.bufferedRequest,Tt=[];St;)Tt.push(St),St=St.next;return Tt},function(){try{Object.defineProperty(yt.prototype,"buffer",{get:ut.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(pt=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ut,Symbol.hasInstance,{value:function(St){return!!pt.call(this,St)||this===Ut&&St&&St._writableState instanceof yt}})):pt=function(St){return St instanceof this},Ut.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Ut.prototype.write=function(St,Tt,Bt){var xt,Ct=this._writableState,kt=!1,Nt=!Ct.objectMode&&(xt=St,ht.isBuffer(xt)||xt instanceof ct);return Nt&&!ht.isBuffer(St)&&(St=function(Ot){return ht.from(Ot)}(St)),typeof Tt=="function"&&(Bt=Tt,Tt=null),Nt?Tt="buffer":Tt||(Tt=Ct.defaultEncoding),typeof Bt!="function"&&(Bt=gt),Ct.ended?function(Ot,Wt){var Dt=new Error("write after end");Ot.emit("error",Dt),it.nextTick(Wt,Dt)}(this,Bt):(Nt||function(Ot,Wt,Dt,Et){var Pt=!0,zt=!1;return Dt===null?zt=new TypeError("May not write null values to stream"):typeof Dt=="string"||Dt===void 0||Wt.objectMode||(zt=new TypeError("Invalid non-string/buffer chunk")),zt&&(Ot.emit("error",zt),it.nextTick(Et,zt),Pt=!1),Pt}(this,Ct,St,Bt))&&(Ct.pendingcb++,kt=function(Ot,Wt,Dt,Et,Pt,zt){if(!Dt){var en=function(jt,Vt,It){return jt.objectMode||jt.decodeStrings===!1||typeof Vt!="string"||(Vt=ht.from(Vt,It)),Vt}(Wt,Et,Pt);Et!==en&&(Dt=!0,Pt="buffer",Et=en)}var Kt=Wt.objectMode?1:Et.length;Wt.length+=Kt;var nn=Wt.length-1))throw new TypeError("Unknown encoding: "+St);return this._writableState.defaultEncoding=St,this},Object.defineProperty(Ut.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Ut.prototype._write=function(St,Tt,Bt){Bt(new Error("_write() is not implemented"))},Ut.prototype._writev=null,Ut.prototype.end=function(St,Tt,Bt){var xt=this._writableState;typeof St=="function"?(Bt=St,St=null,Tt=null):typeof Tt=="function"&&(Bt=Tt,Tt=null),St!=null&&this.write(St,Tt),xt.corked&&(xt.corked=1,this.uncork()),xt.ending||xt.finished||function(Ct,kt,Nt){kt.ending=!0,Rt(Ct,kt),Nt&&(kt.finished?it.nextTick(Nt):Ct.once("finish",Nt)),kt.ended=!0,Ct.writable=!1}(this,xt,Bt)},Object.defineProperty(Ut.prototype,"destroyed",{get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(St){this._writableState&&(this._writableState.destroyed=St)}}),Ut.prototype.destroy=ft.destroy,Ut.prototype._undestroy=ft.undestroy,Ut.prototype._destroy=function(St,Tt){this.end(),Tt(St)}}).call(this,et(2),et(15).setImmediate,et(6))},function(s,o,et){s.exports=et(21).EventEmitter},function(s,o,et){var tt=et(16);function nt(rt,it){rt.emit("error",it)}s.exports={destroy:function(rt,it){var ot=this,st=this._readableState&&this._readableState.destroyed,at=this._writableState&&this._writableState.destroyed;return st||at?(it?it(rt):!rt||this._writableState&&this._writableState.errorEmitted||tt.nextTick(nt,this,rt),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(rt||null,function(lt){!it&<?(tt.nextTick(nt,ot,lt),ot._writableState&&(ot._writableState.errorEmitted=!0)):it&&it(lt)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(s,o){},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(156)),nt=it(et(25)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)(function(ot,st,at,lt){return(0,tt.default)(st)(ot,(0,nt.default)(at),lt)},4),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){function nt(...rt){if(tt!==null){var it=tt;tt=null,it.apply(this,rt)}}return Object.assign(nt,tt),nt},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){if(tt===null)throw new Error("Callback was already called.");var rt=tt;tt=null,rt.apply(this,nt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){var rt=et(16);s.exports=Ft;var it,ot=et(42);Ft.ReadableState=Ut,et(21).EventEmitter;var st=function(Dt,Et){return Dt.listeners(Et).length},at=et(70),lt=et(47).Buffer,ut=tt.Uint8Array||function(){},dt=et(17);dt.inherits=et(7);var ht=et(162),ct=void 0;ct=ht&&ht.debuglog?ht.debuglog("stream"):function(){};var pt,ft=et(163),gt=et(71);dt.inherits(Ft,at);var yt=["error","close","destroy","pause","resume"];function Ut(Dt,Et){Dt=Dt||{};var Pt=Et instanceof(it=it||et(23));this.objectMode=!!Dt.objectMode,Pt&&(this.objectMode=this.objectMode||!!Dt.readableObjectMode);var zt=Dt.highWaterMark,en=Dt.readableHighWaterMark,Kt=this.objectMode?16:16384;this.highWaterMark=zt||zt===0?zt:Pt&&(en||en===0)?en:Kt,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new ft,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=Dt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Dt.encoding&&(pt||(pt=et(22).StringDecoder),this.decoder=new pt(Dt.encoding),this.encoding=Dt.encoding)}function Ft(Dt){if(it=it||et(23),!(this instanceof Ft))return new Ft(Dt);this._readableState=new Ut(Dt,this),this.readable=!0,Dt&&(typeof Dt.read=="function"&&(this._read=Dt.read),typeof Dt.destroy=="function"&&(this._destroy=Dt.destroy)),at.call(this)}function mt(Dt,Et,Pt,zt,en){var Kt,nn=Dt._readableState;return Et===null?(nn.reading=!1,function(Zt,jt){if(!jt.ended){if(jt.decoder){var Vt=jt.decoder.end();Vt&&Vt.length&&(jt.buffer.push(Vt),jt.length+=jt.objectMode?1:Vt.length)}jt.ended=!0,Lt(Zt)}}(Dt,nn)):(en||(Kt=function(Zt,jt){var Vt;It=jt,lt.isBuffer(It)||It instanceof ut||typeof jt=="string"||jt===void 0||Zt.objectMode||(Vt=new TypeError("Invalid non-string/buffer chunk"));var It;return Vt}(nn,Et)),Kt?Dt.emit("error",Kt):nn.objectMode||Et&&Et.length>0?(typeof Et=="string"||nn.objectMode||Object.getPrototypeOf(Et)===lt.prototype||(Et=function(Zt){return lt.from(Zt)}(Et)),zt?nn.endEmitted?Dt.emit("error",new Error("stream.unshift() after end event")):vt(Dt,nn,Et,!0):nn.ended?Dt.emit("error",new Error("stream.push() after EOF")):(nn.reading=!1,nn.decoder&&!Pt?(Et=nn.decoder.write(Et),nn.objectMode||Et.length!==0?vt(Dt,nn,Et,!1):St(Dt,nn)):vt(Dt,nn,Et,!1))):zt||(nn.reading=!1)),function(Zt){return!Zt.ended&&(Zt.needReadable||Zt.lengthEt.highWaterMark&&(Et.highWaterMark=function(Pt){return Pt>=8388608?Pt=8388608:(Pt--,Pt|=Pt>>>1,Pt|=Pt>>>2,Pt|=Pt>>>4,Pt|=Pt>>>8,Pt|=Pt>>>16,Pt++),Pt}(Dt)),Dt<=Et.length?Dt:Et.ended?Et.length:(Et.needReadable=!0,0))}function Lt(Dt){var Et=Dt._readableState;Et.needReadable=!1,Et.emittedReadable||(ct("emitReadable",Et.flowing),Et.emittedReadable=!0,Et.sync?rt.nextTick(Rt,Dt):Rt(Dt))}function Rt(Dt){ct("emit readable"),Dt.emit("readable"),Ct(Dt)}function St(Dt,Et){Et.readingMore||(Et.readingMore=!0,rt.nextTick(Tt,Dt,Et))}function Tt(Dt,Et){for(var Pt=Et.length;!Et.reading&&!Et.flowing&&!Et.ended&&Et.length=Et.length?(Pt=Et.decoder?Et.buffer.join(""):Et.buffer.length===1?Et.buffer.head.data:Et.buffer.concat(Et.length),Et.buffer.clear()):Pt=function(zt,en,Kt){var nn;return ztHt.length?Ht.length:Zt;if(qt===Ht.length?$t+=Ht:$t+=Ht.slice(0,Zt),(Zt-=qt)===0){qt===Ht.length?(++It,Vt.next?jt.head=Vt.next:jt.head=jt.tail=null):(jt.head=Vt,Vt.data=Ht.slice(qt));break}++It}return jt.length-=It,$t}(zt,en):function(Zt,jt){var Vt=lt.allocUnsafe(Zt),It=jt.head,$t=1;for(It.data.copy(Vt),Zt-=It.data.length;It=It.next;){var Ht=It.data,qt=Zt>Ht.length?Ht.length:Zt;if(Ht.copy(Vt,Vt.length-Zt,0,qt),(Zt-=qt)===0){qt===Ht.length?(++$t,It.next?jt.head=It.next:jt.head=jt.tail=null):(jt.head=It,It.data=Ht.slice(qt));break}++$t}return jt.length-=$t,Vt}(zt,en),nn}(Dt,Et.buffer,Et.decoder),Pt);var Pt}function Nt(Dt){var Et=Dt._readableState;if(Et.length>0)throw new Error('"endReadable()" called on non-empty stream');Et.endEmitted||(Et.ended=!0,rt.nextTick(Ot,Et,Dt))}function Ot(Dt,Et){Dt.endEmitted||Dt.length!==0||(Dt.endEmitted=!0,Et.readable=!1,Et.emit("end"))}function Wt(Dt,Et){for(var Pt=0,zt=Dt.length;Pt=Et.highWaterMark||Et.ended))return ct("read: emitReadable",Et.length,Et.ended),Et.length===0&&Et.ended?Nt(this):Lt(this),null;if((Dt=At(Dt,Et))===0&&Et.ended)return Et.length===0&&Nt(this),null;var zt,en=Et.needReadable;return ct("need readable",en),(Et.length===0||Et.length-Dt0?kt(Dt,Et):null)===null?(Et.needReadable=!0,Dt=0):Et.length-=Dt,Et.length===0&&(Et.ended||(Et.needReadable=!0),Pt!==Dt&&Et.ended&&Nt(this)),zt!==null&&this.emit("data",zt),zt},Ft.prototype._read=function(Dt){this.emit("error",new Error("_read() is not implemented"))},Ft.prototype.pipe=function(Dt,Et){var Pt=this,zt=this._readableState;switch(zt.pipesCount){case 0:zt.pipes=Dt;break;case 1:zt.pipes=[zt.pipes,Dt];break;default:zt.pipes.push(Dt)}zt.pipesCount+=1,ct("pipe count=%d opts=%j",zt.pipesCount,Et);var en=(!Et||Et.end!==!1)&&Dt!==nt.stdout&&Dt!==nt.stderr?nn:on;function Kt(Xt,dn){ct("onunpipe"),Xt===Pt&&dn&&dn.hasUnpiped===!1&&(dn.hasUnpiped=!0,ct("cleanup"),Dt.removeListener("close",Ht),Dt.removeListener("finish",qt),Dt.removeListener("drain",Zt),Dt.removeListener("error",$t),Dt.removeListener("unpipe",Kt),Pt.removeListener("end",nn),Pt.removeListener("end",on),Pt.removeListener("data",It),jt=!0,!zt.awaitDrain||Dt._writableState&&!Dt._writableState.needDrain||Zt())}function nn(){ct("onend"),Dt.end()}zt.endEmitted?rt.nextTick(en):Pt.once("end",en),Dt.on("unpipe",Kt);var Zt=function(Xt){return function(){var dn=Xt._readableState;ct("pipeOnDrain",dn.awaitDrain),dn.awaitDrain&&dn.awaitDrain--,dn.awaitDrain===0&&st(Xt,"data")&&(dn.flowing=!0,Ct(Xt))}}(Pt);Dt.on("drain",Zt);var jt=!1,Vt=!1;function It(Xt){ct("ondata"),Vt=!1,Dt.write(Xt)!==!1||Vt||((zt.pipesCount===1&&zt.pipes===Dt||zt.pipesCount>1&&Wt(zt.pipes,Dt)!==-1)&&!jt&&(ct("false write response, pause",Pt._readableState.awaitDrain),Pt._readableState.awaitDrain++,Vt=!0),Pt.pause())}function $t(Xt){ct("onerror",Xt),on(),Dt.removeListener("error",$t),st(Dt,"error")===0&&Dt.emit("error",Xt)}function Ht(){Dt.removeListener("finish",qt),on()}function qt(){ct("onfinish"),Dt.removeListener("close",Ht),on()}function on(){ct("unpipe"),Pt.unpipe(Dt)}return Pt.on("data",It),function(Xt,dn,_n){if(typeof Xt.prependListener=="function")return Xt.prependListener(dn,_n);Xt._events&&Xt._events[dn]?ot(Xt._events[dn])?Xt._events[dn].unshift(_n):Xt._events[dn]=[_n,Xt._events[dn]]:Xt.on(dn,_n)}(Dt,"error",$t),Dt.once("close",Ht),Dt.once("finish",qt),Dt.emit("pipe",Pt),zt.flowing||(ct("pipe resume"),Pt.resume()),Dt},Ft.prototype.unpipe=function(Dt){var Et=this._readableState,Pt={hasUnpiped:!1};if(Et.pipesCount===0)return this;if(Et.pipesCount===1)return Dt&&Dt!==Et.pipes||(Dt||(Dt=Et.pipes),Et.pipes=null,Et.pipesCount=0,Et.flowing=!1,Dt&&Dt.emit("unpipe",this,Pt)),this;if(!Dt){var zt=Et.pipes,en=Et.pipesCount;Et.pipes=null,Et.pipesCount=0,Et.flowing=!1;for(var Kt=0;Kt=0;Pt--)if(zt[Pt]!==en[Pt])return!1;for(Pt=zt.length-1;Pt>=0;Pt--)if(Et=zt[Pt],!Ft(Ct[Et],kt[Et],Nt,Ot))return!1;return!0}(Rt,St,Tt,Bt))}return Tt?Rt===St:Rt==St}function mt(Rt){return Object.prototype.toString.call(Rt)=="[object Arguments]"}function vt(Rt,St){if(!Rt||!St)return!1;if(Object.prototype.toString.call(St)=="[object RegExp]")return St.test(Rt);try{if(Rt instanceof St)return!0}catch{}return!Error.isPrototypeOf(St)&&St.call({},Rt)===!0}function At(Rt,St,Tt,Bt){var xt;if(typeof St!="function")throw new TypeError('"block" argument must be a function');typeof Tt=="string"&&(Bt=Tt,Tt=null),xt=function(Nt){var Ot;try{Nt()}catch(Wt){Ot=Wt}return Ot}(St),Bt=(Tt&&Tt.name?" ("+Tt.name+").":".")+(Bt?" "+Bt:"."),Rt&&!xt&&yt(xt,Tt,"Missing expected exception"+Bt);var Ct=typeof Bt=="string",kt=!Rt&&xt&&!Tt;if((!Rt&&ot.isError(xt)&&Ct&&vt(xt,Tt)||kt)&&yt(xt,Tt,"Got unwanted exception"+Bt),Rt&&xt&&Tt&&!vt(xt,Tt)||!Rt&&xt)throw xt}ht.AssertionError=function(Rt){this.name="AssertionError",this.actual=Rt.actual,this.expected=Rt.expected,this.operator=Rt.operator,Rt.message?(this.message=Rt.message,this.generatedMessage=!1):(this.message=function(Nt){return ft(gt(Nt.actual),128)+" "+Nt.operator+" "+ft(gt(Nt.expected),128)}(this),this.generatedMessage=!0);var St=Rt.stackStartFunction||yt;if(Error.captureStackTrace)Error.captureStackTrace(this,St);else{var Tt=new Error;if(Tt.stack){var Bt=Tt.stack,xt=pt(St),Ct=Bt.indexOf(` +`))}}Object.defineProperty(nt,it,{get:ot,set:ot})},forProperties:function(nt,rt,it){it.forEach(function(ot){var st=o.warn[rt](ot);Object.defineProperty(nt,ot,{get:st,set:st})})}}},function(s,o,et){(function(tt,nt,rt){var it=et(16);function ot(St){var Tt=this;this.next=null,this.entry=null,this.finish=function(){(function(Bt,xt,Ct){var kt=Bt.entry;for(Bt.entry=null;kt;){var Nt=kt.callback;xt.pendingcb--,Nt(Ct),kt=kt.next}xt.corkedRequestsFree?xt.corkedRequestsFree.next=Bt:xt.corkedRequestsFree=Bt})(Tt,St)}}s.exports=Ut;var st,at=!tt.browser&&["v0.10","v0.9."].indexOf(tt.version.slice(0,5))>-1?nt:it.nextTick;Ut.WritableState=yt;var lt=Object.create(et(17));lt.inherits=et(7);var ut={deprecate:et(43)},dt=et(63),ht=et(44).Buffer,ct=rt.Uint8Array||function(){},pt,ft=et(64);function gt(){}function yt(St,Tt){st=st||et(36),St=St||{};var Bt=Tt instanceof st;this.objectMode=!!St.objectMode,Bt&&(this.objectMode=this.objectMode||!!St.writableObjectMode);var xt=St.highWaterMark,Ct=St.writableHighWaterMark,kt=this.objectMode?16:16384;this.highWaterMark=xt||xt===0?xt:Bt&&(Ct||Ct===0)?Ct:kt,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Nt=St.decodeStrings===!1;this.decodeStrings=!Nt,this.defaultEncoding=St.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Ot){(function(Jt,Dt){var Et=Jt._writableState,Pt=Et.sync,zt=Et.writecb;if(function(Kt){Kt.writing=!1,Kt.writecb=null,Kt.length-=Kt.writelen,Kt.writelen=0}(Et),Dt)(function(Kt,nn,Zt,jt,Vt){--nn.pendingcb,Zt?(it.nextTick(Vt,jt),it.nextTick(Rt,Kt,nn),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt)):(Vt(jt),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt),Rt(Kt,nn))})(Jt,Et,Pt,Dt,zt);else{var en=At(Et);en||Et.corked||Et.bufferProcessing||!Et.bufferedRequest||vt(Jt,Et),Pt?at(mt,Jt,Et,en,zt):mt(Jt,Et,en,zt)}})(Tt,Ot)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new ot(this)}function Ut(St){if(st=st||et(36),!(pt.call(Ut,this)||this instanceof st))return new Ut(St);this._writableState=new yt(St,this),this.writable=!0,St&&(typeof St.write=="function"&&(this._write=St.write),typeof St.writev=="function"&&(this._writev=St.writev),typeof St.destroy=="function"&&(this._destroy=St.destroy),typeof St.final=="function"&&(this._final=St.final)),dt.call(this)}function Ft(St,Tt,Bt,xt,Ct,kt,Nt){Tt.writelen=xt,Tt.writecb=Nt,Tt.writing=!0,Tt.sync=!0,Bt?St._writev(Ct,Tt.onwrite):St._write(Ct,kt,Tt.onwrite),Tt.sync=!1}function mt(St,Tt,Bt,xt){Bt||function(Ct,kt){kt.length===0&&kt.needDrain&&(kt.needDrain=!1,Ct.emit("drain"))}(St,Tt),Tt.pendingcb--,xt(),Rt(St,Tt)}function vt(St,Tt){Tt.bufferProcessing=!0;var Bt=Tt.bufferedRequest;if(St._writev&&Bt&&Bt.next){var xt=Tt.bufferedRequestCount,Ct=new Array(xt),kt=Tt.corkedRequestsFree;kt.entry=Bt;for(var Nt=0,Ot=!0;Bt;)Ct[Nt]=Bt,Bt.isBuf||(Ot=!1),Bt=Bt.next,Nt+=1;Ct.allBuffers=Ot,Ft(St,Tt,!0,Tt.length,Ct,"",kt.finish),Tt.pendingcb++,Tt.lastBufferedRequest=null,kt.next?(Tt.corkedRequestsFree=kt.next,kt.next=null):Tt.corkedRequestsFree=new ot(Tt),Tt.bufferedRequestCount=0}else{for(;Bt;){var Jt=Bt.chunk,Dt=Bt.encoding,Et=Bt.callback;if(Ft(St,Tt,!1,Tt.objectMode?1:Jt.length,Jt,Dt,Et),Bt=Bt.next,Tt.bufferedRequestCount--,Tt.writing)break}Bt===null&&(Tt.lastBufferedRequest=null)}Tt.bufferedRequest=Bt,Tt.bufferProcessing=!1}function At(St){return St.ending&&St.length===0&&St.bufferedRequest===null&&!St.finished&&!St.writing}function Lt(St,Tt){St._final(function(Bt){Tt.pendingcb--,Bt&&St.emit("error",Bt),Tt.prefinished=!0,St.emit("prefinish"),Rt(St,Tt)})}function Rt(St,Tt){var Bt=At(Tt);return Bt&&(function(xt,Ct){Ct.prefinished||Ct.finalCalled||(typeof xt._final=="function"?(Ct.pendingcb++,Ct.finalCalled=!0,it.nextTick(Lt,xt,Ct)):(Ct.prefinished=!0,xt.emit("prefinish")))}(St,Tt),Tt.pendingcb===0&&(Tt.finished=!0,St.emit("finish"))),Bt}lt.inherits(Ut,dt),yt.prototype.getBuffer=function(){for(var St=this.bufferedRequest,Tt=[];St;)Tt.push(St),St=St.next;return Tt},function(){try{Object.defineProperty(yt.prototype,"buffer",{get:ut.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(pt=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ut,Symbol.hasInstance,{value:function(St){return!!pt.call(this,St)||this===Ut&&St&&St._writableState instanceof yt}})):pt=function(St){return St instanceof this},Ut.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Ut.prototype.write=function(St,Tt,Bt){var xt,Ct=this._writableState,kt=!1,Nt=!Ct.objectMode&&(xt=St,ht.isBuffer(xt)||xt instanceof ct);return Nt&&!ht.isBuffer(St)&&(St=function(Ot){return ht.from(Ot)}(St)),typeof Tt=="function"&&(Bt=Tt,Tt=null),Nt?Tt="buffer":Tt||(Tt=Ct.defaultEncoding),typeof Bt!="function"&&(Bt=gt),Ct.ended?function(Ot,Jt){var Dt=new Error("write after end");Ot.emit("error",Dt),it.nextTick(Jt,Dt)}(this,Bt):(Nt||function(Ot,Jt,Dt,Et){var Pt=!0,zt=!1;return Dt===null?zt=new TypeError("May not write null values to stream"):typeof Dt=="string"||Dt===void 0||Jt.objectMode||(zt=new TypeError("Invalid non-string/buffer chunk")),zt&&(Ot.emit("error",zt),it.nextTick(Et,zt),Pt=!1),Pt}(this,Ct,St,Bt))&&(Ct.pendingcb++,kt=function(Ot,Jt,Dt,Et,Pt,zt){if(!Dt){var en=function(jt,Vt,It){return jt.objectMode||jt.decodeStrings===!1||typeof Vt!="string"||(Vt=ht.from(Vt,It)),Vt}(Jt,Et,Pt);Et!==en&&(Dt=!0,Pt="buffer",Et=en)}var Kt=Jt.objectMode?1:Et.length;Jt.length+=Kt;var nn=Jt.length-1))throw new TypeError("Unknown encoding: "+St);return this._writableState.defaultEncoding=St,this},Object.defineProperty(Ut.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Ut.prototype._write=function(St,Tt,Bt){Bt(new Error("_write() is not implemented"))},Ut.prototype._writev=null,Ut.prototype.end=function(St,Tt,Bt){var xt=this._writableState;typeof St=="function"?(Bt=St,St=null,Tt=null):typeof Tt=="function"&&(Bt=Tt,Tt=null),St!=null&&this.write(St,Tt),xt.corked&&(xt.corked=1,this.uncork()),xt.ending||xt.finished||function(Ct,kt,Nt){kt.ending=!0,Rt(Ct,kt),Nt&&(kt.finished?it.nextTick(Nt):Ct.once("finish",Nt)),kt.ended=!0,Ct.writable=!1}(this,xt,Bt)},Object.defineProperty(Ut.prototype,"destroyed",{get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(St){this._writableState&&(this._writableState.destroyed=St)}}),Ut.prototype.destroy=ft.destroy,Ut.prototype._undestroy=ft.undestroy,Ut.prototype._destroy=function(St,Tt){this.end(),Tt(St)}}).call(this,et(2),et(15).setImmediate,et(6))},function(s,o,et){s.exports=et(21).EventEmitter},function(s,o,et){var tt=et(16);function nt(rt,it){rt.emit("error",it)}s.exports={destroy:function(rt,it){var ot=this,st=this._readableState&&this._readableState.destroyed,at=this._writableState&&this._writableState.destroyed;return st||at?(it?it(rt):!rt||this._writableState&&this._writableState.errorEmitted||tt.nextTick(nt,this,rt),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(rt||null,function(lt){!it&<?(tt.nextTick(nt,ot,lt),ot._writableState&&(ot._writableState.errorEmitted=!0)):it&&it(lt)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(s,o){},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(156)),nt=it(et(25)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)(function(ot,st,at,lt){return(0,tt.default)(st)(ot,(0,nt.default)(at),lt)},4),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){function nt(...rt){if(tt!==null){var it=tt;tt=null,it.apply(this,rt)}}return Object.assign(nt,tt),nt},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){if(tt===null)throw new Error("Callback was already called.");var rt=tt;tt=null,rt.apply(this,nt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){var rt=et(16);s.exports=Ft;var it,ot=et(42);Ft.ReadableState=Ut,et(21).EventEmitter;var st=function(Dt,Et){return Dt.listeners(Et).length},at=et(70),lt=et(47).Buffer,ut=tt.Uint8Array||function(){},dt=et(17);dt.inherits=et(7);var ht=et(162),ct=void 0;ct=ht&&ht.debuglog?ht.debuglog("stream"):function(){};var pt,ft=et(163),gt=et(71);dt.inherits(Ft,at);var yt=["error","close","destroy","pause","resume"];function Ut(Dt,Et){Dt=Dt||{};var Pt=Et instanceof(it=it||et(23));this.objectMode=!!Dt.objectMode,Pt&&(this.objectMode=this.objectMode||!!Dt.readableObjectMode);var zt=Dt.highWaterMark,en=Dt.readableHighWaterMark,Kt=this.objectMode?16:16384;this.highWaterMark=zt||zt===0?zt:Pt&&(en||en===0)?en:Kt,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new ft,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=Dt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Dt.encoding&&(pt||(pt=et(22).StringDecoder),this.decoder=new pt(Dt.encoding),this.encoding=Dt.encoding)}function Ft(Dt){if(it=it||et(23),!(this instanceof Ft))return new Ft(Dt);this._readableState=new Ut(Dt,this),this.readable=!0,Dt&&(typeof Dt.read=="function"&&(this._read=Dt.read),typeof Dt.destroy=="function"&&(this._destroy=Dt.destroy)),at.call(this)}function mt(Dt,Et,Pt,zt,en){var Kt,nn=Dt._readableState;return Et===null?(nn.reading=!1,function(Zt,jt){if(!jt.ended){if(jt.decoder){var Vt=jt.decoder.end();Vt&&Vt.length&&(jt.buffer.push(Vt),jt.length+=jt.objectMode?1:Vt.length)}jt.ended=!0,Lt(Zt)}}(Dt,nn)):(en||(Kt=function(Zt,jt){var Vt;It=jt,lt.isBuffer(It)||It instanceof ut||typeof jt=="string"||jt===void 0||Zt.objectMode||(Vt=new TypeError("Invalid non-string/buffer chunk"));var It;return Vt}(nn,Et)),Kt?Dt.emit("error",Kt):nn.objectMode||Et&&Et.length>0?(typeof Et=="string"||nn.objectMode||Object.getPrototypeOf(Et)===lt.prototype||(Et=function(Zt){return lt.from(Zt)}(Et)),zt?nn.endEmitted?Dt.emit("error",new Error("stream.unshift() after end event")):vt(Dt,nn,Et,!0):nn.ended?Dt.emit("error",new Error("stream.push() after EOF")):(nn.reading=!1,nn.decoder&&!Pt?(Et=nn.decoder.write(Et),nn.objectMode||Et.length!==0?vt(Dt,nn,Et,!1):St(Dt,nn)):vt(Dt,nn,Et,!1))):zt||(nn.reading=!1)),function(Zt){return!Zt.ended&&(Zt.needReadable||Zt.lengthEt.highWaterMark&&(Et.highWaterMark=function(Pt){return Pt>=8388608?Pt=8388608:(Pt--,Pt|=Pt>>>1,Pt|=Pt>>>2,Pt|=Pt>>>4,Pt|=Pt>>>8,Pt|=Pt>>>16,Pt++),Pt}(Dt)),Dt<=Et.length?Dt:Et.ended?Et.length:(Et.needReadable=!0,0))}function Lt(Dt){var Et=Dt._readableState;Et.needReadable=!1,Et.emittedReadable||(ct("emitReadable",Et.flowing),Et.emittedReadable=!0,Et.sync?rt.nextTick(Rt,Dt):Rt(Dt))}function Rt(Dt){ct("emit readable"),Dt.emit("readable"),Ct(Dt)}function St(Dt,Et){Et.readingMore||(Et.readingMore=!0,rt.nextTick(Tt,Dt,Et))}function Tt(Dt,Et){for(var Pt=Et.length;!Et.reading&&!Et.flowing&&!Et.ended&&Et.length=Et.length?(Pt=Et.decoder?Et.buffer.join(""):Et.buffer.length===1?Et.buffer.head.data:Et.buffer.concat(Et.length),Et.buffer.clear()):Pt=function(zt,en,Kt){var nn;return ztHt.length?Ht.length:Zt;if(qt===Ht.length?$t+=Ht:$t+=Ht.slice(0,Zt),(Zt-=qt)===0){qt===Ht.length?(++It,Vt.next?jt.head=Vt.next:jt.head=jt.tail=null):(jt.head=Vt,Vt.data=Ht.slice(qt));break}++It}return jt.length-=It,$t}(zt,en):function(Zt,jt){var Vt=lt.allocUnsafe(Zt),It=jt.head,$t=1;for(It.data.copy(Vt),Zt-=It.data.length;It=It.next;){var Ht=It.data,qt=Zt>Ht.length?Ht.length:Zt;if(Ht.copy(Vt,Vt.length-Zt,0,qt),(Zt-=qt)===0){qt===Ht.length?(++$t,It.next?jt.head=It.next:jt.head=jt.tail=null):(jt.head=It,It.data=Ht.slice(qt));break}++$t}return jt.length-=$t,Vt}(zt,en),nn}(Dt,Et.buffer,Et.decoder),Pt);var Pt}function Nt(Dt){var Et=Dt._readableState;if(Et.length>0)throw new Error('"endReadable()" called on non-empty stream');Et.endEmitted||(Et.ended=!0,rt.nextTick(Ot,Et,Dt))}function Ot(Dt,Et){Dt.endEmitted||Dt.length!==0||(Dt.endEmitted=!0,Et.readable=!1,Et.emit("end"))}function Jt(Dt,Et){for(var Pt=0,zt=Dt.length;Pt=Et.highWaterMark||Et.ended))return ct("read: emitReadable",Et.length,Et.ended),Et.length===0&&Et.ended?Nt(this):Lt(this),null;if((Dt=At(Dt,Et))===0&&Et.ended)return Et.length===0&&Nt(this),null;var zt,en=Et.needReadable;return ct("need readable",en),(Et.length===0||Et.length-Dt0?kt(Dt,Et):null)===null?(Et.needReadable=!0,Dt=0):Et.length-=Dt,Et.length===0&&(Et.ended||(Et.needReadable=!0),Pt!==Dt&&Et.ended&&Nt(this)),zt!==null&&this.emit("data",zt),zt},Ft.prototype._read=function(Dt){this.emit("error",new Error("_read() is not implemented"))},Ft.prototype.pipe=function(Dt,Et){var Pt=this,zt=this._readableState;switch(zt.pipesCount){case 0:zt.pipes=Dt;break;case 1:zt.pipes=[zt.pipes,Dt];break;default:zt.pipes.push(Dt)}zt.pipesCount+=1,ct("pipe count=%d opts=%j",zt.pipesCount,Et);var en=(!Et||Et.end!==!1)&&Dt!==nt.stdout&&Dt!==nt.stderr?nn:on;function Kt(Xt,dn){ct("onunpipe"),Xt===Pt&&dn&&dn.hasUnpiped===!1&&(dn.hasUnpiped=!0,ct("cleanup"),Dt.removeListener("close",Ht),Dt.removeListener("finish",qt),Dt.removeListener("drain",Zt),Dt.removeListener("error",$t),Dt.removeListener("unpipe",Kt),Pt.removeListener("end",nn),Pt.removeListener("end",on),Pt.removeListener("data",It),jt=!0,!zt.awaitDrain||Dt._writableState&&!Dt._writableState.needDrain||Zt())}function nn(){ct("onend"),Dt.end()}zt.endEmitted?rt.nextTick(en):Pt.once("end",en),Dt.on("unpipe",Kt);var Zt=function(Xt){return function(){var dn=Xt._readableState;ct("pipeOnDrain",dn.awaitDrain),dn.awaitDrain&&dn.awaitDrain--,dn.awaitDrain===0&&st(Xt,"data")&&(dn.flowing=!0,Ct(Xt))}}(Pt);Dt.on("drain",Zt);var jt=!1,Vt=!1;function It(Xt){ct("ondata"),Vt=!1,Dt.write(Xt)!==!1||Vt||((zt.pipesCount===1&&zt.pipes===Dt||zt.pipesCount>1&&Jt(zt.pipes,Dt)!==-1)&&!jt&&(ct("false write response, pause",Pt._readableState.awaitDrain),Pt._readableState.awaitDrain++,Vt=!0),Pt.pause())}function $t(Xt){ct("onerror",Xt),on(),Dt.removeListener("error",$t),st(Dt,"error")===0&&Dt.emit("error",Xt)}function Ht(){Dt.removeListener("finish",qt),on()}function qt(){ct("onfinish"),Dt.removeListener("close",Ht),on()}function on(){ct("unpipe"),Pt.unpipe(Dt)}return Pt.on("data",It),function(Xt,dn,_n){if(typeof Xt.prependListener=="function")return Xt.prependListener(dn,_n);Xt._events&&Xt._events[dn]?ot(Xt._events[dn])?Xt._events[dn].unshift(_n):Xt._events[dn]=[_n,Xt._events[dn]]:Xt.on(dn,_n)}(Dt,"error",$t),Dt.once("close",Ht),Dt.once("finish",qt),Dt.emit("pipe",Pt),zt.flowing||(ct("pipe resume"),Pt.resume()),Dt},Ft.prototype.unpipe=function(Dt){var Et=this._readableState,Pt={hasUnpiped:!1};if(Et.pipesCount===0)return this;if(Et.pipesCount===1)return Dt&&Dt!==Et.pipes||(Dt||(Dt=Et.pipes),Et.pipes=null,Et.pipesCount=0,Et.flowing=!1,Dt&&Dt.emit("unpipe",this,Pt)),this;if(!Dt){var zt=Et.pipes,en=Et.pipesCount;Et.pipes=null,Et.pipesCount=0,Et.flowing=!1;for(var Kt=0;Kt=0;Pt--)if(zt[Pt]!==en[Pt])return!1;for(Pt=zt.length-1;Pt>=0;Pt--)if(Et=zt[Pt],!Ft(Ct[Et],kt[Et],Nt,Ot))return!1;return!0}(Rt,St,Tt,Bt))}return Tt?Rt===St:Rt==St}function mt(Rt){return Object.prototype.toString.call(Rt)=="[object Arguments]"}function vt(Rt,St){if(!Rt||!St)return!1;if(Object.prototype.toString.call(St)=="[object RegExp]")return St.test(Rt);try{if(Rt instanceof St)return!0}catch{}return!Error.isPrototypeOf(St)&&St.call({},Rt)===!0}function At(Rt,St,Tt,Bt){var xt;if(typeof St!="function")throw new TypeError('"block" argument must be a function');typeof Tt=="string"&&(Bt=Tt,Tt=null),xt=function(Nt){var Ot;try{Nt()}catch(Jt){Ot=Jt}return Ot}(St),Bt=(Tt&&Tt.name?" ("+Tt.name+").":".")+(Bt?" "+Bt:"."),Rt&&!xt&&yt(xt,Tt,"Missing expected exception"+Bt);var Ct=typeof Bt=="string",kt=!Rt&&xt&&!Tt;if((!Rt&&ot.isError(xt)&&Ct&&vt(xt,Tt)||kt)&&yt(xt,Tt,"Got unwanted exception"+Bt),Rt&&xt&&Tt&&!vt(xt,Tt)||!Rt&&xt)throw xt}ht.AssertionError=function(Rt){this.name="AssertionError",this.actual=Rt.actual,this.expected=Rt.expected,this.operator=Rt.operator,Rt.message?(this.message=Rt.message,this.generatedMessage=!1):(this.message=function(Nt){return ft(gt(Nt.actual),128)+" "+Nt.operator+" "+ft(gt(Nt.expected),128)}(this),this.generatedMessage=!0);var St=Rt.stackStartFunction||yt;if(Error.captureStackTrace)Error.captureStackTrace(this,St);else{var Tt=new Error;if(Tt.stack){var Bt=Tt.stack,xt=pt(St),Ct=Bt.indexOf(` `+xt);if(Ct>=0){var kt=Bt.indexOf(` -`,Ct+1);Bt=Bt.substring(kt+1)}this.stack=Bt}}},ot.inherits(ht.AssertionError,Error),ht.fail=yt,ht.ok=Ut,ht.equal=function(Rt,St,Tt){Rt!=St&&yt(Rt,St,Tt,"==",ht.equal)},ht.notEqual=function(Rt,St,Tt){Rt==St&&yt(Rt,St,Tt,"!=",ht.notEqual)},ht.deepEqual=function(Rt,St,Tt){Ft(Rt,St,!1)||yt(Rt,St,Tt,"deepEqual",ht.deepEqual)},ht.deepStrictEqual=function(Rt,St,Tt){Ft(Rt,St,!0)||yt(Rt,St,Tt,"deepStrictEqual",ht.deepStrictEqual)},ht.notDeepEqual=function(Rt,St,Tt){Ft(Rt,St,!1)&&yt(Rt,St,Tt,"notDeepEqual",ht.notDeepEqual)},ht.notDeepStrictEqual=function Rt(St,Tt,Bt){Ft(St,Tt,!0)&&yt(St,Tt,Bt,"notDeepStrictEqual",Rt)},ht.strictEqual=function(Rt,St,Tt){Rt!==St&&yt(Rt,St,Tt,"===",ht.strictEqual)},ht.notStrictEqual=function(Rt,St,Tt){Rt===St&&yt(Rt,St,Tt,"!==",ht.notStrictEqual)},ht.throws=function(Rt,St,Tt){At(!0,Rt,St,Tt)},ht.doesNotThrow=function(Rt,St,Tt){At(!1,Rt,St,Tt)},ht.ifError=function(Rt){if(Rt)throw Rt},ht.strict=nt(function Rt(St,Tt){St||yt(St,!0,Tt,"==",Rt)},ht,{equal:ht.strictEqual,deepEqual:ht.deepStrictEqual,notEqual:ht.notStrictEqual,notDeepEqual:ht.notDeepStrictEqual}),ht.strict.strict=ht.strict;var Lt=Object.keys||function(Rt){var St=[];for(var Tt in Rt)st.call(Rt,Tt)&&St.push(Tt);return St}}).call(this,et(6))},function(s,o,et){s.exports=function(tt,nt,rt,it){for(var ot=65535&tt|0,st=tt>>>16&65535|0,at=0;rt!==0;){rt-=at=rt>2e3?2e3:rt;do st=st+(ot=ot+nt[it++]|0)|0;while(--at);ot%=65521,st%=65521}return ot|st<<16|0}},function(s,o,et){var tt=function(){for(var nt,rt=[],it=0;it<256;it++){nt=it;for(var ot=0;ot<8;ot++)nt=1&nt?3988292384^nt>>>1:nt>>>1;rt[it]=nt}return rt}();s.exports=function(nt,rt,it,ot){var st=tt,at=ot+it;nt^=-1;for(var lt=ot;lt>>8^st[255&(nt^rt[lt])];return-1^nt}},function(s,o,et){(function(tt,nt){var rt;s.exports=St,St.ReadableState=Rt,et(21).EventEmitter;var it=function(Zt,jt){return Zt.listeners(jt).length},ot=et(78),st=et(5).Buffer,at=tt.Uint8Array||function(){},lt,ut=et(179);lt=ut&&ut.debuglog?ut.debuglog("stream"):function(){};var dt,ht,ct,pt=et(180),ft=et(79),gt=et(80).getHighWaterMark,yt=et(26).codes,Ut=yt.ERR_INVALID_ARG_TYPE,Ft=yt.ERR_STREAM_PUSH_AFTER_EOF,mt=yt.ERR_METHOD_NOT_IMPLEMENTED,vt=yt.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;et(7)(St,ot);var At=ft.errorOrDestroy,Lt=["error","close","destroy","pause","resume"];function Rt(Zt,jt,Vt){rt=rt||et(27),Zt=Zt||{},typeof Vt!="boolean"&&(Vt=jt instanceof rt),this.objectMode=!!Zt.objectMode,Vt&&(this.objectMode=this.objectMode||!!Zt.readableObjectMode),this.highWaterMark=gt(this,Zt,"readableHighWaterMark",Vt),this.buffer=new pt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=Zt.emitClose!==!1,this.autoDestroy=!!Zt.autoDestroy,this.destroyed=!1,this.defaultEncoding=Zt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Zt.encoding&&(dt||(dt=et(22).StringDecoder),this.decoder=new dt(Zt.encoding),this.encoding=Zt.encoding)}function St(Zt){if(rt=rt||et(27),!(this instanceof St))return new St(Zt);var jt=this instanceof rt;this._readableState=new Rt(Zt,this,jt),this.readable=!0,Zt&&(typeof Zt.read=="function"&&(this._read=Zt.read),typeof Zt.destroy=="function"&&(this._destroy=Zt.destroy)),ot.call(this)}function Tt(Zt,jt,Vt,It,$t){lt("readableAddChunk",jt);var Ht,qt=Zt._readableState;if(jt===null)qt.reading=!1,function(on,Xt){if(lt("onEofChunk"),!Xt.ended){if(Xt.decoder){var dn=Xt.decoder.end();dn&&dn.length&&(Xt.buffer.push(dn),Xt.length+=Xt.objectMode?1:dn.length)}Xt.ended=!0,Xt.sync?Ct(on):(Xt.needReadable=!1,Xt.emittedReadable||(Xt.emittedReadable=!0,kt(on)))}}(Zt,qt);else if($t||(Ht=function(on,Xt){var dn;_n=Xt,st.isBuffer(_n)||_n instanceof at||typeof Xt=="string"||Xt===void 0||on.objectMode||(dn=new Ut("chunk",["string","Buffer","Uint8Array"],Xt));var _n;return dn}(qt,jt)),Ht)At(Zt,Ht);else if(qt.objectMode||jt&&jt.length>0)if(typeof jt=="string"||qt.objectMode||Object.getPrototypeOf(jt)===st.prototype||(jt=function(on){return st.from(on)}(jt)),It)qt.endEmitted?At(Zt,new vt):Bt(Zt,qt,jt,!0);else if(qt.ended)At(Zt,new Ft);else{if(qt.destroyed)return!1;qt.reading=!1,qt.decoder&&!Vt?(jt=qt.decoder.write(jt),qt.objectMode||jt.length!==0?Bt(Zt,qt,jt,!1):Nt(Zt,qt)):Bt(Zt,qt,jt,!1)}else It||(qt.reading=!1,Nt(Zt,qt));return!qt.ended&&(qt.lengthjt.highWaterMark&&(jt.highWaterMark=function(Vt){return Vt>=1073741824?Vt=1073741824:(Vt--,Vt|=Vt>>>1,Vt|=Vt>>>2,Vt|=Vt>>>4,Vt|=Vt>>>8,Vt|=Vt>>>16,Vt++),Vt}(Zt)),Zt<=jt.length?Zt:jt.ended?jt.length:(jt.needReadable=!0,0))}function Ct(Zt){var jt=Zt._readableState;lt("emitReadable",jt.needReadable,jt.emittedReadable),jt.needReadable=!1,jt.emittedReadable||(lt("emitReadable",jt.flowing),jt.emittedReadable=!0,nt.nextTick(kt,Zt))}function kt(Zt){var jt=Zt._readableState;lt("emitReadable_",jt.destroyed,jt.length,jt.ended),jt.destroyed||!jt.length&&!jt.ended||(Zt.emit("readable"),jt.emittedReadable=!1),jt.needReadable=!jt.flowing&&!jt.ended&&jt.length<=jt.highWaterMark,Pt(Zt)}function Nt(Zt,jt){jt.readingMore||(jt.readingMore=!0,nt.nextTick(Ot,Zt,jt))}function Ot(Zt,jt){for(;!jt.reading&&!jt.ended&&(jt.length0,jt.resumeScheduled&&!jt.paused?jt.flowing=!0:Zt.listenerCount("data")>0&&Zt.resume()}function Dt(Zt){lt("readable nexttick read 0"),Zt.read(0)}function Et(Zt,jt){lt("resume",jt.reading),jt.reading||Zt.read(0),jt.resumeScheduled=!1,Zt.emit("resume"),Pt(Zt),jt.flowing&&!jt.reading&&Zt.read(0)}function Pt(Zt){var jt=Zt._readableState;for(lt("flow",jt.flowing);jt.flowing&&Zt.read()!==null;);}function zt(Zt,jt){return jt.length===0?null:(jt.objectMode?Vt=jt.buffer.shift():!Zt||Zt>=jt.length?(Vt=jt.decoder?jt.buffer.join(""):jt.buffer.length===1?jt.buffer.first():jt.buffer.concat(jt.length),jt.buffer.clear()):Vt=jt.buffer.consume(Zt,jt.decoder),Vt);var Vt}function en(Zt){var jt=Zt._readableState;lt("endReadable",jt.endEmitted),jt.endEmitted||(jt.ended=!0,nt.nextTick(Kt,jt,Zt))}function Kt(Zt,jt){if(lt("endReadableNT",Zt.endEmitted,Zt.length),!Zt.endEmitted&&Zt.length===0&&(Zt.endEmitted=!0,jt.readable=!1,jt.emit("end"),Zt.autoDestroy)){var Vt=jt._writableState;(!Vt||Vt.autoDestroy&&Vt.finished)&&jt.destroy()}}function nn(Zt,jt){for(var Vt=0,It=Zt.length;Vt=jt.highWaterMark:jt.length>0)||jt.ended))return lt("read: emitReadable",jt.length,jt.ended),jt.length===0&&jt.ended?en(this):Ct(this),null;if((Zt=xt(Zt,jt))===0&&jt.ended)return jt.length===0&&en(this),null;var It,$t=jt.needReadable;return lt("need readable",$t),(jt.length===0||jt.length-Zt0?zt(Zt,jt):null)===null?(jt.needReadable=jt.length<=jt.highWaterMark,Zt=0):(jt.length-=Zt,jt.awaitDrain=0),jt.length===0&&(jt.ended||(jt.needReadable=!0),Vt!==Zt&&jt.ended&&en(this)),It!==null&&this.emit("data",It),It},St.prototype._read=function(Zt){At(this,new mt("_read()"))},St.prototype.pipe=function(Zt,jt){var Vt=this,It=this._readableState;switch(It.pipesCount){case 0:It.pipes=Zt;break;case 1:It.pipes=[It.pipes,Zt];break;default:It.pipes.push(Zt)}It.pipesCount+=1,lt("pipe count=%d opts=%j",It.pipesCount,jt);var $t=(!jt||jt.end!==!1)&&Zt!==nt.stdout&&Zt!==nt.stderr?qt:On;function Ht(gn,hn){lt("onunpipe"),gn===Vt&&hn&&hn.hasUnpiped===!1&&(hn.hasUnpiped=!0,lt("cleanup"),Zt.removeListener("close",Fn),Zt.removeListener("finish",Un),Zt.removeListener("drain",on),Zt.removeListener("error",_n),Zt.removeListener("unpipe",Ht),Vt.removeListener("end",qt),Vt.removeListener("end",On),Vt.removeListener("data",dn),Xt=!0,!It.awaitDrain||Zt._writableState&&!Zt._writableState.needDrain||on())}function qt(){lt("onend"),Zt.end()}It.endEmitted?nt.nextTick($t):Vt.once("end",$t),Zt.on("unpipe",Ht);var on=function(gn){return function(){var hn=gn._readableState;lt("pipeOnDrain",hn.awaitDrain),hn.awaitDrain&&hn.awaitDrain--,hn.awaitDrain===0&&it(gn,"data")&&(hn.flowing=!0,Pt(gn))}}(Vt);Zt.on("drain",on);var Xt=!1;function dn(gn){lt("ondata");var hn=Zt.write(gn);lt("dest.write",hn),hn===!1&&((It.pipesCount===1&&It.pipes===Zt||It.pipesCount>1&&nn(It.pipes,Zt)!==-1)&&!Xt&&(lt("false write response, pause",It.awaitDrain),It.awaitDrain++),Vt.pause())}function _n(gn){lt("onerror",gn),On(),Zt.removeListener("error",_n),it(Zt,"error")===0&&At(Zt,gn)}function Fn(){Zt.removeListener("finish",Un),On()}function Un(){lt("onfinish"),Zt.removeListener("close",Fn),On()}function On(){lt("unpipe"),Vt.unpipe(Zt)}return Vt.on("data",dn),function(gn,hn,wn){if(typeof gn.prependListener=="function")return gn.prependListener(hn,wn);gn._events&&gn._events[hn]?Array.isArray(gn._events[hn])?gn._events[hn].unshift(wn):gn._events[hn]=[wn,gn._events[hn]]:gn.on(hn,wn)}(Zt,"error",_n),Zt.once("close",Fn),Zt.once("finish",Un),Zt.emit("pipe",Vt),It.flowing||(lt("pipe resume"),Vt.resume()),Zt},St.prototype.unpipe=function(Zt){var jt=this._readableState,Vt={hasUnpiped:!1};if(jt.pipesCount===0)return this;if(jt.pipesCount===1)return Zt&&Zt!==jt.pipes||(Zt||(Zt=jt.pipes),jt.pipes=null,jt.pipesCount=0,jt.flowing=!1,Zt&&Zt.emit("unpipe",this,Vt)),this;if(!Zt){var It=jt.pipes,$t=jt.pipesCount;jt.pipes=null,jt.pipesCount=0,jt.flowing=!1;for(var Ht=0;Ht<$t;Ht++)It[Ht].emit("unpipe",this,{hasUnpiped:!1});return this}var qt=nn(jt.pipes,Zt);return qt===-1||(jt.pipes.splice(qt,1),jt.pipesCount-=1,jt.pipesCount===1&&(jt.pipes=jt.pipes[0]),Zt.emit("unpipe",this,Vt)),this},St.prototype.on=function(Zt,jt){var Vt=ot.prototype.on.call(this,Zt,jt),It=this._readableState;return Zt==="data"?(It.readableListening=this.listenerCount("readable")>0,It.flowing!==!1&&this.resume()):Zt==="readable"&&(It.endEmitted||It.readableListening||(It.readableListening=It.needReadable=!0,It.flowing=!1,It.emittedReadable=!1,lt("on readable",It.length,It.reading),It.length?Ct(this):It.reading||nt.nextTick(Dt,this))),Vt},St.prototype.addListener=St.prototype.on,St.prototype.removeListener=function(Zt,jt){var Vt=ot.prototype.removeListener.call(this,Zt,jt);return Zt==="readable"&&nt.nextTick(Wt,this),Vt},St.prototype.removeAllListeners=function(Zt){var jt=ot.prototype.removeAllListeners.apply(this,arguments);return Zt!=="readable"&&Zt!==void 0||nt.nextTick(Wt,this),jt},St.prototype.resume=function(){var Zt=this._readableState;return Zt.flowing||(lt("resume"),Zt.flowing=!Zt.readableListening,function(jt,Vt){Vt.resumeScheduled||(Vt.resumeScheduled=!0,nt.nextTick(Et,jt,Vt))}(this,Zt)),Zt.paused=!1,this},St.prototype.pause=function(){return lt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(lt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},St.prototype.wrap=function(Zt){var jt=this,Vt=this._readableState,It=!1;for(var $t in Zt.on("end",function(){if(lt("wrapped end"),Vt.decoder&&!Vt.ended){var qt=Vt.decoder.end();qt&&qt.length&&jt.push(qt)}jt.push(null)}),Zt.on("data",function(qt){lt("wrapped data"),Vt.decoder&&(qt=Vt.decoder.write(qt)),Vt.objectMode&&qt==null||(Vt.objectMode||qt&&qt.length)&&(jt.push(qt)||(It=!0,Zt.pause()))}),Zt)this[$t]===void 0&&typeof Zt[$t]=="function"&&(this[$t]=function(qt){return function(){return Zt[qt].apply(Zt,arguments)}}($t));for(var Ht=0;Ht-1))throw new vt(Ot);return this._writableState.defaultEncoding=Ot,this},Object.defineProperty(St.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(St.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),St.prototype._write=function(Ot,Wt,Dt){Dt(new ft("_write()"))},St.prototype._writev=null,St.prototype.end=function(Ot,Wt,Dt){var Et=this._writableState;return typeof Ot=="function"?(Dt=Ot,Ot=null,Wt=null):typeof Wt=="function"&&(Dt=Wt,Wt=null),Ot!=null&&this.write(Ot,Wt),Et.corked&&(Et.corked=1,this.uncork()),Et.ending||function(Pt,zt,en){zt.ending=!0,Nt(Pt,zt),en&&(zt.finished?nt.nextTick(en):Pt.once("finish",en)),zt.ended=!0,Pt.writable=!1}(this,Et,Dt),this},Object.defineProperty(St.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(St.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(Ot){this._writableState&&(this._writableState.destroyed=Ot)}}),St.prototype.destroy=dt.destroy,St.prototype._undestroy=dt.undestroy,St.prototype._destroy=function(Ot,Wt){Wt(Ot)}}).call(this,et(6),et(2))},function(s,o,et){s.exports=lt;var tt=et(26).codes,nt=tt.ERR_METHOD_NOT_IMPLEMENTED,rt=tt.ERR_MULTIPLE_CALLBACK,it=tt.ERR_TRANSFORM_ALREADY_TRANSFORMING,ot=tt.ERR_TRANSFORM_WITH_LENGTH_0,st=et(27);function at(ht,ct){var pt=this._transformState;pt.transforming=!1;var ft=pt.writecb;if(ft===null)return this.emit("error",new rt);pt.writechunk=null,pt.writecb=null,ct!=null&&this.push(ct),ft(ht);var gt=this._readableState;gt.reading=!1,(gt.needReadable||gt.lengthut._pos){var ct=ht.substr(ut._pos);if(ut._charset==="x-user-defined"){for(var pt=new nt(ct.length),ft=0;ftut._pos&&(ut.push(new nt(new Uint8Array(gt.result.slice(ut._pos)))),ut._pos=gt.result.byteLength)},gt.onload=function(){ut.push(null)},gt.readAsArrayBuffer(ht)}ut._xhr.readyState===at.DONE&&ut._mode!=="ms-stream"&&ut.push(null)}}).call(this,et(2),et(5).Buffer,et(6))},function(s,o,et){var tt=et(194),nt=et(196);function rt(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}o.parse=Ut,o.resolve=function(Ft,mt){return Ut(Ft,!1,!0).resolve(mt)},o.resolveObject=function(Ft,mt){return Ft?Ut(Ft,!1,!0).resolveObject(mt):mt},o.format=function(Ft){return nt.isString(Ft)&&(Ft=Ut(Ft)),Ft instanceof rt?Ft.format():rt.prototype.format.call(Ft)},o.Url=rt;var it=/^([a-z0-9.+-]+:)/i,ot=/:[0-9]*$/,st=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,at=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` -`," "]),lt=["'"].concat(at),ut=["%","/","?",";","#"].concat(lt),dt=["/","?","#"],ht=/^[+a-z0-9A-Z_-]{0,63}$/,ct=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,pt={javascript:!0,"javascript:":!0},ft={javascript:!0,"javascript:":!0},gt={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},yt=et(197);function Ut(Ft,mt,vt){if(Ft&&nt.isObject(Ft)&&Ft instanceof rt)return Ft;var At=new rt;return At.parse(Ft,mt,vt),At}rt.prototype.parse=function(Ft,mt,vt){if(!nt.isString(Ft))throw new TypeError("Parameter 'url' must be a string, not "+typeof Ft);var At=Ft.indexOf("?"),Lt=At!==-1&&At127?Kt+="x":Kt+=en[nn];if(!Kt.match(ht)){var jt=Pt.slice(0,Wt),Vt=Pt.slice(Wt+1),It=en.match(ct);It&&(jt.push(It[1]),Vt.unshift(It[2])),Vt.length&&(St="/"+Vt.join(".")+St),this.hostname=jt.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),Et||(this.hostname=tt.toASCII(this.hostname));var $t=this.port?":"+this.port:"",Ht=this.hostname||"";this.host=Ht+$t,this.href+=this.host,Et&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),St[0]!=="/"&&(St="/"+St))}if(!pt[xt])for(Wt=0,zt=lt.length;Wt0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),vt.search=Ft.search,vt.query=Ft.query,nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.href=vt.format(),vt;if(!en.length)return vt.pathname=null,vt.search?vt.path="/"+vt.search:vt.path=null,vt.href=vt.format(),vt;for(var nn=en.slice(-1)[0],Zt=(vt.host||Ft.host||en.length>1)&&(nn==="."||nn==="..")||nn==="",jt=0,Vt=en.length;Vt>=0;Vt--)(nn=en[Vt])==="."?en.splice(Vt,1):nn===".."?(en.splice(Vt,1),jt++):jt&&(en.splice(Vt,1),jt--);if(!Pt&&!zt)for(;jt--;jt)en.unshift("..");!Pt||en[0]===""||en[0]&&en[0].charAt(0)==="/"||en.unshift(""),Zt&&en.join("/").substr(-1)!=="/"&&en.push("");var It,$t=en[0]===""||en[0]&&en[0].charAt(0)==="/";return Kt&&(vt.hostname=vt.host=$t?"":en.length?en.shift():"",(It=!!(vt.host&&vt.host.indexOf("@")>0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),(Pt=Pt||vt.host&&en.length)&&!$t&&en.unshift(""),en.length?vt.pathname=en.join("/"):(vt.pathname=null,vt.path=null),nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.auth=Ft.auth||vt.auth,vt.slashes=vt.slashes||Ft.slashes,vt.href=vt.format(),vt},rt.prototype.parseHost=function(){var Ft=this.host,mt=ot.exec(Ft);mt&&((mt=mt[0])!==":"&&(this.port=mt.substr(1)),Ft=Ft.substr(0,Ft.length-mt.length)),Ft&&(this.hostname=Ft)}},function(s,o,et){const tt=nt=>nt!==null&&typeof nt=="object"&&typeof nt.pipe=="function";tt.writable=nt=>tt(nt)&&nt.writable!==!1&&typeof nt._write=="function"&&typeof nt._writableState=="object",tt.readable=nt=>tt(nt)&&nt.readable!==!1&&typeof nt._read=="function"&&typeof nt._readableState=="object",tt.duplex=nt=>tt.writable(nt)&&tt.readable(nt),tt.transform=nt=>tt.duplex(nt)&&typeof nt._transform=="function"&&typeof nt._transformState=="object",s.exports=tt},function(s,o,et){function tt(pt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ft){return typeof ft}:function(ft){return ft&&typeof Symbol=="function"&&ft.constructor===Symbol&&ft!==Symbol.prototype?"symbol":typeof ft})(pt)}function nt(pt,ft){if(!(pt instanceof ft))throw new TypeError("Cannot call a class as a function")}function rt(pt,ft){if(typeof ft!="function"&&ft!==null)throw new TypeError("Super expression must either be null or a function");pt.prototype=Object.create(ft&&ft.prototype,{constructor:{value:pt,writable:!0,configurable:!0}}),ft&&it(pt,ft)}function it(pt,ft){return(it=Object.setPrototypeOf||function(gt,yt){return gt.__proto__=yt,gt})(pt,ft)}function ot(pt){var ft=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var gt,yt=at(pt);if(ft){var Ut=at(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return st(this,gt)}}function st(pt,ft){return!ft||tt(ft)!=="object"&&typeof ft!="function"?function(gt){if(gt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return gt}(pt):ft}function at(pt){return(at=Object.setPrototypeOf?Object.getPrototypeOf:function(ft){return ft.__proto__||Object.getPrototypeOf(ft)})(pt)}var lt=et(3).LEVEL,ut=et(50),dt=et(202),ht=et(38)("winston:create-logger");function ct(pt){return"is"+pt.charAt(0).toUpperCase()+pt.slice(1)+"Enabled"}s.exports=function(){var pt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};pt.levels=pt.levels||ut.npm.levels;var ft=function(yt){rt(Ft,yt);var Ut=ot(Ft);function Ft(mt){return nt(this,Ft),Ut.call(this,mt)}return Ft}(dt),gt=new ft(pt);return Object.keys(pt.levels).forEach(function(yt){ht('Define prototype method for "%s"',yt),yt!=="log"?(ft.prototype[yt]=function(){for(var Ut=this||gt,Ft=arguments.length,mt=new Array(Ft),vt=0;vt>>16&65535|0,at=0;rt!==0;){rt-=at=rt>2e3?2e3:rt;do st=st+(ot=ot+nt[it++]|0)|0;while(--at);ot%=65521,st%=65521}return ot|st<<16|0}},function(s,o,et){var tt=function(){for(var nt,rt=[],it=0;it<256;it++){nt=it;for(var ot=0;ot<8;ot++)nt=1&nt?3988292384^nt>>>1:nt>>>1;rt[it]=nt}return rt}();s.exports=function(nt,rt,it,ot){var st=tt,at=ot+it;nt^=-1;for(var lt=ot;lt>>8^st[255&(nt^rt[lt])];return-1^nt}},function(s,o,et){(function(tt,nt){var rt;s.exports=St,St.ReadableState=Rt,et(21).EventEmitter;var it=function(Zt,jt){return Zt.listeners(jt).length},ot=et(78),st=et(5).Buffer,at=tt.Uint8Array||function(){},lt,ut=et(179);lt=ut&&ut.debuglog?ut.debuglog("stream"):function(){};var dt,ht,ct,pt=et(180),ft=et(79),gt=et(80).getHighWaterMark,yt=et(26).codes,Ut=yt.ERR_INVALID_ARG_TYPE,Ft=yt.ERR_STREAM_PUSH_AFTER_EOF,mt=yt.ERR_METHOD_NOT_IMPLEMENTED,vt=yt.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;et(7)(St,ot);var At=ft.errorOrDestroy,Lt=["error","close","destroy","pause","resume"];function Rt(Zt,jt,Vt){rt=rt||et(27),Zt=Zt||{},typeof Vt!="boolean"&&(Vt=jt instanceof rt),this.objectMode=!!Zt.objectMode,Vt&&(this.objectMode=this.objectMode||!!Zt.readableObjectMode),this.highWaterMark=gt(this,Zt,"readableHighWaterMark",Vt),this.buffer=new pt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=Zt.emitClose!==!1,this.autoDestroy=!!Zt.autoDestroy,this.destroyed=!1,this.defaultEncoding=Zt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Zt.encoding&&(dt||(dt=et(22).StringDecoder),this.decoder=new dt(Zt.encoding),this.encoding=Zt.encoding)}function St(Zt){if(rt=rt||et(27),!(this instanceof St))return new St(Zt);var jt=this instanceof rt;this._readableState=new Rt(Zt,this,jt),this.readable=!0,Zt&&(typeof Zt.read=="function"&&(this._read=Zt.read),typeof Zt.destroy=="function"&&(this._destroy=Zt.destroy)),ot.call(this)}function Tt(Zt,jt,Vt,It,$t){lt("readableAddChunk",jt);var Ht,qt=Zt._readableState;if(jt===null)qt.reading=!1,function(on,Xt){if(lt("onEofChunk"),!Xt.ended){if(Xt.decoder){var dn=Xt.decoder.end();dn&&dn.length&&(Xt.buffer.push(dn),Xt.length+=Xt.objectMode?1:dn.length)}Xt.ended=!0,Xt.sync?Ct(on):(Xt.needReadable=!1,Xt.emittedReadable||(Xt.emittedReadable=!0,kt(on)))}}(Zt,qt);else if($t||(Ht=function(on,Xt){var dn;_n=Xt,st.isBuffer(_n)||_n instanceof at||typeof Xt=="string"||Xt===void 0||on.objectMode||(dn=new Ut("chunk",["string","Buffer","Uint8Array"],Xt));var _n;return dn}(qt,jt)),Ht)At(Zt,Ht);else if(qt.objectMode||jt&&jt.length>0)if(typeof jt=="string"||qt.objectMode||Object.getPrototypeOf(jt)===st.prototype||(jt=function(on){return st.from(on)}(jt)),It)qt.endEmitted?At(Zt,new vt):Bt(Zt,qt,jt,!0);else if(qt.ended)At(Zt,new Ft);else{if(qt.destroyed)return!1;qt.reading=!1,qt.decoder&&!Vt?(jt=qt.decoder.write(jt),qt.objectMode||jt.length!==0?Bt(Zt,qt,jt,!1):Nt(Zt,qt)):Bt(Zt,qt,jt,!1)}else It||(qt.reading=!1,Nt(Zt,qt));return!qt.ended&&(qt.lengthjt.highWaterMark&&(jt.highWaterMark=function(Vt){return Vt>=1073741824?Vt=1073741824:(Vt--,Vt|=Vt>>>1,Vt|=Vt>>>2,Vt|=Vt>>>4,Vt|=Vt>>>8,Vt|=Vt>>>16,Vt++),Vt}(Zt)),Zt<=jt.length?Zt:jt.ended?jt.length:(jt.needReadable=!0,0))}function Ct(Zt){var jt=Zt._readableState;lt("emitReadable",jt.needReadable,jt.emittedReadable),jt.needReadable=!1,jt.emittedReadable||(lt("emitReadable",jt.flowing),jt.emittedReadable=!0,nt.nextTick(kt,Zt))}function kt(Zt){var jt=Zt._readableState;lt("emitReadable_",jt.destroyed,jt.length,jt.ended),jt.destroyed||!jt.length&&!jt.ended||(Zt.emit("readable"),jt.emittedReadable=!1),jt.needReadable=!jt.flowing&&!jt.ended&&jt.length<=jt.highWaterMark,Pt(Zt)}function Nt(Zt,jt){jt.readingMore||(jt.readingMore=!0,nt.nextTick(Ot,Zt,jt))}function Ot(Zt,jt){for(;!jt.reading&&!jt.ended&&(jt.length0,jt.resumeScheduled&&!jt.paused?jt.flowing=!0:Zt.listenerCount("data")>0&&Zt.resume()}function Dt(Zt){lt("readable nexttick read 0"),Zt.read(0)}function Et(Zt,jt){lt("resume",jt.reading),jt.reading||Zt.read(0),jt.resumeScheduled=!1,Zt.emit("resume"),Pt(Zt),jt.flowing&&!jt.reading&&Zt.read(0)}function Pt(Zt){var jt=Zt._readableState;for(lt("flow",jt.flowing);jt.flowing&&Zt.read()!==null;);}function zt(Zt,jt){return jt.length===0?null:(jt.objectMode?Vt=jt.buffer.shift():!Zt||Zt>=jt.length?(Vt=jt.decoder?jt.buffer.join(""):jt.buffer.length===1?jt.buffer.first():jt.buffer.concat(jt.length),jt.buffer.clear()):Vt=jt.buffer.consume(Zt,jt.decoder),Vt);var Vt}function en(Zt){var jt=Zt._readableState;lt("endReadable",jt.endEmitted),jt.endEmitted||(jt.ended=!0,nt.nextTick(Kt,jt,Zt))}function Kt(Zt,jt){if(lt("endReadableNT",Zt.endEmitted,Zt.length),!Zt.endEmitted&&Zt.length===0&&(Zt.endEmitted=!0,jt.readable=!1,jt.emit("end"),Zt.autoDestroy)){var Vt=jt._writableState;(!Vt||Vt.autoDestroy&&Vt.finished)&&jt.destroy()}}function nn(Zt,jt){for(var Vt=0,It=Zt.length;Vt=jt.highWaterMark:jt.length>0)||jt.ended))return lt("read: emitReadable",jt.length,jt.ended),jt.length===0&&jt.ended?en(this):Ct(this),null;if((Zt=xt(Zt,jt))===0&&jt.ended)return jt.length===0&&en(this),null;var It,$t=jt.needReadable;return lt("need readable",$t),(jt.length===0||jt.length-Zt0?zt(Zt,jt):null)===null?(jt.needReadable=jt.length<=jt.highWaterMark,Zt=0):(jt.length-=Zt,jt.awaitDrain=0),jt.length===0&&(jt.ended||(jt.needReadable=!0),Vt!==Zt&&jt.ended&&en(this)),It!==null&&this.emit("data",It),It},St.prototype._read=function(Zt){At(this,new mt("_read()"))},St.prototype.pipe=function(Zt,jt){var Vt=this,It=this._readableState;switch(It.pipesCount){case 0:It.pipes=Zt;break;case 1:It.pipes=[It.pipes,Zt];break;default:It.pipes.push(Zt)}It.pipesCount+=1,lt("pipe count=%d opts=%j",It.pipesCount,jt);var $t=(!jt||jt.end!==!1)&&Zt!==nt.stdout&&Zt!==nt.stderr?qt:On;function Ht(gn,hn){lt("onunpipe"),gn===Vt&&hn&&hn.hasUnpiped===!1&&(hn.hasUnpiped=!0,lt("cleanup"),Zt.removeListener("close",Fn),Zt.removeListener("finish",Un),Zt.removeListener("drain",on),Zt.removeListener("error",_n),Zt.removeListener("unpipe",Ht),Vt.removeListener("end",qt),Vt.removeListener("end",On),Vt.removeListener("data",dn),Xt=!0,!It.awaitDrain||Zt._writableState&&!Zt._writableState.needDrain||on())}function qt(){lt("onend"),Zt.end()}It.endEmitted?nt.nextTick($t):Vt.once("end",$t),Zt.on("unpipe",Ht);var on=function(gn){return function(){var hn=gn._readableState;lt("pipeOnDrain",hn.awaitDrain),hn.awaitDrain&&hn.awaitDrain--,hn.awaitDrain===0&&it(gn,"data")&&(hn.flowing=!0,Pt(gn))}}(Vt);Zt.on("drain",on);var Xt=!1;function dn(gn){lt("ondata");var hn=Zt.write(gn);lt("dest.write",hn),hn===!1&&((It.pipesCount===1&&It.pipes===Zt||It.pipesCount>1&&nn(It.pipes,Zt)!==-1)&&!Xt&&(lt("false write response, pause",It.awaitDrain),It.awaitDrain++),Vt.pause())}function _n(gn){lt("onerror",gn),On(),Zt.removeListener("error",_n),it(Zt,"error")===0&&At(Zt,gn)}function Fn(){Zt.removeListener("finish",Un),On()}function Un(){lt("onfinish"),Zt.removeListener("close",Fn),On()}function On(){lt("unpipe"),Vt.unpipe(Zt)}return Vt.on("data",dn),function(gn,hn,wn){if(typeof gn.prependListener=="function")return gn.prependListener(hn,wn);gn._events&&gn._events[hn]?Array.isArray(gn._events[hn])?gn._events[hn].unshift(wn):gn._events[hn]=[wn,gn._events[hn]]:gn.on(hn,wn)}(Zt,"error",_n),Zt.once("close",Fn),Zt.once("finish",Un),Zt.emit("pipe",Vt),It.flowing||(lt("pipe resume"),Vt.resume()),Zt},St.prototype.unpipe=function(Zt){var jt=this._readableState,Vt={hasUnpiped:!1};if(jt.pipesCount===0)return this;if(jt.pipesCount===1)return Zt&&Zt!==jt.pipes||(Zt||(Zt=jt.pipes),jt.pipes=null,jt.pipesCount=0,jt.flowing=!1,Zt&&Zt.emit("unpipe",this,Vt)),this;if(!Zt){var It=jt.pipes,$t=jt.pipesCount;jt.pipes=null,jt.pipesCount=0,jt.flowing=!1;for(var Ht=0;Ht<$t;Ht++)It[Ht].emit("unpipe",this,{hasUnpiped:!1});return this}var qt=nn(jt.pipes,Zt);return qt===-1||(jt.pipes.splice(qt,1),jt.pipesCount-=1,jt.pipesCount===1&&(jt.pipes=jt.pipes[0]),Zt.emit("unpipe",this,Vt)),this},St.prototype.on=function(Zt,jt){var Vt=ot.prototype.on.call(this,Zt,jt),It=this._readableState;return Zt==="data"?(It.readableListening=this.listenerCount("readable")>0,It.flowing!==!1&&this.resume()):Zt==="readable"&&(It.endEmitted||It.readableListening||(It.readableListening=It.needReadable=!0,It.flowing=!1,It.emittedReadable=!1,lt("on readable",It.length,It.reading),It.length?Ct(this):It.reading||nt.nextTick(Dt,this))),Vt},St.prototype.addListener=St.prototype.on,St.prototype.removeListener=function(Zt,jt){var Vt=ot.prototype.removeListener.call(this,Zt,jt);return Zt==="readable"&&nt.nextTick(Jt,this),Vt},St.prototype.removeAllListeners=function(Zt){var jt=ot.prototype.removeAllListeners.apply(this,arguments);return Zt!=="readable"&&Zt!==void 0||nt.nextTick(Jt,this),jt},St.prototype.resume=function(){var Zt=this._readableState;return Zt.flowing||(lt("resume"),Zt.flowing=!Zt.readableListening,function(jt,Vt){Vt.resumeScheduled||(Vt.resumeScheduled=!0,nt.nextTick(Et,jt,Vt))}(this,Zt)),Zt.paused=!1,this},St.prototype.pause=function(){return lt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(lt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},St.prototype.wrap=function(Zt){var jt=this,Vt=this._readableState,It=!1;for(var $t in Zt.on("end",function(){if(lt("wrapped end"),Vt.decoder&&!Vt.ended){var qt=Vt.decoder.end();qt&&qt.length&&jt.push(qt)}jt.push(null)}),Zt.on("data",function(qt){lt("wrapped data"),Vt.decoder&&(qt=Vt.decoder.write(qt)),Vt.objectMode&&qt==null||(Vt.objectMode||qt&&qt.length)&&(jt.push(qt)||(It=!0,Zt.pause()))}),Zt)this[$t]===void 0&&typeof Zt[$t]=="function"&&(this[$t]=function(qt){return function(){return Zt[qt].apply(Zt,arguments)}}($t));for(var Ht=0;Ht-1))throw new vt(Ot);return this._writableState.defaultEncoding=Ot,this},Object.defineProperty(St.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(St.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),St.prototype._write=function(Ot,Jt,Dt){Dt(new ft("_write()"))},St.prototype._writev=null,St.prototype.end=function(Ot,Jt,Dt){var Et=this._writableState;return typeof Ot=="function"?(Dt=Ot,Ot=null,Jt=null):typeof Jt=="function"&&(Dt=Jt,Jt=null),Ot!=null&&this.write(Ot,Jt),Et.corked&&(Et.corked=1,this.uncork()),Et.ending||function(Pt,zt,en){zt.ending=!0,Nt(Pt,zt),en&&(zt.finished?nt.nextTick(en):Pt.once("finish",en)),zt.ended=!0,Pt.writable=!1}(this,Et,Dt),this},Object.defineProperty(St.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(St.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(Ot){this._writableState&&(this._writableState.destroyed=Ot)}}),St.prototype.destroy=dt.destroy,St.prototype._undestroy=dt.undestroy,St.prototype._destroy=function(Ot,Jt){Jt(Ot)}}).call(this,et(6),et(2))},function(s,o,et){s.exports=lt;var tt=et(26).codes,nt=tt.ERR_METHOD_NOT_IMPLEMENTED,rt=tt.ERR_MULTIPLE_CALLBACK,it=tt.ERR_TRANSFORM_ALREADY_TRANSFORMING,ot=tt.ERR_TRANSFORM_WITH_LENGTH_0,st=et(27);function at(ht,ct){var pt=this._transformState;pt.transforming=!1;var ft=pt.writecb;if(ft===null)return this.emit("error",new rt);pt.writechunk=null,pt.writecb=null,ct!=null&&this.push(ct),ft(ht);var gt=this._readableState;gt.reading=!1,(gt.needReadable||gt.lengthut._pos){var ct=ht.substr(ut._pos);if(ut._charset==="x-user-defined"){for(var pt=new nt(ct.length),ft=0;ftut._pos&&(ut.push(new nt(new Uint8Array(gt.result.slice(ut._pos)))),ut._pos=gt.result.byteLength)},gt.onload=function(){ut.push(null)},gt.readAsArrayBuffer(ht)}ut._xhr.readyState===at.DONE&&ut._mode!=="ms-stream"&&ut.push(null)}}).call(this,et(2),et(5).Buffer,et(6))},function(s,o,et){var tt=et(194),nt=et(196);function rt(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}o.parse=Ut,o.resolve=function(Ft,mt){return Ut(Ft,!1,!0).resolve(mt)},o.resolveObject=function(Ft,mt){return Ft?Ut(Ft,!1,!0).resolveObject(mt):mt},o.format=function(Ft){return nt.isString(Ft)&&(Ft=Ut(Ft)),Ft instanceof rt?Ft.format():rt.prototype.format.call(Ft)},o.Url=rt;var it=/^([a-z0-9.+-]+:)/i,ot=/:[0-9]*$/,st=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,at=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` +`," "]),lt=["'"].concat(at),ut=["%","/","?",";","#"].concat(lt),dt=["/","?","#"],ht=/^[+a-z0-9A-Z_-]{0,63}$/,ct=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,pt={javascript:!0,"javascript:":!0},ft={javascript:!0,"javascript:":!0},gt={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},yt=et(197);function Ut(Ft,mt,vt){if(Ft&&nt.isObject(Ft)&&Ft instanceof rt)return Ft;var At=new rt;return At.parse(Ft,mt,vt),At}rt.prototype.parse=function(Ft,mt,vt){if(!nt.isString(Ft))throw new TypeError("Parameter 'url' must be a string, not "+typeof Ft);var At=Ft.indexOf("?"),Lt=At!==-1&&At127?Kt+="x":Kt+=en[nn];if(!Kt.match(ht)){var jt=Pt.slice(0,Jt),Vt=Pt.slice(Jt+1),It=en.match(ct);It&&(jt.push(It[1]),Vt.unshift(It[2])),Vt.length&&(St="/"+Vt.join(".")+St),this.hostname=jt.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),Et||(this.hostname=tt.toASCII(this.hostname));var $t=this.port?":"+this.port:"",Ht=this.hostname||"";this.host=Ht+$t,this.href+=this.host,Et&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),St[0]!=="/"&&(St="/"+St))}if(!pt[xt])for(Jt=0,zt=lt.length;Jt0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),vt.search=Ft.search,vt.query=Ft.query,nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.href=vt.format(),vt;if(!en.length)return vt.pathname=null,vt.search?vt.path="/"+vt.search:vt.path=null,vt.href=vt.format(),vt;for(var nn=en.slice(-1)[0],Zt=(vt.host||Ft.host||en.length>1)&&(nn==="."||nn==="..")||nn==="",jt=0,Vt=en.length;Vt>=0;Vt--)(nn=en[Vt])==="."?en.splice(Vt,1):nn===".."?(en.splice(Vt,1),jt++):jt&&(en.splice(Vt,1),jt--);if(!Pt&&!zt)for(;jt--;jt)en.unshift("..");!Pt||en[0]===""||en[0]&&en[0].charAt(0)==="/"||en.unshift(""),Zt&&en.join("/").substr(-1)!=="/"&&en.push("");var It,$t=en[0]===""||en[0]&&en[0].charAt(0)==="/";return Kt&&(vt.hostname=vt.host=$t?"":en.length?en.shift():"",(It=!!(vt.host&&vt.host.indexOf("@")>0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),(Pt=Pt||vt.host&&en.length)&&!$t&&en.unshift(""),en.length?vt.pathname=en.join("/"):(vt.pathname=null,vt.path=null),nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.auth=Ft.auth||vt.auth,vt.slashes=vt.slashes||Ft.slashes,vt.href=vt.format(),vt},rt.prototype.parseHost=function(){var Ft=this.host,mt=ot.exec(Ft);mt&&((mt=mt[0])!==":"&&(this.port=mt.substr(1)),Ft=Ft.substr(0,Ft.length-mt.length)),Ft&&(this.hostname=Ft)}},function(s,o,et){const tt=nt=>nt!==null&&typeof nt=="object"&&typeof nt.pipe=="function";tt.writable=nt=>tt(nt)&&nt.writable!==!1&&typeof nt._write=="function"&&typeof nt._writableState=="object",tt.readable=nt=>tt(nt)&&nt.readable!==!1&&typeof nt._read=="function"&&typeof nt._readableState=="object",tt.duplex=nt=>tt.writable(nt)&&tt.readable(nt),tt.transform=nt=>tt.duplex(nt)&&typeof nt._transform=="function"&&typeof nt._transformState=="object",s.exports=tt},function(s,o,et){function tt(pt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ft){return typeof ft}:function(ft){return ft&&typeof Symbol=="function"&&ft.constructor===Symbol&&ft!==Symbol.prototype?"symbol":typeof ft})(pt)}function nt(pt,ft){if(!(pt instanceof ft))throw new TypeError("Cannot call a class as a function")}function rt(pt,ft){if(typeof ft!="function"&&ft!==null)throw new TypeError("Super expression must either be null or a function");pt.prototype=Object.create(ft&&ft.prototype,{constructor:{value:pt,writable:!0,configurable:!0}}),ft&&it(pt,ft)}function it(pt,ft){return(it=Object.setPrototypeOf||function(gt,yt){return gt.__proto__=yt,gt})(pt,ft)}function ot(pt){var ft=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var gt,yt=at(pt);if(ft){var Ut=at(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return st(this,gt)}}function st(pt,ft){return!ft||tt(ft)!=="object"&&typeof ft!="function"?function(gt){if(gt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return gt}(pt):ft}function at(pt){return(at=Object.setPrototypeOf?Object.getPrototypeOf:function(ft){return ft.__proto__||Object.getPrototypeOf(ft)})(pt)}var lt=et(3).LEVEL,ut=et(50),dt=et(202),ht=et(38)("winston:create-logger");function ct(pt){return"is"+pt.charAt(0).toUpperCase()+pt.slice(1)+"Enabled"}s.exports=function(){var pt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};pt.levels=pt.levels||ut.npm.levels;var ft=function(yt){rt(Ft,yt);var Ut=ot(Ft);function Ft(mt){return nt(this,Ft),Ut.call(this,mt)}return Ft}(dt),gt=new ft(pt);return Object.keys(pt.levels).forEach(function(yt){ht('Define prototype method for "%s"',yt),yt!=="log"?(ft.prototype[yt]=function(){for(var Ut=this||gt,Ft=arguments.length,mt=new Array(Ft),vt=0;vt0){ot=at.substr(0,ht),st=at.substr(ht+1);var ct=ot.indexOf(".Module");ct>0&&(at=at.substr(ct+1),ot=ot.substr(0,ct))}lt=null}st&&(lt=ot,ut=st),st===""&&(ut=null,at=null);var pt={fileName:it[2]||null,lineNumber:parseInt(it[3],10)||null,functionName:at,typeName:lt,methodName:ut,columnNumber:parseInt(it[4],10)||null,native:dt};return nt._createParsedCallSite(pt)}}).filter(function(rt){return!!rt})},["this","typeName","functionName","methodName","fileName","lineNumber","columnNumber","function","evalOrigin"].forEach(function(tt){et.prototype[tt]=null,et.prototype["get"+tt[0].toUpperCase()+tt.substr(1)]=function(){return this[tt]}}),["topLevel","eval","native","constructor"].forEach(function(tt){et.prototype[tt]=!1,et.prototype["is"+tt[0].toUpperCase()+tt.substr(1)]=function(){return this[tt]}}),o._createParsedCallSite=function(tt){return new et(tt)}},function(s,o,et){function tt(lt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ut){return typeof ut}:function(ut){return ut&&typeof Symbol=="function"&&ut.constructor===Symbol&&ut!==Symbol.prototype?"symbol":typeof ut})(lt)}function nt(lt,ut){for(var dt=0;dt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var dt,ht=st(lt);if(ut){var ct=st(this).constructor;dt=Reflect.construct(ht,arguments,ct)}else dt=ht.apply(this,arguments);return ot(this,dt)}}function ot(lt,ut){return!ut||tt(ut)!=="object"&&typeof ut!="function"?function(dt){if(dt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return dt}(lt):ut}function st(lt){return(st=Object.setPrototypeOf?Object.getPrototypeOf:function(ut){return ut.__proto__||Object.getPrototypeOf(ut)})(lt)}var at=et(32).Writable;s.exports=function(lt){(function(pt,ft){if(typeof ft!="function"&&ft!==null)throw new TypeError("Super expression must either be null or a function");pt.prototype=Object.create(ft&&ft.prototype,{constructor:{value:pt,writable:!0,configurable:!0}}),ft&&rt(pt,ft)})(ct,lt);var ut,dt,ht=it(ct);function ct(pt){var ft;if(function(gt,yt){if(!(gt instanceof yt))throw new TypeError("Cannot call a class as a function")}(this,ct),ft=ht.call(this,{objectMode:!0}),!pt)throw new Error("ExceptionStream requires a TransportStream instance.");return ft.handleExceptions=!0,ft.transport=pt,ft}return ut=ct,(dt=[{key:"_write",value:function(pt,ft,gt){return pt.exception?this.transport.log(pt,gt):(gt(),!0)}}])&&nt(ut.prototype,dt),ct}(at)},function(s,o,et){(function(tt){function nt(ut,dt){for(var ht=0;ht0&&ot.writeString(1,st)},proto.google.protobuf.StringValue.prototype.getValue=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.google.protobuf.StringValue.prototype.setValue=function(it){return tt.Message.setProto3StringField(this,1,it)},tt.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.BytesValue.prototype.toObject=function(it){return proto.google.protobuf.BytesValue.toObject(it,this)},proto.google.protobuf.BytesValue.toObject=function(it,ot){var st={value:ot.getValue_asB64()};return it&&(st.$jspbMessageInstance=ot),st}),proto.google.protobuf.BytesValue.deserializeBinary=function(it){var ot=new tt.BinaryReader(it),st=new proto.google.protobuf.BytesValue;return proto.google.protobuf.BytesValue.deserializeBinaryFromReader(st,ot)},proto.google.protobuf.BytesValue.deserializeBinaryFromReader=function(it,ot){for(;ot.nextField()&&!ot.isEndGroup();)switch(ot.getFieldNumber()){case 1:var st=ot.readBytes();it.setValue(st);break;default:ot.skipField()}return it},proto.google.protobuf.BytesValue.prototype.serializeBinary=function(){var it=new tt.BinaryWriter;return proto.google.protobuf.BytesValue.serializeBinaryToWriter(this,it),it.getResultBuffer()},proto.google.protobuf.BytesValue.serializeBinaryToWriter=function(it,ot){var st;(st=it.getValue_asU8()).length>0&&ot.writeBytes(1,st)},proto.google.protobuf.BytesValue.prototype.getValue=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.google.protobuf.BytesValue.prototype.getValue_asB64=function(){return tt.Message.bytesAsB64(this.getValue())},proto.google.protobuf.BytesValue.prototype.getValue_asU8=function(){return tt.Message.bytesAsU8(this.getValue())},proto.google.protobuf.BytesValue.prototype.setValue=function(it){return tt.Message.setProto3BytesField(this,1,it)},nt.object.extend(o,proto.google.protobuf)},function(module,exports,__webpack_require__){(function(global,Buffer){var $jscomp=$jscomp||{};$jscomp.scope={},$jscomp.findInternal=function(s,o,et){s instanceof String&&(s=String(s));for(var tt=s.length,nt=0;nt=nt}},"es6","es3"),$jscomp.polyfill("Array.prototype.find",function(s){return s||function(o,et){return $jscomp.findInternal(this,o,et).v}},"es6","es3"),$jscomp.polyfill("String.prototype.startsWith",function(s){return s||function(o,et){var tt=$jscomp.checkStringArgs(this,o,"startsWith");o+="";var nt=tt.length,rt=o.length;et=Math.max(0,Math.min(0|et,tt.length));for(var it=0;it=rt}},"es6","es3"),$jscomp.polyfill("String.prototype.repeat",function(s){return s||function(o){var et=$jscomp.checkStringArgs(this,null,"repeat");if(0>o||1342177279>>=1)&&(et+=et);return tt}},"es6","es3");var COMPILED=!0,goog=goog||{};goog.global=this||self,goog.isDef=function(s){return s!==void 0},goog.isString=function(s){return typeof s=="string"},goog.isBoolean=function(s){return typeof s=="boolean"},goog.isNumber=function(s){return typeof s=="number"},goog.exportPath_=function(s,o,et){s=s.split("."),et=et||goog.global,s[0]in et||et.execScript===void 0||et.execScript("var "+s[0]);for(var tt;s.length&&(tt=s.shift());)!s.length&&goog.isDef(o)?et[tt]=o:et=et[tt]&&et[tt]!==Object.prototype[tt]?et[tt]:et[tt]={}},goog.define=function(s,o){return o},goog.FEATURESET_YEAR=2012,goog.DEBUG=!0,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.STRICT_MODE_COMPATIBLE=!1,goog.DISALLOW_TEST_ONLY_CODE=!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(s){if(goog.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");goog.constructNamespace_(s)},goog.constructNamespace_=function(s,o){goog.exportPath_(s,o)},goog.getScriptNonce=function(s){return s&&s!=goog.global?goog.getScriptNonce_(s.document):(goog.cspNonce_===null&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document)),goog.cspNonce_)},goog.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/,goog.cspNonce_=null,goog.getScriptNonce_=function(s){return(s=s.querySelector&&s.querySelector("script[nonce]"))&&(s=s.nonce||s.getAttribute("nonce"))&&goog.NONCE_PATTERN_.test(s)?s:""},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(s){if(!goog.isString(s)||!s||s.search(goog.VALID_MODULE_RE_)==-1)throw Error("Invalid module identifier");if(!goog.isInGoogModuleLoader_())throw Error("Module "+s+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");goog.moduleLoaderState_.moduleName=s},goog.module.get=function(s){return goog.module.getInternal_(s)},goog.module.getInternal_=function(s){return null},goog.ModuleType={ES6:"es6",GOOG:"goog"},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()},goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG},goog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var s=goog.global.$jscomp;return!!s&&typeof s.getCurrentModulePath=="function"&&!!s.getCurrentModulePath()},goog.module.declareLegacyNamespace=function(){goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.declareModuleId=function(s){if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=s;else{var o=goog.global.$jscomp;if(!o||typeof o.getCurrentModulePath!="function")throw Error('Module with namespace "'+s+'" has been loaded incorrectly.');o=o.require(o.getCurrentModulePath()),goog.loadedModules_[s]={exports:o,type:goog.ModuleType.ES6,moduleId:s}}},goog.setTestOnly=function(s){if(goog.DISALLOW_TEST_ONLY_CODE)throw s=s||"",Error("Importing test-only code into non-debug environment"+(s?": "+s:"."))},goog.forwardDeclare=function(s){},goog.getObjectByName=function(s,o){s=s.split("."),o=o||goog.global;for(var et=0;et>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(s){var o=goog.typeOf(s);if(o=="object"||o=="array"){if(typeof s.clone=="function")return s.clone();for(var et in o=o=="array"?[]:{},s)o[et]=goog.cloneObject(s[et]);return o}return s},goog.bindNative_=function(s,o,et){return s.call.apply(s.bind,arguments)},goog.bindJs_=function(s,o,et){if(!s)throw Error();if(2"u"||!TrustedTypes.createPolicy)return o;try{o=TrustedTypes.createPolicy(s,{createHTML:goog.identity_,createScript:goog.identity_,createScriptURL:goog.identity_,createURL:goog.identity_})}catch(et){goog.logToConsole_(et.message)}return o},goog.TRUSTED_TYPES_POLICY_=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#base"):null;var jspb={BinaryConstants:{},ConstBinaryMessage:function(){},BinaryMessage:function(){}};jspb.BinaryConstants.FieldType={INVALID:-1,DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18,FHASH64:30,VHASH64:31},jspb.BinaryConstants.WireType={INVALID:-1,VARINT:0,FIXED64:1,DELIMITED:2,START_GROUP:3,END_GROUP:4,FIXED32:5},jspb.BinaryConstants.FieldTypeToWireType=function(s){var o=jspb.BinaryConstants.FieldType,et=jspb.BinaryConstants.WireType;switch(s){case o.INT32:case o.INT64:case o.UINT32:case o.UINT64:case o.SINT32:case o.SINT64:case o.BOOL:case o.ENUM:case o.VHASH64:return et.VARINT;case o.DOUBLE:case o.FIXED64:case o.SFIXED64:case o.FHASH64:return et.FIXED64;case o.STRING:case o.MESSAGE:case o.BYTES:return et.DELIMITED;case o.FLOAT:case o.FIXED32:case o.SFIXED32:return et.FIXED32;default:return et.INVALID}},jspb.BinaryConstants.INVALID_FIELD_NUMBER=-1,jspb.BinaryConstants.FLOAT32_EPS=1401298464324817e-60,jspb.BinaryConstants.FLOAT32_MIN=11754943508222875e-54,jspb.BinaryConstants.FLOAT32_MAX=34028234663852886e22,jspb.BinaryConstants.FLOAT64_EPS=5e-324,jspb.BinaryConstants.FLOAT64_MIN=22250738585072014e-324,jspb.BinaryConstants.FLOAT64_MAX=17976931348623157e292,jspb.BinaryConstants.TWO_TO_20=1048576,jspb.BinaryConstants.TWO_TO_23=8388608,jspb.BinaryConstants.TWO_TO_31=2147483648,jspb.BinaryConstants.TWO_TO_32=4294967296,jspb.BinaryConstants.TWO_TO_52=4503599627370496,jspb.BinaryConstants.TWO_TO_63=9223372036854776e3,jspb.BinaryConstants.TWO_TO_64=18446744073709552e3,jspb.BinaryConstants.ZERO_HASH="\0\0\0\0\0\0\0\0",goog.dom={},goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12},goog.debug={},goog.debug.Error=function(s){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var o=Error().stack;o&&(this.stack=o)}s&&(this.message=String(s)),this.reportErrorToServer=!0},goog.inherits(goog.debug.Error,Error),goog.debug.Error.prototype.name="CustomError",goog.asserts={},goog.asserts.ENABLE_ASSERTS=goog.DEBUG,goog.asserts.AssertionError=function(s,o){goog.debug.Error.call(this,goog.asserts.subs_(s,o)),this.messagePattern=s},goog.inherits(goog.asserts.AssertionError,goog.debug.Error),goog.asserts.AssertionError.prototype.name="AssertionError",goog.asserts.DEFAULT_ERROR_HANDLER=function(s){throw s},goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER,goog.asserts.subs_=function(s,o){for(var et="",tt=(s=s.split("%s")).length-1,nt=0;ntet?Math.max(0,s.length+et):et,goog.isString(s))return goog.isString(o)&&o.length==1?s.indexOf(o,et):-1;for(;et(et=et??s.length-1)&&(et=Math.max(0,s.length+et)),goog.isString(s))return goog.isString(o)&&o.length==1?s.lastIndexOf(o,et):-1;for(;0<=et;et--)if(et in s&&s[et]===o)return et;return-1},goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(s,o,et){goog.asserts.assert(s.length!=null),Array.prototype.forEach.call(s,o,et)}:function(s,o,et){for(var tt=s.length,nt=goog.isString(s)?s.split(""):s,rt=0;rt(o=goog.array.findIndex(s,o,et))?null:goog.isString(s)?s.charAt(o):s[o]},goog.array.findIndex=function(s,o,et){for(var tt=s.length,nt=goog.isString(s)?s.split(""):s,rt=0;rt(o=goog.array.findIndexRight(s,o,et))?null:goog.isString(s)?s.charAt(o):s[o]},goog.array.findIndexRight=function(s,o,et){var tt=s.length,nt=goog.isString(s)?s.split(""):s;for(--tt;0<=tt;tt--)if(tt in nt&&o.call(et,nt[tt],tt,s))return tt;return-1},goog.array.contains=function(s,o){return 0<=goog.array.indexOf(s,o)},goog.array.isEmpty=function(s){return s.length==0},goog.array.clear=function(s){if(!goog.isArray(s))for(var o=s.length-1;0<=o;o--)delete s[o];s.length=0},goog.array.insert=function(s,o){goog.array.contains(s,o)||s.push(o)},goog.array.insertAt=function(s,o,et){goog.array.splice(s,et,0,o)},goog.array.insertArrayAt=function(s,o,et){goog.partial(goog.array.splice,s,et,0).apply(null,o)},goog.array.insertBefore=function(s,o,et){var tt;arguments.length==2||0>(tt=goog.array.indexOf(s,et))?s.push(o):goog.array.insertAt(s,o,tt)},goog.array.remove=function(s,o){var et;return(et=0<=(o=goog.array.indexOf(s,o)))&&goog.array.removeAt(s,o),et},goog.array.removeLast=function(s,o){return 0<=(o=goog.array.lastIndexOf(s,o))&&(goog.array.removeAt(s,o),!0)},goog.array.removeAt=function(s,o){return goog.asserts.assert(s.length!=null),Array.prototype.splice.call(s,o,1).length==1},goog.array.removeIf=function(s,o,et){return 0<=(o=goog.array.findIndex(s,o,et))&&(goog.array.removeAt(s,o),!0)},goog.array.removeAllIf=function(s,o,et){var tt=0;return goog.array.forEachRight(s,function(nt,rt){o.call(et,nt,rt,s)&&goog.array.removeAt(s,rt)&&tt++}),tt},goog.array.concat=function(s){return Array.prototype.concat.apply([],arguments)},goog.array.join=function(s){return Array.prototype.concat.apply([],arguments)},goog.array.toArray=function(s){var o=s.length;if(0=arguments.length?Array.prototype.slice.call(s,o):Array.prototype.slice.call(s,o,et)},goog.array.removeDuplicates=function(s,o,et){o=o||s;var tt=function(st){return goog.isObject(st)?"o"+goog.getUid(st):(typeof st).charAt(0)+st};et=et||tt,tt={};for(var nt=0,rt=0;rt>1,at=et?o.call(nt,s[st],st,s):o(tt,s[st]);0o?1:s(et=goog.array.binarySearch(s,o,et))&&(goog.array.insertAt(s,o,-(et+1)),!0)},goog.array.binaryRemove=function(s,o,et){return 0<=(o=goog.array.binarySearch(s,o,et))&&goog.array.removeAt(s,o)},goog.array.bucket=function(s,o,et){for(var tt={},nt=0;nt(et=et||1)*(rt-nt))return[];if(0rt;s+=et)tt.push(s);return tt},goog.array.repeat=function(s,o){for(var et=[],tt=0;tto&&Array.prototype.push.apply(s,s.splice(0,-o))),s},goog.array.moveItem=function(s,o,et){goog.asserts.assert(0<=o&&o>=8),o[et++]=nt}return o},goog.crypt.byteArrayToString=function(s){if(8192>=s.length)return String.fromCharCode.apply(null,s);for(var o="",et=0;etnt?o[et++]=nt:(2048>nt?o[et++]=nt>>6|192:((64512&nt)==55296&&tt+1>18|240,o[et++]=nt>>12&63|128):o[et++]=nt>>12|224,o[et++]=nt>>6&63|128),o[et++]=63&nt|128)}return o},goog.crypt.utf8ByteArrayToString=function(s){for(var o=[],et=0,tt=0;etnt)o[tt++]=String.fromCharCode(nt);else if(191nt){var rt=s[et++];o[tt++]=String.fromCharCode((31&nt)<<6|63&rt)}else if(239nt){rt=s[et++];var it=s[et++];nt=((7&nt)<<18|(63&rt)<<12|(63&it)<<6|63&s[et++])-65536,o[tt++]=String.fromCharCode(55296+(nt>>10)),o[tt++]=String.fromCharCode(56320+(1023&nt))}else rt=s[et++],it=s[et++],o[tt++]=String.fromCharCode((15&nt)<<12|(63&rt)<<6|63&it)}return o.join("")},goog.crypt.xorByteArray=function(s,o){goog.asserts.assert(s.length==o.length,"XOR array lengths must match");for(var et=[],tt=0;tt":"
")},goog.string.internal.htmlEscape=function(s,o){if(o)s=s.replace(goog.string.internal.AMP_RE_,"&").replace(goog.string.internal.LT_RE_,"<").replace(goog.string.internal.GT_RE_,">").replace(goog.string.internal.QUOT_RE_,""").replace(goog.string.internal.SINGLE_QUOTE_RE_,"'").replace(goog.string.internal.NULL_RE_,"�");else{if(!goog.string.internal.ALL_RE_.test(s))return s;s.indexOf("&")!=-1&&(s=s.replace(goog.string.internal.AMP_RE_,"&")),s.indexOf("<")!=-1&&(s=s.replace(goog.string.internal.LT_RE_,"<")),s.indexOf(">")!=-1&&(s=s.replace(goog.string.internal.GT_RE_,">")),s.indexOf('"')!=-1&&(s=s.replace(goog.string.internal.QUOT_RE_,""")),s.indexOf("'")!=-1&&(s=s.replace(goog.string.internal.SINGLE_QUOTE_RE_,"'")),s.indexOf("\0")!=-1&&(s=s.replace(goog.string.internal.NULL_RE_,"�"))}return s},goog.string.internal.AMP_RE_=/&/g,goog.string.internal.LT_RE_=//g,goog.string.internal.QUOT_RE_=/"/g,goog.string.internal.SINGLE_QUOTE_RE_=/'/g,goog.string.internal.NULL_RE_=/\x00/g,goog.string.internal.ALL_RE_=/[\x00&<>"']/,goog.string.internal.whitespaceEscape=function(s,o){return goog.string.internal.newLineToBr(s.replace(/ /g,"  "),o)},goog.string.internal.contains=function(s,o){return s.indexOf(o)!=-1},goog.string.internal.caseInsensitiveContains=function(s,o){return goog.string.internal.contains(s.toLowerCase(),o.toLowerCase())},goog.string.internal.compareVersions=function(s,o){var et=0;s=goog.string.internal.trim(String(s)).split("."),o=goog.string.internal.trim(String(o)).split(".");for(var tt=Math.max(s.length,o.length),nt=0;et==0&&nto?1:0},goog.string.TypedString=function(){},goog.string.Const=function(s,o){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_=s===goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_&&o||"",this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_},goog.string.Const.prototype.implementsGoogStringTypedString=!0,goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_},goog.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"},goog.string.Const.unwrap=function(s){return s instanceof goog.string.Const&&s.constructor===goog.string.Const&&s.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_?s.stringConstValueWithSecurityContract__googStringSecurityPrivate_:(goog.asserts.fail("expected object of type Const, got '"+s+"'"),"type_error:Const")},goog.string.Const.from=function(s){return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_,s)},goog.string.Const.TYPE_MARKER_={},goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_={},goog.string.Const.EMPTY=goog.string.Const.from(""),goog.fs={},goog.fs.url={},goog.fs.url.createObjectUrl=function(s){return goog.fs.url.getUrlObject_().createObjectURL(s)},goog.fs.url.revokeObjectUrl=function(s){goog.fs.url.getUrlObject_().revokeObjectURL(s)},goog.fs.url.getUrlObject_=function(){var s=goog.fs.url.findUrlObject_();if(s!=null)return s;throw Error("This browser doesn't seem to support blob URLs")},goog.fs.url.findUrlObject_=function(){return goog.isDef(goog.global.URL)&&goog.isDef(goog.global.URL.createObjectURL)?goog.global.URL:goog.isDef(goog.global.webkitURL)&&goog.isDef(goog.global.webkitURL.createObjectURL)?goog.global.webkitURL:goog.isDef(goog.global.createObjectURL)?goog.global:null},goog.fs.url.browserSupportsObjectUrls=function(){return goog.fs.url.findUrlObject_()!=null},goog.html={},goog.html.trustedtypes={},goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#html"):null,goog.i18n={},goog.i18n.bidi={},goog.i18n.bidi.FORCE_RTL=!1,goog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||(goog.LOCALE.substring(0,2).toLowerCase()=="ar"||goog.LOCALE.substring(0,2).toLowerCase()=="fa"||goog.LOCALE.substring(0,2).toLowerCase()=="he"||goog.LOCALE.substring(0,2).toLowerCase()=="iw"||goog.LOCALE.substring(0,2).toLowerCase()=="ps"||goog.LOCALE.substring(0,2).toLowerCase()=="sd"||goog.LOCALE.substring(0,2).toLowerCase()=="ug"||goog.LOCALE.substring(0,2).toLowerCase()=="ur"||goog.LOCALE.substring(0,2).toLowerCase()=="yi")&&(goog.LOCALE.length==2||goog.LOCALE.substring(2,3)=="-"||goog.LOCALE.substring(2,3)=="_")||3<=goog.LOCALE.length&&goog.LOCALE.substring(0,3).toLowerCase()=="ckb"&&(goog.LOCALE.length==3||goog.LOCALE.substring(3,4)=="-"||goog.LOCALE.substring(3,4)=="_")||7<=goog.LOCALE.length&&(goog.LOCALE.substring(2,3)=="-"||goog.LOCALE.substring(2,3)=="_")&&(goog.LOCALE.substring(3,7).toLowerCase()=="adlm"||goog.LOCALE.substring(3,7).toLowerCase()=="arab"||goog.LOCALE.substring(3,7).toLowerCase()=="hebr"||goog.LOCALE.substring(3,7).toLowerCase()=="nkoo"||goog.LOCALE.substring(3,7).toLowerCase()=="rohg"||goog.LOCALE.substring(3,7).toLowerCase()=="thaa")||8<=goog.LOCALE.length&&(goog.LOCALE.substring(3,4)=="-"||goog.LOCALE.substring(3,4)=="_")&&(goog.LOCALE.substring(4,8).toLowerCase()=="adlm"||goog.LOCALE.substring(4,8).toLowerCase()=="arab"||goog.LOCALE.substring(4,8).toLowerCase()=="hebr"||goog.LOCALE.substring(4,8).toLowerCase()=="nkoo"||goog.LOCALE.substring(4,8).toLowerCase()=="rohg"||goog.LOCALE.substring(4,8).toLowerCase()=="thaa"),goog.i18n.bidi.Format={LRE:"‪",RLE:"‫",PDF:"‬",LRM:"‎",RLM:"‏"},goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0},goog.i18n.bidi.RIGHT="right",goog.i18n.bidi.LEFT="left",goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT,goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,goog.i18n.bidi.toDir=function(s,o){return typeof s=="number"?0s?goog.i18n.bidi.Dir.RTL:o?null:goog.i18n.bidi.Dir.NEUTRAL:s==null?null:s?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.ltrChars_="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ऀ-῿‎Ⰰ-\uD801\uD804-\uD839\uD83C-\uDBFF豈-﬜︀-﹯﻽-￿",goog.i18n.bidi.rtlChars_="֑-ۯۺ-ࣿ‏\uD802-\uD803\uD83A-\uD83Bיִ-﷿ﹰ-ﻼ",goog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g,goog.i18n.bidi.stripHtmlIfNeeded_=function(s,o){return o?s.replace(goog.i18n.bidi.htmlSkipReg_,""):s},goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.hasAnyRtl=function(s,o){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl,goog.i18n.bidi.hasAnyLtr=function(s,o){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.isRtlChar=function(s){return goog.i18n.bidi.rtlRe_.test(s)},goog.i18n.bidi.isLtrChar=function(s){return goog.i18n.bidi.ltrRe_.test(s)},goog.i18n.bidi.isNeutralChar=function(s){return!goog.i18n.bidi.isLtrChar(s)&&!goog.i18n.bidi.isRtlChar(s)},goog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.startsWithRtl=function(s,o){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl,goog.i18n.bidi.startsWithLtr=function(s,o){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr,goog.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/,goog.i18n.bidi.isNeutralText=function(s,o){return s=goog.i18n.bidi.stripHtmlIfNeeded_(s,o),goog.i18n.bidi.isRequiredLtrRe_.test(s)||!goog.i18n.bidi.hasAnyLtr(s)&&!goog.i18n.bidi.hasAnyRtl(s)},goog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$"),goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$"),goog.i18n.bidi.endsWithLtr=function(s,o){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr,goog.i18n.bidi.endsWithRtl=function(s,o){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl,goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i,goog.i18n.bidi.isRtlLanguage=function(s){return goog.i18n.bidi.rtlLocalesRe_.test(s)},goog.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g,goog.i18n.bidi.guardBracketInText=function(s,o){return o=(o===void 0?goog.i18n.bidi.hasAnyRtl(s):o)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM,s.replace(goog.i18n.bidi.bracketGuardTextRe_,o+"$&"+o)},goog.i18n.bidi.enforceRtlInHtml=function(s){return s.charAt(0)=="<"?s.replace(/<\w+/,"$& dir=rtl"):` `+s+""},goog.i18n.bidi.enforceRtlInText=function(s){return goog.i18n.bidi.Format.RLE+s+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.enforceLtrInHtml=function(s){return s.charAt(0)=="<"?s.replace(/<\w+/,"$& dir=ltr"):` `+s+""},goog.i18n.bidi.enforceLtrInText=function(s){return goog.i18n.bidi.Format.LRE+s+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g,goog.i18n.bidi.leftRe_=/left/gi,goog.i18n.bidi.rightRe_=/right/gi,goog.i18n.bidi.tempRe_=/%%%%/g,goog.i18n.bidi.mirrorCSS=function(s){return s.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)},goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g,goog.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g,goog.i18n.bidi.normalizeHebrewQuote=function(s){return s.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1״").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1׳")},goog.i18n.bidi.wordSeparatorRe_=/\s+/,goog.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/,goog.i18n.bidi.rtlDetectionThreshold_=.4,goog.i18n.bidi.estimateDirection=function(s,o){var et=0,tt=0,nt=!1;for(s=goog.i18n.bidi.stripHtmlIfNeeded_(s,o).split(goog.i18n.bidi.wordSeparatorRe_),o=0;ogoog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.detectRtlDirectionality=function(s,o){return goog.i18n.bidi.estimateDirection(s,o)==goog.i18n.bidi.Dir.RTL},goog.i18n.bidi.setElementDirAndAlign=function(s,o){s&&(o=goog.i18n.bidi.toDir(o))&&(s.style.textAlign=o==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,s.dir=o==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")},goog.i18n.bidi.setElementDirByTextDirectionality=function(s,o){switch(goog.i18n.bidi.estimateDirection(o)){case goog.i18n.bidi.Dir.LTR:s.dir="ltr";break;case goog.i18n.bidi.Dir.RTL:s.dir="rtl";break;default:s.removeAttribute("dir")}},goog.i18n.bidi.DirectionalString=function(){},goog.html.TrustedResourceUrl=function(){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_="",this.trustedURL_=null,this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0,goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString()},goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.html.TrustedResourceUrl.prototype.cloneWithParams=function(s,o){var et=goog.html.TrustedResourceUrl.unwrap(this),tt=(et=goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(et))[3]||"";return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(et[1]+goog.html.TrustedResourceUrl.stringifyParams_("?",et[2]||"",s)+goog.html.TrustedResourceUrl.stringifyParams_("#",tt,o))},goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"}),goog.html.TrustedResourceUrl.unwrap=function(s){return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(s).toString()},goog.html.TrustedResourceUrl.unwrapTrustedScriptURL=function(s){return s instanceof goog.html.TrustedResourceUrl&&s.constructor===goog.html.TrustedResourceUrl&&s.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?s.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_:(goog.asserts.fail("expected object of type TrustedResourceUrl, got '"+s+"' of type "+goog.typeOf(s)),"type_error:TrustedResourceUrl")},goog.html.TrustedResourceUrl.unwrapTrustedURL=function(s){return s.trustedURL_?s.trustedURL_:goog.html.TrustedResourceUrl.unwrap(s)},goog.html.TrustedResourceUrl.format=function(s,o){var et=goog.string.Const.unwrap(s);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(et))throw Error("Invalid TrustedResourceUrl format: "+et);return s=et.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,function(tt,nt){if(!Object.prototype.hasOwnProperty.call(o,nt))throw Error('Found marker, "'+nt+'", in format string, "'+et+'", but no valid label mapping found in args: '+JSON.stringify(o));return(tt=o[nt])instanceof goog.string.Const?goog.string.Const.unwrap(tt):encodeURIComponent(String(tt))}),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g,goog.html.TrustedResourceUrl.BASE_URL_=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i,goog.html.TrustedResourceUrl.URL_PARAM_PARSER_=/^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/,goog.html.TrustedResourceUrl.formatWithParams=function(s,o,et,tt){return goog.html.TrustedResourceUrl.format(s,o).cloneWithParams(et,tt)},goog.html.TrustedResourceUrl.fromConstant=function(s){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(s))},goog.html.TrustedResourceUrl.fromConstants=function(s){for(var o="",et=0;ets.length?"&":"")+encodeURIComponent(tt)+"="+encodeURIComponent(String(it)))}}return o},goog.html.SafeUrl=function(){this.privateDoNotAccessOrElseSafeUrlWrappedValue_="",this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez",goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0,goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()},goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.DEBUG&&(goog.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeUrlWrappedValue_+"}"}),goog.html.SafeUrl.unwrap=function(s){return goog.html.SafeUrl.unwrapTrustedURL(s).toString()},goog.html.SafeUrl.unwrapTrustedURL=function(s){return s instanceof goog.html.SafeUrl&&s.constructor===goog.html.SafeUrl&&s.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?s.privateDoNotAccessOrElseSafeUrlWrappedValue_:(goog.asserts.fail("expected object of type SafeUrl, got '"+s+"' of type "+goog.typeOf(s)),"type_error:SafeUrl")},goog.html.SafeUrl.fromConstant=function(s){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(s))},goog.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-wav|wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime))(?:;\w+=(?:\w+|"[\w;=]+"))*$/i,goog.html.SafeUrl.isSafeMimeType=function(s){return goog.html.SAFE_MIME_TYPE_PATTERN_.test(s)},goog.html.SafeUrl.fromBlob=function(s){return s=goog.html.SAFE_MIME_TYPE_PATTERN_.test(s.type)?goog.fs.url.createObjectUrl(s):goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.DATA_URL_PATTERN_=/^data:([^,]*);base64,[a-z0-9+\/]+=*$/i,goog.html.SafeUrl.fromDataUrl=function(s){var o=(s=s.replace(/(%0A|%0D)/g,"")).match(goog.html.DATA_URL_PATTERN_);return o=o&&goog.html.SAFE_MIME_TYPE_PATTERN_.test(o[1]),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(o?s:goog.html.SafeUrl.INNOCUOUS_STRING)},goog.html.SafeUrl.fromTelUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"tel:")||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SIP_URL_PATTERN_=/^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i,goog.html.SafeUrl.fromSipUrl=function(s){return goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(s))||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.fromFacebookMessengerUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"fb-messenger://share")||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.fromWhatsAppUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"whatsapp://send")||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.fromSmsUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"sms:")&&goog.html.SafeUrl.isSmsUrlBodyValid_(s)||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.isSmsUrlBodyValid_=function(s){var o=s.indexOf("#");if(0+~[\]()=^$|]+$/.test(et))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: "+s);if(!goog.html.SafeStyleSheet.hasBalancedBrackets_(et))throw Error("() and [] in selector must be balanced, got: "+s);return o instanceof goog.html.SafeStyle||(o=goog.html.SafeStyle.create(o)),s=s+"{"+goog.html.SafeStyle.unwrap(o).replace(/.");if(s.toUpperCase()in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error("Tag name <"+s+"> is not allowed for SafeHtml.")},goog.html.SafeHtml.createIframe=function(s,o,et,tt){s&&goog.html.TrustedResourceUrl.unwrap(s);var nt={};return nt.src=s||null,nt.srcdoc=o&&goog.html.SafeHtml.unwrap(o),s=goog.html.SafeHtml.combineAttributes(nt,{sandbox:""},et),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",s,tt)},goog.html.SafeHtml.createSandboxIframe=function(s,o,et,tt){if(!goog.html.SafeHtml.canUseSandboxIframe())throw Error("The browser does not support sandboxed iframes.");var nt={};return nt.src=s?goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(s)):null,nt.srcdoc=o||null,nt.sandbox="",s=goog.html.SafeHtml.combineAttributes(nt,{},et),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",s,tt)},goog.html.SafeHtml.canUseSandboxIframe=function(){return goog.global.HTMLIFrameElement&&"sandbox"in goog.global.HTMLIFrameElement.prototype},goog.html.SafeHtml.createScriptSrc=function(s,o){return goog.html.TrustedResourceUrl.unwrap(s),s=goog.html.SafeHtml.combineAttributes({src:s},{},o),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",s)},goog.html.SafeHtml.createScript=function(s,o){for(var et in o){var tt=et.toLowerCase();if(tt=="language"||tt=="src"||tt=="text"||tt=="type")throw Error('Cannot set "'+tt+'" attribute')}for(et="",s=goog.array.concat(s),tt=0;tt does not allow content."),nt+=">"):(tt=goog.html.SafeHtml.concat(et),nt+=">"+goog.html.SafeHtml.unwrap(tt)+"",tt=tt.getDirection()),(s=o&&o.dir)&&(tt=/^(ltr|rtl|auto)$/i.test(s)?goog.i18n.bidi.Dir.NEUTRAL:null),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(nt,tt)},goog.html.SafeHtml.stringifyAttributes=function(s,o){var et="";if(o)for(var tt in o){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(tt))throw Error('Invalid attribute name "'+tt+'".');var nt=o[tt];goog.isDefAndNotNull(nt)&&(et+=" "+goog.html.SafeHtml.getAttrNameAndValue_(s,tt,nt))}return et},goog.html.SafeHtml.combineAttributes=function(s,o,et){var tt,nt={};for(tt in s)goog.asserts.assert(tt.toLowerCase()==tt,"Must be lower case"),nt[tt]=s[tt];for(tt in o)goog.asserts.assert(tt.toLowerCase()==tt,"Must be lower case"),nt[tt]=o[tt];for(tt in et){var rt=tt.toLowerCase();if(rt in s)throw Error('Cannot override "'+rt+'" attribute, got "'+tt+'" with value "'+et[tt]+'"');rt in o&&delete nt[rt],nt[tt]=et[tt]}return nt},goog.html.SafeHtml.DOCTYPE_HTML=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.EMPTY=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.BR=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("
",goog.i18n.bidi.Dir.NEUTRAL),goog.html.uncheckedconversions={},goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(s,o,et){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(o,et||null)},goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(o)},goog.dom.asserts={},goog.dom.asserts.assertIsLocation=function(s){if(goog.asserts.ENABLE_ASSERTS){var o=goog.dom.asserts.getWindow_(s);o&&(!s||!(s instanceof o.Location)&&s instanceof o.Element)&&goog.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(s))}return s},goog.dom.asserts.assertIsElementType_=function(s,o){if(goog.asserts.ENABLE_ASSERTS){var et=goog.dom.asserts.getWindow_(s);et&&et[o]!==void 0&&(s&&(s instanceof et[o]||!(s instanceof et.Location||s instanceof et.Element))||goog.asserts.fail("Argument is not a %s (or a non-Element, non-Location mock); got: %s",o,goog.dom.asserts.debugStringForType_(s)))}return s},goog.dom.asserts.assertIsHTMLAnchorElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLAnchorElement")},goog.dom.asserts.assertIsHTMLButtonElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLButtonElement")},goog.dom.asserts.assertIsHTMLLinkElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLLinkElement")},goog.dom.asserts.assertIsHTMLImageElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLImageElement")},goog.dom.asserts.assertIsHTMLAudioElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLAudioElement")},goog.dom.asserts.assertIsHTMLVideoElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLVideoElement")},goog.dom.asserts.assertIsHTMLInputElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLInputElement")},goog.dom.asserts.assertIsHTMLTextAreaElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLTextAreaElement")},goog.dom.asserts.assertIsHTMLCanvasElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLCanvasElement")},goog.dom.asserts.assertIsHTMLEmbedElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLEmbedElement")},goog.dom.asserts.assertIsHTMLFormElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLFormElement")},goog.dom.asserts.assertIsHTMLFrameElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLFrameElement")},goog.dom.asserts.assertIsHTMLIFrameElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLIFrameElement")},goog.dom.asserts.assertIsHTMLObjectElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLObjectElement")},goog.dom.asserts.assertIsHTMLScriptElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLScriptElement")},goog.dom.asserts.debugStringForType_=function(s){if(!goog.isObject(s))return s===void 0?"undefined":s===null?"null":typeof s;try{return s.constructor.displayName||s.constructor.name||Object.prototype.toString.call(s)}catch{return""}},goog.dom.asserts.getWindow_=function(s){try{var o=s&&s.ownerDocument,et=o&&(o.defaultView||o.parentWindow);if((et=et||goog.global).Element&&et.Location)return et}catch{}return null},goog.functions={},goog.functions.constant=function(s){return function(){return s}},goog.functions.FALSE=function(){return!1},goog.functions.TRUE=function(){return!0},goog.functions.NULL=function(){return null},goog.functions.identity=function(s,o){return s},goog.functions.error=function(s){return function(){throw Error(s)}},goog.functions.fail=function(s){return function(){throw s}},goog.functions.lock=function(s,o){return o=o||0,function(){return s.apply(this,Array.prototype.slice.call(arguments,0,o))}},goog.functions.nth=function(s){return function(){return arguments[s]}},goog.functions.partialRight=function(s,o){var et=Array.prototype.slice.call(arguments,1);return function(){var tt=Array.prototype.slice.call(arguments);return tt.push.apply(tt,et),s.apply(this,tt)}},goog.functions.withReturnValue=function(s,o){return goog.functions.sequence(s,goog.functions.constant(o))},goog.functions.equalTo=function(s,o){return function(et){return o?s==et:s===et}},goog.functions.compose=function(s,o){var et=arguments,tt=et.length;return function(){var nt;tt&&(nt=et[tt-1].apply(this,arguments));for(var rt=tt-2;0<=rt;rt--)nt=et[rt].call(this,nt);return nt}},goog.functions.sequence=function(s){var o=arguments,et=o.length;return function(){for(var tt,nt=0;nt"u")return!1;var s=document.createElement("div"),o=document.createElement("div");return o.appendChild(document.createElement("div")),s.appendChild(o),!(goog.DEBUG&&!s.firstChild)&&(o=s.firstChild.firstChild,s.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY),!o.parentElement)}),goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(s,o){if(goog.dom.safe.isInnerHtmlCleanupRecursive_())for(;s.lastChild;)s.removeChild(s.lastChild);s.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(o)},goog.dom.safe.setInnerHtml=function(s,o){if(goog.asserts.ENABLE_ASSERTS){var et=s.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[et])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+s.tagName+".")}goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(s,o)},goog.dom.safe.setOuterHtml=function(s,o){s.outerHTML=goog.html.SafeHtml.unwrapTrustedHTML(o)},goog.dom.safe.setFormElementAction=function(s,o){o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),goog.dom.asserts.assertIsHTMLFormElement(s).action=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setButtonFormAction=function(s,o){o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),goog.dom.asserts.assertIsHTMLButtonElement(s).formAction=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setInputFormAction=function(s,o){o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),goog.dom.asserts.assertIsHTMLInputElement(s).formAction=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setStyle=function(s,o){s.style.cssText=goog.html.SafeStyle.unwrap(o)},goog.dom.safe.documentWrite=function(s,o){s.write(goog.html.SafeHtml.unwrapTrustedHTML(o))},goog.dom.safe.setAnchorHref=function(s,o){goog.dom.asserts.assertIsHTMLAnchorElement(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.href=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setImageSrc=function(s,o){if(goog.dom.asserts.assertIsHTMLImageElement(s),!(o instanceof goog.html.SafeUrl)){var et=/^data:image\//i.test(o);o=goog.html.SafeUrl.sanitizeAssertUnchanged(o,et)}s.src=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setAudioSrc=function(s,o){if(goog.dom.asserts.assertIsHTMLAudioElement(s),!(o instanceof goog.html.SafeUrl)){var et=/^data:audio\//i.test(o);o=goog.html.SafeUrl.sanitizeAssertUnchanged(o,et)}s.src=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setVideoSrc=function(s,o){if(goog.dom.asserts.assertIsHTMLVideoElement(s),!(o instanceof goog.html.SafeUrl)){var et=/^data:video\//i.test(o);o=goog.html.SafeUrl.sanitizeAssertUnchanged(o,et)}s.src=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setEmbedSrc=function(s,o){goog.dom.asserts.assertIsHTMLEmbedElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(o)},goog.dom.safe.setFrameSrc=function(s,o){goog.dom.asserts.assertIsHTMLFrameElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedURL(o)},goog.dom.safe.setIframeSrc=function(s,o){goog.dom.asserts.assertIsHTMLIFrameElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedURL(o)},goog.dom.safe.setIframeSrcdoc=function(s,o){goog.dom.asserts.assertIsHTMLIFrameElement(s),s.srcdoc=goog.html.SafeHtml.unwrapTrustedHTML(o)},goog.dom.safe.setLinkHrefAndRel=function(s,o,et){goog.dom.asserts.assertIsHTMLLinkElement(s),s.rel=et,goog.string.internal.caseInsensitiveContains(et,"stylesheet")?(goog.asserts.assert(o instanceof goog.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),s.href=goog.html.TrustedResourceUrl.unwrapTrustedURL(o)):s.href=o instanceof goog.html.TrustedResourceUrl?goog.html.TrustedResourceUrl.unwrapTrustedURL(o):o instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrapTrustedURL(o):goog.html.SafeUrl.unwrapTrustedURL(goog.html.SafeUrl.sanitizeAssertUnchanged(o))},goog.dom.safe.setObjectData=function(s,o){goog.dom.asserts.assertIsHTMLObjectElement(s),s.data=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(o)},goog.dom.safe.setScriptSrc=function(s,o){goog.dom.asserts.assertIsHTMLScriptElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(o),(o=goog.getScriptNonce())&&s.setAttribute("nonce",o)},goog.dom.safe.setScriptContent=function(s,o){goog.dom.asserts.assertIsHTMLScriptElement(s),s.text=goog.html.SafeScript.unwrapTrustedScript(o),(o=goog.getScriptNonce())&&s.setAttribute("nonce",o)},goog.dom.safe.setLocationHref=function(s,o){goog.dom.asserts.assertIsLocation(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.href=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.assignLocation=function(s,o){goog.dom.asserts.assertIsLocation(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.assign(goog.html.SafeUrl.unwrapTrustedURL(o))},goog.dom.safe.replaceLocation=function(s,o){goog.dom.asserts.assertIsLocation(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.replace(goog.html.SafeUrl.unwrapTrustedURL(o))},goog.dom.safe.openInWindow=function(s,o,et,tt,nt){return s=s instanceof goog.html.SafeUrl?s:goog.html.SafeUrl.sanitizeAssertUnchanged(s),(o||goog.global).open(goog.html.SafeUrl.unwrapTrustedURL(s),et?goog.string.Const.unwrap(et):"",tt,nt)},goog.dom.safe.parseFromStringHtml=function(s,o){return goog.dom.safe.parseFromString(s,o,"text/html")},goog.dom.safe.parseFromString=function(s,o,et){return s.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(o),et)},goog.dom.safe.createImageFromBlob=function(s){if(!/^image\/.*/g.test(s.type))throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");var o=goog.global.URL.createObjectURL(s);return(s=new goog.global.Image).onload=function(){goog.global.URL.revokeObjectURL(o)},goog.dom.safe.setImageSrc(s,goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Image blob URL."),o)),s},goog.string.DETECT_DOUBLE_ESCAPING=!1,goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1,goog.string.Unicode={NBSP:" "},goog.string.startsWith=goog.string.internal.startsWith,goog.string.endsWith=goog.string.internal.endsWith,goog.string.caseInsensitiveStartsWith=goog.string.internal.caseInsensitiveStartsWith,goog.string.caseInsensitiveEndsWith=goog.string.internal.caseInsensitiveEndsWith,goog.string.caseInsensitiveEquals=goog.string.internal.caseInsensitiveEquals,goog.string.subs=function(s,o){for(var et=s.split("%s"),tt="",nt=Array.prototype.slice.call(arguments,1);nt.length&&1=s||"€"<=s&&"�">=s},goog.string.stripNewlines=function(s){return s.replace(/(\r\n|\r|\n)+/g," ")},goog.string.canonicalizeNewlines=function(s){return s.replace(/(\r\n|\r|\n)/g,` -`)},goog.string.normalizeWhitespace=function(s){return s.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(s){return s.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(s){return s.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.string.internal.trim,goog.string.trimLeft=function(s){return s.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(s){return s.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare,goog.string.numberAwareCompare_=function(s,o,et){if(s==o)return 0;if(!s)return-1;if(!o)return 1;for(var tt=s.toLowerCase().match(et),nt=o.toLowerCase().match(et),rt=Math.min(tt.length,nt.length),it=0;it",""":'"'},tt=o?o.createElement("div"):goog.global.document.createElement("div");return s.replace(goog.string.HTML_ENTITY_PATTERN_,function(nt,rt){var it=et[nt];return it||(rt.charAt(0)=="#"&&(rt=+("0"+rt.substr(1)),isNaN(rt)||(it=String.fromCharCode(rt))),it||(goog.dom.safe.setInnerHtml(tt,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),nt+" ")),it=tt.firstChild.nodeValue.slice(0,-1)),et[nt]=it)})},goog.string.unescapePureXmlEntities_=function(s){return s.replace(/&([^;]+);/g,function(o,et){switch(et){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:return et.charAt(0)!="#"||(et=+("0"+et.substr(1)),isNaN(et))?o:String.fromCharCode(et)}})},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(s,o){return goog.string.newLineToBr(s.replace(/ /g,"  "),o)},goog.string.preserveSpaces=function(s){return s.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(s,o){for(var et=o.length,tt=0;tto&&(s=s.substring(0,o-3)+"..."),et&&(s=goog.string.htmlEscape(s)),s},goog.string.truncateMiddle=function(s,o,et,tt){if(et&&(s=goog.string.unescapeEntities(s)),tt&&s.length>o){tt>o&&(tt=o);var nt=s.length-tt;s=s.substring(0,o-tt)+"..."+s.substring(nt)}else s.length>o&&(tt=Math.floor(o/2),nt=s.length-tt,s=s.substring(0,tt+o%2)+"..."+s.substring(nt));return et&&(s=goog.string.htmlEscape(s)),s},goog.string.specialEscapeChars_={"\0":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(s){s=String(s);for(var o=['"'],et=0;etnt?tt:goog.string.escapeChar(tt))}return o.push('"'),o.join("")},goog.string.escapeString=function(s){for(var o=[],et=0;eto)var et=s;else 256>o?(et="\\x",(16>o||256o&&(et+="0")),et+=o.toString(16).toUpperCase();return goog.string.jsEscapeCache_[s]=et},goog.string.contains=goog.string.internal.contains,goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains,goog.string.countOf=function(s,o){return s&&o?s.split(o).length-1:0},goog.string.removeAt=function(s,o,et){var tt=s;return 0<=o&&o>>0;return o},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(s){var o=Number(s);return o==0&&goog.string.isEmptyOrWhitespace(s)?NaN:o},goog.string.isLowerCamelCase=function(s){return/^[a-z]+([A-Z][a-z]*)*$/.test(s)},goog.string.isUpperCamelCase=function(s){return/^([A-Z][a-z]*)+$/.test(s)},goog.string.toCamelCase=function(s){return String(s).replace(/\-([a-z])/g,function(o,et){return et.toUpperCase()})},goog.string.toSelectorCase=function(s){return String(s).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(s,o){return o=goog.isString(o)?goog.string.regExpEscape(o):"\\s",s.replace(new RegExp("(^"+(o?"|["+o+"]+":"")+")([a-z])","g"),function(et,tt,nt){return tt+nt.toUpperCase()})},goog.string.capitalize=function(s){return String(s.charAt(0)).toUpperCase()+String(s.substr(1)).toLowerCase()},goog.string.parseInt=function(s){return isFinite(s)&&(s=String(s)),goog.isString(s)?/^\s*-?0x/i.test(s)?parseInt(s,16):parseInt(s,10):NaN},goog.string.splitLimit=function(s,o,et){s=s.split(o);for(var tt=[];0et&&(et=nt)}return et==-1?s:s.slice(et+1)},goog.string.editDistance=function(s,o){var et=[],tt=[];if(s==o)return 0;if(!s.length||!o.length)return Math.max(s.length,o.length);for(var nt=0;ntparseFloat(s)?String(o):s},goog.userAgent.getVersionRegexResult_=function(){var s=goog.userAgent.getUserAgentString();return goog.userAgent.GECKO?/rv:([^\);]+)(\)|;)/.exec(s):goog.userAgent.EDGE?/Edge\/([\d\.]+)/.exec(s):goog.userAgent.IE?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(s):goog.userAgent.WEBKIT?/WebKit\/(\S+)/.exec(s):goog.userAgent.OPERA?/(?:Version)[ \/]?(\S+)/.exec(s):void 0},goog.userAgent.getDocumentMode_=function(){var s=goog.global.document;return s?s.documentMode:void 0},goog.userAgent.VERSION=goog.userAgent.determineVersion_(),goog.userAgent.compare=function(s,o){return goog.string.compareVersions(s,o)},goog.userAgent.isVersionOrHigherCache_={},goog.userAgent.isVersionOrHigher=function(s){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,s,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,s)})},goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher,goog.userAgent.isDocumentModeOrHigher=function(s){return Number(goog.userAgent.DOCUMENT_MODE)>=s},goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher,goog.userAgent.DOCUMENT_MODE=function(){if(goog.global.document&&goog.userAgent.IE)return goog.userAgent.getDocumentMode_()}(),goog.userAgent.product={},goog.userAgent.product.ASSUME_FIREFOX=!1,goog.userAgent.product.ASSUME_IPHONE=!1,goog.userAgent.product.ASSUME_IPAD=!1,goog.userAgent.product.ASSUME_ANDROID=!1,goog.userAgent.product.ASSUME_CHROME=!1,goog.userAgent.product.ASSUME_SAFARI=!1,goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI,goog.userAgent.product.OPERA=goog.userAgent.OPERA,goog.userAgent.product.IE=goog.userAgent.IE,goog.userAgent.product.EDGE=goog.userAgent.EDGE,goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox(),goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()},goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_(),goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser(),goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome(),goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()},goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_(),goog.crypt.base64={},goog.crypt.base64.DEFAULT_ALPHABET_COMMON_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"+/=",goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"-_.",goog.crypt.base64.Alphabet={DEFAULT:0,NO_PADDING:1,WEBSAFE:2,WEBSAFE_DOT_PADDING:3,WEBSAFE_NO_PADDING:4},goog.crypt.base64.paddingChars_="=.",goog.crypt.base64.isPadding_=function(s){return goog.string.contains(goog.crypt.base64.paddingChars_,s)},goog.crypt.base64.byteToCharMaps_={},goog.crypt.base64.charToByteMap_=null,goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA,goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||typeof goog.global.btoa=="function",goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&typeof goog.global.atob=="function",goog.crypt.base64.encodeByteArray=function(s,o){goog.asserts.assert(goog.isArrayLike(s),"encodeByteArray takes an array as a parameter"),o===void 0&&(o=goog.crypt.base64.Alphabet.DEFAULT),goog.crypt.base64.init_(),o=goog.crypt.base64.byteToCharMaps_[o];for(var et=[],tt=0;tt>2;nt=(3&nt)<<4|it>>4,it=(15&it)<<2|st>>6,st&=63,ot||(st=64,rt||(it=64)),et.push(o[at],o[nt],o[it]||"",o[st]||"")}return et.join("")},goog.crypt.base64.encodeString=function(s,o){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!o?goog.global.btoa(s):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(s),o)},goog.crypt.base64.decodeString=function(s,o){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!o)return goog.global.atob(s);var et="";return goog.crypt.base64.decodeStringInternal_(s,function(tt){et+=String.fromCharCode(tt)}),et},goog.crypt.base64.decodeStringToByteArray=function(s,o){var et=[];return goog.crypt.base64.decodeStringInternal_(s,function(tt){et.push(tt)}),et},goog.crypt.base64.decodeStringToUint8Array=function(s){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var o=s.length,et=3*o/4;et%3?et=Math.floor(et):goog.crypt.base64.isPadding_(s[o-1])&&(et=goog.crypt.base64.isPadding_(s[o-2])?et-2:et-1);var tt=new Uint8Array(et),nt=0;return goog.crypt.base64.decodeStringInternal_(s,function(rt){tt[nt++]=rt}),tt.subarray(0,nt)},goog.crypt.base64.decodeStringInternal_=function(s,o){function et(st){for(;tt>4),it!=64&&(o(rt<<4&240|it>>2),ot!=64&&o(it<<6&192|ot))}},goog.crypt.base64.init_=function(){if(!goog.crypt.base64.charToByteMap_){goog.crypt.base64.charToByteMap_={};for(var s=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""),o=["+/=","+/","-_=","-_.","-_"],et=0;5>et;et++){var tt=s.concat(o[et].split(""));goog.crypt.base64.byteToCharMaps_[et]=tt;for(var nt=0;nt>>0;s=Math.floor((s-o)/jspb.BinaryConstants.TWO_TO_32)>>>0,jspb.utils.split64Low=o,jspb.utils.split64High=s},jspb.utils.splitInt64=function(s){var o=0>s,et=(s=Math.abs(s))>>>0;s=Math.floor((s-et)/jspb.BinaryConstants.TWO_TO_32),s>>>=0,o&&(s=~s>>>0,4294967295<(et=1+(~et>>>0))&&(et=0,4294967295<++s&&(s=0))),jspb.utils.split64Low=et,jspb.utils.split64High=s},jspb.utils.splitZigzag64=function(s){var o=0>s;s=2*Math.abs(s),jspb.utils.splitUint64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;o&&(s==0?et==0?et=s=4294967295:(et--,s=4294967295):s--),jspb.utils.split64Low=s,jspb.utils.split64High=et},jspb.utils.splitFloat32=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)0<1/s?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(s))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(s>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|2139095040)>>>0;else if(s>>0;else{var et=Math.floor(Math.log(s)/Math.LN2);s*=Math.pow(2,-et),s=8388607&Math.round(s*jspb.BinaryConstants.TWO_TO_23),jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|et+127<<23|s)>>>0}},jspb.utils.splitFloat64=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)jspb.utils.split64High=0<1/s?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(s))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(s>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(o<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(s>>0,jspb.utils.split64Low=et>>>0}else{var tt=0;if(2<=(et=s))for(;2<=et&&1023>tt;)tt++,et/=2;else for(;1>et&&-1022>>0,jspb.utils.split64High=(o<<31|tt+1023<<20|s)>>>0,jspb.utils.split64Low=et}},jspb.utils.splitHash64=function(s){var o=s.charCodeAt(0),et=s.charCodeAt(1),tt=s.charCodeAt(2),nt=s.charCodeAt(3),rt=s.charCodeAt(4),it=s.charCodeAt(5),ot=s.charCodeAt(6);s=s.charCodeAt(7),jspb.utils.split64Low=o+(et<<8)+(tt<<16)+(nt<<24)>>>0,jspb.utils.split64High=rt+(it<<8)+(ot<<16)+(s<<24)>>>0},jspb.utils.joinUint64=function(s,o){return o*jspb.BinaryConstants.TWO_TO_32+(s>>>0)},jspb.utils.joinInt64=function(s,o){var et=2147483648&o;return et&&(o=~o>>>0,(s=1+~s>>>0)==0&&(o=o+1>>>0)),s=jspb.utils.joinUint64(s,o),et?-s:s},jspb.utils.toZigzag64=function(s,o,et){var tt=o>>31;return et(s<<1^tt,(o<<1|s>>>31)^tt)},jspb.utils.joinZigzag64=function(s,o){return jspb.utils.fromZigzag64(s,o,jspb.utils.joinInt64)},jspb.utils.fromZigzag64=function(s,o,et){var tt=-(1&s);return et((s>>>1|o<<31)^tt,o>>>1^tt)},jspb.utils.joinFloat32=function(s,o){o=2*(s>>31)+1;var et=s>>>23&255;return s&=8388607,et==255?s?NaN:1/0*o:et==0?o*Math.pow(2,-149)*s:o*Math.pow(2,et-150)*(s+Math.pow(2,23))},jspb.utils.joinFloat64=function(s,o){var et=2*(o>>31)+1,tt=o>>>20&2047;return s=jspb.BinaryConstants.TWO_TO_32*(1048575&o)+s,tt==2047?s?NaN:1/0*et:tt==0?et*Math.pow(2,-1074)*s:et*Math.pow(2,tt-1075)*(s+jspb.BinaryConstants.TWO_TO_52)},jspb.utils.joinHash64=function(s,o){return String.fromCharCode(s>>>0&255,s>>>8&255,s>>>16&255,s>>>24&255,o>>>0&255,o>>>8&255,o>>>16&255,o>>>24&255)},jspb.utils.DIGITS="0123456789abcdef".split(""),jspb.utils.ZERO_CHAR_CODE_=48,jspb.utils.A_CHAR_CODE_=97,jspb.utils.joinUnsignedDecimalString=function(s,o){function et(nt,rt){return nt=nt?String(nt):"",rt?"0000000".slice(nt.length)+nt:nt}if(2097151>=o)return""+(jspb.BinaryConstants.TWO_TO_32*o+s);var tt=(s>>>24|o<<8)>>>0&16777215;return s=(16777215&s)+6777216*tt+6710656*(o=o>>16&65535),tt+=8147497*o,o*=2,1e7<=s&&(tt+=Math.floor(s/1e7),s%=1e7),1e7<=tt&&(o+=Math.floor(tt/1e7),tt%=1e7),et(o,0)+et(tt,o)+et(s,1)},jspb.utils.joinSignedDecimalString=function(s,o){var et=2147483648&o;return et&&(o=~o+((s=1+~s>>>0)==0?1:0)>>>0),s=jspb.utils.joinUnsignedDecimalString(s,o),et?"-"+s:s},jspb.utils.hash64ToDecimalString=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinSignedDecimalString(s,et):jspb.utils.joinUnsignedDecimalString(s,et)},jspb.utils.hash64ArrayToDecimalStrings=function(s,o){for(var et=Array(s.length),tt=0;ttot&&(rt!==1||0>>=8}goog.asserts.assert(0rt;rt++)tt[rt]=255&~tt[rt]}(),o(1,1)),goog.crypt.byteArrayToString(tt)},jspb.utils.splitDecimalString=function(s){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(s))},jspb.utils.toHexDigit_=function(s){return String.fromCharCode(10>s?jspb.utils.ZERO_CHAR_CODE_+s:jspb.utils.A_CHAR_CODE_-10+s)},jspb.utils.fromHexCharCode_=function(s){return s>=jspb.utils.A_CHAR_CODE_?s-jspb.utils.A_CHAR_CODE_+10:s-jspb.utils.ZERO_CHAR_CODE_},jspb.utils.hash64ToHexString=function(s){var o=Array(18);o[0]="0",o[1]="x";for(var et=0;8>et;et++){var tt=s.charCodeAt(7-et);o[2*et+2]=jspb.utils.toHexDigit_(tt>>4),o[2*et+3]=jspb.utils.toHexDigit_(15&tt)}return o.join("")},jspb.utils.hexStringToHash64=function(s){s=s.toLowerCase(),goog.asserts.assert(s.length==18),goog.asserts.assert(s[0]=="0"),goog.asserts.assert(s[1]=="x");for(var o="",et=0;8>et;et++){var tt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+2)),nt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+3));o=String.fromCharCode(16*tt+nt)+o}return o},jspb.utils.hash64ToNumber=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinInt64(s,et):jspb.utils.joinUint64(s,et)},jspb.utils.numberToHash64=function(s){return jspb.utils.splitInt64(s),jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.utils.countVarints=function(s,o,et){for(var tt=0,nt=o;nt>7;return et-o-tt},jspb.utils.countVarintFields=function(s,o,et,tt){var nt=0;if(128>(tt=8*tt+jspb.BinaryConstants.WireType.VARINT))for(;o>=7}if(s[o++]!=rt)break;for(nt++;128&(rt=s[o++]););}return nt},jspb.utils.countFixedFields_=function(s,o,et,tt,nt){var rt=0;if(128>tt)for(;o>=7}if(s[o++]!=it)break;rt++,o+=nt}return rt},jspb.utils.countFixed32Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED32,4)},jspb.utils.countFixed64Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED64,8)},jspb.utils.countDelimitedFields=function(s,o,et,tt){var nt=0;for(tt=8*tt+jspb.BinaryConstants.WireType.DELIMITED;o>=7}if(s[o++]!=rt)break;nt++;for(var it=0,ot=1;it+=(127&(rt=s[o++]))*ot,ot*=128,(128&rt)!=0;);o+=it}return nt},jspb.utils.debugBytesToTextFormat=function(s){var o='"';if(s){s=jspb.utils.byteSourceToUint8Array(s);for(var et=0;ets[et]&&(o+="0"),o+=s[et].toString(16)}return o+'"'},jspb.utils.debugScalarToTextFormat=function(s){return typeof s=="string"?goog.string.quote(s):s.toString()},jspb.utils.stringToByteArray=function(s){for(var o=new Uint8Array(s.length),et=0;etjspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)},jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)},jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1},jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_},jspb.BinaryDecoder.prototype.setBlock=function(s,o,et){this.bytes_=jspb.utils.byteSourceToUint8Array(s),this.start_=o!==void 0?o:0,this.end_=et!==void 0?this.start_+et:this.bytes_.length,this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_},jspb.BinaryDecoder.prototype.setEnd=function(s){this.end_=s},jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_},jspb.BinaryDecoder.prototype.setCursor=function(s){this.cursor_=s},jspb.BinaryDecoder.prototype.advance=function(s){this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_)},jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_},jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_},jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_},jspb.BinaryDecoder.prototype.readSplitVarint64=function(s){for(var o=128,et=0,tt=0,nt=0;4>nt&&128<=o;nt++)et|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt;if(128<=o&&(et|=(127&(o=this.bytes_[this.cursor_++]))<<28,tt|=(127&o)>>4),128<=o)for(nt=0;5>nt&&128<=o;nt++)tt|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt+3;if(128>o)return s(et>>>0,tt>>>0);goog.asserts.fail("Failed to read varint, encoding is invalid."),this.error_=!0},jspb.BinaryDecoder.prototype.readSplitZigzagVarint64=function(s){return this.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryDecoder.prototype.readSplitFixed64=function(s){var o=this.bytes_,et=this.cursor_;this.cursor_+=8;for(var tt=0,nt=0,rt=et+7;rt>=et;rt--)tt=tt<<8|o[rt],nt=nt<<8|o[rt+4];return s(tt,nt)},jspb.BinaryDecoder.prototype.skipVarint=function(){for(;128&this.bytes_[this.cursor_];)this.cursor_++;this.cursor_++},jspb.BinaryDecoder.prototype.unskipVarint=function(s){for(;128>>=7;this.cursor_--},jspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var s=this.bytes_,o=s[this.cursor_+0],et=127&o;return 128>o?(this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+1]))<<7,128>o?(this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+2]))<<14,128>o?(this.cursor_+=3,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+3]))<<21,128>o?(this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(15&(o=s[this.cursor_+4]))<<28,128>o?(this.cursor_+=5,goog.asserts.assert(this.cursor_<=this.end_),et>>>0):(this.cursor_+=5,128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&goog.asserts.assert(!1),goog.asserts.assert(this.cursor_<=this.end_),et)))))},jspb.BinaryDecoder.prototype.readSignedVarint32=jspb.BinaryDecoder.prototype.readUnsignedVarint32,jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()},jspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()},jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var s=this.readUnsignedVarint32();return s>>>1^-(1&s)},jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinUint64)},jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString)},jspb.BinaryDecoder.prototype.readSignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinInt64)},jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){return this.readSplitVarint64(jspb.utils.joinZigzag64)},jspb.BinaryDecoder.prototype.readZigzagVarintHash64=function(){return this.readSplitZigzagVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readUint8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s},jspb.BinaryDecoder.prototype.readUint16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8},jspb.BinaryDecoder.prototype.readUint32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8|et<<16|tt<<24)>>>0},jspb.BinaryDecoder.prototype.readUint64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUint64(s,o)},jspb.BinaryDecoder.prototype.readUint64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUnsignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readInt8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s<<24>>24},jspb.BinaryDecoder.prototype.readInt16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8)<<16>>16},jspb.BinaryDecoder.prototype.readInt32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8|et<<16|tt<<24},jspb.BinaryDecoder.prototype.readInt64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinInt64(s,o)},jspb.BinaryDecoder.prototype.readInt64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinSignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readFloat=function(){var s=this.readUint32();return jspb.utils.joinFloat32(s,0)},jspb.BinaryDecoder.prototype.readDouble=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinFloat64(s,o)},jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]},jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()},jspb.BinaryDecoder.prototype.readString=function(s){var o=this.bytes_,et=this.cursor_;s=et+s;for(var tt=[],nt="";etrt)tt.push(rt);else{if(192>rt)continue;if(224>rt){var it=o[et++];tt.push((31&rt)<<6|63&it)}else if(240>rt){it=o[et++];var ot=o[et++];tt.push((15&rt)<<12|(63&it)<<6|63&ot)}else 248>rt&&(rt=(7&rt)<<18|(63&(it=o[et++]))<<12|(63&(ot=o[et++]))<<6|63&o[et++],rt-=65536,tt.push(55296+(rt>>10&1023),56320+(1023&rt)))}8192<=tt.length&&(nt+=String.fromCharCode.apply(null,tt),tt.length=0)}return nt+=goog.crypt.byteArrayToString(tt),this.cursor_=et,nt},jspb.BinaryDecoder.prototype.readStringWithLength=function(){var s=this.readUnsignedVarint32();return this.readString(s)},jspb.BinaryDecoder.prototype.readBytes=function(s){if(0>s||this.cursor_+s>this.bytes_.length)return this.error_=!0,goog.asserts.fail("Invalid byte length!"),new Uint8Array(0);var o=this.bytes_.subarray(this.cursor_,this.cursor_+s);return this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_),o},jspb.BinaryDecoder.prototype.readVarintHash64=function(){return this.readSplitVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readFixedHash64=function(){var s=this.bytes_,o=this.cursor_,et=s[o+0],tt=s[o+1],nt=s[o+2],rt=s[o+3],it=s[o+4],ot=s[o+5],st=s[o+6];return s=s[o+7],this.cursor_+=8,String.fromCharCode(et,tt,nt,rt,it,ot,st,s)},jspb.BinaryReader=function(s,o,et){this.decoder_=jspb.BinaryDecoder.alloc(s,o,et),this.fieldCursor_=this.decoder_.getCursor(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null},jspb.BinaryReader.instanceCache_=[],jspb.BinaryReader.alloc=function(s,o,et){if(jspb.BinaryReader.instanceCache_.length){var tt=jspb.BinaryReader.instanceCache_.pop();return s&&tt.decoder_.setBlock(s,o,et),tt}return new jspb.BinaryReader(s,o,et)},jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc,jspb.BinaryReader.prototype.free=function(){this.decoder_.clear(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null,100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)},jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_},jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()},jspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()},jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_},jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_},jspb.BinaryReader.prototype.isDelimited=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED},jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP},jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()},jspb.BinaryReader.prototype.setBlock=function(s,o,et){this.decoder_.setBlock(s,o,et),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.advance=function(s){this.decoder_.advance(s)},jspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return goog.asserts.fail("Decoder hit an error"),!1;this.fieldCursor_=this.decoder_.getCursor();var s=this.decoder_.readUnsignedVarint32(),o=s>>>3;return(s&=7)!=jspb.BinaryConstants.WireType.VARINT&&s!=jspb.BinaryConstants.WireType.FIXED32&&s!=jspb.BinaryConstants.WireType.FIXED64&&s!=jspb.BinaryConstants.WireType.DELIMITED&&s!=jspb.BinaryConstants.WireType.START_GROUP&&s!=jspb.BinaryConstants.WireType.END_GROUP?(goog.asserts.fail("Invalid wire type: %s (at position %s)",s,this.fieldCursor_),this.error_=!0,!1):(this.nextField_=o,this.nextWireType_=s,!0)},jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)},jspb.BinaryReader.prototype.skipMatchingFields=function(){var s=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==s;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()},jspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(goog.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()},jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)goog.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField();else{var s=this.decoder_.readUnsignedVarint32();this.decoder_.advance(s)}},jspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(goog.asserts.fail("Invalid wire type for skipFixed32Field"),this.skipField()):this.decoder_.advance(4)},jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(goog.asserts.fail("Invalid wire type for skipFixed64Field"),this.skipField()):this.decoder_.advance(8)},jspb.BinaryReader.prototype.skipGroup=function(){for(var s=this.nextField_;;){if(!this.nextField()){goog.asserts.fail("Unmatched start-group tag: stream EOF"),this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP){this.nextField_!=s&&(goog.asserts.fail("Unmatched end-group tag"),this.error_=!0);break}this.skipField()}},jspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:goog.asserts.fail("Invalid wire encoding for field.")}},jspb.BinaryReader.prototype.registerReadCallback=function(s,o){this.readCallbacks_===null&&(this.readCallbacks_={}),goog.asserts.assert(!this.readCallbacks_[s]),this.readCallbacks_[s]=o},jspb.BinaryReader.prototype.runReadCallback=function(s){return goog.asserts.assert(this.readCallbacks_!==null),s=this.readCallbacks_[s],goog.asserts.assert(s),s(this)},jspb.BinaryReader.prototype.readAny=function(s){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(s);var o=jspb.BinaryConstants.FieldType;switch(s){case o.DOUBLE:return this.readDouble();case o.FLOAT:return this.readFloat();case o.INT64:return this.readInt64();case o.UINT64:return this.readUint64();case o.INT32:return this.readInt32();case o.FIXED64:return this.readFixed64();case o.FIXED32:return this.readFixed32();case o.BOOL:return this.readBool();case o.STRING:return this.readString();case o.GROUP:goog.asserts.fail("Group field type not supported in readAny()");case o.MESSAGE:goog.asserts.fail("Message field type not supported in readAny()");case o.BYTES:return this.readBytes();case o.UINT32:return this.readUint32();case o.ENUM:return this.readEnum();case o.SFIXED32:return this.readSfixed32();case o.SFIXED64:return this.readSfixed64();case o.SINT32:return this.readSint32();case o.SINT64:return this.readSint64();case o.FHASH64:return this.readFixedHash64();case o.VHASH64:return this.readVarintHash64();default:goog.asserts.fail("Invalid field type in readAny()")}return 0},jspb.BinaryReader.prototype.readMessage=function(s,o){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var et=this.decoder_.getEnd(),tt=this.decoder_.readUnsignedVarint32();tt=this.decoder_.getCursor()+tt,this.decoder_.setEnd(tt),o(s,this),this.decoder_.setCursor(tt),this.decoder_.setEnd(et)},jspb.BinaryReader.prototype.readGroup=function(s,o,et){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP),goog.asserts.assert(this.nextField_==s),et(o,this),this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(goog.asserts.fail("Group submessage did not end with an END_GROUP tag"),this.error_=!0)},jspb.BinaryReader.prototype.getFieldDecoder=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32(),o=this.decoder_.getCursor(),et=o+s;return s=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),o,s),this.decoder_.setCursor(et),s},jspb.BinaryReader.prototype.readInt32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32()},jspb.BinaryReader.prototype.readInt32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32String()},jspb.BinaryReader.prototype.readInt64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readInt64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64String()},jspb.BinaryReader.prototype.readUint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readUint32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32String()},jspb.BinaryReader.prototype.readUint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64()},jspb.BinaryReader.prototype.readUint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64String()},jspb.BinaryReader.prototype.readSint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint32()},jspb.BinaryReader.prototype.readSint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64()},jspb.BinaryReader.prototype.readSint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64String()},jspb.BinaryReader.prototype.readFixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readUint32()},jspb.BinaryReader.prototype.readFixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64()},jspb.BinaryReader.prototype.readFixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64String()},jspb.BinaryReader.prototype.readSfixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32()},jspb.BinaryReader.prototype.readSfixed32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32().toString()},jspb.BinaryReader.prototype.readSfixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64()},jspb.BinaryReader.prototype.readSfixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64String()},jspb.BinaryReader.prototype.readFloat=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readFloat()},jspb.BinaryReader.prototype.readDouble=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readDouble()},jspb.BinaryReader.prototype.readBool=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),!!this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readEnum=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readString=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(s)},jspb.BinaryReader.prototype.readBytes=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(s)},jspb.BinaryReader.prototype.readVarintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readVarintHash64()},jspb.BinaryReader.prototype.readSintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarintHash64()},jspb.BinaryReader.prototype.readSplitVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(s)},jspb.BinaryReader.prototype.readSplitZigzagVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryReader.prototype.readFixedHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readFixedHash64()},jspb.BinaryReader.prototype.readSplitFixed64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readSplitFixed64(s)},jspb.BinaryReader.prototype.readPackedField_=function(s){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var o=this.decoder_.readUnsignedVarint32();o=this.decoder_.getCursor()+o;for(var et=[];this.decoder_.getCursor()o.length?et.length:o.length;for(s.getJsPbMessageId()&&(tt[0]=s.getJsPbMessageId(),nt=1);nt>>1|(1&this.hi)<<31)>>>0,this.hi>>>1>>>0)},jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)},jspb.arith.UInt64.prototype.msb=function(){return!!(2147483648&this.hi)},jspb.arith.UInt64.prototype.lsb=function(){return!!(1&this.lo)},jspb.arith.UInt64.prototype.zero=function(){return this.lo==0&&this.hi==0},jspb.arith.UInt64.prototype.add=function(s){return new jspb.arith.UInt64((this.lo+s.lo&4294967295)>>>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.UInt64.prototype.sub=function(s){return new jspb.arith.UInt64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.UInt64.mul32x32=function(s,o){var et=65535&s,tt=65535&o,nt=o>>>16;for(o=et*tt+65536*(et*nt&65535)+65536*((s>>>=16)*tt&65535),et=s*nt+(et*nt>>>16)+(s*tt>>>16);4294967296<=o;)o-=4294967296,et+=1;return new jspb.arith.UInt64(o>>>0,et>>>0)},jspb.arith.UInt64.prototype.mul=function(s){var o=jspb.arith.UInt64.mul32x32(this.lo,s);return(s=jspb.arith.UInt64.mul32x32(this.hi,s)).hi=s.lo,s.lo=0,o.add(s)},jspb.arith.UInt64.prototype.div=function(s){if(s==0)return[];var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(this.lo,this.hi);s=new jspb.arith.UInt64(s,0);for(var tt=new jspb.arith.UInt64(1,0);!s.msb();)s=s.leftShift(),tt=tt.leftShift();for(;!tt.zero();)0>=s.cmp(et)&&(o=o.add(tt),et=et.sub(s)),s=s.rightShift(),tt=tt.rightShift();return[o,et]},jspb.arith.UInt64.prototype.toString=function(){for(var s="",o=this;!o.zero();){var et=(o=o.div(10))[0];s=o[1].lo+s,o=et}return s==""&&(s="0"),s},jspb.arith.UInt64.fromString=function(s){for(var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(0,0),tt=0;tts[tt]||"9">>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.sub=function(s){return new jspb.arith.Int64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)},jspb.arith.Int64.prototype.toString=function(){var s=(2147483648&this.hi)!=0,o=new jspb.arith.UInt64(this.lo,this.hi);return s&&(o=new jspb.arith.UInt64(0,0).sub(o)),(s?"-":"")+o.toString()},jspb.arith.Int64.fromString=function(s){var o=0>>7|o<<25)>>>0,o>>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSplitFixed64=function(s,o){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(o==Math.floor(o)),goog.asserts.assert(0<=s&&s>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSignedVarint32=function(s){if(goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&so;o++)this.buffer_.push(127&s|128),s>>=7;this.buffer_.push(1)}},jspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_31&&s>31)>>>0)},jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s>>0,tt>>>0)})},jspb.BinaryEncoder.prototype.writeUint8=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&256>s),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeUint16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&65536>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeUint32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeUint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&ss),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeInt16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(-32768<=s&&32768>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeInt32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeInt64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_63&&+s=-jspb.BinaryConstants.FLOAT32_MAX&&s<=jspb.BinaryConstants.FLOAT32_MAX),jspb.utils.splitFloat32(s),this.writeUint32(jspb.utils.split64Low)},jspb.BinaryEncoder.prototype.writeDouble=function(s){goog.asserts.assert(1/0===s||-1/0===s||isNaN(s)||s>=-jspb.BinaryConstants.FLOAT64_MAX&&s<=jspb.BinaryConstants.FLOAT64_MAX),jspb.utils.splitFloat64(s),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeBool=function(s){goog.asserts.assert(typeof s=="boolean"||typeof s=="number"),this.buffer_.push(s?1:0)},jspb.BinaryEncoder.prototype.writeEnum=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&stt)this.buffer_.push(tt);else if(2048>tt)this.buffer_.push(tt>>6|192),this.buffer_.push(63&tt|128);else if(65536>tt)if(55296<=tt&&56319>=tt&&et+1=nt&&(tt=1024*(tt-55296)+nt-56320+65536,this.buffer_.push(tt>>18|240),this.buffer_.push(tt>>12&63|128),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128),et++)}else this.buffer_.push(tt>>12|224),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128)}return this.buffer_.length-o},jspb.BinaryWriter=function(){this.blocks_=[],this.totalLength_=0,this.encoder_=new jspb.BinaryEncoder,this.bookmarks_=[]},jspb.BinaryWriter.prototype.appendUint8Array_=function(s){var o=this.encoder_.end();this.blocks_.push(o),this.blocks_.push(s),this.totalLength_+=o.length+s.length},jspb.BinaryWriter.prototype.beginDelimited_=function(s){return this.writeFieldHeader_(s,jspb.BinaryConstants.WireType.DELIMITED),s=this.encoder_.end(),this.blocks_.push(s),this.totalLength_+=s.length,s.push(this.totalLength_),s},jspb.BinaryWriter.prototype.endDelimited_=function(s){var o=s.pop();for(o=this.totalLength_+this.encoder_.length()-o,goog.asserts.assert(0<=o);127>>=7,this.totalLength_++;s.push(o),this.totalLength_++},jspb.BinaryWriter.prototype.writeSerializedMessage=function(s,o,et){this.appendUint8Array_(s.subarray(o,et))},jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(s,o,et){s!=null&&o!=null&&et!=null&&this.writeSerializedMessage(s,o,et)},jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[],this.encoder_.end(),this.totalLength_=0,this.bookmarks_=[]},jspb.BinaryWriter.prototype.getResultBuffer=function(){goog.asserts.assert(this.bookmarks_.length==0);for(var s=new Uint8Array(this.totalLength_+this.encoder_.length()),o=this.blocks_,et=o.length,tt=0,nt=0;nt=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o>>0,rt>>>0)})},jspb.BinaryWriter.prototype.writeRepeatedInt32=function(s,o){if(o!=null)for(var et=0;et>>0,ot>>>0)});this.endDelimited_(s)}},jspb.BinaryWriter.prototype.writePackedInt64String=function(s,o){if(o!=null&&o.length){s=this.beginDelimited_(s);for(var et=0;et-1};function dt(Tt){if(typeof Tt!="string"&&(Tt=String(Tt)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(Tt))throw new TypeError("Invalid character in header field name");return Tt.toLowerCase()}function ht(Tt){return typeof Tt!="string"&&(Tt=String(Tt)),Tt}function ct(Tt){var Bt={next:function(){var xt=Tt.shift();return{done:xt===void 0,value:xt}}};return it&&(Bt[Symbol.iterator]=function(){return Bt}),Bt}function pt(Tt){this.map={},Tt instanceof pt?Tt.forEach(function(Bt,xt){this.append(xt,Bt)},this):Array.isArray(Tt)?Tt.forEach(function(Bt){this.append(Bt[0],Bt[1])},this):Tt&&Object.getOwnPropertyNames(Tt).forEach(function(Bt){this.append(Bt,Tt[Bt])},this)}function ft(Tt){if(Tt.bodyUsed)return Promise.reject(new TypeError("Already read"));Tt.bodyUsed=!0}function gt(Tt){return new Promise(function(Bt,xt){Tt.onload=function(){Bt(Tt.result)},Tt.onerror=function(){xt(Tt.error)}})}function yt(Tt){var Bt=new FileReader,xt=gt(Bt);return Bt.readAsArrayBuffer(Tt),xt}function Ut(Tt){if(Tt.slice)return Tt.slice(0);var Bt=new Uint8Array(Tt.byteLength);return Bt.set(new Uint8Array(Tt)),Bt.buffer}function Ft(){return this.bodyUsed=!1,this._initBody=function(Tt){var Bt;this._bodyInit=Tt,Tt?typeof Tt=="string"?this._bodyText=Tt:ot&&Blob.prototype.isPrototypeOf(Tt)?this._bodyBlob=Tt:st&&FormData.prototype.isPrototypeOf(Tt)?this._bodyFormData=Tt:rt&&URLSearchParams.prototype.isPrototypeOf(Tt)?this._bodyText=Tt.toString():at&&ot&&(Bt=Tt)&&DataView.prototype.isPrototypeOf(Bt)?(this._bodyArrayBuffer=Ut(Tt.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):at&&(ArrayBuffer.prototype.isPrototypeOf(Tt)||ut(Tt))?this._bodyArrayBuffer=Ut(Tt):this._bodyText=Tt=Object.prototype.toString.call(Tt):this._bodyText="",this.headers.get("content-type")||(typeof Tt=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):rt&&URLSearchParams.prototype.isPrototypeOf(Tt)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},ot&&(this.blob=function(){var Tt=ft(this);if(Tt)return Tt;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?ft(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(yt)}),this.text=function(){var Tt,Bt,xt,Ct=ft(this);if(Ct)return Ct;if(this._bodyBlob)return Tt=this._bodyBlob,Bt=new FileReader,xt=gt(Bt),Bt.readAsText(Tt),xt;if(this._bodyArrayBuffer)return Promise.resolve(function(kt){for(var Nt=new Uint8Array(kt),Ot=new Array(Nt.length),Wt=0;Wt-1?Ct:xt),this.mode=Bt.mode||this.mode||null,this.signal=Bt.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&kt)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(kt)}function At(Tt){var Bt=new FormData;return Tt.trim().split("&").forEach(function(xt){if(xt){var Ct=xt.split("="),kt=Ct.shift().replace(/\+/g," "),Nt=Ct.join("=").replace(/\+/g," ");Bt.append(decodeURIComponent(kt),decodeURIComponent(Nt))}}),Bt}function Lt(Tt,Bt){Bt||(Bt={}),this.type="default",this.status=Bt.status===void 0?200:Bt.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in Bt?Bt.statusText:"OK",this.headers=new pt(Bt.headers),this.url=Bt.url||"",this._initBody(Tt)}vt.prototype.clone=function(){return new vt(this,{body:this._bodyInit})},Ft.call(vt.prototype),Ft.call(Lt.prototype),Lt.prototype.clone=function(){return new Lt(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new pt(this.headers),url:this.url})},Lt.error=function(){var Tt=new Lt(null,{status:0,statusText:""});return Tt.type="error",Tt};var Rt=[301,302,303,307,308];Lt.redirect=function(Tt,Bt){if(Rt.indexOf(Bt)===-1)throw new RangeError("Invalid status code");return new Lt(null,{status:Bt,headers:{location:Tt}})},nt.DOMException=tt.DOMException;try{new nt.DOMException}catch{nt.DOMException=function(Tt,Bt){this.message=Tt,this.name=Bt;var xt=Error(Tt);this.stack=xt.stack},nt.DOMException.prototype=Object.create(Error.prototype),nt.DOMException.prototype.constructor=nt.DOMException}function St(Tt,Bt){return new Promise(function(xt,Ct){var kt=new vt(Tt,Bt);if(kt.signal&&kt.signal.aborted)return Ct(new nt.DOMException("Aborted","AbortError"));var Nt=new XMLHttpRequest;function Ot(){Nt.abort()}Nt.onload=function(){var Wt,Dt,Et={status:Nt.status,statusText:Nt.statusText,headers:(Wt=Nt.getAllResponseHeaders()||"",Dt=new pt,Wt.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(zt){var en=zt.split(":"),Kt=en.shift().trim();if(Kt){var nn=en.join(":").trim();Dt.append(Kt,nn)}}),Dt)};Et.url="responseURL"in Nt?Nt.responseURL:Et.headers.get("X-Request-URL");var Pt="response"in Nt?Nt.response:Nt.responseText;xt(new Lt(Pt,Et))},Nt.onerror=function(){Ct(new TypeError("Network request failed"))},Nt.ontimeout=function(){Ct(new TypeError("Network request failed"))},Nt.onabort=function(){Ct(new nt.DOMException("Aborted","AbortError"))},Nt.open(kt.method,kt.url,!0),kt.credentials==="include"?Nt.withCredentials=!0:kt.credentials==="omit"&&(Nt.withCredentials=!1),"responseType"in Nt&&ot&&(Nt.responseType="blob"),kt.headers.forEach(function(Wt,Dt){Nt.setRequestHeader(Dt,Wt)}),kt.signal&&(kt.signal.addEventListener("abort",Ot),Nt.onreadystatechange=function(){Nt.readyState===4&&kt.signal.removeEventListener("abort",Ot)}),Nt.send(kt._bodyInit===void 0?null:kt._bodyInit)})}St.polyfill=!0,tt.fetch||(tt.fetch=St,tt.Headers=pt,tt.Request=vt,tt.Response=Lt),nt.Headers=pt,nt.Request=vt,nt.Response=Lt,nt.fetch=St})({})})(et),delete et.fetch.polyfill,(o=et.fetch).default=et.fetch,o.fetch=et.fetch,o.Headers=et.Headers,o.Request=et.Request,o.Response=et.Response,s.exports=o},function(s,o,et){(function(tt){const nt=et(211),rt=et(52),it=(ot,st,at)=>({from:it,EnvVarError:et(52),get:function(lt){if(!lt)return ot;if(arguments.length>1)throw new rt("It looks like you passed more than one argument to env.get(). Since env-var@6.0.0 this is no longer supported. To set a default value use env.get(TARGET).default(DEFAULT)");return nt(ot,lt,st||{},at||function(){})},accessors:et(94),logger:et(225)(console.log,ot.NODE_ENV)});s.exports=it(tt.env)}).call(this,et(2))},function(s,o,et){var tt=et(13),nt=et(73),rt=et(3).LEVEL,it=s.exports=function(){var ot=this,st=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};nt.call(this,{objectMode:!0,highWaterMark:st.highWaterMark}),this.format=st.format,this.level=st.level,this.handleExceptions=st.handleExceptions,this.silent=st.silent,st.log&&(this.log=st.log),st.logv&&(this.logv=st.logv),st.close&&(this.close=st.close),this.once("pipe",function(at){ot.levels=at.levels,ot.parent=at}),this.once("unpipe",function(at){at===ot.parent&&(ot.parent=null,ot.close&&ot.close())})};tt.inherits(it,nt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);var lt=this.level||this.parent&&this.parent.level;if(!lt||this.levels[lt]>=this.levels[ot[rt]]){if(ot&&!this.format)return this.log(ot,at);var ut=void 0,dt=void 0;try{dt=this.format.transform(Object.assign({},ot),this.format.options)}catch(ht){ut=ht}if(ut||!dt){if(at(),ut)throw ut;return}return this.log(dt,at)}return at(null)},it.prototype._writev=function(ot,st){if(this.logv){var at=ot.filter(this._accept,this);return at.length?this.logv(at,st):st(null)}for(var lt=0;lt=this.levels[st[rt]])||!this.handleExceptions&&st.exception===!0)},it.prototype._nop=function(){}},function(s,o,et){(function(tt){const nt=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,rt=typeof AbortController=="function"?AbortController:class{constructor(){this.signal=new st}abort(){this.signal.dispatchEvent("abort")}},it=typeof AbortSignal=="function",ot=typeof rt.AbortSignal=="function",st=it?AbortSignal:ot?rt.AbortController:class{constructor(){this.aborted=!1,this._listeners=[]}dispatchEvent(Ft){if(Ft==="abort"){this.aborted=!0;const mt={type:Ft,target:this};this.onabort(mt),this._listeners.forEach(vt=>vt(mt),this)}}onabort(){}addEventListener(Ft,mt){Ft==="abort"&&this._listeners.push(mt)}removeEventListener(Ft,mt){Ft==="abort"&&(this._listeners=this._listeners.filter(vt=>vt!==mt))}},at=new Set,lt=(Ft,mt)=>{const vt=`LRU_CACHE_OPTION_${Ft}`;ht(vt)&&ct(vt,`${Ft} option`,`options.${mt}`,Ut)},ut=(Ft,mt)=>{const vt=`LRU_CACHE_METHOD_${Ft}`;if(ht(vt)){const{prototype:At}=Ut,{get:Lt}=Object.getOwnPropertyDescriptor(At,Ft);ct(vt,`${Ft} method`,`cache.${mt}()`,Lt)}},dt=(...Ft)=>{typeof tt=="object"&&tt&&typeof tt.emitWarning=="function"?tt.emitWarning(...Ft):console.error(...Ft)},ht=Ft=>!at.has(Ft),ct=(Ft,mt,vt,At)=>{at.add(Ft),dt(`The ${mt} is deprecated. Please use ${vt} instead.`,"DeprecationWarning",Ft,At)},pt=Ft=>Ft&&Ft===Math.floor(Ft)&&Ft>0&&isFinite(Ft),ft=Ft=>pt(Ft)?Ft<=Math.pow(2,8)?Uint8Array:Ft<=Math.pow(2,16)?Uint16Array:Ft<=Math.pow(2,32)?Uint32Array:Ft<=Number.MAX_SAFE_INTEGER?gt:null:null;class gt extends Array{constructor(mt){super(mt),this.fill(0)}}class yt{constructor(mt){if(mt===0)return[];const vt=ft(mt);this.heap=new vt(mt),this.length=0}push(mt){this.heap[this.length++]=mt}pop(){return this.heap[--this.length]}}class Ut{constructor(mt={}){const{max:vt=0,ttl:At,ttlResolution:Lt=1,ttlAutopurge:Rt,updateAgeOnGet:St,updateAgeOnHas:Tt,allowStale:Bt,dispose:xt,disposeAfter:Ct,noDisposeOnSet:kt,noUpdateTTL:Nt,maxSize:Ot=0,maxEntrySize:Wt=0,sizeCalculation:Dt,fetchMethod:Et,fetchContext:Pt,noDeleteOnFetchRejection:zt,noDeleteOnStaleGet:en}=mt,{length:Kt,maxAge:nn,stale:Zt}=mt instanceof Ut?{}:mt;if(vt!==0&&!pt(vt))throw new TypeError("max option must be a nonnegative integer");const jt=vt?ft(vt):Array;if(!jt)throw new Error("invalid max value: "+vt);if(this.max=vt,this.maxSize=Ot,this.maxEntrySize=Wt||this.maxSize,this.sizeCalculation=Dt||Kt,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=Et||null,this.fetchMethod&&typeof this.fetchMethod!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=Pt,!this.fetchMethod&&Pt!==void 0)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(vt).fill(null),this.valList=new Array(vt).fill(null),this.next=new jt(vt),this.prev=new jt(vt),this.head=0,this.tail=0,this.free=new yt(vt),this.initialFill=1,this.size=0,typeof xt=="function"&&(this.dispose=xt),typeof Ct=="function"?(this.disposeAfter=Ct,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!kt,this.noUpdateTTL=!!Nt,this.noDeleteOnFetchRejection=!!zt,this.maxEntrySize!==0){if(this.maxSize!==0&&!pt(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!pt(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!Bt||!!Zt,this.noDeleteOnStaleGet=!!en,this.updateAgeOnGet=!!St,this.updateAgeOnHas=!!Tt,this.ttlResolution=pt(Lt)||Lt===0?Lt:1,this.ttlAutopurge=!!Rt,this.ttl=At||nn||0,this.ttl){if(!pt(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(this.max===0&&this.ttl===0&&this.maxSize===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const Vt="LRU_CACHE_UNBOUNDED";ht(Vt)&&(at.add(Vt),dt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Vt,Ut))}Zt&<("stale","allowStale"),nn&<("maxAge","ttl"),Kt&<("length","sizeCalculation")}getRemainingTTL(mt){return this.has(mt,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new gt(this.max),this.starts=new gt(this.max),this.setItemTTL=(At,Lt,Rt=nt.now())=>{if(this.starts[At]=Lt!==0?Rt:0,this.ttls[At]=Lt,Lt!==0&&this.ttlAutopurge){const St=setTimeout(()=>{this.isStale(At)&&this.delete(this.keyList[At])},Lt+1);St.unref&&St.unref()}},this.updateItemAge=At=>{this.starts[At]=this.ttls[At]!==0?nt.now():0};let mt=0;const vt=()=>{const At=nt.now();if(this.ttlResolution>0){mt=At;const Lt=setTimeout(()=>mt=0,this.ttlResolution);Lt.unref&&Lt.unref()}return At};this.getRemainingTTL=At=>{const Lt=this.keyMap.get(At);return Lt===void 0?0:this.ttls[Lt]===0||this.starts[Lt]===0?1/0:this.starts[Lt]+this.ttls[Lt]-(mt||vt())},this.isStale=At=>this.ttls[At]!==0&&this.starts[At]!==0&&(mt||vt())-this.starts[At]>this.ttls[At]}updateItemAge(mt){}setItemTTL(mt,vt,At){}isStale(mt){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new gt(this.max),this.removeItemSize=mt=>{this.calculatedSize-=this.sizes[mt],this.sizes[mt]=0},this.requireSize=(mt,vt,At,Lt)=>{if(!pt(At)){if(!Lt)throw new TypeError("invalid size value (must be positive integer)");if(typeof Lt!="function")throw new TypeError("sizeCalculation must be a function");if(At=Lt(vt,mt),!pt(At))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return At},this.addItemSize=(mt,vt)=>{this.sizes[mt]=vt;const At=this.maxSize-this.sizes[mt];for(;this.calculatedSize>At;)this.evict(!0);this.calculatedSize+=this.sizes[mt]}}removeItemSize(mt){}addItemSize(mt,vt){}requireSize(mt,vt,At,Lt){if(At||Lt)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.tail;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.head);)vt=this.prev[vt]}*rindexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.head;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.tail);)vt=this.next[vt]}isValidIndex(mt){return this.keyMap.get(this.keyList[mt])===mt}*entries(){for(const mt of this.indexes())yield[this.keyList[mt],this.valList[mt]]}*rentries(){for(const mt of this.rindexes())yield[this.keyList[mt],this.valList[mt]]}*keys(){for(const mt of this.indexes())yield this.keyList[mt]}*rkeys(){for(const mt of this.rindexes())yield this.keyList[mt]}*values(){for(const mt of this.indexes())yield this.valList[mt]}*rvalues(){for(const mt of this.rindexes())yield this.valList[mt]}[Symbol.iterator](){return this.entries()}find(mt,vt={}){for(const At of this.indexes())if(mt(this.valList[At],this.keyList[At],this))return this.get(this.keyList[At],vt)}forEach(mt,vt=this){for(const At of this.indexes())mt.call(vt,this.valList[At],this.keyList[At],this)}rforEach(mt,vt=this){for(const At of this.rindexes())mt.call(vt,this.valList[At],this.keyList[At],this)}get prune(){return ut("prune","purgeStale"),this.purgeStale}purgeStale(){let mt=!1;for(const vt of this.rindexes({allowStale:!0}))this.isStale(vt)&&(this.delete(this.keyList[vt]),mt=!0);return mt}dump(){const mt=[];for(const vt of this.indexes({allowStale:!0})){const At=this.keyList[vt],Lt=this.valList[vt],Rt={value:this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt};if(this.ttls){Rt.ttl=this.ttls[vt];const St=nt.now()-this.starts[vt];Rt.start=Math.floor(Date.now()-St)}this.sizes&&(Rt.size=this.sizes[vt]),mt.unshift([At,Rt])}return mt}load(mt){this.clear();for(const[vt,At]of mt){if(At.start){const Lt=Date.now()-At.start;At.start=nt.now()-Lt}this.set(vt,At.value,At)}}dispose(mt,vt,At){}set(mt,vt,{ttl:At=this.ttl,start:Lt,noDisposeOnSet:Rt=this.noDisposeOnSet,size:St=0,sizeCalculation:Tt=this.sizeCalculation,noUpdateTTL:Bt=this.noUpdateTTL}={}){if(St=this.requireSize(mt,vt,St,Tt),this.maxEntrySize&&St>this.maxEntrySize)return this;let xt=this.size===0?void 0:this.keyMap.get(mt);if(xt===void 0)xt=this.newIndex(),this.keyList[xt]=mt,this.valList[xt]=vt,this.keyMap.set(mt,xt),this.next[this.tail]=xt,this.prev[xt]=this.tail,this.tail=xt,this.size++,this.addItemSize(xt,St),Bt=!1;else{const Ct=this.valList[xt];vt!==Ct&&(this.isBackgroundFetch(Ct)?Ct.__abortController.abort():Rt||(this.dispose(Ct,mt,"set"),this.disposeAfter&&this.disposed.push([Ct,mt,"set"])),this.removeItemSize(xt),this.valList[xt]=vt,this.addItemSize(xt,St)),this.moveToTail(xt)}if(At===0||this.ttl!==0||this.ttls||this.initializeTTLTracking(),Bt||this.setItemTTL(xt,At,Lt),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return this.size===0?this.tail:this.size===this.max&&this.max!==0?this.evict(!1):this.free.length!==0?this.free.pop():this.initialFill++}pop(){if(this.size){const mt=this.valList[this.head];return this.evict(!0),mt}}evict(mt){const vt=this.head,At=this.keyList[vt],Lt=this.valList[vt];return this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,At,"evict"),this.disposeAfter&&this.disposed.push([Lt,At,"evict"])),this.removeItemSize(vt),mt&&(this.keyList[vt]=null,this.valList[vt]=null,this.free.push(vt)),this.head=this.next[vt],this.keyMap.delete(At),this.size--,vt}has(mt,{updateAgeOnHas:vt=this.updateAgeOnHas}={}){const At=this.keyMap.get(mt);return At!==void 0&&!this.isStale(At)&&(vt&&this.updateItemAge(At),!0)}peek(mt,{allowStale:vt=this.allowStale}={}){const At=this.keyMap.get(mt);if(At!==void 0&&(vt||!this.isStale(At))){const Lt=this.valList[At];return this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt}}backgroundFetch(mt,vt,At,Lt){const Rt=vt===void 0?void 0:this.valList[vt];if(this.isBackgroundFetch(Rt))return Rt;const St=new rt,Tt={signal:St.signal,options:At,context:Lt},Bt=new Promise(xt=>xt(this.fetchMethod(mt,Rt,Tt))).then(xt=>(St.signal.aborted||this.set(mt,xt,Tt.options),xt),xt=>{if(this.valList[vt]===Bt&&(!At.noDeleteOnFetchRejection||Bt.__staleWhileFetching===void 0?this.delete(mt):this.valList[vt]=Bt.__staleWhileFetching),Bt.__returned===Bt)throw xt});return Bt.__abortController=St,Bt.__staleWhileFetching=Rt,Bt.__returned=null,vt===void 0?(this.set(mt,Bt,Tt.options),vt=this.keyMap.get(mt)):this.valList[vt]=Bt,Bt}isBackgroundFetch(mt){return mt&&typeof mt=="object"&&typeof mt.then=="function"&&Object.prototype.hasOwnProperty.call(mt,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(mt,"__returned")&&(mt.__returned===mt||mt.__returned===null)}async fetch(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet,ttl:Rt=this.ttl,noDisposeOnSet:St=this.noDisposeOnSet,size:Tt=0,sizeCalculation:Bt=this.sizeCalculation,noUpdateTTL:xt=this.noUpdateTTL,noDeleteOnFetchRejection:Ct=this.noDeleteOnFetchRejection,fetchContext:kt=this.fetchContext,forceRefresh:Nt=!1}={}){if(!this.fetchMethod)return this.get(mt,{allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt});const Ot={allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt,ttl:Rt,noDisposeOnSet:St,size:Tt,sizeCalculation:Bt,noUpdateTTL:xt,noDeleteOnFetchRejection:Ct};let Wt=this.keyMap.get(mt);if(Wt===void 0){const Dt=this.backgroundFetch(mt,Wt,Ot,kt);return Dt.__returned=Dt}{const Dt=this.valList[Wt];if(this.isBackgroundFetch(Dt))return vt&&Dt.__staleWhileFetching!==void 0?Dt.__staleWhileFetching:Dt.__returned=Dt;if(!Nt&&!this.isStale(Wt))return this.moveToTail(Wt),At&&this.updateItemAge(Wt),Dt;const Et=this.backgroundFetch(mt,Wt,Ot,kt);return vt&&Et.__staleWhileFetching!==void 0?Et.__staleWhileFetching:Et.__returned=Et}}get(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet}={}){const Rt=this.keyMap.get(mt);if(Rt!==void 0){const St=this.valList[Rt],Tt=this.isBackgroundFetch(St);return this.isStale(Rt)?Tt?vt?St.__staleWhileFetching:void 0:(Lt||this.delete(mt),vt?St:void 0):Tt?void 0:(this.moveToTail(Rt),At&&this.updateItemAge(Rt),St)}}connect(mt,vt){this.prev[vt]=mt,this.next[mt]=vt}moveToTail(mt){mt!==this.tail&&(mt===this.head?this.head=this.next[mt]:this.connect(this.prev[mt],this.next[mt]),this.connect(this.tail,mt),this.tail=mt)}get del(){return ut("del","delete"),this.delete}delete(mt){let vt=!1;if(this.size!==0){const At=this.keyMap.get(mt);if(At!==void 0)if(vt=!0,this.size===1)this.clear();else{this.removeItemSize(At);const Lt=this.valList[At];this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,mt,"delete"),this.disposeAfter&&this.disposed.push([Lt,mt,"delete"])),this.keyMap.delete(mt),this.keyList[At]=null,this.valList[At]=null,At===this.tail?this.tail=this.prev[At]:At===this.head?this.head=this.next[At]:(this.next[this.prev[At]]=this.next[At],this.prev[this.next[At]]=this.prev[At]),this.size--,this.free.push(At)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return vt}clear(){for(const mt of this.rindexes({allowStale:!0})){const vt=this.valList[mt];if(this.isBackgroundFetch(vt))vt.__abortController.abort();else{const At=this.keyList[mt];this.dispose(vt,At,"delete"),this.disposeAfter&&this.disposed.push([vt,At,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return ut("reset","clear"),this.clear}get length(){return((mt,vt)=>{const At=`LRU_CACHE_PROPERTY_${mt}`;if(ht(At)){const{prototype:Lt}=Ut,{get:Rt}=Object.getOwnPropertyDescriptor(Lt,mt);ct(At,`${mt} property`,`cache.${vt}`,Rt)}})("length","size"),this.size}static get AbortController(){return rt}static get AbortSignal(){return st}}s.exports=Ut}).call(this,et(2))},function(s,o,et){var tt=et(41).Colorizer;s.exports=function(nt){return tt.addColors(nt.colors||nt),nt}},function(s,o,et){var tt={};s.exports=tt,tt.themes={};var nt=et(13),rt=tt.styles=et(109),it=Object.defineProperties,ot=new RegExp(/[\r\n]+/g);tt.supportsColor=et(110).supportsColor,tt.enabled===void 0&&(tt.enabled=tt.supportsColor()!==!1),tt.enable=function(){tt.enabled=!0},tt.disable=function(){tt.enabled=!1},tt.stripColors=tt.strip=function(ft){return(""+ft).replace(/\x1B\[\d+m/g,"")},tt.stylize=function(ft,gt){return tt.enabled?rt[gt].open+ft+rt[gt].close:ft+""};var st=/[|\\{}()[\]^$+*?.]/g;function at(ft){var gt=function yt(){return ht.apply(yt,arguments)};return gt._styles=ft,gt.__proto__=dt,gt}var lt,ut=(lt={},rt.grey=rt.gray,Object.keys(rt).forEach(function(ft){rt[ft].closeRe=new RegExp(function(gt){if(typeof gt!="string")throw new TypeError("Expected a string");return gt.replace(st,"\\$&")}(rt[ft].close),"g"),lt[ft]={get:function(){return at(this._styles.concat(ft))}}}),lt),dt=it(function(){},ut);function ht(){var ft=Array.prototype.slice.call(arguments),gt=ft.map(function(vt){return vt!==void 0&&vt.constructor===String?vt:nt.inspect(vt)}).join(" ");if(!tt.enabled||!gt)return gt;for(var yt=gt.indexOf(` +`)},goog.string.normalizeWhitespace=function(s){return s.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(s){return s.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(s){return s.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.string.internal.trim,goog.string.trimLeft=function(s){return s.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(s){return s.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare,goog.string.numberAwareCompare_=function(s,o,et){if(s==o)return 0;if(!s)return-1;if(!o)return 1;for(var tt=s.toLowerCase().match(et),nt=o.toLowerCase().match(et),rt=Math.min(tt.length,nt.length),it=0;it",""":'"'},tt=o?o.createElement("div"):goog.global.document.createElement("div");return s.replace(goog.string.HTML_ENTITY_PATTERN_,function(nt,rt){var it=et[nt];return it||(rt.charAt(0)=="#"&&(rt=+("0"+rt.substr(1)),isNaN(rt)||(it=String.fromCharCode(rt))),it||(goog.dom.safe.setInnerHtml(tt,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),nt+" ")),it=tt.firstChild.nodeValue.slice(0,-1)),et[nt]=it)})},goog.string.unescapePureXmlEntities_=function(s){return s.replace(/&([^;]+);/g,function(o,et){switch(et){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:return et.charAt(0)!="#"||(et=+("0"+et.substr(1)),isNaN(et))?o:String.fromCharCode(et)}})},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(s,o){return goog.string.newLineToBr(s.replace(/ /g,"  "),o)},goog.string.preserveSpaces=function(s){return s.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(s,o){for(var et=o.length,tt=0;tto&&(s=s.substring(0,o-3)+"..."),et&&(s=goog.string.htmlEscape(s)),s},goog.string.truncateMiddle=function(s,o,et,tt){if(et&&(s=goog.string.unescapeEntities(s)),tt&&s.length>o){tt>o&&(tt=o);var nt=s.length-tt;s=s.substring(0,o-tt)+"..."+s.substring(nt)}else s.length>o&&(tt=Math.floor(o/2),nt=s.length-tt,s=s.substring(0,tt+o%2)+"..."+s.substring(nt));return et&&(s=goog.string.htmlEscape(s)),s},goog.string.specialEscapeChars_={"\0":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(s){s=String(s);for(var o=['"'],et=0;etnt?tt:goog.string.escapeChar(tt))}return o.push('"'),o.join("")},goog.string.escapeString=function(s){for(var o=[],et=0;eto)var et=s;else 256>o?(et="\\x",(16>o||256o&&(et+="0")),et+=o.toString(16).toUpperCase();return goog.string.jsEscapeCache_[s]=et},goog.string.contains=goog.string.internal.contains,goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains,goog.string.countOf=function(s,o){return s&&o?s.split(o).length-1:0},goog.string.removeAt=function(s,o,et){var tt=s;return 0<=o&&o>>0;return o},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(s){var o=Number(s);return o==0&&goog.string.isEmptyOrWhitespace(s)?NaN:o},goog.string.isLowerCamelCase=function(s){return/^[a-z]+([A-Z][a-z]*)*$/.test(s)},goog.string.isUpperCamelCase=function(s){return/^([A-Z][a-z]*)+$/.test(s)},goog.string.toCamelCase=function(s){return String(s).replace(/\-([a-z])/g,function(o,et){return et.toUpperCase()})},goog.string.toSelectorCase=function(s){return String(s).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(s,o){return o=goog.isString(o)?goog.string.regExpEscape(o):"\\s",s.replace(new RegExp("(^"+(o?"|["+o+"]+":"")+")([a-z])","g"),function(et,tt,nt){return tt+nt.toUpperCase()})},goog.string.capitalize=function(s){return String(s.charAt(0)).toUpperCase()+String(s.substr(1)).toLowerCase()},goog.string.parseInt=function(s){return isFinite(s)&&(s=String(s)),goog.isString(s)?/^\s*-?0x/i.test(s)?parseInt(s,16):parseInt(s,10):NaN},goog.string.splitLimit=function(s,o,et){s=s.split(o);for(var tt=[];0et&&(et=nt)}return et==-1?s:s.slice(et+1)},goog.string.editDistance=function(s,o){var et=[],tt=[];if(s==o)return 0;if(!s.length||!o.length)return Math.max(s.length,o.length);for(var nt=0;ntparseFloat(s)?String(o):s},goog.userAgent.getVersionRegexResult_=function(){var s=goog.userAgent.getUserAgentString();return goog.userAgent.GECKO?/rv:([^\);]+)(\)|;)/.exec(s):goog.userAgent.EDGE?/Edge\/([\d\.]+)/.exec(s):goog.userAgent.IE?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(s):goog.userAgent.WEBKIT?/WebKit\/(\S+)/.exec(s):goog.userAgent.OPERA?/(?:Version)[ \/]?(\S+)/.exec(s):void 0},goog.userAgent.getDocumentMode_=function(){var s=goog.global.document;return s?s.documentMode:void 0},goog.userAgent.VERSION=goog.userAgent.determineVersion_(),goog.userAgent.compare=function(s,o){return goog.string.compareVersions(s,o)},goog.userAgent.isVersionOrHigherCache_={},goog.userAgent.isVersionOrHigher=function(s){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,s,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,s)})},goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher,goog.userAgent.isDocumentModeOrHigher=function(s){return Number(goog.userAgent.DOCUMENT_MODE)>=s},goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher,goog.userAgent.DOCUMENT_MODE=function(){if(goog.global.document&&goog.userAgent.IE)return goog.userAgent.getDocumentMode_()}(),goog.userAgent.product={},goog.userAgent.product.ASSUME_FIREFOX=!1,goog.userAgent.product.ASSUME_IPHONE=!1,goog.userAgent.product.ASSUME_IPAD=!1,goog.userAgent.product.ASSUME_ANDROID=!1,goog.userAgent.product.ASSUME_CHROME=!1,goog.userAgent.product.ASSUME_SAFARI=!1,goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI,goog.userAgent.product.OPERA=goog.userAgent.OPERA,goog.userAgent.product.IE=goog.userAgent.IE,goog.userAgent.product.EDGE=goog.userAgent.EDGE,goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox(),goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()},goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_(),goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser(),goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome(),goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()},goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_(),goog.crypt.base64={},goog.crypt.base64.DEFAULT_ALPHABET_COMMON_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"+/=",goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"-_.",goog.crypt.base64.Alphabet={DEFAULT:0,NO_PADDING:1,WEBSAFE:2,WEBSAFE_DOT_PADDING:3,WEBSAFE_NO_PADDING:4},goog.crypt.base64.paddingChars_="=.",goog.crypt.base64.isPadding_=function(s){return goog.string.contains(goog.crypt.base64.paddingChars_,s)},goog.crypt.base64.byteToCharMaps_={},goog.crypt.base64.charToByteMap_=null,goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA,goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||typeof goog.global.btoa=="function",goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&typeof goog.global.atob=="function",goog.crypt.base64.encodeByteArray=function(s,o){goog.asserts.assert(goog.isArrayLike(s),"encodeByteArray takes an array as a parameter"),o===void 0&&(o=goog.crypt.base64.Alphabet.DEFAULT),goog.crypt.base64.init_(),o=goog.crypt.base64.byteToCharMaps_[o];for(var et=[],tt=0;tt>2;nt=(3&nt)<<4|it>>4,it=(15&it)<<2|st>>6,st&=63,ot||(st=64,rt||(it=64)),et.push(o[at],o[nt],o[it]||"",o[st]||"")}return et.join("")},goog.crypt.base64.encodeString=function(s,o){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!o?goog.global.btoa(s):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(s),o)},goog.crypt.base64.decodeString=function(s,o){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!o)return goog.global.atob(s);var et="";return goog.crypt.base64.decodeStringInternal_(s,function(tt){et+=String.fromCharCode(tt)}),et},goog.crypt.base64.decodeStringToByteArray=function(s,o){var et=[];return goog.crypt.base64.decodeStringInternal_(s,function(tt){et.push(tt)}),et},goog.crypt.base64.decodeStringToUint8Array=function(s){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var o=s.length,et=3*o/4;et%3?et=Math.floor(et):goog.crypt.base64.isPadding_(s[o-1])&&(et=goog.crypt.base64.isPadding_(s[o-2])?et-2:et-1);var tt=new Uint8Array(et),nt=0;return goog.crypt.base64.decodeStringInternal_(s,function(rt){tt[nt++]=rt}),tt.subarray(0,nt)},goog.crypt.base64.decodeStringInternal_=function(s,o){function et(st){for(;tt>4),it!=64&&(o(rt<<4&240|it>>2),ot!=64&&o(it<<6&192|ot))}},goog.crypt.base64.init_=function(){if(!goog.crypt.base64.charToByteMap_){goog.crypt.base64.charToByteMap_={};for(var s=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""),o=["+/=","+/","-_=","-_.","-_"],et=0;5>et;et++){var tt=s.concat(o[et].split(""));goog.crypt.base64.byteToCharMaps_[et]=tt;for(var nt=0;nt>>0;s=Math.floor((s-o)/jspb.BinaryConstants.TWO_TO_32)>>>0,jspb.utils.split64Low=o,jspb.utils.split64High=s},jspb.utils.splitInt64=function(s){var o=0>s,et=(s=Math.abs(s))>>>0;s=Math.floor((s-et)/jspb.BinaryConstants.TWO_TO_32),s>>>=0,o&&(s=~s>>>0,4294967295<(et=1+(~et>>>0))&&(et=0,4294967295<++s&&(s=0))),jspb.utils.split64Low=et,jspb.utils.split64High=s},jspb.utils.splitZigzag64=function(s){var o=0>s;s=2*Math.abs(s),jspb.utils.splitUint64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;o&&(s==0?et==0?et=s=4294967295:(et--,s=4294967295):s--),jspb.utils.split64Low=s,jspb.utils.split64High=et},jspb.utils.splitFloat32=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)0<1/s?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(s))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(s>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|2139095040)>>>0;else if(s>>0;else{var et=Math.floor(Math.log(s)/Math.LN2);s*=Math.pow(2,-et),s=8388607&Math.round(s*jspb.BinaryConstants.TWO_TO_23),jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|et+127<<23|s)>>>0}},jspb.utils.splitFloat64=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)jspb.utils.split64High=0<1/s?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(s))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(s>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(o<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(s>>0,jspb.utils.split64Low=et>>>0}else{var tt=0;if(2<=(et=s))for(;2<=et&&1023>tt;)tt++,et/=2;else for(;1>et&&-1022>>0,jspb.utils.split64High=(o<<31|tt+1023<<20|s)>>>0,jspb.utils.split64Low=et}},jspb.utils.splitHash64=function(s){var o=s.charCodeAt(0),et=s.charCodeAt(1),tt=s.charCodeAt(2),nt=s.charCodeAt(3),rt=s.charCodeAt(4),it=s.charCodeAt(5),ot=s.charCodeAt(6);s=s.charCodeAt(7),jspb.utils.split64Low=o+(et<<8)+(tt<<16)+(nt<<24)>>>0,jspb.utils.split64High=rt+(it<<8)+(ot<<16)+(s<<24)>>>0},jspb.utils.joinUint64=function(s,o){return o*jspb.BinaryConstants.TWO_TO_32+(s>>>0)},jspb.utils.joinInt64=function(s,o){var et=2147483648&o;return et&&(o=~o>>>0,(s=1+~s>>>0)==0&&(o=o+1>>>0)),s=jspb.utils.joinUint64(s,o),et?-s:s},jspb.utils.toZigzag64=function(s,o,et){var tt=o>>31;return et(s<<1^tt,(o<<1|s>>>31)^tt)},jspb.utils.joinZigzag64=function(s,o){return jspb.utils.fromZigzag64(s,o,jspb.utils.joinInt64)},jspb.utils.fromZigzag64=function(s,o,et){var tt=-(1&s);return et((s>>>1|o<<31)^tt,o>>>1^tt)},jspb.utils.joinFloat32=function(s,o){o=2*(s>>31)+1;var et=s>>>23&255;return s&=8388607,et==255?s?NaN:1/0*o:et==0?o*Math.pow(2,-149)*s:o*Math.pow(2,et-150)*(s+Math.pow(2,23))},jspb.utils.joinFloat64=function(s,o){var et=2*(o>>31)+1,tt=o>>>20&2047;return s=jspb.BinaryConstants.TWO_TO_32*(1048575&o)+s,tt==2047?s?NaN:1/0*et:tt==0?et*Math.pow(2,-1074)*s:et*Math.pow(2,tt-1075)*(s+jspb.BinaryConstants.TWO_TO_52)},jspb.utils.joinHash64=function(s,o){return String.fromCharCode(s>>>0&255,s>>>8&255,s>>>16&255,s>>>24&255,o>>>0&255,o>>>8&255,o>>>16&255,o>>>24&255)},jspb.utils.DIGITS="0123456789abcdef".split(""),jspb.utils.ZERO_CHAR_CODE_=48,jspb.utils.A_CHAR_CODE_=97,jspb.utils.joinUnsignedDecimalString=function(s,o){function et(nt,rt){return nt=nt?String(nt):"",rt?"0000000".slice(nt.length)+nt:nt}if(2097151>=o)return""+(jspb.BinaryConstants.TWO_TO_32*o+s);var tt=(s>>>24|o<<8)>>>0&16777215;return s=(16777215&s)+6777216*tt+6710656*(o=o>>16&65535),tt+=8147497*o,o*=2,1e7<=s&&(tt+=Math.floor(s/1e7),s%=1e7),1e7<=tt&&(o+=Math.floor(tt/1e7),tt%=1e7),et(o,0)+et(tt,o)+et(s,1)},jspb.utils.joinSignedDecimalString=function(s,o){var et=2147483648&o;return et&&(o=~o+((s=1+~s>>>0)==0?1:0)>>>0),s=jspb.utils.joinUnsignedDecimalString(s,o),et?"-"+s:s},jspb.utils.hash64ToDecimalString=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinSignedDecimalString(s,et):jspb.utils.joinUnsignedDecimalString(s,et)},jspb.utils.hash64ArrayToDecimalStrings=function(s,o){for(var et=Array(s.length),tt=0;ttot&&(rt!==1||0>>=8}goog.asserts.assert(0rt;rt++)tt[rt]=255&~tt[rt]}(),o(1,1)),goog.crypt.byteArrayToString(tt)},jspb.utils.splitDecimalString=function(s){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(s))},jspb.utils.toHexDigit_=function(s){return String.fromCharCode(10>s?jspb.utils.ZERO_CHAR_CODE_+s:jspb.utils.A_CHAR_CODE_-10+s)},jspb.utils.fromHexCharCode_=function(s){return s>=jspb.utils.A_CHAR_CODE_?s-jspb.utils.A_CHAR_CODE_+10:s-jspb.utils.ZERO_CHAR_CODE_},jspb.utils.hash64ToHexString=function(s){var o=Array(18);o[0]="0",o[1]="x";for(var et=0;8>et;et++){var tt=s.charCodeAt(7-et);o[2*et+2]=jspb.utils.toHexDigit_(tt>>4),o[2*et+3]=jspb.utils.toHexDigit_(15&tt)}return o.join("")},jspb.utils.hexStringToHash64=function(s){s=s.toLowerCase(),goog.asserts.assert(s.length==18),goog.asserts.assert(s[0]=="0"),goog.asserts.assert(s[1]=="x");for(var o="",et=0;8>et;et++){var tt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+2)),nt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+3));o=String.fromCharCode(16*tt+nt)+o}return o},jspb.utils.hash64ToNumber=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinInt64(s,et):jspb.utils.joinUint64(s,et)},jspb.utils.numberToHash64=function(s){return jspb.utils.splitInt64(s),jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.utils.countVarints=function(s,o,et){for(var tt=0,nt=o;nt>7;return et-o-tt},jspb.utils.countVarintFields=function(s,o,et,tt){var nt=0;if(128>(tt=8*tt+jspb.BinaryConstants.WireType.VARINT))for(;o>=7}if(s[o++]!=rt)break;for(nt++;128&(rt=s[o++]););}return nt},jspb.utils.countFixedFields_=function(s,o,et,tt,nt){var rt=0;if(128>tt)for(;o>=7}if(s[o++]!=it)break;rt++,o+=nt}return rt},jspb.utils.countFixed32Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED32,4)},jspb.utils.countFixed64Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED64,8)},jspb.utils.countDelimitedFields=function(s,o,et,tt){var nt=0;for(tt=8*tt+jspb.BinaryConstants.WireType.DELIMITED;o>=7}if(s[o++]!=rt)break;nt++;for(var it=0,ot=1;it+=(127&(rt=s[o++]))*ot,ot*=128,(128&rt)!=0;);o+=it}return nt},jspb.utils.debugBytesToTextFormat=function(s){var o='"';if(s){s=jspb.utils.byteSourceToUint8Array(s);for(var et=0;ets[et]&&(o+="0"),o+=s[et].toString(16)}return o+'"'},jspb.utils.debugScalarToTextFormat=function(s){return typeof s=="string"?goog.string.quote(s):s.toString()},jspb.utils.stringToByteArray=function(s){for(var o=new Uint8Array(s.length),et=0;etjspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)},jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)},jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1},jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_},jspb.BinaryDecoder.prototype.setBlock=function(s,o,et){this.bytes_=jspb.utils.byteSourceToUint8Array(s),this.start_=o!==void 0?o:0,this.end_=et!==void 0?this.start_+et:this.bytes_.length,this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_},jspb.BinaryDecoder.prototype.setEnd=function(s){this.end_=s},jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_},jspb.BinaryDecoder.prototype.setCursor=function(s){this.cursor_=s},jspb.BinaryDecoder.prototype.advance=function(s){this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_)},jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_},jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_},jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_},jspb.BinaryDecoder.prototype.readSplitVarint64=function(s){for(var o=128,et=0,tt=0,nt=0;4>nt&&128<=o;nt++)et|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt;if(128<=o&&(et|=(127&(o=this.bytes_[this.cursor_++]))<<28,tt|=(127&o)>>4),128<=o)for(nt=0;5>nt&&128<=o;nt++)tt|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt+3;if(128>o)return s(et>>>0,tt>>>0);goog.asserts.fail("Failed to read varint, encoding is invalid."),this.error_=!0},jspb.BinaryDecoder.prototype.readSplitZigzagVarint64=function(s){return this.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryDecoder.prototype.readSplitFixed64=function(s){var o=this.bytes_,et=this.cursor_;this.cursor_+=8;for(var tt=0,nt=0,rt=et+7;rt>=et;rt--)tt=tt<<8|o[rt],nt=nt<<8|o[rt+4];return s(tt,nt)},jspb.BinaryDecoder.prototype.skipVarint=function(){for(;128&this.bytes_[this.cursor_];)this.cursor_++;this.cursor_++},jspb.BinaryDecoder.prototype.unskipVarint=function(s){for(;128>>=7;this.cursor_--},jspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var s=this.bytes_,o=s[this.cursor_+0],et=127&o;return 128>o?(this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+1]))<<7,128>o?(this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+2]))<<14,128>o?(this.cursor_+=3,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+3]))<<21,128>o?(this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(15&(o=s[this.cursor_+4]))<<28,128>o?(this.cursor_+=5,goog.asserts.assert(this.cursor_<=this.end_),et>>>0):(this.cursor_+=5,128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&goog.asserts.assert(!1),goog.asserts.assert(this.cursor_<=this.end_),et)))))},jspb.BinaryDecoder.prototype.readSignedVarint32=jspb.BinaryDecoder.prototype.readUnsignedVarint32,jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()},jspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()},jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var s=this.readUnsignedVarint32();return s>>>1^-(1&s)},jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinUint64)},jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString)},jspb.BinaryDecoder.prototype.readSignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinInt64)},jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){return this.readSplitVarint64(jspb.utils.joinZigzag64)},jspb.BinaryDecoder.prototype.readZigzagVarintHash64=function(){return this.readSplitZigzagVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readUint8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s},jspb.BinaryDecoder.prototype.readUint16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8},jspb.BinaryDecoder.prototype.readUint32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8|et<<16|tt<<24)>>>0},jspb.BinaryDecoder.prototype.readUint64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUint64(s,o)},jspb.BinaryDecoder.prototype.readUint64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUnsignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readInt8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s<<24>>24},jspb.BinaryDecoder.prototype.readInt16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8)<<16>>16},jspb.BinaryDecoder.prototype.readInt32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8|et<<16|tt<<24},jspb.BinaryDecoder.prototype.readInt64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinInt64(s,o)},jspb.BinaryDecoder.prototype.readInt64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinSignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readFloat=function(){var s=this.readUint32();return jspb.utils.joinFloat32(s,0)},jspb.BinaryDecoder.prototype.readDouble=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinFloat64(s,o)},jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]},jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()},jspb.BinaryDecoder.prototype.readString=function(s){var o=this.bytes_,et=this.cursor_;s=et+s;for(var tt=[],nt="";etrt)tt.push(rt);else{if(192>rt)continue;if(224>rt){var it=o[et++];tt.push((31&rt)<<6|63&it)}else if(240>rt){it=o[et++];var ot=o[et++];tt.push((15&rt)<<12|(63&it)<<6|63&ot)}else 248>rt&&(rt=(7&rt)<<18|(63&(it=o[et++]))<<12|(63&(ot=o[et++]))<<6|63&o[et++],rt-=65536,tt.push(55296+(rt>>10&1023),56320+(1023&rt)))}8192<=tt.length&&(nt+=String.fromCharCode.apply(null,tt),tt.length=0)}return nt+=goog.crypt.byteArrayToString(tt),this.cursor_=et,nt},jspb.BinaryDecoder.prototype.readStringWithLength=function(){var s=this.readUnsignedVarint32();return this.readString(s)},jspb.BinaryDecoder.prototype.readBytes=function(s){if(0>s||this.cursor_+s>this.bytes_.length)return this.error_=!0,goog.asserts.fail("Invalid byte length!"),new Uint8Array(0);var o=this.bytes_.subarray(this.cursor_,this.cursor_+s);return this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_),o},jspb.BinaryDecoder.prototype.readVarintHash64=function(){return this.readSplitVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readFixedHash64=function(){var s=this.bytes_,o=this.cursor_,et=s[o+0],tt=s[o+1],nt=s[o+2],rt=s[o+3],it=s[o+4],ot=s[o+5],st=s[o+6];return s=s[o+7],this.cursor_+=8,String.fromCharCode(et,tt,nt,rt,it,ot,st,s)},jspb.BinaryReader=function(s,o,et){this.decoder_=jspb.BinaryDecoder.alloc(s,o,et),this.fieldCursor_=this.decoder_.getCursor(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null},jspb.BinaryReader.instanceCache_=[],jspb.BinaryReader.alloc=function(s,o,et){if(jspb.BinaryReader.instanceCache_.length){var tt=jspb.BinaryReader.instanceCache_.pop();return s&&tt.decoder_.setBlock(s,o,et),tt}return new jspb.BinaryReader(s,o,et)},jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc,jspb.BinaryReader.prototype.free=function(){this.decoder_.clear(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null,100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)},jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_},jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()},jspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()},jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_},jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_},jspb.BinaryReader.prototype.isDelimited=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED},jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP},jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()},jspb.BinaryReader.prototype.setBlock=function(s,o,et){this.decoder_.setBlock(s,o,et),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.advance=function(s){this.decoder_.advance(s)},jspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return goog.asserts.fail("Decoder hit an error"),!1;this.fieldCursor_=this.decoder_.getCursor();var s=this.decoder_.readUnsignedVarint32(),o=s>>>3;return(s&=7)!=jspb.BinaryConstants.WireType.VARINT&&s!=jspb.BinaryConstants.WireType.FIXED32&&s!=jspb.BinaryConstants.WireType.FIXED64&&s!=jspb.BinaryConstants.WireType.DELIMITED&&s!=jspb.BinaryConstants.WireType.START_GROUP&&s!=jspb.BinaryConstants.WireType.END_GROUP?(goog.asserts.fail("Invalid wire type: %s (at position %s)",s,this.fieldCursor_),this.error_=!0,!1):(this.nextField_=o,this.nextWireType_=s,!0)},jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)},jspb.BinaryReader.prototype.skipMatchingFields=function(){var s=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==s;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()},jspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(goog.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()},jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)goog.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField();else{var s=this.decoder_.readUnsignedVarint32();this.decoder_.advance(s)}},jspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(goog.asserts.fail("Invalid wire type for skipFixed32Field"),this.skipField()):this.decoder_.advance(4)},jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(goog.asserts.fail("Invalid wire type for skipFixed64Field"),this.skipField()):this.decoder_.advance(8)},jspb.BinaryReader.prototype.skipGroup=function(){for(var s=this.nextField_;;){if(!this.nextField()){goog.asserts.fail("Unmatched start-group tag: stream EOF"),this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP){this.nextField_!=s&&(goog.asserts.fail("Unmatched end-group tag"),this.error_=!0);break}this.skipField()}},jspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:goog.asserts.fail("Invalid wire encoding for field.")}},jspb.BinaryReader.prototype.registerReadCallback=function(s,o){this.readCallbacks_===null&&(this.readCallbacks_={}),goog.asserts.assert(!this.readCallbacks_[s]),this.readCallbacks_[s]=o},jspb.BinaryReader.prototype.runReadCallback=function(s){return goog.asserts.assert(this.readCallbacks_!==null),s=this.readCallbacks_[s],goog.asserts.assert(s),s(this)},jspb.BinaryReader.prototype.readAny=function(s){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(s);var o=jspb.BinaryConstants.FieldType;switch(s){case o.DOUBLE:return this.readDouble();case o.FLOAT:return this.readFloat();case o.INT64:return this.readInt64();case o.UINT64:return this.readUint64();case o.INT32:return this.readInt32();case o.FIXED64:return this.readFixed64();case o.FIXED32:return this.readFixed32();case o.BOOL:return this.readBool();case o.STRING:return this.readString();case o.GROUP:goog.asserts.fail("Group field type not supported in readAny()");case o.MESSAGE:goog.asserts.fail("Message field type not supported in readAny()");case o.BYTES:return this.readBytes();case o.UINT32:return this.readUint32();case o.ENUM:return this.readEnum();case o.SFIXED32:return this.readSfixed32();case o.SFIXED64:return this.readSfixed64();case o.SINT32:return this.readSint32();case o.SINT64:return this.readSint64();case o.FHASH64:return this.readFixedHash64();case o.VHASH64:return this.readVarintHash64();default:goog.asserts.fail("Invalid field type in readAny()")}return 0},jspb.BinaryReader.prototype.readMessage=function(s,o){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var et=this.decoder_.getEnd(),tt=this.decoder_.readUnsignedVarint32();tt=this.decoder_.getCursor()+tt,this.decoder_.setEnd(tt),o(s,this),this.decoder_.setCursor(tt),this.decoder_.setEnd(et)},jspb.BinaryReader.prototype.readGroup=function(s,o,et){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP),goog.asserts.assert(this.nextField_==s),et(o,this),this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(goog.asserts.fail("Group submessage did not end with an END_GROUP tag"),this.error_=!0)},jspb.BinaryReader.prototype.getFieldDecoder=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32(),o=this.decoder_.getCursor(),et=o+s;return s=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),o,s),this.decoder_.setCursor(et),s},jspb.BinaryReader.prototype.readInt32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32()},jspb.BinaryReader.prototype.readInt32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32String()},jspb.BinaryReader.prototype.readInt64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readInt64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64String()},jspb.BinaryReader.prototype.readUint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readUint32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32String()},jspb.BinaryReader.prototype.readUint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64()},jspb.BinaryReader.prototype.readUint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64String()},jspb.BinaryReader.prototype.readSint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint32()},jspb.BinaryReader.prototype.readSint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64()},jspb.BinaryReader.prototype.readSint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64String()},jspb.BinaryReader.prototype.readFixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readUint32()},jspb.BinaryReader.prototype.readFixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64()},jspb.BinaryReader.prototype.readFixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64String()},jspb.BinaryReader.prototype.readSfixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32()},jspb.BinaryReader.prototype.readSfixed32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32().toString()},jspb.BinaryReader.prototype.readSfixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64()},jspb.BinaryReader.prototype.readSfixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64String()},jspb.BinaryReader.prototype.readFloat=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readFloat()},jspb.BinaryReader.prototype.readDouble=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readDouble()},jspb.BinaryReader.prototype.readBool=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),!!this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readEnum=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readString=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(s)},jspb.BinaryReader.prototype.readBytes=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(s)},jspb.BinaryReader.prototype.readVarintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readVarintHash64()},jspb.BinaryReader.prototype.readSintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarintHash64()},jspb.BinaryReader.prototype.readSplitVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(s)},jspb.BinaryReader.prototype.readSplitZigzagVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryReader.prototype.readFixedHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readFixedHash64()},jspb.BinaryReader.prototype.readSplitFixed64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readSplitFixed64(s)},jspb.BinaryReader.prototype.readPackedField_=function(s){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var o=this.decoder_.readUnsignedVarint32();o=this.decoder_.getCursor()+o;for(var et=[];this.decoder_.getCursor()o.length?et.length:o.length;for(s.getJsPbMessageId()&&(tt[0]=s.getJsPbMessageId(),nt=1);nt>>1|(1&this.hi)<<31)>>>0,this.hi>>>1>>>0)},jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)},jspb.arith.UInt64.prototype.msb=function(){return!!(2147483648&this.hi)},jspb.arith.UInt64.prototype.lsb=function(){return!!(1&this.lo)},jspb.arith.UInt64.prototype.zero=function(){return this.lo==0&&this.hi==0},jspb.arith.UInt64.prototype.add=function(s){return new jspb.arith.UInt64((this.lo+s.lo&4294967295)>>>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.UInt64.prototype.sub=function(s){return new jspb.arith.UInt64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.UInt64.mul32x32=function(s,o){var et=65535&s,tt=65535&o,nt=o>>>16;for(o=et*tt+65536*(et*nt&65535)+65536*((s>>>=16)*tt&65535),et=s*nt+(et*nt>>>16)+(s*tt>>>16);4294967296<=o;)o-=4294967296,et+=1;return new jspb.arith.UInt64(o>>>0,et>>>0)},jspb.arith.UInt64.prototype.mul=function(s){var o=jspb.arith.UInt64.mul32x32(this.lo,s);return(s=jspb.arith.UInt64.mul32x32(this.hi,s)).hi=s.lo,s.lo=0,o.add(s)},jspb.arith.UInt64.prototype.div=function(s){if(s==0)return[];var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(this.lo,this.hi);s=new jspb.arith.UInt64(s,0);for(var tt=new jspb.arith.UInt64(1,0);!s.msb();)s=s.leftShift(),tt=tt.leftShift();for(;!tt.zero();)0>=s.cmp(et)&&(o=o.add(tt),et=et.sub(s)),s=s.rightShift(),tt=tt.rightShift();return[o,et]},jspb.arith.UInt64.prototype.toString=function(){for(var s="",o=this;!o.zero();){var et=(o=o.div(10))[0];s=o[1].lo+s,o=et}return s==""&&(s="0"),s},jspb.arith.UInt64.fromString=function(s){for(var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(0,0),tt=0;tts[tt]||"9">>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.sub=function(s){return new jspb.arith.Int64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)},jspb.arith.Int64.prototype.toString=function(){var s=(2147483648&this.hi)!=0,o=new jspb.arith.UInt64(this.lo,this.hi);return s&&(o=new jspb.arith.UInt64(0,0).sub(o)),(s?"-":"")+o.toString()},jspb.arith.Int64.fromString=function(s){var o=0>>7|o<<25)>>>0,o>>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSplitFixed64=function(s,o){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(o==Math.floor(o)),goog.asserts.assert(0<=s&&s>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSignedVarint32=function(s){if(goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&so;o++)this.buffer_.push(127&s|128),s>>=7;this.buffer_.push(1)}},jspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_31&&s>31)>>>0)},jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s>>0,tt>>>0)})},jspb.BinaryEncoder.prototype.writeUint8=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&256>s),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeUint16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&65536>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeUint32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeUint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&ss),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeInt16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(-32768<=s&&32768>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeInt32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeInt64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_63&&+s=-jspb.BinaryConstants.FLOAT32_MAX&&s<=jspb.BinaryConstants.FLOAT32_MAX),jspb.utils.splitFloat32(s),this.writeUint32(jspb.utils.split64Low)},jspb.BinaryEncoder.prototype.writeDouble=function(s){goog.asserts.assert(1/0===s||-1/0===s||isNaN(s)||s>=-jspb.BinaryConstants.FLOAT64_MAX&&s<=jspb.BinaryConstants.FLOAT64_MAX),jspb.utils.splitFloat64(s),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeBool=function(s){goog.asserts.assert(typeof s=="boolean"||typeof s=="number"),this.buffer_.push(s?1:0)},jspb.BinaryEncoder.prototype.writeEnum=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&stt)this.buffer_.push(tt);else if(2048>tt)this.buffer_.push(tt>>6|192),this.buffer_.push(63&tt|128);else if(65536>tt)if(55296<=tt&&56319>=tt&&et+1=nt&&(tt=1024*(tt-55296)+nt-56320+65536,this.buffer_.push(tt>>18|240),this.buffer_.push(tt>>12&63|128),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128),et++)}else this.buffer_.push(tt>>12|224),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128)}return this.buffer_.length-o},jspb.BinaryWriter=function(){this.blocks_=[],this.totalLength_=0,this.encoder_=new jspb.BinaryEncoder,this.bookmarks_=[]},jspb.BinaryWriter.prototype.appendUint8Array_=function(s){var o=this.encoder_.end();this.blocks_.push(o),this.blocks_.push(s),this.totalLength_+=o.length+s.length},jspb.BinaryWriter.prototype.beginDelimited_=function(s){return this.writeFieldHeader_(s,jspb.BinaryConstants.WireType.DELIMITED),s=this.encoder_.end(),this.blocks_.push(s),this.totalLength_+=s.length,s.push(this.totalLength_),s},jspb.BinaryWriter.prototype.endDelimited_=function(s){var o=s.pop();for(o=this.totalLength_+this.encoder_.length()-o,goog.asserts.assert(0<=o);127>>=7,this.totalLength_++;s.push(o),this.totalLength_++},jspb.BinaryWriter.prototype.writeSerializedMessage=function(s,o,et){this.appendUint8Array_(s.subarray(o,et))},jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(s,o,et){s!=null&&o!=null&&et!=null&&this.writeSerializedMessage(s,o,et)},jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[],this.encoder_.end(),this.totalLength_=0,this.bookmarks_=[]},jspb.BinaryWriter.prototype.getResultBuffer=function(){goog.asserts.assert(this.bookmarks_.length==0);for(var s=new Uint8Array(this.totalLength_+this.encoder_.length()),o=this.blocks_,et=o.length,tt=0,nt=0;nt=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o>>0,rt>>>0)})},jspb.BinaryWriter.prototype.writeRepeatedInt32=function(s,o){if(o!=null)for(var et=0;et>>0,ot>>>0)});this.endDelimited_(s)}},jspb.BinaryWriter.prototype.writePackedInt64String=function(s,o){if(o!=null&&o.length){s=this.beginDelimited_(s);for(var et=0;et-1};function dt(Tt){if(typeof Tt!="string"&&(Tt=String(Tt)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(Tt))throw new TypeError("Invalid character in header field name");return Tt.toLowerCase()}function ht(Tt){return typeof Tt!="string"&&(Tt=String(Tt)),Tt}function ct(Tt){var Bt={next:function(){var xt=Tt.shift();return{done:xt===void 0,value:xt}}};return it&&(Bt[Symbol.iterator]=function(){return Bt}),Bt}function pt(Tt){this.map={},Tt instanceof pt?Tt.forEach(function(Bt,xt){this.append(xt,Bt)},this):Array.isArray(Tt)?Tt.forEach(function(Bt){this.append(Bt[0],Bt[1])},this):Tt&&Object.getOwnPropertyNames(Tt).forEach(function(Bt){this.append(Bt,Tt[Bt])},this)}function ft(Tt){if(Tt.bodyUsed)return Promise.reject(new TypeError("Already read"));Tt.bodyUsed=!0}function gt(Tt){return new Promise(function(Bt,xt){Tt.onload=function(){Bt(Tt.result)},Tt.onerror=function(){xt(Tt.error)}})}function yt(Tt){var Bt=new FileReader,xt=gt(Bt);return Bt.readAsArrayBuffer(Tt),xt}function Ut(Tt){if(Tt.slice)return Tt.slice(0);var Bt=new Uint8Array(Tt.byteLength);return Bt.set(new Uint8Array(Tt)),Bt.buffer}function Ft(){return this.bodyUsed=!1,this._initBody=function(Tt){var Bt;this._bodyInit=Tt,Tt?typeof Tt=="string"?this._bodyText=Tt:ot&&Blob.prototype.isPrototypeOf(Tt)?this._bodyBlob=Tt:st&&FormData.prototype.isPrototypeOf(Tt)?this._bodyFormData=Tt:rt&&URLSearchParams.prototype.isPrototypeOf(Tt)?this._bodyText=Tt.toString():at&&ot&&(Bt=Tt)&&DataView.prototype.isPrototypeOf(Bt)?(this._bodyArrayBuffer=Ut(Tt.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):at&&(ArrayBuffer.prototype.isPrototypeOf(Tt)||ut(Tt))?this._bodyArrayBuffer=Ut(Tt):this._bodyText=Tt=Object.prototype.toString.call(Tt):this._bodyText="",this.headers.get("content-type")||(typeof Tt=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):rt&&URLSearchParams.prototype.isPrototypeOf(Tt)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},ot&&(this.blob=function(){var Tt=ft(this);if(Tt)return Tt;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?ft(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(yt)}),this.text=function(){var Tt,Bt,xt,Ct=ft(this);if(Ct)return Ct;if(this._bodyBlob)return Tt=this._bodyBlob,Bt=new FileReader,xt=gt(Bt),Bt.readAsText(Tt),xt;if(this._bodyArrayBuffer)return Promise.resolve(function(kt){for(var Nt=new Uint8Array(kt),Ot=new Array(Nt.length),Jt=0;Jt-1?Ct:xt),this.mode=Bt.mode||this.mode||null,this.signal=Bt.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&kt)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(kt)}function At(Tt){var Bt=new FormData;return Tt.trim().split("&").forEach(function(xt){if(xt){var Ct=xt.split("="),kt=Ct.shift().replace(/\+/g," "),Nt=Ct.join("=").replace(/\+/g," ");Bt.append(decodeURIComponent(kt),decodeURIComponent(Nt))}}),Bt}function Lt(Tt,Bt){Bt||(Bt={}),this.type="default",this.status=Bt.status===void 0?200:Bt.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in Bt?Bt.statusText:"OK",this.headers=new pt(Bt.headers),this.url=Bt.url||"",this._initBody(Tt)}vt.prototype.clone=function(){return new vt(this,{body:this._bodyInit})},Ft.call(vt.prototype),Ft.call(Lt.prototype),Lt.prototype.clone=function(){return new Lt(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new pt(this.headers),url:this.url})},Lt.error=function(){var Tt=new Lt(null,{status:0,statusText:""});return Tt.type="error",Tt};var Rt=[301,302,303,307,308];Lt.redirect=function(Tt,Bt){if(Rt.indexOf(Bt)===-1)throw new RangeError("Invalid status code");return new Lt(null,{status:Bt,headers:{location:Tt}})},nt.DOMException=tt.DOMException;try{new nt.DOMException}catch{nt.DOMException=function(Tt,Bt){this.message=Tt,this.name=Bt;var xt=Error(Tt);this.stack=xt.stack},nt.DOMException.prototype=Object.create(Error.prototype),nt.DOMException.prototype.constructor=nt.DOMException}function St(Tt,Bt){return new Promise(function(xt,Ct){var kt=new vt(Tt,Bt);if(kt.signal&&kt.signal.aborted)return Ct(new nt.DOMException("Aborted","AbortError"));var Nt=new XMLHttpRequest;function Ot(){Nt.abort()}Nt.onload=function(){var Jt,Dt,Et={status:Nt.status,statusText:Nt.statusText,headers:(Jt=Nt.getAllResponseHeaders()||"",Dt=new pt,Jt.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(zt){var en=zt.split(":"),Kt=en.shift().trim();if(Kt){var nn=en.join(":").trim();Dt.append(Kt,nn)}}),Dt)};Et.url="responseURL"in Nt?Nt.responseURL:Et.headers.get("X-Request-URL");var Pt="response"in Nt?Nt.response:Nt.responseText;xt(new Lt(Pt,Et))},Nt.onerror=function(){Ct(new TypeError("Network request failed"))},Nt.ontimeout=function(){Ct(new TypeError("Network request failed"))},Nt.onabort=function(){Ct(new nt.DOMException("Aborted","AbortError"))},Nt.open(kt.method,kt.url,!0),kt.credentials==="include"?Nt.withCredentials=!0:kt.credentials==="omit"&&(Nt.withCredentials=!1),"responseType"in Nt&&ot&&(Nt.responseType="blob"),kt.headers.forEach(function(Jt,Dt){Nt.setRequestHeader(Dt,Jt)}),kt.signal&&(kt.signal.addEventListener("abort",Ot),Nt.onreadystatechange=function(){Nt.readyState===4&&kt.signal.removeEventListener("abort",Ot)}),Nt.send(kt._bodyInit===void 0?null:kt._bodyInit)})}St.polyfill=!0,tt.fetch||(tt.fetch=St,tt.Headers=pt,tt.Request=vt,tt.Response=Lt),nt.Headers=pt,nt.Request=vt,nt.Response=Lt,nt.fetch=St})({})})(et),delete et.fetch.polyfill,(o=et.fetch).default=et.fetch,o.fetch=et.fetch,o.Headers=et.Headers,o.Request=et.Request,o.Response=et.Response,s.exports=o},function(s,o,et){(function(tt){const nt=et(211),rt=et(52),it=(ot,st,at)=>({from:it,EnvVarError:et(52),get:function(lt){if(!lt)return ot;if(arguments.length>1)throw new rt("It looks like you passed more than one argument to env.get(). Since env-var@6.0.0 this is no longer supported. To set a default value use env.get(TARGET).default(DEFAULT)");return nt(ot,lt,st||{},at||function(){})},accessors:et(94),logger:et(225)(console.log,ot.NODE_ENV)});s.exports=it(tt.env)}).call(this,et(2))},function(s,o,et){var tt=et(13),nt=et(73),rt=et(3).LEVEL,it=s.exports=function(){var ot=this,st=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};nt.call(this,{objectMode:!0,highWaterMark:st.highWaterMark}),this.format=st.format,this.level=st.level,this.handleExceptions=st.handleExceptions,this.silent=st.silent,st.log&&(this.log=st.log),st.logv&&(this.logv=st.logv),st.close&&(this.close=st.close),this.once("pipe",function(at){ot.levels=at.levels,ot.parent=at}),this.once("unpipe",function(at){at===ot.parent&&(ot.parent=null,ot.close&&ot.close())})};tt.inherits(it,nt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);var lt=this.level||this.parent&&this.parent.level;if(!lt||this.levels[lt]>=this.levels[ot[rt]]){if(ot&&!this.format)return this.log(ot,at);var ut=void 0,dt=void 0;try{dt=this.format.transform(Object.assign({},ot),this.format.options)}catch(ht){ut=ht}if(ut||!dt){if(at(),ut)throw ut;return}return this.log(dt,at)}return at(null)},it.prototype._writev=function(ot,st){if(this.logv){var at=ot.filter(this._accept,this);return at.length?this.logv(at,st):st(null)}for(var lt=0;lt=this.levels[st[rt]])||!this.handleExceptions&&st.exception===!0)},it.prototype._nop=function(){}},function(s,o,et){(function(tt){const nt=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,rt=typeof AbortController=="function"?AbortController:class{constructor(){this.signal=new st}abort(){this.signal.dispatchEvent("abort")}},it=typeof AbortSignal=="function",ot=typeof rt.AbortSignal=="function",st=it?AbortSignal:ot?rt.AbortController:class{constructor(){this.aborted=!1,this._listeners=[]}dispatchEvent(Ft){if(Ft==="abort"){this.aborted=!0;const mt={type:Ft,target:this};this.onabort(mt),this._listeners.forEach(vt=>vt(mt),this)}}onabort(){}addEventListener(Ft,mt){Ft==="abort"&&this._listeners.push(mt)}removeEventListener(Ft,mt){Ft==="abort"&&(this._listeners=this._listeners.filter(vt=>vt!==mt))}},at=new Set,lt=(Ft,mt)=>{const vt=`LRU_CACHE_OPTION_${Ft}`;ht(vt)&&ct(vt,`${Ft} option`,`options.${mt}`,Ut)},ut=(Ft,mt)=>{const vt=`LRU_CACHE_METHOD_${Ft}`;if(ht(vt)){const{prototype:At}=Ut,{get:Lt}=Object.getOwnPropertyDescriptor(At,Ft);ct(vt,`${Ft} method`,`cache.${mt}()`,Lt)}},dt=(...Ft)=>{typeof tt=="object"&&tt&&typeof tt.emitWarning=="function"?tt.emitWarning(...Ft):console.error(...Ft)},ht=Ft=>!at.has(Ft),ct=(Ft,mt,vt,At)=>{at.add(Ft),dt(`The ${mt} is deprecated. Please use ${vt} instead.`,"DeprecationWarning",Ft,At)},pt=Ft=>Ft&&Ft===Math.floor(Ft)&&Ft>0&&isFinite(Ft),ft=Ft=>pt(Ft)?Ft<=Math.pow(2,8)?Uint8Array:Ft<=Math.pow(2,16)?Uint16Array:Ft<=Math.pow(2,32)?Uint32Array:Ft<=Number.MAX_SAFE_INTEGER?gt:null:null;class gt extends Array{constructor(mt){super(mt),this.fill(0)}}class yt{constructor(mt){if(mt===0)return[];const vt=ft(mt);this.heap=new vt(mt),this.length=0}push(mt){this.heap[this.length++]=mt}pop(){return this.heap[--this.length]}}class Ut{constructor(mt={}){const{max:vt=0,ttl:At,ttlResolution:Lt=1,ttlAutopurge:Rt,updateAgeOnGet:St,updateAgeOnHas:Tt,allowStale:Bt,dispose:xt,disposeAfter:Ct,noDisposeOnSet:kt,noUpdateTTL:Nt,maxSize:Ot=0,maxEntrySize:Jt=0,sizeCalculation:Dt,fetchMethod:Et,fetchContext:Pt,noDeleteOnFetchRejection:zt,noDeleteOnStaleGet:en}=mt,{length:Kt,maxAge:nn,stale:Zt}=mt instanceof Ut?{}:mt;if(vt!==0&&!pt(vt))throw new TypeError("max option must be a nonnegative integer");const jt=vt?ft(vt):Array;if(!jt)throw new Error("invalid max value: "+vt);if(this.max=vt,this.maxSize=Ot,this.maxEntrySize=Jt||this.maxSize,this.sizeCalculation=Dt||Kt,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=Et||null,this.fetchMethod&&typeof this.fetchMethod!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=Pt,!this.fetchMethod&&Pt!==void 0)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(vt).fill(null),this.valList=new Array(vt).fill(null),this.next=new jt(vt),this.prev=new jt(vt),this.head=0,this.tail=0,this.free=new yt(vt),this.initialFill=1,this.size=0,typeof xt=="function"&&(this.dispose=xt),typeof Ct=="function"?(this.disposeAfter=Ct,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!kt,this.noUpdateTTL=!!Nt,this.noDeleteOnFetchRejection=!!zt,this.maxEntrySize!==0){if(this.maxSize!==0&&!pt(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!pt(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!Bt||!!Zt,this.noDeleteOnStaleGet=!!en,this.updateAgeOnGet=!!St,this.updateAgeOnHas=!!Tt,this.ttlResolution=pt(Lt)||Lt===0?Lt:1,this.ttlAutopurge=!!Rt,this.ttl=At||nn||0,this.ttl){if(!pt(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(this.max===0&&this.ttl===0&&this.maxSize===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const Vt="LRU_CACHE_UNBOUNDED";ht(Vt)&&(at.add(Vt),dt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Vt,Ut))}Zt&<("stale","allowStale"),nn&<("maxAge","ttl"),Kt&<("length","sizeCalculation")}getRemainingTTL(mt){return this.has(mt,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new gt(this.max),this.starts=new gt(this.max),this.setItemTTL=(At,Lt,Rt=nt.now())=>{if(this.starts[At]=Lt!==0?Rt:0,this.ttls[At]=Lt,Lt!==0&&this.ttlAutopurge){const St=setTimeout(()=>{this.isStale(At)&&this.delete(this.keyList[At])},Lt+1);St.unref&&St.unref()}},this.updateItemAge=At=>{this.starts[At]=this.ttls[At]!==0?nt.now():0};let mt=0;const vt=()=>{const At=nt.now();if(this.ttlResolution>0){mt=At;const Lt=setTimeout(()=>mt=0,this.ttlResolution);Lt.unref&&Lt.unref()}return At};this.getRemainingTTL=At=>{const Lt=this.keyMap.get(At);return Lt===void 0?0:this.ttls[Lt]===0||this.starts[Lt]===0?1/0:this.starts[Lt]+this.ttls[Lt]-(mt||vt())},this.isStale=At=>this.ttls[At]!==0&&this.starts[At]!==0&&(mt||vt())-this.starts[At]>this.ttls[At]}updateItemAge(mt){}setItemTTL(mt,vt,At){}isStale(mt){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new gt(this.max),this.removeItemSize=mt=>{this.calculatedSize-=this.sizes[mt],this.sizes[mt]=0},this.requireSize=(mt,vt,At,Lt)=>{if(!pt(At)){if(!Lt)throw new TypeError("invalid size value (must be positive integer)");if(typeof Lt!="function")throw new TypeError("sizeCalculation must be a function");if(At=Lt(vt,mt),!pt(At))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return At},this.addItemSize=(mt,vt)=>{this.sizes[mt]=vt;const At=this.maxSize-this.sizes[mt];for(;this.calculatedSize>At;)this.evict(!0);this.calculatedSize+=this.sizes[mt]}}removeItemSize(mt){}addItemSize(mt,vt){}requireSize(mt,vt,At,Lt){if(At||Lt)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.tail;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.head);)vt=this.prev[vt]}*rindexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.head;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.tail);)vt=this.next[vt]}isValidIndex(mt){return this.keyMap.get(this.keyList[mt])===mt}*entries(){for(const mt of this.indexes())yield[this.keyList[mt],this.valList[mt]]}*rentries(){for(const mt of this.rindexes())yield[this.keyList[mt],this.valList[mt]]}*keys(){for(const mt of this.indexes())yield this.keyList[mt]}*rkeys(){for(const mt of this.rindexes())yield this.keyList[mt]}*values(){for(const mt of this.indexes())yield this.valList[mt]}*rvalues(){for(const mt of this.rindexes())yield this.valList[mt]}[Symbol.iterator](){return this.entries()}find(mt,vt={}){for(const At of this.indexes())if(mt(this.valList[At],this.keyList[At],this))return this.get(this.keyList[At],vt)}forEach(mt,vt=this){for(const At of this.indexes())mt.call(vt,this.valList[At],this.keyList[At],this)}rforEach(mt,vt=this){for(const At of this.rindexes())mt.call(vt,this.valList[At],this.keyList[At],this)}get prune(){return ut("prune","purgeStale"),this.purgeStale}purgeStale(){let mt=!1;for(const vt of this.rindexes({allowStale:!0}))this.isStale(vt)&&(this.delete(this.keyList[vt]),mt=!0);return mt}dump(){const mt=[];for(const vt of this.indexes({allowStale:!0})){const At=this.keyList[vt],Lt=this.valList[vt],Rt={value:this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt};if(this.ttls){Rt.ttl=this.ttls[vt];const St=nt.now()-this.starts[vt];Rt.start=Math.floor(Date.now()-St)}this.sizes&&(Rt.size=this.sizes[vt]),mt.unshift([At,Rt])}return mt}load(mt){this.clear();for(const[vt,At]of mt){if(At.start){const Lt=Date.now()-At.start;At.start=nt.now()-Lt}this.set(vt,At.value,At)}}dispose(mt,vt,At){}set(mt,vt,{ttl:At=this.ttl,start:Lt,noDisposeOnSet:Rt=this.noDisposeOnSet,size:St=0,sizeCalculation:Tt=this.sizeCalculation,noUpdateTTL:Bt=this.noUpdateTTL}={}){if(St=this.requireSize(mt,vt,St,Tt),this.maxEntrySize&&St>this.maxEntrySize)return this;let xt=this.size===0?void 0:this.keyMap.get(mt);if(xt===void 0)xt=this.newIndex(),this.keyList[xt]=mt,this.valList[xt]=vt,this.keyMap.set(mt,xt),this.next[this.tail]=xt,this.prev[xt]=this.tail,this.tail=xt,this.size++,this.addItemSize(xt,St),Bt=!1;else{const Ct=this.valList[xt];vt!==Ct&&(this.isBackgroundFetch(Ct)?Ct.__abortController.abort():Rt||(this.dispose(Ct,mt,"set"),this.disposeAfter&&this.disposed.push([Ct,mt,"set"])),this.removeItemSize(xt),this.valList[xt]=vt,this.addItemSize(xt,St)),this.moveToTail(xt)}if(At===0||this.ttl!==0||this.ttls||this.initializeTTLTracking(),Bt||this.setItemTTL(xt,At,Lt),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return this.size===0?this.tail:this.size===this.max&&this.max!==0?this.evict(!1):this.free.length!==0?this.free.pop():this.initialFill++}pop(){if(this.size){const mt=this.valList[this.head];return this.evict(!0),mt}}evict(mt){const vt=this.head,At=this.keyList[vt],Lt=this.valList[vt];return this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,At,"evict"),this.disposeAfter&&this.disposed.push([Lt,At,"evict"])),this.removeItemSize(vt),mt&&(this.keyList[vt]=null,this.valList[vt]=null,this.free.push(vt)),this.head=this.next[vt],this.keyMap.delete(At),this.size--,vt}has(mt,{updateAgeOnHas:vt=this.updateAgeOnHas}={}){const At=this.keyMap.get(mt);return At!==void 0&&!this.isStale(At)&&(vt&&this.updateItemAge(At),!0)}peek(mt,{allowStale:vt=this.allowStale}={}){const At=this.keyMap.get(mt);if(At!==void 0&&(vt||!this.isStale(At))){const Lt=this.valList[At];return this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt}}backgroundFetch(mt,vt,At,Lt){const Rt=vt===void 0?void 0:this.valList[vt];if(this.isBackgroundFetch(Rt))return Rt;const St=new rt,Tt={signal:St.signal,options:At,context:Lt},Bt=new Promise(xt=>xt(this.fetchMethod(mt,Rt,Tt))).then(xt=>(St.signal.aborted||this.set(mt,xt,Tt.options),xt),xt=>{if(this.valList[vt]===Bt&&(!At.noDeleteOnFetchRejection||Bt.__staleWhileFetching===void 0?this.delete(mt):this.valList[vt]=Bt.__staleWhileFetching),Bt.__returned===Bt)throw xt});return Bt.__abortController=St,Bt.__staleWhileFetching=Rt,Bt.__returned=null,vt===void 0?(this.set(mt,Bt,Tt.options),vt=this.keyMap.get(mt)):this.valList[vt]=Bt,Bt}isBackgroundFetch(mt){return mt&&typeof mt=="object"&&typeof mt.then=="function"&&Object.prototype.hasOwnProperty.call(mt,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(mt,"__returned")&&(mt.__returned===mt||mt.__returned===null)}async fetch(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet,ttl:Rt=this.ttl,noDisposeOnSet:St=this.noDisposeOnSet,size:Tt=0,sizeCalculation:Bt=this.sizeCalculation,noUpdateTTL:xt=this.noUpdateTTL,noDeleteOnFetchRejection:Ct=this.noDeleteOnFetchRejection,fetchContext:kt=this.fetchContext,forceRefresh:Nt=!1}={}){if(!this.fetchMethod)return this.get(mt,{allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt});const Ot={allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt,ttl:Rt,noDisposeOnSet:St,size:Tt,sizeCalculation:Bt,noUpdateTTL:xt,noDeleteOnFetchRejection:Ct};let Jt=this.keyMap.get(mt);if(Jt===void 0){const Dt=this.backgroundFetch(mt,Jt,Ot,kt);return Dt.__returned=Dt}{const Dt=this.valList[Jt];if(this.isBackgroundFetch(Dt))return vt&&Dt.__staleWhileFetching!==void 0?Dt.__staleWhileFetching:Dt.__returned=Dt;if(!Nt&&!this.isStale(Jt))return this.moveToTail(Jt),At&&this.updateItemAge(Jt),Dt;const Et=this.backgroundFetch(mt,Jt,Ot,kt);return vt&&Et.__staleWhileFetching!==void 0?Et.__staleWhileFetching:Et.__returned=Et}}get(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet}={}){const Rt=this.keyMap.get(mt);if(Rt!==void 0){const St=this.valList[Rt],Tt=this.isBackgroundFetch(St);return this.isStale(Rt)?Tt?vt?St.__staleWhileFetching:void 0:(Lt||this.delete(mt),vt?St:void 0):Tt?void 0:(this.moveToTail(Rt),At&&this.updateItemAge(Rt),St)}}connect(mt,vt){this.prev[vt]=mt,this.next[mt]=vt}moveToTail(mt){mt!==this.tail&&(mt===this.head?this.head=this.next[mt]:this.connect(this.prev[mt],this.next[mt]),this.connect(this.tail,mt),this.tail=mt)}get del(){return ut("del","delete"),this.delete}delete(mt){let vt=!1;if(this.size!==0){const At=this.keyMap.get(mt);if(At!==void 0)if(vt=!0,this.size===1)this.clear();else{this.removeItemSize(At);const Lt=this.valList[At];this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,mt,"delete"),this.disposeAfter&&this.disposed.push([Lt,mt,"delete"])),this.keyMap.delete(mt),this.keyList[At]=null,this.valList[At]=null,At===this.tail?this.tail=this.prev[At]:At===this.head?this.head=this.next[At]:(this.next[this.prev[At]]=this.next[At],this.prev[this.next[At]]=this.prev[At]),this.size--,this.free.push(At)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return vt}clear(){for(const mt of this.rindexes({allowStale:!0})){const vt=this.valList[mt];if(this.isBackgroundFetch(vt))vt.__abortController.abort();else{const At=this.keyList[mt];this.dispose(vt,At,"delete"),this.disposeAfter&&this.disposed.push([vt,At,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return ut("reset","clear"),this.clear}get length(){return((mt,vt)=>{const At=`LRU_CACHE_PROPERTY_${mt}`;if(ht(At)){const{prototype:Lt}=Ut,{get:Rt}=Object.getOwnPropertyDescriptor(Lt,mt);ct(At,`${mt} property`,`cache.${vt}`,Rt)}})("length","size"),this.size}static get AbortController(){return rt}static get AbortSignal(){return st}}s.exports=Ut}).call(this,et(2))},function(s,o,et){var tt=et(41).Colorizer;s.exports=function(nt){return tt.addColors(nt.colors||nt),nt}},function(s,o,et){var tt={};s.exports=tt,tt.themes={};var nt=et(13),rt=tt.styles=et(109),it=Object.defineProperties,ot=new RegExp(/[\r\n]+/g);tt.supportsColor=et(110).supportsColor,tt.enabled===void 0&&(tt.enabled=tt.supportsColor()!==!1),tt.enable=function(){tt.enabled=!0},tt.disable=function(){tt.enabled=!1},tt.stripColors=tt.strip=function(ft){return(""+ft).replace(/\x1B\[\d+m/g,"")},tt.stylize=function(ft,gt){return tt.enabled?rt[gt].open+ft+rt[gt].close:ft+""};var st=/[|\\{}()[\]^$+*?.]/g;function at(ft){var gt=function yt(){return ht.apply(yt,arguments)};return gt._styles=ft,gt.__proto__=dt,gt}var lt,ut=(lt={},rt.grey=rt.gray,Object.keys(rt).forEach(function(ft){rt[ft].closeRe=new RegExp(function(gt){if(typeof gt!="string")throw new TypeError("Expected a string");return gt.replace(st,"\\$&")}(rt[ft].close),"g"),lt[ft]={get:function(){return at(this._styles.concat(ft))}}}),lt),dt=it(function(){},ut);function ht(){var ft=Array.prototype.slice.call(arguments),gt=ft.map(function(vt){return vt!==void 0&&vt.constructor===String?vt:nt.inspect(vt)}).join(" ");if(!tt.enabled||!gt)return gt;for(var yt=gt.indexOf(` `)!=-1,Ut=this._styles,Ft=Ut.length;Ft--;){var mt=rt[Ut[Ft]];gt=mt.open+gt.replace(mt.closeRe,mt.open)+mt.close,yt&&(gt=gt.replace(ot,function(vt){return mt.close+vt+mt.open}))}return gt}tt.setTheme=function(ft){if(typeof ft!="string")for(var gt in ft)(function(yt){tt[yt]=function(Ut){if(typeof ft[yt]=="object"){var Ft=Ut;for(var mt in ft[yt])Ft=tt[ft[yt][mt]](Ft);return Ft}return tt[ft[yt]](Ut)}})(gt);else console.log("colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));")};var ct=function(ft,gt){var yt=gt.split("");return(yt=yt.map(ft)).join("")};for(var pt in tt.trap=et(112),tt.zalgo=et(113),tt.maps={},tt.maps.america=et(114)(tt),tt.maps.zebra=et(115)(tt),tt.maps.rainbow=et(116)(tt),tt.maps.random=et(117)(tt),tt.maps)(function(ft){tt[ft]=function(gt){return ct(tt.maps[ft],gt)}})(pt);it(tt,function(){var ft={};return Object.keys(ut).forEach(function(gt){ft[gt]={get:function(){return at([gt])}}}),ft}())},function(s,o){s.exports=function(et){return et&&typeof et=="object"&&typeof et.copy=="function"&&typeof et.fill=="function"&&typeof et.readUInt8=="function"}},function(s,o){typeof Object.create=="function"?s.exports=function(et,tt){et.super_=tt,et.prototype=Object.create(tt.prototype,{constructor:{value:et,enumerable:!1,writable:!0,configurable:!0}})}:s.exports=function(et,tt){et.super_=tt;var nt=function(){};nt.prototype=tt.prototype,et.prototype=new nt,et.prototype.constructor=et}},function(s,o){var et={};s.exports=et;var tt={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(tt).forEach(function(nt){var rt=tt[nt],it=et[nt]=[];it.open="\x1B["+rt[0]+"m",it.close="\x1B["+rt[1]+"m"})},function(s,o,et){(function(tt){var nt=et(18),rt=et(111),it=tt.env,ot=void 0;function st(at){return function(lt){return lt!==0&&{level:lt,hasBasic:!0,has256:lt>=2,has16m:lt>=3}}(function(lt){if(ot===!1)return 0;if(rt("color=16m")||rt("color=full")||rt("color=truecolor"))return 3;if(rt("color=256"))return 2;if(lt&&!lt.isTTY&&ot!==!0)return 0;var ut=ot?1:0;if(tt.platform==="win32"){var dt=nt.release().split(".");return Number(tt.versions.node.split(".")[0])>=8&&Number(dt[0])>=10&&Number(dt[2])>=10586?Number(dt[2])>=14931?3:2:1}return"CI"in it?["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(function(ht){return ht in it})||it.CI_NAME==="codeship"?1:ut:"TEAMCITY_VERSION"in it?/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(it.TEAMCITY_VERSION)?1:0:"TERM_PROGRAM"in it?(parseInt("445".split(".")[0],10),2):/-256(color)?$/i.test("xterm-256color")?2:/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test("xterm-256color")||"COLORTERM"in it?1:ut}(at))}rt("no-color")||rt("no-colors")||rt("color=false")?ot=!1:(rt("color")||rt("colors")||rt("color=true")||rt("color=always"))&&(ot=!0),"FORCE_COLOR"in it&&(ot=it.FORCE_COLOR.length===0||parseInt(it.FORCE_COLOR,10)!==0),s.exports={supportsColor:st,stdout:st(tt.stdout),stderr:st(tt.stderr)}}).call(this,et(2))},function(s,o,et){(function(tt){s.exports=function(nt,rt){var it=(rt=rt||tt.argv).indexOf("--"),ot=/^-{1,2}/.test(nt)?"":"--",st=rt.indexOf(ot+nt);return st!==-1&&(it===-1||st0&&arguments[0]!==void 0?arguments[0]:{};tt(this,ut),ct.levels||(ct.levels=st.npm.levels),this.colorizer=new rt(ct),this.padder=new it(ct),this.options=ct}var dt,ht;return dt=ut,(ht=[{key:"transform",value:function(ct,pt){return this.colorizer.transform(this.padder.transform(ct,pt),pt),ct[at]="".concat(ct.level,":").concat(ct.message),ct}}])&&nt(dt.prototype,ht),ut}();s.exports=function(ut){return new lt(ut)},s.exports.Format=lt},function(s,o,et){var tt=et(12);function nt(it){if(it.every(rt))return function(ot){for(var st=ot,at=0;at1&&arguments[1]!==void 0?arguments[1]:{};return st[rt]=(at.stable?it.stableStringify:it)(st,at.replacer||ot,at.space),st})}).call(this,et(5).Buffer)},function(s,o,et){o.byteLength=function(ut){var dt=at(ut),ht=dt[0],ct=dt[1];return 3*(ht+ct)/4-ct},o.toByteArray=function(ut){for(var dt,ht=at(ut),ct=ht[0],pt=ht[1],ft=new rt(function(Ft,mt,vt){return 3*(mt+vt)/4-vt}(0,ct,pt)),gt=0,yt=pt>0?ct-4:ct,Ut=0;Ut>16&255,ft[gt++]=dt>>8&255,ft[gt++]=255&dt;return pt===2&&(dt=nt[ut.charCodeAt(Ut)]<<2|nt[ut.charCodeAt(Ut+1)]>>4,ft[gt++]=255&dt),pt===1&&(dt=nt[ut.charCodeAt(Ut)]<<10|nt[ut.charCodeAt(Ut+1)]<<4|nt[ut.charCodeAt(Ut+2)]>>2,ft[gt++]=dt>>8&255,ft[gt++]=255&dt),ft},o.fromByteArray=function(ut){for(var dt,ht=ut.length,ct=ht%3,pt=[],ft=0,gt=ht-ct;ftgt?gt:ft+16383));return ct===1?(dt=ut[ht-1],pt.push(tt[dt>>2]+tt[dt<<4&63]+"==")):ct===2&&(dt=(ut[ht-2]<<8)+ut[ht-1],pt.push(tt[dt>>10]+tt[dt>>4&63]+tt[dt<<2&63]+"=")),pt.join("")};for(var tt=[],nt=[],rt=typeof Uint8Array<"u"?Uint8Array:Array,it="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ot=0,st=it.length;ot0)throw new Error("Invalid string. Length must be a multiple of 4");var ht=ut.indexOf("=");return ht===-1&&(ht=dt),[ht,ht===dt?0:4-ht%4]}function lt(ut,dt,ht){for(var ct,pt,ft=[],gt=dt;gt>18&63]+tt[pt>>12&63]+tt[pt>>6&63]+tt[63&pt]);return ft.join("")}nt["-".charCodeAt(0)]=62,nt["_".charCodeAt(0)]=63},function(s,o){o.read=function(et,tt,nt,rt,it){var ot,st,at=8*it-rt-1,lt=(1<>1,dt=-7,ht=nt?it-1:0,ct=nt?-1:1,pt=et[tt+ht];for(ht+=ct,ot=pt&(1<<-dt)-1,pt>>=-dt,dt+=at;dt>0;ot=256*ot+et[tt+ht],ht+=ct,dt-=8);for(st=ot&(1<<-dt)-1,ot>>=-dt,dt+=rt;dt>0;st=256*st+et[tt+ht],ht+=ct,dt-=8);if(ot===0)ot=1-ut;else{if(ot===lt)return st?NaN:1/0*(pt?-1:1);st+=Math.pow(2,rt),ot-=ut}return(pt?-1:1)*st*Math.pow(2,ot-rt)},o.write=function(et,tt,nt,rt,it,ot){var st,at,lt,ut=8*ot-it-1,dt=(1<>1,ct=it===23?Math.pow(2,-24)-Math.pow(2,-77):0,pt=rt?0:ot-1,ft=rt?1:-1,gt=tt<0||tt===0&&1/tt<0?1:0;for(tt=Math.abs(tt),isNaN(tt)||tt===1/0?(at=isNaN(tt)?1:0,st=dt):(st=Math.floor(Math.log(tt)/Math.LN2),tt*(lt=Math.pow(2,-st))<1&&(st--,lt*=2),(tt+=st+ht>=1?ct/lt:ct*Math.pow(2,1-ht))*lt>=2&&(st++,lt/=2),st+ht>=dt?(at=0,st=dt):st+ht>=1?(at=(tt*lt-1)*Math.pow(2,it),st+=ht):(at=tt*Math.pow(2,ht-1)*Math.pow(2,it),st=0));it>=8;et[nt+pt]=255&at,pt+=ft,at/=256,it-=8);for(st=st<0;et[nt+pt]=255&st,pt+=ft,st/=256,ut-=8);et[nt+pt-ft]|=128*gt}},function(s,o,et){var tt=et(12);s.exports=tt(function(nt,rt){return rt.message?(nt.message="[".concat(rt.label,"] ").concat(nt.message),nt):(nt.label=rt.label,nt)})},function(s,o,et){var tt=et(12),nt=et(3).MESSAGE,rt=et(35);s.exports=tt(function(it){var ot={};return it.message&&(ot["@message"]=it.message,delete it.message),it.timestamp&&(ot["@timestamp"]=it.timestamp,delete it.timestamp),ot["@fields"]=it,it[nt]=rt(ot),it})},function(s,o,et){var tt=et(12);function nt(it,ot,st){var at,lt,ut,dt=ot.reduce(function(ct,pt){return ct[pt]=it[pt],delete it[pt],ct},{}),ht=Object.keys(it).reduce(function(ct,pt){return ct[pt]=it[pt],delete it[pt],ct},{});return Object.assign(it,dt,(ut=ht,(lt=st)in(at={})?Object.defineProperty(at,lt,{value:ut,enumerable:!0,configurable:!0,writable:!0}):at[lt]=ut,at)),it}function rt(it,ot,st){return it[st]=ot.reduce(function(at,lt){return at[lt]=it[lt],delete it[lt],at},{}),it}s.exports=tt(function(it){var ot=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},st="metadata";ot.key&&(st=ot.key);var at=[];return ot.fillExcept||ot.fillWith||(at.push("level"),at.push("message")),ot.fillExcept&&(at=ot.fillExcept),at.length>0?nt(it,at,st):ot.fillWith?rt(it,ot.fillWith,st):it})},function(s,o,et){var tt=et(13).inspect,nt=et(12),rt=et(3),it=rt.LEVEL,ot=rt.MESSAGE,st=rt.SPLAT;s.exports=nt(function(at){var lt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ut=Object.assign({},at);return delete ut[it],delete ut[ot],delete ut[st],at[ot]=tt(ut,!1,lt.depth||null,lt.colorize),at})},function(s,o,et){function tt(it,ot){for(var st=0;stut.length)&&(dt=ut.length);for(var ht=0,ct=new Array(dt);ht1?ft.splice(0):ft,Ut=yt.length;if(Ut)for(var Ft=0;Ft1&&arguments[1]!==void 0?arguments[1]:{};return it.format&&(rt.timestamp=typeof it.format=="function"?it.format():tt.format(new Date,it.format)),rt.timestamp||(rt.timestamp=new Date().toISOString()),it.alias&&(rt[it.alias]=rt.timestamp),rt})},function(s,o,et){et.r(o),et.d(o,"assign",function(){return st}),et.d(o,"format",function(){return St}),et.d(o,"parse",function(){return Tt}),et.d(o,"defaultI18n",function(){return dt}),et.d(o,"setGlobalDateI18n",function(){return ct}),et.d(o,"setGlobalDateMasks",function(){return Rt});var tt=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,nt="[^\\s]+",rt=/\[([^]*?)\]/gm;function it(xt,Ct){for(var kt=[],Nt=0,Ot=xt.length;Nt-1?Nt:null}};function st(xt){for(var Ct=[],kt=1;kt3?0:(xt-xt%10!=10?1:0)*xt%10]}},ht=st({},dt),ct=function(xt){return ht=st(ht,xt)},pt=function(xt){return xt.replace(/[|\\{()[^$+*?.-]/g,"\\$&")},ft=function(xt,Ct){for(Ct===void 0&&(Ct=2),xt=String(xt);xt.length0?"-":"+")+ft(100*Math.floor(Math.abs(Ct)/60)+Math.abs(Ct)%60,4)},Z:function(xt){var Ct=xt.getTimezoneOffset();return(Ct>0?"-":"+")+ft(Math.floor(Math.abs(Ct)/60),2)+":"+ft(Math.abs(Ct)%60,2)}},yt=function(xt){return+xt-1},Ut=[null,"[1-9]\\d?"],Ft=[null,nt],mt=["isPm",nt,function(xt,Ct){var kt=xt.toLowerCase();return kt===Ct.amPm[0]?0:kt===Ct.amPm[1]?1:null}],vt=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(xt){var Ct=(xt+"").match(/([+-]|\d\d)/gi);if(Ct){var kt=60*+Ct[1]+parseInt(Ct[2],10);return Ct[0]==="+"?kt:-kt}return 0}],At={D:["day","[1-9]\\d?"],DD:["day","\\d\\d"],Do:["day","[1-9]\\d?"+nt,function(xt){return parseInt(xt,10)}],M:["month","[1-9]\\d?",yt],MM:["month","\\d\\d",yt],YY:["year","\\d\\d",function(xt){var Ct=+(""+new Date().getFullYear()).substr(0,2);return+(""+(+xt>68?Ct-1:Ct)+xt)}],h:["hour","[1-9]\\d?",void 0,"isPm"],hh:["hour","\\d\\d",void 0,"isPm"],H:["hour","[1-9]\\d?"],HH:["hour","\\d\\d"],m:["minute","[1-9]\\d?"],mm:["minute","\\d\\d"],s:["second","[1-9]\\d?"],ss:["second","\\d\\d"],YYYY:["year","\\d{4}"],S:["millisecond","\\d",function(xt){return 100*+xt}],SS:["millisecond","\\d\\d",function(xt){return 10*+xt}],SSS:["millisecond","\\d{3}"],d:Ut,dd:Ut,ddd:Ft,dddd:Ft,MMM:["month",nt,ot("monthNamesShort")],MMMM:["month",nt,ot("monthNames")],a:mt,A:mt,ZZ:vt,Z:vt},Lt={default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},Rt=function(xt){return st(Lt,xt)},St=function(xt,Ct,kt){if(Ct===void 0&&(Ct=Lt.default),kt===void 0&&(kt={}),typeof xt=="number"&&(xt=new Date(xt)),Object.prototype.toString.call(xt)!=="[object Date]"||isNaN(xt.getTime()))throw new Error("Invalid Date pass to format");var Nt=[];Ct=(Ct=Lt[Ct]||Ct).replace(rt,function(Wt,Dt){return Nt.push(Dt),"@@@"});var Ot=st(st({},ht),kt);return(Ct=Ct.replace(tt,function(Wt){return gt[Wt](xt,Ot)})).replace(/@@@/g,function(){return Nt.shift()})};function Tt(xt,Ct,kt){if(kt===void 0&&(kt={}),typeof Ct!="string")throw new Error("Invalid format in fecha parse");if(Ct=Lt[Ct]||Ct,xt.length>1e3)return null;var Nt={year:new Date().getFullYear(),month:0,day:1,hour:0,minute:0,second:0,millisecond:0,isPm:null,timezoneOffset:null},Ot=[],Wt=[],Dt=Ct.replace(rt,function(qt,on){return Wt.push(pt(on)),"@@@"}),Et={},Pt={};Dt=pt(Dt).replace(tt,function(qt){var on=At[qt],Xt=on[0],dn=on[1],_n=on[3];if(Et[Xt])throw new Error("Invalid format. "+Xt+" specified twice in format");return Et[Xt]=!0,_n&&(Pt[_n]=!0),Ot.push(on),"("+dn+")"}),Object.keys(Pt).forEach(function(qt){if(!Et[qt])throw new Error("Invalid format. "+qt+" is required in specified format")}),Dt=Dt.replace(/@@@/g,function(){return Wt.shift()});var zt=xt.match(new RegExp(Dt,"i"));if(!zt)return null;for(var en=st(st({},ht),kt),Kt=1;Kt","maintainers":["Jarrett Cruger ","Chris Alderson ","David Hyde "],"repository":{"type":"git","url":"https://github.com/winstonjs/winston.git"},"keywords":["winston","logger","logging","logs","sysadmin","bunyan","pino","loglevel","tools","json","stream"],"dependencies":{"async":"^3.1.0","@dabh/diagnostics":"^2.0.2","is-stream":"^2.0.0","logform":"^2.2.0","one-time":"^1.0.0","readable-stream":"^3.4.0","stack-trace":"0.0.x","triple-beam":"^1.3.0","winston-transport":"^4.4.0"},"devDependencies":{"@babel/cli":"^7.10.3","@babel/core":"^7.10.3","@babel/preset-env":"^7.10.3","@types/node":"^14.0.13","abstract-winston-transport":"^0.5.1","assume":"^2.2.0","colors":"^1.4.0","cross-spawn-async":"^2.2.5","eslint-config-populist":"^4.2.0","hock":"^1.4.1","mocha":"^8.0.1","nyc":"^15.1.0","rimraf":"^3.0.2","split2":"^3.1.1","std-mocks":"^1.0.1","through2":"^3.0.1","winston-compat":"^0.1.5"},"main":"./lib/winston","browser":"./dist/winston","types":"./index.d.ts","scripts":{"lint":"populist lib/*.js lib/winston/*.js lib/winston/**/*.js","pretest":"npm run lint","test":"nyc --reporter=text --reporter lcov npm run test:mocha","test:mocha":"mocha test/*.test.js test/**/*.test.js --exit","build":"./node_modules/.bin/rimraf dist && babel lib -d dist","prepublishOnly":"npm run build"},"engines":{"node":">= 6.4.0"},"license":"MIT"}')},function(s,o,et){Object.defineProperty(o,"Console",{configurable:!0,enumerable:!0,get:function(){return et(140)}}),Object.defineProperty(o,"File",{configurable:!0,enumerable:!0,get:function(){return et(149)}}),Object.defineProperty(o,"Http",{configurable:!0,enumerable:!0,get:function(){return et(189)}}),Object.defineProperty(o,"Stream",{configurable:!0,enumerable:!0,get:function(){return et(201)}})},function(s,o,et){(function(tt){function nt(ft){return(nt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(gt){return typeof gt}:function(gt){return gt&&typeof Symbol=="function"&>.constructor===Symbol&>!==Symbol.prototype?"symbol":typeof gt})(ft)}function rt(ft,gt){if(!(ft instanceof gt))throw new TypeError("Cannot call a class as a function")}function it(ft,gt){for(var yt=0;yt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var yt,Ut=lt(ft);if(gt){var Ft=lt(this).constructor;yt=Reflect.construct(Ut,arguments,Ft)}else yt=Ut.apply(this,arguments);return at(this,yt)}}function at(ft,gt){return!gt||nt(gt)!=="object"&&typeof gt!="function"?function(yt){if(yt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return yt}(ft):gt}function lt(ft){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(gt){return gt.__proto__||Object.getPrototypeOf(gt)})(ft)}var ut=et(18),dt=et(3),ht=dt.LEVEL,ct=dt.MESSAGE,pt=et(20);s.exports=function(ft){(function(mt,vt){if(typeof vt!="function"&&vt!==null)throw new TypeError("Super expression must either be null or a function");mt.prototype=Object.create(vt&&vt.prototype,{constructor:{value:mt,writable:!0,configurable:!0}}),vt&&ot(mt,vt)})(Ft,ft);var gt,yt,Ut=st(Ft);function Ft(){var mt,vt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return rt(this,Ft),(mt=Ut.call(this,vt)).name=vt.name||"console",mt.stderrLevels=mt._stringArrayToSet(vt.stderrLevels),mt.consoleWarnLevels=mt._stringArrayToSet(vt.consoleWarnLevels),mt.eol=vt.eol||ut.EOL,mt.setMaxListeners(30),mt}return gt=Ft,(yt=[{key:"log",value:function(mt,vt){var At=this;return tt(function(){return At.emit("logged",mt)}),this.stderrLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.error(mt[ct]),void(vt&&vt())):this.consoleWarnLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.warn(mt[ct]),void(vt&&vt())):(console._stdout?console._stdout.write("".concat(mt[ct]).concat(this.eol)):console.log(mt[ct]),void(vt&&vt()))}},{key:"_stringArrayToSet",value:function(mt,vt){if(!mt)return{};if(vt=vt||"Cannot make set from type other than Array of string elements",!Array.isArray(mt))throw new Error(vt);return mt.reduce(function(At,Lt){if(typeof Lt!="string")throw new Error(vt);return At[Lt]=!0,At},{})}}])&&it(gt.prototype,yt),Ft}(pt)}).call(this,et(15).setImmediate)},function(s,o,et){(function(tt,nt){(function(rt,it){if(!rt.setImmediate){var ot,st,at,lt,ut,dt=1,ht={},ct=!1,pt=rt.document,ft=Object.getPrototypeOf&&Object.getPrototypeOf(rt);ft=ft&&ft.setTimeout?ft:rt,{}.toString.call(rt.process)==="[object process]"?ot=function(Ut){nt.nextTick(function(){yt(Ut)})}:function(){if(rt.postMessage&&!rt.importScripts){var Ut=!0,Ft=rt.onmessage;return rt.onmessage=function(){Ut=!1},rt.postMessage("","*"),rt.onmessage=Ft,Ut}}()?(lt="setImmediate$"+Math.random()+"$",ut=function(Ut){Ut.source===rt&&typeof Ut.data=="string"&&Ut.data.indexOf(lt)===0&&yt(+Ut.data.slice(lt.length))},rt.addEventListener?rt.addEventListener("message",ut,!1):rt.attachEvent("onmessage",ut),ot=function(Ut){rt.postMessage(lt+Ut,"*")}):rt.MessageChannel?((at=new MessageChannel).port1.onmessage=function(Ut){yt(Ut.data)},ot=function(Ut){at.port2.postMessage(Ut)}):pt&&"onreadystatechange"in pt.createElement("script")?(st=pt.documentElement,ot=function(Ut){var Ft=pt.createElement("script");Ft.onreadystatechange=function(){yt(Ut),Ft.onreadystatechange=null,st.removeChild(Ft),Ft=null},st.appendChild(Ft)}):ot=function(Ut){setTimeout(yt,0,Ut)},ft.setImmediate=function(Ut){typeof Ut!="function"&&(Ut=new Function(""+Ut));for(var Ft=new Array(arguments.length-1),mt=0;mt"u"?tt===void 0?this:tt:self)}).call(this,et(6),et(2))},function(s,o,et){s.exports=et(62)},function(s,o,et){(function(tt,nt){var rt=et(16);s.exports=Ft;var it,ot=et(42);Ft.ReadableState=Ut,et(21).EventEmitter;var st=function(Dt,Et){return Dt.listeners(Et).length},at=et(63),lt=et(44).Buffer,ut=tt.Uint8Array||function(){},dt=Object.create(et(17));dt.inherits=et(7);var ht=et(144),ct=void 0;ct=ht&&ht.debuglog?ht.debuglog("stream"):function(){};var pt,ft=et(145),gt=et(64);dt.inherits(Ft,at);var yt=["error","close","destroy","pause","resume"];function Ut(Dt,Et){Dt=Dt||{};var Pt=Et instanceof(it=it||et(36));this.objectMode=!!Dt.objectMode,Pt&&(this.objectMode=this.objectMode||!!Dt.readableObjectMode);var zt=Dt.highWaterMark,en=Dt.readableHighWaterMark,Kt=this.objectMode?16:16384;this.highWaterMark=zt||zt===0?zt:Pt&&(en||en===0)?en:Kt,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new ft,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=Dt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Dt.encoding&&(pt||(pt=et(22).StringDecoder),this.decoder=new pt(Dt.encoding),this.encoding=Dt.encoding)}function Ft(Dt){if(it=it||et(36),!(this instanceof Ft))return new Ft(Dt);this._readableState=new Ut(Dt,this),this.readable=!0,Dt&&(typeof Dt.read=="function"&&(this._read=Dt.read),typeof Dt.destroy=="function"&&(this._destroy=Dt.destroy)),at.call(this)}function mt(Dt,Et,Pt,zt,en){var Kt,nn=Dt._readableState;return Et===null?(nn.reading=!1,function(Zt,jt){if(!jt.ended){if(jt.decoder){var Vt=jt.decoder.end();Vt&&Vt.length&&(jt.buffer.push(Vt),jt.length+=jt.objectMode?1:Vt.length)}jt.ended=!0,Lt(Zt)}}(Dt,nn)):(en||(Kt=function(Zt,jt){var Vt;It=jt,lt.isBuffer(It)||It instanceof ut||typeof jt=="string"||jt===void 0||Zt.objectMode||(Vt=new TypeError("Invalid non-string/buffer chunk"));var It;return Vt}(nn,Et)),Kt?Dt.emit("error",Kt):nn.objectMode||Et&&Et.length>0?(typeof Et=="string"||nn.objectMode||Object.getPrototypeOf(Et)===lt.prototype||(Et=function(Zt){return lt.from(Zt)}(Et)),zt?nn.endEmitted?Dt.emit("error",new Error("stream.unshift() after end event")):vt(Dt,nn,Et,!0):nn.ended?Dt.emit("error",new Error("stream.push() after EOF")):(nn.reading=!1,nn.decoder&&!Pt?(Et=nn.decoder.write(Et),nn.objectMode||Et.length!==0?vt(Dt,nn,Et,!1):St(Dt,nn)):vt(Dt,nn,Et,!1))):zt||(nn.reading=!1)),function(Zt){return!Zt.ended&&(Zt.needReadable||Zt.lengthEt.highWaterMark&&(Et.highWaterMark=function(Pt){return Pt>=8388608?Pt=8388608:(Pt--,Pt|=Pt>>>1,Pt|=Pt>>>2,Pt|=Pt>>>4,Pt|=Pt>>>8,Pt|=Pt>>>16,Pt++),Pt}(Dt)),Dt<=Et.length?Dt:Et.ended?Et.length:(Et.needReadable=!0,0))}function Lt(Dt){var Et=Dt._readableState;Et.needReadable=!1,Et.emittedReadable||(ct("emitReadable",Et.flowing),Et.emittedReadable=!0,Et.sync?rt.nextTick(Rt,Dt):Rt(Dt))}function Rt(Dt){ct("emit readable"),Dt.emit("readable"),Ct(Dt)}function St(Dt,Et){Et.readingMore||(Et.readingMore=!0,rt.nextTick(Tt,Dt,Et))}function Tt(Dt,Et){for(var Pt=Et.length;!Et.reading&&!Et.flowing&&!Et.ended&&Et.length=Et.length?(Pt=Et.decoder?Et.buffer.join(""):Et.buffer.length===1?Et.buffer.head.data:Et.buffer.concat(Et.length),Et.buffer.clear()):Pt=function(zt,en,Kt){var nn;return ztHt.length?Ht.length:Zt;if(qt===Ht.length?$t+=Ht:$t+=Ht.slice(0,Zt),(Zt-=qt)===0){qt===Ht.length?(++It,Vt.next?jt.head=Vt.next:jt.head=jt.tail=null):(jt.head=Vt,Vt.data=Ht.slice(qt));break}++It}return jt.length-=It,$t}(zt,en):function(Zt,jt){var Vt=lt.allocUnsafe(Zt),It=jt.head,$t=1;for(It.data.copy(Vt),Zt-=It.data.length;It=It.next;){var Ht=It.data,qt=Zt>Ht.length?Ht.length:Zt;if(Ht.copy(Vt,Vt.length-Zt,0,qt),(Zt-=qt)===0){qt===Ht.length?(++$t,It.next?jt.head=It.next:jt.head=jt.tail=null):(jt.head=It,It.data=Ht.slice(qt));break}++$t}return jt.length-=$t,Vt}(zt,en),nn}(Dt,Et.buffer,Et.decoder),Pt);var Pt}function Nt(Dt){var Et=Dt._readableState;if(Et.length>0)throw new Error('"endReadable()" called on non-empty stream');Et.endEmitted||(Et.ended=!0,rt.nextTick(Ot,Et,Dt))}function Ot(Dt,Et){Dt.endEmitted||Dt.length!==0||(Dt.endEmitted=!0,Et.readable=!1,Et.emit("end"))}function Wt(Dt,Et){for(var Pt=0,zt=Dt.length;Pt=Et.highWaterMark||Et.ended))return ct("read: emitReadable",Et.length,Et.ended),Et.length===0&&Et.ended?Nt(this):Lt(this),null;if((Dt=At(Dt,Et))===0&&Et.ended)return Et.length===0&&Nt(this),null;var zt,en=Et.needReadable;return ct("need readable",en),(Et.length===0||Et.length-Dt0?kt(Dt,Et):null)===null?(Et.needReadable=!0,Dt=0):Et.length-=Dt,Et.length===0&&(Et.ended||(Et.needReadable=!0),Pt!==Dt&&Et.ended&&Nt(this)),zt!==null&&this.emit("data",zt),zt},Ft.prototype._read=function(Dt){this.emit("error",new Error("_read() is not implemented"))},Ft.prototype.pipe=function(Dt,Et){var Pt=this,zt=this._readableState;switch(zt.pipesCount){case 0:zt.pipes=Dt;break;case 1:zt.pipes=[zt.pipes,Dt];break;default:zt.pipes.push(Dt)}zt.pipesCount+=1,ct("pipe count=%d opts=%j",zt.pipesCount,Et);var en=(!Et||Et.end!==!1)&&Dt!==nt.stdout&&Dt!==nt.stderr?nn:on;function Kt(Xt,dn){ct("onunpipe"),Xt===Pt&&dn&&dn.hasUnpiped===!1&&(dn.hasUnpiped=!0,ct("cleanup"),Dt.removeListener("close",Ht),Dt.removeListener("finish",qt),Dt.removeListener("drain",Zt),Dt.removeListener("error",$t),Dt.removeListener("unpipe",Kt),Pt.removeListener("end",nn),Pt.removeListener("end",on),Pt.removeListener("data",It),jt=!0,!zt.awaitDrain||Dt._writableState&&!Dt._writableState.needDrain||Zt())}function nn(){ct("onend"),Dt.end()}zt.endEmitted?rt.nextTick(en):Pt.once("end",en),Dt.on("unpipe",Kt);var Zt=function(Xt){return function(){var dn=Xt._readableState;ct("pipeOnDrain",dn.awaitDrain),dn.awaitDrain&&dn.awaitDrain--,dn.awaitDrain===0&&st(Xt,"data")&&(dn.flowing=!0,Ct(Xt))}}(Pt);Dt.on("drain",Zt);var jt=!1,Vt=!1;function It(Xt){ct("ondata"),Vt=!1,Dt.write(Xt)!==!1||Vt||((zt.pipesCount===1&&zt.pipes===Dt||zt.pipesCount>1&&Wt(zt.pipes,Dt)!==-1)&&!jt&&(ct("false write response, pause",Pt._readableState.awaitDrain),Pt._readableState.awaitDrain++,Vt=!0),Pt.pause())}function $t(Xt){ct("onerror",Xt),on(),Dt.removeListener("error",$t),st(Dt,"error")===0&&Dt.emit("error",Xt)}function Ht(){Dt.removeListener("finish",qt),on()}function qt(){ct("onfinish"),Dt.removeListener("close",Ht),on()}function on(){ct("unpipe"),Pt.unpipe(Dt)}return Pt.on("data",It),function(Xt,dn,_n){if(typeof Xt.prependListener=="function")return Xt.prependListener(dn,_n);Xt._events&&Xt._events[dn]?ot(Xt._events[dn])?Xt._events[dn].unshift(_n):Xt._events[dn]=[_n,Xt._events[dn]]:Xt.on(dn,_n)}(Dt,"error",$t),Dt.once("close",Ht),Dt.once("finish",qt),Dt.emit("pipe",Pt),zt.flowing||(ct("pipe resume"),Pt.resume()),Dt},Ft.prototype.unpipe=function(Dt){var Et=this._readableState,Pt={hasUnpiped:!1};if(Et.pipesCount===0)return this;if(Et.pipesCount===1)return Dt&&Dt!==Et.pipes||(Dt||(Dt=Et.pipes),Et.pipes=null,Et.pipesCount=0,Et.flowing=!1,Dt&&Dt.emit("unpipe",this,Pt)),this;if(!Dt){var zt=Et.pipes,en=Et.pipesCount;Et.pipes=null,Et.pipesCount=0,Et.flowing=!1;for(var Kt=0;Kt0?this.tail.next=ot:this.head=ot,this.tail=ot,++this.length},rt.prototype.unshift=function(it){var ot={data:it,next:this.head};this.length===0&&(this.tail=ot),this.head=ot,++this.length},rt.prototype.shift=function(){if(this.length!==0){var it=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,it}},rt.prototype.clear=function(){this.head=this.tail=null,this.length=0},rt.prototype.join=function(it){if(this.length===0)return"";for(var ot=this.head,st=""+ot.data;ot=ot.next;)st+=it+ot.data;return st},rt.prototype.concat=function(it){if(this.length===0)return tt.alloc(0);if(this.length===1)return this.head.data;for(var ot,st,at,lt=tt.allocUnsafe(it>>>0),ut=this.head,dt=0;ut;)ot=ut.data,st=lt,at=dt,ot.copy(st,at),dt+=ut.data.length,ut=ut.next;return lt},rt}(),nt&&nt.inspect&&nt.inspect.custom&&(s.exports.prototype[nt.inspect.custom]=function(){var rt=nt.inspect({length:this.length});return this.constructor.name+" "+rt})},function(s,o){},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){var tt=et(13),nt=et(3).LEVEL,rt=et(20),it=s.exports=function(){var ot=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");function st(at){this.emit("error",at,this.transport)}this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=st.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(var at=0;at"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var Tt,Bt=dt(Rt);if(St){var xt=dt(this).constructor;Tt=Reflect.construct(Bt,arguments,xt)}else Tt=Bt.apply(this,arguments);return lt(this,Tt)}}function lt(Rt,St){return!St||rt(St)!=="object"&&typeof St!="function"?ut(Rt):St}function ut(Rt){if(Rt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Rt}function dt(Rt){return(dt=Object.setPrototypeOf?Object.getPrototypeOf:function(St){return St.__proto__||Object.getPrototypeOf(St)})(Rt)}var ht=et(65),ct=et(56),pt=et(150),ft=et(160),gt=et(3).MESSAGE,yt=et(32),Ut=yt.Stream,Ft=yt.PassThrough,mt=et(20),vt=et(38)("winston:file"),At=et(18),Lt=et(188);s.exports=function(Rt){(function(Ct,kt){if(typeof kt!="function"&&kt!==null)throw new TypeError("Super expression must either be null or a function");Ct.prototype=Object.create(kt&&kt.prototype,{constructor:{value:Ct,writable:!0,configurable:!0}}),kt&&st(Ct,kt)})(xt,Rt);var St,Tt,Bt=at(xt);function xt(){var Ct,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};function Nt(Ot){for(var Wt=arguments.length,Dt=new Array(Wt>1?Wt-1:0),Et=1;Et1&&arguments[1]!==void 0?arguments[1]:function(){};if(this.silent)return Nt(),!0;if(this._drain)this._stream.once("drain",function(){kt._drain=!1,kt.log(Ct,Nt)});else{if(!this._rotate){var Ot="".concat(Ct[gt]).concat(this.eol),Wt=nt.byteLength(Ot);this._pendingSize+=Wt,this._opening&&!this.rotatedWhileOpening&&this._needsNewFile(this._size+this._pendingSize)&&(this.rotatedWhileOpening=!0);var Dt=this._stream.write(Ot,Et.bind(this));return Dt?Nt():(this._drain=!0,this._stream.once("drain",function(){kt._drain=!1,Nt()})),vt("written",Dt,this._drain),this.finishIfEnding(),Dt}this._stream.once("rotate",function(){kt._rotate=!1,kt.log(Ct,Nt)})}function Et(){var Pt=this;this._size+=Wt,this._pendingSize-=Wt,vt("logged %s %s",this._size,Ot),this.emit("logged",Ct),this._opening||this._needsNewFile()&&(this._rotate=!0,this._endStream(function(){return Pt._rotateFile()}))}}},{key:"query",value:function(Ct,kt){typeof Ct=="function"&&(kt=Ct,Ct={}),Ct=function(zt){return(zt=zt||{}).rows=zt.rows||zt.limit||10,zt.start=zt.start||0,zt.until=zt.until||new Date,rt(zt.until)!=="object"&&(zt.until=new Date(zt.until)),zt.from=zt.from||zt.until-864e5,rt(zt.from)!=="object"&&(zt.from=new Date(zt.from)),zt.order=zt.order||"desc",zt}(Ct);var Nt=ct.join(this.dirname,this.filename),Ot="",Wt=[],Dt=0,Et=ht.createReadStream(Nt,{encoding:"utf8"});function Pt(zt,en){try{var Kt=JSON.parse(zt);(function(nn){if(nn&&rt(nn)==="object"){var Zt=new Date(nn.timestamp);if(!(Ct.from&&ZtCt.until||Ct.level&&Ct.level!==nn.level))return!0}})(Kt)&&function(nn){Ct.rows&&Wt.length>=Ct.rows&&Ct.order!=="desc"?Et.readable&&Et.destroy():(Ct.fields&&(nn=Ct.fields.reduce(function(Zt,jt){return Zt[jt]=nn[jt],Zt},{})),Ct.order==="desc"&&Wt.length>=Ct.rows&&Wt.shift(),Wt.push(nn))}(Kt)}catch(nn){en||Et.emit("error",nn)}}Et.on("error",function(zt){if(Et.readable&&Et.destroy(),kt)return zt.code!=="ENOENT"?kt(zt):kt(null,Wt)}),Et.on("data",function(zt){for(var en=(zt=(Ot+zt).split(/\n+/)).length-1,Kt=0;Kt=Ct.start)&&Pt(zt[Kt]),Dt++;Ot=zt[en]}),Et.on("close",function(){Ot&&Pt(Ot,!0),Ct.order==="desc"&&(Wt=Wt.reverse()),kt&&kt(null,Wt)})}},{key:"stream",value:function(){var Ct=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},kt=ct.join(this.dirname,this.filename),Nt=new Ut,Ot={file:kt,start:Ct.start};return Nt.destroy=Lt(Ot,function(Wt,Dt){if(Wt)return Nt.emit("error",Wt);try{Nt.emit("data",Dt),Dt=JSON.parse(Dt),Nt.emit("log",Dt)}catch(Et){Nt.emit("error",Et)}}),Nt}},{key:"open",value:function(){var Ct=this;this.filename&&(this._opening||(this._opening=!0,this.stat(function(kt,Nt){if(kt)return Ct.emit("error",kt);vt("stat done: %s { size: %s }",Ct.filename,Nt),Ct._size=Nt,Ct._dest=Ct._createStream(Ct._stream),Ct._opening=!1,Ct.once("open",function(){Ct._stream.eventNames().includes("rotate")?Ct._stream.emit("rotate"):Ct._rotate=!1})})))}},{key:"stat",value:function(Ct){var kt=this,Nt=this._getFile(),Ot=ct.join(this.dirname,Nt);ht.stat(Ot,function(Wt,Dt){return Wt&&Wt.code==="ENOENT"?(vt("ENOENT ok",Ot),kt.filename=Nt,Ct(null,0)):Wt?(vt("err ".concat(Wt.code," ").concat(Ot)),Ct(Wt)):!Dt||kt._needsNewFile(Dt.size)?kt._incFile(function(){return kt.stat(Ct)}):(kt.filename=Nt,void Ct(null,Dt.size))})}},{key:"close",value:function(Ct){var kt=this;this._stream&&this._stream.end(function(){Ct&&Ct(),kt.emit("flush"),kt.emit("closed")})}},{key:"_needsNewFile",value:function(Ct){return Ct=Ct||this._size,this.maxsize&&Ct>=this.maxsize}},{key:"_onError",value:function(Ct){this.emit("error",Ct)}},{key:"_setupStream",value:function(Ct){return Ct.on("error",this._onError),Ct}},{key:"_cleanupStream",value:function(Ct){return Ct.removeListener("error",this._onError),Ct}},{key:"_rotateFile",value:function(){var Ct=this;this._incFile(function(){return Ct.open()})}},{key:"_endStream",value:function(){var Ct=this,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){};this._dest?(this._stream.unpipe(this._dest),this._dest.end(function(){Ct._cleanupStream(Ct._dest),kt()})):kt()}},{key:"_createStream",value:function(Ct){var kt=this,Nt=ct.join(this.dirname,this.filename);vt("create stream start",Nt,this.options);var Ot=ht.createWriteStream(Nt,this.options).on("error",function(Dt){return vt(Dt)}).on("close",function(){return vt("close",Ot.path,Ot.bytesWritten)}).on("open",function(){vt("file open ok",Nt),kt.emit("open",Nt),Ct.pipe(Ot),kt.rotatedWhileOpening&&(kt._stream=new Ft,kt._stream.setMaxListeners(30),kt._rotateFile(),kt.rotatedWhileOpening=!1,kt._cleanupStream(Ot),Ct.end())});if(vt("create stream ok",Nt),this.zippedArchive){var Wt=ft.createGzip();return Wt.pipe(Ot),Wt}return Ot}},{key:"_incFile",value:function(Ct){vt("_incFile",this.filename);var kt=ct.extname(this._basename),Nt=ct.basename(this._basename,kt);this.tailable?this._checkMaxFilesTailable(kt,Nt,Ct):(this._created+=1,this._checkMaxFilesIncrementing(kt,Nt,Ct))}},{key:"_getFile",value:function(){var Ct=ct.extname(this._basename),kt=ct.basename(this._basename,Ct),Nt=this.rotationFormat?this.rotationFormat():this._created,Ot=!this.tailable&&this._created?"".concat(kt).concat(Nt).concat(Ct):"".concat(kt).concat(Ct);return this.zippedArchive&&!this.tailable?"".concat(Ot,".gz"):Ot}},{key:"_checkMaxFilesIncrementing",value:function(Ct,kt,Nt){if(!this.maxFiles||this._created1;Et--)Wt.push(function(Pt,zt){var en=this,Kt="".concat(kt).concat(Pt-1).concat(Ct).concat(Dt),nn=ct.join(this.dirname,Kt);ht.exists(nn,function(Zt){if(!Zt)return zt(null);Kt="".concat(kt).concat(Pt).concat(Ct).concat(Dt),ht.rename(nn,ct.join(en.dirname,Kt),zt)})}.bind(this,Et));pt(Wt,function(){ht.rename(ct.join(Ot.dirname,"".concat(kt).concat(Ct)),ct.join(Ot.dirname,"".concat(kt,"1").concat(Ct).concat(Dt)),Nt)})}}},{key:"_createLogDirIfNotExist",value:function(Ct){ht.existsSync(Ct)||ht.mkdirSync(Ct,{recursive:!0})}}])&&ot(St.prototype,Tt),xt}(mt)}).call(this,et(15).setImmediate,et(5).Buffer)},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(it,ot){return(0,tt.default)(nt.default,it,ot)};var tt=rt(et(151)),nt=rt(et(155));function rt(it){return it&&it.__esModule?it:{default:it}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(45)),nt=it(et(25)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)((ot,st,at)=>{var lt=(0,tt.default)(st)?[]:{};ot(st,(ut,dt,ht)=>{(0,nt.default)(ut)((ct,...pt)=>{pt.length<2&&([pt]=pt),lt[dt]=pt,ht(ct)})},ut=>at(ut,lt))},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(at){return(0,rt.isAsync)(at)?function(...lt){const ut=lt.pop();return ot(at.apply(this,lt),ut)}:(0,tt.default)(function(lt,ut){var dt;try{dt=at.apply(this,lt)}catch(ht){return ut(ht)}if(dt&&typeof dt.then=="function")return ot(dt,ut);ut(null,dt)})};var tt=it(et(153)),nt=it(et(154)),rt=et(25);function it(at){return at&&at.__esModule?at:{default:at}}function ot(at,lt){return at.then(ut=>{st(lt,null,ut)},ut=>{st(lt,ut&&ut.message?ut:new Error(ut))})}function st(at,lt,ut){try{at(lt,ut)}catch(dt){(0,nt.default)(ht=>{throw ht},dt)}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){var rt=nt.pop();return tt.call(this,nt,rt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){Object.defineProperty(o,"__esModule",{value:!0}),o.fallback=st,o.wrap=at;var rt,it=o.hasSetImmediate=typeof tt=="function"&&tt,ot=o.hasNextTick=typeof nt=="object"&&typeof nt.nextTick=="function";function st(lt){setTimeout(lt,0)}function at(lt){return(ut,...dt)=>lt(()=>ut(...dt))}rt=it?tt:ot?nt.nextTick:st,o.default=at(rt)}).call(this,et(15).setImmediate,et(2))},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=rt(et(66)),nt=rt(et(30));function rt(it){return it&&it.__esModule?it:{default:it}}o.default=(0,nt.default)(function(it,ot,st){return(0,tt.default)(it,1,ot,st)},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=at(et(67)),nt=at(et(157)),rt=at(et(68)),it=et(25),ot=at(et(159)),st=at(et(46));function at(lt){return lt&<.__esModule?lt:{default:lt}}o.default=lt=>(ut,dt,ht)=>{if(ht=(0,tt.default)(ht),lt<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!ut)return ht(null);if((0,it.isAsyncGenerator)(ut))return(0,ot.default)(ut,lt,dt,ht);if((0,it.isAsyncIterable)(ut))return(0,ot.default)(ut[Symbol.asyncIterator](),lt,dt,ht);var ct=(0,nt.default)(ut),pt=!1,ft=!1,gt=0,yt=!1;function Ut(mt,vt){if(!ft)if(gt-=1,mt)pt=!0,ht(mt);else if(mt===!1)pt=!0,ft=!0;else{if(vt===st.default||pt&><=0)return pt=!0,ht(null);yt||Ft()}}function Ft(){for(yt=!0;gt=ot||dt||lt||(dt=!0,it.next().then(({value:yt,done:Ut})=>{if(!ut&&!lt){if(dt=!1,Ut)return lt=!0,void(ht<=0&&at(null));ht++,st(yt,ct,ft),ct++,pt()}}).catch(gt))}function ft(yt,Ut){if(ht-=1,!ut)return yt?gt(yt):yt===!1?(lt=!0,void(ut=!0)):Ut===rt.default||lt&&ht<=0?(lt=!0,at(null)):void pt()}function gt(yt){ut||(dt=!1,lt=!0,at(yt))}pt()};var tt,nt=et(46),rt=(tt=nt)&&tt.__esModule?tt:{default:tt};s.exports=o.default},function(s,o,et){(function(tt){var nt=et(5).Buffer,rt=et(161).Transform,it=et(169),ot=et(13),st=et(74).ok,at=et(5).kMaxLength,lt="Cannot create final Buffer. It would be larger than 0x"+at.toString(16)+" bytes";it.Z_MIN_WINDOWBITS=8,it.Z_MAX_WINDOWBITS=15,it.Z_DEFAULT_WINDOWBITS=15,it.Z_MIN_CHUNK=64,it.Z_MAX_CHUNK=1/0,it.Z_DEFAULT_CHUNK=16384,it.Z_MIN_MEMLEVEL=1,it.Z_MAX_MEMLEVEL=9,it.Z_DEFAULT_MEMLEVEL=8,it.Z_MIN_LEVEL=-1,it.Z_MAX_LEVEL=9,it.Z_DEFAULT_LEVEL=it.Z_DEFAULT_COMPRESSION;for(var ut=Object.keys(it),dt=0;dt=at?en=new RangeError(lt):zt=nt.concat(Wt,Dt),Wt=[],kt.close(),Ot(en,zt)}kt.on("error",function(zt){kt.removeListener("end",Pt),kt.removeListener("readable",Et),Ot(zt)}),kt.on("end",Pt),kt.end(Nt),Et()}function Ut(kt,Nt){if(typeof Nt=="string"&&(Nt=nt.from(Nt)),!nt.isBuffer(Nt))throw new TypeError("Not a string or buffer");var Ot=kt._finishFlushFlag;return kt._processChunk(Nt,Ot)}function Ft(kt){if(!(this instanceof Ft))return new Ft(kt);Bt.call(this,kt,it.DEFLATE)}function mt(kt){if(!(this instanceof mt))return new mt(kt);Bt.call(this,kt,it.INFLATE)}function vt(kt){if(!(this instanceof vt))return new vt(kt);Bt.call(this,kt,it.GZIP)}function At(kt){if(!(this instanceof At))return new At(kt);Bt.call(this,kt,it.GUNZIP)}function Lt(kt){if(!(this instanceof Lt))return new Lt(kt);Bt.call(this,kt,it.DEFLATERAW)}function Rt(kt){if(!(this instanceof Rt))return new Rt(kt);Bt.call(this,kt,it.INFLATERAW)}function St(kt){if(!(this instanceof St))return new St(kt);Bt.call(this,kt,it.UNZIP)}function Tt(kt){return kt===it.Z_NO_FLUSH||kt===it.Z_PARTIAL_FLUSH||kt===it.Z_SYNC_FLUSH||kt===it.Z_FULL_FLUSH||kt===it.Z_FINISH||kt===it.Z_BLOCK}function Bt(kt,Nt){var Ot=this;if(this._opts=kt=kt||{},this._chunkSize=kt.chunkSize||o.Z_DEFAULT_CHUNK,rt.call(this,kt),kt.flush&&!Tt(kt.flush))throw new Error("Invalid flush flag: "+kt.flush);if(kt.finishFlush&&!Tt(kt.finishFlush))throw new Error("Invalid flush flag: "+kt.finishFlush);if(this._flushFlag=kt.flush||it.Z_NO_FLUSH,this._finishFlushFlag=kt.finishFlush!==void 0?kt.finishFlush:it.Z_FINISH,kt.chunkSize&&(kt.chunkSizeo.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+kt.chunkSize);if(kt.windowBits&&(kt.windowBitso.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+kt.windowBits);if(kt.level&&(kt.levelo.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+kt.level);if(kt.memLevel&&(kt.memLevelo.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+kt.memLevel);if(kt.strategy&&kt.strategy!=o.Z_FILTERED&&kt.strategy!=o.Z_HUFFMAN_ONLY&&kt.strategy!=o.Z_RLE&&kt.strategy!=o.Z_FIXED&&kt.strategy!=o.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+kt.strategy);if(kt.dictionary&&!nt.isBuffer(kt.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._handle=new it.Zlib(Nt);var Wt=this;this._hadError=!1,this._handle.onerror=function(Pt,zt){xt(Wt),Wt._hadError=!0;var en=new Error(Pt);en.errno=zt,en.code=o.codes[zt],Wt.emit("error",en)};var Dt=o.Z_DEFAULT_COMPRESSION;typeof kt.level=="number"&&(Dt=kt.level);var Et=o.Z_DEFAULT_STRATEGY;typeof kt.strategy=="number"&&(Et=kt.strategy),this._handle.init(kt.windowBits||o.Z_DEFAULT_WINDOWBITS,Dt,kt.memLevel||o.Z_DEFAULT_MEMLEVEL,Et,kt.dictionary),this._buffer=nt.allocUnsafe(this._chunkSize),this._offset=0,this._level=Dt,this._strategy=Et,this.once("end",this.close),Object.defineProperty(this,"_closed",{get:function(){return!Ot._handle},configurable:!0,enumerable:!0})}function xt(kt,Nt){Nt&&tt.nextTick(Nt),kt._handle&&(kt._handle.close(),kt._handle=null)}function Ct(kt){kt.emit("close")}Object.defineProperty(o,"codes",{enumerable:!0,value:Object.freeze(ct),writable:!1}),o.Deflate=Ft,o.Inflate=mt,o.Gzip=vt,o.Gunzip=At,o.DeflateRaw=Lt,o.InflateRaw=Rt,o.Unzip=St,o.createDeflate=function(kt){return new Ft(kt)},o.createInflate=function(kt){return new mt(kt)},o.createDeflateRaw=function(kt){return new Lt(kt)},o.createInflateRaw=function(kt){return new Rt(kt)},o.createGzip=function(kt){return new vt(kt)},o.createGunzip=function(kt){return new At(kt)},o.createUnzip=function(kt){return new St(kt)},o.deflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Ft(Nt),kt,Ot)},o.deflateSync=function(kt,Nt){return Ut(new Ft(Nt),kt)},o.gzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new vt(Nt),kt,Ot)},o.gzipSync=function(kt,Nt){return Ut(new vt(Nt),kt)},o.deflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Lt(Nt),kt,Ot)},o.deflateRawSync=function(kt,Nt){return Ut(new Lt(Nt),kt)},o.unzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new St(Nt),kt,Ot)},o.unzipSync=function(kt,Nt){return Ut(new St(Nt),kt)},o.inflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new mt(Nt),kt,Ot)},o.inflateSync=function(kt,Nt){return Ut(new mt(Nt),kt)},o.gunzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new At(Nt),kt,Ot)},o.gunzipSync=function(kt,Nt){return Ut(new At(Nt),kt)},o.inflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Rt(Nt),kt,Ot)},o.inflateRawSync=function(kt,Nt){return Ut(new Rt(Nt),kt)},ot.inherits(Bt,rt),Bt.prototype.params=function(kt,Nt,Ot){if(kto.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+kt);if(Nt!=o.Z_FILTERED&&Nt!=o.Z_HUFFMAN_ONLY&&Nt!=o.Z_RLE&&Nt!=o.Z_FIXED&&Nt!=o.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+Nt);if(this._level!==kt||this._strategy!==Nt){var Wt=this;this.flush(it.Z_SYNC_FLUSH,function(){st(Wt._handle,"zlib binding closed"),Wt._handle.params(kt,Nt),Wt._hadError||(Wt._level=kt,Wt._strategy=Nt,Ot&&Ot())})}else tt.nextTick(Ot)},Bt.prototype.reset=function(){return st(this._handle,"zlib binding closed"),this._handle.reset()},Bt.prototype._flush=function(kt){this._transform(nt.alloc(0),"",kt)},Bt.prototype.flush=function(kt,Nt){var Ot=this,Wt=this._writableState;(typeof kt=="function"||kt===void 0&&!Nt)&&(Nt=kt,kt=it.Z_FULL_FLUSH),Wt.ended?Nt&&tt.nextTick(Nt):Wt.ending?Nt&&this.once("end",Nt):Wt.needDrain?Nt&&this.once("drain",function(){return Ot.flush(kt,Nt)}):(this._flushFlag=kt,this.write(nt.alloc(0),"",Nt))},Bt.prototype.close=function(kt){xt(this,kt),tt.nextTick(Ct,this)},Bt.prototype._transform=function(kt,Nt,Ot){var Wt,Dt=this._writableState,Et=(Dt.ending||Dt.ended)&&(!kt||Dt.length===kt.length);return kt===null||nt.isBuffer(kt)?this._handle?(Et?Wt=this._finishFlushFlag:(Wt=this._flushFlag,kt.length>=Dt.length&&(this._flushFlag=this._opts.flush||it.Z_NO_FLUSH)),void this._processChunk(kt,Wt,Ot)):Ot(new Error("zlib binding closed")):Ot(new Error("invalid input"))},Bt.prototype._processChunk=function(kt,Nt,Ot){var Wt=kt&&kt.length,Dt=this._chunkSize-this._offset,Et=0,Pt=this,zt=typeof Ot=="function";if(!zt){var en,Kt=[],nn=0;this.on("error",function($t){en=$t}),st(this._handle,"zlib binding closed");do var Zt=this._handle.writeSync(Nt,kt,Et,Wt,this._buffer,this._offset,Dt);while(!this._hadError&&It(Zt[0],Zt[1]));if(this._hadError)throw en;if(nn>=at)throw xt(this),new RangeError(lt);var jt=nt.concat(Kt,nn);return xt(this),jt}st(this._handle,"zlib binding closed");var Vt=this._handle.write(Nt,kt,Et,Wt,this._buffer,this._offset,Dt);function It($t,Ht){if(this&&(this.buffer=null,this.callback=null),!Pt._hadError){var qt=Dt-Ht;if(st(qt>=0,"have should not go down"),qt>0){var on=Pt._buffer.slice(Pt._offset,Pt._offset+qt);Pt._offset+=qt,zt?Pt.push(on):(Kt.push(on),nn+=on.length)}if((Ht===0||Pt._offset>=Pt._chunkSize)&&(Dt=Pt._chunkSize,Pt._offset=0,Pt._buffer=nt.allocUnsafe(Pt._chunkSize)),Ht===0){if(Et+=Wt-$t,Wt=$t,!zt)return!0;var Xt=Pt._handle.write(Nt,kt,Et,Wt,Pt._buffer,Pt._offset,Pt._chunkSize);return Xt.callback=It,void(Xt.buffer=kt)}if(!zt)return!1;Ot()}}Vt.buffer=kt,Vt.callback=It},ot.inherits(Ft,Bt),ot.inherits(mt,Bt),ot.inherits(vt,Bt),ot.inherits(At,Bt),ot.inherits(Lt,Bt),ot.inherits(Rt,Bt),ot.inherits(St,Bt)}).call(this,et(2))},function(s,o,et){s.exports=nt;var tt=et(21).EventEmitter;function nt(){tt.call(this)}et(7)(nt,tt),nt.Readable=et(31),nt.Writable=et(73),nt.Duplex=et(166),nt.Transform=et(167),nt.PassThrough=et(168),nt.Stream=nt,nt.prototype.pipe=function(rt,it){var ot=this;function st(pt){rt.writable&&rt.write(pt)===!1&&ot.pause&&ot.pause()}function at(){ot.readable&&ot.resume&&ot.resume()}ot.on("data",st),rt.on("drain",at),rt._isStdio||it&&it.end===!1||(ot.on("end",ut),ot.on("close",dt));var lt=!1;function ut(){lt||(lt=!0,rt.end())}function dt(){lt||(lt=!0,typeof rt.destroy=="function"&&rt.destroy())}function ht(pt){if(ct(),tt.listenerCount(this,"error")===0)throw pt}function ct(){ot.removeListener("data",st),rt.removeListener("drain",at),ot.removeListener("end",ut),ot.removeListener("close",dt),ot.removeListener("error",ht),rt.removeListener("error",ht),ot.removeListener("end",ct),ot.removeListener("close",ct),rt.removeListener("close",ct)}return ot.on("error",ht),rt.on("error",ht),ot.on("end",ct),ot.on("close",ct),rt.on("close",ct),rt.emit("pipe",ot),rt}},function(s,o){},function(s,o,et){var tt=et(47).Buffer,nt=et(164);s.exports=function(){function rt(){(function(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")})(this,rt),this.head=null,this.tail=null,this.length=0}return rt.prototype.push=function(it){var ot={data:it,next:null};this.length>0?this.tail.next=ot:this.head=ot,this.tail=ot,++this.length},rt.prototype.unshift=function(it){var ot={data:it,next:this.head};this.length===0&&(this.tail=ot),this.head=ot,++this.length},rt.prototype.shift=function(){if(this.length!==0){var it=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,it}},rt.prototype.clear=function(){this.head=this.tail=null,this.length=0},rt.prototype.join=function(it){if(this.length===0)return"";for(var ot=this.head,st=""+ot.data;ot=ot.next;)st+=it+ot.data;return st},rt.prototype.concat=function(it){if(this.length===0)return tt.alloc(0);if(this.length===1)return this.head.data;for(var ot,st,at,lt=tt.allocUnsafe(it>>>0),ut=this.head,dt=0;ut;)ot=ut.data,st=lt,at=dt,ot.copy(st,at),dt+=ut.data.length,ut=ut.next;return lt},rt}(),nt&&nt.inspect&&nt.inspect.custom&&(s.exports.prototype[nt.inspect.custom]=function(){var rt=nt.inspect({length:this.length});return this.constructor.name+" "+rt})},function(s,o){},function(s,o,et){s.exports=rt;var tt=et(72),nt=et(17);function rt(it){if(!(this instanceof rt))return new rt(it);tt.call(this,it)}nt.inherits=et(7),nt.inherits(rt,tt),rt.prototype._transform=function(it,ot,st){st(null,it)}},function(s,o,et){s.exports=et(23)},function(s,o,et){s.exports=et(31).Transform},function(s,o,et){s.exports=et(31).PassThrough},function(s,o,et){(function(tt,nt){var rt=et(74),it=et(171),ot=et(172),st=et(175),at=et(178);for(var lt in at)o[lt]=at[lt];o.NONE=0,o.DEFLATE=1,o.INFLATE=2,o.GZIP=3,o.GUNZIP=4,o.DEFLATERAW=5,o.INFLATERAW=6,o.UNZIP=7;function ut(dt){if(typeof dt!="number"||dto.UNZIP)throw new TypeError("Bad argument");this.dictionary=null,this.err=0,this.flush=0,this.init_done=!1,this.level=0,this.memLevel=0,this.mode=dt,this.strategy=0,this.windowBits=0,this.write_in_progress=!1,this.pending_close=!1,this.gzip_id_bytes_read=0}ut.prototype.close=function(){this.write_in_progress?this.pending_close=!0:(this.pending_close=!1,rt(this.init_done,"close before init"),rt(this.mode<=o.UNZIP),this.mode===o.DEFLATE||this.mode===o.GZIP||this.mode===o.DEFLATERAW?ot.deflateEnd(this.strm):this.mode!==o.INFLATE&&this.mode!==o.GUNZIP&&this.mode!==o.INFLATERAW&&this.mode!==o.UNZIP||st.inflateEnd(this.strm),this.mode=o.NONE,this.dictionary=null)},ut.prototype.write=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!0,dt,ht,ct,pt,ft,gt,yt)},ut.prototype.writeSync=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!1,dt,ht,ct,pt,ft,gt,yt)},ut.prototype._write=function(dt,ht,ct,pt,ft,gt,yt,Ut){if(rt.equal(arguments.length,8),rt(this.init_done,"write before init"),rt(this.mode!==o.NONE,"already finalized"),rt.equal(!1,this.write_in_progress,"write already in progress"),rt.equal(!1,this.pending_close,"close is pending"),this.write_in_progress=!0,rt.equal(!1,ht===void 0,"must provide flush value"),this.write_in_progress=!0,ht!==o.Z_NO_FLUSH&&ht!==o.Z_PARTIAL_FLUSH&&ht!==o.Z_SYNC_FLUSH&&ht!==o.Z_FULL_FLUSH&&ht!==o.Z_FINISH&&ht!==o.Z_BLOCK)throw new Error("Invalid flush value");if(ct==null&&(ct=tt.alloc(0),ft=0,pt=0),this.strm.avail_in=ft,this.strm.input=ct,this.strm.next_in=pt,this.strm.avail_out=Ut,this.strm.output=gt,this.strm.next_out=yt,this.flush=ht,!dt)return this._process(),this._checkError()?this._afterSync():void 0;var Ft=this;return nt.nextTick(function(){Ft._process(),Ft._after()}),this},ut.prototype._afterSync=function(){var dt=this.strm.avail_out,ht=this.strm.avail_in;return this.write_in_progress=!1,[ht,dt]},ut.prototype._process=function(){var dt=null;switch(this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflate(this.strm,this.flush);break;case o.UNZIP:switch(this.strm.avail_in>0&&(dt=this.strm.next_in),this.gzip_id_bytes_read){case 0:if(dt===null)break;if(this.strm.input[dt]!==31){this.mode=o.INFLATE;break}if(this.gzip_id_bytes_read=1,dt++,this.strm.avail_in===1)break;case 1:if(dt===null)break;this.strm.input[dt]===139?(this.gzip_id_bytes_read=2,this.mode=o.GUNZIP):this.mode=o.INFLATE;break;default:throw new Error("invalid number of gzip magic number bytes read")}case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:for(this.err=st.inflate(this.strm,this.flush),this.err===o.Z_NEED_DICT&&this.dictionary&&(this.err=st.inflateSetDictionary(this.strm,this.dictionary),this.err===o.Z_OK?this.err=st.inflate(this.strm,this.flush):this.err===o.Z_DATA_ERROR&&(this.err=o.Z_NEED_DICT));this.strm.avail_in>0&&this.mode===o.GUNZIP&&this.err===o.Z_STREAM_END&&this.strm.next_in[0]!==0;)this.reset(),this.err=st.inflate(this.strm,this.flush);break;default:throw new Error("Unknown mode "+this.mode)}},ut.prototype._checkError=function(){switch(this.err){case o.Z_OK:case o.Z_BUF_ERROR:if(this.strm.avail_out!==0&&this.flush===o.Z_FINISH)return this._error("unexpected end of file"),!1;break;case o.Z_STREAM_END:break;case o.Z_NEED_DICT:return this.dictionary==null?this._error("Missing dictionary"):this._error("Bad dictionary"),!1;default:return this._error("Zlib error"),!1}return!0},ut.prototype._after=function(){if(this._checkError()){var dt=this.strm.avail_out,ht=this.strm.avail_in;this.write_in_progress=!1,this.callback(ht,dt),this.pending_close&&this.close()}},ut.prototype._error=function(dt){this.strm.msg&&(dt=this.strm.msg),this.onerror(dt,this.err),this.write_in_progress=!1,this.pending_close&&this.close()},ut.prototype.init=function(dt,ht,ct,pt,ft){rt(arguments.length===4||arguments.length===5,"init(windowBits, level, memLevel, strategy, [dictionary])"),rt(dt>=8&&dt<=15,"invalid windowBits"),rt(ht>=-1&&ht<=9,"invalid compression level"),rt(ct>=1&&ct<=9,"invalid memlevel"),rt(pt===o.Z_FILTERED||pt===o.Z_HUFFMAN_ONLY||pt===o.Z_RLE||pt===o.Z_FIXED||pt===o.Z_DEFAULT_STRATEGY,"invalid strategy"),this._init(ht,dt,ct,pt,ft),this._setDictionary()},ut.prototype.params=function(){throw new Error("deflateParams Not supported")},ut.prototype.reset=function(){this._reset(),this._setDictionary()},ut.prototype._init=function(dt,ht,ct,pt,ft){switch(this.level=dt,this.windowBits=ht,this.memLevel=ct,this.strategy=pt,this.flush=o.Z_NO_FLUSH,this.err=o.Z_OK,this.mode!==o.GZIP&&this.mode!==o.GUNZIP||(this.windowBits+=16),this.mode===o.UNZIP&&(this.windowBits+=32),this.mode!==o.DEFLATERAW&&this.mode!==o.INFLATERAW||(this.windowBits=-1*this.windowBits),this.strm=new it,this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflateInit2(this.strm,this.level,o.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:case o.UNZIP:this.err=st.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}this.err!==o.Z_OK&&this._error("Init error"),this.dictionary=ft,this.write_in_progress=!1,this.init_done=!0},ut.prototype._setDictionary=function(){if(this.dictionary!=null){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:this.err=ot.deflateSetDictionary(this.strm,this.dictionary)}this.err!==o.Z_OK&&this._error("Failed to set dictionary")}},ut.prototype._reset=function(){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:case o.GZIP:this.err=ot.deflateReset(this.strm);break;case o.INFLATE:case o.INFLATERAW:case o.GUNZIP:this.err=st.inflateReset(this.strm)}this.err!==o.Z_OK&&this._error("Failed to reset stream")},o.Zlib=ut}).call(this,et(5).Buffer,et(2))},function(s,o,et){var tt=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable;function it(ot){if(ot==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(ot)}s.exports=function(){try{if(!Object.assign)return!1;var ot=new String("abc");if(ot[5]="de",Object.getOwnPropertyNames(ot)[0]==="5")return!1;for(var st={},at=0;at<10;at++)st["_"+String.fromCharCode(at)]=at;if(Object.getOwnPropertyNames(st).map(function(ut){return st[ut]}).join("")!=="0123456789")return!1;var lt={};return"abcdefghijklmnopqrst".split("").forEach(function(ut){lt[ut]=ut}),Object.keys(Object.assign({},lt)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}()?Object.assign:function(ot,st){for(var at,lt,ut=it(ot),dt=1;dt4?9:0)}function ut(Rt){for(var St=Rt.length;--St>=0;)Rt[St]=0}function dt(Rt){var St=Rt.state,Tt=St.pending;Tt>Rt.avail_out&&(Tt=Rt.avail_out),Tt!==0&&(nt.arraySet(Rt.output,St.pending_buf,St.pending_out,Tt,Rt.next_out),Rt.next_out+=Tt,St.pending_out+=Tt,Rt.total_out+=Tt,Rt.avail_out-=Tt,St.pending-=Tt,St.pending===0&&(St.pending_out=0))}function ht(Rt,St){rt._tr_flush_block(Rt,Rt.block_start>=0?Rt.block_start:-1,Rt.strstart-Rt.block_start,St),Rt.block_start=Rt.strstart,dt(Rt.strm)}function ct(Rt,St){Rt.pending_buf[Rt.pending++]=St}function pt(Rt,St){Rt.pending_buf[Rt.pending++]=St>>>8&255,Rt.pending_buf[Rt.pending++]=255&St}function ft(Rt,St){var Tt,Bt,xt=Rt.max_chain_length,Ct=Rt.strstart,kt=Rt.prev_length,Nt=Rt.nice_match,Ot=Rt.strstart>Rt.w_size-262?Rt.strstart-(Rt.w_size-262):0,Wt=Rt.window,Dt=Rt.w_mask,Et=Rt.prev,Pt=Rt.strstart+258,zt=Wt[Ct+kt-1],en=Wt[Ct+kt];Rt.prev_length>=Rt.good_match&&(xt>>=2),Nt>Rt.lookahead&&(Nt=Rt.lookahead);do if(Wt[(Tt=St)+kt]===en&&Wt[Tt+kt-1]===zt&&Wt[Tt]===Wt[Ct]&&Wt[++Tt]===Wt[Ct+1]){Ct+=2,Tt++;do;while(Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Ctkt){if(Rt.match_start=St,kt=Bt,Bt>=Nt)break;zt=Wt[Ct+kt-1],en=Wt[Ct+kt]}}while((St=Et[St&Dt])>Ot&&--xt!=0);return kt<=Rt.lookahead?kt:Rt.lookahead}function gt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt,Et=Rt.w_size;do{if(xt=Rt.window_size-Rt.lookahead-Rt.strstart,Rt.strstart>=Et+(Et-262)){nt.arraySet(Rt.window,Rt.window,Et,Et,0),Rt.match_start-=Et,Rt.strstart-=Et,Rt.block_start-=Et,St=Tt=Rt.hash_size;do Bt=Rt.head[--St],Rt.head[St]=Bt>=Et?Bt-Et:0;while(--Tt);St=Tt=Et;do Bt=Rt.prev[--St],Rt.prev[St]=Bt>=Et?Bt-Et:0;while(--Tt);xt+=Et}if(Rt.strm.avail_in===0)break;if(kt=Rt.strm,Nt=Rt.window,Ot=Rt.strstart+Rt.lookahead,Wt=xt,Dt=void 0,(Dt=kt.avail_in)>Wt&&(Dt=Wt),Tt=Dt===0?0:(kt.avail_in-=Dt,nt.arraySet(Nt,kt.input,kt.next_in,Dt,Ot),kt.state.wrap===1?kt.adler=it(kt.adler,Nt,Dt,Ot):kt.state.wrap===2&&(kt.adler=ot(kt.adler,Nt,Dt,Ot)),kt.next_in+=Dt,kt.total_in+=Dt,Dt),Rt.lookahead+=Tt,Rt.lookahead+Rt.insert>=3)for(Ct=Rt.strstart-Rt.insert,Rt.ins_h=Rt.window[Ct],Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<=3)if(Bt=rt._tr_tally(Rt,Rt.strstart-Rt.match_start,Rt.match_length-3),Rt.lookahead-=Rt.match_length,Rt.match_length<=Rt.max_lazy_match&&Rt.lookahead>=3){Rt.match_length--;do Rt.strstart++,Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<4096)&&(Rt.match_length=2)),Rt.prev_length>=3&&Rt.match_length<=Rt.prev_length){xt=Rt.strstart+Rt.lookahead-3,Bt=rt._tr_tally(Rt,Rt.strstart-1-Rt.prev_match,Rt.prev_length-3),Rt.lookahead-=Rt.prev_length-1,Rt.prev_length-=2;do++Rt.strstart<=xt&&(Rt.ins_h=(Rt.ins_h<15&&(kt=2,Bt-=16),xt<1||xt>9||Tt!==8||Bt<8||Bt>15||St<0||St>9||Ct<0||Ct>4)return at(Rt,-2);Bt===8&&(Bt=9);var Nt=new mt;return Rt.state=Nt,Nt.strm=Rt,Nt.wrap=kt,Nt.gzhead=null,Nt.w_bits=Bt,Nt.w_size=1<Rt.pending_buf_size-5&&(Tt=Rt.pending_buf_size-5);;){if(Rt.lookahead<=1){if(gt(Rt),Rt.lookahead===0&&St===0)return 1;if(Rt.lookahead===0)break}Rt.strstart+=Rt.lookahead,Rt.lookahead=0;var Bt=Rt.block_start+Tt;if((Rt.strstart===0||Rt.strstart>=Bt)&&(Rt.lookahead=Rt.strstart-Bt,Rt.strstart=Bt,ht(Rt,!1),Rt.strm.avail_out===0)||Rt.strstart-Rt.block_start>=Rt.w_size-262&&(ht(Rt,!1),Rt.strm.avail_out===0))return 1}return Rt.insert=0,St===4?(ht(Rt,!0),Rt.strm.avail_out===0?3:4):(Rt.strstart>Rt.block_start&&(ht(Rt,!1),Rt.strm.avail_out),1)}),new Ft(4,4,8,4,yt),new Ft(4,5,16,8,yt),new Ft(4,6,32,32,yt),new Ft(4,4,16,16,Ut),new Ft(8,16,32,32,Ut),new Ft(8,16,128,128,Ut),new Ft(8,32,128,256,Ut),new Ft(32,128,258,1024,Ut),new Ft(32,258,258,4096,Ut)],o.deflateInit=function(Rt,St){return Lt(Rt,St,8,15,8,0)},o.deflateInit2=Lt,o.deflateReset=At,o.deflateResetKeep=vt,o.deflateSetHeader=function(Rt,St){return Rt&&Rt.state?Rt.state.wrap!==2?-2:(Rt.state.gzhead=St,0):-2},o.deflate=function(Rt,St){var Tt,Bt,xt,Ct;if(!Rt||!Rt.state||St>5||St<0)return Rt?at(Rt,-2):-2;if(Bt=Rt.state,!Rt.output||!Rt.input&&Rt.avail_in!==0||Bt.status===666&&St!==4)return at(Rt,Rt.avail_out===0?-5:-2);if(Bt.strm=Rt,Tt=Bt.last_flush,Bt.last_flush=St,Bt.status===42)if(Bt.wrap===2)Rt.adler=0,ct(Bt,31),ct(Bt,139),ct(Bt,8),Bt.gzhead?(ct(Bt,(Bt.gzhead.text?1:0)+(Bt.gzhead.hcrc?2:0)+(Bt.gzhead.extra?4:0)+(Bt.gzhead.name?8:0)+(Bt.gzhead.comment?16:0)),ct(Bt,255&Bt.gzhead.time),ct(Bt,Bt.gzhead.time>>8&255),ct(Bt,Bt.gzhead.time>>16&255),ct(Bt,Bt.gzhead.time>>24&255),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,255&Bt.gzhead.os),Bt.gzhead.extra&&Bt.gzhead.extra.length&&(ct(Bt,255&Bt.gzhead.extra.length),ct(Bt,Bt.gzhead.extra.length>>8&255)),Bt.gzhead.hcrc&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending,0)),Bt.gzindex=0,Bt.status=69):(ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,3),Bt.status=113);else{var kt=8+(Bt.w_bits-8<<4)<<8;kt|=(Bt.strategy>=2||Bt.level<2?0:Bt.level<6?1:Bt.level===6?2:3)<<6,Bt.strstart!==0&&(kt|=32),kt+=31-kt%31,Bt.status=113,pt(Bt,kt),Bt.strstart!==0&&(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),Rt.adler=1}if(Bt.status===69)if(Bt.gzhead.extra){for(xt=Bt.pending;Bt.gzindex<(65535&Bt.gzhead.extra.length)&&(Bt.pending!==Bt.pending_buf_size||(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending!==Bt.pending_buf_size));)ct(Bt,255&Bt.gzhead.extra[Bt.gzindex]),Bt.gzindex++;Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Bt.gzindex===Bt.gzhead.extra.length&&(Bt.gzindex=0,Bt.status=73)}else Bt.status=73;if(Bt.status===73)if(Bt.gzhead.name){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.gzindex=0,Bt.status=91)}else Bt.status=91;if(Bt.status===91)if(Bt.gzhead.comment){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.status=103)}else Bt.status=103;if(Bt.status===103&&(Bt.gzhead.hcrc?(Bt.pending+2>Bt.pending_buf_size&&dt(Rt),Bt.pending+2<=Bt.pending_buf_size&&(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),Rt.adler=0,Bt.status=113)):Bt.status=113),Bt.pending!==0){if(dt(Rt),Rt.avail_out===0)return Bt.last_flush=-1,0}else if(Rt.avail_in===0&<(St)<=lt(Tt)&&St!==4)return at(Rt,-5);if(Bt.status===666&&Rt.avail_in!==0)return at(Rt,-5);if(Rt.avail_in!==0||Bt.lookahead!==0||St!==0&&Bt.status!==666){var Nt=Bt.strategy===2?function(Ot,Wt){for(var Dt;;){if(Ot.lookahead===0&&(gt(Ot),Ot.lookahead===0)){if(Wt===0)return 1;break}if(Ot.match_length=0,Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++,Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Wt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):Bt.strategy===3?function(Ot,Wt){for(var Dt,Et,Pt,zt,en=Ot.window;;){if(Ot.lookahead<=258){if(gt(Ot),Ot.lookahead<=258&&Wt===0)return 1;if(Ot.lookahead===0)break}if(Ot.match_length=0,Ot.lookahead>=3&&Ot.strstart>0&&(Et=en[Pt=Ot.strstart-1])===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]){zt=Ot.strstart+258;do;while(Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&PtOt.lookahead&&(Ot.match_length=Ot.lookahead)}if(Ot.match_length>=3?(Dt=rt._tr_tally(Ot,1,Ot.match_length-3),Ot.lookahead-=Ot.match_length,Ot.strstart+=Ot.match_length,Ot.match_length=0):(Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++),Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Wt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):tt[Bt.level].func(Bt,St);if(Nt!==3&&Nt!==4||(Bt.status=666),Nt===1||Nt===3)return Rt.avail_out===0&&(Bt.last_flush=-1),0;if(Nt===2&&(St===1?rt._tr_align(Bt):St!==5&&(rt._tr_stored_block(Bt,0,0,!1),St===3&&(ut(Bt.head),Bt.lookahead===0&&(Bt.strstart=0,Bt.block_start=0,Bt.insert=0))),dt(Rt),Rt.avail_out===0))return Bt.last_flush=-1,0}return St!==4?0:Bt.wrap<=0?1:(Bt.wrap===2?(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),ct(Bt,Rt.adler>>16&255),ct(Bt,Rt.adler>>24&255),ct(Bt,255&Rt.total_in),ct(Bt,Rt.total_in>>8&255),ct(Bt,Rt.total_in>>16&255),ct(Bt,Rt.total_in>>24&255)):(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),dt(Rt),Bt.wrap>0&&(Bt.wrap=-Bt.wrap),Bt.pending!==0?0:1)},o.deflateEnd=function(Rt){var St;return Rt&&Rt.state?(St=Rt.state.status)!==42&&St!==69&&St!==73&&St!==91&&St!==103&&St!==113&&St!==666?at(Rt,-2):(Rt.state=null,St===113?at(Rt,-3):0):-2},o.deflateSetDictionary=function(Rt,St){var Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt=St.length;if(!Rt||!Rt.state||(Ct=(Tt=Rt.state).wrap)===2||Ct===1&&Tt.status!==42||Tt.lookahead)return-2;for(Ct===1&&(Rt.adler=it(Rt.adler,St,Dt,0)),Tt.wrap=0,Dt>=Tt.w_size&&(Ct===0&&(ut(Tt.head),Tt.strstart=0,Tt.block_start=0,Tt.insert=0),Wt=new nt.Buf8(Tt.w_size),nt.arraySet(Wt,St,Dt-Tt.w_size,Tt.w_size,0),St=Wt,Dt=Tt.w_size),kt=Rt.avail_in,Nt=Rt.next_in,Ot=Rt.input,Rt.avail_in=Dt,Rt.next_in=0,Rt.input=St,gt(Tt);Tt.lookahead>=3;){Bt=Tt.strstart,xt=Tt.lookahead-2;do Tt.ins_h=(Tt.ins_h<=0;)Et[Pt]=0}var rt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],it=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ot=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],st=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],at=new Array(576);nt(at);var lt=new Array(60);nt(lt);var ut=new Array(512);nt(ut);var dt=new Array(256);nt(dt);var ht=new Array(29);nt(ht);var ct,pt,ft,gt=new Array(30);function yt(Et,Pt,zt,en,Kt){this.static_tree=Et,this.extra_bits=Pt,this.extra_base=zt,this.elems=en,this.max_length=Kt,this.has_stree=Et&&Et.length}function Ut(Et,Pt){this.dyn_tree=Et,this.max_code=0,this.stat_desc=Pt}function Ft(Et){return Et<256?ut[Et]:ut[256+(Et>>>7)]}function mt(Et,Pt){Et.pending_buf[Et.pending++]=255&Pt,Et.pending_buf[Et.pending++]=Pt>>>8&255}function vt(Et,Pt,zt){Et.bi_valid>16-zt?(Et.bi_buf|=Pt<>16-Et.bi_valid,Et.bi_valid+=zt-16):(Et.bi_buf|=Pt<>>=1,zt<<=1;while(--Pt>0);return zt>>>1}function Rt(Et,Pt,zt){var en,Kt,nn=new Array(16),Zt=0;for(en=1;en<=15;en++)nn[en]=Zt=Zt+zt[en-1]<<1;for(Kt=0;Kt<=Pt;Kt++){var jt=Et[2*Kt+1];jt!==0&&(Et[2*Kt]=Lt(nn[jt]++,jt))}}function St(Et){var Pt;for(Pt=0;Pt<286;Pt++)Et.dyn_ltree[2*Pt]=0;for(Pt=0;Pt<30;Pt++)Et.dyn_dtree[2*Pt]=0;for(Pt=0;Pt<19;Pt++)Et.bl_tree[2*Pt]=0;Et.dyn_ltree[512]=1,Et.opt_len=Et.static_len=0,Et.last_lit=Et.matches=0}function Tt(Et){Et.bi_valid>8?mt(Et,Et.bi_buf):Et.bi_valid>0&&(Et.pending_buf[Et.pending++]=Et.bi_buf),Et.bi_buf=0,Et.bi_valid=0}function Bt(Et,Pt,zt,en){var Kt=2*Pt,nn=2*zt;return Et[Kt]>1;zt>=1;zt--)xt(Et,nn,zt);Kt=Vt;do zt=Et.heap[1],Et.heap[1]=Et.heap[Et.heap_len--],xt(Et,nn,1),en=Et.heap[1],Et.heap[--Et.heap_max]=zt,Et.heap[--Et.heap_max]=en,nn[2*Kt]=nn[2*zt]+nn[2*en],Et.depth[Kt]=(Et.depth[zt]>=Et.depth[en]?Et.depth[zt]:Et.depth[en])+1,nn[2*zt+1]=nn[2*en+1]=Kt,Et.heap[1]=Kt++,xt(Et,nn,1);while(Et.heap_len>=2);Et.heap[--Et.heap_max]=Et.heap[1],function($t,Ht){var qt,on,Xt,dn,_n,Fn,Un=Ht.dyn_tree,On=Ht.max_code,gn=Ht.stat_desc.static_tree,hn=Ht.stat_desc.has_stree,wn=Ht.stat_desc.extra_bits,Zn=Ht.stat_desc.extra_base,Pn=Ht.stat_desc.max_length,$n=0;for(dn=0;dn<=15;dn++)$t.bl_count[dn]=0;for(Un[2*$t.heap[$t.heap_max]+1]=0,qt=$t.heap_max+1;qt<573;qt++)(dn=Un[2*Un[2*(on=$t.heap[qt])+1]+1]+1)>Pn&&(dn=Pn,$n++),Un[2*on+1]=dn,on>On||($t.bl_count[dn]++,_n=0,on>=Zn&&(_n=wn[on-Zn]),Fn=Un[2*on],$t.opt_len+=Fn*(dn+_n),hn&&($t.static_len+=Fn*(gn[2*on+1]+_n)));if($n!==0){do{for(dn=Pn-1;$t.bl_count[dn]===0;)dn--;$t.bl_count[dn]--,$t.bl_count[dn+1]+=2,$t.bl_count[Pn]--,$n-=2}while($n>0);for(dn=Pn;dn!==0;dn--)for(on=$t.bl_count[dn];on!==0;)(Xt=$t.heap[--qt])>On||(Un[2*Xt+1]!==dn&&($t.opt_len+=(dn-Un[2*Xt+1])*Un[2*Xt],Un[2*Xt+1]=dn),on--)}}(Et,Pt),Rt(nn,It,Et.bl_count)}function Nt(Et,Pt,zt){var en,Kt,nn=-1,Zt=Pt[1],jt=0,Vt=7,It=4;for(Zt===0&&(Vt=138,It=3),Pt[2*(zt+1)+1]=65535,en=0;en<=zt;en++)Kt=Zt,Zt=Pt[2*(en+1)+1],++jt>=7;Kt<30;Kt++)for(gt[Kt]=nn<<7,Pt=0;Pt<1<0?(Et.strm.data_type===2&&(Et.strm.data_type=function(jt){var Vt,It=4093624447;for(Vt=0;Vt<=31;Vt++,It>>>=1)if(1&It&&jt.dyn_ltree[2*Vt]!==0)return 0;if(jt.dyn_ltree[18]!==0||jt.dyn_ltree[20]!==0||jt.dyn_ltree[26]!==0)return 1;for(Vt=32;Vt<256;Vt++)if(jt.dyn_ltree[2*Vt]!==0)return 1;return 0}(Et)),kt(Et,Et.l_desc),kt(Et,Et.d_desc),Zt=function(jt){var Vt;for(Nt(jt,jt.dyn_ltree,jt.l_desc.max_code),Nt(jt,jt.dyn_dtree,jt.d_desc.max_code),kt(jt,jt.bl_desc),Vt=18;Vt>=3&&jt.bl_tree[2*st[Vt]+1]===0;Vt--);return jt.opt_len+=3*(Vt+1)+5+5+4,Vt}(Et),Kt=Et.opt_len+3+7>>>3,(nn=Et.static_len+3+7>>>3)<=Kt&&(Kt=nn)):Kt=nn=zt+5,zt+4<=Kt&&Pt!==-1?Dt(Et,Pt,zt,en):Et.strategy===4||nn===Kt?(vt(Et,2+(en?1:0),3),Ct(Et,at,lt)):(vt(Et,4+(en?1:0),3),function(jt,Vt,It,$t){var Ht;for(vt(jt,Vt-257,5),vt(jt,It-1,5),vt(jt,$t-4,4),Ht=0;Ht<$t;Ht++)vt(jt,jt.bl_tree[2*st[Ht]+1],3);Ot(jt,jt.dyn_ltree,Vt-1),Ot(jt,jt.dyn_dtree,It-1)}(Et,Et.l_desc.max_code+1,Et.d_desc.max_code+1,Zt+1),Ct(Et,Et.dyn_ltree,Et.dyn_dtree)),St(Et),en&&Tt(Et)},o._tr_tally=function(Et,Pt,zt){return Et.pending_buf[Et.d_buf+2*Et.last_lit]=Pt>>>8&255,Et.pending_buf[Et.d_buf+2*Et.last_lit+1]=255&Pt,Et.pending_buf[Et.l_buf+Et.last_lit]=255&zt,Et.last_lit++,Pt===0?Et.dyn_ltree[2*zt]++:(Et.matches++,Pt--,Et.dyn_ltree[2*(dt[zt]+256+1)]++,Et.dyn_dtree[2*Ft(Pt)]++),Et.last_lit===Et.lit_bufsize-1},o._tr_align=function(Et){vt(Et,2,3),At(Et,256,at),function(Pt){Pt.bi_valid===16?(mt(Pt,Pt.bi_buf),Pt.bi_buf=0,Pt.bi_valid=0):Pt.bi_valid>=8&&(Pt.pending_buf[Pt.pending++]=255&Pt.bi_buf,Pt.bi_buf>>=8,Pt.bi_valid-=8)}(Et)}},function(s,o,et){s.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(s,o,et){var tt=et(37),nt=et(75),rt=et(76),it=et(176),ot=et(177);function st(Ut){return(Ut>>>24&255)+(Ut>>>8&65280)+((65280&Ut)<<8)+((255&Ut)<<24)}function at(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new tt.Buf16(320),this.work=new tt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function lt(Ut){var Ft;return Ut&&Ut.state?(Ft=Ut.state,Ut.total_in=Ut.total_out=Ft.total=0,Ut.msg="",Ft.wrap&&(Ut.adler=1&Ft.wrap),Ft.mode=1,Ft.last=0,Ft.havedict=0,Ft.dmax=32768,Ft.head=null,Ft.hold=0,Ft.bits=0,Ft.lencode=Ft.lendyn=new tt.Buf32(852),Ft.distcode=Ft.distdyn=new tt.Buf32(592),Ft.sane=1,Ft.back=-1,0):-2}function ut(Ut){var Ft;return Ut&&Ut.state?((Ft=Ut.state).wsize=0,Ft.whave=0,Ft.wnext=0,lt(Ut)):-2}function dt(Ut,Ft){var mt,vt;return Ut&&Ut.state?(vt=Ut.state,Ft<0?(mt=0,Ft=-Ft):(mt=1+(Ft>>4),Ft<48&&(Ft&=15)),Ft&&(Ft<8||Ft>15)?-2:(vt.window!==null&&vt.wbits!==Ft&&(vt.window=null),vt.wrap=mt,vt.wbits=Ft,ut(Ut))):-2}function ht(Ut,Ft){var mt,vt;return Ut?(vt=new at,Ut.state=vt,vt.window=null,(mt=dt(Ut,Ft))!==0&&(Ut.state=null),mt):-2}var ct,pt,ft=!0;function gt(Ut){if(ft){var Ft;for(ct=new tt.Buf32(512),pt=new tt.Buf32(32),Ft=0;Ft<144;)Ut.lens[Ft++]=8;for(;Ft<256;)Ut.lens[Ft++]=9;for(;Ft<280;)Ut.lens[Ft++]=7;for(;Ft<288;)Ut.lens[Ft++]=8;for(ot(1,Ut.lens,0,288,ct,0,Ut.work,{bits:9}),Ft=0;Ft<32;)Ut.lens[Ft++]=5;ot(2,Ut.lens,0,32,pt,0,Ut.work,{bits:5}),ft=!1}Ut.lencode=ct,Ut.lenbits=9,Ut.distcode=pt,Ut.distbits=5}function yt(Ut,Ft,mt,vt){var At,Lt=Ut.state;return Lt.window===null&&(Lt.wsize=1<=Lt.wsize?(tt.arraySet(Lt.window,Ft,mt-Lt.wsize,Lt.wsize,0),Lt.wnext=0,Lt.whave=Lt.wsize):((At=Lt.wsize-Lt.wnext)>vt&&(At=vt),tt.arraySet(Lt.window,Ft,mt-vt,At,Lt.wnext),(vt-=At)?(tt.arraySet(Lt.window,Ft,mt-vt,vt,0),Lt.wnext=vt,Lt.whave=Lt.wsize):(Lt.wnext+=At,Lt.wnext===Lt.wsize&&(Lt.wnext=0),Lt.whave>>8&255,mt.check=rt(mt.check,$t,2,0),Bt=0,xt=0,mt.mode=2;break}if(mt.flags=0,mt.head&&(mt.head.done=!1),!(1&mt.wrap)||(((255&Bt)<<8)+(Bt>>8))%31){Ut.msg="incorrect header check",mt.mode=30;break}if((15&Bt)!=8){Ut.msg="unknown compression method",mt.mode=30;break}if(xt-=4,nn=8+(15&(Bt>>>=4)),mt.wbits===0)mt.wbits=nn;else if(nn>mt.wbits){Ut.msg="invalid window size",mt.mode=30;break}mt.dmax=1<>8&1),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=3;case 3:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,$t[2]=Bt>>>16&255,$t[3]=Bt>>>24&255,mt.check=rt(mt.check,$t,4,0)),Bt=0,xt=0,mt.mode=4;case 4:for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>8),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=5;case 5:if(1024&mt.flags){for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0}else mt.head&&(mt.head.extra=null);mt.mode=6;case 6:if(1024&mt.flags&&((Nt=mt.length)>St&&(Nt=St),Nt&&(mt.head&&(nn=mt.head.extra_len-mt.length,mt.head.extra||(mt.head.extra=new Array(mt.head.extra_len)),tt.arraySet(mt.head.extra,vt,Lt,Nt,nn)),512&mt.flags&&(mt.check=rt(mt.check,vt,Nt,Lt)),St-=Nt,Lt+=Nt,mt.length-=Nt),mt.length))break e;mt.length=0,mt.mode=7;case 7:if(2048&mt.flags){if(St===0)break e;Nt=0;do nn=vt[Lt+Nt++],mt.head&&nn&&mt.length<65536&&(mt.head.name+=String.fromCharCode(nn));while(nn&&Nt>9&1,mt.head.done=!0),Ut.adler=mt.check=0,mt.mode=12;break;case 10:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=7&xt,xt-=7&xt,mt.mode=27;break}for(;xt<3;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=1)){case 0:mt.mode=14;break;case 1:if(gt(mt),mt.mode=20,Ft===6){Bt>>>=2,xt-=2;break e}break;case 2:mt.mode=17;break;case 3:Ut.msg="invalid block type",mt.mode=30}Bt>>>=2,xt-=2;break;case 14:for(Bt>>>=7&xt,xt-=7&xt;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>16^65535)){Ut.msg="invalid stored block lengths",mt.mode=30;break}if(mt.length=65535&Bt,Bt=0,xt=0,mt.mode=15,Ft===6)break e;case 15:mt.mode=16;case 16:if(Nt=mt.length){if(Nt>St&&(Nt=St),Nt>Tt&&(Nt=Tt),Nt===0)break e;tt.arraySet(At,vt,Lt,Nt,Rt),St-=Nt,Lt+=Nt,Tt-=Nt,Rt+=Nt,mt.length-=Nt;break}mt.mode=12;break;case 17:for(;xt<14;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=5,xt-=5,mt.ndist=1+(31&Bt),Bt>>>=5,xt-=5,mt.ncode=4+(15&Bt),Bt>>>=4,xt-=4,mt.nlen>286||mt.ndist>30){Ut.msg="too many length or distance symbols",mt.mode=30;break}mt.have=0,mt.mode=18;case 18:for(;mt.have>>=3,xt-=3}for(;mt.have<19;)mt.lens[Ht[mt.have++]]=0;if(mt.lencode=mt.lendyn,mt.lenbits=7,jt={bits:mt.lenbits},Zt=ot(0,mt.lens,0,19,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid code lengths set",mt.mode=30;break}mt.have=0,mt.mode=19;case 19:for(;mt.have>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=Dt,xt-=Dt,mt.lens[mt.have++]=Pt;else{if(Pt===16){for(Vt=Dt+2;xt>>=Dt,xt-=Dt,mt.have===0){Ut.msg="invalid bit length repeat",mt.mode=30;break}nn=mt.lens[mt.have-1],Nt=3+(3&Bt),Bt>>>=2,xt-=2}else if(Pt===17){for(Vt=Dt+3;xt>>=Dt)),Bt>>>=3,xt-=3}else{for(Vt=Dt+7;xt>>=Dt)),Bt>>>=7,xt-=7}if(mt.have+Nt>mt.nlen+mt.ndist){Ut.msg="invalid bit length repeat",mt.mode=30;break}for(;Nt--;)mt.lens[mt.have++]=nn}}if(mt.mode===30)break;if(mt.lens[256]===0){Ut.msg="invalid code -- missing end-of-block",mt.mode=30;break}if(mt.lenbits=9,jt={bits:mt.lenbits},Zt=ot(1,mt.lens,0,mt.nlen,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid literal/lengths set",mt.mode=30;break}if(mt.distbits=6,mt.distcode=mt.distdyn,jt={bits:mt.distbits},Zt=ot(2,mt.lens,mt.nlen,mt.ndist,mt.distcode,0,mt.work,jt),mt.distbits=jt.bits,Zt){Ut.msg="invalid distances set",mt.mode=30;break}if(mt.mode=20,Ft===6)break e;case 20:mt.mode=21;case 21:if(St>=6&&Tt>=258){Ut.next_out=Rt,Ut.avail_out=Tt,Ut.next_in=Lt,Ut.avail_in=St,mt.hold=Bt,mt.bits=xt,it(Ut,kt),Rt=Ut.next_out,At=Ut.output,Tt=Ut.avail_out,Lt=Ut.next_in,vt=Ut.input,St=Ut.avail_in,Bt=mt.hold,xt=mt.bits,mt.mode===12&&(mt.back=-1);break}for(mt.back=0;Et=(It=mt.lencode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,mt.length=Pt,Et===0){mt.mode=26;break}if(32&Et){mt.back=-1,mt.mode=12;break}if(64&Et){Ut.msg="invalid literal/length code",mt.mode=30;break}mt.extra=15&Et,mt.mode=22;case 22:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}mt.was=mt.length,mt.mode=23;case 23:for(;Et=(It=mt.distcode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,64&Et){Ut.msg="invalid distance code",mt.mode=30;break}mt.offset=Pt,mt.extra=15&Et,mt.mode=24;case 24:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}if(mt.offset>mt.dmax){Ut.msg="invalid distance too far back",mt.mode=30;break}mt.mode=25;case 25:if(Tt===0)break e;if(Nt=kt-Tt,mt.offset>Nt){if((Nt=mt.offset-Nt)>mt.whave&&mt.sane){Ut.msg="invalid distance too far back",mt.mode=30;break}Nt>mt.wnext?(Nt-=mt.wnext,Ot=mt.wsize-Nt):Ot=mt.wnext-Nt,Nt>mt.length&&(Nt=mt.length),Wt=mt.window}else Wt=At,Ot=Rt-mt.offset,Nt=mt.length;Nt>Tt&&(Nt=Tt),Tt-=Nt,mt.length-=Nt;do At[Rt++]=Wt[Ot++];while(--Nt);mt.length===0&&(mt.mode=21);break;case 26:if(Tt===0)break e;At[Rt++]=mt.length,Tt--,mt.mode=21;break;case 27:if(mt.wrap){for(;xt<32;){if(St===0)break e;St--,Bt|=vt[Lt++]<>>=At=vt>>>24,gt-=At,(At=vt>>>16&255)===0)xt[st++]=65535&vt;else{if(!(16&At)){if(!(64&At)){vt=yt[(65535&vt)+(ft&(1<>>=At,gt-=At),gt<15&&(ft+=Bt[it++]<>>=At=vt>>>24,gt-=At,!(16&(At=vt>>>16&255))){if(!(64&At)){vt=Ut[(65535&vt)+(ft&(1<ut){tt.msg="invalid distance too far back",rt.mode=30;break e}if(ft>>>=At,gt-=At,Rt>(At=st-at)){if((At=Rt-At)>ht&&rt.sane){tt.msg="invalid distance too far back",rt.mode=30;break e}if(St=0,Tt=pt,ct===0){if(St+=dt-At,At2;)xt[st++]=Tt[St++],xt[st++]=Tt[St++],xt[st++]=Tt[St++],Lt-=3;Lt&&(xt[st++]=Tt[St++],Lt>1&&(xt[st++]=Tt[St++]))}else{St=st-Rt;do xt[st++]=xt[St++],xt[st++]=xt[St++],xt[st++]=xt[St++],Lt-=3;while(Lt>2);Lt&&(xt[st++]=xt[St++],Lt>1&&(xt[st++]=xt[St++]))}break}}break}}while(it>3,ft&=(1<<(gt-=Lt<<3))-1,tt.next_in=it,tt.next_out=st,tt.avail_in=it=1&&zt[xt]===0;xt--);if(Ct>xt&&(Ct=xt),xt===0)return dt[ht++]=20971520,dt[ht++]=20971520,pt.bits=1,0;for(Bt=1;Bt0&&(st===0||xt!==1))return-1;for(en[1]=0,St=1;St<15;St++)en[St+1]=en[St]+zt[St];for(Tt=0;Tt852||st===2&&Wt>592)return 1;for(;;){vt=St-Nt,ct[Tt]mt?(At=Kt[nn+ct[Tt]],Lt=Et[Pt+ct[Tt]]):(At=96,Lt=0),ft=1<>Nt)+(gt-=ft)]=vt<<24|At<<16|Lt|0;while(gt!==0);for(ft=1<>=1;if(ft!==0?(Dt&=ft-1,Dt+=ft):Dt=0,Tt++,--zt[St]==0){if(St===xt)break;St=at[lt+ct[Tt]]}if(St>Ct&&(Dt&Ut)!==yt){for(Nt===0&&(Nt=Ct),Ft+=Bt,Ot=1<<(kt=St-Nt);kt+Nt852||st===2&&Wt>592)return 1;dt[yt=Dt&Ut]=Ct<<24|kt<<16|Ft-ht|0}}return Dt!==0&&(dt[Ft+Dt]=St-Nt<<24|64<<16|0),pt.bits=Ct,0}},function(s,o,et){s.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(s,o){},function(s,o,et){function tt(at,lt){var ut=Object.keys(at);if(Object.getOwnPropertySymbols){var dt=Object.getOwnPropertySymbols(at);lt&&(dt=dt.filter(function(ht){return Object.getOwnPropertyDescriptor(at,ht).enumerable})),ut.push.apply(ut,dt)}return ut}function nt(at,lt,ut){return lt in at?Object.defineProperty(at,lt,{value:ut,enumerable:!0,configurable:!0,writable:!0}):at[lt]=ut,at}function rt(at,lt){for(var ut=0;ut0?this.tail.next=ht:this.head=ht,this.tail=ht,++this.length}},{key:"unshift",value:function(dt){var ht={data:dt,next:this.head};this.length===0&&(this.tail=ht),this.head=ht,++this.length}},{key:"shift",value:function(){if(this.length!==0){var dt=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,dt}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(dt){if(this.length===0)return"";for(var ht=this.head,ct=""+ht.data;ht=ht.next;)ct+=dt+ht.data;return ct}},{key:"concat",value:function(dt){if(this.length===0)return it.alloc(0);for(var ht,ct,pt,ft=it.allocUnsafe(dt>>>0),gt=this.head,yt=0;gt;)ht=gt.data,ct=ft,pt=yt,it.prototype.copy.call(ht,ct,pt),yt+=gt.data.length,gt=gt.next;return ft}},{key:"consume",value:function(dt,ht){var ct;return dtft.length?ft.length:dt;if(gt===ft.length?pt+=ft:pt+=ft.slice(0,dt),(dt-=gt)==0){gt===ft.length?(++ct,ht.next?this.head=ht.next:this.head=this.tail=null):(this.head=ht,ht.data=ft.slice(gt));break}++ct}return this.length-=ct,pt}},{key:"_getBuffer",value:function(dt){var ht=it.allocUnsafe(dt),ct=this.head,pt=1;for(ct.data.copy(ht),dt-=ct.data.length;ct=ct.next;){var ft=ct.data,gt=dt>ft.length?ft.length:dt;if(ft.copy(ht,ht.length-dt,0,gt),(dt-=gt)==0){gt===ft.length?(++pt,ct.next?this.head=ct.next:this.head=this.tail=null):(this.head=ct,ct.data=ft.slice(gt));break}++pt}return this.length-=pt,ht}},{key:st,value:function(dt,ht){return ot(this,function(ct){for(var pt=1;pt0,function(mt){pt||(pt=mt),mt&>.forEach(at),Ft||(gt.forEach(at),ft(pt))})});return ht.reduce(lt)}},function(s,o,et){var tt=et(187)(function nt(rt,it){return(it=it||{}).namespace=rt,it.prod=!0,it.dev=!1,it.force||nt.force?nt.yep(it):nt.nope(it)});s.exports=tt},function(s,o){var et=[],tt=[],nt=function(){};function rt(ct){return!~et.indexOf(ct)&&(et.push(ct),!0)}function it(ct){nt=ct}function ot(ct){for(var pt=[],ft=0;ftst.start)&&(at?at(null,ht):dt.emit("line",ht)),pt++,ht=""),setTimeout(yt,1e3);var mt=ut.write(lt.slice(0,Ft));at||dt.emit("data",mt);for(var vt=(mt=(ht+mt).split(/\n+/)).length-1,At=0;Atst.start)&&(at?at(null,mt[At]):dt.emit("line",mt[At])),pt++;return ht=mt[vt],ct+=Ft,yt()});nt.close(gt,ot)})()}),at?dt.destroy:dt}}).call(this,et(5).Buffer)},function(s,o,et){(function(tt,nt){function rt(Ut){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Ft){return typeof Ft}:function(Ft){return Ft&&typeof Symbol=="function"&&Ft.constructor===Symbol&&Ft!==Symbol.prototype?"symbol":typeof Ft})(Ut)}function it(Ut,Ft){var mt=Object.keys(Ut);if(Object.getOwnPropertySymbols){var vt=Object.getOwnPropertySymbols(Ut);Ft&&(vt=vt.filter(function(At){return Object.getOwnPropertyDescriptor(Ut,At).enumerable})),mt.push.apply(mt,vt)}return mt}function ot(Ut){for(var Ft=1;Ft"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var mt,vt=ct(Ut);if(Ft){var At=ct(this).constructor;mt=Reflect.construct(vt,arguments,At)}else mt=vt.apply(this,arguments);return ht(this,mt)}}function ht(Ut,Ft){return!Ft||rt(Ft)!=="object"&&typeof Ft!="function"?function(mt){if(mt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return mt}(Ut):Ft}function ct(Ut){return(ct=Object.setPrototypeOf?Object.getPrototypeOf:function(Ft){return Ft.__proto__||Object.getPrototypeOf(Ft)})(Ut)}var pt=et(83),ft=et(200),gt=et(32).Stream,yt=et(20);s.exports=function(Ut){(function(Lt,Rt){if(typeof Rt!="function"&&Rt!==null)throw new TypeError("Super expression must either be null or a function");Lt.prototype=Object.create(Rt&&Rt.prototype,{constructor:{value:Lt,writable:!0,configurable:!0}}),Rt&&ut(Lt,Rt)})(At,Ut);var Ft,mt,vt=dt(At);function At(){var Lt,Rt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return at(this,At),(Lt=vt.call(this,Rt)).options=Rt,Lt.name=Rt.name||"http",Lt.ssl=!!Rt.ssl,Lt.host=Rt.host||"localhost",Lt.port=Rt.port,Lt.auth=Rt.auth,Lt.path=Rt.path||"",Lt.agent=Rt.agent,Lt.headers=Rt.headers||{},Lt.headers["content-type"]="application/json",Lt.port||(Lt.port=Lt.ssl?443:80),Lt}return Ft=At,(mt=[{key:"log",value:function(Lt,Rt){var St=this;this._request(Lt,function(Tt,Bt){Bt&&Bt.statusCode!==200&&(Tt=new Error("Invalid HTTP Status Code: ".concat(Bt.statusCode))),Tt?St.emit("warn",Tt):St.emit("logged",Lt)}),Rt&&tt(Rt)}},{key:"query",value:function(Lt,Rt){typeof Lt=="function"&&(Rt=Lt,Lt={}),(Lt={method:"query",params:this.normalizeQuery(Lt)}).params.path&&(Lt.path=Lt.params.path,delete Lt.params.path),Lt.params.auth&&(Lt.auth=Lt.params.auth,delete Lt.params.auth),this._request(Lt,function(St,Tt,Bt){if(Tt&&Tt.statusCode!==200&&(St=new Error("Invalid HTTP Status Code: ".concat(Tt.statusCode))),St)return Rt(St);if(typeof Bt=="string")try{Bt=JSON.parse(Bt)}catch(xt){return Rt(xt)}Rt(null,Bt)})}},{key:"stream",value:function(){var Lt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Rt=new gt;(Lt={method:"stream",params:Lt}).params.path&&(Lt.path=Lt.params.path,delete Lt.params.path),Lt.params.auth&&(Lt.auth=Lt.params.auth,delete Lt.params.auth);var St="",Tt=this._request(Lt);return Rt.destroy=function(){return Tt.destroy()},Tt.on("data",function(Bt){for(var xt=(Bt=(St+Bt).split(/\n+/)).length-1,Ct=0;Ct= 0x80 (not a basic code point)","invalid-input":"Invalid input"},ct=Math.floor,pt=String.fromCharCode;function ft(Rt){throw new RangeError(ht[Rt])}function gt(Rt,St){for(var Tt=Rt.length,Bt=[];Tt--;)Bt[Tt]=St(Rt[Tt]);return Bt}function yt(Rt,St){var Tt=Rt.split("@"),Bt="";return Tt.length>1&&(Bt=Tt[0]+"@",Rt=Tt[1]),Bt+gt((Rt=Rt.replace(dt,".")).split("."),St).join(".")}function Ut(Rt){for(var St,Tt,Bt=[],xt=0,Ct=Rt.length;xt=55296&&St<=56319&&xt65535&&(Tt+=pt((St-=65536)>>>10&1023|55296),St=56320|1023&St),Tt+=pt(St)}).join("")}function mt(Rt,St){return Rt+22+75*(Rt<26)-((St!=0)<<5)}function vt(Rt,St,Tt){var Bt=0;for(Rt=Tt?ct(Rt/700):Rt>>1,Rt+=ct(Rt/St);Rt>455;Bt+=36)Rt=ct(Rt/35);return ct(Bt+36*Rt/(Rt+38))}function At(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt,Et,Pt=[],zt=Rt.length,en=0,Kt=128,nn=72;for((Tt=Rt.lastIndexOf("-"))<0&&(Tt=0),Bt=0;Bt=128&&ft("not-basic"),Pt.push(Rt.charCodeAt(Bt));for(xt=Tt>0?Tt+1:0;xt=zt&&ft("invalid-input"),((Ot=(Et=Rt.charCodeAt(xt++))-48<10?Et-22:Et-65<26?Et-65:Et-97<26?Et-97:36)>=36||Ot>ct((at-en)/kt))&&ft("overflow"),en+=Ot*kt,!(Ot<(Wt=Nt<=nn?1:Nt>=nn+26?26:Nt-nn));Nt+=36)kt>ct(at/(Dt=36-Wt))&&ft("overflow"),kt*=Dt;nn=vt(en-Ct,St=Pt.length+1,Ct==0),ct(en/St)>at-Kt&&ft("overflow"),Kt+=ct(en/St),en%=St,Pt.splice(en++,0,Kt)}return Ft(Pt)}function Lt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt,Et,Pt,zt,en,Kt,nn=[];for(Pt=(Rt=Ut(Rt)).length,St=128,Tt=0,Ct=72,kt=0;kt=St&&Etct((at-Tt)/(zt=Bt+1))&&ft("overflow"),Tt+=(Nt-St)*zt,St=Nt,kt=0;ktat&&ft("overflow"),Et==St){for(Ot=Tt,Wt=36;!(Ot<(Dt=Wt<=Ct?1:Wt>=Ct+26?26:Wt-Ct));Wt+=36)Kt=Ot-Dt,en=36-Dt,nn.push(pt(mt(Dt+Kt%en,0))),Ot=ct(Kt/en);nn.push(pt(mt(Ot,0))),Ct=vt(Tt,zt,Bt==xt),Tt=0,++Bt}++Tt,++St}return nn.join("")}st={version:"1.4.1",ucs2:{decode:Ut,encode:Ft},decode:At,encode:Lt,toASCII:function(Rt){return yt(Rt,function(St){return ut.test(St)?"xn--"+Lt(St):St})},toUnicode:function(Rt){return yt(Rt,function(St){return lt.test(St)?At(St.slice(4).toLowerCase()):St})}},(rt=function(){return st}.call(o,et,o,tt))===void 0||(tt.exports=rt)})()}).call(this,et(195)(s),et(6))},function(s,o){s.exports=function(et){return et.webpackPolyfill||(et.deprecate=function(){},et.paths=[],et.children||(et.children=[]),Object.defineProperty(et,"loaded",{enumerable:!0,get:function(){return et.l}}),Object.defineProperty(et,"id",{enumerable:!0,get:function(){return et.i}}),et.webpackPolyfill=1),et}},function(s,o,et){s.exports={isString:function(tt){return typeof tt=="string"},isObject:function(tt){return typeof tt=="object"&&tt!==null},isNull:function(tt){return tt===null},isNullOrUndefined:function(tt){return tt==null}}},function(s,o,et){o.decode=o.parse=et(198),o.encode=o.stringify=et(199)},function(s,o,et){function tt(rt,it){return Object.prototype.hasOwnProperty.call(rt,it)}s.exports=function(rt,it,ot,st){it=it||"&",ot=ot||"=";var at={};if(typeof rt!="string"||rt.length===0)return at;var lt=/\+/g;rt=rt.split(it);var ut=1e3;st&&typeof st.maxKeys=="number"&&(ut=st.maxKeys);var dt=rt.length;ut>0&&dt>ut&&(dt=ut);for(var ht=0;ht=0?(ct=yt.substr(0,Ut),pt=yt.substr(Ut+1)):(ct=yt,pt=""),ft=decodeURIComponent(ct),gt=decodeURIComponent(pt),tt(at,ft)?nt(at[ft])?at[ft].push(gt):at[ft]=[at[ft],gt]:at[ft]=gt}return at};var nt=Array.isArray||function(rt){return Object.prototype.toString.call(rt)==="[object Array]"}},function(s,o,et){var tt=function(ot){switch(typeof ot){case"string":return ot;case"boolean":return ot?"true":"false";case"number":return isFinite(ot)?ot:"";default:return""}};s.exports=function(ot,st,at,lt){return st=st||"&",at=at||"=",ot===null&&(ot=void 0),typeof ot=="object"?rt(it(ot),function(ut){var dt=encodeURIComponent(tt(ut))+at;return nt(ot[ut])?rt(ot[ut],function(ht){return dt+encodeURIComponent(tt(ht))}).join(st):dt+encodeURIComponent(tt(ot[ut]))}).join(st):lt?encodeURIComponent(tt(lt))+at+encodeURIComponent(tt(ot)):""};var nt=Array.isArray||function(ot){return Object.prototype.toString.call(ot)==="[object Array]"};function rt(ot,st){if(ot.map)return ot.map(st);for(var at=[],lt=0;lt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var gt,yt=lt(pt);if(ft){var Ut=lt(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return at(this,gt)}}function at(pt,ft){return!ft||nt(ft)!=="object"&&typeof ft!="function"?function(gt){if(gt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return gt}(pt):ft}function lt(pt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(ft){return ft.__proto__||Object.getPrototypeOf(ft)})(pt)}var ut=et(87),dt=et(3).MESSAGE,ht=et(18),ct=et(20);s.exports=function(pt){(function(Ft,mt){if(typeof mt!="function"&&mt!==null)throw new TypeError("Super expression must either be null or a function");Ft.prototype=Object.create(mt&&mt.prototype,{constructor:{value:Ft,writable:!0,configurable:!0}}),mt&&ot(Ft,mt)})(Ut,pt);var ft,gt,yt=st(Ut);function Ut(){var Ft,mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(rt(this,Ut),Ft=yt.call(this,mt),!mt.stream||!ut(mt.stream))throw new Error("options.stream is required.");return Ft._stream=mt.stream,Ft._stream.setMaxListeners(1/0),Ft.isObjectMode=mt.stream._writableState.objectMode,Ft.eol=mt.eol||ht.EOL,Ft}return ft=Ut,(gt=[{key:"log",value:function(Ft,mt){var vt=this;if(tt(function(){return vt.emit("logged",Ft)}),this.isObjectMode)return this._stream.write(Ft),void(mt&&mt());this._stream.write("".concat(Ft[dt]).concat(this.eol)),mt&&mt()}}])&&it(ft.prototype,gt),Ut}(ct)}).call(this,et(15).setImmediate)},function(s,o,et){(function(tt){function nt(Bt,xt,Ct){return xt in Bt?Object.defineProperty(Bt,xt,{value:Ct,enumerable:!0,configurable:!0,writable:!0}):Bt[xt]=Ct,Bt}function rt(Bt){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(xt){return typeof xt}:function(xt){return xt&&typeof Symbol=="function"&&xt.constructor===Symbol&&xt!==Symbol.prototype?"symbol":typeof xt})(Bt)}function it(Bt,xt){for(var Ct=0;Ct"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var Ct,kt=lt(Bt);if(xt){var Nt=lt(this).constructor;Ct=Reflect.construct(kt,arguments,Nt)}else Ct=kt.apply(this,arguments);return at(this,Ct)}}function at(Bt,xt){return!xt||rt(xt)!=="object"&&typeof xt!="function"?function(Ct){if(Ct===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ct}(Bt):xt}function lt(Bt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(xt){return xt.__proto__||Object.getPrototypeOf(xt)})(Bt)}var ut=et(32),dt=ut.Stream,ht=ut.Transform,ct=et(51),pt=et(3),ft=pt.LEVEL,gt=pt.SPLAT,yt=et(87),Ut=et(89),Ft=et(93),mt=et(206),vt=et(207),At=et(61).warn,Lt=et(50),Rt=/%[scdjifoO%]/g,St=function(Bt){(function(Ot,Wt){if(typeof Wt!="function"&&Wt!==null)throw new TypeError("Super expression must either be null or a function");Ot.prototype=Object.create(Wt&&Wt.prototype,{constructor:{value:Ot,writable:!0,configurable:!0}}),Wt&&ot(Ot,Wt)})(Nt,Bt);var xt,Ct,kt=st(Nt);function Nt(Ot){var Wt;return function(Dt,Et){if(!(Dt instanceof Et))throw new TypeError("Cannot call a class as a function")}(this,Nt),(Wt=kt.call(this,{objectMode:!0})).configure(Ot),Wt}return xt=Nt,(Ct=[{key:"child",value:function(Ot){var Wt=this;return Object.create(Wt,{write:{value:function(Dt){var Et=Object.assign({},Ot,Dt);Dt instanceof Error&&(Et.stack=Dt.stack,Et.message=Dt.message),Wt.write(Et)}}})}},{key:"configure",value:function(){var Ot=this,Wt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Dt=Wt.silent,Et=Wt.format,Pt=Wt.defaultMeta,zt=Wt.levels,en=Wt.level,Kt=en===void 0?"info":en,nn=Wt.exitOnError,Zt=nn===void 0||nn,jt=Wt.transports,Vt=Wt.colors,It=Wt.emitErrs,$t=Wt.formatters,Ht=Wt.padLevels,qt=Wt.rewriters,on=Wt.stripColors,Xt=Wt.exceptionHandlers,dn=Wt.rejectionHandlers;if(this.transports.length&&this.clear(),this.silent=Dt,this.format=Et||this.format||et(208)(),this.defaultMeta=Pt||null,this.levels=zt||this.levels||Lt.npm.levels,this.level=Kt,this.exceptions=new Ut(this),this.rejections=new Ft(this),this.profilers={},this.exitOnError=Zt,jt&&(jt=Array.isArray(jt)?jt:[jt]).forEach(function(_n){return Ot.add(_n)}),Vt||It||$t||Ht||qt||on)throw new Error(["{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.","Use a custom winston.format(function) instead.","See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md"].join(` -`));Xt&&this.exceptions.handle(Xt),dn&&this.rejections.handle(dn)}},{key:"isLevelEnabled",value:function(Ot){var Wt=this,Dt=Tt(this.levels,Ot);if(Dt===null)return!1;var Et=Tt(this.levels,this.level);return Et!==null&&(this.transports&&this.transports.length!==0?this.transports.findIndex(function(Pt){var zt=Tt(Wt.levels,Pt.level);return zt===null&&(zt=Et),zt>=Dt})!==-1:Et>=Dt)}},{key:"log",value:function(Ot,Wt){for(var Dt,Et,Pt=arguments.length,zt=new Array(Pt>2?Pt-2:0),en=2;en2?new mt({transport:Ot}):Ot;if(!Wt._writableState||!Wt._writableState.objectMode)throw new Error("Transports must WritableStreams in objectMode. Set { objectMode: true }.");return this._onEvent("error",Wt),this._onEvent("warn",Wt),this.pipe(Wt),Ot.handleExceptions&&this.exceptions.handle(),Ot.handleRejections&&this.rejections.handle(),this}},{key:"remove",value:function(Ot){if(!Ot)return this;var Wt=Ot;return(!yt(Ot)||Ot.log.length>2)&&(Wt=this.transports.filter(function(Dt){return Dt.transport===Ot})[0]),Wt&&this.unpipe(Wt),this}},{key:"clear",value:function(){return this.unpipe(),this}},{key:"close",value:function(){return this.clear(),this.emit("close"),this}},{key:"setLevels",value:function(){At.deprecated("setLevels")}},{key:"query",value:function(Ot,Wt){typeof Ot=="function"&&(Wt=Ot,Ot={}),Ot=Ot||{};var Dt={},Et=Object.assign({},Ot.query||{});ct(this.transports.filter(function(Pt){return!!Pt.query}),function(Pt,zt){(function(en,Kt){Ot.query&&typeof en.formatQuery=="function"&&(Ot.query=en.formatQuery(Et)),en.query(Ot,function(nn,Zt){if(nn)return Kt(nn);typeof en.formatResults=="function"&&(Zt=en.formatResults(Zt,Ot.format)),Kt(null,Zt)})})(Pt,function(en,Kt){zt&&((Kt=en||Kt)&&(Dt[Pt.name]=Kt),zt()),zt=null})},function(){return Wt(null,Dt)})}},{key:"stream",value:function(){var Ot=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Wt=new dt,Dt=[];return Wt._streams=Dt,Wt.destroy=function(){for(var Et=Dt.length;Et--;)Dt[Et].destroy()},this.transports.filter(function(Et){return!!Et.stream}).forEach(function(Et){var Pt=Et.stream(Ot);Pt&&(Dt.push(Pt),Pt.on("log",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Wt.emit("log",zt)}),Pt.on("error",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Wt.emit("error",zt)}))}),Wt}},{key:"startTimer",value:function(){return new vt(this)}},{key:"profile",value:function(Ot){var Wt=Date.now();if(this.profilers[Ot]){var Dt=this.profilers[Ot];delete this.profilers[Ot];for(var Et=arguments.length,Pt=new Array(Et>1?Et-1:0),zt=1;zttt(nt,it)},s.exports=o.default},function(s,o,et){var tt=Object.prototype.toString;s.exports=function(nt){if(typeof nt.displayName=="string"&&nt.constructor.name)return nt.displayName;if(typeof nt.name=="string"&&nt.name)return nt.name;if(typeof nt=="object"&&nt.constructor&&typeof nt.constructor.name=="string")return nt.constructor.name;var rt=nt.toString(),it=tt.call(nt).slice(8,-1);return(rt=it==="Function"?rt.substring(rt.indexOf("(")+1,rt.indexOf(")")):it)||"anonymous"}},function(s,o,et){const tt=et(13),{LEVEL:nt}=et(3),rt=et(20),it=s.exports=function(ot={}){if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=function(st){this.emit("error",st,this.transport)}.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(let at=0;atut.length)&&(dt=ut.length);for(var ht=0,ct=new Array(dt);ht1?ft.splice(0):ft,Ut=yt.length;if(Ut)for(var Ft=0;Ft1&&arguments[1]!==void 0?arguments[1]:{};return it.format&&(rt.timestamp=typeof it.format=="function"?it.format():tt.format(new Date,it.format)),rt.timestamp||(rt.timestamp=new Date().toISOString()),it.alias&&(rt[it.alias]=rt.timestamp),rt})},function(s,o,et){et.r(o),et.d(o,"assign",function(){return st}),et.d(o,"format",function(){return St}),et.d(o,"parse",function(){return Tt}),et.d(o,"defaultI18n",function(){return dt}),et.d(o,"setGlobalDateI18n",function(){return ct}),et.d(o,"setGlobalDateMasks",function(){return Rt});var tt=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,nt="[^\\s]+",rt=/\[([^]*?)\]/gm;function it(xt,Ct){for(var kt=[],Nt=0,Ot=xt.length;Nt-1?Nt:null}};function st(xt){for(var Ct=[],kt=1;kt3?0:(xt-xt%10!=10?1:0)*xt%10]}},ht=st({},dt),ct=function(xt){return ht=st(ht,xt)},pt=function(xt){return xt.replace(/[|\\{()[^$+*?.-]/g,"\\$&")},ft=function(xt,Ct){for(Ct===void 0&&(Ct=2),xt=String(xt);xt.length0?"-":"+")+ft(100*Math.floor(Math.abs(Ct)/60)+Math.abs(Ct)%60,4)},Z:function(xt){var Ct=xt.getTimezoneOffset();return(Ct>0?"-":"+")+ft(Math.floor(Math.abs(Ct)/60),2)+":"+ft(Math.abs(Ct)%60,2)}},yt=function(xt){return+xt-1},Ut=[null,"[1-9]\\d?"],Ft=[null,nt],mt=["isPm",nt,function(xt,Ct){var kt=xt.toLowerCase();return kt===Ct.amPm[0]?0:kt===Ct.amPm[1]?1:null}],vt=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(xt){var Ct=(xt+"").match(/([+-]|\d\d)/gi);if(Ct){var kt=60*+Ct[1]+parseInt(Ct[2],10);return Ct[0]==="+"?kt:-kt}return 0}],At={D:["day","[1-9]\\d?"],DD:["day","\\d\\d"],Do:["day","[1-9]\\d?"+nt,function(xt){return parseInt(xt,10)}],M:["month","[1-9]\\d?",yt],MM:["month","\\d\\d",yt],YY:["year","\\d\\d",function(xt){var Ct=+(""+new Date().getFullYear()).substr(0,2);return+(""+(+xt>68?Ct-1:Ct)+xt)}],h:["hour","[1-9]\\d?",void 0,"isPm"],hh:["hour","\\d\\d",void 0,"isPm"],H:["hour","[1-9]\\d?"],HH:["hour","\\d\\d"],m:["minute","[1-9]\\d?"],mm:["minute","\\d\\d"],s:["second","[1-9]\\d?"],ss:["second","\\d\\d"],YYYY:["year","\\d{4}"],S:["millisecond","\\d",function(xt){return 100*+xt}],SS:["millisecond","\\d\\d",function(xt){return 10*+xt}],SSS:["millisecond","\\d{3}"],d:Ut,dd:Ut,ddd:Ft,dddd:Ft,MMM:["month",nt,ot("monthNamesShort")],MMMM:["month",nt,ot("monthNames")],a:mt,A:mt,ZZ:vt,Z:vt},Lt={default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},Rt=function(xt){return st(Lt,xt)},St=function(xt,Ct,kt){if(Ct===void 0&&(Ct=Lt.default),kt===void 0&&(kt={}),typeof xt=="number"&&(xt=new Date(xt)),Object.prototype.toString.call(xt)!=="[object Date]"||isNaN(xt.getTime()))throw new Error("Invalid Date pass to format");var Nt=[];Ct=(Ct=Lt[Ct]||Ct).replace(rt,function(Jt,Dt){return Nt.push(Dt),"@@@"});var Ot=st(st({},ht),kt);return(Ct=Ct.replace(tt,function(Jt){return gt[Jt](xt,Ot)})).replace(/@@@/g,function(){return Nt.shift()})};function Tt(xt,Ct,kt){if(kt===void 0&&(kt={}),typeof Ct!="string")throw new Error("Invalid format in fecha parse");if(Ct=Lt[Ct]||Ct,xt.length>1e3)return null;var Nt={year:new Date().getFullYear(),month:0,day:1,hour:0,minute:0,second:0,millisecond:0,isPm:null,timezoneOffset:null},Ot=[],Jt=[],Dt=Ct.replace(rt,function(qt,on){return Jt.push(pt(on)),"@@@"}),Et={},Pt={};Dt=pt(Dt).replace(tt,function(qt){var on=At[qt],Xt=on[0],dn=on[1],_n=on[3];if(Et[Xt])throw new Error("Invalid format. "+Xt+" specified twice in format");return Et[Xt]=!0,_n&&(Pt[_n]=!0),Ot.push(on),"("+dn+")"}),Object.keys(Pt).forEach(function(qt){if(!Et[qt])throw new Error("Invalid format. "+qt+" is required in specified format")}),Dt=Dt.replace(/@@@/g,function(){return Jt.shift()});var zt=xt.match(new RegExp(Dt,"i"));if(!zt)return null;for(var en=st(st({},ht),kt),Kt=1;Kt","maintainers":["Jarrett Cruger ","Chris Alderson ","David Hyde "],"repository":{"type":"git","url":"https://github.com/winstonjs/winston.git"},"keywords":["winston","logger","logging","logs","sysadmin","bunyan","pino","loglevel","tools","json","stream"],"dependencies":{"async":"^3.1.0","@dabh/diagnostics":"^2.0.2","is-stream":"^2.0.0","logform":"^2.2.0","one-time":"^1.0.0","readable-stream":"^3.4.0","stack-trace":"0.0.x","triple-beam":"^1.3.0","winston-transport":"^4.4.0"},"devDependencies":{"@babel/cli":"^7.10.3","@babel/core":"^7.10.3","@babel/preset-env":"^7.10.3","@types/node":"^14.0.13","abstract-winston-transport":"^0.5.1","assume":"^2.2.0","colors":"^1.4.0","cross-spawn-async":"^2.2.5","eslint-config-populist":"^4.2.0","hock":"^1.4.1","mocha":"^8.0.1","nyc":"^15.1.0","rimraf":"^3.0.2","split2":"^3.1.1","std-mocks":"^1.0.1","through2":"^3.0.1","winston-compat":"^0.1.5"},"main":"./lib/winston","browser":"./dist/winston","types":"./index.d.ts","scripts":{"lint":"populist lib/*.js lib/winston/*.js lib/winston/**/*.js","pretest":"npm run lint","test":"nyc --reporter=text --reporter lcov npm run test:mocha","test:mocha":"mocha test/*.test.js test/**/*.test.js --exit","build":"./node_modules/.bin/rimraf dist && babel lib -d dist","prepublishOnly":"npm run build"},"engines":{"node":">= 6.4.0"},"license":"MIT"}')},function(s,o,et){Object.defineProperty(o,"Console",{configurable:!0,enumerable:!0,get:function(){return et(140)}}),Object.defineProperty(o,"File",{configurable:!0,enumerable:!0,get:function(){return et(149)}}),Object.defineProperty(o,"Http",{configurable:!0,enumerable:!0,get:function(){return et(189)}}),Object.defineProperty(o,"Stream",{configurable:!0,enumerable:!0,get:function(){return et(201)}})},function(s,o,et){(function(tt){function nt(ft){return(nt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(gt){return typeof gt}:function(gt){return gt&&typeof Symbol=="function"&>.constructor===Symbol&>!==Symbol.prototype?"symbol":typeof gt})(ft)}function rt(ft,gt){if(!(ft instanceof gt))throw new TypeError("Cannot call a class as a function")}function it(ft,gt){for(var yt=0;yt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var yt,Ut=lt(ft);if(gt){var Ft=lt(this).constructor;yt=Reflect.construct(Ut,arguments,Ft)}else yt=Ut.apply(this,arguments);return at(this,yt)}}function at(ft,gt){return!gt||nt(gt)!=="object"&&typeof gt!="function"?function(yt){if(yt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return yt}(ft):gt}function lt(ft){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(gt){return gt.__proto__||Object.getPrototypeOf(gt)})(ft)}var ut=et(18),dt=et(3),ht=dt.LEVEL,ct=dt.MESSAGE,pt=et(20);s.exports=function(ft){(function(mt,vt){if(typeof vt!="function"&&vt!==null)throw new TypeError("Super expression must either be null or a function");mt.prototype=Object.create(vt&&vt.prototype,{constructor:{value:mt,writable:!0,configurable:!0}}),vt&&ot(mt,vt)})(Ft,ft);var gt,yt,Ut=st(Ft);function Ft(){var mt,vt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return rt(this,Ft),(mt=Ut.call(this,vt)).name=vt.name||"console",mt.stderrLevels=mt._stringArrayToSet(vt.stderrLevels),mt.consoleWarnLevels=mt._stringArrayToSet(vt.consoleWarnLevels),mt.eol=vt.eol||ut.EOL,mt.setMaxListeners(30),mt}return gt=Ft,(yt=[{key:"log",value:function(mt,vt){var At=this;return tt(function(){return At.emit("logged",mt)}),this.stderrLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.error(mt[ct]),void(vt&&vt())):this.consoleWarnLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.warn(mt[ct]),void(vt&&vt())):(console._stdout?console._stdout.write("".concat(mt[ct]).concat(this.eol)):console.log(mt[ct]),void(vt&&vt()))}},{key:"_stringArrayToSet",value:function(mt,vt){if(!mt)return{};if(vt=vt||"Cannot make set from type other than Array of string elements",!Array.isArray(mt))throw new Error(vt);return mt.reduce(function(At,Lt){if(typeof Lt!="string")throw new Error(vt);return At[Lt]=!0,At},{})}}])&&it(gt.prototype,yt),Ft}(pt)}).call(this,et(15).setImmediate)},function(s,o,et){(function(tt,nt){(function(rt,it){if(!rt.setImmediate){var ot,st,at,lt,ut,dt=1,ht={},ct=!1,pt=rt.document,ft=Object.getPrototypeOf&&Object.getPrototypeOf(rt);ft=ft&&ft.setTimeout?ft:rt,{}.toString.call(rt.process)==="[object process]"?ot=function(Ut){nt.nextTick(function(){yt(Ut)})}:function(){if(rt.postMessage&&!rt.importScripts){var Ut=!0,Ft=rt.onmessage;return rt.onmessage=function(){Ut=!1},rt.postMessage("","*"),rt.onmessage=Ft,Ut}}()?(lt="setImmediate$"+Math.random()+"$",ut=function(Ut){Ut.source===rt&&typeof Ut.data=="string"&&Ut.data.indexOf(lt)===0&&yt(+Ut.data.slice(lt.length))},rt.addEventListener?rt.addEventListener("message",ut,!1):rt.attachEvent("onmessage",ut),ot=function(Ut){rt.postMessage(lt+Ut,"*")}):rt.MessageChannel?((at=new MessageChannel).port1.onmessage=function(Ut){yt(Ut.data)},ot=function(Ut){at.port2.postMessage(Ut)}):pt&&"onreadystatechange"in pt.createElement("script")?(st=pt.documentElement,ot=function(Ut){var Ft=pt.createElement("script");Ft.onreadystatechange=function(){yt(Ut),Ft.onreadystatechange=null,st.removeChild(Ft),Ft=null},st.appendChild(Ft)}):ot=function(Ut){setTimeout(yt,0,Ut)},ft.setImmediate=function(Ut){typeof Ut!="function"&&(Ut=new Function(""+Ut));for(var Ft=new Array(arguments.length-1),mt=0;mt"u"?tt===void 0?this:tt:self)}).call(this,et(6),et(2))},function(s,o,et){s.exports=et(62)},function(s,o,et){(function(tt,nt){var rt=et(16);s.exports=Ft;var it,ot=et(42);Ft.ReadableState=Ut,et(21).EventEmitter;var st=function(Dt,Et){return Dt.listeners(Et).length},at=et(63),lt=et(44).Buffer,ut=tt.Uint8Array||function(){},dt=Object.create(et(17));dt.inherits=et(7);var ht=et(144),ct=void 0;ct=ht&&ht.debuglog?ht.debuglog("stream"):function(){};var pt,ft=et(145),gt=et(64);dt.inherits(Ft,at);var yt=["error","close","destroy","pause","resume"];function Ut(Dt,Et){Dt=Dt||{};var Pt=Et instanceof(it=it||et(36));this.objectMode=!!Dt.objectMode,Pt&&(this.objectMode=this.objectMode||!!Dt.readableObjectMode);var zt=Dt.highWaterMark,en=Dt.readableHighWaterMark,Kt=this.objectMode?16:16384;this.highWaterMark=zt||zt===0?zt:Pt&&(en||en===0)?en:Kt,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new ft,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=Dt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Dt.encoding&&(pt||(pt=et(22).StringDecoder),this.decoder=new pt(Dt.encoding),this.encoding=Dt.encoding)}function Ft(Dt){if(it=it||et(36),!(this instanceof Ft))return new Ft(Dt);this._readableState=new Ut(Dt,this),this.readable=!0,Dt&&(typeof Dt.read=="function"&&(this._read=Dt.read),typeof Dt.destroy=="function"&&(this._destroy=Dt.destroy)),at.call(this)}function mt(Dt,Et,Pt,zt,en){var Kt,nn=Dt._readableState;return Et===null?(nn.reading=!1,function(Zt,jt){if(!jt.ended){if(jt.decoder){var Vt=jt.decoder.end();Vt&&Vt.length&&(jt.buffer.push(Vt),jt.length+=jt.objectMode?1:Vt.length)}jt.ended=!0,Lt(Zt)}}(Dt,nn)):(en||(Kt=function(Zt,jt){var Vt;It=jt,lt.isBuffer(It)||It instanceof ut||typeof jt=="string"||jt===void 0||Zt.objectMode||(Vt=new TypeError("Invalid non-string/buffer chunk"));var It;return Vt}(nn,Et)),Kt?Dt.emit("error",Kt):nn.objectMode||Et&&Et.length>0?(typeof Et=="string"||nn.objectMode||Object.getPrototypeOf(Et)===lt.prototype||(Et=function(Zt){return lt.from(Zt)}(Et)),zt?nn.endEmitted?Dt.emit("error",new Error("stream.unshift() after end event")):vt(Dt,nn,Et,!0):nn.ended?Dt.emit("error",new Error("stream.push() after EOF")):(nn.reading=!1,nn.decoder&&!Pt?(Et=nn.decoder.write(Et),nn.objectMode||Et.length!==0?vt(Dt,nn,Et,!1):St(Dt,nn)):vt(Dt,nn,Et,!1))):zt||(nn.reading=!1)),function(Zt){return!Zt.ended&&(Zt.needReadable||Zt.lengthEt.highWaterMark&&(Et.highWaterMark=function(Pt){return Pt>=8388608?Pt=8388608:(Pt--,Pt|=Pt>>>1,Pt|=Pt>>>2,Pt|=Pt>>>4,Pt|=Pt>>>8,Pt|=Pt>>>16,Pt++),Pt}(Dt)),Dt<=Et.length?Dt:Et.ended?Et.length:(Et.needReadable=!0,0))}function Lt(Dt){var Et=Dt._readableState;Et.needReadable=!1,Et.emittedReadable||(ct("emitReadable",Et.flowing),Et.emittedReadable=!0,Et.sync?rt.nextTick(Rt,Dt):Rt(Dt))}function Rt(Dt){ct("emit readable"),Dt.emit("readable"),Ct(Dt)}function St(Dt,Et){Et.readingMore||(Et.readingMore=!0,rt.nextTick(Tt,Dt,Et))}function Tt(Dt,Et){for(var Pt=Et.length;!Et.reading&&!Et.flowing&&!Et.ended&&Et.length=Et.length?(Pt=Et.decoder?Et.buffer.join(""):Et.buffer.length===1?Et.buffer.head.data:Et.buffer.concat(Et.length),Et.buffer.clear()):Pt=function(zt,en,Kt){var nn;return ztHt.length?Ht.length:Zt;if(qt===Ht.length?$t+=Ht:$t+=Ht.slice(0,Zt),(Zt-=qt)===0){qt===Ht.length?(++It,Vt.next?jt.head=Vt.next:jt.head=jt.tail=null):(jt.head=Vt,Vt.data=Ht.slice(qt));break}++It}return jt.length-=It,$t}(zt,en):function(Zt,jt){var Vt=lt.allocUnsafe(Zt),It=jt.head,$t=1;for(It.data.copy(Vt),Zt-=It.data.length;It=It.next;){var Ht=It.data,qt=Zt>Ht.length?Ht.length:Zt;if(Ht.copy(Vt,Vt.length-Zt,0,qt),(Zt-=qt)===0){qt===Ht.length?(++$t,It.next?jt.head=It.next:jt.head=jt.tail=null):(jt.head=It,It.data=Ht.slice(qt));break}++$t}return jt.length-=$t,Vt}(zt,en),nn}(Dt,Et.buffer,Et.decoder),Pt);var Pt}function Nt(Dt){var Et=Dt._readableState;if(Et.length>0)throw new Error('"endReadable()" called on non-empty stream');Et.endEmitted||(Et.ended=!0,rt.nextTick(Ot,Et,Dt))}function Ot(Dt,Et){Dt.endEmitted||Dt.length!==0||(Dt.endEmitted=!0,Et.readable=!1,Et.emit("end"))}function Jt(Dt,Et){for(var Pt=0,zt=Dt.length;Pt=Et.highWaterMark||Et.ended))return ct("read: emitReadable",Et.length,Et.ended),Et.length===0&&Et.ended?Nt(this):Lt(this),null;if((Dt=At(Dt,Et))===0&&Et.ended)return Et.length===0&&Nt(this),null;var zt,en=Et.needReadable;return ct("need readable",en),(Et.length===0||Et.length-Dt0?kt(Dt,Et):null)===null?(Et.needReadable=!0,Dt=0):Et.length-=Dt,Et.length===0&&(Et.ended||(Et.needReadable=!0),Pt!==Dt&&Et.ended&&Nt(this)),zt!==null&&this.emit("data",zt),zt},Ft.prototype._read=function(Dt){this.emit("error",new Error("_read() is not implemented"))},Ft.prototype.pipe=function(Dt,Et){var Pt=this,zt=this._readableState;switch(zt.pipesCount){case 0:zt.pipes=Dt;break;case 1:zt.pipes=[zt.pipes,Dt];break;default:zt.pipes.push(Dt)}zt.pipesCount+=1,ct("pipe count=%d opts=%j",zt.pipesCount,Et);var en=(!Et||Et.end!==!1)&&Dt!==nt.stdout&&Dt!==nt.stderr?nn:on;function Kt(Xt,dn){ct("onunpipe"),Xt===Pt&&dn&&dn.hasUnpiped===!1&&(dn.hasUnpiped=!0,ct("cleanup"),Dt.removeListener("close",Ht),Dt.removeListener("finish",qt),Dt.removeListener("drain",Zt),Dt.removeListener("error",$t),Dt.removeListener("unpipe",Kt),Pt.removeListener("end",nn),Pt.removeListener("end",on),Pt.removeListener("data",It),jt=!0,!zt.awaitDrain||Dt._writableState&&!Dt._writableState.needDrain||Zt())}function nn(){ct("onend"),Dt.end()}zt.endEmitted?rt.nextTick(en):Pt.once("end",en),Dt.on("unpipe",Kt);var Zt=function(Xt){return function(){var dn=Xt._readableState;ct("pipeOnDrain",dn.awaitDrain),dn.awaitDrain&&dn.awaitDrain--,dn.awaitDrain===0&&st(Xt,"data")&&(dn.flowing=!0,Ct(Xt))}}(Pt);Dt.on("drain",Zt);var jt=!1,Vt=!1;function It(Xt){ct("ondata"),Vt=!1,Dt.write(Xt)!==!1||Vt||((zt.pipesCount===1&&zt.pipes===Dt||zt.pipesCount>1&&Jt(zt.pipes,Dt)!==-1)&&!jt&&(ct("false write response, pause",Pt._readableState.awaitDrain),Pt._readableState.awaitDrain++,Vt=!0),Pt.pause())}function $t(Xt){ct("onerror",Xt),on(),Dt.removeListener("error",$t),st(Dt,"error")===0&&Dt.emit("error",Xt)}function Ht(){Dt.removeListener("finish",qt),on()}function qt(){ct("onfinish"),Dt.removeListener("close",Ht),on()}function on(){ct("unpipe"),Pt.unpipe(Dt)}return Pt.on("data",It),function(Xt,dn,_n){if(typeof Xt.prependListener=="function")return Xt.prependListener(dn,_n);Xt._events&&Xt._events[dn]?ot(Xt._events[dn])?Xt._events[dn].unshift(_n):Xt._events[dn]=[_n,Xt._events[dn]]:Xt.on(dn,_n)}(Dt,"error",$t),Dt.once("close",Ht),Dt.once("finish",qt),Dt.emit("pipe",Pt),zt.flowing||(ct("pipe resume"),Pt.resume()),Dt},Ft.prototype.unpipe=function(Dt){var Et=this._readableState,Pt={hasUnpiped:!1};if(Et.pipesCount===0)return this;if(Et.pipesCount===1)return Dt&&Dt!==Et.pipes||(Dt||(Dt=Et.pipes),Et.pipes=null,Et.pipesCount=0,Et.flowing=!1,Dt&&Dt.emit("unpipe",this,Pt)),this;if(!Dt){var zt=Et.pipes,en=Et.pipesCount;Et.pipes=null,Et.pipesCount=0,Et.flowing=!1;for(var Kt=0;Kt0?this.tail.next=ot:this.head=ot,this.tail=ot,++this.length},rt.prototype.unshift=function(it){var ot={data:it,next:this.head};this.length===0&&(this.tail=ot),this.head=ot,++this.length},rt.prototype.shift=function(){if(this.length!==0){var it=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,it}},rt.prototype.clear=function(){this.head=this.tail=null,this.length=0},rt.prototype.join=function(it){if(this.length===0)return"";for(var ot=this.head,st=""+ot.data;ot=ot.next;)st+=it+ot.data;return st},rt.prototype.concat=function(it){if(this.length===0)return tt.alloc(0);if(this.length===1)return this.head.data;for(var ot,st,at,lt=tt.allocUnsafe(it>>>0),ut=this.head,dt=0;ut;)ot=ut.data,st=lt,at=dt,ot.copy(st,at),dt+=ut.data.length,ut=ut.next;return lt},rt}(),nt&&nt.inspect&&nt.inspect.custom&&(s.exports.prototype[nt.inspect.custom]=function(){var rt=nt.inspect({length:this.length});return this.constructor.name+" "+rt})},function(s,o){},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){var tt=et(13),nt=et(3).LEVEL,rt=et(20),it=s.exports=function(){var ot=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");function st(at){this.emit("error",at,this.transport)}this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=st.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(var at=0;at"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var Tt,Bt=dt(Rt);if(St){var xt=dt(this).constructor;Tt=Reflect.construct(Bt,arguments,xt)}else Tt=Bt.apply(this,arguments);return lt(this,Tt)}}function lt(Rt,St){return!St||rt(St)!=="object"&&typeof St!="function"?ut(Rt):St}function ut(Rt){if(Rt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Rt}function dt(Rt){return(dt=Object.setPrototypeOf?Object.getPrototypeOf:function(St){return St.__proto__||Object.getPrototypeOf(St)})(Rt)}var ht=et(65),ct=et(56),pt=et(150),ft=et(160),gt=et(3).MESSAGE,yt=et(32),Ut=yt.Stream,Ft=yt.PassThrough,mt=et(20),vt=et(38)("winston:file"),At=et(18),Lt=et(188);s.exports=function(Rt){(function(Ct,kt){if(typeof kt!="function"&&kt!==null)throw new TypeError("Super expression must either be null or a function");Ct.prototype=Object.create(kt&&kt.prototype,{constructor:{value:Ct,writable:!0,configurable:!0}}),kt&&st(Ct,kt)})(xt,Rt);var St,Tt,Bt=at(xt);function xt(){var Ct,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};function Nt(Ot){for(var Jt=arguments.length,Dt=new Array(Jt>1?Jt-1:0),Et=1;Et1&&arguments[1]!==void 0?arguments[1]:function(){};if(this.silent)return Nt(),!0;if(this._drain)this._stream.once("drain",function(){kt._drain=!1,kt.log(Ct,Nt)});else{if(!this._rotate){var Ot="".concat(Ct[gt]).concat(this.eol),Jt=nt.byteLength(Ot);this._pendingSize+=Jt,this._opening&&!this.rotatedWhileOpening&&this._needsNewFile(this._size+this._pendingSize)&&(this.rotatedWhileOpening=!0);var Dt=this._stream.write(Ot,Et.bind(this));return Dt?Nt():(this._drain=!0,this._stream.once("drain",function(){kt._drain=!1,Nt()})),vt("written",Dt,this._drain),this.finishIfEnding(),Dt}this._stream.once("rotate",function(){kt._rotate=!1,kt.log(Ct,Nt)})}function Et(){var Pt=this;this._size+=Jt,this._pendingSize-=Jt,vt("logged %s %s",this._size,Ot),this.emit("logged",Ct),this._opening||this._needsNewFile()&&(this._rotate=!0,this._endStream(function(){return Pt._rotateFile()}))}}},{key:"query",value:function(Ct,kt){typeof Ct=="function"&&(kt=Ct,Ct={}),Ct=function(zt){return(zt=zt||{}).rows=zt.rows||zt.limit||10,zt.start=zt.start||0,zt.until=zt.until||new Date,rt(zt.until)!=="object"&&(zt.until=new Date(zt.until)),zt.from=zt.from||zt.until-864e5,rt(zt.from)!=="object"&&(zt.from=new Date(zt.from)),zt.order=zt.order||"desc",zt}(Ct);var Nt=ct.join(this.dirname,this.filename),Ot="",Jt=[],Dt=0,Et=ht.createReadStream(Nt,{encoding:"utf8"});function Pt(zt,en){try{var Kt=JSON.parse(zt);(function(nn){if(nn&&rt(nn)==="object"){var Zt=new Date(nn.timestamp);if(!(Ct.from&&ZtCt.until||Ct.level&&Ct.level!==nn.level))return!0}})(Kt)&&function(nn){Ct.rows&&Jt.length>=Ct.rows&&Ct.order!=="desc"?Et.readable&&Et.destroy():(Ct.fields&&(nn=Ct.fields.reduce(function(Zt,jt){return Zt[jt]=nn[jt],Zt},{})),Ct.order==="desc"&&Jt.length>=Ct.rows&&Jt.shift(),Jt.push(nn))}(Kt)}catch(nn){en||Et.emit("error",nn)}}Et.on("error",function(zt){if(Et.readable&&Et.destroy(),kt)return zt.code!=="ENOENT"?kt(zt):kt(null,Jt)}),Et.on("data",function(zt){for(var en=(zt=(Ot+zt).split(/\n+/)).length-1,Kt=0;Kt=Ct.start)&&Pt(zt[Kt]),Dt++;Ot=zt[en]}),Et.on("close",function(){Ot&&Pt(Ot,!0),Ct.order==="desc"&&(Jt=Jt.reverse()),kt&&kt(null,Jt)})}},{key:"stream",value:function(){var Ct=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},kt=ct.join(this.dirname,this.filename),Nt=new Ut,Ot={file:kt,start:Ct.start};return Nt.destroy=Lt(Ot,function(Jt,Dt){if(Jt)return Nt.emit("error",Jt);try{Nt.emit("data",Dt),Dt=JSON.parse(Dt),Nt.emit("log",Dt)}catch(Et){Nt.emit("error",Et)}}),Nt}},{key:"open",value:function(){var Ct=this;this.filename&&(this._opening||(this._opening=!0,this.stat(function(kt,Nt){if(kt)return Ct.emit("error",kt);vt("stat done: %s { size: %s }",Ct.filename,Nt),Ct._size=Nt,Ct._dest=Ct._createStream(Ct._stream),Ct._opening=!1,Ct.once("open",function(){Ct._stream.eventNames().includes("rotate")?Ct._stream.emit("rotate"):Ct._rotate=!1})})))}},{key:"stat",value:function(Ct){var kt=this,Nt=this._getFile(),Ot=ct.join(this.dirname,Nt);ht.stat(Ot,function(Jt,Dt){return Jt&&Jt.code==="ENOENT"?(vt("ENOENT ok",Ot),kt.filename=Nt,Ct(null,0)):Jt?(vt("err ".concat(Jt.code," ").concat(Ot)),Ct(Jt)):!Dt||kt._needsNewFile(Dt.size)?kt._incFile(function(){return kt.stat(Ct)}):(kt.filename=Nt,void Ct(null,Dt.size))})}},{key:"close",value:function(Ct){var kt=this;this._stream&&this._stream.end(function(){Ct&&Ct(),kt.emit("flush"),kt.emit("closed")})}},{key:"_needsNewFile",value:function(Ct){return Ct=Ct||this._size,this.maxsize&&Ct>=this.maxsize}},{key:"_onError",value:function(Ct){this.emit("error",Ct)}},{key:"_setupStream",value:function(Ct){return Ct.on("error",this._onError),Ct}},{key:"_cleanupStream",value:function(Ct){return Ct.removeListener("error",this._onError),Ct}},{key:"_rotateFile",value:function(){var Ct=this;this._incFile(function(){return Ct.open()})}},{key:"_endStream",value:function(){var Ct=this,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){};this._dest?(this._stream.unpipe(this._dest),this._dest.end(function(){Ct._cleanupStream(Ct._dest),kt()})):kt()}},{key:"_createStream",value:function(Ct){var kt=this,Nt=ct.join(this.dirname,this.filename);vt("create stream start",Nt,this.options);var Ot=ht.createWriteStream(Nt,this.options).on("error",function(Dt){return vt(Dt)}).on("close",function(){return vt("close",Ot.path,Ot.bytesWritten)}).on("open",function(){vt("file open ok",Nt),kt.emit("open",Nt),Ct.pipe(Ot),kt.rotatedWhileOpening&&(kt._stream=new Ft,kt._stream.setMaxListeners(30),kt._rotateFile(),kt.rotatedWhileOpening=!1,kt._cleanupStream(Ot),Ct.end())});if(vt("create stream ok",Nt),this.zippedArchive){var Jt=ft.createGzip();return Jt.pipe(Ot),Jt}return Ot}},{key:"_incFile",value:function(Ct){vt("_incFile",this.filename);var kt=ct.extname(this._basename),Nt=ct.basename(this._basename,kt);this.tailable?this._checkMaxFilesTailable(kt,Nt,Ct):(this._created+=1,this._checkMaxFilesIncrementing(kt,Nt,Ct))}},{key:"_getFile",value:function(){var Ct=ct.extname(this._basename),kt=ct.basename(this._basename,Ct),Nt=this.rotationFormat?this.rotationFormat():this._created,Ot=!this.tailable&&this._created?"".concat(kt).concat(Nt).concat(Ct):"".concat(kt).concat(Ct);return this.zippedArchive&&!this.tailable?"".concat(Ot,".gz"):Ot}},{key:"_checkMaxFilesIncrementing",value:function(Ct,kt,Nt){if(!this.maxFiles||this._created1;Et--)Jt.push(function(Pt,zt){var en=this,Kt="".concat(kt).concat(Pt-1).concat(Ct).concat(Dt),nn=ct.join(this.dirname,Kt);ht.exists(nn,function(Zt){if(!Zt)return zt(null);Kt="".concat(kt).concat(Pt).concat(Ct).concat(Dt),ht.rename(nn,ct.join(en.dirname,Kt),zt)})}.bind(this,Et));pt(Jt,function(){ht.rename(ct.join(Ot.dirname,"".concat(kt).concat(Ct)),ct.join(Ot.dirname,"".concat(kt,"1").concat(Ct).concat(Dt)),Nt)})}}},{key:"_createLogDirIfNotExist",value:function(Ct){ht.existsSync(Ct)||ht.mkdirSync(Ct,{recursive:!0})}}])&&ot(St.prototype,Tt),xt}(mt)}).call(this,et(15).setImmediate,et(5).Buffer)},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(it,ot){return(0,tt.default)(nt.default,it,ot)};var tt=rt(et(151)),nt=rt(et(155));function rt(it){return it&&it.__esModule?it:{default:it}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(45)),nt=it(et(25)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)((ot,st,at)=>{var lt=(0,tt.default)(st)?[]:{};ot(st,(ut,dt,ht)=>{(0,nt.default)(ut)((ct,...pt)=>{pt.length<2&&([pt]=pt),lt[dt]=pt,ht(ct)})},ut=>at(ut,lt))},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(at){return(0,rt.isAsync)(at)?function(...lt){const ut=lt.pop();return ot(at.apply(this,lt),ut)}:(0,tt.default)(function(lt,ut){var dt;try{dt=at.apply(this,lt)}catch(ht){return ut(ht)}if(dt&&typeof dt.then=="function")return ot(dt,ut);ut(null,dt)})};var tt=it(et(153)),nt=it(et(154)),rt=et(25);function it(at){return at&&at.__esModule?at:{default:at}}function ot(at,lt){return at.then(ut=>{st(lt,null,ut)},ut=>{st(lt,ut&&ut.message?ut:new Error(ut))})}function st(at,lt,ut){try{at(lt,ut)}catch(dt){(0,nt.default)(ht=>{throw ht},dt)}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){var rt=nt.pop();return tt.call(this,nt,rt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){Object.defineProperty(o,"__esModule",{value:!0}),o.fallback=st,o.wrap=at;var rt,it=o.hasSetImmediate=typeof tt=="function"&&tt,ot=o.hasNextTick=typeof nt=="object"&&typeof nt.nextTick=="function";function st(lt){setTimeout(lt,0)}function at(lt){return(ut,...dt)=>lt(()=>ut(...dt))}rt=it?tt:ot?nt.nextTick:st,o.default=at(rt)}).call(this,et(15).setImmediate,et(2))},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=rt(et(66)),nt=rt(et(30));function rt(it){return it&&it.__esModule?it:{default:it}}o.default=(0,nt.default)(function(it,ot,st){return(0,tt.default)(it,1,ot,st)},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=at(et(67)),nt=at(et(157)),rt=at(et(68)),it=et(25),ot=at(et(159)),st=at(et(46));function at(lt){return lt&<.__esModule?lt:{default:lt}}o.default=lt=>(ut,dt,ht)=>{if(ht=(0,tt.default)(ht),lt<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!ut)return ht(null);if((0,it.isAsyncGenerator)(ut))return(0,ot.default)(ut,lt,dt,ht);if((0,it.isAsyncIterable)(ut))return(0,ot.default)(ut[Symbol.asyncIterator](),lt,dt,ht);var ct=(0,nt.default)(ut),pt=!1,ft=!1,gt=0,yt=!1;function Ut(mt,vt){if(!ft)if(gt-=1,mt)pt=!0,ht(mt);else if(mt===!1)pt=!0,ft=!0;else{if(vt===st.default||pt&><=0)return pt=!0,ht(null);yt||Ft()}}function Ft(){for(yt=!0;gt=ot||dt||lt||(dt=!0,it.next().then(({value:yt,done:Ut})=>{if(!ut&&!lt){if(dt=!1,Ut)return lt=!0,void(ht<=0&&at(null));ht++,st(yt,ct,ft),ct++,pt()}}).catch(gt))}function ft(yt,Ut){if(ht-=1,!ut)return yt?gt(yt):yt===!1?(lt=!0,void(ut=!0)):Ut===rt.default||lt&&ht<=0?(lt=!0,at(null)):void pt()}function gt(yt){ut||(dt=!1,lt=!0,at(yt))}pt()};var tt,nt=et(46),rt=(tt=nt)&&tt.__esModule?tt:{default:tt};s.exports=o.default},function(s,o,et){(function(tt){var nt=et(5).Buffer,rt=et(161).Transform,it=et(169),ot=et(13),st=et(74).ok,at=et(5).kMaxLength,lt="Cannot create final Buffer. It would be larger than 0x"+at.toString(16)+" bytes";it.Z_MIN_WINDOWBITS=8,it.Z_MAX_WINDOWBITS=15,it.Z_DEFAULT_WINDOWBITS=15,it.Z_MIN_CHUNK=64,it.Z_MAX_CHUNK=1/0,it.Z_DEFAULT_CHUNK=16384,it.Z_MIN_MEMLEVEL=1,it.Z_MAX_MEMLEVEL=9,it.Z_DEFAULT_MEMLEVEL=8,it.Z_MIN_LEVEL=-1,it.Z_MAX_LEVEL=9,it.Z_DEFAULT_LEVEL=it.Z_DEFAULT_COMPRESSION;for(var ut=Object.keys(it),dt=0;dt=at?en=new RangeError(lt):zt=nt.concat(Jt,Dt),Jt=[],kt.close(),Ot(en,zt)}kt.on("error",function(zt){kt.removeListener("end",Pt),kt.removeListener("readable",Et),Ot(zt)}),kt.on("end",Pt),kt.end(Nt),Et()}function Ut(kt,Nt){if(typeof Nt=="string"&&(Nt=nt.from(Nt)),!nt.isBuffer(Nt))throw new TypeError("Not a string or buffer");var Ot=kt._finishFlushFlag;return kt._processChunk(Nt,Ot)}function Ft(kt){if(!(this instanceof Ft))return new Ft(kt);Bt.call(this,kt,it.DEFLATE)}function mt(kt){if(!(this instanceof mt))return new mt(kt);Bt.call(this,kt,it.INFLATE)}function vt(kt){if(!(this instanceof vt))return new vt(kt);Bt.call(this,kt,it.GZIP)}function At(kt){if(!(this instanceof At))return new At(kt);Bt.call(this,kt,it.GUNZIP)}function Lt(kt){if(!(this instanceof Lt))return new Lt(kt);Bt.call(this,kt,it.DEFLATERAW)}function Rt(kt){if(!(this instanceof Rt))return new Rt(kt);Bt.call(this,kt,it.INFLATERAW)}function St(kt){if(!(this instanceof St))return new St(kt);Bt.call(this,kt,it.UNZIP)}function Tt(kt){return kt===it.Z_NO_FLUSH||kt===it.Z_PARTIAL_FLUSH||kt===it.Z_SYNC_FLUSH||kt===it.Z_FULL_FLUSH||kt===it.Z_FINISH||kt===it.Z_BLOCK}function Bt(kt,Nt){var Ot=this;if(this._opts=kt=kt||{},this._chunkSize=kt.chunkSize||o.Z_DEFAULT_CHUNK,rt.call(this,kt),kt.flush&&!Tt(kt.flush))throw new Error("Invalid flush flag: "+kt.flush);if(kt.finishFlush&&!Tt(kt.finishFlush))throw new Error("Invalid flush flag: "+kt.finishFlush);if(this._flushFlag=kt.flush||it.Z_NO_FLUSH,this._finishFlushFlag=kt.finishFlush!==void 0?kt.finishFlush:it.Z_FINISH,kt.chunkSize&&(kt.chunkSizeo.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+kt.chunkSize);if(kt.windowBits&&(kt.windowBitso.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+kt.windowBits);if(kt.level&&(kt.levelo.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+kt.level);if(kt.memLevel&&(kt.memLevelo.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+kt.memLevel);if(kt.strategy&&kt.strategy!=o.Z_FILTERED&&kt.strategy!=o.Z_HUFFMAN_ONLY&&kt.strategy!=o.Z_RLE&&kt.strategy!=o.Z_FIXED&&kt.strategy!=o.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+kt.strategy);if(kt.dictionary&&!nt.isBuffer(kt.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._handle=new it.Zlib(Nt);var Jt=this;this._hadError=!1,this._handle.onerror=function(Pt,zt){xt(Jt),Jt._hadError=!0;var en=new Error(Pt);en.errno=zt,en.code=o.codes[zt],Jt.emit("error",en)};var Dt=o.Z_DEFAULT_COMPRESSION;typeof kt.level=="number"&&(Dt=kt.level);var Et=o.Z_DEFAULT_STRATEGY;typeof kt.strategy=="number"&&(Et=kt.strategy),this._handle.init(kt.windowBits||o.Z_DEFAULT_WINDOWBITS,Dt,kt.memLevel||o.Z_DEFAULT_MEMLEVEL,Et,kt.dictionary),this._buffer=nt.allocUnsafe(this._chunkSize),this._offset=0,this._level=Dt,this._strategy=Et,this.once("end",this.close),Object.defineProperty(this,"_closed",{get:function(){return!Ot._handle},configurable:!0,enumerable:!0})}function xt(kt,Nt){Nt&&tt.nextTick(Nt),kt._handle&&(kt._handle.close(),kt._handle=null)}function Ct(kt){kt.emit("close")}Object.defineProperty(o,"codes",{enumerable:!0,value:Object.freeze(ct),writable:!1}),o.Deflate=Ft,o.Inflate=mt,o.Gzip=vt,o.Gunzip=At,o.DeflateRaw=Lt,o.InflateRaw=Rt,o.Unzip=St,o.createDeflate=function(kt){return new Ft(kt)},o.createInflate=function(kt){return new mt(kt)},o.createDeflateRaw=function(kt){return new Lt(kt)},o.createInflateRaw=function(kt){return new Rt(kt)},o.createGzip=function(kt){return new vt(kt)},o.createGunzip=function(kt){return new At(kt)},o.createUnzip=function(kt){return new St(kt)},o.deflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Ft(Nt),kt,Ot)},o.deflateSync=function(kt,Nt){return Ut(new Ft(Nt),kt)},o.gzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new vt(Nt),kt,Ot)},o.gzipSync=function(kt,Nt){return Ut(new vt(Nt),kt)},o.deflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Lt(Nt),kt,Ot)},o.deflateRawSync=function(kt,Nt){return Ut(new Lt(Nt),kt)},o.unzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new St(Nt),kt,Ot)},o.unzipSync=function(kt,Nt){return Ut(new St(Nt),kt)},o.inflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new mt(Nt),kt,Ot)},o.inflateSync=function(kt,Nt){return Ut(new mt(Nt),kt)},o.gunzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new At(Nt),kt,Ot)},o.gunzipSync=function(kt,Nt){return Ut(new At(Nt),kt)},o.inflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Rt(Nt),kt,Ot)},o.inflateRawSync=function(kt,Nt){return Ut(new Rt(Nt),kt)},ot.inherits(Bt,rt),Bt.prototype.params=function(kt,Nt,Ot){if(kto.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+kt);if(Nt!=o.Z_FILTERED&&Nt!=o.Z_HUFFMAN_ONLY&&Nt!=o.Z_RLE&&Nt!=o.Z_FIXED&&Nt!=o.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+Nt);if(this._level!==kt||this._strategy!==Nt){var Jt=this;this.flush(it.Z_SYNC_FLUSH,function(){st(Jt._handle,"zlib binding closed"),Jt._handle.params(kt,Nt),Jt._hadError||(Jt._level=kt,Jt._strategy=Nt,Ot&&Ot())})}else tt.nextTick(Ot)},Bt.prototype.reset=function(){return st(this._handle,"zlib binding closed"),this._handle.reset()},Bt.prototype._flush=function(kt){this._transform(nt.alloc(0),"",kt)},Bt.prototype.flush=function(kt,Nt){var Ot=this,Jt=this._writableState;(typeof kt=="function"||kt===void 0&&!Nt)&&(Nt=kt,kt=it.Z_FULL_FLUSH),Jt.ended?Nt&&tt.nextTick(Nt):Jt.ending?Nt&&this.once("end",Nt):Jt.needDrain?Nt&&this.once("drain",function(){return Ot.flush(kt,Nt)}):(this._flushFlag=kt,this.write(nt.alloc(0),"",Nt))},Bt.prototype.close=function(kt){xt(this,kt),tt.nextTick(Ct,this)},Bt.prototype._transform=function(kt,Nt,Ot){var Jt,Dt=this._writableState,Et=(Dt.ending||Dt.ended)&&(!kt||Dt.length===kt.length);return kt===null||nt.isBuffer(kt)?this._handle?(Et?Jt=this._finishFlushFlag:(Jt=this._flushFlag,kt.length>=Dt.length&&(this._flushFlag=this._opts.flush||it.Z_NO_FLUSH)),void this._processChunk(kt,Jt,Ot)):Ot(new Error("zlib binding closed")):Ot(new Error("invalid input"))},Bt.prototype._processChunk=function(kt,Nt,Ot){var Jt=kt&&kt.length,Dt=this._chunkSize-this._offset,Et=0,Pt=this,zt=typeof Ot=="function";if(!zt){var en,Kt=[],nn=0;this.on("error",function($t){en=$t}),st(this._handle,"zlib binding closed");do var Zt=this._handle.writeSync(Nt,kt,Et,Jt,this._buffer,this._offset,Dt);while(!this._hadError&&It(Zt[0],Zt[1]));if(this._hadError)throw en;if(nn>=at)throw xt(this),new RangeError(lt);var jt=nt.concat(Kt,nn);return xt(this),jt}st(this._handle,"zlib binding closed");var Vt=this._handle.write(Nt,kt,Et,Jt,this._buffer,this._offset,Dt);function It($t,Ht){if(this&&(this.buffer=null,this.callback=null),!Pt._hadError){var qt=Dt-Ht;if(st(qt>=0,"have should not go down"),qt>0){var on=Pt._buffer.slice(Pt._offset,Pt._offset+qt);Pt._offset+=qt,zt?Pt.push(on):(Kt.push(on),nn+=on.length)}if((Ht===0||Pt._offset>=Pt._chunkSize)&&(Dt=Pt._chunkSize,Pt._offset=0,Pt._buffer=nt.allocUnsafe(Pt._chunkSize)),Ht===0){if(Et+=Jt-$t,Jt=$t,!zt)return!0;var Xt=Pt._handle.write(Nt,kt,Et,Jt,Pt._buffer,Pt._offset,Pt._chunkSize);return Xt.callback=It,void(Xt.buffer=kt)}if(!zt)return!1;Ot()}}Vt.buffer=kt,Vt.callback=It},ot.inherits(Ft,Bt),ot.inherits(mt,Bt),ot.inherits(vt,Bt),ot.inherits(At,Bt),ot.inherits(Lt,Bt),ot.inherits(Rt,Bt),ot.inherits(St,Bt)}).call(this,et(2))},function(s,o,et){s.exports=nt;var tt=et(21).EventEmitter;function nt(){tt.call(this)}et(7)(nt,tt),nt.Readable=et(31),nt.Writable=et(73),nt.Duplex=et(166),nt.Transform=et(167),nt.PassThrough=et(168),nt.Stream=nt,nt.prototype.pipe=function(rt,it){var ot=this;function st(pt){rt.writable&&rt.write(pt)===!1&&ot.pause&&ot.pause()}function at(){ot.readable&&ot.resume&&ot.resume()}ot.on("data",st),rt.on("drain",at),rt._isStdio||it&&it.end===!1||(ot.on("end",ut),ot.on("close",dt));var lt=!1;function ut(){lt||(lt=!0,rt.end())}function dt(){lt||(lt=!0,typeof rt.destroy=="function"&&rt.destroy())}function ht(pt){if(ct(),tt.listenerCount(this,"error")===0)throw pt}function ct(){ot.removeListener("data",st),rt.removeListener("drain",at),ot.removeListener("end",ut),ot.removeListener("close",dt),ot.removeListener("error",ht),rt.removeListener("error",ht),ot.removeListener("end",ct),ot.removeListener("close",ct),rt.removeListener("close",ct)}return ot.on("error",ht),rt.on("error",ht),ot.on("end",ct),ot.on("close",ct),rt.on("close",ct),rt.emit("pipe",ot),rt}},function(s,o){},function(s,o,et){var tt=et(47).Buffer,nt=et(164);s.exports=function(){function rt(){(function(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")})(this,rt),this.head=null,this.tail=null,this.length=0}return rt.prototype.push=function(it){var ot={data:it,next:null};this.length>0?this.tail.next=ot:this.head=ot,this.tail=ot,++this.length},rt.prototype.unshift=function(it){var ot={data:it,next:this.head};this.length===0&&(this.tail=ot),this.head=ot,++this.length},rt.prototype.shift=function(){if(this.length!==0){var it=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,it}},rt.prototype.clear=function(){this.head=this.tail=null,this.length=0},rt.prototype.join=function(it){if(this.length===0)return"";for(var ot=this.head,st=""+ot.data;ot=ot.next;)st+=it+ot.data;return st},rt.prototype.concat=function(it){if(this.length===0)return tt.alloc(0);if(this.length===1)return this.head.data;for(var ot,st,at,lt=tt.allocUnsafe(it>>>0),ut=this.head,dt=0;ut;)ot=ut.data,st=lt,at=dt,ot.copy(st,at),dt+=ut.data.length,ut=ut.next;return lt},rt}(),nt&&nt.inspect&&nt.inspect.custom&&(s.exports.prototype[nt.inspect.custom]=function(){var rt=nt.inspect({length:this.length});return this.constructor.name+" "+rt})},function(s,o){},function(s,o,et){s.exports=rt;var tt=et(72),nt=et(17);function rt(it){if(!(this instanceof rt))return new rt(it);tt.call(this,it)}nt.inherits=et(7),nt.inherits(rt,tt),rt.prototype._transform=function(it,ot,st){st(null,it)}},function(s,o,et){s.exports=et(23)},function(s,o,et){s.exports=et(31).Transform},function(s,o,et){s.exports=et(31).PassThrough},function(s,o,et){(function(tt,nt){var rt=et(74),it=et(171),ot=et(172),st=et(175),at=et(178);for(var lt in at)o[lt]=at[lt];o.NONE=0,o.DEFLATE=1,o.INFLATE=2,o.GZIP=3,o.GUNZIP=4,o.DEFLATERAW=5,o.INFLATERAW=6,o.UNZIP=7;function ut(dt){if(typeof dt!="number"||dto.UNZIP)throw new TypeError("Bad argument");this.dictionary=null,this.err=0,this.flush=0,this.init_done=!1,this.level=0,this.memLevel=0,this.mode=dt,this.strategy=0,this.windowBits=0,this.write_in_progress=!1,this.pending_close=!1,this.gzip_id_bytes_read=0}ut.prototype.close=function(){this.write_in_progress?this.pending_close=!0:(this.pending_close=!1,rt(this.init_done,"close before init"),rt(this.mode<=o.UNZIP),this.mode===o.DEFLATE||this.mode===o.GZIP||this.mode===o.DEFLATERAW?ot.deflateEnd(this.strm):this.mode!==o.INFLATE&&this.mode!==o.GUNZIP&&this.mode!==o.INFLATERAW&&this.mode!==o.UNZIP||st.inflateEnd(this.strm),this.mode=o.NONE,this.dictionary=null)},ut.prototype.write=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!0,dt,ht,ct,pt,ft,gt,yt)},ut.prototype.writeSync=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!1,dt,ht,ct,pt,ft,gt,yt)},ut.prototype._write=function(dt,ht,ct,pt,ft,gt,yt,Ut){if(rt.equal(arguments.length,8),rt(this.init_done,"write before init"),rt(this.mode!==o.NONE,"already finalized"),rt.equal(!1,this.write_in_progress,"write already in progress"),rt.equal(!1,this.pending_close,"close is pending"),this.write_in_progress=!0,rt.equal(!1,ht===void 0,"must provide flush value"),this.write_in_progress=!0,ht!==o.Z_NO_FLUSH&&ht!==o.Z_PARTIAL_FLUSH&&ht!==o.Z_SYNC_FLUSH&&ht!==o.Z_FULL_FLUSH&&ht!==o.Z_FINISH&&ht!==o.Z_BLOCK)throw new Error("Invalid flush value");if(ct==null&&(ct=tt.alloc(0),ft=0,pt=0),this.strm.avail_in=ft,this.strm.input=ct,this.strm.next_in=pt,this.strm.avail_out=Ut,this.strm.output=gt,this.strm.next_out=yt,this.flush=ht,!dt)return this._process(),this._checkError()?this._afterSync():void 0;var Ft=this;return nt.nextTick(function(){Ft._process(),Ft._after()}),this},ut.prototype._afterSync=function(){var dt=this.strm.avail_out,ht=this.strm.avail_in;return this.write_in_progress=!1,[ht,dt]},ut.prototype._process=function(){var dt=null;switch(this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflate(this.strm,this.flush);break;case o.UNZIP:switch(this.strm.avail_in>0&&(dt=this.strm.next_in),this.gzip_id_bytes_read){case 0:if(dt===null)break;if(this.strm.input[dt]!==31){this.mode=o.INFLATE;break}if(this.gzip_id_bytes_read=1,dt++,this.strm.avail_in===1)break;case 1:if(dt===null)break;this.strm.input[dt]===139?(this.gzip_id_bytes_read=2,this.mode=o.GUNZIP):this.mode=o.INFLATE;break;default:throw new Error("invalid number of gzip magic number bytes read")}case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:for(this.err=st.inflate(this.strm,this.flush),this.err===o.Z_NEED_DICT&&this.dictionary&&(this.err=st.inflateSetDictionary(this.strm,this.dictionary),this.err===o.Z_OK?this.err=st.inflate(this.strm,this.flush):this.err===o.Z_DATA_ERROR&&(this.err=o.Z_NEED_DICT));this.strm.avail_in>0&&this.mode===o.GUNZIP&&this.err===o.Z_STREAM_END&&this.strm.next_in[0]!==0;)this.reset(),this.err=st.inflate(this.strm,this.flush);break;default:throw new Error("Unknown mode "+this.mode)}},ut.prototype._checkError=function(){switch(this.err){case o.Z_OK:case o.Z_BUF_ERROR:if(this.strm.avail_out!==0&&this.flush===o.Z_FINISH)return this._error("unexpected end of file"),!1;break;case o.Z_STREAM_END:break;case o.Z_NEED_DICT:return this.dictionary==null?this._error("Missing dictionary"):this._error("Bad dictionary"),!1;default:return this._error("Zlib error"),!1}return!0},ut.prototype._after=function(){if(this._checkError()){var dt=this.strm.avail_out,ht=this.strm.avail_in;this.write_in_progress=!1,this.callback(ht,dt),this.pending_close&&this.close()}},ut.prototype._error=function(dt){this.strm.msg&&(dt=this.strm.msg),this.onerror(dt,this.err),this.write_in_progress=!1,this.pending_close&&this.close()},ut.prototype.init=function(dt,ht,ct,pt,ft){rt(arguments.length===4||arguments.length===5,"init(windowBits, level, memLevel, strategy, [dictionary])"),rt(dt>=8&&dt<=15,"invalid windowBits"),rt(ht>=-1&&ht<=9,"invalid compression level"),rt(ct>=1&&ct<=9,"invalid memlevel"),rt(pt===o.Z_FILTERED||pt===o.Z_HUFFMAN_ONLY||pt===o.Z_RLE||pt===o.Z_FIXED||pt===o.Z_DEFAULT_STRATEGY,"invalid strategy"),this._init(ht,dt,ct,pt,ft),this._setDictionary()},ut.prototype.params=function(){throw new Error("deflateParams Not supported")},ut.prototype.reset=function(){this._reset(),this._setDictionary()},ut.prototype._init=function(dt,ht,ct,pt,ft){switch(this.level=dt,this.windowBits=ht,this.memLevel=ct,this.strategy=pt,this.flush=o.Z_NO_FLUSH,this.err=o.Z_OK,this.mode!==o.GZIP&&this.mode!==o.GUNZIP||(this.windowBits+=16),this.mode===o.UNZIP&&(this.windowBits+=32),this.mode!==o.DEFLATERAW&&this.mode!==o.INFLATERAW||(this.windowBits=-1*this.windowBits),this.strm=new it,this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflateInit2(this.strm,this.level,o.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:case o.UNZIP:this.err=st.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}this.err!==o.Z_OK&&this._error("Init error"),this.dictionary=ft,this.write_in_progress=!1,this.init_done=!0},ut.prototype._setDictionary=function(){if(this.dictionary!=null){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:this.err=ot.deflateSetDictionary(this.strm,this.dictionary)}this.err!==o.Z_OK&&this._error("Failed to set dictionary")}},ut.prototype._reset=function(){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:case o.GZIP:this.err=ot.deflateReset(this.strm);break;case o.INFLATE:case o.INFLATERAW:case o.GUNZIP:this.err=st.inflateReset(this.strm)}this.err!==o.Z_OK&&this._error("Failed to reset stream")},o.Zlib=ut}).call(this,et(5).Buffer,et(2))},function(s,o,et){var tt=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable;function it(ot){if(ot==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(ot)}s.exports=function(){try{if(!Object.assign)return!1;var ot=new String("abc");if(ot[5]="de",Object.getOwnPropertyNames(ot)[0]==="5")return!1;for(var st={},at=0;at<10;at++)st["_"+String.fromCharCode(at)]=at;if(Object.getOwnPropertyNames(st).map(function(ut){return st[ut]}).join("")!=="0123456789")return!1;var lt={};return"abcdefghijklmnopqrst".split("").forEach(function(ut){lt[ut]=ut}),Object.keys(Object.assign({},lt)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}()?Object.assign:function(ot,st){for(var at,lt,ut=it(ot),dt=1;dt4?9:0)}function ut(Rt){for(var St=Rt.length;--St>=0;)Rt[St]=0}function dt(Rt){var St=Rt.state,Tt=St.pending;Tt>Rt.avail_out&&(Tt=Rt.avail_out),Tt!==0&&(nt.arraySet(Rt.output,St.pending_buf,St.pending_out,Tt,Rt.next_out),Rt.next_out+=Tt,St.pending_out+=Tt,Rt.total_out+=Tt,Rt.avail_out-=Tt,St.pending-=Tt,St.pending===0&&(St.pending_out=0))}function ht(Rt,St){rt._tr_flush_block(Rt,Rt.block_start>=0?Rt.block_start:-1,Rt.strstart-Rt.block_start,St),Rt.block_start=Rt.strstart,dt(Rt.strm)}function ct(Rt,St){Rt.pending_buf[Rt.pending++]=St}function pt(Rt,St){Rt.pending_buf[Rt.pending++]=St>>>8&255,Rt.pending_buf[Rt.pending++]=255&St}function ft(Rt,St){var Tt,Bt,xt=Rt.max_chain_length,Ct=Rt.strstart,kt=Rt.prev_length,Nt=Rt.nice_match,Ot=Rt.strstart>Rt.w_size-262?Rt.strstart-(Rt.w_size-262):0,Jt=Rt.window,Dt=Rt.w_mask,Et=Rt.prev,Pt=Rt.strstart+258,zt=Jt[Ct+kt-1],en=Jt[Ct+kt];Rt.prev_length>=Rt.good_match&&(xt>>=2),Nt>Rt.lookahead&&(Nt=Rt.lookahead);do if(Jt[(Tt=St)+kt]===en&&Jt[Tt+kt-1]===zt&&Jt[Tt]===Jt[Ct]&&Jt[++Tt]===Jt[Ct+1]){Ct+=2,Tt++;do;while(Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Ctkt){if(Rt.match_start=St,kt=Bt,Bt>=Nt)break;zt=Jt[Ct+kt-1],en=Jt[Ct+kt]}}while((St=Et[St&Dt])>Ot&&--xt!=0);return kt<=Rt.lookahead?kt:Rt.lookahead}function gt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt,Et=Rt.w_size;do{if(xt=Rt.window_size-Rt.lookahead-Rt.strstart,Rt.strstart>=Et+(Et-262)){nt.arraySet(Rt.window,Rt.window,Et,Et,0),Rt.match_start-=Et,Rt.strstart-=Et,Rt.block_start-=Et,St=Tt=Rt.hash_size;do Bt=Rt.head[--St],Rt.head[St]=Bt>=Et?Bt-Et:0;while(--Tt);St=Tt=Et;do Bt=Rt.prev[--St],Rt.prev[St]=Bt>=Et?Bt-Et:0;while(--Tt);xt+=Et}if(Rt.strm.avail_in===0)break;if(kt=Rt.strm,Nt=Rt.window,Ot=Rt.strstart+Rt.lookahead,Jt=xt,Dt=void 0,(Dt=kt.avail_in)>Jt&&(Dt=Jt),Tt=Dt===0?0:(kt.avail_in-=Dt,nt.arraySet(Nt,kt.input,kt.next_in,Dt,Ot),kt.state.wrap===1?kt.adler=it(kt.adler,Nt,Dt,Ot):kt.state.wrap===2&&(kt.adler=ot(kt.adler,Nt,Dt,Ot)),kt.next_in+=Dt,kt.total_in+=Dt,Dt),Rt.lookahead+=Tt,Rt.lookahead+Rt.insert>=3)for(Ct=Rt.strstart-Rt.insert,Rt.ins_h=Rt.window[Ct],Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<=3)if(Bt=rt._tr_tally(Rt,Rt.strstart-Rt.match_start,Rt.match_length-3),Rt.lookahead-=Rt.match_length,Rt.match_length<=Rt.max_lazy_match&&Rt.lookahead>=3){Rt.match_length--;do Rt.strstart++,Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<4096)&&(Rt.match_length=2)),Rt.prev_length>=3&&Rt.match_length<=Rt.prev_length){xt=Rt.strstart+Rt.lookahead-3,Bt=rt._tr_tally(Rt,Rt.strstart-1-Rt.prev_match,Rt.prev_length-3),Rt.lookahead-=Rt.prev_length-1,Rt.prev_length-=2;do++Rt.strstart<=xt&&(Rt.ins_h=(Rt.ins_h<15&&(kt=2,Bt-=16),xt<1||xt>9||Tt!==8||Bt<8||Bt>15||St<0||St>9||Ct<0||Ct>4)return at(Rt,-2);Bt===8&&(Bt=9);var Nt=new mt;return Rt.state=Nt,Nt.strm=Rt,Nt.wrap=kt,Nt.gzhead=null,Nt.w_bits=Bt,Nt.w_size=1<Rt.pending_buf_size-5&&(Tt=Rt.pending_buf_size-5);;){if(Rt.lookahead<=1){if(gt(Rt),Rt.lookahead===0&&St===0)return 1;if(Rt.lookahead===0)break}Rt.strstart+=Rt.lookahead,Rt.lookahead=0;var Bt=Rt.block_start+Tt;if((Rt.strstart===0||Rt.strstart>=Bt)&&(Rt.lookahead=Rt.strstart-Bt,Rt.strstart=Bt,ht(Rt,!1),Rt.strm.avail_out===0)||Rt.strstart-Rt.block_start>=Rt.w_size-262&&(ht(Rt,!1),Rt.strm.avail_out===0))return 1}return Rt.insert=0,St===4?(ht(Rt,!0),Rt.strm.avail_out===0?3:4):(Rt.strstart>Rt.block_start&&(ht(Rt,!1),Rt.strm.avail_out),1)}),new Ft(4,4,8,4,yt),new Ft(4,5,16,8,yt),new Ft(4,6,32,32,yt),new Ft(4,4,16,16,Ut),new Ft(8,16,32,32,Ut),new Ft(8,16,128,128,Ut),new Ft(8,32,128,256,Ut),new Ft(32,128,258,1024,Ut),new Ft(32,258,258,4096,Ut)],o.deflateInit=function(Rt,St){return Lt(Rt,St,8,15,8,0)},o.deflateInit2=Lt,o.deflateReset=At,o.deflateResetKeep=vt,o.deflateSetHeader=function(Rt,St){return Rt&&Rt.state?Rt.state.wrap!==2?-2:(Rt.state.gzhead=St,0):-2},o.deflate=function(Rt,St){var Tt,Bt,xt,Ct;if(!Rt||!Rt.state||St>5||St<0)return Rt?at(Rt,-2):-2;if(Bt=Rt.state,!Rt.output||!Rt.input&&Rt.avail_in!==0||Bt.status===666&&St!==4)return at(Rt,Rt.avail_out===0?-5:-2);if(Bt.strm=Rt,Tt=Bt.last_flush,Bt.last_flush=St,Bt.status===42)if(Bt.wrap===2)Rt.adler=0,ct(Bt,31),ct(Bt,139),ct(Bt,8),Bt.gzhead?(ct(Bt,(Bt.gzhead.text?1:0)+(Bt.gzhead.hcrc?2:0)+(Bt.gzhead.extra?4:0)+(Bt.gzhead.name?8:0)+(Bt.gzhead.comment?16:0)),ct(Bt,255&Bt.gzhead.time),ct(Bt,Bt.gzhead.time>>8&255),ct(Bt,Bt.gzhead.time>>16&255),ct(Bt,Bt.gzhead.time>>24&255),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,255&Bt.gzhead.os),Bt.gzhead.extra&&Bt.gzhead.extra.length&&(ct(Bt,255&Bt.gzhead.extra.length),ct(Bt,Bt.gzhead.extra.length>>8&255)),Bt.gzhead.hcrc&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending,0)),Bt.gzindex=0,Bt.status=69):(ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,3),Bt.status=113);else{var kt=8+(Bt.w_bits-8<<4)<<8;kt|=(Bt.strategy>=2||Bt.level<2?0:Bt.level<6?1:Bt.level===6?2:3)<<6,Bt.strstart!==0&&(kt|=32),kt+=31-kt%31,Bt.status=113,pt(Bt,kt),Bt.strstart!==0&&(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),Rt.adler=1}if(Bt.status===69)if(Bt.gzhead.extra){for(xt=Bt.pending;Bt.gzindex<(65535&Bt.gzhead.extra.length)&&(Bt.pending!==Bt.pending_buf_size||(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending!==Bt.pending_buf_size));)ct(Bt,255&Bt.gzhead.extra[Bt.gzindex]),Bt.gzindex++;Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Bt.gzindex===Bt.gzhead.extra.length&&(Bt.gzindex=0,Bt.status=73)}else Bt.status=73;if(Bt.status===73)if(Bt.gzhead.name){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.gzindex=0,Bt.status=91)}else Bt.status=91;if(Bt.status===91)if(Bt.gzhead.comment){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.status=103)}else Bt.status=103;if(Bt.status===103&&(Bt.gzhead.hcrc?(Bt.pending+2>Bt.pending_buf_size&&dt(Rt),Bt.pending+2<=Bt.pending_buf_size&&(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),Rt.adler=0,Bt.status=113)):Bt.status=113),Bt.pending!==0){if(dt(Rt),Rt.avail_out===0)return Bt.last_flush=-1,0}else if(Rt.avail_in===0&<(St)<=lt(Tt)&&St!==4)return at(Rt,-5);if(Bt.status===666&&Rt.avail_in!==0)return at(Rt,-5);if(Rt.avail_in!==0||Bt.lookahead!==0||St!==0&&Bt.status!==666){var Nt=Bt.strategy===2?function(Ot,Jt){for(var Dt;;){if(Ot.lookahead===0&&(gt(Ot),Ot.lookahead===0)){if(Jt===0)return 1;break}if(Ot.match_length=0,Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++,Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Jt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):Bt.strategy===3?function(Ot,Jt){for(var Dt,Et,Pt,zt,en=Ot.window;;){if(Ot.lookahead<=258){if(gt(Ot),Ot.lookahead<=258&&Jt===0)return 1;if(Ot.lookahead===0)break}if(Ot.match_length=0,Ot.lookahead>=3&&Ot.strstart>0&&(Et=en[Pt=Ot.strstart-1])===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]){zt=Ot.strstart+258;do;while(Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&PtOt.lookahead&&(Ot.match_length=Ot.lookahead)}if(Ot.match_length>=3?(Dt=rt._tr_tally(Ot,1,Ot.match_length-3),Ot.lookahead-=Ot.match_length,Ot.strstart+=Ot.match_length,Ot.match_length=0):(Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++),Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Jt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):tt[Bt.level].func(Bt,St);if(Nt!==3&&Nt!==4||(Bt.status=666),Nt===1||Nt===3)return Rt.avail_out===0&&(Bt.last_flush=-1),0;if(Nt===2&&(St===1?rt._tr_align(Bt):St!==5&&(rt._tr_stored_block(Bt,0,0,!1),St===3&&(ut(Bt.head),Bt.lookahead===0&&(Bt.strstart=0,Bt.block_start=0,Bt.insert=0))),dt(Rt),Rt.avail_out===0))return Bt.last_flush=-1,0}return St!==4?0:Bt.wrap<=0?1:(Bt.wrap===2?(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),ct(Bt,Rt.adler>>16&255),ct(Bt,Rt.adler>>24&255),ct(Bt,255&Rt.total_in),ct(Bt,Rt.total_in>>8&255),ct(Bt,Rt.total_in>>16&255),ct(Bt,Rt.total_in>>24&255)):(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),dt(Rt),Bt.wrap>0&&(Bt.wrap=-Bt.wrap),Bt.pending!==0?0:1)},o.deflateEnd=function(Rt){var St;return Rt&&Rt.state?(St=Rt.state.status)!==42&&St!==69&&St!==73&&St!==91&&St!==103&&St!==113&&St!==666?at(Rt,-2):(Rt.state=null,St===113?at(Rt,-3):0):-2},o.deflateSetDictionary=function(Rt,St){var Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt=St.length;if(!Rt||!Rt.state||(Ct=(Tt=Rt.state).wrap)===2||Ct===1&&Tt.status!==42||Tt.lookahead)return-2;for(Ct===1&&(Rt.adler=it(Rt.adler,St,Dt,0)),Tt.wrap=0,Dt>=Tt.w_size&&(Ct===0&&(ut(Tt.head),Tt.strstart=0,Tt.block_start=0,Tt.insert=0),Jt=new nt.Buf8(Tt.w_size),nt.arraySet(Jt,St,Dt-Tt.w_size,Tt.w_size,0),St=Jt,Dt=Tt.w_size),kt=Rt.avail_in,Nt=Rt.next_in,Ot=Rt.input,Rt.avail_in=Dt,Rt.next_in=0,Rt.input=St,gt(Tt);Tt.lookahead>=3;){Bt=Tt.strstart,xt=Tt.lookahead-2;do Tt.ins_h=(Tt.ins_h<=0;)Et[Pt]=0}var rt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],it=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ot=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],st=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],at=new Array(576);nt(at);var lt=new Array(60);nt(lt);var ut=new Array(512);nt(ut);var dt=new Array(256);nt(dt);var ht=new Array(29);nt(ht);var ct,pt,ft,gt=new Array(30);function yt(Et,Pt,zt,en,Kt){this.static_tree=Et,this.extra_bits=Pt,this.extra_base=zt,this.elems=en,this.max_length=Kt,this.has_stree=Et&&Et.length}function Ut(Et,Pt){this.dyn_tree=Et,this.max_code=0,this.stat_desc=Pt}function Ft(Et){return Et<256?ut[Et]:ut[256+(Et>>>7)]}function mt(Et,Pt){Et.pending_buf[Et.pending++]=255&Pt,Et.pending_buf[Et.pending++]=Pt>>>8&255}function vt(Et,Pt,zt){Et.bi_valid>16-zt?(Et.bi_buf|=Pt<>16-Et.bi_valid,Et.bi_valid+=zt-16):(Et.bi_buf|=Pt<>>=1,zt<<=1;while(--Pt>0);return zt>>>1}function Rt(Et,Pt,zt){var en,Kt,nn=new Array(16),Zt=0;for(en=1;en<=15;en++)nn[en]=Zt=Zt+zt[en-1]<<1;for(Kt=0;Kt<=Pt;Kt++){var jt=Et[2*Kt+1];jt!==0&&(Et[2*Kt]=Lt(nn[jt]++,jt))}}function St(Et){var Pt;for(Pt=0;Pt<286;Pt++)Et.dyn_ltree[2*Pt]=0;for(Pt=0;Pt<30;Pt++)Et.dyn_dtree[2*Pt]=0;for(Pt=0;Pt<19;Pt++)Et.bl_tree[2*Pt]=0;Et.dyn_ltree[512]=1,Et.opt_len=Et.static_len=0,Et.last_lit=Et.matches=0}function Tt(Et){Et.bi_valid>8?mt(Et,Et.bi_buf):Et.bi_valid>0&&(Et.pending_buf[Et.pending++]=Et.bi_buf),Et.bi_buf=0,Et.bi_valid=0}function Bt(Et,Pt,zt,en){var Kt=2*Pt,nn=2*zt;return Et[Kt]>1;zt>=1;zt--)xt(Et,nn,zt);Kt=Vt;do zt=Et.heap[1],Et.heap[1]=Et.heap[Et.heap_len--],xt(Et,nn,1),en=Et.heap[1],Et.heap[--Et.heap_max]=zt,Et.heap[--Et.heap_max]=en,nn[2*Kt]=nn[2*zt]+nn[2*en],Et.depth[Kt]=(Et.depth[zt]>=Et.depth[en]?Et.depth[zt]:Et.depth[en])+1,nn[2*zt+1]=nn[2*en+1]=Kt,Et.heap[1]=Kt++,xt(Et,nn,1);while(Et.heap_len>=2);Et.heap[--Et.heap_max]=Et.heap[1],function($t,Ht){var qt,on,Xt,dn,_n,Fn,Un=Ht.dyn_tree,On=Ht.max_code,gn=Ht.stat_desc.static_tree,hn=Ht.stat_desc.has_stree,wn=Ht.stat_desc.extra_bits,Zn=Ht.stat_desc.extra_base,Pn=Ht.stat_desc.max_length,$n=0;for(dn=0;dn<=15;dn++)$t.bl_count[dn]=0;for(Un[2*$t.heap[$t.heap_max]+1]=0,qt=$t.heap_max+1;qt<573;qt++)(dn=Un[2*Un[2*(on=$t.heap[qt])+1]+1]+1)>Pn&&(dn=Pn,$n++),Un[2*on+1]=dn,on>On||($t.bl_count[dn]++,_n=0,on>=Zn&&(_n=wn[on-Zn]),Fn=Un[2*on],$t.opt_len+=Fn*(dn+_n),hn&&($t.static_len+=Fn*(gn[2*on+1]+_n)));if($n!==0){do{for(dn=Pn-1;$t.bl_count[dn]===0;)dn--;$t.bl_count[dn]--,$t.bl_count[dn+1]+=2,$t.bl_count[Pn]--,$n-=2}while($n>0);for(dn=Pn;dn!==0;dn--)for(on=$t.bl_count[dn];on!==0;)(Xt=$t.heap[--qt])>On||(Un[2*Xt+1]!==dn&&($t.opt_len+=(dn-Un[2*Xt+1])*Un[2*Xt],Un[2*Xt+1]=dn),on--)}}(Et,Pt),Rt(nn,It,Et.bl_count)}function Nt(Et,Pt,zt){var en,Kt,nn=-1,Zt=Pt[1],jt=0,Vt=7,It=4;for(Zt===0&&(Vt=138,It=3),Pt[2*(zt+1)+1]=65535,en=0;en<=zt;en++)Kt=Zt,Zt=Pt[2*(en+1)+1],++jt>=7;Kt<30;Kt++)for(gt[Kt]=nn<<7,Pt=0;Pt<1<0?(Et.strm.data_type===2&&(Et.strm.data_type=function(jt){var Vt,It=4093624447;for(Vt=0;Vt<=31;Vt++,It>>>=1)if(1&It&&jt.dyn_ltree[2*Vt]!==0)return 0;if(jt.dyn_ltree[18]!==0||jt.dyn_ltree[20]!==0||jt.dyn_ltree[26]!==0)return 1;for(Vt=32;Vt<256;Vt++)if(jt.dyn_ltree[2*Vt]!==0)return 1;return 0}(Et)),kt(Et,Et.l_desc),kt(Et,Et.d_desc),Zt=function(jt){var Vt;for(Nt(jt,jt.dyn_ltree,jt.l_desc.max_code),Nt(jt,jt.dyn_dtree,jt.d_desc.max_code),kt(jt,jt.bl_desc),Vt=18;Vt>=3&&jt.bl_tree[2*st[Vt]+1]===0;Vt--);return jt.opt_len+=3*(Vt+1)+5+5+4,Vt}(Et),Kt=Et.opt_len+3+7>>>3,(nn=Et.static_len+3+7>>>3)<=Kt&&(Kt=nn)):Kt=nn=zt+5,zt+4<=Kt&&Pt!==-1?Dt(Et,Pt,zt,en):Et.strategy===4||nn===Kt?(vt(Et,2+(en?1:0),3),Ct(Et,at,lt)):(vt(Et,4+(en?1:0),3),function(jt,Vt,It,$t){var Ht;for(vt(jt,Vt-257,5),vt(jt,It-1,5),vt(jt,$t-4,4),Ht=0;Ht<$t;Ht++)vt(jt,jt.bl_tree[2*st[Ht]+1],3);Ot(jt,jt.dyn_ltree,Vt-1),Ot(jt,jt.dyn_dtree,It-1)}(Et,Et.l_desc.max_code+1,Et.d_desc.max_code+1,Zt+1),Ct(Et,Et.dyn_ltree,Et.dyn_dtree)),St(Et),en&&Tt(Et)},o._tr_tally=function(Et,Pt,zt){return Et.pending_buf[Et.d_buf+2*Et.last_lit]=Pt>>>8&255,Et.pending_buf[Et.d_buf+2*Et.last_lit+1]=255&Pt,Et.pending_buf[Et.l_buf+Et.last_lit]=255&zt,Et.last_lit++,Pt===0?Et.dyn_ltree[2*zt]++:(Et.matches++,Pt--,Et.dyn_ltree[2*(dt[zt]+256+1)]++,Et.dyn_dtree[2*Ft(Pt)]++),Et.last_lit===Et.lit_bufsize-1},o._tr_align=function(Et){vt(Et,2,3),At(Et,256,at),function(Pt){Pt.bi_valid===16?(mt(Pt,Pt.bi_buf),Pt.bi_buf=0,Pt.bi_valid=0):Pt.bi_valid>=8&&(Pt.pending_buf[Pt.pending++]=255&Pt.bi_buf,Pt.bi_buf>>=8,Pt.bi_valid-=8)}(Et)}},function(s,o,et){s.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(s,o,et){var tt=et(37),nt=et(75),rt=et(76),it=et(176),ot=et(177);function st(Ut){return(Ut>>>24&255)+(Ut>>>8&65280)+((65280&Ut)<<8)+((255&Ut)<<24)}function at(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new tt.Buf16(320),this.work=new tt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function lt(Ut){var Ft;return Ut&&Ut.state?(Ft=Ut.state,Ut.total_in=Ut.total_out=Ft.total=0,Ut.msg="",Ft.wrap&&(Ut.adler=1&Ft.wrap),Ft.mode=1,Ft.last=0,Ft.havedict=0,Ft.dmax=32768,Ft.head=null,Ft.hold=0,Ft.bits=0,Ft.lencode=Ft.lendyn=new tt.Buf32(852),Ft.distcode=Ft.distdyn=new tt.Buf32(592),Ft.sane=1,Ft.back=-1,0):-2}function ut(Ut){var Ft;return Ut&&Ut.state?((Ft=Ut.state).wsize=0,Ft.whave=0,Ft.wnext=0,lt(Ut)):-2}function dt(Ut,Ft){var mt,vt;return Ut&&Ut.state?(vt=Ut.state,Ft<0?(mt=0,Ft=-Ft):(mt=1+(Ft>>4),Ft<48&&(Ft&=15)),Ft&&(Ft<8||Ft>15)?-2:(vt.window!==null&&vt.wbits!==Ft&&(vt.window=null),vt.wrap=mt,vt.wbits=Ft,ut(Ut))):-2}function ht(Ut,Ft){var mt,vt;return Ut?(vt=new at,Ut.state=vt,vt.window=null,(mt=dt(Ut,Ft))!==0&&(Ut.state=null),mt):-2}var ct,pt,ft=!0;function gt(Ut){if(ft){var Ft;for(ct=new tt.Buf32(512),pt=new tt.Buf32(32),Ft=0;Ft<144;)Ut.lens[Ft++]=8;for(;Ft<256;)Ut.lens[Ft++]=9;for(;Ft<280;)Ut.lens[Ft++]=7;for(;Ft<288;)Ut.lens[Ft++]=8;for(ot(1,Ut.lens,0,288,ct,0,Ut.work,{bits:9}),Ft=0;Ft<32;)Ut.lens[Ft++]=5;ot(2,Ut.lens,0,32,pt,0,Ut.work,{bits:5}),ft=!1}Ut.lencode=ct,Ut.lenbits=9,Ut.distcode=pt,Ut.distbits=5}function yt(Ut,Ft,mt,vt){var At,Lt=Ut.state;return Lt.window===null&&(Lt.wsize=1<=Lt.wsize?(tt.arraySet(Lt.window,Ft,mt-Lt.wsize,Lt.wsize,0),Lt.wnext=0,Lt.whave=Lt.wsize):((At=Lt.wsize-Lt.wnext)>vt&&(At=vt),tt.arraySet(Lt.window,Ft,mt-vt,At,Lt.wnext),(vt-=At)?(tt.arraySet(Lt.window,Ft,mt-vt,vt,0),Lt.wnext=vt,Lt.whave=Lt.wsize):(Lt.wnext+=At,Lt.wnext===Lt.wsize&&(Lt.wnext=0),Lt.whave>>8&255,mt.check=rt(mt.check,$t,2,0),Bt=0,xt=0,mt.mode=2;break}if(mt.flags=0,mt.head&&(mt.head.done=!1),!(1&mt.wrap)||(((255&Bt)<<8)+(Bt>>8))%31){Ut.msg="incorrect header check",mt.mode=30;break}if((15&Bt)!=8){Ut.msg="unknown compression method",mt.mode=30;break}if(xt-=4,nn=8+(15&(Bt>>>=4)),mt.wbits===0)mt.wbits=nn;else if(nn>mt.wbits){Ut.msg="invalid window size",mt.mode=30;break}mt.dmax=1<>8&1),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=3;case 3:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,$t[2]=Bt>>>16&255,$t[3]=Bt>>>24&255,mt.check=rt(mt.check,$t,4,0)),Bt=0,xt=0,mt.mode=4;case 4:for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>8),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=5;case 5:if(1024&mt.flags){for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0}else mt.head&&(mt.head.extra=null);mt.mode=6;case 6:if(1024&mt.flags&&((Nt=mt.length)>St&&(Nt=St),Nt&&(mt.head&&(nn=mt.head.extra_len-mt.length,mt.head.extra||(mt.head.extra=new Array(mt.head.extra_len)),tt.arraySet(mt.head.extra,vt,Lt,Nt,nn)),512&mt.flags&&(mt.check=rt(mt.check,vt,Nt,Lt)),St-=Nt,Lt+=Nt,mt.length-=Nt),mt.length))break e;mt.length=0,mt.mode=7;case 7:if(2048&mt.flags){if(St===0)break e;Nt=0;do nn=vt[Lt+Nt++],mt.head&&nn&&mt.length<65536&&(mt.head.name+=String.fromCharCode(nn));while(nn&&Nt>9&1,mt.head.done=!0),Ut.adler=mt.check=0,mt.mode=12;break;case 10:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=7&xt,xt-=7&xt,mt.mode=27;break}for(;xt<3;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=1)){case 0:mt.mode=14;break;case 1:if(gt(mt),mt.mode=20,Ft===6){Bt>>>=2,xt-=2;break e}break;case 2:mt.mode=17;break;case 3:Ut.msg="invalid block type",mt.mode=30}Bt>>>=2,xt-=2;break;case 14:for(Bt>>>=7&xt,xt-=7&xt;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>16^65535)){Ut.msg="invalid stored block lengths",mt.mode=30;break}if(mt.length=65535&Bt,Bt=0,xt=0,mt.mode=15,Ft===6)break e;case 15:mt.mode=16;case 16:if(Nt=mt.length){if(Nt>St&&(Nt=St),Nt>Tt&&(Nt=Tt),Nt===0)break e;tt.arraySet(At,vt,Lt,Nt,Rt),St-=Nt,Lt+=Nt,Tt-=Nt,Rt+=Nt,mt.length-=Nt;break}mt.mode=12;break;case 17:for(;xt<14;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=5,xt-=5,mt.ndist=1+(31&Bt),Bt>>>=5,xt-=5,mt.ncode=4+(15&Bt),Bt>>>=4,xt-=4,mt.nlen>286||mt.ndist>30){Ut.msg="too many length or distance symbols",mt.mode=30;break}mt.have=0,mt.mode=18;case 18:for(;mt.have>>=3,xt-=3}for(;mt.have<19;)mt.lens[Ht[mt.have++]]=0;if(mt.lencode=mt.lendyn,mt.lenbits=7,jt={bits:mt.lenbits},Zt=ot(0,mt.lens,0,19,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid code lengths set",mt.mode=30;break}mt.have=0,mt.mode=19;case 19:for(;mt.have>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=Dt,xt-=Dt,mt.lens[mt.have++]=Pt;else{if(Pt===16){for(Vt=Dt+2;xt>>=Dt,xt-=Dt,mt.have===0){Ut.msg="invalid bit length repeat",mt.mode=30;break}nn=mt.lens[mt.have-1],Nt=3+(3&Bt),Bt>>>=2,xt-=2}else if(Pt===17){for(Vt=Dt+3;xt>>=Dt)),Bt>>>=3,xt-=3}else{for(Vt=Dt+7;xt>>=Dt)),Bt>>>=7,xt-=7}if(mt.have+Nt>mt.nlen+mt.ndist){Ut.msg="invalid bit length repeat",mt.mode=30;break}for(;Nt--;)mt.lens[mt.have++]=nn}}if(mt.mode===30)break;if(mt.lens[256]===0){Ut.msg="invalid code -- missing end-of-block",mt.mode=30;break}if(mt.lenbits=9,jt={bits:mt.lenbits},Zt=ot(1,mt.lens,0,mt.nlen,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid literal/lengths set",mt.mode=30;break}if(mt.distbits=6,mt.distcode=mt.distdyn,jt={bits:mt.distbits},Zt=ot(2,mt.lens,mt.nlen,mt.ndist,mt.distcode,0,mt.work,jt),mt.distbits=jt.bits,Zt){Ut.msg="invalid distances set",mt.mode=30;break}if(mt.mode=20,Ft===6)break e;case 20:mt.mode=21;case 21:if(St>=6&&Tt>=258){Ut.next_out=Rt,Ut.avail_out=Tt,Ut.next_in=Lt,Ut.avail_in=St,mt.hold=Bt,mt.bits=xt,it(Ut,kt),Rt=Ut.next_out,At=Ut.output,Tt=Ut.avail_out,Lt=Ut.next_in,vt=Ut.input,St=Ut.avail_in,Bt=mt.hold,xt=mt.bits,mt.mode===12&&(mt.back=-1);break}for(mt.back=0;Et=(It=mt.lencode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,mt.length=Pt,Et===0){mt.mode=26;break}if(32&Et){mt.back=-1,mt.mode=12;break}if(64&Et){Ut.msg="invalid literal/length code",mt.mode=30;break}mt.extra=15&Et,mt.mode=22;case 22:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}mt.was=mt.length,mt.mode=23;case 23:for(;Et=(It=mt.distcode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,64&Et){Ut.msg="invalid distance code",mt.mode=30;break}mt.offset=Pt,mt.extra=15&Et,mt.mode=24;case 24:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}if(mt.offset>mt.dmax){Ut.msg="invalid distance too far back",mt.mode=30;break}mt.mode=25;case 25:if(Tt===0)break e;if(Nt=kt-Tt,mt.offset>Nt){if((Nt=mt.offset-Nt)>mt.whave&&mt.sane){Ut.msg="invalid distance too far back",mt.mode=30;break}Nt>mt.wnext?(Nt-=mt.wnext,Ot=mt.wsize-Nt):Ot=mt.wnext-Nt,Nt>mt.length&&(Nt=mt.length),Jt=mt.window}else Jt=At,Ot=Rt-mt.offset,Nt=mt.length;Nt>Tt&&(Nt=Tt),Tt-=Nt,mt.length-=Nt;do At[Rt++]=Jt[Ot++];while(--Nt);mt.length===0&&(mt.mode=21);break;case 26:if(Tt===0)break e;At[Rt++]=mt.length,Tt--,mt.mode=21;break;case 27:if(mt.wrap){for(;xt<32;){if(St===0)break e;St--,Bt|=vt[Lt++]<>>=At=vt>>>24,gt-=At,(At=vt>>>16&255)===0)xt[st++]=65535&vt;else{if(!(16&At)){if(!(64&At)){vt=yt[(65535&vt)+(ft&(1<>>=At,gt-=At),gt<15&&(ft+=Bt[it++]<>>=At=vt>>>24,gt-=At,!(16&(At=vt>>>16&255))){if(!(64&At)){vt=Ut[(65535&vt)+(ft&(1<ut){tt.msg="invalid distance too far back",rt.mode=30;break e}if(ft>>>=At,gt-=At,Rt>(At=st-at)){if((At=Rt-At)>ht&&rt.sane){tt.msg="invalid distance too far back",rt.mode=30;break e}if(St=0,Tt=pt,ct===0){if(St+=dt-At,At2;)xt[st++]=Tt[St++],xt[st++]=Tt[St++],xt[st++]=Tt[St++],Lt-=3;Lt&&(xt[st++]=Tt[St++],Lt>1&&(xt[st++]=Tt[St++]))}else{St=st-Rt;do xt[st++]=xt[St++],xt[st++]=xt[St++],xt[st++]=xt[St++],Lt-=3;while(Lt>2);Lt&&(xt[st++]=xt[St++],Lt>1&&(xt[st++]=xt[St++]))}break}}break}}while(it>3,ft&=(1<<(gt-=Lt<<3))-1,tt.next_in=it,tt.next_out=st,tt.avail_in=it=1&&zt[xt]===0;xt--);if(Ct>xt&&(Ct=xt),xt===0)return dt[ht++]=20971520,dt[ht++]=20971520,pt.bits=1,0;for(Bt=1;Bt0&&(st===0||xt!==1))return-1;for(en[1]=0,St=1;St<15;St++)en[St+1]=en[St]+zt[St];for(Tt=0;Tt852||st===2&&Jt>592)return 1;for(;;){vt=St-Nt,ct[Tt]mt?(At=Kt[nn+ct[Tt]],Lt=Et[Pt+ct[Tt]]):(At=96,Lt=0),ft=1<>Nt)+(gt-=ft)]=vt<<24|At<<16|Lt|0;while(gt!==0);for(ft=1<>=1;if(ft!==0?(Dt&=ft-1,Dt+=ft):Dt=0,Tt++,--zt[St]==0){if(St===xt)break;St=at[lt+ct[Tt]]}if(St>Ct&&(Dt&Ut)!==yt){for(Nt===0&&(Nt=Ct),Ft+=Bt,Ot=1<<(kt=St-Nt);kt+Nt852||st===2&&Jt>592)return 1;dt[yt=Dt&Ut]=Ct<<24|kt<<16|Ft-ht|0}}return Dt!==0&&(dt[Ft+Dt]=St-Nt<<24|64<<16|0),pt.bits=Ct,0}},function(s,o,et){s.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(s,o){},function(s,o,et){function tt(at,lt){var ut=Object.keys(at);if(Object.getOwnPropertySymbols){var dt=Object.getOwnPropertySymbols(at);lt&&(dt=dt.filter(function(ht){return Object.getOwnPropertyDescriptor(at,ht).enumerable})),ut.push.apply(ut,dt)}return ut}function nt(at,lt,ut){return lt in at?Object.defineProperty(at,lt,{value:ut,enumerable:!0,configurable:!0,writable:!0}):at[lt]=ut,at}function rt(at,lt){for(var ut=0;ut0?this.tail.next=ht:this.head=ht,this.tail=ht,++this.length}},{key:"unshift",value:function(dt){var ht={data:dt,next:this.head};this.length===0&&(this.tail=ht),this.head=ht,++this.length}},{key:"shift",value:function(){if(this.length!==0){var dt=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,dt}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(dt){if(this.length===0)return"";for(var ht=this.head,ct=""+ht.data;ht=ht.next;)ct+=dt+ht.data;return ct}},{key:"concat",value:function(dt){if(this.length===0)return it.alloc(0);for(var ht,ct,pt,ft=it.allocUnsafe(dt>>>0),gt=this.head,yt=0;gt;)ht=gt.data,ct=ft,pt=yt,it.prototype.copy.call(ht,ct,pt),yt+=gt.data.length,gt=gt.next;return ft}},{key:"consume",value:function(dt,ht){var ct;return dtft.length?ft.length:dt;if(gt===ft.length?pt+=ft:pt+=ft.slice(0,dt),(dt-=gt)==0){gt===ft.length?(++ct,ht.next?this.head=ht.next:this.head=this.tail=null):(this.head=ht,ht.data=ft.slice(gt));break}++ct}return this.length-=ct,pt}},{key:"_getBuffer",value:function(dt){var ht=it.allocUnsafe(dt),ct=this.head,pt=1;for(ct.data.copy(ht),dt-=ct.data.length;ct=ct.next;){var ft=ct.data,gt=dt>ft.length?ft.length:dt;if(ft.copy(ht,ht.length-dt,0,gt),(dt-=gt)==0){gt===ft.length?(++pt,ct.next?this.head=ct.next:this.head=this.tail=null):(this.head=ct,ct.data=ft.slice(gt));break}++pt}return this.length-=pt,ht}},{key:st,value:function(dt,ht){return ot(this,function(ct){for(var pt=1;pt0,function(mt){pt||(pt=mt),mt&>.forEach(at),Ft||(gt.forEach(at),ft(pt))})});return ht.reduce(lt)}},function(s,o,et){var tt=et(187)(function nt(rt,it){return(it=it||{}).namespace=rt,it.prod=!0,it.dev=!1,it.force||nt.force?nt.yep(it):nt.nope(it)});s.exports=tt},function(s,o){var et=[],tt=[],nt=function(){};function rt(ct){return!~et.indexOf(ct)&&(et.push(ct),!0)}function it(ct){nt=ct}function ot(ct){for(var pt=[],ft=0;ftst.start)&&(at?at(null,ht):dt.emit("line",ht)),pt++,ht=""),setTimeout(yt,1e3);var mt=ut.write(lt.slice(0,Ft));at||dt.emit("data",mt);for(var vt=(mt=(ht+mt).split(/\n+/)).length-1,At=0;Atst.start)&&(at?at(null,mt[At]):dt.emit("line",mt[At])),pt++;return ht=mt[vt],ct+=Ft,yt()});nt.close(gt,ot)})()}),at?dt.destroy:dt}}).call(this,et(5).Buffer)},function(s,o,et){(function(tt,nt){function rt(Ut){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Ft){return typeof Ft}:function(Ft){return Ft&&typeof Symbol=="function"&&Ft.constructor===Symbol&&Ft!==Symbol.prototype?"symbol":typeof Ft})(Ut)}function it(Ut,Ft){var mt=Object.keys(Ut);if(Object.getOwnPropertySymbols){var vt=Object.getOwnPropertySymbols(Ut);Ft&&(vt=vt.filter(function(At){return Object.getOwnPropertyDescriptor(Ut,At).enumerable})),mt.push.apply(mt,vt)}return mt}function ot(Ut){for(var Ft=1;Ft"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var mt,vt=ct(Ut);if(Ft){var At=ct(this).constructor;mt=Reflect.construct(vt,arguments,At)}else mt=vt.apply(this,arguments);return ht(this,mt)}}function ht(Ut,Ft){return!Ft||rt(Ft)!=="object"&&typeof Ft!="function"?function(mt){if(mt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return mt}(Ut):Ft}function ct(Ut){return(ct=Object.setPrototypeOf?Object.getPrototypeOf:function(Ft){return Ft.__proto__||Object.getPrototypeOf(Ft)})(Ut)}var pt=et(83),ft=et(200),gt=et(32).Stream,yt=et(20);s.exports=function(Ut){(function(Lt,Rt){if(typeof Rt!="function"&&Rt!==null)throw new TypeError("Super expression must either be null or a function");Lt.prototype=Object.create(Rt&&Rt.prototype,{constructor:{value:Lt,writable:!0,configurable:!0}}),Rt&&ut(Lt,Rt)})(At,Ut);var Ft,mt,vt=dt(At);function At(){var Lt,Rt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return at(this,At),(Lt=vt.call(this,Rt)).options=Rt,Lt.name=Rt.name||"http",Lt.ssl=!!Rt.ssl,Lt.host=Rt.host||"localhost",Lt.port=Rt.port,Lt.auth=Rt.auth,Lt.path=Rt.path||"",Lt.agent=Rt.agent,Lt.headers=Rt.headers||{},Lt.headers["content-type"]="application/json",Lt.port||(Lt.port=Lt.ssl?443:80),Lt}return Ft=At,(mt=[{key:"log",value:function(Lt,Rt){var St=this;this._request(Lt,function(Tt,Bt){Bt&&Bt.statusCode!==200&&(Tt=new Error("Invalid HTTP Status Code: ".concat(Bt.statusCode))),Tt?St.emit("warn",Tt):St.emit("logged",Lt)}),Rt&&tt(Rt)}},{key:"query",value:function(Lt,Rt){typeof Lt=="function"&&(Rt=Lt,Lt={}),(Lt={method:"query",params:this.normalizeQuery(Lt)}).params.path&&(Lt.path=Lt.params.path,delete Lt.params.path),Lt.params.auth&&(Lt.auth=Lt.params.auth,delete Lt.params.auth),this._request(Lt,function(St,Tt,Bt){if(Tt&&Tt.statusCode!==200&&(St=new Error("Invalid HTTP Status Code: ".concat(Tt.statusCode))),St)return Rt(St);if(typeof Bt=="string")try{Bt=JSON.parse(Bt)}catch(xt){return Rt(xt)}Rt(null,Bt)})}},{key:"stream",value:function(){var Lt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Rt=new gt;(Lt={method:"stream",params:Lt}).params.path&&(Lt.path=Lt.params.path,delete Lt.params.path),Lt.params.auth&&(Lt.auth=Lt.params.auth,delete Lt.params.auth);var St="",Tt=this._request(Lt);return Rt.destroy=function(){return Tt.destroy()},Tt.on("data",function(Bt){for(var xt=(Bt=(St+Bt).split(/\n+/)).length-1,Ct=0;Ct= 0x80 (not a basic code point)","invalid-input":"Invalid input"},ct=Math.floor,pt=String.fromCharCode;function ft(Rt){throw new RangeError(ht[Rt])}function gt(Rt,St){for(var Tt=Rt.length,Bt=[];Tt--;)Bt[Tt]=St(Rt[Tt]);return Bt}function yt(Rt,St){var Tt=Rt.split("@"),Bt="";return Tt.length>1&&(Bt=Tt[0]+"@",Rt=Tt[1]),Bt+gt((Rt=Rt.replace(dt,".")).split("."),St).join(".")}function Ut(Rt){for(var St,Tt,Bt=[],xt=0,Ct=Rt.length;xt=55296&&St<=56319&&xt65535&&(Tt+=pt((St-=65536)>>>10&1023|55296),St=56320|1023&St),Tt+=pt(St)}).join("")}function mt(Rt,St){return Rt+22+75*(Rt<26)-((St!=0)<<5)}function vt(Rt,St,Tt){var Bt=0;for(Rt=Tt?ct(Rt/700):Rt>>1,Rt+=ct(Rt/St);Rt>455;Bt+=36)Rt=ct(Rt/35);return ct(Bt+36*Rt/(Rt+38))}function At(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt,Et,Pt=[],zt=Rt.length,en=0,Kt=128,nn=72;for((Tt=Rt.lastIndexOf("-"))<0&&(Tt=0),Bt=0;Bt=128&&ft("not-basic"),Pt.push(Rt.charCodeAt(Bt));for(xt=Tt>0?Tt+1:0;xt=zt&&ft("invalid-input"),((Ot=(Et=Rt.charCodeAt(xt++))-48<10?Et-22:Et-65<26?Et-65:Et-97<26?Et-97:36)>=36||Ot>ct((at-en)/kt))&&ft("overflow"),en+=Ot*kt,!(Ot<(Jt=Nt<=nn?1:Nt>=nn+26?26:Nt-nn));Nt+=36)kt>ct(at/(Dt=36-Jt))&&ft("overflow"),kt*=Dt;nn=vt(en-Ct,St=Pt.length+1,Ct==0),ct(en/St)>at-Kt&&ft("overflow"),Kt+=ct(en/St),en%=St,Pt.splice(en++,0,Kt)}return Ft(Pt)}function Lt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt,Et,Pt,zt,en,Kt,nn=[];for(Pt=(Rt=Ut(Rt)).length,St=128,Tt=0,Ct=72,kt=0;kt=St&&Etct((at-Tt)/(zt=Bt+1))&&ft("overflow"),Tt+=(Nt-St)*zt,St=Nt,kt=0;ktat&&ft("overflow"),Et==St){for(Ot=Tt,Jt=36;!(Ot<(Dt=Jt<=Ct?1:Jt>=Ct+26?26:Jt-Ct));Jt+=36)Kt=Ot-Dt,en=36-Dt,nn.push(pt(mt(Dt+Kt%en,0))),Ot=ct(Kt/en);nn.push(pt(mt(Ot,0))),Ct=vt(Tt,zt,Bt==xt),Tt=0,++Bt}++Tt,++St}return nn.join("")}st={version:"1.4.1",ucs2:{decode:Ut,encode:Ft},decode:At,encode:Lt,toASCII:function(Rt){return yt(Rt,function(St){return ut.test(St)?"xn--"+Lt(St):St})},toUnicode:function(Rt){return yt(Rt,function(St){return lt.test(St)?At(St.slice(4).toLowerCase()):St})}},(rt=function(){return st}.call(o,et,o,tt))===void 0||(tt.exports=rt)})()}).call(this,et(195)(s),et(6))},function(s,o){s.exports=function(et){return et.webpackPolyfill||(et.deprecate=function(){},et.paths=[],et.children||(et.children=[]),Object.defineProperty(et,"loaded",{enumerable:!0,get:function(){return et.l}}),Object.defineProperty(et,"id",{enumerable:!0,get:function(){return et.i}}),et.webpackPolyfill=1),et}},function(s,o,et){s.exports={isString:function(tt){return typeof tt=="string"},isObject:function(tt){return typeof tt=="object"&&tt!==null},isNull:function(tt){return tt===null},isNullOrUndefined:function(tt){return tt==null}}},function(s,o,et){o.decode=o.parse=et(198),o.encode=o.stringify=et(199)},function(s,o,et){function tt(rt,it){return Object.prototype.hasOwnProperty.call(rt,it)}s.exports=function(rt,it,ot,st){it=it||"&",ot=ot||"=";var at={};if(typeof rt!="string"||rt.length===0)return at;var lt=/\+/g;rt=rt.split(it);var ut=1e3;st&&typeof st.maxKeys=="number"&&(ut=st.maxKeys);var dt=rt.length;ut>0&&dt>ut&&(dt=ut);for(var ht=0;ht=0?(ct=yt.substr(0,Ut),pt=yt.substr(Ut+1)):(ct=yt,pt=""),ft=decodeURIComponent(ct),gt=decodeURIComponent(pt),tt(at,ft)?nt(at[ft])?at[ft].push(gt):at[ft]=[at[ft],gt]:at[ft]=gt}return at};var nt=Array.isArray||function(rt){return Object.prototype.toString.call(rt)==="[object Array]"}},function(s,o,et){var tt=function(ot){switch(typeof ot){case"string":return ot;case"boolean":return ot?"true":"false";case"number":return isFinite(ot)?ot:"";default:return""}};s.exports=function(ot,st,at,lt){return st=st||"&",at=at||"=",ot===null&&(ot=void 0),typeof ot=="object"?rt(it(ot),function(ut){var dt=encodeURIComponent(tt(ut))+at;return nt(ot[ut])?rt(ot[ut],function(ht){return dt+encodeURIComponent(tt(ht))}).join(st):dt+encodeURIComponent(tt(ot[ut]))}).join(st):lt?encodeURIComponent(tt(lt))+at+encodeURIComponent(tt(ot)):""};var nt=Array.isArray||function(ot){return Object.prototype.toString.call(ot)==="[object Array]"};function rt(ot,st){if(ot.map)return ot.map(st);for(var at=[],lt=0;lt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var gt,yt=lt(pt);if(ft){var Ut=lt(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return at(this,gt)}}function at(pt,ft){return!ft||nt(ft)!=="object"&&typeof ft!="function"?function(gt){if(gt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return gt}(pt):ft}function lt(pt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(ft){return ft.__proto__||Object.getPrototypeOf(ft)})(pt)}var ut=et(87),dt=et(3).MESSAGE,ht=et(18),ct=et(20);s.exports=function(pt){(function(Ft,mt){if(typeof mt!="function"&&mt!==null)throw new TypeError("Super expression must either be null or a function");Ft.prototype=Object.create(mt&&mt.prototype,{constructor:{value:Ft,writable:!0,configurable:!0}}),mt&&ot(Ft,mt)})(Ut,pt);var ft,gt,yt=st(Ut);function Ut(){var Ft,mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(rt(this,Ut),Ft=yt.call(this,mt),!mt.stream||!ut(mt.stream))throw new Error("options.stream is required.");return Ft._stream=mt.stream,Ft._stream.setMaxListeners(1/0),Ft.isObjectMode=mt.stream._writableState.objectMode,Ft.eol=mt.eol||ht.EOL,Ft}return ft=Ut,(gt=[{key:"log",value:function(Ft,mt){var vt=this;if(tt(function(){return vt.emit("logged",Ft)}),this.isObjectMode)return this._stream.write(Ft),void(mt&&mt());this._stream.write("".concat(Ft[dt]).concat(this.eol)),mt&&mt()}}])&&it(ft.prototype,gt),Ut}(ct)}).call(this,et(15).setImmediate)},function(s,o,et){(function(tt){function nt(Bt,xt,Ct){return xt in Bt?Object.defineProperty(Bt,xt,{value:Ct,enumerable:!0,configurable:!0,writable:!0}):Bt[xt]=Ct,Bt}function rt(Bt){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(xt){return typeof xt}:function(xt){return xt&&typeof Symbol=="function"&&xt.constructor===Symbol&&xt!==Symbol.prototype?"symbol":typeof xt})(Bt)}function it(Bt,xt){for(var Ct=0;Ct"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var Ct,kt=lt(Bt);if(xt){var Nt=lt(this).constructor;Ct=Reflect.construct(kt,arguments,Nt)}else Ct=kt.apply(this,arguments);return at(this,Ct)}}function at(Bt,xt){return!xt||rt(xt)!=="object"&&typeof xt!="function"?function(Ct){if(Ct===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ct}(Bt):xt}function lt(Bt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(xt){return xt.__proto__||Object.getPrototypeOf(xt)})(Bt)}var ut=et(32),dt=ut.Stream,ht=ut.Transform,ct=et(51),pt=et(3),ft=pt.LEVEL,gt=pt.SPLAT,yt=et(87),Ut=et(89),Ft=et(93),mt=et(206),vt=et(207),At=et(61).warn,Lt=et(50),Rt=/%[scdjifoO%]/g,St=function(Bt){(function(Ot,Jt){if(typeof Jt!="function"&&Jt!==null)throw new TypeError("Super expression must either be null or a function");Ot.prototype=Object.create(Jt&&Jt.prototype,{constructor:{value:Ot,writable:!0,configurable:!0}}),Jt&&ot(Ot,Jt)})(Nt,Bt);var xt,Ct,kt=st(Nt);function Nt(Ot){var Jt;return function(Dt,Et){if(!(Dt instanceof Et))throw new TypeError("Cannot call a class as a function")}(this,Nt),(Jt=kt.call(this,{objectMode:!0})).configure(Ot),Jt}return xt=Nt,(Ct=[{key:"child",value:function(Ot){var Jt=this;return Object.create(Jt,{write:{value:function(Dt){var Et=Object.assign({},Ot,Dt);Dt instanceof Error&&(Et.stack=Dt.stack,Et.message=Dt.message),Jt.write(Et)}}})}},{key:"configure",value:function(){var Ot=this,Jt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Dt=Jt.silent,Et=Jt.format,Pt=Jt.defaultMeta,zt=Jt.levels,en=Jt.level,Kt=en===void 0?"info":en,nn=Jt.exitOnError,Zt=nn===void 0||nn,jt=Jt.transports,Vt=Jt.colors,It=Jt.emitErrs,$t=Jt.formatters,Ht=Jt.padLevels,qt=Jt.rewriters,on=Jt.stripColors,Xt=Jt.exceptionHandlers,dn=Jt.rejectionHandlers;if(this.transports.length&&this.clear(),this.silent=Dt,this.format=Et||this.format||et(208)(),this.defaultMeta=Pt||null,this.levels=zt||this.levels||Lt.npm.levels,this.level=Kt,this.exceptions=new Ut(this),this.rejections=new Ft(this),this.profilers={},this.exitOnError=Zt,jt&&(jt=Array.isArray(jt)?jt:[jt]).forEach(function(_n){return Ot.add(_n)}),Vt||It||$t||Ht||qt||on)throw new Error(["{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.","Use a custom winston.format(function) instead.","See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md"].join(` +`));Xt&&this.exceptions.handle(Xt),dn&&this.rejections.handle(dn)}},{key:"isLevelEnabled",value:function(Ot){var Jt=this,Dt=Tt(this.levels,Ot);if(Dt===null)return!1;var Et=Tt(this.levels,this.level);return Et!==null&&(this.transports&&this.transports.length!==0?this.transports.findIndex(function(Pt){var zt=Tt(Jt.levels,Pt.level);return zt===null&&(zt=Et),zt>=Dt})!==-1:Et>=Dt)}},{key:"log",value:function(Ot,Jt){for(var Dt,Et,Pt=arguments.length,zt=new Array(Pt>2?Pt-2:0),en=2;en2?new mt({transport:Ot}):Ot;if(!Jt._writableState||!Jt._writableState.objectMode)throw new Error("Transports must WritableStreams in objectMode. Set { objectMode: true }.");return this._onEvent("error",Jt),this._onEvent("warn",Jt),this.pipe(Jt),Ot.handleExceptions&&this.exceptions.handle(),Ot.handleRejections&&this.rejections.handle(),this}},{key:"remove",value:function(Ot){if(!Ot)return this;var Jt=Ot;return(!yt(Ot)||Ot.log.length>2)&&(Jt=this.transports.filter(function(Dt){return Dt.transport===Ot})[0]),Jt&&this.unpipe(Jt),this}},{key:"clear",value:function(){return this.unpipe(),this}},{key:"close",value:function(){return this.clear(),this.emit("close"),this}},{key:"setLevels",value:function(){At.deprecated("setLevels")}},{key:"query",value:function(Ot,Jt){typeof Ot=="function"&&(Jt=Ot,Ot={}),Ot=Ot||{};var Dt={},Et=Object.assign({},Ot.query||{});ct(this.transports.filter(function(Pt){return!!Pt.query}),function(Pt,zt){(function(en,Kt){Ot.query&&typeof en.formatQuery=="function"&&(Ot.query=en.formatQuery(Et)),en.query(Ot,function(nn,Zt){if(nn)return Kt(nn);typeof en.formatResults=="function"&&(Zt=en.formatResults(Zt,Ot.format)),Kt(null,Zt)})})(Pt,function(en,Kt){zt&&((Kt=en||Kt)&&(Dt[Pt.name]=Kt),zt()),zt=null})},function(){return Jt(null,Dt)})}},{key:"stream",value:function(){var Ot=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Jt=new dt,Dt=[];return Jt._streams=Dt,Jt.destroy=function(){for(var Et=Dt.length;Et--;)Dt[Et].destroy()},this.transports.filter(function(Et){return!!Et.stream}).forEach(function(Et){var Pt=Et.stream(Ot);Pt&&(Dt.push(Pt),Pt.on("log",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Jt.emit("log",zt)}),Pt.on("error",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Jt.emit("error",zt)}))}),Jt}},{key:"startTimer",value:function(){return new vt(this)}},{key:"profile",value:function(Ot){var Jt=Date.now();if(this.profilers[Ot]){var Dt=this.profilers[Ot];delete this.profilers[Ot];for(var Et=arguments.length,Pt=new Array(Et>1?Et-1:0),zt=1;zttt(nt,it)},s.exports=o.default},function(s,o,et){var tt=Object.prototype.toString;s.exports=function(nt){if(typeof nt.displayName=="string"&&nt.constructor.name)return nt.displayName;if(typeof nt.name=="string"&&nt.name)return nt.name;if(typeof nt=="object"&&nt.constructor&&typeof nt.constructor.name=="string")return nt.constructor.name;var rt=nt.toString(),it=tt.call(nt).slice(8,-1);return(rt=it==="Function"?rt.substring(rt.indexOf("(")+1,rt.indexOf(")")):it)||"anonymous"}},function(s,o,et){const tt=et(13),{LEVEL:nt}=et(3),rt=et(20),it=s.exports=function(ot={}){if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=function(st){this.emit("error",st,this.transport)}.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(let at=0;at(st[rt]=(at.stable?it.stableStringify:it)(st,at.replacer||ot,at.space),st))}).call(this,et(5).Buffer)},function(s,o,et){class tt extends Error{constructor(rt){super(`Format functions must be synchronous taking a two arguments: (info, opts) Found: ${rt.toString().split(` `)[0]} -`),Error.captureStackTrace(this,tt)}}s.exports=nt=>{if(nt.length>2)throw new tt(nt);function rt(ot={}){this.options=ot}function it(ot){return new rt(ot)}return rt.prototype.transform=nt,it.Format=rt,it}},function(s,o,et){function tt(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")}function nt(it,ot){for(var st=0;st0&&arguments[0]!==void 0?arguments[0]:{};tt(this,it),this.loggers=new Map,this.options=at}var ot,st;return ot=it,(st=[{key:"add",value:function(at,lt){var ut=this;if(!this.loggers.has(at)){var dt=(lt=Object.assign({},lt||this.options)).transports||this.options.transports;lt.transports=dt?dt.slice():[];var ht=rt(lt);ht.on("close",function(){return ut._delete(at)}),this.loggers.set(at,ht)}return this.loggers.get(at)}},{key:"get",value:function(at,lt){return this.add(at,lt)}},{key:"has",value:function(at){return!!this.loggers.has(at)}},{key:"close",value:function(at){var lt=this;if(at)return this._removeLogger(at);this.loggers.forEach(function(ut,dt){return lt._removeLogger(dt)})}},{key:"_removeLogger",value:function(at){this.loggers.has(at)&&(this.loggers.get(at).close(),this._delete(at))}},{key:"_delete",value:function(at){this.loggers.delete(at)}}])&&nt(ot.prototype,st),it}()},function(s,o,et){(function(tt){const nt=et(52),rt=/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/;s.exports=function(it,ot,st,at){let lt,ut,dt=!1,ht=!1;const ct=et(94);function pt(yt){at(ot,yt)}function ft(yt,Ut){let Ft=`"${ot}" ${Ut}`;throw yt&&(Ft=`${Ft}`),ut&&(Ft=`${Ft}. An example of a valid value would be: ${ut}`),new nt(Ft)}const gt={convertFromBase64:function(){return pt("marking for base64 conversion"),dt=!0,gt},default:function(yt){if(typeof yt=="number")lt=yt.toString();else if(Array.isArray(yt)||typeof yt=="object"&&yt!==null)lt=JSON.stringify(yt);else{if(typeof yt!="string")throw new nt("values passed to default() must be of Number, String, Array, or Object type");lt=yt}return pt(`setting default value to "${lt}"`),gt},required:function(yt){return yt===void 0?(pt("marked as required"),ht=!0):(pt(`setting required flag to ${yt}`),ht=yt),gt},example:function(yt){return ut=yt,gt}};return Object.entries({...ct,...st}).forEach(([yt,Ut])=>{gt[yt]=function(Ft){return function(){let mt=it[ot];if(pt(`will be read from the environment using "${Ft.name}" accessor`),mt===void 0)if(lt===void 0&&ht)pt("was not found in the environment, but is required to be set"),ft(void 0,"is a required variable, but it was not set");else{if(lt===void 0)return void pt("was not found in the environment, but is not required. returning undefined");pt(`was not found in the environment, parsing default value "${lt}" instead`),mt=lt}ht&&(pt("verifying variable value is not an empty string"),mt.trim().length===0&&ft(void 0,"is a required variable, but its value was empty")),dt&&(pt("verifying variable is a valid base64 string"),mt.match(rt)||ft(mt,"should be a valid base64 string if using convertFromBase64"),pt("converting from base64 to utf8 string"),mt=tt.from(mt,"base64").toString());const vt=[mt].concat(Array.prototype.slice.call(arguments));try{pt(`passing value "${mt}" to "${Ft.name}" accessor`);const At=Ft.apply(Ft,vt);return pt(`parsed successfully, returning ${At}`),At}catch(At){ft(mt,At.message)}}}(Ut)}),gt}}).call(this,et(5).Buffer)},function(s,o,et){const tt=et(33);s.exports=function(nt,rt){return rt=rt||",",nt.length?tt(nt).split(rt).filter(Boolean):[]}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(nt!=="false"&&nt!=="true")throw new Error('should be either "true", "false", "TRUE", or "FALSE"');return nt!=="false"}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(["false","0","true","1"].indexOf(nt)===-1)throw new Error('should be either "true", "false", "TRUE", "FALSE", 1, or 0');return!(nt==="0"||nt==="false")}},function(s,o,et){const tt=et(95);s.exports=function(nt){var rt=tt(nt);if(rt>65535)throw new Error("cannot assign a port number greater than 65535");return rt}},function(s,o,et){const tt=et(33);s.exports=function(nt,rt){const it=tt(nt);if(rt.indexOf(it)<0)throw new Error(`should be one of [${rt.join(", ")}]`);return it}},function(s,o,et){const tt=et(54);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative float");return rt}},function(s,o,et){const tt=et(54);s.exports=function(nt){const rt=tt(nt);if(rt<0)throw new Error("should be a positive float");return rt}},function(s,o,et){const tt=et(53);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative integer");return rt}},function(s,o,et){const tt=et(55);s.exports=function(nt){var rt=tt(nt);if(!Array.isArray(rt))throw new Error("should be a parseable JSON Array");return rt}},function(s,o,et){const tt=et(55);s.exports=function(nt){var rt=tt(nt);if(Array.isArray(rt))throw new Error("should be a parseable JSON Object");return rt}},function(s,o,et){s.exports=function(tt,nt){try{RegExp(void 0,nt)}catch{throw new Error("invalid regexp flags")}try{return new RegExp(tt,nt)}catch{throw new Error("should be a valid regexp")}}},function(s,o,et){const tt=et(96);s.exports=function(nt){return tt(nt).toString()}},function(s,o,et){const tt=et(33),nt=/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021\u0023-\u005b\u005d-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021-\u005a\u0053-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])+)\])$/;s.exports=function(rt){const it=tt(rt);if(!nt.test(it))throw new Error("should be a valid email address");return it}},function(s,o,et){s.exports=function(tt,nt){return function(rt,it){nt&&nt.match(/prod|production/)||tt(`env-var (${rt}): ${it}`)}}},function(s,o,et){(function(tt){(function(){var nt,rt,it,ot,st,at;typeof performance<"u"&&performance!==null&&performance.now?s.exports=function(){return performance.now()}:tt!=null&&tt.hrtime?(s.exports=function(){return(nt()-st)/1e6},rt=tt.hrtime,ot=(nt=function(){var lt;return 1e9*(lt=rt())[0]+lt[1]})(),at=1e9*tt.uptime(),st=ot-at):Date.now?(s.exports=function(){return Date.now()-it},it=Date.now()):(s.exports=function(){return new Date().getTime()-it},it=new Date().getTime())}).call(this)}).call(this,et(2))},function(s,o,et){(function(tt){(function(nt){function rt(ot){if((ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextEncoder': The encoding label provided ('"+ot+"') is invalid.")}function it(ot,st){if(st=st===void 0?{fatal:!1}:st,(ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextDecoder': The encoding label provided ('"+ot+"') is invalid.");if(st.fatal)throw Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.")}if(nt.TextEncoder&&nt.TextDecoder)return!1;Object.defineProperty(rt.prototype,"encoding",{value:"utf-8"}),rt.prototype.encode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to encode: the 'stream' option is unsupported.");st=0;for(var at=ot.length,lt=0,ut=Math.max(32,at+(at>>1)+7),dt=new Uint8Array(ut>>3<<3);st=ht){if(st=ht)continue}if(lt+4>dt.length&&(ut+=8,ut=(ut*=1+st/ot.length*2)>>3<<3,(ct=new Uint8Array(ut)).set(dt),dt=ct),(4294967168&ht)==0)dt[lt++]=ht;else{if(!(4294965248&ht))dt[lt++]=ht>>6&31|192;else if(!(4294901760&ht))dt[lt++]=ht>>12&15|224,dt[lt++]=ht>>6&63|128;else{if(4292870144&ht)continue;dt[lt++]=ht>>18&7|240,dt[lt++]=ht>>12&63|128,dt[lt++]=ht>>6&63|128}dt[lt++]=63&ht|128}}return dt.slice(0,lt)},Object.defineProperty(it.prototype,"encoding",{value:"utf-8"}),Object.defineProperty(it.prototype,"fatal",{value:!1}),Object.defineProperty(it.prototype,"ignoreBOM",{value:!1}),it.prototype.decode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to decode: the 'stream' option is unsupported.");st=0;for(var at=(ot=new Uint8Array(ot)).length,lt=[];st>>10&1023|55296),ut=56320|1023&ut),lt.push(ut))}return String.fromCharCode.apply(null,lt)},nt.TextEncoder=rt,nt.TextDecoder=it})(typeof window<"u"?window:tt!==void 0?tt:this)}).call(this,et(6))},function(s,o,et){et.r(o),et.d(o,"AuthClient",function(){return rt}),et.d(o,"RtcSignalingClient",function(){return ot}),et.d(o,"Credentials",function(){return xt}),et.d(o,"IRtcStream",function(){}),et.d(o,"SignalingPromiseClient",function(){return Ct.SignalingPromiseClient}),et.d(o,"IRtcClientConfigurationV1",function(){}),et.d(o,"IRtcClientConfiguration",function(){}),et.d(o,"IRtcConnectionStatsInfo",function(){}),et.d(o,"IRtcSendConfiguration",function(){}),et.d(o,"IRtcSessionMetricsMessageCounts",function(){}),et.d(o,"IRtcStreamMessage",function(){}),et.d(o,"IRtcStreamPayload",function(){}),et.d(o,"IStreamControl",function(){}),et.d(o,"RtcClient",function(){return _r}),et.d(o,"RtcClientV1",function(){return Fo}),et.d(o,"createRtcStreamMessage",function(){return gn});var tt=et(28),nt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class rt extends tt.a{adminSignup(un,pn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/admin-signup",{token:pn,method:"POST",body:JSON.stringify(un)})})}login(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login",{method:"POST",body:JSON.stringify(un),allowUnsafeRetries:!0})})}loginWithGoogleToken(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login-google",{method:"POST",body:JSON.stringify(un),allowUnsafeRetries:!0})})}refresh(un,pn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/refresh",{method:"POST",body:JSON.stringify({refreshToken:un,tokenExpirationSeconds:pn}),allowUnsafeRetries:!0})})}respondToNewPasswordRequiredChallenge(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/respond-to-new-password-required-challenge",{method:"POST",body:JSON.stringify(un)})})}forgotPassword(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/forgot-password",{method:"POST",body:JSON.stringify({email:un})})})}confirmForgotPassword(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/confirm-forgot-password",{method:"POST",body:JSON.stringify(un)})})}resendInvitation(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/resend-invitation",{method:"POST",body:JSON.stringify({email:un})})})}changePassword({token:un,refreshToken:pn,currentPassword:Qn,newPassword:Wn}){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/change-password",{token:un,method:"POST",body:JSON.stringify({refreshToken:pn,currentPassword:Qn,newPassword:Wn})})})}getDeviceCredentials(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/device-credentials",{token:un,method:"POST",allowUnsafeRetries:!0})})}impersonate(un,pn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/impersonate",{token:un,method:"POST",allowUnsafeRetries:!0,body:JSON.stringify({userId:pn})})})}createServiceAccount(un,pn,Qn,Wn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/service-account",{token:un,method:"POST",allowUnsafeRetries:!0,body:JSON.stringify({name:pn,roleId:Qn,tags:Wn})})})}getFeatures(un){return nt(this,void 0,void 0,function*(){return(yield this.fetch("auth/features",{token:un})).features})}}var it=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class ot extends tt.a{createPeer(un,pn){return it(this,void 0,void 0,function*(){return yield this.fetch("peers",{token:un,method:"POST",body:JSON.stringify(pn)})})}getPeers(un){return it(this,void 0,void 0,function*(){return(yield this.fetch("peers",{token:un})).items})}refreshPeer(un,pn){return it(this,void 0,void 0,function*(){yield this.fetch(`peers/${pn}/refresh`,{token:un,method:"POST",allowUnsafeRetries:!0})})}createSession(un,pn){return it(this,void 0,void 0,function*(){return yield this.fetch("sessions",{token:un,method:"POST",body:JSON.stringify(pn)})})}refreshSession(un,pn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${pn}/refresh`,{token:un,method:"POST",allowUnsafeRetries:!0})})}deleteSession(un,pn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${pn}`,{token:un,method:"DELETE",allowUnsafeRetries:!0})})}getSessions(un){return it(this,void 0,void 0,function*(){return(yield this.fetch("sessions",{token:un})).items})}getIceServers(un){return it(this,void 0,void 0,function*(){return(yield this.fetch("ice-servers",{token:un})).items})}addSignals(un,pn,Qn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${pn}/add-signals`,{token:un,method:"POST",body:JSON.stringify(Qn)})})}takeSignals(un,pn){return it(this,void 0,void 0,function*(){return(yield this.fetch(`sessions/${pn}/take-signals`,{token:un,method:"POST"})).items})}}var st=et(1),at=et(8),lt=et(14),ut=et.n(lt),dt=et(104),ht=et.n(dt),ct=et(0),pt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class ft{constructor(un){this.name="LogReporter",this.type="simple",this.message=un}send(un){return pt(this,void 0,void 0,function*(){var pn,Qn;ct.a.info(this.message,(pn=un.reduce((Wn,jn)=>Object.assign(Object.assign({},Wn),{[jn.name]:jn.stat}),{}),Qn=Wn=>{const{sum:jn,count:Fr}=Wn,Er=jn/Fr;return Object.assign(Object.assign({},Wn),{average:Er})},Object.keys(pn).reduce((Wn,jn)=>Object.assign(Object.assign({},Wn),{[jn]:Qn(pn[jn])}),{})))})}}var gt=et(4),yt=et(39);function Ut(kn){return!!kn.match(/^[a-zA-Z0-9-_.,:?'"()@\/\\#$+ ]{1,255}$/)}var Ft=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};function mt({func:kn,delay:un,immediate:pn}){let Qn=!1,Wn=setTimeout(function Fr(){return Ft(this,void 0,void 0,function*(){if(Qn)return;const Er=new Date().getTime();try{jn=kn(),yield jn}finally{if(!Qn){const wr=new Date().getTime();Wn=setTimeout(Fr,Math.max(un-(wr-Er),0))}}})},pn?0:un),jn=Promise.resolve();return{stop(){return Ft(this,void 0,void 0,function*(){Qn=!0,clearTimeout(Wn),yield jn})}}}var vt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};const At=et(226),Lt=!!gt.c,Rt=new class{constructor(kn){this.samplePeriodSeconds=60,this.buffer={},this.reporters=[],this.flushInterval=mt({func:()=>this.flushStats(),delay:this.samplePeriodSeconds*st.a.second}),this.tags=this.filterTags(kn?.tags||{app:gt.a,version:gt.j,namespace:gt.i,instanceId:yt.a})}shutdown(){return vt(this,void 0,void 0,function*(){yield this.flushInterval.stop(),yield this.flushStats(),yield Object(at.a)(2*st.a.second)})}aggregate(kn,un,pn){this.addToBuffer(this.buffer,this.encodeKey({metric:kn,tags:this.filterTags(pn||{})}),typeof un=="number"?{min:un,max:un,sum:un,count:1}:un)}increment(kn,un){this.aggregate(kn,1,un)}timer(kn,un,pn){return vt(this,void 0,void 0,function*(){const Qn=At(),Wn=yield un(),jn=At();return this.aggregate(kn,jn-Qn,pn),Wn})}registerStatsReporter(kn){this.reporters.push(kn)}setTag(kn,un){const pn=this.filterTags({[kn]:un});this.tags=Object.assign(Object.assign({},this.tags),pn)}addToBuffer(kn,un,pn){if(kn[un]){const{min:Qn,max:Wn,sum:jn,count:Fr}=kn[un];kn[un]={min:Math.min(Qn,pn.min),max:Math.max(Wn,pn.max),sum:jn+pn.sum,count:Fr+pn.count}}else kn[un]=pn}write(kn){return vt(this,void 0,void 0,function*(){yield Promise.all(this.reporters.map(un=>vt(this,void 0,void 0,function*(){let pn;const Qn={};switch(un.type){case"simple":for(const[jn,Fr]of Object.entries(kn)){const{metric:Er}=this.decodeKey(jn);this.addToBuffer(Qn,this.encodeKey({metric:Er}),Fr)}pn=Qn;break;case"tagged":pn=kn;break;default:(function(jn){throw new Error(`Unreachable type encountered (${jn})`)})(un.type)}const Wn=Object.entries(pn);if(Wn.length>0)return un.send(Wn.map(([jn,Fr])=>{const{metric:Er,tags:wr}=this.decodeKey(jn);return{name:Er,tags:Object.assign(Object.assign({},wr),this.tags),stat:Fr}}),this.samplePeriodSeconds).catch(jn=>{ct.a.debug(`Failed to write stats to ${un.name}`,{error:jn})})})))})}flushStats(){return vt(this,void 0,void 0,function*(){yield this.write(this.buffer),this.buffer={}})}encodeKey(kn){return ut()(Object.assign(Object.assign({},kn),Object.keys(kn.tags||{}).length>0?{tags:kn.tags}:{}))}decodeKey(kn){return JSON.parse(kn)}filterTags(kn){return Object.entries(kn||{}).reduce((un,[pn,Qn])=>(Ut(pn)&&Ut(Qn)&&(un[pn]=Qn),un),{})}};Lt||["local","on-prem"].includes(gt.i)||Rt.registerStatsReporter(new ft("stats"));var St=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Tt extends class{constructor(un){this.options=un,this.cache=new ht.a(Object.assign(Object.assign(Object.assign({},un.dispose||un.disposeAfter?{ttlAutopurge:!0}:{}),un),{dispose:(...pn)=>{var Qn;pn[2]==="evict"&&Rt.increment("lru-eviction",{name:un.name}),(Qn=un.dispose)===null||Qn===void 0||Qn.call(un,...pn)},disposeAfter:(...pn)=>{var Qn;this.updateStats(),(Qn=un.disposeAfter)===null||Qn===void 0||Qn.call(un,...pn)}})),this.stringify=un.fastStringify?JSON.stringify:ut.a}set(un,pn,Qn){const Wn=this.stringify(un);if(!this.cache.set(Wn,pn,{ttl:Qn})){const jn=this.cache.sizeCalculation?this.cache.sizeCalculation(pn,Wn):"unknown";throw Error(`Value too large (${jn} > ${this.cache.max})`)}this.updateStats()}get(un){const{name:pn}=this.options,Qn=this.stringify(un),Wn=this.cache.getRemainingTTL(Qn);return Wn<=0?Rt.increment("cache-miss",{name:pn}):Wn!==1/0&&Rt.aggregate("cache-item-ttl",Wn,{name:pn}),this.cache.get(Qn)}delete(un){this.cache.delete(this.stringify(un))}peek(un){return this.cache.peek(this.stringify(un))}size(){return this.cache.size}clear(){this.cache.clear()}forEach(un){this.cache.forEach(un)}purgeStale(){return this.cache.purgeStale()}updateStats(){const{name:un}=this.options;Rt.aggregate("cache-item-count",this.cache.size,{name:un}),this.cache.calculatedSize!==void 0&&Rt.aggregate("cache-length",this.cache.calculatedSize,{name:un})}}{constructor(un){if(super(un),this.expireRejectedPromiseValues=un.expireRejectedPromiseValues===void 0||un.expireRejectedPromiseValues,this.rejectedPromiseValueTtl=un.rejectedPromiseValueTtl!==void 0?un.rejectedPromiseValueTtl:st.a.second,this.rejectedPromiseValueTtl<0)throw new Error("rejectedPromiseValueTtl must not be negative")}set(un,pn,Qn){super.set(un,pn,Qn),this.expireRejectedPromiseValues&&pn.catch(()=>St(this,void 0,void 0,function*(){yield Object(at.a)(this.rejectedPromiseValueTtl),this.peek(un)===pn&&this.delete(un)}))}}var Bt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class xt{constructor(un,pn,Qn){this.authClient=un,this.email=pn,this.password=Qn,this.tokenTtlMs=1*st.a.hour,this.tokenCache=new Tt({name:"Credentials-tokenCache",max:100,ttl:this.tokenTtlMs-5*st.a.minute,fastStringify:!0})}getToken(){return Bt(this,void 0,void 0,function*(){let un=this.tokenCache.get(this.email);return un||(un=(()=>Bt(this,void 0,void 0,function*(){const{authentication:pn}=yield this.authClient.login({email:this.email,password:this.password,tokenExpirationSeconds:this.tokenTtlMs/st.a.second});if(!pn)throw new Error("User account not verified.");return pn.accessToken}))(),this.tokenCache.set(this.email,un)),un})}}var Ct=et(97),kt=et(40),Nt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Ot extends kt.a{constructor(un){super(un)}postLanRtcOffer(un){return Nt(this,void 0,void 0,function*(){return yield this.fetch("v1/lan-rtc-offer",{method:"POST",body:JSON.stringify(un)})})}}var Wt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};function Dt(kn){return Wt(this,void 0,void 0,function*(){return(yield Promise.all(kn.map(un=>un.catch(pn=>pn)))).filter(un=>un instanceof Error)})}function Et(kn){if(kn!==void 0)return kn;throw new Error("Value is undefined")}function Pt(kn,un){const pn=kn.reduce((Qn,Wn)=>[...Qn,...Wn.urls],[]).filter(Qn=>zt(Qn,un)).sort(Qn=>en(Qn,"udp")?-1:0).shift();if(pn)return Object.assign(Object.assign({},Et(kn.find(Qn=>Qn.urls.includes(pn)))),{urls:[pn]})}function zt(kn,un){switch(un){case"stun":return/^stuns?:/.test(kn);case"turn":return/^turns?:/.test(kn)}}function en(kn,un){return kn.endsWith(`transport=${un}`)}var Kt=et(9),nn=et(24),Zt=et(229),jt=et(29);const Vt={ordered:!1,maxPacketLifeTime:300*st.a.millisecond},It={ordered:!0},$t={ordered:!0},Ht={ordered:!1,maxRetransmits:0},qt={ordered:!1,maxRetransmits:0},on=kn=>"received"in kn&&kn.received!==void 0,Xt=kn=>!("received"in kn)||kn.received===void 0,dn=2*st.a.second;function _n(kn,un={}){const pn=Array.from(kn.values()),Qn=pn.filter(on),Wn=Qn.length>0,jn=Math.max(...Qn.map(tr=>tr.received));let Fr;if(Wn){const tr=pn.length,ar=Qn.length,hr=Qn.map(gr=>gr.received-gr.sent),{standardDeviation:cn,mean:mn,jitter:xn}=function(gr){const br=gr.length;if(br===0)return{mean:NaN,standardDeviation:-1,jitter:NaN};const ur=gr.reduce((ho,Nn)=>ho+Nn,0)/br,nr=Math.sqrt(gr.map(ho=>Math.pow(ho-ur,2)).reduce((ho,Nn)=>ho+Nn)/br);let Kr=0;for(let ho=1;hogr.sent{const[ar,hr]=tr;hr.sent{var jn,Fr;return{streamId:Wn,sentCount:(jn=pn.get(Wn))!==null&&jn!==void 0?jn:0,receivedCount:(Fr=Qn.get(Wn))!==null&&Fr!==void 0?Fr:0}}),timestamp:un}}incrementLocalSent(un){const{localSent:pn}=this.counts,Qn=Fn(un.header.stream);pn.set(Qn,(pn.get(Qn)||0)+1)}incrementLocalReceived(un){const{localReceived:pn}=this.counts,Qn=Fn(un.header.stream),Wn=pn.get(Qn)||0;if(Wn===0){const{streamName:jn,streamType:Fr}=un.header.stream;ct.a.debug("RTC client received first message for stream",{streamName:jn,streamType:Fr})}pn.set(Qn,Wn+1)}uploadMetrics(){return Un(this,void 0,void 0,function*(){const{sessionId:un}=this,pn=yield this.connection.peerConnection.getStats(),Qn={};pn.forEach(tr=>Qn[tr.id]=tr),ct.a.debug("rtc-stats",Object.assign(Object.assign({},Qn),{sessionId:un}));const{localSent:Wn,localReceived:jn,remoteSent:Fr,remoteReceived:Er}=this.counts,wr=[...new Set([...Wn.keys(),...jn.keys()])].reduce((tr,ar)=>{const hr=Wn.get(ar),cn=jn.get(ar),mn=Fr.get(ar),xn=Er.get(ar);return Object.assign(Object.assign({},tr),{[`local-${ar}-sent`]:hr,[`local-${ar}-received`]:cn,[`remote-${ar}-sent`]:mn,[`remote-${ar}-received`]:xn})},{sessionId:un});ct.a.debug("rtc-message-report",Object.assign({deviceId:this.connection.getRemoteDeviceId()},wr))})}}function gn(kn,un,pn){return{header:{stream:kn,created:Date.now(),frameId:pn||""},payload:un}}function hn(kn){return new Set(["disconnected","failed","closed"]).has(kn.iceConnectionState)}function wn(kn){switch(kn.header.stream.streamType){case"twist":{const{twist:un}=kn.payload;if(!un)throw Error("twist not in payload of RTC message with type twist");return{header:kn.header,payload:{twist:{linear:Object.assign({x:0,y:0,z:0},un.linear),angular:Object.assign({x:0,y:0,z:0},un.angular)}}}}case"pose":{const{pose:un}=kn.payload;if(!un)throw Error("pose not in payload of RTC message with type pose");return{header:kn.header,payload:{pose:{translation:Object.assign({x:0,y:0,z:0},un.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},un.rotation)}}}}case"pose-with-covariance":{const{poseWithCovariance:un}=kn.payload;if(!un)throw Error("poseWithCovariance not in payload of RTC message with type pose-with-covariance");const pn=new Array(36).fill(0);return un.covariance.forEach((Qn,Wn)=>{if(Wn>=36)throw Error("covariance contains more than 36 elements");pn[Wn]=Qn}),{header:kn.header,payload:{poseWithCovariance:{pose:{translation:Object.assign({x:0,y:0,z:0},un.pose.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},un.pose.rotation)},covariance:pn}}}}case"point":{const{point:un}=kn.payload;if(!un)throw Error("point not in payload of RTC message with type point");return{header:kn.header,payload:{point:Object.assign({x:0,y:0,z:0},un)}}}default:return kn}}var Zn=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Pn{constructor(un,pn,Qn){this.peerConnection=un,this.config=pn,this.dataChannelNotifier=Qn,this.connectTimeoutMs=20*st.a.second,this.iceGatheringTimeoutMs=15*st.a.second,this.pingUpdateTimeoutMs=1*st.a.second,this.pingV2UpdateTimeoutMs=250*st.a.millisecond,this.pingV2MetricsGatherTimeoutMs=1*st.a.second,this.streamsInfoUpdateTimeoutMs=2*st.a.second,this.reassemblyTimeoutMs=500*st.a.millisecond,this.reassemblyTableCleanupMs=1*st.a.second,this.heartbeatTimeoutMs=20*st.a.millisecond,this.streamLatestTimestamp=new Map,this.reassemblyTable=new Map,this.reassemblyTableLastTimestamp=new Map,this.closeCalled=!1,this.gotOffer=!1,this.hasIceCandidate=!1,this.pingV2Map=new Map,this.sendPingV2=()=>{const{latestTryOnceStreamChannel:jn}=this;if(!jn)return;const Fr=new Date().getTime(),Er=Object(Zt.a)();this.sendSystemMessage(jn,{type:"ping-v2",payload:{timestamp:Fr,id:Er}}),this.pingV2Map.set(Er,{sent:Fr})},this.gatherPingV2Metrics=()=>{const jn=_n(this.pingV2Map);jn&&(this.pingInfo=jn,Rt.aggregate("rtc-ping-average",jn.average),Rt.aggregate("rtc-ping-loss",jn.loss),Rt.aggregate("rtc-jitter",jn.jitter))};const{isOffer:Wn}=pn.baseConfig;Wn?this.initializeChannels(un):un.ondatachannel=jn=>{switch(jn.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=jn.channel;break;case"stream.reliable":this.reliableStreamChannel=jn.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=jn.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=jn.channel;break;case"heartbeat":return void(this.heartbeatChannel=jn.channel);default:return void this.dataChannelNotifier(jn.channel)}this.setupChannel(jn.channel)},this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:jn}=this;jn&&this.sendSystemMessage(jn,{type:"ping"})},this.pingUpdateTimeoutMs),this.pingV2UpdateTimeout=setInterval(this.sendPingV2,this.pingV2UpdateTimeoutMs),this.pingV2MetricsGatherTimeout=setInterval(this.gatherPingV2Metrics,this.pingV2MetricsGatherTimeoutMs),this.streamsInfoUpdateTimeout=setInterval(()=>{const{latestTtlStreamChannel:jn}=this;jn&&this.sendSystemMessage(jn,{type:"streams-info"})},this.streamsInfoUpdateTimeoutMs),this.reassemblyTableCleanupTimeout=setInterval(()=>{const jn=new Date().getTime();this.reassemblyTableLastTimestamp.forEach((Fr,Er,wr)=>{jn>Er+this.reassemblyTimeoutMs&&this.reassemblyTable.delete(Fr)})},this.reassemblyTableCleanupMs),this.heartbeatTimeout=setInterval(()=>{const{heartbeatChannel:jn}=this;jn&&jn.readyState==="open"&&jn.send(new Uint8Array([1]))},this.heartbeatTimeoutMs)}handleSignal(un){return Zn(this,void 0,void 0,function*(){const{peerConnection:pn}=this,{track:Qn}=this.config.baseConfig,Wn=(()=>{try{return JSON.parse(un.getPayload())}catch{return}})();if(!Wn)return void ct.a.error("Received unparseable signal.");ct.a.debug("Handling signal",{description:Wn});const{sdp:jn,type:Fr}=Wn;if(!jn||!Fr)return void ct.a.warn("Received non-SDP signal");const{signalingState:Er,connectionState:wr}=pn;if(Er!=="stable"||wr!=="connected")if(pn.remoteDescription)ct.a.warn(`Received SDP after remote description was set: ${jn}`);else{if(Fr==="offer"){if(Er!=="stable")return void ct.a.warn("Received offer SDP when signaling is ongoing.");yield pn.setRemoteDescription(Wn);const tr=yield pn.createAnswer();yield pn.setLocalDescription(tr);const ar=un.clone();return Qn?.("Answer Received",ar),ar.setPayload(JSON.stringify(tr)),ar.setReceiverId(un.getSenderId()),ar.setSenderId(un.getReceiverId()),ar}if(Fr==="answer"){if(Er==="stable")return void ct.a.warn("Received answer SDP when signaling hasn't started.");yield pn.setRemoteDescription(Wn)}}else ct.a.warn(`Received SDP when already connected: ${jn}`)})}send(un,pn){const Qn=this.getChannelFromLabel(pn.channelLabel);Qn?this.sendOnChannel(Qn,un):ct.a.warn("Send called with unexpected channel label",{channelLabel:pn.channelLabel})}controlRemoteStream(un){this.sendSystemMessage(Et(this.reliableStreamChannel),{type:"stream-control",streamControl:un})}isActive(){return new Set(["new","checking","connected","completed"]).has(this.peerConnection.iceConnectionState)||this.isReady()}isReady(){const{reliableStreamChannel:un,latestTtlStreamChannel:pn,latestTryOnceStreamChannel:Qn,latestReliableStreamChannel:Wn}=this;return un?.readyState==="open"&&pn?.readyState==="open"&&Qn?.readyState==="open"&&Wn?.readyState==="open"}close(){return Zn(this,void 0,void 0,function*(){if(this.closeCalled)return;this.closeCalled=!0,this.sessionMetrics&&(yield this.sessionMetrics.uploadMetrics()),$n(this.pingUpdateTimeout),$n(this.pingV2UpdateTimeout),$n(this.pingV2MetricsGatherTimeout),$n(this.reassemblyTableCleanupTimeout),$n(this.streamsInfoUpdateTimeout),$n(this.heartbeatTimeout);const{peerConnection:un,reliableStreamChannel:pn,latestTtlStreamChannel:Qn,latestTryOnceStreamChannel:Wn,latestReliableStreamChannel:jn}=this;un.close(),pn?.close(),Qn?.close(),Wn?.close(),jn?.close()})}getPing(){return this.pingTimeMs}getPingInfo(){return this.pingInfo}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionCreatedTimestamp(){var un;return(un=this.config.remoteConfig)===null||un===void 0?void 0:un.sessionCreatedTimestamp}setSessionCreatedTimestamp(un){this.config.remoteConfig&&(this.config.remoteConfig.sessionCreatedTimestamp=un)}getSessionId(){var un;return(un=this.config.remoteConfig)===null||un===void 0?void 0:un.sessionId}setSessionId(un){this.config.remoteConfig&&(this.config.remoteConfig.sessionId=un,this.sessionMetrics=new On(un,this))}getRemotePeerId(){return this.config.baseConfig.remotePeerId}getRemoteDeviceId(){var un;return(un=this.config.baseConfig)===null||un===void 0?void 0:un.remoteDeviceId}setRemoteDeviceId(un){this.config.baseConfig.remoteDeviceId=un}getSessionMetricsMessageCounts(){var un;return(un=this.sessionMetrics)===null||un===void 0?void 0:un.counts}getConnectionStatsInfo(){return Zn(this,void 0,void 0,function*(){const{peerConnection:un}=this;if(!un)return;const pn=yield un.getStats(null),Qn=[];pn.forEach(wr=>{Qn.push(wr)});const Wn=Qn.find(wr=>wr.type==="transport");if(!Wn)return;const jn=Qn.find(wr=>(wr.type==="candidate-pair"||wr.type==="candidatepair")&&wr.id===Wn.selectedCandidatePairId);if(!jn)return;const Fr=Qn.find(wr=>wr.id===jn.localCandidateId),Er=Qn.find(wr=>wr.id===jn.remoteCandidateId);return Fr&&Er&&(Fr.address=Fr.address||Fr.ip,Er.address=Er.address||Er.ip,Fr.address!==void 0&&Er.address!==void 0)?{transport:Wn,localCandidate:Fr,remoteCandidate:Er}:void 0})}initializeChannels(un){this.heartbeatChannel=un.createDataChannel("heartbeat",qt),this.heartbeatChannel.binaryType="arraybuffer",this.latestTtlStreamChannel=un.createDataChannel("stream.latest-ttl",Vt),this.latestTtlStreamChannel.binaryType="arraybuffer",this.reliableStreamChannel=un.createDataChannel("stream.reliable",It),this.reliableStreamChannel.binaryType="arraybuffer",this.latestReliableStreamChannel=un.createDataChannel("stream.latest-reliable",$t),this.latestReliableStreamChannel.binaryType="arraybuffer",this.latestTryOnceStreamChannel=un.createDataChannel("stream.latest-try-once",Ht),this.latestTryOnceStreamChannel.binaryType="arraybuffer",this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}getOffer(){var un,pn,Qn;return Zn(this,void 0,void 0,function*(){const{gotOffer:Wn}=this,{peerConnection:jn,config:Fr}=this;if(this.config.baseConfig.isLan)throw new Error('"getOffer" method can only be called with internet connections. LAN connections should call the "getLanOffer" method.');const Er=(un=this.config.remoteConfig)===null||un===void 0?void 0:un.sessionId;if(Wn)return void ct.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,hn(this.peerConnection))return void ct.a.debug("Failed to generate offer because the peer connection was inactive.");const wr=Fr.baseConfig.track;jn.onicecandidate=()=>{this.hasIceCandidate=!0},jn.oniceconnectionstatechange=()=>Zn(this,void 0,void 0,function*(){const mn=jn.iceConnectionState;if(mn==="connected"||mn==="completed"){const xn=yield this.getConnectionStatsInfo(),Gn=xn?function(er){const cr=er.localCandidate.candidateType,gr=er.remoteCandidate.candidateType;return cr==="host"&&gr==="host"?"local":cr==="relay"||gr==="relay"?"TURN":"STUN"}(xn):void 0;ct.a.info(`ICE connection state changed to ${mn}`,{sessionId:Er,connectionStatsInfo:xn,iceMode:Gn}),wr?.("ICE connection state change",{iceConnectionState:mn,sessionId:Er,connectionStatsInfo:xn,iceMode:Gn})}}),yield jn.setLocalDescription(yield jn.createOffer());const tr=new Date().getTime();for(;;){const mn=new Date().getTime()-tr;if(mn>this.connectTimeoutMs)return void ct.a.debug("Failed to generate offer because ICE gathering timed out.");if(mn>this.iceGatheringTimeoutMs&&this.hasIceCandidate){ct.a.debug("ICE gathering partially completed; proceeding",{iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn}),wr?.("ICE gathering partially completed",{sessionId:Er,iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn});break}if(jn.iceGatheringState==="complete"){ct.a.debug("ICE gathering complete",{iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn}),wr?.("ICE gathering completed",{sessionId:Er,iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn});break}yield Object(at.a)(.1*st.a.second)}const ar=(pn=this.peerConnection.getConfiguration().iceServers)!==null&&pn!==void 0?pn:[];for(const mn of ar)mn.credentialType=void 0;const hr=JSON.stringify(ar),cn=new Kt.Signal;return cn.setPayload(JSON.stringify(jn.localDescription)),cn.setSenderId(this.config.baseConfig.localPeerId),cn.setReceiverId(this.config.baseConfig.remotePeerId),cn.setIceServers(hr),cn.setIceTransportPolicy((Qn=this.peerConnection.getConfiguration().iceTransportPolicy)!==null&&Qn!==void 0?Qn:"all"),this.config.baseConfig.sessionType!==void 0?cn.setSessionType(this.config.baseConfig.sessionType):cn.setSessionType(Kt.SessionType.TELEOP),ct.a.debug("Sending offer signal with description",{description:cn.getPayload()}),cn})}getLanOffer(){return Zn(this,void 0,void 0,function*(){const{peerConnection:un,gotOffer:pn}=this;if(!this.config.baseConfig.isLan)throw new Error('"getLanOffer" method can only be used with LAN connections. Internet connections should call the "getOffer" method.');if(pn)return void ct.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,hn(this.peerConnection))return void ct.a.debug("Failed to generate offer because the peer connection was inactive.");yield un.setLocalDescription(yield un.createOffer());const Qn=new Date().getTime();for(;;){if(new Date().getTime()-Qn>this.iceGatheringTimeoutMs)return void ct.a.debug("Failed to generate offer because ICE gathering timed out.");if(un.iceGatheringState==="complete")break;yield Object(at.a)(.1*st.a.second)}const Wn=un.localDescription;if(Wn)return ct.a.debug("Sending LAN offer signal with description",{description:Wn}),Wn;ct.a.error("Failed to generate LAN offer description")})}handleLanAnswer(un){return Zn(this,void 0,void 0,function*(){const{peerConnection:pn}=this;if(!this.config.baseConfig.isLan)throw new Error('"handleLanAnswer" method can only be used with LAN connections. Internet connections should call the "handleSignal" method.');yield pn.setRemoteDescription(un)})}getChannelFromLabel(un){switch(un){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(un,pn){let Qn;try{Qn=Object(jt.encode)(JSON.stringify(pn))}catch(Wn){return void ct.a.warn("Failed to encode RTC message",{error:Wn})}try{un.send(Qn),this.sessionMetrics&&this.sessionMetrics.incrementLocalSent(pn)}catch(Wn){ct.a.warn("Failed to send message to channel",{error:Wn,channel:un.label})}}channelNotRecognized(un){return un!==this.latestTtlStreamChannel&&un!==this.latestReliableStreamChannel&&un!==this.latestTryOnceStreamChannel&&un!==this.reliableStreamChannel}setupChannel(un){un.onmessage=pn=>{if(this.channelNotRecognized(un))return void ct.a.warn("Received message on unrecognized data channel.");let Qn;try{Qn=JSON.parse(Object(jt.decode)(pn.data))}catch(Wn){return void ct.a.warn("Received unparseable message on RTC stream data channel",{error:Wn,channel:un.label})}Qn.communicationType==="message-chunk"?this.receiveChannelMessageChunk(un,Qn):this.receiveChannelMessage(un,Qn)},un.onerror=pn=>{ct.a.warn(`Channel error: ${pn.error}`,{error:pn.error,sessionId:this.getSessionId(),channelLabel:un.label})},un.onopen=()=>{ct.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:un.label})},un.onclose=()=>{const pn={bufferedAmount:un.bufferedAmount,sessionId:this.getSessionId(),channelLabel:un.label};this.closeCalled===!1?ct.a.debug("Unexpected channel closed",pn):ct.a.debug("Channel closed",pn)}}receiveChannelMessage(un,pn){const{config:Qn}=this,{remotePeerId:Wn}=this.config.baseConfig;this.lastMessageTimestamp=new Date().getTime(),pn=wn(pn),this.sessionMetrics&&this.sessionMetrics.incrementLocalReceived(pn),this.handleSystemMessage(un,pn)||(un===this.latestTryOnceStreamChannel||un===this.latestTtlStreamChannel||un===this.latestReliableStreamChannel)&&!this.isLatestMessage(pn)||Qn.baseConfig.receive(Wn,pn)}receiveChannelMessageChunk(un,pn){const Qn=this.reassemblyTable.get(pn.id)||[];if(Qn.push(pn),Qn.length===pn.total){const Wn=function(jn){const Fr=jn.sort((Er,wr)=>Er.seqEr.part).reduce((Er,wr)=>Er+wr);try{return JSON.parse(Fr)}catch{return void ct.a.warn("Could not reassemble RTC message chunks")}}(Qn);return Wn&&this.receiveChannelMessage(un,Wn),void this.reassemblyTable.delete(pn.id)}this.reassemblyTable.set(pn.id,Qn),this.reassemblyTableLastTimestamp.set(pn.id,new Date().getTime())}handleSystemMessage(un,pn){var Qn,Wn;const{config:jn}=this,{baseConfig:Fr}=jn,{remotePeerId:Er}=Fr;switch(pn.header.stream.streamType){case"ping":return this.sendSystemMessage(un,{type:"pong",timestamp:Et(pn.payload.ping)}),!0;case"pong":{const wr=new Date().getTime()-Et(pn.payload.pong);return this.pingTimeMs=wr,Rt.aggregate("rtc-ping-time",wr),!0}case"ping-v2":return this.sendPingV2(),!0;case"pong-v2":{const wr=Et(pn.payload.pongV2),tr=this.pingV2Map.get(wr.id);return tr?.sent!==wr.timestamp?(ct.a.warn("Pong timestamp doesn't match stored value",{currentEntry:tr,pong:wr}),!0):(this.pingV2Map.set(wr.id,{sent:wr.timestamp,received:new Date().getTime()}),!0)}case"streams-info":{const{sessionMetrics:wr}=this,tr=(Qn=pn.payload.streamsInfo)===null||Qn===void 0?void 0:Qn.timestamp;return!!tr&&(wr?.updateRemoteMessagesCounts(pn),(Wn=Fr.onStreamsInfoUpdate)===null||Wn===void 0||Wn.call(Fr,Er,tr),!0)}case"stream-control":return!0;default:return!1}}sendSystemMessage(un,pn){var Qn;const{localUserId:Wn,localPeerId:jn}=this.config.baseConfig;if(un.readyState!=="open")return;const Fr={entityId:Wn??jn,streamName:`$.${pn.type}`,streamType:pn.type};let Er;switch(pn.type){case"ping":Er={ping:new Date().getTime()};break;case"pong":Er={pong:pn.timestamp};break;case"ping-v2":Er={pingV2:pn.payload};break;case"pong-v2":Er={pongV2:pn.payload};break;case"stream-control":Er={streamControl:pn.streamControl};break;case"streams-info":Er={streamsInfo:(Qn=this.sessionMetrics)===null||Qn===void 0?void 0:Qn.getLocalStreamsInfo(new Date().getTime())}}this.sendOnChannel(un,gn(Fr,Er))}isLatestMessage(un){const pn=Fn(un.header.stream),Qn=(this.streamLatestTimestamp.get(pn)||0)<=un.header.created;return Qn&&this.streamLatestTimestamp.set(pn,un.header.created),Qn}}function $n(kn){kn&&clearInterval(kn)}function Tr(kn){var un,pn;return{userId:(un=kn.getUserId())===null||un===void 0?void 0:un.getValue(),deviceId:(pn=kn.getDeviceId())===null||pn===void 0?void 0:pn.getValue(),organizationId:kn.getOrganizationId(),id:kn.getPeerId(),capabilities:[],capabilitySet:{}}}var Qr=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class _r{constructor(un){this.config=un,this.grpcCallDeadline=5*st.a.second,this.refreshIntervalDelayMs=2*st.a.second,this.iceServersTtl=30*st.a.minute,this.connections=[],this.localConnections=[],this.isConnectionInitiator=new Map,this.isOutgoingConnection=new Map,this.peerDataChannelListeners=[];const{refreshIntervalDelayMs:pn}=this;this.refreshInterval=mt({func:()=>Qr(this,void 0,void 0,function*(){try{yield this.update()}catch(Qn){ct.a.warn("RTC refresh failed",{error:Qn})}}),delay:pn,immediate:!0})}send(un,pn,Qn){const Wn=this.getActiveConnection(un);Wn?Wn.isReady()?Wn.send(pn,Qn):ct.a.warn("Send called with unready connection."):ct.a.warn("Send called with no connection.")}controlRemoteStream(un,pn){const Qn=this.getActiveConnection(un);Qn?Qn.isReady()?Qn.controlRemoteStream(pn):ct.a.warn("controlRemoteStream called with unready connection."):ct.a.warn("controlRemoteStream called with no connection.")}getLocalPeer(){return Qr(this,void 0,void 0,function*(){for(;!this.localPeer;)yield Object(at.a)(.1*st.a.second);return Tr(this.localPeer)})}connect(un,pn){var Qn,Wn,jn;return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode===!0)throw new Error("connect method called in local only mode.");const{track:Fr,signalingClient:Er}=this.config,{localPeer:wr,receiveSignalStream:tr,iceServers:ar}=this;if(!wr||!tr||!ar)return void ct.a.warn("Connect called prior to local peer, receiveSignalStream, and ICE servers ready");if(this.getActiveConnection(un))return void ct.a.warn("Connect called for peer with existing connection.");if(this.isOutgoingConnection.get(un))return void ct.a.warn("Connect called for peer with an existing outgoing connection offer.");this.isOutgoingConnection.set(un,!0);const hr=function(gr,br,ur){const{rtcIceTransportPolicies:nr,rtcIceServerProtocol:Kr,useAllServers:ho}=br||{},Nn=gr.map(rr=>Object.assign(Object.assign({},rr),{urls:rr.urls.filter(Rr=>{const vr=(nr===void 0||nr.some(fr=>zt(Rr,fr)))&&(Kr===void 0||en(Rr,Kr));return vr||ct.a.debug(`Ignoring ICE server: ${Rr}`,{organizationId:ur}),vr})})).filter(({urls:rr})=>rr.filter(Rr=>Rr).length>0);return ho?Nn:[Pt(Nn,"stun"),Pt(Nn,"turn")].filter(rr=>rr!==void 0).map(rr=>Et(rr))}(ar,pn);ct.a.debug("Received ICE servers:",ar),ct.a.debug("Using ICE servers:",hr);const cn=new Pn(yield this.createRTCPeerConnection(hr),{baseConfig:{isOffer:!0,isLan:!1,receive:(gr,br)=>this.config.receive(gr,br),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(gr,br)=>{var ur,nr;return(nr=(ur=this.config).onStreamsInfoUpdate)===null||nr===void 0?void 0:nr.call(ur,gr,br)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(Qn=wr.getUserId())===null||Qn===void 0?void 0:Qn.getValue(),localPeerId:wr.getPeerId(),remotePeerId:un,sessionType:this.config.sessionType},remoteConfig:{}},gr=>this.onCustomDataChannel(un,gr)),mn=yield cn.getOffer();if(!mn)return ct.a.error("Failed to generate offer."),void this.isOutgoingConnection.delete(un);ct.a.debug("Sending offer."),Fr?.("Sending offer",mn);const xn=new Kt.SendSignalRequest;xn.setSignal(mn);const Gn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield Er.sendSignal(xn,yield this.getMetadata({}))}catch(gr){ct.a.warn("Error when sending signal",{error:gr})}}))();if(!this.isOutgoingConnection.get(un))return void ct.a.debug("No offer set after receiving offer signal response.");ct.a.debug("Offer sent.");const er=(Wn=Gn?.getSessionId())===null||Wn===void 0?void 0:Wn.getValue(),cr=(jn=Gn?.getSessionCreatedTimestamp())===null||jn===void 0?void 0:jn.getValue();return er&&cr?(cn.setSessionId(er),cn.setSessionCreatedTimestamp(cr),this.isOutgoingConnection.delete(un),this.connections.push(cn),this.isConnectionInitiator.set(cn,!0),this.setupHandlers(cn),er):(ct.a.warn("No session ID or no session created timestamp on send signal response."),void this.isOutgoingConnection.delete(un))})}connectLan(un){var pn,Qn;return Qr(this,void 0,void 0,function*(){const Wn=new Ot(un),jn=new Pn(yield this.createRTCPeerConnection([]),{baseConfig:{isOffer:!0,isLan:!0,receive:(tr,ar)=>this.config.receive(tr,ar),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(tr,ar)=>{var hr,cn;return(cn=(hr=this.config).onStreamsInfoUpdate)===null||cn===void 0?void 0:cn.call(hr,tr,ar)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(Qn=(pn=this.localPeer)===null||pn===void 0?void 0:pn.getUserId())===null||Qn===void 0?void 0:Qn.getValue(),localPeerId:"lan_client",remotePeerId:un}},tr=>this.onCustomDataChannel(un,tr)),Fr=yield jn.getLanOffer();if(!Fr)return ct.a.warn("Could not generate LAN offer"),!1;const Er=yield Wn.postLanRtcOffer({offer:JSON.stringify(Fr)}),wr=new RTCSessionDescription(JSON.parse(Er.answer));return yield jn.handleLanAnswer(wr),this.localConnections.push(jn),this.isConnectionInitiator.set(jn,!0),Object(Zt.a)()})}getConnections(){return[...this.connections,...this.localConnections]}createCustomDataChannel(un,pn,Qn,Wn,jn){const Fr=this.getActiveConnection(un);if(Fr&&this.isConnectionInitiator.has(Fr)){const wr=Fr.peerConnection.createDataChannel("custom."+pn,Qn);return Wn&&(wr.binaryType="arraybuffer"),jn(un,wr),()=>{}}const Er=(wr,tr)=>{un===wr&&tr.label==="custom."+pn&&jn(un,tr)};return this.peerDataChannelListeners.push(Er),()=>{this.peerDataChannelListeners=this.peerDataChannelListeners.filter(wr=>wr!==Er)}}onCustomDataChannel(un,pn){this.peerDataChannelListeners.forEach(Qn=>Qn(un,pn))}getConnectionStatus(un){if(this.isOutgoingConnection.get(un))return"connecting";const pn=this.getActiveConnection(un);return pn?pn.isReady()?"connected":"connecting":"disconnected"}getConnectionStatsInfo(un){return Qr(this,void 0,void 0,function*(){const pn=this.getActiveConnection(un);if(pn)return yield pn.getConnectionStatsInfo()})}disconnect(un){return Qr(this,void 0,void 0,function*(){const pn=this.getActiveConnection(un);pn&&(yield pn.close())})}getPeers(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:un}=this.config,pn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield un.getPeers(new Kt.GetPeersRequest,yield this.getMetadata({}))}catch(jn){ct.a.warn("Error when getting peers",{error:jn})}}))();if(!pn)return[];const Qn=pn.getPeersList();if(!Qn)return[];const Wn=jn=>{var Fr,Er;return(Er=(Fr=jn.getPeerCreatedTimestamp())===null||Fr===void 0?void 0:Fr.getValue())!==null&&Er!==void 0?Er:0};return Qn.sort((jn,Fr)=>Wn(Fr)-Wn(jn)).map(jn=>Tr(jn))})}getSessions(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:un}=this.config,pn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield un.getPeers(new Kt.GetPeersRequest,yield this.getMetadata({}))}catch(jn){ct.a.warn("Error when getting peers",{error:jn})}}))();if(!pn)return{};const Qn=pn.getPeersList(),Wn={};for(const jn of Qn)Wn[jn.getPeerId()]=jn.getSessionIdsList();return Wn})}getPing(un){const pn=this.getActiveConnection(un);if(pn)return pn.getPing();ct.a.warn("Attempted to get ping time from inactive peer.")}getPingInfo(un){const pn=this.getActiveConnection(un);if(pn)return pn.getPingInfo();ct.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(un){const pn=this.getActiveConnection(un);if(pn)return pn.getLastMessageTimestamp();ct.a.warn("Attempted to get last message time from inactive peer.")}getSessionMetricsMessageCounts(un){const pn=this.getActiveConnection(un);if(pn)return pn.getSessionMetricsMessageCounts();ct.a.warn("Attempted to get session metrics counts from inactive peer.")}isReady(){if(this.config.lanOnlyMode)return!0;const{localPeer:un,receiveSignalStream:pn,iceServers:Qn}=this;return!!(un&&pn&&Qn)}shutdown(){return Qr(this,void 0,void 0,function*(){ct.a.info("Shutdown called on RTC client"),yield this.refreshInterval.stop(),this.receiveSignalStream&&this.receiveSignalStream.cancel();const un=this.connections;this.connections=[],yield this.closeConnections(un);const{localPeer:pn}=this;if(!pn||this.config.lanOnlyMode)return;const{signalingClient:Qn}=this.config;yield(()=>Qr(this,void 0,void 0,function*(){try{const Wn=new Kt.DeletePeerRequest;Wn.setPeerId(pn.getPeerId()),yield Qn.deletePeer(Wn,yield this.getMetadata({}))}catch(Wn){return void ct.a.warn("Error deleting local peer",{error:Wn})}}))()})}createPeer(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createPeer method cannot be used in local-only mode.");const{signalingClient:un}=this.config,pn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield un.createPeer(new Kt.CreatePeerRequest,yield this.getMetadata({}))}catch(Wn){throw new Error(`Was not able to create peer: ${JSON.stringify(Wn)}`)}}))(),Qn=pn?.getPeer();if(!Qn)throw new Error("Response did not provide peer.");return this.localPeer=Qn})}createReceiveSignalStream(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createReceiveSignalStream method cannot be used in local-only mode.");const{signalingClient:un}=this.config,{localPeer:pn,iceServers:Qn}=this;if(!pn||!Qn)return;const{receiveSignalStream:Wn}=this;Wn&&Wn.cancel();const jn=new Kt.ReceiveSignalStreamRequest;jn.setPeerId(pn.getPeerId());const Fr=yield(()=>Qr(this,void 0,void 0,function*(){try{return un.receiveSignalStream(jn,yield this.getMetadata({hasDeadline:!1}))}catch(Er){throw new Error(`Unable to create receive signal stream: ${JSON.stringify(Er)}`)}}))();if(!Fr)throw new Error("Response did not provide stream.");return Fr.on("data",Er=>Qr(this,void 0,void 0,function*(){var wr,tr,ar,hr;const cn=Er.getSignal(),mn=(wr=cn?.getSessionId())===null||wr===void 0?void 0:wr.getValue(),xn=cn?.getSenderId(),Gn=cn?.getReceiverId(),er=(tr=cn?.getSessionCreatedTimestamp())===null||tr===void 0?void 0:tr.getValue();if(!(cn&&mn&&xn&&Gn&&er))return void ct.a.warn("Received signal with missing information.");const cr=this.getActiveConnection(xn);if(cr)if(cr.getSessionId()!==mn){if(ct.a.debug("Received signal: different session for a peer we're already connected to."),(cr.getSessionCreatedTimestamp()||0)>er)return;const gr=new Pn(yield this.createRTCPeerConnection(Qn),{baseConfig:{isOffer:!1,isLan:!1,receive:(br,ur)=>this.config.receive(br,ur),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(br,ur)=>{var nr,Kr;return(Kr=(nr=this.config).onStreamsInfoUpdate)===null||Kr===void 0?void 0:Kr.call(nr,br,ur)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:pn.getPeerId(),localUserId:(hr=pn.getUserId())===null||hr===void 0?void 0:hr.getValue(),remotePeerId:xn},remoteConfig:{sessionId:mn,sessionCreatedTimestamp:er}},br=>this.onCustomDataChannel(xn,br));yield gr.handleSignal(cn),this.connections.push(gr)}else ct.a.debug("Received signal: for an existing connection."),yield cr.handleSignal(cn);else{ct.a.debug("Received signal: new connection.");const gr=new Pn(yield this.createRTCPeerConnection(Qn),{baseConfig:{isOffer:!1,isLan:!1,receive:(br,ur)=>this.config.receive(br,ur),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(br,ur)=>{var nr,Kr;return(Kr=(nr=this.config).onStreamsInfoUpdate)===null||Kr===void 0?void 0:Kr.call(nr,br,ur)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:pn.getPeerId(),localUserId:(ar=pn.getUserId())===null||ar===void 0?void 0:ar.getValue(),remotePeerId:xn},remoteConfig:{sessionId:mn,sessionCreatedTimestamp:er}},br=>this.onCustomDataChannel(xn,br));yield gr.handleSignal(cn),this.connections.push(gr)}})),Fr.on("end",()=>{Fr.cancel(),this.receiveSignalStream=void 0}),Fr.on("error",Er=>{switch(Er.code){case nn.StatusCode.CANCELLED:case nn.StatusCode.UNAVAILABLE:case nn.StatusCode.UNKNOWN:ct.a.debug("Receive signal stream error",{error:Er});break;case nn.StatusCode.UNAUTHENTICATED:ct.a.warn("Receive signal stream error",{error:Er});break;default:ct.a.error("Receive signal stream error",{error:Er})}Fr.cancel(),this.receiveSignalStream=void 0}),this.receiveSignalStream=Fr})}createRTCPeerConnection(un){var pn;return Qr(this,void 0,void 0,function*(){const Qn=(pn=this.config.alternateRTCPeerConnection)!==null&&pn!==void 0?pn:window.RTCPeerConnection;if(!Qn)throw function(){const{userAgent:Wn}=navigator;return Wn.includes("Firefox/")?"Firefox":Wn.includes("Edg/")?"Edge":Wn.includes("Chrome/")?"Chrome":Wn.includes("Safari/")?"Safari":Wn.includes("MSIE/")||Wn.includes("Trident/")?"IE":"Other"}()!=="Chrome"?new Error("WebRTC is not enabled. Please try again with the latest version of Google Chrome."):new Error("WebRTC is not enabled. Please ensure WebRTC is not disabled by ad blocking software.");return new Qn({iceServers:un})})}closeConnections(un){return Qr(this,void 0,void 0,function*(){const pn=yield Dt(un.map(Qn=>Qr(this,void 0,void 0,function*(){yield Qn.close()})));for(const Qn of pn)ct.a.warn("Request to close session failed",{error:Qn})})}getActiveConnection(un){return this.getConnections().find(pn=>pn.getRemotePeerId()===un&&pn.isActive())}update(){var un;return Qr(this,void 0,void 0,function*(){if(this.localConnections=this.localConnections.filter(Er=>Er.isActive()),this.config.lanOnlyMode)return;const{signalingClient:pn}=this.config;if(!this.localPeer||!this.receiveSignalStream||!this.iceServers)return this.localPeer||(yield this.createPeer()),this.iceServers||(yield this.updateIceServers()),void(this.receiveSignalStream||(yield this.createReceiveSignalStream()));yield this.closeConnections(this.connections.filter(Er=>!Er.isActive())),this.connections=this.connections.filter(Er=>Er.isActive());const{localPeer:Qn}=this,Wn=this.connections.filter(Er=>Er.getSessionId).map(Er=>Et(Er.getSessionId()));Qn.setSessionIdsList(Wn);const jn=new Kt.RefreshPeerRequest;jn.setPeer(Qn);try{yield pn.refreshPeer(jn,yield this.getMetadata({}))}catch(Er){Er.code===nn.StatusCode.NOT_FOUND?(ct.a.warn("Peer expired, creating new peer",{peerId:Qn.getPeerId()}),yield this.reset()):ct.a.warn("Error calling RefreshPeer",{error:Er})}const Fr=yield this.getPeers();for(const Er of this.connections)Er.setRemoteDeviceId((un=Fr.find(wr=>wr.id===Er.getRemotePeerId()))===null||un===void 0?void 0:un.deviceId)})}reset(){return Qr(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.isOutgoingConnection=new Map,yield this.createPeer(),yield this.createReceiveSignalStream()})}updateIceServers(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)return;const{iceServersLastUpdate:un,iceServersTtl:pn}=this,Qn=new Date().getTime();if(!un||Qn-un>pn)try{const Wn=(yield this.config.signalingClient.getIceServers(new Kt.GetIceServersRequest,yield this.getMetadata({}))).getIceServers();this.iceServers=JSON.parse(Wn),this.iceServersLastUpdate=Qn}catch(Wn){ct.a.warn("Error in updateIceServers",{error:Wn})}})}setupHandlers(un){const{peerConnection:pn}=un,Qn=un.getSessionCreatedTimestamp();pn.onconnectionstatechange=()=>Qr(this,void 0,void 0,function*(){const Wn=pn.connectionState;if(Qn)switch(Wn){case"connected":Rt.aggregate("rtc-connect-time",new Date().getTime()-Qn);break;case"failed":Rt.increment("rtc-connect-failed")}})}getMetadata(un){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getMetadata method cannot be called in local-only mode");const{getToken:pn}=this.config,{grpcCallDeadline:Qn}=this,{hasDeadline:Wn}=un,jn=Wn===!1?void 0:new Date().getTime()+Qn;return{authorization:yield pn(),deadline:jn}})}}var Ir=et(10),Wr=et(11),qr=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Uo{constructor(un,pn){this.sessionId=un,this.connection=pn,this.sentMessagesCounts=new Map,this.receivedMessagesCounts=new Map,this.sessionId=un,this.connection=pn}incrementMessageSent(un){const pn=Fn(un.header.stream);this.sentMessagesCounts.set(pn,(this.sentMessagesCounts.get(pn)||0)+1)}incrementMessageReceived(un){const pn=Fn(un.header.stream);this.receivedMessagesCounts.set(pn,(this.receivedMessagesCounts.get(pn)||0)+1)}uploadMetrics(){return qr(this,void 0,void 0,function*(){const{sessionId:un}=this,pn=yield this.connection.peerConnection.getStats(),Qn={};pn.forEach(jn=>Qn[jn.id]=jn),ct.a.debug("rtc-stats",Object.assign(Object.assign({},Qn),{sessionId:un}));const Wn=[...new Set(Array.from(this.sentMessagesCounts.keys()).concat(Array.from(this.receivedMessagesCounts.keys())))].reduce((jn,Fr)=>{const Er=this.sentMessagesCounts.get(Fr),wr=this.receivedMessagesCounts.get(Fr);return Object.assign(Object.assign({},jn),{[`${Fr}-sent`]:Er,[`${Fr}-received`]:wr})},{sessionId:un});ct.a.debug("rtc-message-report",Wn)})}}function eo(kn,un){return Fn(kn)===Fn(un)}var Yr=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class _o{constructor(un,pn){this.peerConnection=un,this.config=pn,this.connectTimeoutMs=10*st.a.second,this.gatherIceTimeoutMs=5*st.a.second,this.pingUpdateTimeoutMs=2*st.a.second,this.streamLatestTimestamp=new Map,this.closeCalled=!1,this.connectCalled=!1,this.sentOffer=!1,this.receivedIceCandidate=!1;const{isOffer:Qn}=pn;Qn?this.initializeChannels(un):un.ondatachannel=Wn=>{switch(Wn.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=Wn.channel;break;case"stream.reliable":this.reliableStreamChannel=Wn.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=Wn.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=Wn.channel}this.setupChannel(Wn.channel)},this.sessionMetrics=new Uo(this.getSessionId(),this)}connect(){return Yr(this,void 0,void 0,function*(){if(this.connectCalled)return;this.connectCalled=!0,this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:Wn}=this;Wn&&this.sendSystemMessage(Wn,{type:"ping"})},this.pingUpdateTimeoutMs),this.connectTimeout=setTimeout(()=>Yr(this,void 0,void 0,function*(){this.isReady()||(ct.a.warn("RTC connect timed out, closing connection"),yield this.close())}),this.connectTimeoutMs);const{peerConnection:un,config:{isOffer:pn,sessionId:Qn}}=this;if(pn){const Wn=yield un.createOffer();yield un.setLocalDescription(Wn)}pn&&(this.gatherIceTimeout=setTimeout(()=>Yr(this,void 0,void 0,function*(){this.sentOffer||(ct.a.warn("ICE gathering timed out"),this.receivedIceCandidate?(ct.a.warn("Attempting to connect with partial ICE candidate pool"),yield this.sendOffer()):yield this.close())}),this.gatherIceTimeoutMs),un.onicecandidate=Wn=>Yr(this,void 0,void 0,function*(){Wn.candidate?this.receivedIceCandidate=!0:yield this.sendOffer()}),un.onicegatheringstatechange=()=>Yr(this,void 0,void 0,function*(){un.iceGatheringState==="complete"&&(yield this.sendOffer())}),un.onnegotiationneeded=()=>{ct.a.debug("Negotiation needed",{sessionId:Qn})})})}handleSignal(un){return Yr(this,void 0,void 0,function*(){const{peerConnection:pn,config:{sessionId:Qn,sendSignal:Wn}}=this,{description:jn}=JSON.parse(un.payload);if(ct.a.debug("Handling signal",{sessionId:Qn,description:JSON.stringify(jn)}),jn)if(pn.signalingState!=="stable"||pn.connectionState!=="connected")if(pn.remoteDescription)ct.a.warn(`Received SDP signal during negotiation when remote description is already set: ${JSON.stringify(un)}`);else if(jn.type==="offer"){yield pn.setRemoteDescription(jn);const Fr=yield pn.createAnswer();yield pn.setLocalDescription(Fr),yield Wn({payload:JSON.stringify({description:Fr})})}else jn.type==="answer"&&(yield pn.setRemoteDescription(jn));else ct.a.warn(`Received SDP signal when signaling is stable and connected: ${JSON.stringify(un)}`);else ct.a.warn(`Received non-SDP signal: ${JSON.stringify(un)}`)})}send(un,pn){const Qn=this.getChannelFromLabel(pn.channelLabel);Qn?this.sendOnChannel(Qn,un):ct.a.warn("Send called with unexpected channel label",{channelLabel:pn.channelLabel})}controlRemoteStream(un){this.sendSystemMessage(Et(this.reliableStreamChannel),{type:"stream-control",streamControl:un})}isActive(){return new Set(["new","connecting","connected"]).has(this.peerConnection.connectionState)}isReady(){const{peerConnection:un,latestTtlStreamChannel:pn,reliableStreamChannel:Qn,latestTryOnceStreamChannel:Wn}=this;return!!(Qn&&pn&&Wn)&&un.connectionState==="connected"&&Qn.readyState==="open"&&pn.readyState==="open"&&Wn.readyState==="open"}isClosed(){const{peerConnection:un,reliableStreamChannel:pn,latestTryOnceStreamChannel:Qn,latestTtlStreamChannel:Wn}=this;return!(un.connectionState!=="closed"||pn!==void 0&&pn.readyState!=="closed"||Qn!==void 0&&Qn.readyState!=="closed"||Wn!==void 0&&Wn.readyState!=="closed")}needsClosing(){const{peerConnection:un,latestTtlStreamChannel:pn,reliableStreamChannel:Qn,latestTryOnceStreamChannel:Wn}=this;if(this.isClosed())return!1;const jn=new Set(["closing","closed"]),Fr=Er=>Er&&jn.has(Er.readyState);return hn(un)||Fr(pn)||Fr(Qn)||Fr(Wn)}close(){return Yr(this,void 0,void 0,function*(){this.closeCalled||(this.closeCalled=!0,yield this.sessionMetrics.uploadMetrics(),this.pingUpdateTimeout&&clearInterval(this.pingUpdateTimeout),this.connectTimeout&&clearTimeout(this.connectTimeout),this.gatherIceTimeout&&clearTimeout(this.gatherIceTimeout),this.peerConnection.close())})}getPing(){return this.pingTimeMs}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionId(){return this.config.sessionId}getRemotePeer(){return this.config.remotePeer}initializeChannels(un){this.latestTtlStreamChannel=un.createDataChannel("stream.latest-ttl",Vt),this.reliableStreamChannel=un.createDataChannel("stream.reliable",It),this.latestReliableStreamChannel=un.createDataChannel("stream.latest-reliable",$t),this.latestTryOnceStreamChannel=un.createDataChannel("stream.latest-try-once",Ht),this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}sendOffer(){return Yr(this,void 0,void 0,function*(){if(this.sentOffer||(this.sentOffer=!0,hn(this.peerConnection)))return;const{peerConnection:un,config:{sendSignal:pn}}=this,Qn=yield un.createOffer();yield un.setLocalDescription(Qn);const Wn={payload:JSON.stringify({description:Qn})};yield pn(Wn)})}getChannelFromLabel(un){switch(un){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(un,pn){let Qn;try{Qn=Object(jt.encode)(JSON.stringify(pn))}catch(Wn){return void ct.a.warn("Failed to encode RTC message",{error:Wn})}try{un.send(Qn),this.sessionMetrics.incrementMessageSent(pn)}catch(Wn){ct.a.warn("Failed to send message to channel",{error:Wn,channel:un.label})}}channelNotRecognized(un){return un!==this.latestTtlStreamChannel&&un!==this.latestReliableStreamChannel&&un!==this.latestTryOnceStreamChannel&&un!==this.reliableStreamChannel}setupChannel(un){un.onmessage=pn=>{if(this.channelNotRecognized(un))return void ct.a.warn("Received message on unrecognized data channel.");let Qn;try{Qn=JSON.parse(Object(jt.decode)(pn.data))}catch(Wn){return void ct.a.warn("Received unparseable RTC message",{error:Wn,channel:un.label})}if(this.lastMessageTimestamp=new Date().getTime(),Qn=wn(Qn),this.sessionMetrics.incrementMessageReceived(Qn),!this.handleSystemMessage(un,Qn)){if(!this.hasCapabilities(Qn))return void ct.a.warn("Received RTC message that was not within the capability scope of the connection.");(un===this.latestTryOnceStreamChannel||un===this.latestTtlStreamChannel||un===this.latestReliableStreamChannel)&&!this.isLatestMessage(Qn)||this.config.receive(this.config.remotePeer.id,Qn)}},un.onerror=pn=>{ct.a.warn(`Channel error: ${pn.error}`,{error:pn.error,sessionId:this.getSessionId(),channelLabel:un.label})},un.onopen=()=>{ct.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:un.label})},un.onclose=()=>{const pn={bufferedAmount:un.bufferedAmount,sessionId:this.getSessionId(),channelLabel:un.label};this.closeCalled===!1?ct.a.debug("Unexpected channel closed",pn):ct.a.debug("Channel closed",pn)}}handleSystemMessage(un,pn){switch(pn.header.stream.streamType){case"ping":return this.sendSystemMessage(un,{type:"pong",timestamp:Et(pn.payload.ping)}),!0;case"pong":{const Qn=new Date().getTime()-Et(pn.payload.pong);return this.pingTimeMs=Qn,Rt.aggregate("rtc-ping-time",Qn),!0}case"stream-control":return!0;default:return!1}}sendSystemMessage(un,pn){if(un.readyState!=="open")return;const Qn={entityId:Et(this.config.localPeer.deviceId||this.config.localPeer.userId),streamName:`$.${pn.type}`,streamType:pn.type};let Wn;switch(pn.type){case"ping":Wn={ping:new Date().getTime()};break;case"pong":Wn={pong:pn.timestamp};break;case"stream-control":Wn={streamControl:pn.streamControl}}this.sendOnChannel(un,gn(Qn,Wn))}hasCapabilities(un){var pn,Qn;const{localPeer:Wn,remotePeer:jn}=this.config,Fr=(pn=Wn.capabilitySet.streaming)===null||pn===void 0?void 0:pn.streams,Er=Fr&&Fr.some(ar=>ar.receive&&eo(ar.stream,un.header.stream)),wr=(Qn=jn.capabilitySet.streaming)===null||Qn===void 0?void 0:Qn.streams,tr=wr&&wr.some(ar=>ar.send&&eo(ar.stream,un.header.stream));return Er||tr}isLatestMessage(un){const pn=Fn(un.header.stream),Qn=(this.streamLatestTimestamp.get(pn)||0)<=un.header.created;return Qn&&this.streamLatestTimestamp.set(pn,un.header.created),Qn}}var ro=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Fo{constructor(un){this.config=un,this.connections=[],this.connectingSessions=new Map,this.updateInterval=mt({func:()=>ro(this,void 0,void 0,function*(){try{yield this.update()}catch(pn){ct.a.warn("RTC update failed",{error:pn})}}),delay:250*st.a.millisecond,immediate:!0}),this.localPeer=this.createPeer()}send(un,pn,Qn){const Wn=this.getActiveConnection(un);Wn?Wn.isReady()?Wn.send(pn,Qn):ct.a.warn("Attempted to send with an active connection to that peer which was not yet ready."):ct.a.warn("Attempted to send with no active connection to that peer.")}controlRemoteStream(un,pn){const Qn=this.getActiveConnection(un);Qn?Qn.isReady()?Qn.controlRemoteStream(pn):ct.a.warn("Attempted to control remote stream with an active connection to that peer which was not yet ready."):ct.a.warn("Attempted to control remote stream with no active connection to that peer.")}connect(un){return ro(this,void 0,void 0,function*(){const pn=yield this.getLocalPeer();if(this.getActiveConnection(un))return void ct.a.warn("Attempted to connect to peer with an already active connection.");let Qn;try{Qn=yield this.config.signalingClient.createSession(yield this.config.getToken(),{offerPeerId:pn.id,answerPeerId:un})}catch(Wn){Object(Ir.a)(Wn,Wr.a,jn=>jn.statusCode===404),ct.a.warn("Attempted to connect to peer that does not exist.")}if(Qn)for(this.connectingSessions.set(Qn.id,new Date().getTime()),yield this.connectToSession(Qn);;)switch(yield Object(at.a)(.1),this.getConnectionStatus(un)){case"connecting":continue;case"connected":return Qn.id;case"disconnected":return}})}getConnectionStatus(un){const pn=this.getActiveConnection(un);return pn?pn.isReady()?"connected":"connecting":"disconnected"}getIceMode(un){const pn=this.getActiveConnection(un);if(pn)return pn.iceMode}disconnect(un){return ro(this,void 0,void 0,function*(){const pn=this.getActiveConnection(un);pn&&(yield this.closeConnection(pn))})}getLocalPeer(){return ro(this,void 0,void 0,function*(){return yield this.localPeer})}getPeers(){return ro(this,void 0,void 0,function*(){return yield this.config.signalingClient.getPeers(yield this.config.getToken())})}getPing(un){const pn=this.getActiveConnection(un);if(pn)return pn.getPing();ct.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(un){const pn=this.getActiveConnection(un);if(pn)return pn.getLastMessageTimestamp();ct.a.warn("Attempted to get ping time from inactive peer.")}shutdown(){return ro(this,void 0,void 0,function*(){yield this.updateInterval.stop();const un=this.connections;this.connections=[],yield this.closeConnections(un)})}closeConnection(un){return ro(this,void 0,void 0,function*(){this.connectingSessions.delete(un.getSessionId()),yield un.close();try{yield this.config.signalingClient.deleteSession(yield this.config.getToken(),un.getSessionId())}catch(pn){Object(Ir.a)(pn,Wr.a,Qn=>Qn.statusCode===404)}})}getSessions(){return ro(this,void 0,void 0,function*(){const un=yield this.getLocalPeer();return(yield this.config.signalingClient.getSessions(yield this.config.getToken())).filter(pn=>pn.offer.peer.id===un.id||pn.answer.peer.id===un.id)})}createPeer(){return ro(this,void 0,void 0,function*(){return yield this.config.signalingClient.createPeer(yield this.config.getToken(),{capabilitySet:this.config.capabilitySet||{}})})}createRTCPeerConnection(un={}){return ro(this,void 0,void 0,function*(){return new(this.config.alternateRTCPeerConnection||RTCPeerConnection)(Object.assign({iceServers:yield this.config.signalingClient.getIceServers(yield this.config.getToken())},un))})}closeConnections(un){return ro(this,void 0,void 0,function*(){const pn=yield Dt(un.map(Qn=>ro(this,void 0,void 0,function*(){yield this.closeConnection(Qn)})));for(const Qn of pn)ct.a.warn("Request to close session failed",{error:Qn})})}reset(){return ro(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.connectingSessions=new Map,this.localPeer=this.createPeer(),yield this.localPeer})}getActiveConnection(un){return this.connections.find(pn=>pn.getRemotePeer().id===un&&pn.isActive())}update(){return ro(this,void 0,void 0,function*(){const un=yield this.getLocalPeer();try{yield this.config.signalingClient.refreshPeer(yield this.config.getToken(),un.id)}catch(pn){Object(Ir.a)(pn,Wr.a,Qn=>Qn.statusCode===404),ct.a.warn("Peer expired, creating new peer",{peerId:un.id}),yield this.reset()}yield this.handleSessions(yield this.getSessions())})}handleSessions(un){return ro(this,void 0,void 0,function*(){yield this.syncConnectionsAndSessions(un);const pn=un.map(Qn=>({session:Qn,connection:this.connections.find(Wn=>Wn.getSessionId()===Qn.id)}));yield Promise.all(pn.map(({session:Qn,connection:Wn})=>ro(this,void 0,void 0,function*(){return yield this.maintainConnection(Qn,Wn)})))})}syncConnectionsAndSessions(un){return ro(this,void 0,void 0,function*(){const pn=new Set(un.map(jn=>jn.id)),Qn=jn=>pn.has(jn.getSessionId())||this.connectingSessions.has(jn.getSessionId());this.connections=this.connections.filter(jn=>Qn(jn));const Wn=this.connections.filter(jn=>!Qn(jn)||jn.needsClosing());yield Promise.all(Wn.map(jn=>ro(this,void 0,void 0,function*(){yield this.closeConnection(jn)})))})}maintainConnection(un,pn){return ro(this,void 0,void 0,function*(){const Qn=yield this.getLocalPeer(),Wn=un.offer.peer.id===Qn.id;if(pn){if(pn.isReady())try{yield this.config.signalingClient.refreshSession(yield this.config.getToken(),un.id)}catch(jn){Object(Ir.a)(jn,Wr.a,Fr=>Fr.statusCode===404),ct.a.debug("Refresh session not found",{sessionId:un.id})}else if(pn.isActive())try{yield this.consumeSignals(pn)}catch(jn){ct.a.warn("Failed to ingest signals, closing connection",{error:jn}),yield this.closeConnection(pn)}}else{if(Wn)return;yield this.connectToSession(un)}})}connectToSession(un){return ro(this,void 0,void 0,function*(){const pn=yield this.getLocalPeer(),Qn=un.offer.peer.id===pn.id,Wn=yield this.createRTCPeerConnection(),jn=new _o(Wn,{localPeer:Qn?un.offer.peer:un.answer.peer,remotePeer:Qn?un.answer.peer:un.offer.peer,sessionId:un.id,isOffer:Qn,sendSignal:Fr=>this.sendSignal(un.id,Fr),receive:(Fr,Er)=>this.config.receive(Fr,Er)});if(this.connections.find(Fr=>Fr.getSessionId()===un.id))return ct.a.warn("connectToSession called on a session that already has a connection.",{sessionId:un.id}),void(yield jn.close());this.setupHandlers(jn),this.connections.push(jn);try{yield jn.connect()}catch(Fr){ct.a.warn("Failed to handle negotiation, closing connection",{error:Fr}),yield this.closeConnection(jn)}})}setupHandlers(un){const{peerConnection:pn}=un,Qn=un.getSessionId();pn.onconnectionstatechange=()=>ro(this,void 0,void 0,function*(){const Wn=this.connectingSessions.get(Qn);if(Wn===void 0)return;const jn=pn.connectionState;switch(hn(pn)&&this.connectingSessions.delete(Qn),jn){case"connected":{this.connectingSessions.delete(Qn);const Fr=new Date().getTime()-Wn;Rt.aggregate("rtc-connect-time",Fr);break}case"failed":Rt.increment("rtc-connect-failed"),yield this.closeConnection(un)}})}consumeSignals(un){return ro(this,void 0,void 0,function*(){let pn=[];try{pn=yield this.config.signalingClient.takeSignals(yield this.config.getToken(),un.getSessionId())}catch(Qn){Object(Ir.a)(Qn,Wr.a,Wn=>Wn.statusCode===404)}for(const Qn of pn)yield un.handleSignal(Qn)})}sendSignal(un,pn){return ro(this,void 0,void 0,function*(){try{yield this.config.signalingClient.addSignals(yield this.config.getToken(),un,{signals:[pn]})}catch(Qn){Object(Ir.a)(Qn,Wr.a,Wn=>Wn.statusCode===404)}})}}},function(s,o,et){var tt={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let nt;const rt=new Uint8Array(16);function it(){if(!nt&&(nt=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!nt))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return nt(rt)}const ot=[];for(let at=0;at<256;++at)ot.push((at+256).toString(16).slice(1));function st(at,lt=0){return(ot[at[lt+0]]+ot[at[lt+1]]+ot[at[lt+2]]+ot[at[lt+3]]+"-"+ot[at[lt+4]]+ot[at[lt+5]]+"-"+ot[at[lt+6]]+ot[at[lt+7]]+"-"+ot[at[lt+8]]+ot[at[lt+9]]+"-"+ot[at[lt+10]]+ot[at[lt+11]]+ot[at[lt+12]]+ot[at[lt+13]]+ot[at[lt+14]]+ot[at[lt+15]]).toLowerCase()}o.a=function(at,lt,ut){if(tt.randomUUID&&!lt&&!at)return tt.randomUUID();const dt=(at=at||{}).random||(at.rng||it)();if(dt[6]=15&dt[6]|64,dt[8]=63&dt[8]|128,lt){ut=ut||0;for(let ht=0;ht<16;++ht)lt[ut+ht]=dt[ht];return lt}return st(dt)}},,function(s,o,et){et.r(o),et.d(o,"LogClient",function(){return ot});var tt=et(28),nt=et(10),rt=et(11),it=function(st,at,lt,ut){return new(lt||(lt=Promise))(function(dt,ht){function ct(gt){try{ft(ut.next(gt))}catch(yt){ht(yt)}}function pt(gt){try{ft(ut.throw(gt))}catch(yt){ht(yt)}}function ft(gt){var yt;gt.done?dt(gt.value):(yt=gt.value,yt instanceof lt?yt:new lt(function(Ut){Ut(yt)})).then(ct,pt)}ft((ut=ut.apply(st,at||[])).next())})};class ot extends tt.a{log(at){return it(this,void 0,void 0,function*(){const lt=ot.token;try{yield this.fetch("logs",{token:lt,method:"POST",body:JSON.stringify({logs:at}),allowUnsafeRetries:!0})}catch(ut){Object(nt.a)(ut,rt.a,dt=>dt.statusCode===401&<!==void 0),ot.token===lt&&delete ot.token,yield this.log(at)}})}}}])})})(dist$1);function defined$1$1(s,o){if(s!==void 0)return s;throw new Error(o||"Value is undefined")}let FORMANT_API_URL$1="https://api.formant.io";typeof window<"u"&&(FORMANT_API_URL$1=window.FORMANT_API_URL||FORMANT_API_URL$1);let urlParams$2=new URLSearchParams("");typeof window<"u"&&(urlParams$2=new URLSearchParams(window.location.search));const envDev=urlParams$2.get("formant_dev");envDev&&(FORMANT_API_URL$1="https://api-dev.formant.io");const envStage=urlParams$2.get("formant_stage");envStage&&(FORMANT_API_URL$1="https://api-stage.formant.io");const envLocal=urlParams$2.get("formant_local");envLocal&&(FORMANT_API_URL$1="https://api.formant.local");const millisecond$3$1=1,second$3$1=1e3,minute$3$1=60*second$3$1,hour$3$1=60*minute$3$1,day$3$1=24*hour$3$1,week$3$1=7*day$3$1,month$3$1=30*day$3$1,year$3$1=365*day$3$1,duration$3$1={millisecond:millisecond$3$1,second:second$3$1,minute:minute$3$1,hour:hour$3$1,day:day$3$1,week:week$3$1,month:month$3$1,year:year$3$1};function filterDataByType$2(s,o){return s.filter(et=>o.includes(et.type))}function filterDataByTime$2(s,o,et){const tt=o.getTime(),nt=et.getTime();return s.map(rt=>({...rt,points:rt.points.filter(([it])=>it>=tt&&itrt.length>0)}let StoreCache$2=class{constructor({capacity:o,timeout:et}={}){__publicField$1(this,"entries",new Map),__publicField$1(this,"metadata",new Map),__publicField$1(this,"capacity"),__publicField$1(this,"timeout"),this.capacity=o||1e4,this.timeout=et||duration$3$1.minute}get(o,et){const tt=this.keyToCacheKey(o),nt=this.entries.get(tt),rt=this.metadata.get(tt);return(nt===void 0||rt&&rt?.expiration.getTime()this.capacity&&this.deleteOldestEntry()}clear(){this.entries.clear(),[...this.metadata.values()].forEach(o=>o.generating=!1)}clearKey(o){this.metadata.delete(o),this.entries.delete(o)}keyToCacheKey(o){return JSON.stringify(o)}deleteOldestEntry(){if(this.metadata.size<1)return;const[o]=[...this.metadata.entries()].reduce(([et,tt],[nt,rt])=>rt.expiration.getTime(){et.then(rt=>{const it=this.metadata.get(tt);!(it!=null&&it.generating)||this.set(o,rt)})},0)}},QueryStore$2=class{constructor(){__publicField$1(this,"queryStoreCache",new StoreCache$2({capacity:1e4,timeout:20*duration$3$1.second})),__publicField$1(this,"liveQueryStoreCache",new StoreCache$2({capacity:1e4,timeout:200*duration$3$1.millisecond}))}moduleQuery(o,et,tt,nt,rt,it=!1){const ot={...o,names:[...et],types:[...tt]},st=this.query(ot,nt,rt,it);return st===void 0||st==="too much data"?st:filterDataByType$2(st,tt)}query(o,et,tt,nt=!1){const rt={...o,start:startOfMinute$1(et).toISOString(),end:nt?tt.toISOString():addMinutes$1(roundToNearestMinutes$1(tt),1).toISOString(),latestOnly:nt},it=tt>addSeconds$1(new Date,-20);let ot;return it?ot=this.liveQueryCache(rt):ot=this.queryCache(rt),!ot||ot==="too much data"||nt?ot:filterDataByTime$2(ot,et,tt)}queryCache(o){return this.queryStoreCache.get(o,async()=>{try{return await Fleet$1.queryTelemetry(o)}catch(et){throw et}})}liveQueryCache(o){return this.liveQueryStoreCache.get(o,async()=>{try{return await Fleet$1.queryTelemetry(o)}catch(et){throw et}})}};const queryStore$1=new QueryStore$2;let App$1=class{static sendAppMessage(o){window.parent.postMessage(o,"*")}static getCurrentModuleContext(){let o=new URLSearchParams("");return typeof window<"u"&&(o=new URLSearchParams(window.location.search)),o.get("module")}static async getCurrentModuleConfiguration(){let o=new URLSearchParams("");typeof window<"u"&&(o=new URLSearchParams(window.location.search));const et=o.get("configuration");return et===null||et.trim()===""?void 0:(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/module-configurations/`+et,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).configuration}static isModule(){return this.getCurrentModuleContext()!==null}static goToTime(o){this.sendAppMessage({type:"go_to_time",time:o.getTime()})}static goToDevice(o){this.sendAppMessage({type:"go_to_device",deviceId:o})}static showMessage(o){this.sendAppMessage({type:"show_message",message:o})}static requestModuleData(){const o=this.getCurrentModuleContext();if(!o)throw new Error("No module context");this.sendAppMessage({type:"request_module_data",module:o})}static setModuleDateTimeRange(o,et){const tt=this.getCurrentModuleContext();if(!tt)throw new Error("No module context");this.sendAppMessage({type:"set_module_data_time_range",module:tt,before:o,after:et||0})}static refreshAuthToken(){const o=this.getCurrentModuleContext();if(!o)throw new Error("No module context");this.sendAppMessage({type:"refresh_auth_token",module:o})}static sendChannelData(o,et){const tt=this.getCurrentModuleContext();if(!tt)throw new Error("No module context");this.sendAppMessage({type:"send_channel_data",source:tt,channel:o,data:et})}static setupModuleMenus(o){const et=this.getCurrentModuleContext();if(!et)throw new Error("No module context");this.sendAppMessage({type:"setup_module_menus",module:et,menus:o})}static addMenuListener(o){window.addEventListener("message",et=>{const tt=et.data;tt.type==="module_menu_item_clicked"&&o(tt.menu)})}static addAccessTokenRefreshListener(o){window.addEventListener("message",et=>{const tt=et.data;tt.type==="auth_token"&&o(tt.token)})}static addModuleDataListener(o){const et=this.getCurrentModuleContext();et&&this.sendAppMessage({type:"request_module_data",module:et}),window.addEventListener("message",tt=>{const nt=tt.data;nt.type==="module_data"&&o({streams:nt.streams,time:nt.time,queryRange:nt.queryRange})})}static addStreamListener(o,et,tt){const nt=rt=>{const it=rt.data;if(it.type==="module_data"){const{start:ot,end:st}=it.queryRange;tt(queryStore$1.moduleQuery({},o,et,new Date(ot),new Date(st),!1))}};return window.addEventListener("message",nt),()=>window.removeEventListener("message",nt)}static addModuleConfigurationListener(o){window.addEventListener("message",et=>{const tt=et.data;tt.type==="module_configuration"&&o(tt)})}static addChannelDataListener(o,et){window.addEventListener("message",tt=>{const nt=tt.data;nt.type==="channel_data"&&nt.channel===o&&et({source:nt.source,data:nt.data})})}static requestOverviewDevices(o){this.sendAppMessage({type:"request_devices"}),window.addEventListener("message",et=>{const tt=et.data;o(tt)})}static async prompt(o,et){return new Promise(tt=>{const nt=Math.random().toString();this.sendAppMessage({type:"prompt",promptId:nt,schema:o,okText:et?.okText,cancelText:et?.cancelText});const rt=it=>{const ot=it.data;ot.type==="prompt_response"&&ot.promptId===nt&&tt(ot.data),window.removeEventListener("message",rt)};window.addEventListener("message",rt)})}};const _Authentication=class{static async login(s,o){try{const et=await fetch(`${FORMANT_API_URL$1}/v1/admin/auth/login`,{method:"POST",body:JSON.stringify({email:s,password:o}),headers:{"Content-Type":"application/json"}}),tt=await et.json();if(et.status!==200)throw new Error(tt.message);return await _Authentication.loginWithToken(tt.authentication.accessToken,tt.authentication.refreshToken),tt.authentication}catch(et){return _Authentication.waitingForAuth.forEach(tt=>tt(!1)),_Authentication.waitingForAuth=[],Promise.reject(et)}}static async loginWithToken(s,o){const et=JSON.parse(atob(s.split(".")[1]));try{let tt;if(_Authentication.isShareToken=et["formant:claims"]&&et["formant:claims"].type=="share",et["formant:claims"]&&(_Authentication.currentOrganization=et["formant:claims"].organizationId),et["custom:organization_id"]&&(_Authentication.currentOrganization=et["custom:organization_id"]),_Authentication.isShareToken||(tt=et.sub),et["formant:claims"]&&et["formant:claims"].userId&&(tt=et["formant:claims"].userId),tt){const nt=await fetch(`${FORMANT_API_URL$1}/v1/admin/users/${tt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+s}}),rt=await nt.json();if(nt.status!==200)throw new Error(rt.message);_Authentication.currentUser=rt}_Authentication.token=s,_Authentication.waitingForAuth.forEach(nt=>nt(!0))}catch(tt){console.error(tt),_Authentication.waitingForAuth.forEach(nt=>nt(!1))}_Authentication.waitingForAuth=[],o&&(_Authentication.refreshToken=o,setInterval(async()=>{if(_Authentication.refreshToken){const tt=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:_Authentication.refreshToken})})).json();_Authentication.token=tt.authentication.accessToken}},1e3*60*60))}static isAuthenticated(){return _Authentication.token!==void 0}static getCurrentUser(){return _Authentication.currentUser}static async waitTilAuthenticated(){return _Authentication.token!==void 0?!0:new Promise(s=>{_Authentication.waitingForAuth.push(function(o){s(o)})})}static async listenForRefresh(){App$1.addAccessTokenRefreshListener(s=>{this.loginWithToken(s)}),setInterval(async()=>{App$1.refreshAuthToken()},1e3*60*60)}};let Authentication$1=_Authentication;__publicField$1(Authentication$1,"token");__publicField$1(Authentication$1,"refreshToken");__publicField$1(Authentication$1,"currentUser");__publicField$1(Authentication$1,"currentOrganization");__publicField$1(Authentication$1,"isShareToken",!1);__publicField$1(Authentication$1,"defaultDeviceId");__publicField$1(Authentication$1,"waitingForAuth",[]);function delay$2(s){return new Promise(o=>setTimeout(o,s))}let DataChannel$1=class{constructor(o){__publicField$1(this,"ready",!1),__publicField$1(this,"listeners",[]),__publicField$1(this,"openListeners",[]),__publicField$1(this,"closeListeners",[]),__publicField$1(this,"errorListeners",[]),__publicField$1(this,"binaryListeners",[]),__publicField$1(this,"error"),__publicField$1(this,"decoder",new TextDecoder),this.dataChannel=o,this.dataChannel.binaryType="arraybuffer",this.dataChannel.onopen=()=>{this.ready=!0,this.openListeners.forEach(et=>et())},this.dataChannel.onclose=()=>{this.ready=!1,this.closeListeners.forEach(et=>et())},this.dataChannel.onerror=et=>{console.error(et),this.error="An error occurred in DataChannel",this.errorListeners.forEach(tt=>tt(et))},this.dataChannel.onmessage=et=>{this.listeners.forEach(tt=>{const nt=new Uint8Array(et.data),rt=this.decoder.decode(nt);tt(rt)}),this.binaryListeners.forEach(tt=>{tt(new Uint8Array(et.data))})}}addOpenListener(o){this.openListeners.push(o)}removeOpenListener(o){this.openListeners=this.openListeners.filter(et=>et!==o)}addCloseListener(o){this.closeListeners.push(o)}removeCloseListener(o){this.closeListeners=this.closeListeners.filter(et=>et!==o)}addErrorListener(o){this.errorListeners.push(o)}removeErrorListener(o){this.errorListeners=this.errorListeners.filter(et=>et!==o)}async waitTilReady(){return this.ready?!0:new Promise((o,et)=>{let tt=window.setInterval(()=>{this.ready&&(window.clearInterval(tt),o(!0)),this.error&&et(this.error)},10)})}send(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}sendBinary(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}addListener(o){this.listeners.push(o)}removeListener(o){const et=this.listeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.listeners.splice(et,1)}addBinaryListener(o){this.binaryListeners.push(o)}removeBinaryListener(o){const et=this.binaryListeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.binaryListeners.splice(et,1)}},CaptureStream$1=class{constructor(o){__publicField$1(this,"token"),this.captureSession=o}async ingestJSON(o){if(!this.token){const et=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/capture-sessions/${this.captureSession.code}/authenticate`,{method:"POST"})).json();this.token=et.token}await fetch(`${FORMANT_API_URL$1}/v1/ingest`,{method:"POST",body:JSON.stringify({deviceId:this.captureSession.deviceId,name:this.captureSession.streamName,type:"json",points:[[Date.now(),JSON.stringify(o)]]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+this.token}})}},Manipulator$1=class{constructor(o,et){__publicField$1(this,"currentListeners",[]),__publicField$1(this,"onRealtimeMessage",(tt,nt)=>{nt.payload.jointState&&this.currentListeners.forEach(rt=>{nt.payload.jointState&&rt(nt.payload.jointState)})}),this.device=o,this.config=et}async synchronize(){this.device.addRealtimeListener(this.onRealtimeMessage),this.device.startListeningToRealtimeDataStream(this.config.currentJointStateStream)}async desynchronize(){this.device.removeRealtimeListener(this.onRealtimeMessage),this.device.stopListeningToRealtimeDataStream(this.config.currentJointStateStream)}async addCurrentJointStateListener(o){this.currentListeners.push(o)}},RequestDataChannel$1=class{constructor(o,et,tt){__publicField$1(this,"channel"),__publicField$1(this,"requestIdToResponseMap",new Map),this.device=o,this.channel_name=et,this.timeout=tt}addOpenListener(o){defined$1$1(this.channel,"channel not initalized").addOpenListener(o)}removeOpenListener(o){defined$1$1(this.channel,"channel not initalized").removeOpenListener(o)}addCloseListener(o){defined$1$1(this.channel,"channel not initalized").addCloseListener(o)}removeCloseListener(o){defined$1$1(this.channel,"channel not initalized").removeCloseListener(o)}addErrorListener(o){defined$1$1(this.channel,"channel not initalized").addErrorListener(o)}removeErrorListener(o){defined$1$1(this.channel,"channel not initalized").removeErrorListener(o)}},BinaryRequestDataChannel$1=class extends RequestDataChannel$1{constructor(){super(...arguments),__publicField$1(this,"RESPONSE_SUCCESS_BYTE",0),__publicField$1(this,"decoder",new TextDecoder)}generateBinaryId(){const o=new Uint8Array(16);for(let et=0;et{const et=o.slice(0,16).toString();if(et.length===0)throw new Error("Invalid response");const tt=o.slice(16);if(tt.length===0)throw new Error("Invalid response");this.requestIdToResponseMap.has(et)&&this.requestIdToResponseMap.set(et,tt)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateBinaryId(),it=rt.toString();tt.set(it,!0),et.sendBinary(new Uint8Array([...rt,...o]));const ot=new Date().getTime();for(;new Date().getTime(){const et=JSON.parse(o),{id:tt,data:nt,error:rt}=et;if(!tt)throw new Error("Invalid response");if(!nt&&!rt)throw new Error("Invalid response");this.requestIdToResponseMap.has(tt)&&this.requestIdToResponseMap.set(tt,et)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateTextId();tt.set(rt,!0),et.send(JSON.stringify({id:rt,data:o}));const it=new Date().getTime();for(;new Date().getTime(){this.realtimeListeners.forEach(it=>it(nt,rt))}),this.id=o,this.name=et,this.organizationId=tt}async getLatestTelemetry(){return(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}async getConfiguration(){let o=await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}});const et=await o.json();if(!et.state.reportedConfiguration)throw new Error("Device has no configuration, has it ever been turned on?");const tt=et.state.reportedConfiguration.version;return o=await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/${this.id}/configurations/${tt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}}),(await o.json()).document}async getFileUrl(o){return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[o]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).fileUrls}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error(`Realtime connection hasn't been started for ${this.id}`)}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async startRealtimeConnection(o){if(this.rtcClient)throw new Error(`Already created realtime connection to device ${this.id}`);{let et;if(rtcClientVersion==="1"?et=new dist$1.exports.RtcClientV1({signalingClient:new dist$1.exports.RtcSignalingClient(FORMANT_API_URL$1+"/v1/signaling"),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:this.handleMessage}):et=new dist$1.exports.RtcClient({signalingClient:new dist$1.exports.SignalingPromiseClient(FORMANT_API_URL$1,null,null),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:this.handleMessage,sessionType:o}),et.isReady)for(;!et.isReady();)await delay$2(100);const tt=(await et.getPeers()).find(nt=>nt.deviceId===this.id);if(!tt)throw new Error("Cannot find peer, is the robot offline?");for(this.remoteDevicePeerId=tt.id,await et.connect(this.remoteDevicePeerId);et.getConnectionStatus(this.remoteDevicePeerId)!=="connected";)await delay$2(100);this.rtcClient=et}}async sendRealtimeMessage(o,et={channelLabel:"stream.reliable"}){const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.send(defined$1$1(nt).id,o,et)}addRealtimeListener(o){this.realtimeListeners.push(o)}removeRealtimeListener(o){const et=this.realtimeListeners.indexOf(o);if(et===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(et,1)}async getRealtimeAudioStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="audio_common_msgs/AudioData"&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});return st}async getRealtimeVideoStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="formant/H264VideoFrame"&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});return st}async getRealtimeManipulators(){var o;const et=await this.getConfiguration(),tt=[];for(const nt of(o=et.teleop.rosStreams)!=null?o:[])nt.topicType=="sensor_msgs/JointState"&&tt.push(new Manipulator$1(this,{currentJointStateStream:{name:nt.topicName},plannedJointStateStream:nt.plannedTopic?{name:nt.plannedTopic}:void 0,planValidStream:nt.planValidTopic?{name:nt.planValidTopic}:void 0,endEffectorStream:nt.endEffectorTopic?{name:nt.endEffectorTopic}:void 0,endEffectorLinkName:nt.endEffectorLinkName,baseReferenceFrame:nt.baseReferenceFrame,localFrame:nt.localFrame}));return tt}async startListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!0,pipeline:"telemetry"})}async changeStreamAudioType(o,et){const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.controlRemoteStream(defined$1$1(nt).id,{streamName:o,setAudioFormat:et})}async disableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!1,pipeline:"telemetry"})}async getRemotePeer(){const o=(await defined$1$1(this.rtcClient,"Realtime connection has not been started").getPeers()).find(et=>et.deviceId===this.id);return defined$1$1(o,"Could not find remote peer for device "+this.id)}async stopRealtimeConnection(){if(this.rtcClient)await this.rtcClient.disconnect(this.id);else throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async isInRealtimeSession(){let o=await Fleet$1.getPeers(),et=await Fleet$1.getRealtimeSessions(),tt=o.find(nt=>nt.deviceId===this.id);return tt?et[tt.id].length>0:!1}async getAvailableCommands(){return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/command-templates/`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.map(o=>({name:o.name,id:o.id,command:o.command,description:o.description,parameterEnabled:o.parameterEnabled,parameterValue:o.parameterValue,parameterMeta:o.parameterMeta,enabled:o.enabled}))}async sendCommand(o,et,tt,nt){var rt;const it=(await this.getAvailableCommands()).find(at=>at.name===o);if(!it)throw new Error(`Could not find command with name "${o}"`);let ot;if(et===void 0)if(it.parameterEnabled&&it.parameterValue)ot=it.parameterValue;else throw new Error("Command has no default parameter value, you must provide one");else ot=et;let st={value:ot,scrubberTime:(tt||new Date).toISOString(),meta:{...it.parameterMeta,...nt}};await fetch(`${FORMANT_API_URL$1}/v1/admin/commands`,{method:"POST",body:JSON.stringify({commandTemplateId:it.id,organizationId:this.organizationId,deviceId:this.id,command:it.command,parameter:st,userId:(rt=Authentication$1.currentUser)==null?void 0:rt.id}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})}async createCustomDataChannel(o,et){if(rtcClientVersion==="1")throw new Error("createCustomDataChannel is not supported in rtcClientVersion 1");const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer(),rt=await new Promise(it=>{tt.createCustomDataChannel(defined$1$1(nt).id,o,{ordered:!0,...et},!1,(ot,st)=>{const at=new DataChannel$1(st);it(at)})});return await rt.waitTilReady(),rt}createCustomRequestDataChannel(o,et=3e3){return new TextRequestDataChannel$1(this,o,et)}createCustomBinaryRequestDataChannel(o,et=3e3){return new BinaryRequestDataChannel$1(this,o,et)}async createCaptureStream(o){const et=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/capture-sessions`,{method:"POST",body:JSON.stringify({deviceId:this.id,streamName:o,tags:{}}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json();return new CaptureStream$1(et)}async getTelemetry(o,et,tt,nt){return await Fleet$1.getTelemetry(this.id,o,et,tt,nt)}async getTelemetryStreams(){var o,et;const tt=await this.getConfiguration(),nt=await fetch(`${FORMANT_API_URL$1}/v1/queries/metadata/stream-names`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}}),rt=[],it=[];return(et=(o=tt.telemetry)==null?void 0:o.streams)==null||et.forEach(ot=>{ot.disabled!==!0&&rt.push(ot.name),ot.onDemand===!0&&it.push(ot.name)}),console.log(it),(await nt.json()).items.filter(ot=>!rt.includes(ot)).map(ot=>({name:ot,onDemand:it.includes(ot)}))}async createInterventionRequest(o,et,tt,nt){return await(await fetch(`${FORMANT_API_URL$1}/v1/admin/intervention-requests`,{method:"POST",body:JSON.stringify({message:o,interventionType:et,time:new Date().toISOString(),deviceId:this.id,tags:nt,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()}async addInterventionResponse(o,et,tt){return await(await fetch(`${FORMANT_API_URL$1}/v1/admin/intervention-responses`,{method:"POST",body:JSON.stringify({interventionId:o,interventionType:et,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()}async getAnnotationCount(o,et){return await Fleet$1.getAnnotationCount({...o,deviceIds:[this.id]},et)}async getAnnotationCountByIntervals(o,et,tt){return await Fleet$1.getAnnotationCountByIntervals({...o,deviceIds:[this.id]},et,tt)}async eventsCounter(o,et,tt,nt,rt){return await Fleet$1.eventsCounter(o,et,tt,nt,{...rt,deviceIds:[this.id]})}},PeerDevice$1=class{constructor(o){__publicField$1(this,"rtcClient"),__publicField$1(this,"remoteDevicePeerId"),__publicField$1(this,"realtimeListeners",[]),__publicField$1(this,"id"),__publicField$1(this,"handleMessage",(et,tt)=>{this.realtimeListeners.forEach(nt=>nt(et,tt))}),this.peerUrl=o}async getLatestTelemetry(){const o=await(await fetch(`${this.peerUrl}/telemetry`)).json();return Object.entries(o).map(([et,tt])=>({deviceId:this.id,streamName:et,streamType:"json",currentValue:tt,currentValueTime:tt.timestamp,tags:{}}))}async getDeviceId(){return(await(await fetch(`${this.peerUrl}/configuration`)).json()).agent_config.id}async getConfiguration(){return(await(await fetch(`${this.peerUrl}/configuration`)).json()).agent_config.document}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}async startRealtimeConnection(o){if(this.rtcClient)throw new Error(`Already created realtime connection to device ${this.id}`);{const et=new dist$1.exports.RtcClient({lanOnlyMode:!0,receive:this.handleMessage,sessionType:o});for(await et.connectLan(this.peerUrl);et.getConnectionStatus(this.peerUrl)!=="connected";)await delay$2(100);this.rtcClient=et}}addRealtimeListener(o){this.realtimeListeners.push(o)}removeRealtimeListener(o){const et=this.realtimeListeners.indexOf(o);if(et===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(et,1)}async getRealtimeVideoStreams(){var o,et,tt;const nt=await this.getConfiguration(),rt=[];for(const it of(o=nt.teleop.hardwareStreams)!=null?o:[])it.rtcStreamType==="h264-video-frame"&&rt.push({name:it.name});for(const it of(et=nt.teleop.rosStreams)!=null?et:[])it.topicType=="formant/H264VideoFrame"&&rt.push({name:it.topicName});for(const it of(tt=nt.teleop.customStreams)!=null?tt:[])it.rtcStreamType==="h264-video-frame"&&rt.push({name:it.name});return rt}async getRealtimeManipulators(){var o;const et=await this.getConfiguration(),tt=[];for(const nt of(o=et.teleop.rosStreams)!=null?o:[])nt.topicType=="sensor_msgs/JointState"&&tt.push(new Manipulator$1(this,{currentJointStateStream:{name:nt.topicName},plannedJointStateStream:nt.plannedTopic?{name:nt.plannedTopic}:void 0,planValidStream:nt.planValidTopic?{name:nt.planValidTopic}:void 0,endEffectorStream:nt.endEffectorTopic?{name:nt.endEffectorTopic}:void 0,endEffectorLinkName:nt.endEffectorLinkName,baseReferenceFrame:nt.baseReferenceFrame,localFrame:nt.localFrame}));return tt}async startListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!0,pipeline:"telemetry"})}async disableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!1,pipeline:"telemetry"})}async getRemotePeer(){return{id:this.peerUrl,organizationId:"",deviceId:this.id,capabilities:[],capabilitySet:{}}}async stopRealtimeConnection(){if(this.rtcClient)await this.rtcClient.disconnect(this.id);else throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async createCustomDataChannel(o,et){const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer(),rt=await new Promise(it=>{tt.createCustomDataChannel(defined$1$1(nt).id,o,{ordered:!0,...et},!1,(ot,st)=>{const at=new DataChannel$1(st);it(at)})});return await rt.waitTilReady(),rt}createCustomRequestDataChannel(o,et=3e3){return new TextRequestDataChannel$1(this,o,et)}createCustomBinaryRequestDataChannel(o,et=3e3){return new BinaryRequestDataChannel$1(this,o,et)}};const _Fleet=class{static async setDefaultDevice(s){_Fleet.defaultDeviceId=s}static async getCurrentDevice(){if(!Authentication$1.token)throw new Error("Not authenticated");if(!_Fleet.defaultDeviceId)throw new Error("No known default device");const s=(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/device-details/query`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.find(et=>et.id===_Fleet.defaultDeviceId).name,o=new Device$1(_Fleet.defaultDeviceId,s,defined$1$1(Authentication$1.currentOrganization));return _Fleet.knownContext.push(new WeakRef(o)),o}static async getPeerDevice(s){const o=new PeerDevice$1(s);return o.id=await o.getDeviceId(),o}static async getDevice(s){if(!Authentication$1.token)throw new Error("Not authenticated");const o=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json(),et=o.name,tt=new Device$1(s,et,o.organizationId);return _Fleet.knownContext.push(new WeakRef(tt)),tt}static async getDevices(){if(!Authentication$1.token)throw new Error("Not authenticated");const s=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json();return s.items,s.items.map(o=>new Device$1(o.id,o.name,o.organizationId))}static async queryDevices(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.map(o=>new Device$1(o.id,o.name,o.organizationId))}static async getOnlineDevices(){if(!Authentication$1.token)throw new Error("Not authenticated");const s=(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/online-devices`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items;return(await _Fleet.getDevices()).filter(o=>s.includes(o.id))}static async getPeers(){if(!Authentication$1.token)throw new Error("Not authenticated");return await new dist$1.exports.RtcClient({signalingClient:new dist$1.exports.SignalingPromiseClient(FORMANT_API_URL$1,null,null),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:()=>{}}).getPeers()}static async getRealtimeSessions(){if(!Authentication$1.token)throw new Error("Not authenticated");return await new dist$1.exports.RtcClient({signalingClient:new dist$1.exports.SignalingPromiseClient(FORMANT_API_URL$1,null,null),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:()=>{}}).getSessions()}static async getRealtimeDevices(){if(!Authentication$1.token)throw new Error("Not authenticated");const s=(await(await fetch(`${FORMANT_API_URL$1}/v1/signaling/peers`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.map(o=>o.deviceId);return(await _Fleet.getDevices()).filter(o=>s.includes(o.id))}static async getLatestTelemetry(s){let o=s;return s&&!Array.isArray(s)&&(s=[s]),(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:o}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getTelemetry(s,o,et,tt,nt){let rt=s;Array.isArray(s)||(rt=[s]);let it=o;return Array.isArray(o)||(it=[o]),(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/queries`,{method:"POST",body:JSON.stringify({deviceIds:rt,end:tt.toISOString(),names:it,start:et.toISOString(),tags:nt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getFileUrl(s){const o=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[s]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json();if(o.fileUrls.length===0)throw new Error("File not found");return o.fileUrls[0]}static async queryTelemetry(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/queries`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async aggregateTelemetry(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/queries`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).aggregates}static async queryEvents(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/events/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getEvent(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/events/query/id=${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getInterventions(){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/intervention-requests`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getCurrentGroup(){if(!Authentication$1.token)throw new Error("Not authenticated");let s=new URLSearchParams("");typeof window<"u"&&(s=new URLSearchParams(window.location.search));const o=s.get("group");if(o===null||o.trim()==="")return;const et=await fetch(`${FORMANT_API_URL$1}/v1/admin/groups/`+o,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}}),{tagKey:tt,tagValue:nt}=await et.json();return await this.queryDevices({tags:{[tt]:[nt]},enabled:!0,type:"default"})}static async getAnnotationCount(s,o){return(await this.queryEvents({...s,eventTypes:["annotation"]})).filter(et=>!!et.tags&&Object.keys(et.tags).includes(o)).reduce((et,tt)=>{const nt=tt.tags[o];return nt in et?(et[nt]+=1,et):(et[nt]=1,et)},{})}static async getAnnotationCountByIntervals(s,o,et){const{end:tt,start:nt}=s,rt=aggregateByDateFunctions$1[et].interval({start:new Date(nt),end:new Date(tt)}),it=rt.map((st,at)=>{const lt=new Date(st).toISOString(),ut=at===rt.length-1?new Date(Date.now()).toISOString():new Date(rt[at+1]);return this.getAnnotationCount({...s,start:lt,end:ut},o)}),ot=await Promise.all(it);return rt.map((st,at)=>({date:new Date(st).toISOString(),annotations:ot[at]}))}static async getStreams(){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.filter(s=>s.enabled)}static async patchStream(s){if(!Authentication$1.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL$1}/v1/admin/streams/${s.id}`,{method:"PATCH",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()}static async eventsCounter(s,o,et,tt,nt){const rt=aggregateByDateFunctions$1[o];return await Promise.all(Array(et).fill(0).map(async(it,ot)=>{const st=new Date(tt),at=rt.sub(rt.start(st),et-ot-1),lt=rt.sub(rt.end(st),et-ot-1),ut=formatTimeFrameText$1(at.toLocaleDateString(),lt.toLocaleDateString()),dt=await _Fleet.queryEvents({...nt,eventTypes:s,start:new Date(at).toISOString(),end:new Date(lt).toISOString()});return{date:ut,events:dt}}))}};let Fleet$1=_Fleet;__publicField$1(Fleet$1,"defaultDeviceId");__publicField$1(Fleet$1,"knownContext",[]);const aggregateByDateFunctions$1={day:{interval:eachDayOfInterval$1,start:startOfDay$1,end:endOfDay$1,sub:subDays$1,get:getDay$1},week:{interval:eachWeekOfInterval$1,start:startOfWeek$1,end:endOfWeek$1,sub:subWeeks$1,get:getWeek$1},month:{interval:eachMonthOfInterval$1,start:startOfMonth$1,end:endOfMonth$1,sub:subMonths$1,get:getMonth$1},year:{interval:eachYearOfInterval$1,start:startOfYear$1,end:endOfYear$1,sub:subYears$1,get:getYear$1},hour:{interval:eachHourOfInterval$1,start:startOfHour$1,end:endOfHour$1,sub:subHours$1,get:getHours$1},minute:{interval:eachMinuteOfInterval$1,start:startOfMinute$1,end:endOfMinute$1,sub:subMinutes$1,get:getMinutes$1},quarter:{interval:eachQuarterOfInterval$1,start:startOfQuarter$1,end:endOfQuarter$1,sub:subQuarters$1,get:getQuarter$1}},formatTimeFrameText$1=(s,o)=>s.split("/")[0]+"/"+s.split("/")[1]+"–"+o.split("/")[0]+"/"+o.split("/")[1];let urlParams=new URLSearchParams("");typeof window<"u"&&(urlParams=new URLSearchParams(window.location.search));const urlDevice=urlParams.get("device");urlDevice&&Fleet$1.setDefaultDevice(urlDevice);const urlAuth=urlParams.get("auth");urlAuth&&Authentication$1.loginWithToken(urlAuth);const moduleName=urlParams.get("module");moduleName&&Authentication$1.listenForRefresh();dist$1.exports.IRtcSendConfiguration;dist$1.exports.IRtcStreamMessage;dist$1.exports.IRtcStreamPayload;reactExports.createContext(void 0);var lodashExports={},lodash={get exports(){return lodashExports},set exports(s){lodashExports=s}};/** +`),Error.captureStackTrace(this,tt)}}s.exports=nt=>{if(nt.length>2)throw new tt(nt);function rt(ot={}){this.options=ot}function it(ot){return new rt(ot)}return rt.prototype.transform=nt,it.Format=rt,it}},function(s,o,et){function tt(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")}function nt(it,ot){for(var st=0;st0&&arguments[0]!==void 0?arguments[0]:{};tt(this,it),this.loggers=new Map,this.options=at}var ot,st;return ot=it,(st=[{key:"add",value:function(at,lt){var ut=this;if(!this.loggers.has(at)){var dt=(lt=Object.assign({},lt||this.options)).transports||this.options.transports;lt.transports=dt?dt.slice():[];var ht=rt(lt);ht.on("close",function(){return ut._delete(at)}),this.loggers.set(at,ht)}return this.loggers.get(at)}},{key:"get",value:function(at,lt){return this.add(at,lt)}},{key:"has",value:function(at){return!!this.loggers.has(at)}},{key:"close",value:function(at){var lt=this;if(at)return this._removeLogger(at);this.loggers.forEach(function(ut,dt){return lt._removeLogger(dt)})}},{key:"_removeLogger",value:function(at){this.loggers.has(at)&&(this.loggers.get(at).close(),this._delete(at))}},{key:"_delete",value:function(at){this.loggers.delete(at)}}])&&nt(ot.prototype,st),it}()},function(s,o,et){(function(tt){const nt=et(52),rt=/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/;s.exports=function(it,ot,st,at){let lt,ut,dt=!1,ht=!1;const ct=et(94);function pt(yt){at(ot,yt)}function ft(yt,Ut){let Ft=`"${ot}" ${Ut}`;throw yt&&(Ft=`${Ft}`),ut&&(Ft=`${Ft}. An example of a valid value would be: ${ut}`),new nt(Ft)}const gt={convertFromBase64:function(){return pt("marking for base64 conversion"),dt=!0,gt},default:function(yt){if(typeof yt=="number")lt=yt.toString();else if(Array.isArray(yt)||typeof yt=="object"&&yt!==null)lt=JSON.stringify(yt);else{if(typeof yt!="string")throw new nt("values passed to default() must be of Number, String, Array, or Object type");lt=yt}return pt(`setting default value to "${lt}"`),gt},required:function(yt){return yt===void 0?(pt("marked as required"),ht=!0):(pt(`setting required flag to ${yt}`),ht=yt),gt},example:function(yt){return ut=yt,gt}};return Object.entries({...ct,...st}).forEach(([yt,Ut])=>{gt[yt]=function(Ft){return function(){let mt=it[ot];if(pt(`will be read from the environment using "${Ft.name}" accessor`),mt===void 0)if(lt===void 0&&ht)pt("was not found in the environment, but is required to be set"),ft(void 0,"is a required variable, but it was not set");else{if(lt===void 0)return void pt("was not found in the environment, but is not required. returning undefined");pt(`was not found in the environment, parsing default value "${lt}" instead`),mt=lt}ht&&(pt("verifying variable value is not an empty string"),mt.trim().length===0&&ft(void 0,"is a required variable, but its value was empty")),dt&&(pt("verifying variable is a valid base64 string"),mt.match(rt)||ft(mt,"should be a valid base64 string if using convertFromBase64"),pt("converting from base64 to utf8 string"),mt=tt.from(mt,"base64").toString());const vt=[mt].concat(Array.prototype.slice.call(arguments));try{pt(`passing value "${mt}" to "${Ft.name}" accessor`);const At=Ft.apply(Ft,vt);return pt(`parsed successfully, returning ${At}`),At}catch(At){ft(mt,At.message)}}}(Ut)}),gt}}).call(this,et(5).Buffer)},function(s,o,et){const tt=et(33);s.exports=function(nt,rt){return rt=rt||",",nt.length?tt(nt).split(rt).filter(Boolean):[]}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(nt!=="false"&&nt!=="true")throw new Error('should be either "true", "false", "TRUE", or "FALSE"');return nt!=="false"}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(["false","0","true","1"].indexOf(nt)===-1)throw new Error('should be either "true", "false", "TRUE", "FALSE", 1, or 0');return!(nt==="0"||nt==="false")}},function(s,o,et){const tt=et(95);s.exports=function(nt){var rt=tt(nt);if(rt>65535)throw new Error("cannot assign a port number greater than 65535");return rt}},function(s,o,et){const tt=et(33);s.exports=function(nt,rt){const it=tt(nt);if(rt.indexOf(it)<0)throw new Error(`should be one of [${rt.join(", ")}]`);return it}},function(s,o,et){const tt=et(54);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative float");return rt}},function(s,o,et){const tt=et(54);s.exports=function(nt){const rt=tt(nt);if(rt<0)throw new Error("should be a positive float");return rt}},function(s,o,et){const tt=et(53);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative integer");return rt}},function(s,o,et){const tt=et(55);s.exports=function(nt){var rt=tt(nt);if(!Array.isArray(rt))throw new Error("should be a parseable JSON Array");return rt}},function(s,o,et){const tt=et(55);s.exports=function(nt){var rt=tt(nt);if(Array.isArray(rt))throw new Error("should be a parseable JSON Object");return rt}},function(s,o,et){s.exports=function(tt,nt){try{RegExp(void 0,nt)}catch{throw new Error("invalid regexp flags")}try{return new RegExp(tt,nt)}catch{throw new Error("should be a valid regexp")}}},function(s,o,et){const tt=et(96);s.exports=function(nt){return tt(nt).toString()}},function(s,o,et){const tt=et(33),nt=/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021\u0023-\u005b\u005d-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021-\u005a\u0053-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])+)\])$/;s.exports=function(rt){const it=tt(rt);if(!nt.test(it))throw new Error("should be a valid email address");return it}},function(s,o,et){s.exports=function(tt,nt){return function(rt,it){nt&&nt.match(/prod|production/)||tt(`env-var (${rt}): ${it}`)}}},function(s,o,et){(function(tt){(function(){var nt,rt,it,ot,st,at;typeof performance<"u"&&performance!==null&&performance.now?s.exports=function(){return performance.now()}:tt!=null&&tt.hrtime?(s.exports=function(){return(nt()-st)/1e6},rt=tt.hrtime,ot=(nt=function(){var lt;return 1e9*(lt=rt())[0]+lt[1]})(),at=1e9*tt.uptime(),st=ot-at):Date.now?(s.exports=function(){return Date.now()-it},it=Date.now()):(s.exports=function(){return new Date().getTime()-it},it=new Date().getTime())}).call(this)}).call(this,et(2))},function(s,o,et){(function(tt){(function(nt){function rt(ot){if((ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextEncoder': The encoding label provided ('"+ot+"') is invalid.")}function it(ot,st){if(st=st===void 0?{fatal:!1}:st,(ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextDecoder': The encoding label provided ('"+ot+"') is invalid.");if(st.fatal)throw Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.")}if(nt.TextEncoder&&nt.TextDecoder)return!1;Object.defineProperty(rt.prototype,"encoding",{value:"utf-8"}),rt.prototype.encode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to encode: the 'stream' option is unsupported.");st=0;for(var at=ot.length,lt=0,ut=Math.max(32,at+(at>>1)+7),dt=new Uint8Array(ut>>3<<3);st=ht){if(st=ht)continue}if(lt+4>dt.length&&(ut+=8,ut=(ut*=1+st/ot.length*2)>>3<<3,(ct=new Uint8Array(ut)).set(dt),dt=ct),(4294967168&ht)==0)dt[lt++]=ht;else{if(!(4294965248&ht))dt[lt++]=ht>>6&31|192;else if(!(4294901760&ht))dt[lt++]=ht>>12&15|224,dt[lt++]=ht>>6&63|128;else{if(4292870144&ht)continue;dt[lt++]=ht>>18&7|240,dt[lt++]=ht>>12&63|128,dt[lt++]=ht>>6&63|128}dt[lt++]=63&ht|128}}return dt.slice(0,lt)},Object.defineProperty(it.prototype,"encoding",{value:"utf-8"}),Object.defineProperty(it.prototype,"fatal",{value:!1}),Object.defineProperty(it.prototype,"ignoreBOM",{value:!1}),it.prototype.decode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to decode: the 'stream' option is unsupported.");st=0;for(var at=(ot=new Uint8Array(ot)).length,lt=[];st>>10&1023|55296),ut=56320|1023&ut),lt.push(ut))}return String.fromCharCode.apply(null,lt)},nt.TextEncoder=rt,nt.TextDecoder=it})(typeof window<"u"?window:tt!==void 0?tt:this)}).call(this,et(6))},function(s,o,et){et.r(o),et.d(o,"AuthClient",function(){return rt}),et.d(o,"RtcSignalingClient",function(){return ot}),et.d(o,"Credentials",function(){return xt}),et.d(o,"IRtcStream",function(){}),et.d(o,"SignalingPromiseClient",function(){return Ct.SignalingPromiseClient}),et.d(o,"IRtcClientConfigurationV1",function(){}),et.d(o,"IRtcClientConfiguration",function(){}),et.d(o,"IRtcConnectionStatsInfo",function(){}),et.d(o,"IRtcSendConfiguration",function(){}),et.d(o,"IRtcSessionMetricsMessageCounts",function(){}),et.d(o,"IRtcStreamMessage",function(){}),et.d(o,"IRtcStreamPayload",function(){}),et.d(o,"IStreamControl",function(){}),et.d(o,"RtcClient",function(){return _r}),et.d(o,"RtcClientV1",function(){return Fo}),et.d(o,"createRtcStreamMessage",function(){return gn});var tt=et(28),nt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class rt extends tt.a{adminSignup(un,pn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/admin-signup",{token:pn,method:"POST",body:JSON.stringify(un)})})}login(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login",{method:"POST",body:JSON.stringify(un),allowUnsafeRetries:!0})})}loginWithGoogleToken(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login-google",{method:"POST",body:JSON.stringify(un),allowUnsafeRetries:!0})})}refresh(un,pn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/refresh",{method:"POST",body:JSON.stringify({refreshToken:un,tokenExpirationSeconds:pn}),allowUnsafeRetries:!0})})}respondToNewPasswordRequiredChallenge(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/respond-to-new-password-required-challenge",{method:"POST",body:JSON.stringify(un)})})}forgotPassword(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/forgot-password",{method:"POST",body:JSON.stringify({email:un})})})}confirmForgotPassword(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/confirm-forgot-password",{method:"POST",body:JSON.stringify(un)})})}resendInvitation(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/resend-invitation",{method:"POST",body:JSON.stringify({email:un})})})}changePassword({token:un,refreshToken:pn,currentPassword:Qn,newPassword:Jn}){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/change-password",{token:un,method:"POST",body:JSON.stringify({refreshToken:pn,currentPassword:Qn,newPassword:Jn})})})}getDeviceCredentials(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/device-credentials",{token:un,method:"POST",allowUnsafeRetries:!0})})}impersonate(un,pn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/impersonate",{token:un,method:"POST",allowUnsafeRetries:!0,body:JSON.stringify({userId:pn})})})}createServiceAccount(un,pn,Qn,Jn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/service-account",{token:un,method:"POST",allowUnsafeRetries:!0,body:JSON.stringify({name:pn,roleId:Qn,tags:Jn})})})}getFeatures(un){return nt(this,void 0,void 0,function*(){return(yield this.fetch("auth/features",{token:un})).features})}}var it=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class ot extends tt.a{createPeer(un,pn){return it(this,void 0,void 0,function*(){return yield this.fetch("peers",{token:un,method:"POST",body:JSON.stringify(pn)})})}getPeers(un){return it(this,void 0,void 0,function*(){return(yield this.fetch("peers",{token:un})).items})}refreshPeer(un,pn){return it(this,void 0,void 0,function*(){yield this.fetch(`peers/${pn}/refresh`,{token:un,method:"POST",allowUnsafeRetries:!0})})}createSession(un,pn){return it(this,void 0,void 0,function*(){return yield this.fetch("sessions",{token:un,method:"POST",body:JSON.stringify(pn)})})}refreshSession(un,pn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${pn}/refresh`,{token:un,method:"POST",allowUnsafeRetries:!0})})}deleteSession(un,pn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${pn}`,{token:un,method:"DELETE",allowUnsafeRetries:!0})})}getSessions(un){return it(this,void 0,void 0,function*(){return(yield this.fetch("sessions",{token:un})).items})}getIceServers(un){return it(this,void 0,void 0,function*(){return(yield this.fetch("ice-servers",{token:un})).items})}addSignals(un,pn,Qn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${pn}/add-signals`,{token:un,method:"POST",body:JSON.stringify(Qn)})})}takeSignals(un,pn){return it(this,void 0,void 0,function*(){return(yield this.fetch(`sessions/${pn}/take-signals`,{token:un,method:"POST"})).items})}}var st=et(1),at=et(8),lt=et(14),ut=et.n(lt),dt=et(104),ht=et.n(dt),ct=et(0),pt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class ft{constructor(un){this.name="LogReporter",this.type="simple",this.message=un}send(un){return pt(this,void 0,void 0,function*(){var pn,Qn;ct.a.info(this.message,(pn=un.reduce((Jn,jn)=>Object.assign(Object.assign({},Jn),{[jn.name]:jn.stat}),{}),Qn=Jn=>{const{sum:jn,count:Fr}=Jn,Er=jn/Fr;return Object.assign(Object.assign({},Jn),{average:Er})},Object.keys(pn).reduce((Jn,jn)=>Object.assign(Object.assign({},Jn),{[jn]:Qn(pn[jn])}),{})))})}}var gt=et(4),yt=et(39);function Ut(kn){return!!kn.match(/^[a-zA-Z0-9-_.,:?'"()@\/\\#$+ ]{1,255}$/)}var Ft=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};function mt({func:kn,delay:un,immediate:pn}){let Qn=!1,Jn=setTimeout(function Fr(){return Ft(this,void 0,void 0,function*(){if(Qn)return;const Er=new Date().getTime();try{jn=kn(),yield jn}finally{if(!Qn){const wr=new Date().getTime();Jn=setTimeout(Fr,Math.max(un-(wr-Er),0))}}})},pn?0:un),jn=Promise.resolve();return{stop(){return Ft(this,void 0,void 0,function*(){Qn=!0,clearTimeout(Jn),yield jn})}}}var vt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};const At=et(226),Lt=!!gt.c,Rt=new class{constructor(kn){this.samplePeriodSeconds=60,this.buffer={},this.reporters=[],this.flushInterval=mt({func:()=>this.flushStats(),delay:this.samplePeriodSeconds*st.a.second}),this.tags=this.filterTags(kn?.tags||{app:gt.a,version:gt.j,namespace:gt.i,instanceId:yt.a})}shutdown(){return vt(this,void 0,void 0,function*(){yield this.flushInterval.stop(),yield this.flushStats(),yield Object(at.a)(2*st.a.second)})}aggregate(kn,un,pn){this.addToBuffer(this.buffer,this.encodeKey({metric:kn,tags:this.filterTags(pn||{})}),typeof un=="number"?{min:un,max:un,sum:un,count:1}:un)}increment(kn,un){this.aggregate(kn,1,un)}timer(kn,un,pn){return vt(this,void 0,void 0,function*(){const Qn=At(),Jn=yield un(),jn=At();return this.aggregate(kn,jn-Qn,pn),Jn})}registerStatsReporter(kn){this.reporters.push(kn)}setTag(kn,un){const pn=this.filterTags({[kn]:un});this.tags=Object.assign(Object.assign({},this.tags),pn)}addToBuffer(kn,un,pn){if(kn[un]){const{min:Qn,max:Jn,sum:jn,count:Fr}=kn[un];kn[un]={min:Math.min(Qn,pn.min),max:Math.max(Jn,pn.max),sum:jn+pn.sum,count:Fr+pn.count}}else kn[un]=pn}write(kn){return vt(this,void 0,void 0,function*(){yield Promise.all(this.reporters.map(un=>vt(this,void 0,void 0,function*(){let pn;const Qn={};switch(un.type){case"simple":for(const[jn,Fr]of Object.entries(kn)){const{metric:Er}=this.decodeKey(jn);this.addToBuffer(Qn,this.encodeKey({metric:Er}),Fr)}pn=Qn;break;case"tagged":pn=kn;break;default:(function(jn){throw new Error(`Unreachable type encountered (${jn})`)})(un.type)}const Jn=Object.entries(pn);if(Jn.length>0)return un.send(Jn.map(([jn,Fr])=>{const{metric:Er,tags:wr}=this.decodeKey(jn);return{name:Er,tags:Object.assign(Object.assign({},wr),this.tags),stat:Fr}}),this.samplePeriodSeconds).catch(jn=>{ct.a.debug(`Failed to write stats to ${un.name}`,{error:jn})})})))})}flushStats(){return vt(this,void 0,void 0,function*(){yield this.write(this.buffer),this.buffer={}})}encodeKey(kn){return ut()(Object.assign(Object.assign({},kn),Object.keys(kn.tags||{}).length>0?{tags:kn.tags}:{}))}decodeKey(kn){return JSON.parse(kn)}filterTags(kn){return Object.entries(kn||{}).reduce((un,[pn,Qn])=>(Ut(pn)&&Ut(Qn)&&(un[pn]=Qn),un),{})}};Lt||["local","on-prem"].includes(gt.i)||Rt.registerStatsReporter(new ft("stats"));var St=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Tt extends class{constructor(un){this.options=un,this.cache=new ht.a(Object.assign(Object.assign(Object.assign({},un.dispose||un.disposeAfter?{ttlAutopurge:!0}:{}),un),{dispose:(...pn)=>{var Qn;pn[2]==="evict"&&Rt.increment("lru-eviction",{name:un.name}),(Qn=un.dispose)===null||Qn===void 0||Qn.call(un,...pn)},disposeAfter:(...pn)=>{var Qn;this.updateStats(),(Qn=un.disposeAfter)===null||Qn===void 0||Qn.call(un,...pn)}})),this.stringify=un.fastStringify?JSON.stringify:ut.a}set(un,pn,Qn){const Jn=this.stringify(un);if(!this.cache.set(Jn,pn,{ttl:Qn})){const jn=this.cache.sizeCalculation?this.cache.sizeCalculation(pn,Jn):"unknown";throw Error(`Value too large (${jn} > ${this.cache.max})`)}this.updateStats()}get(un){const{name:pn}=this.options,Qn=this.stringify(un),Jn=this.cache.getRemainingTTL(Qn);return Jn<=0?Rt.increment("cache-miss",{name:pn}):Jn!==1/0&&Rt.aggregate("cache-item-ttl",Jn,{name:pn}),this.cache.get(Qn)}delete(un){this.cache.delete(this.stringify(un))}peek(un){return this.cache.peek(this.stringify(un))}size(){return this.cache.size}clear(){this.cache.clear()}forEach(un){this.cache.forEach(un)}purgeStale(){return this.cache.purgeStale()}updateStats(){const{name:un}=this.options;Rt.aggregate("cache-item-count",this.cache.size,{name:un}),this.cache.calculatedSize!==void 0&&Rt.aggregate("cache-length",this.cache.calculatedSize,{name:un})}}{constructor(un){if(super(un),this.expireRejectedPromiseValues=un.expireRejectedPromiseValues===void 0||un.expireRejectedPromiseValues,this.rejectedPromiseValueTtl=un.rejectedPromiseValueTtl!==void 0?un.rejectedPromiseValueTtl:st.a.second,this.rejectedPromiseValueTtl<0)throw new Error("rejectedPromiseValueTtl must not be negative")}set(un,pn,Qn){super.set(un,pn,Qn),this.expireRejectedPromiseValues&&pn.catch(()=>St(this,void 0,void 0,function*(){yield Object(at.a)(this.rejectedPromiseValueTtl),this.peek(un)===pn&&this.delete(un)}))}}var Bt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class xt{constructor(un,pn,Qn){this.authClient=un,this.email=pn,this.password=Qn,this.tokenTtlMs=1*st.a.hour,this.tokenCache=new Tt({name:"Credentials-tokenCache",max:100,ttl:this.tokenTtlMs-5*st.a.minute,fastStringify:!0})}getToken(){return Bt(this,void 0,void 0,function*(){let un=this.tokenCache.get(this.email);return un||(un=(()=>Bt(this,void 0,void 0,function*(){const{authentication:pn}=yield this.authClient.login({email:this.email,password:this.password,tokenExpirationSeconds:this.tokenTtlMs/st.a.second});if(!pn)throw new Error("User account not verified.");return pn.accessToken}))(),this.tokenCache.set(this.email,un)),un})}}var Ct=et(97),kt=et(40),Nt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Ot extends kt.a{constructor(un){super(un)}postLanRtcOffer(un){return Nt(this,void 0,void 0,function*(){return yield this.fetch("v1/lan-rtc-offer",{method:"POST",body:JSON.stringify(un)})})}}var Jt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};function Dt(kn){return Jt(this,void 0,void 0,function*(){return(yield Promise.all(kn.map(un=>un.catch(pn=>pn)))).filter(un=>un instanceof Error)})}function Et(kn){if(kn!==void 0)return kn;throw new Error("Value is undefined")}function Pt(kn,un){const pn=kn.reduce((Qn,Jn)=>[...Qn,...Jn.urls],[]).filter(Qn=>zt(Qn,un)).sort(Qn=>en(Qn,"udp")?-1:0).shift();if(pn)return Object.assign(Object.assign({},Et(kn.find(Qn=>Qn.urls.includes(pn)))),{urls:[pn]})}function zt(kn,un){switch(un){case"stun":return/^stuns?:/.test(kn);case"turn":return/^turns?:/.test(kn)}}function en(kn,un){return kn.endsWith(`transport=${un}`)}var Kt=et(9),nn=et(24),Zt=et(229),jt=et(29);const Vt={ordered:!1,maxPacketLifeTime:300*st.a.millisecond},It={ordered:!0},$t={ordered:!0},Ht={ordered:!1,maxRetransmits:0},qt={ordered:!1,maxRetransmits:0},on=kn=>"received"in kn&&kn.received!==void 0,Xt=kn=>!("received"in kn)||kn.received===void 0,dn=2*st.a.second;function _n(kn,un={}){const pn=Array.from(kn.values()),Qn=pn.filter(on),Jn=Qn.length>0,jn=Math.max(...Qn.map(tr=>tr.received));let Fr;if(Jn){const tr=pn.length,ar=Qn.length,hr=Qn.map(gr=>gr.received-gr.sent),{standardDeviation:cn,mean:mn,jitter:xn}=function(gr){const br=gr.length;if(br===0)return{mean:NaN,standardDeviation:-1,jitter:NaN};const ur=gr.reduce((ho,Nn)=>ho+Nn,0)/br,nr=Math.sqrt(gr.map(ho=>Math.pow(ho-ur,2)).reduce((ho,Nn)=>ho+Nn)/br);let Kr=0;for(let ho=1;hogr.sent{const[ar,hr]=tr;hr.sent{var jn,Fr;return{streamId:Jn,sentCount:(jn=pn.get(Jn))!==null&&jn!==void 0?jn:0,receivedCount:(Fr=Qn.get(Jn))!==null&&Fr!==void 0?Fr:0}}),timestamp:un}}incrementLocalSent(un){const{localSent:pn}=this.counts,Qn=Fn(un.header.stream);pn.set(Qn,(pn.get(Qn)||0)+1)}incrementLocalReceived(un){const{localReceived:pn}=this.counts,Qn=Fn(un.header.stream),Jn=pn.get(Qn)||0;if(Jn===0){const{streamName:jn,streamType:Fr}=un.header.stream;ct.a.debug("RTC client received first message for stream",{streamName:jn,streamType:Fr})}pn.set(Qn,Jn+1)}uploadMetrics(){return Un(this,void 0,void 0,function*(){const{sessionId:un}=this,pn=yield this.connection.peerConnection.getStats(),Qn={};pn.forEach(tr=>Qn[tr.id]=tr),ct.a.debug("rtc-stats",Object.assign(Object.assign({},Qn),{sessionId:un}));const{localSent:Jn,localReceived:jn,remoteSent:Fr,remoteReceived:Er}=this.counts,wr=[...new Set([...Jn.keys(),...jn.keys()])].reduce((tr,ar)=>{const hr=Jn.get(ar),cn=jn.get(ar),mn=Fr.get(ar),xn=Er.get(ar);return Object.assign(Object.assign({},tr),{[`local-${ar}-sent`]:hr,[`local-${ar}-received`]:cn,[`remote-${ar}-sent`]:mn,[`remote-${ar}-received`]:xn})},{sessionId:un});ct.a.debug("rtc-message-report",Object.assign({deviceId:this.connection.getRemoteDeviceId()},wr))})}}function gn(kn,un,pn){return{header:{stream:kn,created:Date.now(),frameId:pn||""},payload:un}}function hn(kn){return new Set(["disconnected","failed","closed"]).has(kn.iceConnectionState)}function wn(kn){switch(kn.header.stream.streamType){case"twist":{const{twist:un}=kn.payload;if(!un)throw Error("twist not in payload of RTC message with type twist");return{header:kn.header,payload:{twist:{linear:Object.assign({x:0,y:0,z:0},un.linear),angular:Object.assign({x:0,y:0,z:0},un.angular)}}}}case"pose":{const{pose:un}=kn.payload;if(!un)throw Error("pose not in payload of RTC message with type pose");return{header:kn.header,payload:{pose:{translation:Object.assign({x:0,y:0,z:0},un.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},un.rotation)}}}}case"pose-with-covariance":{const{poseWithCovariance:un}=kn.payload;if(!un)throw Error("poseWithCovariance not in payload of RTC message with type pose-with-covariance");const pn=new Array(36).fill(0);return un.covariance.forEach((Qn,Jn)=>{if(Jn>=36)throw Error("covariance contains more than 36 elements");pn[Jn]=Qn}),{header:kn.header,payload:{poseWithCovariance:{pose:{translation:Object.assign({x:0,y:0,z:0},un.pose.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},un.pose.rotation)},covariance:pn}}}}case"point":{const{point:un}=kn.payload;if(!un)throw Error("point not in payload of RTC message with type point");return{header:kn.header,payload:{point:Object.assign({x:0,y:0,z:0},un)}}}default:return kn}}var Zn=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Pn{constructor(un,pn,Qn){this.peerConnection=un,this.config=pn,this.dataChannelNotifier=Qn,this.connectTimeoutMs=20*st.a.second,this.iceGatheringTimeoutMs=15*st.a.second,this.pingUpdateTimeoutMs=1*st.a.second,this.pingV2UpdateTimeoutMs=250*st.a.millisecond,this.pingV2MetricsGatherTimeoutMs=1*st.a.second,this.streamsInfoUpdateTimeoutMs=2*st.a.second,this.reassemblyTimeoutMs=500*st.a.millisecond,this.reassemblyTableCleanupMs=1*st.a.second,this.heartbeatTimeoutMs=20*st.a.millisecond,this.streamLatestTimestamp=new Map,this.reassemblyTable=new Map,this.reassemblyTableLastTimestamp=new Map,this.closeCalled=!1,this.gotOffer=!1,this.hasIceCandidate=!1,this.pingV2Map=new Map,this.sendPingV2=()=>{const{latestTryOnceStreamChannel:jn}=this;if(!jn)return;const Fr=new Date().getTime(),Er=Object(Zt.a)();this.sendSystemMessage(jn,{type:"ping-v2",payload:{timestamp:Fr,id:Er}}),this.pingV2Map.set(Er,{sent:Fr})},this.gatherPingV2Metrics=()=>{const jn=_n(this.pingV2Map);jn&&(this.pingInfo=jn,Rt.aggregate("rtc-ping-average",jn.average),Rt.aggregate("rtc-ping-loss",jn.loss),Rt.aggregate("rtc-jitter",jn.jitter))};const{isOffer:Jn}=pn.baseConfig;Jn?this.initializeChannels(un):un.ondatachannel=jn=>{switch(jn.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=jn.channel;break;case"stream.reliable":this.reliableStreamChannel=jn.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=jn.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=jn.channel;break;case"heartbeat":return void(this.heartbeatChannel=jn.channel);default:return void this.dataChannelNotifier(jn.channel)}this.setupChannel(jn.channel)},this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:jn}=this;jn&&this.sendSystemMessage(jn,{type:"ping"})},this.pingUpdateTimeoutMs),this.pingV2UpdateTimeout=setInterval(this.sendPingV2,this.pingV2UpdateTimeoutMs),this.pingV2MetricsGatherTimeout=setInterval(this.gatherPingV2Metrics,this.pingV2MetricsGatherTimeoutMs),this.streamsInfoUpdateTimeout=setInterval(()=>{const{latestTtlStreamChannel:jn}=this;jn&&this.sendSystemMessage(jn,{type:"streams-info"})},this.streamsInfoUpdateTimeoutMs),this.reassemblyTableCleanupTimeout=setInterval(()=>{const jn=new Date().getTime();this.reassemblyTableLastTimestamp.forEach((Fr,Er,wr)=>{jn>Er+this.reassemblyTimeoutMs&&this.reassemblyTable.delete(Fr)})},this.reassemblyTableCleanupMs),this.heartbeatTimeout=setInterval(()=>{const{heartbeatChannel:jn}=this;jn&&jn.readyState==="open"&&jn.send(new Uint8Array([1]))},this.heartbeatTimeoutMs)}handleSignal(un){return Zn(this,void 0,void 0,function*(){const{peerConnection:pn}=this,{track:Qn}=this.config.baseConfig,Jn=(()=>{try{return JSON.parse(un.getPayload())}catch{return}})();if(!Jn)return void ct.a.error("Received unparseable signal.");ct.a.debug("Handling signal",{description:Jn});const{sdp:jn,type:Fr}=Jn;if(!jn||!Fr)return void ct.a.warn("Received non-SDP signal");const{signalingState:Er,connectionState:wr}=pn;if(Er!=="stable"||wr!=="connected")if(pn.remoteDescription)ct.a.warn(`Received SDP after remote description was set: ${jn}`);else{if(Fr==="offer"){if(Er!=="stable")return void ct.a.warn("Received offer SDP when signaling is ongoing.");yield pn.setRemoteDescription(Jn);const tr=yield pn.createAnswer();yield pn.setLocalDescription(tr);const ar=un.clone();return Qn?.("Answer Received",ar),ar.setPayload(JSON.stringify(tr)),ar.setReceiverId(un.getSenderId()),ar.setSenderId(un.getReceiverId()),ar}if(Fr==="answer"){if(Er==="stable")return void ct.a.warn("Received answer SDP when signaling hasn't started.");yield pn.setRemoteDescription(Jn)}}else ct.a.warn(`Received SDP when already connected: ${jn}`)})}send(un,pn){const Qn=this.getChannelFromLabel(pn.channelLabel);Qn?this.sendOnChannel(Qn,un):ct.a.warn("Send called with unexpected channel label",{channelLabel:pn.channelLabel})}controlRemoteStream(un){this.sendSystemMessage(Et(this.reliableStreamChannel),{type:"stream-control",streamControl:un})}isActive(){return new Set(["new","checking","connected","completed"]).has(this.peerConnection.iceConnectionState)||this.isReady()}isReady(){const{reliableStreamChannel:un,latestTtlStreamChannel:pn,latestTryOnceStreamChannel:Qn,latestReliableStreamChannel:Jn}=this;return un?.readyState==="open"&&pn?.readyState==="open"&&Qn?.readyState==="open"&&Jn?.readyState==="open"}close(){return Zn(this,void 0,void 0,function*(){if(this.closeCalled)return;this.closeCalled=!0,this.sessionMetrics&&(yield this.sessionMetrics.uploadMetrics()),$n(this.pingUpdateTimeout),$n(this.pingV2UpdateTimeout),$n(this.pingV2MetricsGatherTimeout),$n(this.reassemblyTableCleanupTimeout),$n(this.streamsInfoUpdateTimeout),$n(this.heartbeatTimeout);const{peerConnection:un,reliableStreamChannel:pn,latestTtlStreamChannel:Qn,latestTryOnceStreamChannel:Jn,latestReliableStreamChannel:jn}=this;un.close(),pn?.close(),Qn?.close(),Jn?.close(),jn?.close()})}getPing(){return this.pingTimeMs}getPingInfo(){return this.pingInfo}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionCreatedTimestamp(){var un;return(un=this.config.remoteConfig)===null||un===void 0?void 0:un.sessionCreatedTimestamp}setSessionCreatedTimestamp(un){this.config.remoteConfig&&(this.config.remoteConfig.sessionCreatedTimestamp=un)}getSessionId(){var un;return(un=this.config.remoteConfig)===null||un===void 0?void 0:un.sessionId}setSessionId(un){this.config.remoteConfig&&(this.config.remoteConfig.sessionId=un,this.sessionMetrics=new On(un,this))}getRemotePeerId(){return this.config.baseConfig.remotePeerId}getRemoteDeviceId(){var un;return(un=this.config.baseConfig)===null||un===void 0?void 0:un.remoteDeviceId}setRemoteDeviceId(un){this.config.baseConfig.remoteDeviceId=un}getSessionMetricsMessageCounts(){var un;return(un=this.sessionMetrics)===null||un===void 0?void 0:un.counts}getConnectionStatsInfo(){return Zn(this,void 0,void 0,function*(){const{peerConnection:un}=this;if(!un)return;const pn=yield un.getStats(null),Qn=[];pn.forEach(wr=>{Qn.push(wr)});const Jn=Qn.find(wr=>wr.type==="transport");if(!Jn)return;const jn=Qn.find(wr=>(wr.type==="candidate-pair"||wr.type==="candidatepair")&&wr.id===Jn.selectedCandidatePairId);if(!jn)return;const Fr=Qn.find(wr=>wr.id===jn.localCandidateId),Er=Qn.find(wr=>wr.id===jn.remoteCandidateId);return Fr&&Er&&(Fr.address=Fr.address||Fr.ip,Er.address=Er.address||Er.ip,Fr.address!==void 0&&Er.address!==void 0)?{transport:Jn,localCandidate:Fr,remoteCandidate:Er}:void 0})}initializeChannels(un){this.heartbeatChannel=un.createDataChannel("heartbeat",qt),this.heartbeatChannel.binaryType="arraybuffer",this.latestTtlStreamChannel=un.createDataChannel("stream.latest-ttl",Vt),this.latestTtlStreamChannel.binaryType="arraybuffer",this.reliableStreamChannel=un.createDataChannel("stream.reliable",It),this.reliableStreamChannel.binaryType="arraybuffer",this.latestReliableStreamChannel=un.createDataChannel("stream.latest-reliable",$t),this.latestReliableStreamChannel.binaryType="arraybuffer",this.latestTryOnceStreamChannel=un.createDataChannel("stream.latest-try-once",Ht),this.latestTryOnceStreamChannel.binaryType="arraybuffer",this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}getOffer(){var un,pn,Qn;return Zn(this,void 0,void 0,function*(){const{gotOffer:Jn}=this,{peerConnection:jn,config:Fr}=this;if(this.config.baseConfig.isLan)throw new Error('"getOffer" method can only be called with internet connections. LAN connections should call the "getLanOffer" method.');const Er=(un=this.config.remoteConfig)===null||un===void 0?void 0:un.sessionId;if(Jn)return void ct.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,hn(this.peerConnection))return void ct.a.debug("Failed to generate offer because the peer connection was inactive.");const wr=Fr.baseConfig.track;jn.onicecandidate=()=>{this.hasIceCandidate=!0},jn.oniceconnectionstatechange=()=>Zn(this,void 0,void 0,function*(){const mn=jn.iceConnectionState;if(mn==="connected"||mn==="completed"){const xn=yield this.getConnectionStatsInfo(),Gn=xn?function(er){const cr=er.localCandidate.candidateType,gr=er.remoteCandidate.candidateType;return cr==="host"&&gr==="host"?"local":cr==="relay"||gr==="relay"?"TURN":"STUN"}(xn):void 0;ct.a.info(`ICE connection state changed to ${mn}`,{sessionId:Er,connectionStatsInfo:xn,iceMode:Gn}),wr?.("ICE connection state change",{iceConnectionState:mn,sessionId:Er,connectionStatsInfo:xn,iceMode:Gn})}}),yield jn.setLocalDescription(yield jn.createOffer());const tr=new Date().getTime();for(;;){const mn=new Date().getTime()-tr;if(mn>this.connectTimeoutMs)return void ct.a.debug("Failed to generate offer because ICE gathering timed out.");if(mn>this.iceGatheringTimeoutMs&&this.hasIceCandidate){ct.a.debug("ICE gathering partially completed; proceeding",{iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn}),wr?.("ICE gathering partially completed",{sessionId:Er,iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn});break}if(jn.iceGatheringState==="complete"){ct.a.debug("ICE gathering complete",{iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn}),wr?.("ICE gathering completed",{sessionId:Er,iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn});break}yield Object(at.a)(.1*st.a.second)}const ar=(pn=this.peerConnection.getConfiguration().iceServers)!==null&&pn!==void 0?pn:[];for(const mn of ar)mn.credentialType=void 0;const hr=JSON.stringify(ar),cn=new Kt.Signal;return cn.setPayload(JSON.stringify(jn.localDescription)),cn.setSenderId(this.config.baseConfig.localPeerId),cn.setReceiverId(this.config.baseConfig.remotePeerId),cn.setIceServers(hr),cn.setIceTransportPolicy((Qn=this.peerConnection.getConfiguration().iceTransportPolicy)!==null&&Qn!==void 0?Qn:"all"),this.config.baseConfig.sessionType!==void 0?cn.setSessionType(this.config.baseConfig.sessionType):cn.setSessionType(Kt.SessionType.TELEOP),ct.a.debug("Sending offer signal with description",{description:cn.getPayload()}),cn})}getLanOffer(){return Zn(this,void 0,void 0,function*(){const{peerConnection:un,gotOffer:pn}=this;if(!this.config.baseConfig.isLan)throw new Error('"getLanOffer" method can only be used with LAN connections. Internet connections should call the "getOffer" method.');if(pn)return void ct.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,hn(this.peerConnection))return void ct.a.debug("Failed to generate offer because the peer connection was inactive.");yield un.setLocalDescription(yield un.createOffer());const Qn=new Date().getTime();for(;;){if(new Date().getTime()-Qn>this.iceGatheringTimeoutMs)return void ct.a.debug("Failed to generate offer because ICE gathering timed out.");if(un.iceGatheringState==="complete")break;yield Object(at.a)(.1*st.a.second)}const Jn=un.localDescription;if(Jn)return ct.a.debug("Sending LAN offer signal with description",{description:Jn}),Jn;ct.a.error("Failed to generate LAN offer description")})}handleLanAnswer(un){return Zn(this,void 0,void 0,function*(){const{peerConnection:pn}=this;if(!this.config.baseConfig.isLan)throw new Error('"handleLanAnswer" method can only be used with LAN connections. Internet connections should call the "handleSignal" method.');yield pn.setRemoteDescription(un)})}getChannelFromLabel(un){switch(un){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(un,pn){let Qn;try{Qn=Object(jt.encode)(JSON.stringify(pn))}catch(Jn){return void ct.a.warn("Failed to encode RTC message",{error:Jn})}try{un.send(Qn),this.sessionMetrics&&this.sessionMetrics.incrementLocalSent(pn)}catch(Jn){ct.a.warn("Failed to send message to channel",{error:Jn,channel:un.label})}}channelNotRecognized(un){return un!==this.latestTtlStreamChannel&&un!==this.latestReliableStreamChannel&&un!==this.latestTryOnceStreamChannel&&un!==this.reliableStreamChannel}setupChannel(un){un.onmessage=pn=>{if(this.channelNotRecognized(un))return void ct.a.warn("Received message on unrecognized data channel.");let Qn;try{Qn=JSON.parse(Object(jt.decode)(pn.data))}catch(Jn){return void ct.a.warn("Received unparseable message on RTC stream data channel",{error:Jn,channel:un.label})}Qn.communicationType==="message-chunk"?this.receiveChannelMessageChunk(un,Qn):this.receiveChannelMessage(un,Qn)},un.onerror=pn=>{ct.a.warn(`Channel error: ${pn.error}`,{error:pn.error,sessionId:this.getSessionId(),channelLabel:un.label})},un.onopen=()=>{ct.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:un.label})},un.onclose=()=>{const pn={bufferedAmount:un.bufferedAmount,sessionId:this.getSessionId(),channelLabel:un.label};this.closeCalled===!1?ct.a.debug("Unexpected channel closed",pn):ct.a.debug("Channel closed",pn)}}receiveChannelMessage(un,pn){const{config:Qn}=this,{remotePeerId:Jn}=this.config.baseConfig;this.lastMessageTimestamp=new Date().getTime(),pn=wn(pn),this.sessionMetrics&&this.sessionMetrics.incrementLocalReceived(pn),this.handleSystemMessage(un,pn)||(un===this.latestTryOnceStreamChannel||un===this.latestTtlStreamChannel||un===this.latestReliableStreamChannel)&&!this.isLatestMessage(pn)||Qn.baseConfig.receive(Jn,pn)}receiveChannelMessageChunk(un,pn){const Qn=this.reassemblyTable.get(pn.id)||[];if(Qn.push(pn),Qn.length===pn.total){const Jn=function(jn){const Fr=jn.sort((Er,wr)=>Er.seqEr.part).reduce((Er,wr)=>Er+wr);try{return JSON.parse(Fr)}catch{return void ct.a.warn("Could not reassemble RTC message chunks")}}(Qn);return Jn&&this.receiveChannelMessage(un,Jn),void this.reassemblyTable.delete(pn.id)}this.reassemblyTable.set(pn.id,Qn),this.reassemblyTableLastTimestamp.set(pn.id,new Date().getTime())}handleSystemMessage(un,pn){var Qn,Jn;const{config:jn}=this,{baseConfig:Fr}=jn,{remotePeerId:Er}=Fr;switch(pn.header.stream.streamType){case"ping":return this.sendSystemMessage(un,{type:"pong",timestamp:Et(pn.payload.ping)}),!0;case"pong":{const wr=new Date().getTime()-Et(pn.payload.pong);return this.pingTimeMs=wr,Rt.aggregate("rtc-ping-time",wr),!0}case"ping-v2":return this.sendPingV2(),!0;case"pong-v2":{const wr=Et(pn.payload.pongV2),tr=this.pingV2Map.get(wr.id);return tr?.sent!==wr.timestamp?(ct.a.warn("Pong timestamp doesn't match stored value",{currentEntry:tr,pong:wr}),!0):(this.pingV2Map.set(wr.id,{sent:wr.timestamp,received:new Date().getTime()}),!0)}case"streams-info":{const{sessionMetrics:wr}=this,tr=(Qn=pn.payload.streamsInfo)===null||Qn===void 0?void 0:Qn.timestamp;return!!tr&&(wr?.updateRemoteMessagesCounts(pn),(Jn=Fr.onStreamsInfoUpdate)===null||Jn===void 0||Jn.call(Fr,Er,tr),!0)}case"stream-control":return!0;default:return!1}}sendSystemMessage(un,pn){var Qn;const{localUserId:Jn,localPeerId:jn}=this.config.baseConfig;if(un.readyState!=="open")return;const Fr={entityId:Jn??jn,streamName:`$.${pn.type}`,streamType:pn.type};let Er;switch(pn.type){case"ping":Er={ping:new Date().getTime()};break;case"pong":Er={pong:pn.timestamp};break;case"ping-v2":Er={pingV2:pn.payload};break;case"pong-v2":Er={pongV2:pn.payload};break;case"stream-control":Er={streamControl:pn.streamControl};break;case"streams-info":Er={streamsInfo:(Qn=this.sessionMetrics)===null||Qn===void 0?void 0:Qn.getLocalStreamsInfo(new Date().getTime())}}this.sendOnChannel(un,gn(Fr,Er))}isLatestMessage(un){const pn=Fn(un.header.stream),Qn=(this.streamLatestTimestamp.get(pn)||0)<=un.header.created;return Qn&&this.streamLatestTimestamp.set(pn,un.header.created),Qn}}function $n(kn){kn&&clearInterval(kn)}function Tr(kn){var un,pn;return{userId:(un=kn.getUserId())===null||un===void 0?void 0:un.getValue(),deviceId:(pn=kn.getDeviceId())===null||pn===void 0?void 0:pn.getValue(),organizationId:kn.getOrganizationId(),id:kn.getPeerId(),capabilities:[],capabilitySet:{}}}var Qr=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class _r{constructor(un){this.config=un,this.grpcCallDeadline=5*st.a.second,this.refreshIntervalDelayMs=2*st.a.second,this.iceServersTtl=30*st.a.minute,this.connections=[],this.localConnections=[],this.isConnectionInitiator=new Map,this.isOutgoingConnection=new Map,this.peerDataChannelListeners=[];const{refreshIntervalDelayMs:pn}=this;this.refreshInterval=mt({func:()=>Qr(this,void 0,void 0,function*(){try{yield this.update()}catch(Qn){ct.a.warn("RTC refresh failed",{error:Qn})}}),delay:pn,immediate:!0})}send(un,pn,Qn){const Jn=this.getActiveConnection(un);Jn?Jn.isReady()?Jn.send(pn,Qn):ct.a.warn("Send called with unready connection."):ct.a.warn("Send called with no connection.")}controlRemoteStream(un,pn){const Qn=this.getActiveConnection(un);Qn?Qn.isReady()?Qn.controlRemoteStream(pn):ct.a.warn("controlRemoteStream called with unready connection."):ct.a.warn("controlRemoteStream called with no connection.")}getLocalPeer(){return Qr(this,void 0,void 0,function*(){for(;!this.localPeer;)yield Object(at.a)(.1*st.a.second);return Tr(this.localPeer)})}connect(un,pn){var Qn,Jn,jn;return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode===!0)throw new Error("connect method called in local only mode.");const{track:Fr,signalingClient:Er}=this.config,{localPeer:wr,receiveSignalStream:tr,iceServers:ar}=this;if(!wr||!tr||!ar)return void ct.a.warn("Connect called prior to local peer, receiveSignalStream, and ICE servers ready");if(this.getActiveConnection(un))return void ct.a.warn("Connect called for peer with existing connection.");if(this.isOutgoingConnection.get(un))return void ct.a.warn("Connect called for peer with an existing outgoing connection offer.");this.isOutgoingConnection.set(un,!0);const hr=function(gr,br,ur){const{rtcIceTransportPolicies:nr,rtcIceServerProtocol:Kr,useAllServers:ho}=br||{},Nn=gr.map(rr=>Object.assign(Object.assign({},rr),{urls:rr.urls.filter(Rr=>{const vr=(nr===void 0||nr.some(fr=>zt(Rr,fr)))&&(Kr===void 0||en(Rr,Kr));return vr||ct.a.debug(`Ignoring ICE server: ${Rr}`,{organizationId:ur}),vr})})).filter(({urls:rr})=>rr.filter(Rr=>Rr).length>0);return ho?Nn:[Pt(Nn,"stun"),Pt(Nn,"turn")].filter(rr=>rr!==void 0).map(rr=>Et(rr))}(ar,pn);ct.a.debug("Received ICE servers:",ar),ct.a.debug("Using ICE servers:",hr);const cn=new Pn(yield this.createRTCPeerConnection(hr),{baseConfig:{isOffer:!0,isLan:!1,receive:(gr,br)=>this.config.receive(gr,br),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(gr,br)=>{var ur,nr;return(nr=(ur=this.config).onStreamsInfoUpdate)===null||nr===void 0?void 0:nr.call(ur,gr,br)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(Qn=wr.getUserId())===null||Qn===void 0?void 0:Qn.getValue(),localPeerId:wr.getPeerId(),remotePeerId:un,sessionType:this.config.sessionType},remoteConfig:{}},gr=>this.onCustomDataChannel(un,gr)),mn=yield cn.getOffer();if(!mn)return ct.a.error("Failed to generate offer."),void this.isOutgoingConnection.delete(un);ct.a.debug("Sending offer."),Fr?.("Sending offer",mn);const xn=new Kt.SendSignalRequest;xn.setSignal(mn);const Gn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield Er.sendSignal(xn,yield this.getMetadata({}))}catch(gr){ct.a.warn("Error when sending signal",{error:gr})}}))();if(!this.isOutgoingConnection.get(un))return void ct.a.debug("No offer set after receiving offer signal response.");ct.a.debug("Offer sent.");const er=(Jn=Gn?.getSessionId())===null||Jn===void 0?void 0:Jn.getValue(),cr=(jn=Gn?.getSessionCreatedTimestamp())===null||jn===void 0?void 0:jn.getValue();return er&&cr?(cn.setSessionId(er),cn.setSessionCreatedTimestamp(cr),this.isOutgoingConnection.delete(un),this.connections.push(cn),this.isConnectionInitiator.set(cn,!0),this.setupHandlers(cn),er):(ct.a.warn("No session ID or no session created timestamp on send signal response."),void this.isOutgoingConnection.delete(un))})}connectLan(un){var pn,Qn;return Qr(this,void 0,void 0,function*(){const Jn=new Ot(un),jn=new Pn(yield this.createRTCPeerConnection([]),{baseConfig:{isOffer:!0,isLan:!0,receive:(tr,ar)=>this.config.receive(tr,ar),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(tr,ar)=>{var hr,cn;return(cn=(hr=this.config).onStreamsInfoUpdate)===null||cn===void 0?void 0:cn.call(hr,tr,ar)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(Qn=(pn=this.localPeer)===null||pn===void 0?void 0:pn.getUserId())===null||Qn===void 0?void 0:Qn.getValue(),localPeerId:"lan_client",remotePeerId:un}},tr=>this.onCustomDataChannel(un,tr)),Fr=yield jn.getLanOffer();if(!Fr)return ct.a.warn("Could not generate LAN offer"),!1;const Er=yield Jn.postLanRtcOffer({offer:JSON.stringify(Fr)}),wr=new RTCSessionDescription(JSON.parse(Er.answer));return yield jn.handleLanAnswer(wr),this.localConnections.push(jn),this.isConnectionInitiator.set(jn,!0),Object(Zt.a)()})}getConnections(){return[...this.connections,...this.localConnections]}createCustomDataChannel(un,pn,Qn,Jn,jn){const Fr=this.getActiveConnection(un);if(Fr&&this.isConnectionInitiator.has(Fr)){const wr=Fr.peerConnection.createDataChannel("custom."+pn,Qn);return Jn&&(wr.binaryType="arraybuffer"),jn(un,wr),()=>{}}const Er=(wr,tr)=>{un===wr&&tr.label==="custom."+pn&&jn(un,tr)};return this.peerDataChannelListeners.push(Er),()=>{this.peerDataChannelListeners=this.peerDataChannelListeners.filter(wr=>wr!==Er)}}onCustomDataChannel(un,pn){this.peerDataChannelListeners.forEach(Qn=>Qn(un,pn))}getConnectionStatus(un){if(this.isOutgoingConnection.get(un))return"connecting";const pn=this.getActiveConnection(un);return pn?pn.isReady()?"connected":"connecting":"disconnected"}getConnectionStatsInfo(un){return Qr(this,void 0,void 0,function*(){const pn=this.getActiveConnection(un);if(pn)return yield pn.getConnectionStatsInfo()})}disconnect(un){return Qr(this,void 0,void 0,function*(){const pn=this.getActiveConnection(un);pn&&(yield pn.close())})}getPeers(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:un}=this.config,pn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield un.getPeers(new Kt.GetPeersRequest,yield this.getMetadata({}))}catch(jn){ct.a.warn("Error when getting peers",{error:jn})}}))();if(!pn)return[];const Qn=pn.getPeersList();if(!Qn)return[];const Jn=jn=>{var Fr,Er;return(Er=(Fr=jn.getPeerCreatedTimestamp())===null||Fr===void 0?void 0:Fr.getValue())!==null&&Er!==void 0?Er:0};return Qn.sort((jn,Fr)=>Jn(Fr)-Jn(jn)).map(jn=>Tr(jn))})}getSessions(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:un}=this.config,pn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield un.getPeers(new Kt.GetPeersRequest,yield this.getMetadata({}))}catch(jn){ct.a.warn("Error when getting peers",{error:jn})}}))();if(!pn)return{};const Qn=pn.getPeersList(),Jn={};for(const jn of Qn)Jn[jn.getPeerId()]=jn.getSessionIdsList();return Jn})}getPing(un){const pn=this.getActiveConnection(un);if(pn)return pn.getPing();ct.a.warn("Attempted to get ping time from inactive peer.")}getPingInfo(un){const pn=this.getActiveConnection(un);if(pn)return pn.getPingInfo();ct.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(un){const pn=this.getActiveConnection(un);if(pn)return pn.getLastMessageTimestamp();ct.a.warn("Attempted to get last message time from inactive peer.")}getSessionMetricsMessageCounts(un){const pn=this.getActiveConnection(un);if(pn)return pn.getSessionMetricsMessageCounts();ct.a.warn("Attempted to get session metrics counts from inactive peer.")}isReady(){if(this.config.lanOnlyMode)return!0;const{localPeer:un,receiveSignalStream:pn,iceServers:Qn}=this;return!!(un&&pn&&Qn)}shutdown(){return Qr(this,void 0,void 0,function*(){ct.a.info("Shutdown called on RTC client"),yield this.refreshInterval.stop(),this.receiveSignalStream&&this.receiveSignalStream.cancel();const un=this.connections;this.connections=[],yield this.closeConnections(un);const{localPeer:pn}=this;if(!pn||this.config.lanOnlyMode)return;const{signalingClient:Qn}=this.config;yield(()=>Qr(this,void 0,void 0,function*(){try{const Jn=new Kt.DeletePeerRequest;Jn.setPeerId(pn.getPeerId()),yield Qn.deletePeer(Jn,yield this.getMetadata({}))}catch(Jn){return void ct.a.warn("Error deleting local peer",{error:Jn})}}))()})}createPeer(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createPeer method cannot be used in local-only mode.");const{signalingClient:un}=this.config,pn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield un.createPeer(new Kt.CreatePeerRequest,yield this.getMetadata({}))}catch(Jn){throw new Error(`Was not able to create peer: ${JSON.stringify(Jn)}`)}}))(),Qn=pn?.getPeer();if(!Qn)throw new Error("Response did not provide peer.");return this.localPeer=Qn})}createReceiveSignalStream(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createReceiveSignalStream method cannot be used in local-only mode.");const{signalingClient:un}=this.config,{localPeer:pn,iceServers:Qn}=this;if(!pn||!Qn)return;const{receiveSignalStream:Jn}=this;Jn&&Jn.cancel();const jn=new Kt.ReceiveSignalStreamRequest;jn.setPeerId(pn.getPeerId());const Fr=yield(()=>Qr(this,void 0,void 0,function*(){try{return un.receiveSignalStream(jn,yield this.getMetadata({hasDeadline:!1}))}catch(Er){throw new Error(`Unable to create receive signal stream: ${JSON.stringify(Er)}`)}}))();if(!Fr)throw new Error("Response did not provide stream.");return Fr.on("data",Er=>Qr(this,void 0,void 0,function*(){var wr,tr,ar,hr;const cn=Er.getSignal(),mn=(wr=cn?.getSessionId())===null||wr===void 0?void 0:wr.getValue(),xn=cn?.getSenderId(),Gn=cn?.getReceiverId(),er=(tr=cn?.getSessionCreatedTimestamp())===null||tr===void 0?void 0:tr.getValue();if(!(cn&&mn&&xn&&Gn&&er))return void ct.a.warn("Received signal with missing information.");const cr=this.getActiveConnection(xn);if(cr)if(cr.getSessionId()!==mn){if(ct.a.debug("Received signal: different session for a peer we're already connected to."),(cr.getSessionCreatedTimestamp()||0)>er)return;const gr=new Pn(yield this.createRTCPeerConnection(Qn),{baseConfig:{isOffer:!1,isLan:!1,receive:(br,ur)=>this.config.receive(br,ur),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(br,ur)=>{var nr,Kr;return(Kr=(nr=this.config).onStreamsInfoUpdate)===null||Kr===void 0?void 0:Kr.call(nr,br,ur)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:pn.getPeerId(),localUserId:(hr=pn.getUserId())===null||hr===void 0?void 0:hr.getValue(),remotePeerId:xn},remoteConfig:{sessionId:mn,sessionCreatedTimestamp:er}},br=>this.onCustomDataChannel(xn,br));yield gr.handleSignal(cn),this.connections.push(gr)}else ct.a.debug("Received signal: for an existing connection."),yield cr.handleSignal(cn);else{ct.a.debug("Received signal: new connection.");const gr=new Pn(yield this.createRTCPeerConnection(Qn),{baseConfig:{isOffer:!1,isLan:!1,receive:(br,ur)=>this.config.receive(br,ur),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(br,ur)=>{var nr,Kr;return(Kr=(nr=this.config).onStreamsInfoUpdate)===null||Kr===void 0?void 0:Kr.call(nr,br,ur)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:pn.getPeerId(),localUserId:(ar=pn.getUserId())===null||ar===void 0?void 0:ar.getValue(),remotePeerId:xn},remoteConfig:{sessionId:mn,sessionCreatedTimestamp:er}},br=>this.onCustomDataChannel(xn,br));yield gr.handleSignal(cn),this.connections.push(gr)}})),Fr.on("end",()=>{Fr.cancel(),this.receiveSignalStream=void 0}),Fr.on("error",Er=>{switch(Er.code){case nn.StatusCode.CANCELLED:case nn.StatusCode.UNAVAILABLE:case nn.StatusCode.UNKNOWN:ct.a.debug("Receive signal stream error",{error:Er});break;case nn.StatusCode.UNAUTHENTICATED:ct.a.warn("Receive signal stream error",{error:Er});break;default:ct.a.error("Receive signal stream error",{error:Er})}Fr.cancel(),this.receiveSignalStream=void 0}),this.receiveSignalStream=Fr})}createRTCPeerConnection(un){var pn;return Qr(this,void 0,void 0,function*(){const Qn=(pn=this.config.alternateRTCPeerConnection)!==null&&pn!==void 0?pn:window.RTCPeerConnection;if(!Qn)throw function(){const{userAgent:Jn}=navigator;return Jn.includes("Firefox/")?"Firefox":Jn.includes("Edg/")?"Edge":Jn.includes("Chrome/")?"Chrome":Jn.includes("Safari/")?"Safari":Jn.includes("MSIE/")||Jn.includes("Trident/")?"IE":"Other"}()!=="Chrome"?new Error("WebRTC is not enabled. Please try again with the latest version of Google Chrome."):new Error("WebRTC is not enabled. Please ensure WebRTC is not disabled by ad blocking software.");return new Qn({iceServers:un})})}closeConnections(un){return Qr(this,void 0,void 0,function*(){const pn=yield Dt(un.map(Qn=>Qr(this,void 0,void 0,function*(){yield Qn.close()})));for(const Qn of pn)ct.a.warn("Request to close session failed",{error:Qn})})}getActiveConnection(un){return this.getConnections().find(pn=>pn.getRemotePeerId()===un&&pn.isActive())}update(){var un;return Qr(this,void 0,void 0,function*(){if(this.localConnections=this.localConnections.filter(Er=>Er.isActive()),this.config.lanOnlyMode)return;const{signalingClient:pn}=this.config;if(!this.localPeer||!this.receiveSignalStream||!this.iceServers)return this.localPeer||(yield this.createPeer()),this.iceServers||(yield this.updateIceServers()),void(this.receiveSignalStream||(yield this.createReceiveSignalStream()));yield this.closeConnections(this.connections.filter(Er=>!Er.isActive())),this.connections=this.connections.filter(Er=>Er.isActive());const{localPeer:Qn}=this,Jn=this.connections.filter(Er=>Er.getSessionId).map(Er=>Et(Er.getSessionId()));Qn.setSessionIdsList(Jn);const jn=new Kt.RefreshPeerRequest;jn.setPeer(Qn);try{yield pn.refreshPeer(jn,yield this.getMetadata({}))}catch(Er){Er.code===nn.StatusCode.NOT_FOUND?(ct.a.warn("Peer expired, creating new peer",{peerId:Qn.getPeerId()}),yield this.reset()):ct.a.warn("Error calling RefreshPeer",{error:Er})}const Fr=yield this.getPeers();for(const Er of this.connections)Er.setRemoteDeviceId((un=Fr.find(wr=>wr.id===Er.getRemotePeerId()))===null||un===void 0?void 0:un.deviceId)})}reset(){return Qr(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.isOutgoingConnection=new Map,yield this.createPeer(),yield this.createReceiveSignalStream()})}updateIceServers(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)return;const{iceServersLastUpdate:un,iceServersTtl:pn}=this,Qn=new Date().getTime();if(!un||Qn-un>pn)try{const Jn=(yield this.config.signalingClient.getIceServers(new Kt.GetIceServersRequest,yield this.getMetadata({}))).getIceServers();this.iceServers=JSON.parse(Jn),this.iceServersLastUpdate=Qn}catch(Jn){ct.a.warn("Error in updateIceServers",{error:Jn})}})}setupHandlers(un){const{peerConnection:pn}=un,Qn=un.getSessionCreatedTimestamp();pn.onconnectionstatechange=()=>Qr(this,void 0,void 0,function*(){const Jn=pn.connectionState;if(Qn)switch(Jn){case"connected":Rt.aggregate("rtc-connect-time",new Date().getTime()-Qn);break;case"failed":Rt.increment("rtc-connect-failed")}})}getMetadata(un){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getMetadata method cannot be called in local-only mode");const{getToken:pn}=this.config,{grpcCallDeadline:Qn}=this,{hasDeadline:Jn}=un,jn=Jn===!1?void 0:new Date().getTime()+Qn;return{authorization:yield pn(),deadline:jn}})}}var Ir=et(10),Jr=et(11),qr=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Uo{constructor(un,pn){this.sessionId=un,this.connection=pn,this.sentMessagesCounts=new Map,this.receivedMessagesCounts=new Map,this.sessionId=un,this.connection=pn}incrementMessageSent(un){const pn=Fn(un.header.stream);this.sentMessagesCounts.set(pn,(this.sentMessagesCounts.get(pn)||0)+1)}incrementMessageReceived(un){const pn=Fn(un.header.stream);this.receivedMessagesCounts.set(pn,(this.receivedMessagesCounts.get(pn)||0)+1)}uploadMetrics(){return qr(this,void 0,void 0,function*(){const{sessionId:un}=this,pn=yield this.connection.peerConnection.getStats(),Qn={};pn.forEach(jn=>Qn[jn.id]=jn),ct.a.debug("rtc-stats",Object.assign(Object.assign({},Qn),{sessionId:un}));const Jn=[...new Set(Array.from(this.sentMessagesCounts.keys()).concat(Array.from(this.receivedMessagesCounts.keys())))].reduce((jn,Fr)=>{const Er=this.sentMessagesCounts.get(Fr),wr=this.receivedMessagesCounts.get(Fr);return Object.assign(Object.assign({},jn),{[`${Fr}-sent`]:Er,[`${Fr}-received`]:wr})},{sessionId:un});ct.a.debug("rtc-message-report",Jn)})}}function eo(kn,un){return Fn(kn)===Fn(un)}var Yr=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class _o{constructor(un,pn){this.peerConnection=un,this.config=pn,this.connectTimeoutMs=10*st.a.second,this.gatherIceTimeoutMs=5*st.a.second,this.pingUpdateTimeoutMs=2*st.a.second,this.streamLatestTimestamp=new Map,this.closeCalled=!1,this.connectCalled=!1,this.sentOffer=!1,this.receivedIceCandidate=!1;const{isOffer:Qn}=pn;Qn?this.initializeChannels(un):un.ondatachannel=Jn=>{switch(Jn.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=Jn.channel;break;case"stream.reliable":this.reliableStreamChannel=Jn.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=Jn.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=Jn.channel}this.setupChannel(Jn.channel)},this.sessionMetrics=new Uo(this.getSessionId(),this)}connect(){return Yr(this,void 0,void 0,function*(){if(this.connectCalled)return;this.connectCalled=!0,this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:Jn}=this;Jn&&this.sendSystemMessage(Jn,{type:"ping"})},this.pingUpdateTimeoutMs),this.connectTimeout=setTimeout(()=>Yr(this,void 0,void 0,function*(){this.isReady()||(ct.a.warn("RTC connect timed out, closing connection"),yield this.close())}),this.connectTimeoutMs);const{peerConnection:un,config:{isOffer:pn,sessionId:Qn}}=this;if(pn){const Jn=yield un.createOffer();yield un.setLocalDescription(Jn)}pn&&(this.gatherIceTimeout=setTimeout(()=>Yr(this,void 0,void 0,function*(){this.sentOffer||(ct.a.warn("ICE gathering timed out"),this.receivedIceCandidate?(ct.a.warn("Attempting to connect with partial ICE candidate pool"),yield this.sendOffer()):yield this.close())}),this.gatherIceTimeoutMs),un.onicecandidate=Jn=>Yr(this,void 0,void 0,function*(){Jn.candidate?this.receivedIceCandidate=!0:yield this.sendOffer()}),un.onicegatheringstatechange=()=>Yr(this,void 0,void 0,function*(){un.iceGatheringState==="complete"&&(yield this.sendOffer())}),un.onnegotiationneeded=()=>{ct.a.debug("Negotiation needed",{sessionId:Qn})})})}handleSignal(un){return Yr(this,void 0,void 0,function*(){const{peerConnection:pn,config:{sessionId:Qn,sendSignal:Jn}}=this,{description:jn}=JSON.parse(un.payload);if(ct.a.debug("Handling signal",{sessionId:Qn,description:JSON.stringify(jn)}),jn)if(pn.signalingState!=="stable"||pn.connectionState!=="connected")if(pn.remoteDescription)ct.a.warn(`Received SDP signal during negotiation when remote description is already set: ${JSON.stringify(un)}`);else if(jn.type==="offer"){yield pn.setRemoteDescription(jn);const Fr=yield pn.createAnswer();yield pn.setLocalDescription(Fr),yield Jn({payload:JSON.stringify({description:Fr})})}else jn.type==="answer"&&(yield pn.setRemoteDescription(jn));else ct.a.warn(`Received SDP signal when signaling is stable and connected: ${JSON.stringify(un)}`);else ct.a.warn(`Received non-SDP signal: ${JSON.stringify(un)}`)})}send(un,pn){const Qn=this.getChannelFromLabel(pn.channelLabel);Qn?this.sendOnChannel(Qn,un):ct.a.warn("Send called with unexpected channel label",{channelLabel:pn.channelLabel})}controlRemoteStream(un){this.sendSystemMessage(Et(this.reliableStreamChannel),{type:"stream-control",streamControl:un})}isActive(){return new Set(["new","connecting","connected"]).has(this.peerConnection.connectionState)}isReady(){const{peerConnection:un,latestTtlStreamChannel:pn,reliableStreamChannel:Qn,latestTryOnceStreamChannel:Jn}=this;return!!(Qn&&pn&&Jn)&&un.connectionState==="connected"&&Qn.readyState==="open"&&pn.readyState==="open"&&Jn.readyState==="open"}isClosed(){const{peerConnection:un,reliableStreamChannel:pn,latestTryOnceStreamChannel:Qn,latestTtlStreamChannel:Jn}=this;return!(un.connectionState!=="closed"||pn!==void 0&&pn.readyState!=="closed"||Qn!==void 0&&Qn.readyState!=="closed"||Jn!==void 0&&Jn.readyState!=="closed")}needsClosing(){const{peerConnection:un,latestTtlStreamChannel:pn,reliableStreamChannel:Qn,latestTryOnceStreamChannel:Jn}=this;if(this.isClosed())return!1;const jn=new Set(["closing","closed"]),Fr=Er=>Er&&jn.has(Er.readyState);return hn(un)||Fr(pn)||Fr(Qn)||Fr(Jn)}close(){return Yr(this,void 0,void 0,function*(){this.closeCalled||(this.closeCalled=!0,yield this.sessionMetrics.uploadMetrics(),this.pingUpdateTimeout&&clearInterval(this.pingUpdateTimeout),this.connectTimeout&&clearTimeout(this.connectTimeout),this.gatherIceTimeout&&clearTimeout(this.gatherIceTimeout),this.peerConnection.close())})}getPing(){return this.pingTimeMs}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionId(){return this.config.sessionId}getRemotePeer(){return this.config.remotePeer}initializeChannels(un){this.latestTtlStreamChannel=un.createDataChannel("stream.latest-ttl",Vt),this.reliableStreamChannel=un.createDataChannel("stream.reliable",It),this.latestReliableStreamChannel=un.createDataChannel("stream.latest-reliable",$t),this.latestTryOnceStreamChannel=un.createDataChannel("stream.latest-try-once",Ht),this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}sendOffer(){return Yr(this,void 0,void 0,function*(){if(this.sentOffer||(this.sentOffer=!0,hn(this.peerConnection)))return;const{peerConnection:un,config:{sendSignal:pn}}=this,Qn=yield un.createOffer();yield un.setLocalDescription(Qn);const Jn={payload:JSON.stringify({description:Qn})};yield pn(Jn)})}getChannelFromLabel(un){switch(un){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(un,pn){let Qn;try{Qn=Object(jt.encode)(JSON.stringify(pn))}catch(Jn){return void ct.a.warn("Failed to encode RTC message",{error:Jn})}try{un.send(Qn),this.sessionMetrics.incrementMessageSent(pn)}catch(Jn){ct.a.warn("Failed to send message to channel",{error:Jn,channel:un.label})}}channelNotRecognized(un){return un!==this.latestTtlStreamChannel&&un!==this.latestReliableStreamChannel&&un!==this.latestTryOnceStreamChannel&&un!==this.reliableStreamChannel}setupChannel(un){un.onmessage=pn=>{if(this.channelNotRecognized(un))return void ct.a.warn("Received message on unrecognized data channel.");let Qn;try{Qn=JSON.parse(Object(jt.decode)(pn.data))}catch(Jn){return void ct.a.warn("Received unparseable RTC message",{error:Jn,channel:un.label})}if(this.lastMessageTimestamp=new Date().getTime(),Qn=wn(Qn),this.sessionMetrics.incrementMessageReceived(Qn),!this.handleSystemMessage(un,Qn)){if(!this.hasCapabilities(Qn))return void ct.a.warn("Received RTC message that was not within the capability scope of the connection.");(un===this.latestTryOnceStreamChannel||un===this.latestTtlStreamChannel||un===this.latestReliableStreamChannel)&&!this.isLatestMessage(Qn)||this.config.receive(this.config.remotePeer.id,Qn)}},un.onerror=pn=>{ct.a.warn(`Channel error: ${pn.error}`,{error:pn.error,sessionId:this.getSessionId(),channelLabel:un.label})},un.onopen=()=>{ct.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:un.label})},un.onclose=()=>{const pn={bufferedAmount:un.bufferedAmount,sessionId:this.getSessionId(),channelLabel:un.label};this.closeCalled===!1?ct.a.debug("Unexpected channel closed",pn):ct.a.debug("Channel closed",pn)}}handleSystemMessage(un,pn){switch(pn.header.stream.streamType){case"ping":return this.sendSystemMessage(un,{type:"pong",timestamp:Et(pn.payload.ping)}),!0;case"pong":{const Qn=new Date().getTime()-Et(pn.payload.pong);return this.pingTimeMs=Qn,Rt.aggregate("rtc-ping-time",Qn),!0}case"stream-control":return!0;default:return!1}}sendSystemMessage(un,pn){if(un.readyState!=="open")return;const Qn={entityId:Et(this.config.localPeer.deviceId||this.config.localPeer.userId),streamName:`$.${pn.type}`,streamType:pn.type};let Jn;switch(pn.type){case"ping":Jn={ping:new Date().getTime()};break;case"pong":Jn={pong:pn.timestamp};break;case"stream-control":Jn={streamControl:pn.streamControl}}this.sendOnChannel(un,gn(Qn,Jn))}hasCapabilities(un){var pn,Qn;const{localPeer:Jn,remotePeer:jn}=this.config,Fr=(pn=Jn.capabilitySet.streaming)===null||pn===void 0?void 0:pn.streams,Er=Fr&&Fr.some(ar=>ar.receive&&eo(ar.stream,un.header.stream)),wr=(Qn=jn.capabilitySet.streaming)===null||Qn===void 0?void 0:Qn.streams,tr=wr&&wr.some(ar=>ar.send&&eo(ar.stream,un.header.stream));return Er||tr}isLatestMessage(un){const pn=Fn(un.header.stream),Qn=(this.streamLatestTimestamp.get(pn)||0)<=un.header.created;return Qn&&this.streamLatestTimestamp.set(pn,un.header.created),Qn}}var ro=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Fo{constructor(un){this.config=un,this.connections=[],this.connectingSessions=new Map,this.updateInterval=mt({func:()=>ro(this,void 0,void 0,function*(){try{yield this.update()}catch(pn){ct.a.warn("RTC update failed",{error:pn})}}),delay:250*st.a.millisecond,immediate:!0}),this.localPeer=this.createPeer()}send(un,pn,Qn){const Jn=this.getActiveConnection(un);Jn?Jn.isReady()?Jn.send(pn,Qn):ct.a.warn("Attempted to send with an active connection to that peer which was not yet ready."):ct.a.warn("Attempted to send with no active connection to that peer.")}controlRemoteStream(un,pn){const Qn=this.getActiveConnection(un);Qn?Qn.isReady()?Qn.controlRemoteStream(pn):ct.a.warn("Attempted to control remote stream with an active connection to that peer which was not yet ready."):ct.a.warn("Attempted to control remote stream with no active connection to that peer.")}connect(un){return ro(this,void 0,void 0,function*(){const pn=yield this.getLocalPeer();if(this.getActiveConnection(un))return void ct.a.warn("Attempted to connect to peer with an already active connection.");let Qn;try{Qn=yield this.config.signalingClient.createSession(yield this.config.getToken(),{offerPeerId:pn.id,answerPeerId:un})}catch(Jn){Object(Ir.a)(Jn,Jr.a,jn=>jn.statusCode===404),ct.a.warn("Attempted to connect to peer that does not exist.")}if(Qn)for(this.connectingSessions.set(Qn.id,new Date().getTime()),yield this.connectToSession(Qn);;)switch(yield Object(at.a)(.1),this.getConnectionStatus(un)){case"connecting":continue;case"connected":return Qn.id;case"disconnected":return}})}getConnectionStatus(un){const pn=this.getActiveConnection(un);return pn?pn.isReady()?"connected":"connecting":"disconnected"}getIceMode(un){const pn=this.getActiveConnection(un);if(pn)return pn.iceMode}disconnect(un){return ro(this,void 0,void 0,function*(){const pn=this.getActiveConnection(un);pn&&(yield this.closeConnection(pn))})}getLocalPeer(){return ro(this,void 0,void 0,function*(){return yield this.localPeer})}getPeers(){return ro(this,void 0,void 0,function*(){return yield this.config.signalingClient.getPeers(yield this.config.getToken())})}getPing(un){const pn=this.getActiveConnection(un);if(pn)return pn.getPing();ct.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(un){const pn=this.getActiveConnection(un);if(pn)return pn.getLastMessageTimestamp();ct.a.warn("Attempted to get ping time from inactive peer.")}shutdown(){return ro(this,void 0,void 0,function*(){yield this.updateInterval.stop();const un=this.connections;this.connections=[],yield this.closeConnections(un)})}closeConnection(un){return ro(this,void 0,void 0,function*(){this.connectingSessions.delete(un.getSessionId()),yield un.close();try{yield this.config.signalingClient.deleteSession(yield this.config.getToken(),un.getSessionId())}catch(pn){Object(Ir.a)(pn,Jr.a,Qn=>Qn.statusCode===404)}})}getSessions(){return ro(this,void 0,void 0,function*(){const un=yield this.getLocalPeer();return(yield this.config.signalingClient.getSessions(yield this.config.getToken())).filter(pn=>pn.offer.peer.id===un.id||pn.answer.peer.id===un.id)})}createPeer(){return ro(this,void 0,void 0,function*(){return yield this.config.signalingClient.createPeer(yield this.config.getToken(),{capabilitySet:this.config.capabilitySet||{}})})}createRTCPeerConnection(un={}){return ro(this,void 0,void 0,function*(){return new(this.config.alternateRTCPeerConnection||RTCPeerConnection)(Object.assign({iceServers:yield this.config.signalingClient.getIceServers(yield this.config.getToken())},un))})}closeConnections(un){return ro(this,void 0,void 0,function*(){const pn=yield Dt(un.map(Qn=>ro(this,void 0,void 0,function*(){yield this.closeConnection(Qn)})));for(const Qn of pn)ct.a.warn("Request to close session failed",{error:Qn})})}reset(){return ro(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.connectingSessions=new Map,this.localPeer=this.createPeer(),yield this.localPeer})}getActiveConnection(un){return this.connections.find(pn=>pn.getRemotePeer().id===un&&pn.isActive())}update(){return ro(this,void 0,void 0,function*(){const un=yield this.getLocalPeer();try{yield this.config.signalingClient.refreshPeer(yield this.config.getToken(),un.id)}catch(pn){Object(Ir.a)(pn,Jr.a,Qn=>Qn.statusCode===404),ct.a.warn("Peer expired, creating new peer",{peerId:un.id}),yield this.reset()}yield this.handleSessions(yield this.getSessions())})}handleSessions(un){return ro(this,void 0,void 0,function*(){yield this.syncConnectionsAndSessions(un);const pn=un.map(Qn=>({session:Qn,connection:this.connections.find(Jn=>Jn.getSessionId()===Qn.id)}));yield Promise.all(pn.map(({session:Qn,connection:Jn})=>ro(this,void 0,void 0,function*(){return yield this.maintainConnection(Qn,Jn)})))})}syncConnectionsAndSessions(un){return ro(this,void 0,void 0,function*(){const pn=new Set(un.map(jn=>jn.id)),Qn=jn=>pn.has(jn.getSessionId())||this.connectingSessions.has(jn.getSessionId());this.connections=this.connections.filter(jn=>Qn(jn));const Jn=this.connections.filter(jn=>!Qn(jn)||jn.needsClosing());yield Promise.all(Jn.map(jn=>ro(this,void 0,void 0,function*(){yield this.closeConnection(jn)})))})}maintainConnection(un,pn){return ro(this,void 0,void 0,function*(){const Qn=yield this.getLocalPeer(),Jn=un.offer.peer.id===Qn.id;if(pn){if(pn.isReady())try{yield this.config.signalingClient.refreshSession(yield this.config.getToken(),un.id)}catch(jn){Object(Ir.a)(jn,Jr.a,Fr=>Fr.statusCode===404),ct.a.debug("Refresh session not found",{sessionId:un.id})}else if(pn.isActive())try{yield this.consumeSignals(pn)}catch(jn){ct.a.warn("Failed to ingest signals, closing connection",{error:jn}),yield this.closeConnection(pn)}}else{if(Jn)return;yield this.connectToSession(un)}})}connectToSession(un){return ro(this,void 0,void 0,function*(){const pn=yield this.getLocalPeer(),Qn=un.offer.peer.id===pn.id,Jn=yield this.createRTCPeerConnection(),jn=new _o(Jn,{localPeer:Qn?un.offer.peer:un.answer.peer,remotePeer:Qn?un.answer.peer:un.offer.peer,sessionId:un.id,isOffer:Qn,sendSignal:Fr=>this.sendSignal(un.id,Fr),receive:(Fr,Er)=>this.config.receive(Fr,Er)});if(this.connections.find(Fr=>Fr.getSessionId()===un.id))return ct.a.warn("connectToSession called on a session that already has a connection.",{sessionId:un.id}),void(yield jn.close());this.setupHandlers(jn),this.connections.push(jn);try{yield jn.connect()}catch(Fr){ct.a.warn("Failed to handle negotiation, closing connection",{error:Fr}),yield this.closeConnection(jn)}})}setupHandlers(un){const{peerConnection:pn}=un,Qn=un.getSessionId();pn.onconnectionstatechange=()=>ro(this,void 0,void 0,function*(){const Jn=this.connectingSessions.get(Qn);if(Jn===void 0)return;const jn=pn.connectionState;switch(hn(pn)&&this.connectingSessions.delete(Qn),jn){case"connected":{this.connectingSessions.delete(Qn);const Fr=new Date().getTime()-Jn;Rt.aggregate("rtc-connect-time",Fr);break}case"failed":Rt.increment("rtc-connect-failed"),yield this.closeConnection(un)}})}consumeSignals(un){return ro(this,void 0,void 0,function*(){let pn=[];try{pn=yield this.config.signalingClient.takeSignals(yield this.config.getToken(),un.getSessionId())}catch(Qn){Object(Ir.a)(Qn,Jr.a,Jn=>Jn.statusCode===404)}for(const Qn of pn)yield un.handleSignal(Qn)})}sendSignal(un,pn){return ro(this,void 0,void 0,function*(){try{yield this.config.signalingClient.addSignals(yield this.config.getToken(),un,{signals:[pn]})}catch(Qn){Object(Ir.a)(Qn,Jr.a,Jn=>Jn.statusCode===404)}})}}},function(s,o,et){var tt={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let nt;const rt=new Uint8Array(16);function it(){if(!nt&&(nt=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!nt))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return nt(rt)}const ot=[];for(let at=0;at<256;++at)ot.push((at+256).toString(16).slice(1));function st(at,lt=0){return(ot[at[lt+0]]+ot[at[lt+1]]+ot[at[lt+2]]+ot[at[lt+3]]+"-"+ot[at[lt+4]]+ot[at[lt+5]]+"-"+ot[at[lt+6]]+ot[at[lt+7]]+"-"+ot[at[lt+8]]+ot[at[lt+9]]+"-"+ot[at[lt+10]]+ot[at[lt+11]]+ot[at[lt+12]]+ot[at[lt+13]]+ot[at[lt+14]]+ot[at[lt+15]]).toLowerCase()}o.a=function(at,lt,ut){if(tt.randomUUID&&!lt&&!at)return tt.randomUUID();const dt=(at=at||{}).random||(at.rng||it)();if(dt[6]=15&dt[6]|64,dt[8]=63&dt[8]|128,lt){ut=ut||0;for(let ht=0;ht<16;++ht)lt[ut+ht]=dt[ht];return lt}return st(dt)}},,function(s,o,et){et.r(o),et.d(o,"LogClient",function(){return ot});var tt=et(28),nt=et(10),rt=et(11),it=function(st,at,lt,ut){return new(lt||(lt=Promise))(function(dt,ht){function ct(gt){try{ft(ut.next(gt))}catch(yt){ht(yt)}}function pt(gt){try{ft(ut.throw(gt))}catch(yt){ht(yt)}}function ft(gt){var yt;gt.done?dt(gt.value):(yt=gt.value,yt instanceof lt?yt:new lt(function(Ut){Ut(yt)})).then(ct,pt)}ft((ut=ut.apply(st,at||[])).next())})};class ot extends tt.a{log(at){return it(this,void 0,void 0,function*(){const lt=ot.token;try{yield this.fetch("logs",{token:lt,method:"POST",body:JSON.stringify({logs:at}),allowUnsafeRetries:!0})}catch(ut){Object(nt.a)(ut,rt.a,dt=>dt.statusCode===401&<!==void 0),ot.token===lt&&delete ot.token,yield this.log(at)}})}}}])})})(dist$1);function defined$1$1(s,o){if(s!==void 0)return s;throw new Error(o||"Value is undefined")}let FORMANT_API_URL$1="https://api.formant.io";typeof window<"u"&&(FORMANT_API_URL$1=window.FORMANT_API_URL||FORMANT_API_URL$1);let urlParams$2=new URLSearchParams("");typeof window<"u"&&(urlParams$2=new URLSearchParams(window.location.search));const envDev=urlParams$2.get("formant_dev");envDev&&(FORMANT_API_URL$1="https://api-dev.formant.io");const envStage=urlParams$2.get("formant_stage");envStage&&(FORMANT_API_URL$1="https://api-stage.formant.io");const envLocal=urlParams$2.get("formant_local");envLocal&&(FORMANT_API_URL$1="https://api.formant.local");const millisecond$3$1=1,second$3$1=1e3,minute$3$1=60*second$3$1,hour$3$1=60*minute$3$1,day$3$1=24*hour$3$1,week$3$1=7*day$3$1,month$3$1=30*day$3$1,year$3$1=365*day$3$1,duration$3$1={millisecond:millisecond$3$1,second:second$3$1,minute:minute$3$1,hour:hour$3$1,day:day$3$1,week:week$3$1,month:month$3$1,year:year$3$1};function filterDataByType$2(s,o){return s.filter(et=>o.includes(et.type))}function filterDataByTime$2(s,o,et){const tt=o.getTime(),nt=et.getTime();return s.map(rt=>({...rt,points:rt.points.filter(([it])=>it>=tt&&itrt.length>0)}let StoreCache$2=class{constructor({capacity:o,timeout:et}={}){__publicField$1(this,"entries",new Map),__publicField$1(this,"metadata",new Map),__publicField$1(this,"capacity"),__publicField$1(this,"timeout"),this.capacity=o||1e4,this.timeout=et||duration$3$1.minute}get(o,et){const tt=this.keyToCacheKey(o),nt=this.entries.get(tt),rt=this.metadata.get(tt);return(nt===void 0||rt&&rt?.expiration.getTime()this.capacity&&this.deleteOldestEntry()}clear(){this.entries.clear(),[...this.metadata.values()].forEach(o=>o.generating=!1)}clearKey(o){this.metadata.delete(o),this.entries.delete(o)}keyToCacheKey(o){return JSON.stringify(o)}deleteOldestEntry(){if(this.metadata.size<1)return;const[o]=[...this.metadata.entries()].reduce(([et,tt],[nt,rt])=>rt.expiration.getTime(){et.then(rt=>{const it=this.metadata.get(tt);!(it!=null&&it.generating)||this.set(o,rt)})},0)}},QueryStore$2=class{constructor(){__publicField$1(this,"queryStoreCache",new StoreCache$2({capacity:1e4,timeout:20*duration$3$1.second})),__publicField$1(this,"liveQueryStoreCache",new StoreCache$2({capacity:1e4,timeout:200*duration$3$1.millisecond}))}moduleQuery(o,et,tt,nt,rt,it=!1){const ot={...o,names:[...et],types:[...tt]},st=this.query(ot,nt,rt,it);return st===void 0||st==="too much data"?st:filterDataByType$2(st,tt)}query(o,et,tt,nt=!1){const rt={...o,start:startOfMinute$1(et).toISOString(),end:nt?tt.toISOString():addMinutes$1(roundToNearestMinutes$1(tt),1).toISOString(),latestOnly:nt},it=tt>addSeconds$1(new Date,-20);let ot;return it?ot=this.liveQueryCache(rt):ot=this.queryCache(rt),!ot||ot==="too much data"||nt?ot:filterDataByTime$2(ot,et,tt)}queryCache(o){return this.queryStoreCache.get(o,async()=>{try{return await Fleet$1.queryTelemetry(o)}catch(et){throw et}})}liveQueryCache(o){return this.liveQueryStoreCache.get(o,async()=>{try{return await Fleet$1.queryTelemetry(o)}catch(et){throw et}})}};const queryStore$1=new QueryStore$2;let App$1=class{static sendAppMessage(o){window.parent.postMessage(o,"*")}static getCurrentModuleContext(){let o=new URLSearchParams("");return typeof window<"u"&&(o=new URLSearchParams(window.location.search)),o.get("module")}static async getCurrentModuleConfiguration(){let o=new URLSearchParams("");typeof window<"u"&&(o=new URLSearchParams(window.location.search));const et=o.get("configuration");return et===null||et.trim()===""?void 0:(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/module-configurations/`+et,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).configuration}static isModule(){return this.getCurrentModuleContext()!==null}static goToTime(o){this.sendAppMessage({type:"go_to_time",time:o.getTime()})}static goToDevice(o){this.sendAppMessage({type:"go_to_device",deviceId:o})}static showMessage(o){this.sendAppMessage({type:"show_message",message:o})}static requestModuleData(){const o=this.getCurrentModuleContext();if(!o)throw new Error("No module context");this.sendAppMessage({type:"request_module_data",module:o})}static setModuleDateTimeRange(o,et){const tt=this.getCurrentModuleContext();if(!tt)throw new Error("No module context");this.sendAppMessage({type:"set_module_data_time_range",module:tt,before:o,after:et||0})}static refreshAuthToken(){const o=this.getCurrentModuleContext();if(!o)throw new Error("No module context");this.sendAppMessage({type:"refresh_auth_token",module:o})}static sendChannelData(o,et){const tt=this.getCurrentModuleContext();if(!tt)throw new Error("No module context");this.sendAppMessage({type:"send_channel_data",source:tt,channel:o,data:et})}static setupModuleMenus(o){const et=this.getCurrentModuleContext();if(!et)throw new Error("No module context");this.sendAppMessage({type:"setup_module_menus",module:et,menus:o})}static addMenuListener(o){window.addEventListener("message",et=>{const tt=et.data;tt.type==="module_menu_item_clicked"&&o(tt.menu)})}static addAccessTokenRefreshListener(o){window.addEventListener("message",et=>{const tt=et.data;tt.type==="auth_token"&&o(tt.token)})}static addModuleDataListener(o){const et=this.getCurrentModuleContext();et&&this.sendAppMessage({type:"request_module_data",module:et}),window.addEventListener("message",tt=>{const nt=tt.data;nt.type==="module_data"&&o({streams:nt.streams,time:nt.time,queryRange:nt.queryRange})})}static addStreamListener(o,et,tt){const nt=rt=>{const it=rt.data;if(it.type==="module_data"){const{start:ot,end:st}=it.queryRange;tt(queryStore$1.moduleQuery({},o,et,new Date(ot),new Date(st),!1))}};return window.addEventListener("message",nt),()=>window.removeEventListener("message",nt)}static addModuleConfigurationListener(o){window.addEventListener("message",et=>{const tt=et.data;tt.type==="module_configuration"&&o(tt)})}static addChannelDataListener(o,et){window.addEventListener("message",tt=>{const nt=tt.data;nt.type==="channel_data"&&nt.channel===o&&et({source:nt.source,data:nt.data})})}static requestOverviewDevices(o){this.sendAppMessage({type:"request_devices"}),window.addEventListener("message",et=>{const tt=et.data;o(tt)})}static async prompt(o,et){return new Promise(tt=>{const nt=Math.random().toString();this.sendAppMessage({type:"prompt",promptId:nt,schema:o,okText:et?.okText,cancelText:et?.cancelText});const rt=it=>{const ot=it.data;ot.type==="prompt_response"&&ot.promptId===nt&&tt(ot.data),window.removeEventListener("message",rt)};window.addEventListener("message",rt)})}};const _Authentication=class{static async login(s,o){try{const et=await fetch(`${FORMANT_API_URL$1}/v1/admin/auth/login`,{method:"POST",body:JSON.stringify({email:s,password:o}),headers:{"Content-Type":"application/json"}}),tt=await et.json();if(et.status!==200)throw new Error(tt.message);return await _Authentication.loginWithToken(tt.authentication.accessToken,tt.authentication.refreshToken),tt.authentication}catch(et){return _Authentication.waitingForAuth.forEach(tt=>tt(!1)),_Authentication.waitingForAuth=[],Promise.reject(et)}}static async loginWithToken(s,o){const et=JSON.parse(atob(s.split(".")[1]));try{let tt;if(_Authentication.isShareToken=et["formant:claims"]&&et["formant:claims"].type=="share",et["formant:claims"]&&(_Authentication.currentOrganization=et["formant:claims"].organizationId),et["custom:organization_id"]&&(_Authentication.currentOrganization=et["custom:organization_id"]),_Authentication.isShareToken||(tt=et.sub),et["formant:claims"]&&et["formant:claims"].userId&&(tt=et["formant:claims"].userId),tt){const nt=await fetch(`${FORMANT_API_URL$1}/v1/admin/users/${tt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+s}}),rt=await nt.json();if(nt.status!==200)throw new Error(rt.message);_Authentication.currentUser=rt}_Authentication.token=s,_Authentication.waitingForAuth.forEach(nt=>nt(!0))}catch(tt){console.error(tt),_Authentication.waitingForAuth.forEach(nt=>nt(!1))}_Authentication.waitingForAuth=[],o&&(_Authentication.refreshToken=o,setInterval(async()=>{if(_Authentication.refreshToken){const tt=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:_Authentication.refreshToken})})).json();_Authentication.token=tt.authentication.accessToken}},1e3*60*60))}static isAuthenticated(){return _Authentication.token!==void 0}static getCurrentUser(){return _Authentication.currentUser}static async waitTilAuthenticated(){return _Authentication.token!==void 0?!0:new Promise(s=>{_Authentication.waitingForAuth.push(function(o){s(o)})})}static async listenForRefresh(){App$1.addAccessTokenRefreshListener(s=>{this.loginWithToken(s)}),setInterval(async()=>{App$1.refreshAuthToken()},1e3*60*60)}};let Authentication$1=_Authentication;__publicField$1(Authentication$1,"token");__publicField$1(Authentication$1,"refreshToken");__publicField$1(Authentication$1,"currentUser");__publicField$1(Authentication$1,"currentOrganization");__publicField$1(Authentication$1,"isShareToken",!1);__publicField$1(Authentication$1,"defaultDeviceId");__publicField$1(Authentication$1,"waitingForAuth",[]);function delay$2(s){return new Promise(o=>setTimeout(o,s))}let DataChannel$1=class{constructor(o){__publicField$1(this,"ready",!1),__publicField$1(this,"listeners",[]),__publicField$1(this,"openListeners",[]),__publicField$1(this,"closeListeners",[]),__publicField$1(this,"errorListeners",[]),__publicField$1(this,"binaryListeners",[]),__publicField$1(this,"error"),__publicField$1(this,"decoder",new TextDecoder),this.dataChannel=o,this.dataChannel.binaryType="arraybuffer",this.dataChannel.onopen=()=>{this.ready=!0,this.openListeners.forEach(et=>et())},this.dataChannel.onclose=()=>{this.ready=!1,this.closeListeners.forEach(et=>et())},this.dataChannel.onerror=et=>{console.error(et),this.error="An error occurred in DataChannel",this.errorListeners.forEach(tt=>tt(et))},this.dataChannel.onmessage=et=>{this.listeners.forEach(tt=>{const nt=new Uint8Array(et.data),rt=this.decoder.decode(nt);tt(rt)}),this.binaryListeners.forEach(tt=>{tt(new Uint8Array(et.data))})}}addOpenListener(o){this.openListeners.push(o)}removeOpenListener(o){this.openListeners=this.openListeners.filter(et=>et!==o)}addCloseListener(o){this.closeListeners.push(o)}removeCloseListener(o){this.closeListeners=this.closeListeners.filter(et=>et!==o)}addErrorListener(o){this.errorListeners.push(o)}removeErrorListener(o){this.errorListeners=this.errorListeners.filter(et=>et!==o)}async waitTilReady(){return this.ready?!0:new Promise((o,et)=>{let tt=window.setInterval(()=>{this.ready&&(window.clearInterval(tt),o(!0)),this.error&&et(this.error)},10)})}send(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}sendBinary(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}addListener(o){this.listeners.push(o)}removeListener(o){const et=this.listeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.listeners.splice(et,1)}addBinaryListener(o){this.binaryListeners.push(o)}removeBinaryListener(o){const et=this.binaryListeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.binaryListeners.splice(et,1)}},CaptureStream$1=class{constructor(o){__publicField$1(this,"token"),this.captureSession=o}async ingestJSON(o){if(!this.token){const et=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/capture-sessions/${this.captureSession.code}/authenticate`,{method:"POST"})).json();this.token=et.token}await fetch(`${FORMANT_API_URL$1}/v1/ingest`,{method:"POST",body:JSON.stringify({deviceId:this.captureSession.deviceId,name:this.captureSession.streamName,type:"json",points:[[Date.now(),JSON.stringify(o)]]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+this.token}})}},Manipulator$1=class{constructor(o,et){__publicField$1(this,"currentListeners",[]),__publicField$1(this,"onRealtimeMessage",(tt,nt)=>{nt.payload.jointState&&this.currentListeners.forEach(rt=>{nt.payload.jointState&&rt(nt.payload.jointState)})}),this.device=o,this.config=et}async synchronize(){this.device.addRealtimeListener(this.onRealtimeMessage),this.device.startListeningToRealtimeDataStream(this.config.currentJointStateStream)}async desynchronize(){this.device.removeRealtimeListener(this.onRealtimeMessage),this.device.stopListeningToRealtimeDataStream(this.config.currentJointStateStream)}async addCurrentJointStateListener(o){this.currentListeners.push(o)}},RequestDataChannel$1=class{constructor(o,et,tt){__publicField$1(this,"channel"),__publicField$1(this,"requestIdToResponseMap",new Map),this.device=o,this.channel_name=et,this.timeout=tt}addOpenListener(o){defined$1$1(this.channel,"channel not initalized").addOpenListener(o)}removeOpenListener(o){defined$1$1(this.channel,"channel not initalized").removeOpenListener(o)}addCloseListener(o){defined$1$1(this.channel,"channel not initalized").addCloseListener(o)}removeCloseListener(o){defined$1$1(this.channel,"channel not initalized").removeCloseListener(o)}addErrorListener(o){defined$1$1(this.channel,"channel not initalized").addErrorListener(o)}removeErrorListener(o){defined$1$1(this.channel,"channel not initalized").removeErrorListener(o)}},BinaryRequestDataChannel$1=class extends RequestDataChannel$1{constructor(){super(...arguments),__publicField$1(this,"RESPONSE_SUCCESS_BYTE",0),__publicField$1(this,"decoder",new TextDecoder)}generateBinaryId(){const o=new Uint8Array(16);for(let et=0;et{const et=o.slice(0,16).toString();if(et.length===0)throw new Error("Invalid response");const tt=o.slice(16);if(tt.length===0)throw new Error("Invalid response");this.requestIdToResponseMap.has(et)&&this.requestIdToResponseMap.set(et,tt)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateBinaryId(),it=rt.toString();tt.set(it,!0),et.sendBinary(new Uint8Array([...rt,...o]));const ot=new Date().getTime();for(;new Date().getTime(){const et=JSON.parse(o),{id:tt,data:nt,error:rt}=et;if(!tt)throw new Error("Invalid response");if(!nt&&!rt)throw new Error("Invalid response");this.requestIdToResponseMap.has(tt)&&this.requestIdToResponseMap.set(tt,et)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateTextId();tt.set(rt,!0),et.send(JSON.stringify({id:rt,data:o}));const it=new Date().getTime();for(;new Date().getTime(){this.realtimeListeners.forEach(it=>it(nt,rt))}),this.id=o,this.name=et,this.organizationId=tt}async getLatestTelemetry(){return(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}async getConfiguration(){let o=await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}});const et=await o.json();if(!et.state.reportedConfiguration)throw new Error("Device has no configuration, has it ever been turned on?");const tt=et.state.reportedConfiguration.version;return o=await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/${this.id}/configurations/${tt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}}),(await o.json()).document}async getFileUrl(o){return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[o]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).fileUrls}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error(`Realtime connection hasn't been started for ${this.id}`)}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async startRealtimeConnection(o){if(this.rtcClient)throw new Error(`Already created realtime connection to device ${this.id}`);{let et;if(rtcClientVersion==="1"?et=new dist$1.exports.RtcClientV1({signalingClient:new dist$1.exports.RtcSignalingClient(FORMANT_API_URL$1+"/v1/signaling"),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:this.handleMessage}):et=new dist$1.exports.RtcClient({signalingClient:new dist$1.exports.SignalingPromiseClient(FORMANT_API_URL$1,null,null),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:this.handleMessage,sessionType:o}),et.isReady)for(;!et.isReady();)await delay$2(100);const tt=(await et.getPeers()).find(nt=>nt.deviceId===this.id);if(!tt)throw new Error("Cannot find peer, is the robot offline?");for(this.remoteDevicePeerId=tt.id,await et.connect(this.remoteDevicePeerId);et.getConnectionStatus(this.remoteDevicePeerId)!=="connected";)await delay$2(100);this.rtcClient=et}}async sendRealtimeMessage(o,et={channelLabel:"stream.reliable"}){const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.send(defined$1$1(nt).id,o,et)}addRealtimeListener(o){this.realtimeListeners.push(o)}removeRealtimeListener(o){const et=this.realtimeListeners.indexOf(o);if(et===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(et,1)}async getRealtimeAudioStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="audio_common_msgs/AudioData"&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});return st}async getRealtimeVideoStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="formant/H264VideoFrame"&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});return st}async getRealtimeManipulators(){var o;const et=await this.getConfiguration(),tt=[];for(const nt of(o=et.teleop.rosStreams)!=null?o:[])nt.topicType=="sensor_msgs/JointState"&&tt.push(new Manipulator$1(this,{currentJointStateStream:{name:nt.topicName},plannedJointStateStream:nt.plannedTopic?{name:nt.plannedTopic}:void 0,planValidStream:nt.planValidTopic?{name:nt.planValidTopic}:void 0,endEffectorStream:nt.endEffectorTopic?{name:nt.endEffectorTopic}:void 0,endEffectorLinkName:nt.endEffectorLinkName,baseReferenceFrame:nt.baseReferenceFrame,localFrame:nt.localFrame}));return tt}async startListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!0,pipeline:"telemetry"})}async changeStreamAudioType(o,et){const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.controlRemoteStream(defined$1$1(nt).id,{streamName:o,setAudioFormat:et})}async disableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!1,pipeline:"telemetry"})}async getRemotePeer(){const o=(await defined$1$1(this.rtcClient,"Realtime connection has not been started").getPeers()).find(et=>et.deviceId===this.id);return defined$1$1(o,"Could not find remote peer for device "+this.id)}async stopRealtimeConnection(){if(this.rtcClient)await this.rtcClient.disconnect(this.id);else throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async isInRealtimeSession(){let o=await Fleet$1.getPeers(),et=await Fleet$1.getRealtimeSessions(),tt=o.find(nt=>nt.deviceId===this.id);return tt?et[tt.id].length>0:!1}async getAvailableCommands(){return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/command-templates/`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.map(o=>({name:o.name,id:o.id,command:o.command,description:o.description,parameterEnabled:o.parameterEnabled,parameterValue:o.parameterValue,parameterMeta:o.parameterMeta,enabled:o.enabled}))}async sendCommand(o,et,tt,nt){var rt;const it=(await this.getAvailableCommands()).find(at=>at.name===o);if(!it)throw new Error(`Could not find command with name "${o}"`);let ot;if(et===void 0)if(it.parameterEnabled&&it.parameterValue)ot=it.parameterValue;else throw new Error("Command has no default parameter value, you must provide one");else ot=et;let st={value:ot,scrubberTime:(tt||new Date).toISOString(),meta:{...it.parameterMeta,...nt}};await fetch(`${FORMANT_API_URL$1}/v1/admin/commands`,{method:"POST",body:JSON.stringify({commandTemplateId:it.id,organizationId:this.organizationId,deviceId:this.id,command:it.command,parameter:st,userId:(rt=Authentication$1.currentUser)==null?void 0:rt.id}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})}async createCustomDataChannel(o,et){if(rtcClientVersion==="1")throw new Error("createCustomDataChannel is not supported in rtcClientVersion 1");const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer(),rt=await new Promise(it=>{tt.createCustomDataChannel(defined$1$1(nt).id,o,{ordered:!0,...et},!1,(ot,st)=>{const at=new DataChannel$1(st);it(at)})});return await rt.waitTilReady(),rt}createCustomRequestDataChannel(o,et=3e3){return new TextRequestDataChannel$1(this,o,et)}createCustomBinaryRequestDataChannel(o,et=3e3){return new BinaryRequestDataChannel$1(this,o,et)}async createCaptureStream(o){const et=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/capture-sessions`,{method:"POST",body:JSON.stringify({deviceId:this.id,streamName:o,tags:{}}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json();return new CaptureStream$1(et)}async getTelemetry(o,et,tt,nt){return await Fleet$1.getTelemetry(this.id,o,et,tt,nt)}async getTelemetryStreams(){var o,et;const tt=await this.getConfiguration(),nt=await fetch(`${FORMANT_API_URL$1}/v1/queries/metadata/stream-names`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}}),rt=[],it=[];return(et=(o=tt.telemetry)==null?void 0:o.streams)==null||et.forEach(ot=>{ot.disabled!==!0&&rt.push(ot.name),ot.onDemand===!0&&it.push(ot.name)}),console.log(it),(await nt.json()).items.filter(ot=>!rt.includes(ot)).map(ot=>({name:ot,onDemand:it.includes(ot)}))}async createInterventionRequest(o,et,tt,nt){return await(await fetch(`${FORMANT_API_URL$1}/v1/admin/intervention-requests`,{method:"POST",body:JSON.stringify({message:o,interventionType:et,time:new Date().toISOString(),deviceId:this.id,tags:nt,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()}async addInterventionResponse(o,et,tt){return await(await fetch(`${FORMANT_API_URL$1}/v1/admin/intervention-responses`,{method:"POST",body:JSON.stringify({interventionId:o,interventionType:et,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()}async getAnnotationCount(o,et){return await Fleet$1.getAnnotationCount({...o,deviceIds:[this.id]},et)}async getAnnotationCountByIntervals(o,et,tt){return await Fleet$1.getAnnotationCountByIntervals({...o,deviceIds:[this.id]},et,tt)}async eventsCounter(o,et,tt,nt,rt){return await Fleet$1.eventsCounter(o,et,tt,nt,{...rt,deviceIds:[this.id]})}},PeerDevice$1=class{constructor(o){__publicField$1(this,"rtcClient"),__publicField$1(this,"remoteDevicePeerId"),__publicField$1(this,"realtimeListeners",[]),__publicField$1(this,"id"),__publicField$1(this,"handleMessage",(et,tt)=>{this.realtimeListeners.forEach(nt=>nt(et,tt))}),this.peerUrl=o}async getLatestTelemetry(){const o=await(await fetch(`${this.peerUrl}/telemetry`)).json();return Object.entries(o).map(([et,tt])=>({deviceId:this.id,streamName:et,streamType:"json",currentValue:tt,currentValueTime:tt.timestamp,tags:{}}))}async getDeviceId(){return(await(await fetch(`${this.peerUrl}/configuration`)).json()).agent_config.id}async getConfiguration(){return(await(await fetch(`${this.peerUrl}/configuration`)).json()).agent_config.document}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}async startRealtimeConnection(o){if(this.rtcClient)throw new Error(`Already created realtime connection to device ${this.id}`);{const et=new dist$1.exports.RtcClient({lanOnlyMode:!0,receive:this.handleMessage,sessionType:o});for(await et.connectLan(this.peerUrl);et.getConnectionStatus(this.peerUrl)!=="connected";)await delay$2(100);this.rtcClient=et}}addRealtimeListener(o){this.realtimeListeners.push(o)}removeRealtimeListener(o){const et=this.realtimeListeners.indexOf(o);if(et===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(et,1)}async getRealtimeVideoStreams(){var o,et,tt;const nt=await this.getConfiguration(),rt=[];for(const it of(o=nt.teleop.hardwareStreams)!=null?o:[])it.rtcStreamType==="h264-video-frame"&&rt.push({name:it.name});for(const it of(et=nt.teleop.rosStreams)!=null?et:[])it.topicType=="formant/H264VideoFrame"&&rt.push({name:it.topicName});for(const it of(tt=nt.teleop.customStreams)!=null?tt:[])it.rtcStreamType==="h264-video-frame"&&rt.push({name:it.name});return rt}async getRealtimeManipulators(){var o;const et=await this.getConfiguration(),tt=[];for(const nt of(o=et.teleop.rosStreams)!=null?o:[])nt.topicType=="sensor_msgs/JointState"&&tt.push(new Manipulator$1(this,{currentJointStateStream:{name:nt.topicName},plannedJointStateStream:nt.plannedTopic?{name:nt.plannedTopic}:void 0,planValidStream:nt.planValidTopic?{name:nt.planValidTopic}:void 0,endEffectorStream:nt.endEffectorTopic?{name:nt.endEffectorTopic}:void 0,endEffectorLinkName:nt.endEffectorLinkName,baseReferenceFrame:nt.baseReferenceFrame,localFrame:nt.localFrame}));return tt}async startListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!0,pipeline:"telemetry"})}async disableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!1,pipeline:"telemetry"})}async getRemotePeer(){return{id:this.peerUrl,organizationId:"",deviceId:this.id,capabilities:[],capabilitySet:{}}}async stopRealtimeConnection(){if(this.rtcClient)await this.rtcClient.disconnect(this.id);else throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async createCustomDataChannel(o,et){const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer(),rt=await new Promise(it=>{tt.createCustomDataChannel(defined$1$1(nt).id,o,{ordered:!0,...et},!1,(ot,st)=>{const at=new DataChannel$1(st);it(at)})});return await rt.waitTilReady(),rt}createCustomRequestDataChannel(o,et=3e3){return new TextRequestDataChannel$1(this,o,et)}createCustomBinaryRequestDataChannel(o,et=3e3){return new BinaryRequestDataChannel$1(this,o,et)}};const _Fleet=class{static async setDefaultDevice(s){_Fleet.defaultDeviceId=s}static async getCurrentDevice(){if(!Authentication$1.token)throw new Error("Not authenticated");if(!_Fleet.defaultDeviceId)throw new Error("No known default device");const s=(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/device-details/query`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.find(et=>et.id===_Fleet.defaultDeviceId).name,o=new Device$1(_Fleet.defaultDeviceId,s,defined$1$1(Authentication$1.currentOrganization));return _Fleet.knownContext.push(new WeakRef(o)),o}static async getPeerDevice(s){const o=new PeerDevice$1(s);return o.id=await o.getDeviceId(),o}static async getDevice(s){if(!Authentication$1.token)throw new Error("Not authenticated");const o=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json(),et=o.name,tt=new Device$1(s,et,o.organizationId);return _Fleet.knownContext.push(new WeakRef(tt)),tt}static async getDevices(){if(!Authentication$1.token)throw new Error("Not authenticated");const s=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json();return s.items,s.items.map(o=>new Device$1(o.id,o.name,o.organizationId))}static async queryDevices(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.map(o=>new Device$1(o.id,o.name,o.organizationId))}static async getOnlineDevices(){if(!Authentication$1.token)throw new Error("Not authenticated");const s=(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/online-devices`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items;return(await _Fleet.getDevices()).filter(o=>s.includes(o.id))}static async getPeers(){if(!Authentication$1.token)throw new Error("Not authenticated");return await new dist$1.exports.RtcClient({signalingClient:new dist$1.exports.SignalingPromiseClient(FORMANT_API_URL$1,null,null),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:()=>{}}).getPeers()}static async getRealtimeSessions(){if(!Authentication$1.token)throw new Error("Not authenticated");return await new dist$1.exports.RtcClient({signalingClient:new dist$1.exports.SignalingPromiseClient(FORMANT_API_URL$1,null,null),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:()=>{}}).getSessions()}static async getRealtimeDevices(){if(!Authentication$1.token)throw new Error("Not authenticated");const s=(await(await fetch(`${FORMANT_API_URL$1}/v1/signaling/peers`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.map(o=>o.deviceId);return(await _Fleet.getDevices()).filter(o=>s.includes(o.id))}static async getLatestTelemetry(s){let o=s;return s&&!Array.isArray(s)&&(s=[s]),(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:o}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getTelemetry(s,o,et,tt,nt){let rt=s;Array.isArray(s)||(rt=[s]);let it=o;return Array.isArray(o)||(it=[o]),(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/queries`,{method:"POST",body:JSON.stringify({deviceIds:rt,end:tt.toISOString(),names:it,start:et.toISOString(),tags:nt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getFileUrl(s){const o=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[s]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json();if(o.fileUrls.length===0)throw new Error("File not found");return o.fileUrls[0]}static async queryTelemetry(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/queries`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async aggregateTelemetry(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/queries`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).aggregates}static async queryEvents(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/events/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getEvent(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/events/query/id=${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getInterventions(){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/intervention-requests`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getCurrentGroup(){if(!Authentication$1.token)throw new Error("Not authenticated");let s=new URLSearchParams("");typeof window<"u"&&(s=new URLSearchParams(window.location.search));const o=s.get("group");if(o===null||o.trim()==="")return;const et=await fetch(`${FORMANT_API_URL$1}/v1/admin/groups/`+o,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}}),{tagKey:tt,tagValue:nt}=await et.json();return await this.queryDevices({tags:{[tt]:[nt]},enabled:!0,type:"default"})}static async getAnnotationCount(s,o){return(await this.queryEvents({...s,eventTypes:["annotation"]})).filter(et=>!!et.tags&&Object.keys(et.tags).includes(o)).reduce((et,tt)=>{const nt=tt.tags[o];return nt in et?(et[nt]+=1,et):(et[nt]=1,et)},{})}static async getAnnotationCountByIntervals(s,o,et){const{end:tt,start:nt}=s,rt=aggregateByDateFunctions$1[et].interval({start:new Date(nt),end:new Date(tt)}),it=rt.map((st,at)=>{const lt=new Date(st).toISOString(),ut=at===rt.length-1?new Date(Date.now()).toISOString():new Date(rt[at+1]);return this.getAnnotationCount({...s,start:lt,end:ut},o)}),ot=await Promise.all(it);return rt.map((st,at)=>({date:new Date(st).toISOString(),annotations:ot[at]}))}static async getStreams(){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.filter(s=>s.enabled)}static async patchStream(s){if(!Authentication$1.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL$1}/v1/admin/streams/${s.id}`,{method:"PATCH",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()}static async eventsCounter(s,o,et,tt,nt){const rt=aggregateByDateFunctions$1[o];return await Promise.all(Array(et).fill(0).map(async(it,ot)=>{const st=new Date(tt),at=rt.sub(rt.start(st),et-ot-1),lt=rt.sub(rt.end(st),et-ot-1),ut=formatTimeFrameText$1(at.toLocaleDateString(),lt.toLocaleDateString()),dt=await _Fleet.queryEvents({...nt,eventTypes:s,start:new Date(at).toISOString(),end:new Date(lt).toISOString()});return{date:ut,events:dt}}))}};let Fleet$1=_Fleet;__publicField$1(Fleet$1,"defaultDeviceId");__publicField$1(Fleet$1,"knownContext",[]);const aggregateByDateFunctions$1={day:{interval:eachDayOfInterval$1,start:startOfDay$1,end:endOfDay$1,sub:subDays$1,get:getDay$1},week:{interval:eachWeekOfInterval$1,start:startOfWeek$1,end:endOfWeek$1,sub:subWeeks$1,get:getWeek$1},month:{interval:eachMonthOfInterval$1,start:startOfMonth$1,end:endOfMonth$1,sub:subMonths$1,get:getMonth$1},year:{interval:eachYearOfInterval$1,start:startOfYear$1,end:endOfYear$1,sub:subYears$1,get:getYear$1},hour:{interval:eachHourOfInterval$1,start:startOfHour$1,end:endOfHour$1,sub:subHours$1,get:getHours$1},minute:{interval:eachMinuteOfInterval$1,start:startOfMinute$1,end:endOfMinute$1,sub:subMinutes$1,get:getMinutes$1},quarter:{interval:eachQuarterOfInterval$1,start:startOfQuarter$1,end:endOfQuarter$1,sub:subQuarters$1,get:getQuarter$1}},formatTimeFrameText$1=(s,o)=>s.split("/")[0]+"/"+s.split("/")[1]+"–"+o.split("/")[0]+"/"+o.split("/")[1];let urlParams=new URLSearchParams("");typeof window<"u"&&(urlParams=new URLSearchParams(window.location.search));const urlDevice=urlParams.get("device");urlDevice&&Fleet$1.setDefaultDevice(urlDevice);const urlAuth=urlParams.get("auth");urlAuth&&Authentication$1.loginWithToken(urlAuth);const moduleName=urlParams.get("module");moduleName&&Authentication$1.listenForRefresh();dist$1.exports.IRtcSendConfiguration;dist$1.exports.IRtcStreamMessage;dist$1.exports.IRtcStreamPayload;reactExports.createContext(void 0);var lodashExports={},lodash={get exports(){return lodashExports},set exports(s){lodashExports=s}};/** * @license * Lodash * Copyright OpenJS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */(function(s,o){(function(){var et,tt="4.17.21",nt=200,rt="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",it="Expected a function",ot="Invalid `variable` option passed into `_.template`",st="__lodash_hash_undefined__",at=500,lt="__lodash_placeholder__",ut=1,dt=2,ht=4,ct=1,pt=2,ft=1,gt=2,yt=4,Ut=8,Ft=16,mt=32,vt=64,At=128,Lt=256,Rt=512,St=30,Tt="...",Bt=800,xt=16,Ct=1,kt=2,Nt=3,Ot=1/0,Wt=9007199254740991,Dt=17976931348623157e292,Et=0/0,Pt=4294967295,zt=Pt-1,en=Pt>>>1,Kt=[["ary",At],["bind",ft],["bindKey",gt],["curry",Ut],["curryRight",Ft],["flip",Rt],["partial",mt],["partialRight",vt],["rearg",Lt]],nn="[object Arguments]",Zt="[object Array]",jt="[object AsyncFunction]",Vt="[object Boolean]",It="[object Date]",$t="[object DOMException]",Ht="[object Error]",qt="[object Function]",on="[object GeneratorFunction]",Xt="[object Map]",dn="[object Number]",_n="[object Null]",Fn="[object Object]",Un="[object Promise]",On="[object Proxy]",gn="[object RegExp]",hn="[object Set]",wn="[object String]",Zn="[object Symbol]",Pn="[object Undefined]",$n="[object WeakMap]",Tr="[object WeakSet]",Qr="[object ArrayBuffer]",_r="[object DataView]",Ir="[object Float32Array]",Wr="[object Float64Array]",qr="[object Int8Array]",Uo="[object Int16Array]",eo="[object Int32Array]",Yr="[object Uint8Array]",_o="[object Uint8ClampedArray]",ro="[object Uint16Array]",Fo="[object Uint32Array]",kn=/\b__p \+= '';/g,un=/\b(__p \+=) '' \+/g,pn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Qn=/&(?:amp|lt|gt|quot|#39);/g,Wn=/[&<>"']/g,jn=RegExp(Qn.source),Fr=RegExp(Wn.source),Er=/<%-([\s\S]+?)%>/g,wr=/<%([\s\S]+?)%>/g,tr=/<%=([\s\S]+?)%>/g,ar=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,hr=/^\w*$/,cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,mn=/[\\^$.*+?()[\]{}|]/g,xn=RegExp(mn.source),Gn=/^\s+/,er=/\s/,cr=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,gr=/\{\n\/\* \[wrapped with (.+)\] \*/,br=/,? & /,ur=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,nr=/[()=,{}\[\]\/\s]/,Kr=/\\(\\)?/g,ho=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Nn=/\w*$/,rr=/^[-+]0x[0-9a-f]+$/i,Rr=/^0b[01]+$/i,vr=/^\[object .+?Constructor\]$/,fr=/^0o[0-7]+$/i,zr=/^(?:0|[1-9]\d*)$/,Gr=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Pr=/($^)/,oo=/['\n\r\u2028\u2029\\]/g,ao="\\ud800-\\udfff",mo="\\u0300-\\u036f",lo="\\ufe20-\\ufe2f",To="\\u20d0-\\u20ff",Jo=mo+lo+To,Go="\\u2700-\\u27bf",cs="a-z\\xdf-\\xf6\\xf8-\\xff",So="\\xac\\xb1\\xd7\\xf7",so="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Bo="\\u2000-\\u206f",Io=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ns="A-Z\\xc0-\\xd6\\xd8-\\xde",ps="\\ufe0e\\ufe0f",gs=So+so+Bo+Io,bs="['’]",Lo="["+ao+"]",Qs="["+gs+"]",Ps="["+Jo+"]",No="\\d+",ys="["+Go+"]",Ns="["+cs+"]",fs="[^"+ao+gs+No+Go+cs+ns+"]",Zs="\\ud83c[\\udffb-\\udfff]",Sl="(?:"+Ps+"|"+Zs+")",As="[^"+ao+"]",ks="(?:\\ud83c[\\udde6-\\uddff]){2}",js="[\\ud800-\\udbff][\\udc00-\\udfff]",Xs="["+ns+"]",vo="\\u200d",Hl="(?:"+Ns+"|"+fs+")",Tn="(?:"+Xs+"|"+fs+")",En="(?:"+bs+"(?:d|ll|m|re|s|t|ve))?",Dn="(?:"+bs+"(?:D|LL|M|RE|S|T|VE))?",Mn=Sl+"?",Jn="["+ps+"]?",Vr="(?:"+vo+"(?:"+[As,ks,js].join("|")+")"+Jn+Mn+")*",Cr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",an="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",bn=Jn+Mn+Vr,Vn="(?:"+[ys,ks,js].join("|")+")"+bn,zn="(?:"+[As+Ps+"?",Ps,ks,js,Lo].join("|")+")",Hn=RegExp(bs,"g"),ir=RegExp(Ps,"g"),Yn=RegExp(Zs+"(?="+Zs+")|"+zn+bn,"g"),or=RegExp([Xs+"?"+Ns+"+"+En+"(?="+[Qs,Xs,"$"].join("|")+")",Tn+"+"+Dn+"(?="+[Qs,Xs+Hl,"$"].join("|")+")",Xs+"?"+Hl+"+"+En,Xs+"+"+Dn,an,Cr,No,Vn].join("|"),"g"),Mr=RegExp("["+vo+ao+Jo+ps+"]"),Jr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Hr=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],co=-1,_i={};_i[Ir]=_i[Wr]=_i[qr]=_i[Uo]=_i[eo]=_i[Yr]=_i[_o]=_i[ro]=_i[Fo]=!0,_i[nn]=_i[Zt]=_i[Qr]=_i[Vt]=_i[_r]=_i[It]=_i[Ht]=_i[qt]=_i[Xt]=_i[dn]=_i[Fn]=_i[gn]=_i[hn]=_i[wn]=_i[$n]=!1;var sn={};sn[nn]=sn[Zt]=sn[Qr]=sn[_r]=sn[Vt]=sn[It]=sn[Ir]=sn[Wr]=sn[qr]=sn[Uo]=sn[eo]=sn[Xt]=sn[dn]=sn[Fn]=sn[gn]=sn[hn]=sn[wn]=sn[Zn]=sn[Yr]=sn[_o]=sn[ro]=sn[Fo]=!0,sn[Ht]=sn[qt]=sn[$n]=!1;var vn={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},In={"&":"&","<":"<",">":">",'"':""","'":"'"},Kn={"&":"&","<":"<",">":">",""":'"',"'":"'"},mr={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},kr=parseFloat,Sr=parseInt,Ar=typeof commonjsGlobal$1=="object"&&commonjsGlobal$1&&commonjsGlobal$1.Object===Object&&commonjsGlobal$1,Zr=typeof self=="object"&&self&&self.Object===Object&&self,no=Ar||Zr||Function("return this")(),Ro=o&&!o.nodeType&&o,Co=Ro&&!0&&s&&!s.nodeType&&s,Ko=Co&&Co.exports===Ro,as=Ko&&Ar.process,Po=function(){try{var dr=Co&&Co.require&&Co.require("util").types;return dr||as&&as.binding&&as.binding("util")}catch{}}(),xo=Po&&Po.isArrayBuffer,Bs=Po&&Po.isDate,Ks=Po&&Po.isMap,c0=Po&&Po.isRegExp,u0=Po&&Po.isSet,$u=Po&&Po.isTypedArray;function Rs(dr,Lr,Nr){switch(Nr.length){case 0:return dr.call(Lr);case 1:return dr.call(Lr,Nr[0]);case 2:return dr.call(Lr,Nr[0],Nr[1]);case 3:return dr.call(Lr,Nr[0],Nr[1],Nr[2])}return dr.apply(Lr,Nr)}function uu(dr,Lr,Nr,go){for(var Wo=-1,zo=dr==null?0:dr.length;++Wo-1}function ap(dr,Lr,Nr){for(var go=-1,Wo=dr==null?0:dr.length;++go-1;);return Nr}function up(dr,Lr){for(var Nr=dr.length;Nr--&&Kl(Lr,dr[Nr],0)>-1;);return Nr}function eu(dr,Lr){for(var Nr=dr.length,go=0;Nr--;)dr[Nr]===Lr&&++go;return go}var C1=Tl(vn),x1=Tl(In);function L0(dr){return"\\"+mr[dr]}function P0(dr,Lr){return dr==null?et:dr[Lr]}function Gu(dr){return Mr.test(dr)}function kp(dr){return Jr.test(dr)}function dp(dr){for(var Lr,Nr=[];!(Lr=dr.next()).done;)Nr.push(Lr.value);return Nr}function Dp(dr){var Lr=-1,Nr=Array(dr.size);return dr.forEach(function(go,Wo){Nr[++Lr]=[Wo,go]}),Nr}function hp(dr,Lr){return function(Nr){return dr(Lr(Nr))}}function tu(dr,Lr){for(var Nr=-1,go=dr.length,Wo=0,zo=[];++Nr-1}function F0(bt,Jt){var tn=this.__data__,fn=Du(tn,bt);return fn<0?(++this.size,tn.push([bt,Jt])):tn[fn][1]=Jt,this}nu.prototype.clear=X1,nu.prototype.delete=K0,nu.prototype.get=K1,nu.prototype.has=q1,nu.prototype.set=F0;function Il(bt){var Jt=-1,tn=bt==null?0:bt.length;for(this.clear();++Jt=Jt?bt:Jt)),bt}function Ml(bt,Jt,tn,fn,Cn,Ln){var qn,lr=Jt&ut,Br=Jt&dt,jr=Jt&ht;if(tn&&(qn=Cn?tn(bt,fn,Cn,Ln):tn(bt)),qn!==et)return qn;if(!ws(bt))return bt;var $r=$o(bt);if($r){if(qn=iU(bt),!lr)return Fl(bt,qn)}else{var Xr=Cl(bt),po=Xr==qt||Xr==on;if(Vp(bt))return y1(bt,lr);if(Xr==Fn||Xr==nn||po&&!Cn){if(qn=Br||po?{}:um(bt),!lr)return Br?g2(bt,i2(qn,bt)):D2(bt,i1(qn,bt))}else{if(!sn[Xr])return Cn?bt:{};qn=oU(bt,Xr,lr)}}Ln||(Ln=new Js);var Eo=Ln.get(bt);if(Eo)return Eo;Ln.set(bt,qn),Wm(bt)?bt.forEach(function(Oo){qn.add(Ml(Oo,Jt,tn,Oo,bt,Ln))}):Dm(bt)&&bt.forEach(function(Oo,rs){qn.set(rs,Ml(Oo,Jt,tn,rs,bt,Ln))});var Do=jr?Br?ss:Vs:Br?$l:Rl,ts=$r?et:Do(bt);return Ds(ts||bt,function(Oo,rs){ts&&(rs=Oo,Oo=bt[rs]),ru(qn,rs,Ml(Oo,Jt,tn,rs,bt,Ln))}),qn}function o1(bt){var Jt=Rl(bt);return function(tn){return B0(tn,bt,Jt)}}function B0(bt,Jt,tn){var fn=tn.length;if(bt==null)return!fn;for(bt=ko(bt);fn--;){var Cn=tn[fn],Ln=Jt[Cn],qn=bt[Cn];if(qn===et&&!(Cn in bt)||!Ln(qn))return!1}return!0}function s1(bt,Jt,tn){if(typeof bt!="function")throw new _l(it);return b1(function(){bt.apply(et,tn)},Jt)}function _d(bt,Jt,tn,fn){var Cn=-1,Ln=Yl,qn=!0,lr=bt.length,Br=[],jr=Jt.length;if(!lr)return Br;tn&&(Jt=ms(Jt,Bl(tn))),fn?(Ln=ap,qn=!1):Jt.length>=nt&&(Ln=Hs,qn=!1,Jt=new ku(Jt));e:for(;++CnCn?0:Cn+tn),fn=fn===et||fn>Cn?Cn:qo(fn),fn<0&&(fn+=Cn),fn=tn>fn?0:Im(fn);tn0&&tn(lr)?Jt>1?Gs(lr,Jt-1,tn,fn,Cn):Xl(Cn,lr):fn||(Cn[Cn.length]=lr)}return Cn}var vp=N0(),Kp=N0(!0);function Nl(bt,Jt){return bt&&vp(bt,Jt,Rl)}function bp(bt,Jt){return bt&&Kp(bt,Jt,Rl)}function _h(bt,Jt){return qs(Jt,function(tn){return ip(bt[tn])})}function ou(bt,Jt){Jt=Pu(Jt,bt);for(var tn=0,fn=Jt.length;bt!=null&&tnJt}function a2(bt,Jt){return bt!=null&&us.call(bt,Jt)}function l1(bt,Jt){return bt!=null&&Jt in ko(bt)}function A2(bt,Jt,tn){return bt>=na(Jt,tn)&&bt=120&&$r.length>=120)?new ku(qn&&$r):et}$r=bt[0];var Xr=-1,po=lr[0];e:for(;++Xr-1;)lr!==bt&&Nu.call(lr,Br,1),Nu.call(bt,Br,1);return bt}function xa(bt,Jt){for(var tn=bt?Jt.length:0,fn=tn-1;tn--;){var Cn=Jt[tn];if(tn==fn||Cn!==Ln){var Ln=Cn;rp(Cn)?Nu.call(bt,Cn,1):m1(bt,Cn)}}return bt}function Uu(bt,Jt){return bt+jp(Y0()*(Jt-bt+1))}function Ll(bt,Jt,tn,fn){for(var Cn=-1,Ln=Ws(Zp((Jt-bt)/(tn||1)),0),qn=Nr(Ln);Ln--;)qn[fn?Ln:++Cn]=bt,bt+=tn;return qn}function xp(bt,Jt){var tn="";if(!bt||Jt<1||Jt>Wt)return tn;do Jt%2&&(tn+=bt),Jt=jp(Jt/2),Jt&&(bt+=bt);while(Jt);return tn}function Vo(bt,Jt){return Z2(pm(bt,Jt,Gl),bt+"")}function l2(bt){return Yp(O0(bt))}function p1(bt,Jt){var tn=O0(bt);return F2(tn,Ou(Jt,0,tn.length))}function tp(bt,Jt,tn,fn){if(!ws(bt))return bt;Jt=Pu(Jt,bt);for(var Cn=-1,Ln=Jt.length,qn=Ln-1,lr=bt;lr!=null&&++CnCn?0:Cn+Jt),tn=tn>Cn?Cn:tn,tn<0&&(tn+=Cn),Cn=Jt>tn?0:tn-Jt>>>0,Jt>>>=0;for(var Ln=Nr(Cn);++fn>>1,qn=bt[Ln];qn!==null&&!au(qn)&&(tn?qn<=Jt:qn=nt){var jr=Jt?null:yl(bt);if(jr)return Op(jr);qn=!1,Cn=Hs,Br=new ku}else Br=Jt?[]:lr;e:for(;++fn=fn?bt:Dl(bt,Jt,tn)}var p2=Pp||function(bt){return no.clearTimeout(bt)};function y1(bt,Jt){if(Jt)return bt.slice();var tn=bt.length,fn=z0?z0(tn):new bt.constructor(tn);return bt.copy(fn),fn}function V0(bt){var Jt=new bt.constructor(bt.byteLength);return new Ip(Jt).set(new Ip(bt)),Jt}function k2(bt,Jt){var tn=Jt?V0(bt.buffer):bt.buffer;return new bt.constructor(tn,bt.byteOffset,bt.byteLength)}function Pl(bt){var Jt=new bt.constructor(bt.source,Nn.exec(bt));return Jt.lastIndex=bt.lastIndex,Jt}function R1(bt){return Qu?ko(Qu.call(bt)):{}}function f2(bt,Jt){var tn=Jt?V0(bt.buffer):bt.buffer;return new bt.constructor(tn,bt.byteOffset,bt.length)}function Tu(bt,Jt){if(bt!==Jt){var tn=bt!==et,fn=bt===null,Cn=bt===bt,Ln=au(bt),qn=Jt!==et,lr=Jt===null,Br=Jt===Jt,jr=au(Jt);if(!lr&&!jr&&!Ln&&bt>Jt||Ln&&qn&&Br&&!lr&&!jr||fn&&qn&&Br||!tn&&Br||!Cn)return 1;if(!fn&&!Ln&&!jr&&bt=lr)return Br;var jr=tn[fn];return Br*(jr=="desc"?-1:1)}}return bt.index-Jt.index}function ju(bt,Jt,tn,fn){for(var Cn=-1,Ln=bt.length,qn=tn.length,lr=-1,Br=Jt.length,jr=Ws(Ln-qn,0),$r=Nr(Br+jr),Xr=!fn;++lr1?tn[Cn-1]:et,qn=Cn>2?tn[2]:et;for(Ln=bt.length>3&&typeof Ln=="function"?(Cn--,Ln):et,qn&&Wl(tn[0],tn[1],qn)&&(Ln=Cn<3?et:Ln,Cn=1),Jt=ko(Jt);++fn-1?Cn[Ln?Jt[qn]:qn]:et}}function ln(bt){return Xo(function(Jt){var tn=Jt.length,fn=tn,Cn=ga.prototype.thru;for(bt&&Jt.reverse();fn--;){var Ln=Jt[fn];if(typeof Ln!="function")throw new _l(it);if(Cn&&!qn&&A0(Ln)=="wrapper")var qn=new ga([],!0)}for(fn=qn?fn:tn;++fn1&&ls.reverse(),$r&&Brlr))return!1;var jr=Ln.get(bt),$r=Ln.get(Jt);if(jr&&$r)return jr==Jt&&$r==bt;var Xr=-1,po=!0,Eo=tn&pt?new ku:et;for(Ln.set(bt,Jt),Ln.set(Jt,bt);++Xr1?"& ":"")+Jt[fn],Jt=Jt.join(tn>2?", ":" "),bt.replace(cr,`{ -/* [wrapped with `+Jt+`] */ -`)}function aU(bt){return $o(bt)||l0(bt)||!!(G0&&bt&&bt[G0])}function rp(bt,Jt){var tn=typeof bt;return Jt=Jt??Wt,!!Jt&&(tn=="number"||tn!="symbol"&&zr.test(bt))&&bt>-1&&bt%1==0&&bt0){if(++Jt>=Bt)return arguments[0]}else Jt=0;return bt.apply(et,arguments)}}function F2(bt,Jt){var tn=-1,fn=bt.length,Cn=fn-1;for(Jt=Jt===et?fn:Jt;++tn1?bt[Jt-1]:et;return tn=typeof tn=="function"?(bt.pop(),tn):et,Qm(bt,tn)});function _m(bt){var Jt=An(bt);return Jt.__chain__=!0,Jt}function FF(bt,Jt){return Jt(bt),bt}function y2(bt,Jt){return Jt(bt)}var yF=Xo(function(bt){var Jt=bt.length,tn=Jt?bt[0]:0,fn=this.__wrapped__,Cn=function(Ln){return S0(Ln,bt)};return Jt>1||this.__actions__.length||!(fn instanceof Mo)||!rp(tn)?this.thru(Cn):(fn=fn.slice(tn,+tn+(Jt?1:0)),fn.__actions__.push({func:y2,args:[Cn],thisArg:et}),new ga(fn,this.__chain__).thru(function(Ln){return Jt&&!Ln.length&&Ln.push(et),Ln}))});function RF(){return _m(this)}function SF(){return new ga(this.value(),this.__chain__)}function BF(){this.__values__===et&&(this.__values__=Jm(this.value()));var bt=this.__index__>=this.__values__.length,Jt=bt?et:this.__values__[this.__index__++];return{done:bt,value:Jt}}function vF(){return this}function bF(bt){for(var Jt,tn=this;tn instanceof Hp;){var fn=ym(tn);fn.__index__=0,fn.__values__=et,Jt?Cn.__wrapped__=fn:Jt=fn;var Cn=fn;tn=tn.__wrapped__}return Cn.__wrapped__=bt,Jt}function QF(){var bt=this.__wrapped__;if(bt instanceof Mo){var Jt=bt;return this.__actions__.length&&(Jt=new Mo(this)),Jt=Jt.reverse(),Jt.__actions__.push({func:y2,args:[j2],thisArg:et}),new ga(Jt,this.__chain__)}return this.thru(j2)}function _F(){return Iu(this.__wrapped__,this.__actions__)}var EF=o0(function(bt,Jt,tn){us.call(bt,tn)?++bt[tn]:mu(bt,tn,1)});function TF(bt,Jt,tn){var fn=$o(bt)?J0:N2;return tn&&Wl(bt,Jt,tn)&&(Jt=et),fn(bt,Ao(Jt,3))}function wF(bt,Jt){var tn=$o(bt)?qs:a1;return tn(bt,Ao(Jt,3))}var CF=rn(Rm),xF=rn(Sm);function VF(bt,Jt){return Gs(R2(bt,Jt),1)}function MF(bt,Jt){return Gs(R2(bt,Jt),Ot)}function NF(bt,Jt,tn){return tn=tn===et?1:qo(tn),Gs(R2(bt,Jt),tn)}function Em(bt,Jt){var tn=$o(bt)?Ds:iu;return tn(bt,Ao(Jt,3))}function Tm(bt,Jt){var tn=$o(bt)?W0:o2;return tn(bt,Ao(Jt,3))}var AF=o0(function(bt,Jt,tn){us.call(bt,tn)?bt[tn].push(Jt):mu(bt,tn,[Jt])});function kF(bt,Jt,tn,fn){bt=zl(bt)?bt:O0(bt),tn=tn&&!fn?qo(tn):0;var Cn=bt.length;return tn<0&&(tn=Ws(Cn+tn,0)),_2(bt)?tn<=Cn&&bt.indexOf(Jt,tn)>-1:!!Cn&&Kl(bt,Jt,tn)>-1}var DF=Vo(function(bt,Jt,tn){var fn=-1,Cn=typeof Jt=="function",Ln=zl(bt)?Nr(bt.length):[];return iu(bt,function(qn){Ln[++fn]=Cn?Rs(Jt,qn,tn):Fs(qn,Jt,tn)}),Ln}),OF=o0(function(bt,Jt,tn){mu(bt,tn,Jt)});function R2(bt,Jt){var tn=$o(bt)?ms:ep;return tn(bt,Ao(Jt,3))}function WF(bt,Jt,tn,fn){return bt==null?[]:($o(Jt)||(Jt=Jt==null?[]:[Jt]),tn=fn?et:tn,$o(tn)||(tn=tn==null?[]:[tn]),t0(bt,Jt,tn))}var JF=o0(function(bt,Jt,tn){bt[tn?0:1].push(Jt)},function(){return[[],[]]});function IF(bt,Jt,tn){var fn=$o(bt)?d0:xu,Cn=arguments.length<3;return fn(bt,Ao(Jt,4),tn,Cn,iu)}function LF(bt,Jt,tn){var fn=$o(bt)?_1:xu,Cn=arguments.length<3;return fn(bt,Ao(Jt,4),tn,Cn,o2)}function PF(bt,Jt){var tn=$o(bt)?qs:a1;return tn(bt,b2(Ao(Jt,3)))}function ZF(bt){var Jt=$o(bt)?Yp:l2;return Jt(bt)}function jF(bt,Jt,tn){(tn?Wl(bt,Jt,tn):Jt===et)?Jt=1:Jt=qo(Jt);var fn=$o(bt)?t1:p1;return fn(bt,Jt)}function zF(bt){var Jt=$o(bt)?r2:u2;return Jt(bt)}function $F(bt){if(bt==null)return 0;if(zl(bt))return _2(bt)?du(bt):bt.length;var Jt=Cl(bt);return Jt==Xt||Jt==hn?bt.size:ba(bt).length}function GF(bt,Jt,tn){var fn=$o(bt)?Mp:f1;return tn&&Wl(bt,Jt,tn)&&(Jt=et),fn(bt,Ao(Jt,3))}var HF=Vo(function(bt,Jt){if(bt==null)return[];var tn=Jt.length;return tn>1&&Wl(bt,Jt[0],Jt[1])?Jt=[]:tn>2&&Wl(Jt[0],Jt[1],Jt[2])&&(Jt=[Jt[0]]),t0(bt,Gs(Jt,1),[])}),S2=A1||function(){return no.Date.now()};function YF(bt,Jt){if(typeof Jt!="function")throw new _l(it);return bt=qo(bt),function(){if(--bt<1)return Jt.apply(this,arguments)}}function wm(bt,Jt,tn){return Jt=tn?et:Jt,Jt=bt&&Jt==null?bt.length:Jt,xr(bt,At,et,et,et,et,Jt)}function Cm(bt,Jt){var tn;if(typeof Jt!="function")throw new _l(it);return bt=qo(bt),function(){return--bt>0&&(tn=Jt.apply(this,arguments)),bt<=1&&(Jt=et),tn}}var $2=Vo(function(bt,Jt,tn){var fn=ft;if(tn.length){var Cn=tu(tn,k0($2));fn|=mt}return xr(bt,fn,Jt,tn,Cn)}),xm=Vo(function(bt,Jt,tn){var fn=ft|gt;if(tn.length){var Cn=tu(tn,k0(xm));fn|=mt}return xr(Jt,fn,bt,tn,Cn)});function Vm(bt,Jt,tn){Jt=tn?et:Jt;var fn=xr(bt,Ut,et,et,et,et,et,Jt);return fn.placeholder=Vm.placeholder,fn}function Mm(bt,Jt,tn){Jt=tn?et:Jt;var fn=xr(bt,Ft,et,et,et,et,et,Jt);return fn.placeholder=Mm.placeholder,fn}function Nm(bt,Jt,tn){var fn,Cn,Ln,qn,lr,Br,jr=0,$r=!1,Xr=!1,po=!0;if(typeof bt!="function")throw new _l(it);Jt=Su(Jt)||0,ws(tn)&&($r=!!tn.leading,Xr="maxWait"in tn,Ln=Xr?Ws(Su(tn.maxWait)||0,Jt):Ln,po="trailing"in tn?!!tn.trailing:po);function Eo(Ls){var Cu=fn,sp=Cn;return fn=Cn=et,jr=Ls,qn=bt.apply(sp,Cu),qn}function Do(Ls){return jr=Ls,lr=b1(rs,Jt),$r?Eo(Ls):qn}function ts(Ls){var Cu=Ls-Br,sp=Ls-jr,qm=Jt-Cu;return Xr?na(qm,Ln-sp):qm}function Oo(Ls){var Cu=Ls-Br,sp=Ls-jr;return Br===et||Cu>=Jt||Cu<0||Xr&&sp>=Ln}function rs(){var Ls=S2();if(Oo(Ls))return ls(Ls);lr=b1(rs,ts(Ls))}function ls(Ls){return lr=et,po&&fn?Eo(Ls):(fn=Cn=et,qn)}function lu(){lr!==et&&p2(lr),jr=0,fn=Br=Cn=lr=et}function Jl(){return lr===et?qn:ls(S2())}function cu(){var Ls=S2(),Cu=Oo(Ls);if(fn=arguments,Cn=this,Br=Ls,Cu){if(lr===et)return Do(Br);if(Xr)return p2(lr),lr=b1(rs,Jt),Eo(Br)}return lr===et&&(lr=b1(rs,Jt)),qn}return cu.cancel=lu,cu.flush=Jl,cu}var XF=Vo(function(bt,Jt){return s1(bt,1,Jt)}),KF=Vo(function(bt,Jt,tn){return s1(bt,Su(Jt)||0,tn)});function qF(bt){return xr(bt,Rt)}function B2(bt,Jt){if(typeof bt!="function"||Jt!=null&&typeof Jt!="function")throw new _l(it);var tn=function(){var fn=arguments,Cn=Jt?Jt.apply(this,fn):fn[0],Ln=tn.cache;if(Ln.has(Cn))return Ln.get(Cn);var qn=bt.apply(this,fn);return tn.cache=Ln.set(Cn,qn)||Ln,qn};return tn.cache=new(B2.Cache||Il),tn}B2.Cache=Il;function b2(bt){if(typeof bt!="function")throw new _l(it);return function(){var Jt=arguments;switch(Jt.length){case 0:return!bt.call(this);case 1:return!bt.call(this,Jt[0]);case 2:return!bt.call(this,Jt[0],Jt[1]);case 3:return!bt.call(this,Jt[0],Jt[1],Jt[2])}return!bt.apply(this,Jt)}}function ey(bt){return Cm(2,bt)}var ty=d2(function(bt,Jt){Jt=Jt.length==1&&$o(Jt[0])?ms(Jt[0],Bl(Ao())):ms(Gs(Jt,1),Bl(Ao()));var tn=Jt.length;return Vo(function(fn){for(var Cn=-1,Ln=na(fn.length,tn);++Cn=Jt}),l0=Ho(function(){return arguments}())?Ho:function(bt){return Ms(bt)&&us.call(bt,"callee")&&!m0.call(bt,"callee")},$o=Nr.isArray,Uy=xo?Bl(xo):Cs;function zl(bt){return bt!=null&&Q2(bt.length)&&!ip(bt)}function Is(bt){return Ms(bt)&&zl(bt)}function Fy(bt){return bt===!0||bt===!1||Ms(bt)&&Ys(bt)==Vt}var Vp=D1||om,yy=Bs?Bl(Bs):xs;function Ry(bt){return Ms(bt)&&bt.nodeType===1&&!Q1(bt)}function Sy(bt){if(bt==null)return!0;if(zl(bt)&&($o(bt)||typeof bt=="string"||typeof bt.splice=="function"||Vp(bt)||D0(bt)||l0(bt)))return!bt.length;var Jt=Cl(bt);if(Jt==Xt||Jt==hn)return!bt.size;if(B1(bt))return!ba(bt).length;for(var tn in bt)if(us.call(bt,tn))return!1;return!0}function By(bt,Jt){return Es(bt,Jt)}function vy(bt,Jt,tn){tn=typeof tn=="function"?tn:et;var fn=tn?tn(bt,Jt):et;return fn===et?Es(bt,Jt,et,tn):!!fn}function H2(bt){if(!Ms(bt))return!1;var Jt=Ys(bt);return Jt==Ht||Jt==$t||typeof bt.message=="string"&&typeof bt.name=="string"&&!Q1(bt)}function by(bt){return typeof bt=="number"&&H0(bt)}function ip(bt){if(!ws(bt))return!1;var Jt=Ys(bt);return Jt==qt||Jt==on||Jt==jt||Jt==On}function km(bt){return typeof bt=="number"&&bt==qo(bt)}function Q2(bt){return typeof bt=="number"&&bt>-1&&bt%1==0&&bt<=Wt}function ws(bt){var Jt=typeof bt;return bt!=null&&(Jt=="object"||Jt=="function")}function Ms(bt){return bt!=null&&typeof bt=="object"}var Dm=Ks?Bl(Ks):_p;function Qy(bt,Jt){return bt===Jt||Ts(bt,Jt,W2(Jt))}function Ey(bt,Jt,tn){return tn=typeof tn=="function"?tn:et,Ts(bt,Jt,W2(Jt),tn)}function Ty(bt){return Om(bt)&&bt!=+bt}function wy(bt){if(uU(bt))throw new Wo(rt);return Ep(bt)}function Cy(bt){return bt===null}function xy(bt){return bt==null}function Om(bt){return typeof bt=="number"||Ms(bt)&&Ys(bt)==dn}function Q1(bt){if(!Ms(bt)||Ys(bt)!=Fn)return!1;var Jt=Lp(bt);if(Jt===null)return!0;var tn=us.call(Jt,"constructor")&&Jt.constructor;return typeof tn=="function"&&tn instanceof tn&&Fp.call(tn)==Hu}var Y2=c0?Bl(c0):Tp;function Vy(bt){return km(bt)&&bt>=-Wt&&bt<=Wt}var Wm=u0?Bl(u0):b0;function _2(bt){return typeof bt=="string"||!$o(bt)&&Ms(bt)&&Ys(bt)==wn}function au(bt){return typeof bt=="symbol"||Ms(bt)&&Ys(bt)==Zn}var D0=$u?Bl($u):u1;function My(bt){return bt===et}function Ny(bt){return Ms(bt)&&Cl(bt)==$n}function Ay(bt){return Ms(bt)&&Ys(bt)==Tr}var ky=wo(_f),Dy=wo(function(bt,Jt){return bt<=Jt});function Jm(bt){if(!bt)return[];if(zl(bt))return _2(bt)?vs(bt):Fl(bt);if(Au&&bt[Au])return dp(bt[Au]());var Jt=Cl(bt),tn=Jt==Xt?Dp:Jt==hn?Op:O0;return tn(bt)}function op(bt){if(!bt)return bt===0?bt:0;if(bt=Su(bt),bt===Ot||bt===-Ot){var Jt=bt<0?-1:1;return Jt*Dt}return bt===bt?bt:0}function qo(bt){var Jt=op(bt),tn=Jt%1;return Jt===Jt?tn?Jt-tn:Jt:0}function Im(bt){return bt?Ou(qo(bt),0,Pt):0}function Su(bt){if(typeof bt=="number")return bt;if(au(bt))return Et;if(ws(bt)){var Jt=typeof bt.valueOf=="function"?bt.valueOf():bt;bt=ws(Jt)?Jt+"":Jt}if(typeof bt!="string")return bt===0?bt:+bt;bt=p0(bt);var tn=Rr.test(bt);return tn||fr.test(bt)?Sr(bt.slice(2),tn?2:8):rr.test(bt)?Et:+bt}function Lm(bt){return Zl(bt,$l(bt))}function Oy(bt){return bt?Ou(qo(bt),-Wt,Wt):bt===0?bt:0}function hs(bt){return bt==null?"":$a(bt)}var Wy=np(function(bt,Jt){if(B1(Jt)||zl(Jt)){Zl(Jt,Rl(Jt),bt);return}for(var tn in Jt)us.call(Jt,tn)&&ru(bt,tn,Jt[tn])}),Pm=np(function(bt,Jt){Zl(Jt,$l(Jt),bt)}),E2=np(function(bt,Jt,tn,fn){Zl(Jt,$l(Jt),bt,fn)}),Jy=np(function(bt,Jt,tn,fn){Zl(Jt,Rl(Jt),bt,fn)}),Iy=Xo(S0);function Ly(bt,Jt){var tn=_u(bt);return Jt==null?tn:i1(tn,Jt)}var Py=Vo(function(bt,Jt){bt=ko(bt);var tn=-1,fn=Jt.length,Cn=fn>2?Jt[2]:et;for(Cn&&Wl(Jt[0],Jt[1],Cn)&&(fn=1);++tn1),Ln}),Zl(bt,ss(bt),tn),fn&&(tn=Ml(tn,ut|dt|ht,fo));for(var Cn=Jt.length;Cn--;)m1(tn,Jt[Cn]);return tn});function aR(bt,Jt){return jm(bt,b2(Ao(Jt)))}var lR=Xo(function(bt,Jt){return bt==null?{}:n0(bt,Jt)});function jm(bt,Jt){if(bt==null)return{};var tn=ms(ss(bt),function(fn){return[fn]});return Jt=Ao(Jt),E0(bt,tn,function(fn,Cn){return Jt(fn,Cn[0])})}function cR(bt,Jt,tn){Jt=Pu(Jt,bt);var fn=-1,Cn=Jt.length;for(Cn||(Cn=1,bt=et);++fnJt){var fn=bt;bt=Jt,Jt=fn}if(tn||bt%1||Jt%1){var Cn=Y0();return na(bt+Cn*(Jt-bt+kr("1e-"+((Cn+"").length-1))),Jt)}return Uu(bt,Jt)}var RR=wt(function(bt,Jt,tn){return Jt=Jt.toLowerCase(),bt+(tn?Gm(Jt):Jt)});function Gm(bt){return q2(hs(bt).toLowerCase())}function Hm(bt){return bt=hs(bt),bt&&bt.replace(Gr,C1).replace(ir,"")}function SR(bt,Jt,tn){bt=hs(bt),Jt=$a(Jt);var fn=bt.length;tn=tn===et?fn:Ou(qo(tn),0,fn);var Cn=tn;return tn-=Jt.length,tn>=0&&bt.slice(tn,Cn)==Jt}function BR(bt){return bt=hs(bt),bt&&Fr.test(bt)?bt.replace(Wn,x1):bt}function vR(bt){return bt=hs(bt),bt&&xn.test(bt)?bt.replace(mn,"\\$&"):bt}var bR=wt(function(bt,Jt,tn){return bt+(tn?"-":"")+Jt.toLowerCase()}),QR=wt(function(bt,Jt,tn){return bt+(tn?" ":"")+Jt.toLowerCase()}),_R=m2("toLowerCase");function ER(bt,Jt,tn){bt=hs(bt),Jt=qo(Jt);var fn=Jt?du(bt):0;if(!Jt||fn>=Jt)return bt;var Cn=(Jt-fn)/2;return io(jp(Cn),tn)+bt+io(Zp(Cn),tn)}function TR(bt,Jt,tn){bt=hs(bt),Jt=qo(Jt);var fn=Jt?du(bt):0;return Jt&&fn>>0,tn?(bt=hs(bt),bt&&(typeof Jt=="string"||Jt!=null&&!Y2(Jt))&&(Jt=$a(Jt),!Jt&&Gu(bt))?Zu(vs(bt),0,tn):bt.split(Jt,tn)):[]}var AR=wt(function(bt,Jt,tn){return bt+(tn?" ":"")+q2(Jt)});function kR(bt,Jt,tn){return bt=hs(bt),tn=tn==null?0:Ou(qo(tn),0,bt.length),Jt=$a(Jt),bt.slice(tn,tn+Jt.length)==Jt}function DR(bt,Jt,tn){var fn=An.templateSettings;tn&&Wl(bt,Jt,tn)&&(Jt=et),bt=hs(bt),Jt=E2({},Jt,fn,yr);var Cn=E2({},Jt.imports,fn.imports,yr),Ln=Rl(Cn),qn=Ql(Cn,Ln),lr,Br,jr=0,$r=Jt.interpolate||Pr,Xr="__p += '",po=zs((Jt.escape||Pr).source+"|"+$r.source+"|"+($r===tr?ho:Pr).source+"|"+(Jt.evaluate||Pr).source+"|$","g"),Eo="//# sourceURL="+(us.call(Jt,"sourceURL")?(Jt.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++co+"]")+` -`;bt.replace(po,function(Oo,rs,ls,lu,Jl,cu){return ls||(ls=lu),Xr+=bt.slice(jr,cu).replace(oo,L0),rs&&(lr=!0,Xr+=`' + + */(function(s,o){(function(){var et,tt="4.17.21",nt=200,rt="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",it="Expected a function",ot="Invalid `variable` option passed into `_.template`",st="__lodash_hash_undefined__",at=500,lt="__lodash_placeholder__",ut=1,dt=2,ht=4,ct=1,pt=2,ft=1,gt=2,yt=4,Ut=8,Ft=16,mt=32,vt=64,At=128,Lt=256,Rt=512,St=30,Tt="...",Bt=800,xt=16,Ct=1,kt=2,Nt=3,Ot=1/0,Jt=9007199254740991,Dt=17976931348623157e292,Et=0/0,Pt=4294967295,zt=Pt-1,en=Pt>>>1,Kt=[["ary",At],["bind",ft],["bindKey",gt],["curry",Ut],["curryRight",Ft],["flip",Rt],["partial",mt],["partialRight",vt],["rearg",Lt]],nn="[object Arguments]",Zt="[object Array]",jt="[object AsyncFunction]",Vt="[object Boolean]",It="[object Date]",$t="[object DOMException]",Ht="[object Error]",qt="[object Function]",on="[object GeneratorFunction]",Xt="[object Map]",dn="[object Number]",_n="[object Null]",Fn="[object Object]",Un="[object Promise]",On="[object Proxy]",gn="[object RegExp]",hn="[object Set]",wn="[object String]",Zn="[object Symbol]",Pn="[object Undefined]",$n="[object WeakMap]",Tr="[object WeakSet]",Qr="[object ArrayBuffer]",_r="[object DataView]",Ir="[object Float32Array]",Jr="[object Float64Array]",qr="[object Int8Array]",Uo="[object Int16Array]",eo="[object Int32Array]",Yr="[object Uint8Array]",_o="[object Uint8ClampedArray]",ro="[object Uint16Array]",Fo="[object Uint32Array]",kn=/\b__p \+= '';/g,un=/\b(__p \+=) '' \+/g,pn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Qn=/&(?:amp|lt|gt|quot|#39);/g,Jn=/[&<>"']/g,jn=RegExp(Qn.source),Fr=RegExp(Jn.source),Er=/<%-([\s\S]+?)%>/g,wr=/<%([\s\S]+?)%>/g,tr=/<%=([\s\S]+?)%>/g,ar=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,hr=/^\w*$/,cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,mn=/[\\^$.*+?()[\]{}|]/g,xn=RegExp(mn.source),Gn=/^\s+/,er=/\s/,cr=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,gr=/\{\n\/\* \[wrapped with (.+)\] \*/,br=/,? & /,ur=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,nr=/[()=,{}\[\]\/\s]/,Kr=/\\(\\)?/g,ho=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Nn=/\w*$/,rr=/^[-+]0x[0-9a-f]+$/i,Rr=/^0b[01]+$/i,vr=/^\[object .+?Constructor\]$/,fr=/^0o[0-7]+$/i,zr=/^(?:0|[1-9]\d*)$/,Gr=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Pr=/($^)/,oo=/['\n\r\u2028\u2029\\]/g,ao="\\ud800-\\udfff",mo="\\u0300-\\u036f",lo="\\ufe20-\\ufe2f",To="\\u20d0-\\u20ff",Wo=mo+lo+To,Go="\\u2700-\\u27bf",cs="a-z\\xdf-\\xf6\\xf8-\\xff",So="\\xac\\xb1\\xd7\\xf7",so="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Bo="\\u2000-\\u206f",Io=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ns="A-Z\\xc0-\\xd6\\xd8-\\xde",ps="\\ufe0e\\ufe0f",gs=So+so+Bo+Io,bs="['’]",Lo="["+ao+"]",Qs="["+gs+"]",Ps="["+Wo+"]",No="\\d+",ys="["+Go+"]",Ns="["+cs+"]",fs="[^"+ao+gs+No+Go+cs+ns+"]",Zs="\\ud83c[\\udffb-\\udfff]",Sl="(?:"+Ps+"|"+Zs+")",As="[^"+ao+"]",ks="(?:\\ud83c[\\udde6-\\uddff]){2}",js="[\\ud800-\\udbff][\\udc00-\\udfff]",Xs="["+ns+"]",vo="\\u200d",Hl="(?:"+Ns+"|"+fs+")",Tn="(?:"+Xs+"|"+fs+")",En="(?:"+bs+"(?:d|ll|m|re|s|t|ve))?",Dn="(?:"+bs+"(?:D|LL|M|RE|S|T|VE))?",Mn=Sl+"?",Wn="["+ps+"]?",Vr="(?:"+vo+"(?:"+[As,ks,js].join("|")+")"+Wn+Mn+")*",Cr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",an="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",bn=Wn+Mn+Vr,Vn="(?:"+[ys,ks,js].join("|")+")"+bn,zn="(?:"+[As+Ps+"?",Ps,ks,js,Lo].join("|")+")",Hn=RegExp(bs,"g"),ir=RegExp(Ps,"g"),Yn=RegExp(Zs+"(?="+Zs+")|"+zn+bn,"g"),or=RegExp([Xs+"?"+Ns+"+"+En+"(?="+[Qs,Xs,"$"].join("|")+")",Tn+"+"+Dn+"(?="+[Qs,Xs+Hl,"$"].join("|")+")",Xs+"?"+Hl+"+"+En,Xs+"+"+Dn,an,Cr,No,Vn].join("|"),"g"),Mr=RegExp("["+vo+ao+Wo+ps+"]"),Wr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Hr=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],co=-1,_i={};_i[Ir]=_i[Jr]=_i[qr]=_i[Uo]=_i[eo]=_i[Yr]=_i[_o]=_i[ro]=_i[Fo]=!0,_i[nn]=_i[Zt]=_i[Qr]=_i[Vt]=_i[_r]=_i[It]=_i[Ht]=_i[qt]=_i[Xt]=_i[dn]=_i[Fn]=_i[gn]=_i[hn]=_i[wn]=_i[$n]=!1;var sn={};sn[nn]=sn[Zt]=sn[Qr]=sn[_r]=sn[Vt]=sn[It]=sn[Ir]=sn[Jr]=sn[qr]=sn[Uo]=sn[eo]=sn[Xt]=sn[dn]=sn[Fn]=sn[gn]=sn[hn]=sn[wn]=sn[Zn]=sn[Yr]=sn[_o]=sn[ro]=sn[Fo]=!0,sn[Ht]=sn[qt]=sn[$n]=!1;var vn={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},In={"&":"&","<":"<",">":">",'"':""","'":"'"},Kn={"&":"&","<":"<",">":">",""":'"',"'":"'"},mr={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},kr=parseFloat,Sr=parseInt,Ar=typeof commonjsGlobal$1=="object"&&commonjsGlobal$1&&commonjsGlobal$1.Object===Object&&commonjsGlobal$1,Zr=typeof self=="object"&&self&&self.Object===Object&&self,no=Ar||Zr||Function("return this")(),Ro=o&&!o.nodeType&&o,Co=Ro&&!0&&s&&!s.nodeType&&s,Ko=Co&&Co.exports===Ro,as=Ko&&Ar.process,Po=function(){try{var dr=Co&&Co.require&&Co.require("util").types;return dr||as&&as.binding&&as.binding("util")}catch{}}(),xo=Po&&Po.isArrayBuffer,Bs=Po&&Po.isDate,Ks=Po&&Po.isMap,c0=Po&&Po.isRegExp,u0=Po&&Po.isSet,$u=Po&&Po.isTypedArray;function Rs(dr,Lr,Nr){switch(Nr.length){case 0:return dr.call(Lr);case 1:return dr.call(Lr,Nr[0]);case 2:return dr.call(Lr,Nr[0],Nr[1]);case 3:return dr.call(Lr,Nr[0],Nr[1],Nr[2])}return dr.apply(Lr,Nr)}function uu(dr,Lr,Nr,go){for(var Jo=-1,zo=dr==null?0:dr.length;++Jo-1}function ap(dr,Lr,Nr){for(var go=-1,Jo=dr==null?0:dr.length;++go-1;);return Nr}function up(dr,Lr){for(var Nr=dr.length;Nr--&&Kl(Lr,dr[Nr],0)>-1;);return Nr}function eu(dr,Lr){for(var Nr=dr.length,go=0;Nr--;)dr[Nr]===Lr&&++go;return go}var C1=Tl(vn),x1=Tl(In);function L0(dr){return"\\"+mr[dr]}function P0(dr,Lr){return dr==null?et:dr[Lr]}function Gu(dr){return Mr.test(dr)}function kp(dr){return Wr.test(dr)}function dp(dr){for(var Lr,Nr=[];!(Lr=dr.next()).done;)Nr.push(Lr.value);return Nr}function Dp(dr){var Lr=-1,Nr=Array(dr.size);return dr.forEach(function(go,Jo){Nr[++Lr]=[Jo,go]}),Nr}function hp(dr,Lr){return function(Nr){return dr(Lr(Nr))}}function tu(dr,Lr){for(var Nr=-1,go=dr.length,Jo=0,zo=[];++Nr-1}function F0(bt,Wt){var tn=this.__data__,fn=Du(tn,bt);return fn<0?(++this.size,tn.push([bt,Wt])):tn[fn][1]=Wt,this}nu.prototype.clear=X1,nu.prototype.delete=K0,nu.prototype.get=K1,nu.prototype.has=q1,nu.prototype.set=F0;function Il(bt){var Wt=-1,tn=bt==null?0:bt.length;for(this.clear();++Wt=Wt?bt:Wt)),bt}function Ml(bt,Wt,tn,fn,Cn,Ln){var qn,lr=Wt&ut,Br=Wt&dt,jr=Wt&ht;if(tn&&(qn=Cn?tn(bt,fn,Cn,Ln):tn(bt)),qn!==et)return qn;if(!ws(bt))return bt;var $r=$o(bt);if($r){if(qn=iU(bt),!lr)return Fl(bt,qn)}else{var Xr=Cl(bt),po=Xr==qt||Xr==on;if(Vp(bt))return y1(bt,lr);if(Xr==Fn||Xr==nn||po&&!Cn){if(qn=Br||po?{}:um(bt),!lr)return Br?g2(bt,i2(qn,bt)):D2(bt,i1(qn,bt))}else{if(!sn[Xr])return Cn?bt:{};qn=oU(bt,Xr,lr)}}Ln||(Ln=new Ws);var Eo=Ln.get(bt);if(Eo)return Eo;Ln.set(bt,qn),Jm(bt)?bt.forEach(function(Oo){qn.add(Ml(Oo,Wt,tn,Oo,bt,Ln))}):Dm(bt)&&bt.forEach(function(Oo,rs){qn.set(rs,Ml(Oo,Wt,tn,rs,bt,Ln))});var Do=jr?Br?ss:Vs:Br?$l:Rl,ts=$r?et:Do(bt);return Ds(ts||bt,function(Oo,rs){ts&&(rs=Oo,Oo=bt[rs]),ru(qn,rs,Ml(Oo,Wt,tn,rs,bt,Ln))}),qn}function o1(bt){var Wt=Rl(bt);return function(tn){return B0(tn,bt,Wt)}}function B0(bt,Wt,tn){var fn=tn.length;if(bt==null)return!fn;for(bt=ko(bt);fn--;){var Cn=tn[fn],Ln=Wt[Cn],qn=bt[Cn];if(qn===et&&!(Cn in bt)||!Ln(qn))return!1}return!0}function s1(bt,Wt,tn){if(typeof bt!="function")throw new _l(it);return b1(function(){bt.apply(et,tn)},Wt)}function _d(bt,Wt,tn,fn){var Cn=-1,Ln=Yl,qn=!0,lr=bt.length,Br=[],jr=Wt.length;if(!lr)return Br;tn&&(Wt=ms(Wt,Bl(tn))),fn?(Ln=ap,qn=!1):Wt.length>=nt&&(Ln=Hs,qn=!1,Wt=new ku(Wt));e:for(;++CnCn?0:Cn+tn),fn=fn===et||fn>Cn?Cn:qo(fn),fn<0&&(fn+=Cn),fn=tn>fn?0:Im(fn);tn0&&tn(lr)?Wt>1?Gs(lr,Wt-1,tn,fn,Cn):Xl(Cn,lr):fn||(Cn[Cn.length]=lr)}return Cn}var vp=N0(),Kp=N0(!0);function Nl(bt,Wt){return bt&&vp(bt,Wt,Rl)}function bp(bt,Wt){return bt&&Kp(bt,Wt,Rl)}function _h(bt,Wt){return qs(Wt,function(tn){return ip(bt[tn])})}function ou(bt,Wt){Wt=Pu(Wt,bt);for(var tn=0,fn=Wt.length;bt!=null&&tnWt}function a2(bt,Wt){return bt!=null&&us.call(bt,Wt)}function l1(bt,Wt){return bt!=null&&Wt in ko(bt)}function A2(bt,Wt,tn){return bt>=na(Wt,tn)&&bt=120&&$r.length>=120)?new ku(qn&&$r):et}$r=bt[0];var Xr=-1,po=lr[0];e:for(;++Xr-1;)lr!==bt&&Nu.call(lr,Br,1),Nu.call(bt,Br,1);return bt}function xa(bt,Wt){for(var tn=bt?Wt.length:0,fn=tn-1;tn--;){var Cn=Wt[tn];if(tn==fn||Cn!==Ln){var Ln=Cn;rp(Cn)?Nu.call(bt,Cn,1):m1(bt,Cn)}}return bt}function Uu(bt,Wt){return bt+jp(Y0()*(Wt-bt+1))}function Ll(bt,Wt,tn,fn){for(var Cn=-1,Ln=Js(Zp((Wt-bt)/(tn||1)),0),qn=Nr(Ln);Ln--;)qn[fn?Ln:++Cn]=bt,bt+=tn;return qn}function xp(bt,Wt){var tn="";if(!bt||Wt<1||Wt>Jt)return tn;do Wt%2&&(tn+=bt),Wt=jp(Wt/2),Wt&&(bt+=bt);while(Wt);return tn}function Vo(bt,Wt){return Z2(pm(bt,Wt,Gl),bt+"")}function l2(bt){return Yp(O0(bt))}function p1(bt,Wt){var tn=O0(bt);return F2(tn,Ou(Wt,0,tn.length))}function tp(bt,Wt,tn,fn){if(!ws(bt))return bt;Wt=Pu(Wt,bt);for(var Cn=-1,Ln=Wt.length,qn=Ln-1,lr=bt;lr!=null&&++CnCn?0:Cn+Wt),tn=tn>Cn?Cn:tn,tn<0&&(tn+=Cn),Cn=Wt>tn?0:tn-Wt>>>0,Wt>>>=0;for(var Ln=Nr(Cn);++fn>>1,qn=bt[Ln];qn!==null&&!au(qn)&&(tn?qn<=Wt:qn=nt){var jr=Wt?null:yl(bt);if(jr)return Op(jr);qn=!1,Cn=Hs,Br=new ku}else Br=Wt?[]:lr;e:for(;++fn=fn?bt:Dl(bt,Wt,tn)}var p2=Pp||function(bt){return no.clearTimeout(bt)};function y1(bt,Wt){if(Wt)return bt.slice();var tn=bt.length,fn=z0?z0(tn):new bt.constructor(tn);return bt.copy(fn),fn}function V0(bt){var Wt=new bt.constructor(bt.byteLength);return new Ip(Wt).set(new Ip(bt)),Wt}function k2(bt,Wt){var tn=Wt?V0(bt.buffer):bt.buffer;return new bt.constructor(tn,bt.byteOffset,bt.byteLength)}function Pl(bt){var Wt=new bt.constructor(bt.source,Nn.exec(bt));return Wt.lastIndex=bt.lastIndex,Wt}function R1(bt){return Qu?ko(Qu.call(bt)):{}}function f2(bt,Wt){var tn=Wt?V0(bt.buffer):bt.buffer;return new bt.constructor(tn,bt.byteOffset,bt.length)}function Tu(bt,Wt){if(bt!==Wt){var tn=bt!==et,fn=bt===null,Cn=bt===bt,Ln=au(bt),qn=Wt!==et,lr=Wt===null,Br=Wt===Wt,jr=au(Wt);if(!lr&&!jr&&!Ln&&bt>Wt||Ln&&qn&&Br&&!lr&&!jr||fn&&qn&&Br||!tn&&Br||!Cn)return 1;if(!fn&&!Ln&&!jr&&bt=lr)return Br;var jr=tn[fn];return Br*(jr=="desc"?-1:1)}}return bt.index-Wt.index}function ju(bt,Wt,tn,fn){for(var Cn=-1,Ln=bt.length,qn=tn.length,lr=-1,Br=Wt.length,jr=Js(Ln-qn,0),$r=Nr(Br+jr),Xr=!fn;++lr1?tn[Cn-1]:et,qn=Cn>2?tn[2]:et;for(Ln=bt.length>3&&typeof Ln=="function"?(Cn--,Ln):et,qn&&Jl(tn[0],tn[1],qn)&&(Ln=Cn<3?et:Ln,Cn=1),Wt=ko(Wt);++fn-1?Cn[Ln?Wt[qn]:qn]:et}}function ln(bt){return Xo(function(Wt){var tn=Wt.length,fn=tn,Cn=ga.prototype.thru;for(bt&&Wt.reverse();fn--;){var Ln=Wt[fn];if(typeof Ln!="function")throw new _l(it);if(Cn&&!qn&&A0(Ln)=="wrapper")var qn=new ga([],!0)}for(fn=qn?fn:tn;++fn1&&ls.reverse(),$r&&Brlr))return!1;var jr=Ln.get(bt),$r=Ln.get(Wt);if(jr&&$r)return jr==Wt&&$r==bt;var Xr=-1,po=!0,Eo=tn&pt?new ku:et;for(Ln.set(bt,Wt),Ln.set(Wt,bt);++Xr1?"& ":"")+Wt[fn],Wt=Wt.join(tn>2?", ":" "),bt.replace(cr,`{ +/* [wrapped with `+Wt+`] */ +`)}function aU(bt){return $o(bt)||l0(bt)||!!(G0&&bt&&bt[G0])}function rp(bt,Wt){var tn=typeof bt;return Wt=Wt??Jt,!!Wt&&(tn=="number"||tn!="symbol"&&zr.test(bt))&&bt>-1&&bt%1==0&&bt0){if(++Wt>=Bt)return arguments[0]}else Wt=0;return bt.apply(et,arguments)}}function F2(bt,Wt){var tn=-1,fn=bt.length,Cn=fn-1;for(Wt=Wt===et?fn:Wt;++tn1?bt[Wt-1]:et;return tn=typeof tn=="function"?(bt.pop(),tn):et,Qm(bt,tn)});function _m(bt){var Wt=An(bt);return Wt.__chain__=!0,Wt}function FF(bt,Wt){return Wt(bt),bt}function y2(bt,Wt){return Wt(bt)}var yF=Xo(function(bt){var Wt=bt.length,tn=Wt?bt[0]:0,fn=this.__wrapped__,Cn=function(Ln){return S0(Ln,bt)};return Wt>1||this.__actions__.length||!(fn instanceof Mo)||!rp(tn)?this.thru(Cn):(fn=fn.slice(tn,+tn+(Wt?1:0)),fn.__actions__.push({func:y2,args:[Cn],thisArg:et}),new ga(fn,this.__chain__).thru(function(Ln){return Wt&&!Ln.length&&Ln.push(et),Ln}))});function RF(){return _m(this)}function SF(){return new ga(this.value(),this.__chain__)}function BF(){this.__values__===et&&(this.__values__=Wm(this.value()));var bt=this.__index__>=this.__values__.length,Wt=bt?et:this.__values__[this.__index__++];return{done:bt,value:Wt}}function vF(){return this}function bF(bt){for(var Wt,tn=this;tn instanceof Hp;){var fn=ym(tn);fn.__index__=0,fn.__values__=et,Wt?Cn.__wrapped__=fn:Wt=fn;var Cn=fn;tn=tn.__wrapped__}return Cn.__wrapped__=bt,Wt}function QF(){var bt=this.__wrapped__;if(bt instanceof Mo){var Wt=bt;return this.__actions__.length&&(Wt=new Mo(this)),Wt=Wt.reverse(),Wt.__actions__.push({func:y2,args:[j2],thisArg:et}),new ga(Wt,this.__chain__)}return this.thru(j2)}function _F(){return Iu(this.__wrapped__,this.__actions__)}var EF=o0(function(bt,Wt,tn){us.call(bt,tn)?++bt[tn]:mu(bt,tn,1)});function TF(bt,Wt,tn){var fn=$o(bt)?W0:N2;return tn&&Jl(bt,Wt,tn)&&(Wt=et),fn(bt,Ao(Wt,3))}function wF(bt,Wt){var tn=$o(bt)?qs:a1;return tn(bt,Ao(Wt,3))}var CF=rn(Rm),xF=rn(Sm);function VF(bt,Wt){return Gs(R2(bt,Wt),1)}function MF(bt,Wt){return Gs(R2(bt,Wt),Ot)}function NF(bt,Wt,tn){return tn=tn===et?1:qo(tn),Gs(R2(bt,Wt),tn)}function Em(bt,Wt){var tn=$o(bt)?Ds:iu;return tn(bt,Ao(Wt,3))}function Tm(bt,Wt){var tn=$o(bt)?J0:o2;return tn(bt,Ao(Wt,3))}var AF=o0(function(bt,Wt,tn){us.call(bt,tn)?bt[tn].push(Wt):mu(bt,tn,[Wt])});function kF(bt,Wt,tn,fn){bt=zl(bt)?bt:O0(bt),tn=tn&&!fn?qo(tn):0;var Cn=bt.length;return tn<0&&(tn=Js(Cn+tn,0)),_2(bt)?tn<=Cn&&bt.indexOf(Wt,tn)>-1:!!Cn&&Kl(bt,Wt,tn)>-1}var DF=Vo(function(bt,Wt,tn){var fn=-1,Cn=typeof Wt=="function",Ln=zl(bt)?Nr(bt.length):[];return iu(bt,function(qn){Ln[++fn]=Cn?Rs(Wt,qn,tn):Fs(qn,Wt,tn)}),Ln}),OF=o0(function(bt,Wt,tn){mu(bt,tn,Wt)});function R2(bt,Wt){var tn=$o(bt)?ms:ep;return tn(bt,Ao(Wt,3))}function JF(bt,Wt,tn,fn){return bt==null?[]:($o(Wt)||(Wt=Wt==null?[]:[Wt]),tn=fn?et:tn,$o(tn)||(tn=tn==null?[]:[tn]),t0(bt,Wt,tn))}var WF=o0(function(bt,Wt,tn){bt[tn?0:1].push(Wt)},function(){return[[],[]]});function IF(bt,Wt,tn){var fn=$o(bt)?d0:xu,Cn=arguments.length<3;return fn(bt,Ao(Wt,4),tn,Cn,iu)}function LF(bt,Wt,tn){var fn=$o(bt)?_1:xu,Cn=arguments.length<3;return fn(bt,Ao(Wt,4),tn,Cn,o2)}function PF(bt,Wt){var tn=$o(bt)?qs:a1;return tn(bt,b2(Ao(Wt,3)))}function ZF(bt){var Wt=$o(bt)?Yp:l2;return Wt(bt)}function jF(bt,Wt,tn){(tn?Jl(bt,Wt,tn):Wt===et)?Wt=1:Wt=qo(Wt);var fn=$o(bt)?t1:p1;return fn(bt,Wt)}function zF(bt){var Wt=$o(bt)?r2:u2;return Wt(bt)}function $F(bt){if(bt==null)return 0;if(zl(bt))return _2(bt)?du(bt):bt.length;var Wt=Cl(bt);return Wt==Xt||Wt==hn?bt.size:ba(bt).length}function GF(bt,Wt,tn){var fn=$o(bt)?Mp:f1;return tn&&Jl(bt,Wt,tn)&&(Wt=et),fn(bt,Ao(Wt,3))}var HF=Vo(function(bt,Wt){if(bt==null)return[];var tn=Wt.length;return tn>1&&Jl(bt,Wt[0],Wt[1])?Wt=[]:tn>2&&Jl(Wt[0],Wt[1],Wt[2])&&(Wt=[Wt[0]]),t0(bt,Gs(Wt,1),[])}),S2=A1||function(){return no.Date.now()};function YF(bt,Wt){if(typeof Wt!="function")throw new _l(it);return bt=qo(bt),function(){if(--bt<1)return Wt.apply(this,arguments)}}function wm(bt,Wt,tn){return Wt=tn?et:Wt,Wt=bt&&Wt==null?bt.length:Wt,xr(bt,At,et,et,et,et,Wt)}function Cm(bt,Wt){var tn;if(typeof Wt!="function")throw new _l(it);return bt=qo(bt),function(){return--bt>0&&(tn=Wt.apply(this,arguments)),bt<=1&&(Wt=et),tn}}var $2=Vo(function(bt,Wt,tn){var fn=ft;if(tn.length){var Cn=tu(tn,k0($2));fn|=mt}return xr(bt,fn,Wt,tn,Cn)}),xm=Vo(function(bt,Wt,tn){var fn=ft|gt;if(tn.length){var Cn=tu(tn,k0(xm));fn|=mt}return xr(Wt,fn,bt,tn,Cn)});function Vm(bt,Wt,tn){Wt=tn?et:Wt;var fn=xr(bt,Ut,et,et,et,et,et,Wt);return fn.placeholder=Vm.placeholder,fn}function Mm(bt,Wt,tn){Wt=tn?et:Wt;var fn=xr(bt,Ft,et,et,et,et,et,Wt);return fn.placeholder=Mm.placeholder,fn}function Nm(bt,Wt,tn){var fn,Cn,Ln,qn,lr,Br,jr=0,$r=!1,Xr=!1,po=!0;if(typeof bt!="function")throw new _l(it);Wt=Su(Wt)||0,ws(tn)&&($r=!!tn.leading,Xr="maxWait"in tn,Ln=Xr?Js(Su(tn.maxWait)||0,Wt):Ln,po="trailing"in tn?!!tn.trailing:po);function Eo(Ls){var Cu=fn,sp=Cn;return fn=Cn=et,jr=Ls,qn=bt.apply(sp,Cu),qn}function Do(Ls){return jr=Ls,lr=b1(rs,Wt),$r?Eo(Ls):qn}function ts(Ls){var Cu=Ls-Br,sp=Ls-jr,qm=Wt-Cu;return Xr?na(qm,Ln-sp):qm}function Oo(Ls){var Cu=Ls-Br,sp=Ls-jr;return Br===et||Cu>=Wt||Cu<0||Xr&&sp>=Ln}function rs(){var Ls=S2();if(Oo(Ls))return ls(Ls);lr=b1(rs,ts(Ls))}function ls(Ls){return lr=et,po&&fn?Eo(Ls):(fn=Cn=et,qn)}function lu(){lr!==et&&p2(lr),jr=0,fn=Br=Cn=lr=et}function Wl(){return lr===et?qn:ls(S2())}function cu(){var Ls=S2(),Cu=Oo(Ls);if(fn=arguments,Cn=this,Br=Ls,Cu){if(lr===et)return Do(Br);if(Xr)return p2(lr),lr=b1(rs,Wt),Eo(Br)}return lr===et&&(lr=b1(rs,Wt)),qn}return cu.cancel=lu,cu.flush=Wl,cu}var XF=Vo(function(bt,Wt){return s1(bt,1,Wt)}),KF=Vo(function(bt,Wt,tn){return s1(bt,Su(Wt)||0,tn)});function qF(bt){return xr(bt,Rt)}function B2(bt,Wt){if(typeof bt!="function"||Wt!=null&&typeof Wt!="function")throw new _l(it);var tn=function(){var fn=arguments,Cn=Wt?Wt.apply(this,fn):fn[0],Ln=tn.cache;if(Ln.has(Cn))return Ln.get(Cn);var qn=bt.apply(this,fn);return tn.cache=Ln.set(Cn,qn)||Ln,qn};return tn.cache=new(B2.Cache||Il),tn}B2.Cache=Il;function b2(bt){if(typeof bt!="function")throw new _l(it);return function(){var Wt=arguments;switch(Wt.length){case 0:return!bt.call(this);case 1:return!bt.call(this,Wt[0]);case 2:return!bt.call(this,Wt[0],Wt[1]);case 3:return!bt.call(this,Wt[0],Wt[1],Wt[2])}return!bt.apply(this,Wt)}}function ey(bt){return Cm(2,bt)}var ty=d2(function(bt,Wt){Wt=Wt.length==1&&$o(Wt[0])?ms(Wt[0],Bl(Ao())):ms(Gs(Wt,1),Bl(Ao()));var tn=Wt.length;return Vo(function(fn){for(var Cn=-1,Ln=na(fn.length,tn);++Cn=Wt}),l0=Ho(function(){return arguments}())?Ho:function(bt){return Ms(bt)&&us.call(bt,"callee")&&!m0.call(bt,"callee")},$o=Nr.isArray,Uy=xo?Bl(xo):Cs;function zl(bt){return bt!=null&&Q2(bt.length)&&!ip(bt)}function Is(bt){return Ms(bt)&&zl(bt)}function Fy(bt){return bt===!0||bt===!1||Ms(bt)&&Ys(bt)==Vt}var Vp=D1||om,yy=Bs?Bl(Bs):xs;function Ry(bt){return Ms(bt)&&bt.nodeType===1&&!Q1(bt)}function Sy(bt){if(bt==null)return!0;if(zl(bt)&&($o(bt)||typeof bt=="string"||typeof bt.splice=="function"||Vp(bt)||D0(bt)||l0(bt)))return!bt.length;var Wt=Cl(bt);if(Wt==Xt||Wt==hn)return!bt.size;if(B1(bt))return!ba(bt).length;for(var tn in bt)if(us.call(bt,tn))return!1;return!0}function By(bt,Wt){return Es(bt,Wt)}function vy(bt,Wt,tn){tn=typeof tn=="function"?tn:et;var fn=tn?tn(bt,Wt):et;return fn===et?Es(bt,Wt,et,tn):!!fn}function H2(bt){if(!Ms(bt))return!1;var Wt=Ys(bt);return Wt==Ht||Wt==$t||typeof bt.message=="string"&&typeof bt.name=="string"&&!Q1(bt)}function by(bt){return typeof bt=="number"&&H0(bt)}function ip(bt){if(!ws(bt))return!1;var Wt=Ys(bt);return Wt==qt||Wt==on||Wt==jt||Wt==On}function km(bt){return typeof bt=="number"&&bt==qo(bt)}function Q2(bt){return typeof bt=="number"&&bt>-1&&bt%1==0&&bt<=Jt}function ws(bt){var Wt=typeof bt;return bt!=null&&(Wt=="object"||Wt=="function")}function Ms(bt){return bt!=null&&typeof bt=="object"}var Dm=Ks?Bl(Ks):_p;function Qy(bt,Wt){return bt===Wt||Ts(bt,Wt,J2(Wt))}function Ey(bt,Wt,tn){return tn=typeof tn=="function"?tn:et,Ts(bt,Wt,J2(Wt),tn)}function Ty(bt){return Om(bt)&&bt!=+bt}function wy(bt){if(uU(bt))throw new Jo(rt);return Ep(bt)}function Cy(bt){return bt===null}function xy(bt){return bt==null}function Om(bt){return typeof bt=="number"||Ms(bt)&&Ys(bt)==dn}function Q1(bt){if(!Ms(bt)||Ys(bt)!=Fn)return!1;var Wt=Lp(bt);if(Wt===null)return!0;var tn=us.call(Wt,"constructor")&&Wt.constructor;return typeof tn=="function"&&tn instanceof tn&&Fp.call(tn)==Hu}var Y2=c0?Bl(c0):Tp;function Vy(bt){return km(bt)&&bt>=-Jt&&bt<=Jt}var Jm=u0?Bl(u0):b0;function _2(bt){return typeof bt=="string"||!$o(bt)&&Ms(bt)&&Ys(bt)==wn}function au(bt){return typeof bt=="symbol"||Ms(bt)&&Ys(bt)==Zn}var D0=$u?Bl($u):u1;function My(bt){return bt===et}function Ny(bt){return Ms(bt)&&Cl(bt)==$n}function Ay(bt){return Ms(bt)&&Ys(bt)==Tr}var ky=wo(_f),Dy=wo(function(bt,Wt){return bt<=Wt});function Wm(bt){if(!bt)return[];if(zl(bt))return _2(bt)?vs(bt):Fl(bt);if(Au&&bt[Au])return dp(bt[Au]());var Wt=Cl(bt),tn=Wt==Xt?Dp:Wt==hn?Op:O0;return tn(bt)}function op(bt){if(!bt)return bt===0?bt:0;if(bt=Su(bt),bt===Ot||bt===-Ot){var Wt=bt<0?-1:1;return Wt*Dt}return bt===bt?bt:0}function qo(bt){var Wt=op(bt),tn=Wt%1;return Wt===Wt?tn?Wt-tn:Wt:0}function Im(bt){return bt?Ou(qo(bt),0,Pt):0}function Su(bt){if(typeof bt=="number")return bt;if(au(bt))return Et;if(ws(bt)){var Wt=typeof bt.valueOf=="function"?bt.valueOf():bt;bt=ws(Wt)?Wt+"":Wt}if(typeof bt!="string")return bt===0?bt:+bt;bt=p0(bt);var tn=Rr.test(bt);return tn||fr.test(bt)?Sr(bt.slice(2),tn?2:8):rr.test(bt)?Et:+bt}function Lm(bt){return Zl(bt,$l(bt))}function Oy(bt){return bt?Ou(qo(bt),-Jt,Jt):bt===0?bt:0}function hs(bt){return bt==null?"":$a(bt)}var Jy=np(function(bt,Wt){if(B1(Wt)||zl(Wt)){Zl(Wt,Rl(Wt),bt);return}for(var tn in Wt)us.call(Wt,tn)&&ru(bt,tn,Wt[tn])}),Pm=np(function(bt,Wt){Zl(Wt,$l(Wt),bt)}),E2=np(function(bt,Wt,tn,fn){Zl(Wt,$l(Wt),bt,fn)}),Wy=np(function(bt,Wt,tn,fn){Zl(Wt,Rl(Wt),bt,fn)}),Iy=Xo(S0);function Ly(bt,Wt){var tn=_u(bt);return Wt==null?tn:i1(tn,Wt)}var Py=Vo(function(bt,Wt){bt=ko(bt);var tn=-1,fn=Wt.length,Cn=fn>2?Wt[2]:et;for(Cn&&Jl(Wt[0],Wt[1],Cn)&&(fn=1);++tn1),Ln}),Zl(bt,ss(bt),tn),fn&&(tn=Ml(tn,ut|dt|ht,fo));for(var Cn=Wt.length;Cn--;)m1(tn,Wt[Cn]);return tn});function aR(bt,Wt){return jm(bt,b2(Ao(Wt)))}var lR=Xo(function(bt,Wt){return bt==null?{}:n0(bt,Wt)});function jm(bt,Wt){if(bt==null)return{};var tn=ms(ss(bt),function(fn){return[fn]});return Wt=Ao(Wt),E0(bt,tn,function(fn,Cn){return Wt(fn,Cn[0])})}function cR(bt,Wt,tn){Wt=Pu(Wt,bt);var fn=-1,Cn=Wt.length;for(Cn||(Cn=1,bt=et);++fnWt){var fn=bt;bt=Wt,Wt=fn}if(tn||bt%1||Wt%1){var Cn=Y0();return na(bt+Cn*(Wt-bt+kr("1e-"+((Cn+"").length-1))),Wt)}return Uu(bt,Wt)}var RR=wt(function(bt,Wt,tn){return Wt=Wt.toLowerCase(),bt+(tn?Gm(Wt):Wt)});function Gm(bt){return q2(hs(bt).toLowerCase())}function Hm(bt){return bt=hs(bt),bt&&bt.replace(Gr,C1).replace(ir,"")}function SR(bt,Wt,tn){bt=hs(bt),Wt=$a(Wt);var fn=bt.length;tn=tn===et?fn:Ou(qo(tn),0,fn);var Cn=tn;return tn-=Wt.length,tn>=0&&bt.slice(tn,Cn)==Wt}function BR(bt){return bt=hs(bt),bt&&Fr.test(bt)?bt.replace(Jn,x1):bt}function vR(bt){return bt=hs(bt),bt&&xn.test(bt)?bt.replace(mn,"\\$&"):bt}var bR=wt(function(bt,Wt,tn){return bt+(tn?"-":"")+Wt.toLowerCase()}),QR=wt(function(bt,Wt,tn){return bt+(tn?" ":"")+Wt.toLowerCase()}),_R=m2("toLowerCase");function ER(bt,Wt,tn){bt=hs(bt),Wt=qo(Wt);var fn=Wt?du(bt):0;if(!Wt||fn>=Wt)return bt;var Cn=(Wt-fn)/2;return io(jp(Cn),tn)+bt+io(Zp(Cn),tn)}function TR(bt,Wt,tn){bt=hs(bt),Wt=qo(Wt);var fn=Wt?du(bt):0;return Wt&&fn>>0,tn?(bt=hs(bt),bt&&(typeof Wt=="string"||Wt!=null&&!Y2(Wt))&&(Wt=$a(Wt),!Wt&&Gu(bt))?Zu(vs(bt),0,tn):bt.split(Wt,tn)):[]}var AR=wt(function(bt,Wt,tn){return bt+(tn?" ":"")+q2(Wt)});function kR(bt,Wt,tn){return bt=hs(bt),tn=tn==null?0:Ou(qo(tn),0,bt.length),Wt=$a(Wt),bt.slice(tn,tn+Wt.length)==Wt}function DR(bt,Wt,tn){var fn=An.templateSettings;tn&&Jl(bt,Wt,tn)&&(Wt=et),bt=hs(bt),Wt=E2({},Wt,fn,yr);var Cn=E2({},Wt.imports,fn.imports,yr),Ln=Rl(Cn),qn=Ql(Cn,Ln),lr,Br,jr=0,$r=Wt.interpolate||Pr,Xr="__p += '",po=zs((Wt.escape||Pr).source+"|"+$r.source+"|"+($r===tr?ho:Pr).source+"|"+(Wt.evaluate||Pr).source+"|$","g"),Eo="//# sourceURL="+(us.call(Wt,"sourceURL")?(Wt.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++co+"]")+` +`;bt.replace(po,function(Oo,rs,ls,lu,Wl,cu){return ls||(ls=lu),Xr+=bt.slice(jr,cu).replace(oo,L0),rs&&(lr=!0,Xr+=`' + __e(`+rs+`) + -'`),Jl&&(Br=!0,Xr+=`'; -`+Jl+`; +'`),Wl&&(Br=!0,Xr+=`'; +`+Wl+`; __p += '`),ls&&(Xr+=`' + ((__t = (`+ls+`)) == null ? '' : __t) + '`),jr=cu+Oo.length,Oo}),Xr+=`'; -`;var Do=us.call(Jt,"variable")&&Jt.variable;if(!Do)Xr=`with (obj) { +`;var Do=us.call(Wt,"variable")&&Wt.variable;if(!Do)Xr=`with (obj) { `+Xr+` } -`;else if(nr.test(Do))throw new Wo(ot);Xr=(Br?Xr.replace(kn,""):Xr).replace(un,"$1").replace(pn,"$1;"),Xr="function("+(Do||"obj")+`) { +`;else if(nr.test(Do))throw new Jo(ot);Xr=(Br?Xr.replace(kn,""):Xr).replace(un,"$1").replace(pn,"$1;"),Xr="function("+(Do||"obj")+`) { `+(Do?"":`obj || (obj = {}); `)+"var __t, __p = ''"+(lr?", __e = _.escape":"")+(Br?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; `)+Xr+`return __p -}`;var ts=Xm(function(){return zo(Ln,Eo+"return "+Xr).apply(et,qn)});if(ts.source=Xr,H2(ts))throw ts;return ts}function OR(bt){return hs(bt).toLowerCase()}function WR(bt){return hs(bt).toUpperCase()}function JR(bt,Jt,tn){if(bt=hs(bt),bt&&(tn||Jt===et))return p0(bt);if(!bt||!(Jt=$a(Jt)))return bt;var fn=vs(bt),Cn=vs(Jt),Ln=Us(fn,Cn),qn=up(fn,Cn)+1;return Zu(fn,Ln,qn).join("")}function IR(bt,Jt,tn){if(bt=hs(bt),bt&&(tn||Jt===et))return bt.slice(0,fp(bt)+1);if(!bt||!(Jt=$a(Jt)))return bt;var fn=vs(bt),Cn=up(fn,vs(Jt))+1;return Zu(fn,0,Cn).join("")}function LR(bt,Jt,tn){if(bt=hs(bt),bt&&(tn||Jt===et))return bt.replace(Gn,"");if(!bt||!(Jt=$a(Jt)))return bt;var fn=vs(bt),Cn=Us(fn,vs(Jt));return Zu(fn,Cn).join("")}function PR(bt,Jt){var tn=St,fn=Tt;if(ws(Jt)){var Cn="separator"in Jt?Jt.separator:Cn;tn="length"in Jt?qo(Jt.length):tn,fn="omission"in Jt?$a(Jt.omission):fn}bt=hs(bt);var Ln=bt.length;if(Gu(bt)){var qn=vs(bt);Ln=qn.length}if(tn>=Ln)return bt;var lr=tn-du(fn);if(lr<1)return fn;var Br=qn?Zu(qn,0,lr).join(""):bt.slice(0,lr);if(Cn===et)return Br+fn;if(qn&&(lr+=Br.length-lr),Y2(Cn)){if(bt.slice(lr).search(Cn)){var jr,$r=Br;for(Cn.global||(Cn=zs(Cn.source,hs(Nn.exec(Cn))+"g")),Cn.lastIndex=0;jr=Cn.exec($r);)var Xr=jr.index;Br=Br.slice(0,Xr===et?lr:Xr)}}else if(bt.indexOf($a(Cn),lr)!=lr){var po=Br.lastIndexOf(Cn);po>-1&&(Br=Br.slice(0,po))}return Br+fn}function ZR(bt){return bt=hs(bt),bt&&jn.test(bt)?bt.replace(Qn,gp):bt}var jR=wt(function(bt,Jt,tn){return bt+(tn?" ":"")+Jt.toUpperCase()}),q2=m2("toUpperCase");function Ym(bt,Jt,tn){return bt=hs(bt),Jt=tn?et:Jt,Jt===et?kp(bt)?mp(bt):T1(bt):bt.match(Jt)||[]}var Xm=Vo(function(bt,Jt){try{return Rs(bt,et,Jt)}catch(tn){return H2(tn)?tn:new Wo(tn)}}),zR=Xo(function(bt,Jt){return Ds(Jt,function(tn){tn=zu(tn),mu(bt,tn,$2(bt[tn],bt))}),bt});function $R(bt){var Jt=bt==null?0:bt.length,tn=Ao();return bt=Jt?ms(bt,function(fn){if(typeof fn[1]!="function")throw new _l(it);return[tn(fn[0]),fn[1]]}):[],Vo(function(fn){for(var Cn=-1;++CnWt)return[];var tn=Pt,fn=na(bt,Pt);Jt=Ao(Jt),bt-=Pt;for(var Cn=vu(fn,Jt);++tn0||Jt<0)?new Mo(tn):(bt<0?tn=tn.takeRight(-bt):bt&&(tn=tn.drop(bt)),Jt!==et&&(Jt=qo(Jt),tn=Jt<0?tn.dropRight(-Jt):tn.take(Jt-bt)),tn)},Mo.prototype.takeRightWhile=function(bt){return this.reverse().takeWhile(bt).reverse()},Mo.prototype.toArray=function(){return this.take(Pt)},Nl(Mo.prototype,function(bt,Jt){var tn=/^(?:filter|find|map|reject)|While$/.test(Jt),fn=/^(?:head|last)$/.test(Jt),Cn=An[fn?"take"+(Jt=="last"?"Right":""):Jt],Ln=fn||/^find/.test(Jt);Cn&&(An.prototype[Jt]=function(){var qn=this.__wrapped__,lr=fn?[1]:arguments,Br=qn instanceof Mo,jr=lr[0],$r=Br||$o(qn),Xr=function(rs){var ls=Cn.apply(An,Xl([rs],lr));return fn&&po?ls[0]:ls};$r&&tn&&typeof jr=="function"&&jr.length!=1&&(Br=$r=!1);var po=this.__chain__,Eo=!!this.__actions__.length,Do=Ln&&!po,ts=Br&&!Eo;if(!Ln&&$r){qn=ts?qn:new Mo(this);var Oo=bt.apply(qn,lr);return Oo.__actions__.push({func:y2,args:[Xr],thisArg:et}),new ga(Oo,po)}return Do&&ts?bt.apply(this,lr):(Oo=this.thru(Xr),Do?fn?Oo.value()[0]:Oo.value():Oo)})}),Ds(["pop","push","shift","sort","splice","unshift"],function(bt){var Jt=Mu[bt],tn=/^(?:push|sort|unshift)$/.test(bt)?"tap":"thru",fn=/^(?:pop|shift)$/.test(bt);An.prototype[bt]=function(){var Cn=arguments;if(fn&&!this.__chain__){var Ln=this.value();return Jt.apply($o(Ln)?Ln:[],Cn)}return this[tn](function(qn){return Jt.apply($o(qn)?qn:[],Cn)})}}),Nl(Mo.prototype,function(bt,Jt){var tn=An[Jt];if(tn){var fn=tn.name+"";us.call(Ku,fn)||(Ku[fn]=[]),Ku[fn].push({name:Jt,func:tn})}}),Ku[yn(et,gt).name]=[{name:"wrapper",func:et}],Mo.prototype.clone=w2,Mo.prototype.reverse=C2,Mo.prototype.value=Vl,An.prototype.at=yF,An.prototype.chain=RF,An.prototype.commit=SF,An.prototype.next=BF,An.prototype.plant=bF,An.prototype.reverse=QF,An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=_F,An.prototype.first=An.prototype.head,Au&&(An.prototype[Au]=vF),An},Vu=N1();Co?((Co.exports=Vu)._=Vu,Ro._=Vu):no._=Vu}).call(commonjsGlobal$1)})(lodash,lodashExports);const icons={"add-small":()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.71252 2.25V15.75H8.21252V2.25H9.71252Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.75 9.75L2.25 9.75V8.25L15.75 8.25V9.75Z"}),jsx("path",{d:"M8.96252 3V15",strokeWidth:"1.5",strokeLinecap:"square"}),jsx("path",{d:"M15 9L3 9",strokeWidth:"1.5",strokeLinecap:"square"})]}),annotation:()=>jsx(Fragment,{children:jsx("path",{d:"M17.1363 2.46967C17.4292 2.17678 17.9041 2.17678 18.197 2.46967L21.5303 5.803C21.8232 6.0959 21.8232 6.57077 21.5303 6.86366L12.8637 15.5303C12.723 15.671 12.5322 15.75 12.3333 15.75H9C8.58579 15.75 8.25 15.4142 8.25 15V11.6667C8.25 11.4678 8.32902 11.277 8.46967 11.1363L17.1363 2.46967ZM9.75 11.9773V14.25H12.0227L17.9337 8.33899L15.661 6.06631L9.75 11.9773ZM16.1913 5.53598L18.464 7.80866L19.9393 6.33333L17.6667 4.06066L16.1913 5.53598ZM5.875 7.375H10.25V5.625H5.48276C4.68367 5.625 4.125 6.29713 4.125 7.01293V19.3567C4.125 20.0725 4.68367 20.7446 5.48276 20.7446H18.5173C19.3164 20.7446 19.875 20.0725 19.875 19.3567V12.2963H18.125V18.9946H5.875V7.375Z"})}),audio:()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16.0765 16.751C17.3366 15.4908 18.0443 13.782 18.0443 12.0001C18.0443 10.2181 17.3366 8.50929 16.0765 7.24915L15 8.32564C15.9742 9.29986 16.5222 10.622 16.5222 12.0001C16.5222 13.3781 15.9742 14.7003 15 15.6745L16.0765 16.751Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18.1877 18.8621C20.0077 17.042 21.0305 14.574 21.0305 12C21.0305 9.42594 20.0077 6.95792 18.1877 5.13788L17.1343 6.19123C18.6752 7.73132 19.5404 9.82086 19.5404 12C19.5404 14.1791 18.6752 16.2686 17.1343 17.8087L18.1877 18.8621Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.4393 4.14645C11.3843 3.2015 13 3.87075 13 5.20711V18.7929C13 20.1292 11.3843 20.7985 10.4393 19.8536L6.58579 16H3V8H6.58579L10.4393 4.14645ZM11 6.41422L7.41421 10H5V14H7.41421L11 17.5858V6.41422Z"})]}),"audio-muted":()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.9437 4.17441L3.74457 3.37354L15.4854 15.1144C16.1543 14.2209 16.5222 13.1293 16.5222 12.0001C16.5222 10.622 15.9742 9.29986 15 8.32564L16.0765 7.24915C17.3366 8.50929 18.0443 10.2181 18.0443 12.0001C18.0443 13.5339 17.52 15.0134 16.5704 16.1994L17.6336 17.2626C18.8608 15.7922 19.5404 13.9313 19.5404 12C19.5404 9.82092 18.6752 7.73138 17.1343 6.19129L18.1877 5.13794C20.0077 6.95798 21.0305 9.426 21.0305 12C21.0305 14.3265 20.195 16.5664 18.6905 18.3195L20.4311 20.0601L19.6302 20.8609L2.9437 4.17441Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13 5.20711C13 3.87075 11.3843 3.2015 10.4393 4.14645L6.70271 7.88307L8.11693 9.29729L11 6.41422V12.1804L13 14.1804V5.20711ZM13 15.7411L11 13.7411V17.5858L7.41421 14H5V10H7.25894L5.25894 8H3V16H6.58579L10.4393 19.8536C11.3843 20.7985 13 20.1292 13 18.7929V15.7411Z"})]}),"audio-volume-0":()=>jsx(Fragment,{children:jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.4393 4.14645C11.3843 3.2015 13 3.87075 13 5.20711V18.7929C13 20.1292 11.3843 20.7985 10.4393 19.8536L6.58579 16H3V8H6.58579L10.4393 4.14645ZM11 6.41422L7.41421 10H5V14H7.41421L11 17.5858V6.41422Z"})}),"audio-volume-half":()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16.0765 16.751C17.3366 15.4908 18.0443 13.782 18.0443 12.0001C18.0443 10.2181 17.3366 8.50929 16.0765 7.24915L15 8.32564C15.9742 9.29986 16.5222 10.622 16.5222 12.0001C16.5222 13.3781 15.9742 14.7003 15 15.6745L16.0765 16.751Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.4393 4.14645C11.3843 3.2015 13 3.87075 13 5.20711V18.7929C13 20.1292 11.3843 20.7985 10.4393 19.8536L6.58579 16H3V8H6.58579L10.4393 4.14645ZM11 6.41422L7.41421 10H5V14H7.41421L11 17.5858V6.41422Z"})]}),"arrow-down":()=>jsxs(Fragment,{children:[jsx("path",{d:"M11 20V4H13V20H11Z"}),jsx("path",{d:"M12 18.5858L6.70712 13.2929L5.29291 14.7071L11.2929 20.7071C11.6834 21.0976 12.3166 21.0976 12.7071 20.7071L18.7071 14.7071L17.2929 13.2929L12 18.5858Z"})]}),"arrow-left":()=>jsxs(Fragment,{children:[jsx("path",{d:"M4 11H20V13H4V11Z"}),jsx("path",{d:"M5.41421 12L10.7071 6.70711L9.29289 5.29289L3.29289 11.2929C2.90237 11.6834 2.90237 12.3166 3.29289 12.7071L9.29289 18.7071L10.7071 17.2929L5.41421 12Z"})]}),"arrow-right":()=>jsxs(Fragment,{children:[jsx("path",{d:"M20 13H4V11H20V13Z"}),jsx("path",{d:"M18.5858 12L13.2929 6.70711L14.7071 5.29289L20.7071 11.2929C21.0976 11.6834 21.0976 12.3166 20.7071 12.7071L14.7071 18.7071L13.2929 17.2929L18.5858 12Z"})]}),"arrow-up":()=>jsxs(Fragment,{children:[jsx("path",{d:"M13 4V20H11V4H13Z"}),jsx("path",{d:"M11.2929 3.29289C11.6834 2.90237 12.3166 2.90237 12.7071 3.29289L18.7071 9.29289L17.2929 10.7071L12 5.41421L6.70712 10.7071L5.29291 9.29289L11.2929 3.29289Z"})]}),board:()=>jsx(Fragment,{children:jsx("path",{d:`M10.9,8.5c0,2.7-1.6,4.1-3.4,4.1c-1.8,0-3.3-1.4-3.3-3.9c0-2.5,1.4-4.1,3.4-4.1C9.6,4.6,10.9,6.2,10.9,8.5z M6,8.6 +}`;var ts=Xm(function(){return zo(Ln,Eo+"return "+Xr).apply(et,qn)});if(ts.source=Xr,H2(ts))throw ts;return ts}function OR(bt){return hs(bt).toLowerCase()}function JR(bt){return hs(bt).toUpperCase()}function WR(bt,Wt,tn){if(bt=hs(bt),bt&&(tn||Wt===et))return p0(bt);if(!bt||!(Wt=$a(Wt)))return bt;var fn=vs(bt),Cn=vs(Wt),Ln=Us(fn,Cn),qn=up(fn,Cn)+1;return Zu(fn,Ln,qn).join("")}function IR(bt,Wt,tn){if(bt=hs(bt),bt&&(tn||Wt===et))return bt.slice(0,fp(bt)+1);if(!bt||!(Wt=$a(Wt)))return bt;var fn=vs(bt),Cn=up(fn,vs(Wt))+1;return Zu(fn,0,Cn).join("")}function LR(bt,Wt,tn){if(bt=hs(bt),bt&&(tn||Wt===et))return bt.replace(Gn,"");if(!bt||!(Wt=$a(Wt)))return bt;var fn=vs(bt),Cn=Us(fn,vs(Wt));return Zu(fn,Cn).join("")}function PR(bt,Wt){var tn=St,fn=Tt;if(ws(Wt)){var Cn="separator"in Wt?Wt.separator:Cn;tn="length"in Wt?qo(Wt.length):tn,fn="omission"in Wt?$a(Wt.omission):fn}bt=hs(bt);var Ln=bt.length;if(Gu(bt)){var qn=vs(bt);Ln=qn.length}if(tn>=Ln)return bt;var lr=tn-du(fn);if(lr<1)return fn;var Br=qn?Zu(qn,0,lr).join(""):bt.slice(0,lr);if(Cn===et)return Br+fn;if(qn&&(lr+=Br.length-lr),Y2(Cn)){if(bt.slice(lr).search(Cn)){var jr,$r=Br;for(Cn.global||(Cn=zs(Cn.source,hs(Nn.exec(Cn))+"g")),Cn.lastIndex=0;jr=Cn.exec($r);)var Xr=jr.index;Br=Br.slice(0,Xr===et?lr:Xr)}}else if(bt.indexOf($a(Cn),lr)!=lr){var po=Br.lastIndexOf(Cn);po>-1&&(Br=Br.slice(0,po))}return Br+fn}function ZR(bt){return bt=hs(bt),bt&&jn.test(bt)?bt.replace(Qn,gp):bt}var jR=wt(function(bt,Wt,tn){return bt+(tn?" ":"")+Wt.toUpperCase()}),q2=m2("toUpperCase");function Ym(bt,Wt,tn){return bt=hs(bt),Wt=tn?et:Wt,Wt===et?kp(bt)?mp(bt):T1(bt):bt.match(Wt)||[]}var Xm=Vo(function(bt,Wt){try{return Rs(bt,et,Wt)}catch(tn){return H2(tn)?tn:new Jo(tn)}}),zR=Xo(function(bt,Wt){return Ds(Wt,function(tn){tn=zu(tn),mu(bt,tn,$2(bt[tn],bt))}),bt});function $R(bt){var Wt=bt==null?0:bt.length,tn=Ao();return bt=Wt?ms(bt,function(fn){if(typeof fn[1]!="function")throw new _l(it);return[tn(fn[0]),fn[1]]}):[],Vo(function(fn){for(var Cn=-1;++CnJt)return[];var tn=Pt,fn=na(bt,Pt);Wt=Ao(Wt),bt-=Pt;for(var Cn=vu(fn,Wt);++tn0||Wt<0)?new Mo(tn):(bt<0?tn=tn.takeRight(-bt):bt&&(tn=tn.drop(bt)),Wt!==et&&(Wt=qo(Wt),tn=Wt<0?tn.dropRight(-Wt):tn.take(Wt-bt)),tn)},Mo.prototype.takeRightWhile=function(bt){return this.reverse().takeWhile(bt).reverse()},Mo.prototype.toArray=function(){return this.take(Pt)},Nl(Mo.prototype,function(bt,Wt){var tn=/^(?:filter|find|map|reject)|While$/.test(Wt),fn=/^(?:head|last)$/.test(Wt),Cn=An[fn?"take"+(Wt=="last"?"Right":""):Wt],Ln=fn||/^find/.test(Wt);Cn&&(An.prototype[Wt]=function(){var qn=this.__wrapped__,lr=fn?[1]:arguments,Br=qn instanceof Mo,jr=lr[0],$r=Br||$o(qn),Xr=function(rs){var ls=Cn.apply(An,Xl([rs],lr));return fn&&po?ls[0]:ls};$r&&tn&&typeof jr=="function"&&jr.length!=1&&(Br=$r=!1);var po=this.__chain__,Eo=!!this.__actions__.length,Do=Ln&&!po,ts=Br&&!Eo;if(!Ln&&$r){qn=ts?qn:new Mo(this);var Oo=bt.apply(qn,lr);return Oo.__actions__.push({func:y2,args:[Xr],thisArg:et}),new ga(Oo,po)}return Do&&ts?bt.apply(this,lr):(Oo=this.thru(Xr),Do?fn?Oo.value()[0]:Oo.value():Oo)})}),Ds(["pop","push","shift","sort","splice","unshift"],function(bt){var Wt=Mu[bt],tn=/^(?:push|sort|unshift)$/.test(bt)?"tap":"thru",fn=/^(?:pop|shift)$/.test(bt);An.prototype[bt]=function(){var Cn=arguments;if(fn&&!this.__chain__){var Ln=this.value();return Wt.apply($o(Ln)?Ln:[],Cn)}return this[tn](function(qn){return Wt.apply($o(qn)?qn:[],Cn)})}}),Nl(Mo.prototype,function(bt,Wt){var tn=An[Wt];if(tn){var fn=tn.name+"";us.call(Ku,fn)||(Ku[fn]=[]),Ku[fn].push({name:Wt,func:tn})}}),Ku[yn(et,gt).name]=[{name:"wrapper",func:et}],Mo.prototype.clone=w2,Mo.prototype.reverse=C2,Mo.prototype.value=Vl,An.prototype.at=yF,An.prototype.chain=RF,An.prototype.commit=SF,An.prototype.next=BF,An.prototype.plant=bF,An.prototype.reverse=QF,An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=_F,An.prototype.first=An.prototype.head,Au&&(An.prototype[Au]=vF),An},Vu=N1();Co?((Co.exports=Vu)._=Vu,Ro._=Vu):no._=Vu}).call(commonjsGlobal$1)})(lodash,lodashExports);const icons={"add-small":()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.71252 2.25V15.75H8.21252V2.25H9.71252Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.75 9.75L2.25 9.75V8.25L15.75 8.25V9.75Z"}),jsx("path",{d:"M8.96252 3V15",strokeWidth:"1.5",strokeLinecap:"square"}),jsx("path",{d:"M15 9L3 9",strokeWidth:"1.5",strokeLinecap:"square"})]}),annotation:()=>jsx(Fragment,{children:jsx("path",{d:"M17.1363 2.46967C17.4292 2.17678 17.9041 2.17678 18.197 2.46967L21.5303 5.803C21.8232 6.0959 21.8232 6.57077 21.5303 6.86366L12.8637 15.5303C12.723 15.671 12.5322 15.75 12.3333 15.75H9C8.58579 15.75 8.25 15.4142 8.25 15V11.6667C8.25 11.4678 8.32902 11.277 8.46967 11.1363L17.1363 2.46967ZM9.75 11.9773V14.25H12.0227L17.9337 8.33899L15.661 6.06631L9.75 11.9773ZM16.1913 5.53598L18.464 7.80866L19.9393 6.33333L17.6667 4.06066L16.1913 5.53598ZM5.875 7.375H10.25V5.625H5.48276C4.68367 5.625 4.125 6.29713 4.125 7.01293V19.3567C4.125 20.0725 4.68367 20.7446 5.48276 20.7446H18.5173C19.3164 20.7446 19.875 20.0725 19.875 19.3567V12.2963H18.125V18.9946H5.875V7.375Z"})}),audio:()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16.0765 16.751C17.3366 15.4908 18.0443 13.782 18.0443 12.0001C18.0443 10.2181 17.3366 8.50929 16.0765 7.24915L15 8.32564C15.9742 9.29986 16.5222 10.622 16.5222 12.0001C16.5222 13.3781 15.9742 14.7003 15 15.6745L16.0765 16.751Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18.1877 18.8621C20.0077 17.042 21.0305 14.574 21.0305 12C21.0305 9.42594 20.0077 6.95792 18.1877 5.13788L17.1343 6.19123C18.6752 7.73132 19.5404 9.82086 19.5404 12C19.5404 14.1791 18.6752 16.2686 17.1343 17.8087L18.1877 18.8621Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.4393 4.14645C11.3843 3.2015 13 3.87075 13 5.20711V18.7929C13 20.1292 11.3843 20.7985 10.4393 19.8536L6.58579 16H3V8H6.58579L10.4393 4.14645ZM11 6.41422L7.41421 10H5V14H7.41421L11 17.5858V6.41422Z"})]}),"audio-muted":()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.9437 4.17441L3.74457 3.37354L15.4854 15.1144C16.1543 14.2209 16.5222 13.1293 16.5222 12.0001C16.5222 10.622 15.9742 9.29986 15 8.32564L16.0765 7.24915C17.3366 8.50929 18.0443 10.2181 18.0443 12.0001C18.0443 13.5339 17.52 15.0134 16.5704 16.1994L17.6336 17.2626C18.8608 15.7922 19.5404 13.9313 19.5404 12C19.5404 9.82092 18.6752 7.73138 17.1343 6.19129L18.1877 5.13794C20.0077 6.95798 21.0305 9.426 21.0305 12C21.0305 14.3265 20.195 16.5664 18.6905 18.3195L20.4311 20.0601L19.6302 20.8609L2.9437 4.17441Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13 5.20711C13 3.87075 11.3843 3.2015 10.4393 4.14645L6.70271 7.88307L8.11693 9.29729L11 6.41422V12.1804L13 14.1804V5.20711ZM13 15.7411L11 13.7411V17.5858L7.41421 14H5V10H7.25894L5.25894 8H3V16H6.58579L10.4393 19.8536C11.3843 20.7985 13 20.1292 13 18.7929V15.7411Z"})]}),"audio-volume-0":()=>jsx(Fragment,{children:jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.4393 4.14645C11.3843 3.2015 13 3.87075 13 5.20711V18.7929C13 20.1292 11.3843 20.7985 10.4393 19.8536L6.58579 16H3V8H6.58579L10.4393 4.14645ZM11 6.41422L7.41421 10H5V14H7.41421L11 17.5858V6.41422Z"})}),"audio-volume-half":()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16.0765 16.751C17.3366 15.4908 18.0443 13.782 18.0443 12.0001C18.0443 10.2181 17.3366 8.50929 16.0765 7.24915L15 8.32564C15.9742 9.29986 16.5222 10.622 16.5222 12.0001C16.5222 13.3781 15.9742 14.7003 15 15.6745L16.0765 16.751Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.4393 4.14645C11.3843 3.2015 13 3.87075 13 5.20711V18.7929C13 20.1292 11.3843 20.7985 10.4393 19.8536L6.58579 16H3V8H6.58579L10.4393 4.14645ZM11 6.41422L7.41421 10H5V14H7.41421L11 17.5858V6.41422Z"})]}),"arrow-down":()=>jsxs(Fragment,{children:[jsx("path",{d:"M11 20V4H13V20H11Z"}),jsx("path",{d:"M12 18.5858L6.70712 13.2929L5.29291 14.7071L11.2929 20.7071C11.6834 21.0976 12.3166 21.0976 12.7071 20.7071L18.7071 14.7071L17.2929 13.2929L12 18.5858Z"})]}),"arrow-left":()=>jsxs(Fragment,{children:[jsx("path",{d:"M4 11H20V13H4V11Z"}),jsx("path",{d:"M5.41421 12L10.7071 6.70711L9.29289 5.29289L3.29289 11.2929C2.90237 11.6834 2.90237 12.3166 3.29289 12.7071L9.29289 18.7071L10.7071 17.2929L5.41421 12Z"})]}),"arrow-right":()=>jsxs(Fragment,{children:[jsx("path",{d:"M20 13H4V11H20V13Z"}),jsx("path",{d:"M18.5858 12L13.2929 6.70711L14.7071 5.29289L20.7071 11.2929C21.0976 11.6834 21.0976 12.3166 20.7071 12.7071L14.7071 18.7071L13.2929 17.2929L18.5858 12Z"})]}),"arrow-up":()=>jsxs(Fragment,{children:[jsx("path",{d:"M13 4V20H11V4H13Z"}),jsx("path",{d:"M11.2929 3.29289C11.6834 2.90237 12.3166 2.90237 12.7071 3.29289L18.7071 9.29289L17.2929 10.7071L12 5.41421L6.70712 10.7071L5.29291 9.29289L11.2929 3.29289Z"})]}),board:()=>jsx(Fragment,{children:jsx("path",{d:`M10.9,8.5c0,2.7-1.6,4.1-3.4,4.1c-1.8,0-3.3-1.4-3.3-3.9c0-2.5,1.4-4.1,3.4-4.1C9.6,4.6,10.9,6.2,10.9,8.5z M6,8.6 c0,1.5,0.5,2.6,1.5,2.6c1,0,1.5-1,1.5-2.6C9,7.2,8.6,6,7.5,6C6.5,6,6,7.2,6,8.6z M7.5,18.1l7.5-13.4h1.4L8.9,18.1H7.5z M19.8,13.9 c0,2.7-1.6,4.1-3.4,4.1c-1.8,0-3.3-1.4-3.3-3.9c0-2.5,1.4-4.1,3.4-4.1C18.6,10,19.8,11.6,19.8,13.9z M15,14c0,1.5,0.5,2.6,1.5,2.6 c1,0,1.5-1,1.5-2.6c0-1.4-0.4-2.6-1.5-2.6C15.5,11.4,15,12.6,15,14z`})}),arrow:()=>jsx(Fragment,{children:jsx("polygon",{points:"30.4,15 29.3,16.1 33,19.8 4.1,19.8 4.1,21.2 33,21.2 29.3,24.9 30.4,26 35.9,20.5 "})}),assistance:()=>jsx(Fragment,{children:jsx("path",{d:`M19.5,12c0-1.2-0.9-2.3-2.1-2.5c0-2-1.2-5.6-5.2-5.6C8.2,4,7,7.5,7,9.5c-1.4,0-2.5,1.1-2.5,2.5 @@ -4789,7 +4789,7 @@ c0.6,0,1-0.4,1-1v-0.8h4.9V16.8z M8.5,10c0-1.9,1.6-3.5,3.5-3.5s3.5,1.6,3.5,3.5v6. c0.2,0,0.4-0.1,0.5-0.2c0.1-0.1,0.2-0.3,0.2-0.5s-0.1-0.4-0.2-0.5C12.5,15.1,12.3,15,12.1,15z`})]}),infinity:()=>jsx(Fragment,{children:jsx("path",{d:`M17.6,16.8c-1.6,0-2.9-0.6-4.1-1.9l1.1-1c0.9,0.9,1.8,1.4,3,1.4c1.3,0,2.7-1.1,2.7-2.7c0-1.7-1.1-2.8-2.7-2.8 c-0.9,0-1.7,0.4-2.6,1.1l-4.6,4c-1.2,1.3-2.6,1.9-4.1,1.9c-2,0-4.1-1.7-4.1-4.2c0-2.5,1.7-4.3,4.1-4.3c1.4,0,2.8,0.6,4.1,1.9l-1,1.1 c-1-1-2-1.5-3.1-1.5c-1.6,0-2.6,1.1-2.6,2.8c0,1.6,1.4,2.7,2.6,2.7c1.1,0,2.1-0.5,3.1-1.5l4.6-4c1.1-1,2.3-1.5,3.5-1.5 - c2.4,0,4.2,1.8,4.2,4.3C21.8,15.1,19.6,16.8,17.6,16.8z`})}),code:()=>jsx(Fragment,{children:jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.4881 3.10845C14.548 2.83888 14.378 2.5718 14.1084 2.51189C13.8389 2.45199 13.5718 2.62195 13.5119 2.89152L9.51189 20.8915C9.45199 21.1611 9.62195 21.4282 9.89152 21.4881C10.1611 21.548 10.4282 21.378 10.4881 21.1084L14.4881 3.10845ZM7.70711 15.7071C7.31658 16.0976 6.68342 16.0976 6.29289 15.7071L1.29289 10.7071C0.902369 10.3166 0.902369 9.68342 1.29289 9.29289L6.29289 4.29289C6.68342 3.90237 7.31658 3.90237 7.70711 4.29289C8.09763 4.68342 8.09763 5.31658 7.70711 5.70711L3.41421 10L7.70711 14.2929C8.09763 14.6834 8.09763 15.3166 7.70711 15.7071ZM16.2929 8.29289C16.6834 7.90237 17.3166 7.90237 17.7071 8.29289L22.7071 13.2929C23.0976 13.6834 23.0976 14.3166 22.7071 14.7071L17.7071 19.7071C17.3166 20.0976 16.6834 20.0976 16.2929 19.7071C15.9024 19.3166 15.9024 18.6834 16.2929 18.2929L20.5858 14L16.2929 9.70711C15.9024 9.31658 15.9024 8.68342 16.2929 8.29289Z"})}),access:()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.40625 11.125H22.0312V13.125H8.40625V11.125Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.0156 16.125L14.0156 11.125L16.0156 11.125L16.0156 16.125L14.0156 16.125Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18.0156 16.125L18.0156 11.125L20.0156 11.125L20.0156 16.125L18.0156 16.125Z"}),jsx("circle",{cx:"5.90625",cy:"12",r:"2.6875",strokeWidth:"2"})]}),ros:()=>jsxs(Fragment,{children:[jsx("path",{}),jsx("circle",{cx:"6.4",cy:"6.4",r:"1.4"}),jsx("circle",{cx:"6.4",cy:"12",r:"1.4"}),jsx("circle",{cx:"6.4",cy:"17.6",r:"1.4"}),jsx("circle",{cx:"12",cy:"6.4",r:"1.4"}),jsx("circle",{cx:"12",cy:"12",r:"1.4"}),jsx("circle",{cx:"12",cy:"17.6",r:"1.4"}),jsx("circle",{cx:"17.6",cy:"6.4",r:"1.4"}),jsx("circle",{cx:"17.6",cy:"12",r:"1.4"}),jsx("circle",{cx:"17.6",cy:"17.6",r:"1.4"})]}),adapter:()=>jsxs(Fragment,{children:[jsx("path",{d:"M6.9375 6.03937L6.9375 5.03937L5.9375 5.03937L4.2375 5.03937C3.51953 5.03937 2.9375 5.6214 2.9375 6.33937L2.9375 17.6606C2.9375 18.3786 3.51953 18.9606 4.2375 18.9606L5.9375 18.9606L6.9375 18.9606L6.9375 17.9606L6.9375 6.03937Z",strokeWidth:"2"}),jsx("path",{d:"M16.9933 17.9606L16.9933 18.9606L17.9933 18.9606L19.6933 18.9606C20.4113 18.9606 20.9933 18.3785 20.9933 17.6606L20.9933 6.33934C20.9933 5.62137 20.4113 5.03934 19.6933 5.03934L17.9933 5.03934L16.9933 5.03934L16.9933 6.03934L16.9933 17.9606Z",strokeWidth:"2"}),jsx("path",{d:"M16.0232 14.5469L14.5352 14.5469C14.2524 14.5469 14.0232 14.3176 14.0232 14.0349L14.0232 9.96514C14.0232 9.68236 14.2524 9.45312 14.5352 9.45312L16.0232 9.45312L16.0232 14.5469Z"}),jsx("path",{d:"M7.93213 14.8647H10.4201C10.7029 14.8647 10.9321 15.094 10.9321 15.3768V19.4465C10.9321 19.7293 10.7029 19.9585 10.4201 19.9585H7.93213L7.93213 14.8647Z"}),jsx("path",{d:"M7.93213 4.05225H10.4201C10.7029 4.05225 10.9321 4.28148 10.9321 4.56426V8.63398C10.9321 8.91676 10.7029 9.146 10.4201 9.146H7.93213L7.93213 4.05225Z"})]})};function Icon(s){return jsx(SvgIcon$1,{sx:s.sx,...s,children:icons[s.name]()})}var lib$3={},uaParser_minExports={},uaParser_min={get exports(){return uaParser_minExports},set exports(s){uaParser_minExports=s}};(function(s,o){(function(et,tt){var nt="1.0.2",rt="",it="?",ot="function",st="undefined",at="object",lt="string",ut="major",dt="model",ht="name",ct="type",pt="vendor",ft="version",gt="architecture",yt="console",Ut="mobile",Ft="tablet",mt="smarttv",vt="wearable",At="embedded",Lt=255,Rt="Amazon",St="Apple",Tt="ASUS",Bt="BlackBerry",xt="Browser",Ct="Chrome",kt="Edge",Nt="Firefox",Ot="Google",Wt="Huawei",Dt="LG",Et="Microsoft",Pt="Motorola",zt="Opera",en="Samsung",Kt="Sony",nn="Xiaomi",Zt="Zebra",jt="Facebook",Vt=function(wn,Zn){var Pn={};for(var $n in wn)Zn[$n]&&Zn[$n].length%2===0?Pn[$n]=Zn[$n].concat(wn[$n]):Pn[$n]=wn[$n];return Pn},It=function(wn){for(var Zn={},Pn=0;Pn0?_r.length===2?typeof _r[1]==ot?this[_r[0]]=_r[1].call(this,Wr):this[_r[0]]=_r[1]:_r.length===3?typeof _r[1]===ot&&!(_r[1].exec&&_r[1].test)?this[_r[0]]=Wr?_r[1].call(this,Wr,_r[2]):tt:this[_r[0]]=Wr?Wr.replace(_r[1],_r[2]):tt:_r.length===4&&(this[_r[0]]=Wr?_r[3].call(this,Wr.replace(_r[1],_r[2])):tt):this[_r]=Wr||tt;Pn+=2}},dn=function(wn,Zn){for(var Pn in Zn)if(typeof Zn[Pn]===at&&Zn[Pn].length>0){for(var $n=0;$nLt?on(Tr,Lt):Tr,this},this.setUA(Pn),this};On.VERSION=nt,On.BROWSER=It([ht,ft,ut]),On.CPU=It([gt]),On.DEVICE=It([dt,pt,ct,yt,Ut,mt,Ft,vt,At]),On.ENGINE=On.OS=It([ht,ft]),s.exports&&(o=s.exports=On),o.UAParser=On;var gn=typeof et!==st&&(et.jQuery||et.Zepto);if(gn&&!gn.ua){var hn=new On;gn.ua=hn.getResult(),gn.ua.get=function(){return hn.getUA()},gn.ua.set=function(wn){hn.setUA(wn);var Zn=hn.getResult();for(var Pn in Zn)gn.ua[Pn]=Zn[Pn]}}})(typeof window=="object"?window:commonjsGlobal$1)})(uaParser_min,uaParser_minExports);Object.defineProperty(lib$3,"__esModule",{value:!0});function _interopDefault(s){return s&&typeof s=="object"&&"default"in s?s.default:s}var React=React$1,React__default=_interopDefault(React),UAParser=uaParser_minExports,ClientUAInstance=new UAParser,browser=ClientUAInstance.getBrowser(),cpu=ClientUAInstance.getCPU(),device=ClientUAInstance.getDevice(),engine=ClientUAInstance.getEngine(),os=ClientUAInstance.getOS(),ua=ClientUAInstance.getUA(),setUa=function s(o){return ClientUAInstance.setUA(o)},parseUserAgent=function s(o){if(!o){console.error("No userAgent string was provided");return}var et=new UAParser(o);return{UA:et,browser:et.getBrowser(),cpu:et.getCPU(),device:et.getDevice(),engine:et.getEngine(),os:et.getOS(),ua:et.getUA(),setUserAgent:function(tt){return et.setUA(tt)}}},UAHelper=Object.freeze({ClientUAInstance,browser,cpu,device,engine,os,ua,setUa,parseUserAgent});function ownKeys$2(s,o){var et=Object.keys(s);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(s);o&&(tt=tt.filter(function(nt){return Object.getOwnPropertyDescriptor(s,nt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread2(s){for(var o=1;o=0)&&(et[nt]=s[nt]);return et}function _objectWithoutProperties(s,o){if(s==null)return{};var et=_objectWithoutPropertiesLoose(s,o),tt,nt;if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(s);for(nt=0;nt=0)&&Object.prototype.propertyIsEnumerable.call(s,tt)&&(et[tt]=s[tt])}return et}function _assertThisInitialized(s){if(s===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s}function _possibleConstructorReturn(s,o){if(o&&(typeof o=="object"||typeof o=="function"))return o;if(o!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(s)}function _slicedToArray$2(s,o){return _arrayWithHoles$2(s)||_iterableToArrayLimit$2(s,o)||_unsupportedIterableToArray$2(s,o)||_nonIterableRest$2()}function _arrayWithHoles$2(s){if(Array.isArray(s))return s}function _iterableToArrayLimit$2(s,o){var et=s==null?null:typeof Symbol<"u"&&s[Symbol.iterator]||s["@@iterator"];if(et!=null){var tt=[],nt=!0,rt=!1,it,ot;try{for(et=et.call(s);!(nt=(it=et.next()).done)&&(tt.push(it.value),!(o&&tt.length===o));nt=!0);}catch(st){rt=!0,ot=st}finally{try{!nt&&et.return!=null&&et.return()}finally{if(rt)throw ot}}return tt}}function _unsupportedIterableToArray$2(s,o){if(s){if(typeof s=="string")return _arrayLikeToArray$2(s,o);var et=Object.prototype.toString.call(s).slice(8,-1);if(et==="Object"&&s.constructor&&(et=s.constructor.name),et==="Map"||et==="Set")return Array.from(s);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$2(s,o)}}function _arrayLikeToArray$2(s,o){(o==null||o>s.length)&&(o=s.length);for(var et=0,tt=new Array(o);etjsx(Fragment,{children:jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.4881 3.10845C14.548 2.83888 14.378 2.5718 14.1084 2.51189C13.8389 2.45199 13.5718 2.62195 13.5119 2.89152L9.51189 20.8915C9.45199 21.1611 9.62195 21.4282 9.89152 21.4881C10.1611 21.548 10.4282 21.378 10.4881 21.1084L14.4881 3.10845ZM7.70711 15.7071C7.31658 16.0976 6.68342 16.0976 6.29289 15.7071L1.29289 10.7071C0.902369 10.3166 0.902369 9.68342 1.29289 9.29289L6.29289 4.29289C6.68342 3.90237 7.31658 3.90237 7.70711 4.29289C8.09763 4.68342 8.09763 5.31658 7.70711 5.70711L3.41421 10L7.70711 14.2929C8.09763 14.6834 8.09763 15.3166 7.70711 15.7071ZM16.2929 8.29289C16.6834 7.90237 17.3166 7.90237 17.7071 8.29289L22.7071 13.2929C23.0976 13.6834 23.0976 14.3166 22.7071 14.7071L17.7071 19.7071C17.3166 20.0976 16.6834 20.0976 16.2929 19.7071C15.9024 19.3166 15.9024 18.6834 16.2929 18.2929L20.5858 14L16.2929 9.70711C15.9024 9.31658 15.9024 8.68342 16.2929 8.29289Z"})}),access:()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.40625 11.125H22.0312V13.125H8.40625V11.125Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.0156 16.125L14.0156 11.125L16.0156 11.125L16.0156 16.125L14.0156 16.125Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18.0156 16.125L18.0156 11.125L20.0156 11.125L20.0156 16.125L18.0156 16.125Z"}),jsx("circle",{cx:"5.90625",cy:"12",r:"2.6875",strokeWidth:"2"})]}),ros:()=>jsxs(Fragment,{children:[jsx("path",{}),jsx("circle",{cx:"6.4",cy:"6.4",r:"1.4"}),jsx("circle",{cx:"6.4",cy:"12",r:"1.4"}),jsx("circle",{cx:"6.4",cy:"17.6",r:"1.4"}),jsx("circle",{cx:"12",cy:"6.4",r:"1.4"}),jsx("circle",{cx:"12",cy:"12",r:"1.4"}),jsx("circle",{cx:"12",cy:"17.6",r:"1.4"}),jsx("circle",{cx:"17.6",cy:"6.4",r:"1.4"}),jsx("circle",{cx:"17.6",cy:"12",r:"1.4"}),jsx("circle",{cx:"17.6",cy:"17.6",r:"1.4"})]}),adapter:()=>jsxs(Fragment,{children:[jsx("path",{d:"M6.9375 6.03937L6.9375 5.03937L5.9375 5.03937L4.2375 5.03937C3.51953 5.03937 2.9375 5.6214 2.9375 6.33937L2.9375 17.6606C2.9375 18.3786 3.51953 18.9606 4.2375 18.9606L5.9375 18.9606L6.9375 18.9606L6.9375 17.9606L6.9375 6.03937Z",strokeWidth:"2"}),jsx("path",{d:"M16.9933 17.9606L16.9933 18.9606L17.9933 18.9606L19.6933 18.9606C20.4113 18.9606 20.9933 18.3785 20.9933 17.6606L20.9933 6.33934C20.9933 5.62137 20.4113 5.03934 19.6933 5.03934L17.9933 5.03934L16.9933 5.03934L16.9933 6.03934L16.9933 17.9606Z",strokeWidth:"2"}),jsx("path",{d:"M16.0232 14.5469L14.5352 14.5469C14.2524 14.5469 14.0232 14.3176 14.0232 14.0349L14.0232 9.96514C14.0232 9.68236 14.2524 9.45312 14.5352 9.45312L16.0232 9.45312L16.0232 14.5469Z"}),jsx("path",{d:"M7.93213 14.8647H10.4201C10.7029 14.8647 10.9321 15.094 10.9321 15.3768V19.4465C10.9321 19.7293 10.7029 19.9585 10.4201 19.9585H7.93213L7.93213 14.8647Z"}),jsx("path",{d:"M7.93213 4.05225H10.4201C10.7029 4.05225 10.9321 4.28148 10.9321 4.56426V8.63398C10.9321 8.91676 10.7029 9.146 10.4201 9.146H7.93213L7.93213 4.05225Z"})]})};function Icon(s){return jsx(SvgIcon$1,{sx:s.sx,...s,children:icons[s.name]()})}var lib$3={},uaParser_minExports={},uaParser_min={get exports(){return uaParser_minExports},set exports(s){uaParser_minExports=s}};(function(s,o){(function(et,tt){var nt="1.0.2",rt="",it="?",ot="function",st="undefined",at="object",lt="string",ut="major",dt="model",ht="name",ct="type",pt="vendor",ft="version",gt="architecture",yt="console",Ut="mobile",Ft="tablet",mt="smarttv",vt="wearable",At="embedded",Lt=255,Rt="Amazon",St="Apple",Tt="ASUS",Bt="BlackBerry",xt="Browser",Ct="Chrome",kt="Edge",Nt="Firefox",Ot="Google",Jt="Huawei",Dt="LG",Et="Microsoft",Pt="Motorola",zt="Opera",en="Samsung",Kt="Sony",nn="Xiaomi",Zt="Zebra",jt="Facebook",Vt=function(wn,Zn){var Pn={};for(var $n in wn)Zn[$n]&&Zn[$n].length%2===0?Pn[$n]=Zn[$n].concat(wn[$n]):Pn[$n]=wn[$n];return Pn},It=function(wn){for(var Zn={},Pn=0;Pn0?_r.length===2?typeof _r[1]==ot?this[_r[0]]=_r[1].call(this,Jr):this[_r[0]]=_r[1]:_r.length===3?typeof _r[1]===ot&&!(_r[1].exec&&_r[1].test)?this[_r[0]]=Jr?_r[1].call(this,Jr,_r[2]):tt:this[_r[0]]=Jr?Jr.replace(_r[1],_r[2]):tt:_r.length===4&&(this[_r[0]]=Jr?_r[3].call(this,Jr.replace(_r[1],_r[2])):tt):this[_r]=Jr||tt;Pn+=2}},dn=function(wn,Zn){for(var Pn in Zn)if(typeof Zn[Pn]===at&&Zn[Pn].length>0){for(var $n=0;$nLt?on(Tr,Lt):Tr,this},this.setUA(Pn),this};On.VERSION=nt,On.BROWSER=It([ht,ft,ut]),On.CPU=It([gt]),On.DEVICE=It([dt,pt,ct,yt,Ut,mt,Ft,vt,At]),On.ENGINE=On.OS=It([ht,ft]),s.exports&&(o=s.exports=On),o.UAParser=On;var gn=typeof et!==st&&(et.jQuery||et.Zepto);if(gn&&!gn.ua){var hn=new On;gn.ua=hn.getResult(),gn.ua.get=function(){return hn.getUA()},gn.ua.set=function(wn){hn.setUA(wn);var Zn=hn.getResult();for(var Pn in Zn)gn.ua[Pn]=Zn[Pn]}}})(typeof window=="object"?window:commonjsGlobal$1)})(uaParser_min,uaParser_minExports);Object.defineProperty(lib$3,"__esModule",{value:!0});function _interopDefault(s){return s&&typeof s=="object"&&"default"in s?s.default:s}var React=React$1,React__default=_interopDefault(React),UAParser=uaParser_minExports,ClientUAInstance=new UAParser,browser=ClientUAInstance.getBrowser(),cpu=ClientUAInstance.getCPU(),device=ClientUAInstance.getDevice(),engine=ClientUAInstance.getEngine(),os=ClientUAInstance.getOS(),ua=ClientUAInstance.getUA(),setUa=function s(o){return ClientUAInstance.setUA(o)},parseUserAgent=function s(o){if(!o){console.error("No userAgent string was provided");return}var et=new UAParser(o);return{UA:et,browser:et.getBrowser(),cpu:et.getCPU(),device:et.getDevice(),engine:et.getEngine(),os:et.getOS(),ua:et.getUA(),setUserAgent:function(tt){return et.setUA(tt)}}},UAHelper=Object.freeze({ClientUAInstance,browser,cpu,device,engine,os,ua,setUa,parseUserAgent});function ownKeys$2(s,o){var et=Object.keys(s);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(s);o&&(tt=tt.filter(function(nt){return Object.getOwnPropertyDescriptor(s,nt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread2(s){for(var o=1;o=0)&&(et[nt]=s[nt]);return et}function _objectWithoutProperties(s,o){if(s==null)return{};var et=_objectWithoutPropertiesLoose(s,o),tt,nt;if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(s);for(nt=0;nt=0)&&Object.prototype.propertyIsEnumerable.call(s,tt)&&(et[tt]=s[tt])}return et}function _assertThisInitialized(s){if(s===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s}function _possibleConstructorReturn(s,o){if(o&&(typeof o=="object"||typeof o=="function"))return o;if(o!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(s)}function _slicedToArray$2(s,o){return _arrayWithHoles$2(s)||_iterableToArrayLimit$2(s,o)||_unsupportedIterableToArray$2(s,o)||_nonIterableRest$2()}function _arrayWithHoles$2(s){if(Array.isArray(s))return s}function _iterableToArrayLimit$2(s,o){var et=s==null?null:typeof Symbol<"u"&&s[Symbol.iterator]||s["@@iterator"];if(et!=null){var tt=[],nt=!0,rt=!1,it,ot;try{for(et=et.call(s);!(nt=(it=et.next()).done)&&(tt.push(it.value),!(o&&tt.length===o));nt=!0);}catch(st){rt=!0,ot=st}finally{try{!nt&&et.return!=null&&et.return()}finally{if(rt)throw ot}}return tt}}function _unsupportedIterableToArray$2(s,o){if(s){if(typeof s=="string")return _arrayLikeToArray$2(s,o);var et=Object.prototype.toString.call(s).slice(8,-1);if(et==="Object"&&s.constructor&&(et=s.constructor.name),et==="Map"||et==="Set")return Array.from(s);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$2(s,o)}}function _arrayLikeToArray$2(s,o){(o==null||o>s.length)&&(o=s.length);for(var et=0,tt=new Array(o);et1&&arguments[1]!==void 0?arguments[1]:"none";return o||et},getNavigatorInstance=function s(){return typeof window<"u"&&(window.navigator||navigator)?window.navigator||navigator:!1},isIOS13Check=function s(o){var et=getNavigatorInstance();return et&&et.platform&&(et.platform.indexOf(o)!==-1||et.platform==="MacIntel"&&et.maxTouchPoints>1&&!window.MSStream)},browserPayload=function s(o,et,tt,nt,rt){return{isBrowser:o,browserMajorVersion:setDefaults(et.major),browserFullVersion:setDefaults(et.version),browserName:setDefaults(et.name),engineName:setDefaults(tt.name),engineVersion:setDefaults(tt.version),osName:setDefaults(nt.name),osVersion:setDefaults(nt.version),userAgent:setDefaults(rt)}},mobilePayload=function s(o,et,tt,nt){return _objectSpread2({},o,{vendor:setDefaults(et.vendor),model:setDefaults(et.model),os:setDefaults(tt.name),osVersion:setDefaults(tt.version),ua:setDefaults(nt)})},smartTvPayload=function s(o,et,tt,nt){return{isSmartTV:o,engineName:setDefaults(et.name),engineVersion:setDefaults(et.version),osName:setDefaults(tt.name),osVersion:setDefaults(tt.version),userAgent:setDefaults(nt)}},consolePayload=function s(o,et,tt,nt){return{isConsole:o,engineName:setDefaults(et.name),engineVersion:setDefaults(et.version),osName:setDefaults(tt.name),osVersion:setDefaults(tt.version),userAgent:setDefaults(nt)}},wearablePayload=function s(o,et,tt,nt){return{isWearable:o,engineName:setDefaults(et.name),engineVersion:setDefaults(et.version),osName:setDefaults(tt.name),osVersion:setDefaults(tt.version),userAgent:setDefaults(nt)}},embeddedPayload=function s(o,et,tt,nt,rt){return{isEmbedded:o,vendor:setDefaults(et.vendor),model:setDefaults(et.model),engineName:setDefaults(tt.name),engineVersion:setDefaults(tt.version),osName:setDefaults(nt.name),osVersion:setDefaults(nt.version),userAgent:setDefaults(rt)}};function deviceDetect(s){var o=s?parseUserAgent(s):UAHelper,et=o.device,tt=o.browser,nt=o.engine,rt=o.os,it=o.ua,ot=checkDeviceType(et.type),st=ot.isBrowser,at=ot.isMobile,lt=ot.isTablet,ut=ot.isSmartTV,dt=ot.isConsole,ht=ot.isWearable,ct=ot.isEmbedded;if(st)return browserPayload(st,tt,nt,rt,it);if(ut)return smartTvPayload(ut,nt,rt,it);if(dt)return consolePayload(dt,nt,rt,it);if(at||lt)return mobilePayload(ot,et,rt,it);if(ht)return wearablePayload(ht,nt,rt,it);if(ct)return embeddedPayload(ct,et,nt,rt,it)}var isMobileType=function s(o){var et=o.type;return et===DeviceTypes.Mobile},isTabletType=function s(o){var et=o.type;return et===DeviceTypes.Tablet},isMobileAndTabletType=function s(o){var et=o.type;return et===DeviceTypes.Mobile||et===DeviceTypes.Tablet},isSmartTVType=function s(o){var et=o.type;return et===DeviceTypes.SmartTv},isBrowserType=function s(o){var et=o.type;return et===DeviceTypes.Browser},isWearableType=function s(o){var et=o.type;return et===DeviceTypes.Wearable},isConsoleType=function s(o){var et=o.type;return et===DeviceTypes.Console},isEmbeddedType=function s(o){var et=o.type;return et===DeviceTypes.Embedded},getMobileVendor=function s(o){var et=o.vendor;return setDefaults(et)},getMobileModel=function s(o){var et=o.model;return setDefaults(et)},getDeviceType=function s(o){var et=o.type;return setDefaults(et,"browser")},isAndroidType=function s(o){var et=o.name;return et===OsTypes.Android},isWindowsType=function s(o){var et=o.name;return et===OsTypes.Windows},isMacOsType=function s(o){var et=o.name;return et===OsTypes.MAC_OS},isWinPhoneType=function s(o){var et=o.name;return et===OsTypes.WindowsPhone},isIOSType=function s(o){var et=o.name;return et===OsTypes.IOS},getOsVersion=function s(o){var et=o.version;return setDefaults(et)},getOsName=function s(o){var et=o.name;return setDefaults(et)},isChromeType=function s(o){var et=o.name;return et===BrowserTypes.Chrome},isFirefoxType=function s(o){var et=o.name;return et===BrowserTypes.Firefox},isChromiumType=function s(o){var et=o.name;return et===BrowserTypes.Chromium},isEdgeType=function s(o){var et=o.name;return et===BrowserTypes.Edge},isYandexType=function s(o){var et=o.name;return et===BrowserTypes.Yandex},isSafariType=function s(o){var et=o.name;return et===BrowserTypes.Safari||et===BrowserTypes.MobileSafari},isMobileSafariType=function s(o){var et=o.name;return et===BrowserTypes.MobileSafari},isOperaType=function s(o){var et=o.name;return et===BrowserTypes.Opera},isIEType=function s(o){var et=o.name;return et===BrowserTypes.InternetExplorer||et===BrowserTypes.Ie},isMIUIType=function s(o){var et=o.name;return et===BrowserTypes.MIUI},isSamsungBrowserType=function s(o){var et=o.name;return et===BrowserTypes.SamsungBrowser},getBrowserFullVersion=function s(o){var et=o.version;return setDefaults(et)},getBrowserVersion=function s(o){var et=o.major;return setDefaults(et)},getBrowserName=function s(o){var et=o.name;return setDefaults(et)},getEngineName=function s(o){var et=o.name;return setDefaults(et)},getEngineVersion=function s(o){var et=o.version;return setDefaults(et)},isElectronType=function s(){var o=getNavigatorInstance(),et=o&&o.userAgent&&o.userAgent.toLowerCase();return typeof et=="string"?/electron/.test(et):!1},isEdgeChromiumType=function s(o){return typeof o=="string"&&o.indexOf("Edg/")!==-1},getIOS13=function s(){var o=getNavigatorInstance();return o&&(/iPad|iPhone|iPod/.test(o.platform)||o.platform==="MacIntel"&&o.maxTouchPoints>1)&&!window.MSStream},getIPad13=function s(){return isIOS13Check("iPad")},getIphone13=function s(){return isIOS13Check("iPhone")},getIPod13=function s(){return isIOS13Check("iPod")},getUseragent=function s(o){return setDefaults(o)};function buildSelectorsObject(s){var o=s||UAHelper,et=o.device,tt=o.browser,nt=o.os,rt=o.engine,it=o.ua;return{isSmartTV:isSmartTVType(et),isConsole:isConsoleType(et),isWearable:isWearableType(et),isEmbedded:isEmbeddedType(et),isMobileSafari:isMobileSafariType(tt)||getIPad13(),isChromium:isChromiumType(tt),isMobile:isMobileAndTabletType(et)||getIPad13(),isMobileOnly:isMobileType(et),isTablet:isTabletType(et)||getIPad13(),isBrowser:isBrowserType(et),isDesktop:isBrowserType(et),isAndroid:isAndroidType(nt),isWinPhone:isWinPhoneType(nt),isIOS:isIOSType(nt)||getIPad13(),isChrome:isChromeType(tt),isFirefox:isFirefoxType(tt),isSafari:isSafariType(tt),isOpera:isOperaType(tt),isIE:isIEType(tt),osVersion:getOsVersion(nt),osName:getOsName(nt),fullBrowserVersion:getBrowserFullVersion(tt),browserVersion:getBrowserVersion(tt),browserName:getBrowserName(tt),mobileVendor:getMobileVendor(et),mobileModel:getMobileModel(et),engineName:getEngineName(rt),engineVersion:getEngineVersion(rt),getUA:getUseragent(it),isEdge:isEdgeType(tt)||isEdgeChromiumType(it),isYandex:isYandexType(tt),deviceType:getDeviceType(et),isIOS13:getIOS13(),isIPad13:getIPad13(),isIPhone13:getIphone13(),isIPod13:getIPod13(),isElectron:isElectronType(),isEdgeChromium:isEdgeChromiumType(it),isLegacyEdge:isEdgeType(tt)&&!isEdgeChromiumType(it),isWindows:isWindowsType(nt),isMacOs:isMacOsType(nt),isMIUI:isMIUIType(tt),isSamsungBrowser:isSamsungBrowserType(tt)}}var isSmartTV=isSmartTVType(device),isConsole=isConsoleType(device),isWearable=isWearableType(device),isEmbedded=isEmbeddedType(device),isMobileSafari=isMobileSafariType(browser)||getIPad13(),isChromium=isChromiumType(browser),isMobile=isMobileAndTabletType(device)||getIPad13(),isMobileOnly=isMobileType(device),isTablet=isTabletType(device)||getIPad13(),isBrowser=isBrowserType(device),isDesktop=isBrowserType(device),isAndroid=isAndroidType(os),isWinPhone=isWinPhoneType(os),isIOS=isIOSType(os)||getIPad13(),isChrome=isChromeType(browser),isFirefox=isFirefoxType(browser),isSafari=isSafariType(browser),isOpera=isOperaType(browser),isIE=isIEType(browser),osVersion=getOsVersion(os),osName=getOsName(os),fullBrowserVersion=getBrowserFullVersion(browser),browserVersion=getBrowserVersion(browser),browserName=getBrowserName(browser),mobileVendor=getMobileVendor(device),mobileModel=getMobileModel(device),engineName=getEngineName(engine),engineVersion=getEngineVersion(engine),getUA=getUseragent(ua),isEdge=isEdgeType(browser)||isEdgeChromiumType(ua),isYandex=isYandexType(browser),deviceType=getDeviceType(device),isIOS13=getIOS13(),isIPad13=getIPad13(),isIPhone13=getIphone13(),isIPod13=getIPod13(),isElectron=isElectronType(),isEdgeChromium=isEdgeChromiumType(ua),isLegacyEdge=isEdgeType(browser)&&!isEdgeChromiumType(ua),isWindows=isWindowsType(os),isMacOs=isMacOsType(os),isMIUI=isMIUIType(browser),isSamsungBrowser=isSamsungBrowserType(browser),getSelectorsByUserAgent=function s(o){if(!o||typeof o!="string"){console.error("No valid user agent string was provided");return}var et=parseUserAgent(o),tt=et.device,nt=et.browser,rt=et.os,it=et.engine,ot=et.ua;return buildSelectorsObject({device:tt,browser:nt,os:rt,engine:it,ua:ot})},AndroidView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isAndroid?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},BrowserView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isBrowser?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},IEView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isIE?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},IOSView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isIOS?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},MobileView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isMobile?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},TabletView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isTablet?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},WinPhoneView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isWinPhone?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},MobileOnlyView=function s(o){var et=o.renderWithFragment,tt=o.children;o.viewClassName,o.style;var nt=_objectWithoutProperties(o,["renderWithFragment","children","viewClassName","style"]);return isMobileOnly?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},SmartTVView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isSmartTV?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},ConsoleView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isConsole?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},WearableView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isWearable?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},CustomView=function s(o){var et=o.renderWithFragment,tt=o.children;o.viewClassName,o.style;var nt=o.condition,rt=_objectWithoutProperties(o,["renderWithFragment","children","viewClassName","style","condition"]);return nt?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",rt,tt):null};function withOrientationChange(s){return function(o){_inherits(et,o);function et(tt){var nt;return _classCallCheck(this,et),nt=_possibleConstructorReturn(this,_getPrototypeOf(et).call(this,tt)),nt.isEventListenerAdded=!1,nt.handleOrientationChange=nt.handleOrientationChange.bind(_assertThisInitialized(nt)),nt.onOrientationChange=nt.onOrientationChange.bind(_assertThisInitialized(nt)),nt.onPageLoad=nt.onPageLoad.bind(_assertThisInitialized(nt)),nt.state={isLandscape:!1,isPortrait:!1},nt}return _createClass(et,[{key:"handleOrientationChange",value:function(){this.isEventListenerAdded||(this.isEventListenerAdded=!0);var tt=window.innerWidth>window.innerHeight?90:0;this.setState({isPortrait:tt===0,isLandscape:tt===90})}},{key:"onOrientationChange",value:function(){this.handleOrientationChange()}},{key:"onPageLoad",value:function(){this.handleOrientationChange()}},{key:"componentDidMount",value:function(){(typeof window>"u"?"undefined":_typeof$2(window))!==void 0&&isMobile&&(this.isEventListenerAdded?window.removeEventListener("load",this.onPageLoad,!1):(this.handleOrientationChange(),window.addEventListener("load",this.onPageLoad,!1)),window.addEventListener("resize",this.onOrientationChange,!1))}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.onOrientationChange,!1)}},{key:"render",value:function(){return React__default.createElement(s,_extends({},this.props,{isLandscape:this.state.isLandscape,isPortrait:this.state.isPortrait}))}}]),et}(React__default.Component)}function useMobileOrientation(){var s=React.useState(function(){var rt=window.innerWidth>window.innerHeight?90:0;return{isPortrait:rt===0,isLandscape:rt===90,orientation:rt===0?"portrait":"landscape"}}),o=_slicedToArray$2(s,2),et=o[0],tt=o[1],nt=React.useCallback(function(){var rt=window.innerWidth>window.innerHeight?90:0,it={isPortrait:rt===0,isLandscape:rt===90,orientation:rt===0?"portrait":"landscape"};et.orientation!==it.orientation&&tt(it)},[et.orientation]);return React.useEffect(function(){return(typeof window>"u"?"undefined":_typeof$2(window))!==void 0&&isMobile&&(nt(),window.addEventListener("load",nt,!1),window.addEventListener("resize",nt,!1)),function(){window.removeEventListener("resize",nt,!1),window.removeEventListener("load",nt,!1)}},[nt]),et}function useDeviceData(s){var o=s||window.navigator.userAgent;return parseUserAgent(o)}function useDeviceSelectors(s){var o=s||window.navigator.userAgent,et=useDeviceData(o),tt=buildSelectorsObject(et);return[tt,et]}lib$3.AndroidView=AndroidView;lib$3.BrowserTypes=BrowserTypes;lib$3.BrowserView=BrowserView;lib$3.ConsoleView=ConsoleView;lib$3.CustomView=CustomView;lib$3.IEView=IEView;lib$3.IOSView=IOSView;lib$3.MobileOnlyView=MobileOnlyView;lib$3.MobileView=MobileView;lib$3.OsTypes=OsTypes;lib$3.SmartTVView=SmartTVView;lib$3.TabletView=TabletView;lib$3.WearableView=WearableView;lib$3.WinPhoneView=WinPhoneView;lib$3.browserName=browserName;lib$3.browserVersion=browserVersion;lib$3.deviceDetect=deviceDetect;lib$3.deviceType=deviceType;lib$3.engineName=engineName;lib$3.engineVersion=engineVersion;lib$3.fullBrowserVersion=fullBrowserVersion;lib$3.getSelectorsByUserAgent=getSelectorsByUserAgent;lib$3.getUA=getUA;lib$3.isAndroid=isAndroid;lib$3.isBrowser=isBrowser;lib$3.isChrome=isChrome;lib$3.isChromium=isChromium;lib$3.isConsole=isConsole;lib$3.isDesktop=isDesktop;lib$3.isEdge=isEdge;lib$3.isEdgeChromium=isEdgeChromium;lib$3.isElectron=isElectron;lib$3.isEmbedded=isEmbedded;lib$3.isFirefox=isFirefox;lib$3.isIE=isIE;lib$3.isIOS=isIOS;lib$3.isIOS13=isIOS13;lib$3.isIPad13=isIPad13;lib$3.isIPhone13=isIPhone13;lib$3.isIPod13=isIPod13;lib$3.isLegacyEdge=isLegacyEdge;lib$3.isMIUI=isMIUI;lib$3.isMacOs=isMacOs;lib$3.isMobile=isMobile;lib$3.isMobileOnly=isMobileOnly;lib$3.isMobileSafari=isMobileSafari;lib$3.isOpera=isOpera;lib$3.isSafari=isSafari;lib$3.isSamsungBrowser=isSamsungBrowser;lib$3.isSmartTV=isSmartTV;lib$3.isTablet=isTablet;lib$3.isWearable=isWearable;lib$3.isWinPhone=isWinPhone;lib$3.isWindows=isWindows;lib$3.isYandex=isYandex;lib$3.mobileModel=mobileModel;lib$3.mobileVendor=mobileVendor;lib$3.osName=osName;lib$3.osVersion=osVersion;lib$3.parseUserAgent=parseUserAgent;lib$3.setUserAgent=setUserAgent;lib$3.useDeviceData=useDeviceData;lib$3.useDeviceSelectors=useDeviceSelectors;lib$3.useMobileOrientation=useMobileOrientation;lib$3.withOrientationChange=withOrientationChange;/*! * @kurkle/color v0.3.2 * https://github.com/kurkle/color#readme @@ -4805,7 +4805,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho * https://www.chartjs.org * (c) 2023 Chart.js Contributors * Released under the MIT License - */class Animator{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(o,et,tt,nt){const rt=et.listeners[nt],it=et.duration;rt.forEach(ot=>ot({chart:o,initial:et.initial,numSteps:it,currentStep:Math.min(tt-et.start,it)}))}_refresh(){this._request||(this._running=!0,this._request=requestAnimFrame.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(o=Date.now()){let et=0;this._charts.forEach((tt,nt)=>{if(!tt.running||!tt.items.length)return;const rt=tt.items;let it=rt.length-1,ot=!1,st;for(;it>=0;--it)st=rt[it],st._active?(st._total>tt.duration&&(tt.duration=st._total),st.tick(o),ot=!0):(rt[it]=rt[rt.length-1],rt.pop());ot&&(nt.draw(),this._notify(nt,tt,o,"progress")),rt.length||(tt.running=!1,this._notify(nt,tt,o,"complete"),tt.initial=!1),et+=rt.length}),this._lastDate=o,et===0&&(this._running=!1)}_getAnims(o){const et=this._charts;let tt=et.get(o);return tt||(tt={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},et.set(o,tt)),tt}listen(o,et,tt){this._getAnims(o).listeners[et].push(tt)}add(o,et){!et||!et.length||this._getAnims(o).items.push(...et)}has(o){return this._getAnims(o).items.length>0}start(o){const et=this._charts.get(o);et&&(et.running=!0,et.start=Date.now(),et.duration=et.items.reduce((tt,nt)=>Math.max(tt,nt._duration),0),this._refresh())}running(o){if(!this._running)return!1;const et=this._charts.get(o);return!(!et||!et.running||!et.items.length)}stop(o){const et=this._charts.get(o);if(!et||!et.items.length)return;const tt=et.items;let nt=tt.length-1;for(;nt>=0;--nt)tt[nt].cancel();et.items=[],this._notify(o,et,Date.now(),"complete")}remove(o){return this._charts.delete(o)}}var animator=new Animator;const transparent="transparent",interpolators={boolean(s,o,et){return et>.5?o:s},color(s,o,et){const tt=color(s||transparent),nt=tt.valid&&color(o||transparent);return nt&&nt.valid?nt.mix(tt,et).hexString():o},number(s,o,et){return s+(o-s)*et}};class Animation{constructor(o,et,tt,nt){const rt=et[tt];nt=resolve([o.to,nt,rt,o.from]);const it=resolve([o.from,rt,nt]);this._active=!0,this._fn=o.fn||interpolators[o.type||typeof it],this._easing=effects[o.easing]||effects.linear,this._start=Math.floor(Date.now()+(o.delay||0)),this._duration=this._total=Math.floor(o.duration),this._loop=!!o.loop,this._target=et,this._prop=tt,this._from=it,this._to=nt,this._promises=void 0}active(){return this._active}update(o,et,tt){if(this._active){this._notify(!1);const nt=this._target[this._prop],rt=tt-this._start,it=this._duration-rt;this._start=tt,this._duration=Math.floor(Math.max(it,o.duration)),this._total+=rt,this._loop=!!o.loop,this._to=resolve([o.to,et,nt,o.from]),this._from=resolve([o.from,nt,et])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(o){const et=o-this._start,tt=this._duration,nt=this._prop,rt=this._from,it=this._loop,ot=this._to;let st;if(this._active=rt!==ot&&(it||et1?2-st:st,st=this._easing(Math.min(1,Math.max(0,st))),this._target[nt]=this._fn(rt,ot,st)}wait(){const o=this._promises||(this._promises=[]);return new Promise((et,tt)=>{o.push({res:et,rej:tt})})}_notify(o){const et=o?"res":"rej",tt=this._promises||[];for(let nt=0;nt{const rt=o[nt];if(!isObject$2(rt))return;const it={};for(const ot of et)it[ot]=rt[ot];(isArray$4(rt.properties)&&rt.properties||[nt]).forEach(ot=>{(ot===nt||!tt.has(ot))&&tt.set(ot,it)})})}_animateOptions(o,et){const tt=et.options,nt=resolveTargetOptions(o,tt);if(!nt)return[];const rt=this._createAnimations(nt,tt);return tt.$shared&&awaitAll(o.options.$animations,tt).then(()=>{o.options=tt},()=>{}),rt}_createAnimations(o,et){const tt=this._properties,nt=[],rt=o.$animations||(o.$animations={}),it=Object.keys(et),ot=Date.now();let st;for(st=it.length-1;st>=0;--st){const at=it[st];if(at.charAt(0)==="$")continue;if(at==="options"){nt.push(...this._animateOptions(o,et));continue}const lt=et[at];let ut=rt[at];const dt=tt.get(at);if(ut)if(dt&&ut.active()){ut.update(dt,lt,ot);continue}else ut.cancel();if(!dt||!dt.duration){o[at]=lt;continue}rt[at]=ut=new Animation(dt,o,at,lt),nt.push(ut)}return nt}update(o,et){if(this._properties.size===0){Object.assign(o,et);return}const tt=this._createAnimations(o,et);if(tt.length)return animator.add(this._chart,tt),!0}}function awaitAll(s,o){const et=[],tt=Object.keys(o);for(let nt=0;nt0||!et&&rt<0)return nt.index}return null}function updateStacks(s,o){const{chart:et,_cachedMeta:tt}=s,nt=et._stacks||(et._stacks={}),{iScale:rt,vScale:it,index:ot}=tt,st=rt.axis,at=it.axis,lt=getStackKey(rt,it,tt),ut=o.length;let dt;for(let ht=0;htet[tt].axis===o).shift()}function createDatasetContext(s,o){return createContext(s,{active:!1,dataset:void 0,datasetIndex:o,index:o,mode:"default",type:"dataset"})}function createDataContext(s,o,et){return createContext(s,{active:!1,dataIndex:o,parsed:void 0,raw:void 0,element:et,index:o,mode:"default",type:"data"})}function clearStacks(s,o){const et=s.controller.index,tt=s.vScale&&s.vScale.axis;if(tt){o=o||s._parsed;for(const nt of o){const rt=nt._stacks;if(!rt||rt[tt]===void 0||rt[tt][et]===void 0)return;delete rt[tt][et],rt[tt]._visualValues!==void 0&&rt[tt]._visualValues[et]!==void 0&&delete rt[tt]._visualValues[et]}}}const isDirectUpdateMode=s=>s==="reset"||s==="none",cloneIfNotShared=(s,o)=>o?s:Object.assign({},s),createStack=(s,o,et)=>s&&!o.hidden&&o._stacked&&{keys:getSortedDatasetIndices(et,!0),values:null};class DatasetController{constructor(o,et){this.chart=o,this._ctx=o.ctx,this.index=et,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const o=this._cachedMeta;this.configure(),this.linkScales(),o._stacked=isStacked(o.vScale,o),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(o){this.index!==o&&clearStacks(this._cachedMeta),this.index=o}linkScales(){const o=this.chart,et=this._cachedMeta,tt=this.getDataset(),nt=(ut,dt,ht,ct)=>ut==="x"?dt:ut==="r"?ct:ht,rt=et.xAxisID=valueOrDefault(tt.xAxisID,getFirstScaleId(o,"x")),it=et.yAxisID=valueOrDefault(tt.yAxisID,getFirstScaleId(o,"y")),ot=et.rAxisID=valueOrDefault(tt.rAxisID,getFirstScaleId(o,"r")),st=et.indexAxis,at=et.iAxisID=nt(st,rt,it,ot),lt=et.vAxisID=nt(st,it,rt,ot);et.xScale=this.getScaleForId(rt),et.yScale=this.getScaleForId(it),et.rScale=this.getScaleForId(ot),et.iScale=this.getScaleForId(at),et.vScale=this.getScaleForId(lt)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(o){return this.chart.scales[o]}_getOtherScale(o){const et=this._cachedMeta;return o===et.iScale?et.vScale:et.iScale}reset(){this._update("reset")}_destroy(){const o=this._cachedMeta;this._data&&unlistenArrayEvents(this._data,this),o._stacked&&clearStacks(o)}_dataCheck(){const o=this.getDataset(),et=o.data||(o.data=[]),tt=this._data;if(isObject$2(et))this._data=convertObjectDataToArray(et);else if(tt!==et){if(tt){unlistenArrayEvents(tt,this);const nt=this._cachedMeta;clearStacks(nt),nt._parsed=[]}et&&Object.isExtensible(et)&&listenArrayEvents(et,this),this._syncList=[],this._data=et}}addElements(){const o=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(o.dataset=new this.datasetElementType)}buildOrUpdateElements(o){const et=this._cachedMeta,tt=this.getDataset();let nt=!1;this._dataCheck();const rt=et._stacked;et._stacked=isStacked(et.vScale,et),et.stack!==tt.stack&&(nt=!0,clearStacks(et),et.stack=tt.stack),this._resyncElements(o),(nt||rt!==et._stacked)&&updateStacks(this,et._parsed)}configure(){const o=this.chart.config,et=o.datasetScopeKeys(this._type),tt=o.getOptionScopes(this.getDataset(),et,!0);this.options=o.createResolver(tt,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(o,et){const{_cachedMeta:tt,_data:nt}=this,{iScale:rt,_stacked:it}=tt,ot=rt.axis;let st=o===0&&et===nt.length?!0:tt._sorted,at=o>0&&tt._parsed[o-1],lt,ut,dt;if(this._parsing===!1)tt._parsed=nt,tt._sorted=!0,dt=nt;else{isArray$4(nt[o])?dt=this.parseArrayData(tt,nt,o,et):isObject$2(nt[o])?dt=this.parseObjectData(tt,nt,o,et):dt=this.parsePrimitiveData(tt,nt,o,et);const ht=()=>ut[ot]===null||at&&ut[ot]pt||ut=0;--dt)if(!ct()){this.updateRangeFromParsed(at,o,ht,st);break}}return at}getAllParsedValues(o){const et=this._cachedMeta._parsed,tt=[];let nt,rt,it;for(nt=0,rt=et.length;nt=0&&othis.getContext(tt,nt,et),pt=at.resolveNamedOptions(dt,ht,ct,ut);return pt.$shared&&(pt.$shared=st,rt[it]=Object.freeze(cloneIfNotShared(pt,st))),pt}_resolveAnimations(o,et,tt){const nt=this.chart,rt=this._cachedDataOpts,it=`animation-${et}`,ot=rt[it];if(ot)return ot;let st;if(nt.options.animation!==!1){const lt=this.chart.config,ut=lt.datasetAnimationScopeKeys(this._type,et),dt=lt.getOptionScopes(this.getDataset(),ut);st=lt.createResolver(dt,this.getContext(o,tt,et))}const at=new Animations(nt,st&&st.animations);return st&&st._cacheable&&(rt[it]=Object.freeze(at)),at}getSharedOptions(o){if(o.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},o))}includeOptions(o,et){return!et||isDirectUpdateMode(o)||this.chart._animationsDisabled}_getSharedOptions(o,et){const tt=this.resolveDataElementOptions(o,et),nt=this._sharedOptions,rt=this.getSharedOptions(tt),it=this.includeOptions(et,rt)||rt!==nt;return this.updateSharedOptions(rt,et,tt),{sharedOptions:rt,includeOptions:it}}updateElement(o,et,tt,nt){isDirectUpdateMode(nt)?Object.assign(o,tt):this._resolveAnimations(et,nt).update(o,tt)}updateSharedOptions(o,et,tt){o&&!isDirectUpdateMode(et)&&this._resolveAnimations(void 0,et).update(o,tt)}_setStyle(o,et,tt,nt){o.active=nt;const rt=this.getStyle(et,nt);this._resolveAnimations(et,tt,nt).update(o,{options:!nt&&this.getSharedOptions(rt)||rt})}removeHoverStyle(o,et,tt){this._setStyle(o,tt,"active",!1)}setHoverStyle(o,et,tt){this._setStyle(o,tt,"active",!0)}_removeDatasetHoverStyle(){const o=this._cachedMeta.dataset;o&&this._setStyle(o,void 0,"active",!1)}_setDatasetHoverStyle(){const o=this._cachedMeta.dataset;o&&this._setStyle(o,void 0,"active",!0)}_resyncElements(o){const et=this._data,tt=this._cachedMeta.data;for(const[ot,st,at]of this._syncList)this[ot](st,at);this._syncList=[];const nt=tt.length,rt=et.length,it=Math.min(rt,nt);it&&this.parse(0,it),rt>nt?this._insertElements(nt,rt-nt,o):rt{for(at.length+=et,ot=at.length-1;ot>=it;ot--)at[ot]=at[ot-et]};for(st(rt),ot=o;otnt-rt))}return s._cache.$bar}function computeMinSampleSize(s){const o=s.iScale,et=getAllScaleValues(o,s.type);let tt=o._length,nt,rt,it,ot;const st=()=>{it===32767||it===-32768||(defined$3(ot)&&(tt=Math.min(tt,Math.abs(it-ot)||tt)),ot=it)};for(nt=0,rt=et.length;nt0?nt[s-1]:null,ot=sMath.abs(ot)&&(st=ot,at=it),o[et.axis]=at,o._custom={barStart:st,barEnd:at,start:nt,end:rt,min:it,max:ot}}function parseValue(s,o,et,tt){return isArray$4(s)?parseFloatBar(s,o,et,tt):o[et.axis]=et.parse(s,tt),o}function parseArrayOrPrimitive(s,o,et,tt){const nt=s.iScale,rt=s.vScale,it=nt.getLabels(),ot=nt===rt,st=[];let at,lt,ut,dt;for(at=et,lt=et+tt;at=et?1:-1)}function borderProps(s){let o,et,tt,nt,rt;return s.horizontal?(o=s.base>s.x,et="left",tt="right"):(o=s.basest.controller.options.grouped),rt=tt.options.stacked,it=[],ot=st=>{const at=st.controller.getParsed(et),lt=at&&at[st.vScale.axis];if(isNullOrUndef(lt)||isNaN(lt))return!0};for(const st of nt)if(!(et!==void 0&&ot(st))&&((rt===!1||it.indexOf(st.stack)===-1||rt===void 0&&st.stack===void 0)&&it.push(st.stack),st.index===o))break;return it.length||it.push(void 0),it}_getStackCount(o){return this._getStacks(void 0,o).length}_getStackIndex(o,et,tt){const nt=this._getStacks(o,tt),rt=et!==void 0?nt.indexOf(et):-1;return rt===-1?nt.length-1:rt}_getRuler(){const o=this.options,et=this._cachedMeta,tt=et.iScale,nt=[];let rt,it;for(rt=0,it=et.data.length;rt=0;--tt)et=Math.max(et,o[tt].size(this.resolveDataElementOptions(tt))/2);return et>0&&et}getLabelAndValue(o){const et=this._cachedMeta,tt=this.chart.data.labels||[],{xScale:nt,yScale:rt}=et,it=this.getParsed(o),ot=nt.getLabelForValue(it.x),st=rt.getLabelForValue(it.y),at=it._custom;return{label:tt[o]||"",value:"("+ot+", "+st+(at?", "+at:"")+")"}}update(o){const et=this._cachedMeta.data;this.updateElements(et,0,et.length,o)}updateElements(o,et,tt,nt){const rt=nt==="reset",{iScale:it,vScale:ot}=this._cachedMeta,{sharedOptions:st,includeOptions:at}=this._getSharedOptions(et,nt),lt=it.axis,ut=ot.axis;for(let dt=et;dt_angleBetween(Ut,ot,st,!0)?1:Math.max(Ft,Ft*et,mt,mt*et),ct=(Ut,Ft,mt)=>_angleBetween(Ut,ot,st,!0)?-1:Math.min(Ft,Ft*et,mt,mt*et),pt=ht(0,at,ut),ft=ht(HALF_PI,lt,dt),gt=ct(PI,at,ut),yt=ct(PI+HALF_PI,lt,dt);tt=(pt-gt)/2,nt=(ft-yt)/2,rt=-(pt+gt)/2,it=-(ft+yt)/2}return{ratioX:tt,ratioY:nt,offsetX:rt,offsetY:it}}class DoughnutController extends DatasetController{constructor(o,et){super(o,et),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(o,et){const tt=this.getDataset().data,nt=this._cachedMeta;if(this._parsing===!1)nt._parsed=tt;else{let rt=st=>+tt[st];if(isObject$2(tt[o])){const{key:st="value"}=this._parsing;rt=at=>+resolveObjectKey(tt[at],st)}let it,ot;for(it=o,ot=o+et;it0&&!isNaN(o)?TAU$1*(Math.abs(o)/et):0}getLabelAndValue(o){const et=this._cachedMeta,tt=this.chart,nt=tt.data.labels||[],rt=formatNumber(et._parsed[o],tt.options.locale);return{label:nt[o]||"",value:rt}}getMaxBorderWidth(o){let et=0;const tt=this.chart;let nt,rt,it,ot,st;if(!o){for(nt=0,rt=tt.data.datasets.length;nts!=="spacing",_indexable:s=>s!=="spacing"}),He(DoughnutController,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(s){const o=s.data;if(o.labels.length&&o.datasets.length){const{labels:{pointStyle:et,color:tt}}=s.legend.options;return o.labels.map((nt,rt)=>{const it=s.getDatasetMeta(0).controller.getStyle(rt);return{text:nt,fillStyle:it.backgroundColor,strokeStyle:it.borderColor,fontColor:tt,lineWidth:it.borderWidth,pointStyle:et,hidden:!s.getDataVisibility(rt),index:rt}})}return[]}},onClick(s,o,et){et.chart.toggleDataVisibility(o.index),et.chart.update()}}}});class LineController extends DatasetController{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(o){const et=this._cachedMeta,{dataset:tt,data:nt=[],_dataset:rt}=et,it=this.chart._animationsDisabled;let{start:ot,count:st}=_getStartAndCountOfVisiblePoints(et,nt,it);this._drawStart=ot,this._drawCount=st,_scaleRangesChanged(et)&&(ot=0,st=nt.length),tt._chart=this.chart,tt._datasetIndex=this.index,tt._decimated=!!rt._decimated,tt.points=nt;const at=this.resolveDatasetElementOptions(o);this.options.showLine||(at.borderWidth=0),at.segment=this.options.segment,this.updateElement(tt,void 0,{animated:!it,options:at},o),this.updateElements(nt,ot,st,o)}updateElements(o,et,tt,nt){const rt=nt==="reset",{iScale:it,vScale:ot,_stacked:st,_dataset:at}=this._cachedMeta,{sharedOptions:lt,includeOptions:ut}=this._getSharedOptions(et,nt),dt=it.axis,ht=ot.axis,{spanGaps:ct,segment:pt}=this.options,ft=isNumber$1(ct)?ct:Number.POSITIVE_INFINITY,gt=this.chart._animationsDisabled||rt||nt==="none",yt=et+tt,Ut=o.length;let Ft=et>0&&this.getParsed(et-1);for(let mt=0;mt=yt){At.skip=!0;continue}const Lt=this.getParsed(mt),Rt=isNullOrUndef(Lt[ht]),St=At[dt]=it.getPixelForValue(Lt[dt],mt),Tt=At[ht]=rt||Rt?ot.getBasePixel():ot.getPixelForValue(st?this.applyStack(ot,Lt,st):Lt[ht],mt);At.skip=isNaN(St)||isNaN(Tt)||Rt,At.stop=mt>0&&Math.abs(Lt[dt]-Ft[dt])>ft,pt&&(At.parsed=Lt,At.raw=at.data[mt]),ut&&(At.options=lt||this.resolveDataElementOptions(mt,vt.active?"active":nt)),gt||this.updateElement(vt,mt,At,nt),Ft=Lt}}getMaxOverflow(){const o=this._cachedMeta,et=o.dataset,tt=et.options&&et.options.borderWidth||0,nt=o.data||[];if(!nt.length)return tt;const rt=nt[0].size(this.resolveDataElementOptions(0)),it=nt[nt.length-1].size(this.resolveDataElementOptions(nt.length-1));return Math.max(tt,rt,it)/2}draw(){const o=this._cachedMeta;o.dataset.updateControlPoints(this.chart.chartArea,o.iScale.axis),super.draw()}}He(LineController,"id","line"),He(LineController,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),He(LineController,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});class PolarAreaController extends DatasetController{constructor(o,et){super(o,et),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(o){const et=this._cachedMeta,tt=this.chart,nt=tt.data.labels||[],rt=formatNumber(et._parsed[o].r,tt.options.locale);return{label:nt[o]||"",value:rt}}parseObjectData(o,et,tt,nt){return _parseObjectDataRadialScale.bind(this)(o,et,tt,nt)}update(o){const et=this._cachedMeta.data;this._updateRadius(),this.updateElements(et,0,et.length,o)}getMinMax(){const o=this._cachedMeta,et={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return o.data.forEach((tt,nt)=>{const rt=this.getParsed(nt).r;!isNaN(rt)&&this.chart.getDataVisibility(nt)&&(rtet.max&&(et.max=rt))}),et}_updateRadius(){const o=this.chart,et=o.chartArea,tt=o.options,nt=Math.min(et.right-et.left,et.bottom-et.top),rt=Math.max(nt/2,0),it=Math.max(tt.cutoutPercentage?rt/100*tt.cutoutPercentage:1,0),ot=(rt-it)/o.getVisibleDatasetCount();this.outerRadius=rt-ot*this.index,this.innerRadius=this.outerRadius-ot}updateElements(o,et,tt,nt){const rt=nt==="reset",it=this.chart,ot=it.options.animation,st=this._cachedMeta.rScale,at=st.xCenter,lt=st.yCenter,ut=st.getIndexAngle(0)-.5*PI;let dt=ut,ht;const ct=360/this.countVisibleElements();for(ht=0;ht{!isNaN(this.getParsed(nt).r)&&this.chart.getDataVisibility(nt)&&et++}),et}_computeAngle(o,et,tt){return this.chart.getDataVisibility(o)?toRadians$1(this.resolveDataElementOptions(o,et).angle||tt):0}}He(PolarAreaController,"id","polarArea"),He(PolarAreaController,"defaults",{dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0}),He(PolarAreaController,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(s){const o=s.data;if(o.labels.length&&o.datasets.length){const{labels:{pointStyle:et,color:tt}}=s.legend.options;return o.labels.map((nt,rt)=>{const it=s.getDatasetMeta(0).controller.getStyle(rt);return{text:nt,fillStyle:it.backgroundColor,strokeStyle:it.borderColor,fontColor:tt,lineWidth:it.borderWidth,pointStyle:et,hidden:!s.getDataVisibility(rt),index:rt}})}return[]}},onClick(s,o,et){et.chart.toggleDataVisibility(o.index),et.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}});class PieController extends DoughnutController{}He(PieController,"id","pie"),He(PieController,"defaults",{cutout:0,rotation:0,circumference:360,radius:"100%"});class RadarController extends DatasetController{getLabelAndValue(o){const et=this._cachedMeta.vScale,tt=this.getParsed(o);return{label:et.getLabels()[o],value:""+et.getLabelForValue(tt[et.axis])}}parseObjectData(o,et,tt,nt){return _parseObjectDataRadialScale.bind(this)(o,et,tt,nt)}update(o){const et=this._cachedMeta,tt=et.dataset,nt=et.data||[],rt=et.iScale.getLabels();if(tt.points=nt,o!=="resize"){const it=this.resolveDatasetElementOptions(o);this.options.showLine||(it.borderWidth=0);const ot={_loop:!0,_fullLoop:rt.length===nt.length,options:it};this.updateElement(tt,void 0,ot,o)}this.updateElements(nt,0,nt.length,o)}updateElements(o,et,tt,nt){const rt=this._cachedMeta.rScale,it=nt==="reset";for(let ot=et;ot0&&this.getParsed(et-1);for(let Ft=et;Ft0&&Math.abs(vt[ht]-Ut[ht])>gt,ft&&(At.parsed=vt,At.raw=at.data[Ft]),dt&&(At.options=ut||this.resolveDataElementOptions(Ft,mt.active?"active":nt)),yt||this.updateElement(mt,Ft,At,nt),Ut=vt}this.updateSharedOptions(ut,nt,lt)}getMaxOverflow(){const o=this._cachedMeta,et=o.data||[];if(!this.options.showLine){let ot=0;for(let st=et.length-1;st>=0;--st)ot=Math.max(ot,et[st].size(this.resolveDataElementOptions(st))/2);return ot>0&&ot}const tt=o.dataset,nt=tt.options&&tt.options.borderWidth||0;if(!et.length)return nt;const rt=et[0].size(this.resolveDataElementOptions(0)),it=et[et.length-1].size(this.resolveDataElementOptions(et.length-1));return Math.max(nt,rt,it)/2}}He(ScatterController,"id","scatter"),He(ScatterController,"defaults",{datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1}),He(ScatterController,"overrides",{interaction:{mode:"point"},scales:{x:{type:"linear"},y:{type:"linear"}}});var controllers=Object.freeze({__proto__:null,BarController,BubbleController,DoughnutController,LineController,PolarAreaController,PieController,RadarController,ScatterController});function abstract(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class DateAdapterBase{static override(o){Object.assign(DateAdapterBase.prototype,o)}constructor(o){this.options=o||{}}init(){}formats(){return abstract()}parse(){return abstract()}format(){return abstract()}add(){return abstract()}diff(){return abstract()}startOf(){return abstract()}endOf(){return abstract()}}var adapters={_date:DateAdapterBase};function binarySearch(s,o,et,tt){const{controller:nt,data:rt,_sorted:it}=s,ot=nt._cachedMeta.iScale;if(ot&&o===ot.axis&&o!=="r"&&it&&rt.length){const st=ot._reversePixels?_rlookupByKey:_lookupByKey;if(tt){if(nt._sharedOptions){const at=rt[0],lt=typeof at.getRange=="function"&&at.getRange(o);if(lt){const ut=st(rt,o,et-lt),dt=st(rt,o,et+lt);return{lo:ut.lo,hi:dt.hi}}}}else return st(rt,o,et)}return{lo:0,hi:rt.length-1}}function evaluateInteractionItems(s,o,et,tt,nt){const rt=s.getSortedVisibleDatasetMetas(),it=et[o];for(let ot=0,st=rt.length;ot{st[it](o[et],nt)&&(rt.push({element:st,datasetIndex:at,index:lt}),ot=ot||st.inRange(o.x,o.y,nt))}),tt&&!ot?[]:rt}var Interaction={evaluateInteractionItems,modes:{index(s,o,et,tt){const nt=getRelativePosition(o,s),rt=et.axis||"x",it=et.includeInvisible||!1,ot=et.intersect?getIntersectItems(s,nt,rt,tt,it):getNearestItems(s,nt,rt,!1,tt,it),st=[];return ot.length?(s.getSortedVisibleDatasetMetas().forEach(at=>{const lt=ot[0].index,ut=at.data[lt];ut&&!ut.skip&&st.push({element:ut,datasetIndex:at.index,index:lt})}),st):[]},dataset(s,o,et,tt){const nt=getRelativePosition(o,s),rt=et.axis||"xy",it=et.includeInvisible||!1;let ot=et.intersect?getIntersectItems(s,nt,rt,tt,it):getNearestItems(s,nt,rt,!1,tt,it);if(ot.length>0){const st=ot[0].datasetIndex,at=s.getDatasetMeta(st).data;ot=[];for(let lt=0;ltet.pos===o)}function filterDynamicPositionByAxis(s,o){return s.filter(et=>STATIC_POSITIONS.indexOf(et.pos)===-1&&et.box.axis===o)}function sortByWeight(s,o){return s.sort((et,tt)=>{const nt=o?tt:et,rt=o?et:tt;return nt.weight===rt.weight?nt.index-rt.index:nt.weight-rt.weight})}function wrapBoxes(s){const o=[];let et,tt,nt,rt,it,ot;for(et=0,tt=(s||[]).length;etat.box.fullSize),!0),tt=sortByWeight(filterByPosition(o,"left"),!0),nt=sortByWeight(filterByPosition(o,"right")),rt=sortByWeight(filterByPosition(o,"top"),!0),it=sortByWeight(filterByPosition(o,"bottom")),ot=filterDynamicPositionByAxis(o,"x"),st=filterDynamicPositionByAxis(o,"y");return{fullSize:et,leftAndTop:tt.concat(rt),rightAndBottom:nt.concat(st).concat(it).concat(ot),chartArea:filterByPosition(o,"chartArea"),vertical:tt.concat(nt).concat(st),horizontal:rt.concat(it).concat(ot)}}function getCombinedMax(s,o,et,tt){return Math.max(s[et],o[et])+Math.max(s[tt],o[tt])}function updateMaxPadding(s,o){s.top=Math.max(s.top,o.top),s.left=Math.max(s.left,o.left),s.bottom=Math.max(s.bottom,o.bottom),s.right=Math.max(s.right,o.right)}function updateDims(s,o,et,tt){const{pos:nt,box:rt}=et,it=s.maxPadding;if(!isObject$2(nt)){et.size&&(s[nt]-=et.size);const ut=tt[et.stack]||{size:0,count:1};ut.size=Math.max(ut.size,et.horizontal?rt.height:rt.width),et.size=ut.size/ut.count,s[nt]+=et.size}rt.getPadding&&updateMaxPadding(it,rt.getPadding());const ot=Math.max(0,o.outerWidth-getCombinedMax(it,s,"left","right")),st=Math.max(0,o.outerHeight-getCombinedMax(it,s,"top","bottom")),at=ot!==s.w,lt=st!==s.h;return s.w=ot,s.h=st,et.horizontal?{same:at,other:lt}:{same:lt,other:at}}function handleMaxPadding(s){const o=s.maxPadding;function et(tt){const nt=Math.max(o[tt]-s[tt],0);return s[tt]+=nt,nt}s.y+=et("top"),s.x+=et("left"),et("right"),et("bottom")}function getMargins(s,o){const et=o.maxPadding;function tt(nt){const rt={left:0,top:0,right:0,bottom:0};return nt.forEach(it=>{rt[it]=Math.max(o[it],et[it])}),rt}return tt(s?["left","right"]:["top","bottom"])}function fitBoxes(s,o,et,tt){const nt=[];let rt,it,ot,st,at,lt;for(rt=0,it=s.length,at=0;rt{typeof pt.beforeLayout=="function"&&pt.beforeLayout()});const lt=st.reduce((pt,ft)=>ft.box.options&&ft.box.options.display===!1?pt:pt+1,0)||1,ut=Object.freeze({outerWidth:o,outerHeight:et,padding:nt,availableWidth:rt,availableHeight:it,vBoxMaxWidth:rt/2/lt,hBoxMaxHeight:it/2}),dt=Object.assign({},nt);updateMaxPadding(dt,toPadding(tt));const ht=Object.assign({maxPadding:dt,w:rt,h:it,x:nt.left,y:nt.top},nt),ct=setLayoutDims(st.concat(at),ut);fitBoxes(ot.fullSize,ht,ut,ct),fitBoxes(st,ht,ut,ct),fitBoxes(at,ht,ut,ct)&&fitBoxes(st,ht,ut,ct),handleMaxPadding(ht),placeBoxes(ot.leftAndTop,ht,ut,ct),ht.x+=ht.w,ht.y+=ht.h,placeBoxes(ot.rightAndBottom,ht,ut,ct),s.chartArea={left:ht.left,top:ht.top,right:ht.left+ht.w,bottom:ht.top+ht.h,height:ht.h,width:ht.w},each(ot.chartArea,pt=>{const ft=pt.box;Object.assign(ft,s.chartArea),ft.update(ht.w,ht.h,{left:0,top:0,right:0,bottom:0})})}};class BasePlatform{acquireContext(o,et){}releaseContext(o){return!1}addEventListener(o,et,tt){}removeEventListener(o,et,tt){}getDevicePixelRatio(){return 1}getMaximumSize(o,et,tt,nt){return et=Math.max(0,et||o.width),tt=tt||o.height,{width:et,height:Math.max(0,nt?Math.floor(et/nt):tt)}}isAttached(o){return!0}updateConfig(o){}}class BasicPlatform extends BasePlatform{acquireContext(o){return o&&o.getContext&&o.getContext("2d")||null}updateConfig(o){o.options.animation=!1}}const EXPANDO_KEY="$chartjs",EVENT_TYPES={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},isNullOrEmpty=s=>s===null||s==="";function initCanvas(s,o){const et=s.style,tt=s.getAttribute("height"),nt=s.getAttribute("width");if(s[EXPANDO_KEY]={initial:{height:tt,width:nt,style:{display:et.display,height:et.height,width:et.width}}},et.display=et.display||"block",et.boxSizing=et.boxSizing||"border-box",isNullOrEmpty(nt)){const rt=readUsedSize(s,"width");rt!==void 0&&(s.width=rt)}if(isNullOrEmpty(tt))if(s.style.height==="")s.height=s.width/(o||2);else{const rt=readUsedSize(s,"height");rt!==void 0&&(s.height=rt)}return s}const eventListenerOptions=supportsEventListenerOptions?{passive:!0}:!1;function addListener(s,o,et){s.addEventListener(o,et,eventListenerOptions)}function removeListener(s,o,et){s.canvas.removeEventListener(o,et,eventListenerOptions)}function fromNativeEvent(s,o){const et=EVENT_TYPES[s.type]||s.type,{x:tt,y:nt}=getRelativePosition(s,o);return{type:et,chart:o,native:s,x:tt!==void 0?tt:null,y:nt!==void 0?nt:null}}function nodeListContains(s,o){for(const et of s)if(et===o||et.contains(o))return!0}function createAttachObserver(s,o,et){const tt=s.canvas,nt=new MutationObserver(rt=>{let it=!1;for(const ot of rt)it=it||nodeListContains(ot.addedNodes,tt),it=it&&!nodeListContains(ot.removedNodes,tt);it&&et()});return nt.observe(document,{childList:!0,subtree:!0}),nt}function createDetachObserver(s,o,et){const tt=s.canvas,nt=new MutationObserver(rt=>{let it=!1;for(const ot of rt)it=it||nodeListContains(ot.removedNodes,tt),it=it&&!nodeListContains(ot.addedNodes,tt);it&&et()});return nt.observe(document,{childList:!0,subtree:!0}),nt}const drpListeningCharts=new Map;let oldDevicePixelRatio=0;function onWindowResize(){const s=window.devicePixelRatio;s!==oldDevicePixelRatio&&(oldDevicePixelRatio=s,drpListeningCharts.forEach((o,et)=>{et.currentDevicePixelRatio!==s&&o()}))}function listenDevicePixelRatioChanges(s,o){drpListeningCharts.size||window.addEventListener("resize",onWindowResize),drpListeningCharts.set(s,o)}function unlistenDevicePixelRatioChanges(s){drpListeningCharts.delete(s),drpListeningCharts.size||window.removeEventListener("resize",onWindowResize)}function createResizeObserver(s,o,et){const tt=s.canvas,nt=tt&&_getParentNode(tt);if(!nt)return;const rt=throttled((ot,st)=>{const at=nt.clientWidth;et(ot,st),at{const st=ot[0],at=st.contentRect.width,lt=st.contentRect.height;at===0&<===0||rt(at,lt)});return it.observe(nt),listenDevicePixelRatioChanges(s,rt),it}function releaseObserver(s,o,et){et&&et.disconnect(),o==="resize"&&unlistenDevicePixelRatioChanges(s)}function createProxyAndListen(s,o,et){const tt=s.canvas,nt=throttled(rt=>{s.ctx!==null&&et(fromNativeEvent(rt,s))},s);return addListener(tt,o,nt),nt}class DomPlatform extends BasePlatform{acquireContext(o,et){const tt=o&&o.getContext&&o.getContext("2d");return tt&&tt.canvas===o?(initCanvas(o,et),tt):null}releaseContext(o){const et=o.canvas;if(!et[EXPANDO_KEY])return!1;const tt=et[EXPANDO_KEY].initial;["height","width"].forEach(rt=>{const it=tt[rt];isNullOrUndef(it)?et.removeAttribute(rt):et.setAttribute(rt,it)});const nt=tt.style||{};return Object.keys(nt).forEach(rt=>{et.style[rt]=nt[rt]}),et.width=et.width,delete et[EXPANDO_KEY],!0}addEventListener(o,et,tt){this.removeEventListener(o,et);const nt=o.$proxies||(o.$proxies={}),rt={attach:createAttachObserver,detach:createDetachObserver,resize:createResizeObserver}[et]||createProxyAndListen;nt[et]=rt(o,et,tt)}removeEventListener(o,et){const tt=o.$proxies||(o.$proxies={}),nt=tt[et];nt&&(({attach:releaseObserver,detach:releaseObserver,resize:releaseObserver}[et]||removeListener)(o,et,nt),tt[et]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(o,et,tt,nt){return getMaximumSize(o,et,tt,nt)}isAttached(o){const et=_getParentNode(o);return!!(et&&et.isConnected)}}function _detectPlatform(s){return!_isDomSupported()||typeof OffscreenCanvas<"u"&&s instanceof OffscreenCanvas?BasicPlatform:DomPlatform}let Element$1=class{constructor(){He(this,"active",!1)}tooltipPosition(o){const{x:et,y:tt}=this.getProps(["x","y"],o);return{x:et,y:tt}}hasValue(){return isNumber$1(this.x)&&isNumber$1(this.y)}getProps(o,et){const tt=this.$animations;if(!et||!tt)return this;const nt={};return o.forEach(rt=>{nt[rt]=tt[rt]&&tt[rt].active()?tt[rt]._to:this[rt]}),nt}};He(Element$1,"defaults",{}),He(Element$1,"defaultRoutes");function autoSkip(s,o){const et=s.options.ticks,tt=determineMaxTicks(s),nt=Math.min(et.maxTicksLimit||tt,tt),rt=et.major.enabled?getMajorIndices(o):[],it=rt.length,ot=rt[0],st=rt[it-1],at=[];if(it>nt)return skipMajors(o,at,rt,it/nt),at;const lt=calculateSpacing(rt,o,nt);if(it>0){let ut,dt;const ht=it>1?Math.round((st-ot)/(it-1)):null;for(skip(o,at,lt,isNullOrUndef(ht)?0:ot-ht,ot),ut=0,dt=it-1;utnt)return st}return Math.max(nt,1)}function getMajorIndices(s){const o=[];let et,tt;for(et=0,tt=s.length;ets==="left"?"right":s==="right"?"left":s,offsetFromEdge=(s,o,et)=>o==="top"||o==="left"?s[o]+et:s[o]-et;function sample(s,o){const et=[],tt=s.length/o,nt=s.length;let rt=0;for(;rtit+ot)))return st}function garbageCollect(s,o){each(s,et=>{const tt=et.gc,nt=tt.length/2;let rt;if(nt>o){for(rt=0;rttt?tt:et,tt=nt&&et>tt?et:tt,{min:finiteOrDefault(et,finiteOrDefault(tt,et)),max:finiteOrDefault(tt,finiteOrDefault(et,tt))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const o=this.chart.data;return this.options.labels||(this.isHorizontal()?o.xLabels:o.yLabels)||o.labels||[]}getLabelItems(o=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(o))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){callback(this.options.beforeUpdate,[this])}update(o,et,tt){const{beginAtZero:nt,grace:rt,ticks:it}=this.options,ot=it.sampleSize;this.beforeUpdate(),this.maxWidth=o,this.maxHeight=et,this._margins=tt=Object.assign({left:0,right:0,top:0,bottom:0},tt),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+tt.left+tt.right:this.height+tt.top+tt.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=_addGrace(this,rt,nt),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const st=ot=rt||tt<=1||!this.isHorizontal()){this.labelRotation=nt;return}const lt=this._getLabelSizes(),ut=lt.widest.width,dt=lt.highest.height,ht=_limitValue(this.chart.width-ut,0,this.maxWidth);ot=o.offset?this.maxWidth/tt:ht/(tt-1),ut+6>ot&&(ot=ht/(tt-(o.offset?.5:1)),st=this.maxHeight-getTickMarkLength(o.grid)-et.padding-getTitleHeight(o.title,this.chart.options.font),at=Math.sqrt(ut*ut+dt*dt),it=toDegrees$1(Math.min(Math.asin(_limitValue((lt.highest.height+6)/ot,-1,1)),Math.asin(_limitValue(st/at,-1,1))-Math.asin(_limitValue(dt/at,-1,1)))),it=Math.max(nt,Math.min(rt,it))),this.labelRotation=it}afterCalculateLabelRotation(){callback(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){callback(this.options.beforeFit,[this])}fit(){const o={width:0,height:0},{chart:et,options:{ticks:tt,title:nt,grid:rt}}=this,it=this._isVisible(),ot=this.isHorizontal();if(it){const st=getTitleHeight(nt,et.options.font);if(ot?(o.width=this.maxWidth,o.height=getTickMarkLength(rt)+st):(o.height=this.maxHeight,o.width=getTickMarkLength(rt)+st),tt.display&&this.ticks.length){const{first:at,last:lt,widest:ut,highest:dt}=this._getLabelSizes(),ht=tt.padding*2,ct=toRadians$1(this.labelRotation),pt=Math.cos(ct),ft=Math.sin(ct);if(ot){const gt=tt.mirror?0:ft*ut.width+pt*dt.height;o.height=Math.min(this.maxHeight,o.height+gt+ht)}else{const gt=tt.mirror?0:pt*ut.width+ft*dt.height;o.width=Math.min(this.maxWidth,o.width+gt+ht)}this._calculatePadding(at,lt,ft,pt)}}this._handleMargins(),ot?(this.width=this._length=et.width-this._margins.left-this._margins.right,this.height=o.height):(this.width=o.width,this.height=this._length=et.height-this._margins.top-this._margins.bottom)}_calculatePadding(o,et,tt,nt){const{ticks:{align:rt,padding:it},position:ot}=this.options,st=this.labelRotation!==0,at=ot!=="top"&&this.axis==="x";if(this.isHorizontal()){const lt=this.getPixelForTick(0)-this.left,ut=this.right-this.getPixelForTick(this.ticks.length-1);let dt=0,ht=0;st?at?(dt=nt*o.width,ht=tt*et.height):(dt=tt*o.height,ht=nt*et.width):rt==="start"?ht=et.width:rt==="end"?dt=o.width:rt!=="inner"&&(dt=o.width/2,ht=et.width/2),this.paddingLeft=Math.max((dt-lt+it)*this.width/(this.width-lt),0),this.paddingRight=Math.max((ht-ut+it)*this.width/(this.width-ut),0)}else{let lt=et.height/2,ut=o.height/2;rt==="start"?(lt=0,ut=o.height):rt==="end"&&(lt=et.height,ut=0),this.paddingTop=lt+it,this.paddingBottom=ut+it}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){callback(this.options.afterFit,[this])}isHorizontal(){const{axis:o,position:et}=this.options;return et==="top"||et==="bottom"||o==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(o){this.beforeTickToLabelConversion(),this.generateTickLabels(o);let et,tt;for(et=0,tt=o.length;et({width:rt[At]||0,height:it[At]||0});return{first:vt(0),last:vt(et-1),widest:vt(Ft),highest:vt(mt),widths:rt,heights:it}}getLabelForValue(o){return o}getPixelForValue(o,et){return NaN}getValueForPixel(o){}getPixelForTick(o){const et=this.ticks;return o<0||o>et.length-1?null:this.getPixelForValue(et[o].value)}getPixelForDecimal(o){this._reversePixels&&(o=1-o);const et=this._startPixel+o*this._length;return _int16Range(this._alignToPixels?_alignPixel(this.chart,et,0):et)}getDecimalForPixel(o){const et=(o-this._startPixel)/this._length;return this._reversePixels?1-et:et}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:o,max:et}=this;return o<0&&et<0?et:o>0&&et>0?o:0}getContext(o){const et=this.ticks||[];if(o>=0&&oot*nt?ot/tt:st/nt:st*nt0}_computeGridLineItems(o){const et=this.axis,tt=this.chart,nt=this.options,{grid:rt,position:it,border:ot}=nt,st=rt.offset,at=this.isHorizontal(),lt=this.ticks.length+(st?1:0),ut=getTickMarkLength(rt),dt=[],ht=ot.setContext(this.getContext()),ct=ht.display?ht.width:0,pt=ct/2,ft=function(kt){return _alignPixel(tt,kt,ct)};let gt,yt,Ut,Ft,mt,vt,At,Lt,Rt,St,Tt,Bt;if(it==="top")gt=ft(this.bottom),vt=this.bottom-ut,Lt=gt-pt,St=ft(o.top)+pt,Bt=o.bottom;else if(it==="bottom")gt=ft(this.top),St=o.top,Bt=ft(o.bottom)-pt,vt=gt+pt,Lt=this.top+ut;else if(it==="left")gt=ft(this.right),mt=this.right-ut,At=gt-pt,Rt=ft(o.left)+pt,Tt=o.right;else if(it==="right")gt=ft(this.left),Rt=o.left,Tt=ft(o.right)-pt,mt=gt+pt,At=this.left+ut;else if(et==="x"){if(it==="center")gt=ft((o.top+o.bottom)/2+.5);else if(isObject$2(it)){const kt=Object.keys(it)[0],Nt=it[kt];gt=ft(this.chart.scales[kt].getPixelForValue(Nt))}St=o.top,Bt=o.bottom,vt=gt+pt,Lt=vt+ut}else if(et==="y"){if(it==="center")gt=ft((o.left+o.right)/2);else if(isObject$2(it)){const kt=Object.keys(it)[0],Nt=it[kt];gt=ft(this.chart.scales[kt].getPixelForValue(Nt))}mt=gt-pt,At=mt-ut,Rt=o.left,Tt=o.right}const xt=valueOrDefault(nt.ticks.maxTicksLimit,lt),Ct=Math.max(1,Math.ceil(lt/xt));for(yt=0;ytnt.value===o);return tt>=0?et.setContext(this.getContext(tt)).lineWidth:0}drawGrid(o){const et=this.options.grid,tt=this.ctx,nt=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(o));let rt,it;const ot=(st,at,lt)=>{!lt.width||!lt.color||(tt.save(),tt.lineWidth=lt.width,tt.strokeStyle=lt.color,tt.setLineDash(lt.borderDash||[]),tt.lineDashOffset=lt.borderDashOffset,tt.beginPath(),tt.moveTo(st.x,st.y),tt.lineTo(at.x,at.y),tt.stroke(),tt.restore())};if(et.display)for(rt=0,it=nt.length;rt{this.draw(rt)}}]:[{z:tt,draw:rt=>{this.drawBackground(),this.drawGrid(rt),this.drawTitle()}},{z:nt,draw:()=>{this.drawBorder()}},{z:et,draw:rt=>{this.drawLabels(rt)}}]}getMatchingVisibleMetas(o){const et=this.chart.getSortedVisibleDatasetMetas(),tt=this.axis+"AxisID",nt=[];let rt,it;for(rt=0,it=et.length;rt{const tt=et.split("."),nt=tt.pop(),rt=[s].concat(tt).join("."),it=o[et].split("."),ot=it.pop(),st=it.join(".");defaults$2.route(rt,nt,st,ot)})}function isIChartComponent(s){return"id"in s&&"defaults"in s}class Registry{constructor(){this.controllers=new TypedRegistry(DatasetController,"datasets",!0),this.elements=new TypedRegistry(Element$1,"elements"),this.plugins=new TypedRegistry(Object,"plugins"),this.scales=new TypedRegistry(Scale,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...o){this._each("register",o)}remove(...o){this._each("unregister",o)}addControllers(...o){this._each("register",o,this.controllers)}addElements(...o){this._each("register",o,this.elements)}addPlugins(...o){this._each("register",o,this.plugins)}addScales(...o){this._each("register",o,this.scales)}getController(o){return this._get(o,this.controllers,"controller")}getElement(o){return this._get(o,this.elements,"element")}getPlugin(o){return this._get(o,this.plugins,"plugin")}getScale(o){return this._get(o,this.scales,"scale")}removeControllers(...o){this._each("unregister",o,this.controllers)}removeElements(...o){this._each("unregister",o,this.elements)}removePlugins(...o){this._each("unregister",o,this.plugins)}removeScales(...o){this._each("unregister",o,this.scales)}_each(o,et,tt){[...et].forEach(nt=>{const rt=tt||this._getRegistryForType(nt);tt||rt.isForType(nt)||rt===this.plugins&&nt.id?this._exec(o,rt,nt):each(nt,it=>{const ot=tt||this._getRegistryForType(it);this._exec(o,ot,it)})})}_exec(o,et,tt){const nt=_capitalize(o);callback(tt["before"+nt],[],tt),et[o](tt),callback(tt["after"+nt],[],tt)}_getRegistryForType(o){for(let et=0;etrt.filter(ot=>!it.some(st=>ot.plugin.id===st.plugin.id));this._notify(nt(et,tt),o,"stop"),this._notify(nt(tt,et),o,"start")}}function allPlugins(s){const o={},et=[],tt=Object.keys(registry.plugins.items);for(let rt=0;rt1&&determineAxis(s[0].toLowerCase(),o),s))return s;throw new Error(`Cannot determine type of '${name}' axis. Please provide 'axis' or 'position' option.`)}function mergeScaleConfig(s,o){const et=overrides[s.type]||{scales:{}},tt=o.scales||{},nt=getIndexAxis(s.type,o),rt=Object.create(null);return Object.keys(tt).forEach(it=>{const ot=tt[it];if(!isObject$2(ot))return console.error(`Invalid scale configuration for scale: ${it}`);if(ot._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${it}`);const st=determineAxis(it,ot),at=getDefaultScaleIDFromAxis(st,nt),lt=et.scales||{};rt[it]=mergeIf(Object.create(null),[{axis:st},ot,lt[st],lt[at]])}),s.data.datasets.forEach(it=>{const ot=it.type||s.type,st=it.indexAxis||getIndexAxis(ot,o),at=(overrides[ot]||{}).scales||{};Object.keys(at).forEach(lt=>{const ut=getAxisFromDefaultScaleID(lt,st),dt=it[ut+"AxisID"]||ut;rt[dt]=rt[dt]||Object.create(null),mergeIf(rt[dt],[{axis:ut},tt[dt],at[lt]])})}),Object.keys(rt).forEach(it=>{const ot=rt[it];mergeIf(ot,[defaults$2.scales[ot.type],defaults$2.scale])}),rt}function initOptions(s){const o=s.options||(s.options={});o.plugins=valueOrDefault(o.plugins,{}),o.scales=mergeScaleConfig(s,o)}function initData(s){return s=s||{},s.datasets=s.datasets||[],s.labels=s.labels||[],s}function initConfig(s){return s=s||{},s.data=initData(s.data),initOptions(s),s}const keyCache=new Map,keysCached=new Set;function cachedKeys(s,o){let et=keyCache.get(s);return et||(et=o(),keyCache.set(s,et),keysCached.add(et)),et}const addIfFound=(s,o,et)=>{const tt=resolveObjectKey(o,et);tt!==void 0&&s.add(tt)};let Config$1=class{constructor(o){this._config=initConfig(o),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(o){this._config.type=o}get data(){return this._config.data}set data(o){this._config.data=initData(o)}get options(){return this._config.options}set options(o){this._config.options=o}get plugins(){return this._config.plugins}update(){const o=this._config;this.clearCache(),initOptions(o)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(o){return cachedKeys(o,()=>[[`datasets.${o}`,""]])}datasetAnimationScopeKeys(o,et){return cachedKeys(`${o}.transition.${et}`,()=>[[`datasets.${o}.transitions.${et}`,`transitions.${et}`],[`datasets.${o}`,""]])}datasetElementScopeKeys(o,et){return cachedKeys(`${o}-${et}`,()=>[[`datasets.${o}.elements.${et}`,`datasets.${o}`,`elements.${et}`,""]])}pluginScopeKeys(o){const et=o.id,tt=this.type;return cachedKeys(`${tt}-plugin-${et}`,()=>[[`plugins.${et}`,...o.additionalOptionScopes||[]]])}_cachedScopes(o,et){const tt=this._scopeCache;let nt=tt.get(o);return(!nt||et)&&(nt=new Map,tt.set(o,nt)),nt}getOptionScopes(o,et,tt){const{options:nt,type:rt}=this,it=this._cachedScopes(o,tt),ot=it.get(et);if(ot)return ot;const st=new Set;et.forEach(lt=>{o&&(st.add(o),lt.forEach(ut=>addIfFound(st,o,ut))),lt.forEach(ut=>addIfFound(st,nt,ut)),lt.forEach(ut=>addIfFound(st,overrides[rt]||{},ut)),lt.forEach(ut=>addIfFound(st,defaults$2,ut)),lt.forEach(ut=>addIfFound(st,descriptors,ut))});const at=Array.from(st);return at.length===0&&at.push(Object.create(null)),keysCached.has(et)&&it.set(et,at),at}chartOptionScopes(){const{options:o,type:et}=this;return[o,overrides[et]||{},defaults$2.datasets[et]||{},{type:et},defaults$2,descriptors]}resolveNamedOptions(o,et,tt,nt=[""]){const rt={$shared:!0},{resolver:it,subPrefixes:ot}=getResolver(this._resolverCache,o,nt);let st=it;if(needContext(it,et)){rt.$shared=!1,tt=isFunction(tt)?tt():tt;const at=this.createResolver(o,tt,ot);st=_attachContext(it,tt,at)}for(const at of et)rt[at]=st[at];return rt}createResolver(o,et,tt=[""],nt){const{resolver:rt}=getResolver(this._resolverCache,o,tt);return isObject$2(et)?_attachContext(rt,et,void 0,nt):rt}};function getResolver(s,o,et){let tt=s.get(o);tt||(tt=new Map,s.set(o,tt));const nt=et.join();let rt=tt.get(nt);return rt||(rt={resolver:_createResolver(o,et),subPrefixes:et.filter(it=>!it.toLowerCase().includes("hover"))},tt.set(nt,rt)),rt}const hasFunction=s=>isObject$2(s)&&Object.getOwnPropertyNames(s).reduce((o,et)=>o||isFunction(s[et]),!1);function needContext(s,o){const{isScriptable:et,isIndexable:tt}=_descriptors(s);for(const nt of o){const rt=et(nt),it=tt(nt),ot=(it||rt)&&s[nt];if(rt&&(isFunction(ot)||hasFunction(ot))||it&&isArray$4(ot))return!0}return!1}var version="4.2.0";const KNOWN_POSITIONS=["top","bottom","left","right","chartArea"];function positionIsHorizontal(s,o){return s==="top"||s==="bottom"||KNOWN_POSITIONS.indexOf(s)===-1&&o==="x"}function compare2Level(s,o){return function(et,tt){return et[s]===tt[s]?et[o]-tt[o]:et[s]-tt[s]}}function onAnimationsComplete(s){const o=s.chart,et=o.options.animation;o.notifyPlugins("afterRender"),callback(et&&et.onComplete,[s],o)}function onAnimationProgress(s){const o=s.chart,et=o.options.animation;callback(et&&et.onProgress,[s],o)}function getCanvas(s){return _isDomSupported()&&typeof s=="string"?s=document.getElementById(s):s&&s.length&&(s=s[0]),s&&s.canvas&&(s=s.canvas),s}const instances={},getChart=s=>{const o=getCanvas(s);return Object.values(instances).filter(et=>et.canvas===o).pop()};function moveNumericKeys(s,o,et){const tt=Object.keys(s);for(const nt of tt){const rt=+nt;if(rt>=o){const it=s[nt];delete s[nt],(et>0||rt>o)&&(s[rt+et]=it)}}}function determineLastEvent(s,o,et,tt){return!et||s.type==="mouseout"?null:tt?o:s}function getDatasetArea(s){const{xScale:o,yScale:et}=s;if(o&&et)return{left:o.left,right:o.right,top:et.top,bottom:et.bottom}}var Ur;let Chart$1=(Ur=class{static register(...s){registry.add(...s),invalidatePlugins()}static unregister(...s){registry.remove(...s),invalidatePlugins()}constructor(s,o){const et=this.config=new Config$1(o),tt=getCanvas(s),nt=getChart(tt);if(nt)throw new Error("Canvas is already in use. Chart with ID '"+nt.id+"' must be destroyed before the canvas with ID '"+nt.canvas.id+"' can be reused.");const rt=et.createResolver(et.chartOptionScopes(),this.getContext());this.platform=new(et.platform||_detectPlatform(tt)),this.platform.updateConfig(et);const it=this.platform.acquireContext(tt,rt.aspectRatio),ot=it&&it.canvas,st=ot&&ot.height,at=ot&&ot.width;if(this.id=uid(),this.ctx=it,this.canvas=ot,this.width=at,this.height=st,this._options=rt,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new PluginService,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=debounce$1(lt=>this.update(lt),rt.resizeDelay||0),this._dataChanges=[],instances[this.id]=this,!it||!ot){console.error("Failed to create chart: can't acquire context from the given item");return}animator.listen(this,"complete",onAnimationsComplete),animator.listen(this,"progress",onAnimationProgress),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:s,maintainAspectRatio:o},width:et,height:tt,_aspectRatio:nt}=this;return isNullOrUndef(s)?o&&nt?nt:tt?et/tt:null:s}get data(){return this.config.data}set data(s){this.config.data=s}get options(){return this._options}set options(s){this.config.options=s}get registry(){return registry}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():retinaScale(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return clearCanvas(this.canvas,this.ctx),this}stop(){return animator.stop(this),this}resize(s,o){animator.running(this)?this._resizeBeforeDraw={width:s,height:o}:this._resize(s,o)}_resize(s,o){const et=this.options,tt=this.canvas,nt=et.maintainAspectRatio&&this.aspectRatio,rt=this.platform.getMaximumSize(tt,s,o,nt),it=et.devicePixelRatio||this.platform.getDevicePixelRatio(),ot=this.width?"resize":"attach";this.width=rt.width,this.height=rt.height,this._aspectRatio=this.aspectRatio,retinaScale(this,it,!0)&&(this.notifyPlugins("resize",{size:rt}),callback(et.onResize,[this,rt],this),this.attached&&this._doResize(ot)&&this.render())}ensureScalesHaveIDs(){const s=this.options.scales||{};each(s,(o,et)=>{o.id=et})}buildOrUpdateScales(){const s=this.options,o=s.scales,et=this.scales,tt=Object.keys(et).reduce((rt,it)=>(rt[it]=!1,rt),{});let nt=[];o&&(nt=nt.concat(Object.keys(o).map(rt=>{const it=o[rt],ot=determineAxis(rt,it),st=ot==="r",at=ot==="x";return{options:it,dposition:st?"chartArea":at?"bottom":"left",dtype:st?"radialLinear":at?"category":"linear"}}))),each(nt,rt=>{const it=rt.options,ot=it.id,st=determineAxis(ot,it),at=valueOrDefault(it.type,rt.dtype);(it.position===void 0||positionIsHorizontal(it.position,st)!==positionIsHorizontal(rt.dposition))&&(it.position=rt.dposition),tt[ot]=!0;let lt=null;if(ot in et&&et[ot].type===at)lt=et[ot];else{const ut=registry.getScale(at);lt=new ut({id:ot,type:at,ctx:this.ctx,chart:this}),et[lt.id]=lt}lt.init(it,s)}),each(tt,(rt,it)=>{rt||delete et[it]}),each(et,rt=>{layouts.configure(this,rt,rt.options),layouts.addBox(this,rt)})}_updateMetasets(){const s=this._metasets,o=this.data.datasets.length,et=s.length;if(s.sort((tt,nt)=>tt.index-nt.index),et>o){for(let tt=o;tto.length&&delete this._stacks,s.forEach((et,tt)=>{o.filter(nt=>nt===et._dataset).length===0&&this._destroyDatasetMeta(tt)})}buildOrUpdateControllers(){const s=[],o=this.data.datasets;let et,tt;for(this._removeUnreferencedMetasets(),et=0,tt=o.length;et{this.getDatasetMeta(o).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(s){const o=this.config;o.update();const et=this._options=o.createResolver(o.chartOptionScopes(),this.getContext()),tt=this._animationsDisabled=!et.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:s,cancelable:!0})===!1)return;const nt=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let rt=0;for(let st=0,at=this.data.datasets.length;st{st.reset()}),this._updateDatasets(s),this.notifyPlugins("afterUpdate",{mode:s}),this._layers.sort(compare2Level("z","_idx"));const{_active:it,_lastEvent:ot}=this;ot?this._eventHandler(ot,!0):it.length&&this._updateHoverStyles(it,it,!0),this.render()}_updateScales(){each(this.scales,s=>{layouts.removeBox(this,s)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const s=this.options,o=new Set(Object.keys(this._listeners)),et=new Set(s.events);(!setsEqual(o,et)||!!this._responsiveListeners!==s.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:s}=this,o=this._getUniformDataChanges()||[];for(const{method:et,start:tt,count:nt}of o){const rt=et==="_removeElements"?-nt:nt;moveNumericKeys(s,tt,rt)}}_getUniformDataChanges(){const s=this._dataChanges;if(!s||!s.length)return;this._dataChanges=[];const o=this.data.datasets.length,et=nt=>new Set(s.filter(rt=>rt[0]===nt).map((rt,it)=>it+","+rt.splice(1).join(","))),tt=et(0);for(let nt=1;ntnt.split(",")).map(nt=>({method:nt[1],start:+nt[2],count:+nt[3]}))}_updateLayout(s){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;layouts.update(this,this.width,this.height,s);const o=this.chartArea,et=o.width<=0||o.height<=0;this._layers=[],each(this.boxes,tt=>{et&&tt.position==="chartArea"||(tt.configure&&tt.configure(),this._layers.push(...tt._layers()))},this),this._layers.forEach((tt,nt)=>{tt._idx=nt}),this.notifyPlugins("afterLayout")}_updateDatasets(s){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:s,cancelable:!0})!==!1){for(let o=0,et=this.data.datasets.length;o=0;--o)this._drawDataset(s[o]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(s){const o=this.ctx,et=s._clip,tt=!et.disabled,nt=getDatasetArea(s)||this.chartArea,rt={meta:s,index:s.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",rt)!==!1&&(tt&&clipArea(o,{left:et.left===!1?0:nt.left-et.left,right:et.right===!1?this.width:nt.right+et.right,top:et.top===!1?0:nt.top-et.top,bottom:et.bottom===!1?this.height:nt.bottom+et.bottom}),s.controller.draw(),tt&&unclipArea(o),rt.cancelable=!1,this.notifyPlugins("afterDatasetDraw",rt))}isPointInArea(s){return _isPointInArea(s,this.chartArea,this._minPadding)}getElementsAtEventForMode(s,o,et,tt){const nt=Interaction.modes[o];return typeof nt=="function"?nt(this,s,et,tt):[]}getDatasetMeta(s){const o=this.data.datasets[s],et=this._metasets;let tt=et.filter(nt=>nt&&nt._dataset===o).pop();return tt||(tt={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:o&&o.order||0,index:s,_dataset:o,_parsed:[],_sorted:!1},et.push(tt)),tt}getContext(){return this.$context||(this.$context=createContext(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(s){const o=this.data.datasets[s];if(!o)return!1;const et=this.getDatasetMeta(s);return typeof et.hidden=="boolean"?!et.hidden:!o.hidden}setDatasetVisibility(s,o){const et=this.getDatasetMeta(s);et.hidden=!o}toggleDataVisibility(s){this._hiddenIndices[s]=!this._hiddenIndices[s]}getDataVisibility(s){return!this._hiddenIndices[s]}_updateVisibility(s,o,et){const tt=et?"show":"hide",nt=this.getDatasetMeta(s),rt=nt.controller._resolveAnimations(void 0,tt);defined$3(o)?(nt.data[o].hidden=!et,this.update()):(this.setDatasetVisibility(s,et),rt.update(nt,{visible:et}),this.update(it=>it.datasetIndex===s?tt:void 0))}hide(s,o){this._updateVisibility(s,o,!1)}show(s,o){this._updateVisibility(s,o,!0)}_destroyDatasetMeta(s){const o=this._metasets[s];o&&o.controller&&o.controller._destroy(),delete this._metasets[s]}_stop(){let s,o;for(this.stop(),animator.remove(this),s=0,o=this.data.datasets.length;s{o.addEventListener(this,nt,rt),s[nt]=rt},tt=(nt,rt,it)=>{nt.offsetX=rt,nt.offsetY=it,this._eventHandler(nt)};each(this.options.events,nt=>et(nt,tt))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const s=this._responsiveListeners,o=this.platform,et=(ot,st)=>{o.addEventListener(this,ot,st),s[ot]=st},tt=(ot,st)=>{s[ot]&&(o.removeEventListener(this,ot,st),delete s[ot])},nt=(ot,st)=>{this.canvas&&this.resize(ot,st)};let rt;const it=()=>{tt("attach",it),this.attached=!0,this.resize(),et("resize",nt),et("detach",rt)};rt=()=>{this.attached=!1,tt("resize",nt),this._stop(),this._resize(0,0),et("attach",it)},o.isAttached(this.canvas)?it():rt()}unbindEvents(){each(this._listeners,(s,o)=>{this.platform.removeEventListener(this,o,s)}),this._listeners={},each(this._responsiveListeners,(s,o)=>{this.platform.removeEventListener(this,o,s)}),this._responsiveListeners=void 0}updateHoverStyle(s,o,et){const tt=et?"set":"remove";let nt,rt,it,ot;for(o==="dataset"&&(nt=this.getDatasetMeta(s[0].datasetIndex),nt.controller["_"+tt+"DatasetHoverStyle"]()),it=0,ot=s.length;it{const rt=this.getDatasetMeta(tt);if(!rt)throw new Error("No dataset found at index "+tt);return{datasetIndex:tt,element:rt.data[nt],index:nt}});!_elementsEqual(et,o)&&(this._active=et,this._lastEvent=null,this._updateHoverStyles(et,o))}notifyPlugins(s,o,et){return this._plugins.notify(this,s,o,et)}isPluginEnabled(s){return this._plugins._cache.filter(o=>o.plugin.id===s).length===1}_updateHoverStyles(s,o,et){const tt=this.options.hover,nt=(ot,st)=>ot.filter(at=>!st.some(lt=>at.datasetIndex===lt.datasetIndex&&at.index===lt.index)),rt=nt(o,s),it=et?s:nt(s,o);rt.length&&this.updateHoverStyle(rt,tt.mode,!1),it.length&&tt.mode&&this.updateHoverStyle(it,tt.mode,!0)}_eventHandler(s,o){const et={event:s,replay:o,cancelable:!0,inChartArea:this.isPointInArea(s)},tt=rt=>(rt.options.events||this.options.events).includes(s.native.type);if(this.notifyPlugins("beforeEvent",et,tt)===!1)return;const nt=this._handleEvent(s,o,et.inChartArea);return et.cancelable=!1,this.notifyPlugins("afterEvent",et,tt),(nt||et.changed)&&this.render(),this}_handleEvent(s,o,et){const{_active:tt=[],options:nt}=this,rt=o,it=this._getActiveElements(s,tt,et,rt),ot=_isClickEvent(s),st=determineLastEvent(s,this._lastEvent,et,ot);et&&(this._lastEvent=null,callback(nt.onHover,[s,it,this],this),ot&&callback(nt.onClick,[s,it,this],this));const at=!_elementsEqual(it,tt);return(at||o)&&(this._active=it,this._updateHoverStyles(it,tt,o)),this._lastEvent=st,at}_getActiveElements(s,o,et,tt){if(s.type==="mouseout")return[];if(!et)return o;const nt=this.options.hover;return this.getElementsAtEventForMode(s,nt.mode,nt,tt)}},He(Ur,"defaults",defaults$2),He(Ur,"instances",instances),He(Ur,"overrides",overrides),He(Ur,"registry",registry),He(Ur,"version",version),He(Ur,"getChart",getChart),Ur);function invalidatePlugins(){return each(Chart$1.instances,s=>s._plugins.invalidate())}function clipArc(s,o,et){const{startAngle:tt,pixelMargin:nt,x:rt,y:it,outerRadius:ot,innerRadius:st}=o;let at=nt/ot;s.beginPath(),s.arc(rt,it,ot,tt-at,et+at),st>nt?(at=nt/st,s.arc(rt,it,st,et+at,tt-at,!0)):s.arc(rt,it,nt,et+HALF_PI,tt-HALF_PI),s.closePath(),s.clip()}function toRadiusCorners(s){return _readValueToProps(s,["outerStart","outerEnd","innerStart","innerEnd"])}function parseBorderRadius$1(s,o,et,tt){const nt=toRadiusCorners(s.options.borderRadius),rt=(et-o)/2,it=Math.min(rt,tt*o/2),ot=st=>{const at=(et-Math.min(rt,st))*tt/2;return _limitValue(st,0,Math.min(rt,at))};return{outerStart:ot(nt.outerStart),outerEnd:ot(nt.outerEnd),innerStart:_limitValue(nt.innerStart,0,it),innerEnd:_limitValue(nt.innerEnd,0,it)}}function rThetaToXY(s,o,et,tt){return{x:et+s*Math.cos(o),y:tt+s*Math.sin(o)}}function pathArc(s,o,et,tt,nt,rt){const{x:it,y:ot,startAngle:st,pixelMargin:at,innerRadius:lt}=o,ut=Math.max(o.outerRadius+tt+et-at,0),dt=lt>0?lt+tt+et+at:0;let ht=0;const ct=nt-st;if(tt){const kt=lt>0?lt-tt:0,Nt=ut>0?ut-tt:0,Ot=(kt+Nt)/2,Wt=Ot!==0?ct*Ot/(Ot+tt):ct;ht=(ct-Wt)/2}const pt=Math.max(.001,ct*ut-et/PI)/ut,ft=(ct-pt)/2,gt=st+ft+ht,yt=nt-ft-ht,{outerStart:Ut,outerEnd:Ft,innerStart:mt,innerEnd:vt}=parseBorderRadius$1(o,dt,ut,yt-gt),At=ut-Ut,Lt=ut-Ft,Rt=gt+Ut/At,St=yt-Ft/Lt,Tt=dt+mt,Bt=dt+vt,xt=gt+mt/Tt,Ct=yt-vt/Bt;if(s.beginPath(),rt){const kt=(Rt+St)/2;if(s.arc(it,ot,ut,Rt,kt),s.arc(it,ot,ut,kt,St),Ft>0){const Dt=rThetaToXY(Lt,St,it,ot);s.arc(Dt.x,Dt.y,Ft,St,yt+HALF_PI)}const Nt=rThetaToXY(Bt,yt,it,ot);if(s.lineTo(Nt.x,Nt.y),vt>0){const Dt=rThetaToXY(Bt,Ct,it,ot);s.arc(Dt.x,Dt.y,vt,yt+HALF_PI,Ct+Math.PI)}const Ot=(yt-vt/dt+(gt+mt/dt))/2;if(s.arc(it,ot,dt,yt-vt/dt,Ot,!0),s.arc(it,ot,dt,Ot,gt+mt/dt,!0),mt>0){const Dt=rThetaToXY(Tt,xt,it,ot);s.arc(Dt.x,Dt.y,mt,xt+Math.PI,gt-HALF_PI)}const Wt=rThetaToXY(At,gt,it,ot);if(s.lineTo(Wt.x,Wt.y),Ut>0){const Dt=rThetaToXY(At,Rt,it,ot);s.arc(Dt.x,Dt.y,Ut,gt-HALF_PI,Rt)}}else{s.moveTo(it,ot);const kt=Math.cos(Rt)*ut+it,Nt=Math.sin(Rt)*ut+ot;s.lineTo(kt,Nt);const Ot=Math.cos(St)*ut+it,Wt=Math.sin(St)*ut+ot;s.lineTo(Ot,Wt)}s.closePath()}function drawArc(s,o,et,tt,nt){const{fullCircles:rt,startAngle:it,circumference:ot}=o;let st=o.endAngle;if(rt){pathArc(s,o,et,tt,st,nt);for(let at=0;at=TAU$1||_angleBetween(rt,ot,st),ct=_isBetween(it,at+dt,lt+dt);return ht&&ct}getCenterPoint(o){const{x:et,y:tt,startAngle:nt,endAngle:rt,innerRadius:it,outerRadius:ot}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],o),{offset:st,spacing:at}=this.options,lt=(nt+rt)/2,ut=(it+ot+at+st)/2;return{x:et+Math.cos(lt)*ut,y:tt+Math.sin(lt)*ut}}tooltipPosition(o){return this.getCenterPoint(o)}draw(o){const{options:et,circumference:tt}=this,nt=(et.offset||0)/4,rt=(et.spacing||0)/2,it=et.circular;if(this.pixelMargin=et.borderAlign==="inner"?.33:0,this.fullCircles=tt>TAU$1?Math.floor(tt/TAU$1):0,tt===0||this.innerRadius<0||this.outerRadius<0)return;o.save();const ot=(this.startAngle+this.endAngle)/2;o.translate(Math.cos(ot)*nt,Math.sin(ot)*nt);const st=1-Math.sin(Math.min(PI,tt||0)),at=nt*st;o.fillStyle=et.backgroundColor,o.strokeStyle=et.borderColor,drawArc(o,this,at,rt,it),drawBorder(o,this,at,rt,it),o.restore()}}He(ArcElement,"id","arc"),He(ArcElement,"defaults",{borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0}),He(ArcElement,"defaultRoutes",{backgroundColor:"backgroundColor"});function setStyle(s,o,et=o){s.lineCap=valueOrDefault(et.borderCapStyle,o.borderCapStyle),s.setLineDash(valueOrDefault(et.borderDash,o.borderDash)),s.lineDashOffset=valueOrDefault(et.borderDashOffset,o.borderDashOffset),s.lineJoin=valueOrDefault(et.borderJoinStyle,o.borderJoinStyle),s.lineWidth=valueOrDefault(et.borderWidth,o.borderWidth),s.strokeStyle=valueOrDefault(et.borderColor,o.borderColor)}function lineTo(s,o,et){s.lineTo(et.x,et.y)}function getLineMethod(s){return s.stepped?_steppedLineTo:s.tension||s.cubicInterpolationMode==="monotone"?_bezierCurveTo:lineTo}function pathVars(s,o,et={}){const tt=s.length,{start:nt=0,end:rt=tt-1}=et,{start:it,end:ot}=o,st=Math.max(nt,it),at=Math.min(rt,ot),lt=ntot&&rt>ot;return{count:tt,start:st,loop:o.loop,ilen:at(it+(at?ot-Ft:Ft))%rt,Ut=()=>{pt!==ft&&(s.lineTo(lt,ft),s.lineTo(lt,pt),s.lineTo(lt,gt))};for(st&&(ht=nt[yt(0)],s.moveTo(ht.x,ht.y)),dt=0;dt<=ot;++dt){if(ht=nt[yt(dt)],ht.skip)continue;const Ft=ht.x,mt=ht.y,vt=Ft|0;vt===ct?(mtft&&(ft=mt),lt=(ut*lt+Ft)/++ut):(Ut(),s.lineTo(Ft,mt),ct=vt,ut=0,pt=ft=mt),gt=mt}Ut()}function _getSegmentMethod(s){const o=s.options,et=o.borderDash&&o.borderDash.length;return!s._decimated&&!s._loop&&!o.tension&&o.cubicInterpolationMode!=="monotone"&&!o.stepped&&!et?fastPathSegment:pathSegment}function _getInterpolationMethod(s){return s.stepped?_steppedInterpolation:s.tension||s.cubicInterpolationMode==="monotone"?_bezierInterpolation:_pointInLine}function strokePathWithCache(s,o,et,tt){let nt=o._path;nt||(nt=o._path=new Path2D,o.path(nt,et,tt)&&nt.closePath()),setStyle(s,o.options),s.stroke(nt)}function strokePathDirect(s,o,et,tt){const{segments:nt,options:rt}=o,it=_getSegmentMethod(o);for(const ot of nt)setStyle(s,rt,ot.style),s.beginPath(),it(s,o,ot,{start:et,end:et+tt-1})&&s.closePath(),s.stroke()}const usePath2D=typeof Path2D=="function";function draw(s,o,et,tt){usePath2D&&!o.options.segment?strokePathWithCache(s,o,et,tt):strokePathDirect(s,o,et,tt)}class LineElement extends Element$1{constructor(o){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,o&&Object.assign(this,o)}updateControlPoints(o,et){const tt=this.options;if((tt.tension||tt.cubicInterpolationMode==="monotone")&&!tt.stepped&&!this._pointsUpdated){const nt=tt.spanGaps?this._loop:this._fullLoop;_updateBezierControlPoints(this._points,tt,o,nt,et),this._pointsUpdated=!0}}set points(o){this._points=o,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=_computeSegments(this,this.options.segment))}first(){const o=this.segments,et=this.points;return o.length&&et[o[0].start]}last(){const o=this.segments,et=this.points,tt=o.length;return tt&&et[o[tt-1].end]}interpolate(o,et){const tt=this.options,nt=o[et],rt=this.points,it=_boundSegments(this,{property:et,start:nt,end:nt});if(!it.length)return;const ot=[],st=_getInterpolationMethod(tt);let at,lt;for(at=0,lt=it.length;ats!=="borderDash"&&s!=="fill"});function inRange$1(s,o,et,tt){const nt=s.options,{[et]:rt}=s.getProps([et],tt);return Math.abs(o-rt)s.replace("rgb(","rgba(").replace(")",", 0.5)"));function getBorderColor(s){return BORDER_COLORS[s%BORDER_COLORS.length]}function getBackgroundColor(s){return BACKGROUND_COLORS[s%BACKGROUND_COLORS.length]}function colorizeDefaultDataset(s,o){return s.borderColor=getBorderColor(o),s.backgroundColor=getBackgroundColor(o),++o}function colorizeDoughnutDataset(s,o){return s.backgroundColor=s.data.map(()=>getBorderColor(o++)),o}function colorizePolarAreaDataset(s,o){return s.backgroundColor=s.data.map(()=>getBackgroundColor(o++)),o}function getColorizer(s){let o=0;return(et,tt)=>{const nt=s.getDatasetMeta(tt).controller;nt instanceof DoughnutController?o=colorizeDoughnutDataset(et,o):nt instanceof PolarAreaController?o=colorizePolarAreaDataset(et,o):nt&&(o=colorizeDefaultDataset(et,o))}}function containsColorsDefinitions(s){let o;for(o in s)if(s[o].borderColor||s[o].backgroundColor)return!0;return!1}function containsColorsDefinition(s){return s&&(s.borderColor||s.backgroundColor)}var plugin_colors={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(s,o,et){if(!et.enabled)return;const{data:{datasets:tt},options:nt}=s.config,{elements:rt}=nt;if(!et.forceOverride&&(containsColorsDefinitions(tt)||containsColorsDefinition(nt)||rt&&containsColorsDefinitions(rt)))return;const it=getColorizer(s);tt.forEach(it)}};function lttbDecimation(s,o,et,tt,nt){const rt=nt.samples||tt;if(rt>=et)return s.slice(o,o+et);const it=[],ot=(et-2)/(rt-2);let st=0;const at=o+et-1;let lt=o,ut,dt,ht,ct,pt;for(it[st++]=s[lt],ut=0;utht&&(ht=ct,dt=s[yt],pt=yt);it[st++]=dt,lt=pt}return it[st++]=s[at],it}function minMaxDecimation(s,o,et,tt){let nt=0,rt=0,it,ot,st,at,lt,ut,dt,ht,ct,pt;const ft=[],gt=o+et-1,yt=s[o].x,Ut=s[gt].x-yt;for(it=o;itpt&&(pt=at,dt=it),nt=(rt*nt+ot.x)/++rt;else{const mt=it-1;if(!isNullOrUndef(ut)&&!isNullOrUndef(dt)){const vt=Math.min(ut,dt),At=Math.max(ut,dt);vt!==ht&&vt!==mt&&ft.push({...s[vt],x:nt}),At!==ht&&At!==mt&&ft.push({...s[At],x:nt})}it>0&&mt!==ht&&ft.push(s[mt]),ft.push(ot),lt=Ft,rt=0,ct=pt=at,ut=dt=ht=it}}return ft}function cleanDecimatedDataset(s){if(s._decimated){const o=s._data;delete s._decimated,delete s._data,Object.defineProperty(s,"data",{value:o})}}function cleanDecimatedData(s){s.data.datasets.forEach(o=>{cleanDecimatedDataset(o)})}function getStartAndCountOfVisiblePointsSimplified(s,o){const et=o.length;let tt=0,nt;const{iScale:rt}=s,{min:it,max:ot,minDefined:st,maxDefined:at}=rt.getUserBounds();return st&&(tt=_limitValue(_lookupByKey(o,rt.axis,it).lo,0,et-1)),at?nt=_limitValue(_lookupByKey(o,rt.axis,ot).hi+1,tt,et)-tt:nt=et-tt,{start:tt,count:nt}}var plugin_decimation={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(s,o,et)=>{if(!et.enabled){cleanDecimatedData(s);return}const tt=s.width;s.data.datasets.forEach((nt,rt)=>{const{_data:it,indexAxis:ot}=nt,st=s.getDatasetMeta(rt),at=it||nt.data;if(resolve([ot,s.options.indexAxis])==="y"||!st.controller.supportsDecimation)return;const lt=s.scales[st.xAxisID];if(lt.type!=="linear"&<.type!=="time"||s.options.parsing)return;let{start:ut,count:dt}=getStartAndCountOfVisiblePointsSimplified(st,at);const ht=et.threshold||4*tt;if(dt<=ht){cleanDecimatedDataset(nt);return}isNullOrUndef(it)&&(nt._data=at,delete nt.data,Object.defineProperty(nt,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(pt){this._data=pt}}));let ct;switch(et.algorithm){case"lttb":ct=lttbDecimation(at,ut,dt,tt,et);break;case"min-max":ct=minMaxDecimation(at,ut,dt,tt);break;default:throw new Error(`Unsupported decimation algorithm '${et.algorithm}'`)}nt._decimated=ct})},destroy(s){cleanDecimatedData(s)}};function _segments(s,o,et){const tt=s.segments,nt=s.points,rt=o.points,it=[];for(const ot of tt){let{start:st,end:at}=ot;at=_findSegmentEnd(st,at,nt);const lt=_getBounds$1(et,nt[st],nt[at],ot.loop);if(!o.segments){it.push({source:ot,target:lt,start:nt[st],end:nt[at]});continue}const ut=_boundSegments(o,lt);for(const dt of ut){const ht=_getBounds$1(et,rt[dt.start],rt[dt.end],dt.loop),ct=_boundSegment(ot,nt,ht);for(const pt of ct)it.push({source:pt,target:dt,start:{[et]:_getEdge(lt,ht,"start",Math.max)},end:{[et]:_getEdge(lt,ht,"end",Math.min)}})}}return it}function _getBounds$1(s,o,et,tt){if(tt)return;let nt=o[s],rt=et[s];return s==="angle"&&(nt=_normalizeAngle(nt),rt=_normalizeAngle(rt)),{property:s,start:nt,end:rt}}function _pointsFromSegments(s,o){const{x:et=null,y:tt=null}=s||{},nt=o.points,rt=[];return o.segments.forEach(({start:it,end:ot})=>{ot=_findSegmentEnd(it,ot,nt);const st=nt[it],at=nt[ot];tt!==null?(rt.push({x:st.x,y:tt}),rt.push({x:at.x,y:tt})):et!==null&&(rt.push({x:et,y:st.y}),rt.push({x:et,y:at.y}))}),rt}function _findSegmentEnd(s,o,et){for(;o>s;o--){const tt=et[o];if(!isNaN(tt.x)&&!isNaN(tt.y))break}return o}function _getEdge(s,o,et,tt){return s&&o?tt(s[et],o[et]):s?s[et]:o?o[et]:0}function _createBoundaryLine(s,o){let et=[],tt=!1;return isArray$4(s)?(tt=!0,et=s):et=_pointsFromSegments(s,o),et.length?new LineElement({points:et,options:{tension:0},_loop:tt,_fullLoop:tt}):null}function _shouldApplyFill(s){return s&&s.fill!==!1}function _resolveTarget(s,o,et){let tt=s[o].fill;const nt=[o];let rt;if(!et)return tt;for(;tt!==!1&&nt.indexOf(tt)===-1;){if(!isNumberFinite(tt))return tt;if(rt=s[tt],!rt)return!1;if(rt.visible)return tt;nt.push(tt),tt=rt.fill}return!1}function _decodeFill(s,o,et){const tt=parseFillOption(s);if(isObject$2(tt))return isNaN(tt.value)?!1:tt;let nt=parseFloat(tt);return isNumberFinite(nt)&&Math.floor(nt)===nt?decodeTargetIndex(tt[0],o,nt,et):["origin","start","end","stack","shape"].indexOf(tt)>=0&&tt}function decodeTargetIndex(s,o,et,tt){return(s==="-"||s==="+")&&(et=o+et),et===o||et<0||et>=tt?!1:et}function _getTargetPixel(s,o){let et=null;return s==="start"?et=o.bottom:s==="end"?et=o.top:isObject$2(s)?et=o.getPixelForValue(s.value):o.getBasePixel&&(et=o.getBasePixel()),et}function _getTargetValue(s,o,et){let tt;return s==="start"?tt=et:s==="end"?tt=o.options.reverse?o.min:o.max:isObject$2(s)?tt=s.value:tt=o.getBaseValue(),tt}function parseFillOption(s){const o=s.options,et=o.fill;let tt=valueOrDefault(et&&et.target,et);return tt===void 0&&(tt=!!o.backgroundColor),tt===!1||tt===null?!1:tt===!0?"origin":tt}function _buildStackLine(s){const{scale:o,index:et,line:tt}=s,nt=[],rt=tt.segments,it=tt.points,ot=getLinesBelow(o,et);ot.push(_createBoundaryLine({x:null,y:o.bottom},tt));for(let st=0;st=0;--it){const ot=nt[it].$filler;ot&&(ot.line.updateControlPoints(rt,ot.axis),tt&&ot.fill&&_drawfill(s.ctx,ot,rt))}},beforeDatasetsDraw(s,o,et){if(et.drawTime!=="beforeDatasetsDraw")return;const tt=s.getSortedVisibleDatasetMetas();for(let nt=tt.length-1;nt>=0;--nt){const rt=tt[nt].$filler;_shouldApplyFill(rt)&&_drawfill(s.ctx,rt,s.chartArea)}},beforeDatasetDraw(s,o,et){const tt=o.meta.$filler;!_shouldApplyFill(tt)||et.drawTime!=="beforeDatasetDraw"||_drawfill(s.ctx,tt,s.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const getBoxSize=(s,o)=>{let{boxHeight:et=o,boxWidth:tt=o}=s;return s.usePointStyle&&(et=Math.min(et,o),tt=s.pointStyleWidth||Math.min(tt,o)),{boxWidth:tt,boxHeight:et,itemHeight:Math.max(o,et)}},itemsEqual=(s,o)=>s!==null&&o!==null&&s.datasetIndex===o.datasetIndex&&s.index===o.index;class Legend extends Element$1{constructor(o){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=o.chart,this.options=o.options,this.ctx=o.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(o,et,tt){this.maxWidth=o,this.maxHeight=et,this._margins=tt,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const o=this.options.labels||{};let et=callback(o.generateLabels,[this.chart],this)||[];o.filter&&(et=et.filter(tt=>o.filter(tt,this.chart.data))),o.sort&&(et=et.sort((tt,nt)=>o.sort(tt,nt,this.chart.data))),this.options.reverse&&et.reverse(),this.legendItems=et}fit(){const{options:o,ctx:et}=this;if(!o.display){this.width=this.height=0;return}const tt=o.labels,nt=toFont(tt.font),rt=nt.size,it=this._computeTitleHeight(),{boxWidth:ot,itemHeight:st}=getBoxSize(tt,rt);let at,lt;et.font=nt.string,this.isHorizontal()?(at=this.maxWidth,lt=this._fitRows(it,rt,ot,st)+10):(lt=this.maxHeight,at=this._fitCols(it,nt,ot,st)+10),this.width=Math.min(at,o.maxWidth||this.maxWidth),this.height=Math.min(lt,o.maxHeight||this.maxHeight)}_fitRows(o,et,tt,nt){const{ctx:rt,maxWidth:it,options:{labels:{padding:ot}}}=this,st=this.legendHitBoxes=[],at=this.lineWidths=[0],lt=nt+ot;let ut=o;rt.textAlign="left",rt.textBaseline="middle";let dt=-1,ht=-lt;return this.legendItems.forEach((ct,pt)=>{const ft=tt+et/2+rt.measureText(ct.text).width;(pt===0||at[at.length-1]+ft+2*ot>it)&&(ut+=lt,at[at.length-(pt>0?0:1)]=0,ht+=lt,dt++),st[pt]={left:0,top:ht,row:dt,width:ft,height:nt},at[at.length-1]+=ft+ot}),ut}_fitCols(o,et,tt,nt){const{ctx:rt,maxHeight:it,options:{labels:{padding:ot}}}=this,st=this.legendHitBoxes=[],at=this.columnSizes=[],lt=it-o;let ut=ot,dt=0,ht=0,ct=0,pt=0;return this.legendItems.forEach((ft,gt)=>{const{itemWidth:yt,itemHeight:Ut}=calculateItemSize(tt,et,rt,ft,nt);gt>0&&ht+Ut+2*ot>lt&&(ut+=dt+ot,at.push({width:dt,height:ht}),ct+=dt+ot,pt++,dt=ht=0),st[gt]={left:ct,top:ht,col:pt,width:yt,height:Ut},dt=Math.max(dt,yt),ht+=Ut+ot}),ut+=dt,at.push({width:dt,height:ht}),ut}adjustHitBoxes(){if(!this.options.display)return;const o=this._computeTitleHeight(),{legendHitBoxes:et,options:{align:tt,labels:{padding:nt},rtl:rt}}=this,it=getRtlAdapter(rt,this.left,this.width);if(this.isHorizontal()){let ot=0,st=_alignStartEnd(tt,this.left+nt,this.right-this.lineWidths[ot]);for(const at of et)ot!==at.row&&(ot=at.row,st=_alignStartEnd(tt,this.left+nt,this.right-this.lineWidths[ot])),at.top+=this.top+o+nt,at.left=it.leftForLtr(it.x(st),at.width),st+=at.width+nt}else{let ot=0,st=_alignStartEnd(tt,this.top+o+nt,this.bottom-this.columnSizes[ot].height);for(const at of et)at.col!==ot&&(ot=at.col,st=_alignStartEnd(tt,this.top+o+nt,this.bottom-this.columnSizes[ot].height)),at.top=st,at.left+=this.left+nt,at.left=it.leftForLtr(it.x(at.left),at.width),st+=at.height+nt}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const o=this.ctx;clipArea(o,this),this._draw(),unclipArea(o)}}_draw(){const{options:o,columnSizes:et,lineWidths:tt,ctx:nt}=this,{align:rt,labels:it}=o,ot=defaults$2.color,st=getRtlAdapter(o.rtl,this.left,this.width),at=toFont(it.font),{padding:lt}=it,ut=at.size,dt=ut/2;let ht;this.drawTitle(),nt.textAlign=st.textAlign("left"),nt.textBaseline="middle",nt.lineWidth=.5,nt.font=at.string;const{boxWidth:ct,boxHeight:pt,itemHeight:ft}=getBoxSize(it,ut),gt=function(vt,At,Lt){if(isNaN(ct)||ct<=0||isNaN(pt)||pt<0)return;nt.save();const Rt=valueOrDefault(Lt.lineWidth,1);if(nt.fillStyle=valueOrDefault(Lt.fillStyle,ot),nt.lineCap=valueOrDefault(Lt.lineCap,"butt"),nt.lineDashOffset=valueOrDefault(Lt.lineDashOffset,0),nt.lineJoin=valueOrDefault(Lt.lineJoin,"miter"),nt.lineWidth=Rt,nt.strokeStyle=valueOrDefault(Lt.strokeStyle,ot),nt.setLineDash(valueOrDefault(Lt.lineDash,[])),it.usePointStyle){const St={radius:pt*Math.SQRT2/2,pointStyle:Lt.pointStyle,rotation:Lt.rotation,borderWidth:Rt},Tt=st.xPlus(vt,ct/2),Bt=At+dt;drawPointLegend(nt,St,Tt,Bt,it.pointStyleWidth&&ct)}else{const St=At+Math.max((ut-pt)/2,0),Tt=st.leftForLtr(vt,ct),Bt=toTRBLCorners(Lt.borderRadius);nt.beginPath(),Object.values(Bt).some(xt=>xt!==0)?addRoundedRectPath(nt,{x:Tt,y:St,w:ct,h:pt,radius:Bt}):nt.rect(Tt,St,ct,pt),nt.fill(),Rt!==0&&nt.stroke()}nt.restore()},yt=function(vt,At,Lt){renderText(nt,Lt.text,vt,At+ft/2,at,{strikethrough:Lt.hidden,textAlign:st.textAlign(Lt.textAlign)})},Ut=this.isHorizontal(),Ft=this._computeTitleHeight();Ut?ht={x:_alignStartEnd(rt,this.left+lt,this.right-tt[0]),y:this.top+lt+Ft,line:0}:ht={x:this.left+lt,y:_alignStartEnd(rt,this.top+Ft+lt,this.bottom-et[0].height),line:0},overrideTextDirection(this.ctx,o.textDirection);const mt=ft+lt;this.legendItems.forEach((vt,At)=>{nt.strokeStyle=vt.fontColor,nt.fillStyle=vt.fontColor;const Lt=nt.measureText(vt.text).width,Rt=st.textAlign(vt.textAlign||(vt.textAlign=it.textAlign)),St=ct+dt+Lt;let Tt=ht.x,Bt=ht.y;st.setWidth(this.width),Ut?At>0&&Tt+St+lt>this.right&&(Bt=ht.y+=mt,ht.line++,Tt=ht.x=_alignStartEnd(rt,this.left+lt,this.right-tt[ht.line])):At>0&&Bt+mt>this.bottom&&(Tt=ht.x=Tt+et[ht.line].width+lt,ht.line++,Bt=ht.y=_alignStartEnd(rt,this.top+Ft+lt,this.bottom-et[ht.line].height));const xt=st.x(Tt);if(gt(xt,Bt,vt),Tt=_textX(Rt,Tt+ct+dt,Ut?Tt+St:this.right,o.rtl),yt(st.x(Tt),Bt,vt),Ut)ht.x+=St+lt;else if(typeof vt.text!="string"){const Ct=at.lineHeight;ht.y+=calculateLegendItemHeight(vt,Ct)}else ht.y+=mt}),restoreTextDirection(this.ctx,o.textDirection)}drawTitle(){const o=this.options,et=o.title,tt=toFont(et.font),nt=toPadding(et.padding);if(!et.display)return;const rt=getRtlAdapter(o.rtl,this.left,this.width),it=this.ctx,ot=et.position,st=tt.size/2,at=nt.top+st;let lt,ut=this.left,dt=this.width;if(this.isHorizontal())dt=Math.max(...this.lineWidths),lt=this.top+at,ut=_alignStartEnd(o.align,ut,this.right-dt);else{const ct=this.columnSizes.reduce((pt,ft)=>Math.max(pt,ft.height),0);lt=at+_alignStartEnd(o.align,this.top,this.bottom-ct-o.labels.padding-this._computeTitleHeight())}const ht=_alignStartEnd(ot,ut,ut+dt);it.textAlign=rt.textAlign(_toLeftRightCenter(ot)),it.textBaseline="middle",it.strokeStyle=et.color,it.fillStyle=et.color,it.font=tt.string,renderText(it,et.text,ht,lt,tt)}_computeTitleHeight(){const o=this.options.title,et=toFont(o.font),tt=toPadding(o.padding);return o.display?et.lineHeight+tt.height:0}_getLegendItemAt(o,et){let tt,nt,rt;if(_isBetween(o,this.left,this.right)&&_isBetween(et,this.top,this.bottom)){for(rt=this.legendHitBoxes,tt=0;ttrt.length>it.length?rt:it)),o+et.size/2+tt.measureText(nt).width}function calculateItemHeight(s,o,et){let tt=s;return typeof o.text!="string"&&(tt=calculateLegendItemHeight(o,et)),tt}function calculateLegendItemHeight(s,o){const et=s.text?s.text.length+.5:0;return o*et}function isListened(s,o){return!!((s==="mousemove"||s==="mouseout")&&(o.onHover||o.onLeave)||o.onClick&&(s==="click"||s==="mouseup"))}var plugin_legend={id:"legend",_element:Legend,start(s,o,et){const tt=s.legend=new Legend({ctx:s.ctx,options:et,chart:s});layouts.configure(s,tt,et),layouts.addBox(s,tt)},stop(s){layouts.removeBox(s,s.legend),delete s.legend},beforeUpdate(s,o,et){const tt=s.legend;layouts.configure(s,tt,et),tt.options=et},afterUpdate(s){const o=s.legend;o.buildLabels(),o.adjustHitBoxes()},afterEvent(s,o){o.replay||s.legend.handleEvent(o.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(s,o,et){const tt=o.datasetIndex,nt=et.chart;nt.isDatasetVisible(tt)?(nt.hide(tt),o.hidden=!0):(nt.show(tt),o.hidden=!1)},onHover:null,onLeave:null,labels:{color:s=>s.chart.options.color,boxWidth:40,padding:10,generateLabels(s){const o=s.data.datasets,{labels:{usePointStyle:et,pointStyle:tt,textAlign:nt,color:rt,useBorderRadius:it,borderRadius:ot}}=s.legend.options;return s._getSortedDatasetMetas().map(st=>{const at=st.controller.getStyle(et?0:void 0),lt=toPadding(at.borderWidth);return{text:o[st.index].label,fillStyle:at.backgroundColor,fontColor:rt,hidden:!st.visible,lineCap:at.borderCapStyle,lineDash:at.borderDash,lineDashOffset:at.borderDashOffset,lineJoin:at.borderJoinStyle,lineWidth:(lt.width+lt.height)/4,strokeStyle:at.borderColor,pointStyle:tt||at.pointStyle,rotation:at.rotation,textAlign:nt||at.textAlign,borderRadius:it&&(ot||at.borderRadius),datasetIndex:st.index}},this)}},title:{color:s=>s.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:s=>!s.startsWith("on"),labels:{_scriptable:s=>!["generateLabels","filter","sort"].includes(s)}}};class Title extends Element$1{constructor(o){super(),this.chart=o.chart,this.options=o.options,this.ctx=o.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(o,et){const tt=this.options;if(this.left=0,this.top=0,!tt.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=o,this.height=this.bottom=et;const nt=isArray$4(tt.text)?tt.text.length:1;this._padding=toPadding(tt.padding);const rt=nt*toFont(tt.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=rt:this.width=rt}isHorizontal(){const o=this.options.position;return o==="top"||o==="bottom"}_drawArgs(o){const{top:et,left:tt,bottom:nt,right:rt,options:it}=this,ot=it.align;let st=0,at,lt,ut;return this.isHorizontal()?(lt=_alignStartEnd(ot,tt,rt),ut=et+o,at=rt-tt):(it.position==="left"?(lt=tt+o,ut=_alignStartEnd(ot,nt,et),st=PI*-.5):(lt=rt-o,ut=_alignStartEnd(ot,et,nt),st=PI*.5),at=nt-et),{titleX:lt,titleY:ut,maxWidth:at,rotation:st}}draw(){const o=this.ctx,et=this.options;if(!et.display)return;const tt=toFont(et.font),nt=tt.lineHeight/2+this._padding.top,{titleX:rt,titleY:it,maxWidth:ot,rotation:st}=this._drawArgs(nt);renderText(o,et.text,0,0,tt,{color:et.color,maxWidth:ot,rotation:st,textAlign:_toLeftRightCenter(et.align),textBaseline:"middle",translation:[rt,it]})}}function createTitle(s,o){const et=new Title({ctx:s.ctx,options:o,chart:s});layouts.configure(s,et,o),layouts.addBox(s,et),s.titleBlock=et}var plugin_title={id:"title",_element:Title,start(s,o,et){createTitle(s,et)},stop(s){const o=s.titleBlock;layouts.removeBox(s,o),delete s.titleBlock},beforeUpdate(s,o,et){const tt=s.titleBlock;layouts.configure(s,tt,et),tt.options=et},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const map=new WeakMap;var plugin_subtitle={id:"subtitle",start(s,o,et){const tt=new Title({ctx:s.ctx,options:et,chart:s});layouts.configure(s,tt,et),layouts.addBox(s,tt),map.set(s,tt)},stop(s){layouts.removeBox(s,map.get(s)),map.delete(s)},beforeUpdate(s,o,et){const tt=map.get(s);layouts.configure(s,tt,et),tt.options=et},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const positioners={average(s){if(!s.length)return!1;let o,et,tt=0,nt=0,rt=0;for(o=0,et=s.length;oot({chart:o,initial:et.initial,numSteps:it,currentStep:Math.min(tt-et.start,it)}))}_refresh(){this._request||(this._running=!0,this._request=requestAnimFrame.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(o=Date.now()){let et=0;this._charts.forEach((tt,nt)=>{if(!tt.running||!tt.items.length)return;const rt=tt.items;let it=rt.length-1,ot=!1,st;for(;it>=0;--it)st=rt[it],st._active?(st._total>tt.duration&&(tt.duration=st._total),st.tick(o),ot=!0):(rt[it]=rt[rt.length-1],rt.pop());ot&&(nt.draw(),this._notify(nt,tt,o,"progress")),rt.length||(tt.running=!1,this._notify(nt,tt,o,"complete"),tt.initial=!1),et+=rt.length}),this._lastDate=o,et===0&&(this._running=!1)}_getAnims(o){const et=this._charts;let tt=et.get(o);return tt||(tt={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},et.set(o,tt)),tt}listen(o,et,tt){this._getAnims(o).listeners[et].push(tt)}add(o,et){!et||!et.length||this._getAnims(o).items.push(...et)}has(o){return this._getAnims(o).items.length>0}start(o){const et=this._charts.get(o);et&&(et.running=!0,et.start=Date.now(),et.duration=et.items.reduce((tt,nt)=>Math.max(tt,nt._duration),0),this._refresh())}running(o){if(!this._running)return!1;const et=this._charts.get(o);return!(!et||!et.running||!et.items.length)}stop(o){const et=this._charts.get(o);if(!et||!et.items.length)return;const tt=et.items;let nt=tt.length-1;for(;nt>=0;--nt)tt[nt].cancel();et.items=[],this._notify(o,et,Date.now(),"complete")}remove(o){return this._charts.delete(o)}}var animator=new Animator;const transparent="transparent",interpolators={boolean(s,o,et){return et>.5?o:s},color(s,o,et){const tt=color(s||transparent),nt=tt.valid&&color(o||transparent);return nt&&nt.valid?nt.mix(tt,et).hexString():o},number(s,o,et){return s+(o-s)*et}};class Animation{constructor(o,et,tt,nt){const rt=et[tt];nt=resolve([o.to,nt,rt,o.from]);const it=resolve([o.from,rt,nt]);this._active=!0,this._fn=o.fn||interpolators[o.type||typeof it],this._easing=effects[o.easing]||effects.linear,this._start=Math.floor(Date.now()+(o.delay||0)),this._duration=this._total=Math.floor(o.duration),this._loop=!!o.loop,this._target=et,this._prop=tt,this._from=it,this._to=nt,this._promises=void 0}active(){return this._active}update(o,et,tt){if(this._active){this._notify(!1);const nt=this._target[this._prop],rt=tt-this._start,it=this._duration-rt;this._start=tt,this._duration=Math.floor(Math.max(it,o.duration)),this._total+=rt,this._loop=!!o.loop,this._to=resolve([o.to,et,nt,o.from]),this._from=resolve([o.from,nt,et])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(o){const et=o-this._start,tt=this._duration,nt=this._prop,rt=this._from,it=this._loop,ot=this._to;let st;if(this._active=rt!==ot&&(it||et1?2-st:st,st=this._easing(Math.min(1,Math.max(0,st))),this._target[nt]=this._fn(rt,ot,st)}wait(){const o=this._promises||(this._promises=[]);return new Promise((et,tt)=>{o.push({res:et,rej:tt})})}_notify(o){const et=o?"res":"rej",tt=this._promises||[];for(let nt=0;nt{const rt=o[nt];if(!isObject$2(rt))return;const it={};for(const ot of et)it[ot]=rt[ot];(isArray$4(rt.properties)&&rt.properties||[nt]).forEach(ot=>{(ot===nt||!tt.has(ot))&&tt.set(ot,it)})})}_animateOptions(o,et){const tt=et.options,nt=resolveTargetOptions(o,tt);if(!nt)return[];const rt=this._createAnimations(nt,tt);return tt.$shared&&awaitAll(o.options.$animations,tt).then(()=>{o.options=tt},()=>{}),rt}_createAnimations(o,et){const tt=this._properties,nt=[],rt=o.$animations||(o.$animations={}),it=Object.keys(et),ot=Date.now();let st;for(st=it.length-1;st>=0;--st){const at=it[st];if(at.charAt(0)==="$")continue;if(at==="options"){nt.push(...this._animateOptions(o,et));continue}const lt=et[at];let ut=rt[at];const dt=tt.get(at);if(ut)if(dt&&ut.active()){ut.update(dt,lt,ot);continue}else ut.cancel();if(!dt||!dt.duration){o[at]=lt;continue}rt[at]=ut=new Animation(dt,o,at,lt),nt.push(ut)}return nt}update(o,et){if(this._properties.size===0){Object.assign(o,et);return}const tt=this._createAnimations(o,et);if(tt.length)return animator.add(this._chart,tt),!0}}function awaitAll(s,o){const et=[],tt=Object.keys(o);for(let nt=0;nt0||!et&&rt<0)return nt.index}return null}function updateStacks(s,o){const{chart:et,_cachedMeta:tt}=s,nt=et._stacks||(et._stacks={}),{iScale:rt,vScale:it,index:ot}=tt,st=rt.axis,at=it.axis,lt=getStackKey(rt,it,tt),ut=o.length;let dt;for(let ht=0;htet[tt].axis===o).shift()}function createDatasetContext(s,o){return createContext(s,{active:!1,dataset:void 0,datasetIndex:o,index:o,mode:"default",type:"dataset"})}function createDataContext(s,o,et){return createContext(s,{active:!1,dataIndex:o,parsed:void 0,raw:void 0,element:et,index:o,mode:"default",type:"data"})}function clearStacks(s,o){const et=s.controller.index,tt=s.vScale&&s.vScale.axis;if(tt){o=o||s._parsed;for(const nt of o){const rt=nt._stacks;if(!rt||rt[tt]===void 0||rt[tt][et]===void 0)return;delete rt[tt][et],rt[tt]._visualValues!==void 0&&rt[tt]._visualValues[et]!==void 0&&delete rt[tt]._visualValues[et]}}}const isDirectUpdateMode=s=>s==="reset"||s==="none",cloneIfNotShared=(s,o)=>o?s:Object.assign({},s),createStack=(s,o,et)=>s&&!o.hidden&&o._stacked&&{keys:getSortedDatasetIndices(et,!0),values:null};class DatasetController{constructor(o,et){this.chart=o,this._ctx=o.ctx,this.index=et,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const o=this._cachedMeta;this.configure(),this.linkScales(),o._stacked=isStacked(o.vScale,o),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(o){this.index!==o&&clearStacks(this._cachedMeta),this.index=o}linkScales(){const o=this.chart,et=this._cachedMeta,tt=this.getDataset(),nt=(ut,dt,ht,ct)=>ut==="x"?dt:ut==="r"?ct:ht,rt=et.xAxisID=valueOrDefault(tt.xAxisID,getFirstScaleId(o,"x")),it=et.yAxisID=valueOrDefault(tt.yAxisID,getFirstScaleId(o,"y")),ot=et.rAxisID=valueOrDefault(tt.rAxisID,getFirstScaleId(o,"r")),st=et.indexAxis,at=et.iAxisID=nt(st,rt,it,ot),lt=et.vAxisID=nt(st,it,rt,ot);et.xScale=this.getScaleForId(rt),et.yScale=this.getScaleForId(it),et.rScale=this.getScaleForId(ot),et.iScale=this.getScaleForId(at),et.vScale=this.getScaleForId(lt)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(o){return this.chart.scales[o]}_getOtherScale(o){const et=this._cachedMeta;return o===et.iScale?et.vScale:et.iScale}reset(){this._update("reset")}_destroy(){const o=this._cachedMeta;this._data&&unlistenArrayEvents(this._data,this),o._stacked&&clearStacks(o)}_dataCheck(){const o=this.getDataset(),et=o.data||(o.data=[]),tt=this._data;if(isObject$2(et))this._data=convertObjectDataToArray(et);else if(tt!==et){if(tt){unlistenArrayEvents(tt,this);const nt=this._cachedMeta;clearStacks(nt),nt._parsed=[]}et&&Object.isExtensible(et)&&listenArrayEvents(et,this),this._syncList=[],this._data=et}}addElements(){const o=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(o.dataset=new this.datasetElementType)}buildOrUpdateElements(o){const et=this._cachedMeta,tt=this.getDataset();let nt=!1;this._dataCheck();const rt=et._stacked;et._stacked=isStacked(et.vScale,et),et.stack!==tt.stack&&(nt=!0,clearStacks(et),et.stack=tt.stack),this._resyncElements(o),(nt||rt!==et._stacked)&&updateStacks(this,et._parsed)}configure(){const o=this.chart.config,et=o.datasetScopeKeys(this._type),tt=o.getOptionScopes(this.getDataset(),et,!0);this.options=o.createResolver(tt,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(o,et){const{_cachedMeta:tt,_data:nt}=this,{iScale:rt,_stacked:it}=tt,ot=rt.axis;let st=o===0&&et===nt.length?!0:tt._sorted,at=o>0&&tt._parsed[o-1],lt,ut,dt;if(this._parsing===!1)tt._parsed=nt,tt._sorted=!0,dt=nt;else{isArray$4(nt[o])?dt=this.parseArrayData(tt,nt,o,et):isObject$2(nt[o])?dt=this.parseObjectData(tt,nt,o,et):dt=this.parsePrimitiveData(tt,nt,o,et);const ht=()=>ut[ot]===null||at&&ut[ot]pt||ut=0;--dt)if(!ct()){this.updateRangeFromParsed(at,o,ht,st);break}}return at}getAllParsedValues(o){const et=this._cachedMeta._parsed,tt=[];let nt,rt,it;for(nt=0,rt=et.length;nt=0&&othis.getContext(tt,nt,et),pt=at.resolveNamedOptions(dt,ht,ct,ut);return pt.$shared&&(pt.$shared=st,rt[it]=Object.freeze(cloneIfNotShared(pt,st))),pt}_resolveAnimations(o,et,tt){const nt=this.chart,rt=this._cachedDataOpts,it=`animation-${et}`,ot=rt[it];if(ot)return ot;let st;if(nt.options.animation!==!1){const lt=this.chart.config,ut=lt.datasetAnimationScopeKeys(this._type,et),dt=lt.getOptionScopes(this.getDataset(),ut);st=lt.createResolver(dt,this.getContext(o,tt,et))}const at=new Animations(nt,st&&st.animations);return st&&st._cacheable&&(rt[it]=Object.freeze(at)),at}getSharedOptions(o){if(o.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},o))}includeOptions(o,et){return!et||isDirectUpdateMode(o)||this.chart._animationsDisabled}_getSharedOptions(o,et){const tt=this.resolveDataElementOptions(o,et),nt=this._sharedOptions,rt=this.getSharedOptions(tt),it=this.includeOptions(et,rt)||rt!==nt;return this.updateSharedOptions(rt,et,tt),{sharedOptions:rt,includeOptions:it}}updateElement(o,et,tt,nt){isDirectUpdateMode(nt)?Object.assign(o,tt):this._resolveAnimations(et,nt).update(o,tt)}updateSharedOptions(o,et,tt){o&&!isDirectUpdateMode(et)&&this._resolveAnimations(void 0,et).update(o,tt)}_setStyle(o,et,tt,nt){o.active=nt;const rt=this.getStyle(et,nt);this._resolveAnimations(et,tt,nt).update(o,{options:!nt&&this.getSharedOptions(rt)||rt})}removeHoverStyle(o,et,tt){this._setStyle(o,tt,"active",!1)}setHoverStyle(o,et,tt){this._setStyle(o,tt,"active",!0)}_removeDatasetHoverStyle(){const o=this._cachedMeta.dataset;o&&this._setStyle(o,void 0,"active",!1)}_setDatasetHoverStyle(){const o=this._cachedMeta.dataset;o&&this._setStyle(o,void 0,"active",!0)}_resyncElements(o){const et=this._data,tt=this._cachedMeta.data;for(const[ot,st,at]of this._syncList)this[ot](st,at);this._syncList=[];const nt=tt.length,rt=et.length,it=Math.min(rt,nt);it&&this.parse(0,it),rt>nt?this._insertElements(nt,rt-nt,o):rt{for(at.length+=et,ot=at.length-1;ot>=it;ot--)at[ot]=at[ot-et]};for(st(rt),ot=o;otnt-rt))}return s._cache.$bar}function computeMinSampleSize(s){const o=s.iScale,et=getAllScaleValues(o,s.type);let tt=o._length,nt,rt,it,ot;const st=()=>{it===32767||it===-32768||(defined$3(ot)&&(tt=Math.min(tt,Math.abs(it-ot)||tt)),ot=it)};for(nt=0,rt=et.length;nt0?nt[s-1]:null,ot=sMath.abs(ot)&&(st=ot,at=it),o[et.axis]=at,o._custom={barStart:st,barEnd:at,start:nt,end:rt,min:it,max:ot}}function parseValue(s,o,et,tt){return isArray$4(s)?parseFloatBar(s,o,et,tt):o[et.axis]=et.parse(s,tt),o}function parseArrayOrPrimitive(s,o,et,tt){const nt=s.iScale,rt=s.vScale,it=nt.getLabels(),ot=nt===rt,st=[];let at,lt,ut,dt;for(at=et,lt=et+tt;at=et?1:-1)}function borderProps(s){let o,et,tt,nt,rt;return s.horizontal?(o=s.base>s.x,et="left",tt="right"):(o=s.basest.controller.options.grouped),rt=tt.options.stacked,it=[],ot=st=>{const at=st.controller.getParsed(et),lt=at&&at[st.vScale.axis];if(isNullOrUndef(lt)||isNaN(lt))return!0};for(const st of nt)if(!(et!==void 0&&ot(st))&&((rt===!1||it.indexOf(st.stack)===-1||rt===void 0&&st.stack===void 0)&&it.push(st.stack),st.index===o))break;return it.length||it.push(void 0),it}_getStackCount(o){return this._getStacks(void 0,o).length}_getStackIndex(o,et,tt){const nt=this._getStacks(o,tt),rt=et!==void 0?nt.indexOf(et):-1;return rt===-1?nt.length-1:rt}_getRuler(){const o=this.options,et=this._cachedMeta,tt=et.iScale,nt=[];let rt,it;for(rt=0,it=et.data.length;rt=0;--tt)et=Math.max(et,o[tt].size(this.resolveDataElementOptions(tt))/2);return et>0&&et}getLabelAndValue(o){const et=this._cachedMeta,tt=this.chart.data.labels||[],{xScale:nt,yScale:rt}=et,it=this.getParsed(o),ot=nt.getLabelForValue(it.x),st=rt.getLabelForValue(it.y),at=it._custom;return{label:tt[o]||"",value:"("+ot+", "+st+(at?", "+at:"")+")"}}update(o){const et=this._cachedMeta.data;this.updateElements(et,0,et.length,o)}updateElements(o,et,tt,nt){const rt=nt==="reset",{iScale:it,vScale:ot}=this._cachedMeta,{sharedOptions:st,includeOptions:at}=this._getSharedOptions(et,nt),lt=it.axis,ut=ot.axis;for(let dt=et;dt_angleBetween(Ut,ot,st,!0)?1:Math.max(Ft,Ft*et,mt,mt*et),ct=(Ut,Ft,mt)=>_angleBetween(Ut,ot,st,!0)?-1:Math.min(Ft,Ft*et,mt,mt*et),pt=ht(0,at,ut),ft=ht(HALF_PI,lt,dt),gt=ct(PI,at,ut),yt=ct(PI+HALF_PI,lt,dt);tt=(pt-gt)/2,nt=(ft-yt)/2,rt=-(pt+gt)/2,it=-(ft+yt)/2}return{ratioX:tt,ratioY:nt,offsetX:rt,offsetY:it}}class DoughnutController extends DatasetController{constructor(o,et){super(o,et),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(o,et){const tt=this.getDataset().data,nt=this._cachedMeta;if(this._parsing===!1)nt._parsed=tt;else{let rt=st=>+tt[st];if(isObject$2(tt[o])){const{key:st="value"}=this._parsing;rt=at=>+resolveObjectKey(tt[at],st)}let it,ot;for(it=o,ot=o+et;it0&&!isNaN(o)?TAU$1*(Math.abs(o)/et):0}getLabelAndValue(o){const et=this._cachedMeta,tt=this.chart,nt=tt.data.labels||[],rt=formatNumber(et._parsed[o],tt.options.locale);return{label:nt[o]||"",value:rt}}getMaxBorderWidth(o){let et=0;const tt=this.chart;let nt,rt,it,ot,st;if(!o){for(nt=0,rt=tt.data.datasets.length;nts!=="spacing",_indexable:s=>s!=="spacing"}),He(DoughnutController,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(s){const o=s.data;if(o.labels.length&&o.datasets.length){const{labels:{pointStyle:et,color:tt}}=s.legend.options;return o.labels.map((nt,rt)=>{const it=s.getDatasetMeta(0).controller.getStyle(rt);return{text:nt,fillStyle:it.backgroundColor,strokeStyle:it.borderColor,fontColor:tt,lineWidth:it.borderWidth,pointStyle:et,hidden:!s.getDataVisibility(rt),index:rt}})}return[]}},onClick(s,o,et){et.chart.toggleDataVisibility(o.index),et.chart.update()}}}});class LineController extends DatasetController{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(o){const et=this._cachedMeta,{dataset:tt,data:nt=[],_dataset:rt}=et,it=this.chart._animationsDisabled;let{start:ot,count:st}=_getStartAndCountOfVisiblePoints(et,nt,it);this._drawStart=ot,this._drawCount=st,_scaleRangesChanged(et)&&(ot=0,st=nt.length),tt._chart=this.chart,tt._datasetIndex=this.index,tt._decimated=!!rt._decimated,tt.points=nt;const at=this.resolveDatasetElementOptions(o);this.options.showLine||(at.borderWidth=0),at.segment=this.options.segment,this.updateElement(tt,void 0,{animated:!it,options:at},o),this.updateElements(nt,ot,st,o)}updateElements(o,et,tt,nt){const rt=nt==="reset",{iScale:it,vScale:ot,_stacked:st,_dataset:at}=this._cachedMeta,{sharedOptions:lt,includeOptions:ut}=this._getSharedOptions(et,nt),dt=it.axis,ht=ot.axis,{spanGaps:ct,segment:pt}=this.options,ft=isNumber$1(ct)?ct:Number.POSITIVE_INFINITY,gt=this.chart._animationsDisabled||rt||nt==="none",yt=et+tt,Ut=o.length;let Ft=et>0&&this.getParsed(et-1);for(let mt=0;mt=yt){At.skip=!0;continue}const Lt=this.getParsed(mt),Rt=isNullOrUndef(Lt[ht]),St=At[dt]=it.getPixelForValue(Lt[dt],mt),Tt=At[ht]=rt||Rt?ot.getBasePixel():ot.getPixelForValue(st?this.applyStack(ot,Lt,st):Lt[ht],mt);At.skip=isNaN(St)||isNaN(Tt)||Rt,At.stop=mt>0&&Math.abs(Lt[dt]-Ft[dt])>ft,pt&&(At.parsed=Lt,At.raw=at.data[mt]),ut&&(At.options=lt||this.resolveDataElementOptions(mt,vt.active?"active":nt)),gt||this.updateElement(vt,mt,At,nt),Ft=Lt}}getMaxOverflow(){const o=this._cachedMeta,et=o.dataset,tt=et.options&&et.options.borderWidth||0,nt=o.data||[];if(!nt.length)return tt;const rt=nt[0].size(this.resolveDataElementOptions(0)),it=nt[nt.length-1].size(this.resolveDataElementOptions(nt.length-1));return Math.max(tt,rt,it)/2}draw(){const o=this._cachedMeta;o.dataset.updateControlPoints(this.chart.chartArea,o.iScale.axis),super.draw()}}He(LineController,"id","line"),He(LineController,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),He(LineController,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});class PolarAreaController extends DatasetController{constructor(o,et){super(o,et),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(o){const et=this._cachedMeta,tt=this.chart,nt=tt.data.labels||[],rt=formatNumber(et._parsed[o].r,tt.options.locale);return{label:nt[o]||"",value:rt}}parseObjectData(o,et,tt,nt){return _parseObjectDataRadialScale.bind(this)(o,et,tt,nt)}update(o){const et=this._cachedMeta.data;this._updateRadius(),this.updateElements(et,0,et.length,o)}getMinMax(){const o=this._cachedMeta,et={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return o.data.forEach((tt,nt)=>{const rt=this.getParsed(nt).r;!isNaN(rt)&&this.chart.getDataVisibility(nt)&&(rtet.max&&(et.max=rt))}),et}_updateRadius(){const o=this.chart,et=o.chartArea,tt=o.options,nt=Math.min(et.right-et.left,et.bottom-et.top),rt=Math.max(nt/2,0),it=Math.max(tt.cutoutPercentage?rt/100*tt.cutoutPercentage:1,0),ot=(rt-it)/o.getVisibleDatasetCount();this.outerRadius=rt-ot*this.index,this.innerRadius=this.outerRadius-ot}updateElements(o,et,tt,nt){const rt=nt==="reset",it=this.chart,ot=it.options.animation,st=this._cachedMeta.rScale,at=st.xCenter,lt=st.yCenter,ut=st.getIndexAngle(0)-.5*PI;let dt=ut,ht;const ct=360/this.countVisibleElements();for(ht=0;ht{!isNaN(this.getParsed(nt).r)&&this.chart.getDataVisibility(nt)&&et++}),et}_computeAngle(o,et,tt){return this.chart.getDataVisibility(o)?toRadians$1(this.resolveDataElementOptions(o,et).angle||tt):0}}He(PolarAreaController,"id","polarArea"),He(PolarAreaController,"defaults",{dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0}),He(PolarAreaController,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(s){const o=s.data;if(o.labels.length&&o.datasets.length){const{labels:{pointStyle:et,color:tt}}=s.legend.options;return o.labels.map((nt,rt)=>{const it=s.getDatasetMeta(0).controller.getStyle(rt);return{text:nt,fillStyle:it.backgroundColor,strokeStyle:it.borderColor,fontColor:tt,lineWidth:it.borderWidth,pointStyle:et,hidden:!s.getDataVisibility(rt),index:rt}})}return[]}},onClick(s,o,et){et.chart.toggleDataVisibility(o.index),et.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}});class PieController extends DoughnutController{}He(PieController,"id","pie"),He(PieController,"defaults",{cutout:0,rotation:0,circumference:360,radius:"100%"});class RadarController extends DatasetController{getLabelAndValue(o){const et=this._cachedMeta.vScale,tt=this.getParsed(o);return{label:et.getLabels()[o],value:""+et.getLabelForValue(tt[et.axis])}}parseObjectData(o,et,tt,nt){return _parseObjectDataRadialScale.bind(this)(o,et,tt,nt)}update(o){const et=this._cachedMeta,tt=et.dataset,nt=et.data||[],rt=et.iScale.getLabels();if(tt.points=nt,o!=="resize"){const it=this.resolveDatasetElementOptions(o);this.options.showLine||(it.borderWidth=0);const ot={_loop:!0,_fullLoop:rt.length===nt.length,options:it};this.updateElement(tt,void 0,ot,o)}this.updateElements(nt,0,nt.length,o)}updateElements(o,et,tt,nt){const rt=this._cachedMeta.rScale,it=nt==="reset";for(let ot=et;ot0&&this.getParsed(et-1);for(let Ft=et;Ft0&&Math.abs(vt[ht]-Ut[ht])>gt,ft&&(At.parsed=vt,At.raw=at.data[Ft]),dt&&(At.options=ut||this.resolveDataElementOptions(Ft,mt.active?"active":nt)),yt||this.updateElement(mt,Ft,At,nt),Ut=vt}this.updateSharedOptions(ut,nt,lt)}getMaxOverflow(){const o=this._cachedMeta,et=o.data||[];if(!this.options.showLine){let ot=0;for(let st=et.length-1;st>=0;--st)ot=Math.max(ot,et[st].size(this.resolveDataElementOptions(st))/2);return ot>0&&ot}const tt=o.dataset,nt=tt.options&&tt.options.borderWidth||0;if(!et.length)return nt;const rt=et[0].size(this.resolveDataElementOptions(0)),it=et[et.length-1].size(this.resolveDataElementOptions(et.length-1));return Math.max(nt,rt,it)/2}}He(ScatterController,"id","scatter"),He(ScatterController,"defaults",{datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1}),He(ScatterController,"overrides",{interaction:{mode:"point"},scales:{x:{type:"linear"},y:{type:"linear"}}});var controllers=Object.freeze({__proto__:null,BarController,BubbleController,DoughnutController,LineController,PolarAreaController,PieController,RadarController,ScatterController});function abstract(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class DateAdapterBase{static override(o){Object.assign(DateAdapterBase.prototype,o)}constructor(o){this.options=o||{}}init(){}formats(){return abstract()}parse(){return abstract()}format(){return abstract()}add(){return abstract()}diff(){return abstract()}startOf(){return abstract()}endOf(){return abstract()}}var adapters={_date:DateAdapterBase};function binarySearch(s,o,et,tt){const{controller:nt,data:rt,_sorted:it}=s,ot=nt._cachedMeta.iScale;if(ot&&o===ot.axis&&o!=="r"&&it&&rt.length){const st=ot._reversePixels?_rlookupByKey:_lookupByKey;if(tt){if(nt._sharedOptions){const at=rt[0],lt=typeof at.getRange=="function"&&at.getRange(o);if(lt){const ut=st(rt,o,et-lt),dt=st(rt,o,et+lt);return{lo:ut.lo,hi:dt.hi}}}}else return st(rt,o,et)}return{lo:0,hi:rt.length-1}}function evaluateInteractionItems(s,o,et,tt,nt){const rt=s.getSortedVisibleDatasetMetas(),it=et[o];for(let ot=0,st=rt.length;ot{st[it](o[et],nt)&&(rt.push({element:st,datasetIndex:at,index:lt}),ot=ot||st.inRange(o.x,o.y,nt))}),tt&&!ot?[]:rt}var Interaction={evaluateInteractionItems,modes:{index(s,o,et,tt){const nt=getRelativePosition(o,s),rt=et.axis||"x",it=et.includeInvisible||!1,ot=et.intersect?getIntersectItems(s,nt,rt,tt,it):getNearestItems(s,nt,rt,!1,tt,it),st=[];return ot.length?(s.getSortedVisibleDatasetMetas().forEach(at=>{const lt=ot[0].index,ut=at.data[lt];ut&&!ut.skip&&st.push({element:ut,datasetIndex:at.index,index:lt})}),st):[]},dataset(s,o,et,tt){const nt=getRelativePosition(o,s),rt=et.axis||"xy",it=et.includeInvisible||!1;let ot=et.intersect?getIntersectItems(s,nt,rt,tt,it):getNearestItems(s,nt,rt,!1,tt,it);if(ot.length>0){const st=ot[0].datasetIndex,at=s.getDatasetMeta(st).data;ot=[];for(let lt=0;ltet.pos===o)}function filterDynamicPositionByAxis(s,o){return s.filter(et=>STATIC_POSITIONS.indexOf(et.pos)===-1&&et.box.axis===o)}function sortByWeight(s,o){return s.sort((et,tt)=>{const nt=o?tt:et,rt=o?et:tt;return nt.weight===rt.weight?nt.index-rt.index:nt.weight-rt.weight})}function wrapBoxes(s){const o=[];let et,tt,nt,rt,it,ot;for(et=0,tt=(s||[]).length;etat.box.fullSize),!0),tt=sortByWeight(filterByPosition(o,"left"),!0),nt=sortByWeight(filterByPosition(o,"right")),rt=sortByWeight(filterByPosition(o,"top"),!0),it=sortByWeight(filterByPosition(o,"bottom")),ot=filterDynamicPositionByAxis(o,"x"),st=filterDynamicPositionByAxis(o,"y");return{fullSize:et,leftAndTop:tt.concat(rt),rightAndBottom:nt.concat(st).concat(it).concat(ot),chartArea:filterByPosition(o,"chartArea"),vertical:tt.concat(nt).concat(st),horizontal:rt.concat(it).concat(ot)}}function getCombinedMax(s,o,et,tt){return Math.max(s[et],o[et])+Math.max(s[tt],o[tt])}function updateMaxPadding(s,o){s.top=Math.max(s.top,o.top),s.left=Math.max(s.left,o.left),s.bottom=Math.max(s.bottom,o.bottom),s.right=Math.max(s.right,o.right)}function updateDims(s,o,et,tt){const{pos:nt,box:rt}=et,it=s.maxPadding;if(!isObject$2(nt)){et.size&&(s[nt]-=et.size);const ut=tt[et.stack]||{size:0,count:1};ut.size=Math.max(ut.size,et.horizontal?rt.height:rt.width),et.size=ut.size/ut.count,s[nt]+=et.size}rt.getPadding&&updateMaxPadding(it,rt.getPadding());const ot=Math.max(0,o.outerWidth-getCombinedMax(it,s,"left","right")),st=Math.max(0,o.outerHeight-getCombinedMax(it,s,"top","bottom")),at=ot!==s.w,lt=st!==s.h;return s.w=ot,s.h=st,et.horizontal?{same:at,other:lt}:{same:lt,other:at}}function handleMaxPadding(s){const o=s.maxPadding;function et(tt){const nt=Math.max(o[tt]-s[tt],0);return s[tt]+=nt,nt}s.y+=et("top"),s.x+=et("left"),et("right"),et("bottom")}function getMargins(s,o){const et=o.maxPadding;function tt(nt){const rt={left:0,top:0,right:0,bottom:0};return nt.forEach(it=>{rt[it]=Math.max(o[it],et[it])}),rt}return tt(s?["left","right"]:["top","bottom"])}function fitBoxes(s,o,et,tt){const nt=[];let rt,it,ot,st,at,lt;for(rt=0,it=s.length,at=0;rt{typeof pt.beforeLayout=="function"&&pt.beforeLayout()});const lt=st.reduce((pt,ft)=>ft.box.options&&ft.box.options.display===!1?pt:pt+1,0)||1,ut=Object.freeze({outerWidth:o,outerHeight:et,padding:nt,availableWidth:rt,availableHeight:it,vBoxMaxWidth:rt/2/lt,hBoxMaxHeight:it/2}),dt=Object.assign({},nt);updateMaxPadding(dt,toPadding(tt));const ht=Object.assign({maxPadding:dt,w:rt,h:it,x:nt.left,y:nt.top},nt),ct=setLayoutDims(st.concat(at),ut);fitBoxes(ot.fullSize,ht,ut,ct),fitBoxes(st,ht,ut,ct),fitBoxes(at,ht,ut,ct)&&fitBoxes(st,ht,ut,ct),handleMaxPadding(ht),placeBoxes(ot.leftAndTop,ht,ut,ct),ht.x+=ht.w,ht.y+=ht.h,placeBoxes(ot.rightAndBottom,ht,ut,ct),s.chartArea={left:ht.left,top:ht.top,right:ht.left+ht.w,bottom:ht.top+ht.h,height:ht.h,width:ht.w},each(ot.chartArea,pt=>{const ft=pt.box;Object.assign(ft,s.chartArea),ft.update(ht.w,ht.h,{left:0,top:0,right:0,bottom:0})})}};class BasePlatform{acquireContext(o,et){}releaseContext(o){return!1}addEventListener(o,et,tt){}removeEventListener(o,et,tt){}getDevicePixelRatio(){return 1}getMaximumSize(o,et,tt,nt){return et=Math.max(0,et||o.width),tt=tt||o.height,{width:et,height:Math.max(0,nt?Math.floor(et/nt):tt)}}isAttached(o){return!0}updateConfig(o){}}class BasicPlatform extends BasePlatform{acquireContext(o){return o&&o.getContext&&o.getContext("2d")||null}updateConfig(o){o.options.animation=!1}}const EXPANDO_KEY="$chartjs",EVENT_TYPES={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},isNullOrEmpty=s=>s===null||s==="";function initCanvas(s,o){const et=s.style,tt=s.getAttribute("height"),nt=s.getAttribute("width");if(s[EXPANDO_KEY]={initial:{height:tt,width:nt,style:{display:et.display,height:et.height,width:et.width}}},et.display=et.display||"block",et.boxSizing=et.boxSizing||"border-box",isNullOrEmpty(nt)){const rt=readUsedSize(s,"width");rt!==void 0&&(s.width=rt)}if(isNullOrEmpty(tt))if(s.style.height==="")s.height=s.width/(o||2);else{const rt=readUsedSize(s,"height");rt!==void 0&&(s.height=rt)}return s}const eventListenerOptions=supportsEventListenerOptions?{passive:!0}:!1;function addListener(s,o,et){s.addEventListener(o,et,eventListenerOptions)}function removeListener(s,o,et){s.canvas.removeEventListener(o,et,eventListenerOptions)}function fromNativeEvent(s,o){const et=EVENT_TYPES[s.type]||s.type,{x:tt,y:nt}=getRelativePosition(s,o);return{type:et,chart:o,native:s,x:tt!==void 0?tt:null,y:nt!==void 0?nt:null}}function nodeListContains(s,o){for(const et of s)if(et===o||et.contains(o))return!0}function createAttachObserver(s,o,et){const tt=s.canvas,nt=new MutationObserver(rt=>{let it=!1;for(const ot of rt)it=it||nodeListContains(ot.addedNodes,tt),it=it&&!nodeListContains(ot.removedNodes,tt);it&&et()});return nt.observe(document,{childList:!0,subtree:!0}),nt}function createDetachObserver(s,o,et){const tt=s.canvas,nt=new MutationObserver(rt=>{let it=!1;for(const ot of rt)it=it||nodeListContains(ot.removedNodes,tt),it=it&&!nodeListContains(ot.addedNodes,tt);it&&et()});return nt.observe(document,{childList:!0,subtree:!0}),nt}const drpListeningCharts=new Map;let oldDevicePixelRatio=0;function onWindowResize(){const s=window.devicePixelRatio;s!==oldDevicePixelRatio&&(oldDevicePixelRatio=s,drpListeningCharts.forEach((o,et)=>{et.currentDevicePixelRatio!==s&&o()}))}function listenDevicePixelRatioChanges(s,o){drpListeningCharts.size||window.addEventListener("resize",onWindowResize),drpListeningCharts.set(s,o)}function unlistenDevicePixelRatioChanges(s){drpListeningCharts.delete(s),drpListeningCharts.size||window.removeEventListener("resize",onWindowResize)}function createResizeObserver(s,o,et){const tt=s.canvas,nt=tt&&_getParentNode(tt);if(!nt)return;const rt=throttled((ot,st)=>{const at=nt.clientWidth;et(ot,st),at{const st=ot[0],at=st.contentRect.width,lt=st.contentRect.height;at===0&<===0||rt(at,lt)});return it.observe(nt),listenDevicePixelRatioChanges(s,rt),it}function releaseObserver(s,o,et){et&&et.disconnect(),o==="resize"&&unlistenDevicePixelRatioChanges(s)}function createProxyAndListen(s,o,et){const tt=s.canvas,nt=throttled(rt=>{s.ctx!==null&&et(fromNativeEvent(rt,s))},s);return addListener(tt,o,nt),nt}class DomPlatform extends BasePlatform{acquireContext(o,et){const tt=o&&o.getContext&&o.getContext("2d");return tt&&tt.canvas===o?(initCanvas(o,et),tt):null}releaseContext(o){const et=o.canvas;if(!et[EXPANDO_KEY])return!1;const tt=et[EXPANDO_KEY].initial;["height","width"].forEach(rt=>{const it=tt[rt];isNullOrUndef(it)?et.removeAttribute(rt):et.setAttribute(rt,it)});const nt=tt.style||{};return Object.keys(nt).forEach(rt=>{et.style[rt]=nt[rt]}),et.width=et.width,delete et[EXPANDO_KEY],!0}addEventListener(o,et,tt){this.removeEventListener(o,et);const nt=o.$proxies||(o.$proxies={}),rt={attach:createAttachObserver,detach:createDetachObserver,resize:createResizeObserver}[et]||createProxyAndListen;nt[et]=rt(o,et,tt)}removeEventListener(o,et){const tt=o.$proxies||(o.$proxies={}),nt=tt[et];nt&&(({attach:releaseObserver,detach:releaseObserver,resize:releaseObserver}[et]||removeListener)(o,et,nt),tt[et]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(o,et,tt,nt){return getMaximumSize(o,et,tt,nt)}isAttached(o){const et=_getParentNode(o);return!!(et&&et.isConnected)}}function _detectPlatform(s){return!_isDomSupported()||typeof OffscreenCanvas<"u"&&s instanceof OffscreenCanvas?BasicPlatform:DomPlatform}let Element$1=class{constructor(){He(this,"active",!1)}tooltipPosition(o){const{x:et,y:tt}=this.getProps(["x","y"],o);return{x:et,y:tt}}hasValue(){return isNumber$1(this.x)&&isNumber$1(this.y)}getProps(o,et){const tt=this.$animations;if(!et||!tt)return this;const nt={};return o.forEach(rt=>{nt[rt]=tt[rt]&&tt[rt].active()?tt[rt]._to:this[rt]}),nt}};He(Element$1,"defaults",{}),He(Element$1,"defaultRoutes");function autoSkip(s,o){const et=s.options.ticks,tt=determineMaxTicks(s),nt=Math.min(et.maxTicksLimit||tt,tt),rt=et.major.enabled?getMajorIndices(o):[],it=rt.length,ot=rt[0],st=rt[it-1],at=[];if(it>nt)return skipMajors(o,at,rt,it/nt),at;const lt=calculateSpacing(rt,o,nt);if(it>0){let ut,dt;const ht=it>1?Math.round((st-ot)/(it-1)):null;for(skip(o,at,lt,isNullOrUndef(ht)?0:ot-ht,ot),ut=0,dt=it-1;utnt)return st}return Math.max(nt,1)}function getMajorIndices(s){const o=[];let et,tt;for(et=0,tt=s.length;ets==="left"?"right":s==="right"?"left":s,offsetFromEdge=(s,o,et)=>o==="top"||o==="left"?s[o]+et:s[o]-et;function sample(s,o){const et=[],tt=s.length/o,nt=s.length;let rt=0;for(;rtit+ot)))return st}function garbageCollect(s,o){each(s,et=>{const tt=et.gc,nt=tt.length/2;let rt;if(nt>o){for(rt=0;rttt?tt:et,tt=nt&&et>tt?et:tt,{min:finiteOrDefault(et,finiteOrDefault(tt,et)),max:finiteOrDefault(tt,finiteOrDefault(et,tt))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const o=this.chart.data;return this.options.labels||(this.isHorizontal()?o.xLabels:o.yLabels)||o.labels||[]}getLabelItems(o=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(o))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){callback(this.options.beforeUpdate,[this])}update(o,et,tt){const{beginAtZero:nt,grace:rt,ticks:it}=this.options,ot=it.sampleSize;this.beforeUpdate(),this.maxWidth=o,this.maxHeight=et,this._margins=tt=Object.assign({left:0,right:0,top:0,bottom:0},tt),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+tt.left+tt.right:this.height+tt.top+tt.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=_addGrace(this,rt,nt),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const st=ot=rt||tt<=1||!this.isHorizontal()){this.labelRotation=nt;return}const lt=this._getLabelSizes(),ut=lt.widest.width,dt=lt.highest.height,ht=_limitValue(this.chart.width-ut,0,this.maxWidth);ot=o.offset?this.maxWidth/tt:ht/(tt-1),ut+6>ot&&(ot=ht/(tt-(o.offset?.5:1)),st=this.maxHeight-getTickMarkLength(o.grid)-et.padding-getTitleHeight(o.title,this.chart.options.font),at=Math.sqrt(ut*ut+dt*dt),it=toDegrees$1(Math.min(Math.asin(_limitValue((lt.highest.height+6)/ot,-1,1)),Math.asin(_limitValue(st/at,-1,1))-Math.asin(_limitValue(dt/at,-1,1)))),it=Math.max(nt,Math.min(rt,it))),this.labelRotation=it}afterCalculateLabelRotation(){callback(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){callback(this.options.beforeFit,[this])}fit(){const o={width:0,height:0},{chart:et,options:{ticks:tt,title:nt,grid:rt}}=this,it=this._isVisible(),ot=this.isHorizontal();if(it){const st=getTitleHeight(nt,et.options.font);if(ot?(o.width=this.maxWidth,o.height=getTickMarkLength(rt)+st):(o.height=this.maxHeight,o.width=getTickMarkLength(rt)+st),tt.display&&this.ticks.length){const{first:at,last:lt,widest:ut,highest:dt}=this._getLabelSizes(),ht=tt.padding*2,ct=toRadians$1(this.labelRotation),pt=Math.cos(ct),ft=Math.sin(ct);if(ot){const gt=tt.mirror?0:ft*ut.width+pt*dt.height;o.height=Math.min(this.maxHeight,o.height+gt+ht)}else{const gt=tt.mirror?0:pt*ut.width+ft*dt.height;o.width=Math.min(this.maxWidth,o.width+gt+ht)}this._calculatePadding(at,lt,ft,pt)}}this._handleMargins(),ot?(this.width=this._length=et.width-this._margins.left-this._margins.right,this.height=o.height):(this.width=o.width,this.height=this._length=et.height-this._margins.top-this._margins.bottom)}_calculatePadding(o,et,tt,nt){const{ticks:{align:rt,padding:it},position:ot}=this.options,st=this.labelRotation!==0,at=ot!=="top"&&this.axis==="x";if(this.isHorizontal()){const lt=this.getPixelForTick(0)-this.left,ut=this.right-this.getPixelForTick(this.ticks.length-1);let dt=0,ht=0;st?at?(dt=nt*o.width,ht=tt*et.height):(dt=tt*o.height,ht=nt*et.width):rt==="start"?ht=et.width:rt==="end"?dt=o.width:rt!=="inner"&&(dt=o.width/2,ht=et.width/2),this.paddingLeft=Math.max((dt-lt+it)*this.width/(this.width-lt),0),this.paddingRight=Math.max((ht-ut+it)*this.width/(this.width-ut),0)}else{let lt=et.height/2,ut=o.height/2;rt==="start"?(lt=0,ut=o.height):rt==="end"&&(lt=et.height,ut=0),this.paddingTop=lt+it,this.paddingBottom=ut+it}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){callback(this.options.afterFit,[this])}isHorizontal(){const{axis:o,position:et}=this.options;return et==="top"||et==="bottom"||o==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(o){this.beforeTickToLabelConversion(),this.generateTickLabels(o);let et,tt;for(et=0,tt=o.length;et({width:rt[At]||0,height:it[At]||0});return{first:vt(0),last:vt(et-1),widest:vt(Ft),highest:vt(mt),widths:rt,heights:it}}getLabelForValue(o){return o}getPixelForValue(o,et){return NaN}getValueForPixel(o){}getPixelForTick(o){const et=this.ticks;return o<0||o>et.length-1?null:this.getPixelForValue(et[o].value)}getPixelForDecimal(o){this._reversePixels&&(o=1-o);const et=this._startPixel+o*this._length;return _int16Range(this._alignToPixels?_alignPixel(this.chart,et,0):et)}getDecimalForPixel(o){const et=(o-this._startPixel)/this._length;return this._reversePixels?1-et:et}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:o,max:et}=this;return o<0&&et<0?et:o>0&&et>0?o:0}getContext(o){const et=this.ticks||[];if(o>=0&&oot*nt?ot/tt:st/nt:st*nt0}_computeGridLineItems(o){const et=this.axis,tt=this.chart,nt=this.options,{grid:rt,position:it,border:ot}=nt,st=rt.offset,at=this.isHorizontal(),lt=this.ticks.length+(st?1:0),ut=getTickMarkLength(rt),dt=[],ht=ot.setContext(this.getContext()),ct=ht.display?ht.width:0,pt=ct/2,ft=function(kt){return _alignPixel(tt,kt,ct)};let gt,yt,Ut,Ft,mt,vt,At,Lt,Rt,St,Tt,Bt;if(it==="top")gt=ft(this.bottom),vt=this.bottom-ut,Lt=gt-pt,St=ft(o.top)+pt,Bt=o.bottom;else if(it==="bottom")gt=ft(this.top),St=o.top,Bt=ft(o.bottom)-pt,vt=gt+pt,Lt=this.top+ut;else if(it==="left")gt=ft(this.right),mt=this.right-ut,At=gt-pt,Rt=ft(o.left)+pt,Tt=o.right;else if(it==="right")gt=ft(this.left),Rt=o.left,Tt=ft(o.right)-pt,mt=gt+pt,At=this.left+ut;else if(et==="x"){if(it==="center")gt=ft((o.top+o.bottom)/2+.5);else if(isObject$2(it)){const kt=Object.keys(it)[0],Nt=it[kt];gt=ft(this.chart.scales[kt].getPixelForValue(Nt))}St=o.top,Bt=o.bottom,vt=gt+pt,Lt=vt+ut}else if(et==="y"){if(it==="center")gt=ft((o.left+o.right)/2);else if(isObject$2(it)){const kt=Object.keys(it)[0],Nt=it[kt];gt=ft(this.chart.scales[kt].getPixelForValue(Nt))}mt=gt-pt,At=mt-ut,Rt=o.left,Tt=o.right}const xt=valueOrDefault(nt.ticks.maxTicksLimit,lt),Ct=Math.max(1,Math.ceil(lt/xt));for(yt=0;ytnt.value===o);return tt>=0?et.setContext(this.getContext(tt)).lineWidth:0}drawGrid(o){const et=this.options.grid,tt=this.ctx,nt=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(o));let rt,it;const ot=(st,at,lt)=>{!lt.width||!lt.color||(tt.save(),tt.lineWidth=lt.width,tt.strokeStyle=lt.color,tt.setLineDash(lt.borderDash||[]),tt.lineDashOffset=lt.borderDashOffset,tt.beginPath(),tt.moveTo(st.x,st.y),tt.lineTo(at.x,at.y),tt.stroke(),tt.restore())};if(et.display)for(rt=0,it=nt.length;rt{this.draw(rt)}}]:[{z:tt,draw:rt=>{this.drawBackground(),this.drawGrid(rt),this.drawTitle()}},{z:nt,draw:()=>{this.drawBorder()}},{z:et,draw:rt=>{this.drawLabels(rt)}}]}getMatchingVisibleMetas(o){const et=this.chart.getSortedVisibleDatasetMetas(),tt=this.axis+"AxisID",nt=[];let rt,it;for(rt=0,it=et.length;rt{const tt=et.split("."),nt=tt.pop(),rt=[s].concat(tt).join("."),it=o[et].split("."),ot=it.pop(),st=it.join(".");defaults$2.route(rt,nt,st,ot)})}function isIChartComponent(s){return"id"in s&&"defaults"in s}class Registry{constructor(){this.controllers=new TypedRegistry(DatasetController,"datasets",!0),this.elements=new TypedRegistry(Element$1,"elements"),this.plugins=new TypedRegistry(Object,"plugins"),this.scales=new TypedRegistry(Scale,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...o){this._each("register",o)}remove(...o){this._each("unregister",o)}addControllers(...o){this._each("register",o,this.controllers)}addElements(...o){this._each("register",o,this.elements)}addPlugins(...o){this._each("register",o,this.plugins)}addScales(...o){this._each("register",o,this.scales)}getController(o){return this._get(o,this.controllers,"controller")}getElement(o){return this._get(o,this.elements,"element")}getPlugin(o){return this._get(o,this.plugins,"plugin")}getScale(o){return this._get(o,this.scales,"scale")}removeControllers(...o){this._each("unregister",o,this.controllers)}removeElements(...o){this._each("unregister",o,this.elements)}removePlugins(...o){this._each("unregister",o,this.plugins)}removeScales(...o){this._each("unregister",o,this.scales)}_each(o,et,tt){[...et].forEach(nt=>{const rt=tt||this._getRegistryForType(nt);tt||rt.isForType(nt)||rt===this.plugins&&nt.id?this._exec(o,rt,nt):each(nt,it=>{const ot=tt||this._getRegistryForType(it);this._exec(o,ot,it)})})}_exec(o,et,tt){const nt=_capitalize(o);callback(tt["before"+nt],[],tt),et[o](tt),callback(tt["after"+nt],[],tt)}_getRegistryForType(o){for(let et=0;etrt.filter(ot=>!it.some(st=>ot.plugin.id===st.plugin.id));this._notify(nt(et,tt),o,"stop"),this._notify(nt(tt,et),o,"start")}}function allPlugins(s){const o={},et=[],tt=Object.keys(registry.plugins.items);for(let rt=0;rt1&&determineAxis(s[0].toLowerCase(),o),s))return s;throw new Error(`Cannot determine type of '${name}' axis. Please provide 'axis' or 'position' option.`)}function mergeScaleConfig(s,o){const et=overrides[s.type]||{scales:{}},tt=o.scales||{},nt=getIndexAxis(s.type,o),rt=Object.create(null);return Object.keys(tt).forEach(it=>{const ot=tt[it];if(!isObject$2(ot))return console.error(`Invalid scale configuration for scale: ${it}`);if(ot._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${it}`);const st=determineAxis(it,ot),at=getDefaultScaleIDFromAxis(st,nt),lt=et.scales||{};rt[it]=mergeIf(Object.create(null),[{axis:st},ot,lt[st],lt[at]])}),s.data.datasets.forEach(it=>{const ot=it.type||s.type,st=it.indexAxis||getIndexAxis(ot,o),at=(overrides[ot]||{}).scales||{};Object.keys(at).forEach(lt=>{const ut=getAxisFromDefaultScaleID(lt,st),dt=it[ut+"AxisID"]||ut;rt[dt]=rt[dt]||Object.create(null),mergeIf(rt[dt],[{axis:ut},tt[dt],at[lt]])})}),Object.keys(rt).forEach(it=>{const ot=rt[it];mergeIf(ot,[defaults$2.scales[ot.type],defaults$2.scale])}),rt}function initOptions(s){const o=s.options||(s.options={});o.plugins=valueOrDefault(o.plugins,{}),o.scales=mergeScaleConfig(s,o)}function initData(s){return s=s||{},s.datasets=s.datasets||[],s.labels=s.labels||[],s}function initConfig(s){return s=s||{},s.data=initData(s.data),initOptions(s),s}const keyCache=new Map,keysCached=new Set;function cachedKeys(s,o){let et=keyCache.get(s);return et||(et=o(),keyCache.set(s,et),keysCached.add(et)),et}const addIfFound=(s,o,et)=>{const tt=resolveObjectKey(o,et);tt!==void 0&&s.add(tt)};let Config$1=class{constructor(o){this._config=initConfig(o),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(o){this._config.type=o}get data(){return this._config.data}set data(o){this._config.data=initData(o)}get options(){return this._config.options}set options(o){this._config.options=o}get plugins(){return this._config.plugins}update(){const o=this._config;this.clearCache(),initOptions(o)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(o){return cachedKeys(o,()=>[[`datasets.${o}`,""]])}datasetAnimationScopeKeys(o,et){return cachedKeys(`${o}.transition.${et}`,()=>[[`datasets.${o}.transitions.${et}`,`transitions.${et}`],[`datasets.${o}`,""]])}datasetElementScopeKeys(o,et){return cachedKeys(`${o}-${et}`,()=>[[`datasets.${o}.elements.${et}`,`datasets.${o}`,`elements.${et}`,""]])}pluginScopeKeys(o){const et=o.id,tt=this.type;return cachedKeys(`${tt}-plugin-${et}`,()=>[[`plugins.${et}`,...o.additionalOptionScopes||[]]])}_cachedScopes(o,et){const tt=this._scopeCache;let nt=tt.get(o);return(!nt||et)&&(nt=new Map,tt.set(o,nt)),nt}getOptionScopes(o,et,tt){const{options:nt,type:rt}=this,it=this._cachedScopes(o,tt),ot=it.get(et);if(ot)return ot;const st=new Set;et.forEach(lt=>{o&&(st.add(o),lt.forEach(ut=>addIfFound(st,o,ut))),lt.forEach(ut=>addIfFound(st,nt,ut)),lt.forEach(ut=>addIfFound(st,overrides[rt]||{},ut)),lt.forEach(ut=>addIfFound(st,defaults$2,ut)),lt.forEach(ut=>addIfFound(st,descriptors,ut))});const at=Array.from(st);return at.length===0&&at.push(Object.create(null)),keysCached.has(et)&&it.set(et,at),at}chartOptionScopes(){const{options:o,type:et}=this;return[o,overrides[et]||{},defaults$2.datasets[et]||{},{type:et},defaults$2,descriptors]}resolveNamedOptions(o,et,tt,nt=[""]){const rt={$shared:!0},{resolver:it,subPrefixes:ot}=getResolver(this._resolverCache,o,nt);let st=it;if(needContext(it,et)){rt.$shared=!1,tt=isFunction(tt)?tt():tt;const at=this.createResolver(o,tt,ot);st=_attachContext(it,tt,at)}for(const at of et)rt[at]=st[at];return rt}createResolver(o,et,tt=[""],nt){const{resolver:rt}=getResolver(this._resolverCache,o,tt);return isObject$2(et)?_attachContext(rt,et,void 0,nt):rt}};function getResolver(s,o,et){let tt=s.get(o);tt||(tt=new Map,s.set(o,tt));const nt=et.join();let rt=tt.get(nt);return rt||(rt={resolver:_createResolver(o,et),subPrefixes:et.filter(it=>!it.toLowerCase().includes("hover"))},tt.set(nt,rt)),rt}const hasFunction=s=>isObject$2(s)&&Object.getOwnPropertyNames(s).reduce((o,et)=>o||isFunction(s[et]),!1);function needContext(s,o){const{isScriptable:et,isIndexable:tt}=_descriptors(s);for(const nt of o){const rt=et(nt),it=tt(nt),ot=(it||rt)&&s[nt];if(rt&&(isFunction(ot)||hasFunction(ot))||it&&isArray$4(ot))return!0}return!1}var version="4.2.0";const KNOWN_POSITIONS=["top","bottom","left","right","chartArea"];function positionIsHorizontal(s,o){return s==="top"||s==="bottom"||KNOWN_POSITIONS.indexOf(s)===-1&&o==="x"}function compare2Level(s,o){return function(et,tt){return et[s]===tt[s]?et[o]-tt[o]:et[s]-tt[s]}}function onAnimationsComplete(s){const o=s.chart,et=o.options.animation;o.notifyPlugins("afterRender"),callback(et&&et.onComplete,[s],o)}function onAnimationProgress(s){const o=s.chart,et=o.options.animation;callback(et&&et.onProgress,[s],o)}function getCanvas(s){return _isDomSupported()&&typeof s=="string"?s=document.getElementById(s):s&&s.length&&(s=s[0]),s&&s.canvas&&(s=s.canvas),s}const instances={},getChart=s=>{const o=getCanvas(s);return Object.values(instances).filter(et=>et.canvas===o).pop()};function moveNumericKeys(s,o,et){const tt=Object.keys(s);for(const nt of tt){const rt=+nt;if(rt>=o){const it=s[nt];delete s[nt],(et>0||rt>o)&&(s[rt+et]=it)}}}function determineLastEvent(s,o,et,tt){return!et||s.type==="mouseout"?null:tt?o:s}function getDatasetArea(s){const{xScale:o,yScale:et}=s;if(o&&et)return{left:o.left,right:o.right,top:et.top,bottom:et.bottom}}var Ur;let Chart$1=(Ur=class{static register(...s){registry.add(...s),invalidatePlugins()}static unregister(...s){registry.remove(...s),invalidatePlugins()}constructor(s,o){const et=this.config=new Config$1(o),tt=getCanvas(s),nt=getChart(tt);if(nt)throw new Error("Canvas is already in use. Chart with ID '"+nt.id+"' must be destroyed before the canvas with ID '"+nt.canvas.id+"' can be reused.");const rt=et.createResolver(et.chartOptionScopes(),this.getContext());this.platform=new(et.platform||_detectPlatform(tt)),this.platform.updateConfig(et);const it=this.platform.acquireContext(tt,rt.aspectRatio),ot=it&&it.canvas,st=ot&&ot.height,at=ot&&ot.width;if(this.id=uid(),this.ctx=it,this.canvas=ot,this.width=at,this.height=st,this._options=rt,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new PluginService,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=debounce$1(lt=>this.update(lt),rt.resizeDelay||0),this._dataChanges=[],instances[this.id]=this,!it||!ot){console.error("Failed to create chart: can't acquire context from the given item");return}animator.listen(this,"complete",onAnimationsComplete),animator.listen(this,"progress",onAnimationProgress),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:s,maintainAspectRatio:o},width:et,height:tt,_aspectRatio:nt}=this;return isNullOrUndef(s)?o&&nt?nt:tt?et/tt:null:s}get data(){return this.config.data}set data(s){this.config.data=s}get options(){return this._options}set options(s){this.config.options=s}get registry(){return registry}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():retinaScale(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return clearCanvas(this.canvas,this.ctx),this}stop(){return animator.stop(this),this}resize(s,o){animator.running(this)?this._resizeBeforeDraw={width:s,height:o}:this._resize(s,o)}_resize(s,o){const et=this.options,tt=this.canvas,nt=et.maintainAspectRatio&&this.aspectRatio,rt=this.platform.getMaximumSize(tt,s,o,nt),it=et.devicePixelRatio||this.platform.getDevicePixelRatio(),ot=this.width?"resize":"attach";this.width=rt.width,this.height=rt.height,this._aspectRatio=this.aspectRatio,retinaScale(this,it,!0)&&(this.notifyPlugins("resize",{size:rt}),callback(et.onResize,[this,rt],this),this.attached&&this._doResize(ot)&&this.render())}ensureScalesHaveIDs(){const s=this.options.scales||{};each(s,(o,et)=>{o.id=et})}buildOrUpdateScales(){const s=this.options,o=s.scales,et=this.scales,tt=Object.keys(et).reduce((rt,it)=>(rt[it]=!1,rt),{});let nt=[];o&&(nt=nt.concat(Object.keys(o).map(rt=>{const it=o[rt],ot=determineAxis(rt,it),st=ot==="r",at=ot==="x";return{options:it,dposition:st?"chartArea":at?"bottom":"left",dtype:st?"radialLinear":at?"category":"linear"}}))),each(nt,rt=>{const it=rt.options,ot=it.id,st=determineAxis(ot,it),at=valueOrDefault(it.type,rt.dtype);(it.position===void 0||positionIsHorizontal(it.position,st)!==positionIsHorizontal(rt.dposition))&&(it.position=rt.dposition),tt[ot]=!0;let lt=null;if(ot in et&&et[ot].type===at)lt=et[ot];else{const ut=registry.getScale(at);lt=new ut({id:ot,type:at,ctx:this.ctx,chart:this}),et[lt.id]=lt}lt.init(it,s)}),each(tt,(rt,it)=>{rt||delete et[it]}),each(et,rt=>{layouts.configure(this,rt,rt.options),layouts.addBox(this,rt)})}_updateMetasets(){const s=this._metasets,o=this.data.datasets.length,et=s.length;if(s.sort((tt,nt)=>tt.index-nt.index),et>o){for(let tt=o;tto.length&&delete this._stacks,s.forEach((et,tt)=>{o.filter(nt=>nt===et._dataset).length===0&&this._destroyDatasetMeta(tt)})}buildOrUpdateControllers(){const s=[],o=this.data.datasets;let et,tt;for(this._removeUnreferencedMetasets(),et=0,tt=o.length;et{this.getDatasetMeta(o).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(s){const o=this.config;o.update();const et=this._options=o.createResolver(o.chartOptionScopes(),this.getContext()),tt=this._animationsDisabled=!et.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:s,cancelable:!0})===!1)return;const nt=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let rt=0;for(let st=0,at=this.data.datasets.length;st{st.reset()}),this._updateDatasets(s),this.notifyPlugins("afterUpdate",{mode:s}),this._layers.sort(compare2Level("z","_idx"));const{_active:it,_lastEvent:ot}=this;ot?this._eventHandler(ot,!0):it.length&&this._updateHoverStyles(it,it,!0),this.render()}_updateScales(){each(this.scales,s=>{layouts.removeBox(this,s)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const s=this.options,o=new Set(Object.keys(this._listeners)),et=new Set(s.events);(!setsEqual(o,et)||!!this._responsiveListeners!==s.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:s}=this,o=this._getUniformDataChanges()||[];for(const{method:et,start:tt,count:nt}of o){const rt=et==="_removeElements"?-nt:nt;moveNumericKeys(s,tt,rt)}}_getUniformDataChanges(){const s=this._dataChanges;if(!s||!s.length)return;this._dataChanges=[];const o=this.data.datasets.length,et=nt=>new Set(s.filter(rt=>rt[0]===nt).map((rt,it)=>it+","+rt.splice(1).join(","))),tt=et(0);for(let nt=1;ntnt.split(",")).map(nt=>({method:nt[1],start:+nt[2],count:+nt[3]}))}_updateLayout(s){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;layouts.update(this,this.width,this.height,s);const o=this.chartArea,et=o.width<=0||o.height<=0;this._layers=[],each(this.boxes,tt=>{et&&tt.position==="chartArea"||(tt.configure&&tt.configure(),this._layers.push(...tt._layers()))},this),this._layers.forEach((tt,nt)=>{tt._idx=nt}),this.notifyPlugins("afterLayout")}_updateDatasets(s){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:s,cancelable:!0})!==!1){for(let o=0,et=this.data.datasets.length;o=0;--o)this._drawDataset(s[o]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(s){const o=this.ctx,et=s._clip,tt=!et.disabled,nt=getDatasetArea(s)||this.chartArea,rt={meta:s,index:s.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",rt)!==!1&&(tt&&clipArea(o,{left:et.left===!1?0:nt.left-et.left,right:et.right===!1?this.width:nt.right+et.right,top:et.top===!1?0:nt.top-et.top,bottom:et.bottom===!1?this.height:nt.bottom+et.bottom}),s.controller.draw(),tt&&unclipArea(o),rt.cancelable=!1,this.notifyPlugins("afterDatasetDraw",rt))}isPointInArea(s){return _isPointInArea(s,this.chartArea,this._minPadding)}getElementsAtEventForMode(s,o,et,tt){const nt=Interaction.modes[o];return typeof nt=="function"?nt(this,s,et,tt):[]}getDatasetMeta(s){const o=this.data.datasets[s],et=this._metasets;let tt=et.filter(nt=>nt&&nt._dataset===o).pop();return tt||(tt={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:o&&o.order||0,index:s,_dataset:o,_parsed:[],_sorted:!1},et.push(tt)),tt}getContext(){return this.$context||(this.$context=createContext(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(s){const o=this.data.datasets[s];if(!o)return!1;const et=this.getDatasetMeta(s);return typeof et.hidden=="boolean"?!et.hidden:!o.hidden}setDatasetVisibility(s,o){const et=this.getDatasetMeta(s);et.hidden=!o}toggleDataVisibility(s){this._hiddenIndices[s]=!this._hiddenIndices[s]}getDataVisibility(s){return!this._hiddenIndices[s]}_updateVisibility(s,o,et){const tt=et?"show":"hide",nt=this.getDatasetMeta(s),rt=nt.controller._resolveAnimations(void 0,tt);defined$3(o)?(nt.data[o].hidden=!et,this.update()):(this.setDatasetVisibility(s,et),rt.update(nt,{visible:et}),this.update(it=>it.datasetIndex===s?tt:void 0))}hide(s,o){this._updateVisibility(s,o,!1)}show(s,o){this._updateVisibility(s,o,!0)}_destroyDatasetMeta(s){const o=this._metasets[s];o&&o.controller&&o.controller._destroy(),delete this._metasets[s]}_stop(){let s,o;for(this.stop(),animator.remove(this),s=0,o=this.data.datasets.length;s{o.addEventListener(this,nt,rt),s[nt]=rt},tt=(nt,rt,it)=>{nt.offsetX=rt,nt.offsetY=it,this._eventHandler(nt)};each(this.options.events,nt=>et(nt,tt))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const s=this._responsiveListeners,o=this.platform,et=(ot,st)=>{o.addEventListener(this,ot,st),s[ot]=st},tt=(ot,st)=>{s[ot]&&(o.removeEventListener(this,ot,st),delete s[ot])},nt=(ot,st)=>{this.canvas&&this.resize(ot,st)};let rt;const it=()=>{tt("attach",it),this.attached=!0,this.resize(),et("resize",nt),et("detach",rt)};rt=()=>{this.attached=!1,tt("resize",nt),this._stop(),this._resize(0,0),et("attach",it)},o.isAttached(this.canvas)?it():rt()}unbindEvents(){each(this._listeners,(s,o)=>{this.platform.removeEventListener(this,o,s)}),this._listeners={},each(this._responsiveListeners,(s,o)=>{this.platform.removeEventListener(this,o,s)}),this._responsiveListeners=void 0}updateHoverStyle(s,o,et){const tt=et?"set":"remove";let nt,rt,it,ot;for(o==="dataset"&&(nt=this.getDatasetMeta(s[0].datasetIndex),nt.controller["_"+tt+"DatasetHoverStyle"]()),it=0,ot=s.length;it{const rt=this.getDatasetMeta(tt);if(!rt)throw new Error("No dataset found at index "+tt);return{datasetIndex:tt,element:rt.data[nt],index:nt}});!_elementsEqual(et,o)&&(this._active=et,this._lastEvent=null,this._updateHoverStyles(et,o))}notifyPlugins(s,o,et){return this._plugins.notify(this,s,o,et)}isPluginEnabled(s){return this._plugins._cache.filter(o=>o.plugin.id===s).length===1}_updateHoverStyles(s,o,et){const tt=this.options.hover,nt=(ot,st)=>ot.filter(at=>!st.some(lt=>at.datasetIndex===lt.datasetIndex&&at.index===lt.index)),rt=nt(o,s),it=et?s:nt(s,o);rt.length&&this.updateHoverStyle(rt,tt.mode,!1),it.length&&tt.mode&&this.updateHoverStyle(it,tt.mode,!0)}_eventHandler(s,o){const et={event:s,replay:o,cancelable:!0,inChartArea:this.isPointInArea(s)},tt=rt=>(rt.options.events||this.options.events).includes(s.native.type);if(this.notifyPlugins("beforeEvent",et,tt)===!1)return;const nt=this._handleEvent(s,o,et.inChartArea);return et.cancelable=!1,this.notifyPlugins("afterEvent",et,tt),(nt||et.changed)&&this.render(),this}_handleEvent(s,o,et){const{_active:tt=[],options:nt}=this,rt=o,it=this._getActiveElements(s,tt,et,rt),ot=_isClickEvent(s),st=determineLastEvent(s,this._lastEvent,et,ot);et&&(this._lastEvent=null,callback(nt.onHover,[s,it,this],this),ot&&callback(nt.onClick,[s,it,this],this));const at=!_elementsEqual(it,tt);return(at||o)&&(this._active=it,this._updateHoverStyles(it,tt,o)),this._lastEvent=st,at}_getActiveElements(s,o,et,tt){if(s.type==="mouseout")return[];if(!et)return o;const nt=this.options.hover;return this.getElementsAtEventForMode(s,nt.mode,nt,tt)}},He(Ur,"defaults",defaults$2),He(Ur,"instances",instances),He(Ur,"overrides",overrides),He(Ur,"registry",registry),He(Ur,"version",version),He(Ur,"getChart",getChart),Ur);function invalidatePlugins(){return each(Chart$1.instances,s=>s._plugins.invalidate())}function clipArc(s,o,et){const{startAngle:tt,pixelMargin:nt,x:rt,y:it,outerRadius:ot,innerRadius:st}=o;let at=nt/ot;s.beginPath(),s.arc(rt,it,ot,tt-at,et+at),st>nt?(at=nt/st,s.arc(rt,it,st,et+at,tt-at,!0)):s.arc(rt,it,nt,et+HALF_PI,tt-HALF_PI),s.closePath(),s.clip()}function toRadiusCorners(s){return _readValueToProps(s,["outerStart","outerEnd","innerStart","innerEnd"])}function parseBorderRadius$1(s,o,et,tt){const nt=toRadiusCorners(s.options.borderRadius),rt=(et-o)/2,it=Math.min(rt,tt*o/2),ot=st=>{const at=(et-Math.min(rt,st))*tt/2;return _limitValue(st,0,Math.min(rt,at))};return{outerStart:ot(nt.outerStart),outerEnd:ot(nt.outerEnd),innerStart:_limitValue(nt.innerStart,0,it),innerEnd:_limitValue(nt.innerEnd,0,it)}}function rThetaToXY(s,o,et,tt){return{x:et+s*Math.cos(o),y:tt+s*Math.sin(o)}}function pathArc(s,o,et,tt,nt,rt){const{x:it,y:ot,startAngle:st,pixelMargin:at,innerRadius:lt}=o,ut=Math.max(o.outerRadius+tt+et-at,0),dt=lt>0?lt+tt+et+at:0;let ht=0;const ct=nt-st;if(tt){const kt=lt>0?lt-tt:0,Nt=ut>0?ut-tt:0,Ot=(kt+Nt)/2,Jt=Ot!==0?ct*Ot/(Ot+tt):ct;ht=(ct-Jt)/2}const pt=Math.max(.001,ct*ut-et/PI)/ut,ft=(ct-pt)/2,gt=st+ft+ht,yt=nt-ft-ht,{outerStart:Ut,outerEnd:Ft,innerStart:mt,innerEnd:vt}=parseBorderRadius$1(o,dt,ut,yt-gt),At=ut-Ut,Lt=ut-Ft,Rt=gt+Ut/At,St=yt-Ft/Lt,Tt=dt+mt,Bt=dt+vt,xt=gt+mt/Tt,Ct=yt-vt/Bt;if(s.beginPath(),rt){const kt=(Rt+St)/2;if(s.arc(it,ot,ut,Rt,kt),s.arc(it,ot,ut,kt,St),Ft>0){const Dt=rThetaToXY(Lt,St,it,ot);s.arc(Dt.x,Dt.y,Ft,St,yt+HALF_PI)}const Nt=rThetaToXY(Bt,yt,it,ot);if(s.lineTo(Nt.x,Nt.y),vt>0){const Dt=rThetaToXY(Bt,Ct,it,ot);s.arc(Dt.x,Dt.y,vt,yt+HALF_PI,Ct+Math.PI)}const Ot=(yt-vt/dt+(gt+mt/dt))/2;if(s.arc(it,ot,dt,yt-vt/dt,Ot,!0),s.arc(it,ot,dt,Ot,gt+mt/dt,!0),mt>0){const Dt=rThetaToXY(Tt,xt,it,ot);s.arc(Dt.x,Dt.y,mt,xt+Math.PI,gt-HALF_PI)}const Jt=rThetaToXY(At,gt,it,ot);if(s.lineTo(Jt.x,Jt.y),Ut>0){const Dt=rThetaToXY(At,Rt,it,ot);s.arc(Dt.x,Dt.y,Ut,gt-HALF_PI,Rt)}}else{s.moveTo(it,ot);const kt=Math.cos(Rt)*ut+it,Nt=Math.sin(Rt)*ut+ot;s.lineTo(kt,Nt);const Ot=Math.cos(St)*ut+it,Jt=Math.sin(St)*ut+ot;s.lineTo(Ot,Jt)}s.closePath()}function drawArc(s,o,et,tt,nt){const{fullCircles:rt,startAngle:it,circumference:ot}=o;let st=o.endAngle;if(rt){pathArc(s,o,et,tt,st,nt);for(let at=0;at=TAU$1||_angleBetween(rt,ot,st),ct=_isBetween(it,at+dt,lt+dt);return ht&&ct}getCenterPoint(o){const{x:et,y:tt,startAngle:nt,endAngle:rt,innerRadius:it,outerRadius:ot}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],o),{offset:st,spacing:at}=this.options,lt=(nt+rt)/2,ut=(it+ot+at+st)/2;return{x:et+Math.cos(lt)*ut,y:tt+Math.sin(lt)*ut}}tooltipPosition(o){return this.getCenterPoint(o)}draw(o){const{options:et,circumference:tt}=this,nt=(et.offset||0)/4,rt=(et.spacing||0)/2,it=et.circular;if(this.pixelMargin=et.borderAlign==="inner"?.33:0,this.fullCircles=tt>TAU$1?Math.floor(tt/TAU$1):0,tt===0||this.innerRadius<0||this.outerRadius<0)return;o.save();const ot=(this.startAngle+this.endAngle)/2;o.translate(Math.cos(ot)*nt,Math.sin(ot)*nt);const st=1-Math.sin(Math.min(PI,tt||0)),at=nt*st;o.fillStyle=et.backgroundColor,o.strokeStyle=et.borderColor,drawArc(o,this,at,rt,it),drawBorder(o,this,at,rt,it),o.restore()}}He(ArcElement,"id","arc"),He(ArcElement,"defaults",{borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0}),He(ArcElement,"defaultRoutes",{backgroundColor:"backgroundColor"});function setStyle(s,o,et=o){s.lineCap=valueOrDefault(et.borderCapStyle,o.borderCapStyle),s.setLineDash(valueOrDefault(et.borderDash,o.borderDash)),s.lineDashOffset=valueOrDefault(et.borderDashOffset,o.borderDashOffset),s.lineJoin=valueOrDefault(et.borderJoinStyle,o.borderJoinStyle),s.lineWidth=valueOrDefault(et.borderWidth,o.borderWidth),s.strokeStyle=valueOrDefault(et.borderColor,o.borderColor)}function lineTo(s,o,et){s.lineTo(et.x,et.y)}function getLineMethod(s){return s.stepped?_steppedLineTo:s.tension||s.cubicInterpolationMode==="monotone"?_bezierCurveTo:lineTo}function pathVars(s,o,et={}){const tt=s.length,{start:nt=0,end:rt=tt-1}=et,{start:it,end:ot}=o,st=Math.max(nt,it),at=Math.min(rt,ot),lt=ntot&&rt>ot;return{count:tt,start:st,loop:o.loop,ilen:at(it+(at?ot-Ft:Ft))%rt,Ut=()=>{pt!==ft&&(s.lineTo(lt,ft),s.lineTo(lt,pt),s.lineTo(lt,gt))};for(st&&(ht=nt[yt(0)],s.moveTo(ht.x,ht.y)),dt=0;dt<=ot;++dt){if(ht=nt[yt(dt)],ht.skip)continue;const Ft=ht.x,mt=ht.y,vt=Ft|0;vt===ct?(mtft&&(ft=mt),lt=(ut*lt+Ft)/++ut):(Ut(),s.lineTo(Ft,mt),ct=vt,ut=0,pt=ft=mt),gt=mt}Ut()}function _getSegmentMethod(s){const o=s.options,et=o.borderDash&&o.borderDash.length;return!s._decimated&&!s._loop&&!o.tension&&o.cubicInterpolationMode!=="monotone"&&!o.stepped&&!et?fastPathSegment:pathSegment}function _getInterpolationMethod(s){return s.stepped?_steppedInterpolation:s.tension||s.cubicInterpolationMode==="monotone"?_bezierInterpolation:_pointInLine}function strokePathWithCache(s,o,et,tt){let nt=o._path;nt||(nt=o._path=new Path2D,o.path(nt,et,tt)&&nt.closePath()),setStyle(s,o.options),s.stroke(nt)}function strokePathDirect(s,o,et,tt){const{segments:nt,options:rt}=o,it=_getSegmentMethod(o);for(const ot of nt)setStyle(s,rt,ot.style),s.beginPath(),it(s,o,ot,{start:et,end:et+tt-1})&&s.closePath(),s.stroke()}const usePath2D=typeof Path2D=="function";function draw(s,o,et,tt){usePath2D&&!o.options.segment?strokePathWithCache(s,o,et,tt):strokePathDirect(s,o,et,tt)}class LineElement extends Element$1{constructor(o){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,o&&Object.assign(this,o)}updateControlPoints(o,et){const tt=this.options;if((tt.tension||tt.cubicInterpolationMode==="monotone")&&!tt.stepped&&!this._pointsUpdated){const nt=tt.spanGaps?this._loop:this._fullLoop;_updateBezierControlPoints(this._points,tt,o,nt,et),this._pointsUpdated=!0}}set points(o){this._points=o,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=_computeSegments(this,this.options.segment))}first(){const o=this.segments,et=this.points;return o.length&&et[o[0].start]}last(){const o=this.segments,et=this.points,tt=o.length;return tt&&et[o[tt-1].end]}interpolate(o,et){const tt=this.options,nt=o[et],rt=this.points,it=_boundSegments(this,{property:et,start:nt,end:nt});if(!it.length)return;const ot=[],st=_getInterpolationMethod(tt);let at,lt;for(at=0,lt=it.length;ats!=="borderDash"&&s!=="fill"});function inRange$1(s,o,et,tt){const nt=s.options,{[et]:rt}=s.getProps([et],tt);return Math.abs(o-rt)s.replace("rgb(","rgba(").replace(")",", 0.5)"));function getBorderColor(s){return BORDER_COLORS[s%BORDER_COLORS.length]}function getBackgroundColor(s){return BACKGROUND_COLORS[s%BACKGROUND_COLORS.length]}function colorizeDefaultDataset(s,o){return s.borderColor=getBorderColor(o),s.backgroundColor=getBackgroundColor(o),++o}function colorizeDoughnutDataset(s,o){return s.backgroundColor=s.data.map(()=>getBorderColor(o++)),o}function colorizePolarAreaDataset(s,o){return s.backgroundColor=s.data.map(()=>getBackgroundColor(o++)),o}function getColorizer(s){let o=0;return(et,tt)=>{const nt=s.getDatasetMeta(tt).controller;nt instanceof DoughnutController?o=colorizeDoughnutDataset(et,o):nt instanceof PolarAreaController?o=colorizePolarAreaDataset(et,o):nt&&(o=colorizeDefaultDataset(et,o))}}function containsColorsDefinitions(s){let o;for(o in s)if(s[o].borderColor||s[o].backgroundColor)return!0;return!1}function containsColorsDefinition(s){return s&&(s.borderColor||s.backgroundColor)}var plugin_colors={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(s,o,et){if(!et.enabled)return;const{data:{datasets:tt},options:nt}=s.config,{elements:rt}=nt;if(!et.forceOverride&&(containsColorsDefinitions(tt)||containsColorsDefinition(nt)||rt&&containsColorsDefinitions(rt)))return;const it=getColorizer(s);tt.forEach(it)}};function lttbDecimation(s,o,et,tt,nt){const rt=nt.samples||tt;if(rt>=et)return s.slice(o,o+et);const it=[],ot=(et-2)/(rt-2);let st=0;const at=o+et-1;let lt=o,ut,dt,ht,ct,pt;for(it[st++]=s[lt],ut=0;utht&&(ht=ct,dt=s[yt],pt=yt);it[st++]=dt,lt=pt}return it[st++]=s[at],it}function minMaxDecimation(s,o,et,tt){let nt=0,rt=0,it,ot,st,at,lt,ut,dt,ht,ct,pt;const ft=[],gt=o+et-1,yt=s[o].x,Ut=s[gt].x-yt;for(it=o;itpt&&(pt=at,dt=it),nt=(rt*nt+ot.x)/++rt;else{const mt=it-1;if(!isNullOrUndef(ut)&&!isNullOrUndef(dt)){const vt=Math.min(ut,dt),At=Math.max(ut,dt);vt!==ht&&vt!==mt&&ft.push({...s[vt],x:nt}),At!==ht&&At!==mt&&ft.push({...s[At],x:nt})}it>0&&mt!==ht&&ft.push(s[mt]),ft.push(ot),lt=Ft,rt=0,ct=pt=at,ut=dt=ht=it}}return ft}function cleanDecimatedDataset(s){if(s._decimated){const o=s._data;delete s._decimated,delete s._data,Object.defineProperty(s,"data",{value:o})}}function cleanDecimatedData(s){s.data.datasets.forEach(o=>{cleanDecimatedDataset(o)})}function getStartAndCountOfVisiblePointsSimplified(s,o){const et=o.length;let tt=0,nt;const{iScale:rt}=s,{min:it,max:ot,minDefined:st,maxDefined:at}=rt.getUserBounds();return st&&(tt=_limitValue(_lookupByKey(o,rt.axis,it).lo,0,et-1)),at?nt=_limitValue(_lookupByKey(o,rt.axis,ot).hi+1,tt,et)-tt:nt=et-tt,{start:tt,count:nt}}var plugin_decimation={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(s,o,et)=>{if(!et.enabled){cleanDecimatedData(s);return}const tt=s.width;s.data.datasets.forEach((nt,rt)=>{const{_data:it,indexAxis:ot}=nt,st=s.getDatasetMeta(rt),at=it||nt.data;if(resolve([ot,s.options.indexAxis])==="y"||!st.controller.supportsDecimation)return;const lt=s.scales[st.xAxisID];if(lt.type!=="linear"&<.type!=="time"||s.options.parsing)return;let{start:ut,count:dt}=getStartAndCountOfVisiblePointsSimplified(st,at);const ht=et.threshold||4*tt;if(dt<=ht){cleanDecimatedDataset(nt);return}isNullOrUndef(it)&&(nt._data=at,delete nt.data,Object.defineProperty(nt,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(pt){this._data=pt}}));let ct;switch(et.algorithm){case"lttb":ct=lttbDecimation(at,ut,dt,tt,et);break;case"min-max":ct=minMaxDecimation(at,ut,dt,tt);break;default:throw new Error(`Unsupported decimation algorithm '${et.algorithm}'`)}nt._decimated=ct})},destroy(s){cleanDecimatedData(s)}};function _segments(s,o,et){const tt=s.segments,nt=s.points,rt=o.points,it=[];for(const ot of tt){let{start:st,end:at}=ot;at=_findSegmentEnd(st,at,nt);const lt=_getBounds$1(et,nt[st],nt[at],ot.loop);if(!o.segments){it.push({source:ot,target:lt,start:nt[st],end:nt[at]});continue}const ut=_boundSegments(o,lt);for(const dt of ut){const ht=_getBounds$1(et,rt[dt.start],rt[dt.end],dt.loop),ct=_boundSegment(ot,nt,ht);for(const pt of ct)it.push({source:pt,target:dt,start:{[et]:_getEdge(lt,ht,"start",Math.max)},end:{[et]:_getEdge(lt,ht,"end",Math.min)}})}}return it}function _getBounds$1(s,o,et,tt){if(tt)return;let nt=o[s],rt=et[s];return s==="angle"&&(nt=_normalizeAngle(nt),rt=_normalizeAngle(rt)),{property:s,start:nt,end:rt}}function _pointsFromSegments(s,o){const{x:et=null,y:tt=null}=s||{},nt=o.points,rt=[];return o.segments.forEach(({start:it,end:ot})=>{ot=_findSegmentEnd(it,ot,nt);const st=nt[it],at=nt[ot];tt!==null?(rt.push({x:st.x,y:tt}),rt.push({x:at.x,y:tt})):et!==null&&(rt.push({x:et,y:st.y}),rt.push({x:et,y:at.y}))}),rt}function _findSegmentEnd(s,o,et){for(;o>s;o--){const tt=et[o];if(!isNaN(tt.x)&&!isNaN(tt.y))break}return o}function _getEdge(s,o,et,tt){return s&&o?tt(s[et],o[et]):s?s[et]:o?o[et]:0}function _createBoundaryLine(s,o){let et=[],tt=!1;return isArray$4(s)?(tt=!0,et=s):et=_pointsFromSegments(s,o),et.length?new LineElement({points:et,options:{tension:0},_loop:tt,_fullLoop:tt}):null}function _shouldApplyFill(s){return s&&s.fill!==!1}function _resolveTarget(s,o,et){let tt=s[o].fill;const nt=[o];let rt;if(!et)return tt;for(;tt!==!1&&nt.indexOf(tt)===-1;){if(!isNumberFinite(tt))return tt;if(rt=s[tt],!rt)return!1;if(rt.visible)return tt;nt.push(tt),tt=rt.fill}return!1}function _decodeFill(s,o,et){const tt=parseFillOption(s);if(isObject$2(tt))return isNaN(tt.value)?!1:tt;let nt=parseFloat(tt);return isNumberFinite(nt)&&Math.floor(nt)===nt?decodeTargetIndex(tt[0],o,nt,et):["origin","start","end","stack","shape"].indexOf(tt)>=0&&tt}function decodeTargetIndex(s,o,et,tt){return(s==="-"||s==="+")&&(et=o+et),et===o||et<0||et>=tt?!1:et}function _getTargetPixel(s,o){let et=null;return s==="start"?et=o.bottom:s==="end"?et=o.top:isObject$2(s)?et=o.getPixelForValue(s.value):o.getBasePixel&&(et=o.getBasePixel()),et}function _getTargetValue(s,o,et){let tt;return s==="start"?tt=et:s==="end"?tt=o.options.reverse?o.min:o.max:isObject$2(s)?tt=s.value:tt=o.getBaseValue(),tt}function parseFillOption(s){const o=s.options,et=o.fill;let tt=valueOrDefault(et&&et.target,et);return tt===void 0&&(tt=!!o.backgroundColor),tt===!1||tt===null?!1:tt===!0?"origin":tt}function _buildStackLine(s){const{scale:o,index:et,line:tt}=s,nt=[],rt=tt.segments,it=tt.points,ot=getLinesBelow(o,et);ot.push(_createBoundaryLine({x:null,y:o.bottom},tt));for(let st=0;st=0;--it){const ot=nt[it].$filler;ot&&(ot.line.updateControlPoints(rt,ot.axis),tt&&ot.fill&&_drawfill(s.ctx,ot,rt))}},beforeDatasetsDraw(s,o,et){if(et.drawTime!=="beforeDatasetsDraw")return;const tt=s.getSortedVisibleDatasetMetas();for(let nt=tt.length-1;nt>=0;--nt){const rt=tt[nt].$filler;_shouldApplyFill(rt)&&_drawfill(s.ctx,rt,s.chartArea)}},beforeDatasetDraw(s,o,et){const tt=o.meta.$filler;!_shouldApplyFill(tt)||et.drawTime!=="beforeDatasetDraw"||_drawfill(s.ctx,tt,s.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const getBoxSize=(s,o)=>{let{boxHeight:et=o,boxWidth:tt=o}=s;return s.usePointStyle&&(et=Math.min(et,o),tt=s.pointStyleWidth||Math.min(tt,o)),{boxWidth:tt,boxHeight:et,itemHeight:Math.max(o,et)}},itemsEqual=(s,o)=>s!==null&&o!==null&&s.datasetIndex===o.datasetIndex&&s.index===o.index;class Legend extends Element$1{constructor(o){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=o.chart,this.options=o.options,this.ctx=o.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(o,et,tt){this.maxWidth=o,this.maxHeight=et,this._margins=tt,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const o=this.options.labels||{};let et=callback(o.generateLabels,[this.chart],this)||[];o.filter&&(et=et.filter(tt=>o.filter(tt,this.chart.data))),o.sort&&(et=et.sort((tt,nt)=>o.sort(tt,nt,this.chart.data))),this.options.reverse&&et.reverse(),this.legendItems=et}fit(){const{options:o,ctx:et}=this;if(!o.display){this.width=this.height=0;return}const tt=o.labels,nt=toFont(tt.font),rt=nt.size,it=this._computeTitleHeight(),{boxWidth:ot,itemHeight:st}=getBoxSize(tt,rt);let at,lt;et.font=nt.string,this.isHorizontal()?(at=this.maxWidth,lt=this._fitRows(it,rt,ot,st)+10):(lt=this.maxHeight,at=this._fitCols(it,nt,ot,st)+10),this.width=Math.min(at,o.maxWidth||this.maxWidth),this.height=Math.min(lt,o.maxHeight||this.maxHeight)}_fitRows(o,et,tt,nt){const{ctx:rt,maxWidth:it,options:{labels:{padding:ot}}}=this,st=this.legendHitBoxes=[],at=this.lineWidths=[0],lt=nt+ot;let ut=o;rt.textAlign="left",rt.textBaseline="middle";let dt=-1,ht=-lt;return this.legendItems.forEach((ct,pt)=>{const ft=tt+et/2+rt.measureText(ct.text).width;(pt===0||at[at.length-1]+ft+2*ot>it)&&(ut+=lt,at[at.length-(pt>0?0:1)]=0,ht+=lt,dt++),st[pt]={left:0,top:ht,row:dt,width:ft,height:nt},at[at.length-1]+=ft+ot}),ut}_fitCols(o,et,tt,nt){const{ctx:rt,maxHeight:it,options:{labels:{padding:ot}}}=this,st=this.legendHitBoxes=[],at=this.columnSizes=[],lt=it-o;let ut=ot,dt=0,ht=0,ct=0,pt=0;return this.legendItems.forEach((ft,gt)=>{const{itemWidth:yt,itemHeight:Ut}=calculateItemSize(tt,et,rt,ft,nt);gt>0&&ht+Ut+2*ot>lt&&(ut+=dt+ot,at.push({width:dt,height:ht}),ct+=dt+ot,pt++,dt=ht=0),st[gt]={left:ct,top:ht,col:pt,width:yt,height:Ut},dt=Math.max(dt,yt),ht+=Ut+ot}),ut+=dt,at.push({width:dt,height:ht}),ut}adjustHitBoxes(){if(!this.options.display)return;const o=this._computeTitleHeight(),{legendHitBoxes:et,options:{align:tt,labels:{padding:nt},rtl:rt}}=this,it=getRtlAdapter(rt,this.left,this.width);if(this.isHorizontal()){let ot=0,st=_alignStartEnd(tt,this.left+nt,this.right-this.lineWidths[ot]);for(const at of et)ot!==at.row&&(ot=at.row,st=_alignStartEnd(tt,this.left+nt,this.right-this.lineWidths[ot])),at.top+=this.top+o+nt,at.left=it.leftForLtr(it.x(st),at.width),st+=at.width+nt}else{let ot=0,st=_alignStartEnd(tt,this.top+o+nt,this.bottom-this.columnSizes[ot].height);for(const at of et)at.col!==ot&&(ot=at.col,st=_alignStartEnd(tt,this.top+o+nt,this.bottom-this.columnSizes[ot].height)),at.top=st,at.left+=this.left+nt,at.left=it.leftForLtr(it.x(at.left),at.width),st+=at.height+nt}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const o=this.ctx;clipArea(o,this),this._draw(),unclipArea(o)}}_draw(){const{options:o,columnSizes:et,lineWidths:tt,ctx:nt}=this,{align:rt,labels:it}=o,ot=defaults$2.color,st=getRtlAdapter(o.rtl,this.left,this.width),at=toFont(it.font),{padding:lt}=it,ut=at.size,dt=ut/2;let ht;this.drawTitle(),nt.textAlign=st.textAlign("left"),nt.textBaseline="middle",nt.lineWidth=.5,nt.font=at.string;const{boxWidth:ct,boxHeight:pt,itemHeight:ft}=getBoxSize(it,ut),gt=function(vt,At,Lt){if(isNaN(ct)||ct<=0||isNaN(pt)||pt<0)return;nt.save();const Rt=valueOrDefault(Lt.lineWidth,1);if(nt.fillStyle=valueOrDefault(Lt.fillStyle,ot),nt.lineCap=valueOrDefault(Lt.lineCap,"butt"),nt.lineDashOffset=valueOrDefault(Lt.lineDashOffset,0),nt.lineJoin=valueOrDefault(Lt.lineJoin,"miter"),nt.lineWidth=Rt,nt.strokeStyle=valueOrDefault(Lt.strokeStyle,ot),nt.setLineDash(valueOrDefault(Lt.lineDash,[])),it.usePointStyle){const St={radius:pt*Math.SQRT2/2,pointStyle:Lt.pointStyle,rotation:Lt.rotation,borderWidth:Rt},Tt=st.xPlus(vt,ct/2),Bt=At+dt;drawPointLegend(nt,St,Tt,Bt,it.pointStyleWidth&&ct)}else{const St=At+Math.max((ut-pt)/2,0),Tt=st.leftForLtr(vt,ct),Bt=toTRBLCorners(Lt.borderRadius);nt.beginPath(),Object.values(Bt).some(xt=>xt!==0)?addRoundedRectPath(nt,{x:Tt,y:St,w:ct,h:pt,radius:Bt}):nt.rect(Tt,St,ct,pt),nt.fill(),Rt!==0&&nt.stroke()}nt.restore()},yt=function(vt,At,Lt){renderText(nt,Lt.text,vt,At+ft/2,at,{strikethrough:Lt.hidden,textAlign:st.textAlign(Lt.textAlign)})},Ut=this.isHorizontal(),Ft=this._computeTitleHeight();Ut?ht={x:_alignStartEnd(rt,this.left+lt,this.right-tt[0]),y:this.top+lt+Ft,line:0}:ht={x:this.left+lt,y:_alignStartEnd(rt,this.top+Ft+lt,this.bottom-et[0].height),line:0},overrideTextDirection(this.ctx,o.textDirection);const mt=ft+lt;this.legendItems.forEach((vt,At)=>{nt.strokeStyle=vt.fontColor,nt.fillStyle=vt.fontColor;const Lt=nt.measureText(vt.text).width,Rt=st.textAlign(vt.textAlign||(vt.textAlign=it.textAlign)),St=ct+dt+Lt;let Tt=ht.x,Bt=ht.y;st.setWidth(this.width),Ut?At>0&&Tt+St+lt>this.right&&(Bt=ht.y+=mt,ht.line++,Tt=ht.x=_alignStartEnd(rt,this.left+lt,this.right-tt[ht.line])):At>0&&Bt+mt>this.bottom&&(Tt=ht.x=Tt+et[ht.line].width+lt,ht.line++,Bt=ht.y=_alignStartEnd(rt,this.top+Ft+lt,this.bottom-et[ht.line].height));const xt=st.x(Tt);if(gt(xt,Bt,vt),Tt=_textX(Rt,Tt+ct+dt,Ut?Tt+St:this.right,o.rtl),yt(st.x(Tt),Bt,vt),Ut)ht.x+=St+lt;else if(typeof vt.text!="string"){const Ct=at.lineHeight;ht.y+=calculateLegendItemHeight(vt,Ct)}else ht.y+=mt}),restoreTextDirection(this.ctx,o.textDirection)}drawTitle(){const o=this.options,et=o.title,tt=toFont(et.font),nt=toPadding(et.padding);if(!et.display)return;const rt=getRtlAdapter(o.rtl,this.left,this.width),it=this.ctx,ot=et.position,st=tt.size/2,at=nt.top+st;let lt,ut=this.left,dt=this.width;if(this.isHorizontal())dt=Math.max(...this.lineWidths),lt=this.top+at,ut=_alignStartEnd(o.align,ut,this.right-dt);else{const ct=this.columnSizes.reduce((pt,ft)=>Math.max(pt,ft.height),0);lt=at+_alignStartEnd(o.align,this.top,this.bottom-ct-o.labels.padding-this._computeTitleHeight())}const ht=_alignStartEnd(ot,ut,ut+dt);it.textAlign=rt.textAlign(_toLeftRightCenter(ot)),it.textBaseline="middle",it.strokeStyle=et.color,it.fillStyle=et.color,it.font=tt.string,renderText(it,et.text,ht,lt,tt)}_computeTitleHeight(){const o=this.options.title,et=toFont(o.font),tt=toPadding(o.padding);return o.display?et.lineHeight+tt.height:0}_getLegendItemAt(o,et){let tt,nt,rt;if(_isBetween(o,this.left,this.right)&&_isBetween(et,this.top,this.bottom)){for(rt=this.legendHitBoxes,tt=0;ttrt.length>it.length?rt:it)),o+et.size/2+tt.measureText(nt).width}function calculateItemHeight(s,o,et){let tt=s;return typeof o.text!="string"&&(tt=calculateLegendItemHeight(o,et)),tt}function calculateLegendItemHeight(s,o){const et=s.text?s.text.length+.5:0;return o*et}function isListened(s,o){return!!((s==="mousemove"||s==="mouseout")&&(o.onHover||o.onLeave)||o.onClick&&(s==="click"||s==="mouseup"))}var plugin_legend={id:"legend",_element:Legend,start(s,o,et){const tt=s.legend=new Legend({ctx:s.ctx,options:et,chart:s});layouts.configure(s,tt,et),layouts.addBox(s,tt)},stop(s){layouts.removeBox(s,s.legend),delete s.legend},beforeUpdate(s,o,et){const tt=s.legend;layouts.configure(s,tt,et),tt.options=et},afterUpdate(s){const o=s.legend;o.buildLabels(),o.adjustHitBoxes()},afterEvent(s,o){o.replay||s.legend.handleEvent(o.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(s,o,et){const tt=o.datasetIndex,nt=et.chart;nt.isDatasetVisible(tt)?(nt.hide(tt),o.hidden=!0):(nt.show(tt),o.hidden=!1)},onHover:null,onLeave:null,labels:{color:s=>s.chart.options.color,boxWidth:40,padding:10,generateLabels(s){const o=s.data.datasets,{labels:{usePointStyle:et,pointStyle:tt,textAlign:nt,color:rt,useBorderRadius:it,borderRadius:ot}}=s.legend.options;return s._getSortedDatasetMetas().map(st=>{const at=st.controller.getStyle(et?0:void 0),lt=toPadding(at.borderWidth);return{text:o[st.index].label,fillStyle:at.backgroundColor,fontColor:rt,hidden:!st.visible,lineCap:at.borderCapStyle,lineDash:at.borderDash,lineDashOffset:at.borderDashOffset,lineJoin:at.borderJoinStyle,lineWidth:(lt.width+lt.height)/4,strokeStyle:at.borderColor,pointStyle:tt||at.pointStyle,rotation:at.rotation,textAlign:nt||at.textAlign,borderRadius:it&&(ot||at.borderRadius),datasetIndex:st.index}},this)}},title:{color:s=>s.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:s=>!s.startsWith("on"),labels:{_scriptable:s=>!["generateLabels","filter","sort"].includes(s)}}};class Title extends Element$1{constructor(o){super(),this.chart=o.chart,this.options=o.options,this.ctx=o.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(o,et){const tt=this.options;if(this.left=0,this.top=0,!tt.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=o,this.height=this.bottom=et;const nt=isArray$4(tt.text)?tt.text.length:1;this._padding=toPadding(tt.padding);const rt=nt*toFont(tt.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=rt:this.width=rt}isHorizontal(){const o=this.options.position;return o==="top"||o==="bottom"}_drawArgs(o){const{top:et,left:tt,bottom:nt,right:rt,options:it}=this,ot=it.align;let st=0,at,lt,ut;return this.isHorizontal()?(lt=_alignStartEnd(ot,tt,rt),ut=et+o,at=rt-tt):(it.position==="left"?(lt=tt+o,ut=_alignStartEnd(ot,nt,et),st=PI*-.5):(lt=rt-o,ut=_alignStartEnd(ot,et,nt),st=PI*.5),at=nt-et),{titleX:lt,titleY:ut,maxWidth:at,rotation:st}}draw(){const o=this.ctx,et=this.options;if(!et.display)return;const tt=toFont(et.font),nt=tt.lineHeight/2+this._padding.top,{titleX:rt,titleY:it,maxWidth:ot,rotation:st}=this._drawArgs(nt);renderText(o,et.text,0,0,tt,{color:et.color,maxWidth:ot,rotation:st,textAlign:_toLeftRightCenter(et.align),textBaseline:"middle",translation:[rt,it]})}}function createTitle(s,o){const et=new Title({ctx:s.ctx,options:o,chart:s});layouts.configure(s,et,o),layouts.addBox(s,et),s.titleBlock=et}var plugin_title={id:"title",_element:Title,start(s,o,et){createTitle(s,et)},stop(s){const o=s.titleBlock;layouts.removeBox(s,o),delete s.titleBlock},beforeUpdate(s,o,et){const tt=s.titleBlock;layouts.configure(s,tt,et),tt.options=et},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const map=new WeakMap;var plugin_subtitle={id:"subtitle",start(s,o,et){const tt=new Title({ctx:s.ctx,options:et,chart:s});layouts.configure(s,tt,et),layouts.addBox(s,tt),map.set(s,tt)},stop(s){layouts.removeBox(s,map.get(s)),map.delete(s)},beforeUpdate(s,o,et){const tt=map.get(s);layouts.configure(s,tt,et),tt.options=et},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const positioners={average(s){if(!s.length)return!1;let o,et,tt=0,nt=0,rt=0;for(o=0,et=s.length;o-1?s.split(` `):s}function createTooltipItem(s,o){const{element:et,datasetIndex:tt,index:nt}=o,rt=s.getDatasetMeta(tt).controller,{label:it,value:ot}=rt.getLabelAndValue(nt);return{chart:s,label:it,parsed:rt.getParsed(nt),raw:s.data.datasets[tt].data[nt],formattedValue:ot,dataset:rt.getDataset(),dataIndex:nt,datasetIndex:tt,element:et}}function getTooltipSize(s,o){const et=s.chart.ctx,{body:tt,footer:nt,title:rt}=s,{boxWidth:it,boxHeight:ot}=o,st=toFont(o.bodyFont),at=toFont(o.titleFont),lt=toFont(o.footerFont),ut=rt.length,dt=nt.length,ht=tt.length,ct=toPadding(o.padding);let pt=ct.height,ft=0,gt=tt.reduce((Ft,mt)=>Ft+mt.before.length+mt.lines.length+mt.after.length,0);if(gt+=s.beforeBody.length+s.afterBody.length,ut&&(pt+=ut*at.lineHeight+(ut-1)*o.titleSpacing+o.titleMarginBottom),gt){const Ft=o.displayColors?Math.max(ot,st.lineHeight):st.lineHeight;pt+=ht*Ft+(gt-ht)*st.lineHeight+(gt-1)*o.bodySpacing}dt&&(pt+=o.footerMarginTop+dt*lt.lineHeight+(dt-1)*o.footerSpacing);let yt=0;const Ut=function(Ft){ft=Math.max(ft,et.measureText(Ft).width+yt)};return et.save(),et.font=at.string,each(s.title,Ut),et.font=st.string,each(s.beforeBody.concat(s.afterBody),Ut),yt=o.displayColors?it+2+o.boxPadding:0,each(tt,Ft=>{each(Ft.before,Ut),each(Ft.lines,Ut),each(Ft.after,Ut)}),yt=0,et.font=lt.string,each(s.footer,Ut),et.restore(),ft+=ct.width,{width:ft,height:pt}}function determineYAlign(s,o){const{y:et,height:tt}=o;return ets.height-tt/2?"bottom":"center"}function doesNotFitWithAlign(s,o,et,tt){const{x:nt,width:rt}=tt,it=et.caretSize+et.caretPadding;if(s==="left"&&nt+rt+it>o.width||s==="right"&&nt-rt-it<0)return!0}function determineXAlign(s,o,et,tt){const{x:nt,width:rt}=et,{width:it,chartArea:{left:ot,right:st}}=s;let at="center";return tt==="center"?at=nt<=(ot+st)/2?"left":"right":nt<=rt/2?at="left":nt>=it-rt/2&&(at="right"),doesNotFitWithAlign(at,s,o,et)&&(at="center"),at}function determineAlignment(s,o,et){const tt=et.yAlign||o.yAlign||determineYAlign(s,et);return{xAlign:et.xAlign||o.xAlign||determineXAlign(s,o,et,tt),yAlign:tt}}function alignX(s,o){let{x:et,width:tt}=s;return o==="right"?et-=tt:o==="center"&&(et-=tt/2),et}function alignY(s,o,et){let{y:tt,height:nt}=s;return o==="top"?tt+=et:o==="bottom"?tt-=nt+et:tt-=nt/2,tt}function getBackgroundPoint(s,o,et,tt){const{caretSize:nt,caretPadding:rt,cornerRadius:it}=s,{xAlign:ot,yAlign:st}=et,at=nt+rt,{topLeft:lt,topRight:ut,bottomLeft:dt,bottomRight:ht}=toTRBLCorners(it);let ct=alignX(o,ot);const pt=alignY(o,st,at);return st==="center"?ot==="left"?ct+=at:ot==="right"&&(ct-=at):ot==="left"?ct-=Math.max(lt,dt)+nt:ot==="right"&&(ct+=Math.max(ut,ht)+nt),{x:_limitValue(ct,0,tt.width-o.width),y:_limitValue(pt,0,tt.height-o.height)}}function getAlignedX(s,o,et){const tt=toPadding(et.padding);return o==="center"?s.x+s.width/2:o==="right"?s.x+s.width-tt.right:s.x+tt.left}function getBeforeAfterBodyLines(s){return pushOrConcat([],splitNewlines(s))}function createTooltipContext(s,o,et){return createContext(s,{tooltip:o,tooltipItems:et,type:"tooltip"})}function overrideCallbacks(s,o){const et=o&&o.dataset&&o.dataset.tooltip&&o.dataset.tooltip.callbacks;return et?s.override(et):s}const defaultCallbacks={beforeTitle:noop,title(s){if(s.length>0){const o=s[0],et=o.chart.data.labels,tt=et?et.length:0;if(this&&this.options&&this.options.mode==="dataset")return o.dataset.label||"";if(o.label)return o.label;if(tt>0&&o.dataIndex"u"?defaultCallbacks[o].call(et,tt):nt}var Ba;let Tooltip$1=(Ba=class extends Element$1{constructor(s){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=s.chart,this.options=s.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(s){this.options=s,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const s=this._cachedAnimations;if(s)return s;const o=this.chart,et=this.options.setContext(this.getContext()),tt=et.enabled&&o.options.animation&&et.animations,nt=new Animations(this.chart,tt);return tt._cacheable&&(this._cachedAnimations=Object.freeze(nt)),nt}getContext(){return this.$context||(this.$context=createTooltipContext(this.chart.getContext(),this,this._tooltipItems))}getTitle(s,o){const{callbacks:et}=o,tt=invokeCallbackWithFallback(et,"beforeTitle",this,s),nt=invokeCallbackWithFallback(et,"title",this,s),rt=invokeCallbackWithFallback(et,"afterTitle",this,s);let it=[];return it=pushOrConcat(it,splitNewlines(tt)),it=pushOrConcat(it,splitNewlines(nt)),it=pushOrConcat(it,splitNewlines(rt)),it}getBeforeBody(s,o){return getBeforeAfterBodyLines(invokeCallbackWithFallback(o.callbacks,"beforeBody",this,s))}getBody(s,o){const{callbacks:et}=o,tt=[];return each(s,nt=>{const rt={before:[],lines:[],after:[]},it=overrideCallbacks(et,nt);pushOrConcat(rt.before,splitNewlines(invokeCallbackWithFallback(it,"beforeLabel",this,nt))),pushOrConcat(rt.lines,invokeCallbackWithFallback(it,"label",this,nt)),pushOrConcat(rt.after,splitNewlines(invokeCallbackWithFallback(it,"afterLabel",this,nt))),tt.push(rt)}),tt}getAfterBody(s,o){return getBeforeAfterBodyLines(invokeCallbackWithFallback(o.callbacks,"afterBody",this,s))}getFooter(s,o){const{callbacks:et}=o,tt=invokeCallbackWithFallback(et,"beforeFooter",this,s),nt=invokeCallbackWithFallback(et,"footer",this,s),rt=invokeCallbackWithFallback(et,"afterFooter",this,s);let it=[];return it=pushOrConcat(it,splitNewlines(tt)),it=pushOrConcat(it,splitNewlines(nt)),it=pushOrConcat(it,splitNewlines(rt)),it}_createItems(s){const o=this._active,et=this.chart.data,tt=[],nt=[],rt=[];let it=[],ot,st;for(ot=0,st=o.length;ots.filter(at,lt,ut,et))),s.itemSort&&(it=it.sort((at,lt)=>s.itemSort(at,lt,et))),each(it,at=>{const lt=overrideCallbacks(s.callbacks,at);tt.push(invokeCallbackWithFallback(lt,"labelColor",this,at)),nt.push(invokeCallbackWithFallback(lt,"labelPointStyle",this,at)),rt.push(invokeCallbackWithFallback(lt,"labelTextColor",this,at))}),this.labelColors=tt,this.labelPointStyles=nt,this.labelTextColors=rt,this.dataPoints=it,it}update(s,o){const et=this.options.setContext(this.getContext()),tt=this._active;let nt,rt=[];if(!tt.length)this.opacity!==0&&(nt={opacity:0});else{const it=positioners[et.position].call(this,tt,this._eventPosition);rt=this._createItems(et),this.title=this.getTitle(rt,et),this.beforeBody=this.getBeforeBody(rt,et),this.body=this.getBody(rt,et),this.afterBody=this.getAfterBody(rt,et),this.footer=this.getFooter(rt,et);const ot=this._size=getTooltipSize(this,et),st=Object.assign({},it,ot),at=determineAlignment(this.chart,et,st),lt=getBackgroundPoint(et,st,at,this.chart);this.xAlign=at.xAlign,this.yAlign=at.yAlign,nt={opacity:1,x:lt.x,y:lt.y,width:ot.width,height:ot.height,caretX:it.x,caretY:it.y}}this._tooltipItems=rt,this.$context=void 0,nt&&this._resolveAnimations().update(this,nt),s&&et.external&&et.external.call(this,{chart:this.chart,tooltip:this,replay:o})}drawCaret(s,o,et,tt){const nt=this.getCaretPosition(s,et,tt);o.lineTo(nt.x1,nt.y1),o.lineTo(nt.x2,nt.y2),o.lineTo(nt.x3,nt.y3)}getCaretPosition(s,o,et){const{xAlign:tt,yAlign:nt}=this,{caretSize:rt,cornerRadius:it}=et,{topLeft:ot,topRight:st,bottomLeft:at,bottomRight:lt}=toTRBLCorners(it),{x:ut,y:dt}=s,{width:ht,height:ct}=o;let pt,ft,gt,yt,Ut,Ft;return nt==="center"?(Ut=dt+ct/2,tt==="left"?(pt=ut,ft=pt-rt,yt=Ut+rt,Ft=Ut-rt):(pt=ut+ht,ft=pt+rt,yt=Ut-rt,Ft=Ut+rt),gt=pt):(tt==="left"?ft=ut+Math.max(ot,at)+rt:tt==="right"?ft=ut+ht-Math.max(st,lt)-rt:ft=this.caretX,nt==="top"?(yt=dt,Ut=yt-rt,pt=ft-rt,gt=ft+rt):(yt=dt+ct,Ut=yt+rt,pt=ft+rt,gt=ft-rt),Ft=yt),{x1:pt,x2:ft,x3:gt,y1:yt,y2:Ut,y3:Ft}}drawTitle(s,o,et){const tt=this.title,nt=tt.length;let rt,it,ot;if(nt){const st=getRtlAdapter(et.rtl,this.x,this.width);for(s.x=getAlignedX(this,et.titleAlign,et),o.textAlign=st.textAlign(et.titleAlign),o.textBaseline="middle",rt=toFont(et.titleFont),it=et.titleSpacing,o.fillStyle=et.titleColor,o.font=rt.string,ot=0;otyt!==0)?(s.beginPath(),s.fillStyle=nt.multiKeyBackground,addRoundedRectPath(s,{x:pt,y:ct,w:st,h:ot,radius:gt}),s.fill(),s.stroke(),s.fillStyle=rt.backgroundColor,s.beginPath(),addRoundedRectPath(s,{x:ft,y:ct+1,w:st-2,h:ot-2,radius:gt}),s.fill()):(s.fillStyle=nt.multiKeyBackground,s.fillRect(pt,ct,st,ot),s.strokeRect(pt,ct,st,ot),s.fillStyle=rt.backgroundColor,s.fillRect(ft,ct+1,st-2,ot-2))}s.fillStyle=this.labelTextColors[et]}drawBody(s,o,et){const{body:tt}=this,{bodySpacing:nt,bodyAlign:rt,displayColors:it,boxHeight:ot,boxWidth:st,boxPadding:at}=et,lt=toFont(et.bodyFont);let ut=lt.lineHeight,dt=0;const ht=getRtlAdapter(et.rtl,this.x,this.width),ct=function(At){o.fillText(At,ht.x(s.x+dt),s.y+ut/2),s.y+=ut+nt},pt=ht.textAlign(rt);let ft,gt,yt,Ut,Ft,mt,vt;for(o.textAlign=rt,o.textBaseline="middle",o.font=lt.string,s.x=getAlignedX(this,pt,et),o.fillStyle=et.bodyColor,each(this.beforeBody,ct),dt=it&&pt!=="right"?rt==="center"?st/2+at:st+2+at:0,Ut=0,mt=tt.length;Ut0&&o.stroke()}_updateAnimationTarget(s){const o=this.chart,et=this.$animations,tt=et&&et.x,nt=et&&et.y;if(tt||nt){const rt=positioners[s.position].call(this,this._active,this._eventPosition);if(!rt)return;const it=this._size=getTooltipSize(this,s),ot=Object.assign({},rt,this._size),st=determineAlignment(o,s,ot),at=getBackgroundPoint(s,ot,st,o);(tt._to!==at.x||nt._to!==at.y)&&(this.xAlign=st.xAlign,this.yAlign=st.yAlign,this.width=it.width,this.height=it.height,this.caretX=rt.x,this.caretY=rt.y,this._resolveAnimations().update(this,at))}}_willRender(){return!!this.opacity}draw(s){const o=this.options.setContext(this.getContext());let et=this.opacity;if(!et)return;this._updateAnimationTarget(o);const tt={width:this.width,height:this.height},nt={x:this.x,y:this.y};et=Math.abs(et)<.001?0:et;const rt=toPadding(o.padding),it=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;o.enabled&&it&&(s.save(),s.globalAlpha=et,this.drawBackground(nt,s,tt,o),overrideTextDirection(s,o.textDirection),nt.y+=rt.top,this.drawTitle(nt,s,o),this.drawBody(nt,s,o),this.drawFooter(nt,s,o),restoreTextDirection(s,o.textDirection),s.restore())}getActiveElements(){return this._active||[]}setActiveElements(s,o){const et=this._active,tt=s.map(({datasetIndex:it,index:ot})=>{const st=this.chart.getDatasetMeta(it);if(!st)throw new Error("Cannot find a dataset at index "+it);return{datasetIndex:it,element:st.data[ot],index:ot}}),nt=!_elementsEqual(et,tt),rt=this._positionChanged(tt,o);(nt||rt)&&(this._active=tt,this._eventPosition=o,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(s,o,et=!0){if(o&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const tt=this.options,nt=this._active||[],rt=this._getActiveElements(s,nt,o,et),it=this._positionChanged(rt,s),ot=o||!_elementsEqual(rt,nt)||it;return ot&&(this._active=rt,(tt.enabled||tt.external)&&(this._eventPosition={x:s.x,y:s.y},this.update(!0,o))),ot}_getActiveElements(s,o,et,tt){const nt=this.options;if(s.type==="mouseout")return[];if(!tt)return o;const rt=this.chart.getElementsAtEventForMode(s,nt.mode,nt,et);return nt.reverse&&rt.reverse(),rt}_positionChanged(s,o){const{caretX:et,caretY:tt,options:nt}=this,rt=positioners[nt.position].call(this,s,o);return rt!==!1&&(et!==rt.x||tt!==rt.y)}},He(Ba,"positioners",positioners),Ba);var plugin_tooltip={id:"tooltip",_element:Tooltip$1,positioners,afterInit(s,o,et){et&&(s.tooltip=new Tooltip$1({chart:s,options:et}))},beforeUpdate(s,o,et){s.tooltip&&s.tooltip.initialize(et)},reset(s,o,et){s.tooltip&&s.tooltip.initialize(et)},afterDraw(s){const o=s.tooltip;if(o&&o._willRender()){const et={tooltip:o};if(s.notifyPlugins("beforeTooltipDraw",{...et,cancelable:!0})===!1)return;o.draw(s.ctx),s.notifyPlugins("afterTooltipDraw",et)}},afterEvent(s,o){if(s.tooltip){const et=o.replay;s.tooltip.handleEvent(o.event,et,o.inChartArea)&&(o.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(s,o)=>o.bodyFont.size,boxWidth:(s,o)=>o.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:defaultCallbacks},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:s=>s!=="filter"&&s!=="itemSort"&&s!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},plugins=Object.freeze({__proto__:null,Colors:plugin_colors,Decimation:plugin_decimation,Filler:index,Legend:plugin_legend,SubTitle:plugin_subtitle,Title:plugin_title,Tooltip:plugin_tooltip});const addIfString=(s,o,et,tt)=>(typeof o=="string"?(et=s.push(o)-1,tt.unshift({index:et,label:o})):isNaN(o)&&(et=null),et);function findOrAddLabel(s,o,et,tt){const nt=s.indexOf(o);if(nt===-1)return addIfString(s,o,et,tt);const rt=s.lastIndexOf(o);return nt!==rt?et:nt}const validIndex=(s,o)=>s===null?null:_limitValue(Math.round(s),0,o);function _getLabelForValue(s){const o=this.getLabels();return s>=0&&set.length-1?null:this.getPixelForValue(et[o].value)}getValueForPixel(o){return Math.round(this._startValue+this.getDecimalForPixel(o)*this._valueRange)}getBasePixel(){return this.bottom}}He(CategoryScale,"id","category"),He(CategoryScale,"defaults",{ticks:{callback:_getLabelForValue}});function generateTicks$1(s,o){const et=[],{bounds:tt,step:nt,min:rt,max:it,precision:ot,count:st,maxTicks:at,maxDigits:lt,includeBounds:ut}=s,dt=nt||1,ht=at-1,{min:ct,max:pt}=o,ft=!isNullOrUndef(rt),gt=!isNullOrUndef(it),yt=!isNullOrUndef(st),Ut=(pt-ct)/(lt+1);let Ft=niceNum((pt-ct)/ht/dt)*dt,mt,vt,At,Lt;if(Ft<1e-14&&!ft&&!gt)return[{value:ct},{value:pt}];Lt=Math.ceil(pt/Ft)-Math.floor(ct/Ft),Lt>ht&&(Ft=niceNum(Lt*Ft/ht/dt)*dt),isNullOrUndef(ot)||(mt=Math.pow(10,ot),Ft=Math.ceil(Ft*mt)/mt),tt==="ticks"?(vt=Math.floor(ct/Ft)*Ft,At=Math.ceil(pt/Ft)*Ft):(vt=ct,At=pt),ft&>&&nt&&almostWhole((it-rt)/nt,Ft/1e3)?(Lt=Math.round(Math.min((it-rt)/Ft,at)),Ft=(it-rt)/Lt,vt=rt,At=it):yt?(vt=ft?rt:vt,At=gt?it:At,Lt=st-1,Ft=(At-vt)/Lt):(Lt=(At-vt)/Ft,almostEquals(Lt,Math.round(Lt),Ft/1e3)?Lt=Math.round(Lt):Lt=Math.ceil(Lt));const Rt=Math.max(_decimalPlaces(Ft),_decimalPlaces(vt));mt=Math.pow(10,isNullOrUndef(ot)?Rt:ot),vt=Math.round(vt*mt)/mt,At=Math.round(At*mt)/mt;let St=0;for(ft&&(ut&&vt!==rt?(et.push({value:rt}),vtnt=et?nt:st,ot=st=>rt=tt?rt:st;if(o){const st=sign(nt),at=sign(rt);st<0&&at<0?ot(0):st>0&&at>0&&it(0)}if(nt===rt){let st=rt===0?1:Math.abs(rt*.05);ot(rt+st),o||it(nt-st)}this.min=nt,this.max=rt}getTickLimit(){const o=this.options.ticks;let{maxTicksLimit:et,stepSize:tt}=o,nt;return tt?(nt=Math.ceil(this.max/tt)-Math.floor(this.min/tt)+1,nt>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${tt} would result generating up to ${nt} ticks. Limiting to 1000.`),nt=1e3)):(nt=this.computeTickLimit(),et=et||11),et&&(nt=Math.min(et,nt)),nt}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const o=this.options,et=o.ticks;let tt=this.getTickLimit();tt=Math.max(2,tt);const nt={maxTicks:tt,bounds:o.bounds,min:o.min,max:o.max,precision:et.precision,step:et.stepSize,count:et.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:et.minRotation||0,includeBounds:et.includeBounds!==!1},rt=this._range||this,it=generateTicks$1(nt,rt);return o.bounds==="ticks"&&_setMinAndMaxByKey(it,this,"value"),o.reverse?(it.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),it}configure(){const o=this.ticks;let et=this.min,tt=this.max;if(super.configure(),this.options.offset&&o.length){const nt=(tt-et)/Math.max(o.length-1,1)/2;et-=nt,tt+=nt}this._startValue=et,this._endValue=tt,this._valueRange=tt-et}getLabelForValue(o){return formatNumber(o,this.chart.options.locale,this.options.ticks.format)}}class LinearScale extends LinearScaleBase{determineDataLimits(){const{min:o,max:et}=this.getMinMax(!0);this.min=isNumberFinite(o)?o:0,this.max=isNumberFinite(et)?et:1,this.handleTickRangeOptions()}computeTickLimit(){const o=this.isHorizontal(),et=o?this.width:this.height,tt=toRadians$1(this.options.ticks.minRotation),nt=(o?Math.sin(tt):Math.cos(tt))||.001,rt=this._resolveTickFontOptions(0);return Math.ceil(et/Math.min(40,rt.lineHeight/nt))}getPixelForValue(o){return o===null?NaN:this.getPixelForDecimal((o-this._startValue)/this._valueRange)}getValueForPixel(o){return this._startValue+this.getDecimalForPixel(o)*this._valueRange}}He(LinearScale,"id","linear"),He(LinearScale,"defaults",{ticks:{callback:Ticks.formatters.numeric}});const log10Floor=s=>Math.floor(log10(s)),changeExponent=(s,o)=>Math.pow(10,log10Floor(s)+o);function isMajor(s){return s/Math.pow(10,log10Floor(s))===1}function steps(s,o,et){const tt=Math.pow(10,et),nt=Math.floor(s/tt);return Math.ceil(o/tt)-nt}function startExp(s,o){const et=o-s;let tt=log10Floor(et);for(;steps(s,o,tt)>10;)tt++;for(;steps(s,o,tt)<10;)tt--;return Math.min(tt,log10Floor(s))}function generateTicks(s,{min:o,max:et}){o=finiteOrDefault(s.min,o);const tt=[],nt=log10Floor(o);let rt=startExp(o,et),it=rt<0?Math.pow(10,Math.abs(rt)):1;const ot=Math.pow(10,rt),st=nt>rt?Math.pow(10,nt):0,at=Math.round((o-st)*it)/it,lt=Math.floor((o-st)/ot/10)*ot*10;let ut=Math.floor((at-lt)/Math.pow(10,rt)),dt=finiteOrDefault(s.min,Math.round((st+lt+ut*Math.pow(10,rt))*it)/it);for(;dt=10?ut=ut<15?15:20:ut++,ut>=20&&(rt++,ut=2,it=rt>=0?1:it),dt=Math.round((st+lt+ut*Math.pow(10,rt))*it)/it;const ht=finiteOrDefault(s.max,dt);return tt.push({value:ht,major:isMajor(ht),significand:ut}),tt}class LogarithmicScale extends Scale{constructor(o){super(o),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(o,et){const tt=LinearScaleBase.prototype.parse.apply(this,[o,et]);if(tt===0){this._zero=!0;return}return isNumberFinite(tt)&&tt>0?tt:null}determineDataLimits(){const{min:o,max:et}=this.getMinMax(!0);this.min=isNumberFinite(o)?Math.max(0,o):null,this.max=isNumberFinite(et)?Math.max(0,et):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!isNumberFinite(this._userMin)&&(this.min=o===changeExponent(this.min,0)?changeExponent(this.min,-1):changeExponent(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:o,maxDefined:et}=this.getUserBounds();let tt=this.min,nt=this.max;const rt=ot=>tt=o?tt:ot,it=ot=>nt=et?nt:ot;tt===nt&&(tt<=0?(rt(1),it(10)):(rt(changeExponent(tt,-1)),it(changeExponent(nt,1)))),tt<=0&&rt(changeExponent(nt,-1)),nt<=0&&it(changeExponent(tt,1)),this.min=tt,this.max=nt}buildTicks(){const o=this.options,et={min:this._userMin,max:this._userMax},tt=generateTicks(et,this);return o.bounds==="ticks"&&_setMinAndMaxByKey(tt,this,"value"),o.reverse?(tt.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),tt}getLabelForValue(o){return o===void 0?"0":formatNumber(o,this.chart.options.locale,this.options.ticks.format)}configure(){const o=this.min;super.configure(),this._startValue=log10(o),this._valueRange=log10(this.max)-log10(o)}getPixelForValue(o){return(o===void 0||o===0)&&(o=this.min),o===null||isNaN(o)?NaN:this.getPixelForDecimal(o===this.min?0:(log10(o)-this._startValue)/this._valueRange)}getValueForPixel(o){const et=this.getDecimalForPixel(o);return Math.pow(10,this._startValue+et*this._valueRange)}}He(LogarithmicScale,"id","logarithmic"),He(LogarithmicScale,"defaults",{ticks:{callback:Ticks.formatters.logarithmic,major:{enabled:!0}}});function getTickBackdropHeight(s){const o=s.ticks;if(o.display&&s.display){const et=toPadding(o.backdropPadding);return valueOrDefault(o.font&&o.font.size,defaults$2.font.size)+et.height}return 0}function measureLabelSize(s,o,et){return et=isArray$4(et)?et:[et],{w:_longestText(s,o.string,et),h:et.length*o.lineHeight}}function determineLimits(s,o,et,tt,nt){return s===tt||s===nt?{start:o-et/2,end:o+et/2}:snt?{start:o-et,end:o}:{start:o,end:o+et}}function fitWithPointLabels(s){const o={l:s.left+s._padding.left,r:s.right-s._padding.right,t:s.top+s._padding.top,b:s.bottom-s._padding.bottom},et=Object.assign({},o),tt=[],nt=[],rt=s._pointLabels.length,it=s.options.pointLabels,ot=it.centerPointLabels?PI/rt:0;for(let st=0;sto.r&&(ot=(tt.end-o.r)/rt,s.r=Math.max(s.r,o.r+ot)),nt.starto.b&&(st=(nt.end-o.b)/it,s.b=Math.max(s.b,o.b+st))}function buildPointLabelItems(s,o,et){const tt=[],nt=s._pointLabels.length,rt=s.options,it=getTickBackdropHeight(rt)/2,ot=s.drawingArea,st=rt.pointLabels.centerPointLabels?PI/nt:0;for(let at=0;at270||et<90)&&(s-=o),s}function drawPointLabels(s,o){const{ctx:et,options:{pointLabels:tt}}=s;for(let nt=o-1;nt>=0;nt--){const rt=tt.setContext(s.getPointLabelContext(nt)),it=toFont(rt.font),{x:ot,y:st,textAlign:at,left:lt,top:ut,right:dt,bottom:ht}=s._pointLabelItems[nt],{backdropColor:ct}=rt;if(!isNullOrUndef(ct)){const pt=toTRBLCorners(rt.borderRadius),ft=toPadding(rt.backdropPadding);et.fillStyle=ct;const gt=lt-ft.left,yt=ut-ft.top,Ut=dt-lt+ft.width,Ft=ht-ut+ft.height;Object.values(pt).some(mt=>mt!==0)?(et.beginPath(),addRoundedRectPath(et,{x:gt,y:yt,w:Ut,h:Ft,radius:pt}),et.fill()):et.fillRect(gt,yt,Ut,Ft)}renderText(et,s._pointLabels[nt],ot,st+it.lineHeight/2,it,{color:rt.color,textAlign:at,textBaseline:"middle"})}}function pathRadiusLine(s,o,et,tt){const{ctx:nt}=s;if(et)nt.arc(s.xCenter,s.yCenter,o,0,TAU$1);else{let rt=s.getPointPosition(0,o);nt.moveTo(rt.x,rt.y);for(let it=1;it{const nt=callback(this.options.pointLabels.callback,[et,tt],this);return nt||nt===0?nt:""}).filter((et,tt)=>this.chart.getDataVisibility(tt))}fit(){const o=this.options;o.display&&o.pointLabels.display?fitWithPointLabels(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(o,et,tt,nt){this.xCenter+=Math.floor((o-et)/2),this.yCenter+=Math.floor((tt-nt)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(o,et,tt,nt))}getIndexAngle(o){const et=TAU$1/(this._pointLabels.length||1),tt=this.options.startAngle||0;return _normalizeAngle(o*et+toRadians$1(tt))}getDistanceFromCenterForValue(o){if(isNullOrUndef(o))return NaN;const et=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-o)*et:(o-this.min)*et}getValueForDistanceFromCenter(o){if(isNullOrUndef(o))return NaN;const et=o/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-et:this.min+et}getPointLabelContext(o){const et=this._pointLabels||[];if(o>=0&&o{if(ut!==0){st=this.getDistanceFromCenterForValue(lt.value);const dt=this.getContext(ut),ht=nt.setContext(dt),ct=rt.setContext(dt);drawRadiusLine(this,ht,st,it,ct)}}),tt.display){for(o.save(),ot=it-1;ot>=0;ot--){const lt=tt.setContext(this.getPointLabelContext(ot)),{color:ut,lineWidth:dt}=lt;!dt||!ut||(o.lineWidth=dt,o.strokeStyle=ut,o.setLineDash(lt.borderDash),o.lineDashOffset=lt.borderDashOffset,st=this.getDistanceFromCenterForValue(et.ticks.reverse?this.min:this.max),at=this.getPointPosition(ot,st),o.beginPath(),o.moveTo(this.xCenter,this.yCenter),o.lineTo(at.x,at.y),o.stroke())}o.restore()}}drawBorder(){}drawLabels(){const o=this.ctx,et=this.options,tt=et.ticks;if(!tt.display)return;const nt=this.getIndexAngle(0);let rt,it;o.save(),o.translate(this.xCenter,this.yCenter),o.rotate(nt),o.textAlign="center",o.textBaseline="middle",this.ticks.forEach((ot,st)=>{if(st===0&&!et.reverse)return;const at=tt.setContext(this.getContext(st)),lt=toFont(at.font);if(rt=this.getDistanceFromCenterForValue(this.ticks[st].value),at.showLabelBackdrop){o.font=lt.string,it=o.measureText(ot.label).width,o.fillStyle=at.backdropColor;const ut=toPadding(at.backdropPadding);o.fillRect(-it/2-ut.left,-rt-lt.size/2-ut.top,it+ut.width,lt.size+ut.height)}renderText(o,ot.label,0,-rt,lt,{color:at.color})}),o.restore()}drawTitle(){}}He(RadialLinearScale,"id","radialLinear"),He(RadialLinearScale,"defaults",{display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Ticks.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(s){return s},padding:5,centerPointLabels:!1}}),He(RadialLinearScale,"defaultRoutes",{"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"}),He(RadialLinearScale,"descriptors",{angleLines:{_fallback:"grid"}});const INTERVALS={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},UNITS=Object.keys(INTERVALS);function sorter(s,o){return s-o}function parse$2(s,o){if(isNullOrUndef(o))return null;const et=s._adapter,{parser:tt,round:nt,isoWeekday:rt}=s._parseOpts;let it=o;return typeof tt=="function"&&(it=tt(it)),isNumberFinite(it)||(it=typeof tt=="string"?et.parse(it,tt):et.parse(it)),it===null?null:(nt&&(it=nt==="week"&&(isNumber$1(rt)||rt===!0)?et.startOf(it,"isoWeek",rt):et.startOf(it,nt)),+it)}function determineUnitForAutoTicks(s,o,et,tt){const nt=UNITS.length;for(let rt=UNITS.indexOf(s);rt=UNITS.indexOf(et);rt--){const it=UNITS[rt];if(INTERVALS[it].common&&s._adapter.diff(nt,tt,it)>=o-1)return it}return UNITS[et?UNITS.indexOf(et):0]}function determineMajorUnit(s){for(let o=UNITS.indexOf(s)+1,et=UNITS.length;o=o?et[tt]:et[nt];s[rt]=!0}}function setMajorTicks(s,o,et,tt){const nt=s._adapter,rt=+nt.startOf(o[0].value,tt),it=o[o.length-1].value;let ot,st;for(ot=rt;ot<=it;ot=+nt.add(ot,1,tt))st=et[ot],st>=0&&(o[st].major=!0);return o}function ticksFromTimestamps(s,o,et){const tt=[],nt={},rt=o.length;let it,ot;for(it=0;it+o.value))}initOffsets(o=[]){let et=0,tt=0,nt,rt;this.options.offset&&o.length&&(nt=this.getDecimalForValue(o[0]),o.length===1?et=1-nt:et=(this.getDecimalForValue(o[1])-nt)/2,rt=this.getDecimalForValue(o[o.length-1]),o.length===1?tt=rt:tt=(rt-this.getDecimalForValue(o[o.length-2]))/2);const it=o.length<3?.5:.25;et=_limitValue(et,0,it),tt=_limitValue(tt,0,it),this._offsets={start:et,end:tt,factor:1/(et+1+tt)}}_generate(){const o=this._adapter,et=this.min,tt=this.max,nt=this.options,rt=nt.time,it=rt.unit||determineUnitForAutoTicks(rt.minUnit,et,tt,this._getLabelCapacity(et)),ot=valueOrDefault(nt.ticks.stepSize,1),st=it==="week"?rt.isoWeekday:!1,at=isNumber$1(st)||st===!0,lt={};let ut=et,dt,ht;if(at&&(ut=+o.startOf(ut,"isoWeek",st)),ut=+o.startOf(ut,at?"day":it),o.diff(tt,et,it)>1e5*ot)throw new Error(et+" and "+tt+" are too far apart with stepSize of "+ot+" "+it);const ct=nt.ticks.source==="data"&&this.getDataTimestamps();for(dt=ut,ht=0;dtpt-ft).map(pt=>+pt)}getLabelForValue(o){const et=this._adapter,tt=this.options.time;return tt.tooltipFormat?et.format(o,tt.tooltipFormat):et.format(o,tt.displayFormats.datetime)}format(o,et){const tt=this.options.time.displayFormats,nt=this._unit,rt=et||tt[nt];return this._adapter.format(o,rt)}_tickFormatFunction(o,et,tt,nt){const rt=this.options,it=rt.ticks.callback;if(it)return callback(it,[o,et,tt],this);const ot=rt.time.displayFormats,st=this._unit,at=this._majorUnit,lt=st&&ot[st],ut=at&&ot[at],dt=tt[et],ht=at&&ut&&dt&&dt.major;return this._adapter.format(o,nt||(ht?ut:lt))}generateTickLabels(o){let et,tt,nt;for(et=0,tt=o.length;et0?ot:1}getDataTimestamps(){let o=this._cache.data||[],et,tt;if(o.length)return o;const nt=this.getMatchingVisibleMetas();if(this._normalized&&nt.length)return this._cache.data=nt[0].controller.getAllParsedValues(this);for(et=0,tt=nt.length;et=s[tt].pos&&o<=s[nt].pos&&({lo:tt,hi:nt}=_lookupByKey(s,"pos",o)),{pos:rt,time:ot}=s[tt],{pos:it,time:st}=s[nt]):(o>=s[tt].time&&o<=s[nt].time&&({lo:tt,hi:nt}=_lookupByKey(s,"time",o)),{time:rt,pos:ot}=s[tt],{time:it,pos:st}=s[nt]);const at=it-rt;return at?ot+(st-ot)*(o-rt)/at:ot}class TimeSeriesScale extends TimeScale{constructor(o){super(o),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const o=this._getTimestampsForTable(),et=this._table=this.buildLookupTable(o);this._minPos=interpolate(et,this.min),this._tableRange=interpolate(et,this.max)-this._minPos,super.initOffsets(o)}buildLookupTable(o){const{min:et,max:tt}=this,nt=[],rt=[];let it,ot,st,at,lt;for(it=0,ot=o.length;it=et&&at<=tt&&nt.push(at);if(nt.length<2)return[{time:et,pos:0},{time:tt,pos:1}];for(it=0,ot=nt.length;ito in s?__defProp$2(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,__publicField$2=(s,o,et)=>(__defNormalProp$2(s,typeof o!="symbol"?o+"":o,et),et),__defProp2=Object.defineProperty,__defProps$1=Object.defineProperties,__getOwnPropDescs$1=Object.getOwnPropertyDescriptors,__getOwnPropSymbols$1=Object.getOwnPropertySymbols,__hasOwnProp$1=Object.prototype.hasOwnProperty,__propIsEnum$1=Object.prototype.propertyIsEnumerable,__defNormalProp2=(s,o,et)=>o in s?__defProp2(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,__spreadValues$1=(s,o)=>{for(var et in o||(o={}))__hasOwnProp$1.call(o,et)&&__defNormalProp2(s,et,o[et]);if(__getOwnPropSymbols$1)for(var et of __getOwnPropSymbols$1(o))__propIsEnum$1.call(o,et)&&__defNormalProp2(s,et,o[et]);return s},__spreadProps$1=(s,o)=>__defProps$1(s,__getOwnPropDescs$1(o)),__publicField2=(s,o,et)=>(__defNormalProp2(s,typeof o!="symbol"?o+"":o,et),et);const millisecond$1$2=1,second$1$2=1e3,minute$1$2=60*second$1$2,hour$1$2=60*minute$1$2,day$1$2=24*hour$1$2,week$1$2=7*day$1$2,month$1$2=30*day$1$2,year$1$2=365*day$1$2,duration$1$2={millisecond:millisecond$1$2,second:second$1$2,minute:minute$1$2,hour:hour$1$2,day:day$1$2,week:week$1$2,month:month$1$2,year:year$1$2};let H264Decoder$1=class{constructor(o,et,tt){__publicField2(this,"worker"),__publicField2(this,"onReceive"),__publicField2(this,"onError"),__publicField2(this,"onReceiveMessage",rt=>{const{data:it}=rt;if(it.error){const ot=new Error(`${it.error}`);ot.cause=it.error,console.warn("H264 worker failure",{error:ot}),this.onError(it.index);return}this.onReceive(it)});var nt;this.worker=o,(nt=this.worker)==null||nt.addEventListener("message",this.onReceiveMessage),this.onReceive=et,this.onError=tt}post(o,et,tt,nt){var rt;(rt=this.worker)==null||rt.postMessage({timestamp:o,encodedFrame:et,flags:tt,index:nt})}release(){var o,et;(o=this.worker)==null||o.removeEventListener("message",this.onReceiveMessage),(et=this.worker)==null||et.terminate(),this.worker=void 0}},YUVCanvas$1=class{constructor(o){__publicField2(this,"gl"),__publicField2(this,"program"),__publicField2(this,"texturePosBuffer"),__publicField2(this,"textureRef"),__publicField2(this,"height",0),__publicField2(this,"width",0),this.gl=o,this.program=this.initProgram();const{texturePosBuffer:et}=this.initBuffers();this.texturePosBuffer=et;const{textureRef:tt}=this.initTextures();this.textureRef=tt}draw(o){const{gl:et,height:tt,width:nt,texturePosBuffer:rt,textureRef:it}=this;et.viewport(0,0,nt,tt);const ot=new Float32Array([1,0,0,0,1,1,0,1]);return et.bindBuffer(et.ARRAY_BUFFER,rt),et.bufferData(et.ARRAY_BUFFER,ot,et.DYNAMIC_DRAW),et.activeTexture(et.TEXTURE0),et.bindTexture(et.TEXTURE_2D,it),et.texImage2D(et.TEXTURE_2D,0,et.LUMINANCE,nt,tt+tt/2,0,et.LUMINANCE,et.UNSIGNED_BYTE,o),et.drawArrays(et.TRIANGLE_STRIP,0,4),et.getError()}initProgram(){const{gl:o}=this,et=` attribute vec4 vertexPos; @@ -4840,52 +4840,52 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho gl_FragColor = vec4(y, u, v, 1) * YUV2RGB; } - `,nt=[1.16438,0,1.59603,-.87079,1.16438,-.39176,-.81297,.52959,1.16438,2.01723,0,-1.08139,0,0,0,1],rt=o.createShader(o.VERTEX_SHADER);if(!rt)throw new Error("Failed to create vertex shader");o.shaderSource(rt,et),o.compileShader(rt);const it=o.createShader(o.FRAGMENT_SHADER);if(!it)throw new Error("Failed to create fragment shader");o.shaderSource(it,tt),o.compileShader(it);const ot=o.createProgram();if(!ot)throw new Error("Failed to create webgl program");o.attachShader(ot,rt),o.attachShader(ot,it),o.linkProgram(ot),o.useProgram(ot);const st=o.getUniformLocation(ot,"YUV2RGB");return o.uniformMatrix4fv(st,!1,nt),ot}initBuffers(){const{gl:o,program:et}=this,tt=o.createBuffer();o.bindBuffer(o.ARRAY_BUFFER,tt),o.bufferData(o.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),o.STATIC_DRAW);const nt=o.getAttribLocation(et,"vertexPos");o.enableVertexAttribArray(nt),o.vertexAttribPointer(nt,2,o.FLOAT,!1,0,0);const rt=o.createBuffer();if(!rt)throw new Error("Failed to create WebGL buffer");o.bindBuffer(o.ARRAY_BUFFER,rt),o.bufferData(o.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),o.STATIC_DRAW);const it=o.getAttribLocation(et,"texturePos");return o.enableVertexAttribArray(it),o.vertexAttribPointer(it,2,o.FLOAT,!1,0,0),{texturePosBuffer:rt}}initTextures(){const{gl:o,program:et}=this,tt=this.initTexture(),nt=o.getUniformLocation(et,"yuvSampler");return o.uniform1i(nt,0),{textureRef:tt}}initTexture(){const{gl:o}=this,et=o.createTexture();if(!et)throw new Error("Failed to initialize texture");return o.bindTexture(o.TEXTURE_2D,et),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.bindTexture(o.TEXTURE_2D,null),et}};const decoderNotWorkingThreshold$1=duration$1$2.second*2.5,warnPerformanceThreshold$1=duration$1$2.second/3,noSignalThreshold$1=duration$1$2.second*2,maxQueueSize$1=5,maxDropRatio$1=30/25,numRetries$1=5,hardwareIncompatibleErrorCode$1=1282;let H264BytestreamCanvasDrawer$1=class{constructor(o,et,tt,nt,rt){__publicField2(this,"_waitingForDecoder",!0),__publicField2(this,"_noSignal",!0),__publicField2(this,"_lostSignal",!1),__publicField2(this,"_overWaitingThreshold",!1),__publicField2(this,"_retries",0),__publicField2(this,"_webglYUVSupported"),__publicField2(this,"lastDecodedFrameTime"),__publicField2(this,"lastReceivedFrameTime"),__publicField2(this,"lastNoSignalTime",new Date().getTime()),__publicField2(this,"moduleStartTime",Date.now()),__publicField2(this,"moduleCreateTime",Date.now()),__publicField2(this,"timesRestarted",0),__publicField2(this,"canvas"),__publicField2(this,"decoder"),__publicField2(this,"yuvCanvas"),__publicField2(this,"webglContext"),__publicField2(this,"frameQueue",[]),__publicField2(this,"minFrameSize",1/0),__publicField2(this,"maxFrameSize",0),__publicField2(this,"decoderQueue",[]),__publicField2(this,"decoderQueueLocked",!1),__publicField2(this,"decodeNextFrameAttempted",!1),__publicField2(this,"numFramesDecoded",0),__publicField2(this,"numFramesReceived",0),__publicField2(this,"hasReceivedKeyframe",!1),__publicField2(this,"medianFrameSize",0),__publicField2(this,"currentFrameIndex"),__publicField2(this,"frameCheckpointMap",new Map),__publicField2(this,"lastDrawnFrameTime"),__publicField2(this,"minJitter"),__publicField2(this,"maxJitter"),__publicField2(this,"start",()=>{const{canvas:it}=this;if(!it)return;const ot=it.getContext("webgl");this.webglContext=ot||void 0,this.lastDecodedFrameTime=void 0,this.lastReceivedFrameTime=void 0,this.hasReceivedKeyframe=!1,this.currentFrameIndex=void 0,!(!this.canvas||!this.webglContext)&&(this.yuvCanvas||(this.yuvCanvas=new YUVCanvas$1(this.webglContext)),this.moduleStartTime=Date.now())}),__publicField2(this,"stop",()=>{var it;(it=this.decoder)==null||it.release(),this.webglContext=void 0,this.decoderQueueLocked=!1}),__publicField2(this,"reset",()=>{this.retries=0,this.restart()}),__publicField2(this,"notifyWarningTextChanged",()=>{var it;(it=this.onWarningTextChanged)==null||it.call(this,this.getWarningText())}),__publicField2(this,"restart",()=>{console.info("Restarting decoder"),console.info("BytestreamPlayer restarting",__spreadProps$1(__spreadValues$1({},this.trackInfo),{Restart:this.timesRestarted})),this.frameQueue=[],this.decoderQueue=[],this.stop(),this.decoder=new H264Decoder$1(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),this.start(),this.retries++,this.timesRestarted++}),__publicField2(this,"onTrackTick",()=>{if(this.numFramesDecoded===0){if(this.lastDecodedFrameTime===void 0){const at=Date.now();console.info("BytestreamPlayer waiting for video",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Time Waited":at-this.moduleCreateTime}))}return}this.numFramesReceived/this.numFramesDecoded>maxDropRatio$1&&this.warnPerformanceProblems(),this.numFramesReceived=0,this.numFramesDecoded=0;const it=Array.from(this.frameCheckpointMap.entries()).reduce((at,[lt,ut])=>{var dt;return!this.currentFrameIndex||lt>this.currentFrameIndex-60||ut==="FrameDrawn"||(at[ut]=((dt=at[ut])!=null?dt:0)+1,this.frameCheckpointMap.delete(lt)),at},{});Object.keys(it).map(at=>{console.info("BytestreamPlayer Frame Dropped",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Num Dropped":it[at],"Frame State":at}))});const{minJitter:ot,maxJitter:st}=this;ot&&st&&(console.info("BytestreamPlayer Jitter",__spreadProps$1(__spreadValues$1({},this.trackInfo),{minJitter:ot,maxJitter:st})),this.minJitter=void 0,this.maxJitter=void 0)}),__publicField2(this,"onTick",()=>{var it;const{lastReceivedFrameTime:ot,lastDecodedFrameTime:st,moduleStartTime:at,noSignal:lt,retries:ut}=this,dt=new Date().getTime();lt&&(this.lastNoSignalTime=dt),this.overWaitingThreshold=dt-at>noSignalThreshold$1;const ht=dt-at>decoderNotWorkingThreshold$1;if(!st){ot&&ht&&utnoSignalThreshold$1&&ctwarnPerformanceThreshold$1&&this.warnPerformanceProblems(),ct>noSignalThreshold$1&&(this.lostSignal=!0)}this.overWaitingThreshold&&(this.waitingForDecoder||this.noSignal||this.lostSignal)&&((it=this.onCanvasDrawerWarning)==null||it.call(this,"ShouldDisableControl"))}),__publicField2(this,"receiveEncodedFrame",it=>{if(!it)return;const ot=it.index;if(ot&&this.frameCheckpointMap.set(ot,"FrameReceived"),!(!it||!this.canvas||!this.webglContext)){if(this.isKeyframe(it),!this.hasReceivedKeyframe)return console.info("Dropping frame because no keyframe detected"),!1;this.lastReceivedFrameTime===void 0&&console.debug("Received first frame on bytestream player",__spreadValues$1({},this.trackInfo)),this.checkOrder(it),this.numFramesReceived++,this.lastReceivedFrameTime=Date.now(),this.lostSignal&&this.restart(),this.noSignal=!1,this.lostSignal=!1,this.frameQueue.push(it),ot&&this.frameCheckpointMap.set(ot,"FrameQueued"),this.frameQueue.length>maxQueueSize$1&&(this.frameQueue=this.frameQueue.filter(st=>this.isKeyframe(st))),this.frameQueue.length>maxQueueSize$1&&(this.frameQueue=[],this.decoderQueue=[]),this.decodeNextFrame()}}),__publicField2(this,"onDecoderError",it=>{this.frameQueue=[],this.decoderQueue=[],this.hasReceivedKeyframe=!1,console.info("BytestreamPlayer decode error",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Frame Index":it}))}),__publicField2(this,"onReceiveDecodedFrame",it=>{var ot,st;const{canvas:at,yuvCanvas:lt,decoderQueue:ut}=this,{timestamp:dt,yuv:ht,height:ct,width:pt,index:ft}=it;this.frameCheckpointMap.set(ft,"FrameDecoded"),this.numFramesDecoded++;const gt=Date.now();if(this.lastDecodedFrameTime===void 0&&console.info("BytestreamPlayer started video",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Time Until Video":gt-this.moduleCreateTime})),this.lastDecodedFrameTime=gt,this.waitingForDecoder=!1,this.decoderQueue=ut.filter(Ft=>gt-Ftduration$1$2.second||!lt||!at||ct===0||pt===0)return;ct!==at.height&&(at.height=ct,lt.height=ct),pt!==at.width&&(at.width=pt,lt.width=pt);const yt=lt.draw(ht),Ut=Date.now();if(this.lastDrawnFrameTime){const Ft=Ut-this.lastDrawnFrameTime;this.minJitter=Math.min(Ft,(ot=this.minJitter)!=null?ot:Number.MAX_SAFE_INTEGER),this.maxJitter=Math.max(Ft,(st=this.maxJitter)!=null?st:0)}this.lastDrawnFrameTime=Ut,this.frameCheckpointMap.set(ft,"FrameDrawn"),yt===0&&(this.webglYUVSupported=!0),yt===hardwareIncompatibleErrorCode$1&&(this.webglYUVSupported=!1),this.frameQueue.length>0&&this.decodeNextFrame()}),this.workerFactory=o,this.onWebglYUVSupportedChanged=et,this.onWarningTextChanged=tt,this.onCanvasDrawerWarning=nt,this.trackInfo=rt,this.decoder=new H264Decoder$1(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),setInterval(this.onTick,duration$1$2.millisecond*200),setInterval(this.onTrackTick,duration$1$2.second*5)}get waitingForDecoder(){return this._waitingForDecoder}set waitingForDecoder(o){this._waitingForDecoder=o,this.notifyWarningTextChanged()}get noSignal(){return this._noSignal}set noSignal(o){this._noSignal=o,this.notifyWarningTextChanged()}get lostSignal(){return this._lostSignal}set lostSignal(o){this._lostSignal=o,this.notifyWarningTextChanged()}get overWaitingThreshold(){return this._overWaitingThreshold}set overWaitingThreshold(o){this._overWaitingThreshold=o,this.notifyWarningTextChanged()}get retries(){return this._retries}set retries(o){this._retries=o,this.notifyWarningTextChanged()}get webglYUVSupported(){return this._webglYUVSupported}set webglYUVSupported(o){var et;this._webglYUVSupported=o,(et=this.onWebglYUVSupportedChanged)==null||et.call(this,o),this.notifyWarningTextChanged()}setCanvas(o){this.canvas=o}getWarningText(){var o;const{waitingForDecoder:et,noSignal:tt,overWaitingThreshold:nt,lostSignal:rt,retries:it,webglYUVSupported:ot}=this,st=ot===!1,at=et?it===numRetries$1?"Decoder failed to start":"Starting decoder":void 0;return(o=(st?"Hardware decoding not supported on this device":void 0)??(rt?"Lost signal":tt?nt?"No signal":"Waiting for signal":void 0))!=null?o:at}decodeNextFrame(){if(this.decoderQueueLocked&&(this.decodeNextFrameAttempted=!0),this.decoderQueueLocked=!0,this.decoderQueue.length>maxQueueSize$1){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const o=this.frameQueue.shift();if(!o){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const et=Date.now();this.frameCheckpointMap.set(o.index,"FrameSentToDecoder"),this.decoder.post(et,o.frame_data,o.flags,o.index),this.decoderQueue.push(et),this.decoderQueueLocked=!1,this.decodeNextFrameAttempted&&(this.decodeNextFrameAttempted=!1,this.decodeNextFrame())}warnPerformanceProblems(){var o;this.lastDecodedFrameTime&&this.overWaitingThreshold&&!this.lostSignal&&!this.noSignal&&((o=this.onCanvasDrawerWarning)==null||o.call(this,"ShouldDegradeVideo"))}checkOrder(o){if(this.currentFrameIndex!==void 0&&o.indexDate.now()?!1:nt>this.medianFrameSize?(this.hasReceivedKeyframe=!0,!0):!1}};const encodedJs$3="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbihTKXt0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShTKTpTKCl9KShmdW5jdGlvbigpe2NvbnN0IEo9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07dmFyIHk9e30sRj17fSxhPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBHPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7ZnVuY3Rpb24gaChBKXtsZXQgST1BLmxlbmd0aDtBW0EubGVuZ3RoLTJdPT09Ij0iP0ktPTI6QVtBLmxlbmd0aC0xXT09PSI9IiYmSS0tO2NvbnN0IGc9SS80KjN8MCxCPW5ldyBVaW50OEFycmF5KGcpO2ZvcihsZXQgUT0wLEM9MDtRPGc7USs9Myl7Y29uc3QgRD1HLmluZGV4T2YoQVtDKytdKSxFPUcuaW5kZXhPZihBW0MrK10pO2lmKEJbUV09RDw8MnxFPj40LEM9PT1JKWJyZWFrO2NvbnN0IHc9Ry5pbmRleE9mKEFbQysrXXx8Ij0iKTtpZihCW1ErMV09KEUmMTUpPDw0fHc+PjIsQz09PUkpYnJlYWs7Y29uc3Qgbz1HLmluZGV4T2YoQVtDKytdfHwiPSIpO0JbUSsyXT0odyYzKTw8NnxvfXJldHVybiBCfWEuZGVjb2RlPWgsT2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IEw9IkFHRnpiUUVBQUFBQmx3RVRZQUovZndGL1lBUi9mMzkvQVg5Z0FuOS9BR0FEZjM5L0FYOWdBWDhBWUFsL2YzOS9mMzkvZjM4QVlBRi9BWDlnQkg5L2YzOEFZQVovZjM5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUFOL2YzOEFZQVYvZjM5L2Z3Ri9ZQUFBWUFWL2YzOS9md0JnQm45L2YzOS9md0JnQ245L2YzOS9mMzkvZjM4QVlBQUJmMkFIZjM5L2YzOS9md0YvWUFoL2YzOS9mMzkvZndGL0FqQURCR2d5TmpRR2JXVnRZM0I1QUFNRWFESTJOQVp5WlhOcGVtVUFCZ1JvTWpZMEJtMWxiVzl5ZVFJQmdBS0FnQUlEWTJJQUFBUUFBUU1LQVFZQUJRTUZCZ2NBQndZQUF3NERCd2NGQWdBQ0F3UUFCUVVGQlFvRUFnUUpBUWNBQXdZR0FnSUJCZ1FEQWdJQkN3RUJBd01MRFFJQkFBQUNDUWtKRHdJRkJRQUJDZ0FTQ3hFSUNBY0lDQWNFQVFRSUNBWUJFQWdBQVFZSkFYOEJRYkRFd0FJTEJ5WUVCbTFoYkd4dll3QUtDV2d5TmpSaGJHeHZZd0JnQm1SbFkyOWtaUUJoQkdsdWFYUUFZZ3IycFFWaXdBSUJBbjhnQUJBUElnSkJmMHdFUUNBQVFRRVFDeG9nQVVFQU5nSUFRUUFQQ3dKQUFrQWdBa0dBZ0lDQUJFOEVRQ0FBUVFNUUMwRi9SZ1JBUVFFUEN5QUJJQUpCSFhaQkFYRkJBV28yQWdBTUFRc2dBa0dBZ0lDQUFrOEVRQ0FBUVFVUUMwRi9SZ1JBUVFFUEN5QUJJQUpCRzNaQkEzRkJBMm8yQWdBTUFRc2dBa0dBZ0lDQUFVOEVRQ0FBUVFjUUMwRi9SZ1JBUVFFUEN5QUJJQUpCR1haQkIzRkJCMm8yQWdBTUFRc2dBaEF2SWdOQkJHb2lBa0VnUmdSQUlBRkJBRFlDQUNBQVFTQVFDeHBCQVNFQ0lBQkJBUkFEUVFGSERRSWdBQkFQSVFNZ0FFRWdFQXRCZjBZTkFpQURRUUZMRFFJZ0EwRUJhd1JBSUFGQmZ6WUNBQXdDQ3lBQlFYODJBZ0JCQVE4TElBQWdBMEVGYWhBTEdpQUFJQUlRQXlJQVFYOUdCRUJCQVE4TElBRWdBRUYvSUFKMFFYOXphallDQUF0QkFDRUNDeUFDQzRnQ0FRZC9JQUFvQWdRaEJBSkFJQUFvQWd4QkEzUWlCeUFBS0FJUUlnaHJJZ0pCSUU0RVFDQUVLQUFBSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUVESUFBb0FnZ2lBa1VOQVNBRElBSjBJQVF0QUFSQkNDQUNhM1p5SVFNTUFRc2dBa0VCU0FSQURBRUxJQVF0QUFBZ0FDZ0NDQ0lGUVJocUlnWjBJUU1nQWlBRmFrRjRhaUlDUVFGSURRQURRQ0FFTFFBQklBWkJlR29pQm5RZ0EzSWhBeUFDUVFoS0lRVWdCRUVCYWlFRUlBSkJlR29oQWlBRkRRQUxDeUFBSUFFZ0NHb2lCRFlDRUNBQUlBUkJCM0UyQWdoQmZ5RUNJQVFnQjAwRWZ5QUFJQUFvQWdBZ0JFRURkbW8yQWdRZ0EwRWdJQUZyZGdWQmZ3c0xxZzBCQjM4Q1FDQUFSUTBBSUFCQmVHb2lBeUFBUVh4cUtBSUFJZ0ZCZUhFaUFHb2hCUUpBSUFGQkFYRU5BQ0FCUVFOeFJRMEJJQU1nQXlnQ0FDSUNheUlEUWNUQUFDZ0NBQ0lFU1EwQklBQWdBbW9oQUNBRFFjakFBQ2dDQUVjRVFDQUNRZjhCVFFSQUlBTW9BZ2dpQkNBQ1FRTjJJZ0pCQTNSQjNNQUFha2NhSUFRZ0F5Z0NEQ0lCUmdSQVFiVEFBRUcwd0FBb0FnQkJmaUFDZDNFMkFnQU1Bd3NnQkNBQk5nSU1JQUVnQkRZQ0NBd0NDeUFES0FJWUlRWUNRQ0FESUFNb0Fnd2lBVWNFUUNBRUlBTW9BZ2dpQWswRVFDQUNLQUlNR2dzZ0FpQUJOZ0lNSUFFZ0FqWUNDQXdCQ3dKQUlBTkJGR29pQWlnQ0FDSUVEUUFnQTBFUWFpSUNLQUlBSWdRTkFFRUFJUUVNQVFzRFFDQUNJUWNnQkNJQlFSUnFJZ0lvQWdBaUJBMEFJQUZCRUdvaEFpQUJLQUlRSWdRTkFBc2dCMEVBTmdJQUN5QUdSUTBCQWtBZ0F5QURLQUljSWdKQkFuUkI1TUlBYWlJRUtBSUFSZ1JBSUFRZ0FUWUNBQ0FCRFFGQnVNQUFRYmpBQUNnQ0FFRitJQUozY1RZQ0FBd0RDeUFHUVJCQkZDQUdLQUlRSUFOR0cyb2dBVFlDQUNBQlJRMENDeUFCSUFZMkFoZ2dBeWdDRUNJQ0JFQWdBU0FDTmdJUUlBSWdBVFlDR0FzZ0F5Z0NGQ0lDUlEwQklBRWdBallDRkNBQ0lBRTJBaGdNQVFzZ0JTZ0NCQ0lCUVFOeFFRTkhEUUJCdk1BQUlBQTJBZ0FnQlNBQlFYNXhOZ0lFSUFNZ0FFRUJjallDQkNBQUlBTnFJQUEyQWdBUEN5QUZJQU5ORFFBZ0JTZ0NCQ0lCUVFGeFJRMEFBa0FnQVVFQ2NVVUVRQ0FGUWN6QUFDZ0NBRVlFUUVITXdBQWdBellDQUVIQXdBQkJ3TUFBS0FJQUlBQnFJZ0EyQWdBZ0F5QUFRUUZ5TmdJRUlBTkJ5TUFBS0FJQVJ3MERRYnpBQUVFQU5nSUFRY2pBQUVFQU5nSUFEd3NnQlVISXdBQW9BZ0JHQkVCQnlNQUFJQU0yQWdCQnZNQUFRYnpBQUNnQ0FDQUFhaUlBTmdJQUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFDUUNBQlFmOEJUUVJBSUFVb0Fnd2hBaUFGS0FJSUlnUWdBVUVEZGlJQlFRTjBRZHpBQUdvaUIwY0VRRUhFd0FBb0FnQWFDeUFDSUFSR0JFQkJ0TUFBUWJUQUFDZ0NBRUYrSUFGM2NUWUNBQXdDQ3lBQ0lBZEhCRUJCeE1BQUtBSUFHZ3NnQkNBQ05nSU1JQUlnQkRZQ0NBd0JDeUFGS0FJWUlRWUNRQ0FGSUFVb0Fnd2lBVWNFUUVIRXdBQW9BZ0FnQlNnQ0NDSUNUUVJBSUFJb0Fnd2FDeUFDSUFFMkFnd2dBU0FDTmdJSURBRUxBa0FnQlVFVWFpSUNLQUlBSWdRTkFDQUZRUkJxSWdJb0FnQWlCQTBBUVFBaEFRd0JDd05BSUFJaEJ5QUVJZ0ZCRkdvaUFpZ0NBQ0lFRFFBZ0FVRVFhaUVDSUFFb0FoQWlCQTBBQ3lBSFFRQTJBZ0FMSUFaRkRRQUNRQ0FGSUFVb0Fod2lBa0VDZEVIa3dnQnFJZ1FvQWdCR0JFQWdCQ0FCTmdJQUlBRU5BVUc0d0FCQnVNQUFLQUlBUVg0Z0FuZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ0lFUUNBQklBSTJBaEFnQWlBQk5nSVlDeUFGS0FJVUlnSkZEUUFnQVNBQ05nSVVJQUlnQVRZQ0dBc2dBeUFBUVFGeU5nSUVJQUFnQTJvZ0FEWUNBQ0FEUWNqQUFDZ0NBRWNOQVVHOHdBQWdBRFlDQUE4TElBVWdBVUYrY1RZQ0JDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFDeUFBUWY4QlRRUkFJQUJCQTNZaUFVRURkRUhjd0FCcUlRQUNmMEcwd0FBb0FnQWlBa0VCSUFGMElnRnhSUVJBUWJUQUFDQUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBaUFBSUFNMkFnZ2dBaUFETmdJTUlBTWdBRFlDRENBRElBSTJBZ2dQQ3lBRFFnQTNBaEFnQXdKL1FRQWdBRUVJZGlJQlJRMEFHa0VmSUFCQi8vLy9CMHNOQUJvZ0FTQUJRWUQrUDJwQkVIWkJDSEVpQVhRaUFpQUNRWURnSDJwQkVIWkJCSEVpQW5RaUJDQUVRWUNBRDJwQkVIWkJBbkVpQkhSQkQzWWdBU0FDY2lBRWNtc2lBVUVCZENBQUlBRkJGV3AyUVFGeGNrRWNhZ3NpQWpZQ0hDQUNRUUowUWVUQ0FHb2hBUUpBQWtBQ1FFRzR3QUFvQWdBaUJFRUJJQUowSWdkeFJRUkFRYmpBQUNBRUlBZHlOZ0lBSUFFZ0F6WUNBQ0FESUFFMkFoZ01BUXNnQUVFQVFSa2dBa0VCZG1zZ0FrRWZSaHQwSVFJZ0FTZ0NBQ0VCQTBBZ0FTSUVLQUlFUVhoeElBQkdEUUlnQWtFZGRpRUJJQUpCQVhRaEFpQUVJQUZCQkhGcUlnZEJFR29vQWdBaUFRMEFDeUFISUFNMkFoQWdBeUFFTmdJWUN5QURJQU0yQWd3Z0F5QUROZ0lJREFFTElBUW9BZ2dpQUNBRE5nSU1JQVFnQXpZQ0NDQURRUUEyQWhnZ0F5QUVOZ0lNSUFNZ0FEWUNDQXRCMU1BQVFkVEFBQ2dDQUVGL2FpSUFOZ0lBSUFBTkFFSDh3d0FoQXdOQUlBTW9BZ0FpQUVFSWFpRURJQUFOQUF0QjFNQUFRWDgyQWdBTEMzUUJBbjhqQUVFUWF5SUNKQUFnQWtFQU5nSU1JQUFnQWtFTWFoQUNJUUFDZnlBQ0tBSU1JZ05CZjBZRVFFRUJJQUJGRFFFYUlBRkJnSUNBZ0hnMkFnQkJBQXdCQzBFQklBQU5BQm9nQVNBRFFRRnFRUUYySWdGQkFDQUJheUFEUVFGeEd6WUNBRUVBQ3lFQUlBSkJFR29rQUNBQUM4Y0xBUlIvSUFGQm9EMXFMUUFBUVF4c0lnWkIxRHhxS0FJQUlRVWdCa0hRUEdvb0FnQWdBVUdRUEdvdEFBQWlCM1FoQkNBQ1JRUkFJQUFnQUNnQ0FDQUViRFlDQUFzZ0JTQUhkQ0VCQWtBQ1FDQURRWnovQTNFRVFDQUFJQVpCMkR4cUtBSUFJQWQwSWdNZ0FDZ0NQR3cyQWp3Z0FDQUFLQUk0SUFGc05nSTRRUUVoQWlBQUlBQW9BaXdnQkd3aUJ5QUFLQUlNSUFSc0lnVnFJZ2tnQUNnQ0lDQUJiQ0lLSUFBb0FqUWdBV3dpRDBFQmRXb2lFR3NpQmpZQ0xDQUFLQUlvSVFnZ0FDQUZJQWRySWdVZ0NrRUJkU0FQYXlJS2F5SUhOZ0lvSUFBb0FpUWhEaUFBSUFVZ0Ntb2lCVFlDSkNBQUlBQW9BaHdnQVd3aUR5QUFLQUlJSUFGc0lndHFJaE1nQUNnQ0VDQURiQ0lSSUFBb0FqQWdBMndpREVFQmRXb2lGV3NpQ2pZQ0hDQUFLQUlZSVEwZ0FDQUxJQTlySWdzZ0VVRUJkU0FNYXlJUmF5SVBOZ0lZSUFBb0FoUWhEQ0FBSUFzZ0VXb2lDellDRkNBQUlBUWdER3dpQkNBQUtBSUFJZ3hxSWhRZ0FDZ0NCQ0FCYkNJU0lBRWdEV3dpRFVFQmRXb2lGbXNpRVRZQ0RDQUFJQXdnQkdzaUJDQVNRUUYxSUExcklnMXJJZ3cyQWdnZ0FDQUVJQTFxSWcwMkFnUWdBQ0FCSUE1c0lnUWdBQ2dDT0NJT2F5SVNJQU1nQ0d3aUNFRUJkU0FBS0FJOEloZHJJZ05ySWdFMkFqZ2dBQ0FESUJKcUlnTTJBalFnQUNBRUlBNXFJZzRnRjBFQmRTQUlhaUlJYXlJRU5nSThJQUFnRkNBV2FpSVVJQWtnRUdvaUVHdEJJR29pRWlBSUlBNXFJZ2tnRXlBVmFpSUlRUUYxSWc1cmFrRUdkU0lUTmdJZ0lBQWdFaUFPSUFscmFrRUdkU0lPTmdJUUlBQWdFQ0FVYWtFZ2FpSVFJQWxCQVhVZ0NHb2lDV3RCQm5VaUNEWUNNQ0FBSUFrZ0VHcEJCblVpQ1RZQ0FDQUpRWUFFYWlBT1FZQUVhbkpCL3dkTERRSWdDRUdBQkdvZ0UwR0FCR3B5UWY4SFN3MENJQUFnQlNBTmFrRWdhaUlKSUFOQkFYVWdDMm9pRUd0QkJuVWlDRFlDTkNBQUlBMGdCV3RCSUdvaUJTQURJQXRCQVhVaUMydHFRUVoxSWcwMkFpUWdBQ0FGSUFzZ0EydHFRUVoxSWdNMkFoUWdBQ0FKSUJCcVFRWjFJZ1UyQWdRZ0JVR0FCR29nQTBHQUJHcHlRZjhIU3cwQ0lBaEJnQVJxSUExQmdBUnFja0gvQjBzTkFpQUFJQWNnREdwQklHb2lBeUFCUVFGMUlBOXFJZ1ZyUVFaMUlnczJBamdnQUNBTUlBZHJRU0JxSWdjZ0FTQVBRUUYxSWc5cmFrRUdkU0lNTmdJb0lBQWdCeUFQSUFGcmFrRUdkU0lCTmdJWUlBQWdBeUFGYWtFR2RTSUROZ0lJSUFOQmdBUnFJQUZCZ0FScWNrSC9CMHNOQWlBTFFZQUVhaUFNUVlBRWFuSkIvd2RMRFFJZ0FDQUdJQkZxUVNCcUlnRWdCRUVCZFNBS2FpSURhMEVHZFNJSE5nSThJQUFnRVNBR2EwRWdhaUlHSUFRZ0NrRUJkU0lGYTJwQkJuVWlDallDTENBQUlBWWdCU0FFYTJwQkJuVWlCRFlDSENBQUlBRWdBMnBCQm5VaUFEWUNEQ0FBUVlBRWFpQUVRWUFFYW5KQi93ZExEUUlnQjBHQUJHb2dDa0dBQkdweVFmOEhUUTBCREFJTElBTkI0Z0J4UlFSQVFRRWhBaUFBS0FJQVFTQnFRUVoxSWdGQmdBUnFRZjhIU3cwQ0lBQWdBVFlDT0NBQUlBRTJBandnQUNBQk5nSTBJQUFnQVRZQ01DQUFJQUUyQWl3Z0FDQUJOZ0lvSUFBZ0FUWUNKQ0FBSUFFMkFpQWdBQ0FCTmdJY0lBQWdBVFlDR0NBQUlBRTJBaFFnQUNBQk5nSVFJQUFnQVRZQ0RDQUFJQUUyQWdnZ0FDQUJOZ0lFSUFBZ0FUWUNBQXdCQzBFQklRSWdBQ0FBS0FJRUlBRnNJZ2NnQUNnQ0dDQUJiQ0lHUVFGMWFpSURJQUFvQWdBaUJTQUFLQUlVSUFSc0lnUnFJZ3BxUVNCcVFRWjFJZ0UyQWpBZ0FDQUtJQU5yUVNCcVFRWjFJZ00yQWd3Z0FDQUZJQVJySWdVZ0JpQUhRUUYxSWdkcmFrRWdha0VHZFNJRU5nSUlJQUFnQnlBR2F5QUZha0VnYWtFR2RTSUdOZ0lFSUFBZ0FUWUNBQ0FBSUFFMkFpQWdBQ0FHTmdJMElBQWdBVFlDRUNBQUlBWTJBaVFnQUNBRU5nSTRJQUFnQmpZQ0ZDQUFJQVEyQWlnZ0FDQUROZ0k4SUFBZ0JEWUNHQ0FBSUFNMkFpd2dBQ0FETmdJY0lBTkJnQVJxSUFGQmdBUnFJQVJCZ0FScUlBWkJnQVJxY25KeVFmOEhTdzBCQzBFQUlRSUxJQUlMOHdJQ0FuOEJmZ0pBSUFKRkRRQWdBQ0FDYWlJRFFYOXFJQUU2QUFBZ0FDQUJPZ0FBSUFKQkEwa05BQ0FEUVg1cUlBRTZBQUFnQUNBQk9nQUJJQU5CZldvZ0FUb0FBQ0FBSUFFNkFBSWdBa0VIU1EwQUlBTkJmR29nQVRvQUFDQUFJQUU2QUFNZ0FrRUpTUTBBSUFCQkFDQUFhMEVEY1NJRWFpSURJQUZCL3dGeFFZR0NoQWhzSWdFMkFnQWdBeUFDSUFSclFYeHhJZ1JxSWdKQmZHb2dBVFlDQUNBRVFRbEpEUUFnQXlBQk5nSUlJQU1nQVRZQ0JDQUNRWGhxSUFFMkFnQWdBa0YwYWlBQk5nSUFJQVJCR1VrTkFDQURJQUUyQWhnZ0F5QUJOZ0lVSUFNZ0FUWUNFQ0FESUFFMkFnd2dBa0Z3YWlBQk5nSUFJQUpCYkdvZ0FUWUNBQ0FDUVdocUlBRTJBZ0FnQWtGa2FpQUJOZ0lBSUFRZ0EwRUVjVUVZY2lJRWF5SUNRU0JKRFFBZ0FhMGlCVUlnaGlBRmhDRUZJQU1nQkdvaEFRTkFJQUVnQlRjREdDQUJJQVUzQXhBZ0FTQUZOd01JSUFFZ0JUY0RBQ0FCUVNCcUlRRWdBa0ZnYWlJQ1FSOUxEUUFMQ3lBQUMvSURBUU4vSUFFb0FnQWlBMEgvLy84SFJ3UkFJQUVvQWdRaEJDQUFJQUlnQWtFRGNTQUNRUkJKSWdJYlFRSjBJZ1ZCOENscUtBSUFRUkJCQ0NBQ0d5SUNiR29nQlVHd0tXb29BZ0JxSWdBZ0F5QUFMUUFBYWtHd0xtb3RBQUE2QUFBZ0FTZ0NDQ0VESUFBZ0JDQUFMUUFCYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VFSUFBZ0F5QUFMUUFDYWtHd0xtb3RBQUE2QUFJZ0FDQUVJQUF0QUFOcVFiQXVhaTBBQURvQUF5QUJLQUlVSVFNZ0FDQUNhaUlBSUFFb0FoQWdBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BaGdoQkNBQUlBTWdBQzBBQVdwQnNDNXFMUUFBT2dBQklBRW9BaHdoQXlBQUlBUWdBQzBBQW1wQnNDNXFMUUFBT2dBQ0lBQWdBeUFBTFFBRGFrR3dMbW90QUFBNkFBTWdBU2dDSkNFRElBQWdBbW9pQUNBQktBSWdJQUF0QUFCcVFiQXVhaTBBQURvQUFDQUJLQUlvSVFRZ0FDQURJQUF0QUFGcVFiQXVhaTBBQURvQUFTQUJLQUlzSVFNZ0FDQUVJQUF0QUFKcVFiQXVhaTBBQURvQUFpQUFJQU1nQUMwQUEycEJzQzVxTFFBQU9nQURJQUVvQWpRaEF5QUFJQUpxSWdBZ0FTZ0NNQ0FBTFFBQWFrR3dMbW90QUFBNkFBQWdBU2dDT0NFQ0lBQWdBeUFBTFFBQmFrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQWdBaUFBTFFBQ2FrR3dMbW90QUFBNkFBSWdBQ0FCSUFBdEFBTnFRYkF1YWkwQUFEb0FBd3NMMHhBQkRIOGpBRUdBQVdzaUNpUUFJQUFRRHlFRVFRRWhCUUpBQWtBQ2Z5QUNRUUZOQkVBZ0JFRUFTQTBDSUFSQkdYWkIvZ0J4UVlBSWFpQUVRWUNBZ09BQVR3MEJHaUFFUVJWMlFmNFBjVUhBQ0dvZ0JFR0FnSUFJVHcwQkdpQUVRUkYyUWY3L0FYRkJrQWxxSUFSQmdJQ0FBVThOQVJvZ0JFRVFka0VCZEVHUUNtb01BUXNnQWtFRFRRUkFJQVJCZjB3RVFFRUNRYUlRSUFSQmdJQ0FnQVJ4R3lFRkRBTUxJQVJCR1haQi9nQnhRZEFLYWlBRVFZQ0FnSUFCVHcwQkdpQUVRUloyUWY0SGNVR1FDMm9nQkVHQWdJQVFUdzBCR2lBRVFSRjJRZjcvQVhGQjBBdHFEQUVMSUFKQkIwMEVRQ0FFUVJwMklnSkJlR3BCT0VrRVFDQUNRUUYwUWRBTmFnd0NDeUFFUVJWMlFmNFBjVUhRRG1vTUFRc2dCRUVaZGtIK0FIRkIwQkJxSUFKQkVFME5BQm9nQkVFZGRpSUNCRUFnQWtFQmRFSFFFV29NQVFzZ0JFRVhka0grQTNGQjRCRnFDeThCQUNJRkRRQkJBU0VMREFFTFFRRWhDeUFGUVF0Mklna2dBMHNOQUVFZ0lBVkJIM0VpQm1zaEFnSkFJQWxGQkVBTUFRc2dCQ0FHZENFRUFrQWdCVUVGZGtFL2NTSU1SUVJBREFFTElBSWdERWtFUUNBQUlBWVFDMEYvUmcwRElBQVFEeUVFUVNBaEFnc2dCQ0FNZENFR1FRRWdERUYvYW5RaEJ5QUVRU0FnREd0MklRUURRQ0FLUVVCcklBaEJBblJxUVg5QkFTQUVJQWR4R3pZQ0FDQUlRUUZxSVFnZ0IwRUJkaUlIRFFBTElBSWdER3NoQWlBR0lRUUxJQWdnQ1VrRVFDQU1RUU5KSWc4Z0JVSC9yd0ZMY1NFRkEwQWdBa0VQVFFSQUlBQkJJQ0FDYXhBTFFYOUdCRUFNQlFzZ0FCQVBJUVJCSUNFQ0MwRUFJUVlDUUFKQUFuOENRQ0FFUVFCSURRQkJBU0VHSUFSQi8vLy8vd05MRFFCQkFpRUdJQVJCLy8vLy93RkxEUUJCQXlFR0lBUkIvLy8vL3dCTERRQkJCQ0VHSUFSQi8vLy9QMHNOQUVFRklRWWdCRUgvLy84ZlN3MEFRUVloQmlBRVFmLy8vdzlMRFFCQkJ5RUdJQVJCLy8vL0Iwc05BRUVJSVFZZ0JFSC8vLzhEU3cwQVFRa2hCaUFFUWYvLy93RkxEUUJCQ2lFR0lBUkIvLy8vQUVzTkFFRUxJUVlnQkVILy96OUxEUUJCRENFR0lBUkIvLzhmU3cwQVFRMGhCaUFFUWYvL0Qwc05BQUovQWtBZ0JFSC8vd2ROQkVBZ0JFR0FnSHh4UVlDQUJFWU5BUXdLQ3lBRlFRUWdCUnNoQmlBRVFROTBJUVJCRGlFSElBSkJjV29NQVFzZ0JVRUJJQVViSVFVZ0JFRVFkQ0VFUVF3aEJrRVBJUWNnQWtGd2Fnc2hBaUFISUFWMElRY2dCVVVNQVFzZ0JpQUZkQ0VIUVFFaERpQUNJQVpCQVdvaUJtc2hBaUFFSUFaMElRUWdCVVVOQVNBRklRWkJBQXNoRGlBQ0lBWlBCSDhnQkFVZ0FFRWdJQUpyRUF0QmYwWUVRQXdIQzBFZ0lRSWdBQkFQQ3lFTklBSWdCbXNoQWlBTklBWjBJUVFnRFVFZ0lBWnJkaUFIYWlFSERBRUxRUUFoQlFzZ0NrRkFheUFJUVFKMGFrRUFJQWRCQW1vZ0J5QUlJQXhHR3lBSElBOGJJZzFCQW1wQkFYWWlCbXNnQmlBTlFRRnhHellDQUVFQklBVWdEaHNpQlNBRlFRWkpJQVpCQXlBRlFYOXFkRXB4YWlFRklBaEJBV29pQ0NBSlJ3MEFDd3RCQUNFSEFrQWdDU0FEVHdSQVFRQWhDQXdCQ3dKQUlBSkJDRXNFUUNBQ0lRVU1BUXRCSUNFRklBQkJJQ0FDYXhBTFFYOUdEUU1nQUJBUElRUUxBa0FDUUFKL0FrQWdBMEVFUndSQUlBbEJmMm9pQWtFTlN3MERBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBa0VCYXc0TkFBRUNBd1FGQmdjSUNRb0xEQTRMSUFSQkduWkI0QkpxREE0TElBUkJHblpCb0JOcURBMExJQVJCRzNaQjRCTnFEQXdMSUFSQkczWkJnQlJxREFzTElBUkJHblpCb0JScURBb0xJQVJCR25aQjRCUnFEQWtMSUFSQkduWkJvQlZxREFnTElBUkJHblpCNEJWcURBY0xJQVJCRzNaQm9CWnFEQVlMSUFSQkhIWkJ3QlpxREFVTElBUkJISFpCMEJacURBUUxJQVJCSFhaQjRCWnFEQU1MSUFSQkhuWkI2QlpxREFJTElBUkJBRWdFUUVFQklRSU1CQXRCRVNFQ0lBbEJBMFlOQTBFU0lRSWdCRUgvLy8vL0Ewc05BMEVpSVFJZ0NVRUNSZzBEUVNOQk15QUVRZi8vLy84QlN4c2hBZ3dEQ3lBRVFSdDJRYUFTYWlBRVFSZDJRY0FTYWlBRVFmLy8vLzhBU3hzTExRQUFJZ0lOQVF3RUMwRVJRUUVnQkVFQVNCc2hBZ3NnQWtFRWRpRUlJQVVnQWtFUGNTSURheUVDSUFRZ0EzUWhCQXNnQ1VGL2FpSURCRUFEUUFKL0lBZ0VRQ0FDUVFwTkJFQWdBRUVnSUFKckVBdEJmMFlFUUF3SEN5QUFFQThoQkVFZ0lRSUxBa0FDZndKQUlBaEJmMm9pQlVFRlRRUkFBa0FDUUFKQUFrQUNRQ0FGUVFGckRnVUFBUUlEQkFZTElBUkJIblpCN2hacURBWUxJQVJCSG5aQjhoWnFEQVVMSUFSQkhYWkI5aFpxREFRTElBUkJIWFpCL2hacURBTUxJQVJCSFhaQmhoZHFEQUlMQW45Qjh3QWdCRUVaZGtId0FIRnJJQVJCZ0lDQWdBSlBEUUFhUWZRQUlBUkIvLy8vL3dCTERRQWFRWVVCSUFSQi8vLy9QMHNOQUJwQmxnRWdCRUgvLy84ZlN3MEFHa0duQVNBRVFmLy8vdzlMRFFBYVFiZ0JJQVJCLy8vL0Iwc05BQnBCeVFFZ0JFSC8vLzhEU3cwQUdrSGFBU0FFUWYvLy93RkxEUUFhUVFCQjZ3RWdCRUdBZ0lBQlNSc0xJZ1ZCQkhZZ0NFME5BZ3dJQ3lBRVFSOTJRZXdXYWdzdEFBQWhCUXNnQlVVRVFBd0dDeUFLSUFkQkFuUnFJQVZCQkhZaUJrRUJhallDQUNBQ0lBVkJEM0VpQldzaEFpQUVJQVYwSVFRZ0NDQUdhd3dCQ3lBS0lBZEJBblJxUVFFMkFnQkJBQXNoQ0NBSFFRRnFJZ2NnQTBjTkFBc2dBU0FJUVFKMGFpQUtRVUJySUFOQkFuUnFLQUlBTmdJQUlBbEJmbW9oQlVFQklBaDBJUWNEUUNBQklBb2dCU0lEUVFKMElnVnFLQUlBSUFocUlnaEJBblJxSUFwQlFHc2dCV29vQWdBMkFnQWdBMEYvYWlFRlFRRWdDSFFnQjNJaEJ5QUREUUFMREFFTElBRWdDRUVDZEdvZ0NrRkFheUFEUVFKMGFpZ0NBRFlDQUVFQklBaDBJUWNMSUFCQklDQUNheEFMRFFBZ0IwRVFkQ0FKUVFSMGNpRUxDeUFLUVlBQmFpUUFJQXNMelM0QkMzOGpBRUVRYXlJTEpBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCdE1BQUtBSUFJZ1pCRUNBQVFRdHFRWGh4SUFCQkMwa2JJZ1ZCQTNZaUFIWWlBVUVEY1FSQUlBRkJmM05CQVhFZ0FHb2lBa0VEZENJRVFlVEFBR29vQWdBaUFVRUlhaUVBQWtBZ0FTZ0NDQ0lESUFSQjNNQUFhaUlFUmdSQVFiVEFBQ0FHUVg0Z0FuZHhOZ0lBREFFTFFjVEFBQ2dDQUJvZ0F5QUVOZ0lNSUFRZ0F6WUNDQXNnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1EQXNnQlVHOHdBQW9BZ0FpQ0UwTkFTQUJCRUFDUUVFQ0lBQjBJZ0pCQUNBQ2EzSWdBU0FBZEhFaUFFRUFJQUJyY1VGL2FpSUFJQUJCREhaQkVIRWlBSFlpQVVFRmRrRUljU0lDSUFCeUlBRWdBbllpQUVFQ2RrRUVjU0lCY2lBQUlBRjJJZ0JCQVhaQkFuRWlBWElnQUNBQmRpSUFRUUYyUVFGeElnRnlJQUFnQVhacUlnSkJBM1FpQTBIa3dBQnFLQUlBSWdFb0FnZ2lBQ0FEUWR6QUFHb2lBMFlFUUVHMHdBQWdCa0YrSUFKM2NTSUdOZ0lBREFFTFFjVEFBQ2dDQUJvZ0FDQUROZ0lNSUFNZ0FEWUNDQXNnQVVFSWFpRUFJQUVnQlVFRGNqWUNCQ0FCSUFWcUlnY2dBa0VEZENJQ0lBVnJJZ05CQVhJMkFnUWdBU0FDYWlBRE5nSUFJQWdFUUNBSVFRTjJJZ1JCQTNSQjNNQUFhaUVCUWNqQUFDZ0NBQ0VDQW44Z0JrRUJJQVIwSWdSeFJRUkFRYlRBQUNBRUlBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEJDQUJJQUkyQWdnZ0JDQUNOZ0lNSUFJZ0FUWUNEQ0FDSUFRMkFnZ0xRY2pBQUNBSE5nSUFRYnpBQUNBRE5nSUFEQXdMUWJqQUFDZ0NBQ0lLUlEwQklBcEJBQ0FLYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQWlBQWNpQUJJQUoySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJZ0VvQWdSQmVIRWdCV3NoQXlBQklRSURRQUpBSUFJb0FoQWlBRVVFUUNBQ0tBSVVJZ0JGRFFFTElBQW9BZ1JCZUhFZ0JXc2lBaUFESUFJZ0Ewa2lBaHNoQXlBQUlBRWdBaHNoQVNBQUlRSU1BUXNMSUFFb0FoZ2hDU0FCSUFFb0Fnd2lCRWNFUUVIRXdBQW9BZ0FnQVNnQ0NDSUFUUVJBSUFBb0Fnd2FDeUFBSUFRMkFnd2dCQ0FBTmdJSURBc0xJQUZCRkdvaUFpZ0NBQ0lBUlFSQUlBRW9BaEFpQUVVTkF5QUJRUkJxSVFJTEEwQWdBaUVISUFBaUJFRVVhaUlDS0FJQUlnQU5BQ0FFUVJCcUlRSWdCQ2dDRUNJQURRQUxJQWRCQURZQ0FBd0tDMEYvSVFVZ0FFRy9mMHNOQUNBQVFRdHFJZ0JCZUhFaEJVRzR3QUFvQWdBaUIwVU5BRUVBSUFWcklRSUNRQUpBQWtBQ2YwRUFJQUJCQ0hZaUFFVU5BQnBCSHlBRlFmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnTWdBMEdBZ0E5cVFSQjJRUUp4SWdOMFFROTJJQUFnQVhJZ0EzSnJJZ0JCQVhRZ0JTQUFRUlZxZGtFQmNYSkJIR29MSWdoQkFuUkI1TUlBYWlnQ0FDSURSUVJBUVFBaEFBd0JDeUFGUVFCQkdTQUlRUUYyYXlBSVFSOUdHM1FoQVVFQUlRQURRQUpBSUFNb0FnUkJlSEVnQldzaUJpQUNUdzBBSUFNaEJDQUdJZ0lOQUVFQUlRSWdBeUVBREFNTElBQWdBeWdDRkNJR0lBWWdBeUFCUVIxMlFRUnhhaWdDRUNJRFJoc2dBQ0FHR3lFQUlBRWdBMEVBUjNRaEFTQUREUUFMQ3lBQUlBUnlSUVJBUVFJZ0NIUWlBRUVBSUFCcmNpQUhjU0lBUlEwRElBQkJBQ0FBYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQXlBQWNpQUJJQU4ySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJRElBSkpJUUVnQXlBQ0lBRWJJUUlnQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBQ1FiekFBQ2dDQUNBRmEwOE5BQ0FFS0FJWUlRZ2dCQ0FFS0FJTUlnRkhCRUJCeE1BQUtBSUFJQVFvQWdnaUFFMEVRQ0FBS0FJTUdnc2dBQ0FCTmdJTUlBRWdBRFlDQ0F3SkN5QUVRUlJxSWdNb0FnQWlBRVVFUUNBRUtBSVFJZ0JGRFFNZ0JFRVFhaUVEQ3dOQUlBTWhCaUFBSWdGQkZHb2lBeWdDQUNJQURRQWdBVUVRYWlFRElBRW9BaEFpQUEwQUN5QUdRUUEyQWdBTUNBdEJ2TUFBS0FJQUlnRWdCVThFUUVISXdBQW9BZ0FoQUFKQUlBRWdCV3NpQWtFUVR3UkFRYnpBQUNBQ05nSUFRY2pBQUNBQUlBVnFJZ00yQWdBZ0F5QUNRUUZ5TmdJRUlBQWdBV29nQWpZQ0FDQUFJQVZCQTNJMkFnUU1BUXRCeU1BQVFRQTJBZ0JCdk1BQVFRQTJBZ0FnQUNBQlFRTnlOZ0lFSUFBZ0FXb2lBU0FCS0FJRVFRRnlOZ0lFQ3lBQVFRaHFJUUFNQ2d0QndNQUFLQUlBSWdFZ0JVc0VRRUhBd0FBZ0FTQUZheUlCTmdJQVFjekFBRUhNd0FBb0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQW9MUVFBaEFDQUZRUzlxSWdRQ2YwR014QUFvQWdBRVFFR1V4QUFvQWdBTUFRdEJtTVFBUW44M0FnQkJrTVFBUW9DZ2dJQ0FnQVEzQWdCQmpNUUFJQXRCREdwQmNIRkIyS3JWcWdWek5nSUFRYURFQUVFQU5nSUFRZkREQUVFQU5nSUFRWUFnQ3lJQ2FpSUdRUUFnQW1zaUIzRWlBaUFGVFEwSlFlekRBQ2dDQUNJREJFQkI1TU1BS0FJQUlnZ2dBbW9pQ1NBSVRRMEtJQWtnQTBzTkNndEI4TU1BTFFBQVFRUnhEUVFDUUFKQVFjekFBQ2dDQUNJREJFQkI5TU1BSVFBRFFDQUFLQUlBSWdnZ0EwMEVRQ0FJSUFBb0FnUnFJQU5MRFFNTElBQW9BZ2dpQUEwQUN3dEJBQkFUSWdGQmYwWU5CU0FDSVFaQmtNUUFLQUlBSWdCQmYyb2lBeUFCY1FSQUlBSWdBV3NnQVNBRGFrRUFJQUJyY1dvaEJnc2dCaUFGVFEwRklBWkIvdi8vL3dkTERRVkI3TU1BS0FJQUlnQUVRRUhrd3dBb0FnQWlBeUFHYWlJSElBTk5EUVlnQnlBQVN3MEdDeUFHRUJNaUFDQUJSdzBCREFjTElBWWdBV3NnQjNFaUJrSCsvLy8vQjBzTkJDQUdFQk1pQVNBQUtBSUFJQUFvQWdScVJnMERJQUVoQUFzQ1FDQUZRVEJxSUFaTkRRQWdBRUYvUmcwQVFaVEVBQ2dDQUNJQklBUWdCbXRxUVFBZ0FXdHhJZ0ZCL3YvLy93ZExCRUFnQUNFQkRBY0xJQUVRRTBGL1J3UkFJQUVnQm1vaEJpQUFJUUVNQnd0QkFDQUdheEFUR2d3RUN5QUFJZ0ZCZjBjTkJRd0RDMEVBSVFRTUJ3dEJBQ0VCREFVTElBRkJmMGNOQWd0QjhNTUFRZkREQUNnQ0FFRUVjallDQUFzZ0FrSCsvLy8vQjBzTkFTQUNFQk1pQVVFQUVCTWlBRThOQVNBQlFYOUdEUUVnQUVGL1JnMEJJQUFnQVdzaUJpQUZRU2hxVFEwQkMwSGt3d0JCNU1NQUtBSUFJQVpxSWdBMkFnQWdBRUhvd3dBb0FnQkxCRUJCNk1NQUlBQTJBZ0FMQWtBQ1FBSkFRY3pBQUNnQ0FDSURCRUJCOU1NQUlRQURRQ0FCSUFBb0FnQWlBaUFBS0FJRUlnUnFSZzBDSUFBb0FnZ2lBQTBBQ3d3Q0MwSEV3QUFvQWdBaUFFRUFJQUVnQUU4YlJRUkFRY1RBQUNBQk5nSUFDMEVBSVFCQitNTUFJQVkyQWdCQjlNTUFJQUUyQWdCQjFNQUFRWDgyQWdCQjJNQUFRWXpFQUNnQ0FEWUNBRUdBeEFCQkFEWUNBQU5BSUFCQkEzUWlBa0hrd0FCcUlBSkIzTUFBYWlJRE5nSUFJQUpCNk1BQWFpQUROZ0lBSUFCQkFXb2lBRUVnUncwQUMwSEF3QUFnQmtGWWFpSUFRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlDYXlJRE5nSUFRY3pBQUNBQklBSnFJZ0kyQWdBZ0FpQURRUUZ5TmdJRUlBQWdBV3BCS0RZQ0JFSFF3QUJCbk1RQUtBSUFOZ0lBREFJTElBQXRBQXhCQ0hFTkFDQUJJQU5ORFFBZ0FpQURTdzBBSUFBZ0JDQUdhallDQkVITXdBQWdBMEY0SUFOclFRZHhRUUFnQTBFSWFrRUhjUnNpQUdvaUFUWUNBRUhBd0FCQndNQUFLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRZERBQUVHY3hBQW9BZ0EyQWdBTUFRc2dBVUhFd0FBb0FnQWlCRWtFUUVIRXdBQWdBVFlDQUNBQklRUUxJQUVnQm1vaEFrSDB3d0FoQUFKQUFrQUNRQUpBQWtBQ1FBTkFJQUlnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEI5TU1BSVFBRFFDQUFLQUlBSWdJZ0EwMEVRQ0FDSUFBb0FnUnFJZ1FnQTBzTkF3c2dBQ2dDQ0NFQURBQUFDd0FMSUFBZ0FUWUNBQ0FBSUFBb0FnUWdCbW8yQWdRZ0FVRjRJQUZyUVFkeFFRQWdBVUVJYWtFSGNSdHFJZ2tnQlVFRGNqWUNCQ0FDUVhnZ0FtdEJCM0ZCQUNBQ1FRaHFRUWR4RzJvaUFTQUpheUFGYXlFQUlBVWdDV29oQnlBQklBTkdCRUJCek1BQUlBYzJBZ0JCd01BQVFjREFBQ2dDQUNBQWFpSUFOZ0lBSUFjZ0FFRUJjallDQkF3REN5QUJRY2pBQUNnQ0FFWUVRRUhJd0FBZ0J6WUNBRUc4d0FCQnZNQUFLQUlBSUFCcUlnQTJBZ0FnQnlBQVFRRnlOZ0lFSUFBZ0Iyb2dBRFlDQUF3REN5QUJLQUlFSWdKQkEzRkJBVVlFUUNBQ1FYaHhJUW9DUUNBQ1FmOEJUUVJBSUFFb0FnZ2lBeUFDUVFOMklnUkJBM1JCM01BQWFrY2FJQU1nQVNnQ0RDSUNSZ1JBUWJUQUFFRzB3QUFvQWdCQmZpQUVkM0UyQWdBTUFnc2dBeUFDTmdJTUlBSWdBellDQ0F3QkN5QUJLQUlZSVFnQ1FDQUJJQUVvQWd3aUJrY0VRQ0FFSUFFb0FnZ2lBazBFUUNBQ0tBSU1HZ3NnQWlBR05nSU1JQVlnQWpZQ0NBd0JDd0pBSUFGQkZHb2lBeWdDQUNJRkRRQWdBVUVRYWlJREtBSUFJZ1VOQUVFQUlRWU1BUXNEUUNBRElRSWdCU0lHUVJScUlnTW9BZ0FpQlEwQUlBWkJFR29oQXlBR0tBSVFJZ1VOQUFzZ0FrRUFOZ0lBQ3lBSVJRMEFBa0FnQVNBQktBSWNJZ0pCQW5SQjVNSUFhaUlES0FJQVJnUkFJQU1nQmpZQ0FDQUdEUUZCdU1BQVFiakFBQ2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQUZHRzJvZ0JqWUNBQ0FHUlEwQkN5QUdJQWcyQWhnZ0FTZ0NFQ0lDQkVBZ0JpQUNOZ0lRSUFJZ0JqWUNHQXNnQVNnQ0ZDSUNSUTBBSUFZZ0FqWUNGQ0FDSUFZMkFoZ0xJQUVnQ21vaEFTQUFJQXBxSVFBTElBRWdBU2dDQkVGK2NUWUNCQ0FISUFCQkFYSTJBZ1FnQUNBSGFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVFRGRpSUJRUU4wUWR6QUFHb2hBQUovUWJUQUFDZ0NBQ0lDUVFFZ0FYUWlBWEZGQkVCQnRNQUFJQUVnQW5JMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0J6WUNDQ0FCSUFjMkFnd2dCeUFBTmdJTUlBY2dBVFlDQ0F3REN5QUhBbjlCQUNBQVFRaDJJZ0ZGRFFBYVFSOGdBRUgvLy84SFN3MEFHaUFCSUFGQmdQNC9ha0VRZGtFSWNTSUJkQ0lDSUFKQmdPQWZha0VRZGtFRWNTSUNkQ0lESUFOQmdJQVBha0VRZGtFQ2NTSURkRUVQZGlBQklBSnlJQU55YXlJQlFRRjBJQUFnQVVFVmFuWkJBWEZ5UVJ4cUN5SUJOZ0ljSUFkQ0FEY0NFQ0FCUVFKMFFlVENBR29oQWdKQVFiakFBQ2dDQUNJRFFRRWdBWFFpQkhGRkJFQkJ1TUFBSUFNZ0JISTJBZ0FnQWlBSE5nSUFEQUVMSUFCQkFFRVpJQUZCQVhacklBRkJIMFliZENFRElBSW9BZ0FoQVFOQUlBRWlBaWdDQkVGNGNTQUFSZzBESUFOQkhYWWhBU0FEUVFGMElRTWdBaUFCUVFSeGFpSUVLQUlRSWdFTkFBc2dCQ0FITmdJUUN5QUhJQUkyQWhnZ0J5QUhOZ0lNSUFjZ0J6WUNDQXdDQzBIQXdBQWdCa0ZZYWlJQVFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEd5SUNheUlITmdJQVFjekFBQ0FCSUFKcUlnSTJBZ0FnQWlBSFFRRnlOZ0lFSUFBZ0FXcEJLRFlDQkVIUXdBQkJuTVFBS0FJQU5nSUFJQU1nQkVFbklBUnJRUWR4UVFBZ0JFRlpha0VIY1J0cVFWRnFJZ0FnQUNBRFFSQnFTUnNpQWtFYk5nSUVJQUpCL01NQUtRSUFOd0lRSUFKQjlNTUFLUUlBTndJSVFmekRBQ0FDUVFocU5nSUFRZmpEQUNBR05nSUFRZlREQUNBQk5nSUFRWURFQUVFQU5nSUFJQUpCR0dvaEFBTkFJQUJCQnpZQ0JDQUFRUWhxSVFFZ0FFRUVhaUVBSUFRZ0FVc05BQXNnQWlBRFJnMERJQUlnQWlnQ0JFRitjVFlDQkNBRElBSWdBMnNpQkVFQmNqWUNCQ0FDSUFRMkFnQWdCRUgvQVUwRVFDQUVRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQVFMSUFOQ0FEY0NFQ0FEQW45QkFDQUVRUWgySWdCRkRRQWFRUjhnQkVILy8vOEhTdzBBR2lBQUlBQkJnUDQvYWtFUWRrRUljU0lBZENJQklBRkJnT0FmYWtFUWRrRUVjU0lCZENJQ0lBSkJnSUFQYWtFUWRrRUNjU0lDZEVFUGRpQUFJQUZ5SUFKeWF5SUFRUUYwSUFRZ0FFRVZhblpCQVhGeVFSeHFDeUlBTmdJY0lBQkJBblJCNU1JQWFpRUJBa0JCdU1BQUtBSUFJZ0pCQVNBQWRDSUdjVVVFUUVHNHdBQWdBaUFHY2pZQ0FDQUJJQU0yQWdBZ0F5QUJOZ0lZREFFTElBUkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQUVvQWdBaEFRTkFJQUVpQWlnQ0JFRjRjU0FFUmcwRUlBQkJIWFloQVNBQVFRRjBJUUFnQWlBQlFRUnhhaUlHS0FJUUlnRU5BQXNnQmlBRE5nSVFJQU1nQWpZQ0dBc2dBeUFETmdJTUlBTWdBellDQ0F3REN5QUNLQUlJSWdBZ0J6WUNEQ0FDSUFjMkFnZ2dCMEVBTmdJWUlBY2dBallDRENBSElBQTJBZ2dMSUFsQkNHb2hBQXdGQ3lBQ0tBSUlJZ0FnQXpZQ0RDQUNJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FqWUNEQ0FESUFBMkFnZ0xRY0RBQUNnQ0FDSUFJQVZORFFCQndNQUFJQUFnQldzaUFUWUNBRUhNd0FCQnpNQUFLQUlBSWdBZ0JXb2lBallDQUNBQ0lBRkJBWEkyQWdRZ0FDQUZRUU55TmdJRUlBQkJDR29oQUF3REMwR3d3QUJCTURZQ0FFRUFJUUFNQWdzQ1FDQUlSUTBBQWtBZ0JDZ0NIQ0lBUVFKMFFlVENBR29pQXlnQ0FDQUVSZ1JBSUFNZ0FUWUNBQ0FCRFFGQnVNQUFJQWRCZmlBQWQzRWlCellDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQVJHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQWcyQWhnZ0JDZ0NFQ0lBQkVBZ0FTQUFOZ0lRSUFBZ0FUWUNHQXNnQkNnQ0ZDSUFSUTBBSUFFZ0FEWUNGQ0FBSUFFMkFoZ0xBa0FnQWtFUFRRUkFJQVFnQWlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnTWdBa0VCY2pZQ0JDQUNJQU5xSUFJMkFnQWdBa0gvQVUwRVFDQUNRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQUVMSUFNQ2YwRUFJQUpCQ0hZaUFFVU5BQnBCSHlBQ1FmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnVWdCVUdBZ0E5cVFSQjJRUUp4SWdWMFFROTJJQUFnQVhJZ0JYSnJJZ0JCQVhRZ0FpQUFRUlZxZGtFQmNYSkJIR29MSWdBMkFod2dBMElBTndJUUlBQkJBblJCNU1JQWFpRUJBa0FDUUNBSFFRRWdBSFFpQlhGRkJFQkJ1TUFBSUFVZ0IzSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBRW9BZ0FoQlFOQUlBVWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCU0FBUVFGMElRQWdBU0FGUVFSeGFpSUdLQUlRSWdVTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUFsRkRRQUNRQ0FCS0FJY0lnQkJBblJCNU1JQWFpSUNLQUlBSUFGR0JFQWdBaUFFTmdJQUlBUU5BVUc0d0FBZ0NrRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0JVRURjallDQkNBQklBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQ0FSQUlBaEJBM1lpQlVFRGRFSGN3QUJxSVFCQnlNQUFLQUlBSVFJQ2YwRUJJQVYwSWdVZ0JuRkZCRUJCdE1BQUlBVWdCbkkyQWdBZ0FBd0JDeUFBS0FJSUN5RUZJQUFnQWpZQ0NDQUZJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0JUWUNDQXRCeU1BQUlBUTJBZ0JCdk1BQUlBTTJBZ0FMSUFGQkNHb2hBQXNnQzBFUWFpUUFJQUFMUkFFQmZ5QUFJQUFvQWhBZ0FXb2lBVFlDRUNBQUlBRkJCM0UyQWdoQmZ5RUNJQUVnQUNnQ0RFRURkRTBFZnlBQUlBQW9BZ0FnQVVFRGRtbzJBZ1JCQUFWQmZ3c0w1UWNCQ0g4Z0FDQUVRUUFnQm1zZ0FpQUNJQVpxUVFCSUd5SUNJQUlnQkVvYklnSnFJQUFnQWtFQVNoc2lDU0FGUVFBZ0Iyc2dBeUFESUFkcVFRQklHeUlBSUFBZ0JVb2JJZ0FnQkd4cUlBa2dBRUVBU2hzaEF5QUhRUUFnQUdzZ0FFRWZkWEVpQ1dzZ0FDQUhhaUlBSUFWcklneEJBQ0FBSUFWS0d5SVBheUVMSUFaQkFDQUNheUlPSUFKQkgzVnhJZzFySUFJZ0Jtb2lBQ0FFYTBFQUlBQWdCRW9pQlJzaUNtc2hBQUpBSUFKQkFFZ2dCWElpRUVVRVFDQUpCRUFEUUNBQklBTWdBQkFWSUFocUlRRWdDVUYvYWlJSkRRQUxDeUFMUlEwQkEwQWdBU0FESUFBUUZTQUlhaUVCSUFNZ0JHb2hBeUFMUVg5cUlnc05BQXNNQVFzQ1FDQUpSUTBBSUExRkJFQURRQ0FBSVFjZ0FTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQVNBSWFpRUJJQWxCZjJvaUNRMEFEQUlBQ3dBTElBRWdEbW9oQmdOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0JpRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQmlBSWFpRUdJQUVnQ0dvaEFTQUpRWDlxSWdrTkFBc0xJQXRGRFFBZ0RVVUVRQU5BSUFBaEJ5QUJJUUlnQXlFRklBQUVRQU5BSUFJZ0JTMEFBRG9BQUNBQ1FRRnFJUUlnQlVFQmFpRUZJQWRCZjJvaUJ3MEFDd3NnQ2dSQUlBSWdCVUYvYWkwQUFDQUtFQWNhQ3lBQklBaHFJUUVnQXlBRWFpRURJQXRCZjJvaUN3MEFEQUlBQ3dBTElBRWdEbW9oQ1FOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0NTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQ0NBSmFpRUpJQUVnQ0dvaEFTQURJQVJxSVFNZ0MwRi9haUlMRFFBTEN3SkFJQTlGRFFBZ0F5QUVheUVESUJCRkJFQURRQ0FCSUFNZ0FCQVZJQWhxSVFFZ0RFRi9haUlNRFFBTUFnQUxBQXNnRFVVRVFBTkFJQU1oQWlBQklRVWdBQ0VISUFBRVFBTkFJQVVnQWkwQUFEb0FBQ0FGUVFGcUlRVWdBa0VCYWlFQ0lBZEJmMm9pQncwQUN3c2dDZ1JBSUFVZ0FrRi9haTBBQUNBS0VBY2FDeUFCSUFocUlRRWdERUYvYWlJTURRQU1BZ0FMQUFzZ0FTQU9haUVKQTBBZ0FTQURMUUFBSUEwUUJ5RUJJQUFoQnlBSklRSWdBeUVGSUFBRVFBTkFJQUlnQlMwQUFEb0FBQ0FDUVFGcUlRSWdCVUVCYWlFRklBZEJmMm9pQncwQUN3c2dDZ1JBSUFJZ0JVRi9haTBBQUNBS0VBY2FDeUFJSUFscUlRa2dBU0FJYWlFQklBeEJmMm9pREEwQUN3c0w5QUlCQTM4Z0FVRURkRUh3Tm1vaUF5Z0NBQ0VGSUFNdEFBUWhBeUFCUVFOMFFiQTFhaUlCTFFBRUlRUUNRQ0FCS0FJQVFRUkdCRUFnQWlBRVFRRjBhaTRCQUNFQklBVkJCRVlFUUNBQklBSWdBMEVCZEdvdUFRQnFRUUZxUVFGMUR3c0NmeUFBS0FMTUFTSUNCRUFnQUNnQ0JDQUNLQUlFUmd3QkMwRUFDMFVOQVNBQklBQW9Bc3dCSUFOQkFYUnFMZ0VjYWtFQmFrRUJkUThMSUFWQkJFWUVRQ0FDSUFOQkFYUnFMZ0VBSVFFQ2Z5QUFLQUxJQVNJQ0JFQWdBQ2dDQkNBQ0tBSUVSZ3dCQzBFQUMwVU5BU0FCSUFBb0FzZ0JJQVJCQVhScUxnRWNha0VCYWtFQmRROExBbjhDZnlBQUtBTElBU0lCQkVBZ0FDZ0NCQ0FCS0FJRVJnd0JDMEVBQzBVRVFFRUFJUUpCQUF3QkMwRUJJUUlnQUNnQ3lBRWdCRUVCZEdvdUFSd0xJUUVDZnlBQUtBTE1BU0lFQkVBZ0FDZ0NCQ0FFS0FJRVJnd0JDMEVBQzBVTkFDQUFLQUxNQVNBRFFRRjBhaTRCSENFQUlBSkZCRUFnQUE4TElBQWdBV3BCQVdwQkFYVWhBUXNnQVF1SkJ3RUhmeUFESUFWcUlnMGdBUzRCQUNJTVFRSjFhaUVESUFRZ0Jtb2lEaUFCTGdFQ0lnOUJBblZxSVFRZ0FpZ0NDRUVFZENFSklBSW9BZ1JCQkhRaENpQUFJQVpCQkhScUlBVnFJUXNDUUNBTVFRTnhRUVIwSUE5QkEzRkJBblJ5UWRBN2FpZ0NBQ0lNUVE1TkJFQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnREVFQmF3NE9BUUlEQkFVR0J3Z0pDZ3NNRFE0QUN5QUNLQUlBSUFzZ0F5QUVJQW9nQ1NBSElBaEJFQkFNREE4TElBSW9BZ0FnQ3lBRElBUkJmbW9nQ2lBSklBY2dDRUVBRUNRTURnc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJRUVjTURRc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJUVFFUUpBd01DeUFDS0FJQUlBc2dBMEYrYWlBRUlBb2dDU0FISUFoQkFCQWpEQXNMSUFJb0FnQWdDeUFEUVg1cUlBUkJmbW9nQ2lBSklBY2dDRUVBRUJvTUNnc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRQVFJUXdKQ3lBQ0tBSUFJQXNnQTBGK2FpQUVRWDVxSUFvZ0NTQUhJQWhCQWhBYURBZ0xJQUlvQWdBZ0N5QURRWDVxSUFRZ0NpQUpJQWNnQ0JCR0RBY0xJQUlvQWdBZ0N5QURRWDVxSUFSQmZtb2dDaUFKSUFjZ0NFRUFFQ0lNQmdzZ0FpZ0NBQ0FMSUFOQmZtb2dCRUYrYWlBS0lBa2dCeUFJRUVVTUJRc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRRVFJZ3dFQ3lBQ0tBSUFJQXNnQTBGK2FpQUVJQW9nQ1NBSElBaEJBUkFqREFNTElBSW9BZ0FnQ3lBRFFYNXFJQVJCZm1vZ0NpQUpJQWNnQ0VFQkVCb01BZ3NnQWlnQ0FDQUxJQU5CZm1vZ0JFRithaUFLSUFrZ0J5QUlRUUVRSVF3QkN5QUNLQUlBSUFzZ0EwRithaUFFUVg1cUlBb2dDU0FISUFoQkF4QWFDeUFOUVFGMklBRXVBUUFpQ1VFRGRXb2hBeUFPUVFGMklBRXVBUUlpQVVFRGRXb2hCQ0FDS0FJQUlBSW9BZ1FpQ2lBQ0tBSUlJZ3RzUVFoMGFpRUNJQUFnQmtFQ2RFRjRjV29nQlVFQmRtcEJnQUpxSVFVZ0NFRUJkaUVHSUFkQkFYWWhCeUFCUVFkeElRZ2dDMEVEZENFQUlBcEJBM1FoQVFKQUlBbEJCM0VpQ1VVTkFDQUlSUTBBSUFJZ0JTQURJQVFnQVNBQUlBa2dDQ0FISUFZUVNBOExJQWtFUUNBQ0lBVWdBeUFFSUFFZ0FDQUpJQWNnQmhCTER3c2dDQVJBSUFJZ0JTQURJQVFnQVNBQUlBZ2dCeUFHRUVvUEN5QUNJQVVnQXlBRUlBRWdBQ0FISUFaQkNCQU1JQUlnQUNBQmJHb2dCVUZBYXlBRElBUWdBU0FBSUFjZ0JrRUlFQXdMeHdFQkJIOGdBQ2dDQkNFQ0FrQWdBQ2dDREVFRGRDQUFLQUlRYXlJRFFTQk9CRUFnQWlnQUFDSUJRUmgwSUFGQkNIUkJnSUQ4QjNGeUlBRkJDSFpCZ1A0RGNTQUJRUmgyY25JaEFTQUFLQUlJSWdCRkRRRWdBU0FBZENBQ0xRQUVRUWdnQUd0MmNnOExJQU5CQVVnRVFFRUFEd3NnQWkwQUFDQUFLQUlJSWdCQkdHb2lCSFFoQVNBQUlBTnFRWGhxSWdCQkFVZ05BQU5BSUFJdEFBRWdCRUY0YWlJRWRDQUJjaUVCSUFCQkNFb2hBeUFDUVFGcUlRSWdBRUY0YWlFQUlBTU5BQXNMSUFFTGpBUUJCMzhDUUNBQVFYOXFJZ2d0QUFBaUJTQUFMUUFBSWdacklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJRVR3MEFJQUJCZm1vdEFBQWlCQ0FGYXlJSElBZEJIM1VpQjJvZ0IzTWdBaWdDQ0NJSlR3MEFJQUF0QUFFaUJ5QUdheUlLSUFwQkgzVWlDbW9nQ25NZ0NVOE5BQ0FCUVFOTkJFQWdDQ0FGSUFFZ0FpZ0NBR3BCZjJvdEFBQWlDRUYvY3lJSklBaEJBV29pQ0NBR0lBVnJRUUowSUFkcklBUnFRUVJxUVFOMUlnVWdCU0FJU2hzZ0JTQUpTQnNpQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFGYTBHd0xtb3RBQUE2QUFBTUFRc2dDQ0FGSUFkcUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFBZ0JpQUhRUUYwYWlBRWFrRUNha0VDZGpvQUFBc0NRQ0FBSUFOcUlnQkJmMm9pQnkwQUFDSURJQUF0QUFBaUJXc2lCaUFHUVI5MUlnWnFJQVp6SUFJb0FnUlBEUUFnQUVGK2FpMEFBQ0lHSUFOcklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJSUlnaFBEUUFnQUMwQUFTSUVJQVZySWdrZ0NVRWZkU0lKYWlBSmN5QUlUdzBBSUFGQkEwMEVRQ0FISUFFZ0FpZ0NBR3BCZjJvdEFBQWlBVUYvY3lJQ0lBRkJBV29pQnlBRklBTnJRUUowSUFScklBWnFRUVJxUVFOMUlnRWdBU0FIU2hzZ0FTQUNTQnNpQVNBRGFrR3dMbW90QUFBNkFBQWdBQ0FGSUFGclFiQXVhaTBBQURvQUFBOExJQWNnQXlBRWFpQUdRUUYwYWtFQ2FrRUNkam9BQUNBQUlBVWdCRUVCZEdvZ0JtcEJBbXBCQW5ZNkFBQUxDMGNBQWtBZ0FVRUVUUVJBQWtBQ1FBSkFBa0FnQVVFQmF3NEVBUUlEQlFBTElBQW9Bc2dCRHdzZ0FDZ0N6QUVQQ3lBQUtBTFFBUThMSUFBb0F0UUJEd3RCQUNFQUN5QUFDNlVEQVF0L1FRQWdBMnNpQzBFQmRDRUVJQUVnQWlnQ0FHcEJmMm90QUFBaUFVRUJhaUVKSUFGQmYzTWhDZ0pBSUFBZ0Eyc2lCeTBBQUNJRklBQXRBQUFpQm1zaUFTQUJRUjkxSWdGcUlBRnpJQUlvQWdRaUFVOE5BQ0FBSUFScUxRQUFJZzBnQldzaUNDQUlRUjkxSWdocUlBaHpJQUlvQWdnaUNFOE5BQ0FBSUFOcUxRQUFJZzRnQm1zaURDQU1RUjkxSWd4cUlBeHpJQWhQRFFBZ0J5QUtJQWtnQmlBRmEwRUNkQ0FPYXlBTmFrRUVha0VEZFNJQklBRWdDVW9iSUFFZ0NrZ2JJZ0VnQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFCYTBHd0xtb3RBQUE2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJBV29pQlNBTGFpSUxMUUFBSWdZZ0FDMEFBU0lBYXlJSElBZEJIM1VpQjJvZ0IzTWdBVThOQUNBRUlBVnFMUUFBSWdFZ0Jtc2lCQ0FFUVI5MUlnUnFJQVJ6SUFJb0FnZ2lBazhOQUNBRElBVnFMUUFBSWdNZ0FHc2lCQ0FFUVI5MUlnUnFJQVJ6SUFKUERRQWdDeUFLSUFrZ0FDQUdhMEVDZENBRGF5QUJha0VFYWtFRGRTSUJJQUVnQ1VvYklBRWdDa2diSWdFZ0JtcEJzQzVxTFFBQU9nQUFJQVVnQUNBQmEwR3dMbW90QUFBNkFBQUxDMFFCQW44L0FDRUJBa0JCc01RQUtBSUFJZ0lnQUVFRGFrRjhjV29pQUNBQlFSQjBUUTBBSUFBUUFRMEFRYkRBQUVFd05nSUFRWDhQQzBHd3hBQWdBRFlDQUNBQ0N6UUJBWDhDUUNBQlFSQkxEUUFnQUNnQ0JDQUJRUUowYWlnQ0FDSUFSUTBBSUFBb0FoUkJBa2tOQUNBQUtBSUFJUUlMSUFJTGdnUUJBMzhnQWtHQUJFOEVRQ0FBSUFFZ0FoQUFHaUFBRHdzZ0FDQUNhaUVEQWtBZ0FDQUJjMEVEY1VVRVFBSkFJQUpCQVVnRVFDQUFJUUlNQVFzZ0FFRURjVVVFUUNBQUlRSU1BUXNnQUNFQ0EwQWdBaUFCTFFBQU9nQUFJQUZCQVdvaEFTQUNRUUZxSWdJZ0EwOE5BU0FDUVFOeERRQUxDd0pBSUFOQmZIRWlCRUhBQUVrTkFDQUNJQVJCUUdvaUJVc05BQU5BSUFJZ0FTZ0NBRFlDQUNBQ0lBRW9BZ1EyQWdRZ0FpQUJLQUlJTmdJSUlBSWdBU2dDRERZQ0RDQUNJQUVvQWhBMkFoQWdBaUFCS0FJVU5nSVVJQUlnQVNnQ0dEWUNHQ0FDSUFFb0FodzJBaHdnQWlBQktBSWdOZ0lnSUFJZ0FTZ0NKRFlDSkNBQ0lBRW9BaWcyQWlnZ0FpQUJLQUlzTmdJc0lBSWdBU2dDTURZQ01DQUNJQUVvQWpRMkFqUWdBaUFCS0FJNE5nSTRJQUlnQVNnQ1BEWUNQQ0FCUVVCcklRRWdBa0ZBYXlJQ0lBVk5EUUFMQ3lBQ0lBUlBEUUVEUUNBQ0lBRW9BZ0EyQWdBZ0FVRUVhaUVCSUFKQkJHb2lBaUFFU1EwQUN3d0JDeUFEUVFSSkJFQWdBQ0VDREFFTElBTkJmR29pQkNBQVNRUkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FpQUJMUUFCT2dBQklBSWdBUzBBQWpvQUFpQUNJQUV0QUFNNkFBTWdBVUVFYWlFQklBSkJCR29pQWlBRVRRMEFDd3NnQWlBRFNRUkFBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSWdBMGNOQUFzTElBQUx3UmdCSUg4akFFSFFBMnNpQmlRQUlBRW9BZ2doRkNBQklBRW9BZ1FpQ2lBQ2JDSWFJQU5xRUIwZ0FTZ0NBQ0VKSUFCQkFEWUNDQ0FBUWlnM0FoUWdBRUlBTndJTUlBQkJCallDQUNBRFFRUjBJUWNDUUFKQUFrQWdCRUYrYWlJRVFRVkxEUUFDUUNBRVFRRnJEZ1FCQVFFQkFBc01BUXNnQmtFQU5nSU1JQVlnRkRZQ0dDQUdJQW8yQWhRZ0JpQUZOZ0lRSUFVRVFDQUdRZEFBYWlBR1FReHFJQVpCRUdvZ0J5QUNRUVIwUVFCQkFFRVFRUkFRRGd3Q0N3c2dCa0hRQUdwQkFFR0FBeEFIR2lBSklCcEJDSFJxSUFkcUlRd2dCa0lBTndOSUlBWkJRR3RDQURjREFDQUdRZ0EzQXpnZ0JrSUFOd013SUFaQ0FEY0RLQ0FHUWdBM0F5QWdCa0lBTndNWUlBWkNBRGNERUVFQUlRa0NmMEVBSUFKRkRRQWFRUUFnQUVFQUlBcHJRZGdCYkdvb0FzUUJSUTBBR2lBR0lBd2dDa0VFZEdzaUJDMEFCU0FFTFFBRWFpQUVMUUFHYWlBRUxRQUhhaUlYSUFRdEFBTWdCQzBBQWlBRUxRQUJJQVF0QUFCcWFtb2lGbW9pQlNBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSWFtcHFJaEpySUFRdEFBOGdCQzBBRGlBRUxRQU5JQVF0QUF4cWFtb2lFMnNpQ0RZQ0ZDQUdJQVVnRW1vZ0Uyb2lDVFlDRUVFQkN5RUZBbjhDUUNBQ0lCUkJmMnBIQkVBZ0FDQUtRZGdCYkdvb0FzUUJEUUVMSUFVTUFRc2dCaUFNSUFwQkNIUnFJZ0l0QUFVZ0FpMEFCR29nQWkwQUJtb2dBaTBBQjJvaUhpQUNMUUFESUFJdEFBSWdBaTBBQVNBQ0xRQUFhbXBxSWg5cUlnUWdBaTBBQ3lBQ0xRQUtJQUl0QUFrZ0FpMEFDR3BxYWlJWWF5QUNMUUFQSUFJdEFBNGdBaTBBRFNBQ0xRQU1hbXBxSWhscklBaHFJZ2cyQWhRZ0JpQUVJQmhxSUFscUlCbHFJZ2syQWhCQkFTRVFJQVZCQVdvTElRZEJBQ0VFQW44Q1FDQURSUTBBSUFCQmJHb29BZ0JGRFFBZ0JpQU1RWDlxSWdJZ0NrRUdkQ0lPYWlJRUlBcEJCSFFpQzJvdEFBQWdCQzBBQUdvZ0JDQUtRUVYwSWc5cUxRQUFhaUFFSUFwQk1Hd2lEV290QUFCcUloc2dBaUFOYWkwQUFDQUNJQTlxTFFBQUlBSWdDMm90QUFBZ0FpMEFBR3BxYWlJY2FpSVJJQVFnRG1vaUFpQUxhaTBBQUNBQ0xRQUFhaUFDSUE5cUxRQUFhaUFDSUExcUxRQUFhaUlWYXlBQ0lBNXFJZ0lnQzJvdEFBQWdBaTBBQUdvZ0FpQVBhaTBBQUdvZ0FpQU5haTBBQUdvaUQyc2lCRFlDSUNBR0lCRWdGV29nQ1dvZ0Qyb2lDVFlDRUNBSFFRRnFJUXRCQVF3QkN5QUhJUXRCQUFzaEFnSkFBa0FDUUFKQUFrQUNRQ0FESUFwQmYycEhCRUFnQUNnQ25BTU5BUXRCQUNFT0lBSkJBRWNoRVNBSERRRU1BZ3NnQmlBRUlBeEJFR29pQkNBS1FRWjBJaDFxSWdBZ0NrRUVkQ0lOYWkwQUFDQUFMUUFBYWlBQUlBcEJCWFFpRG1vdEFBQnFJQUFnQ2tFd2JDSVJhaTBBQUdvaUlDQUVJQkZxTFFBQUlBUWdEbW90QUFBZ0JDQU5haTBBQUNBTUxRQVFhbXBxSWlGcUlpSWdBQ0FkYWlJQUlBMXFMUUFBSUFBdEFBQnFJQUFnRG1vdEFBQnFJQUFnRVdvdEFBQnFJZ3hySUFBZ0hXb2lBQ0FOYWkwQUFDQUFMUUFBYWlBQUlBNXFMUUFBYWlBQUlCRnFMUUFBYWlJTmEyb2lCRFlDSUNBR0lBd2dJbW9nQ1dvZ0RXb2lDVFlDRUNBQ1FRQkhJUkZCQVNFT0lBSkJBV29oQUNBTFFRRnFJUXNDUUNBSERRQWdBa1VOQUNBR0lCc2dIR29nRldvZ0Qyb2dJV3NnSUdzZ0RHc2dEV3RCQlhVaUNEWUNGQXdEQ3lBSFJRMENJQUFoQWdzZ0JpQUlJQWRCQTJwMUlnZzJBaFFMQWtBZ0VFVU5BQ0FGUlEwQUlBSU5BQ0FHSUJZZ0Yyb2dFbW9nRTJvZ0dXc2dHR3NnSG1zZ0gydEJCWFVpQkRZQ0lFRUJJUkJCQVNFTkRBTUxJQkJCQUVjaEVDQUZRUUJISVEwZ0FrVU5BZ3dCQ3lBUVFRQkhJUkFnQlVFQVJ5RU5JQUFoQWdzZ0JpQUVJQUpCQTJwMUlnUTJBaUFMSUFZQ2Z5QUxRWDlxSWdCQkFrMEVRQUpBQWtBQ1FDQUFRUUZyRGdJQkFnQUxJQWxCQkhZTUF3c2dDVUVGZGd3Q0N5QUpRUlZzUVFwMURBRUxJQWxCQm5ZTElnQTJBaEFDUUNBRUlBaHlSUVJBSUFZZ0FEWUNTQ0FHSUFBMkFrd2dCaUFBTmdKRUlBWWdBRFlDUUNBR0lBQTJBandnQmlBQU5nSTRJQVlnQURZQ05DQUdJQUEyQWpBZ0JpQUFOZ0lzSUFZZ0FEWUNLQ0FHSUFBMkFpUWdCaUFBTmdJZ0lBWWdBRFlDSENBR0lBQTJBaGdnQmlBQU5nSVVEQUVMSUFZZ0FDQUlhaUlGSUFSck5nSkFJQVlnQlNBRVFRRjFJZ0pyTmdJd0lBWWdBaUFGYWpZQ0lDQUdJQVFnQldvMkFoQWdCaUFBSUFocklnVWdCR3MyQWt3Z0JpQUZJQUpyTmdJOElBWWdBaUFGYWpZQ0xDQUdJQVFnQldvMkFod2dCaUFBSUFoQkFYVWlCMm9pQlNBRWF6WUNSQ0FHSUFVZ0FtczJBalFnQmlBQ0lBVnFOZ0lrSUFZZ0JDQUZhallDRkNBR0lBQWdCMnNpQUNBRWF6WUNTQ0FHSUFBZ0FtczJBamdnQmlBQUlBSnFOZ0lvSUFZZ0FDQUVhallDR0FzZ0JrSFFBR29oQ0NBR1FSQnFJUUJCQUNFRUEwQWdDQ0FBSUFSQkRIRnFLQUlBSWdKQi93RWdBa0gvQVVnYklnSkJBQ0FDUVFCS0d6b0FBQ0FBSUFCQkVHb2dCRUVCYWlJRVFUOXhHeUVBSUFoQkFXb2hDQ0FFUVlBQ1J3MEFDeUFCS0FJQUlBb2dGR3dpQUVFSWRHb2dHa0VHZEdvZ0EwRURkR29oQXlBS1FRUjBJUXdnQ2tFR2RDRWFJQUJCQm5RaEhVRUFJQXBCQTNRaUMyc2hJQ0FHUWRBQ2FpRWhJQVpCUUdzaElrRUFJUVVEUUNBR1FnQTNBMGdnSWtJQU53TUFJQVpDQURjRE9DQUdRZ0EzQXpBZ0JrSUFOd01vSUFaQ0FEY0RJQ0FHUWdBM0F4Z2dCa0lBTndNUVFRQWhDRUVBSVFSQkFDRUpJQTBFUUNBR0lBTWdJR29pQUMwQUF5QUFMUUFDYWlJWElBQXRBQUVnQUMwQUFHb2lGbW9pQWlBQUxRQUZJQUF0QUFScUloSnJJQUF0QUFjZ0FDMEFCbW9pRTJzaUNEWUNGQ0FHSUFJZ0Vtb2dFMm9pQkRZQ0VFRUJJUWtMSUJBRVFDQUdJQU1nR21vaUFDMEFBeUFBTFFBQ2FpSWVJQUF0QUFFZ0FDMEFBR29pSDJvaUFpQUFMUUFGSUFBdEFBUnFJaGhySUFBdEFBY2dBQzBBQm1vaUdXc2dDR29pQ0RZQ0ZDQUdJQUlnR0dvZ0JHb2dHV29pQkRZQ0VDQUpRUUZxSVFrTFFRQWhBQUovSUJGRkJFQWdDU0VIUVFBTUFRc2dCaUFEUVg5cUlnQWdER29pQWlBTGFpMEFBQ0FDTFFBQWFpSWJJQUFnQzJvdEFBQWdBQzBBQUdvaUhHb2lCeUFDSUF4cUlnQWdDMm90QUFBZ0FDMEFBR29pRldzZ0FDQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlnOXJJZ0EyQWlBZ0JpQUhJQlZxSUFScUlBOXFJZ1EyQWhBZ0NVRUJhaUVIUVFFTElRSUNRQ0FHQW44Q1FBSkFBa0FnRGtVRVFDQUpEUUVNQWdzZ0JpQUFJQU5CQ0dvaUNpQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlpTWdDaUFMYWkwQUFDQURMUUFJYWlJa2FpSWxJQUFnREdvaUFDQUxhaTBBQUNBQUxRQUFhaUlLYXlBQUlBeHFJZ0FnQzJvdEFBQWdBQzBBQUdvaUZHdHFJZ0EyQWlBZ0JpQUtJQ1ZxSUFScUlCUnFJZ1EyQWhBZ0FrRUJhaUVDSUFkQkFXb2hCeUFSUVFGeklBbEJBRWR5UlFSQUlBWWdHeUFjYWlBVmFpQVBhaUFrYXlBamF5QUtheUFVYTBFRWRTSUlOZ0lVREFNTElBbEZEUUlMSUFZZ0NDQUpRUUpxZFNJSU5nSVVDeUFXSUJkcUlCSnFJQk5xSUJscklCaHJJQjVySUI5clFRUjFJQkFnRFNBQ1JYRnhRUUZHRFFFYUlBSkZEUUlMSUFBZ0FrRUNhblVMSWdBMkFpQUxJQVlDZnlBSFFYOXFJZ0pCQWswRVFBSkFBa0FDUUNBQ1FRRnJEZ0lCQWdBTElBUkJBM1lNQXdzZ0JFRUVkZ3dDQ3lBRVFSVnNRUWwyREFFTElBUkJCWFlMSWdRMkFoQUNRQ0FBSUFoeVJRUkFJQVlnQkRZQ1NDQUdJQVEyQWt3Z0JpQUVOZ0pFSUFZZ0JEWUNRQ0FHSUFRMkFqd2dCaUFFTmdJNElBWWdCRFlDTkNBR0lBUTJBakFnQmlBRU5nSXNJQVlnQkRZQ0tDQUdJQVEyQWlRZ0JpQUVOZ0lnSUFZZ0JEWUNIQ0FHSUFRMkFoZ2dCaUFFTmdJVURBRUxJQVlnQkNBSWFpSUhJQUJyTmdKQUlBWWdCeUFBUVFGMUlnSnJOZ0l3SUFZZ0FpQUhhallDSUNBR0lBQWdCMm8yQWhBZ0JpQUVJQWhySWdjZ0FHczJBa3dnQmlBSElBSnJOZ0k4SUFZZ0FpQUhhallDTENBR0lBQWdCMm8yQWh3Z0JpQUVJQWhCQVhVaUNXb2lCeUFBYXpZQ1JDQUdJQWNnQW1zMkFqUWdCaUFDSUFkcU5nSWtJQVlnQUNBSGFqWUNGQ0FHSUFRZ0NXc2lCQ0FBYXpZQ1NDQUdJQVFnQW1zMkFqZ2dCaUFDSUFScU5nSW9JQVlnQUNBRWFqWUNHQXNnSVNBRlFRWjBhaUVJUVFBaEFDQUdRUkJxSVFRRFFDQUlJQVFnQUVFQmRFRU1jV29vQWdBaUFrSC9BU0FDUWY4QlNCc2lBa0VBSUFKQkFFb2JPZ0FBSUFRZ0JFRVFhaUFBUVFGcUlnQkJEM0ViSVFRZ0NFRUJhaUVJSUFCQndBQkhEUUFMSUFNZ0hXb2hBeUFGUVFGcUlnVkJBa2NOQUFzTElBRWdCa0hRQUdvUUd5QUdRZEFEYWlRQUN6WUFJQUlFUUNBQUlBRVFBZzhMUVFFaEFpQUJJQUJCQVJBRElnQTJBZ0FnQUVGL1J3Ui9JQUVnQUVFQmN6WUNBRUVBQlVFQkN3dk1Bd0VTZnlBRFFRRjBJUThnQTBGOWJDRVFRUUFnQTJzaUVVRUJkQ0VTSUFFZ0FpZ0NBR3BCZjJvdEFBQWlCMEVCYWlFVFFRQWdCMnNoQ2tFRUlRRURRQUpBSUFBZ0VXb2lGQzBBQUNJRklBQXRBQUFpQ0dzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdSUERRQWdBQ0FTYWlJTExRQUFJZ3dnQldzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdnaUJrOE5BQ0FBSUFOcUloVXRBQUFpRFNBSWF5SUVJQVJCSDNVaUJHb2dCSE1nQms4TkFDQUhJUVFnQUNBUWFpMEFBQ0lKSUFWcklnNGdEa0VmZFNJT2FpQU9jeUFHU1FSQUlBc2dEQ0FLSUFjZ0JTQUlha0VCYWtFQmRpQU1RUUYwYXlBSmFrRUJkU0lFSUFRZ0Iwb2JJQVFnQ2tnYmFqb0FBQ0FDS0FJSUlRWWdFeUVFQ3lBVUlBVUNmeUFBSUE5cUxRQUFJZ3NnQ0dzaUNTQUpRUjkxSWdscUlBbHpJQVpKQkVBZ0ZTQU5JQW9nQnlBRklBaHFRUUZxUVFGMklBMUJBWFJySUF0cVFRRjFJZ1lnQmlBSFNoc2dCaUFLU0J0cU9nQUFJQVJCQVdvaEJBdEJBQ0FFYXlJR0N5QUVJQWdnQld0QkFuUWdEV3NnREdwQkJHcEJBM1VpQlNBRklBUktHeUFGSUFaSUd5SUVha0d3TG1vdEFBQTZBQUFnQUNBSUlBUnJRYkF1YWkwQUFEb0FBQXNnQUVFQmFpRUFJQUZCZjJvaUFRMEFDd3Y3QmdFT2Z5QUNLQUlJSVFvZ0FpZ0NCQ0VQQWtBZ0FVRUVUd1JBSUE5QkFuWkJBbW9oRUVFRUlRSURRQUpBSUFCQmYyb2lCUzBBQUNJSElBQXRBQUFpQ0dzaUFTQUJRUjkxSWdGcUlBRnpJZzBnRDA4TkFDQUFRWDVxSWc0dEFBQWlBU0FIYXlJRUlBUkJIM1VpQkdvZ0JITWdDazhOQUNBQUxRQUJJZ2tnQ0dzaUJDQUVRUjkxSWdScUlBUnpJQXBQRFFBQ1FDQU5JQkJKQkVBZ0FDMEFBaUVMQW44Z0FFRjlhaUlOTFFBQUlnUWdCMnNpQmlBR1FSOTFJZ1pxSUFaeklBcEpCRUJCQXlFR0lBVWdDU0FISUFocUlBRnFJZ1ZCQVhScUlBUnFRUVJxUVFOMk9nQUFJQTRnQkNBRmFrRUNha0VDZGpvQUFDQUVRUU5zSVE0Z0JVRUVhaUVNSUFCQmZHb3RBQUFNQVFzZ0J5QUphaUVNUVFJaERrRUNJUVlnQlNFTklBRUxJUVFnRFNBTUlBNXFJQVJCQVhScUlBWjJPZ0FBSUFzZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFwUERRRWdBQ0FISUFscUlBaHFJZ1VnQzJwQkFtcEJBblk2QUFFZ0FDQUZJQXRCQTJ4cUlBQXRBQU5CQVhScVFRUnFRUU4yT2dBQ0lBQWdBU0FGUVFGMGFpQUxha0VFYWtFRGRqb0FBQXdDQ3lBRklBY2dDV29nQVVFQmRHcEJBbXBCQW5ZNkFBQUxJQUFnQVNBSWFpQUpRUUYwYWtFQ2FrRUNkam9BQUFzZ0FDQURhaUVBSUFKQmYyb2lBZzBBQ3d3QkN5QUJJQUlvQWdCcVFYOXFMUUFBSWdWQkFXb2hEVUVBSUFWcklRaEJCQ0VDQTBBQ1FDQUFRWDlxSWc0dEFBQWlCQ0FBTFFBQUlnZHJJZ0VnQVVFZmRTSUJhaUFCY3lBUFR3MEFJQUJCZm1vaURDMEFBQ0lKSUFScklnRWdBVUVmZFNJQmFpQUJjeUFLVHcwQUlBQXRBQUVpQ3lBSGF5SUJJQUZCSDNVaUFXb2dBWE1nQ2s4TkFDQUFMUUFDSVFZZ0JTRUJJQUJCZldvdEFBQWlFQ0FFYXlJUklCRkJIM1VpRVdvZ0VYTWdDa2tFUUNBTUlBa2dDQ0FGSUFRZ0IycEJBV3BCQVhZZ0NVRUJkR3NnRUdwQkFYVWlBU0FCSUFWS0d5QUJJQWhJRzJvNkFBQWdEU0VCQ3lBT0lBUUNmeUFHSUFkcklnd2dERUVmZFNJTWFpQU1jeUFLU1FSQUlBQWdDeUFJSUFVZ0JDQUhha0VCYWtFQmRpQUxRUUYwYXlBR2FrRUJkU0lHSUFZZ0JVb2JJQVlnQ0VnYmFqb0FBU0FCUVFGcUlRRUxRUUFnQVdzaUJnc2dBU0FKSUF0cklBY2dCR3RCQW5ScVFRUnFRUU4xSWdRZ0JDQUJTaHNnQkNBR1NCc2lBV3BCc0M1cUxRQUFPZ0FBSUFBZ0J5QUJhMEd3TG1vdEFBQTZBQUFMSUFBZ0Eyb2hBQ0FDUVg5cUlnSU5BQXNMQzlvSEFRMS9Jd0JCd0FOckloRWtBQ0FHUVFWcUlRa0NRQUpBSUFKQkFFZ05BQ0FEUVFCSURRQWdBaUFKYWlBRVN3MEFJQU1nQjJwQkJXb2dCVXNOQUNBRUlRa2dBeUVLREFFTElBQWdFU0FDSUFNZ0JDQUZJQWtnQjBFRmFpQUpFQXdnRVNFQVFRQWhBZ3NDUUNBSFJRMEFJQUFnQ1NBS2JDQUNhbW9oRTBFUUlBWnJJUlFDUUNBR1FRSjJJaElFUUNBSklBWnJJUlVnRXlBSklBaEJBWFpCQVhGQkFuSnNha0VGYWlFQ0lBY2hCQU5BSUFKQmYyb3RBQUFoQUNBQ1FYNXFMUUFBSVFNZ0FrRjlhaTBBQUNFRklBSkJmR290QUFBaEN5QUNRWHRxTFFBQUlRMGdFaUVQQTBBZ0FTQUNMUUFBSWdvZ0RTQUFJQXRxSWd4cklBTWdCV3BCRkd4cUlBeEJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQUFnQVNBQ0xRQUJJZ3dnQ3lBQUlBTnFRUlJzYWlBRklBcHFJZ3RySUF0QkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBRWdBU0FDTFFBQ0loQWdCU0FBSUFwcVFSUnNhaUFESUF4cUlnVnJJQVZCQW5ScmFrRVFha0VGZFVHd0xtb3RBQUE2QUFJZ0FTQUNMUUFESWc0Z0F5QUtJQXhxUVJSc2FpQUFJQkJxSWdOcklBTkJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQU1nQVVFRWFpRUJJQUpCQkdvaEFpQUFJUTBnQ2lFTElBd2hCU0FRSVFNZ0RpRUFJQTlCZjJvaUR3MEFDeUFCSUJScUlRRWdBaUFWYWlFQ0lBUkJmMm9pQkEwQUN3d0JDeUFIUVg5cUlCUnNJQVpySUFGcVFSQnFJUUVMSUFkQkFuWWlCRVVOQUVIQUFDQUdheUVRSUFsQkFYUWhDaUFKUVFKMElBWnJJUXRCQUNBSmF5SU1RUUYwSVJJZ0FTQUhRUVIwYXlFQ0lBa2dFMm9nQ0VFQmNXcEJBbW9pQUNBSlFRVnNhaUVCQTBBZ0JpSURCRUFEUUNBQ0lBQWdDbW90QUFBaUJTQUJJQXBxTFFBQUlBRWdDV290QUFBaURpQUJJQkpxTFFBQUlnZHFJZ2hySUFoQkFuUnJhaUFCTFFBQUlnMGdBU0FNYWkwQUFDSUlha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQUl0QURCcVFRRnFRUUYyT2dBd0lBSWdBQ0FKYWkwQUFDSVBJQTRnQnlBSWFrRVViR29nQlNBTmFpSU9heUFPUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFDQnFRUUZxUVFGMk9nQWdJQUlnQUMwQUFDSU9JQTBnQlNBSGFrRVViR29nQ0NBUGFpSU5heUFOUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFCQnFRUUZxUVFGMk9nQVFJQUlnQUNBTWFpMEFBQ0FJSUFVZ0QycEJGR3hxSUFjZ0Rtb2lCV3NnQlVFQ2RHdHFRUkJxUVFWMVFiQXVhaTBBQUNBQ0xRQUFha0VCYWtFQmRqb0FBQ0FBUVFGcUlRQWdBa0VCYWlFQ0lBRkJBV29oQVNBRFFYOXFJZ01OQUFzTElBSWdFR29oQWlBQklBdHFJUUVnQUNBTGFpRUFJQVJCZjJvaUJBMEFDd3NnRVVIQUEyb2tBQXUxQlFFRWZ5QUFLQUlVSVFNZ0FDZ0NFQ0VFSUFBb0FnUWhCU0FBS0FJTUlnSWdBU2tDQURjQ0FDQUNJQUVwQWdnM0FnZ2dBaUFGUVFSMElnQnFJZ0lnQVNrQ0VEY0NBQ0FDSUFFcEFoZzNBZ2dnQUNBQ2FpSUNJQUVwQWlBM0FnQWdBaUFCS1FJb053SUlJQUFnQW1vaUFpQUJLUUl3TndJQUlBSWdBU2tDT0RjQ0NDQUFJQUpxSWdJZ0FTa0NRRGNDQUNBQ0lBRXBBa2czQWdnZ0FDQUNhaUlDSUFFcEFsQTNBZ0FnQWlBQktRSllOd0lJSUFBZ0Ftb2lBaUFCS1FKZ053SUFJQUlnQVNrQ2FEY0NDQ0FBSUFKcUlnSWdBU2tDY0RjQ0FDQUNJQUVwQW5nM0FnZ2dBQ0FDYWlJQ0lBRXBBb0FCTndJQUlBSWdBU2tDaUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcEFCTndJQUlBSWdBU2tDbUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcUFCTndJQUlBSWdBU2tDcUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBckFCTndJQUlBSWdBU2tDdUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBc0FCTndJQUlBSWdBU2tDeUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdEFCTndJQUlBSWdBU2tDMkFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdUFCTndJQUlBSWdBU2tDNkFFM0FnZ2dBQ0FDYWlJQUlBRXBBdkFCTndJQUlBQWdBU2tDK0FFM0FnZ2dCQ0FCS1FLQUFqY0NBQ0FFSUFWQkEzUWlBR29pQkNBQktRS0lBamNDQUNBQUlBUnFJZ1FnQVNrQ2tBSTNBZ0FnQUNBRWFpSUVJQUVwQXBnQ053SUFJQUFnQkdvaUJDQUJLUUtnQWpjQ0FDQUFJQVJxSWdRZ0FTa0NxQUkzQWdBZ0FDQUVhaUlFSUFFcEFyQUNOd0lBSUFBZ0JHb2dBU2tDdUFJM0FnQWdBeUFCS1FMQUFqY0NBQ0FBSUFOcUlnTWdBU2tDeUFJM0FnQWdBQ0FEYWlJRElBRXBBdEFDTndJQUlBQWdBMm9pQXlBQktRTFlBamNDQUNBQUlBTnFJZ01nQVNrQzRBSTNBZ0FnQUNBRGFpSURJQUVwQXVnQ053SUFJQUFnQTJvaUF5QUJLUUx3QWpjQ0FDQUFJQU5xSUFFcEF2Z0NOd0lBQytnQ0FRVi9Ba0FnQUNBQkVBSWlBdzBBUVFFaEF5QUJJQUVvQWdCQkFXb2lBallDQUNBQ1FTQkxEUUFnQUVFRUVBTWlBa0YvUmcwQUlBRWdBallDQkNBQVFRUVFBeUlDUVg5R0RRQWdBU0FDTmdJSUlBRW9BZ0FFUUFOQUlBQWdBU0FGUVFKMGFpSUNJZ1JCREdvUUFpSUREUUpCQVNFRElBUW9BZ3dpQmtGL1JnMENJQVFnQmtFQmFpSUROZ0lNSUFRZ0F5QUJLQUlFUVFacWREWUNEQ0FBSUFKQmpBRnFFQUlpQXcwQ1FRRWhBeUFDS0FLTUFTSUVRWDlHRFFJZ0FpQUVRUUZxSWdRMkFvd0JJQUlnQkNBQktBSUlRUVJxZERZQ2pBRWdBRUVCRUFNaUJFRi9SZzBDSUFJZ0JFRUJSallDakFJZ0JVRUJhaUlGSUFFb0FnQkpEUUFMQ3lBQVFRVVFBeUlDUVg5R0RRQWdBU0FDUVFGcU5nS01BeUFBUVFVUUF5SUNRWDlHRFFBZ0FTQUNRUUZxTmdLUUF5QUFRUVVRQXlJQ1FYOUdEUUFnQVNBQ1FRRnFOZ0tVQXlBQVFRVVFBeUlBUVg5R0RRQWdBU0FBTmdLWUEwRUFJUU1MSUFNTFd3RURmeUFBSUFBb0FnQWlCQ0FCSUFBb0FnUWlBbkFpQTBFRWRHb2dBU0FEYXlJQlFRaDBhallDRENBQUlBUWdBaUFBS0FJSWJDSUNRUWgwYWlBQlFRWjBhaUFEUVFOMGFpSUJOZ0lRSUFBZ0FTQUNRUVowYWpZQ0ZBdFZBUUovSUFFZ0FrRUJhaUlESUFNZ0FVa2JJUU1nQUNBQ1FRSjBhaWdDQUNFRUEwQUNRQ0FDUVFGcUlnSWdBVThFUUNBRElRSU1BUXNnQUNBQ1FRSjBhaWdDQUNBRVJ3MEJDd3RCQUNBQ0lBRWdBa1liQ3ljQUlBQkJDQ0FBS0FJSUlnQnJFQU5CZjBZRVFBOExRUUFnQUd0QkFuUkJ6RDlxS0FJQUdndDZBUUovSXdCQklHc2lBaVFBSUFJZ0FDZ0NFRFlDRUNBQ0lBQXBBZ2czQXdnZ0FpQUFLUUlBTndNQUFrQWdBaUFDUVJ4cUVBSWlBQTBBSUFJZ0FrRWNhaEFDSWdBTkFDQUNJQUpCSEdvUUFpSUFEUUJCQVNFQUlBSW9BaHdpQTBIL0FVc05BQ0FCSUFNMkFnQkJBQ0VBQ3lBQ1FTQnFKQUFnQUF2bkJ3RVNmeU1BUVlBT2F5SU1KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQTBFQVNBMEFJQUlnQ1dvZ0JFc05BQ0FESUFkcVFRVnFJQVZMRFFBZ0F5RUtEQUVMSUFBZ0RFSEFDbW9nQWlBRElBUWdCU0FKSUFkQkJXb2dDUkFNSUF4QndBcHFJUUFnQ1NFRVFRQWhBZ3NDUUNBSFFRSjJJaFJGRFFBZ0NVVU5BQ0FFUVFGMElSVkJBQ0FFYXlJV1FRRjBJUm9nQkVFQ2RDQUdhMEY3YWlFWElBQWdCQ0FLYkNBQ2Ftb2dCR29pQUNBRVFRVnNhaUVDSUF3Z0NVRUNkQ0lRYWlFRElBbEJBM1FoRFVFQUlBbHJRUUowSVE0Z0NVRURiRUVDZENFUEEwQWdDU0VGQTBBZ0F5QU5haUFBSUJWcUxRQUFJaEVnQWlBVmFpMEFBQ0FDSUFScUxRQUFJZ3NnQWlBYWFpMEFBQ0lTYWlJS2F5QUtRUUowYTJvZ0FpMEFBQ0lZSUFJZ0Ztb3RBQUFpRTJwQkZHeHFOZ0lBSUFNZ0VHb2dBQ0FFYWkwQUFDSVpJQXNnRWlBVGFrRVViR29nRVNBWWFpSUtheUFLUVFKMGEybzJBZ0FnQXlBQUxRQUFJZ3NnR0NBUklCSnFRUlJzYWlBVElCbHFJZ3BySUFwQkFuUnJhallDQUNBRElBNXFJQUFnRm1vdEFBQWdFeUFSSUJscVFSUnNhaUFMSUJKcUlncHJJQXBCQW5ScmFqWUNBQ0FBUVFGcUlRQWdBMEVFYWlFRElBSkJBV29oQWlBRlFYOXFJZ1VOQUFzZ0FpQVhhaUVDSUFBZ0Yyb2hBQ0FESUE5cUlRTWdGRUYvYWlJVURRQUxDeUFIQkVCQkVDQUdheUVRSUFaQkFuWWhDaUFNSUFoQkFuUnFRUWhxSVFBZ0RFRVVhaUVDQTBBZ0NnUkFJQUpCYkdvb0FnQWhCQ0FDUVhCcUtBSUFJUThnQWtGMGFpZ0NBQ0VOSUFKQmVHb29BZ0FoQlNBQ1FYeHFLQUlBSVFNZ0NpRUpBMEFnQVNBQ0tBSUFJZzRnQkNBRElBOXFJZ1JySUFVZ0RXcEJGR3hxSUFSQkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQUlBQW9BZ0JCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlvQWdRaUN5QVBJQU1nQldwQkZHeHFJQTBnRG1vaUJHc2dCRUVDZEd0cVFZQUVha0VLZFVHd0xtb3RBQUFnQUNnQ0JFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FCSUFFZ0FpZ0NDQ0lJSUEwZ0F5QU9ha0VVYkdvZ0JTQUxhaUlFYXlBRVFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlJUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBSWdBU0FDS0FJTUlnWWdCU0FMSUE1cVFSUnNhaUFESUFocUlnUnJJQVJCQW5ScmFrR0FCR3BCQ25WQnNDNXFMUUFBSUFBb0FneEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQXlBQlFRUnFJUUVnQUVFUWFpRUFJQUpCRUdvaEFpQURJUVFnRGlFUElBc2hEU0FJSVFVZ0JpRURJQWxCZjJvaUNRMEFDd3NnQVNBUWFpRUJJQUJCRkdvaEFDQUNRUlJxSVFJZ0IwRi9haUlIRFFBTEN5QU1RWUFPYWlRQUM5RUhBUXgvSXdCQmdBNXJJZzhrQUNBR1FRVnFJUWtDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSmFpQUVTdzBBSUFkQkJXb2lEaUFEYWlBRlN3MEFJQVFoQ1NBRElRb01BUXNnQUNBUFFjQUthaUFDSUFNZ0JDQUZJQWtnQjBFRmFpSU9JQWtRRENBUFFjQUthaUVBUVFBaEFnc0NRQ0FPUlEwQUlBWkJBbllpRWtVTkFDQUpJQVpySVJNZ0FDQUpJQXBzSUFKcWFrRUZhaUVDSUE4aEFBTkFJQUpCZjJvdEFBQWhDU0FDUVg1cUxRQUFJUU1nQWtGOWFpMEFBQ0VGSUFKQmZHb3RBQUFoQ2lBQ1FYdHFMUUFBSVF3Z0VpRU5BMEFnQUNBQ0xRQUFJZ1FnRENBSklBcHFJZ3RySUFNZ0JXcEJGR3hxSUF0QkFuUnJhallDQUNBQUlBSXRBQUVpQ3lBRElBbHFRUlJzSUFwcUlBUWdCV29pQ21zZ0NrRUNkR3RxTmdJRUlBQWdBaTBBQWlJUUlBUWdDV3BCRkd3Z0JXb2dBeUFMYWlJRmF5QUZRUUowYTJvMkFnZ2dBQ0FDTFFBREloUWdCQ0FMYWtFVWJDQURhaUFKSUJCcUlnTnJJQU5CQW5ScmFqWUNEQ0FBUVJCcUlRQWdBa0VFYWlFQ0lBa2hEQ0FFSVFvZ0N5RUZJQkFoQXlBVUlRa2dEVUYvYWlJTkRRQUxJQUlnRTJvaEFpQU9RWDlxSWc0TkFBc0xJQWRCQW5ZaUJ3UkFRY0FBSUFacklSUWdEeUFHUVFKMElnUnFJZ2tnQmtFVWJHb2hBaUFKSUFoQkFtb2dCbXhCQW5ScUlRQWdCa0VEYkVFQ2RDRUZRUUFnQm1zaURrRURkQ0VUSUFaQkEzUWhDQU5BSUFZaEF5QUdCRUFEUUNBQklBZ2dDV29vQWdBaUNpQUNJQWhxS0FJQUlBSWdCR29vQWdBaUVTQUNJQk5xS0FJQUlndHFJZ3hySUF4QkFuUnJhaUFDS0FJQUlnMGdBaUFPUVFKMEloQnFLQUlBSWd4cVFSUnNha0dBQkdwQkNuVkJzQzVxTFFBQUlBQWdDR29vQWdCQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FNQ0FCSUFRZ0NXb29BZ0FpRWlBUklBc2dER3BCRkd4cUlBb2dEV29pRVdzZ0VVRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQWdBQ0FFYWlnQ0FFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FnSUFFZ0NTZ0NBQ0lSSUEwZ0NpQUxha0VVYkdvZ0RDQVNhaUlOYXlBTlFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFCQWdBU0FKSUJCcUtBSUFJQXdnQ2lBU2FrRVViR29nQ3lBUmFpSUtheUFLUVFKMGEycEJnQVJxUVFwMVFiQXVhaTBBQUNBQUlCQnFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBQWdBRUVFYWlFQUlBbEJCR29oQ1NBQlFRRnFJUUVnQWtFRWFpRUNJQU5CZjJvaUF3MEFDd3NnQVNBVWFpRUJJQUFnQldvaEFDQUNJQVZxSVFJZ0JTQUphaUVKSUFkQmYyb2lCdzBBQ3dzZ0QwR0FEbW9rQUF1MEJnRUpmeU1BUWNBRGF5SU5KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQXlBSGFpQUZTdzBBSUFOQkFFZ05BQ0FDSUFscUlBUkxEUUFnQkNFSklBTWhDZ3dCQ3lBQUlBMGdBaUFESUFRZ0JTQUpJQWNnQ1JBTUlBMGhBRUVBSVFJTElBY0VRRUVRSUFacklSQWdDU0FHYXlFUklBWkJBblloRHlBQUlBa2dDbXdnQW1wcVFRVnFJUWtEUUFKQUlBOUZEUUFnQ1VGL2FpMEFBQ0VDSUFsQmZtb3RBQUFoQmlBSlFYMXFMUUFBSVFNZ0NVRjhhaTBBQUNFRklBbEJlMm90QUFBaENpQVBJZ0FoQ3lBSUJFQURRQ0FCSUFZZ0NTMEFBQ0lFSUFvZ0FpQUZhaUlLYXlBRElBWnFRUlJzYWlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlnQ1MwQUFTSUxJQVVnQWlBR2FrRVViR29nQXlBRWFpSUZheUFGUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQVNBQklBUWdDUzBBQWlJTUlBTWdBaUFFYWtFVWJHb2dCaUFMYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBaUFCSUFzZ0NTMEFBeUlPSUFZZ0JDQUxha0VVYkdvZ0FpQU1haUlEYXlBRFFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUF5QUJRUVJxSVFFZ0NVRUVhaUVKSUFJaENpQUVJUVVnQ3lFRElBd2hCaUFPSVFJZ0FFRi9haUlBRFFBTUFnQUxBQXNEUUNBQklBTWdDUzBBQUNJQUlBb2dBaUFGYWlJRWF5QURJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBQ0FCSUFZZ0NTMEFBU0lFSUFVZ0FpQUdha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFTQUJJQUlnQ1MwQUFpSU1JQU1nQUNBQ2FrRVViR29nQkNBR2FpSURheUFEUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQWlBQklBQWdDUzBBQXlJT0lBWWdBQ0FFYWtFVWJHb2dBaUFNYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBeUFCUVFScUlRRWdDVUVFYWlFSklBSWhDaUFBSVFVZ0JDRURJQXdoQmlBT0lRSWdDMEYvYWlJTERRQUxDeUFCSUJCcUlRRWdDU0FSYWlFSklBZEJmMm9pQncwQUN3c2dEVUhBQTJva0FBdkdCQUVMZnlNQVFjQURheUlOSkFBQ1FBSkFJQUpCQUVnTkFDQURRUUJJRFFBZ0FpQUdhaUFFU3cwQUlBTWdCMnBCQldvZ0JVc05BQ0FESVFrTUFRc2dBQ0FOSUFJZ0F5QUVJQVVnQmlBSFFRVnFJQVlRRENBTklRQWdCaUVFUVFBaEFnc2dCMEVDZGlJUUJFQkJ3QUFnQm1zaEVpQUVRUUYwSVFVZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVRJQUFnQkNBSmJDQUNhbW9nQkdvaUFDQUVRUVZzYWlFQ0lBQWdCQ0FJUVFKcWJHb2hCd05BSUFZaEF5QUdCRUFEUUNBQklBQWdCV290QUFBaUNDQUNJQVZxTFFBQUlBSWdCR290QUFBaUNpQUNJQk5xTFFBQUlnbHFJZ3RySUF0QkFuUnJhaUFDTFFBQUlnd2dBaUFQYWkwQUFDSUxha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQVVnQjJvdEFBQnFRUUZxUVFGMk9nQXdJQUVnQUNBRWFpMEFBQ0lSSUFvZ0NTQUxha0VVYkdvZ0NDQU1haUlLYXlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQUlBUWdCMm90QUFCcVFRRnFRUUYyT2dBZ0lBRWdBQzBBQUNJS0lBd2dDQ0FKYWtFVWJHb2dDeUFSYWlJTWF5QU1RUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFJQWN0QUFCcVFRRnFRUUYyT2dBUUlBRWdBQ0FQYWkwQUFDQUxJQWdnRVdwQkZHeHFJQWtnQ21vaUNHc2dDRUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBQ0FISUE5cUxRQUFha0VCYWtFQmRqb0FBQ0FIUVFGcUlRY2dBRUVCYWlFQUlBRkJBV29oQVNBQ1FRRnFJUUlnQTBGL2FpSUREUUFMQ3lBQklCSnFJUUVnQnlBT2FpRUhJQUlnRG1vaEFpQUFJQTVxSVFBZ0VFRi9haUlRRFFBTEN5QU5RY0FEYWlRQUM0OEhBUXgvSUFFb0FnZ2hDeUFCS0FJRUlRWUNRQUpBQWtBZ0FrRUZTdzBBSUFKQkFXc09CQUFBQUFBQkN5QUFLQUs0R2cwQURBRUxJQUJCeEFscUlRUURRQ0FFSUFNUUZDRUhJQU5CRGtzTkFTQURRUUZxSVFNZ0IwVU5BQXNMQWtBQ1FBSkFBa0FnQUNnQ21Ba2lDQVJBSUFBb0Fyd0pJUXBCQUNFRFFRQWhCQU5BSUFvZ0EwSFlBV3hxS0FMRUFVVUVRRUVBSUFSQkFXb2lCQ0FFSUFaR0lnVWJJUVFnQlNBSmFpRUpJQU5CQVdvaUF5QUlTUTBCQ3dzZ0F5QUlSdzBCQ3dKQUFrQWdBa0YrYWlJQ1FRVkxEUUFDUUNBQ1FRRnJEZ1FCQVFFQkFBc2dCMFVOQVNBQUtBSzRHa1VOQVF3REN5QUhEUUlMSUFFb0FnQkJnQUVnQmlBTGJFR0FBMndRQnhvTUFnc2dBQ2dDdkFrZ0JpQUpiRUhZQVd4cUlRZ2dCQVJBSUFRaEF3TkFJQWdnQTBGL2FpSURRZGdCYkdvaUNpQUJJQWtnQXlBQ0lBY1FGaUFLUVFFMkFzUUJJQUFnQUNnQ3RBbEJBV28yQXJRSklBTU5BQXNMSUFSQkFXb2lBeUFHU1FSQUEwQWdDQ0FEUWRnQmJHb2lCQ2dDeEFGRkJFQWdCQ0FCSUFrZ0F5QUNJQWNRRmlBRVFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpDeUFEUVFGcUlnTWdCa2NOQUFzTEFrQWdDVVVOQUNBR1JRMEFRUUFoQlNBSlFYOXFJZ3dnQm13aERTQU1SUVJBQTBBZ0FDZ0N2QWtnRFVIWUFXeHFJQVZCMkFGc2FpSUVJQUZCQUNBRklBSWdCeEFXSUFSQkFUWUN4QUVnQUNBQUtBSzBDVUVCYWpZQ3RBa2dCVUVCYWlJRklBWkhEUUFNQWdBTEFBc2dDVUYrYWlFSVFRQWdCbXRCMkFGc0lRNERRQ0FBS0FLOENTQU5RZGdCYkdvZ0JVSFlBV3hxSWdNZ0FTQU1JQVVnQWlBSEVCWWdBMEVCTmdMRUFTQUFJQUFvQXJRSlFRRnFOZ0swQ1NBSUlRUURRQ0FESUE1cUlnTWdBU0FFSWdvZ0JTQUNJQWNRRmlBRFFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpJQVJCZjJvaEJDQUtEUUFMSUFWQkFXb2lCU0FHUncwQUN3c2dDVUVCYWlJRklBdFBEUUlnQmtVTkFnTkFJQUFvQXJ3SklBVWdCbXhCMkFGc2FpRUlRUUFoQXdOQUlBZ2dBMEhZQVd4cUlnUW9Bc1FCUlFSQUlBUWdBU0FGSUFNZ0FpQUhFQllnQkVFQk5nTEVBU0FBSUFBb0FyUUpRUUZxTmdLMENRc2dBMEVCYWlJRElBWkhEUUFMSUFWQkFXb2lCU0FMUncwQUN3d0NDeUFCS0FJQUlBY2dCaUFMYkVHQUEyd1FGUm9MSUFBZ0FDZ0NtQWtpQVRZQ3RBa2dBVVVOQUNBQUtBSzhDU0VBUVFBaEF3TkFJQUFnQTBIWUFXeHFRUUUyQWdnZ0EwRUJhaUlESUFGSERRQUxDd3MyQVFKL0lBQW9BaWdpQWdSQUEwQWdBQ2dDQkNBQlFRSjBhaUFBS0FJQUlBRkJLR3hxTmdJQUlBRkJBV29pQVNBQ1J3MEFDd3NMOXdRQ0RIOEJma0VISVFVakFFRWdheUlJSVF3RFFDQUZJQUZKQkVBZ0FFRUFJQVZyUVNoc2FpRUtJQVVoQmdOQUlBQWdCa0VvYkdvaUFpZ0NDQ0VKSUFJcEFnQWhEaUFJSUFJcEFndzNBeGdnQWlnQ0dDRU5JQUlvQWhRaEN5QU1JQUlvQWlRMkFoQWdDQ0FDS1FJY053TUlBa0FnQmlJRElBVkpEUUFDUUNBTFJRUkFBMEFnQ2lBRFFTaHNJZ0pxSWdRb0FoUU5BaUFOUlEwQ0lBUW9BaGdOQWlBQUlBSnFJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3lBTFFYOXFRUUZOQkVBRFFBSi9Ba0FnQ2lBRFFTaHNJZ0pxSWdRb0FoUWlCMFVOQUNBSFFYOXFRUUZMRFFBZ0JDZ0NDQ0lISUFsS0RRUWdBQ0FDYWlJRUlBY2dDVWdOQVJvZ0JDRUNEQVVMSUFBZ0Ftb0xJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3dOQUlBb2dBMEVvYkNJQ2FpSUVLQUlVSWdjRVFDQUhRWDlxUVFKSkRRSWdCQ2dDQ0NBSlRBMENDeUFBSUFKcUlnUWdBQ0FESUFWcklnTkJLR3hxSWdJcEFnQTNBZ0FnQkNBQ0tRSWdOd0lnSUFRZ0Fpa0NHRGNDR0NBRUlBSXBBaEEzQWhBZ0JDQUNLUUlJTndJSUlBTWdCVThOQUFzTUFRc2dBQ0FEUVNoc2FpRUNDeUFDSUE0M0FnQWdBQ0FEUVNoc2FpSURJQWsyQWdnZ0NDa0RHQ0VPSUFNZ0RUWUNHQ0FESUFzMkFoUWdBeUFPTndJTUlBTWdDQ2tEQ0RjQ0hDQURJQXdvQWhBMkFpUWdCa0VCYWlJR0lBRkhEUUFMQ3lBRlFRRjJJZ1VOQUFzTHJRVUJBWDhDUUNBQUtBSUFJZ0VvQWhSRkRRQWdBVUVBTmdJVUlBRW9BaGdOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ1BFVU5BQ0FCUVFBMkFqd2dBVUZBYXlnQ0FBMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUprUlEwQUlBRkJBRFlDWkNBQktBSm9EUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQW93QlJRMEFJQUZCQURZQ2pBRWdBU2dDa0FFTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0N0QUZGRFFBZ0FVRUFOZ0swQVNBQktBSzRBUTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMY0FVVU5BQ0FCUVFBMkF0d0JJQUVvQXVBQkRRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9Bb1FDUlEwQUlBRkJBRFlDaEFJZ0FTZ0NpQUlOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ3JBSkZEUUFnQVVFQU5nS3NBaUFCS0FLd0FnMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUxVQWtVTkFDQUJRUUEyQXRRQ0lBRW9BdGdDRFFBZ0FDQUFLQUlzUVg5cU5nSXNDd0pBSUFFb0F2d0NSUTBBSUFGQkFEWUMvQUlnQVNnQ2dBTU5BQ0FBSUFBb0FpeEJmMm8yQWl3TEFrQWdBU2dDcEFORkRRQWdBVUVBTmdLa0F5QUJLQUtvQXcwQUlBQWdBQ2dDTEVGL2FqWUNMQXNDUUNBQktBTE1BMFVOQUNBQlFRQTJBc3dESUFFb0F0QUREUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQXZRRFJRMEFJQUZCQURZQzlBTWdBU2dDK0FNTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0NuQVJGRFFBZ0FVRUFOZ0tjQkNBQktBS2dCQTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMRUJFVU5BQ0FCUVFBMkFzUUVJQUVvQXNnRURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9BdXdFUlEwQUlBRkJBRFlDN0FRZ0FTZ0M4QVFOQUNBQUlBQW9BaXhCZjJvMkFpd0xBMEFnQUJCZVJRMEFDeUFBUVFBMkFqQWdBRUwvL3dNM0FpUUwzUTRCQ1g4Z0FpZ0NBQ0FBS0FJSUlnSW9BZ0JHQkVBZ0FFRUFOZ0kwSUFBb0FqZ2lDMFVoRFFKQUlBRkZCRUFnQWlBRE5nSU1JQUpCQURZQ0ZDQUNJQTAyQWhnZ0FpQUVOZ0lRSUFJZ0F6WUNDQ0FMRFFFZ0FDQUFLQUlzUVFGcU5nSXNEQUVMSUFVRVFDQUFRZ0EzQWhBZ0FCQW9Ba0FnQVNnQ0FFVUVRQ0FBS0FJNFJRMEJDeUFBUWdBM0FoQUxJQUFvQWdnaUFrRURRUUlnQVNnQ0JDSUJHellDRkNBQVFRQkIvLzhESUFFYk5nSWtJQUlnRFRZQ0dDQUNRUUEyQWhBZ0FrSUFOd0lJSUFCQ2dZQ0FnQkEzQWlnTUFRc0NRQUpBQWtBZ0FTZ0NDQVJBUVFBaEN3TkFJQUVnQzBFVWJHb2lDQ2dDRENJQ1FRWkxEUUlDUUFKQUFrQUNRQUpBQWtBQ1FDQUNRUUZyRGdZQUFRSURCQVVKQ3lBQUtBSVlJZ2xGRFFnZ0F5QUlLQUlRYXlFTUlBQW9BZ0FoQ2tFQUlRZ0RRQUpBSUFvZ0NFRW9iR29pQWlnQ0ZFRi9ha0VCVFFSQUlBSW9BZ2dnREVZTkFRc2dDRUVCYWlJSUlBbEhEUUVNQ2dzTElBaEJBRWdOQ0NBQ1FRQTJBaFFnQUNBQUtBSW9RWDlxTmdJb0lBSW9BaGdOQlNBQUlBQW9BaXhCZjJvMkFpd2dDMEVCYWlFTERBWUxJQUFvQWhnaUNVVU5CeUFJS0FJVUlRd2dBQ2dDQUNFS1FRQWhDQU5BQWtBZ0NpQUlRU2hzYWlJQ0tBSVVRUU5HQkVBZ0FpZ0NDQ0FNUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdKQ3dzZ0NFRUFTQTBISUFKQkFEWUNGQ0FBSUFBb0FpaEJmMm8yQWlnZ0FpZ0NHQTBFSUFBZ0FDZ0NMRUYvYWpZQ0xDQUxRUUZxSVFzTUJRc2dBQ2dDSkNJQ1FmLy9BMFlOQmlBQ0lBZ29BaGdpREVrTkJpQUFLQUlZSWdsRkRRWWdDQ2dDRUNFT0lBQW9BZ0FoQ2tFQUlRSURRQUpBQWtBZ0NpQUNRU2hzYWlJSUtBSVVRUU5IRFFBZ0NDZ0NDQ0FNUncwQUlBaEJBRFlDRkNBQUlBQW9BaWhCZjJvMkFpZ2dDQ2dDR0EwQklBQWdBQ2dDTEVGL2FqWUNMQXdCQ3lBQ1FRRnFJZ0lnQ1VjTkFRc0xJQWxCQVNBSlFRRkxHeUVKSUFNZ0Rtc2hEa0VBSVFnRFFBSkFJQW9nQ0VFb2JHb2lBaWdDRkNJUFFYOXFRUUZOQkVBZ0FpZ0NDQ0FPUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdJQ3dzZ0NFRUFTQTBHSUE5QkFra05CaUFDUVFNMkFoUWdBaUFNTmdJSUlBdEJBV29oQ3d3RUN5QUFJQWdvQWh3aUNUWUNKQ0FBS0FJWUlneEZEUUlnQUNnQ0FDRUtRUUFoQWlBSlFmLy9BMFlFUUFOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDRUVBTmdJVUlBQWdBQ2dDS0VGL2FqWUNLQ0FJS0FJWURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQ1FRRnFJZ0lnREVjTkFBd0VBQXNBQ3dOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDQ2dDQ0NBSlRRMEFJQWhCQURZQ0ZDQUFJQUFvQWloQmYybzJBaWdnQ0NnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FrRUJhaUlDSUF4SERRQUxEQUlMSUFBUUtDQUFRUUUyQWpSQkFDRURJQXRCQVdvaEN3d0NDeUFBS0FJa0lnSkIvLzhEUmcwRElBSWdDQ2dDR0NJTVNRMERJQUFvQWhnaUNrVU5BeUFBS0FJQUlRaEJBQ0VDQWtBRFFBSkFJQWdnQWtFb2JHb2lDU2dDRkVFRFJ3MEFJQWtvQWdnZ0RFY05BQ0FKUVFBMkFoUWdBQ0FBS0FJb1FYOXFJZ2cyQWlnZ0NTZ0NHQTBDSUFBZ0FDZ0NMRUYvYWpZQ0xBd0NDeUFDUVFGcUlnSWdDa2NOQUFzZ0FDZ0NLQ0VJQ3lBSUlBcFBEUU1nQUNnQ0NDSUNRUU0yQWhRZ0FpQUVOZ0lRSUFJZ0REWUNDQ0FDSUFNMkFnd2dBaUFBS0FJNFJUWUNHRUVCSVJBZ0FDQUlRUUZxTmdJb0lBQWdBQ2dDTEVFQmFqWUNMQXNnQzBFQmFpRUxEQUFBQ3dBTFFRQWhBaUFBS0FJb0lna2dBQ2dDR0NJTFNRMEJJQWxGQkVCQkFDRUpEQUlMSUFBb0FnQWhERUYvSVFFRFFDQU1JQUpCS0d4cUlnb29BaFJCZjJwQkFVMEVRQ0FLS0FJSUlnb2dDQ0FCUVg5R0lBb2dDRWh5SWdvYklRZ2dBaUFCSUFvYklRRUxJQUpCQVdvaUFpQUpSdzBBQ3lBQlFRQklEUUVnRENBQlFTaHNhaUlCUVFBMkFoUWdBQ0FKUVg5cUlnazJBaWdnQVNnQ0dBMEJJQUFnQUNnQ0xFRi9hallDTEF3QkN5QVFEUUVnQUNnQ0dDRUxJQUFvQWlnaENRc2dDU0FMVHcwQklBQW9BZ2dpQVNBTk5nSVlJQUZCQWpZQ0ZDQUJJQVEyQWhBZ0FTQUROZ0lJSUFFZ0F6WUNEQ0FBSUFsQkFXbzJBaWdnQUNBQUtBSXNRUUZxTmdJc0N3c2dBQ2dDQ0NJQklBYzJBaUFnQVNBR05nSWNJQUVnQlRZQ0pBSkFJQUFvQWpoRkJFQWdBQ2dDTENJSklBQW9BaHdpQTAwTkFTQUFLQUlBSVFRRFFFSC8vLy8vQnlFRlFRQWhCa0VBSVFJRFFDQUVJQUpCS0d4cUlnRW9BaGdFUUNBQklBWWdBU2dDRUNJQklBVklJZ2NiSVFZZ0FTQUZJQWNiSVFVTElBSkJBV29pQWlBRFRRMEFDd0pBSUFaRkRRQWdBQ2dDRENBQUtBSVFJZ0pCQkhScUlnRWdCaWdDQURZQ0FDQUJJQVlvQWlRMkFnd2dBU0FHS0FJY05nSUVJQUVnQmlnQ0lEWUNDQ0FBSUFKQkFXbzJBaEFnQmtFQU5nSVlJQVlvQWhRTkFDQUFJQWxCZjJvaUNUWUNMQXNnQ1NBRFN3MEFDd3dCQ3lBQktBSUFJUUlnQUNnQ0RDQUFLQUlRSWdOQkJIUnFJZ0VnQlRZQ0RDQUJJQUkyQWdBZ0FTQUhOZ0lJSUFFZ0JqWUNCQ0FBSUFOQkFXbzJBaEFnQUNnQ0hDRURDeUFBS0FJQUlBTkJBV29RSndzTDFBc0NBbjhCZmlNQVFaQUJheUlFSkFBZ0JFRUFOZ0lNQWtBQ1FBSkFJQUFvQXBBYVJRMEFJQUFvQXBRYUlBRkhEUUFnQkNBQVFhUWFhaWtDQURjREdDQUFLUUtjR2lFR0lBUkJBRFlDR0NBRUlBWTNBeEFnQkVFQU5nSWdJQVFnQmo0Q0ZDQURJQUFvQXBnYU5nSUFEQUVMUVFNaEJTQUJJQUlnQkVFUWFpQURFR01OQVNBQUlBUXBBeEEzQXB3YUlBQkJyQnBxSUFRb0FpQTJBZ0FnQUVHa0dtb2dCQ2tER0RjQ0FDQURLQUlBSVFJZ0FDQUJOZ0tVR2lBQUlBSTJBcGdhQzBFQUlRVWdBRUVBTmdLUUdpQUVRUkJxSUFSQmlBRnFFRThFUUVFRElRVU1BUXNnQkNnQ2lBRkJmMnBCQzBzTkFDQUVRUkJxSUFSQmlBRnFJQUFnQkVFTWFoQXlJZ0VFUUVFRUlRVWdBVUh3L3dOR0RRRkJBeUVGREFFTEFrQWdCQ2dDREFSQUFrQWdBQ2dDb0FsRkRRQWdBQ2dDRUVVTkFFRURJUVVnQUNnQ3RCb05Bd0pBSUFBb0FxUUpSUVJBSUFCQnhBbHFJZ0lpQVNBQktBSUFJQUVvQWh4QktHeHFJZ0UyQWdnZ0FDQUJLQUlBTmdLNENpQUNFQ1lnQUNBQVFiZ0tha0VBRUNVTUFRc2dBQ0FBUWJnS2FpQUFRZHdLYWlnQ0FCQWxDeUFEUVFBMkFnQWdBRUVBTmdLY0NTQUFRUUUyQXBBYURBSUxJQUJCQURZQ25Ba2dBRUVBTmdLa0NRc2dCQ2dDaUFGQmYyb2lBVUVIU3cwQkFrQUNRQUpBSUFGQkFXc09Cd1FFQkFJRUFBRUNDeUFFUVJCcUlBUkJLR29RUXdSQUlBUW9BbEFRQkNBRVFRQTJBbEFnQkNnQ2ZCQUVJQVJCQURZQ2ZFRURJUVVNQkFzZ0FDQUVRU2hxRURjTUF3c2dCRUVRYWlBRVFTaHFFRXdFUUNBRUtBSThFQVFnQkVFQU5nSThJQVFvQWtBUUJDQUVRUUEyQWtBZ0JDZ0NSQkFFSUFSQkFEWUNSQ0FFS0FKVUVBUWdCRUVBTmdKVVFRTWhCUXdEQ3lBQUlBUkJLR29RTmd3Q0N5QUFLQUtjQ1EwQklBQkJBVFlDb0FrQ1FDQUFLQUtrQ1EwQUlBQkNBRGNDdEFrZ0JFRVFhaUFFUVNocUVDQWFJQUFvQWdnaEFTQUFJQVFvQWlnZ0JDZ0NpQUZCQlVZUU5TSUNCRUFnQUVLQWdvQ0FnQVEzQWdRZ0FFRUFOZ0swR2lBQVFnQTNBZ3hCQlVFRUlBSkIvLzhEUmhzaEJRd0RDeUFCSUFBb0FnaEdEUUFnQUNnQ0VDRUJJQVJCQVRZQ0NDQUFLQUlBSWdKQkgwMEVRQ0FBSUFKQkFuUnFLQUlVSVFVTElBTkJBRFlDQUNBQVFRRTJBcEFhQWtBQ1FBSkFJQVFvQW9nQlFRVkhEUUFnQkVFSWFpQUVRUkJxSUFFZ0FDZ0NEQkE0SUFRb0FnaHlEUUFnQlVVTkFDQUFRZndKYWlnQ0FBMEFJQVVvQWpRZ0FTZ0NORWNOQUNBRktBSTRJQUVvQWpoSERRQWdCU2dDV0NBQktBSllSZzBCQ3lBQVFZQUtha0VBTmdJQURBRUxJQUJCeEFscUVGa0xJQUFnQUNnQ0NEWUNBRUVDSVFVTUFnc2dBQ2dDdEJvRVFFRURJUVVNQWdzZ0JFRVFhaUFBUWJRU2FpSUNJQUFvQWhBZ0FDZ0NEQ0FFUVlnQmFoQStCRUJCQXlFRkRBSUxJQUFvQXFRSlJRUkFBa0FnQkNnQ2lBRkJCVVlOQUNBQVFjUUphaUFBUWNBU2FpZ0NBQ0FFS0FLTUFVRUFSeUFBS0FJUUtBSXdFRnBGRFFCQkF5RUZEQU1MSUFCQnhBbHFJZ0VnQVNnQ0FDQUJLQUljUVNoc2FpSUJOZ0lJSUFBZ0FTZ0NBRFlDdUFvTElBQkIyQXBxSUFKQjNBY1FGU0VCSUFCQkFUWUNwQWtnQUNBRUtRT0lBVGNDMEFvZ0FDZ0NsQWtnQUNnQ0RDQUFRWmdMYWlnQ0FDQUFLQUlRSWdJb0FqUWdBaWdDT0JBL0lBQkJ4QWxxSWdJUUppQUNJQUJCbkF0cUlBQkI1QXBxS0FJQUlBQkJoQXRxS0FJQUVGOEVRRUVESVFVTUFnc2dCRUVRYWlBQUlBQkJ1QXBxSUFFUVFRUkFJQUFnQUNnQzJBb1FRRUVESVFVTUFnc2dBQkF6UlEwQklBQkJBVFlDbkFrTElBQkJ1QXBxSWdFZ0FDZ0N2QWtRU1NBQUVEUWdBRUdFQ21vZ0FDZ0NFQ0FBUWRnS2FpQUFRZEFLYWhCTklRSUNRQ0FBS0FLa0NVVU5BQ0FBUWNRSmFpRURJQUJCMUFwcUtBSUFCRUFnQXlBQVFld01haUFCSUFCQjVBcHFLQUlBSUFJZ0FDZ0MwQXBCQlVZZ0FDZ0N1QWtnQUNnQ3RBa1FLUXdCQ3lBRFFRQWdBU0FBUWVRS2FpZ0NBQ0FDSUFBb0F0QUtRUVZHSUFBb0FyZ0pJQUFvQXJRSkVDa0xJQUJDQURjQ29BbEJBU0VGQ3lBRVFaQUJhaVFBSUFVTHFBd0JDMzhDUUNBQlFRUlBCRUJCQUNBRGF5SU5RUUYwSVFvQ1FDQUFJQU5ySWdVdEFBQWlCaUFBTFFBQUlnaHJJZ0VnQVVFZmRTSUJhaUFCY3lBQ0tBSUVJZ0ZQRFFBZ0FDQUthaTBBQUNJSElBWnJJZ1FnQkVFZmRTSUVhaUFFY3lBQ0tBSUlJZ3hQRFFBZ0FDQURhaTBBQUNJRUlBaHJJZ3NnQzBFZmRTSUxhaUFMY3lBTVR3MEFJQVVnQkNBR2FpQUhRUUYwYWtFQ2FrRUNkam9BQUNBQUlBZ2dCRUVCZEdvZ0IycEJBbXBCQW5ZNkFBQWdBaWdDQkNFQkN3SkFJQUJCQVdvaUJpQU5haUlNTFFBQUlnZ2dBQzBBQVNJSGF5SUVJQVJCSDNVaUJHb2dCSE1nQVU4TkFDQUdJQXBxTFFBQUlnUWdDR3NpQlNBRlFSOTFJZ1ZxSUFWeklBSW9BZ2dpQzA4TkFDQURJQVpxTFFBQUlnVWdCMnNpQ1NBSlFSOTFJZ2xxSUFseklBdFBEUUFnRENBRklBaHFJQVJCQVhScVFRSnFRUUoyT2dBQUlBWWdCeUFGUVFGMGFpQUVha0VDYWtFQ2Rqb0FBQ0FDS0FJRUlRRUxBa0FnQUVFQ2FpSUdJQTFxSWd3dEFBQWlDQ0FBTFFBQ0lnZHJJZ1FnQkVFZmRTSUVhaUFFY3lBQlR3MEFJQVlnQ21vdEFBQWlCQ0FJYXlJRklBVkJIM1VpQldvZ0JYTWdBaWdDQ0NJTFR3MEFJQU1nQm1vdEFBQWlCU0FIYXlJSklBbEJIM1VpQ1dvZ0NYTWdDMDhOQUNBTUlBVWdDR29nQkVFQmRHcEJBbXBCQW5ZNkFBQWdCaUFISUFWQkFYUnFJQVJxUVFKcVFRSjJPZ0FBSUFJb0FnUWhBUXNDUUNBQVFRTnFJZ1lnRFdvaURDMEFBQ0lJSUFBdEFBTWlCMnNpQkNBRVFSOTFJZ1JxSUFSeklBRlBEUUFnQmlBS2FpMEFBQ0lFSUFocklnVWdCVUVmZFNJRmFpQUZjeUFDS0FJSUlndFBEUUFnQXlBR2FpMEFBQ0lGSUFkcklna2dDVUVmZFNJSmFpQUpjeUFMVHcwQUlBd2dCU0FJYWlBRVFRRjBha0VDYWtFQ2Rqb0FBQ0FHSUFjZ0JVRUJkR29nQkdwQkFtcEJBblk2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJCR29pQmlBTmFpSU1MUUFBSWdnZ0FDMEFCQ0lIYXlJRUlBUkJIM1VpQkdvZ0JITWdBVThOQUNBR0lBcHFMUUFBSWdRZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFJb0FnZ2lDMDhOQUNBRElBWnFMUUFBSWdVZ0Iyc2lDU0FKUVI5MUlnbHFJQWx6SUF0UERRQWdEQ0FGSUFocUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFZZ0J5QUZRUUYwYWlBRWFrRUNha0VDZGpvQUFDQUNLQUlFSVFFTEFrQWdBRUVGYWlJR0lBMXFJZ3d0QUFBaUNDQUFMUUFGSWdkcklnUWdCRUVmZFNJRWFpQUVjeUFCVHcwQUlBWWdDbW90QUFBaUJDQUlheUlGSUFWQkgzVWlCV29nQlhNZ0FpZ0NDQ0lMVHcwQUlBTWdCbW90QUFBaUJTQUhheUlKSUFsQkgzVWlDV29nQ1hNZ0MwOE5BQ0FNSUFVZ0NHb2dCRUVCZEdwQkFtcEJBblk2QUFBZ0JpQUhJQVZCQVhScUlBUnFRUUpxUVFKMk9nQUFJQUlvQWdRaEFRc0NRQ0FBUVFacUlnWWdEV29pREMwQUFDSUlJQUF0QUFZaUIyc2lCQ0FFUVI5MUlnUnFJQVJ6SUFGUERRQWdCaUFLYWkwQUFDSUVJQWhySWdVZ0JVRWZkU0lGYWlBRmN5QUNLQUlJSWd0UERRQWdBeUFHYWkwQUFDSUZJQWRySWdrZ0NVRWZkU0lKYWlBSmN5QUxUdzBBSUF3Z0JTQUlhaUFFUVFGMGFrRUNha0VDZGpvQUFDQUdJQWNnQlVFQmRHb2dCR3BCQW1wQkFuWTZBQUFnQWlnQ0JDRUJDeUFOSUFCQkIyb2lEV29pQ0MwQUFDSUdJQUF0QUFjaUFHc2lCeUFIUVI5MUlnZHFJQWR6SUFGUERRRWdDaUFOYWkwQUFDSUJJQVpySWdvZ0NrRWZkU0lLYWlBS2N5QUNLQUlJSWdwUERRRWdBeUFOYWkwQUFDSUNJQUJySWdNZ0EwRWZkU0lEYWlBRGN5QUtUdzBCSUFnZ0FpQUdhaUFCUVFGMGFrRUNha0VDZGpvQUFDQU5JQUFnQWtFQmRHb2dBV3BCQW1wQkFuWTZBQUFQQzBFQUlBTnJJZ2RCQVhRaEJDQUJJQUlvQWdCcVFYOXFMUUFBSWdGQkFXb2hCaUFCUVg5eklRaEJDQ0VCQTBBQ1FDQUFJQWRxSWdVdEFBQWlDaUFBTFFBQUlnMXJJZ3dnREVFZmRTSU1haUFNY3lBQ0tBSUVUdzBBSUFBZ0JHb3RBQUFpRENBS2F5SUxJQXRCSDNVaUMyb2dDM01nQWlnQ0NDSUxUdzBBSUFBZ0Eyb3RBQUFpQ1NBTmF5SU9JQTVCSDNVaURtb2dEbk1nQzA4TkFDQUZJQW9nQ0NBR0lBMGdDbXRCQW5RZ0NXc2dER3BCQkdwQkEzVWlDaUFLSUFaS0d5QUtJQWhJR3lJS2FrR3dMbW90QUFBNkFBQWdBQ0FOSUFwclFiQXVhaTBBQURvQUFBc2dBRUVCYWlFQUlBRkJmMm9pQVEwQUN3c0w2Z2dCQW44Z0FVRUFRYmdIRUFjaEFrRUJJUUVDUUFKQUlBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBZ0FDUUNBRFFRRkhEUUFnQUVFSUVBTWlBMEYvUmcwQklBSWdBellDQkNBRFFmOEJSdzBBSUFCQkVCQURJZ05CZjBZTkFTQUNJQU0yQWdnZ0FFRVFFQU1pQTBGL1JnMEJJQUlnQXpZQ0RBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDRUNBRFFRRkdCRUFnQUVFQkVBTWlBMEYvUmcwQklBSWdBMEVCUmpZQ0ZBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDR0FKQUFrQWdBMEVCUmdSQUlBQkJBeEFESWdOQmYwWU5BeUFDSUFNMkFod2dBRUVCRUFNaUEwRi9SZzBESUFJZ0EwRUJSallDSUNBQVFRRVFBeUlEUVg5R0RRTWdBaUFEUVFGR05nSWtJQU5CQVVjTkFTQUFRUWdRQXlJRFFYOUdEUU1nQWlBRE5nSW9JQUJCQ0JBRElnTkJmMFlOQXlBQ0lBTTJBaXdnQUVFSUVBTWlBMEYvUncwQ0RBTUxJQUpCQlRZQ0hBc2dBa0tDZ0lDQUlEY0NLRUVDSVFNTElBSWdBellDTUNBQVFRRVFBeUlEUVg5R0RRQWdBaUFEUVFGR05nSTBBa0FnQTBFQlJ3MEFJQUFnQWtFNGFoQUNJZ0VOQVNBQ0tBSTRRUVZMRFFJZ0FDQUNRVHhxRUFJaUFRMEJJQUlvQWp4QkJVME5BQXdDQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDUUNBRFFRRkdCRUFnQUJBUElRRWdBRUVnRUFzaEF5QUJSUTBDSUFOQmYwWU5BaUFDSUFFMkFrUWdBQkFQSVFFZ0FFRWdFQXNoQXlBQlJRMENJQU5CZjBZTkFpQUNJQUUyQWtoQkFTRUJJQUJCQVJBRElnTkJmMFlOQVNBQ0lBTkJBVVkyQWt3TElBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBbEFDUUNBRFFRRkdCRUFnQUNBQ1FkUUFhaEFjSWdGRkRRRU1BZ3NnQWtFQk5nSlVJQUpDbUlDQWdJQUROd0xvQXlBQ1FwaUFnSUNBQXpjQzRBTWdBa0dCa0txSkFUWUM0QUVnQWtHQmtLcUpBVFlDWUF0QkFTRUJJQUJCQVJBRElnTkJmMFlOQUNBQ0lBTkJBVVkyQXZBREFrQWdBMEVCUmdSQUlBQWdBa0gwQTJvUUhDSUJSUTBCREFJTElBSkJBVFlDOUFNZ0FrS1lnSUNBZ0FNM0FvZ0hJQUpDbUlDQWdJQUROd0tBQnlBQ1FZRzR1UElBTmdLQUJTQUNRWUc0dVBJQU5nS0FCQXNDUUNBQ0tBSlFSUVJBSUFJb0F2QURSUTBCQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBCSUFJZ0EwRUJSallDa0FjTFFRRWhBU0FBUVFFUUF5SURRWDlHRFFBZ0FpQURRUUZHTmdLVUJ5QUFRUUVRQXlJRFFYOUdEUUFnQWlBRFFRRkdOZ0tZQndKQUlBTkJBVVlFUUNBQVFRRVFBeUlEUVg5R0RRSWdBaUFEUVFGR05nS2NCeUFBSUFKQm9BZHFFQUlpQVEwQ0lBSW9BcUFIUVJCTERRTWdBQ0FDUWFRSGFoQUNJZ0VOQWlBQ0tBS2tCMEVRU3cwRElBQWdBa0dvQjJvUUFpSUJEUUlnQWlnQ3FBZEJFRXNOQXlBQUlBSkJyQWRxRUFJaUFRMENRUUVoQVNBQ0tBS3NCMEVRU3cwQ0lBQWdBa0d3QjJvUUFpSUJEUUlnQUNBQ1FiUUhhaEFDSWdGRkRRRU1BZ3NnQWtFUU5nSzBCeUFDUXBDQWdJQ0FBamNDckFjZ0FrS0JnSUNBZ0FJM0FxUUhJQUpDZ1lDQWdDQTNBcHdIQzBFQUlRRUxJQUVQQzBFQkMwMEJBbjhqQUVFUWF5SURKQUJCQVNFRUFrQWdBQ0FEUVF4cUVBSU5BQ0FES0FJTUlnQkJMMHNOQUNBQlFkQS9RWURBQUNBQ0d5QUFhaTBBQURZQ0FFRUFJUVFMSUFOQkVHb2tBQ0FFQ3o0QkFuOENRQ0FBS0FJTVFRTjBJQUFvQWhCcklnRkZCRUFNQVF0QkFTRUNJQUZCQ0VzTkFFRUJJQUZCZjJwMElBQVFEMEVnSUFGcmRrY1BDeUFDQ3pJQkFuOENRRUdBZ0lEQUFDSUJJQUJ4RFFBRFFDQUNRUUZxSVFJZ0FVRUJkaUlCUlEwQklBQWdBWEZGRFFBTEN5QUNDNG9DQVFkL0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRUNRUUVoQXlBQlFRWlBCRUJCQUNFRElBSWdBVUdRUEdvdEFBQkJmMnAwSVFJTElBQWdBQ2dDQUNJQklBQW9BZ2dpQkdzaUJTQUFLQUlFSWdZZ0FDZ0NEQ0lIYXlJSWF5QUNiQ0FEZFRZQ0RDQUFJQVVnQ0dvZ0Ftd2dBM1UyQWdnZ0FDQUJJQVJxSWdFZ0JpQUhhaUlFYXlBQ2JDQURkVFlDQkNBQUlBRWdCR29nQW13Z0EzVTJBZ0FnQUNBQUtBSWNJZ0VnQUNnQ0ZDSUVhaUlGSUFBb0FoZ2lCaUFBS0FJUUlnZHFJZ2hxSUFKc0lBTjFOZ0lRSUFBZ0JDQUJheUlCSUFjZ0Jtc2lCR29nQW13Z0EzVTJBaGdnQUNBSUlBVnJJQUpzSUFOMU5nSVVJQUFnQkNBQmF5QUNiQ0FEZFRZQ0hBdlBDQUVVZnlBQUlBQW9BaXdpQWlBQUtBSU1JZ1pxSWdVZ0FDZ0NOQ0lFSUFBb0FpQWlFR29pQ21zaUVUWUNMQ0FBS0FJb0lRTWdBQ0FHSUFKcklnY2dFQ0FFYXlJRWF5SUdOZ0lvSUFBb0FpUWhBaUFBSUFRZ0Iyb2lCRFlDSkNBQUlBVWdDbW9pQlRZQ0lDQUFJQUFvQWh3aUNpQUFLQUlJSWdkcUlnZ2dBQ2dDTUNJTUlBQW9BaEFpQ1dvaUMyc2lFRFlDSENBQUtBSVlJUThnQUNBSElBcHJJZ2NnQ1NBTWF5SU1heUlLTmdJWUlBQW9BaFFoQ1NBQUlBY2dER29pQnpZQ0ZDQUFJQWdnQzJvaUNEWUNFQ0FBSUFrZ0FDZ0NBQ0lMYWlJU0lBOGdBQ2dDQkNJTmFpSU9heUlNTmdJTUlBQWdDeUFKYXlJSklBMGdEMnNpQzJzaUR6WUNDQ0FBSUFrZ0Myb2lDVFlDQkNBQUlBNGdFbW9pQ3pZQ0FDQUFJQUlnQUNnQ09DSU5haUlUSUFNZ0FDZ0NQQ0lPYWlJVWF5SVNOZ0k4SUFBZ0FpQU5heUlDSUFNZ0Rtc2lBMnNpRFRZQ09DQUFJQUlnQTJvaURqWUNOQ0FBSUJNZ0ZHb2lFellDTUNBQlFaQThhaTBBQUNFQ0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRURJQUZCREU4RVFDQUFJQU1nQWtGK2FuUWlBU0FGSUF0cUlnTWdDQ0FUYWlJQ2EydzJBakFnQUNBTElBVnJJZ1VnQ0NBVGF5SUlheUFCYkRZQ0lDQUFJQVVnQ0dvZ0FXdzJBaEFnQUNBQ0lBTnFJQUZzTmdJQUlBQWdCQ0FKYWlJRElBY2dEbW9pQW1zZ0FXdzJBalFnQUNBSklBUnJJZ1FnQnlBT2F5SUZheUFCYkRZQ0pDQUFJQVFnQldvZ0FXdzJBaFFnQUNBQ0lBTnFJQUZzTmdJRUlBQWdCaUFQYWlJRElBb2dEV29pQW1zZ0FXdzJBamdnQUNBUElBWnJJZ1lnQ2lBTmF5SUVheUFCYkRZQ0tDQUFJQVFnQm1vZ0FXdzJBaGdnQUNBQ0lBTnFJQUZzTmdJSUlBQWdEQ0FSYXlJRElCQWdFbXNpQW1zZ0FXdzJBaXdnQUNBQ0lBTnFJQUZzTmdJY0lBQWdFQ0FTYWlJRElBd2dFV29pQW1vZ0FXdzJBZ3dnQUNBQ0lBTnJJQUZzTmdJOER3c2dBRUVCUVFJZ0FVRjZha0VHU1JzaUFTQUZJQXRxSWhRZ0NDQVRhaUlWYXlBRGJHcEJBaUFDYXlJQ2RUWUNNQ0FBSUFzZ0JXc2lCU0FJSUJOcklnaHJJQU5zSUFGcUlBSjFOZ0lnSUFBZ0JTQUlhaUFEYkNBQmFpQUNkVFlDRUNBQUlCUWdGV29nQTJ3Z0FXb2dBblUyQWdBZ0FDQUVJQWxxSWdVZ0J5QU9haUlJYXlBRGJDQUJhaUFDZFRZQ05DQUFJQWtnQkdzaUJDQUhJQTVySWdkcklBTnNJQUZxSUFKMU5nSWtJQUFnQkNBSGFpQURiQ0FCYWlBQ2RUWUNGQ0FBSUFVZ0NHb2dBMndnQVdvZ0FuVTJBZ1FnQUNBR0lBOXFJZ1FnQ2lBTmFpSUZheUFEYkNBQmFpQUNkVFlDT0NBQUlBOGdCbXNpQmlBS0lBMXJJZ3BySUFOc0lBRnFJQUoxTmdJb0lBQWdCaUFLYWlBRGJDQUJhaUFDZFRZQ0dDQUFJQVFnQldvZ0Eyd2dBV29nQW5VMkFnZ2dBQ0FNSUJGcklnWWdFQ0FTYXlJRWF5QURiQ0FCYWlBQ2RUWUNMQ0FBSUFRZ0Jtb2dBMndnQVdvZ0FuVTJBaHdnQUNBUUlCSnFJZ1lnRENBUmFpSVJhaUFEYkNBQmFpQUNkVFlDRENBQUlCRWdCbXNnQTJ3Z0FXb2dBblUyQWp3THZRVUJCbjhqQUVFZ2F5SUZKQUFnQTBFQU5nSUFBa0FnQVNnQ0FDSUdRUkpMRFFCQkFTQUdkQ0lHUWNEZkgzRkZCRUFnQmtFaWNVVU5BU0FDUWJRS2FpZ0NBQVJBSUFOQkFUWUNBQ0FDUVFBMkFyUUtDeUFBSUFWQkhHb1FJQ0lFRFFGQjhQOERJUVFnQWlBRktBSWNRUUowYWlnQ2xBRWlDRVVOQVNBQ0lBZ29BZ1FpQmtFQ2RHb29BaFFpQjBVTkFRSkFJQUlvQWdnaUNVRWdSZzBBSUFZZ0NVWU5BQ0FCS0FJQVFRVkhEUUlMQWtBZ0FrR1lDbW9vQWdBaUJDQUJLQUlFSWdaR0RRQWdCRUVBSUFZYkRRQWdBMEVCTmdJQUN5QUJLQUlBSVFRQ1FBSkFJQUlvQXBRS1FRVkdCRUFnQkVFRlJ3MEJEQUlMSUFSQkJVY05BUXNnQTBFQk5nSUFDMEVCSVFRZ0FDQUhLQUlNSUFWQkdHb1FQUTBCSUFVb0FoZ2lCaUFDUVp3S2FpZ0NBRWNFUUNBQ0lBWTJBcHdLSUFOQkFUWUNBQXNnQVNnQ0FFRUZSZ1JBSUFBZ0J5Z0NEQ0FGUVJScUVEd05BZ0pBSUFJb0FwUUtRUVZIQkVBZ0JTZ0NGQ0VFREFFTElBSkJvQXBxS0FJQUlnUWdCU2dDRkNJR1JnMEFJQU5CQVRZQ0FDQUdJUVFMSUFKQm9BcHFJQVEyQWdBTEFrQWdCeWdDRUNJRVFRRkxEUUFnQkVFQmF3UkFRUUVoQkNBQUlBY2dBU2dDQUNBRlFRaHFFRHNOQXlBRktBSUlJZ1FnQWtHa0Ntb29BZ0JIQkVBZ0FpQUVOZ0trQ2lBRFFRRTJBZ0FMSUFnb0FnaEZEUUVnQUNBSElBRW9BZ0FnQlVFUWFoQTZJZ1FOQXlBRktBSVFJZ0FnQWtHb0Ntb29BZ0JHRFFFZ0FpQUFOZ0tvQ2lBRFFRRTJBZ0FNQVFzZ0J5Z0NHQTBBSUFBZ0J5QUJLQUlBSUFnb0FnZ2dCVUVJYWhBNUlnUU5BaUFGS0FJSUlnQWdBa0dzQ21vb0FnQkhCRUFnQWlBQU5nS3NDaUFEUVFFMkFnQUxJQWdvQWdoRkRRQWdCU2dDRENJQUlBSkJzQXBxS0FJQVJnMEFJQUlnQURZQ3NBb2dBMEVCTmdJQUN5QUNJQUVwQWdBM0FwUUtRUUFoQkF3QkN5QURRUUUyQWdBTElBVkJJR29rQUNBRUMzOEJBMzhDUUFKQUFrQWdBRUg4Q21vb0FnQUVRQ0FBS0FLWUNTSUREUUZCQVE4TFFRRWhBU0FBUWF3SmFpZ0NBQ0FBS0FLWUNVY05BUXdDQ3lBQUtBSzhDU0VCUVFBaEFBTkFJQUlnQVNBQVFkZ0JiR29vQXNRQlFRQkhhaUVDSUFCQkFXb2lBQ0FEUncwQUMwRUJJUUVnQWlBRFJnMEJDMEVBSVFFTElBRUxTZ0VEZnlBQVFnQTNBcWdKSUFBb0FwZ0pJZ0VFUUNBQUtBSzhDU0VDUVFBaEFBTkFJQUlnQUVIWUFXeHFJZ05CQURZQ3hBRWdBMEVBTmdJRUlBQkJBV29pQUNBQlJ3MEFDd3NMZ3dZQkRIOUJBU0VHQWtBZ0FDQUJRUUowYWlnQ2xBRWlCRVVOQUNBQUlBUW9BZ1FpQ1VFQ2RHb2lDa0VVYWlnQ0FDSURSUTBBQWtBZ0JDZ0NEQ0lGUVFKSkRRQWdBeWdDTkNJSElBTW9BamhzSVFnQ1FDQUVLQUlRSWdOQkFrc05BQUpBQWtBQ1FDQURRUUZyRGdJREFBRUxJQVZCZjJvaEN5QUVLQUljSVF3Z0JDZ0NHQ0VOUVFBaEF3d0JDeUFFS0FJVUlRZEJBQ0VEQTBBZ0J5QURRUUowYWlnQ0FDQUlUUVJBSUFVZ0EwRUJhaUlEUncwQkRBUUxDMEVCRHdzRFFDQU5JQU5CQW5RaUJXb29BZ0FpRGlBRklBeHFLQUlBSWdWTERRTWdCU0FJVHcwRElBNGdCM0FnQlNBSGNFMEVRQ0FEUVFGcUlnTWdDMFlOQXd3QkN3dEJBUThMSUFOQmZXcEJBazBFUUNBRUtBSWtJQWhORFFFTUFnc2dBMEVHUncwQUlBUW9BaWdnQ0VrTkFRc0NRQ0FBS0FJRUlnTkJnQUpHQkVBZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQW9BclFhQkVBZ0FFRUFOZ0swR2lBQUtBSzhDUkFFSUFCQkFEWUN2QWtnQUNnQ2xBa1FCQ0FBSUFBb0FwZ0pJZ0ZCMkFGc0lnUVFDaUlDTmdLOENTQUFJQUZCQW5RUUNpSUROZ0tVQ1VILy93TWhCaUFDUlEwQ0lBTkZEUUlnQWtFQUlBUVFCeUFBS0FJUUtBSTBJQUVRVGlBQUtBSVFJUUZCQVNFQ0FrQWdBQ2dDd0FrTkFDQUJLQUlRUVFKR0RRQUNRQ0FCS0FKUVJRMEFJQUVvQWxRaUJDZ0NtQWRGRFFBZ0JDZ0NzQWRGRFFFTFFRQWhBZ3NnQUVIRUNXb2dBU2dDT0NBQktBSTBiQ0FCS0FKWUlBRW9BaXdnQVNnQ0RDQUNFRndpQmtVTkFRd0NDeUFCSUFOR0RRQWdBQ2dDQ0NBSlJ3UkFJQUpGRFFJZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQWdCRFlDRENBQUlBRTJBZ1FMUVFBaEJnc2dCZ3UyQVFFRGZ3SkFJQUFnQVNnQ0FDSURRUUowYWlJQ0tBS1VBU0lFUlFSQUlBSkJ5QUFRQ2lJQU5nS1VBU0FBRFFFUEN3SkFJQU1nQUNnQ0JFY05BQ0FCS0FJRUlBQW9BZ2hHRFFBZ0FFR0JBallDQkFzZ0JDZ0NGQkFFSUFJb0FwUUJRUUEyQWhRZ0FpZ0NsQUVvQWhnUUJDQUNLQUtVQVVFQU5nSVlJQUlvQXBRQktBSWNFQVFnQWlnQ2xBRkJBRFlDSENBQ0tBS1VBU2dDTEJBRUlBSW9BcFFCUVFBMkFpd0xJQUlvQXBRQklBRkJ5QUFRRlJvTDFnRUJBMzhDUUNBQUlBRW9BZ2dpQTBFQ2RHb2lBaWdDRkNJRVJRUkFJQUpCM0FBUUNpSUFOZ0lVSUFBTkFROExJQUFvQWdnZ0EwWUVRQ0FCSUFBb0FoQVFRZ1JBSUFJb0FoUW9BaWdRQkNBQ0tBSVVRUUEyQWlnZ0FpZ0NGQ2dDVkJBRUlBSW9BaFJCQURZQ1ZDQUFRUUEyQWhBZ0FFR0JBallDQkNBQVFpRTNBZ2dNQWdzZ0FTZ0NLQkFFSUFGQkFEWUNLQ0FCS0FKVUVBUWdBVUVBTmdKVUR3c2dCQ2dDS0JBRUlBSW9BaFJCQURZQ0tDQUNLQUlVS0FKVUVBUWdBaWdDRkVFQU5nSlVDeUFDS0FJVUlBRkIzQUFRRlJvTDBnSUJBMzhqQUVFZ2F5SUVKQUFnQkNBQktBSVFOZ0lRSUFRZ0FTa0NDRGNEQ0NBRUlBRXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUJEUUFnQkNBRVFSeHFFQUlpQVEwQUlBUWdCRUVjYWhBQ0lnRU5BQ0FDS0FJTUlRWkJBQ0VCQTBBZ0FTSUZRUUZxSVFFZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQVF3QkN5QUVJQVJCSEdvUUFpSUJEUUFDUUNBQ0tBSVFJZ0VFZnlBQkJTQUNLQUlVSVFaQkFDRUJBMEFnQVNJRlFRRnFJUUVnQmlBRmRnMEFDeUFFSUFWQmYyb1FBMEYvUmdSQVFRRWhBUXdEQ3lBREtBSUlCRUFnQkNBRVFSaHFFQVVpQVEwREN5QUNLQUlRQzBFQlJ3MEFJQUlvQWhnTkFDQUVJQVJCR0dvUUJTSUJEUUVnQXlnQ0NFVU5BQ0FFSUFSQkdHb1FCU0lCRFFFTElBTW9Ba1FFUUNBRUlBUkJIR29RQWlJQkRRRUxJQUFnQkVFQkVBTWlBRFlDQUNBQVFYOUdJUUVMSUFSQklHb2tBQ0FCQzhZQkFRSi9Jd0JCSUdzaUJTUUFJQVVnQUNnQ0VEWUNFQ0FGSUFBcEFnZzNBd2dnQlNBQUtRSUFOd01BQWtBZ0JTQUZRUnhxRUFJaUFBMEFJQVVnQlVFY2FoQUNJZ0FOQUNBRklBVkJIR29RQWlJQURRQWdBU2dDRENFR1FRQWhBQU5BSUFBaUFVRUJhaUVBSUFZZ0FYWU5BQXNnQlNBQlFYOXFFQU5CZjBZRVFFRUJJUUFNQVFzZ0FrRUZSZ1JBSUFVZ0JVRWNhaEFDSWdBTkFRc2dCU0FFRUFVaUFBMEFJQU1FUUNBRklBUkJCR29RQlNJQURRRUxRUUFoQUFzZ0JVRWdhaVFBSUFBTDRRRUJBMzhqQUVFZ2F5SUVKQUFnQkNBQUtBSVFOZ0lRSUFRZ0FDa0NDRGNEQ0NBRUlBQXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUFEUUFnQkNBRVFSeHFFQUlpQUEwQUlBUWdCRUVjYWhBQ0lnQU5BQ0FCS0FJTUlRWkJBQ0VBQTBBZ0FDSUZRUUZxSVFBZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUNRUVZHQkVBZ0JDQUVRUnhxRUFJaUFBMEJDeUFCS0FJVUlRSkJBQ0VBQTBBZ0FDSUJRUUZxSVFBZ0FpQUJkZzBBQ3lBRUlBRkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUVJQU1RQlNFQUN5QUVRU0JxSkFBZ0FBdm1BUUVEZnlNQVFTQnJJZ1FrQUNBRUlBQW9BaEEyQWhBZ0JDQUFLUUlJTndNSUlBUWdBQ2tDQURjREFBSkFJQVFnQkVFY2FoQUNJZ0FOQUNBRUlBUkJIR29RQWlJQURRQWdCQ0FFUVJ4cUVBSWlBQTBBSUFFb0Fnd2hCa0VBSVFBRFFDQUFJZ1ZCQVdvaEFDQUdJQVYyRFFBTElBUWdCVUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQUpCQlVZRVFDQUVJQVJCSEdvUUFpSUFEUUVMSUFFb0FoUWhBa0VBSVFBRFFDQUFJZ0ZCQVdvaEFDQUNJQUYyRFFBTElBUWdBVUYvYWhBRElnQkJmMFlFUUVFQklRQU1BUXNnQXlBQU5nSUFRUUFoQUFzZ0JFRWdhaVFBSUFBTGtnRUJBbjhqQUVFZ2F5SURKQUFnQXlBQUtBSVFOZ0lRSUFNZ0FDa0NBRGNEQUNBRElBQXBBZ2czQXdnQ1FDQURJQU5CSEdvUUFpSUFEUUFnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BRUVBSVFBRFFDQUFJZ1JCQVdvaEFDQUJJQVIyRFFBTElBTWdCRUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQU1nQWhBQ0lRQUxJQU5CSUdva0FDQUFDNWNCQVFKL0l3QkJJR3NpQXlRQUlBTWdBQ2dDRURZQ0VDQURJQUFwQWdnM0F3Z2dBeUFBS1FJQU53TUFBa0FnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BQ0FESUFOQkhHb1FBaUlBRFFCQkFDRUFBMEFnQUNJRVFRRnFJUUFnQVNBRWRnMEFDeUFESUFSQmYyb1FBeUlBUVg5R0JFQkJBU0VBREFFTElBSWdBRFlDQUVFQUlRQUxJQU5CSUdva0FDQUFDNjhPQVFwL0l3QkJFR3NpQlNRQUlBRkJBRUhjQnhBSElRY2dBaWdDTkNFR0lBSW9BamdoQ0FKQUlBQWdCVUVFYWhBQ0lnRU5BQ0FISUFVb0FnUWlBVFlDQUNBQklBWWdDR3dpQzA4RVFFRUJJUUVNQVFzZ0FDQUZRUVJxRUFJaUFRMEFJQWNnQlNnQ0JDSUdOZ0lFSUFaQkIwc0VRRUVCSVFFTUFRdEJBU0VCQWtBQ1FDQUdRUUZyRGdjQ0FRSUNBQUlCQUFzZ0JDZ0NBRUVGUmdSQURBSUxJQUlvQWl3TkFBd0JDeUFBSUFWQkJHb1FBaUlCRFFBZ0J5QUZLQUlFSWdZMkFnaEJBU0VCSUFZZ0F5Z0NBRWNOQUNBQ0tBSU1JUWhCQUNFQkEwQWdBU0lHUVFGcUlRRWdDQ0FHZGcwQUMwRUJJUUVnQUNBR1FYOXFFQU1pQmtGL1JnMEFJQVpCQUNBRUtBSUFJZ2hCQlVZYkRRQWdCeUFHTmdJTUlBaEJCVVlFUUNBQUlBVkJCR29RQWlJQkRRRWdCeUFGS0FJRUlnWTJBaEJCQVNFQklBWkIvLzhEU3cwQkN3SkFJQUlvQWhBaUFRUi9JQUVGSUFJb0FoUWhDRUVBSVFFRFFDQUJJZ1pCQVdvaEFTQUlJQVoyRFFBTElBQWdCa0YvYWhBRElnRkJmMFlFUUVFQklRRU1Bd3NnQnlBQk5nSVVJQU1vQWdnRVFDQUFJQVVRQlNJQkRRTWdCeUFGS0FJQU5nSVlDeUFFS0FJQVFRVkdCRUJCQVNFQklBY29BaFFpQmlBQ0tBSVVRUUYyU3cwRElBWkJBQ0FIS0FJWUlnaEJIM1VnQ0hGclJ3MERDeUFDS0FJUUMwRUJSdzBBSUFJb0FoZ05BQ0FBSUFVUUJTSUJEUUVnQnlBRktBSUFOZ0ljSUFNb0FnZ0VRQ0FBSUFVUUJTSUJEUUlnQnlBRktBSUFOZ0lnQ3lBRUtBSUFRUVZIRFFCQkFTRUJJQWNvQWh3aUJpQUhLQUlnSUFZZ0FpZ0NJR3BxSWdnZ0JpQUlTQnNOQVFzZ0F5Z0NSQVJBSUFBZ0JVRUVhaEFDSWdFTkFTQUhJQVVvQWdRaUJqWUNKRUVCSVFFZ0JrSC9BRXNOQVFzQ1FDQUhLQUlFSWdGQkJVc05BQUpBSUFGQkFXc09CQUVCQVFFQUMwRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDS0FKQUlBWUVRQ0FBSUFWQkJHb1FBaUlCRFFOQkFTRUJJQVVvQWdRaUJrRVBTdzBESUFaQkFXb2hCZ3dCQ3lBREtBSXdJZ1pCRUVzTkFnc2dCeUFHTmdJc0lBY29BZ1FoQVFzQ1FDQUJRUVZMRFFBQ1FDQUJRUUZyRGdRQkFRRUJBQXNnQWlnQ0RDRUpJQWNvQWl3aENrRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDUkNBR1JRMEFRUUFoQVFOQUlBRWlCaUFLU3dSQVFRRWhBUXdEQ3lBQUlBVkJDR29RQWlJQkRRSWdCU2dDQ0NJQlFRTkxCRUJCQVNFQkRBTUxJQWNnQmtFTWJHb2lDQ0FCTmdKSUFrQWdBVUVCVFFSQUlBQWdCVUVNYWhBQ0lnRU5CQ0FGS0FJTUlnRWdDVThFUUVFQklRRU1CUXNnQ0NBQlFRRnFOZ0pNREFFTElBRkJBa2NOQUNBQUlBVkJER29RQWlJQkRRTWdDQ0FGS0FJTU5nSlFDeUFHUVFGcUlRRWdCU2dDQ0VFRFJ3MEFDMEVCSVFFZ0JrVU5BUXNDUUNBRUtBSUVSUTBBSUFRb0FnQWhCQ0FDS0FJc0lRbEJBU0VCSUFCQkFSQURJUUlnQkVFRlJnUkFJQUpCZjBZTkFpQUhJQUkyQXBRQ0lBQkJBUkFESWdKQmYwWU5BaUFISUFJMkFwZ0NJQWtOQVNBQ1JRMEJEQUlMSUFKQmYwWU5BU0FISUFJMkFwd0NJQUpGRFFBZ0NVRUJkRUVEYWlFT1FRQWhCa0VBSVFwQkFDRUVBMEFnQmlBT1JnUkFRUUVoQVF3REN5QUFJQVZCQ0dvUUFpSUJEUUlnQlNnQ0NDSUNRUVpMQkVCQkFTRUJEQU1MSUFjZ0JrRVViR29pQ0NBQ05nS2dBZ0ovSUFKQkFuSkJBMFlFUUNBQUlBVkJER29RQWlJQkRRUWdDQ0FGS0FJTVFRRnFOZ0trQWlBRktBSUlJUUlMSUFKQkFrWUxCRUFnQUNBRlFReHFFQUlpQVEwRElBZ2dCU2dDRERZQ3FBSWdCU2dDQ0NFQ0N3SkFJQUpCZldvaUFVRURTdzBBQWtBZ0FVRUJhdzRDQVFFQUN5QUFJQVZCREdvUUFpSUJEUU1nQ0NBRktBSU1OZ0tzQWlBRktBSUlJUUlMSUFKQkJFWUVRQ0FBSUFWQkRHb1FBaUlCRFFNZ0JTZ0NEQ0lCSUFsTEJFQkJBU0VCREFRTElBZ2dBVUYvYWtILy93TWdBUnMyQXJBQ0lBcEJBV29oQ2lBRktBSUlJUUlMSUFaQkFXb2hCaUFNSUFKQkJrWnFJUXdnQkNBQ1FRVkdhaUVFSUEwZ0FrRi9ha0VEU1dvaERTQUNEUUFMUVFFaEFTQUVJQXB5SUF4eVFRRkxEUUVnQkVVTkFDQU5EUUVMSUFBZ0JSQUZJZ0VOQUNBSElBVW9BZ0FpQVRZQ01DQUZJQUVnQXlnQ05Hb2lBallDQUVFQklRRWdBa0V6U3cwQUFrQWdBeWdDUEVVTkFDQUFJQVZCQkdvUUFpSUJEUUVnQnlBRktBSUVJZ0kyQWpSQkFTRUJJQUpCQWtzTkFTQUNRUUZHRFFBZ0FDQUZFQVVpQVEwQlFRRWhBU0FGS0FJQUlnSkJCbXBCREVzTkFTQUhJQUpCQVhRMkFqZ2dBQ0FGRUFVaUFRMEJRUUVoQVNBRktBSUFJZ0pCQm1wQkRFc05BU0FISUFKQkFYUTJBandMQWtBZ0F5Z0NERUVDU1EwQUlBTW9BaEJCZldwQkFrc05BRUVDUVFFZ0N5QUxJQU1vQWlRaUFXNGlBaUFCYkdzYklBSnFJUVJCQUNFQ0EwQWdCQ0FDSWdGQkFXb2lBbllOQUFzZ0JTQUFJQUlnQVNBRVFYOGdBWFJCZjNOeEd4QURJZ0EyQWdSQkFTRUJJQUJCZjBZTkFTQUhJQUEyQWtBZ0FDQUxJQU1vQWlRaUFHcEJmMm9nQUc1TERRRUxRUUFoQVFzZ0JVRVFhaVFBSUFFTHdRa0JEWDhnQXlBRWJDRUZJQUVvQWd3aUNVRUJSZ1JBSUFCQkFDQUZRUUowRUFjYUR3c0NRQUpBQWtBQ1FDQUJLQUlRSWdaQmZXcEJBazBFUUNBQktBSWtJQUpzSWdJZ0JTQUNJQVZKR3lFTElBWkJmbkZCQkVjTkFTQUZJQXRySUFzZ0FTZ0NJQnNoQndzQ1FBSkFBa0FnQmtFRlRRUkFJQVpCQVdzT0JRWUZCQU1DQVFzZ0JVVU5CaUFCS0FJc0lRSkJBQ0VCQTBBZ0FDQUJRUUowSWdOcUlBSWdBMm9vQWdBMkFnQWdBVUVCYWlJQklBVkhEUUFMREFZTEFrQWdDUVJBSUFFb0FoUWhBa0VBSVFZTUFRc2dCVVVOQmdOQURBQUFDd0FMQTBCQkFDRUVJQVlnQlU4TkJnTkFRUUFoQndKQUlBSWdCRUVDZEdvaUF5Z0NBQ0lCUlEwQUlBRWhCeUFGSUFaTkRRQkJBQ0VCUVFBZ0JTQUdheUlISUFjZ0JVc2JJUWdEUUNBQUlBRWdCbXBCQW5ScUlBUTJBZ0FnQVVFQmFpSUJJQU1vQWdBaUIwOE5BU0FCSUFoSERRQUxDeUFFUVFGcUlnUWdDVWxCQUNBR0lBZHFJZ1lnQlVrYkRRQUxJQVlnQlVrTkFBc01CUXNnQTBVTkJDQUVSUTBFUVFFZ0FTZ0NJQ0lKYXlFSVFRQWhCVUVBSVFJRFFFRUFJUUVnQlNFR0EwQWdBQ0FCSUFOc0lBSnFRUUowYWlBSklBZ2dCaUFIU1JzMkFnQWdCa0VCYWlFR0lBRkJBV29pQVNBRVJ3MEFDeUFFSUFWcUlRVWdBa0VCYWlJQ0lBTkhEUUFMREFRTElBVkZEUU5CQVNBQktBSWdJZ0pySVFOQkFDRUJBMEFnQUNBQlFRSjBhaUFDSUFNZ0FTQUhTUnMyQWdBZ0FVRUJhaUlCSUFWSERRQUxEQU1MSUFFb0FpQWhBaUFGQkVCQkFDRUJBMEFnQUNBQlFRSjBha0VCTmdJQUlBRkJBV29pQVNBRlJ3MEFDd3NnQzBVTkFpQURRWDlxSVE4Z0JFRi9haUVRSUFKQmYyb2hCa0VCSUFKQkFYUWlBV3NoQlNBQlFYOXFJUWtnQkNBQ2EwRUJkaUlLSVF3Z0F5QUNhMEVCZGlJTklRUWdDaUVJSUEwaEFVRUFJUWNEUUNBQUlBTWdDR3dnQVdwQkFuUnFJZzRvQWdBaUVVRUJSZ1JBSUE1QkFEWUNBQXNnRVVFQlJpRU9Ba0FDUUNBR1FYOUhEUUFnQVNBRVJ3MEFRUUFoQmlBSklRSWdCRUVCSUFSQkFVb2JRWDlxSWdFaEJBd0JDd0pBSUFaQkFVY05BQ0FCSUExSERRQkJBQ0VHSUFVaEFpQU5RUUZxSWdFZ0R5QUJJQTlJR3lJQklRME1BUXNDUUNBQ1FYOUhEUUFnQ0NBTVJ3MEFRUUFoQWlBRklRWWdERUVCSUF4QkFVb2JRWDlxSWdnaERBd0JDd0pBSUFKQkFVY05BQ0FJSUFwSERRQkJBQ0VDSUFraEJpQUtRUUZxSWdnZ0VDQUlJQkJJR3lJSUlRb01BUXNnQWlBSWFpRUlJQUVnQm1vaEFRc2dCeUFPYWlJSElBdEpEUUFMREFJTElBRW9BaHdoQnlBQktBSVlJUWdnQlFSQUlBbEJmMm9oQWtFQUlRRURRQ0FBSUFGQkFuUnFJQUkyQWdBZ0FVRUJhaUlCSUFWSERRQUxJQUpGRFFJTElBbEJmbW9oQVFOQUFrQWdDQ0FCSWdSQkFuUWlBV29vQWdBaUJpQURiaUlDSUFFZ0Iyb29BZ0FpQVNBRGJpSUZTdzBBSUFZZ0FpQURiR3NpQmlBQklBTWdCV3hySWdsTEJFQURRQ0FDUVFGcUlnSWdCVTBOQUF3Q0FBc0FDd05BSUFJZ0Eyd2hDaUFHSVFFRFFDQUFJQUVnQ21wQkFuUnFJQVEyQWdBZ0FVRUJhaUlCSUFsTkRRQUxJQUpCQVdvaUFpQUZUUTBBQ3dzZ0JFRi9haUVCSUFRTkFBc01BUXNnQlVVTkFFRUFJUUVEUUNBQUlBRkJBblJxSUFFZ0EyNGlBaUFKYkVFQmRpQUJJQUlnQTJ4cmFpQUpjRFlDQUNBQlFRRnFJZ0VnQlVjTkFBc0xDOFFCQVFWL0lBQW9BcWdKSVFRQ1FDQUFRYkFKYWlnQ0FDSUNSUTBBSUFKQmYyb2lBaUFCVFFSQUlBSWhBUXdCQ3lBQUtBSzhDU0VGQTBBQ1FDQUZJQUpCMkFGc2FpZ0NCQ0FFUncwQUlBTkJBV29pQXlBQUtBSVFLQUkwSWdaQkNpQUdRUXBMRzBrTkFDQUNJUUVNQWdzZ0FrRi9haUlDSUFGTERRQUxDd05BQWtBZ0FDZ0N2QWtnQVVIWUFXeHFJZ0lvQWdRZ0JFY05BQ0FDS0FMRUFTSURSUTBBSUFJZ0EwRi9hallDeEFFZ0FDZ0NsQWtnQUNnQ21Ba2dBUkFlSWdFTkFRc0xDNzBFQWd0L0FYNGpBRUhBQTJzaUJTUUFJQU1vQWdBaEJ5QUJLQUt3R2lFSUlBVkJBRFlDRENBQlFiQUpha0VBTmdJQUlBRWdBU2dDcUFsQkFXbzJBcWdKSUFVZ0F5Z0NNQ0FCS0FJTUtBSTBhallDQ0NBQlFjUUphaUVOSUFoQkRHb2hEZ0pBQTBBZ0FTZ0N2QWtoQkFKQUlBTW9BaVFOQUNBRUlBZEIyQUZzYWlnQ3hBRkZEUUJCQVNFRURBSUxJQU1wQWpRaER5QURLQUk4SVFzZ0FTZ0NxQWtoRENBRUlBZEIyQUZzSWdacUlnUWdBU2dDRENnQ09EWUNHQ0FFSUFzMkFoQWdCQ0FQTndJSUlBUWdERFlDQkFKQUlBTW9BZ1FpQkVFQ1JnMEFJQWtOQUNBRVFRZEdEUUFnQUNBRlFReHFFQUlpQkEwQ0lBVW9BZ3dpQkNBQktBS1lDU0FIYTBzRVFFRUJJUVFNQXdzZ0JFVUVRRUVBSVFrTUFRc2dEa0VBUWFRQkVBY2FJQWhCQURZQ0FFRUJJUWtMQWtBZ0JTZ0NEQ0lFQkVBZ0JTQUVRWDlxTmdJTURBRUxRUUFoQ1NBQUlBZ2dBU2dDdkFrZ0Jtb2dBeWdDQkNBREtBSXNFRkVpQkEwQ0N5QUJLQUs4Q1NBR2FpQUlJQUlnRFNBRlFRaHFJQWNnQVNnQ0RDZ0NRQ0FGUVJCcUVGQWlCQTBCSUFFb0Fyd0pJQVpxS0FMRUFTRUxJQUFRTGlFRUlBVW9BZ3doQmdKQUlBTW9BZ1JCZm1vaURFRUZTdzBBQWtBZ0RFRUJhdzRFQVFFQkFRQUxJQUVnQnpZQ3NBa0xJQVFnQm5JaEJrRUJJUVFnQVNnQ2xBa2dBU2dDbUFrZ0J4QWVJZ2RGUVFBZ0Joc05BU0FLSUF0QkFVWnFJUW9nQmcwQUN5QUJRYXdKYWlnQ0FDQUthaUlBSUFFb0FwZ0pTdzBBSUFFZ0FEWUNyQWxCQUNFRUN5QUZRY0FEYWlRQUlBUUw1Z0lCQjM5QkFTRUNBa0FnQUNnQ0FDQUJLQUlBUncwQUlBQW9BZ1FnQVNnQ0JFY05BQ0FBS0FJTUlBRW9BZ3hIRFFBZ0FDZ0NFQ0lESUFFb0FoQkhEUUFnQUNnQ0xDQUJLQUlzUncwQUlBQW9BakFnQVNnQ01FY05BQ0FBS0FJMElBRW9BalJIRFFBZ0FDZ0NPQ0FCS0FJNFJ3MEFJQUFvQWp3aUJTQUJLQUk4UncwQUlBQW9BbEFnQVNnQ1VFY05BQUpBSUFOQkFVc05BQ0FEUVFGclJRUkFJQUFvQWhnZ0FTZ0NHRWNOQWlBQUtBSWNJQUVvQWh4SERRSWdBQ2dDSUNBQktBSWdSdzBDSUFBb0FpUWlCQ0FCS0FJa1J3MENJQVJGRFFFZ0FTZ0NLQ0VHSUFBb0FpZ2hCMEVBSVFNRFFDQUhJQU5CQW5RaUNHb29BZ0FnQmlBSWFpZ0NBRWNOQXlBRUlBTkJBV29pQTBjTkFBc01BUXNnQUNnQ0ZDQUJLQUlVUncwQkN5QUZCRUFnQUNnQ1FDQUJLQUpBUncwQklBQW9Ba1FnQVNnQ1JFY05BU0FBS0FKSUlBRW9Ba2hIRFFFZ0FDZ0NUQ0FCS0FKTVJ3MEJDMEVBSVFJTElBSUwvd2tCQm44akFFRVFheUlFSkFBZ0FVRUFRZHdBRUFjaEF3SkFJQUJCQ0JBRElnRkJmMFlFUUVFQklRRU1BUXNnQXlBQk5nSUFJQUJCQVJBREdpQUFRUUVRQXhvZ0FFRUJFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUZFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUlFQU1pQVVGL1JnUkFRUUVoQVF3QkN5QURJQUUyQWdRZ0FDQURRUWhxRUFJaUFRMEFJQU1vQWdoQkgwc0VRRUVCSVFFTUFRc2dBQ0FFUVF4cUVBSWlBUTBBUVFFaEFTQUVLQUlNSWdKQkRFc05BQ0FEUVFFZ0FrRUVhblEyQWd3Z0FDQUVRUXhxRUFJaUFRMEFRUUVoQVNBRUtBSU1JZ0pCQWtzTkFDQURJQUkyQWhBQ1FDQUNRUUZMRFFBZ0FrRUJhd1JBSUFBZ0JFRU1haEFDSWdFTkFrRUJJUUVnQkNnQ0RDSUNRUXhMRFFJZ0EwRUJJQUpCQkdwME5nSVVEQUVMSUFCQkFSQURJZ0pCZjBZTkFTQURJQUpCQVVZMkFoZ2dBQ0FEUVJ4cUVBVWlBUTBCSUFBZ0EwRWdhaEFGSWdFTkFTQUFJQU5CSkdvUUFpSUJEUUZCQVNFQklBTW9BaVFpQWtIL0FVc05BU0FDQkVBZ0F5QUNRUUowRUFvaUFUWUNLQ0FCUlFSQVFmLy9BeUVCREFNTElBQWdBUkFGSWdFTkFrRUJJUUlEUUNBQ0lBTW9BaVJQRFFJZ0FrRUNkQ0VCSUFKQkFXb2hBaUFBSUFFZ0F5Z0NLR29RQlNJQlJRMEFDd3dDQ3lBRFFRQTJBaWdMSUFBZ0EwRXNhaEFDSWdFTkFFRUJJUUVnQXlnQ0xFRVFTdzBBSUFCQkFSQURJZ0pCZjBZTkFDQURJQUpCQVVZMkFqQWdBQ0FFUVF4cUVBSWlBUTBBSUFNZ0JDZ0NERUVCYWpZQ05DQUFJQVJCREdvUUFpSUJEUUJCQVNFQklBTWdCQ2dDREVFQmFqWUNPQ0FBUVFFUUEwRUJha0VDU1EwQUlBQkJBUkFEUVg5R0RRQWdBRUVCRUFNaUFrRi9SZzBBSUFNZ0FrRUJSaUlCTmdJOEFrQWdBVVVFUUNBREtBSTRJUVVnQXlnQ05DRUdEQUVMSUFBZ0EwRkFheEFDSWdFTkFTQUFJQU5CeEFCcUVBSWlBUTBCSUFBZ0EwSElBR29RQWlJQkRRRWdBQ0FEUWN3QWFoQUNJZ0VOQVVFQklRRWdBeWdDUUNBREtBSkVRWDl6SUFNb0FqUWlCa0VEZEdwS0RRRWdBeWdDU0NBREtBSk1RWDl6SUFNb0FqZ2lCVUVEZEdwS0RRRUxBa0FDUUFKQUFrQWdBeWdDQkVGMmFpSUhRU2xMRFFCQjR3QWhBVUdBcEFraEFnSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQjBFQmF3NHBBQUVCQ3dzTEN3c0xBUUlEQ3dzTEN3c0xDd01FQlFzTEN3c0xDd3NHQmdjTEN3c0xDd3NMQ0FrS0MwR01BeUVCUVlDTUZTRUNEQWtMUVl3RElRRkJnTmczSVFJTUNBdEJtQVloQVVHQXNPOEFJUUlNQnd0QjFBd2hBVUdBN0wwQklRSU1CZ3RCa0J3aEFVR0E4S1VESVFJTUJRdEJnQ2doQVVHQWdPQURJUUlNQkF0QmdNQUFJUUZCZ0lDQUJpRUNEQU1MUVlERUFDRUJRWUNBc0FZaEFnd0NDMEhBckFFaEFVR0F3SnNVSVFJTUFRdEJnS0FDSVFGQmdJRGdJU0VDQ3lBQklBVWdCbXdpQVU4TkFRc2dCRUgvLy8vL0J6WUNEQ0FES0FJc0lRSU1BUXNnQkNBQ0lBRkJnQU5zYmlJQlFSQWdBVUVRU1JzaUFUWUNEQ0FES0FJc0lnSWdBVTBOQVFzZ0JDQUNOZ0lNSUFJaEFRc2dBeUFCTmdKWVFRRWhBU0FBUVFFUUF5SUNRWDlHRFFBZ0F5QUNRUUZHTmdKUUFrQWdBa0VCUncwQUlBTkJ1QWNRQ2lJQk5nSlVJQUZGQkVCQi8vOERJUUVNQWdzZ0FDQUJFQ3dpQVEwQklBTW9BbFFpQWlnQ21BZEZEUUJCQVNFQklBSW9BckFISUFJb0FyUUhJZ0pMRFFFZ0FpQURLQUlzU1EwQklBSWdBeWdDV0VzTkFTQURJQUpCQVNBQ0d6WUNXQXNnQUJBZlFRQWhBUXNnQkVFUWFpUUFJQUVMalFRQkRuOGdBUUovQWtBZ0FDOEJJQ0lIRFFBZ0FDOEJIQTBBUVFBTUFRdEJBZ3MyQWlBZ0FRSi9Ba0FnQUM4QklpSUNEUUFnQUM4QkhnMEFRUUFNQVF0QkFnczJBaWdnQVFKL0FrQWdBQzhCS0NJRERRQWdBQzhCSkEwQVFRQU1BUXRCQWdzMkFqQWdBUUovQWtBZ0FDOEJLaUlJRFFBZ0FDOEJKZzBBUVFBTUFRdEJBZ3MyQWpnZ0FTQUhJQUF2QVN3aUNYSkJBRWRCQVhRMkFrQWdBU0FDSUFBdkFTNGlCSEpCQUVkQkFYUTJBa2dnQVNBRElBQXZBVFFpQlhKQkFFZEJBWFEyQWxBZ0FTQUlJQUF2QVRZaUNuSkJBRWRCQVhRMkFsZ2dBU0FBTHdFd0lnMGdDWEpCQUVkQkFYUTJBbUFnQVNBQUx3RXlJZ3NnQkhKQkFFZEJBWFEyQW1nZ0FTQUFMd0U0SWd3Z0JYSkJBRWRCQVhRMkFuQWdBU0FBTHdFNklnNGdDbkpCQUVkQkFYUTJBbmhCQWlFR0lBRWdBQzhCSGlJUEJIOUJBZ1VnQUM4QkhFRUFSMEVCZEFzMkFnd2dBU0FQSUFBdkFTUWlCbkpCQUVkQkFYUTJBaFFnQUM4QkppRUFJQUVnRENBT2NrRUFSMEVCZERZQ2ZDQUJJQXNnREhKQkFFZEJBWFEyQW5RZ0FTQUxJQTF5UVFCSFFRRjBOZ0pzSUFFZ0JTQUtja0VBUjBFQmREWUNYQ0FCSUFRZ0JYSkJBRWRCQVhRMkFsUWdBU0FFSUFseVFRQkhRUUYwTmdKTUlBRWdBeUFJY2tFQVIwRUJkRFlDUENBQklBSWdBM0pCQUVkQkFYUTJBalFnQVNBQ0lBZHlRUUJIUVFGME5nSXNJQUVnQUNBR2NrRUFSMEVCZERZQ0hBdk1CZ0VMZnlNQVFZQU9heUlPSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0NHb2dCRXNOQUNBSFFRVnFJZ29nQTJvZ0JVc05BQ0FFSVFnZ0F5RUpEQUVMSUFBZ0RrSEFDbW9nQWlBRElBUWdCU0FJSUFkQkJXb2lDaUFJRUF3Z0RrSEFDbW9oQUVFQUlRSUxBa0FnQ2tVTkFDQUdRUUoySWhCRkRRQWdDQ0FHYXlFUklBQWdDQ0FKYkNBQ2FtcEJCV29oQWlBT0lRQURRQ0FDUVg5cUxRQUFJUWdnQWtGK2FpMEFBQ0VESUFKQmZXb3RBQUFoQlNBQ1FYeHFMUUFBSVFRZ0FrRjdhaTBBQUNFTUlCQWhEUU5BSUFBZ0FpMEFBQ0lKSUF3Z0JDQUlhaUlMYXlBRElBVnFRUlJzYWlBTFFRSjBhMm8yQWdBZ0FDQUNMUUFCSWdzZ0F5QUlha0VVYkNBRWFpQUZJQWxxSWdScklBUkJBblJyYWpZQ0JDQUFJQUl0QUFJaUR5QUlJQWxxUVJSc0lBVnFJQU1nQzJvaUJHc2dCRUVDZEd0cU5nSUlJQUFnQWkwQUF5SVNJQWtnQzJwQkZHd2dBMm9nQ0NBUGFpSURheUFEUVFKMGEybzJBZ3dnQUVFUWFpRUFJQUpCQkdvaEFpQUlJUXdnQ1NFRUlBc2hCU0FQSVFNZ0VpRUlJQTFCZjJvaURRMEFDeUFDSUJGcUlRSWdDa0YvYWlJS0RRQUxDd0pBSUFkQkFuWWlCMFVOQUNBR1JRMEFRY0FBSUFacklROGdEaUFHUVFKMGFpSUlJQVpCRkd4cUlRSkJBQ0FHYXlJUVFRTjBJUklnQmtFRGRDRUpJQVpCQTJ4QkFuUWhDd05BSUFZaEJBTkFJQUVnQ0NBSmFpZ0NBQ0lBSUFJZ0NXb29BZ0FnQWlBR1FRSjBJZzFxS0FJQUlnb2dBaUFTYWlnQ0FDSURhaUlGYXlBRlFRSjBhMm9nQWlnQ0FDSU1JQUlnRUVFQ2RDSVJhaWdDQUNJRmFrRVViR3BCZ0FScVFRcDFRYkF1YWkwQUFEb0FNQ0FCSUFnZ0RXb29BZ0FpRFNBS0lBTWdCV3BCRkd4cUlBQWdER29pQ21zZ0NrRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQTZBQ0FnQVNBSUtBSUFJZ29nRENBQUlBTnFRUlJzYWlBRklBMXFJZ3hySUF4QkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQU9nQVFJQUVnQ0NBUmFpZ0NBQ0FGSUFBZ0RXcEJGR3hxSUFNZ0Ntb2lBR3NnQUVFQ2RHdHFRWUFFYWtFS2RVR3dMbW90QUFBNkFBQWdDRUVFYWlFSUlBRkJBV29oQVNBQ1FRUnFJUUlnQkVGL2FpSUVEUUFMSUFFZ0Qyb2hBU0FDSUF0cUlRSWdDQ0FMYWlFSUlBZEJmMm9pQncwQUN3c2dEa0dBRG1va0FBdmxBd0VKZnlNQVFjQURheUlLSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0F5QUhhaUFGU3cwQUlBTkJBRWdOQUNBQ0lBaHFJQVJMRFFBZ0JDRUlJQU1oQ1F3QkN5QUFJQW9nQWlBRElBUWdCU0FJSUFjZ0NCQU1JQW9oQUVFQUlRSUxBa0FnQjBVTkFDQUdRUUoySWcxRkRRQkJFQ0FHYXlFT0lBZ2dCbXNoRHlBQUlBZ2dDV3dnQW1wcVFRVnFJUUlEUUNBQ1FYOXFMUUFBSVFnZ0FrRithaTBBQUNFR0lBSkJmV290QUFBaEFDQUNRWHhxTFFBQUlRVWdBa0Y3YWkwQUFDRUpJQTBoQ3dOQUlBRWdBaTBBQUNJRElBa2dCU0FJYWlJRWF5QUFJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FBSUFFZ0FpMEFBU0lFSUFVZ0JpQUlha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQU9nQUJJQUVnQWkwQUFpSU1JQUFnQXlBSWFrRVViR29nQkNBR2FpSUFheUFBUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBT2dBQ0lBRWdBaTBBQXlJUUlBWWdBeUFFYWtFVWJHb2dDQ0FNYWlJQWF5QUFRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FESUFGQkJHb2hBU0FDUVFScUlRSWdDQ0VKSUFNaEJTQUVJUUFnRENFR0lCQWhDQ0FMUVg5cUlnc05BQXNnQVNBT2FpRUJJQUlnRDJvaEFpQUhRWDlxSWdjTkFBc0xJQXBCd0FOcUpBQUw5UU1CQzM4akFFSEFBMnNpQ3lRQUFrQUNRQ0FDUVFCSURRQWdBMEVBU0EwQUlBSWdCbW9nQkVzTkFDQURJQWRxUVFWcUlBVkxEUUFnQXlFSURBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFZZ0IwRUZhaUFHRUF3Z0N5RUFJQVloQkVFQUlRSUxBa0FnQjBFQ2RpSU1SUTBBSUFaRkRRQkJ3QUFnQm1zaEVTQUVRUUYwSVEwZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVNJQUFnQkNBSWJDQUNhbW9nQkdvaUJ5QUVRUVZzYWlFQ0EwQWdCaUVBQTBBZ0FTQUhJQTFxTFFBQUlnTWdBaUFOYWkwQUFDQUNJQVJxTFFBQUlna2dBaUFTYWkwQUFDSUZhaUlJYXlBSVFRSjBhMm9nQWkwQUFDSUtJQUlnRDJvdEFBQWlDR3BCRkd4cVFSQnFRUVYxUWJBdWFpMEFBRG9BTUNBQklBUWdCMm90QUFBaUVDQUpJQVVnQ0dwQkZHeHFJQU1nQ21vaUNXc2dDVUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBRG9BSUNBQklBY3RBQUFpQ1NBS0lBTWdCV3BCRkd4cUlBZ2dFR29pQ21zZ0NrRUNkR3RxUVJCcVFRVjFRYkF1YWkwQUFEb0FFQ0FCSUFjZ0Qyb3RBQUFnQ0NBRElCQnFRUlJzYWlBRklBbHFJZ05ySUFOQkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBQWdCMEVCYWlFSElBRkJBV29oQVNBQ1FRRnFJUUlnQUVGL2FpSUFEUUFMSUFFZ0VXb2hBU0FDSUE1cUlRSWdCeUFPYWlFSElBeEJmMm9pREEwQUN3c2dDMEhBQTJva0FBdXFCZ0VOZnlNQVFiQUJheUlSSkFBZ0NFRUJhaUVLQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0Ntb2dCRXNOQUNBRElBbHFRUUZxSUFWTERRQWdCU0VNSUFRaENpQURJUThNQVFzZ0FDQVJJQUlnQXlBRUlBVWdDaUFKUVFGcUlnd2dDaEFNSUFBZ0JDQUZiR29nRVNBS0lBeHNhaUFDSUFNZ0JDQUZJQW9nRENBS0VBd2dFU0VBUVFBaEFnc0NRQ0FKUVFGMklnVkZEUUFnQ0VFQmRpSUVSUTBBUVJBZ0NHc2hFMEVJSUFkcklRdEJDQ0FHYXlFTklBcEJBWFFpRGlBSWF5RVVJQUFnQW1vaUZpQUtJQTlzYWlFQ0lBRWhBQ0FGSVJVRFFDQUNJQTVxTFFBQUlBZHNJQXNnQWlBS2FpMEFBQ0lEYkdvaENDQURJQWRzSUFzZ0FpMEFBR3hxSVFrZ0JDRURBMEFnQWtFQmFpSVFJQTVxTFFBQUlSSWdBQ0FKSUExc0lBb2dFR290QUFBaUNTQUhiQ0FMSUFJdEFBRnNhaUlRSUFac2FrRWdha0VHZGpvQUFDQUFJQWdnRFd3Z0J5QVNiQ0FKSUF0c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ0NBQ0xRQUNJUWtnQWtFQ2FpSUNJQTVxTFFBQUlSSWdBQ0FOSUJCc0lBSWdDbW90QUFBaUVDQUhiQ0FKSUF0c2FpSUpJQVpzYWtFZ2FrRUdkam9BQVNBQUlBZ2dEV3dnQnlBU2JDQUxJQkJzYWlJSUlBWnNha0VnYWtFR2Rqb0FDU0FBUVFKcUlRQWdBMEYvYWlJRERRQUxJQUlnRkdvaEFpQUFJQk5xSVFBZ0ZVRi9haUlWRFFBTElBRkJRR3NoQUNBV0lBd2dEMm9nQ214cUlRSURRQ0FDSUE1cUxRQUFJQWRzSUFzZ0FpQUthaTBBQUNJQmJHb2hDQ0FCSUFkc0lBc2dBaTBBQUd4cUlRa2dCQ0VEQTBBZ0FrRUJhaUlCSUE1cUxRQUFJUXdnQUNBSklBMXNJQUVnQ21vdEFBQWlBU0FIYkNBTElBSXRBQUZzYWlJSklBWnNha0VnYWtFR2Rqb0FBQ0FBSUFnZ0RXd2dCeUFNYkNBQklBdHNhaUlCSUFac2FrRWdha0VHZGpvQUNDQUNMUUFDSVFnZ0FrRUNhaUlDSUE1cUxRQUFJUXdnQUNBSklBMXNJQUlnQ21vdEFBQWlEeUFIYkNBSUlBdHNhaUlKSUFac2FrRWdha0VHZGpvQUFTQUFJQUVnRFd3Z0J5QU1iQ0FMSUE5c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ1NBQVFRSnFJUUFnQTBGL2FpSUREUUFMSUFJZ0ZHb2hBaUFBSUJOcUlRQWdCVUYvYWlJRkRRQUxDeUFSUWJBQmFpUUFDLzlFQVVGL0l3QkJzQUZySWdNa0FDQUFLQUlJSWdRRVFDQUFLQUlFSWg5QkEzUWhGaUFFSUI5c0lnUkJCblFoT3lBRVFRaDBJVHdnSDBFR2RDRTlJQjlCTUd3aFBpQWZRUVYwSVNVZ0gwRlFiQ0VyUVFBZ0gwRUVkQ0lhYXlJb1FRSjBJVDhnS0VFQmRDRXNJQU5CR0dvaElpQURRUXh5SVNNRFFBSkFJQUVvQWdnaUNVRUJSZzBBQWtBQ1FBSkFBa0FnQVNnQ3lBRWlBa1VFUUVFQklRWU1BUXRCQlNFR0lBbEJBa2NOQUVFRlFRRWdBU2dDQkNJSklBSW9BZ1JHR3lFR0lBRW9Bc3dCSWdRTkFVRUFJUVFNQXdzZ0FTZ0N6QUVpQkVVRVFFRUFJUVFNQXdzZ0NVRUNSdzBCSUFFb0FnUWhDUXNnQ1NBRUtBSUVSdzBCQ3lBR1FRSnlJUVlMQW44Z0JrRUNjU0l0QkVBQ1FDQUJLQUlBUVFWTkJFQWdCQ2dDQUVFR1NRMEJDeUFEUVFRMkFrQWdBMEVFTmdKSUlBTkJCRFlDT0NBRFFRUTJBakJCQVF3Q0MwRUNJUTlCQWlFSkFrQWdBUzhCSEEwQUlBUXZBVEFOQUVFQklRa2dBU2dDZENBRUtBSjhSdzBBSUFFdUFZUUJJQVF1QWF3QmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBRUxnR3VBV3NpQ1NBSlFSOTFJZ2xxSUFselFRTkxJUWtMSUFNZ0NUWUNNQUpBSUFFdkFSNE5BQ0FFTHdFeURRQkJBU0VQSUFFb0FuUWdCQ2dDZkVjTkFDQUJMZ0dJQVNBRUxnR3dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmlnRWdCQzRCc2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWpoQkFpRUZRUUloQ2dKQUlBRXZBU1FOQUNBRUx3RTREUUJCQVNFS0lBRW9BbmdnQkNnQ2dBRkhEUUFnQVM0QmxBRWdCQzRCdkFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBWllCSUFRdUFiNEJheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSkFBa0FnQVM4QkpnMEFJQVF2QVRvTkFFRUJJUVVnQVNnQ2VDQUVLQUtBQVVjTkFDQUJMZ0dZQVNBRUxnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0Qm1nRWdCQzRCd2dGcklnUWdCRUVmZFNJRWFpQUVjMEVEU3lFRkN5QURJQVUyQWtnZ0NTQVBjaUFLY2lBRmNrRUFSd3dCQ3lBRFFRQTJBa0FnQTBFQU5nSklJQU5CQURZQ09DQURRUUEyQWpCQkFBc2hDUUpBQWtBQ1FBSkFJQVpCQkhFaUxnUkFBa0FnQVNnQ0FDSUdRUVZOQkVBZ0FpZ0NBRUVHU1EwQkN5QURRUVEyQW5RZ0EwRUVOZ0tVQVNBRFFRUTJBbFFnQTBFRU5nSTBRUUVoQ1F3Q0MwRUNJUTlCQWlFRUFrQWdBUzhCSEEwQUlBSXZBU1lOQUVFQklRUWdBU2dDZENBQ0tBSjRSdzBBSUFFdUFZUUJJQUl1QVpnQmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBQ0xnR2FBV3NpQkNBRVFSOTFJZ1JxSUFSelFRTkxJUVFMSUFNZ0JEWUNOQUpBSUFFdkFTQU5BQ0FDTHdFcURRQkJBU0VQSUFFb0FuUWdBaWdDZUVjTkFDQUJMZ0dNQVNBQ0xnR2dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmpnRWdBaTRCb2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWxSQkFpRUZRUUloQ2dKQUlBRXZBU3dOQUNBQ0x3RTJEUUJCQVNFS0lBRW9BbndnQWlnQ2dBRkhEUUFnQVM0QnBBRWdBaTRCdUFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBYVlCSUFJdUFib0JheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSjBBa0FnQVM4Qk1BMEFJQUl2QVRvTkFFRUJJUVVnQVNnQ2ZDQUNLQUtBQVVjTkFDQUJMZ0dzQVNBQ0xnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0QnJnRWdBaTRCd2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFRkN5QURJQVUyQXBRQklBbEZEUUpCQVNFSkRBTUxJQU5CQURZQ2RDQURRUUEyQXBRQklBTkJBRFlDVkNBRFFRQTJBalFnQVNnQ0FDRUdDeUFHUVFaSkRRRWdBMEVETmdLZ0FTQURRb09BZ0lBd053S2tBU0FEUVFNMkFwQUJJQU5CQXpZQ2NDQURRUU0yQXF3QklBTkNnNENBZ0RBM0E1Z0JJQU5DZzRDQWdEQTNBNGdCSUFOQ2c0Q0FnREEzQTRBQklBTkNnNENBZ0RBM0EzZ2dBMEtEZ0lDQU1EY0RhQ0FEUW9PQWdJQXdOd05nSUFOQ2c0Q0FnREEzQTFnZ0EwS0RnSUNBTURjQ1RDQURRUU0yQWtRZ0EwRUROZ0k4REFJTElBUWdEM0lnQ25JZ0JYSkJBRWNoQ1FzQ1FBSi9JQVpCQTAwRVFDQUdRUUowUVl3MWFpZ0NBQXdCQzBFRUMwRUJSZ1JBSUFFZ0EwRXdhaEJFSUFNb0Fxd0JJUWNnQXlnQ3BBRWhEaUFES0FLY0FTRVFJQU1vQW93QklSa2dBeWdDaEFFaEJpQURLQUo4SVJjZ0F5Z0NiQ0VJSUFNb0FtUWhCQ0FES0FKY0lSUWdBeWdDVENFTUlBTW9Ba1FoQWlBREtBSThJUkVnQXlnQ3FBRWhIQ0FES0FLZ0FTRW1JQU1vQXBnQklRMGdBeWdDa0FFaEhTQURLQUtJQVNFU0lBTW9Bb0FCSVJVZ0F5Z0NlQ0ViSUFNb0FuQWhFeUFES0FKb0lRb2dBeWdDWUNFUElBTW9BbGdoQlNBREtBSlFJU2NNQVFzZ0F3Si9Ba0FnQXdKL0FrQUNRQ0FCS0FJQVFYNXFJZ1JCQVUwRVFDQUVRUUZyQkVBZ0F3Si9Ba0FnQVM4QklDSUVEUUFnQVM4QkhBMEFRUUFNQVF0QkFnc2lKellDVUNBREFuOENRQ0FCTHdFaUlnY05BQ0FCTHdFZURRQkJBQXdCQzBFQ0N5SUZOZ0pZSUFNQ2Z3SkFJQUV2QVNnaUJnMEFJQUV2QVNRTkFFRUFEQUVMUVFJTElnODJBbUFnQXdKL0FrQWdBUzhCS2lJT0RRQWdBUzhCSmcwQVFRQU1BUXRCQWdzaUNqWUNhQ0FEQW44Q1FDQUJMd0V3SWg0TkFDQUJMd0VzRFFCQkFBd0JDMEVDQ3lJZE5nS1FBU0FEQW44Q1FDQUJMd0V5SWhBTkFDQUJMd0V1RFFCQkFBd0JDMEVDQ3lJTk5nS1lBU0FEQW44Q1FDQUJMd0U0SWdzTkFDQUJMd0UwRFFCQkFBd0JDMEVDQ3lJbU5nS2dBU0FEQW44Q1FDQUJMd0U2SWhnTkFDQUJMd0UyRFFCQkFBd0JDMEVDQ3lJY05nS29BVUVDSVJ0QkFpRVRBa0FnQkNBQkx3RXNJaGR5RFFCQkFTRVRJQUV1QWFRQklBRXVBWXdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQkxnR21BU0FCTGdHT0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdBU2dDZkNBQktBSjBSeUVUQ3lBRElCTTJBbkFDUUNBSElBRXZBUzRpSUhJTkFFRUJJUnNnQVM0QnFBRWdBUzRCa0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRXVBYW9CSUFFdUFaSUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FCS0FKOElBRW9BblJISVJzTElBTWdHellDZUVFQ0lSSkJBaUVWQWtBZ0JpQUJMd0UwSWhseURRQkJBU0VWSUFFdUFiUUJJQUV1QVp3QmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJMZ0cyQVNBQkxnR2VBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEZRc2dBeUFWTmdLQUFRSkFJQTRnQVM4Qk5pSWhjZzBBUVFFaEVpQUJMZ0c0QVNBQkxnR2dBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVM0QnVnRWdBUzRCb2dGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9Bb0FCSUFFb0FuaEhJUklMSUFNZ0VqWUNpQUVnQVM4QkhnMENJQUV2QVJ3RVFFRUNJUkVnQTBFQ05nSThJQUV2QVNRaUNBMEdRUUFoREVFQURBY0xRUUFoRVNBRFFRQTJBanhCQUNFTVFRQWdBUzhCSkNJSVJRMEdHZ3dGQ3lBREFuOENRQ0FCTHdFZ0lnSU5BQ0FCTHdFY0RRQkJBQXdCQzBFQ0N5SW5OZ0pRSUFNQ2Z3SkFJQUV2QVNJaUJnMEFJQUV2QVI0TkFFRUFEQUVMUVFJTElnVTJBbGdnQXdKL0FrQWdBUzhCS0NJT0RRQWdBUzhCSkEwQVFRQU1BUXRCQWdzaUR6WUNZQ0FEQW44Q1FDQUJMd0VxSWdnTkFDQUJMd0VtRFFCQkFBd0JDMEVDQ3lJS05nSm9JQU1nQWlBQkx3RXNJaGR5UVFCSFFRRjBJaE0yQW5BZ0F5QUdJQUV2QVM0aUMzSkJBRWRCQVhRaUd6WUNlQ0FESUE0Z0FTOEJOQ0llY2tFQVIwRUJkQ0lWTmdLQUFTQURJQWdnQVM4Qk5pSVpja0VBUjBFQmRDSVNOZ0tJQVNBRElBRXZBVEFpRUNBWGNrRUFSMEVCZENJZE5nS1FBU0FESUFFdkFUSWlJQ0FMY2tFQVIwRUJkQ0lOTmdLWUFTQURJQUV2QVRnaUlTQWVja0VBUjBFQmRDSW1OZ0tnQVNBRElBRXZBVG9pQnlBWmNrRUFSMEVCZENJY05nS29BU0FEQW44Q1FDQUJMd0VlSWlRTkFDQUJMd0VjRFFCQkFBd0JDMEVDQ3lJUk5nSThJQUV2QVNZRVFDQUJMd0VrSVJnTUF3c2dBUzhCSkNJWURRSkJBQ0VZUVFBTUF3c2dBUzRCaGdFaEZDQUJMZ0dPQVNFRVFRSWhCU0FEQW45QkFpQUJMd0VjSWhFZ0FTOEJJQ0l2Y2cwQUdrRUJJQUV1QVl3QklBRXVBWVFCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUJvZ0JDQVVheUlHSUFaQkgzVWlCbW9nQm5OQkEwc0xJaWMyQWxBZ0FTNEJpZ0VoQ0NBQkxnR1NBU0VHQWtBZ0FTOEJIaUl3SUFFdkFTSWlFSElOQUVFQklRVWdBUzRCa0FFZ0FTNEJpQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUFZZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6UVFOTElRVUxJQU1nQlRZQ1dDQUJMZ0dXQVNFTUlBRXVBWjRCSVFkQkFpRUtJQU1DZjBFQ0lBRXZBU1FpTVNBQkx3RW9JaGR5RFFBYVFRRWdBUzRCbkFFZ0FTNEJsQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBR2lBSElBeHJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3c2lEellDWUNBQkxnR2FBU0V5SUFFdUFhSUJJUXNDUUNBQkx3RW1Ja0FnQVM4QktpSXpjZzBBUVFFaENpQUJMZ0dnQVNBQkxnR1lBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQ3lBeWF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzaENnc2dBeUFLTmdKb0lBRXVBYVlCSVI1QkFpRWJRUUloRXdKQUlDOGdBUzhCTENJMGNnMEFRUUVoRXlBQkxnR2tBU0FCTGdHTUFXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdIaUFFYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQktBSjhJQUVvQW5SSElSTUxJQU1nRXpZQ2NDQUJMZ0dxQVNFT0FrQWdFQ0FCTHdFdUloaHlEUUJCQVNFYklBRXVBYWdCSUFFdUFaQUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FPSUFacklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9BbndnQVNnQ2RFY2hHd3NnQXlBYk5nSjRJQUV1QWJZQklSbEJBaUVTUVFJaEZRSkFJQmNnQVM4Qk5DSWdjZzBBUVFFaEZTQUJMZ0cwQVNBQkxnR2NBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnR1NBSGF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJLQUtBQVNBQktBSjRSeUVWQ3lBRElCVTJBb0FCSUFFdUFib0JJU0VDUUNBeklBRXZBVFlpTlhJTkFFRUJJUklnQVM0QnVBRWdBUzRCb0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlDRWdDMnNpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEVnc2dBeUFTTmdLSUFTQUJMZ0d1QVNFMlFRSWhEU0FEQW45QkFpQTBJQUV2QVRBaVFYSU5BQnBCQVNBQkxnR3NBU0FCTGdHa0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWFJRFlnSG1zaUFpQUNRUjkxSWdKcUlBSnpRUU5MQ3lJZE5nS1FBU0FCTGdHeUFTRWtBa0FnR0NBQkx3RXlJamR5RFFCQkFTRU5JQUV1QWJBQklBRXVBYWdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBa0lBNXJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN5RU5DeUFESUEwMkFwZ0JJQUV1QWI0QklTbEJBaUVjSUFNQ2YwRUNJQ0FnQVM4Qk9DSTRjZzBBR2tFQklBRXVBYndCSUFFdUFiUUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQm9nS1NBWmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTElpWTJBcUFCSUFFdUFjSUJJVGtDUUNBMUlBRXZBVG9pUW5JTkFFRUJJUndnQVM0QndBRWdBUzRCdUFGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlEa2dJV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxJUndMSUFNZ0hEWUNxQUZCQWlFQ0lBTUNmMEVDSUJFZ01ISU5BQnBCQVNBQkxnR0lBU0FCTGdHRUFXc2lFU0FSUVI5MUloRnFJQkZ6UVFOTERRQWFJQWdnRkdzaUZDQVVRUjkxSWhScUlCUnpRUU5MQ3lJUk5nSThBa0FnTUNBeGNnMEFRUUVoQWlBQkxnR1VBU0FCTGdHSUFXc2lGQ0FVUVI5MUloUnFJQlJ6UVFOTERRQWdEQ0FJYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBQktBSjRJQUVvQW5SSElRSUxJQU1nQWpZQ1JFRUNJUlFnQXdKL1FRSWdNU0JBY2cwQUdrRUJJQUV1QVpnQklBRXVBWlFCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUJvZ01pQU1heUlJSUFoQkgzVWlDR29nQ0hOQkEwc0xJZ3cyQWt3Q1FDQVFJQzl5RFFCQkFTRVVJQUV1QVpBQklBRXVBWXdCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBR0lBUnJJZ1FnQkVFZmRTSUVhaUFFYzBFRFN5RVVDeUFESUJRMkFseEJBaUVJUVFJaEJBSkFJQkFnRjNJTkFFRUJJUVFnQVM0Qm5BRWdBUzRCa0FGckloQWdFRUVmZFNJUWFpQVFjMEVEU3cwQUlBY2dCbXNpQmlBR1FSOTFJZ1pxSUFaelFRTkxEUUFnQVNnQ2VDQUJLQUowUnlFRUN5QURJQVEyQW1RQ1FDQVhJRE55RFFCQkFTRUlJQUV1QWFBQklBRXVBWndCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUNBTElBZHJJZ1lnQmtFZmRTSUdhaUFHYzBFRFN5RUlDeUFESUFnMkFteEJBaUVHSUFNQ2YwRUNJQmdnTkhJTkFCcEJBU0FCTGdHb0FTQUJMZ0drQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBYUlBNGdIbXNpQnlBSFFSOTFJZ2RxSUFkelFRTkxDeUlYTmdKOEFrQWdHQ0FnY2cwQVFRRWhCaUFCTGdHMEFTQUJMZ0dvQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBZ0dTQU9heUlISUFkQkgzVWlCMm9nQjNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQlFRSWhFQ0FEQW45QkFpQWdJRFZ5RFFBYVFRRWdBUzRCdUFFZ0FTNEJ0QUZySWdjZ0IwRWZkU0lIYWlBSGMwRURTdzBBR2lBaElCbHJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN3c2lHVFlDakFFQ1FDQTNJRUZ5RFFCQkFTRVFJQUV1QWJBQklBRXVBYXdCYXlJSElBZEJIM1VpQjJvZ0IzTkJBMHNOQUNBa0lEWnJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN5RVFDeUFESUJBMkFwd0JRUUloQjBFQ0lRNENRQ0EzSURoeURRQkJBU0VPSUFFdUFid0JJQUV1QWJBQmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQXBJQ1JySWdzZ0MwRWZkU0lMYWlBTGMwRURTdzBBSUFFb0FvQUJJQUVvQW54SElRNExJQU1nRGpZQ3BBRUNRQ0E0SUVKeURRQkJBU0VISUFFdUFjQUJJQUV1QWJ3QmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQTVJQ2xySWdjZ0IwRWZkU0lIYWlBSGMwRURTeUVIQ3lBRElBYzJBcXdCREFVTFFRSWhFU0FEUVFJMkFqd2dBUzhCSkNFSURBSUxRUUlMSWd3MkFreEJBaUVFSUFOQkFpQUlRUUJIUVFGMElBNGJJZ2cyQW13Z0EwRUNJQVpCQUVkQkFYUWdBaHNpRkRZQ1hDQURJQWNnSVhKQkFFZEJBWFFpQnpZQ3JBRWdBeUFRSUNCeVFRQkhRUUYwSWhBMkFwd0JJQU1nR1NBZWNrRUFSMEVCZENJWk5nS01BU0FESUFzZ0YzSkJBRWRCQVhRaUZ6WUNmRUVDSVFJQ1FDQVlJQ1J5RFFCQkFTRUNJQUV1QVpRQklBRXVBWWdCYXlJWUlCaEJIM1VpR0dvZ0dITkJBMHNOQUNBQkxnR1dBU0FCTGdHS0FXc2lHQ0FZUVI5MUloaHFJQmh6UVFOTERRQWdBU2dDZUNBQktBSjBSeUVDQ3lBRElBSTJBa1FDUUNBR0lBNXlEUUJCQVNFRUlBRXVBWndCSUFFdUFaQUJheUlHSUFaQkgzVWlCbW9nQm5OQkEwc05BQ0FCTGdHZUFTQUJMZ0dTQVdzaUJpQUdRUjkxSWdacUlBWnpRUU5MRFFBZ0FTZ0NlQ0FCS0FKMFJ5RUVDeUFESUFRMkFtUkJBaUVPUVFJaEJnSkFJQXNnSG5JTkFFRUJJUVlnQVM0QnRBRWdBUzRCcUFGcklnc2dDMEVmZFNJTGFpQUxjMEVEU3cwQUlBRXVBYllCSUFFdUFhb0JheUlMSUF0QkgzVWlDMm9nQzNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQkFrQWdJQ0FoY2cwQVFRRWhEaUFCTGdHOEFTQUJMZ0d3QVdzaUN5QUxRUjkxSWd0cUlBdHpRUU5MRFFBZ0FTNEJ2Z0VnQVM0QnNnRnJJZ3NnQzBFZmRTSUxhaUFMYzBFRFN3MEFJQUVvQW9BQklBRW9BbnhISVE0TElBTWdEallDcEFFTUFnc2dDQ0VNUVFJTElnSTJBa1FnQXlBQkx3RW1JQXhCLy84RGNYSkJBRWRCQVhRaUREWUNUQ0FEQW44Q1FDQUhSUVJBSUFRRVFFRUNJUlFnQTBFQ05nSmNJQVlOQWtFQURBTUxRUUFoRkNBRFFRQTJBbHhCQUNBR1JRMENHZ3dCQzBFQ0lSUWdBMEVDTmdKY0MwRUNDeUlFTmdKa0lBTkJBaUFPUVFCSFFRRjBJQVliSWdnMkFtd2dBd0ovQWtBZ0lFVUVRQ0FYQkVCQkFpRVhJQU5CQWpZQ2ZDQVpEUUpCQUF3REMwRUFJUmNnQTBFQU5nSjhRUUFnR1VVTkFob01BUXRCQWlFWElBTkJBallDZkF0QkFnc2lCallDaEFFZ0F5QUxJQmh5UVFCSFFRRjBJZ2MyQXF3QklBTWdDeUFRY2tFQVIwRUJkQ0lPTmdLa0FTQURRUUlnRUVFQVIwRUJkQ0FlR3lJUU5nS2NBU0FESUJrZ0lYSkJBRWRCQVhRaUdUWUNqQUVMSUFrZ0ozSWdCWElnRDNJZ0NuSWdFM0lnRzNJZ0ZYSWdFbklnSFhJZ0RYSWdKbklnSEhJZ0VYSWdBbklnREhJZ0ZISWdCSElnQ0hJZ0YzSWdCbklnR1hJZ0VISWdEbklnQjNKRkRRRUxJQUVvQWd3aENTQURJQUVvQWhBaUJTQUJLQUlVSWdScUlnWkJNeUFHUVROSUd5SUdRUUFnQmtFQVNodEIwQmRxTFFBQUlnWTJBaUFnQXlBRUlBbHFJZ0pCTXlBQ1FUTklHeUlDUVFBZ0FrRUFTaHNpQ0VHUUYyb3RBQUFpQWpZQ0hDQURJQWhCQTJ4QmtCaHFJZ2cyQWhnQ1FDQXRSUTBBSUFRZ0FTZ0N6QUVvQWhRaUIwY0VRQ0FESUFRZ0IycEJBV3BCQVhZaUJ5QUZhaUlOUVRNZ0RVRXpTQnNpRFVFQUlBMUJBRW9iUWRBWGFpMEFBRFlDQ0NBRElBY2dDV29pQjBFeklBZEJNMGdiSWdkQkFDQUhRUUJLR3lJSFFaQVhhaTBBQURZQ0JDQURJQWRCQTJ4QmtCaHFOZ0lBREFFTElBTWdCallDQ0NBRElBSTJBZ1FnQXlBSU5nSUFDd0pBSUM1RkRRQWdCQ0FCS0FMSUFTZ0NGQ0lIUndSQUlBTWdCQ0FIYWtFQmFrRUJkaUlFSUFWcUlnVkJNeUFGUVROSUd5SUZRUUFnQlVFQVNodEIwQmRxTFFBQU5nSVVJQU1nQkNBSmFpSUVRVE1nQkVFelNCc2lCRUVBSUFSQkFFb2JJZ1JCa0JkcUxRQUFOZ0lRSUFNZ0JFRURiRUdRR0dvMkFnd01BUXNnQXlBR05nSVVJQU1nQWpZQ0VDQURJQWcyQWd3TElBQW9BZ0FnSHlBNmJDSVVRUWgwYWlBcVFRUjBhaUVKUVFBaEFrRURJUVFnQTBFd2FpRUdBMEFnQmlnQ0JDSUZCRUFnQ1NBRklDTWdHaEFaQ3lBR0tBSU1JZ1VFUUNBSlFRUnFJQVVnSWlBYUVCa0xJQVlvQWhRaUJRUkFJQWxCQ0dvZ0JTQWlJQm9RR1FzZ0JpZ0NIQ0lGQkVBZ0NVRU1haUFGSUNJZ0doQVpDeUFFSVFnQ1FBSkFBa0FnQmlnQ0FDSUVJQVlvQWdnaUQwY05BQ0FFSUFZb0FoQkhEUUFnQkNBR0tBSVlSdzBBSUFSRkRRSWdBeUFDUVF4c2FpSUZLQUlJSVF3Z0JTZ0NCQ0ViSUFSQkJFa05BU0FiUVFKMlFRSnFJUkJCRUNFUElBa2hCQU5BQWtBZ0JDQW9haUlDTFFBQUlnb2dCQzBBQUNJT2F5SUZJQVZCSDNVaUJXb2dCWE1pQnlBYlR3MEFJQVFnTEdvaUVTMEFBQ0lGSUFwcklnMGdEVUVmZFNJTmFpQU5jeUFNVHcwQUlBUWdHbW9pSEMwQUFDSVNJQTVySWcwZ0RVRWZkU0lOYWlBTmN5QU1UdzBBQWtBZ0J5QVFTUVJBSUFRZ0pXb2lGeTBBQUNFVkFuOGdCQ0FyYWlJTkxRQUFJaE1nQ21zaUJ5QUhRUjkxSWdkcUlBZHpJQXhKQkVCQkF5RWRJQUlnRWlBS0lBNXFJQVZxSWdKQkFYUnFJQk5xUVFScVFRTjJPZ0FBSUJFZ0FpQVRha0VDYWtFQ2Rqb0FBQ0FDUVFScUlSRWdCQ0EvYWkwQUFDRUhJQk5CQTJ3TUFRc2dDaUFTYWlFUklBVWhCMEVDSVIwZ0FpRU5RUUlMSVFJZ0RTQUNJQkZxSUFkQkFYUnFJQjEyT2dBQUlCVWdEbXNpQWlBQ1FSOTFJZ0pxSUFKeklBeFBEUUVnQkNBRklBb2dFbW9nRG1vaUFrRUJkR29nRldwQkJHcEJBM1k2QUFBZ0hDQUNJQlZxUVFKcVFRSjJPZ0FBSUJjZ0FpQVZRUU5zYWlBRUlENXFMUUFBUVFGMGFrRUVha0VEZGpvQUFBd0NDeUFDSUFvZ0Vtb2dCVUVCZEdwQkFtcEJBblk2QUFBTElBUWdCU0FPYWlBU1FRRjBha0VDYWtFQ2Rqb0FBQXNnQkVFQmFpRUVJQTlCZjJvaUR3MEFDd3dDQ3dKL0lBUUVRQ0FKSUFRZ0F5QUNRUXhzYWlBYUVCZ2dCaWdDQ0NFUEN5QVBDd1JBSUFsQkJHb2dEeUFESUFKQkRHeHFJQm9RR0FzZ0JpZ0NFQ0lFQkVBZ0NVRUlhaUFFSUFNZ0FrRU1iR29nR2hBWUN5QUdLQUlZSWdSRkRRRWdDVUVNYWlBRUlBTWdBa0VNYkdvZ0doQVlEQUVMSUFRZ0JTZ0NBR3BCZjJvdEFBQWlBa0VCYWlFSFFRQWdBbXNoRGtFUUlROGdDU0VFQTBBQ1FDQUVJQ2hxSWhNdEFBQWlEU0FFTFFBQUlncHJJZ1VnQlVFZmRTSUZhaUFGY3lBYlR3MEFJQVFnTEdvaUVTMEFBQ0lTSUExcklnVWdCVUVmZFNJRmFpQUZjeUFNVHcwQUlBUWdHbW9pRUMwQUFDSVZJQXBySWdVZ0JVRWZkU0lGYWlBRmN5QU1UdzBBSUFJaEJTQUVJQ3RxTFFBQUlod2dEV3NpSFNBZFFSOTFJaDFxSUIxeklBeEpCRUFnRVNBU0lBNGdBaUFLSUExcVFRRnFRUUYySUJKQkFYUnJJQnhxUVFGMUlnVWdCU0FDU2hzZ0JTQU9TQnRxT2dBQUlBY2hCUXNnRXlBTkFuOGdCQ0FsYWkwQUFDSVRJQXBySWhFZ0VVRWZkU0lSYWlBUmN5QU1TUVJBSUJBZ0ZTQU9JQUlnQ2lBTmFrRUJha0VCZGlBVlFRRjBheUFUYWtFQmRTSVRJQk1nQWtvYklCTWdEa2diYWpvQUFDQUZRUUZxSVFVTFFRQWdCV3NpRXdzZ0JTQVNJQlZySUFvZ0RXdEJBblJxUVFScVFRTjFJaElnRWlBRlNoc2dFaUFUU0JzaUJXcEJzQzVxTFFBQU9nQUFJQVFnQ2lBRmEwR3dMbW90QUFBNkFBQUxJQVJCQVdvaEJDQVBRWDlxSWc4TkFBc0xJQWhCZjJvaEJDQUdRU0JxSVFZZ0NTQTlhaUVKUVFJaEFpQUlEUUFMSUFFb0Fnd2hCQ0FESUFFb0FoQWlCU0FCS0FJVUlnWWdBU2dDR0NJQ2FpSUpRVE1nQ1VFelNCc2lDVUVBSUFsQkFFb2JRUUowUWVBOWFpZ0NBQ0lKYWlJSVFUTWdDRUV6U0JzaUNFRUFJQWhCQUVvYlFkQVhhaTBBQUNJSU5nSWdJQU1nQkNBSmFpSUhRVE1nQjBFelNCc2lCMEVBSUFkQkFFb2JJZzFCa0JkcUxRQUFJZ2MyQWh3Z0F5QU5RUU5zUVpBWWFpSU5OZ0lZQWtBZ0xVVU5BQ0FHSUFFb0Fzd0JLQUlVSWd4SEJFQWdBeUFKSUFJZ0RHb2lERUV6SUF4Qk0wZ2JJZ3hCQUNBTVFRQktHMEVDZEVIZ1BXb29BZ0JxUVFGcVFRRjJJZ3dnQldvaUQwRXpJQTlCTTBnYklnOUJBQ0FQUVFCS0cwSFFGMm90QUFBMkFnZ2dBeUFFSUF4cUlneEJNeUFNUVROSUd5SU1RUUFnREVFQVNoc2lERUdRRjJvdEFBQTJBZ1FnQXlBTVFRTnNRWkFZYWpZQ0FBd0JDeUFESUFnMkFnZ2dBeUFITmdJRUlBTWdEVFlDQUFzQ1FDQXVSUTBBSUFZZ0FTZ0N5QUVvQWhRaURFY0VRQ0FESUFVZ0NTQUNJQXhxSWdaQk15QUdRVE5JR3lJR1FRQWdCa0VBU2h0QkFuUkI0RDFxS0FJQWFrRUJha0VCZGlJSmFpSUZRVE1nQlVFelNCc2lCVUVBSUFWQkFFb2JRZEFYYWkwQUFEWUNGQ0FESUFRZ0NXb2lCRUV6SUFSQk0wZ2JJZ1JCQUNBRVFRQktHeUlFUVpBWGFpMEFBRFlDRUNBRElBUkJBMnhCa0JocU5nSU1EQUVMSUFNZ0NEWUNGQ0FESUFjMkFoQWdBeUFOTmdJTUN5QUFLQUlBSUR4cUlCUkJCblJxSUNwQkEzUnFJZ2tnTzJvaEJFRUFJUW9nQTBFd2FpRUdRUUFoQWdOQUlBWW9BZ1FpQlFSQUlBa2dCU0FqSUJZUUVDQUVJQVlvQWdRZ0l5QVdFQkFMSUFZb0FpUWlCUVJBSUFrZ0dtb2dCU0FqSUJZUUVDQUVJQnBxSUFZb0FpUWdJeUFXRUJBTElBWW9BaFFpQlFSQUlBbEJCR29nQlNBaUlCWVFFQ0FFUVFScUlBWW9BaFFnSWlBV0VCQUxJQVlvQWpRaUJRUkFJQWtnR21wQkJHb2dCU0FpSUJZUUVDQUVJQnBxUVFScUlBWW9BalFnSWlBV0VCQUxJQUloQlFKQUFrQWdCaWdDQUNJQ0lBWW9BZ2dpRDBjTkFDQUNJQVlvQWhCSERRQWdBaUFHS0FJWVJ3MEFJQUpGRFFFZ0NTQUNJQU1nQ2tFTWJHb2lBaUFXRUNzZ0JDQUdLQUlBSUFJZ0ZoQXJEQUVMQW44Z0FnUkFJQWtnQWlBRElBcEJER3hxSWdJZ0ZoQVNJQVFnQmlnQ0FDQUNJQllRRWlBR0tBSUlJUThMSUE4TEJFQWdDVUVDYWlBUElBTWdDa0VNYkdvaUFpQVdFQklnQkVFQ2FpQUdLQUlJSUFJZ0ZoQVNDeUFHS0FJUUlnSUVRQ0FKUVFScUlBSWdBeUFLUVF4c2FpSUNJQllRRWlBRVFRUnFJQVlvQWhBZ0FpQVdFQklMSUFZb0FoZ2lBa1VOQUNBSlFRWnFJQUlnQXlBS1FReHNhaUlDSUJZUUVpQUVRUVpxSUFZb0FoZ2dBaUFXRUJJTElBUWdKV29oQkNBSklDVnFJUWtnQmtGQWF5RUdRUUVoQWtFQ0lRb2dCVVVOQUFzTFFRQWdLa0VCYWlJRUlBUWdIMFlpQkJzaEtpQUJRZGdCYWlFQklBUWdPbW9pT2lBQUtBSUlTUTBBQ3dzZ0EwR3dBV29rQUF1Q0JRRUtmeU1BUVpBQmF5SUxKQUFDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSGFpQUVTdzBBSUFNZ0NHcEJBV29nQlVzTkFDQUZJUXdnQXlFT0RBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFjZ0NFRUJhaUlNSUFjUURDQUFJQVFnQld4cUlBc2dCeUFNYkdvZ0FpQURJQVFnQlNBSElBd2dCeEFNSUFzaEFDQUhJUVJCQUNFQ0N3SkFJQWhCQVhZaUJVVU5BQ0FIUVFGMklnTkZEUUJCRUNBSGF5RVFRUWdnQm1zaENTQUVRUUYwSWcwZ0Iyc2hFU0FBSUFKcUloSWdCQ0FPYkdvaEJ5QUJJUUlnQlNFSUEwQWdBeUVBQTBBZ0J5QU5haTBBQUNFS0lBSWdDU0FITFFBQWJDQUVJQWRxTFFBQUlnOGdCbXhxUVFOMFFTQnFRUVoyT2dBQUlBSWdDU0FQYkNBR0lBcHNha0VEZEVFZ2FrRUdkam9BQ0NBSFFRRnFJZ29nRFdvdEFBQWhEeUFDSUFrZ0J5MEFBV3dnQkNBS2FpMEFBQ0lLSUFac2FrRURkRUVnYWtFR2Rqb0FBU0FDSUFrZ0Ntd2dCaUFQYkdwQkEzUkJJR3BCQm5ZNkFBa2dBa0VDYWlFQ0lBZEJBbW9oQnlBQVFYOXFJZ0FOQUFzZ0J5QVJhaUVISUFJZ0VHb2hBaUFJUVg5cUlnZ05BQXNnQVVGQWF5RUNJQklnRENBT2FpQUViR29oQndOQUlBTWhBQU5BSUFjZ0RXb3RBQUFoQVNBQ0lBa2dCeTBBQUd3Z0JDQUhhaTBBQUNJSUlBWnNha0VEZEVFZ2FrRUdkam9BQUNBQ0lBZ2dDV3dnQVNBR2JHcEJBM1JCSUdwQkJuWTZBQWdnQjBFQmFpSUJJQTFxTFFBQUlRZ2dBaUFKSUFjdEFBRnNJQUVnQkdvdEFBQWlBU0FHYkdwQkEzUkJJR3BCQm5ZNkFBRWdBaUFCSUFsc0lBWWdDR3hxUVFOMFFTQnFRUVoyT2dBSklBSkJBbW9oQWlBSFFRSnFJUWNnQUVGL2FpSUFEUUFMSUFjZ0VXb2hCeUFDSUJCcUlRSWdCVUYvYWlJRkRRQUxDeUFMUVpBQmFpUUFDLzBFQVF0L0l3QkJrQUZySWd3a0FDQUhRUUZxSVFrQ1FBSkFJQUpCQUVnTkFDQURJQWhxSUFWTERRQWdBMEVBU0EwQUlBSWdDV29nQkVzTkFDQUVJUWtnQXlFTERBRUxJQUFnRENBQ0lBTWdCQ0FGSUFrZ0NDQUpFQXdnQUNBRUlBVnNhaUFNSUFnZ0NXeHFJQUlnQXlBRUlBVWdDU0FJSUFrUURDQU1JUUFnQ0NFRlFRQWhBZ3NDUUNBSVFRRjJJZ2hGRFFBZ0IwRUJkaUlFUlEwQVFSQWdCMnNoRGtFSUlBWnJJUW9nQ1VFQmRDQUhheUVQSUFBZ0Ftb2lFU0FKSUF0c2FpRUNJQUVoQXlBSUlRQURRQ0FFSVFjRFFDQUNRUUZxSUFscUxRQUFJUkFnQWlBSmFpMEFBQ0VOSUFNZ0FpMEFBU0lTSUFac0lBb2dBaTBBQUd4cVFRTjBRU0JxUVFaMk9nQUFJQU1nQmlBUWJDQUtJQTFzYWtFRGRFRWdha0VHZGpvQUNDQUNMUUFDSVEwZ0FrRUNhaUlDSUFscUxRQUFJUk1nQXlBR0lBMXNJQW9nRW14cVFRTjBRU0JxUVFaMk9nQUJJQU1nQmlBVGJDQUtJQkJzYWtFRGRFRWdha0VHZGpvQUNTQURRUUpxSVFNZ0IwRi9haUlIRFFBTElBSWdEMm9oQWlBRElBNXFJUU1nQUVGL2FpSUFEUUFMSUFGQlFHc2hBeUFSSUFVZ0Myb2dDV3hxSVFJRFFDQUVJUWNEUUNBQ1FRRnFJQWxxTFFBQUlRQWdBaUFKYWkwQUFDRUJJQU1nQWkwQUFTSUZJQVpzSUFvZ0FpMEFBR3hxUVFOMFFTQnFRUVoyT2dBQUlBTWdBQ0FHYkNBQklBcHNha0VEZEVFZ2FrRUdkam9BQ0NBQ0xRQUNJUUVnQWtFQ2FpSUNJQWxxTFFBQUlRc2dBeUFCSUFac0lBVWdDbXhxUVFOMFFTQnFRUVoyT2dBQklBTWdCaUFMYkNBQUlBcHNha0VEZEVFZ2FrRUdkam9BQ1NBRFFRSnFJUU1nQjBGL2FpSUhEUUFMSUFJZ0Qyb2hBaUFESUE1cUlRTWdDRUYvYWlJSURRQUxDeUFNUVpBQmFpUUFDN2tIQVFWL0l3QkJFR3NpQkNRQUFrQWdBQ0FCUVFCQnlBQVFCeUlERUFJaUFRMEFRUUVoQVNBREtBSUFRZjhCU3cwQUlBQWdBMEVFYWhBQ0lnRU5BRUVCSVFFZ0F5Z0NCRUVmU3cwQUlBQkJBUkFERFFBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNDQ0FBSUFSQkRHb1FBaUlCRFFBZ0F5QUVLQUlNUVFGcUlnRTJBZ3dnQVVFSVN3UkFRUUVoQVF3QkN3SkFJQUZCQWtrTkFDQUFJQU5CRUdvUUFpSUJEUUVnQXlnQ0VDSUJRUVpMSWdJRVFFRUJJUUVNQWdzZ0FnMEFBa0FDUUFKQUFrQWdBVUVCYXc0R0JBRUNBZ0lEQUFzZ0F5QURLQUlNSWdGQkFuUVFDaUlDTmdJVUlBSkZCRUJCLy84RElRRU1CUXNnQVVVTkEwRUFJUUlEUUNBQUlBUkJER29RQWlJQkRRVWdBeWdDRkNBQ1FRSjBhaUFFS0FJTVFRRnFOZ0lBSUFKQkFXb2lBaUFES0FJTVNRMEFDd3dEQ3lBRElBTW9BZ3dpQWtFQ2RFRjhhaUlCRUFvaUJUWUNHQ0FESUFFUUNpSUdOZ0ljUWYvL0F5RUJJQVZGRFFNZ0JrVU5BeUFDUVFGR0RRSkJBQ0VDQTBBZ0FDQUVRUXhxRUFJaUFRMEVJQUpCQW5RaUJTQURLQUlZYWlBRUtBSU1OZ0lBSUFBZ0JFRU1haEFDSWdFTkJDQURLQUljSUFWcUlBUW9BZ3cyQWdBZ0FrRUJhaUlDSUFNb0FneEJmMnBKRFFBTERBSUxRUUVoQVNBQVFRRVFBeUlDUVg5R0RRSWdBeUFDUVFGR05nSWdJQUFnQkVFTWFoQUNJZ0VOQWlBRElBUW9BZ3hCQVdvMkFpUU1BUXNnQUNBRVFReHFFQUlpQVEwQklBTWdCQ2dDREVFQmFpSUJOZ0lvSUFNZ0FVRUNkQkFLSWdJMkFpd2dBa1VFUUVILy93TWhBUXdDQ3lBQlJRMEFJQU1vQWd4QkFuUkJyRHRxS0FJQUlRWkJBQ0VDQTBBZ0FDQUdFQU1oQlNBREtBSXNJQUpCQW5ScUlBVTJBZ0JCQVNFQklBVWdBeWdDREU4TkFpQUNRUUZxSWdJZ0F5Z0NLRWtOQUFzTElBQWdCRUVNYWhBQ0lnRU5BRUVCSVFFZ0JDZ0NEQ0lDUVI5TERRQWdBeUFDUVFGcU5nSXdJQUFnQkVFTWFoQUNJZ0VOQUVFQklRRWdCQ2dDREVFZlN3MEFJQUJCQVJBREJFQU1BUXNnQUVFQ0VBTkJBa3NFUUF3QkN5QUFJQVJCQ0dvUUJTSUJEUUFnQkNnQ0NFRWFhaUlCUVROTEJFQkJBU0VCREFFTElBTWdBVFlDTkNBQUlBUkJDR29RQlNJQkRRQWdCQ2dDQ0VFYWFrRXpTd1JBUVFFaEFRd0JDeUFBSUFSQkNHb1FCU0lCRFFCQkFTRUJJQVFvQWdnaUFrRU1ha0VZU3cwQUlBTWdBallDT0NBQVFRRVFBeUlDUVg5R0RRQWdBeUFDUVFGR05nSThJQUJCQVJBRElnSkJmMFlOQUNBRElBSkJBVVkyQWtBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNSQ0FBRUI5QkFDRUJDeUFFUVJCcUpBQWdBUXZxQlFFSmZ3SkFJQUlvQXB3Q1JRUkFEQUVMUVFFaEJnTkFBa0FDUUNBQ0lBVkJGR3hxS0FLZ0FpSUVRUVZMRFFBZ0JFRUJhdzRGQUFBQUFBTUJDeUFGUVFGcUlRVU1BUXNMSUFRaEJnc0Nmd0pBSUFFb0FoQWlCRUVCVFFSQUlBUkJBV3NFUUNBREtBSUFRUVZHQkVBZ0FFSUFOd0lBSUFJb0FoUWhCVUVBSVFRTUF3c2dBQ2dDQUNJRUlBSW9BaFFpQlUwTkFpQUVJQVZySUFFb0FoUWlCMEVCZGtrTkFpQUFLQUlFSUFkcURBTUxRUUFoQlFKL1FRQWdBeWdDQUVFRlJnMEFHaUFBS0FJTUlnY2dBQ2dDQ0NBQ0tBSU1UUTBBR2lBQktBSU1JQWRxQ3lFSFFRQWhCQUovSUFFb0FpUWlDQVJBSUFJb0Fnd2dCMm9oQlFzZ0JTQURLQUlFSWdwRklBVkJBRWR4YXlJSkN3UkFJQWxCZjJvaUF5QURJQWh1SWdzZ0NHeHJJUU1MSUFnRVFDQUJLQUlvSVF4QkFDRUZBMEFnRENBRlFRSjBhaWdDQUNBRWFpRUVJQVZCQVdvaUJTQUlSdzBBQ3dzQ1FDQUpSUVJBUVFBaEJBd0JDeUFFSUF0c0lRUWdBU2dDS0NFSVFRQWhCUU5BSUFnZ0JVRUNkR29vQWdBZ0JHb2hCQ0FGUVFGcUlnVWdBMDBOQUFzTElBcEZCRUFnQVNnQ0hDQUVhaUVFQ3lBR1JRUkFJQUlvQWlBaEF5QUJLQUlnSVFFZ0FpZ0NIQ0VHSUFBZ0J6WUNEQ0FBSUFJb0FndzJBZ2dnQmlBQklBTnFJZ0JCSDNVZ0FIRWdCR3BxRHdzZ0FFSUFOd0lJUVFBUEMwRUFJUVZCQUNFRUlBTW9BZ0JCQlVjRVFDQUFLQUlNSVFVZ0FDZ0NDQ0FDS0FJTUlnUkxCRUFnQVNnQ0RDQUZhaUVGQ3lBRUlBVnFRUUYwSUFNb0FnUkZheUVFQ3lBR1JRUkFJQUFnQlRZQ0RDQUFJQUlvQWd3MkFnZ2dCQThMSUFCQ0FEY0NDRUVBRHdzQ1FDQUZJQVJORFFBZ0JTQUVheUFCS0FJVUlnRkJBWFpORFFBZ0FDZ0NCQ0FCYXd3QkN5QUFLQUlFQ3lFRUlBTW9BZ1JGQkVBZ0JDQUZhaUFDS0FJWUlnQkJIM1VnQUhGcUR3c2dBQ0FFTmdJRUlBSW9BaGdoQVNBR0JFQWdBRUVBTmdJRUlBQkJBQ0FCYXlBQlFSOTFjVFlDQUVFQUR3c2dBQ0FGTmdJQUlBUWdCV29nQVVFZmRTQUJjV29MdkFFQkNIOGdBZ1JBSUFGQmYyb2hCMEVBSUFGclFkZ0JiQ0VJUVFFZ0FXdEIyQUZzSVFrZ0FVRi9jMEhZQVd3aENnTkFJQUFnQmtIWUFXeHFJZ01nQTBHb2ZtcEJBQ0FFR3pZQ3lBRWdBd0ovSUFWRkJFQWdBMEVBTmdMTUFVRUFEQUVMSUFNZ0F5QUlhallDekFFZ0F5QUpha0VBSUFRZ0Iwa2JDellDMEFFZ0F5QURJQXBxUVFBZ0JCdEJBQ0FGR3pZQzFBRkJBQ0FFUVFGcUlnTWdBU0FEUmlJREd5RUVJQU1nQldvaEJTQUdRUUZxSWdZZ0FrY05BQXNMQzNjQkFuOUJBU0VDQWtBZ0FFRUJFQU5CZjBZTkFDQUJJQUJCQWhBRE5nSUVJQUVnQUVFRkVBTWlBRFlDQUNBQVFYNXFRUU5KRFFBQ1FDQUFRUXhMRFFCQkFTQUFkQ0lEUWNBOGNVVUVRQ0FEUWFBRGNVVU5BU0FBUVFaR0RRSWdBU2dDQkEwQkRBSUxJQUVvQWdRTkFRdEJBQ0VDQ3lBQ0M1SVRBUVovSUFBZ0FTZ0NBQ0lOTmdJQUlBQWdBQ2dDeEFGQkFXbzJBc1FCSUFJZ0JSQWRBa0FDUUFKQUFrQUNRQ0FOUVI5R0JFQWdBRUVBTmdJVUlBQW9Bc1FCUVFGTERRRWdBRUVjYWlFSklBRkJ5QUpxSVFSQkZ5RUJJQWNoQUFOQUlBbEJFRHNCQUNBQUlBUW9BZ0E2QUFBZ0FDQUVLQUlFT2dBQklBQWdCQ2dDQ0RvQUFpQUFJQVFvQWd3NkFBTWdBQ0FFS0FJUU9nQUVJQUFnQkNnQ0ZEb0FCU0FBSUFRb0FoZzZBQVlnQUNBRUtBSWNPZ0FISUFBZ0JDZ0NJRG9BQ0NBQUlBUW9BaVE2QUFrZ0FDQUVLQUlvT2dBS0lBQWdCQ2dDTERvQUN5QUFJQVFvQWpBNkFBd2dBQ0FFS0FJME9nQU5JQUFnQkNnQ09Eb0FEaUFBSUFRb0FqdzZBQThnQVNJRFFYOXFJUUVnQ1VFQ2FpRUpJQUJCRUdvaEFDQUVRVUJySVFRZ0F3MEFDeUFDSUFjUUd3d0VDeUFBUVJ4cUlRa2dEUVJBSUFrZ0FTa0NrQUkzQWdBZ0NTQUJLUUcrQWpjQkxpQUpJQUVwQXJnQ053SW9JQWtnQVNrQ3NBSTNBaUFnQ1NBQktRS29BamNDR0NBSklBRXBBcUFDTndJUUlBa2dBU2tDbUFJM0FnZ2dCQ2dDQUNFS0FrQWdBU2dDQ0NJTFJRMEFJQVFnQ2lBTGFpSUtOZ0lBSUFRZ0NrRi9UQVIvSUFwQk5Hb0ZJQXBCTkVnTkFTQUtRVXhxQ3lJS05nSUFDeUFBSUFvMkFoUWdBVUhJRDJvaERDQUJRY2dDYWlFRUFrQUNRQ0FBS0FJQVFRWk5CRUFnQ1M4QkFFVU5BVUVCSVFnZ0JDQUtRUUFnRENnQ0FCQUdSUTBDREFnTElBQXZBVXdFUUNBQlFjZ09haUFLRURFTFFiQTBJUXBCRHlFSUEwQWdDQ0VMSUFRZ0FTQUtLQUlBUVFKMGFrSElEbW9vQWdBaUNEWUNBQUpBQWtBZ0NFVUVRQ0FKTHdFQVJRMEJDMEVCSVFnZ0JDQUFLQUlVUVFFZ0RDZ0NBQkFHUlEwQkRBb0xJQVJCLy8vL0J6WUNBQXNnQ2tFRWFpRUtJQXRCZjJvaENDQU1RUVJxSVF3Z0NVRUNhaUVKSUFSQlFHc2hCQ0FMRFFBTERBUUxJQVJCLy8vL0J6WUNBQXNnQVVHSUEyb2hCQUpBSUFBdkFSNEVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSE1EMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJ5QU5xSVFRQ1FDQUFMd0VnQkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCMEE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUVlnRWFpRUVBa0FnQUM4QklnUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFkUVBhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVSElCR29oQkFKQUlBQXZBU1FFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUhZRDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCaUFWcUlRUUNRQ0FBTHdFbUJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQjNBOXFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFjZ0ZhaUVFQWtBZ0FDOEJLQVJBUVFFaENDQUVJQUFvQWhSQkFDQUJRZUFQYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJQm1vaEJBSkFJQUF2QVNvRVFFRUJJUWdnQkNBQUtBSVVRUUFnQVVIa0Qyb29BZ0FRQmtVTkFRd0hDeUFFUWYvLy93YzJBZ0FMSUFGQnlBWnFJUVFDUUNBQUx3RXNCRUJCQVNFSUlBUWdBQ2dDRkVFQUlBRkI2QTlxS0FJQUVBWkZEUUVNQndzZ0JFSC8vLzhITmdJQUN5QUJRWWdIYWlFRUFrQWdBQzhCTGdSQVFRRWhDQ0FFSUFBb0FoUkJBQ0FCUWV3UGFpZ0NBQkFHUlEwQkRBY0xJQVJCLy8vL0J6WUNBQXNnQVVISUIyb2hCQUpBSUFBdkFUQUVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSHdEMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJpQWhxSVFRQ1FDQUFMd0V5QkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCOUE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUWNnSWFpRUVBa0FnQUM4Qk5BUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFmZ1BhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVR0lDV29oQkFKQUlBQXZBVFlFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUg4RDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCeUFscUlRUUNRQ0FBTHdFNEJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQmdCQnFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFZZ0thaUVFQWtBZ0FDOEJPZ1JBUVFFaENDQUVJQUFvQWhSQkFDQUJRWVFRYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJRUdvaERDQUJRY2dLYWlFRURBSUxJQWxDQURjQ0FDQUpRZ0EzQVM0Z0NVSUFOd0lvSUFsQ0FEY0NJQ0FKUWdBM0FoZ2dDVUlBTndJUUlBbENBRGNDQ0NBQUlBUW9BZ0EyQWhRTUFnc2dBRUtRZ01DQWdJS0FDRGNCSENBQVFwQ0F3SUNBZ29BSU53RkVJQUJDa0lEQWdJQ0NnQWczQVR3Z0FFS1FnTUNBZ0lLQUNEY0JOQ0FBUXBDQXdJQ0Fnb0FJTndFc0lBQkNrSURBZ0lDQ2dBZzNBU1JCQUE4TElBQW9BaGdnQUNnQ0ZHb2lDMEV6SUF0Qk0wZ2JJZ3RCQUNBTFFRQktHMEVDZEVIZ1BXb29BZ0FoQ1FKQUlBQXZBVTVGQkVBZ0FDOEJVRVVOQVFzZ0FVR0lEMm9nQ1JBd0N5QUVJQUZCaUE5cUtBSUFJZ3MyQWdBQ1FBSkFJQXRGQkVBZ0FDOEJQRVVOQVF0QkFTRUlJQVFnQ1VFQklBd29BZ0FRQmtVTkFRd0VDeUFFUWYvLy93YzJBZ0FMSUFRZ0FTZ0NqQThpQ3pZQ1FDQUVRVUJySVFvQ1FBSkFJQXRGQkVBZ0FDOEJQa1VOQVF0QkFTRUlJQW9nQ1VFQklBd29BZ1FRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NrQThpQ3pZQ2dBRWdCRUdBQVdvaENnSkFBa0FnQzBVRVFDQUFRVUJyTHdFQVJRMEJDMEVCSVFnZ0NpQUpRUUVnRENnQ0NCQUdSUTBCREFRTElBcEIvLy8vQnpZQ0FBc2dCQ0FCS0FLVUR5SUxOZ0xBQVNBRVFjQUJhaUVLQWtBQ1FDQUxSUVJBSUFBdkFVSkZEUUVMUVFFaENDQUtJQWxCQVNBTUtBSU1FQVpGRFFFTUJBc2dDa0gvLy84SE5nSUFDeUFFSUFFb0FwZ1BJZ3MyQW9BQ0lBUkJnQUpxSVFvQ1FBSkFJQXRGQkVBZ0FDOEJSRVVOQVF0QkFTRUlJQW9nQ1VFQklBd29BaEFRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NuQThpQ3pZQ3dBSWdCRUhBQW1vaENnSkFBa0FnQzBVRVFDQUFMd0ZHUlEwQkMwRUJJUWdnQ2lBSlFRRWdEQ2dDRkJBR1JRMEJEQVFMSUFwQi8vLy9CellDQUFzZ0JDQUJLQUtnRHlJTE5nS0FBeUFFUVlBRGFpRUtBa0FDUUNBTFJRUkFJQUF2QVVoRkRRRUxRUUVoQ0NBS0lBbEJBU0FNS0FJWUVBWkZEUUVNQkFzZ0NrSC8vLzhITmdJQUN5QUVJQUVvQXFRUElnczJBc0FESUFSQndBTnFJUVFDUUFKQUlBdEZCRUFnQUM4QlNrVU5BUXRCQVNFSUlBUWdDVUVCSUF3b0Fod1FCa1VOQVF3RUN5QUVRZi8vL3djMkFnQUxJQTFCQmtrTkFDQUFJQUVnQWlBRklBWWdCeEJXSWdoRkRRRU1BZ3NnQUNBQklBTWdCU0FDSUFjUVZ5SUlEUUVMUVFBaENBc2dDQXVXSFFFSGZ5TUFRUkJySWdja0FDQUJRUUJCcUJBUUJ5RUZJQUFnQjBFRWFoQUNJUUVnQnlnQ0JDRUlBa0FDUUFKQUlBTkJmbW9pQTBFRlN3MEFBa0FnQTBFQmF3NEVBUUVCQVFBTFFRRWhBeUFCRFFJZ0NFRUdhaUlHUVI5TkRRRU1BZ3RCQVNFRElBRU5BU0FJUVFGcUlnWkJIMHNOQVFzZ0JTQUdOZ0lBQWtBZ0JrRWZSZ1JBQTBBZ0FDZ0NDQVJBSUFCQkFSQURSUTBCREFRTEN5QUZRY2dDYWlFR0EwQWdCeUFBUVFnUUF5SUJOZ0lFSUFGQmYwWU5BeUFHSUFFMkFnQWdCa0VFYWlFR0lBbEJBV29pQ1VHQUEwY05BQXNNQVF0QkFpQUdRUVpISUFaQkJra2JJUW9DUUFKQUlBWkJCRWtOQUNBR1FRVkxEUUFnQUNBSFFReHFFQUlOQVNBSEtBSU1JZ0ZCQTBzTkFTQUZJQUUyQXJBQklBQWdCMEVNYWhBQ0RRRWdCeWdDRENJQlFRTkxEUUVnQlNBQk5nSzBBU0FBSUFkQkRHb1FBZzBCSUFjb0Fnd2lBVUVEU3cwQklBVWdBVFlDdUFFZ0FDQUhRUXhxRUFJTkFTQUhLQUlNSWdGQkEwc05BU0FGSUFFMkFyd0JBa0FnQkVFQ1NRMEFJQVpCQlVZTkFDQUFJQWRCREdvZ0JFRUNTeUlCRUJjTkFpQUhLQUlNSWdnZ0JFOE5BaUFGSUFnMkFzQUJJQUFnQjBFTWFpQUJFQmNOQWlBSEtBSU1JZ2dnQkU4TkFpQUZJQWcyQXNRQklBQWdCMEVNYWlBQkVCY05BaUFIS0FJTUlnZ2dCRThOQWlBRklBZzJBc2dCSUFBZ0IwRU1haUFCRUJjTkFpQUhLQUlNSWdFZ0JFOE5BaUFGSUFFMkFzd0JDeUFISUFVb0FyQUJJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93SFFBU0FBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dIU0FTQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVlnQVEwQUN5QUhJQVVvQXJRQklnRkJBazBFZnlBQlFRSjBRZkEwYWlnQ0FBVkJBd3MyQWd4QkFDRUdBMEFnQUNBSFFRaHFFQVVpQXcwQ0lBVWdCa0VDZEdvaUFTQUhLQUlJT3dIZ0FTQUFJQWRCQ0dvUUJTSUREUUlnQVNBSEtBSUlPd0hpQVNBSElBY29BZ3dpQVVGL2FqWUNEQ0FHUVFGcUlRWWdBUTBBQ3lBSElBVW9BcmdCSWdGQkFrMEVmeUFCUVFKMFFmQTBhaWdDQUFWQkF3czJBZ3hCQUNFR0EwQWdBQ0FIUVFocUVBVWlBdzBDSUFVZ0JrRUNkR29pQVNBSEtBSUlPd0h3QVNBQUlBZEJDR29RQlNJRERRSWdBU0FIS0FJSU93SHlBU0FISUFjb0Fnd2lBVUYvYWpZQ0RDQUdRUUZxSVFZZ0FRMEFDeUFISUFVb0Fyd0JJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93R0FBaUFBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dHQ0FpQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVpCQUNFRElBRU5BQXNNQVF0QkFDRURJQXBCQWtzTkFBSkFBbjhDUUFKQUFrQWdDa0VCYXc0Q0JBRUFDeUFIUVFBMkFnZ2dCU0FBRUE4aUFVRWZkallDRENBQlFRQk9EUUVnQVVFQmRDRUdRUUFNQWdzZ0JFRUNUd1JBUVFNaEFTQUdRUU5OQkVBZ0JrRUNkRUg4Tkdvb0FnQWhBUXNnQkVFQ1N5RUxRUUVoQXdOQUlBQWdCMEVNYWlBTEVCY05CU0FIS0FJTUlnZ2dCRThOQlNBRklBbEJBblJxSUFnMkFwQUJJQUVpQ0VGL2FpRUJJQWxCQVdvaENTQUlEUUFMQzBFRElRTWdCa0VEVFFSQUlBWkJBblJCL0RScUtBSUFJUU1MUVFBaEJnTkFJQU1oQVNBQUlBZEJDR29RQlNJRERRUWdCU0FHUVFKMGFpSUVJQWNvQWdnN0FhQUJJQUFnQjBFSWFoQUZJZ01OQkNBRUlBY29BZ2c3QWFJQklBRkJmMm9oQXlBR1FRRnFJUVlnQVEwQUMwRUFJUU1NQXdzZ0JTQUJRUngyTmdKTUlBRkJCSFFoQmtFQkN5RURJQVVnQmtFZmRqWUNFQ0FGSUFaQkFFZ0VmeUFHUVFGMEJTQUZJQVpCSEhZMkFsQWdBMEVCYWlFRElBWkJCSFFMSWdGQkgzWTJBaFFnQlNBQlFRQklCSDhnQVVFQmRBVWdCU0FCUVJ4Mk5nSlVJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0lZSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNXQ0FEUVFGcUlRTWdBVUVFZEFzaUFVRWZkallDSENBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBbHdnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWlBZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pnSUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJa0lBVWdBVUVBU0FSL0lBRkJBWFFGSUFVZ0FVRWNkallDWkNBRFFRRnFJUU1nQVVFRWRBc2lBVUVmZGpZQ0tDQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pvSUFOQkFXb2hBeUFCUVFSMEN5RUdBa0FnQUNBRFFRTnNRUWhxRUF0QmYwWU5BQ0FIUVFFMkFnZ2dCU0FBRUE4aUFVRWZkallDTEFKL0lBRkJBRWdFUUNBQlFRRjBJUVpCQUF3QkN5QUZJQUZCSEhZMkFtd2dBVUVFZENFR1FRRUxJUU1nQlNBR1FSOTJOZ0l3SUFVZ0JrRUFTQVIvSUFaQkFYUUZJQVVnQmtFY2RqWUNjQ0FEUVFGcUlRTWdCa0VFZEFzaUFVRWZkallDTkNBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBblFnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWpnZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0o0SUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJOElBVkJRR3NnQVVFQVNBUi9JQUZCQVhRRklBVWdBVUVjZGpZQ2ZDQURRUUZxSVFNZ0FVRUVkQXNpQVVFZmRqWUNBQ0FGSUFGQkFFZ0VmeUFCUVFGMEJTQUZJQUZCSEhZMkFvQUJJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0pFSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNoQUVnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWtnZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNpQUVnQTBFQmFpRURJQUZCQkhRTElRWWdBQ0FEUVFOc1FRaHFFQXRCZjBZTkFDQUhJQVkyQWd3Z0IwRUNOZ0lJREFFTElBY2dCallDREVFQklRTU1BUXRCQVNFRElBQWdCMEVNYWhBQ0RRQWdCeWdDRENJQlFRTkxEUUFnQlNBQk5nS01BVUVBSVFNTElBTU5BUUpBSUFwQkFVY0VRQ0FBSUFkQkJHb2dDa1VRTFNJRERRTWdCU0FIS0FJRUlnRTJBZ1FnQVVVTkFnd0JDeUFGSUFVb0FnQWlBVUY1YWlJRFFRSjBRWEJ4SWdSQlVHb2dCQ0FEUVF0TEcwRVBRUUFnQVVFU1N4dHlOZ0lFQzBFQklRTWdBQ0FIUVF4cUVBVU5BU0FIS0FJTUlnRkJHbXBCTTBzTkFTQUZJQUUyQWdnZ0JVR1FBbW9oQ0NBRktBSUVJUVFDUUFKQUlBVW9BZ0JCQjBrRVFFRUFJUWxCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FJSUFsQkFuUnFRYmdOYWlBQUlBZ2dDVUVHZEdwQk9Hb2dBaUFKSUFnUURVRVFFQWtpQTBFUWRqWUNBQ0FEUVE5eERRUWdDQ0FKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FJSUFsQkFYSWlCa0VDZEdwQnVBMXFJQUFnQ0NBR1FRWjBha0U0YWlBQ0lBWWdDQkFOUVJBUUNTSURRUkIyTmdJQUlBTkJEM0VOQkNBSUlBWkJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBZ2dDVUVDY2lJR1FRSjBha0c0RFdvZ0FDQUlJQVpCQm5ScVFUaHFJQUlnQmlBSUVBMUJFQkFKSWdOQkVIWTJBZ0FnQTBFUGNRMEVJQWdnQmtFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQ0NBSlFRTnlJZ1pCQW5ScVFiZ05haUFBSUFnZ0JrRUdkR3BCT0dvZ0FpQUdJQWdRRFVFUUVBa2lBMEVRZGpZQ0FDQURRUTl4RFFRZ0JTQUdRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc01BUXRCQUNFSklBQWdCVUhJRG1vZ0FrRUFJQWdRRFVFUUVBa2lBMEVQY1EwQklBVWdBMEVFZGtIL0FYRTdBY0FDSUFWQmtBSnFJUVpCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FHSUFsQkFuUnFRYmdOYWlBQUlBWWdDVUVHZEdwQlBHb2dBaUFKSUFnUURVRVBFQWtpQTBFUGRqWUNBQ0FEUVE5eERRTWdCaUFKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FHSUFsQkFYSWlDa0VDZEdwQnVBMXFJQUFnQmlBS1FRWjBha0U4YWlBQ0lBb2dDQkFOUVE4UUNTSURRUTkyTmdJQUlBTkJEM0VOQXlBR0lBcEJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBWWdDVUVDY2lJS1FRSjBha0c0RFdvZ0FDQUdJQXBCQm5ScVFUeHFJQUlnQ2lBSUVBMUJEeEFKSWdOQkQzWTJBZ0FnQTBFUGNRMERJQVlnQ2tFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQmlBSlFRTnlJZ3BCQW5ScVFiZ05haUFBSUFZZ0NrRUdkR3BCUEdvZ0FpQUtJQWdRRFVFUEVBa2lBMEVQZGpZQ0FDQURRUTl4RFFNZ0JTQUtRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc0xJQVJCQTNFRVFDQUFJQVZCaUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIQ0FpQUFJQVZCbUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIRUFndEJBQ0VESUFSQkFuRkZEUUFnQUNBRlFjd0thaUFDUVJBZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCaUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzQUlnQUNBRlFZd0xhaUFDUVJFZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCakJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzZ0lnQUNBRlFjd0xhaUFDUVJJZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCa0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0QUlnQUNBRlFZd01haUFDUVJNZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0Z0lnQUNBRlFjd01haUFDUVJRZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1QUlnQUNBRlFZd05haUFDUVJVZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbkJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1Z0lnQUNBRlFjd05haUFDUVJZZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCb0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2QUlnQUNBRlFZd09haUFDUVJjZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCcEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2Z0lMSUFBZ0FDZ0NDQ0FBS0FJRUlBQW9BZ0JyUVFOMGFqWUNFQ0FERFFFTFFRQWhBd3NnQjBFUWFpUUFJQU1McFJRQkRIOENmeUFBS0FMSUFTSUhCRUFnQUNnQ0JDQUhLQUlFUmd3QkMwRUFDeUVLQWtBZ0JrVU5BQ0FLUlEwQVFRQWdDa0VDSUFBb0FzZ0JLQUlBSWdkQkJrY2dCMEVHU1J0QkFrWWJJUW9MQW44Z0FDZ0N6QUVpQndSQUlBQW9BZ1FnQnlnQ0JFWU1BUXRCQUFzaEJ3SkFJQVpGRFFBZ0IwVU5BRUVBSUFkQkFpQUFLQUxNQVNnQ0FDSUhRUVpISUFkQkJra2JRUUpHR3lFSEN3Si9JQUFvQXRRQklna0VRQ0FBS0FJRUlBa29BZ1JHREFFTFFRQUxJUWtDUUNBR1JRMEFJQWxGRFFCQkFpQUFLQUxVQVNnQ0FDSUFRUVpISUFCQkJra2JRUUpISVFrTElBcEJBRWNnQjBFQVIzRWlEU0FKUVFCSGNTRU9JQVZCQWtzaEQwRVFJUXNEUUFKQUlBOUZCRUFDUUFKQUFrQWdCVUVCYXc0Q0FRSUFDeUFCQW44Z0RRUkFJQVF0QUFNZ0JDMEFBaUFFTFFBQklBUXRBQUFnQXkwQUJDQURMUUFESUFNdEFBRWdBeTBBQW1wcWFtcHFhbXBCQkdwQkEzWWhCaUFETFFBSUlBTXRBQWNnQXkwQUJTQURMUUFHYW1wcVFRSnFRUUoyREFFTElBY0VRQ0FETFFBRUlBTXRBQU1nQXkwQUFTQURMUUFDYW1wcVFRSnFRUUoySVFZZ0F5MEFDQ0FETFFBSElBTXRBQVVnQXkwQUJtcHFha0VDYWtFQ2Rnd0JDeUFLUlFSQVFZQUJJUVpCZ0FFTUFRc2dCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYWtFQ2FrRUNkaUlHQzBIL0FYRkJnWUtFQ0d3aUFEWUFIQ0FCSUFaQi93RnhRWUdDaEFoc0lnWTJBQmdnQVNBQU5nQVVJQUVnQmpZQUVDQUJJQUEyQUF3Z0FTQUdOZ0FJSUFFZ0FEWUFCQ0FCSUFZMkFBQUNmeUFLQkVBZ0JDMEFCeUFFTFFBR0lBUXRBQVVnQkMwQUJHcHFhaUlHUVFKcVFRSjJJZ0FnQjBVTkFSb2dBeTBBQ0NBRExRQUhJQU10QUFZZ0JpQURMUUFGYW1wcWFrRUVha0VEZGd3QkN5QUhSUVJBUVlBQklRQkJnQUVNQVFzZ0F5MEFCQ0FETFFBRElBTXRBQUVnQXkwQUFtcHFha0VDYWtFQ2RpRUFJQU10QUFnZ0F5MEFCeUFETFFBRklBTXRBQVpxYW1wQkFtcEJBbllMSVFZZ0FTQUFRZjhCY1VHQmdvUUliQ0lBTmdBZ0lBRWdCa0gvQVhGQmdZS0VDR3dpQmpZQVBDQUJJQUEyQURnZ0FTQUdOZ0EwSUFFZ0FEWUFNQ0FCSUFZMkFDd2dBU0FBTmdBb0lBRWdCallBSkF3REN5QUtSUVJBUVFFUEN5QUJJQVF0QUFBNkFBQWdBU0FFTFFBQU9nQUJJQUVnQkMwQUFEb0FBaUFCSUFRdEFBQTZBQU1nQVNBRUxRQUFPZ0FFSUFFZ0JDMEFBRG9BQlNBQklBUXRBQUE2QUFZZ0FTQUVMUUFBT2dBSElBRWdCQzBBQVRvQUNDQUJJQVF0QUFFNkFBa2dBU0FFTFFBQk9nQUtJQUVnQkMwQUFUb0FDeUFCSUFRdEFBRTZBQXdnQVNBRUxRQUJPZ0FOSUFFZ0JDMEFBVG9BRGlBQklBUXRBQUU2QUE4Z0FTQUVMUUFDT2dBUUlBRWdCQzBBQWpvQUVTQUJJQVF0QUFJNkFCSWdBU0FFTFFBQ09nQVRJQUVnQkMwQUFqb0FGQ0FCSUFRdEFBSTZBQlVnQVNBRUxRQUNPZ0FXSUFFZ0JDMEFBam9BRnlBQklBUXRBQU02QUJnZ0FTQUVMUUFET2dBWklBRWdCQzBBQXpvQUdpQUJJQVF0QUFNNkFCc2dBU0FFTFFBRE9nQWNJQUVnQkMwQUF6b0FIU0FCSUFRdEFBTTZBQjRnQVNBRUxRQURPZ0FmSUFFZ0JDMEFCRG9BSUNBQklBUXRBQVE2QUNFZ0FTQUVMUUFFT2dBaUlBRWdCQzBBQkRvQUl5QUJJQVF0QUFRNkFDUWdBU0FFTFFBRU9nQWxJQUVnQkMwQUJEb0FKaUFCSUFRdEFBUTZBQ2NnQVNBRUxRQUZPZ0FvSUFFZ0JDMEFCVG9BS1NBQklBUXRBQVU2QUNvZ0FTQUVMUUFGT2dBcklBRWdCQzBBQlRvQUxDQUJJQVF0QUFVNkFDMGdBU0FFTFFBRk9nQXVJQUVnQkMwQUJUb0FMeUFCSUFRdEFBWTZBREFnQVNBRUxRQUdPZ0F4SUFFZ0JDMEFCam9BTWlBQklBUXRBQVk2QURNZ0FTQUVMUUFHT2dBMElBRWdCQzBBQmpvQU5TQUJJQVF0QUFZNkFEWWdBU0FFTFFBR09nQTNJQUVnQkMwQUJ6b0FPQ0FCSUFRdEFBYzZBRGtnQVNBRUxRQUhPZ0E2SUFFZ0JDMEFCem9BT3lBQklBUXRBQWM2QUR3Z0FTQUVMUUFIT2dBOUlBRWdCQzBBQnpvQVBpQUJJQVF0QUFjNkFEOE1BZ3NnQjBVRVFFRUJEd3NnQVNBRExRQUJPZ0FBSUFFZ0F5MEFBVG9BQ0NBQklBTXRBQUU2QUJBZ0FTQURMUUFCT2dBWUlBRWdBeTBBQVRvQUlDQUJJQU10QUFFNkFDZ2dBU0FETFFBQk9nQXdJQUVnQXkwQUFUb0FPQ0FCSUFNdEFBSTZBQUVnQVNBRExRQUNPZ0FKSUFFZ0F5MEFBam9BRVNBQklBTXRBQUk2QUJrZ0FTQURMUUFDT2dBaElBRWdBeTBBQWpvQUtTQUJJQU10QUFJNkFERWdBU0FETFFBQ09nQTVJQUVnQXkwQUF6b0FBaUFCSUFNdEFBTTZBQW9nQVNBRExRQURPZ0FTSUFFZ0F5MEFBem9BR2lBQklBTXRBQU02QUNJZ0FTQURMUUFET2dBcUlBRWdBeTBBQXpvQU1pQUJJQU10QUFNNkFEb2dBU0FETFFBRU9nQURJQUVnQXkwQUJEb0FDeUFCSUFNdEFBUTZBQk1nQVNBRExRQUVPZ0FiSUFFZ0F5MEFCRG9BSXlBQklBTXRBQVE2QUNzZ0FTQURMUUFFT2dBeklBRWdBeTBBQkRvQU95QUJJQU10QUFVNkFBUWdBU0FETFFBRk9nQU1JQUVnQXkwQUJUb0FGQ0FCSUFNdEFBVTZBQndnQVNBRExRQUZPZ0FrSUFFZ0F5MEFCVG9BTENBQklBTXRBQVU2QURRZ0FTQURMUUFGT2dBOElBRWdBeTBBQmpvQUJTQUJJQU10QUFZNkFBMGdBU0FETFFBR09nQVZJQUVnQXkwQUJqb0FIU0FCSUFNdEFBWTZBQ1VnQVNBRExRQUdPZ0F0SUFFZ0F5MEFCam9BTlNBQklBTXRBQVk2QUQwZ0FTQURMUUFIT2dBR0lBRWdBeTBBQnpvQURpQUJJQU10QUFjNkFCWWdBU0FETFFBSE9nQWVJQUVnQXkwQUJ6b0FKaUFCSUFNdEFBYzZBQzRnQVNBRExRQUhPZ0EySUFFZ0F5MEFCem9BUGlBQklBTXRBQWc2QUFjZ0FTQURMUUFJT2dBUElBRWdBeTBBQ0RvQUZ5QUJJQU10QUFnNkFCOGdBU0FETFFBSU9nQW5JQUVnQXkwQUNEb0FMeUFCSUFNdEFBZzZBRGNnQVNBRExRQUlPZ0EvREFFTElBNUZCRUJCQVE4TElBTXRBQVVnQXkwQUEyc2dBeTBBQmlBRExRQUNhMEVCZEdvZ0F5MEFCeUFETFFBQmEwRURiR29nQXkwQUNDSUFJQU10QUFBaUNXdEJBblJxUVJGc1FSQnFRUVYxSWdaQmZXd2hFQ0FBSUFRdEFBY2lER3BCQkhRZ0JDMEFCQ0FFTFFBQ2F5QU1JQWxyUVFKMGFpQUVMUUFGSUFRdEFBRnJRUUYwYWlBRUxRQUdJQVF0QUFCclFRTnNha0VSYkVFUWFrRUZkU0lSUVgxc2FrRVFhaUVKUVFnaERDQUJJUUFEUUNBQUlBa2dFR29pQ0VFRmRVR3dMbW90QUFBNkFBQWdBQ0FHSUFocUlnaEJCWFZCc0M1cUxRQUFPZ0FCSUFBZ0JpQUlhaUlJUVFWMVFiQXVhaTBBQURvQUFpQUFJQVlnQ0dvaUNFRUZkVUd3TG1vdEFBQTZBQU1nQUNBR0lBaHFJZ2hCQlhWQnNDNXFMUUFBT2dBRUlBQWdCaUFJYWlJSVFRVjFRYkF1YWkwQUFEb0FCU0FBSUFZZ0NHb2lDRUVGZFVHd0xtb3RBQUE2QUFZZ0FDQUdJQWhxUVFWMVFiQXVhaTBBQURvQUJ5QUpJQkZxSVFrZ0FFRUlhaUVBSUF4QmYyb2lEQTBBQ3dzZ0FTQUNJQXNRQ0NBQklBSkJRR3NnQzBFQmNoQUlJQUVnQWtHQUFXb2dDMEVDY2hBSUlBRWdBa0hBQVdvZ0MwRURjaEFJSUFKQmdBSnFJUUlnQkVFSWFpRUVJQU5CQ1dvaEF5QUJRVUJySVFFZ0MwRUVhaUVMSUJKQkFXb2lFa0VDUncwQUMwRUFDNkVWQWhoL0FuNENmd05BQW44Z0FDSUlJQlpCQTNSQnNEVnFLUUlBSWg2bkVCRWlDU0lHQkVBZ0NDZ0NCQ0FHS0FJRVJnd0JDMEVBQ3lFTkFrQWdCVVVOQUNBTlJRMEFRUUFnRFVFQ0lBa29BZ0FpQmtFR1J5QUdRUVpKRzBFQ1Joc2hEUXNDZnlBSUlCWkJBM1JCOERacUtRSUFJaCtuRUJFaUJ5SUdCRUFnQ0NnQ0JDQUdLQUlFUmd3QkMwRUFDeUVQQWtBZ0JVVU5BQ0FQUlEwQVFRQWdEMEVDSUFjb0FnQWlCa0VHUnlBR1FRWkpHMEVDUmhzaER3dEJBaUVNSUExQkFFY2dEMEVBUjNFaUVrRUJSZ1JBUVFJaEJnSi9RUUlnQ1NnQ0FDSUxRUVpISUF0QkJra2JSUVJBSUFrZ0hrSWdpS2RCL3dGeGFpMEFVaUVHQ3lBR0N3Si9RUUlnQnlnQ0FDSUpRUVpISUFsQkJra2JSUVJBSUFjZ0gwSWdpS2RCL3dGeGFpMEFVaUVNQ3lBTUN5QUdJQXhKR3lFTUN5QUNJQlpCQW5RaUNXb2lCaWdDREVVRVFDQUdLQUpNSWdZZ0JpQU1UMm9oREFzZ0NDQVdhaUFNT2dCU0FuOGdDQ0FXUVFOMFFiQTRhaWdDQUJBUklnWWlCd1JBSUFnb0FnUWdCeWdDQkVZTUFRdEJBQXNoRGdKQUlBVkZEUUFnRGtVTkFFRUFJQTVCQWlBR0tBSUFJZ1pCQmtjZ0JrRUdTUnRCQWtZYklRNExBbjhnQUNBV1FRTjBRZkE1YWlnQ0FCQVJJZ2dpQmdSQUlBQW9BZ1FnQmlnQ0JFWU1BUXRCQUFzaEVRSkFJQVZGRFFBZ0VVVU5BRUVBSUJGQkFpQUlLQUlBSWdoQkJrY2dDRUVHU1J0QkFrWWJJUkVMSUFsQjhDbHFLQUlBSVJjZ0NVR3dLV29vQWdBaEdBSi9RWVVLSUJaMlFRRnhJaHdFUUNBWFFRTnFJUWNnQkNBWGFpSUlRUUpxSVFZZ0NFRUJhaUVMSUFRTUFRc2dGMEVFZENBWWFpSUlRUzlxSVFjZ0FTQUlhaUlJUVI5cUlRWWdDRUVQYWlFTElBaEJmMm9oQ0NBQkN5RUpJQWNnQ1dvdEFBQWhDaUFHTFFBQUlSQWdDeTBBQUNFVElBZ3RBQUFoRkFKQVFUTWdGblpCQVhFRVFDQURJQmhxSWdjdEFBZ2hHeUFITFFBSElSa2dCeTBBQmlFVklBY3RBQVVoR2lBSExRQUVJUVlnQnkwQUF5RUxJQWN0QUFJaENTQUhMUUFCSVFnTUFRc2dBU0FYUVg5cUloMUJCSFFnR0dwcUlnY3RBQUFoQ0NBSExRQUhJUnNnQnkwQUJpRVpJQWN0QUFVaEZTQUhMUUFFSVJvZ0J5MEFBeUVHSUFjdEFBSWhDeUFITFFBQklRa2dIQVJBSUFRZ0hXb2hCd3dCQ3lBSFFYOXFJUWNMQWtBZ0RFRUhUUVJBSUFjdEFBQWhCd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQWdERUVCYXc0SEFRSURCQVVHQndBTElBOUZCRUJCQVE4TElBaEIvd0Z4SUF0Qi93RnhRUkIwSUFaQkdIUnljaUFKUWY4QmNVRUlkSEloRlNBSUlnd2hEU0FKSWc0aEVpQUxJZzhoQ2lBR0loRWhCd3dJQ3lBTlJRUkFRUUVQQ3lBS1FZR0NoQWhzSVJVZ0VFR0Jnb1FJYkNJTlFSaDJJUWNnRFVFUWRpRUtJQTFCQ0hZaEVpQVRRWUdDaEFoc0lneEJHSFloRVNBTVFSQjJJUThnREVFSWRpRU9JQlJCZ1lLRUNHd2lDRUVZZGlFR0lBaEJFSFloQ3lBSVFRaDJJUWtNQndzQ2Z5QVRJQlJxSUFwcUlCQnFJQVpCL3dGeGFpQUxRZjhCY1dvZ0NVSC9BWEZxSUFoQi93Rnhha0VFYWtFRGRpQVNEUUFhSUJNZ0ZHb2dDbW9nRUdwQkFtcEJBbllnRFEwQUdrR0FBU0FQUlEwQUdpQUdRZjhCY1NBTFFmOEJjV29nQ1VIL0FYRnFJQWhCL3dGeGFrRUNha0VDZGdzaUNFR0Jnb1FJYkNFVklBZ2lDU0lMSWdZaURDSU9JZzhpRVNJTkloSWlDaUVIREFZTElBOUZCRUJCQVE4TElBWkIvd0Z4SWcxQkFtb2lFU0FWSUFZZ0RodEIvd0Z4SWdkcUlCb2dCaUFPRzBIL0FYRWlDa0VCZEdwQkFuWWlEeUFaSUFZZ0RodEIvd0Z4SWd3Z0d5QUdJQTRiUWY4QmNTSUdRUU5zYWtFV2RFR0FnSUFFYWtHQWdJQjRjWElnQ2lBTWFpQUhRUUYwYWtFQ2FpSVFRUVowUVlEK0EzRnlJQVlnQjJvZ0RFRUJkR3BCQW1vaUJrRU9kRUdBZ1B3SGNYSWhGU0FHUVFKMklRY2dDMEgvQVhFaUJrRUNhaUlMSUFoQi93RnhhaUFKUWY4QmNTSUpRUUYwYWtFQ2RpRUlJQWtnRVdvZ0JrRUJkR3BCQW5ZaUNTRU1JQW9nQzJvZ0RVRUJkR3BCQW5ZaUN5RU9JQXNoRFNBUElnWWhFaUFRUVFKMkloRWhDZ3dGQzBFQklCRkZJQkpCQVhOeURRWWFJQlFnRTBFQmRHb2dFR3BCQW1vaURrRUdkRUdBL2dOeElBb2dFMEVDYWlJUGFpQVFRUUYwYWtFQ2RuSWdDRUgvQVhFaUNrRUNhaUlNSUJScUlBZEJBWFJxUVFKMklnaEJHSFJ5SUE4Z0ZFRUJkR29nQjJvaUVFRU9kRUdBZ1B3SGNYSWhGU0FKUWY4QmNTSVJRUUpxSWdrZ0JrSC9BWEZxSUF0Qi93RnhJZ3RCQVhScVFRSjJJUVlnRGtFQ2RpRU5JQWtnQ2tFQmRHb2dCMnBCQW5ZaUNTRVBJQkZCQVhRZ0Myb2dER3BCQW5ZaUN5RVJJQkJCQW5ZaURDRVNJQWdpRGlFS0lBa2hCd3dFQzBFQklCRkZJQkpCQVhOeURRVWFJQWhCL3dGeElncEJBbW9pRGlBTFFmOEJjU0lJSUFsQi93RnhJZ3RCQVhScWFrRUNkaUlQUVJoMElCUWdFMEVCZEdvZ0VHcEJBbXBCQW5aeUlBNGdGR29nQjBFQmRHb2lDVUVHZEVHQS9nTnhjaUFMUVFKcUlnNGdDa0VCZEdvZ0Iyb2lEVUVPZEVHQWdQd0hjWEloRlNBSVFRRnFJaEFnQmtIL0FYRWlER3BCQVhZaEJpQU1JQTVxSUFoQkFYUnFRUUoySVJFZ0NVRUNkaUVNSUExQkFuWWhEaUFUSUJSQkFYUnFJQWRxUVFKcVFRSjJJUTBnQnlBS2FrRUJha0VCZGlJSUlSSWdDaUFMYWtFQmFrRUJkaUlKSVFvZ0N5QVFha0VCZGlJTElRY01Bd3RCQVNBUlJTQVNRUUZ6Y2cwRUdpQVRRUUpxSWc0Z0Ntb2dFRUVCZEdwQkJuUkJnUDREY1NBUUlCTnFRUUZxSWc5QkQzUkJnSUQ4QjNFZ0ZFRUNhaUlNSUJOQkFYUnFJQkJxUVFKMkloSkJHSFJ5SUFvZ0VHcEJBV3BCQVhaeWNpRVZJQWhCL3dGeElnZ2dDMEgvQVhGcUlBbEIvd0Z4SWdsQkFYUnFRUUpxUVFKMklRWWdDU0FJUVFGMGFpQUhha0VDYWtFQ2RpRUxJQTlCQVhZaERTQUlJQXhxSUFkQkFYUnFRUUoySWhFaENTQVVRUUZxSWdvZ0IycEJBWFlpQ0NFUElBb2dFMnBCQVhZaURDRUtJQTRnRkVFQmRHb2dCMnBCQW5ZaURpRUhEQUlMSUE5RkJFQkJBUThMSUJvZ0JpQU9HMEgvQVhFaUNpQVpJQVlnRGh0Qi93RnhhaUFWSUFZZ0RodEIvd0Z4SWdkQkFYUnFRUlowSUF0Qi93RnhJZ3RCQW1vaURDQUthaUFHUWY4QmNTSUdRUUYwYWlJUFFRWjBja0dBZ0lBRWFrR0Evb040Y1NBR1FRSnFJZzBnQ1VIL0FYRWlDV29nQzBFQmRHcEJBbllpRG5JZ0J5QU5haUFLUVFGMGFpSU5RUTUwUVlDQS9BZHhjaUVWSUFjZ0NtcEJBV3BCQVhZaEJ5QU5RUUoySVJFZ0NTQUlRZjhCY1NJTmFrRUJha0VCZGlFSUlBOUJBblloRHlBTUlBMXFJQWxCQVhScVFRSjJJUXdnQ1NBTGFrRUJha0VCZGlJSklRMGdCa0VCYWlJR0lBdHFRUUYySWdzaEVpQUdJQXBxUVFGMklnWWhDZ3dCQ3lBTlJRUkFRUUVQQ3lBS1FRaDBJQXB5SUFwQkVIUnlJQXBCR0hSeUlSVWdFRUVDYWlJSElCUnFJQk5CQVhScVFRSjJJUWtnRTBFQmFpSUdJQlJxUVFGMklRZ2dCaUFRYWtFQmRpSUxJUXdnQ2lBVGFpQVFRUUYwYWtFQ2FrRUNkaUlHSVE0Z0NpQVFha0VCYWtFQmRpSVBJUTBnQnlBS1FRTnNha0VDZGlJUklSSWdDaUVIQ3lBQklCZEJCSFFnR0dwcUloQWdGVFlDTUNBUUlBMUIvd0Z4SUJKQi93RnhRUWgwY2lBS1FmOEJjVUVRZEhJZ0IwRVlkSEkyQWlBZ0VDQU1RZjhCY1NBT1FmOEJjVUVJZEhJZ0QwSC9BWEZCRUhSeUlCRkJHSFJ5TmdJUUlCQWdDRUgvQVhFZ0NVSC9BWEZCQ0hSeUlBdEIvd0Z4UVJCMGNpQUdRUmgwY2pZQ0FDQUJJQUlnRmtFR2RHcEJ5QUpxSUJZUUNDQVdRUUZxSWhaQkVFY05BQXRCQUFzTHhSSUJFSDhDZnlBQUtBTElBU0lIQkVBZ0FDZ0NCQ0FIS0FJRVJnd0JDMEVBQ3lFSEFrQWdCVVVOQUNBSFJRMEFRUUFnQjBFQ0lBQW9Bc2dCS0FJQUlnZEJCa2NnQjBFR1NSdEJBa1liSVFjTEFuOGdBQ2dDekFFaUNBUkFJQUFvQWdRZ0NDZ0NCRVlNQVF0QkFBc2hDQUpBSUFWRkRRQWdDRVVOQUVFQUlBaEJBaUFBS0FMTUFTZ0NBQ0lJUVFaSElBaEJCa2tiUVFKR0d5RUlDd0ovSUFBb0F0UUJJZ2tFUUNBQUtBSUVJQWtvQWdSR0RBRUxRUUFMSVFrQ1FDQUZSUTBBSUFsRkRRQkJBaUFBS0FMVUFTZ0NBQ0lGUVFaSElBVkJCa2tiUVFKSElRa0xBa0FDUUNBQUtBSUFRUUZxUVFOeElnQkJBazBFUUFKQUFrQUNRQ0FBUVFGckRnSUJBZ0FMSUFoRkJFQkJBUThMUVFBaEJTQUJJUUFEUUNBQUlBTXRBQUU2QUFBZ0FDQURMUUFDT2dBQklBQWdBeTBBQXpvQUFpQUFJQU10QUFRNkFBTWdBQ0FETFFBRk9nQUVJQUFnQXkwQUJqb0FCU0FBSUFNdEFBYzZBQVlnQUNBRExRQUlPZ0FISUFBZ0F5MEFDVG9BQ0NBQUlBTXRBQW82QUFrZ0FDQURMUUFMT2dBS0lBQWdBeTBBRERvQUN5QUFJQU10QUEwNkFBd2dBQ0FETFFBT09nQU5JQUFnQXkwQUR6b0FEaUFBSUFNdEFCQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3REN5QUhSUVJBUVFFUEMwRUFJUVVnQVNFQUEwQWdBQ0FFSUFWcUlnTXRBQUE2QUFBZ0FDQURMUUFBT2dBQklBQWdBeTBBQURvQUFpQUFJQU10QUFBNkFBTWdBQ0FETFFBQU9nQUVJQUFnQXkwQUFEb0FCU0FBSUFNdEFBQTZBQVlnQUNBRExRQUFPZ0FISUFBZ0F5MEFBRG9BQ0NBQUlBTXRBQUE2QUFrZ0FDQURMUUFBT2dBS0lBQWdBeTBBQURvQUN5QUFJQU10QUFBNkFBd2dBQ0FETFFBQU9nQU5JQUFnQXkwQUFEb0FEaUFBSUFNdEFBQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3Q0N5QUJBbjhDUUNBSFJRMEFJQWhGRFFBZ0JDMEFEeUFETFFBUUlBUXRBQTRnQXkwQUR5QUVMUUFOSUFNdEFBNGdCQzBBRENBRExRQU5JQVF0QUFzZ0F5MEFEQ0FFTFFBS0lBTXRBQXNnQkMwQUNTQURMUUFLSUFRdEFBZ2dBeTBBQ1NBRUxRQUhJQU10QUFnZ0JDMEFCaUFETFFBSElBUXRBQVVnQXkwQUJpQUVMUUFFSUFNdEFBVWdCQzBBQXlBRExRQUVJQVF0QUFJZ0F5MEFBeUFFTFFBQklBTXRBQUlnQXkwQUFTQUVMUUFBYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFrRVFha0VGZGd3QkN5QUhCRUFnQkMwQUR5QUVMUUFPSUFRdEFBMGdCQzBBRENBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSUlBUXRBQWNnQkMwQUJpQUVMUUFGSUFRdEFBUWdCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYW1wcWFtcHFhbXBxYW1wcWFrRUlha0VFZGd3QkMwR0FBU0FJUlEwQUdpQURMUUFRSUFNdEFBOGdBeTBBRGlBRExRQU5JQU10QUF3Z0F5MEFDeUFETFFBS0lBTXRBQWtnQXkwQUNDQURMUUFISUFNdEFBWWdBeTBBQlNBRExRQUVJQU10QUFNZ0F5MEFBU0FETFFBQ2FtcHFhbXBxYW1wcWFtcHFhbXBxUVFocVFRUjJDMEdBQWhBSEdnd0JDMEVCSVFBZ0IwVU5BU0FJUlEwQklBbEZEUUVnQkMwQUNDQUVMUUFHYXlBRUxRQVBJZ0FnQXkwQUFDSUZhMEVEZEdvZ0JDMEFDU0FFTFFBRmEwRUJkR29nQkMwQUNpQUVMUUFFYTBFRGJHb2dCQzBBQ3lBRUxRQURhMEVDZEdvZ0JDMEFEQ0FFTFFBQ2EwRUZiR29nQkMwQURTQUVMUUFCYTBFR2JHb2dCQzBBRGlBRUxRQUFhMEVIYkdwQkJXeEJJR3BCQm5VaEJ5QURMUUFKSUFNdEFBZHJJQU10QUFvZ0F5MEFCbXRCQVhScUlBTXRBQXNnQXkwQUJXdEJBMnhxSUFNdEFBd2dBeTBBQkd0QkFuUnFJQU10QUEwZ0F5MEFBMnRCQld4cUlBTXRBQTRnQXkwQUFtdEJCbXhxSUFNdEFBOGdBeTBBQVd0QkIyeHFJQU10QUJBaUF5QUZhMEVEZEdwQkJXeEJJR3BCQm5VaUJFRURkQ0VJSUFSQkIyd2hDU0FFUVFac0lRb2dCRUVGYkNFTElBUkJBMndoRENBRVFYMXNJUTBnQkVGN2JDRU9JQVJCZW13aER5QUVRWGxzSVJCQkFDQUVRUUYwSWhGcklSSkJBQ0FFUVFKMEloTnJJUlFnQUNBRGFrRUVkRUVRYWlFVlFRQWhCUU5BSUFFZ0JVRUVkQ0lBYWlBVklBVkJlV29nQjJ4cUlnTWdFR3BCQlhVaUJrSC9BU0FHUWY4QlNCc2lCa0VBSUFaQkFFb2JPZ0FBSUFFZ0FFRUJjbW9nQXlBUGFrRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFKeWFpQURJQTVxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJBM0pxSUFNZ0ZHcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFRWNtb2dBeUFOYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUVZ5YWlBRElCSnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkJuSnFJQU1nQkd0QkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVIY21vZ0EwRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFoeWFpQURJQVJxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJDWEpxSUFNZ0VXcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFS2Ntb2dBeUFNYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUXR5YWlBRElCTnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkRISnFJQU1nQzJwQkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVOY21vZ0F5QUtha0VGZFNJR1FmOEJJQVpCL3dGSUd5SUdRUUFnQmtFQVNoczZBQUFnQVNBQVFRNXlhaUFESUFscVFRVjFJZ1pCL3dFZ0JrSC9BVWdiSWdaQkFDQUdRUUJLR3pvQUFDQUJJQUJCRDNKcUlBTWdDR3BCQlhVaUFFSC9BU0FBUWY4QlNCc2lBRUVBSUFCQkFFb2JPZ0FBSUFWQkFXb2lCVUVRUncwQUN3dEJBQ0VBSUFFZ0FrRUFFQWdnQVNBQ1FVQnJRUUVRQ0NBQklBSkJnQUZxUVFJUUNDQUJJQUpCd0FGcVFRTVFDQ0FCSUFKQmdBSnFRUVFRQ0NBQklBSkJ3QUpxUVFVUUNDQUJJQUpCZ0FOcVFRWVFDQ0FCSUFKQndBTnFRUWNRQ0NBQklBSkJnQVJxUVFnUUNDQUJJQUpCd0FScVFRa1FDQ0FCSUFKQmdBVnFRUW9RQ0NBQklBSkJ3QVZxUVFzUUNDQUJJQUpCZ0FacVFRd1FDQ0FCSUFKQndBWnFRUTBRQ0NBQklBSkJnQWRxUVE0UUNDQUJJQUpCd0FkcVFROFFDQXNnQUF1N0NBRUhmd0pBSUFORkRRQWdBQ2dDQUNBRElBQW9BZ1FpQlc0aUNDQUZiQ0lFUVFoMGFpQURJQVJySWdkQkJIUnFJUVlnQlVFRWRDRUVJQUFvQWdnaENTQUZJQU5MSWdwRkJFQWdBU0FHSUFSQkFYSnJJZ010QUFBNkFBQWdBU0FETFFBQk9nQUJJQUVnQXkwQUFqb0FBaUFCSUFNdEFBTTZBQU1nQVNBRExRQUVPZ0FFSUFFZ0F5MEFCVG9BQlNBQklBTXRBQVk2QUFZZ0FTQURMUUFIT2dBSElBRWdBeTBBQ0RvQUNDQUJJQU10QUFrNkFBa2dBU0FETFFBS09nQUtJQUVnQXkwQUN6b0FDeUFCSUFNdEFBdzZBQXdnQVNBRExRQU5PZ0FOSUFFZ0F5MEFEam9BRGlBQklBTXRBQTg2QUE4Z0FTQURMUUFRT2dBUUlBRWdBeTBBRVRvQUVTQUJJQU10QUJJNkFCSWdBU0FETFFBVE9nQVRJQUVnQXkwQUZEb0FGQ0FCUVJWcUlRRUxJQWNFUUNBQ0lBWkJmMm9pQXkwQUFEb0FBQ0FDSUFNZ0JHb2lBeTBBQURvQUFTQUNJQU1nQkdvaUF5MEFBRG9BQWlBQ0lBTWdCR29pQXkwQUFEb0FBeUFDSUFNZ0JHb2lBeTBBQURvQUJDQUNJQU1nQkdvaUF5MEFBRG9BQlNBQ0lBTWdCR29pQXkwQUFEb0FCaUFDSUFNZ0JHb2lBeTBBQURvQUJ5QUNJQU1nQkdvaUF5MEFBRG9BQ0NBQ0lBTWdCR29pQXkwQUFEb0FDU0FDSUFNZ0JHb2lBeTBBQURvQUNpQUNJQU1nQkdvaUF5MEFBRG9BQ3lBQ0lBTWdCR29pQXkwQUFEb0FEQ0FDSUFNZ0JHb2lBeTBBQURvQURTQUNJQU1nQkdvaUF5MEFBRG9BRGlBQ0lBTWdCR290QUFBNkFBOGdBa0VRYWlFQ0N5QUFLQUlBSUFVZ0NXd2lCRUVJZEdvZ0NDQUZRUU4wSWdCc1FRTjBhaUFIUVFOMGFpRUdJQUJCK1AvLy93ZHhJUUFnQ2tVRVFDQUJJQVlnQUVFQmNtc2lBeTBBQURvQUFDQUJJQU10QUFFNkFBRWdBU0FETFFBQ09nQUNJQUVnQXkwQUF6b0FBeUFCSUFNdEFBUTZBQVFnQVNBRExRQUZPZ0FGSUFFZ0F5MEFCam9BQmlBQklBTXRBQWM2QUFjZ0FTQURRUWhxSWdNdEFBQTZBQWdnQVNBRVFRWjBJQU5xSWdOQmVHb3RBQUE2QUFrZ0FTQURRWGxxTFFBQU9nQUtJQUVnQTBGNmFpMEFBRG9BQ3lBQklBTkJlMm90QUFBNkFBd2dBU0FEUVh4cUxRQUFPZ0FOSUFFZ0EwRjlhaTBBQURvQURpQUJJQU5CZm1vdEFBQTZBQThnQVNBRFFYOXFMUUFBT2dBUUlBRWdBeTBBQURvQUVRc2dCMFVOQUNBQ0lBWkJmMm9pQVMwQUFEb0FBQ0FDSUFBZ0FXb2lBUzBBQURvQUFTQUNJQUFnQVdvaUFTMEFBRG9BQWlBQ0lBQWdBV29pQVMwQUFEb0FBeUFDSUFBZ0FXb2lBUzBBQURvQUJDQUNJQUFnQVdvaUFTMEFBRG9BQlNBQ0lBQWdBV29pQVMwQUFEb0FCaUFDSUFBZ0FXb2lBUzBBQURvQUJ5QUNJQUFnQVdvZ0JDQUZhMEVHZEdvaUFTMEFBRG9BQ0NBQ0lBQWdBV29pQVMwQUFEb0FDU0FDSUFBZ0FXb2lBUzBBQURvQUNpQUNJQUFnQVdvaUFTMEFBRG9BQ3lBQ0lBQWdBV29pQVMwQUFEb0FEQ0FDSUFBZ0FXb2lBUzBBQURvQURTQUNJQUFnQVdvaUFTMEFBRG9BRGlBQ0lBQWdBV290QUFBNkFBOExDNjhCQVFGL0l3QkIwQUJySWdZa0FDQUNJQVpCSUdvZ0JpQURFRlVDUUFKQVFRSWdBQ2dDQUNJRFFRWkhJQU5CQmtrYlFRRkdCRUFnQUNBRklBRkJ5QUpxSUFaQklHb2dCaUFFRUZRaUEwVU5BUXdDQ3lBQUlBVWdBU0FHUVNCcUlBWWdCQkJUSWdNTkFRc2dBQ0FGUVlBQ2FpQUJRY2dLYWlBR1FUVnFJQVpCRUdvZ0FTZ0NqQUVnQkJCU0lnTU5BRUVBSVFNZ0FDZ0N4QUZCQVVzTkFDQUNJQVVRR3dzZ0JrSFFBR29rQUNBREM2TXFBU1IvSXdCQklHc2lFQ1FBSUJBZ0JDZ0NCQ0lJTmdJTUlCQWdCQ2dDQ0RZQ0VDQURJQWh1SWdaQkJIUWhGQ0FESUFZZ0NHeHJRUVIwSVJVQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFBb0FnQWlCa0VEVFFSQUFrQUNRQUpBSUFaQkFtc09BZ0VDQUFzZ0FTZ0NrQUVoRXlBQUtBSUVJUTVCZnlFUEFuOGdBQ2dDeUFFaUNVVUVRRUVBSVFoQmZ3d0JDMEVBSVFoQmZ5QUpLQUlFSUE1SERRQWFRUUVoRWtGL0lBa29BZ0JCQlVzTkFCb2dDU2dDbUFFaUNFRVFkaUVISUFrb0FtZ0xJUTBnQUNnQ3pBRWlDVVVOQ0NBSktBSUVJQTVIRFFoQkFTRVdJQWtvQWdCQkJVc05DQ0FKS0FLc0FTSVJRUkIySVFvZ0NTZ0NiQ0VQREFnTElBRW9BcEFCSVJNZ0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhDMEYvSVFjQ1FDQUFLQUxNQVNJR1JRMEFJQXNnQmlnQ0JFY0VRQXdCQzBFQklSSWdCaWdDQUVFRlN3MEFJQVlvQXF3QklnbEJFSFloQ2lBR0tBSnNJUWNMSUFjZ0UwWUVRQ0FLSVFjZ0NTRUdEQWNMUVg4aER3SkFBa0FDUUNBQUtBTElBU0lJUlFSQVFRQWhCd3dCQzBFQUlRY2dDQ2dDQkNBTFJnMEJDMEVBSVFZTUFRdEJBU0VYSUFnb0FnQkJCVXNFUUVFQUlRWU1BUXNnQ0NnQ21BRWlCa0VRZGlFSElBZ29BbWdoRHdzQ1FBSkFJQUFvQXRBQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVTBOQVF3R0N3SkFJQUFvQXRRQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVXNOQmlBSUtBSndJUllnQ0NnQ3dBRWhDQXdIQzBFQUlRaEJmeUVXSUJJTkJpQVhSUTBHREFjTElBZ29BbXdoRmlBSUtBS3NBU0VJREFVTElBRW9BcEFCSVE4Z0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhCa0YvSVFjQ1FDQUFLQUxJQVNJS1JRUkFRUUFoQ0F3QkMwRUFJUWdnQmlBS0tBSUVSd1JBREFFTFFRRWhFU0FLS0FJQVFRVkxEUUFnQ2lnQ21BRWlDVUVRZGlFSUlBb29BbWdoQndzZ0J5QVBSZzBCQW44Q2Z3SkFBa0FnQUNnQ3pBRWlCMFVOQUNBSEtBSUVJQVpIRFFBZ0J5Z0NBRUVGU3cwQklBY29BbkFoRVNBSEtBSzhBU0VLSUFjb0Ftd2hFaUFIS0FLc0FTSUdRUkIyREFNTEFrQWdBQ2dDMUFFaUIwVU5BQ0FIS0FJRUlBWkhEUUJCQUNFR1FYOGhFaUFIS0FJQVFRVkxCRUJCZnlFUlFRQU1Bd3NnQnlnQ2NDRVJJQWNvQXNBQkRBSUxJQkVOQkF0QmZ5RVJRWDhoRWtFQUlRWkJBQXNoQ2tFQUN5RUhJQThnRWtZaUN5QVBJQkZHYWtFQlJ3UkFJQWNnQ0NBSFFSQjBRUkIxSWdzZ0NFRVFkRUVRZFNJT1NpSUlHeUlISUE0Z0N5QU9JQXNnRGtnYklBZ2JJZ2dnQ2tFUWRTSUxJQWdnQzBvYklBZEJFSFJCRUhVZ0MwZ2JJUWNnQmlBSklBWkJFSFJCRUhVaUN5QUpRUkIwUVJCMUlnbEtJZ1liSWdoQi8vOERjU0FKSUFzZ0NTQUxJQWxJR3lBR0d5SUdJQXBCRUhSQkVIVWlDU0FHSUFsS0d5QUlRUkIwUVJCMUlBbElHeUVHREFNTElBc05BaUFLUVJCMklRY2dDaUVHREFJTFFRRWhHeUFBUVlRQmFpRWNBMEFDZnlBQklCMUJBblFpSG1vaUlDSWtLQUt3QVNJR1FRSk5CRUFnQmtFQ2RFR2NOV29vQWdBTUFRdEJCQXNoSWlBQUlCNXFJZ1lnSUNnQ3dBRTJBbVFnQmlBQ0lDQW9Bc0FCRUJRaUJqWUNkQ0FHUlEwSUlDSUVRQ0FjSUIxQkJIUWlIMm9pSlNFbUlCd2dIMEVNY21vaUowRUNhaUVvSUJ3Z0gwRUljbW9pS1NFUklCd2dIMEVFY21vaUZpRVRRUUFoQmdOQUlBRWdIMm9nQmtFQ2RHb2lDQzhCMGdFaER5QUlMd0hRQVNFT0lDQW9Bc0FCSVNGQmZ5RVhBbjhnQUNBZFFRZDBJQ1FvQXJBQklpTkJCWFJxSUFaQkEzUnFJaHBCc0JscUtBSUFFQkVpQ1VVRVFFRUFJUXhCQUNFSVFRQWhDa0YvREFFTFFRQWhERUVBSVFoQkFDRUtRWDhnQ1NnQ0JDQUFLQUlFUncwQUdrRUJJUXBCZnlBSktBSUFRUVZMRFFBYUlBa2dHa0cwR1dvdEFBQWlCMEVDZEdvb0FvUUJJZ2hCRUhZaERDQUpJQWRCL0FGeGFpZ0NaQXNoRFFKQUFrQUNRQ0FBSUJwQnNCMXFLQUlBRUJFaUdFVUVRRUVBSVFrTUFRdEJBQ0VKSUJnb0FnUWdBQ2dDQkVZTkFRdEJBQ0VTUVFBaEN3d0JDMEVCSVFzZ0dDZ0NBRUVGU3dSQVFRQWhFZ3dCQ3lBWUlCcEJ0QjFxTFFBQUlnZEJBblJxS0FLRUFTSVNRUkIySVFrZ0dDQUhRZndCY1dvb0FtUWhGd3NDUUFKQUFrQUNRQUpBSUFBZ0drR3dJV29vQWdBUUVTSVpSUTBBSUJrb0FnUWdBQ2dDQkVjTkFDQVpLQUlBUVFWTkRRRU1BZ3NDUUNBQUlCcEJzQ1ZxS0FJQUVCRWlHVVVOQUNBWktBSUVJQUFvQWdSSERRQWdHU2dDQUVFRlN3MENJQmtnR2tHMEpXb3RBQUFpQjBIOEFYRnFLQUprSVJnZ0dTQUhRUUowYWlnQ2hBRWhCd3dEQzBFQUlRZEJmeUVZSUFwRkRRSWdDdzBDREFNTElCa2dHa0cwSVdvdEFBQWlCMEg4QVhGcUtBSmtJUmdnR1NBSFFRSjBhaWdDaEFFaEJ3d0JDMEVBSVFkQmZ5RVlDeUFYSUNGR0lnb2dEU0FoUmlJTGFpQVlJQ0ZHYWtFQlJ3UkFJQWtnRENBSlFSQjBRUkIxSWdzZ0RFRVFkRUVRZFNJTVNpSUpHeUlLSUF3Z0N5QU1JQXNnREVnYklBa2JJZ2tnQjBFUWRTSUxJQWtnQzBvYklBcEJFSFJCRUhVZ0MwZ2JJUXdnRWlBSUlCSkJFSFJCRUhVaUNpQUlRUkIwUVJCMUlndEtJZ2diSWdsQi8vOERjU0FMSUFvZ0N5QUtJQXRJR3lBSUd5SUlJQWRCRUhSQkVIVWlCeUFJSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVJREFFTElBZ2dFaUFMR3lFSUlBd2dDU0FMR3lFTUlBc05BQ0FLRFFBZ0IwRVFkaUVNSUFjaENBc2dDQ0FPYWlJS1FSQjBRUkIxUVlCQWEwSC8vd0JMRFFvZ0RDQVBhaUlKUVJCMFFSQjFRWUFRYWtIL0gwc05DaUFqUVFOTkJFQUNmd0pBQWtBQ1FBSkFJQ05CQVdzT0F3RUNBd0FMSUNVZ0Nqc0JBQ0FtSUFrN0FRSWdGaUFLT3dFQUlCTWdDVHNCQWlBcElBbzdBUUFnRVNBSk93RUNJQ2NnQ2pzQkFDQW9EQU1MSUJ3Z0JrRUJkQ0FlYWtFQ2RDSUhhaUlJSUFrN0FRSWdDQ0FLT3dFQUlCd2dCMEVFY21vaUNDQUtPd0VBSUFoQkFtb01BZ3NnQUNBR0lCNXFRUUowYWlJSUlBbzdBWXdCSUFnZ0NUc0JoZ0VnQ0NBS093R0VBU0FJUVk0QmFnd0JDeUFBSUFZZ0htcEJBblJxSWdnZ0Nqc0JoQUVnQ0VHR0FXb0xJQWs3QVFBTElBWkJBV29pQmlBaVJ3MEFDd3NnSFVFQmFpSWRRUVJIRFFBTFFRQWhEQU5BSUJBZ0FDQU1RUUowSWdKcUtBSjBOZ0lJSUF4QkFVdEJBM1FoQ1NBTVFRTjBRUWh4SVFjQ1FDQUJJQUpxS0FLd0FTSUNRUUpOQkVBQ1FBSkFBa0FnQWtFQmF3NENBUUlBQ3lBRklBQWdERUVFZEdwQmhBRnFJQkJCQ0dvZ0ZTQVVJQWNnQ1VFSVFRZ1FEZ3dEQ3lBRklBQWdERUVFZEdvaUFrR0VBV29nRUVFSWFpQVZJQlFnQnlBSlFRaEJCQkFPSUFVZ0FrR01BV29nRUVFSWFpQVZJQlFnQnlBSlFRUnlRUWhCQkJBT0RBSUxJQVVnQUNBTVFRUjBhaUlDUVlRQmFpQVFRUWhxSUJVZ0ZDQUhJQWxCQkVFSUVBNGdCU0FDUVlnQmFpQVFRUWhxSUJVZ0ZDQUhRUVJ5SUFsQkJFRUlFQTRNQVFzZ0JTQUFJQXhCQkhScUlnaEJoQUZxSUJCQkNHb2dGU0FVSUFjZ0NVRUVRUVFRRGlBRklBaEJpQUZxSUJCQkNHb2dGU0FVSUFkQkJISWlCaUFKUVFSQkJCQU9JQVVnQ0VHTUFXb2dFRUVJYWlBVklCUWdCeUFKUVFSeUlnSkJCRUVFRUE0Z0JTQUlRWkFCYWlBUVFRaHFJQlVnRkNBR0lBSkJCRUVFRUE0TElBeEJBV29pREVFRVJ3MEFDd3dHQ3lBSUlRY2dDU0VHQzBFQklSc2dCaUFNYWlJSVFSQjBRUkIxUVlCQWEwSC8vd0JMRFFVZ0J5QU5haUlHUVJCMFFSQjFRWUFRYWtIL0gwc05CU0FDSUE4UUZDSUhSUTBGSUFBZ0Jqc0JzZ0VnQUNBSU93R3dBU0FBSUFjMkFuUWdBQ0FQTmdKa0lBQWdCellDZkNBQUlBODJBbXdnQUNBQUtBS3dBU0lHTmdLc0FTQUFJQVkyQXFnQklBQWdCallDcEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FCS0FLVUFTRU9JQUV2QWFZQklRd2dBUzhCcEFFaEN5QUFLQUlFSVFrQ1FBSkFJQUFvQXRBQklnZEZEUUFnQnlnQ0JDQUpSdzBBUVFFaEVTQUhLQUlBUVFWTEJFQkJmeUVJUVFBaEJ3d0NDeUFIS0FKc0lRZ2dCeWdDckFFaEJ3d0JDMEYvSVFoQkFDRUhJQUFvQXN3QklncEZCRUJCQUNFUkRBRUxJQWtnQ2lnQ0JFY0VRRUVBSVJFTUFRdEJBU0VSSUFvb0FnQkJCVXNOQUNBS0tBSnNJUWdnQ2lnQ3NBRWhCd3NDUUNBSUlBNUdSUVJBSUFaQkVIWWhDQUovQWtBQ1FDQUFLQUxNQVNJTlJRMEFJQTBvQWdRZ0NVY05BQ0FOS0FJQVFRVkxEUUVnRFNnQ3ZBRWlFVUVRZGlFS0lBMG9BbkFNQWdzZ0VVVU5Bd3RCQUNFUlFRQWhDa0YvQ3lFTklBNGdEMFlpQ1NBTklBNUdha0VCUndSQUlBb2dDQ0FLUVJCMFFSQjFJZzBnQ0VFUWRFRVFkVW9pQ0JzaUNTQUdRUkIxSWdvZ0RTQUtJQW9nRFVvYklBZ2JJZ2dnQjBFUWRTSUtJQWdnQ2tvYklBbEJFSFJCRUhVZ0NrZ2JJUWdnRVNBR0lCRkJFSFJCRUhVaUNpQUdRUkIwUVJCMUlnMUtJZ1liSWdsQi8vOERjU0FOSUFvZ0RTQU5JQXBLR3lBR0d5SUdJQWRCRUhSQkVIVWlCeUFHSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVHREFJTElBa05BU0FOSUE1R0JFQWdFVUgvL3dOeElBcEJFSFJ5SVFZZ0NpRUlEQUlMQ3lBSFFSQjJJUWdnQnlFR0N5QUdJQXRxSWdkQkVIUkJFSFZCZ0VCclFmLy9BRXNOQlNBSUlBeHFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MEZJQUlnRGhBVUlnSkZEUVVnQUNBR093SENBU0FBSUFjN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKNElBQWdEallDY0NBQUlBNDJBbWdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0tnQVNBQUlBWTJBcHdCSUFBZ0JqWUNtQUVnQUVHVUFXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVJUVJBUURpQVFJQUFvQW5nMkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFoQkFFRUlRUkFRRGd3RUMwRUFJUWhCZnlFV0N5QVBJQk5HSWdzZ0V5QVdSbXBCQVVjRVFDQUtJQWNnQ2tFUWRFRVFkU0lMSUFkQkVIUkJFSFVpRGtvaUJ4c2lDaUFPSUFzZ0RpQUxJQTVJR3lBSEd5SUhJQWhCRUhVaUN5QUhJQXRLR3lBS1FSQjBRUkIxSUF0SUd5RUhJQWtnQmlBSlFSQjBRUkIxSWdvZ0JrRVFkRUVRZFNJTFNpSUdHeUlKUWYvL0EzRWdDeUFLSUFzZ0NpQUxTQnNnQmhzaUJpQUlRUkIwUVJCMUlnZ2dCaUFJU2hzZ0NVRVFkRUVRZFNBSVNCc2hCZ3dCQ3lBTERRQWdDRUVRZGlFSElBZ2hCZ3RCQVNFYklBWWdER29pQ0VFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0RXb2lCa0VRZEVFUWRVR0FFR3BCL3g5TERRSWdBaUFURUJRaUIwVU5BaUFBSUFZN0FhSUJJQUFnQ0RzQm9BRWdBQ0FITmdKMElBQWdFellDWkNBQUlBYzJBbmdnQUNBVE5nSm9JQUFnQUNnQ29BRWlEellDbkFFZ0FDQVBOZ0tZQVNBQUlBODJBcFFCSUFBZ0R6WUNrQUVnQUNBUE5nS01BU0FBSUE4MkFvZ0JJQUFnRHpZQ2hBRWdBU2dDbEFFaERpQUJMd0dtQVNFTklBRXZBYVFCSVF3Q2Z3SkFBa0FDUUNBQUtBTElBU0lHQkVBZ0JpZ0NCQ0FBS0FJRVJnUkFJQVlvQWdCQkJVMEVRQ0FHS0FLNEFTSUxRUkIySVFjZ0JpZ0NjQ0FPUncwRUlBc2hDUXdEQzBGL0lSSkJBQ0VKUVFBaEIwRUFJUXRCQUNFS0lBNUJmMFlOQWd3RUMwRi9JUkpCQUNFSlFRQWhCMEVBSVF0QkFDRUtJQTVCZjBZTkFRd0RDMEYvSVJKQkFDRUpRUUFoQjBFQUlRdEJBQ0VLSUE1QmYwY05BZ3NnQ1VILy93TnhJQWRCRUhSeURBSUxJQVlvQW1naEVpQUdLQUtnQVNFS0lBY2hDUXNnRDBFUWRpRUlJQTRnRTBZaUJpQU9JQkpHYWtFQlJ3UkFJQWdnQ1NBSlFSQjBRUkIxSWdrZ0NFRVFkRUVRZFVnaUJ4c2lDQ0FKSUE5QkVIVWlCaUFKSUFZZ0NVZ2JJQWNiSWdZZ0NrRVFkU0lISUFZZ0Iwb2JJQWhCRUhSQkVIVWdCMGdiSVFjZ0R5QUxJQXRCRUhSQkVIVWlDeUFQUVJCMFFSQjFJZ2xJSWdZYklnaEIvLzhEY1NBTElBa2dDeUFKSUF0SUd5QUdHeUlHSUFwQkVIUkJFSFVpQ1NBR0lBbEtHeUFJUVJCMFFSQjFJQWxJR3d3QkN5QUlJQXBCRUhZZ0Joc2hCeUFQSUFvZ0Joc0xJQXhxSWdoQkVIUkJFSFZCZ0VCclFmLy9BRXNOQWlBSElBMXFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MENJQUlnRGhBVUlnSkZEUUlnQUNBR093SENBU0FBSUFnN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKOElBQWdEallDY0NBQUlBNDJBbXdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0t3QVNBQUlBWTJBcXdCSUFBZ0JqWUNxQUVnQUVHa0FXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVRUVFnUURpQVFJQUFvQW53MkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFCQkNFRVFRUWdRRGd3QkN3SkFJQVpGQkVBZ0VrVUVRRUVBSVFrTUFnc2dGa1VFUUVFQUlRa01BZ3NnQ0VILy93TnhJQWRCRUhSeUlBMXlSUVJBUVFBaENRd0NDMEVBSVFrZ0VVSC8vd054SUFwQkVIUnlJQTl5UlEwQkN5QUJMd0dpQVNFTElBRXZBYUFCSVFrQ1FBSkFBa0FDUUFKQUlBQW9BdEFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVME5BUXdDQ3dKQUlBQW9BdFFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVc05BaUFHS0FKd0lSY2dCaWdDd0FFaERBd0RDMEYvSVJjZ0VrVU5BaUFXRFFJTUF3c2dCaWdDYkNFWElBWW9BcXdCSVF3TUFRdEJmeUVYQ3lBUElCTkdJZ1lnRFNBVFJpSU5haUFUSUJkR2FrRUJSd1JBSUFvZ0J5QUtRUkIwUVJCMUlnb2dCMEVRZEVFUWRTSU5TaUlHR3lJSElBMGdDaUFOSUFvZ0RVZ2JJQVliSWdZZ0RFRVFkU0lLSUFZZ0Nrb2JJQWRCRUhSQkVIVWdDa2diSVFjZ0VTQUlJQkZCRUhSQkVIVWlDaUFJUVJCMFFSQjFJZzFLSWdZYklnaEIvLzhEY1NBTklBb2dEU0FLSUExSUd5QUdHeUlHSUF4QkVIUkJFSFVpQ2lBR0lBcEtHeUFJUVJCMFFSQjFJQXBJR3lFSURBRUxJQWdnRVNBTkd5RUlJQWNnQ2lBTkd5RUhJQTBOQUNBR0RRQWdERUVRZGlFSElBd2hDQXRCQVNFYklBZ2dDV29pREVFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0Myb2lDVUVRZEVFUWRVR0FFR3BCL3g5TERRSUxJQUlnRXhBVUlnSkZCRUJCQVNFYkRBSUxJQUFnQ1RzQndnRWdBQ0FNT3dIQUFTQUFJQUkyQW5RZ0FDQVROZ0prSUFBZ0FqWUNnQUVnQUNBQ05nSjhJQUFnQWpZQ2VDQUFJQk0yQW5BZ0FDQVROZ0pzSUFBZ0V6WUNhQ0FBSUFBb0FzQUJJZ1kyQXJ3QklBQWdCallDdUFFZ0FDQUdOZ0swQVNBQUlBWTJBckFCSUFBZ0JqWUNyQUVnQUNBR05nS29BU0FBSUFZMkFxUUJJQUFnQmpZQ29BRWdBQ0FHTmdLY0FTQUFJQVkyQXBnQklBQWdCallDbEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FRSUFJMkFnZ2dCU0FBUVlRQmFpQVFRUWhxSUJVZ0ZFRUFRUUJCRUVFUUVBNExRUUFoR3lBQUtBTEVBVUVCU3cwQUlBQW9BZ0FFUUNBRUlBTWdCU0FCUWNnQ2FoQllEQUVMSUFRZ0JSQWJDeUFRUVNCcUpBQWdHd3VUQ3dFUGZ5QUFLQUlBSWhFZ0FTQUJJQUFvQWdRaUNuQWlBV3NpQkVFSWRHb2dBVUVFZEdvaEJTQUtRUVIwSVFzZ0FDZ0NDQ0FLYkNJQVFRWjBJUVlnQVVFRGRDRUpJQUJCQ0hRaERDQUVRUVowSVJJZ0NrRUNkRUg4Ly8vL0EzRkJBblFoRUFOQUlBVWdEa0VDZENJQVFmQXBhaWdDQUNJQklBdHNhaUFBUWJBcGFpZ0NBQ0lBYWlFRUlBSWdBVUVFZEdvZ0FHb2hBQUpBSUFNZ0RrRUdkR29pQVNnQ0FDSUhRZi8vL3dkSEJFQWdBU2dDQkNFSUlBQXRBQUVoRFNBRUlBY2dBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BZ2doQnlBQUxRQUNJUThnQkNBSUlBMXFRYkF1YWkwQUFEb0FBU0FCS0FJTUlRZ2dBQzBBQXlFTklBUWdCeUFQYWtHd0xtb3RBQUE2QUFJZ0JDQUlJQTFxUWJBdWFpMEFBRG9BQXlBQktBSVVJUWNnQUMwQUVTRUlJQVFnQzJvaUJDQUJLQUlRSUFBdEFCQnFRYkF1YWkwQUFEb0FBQ0FCS0FJWUlRMGdBQzBBRWlFUElBUWdCeUFJYWtHd0xtb3RBQUE2QUFFZ0FTZ0NIQ0VISUFBdEFCTWhDQ0FFSUEwZ0QycEJzQzVxTFFBQU9nQUNJQVFnQnlBSWFrR3dMbW90QUFBNkFBTWdBU2dDSkNFSElBQXRBQ0VoQ0NBRUlBdHFJZ1FnQVNnQ0lDQUFMUUFnYWtHd0xtb3RBQUE2QUFBZ0FTZ0NLQ0VOSUFBdEFDSWhEeUFFSUFjZ0NHcEJzQzVxTFFBQU9nQUJJQUVvQWl3aEJ5QUFMUUFqSVFnZ0JDQU5JQTlxUWJBdWFpMEFBRG9BQWlBRUlBY2dDR3BCc0M1cUxRQUFPZ0FESUFFb0FqUWhCeUFBTFFBeElRZ2dCQ0FMYWlJRUlBRW9BakFnQUMwQU1HcEJzQzVxTFFBQU9nQUFJQUVvQWpnaERTQUFMUUF5SVE4Z0JDQUhJQWhxUWJBdWFpMEFBRG9BQVNBQktBSThJUUVnQUMwQU15RUFJQVFnRFNBUGFrR3dMbW90QUFBNkFBSWdCQ0FBSUFGcVFiQXVhaTBBQURvQUF3d0JDeUFBS0FJUUlRRWdCQ0FBS0FJQU5nSUFJQVFnRUdvaUJDQUJOZ0lBSUFBb0FqQWhBU0FFSUJCcUlnUWdBQ2dDSURZQ0FDQUVJQkJxSUFFMkFnQUxJQTVCQVdvaURrRVFSdzBBQ3lBTUlCRnFJQkpxSUFscUloQWdCbW9oRVNBS1FRTjBRZmovLy84SGNTSUxRUUoyUVFKMElRNUJFQ0VLQTBBZ0NrRUNkRUVNY1NJQVFmQXBhaWdDQUNJQklBdHNJQUJCc0NscUtBSUFJZ0JxSUJFZ0VDQUtRUk5MSWdVYmFpRUVJQUpCd0FKQmdBSWdCUnRxSUFGQkEzUWdBR3BxSVFBQ1FDQURJQXBCQm5ScUlnRW9BZ0FpQlVILy8vOEhSd1JBSUFFb0FnUWhCaUFBTFFBQklRa2dCQ0FGSUFBdEFBQnFRYkF1YWkwQUFEb0FBQ0FCS0FJSUlRVWdBQzBBQWlFTUlBUWdCaUFKYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VHSUFBdEFBTWhDU0FFSUFVZ0RHcEJzQzVxTFFBQU9nQUNJQVFnQmlBSmFrR3dMbW90QUFBNkFBTWdBU2dDRkNFRklBQXRBQWtoQmlBRUlBdHFJZ1FnQVNnQ0VDQUFMUUFJYWtHd0xtb3RBQUE2QUFBZ0FTZ0NHQ0VKSUFBdEFBb2hEQ0FFSUFVZ0JtcEJzQzVxTFFBQU9nQUJJQUVvQWh3aEJTQUFMUUFMSVFZZ0JDQUpJQXhxUWJBdWFpMEFBRG9BQWlBRUlBVWdCbXBCc0M1cUxRQUFPZ0FESUFFb0FpUWhCU0FBTFFBUklRWWdCQ0FMYWlJRUlBRW9BaUFnQUMwQUVHcEJzQzVxTFFBQU9nQUFJQUVvQWlnaENTQUFMUUFTSVF3Z0JDQUZJQVpxUWJBdWFpMEFBRG9BQVNBQktBSXNJUVVnQUMwQUV5RUdJQVFnQ1NBTWFrR3dMbW90QUFBNkFBSWdCQ0FGSUFacVFiQXVhaTBBQURvQUF5QUJLQUkwSVFVZ0FDMEFHU0VHSUFRZ0Myb2lCQ0FCS0FJd0lBQXRBQmhxUWJBdWFpMEFBRG9BQUNBQktBSTRJUWtnQUMwQUdpRU1JQVFnQlNBR2FrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQXRBQnNoQUNBRUlBa2dER3BCc0M1cUxRQUFPZ0FDSUFRZ0FDQUJha0d3TG1vdEFBQTZBQU1NQVFzZ0FDZ0NDQ0VCSUFRZ0FDZ0NBRFlDQUNBRUlBNXFJZ1FnQVRZQ0FDQUFLQUlZSVFFZ0JDQU9haUlFSUFBb0FoQTJBZ0FnQkNBT2FpQUJOZ0lBQ3lBS1FRRnFJZ3BCR0VjTkFBc0w1Z0VCQjM4Q1FDQUFLQUlBSWdWRkRRQWdBRUVCTmdJOElBQW9BamdOQUNBQUtBSWNJUVpCLy8vLy93Y2hBZ05BQTBBZ0JTQURRU2hzYWlJRUtBSVlCRUFnQkNBQklBUW9BaEFpQkNBQ1NDSUhHeUVCSUFRZ0FpQUhHeUVDQ3lBRFFRRnFJZ01nQmswTkFDQUJSUTBDSUFBb0Fnd2dBQ2dDRUNJRFFRUjBhaUlDSUFFb0FnQTJBZ0FnQWlBQktBSWtOZ0lNSUFJZ0FTZ0NIRFlDQkNBQ0lBRW9BaUEyQWdnZ0FDQURRUUZxTmdJUVFRQWhBeUFCUVFBMkFoZ2dBU2dDRkNFRVFRQWhBVUgvLy8vL0J5RUNJQVFOQUFzZ0FDQUFLQUlzUVg5cU5nSXNEQUFBQ3dBTEM5d0dBUXAvSUFCQ0FEY0NFQUpBQWtBQ1FDQURSUTBBQWtBQ1FDQUJJQUFvQWpBaUEwY0VRQ0FEUVFGcUlBQW9BaUFpQkhBaUNTQUJSZzBCSUFBb0FnQWdBQ2dDSEVFb2JHb29BZ0FoQ3dOQUFrQUNRQ0FBS0FJb0lnY0VRQ0FBS0FJQUlRaEJBQ0VEQTBBZ0NDQURRU2hzYWlJRktBSVVRWDlxUVFGTkJFQWdCU0FGS0FJTUlnVWdCRUVBSUFVZ0NVc2JhellDQ0FzZ0EwRUJhaUlESUFkSERRQUxJQWNnQUNnQ0dFa05Ba0YvSVFWQkFDRURRUUFoQkFOQUlBZ2dBMEVvYkdvaUJpZ0NGRUYvYWtFQlRRUkFJQVlvQWdnaUJpQUVJQVZCZjBZZ0JpQUVTSElpQmhzaEJDQURJQVVnQmhzaEJRc2dBMEVCYWlJRElBZEhEUUFMSUFWQkFFNE5BVUVCRHd0QkFDRUhJQUFvQWhnTkFVRUJEd3NnQ0NBRlFTaHNhaUlEUVFBMkFoUWdBQ0FIUVg5cUlnYzJBaWdnQXlnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FDZ0NMQ0lGSUFBb0Fod2lDRThFUUNBQUtBSTREUVlnQUNnQ0FDRU1BMEJCQUNFRVFmLy8vLzhISVFaQkFDRURBMEFnRENBRFFTaHNhaUlLS0FJWUJFQWdDaUFFSUFvb0FoQWlDaUFHU0NJTkd5RUVJQW9nQmlBTkd5RUdDeUFEUVFGcUlnTWdDRTBOQUFzQ1FDQUVSUTBBSUFBb0Fnd2dBQ2dDRUNJR1FRUjBhaUlESUFRb0FnQTJBZ0FnQXlBRUtBSWtOZ0lNSUFNZ0JDZ0NIRFlDQkNBRElBUW9BaUEyQWdnZ0FDQUdRUUZxTmdJUUlBUkJBRFlDR0NBRUtBSVVEUUFnQUNBRlFYOXFJZ1UyQWl3TElBVWdDRThOQUFzTElBQW9BZ0FpQkNBSVFTaHNhaUlESUFrMkFnd2dBMEtBZ0lDQUVEY0NFQ0FEUVFBMkFoZ2dBeUFKTmdJSUlBQWdCMEVCYWpZQ0tDQUFJQVZCQVdvMkFpd2dCQ0FJUVFGcUVDY2dDVUVCYWlBQUtBSWdJZ1J3SWdrZ0FVY05BQXNDUUNBQUtBSVFJZ2xGRFFBZ0FDZ0NBQ0lGSUFBb0Fod2lCRUVvYkdvaUNDZ0NBQ0VISUFBb0Fnd2hCa0VBSVFNRFFDQUhJQVlnQTBFRWRHb29BZ0JIQkVBZ0NTQURRUUZxSWdOSERRRU1BZ3NMSUFSRkRRQkJBQ0VEQTBBZ0N5QUZJQU5CS0d4cUlna29BZ0JIQkVBZ0JDQURRUUZxSWdOSERRRU1BZ3NMSUFrZ0J6WUNBQ0FJSUFzMkFnQUxJQUlOQlNBQUtBSXdJUU1NQWdzZ0FrRUFSdzhMSUFJTkF3c2dBU0FEUmcwQUlBQWdBU0FBS0FJZ0lnQnFRWDlxSUFCd05nSXdDMEVBRHdzRFFBd0FBQXNBQ3lBQUlBRTJBakJCQUF0MUFRTi9Ba0FnQUNnQ0FDSUJSUTBBSUFBb0FoeEJmMFlOQUFOQUlBRWdBa0VvYkNJRGFpZ0NCQkFFSUFBb0FnQWlBU0FEYWtFQU5nSUVJQUpCQVdvaUFpQUFLQUljUVFGcVNRMEFDd3NnQVJBRUlBQkJBRFlDQUNBQUtBSUVFQVFnQUVFQU5nSUVJQUFvQWd3UUJDQUFRUUEyQWd3TGd3RUJBMzhDUUNBQUtBSUFJZ1pGRFFBZ0FDZ0NIRUYvUmcwQUEwQWdCaUFIUVNoc0lnaHFLQUlFRUFRZ0FDZ0NBQ0lHSUFocVFRQTJBZ1FnQjBFQmFpSUhJQUFvQWh4QkFXcEpEUUFMQ3lBR0VBUWdBRUVBTmdJQUlBQW9BZ1FRQkNBQVFRQTJBZ1FnQUNnQ0RCQUVJQUJCQURZQ0RDQUFJQUVnQWlBRElBUWdCUkJkQzRBQ0FRSi9JQUFnQlRZQ09DQUFJQVEyQWlBZ0FFTC8vd00zQWlRZ0FFSUFOd0lzSUFBZ0EwRUJJQU5CQVVzYklnTTJBaGdnQUNBRElBSWdCUnNpQWpZQ0hDQUFRYWdGRUFvaUF6WUNBRUgvL3dNaEJBSkFJQU5GRFFCQkFDRUZJQU5CQUVHb0JSQUhJUVlnQWtGL1J3UkFJQUZCZ0FOc1FTOXlJUVZCQUNFREEwQWdCaUFEUVNoc2FpSUhJQVVRQ2lJQk5nSUVJQUZGRFFJZ0J5QUJRUUFnQVd0QkQzRnFOZ0lBSUFNZ0Fra2hBU0FEUVFGcUlRTWdBUTBBQ3lBQ1FRUjBRUkJxSVFVTElBQkJ4QUFRQ2lJQk5nSUVJQUFnQlJBS0lnSTJBZ3dnQWtVTkFDQUJSUTBBUVFBaEJDQUJRUUJCeEFBUUJ4b2dBRUlBTndJUUN5QUVDOU1CQVFkL1FRRWhBUUpBSUFBb0FqZ05BQ0FBS0FJY0lRVWdBQ2dDQUNFR1FmLy8vLzhISVFOQkFDRUJBMEFnQmlBQlFTaHNhaUlFS0FJWUJFQWdCQ0FDSUFRb0FoQWlCQ0FEU0NJSEd5RUNJQVFnQXlBSEd5RURDeUFCUVFGcUlnRWdCVTBOQUFzZ0FrVUVRRUVCRHdzZ0FDZ0NEQ0FBS0FJUUlnTkJCSFJxSWdFZ0FpZ0NBRFlDQUNBQklBSW9BaVEyQWd3Z0FTQUNLQUljTmdJRUlBRWdBaWdDSURZQ0NDQUFJQU5CQVdvMkFoQkJBQ0VCSUFKQkFEWUNHQ0FDS0FJVURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQkMvVUVBUWgvSUFBb0FpZ2lCQVJBSUFBb0FnQWhCd05BSUFjZ0JVRW9iR29pQmlnQ0ZFRi9ha0VCVFFSQUlBWWdCaWdDRENJSUlBSkxCSDhnQ0NBQUtBSWdhd1VnQ0FzMkFnZ0xJQVZCQVdvaUJTQUVSdzBBQ3d0QkFDRUVBa0FnQVNnQ0FFVU5BQ0FCS0FJRUlnVkJBa3NOQUVFQUlRY2dBaUVHQTBBQ1FBSkFBa0FnQlVFQ1J3UkFJQUVnQjBFTWJHb29BZ2doQkFKQUlBVkZCRUFnQmlBRWF5SUdRWDlLRFFFZ0FDZ0NJQ0FHYWlFR0RBRUxJQVFnQm1vaUJrRUFJQUFvQWlBaUJTQUdJQVZJRzJzaEJnc2dCaUVKSUFZZ0Frc0VRQ0FHSUFBb0FpQnJJUWtMSUFBb0FoZ2lDa1VFUUVFQkR3c2dBQ2dDQUNFSVFRQWhCUU5BSUFnZ0JVRW9iR29pQkNnQ0ZDSUxRWDlxUVFGTkJFQWdCQ2dDQ0NBSlJnMERDMEVCSVFRZ0JVRUJhaUlGSUFwSERRQUxEQVVMUVFFaEJDQUFLQUlZSWdsRkRRUWdBU0FIUVF4c2FpZ0NEQ0VLSUFBb0FnQWhDRUVBSVFVRFFDQUlJQVZCS0d4cUlnUW9BaFJCQTBZRVFDQUVLQUlJSUFwR0RRTUxRUUVoQkNBRlFRRnFJZ1VnQ1VjTkFBc01CQXNnQlVFQVNBUkFRUUVQQzBFQklRUWdDMEVCU3cwQkRBTUxRUUVoQkNBRlFRQklEUUlMSUFjZ0F5SUVTUVJBQTBBZ0FDZ0NCQ0lKSUFSQkFuUnFJQWtnQkVGL2FpSUVRUUowYWlnQ0FEWUNBQ0FFSUFkTERRQUxJQUFvQWdBaENBc2dBQ2dDQkNBSFFRSjBhaUFJSUFWQktHd2lDV28yQWdBZ0IwRUJhaUlISVFRZ0J5SUZJQU5OQkVBRFFDQUFLQUlFSWdnZ0JVRUNkR29vQWdBaUNpQUFLQUlBSUFscVJ3UkFJQWdnQkVFQ2RHb2dDallDQUNBRVFRRnFJUVFMSUFWQkFXb2lCU0FEVFEwQUN3dEJBQ0VFSUFFZ0IwRU1iR29vQWdRaUJVRURTUTBBQ3dzZ0JBc0hBRUhFR2hBS0M3Y0JBUUovSXdCQkVHc2lCaVFBSUFaQkFEWUNEQ0FBSUFFZ0FpQUdRUXhxRUNvaUIwRjljVVVFUUFOQUlBQWdBU0FHS0FJTUlnZHFJZ0VnQWlBSGF5SUNJQVpCREdvUUtpSUhRWDF4UlEwQUN3c2dCMEVCUmdSQUlBUWdBQ2dDRUNJQktBSTBRUVIwTmdJQUlBVWdBU2dDT0VFRWREWUNBQ0FESUFCQnhBbHFJZ0FvQWhRaUFTQUFLQUlRU1FSL0lBQWdBVUVCYWpZQ0ZDQUFLQUlNSUFGQkJIUnFCVUVBQ3lnQ0FEWUNBQXNnQmtFUWFpUUFJQWNMU1FFQmZ5QUFRUUJCeEJvUUJ5SUNRYlFLYWtFQk5nSUFJQUpDZ0lLQWdJQUVOd0lFSUFCQndCQVFDaUlDTmdLd0dpQUNSUVJBUVFFUEN5QUJCRUFnQUVFQk5nTEFDUXRCQUF1NkJBRUpmd0pBQWtBZ0FVRUVTUTBBSUFBdEFBQU5BQ0FBTFFBQkRRQWdBQzBBQWlJSFFRRkxEUUJCQXlFRUlBQkJBMm9oQlVFQ0lRaEJmU0VNQWtBRFFDQUZJUVlDZnlBSVFRRnFJQWRCL3dGeElnVkZEUUFhUVFBaEJ5QUZRUUZHUVFBZ0NFRUJTeHNOQWtFQUN5RUlJQVJCZjNNaERDQUdRUUZxSVFVZ0JpMEFBQ0VISUFSQkFXb2lCQ0FCUncwQUN5QURJQUUyQWdCQkFROExJQVFoQ2tFQUlRaEJBQ0VGQTBCQkFTQUlJQWNnQmkwQUFDSUxSV29pQ1VFQ1Joc2dDQ0FMUVFOR0d5RUlJQXBCQVdvaENnSkFJQXRCQVVjTkFDQUpRUUpKRFFBZ0FpQUtJQXhxSUFsQmYzTnFJZ0UyQWd4QkFDQUpRWDFxSWdZZ0JpQUpTeHNoQnd3REMwRUFJQWtnQ3hzaEIwRUJJQVVnQ1VFQ1N4c2dCU0FMR3lFRklBWkJBV29oQmlBQklBcEhEUUFMSUFJZ0FTQU1haUFIYXlJQk5nSU1EQUVMSUFJZ0FUWUNERUVCSVFoQkFDRUhDeUFDUVFBMkFoQWdBa0VBTmdJSUlBSWdBQ0FFYWlJQU5nSUVJQUlnQURZQ0FDQURJQVFnQjJvZ0FXbzJBZ0JCQVNFREFrQWdCUTBBUVFBaEF5QUlSUTBBSUFJQ2Z5QUNLQUlNSWdGRkJFQWdBQ0VFUVFBTUFRc2dBQ0VFUVFBaEJnTkFJQUZCZjJvaEFTQUVMUUFBSVFVQ2Z3SkFJQVpCQWtjTkFDQUZRUU5HQkVBZ0FVVUVRRUVCRHdzZ0JDMEFBVUVEU3dSQVFRRVBDMEVBSVFZZ0JFRUJhZ3dDQ3lBRlFRTlBEUUJCQVE4TElBQWdCVG9BQUVFQUlBWkJBV29nQlJzaEJpQUFRUUZxSVFBZ0JFRUJhZ3NoQkNBQkRRQUxJQUlvQWd3TElBQWdCR3RxTmdJTUN5QURDd3Z0TWhrQVFZWUlDOG9GWmlBbUVBWUlaUmhsR0VNUVF4QkRFRU1RUXhCREVFTVFReEFpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNBQUFBQUFBQUFBQWFrQktNQ29vQ2lCcE9HazRTU2hKS0NrZ0tTQUpHQWtZYURCb01HZ3dhREJJSUVnZ1NDQklJQ2dZS0Jnb0dDZ1lDQkFJRUFnUUNCQm5LR2NvWnlobktHY29aeWhuS0djb1J4aEhHRWNZUnhoSEdFY1lSeGhIR0c1Z1RsZ3VVQTVRYmxoT1VDNUlEa2dOUUExQVRVaE5TQzFBTFVBTk9BMDRiVkJ0VUUxQVRVQXRPQzA0RFRBTk1HdElhMGhyU0d0SWEwaHJTR3RJYTBoTE9FczRTemhMT0VzNFN6aExPRXM0S3pBck1Dc3dLekFyTUNzd0t6QXJNQXNvQ3lnTEtBc29DeWdMS0Fzb0N5Z0FBQUFBTDJndmFCQ0FVSUF3Z0JCNGNJQlFlREI0RUhCd2VGQndNSEFRYUc5d2IzQlBhRTlvTDJBdllBOWdEMkJ2YUc5b1QyQlBZQzlZTDFnUFdBOVlBQUFBQUFBQUFBQm1PRVlnSmlBR0VHWXdSaGdtR0FZSVpTaGxLQ1VRSlJCa0lHUWdaQ0JrSUdRWVpCaGtHR1FZUXhCREVFTVFReEJERUVNUVF4QkRFQUFBQUFBQUFBQUFhVWhKT0NrNENUQUlLQWdvU0RCSU1DZ3dLREFJSUFnZ1owQm5RR2RBWjBCSEtFY29SeWhIS0Njb0p5Z25LQ2NvQnhnSEdBY1lCeGdBQUFBQWJYaHRlRzZBVG9BdWdBNkFMbmdPZUU1NExuQk5jRTF3RFhBTmNHMXdiWEJOYUUxb0xXZ3RhQTFvRFdodGFHMW9UV0JOWUMxZ0xXQU5ZQTFnREZnTVdBeFlERmhNV0V4WVRGaE1XQ3hZTEZnc1dDeFlERkFNVUF4UURGQnNZR3hnYkdCc1lFeFFURkJNVUV4UUxGQXNVQ3hRTEZBTVNBeElERWdNU0d0WWExaHJXR3RZYTFocldHdFlhMWhMU0V0SVMwaExTRXRJUzBoTFNFdElLMGdyU0N0SUswZ3JTQ3RJSzBnclNBdEFDMEFMUUF0QUMwQUxRQXRBQzBCclVHdFFhMUJyVUd0UWExQnJVR3RRUzBCTFFFdEFTMEJMUUV0QVMwQkxRQ3RBSzBBclFDdEFLMEFyUUN0QUswQUxPQXM0Q3pnTE9BczRDemdMT0FzNEFFSGdEUXV1Q1FZWVJqZ21PQVlRWmtoR01DWXdCZ2dsS0NVb1JTaEZLQ1VnSlNCRklFVWdKUmdsR0dWQVpVQkZHRVVZSlJBbEVHUTRaRGhrT0dRNFpEQmtNR1F3WkRCa0tHUW9aQ2hrS0dRZ1pDQmtJR1FnWkJoa0dHUVlaQmhFRUVRUVJCQkVFQ1FJSkFna0NDUUlCQUFFQUFRQUJBQUFBQXFBYW9CS2dDcUFDbmhxZUVwNEtuZ0tjR3B3U25BcWNBcG9LV2dwYUFsZ0NXQkphRWxvS1dBcFlBbFlDVmhwYUdsb1NXQkpZQ2xZS1ZnSlVBbFFhR0JvWUdoZ2FHQklXRWhZU0ZoSVdDaFFLRkFvVUNoUUNFZ0lTQWhJQ0Vob1dHaFlhRmhvV0VoUVNGQklVRWhRS0Vnb1NDaElLRWdJUUFoQUNFQUlRQWM0QnpnSE9BYzRCemdIT0FjNEJ6Z0hNQWN3QnpBSE1BY3dCekFITUFjd1IwaEhTRWRJUjBoSFNFZElSMGhIU0Fjb0J5Z0hLQWNvQnlnSEtBY29CeWhuVUdkUVoxQm5VR2RRWjFCblVHZFFSMEJIUUVkQVIwQkhRRWRBUjBCSFFDZEFKMEFuUUNkQUowQW5RQ2RBSjBBSElBY2dCeUFISUFjZ0J5QUhJQWNnQmdnbUNBQUFCZ0FHRUNZUVJoQUFBQVlZSmhoR0dHWVlCaUFtSUVZZ1ppQUdLQ1lvUmlobUtBWXdKakJHTUdZd0JqZ21PRVk0WmpnR1FDWkFSa0JtUUFaSUpraEdTR1pJQmxBbVVFWlFabEFHV0NaWVJsaG1XQVpnSm1CR1lHWmdCbWdtYUVab1ptZ0djQ1p3Um5CbWNBWjRKbmhHZUdaNEJvQW1nRWFBWm9BQUFFTVFBZ0FDQUNFSUlRZ2hDQ0VJWnlCbklFZ2dLQ0JIR0VjWUp4Z25HQVlnQmlBR0lBWWdCaGdHR0FZWUJoZ0dFQVlRQmhBR0VHWVlaaGhtR0dZWUpoQW1FQ1lRSmhBR0NBWUlCZ2dHQ0FBQVpWVkVSRFEwSXlNakl4TVRFeE1CQVFFQkFRRUJBUUVCQVFFQkFRRUJBUG5wMmNqSXVMaW5wNmVubDVlWGw0YUdob2FHaG9hR2RuWjJkbloyZG5ibTFzYTJwYVdWbFlTRWhJUjBkSFIwWkdSa1pGUlVWRlJEUTBORFEwTkRRek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEV3TURBd01EQXdNRDFyYkZ4YVdsbFpXRWhJU0VWRlJVVkVSRVJFUUVCQVFFYzNOemMzTnpjM05qWTJOalkyTmpZek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEU4VzFwUVdVbEhSME5EUWtKSU9EZzROalkyTmpVMU5UVTBORFEwTVRFeE1UdFpXa3BJU0VKQ1FVRkFRRWMzTnpjMk5qWTJOVFUxTlRRME5EUXpNek16T21CaFVWaElTRWhKT1RrNU9UazVPVGMzTnpjM056YzNOalkyTmpZMk5qWTFOVFUxTlRVMU5UUTBORFEwTkRRME16TXpNek16TXpNeU1qSXlNakl5TWpsZ1lWRlhSMGRIU0RnNE9EZzRPRGcyTmpZMk5qWTJOalEwTkRRME5EUTBNek16TXpNek16TXlNakl5TWpJeU1qVWxKU1VsSlNVbEpTVWxKU1VsSlNVb1lHSlNVVUZCUVVjM056YzNOemMzTmpZMk5qWTJOall6TXpNek16TXpNelVsSlNVbEpTVWxKU1VsSlNVbEpTVWtKQ1FrSkNRa0pDUWtKQ1FrSkNRa0lXQm5WMUpDUWtKRk5UVTFOVFUxTlRZbUppWW1KaVltSmlZbUppWW1KaVlrSkNRa0pDUWtKQ1FrSkNRa0pDUWtJeU1qSXlNakl5TWpJeU1qSXlNakl5RlFWa1pDTWpJeU5TVWxKU1VsSlNVa0pDUWtKQ1FrSkNNakl5TWpJeU1qSUVGQ01qTXpOVFUwRkJRVUZCUVVGQkJCUkRReUlpSWlJeE1URXhNVEV4TVFNVE1qSWhJU0VoQWhJaElSRUJJaElCQVRJaUVnSkRNeUlpRWhJQ0FsTkRNeU1TRWdJQ0V5TkRNMk5UQWdJQVFhQVhDeVFFQkFVR0J3Z0pDZ3dORHhFVUZoa2NJQ1FvTFRJNFAwZFFXbVZ4ZjVDaXRzdmkvLzhBUWVBWEN5UUNBZ0lEQXdNREJBUUVCZ1lIQndnSUNRa0tDZ3NMREF3TkRRNE9EdzhRRUJFUkVoSUFRY1VZQzRRQkFRQUFBUUFBQVFBQUFRQUJBUUFCQVFFQkFRRUJBUUVCQVFFQkFRRUJBZ0VCQWdFQkFnRUJBZ0VDQXdFQ0F3SUNBd0lDQkFJREJBSURCQU1EQlFNRUJnTUVCZ1FGQndRRkNBUUdDUVVIQ2dZSUN3WUlEUWNLRGdnTEVBa01FZ29ORkFzUEZ3MFJHUUFBQUFBQUFBQUFCUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVIVUdRc1ZCUUFBQUFBQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUVIMEdRc1ZCUUFBQUFRQUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVHVUdnc0ZCUUFBQUFRQVFhUWFDNlVCQndBQUFBUUFBQUFDQUFBQUJBQUFBQUVBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUFRQUFBQVFBQUFBREFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFCQUFBQUJBQUFBQVFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBRUFBQUFFQUFBQUJBQUFBQVFBQUFBREFBQUFCQUFBQUFZQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FFSFVHd3NWRFFBQUFBQUFBQUFQQUFBQS93QUFBQUFBQUFEL0FFSDBHd3NWRFFBQUFBUUFBQUFJQUFBQS93QUFBQUFBQUFEL0FFR1VIQXUxQ3cwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBSkFBQUFCQUFBQUFzQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQWtBQUFBRUFBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUNRQUFBQVFBQUFBTUFBQUFCQUFBQUFzQUFBQUVBQUFBRGdBQUFBRUFBQUFLQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBb0FBQUFFQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ2dBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUtBQUFBQVFBQUFBc0FBQUFFQUFBQUFBQUFBQVFBQUFBQkFBQUFBUUFBQUE0QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEZ0FBQUFRQUFBQUVBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQUVBQUFBT0FBQUFBUUFBQUE4QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFRQUFBQTRBQUFBQkFBQUFEd0FBQUFRQUFBQUVBQUFBQkFBQUFBVUFBQUFFQUFBQUFnQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFDQUFBQUJBQUFBQWdBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUVBQUFBQWdBQUFBUUFBQUFEQUFBQUJBQUFBQWdBQUFBRUFBQUFDUUFBQUFRQUFBQUdBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFZQUFBQUVBQUFBREFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFCZ0FBQUFRQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUFCQUFBQUFjQUFBQUVBQUFBREFBQUFBUUFBQUFOQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFCQUFBQURnQUFBUDhBQUFBRUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBRUFBQUFMQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFCQUFBQURnQUFBQVFBQUFBQkFBQUEvd0FBQUFRQUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFJQUFBQUtBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFBUUFBQUE4QUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEd0FBQUFJQUFBQUtBQUFBQkFBQUFBVUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQVlBQUFEL0FBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFBRUFBQUFDUUFBQVA4QUFBQU1BQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQWdBQUFQOEFBQUFJQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQUhBQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFjQUFBRC9BQUFBQWdBQUFBUUFBQUFOQUFBQS93QUFBQWdBQUFBREFBQUFEd0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQU1BQUFBUEFBQUFBQUFBQUFVQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUF3QUFBQThBQUFBQkFBQUFDZ0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFEQUFBQUR3QUFBQUVBQUFBS0FBQUFBQUFBQUFVQUFBQUVBQUFBQUFBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFFQUFBQUFRQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ3dBQUFBRUFBQUFPQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QkIxQ2NMRlFjQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QkI5Q2NMRlFjQUFBQUVBQUFBQWdBQUFQOEFBQUFBQUFBQS93QkJsQ2dMMlFFSEFBQUFCQUFBQUFJQUFBQUFBQUFBRFFBQUFBUUFBQUFJQUFBQUJBQUFBQU1BQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBSkFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBTUFBQUFFQUFBQUJnQUFBQVFBQUFBSkFBQUFCQUFBQUF3QUFBQUFBQUFBQkFBQUFBQUFBQUFFQUFBQUNBQUFBQXdBQUFBSUFBQUFEQUFBQUFBQUFBQUVBQUFBQUFBQUFBUUFBQUFJQUFBQURBQUFBQWdBQUFBTUFFSDRLUXNGQkFBQUFBUUFRWWdxQ3lVRUFBQUFCQUFBQUFnQUFBQUlBQUFBREFBQUFBd0FBQUFJQUFBQUNBQUFBQXdBQUFBTUFFR3hMZ3ZJQmdFQ0F3UUZCZ2NJQ1FvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEhoOGdJU0lqSkNVbUp5Z3BLaXNzTFM0dk1ERXlNelExTmpjNE9UbzdQRDArUDBCQlFrTkVSVVpIU0VsS1MweE5UazlRVVZKVFZGVldWMWhaV2x0Y1hWNWZZR0ZpWTJSbFptZG9hV3ByYkcxdWIzQnhjbk4wZFhaM2VIbDZlM3g5Zm4rQWdZS0RoSVdHaDRpSmlvdU1qWTZQa0pHU2s1U1ZscGVZbVpxYm5KMmVuNkNob3FPa3BhYW5xS21xcTZ5dHJxK3dzYkt6dExXMnQ3aTV1cnU4dmI2L3dNSEN3OFRGeHNmSXljckx6TTNPejlEUjB0UFUxZGJYMk5uYTI5emQzdC9nNGVMajVPWG01K2pwNnV2czdlN3Y4UEh5OC9UMTl2ZjQrZnI3L1AzKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUVBQUFBRUFBQUFCUUFBQUFJQUFBQURBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQXdBQUFBTkFBQUFDZ0FBQUFzQUFBQU9BQUFBRHdBQUFBQUFBQUFCQUFBQUFRQkJoRFVMSVFFQUFBQUJBQUFBQVFBQUFBRUFBQUFDQUFBQUFnQUFBQUVBQUFBQ0FBQUFBZ0JCdERVTEJRVUFBQUFFQUVIRU5RdkpCZ2NBQUFBRUFBQUFBZ0FBQUFRQUFBQUJBQUFBQkFBQUFBUUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUFBQUFBQUEwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQUFRQUFBQU1BQUFBQkFBQUFBc0FBQUFFQUFBQURnQUFBQUFBQUFBUkFBQUFCQUFBQUJBQUFBQUFBQUFBRXdBQUFBUUFBQUFTQUFBQUFBQUFBQlVBQUFBRUFBQUFGQUFBQUFBQUFBQVhBQUFBQkFBQUFCWUFBQUFCQUFBQUNnQUFBQUVBQUFBTEFBQUFCQUFBQUFBQUFBQUVBQUFBQVFBQUFBRUFBQUFPQUFBQUFRQUFBQThBQUFBRUFBQUFCQUFBQUFRQUFBQUZBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBQVFBQUFBSUFBQUFCQUFBQUFrQUFBQUVBQUFBQmdBQUFBUUFBQUFIQUFBQUJBQUFBQXdBQUFBRUFBQUFEUUFBQUFFQUFBQVNBQUFBQVFBQUFCTUFBQUFFQUFBQUVBQUFBQVFBQUFBUkFBQUFBUUFBQUJZQUFBQUJBQUFBRndBQUFBUUFBQUFVQUFBQUJBQUFBQlVBQUFBQkFBQUFDd0FBQUFFQUFBQU9BQUFBQkFBQUFBRUFBQUQvQUFBQUJBQUFBQUVBQUFBUEFBQUFBZ0FBQUFvQUFBQUVBQUFBQlFBQUFQOEFBQUFBQUFBQUJBQUFBQU1BQUFBRUFBQUFCZ0FBQUFRQUFBQUpBQUFBL3dBQUFBd0FBQUFFQUFBQUJ3QUFBUDhBQUFBQ0FBQUFCQUFBQUEwQUFBRC9BQUFBQ0FBQUFBRUFBQUFUQUFBQUFnQUFBQklBQUFBRUFBQUFFUUFBQVA4QUFBQVFBQUFBQVFBQUFCY0FBQUFDQUFBQUZnQUFBQVFBQUFBVkFBQUEvd0FBQUJRQUFBQURBQUFBRHdBQUFBRUFBQUFLQUFBQUFBQUFBQVVBQUFBRUFBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBQUVBQUFBQWdBQUFBQUFBQUFOQUFBQUJBQUFBQWdBQUFBRUFBQUFBd0FBQUFRQUFBQUdBQUFBQkFBQUFBa0FBQUFFQUFBQURBQUFBQU1BQUFBVEFBQUFBUUFBQUJJQUFBQUFBQUFBRVFBQUFBUUFBQUFRQUFBQUF3QUFBQmNBQUFBQkFBQUFGZ0FBQUFBQUFBQVZBQUFBQkFBQUFCUUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQURBQUFBQXdBQUFBQUFBQUFCQUFBQUFnQUFBQU1BQUFBRUFBQUFCUUFBQUFZQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QVFaWThDeTRCQVFFQkFRRUNBZ0lDQWdJREF3TURBd01FQkFRRUJBUUZCUVVGQlFVR0JnWUdCZ1lIQndjSEJ3Y0lDQWdJQUVIUVBBdEZDZ0FBQUEwQUFBQVFBQUFBQ3dBQUFBNEFBQUFTQUFBQURRQUFBQkFBQUFBVUFBQUFEZ0FBQUJJQUFBQVhBQUFBRUFBQUFCUUFBQUFaQUFBQUVnQUFBQmNBQUFBZEFFR2hQUXN6QVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURBRUhrUFF2TUFnRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhRQUFBQjRBQUFBZkFBQUFJQUFBQUNBQUFBQWhBQUFBSWdBQUFDSUFBQUFqQUFBQUl3QUFBQ1FBQUFBa0FBQUFKUUFBQUNVQUFBQWxBQUFBSmdBQUFDWUFBQUFtQUFBQUp3QUFBQ2NBQUFBbkFBQUFKd0FBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFMeDhQQUJjYkhSNEhDdzBPSnlzdExoQURCUW9NRXhVYUhDTWxLaXdCQWdRSUVSSVVHQVlKRmhrZ0lTSWtLQ1lwQUJBQkFnUUlJQU1GQ2d3UEx3Y0xEUTRHQ1I4akpTb3NJU0lrS0NjckxTNFJFaFFZRXhVYUhCY2JIUjRXR1NZcEFMQXRCRzVoYldVQjZ3TmtBQVp0WlcxamNIa0JCbkpsYzJsNlpRSUNaaklEQW1ZekJBRm1CUUptTlFZQ1pqWUhBbVkzQ0FKbU9Ba0NaamtLQVdVTEEyWXhNUXdEWmpFeURRTm1NVE1PQTJZeE5BOERaakUxRUFObU1UWVJBMll4TnhJRFpqRTRFd05tTVRrVUEyWXlNQlVEWmpJeEZnTm1NaklYQTJZeU14Z0RaakkwR1FObU1qVWFBMll5TmhzRFpqSTNIQU5tTWpnZEEyWXlPUjREWmpNd0h3Tm1NekVnQTJZek1pRURaak16SWdObU16UWpBMll6TlNRRFpqTTJKUU5tTXpjbUEyWXpPQ2NEWmpNNUtBTm1OREFwQTJZME1Tb0RaalF5S3dObU5ETXNBMlkwTkMwRFpqUTFMZ05tTkRZdkEyWTBOekFEWmpRNE1RTm1ORGt5QTJZMU1ETURaalV4TkFObU5USTFBMlkxTXpZRFpqVTBOd05tTlRVNEEyWTFOamtEWmpVM09nTm1OVGc3QTJZMU9Ud0Raall3UFFObU5qRStBMlkyTWo4RFpqWXpRQU5tTmpSQkEyWTJOVUlEWmpZMlF3Tm1OamRFQTJZMk9FVURaalk1UmdObU56QkhBMlkzTVVnRFpqY3lTUU5tTnpOS0EyWTNORXNEWmpjMVRBTm1OelpOQTJZM04wNERaamM0VHdObU56bFFBMlk0TUZFRFpqZ3hVZ05tT0RKVEEyWTRNMVFEWmpnMFZRTm1PRFZXQTJZNE5sY0RaamczV0FObU9EaFpBMlk0T1ZvRFpqa3dXd05tT1RGY0EyWTVNbDBEWmprelhnTm1PVFJmQTJZNU5XQUJhV0VCWjJJQlpHTUVaakV3TVFLNktXUUFBd0FBQVFBQ0FBRUJBQUFDQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1EQ1FBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FRSUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNGQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1HR0FBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFV0Eyd3lNaGNEYkRJekJ3WUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVSUJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlFrUUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlFvTUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVMQXdBQ2NEQUJBbkF4QWdKc01nd1JBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRFFZQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05BVUNiRFVPRUFBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVQQlFBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEVBc0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQVJBZ0FDY0RBQkFuQXhFZzhBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkJNREFBSndNQUVDYkRFQ0Ftd3lGQU1BQW5Bd0FRSndNUUlDYkRJVkJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlJZbUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2NEUUZBbkExQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlJBRGJERTJFUU5zTVRjU0Eyd3hPQk1EYkRFNUZBTnNNakFWQTJ3eU1SWURiREl5RndOc01qTVlBMnd5TkJrRGJESTFHZ05zTWpZYkEyd3lOeHdEYkRJNEhRTnNNamtlQTJ3ek1COERiRE14SUFOc016SWhBMnd6TXlJRGJETTBJd05zTXpVa0Eyd3pOaVVEYkRNM0Z3TUFBbkF3QVFKd01RSUNjRElZRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFWkVnQUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0doWUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhHd1lBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVWNCd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlkQlFBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEhnVUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQjhCQUFKd01DQUVBQUp3TUFFQ2NERUNBbXd5QXdKc015RWJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVGQU5zTWpBVkEyd3lNUllEYkRJeUZ3TnNNak1ZQTJ3eU5Ca0RiREkxR2dOc01qWWlGUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0l4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE55UVVBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVKUThBQW5Bd0FRSndNUUlDY0RJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNZREFBSndNQUVDYkRFQ0Ftd3lKdzhBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNnQ0FBSndNQUVDYkRFcEVRQUNjREFCQW5BeEFnSndNZ01DY0RNRUFuQTBCUUp3TlFZQ2NEWUhBbkEzQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaW9IQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmlzUEFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUXNCQUFDY0RBQkFuQXhBZ0pzTWdNQ2JETXRCUUFDY0RBQkFuQXhBZ0p3TWdNQ2JETUVBbXcwTGdNQUFuQXdBUUpzTVFJQ2JESXZBd0FDY0RBQkFtd3hBZ0pzTWpBSkFBSndNQUVDY0RFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NE1SWUFBbkF3QVFKd01RSUNiRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhNZ29BQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NU13UUFBbkF3QVFKc01RSUNiRElEQW13ek5BUUFBbkF3QVFKc01RSUNiRElEQW13ek5ROEFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hORFlGQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRM0JRQUNjREFCQW5BeEFnSnNNZ01DYkRNRUFtdzBPQWNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyT1FjQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNiRFVHQW13Mk9nY0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJPd2NBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyUEFVQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05EMEZBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFErRHdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMFB4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE4wQUhBQUp3TUFFQ2NERUNBbXd5QXdKc013UUNiRFFGQW13MUJnSnNOa0VRQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVUlKQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0UXdnQUFuQXdBUUp3TVFJQ2JESURBbXd6QkFKc05BVUNiRFVHQW13MkJ3SnNOMFFRQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVVVUQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0p3TmdjQ2NEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9FWVJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFtdzRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyUnhNQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW5BMkJ3SndOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRTQmNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NjRGdKQW5BNUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkE4RGJERTFFQU5zTVRZUkEyd3hOeElEYkRFNEV3TnNNVGtVQTJ3eU1CVURiREl4RmdOc01qSkpRd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0ZRTnNNakVXQTJ3eU1oY0RiREl6R0FOc01qUVpBMnd5TlJvRGJESTJHd05zTWpjY0Eyd3lPQjBEYkRJNUhnTnNNekFmQTJ3ek1TQURiRE15SVFOc016TWlBMnd6TkNNRGJETTFKQU5zTXpZbEEyd3pOeVlEYkRNNEp3TnNNemtvQTJ3ME1Da0RiRFF4S2dOc05ESXJBMncwTXl3RGJEUTBMUU5zTkRVdUEydzBOaThEYkRRM01BTnNORGd4QTJ3ME9USURiRFV3TXdOc05URTBBMncxTWpVRGJEVXpOZ05zTlRRM0EydzFOVGdEYkRVMk9RTnNOVGM2QTJ3MU9Ec0RiRFU1UEFOc05qQTlBMncyTVQ0RGJEWXlQd05zTmpOQUEydzJORUVEYkRZMVFnTnNOalpLRXdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UaExGQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPVXdIQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmswTkFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1rNExBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFFGQW13MUJnSnNOZ2NDYkRjSUFtdzRDUUpzT1FvRGJERXdUd1FBQW5Bd0FRSndNUUlDYkRJREFtd3pVQTRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTlJEQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeFVoTUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0VXlBQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW13MkJ3SnNOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRFd05zTVRrVUEyd3lNQlVEYkRJeEZnTnNNaklYQTJ3eU14Z0RiREkwR1FOc01qVWFBMnd5TmhzRGJESTNIQU5zTWpnZEEyd3lPUjREYkRNd0h3TnNNekZVRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpGVkN3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1GWUhBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSnNObGNxQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9CTURiREU1RkFOc01qQVZBMnd5TVJZRGJESXlGd05zTWpNWUEyd3lOQmtEYkRJMUdnTnNNalliQTJ3eU54d0RiREk0SFFOc01qa2VBMnd6TUI4RGJETXhJQU5zTXpJaEEyd3pNeUlEYkRNMEl3TnNNelVrQTJ3ek5pVURiRE0zSmdOc016Z25BMnd6T1NnRGJEUXdLUU5zTkRGWUV3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0VnTnNNVGhaQ0FBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNXZzRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTmJCQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETmNDUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNiRFlIQW13M0NBSnNPRjBJQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEZGVDQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M1h3d0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVdBQVlRZ0FBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FtdzJCd0pzTjJJREFBSndNQUVDY0RFQ0Ftd3lZdzBBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5IixVPWE7Ri5oMjY0TW9kdWxlPW5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoVS5kZWNvZGUoTCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBZPUYscT1BPT4oSSxnLEIpPT57QS5IRUFQVTguY29weVdpdGhpbihJLGcsZytCKX07ZnVuY3Rpb24gSyhBLEkpe2NvbnN0IGc9QSVJO3JldHVybiBnPjA/QStJLWc6QX1jb25zdCBIPUE9Pkk9Pntjb25zdCBnPUEuSEVBUFU4Lmxlbmd0aCxCPTY1NTM2LFE9MjE0NzQ4MzY0ODtpZihJPlEpcmV0dXJuITE7Y29uc3QgQz0xNjc3NzIxNjtmb3IobGV0IEQ9MTtEPD00O0QqPTIpe2xldCBFPWcqKDErLjIvRCk7RT1NYXRoLm1pbihFLEkrMTAwNjYzMjk2KTtjb25zdCB3PU1hdGgubWluKFEsSyhNYXRoLm1heChDLEksRSksQikpO3RyeXtjb25zdHttZW1vcnk6b309QTtvLmdyb3cody1vLmJ1ZmZlci5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpO2NvbnN0e2J1ZmZlcjpOfT1vO3JldHVybiBBLkhFQVA4PW5ldyBJbnQ4QXJyYXkoTiksQS5IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoTiksQS5IRUFQMzI9bmV3IEludDMyQXJyYXkoTiksITB9Y2F0Y2h7fX1yZXR1cm4hMX0sUj02NTUzNixjPTUyNTE3OTIsZD04NzUyLHQ9MTY3NzcyMTY7Y2xhc3MgaXtjb25zdHJ1Y3Rvcigpe3RoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLHRoaXMucGljPW5ldyBVaW50OEFycmF5KDApO2NvbnN0IEk9bmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7aW5pdGlhbDp0L1IsbWF4aW11bToyMTQ3NDgzNjQ4L1J9KSxnPXttZW1vcnk6SSxIRUFQODpuZXcgSW50OEFycmF5KEkuYnVmZmVyKSxIRUFQVTg6bmV3IFVpbnQ4QXJyYXkoSS5idWZmZXIpLEhFQVAzMjpuZXcgSW50MzJBcnJheShJLmJ1ZmZlcil9O2cuSEVBUDMyW2Q+PjJdPWM7Y29uc3R7ZXhwb3J0czpCfT1uZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UoWS5oMjY0TW9kdWxlLHtoMjY0OnttZW1vcnk6SSxtZW1jcHk6cShnKSxyZXNpemU6SChnKX19KTt0aGlzLm1lbW9yeT1nLHRoaXMuYXNtPUIsdGhpcy5wU3RvcmFnZT1CLmgyNjRhbGxvYygpLHRoaXMucFdpZHRoPUIubWFsbG9jKDQpLHRoaXMucEhlaWdodD1CLm1hbGxvYyg0KSx0aGlzLnBQaWN0dXJlPUIubWFsbG9jKDQpLHRoaXMuZGVjQnVmZmVyPUIubWFsbG9jKDEwMjQqMTAyNCksQi5pbml0KHRoaXMucFN0b3JhZ2UsMCl9ZGVjb2RlKEkpe2NvbnN0e21lbW9yeTpnLGFzbTpCfT10aGlzO2cuSEVBUFU4LnNldChJLHRoaXMuZGVjQnVmZmVyKTtjb25zdCBRPUIuZGVjb2RlKHRoaXMucFN0b3JhZ2UsdGhpcy5kZWNCdWZmZXIsSS5ieXRlTGVuZ3RoLHRoaXMucFBpY3R1cmUsdGhpcy5wV2lkdGgsdGhpcy5wSGVpZ2h0KTtpZihRPT09aS5QSUNfUkRZKXtjb25zdCBDPXRoaXMud2lkdGg9Zy5IRUFQMzJbdGhpcy5wV2lkdGg+Pj4yXSxEPXRoaXMuaGVpZ2h0PWcuSEVBUDMyW3RoaXMucEhlaWdodD4+PjJdLEU9Zy5IRUFQMzJbdGhpcy5wUGljdHVyZT4+Ml0sdz1DKkQqMy8yO3RoaXMucGljPWcuSEVBUFU4LnN1YmFycmF5KEUsRSt3KX1yZXR1cm4gUX19dmFyIGI9eS5IMjY0RGVjb2Rlcj1pO2kuUkRZPTAsaS5QSUNfUkRZPTEsaS5IRFJTX1JEWT0yLGkuRVJST1I9MyxpLlBBUkFNX1NFVF9FUlJPUj00LGkuTUVNQUxMT0NfRVJST1I9NTtmdW5jdGlvbiB4KEEpe3JldHVybiBVaW50OEFycmF5LmZyb20oYXRvYihBKSxJPT5JLmNoYXJDb2RlQXQoMCkpfWNvbnN0IHM9c2VsZixrPW5ldyBiLG09Si5zZWNvbmQvNTthZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixBPT57Y29uc3R7dGltZXN0YW1wOkksZmxhZ3M6ZyxpbmRleDpCfT1BLmRhdGEsUT1EYXRlLm5vdygpLUk7aWYoUT5tJiZnIT09Myl7TShgRnJhbWUgaXMgJHtRfW1zIGxhdGUsIGRyb3BwaW5nYCxCKTtyZXR1cm59Y29uc3QgQz14KEEuZGF0YS5lbmNvZGVkRnJhbWUpLEQ9ay5kZWNvZGUoQyk7dHJ5e2lmKEQhPT0xKXtNKGBmYWlsZWQgdG8gZGVjb2RlIGZyYW1lLCBzdGF0dXM6ICR7bihEKX1gLEIsQyk7cmV0dXJufWNvbnN0e3BpYzpFLGhlaWdodDp3LHdpZHRoOm99PWs7aWYoRS5sZW5ndGg9PT0wfHx3PT09MHx8bz09PTApe00oImRlY29kZWQgZnJhbWUgaGFzIG5vIGRhdGEiLEIsQyk7cmV0dXJufWNvbnN0IE49bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KEUpO3MucG9zdE1lc3NhZ2Uoe3RpbWVzdGFtcDpBLmRhdGEudGltZXN0YW1wLHl1djpOLGhlaWdodDp3LHdpZHRoOm8saW5kZXg6Qn0pfWNhdGNoKEUpe00oRSxCKX19KTtmdW5jdGlvbiBNKEEsSSxnKXtzLnBvc3RNZXNzYWdlKHtlcnJvcjpgaDI2NCBkZWNvZGVyIHdvcmtlcjogJHtBfWAsaW5kZXg6SX0pfWZ1bmN0aW9uIG4oQSl7c3dpdGNoKEEpe2Nhc2UgMDpyZXR1cm4iUkRZIjtjYXNlIDE6cmV0dXJuIlBJQ19SRFkiO2Nhc2UgMjpyZXR1cm4iSERSU19SRFkiO2Nhc2UgMzpyZXR1cm4iRVJST1IiO2Nhc2UgNDpyZXR1cm4iUEFSQU1fU0VUX0VSUk9SIjtjYXNlIDU6cmV0dXJuIk1FTUFMTE9DX0VSUk9SIjtkZWZhdWx0OnJldHVybiBBLnRvU3RyaW5nKCl9fX0pfSkoKTsK",blob$3=typeof window<"u"&&window.Blob&&new Blob([atob(encodedJs$3)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$3(){const s=blob$3&&(window.URL||window.webkitURL).createObjectURL(blob$3);try{return s?new Worker(s,{}):new Worker("data:application/javascript;base64,"+encodedJs$3,{type:"module"})}finally{s&&(window.URL||window.webkitURL).revokeObjectURL(s)}}class RealtimePlayer extends HTMLElement{constructor(){super(),__publicField$2(this,"drawer"),this.drawer=new H264BytestreamCanvasDrawer$1(()=>new WorkerWrapper$3,()=>{},()=>{})}connectedCallback(){this.style.background="black",this.innerHTML='',this.drawer.start(),this.drawer.setCanvas(this.querySelector("canvas"))}drawVideoFrame(o){this.drawer.receiveEncodedFrame(o)}}customElements.define("formant-realtime-player",RealtimePlayer);function insertWithoutScoping(s,o){if(s.inserted[o.name]===void 0)return s.insert("",o,s.sheet,!0)}function merge$3(s,o,et){var tt=[],nt=getRegisteredStyles(s,tt,et);return tt.length<2?et:nt+o(tt)}var createEmotion=function s(o){var et=createCache(o);et.sheet.speedy=function(ot){this.isSpeedy=ot},et.compat=!0;var tt=function(){for(var ot=arguments.length,st=new Array(ot),at=0;at({name:s,id:o,type:et,visible:rt,treePath:nt}),toggleVisibility:s=>{},cameraTargetId:"",setCameraTargetId:s=>{},reset:()=>{},toggleEditMode:()=>{},isEditing:!1,debug:!1});function useUI(){const[s,o]=React$1.useState([]),[et,tt]=React$1.useState(""),[nt,rt]=React$1.useState(!1);return{layers:s,register:(lt,ut,dt,ht,ct,pt=!0)=>{JSON.parse(sessionStorage.getItem(`${ut}-visible`)||"true");const ft={name:lt,id:ut,visible:pt,type:dt,treePath:ct,iconUrl:ht};return s.some(gt=>gt.id===ut)||o(gt=>[...gt,ft]),ft},toggleVisibility:lt=>{o(ut=>ut.map(dt=>{if(dt.id===lt){const ht=!dt.visible;if(sessionStorage.setItem(`${dt.id}-visible`,ht.toString()),dt.treePath&&dt.treePath.length>0){const ct=ut.filter(pt=>pt.treePath&&dt.treePath&&pt.treePath[0]===dt.treePath[0]&&pt.treePath.length>dt.treePath.length);ht?ct.forEach(pt=>{pt.visible=JSON.parse(sessionStorage.getItem(`${pt.id}-visible`)||"true")}):ct.forEach(pt=>{sessionStorage.setItem(`${pt.id}-visible`,pt.visible.toString()),pt.visible=!1})}return{...dt,visible:ht}}return dt}))},cameraTargetId:et,setCameraTargetId:tt,reset:()=>{o([])},toggleEditMode:()=>{rt(lt=>!lt)},isEditing:nt,debug:!1}}function stylis_min(s){function o(zt,en,Kt,nn,Zt){for(var jt=0,Vt=0,It=0,$t=0,Ht,qt,on=0,Xt=0,dn,_n=dn=Ht=0,Fn=0,Un=0,On=0,gn=0,hn=Kt.length,wn=hn-1,Zn,Pn="",$n="",Tr="",Qr="",_r;FnHt)&&(gn=(Pn=Pn.replace(" ",":")).length),0nn&&(nn=(en=en.trim()).charCodeAt(0)),nn){case 38:return en.replace(gt,"$1"+zt.trim());case 58:return zt.trim()+en.replace(gt,"$1"+zt.trim());default:if(0<1*Kt&&0Vt.charCodeAt(8))break;case 115:Zt=Zt.replace(Vt,"-webkit-"+Vt)+";"+Zt;break;case 207:case 102:Zt=Zt.replace(Vt,"-webkit-"+(102Kt.charCodeAt(0)&&(Kt=Kt.trim()),Pt=Kt,Kt=[Pt],01?o-1:0),tt=1;tt0?" Args: "+et.join(", "):""))}var j=function(){function s(et){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=et}var o=s.prototype;return o.indexOfGroup=function(et){for(var tt=0,nt=0;nt=this.groupSizes.length){for(var nt=this.groupSizes,rt=nt.length,it=rt;et>=it;)(it<<=1)<0&&D(16,""+et);this.groupSizes=new Uint32Array(it),this.groupSizes.set(nt),this.length=it;for(var ot=rt;ot=this.length||this.groupSizes[et]===0)return tt;for(var nt=this.groupSizes[et],rt=this.indexOfGroup(et),it=rt+nt,ot=rt;ot{const{canvas:it}=this;if(!it)return;const ot=it.getContext("webgl");this.webglContext=ot||void 0,this.lastDecodedFrameTime=void 0,this.lastReceivedFrameTime=void 0,this.hasReceivedKeyframe=!1,this.currentFrameIndex=void 0,!(!this.canvas||!this.webglContext)&&(this.yuvCanvas||(this.yuvCanvas=new YUVCanvas$1(this.webglContext)),this.moduleStartTime=Date.now())}),__publicField2(this,"stop",()=>{var it;(it=this.decoder)==null||it.release(),this.webglContext=void 0,this.decoderQueueLocked=!1}),__publicField2(this,"reset",()=>{this.retries=0,this.restart()}),__publicField2(this,"notifyWarningTextChanged",()=>{var it;(it=this.onWarningTextChanged)==null||it.call(this,this.getWarningText())}),__publicField2(this,"restart",()=>{console.info("Restarting decoder"),console.info("BytestreamPlayer restarting",__spreadProps$1(__spreadValues$1({},this.trackInfo),{Restart:this.timesRestarted})),this.frameQueue=[],this.decoderQueue=[],this.stop(),this.decoder=new H264Decoder$1(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),this.start(),this.retries++,this.timesRestarted++}),__publicField2(this,"onTrackTick",()=>{if(this.numFramesDecoded===0){if(this.lastDecodedFrameTime===void 0){const at=Date.now();console.info("BytestreamPlayer waiting for video",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Time Waited":at-this.moduleCreateTime}))}return}this.numFramesReceived/this.numFramesDecoded>maxDropRatio$1&&this.warnPerformanceProblems(),this.numFramesReceived=0,this.numFramesDecoded=0;const it=Array.from(this.frameCheckpointMap.entries()).reduce((at,[lt,ut])=>{var dt;return!this.currentFrameIndex||lt>this.currentFrameIndex-60||ut==="FrameDrawn"||(at[ut]=((dt=at[ut])!=null?dt:0)+1,this.frameCheckpointMap.delete(lt)),at},{});Object.keys(it).map(at=>{console.info("BytestreamPlayer Frame Dropped",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Num Dropped":it[at],"Frame State":at}))});const{minJitter:ot,maxJitter:st}=this;ot&&st&&(console.info("BytestreamPlayer Jitter",__spreadProps$1(__spreadValues$1({},this.trackInfo),{minJitter:ot,maxJitter:st})),this.minJitter=void 0,this.maxJitter=void 0)}),__publicField2(this,"onTick",()=>{var it;const{lastReceivedFrameTime:ot,lastDecodedFrameTime:st,moduleStartTime:at,noSignal:lt,retries:ut}=this,dt=new Date().getTime();lt&&(this.lastNoSignalTime=dt),this.overWaitingThreshold=dt-at>noSignalThreshold$1;const ht=dt-at>decoderNotWorkingThreshold$1;if(!st){ot&&ht&&utnoSignalThreshold$1&&ctwarnPerformanceThreshold$1&&this.warnPerformanceProblems(),ct>noSignalThreshold$1&&(this.lostSignal=!0)}this.overWaitingThreshold&&(this.waitingForDecoder||this.noSignal||this.lostSignal)&&((it=this.onCanvasDrawerWarning)==null||it.call(this,"ShouldDisableControl"))}),__publicField2(this,"receiveEncodedFrame",it=>{if(!it)return;const ot=it.index;if(ot&&this.frameCheckpointMap.set(ot,"FrameReceived"),!(!it||!this.canvas||!this.webglContext)){if(this.isKeyframe(it),!this.hasReceivedKeyframe)return console.info("Dropping frame because no keyframe detected"),!1;this.lastReceivedFrameTime===void 0&&console.debug("Received first frame on bytestream player",__spreadValues$1({},this.trackInfo)),this.checkOrder(it),this.numFramesReceived++,this.lastReceivedFrameTime=Date.now(),this.lostSignal&&this.restart(),this.noSignal=!1,this.lostSignal=!1,this.frameQueue.push(it),ot&&this.frameCheckpointMap.set(ot,"FrameQueued"),this.frameQueue.length>maxQueueSize$1&&(this.frameQueue=this.frameQueue.filter(st=>this.isKeyframe(st))),this.frameQueue.length>maxQueueSize$1&&(this.frameQueue=[],this.decoderQueue=[]),this.decodeNextFrame()}}),__publicField2(this,"onDecoderError",it=>{this.frameQueue=[],this.decoderQueue=[],this.hasReceivedKeyframe=!1,console.info("BytestreamPlayer decode error",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Frame Index":it}))}),__publicField2(this,"onReceiveDecodedFrame",it=>{var ot,st;const{canvas:at,yuvCanvas:lt,decoderQueue:ut}=this,{timestamp:dt,yuv:ht,height:ct,width:pt,index:ft}=it;this.frameCheckpointMap.set(ft,"FrameDecoded"),this.numFramesDecoded++;const gt=Date.now();if(this.lastDecodedFrameTime===void 0&&console.info("BytestreamPlayer started video",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Time Until Video":gt-this.moduleCreateTime})),this.lastDecodedFrameTime=gt,this.waitingForDecoder=!1,this.decoderQueue=ut.filter(Ft=>gt-Ftduration$1$2.second||!lt||!at||ct===0||pt===0)return;ct!==at.height&&(at.height=ct,lt.height=ct),pt!==at.width&&(at.width=pt,lt.width=pt);const yt=lt.draw(ht),Ut=Date.now();if(this.lastDrawnFrameTime){const Ft=Ut-this.lastDrawnFrameTime;this.minJitter=Math.min(Ft,(ot=this.minJitter)!=null?ot:Number.MAX_SAFE_INTEGER),this.maxJitter=Math.max(Ft,(st=this.maxJitter)!=null?st:0)}this.lastDrawnFrameTime=Ut,this.frameCheckpointMap.set(ft,"FrameDrawn"),yt===0&&(this.webglYUVSupported=!0),yt===hardwareIncompatibleErrorCode$1&&(this.webglYUVSupported=!1),this.frameQueue.length>0&&this.decodeNextFrame()}),this.workerFactory=o,this.onWebglYUVSupportedChanged=et,this.onWarningTextChanged=tt,this.onCanvasDrawerWarning=nt,this.trackInfo=rt,this.decoder=new H264Decoder$1(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),setInterval(this.onTick,duration$1$2.millisecond*200),setInterval(this.onTrackTick,duration$1$2.second*5)}get waitingForDecoder(){return this._waitingForDecoder}set waitingForDecoder(o){this._waitingForDecoder=o,this.notifyWarningTextChanged()}get noSignal(){return this._noSignal}set noSignal(o){this._noSignal=o,this.notifyWarningTextChanged()}get lostSignal(){return this._lostSignal}set lostSignal(o){this._lostSignal=o,this.notifyWarningTextChanged()}get overWaitingThreshold(){return this._overWaitingThreshold}set overWaitingThreshold(o){this._overWaitingThreshold=o,this.notifyWarningTextChanged()}get retries(){return this._retries}set retries(o){this._retries=o,this.notifyWarningTextChanged()}get webglYUVSupported(){return this._webglYUVSupported}set webglYUVSupported(o){var et;this._webglYUVSupported=o,(et=this.onWebglYUVSupportedChanged)==null||et.call(this,o),this.notifyWarningTextChanged()}setCanvas(o){this.canvas=o}getWarningText(){var o;const{waitingForDecoder:et,noSignal:tt,overWaitingThreshold:nt,lostSignal:rt,retries:it,webglYUVSupported:ot}=this,st=ot===!1,at=et?it===numRetries$1?"Decoder failed to start":"Starting decoder":void 0;return(o=(st?"Hardware decoding not supported on this device":void 0)??(rt?"Lost signal":tt?nt?"No signal":"Waiting for signal":void 0))!=null?o:at}decodeNextFrame(){if(this.decoderQueueLocked&&(this.decodeNextFrameAttempted=!0),this.decoderQueueLocked=!0,this.decoderQueue.length>maxQueueSize$1){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const o=this.frameQueue.shift();if(!o){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const et=Date.now();this.frameCheckpointMap.set(o.index,"FrameSentToDecoder"),this.decoder.post(et,o.frame_data,o.flags,o.index),this.decoderQueue.push(et),this.decoderQueueLocked=!1,this.decodeNextFrameAttempted&&(this.decodeNextFrameAttempted=!1,this.decodeNextFrame())}warnPerformanceProblems(){var o;this.lastDecodedFrameTime&&this.overWaitingThreshold&&!this.lostSignal&&!this.noSignal&&((o=this.onCanvasDrawerWarning)==null||o.call(this,"ShouldDegradeVideo"))}checkOrder(o){if(this.currentFrameIndex!==void 0&&o.indexDate.now()?!1:nt>this.medianFrameSize?(this.hasReceivedKeyframe=!0,!0):!1}};const encodedJs$3="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbihTKXt0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShTKTpTKCl9KShmdW5jdGlvbigpe2NvbnN0IEo9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07dmFyIHk9e30sRj17fSxhPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBHPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7ZnVuY3Rpb24gaChBKXtsZXQgST1BLmxlbmd0aDtBW0EubGVuZ3RoLTJdPT09Ij0iP0ktPTI6QVtBLmxlbmd0aC0xXT09PSI9IiYmSS0tO2NvbnN0IGc9SS80KjN8MCxCPW5ldyBVaW50OEFycmF5KGcpO2ZvcihsZXQgUT0wLEM9MDtRPGc7USs9Myl7Y29uc3QgRD1HLmluZGV4T2YoQVtDKytdKSxFPUcuaW5kZXhPZihBW0MrK10pO2lmKEJbUV09RDw8MnxFPj40LEM9PT1JKWJyZWFrO2NvbnN0IHc9Ry5pbmRleE9mKEFbQysrXXx8Ij0iKTtpZihCW1ErMV09KEUmMTUpPDw0fHc+PjIsQz09PUkpYnJlYWs7Y29uc3Qgbz1HLmluZGV4T2YoQVtDKytdfHwiPSIpO0JbUSsyXT0odyYzKTw8NnxvfXJldHVybiBCfWEuZGVjb2RlPWgsT2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IEw9IkFHRnpiUUVBQUFBQmx3RVRZQUovZndGL1lBUi9mMzkvQVg5Z0FuOS9BR0FEZjM5L0FYOWdBWDhBWUFsL2YzOS9mMzkvZjM4QVlBRi9BWDlnQkg5L2YzOEFZQVovZjM5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUFOL2YzOEFZQVYvZjM5L2Z3Ri9ZQUFBWUFWL2YzOS9md0JnQm45L2YzOS9md0JnQ245L2YzOS9mMzkvZjM4QVlBQUJmMkFIZjM5L2YzOS9md0YvWUFoL2YzOS9mMzkvZndGL0FqQURCR2d5TmpRR2JXVnRZM0I1QUFNRWFESTJOQVp5WlhOcGVtVUFCZ1JvTWpZMEJtMWxiVzl5ZVFJQmdBS0FnQUlEWTJJQUFBUUFBUU1LQVFZQUJRTUZCZ2NBQndZQUF3NERCd2NGQWdBQ0F3UUFCUVVGQlFvRUFnUUpBUWNBQXdZR0FnSUJCZ1FEQWdJQkN3RUJBd01MRFFJQkFBQUNDUWtKRHdJRkJRQUJDZ0FTQ3hFSUNBY0lDQWNFQVFRSUNBWUJFQWdBQVFZSkFYOEJRYkRFd0FJTEJ5WUVCbTFoYkd4dll3QUtDV2d5TmpSaGJHeHZZd0JnQm1SbFkyOWtaUUJoQkdsdWFYUUFZZ3IycFFWaXdBSUJBbjhnQUJBUElnSkJmMHdFUUNBQVFRRVFDeG9nQVVFQU5nSUFRUUFQQ3dKQUFrQWdBa0dBZ0lDQUJFOEVRQ0FBUVFNUUMwRi9SZ1JBUVFFUEN5QUJJQUpCSFhaQkFYRkJBV28yQWdBTUFRc2dBa0dBZ0lDQUFrOEVRQ0FBUVFVUUMwRi9SZ1JBUVFFUEN5QUJJQUpCRzNaQkEzRkJBMm8yQWdBTUFRc2dBa0dBZ0lDQUFVOEVRQ0FBUVFjUUMwRi9SZ1JBUVFFUEN5QUJJQUpCR1haQkIzRkJCMm8yQWdBTUFRc2dBaEF2SWdOQkJHb2lBa0VnUmdSQUlBRkJBRFlDQUNBQVFTQVFDeHBCQVNFQ0lBQkJBUkFEUVFGSERRSWdBQkFQSVFNZ0FFRWdFQXRCZjBZTkFpQURRUUZMRFFJZ0EwRUJhd1JBSUFGQmZ6WUNBQXdDQ3lBQlFYODJBZ0JCQVE4TElBQWdBMEVGYWhBTEdpQUFJQUlRQXlJQVFYOUdCRUJCQVE4TElBRWdBRUYvSUFKMFFYOXphallDQUF0QkFDRUNDeUFDQzRnQ0FRZC9JQUFvQWdRaEJBSkFJQUFvQWd4QkEzUWlCeUFBS0FJUUlnaHJJZ0pCSUU0RVFDQUVLQUFBSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUVESUFBb0FnZ2lBa1VOQVNBRElBSjBJQVF0QUFSQkNDQUNhM1p5SVFNTUFRc2dBa0VCU0FSQURBRUxJQVF0QUFBZ0FDZ0NDQ0lGUVJocUlnWjBJUU1nQWlBRmFrRjRhaUlDUVFGSURRQURRQ0FFTFFBQklBWkJlR29pQm5RZ0EzSWhBeUFDUVFoS0lRVWdCRUVCYWlFRUlBSkJlR29oQWlBRkRRQUxDeUFBSUFFZ0NHb2lCRFlDRUNBQUlBUkJCM0UyQWdoQmZ5RUNJQVFnQjAwRWZ5QUFJQUFvQWdBZ0JFRURkbW8yQWdRZ0EwRWdJQUZyZGdWQmZ3c0xxZzBCQjM4Q1FDQUFSUTBBSUFCQmVHb2lBeUFBUVh4cUtBSUFJZ0ZCZUhFaUFHb2hCUUpBSUFGQkFYRU5BQ0FCUVFOeFJRMEJJQU1nQXlnQ0FDSUNheUlEUWNUQUFDZ0NBQ0lFU1EwQklBQWdBbW9oQUNBRFFjakFBQ2dDQUVjRVFDQUNRZjhCVFFSQUlBTW9BZ2dpQkNBQ1FRTjJJZ0pCQTNSQjNNQUFha2NhSUFRZ0F5Z0NEQ0lCUmdSQVFiVEFBRUcwd0FBb0FnQkJmaUFDZDNFMkFnQU1Bd3NnQkNBQk5nSU1JQUVnQkRZQ0NBd0NDeUFES0FJWUlRWUNRQ0FESUFNb0Fnd2lBVWNFUUNBRUlBTW9BZ2dpQWswRVFDQUNLQUlNR2dzZ0FpQUJOZ0lNSUFFZ0FqWUNDQXdCQ3dKQUlBTkJGR29pQWlnQ0FDSUVEUUFnQTBFUWFpSUNLQUlBSWdRTkFFRUFJUUVNQVFzRFFDQUNJUWNnQkNJQlFSUnFJZ0lvQWdBaUJBMEFJQUZCRUdvaEFpQUJLQUlRSWdRTkFBc2dCMEVBTmdJQUN5QUdSUTBCQWtBZ0F5QURLQUljSWdKQkFuUkI1TUlBYWlJRUtBSUFSZ1JBSUFRZ0FUWUNBQ0FCRFFGQnVNQUFRYmpBQUNnQ0FFRitJQUozY1RZQ0FBd0RDeUFHUVJCQkZDQUdLQUlRSUFOR0cyb2dBVFlDQUNBQlJRMENDeUFCSUFZMkFoZ2dBeWdDRUNJQ0JFQWdBU0FDTmdJUUlBSWdBVFlDR0FzZ0F5Z0NGQ0lDUlEwQklBRWdBallDRkNBQ0lBRTJBaGdNQVFzZ0JTZ0NCQ0lCUVFOeFFRTkhEUUJCdk1BQUlBQTJBZ0FnQlNBQlFYNXhOZ0lFSUFNZ0FFRUJjallDQkNBQUlBTnFJQUEyQWdBUEN5QUZJQU5ORFFBZ0JTZ0NCQ0lCUVFGeFJRMEFBa0FnQVVFQ2NVVUVRQ0FGUWN6QUFDZ0NBRVlFUUVITXdBQWdBellDQUVIQXdBQkJ3TUFBS0FJQUlBQnFJZ0EyQWdBZ0F5QUFRUUZ5TmdJRUlBTkJ5TUFBS0FJQVJ3MERRYnpBQUVFQU5nSUFRY2pBQUVFQU5nSUFEd3NnQlVISXdBQW9BZ0JHQkVCQnlNQUFJQU0yQWdCQnZNQUFRYnpBQUNnQ0FDQUFhaUlBTmdJQUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFDUUNBQlFmOEJUUVJBSUFVb0Fnd2hBaUFGS0FJSUlnUWdBVUVEZGlJQlFRTjBRZHpBQUdvaUIwY0VRRUhFd0FBb0FnQWFDeUFDSUFSR0JFQkJ0TUFBUWJUQUFDZ0NBRUYrSUFGM2NUWUNBQXdDQ3lBQ0lBZEhCRUJCeE1BQUtBSUFHZ3NnQkNBQ05nSU1JQUlnQkRZQ0NBd0JDeUFGS0FJWUlRWUNRQ0FGSUFVb0Fnd2lBVWNFUUVIRXdBQW9BZ0FnQlNnQ0NDSUNUUVJBSUFJb0Fnd2FDeUFDSUFFMkFnd2dBU0FDTmdJSURBRUxBa0FnQlVFVWFpSUNLQUlBSWdRTkFDQUZRUkJxSWdJb0FnQWlCQTBBUVFBaEFRd0JDd05BSUFJaEJ5QUVJZ0ZCRkdvaUFpZ0NBQ0lFRFFBZ0FVRVFhaUVDSUFFb0FoQWlCQTBBQ3lBSFFRQTJBZ0FMSUFaRkRRQUNRQ0FGSUFVb0Fod2lBa0VDZEVIa3dnQnFJZ1FvQWdCR0JFQWdCQ0FCTmdJQUlBRU5BVUc0d0FCQnVNQUFLQUlBUVg0Z0FuZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ0lFUUNBQklBSTJBaEFnQWlBQk5nSVlDeUFGS0FJVUlnSkZEUUFnQVNBQ05nSVVJQUlnQVRZQ0dBc2dBeUFBUVFGeU5nSUVJQUFnQTJvZ0FEWUNBQ0FEUWNqQUFDZ0NBRWNOQVVHOHdBQWdBRFlDQUE4TElBVWdBVUYrY1RZQ0JDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFDeUFBUWY4QlRRUkFJQUJCQTNZaUFVRURkRUhjd0FCcUlRQUNmMEcwd0FBb0FnQWlBa0VCSUFGMElnRnhSUVJBUWJUQUFDQUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBaUFBSUFNMkFnZ2dBaUFETmdJTUlBTWdBRFlDRENBRElBSTJBZ2dQQ3lBRFFnQTNBaEFnQXdKL1FRQWdBRUVJZGlJQlJRMEFHa0VmSUFCQi8vLy9CMHNOQUJvZ0FTQUJRWUQrUDJwQkVIWkJDSEVpQVhRaUFpQUNRWURnSDJwQkVIWkJCSEVpQW5RaUJDQUVRWUNBRDJwQkVIWkJBbkVpQkhSQkQzWWdBU0FDY2lBRWNtc2lBVUVCZENBQUlBRkJGV3AyUVFGeGNrRWNhZ3NpQWpZQ0hDQUNRUUowUWVUQ0FHb2hBUUpBQWtBQ1FFRzR3QUFvQWdBaUJFRUJJQUowSWdkeFJRUkFRYmpBQUNBRUlBZHlOZ0lBSUFFZ0F6WUNBQ0FESUFFMkFoZ01BUXNnQUVFQVFSa2dBa0VCZG1zZ0FrRWZSaHQwSVFJZ0FTZ0NBQ0VCQTBBZ0FTSUVLQUlFUVhoeElBQkdEUUlnQWtFZGRpRUJJQUpCQVhRaEFpQUVJQUZCQkhGcUlnZEJFR29vQWdBaUFRMEFDeUFISUFNMkFoQWdBeUFFTmdJWUN5QURJQU0yQWd3Z0F5QUROZ0lJREFFTElBUW9BZ2dpQUNBRE5nSU1JQVFnQXpZQ0NDQURRUUEyQWhnZ0F5QUVOZ0lNSUFNZ0FEWUNDQXRCMU1BQVFkVEFBQ2dDQUVGL2FpSUFOZ0lBSUFBTkFFSDh3d0FoQXdOQUlBTW9BZ0FpQUVFSWFpRURJQUFOQUF0QjFNQUFRWDgyQWdBTEMzUUJBbjhqQUVFUWF5SUNKQUFnQWtFQU5nSU1JQUFnQWtFTWFoQUNJUUFDZnlBQ0tBSU1JZ05CZjBZRVFFRUJJQUJGRFFFYUlBRkJnSUNBZ0hnMkFnQkJBQXdCQzBFQklBQU5BQm9nQVNBRFFRRnFRUUYySWdGQkFDQUJheUFEUVFGeEd6WUNBRUVBQ3lFQUlBSkJFR29rQUNBQUM4Y0xBUlIvSUFGQm9EMXFMUUFBUVF4c0lnWkIxRHhxS0FJQUlRVWdCa0hRUEdvb0FnQWdBVUdRUEdvdEFBQWlCM1FoQkNBQ1JRUkFJQUFnQUNnQ0FDQUViRFlDQUFzZ0JTQUhkQ0VCQWtBQ1FDQURRWnovQTNFRVFDQUFJQVpCMkR4cUtBSUFJQWQwSWdNZ0FDZ0NQR3cyQWp3Z0FDQUFLQUk0SUFGc05nSTRRUUVoQWlBQUlBQW9BaXdnQkd3aUJ5QUFLQUlNSUFSc0lnVnFJZ2tnQUNnQ0lDQUJiQ0lLSUFBb0FqUWdBV3dpRDBFQmRXb2lFR3NpQmpZQ0xDQUFLQUlvSVFnZ0FDQUZJQWRySWdVZ0NrRUJkU0FQYXlJS2F5SUhOZ0lvSUFBb0FpUWhEaUFBSUFVZ0Ntb2lCVFlDSkNBQUlBQW9BaHdnQVd3aUR5QUFLQUlJSUFGc0lndHFJaE1nQUNnQ0VDQURiQ0lSSUFBb0FqQWdBMndpREVFQmRXb2lGV3NpQ2pZQ0hDQUFLQUlZSVEwZ0FDQUxJQTlySWdzZ0VVRUJkU0FNYXlJUmF5SVBOZ0lZSUFBb0FoUWhEQ0FBSUFzZ0VXb2lDellDRkNBQUlBUWdER3dpQkNBQUtBSUFJZ3hxSWhRZ0FDZ0NCQ0FCYkNJU0lBRWdEV3dpRFVFQmRXb2lGbXNpRVRZQ0RDQUFJQXdnQkdzaUJDQVNRUUYxSUExcklnMXJJZ3cyQWdnZ0FDQUVJQTFxSWcwMkFnUWdBQ0FCSUE1c0lnUWdBQ2dDT0NJT2F5SVNJQU1nQ0d3aUNFRUJkU0FBS0FJOEloZHJJZ05ySWdFMkFqZ2dBQ0FESUJKcUlnTTJBalFnQUNBRUlBNXFJZzRnRjBFQmRTQUlhaUlJYXlJRU5nSThJQUFnRkNBV2FpSVVJQWtnRUdvaUVHdEJJR29pRWlBSUlBNXFJZ2tnRXlBVmFpSUlRUUYxSWc1cmFrRUdkU0lUTmdJZ0lBQWdFaUFPSUFscmFrRUdkU0lPTmdJUUlBQWdFQ0FVYWtFZ2FpSVFJQWxCQVhVZ0NHb2lDV3RCQm5VaUNEWUNNQ0FBSUFrZ0VHcEJCblVpQ1RZQ0FDQUpRWUFFYWlBT1FZQUVhbkpCL3dkTERRSWdDRUdBQkdvZ0UwR0FCR3B5UWY4SFN3MENJQUFnQlNBTmFrRWdhaUlKSUFOQkFYVWdDMm9pRUd0QkJuVWlDRFlDTkNBQUlBMGdCV3RCSUdvaUJTQURJQXRCQVhVaUMydHFRUVoxSWcwMkFpUWdBQ0FGSUFzZ0EydHFRUVoxSWdNMkFoUWdBQ0FKSUJCcVFRWjFJZ1UyQWdRZ0JVR0FCR29nQTBHQUJHcHlRZjhIU3cwQ0lBaEJnQVJxSUExQmdBUnFja0gvQjBzTkFpQUFJQWNnREdwQklHb2lBeUFCUVFGMUlBOXFJZ1ZyUVFaMUlnczJBamdnQUNBTUlBZHJRU0JxSWdjZ0FTQVBRUUYxSWc5cmFrRUdkU0lNTmdJb0lBQWdCeUFQSUFGcmFrRUdkU0lCTmdJWUlBQWdBeUFGYWtFR2RTSUROZ0lJSUFOQmdBUnFJQUZCZ0FScWNrSC9CMHNOQWlBTFFZQUVhaUFNUVlBRWFuSkIvd2RMRFFJZ0FDQUdJQkZxUVNCcUlnRWdCRUVCZFNBS2FpSURhMEVHZFNJSE5nSThJQUFnRVNBR2EwRWdhaUlHSUFRZ0NrRUJkU0lGYTJwQkJuVWlDallDTENBQUlBWWdCU0FFYTJwQkJuVWlCRFlDSENBQUlBRWdBMnBCQm5VaUFEWUNEQ0FBUVlBRWFpQUVRWUFFYW5KQi93ZExEUUlnQjBHQUJHb2dDa0dBQkdweVFmOEhUUTBCREFJTElBTkI0Z0J4UlFSQVFRRWhBaUFBS0FJQVFTQnFRUVoxSWdGQmdBUnFRZjhIU3cwQ0lBQWdBVFlDT0NBQUlBRTJBandnQUNBQk5nSTBJQUFnQVRZQ01DQUFJQUUyQWl3Z0FDQUJOZ0lvSUFBZ0FUWUNKQ0FBSUFFMkFpQWdBQ0FCTmdJY0lBQWdBVFlDR0NBQUlBRTJBaFFnQUNBQk5nSVFJQUFnQVRZQ0RDQUFJQUUyQWdnZ0FDQUJOZ0lFSUFBZ0FUWUNBQXdCQzBFQklRSWdBQ0FBS0FJRUlBRnNJZ2NnQUNnQ0dDQUJiQ0lHUVFGMWFpSURJQUFvQWdBaUJTQUFLQUlVSUFSc0lnUnFJZ3BxUVNCcVFRWjFJZ0UyQWpBZ0FDQUtJQU5yUVNCcVFRWjFJZ00yQWd3Z0FDQUZJQVJySWdVZ0JpQUhRUUYxSWdkcmFrRWdha0VHZFNJRU5nSUlJQUFnQnlBR2F5QUZha0VnYWtFR2RTSUdOZ0lFSUFBZ0FUWUNBQ0FBSUFFMkFpQWdBQ0FHTmdJMElBQWdBVFlDRUNBQUlBWTJBaVFnQUNBRU5nSTRJQUFnQmpZQ0ZDQUFJQVEyQWlnZ0FDQUROZ0k4SUFBZ0JEWUNHQ0FBSUFNMkFpd2dBQ0FETmdJY0lBTkJnQVJxSUFGQmdBUnFJQVJCZ0FScUlBWkJnQVJxY25KeVFmOEhTdzBCQzBFQUlRSUxJQUlMOHdJQ0FuOEJmZ0pBSUFKRkRRQWdBQ0FDYWlJRFFYOXFJQUU2QUFBZ0FDQUJPZ0FBSUFKQkEwa05BQ0FEUVg1cUlBRTZBQUFnQUNBQk9nQUJJQU5CZldvZ0FUb0FBQ0FBSUFFNkFBSWdBa0VIU1EwQUlBTkJmR29nQVRvQUFDQUFJQUU2QUFNZ0FrRUpTUTBBSUFCQkFDQUFhMEVEY1NJRWFpSURJQUZCL3dGeFFZR0NoQWhzSWdFMkFnQWdBeUFDSUFSclFYeHhJZ1JxSWdKQmZHb2dBVFlDQUNBRVFRbEpEUUFnQXlBQk5nSUlJQU1nQVRZQ0JDQUNRWGhxSUFFMkFnQWdBa0YwYWlBQk5nSUFJQVJCR1VrTkFDQURJQUUyQWhnZ0F5QUJOZ0lVSUFNZ0FUWUNFQ0FESUFFMkFnd2dBa0Z3YWlBQk5nSUFJQUpCYkdvZ0FUWUNBQ0FDUVdocUlBRTJBZ0FnQWtGa2FpQUJOZ0lBSUFRZ0EwRUVjVUVZY2lJRWF5SUNRU0JKRFFBZ0FhMGlCVUlnaGlBRmhDRUZJQU1nQkdvaEFRTkFJQUVnQlRjREdDQUJJQVUzQXhBZ0FTQUZOd01JSUFFZ0JUY0RBQ0FCUVNCcUlRRWdBa0ZnYWlJQ1FSOUxEUUFMQ3lBQUMvSURBUU4vSUFFb0FnQWlBMEgvLy84SFJ3UkFJQUVvQWdRaEJDQUFJQUlnQWtFRGNTQUNRUkJKSWdJYlFRSjBJZ1ZCOENscUtBSUFRUkJCQ0NBQ0d5SUNiR29nQlVHd0tXb29BZ0JxSWdBZ0F5QUFMUUFBYWtHd0xtb3RBQUE2QUFBZ0FTZ0NDQ0VESUFBZ0JDQUFMUUFCYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VFSUFBZ0F5QUFMUUFDYWtHd0xtb3RBQUE2QUFJZ0FDQUVJQUF0QUFOcVFiQXVhaTBBQURvQUF5QUJLQUlVSVFNZ0FDQUNhaUlBSUFFb0FoQWdBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BaGdoQkNBQUlBTWdBQzBBQVdwQnNDNXFMUUFBT2dBQklBRW9BaHdoQXlBQUlBUWdBQzBBQW1wQnNDNXFMUUFBT2dBQ0lBQWdBeUFBTFFBRGFrR3dMbW90QUFBNkFBTWdBU2dDSkNFRElBQWdBbW9pQUNBQktBSWdJQUF0QUFCcVFiQXVhaTBBQURvQUFDQUJLQUlvSVFRZ0FDQURJQUF0QUFGcVFiQXVhaTBBQURvQUFTQUJLQUlzSVFNZ0FDQUVJQUF0QUFKcVFiQXVhaTBBQURvQUFpQUFJQU1nQUMwQUEycEJzQzVxTFFBQU9nQURJQUVvQWpRaEF5QUFJQUpxSWdBZ0FTZ0NNQ0FBTFFBQWFrR3dMbW90QUFBNkFBQWdBU2dDT0NFQ0lBQWdBeUFBTFFBQmFrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQWdBaUFBTFFBQ2FrR3dMbW90QUFBNkFBSWdBQ0FCSUFBdEFBTnFRYkF1YWkwQUFEb0FBd3NMMHhBQkRIOGpBRUdBQVdzaUNpUUFJQUFRRHlFRVFRRWhCUUpBQWtBQ2Z5QUNRUUZOQkVBZ0JFRUFTQTBDSUFSQkdYWkIvZ0J4UVlBSWFpQUVRWUNBZ09BQVR3MEJHaUFFUVJWMlFmNFBjVUhBQ0dvZ0JFR0FnSUFJVHcwQkdpQUVRUkYyUWY3L0FYRkJrQWxxSUFSQmdJQ0FBVThOQVJvZ0JFRVFka0VCZEVHUUNtb01BUXNnQWtFRFRRUkFJQVJCZjB3RVFFRUNRYUlRSUFSQmdJQ0FnQVJ4R3lFRkRBTUxJQVJCR1haQi9nQnhRZEFLYWlBRVFZQ0FnSUFCVHcwQkdpQUVRUloyUWY0SGNVR1FDMm9nQkVHQWdJQVFUdzBCR2lBRVFSRjJRZjcvQVhGQjBBdHFEQUVMSUFKQkIwMEVRQ0FFUVJwMklnSkJlR3BCT0VrRVFDQUNRUUYwUWRBTmFnd0NDeUFFUVJWMlFmNFBjVUhRRG1vTUFRc2dCRUVaZGtIK0FIRkIwQkJxSUFKQkVFME5BQm9nQkVFZGRpSUNCRUFnQWtFQmRFSFFFV29NQVFzZ0JFRVhka0grQTNGQjRCRnFDeThCQUNJRkRRQkJBU0VMREFFTFFRRWhDeUFGUVF0Mklna2dBMHNOQUVFZ0lBVkJIM0VpQm1zaEFnSkFJQWxGQkVBTUFRc2dCQ0FHZENFRUFrQWdCVUVGZGtFL2NTSU1SUVJBREFFTElBSWdERWtFUUNBQUlBWVFDMEYvUmcwRElBQVFEeUVFUVNBaEFnc2dCQ0FNZENFR1FRRWdERUYvYW5RaEJ5QUVRU0FnREd0MklRUURRQ0FLUVVCcklBaEJBblJxUVg5QkFTQUVJQWR4R3pZQ0FDQUlRUUZxSVFnZ0IwRUJkaUlIRFFBTElBSWdER3NoQWlBR0lRUUxJQWdnQ1VrRVFDQU1RUU5KSWc4Z0JVSC9yd0ZMY1NFRkEwQWdBa0VQVFFSQUlBQkJJQ0FDYXhBTFFYOUdCRUFNQlFzZ0FCQVBJUVJCSUNFQ0MwRUFJUVlDUUFKQUFuOENRQ0FFUVFCSURRQkJBU0VHSUFSQi8vLy8vd05MRFFCQkFpRUdJQVJCLy8vLy93RkxEUUJCQXlFR0lBUkIvLy8vL3dCTERRQkJCQ0VHSUFSQi8vLy9QMHNOQUVFRklRWWdCRUgvLy84ZlN3MEFRUVloQmlBRVFmLy8vdzlMRFFCQkJ5RUdJQVJCLy8vL0Iwc05BRUVJSVFZZ0JFSC8vLzhEU3cwQVFRa2hCaUFFUWYvLy93RkxEUUJCQ2lFR0lBUkIvLy8vQUVzTkFFRUxJUVlnQkVILy96OUxEUUJCRENFR0lBUkIvLzhmU3cwQVFRMGhCaUFFUWYvL0Qwc05BQUovQWtBZ0JFSC8vd2ROQkVBZ0JFR0FnSHh4UVlDQUJFWU5BUXdLQ3lBRlFRUWdCUnNoQmlBRVFROTBJUVJCRGlFSElBSkJjV29NQVFzZ0JVRUJJQVViSVFVZ0JFRVFkQ0VFUVF3aEJrRVBJUWNnQWtGd2Fnc2hBaUFISUFWMElRY2dCVVVNQVFzZ0JpQUZkQ0VIUVFFaERpQUNJQVpCQVdvaUJtc2hBaUFFSUFaMElRUWdCVVVOQVNBRklRWkJBQXNoRGlBQ0lBWlBCSDhnQkFVZ0FFRWdJQUpyRUF0QmYwWUVRQXdIQzBFZ0lRSWdBQkFQQ3lFTklBSWdCbXNoQWlBTklBWjBJUVFnRFVFZ0lBWnJkaUFIYWlFSERBRUxRUUFoQlFzZ0NrRkFheUFJUVFKMGFrRUFJQWRCQW1vZ0J5QUlJQXhHR3lBSElBOGJJZzFCQW1wQkFYWWlCbXNnQmlBTlFRRnhHellDQUVFQklBVWdEaHNpQlNBRlFRWkpJQVpCQXlBRlFYOXFkRXB4YWlFRklBaEJBV29pQ0NBSlJ3MEFDd3RCQUNFSEFrQWdDU0FEVHdSQVFRQWhDQXdCQ3dKQUlBSkJDRXNFUUNBQ0lRVU1BUXRCSUNFRklBQkJJQ0FDYXhBTFFYOUdEUU1nQUJBUElRUUxBa0FDUUFKL0FrQWdBMEVFUndSQUlBbEJmMm9pQWtFTlN3MERBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBa0VCYXc0TkFBRUNBd1FGQmdjSUNRb0xEQTRMSUFSQkduWkI0QkpxREE0TElBUkJHblpCb0JOcURBMExJQVJCRzNaQjRCTnFEQXdMSUFSQkczWkJnQlJxREFzTElBUkJHblpCb0JScURBb0xJQVJCR25aQjRCUnFEQWtMSUFSQkduWkJvQlZxREFnTElBUkJHblpCNEJWcURBY0xJQVJCRzNaQm9CWnFEQVlMSUFSQkhIWkJ3QlpxREFVTElBUkJISFpCMEJacURBUUxJQVJCSFhaQjRCWnFEQU1MSUFSQkhuWkI2QlpxREFJTElBUkJBRWdFUUVFQklRSU1CQXRCRVNFQ0lBbEJBMFlOQTBFU0lRSWdCRUgvLy8vL0Ewc05BMEVpSVFJZ0NVRUNSZzBEUVNOQk15QUVRZi8vLy84QlN4c2hBZ3dEQ3lBRVFSdDJRYUFTYWlBRVFSZDJRY0FTYWlBRVFmLy8vLzhBU3hzTExRQUFJZ0lOQVF3RUMwRVJRUUVnQkVFQVNCc2hBZ3NnQWtFRWRpRUlJQVVnQWtFUGNTSURheUVDSUFRZ0EzUWhCQXNnQ1VGL2FpSURCRUFEUUFKL0lBZ0VRQ0FDUVFwTkJFQWdBRUVnSUFKckVBdEJmMFlFUUF3SEN5QUFFQThoQkVFZ0lRSUxBa0FDZndKQUlBaEJmMm9pQlVFRlRRUkFBa0FDUUFKQUFrQUNRQ0FGUVFGckRnVUFBUUlEQkFZTElBUkJIblpCN2hacURBWUxJQVJCSG5aQjhoWnFEQVVMSUFSQkhYWkI5aFpxREFRTElBUkJIWFpCL2hacURBTUxJQVJCSFhaQmhoZHFEQUlMQW45Qjh3QWdCRUVaZGtId0FIRnJJQVJCZ0lDQWdBSlBEUUFhUWZRQUlBUkIvLy8vL3dCTERRQWFRWVVCSUFSQi8vLy9QMHNOQUJwQmxnRWdCRUgvLy84ZlN3MEFHa0duQVNBRVFmLy8vdzlMRFFBYVFiZ0JJQVJCLy8vL0Iwc05BQnBCeVFFZ0JFSC8vLzhEU3cwQUdrSGFBU0FFUWYvLy93RkxEUUFhUVFCQjZ3RWdCRUdBZ0lBQlNSc0xJZ1ZCQkhZZ0NFME5BZ3dJQ3lBRVFSOTJRZXdXYWdzdEFBQWhCUXNnQlVVRVFBd0dDeUFLSUFkQkFuUnFJQVZCQkhZaUJrRUJhallDQUNBQ0lBVkJEM0VpQldzaEFpQUVJQVYwSVFRZ0NDQUdhd3dCQ3lBS0lBZEJBblJxUVFFMkFnQkJBQXNoQ0NBSFFRRnFJZ2NnQTBjTkFBc2dBU0FJUVFKMGFpQUtRVUJySUFOQkFuUnFLQUlBTmdJQUlBbEJmbW9oQlVFQklBaDBJUWNEUUNBQklBb2dCU0lEUVFKMElnVnFLQUlBSUFocUlnaEJBblJxSUFwQlFHc2dCV29vQWdBMkFnQWdBMEYvYWlFRlFRRWdDSFFnQjNJaEJ5QUREUUFMREFFTElBRWdDRUVDZEdvZ0NrRkFheUFEUVFKMGFpZ0NBRFlDQUVFQklBaDBJUWNMSUFCQklDQUNheEFMRFFBZ0IwRVFkQ0FKUVFSMGNpRUxDeUFLUVlBQmFpUUFJQXNMelM0QkMzOGpBRUVRYXlJTEpBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCdE1BQUtBSUFJZ1pCRUNBQVFRdHFRWGh4SUFCQkMwa2JJZ1ZCQTNZaUFIWWlBVUVEY1FSQUlBRkJmM05CQVhFZ0FHb2lBa0VEZENJRVFlVEFBR29vQWdBaUFVRUlhaUVBQWtBZ0FTZ0NDQ0lESUFSQjNNQUFhaUlFUmdSQVFiVEFBQ0FHUVg0Z0FuZHhOZ0lBREFFTFFjVEFBQ2dDQUJvZ0F5QUVOZ0lNSUFRZ0F6WUNDQXNnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1EQXNnQlVHOHdBQW9BZ0FpQ0UwTkFTQUJCRUFDUUVFQ0lBQjBJZ0pCQUNBQ2EzSWdBU0FBZEhFaUFFRUFJQUJyY1VGL2FpSUFJQUJCREhaQkVIRWlBSFlpQVVFRmRrRUljU0lDSUFCeUlBRWdBbllpQUVFQ2RrRUVjU0lCY2lBQUlBRjJJZ0JCQVhaQkFuRWlBWElnQUNBQmRpSUFRUUYyUVFGeElnRnlJQUFnQVhacUlnSkJBM1FpQTBIa3dBQnFLQUlBSWdFb0FnZ2lBQ0FEUWR6QUFHb2lBMFlFUUVHMHdBQWdCa0YrSUFKM2NTSUdOZ0lBREFFTFFjVEFBQ2dDQUJvZ0FDQUROZ0lNSUFNZ0FEWUNDQXNnQVVFSWFpRUFJQUVnQlVFRGNqWUNCQ0FCSUFWcUlnY2dBa0VEZENJQ0lBVnJJZ05CQVhJMkFnUWdBU0FDYWlBRE5nSUFJQWdFUUNBSVFRTjJJZ1JCQTNSQjNNQUFhaUVCUWNqQUFDZ0NBQ0VDQW44Z0JrRUJJQVIwSWdSeFJRUkFRYlRBQUNBRUlBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEJDQUJJQUkyQWdnZ0JDQUNOZ0lNSUFJZ0FUWUNEQ0FDSUFRMkFnZ0xRY2pBQUNBSE5nSUFRYnpBQUNBRE5nSUFEQXdMUWJqQUFDZ0NBQ0lLUlEwQklBcEJBQ0FLYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQWlBQWNpQUJJQUoySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJZ0VvQWdSQmVIRWdCV3NoQXlBQklRSURRQUpBSUFJb0FoQWlBRVVFUUNBQ0tBSVVJZ0JGRFFFTElBQW9BZ1JCZUhFZ0JXc2lBaUFESUFJZ0Ewa2lBaHNoQXlBQUlBRWdBaHNoQVNBQUlRSU1BUXNMSUFFb0FoZ2hDU0FCSUFFb0Fnd2lCRWNFUUVIRXdBQW9BZ0FnQVNnQ0NDSUFUUVJBSUFBb0Fnd2FDeUFBSUFRMkFnd2dCQ0FBTmdJSURBc0xJQUZCRkdvaUFpZ0NBQ0lBUlFSQUlBRW9BaEFpQUVVTkF5QUJRUkJxSVFJTEEwQWdBaUVISUFBaUJFRVVhaUlDS0FJQUlnQU5BQ0FFUVJCcUlRSWdCQ2dDRUNJQURRQUxJQWRCQURZQ0FBd0tDMEYvSVFVZ0FFRy9mMHNOQUNBQVFRdHFJZ0JCZUhFaEJVRzR3QUFvQWdBaUIwVU5BRUVBSUFWcklRSUNRQUpBQWtBQ2YwRUFJQUJCQ0hZaUFFVU5BQnBCSHlBRlFmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnTWdBMEdBZ0E5cVFSQjJRUUp4SWdOMFFROTJJQUFnQVhJZ0EzSnJJZ0JCQVhRZ0JTQUFRUlZxZGtFQmNYSkJIR29MSWdoQkFuUkI1TUlBYWlnQ0FDSURSUVJBUVFBaEFBd0JDeUFGUVFCQkdTQUlRUUYyYXlBSVFSOUdHM1FoQVVFQUlRQURRQUpBSUFNb0FnUkJlSEVnQldzaUJpQUNUdzBBSUFNaEJDQUdJZ0lOQUVFQUlRSWdBeUVBREFNTElBQWdBeWdDRkNJR0lBWWdBeUFCUVIxMlFRUnhhaWdDRUNJRFJoc2dBQ0FHR3lFQUlBRWdBMEVBUjNRaEFTQUREUUFMQ3lBQUlBUnlSUVJBUVFJZ0NIUWlBRUVBSUFCcmNpQUhjU0lBUlEwRElBQkJBQ0FBYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQXlBQWNpQUJJQU4ySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJRElBSkpJUUVnQXlBQ0lBRWJJUUlnQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBQ1FiekFBQ2dDQUNBRmEwOE5BQ0FFS0FJWUlRZ2dCQ0FFS0FJTUlnRkhCRUJCeE1BQUtBSUFJQVFvQWdnaUFFMEVRQ0FBS0FJTUdnc2dBQ0FCTmdJTUlBRWdBRFlDQ0F3SkN5QUVRUlJxSWdNb0FnQWlBRVVFUUNBRUtBSVFJZ0JGRFFNZ0JFRVFhaUVEQ3dOQUlBTWhCaUFBSWdGQkZHb2lBeWdDQUNJQURRQWdBVUVRYWlFRElBRW9BaEFpQUEwQUN5QUdRUUEyQWdBTUNBdEJ2TUFBS0FJQUlnRWdCVThFUUVISXdBQW9BZ0FoQUFKQUlBRWdCV3NpQWtFUVR3UkFRYnpBQUNBQ05nSUFRY2pBQUNBQUlBVnFJZ00yQWdBZ0F5QUNRUUZ5TmdJRUlBQWdBV29nQWpZQ0FDQUFJQVZCQTNJMkFnUU1BUXRCeU1BQVFRQTJBZ0JCdk1BQVFRQTJBZ0FnQUNBQlFRTnlOZ0lFSUFBZ0FXb2lBU0FCS0FJRVFRRnlOZ0lFQ3lBQVFRaHFJUUFNQ2d0QndNQUFLQUlBSWdFZ0JVc0VRRUhBd0FBZ0FTQUZheUlCTmdJQVFjekFBRUhNd0FBb0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQW9MUVFBaEFDQUZRUzlxSWdRQ2YwR014QUFvQWdBRVFFR1V4QUFvQWdBTUFRdEJtTVFBUW44M0FnQkJrTVFBUW9DZ2dJQ0FnQVEzQWdCQmpNUUFJQXRCREdwQmNIRkIyS3JWcWdWek5nSUFRYURFQUVFQU5nSUFRZkREQUVFQU5nSUFRWUFnQ3lJQ2FpSUdRUUFnQW1zaUIzRWlBaUFGVFEwSlFlekRBQ2dDQUNJREJFQkI1TU1BS0FJQUlnZ2dBbW9pQ1NBSVRRMEtJQWtnQTBzTkNndEI4TU1BTFFBQVFRUnhEUVFDUUFKQVFjekFBQ2dDQUNJREJFQkI5TU1BSVFBRFFDQUFLQUlBSWdnZ0EwMEVRQ0FJSUFBb0FnUnFJQU5MRFFNTElBQW9BZ2dpQUEwQUN3dEJBQkFUSWdGQmYwWU5CU0FDSVFaQmtNUUFLQUlBSWdCQmYyb2lBeUFCY1FSQUlBSWdBV3NnQVNBRGFrRUFJQUJyY1dvaEJnc2dCaUFGVFEwRklBWkIvdi8vL3dkTERRVkI3TU1BS0FJQUlnQUVRRUhrd3dBb0FnQWlBeUFHYWlJSElBTk5EUVlnQnlBQVN3MEdDeUFHRUJNaUFDQUJSdzBCREFjTElBWWdBV3NnQjNFaUJrSCsvLy8vQjBzTkJDQUdFQk1pQVNBQUtBSUFJQUFvQWdScVJnMERJQUVoQUFzQ1FDQUZRVEJxSUFaTkRRQWdBRUYvUmcwQVFaVEVBQ2dDQUNJQklBUWdCbXRxUVFBZ0FXdHhJZ0ZCL3YvLy93ZExCRUFnQUNFQkRBY0xJQUVRRTBGL1J3UkFJQUVnQm1vaEJpQUFJUUVNQnd0QkFDQUdheEFUR2d3RUN5QUFJZ0ZCZjBjTkJRd0RDMEVBSVFRTUJ3dEJBQ0VCREFVTElBRkJmMGNOQWd0QjhNTUFRZkREQUNnQ0FFRUVjallDQUFzZ0FrSCsvLy8vQjBzTkFTQUNFQk1pQVVFQUVCTWlBRThOQVNBQlFYOUdEUUVnQUVGL1JnMEJJQUFnQVdzaUJpQUZRU2hxVFEwQkMwSGt3d0JCNU1NQUtBSUFJQVpxSWdBMkFnQWdBRUhvd3dBb0FnQkxCRUJCNk1NQUlBQTJBZ0FMQWtBQ1FBSkFRY3pBQUNnQ0FDSURCRUJCOU1NQUlRQURRQ0FCSUFBb0FnQWlBaUFBS0FJRUlnUnFSZzBDSUFBb0FnZ2lBQTBBQ3d3Q0MwSEV3QUFvQWdBaUFFRUFJQUVnQUU4YlJRUkFRY1RBQUNBQk5nSUFDMEVBSVFCQitNTUFJQVkyQWdCQjlNTUFJQUUyQWdCQjFNQUFRWDgyQWdCQjJNQUFRWXpFQUNnQ0FEWUNBRUdBeEFCQkFEWUNBQU5BSUFCQkEzUWlBa0hrd0FCcUlBSkIzTUFBYWlJRE5nSUFJQUpCNk1BQWFpQUROZ0lBSUFCQkFXb2lBRUVnUncwQUMwSEF3QUFnQmtGWWFpSUFRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlDYXlJRE5nSUFRY3pBQUNBQklBSnFJZ0kyQWdBZ0FpQURRUUZ5TmdJRUlBQWdBV3BCS0RZQ0JFSFF3QUJCbk1RQUtBSUFOZ0lBREFJTElBQXRBQXhCQ0hFTkFDQUJJQU5ORFFBZ0FpQURTdzBBSUFBZ0JDQUdhallDQkVITXdBQWdBMEY0SUFOclFRZHhRUUFnQTBFSWFrRUhjUnNpQUdvaUFUWUNBRUhBd0FCQndNQUFLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRZERBQUVHY3hBQW9BZ0EyQWdBTUFRc2dBVUhFd0FBb0FnQWlCRWtFUUVIRXdBQWdBVFlDQUNBQklRUUxJQUVnQm1vaEFrSDB3d0FoQUFKQUFrQUNRQUpBQWtBQ1FBTkFJQUlnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEI5TU1BSVFBRFFDQUFLQUlBSWdJZ0EwMEVRQ0FDSUFBb0FnUnFJZ1FnQTBzTkF3c2dBQ2dDQ0NFQURBQUFDd0FMSUFBZ0FUWUNBQ0FBSUFBb0FnUWdCbW8yQWdRZ0FVRjRJQUZyUVFkeFFRQWdBVUVJYWtFSGNSdHFJZ2tnQlVFRGNqWUNCQ0FDUVhnZ0FtdEJCM0ZCQUNBQ1FRaHFRUWR4RzJvaUFTQUpheUFGYXlFQUlBVWdDV29oQnlBQklBTkdCRUJCek1BQUlBYzJBZ0JCd01BQVFjREFBQ2dDQUNBQWFpSUFOZ0lBSUFjZ0FFRUJjallDQkF3REN5QUJRY2pBQUNnQ0FFWUVRRUhJd0FBZ0J6WUNBRUc4d0FCQnZNQUFLQUlBSUFCcUlnQTJBZ0FnQnlBQVFRRnlOZ0lFSUFBZ0Iyb2dBRFlDQUF3REN5QUJLQUlFSWdKQkEzRkJBVVlFUUNBQ1FYaHhJUW9DUUNBQ1FmOEJUUVJBSUFFb0FnZ2lBeUFDUVFOMklnUkJBM1JCM01BQWFrY2FJQU1nQVNnQ0RDSUNSZ1JBUWJUQUFFRzB3QUFvQWdCQmZpQUVkM0UyQWdBTUFnc2dBeUFDTmdJTUlBSWdBellDQ0F3QkN5QUJLQUlZSVFnQ1FDQUJJQUVvQWd3aUJrY0VRQ0FFSUFFb0FnZ2lBazBFUUNBQ0tBSU1HZ3NnQWlBR05nSU1JQVlnQWpZQ0NBd0JDd0pBSUFGQkZHb2lBeWdDQUNJRkRRQWdBVUVRYWlJREtBSUFJZ1VOQUVFQUlRWU1BUXNEUUNBRElRSWdCU0lHUVJScUlnTW9BZ0FpQlEwQUlBWkJFR29oQXlBR0tBSVFJZ1VOQUFzZ0FrRUFOZ0lBQ3lBSVJRMEFBa0FnQVNBQktBSWNJZ0pCQW5SQjVNSUFhaUlES0FJQVJnUkFJQU1nQmpZQ0FDQUdEUUZCdU1BQVFiakFBQ2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQUZHRzJvZ0JqWUNBQ0FHUlEwQkN5QUdJQWcyQWhnZ0FTZ0NFQ0lDQkVBZ0JpQUNOZ0lRSUFJZ0JqWUNHQXNnQVNnQ0ZDSUNSUTBBSUFZZ0FqWUNGQ0FDSUFZMkFoZ0xJQUVnQ21vaEFTQUFJQXBxSVFBTElBRWdBU2dDQkVGK2NUWUNCQ0FISUFCQkFYSTJBZ1FnQUNBSGFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVFRGRpSUJRUU4wUWR6QUFHb2hBQUovUWJUQUFDZ0NBQ0lDUVFFZ0FYUWlBWEZGQkVCQnRNQUFJQUVnQW5JMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0J6WUNDQ0FCSUFjMkFnd2dCeUFBTmdJTUlBY2dBVFlDQ0F3REN5QUhBbjlCQUNBQVFRaDJJZ0ZGRFFBYVFSOGdBRUgvLy84SFN3MEFHaUFCSUFGQmdQNC9ha0VRZGtFSWNTSUJkQ0lDSUFKQmdPQWZha0VRZGtFRWNTSUNkQ0lESUFOQmdJQVBha0VRZGtFQ2NTSURkRUVQZGlBQklBSnlJQU55YXlJQlFRRjBJQUFnQVVFVmFuWkJBWEZ5UVJ4cUN5SUJOZ0ljSUFkQ0FEY0NFQ0FCUVFKMFFlVENBR29oQWdKQVFiakFBQ2dDQUNJRFFRRWdBWFFpQkhGRkJFQkJ1TUFBSUFNZ0JISTJBZ0FnQWlBSE5nSUFEQUVMSUFCQkFFRVpJQUZCQVhacklBRkJIMFliZENFRElBSW9BZ0FoQVFOQUlBRWlBaWdDQkVGNGNTQUFSZzBESUFOQkhYWWhBU0FEUVFGMElRTWdBaUFCUVFSeGFpSUVLQUlRSWdFTkFBc2dCQ0FITmdJUUN5QUhJQUkyQWhnZ0J5QUhOZ0lNSUFjZ0J6WUNDQXdDQzBIQXdBQWdCa0ZZYWlJQVFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEd5SUNheUlITmdJQVFjekFBQ0FCSUFKcUlnSTJBZ0FnQWlBSFFRRnlOZ0lFSUFBZ0FXcEJLRFlDQkVIUXdBQkJuTVFBS0FJQU5nSUFJQU1nQkVFbklBUnJRUWR4UVFBZ0JFRlpha0VIY1J0cVFWRnFJZ0FnQUNBRFFSQnFTUnNpQWtFYk5nSUVJQUpCL01NQUtRSUFOd0lRSUFKQjlNTUFLUUlBTndJSVFmekRBQ0FDUVFocU5nSUFRZmpEQUNBR05nSUFRZlREQUNBQk5nSUFRWURFQUVFQU5nSUFJQUpCR0dvaEFBTkFJQUJCQnpZQ0JDQUFRUWhxSVFFZ0FFRUVhaUVBSUFRZ0FVc05BQXNnQWlBRFJnMERJQUlnQWlnQ0JFRitjVFlDQkNBRElBSWdBMnNpQkVFQmNqWUNCQ0FDSUFRMkFnQWdCRUgvQVUwRVFDQUVRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQVFMSUFOQ0FEY0NFQ0FEQW45QkFDQUVRUWgySWdCRkRRQWFRUjhnQkVILy8vOEhTdzBBR2lBQUlBQkJnUDQvYWtFUWRrRUljU0lBZENJQklBRkJnT0FmYWtFUWRrRUVjU0lCZENJQ0lBSkJnSUFQYWtFUWRrRUNjU0lDZEVFUGRpQUFJQUZ5SUFKeWF5SUFRUUYwSUFRZ0FFRVZhblpCQVhGeVFSeHFDeUlBTmdJY0lBQkJBblJCNU1JQWFpRUJBa0JCdU1BQUtBSUFJZ0pCQVNBQWRDSUdjVVVFUUVHNHdBQWdBaUFHY2pZQ0FDQUJJQU0yQWdBZ0F5QUJOZ0lZREFFTElBUkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQUVvQWdBaEFRTkFJQUVpQWlnQ0JFRjRjU0FFUmcwRUlBQkJIWFloQVNBQVFRRjBJUUFnQWlBQlFRUnhhaUlHS0FJUUlnRU5BQXNnQmlBRE5nSVFJQU1nQWpZQ0dBc2dBeUFETmdJTUlBTWdBellDQ0F3REN5QUNLQUlJSWdBZ0J6WUNEQ0FDSUFjMkFnZ2dCMEVBTmdJWUlBY2dBallDRENBSElBQTJBZ2dMSUFsQkNHb2hBQXdGQ3lBQ0tBSUlJZ0FnQXpZQ0RDQUNJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FqWUNEQ0FESUFBMkFnZ0xRY0RBQUNnQ0FDSUFJQVZORFFCQndNQUFJQUFnQldzaUFUWUNBRUhNd0FCQnpNQUFLQUlBSWdBZ0JXb2lBallDQUNBQ0lBRkJBWEkyQWdRZ0FDQUZRUU55TmdJRUlBQkJDR29oQUF3REMwR3d3QUJCTURZQ0FFRUFJUUFNQWdzQ1FDQUlSUTBBQWtBZ0JDZ0NIQ0lBUVFKMFFlVENBR29pQXlnQ0FDQUVSZ1JBSUFNZ0FUWUNBQ0FCRFFGQnVNQUFJQWRCZmlBQWQzRWlCellDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQVJHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQWcyQWhnZ0JDZ0NFQ0lBQkVBZ0FTQUFOZ0lRSUFBZ0FUWUNHQXNnQkNnQ0ZDSUFSUTBBSUFFZ0FEWUNGQ0FBSUFFMkFoZ0xBa0FnQWtFUFRRUkFJQVFnQWlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnTWdBa0VCY2pZQ0JDQUNJQU5xSUFJMkFnQWdBa0gvQVUwRVFDQUNRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQUVMSUFNQ2YwRUFJQUpCQ0hZaUFFVU5BQnBCSHlBQ1FmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnVWdCVUdBZ0E5cVFSQjJRUUp4SWdWMFFROTJJQUFnQVhJZ0JYSnJJZ0JCQVhRZ0FpQUFRUlZxZGtFQmNYSkJIR29MSWdBMkFod2dBMElBTndJUUlBQkJBblJCNU1JQWFpRUJBa0FDUUNBSFFRRWdBSFFpQlhGRkJFQkJ1TUFBSUFVZ0IzSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBRW9BZ0FoQlFOQUlBVWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCU0FBUVFGMElRQWdBU0FGUVFSeGFpSUdLQUlRSWdVTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUFsRkRRQUNRQ0FCS0FJY0lnQkJBblJCNU1JQWFpSUNLQUlBSUFGR0JFQWdBaUFFTmdJQUlBUU5BVUc0d0FBZ0NrRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0JVRURjallDQkNBQklBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQ0FSQUlBaEJBM1lpQlVFRGRFSGN3QUJxSVFCQnlNQUFLQUlBSVFJQ2YwRUJJQVYwSWdVZ0JuRkZCRUJCdE1BQUlBVWdCbkkyQWdBZ0FBd0JDeUFBS0FJSUN5RUZJQUFnQWpZQ0NDQUZJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0JUWUNDQXRCeU1BQUlBUTJBZ0JCdk1BQUlBTTJBZ0FMSUFGQkNHb2hBQXNnQzBFUWFpUUFJQUFMUkFFQmZ5QUFJQUFvQWhBZ0FXb2lBVFlDRUNBQUlBRkJCM0UyQWdoQmZ5RUNJQUVnQUNnQ0RFRURkRTBFZnlBQUlBQW9BZ0FnQVVFRGRtbzJBZ1JCQUFWQmZ3c0w1UWNCQ0g4Z0FDQUVRUUFnQm1zZ0FpQUNJQVpxUVFCSUd5SUNJQUlnQkVvYklnSnFJQUFnQWtFQVNoc2lDU0FGUVFBZ0Iyc2dBeUFESUFkcVFRQklHeUlBSUFBZ0JVb2JJZ0FnQkd4cUlBa2dBRUVBU2hzaEF5QUhRUUFnQUdzZ0FFRWZkWEVpQ1dzZ0FDQUhhaUlBSUFWcklneEJBQ0FBSUFWS0d5SVBheUVMSUFaQkFDQUNheUlPSUFKQkgzVnhJZzFySUFJZ0Jtb2lBQ0FFYTBFQUlBQWdCRW9pQlJzaUNtc2hBQUpBSUFKQkFFZ2dCWElpRUVVRVFDQUpCRUFEUUNBQklBTWdBQkFWSUFocUlRRWdDVUYvYWlJSkRRQUxDeUFMUlEwQkEwQWdBU0FESUFBUUZTQUlhaUVCSUFNZ0JHb2hBeUFMUVg5cUlnc05BQXNNQVFzQ1FDQUpSUTBBSUExRkJFQURRQ0FBSVFjZ0FTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQVNBSWFpRUJJQWxCZjJvaUNRMEFEQUlBQ3dBTElBRWdEbW9oQmdOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0JpRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQmlBSWFpRUdJQUVnQ0dvaEFTQUpRWDlxSWdrTkFBc0xJQXRGRFFBZ0RVVUVRQU5BSUFBaEJ5QUJJUUlnQXlFRklBQUVRQU5BSUFJZ0JTMEFBRG9BQUNBQ1FRRnFJUUlnQlVFQmFpRUZJQWRCZjJvaUJ3MEFDd3NnQ2dSQUlBSWdCVUYvYWkwQUFDQUtFQWNhQ3lBQklBaHFJUUVnQXlBRWFpRURJQXRCZjJvaUN3MEFEQUlBQ3dBTElBRWdEbW9oQ1FOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0NTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQ0NBSmFpRUpJQUVnQ0dvaEFTQURJQVJxSVFNZ0MwRi9haUlMRFFBTEN3SkFJQTlGRFFBZ0F5QUVheUVESUJCRkJFQURRQ0FCSUFNZ0FCQVZJQWhxSVFFZ0RFRi9haUlNRFFBTUFnQUxBQXNnRFVVRVFBTkFJQU1oQWlBQklRVWdBQ0VISUFBRVFBTkFJQVVnQWkwQUFEb0FBQ0FGUVFGcUlRVWdBa0VCYWlFQ0lBZEJmMm9pQncwQUN3c2dDZ1JBSUFVZ0FrRi9haTBBQUNBS0VBY2FDeUFCSUFocUlRRWdERUYvYWlJTURRQU1BZ0FMQUFzZ0FTQU9haUVKQTBBZ0FTQURMUUFBSUEwUUJ5RUJJQUFoQnlBSklRSWdBeUVGSUFBRVFBTkFJQUlnQlMwQUFEb0FBQ0FDUVFGcUlRSWdCVUVCYWlFRklBZEJmMm9pQncwQUN3c2dDZ1JBSUFJZ0JVRi9haTBBQUNBS0VBY2FDeUFJSUFscUlRa2dBU0FJYWlFQklBeEJmMm9pREEwQUN3c0w5QUlCQTM4Z0FVRURkRUh3Tm1vaUF5Z0NBQ0VGSUFNdEFBUWhBeUFCUVFOMFFiQTFhaUlCTFFBRUlRUUNRQ0FCS0FJQVFRUkdCRUFnQWlBRVFRRjBhaTRCQUNFQklBVkJCRVlFUUNBQklBSWdBMEVCZEdvdUFRQnFRUUZxUVFGMUR3c0NmeUFBS0FMTUFTSUNCRUFnQUNnQ0JDQUNLQUlFUmd3QkMwRUFDMFVOQVNBQklBQW9Bc3dCSUFOQkFYUnFMZ0VjYWtFQmFrRUJkUThMSUFWQkJFWUVRQ0FDSUFOQkFYUnFMZ0VBSVFFQ2Z5QUFLQUxJQVNJQ0JFQWdBQ2dDQkNBQ0tBSUVSZ3dCQzBFQUMwVU5BU0FCSUFBb0FzZ0JJQVJCQVhScUxnRWNha0VCYWtFQmRROExBbjhDZnlBQUtBTElBU0lCQkVBZ0FDZ0NCQ0FCS0FJRVJnd0JDMEVBQzBVRVFFRUFJUUpCQUF3QkMwRUJJUUlnQUNnQ3lBRWdCRUVCZEdvdUFSd0xJUUVDZnlBQUtBTE1BU0lFQkVBZ0FDZ0NCQ0FFS0FJRVJnd0JDMEVBQzBVTkFDQUFLQUxNQVNBRFFRRjBhaTRCSENFQUlBSkZCRUFnQUE4TElBQWdBV3BCQVdwQkFYVWhBUXNnQVF1SkJ3RUhmeUFESUFWcUlnMGdBUzRCQUNJTVFRSjFhaUVESUFRZ0Jtb2lEaUFCTGdFQ0lnOUJBblZxSVFRZ0FpZ0NDRUVFZENFSklBSW9BZ1JCQkhRaENpQUFJQVpCQkhScUlBVnFJUXNDUUNBTVFRTnhRUVIwSUE5QkEzRkJBblJ5UWRBN2FpZ0NBQ0lNUVE1TkJFQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnREVFQmF3NE9BUUlEQkFVR0J3Z0pDZ3NNRFE0QUN5QUNLQUlBSUFzZ0F5QUVJQW9nQ1NBSElBaEJFQkFNREE4TElBSW9BZ0FnQ3lBRElBUkJmbW9nQ2lBSklBY2dDRUVBRUNRTURnc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJRUVjTURRc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJUVFFUUpBd01DeUFDS0FJQUlBc2dBMEYrYWlBRUlBb2dDU0FISUFoQkFCQWpEQXNMSUFJb0FnQWdDeUFEUVg1cUlBUkJmbW9nQ2lBSklBY2dDRUVBRUJvTUNnc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRQVFJUXdKQ3lBQ0tBSUFJQXNnQTBGK2FpQUVRWDVxSUFvZ0NTQUhJQWhCQWhBYURBZ0xJQUlvQWdBZ0N5QURRWDVxSUFRZ0NpQUpJQWNnQ0JCR0RBY0xJQUlvQWdBZ0N5QURRWDVxSUFSQmZtb2dDaUFKSUFjZ0NFRUFFQ0lNQmdzZ0FpZ0NBQ0FMSUFOQmZtb2dCRUYrYWlBS0lBa2dCeUFJRUVVTUJRc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRRVFJZ3dFQ3lBQ0tBSUFJQXNnQTBGK2FpQUVJQW9nQ1NBSElBaEJBUkFqREFNTElBSW9BZ0FnQ3lBRFFYNXFJQVJCZm1vZ0NpQUpJQWNnQ0VFQkVCb01BZ3NnQWlnQ0FDQUxJQU5CZm1vZ0JFRithaUFLSUFrZ0J5QUlRUUVRSVF3QkN5QUNLQUlBSUFzZ0EwRithaUFFUVg1cUlBb2dDU0FISUFoQkF4QWFDeUFOUVFGMklBRXVBUUFpQ1VFRGRXb2hBeUFPUVFGMklBRXVBUUlpQVVFRGRXb2hCQ0FDS0FJQUlBSW9BZ1FpQ2lBQ0tBSUlJZ3RzUVFoMGFpRUNJQUFnQmtFQ2RFRjRjV29nQlVFQmRtcEJnQUpxSVFVZ0NFRUJkaUVHSUFkQkFYWWhCeUFCUVFkeElRZ2dDMEVEZENFQUlBcEJBM1FoQVFKQUlBbEJCM0VpQ1VVTkFDQUlSUTBBSUFJZ0JTQURJQVFnQVNBQUlBa2dDQ0FISUFZUVNBOExJQWtFUUNBQ0lBVWdBeUFFSUFFZ0FDQUpJQWNnQmhCTER3c2dDQVJBSUFJZ0JTQURJQVFnQVNBQUlBZ2dCeUFHRUVvUEN5QUNJQVVnQXlBRUlBRWdBQ0FISUFaQkNCQU1JQUlnQUNBQmJHb2dCVUZBYXlBRElBUWdBU0FBSUFjZ0JrRUlFQXdMeHdFQkJIOGdBQ2dDQkNFQ0FrQWdBQ2dDREVFRGRDQUFLQUlRYXlJRFFTQk9CRUFnQWlnQUFDSUJRUmgwSUFGQkNIUkJnSUQ4QjNGeUlBRkJDSFpCZ1A0RGNTQUJRUmgyY25JaEFTQUFLQUlJSWdCRkRRRWdBU0FBZENBQ0xRQUVRUWdnQUd0MmNnOExJQU5CQVVnRVFFRUFEd3NnQWkwQUFDQUFLQUlJSWdCQkdHb2lCSFFoQVNBQUlBTnFRWGhxSWdCQkFVZ05BQU5BSUFJdEFBRWdCRUY0YWlJRWRDQUJjaUVCSUFCQkNFb2hBeUFDUVFGcUlRSWdBRUY0YWlFQUlBTU5BQXNMSUFFTGpBUUJCMzhDUUNBQVFYOXFJZ2d0QUFBaUJTQUFMUUFBSWdacklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJRVR3MEFJQUJCZm1vdEFBQWlCQ0FGYXlJSElBZEJIM1VpQjJvZ0IzTWdBaWdDQ0NJSlR3MEFJQUF0QUFFaUJ5QUdheUlLSUFwQkgzVWlDbW9nQ25NZ0NVOE5BQ0FCUVFOTkJFQWdDQ0FGSUFFZ0FpZ0NBR3BCZjJvdEFBQWlDRUYvY3lJSklBaEJBV29pQ0NBR0lBVnJRUUowSUFkcklBUnFRUVJxUVFOMUlnVWdCU0FJU2hzZ0JTQUpTQnNpQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFGYTBHd0xtb3RBQUE2QUFBTUFRc2dDQ0FGSUFkcUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFBZ0JpQUhRUUYwYWlBRWFrRUNha0VDZGpvQUFBc0NRQ0FBSUFOcUlnQkJmMm9pQnkwQUFDSURJQUF0QUFBaUJXc2lCaUFHUVI5MUlnWnFJQVp6SUFJb0FnUlBEUUFnQUVGK2FpMEFBQ0lHSUFOcklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJSUlnaFBEUUFnQUMwQUFTSUVJQVZySWdrZ0NVRWZkU0lKYWlBSmN5QUlUdzBBSUFGQkEwMEVRQ0FISUFFZ0FpZ0NBR3BCZjJvdEFBQWlBVUYvY3lJQ0lBRkJBV29pQnlBRklBTnJRUUowSUFScklBWnFRUVJxUVFOMUlnRWdBU0FIU2hzZ0FTQUNTQnNpQVNBRGFrR3dMbW90QUFBNkFBQWdBQ0FGSUFGclFiQXVhaTBBQURvQUFBOExJQWNnQXlBRWFpQUdRUUYwYWtFQ2FrRUNkam9BQUNBQUlBVWdCRUVCZEdvZ0JtcEJBbXBCQW5ZNkFBQUxDMGNBQWtBZ0FVRUVUUVJBQWtBQ1FBSkFBa0FnQVVFQmF3NEVBUUlEQlFBTElBQW9Bc2dCRHdzZ0FDZ0N6QUVQQ3lBQUtBTFFBUThMSUFBb0F0UUJEd3RCQUNFQUN5QUFDNlVEQVF0L1FRQWdBMnNpQzBFQmRDRUVJQUVnQWlnQ0FHcEJmMm90QUFBaUFVRUJhaUVKSUFGQmYzTWhDZ0pBSUFBZ0Eyc2lCeTBBQUNJRklBQXRBQUFpQm1zaUFTQUJRUjkxSWdGcUlBRnpJQUlvQWdRaUFVOE5BQ0FBSUFScUxRQUFJZzBnQldzaUNDQUlRUjkxSWdocUlBaHpJQUlvQWdnaUNFOE5BQ0FBSUFOcUxRQUFJZzRnQm1zaURDQU1RUjkxSWd4cUlBeHpJQWhQRFFBZ0J5QUtJQWtnQmlBRmEwRUNkQ0FPYXlBTmFrRUVha0VEZFNJQklBRWdDVW9iSUFFZ0NrZ2JJZ0VnQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFCYTBHd0xtb3RBQUE2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJBV29pQlNBTGFpSUxMUUFBSWdZZ0FDMEFBU0lBYXlJSElBZEJIM1VpQjJvZ0IzTWdBVThOQUNBRUlBVnFMUUFBSWdFZ0Jtc2lCQ0FFUVI5MUlnUnFJQVJ6SUFJb0FnZ2lBazhOQUNBRElBVnFMUUFBSWdNZ0FHc2lCQ0FFUVI5MUlnUnFJQVJ6SUFKUERRQWdDeUFLSUFrZ0FDQUdhMEVDZENBRGF5QUJha0VFYWtFRGRTSUJJQUVnQ1VvYklBRWdDa2diSWdFZ0JtcEJzQzVxTFFBQU9nQUFJQVVnQUNBQmEwR3dMbW90QUFBNkFBQUxDMFFCQW44L0FDRUJBa0JCc01RQUtBSUFJZ0lnQUVFRGFrRjhjV29pQUNBQlFSQjBUUTBBSUFBUUFRMEFRYkRBQUVFd05nSUFRWDhQQzBHd3hBQWdBRFlDQUNBQ0N6UUJBWDhDUUNBQlFSQkxEUUFnQUNnQ0JDQUJRUUowYWlnQ0FDSUFSUTBBSUFBb0FoUkJBa2tOQUNBQUtBSUFJUUlMSUFJTGdnUUJBMzhnQWtHQUJFOEVRQ0FBSUFFZ0FoQUFHaUFBRHdzZ0FDQUNhaUVEQWtBZ0FDQUJjMEVEY1VVRVFBSkFJQUpCQVVnRVFDQUFJUUlNQVFzZ0FFRURjVVVFUUNBQUlRSU1BUXNnQUNFQ0EwQWdBaUFCTFFBQU9nQUFJQUZCQVdvaEFTQUNRUUZxSWdJZ0EwOE5BU0FDUVFOeERRQUxDd0pBSUFOQmZIRWlCRUhBQUVrTkFDQUNJQVJCUUdvaUJVc05BQU5BSUFJZ0FTZ0NBRFlDQUNBQ0lBRW9BZ1EyQWdRZ0FpQUJLQUlJTmdJSUlBSWdBU2dDRERZQ0RDQUNJQUVvQWhBMkFoQWdBaUFCS0FJVU5nSVVJQUlnQVNnQ0dEWUNHQ0FDSUFFb0FodzJBaHdnQWlBQktBSWdOZ0lnSUFJZ0FTZ0NKRFlDSkNBQ0lBRW9BaWcyQWlnZ0FpQUJLQUlzTmdJc0lBSWdBU2dDTURZQ01DQUNJQUVvQWpRMkFqUWdBaUFCS0FJNE5nSTRJQUlnQVNnQ1BEWUNQQ0FCUVVCcklRRWdBa0ZBYXlJQ0lBVk5EUUFMQ3lBQ0lBUlBEUUVEUUNBQ0lBRW9BZ0EyQWdBZ0FVRUVhaUVCSUFKQkJHb2lBaUFFU1EwQUN3d0JDeUFEUVFSSkJFQWdBQ0VDREFFTElBTkJmR29pQkNBQVNRUkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FpQUJMUUFCT2dBQklBSWdBUzBBQWpvQUFpQUNJQUV0QUFNNkFBTWdBVUVFYWlFQklBSkJCR29pQWlBRVRRMEFDd3NnQWlBRFNRUkFBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSWdBMGNOQUFzTElBQUx3UmdCSUg4akFFSFFBMnNpQmlRQUlBRW9BZ2doRkNBQklBRW9BZ1FpQ2lBQ2JDSWFJQU5xRUIwZ0FTZ0NBQ0VKSUFCQkFEWUNDQ0FBUWlnM0FoUWdBRUlBTndJTUlBQkJCallDQUNBRFFRUjBJUWNDUUFKQUFrQWdCRUYrYWlJRVFRVkxEUUFDUUNBRVFRRnJEZ1FCQVFFQkFBc01BUXNnQmtFQU5nSU1JQVlnRkRZQ0dDQUdJQW8yQWhRZ0JpQUZOZ0lRSUFVRVFDQUdRZEFBYWlBR1FReHFJQVpCRUdvZ0J5QUNRUVIwUVFCQkFFRVFRUkFRRGd3Q0N3c2dCa0hRQUdwQkFFR0FBeEFIR2lBSklCcEJDSFJxSUFkcUlRd2dCa0lBTndOSUlBWkJRR3RDQURjREFDQUdRZ0EzQXpnZ0JrSUFOd013SUFaQ0FEY0RLQ0FHUWdBM0F5QWdCa0lBTndNWUlBWkNBRGNERUVFQUlRa0NmMEVBSUFKRkRRQWFRUUFnQUVFQUlBcHJRZGdCYkdvb0FzUUJSUTBBR2lBR0lBd2dDa0VFZEdzaUJDMEFCU0FFTFFBRWFpQUVMUUFHYWlBRUxRQUhhaUlYSUFRdEFBTWdCQzBBQWlBRUxRQUJJQVF0QUFCcWFtb2lGbW9pQlNBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSWFtcHFJaEpySUFRdEFBOGdCQzBBRGlBRUxRQU5JQVF0QUF4cWFtb2lFMnNpQ0RZQ0ZDQUdJQVVnRW1vZ0Uyb2lDVFlDRUVFQkN5RUZBbjhDUUNBQ0lCUkJmMnBIQkVBZ0FDQUtRZGdCYkdvb0FzUUJEUUVMSUFVTUFRc2dCaUFNSUFwQkNIUnFJZ0l0QUFVZ0FpMEFCR29nQWkwQUJtb2dBaTBBQjJvaUhpQUNMUUFESUFJdEFBSWdBaTBBQVNBQ0xRQUFhbXBxSWg5cUlnUWdBaTBBQ3lBQ0xRQUtJQUl0QUFrZ0FpMEFDR3BxYWlJWWF5QUNMUUFQSUFJdEFBNGdBaTBBRFNBQ0xRQU1hbXBxSWhscklBaHFJZ2cyQWhRZ0JpQUVJQmhxSUFscUlCbHFJZ2syQWhCQkFTRVFJQVZCQVdvTElRZEJBQ0VFQW44Q1FDQURSUTBBSUFCQmJHb29BZ0JGRFFBZ0JpQU1RWDlxSWdJZ0NrRUdkQ0lPYWlJRUlBcEJCSFFpQzJvdEFBQWdCQzBBQUdvZ0JDQUtRUVYwSWc5cUxRQUFhaUFFSUFwQk1Hd2lEV290QUFCcUloc2dBaUFOYWkwQUFDQUNJQTlxTFFBQUlBSWdDMm90QUFBZ0FpMEFBR3BxYWlJY2FpSVJJQVFnRG1vaUFpQUxhaTBBQUNBQ0xRQUFhaUFDSUE5cUxRQUFhaUFDSUExcUxRQUFhaUlWYXlBQ0lBNXFJZ0lnQzJvdEFBQWdBaTBBQUdvZ0FpQVBhaTBBQUdvZ0FpQU5haTBBQUdvaUQyc2lCRFlDSUNBR0lCRWdGV29nQ1dvZ0Qyb2lDVFlDRUNBSFFRRnFJUXRCQVF3QkN5QUhJUXRCQUFzaEFnSkFBa0FDUUFKQUFrQUNRQ0FESUFwQmYycEhCRUFnQUNnQ25BTU5BUXRCQUNFT0lBSkJBRWNoRVNBSERRRU1BZ3NnQmlBRUlBeEJFR29pQkNBS1FRWjBJaDFxSWdBZ0NrRUVkQ0lOYWkwQUFDQUFMUUFBYWlBQUlBcEJCWFFpRG1vdEFBQnFJQUFnQ2tFd2JDSVJhaTBBQUdvaUlDQUVJQkZxTFFBQUlBUWdEbW90QUFBZ0JDQU5haTBBQUNBTUxRQVFhbXBxSWlGcUlpSWdBQ0FkYWlJQUlBMXFMUUFBSUFBdEFBQnFJQUFnRG1vdEFBQnFJQUFnRVdvdEFBQnFJZ3hySUFBZ0hXb2lBQ0FOYWkwQUFDQUFMUUFBYWlBQUlBNXFMUUFBYWlBQUlCRnFMUUFBYWlJTmEyb2lCRFlDSUNBR0lBd2dJbW9nQ1dvZ0RXb2lDVFlDRUNBQ1FRQkhJUkZCQVNFT0lBSkJBV29oQUNBTFFRRnFJUXNDUUNBSERRQWdBa1VOQUNBR0lCc2dIR29nRldvZ0Qyb2dJV3NnSUdzZ0RHc2dEV3RCQlhVaUNEWUNGQXdEQ3lBSFJRMENJQUFoQWdzZ0JpQUlJQWRCQTJwMUlnZzJBaFFMQWtBZ0VFVU5BQ0FGUlEwQUlBSU5BQ0FHSUJZZ0Yyb2dFbW9nRTJvZ0dXc2dHR3NnSG1zZ0gydEJCWFVpQkRZQ0lFRUJJUkJCQVNFTkRBTUxJQkJCQUVjaEVDQUZRUUJISVEwZ0FrVU5BZ3dCQ3lBUVFRQkhJUkFnQlVFQVJ5RU5JQUFoQWdzZ0JpQUVJQUpCQTJwMUlnUTJBaUFMSUFZQ2Z5QUxRWDlxSWdCQkFrMEVRQUpBQWtBQ1FDQUFRUUZyRGdJQkFnQUxJQWxCQkhZTUF3c2dDVUVGZGd3Q0N5QUpRUlZzUVFwMURBRUxJQWxCQm5ZTElnQTJBaEFDUUNBRUlBaHlSUVJBSUFZZ0FEWUNTQ0FHSUFBMkFrd2dCaUFBTmdKRUlBWWdBRFlDUUNBR0lBQTJBandnQmlBQU5nSTRJQVlnQURZQ05DQUdJQUEyQWpBZ0JpQUFOZ0lzSUFZZ0FEWUNLQ0FHSUFBMkFpUWdCaUFBTmdJZ0lBWWdBRFlDSENBR0lBQTJBaGdnQmlBQU5nSVVEQUVMSUFZZ0FDQUlhaUlGSUFSck5nSkFJQVlnQlNBRVFRRjFJZ0pyTmdJd0lBWWdBaUFGYWpZQ0lDQUdJQVFnQldvMkFoQWdCaUFBSUFocklnVWdCR3MyQWt3Z0JpQUZJQUpyTmdJOElBWWdBaUFGYWpZQ0xDQUdJQVFnQldvMkFod2dCaUFBSUFoQkFYVWlCMm9pQlNBRWF6WUNSQ0FHSUFVZ0FtczJBalFnQmlBQ0lBVnFOZ0lrSUFZZ0JDQUZhallDRkNBR0lBQWdCMnNpQUNBRWF6WUNTQ0FHSUFBZ0FtczJBamdnQmlBQUlBSnFOZ0lvSUFZZ0FDQUVhallDR0FzZ0JrSFFBR29oQ0NBR1FSQnFJUUJCQUNFRUEwQWdDQ0FBSUFSQkRIRnFLQUlBSWdKQi93RWdBa0gvQVVnYklnSkJBQ0FDUVFCS0d6b0FBQ0FBSUFCQkVHb2dCRUVCYWlJRVFUOXhHeUVBSUFoQkFXb2hDQ0FFUVlBQ1J3MEFDeUFCS0FJQUlBb2dGR3dpQUVFSWRHb2dHa0VHZEdvZ0EwRURkR29oQXlBS1FRUjBJUXdnQ2tFR2RDRWFJQUJCQm5RaEhVRUFJQXBCQTNRaUMyc2hJQ0FHUWRBQ2FpRWhJQVpCUUdzaElrRUFJUVVEUUNBR1FnQTNBMGdnSWtJQU53TUFJQVpDQURjRE9DQUdRZ0EzQXpBZ0JrSUFOd01vSUFaQ0FEY0RJQ0FHUWdBM0F4Z2dCa0lBTndNUVFRQWhDRUVBSVFSQkFDRUpJQTBFUUNBR0lBTWdJR29pQUMwQUF5QUFMUUFDYWlJWElBQXRBQUVnQUMwQUFHb2lGbW9pQWlBQUxRQUZJQUF0QUFScUloSnJJQUF0QUFjZ0FDMEFCbW9pRTJzaUNEWUNGQ0FHSUFJZ0Vtb2dFMm9pQkRZQ0VFRUJJUWtMSUJBRVFDQUdJQU1nR21vaUFDMEFBeUFBTFFBQ2FpSWVJQUF0QUFFZ0FDMEFBR29pSDJvaUFpQUFMUUFGSUFBdEFBUnFJaGhySUFBdEFBY2dBQzBBQm1vaUdXc2dDR29pQ0RZQ0ZDQUdJQUlnR0dvZ0JHb2dHV29pQkRZQ0VDQUpRUUZxSVFrTFFRQWhBQUovSUJGRkJFQWdDU0VIUVFBTUFRc2dCaUFEUVg5cUlnQWdER29pQWlBTGFpMEFBQ0FDTFFBQWFpSWJJQUFnQzJvdEFBQWdBQzBBQUdvaUhHb2lCeUFDSUF4cUlnQWdDMm90QUFBZ0FDMEFBR29pRldzZ0FDQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlnOXJJZ0EyQWlBZ0JpQUhJQlZxSUFScUlBOXFJZ1EyQWhBZ0NVRUJhaUVIUVFFTElRSUNRQ0FHQW44Q1FBSkFBa0FnRGtVRVFDQUpEUUVNQWdzZ0JpQUFJQU5CQ0dvaUNpQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlpTWdDaUFMYWkwQUFDQURMUUFJYWlJa2FpSWxJQUFnREdvaUFDQUxhaTBBQUNBQUxRQUFhaUlLYXlBQUlBeHFJZ0FnQzJvdEFBQWdBQzBBQUdvaUZHdHFJZ0EyQWlBZ0JpQUtJQ1ZxSUFScUlCUnFJZ1EyQWhBZ0FrRUJhaUVDSUFkQkFXb2hCeUFSUVFGeklBbEJBRWR5UlFSQUlBWWdHeUFjYWlBVmFpQVBhaUFrYXlBamF5QUtheUFVYTBFRWRTSUlOZ0lVREFNTElBbEZEUUlMSUFZZ0NDQUpRUUpxZFNJSU5nSVVDeUFXSUJkcUlCSnFJQk5xSUJscklCaHJJQjVySUI5clFRUjFJQkFnRFNBQ1JYRnhRUUZHRFFFYUlBSkZEUUlMSUFBZ0FrRUNhblVMSWdBMkFpQUxJQVlDZnlBSFFYOXFJZ0pCQWswRVFBSkFBa0FDUUNBQ1FRRnJEZ0lCQWdBTElBUkJBM1lNQXdzZ0JFRUVkZ3dDQ3lBRVFSVnNRUWwyREFFTElBUkJCWFlMSWdRMkFoQUNRQ0FBSUFoeVJRUkFJQVlnQkRZQ1NDQUdJQVEyQWt3Z0JpQUVOZ0pFSUFZZ0JEWUNRQ0FHSUFRMkFqd2dCaUFFTmdJNElBWWdCRFlDTkNBR0lBUTJBakFnQmlBRU5nSXNJQVlnQkRZQ0tDQUdJQVEyQWlRZ0JpQUVOZ0lnSUFZZ0JEWUNIQ0FHSUFRMkFoZ2dCaUFFTmdJVURBRUxJQVlnQkNBSWFpSUhJQUJyTmdKQUlBWWdCeUFBUVFGMUlnSnJOZ0l3SUFZZ0FpQUhhallDSUNBR0lBQWdCMm8yQWhBZ0JpQUVJQWhySWdjZ0FHczJBa3dnQmlBSElBSnJOZ0k4SUFZZ0FpQUhhallDTENBR0lBQWdCMm8yQWh3Z0JpQUVJQWhCQVhVaUNXb2lCeUFBYXpZQ1JDQUdJQWNnQW1zMkFqUWdCaUFDSUFkcU5nSWtJQVlnQUNBSGFqWUNGQ0FHSUFRZ0NXc2lCQ0FBYXpZQ1NDQUdJQVFnQW1zMkFqZ2dCaUFDSUFScU5nSW9JQVlnQUNBRWFqWUNHQXNnSVNBRlFRWjBhaUVJUVFBaEFDQUdRUkJxSVFRRFFDQUlJQVFnQUVFQmRFRU1jV29vQWdBaUFrSC9BU0FDUWY4QlNCc2lBa0VBSUFKQkFFb2JPZ0FBSUFRZ0JFRVFhaUFBUVFGcUlnQkJEM0ViSVFRZ0NFRUJhaUVJSUFCQndBQkhEUUFMSUFNZ0hXb2hBeUFGUVFGcUlnVkJBa2NOQUFzTElBRWdCa0hRQUdvUUd5QUdRZEFEYWlRQUN6WUFJQUlFUUNBQUlBRVFBZzhMUVFFaEFpQUJJQUJCQVJBRElnQTJBZ0FnQUVGL1J3Ui9JQUVnQUVFQmN6WUNBRUVBQlVFQkN3dk1Bd0VTZnlBRFFRRjBJUThnQTBGOWJDRVFRUUFnQTJzaUVVRUJkQ0VTSUFFZ0FpZ0NBR3BCZjJvdEFBQWlCMEVCYWlFVFFRQWdCMnNoQ2tFRUlRRURRQUpBSUFBZ0VXb2lGQzBBQUNJRklBQXRBQUFpQ0dzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdSUERRQWdBQ0FTYWlJTExRQUFJZ3dnQldzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdnaUJrOE5BQ0FBSUFOcUloVXRBQUFpRFNBSWF5SUVJQVJCSDNVaUJHb2dCSE1nQms4TkFDQUhJUVFnQUNBUWFpMEFBQ0lKSUFWcklnNGdEa0VmZFNJT2FpQU9jeUFHU1FSQUlBc2dEQ0FLSUFjZ0JTQUlha0VCYWtFQmRpQU1RUUYwYXlBSmFrRUJkU0lFSUFRZ0Iwb2JJQVFnQ2tnYmFqb0FBQ0FDS0FJSUlRWWdFeUVFQ3lBVUlBVUNmeUFBSUE5cUxRQUFJZ3NnQ0dzaUNTQUpRUjkxSWdscUlBbHpJQVpKQkVBZ0ZTQU5JQW9nQnlBRklBaHFRUUZxUVFGMklBMUJBWFJySUF0cVFRRjFJZ1lnQmlBSFNoc2dCaUFLU0J0cU9nQUFJQVJCQVdvaEJBdEJBQ0FFYXlJR0N5QUVJQWdnQld0QkFuUWdEV3NnREdwQkJHcEJBM1VpQlNBRklBUktHeUFGSUFaSUd5SUVha0d3TG1vdEFBQTZBQUFnQUNBSUlBUnJRYkF1YWkwQUFEb0FBQXNnQUVFQmFpRUFJQUZCZjJvaUFRMEFDd3Y3QmdFT2Z5QUNLQUlJSVFvZ0FpZ0NCQ0VQQWtBZ0FVRUVUd1JBSUE5QkFuWkJBbW9oRUVFRUlRSURRQUpBSUFCQmYyb2lCUzBBQUNJSElBQXRBQUFpQ0dzaUFTQUJRUjkxSWdGcUlBRnpJZzBnRDA4TkFDQUFRWDVxSWc0dEFBQWlBU0FIYXlJRUlBUkJIM1VpQkdvZ0JITWdDazhOQUNBQUxRQUJJZ2tnQ0dzaUJDQUVRUjkxSWdScUlBUnpJQXBQRFFBQ1FDQU5JQkJKQkVBZ0FDMEFBaUVMQW44Z0FFRjlhaUlOTFFBQUlnUWdCMnNpQmlBR1FSOTFJZ1pxSUFaeklBcEpCRUJCQXlFR0lBVWdDU0FISUFocUlBRnFJZ1ZCQVhScUlBUnFRUVJxUVFOMk9nQUFJQTRnQkNBRmFrRUNha0VDZGpvQUFDQUVRUU5zSVE0Z0JVRUVhaUVNSUFCQmZHb3RBQUFNQVFzZ0J5QUphaUVNUVFJaERrRUNJUVlnQlNFTklBRUxJUVFnRFNBTUlBNXFJQVJCQVhScUlBWjJPZ0FBSUFzZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFwUERRRWdBQ0FISUFscUlBaHFJZ1VnQzJwQkFtcEJBblk2QUFFZ0FDQUZJQXRCQTJ4cUlBQXRBQU5CQVhScVFRUnFRUU4yT2dBQ0lBQWdBU0FGUVFGMGFpQUxha0VFYWtFRGRqb0FBQXdDQ3lBRklBY2dDV29nQVVFQmRHcEJBbXBCQW5ZNkFBQUxJQUFnQVNBSWFpQUpRUUYwYWtFQ2FrRUNkam9BQUFzZ0FDQURhaUVBSUFKQmYyb2lBZzBBQ3d3QkN5QUJJQUlvQWdCcVFYOXFMUUFBSWdWQkFXb2hEVUVBSUFWcklRaEJCQ0VDQTBBQ1FDQUFRWDlxSWc0dEFBQWlCQ0FBTFFBQUlnZHJJZ0VnQVVFZmRTSUJhaUFCY3lBUFR3MEFJQUJCZm1vaURDMEFBQ0lKSUFScklnRWdBVUVmZFNJQmFpQUJjeUFLVHcwQUlBQXRBQUVpQ3lBSGF5SUJJQUZCSDNVaUFXb2dBWE1nQ2s4TkFDQUFMUUFDSVFZZ0JTRUJJQUJCZldvdEFBQWlFQ0FFYXlJUklCRkJIM1VpRVdvZ0VYTWdDa2tFUUNBTUlBa2dDQ0FGSUFRZ0IycEJBV3BCQVhZZ0NVRUJkR3NnRUdwQkFYVWlBU0FCSUFWS0d5QUJJQWhJRzJvNkFBQWdEU0VCQ3lBT0lBUUNmeUFHSUFkcklnd2dERUVmZFNJTWFpQU1jeUFLU1FSQUlBQWdDeUFJSUFVZ0JDQUhha0VCYWtFQmRpQUxRUUYwYXlBR2FrRUJkU0lHSUFZZ0JVb2JJQVlnQ0VnYmFqb0FBU0FCUVFGcUlRRUxRUUFnQVdzaUJnc2dBU0FKSUF0cklBY2dCR3RCQW5ScVFRUnFRUU4xSWdRZ0JDQUJTaHNnQkNBR1NCc2lBV3BCc0M1cUxRQUFPZ0FBSUFBZ0J5QUJhMEd3TG1vdEFBQTZBQUFMSUFBZ0Eyb2hBQ0FDUVg5cUlnSU5BQXNMQzlvSEFRMS9Jd0JCd0FOckloRWtBQ0FHUVFWcUlRa0NRQUpBSUFKQkFFZ05BQ0FEUVFCSURRQWdBaUFKYWlBRVN3MEFJQU1nQjJwQkJXb2dCVXNOQUNBRUlRa2dBeUVLREFFTElBQWdFU0FDSUFNZ0JDQUZJQWtnQjBFRmFpQUpFQXdnRVNFQVFRQWhBZ3NDUUNBSFJRMEFJQUFnQ1NBS2JDQUNhbW9oRTBFUUlBWnJJUlFDUUNBR1FRSjJJaElFUUNBSklBWnJJUlVnRXlBSklBaEJBWFpCQVhGQkFuSnNha0VGYWlFQ0lBY2hCQU5BSUFKQmYyb3RBQUFoQUNBQ1FYNXFMUUFBSVFNZ0FrRjlhaTBBQUNFRklBSkJmR290QUFBaEN5QUNRWHRxTFFBQUlRMGdFaUVQQTBBZ0FTQUNMUUFBSWdvZ0RTQUFJQXRxSWd4cklBTWdCV3BCRkd4cUlBeEJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQUFnQVNBQ0xRQUJJZ3dnQ3lBQUlBTnFRUlJzYWlBRklBcHFJZ3RySUF0QkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBRWdBU0FDTFFBQ0loQWdCU0FBSUFwcVFSUnNhaUFESUF4cUlnVnJJQVZCQW5ScmFrRVFha0VGZFVHd0xtb3RBQUE2QUFJZ0FTQUNMUUFESWc0Z0F5QUtJQXhxUVJSc2FpQUFJQkJxSWdOcklBTkJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQU1nQVVFRWFpRUJJQUpCQkdvaEFpQUFJUTBnQ2lFTElBd2hCU0FRSVFNZ0RpRUFJQTlCZjJvaUR3MEFDeUFCSUJScUlRRWdBaUFWYWlFQ0lBUkJmMm9pQkEwQUN3d0JDeUFIUVg5cUlCUnNJQVpySUFGcVFSQnFJUUVMSUFkQkFuWWlCRVVOQUVIQUFDQUdheUVRSUFsQkFYUWhDaUFKUVFKMElBWnJJUXRCQUNBSmF5SU1RUUYwSVJJZ0FTQUhRUVIwYXlFQ0lBa2dFMm9nQ0VFQmNXcEJBbW9pQUNBSlFRVnNhaUVCQTBBZ0JpSURCRUFEUUNBQ0lBQWdDbW90QUFBaUJTQUJJQXBxTFFBQUlBRWdDV290QUFBaURpQUJJQkpxTFFBQUlnZHFJZ2hySUFoQkFuUnJhaUFCTFFBQUlnMGdBU0FNYWkwQUFDSUlha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQUl0QURCcVFRRnFRUUYyT2dBd0lBSWdBQ0FKYWkwQUFDSVBJQTRnQnlBSWFrRVViR29nQlNBTmFpSU9heUFPUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFDQnFRUUZxUVFGMk9nQWdJQUlnQUMwQUFDSU9JQTBnQlNBSGFrRVViR29nQ0NBUGFpSU5heUFOUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFCQnFRUUZxUVFGMk9nQVFJQUlnQUNBTWFpMEFBQ0FJSUFVZ0QycEJGR3hxSUFjZ0Rtb2lCV3NnQlVFQ2RHdHFRUkJxUVFWMVFiQXVhaTBBQUNBQ0xRQUFha0VCYWtFQmRqb0FBQ0FBUVFGcUlRQWdBa0VCYWlFQ0lBRkJBV29oQVNBRFFYOXFJZ01OQUFzTElBSWdFR29oQWlBQklBdHFJUUVnQUNBTGFpRUFJQVJCZjJvaUJBMEFDd3NnRVVIQUEyb2tBQXUxQlFFRWZ5QUFLQUlVSVFNZ0FDZ0NFQ0VFSUFBb0FnUWhCU0FBS0FJTUlnSWdBU2tDQURjQ0FDQUNJQUVwQWdnM0FnZ2dBaUFGUVFSMElnQnFJZ0lnQVNrQ0VEY0NBQ0FDSUFFcEFoZzNBZ2dnQUNBQ2FpSUNJQUVwQWlBM0FnQWdBaUFCS1FJb053SUlJQUFnQW1vaUFpQUJLUUl3TndJQUlBSWdBU2tDT0RjQ0NDQUFJQUpxSWdJZ0FTa0NRRGNDQUNBQ0lBRXBBa2czQWdnZ0FDQUNhaUlDSUFFcEFsQTNBZ0FnQWlBQktRSllOd0lJSUFBZ0Ftb2lBaUFCS1FKZ053SUFJQUlnQVNrQ2FEY0NDQ0FBSUFKcUlnSWdBU2tDY0RjQ0FDQUNJQUVwQW5nM0FnZ2dBQ0FDYWlJQ0lBRXBBb0FCTndJQUlBSWdBU2tDaUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcEFCTndJQUlBSWdBU2tDbUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcUFCTndJQUlBSWdBU2tDcUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBckFCTndJQUlBSWdBU2tDdUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBc0FCTndJQUlBSWdBU2tDeUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdEFCTndJQUlBSWdBU2tDMkFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdUFCTndJQUlBSWdBU2tDNkFFM0FnZ2dBQ0FDYWlJQUlBRXBBdkFCTndJQUlBQWdBU2tDK0FFM0FnZ2dCQ0FCS1FLQUFqY0NBQ0FFSUFWQkEzUWlBR29pQkNBQktRS0lBamNDQUNBQUlBUnFJZ1FnQVNrQ2tBSTNBZ0FnQUNBRWFpSUVJQUVwQXBnQ053SUFJQUFnQkdvaUJDQUJLUUtnQWpjQ0FDQUFJQVJxSWdRZ0FTa0NxQUkzQWdBZ0FDQUVhaUlFSUFFcEFyQUNOd0lBSUFBZ0JHb2dBU2tDdUFJM0FnQWdBeUFCS1FMQUFqY0NBQ0FBSUFOcUlnTWdBU2tDeUFJM0FnQWdBQ0FEYWlJRElBRXBBdEFDTndJQUlBQWdBMm9pQXlBQktRTFlBamNDQUNBQUlBTnFJZ01nQVNrQzRBSTNBZ0FnQUNBRGFpSURJQUVwQXVnQ053SUFJQUFnQTJvaUF5QUJLUUx3QWpjQ0FDQUFJQU5xSUFFcEF2Z0NOd0lBQytnQ0FRVi9Ba0FnQUNBQkVBSWlBdzBBUVFFaEF5QUJJQUVvQWdCQkFXb2lBallDQUNBQ1FTQkxEUUFnQUVFRUVBTWlBa0YvUmcwQUlBRWdBallDQkNBQVFRUVFBeUlDUVg5R0RRQWdBU0FDTmdJSUlBRW9BZ0FFUUFOQUlBQWdBU0FGUVFKMGFpSUNJZ1JCREdvUUFpSUREUUpCQVNFRElBUW9BZ3dpQmtGL1JnMENJQVFnQmtFQmFpSUROZ0lNSUFRZ0F5QUJLQUlFUVFacWREWUNEQ0FBSUFKQmpBRnFFQUlpQXcwQ1FRRWhBeUFDS0FLTUFTSUVRWDlHRFFJZ0FpQUVRUUZxSWdRMkFvd0JJQUlnQkNBQktBSUlRUVJxZERZQ2pBRWdBRUVCRUFNaUJFRi9SZzBDSUFJZ0JFRUJSallDakFJZ0JVRUJhaUlGSUFFb0FnQkpEUUFMQ3lBQVFRVVFBeUlDUVg5R0RRQWdBU0FDUVFGcU5nS01BeUFBUVFVUUF5SUNRWDlHRFFBZ0FTQUNRUUZxTmdLUUF5QUFRUVVRQXlJQ1FYOUdEUUFnQVNBQ1FRRnFOZ0tVQXlBQVFRVVFBeUlBUVg5R0RRQWdBU0FBTmdLWUEwRUFJUU1MSUFNTFd3RURmeUFBSUFBb0FnQWlCQ0FCSUFBb0FnUWlBbkFpQTBFRWRHb2dBU0FEYXlJQlFRaDBhallDRENBQUlBUWdBaUFBS0FJSWJDSUNRUWgwYWlBQlFRWjBhaUFEUVFOMGFpSUJOZ0lRSUFBZ0FTQUNRUVowYWpZQ0ZBdFZBUUovSUFFZ0FrRUJhaUlESUFNZ0FVa2JJUU1nQUNBQ1FRSjBhaWdDQUNFRUEwQUNRQ0FDUVFGcUlnSWdBVThFUUNBRElRSU1BUXNnQUNBQ1FRSjBhaWdDQUNBRVJ3MEJDd3RCQUNBQ0lBRWdBa1liQ3ljQUlBQkJDQ0FBS0FJSUlnQnJFQU5CZjBZRVFBOExRUUFnQUd0QkFuUkJ6RDlxS0FJQUdndDZBUUovSXdCQklHc2lBaVFBSUFJZ0FDZ0NFRFlDRUNBQ0lBQXBBZ2czQXdnZ0FpQUFLUUlBTndNQUFrQWdBaUFDUVJ4cUVBSWlBQTBBSUFJZ0FrRWNhaEFDSWdBTkFDQUNJQUpCSEdvUUFpSUFEUUJCQVNFQUlBSW9BaHdpQTBIL0FVc05BQ0FCSUFNMkFnQkJBQ0VBQ3lBQ1FTQnFKQUFnQUF2bkJ3RVNmeU1BUVlBT2F5SU1KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQTBFQVNBMEFJQUlnQ1dvZ0JFc05BQ0FESUFkcVFRVnFJQVZMRFFBZ0F5RUtEQUVMSUFBZ0RFSEFDbW9nQWlBRElBUWdCU0FKSUFkQkJXb2dDUkFNSUF4QndBcHFJUUFnQ1NFRVFRQWhBZ3NDUUNBSFFRSjJJaFJGRFFBZ0NVVU5BQ0FFUVFGMElSVkJBQ0FFYXlJV1FRRjBJUm9nQkVFQ2RDQUdhMEY3YWlFWElBQWdCQ0FLYkNBQ2Ftb2dCR29pQUNBRVFRVnNhaUVDSUF3Z0NVRUNkQ0lRYWlFRElBbEJBM1FoRFVFQUlBbHJRUUowSVE0Z0NVRURiRUVDZENFUEEwQWdDU0VGQTBBZ0F5QU5haUFBSUJWcUxRQUFJaEVnQWlBVmFpMEFBQ0FDSUFScUxRQUFJZ3NnQWlBYWFpMEFBQ0lTYWlJS2F5QUtRUUowYTJvZ0FpMEFBQ0lZSUFJZ0Ztb3RBQUFpRTJwQkZHeHFOZ0lBSUFNZ0VHb2dBQ0FFYWkwQUFDSVpJQXNnRWlBVGFrRVViR29nRVNBWWFpSUtheUFLUVFKMGEybzJBZ0FnQXlBQUxRQUFJZ3NnR0NBUklCSnFRUlJzYWlBVElCbHFJZ3BySUFwQkFuUnJhallDQUNBRElBNXFJQUFnRm1vdEFBQWdFeUFSSUJscVFSUnNhaUFMSUJKcUlncHJJQXBCQW5ScmFqWUNBQ0FBUVFGcUlRQWdBMEVFYWlFRElBSkJBV29oQWlBRlFYOXFJZ1VOQUFzZ0FpQVhhaUVDSUFBZ0Yyb2hBQ0FESUE5cUlRTWdGRUYvYWlJVURRQUxDeUFIQkVCQkVDQUdheUVRSUFaQkFuWWhDaUFNSUFoQkFuUnFRUWhxSVFBZ0RFRVVhaUVDQTBBZ0NnUkFJQUpCYkdvb0FnQWhCQ0FDUVhCcUtBSUFJUThnQWtGMGFpZ0NBQ0VOSUFKQmVHb29BZ0FoQlNBQ1FYeHFLQUlBSVFNZ0NpRUpBMEFnQVNBQ0tBSUFJZzRnQkNBRElBOXFJZ1JySUFVZ0RXcEJGR3hxSUFSQkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQUlBQW9BZ0JCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlvQWdRaUN5QVBJQU1nQldwQkZHeHFJQTBnRG1vaUJHc2dCRUVDZEd0cVFZQUVha0VLZFVHd0xtb3RBQUFnQUNnQ0JFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FCSUFFZ0FpZ0NDQ0lJSUEwZ0F5QU9ha0VVYkdvZ0JTQUxhaUlFYXlBRVFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlJUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBSWdBU0FDS0FJTUlnWWdCU0FMSUE1cVFSUnNhaUFESUFocUlnUnJJQVJCQW5ScmFrR0FCR3BCQ25WQnNDNXFMUUFBSUFBb0FneEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQXlBQlFRUnFJUUVnQUVFUWFpRUFJQUpCRUdvaEFpQURJUVFnRGlFUElBc2hEU0FJSVFVZ0JpRURJQWxCZjJvaUNRMEFDd3NnQVNBUWFpRUJJQUJCRkdvaEFDQUNRUlJxSVFJZ0IwRi9haUlIRFFBTEN5QU1RWUFPYWlRQUM5RUhBUXgvSXdCQmdBNXJJZzhrQUNBR1FRVnFJUWtDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSmFpQUVTdzBBSUFkQkJXb2lEaUFEYWlBRlN3MEFJQVFoQ1NBRElRb01BUXNnQUNBUFFjQUthaUFDSUFNZ0JDQUZJQWtnQjBFRmFpSU9JQWtRRENBUFFjQUthaUVBUVFBaEFnc0NRQ0FPUlEwQUlBWkJBbllpRWtVTkFDQUpJQVpySVJNZ0FDQUpJQXBzSUFKcWFrRUZhaUVDSUE4aEFBTkFJQUpCZjJvdEFBQWhDU0FDUVg1cUxRQUFJUU1nQWtGOWFpMEFBQ0VGSUFKQmZHb3RBQUFoQ2lBQ1FYdHFMUUFBSVF3Z0VpRU5BMEFnQUNBQ0xRQUFJZ1FnRENBSklBcHFJZ3RySUFNZ0JXcEJGR3hxSUF0QkFuUnJhallDQUNBQUlBSXRBQUVpQ3lBRElBbHFRUlJzSUFwcUlBUWdCV29pQ21zZ0NrRUNkR3RxTmdJRUlBQWdBaTBBQWlJUUlBUWdDV3BCRkd3Z0JXb2dBeUFMYWlJRmF5QUZRUUowYTJvMkFnZ2dBQ0FDTFFBREloUWdCQ0FMYWtFVWJDQURhaUFKSUJCcUlnTnJJQU5CQW5ScmFqWUNEQ0FBUVJCcUlRQWdBa0VFYWlFQ0lBa2hEQ0FFSVFvZ0N5RUZJQkFoQXlBVUlRa2dEVUYvYWlJTkRRQUxJQUlnRTJvaEFpQU9RWDlxSWc0TkFBc0xJQWRCQW5ZaUJ3UkFRY0FBSUFacklSUWdEeUFHUVFKMElnUnFJZ2tnQmtFVWJHb2hBaUFKSUFoQkFtb2dCbXhCQW5ScUlRQWdCa0VEYkVFQ2RDRUZRUUFnQm1zaURrRURkQ0VUSUFaQkEzUWhDQU5BSUFZaEF5QUdCRUFEUUNBQklBZ2dDV29vQWdBaUNpQUNJQWhxS0FJQUlBSWdCR29vQWdBaUVTQUNJQk5xS0FJQUlndHFJZ3hySUF4QkFuUnJhaUFDS0FJQUlnMGdBaUFPUVFKMEloQnFLQUlBSWd4cVFSUnNha0dBQkdwQkNuVkJzQzVxTFFBQUlBQWdDR29vQWdCQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FNQ0FCSUFRZ0NXb29BZ0FpRWlBUklBc2dER3BCRkd4cUlBb2dEV29pRVdzZ0VVRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQWdBQ0FFYWlnQ0FFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FnSUFFZ0NTZ0NBQ0lSSUEwZ0NpQUxha0VVYkdvZ0RDQVNhaUlOYXlBTlFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFCQWdBU0FKSUJCcUtBSUFJQXdnQ2lBU2FrRVViR29nQ3lBUmFpSUtheUFLUVFKMGEycEJnQVJxUVFwMVFiQXVhaTBBQUNBQUlCQnFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBQWdBRUVFYWlFQUlBbEJCR29oQ1NBQlFRRnFJUUVnQWtFRWFpRUNJQU5CZjJvaUF3MEFDd3NnQVNBVWFpRUJJQUFnQldvaEFDQUNJQVZxSVFJZ0JTQUphaUVKSUFkQmYyb2lCdzBBQ3dzZ0QwR0FEbW9rQUF1MEJnRUpmeU1BUWNBRGF5SU5KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQXlBSGFpQUZTdzBBSUFOQkFFZ05BQ0FDSUFscUlBUkxEUUFnQkNFSklBTWhDZ3dCQ3lBQUlBMGdBaUFESUFRZ0JTQUpJQWNnQ1JBTUlBMGhBRUVBSVFJTElBY0VRRUVRSUFacklSQWdDU0FHYXlFUklBWkJBblloRHlBQUlBa2dDbXdnQW1wcVFRVnFJUWtEUUFKQUlBOUZEUUFnQ1VGL2FpMEFBQ0VDSUFsQmZtb3RBQUFoQmlBSlFYMXFMUUFBSVFNZ0NVRjhhaTBBQUNFRklBbEJlMm90QUFBaENpQVBJZ0FoQ3lBSUJFQURRQ0FCSUFZZ0NTMEFBQ0lFSUFvZ0FpQUZhaUlLYXlBRElBWnFRUlJzYWlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlnQ1MwQUFTSUxJQVVnQWlBR2FrRVViR29nQXlBRWFpSUZheUFGUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQVNBQklBUWdDUzBBQWlJTUlBTWdBaUFFYWtFVWJHb2dCaUFMYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBaUFCSUFzZ0NTMEFBeUlPSUFZZ0JDQUxha0VVYkdvZ0FpQU1haUlEYXlBRFFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUF5QUJRUVJxSVFFZ0NVRUVhaUVKSUFJaENpQUVJUVVnQ3lFRElBd2hCaUFPSVFJZ0FFRi9haUlBRFFBTUFnQUxBQXNEUUNBQklBTWdDUzBBQUNJQUlBb2dBaUFGYWlJRWF5QURJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBQ0FCSUFZZ0NTMEFBU0lFSUFVZ0FpQUdha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFTQUJJQUlnQ1MwQUFpSU1JQU1nQUNBQ2FrRVViR29nQkNBR2FpSURheUFEUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQWlBQklBQWdDUzBBQXlJT0lBWWdBQ0FFYWtFVWJHb2dBaUFNYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBeUFCUVFScUlRRWdDVUVFYWlFSklBSWhDaUFBSVFVZ0JDRURJQXdoQmlBT0lRSWdDMEYvYWlJTERRQUxDeUFCSUJCcUlRRWdDU0FSYWlFSklBZEJmMm9pQncwQUN3c2dEVUhBQTJva0FBdkdCQUVMZnlNQVFjQURheUlOSkFBQ1FBSkFJQUpCQUVnTkFDQURRUUJJRFFBZ0FpQUdhaUFFU3cwQUlBTWdCMnBCQldvZ0JVc05BQ0FESVFrTUFRc2dBQ0FOSUFJZ0F5QUVJQVVnQmlBSFFRVnFJQVlRRENBTklRQWdCaUVFUVFBaEFnc2dCMEVDZGlJUUJFQkJ3QUFnQm1zaEVpQUVRUUYwSVFVZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVRJQUFnQkNBSmJDQUNhbW9nQkdvaUFDQUVRUVZzYWlFQ0lBQWdCQ0FJUVFKcWJHb2hCd05BSUFZaEF5QUdCRUFEUUNBQklBQWdCV290QUFBaUNDQUNJQVZxTFFBQUlBSWdCR290QUFBaUNpQUNJQk5xTFFBQUlnbHFJZ3RySUF0QkFuUnJhaUFDTFFBQUlnd2dBaUFQYWkwQUFDSUxha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQVVnQjJvdEFBQnFRUUZxUVFGMk9nQXdJQUVnQUNBRWFpMEFBQ0lSSUFvZ0NTQUxha0VVYkdvZ0NDQU1haUlLYXlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQUlBUWdCMm90QUFCcVFRRnFRUUYyT2dBZ0lBRWdBQzBBQUNJS0lBd2dDQ0FKYWtFVWJHb2dDeUFSYWlJTWF5QU1RUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFJQWN0QUFCcVFRRnFRUUYyT2dBUUlBRWdBQ0FQYWkwQUFDQUxJQWdnRVdwQkZHeHFJQWtnQ21vaUNHc2dDRUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBQ0FISUE5cUxRQUFha0VCYWtFQmRqb0FBQ0FIUVFGcUlRY2dBRUVCYWlFQUlBRkJBV29oQVNBQ1FRRnFJUUlnQTBGL2FpSUREUUFMQ3lBQklCSnFJUUVnQnlBT2FpRUhJQUlnRG1vaEFpQUFJQTVxSVFBZ0VFRi9haUlRRFFBTEN5QU5RY0FEYWlRQUM0OEhBUXgvSUFFb0FnZ2hDeUFCS0FJRUlRWUNRQUpBQWtBZ0FrRUZTdzBBSUFKQkFXc09CQUFBQUFBQkN5QUFLQUs0R2cwQURBRUxJQUJCeEFscUlRUURRQ0FFSUFNUUZDRUhJQU5CRGtzTkFTQURRUUZxSVFNZ0IwVU5BQXNMQWtBQ1FBSkFBa0FnQUNnQ21Ba2lDQVJBSUFBb0Fyd0pJUXBCQUNFRFFRQWhCQU5BSUFvZ0EwSFlBV3hxS0FMRUFVVUVRRUVBSUFSQkFXb2lCQ0FFSUFaR0lnVWJJUVFnQlNBSmFpRUpJQU5CQVdvaUF5QUlTUTBCQ3dzZ0F5QUlSdzBCQ3dKQUFrQWdBa0YrYWlJQ1FRVkxEUUFDUUNBQ1FRRnJEZ1FCQVFFQkFBc2dCMFVOQVNBQUtBSzRHa1VOQVF3REN5QUhEUUlMSUFFb0FnQkJnQUVnQmlBTGJFR0FBMndRQnhvTUFnc2dBQ2dDdkFrZ0JpQUpiRUhZQVd4cUlRZ2dCQVJBSUFRaEF3TkFJQWdnQTBGL2FpSURRZGdCYkdvaUNpQUJJQWtnQXlBQ0lBY1FGaUFLUVFFMkFzUUJJQUFnQUNnQ3RBbEJBV28yQXJRSklBTU5BQXNMSUFSQkFXb2lBeUFHU1FSQUEwQWdDQ0FEUWRnQmJHb2lCQ2dDeEFGRkJFQWdCQ0FCSUFrZ0F5QUNJQWNRRmlBRVFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpDeUFEUVFGcUlnTWdCa2NOQUFzTEFrQWdDVVVOQUNBR1JRMEFRUUFoQlNBSlFYOXFJZ3dnQm13aERTQU1SUVJBQTBBZ0FDZ0N2QWtnRFVIWUFXeHFJQVZCMkFGc2FpSUVJQUZCQUNBRklBSWdCeEFXSUFSQkFUWUN4QUVnQUNBQUtBSzBDVUVCYWpZQ3RBa2dCVUVCYWlJRklBWkhEUUFNQWdBTEFBc2dDVUYrYWlFSVFRQWdCbXRCMkFGc0lRNERRQ0FBS0FLOENTQU5RZGdCYkdvZ0JVSFlBV3hxSWdNZ0FTQU1JQVVnQWlBSEVCWWdBMEVCTmdMRUFTQUFJQUFvQXJRSlFRRnFOZ0swQ1NBSUlRUURRQ0FESUE1cUlnTWdBU0FFSWdvZ0JTQUNJQWNRRmlBRFFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpJQVJCZjJvaEJDQUtEUUFMSUFWQkFXb2lCU0FHUncwQUN3c2dDVUVCYWlJRklBdFBEUUlnQmtVTkFnTkFJQUFvQXJ3SklBVWdCbXhCMkFGc2FpRUlRUUFoQXdOQUlBZ2dBMEhZQVd4cUlnUW9Bc1FCUlFSQUlBUWdBU0FGSUFNZ0FpQUhFQllnQkVFQk5nTEVBU0FBSUFBb0FyUUpRUUZxTmdLMENRc2dBMEVCYWlJRElBWkhEUUFMSUFWQkFXb2lCU0FMUncwQUN3d0NDeUFCS0FJQUlBY2dCaUFMYkVHQUEyd1FGUm9MSUFBZ0FDZ0NtQWtpQVRZQ3RBa2dBVVVOQUNBQUtBSzhDU0VBUVFBaEF3TkFJQUFnQTBIWUFXeHFRUUUyQWdnZ0EwRUJhaUlESUFGSERRQUxDd3MyQVFKL0lBQW9BaWdpQWdSQUEwQWdBQ2dDQkNBQlFRSjBhaUFBS0FJQUlBRkJLR3hxTmdJQUlBRkJBV29pQVNBQ1J3MEFDd3NMOXdRQ0RIOEJma0VISVFVakFFRWdheUlJSVF3RFFDQUZJQUZKQkVBZ0FFRUFJQVZyUVNoc2FpRUtJQVVoQmdOQUlBQWdCa0VvYkdvaUFpZ0NDQ0VKSUFJcEFnQWhEaUFJSUFJcEFndzNBeGdnQWlnQ0dDRU5JQUlvQWhRaEN5QU1JQUlvQWlRMkFoQWdDQ0FDS1FJY053TUlBa0FnQmlJRElBVkpEUUFDUUNBTFJRUkFBMEFnQ2lBRFFTaHNJZ0pxSWdRb0FoUU5BaUFOUlEwQ0lBUW9BaGdOQWlBQUlBSnFJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3lBTFFYOXFRUUZOQkVBRFFBSi9Ba0FnQ2lBRFFTaHNJZ0pxSWdRb0FoUWlCMFVOQUNBSFFYOXFRUUZMRFFBZ0JDZ0NDQ0lISUFsS0RRUWdBQ0FDYWlJRUlBY2dDVWdOQVJvZ0JDRUNEQVVMSUFBZ0Ftb0xJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3dOQUlBb2dBMEVvYkNJQ2FpSUVLQUlVSWdjRVFDQUhRWDlxUVFKSkRRSWdCQ2dDQ0NBSlRBMENDeUFBSUFKcUlnUWdBQ0FESUFWcklnTkJLR3hxSWdJcEFnQTNBZ0FnQkNBQ0tRSWdOd0lnSUFRZ0Fpa0NHRGNDR0NBRUlBSXBBaEEzQWhBZ0JDQUNLUUlJTndJSUlBTWdCVThOQUFzTUFRc2dBQ0FEUVNoc2FpRUNDeUFDSUE0M0FnQWdBQ0FEUVNoc2FpSURJQWsyQWdnZ0NDa0RHQ0VPSUFNZ0RUWUNHQ0FESUFzMkFoUWdBeUFPTndJTUlBTWdDQ2tEQ0RjQ0hDQURJQXdvQWhBMkFpUWdCa0VCYWlJR0lBRkhEUUFMQ3lBRlFRRjJJZ1VOQUFzTHJRVUJBWDhDUUNBQUtBSUFJZ0VvQWhSRkRRQWdBVUVBTmdJVUlBRW9BaGdOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ1BFVU5BQ0FCUVFBMkFqd2dBVUZBYXlnQ0FBMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUprUlEwQUlBRkJBRFlDWkNBQktBSm9EUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQW93QlJRMEFJQUZCQURZQ2pBRWdBU2dDa0FFTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0N0QUZGRFFBZ0FVRUFOZ0swQVNBQktBSzRBUTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMY0FVVU5BQ0FCUVFBMkF0d0JJQUVvQXVBQkRRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9Bb1FDUlEwQUlBRkJBRFlDaEFJZ0FTZ0NpQUlOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ3JBSkZEUUFnQVVFQU5nS3NBaUFCS0FLd0FnMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUxVQWtVTkFDQUJRUUEyQXRRQ0lBRW9BdGdDRFFBZ0FDQUFLQUlzUVg5cU5nSXNDd0pBSUFFb0F2d0NSUTBBSUFGQkFEWUMvQUlnQVNnQ2dBTU5BQ0FBSUFBb0FpeEJmMm8yQWl3TEFrQWdBU2dDcEFORkRRQWdBVUVBTmdLa0F5QUJLQUtvQXcwQUlBQWdBQ2dDTEVGL2FqWUNMQXNDUUNBQktBTE1BMFVOQUNBQlFRQTJBc3dESUFFb0F0QUREUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQXZRRFJRMEFJQUZCQURZQzlBTWdBU2dDK0FNTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0NuQVJGRFFBZ0FVRUFOZ0tjQkNBQktBS2dCQTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMRUJFVU5BQ0FCUVFBMkFzUUVJQUVvQXNnRURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9BdXdFUlEwQUlBRkJBRFlDN0FRZ0FTZ0M4QVFOQUNBQUlBQW9BaXhCZjJvMkFpd0xBMEFnQUJCZVJRMEFDeUFBUVFBMkFqQWdBRUwvL3dNM0FpUUwzUTRCQ1g4Z0FpZ0NBQ0FBS0FJSUlnSW9BZ0JHQkVBZ0FFRUFOZ0kwSUFBb0FqZ2lDMFVoRFFKQUlBRkZCRUFnQWlBRE5nSU1JQUpCQURZQ0ZDQUNJQTAyQWhnZ0FpQUVOZ0lRSUFJZ0F6WUNDQ0FMRFFFZ0FDQUFLQUlzUVFGcU5nSXNEQUVMSUFVRVFDQUFRZ0EzQWhBZ0FCQW9Ba0FnQVNnQ0FFVUVRQ0FBS0FJNFJRMEJDeUFBUWdBM0FoQUxJQUFvQWdnaUFrRURRUUlnQVNnQ0JDSUJHellDRkNBQVFRQkIvLzhESUFFYk5nSWtJQUlnRFRZQ0dDQUNRUUEyQWhBZ0FrSUFOd0lJSUFCQ2dZQ0FnQkEzQWlnTUFRc0NRQUpBQWtBZ0FTZ0NDQVJBUVFBaEN3TkFJQUVnQzBFVWJHb2lDQ2dDRENJQ1FRWkxEUUlDUUFKQUFrQUNRQUpBQWtBQ1FDQUNRUUZyRGdZQUFRSURCQVVKQ3lBQUtBSVlJZ2xGRFFnZ0F5QUlLQUlRYXlFTUlBQW9BZ0FoQ2tFQUlRZ0RRQUpBSUFvZ0NFRW9iR29pQWlnQ0ZFRi9ha0VCVFFSQUlBSW9BZ2dnREVZTkFRc2dDRUVCYWlJSUlBbEhEUUVNQ2dzTElBaEJBRWdOQ0NBQ1FRQTJBaFFnQUNBQUtBSW9RWDlxTmdJb0lBSW9BaGdOQlNBQUlBQW9BaXhCZjJvMkFpd2dDMEVCYWlFTERBWUxJQUFvQWhnaUNVVU5CeUFJS0FJVUlRd2dBQ2dDQUNFS1FRQWhDQU5BQWtBZ0NpQUlRU2hzYWlJQ0tBSVVRUU5HQkVBZ0FpZ0NDQ0FNUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdKQ3dzZ0NFRUFTQTBISUFKQkFEWUNGQ0FBSUFBb0FpaEJmMm8yQWlnZ0FpZ0NHQTBFSUFBZ0FDZ0NMRUYvYWpZQ0xDQUxRUUZxSVFzTUJRc2dBQ2dDSkNJQ1FmLy9BMFlOQmlBQ0lBZ29BaGdpREVrTkJpQUFLQUlZSWdsRkRRWWdDQ2dDRUNFT0lBQW9BZ0FoQ2tFQUlRSURRQUpBQWtBZ0NpQUNRU2hzYWlJSUtBSVVRUU5IRFFBZ0NDZ0NDQ0FNUncwQUlBaEJBRFlDRkNBQUlBQW9BaWhCZjJvMkFpZ2dDQ2dDR0EwQklBQWdBQ2dDTEVGL2FqWUNMQXdCQ3lBQ1FRRnFJZ0lnQ1VjTkFRc0xJQWxCQVNBSlFRRkxHeUVKSUFNZ0Rtc2hEa0VBSVFnRFFBSkFJQW9nQ0VFb2JHb2lBaWdDRkNJUFFYOXFRUUZOQkVBZ0FpZ0NDQ0FPUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdJQ3dzZ0NFRUFTQTBHSUE5QkFra05CaUFDUVFNMkFoUWdBaUFNTmdJSUlBdEJBV29oQ3d3RUN5QUFJQWdvQWh3aUNUWUNKQ0FBS0FJWUlneEZEUUlnQUNnQ0FDRUtRUUFoQWlBSlFmLy9BMFlFUUFOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDRUVBTmdJVUlBQWdBQ2dDS0VGL2FqWUNLQ0FJS0FJWURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQ1FRRnFJZ0lnREVjTkFBd0VBQXNBQ3dOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDQ2dDQ0NBSlRRMEFJQWhCQURZQ0ZDQUFJQUFvQWloQmYybzJBaWdnQ0NnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FrRUJhaUlDSUF4SERRQUxEQUlMSUFBUUtDQUFRUUUyQWpSQkFDRURJQXRCQVdvaEN3d0NDeUFBS0FJa0lnSkIvLzhEUmcwRElBSWdDQ2dDR0NJTVNRMERJQUFvQWhnaUNrVU5BeUFBS0FJQUlRaEJBQ0VDQWtBRFFBSkFJQWdnQWtFb2JHb2lDU2dDRkVFRFJ3MEFJQWtvQWdnZ0RFY05BQ0FKUVFBMkFoUWdBQ0FBS0FJb1FYOXFJZ2cyQWlnZ0NTZ0NHQTBDSUFBZ0FDZ0NMRUYvYWpZQ0xBd0NDeUFDUVFGcUlnSWdDa2NOQUFzZ0FDZ0NLQ0VJQ3lBSUlBcFBEUU1nQUNnQ0NDSUNRUU0yQWhRZ0FpQUVOZ0lRSUFJZ0REWUNDQ0FDSUFNMkFnd2dBaUFBS0FJNFJUWUNHRUVCSVJBZ0FDQUlRUUZxTmdJb0lBQWdBQ2dDTEVFQmFqWUNMQXNnQzBFQmFpRUxEQUFBQ3dBTFFRQWhBaUFBS0FJb0lna2dBQ2dDR0NJTFNRMEJJQWxGQkVCQkFDRUpEQUlMSUFBb0FnQWhERUYvSVFFRFFDQU1JQUpCS0d4cUlnb29BaFJCZjJwQkFVMEVRQ0FLS0FJSUlnb2dDQ0FCUVg5R0lBb2dDRWh5SWdvYklRZ2dBaUFCSUFvYklRRUxJQUpCQVdvaUFpQUpSdzBBQ3lBQlFRQklEUUVnRENBQlFTaHNhaUlCUVFBMkFoUWdBQ0FKUVg5cUlnazJBaWdnQVNnQ0dBMEJJQUFnQUNnQ0xFRi9hallDTEF3QkN5QVFEUUVnQUNnQ0dDRUxJQUFvQWlnaENRc2dDU0FMVHcwQklBQW9BZ2dpQVNBTk5nSVlJQUZCQWpZQ0ZDQUJJQVEyQWhBZ0FTQUROZ0lJSUFFZ0F6WUNEQ0FBSUFsQkFXbzJBaWdnQUNBQUtBSXNRUUZxTmdJc0N3c2dBQ2dDQ0NJQklBYzJBaUFnQVNBR05nSWNJQUVnQlRZQ0pBSkFJQUFvQWpoRkJFQWdBQ2dDTENJSklBQW9BaHdpQTAwTkFTQUFLQUlBSVFRRFFFSC8vLy8vQnlFRlFRQWhCa0VBSVFJRFFDQUVJQUpCS0d4cUlnRW9BaGdFUUNBQklBWWdBU2dDRUNJQklBVklJZ2NiSVFZZ0FTQUZJQWNiSVFVTElBSkJBV29pQWlBRFRRMEFDd0pBSUFaRkRRQWdBQ2dDRENBQUtBSVFJZ0pCQkhScUlnRWdCaWdDQURZQ0FDQUJJQVlvQWlRMkFnd2dBU0FHS0FJY05nSUVJQUVnQmlnQ0lEWUNDQ0FBSUFKQkFXbzJBaEFnQmtFQU5nSVlJQVlvQWhRTkFDQUFJQWxCZjJvaUNUWUNMQXNnQ1NBRFN3MEFDd3dCQ3lBQktBSUFJUUlnQUNnQ0RDQUFLQUlRSWdOQkJIUnFJZ0VnQlRZQ0RDQUJJQUkyQWdBZ0FTQUhOZ0lJSUFFZ0JqWUNCQ0FBSUFOQkFXbzJBaEFnQUNnQ0hDRURDeUFBS0FJQUlBTkJBV29RSndzTDFBc0NBbjhCZmlNQVFaQUJheUlFSkFBZ0JFRUFOZ0lNQWtBQ1FBSkFJQUFvQXBBYVJRMEFJQUFvQXBRYUlBRkhEUUFnQkNBQVFhUWFhaWtDQURjREdDQUFLUUtjR2lFR0lBUkJBRFlDR0NBRUlBWTNBeEFnQkVFQU5nSWdJQVFnQmo0Q0ZDQURJQUFvQXBnYU5nSUFEQUVMUVFNaEJTQUJJQUlnQkVFUWFpQURFR01OQVNBQUlBUXBBeEEzQXB3YUlBQkJyQnBxSUFRb0FpQTJBZ0FnQUVHa0dtb2dCQ2tER0RjQ0FDQURLQUlBSVFJZ0FDQUJOZ0tVR2lBQUlBSTJBcGdhQzBFQUlRVWdBRUVBTmdLUUdpQUVRUkJxSUFSQmlBRnFFRThFUUVFRElRVU1BUXNnQkNnQ2lBRkJmMnBCQzBzTkFDQUVRUkJxSUFSQmlBRnFJQUFnQkVFTWFoQXlJZ0VFUUVFRUlRVWdBVUh3L3dOR0RRRkJBeUVGREFFTEFrQWdCQ2dDREFSQUFrQWdBQ2dDb0FsRkRRQWdBQ2dDRUVVTkFFRURJUVVnQUNnQ3RCb05Bd0pBSUFBb0FxUUpSUVJBSUFCQnhBbHFJZ0lpQVNBQktBSUFJQUVvQWh4QktHeHFJZ0UyQWdnZ0FDQUJLQUlBTmdLNENpQUNFQ1lnQUNBQVFiZ0tha0VBRUNVTUFRc2dBQ0FBUWJnS2FpQUFRZHdLYWlnQ0FCQWxDeUFEUVFBMkFnQWdBRUVBTmdLY0NTQUFRUUUyQXBBYURBSUxJQUJCQURZQ25Ba2dBRUVBTmdLa0NRc2dCQ2dDaUFGQmYyb2lBVUVIU3cwQkFrQUNRQUpBSUFGQkFXc09Cd1FFQkFJRUFBRUNDeUFFUVJCcUlBUkJLR29RUXdSQUlBUW9BbEFRQkNBRVFRQTJBbEFnQkNnQ2ZCQUVJQVJCQURZQ2ZFRURJUVVNQkFzZ0FDQUVRU2hxRURjTUF3c2dCRUVRYWlBRVFTaHFFRXdFUUNBRUtBSThFQVFnQkVFQU5nSThJQVFvQWtBUUJDQUVRUUEyQWtBZ0JDZ0NSQkFFSUFSQkFEWUNSQ0FFS0FKVUVBUWdCRUVBTmdKVVFRTWhCUXdEQ3lBQUlBUkJLR29RTmd3Q0N5QUFLQUtjQ1EwQklBQkJBVFlDb0FrQ1FDQUFLQUtrQ1EwQUlBQkNBRGNDdEFrZ0JFRVFhaUFFUVNocUVDQWFJQUFvQWdnaEFTQUFJQVFvQWlnZ0JDZ0NpQUZCQlVZUU5TSUNCRUFnQUVLQWdvQ0FnQVEzQWdRZ0FFRUFOZ0swR2lBQVFnQTNBZ3hCQlVFRUlBSkIvLzhEUmhzaEJRd0RDeUFCSUFBb0FnaEdEUUFnQUNnQ0VDRUJJQVJCQVRZQ0NDQUFLQUlBSWdKQkgwMEVRQ0FBSUFKQkFuUnFLQUlVSVFVTElBTkJBRFlDQUNBQVFRRTJBcEFhQWtBQ1FBSkFJQVFvQW9nQlFRVkhEUUFnQkVFSWFpQUVRUkJxSUFFZ0FDZ0NEQkE0SUFRb0FnaHlEUUFnQlVVTkFDQUFRZndKYWlnQ0FBMEFJQVVvQWpRZ0FTZ0NORWNOQUNBRktBSTRJQUVvQWpoSERRQWdCU2dDV0NBQktBSllSZzBCQ3lBQVFZQUtha0VBTmdJQURBRUxJQUJCeEFscUVGa0xJQUFnQUNnQ0NEWUNBRUVDSVFVTUFnc2dBQ2dDdEJvRVFFRURJUVVNQWdzZ0JFRVFhaUFBUWJRU2FpSUNJQUFvQWhBZ0FDZ0NEQ0FFUVlnQmFoQStCRUJCQXlFRkRBSUxJQUFvQXFRSlJRUkFBa0FnQkNnQ2lBRkJCVVlOQUNBQVFjUUphaUFBUWNBU2FpZ0NBQ0FFS0FLTUFVRUFSeUFBS0FJUUtBSXdFRnBGRFFCQkF5RUZEQU1MSUFCQnhBbHFJZ0VnQVNnQ0FDQUJLQUljUVNoc2FpSUJOZ0lJSUFBZ0FTZ0NBRFlDdUFvTElBQkIyQXBxSUFKQjNBY1FGU0VCSUFCQkFUWUNwQWtnQUNBRUtRT0lBVGNDMEFvZ0FDZ0NsQWtnQUNnQ0RDQUFRWmdMYWlnQ0FDQUFLQUlRSWdJb0FqUWdBaWdDT0JBL0lBQkJ4QWxxSWdJUUppQUNJQUJCbkF0cUlBQkI1QXBxS0FJQUlBQkJoQXRxS0FJQUVGOEVRRUVESVFVTUFnc2dCRUVRYWlBQUlBQkJ1QXBxSUFFUVFRUkFJQUFnQUNnQzJBb1FRRUVESVFVTUFnc2dBQkF6UlEwQklBQkJBVFlDbkFrTElBQkJ1QXBxSWdFZ0FDZ0N2QWtRU1NBQUVEUWdBRUdFQ21vZ0FDZ0NFQ0FBUWRnS2FpQUFRZEFLYWhCTklRSUNRQ0FBS0FLa0NVVU5BQ0FBUWNRSmFpRURJQUJCMUFwcUtBSUFCRUFnQXlBQVFld01haUFCSUFCQjVBcHFLQUlBSUFJZ0FDZ0MwQXBCQlVZZ0FDZ0N1QWtnQUNnQ3RBa1FLUXdCQ3lBRFFRQWdBU0FBUWVRS2FpZ0NBQ0FDSUFBb0F0QUtRUVZHSUFBb0FyZ0pJQUFvQXJRSkVDa0xJQUJDQURjQ29BbEJBU0VGQ3lBRVFaQUJhaVFBSUFVTHFBd0JDMzhDUUNBQlFRUlBCRUJCQUNBRGF5SU5RUUYwSVFvQ1FDQUFJQU5ySWdVdEFBQWlCaUFBTFFBQUlnaHJJZ0VnQVVFZmRTSUJhaUFCY3lBQ0tBSUVJZ0ZQRFFBZ0FDQUthaTBBQUNJSElBWnJJZ1FnQkVFZmRTSUVhaUFFY3lBQ0tBSUlJZ3hQRFFBZ0FDQURhaTBBQUNJRUlBaHJJZ3NnQzBFZmRTSUxhaUFMY3lBTVR3MEFJQVVnQkNBR2FpQUhRUUYwYWtFQ2FrRUNkam9BQUNBQUlBZ2dCRUVCZEdvZ0IycEJBbXBCQW5ZNkFBQWdBaWdDQkNFQkN3SkFJQUJCQVdvaUJpQU5haUlNTFFBQUlnZ2dBQzBBQVNJSGF5SUVJQVJCSDNVaUJHb2dCSE1nQVU4TkFDQUdJQXBxTFFBQUlnUWdDR3NpQlNBRlFSOTFJZ1ZxSUFWeklBSW9BZ2dpQzA4TkFDQURJQVpxTFFBQUlnVWdCMnNpQ1NBSlFSOTFJZ2xxSUFseklBdFBEUUFnRENBRklBaHFJQVJCQVhScVFRSnFRUUoyT2dBQUlBWWdCeUFGUVFGMGFpQUVha0VDYWtFQ2Rqb0FBQ0FDS0FJRUlRRUxBa0FnQUVFQ2FpSUdJQTFxSWd3dEFBQWlDQ0FBTFFBQ0lnZHJJZ1FnQkVFZmRTSUVhaUFFY3lBQlR3MEFJQVlnQ21vdEFBQWlCQ0FJYXlJRklBVkJIM1VpQldvZ0JYTWdBaWdDQ0NJTFR3MEFJQU1nQm1vdEFBQWlCU0FIYXlJSklBbEJIM1VpQ1dvZ0NYTWdDMDhOQUNBTUlBVWdDR29nQkVFQmRHcEJBbXBCQW5ZNkFBQWdCaUFISUFWQkFYUnFJQVJxUVFKcVFRSjJPZ0FBSUFJb0FnUWhBUXNDUUNBQVFRTnFJZ1lnRFdvaURDMEFBQ0lJSUFBdEFBTWlCMnNpQkNBRVFSOTFJZ1JxSUFSeklBRlBEUUFnQmlBS2FpMEFBQ0lFSUFocklnVWdCVUVmZFNJRmFpQUZjeUFDS0FJSUlndFBEUUFnQXlBR2FpMEFBQ0lGSUFkcklna2dDVUVmZFNJSmFpQUpjeUFMVHcwQUlBd2dCU0FJYWlBRVFRRjBha0VDYWtFQ2Rqb0FBQ0FHSUFjZ0JVRUJkR29nQkdwQkFtcEJBblk2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJCR29pQmlBTmFpSU1MUUFBSWdnZ0FDMEFCQ0lIYXlJRUlBUkJIM1VpQkdvZ0JITWdBVThOQUNBR0lBcHFMUUFBSWdRZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFJb0FnZ2lDMDhOQUNBRElBWnFMUUFBSWdVZ0Iyc2lDU0FKUVI5MUlnbHFJQWx6SUF0UERRQWdEQ0FGSUFocUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFZZ0J5QUZRUUYwYWlBRWFrRUNha0VDZGpvQUFDQUNLQUlFSVFFTEFrQWdBRUVGYWlJR0lBMXFJZ3d0QUFBaUNDQUFMUUFGSWdkcklnUWdCRUVmZFNJRWFpQUVjeUFCVHcwQUlBWWdDbW90QUFBaUJDQUlheUlGSUFWQkgzVWlCV29nQlhNZ0FpZ0NDQ0lMVHcwQUlBTWdCbW90QUFBaUJTQUhheUlKSUFsQkgzVWlDV29nQ1hNZ0MwOE5BQ0FNSUFVZ0NHb2dCRUVCZEdwQkFtcEJBblk2QUFBZ0JpQUhJQVZCQVhScUlBUnFRUUpxUVFKMk9nQUFJQUlvQWdRaEFRc0NRQ0FBUVFacUlnWWdEV29pREMwQUFDSUlJQUF0QUFZaUIyc2lCQ0FFUVI5MUlnUnFJQVJ6SUFGUERRQWdCaUFLYWkwQUFDSUVJQWhySWdVZ0JVRWZkU0lGYWlBRmN5QUNLQUlJSWd0UERRQWdBeUFHYWkwQUFDSUZJQWRySWdrZ0NVRWZkU0lKYWlBSmN5QUxUdzBBSUF3Z0JTQUlhaUFFUVFGMGFrRUNha0VDZGpvQUFDQUdJQWNnQlVFQmRHb2dCR3BCQW1wQkFuWTZBQUFnQWlnQ0JDRUJDeUFOSUFCQkIyb2lEV29pQ0MwQUFDSUdJQUF0QUFjaUFHc2lCeUFIUVI5MUlnZHFJQWR6SUFGUERRRWdDaUFOYWkwQUFDSUJJQVpySWdvZ0NrRWZkU0lLYWlBS2N5QUNLQUlJSWdwUERRRWdBeUFOYWkwQUFDSUNJQUJySWdNZ0EwRWZkU0lEYWlBRGN5QUtUdzBCSUFnZ0FpQUdhaUFCUVFGMGFrRUNha0VDZGpvQUFDQU5JQUFnQWtFQmRHb2dBV3BCQW1wQkFuWTZBQUFQQzBFQUlBTnJJZ2RCQVhRaEJDQUJJQUlvQWdCcVFYOXFMUUFBSWdGQkFXb2hCaUFCUVg5eklRaEJDQ0VCQTBBQ1FDQUFJQWRxSWdVdEFBQWlDaUFBTFFBQUlnMXJJZ3dnREVFZmRTSU1haUFNY3lBQ0tBSUVUdzBBSUFBZ0JHb3RBQUFpRENBS2F5SUxJQXRCSDNVaUMyb2dDM01nQWlnQ0NDSUxUdzBBSUFBZ0Eyb3RBQUFpQ1NBTmF5SU9JQTVCSDNVaURtb2dEbk1nQzA4TkFDQUZJQW9nQ0NBR0lBMGdDbXRCQW5RZ0NXc2dER3BCQkdwQkEzVWlDaUFLSUFaS0d5QUtJQWhJR3lJS2FrR3dMbW90QUFBNkFBQWdBQ0FOSUFwclFiQXVhaTBBQURvQUFBc2dBRUVCYWlFQUlBRkJmMm9pQVEwQUN3c0w2Z2dCQW44Z0FVRUFRYmdIRUFjaEFrRUJJUUVDUUFKQUlBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBZ0FDUUNBRFFRRkhEUUFnQUVFSUVBTWlBMEYvUmcwQklBSWdBellDQkNBRFFmOEJSdzBBSUFCQkVCQURJZ05CZjBZTkFTQUNJQU0yQWdnZ0FFRVFFQU1pQTBGL1JnMEJJQUlnQXpZQ0RBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDRUNBRFFRRkdCRUFnQUVFQkVBTWlBMEYvUmcwQklBSWdBMEVCUmpZQ0ZBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDR0FKQUFrQWdBMEVCUmdSQUlBQkJBeEFESWdOQmYwWU5BeUFDSUFNMkFod2dBRUVCRUFNaUEwRi9SZzBESUFJZ0EwRUJSallDSUNBQVFRRVFBeUlEUVg5R0RRTWdBaUFEUVFGR05nSWtJQU5CQVVjTkFTQUFRUWdRQXlJRFFYOUdEUU1nQWlBRE5nSW9JQUJCQ0JBRElnTkJmMFlOQXlBQ0lBTTJBaXdnQUVFSUVBTWlBMEYvUncwQ0RBTUxJQUpCQlRZQ0hBc2dBa0tDZ0lDQUlEY0NLRUVDSVFNTElBSWdBellDTUNBQVFRRVFBeUlEUVg5R0RRQWdBaUFEUVFGR05nSTBBa0FnQTBFQlJ3MEFJQUFnQWtFNGFoQUNJZ0VOQVNBQ0tBSTRRUVZMRFFJZ0FDQUNRVHhxRUFJaUFRMEJJQUlvQWp4QkJVME5BQXdDQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDUUNBRFFRRkdCRUFnQUJBUElRRWdBRUVnRUFzaEF5QUJSUTBDSUFOQmYwWU5BaUFDSUFFMkFrUWdBQkFQSVFFZ0FFRWdFQXNoQXlBQlJRMENJQU5CZjBZTkFpQUNJQUUyQWtoQkFTRUJJQUJCQVJBRElnTkJmMFlOQVNBQ0lBTkJBVVkyQWt3TElBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBbEFDUUNBRFFRRkdCRUFnQUNBQ1FkUUFhaEFjSWdGRkRRRU1BZ3NnQWtFQk5nSlVJQUpDbUlDQWdJQUROd0xvQXlBQ1FwaUFnSUNBQXpjQzRBTWdBa0dCa0txSkFUWUM0QUVnQWtHQmtLcUpBVFlDWUF0QkFTRUJJQUJCQVJBRElnTkJmMFlOQUNBQ0lBTkJBVVkyQXZBREFrQWdBMEVCUmdSQUlBQWdBa0gwQTJvUUhDSUJSUTBCREFJTElBSkJBVFlDOUFNZ0FrS1lnSUNBZ0FNM0FvZ0hJQUpDbUlDQWdJQUROd0tBQnlBQ1FZRzR1UElBTmdLQUJTQUNRWUc0dVBJQU5nS0FCQXNDUUNBQ0tBSlFSUVJBSUFJb0F2QURSUTBCQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBCSUFJZ0EwRUJSallDa0FjTFFRRWhBU0FBUVFFUUF5SURRWDlHRFFBZ0FpQURRUUZHTmdLVUJ5QUFRUUVRQXlJRFFYOUdEUUFnQWlBRFFRRkdOZ0tZQndKQUlBTkJBVVlFUUNBQVFRRVFBeUlEUVg5R0RRSWdBaUFEUVFGR05nS2NCeUFBSUFKQm9BZHFFQUlpQVEwQ0lBSW9BcUFIUVJCTERRTWdBQ0FDUWFRSGFoQUNJZ0VOQWlBQ0tBS2tCMEVRU3cwRElBQWdBa0dvQjJvUUFpSUJEUUlnQWlnQ3FBZEJFRXNOQXlBQUlBSkJyQWRxRUFJaUFRMENRUUVoQVNBQ0tBS3NCMEVRU3cwQ0lBQWdBa0d3QjJvUUFpSUJEUUlnQUNBQ1FiUUhhaEFDSWdGRkRRRU1BZ3NnQWtFUU5nSzBCeUFDUXBDQWdJQ0FBamNDckFjZ0FrS0JnSUNBZ0FJM0FxUUhJQUpDZ1lDQWdDQTNBcHdIQzBFQUlRRUxJQUVQQzBFQkMwMEJBbjhqQUVFUWF5SURKQUJCQVNFRUFrQWdBQ0FEUVF4cUVBSU5BQ0FES0FJTUlnQkJMMHNOQUNBQlFkQS9RWURBQUNBQ0d5QUFhaTBBQURZQ0FFRUFJUVFMSUFOQkVHb2tBQ0FFQ3o0QkFuOENRQ0FBS0FJTVFRTjBJQUFvQWhCcklnRkZCRUFNQVF0QkFTRUNJQUZCQ0VzTkFFRUJJQUZCZjJwMElBQVFEMEVnSUFGcmRrY1BDeUFDQ3pJQkFuOENRRUdBZ0lEQUFDSUJJQUJ4RFFBRFFDQUNRUUZxSVFJZ0FVRUJkaUlCUlEwQklBQWdBWEZGRFFBTEN5QUNDNG9DQVFkL0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRUNRUUVoQXlBQlFRWlBCRUJCQUNFRElBSWdBVUdRUEdvdEFBQkJmMnAwSVFJTElBQWdBQ2dDQUNJQklBQW9BZ2dpQkdzaUJTQUFLQUlFSWdZZ0FDZ0NEQ0lIYXlJSWF5QUNiQ0FEZFRZQ0RDQUFJQVVnQ0dvZ0Ftd2dBM1UyQWdnZ0FDQUJJQVJxSWdFZ0JpQUhhaUlFYXlBQ2JDQURkVFlDQkNBQUlBRWdCR29nQW13Z0EzVTJBZ0FnQUNBQUtBSWNJZ0VnQUNnQ0ZDSUVhaUlGSUFBb0FoZ2lCaUFBS0FJUUlnZHFJZ2hxSUFKc0lBTjFOZ0lRSUFBZ0JDQUJheUlCSUFjZ0Jtc2lCR29nQW13Z0EzVTJBaGdnQUNBSUlBVnJJQUpzSUFOMU5nSVVJQUFnQkNBQmF5QUNiQ0FEZFRZQ0hBdlBDQUVVZnlBQUlBQW9BaXdpQWlBQUtBSU1JZ1pxSWdVZ0FDZ0NOQ0lFSUFBb0FpQWlFR29pQ21zaUVUWUNMQ0FBS0FJb0lRTWdBQ0FHSUFKcklnY2dFQ0FFYXlJRWF5SUdOZ0lvSUFBb0FpUWhBaUFBSUFRZ0Iyb2lCRFlDSkNBQUlBVWdDbW9pQlRZQ0lDQUFJQUFvQWh3aUNpQUFLQUlJSWdkcUlnZ2dBQ2dDTUNJTUlBQW9BaEFpQ1dvaUMyc2lFRFlDSENBQUtBSVlJUThnQUNBSElBcHJJZ2NnQ1NBTWF5SU1heUlLTmdJWUlBQW9BaFFoQ1NBQUlBY2dER29pQnpZQ0ZDQUFJQWdnQzJvaUNEWUNFQ0FBSUFrZ0FDZ0NBQ0lMYWlJU0lBOGdBQ2dDQkNJTmFpSU9heUlNTmdJTUlBQWdDeUFKYXlJSklBMGdEMnNpQzJzaUR6WUNDQ0FBSUFrZ0Myb2lDVFlDQkNBQUlBNGdFbW9pQ3pZQ0FDQUFJQUlnQUNnQ09DSU5haUlUSUFNZ0FDZ0NQQ0lPYWlJVWF5SVNOZ0k4SUFBZ0FpQU5heUlDSUFNZ0Rtc2lBMnNpRFRZQ09DQUFJQUlnQTJvaURqWUNOQ0FBSUJNZ0ZHb2lFellDTUNBQlFaQThhaTBBQUNFQ0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRURJQUZCREU4RVFDQUFJQU1nQWtGK2FuUWlBU0FGSUF0cUlnTWdDQ0FUYWlJQ2EydzJBakFnQUNBTElBVnJJZ1VnQ0NBVGF5SUlheUFCYkRZQ0lDQUFJQVVnQ0dvZ0FXdzJBaEFnQUNBQ0lBTnFJQUZzTmdJQUlBQWdCQ0FKYWlJRElBY2dEbW9pQW1zZ0FXdzJBalFnQUNBSklBUnJJZ1FnQnlBT2F5SUZheUFCYkRZQ0pDQUFJQVFnQldvZ0FXdzJBaFFnQUNBQ0lBTnFJQUZzTmdJRUlBQWdCaUFQYWlJRElBb2dEV29pQW1zZ0FXdzJBamdnQUNBUElBWnJJZ1lnQ2lBTmF5SUVheUFCYkRZQ0tDQUFJQVFnQm1vZ0FXdzJBaGdnQUNBQ0lBTnFJQUZzTmdJSUlBQWdEQ0FSYXlJRElCQWdFbXNpQW1zZ0FXdzJBaXdnQUNBQ0lBTnFJQUZzTmdJY0lBQWdFQ0FTYWlJRElBd2dFV29pQW1vZ0FXdzJBZ3dnQUNBQ0lBTnJJQUZzTmdJOER3c2dBRUVCUVFJZ0FVRjZha0VHU1JzaUFTQUZJQXRxSWhRZ0NDQVRhaUlWYXlBRGJHcEJBaUFDYXlJQ2RUWUNNQ0FBSUFzZ0JXc2lCU0FJSUJOcklnaHJJQU5zSUFGcUlBSjFOZ0lnSUFBZ0JTQUlhaUFEYkNBQmFpQUNkVFlDRUNBQUlCUWdGV29nQTJ3Z0FXb2dBblUyQWdBZ0FDQUVJQWxxSWdVZ0J5QU9haUlJYXlBRGJDQUJhaUFDZFRZQ05DQUFJQWtnQkdzaUJDQUhJQTVySWdkcklBTnNJQUZxSUFKMU5nSWtJQUFnQkNBSGFpQURiQ0FCYWlBQ2RUWUNGQ0FBSUFVZ0NHb2dBMndnQVdvZ0FuVTJBZ1FnQUNBR0lBOXFJZ1FnQ2lBTmFpSUZheUFEYkNBQmFpQUNkVFlDT0NBQUlBOGdCbXNpQmlBS0lBMXJJZ3BySUFOc0lBRnFJQUoxTmdJb0lBQWdCaUFLYWlBRGJDQUJhaUFDZFRZQ0dDQUFJQVFnQldvZ0Eyd2dBV29nQW5VMkFnZ2dBQ0FNSUJGcklnWWdFQ0FTYXlJRWF5QURiQ0FCYWlBQ2RUWUNMQ0FBSUFRZ0Jtb2dBMndnQVdvZ0FuVTJBaHdnQUNBUUlCSnFJZ1lnRENBUmFpSVJhaUFEYkNBQmFpQUNkVFlDRENBQUlCRWdCbXNnQTJ3Z0FXb2dBblUyQWp3THZRVUJCbjhqQUVFZ2F5SUZKQUFnQTBFQU5nSUFBa0FnQVNnQ0FDSUdRUkpMRFFCQkFTQUdkQ0lHUWNEZkgzRkZCRUFnQmtFaWNVVU5BU0FDUWJRS2FpZ0NBQVJBSUFOQkFUWUNBQ0FDUVFBMkFyUUtDeUFBSUFWQkhHb1FJQ0lFRFFGQjhQOERJUVFnQWlBRktBSWNRUUowYWlnQ2xBRWlDRVVOQVNBQ0lBZ29BZ1FpQmtFQ2RHb29BaFFpQjBVTkFRSkFJQUlvQWdnaUNVRWdSZzBBSUFZZ0NVWU5BQ0FCS0FJQVFRVkhEUUlMQWtBZ0FrR1lDbW9vQWdBaUJDQUJLQUlFSWdaR0RRQWdCRUVBSUFZYkRRQWdBMEVCTmdJQUN5QUJLQUlBSVFRQ1FBSkFJQUlvQXBRS1FRVkdCRUFnQkVFRlJ3MEJEQUlMSUFSQkJVY05BUXNnQTBFQk5nSUFDMEVCSVFRZ0FDQUhLQUlNSUFWQkdHb1FQUTBCSUFVb0FoZ2lCaUFDUVp3S2FpZ0NBRWNFUUNBQ0lBWTJBcHdLSUFOQkFUWUNBQXNnQVNnQ0FFRUZSZ1JBSUFBZ0J5Z0NEQ0FGUVJScUVEd05BZ0pBSUFJb0FwUUtRUVZIQkVBZ0JTZ0NGQ0VFREFFTElBSkJvQXBxS0FJQUlnUWdCU2dDRkNJR1JnMEFJQU5CQVRZQ0FDQUdJUVFMSUFKQm9BcHFJQVEyQWdBTEFrQWdCeWdDRUNJRVFRRkxEUUFnQkVFQmF3UkFRUUVoQkNBQUlBY2dBU2dDQUNBRlFRaHFFRHNOQXlBRktBSUlJZ1FnQWtHa0Ntb29BZ0JIQkVBZ0FpQUVOZ0trQ2lBRFFRRTJBZ0FMSUFnb0FnaEZEUUVnQUNBSElBRW9BZ0FnQlVFUWFoQTZJZ1FOQXlBRktBSVFJZ0FnQWtHb0Ntb29BZ0JHRFFFZ0FpQUFOZ0tvQ2lBRFFRRTJBZ0FNQVFzZ0J5Z0NHQTBBSUFBZ0J5QUJLQUlBSUFnb0FnZ2dCVUVJYWhBNUlnUU5BaUFGS0FJSUlnQWdBa0dzQ21vb0FnQkhCRUFnQWlBQU5nS3NDaUFEUVFFMkFnQUxJQWdvQWdoRkRRQWdCU2dDRENJQUlBSkJzQXBxS0FJQVJnMEFJQUlnQURZQ3NBb2dBMEVCTmdJQUN5QUNJQUVwQWdBM0FwUUtRUUFoQkF3QkN5QURRUUUyQWdBTElBVkJJR29rQUNBRUMzOEJBMzhDUUFKQUFrQWdBRUg4Q21vb0FnQUVRQ0FBS0FLWUNTSUREUUZCQVE4TFFRRWhBU0FBUWF3SmFpZ0NBQ0FBS0FLWUNVY05BUXdDQ3lBQUtBSzhDU0VCUVFBaEFBTkFJQUlnQVNBQVFkZ0JiR29vQXNRQlFRQkhhaUVDSUFCQkFXb2lBQ0FEUncwQUMwRUJJUUVnQWlBRFJnMEJDMEVBSVFFTElBRUxTZ0VEZnlBQVFnQTNBcWdKSUFBb0FwZ0pJZ0VFUUNBQUtBSzhDU0VDUVFBaEFBTkFJQUlnQUVIWUFXeHFJZ05CQURZQ3hBRWdBMEVBTmdJRUlBQkJBV29pQUNBQlJ3MEFDd3NMZ3dZQkRIOUJBU0VHQWtBZ0FDQUJRUUowYWlnQ2xBRWlCRVVOQUNBQUlBUW9BZ1FpQ1VFQ2RHb2lDa0VVYWlnQ0FDSURSUTBBQWtBZ0JDZ0NEQ0lGUVFKSkRRQWdBeWdDTkNJSElBTW9BamhzSVFnQ1FDQUVLQUlRSWdOQkFrc05BQUpBQWtBQ1FDQURRUUZyRGdJREFBRUxJQVZCZjJvaEN5QUVLQUljSVF3Z0JDZ0NHQ0VOUVFBaEF3d0JDeUFFS0FJVUlRZEJBQ0VEQTBBZ0J5QURRUUowYWlnQ0FDQUlUUVJBSUFVZ0EwRUJhaUlEUncwQkRBUUxDMEVCRHdzRFFDQU5JQU5CQW5RaUJXb29BZ0FpRGlBRklBeHFLQUlBSWdWTERRTWdCU0FJVHcwRElBNGdCM0FnQlNBSGNFMEVRQ0FEUVFGcUlnTWdDMFlOQXd3QkN3dEJBUThMSUFOQmZXcEJBazBFUUNBRUtBSWtJQWhORFFFTUFnc2dBMEVHUncwQUlBUW9BaWdnQ0VrTkFRc0NRQ0FBS0FJRUlnTkJnQUpHQkVBZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQW9BclFhQkVBZ0FFRUFOZ0swR2lBQUtBSzhDUkFFSUFCQkFEWUN2QWtnQUNnQ2xBa1FCQ0FBSUFBb0FwZ0pJZ0ZCMkFGc0lnUVFDaUlDTmdLOENTQUFJQUZCQW5RUUNpSUROZ0tVQ1VILy93TWhCaUFDUlEwQ0lBTkZEUUlnQWtFQUlBUVFCeUFBS0FJUUtBSTBJQUVRVGlBQUtBSVFJUUZCQVNFQ0FrQWdBQ2dDd0FrTkFDQUJLQUlRUVFKR0RRQUNRQ0FCS0FKUVJRMEFJQUVvQWxRaUJDZ0NtQWRGRFFBZ0JDZ0NzQWRGRFFFTFFRQWhBZ3NnQUVIRUNXb2dBU2dDT0NBQktBSTBiQ0FCS0FKWUlBRW9BaXdnQVNnQ0RDQUNFRndpQmtVTkFRd0NDeUFCSUFOR0RRQWdBQ2dDQ0NBSlJ3UkFJQUpGRFFJZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQWdCRFlDRENBQUlBRTJBZ1FMUVFBaEJnc2dCZ3UyQVFFRGZ3SkFJQUFnQVNnQ0FDSURRUUowYWlJQ0tBS1VBU0lFUlFSQUlBSkJ5QUFRQ2lJQU5nS1VBU0FBRFFFUEN3SkFJQU1nQUNnQ0JFY05BQ0FCS0FJRUlBQW9BZ2hHRFFBZ0FFR0JBallDQkFzZ0JDZ0NGQkFFSUFJb0FwUUJRUUEyQWhRZ0FpZ0NsQUVvQWhnUUJDQUNLQUtVQVVFQU5nSVlJQUlvQXBRQktBSWNFQVFnQWlnQ2xBRkJBRFlDSENBQ0tBS1VBU2dDTEJBRUlBSW9BcFFCUVFBMkFpd0xJQUlvQXBRQklBRkJ5QUFRRlJvTDFnRUJBMzhDUUNBQUlBRW9BZ2dpQTBFQ2RHb2lBaWdDRkNJRVJRUkFJQUpCM0FBUUNpSUFOZ0lVSUFBTkFROExJQUFvQWdnZ0EwWUVRQ0FCSUFBb0FoQVFRZ1JBSUFJb0FoUW9BaWdRQkNBQ0tBSVVRUUEyQWlnZ0FpZ0NGQ2dDVkJBRUlBSW9BaFJCQURZQ1ZDQUFRUUEyQWhBZ0FFR0JBallDQkNBQVFpRTNBZ2dNQWdzZ0FTZ0NLQkFFSUFGQkFEWUNLQ0FCS0FKVUVBUWdBVUVBTmdKVUR3c2dCQ2dDS0JBRUlBSW9BaFJCQURZQ0tDQUNLQUlVS0FKVUVBUWdBaWdDRkVFQU5nSlVDeUFDS0FJVUlBRkIzQUFRRlJvTDBnSUJBMzhqQUVFZ2F5SUVKQUFnQkNBQktBSVFOZ0lRSUFRZ0FTa0NDRGNEQ0NBRUlBRXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUJEUUFnQkNBRVFSeHFFQUlpQVEwQUlBUWdCRUVjYWhBQ0lnRU5BQ0FDS0FJTUlRWkJBQ0VCQTBBZ0FTSUZRUUZxSVFFZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQVF3QkN5QUVJQVJCSEdvUUFpSUJEUUFDUUNBQ0tBSVFJZ0VFZnlBQkJTQUNLQUlVSVFaQkFDRUJBMEFnQVNJRlFRRnFJUUVnQmlBRmRnMEFDeUFFSUFWQmYyb1FBMEYvUmdSQVFRRWhBUXdEQ3lBREtBSUlCRUFnQkNBRVFSaHFFQVVpQVEwREN5QUNLQUlRQzBFQlJ3MEFJQUlvQWhnTkFDQUVJQVJCR0dvUUJTSUJEUUVnQXlnQ0NFVU5BQ0FFSUFSQkdHb1FCU0lCRFFFTElBTW9Ba1FFUUNBRUlBUkJIR29RQWlJQkRRRUxJQUFnQkVFQkVBTWlBRFlDQUNBQVFYOUdJUUVMSUFSQklHb2tBQ0FCQzhZQkFRSi9Jd0JCSUdzaUJTUUFJQVVnQUNnQ0VEWUNFQ0FGSUFBcEFnZzNBd2dnQlNBQUtRSUFOd01BQWtBZ0JTQUZRUnhxRUFJaUFBMEFJQVVnQlVFY2FoQUNJZ0FOQUNBRklBVkJIR29RQWlJQURRQWdBU2dDRENFR1FRQWhBQU5BSUFBaUFVRUJhaUVBSUFZZ0FYWU5BQXNnQlNBQlFYOXFFQU5CZjBZRVFFRUJJUUFNQVFzZ0FrRUZSZ1JBSUFVZ0JVRWNhaEFDSWdBTkFRc2dCU0FFRUFVaUFBMEFJQU1FUUNBRklBUkJCR29RQlNJQURRRUxRUUFoQUFzZ0JVRWdhaVFBSUFBTDRRRUJBMzhqQUVFZ2F5SUVKQUFnQkNBQUtBSVFOZ0lRSUFRZ0FDa0NDRGNEQ0NBRUlBQXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUFEUUFnQkNBRVFSeHFFQUlpQUEwQUlBUWdCRUVjYWhBQ0lnQU5BQ0FCS0FJTUlRWkJBQ0VBQTBBZ0FDSUZRUUZxSVFBZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUNRUVZHQkVBZ0JDQUVRUnhxRUFJaUFBMEJDeUFCS0FJVUlRSkJBQ0VBQTBBZ0FDSUJRUUZxSVFBZ0FpQUJkZzBBQ3lBRUlBRkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUVJQU1RQlNFQUN5QUVRU0JxSkFBZ0FBdm1BUUVEZnlNQVFTQnJJZ1FrQUNBRUlBQW9BaEEyQWhBZ0JDQUFLUUlJTndNSUlBUWdBQ2tDQURjREFBSkFJQVFnQkVFY2FoQUNJZ0FOQUNBRUlBUkJIR29RQWlJQURRQWdCQ0FFUVJ4cUVBSWlBQTBBSUFFb0Fnd2hCa0VBSVFBRFFDQUFJZ1ZCQVdvaEFDQUdJQVYyRFFBTElBUWdCVUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQUpCQlVZRVFDQUVJQVJCSEdvUUFpSUFEUUVMSUFFb0FoUWhBa0VBSVFBRFFDQUFJZ0ZCQVdvaEFDQUNJQUYyRFFBTElBUWdBVUYvYWhBRElnQkJmMFlFUUVFQklRQU1BUXNnQXlBQU5nSUFRUUFoQUFzZ0JFRWdhaVFBSUFBTGtnRUJBbjhqQUVFZ2F5SURKQUFnQXlBQUtBSVFOZ0lRSUFNZ0FDa0NBRGNEQUNBRElBQXBBZ2czQXdnQ1FDQURJQU5CSEdvUUFpSUFEUUFnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BRUVBSVFBRFFDQUFJZ1JCQVdvaEFDQUJJQVIyRFFBTElBTWdCRUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQU1nQWhBQ0lRQUxJQU5CSUdva0FDQUFDNWNCQVFKL0l3QkJJR3NpQXlRQUlBTWdBQ2dDRURZQ0VDQURJQUFwQWdnM0F3Z2dBeUFBS1FJQU53TUFBa0FnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BQ0FESUFOQkhHb1FBaUlBRFFCQkFDRUFBMEFnQUNJRVFRRnFJUUFnQVNBRWRnMEFDeUFESUFSQmYyb1FBeUlBUVg5R0JFQkJBU0VBREFFTElBSWdBRFlDQUVFQUlRQUxJQU5CSUdva0FDQUFDNjhPQVFwL0l3QkJFR3NpQlNRQUlBRkJBRUhjQnhBSElRY2dBaWdDTkNFR0lBSW9BamdoQ0FKQUlBQWdCVUVFYWhBQ0lnRU5BQ0FISUFVb0FnUWlBVFlDQUNBQklBWWdDR3dpQzA4RVFFRUJJUUVNQVFzZ0FDQUZRUVJxRUFJaUFRMEFJQWNnQlNnQ0JDSUdOZ0lFSUFaQkIwc0VRRUVCSVFFTUFRdEJBU0VCQWtBQ1FDQUdRUUZyRGdjQ0FRSUNBQUlCQUFzZ0JDZ0NBRUVGUmdSQURBSUxJQUlvQWl3TkFBd0JDeUFBSUFWQkJHb1FBaUlCRFFBZ0J5QUZLQUlFSWdZMkFnaEJBU0VCSUFZZ0F5Z0NBRWNOQUNBQ0tBSU1JUWhCQUNFQkEwQWdBU0lHUVFGcUlRRWdDQ0FHZGcwQUMwRUJJUUVnQUNBR1FYOXFFQU1pQmtGL1JnMEFJQVpCQUNBRUtBSUFJZ2hCQlVZYkRRQWdCeUFHTmdJTUlBaEJCVVlFUUNBQUlBVkJCR29RQWlJQkRRRWdCeUFGS0FJRUlnWTJBaEJCQVNFQklBWkIvLzhEU3cwQkN3SkFJQUlvQWhBaUFRUi9JQUVGSUFJb0FoUWhDRUVBSVFFRFFDQUJJZ1pCQVdvaEFTQUlJQVoyRFFBTElBQWdCa0YvYWhBRElnRkJmMFlFUUVFQklRRU1Bd3NnQnlBQk5nSVVJQU1vQWdnRVFDQUFJQVVRQlNJQkRRTWdCeUFGS0FJQU5nSVlDeUFFS0FJQVFRVkdCRUJCQVNFQklBY29BaFFpQmlBQ0tBSVVRUUYyU3cwRElBWkJBQ0FIS0FJWUlnaEJIM1VnQ0hGclJ3MERDeUFDS0FJUUMwRUJSdzBBSUFJb0FoZ05BQ0FBSUFVUUJTSUJEUUVnQnlBRktBSUFOZ0ljSUFNb0FnZ0VRQ0FBSUFVUUJTSUJEUUlnQnlBRktBSUFOZ0lnQ3lBRUtBSUFRUVZIRFFCQkFTRUJJQWNvQWh3aUJpQUhLQUlnSUFZZ0FpZ0NJR3BxSWdnZ0JpQUlTQnNOQVFzZ0F5Z0NSQVJBSUFBZ0JVRUVhaEFDSWdFTkFTQUhJQVVvQWdRaUJqWUNKRUVCSVFFZ0JrSC9BRXNOQVFzQ1FDQUhLQUlFSWdGQkJVc05BQUpBSUFGQkFXc09CQUVCQVFFQUMwRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDS0FKQUlBWUVRQ0FBSUFWQkJHb1FBaUlCRFFOQkFTRUJJQVVvQWdRaUJrRVBTdzBESUFaQkFXb2hCZ3dCQ3lBREtBSXdJZ1pCRUVzTkFnc2dCeUFHTmdJc0lBY29BZ1FoQVFzQ1FDQUJRUVZMRFFBQ1FDQUJRUUZyRGdRQkFRRUJBQXNnQWlnQ0RDRUpJQWNvQWl3aENrRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDUkNBR1JRMEFRUUFoQVFOQUlBRWlCaUFLU3dSQVFRRWhBUXdEQ3lBQUlBVkJDR29RQWlJQkRRSWdCU2dDQ0NJQlFRTkxCRUJCQVNFQkRBTUxJQWNnQmtFTWJHb2lDQ0FCTmdKSUFrQWdBVUVCVFFSQUlBQWdCVUVNYWhBQ0lnRU5CQ0FGS0FJTUlnRWdDVThFUUVFQklRRU1CUXNnQ0NBQlFRRnFOZ0pNREFFTElBRkJBa2NOQUNBQUlBVkJER29RQWlJQkRRTWdDQ0FGS0FJTU5nSlFDeUFHUVFGcUlRRWdCU2dDQ0VFRFJ3MEFDMEVCSVFFZ0JrVU5BUXNDUUNBRUtBSUVSUTBBSUFRb0FnQWhCQ0FDS0FJc0lRbEJBU0VCSUFCQkFSQURJUUlnQkVFRlJnUkFJQUpCZjBZTkFpQUhJQUkyQXBRQ0lBQkJBUkFESWdKQmYwWU5BaUFISUFJMkFwZ0NJQWtOQVNBQ1JRMEJEQUlMSUFKQmYwWU5BU0FISUFJMkFwd0NJQUpGRFFBZ0NVRUJkRUVEYWlFT1FRQWhCa0VBSVFwQkFDRUVBMEFnQmlBT1JnUkFRUUVoQVF3REN5QUFJQVZCQ0dvUUFpSUJEUUlnQlNnQ0NDSUNRUVpMQkVCQkFTRUJEQU1MSUFjZ0JrRVViR29pQ0NBQ05nS2dBZ0ovSUFKQkFuSkJBMFlFUUNBQUlBVkJER29RQWlJQkRRUWdDQ0FGS0FJTVFRRnFOZ0trQWlBRktBSUlJUUlMSUFKQkFrWUxCRUFnQUNBRlFReHFFQUlpQVEwRElBZ2dCU2dDRERZQ3FBSWdCU2dDQ0NFQ0N3SkFJQUpCZldvaUFVRURTdzBBQWtBZ0FVRUJhdzRDQVFFQUN5QUFJQVZCREdvUUFpSUJEUU1nQ0NBRktBSU1OZ0tzQWlBRktBSUlJUUlMSUFKQkJFWUVRQ0FBSUFWQkRHb1FBaUlCRFFNZ0JTZ0NEQ0lCSUFsTEJFQkJBU0VCREFRTElBZ2dBVUYvYWtILy93TWdBUnMyQXJBQ0lBcEJBV29oQ2lBRktBSUlJUUlMSUFaQkFXb2hCaUFNSUFKQkJrWnFJUXdnQkNBQ1FRVkdhaUVFSUEwZ0FrRi9ha0VEU1dvaERTQUNEUUFMUVFFaEFTQUVJQXB5SUF4eVFRRkxEUUVnQkVVTkFDQU5EUUVMSUFBZ0JSQUZJZ0VOQUNBSElBVW9BZ0FpQVRZQ01DQUZJQUVnQXlnQ05Hb2lBallDQUVFQklRRWdBa0V6U3cwQUFrQWdBeWdDUEVVTkFDQUFJQVZCQkdvUUFpSUJEUUVnQnlBRktBSUVJZ0kyQWpSQkFTRUJJQUpCQWtzTkFTQUNRUUZHRFFBZ0FDQUZFQVVpQVEwQlFRRWhBU0FGS0FJQUlnSkJCbXBCREVzTkFTQUhJQUpCQVhRMkFqZ2dBQ0FGRUFVaUFRMEJRUUVoQVNBRktBSUFJZ0pCQm1wQkRFc05BU0FISUFKQkFYUTJBandMQWtBZ0F5Z0NERUVDU1EwQUlBTW9BaEJCZldwQkFrc05BRUVDUVFFZ0N5QUxJQU1vQWlRaUFXNGlBaUFCYkdzYklBSnFJUVJCQUNFQ0EwQWdCQ0FDSWdGQkFXb2lBbllOQUFzZ0JTQUFJQUlnQVNBRVFYOGdBWFJCZjNOeEd4QURJZ0EyQWdSQkFTRUJJQUJCZjBZTkFTQUhJQUEyQWtBZ0FDQUxJQU1vQWlRaUFHcEJmMm9nQUc1TERRRUxRUUFoQVFzZ0JVRVFhaVFBSUFFTHdRa0JEWDhnQXlBRWJDRUZJQUVvQWd3aUNVRUJSZ1JBSUFCQkFDQUZRUUowRUFjYUR3c0NRQUpBQWtBQ1FDQUJLQUlRSWdaQmZXcEJBazBFUUNBQktBSWtJQUpzSWdJZ0JTQUNJQVZKR3lFTElBWkJmbkZCQkVjTkFTQUZJQXRySUFzZ0FTZ0NJQnNoQndzQ1FBSkFBa0FnQmtFRlRRUkFJQVpCQVdzT0JRWUZCQU1DQVFzZ0JVVU5CaUFCS0FJc0lRSkJBQ0VCQTBBZ0FDQUJRUUowSWdOcUlBSWdBMm9vQWdBMkFnQWdBVUVCYWlJQklBVkhEUUFMREFZTEFrQWdDUVJBSUFFb0FoUWhBa0VBSVFZTUFRc2dCVVVOQmdOQURBQUFDd0FMQTBCQkFDRUVJQVlnQlU4TkJnTkFRUUFoQndKQUlBSWdCRUVDZEdvaUF5Z0NBQ0lCUlEwQUlBRWhCeUFGSUFaTkRRQkJBQ0VCUVFBZ0JTQUdheUlISUFjZ0JVc2JJUWdEUUNBQUlBRWdCbXBCQW5ScUlBUTJBZ0FnQVVFQmFpSUJJQU1vQWdBaUIwOE5BU0FCSUFoSERRQUxDeUFFUVFGcUlnUWdDVWxCQUNBR0lBZHFJZ1lnQlVrYkRRQUxJQVlnQlVrTkFBc01CUXNnQTBVTkJDQUVSUTBFUVFFZ0FTZ0NJQ0lKYXlFSVFRQWhCVUVBSVFJRFFFRUFJUUVnQlNFR0EwQWdBQ0FCSUFOc0lBSnFRUUowYWlBSklBZ2dCaUFIU1JzMkFnQWdCa0VCYWlFR0lBRkJBV29pQVNBRVJ3MEFDeUFFSUFWcUlRVWdBa0VCYWlJQ0lBTkhEUUFMREFRTElBVkZEUU5CQVNBQktBSWdJZ0pySVFOQkFDRUJBMEFnQUNBQlFRSjBhaUFDSUFNZ0FTQUhTUnMyQWdBZ0FVRUJhaUlCSUFWSERRQUxEQU1MSUFFb0FpQWhBaUFGQkVCQkFDRUJBMEFnQUNBQlFRSjBha0VCTmdJQUlBRkJBV29pQVNBRlJ3MEFDd3NnQzBVTkFpQURRWDlxSVE4Z0JFRi9haUVRSUFKQmYyb2hCa0VCSUFKQkFYUWlBV3NoQlNBQlFYOXFJUWtnQkNBQ2EwRUJkaUlLSVF3Z0F5QUNhMEVCZGlJTklRUWdDaUVJSUEwaEFVRUFJUWNEUUNBQUlBTWdDR3dnQVdwQkFuUnFJZzRvQWdBaUVVRUJSZ1JBSUE1QkFEWUNBQXNnRVVFQlJpRU9Ba0FDUUNBR1FYOUhEUUFnQVNBRVJ3MEFRUUFoQmlBSklRSWdCRUVCSUFSQkFVb2JRWDlxSWdFaEJBd0JDd0pBSUFaQkFVY05BQ0FCSUExSERRQkJBQ0VHSUFVaEFpQU5RUUZxSWdFZ0R5QUJJQTlJR3lJQklRME1BUXNDUUNBQ1FYOUhEUUFnQ0NBTVJ3MEFRUUFoQWlBRklRWWdERUVCSUF4QkFVb2JRWDlxSWdnaERBd0JDd0pBSUFKQkFVY05BQ0FJSUFwSERRQkJBQ0VDSUFraEJpQUtRUUZxSWdnZ0VDQUlJQkJJR3lJSUlRb01BUXNnQWlBSWFpRUlJQUVnQm1vaEFRc2dCeUFPYWlJSElBdEpEUUFMREFJTElBRW9BaHdoQnlBQktBSVlJUWdnQlFSQUlBbEJmMm9oQWtFQUlRRURRQ0FBSUFGQkFuUnFJQUkyQWdBZ0FVRUJhaUlCSUFWSERRQUxJQUpGRFFJTElBbEJmbW9oQVFOQUFrQWdDQ0FCSWdSQkFuUWlBV29vQWdBaUJpQURiaUlDSUFFZ0Iyb29BZ0FpQVNBRGJpSUZTdzBBSUFZZ0FpQURiR3NpQmlBQklBTWdCV3hySWdsTEJFQURRQ0FDUVFGcUlnSWdCVTBOQUF3Q0FBc0FDd05BSUFJZ0Eyd2hDaUFHSVFFRFFDQUFJQUVnQ21wQkFuUnFJQVEyQWdBZ0FVRUJhaUlCSUFsTkRRQUxJQUpCQVdvaUFpQUZUUTBBQ3dzZ0JFRi9haUVCSUFRTkFBc01BUXNnQlVVTkFFRUFJUUVEUUNBQUlBRkJBblJxSUFFZ0EyNGlBaUFKYkVFQmRpQUJJQUlnQTJ4cmFpQUpjRFlDQUNBQlFRRnFJZ0VnQlVjTkFBc0xDOFFCQVFWL0lBQW9BcWdKSVFRQ1FDQUFRYkFKYWlnQ0FDSUNSUTBBSUFKQmYyb2lBaUFCVFFSQUlBSWhBUXdCQ3lBQUtBSzhDU0VGQTBBQ1FDQUZJQUpCMkFGc2FpZ0NCQ0FFUncwQUlBTkJBV29pQXlBQUtBSVFLQUkwSWdaQkNpQUdRUXBMRzBrTkFDQUNJUUVNQWdzZ0FrRi9haUlDSUFGTERRQUxDd05BQWtBZ0FDZ0N2QWtnQVVIWUFXeHFJZ0lvQWdRZ0JFY05BQ0FDS0FMRUFTSURSUTBBSUFJZ0EwRi9hallDeEFFZ0FDZ0NsQWtnQUNnQ21Ba2dBUkFlSWdFTkFRc0xDNzBFQWd0L0FYNGpBRUhBQTJzaUJTUUFJQU1vQWdBaEJ5QUJLQUt3R2lFSUlBVkJBRFlDRENBQlFiQUpha0VBTmdJQUlBRWdBU2dDcUFsQkFXbzJBcWdKSUFVZ0F5Z0NNQ0FCS0FJTUtBSTBhallDQ0NBQlFjUUphaUVOSUFoQkRHb2hEZ0pBQTBBZ0FTZ0N2QWtoQkFKQUlBTW9BaVFOQUNBRUlBZEIyQUZzYWlnQ3hBRkZEUUJCQVNFRURBSUxJQU1wQWpRaER5QURLQUk4SVFzZ0FTZ0NxQWtoRENBRUlBZEIyQUZzSWdacUlnUWdBU2dDRENnQ09EWUNHQ0FFSUFzMkFoQWdCQ0FQTndJSUlBUWdERFlDQkFKQUlBTW9BZ1FpQkVFQ1JnMEFJQWtOQUNBRVFRZEdEUUFnQUNBRlFReHFFQUlpQkEwQ0lBVW9BZ3dpQkNBQktBS1lDU0FIYTBzRVFFRUJJUVFNQXdzZ0JFVUVRRUVBSVFrTUFRc2dEa0VBUWFRQkVBY2FJQWhCQURZQ0FFRUJJUWtMQWtBZ0JTZ0NEQ0lFQkVBZ0JTQUVRWDlxTmdJTURBRUxRUUFoQ1NBQUlBZ2dBU2dDdkFrZ0Jtb2dBeWdDQkNBREtBSXNFRkVpQkEwQ0N5QUJLQUs4Q1NBR2FpQUlJQUlnRFNBRlFRaHFJQWNnQVNnQ0RDZ0NRQ0FGUVJCcUVGQWlCQTBCSUFFb0Fyd0pJQVpxS0FMRUFTRUxJQUFRTGlFRUlBVW9BZ3doQmdKQUlBTW9BZ1JCZm1vaURFRUZTdzBBQWtBZ0RFRUJhdzRFQVFFQkFRQUxJQUVnQnpZQ3NBa0xJQVFnQm5JaEJrRUJJUVFnQVNnQ2xBa2dBU2dDbUFrZ0J4QWVJZ2RGUVFBZ0Joc05BU0FLSUF0QkFVWnFJUW9nQmcwQUN5QUJRYXdKYWlnQ0FDQUthaUlBSUFFb0FwZ0pTdzBBSUFFZ0FEWUNyQWxCQUNFRUN5QUZRY0FEYWlRQUlBUUw1Z0lCQjM5QkFTRUNBa0FnQUNnQ0FDQUJLQUlBUncwQUlBQW9BZ1FnQVNnQ0JFY05BQ0FBS0FJTUlBRW9BZ3hIRFFBZ0FDZ0NFQ0lESUFFb0FoQkhEUUFnQUNnQ0xDQUJLQUlzUncwQUlBQW9BakFnQVNnQ01FY05BQ0FBS0FJMElBRW9BalJIRFFBZ0FDZ0NPQ0FCS0FJNFJ3MEFJQUFvQWp3aUJTQUJLQUk4UncwQUlBQW9BbEFnQVNnQ1VFY05BQUpBSUFOQkFVc05BQ0FEUVFGclJRUkFJQUFvQWhnZ0FTZ0NHRWNOQWlBQUtBSWNJQUVvQWh4SERRSWdBQ2dDSUNBQktBSWdSdzBDSUFBb0FpUWlCQ0FCS0FJa1J3MENJQVJGRFFFZ0FTZ0NLQ0VHSUFBb0FpZ2hCMEVBSVFNRFFDQUhJQU5CQW5RaUNHb29BZ0FnQmlBSWFpZ0NBRWNOQXlBRUlBTkJBV29pQTBjTkFBc01BUXNnQUNnQ0ZDQUJLQUlVUncwQkN5QUZCRUFnQUNnQ1FDQUJLQUpBUncwQklBQW9Ba1FnQVNnQ1JFY05BU0FBS0FKSUlBRW9Ba2hIRFFFZ0FDZ0NUQ0FCS0FKTVJ3MEJDMEVBSVFJTElBSUwvd2tCQm44akFFRVFheUlFSkFBZ0FVRUFRZHdBRUFjaEF3SkFJQUJCQ0JBRElnRkJmMFlFUUVFQklRRU1BUXNnQXlBQk5nSUFJQUJCQVJBREdpQUFRUUVRQXhvZ0FFRUJFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUZFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUlFQU1pQVVGL1JnUkFRUUVoQVF3QkN5QURJQUUyQWdRZ0FDQURRUWhxRUFJaUFRMEFJQU1vQWdoQkgwc0VRRUVCSVFFTUFRc2dBQ0FFUVF4cUVBSWlBUTBBUVFFaEFTQUVLQUlNSWdKQkRFc05BQ0FEUVFFZ0FrRUVhblEyQWd3Z0FDQUVRUXhxRUFJaUFRMEFRUUVoQVNBRUtBSU1JZ0pCQWtzTkFDQURJQUkyQWhBQ1FDQUNRUUZMRFFBZ0FrRUJhd1JBSUFBZ0JFRU1haEFDSWdFTkFrRUJJUUVnQkNnQ0RDSUNRUXhMRFFJZ0EwRUJJQUpCQkdwME5nSVVEQUVMSUFCQkFSQURJZ0pCZjBZTkFTQURJQUpCQVVZMkFoZ2dBQ0FEUVJ4cUVBVWlBUTBCSUFBZ0EwRWdhaEFGSWdFTkFTQUFJQU5CSkdvUUFpSUJEUUZCQVNFQklBTW9BaVFpQWtIL0FVc05BU0FDQkVBZ0F5QUNRUUowRUFvaUFUWUNLQ0FCUlFSQVFmLy9BeUVCREFNTElBQWdBUkFGSWdFTkFrRUJJUUlEUUNBQ0lBTW9BaVJQRFFJZ0FrRUNkQ0VCSUFKQkFXb2hBaUFBSUFFZ0F5Z0NLR29RQlNJQlJRMEFDd3dDQ3lBRFFRQTJBaWdMSUFBZ0EwRXNhaEFDSWdFTkFFRUJJUUVnQXlnQ0xFRVFTdzBBSUFCQkFSQURJZ0pCZjBZTkFDQURJQUpCQVVZMkFqQWdBQ0FFUVF4cUVBSWlBUTBBSUFNZ0JDZ0NERUVCYWpZQ05DQUFJQVJCREdvUUFpSUJEUUJCQVNFQklBTWdCQ2dDREVFQmFqWUNPQ0FBUVFFUUEwRUJha0VDU1EwQUlBQkJBUkFEUVg5R0RRQWdBRUVCRUFNaUFrRi9SZzBBSUFNZ0FrRUJSaUlCTmdJOEFrQWdBVVVFUUNBREtBSTRJUVVnQXlnQ05DRUdEQUVMSUFBZ0EwRkFheEFDSWdFTkFTQUFJQU5CeEFCcUVBSWlBUTBCSUFBZ0EwSElBR29RQWlJQkRRRWdBQ0FEUWN3QWFoQUNJZ0VOQVVFQklRRWdBeWdDUUNBREtBSkVRWDl6SUFNb0FqUWlCa0VEZEdwS0RRRWdBeWdDU0NBREtBSk1RWDl6SUFNb0FqZ2lCVUVEZEdwS0RRRUxBa0FDUUFKQUFrQWdBeWdDQkVGMmFpSUhRU2xMRFFCQjR3QWhBVUdBcEFraEFnSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQjBFQmF3NHBBQUVCQ3dzTEN3c0xBUUlEQ3dzTEN3c0xDd01FQlFzTEN3c0xDd3NHQmdjTEN3c0xDd3NMQ0FrS0MwR01BeUVCUVlDTUZTRUNEQWtMUVl3RElRRkJnTmczSVFJTUNBdEJtQVloQVVHQXNPOEFJUUlNQnd0QjFBd2hBVUdBN0wwQklRSU1CZ3RCa0J3aEFVR0E4S1VESVFJTUJRdEJnQ2doQVVHQWdPQURJUUlNQkF0QmdNQUFJUUZCZ0lDQUJpRUNEQU1MUVlERUFDRUJRWUNBc0FZaEFnd0NDMEhBckFFaEFVR0F3SnNVSVFJTUFRdEJnS0FDSVFGQmdJRGdJU0VDQ3lBQklBVWdCbXdpQVU4TkFRc2dCRUgvLy8vL0J6WUNEQ0FES0FJc0lRSU1BUXNnQkNBQ0lBRkJnQU5zYmlJQlFSQWdBVUVRU1JzaUFUWUNEQ0FES0FJc0lnSWdBVTBOQVFzZ0JDQUNOZ0lNSUFJaEFRc2dBeUFCTmdKWVFRRWhBU0FBUVFFUUF5SUNRWDlHRFFBZ0F5QUNRUUZHTmdKUUFrQWdBa0VCUncwQUlBTkJ1QWNRQ2lJQk5nSlVJQUZGQkVCQi8vOERJUUVNQWdzZ0FDQUJFQ3dpQVEwQklBTW9BbFFpQWlnQ21BZEZEUUJCQVNFQklBSW9BckFISUFJb0FyUUhJZ0pMRFFFZ0FpQURLQUlzU1EwQklBSWdBeWdDV0VzTkFTQURJQUpCQVNBQ0d6WUNXQXNnQUJBZlFRQWhBUXNnQkVFUWFpUUFJQUVMalFRQkRuOGdBUUovQWtBZ0FDOEJJQ0lIRFFBZ0FDOEJIQTBBUVFBTUFRdEJBZ3MyQWlBZ0FRSi9Ba0FnQUM4QklpSUNEUUFnQUM4QkhnMEFRUUFNQVF0QkFnczJBaWdnQVFKL0FrQWdBQzhCS0NJRERRQWdBQzhCSkEwQVFRQU1BUXRCQWdzMkFqQWdBUUovQWtBZ0FDOEJLaUlJRFFBZ0FDOEJKZzBBUVFBTUFRdEJBZ3MyQWpnZ0FTQUhJQUF2QVN3aUNYSkJBRWRCQVhRMkFrQWdBU0FDSUFBdkFTNGlCSEpCQUVkQkFYUTJBa2dnQVNBRElBQXZBVFFpQlhKQkFFZEJBWFEyQWxBZ0FTQUlJQUF2QVRZaUNuSkJBRWRCQVhRMkFsZ2dBU0FBTHdFd0lnMGdDWEpCQUVkQkFYUTJBbUFnQVNBQUx3RXlJZ3NnQkhKQkFFZEJBWFEyQW1nZ0FTQUFMd0U0SWd3Z0JYSkJBRWRCQVhRMkFuQWdBU0FBTHdFNklnNGdDbkpCQUVkQkFYUTJBbmhCQWlFR0lBRWdBQzhCSGlJUEJIOUJBZ1VnQUM4QkhFRUFSMEVCZEFzMkFnd2dBU0FQSUFBdkFTUWlCbkpCQUVkQkFYUTJBaFFnQUM4QkppRUFJQUVnRENBT2NrRUFSMEVCZERZQ2ZDQUJJQXNnREhKQkFFZEJBWFEyQW5RZ0FTQUxJQTF5UVFCSFFRRjBOZ0pzSUFFZ0JTQUtja0VBUjBFQmREWUNYQ0FCSUFRZ0JYSkJBRWRCQVhRMkFsUWdBU0FFSUFseVFRQkhRUUYwTmdKTUlBRWdBeUFJY2tFQVIwRUJkRFlDUENBQklBSWdBM0pCQUVkQkFYUTJBalFnQVNBQ0lBZHlRUUJIUVFGME5nSXNJQUVnQUNBR2NrRUFSMEVCZERZQ0hBdk1CZ0VMZnlNQVFZQU9heUlPSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0NHb2dCRXNOQUNBSFFRVnFJZ29nQTJvZ0JVc05BQ0FFSVFnZ0F5RUpEQUVMSUFBZ0RrSEFDbW9nQWlBRElBUWdCU0FJSUFkQkJXb2lDaUFJRUF3Z0RrSEFDbW9oQUVFQUlRSUxBa0FnQ2tVTkFDQUdRUUoySWhCRkRRQWdDQ0FHYXlFUklBQWdDQ0FKYkNBQ2FtcEJCV29oQWlBT0lRQURRQ0FDUVg5cUxRQUFJUWdnQWtGK2FpMEFBQ0VESUFKQmZXb3RBQUFoQlNBQ1FYeHFMUUFBSVFRZ0FrRjdhaTBBQUNFTUlCQWhEUU5BSUFBZ0FpMEFBQ0lKSUF3Z0JDQUlhaUlMYXlBRElBVnFRUlJzYWlBTFFRSjBhMm8yQWdBZ0FDQUNMUUFCSWdzZ0F5QUlha0VVYkNBRWFpQUZJQWxxSWdScklBUkJBblJyYWpZQ0JDQUFJQUl0QUFJaUR5QUlJQWxxUVJSc0lBVnFJQU1nQzJvaUJHc2dCRUVDZEd0cU5nSUlJQUFnQWkwQUF5SVNJQWtnQzJwQkZHd2dBMm9nQ0NBUGFpSURheUFEUVFKMGEybzJBZ3dnQUVFUWFpRUFJQUpCQkdvaEFpQUlJUXdnQ1NFRUlBc2hCU0FQSVFNZ0VpRUlJQTFCZjJvaURRMEFDeUFDSUJGcUlRSWdDa0YvYWlJS0RRQUxDd0pBSUFkQkFuWWlCMFVOQUNBR1JRMEFRY0FBSUFacklROGdEaUFHUVFKMGFpSUlJQVpCRkd4cUlRSkJBQ0FHYXlJUVFRTjBJUklnQmtFRGRDRUpJQVpCQTJ4QkFuUWhDd05BSUFZaEJBTkFJQUVnQ0NBSmFpZ0NBQ0lBSUFJZ0NXb29BZ0FnQWlBR1FRSjBJZzFxS0FJQUlnb2dBaUFTYWlnQ0FDSURhaUlGYXlBRlFRSjBhMm9nQWlnQ0FDSU1JQUlnRUVFQ2RDSVJhaWdDQUNJRmFrRVViR3BCZ0FScVFRcDFRYkF1YWkwQUFEb0FNQ0FCSUFnZ0RXb29BZ0FpRFNBS0lBTWdCV3BCRkd4cUlBQWdER29pQ21zZ0NrRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQTZBQ0FnQVNBSUtBSUFJZ29nRENBQUlBTnFRUlJzYWlBRklBMXFJZ3hySUF4QkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQU9nQVFJQUVnQ0NBUmFpZ0NBQ0FGSUFBZ0RXcEJGR3hxSUFNZ0Ntb2lBR3NnQUVFQ2RHdHFRWUFFYWtFS2RVR3dMbW90QUFBNkFBQWdDRUVFYWlFSUlBRkJBV29oQVNBQ1FRUnFJUUlnQkVGL2FpSUVEUUFMSUFFZ0Qyb2hBU0FDSUF0cUlRSWdDQ0FMYWlFSUlBZEJmMm9pQncwQUN3c2dEa0dBRG1va0FBdmxBd0VKZnlNQVFjQURheUlLSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0F5QUhhaUFGU3cwQUlBTkJBRWdOQUNBQ0lBaHFJQVJMRFFBZ0JDRUlJQU1oQ1F3QkN5QUFJQW9nQWlBRElBUWdCU0FJSUFjZ0NCQU1JQW9oQUVFQUlRSUxBa0FnQjBVTkFDQUdRUUoySWcxRkRRQkJFQ0FHYXlFT0lBZ2dCbXNoRHlBQUlBZ2dDV3dnQW1wcVFRVnFJUUlEUUNBQ1FYOXFMUUFBSVFnZ0FrRithaTBBQUNFR0lBSkJmV290QUFBaEFDQUNRWHhxTFFBQUlRVWdBa0Y3YWkwQUFDRUpJQTBoQ3dOQUlBRWdBaTBBQUNJRElBa2dCU0FJYWlJRWF5QUFJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FBSUFFZ0FpMEFBU0lFSUFVZ0JpQUlha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQU9nQUJJQUVnQWkwQUFpSU1JQUFnQXlBSWFrRVViR29nQkNBR2FpSUFheUFBUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBT2dBQ0lBRWdBaTBBQXlJUUlBWWdBeUFFYWtFVWJHb2dDQ0FNYWlJQWF5QUFRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FESUFGQkJHb2hBU0FDUVFScUlRSWdDQ0VKSUFNaEJTQUVJUUFnRENFR0lCQWhDQ0FMUVg5cUlnc05BQXNnQVNBT2FpRUJJQUlnRDJvaEFpQUhRWDlxSWdjTkFBc0xJQXBCd0FOcUpBQUw5UU1CQzM4akFFSEFBMnNpQ3lRQUFrQUNRQ0FDUVFCSURRQWdBMEVBU0EwQUlBSWdCbW9nQkVzTkFDQURJQWRxUVFWcUlBVkxEUUFnQXlFSURBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFZZ0IwRUZhaUFHRUF3Z0N5RUFJQVloQkVFQUlRSUxBa0FnQjBFQ2RpSU1SUTBBSUFaRkRRQkJ3QUFnQm1zaEVTQUVRUUYwSVEwZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVNJQUFnQkNBSWJDQUNhbW9nQkdvaUJ5QUVRUVZzYWlFQ0EwQWdCaUVBQTBBZ0FTQUhJQTFxTFFBQUlnTWdBaUFOYWkwQUFDQUNJQVJxTFFBQUlna2dBaUFTYWkwQUFDSUZhaUlJYXlBSVFRSjBhMm9nQWkwQUFDSUtJQUlnRDJvdEFBQWlDR3BCRkd4cVFSQnFRUVYxUWJBdWFpMEFBRG9BTUNBQklBUWdCMm90QUFBaUVDQUpJQVVnQ0dwQkZHeHFJQU1nQ21vaUNXc2dDVUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBRG9BSUNBQklBY3RBQUFpQ1NBS0lBTWdCV3BCRkd4cUlBZ2dFR29pQ21zZ0NrRUNkR3RxUVJCcVFRVjFRYkF1YWkwQUFEb0FFQ0FCSUFjZ0Qyb3RBQUFnQ0NBRElCQnFRUlJzYWlBRklBbHFJZ05ySUFOQkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBQWdCMEVCYWlFSElBRkJBV29oQVNBQ1FRRnFJUUlnQUVGL2FpSUFEUUFMSUFFZ0VXb2hBU0FDSUE1cUlRSWdCeUFPYWlFSElBeEJmMm9pREEwQUN3c2dDMEhBQTJva0FBdXFCZ0VOZnlNQVFiQUJheUlSSkFBZ0NFRUJhaUVLQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0Ntb2dCRXNOQUNBRElBbHFRUUZxSUFWTERRQWdCU0VNSUFRaENpQURJUThNQVFzZ0FDQVJJQUlnQXlBRUlBVWdDaUFKUVFGcUlnd2dDaEFNSUFBZ0JDQUZiR29nRVNBS0lBeHNhaUFDSUFNZ0JDQUZJQW9nRENBS0VBd2dFU0VBUVFBaEFnc0NRQ0FKUVFGMklnVkZEUUFnQ0VFQmRpSUVSUTBBUVJBZ0NHc2hFMEVJSUFkcklRdEJDQ0FHYXlFTklBcEJBWFFpRGlBSWF5RVVJQUFnQW1vaUZpQUtJQTlzYWlFQ0lBRWhBQ0FGSVJVRFFDQUNJQTVxTFFBQUlBZHNJQXNnQWlBS2FpMEFBQ0lEYkdvaENDQURJQWRzSUFzZ0FpMEFBR3hxSVFrZ0JDRURBMEFnQWtFQmFpSVFJQTVxTFFBQUlSSWdBQ0FKSUExc0lBb2dFR290QUFBaUNTQUhiQ0FMSUFJdEFBRnNhaUlRSUFac2FrRWdha0VHZGpvQUFDQUFJQWdnRFd3Z0J5QVNiQ0FKSUF0c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ0NBQ0xRQUNJUWtnQWtFQ2FpSUNJQTVxTFFBQUlSSWdBQ0FOSUJCc0lBSWdDbW90QUFBaUVDQUhiQ0FKSUF0c2FpSUpJQVpzYWtFZ2FrRUdkam9BQVNBQUlBZ2dEV3dnQnlBU2JDQUxJQkJzYWlJSUlBWnNha0VnYWtFR2Rqb0FDU0FBUVFKcUlRQWdBMEYvYWlJRERRQUxJQUlnRkdvaEFpQUFJQk5xSVFBZ0ZVRi9haUlWRFFBTElBRkJRR3NoQUNBV0lBd2dEMm9nQ214cUlRSURRQ0FDSUE1cUxRQUFJQWRzSUFzZ0FpQUthaTBBQUNJQmJHb2hDQ0FCSUFkc0lBc2dBaTBBQUd4cUlRa2dCQ0VEQTBBZ0FrRUJhaUlCSUE1cUxRQUFJUXdnQUNBSklBMXNJQUVnQ21vdEFBQWlBU0FIYkNBTElBSXRBQUZzYWlJSklBWnNha0VnYWtFR2Rqb0FBQ0FBSUFnZ0RXd2dCeUFNYkNBQklBdHNhaUlCSUFac2FrRWdha0VHZGpvQUNDQUNMUUFDSVFnZ0FrRUNhaUlDSUE1cUxRQUFJUXdnQUNBSklBMXNJQUlnQ21vdEFBQWlEeUFIYkNBSUlBdHNhaUlKSUFac2FrRWdha0VHZGpvQUFTQUFJQUVnRFd3Z0J5QU1iQ0FMSUE5c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ1NBQVFRSnFJUUFnQTBGL2FpSUREUUFMSUFJZ0ZHb2hBaUFBSUJOcUlRQWdCVUYvYWlJRkRRQUxDeUFSUWJBQmFpUUFDLzlFQVVGL0l3QkJzQUZySWdNa0FDQUFLQUlJSWdRRVFDQUFLQUlFSWg5QkEzUWhGaUFFSUI5c0lnUkJCblFoT3lBRVFRaDBJVHdnSDBFR2RDRTlJQjlCTUd3aFBpQWZRUVYwSVNVZ0gwRlFiQ0VyUVFBZ0gwRUVkQ0lhYXlJb1FRSjBJVDhnS0VFQmRDRXNJQU5CR0dvaElpQURRUXh5SVNNRFFBSkFJQUVvQWdnaUNVRUJSZzBBQWtBQ1FBSkFBa0FnQVNnQ3lBRWlBa1VFUUVFQklRWU1BUXRCQlNFR0lBbEJBa2NOQUVFRlFRRWdBU2dDQkNJSklBSW9BZ1JHR3lFR0lBRW9Bc3dCSWdRTkFVRUFJUVFNQXdzZ0FTZ0N6QUVpQkVVRVFFRUFJUVFNQXdzZ0NVRUNSdzBCSUFFb0FnUWhDUXNnQ1NBRUtBSUVSdzBCQ3lBR1FRSnlJUVlMQW44Z0JrRUNjU0l0QkVBQ1FDQUJLQUlBUVFWTkJFQWdCQ2dDQUVFR1NRMEJDeUFEUVFRMkFrQWdBMEVFTmdKSUlBTkJCRFlDT0NBRFFRUTJBakJCQVF3Q0MwRUNJUTlCQWlFSkFrQWdBUzhCSEEwQUlBUXZBVEFOQUVFQklRa2dBU2dDZENBRUtBSjhSdzBBSUFFdUFZUUJJQVF1QWF3QmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBRUxnR3VBV3NpQ1NBSlFSOTFJZ2xxSUFselFRTkxJUWtMSUFNZ0NUWUNNQUpBSUFFdkFSNE5BQ0FFTHdFeURRQkJBU0VQSUFFb0FuUWdCQ2dDZkVjTkFDQUJMZ0dJQVNBRUxnR3dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmlnRWdCQzRCc2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWpoQkFpRUZRUUloQ2dKQUlBRXZBU1FOQUNBRUx3RTREUUJCQVNFS0lBRW9BbmdnQkNnQ2dBRkhEUUFnQVM0QmxBRWdCQzRCdkFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBWllCSUFRdUFiNEJheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSkFBa0FnQVM4QkpnMEFJQVF2QVRvTkFFRUJJUVVnQVNnQ2VDQUVLQUtBQVVjTkFDQUJMZ0dZQVNBRUxnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0Qm1nRWdCQzRCd2dGcklnUWdCRUVmZFNJRWFpQUVjMEVEU3lFRkN5QURJQVUyQWtnZ0NTQVBjaUFLY2lBRmNrRUFSd3dCQ3lBRFFRQTJBa0FnQTBFQU5nSklJQU5CQURZQ09DQURRUUEyQWpCQkFBc2hDUUpBQWtBQ1FBSkFJQVpCQkhFaUxnUkFBa0FnQVNnQ0FDSUdRUVZOQkVBZ0FpZ0NBRUVHU1EwQkN5QURRUVEyQW5RZ0EwRUVOZ0tVQVNBRFFRUTJBbFFnQTBFRU5nSTBRUUVoQ1F3Q0MwRUNJUTlCQWlFRUFrQWdBUzhCSEEwQUlBSXZBU1lOQUVFQklRUWdBU2dDZENBQ0tBSjRSdzBBSUFFdUFZUUJJQUl1QVpnQmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBQ0xnR2FBV3NpQkNBRVFSOTFJZ1JxSUFSelFRTkxJUVFMSUFNZ0JEWUNOQUpBSUFFdkFTQU5BQ0FDTHdFcURRQkJBU0VQSUFFb0FuUWdBaWdDZUVjTkFDQUJMZ0dNQVNBQ0xnR2dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmpnRWdBaTRCb2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWxSQkFpRUZRUUloQ2dKQUlBRXZBU3dOQUNBQ0x3RTJEUUJCQVNFS0lBRW9BbndnQWlnQ2dBRkhEUUFnQVM0QnBBRWdBaTRCdUFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBYVlCSUFJdUFib0JheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSjBBa0FnQVM4Qk1BMEFJQUl2QVRvTkFFRUJJUVVnQVNnQ2ZDQUNLQUtBQVVjTkFDQUJMZ0dzQVNBQ0xnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0QnJnRWdBaTRCd2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFRkN5QURJQVUyQXBRQklBbEZEUUpCQVNFSkRBTUxJQU5CQURZQ2RDQURRUUEyQXBRQklBTkJBRFlDVkNBRFFRQTJBalFnQVNnQ0FDRUdDeUFHUVFaSkRRRWdBMEVETmdLZ0FTQURRb09BZ0lBd053S2tBU0FEUVFNMkFwQUJJQU5CQXpZQ2NDQURRUU0yQXF3QklBTkNnNENBZ0RBM0E1Z0JJQU5DZzRDQWdEQTNBNGdCSUFOQ2c0Q0FnREEzQTRBQklBTkNnNENBZ0RBM0EzZ2dBMEtEZ0lDQU1EY0RhQ0FEUW9PQWdJQXdOd05nSUFOQ2c0Q0FnREEzQTFnZ0EwS0RnSUNBTURjQ1RDQURRUU0yQWtRZ0EwRUROZ0k4REFJTElBUWdEM0lnQ25JZ0JYSkJBRWNoQ1FzQ1FBSi9JQVpCQTAwRVFDQUdRUUowUVl3MWFpZ0NBQXdCQzBFRUMwRUJSZ1JBSUFFZ0EwRXdhaEJFSUFNb0Fxd0JJUWNnQXlnQ3BBRWhEaUFES0FLY0FTRVFJQU1vQW93QklSa2dBeWdDaEFFaEJpQURLQUo4SVJjZ0F5Z0NiQ0VJSUFNb0FtUWhCQ0FES0FKY0lSUWdBeWdDVENFTUlBTW9Ba1FoQWlBREtBSThJUkVnQXlnQ3FBRWhIQ0FES0FLZ0FTRW1JQU1vQXBnQklRMGdBeWdDa0FFaEhTQURLQUtJQVNFU0lBTW9Bb0FCSVJVZ0F5Z0NlQ0ViSUFNb0FuQWhFeUFES0FKb0lRb2dBeWdDWUNFUElBTW9BbGdoQlNBREtBSlFJU2NNQVFzZ0F3Si9Ba0FnQXdKL0FrQUNRQ0FCS0FJQVFYNXFJZ1JCQVUwRVFDQUVRUUZyQkVBZ0F3Si9Ba0FnQVM4QklDSUVEUUFnQVM4QkhBMEFRUUFNQVF0QkFnc2lKellDVUNBREFuOENRQ0FCTHdFaUlnY05BQ0FCTHdFZURRQkJBQXdCQzBFQ0N5SUZOZ0pZSUFNQ2Z3SkFJQUV2QVNnaUJnMEFJQUV2QVNRTkFFRUFEQUVMUVFJTElnODJBbUFnQXdKL0FrQWdBUzhCS2lJT0RRQWdBUzhCSmcwQVFRQU1BUXRCQWdzaUNqWUNhQ0FEQW44Q1FDQUJMd0V3SWg0TkFDQUJMd0VzRFFCQkFBd0JDMEVDQ3lJZE5nS1FBU0FEQW44Q1FDQUJMd0V5SWhBTkFDQUJMd0V1RFFCQkFBd0JDMEVDQ3lJTk5nS1lBU0FEQW44Q1FDQUJMd0U0SWdzTkFDQUJMd0UwRFFCQkFBd0JDMEVDQ3lJbU5nS2dBU0FEQW44Q1FDQUJMd0U2SWhnTkFDQUJMd0UyRFFCQkFBd0JDMEVDQ3lJY05nS29BVUVDSVJ0QkFpRVRBa0FnQkNBQkx3RXNJaGR5RFFCQkFTRVRJQUV1QWFRQklBRXVBWXdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQkxnR21BU0FCTGdHT0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdBU2dDZkNBQktBSjBSeUVUQ3lBRElCTTJBbkFDUUNBSElBRXZBUzRpSUhJTkFFRUJJUnNnQVM0QnFBRWdBUzRCa0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRXVBYW9CSUFFdUFaSUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FCS0FKOElBRW9BblJISVJzTElBTWdHellDZUVFQ0lSSkJBaUVWQWtBZ0JpQUJMd0UwSWhseURRQkJBU0VWSUFFdUFiUUJJQUV1QVp3QmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJMZ0cyQVNBQkxnR2VBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEZRc2dBeUFWTmdLQUFRSkFJQTRnQVM4Qk5pSWhjZzBBUVFFaEVpQUJMZ0c0QVNBQkxnR2dBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVM0QnVnRWdBUzRCb2dGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9Bb0FCSUFFb0FuaEhJUklMSUFNZ0VqWUNpQUVnQVM4QkhnMENJQUV2QVJ3RVFFRUNJUkVnQTBFQ05nSThJQUV2QVNRaUNBMEdRUUFoREVFQURBY0xRUUFoRVNBRFFRQTJBanhCQUNFTVFRQWdBUzhCSkNJSVJRMEdHZ3dGQ3lBREFuOENRQ0FCTHdFZ0lnSU5BQ0FCTHdFY0RRQkJBQXdCQzBFQ0N5SW5OZ0pRSUFNQ2Z3SkFJQUV2QVNJaUJnMEFJQUV2QVI0TkFFRUFEQUVMUVFJTElnVTJBbGdnQXdKL0FrQWdBUzhCS0NJT0RRQWdBUzhCSkEwQVFRQU1BUXRCQWdzaUR6WUNZQ0FEQW44Q1FDQUJMd0VxSWdnTkFDQUJMd0VtRFFCQkFBd0JDMEVDQ3lJS05nSm9JQU1nQWlBQkx3RXNJaGR5UVFCSFFRRjBJaE0yQW5BZ0F5QUdJQUV2QVM0aUMzSkJBRWRCQVhRaUd6WUNlQ0FESUE0Z0FTOEJOQ0llY2tFQVIwRUJkQ0lWTmdLQUFTQURJQWdnQVM4Qk5pSVpja0VBUjBFQmRDSVNOZ0tJQVNBRElBRXZBVEFpRUNBWGNrRUFSMEVCZENJZE5nS1FBU0FESUFFdkFUSWlJQ0FMY2tFQVIwRUJkQ0lOTmdLWUFTQURJQUV2QVRnaUlTQWVja0VBUjBFQmRDSW1OZ0tnQVNBRElBRXZBVG9pQnlBWmNrRUFSMEVCZENJY05nS29BU0FEQW44Q1FDQUJMd0VlSWlRTkFDQUJMd0VjRFFCQkFBd0JDMEVDQ3lJUk5nSThJQUV2QVNZRVFDQUJMd0VrSVJnTUF3c2dBUzhCSkNJWURRSkJBQ0VZUVFBTUF3c2dBUzRCaGdFaEZDQUJMZ0dPQVNFRVFRSWhCU0FEQW45QkFpQUJMd0VjSWhFZ0FTOEJJQ0l2Y2cwQUdrRUJJQUV1QVl3QklBRXVBWVFCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUJvZ0JDQVVheUlHSUFaQkgzVWlCbW9nQm5OQkEwc0xJaWMyQWxBZ0FTNEJpZ0VoQ0NBQkxnR1NBU0VHQWtBZ0FTOEJIaUl3SUFFdkFTSWlFSElOQUVFQklRVWdBUzRCa0FFZ0FTNEJpQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUFZZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6UVFOTElRVUxJQU1nQlRZQ1dDQUJMZ0dXQVNFTUlBRXVBWjRCSVFkQkFpRUtJQU1DZjBFQ0lBRXZBU1FpTVNBQkx3RW9JaGR5RFFBYVFRRWdBUzRCbkFFZ0FTNEJsQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBR2lBSElBeHJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3c2lEellDWUNBQkxnR2FBU0V5SUFFdUFhSUJJUXNDUUNBQkx3RW1Ja0FnQVM4QktpSXpjZzBBUVFFaENpQUJMZ0dnQVNBQkxnR1lBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQ3lBeWF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzaENnc2dBeUFLTmdKb0lBRXVBYVlCSVI1QkFpRWJRUUloRXdKQUlDOGdBUzhCTENJMGNnMEFRUUVoRXlBQkxnR2tBU0FCTGdHTUFXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdIaUFFYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQktBSjhJQUVvQW5SSElSTUxJQU1nRXpZQ2NDQUJMZ0dxQVNFT0FrQWdFQ0FCTHdFdUloaHlEUUJCQVNFYklBRXVBYWdCSUFFdUFaQUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FPSUFacklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9BbndnQVNnQ2RFY2hHd3NnQXlBYk5nSjRJQUV1QWJZQklSbEJBaUVTUVFJaEZRSkFJQmNnQVM4Qk5DSWdjZzBBUVFFaEZTQUJMZ0cwQVNBQkxnR2NBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnR1NBSGF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJLQUtBQVNBQktBSjRSeUVWQ3lBRElCVTJBb0FCSUFFdUFib0JJU0VDUUNBeklBRXZBVFlpTlhJTkFFRUJJUklnQVM0QnVBRWdBUzRCb0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlDRWdDMnNpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEVnc2dBeUFTTmdLSUFTQUJMZ0d1QVNFMlFRSWhEU0FEQW45QkFpQTBJQUV2QVRBaVFYSU5BQnBCQVNBQkxnR3NBU0FCTGdHa0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWFJRFlnSG1zaUFpQUNRUjkxSWdKcUlBSnpRUU5MQ3lJZE5nS1FBU0FCTGdHeUFTRWtBa0FnR0NBQkx3RXlJamR5RFFCQkFTRU5JQUV1QWJBQklBRXVBYWdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBa0lBNXJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN5RU5DeUFESUEwMkFwZ0JJQUV1QWI0QklTbEJBaUVjSUFNQ2YwRUNJQ0FnQVM4Qk9DSTRjZzBBR2tFQklBRXVBYndCSUFFdUFiUUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQm9nS1NBWmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTElpWTJBcUFCSUFFdUFjSUJJVGtDUUNBMUlBRXZBVG9pUW5JTkFFRUJJUndnQVM0QndBRWdBUzRCdUFGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlEa2dJV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxJUndMSUFNZ0hEWUNxQUZCQWlFQ0lBTUNmMEVDSUJFZ01ISU5BQnBCQVNBQkxnR0lBU0FCTGdHRUFXc2lFU0FSUVI5MUloRnFJQkZ6UVFOTERRQWFJQWdnRkdzaUZDQVVRUjkxSWhScUlCUnpRUU5MQ3lJUk5nSThBa0FnTUNBeGNnMEFRUUVoQWlBQkxnR1VBU0FCTGdHSUFXc2lGQ0FVUVI5MUloUnFJQlJ6UVFOTERRQWdEQ0FJYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBQktBSjRJQUVvQW5SSElRSUxJQU1nQWpZQ1JFRUNJUlFnQXdKL1FRSWdNU0JBY2cwQUdrRUJJQUV1QVpnQklBRXVBWlFCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUJvZ01pQU1heUlJSUFoQkgzVWlDR29nQ0hOQkEwc0xJZ3cyQWt3Q1FDQVFJQzl5RFFCQkFTRVVJQUV1QVpBQklBRXVBWXdCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBR0lBUnJJZ1FnQkVFZmRTSUVhaUFFYzBFRFN5RVVDeUFESUJRMkFseEJBaUVJUVFJaEJBSkFJQkFnRjNJTkFFRUJJUVFnQVM0Qm5BRWdBUzRCa0FGckloQWdFRUVmZFNJUWFpQVFjMEVEU3cwQUlBY2dCbXNpQmlBR1FSOTFJZ1pxSUFaelFRTkxEUUFnQVNnQ2VDQUJLQUowUnlFRUN5QURJQVEyQW1RQ1FDQVhJRE55RFFCQkFTRUlJQUV1QWFBQklBRXVBWndCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUNBTElBZHJJZ1lnQmtFZmRTSUdhaUFHYzBFRFN5RUlDeUFESUFnMkFteEJBaUVHSUFNQ2YwRUNJQmdnTkhJTkFCcEJBU0FCTGdHb0FTQUJMZ0drQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBYUlBNGdIbXNpQnlBSFFSOTFJZ2RxSUFkelFRTkxDeUlYTmdKOEFrQWdHQ0FnY2cwQVFRRWhCaUFCTGdHMEFTQUJMZ0dvQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBZ0dTQU9heUlISUFkQkgzVWlCMm9nQjNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQlFRSWhFQ0FEQW45QkFpQWdJRFZ5RFFBYVFRRWdBUzRCdUFFZ0FTNEJ0QUZySWdjZ0IwRWZkU0lIYWlBSGMwRURTdzBBR2lBaElCbHJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN3c2lHVFlDakFFQ1FDQTNJRUZ5RFFCQkFTRVFJQUV1QWJBQklBRXVBYXdCYXlJSElBZEJIM1VpQjJvZ0IzTkJBMHNOQUNBa0lEWnJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN5RVFDeUFESUJBMkFwd0JRUUloQjBFQ0lRNENRQ0EzSURoeURRQkJBU0VPSUFFdUFid0JJQUV1QWJBQmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQXBJQ1JySWdzZ0MwRWZkU0lMYWlBTGMwRURTdzBBSUFFb0FvQUJJQUVvQW54SElRNExJQU1nRGpZQ3BBRUNRQ0E0SUVKeURRQkJBU0VISUFFdUFjQUJJQUV1QWJ3QmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQTVJQ2xySWdjZ0IwRWZkU0lIYWlBSGMwRURTeUVIQ3lBRElBYzJBcXdCREFVTFFRSWhFU0FEUVFJMkFqd2dBUzhCSkNFSURBSUxRUUlMSWd3MkFreEJBaUVFSUFOQkFpQUlRUUJIUVFGMElBNGJJZ2cyQW13Z0EwRUNJQVpCQUVkQkFYUWdBaHNpRkRZQ1hDQURJQWNnSVhKQkFFZEJBWFFpQnpZQ3JBRWdBeUFRSUNCeVFRQkhRUUYwSWhBMkFwd0JJQU1nR1NBZWNrRUFSMEVCZENJWk5nS01BU0FESUFzZ0YzSkJBRWRCQVhRaUZ6WUNmRUVDSVFJQ1FDQVlJQ1J5RFFCQkFTRUNJQUV1QVpRQklBRXVBWWdCYXlJWUlCaEJIM1VpR0dvZ0dITkJBMHNOQUNBQkxnR1dBU0FCTGdHS0FXc2lHQ0FZUVI5MUloaHFJQmh6UVFOTERRQWdBU2dDZUNBQktBSjBSeUVDQ3lBRElBSTJBa1FDUUNBR0lBNXlEUUJCQVNFRUlBRXVBWndCSUFFdUFaQUJheUlHSUFaQkgzVWlCbW9nQm5OQkEwc05BQ0FCTGdHZUFTQUJMZ0dTQVdzaUJpQUdRUjkxSWdacUlBWnpRUU5MRFFBZ0FTZ0NlQ0FCS0FKMFJ5RUVDeUFESUFRMkFtUkJBaUVPUVFJaEJnSkFJQXNnSG5JTkFFRUJJUVlnQVM0QnRBRWdBUzRCcUFGcklnc2dDMEVmZFNJTGFpQUxjMEVEU3cwQUlBRXVBYllCSUFFdUFhb0JheUlMSUF0QkgzVWlDMm9nQzNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQkFrQWdJQ0FoY2cwQVFRRWhEaUFCTGdHOEFTQUJMZ0d3QVdzaUN5QUxRUjkxSWd0cUlBdHpRUU5MRFFBZ0FTNEJ2Z0VnQVM0QnNnRnJJZ3NnQzBFZmRTSUxhaUFMYzBFRFN3MEFJQUVvQW9BQklBRW9BbnhISVE0TElBTWdEallDcEFFTUFnc2dDQ0VNUVFJTElnSTJBa1FnQXlBQkx3RW1JQXhCLy84RGNYSkJBRWRCQVhRaUREWUNUQ0FEQW44Q1FDQUhSUVJBSUFRRVFFRUNJUlFnQTBFQ05nSmNJQVlOQWtFQURBTUxRUUFoRkNBRFFRQTJBbHhCQUNBR1JRMENHZ3dCQzBFQ0lSUWdBMEVDTmdKY0MwRUNDeUlFTmdKa0lBTkJBaUFPUVFCSFFRRjBJQVliSWdnMkFtd2dBd0ovQWtBZ0lFVUVRQ0FYQkVCQkFpRVhJQU5CQWpZQ2ZDQVpEUUpCQUF3REMwRUFJUmNnQTBFQU5nSjhRUUFnR1VVTkFob01BUXRCQWlFWElBTkJBallDZkF0QkFnc2lCallDaEFFZ0F5QUxJQmh5UVFCSFFRRjBJZ2MyQXF3QklBTWdDeUFRY2tFQVIwRUJkQ0lPTmdLa0FTQURRUUlnRUVFQVIwRUJkQ0FlR3lJUU5nS2NBU0FESUJrZ0lYSkJBRWRCQVhRaUdUWUNqQUVMSUFrZ0ozSWdCWElnRDNJZ0NuSWdFM0lnRzNJZ0ZYSWdFbklnSFhJZ0RYSWdKbklnSEhJZ0VYSWdBbklnREhJZ0ZISWdCSElnQ0hJZ0YzSWdCbklnR1hJZ0VISWdEbklnQjNKRkRRRUxJQUVvQWd3aENTQURJQUVvQWhBaUJTQUJLQUlVSWdScUlnWkJNeUFHUVROSUd5SUdRUUFnQmtFQVNodEIwQmRxTFFBQUlnWTJBaUFnQXlBRUlBbHFJZ0pCTXlBQ1FUTklHeUlDUVFBZ0FrRUFTaHNpQ0VHUUYyb3RBQUFpQWpZQ0hDQURJQWhCQTJ4QmtCaHFJZ2cyQWhnQ1FDQXRSUTBBSUFRZ0FTZ0N6QUVvQWhRaUIwY0VRQ0FESUFRZ0IycEJBV3BCQVhZaUJ5QUZhaUlOUVRNZ0RVRXpTQnNpRFVFQUlBMUJBRW9iUWRBWGFpMEFBRFlDQ0NBRElBY2dDV29pQjBFeklBZEJNMGdiSWdkQkFDQUhRUUJLR3lJSFFaQVhhaTBBQURZQ0JDQURJQWRCQTJ4QmtCaHFOZ0lBREFFTElBTWdCallDQ0NBRElBSTJBZ1FnQXlBSU5nSUFDd0pBSUM1RkRRQWdCQ0FCS0FMSUFTZ0NGQ0lIUndSQUlBTWdCQ0FIYWtFQmFrRUJkaUlFSUFWcUlnVkJNeUFGUVROSUd5SUZRUUFnQlVFQVNodEIwQmRxTFFBQU5nSVVJQU1nQkNBSmFpSUVRVE1nQkVFelNCc2lCRUVBSUFSQkFFb2JJZ1JCa0JkcUxRQUFOZ0lRSUFNZ0JFRURiRUdRR0dvMkFnd01BUXNnQXlBR05nSVVJQU1nQWpZQ0VDQURJQWcyQWd3TElBQW9BZ0FnSHlBNmJDSVVRUWgwYWlBcVFRUjBhaUVKUVFBaEFrRURJUVFnQTBFd2FpRUdBMEFnQmlnQ0JDSUZCRUFnQ1NBRklDTWdHaEFaQ3lBR0tBSU1JZ1VFUUNBSlFRUnFJQVVnSWlBYUVCa0xJQVlvQWhRaUJRUkFJQWxCQ0dvZ0JTQWlJQm9RR1FzZ0JpZ0NIQ0lGQkVBZ0NVRU1haUFGSUNJZ0doQVpDeUFFSVFnQ1FBSkFBa0FnQmlnQ0FDSUVJQVlvQWdnaUQwY05BQ0FFSUFZb0FoQkhEUUFnQkNBR0tBSVlSdzBBSUFSRkRRSWdBeUFDUVF4c2FpSUZLQUlJSVF3Z0JTZ0NCQ0ViSUFSQkJFa05BU0FiUVFKMlFRSnFJUkJCRUNFUElBa2hCQU5BQWtBZ0JDQW9haUlDTFFBQUlnb2dCQzBBQUNJT2F5SUZJQVZCSDNVaUJXb2dCWE1pQnlBYlR3MEFJQVFnTEdvaUVTMEFBQ0lGSUFwcklnMGdEVUVmZFNJTmFpQU5jeUFNVHcwQUlBUWdHbW9pSEMwQUFDSVNJQTVySWcwZ0RVRWZkU0lOYWlBTmN5QU1UdzBBQWtBZ0J5QVFTUVJBSUFRZ0pXb2lGeTBBQUNFVkFuOGdCQ0FyYWlJTkxRQUFJaE1nQ21zaUJ5QUhRUjkxSWdkcUlBZHpJQXhKQkVCQkF5RWRJQUlnRWlBS0lBNXFJQVZxSWdKQkFYUnFJQk5xUVFScVFRTjJPZ0FBSUJFZ0FpQVRha0VDYWtFQ2Rqb0FBQ0FDUVFScUlSRWdCQ0EvYWkwQUFDRUhJQk5CQTJ3TUFRc2dDaUFTYWlFUklBVWhCMEVDSVIwZ0FpRU5RUUlMSVFJZ0RTQUNJQkZxSUFkQkFYUnFJQjEyT2dBQUlCVWdEbXNpQWlBQ1FSOTFJZ0pxSUFKeklBeFBEUUVnQkNBRklBb2dFbW9nRG1vaUFrRUJkR29nRldwQkJHcEJBM1k2QUFBZ0hDQUNJQlZxUVFKcVFRSjJPZ0FBSUJjZ0FpQVZRUU5zYWlBRUlENXFMUUFBUVFGMGFrRUVha0VEZGpvQUFBd0NDeUFDSUFvZ0Vtb2dCVUVCZEdwQkFtcEJBblk2QUFBTElBUWdCU0FPYWlBU1FRRjBha0VDYWtFQ2Rqb0FBQXNnQkVFQmFpRUVJQTlCZjJvaUR3MEFDd3dDQ3dKL0lBUUVRQ0FKSUFRZ0F5QUNRUXhzYWlBYUVCZ2dCaWdDQ0NFUEN5QVBDd1JBSUFsQkJHb2dEeUFESUFKQkRHeHFJQm9RR0FzZ0JpZ0NFQ0lFQkVBZ0NVRUlhaUFFSUFNZ0FrRU1iR29nR2hBWUN5QUdLQUlZSWdSRkRRRWdDVUVNYWlBRUlBTWdBa0VNYkdvZ0doQVlEQUVMSUFRZ0JTZ0NBR3BCZjJvdEFBQWlBa0VCYWlFSFFRQWdBbXNoRGtFUUlROGdDU0VFQTBBQ1FDQUVJQ2hxSWhNdEFBQWlEU0FFTFFBQUlncHJJZ1VnQlVFZmRTSUZhaUFGY3lBYlR3MEFJQVFnTEdvaUVTMEFBQ0lTSUExcklnVWdCVUVmZFNJRmFpQUZjeUFNVHcwQUlBUWdHbW9pRUMwQUFDSVZJQXBySWdVZ0JVRWZkU0lGYWlBRmN5QU1UdzBBSUFJaEJTQUVJQ3RxTFFBQUlod2dEV3NpSFNBZFFSOTFJaDFxSUIxeklBeEpCRUFnRVNBU0lBNGdBaUFLSUExcVFRRnFRUUYySUJKQkFYUnJJQnhxUVFGMUlnVWdCU0FDU2hzZ0JTQU9TQnRxT2dBQUlBY2hCUXNnRXlBTkFuOGdCQ0FsYWkwQUFDSVRJQXBySWhFZ0VVRWZkU0lSYWlBUmN5QU1TUVJBSUJBZ0ZTQU9JQUlnQ2lBTmFrRUJha0VCZGlBVlFRRjBheUFUYWtFQmRTSVRJQk1nQWtvYklCTWdEa2diYWpvQUFDQUZRUUZxSVFVTFFRQWdCV3NpRXdzZ0JTQVNJQlZySUFvZ0RXdEJBblJxUVFScVFRTjFJaElnRWlBRlNoc2dFaUFUU0JzaUJXcEJzQzVxTFFBQU9nQUFJQVFnQ2lBRmEwR3dMbW90QUFBNkFBQUxJQVJCQVdvaEJDQVBRWDlxSWc4TkFBc0xJQWhCZjJvaEJDQUdRU0JxSVFZZ0NTQTlhaUVKUVFJaEFpQUlEUUFMSUFFb0Fnd2hCQ0FESUFFb0FoQWlCU0FCS0FJVUlnWWdBU2dDR0NJQ2FpSUpRVE1nQ1VFelNCc2lDVUVBSUFsQkFFb2JRUUowUWVBOWFpZ0NBQ0lKYWlJSVFUTWdDRUV6U0JzaUNFRUFJQWhCQUVvYlFkQVhhaTBBQUNJSU5nSWdJQU1nQkNBSmFpSUhRVE1nQjBFelNCc2lCMEVBSUFkQkFFb2JJZzFCa0JkcUxRQUFJZ2MyQWh3Z0F5QU5RUU5zUVpBWWFpSU5OZ0lZQWtBZ0xVVU5BQ0FHSUFFb0Fzd0JLQUlVSWd4SEJFQWdBeUFKSUFJZ0RHb2lERUV6SUF4Qk0wZ2JJZ3hCQUNBTVFRQktHMEVDZEVIZ1BXb29BZ0JxUVFGcVFRRjJJZ3dnQldvaUQwRXpJQTlCTTBnYklnOUJBQ0FQUVFCS0cwSFFGMm90QUFBMkFnZ2dBeUFFSUF4cUlneEJNeUFNUVROSUd5SU1RUUFnREVFQVNoc2lERUdRRjJvdEFBQTJBZ1FnQXlBTVFRTnNRWkFZYWpZQ0FBd0JDeUFESUFnMkFnZ2dBeUFITmdJRUlBTWdEVFlDQUFzQ1FDQXVSUTBBSUFZZ0FTZ0N5QUVvQWhRaURFY0VRQ0FESUFVZ0NTQUNJQXhxSWdaQk15QUdRVE5JR3lJR1FRQWdCa0VBU2h0QkFuUkI0RDFxS0FJQWFrRUJha0VCZGlJSmFpSUZRVE1nQlVFelNCc2lCVUVBSUFWQkFFb2JRZEFYYWkwQUFEWUNGQ0FESUFRZ0NXb2lCRUV6SUFSQk0wZ2JJZ1JCQUNBRVFRQktHeUlFUVpBWGFpMEFBRFlDRUNBRElBUkJBMnhCa0JocU5nSU1EQUVMSUFNZ0NEWUNGQ0FESUFjMkFoQWdBeUFOTmdJTUN5QUFLQUlBSUR4cUlCUkJCblJxSUNwQkEzUnFJZ2tnTzJvaEJFRUFJUW9nQTBFd2FpRUdRUUFoQWdOQUlBWW9BZ1FpQlFSQUlBa2dCU0FqSUJZUUVDQUVJQVlvQWdRZ0l5QVdFQkFMSUFZb0FpUWlCUVJBSUFrZ0dtb2dCU0FqSUJZUUVDQUVJQnBxSUFZb0FpUWdJeUFXRUJBTElBWW9BaFFpQlFSQUlBbEJCR29nQlNBaUlCWVFFQ0FFUVFScUlBWW9BaFFnSWlBV0VCQUxJQVlvQWpRaUJRUkFJQWtnR21wQkJHb2dCU0FpSUJZUUVDQUVJQnBxUVFScUlBWW9BalFnSWlBV0VCQUxJQUloQlFKQUFrQWdCaWdDQUNJQ0lBWW9BZ2dpRDBjTkFDQUNJQVlvQWhCSERRQWdBaUFHS0FJWVJ3MEFJQUpGRFFFZ0NTQUNJQU1nQ2tFTWJHb2lBaUFXRUNzZ0JDQUdLQUlBSUFJZ0ZoQXJEQUVMQW44Z0FnUkFJQWtnQWlBRElBcEJER3hxSWdJZ0ZoQVNJQVFnQmlnQ0FDQUNJQllRRWlBR0tBSUlJUThMSUE4TEJFQWdDVUVDYWlBUElBTWdDa0VNYkdvaUFpQVdFQklnQkVFQ2FpQUdLQUlJSUFJZ0ZoQVNDeUFHS0FJUUlnSUVRQ0FKUVFScUlBSWdBeUFLUVF4c2FpSUNJQllRRWlBRVFRUnFJQVlvQWhBZ0FpQVdFQklMSUFZb0FoZ2lBa1VOQUNBSlFRWnFJQUlnQXlBS1FReHNhaUlDSUJZUUVpQUVRUVpxSUFZb0FoZ2dBaUFXRUJJTElBUWdKV29oQkNBSklDVnFJUWtnQmtGQWF5RUdRUUVoQWtFQ0lRb2dCVVVOQUFzTFFRQWdLa0VCYWlJRUlBUWdIMFlpQkJzaEtpQUJRZGdCYWlFQklBUWdPbW9pT2lBQUtBSUlTUTBBQ3dzZ0EwR3dBV29rQUF1Q0JRRUtmeU1BUVpBQmF5SUxKQUFDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSGFpQUVTdzBBSUFNZ0NHcEJBV29nQlVzTkFDQUZJUXdnQXlFT0RBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFjZ0NFRUJhaUlNSUFjUURDQUFJQVFnQld4cUlBc2dCeUFNYkdvZ0FpQURJQVFnQlNBSElBd2dCeEFNSUFzaEFDQUhJUVJCQUNFQ0N3SkFJQWhCQVhZaUJVVU5BQ0FIUVFGMklnTkZEUUJCRUNBSGF5RVFRUWdnQm1zaENTQUVRUUYwSWcwZ0Iyc2hFU0FBSUFKcUloSWdCQ0FPYkdvaEJ5QUJJUUlnQlNFSUEwQWdBeUVBQTBBZ0J5QU5haTBBQUNFS0lBSWdDU0FITFFBQWJDQUVJQWRxTFFBQUlnOGdCbXhxUVFOMFFTQnFRUVoyT2dBQUlBSWdDU0FQYkNBR0lBcHNha0VEZEVFZ2FrRUdkam9BQ0NBSFFRRnFJZ29nRFdvdEFBQWhEeUFDSUFrZ0J5MEFBV3dnQkNBS2FpMEFBQ0lLSUFac2FrRURkRUVnYWtFR2Rqb0FBU0FDSUFrZ0Ntd2dCaUFQYkdwQkEzUkJJR3BCQm5ZNkFBa2dBa0VDYWlFQ0lBZEJBbW9oQnlBQVFYOXFJZ0FOQUFzZ0J5QVJhaUVISUFJZ0VHb2hBaUFJUVg5cUlnZ05BQXNnQVVGQWF5RUNJQklnRENBT2FpQUViR29oQndOQUlBTWhBQU5BSUFjZ0RXb3RBQUFoQVNBQ0lBa2dCeTBBQUd3Z0JDQUhhaTBBQUNJSUlBWnNha0VEZEVFZ2FrRUdkam9BQUNBQ0lBZ2dDV3dnQVNBR2JHcEJBM1JCSUdwQkJuWTZBQWdnQjBFQmFpSUJJQTFxTFFBQUlRZ2dBaUFKSUFjdEFBRnNJQUVnQkdvdEFBQWlBU0FHYkdwQkEzUkJJR3BCQm5ZNkFBRWdBaUFCSUFsc0lBWWdDR3hxUVFOMFFTQnFRUVoyT2dBSklBSkJBbW9oQWlBSFFRSnFJUWNnQUVGL2FpSUFEUUFMSUFjZ0VXb2hCeUFDSUJCcUlRSWdCVUYvYWlJRkRRQUxDeUFMUVpBQmFpUUFDLzBFQVF0L0l3QkJrQUZySWd3a0FDQUhRUUZxSVFrQ1FBSkFJQUpCQUVnTkFDQURJQWhxSUFWTERRQWdBMEVBU0EwQUlBSWdDV29nQkVzTkFDQUVJUWtnQXlFTERBRUxJQUFnRENBQ0lBTWdCQ0FGSUFrZ0NDQUpFQXdnQUNBRUlBVnNhaUFNSUFnZ0NXeHFJQUlnQXlBRUlBVWdDU0FJSUFrUURDQU1JUUFnQ0NFRlFRQWhBZ3NDUUNBSVFRRjJJZ2hGRFFBZ0IwRUJkaUlFUlEwQVFSQWdCMnNoRGtFSUlBWnJJUW9nQ1VFQmRDQUhheUVQSUFBZ0Ftb2lFU0FKSUF0c2FpRUNJQUVoQXlBSUlRQURRQ0FFSVFjRFFDQUNRUUZxSUFscUxRQUFJUkFnQWlBSmFpMEFBQ0VOSUFNZ0FpMEFBU0lTSUFac0lBb2dBaTBBQUd4cVFRTjBRU0JxUVFaMk9nQUFJQU1nQmlBUWJDQUtJQTFzYWtFRGRFRWdha0VHZGpvQUNDQUNMUUFDSVEwZ0FrRUNhaUlDSUFscUxRQUFJUk1nQXlBR0lBMXNJQW9nRW14cVFRTjBRU0JxUVFaMk9nQUJJQU1nQmlBVGJDQUtJQkJzYWtFRGRFRWdha0VHZGpvQUNTQURRUUpxSVFNZ0IwRi9haUlIRFFBTElBSWdEMm9oQWlBRElBNXFJUU1nQUVGL2FpSUFEUUFMSUFGQlFHc2hBeUFSSUFVZ0Myb2dDV3hxSVFJRFFDQUVJUWNEUUNBQ1FRRnFJQWxxTFFBQUlRQWdBaUFKYWkwQUFDRUJJQU1nQWkwQUFTSUZJQVpzSUFvZ0FpMEFBR3hxUVFOMFFTQnFRUVoyT2dBQUlBTWdBQ0FHYkNBQklBcHNha0VEZEVFZ2FrRUdkam9BQ0NBQ0xRQUNJUUVnQWtFQ2FpSUNJQWxxTFFBQUlRc2dBeUFCSUFac0lBVWdDbXhxUVFOMFFTQnFRUVoyT2dBQklBTWdCaUFMYkNBQUlBcHNha0VEZEVFZ2FrRUdkam9BQ1NBRFFRSnFJUU1nQjBGL2FpSUhEUUFMSUFJZ0Qyb2hBaUFESUE1cUlRTWdDRUYvYWlJSURRQUxDeUFNUVpBQmFpUUFDN2tIQVFWL0l3QkJFR3NpQkNRQUFrQWdBQ0FCUVFCQnlBQVFCeUlERUFJaUFRMEFRUUVoQVNBREtBSUFRZjhCU3cwQUlBQWdBMEVFYWhBQ0lnRU5BRUVCSVFFZ0F5Z0NCRUVmU3cwQUlBQkJBUkFERFFBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNDQ0FBSUFSQkRHb1FBaUlCRFFBZ0F5QUVLQUlNUVFGcUlnRTJBZ3dnQVVFSVN3UkFRUUVoQVF3QkN3SkFJQUZCQWtrTkFDQUFJQU5CRUdvUUFpSUJEUUVnQXlnQ0VDSUJRUVpMSWdJRVFFRUJJUUVNQWdzZ0FnMEFBa0FDUUFKQUFrQWdBVUVCYXc0R0JBRUNBZ0lEQUFzZ0F5QURLQUlNSWdGQkFuUVFDaUlDTmdJVUlBSkZCRUJCLy84RElRRU1CUXNnQVVVTkEwRUFJUUlEUUNBQUlBUkJER29RQWlJQkRRVWdBeWdDRkNBQ1FRSjBhaUFFS0FJTVFRRnFOZ0lBSUFKQkFXb2lBaUFES0FJTVNRMEFDd3dEQ3lBRElBTW9BZ3dpQWtFQ2RFRjhhaUlCRUFvaUJUWUNHQ0FESUFFUUNpSUdOZ0ljUWYvL0F5RUJJQVZGRFFNZ0JrVU5BeUFDUVFGR0RRSkJBQ0VDQTBBZ0FDQUVRUXhxRUFJaUFRMEVJQUpCQW5RaUJTQURLQUlZYWlBRUtBSU1OZ0lBSUFBZ0JFRU1haEFDSWdFTkJDQURLQUljSUFWcUlBUW9BZ3cyQWdBZ0FrRUJhaUlDSUFNb0FneEJmMnBKRFFBTERBSUxRUUVoQVNBQVFRRVFBeUlDUVg5R0RRSWdBeUFDUVFGR05nSWdJQUFnQkVFTWFoQUNJZ0VOQWlBRElBUW9BZ3hCQVdvMkFpUU1BUXNnQUNBRVFReHFFQUlpQVEwQklBTWdCQ2dDREVFQmFpSUJOZ0lvSUFNZ0FVRUNkQkFLSWdJMkFpd2dBa1VFUUVILy93TWhBUXdDQ3lBQlJRMEFJQU1vQWd4QkFuUkJyRHRxS0FJQUlRWkJBQ0VDQTBBZ0FDQUdFQU1oQlNBREtBSXNJQUpCQW5ScUlBVTJBZ0JCQVNFQklBVWdBeWdDREU4TkFpQUNRUUZxSWdJZ0F5Z0NLRWtOQUFzTElBQWdCRUVNYWhBQ0lnRU5BRUVCSVFFZ0JDZ0NEQ0lDUVI5TERRQWdBeUFDUVFGcU5nSXdJQUFnQkVFTWFoQUNJZ0VOQUVFQklRRWdCQ2dDREVFZlN3MEFJQUJCQVJBREJFQU1BUXNnQUVFQ0VBTkJBa3NFUUF3QkN5QUFJQVJCQ0dvUUJTSUJEUUFnQkNnQ0NFRWFhaUlCUVROTEJFQkJBU0VCREFFTElBTWdBVFlDTkNBQUlBUkJDR29RQlNJQkRRQWdCQ2dDQ0VFYWFrRXpTd1JBUVFFaEFRd0JDeUFBSUFSQkNHb1FCU0lCRFFCQkFTRUJJQVFvQWdnaUFrRU1ha0VZU3cwQUlBTWdBallDT0NBQVFRRVFBeUlDUVg5R0RRQWdBeUFDUVFGR05nSThJQUJCQVJBRElnSkJmMFlOQUNBRElBSkJBVVkyQWtBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNSQ0FBRUI5QkFDRUJDeUFFUVJCcUpBQWdBUXZxQlFFSmZ3SkFJQUlvQXB3Q1JRUkFEQUVMUVFFaEJnTkFBa0FDUUNBQ0lBVkJGR3hxS0FLZ0FpSUVRUVZMRFFBZ0JFRUJhdzRGQUFBQUFBTUJDeUFGUVFGcUlRVU1BUXNMSUFRaEJnc0Nmd0pBSUFFb0FoQWlCRUVCVFFSQUlBUkJBV3NFUUNBREtBSUFRUVZHQkVBZ0FFSUFOd0lBSUFJb0FoUWhCVUVBSVFRTUF3c2dBQ2dDQUNJRUlBSW9BaFFpQlUwTkFpQUVJQVZySUFFb0FoUWlCMEVCZGtrTkFpQUFLQUlFSUFkcURBTUxRUUFoQlFKL1FRQWdBeWdDQUVFRlJnMEFHaUFBS0FJTUlnY2dBQ2dDQ0NBQ0tBSU1UUTBBR2lBQktBSU1JQWRxQ3lFSFFRQWhCQUovSUFFb0FpUWlDQVJBSUFJb0Fnd2dCMm9oQlFzZ0JTQURLQUlFSWdwRklBVkJBRWR4YXlJSkN3UkFJQWxCZjJvaUF5QURJQWh1SWdzZ0NHeHJJUU1MSUFnRVFDQUJLQUlvSVF4QkFDRUZBMEFnRENBRlFRSjBhaWdDQUNBRWFpRUVJQVZCQVdvaUJTQUlSdzBBQ3dzQ1FDQUpSUVJBUVFBaEJBd0JDeUFFSUF0c0lRUWdBU2dDS0NFSVFRQWhCUU5BSUFnZ0JVRUNkR29vQWdBZ0JHb2hCQ0FGUVFGcUlnVWdBMDBOQUFzTElBcEZCRUFnQVNnQ0hDQUVhaUVFQ3lBR1JRUkFJQUlvQWlBaEF5QUJLQUlnSVFFZ0FpZ0NIQ0VHSUFBZ0J6WUNEQ0FBSUFJb0FndzJBZ2dnQmlBQklBTnFJZ0JCSDNVZ0FIRWdCR3BxRHdzZ0FFSUFOd0lJUVFBUEMwRUFJUVZCQUNFRUlBTW9BZ0JCQlVjRVFDQUFLQUlNSVFVZ0FDZ0NDQ0FDS0FJTUlnUkxCRUFnQVNnQ0RDQUZhaUVGQ3lBRUlBVnFRUUYwSUFNb0FnUkZheUVFQ3lBR1JRUkFJQUFnQlRZQ0RDQUFJQUlvQWd3MkFnZ2dCQThMSUFCQ0FEY0NDRUVBRHdzQ1FDQUZJQVJORFFBZ0JTQUVheUFCS0FJVUlnRkJBWFpORFFBZ0FDZ0NCQ0FCYXd3QkN5QUFLQUlFQ3lFRUlBTW9BZ1JGQkVBZ0JDQUZhaUFDS0FJWUlnQkJIM1VnQUhGcUR3c2dBQ0FFTmdJRUlBSW9BaGdoQVNBR0JFQWdBRUVBTmdJRUlBQkJBQ0FCYXlBQlFSOTFjVFlDQUVFQUR3c2dBQ0FGTmdJQUlBUWdCV29nQVVFZmRTQUJjV29MdkFFQkNIOGdBZ1JBSUFGQmYyb2hCMEVBSUFGclFkZ0JiQ0VJUVFFZ0FXdEIyQUZzSVFrZ0FVRi9jMEhZQVd3aENnTkFJQUFnQmtIWUFXeHFJZ01nQTBHb2ZtcEJBQ0FFR3pZQ3lBRWdBd0ovSUFWRkJFQWdBMEVBTmdMTUFVRUFEQUVMSUFNZ0F5QUlhallDekFFZ0F5QUpha0VBSUFRZ0Iwa2JDellDMEFFZ0F5QURJQXBxUVFBZ0JCdEJBQ0FGR3pZQzFBRkJBQ0FFUVFGcUlnTWdBU0FEUmlJREd5RUVJQU1nQldvaEJTQUdRUUZxSWdZZ0FrY05BQXNMQzNjQkFuOUJBU0VDQWtBZ0FFRUJFQU5CZjBZTkFDQUJJQUJCQWhBRE5nSUVJQUVnQUVFRkVBTWlBRFlDQUNBQVFYNXFRUU5KRFFBQ1FDQUFRUXhMRFFCQkFTQUFkQ0lEUWNBOGNVVUVRQ0FEUWFBRGNVVU5BU0FBUVFaR0RRSWdBU2dDQkEwQkRBSUxJQUVvQWdRTkFRdEJBQ0VDQ3lBQ0M1SVRBUVovSUFBZ0FTZ0NBQ0lOTmdJQUlBQWdBQ2dDeEFGQkFXbzJBc1FCSUFJZ0JSQWRBa0FDUUFKQUFrQUNRQ0FOUVI5R0JFQWdBRUVBTmdJVUlBQW9Bc1FCUVFGTERRRWdBRUVjYWlFSklBRkJ5QUpxSVFSQkZ5RUJJQWNoQUFOQUlBbEJFRHNCQUNBQUlBUW9BZ0E2QUFBZ0FDQUVLQUlFT2dBQklBQWdCQ2dDQ0RvQUFpQUFJQVFvQWd3NkFBTWdBQ0FFS0FJUU9nQUVJQUFnQkNnQ0ZEb0FCU0FBSUFRb0FoZzZBQVlnQUNBRUtBSWNPZ0FISUFBZ0JDZ0NJRG9BQ0NBQUlBUW9BaVE2QUFrZ0FDQUVLQUlvT2dBS0lBQWdCQ2dDTERvQUN5QUFJQVFvQWpBNkFBd2dBQ0FFS0FJME9nQU5JQUFnQkNnQ09Eb0FEaUFBSUFRb0FqdzZBQThnQVNJRFFYOXFJUUVnQ1VFQ2FpRUpJQUJCRUdvaEFDQUVRVUJySVFRZ0F3MEFDeUFDSUFjUUd3d0VDeUFBUVJ4cUlRa2dEUVJBSUFrZ0FTa0NrQUkzQWdBZ0NTQUJLUUcrQWpjQkxpQUpJQUVwQXJnQ053SW9JQWtnQVNrQ3NBSTNBaUFnQ1NBQktRS29BamNDR0NBSklBRXBBcUFDTndJUUlBa2dBU2tDbUFJM0FnZ2dCQ2dDQUNFS0FrQWdBU2dDQ0NJTFJRMEFJQVFnQ2lBTGFpSUtOZ0lBSUFRZ0NrRi9UQVIvSUFwQk5Hb0ZJQXBCTkVnTkFTQUtRVXhxQ3lJS05nSUFDeUFBSUFvMkFoUWdBVUhJRDJvaERDQUJRY2dDYWlFRUFrQUNRQ0FBS0FJQVFRWk5CRUFnQ1M4QkFFVU5BVUVCSVFnZ0JDQUtRUUFnRENnQ0FCQUdSUTBDREFnTElBQXZBVXdFUUNBQlFjZ09haUFLRURFTFFiQTBJUXBCRHlFSUEwQWdDQ0VMSUFRZ0FTQUtLQUlBUVFKMGFrSElEbW9vQWdBaUNEWUNBQUpBQWtBZ0NFVUVRQ0FKTHdFQVJRMEJDMEVCSVFnZ0JDQUFLQUlVUVFFZ0RDZ0NBQkFHUlEwQkRBb0xJQVJCLy8vL0J6WUNBQXNnQ2tFRWFpRUtJQXRCZjJvaENDQU1RUVJxSVF3Z0NVRUNhaUVKSUFSQlFHc2hCQ0FMRFFBTERBUUxJQVJCLy8vL0J6WUNBQXNnQVVHSUEyb2hCQUpBSUFBdkFSNEVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSE1EMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJ5QU5xSVFRQ1FDQUFMd0VnQkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCMEE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUVlnRWFpRUVBa0FnQUM4QklnUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFkUVBhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVSElCR29oQkFKQUlBQXZBU1FFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUhZRDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCaUFWcUlRUUNRQ0FBTHdFbUJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQjNBOXFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFjZ0ZhaUVFQWtBZ0FDOEJLQVJBUVFFaENDQUVJQUFvQWhSQkFDQUJRZUFQYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJQm1vaEJBSkFJQUF2QVNvRVFFRUJJUWdnQkNBQUtBSVVRUUFnQVVIa0Qyb29BZ0FRQmtVTkFRd0hDeUFFUWYvLy93YzJBZ0FMSUFGQnlBWnFJUVFDUUNBQUx3RXNCRUJCQVNFSUlBUWdBQ2dDRkVFQUlBRkI2QTlxS0FJQUVBWkZEUUVNQndzZ0JFSC8vLzhITmdJQUN5QUJRWWdIYWlFRUFrQWdBQzhCTGdSQVFRRWhDQ0FFSUFBb0FoUkJBQ0FCUWV3UGFpZ0NBQkFHUlEwQkRBY0xJQVJCLy8vL0J6WUNBQXNnQVVISUIyb2hCQUpBSUFBdkFUQUVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSHdEMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJpQWhxSVFRQ1FDQUFMd0V5QkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCOUE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUWNnSWFpRUVBa0FnQUM4Qk5BUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFmZ1BhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVR0lDV29oQkFKQUlBQXZBVFlFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUg4RDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCeUFscUlRUUNRQ0FBTHdFNEJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQmdCQnFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFZZ0thaUVFQWtBZ0FDOEJPZ1JBUVFFaENDQUVJQUFvQWhSQkFDQUJRWVFRYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJRUdvaERDQUJRY2dLYWlFRURBSUxJQWxDQURjQ0FDQUpRZ0EzQVM0Z0NVSUFOd0lvSUFsQ0FEY0NJQ0FKUWdBM0FoZ2dDVUlBTndJUUlBbENBRGNDQ0NBQUlBUW9BZ0EyQWhRTUFnc2dBRUtRZ01DQWdJS0FDRGNCSENBQVFwQ0F3SUNBZ29BSU53RkVJQUJDa0lEQWdJQ0NnQWczQVR3Z0FFS1FnTUNBZ0lLQUNEY0JOQ0FBUXBDQXdJQ0Fnb0FJTndFc0lBQkNrSURBZ0lDQ2dBZzNBU1JCQUE4TElBQW9BaGdnQUNnQ0ZHb2lDMEV6SUF0Qk0wZ2JJZ3RCQUNBTFFRQktHMEVDZEVIZ1BXb29BZ0FoQ1FKQUlBQXZBVTVGQkVBZ0FDOEJVRVVOQVFzZ0FVR0lEMm9nQ1JBd0N5QUVJQUZCaUE5cUtBSUFJZ3MyQWdBQ1FBSkFJQXRGQkVBZ0FDOEJQRVVOQVF0QkFTRUlJQVFnQ1VFQklBd29BZ0FRQmtVTkFRd0VDeUFFUWYvLy93YzJBZ0FMSUFRZ0FTZ0NqQThpQ3pZQ1FDQUVRVUJySVFvQ1FBSkFJQXRGQkVBZ0FDOEJQa1VOQVF0QkFTRUlJQW9nQ1VFQklBd29BZ1FRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NrQThpQ3pZQ2dBRWdCRUdBQVdvaENnSkFBa0FnQzBVRVFDQUFRVUJyTHdFQVJRMEJDMEVCSVFnZ0NpQUpRUUVnRENnQ0NCQUdSUTBCREFRTElBcEIvLy8vQnpZQ0FBc2dCQ0FCS0FLVUR5SUxOZ0xBQVNBRVFjQUJhaUVLQWtBQ1FDQUxSUVJBSUFBdkFVSkZEUUVMUVFFaENDQUtJQWxCQVNBTUtBSU1FQVpGRFFFTUJBc2dDa0gvLy84SE5nSUFDeUFFSUFFb0FwZ1BJZ3MyQW9BQ0lBUkJnQUpxSVFvQ1FBSkFJQXRGQkVBZ0FDOEJSRVVOQVF0QkFTRUlJQW9nQ1VFQklBd29BaEFRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NuQThpQ3pZQ3dBSWdCRUhBQW1vaENnSkFBa0FnQzBVRVFDQUFMd0ZHUlEwQkMwRUJJUWdnQ2lBSlFRRWdEQ2dDRkJBR1JRMEJEQVFMSUFwQi8vLy9CellDQUFzZ0JDQUJLQUtnRHlJTE5nS0FBeUFFUVlBRGFpRUtBa0FDUUNBTFJRUkFJQUF2QVVoRkRRRUxRUUVoQ0NBS0lBbEJBU0FNS0FJWUVBWkZEUUVNQkFzZ0NrSC8vLzhITmdJQUN5QUVJQUVvQXFRUElnczJBc0FESUFSQndBTnFJUVFDUUFKQUlBdEZCRUFnQUM4QlNrVU5BUXRCQVNFSUlBUWdDVUVCSUF3b0Fod1FCa1VOQVF3RUN5QUVRZi8vL3djMkFnQUxJQTFCQmtrTkFDQUFJQUVnQWlBRklBWWdCeEJXSWdoRkRRRU1BZ3NnQUNBQklBTWdCU0FDSUFjUVZ5SUlEUUVMUVFBaENBc2dDQXVXSFFFSGZ5TUFRUkJySWdja0FDQUJRUUJCcUJBUUJ5RUZJQUFnQjBFRWFoQUNJUUVnQnlnQ0JDRUlBa0FDUUFKQUlBTkJmbW9pQTBFRlN3MEFBa0FnQTBFQmF3NEVBUUVCQVFBTFFRRWhBeUFCRFFJZ0NFRUdhaUlHUVI5TkRRRU1BZ3RCQVNFRElBRU5BU0FJUVFGcUlnWkJIMHNOQVFzZ0JTQUdOZ0lBQWtBZ0JrRWZSZ1JBQTBBZ0FDZ0NDQVJBSUFCQkFSQURSUTBCREFRTEN5QUZRY2dDYWlFR0EwQWdCeUFBUVFnUUF5SUJOZ0lFSUFGQmYwWU5BeUFHSUFFMkFnQWdCa0VFYWlFR0lBbEJBV29pQ1VHQUEwY05BQXNNQVF0QkFpQUdRUVpISUFaQkJra2JJUW9DUUFKQUlBWkJCRWtOQUNBR1FRVkxEUUFnQUNBSFFReHFFQUlOQVNBSEtBSU1JZ0ZCQTBzTkFTQUZJQUUyQXJBQklBQWdCMEVNYWhBQ0RRRWdCeWdDRENJQlFRTkxEUUVnQlNBQk5nSzBBU0FBSUFkQkRHb1FBZzBCSUFjb0Fnd2lBVUVEU3cwQklBVWdBVFlDdUFFZ0FDQUhRUXhxRUFJTkFTQUhLQUlNSWdGQkEwc05BU0FGSUFFMkFyd0JBa0FnQkVFQ1NRMEFJQVpCQlVZTkFDQUFJQWRCREdvZ0JFRUNTeUlCRUJjTkFpQUhLQUlNSWdnZ0JFOE5BaUFGSUFnMkFzQUJJQUFnQjBFTWFpQUJFQmNOQWlBSEtBSU1JZ2dnQkU4TkFpQUZJQWcyQXNRQklBQWdCMEVNYWlBQkVCY05BaUFIS0FJTUlnZ2dCRThOQWlBRklBZzJBc2dCSUFBZ0IwRU1haUFCRUJjTkFpQUhLQUlNSWdFZ0JFOE5BaUFGSUFFMkFzd0JDeUFISUFVb0FyQUJJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93SFFBU0FBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dIU0FTQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVlnQVEwQUN5QUhJQVVvQXJRQklnRkJBazBFZnlBQlFRSjBRZkEwYWlnQ0FBVkJBd3MyQWd4QkFDRUdBMEFnQUNBSFFRaHFFQVVpQXcwQ0lBVWdCa0VDZEdvaUFTQUhLQUlJT3dIZ0FTQUFJQWRCQ0dvUUJTSUREUUlnQVNBSEtBSUlPd0hpQVNBSElBY29BZ3dpQVVGL2FqWUNEQ0FHUVFGcUlRWWdBUTBBQ3lBSElBVW9BcmdCSWdGQkFrMEVmeUFCUVFKMFFmQTBhaWdDQUFWQkF3czJBZ3hCQUNFR0EwQWdBQ0FIUVFocUVBVWlBdzBDSUFVZ0JrRUNkR29pQVNBSEtBSUlPd0h3QVNBQUlBZEJDR29RQlNJRERRSWdBU0FIS0FJSU93SHlBU0FISUFjb0Fnd2lBVUYvYWpZQ0RDQUdRUUZxSVFZZ0FRMEFDeUFISUFVb0Fyd0JJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93R0FBaUFBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dHQ0FpQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVpCQUNFRElBRU5BQXNNQVF0QkFDRURJQXBCQWtzTkFBSkFBbjhDUUFKQUFrQWdDa0VCYXc0Q0JBRUFDeUFIUVFBMkFnZ2dCU0FBRUE4aUFVRWZkallDRENBQlFRQk9EUUVnQVVFQmRDRUdRUUFNQWdzZ0JFRUNUd1JBUVFNaEFTQUdRUU5OQkVBZ0JrRUNkRUg4Tkdvb0FnQWhBUXNnQkVFQ1N5RUxRUUVoQXdOQUlBQWdCMEVNYWlBTEVCY05CU0FIS0FJTUlnZ2dCRThOQlNBRklBbEJBblJxSUFnMkFwQUJJQUVpQ0VGL2FpRUJJQWxCQVdvaENTQUlEUUFMQzBFRElRTWdCa0VEVFFSQUlBWkJBblJCL0RScUtBSUFJUU1MUVFBaEJnTkFJQU1oQVNBQUlBZEJDR29RQlNJRERRUWdCU0FHUVFKMGFpSUVJQWNvQWdnN0FhQUJJQUFnQjBFSWFoQUZJZ01OQkNBRUlBY29BZ2c3QWFJQklBRkJmMm9oQXlBR1FRRnFJUVlnQVEwQUMwRUFJUU1NQXdzZ0JTQUJRUngyTmdKTUlBRkJCSFFoQmtFQkN5RURJQVVnQmtFZmRqWUNFQ0FGSUFaQkFFZ0VmeUFHUVFGMEJTQUZJQVpCSEhZMkFsQWdBMEVCYWlFRElBWkJCSFFMSWdGQkgzWTJBaFFnQlNBQlFRQklCSDhnQVVFQmRBVWdCU0FCUVJ4Mk5nSlVJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0lZSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNXQ0FEUVFGcUlRTWdBVUVFZEFzaUFVRWZkallDSENBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBbHdnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWlBZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pnSUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJa0lBVWdBVUVBU0FSL0lBRkJBWFFGSUFVZ0FVRWNkallDWkNBRFFRRnFJUU1nQVVFRWRBc2lBVUVmZGpZQ0tDQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pvSUFOQkFXb2hBeUFCUVFSMEN5RUdBa0FnQUNBRFFRTnNRUWhxRUF0QmYwWU5BQ0FIUVFFMkFnZ2dCU0FBRUE4aUFVRWZkallDTEFKL0lBRkJBRWdFUUNBQlFRRjBJUVpCQUF3QkN5QUZJQUZCSEhZMkFtd2dBVUVFZENFR1FRRUxJUU1nQlNBR1FSOTJOZ0l3SUFVZ0JrRUFTQVIvSUFaQkFYUUZJQVVnQmtFY2RqWUNjQ0FEUVFGcUlRTWdCa0VFZEFzaUFVRWZkallDTkNBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBblFnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWpnZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0o0SUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJOElBVkJRR3NnQVVFQVNBUi9JQUZCQVhRRklBVWdBVUVjZGpZQ2ZDQURRUUZxSVFNZ0FVRUVkQXNpQVVFZmRqWUNBQ0FGSUFGQkFFZ0VmeUFCUVFGMEJTQUZJQUZCSEhZMkFvQUJJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0pFSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNoQUVnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWtnZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNpQUVnQTBFQmFpRURJQUZCQkhRTElRWWdBQ0FEUVFOc1FRaHFFQXRCZjBZTkFDQUhJQVkyQWd3Z0IwRUNOZ0lJREFFTElBY2dCallDREVFQklRTU1BUXRCQVNFRElBQWdCMEVNYWhBQ0RRQWdCeWdDRENJQlFRTkxEUUFnQlNBQk5nS01BVUVBSVFNTElBTU5BUUpBSUFwQkFVY0VRQ0FBSUFkQkJHb2dDa1VRTFNJRERRTWdCU0FIS0FJRUlnRTJBZ1FnQVVVTkFnd0JDeUFGSUFVb0FnQWlBVUY1YWlJRFFRSjBRWEJ4SWdSQlVHb2dCQ0FEUVF0TEcwRVBRUUFnQVVFU1N4dHlOZ0lFQzBFQklRTWdBQ0FIUVF4cUVBVU5BU0FIS0FJTUlnRkJHbXBCTTBzTkFTQUZJQUUyQWdnZ0JVR1FBbW9oQ0NBRktBSUVJUVFDUUFKQUlBVW9BZ0JCQjBrRVFFRUFJUWxCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FJSUFsQkFuUnFRYmdOYWlBQUlBZ2dDVUVHZEdwQk9Hb2dBaUFKSUFnUURVRVFFQWtpQTBFUWRqWUNBQ0FEUVE5eERRUWdDQ0FKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FJSUFsQkFYSWlCa0VDZEdwQnVBMXFJQUFnQ0NBR1FRWjBha0U0YWlBQ0lBWWdDQkFOUVJBUUNTSURRUkIyTmdJQUlBTkJEM0VOQkNBSUlBWkJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBZ2dDVUVDY2lJR1FRSjBha0c0RFdvZ0FDQUlJQVpCQm5ScVFUaHFJQUlnQmlBSUVBMUJFQkFKSWdOQkVIWTJBZ0FnQTBFUGNRMEVJQWdnQmtFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQ0NBSlFRTnlJZ1pCQW5ScVFiZ05haUFBSUFnZ0JrRUdkR3BCT0dvZ0FpQUdJQWdRRFVFUUVBa2lBMEVRZGpZQ0FDQURRUTl4RFFRZ0JTQUdRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc01BUXRCQUNFSklBQWdCVUhJRG1vZ0FrRUFJQWdRRFVFUUVBa2lBMEVQY1EwQklBVWdBMEVFZGtIL0FYRTdBY0FDSUFWQmtBSnFJUVpCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FHSUFsQkFuUnFRYmdOYWlBQUlBWWdDVUVHZEdwQlBHb2dBaUFKSUFnUURVRVBFQWtpQTBFUGRqWUNBQ0FEUVE5eERRTWdCaUFKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FHSUFsQkFYSWlDa0VDZEdwQnVBMXFJQUFnQmlBS1FRWjBha0U4YWlBQ0lBb2dDQkFOUVE4UUNTSURRUTkyTmdJQUlBTkJEM0VOQXlBR0lBcEJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBWWdDVUVDY2lJS1FRSjBha0c0RFdvZ0FDQUdJQXBCQm5ScVFUeHFJQUlnQ2lBSUVBMUJEeEFKSWdOQkQzWTJBZ0FnQTBFUGNRMERJQVlnQ2tFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQmlBSlFRTnlJZ3BCQW5ScVFiZ05haUFBSUFZZ0NrRUdkR3BCUEdvZ0FpQUtJQWdRRFVFUEVBa2lBMEVQZGpZQ0FDQURRUTl4RFFNZ0JTQUtRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc0xJQVJCQTNFRVFDQUFJQVZCaUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIQ0FpQUFJQVZCbUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIRUFndEJBQ0VESUFSQkFuRkZEUUFnQUNBRlFjd0thaUFDUVJBZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCaUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzQUlnQUNBRlFZd0xhaUFDUVJFZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCakJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzZ0lnQUNBRlFjd0xhaUFDUVJJZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCa0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0QUlnQUNBRlFZd01haUFDUVJNZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0Z0lnQUNBRlFjd01haUFDUVJRZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1QUlnQUNBRlFZd05haUFDUVJVZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbkJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1Z0lnQUNBRlFjd05haUFDUVJZZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCb0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2QUlnQUNBRlFZd09haUFDUVJjZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCcEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2Z0lMSUFBZ0FDZ0NDQ0FBS0FJRUlBQW9BZ0JyUVFOMGFqWUNFQ0FERFFFTFFRQWhBd3NnQjBFUWFpUUFJQU1McFJRQkRIOENmeUFBS0FMSUFTSUhCRUFnQUNnQ0JDQUhLQUlFUmd3QkMwRUFDeUVLQWtBZ0JrVU5BQ0FLUlEwQVFRQWdDa0VDSUFBb0FzZ0JLQUlBSWdkQkJrY2dCMEVHU1J0QkFrWWJJUW9MQW44Z0FDZ0N6QUVpQndSQUlBQW9BZ1FnQnlnQ0JFWU1BUXRCQUFzaEJ3SkFJQVpGRFFBZ0IwVU5BRUVBSUFkQkFpQUFLQUxNQVNnQ0FDSUhRUVpISUFkQkJra2JRUUpHR3lFSEN3Si9JQUFvQXRRQklna0VRQ0FBS0FJRUlBa29BZ1JHREFFTFFRQUxJUWtDUUNBR1JRMEFJQWxGRFFCQkFpQUFLQUxVQVNnQ0FDSUFRUVpISUFCQkJra2JRUUpISVFrTElBcEJBRWNnQjBFQVIzRWlEU0FKUVFCSGNTRU9JQVZCQWtzaEQwRVFJUXNEUUFKQUlBOUZCRUFDUUFKQUFrQWdCVUVCYXc0Q0FRSUFDeUFCQW44Z0RRUkFJQVF0QUFNZ0JDMEFBaUFFTFFBQklBUXRBQUFnQXkwQUJDQURMUUFESUFNdEFBRWdBeTBBQW1wcWFtcHFhbXBCQkdwQkEzWWhCaUFETFFBSUlBTXRBQWNnQXkwQUJTQURMUUFHYW1wcVFRSnFRUUoyREFFTElBY0VRQ0FETFFBRUlBTXRBQU1nQXkwQUFTQURMUUFDYW1wcVFRSnFRUUoySVFZZ0F5MEFDQ0FETFFBSElBTXRBQVVnQXkwQUJtcHFha0VDYWtFQ2Rnd0JDeUFLUlFSQVFZQUJJUVpCZ0FFTUFRc2dCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYWtFQ2FrRUNkaUlHQzBIL0FYRkJnWUtFQ0d3aUFEWUFIQ0FCSUFaQi93RnhRWUdDaEFoc0lnWTJBQmdnQVNBQU5nQVVJQUVnQmpZQUVDQUJJQUEyQUF3Z0FTQUdOZ0FJSUFFZ0FEWUFCQ0FCSUFZMkFBQUNmeUFLQkVBZ0JDMEFCeUFFTFFBR0lBUXRBQVVnQkMwQUJHcHFhaUlHUVFKcVFRSjJJZ0FnQjBVTkFSb2dBeTBBQ0NBRExRQUhJQU10QUFZZ0JpQURMUUFGYW1wcWFrRUVha0VEZGd3QkN5QUhSUVJBUVlBQklRQkJnQUVNQVFzZ0F5MEFCQ0FETFFBRElBTXRBQUVnQXkwQUFtcHFha0VDYWtFQ2RpRUFJQU10QUFnZ0F5MEFCeUFETFFBRklBTXRBQVpxYW1wQkFtcEJBbllMSVFZZ0FTQUFRZjhCY1VHQmdvUUliQ0lBTmdBZ0lBRWdCa0gvQVhGQmdZS0VDR3dpQmpZQVBDQUJJQUEyQURnZ0FTQUdOZ0EwSUFFZ0FEWUFNQ0FCSUFZMkFDd2dBU0FBTmdBb0lBRWdCallBSkF3REN5QUtSUVJBUVFFUEN5QUJJQVF0QUFBNkFBQWdBU0FFTFFBQU9nQUJJQUVnQkMwQUFEb0FBaUFCSUFRdEFBQTZBQU1nQVNBRUxRQUFPZ0FFSUFFZ0JDMEFBRG9BQlNBQklBUXRBQUE2QUFZZ0FTQUVMUUFBT2dBSElBRWdCQzBBQVRvQUNDQUJJQVF0QUFFNkFBa2dBU0FFTFFBQk9nQUtJQUVnQkMwQUFUb0FDeUFCSUFRdEFBRTZBQXdnQVNBRUxRQUJPZ0FOSUFFZ0JDMEFBVG9BRGlBQklBUXRBQUU2QUE4Z0FTQUVMUUFDT2dBUUlBRWdCQzBBQWpvQUVTQUJJQVF0QUFJNkFCSWdBU0FFTFFBQ09nQVRJQUVnQkMwQUFqb0FGQ0FCSUFRdEFBSTZBQlVnQVNBRUxRQUNPZ0FXSUFFZ0JDMEFBam9BRnlBQklBUXRBQU02QUJnZ0FTQUVMUUFET2dBWklBRWdCQzBBQXpvQUdpQUJJQVF0QUFNNkFCc2dBU0FFTFFBRE9nQWNJQUVnQkMwQUF6b0FIU0FCSUFRdEFBTTZBQjRnQVNBRUxRQURPZ0FmSUFFZ0JDMEFCRG9BSUNBQklBUXRBQVE2QUNFZ0FTQUVMUUFFT2dBaUlBRWdCQzBBQkRvQUl5QUJJQVF0QUFRNkFDUWdBU0FFTFFBRU9nQWxJQUVnQkMwQUJEb0FKaUFCSUFRdEFBUTZBQ2NnQVNBRUxRQUZPZ0FvSUFFZ0JDMEFCVG9BS1NBQklBUXRBQVU2QUNvZ0FTQUVMUUFGT2dBcklBRWdCQzBBQlRvQUxDQUJJQVF0QUFVNkFDMGdBU0FFTFFBRk9nQXVJQUVnQkMwQUJUb0FMeUFCSUFRdEFBWTZBREFnQVNBRUxRQUdPZ0F4SUFFZ0JDMEFCam9BTWlBQklBUXRBQVk2QURNZ0FTQUVMUUFHT2dBMElBRWdCQzBBQmpvQU5TQUJJQVF0QUFZNkFEWWdBU0FFTFFBR09nQTNJQUVnQkMwQUJ6b0FPQ0FCSUFRdEFBYzZBRGtnQVNBRUxRQUhPZ0E2SUFFZ0JDMEFCem9BT3lBQklBUXRBQWM2QUR3Z0FTQUVMUUFIT2dBOUlBRWdCQzBBQnpvQVBpQUJJQVF0QUFjNkFEOE1BZ3NnQjBVRVFFRUJEd3NnQVNBRExRQUJPZ0FBSUFFZ0F5MEFBVG9BQ0NBQklBTXRBQUU2QUJBZ0FTQURMUUFCT2dBWUlBRWdBeTBBQVRvQUlDQUJJQU10QUFFNkFDZ2dBU0FETFFBQk9nQXdJQUVnQXkwQUFUb0FPQ0FCSUFNdEFBSTZBQUVnQVNBRExRQUNPZ0FKSUFFZ0F5MEFBam9BRVNBQklBTXRBQUk2QUJrZ0FTQURMUUFDT2dBaElBRWdBeTBBQWpvQUtTQUJJQU10QUFJNkFERWdBU0FETFFBQ09nQTVJQUVnQXkwQUF6b0FBaUFCSUFNdEFBTTZBQW9nQVNBRExRQURPZ0FTSUFFZ0F5MEFBem9BR2lBQklBTXRBQU02QUNJZ0FTQURMUUFET2dBcUlBRWdBeTBBQXpvQU1pQUJJQU10QUFNNkFEb2dBU0FETFFBRU9nQURJQUVnQXkwQUJEb0FDeUFCSUFNdEFBUTZBQk1nQVNBRExRQUVPZ0FiSUFFZ0F5MEFCRG9BSXlBQklBTXRBQVE2QUNzZ0FTQURMUUFFT2dBeklBRWdBeTBBQkRvQU95QUJJQU10QUFVNkFBUWdBU0FETFFBRk9nQU1JQUVnQXkwQUJUb0FGQ0FCSUFNdEFBVTZBQndnQVNBRExRQUZPZ0FrSUFFZ0F5MEFCVG9BTENBQklBTXRBQVU2QURRZ0FTQURMUUFGT2dBOElBRWdBeTBBQmpvQUJTQUJJQU10QUFZNkFBMGdBU0FETFFBR09nQVZJQUVnQXkwQUJqb0FIU0FCSUFNdEFBWTZBQ1VnQVNBRExRQUdPZ0F0SUFFZ0F5MEFCam9BTlNBQklBTXRBQVk2QUQwZ0FTQURMUUFIT2dBR0lBRWdBeTBBQnpvQURpQUJJQU10QUFjNkFCWWdBU0FETFFBSE9nQWVJQUVnQXkwQUJ6b0FKaUFCSUFNdEFBYzZBQzRnQVNBRExRQUhPZ0EySUFFZ0F5MEFCem9BUGlBQklBTXRBQWc2QUFjZ0FTQURMUUFJT2dBUElBRWdBeTBBQ0RvQUZ5QUJJQU10QUFnNkFCOGdBU0FETFFBSU9nQW5JQUVnQXkwQUNEb0FMeUFCSUFNdEFBZzZBRGNnQVNBRExRQUlPZ0EvREFFTElBNUZCRUJCQVE4TElBTXRBQVVnQXkwQUEyc2dBeTBBQmlBRExRQUNhMEVCZEdvZ0F5MEFCeUFETFFBQmEwRURiR29nQXkwQUNDSUFJQU10QUFBaUNXdEJBblJxUVJGc1FSQnFRUVYxSWdaQmZXd2hFQ0FBSUFRdEFBY2lER3BCQkhRZ0JDMEFCQ0FFTFFBQ2F5QU1JQWxyUVFKMGFpQUVMUUFGSUFRdEFBRnJRUUYwYWlBRUxRQUdJQVF0QUFCclFRTnNha0VSYkVFUWFrRUZkU0lSUVgxc2FrRVFhaUVKUVFnaERDQUJJUUFEUUNBQUlBa2dFR29pQ0VFRmRVR3dMbW90QUFBNkFBQWdBQ0FHSUFocUlnaEJCWFZCc0M1cUxRQUFPZ0FCSUFBZ0JpQUlhaUlJUVFWMVFiQXVhaTBBQURvQUFpQUFJQVlnQ0dvaUNFRUZkVUd3TG1vdEFBQTZBQU1nQUNBR0lBaHFJZ2hCQlhWQnNDNXFMUUFBT2dBRUlBQWdCaUFJYWlJSVFRVjFRYkF1YWkwQUFEb0FCU0FBSUFZZ0NHb2lDRUVGZFVHd0xtb3RBQUE2QUFZZ0FDQUdJQWhxUVFWMVFiQXVhaTBBQURvQUJ5QUpJQkZxSVFrZ0FFRUlhaUVBSUF4QmYyb2lEQTBBQ3dzZ0FTQUNJQXNRQ0NBQklBSkJRR3NnQzBFQmNoQUlJQUVnQWtHQUFXb2dDMEVDY2hBSUlBRWdBa0hBQVdvZ0MwRURjaEFJSUFKQmdBSnFJUUlnQkVFSWFpRUVJQU5CQ1dvaEF5QUJRVUJySVFFZ0MwRUVhaUVMSUJKQkFXb2lFa0VDUncwQUMwRUFDNkVWQWhoL0FuNENmd05BQW44Z0FDSUlJQlpCQTNSQnNEVnFLUUlBSWg2bkVCRWlDU0lHQkVBZ0NDZ0NCQ0FHS0FJRVJnd0JDMEVBQ3lFTkFrQWdCVVVOQUNBTlJRMEFRUUFnRFVFQ0lBa29BZ0FpQmtFR1J5QUdRUVpKRzBFQ1Joc2hEUXNDZnlBSUlCWkJBM1JCOERacUtRSUFJaCtuRUJFaUJ5SUdCRUFnQ0NnQ0JDQUdLQUlFUmd3QkMwRUFDeUVQQWtBZ0JVVU5BQ0FQUlEwQVFRQWdEMEVDSUFjb0FnQWlCa0VHUnlBR1FRWkpHMEVDUmhzaER3dEJBaUVNSUExQkFFY2dEMEVBUjNFaUVrRUJSZ1JBUVFJaEJnSi9RUUlnQ1NnQ0FDSUxRUVpISUF0QkJra2JSUVJBSUFrZ0hrSWdpS2RCL3dGeGFpMEFVaUVHQ3lBR0N3Si9RUUlnQnlnQ0FDSUpRUVpISUFsQkJra2JSUVJBSUFjZ0gwSWdpS2RCL3dGeGFpMEFVaUVNQ3lBTUN5QUdJQXhKR3lFTUN5QUNJQlpCQW5RaUNXb2lCaWdDREVVRVFDQUdLQUpNSWdZZ0JpQU1UMm9oREFzZ0NDQVdhaUFNT2dCU0FuOGdDQ0FXUVFOMFFiQTRhaWdDQUJBUklnWWlCd1JBSUFnb0FnUWdCeWdDQkVZTUFRdEJBQXNoRGdKQUlBVkZEUUFnRGtVTkFFRUFJQTVCQWlBR0tBSUFJZ1pCQmtjZ0JrRUdTUnRCQWtZYklRNExBbjhnQUNBV1FRTjBRZkE1YWlnQ0FCQVJJZ2dpQmdSQUlBQW9BZ1FnQmlnQ0JFWU1BUXRCQUFzaEVRSkFJQVZGRFFBZ0VVVU5BRUVBSUJGQkFpQUlLQUlBSWdoQkJrY2dDRUVHU1J0QkFrWWJJUkVMSUFsQjhDbHFLQUlBSVJjZ0NVR3dLV29vQWdBaEdBSi9RWVVLSUJaMlFRRnhJaHdFUUNBWFFRTnFJUWNnQkNBWGFpSUlRUUpxSVFZZ0NFRUJhaUVMSUFRTUFRc2dGMEVFZENBWWFpSUlRUzlxSVFjZ0FTQUlhaUlJUVI5cUlRWWdDRUVQYWlFTElBaEJmMm9oQ0NBQkN5RUpJQWNnQ1dvdEFBQWhDaUFHTFFBQUlSQWdDeTBBQUNFVElBZ3RBQUFoRkFKQVFUTWdGblpCQVhFRVFDQURJQmhxSWdjdEFBZ2hHeUFITFFBSElSa2dCeTBBQmlFVklBY3RBQVVoR2lBSExRQUVJUVlnQnkwQUF5RUxJQWN0QUFJaENTQUhMUUFCSVFnTUFRc2dBU0FYUVg5cUloMUJCSFFnR0dwcUlnY3RBQUFoQ0NBSExRQUhJUnNnQnkwQUJpRVpJQWN0QUFVaEZTQUhMUUFFSVJvZ0J5MEFBeUVHSUFjdEFBSWhDeUFITFFBQklRa2dIQVJBSUFRZ0hXb2hCd3dCQ3lBSFFYOXFJUWNMQWtBZ0RFRUhUUVJBSUFjdEFBQWhCd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQWdERUVCYXc0SEFRSURCQVVHQndBTElBOUZCRUJCQVE4TElBaEIvd0Z4SUF0Qi93RnhRUkIwSUFaQkdIUnljaUFKUWY4QmNVRUlkSEloRlNBSUlnd2hEU0FKSWc0aEVpQUxJZzhoQ2lBR0loRWhCd3dJQ3lBTlJRUkFRUUVQQ3lBS1FZR0NoQWhzSVJVZ0VFR0Jnb1FJYkNJTlFSaDJJUWNnRFVFUWRpRUtJQTFCQ0hZaEVpQVRRWUdDaEFoc0lneEJHSFloRVNBTVFSQjJJUThnREVFSWRpRU9JQlJCZ1lLRUNHd2lDRUVZZGlFR0lBaEJFSFloQ3lBSVFRaDJJUWtNQndzQ2Z5QVRJQlJxSUFwcUlCQnFJQVpCL3dGeGFpQUxRZjhCY1dvZ0NVSC9BWEZxSUFoQi93Rnhha0VFYWtFRGRpQVNEUUFhSUJNZ0ZHb2dDbW9nRUdwQkFtcEJBbllnRFEwQUdrR0FBU0FQUlEwQUdpQUdRZjhCY1NBTFFmOEJjV29nQ1VIL0FYRnFJQWhCL3dGeGFrRUNha0VDZGdzaUNFR0Jnb1FJYkNFVklBZ2lDU0lMSWdZaURDSU9JZzhpRVNJTkloSWlDaUVIREFZTElBOUZCRUJCQVE4TElBWkIvd0Z4SWcxQkFtb2lFU0FWSUFZZ0RodEIvd0Z4SWdkcUlCb2dCaUFPRzBIL0FYRWlDa0VCZEdwQkFuWWlEeUFaSUFZZ0RodEIvd0Z4SWd3Z0d5QUdJQTRiUWY4QmNTSUdRUU5zYWtFV2RFR0FnSUFFYWtHQWdJQjRjWElnQ2lBTWFpQUhRUUYwYWtFQ2FpSVFRUVowUVlEK0EzRnlJQVlnQjJvZ0RFRUJkR3BCQW1vaUJrRU9kRUdBZ1B3SGNYSWhGU0FHUVFKMklRY2dDMEgvQVhFaUJrRUNhaUlMSUFoQi93RnhhaUFKUWY4QmNTSUpRUUYwYWtFQ2RpRUlJQWtnRVdvZ0JrRUJkR3BCQW5ZaUNTRU1JQW9nQzJvZ0RVRUJkR3BCQW5ZaUN5RU9JQXNoRFNBUElnWWhFaUFRUVFKMkloRWhDZ3dGQzBFQklCRkZJQkpCQVhOeURRWWFJQlFnRTBFQmRHb2dFR3BCQW1vaURrRUdkRUdBL2dOeElBb2dFMEVDYWlJUGFpQVFRUUYwYWtFQ2RuSWdDRUgvQVhFaUNrRUNhaUlNSUJScUlBZEJBWFJxUVFKMklnaEJHSFJ5SUE4Z0ZFRUJkR29nQjJvaUVFRU9kRUdBZ1B3SGNYSWhGU0FKUWY4QmNTSVJRUUpxSWdrZ0JrSC9BWEZxSUF0Qi93RnhJZ3RCQVhScVFRSjJJUVlnRGtFQ2RpRU5JQWtnQ2tFQmRHb2dCMnBCQW5ZaUNTRVBJQkZCQVhRZ0Myb2dER3BCQW5ZaUN5RVJJQkJCQW5ZaURDRVNJQWdpRGlFS0lBa2hCd3dFQzBFQklCRkZJQkpCQVhOeURRVWFJQWhCL3dGeElncEJBbW9pRGlBTFFmOEJjU0lJSUFsQi93RnhJZ3RCQVhScWFrRUNkaUlQUVJoMElCUWdFMEVCZEdvZ0VHcEJBbXBCQW5aeUlBNGdGR29nQjBFQmRHb2lDVUVHZEVHQS9nTnhjaUFMUVFKcUlnNGdDa0VCZEdvZ0Iyb2lEVUVPZEVHQWdQd0hjWEloRlNBSVFRRnFJaEFnQmtIL0FYRWlER3BCQVhZaEJpQU1JQTVxSUFoQkFYUnFRUUoySVJFZ0NVRUNkaUVNSUExQkFuWWhEaUFUSUJSQkFYUnFJQWRxUVFKcVFRSjJJUTBnQnlBS2FrRUJha0VCZGlJSUlSSWdDaUFMYWtFQmFrRUJkaUlKSVFvZ0N5QVFha0VCZGlJTElRY01Bd3RCQVNBUlJTQVNRUUZ6Y2cwRUdpQVRRUUpxSWc0Z0Ntb2dFRUVCZEdwQkJuUkJnUDREY1NBUUlCTnFRUUZxSWc5QkQzUkJnSUQ4QjNFZ0ZFRUNhaUlNSUJOQkFYUnFJQkJxUVFKMkloSkJHSFJ5SUFvZ0VHcEJBV3BCQVhaeWNpRVZJQWhCL3dGeElnZ2dDMEgvQVhGcUlBbEIvd0Z4SWdsQkFYUnFRUUpxUVFKMklRWWdDU0FJUVFGMGFpQUhha0VDYWtFQ2RpRUxJQTlCQVhZaERTQUlJQXhxSUFkQkFYUnFRUUoySWhFaENTQVVRUUZxSWdvZ0IycEJBWFlpQ0NFUElBb2dFMnBCQVhZaURDRUtJQTRnRkVFQmRHb2dCMnBCQW5ZaURpRUhEQUlMSUE5RkJFQkJBUThMSUJvZ0JpQU9HMEgvQVhFaUNpQVpJQVlnRGh0Qi93RnhhaUFWSUFZZ0RodEIvd0Z4SWdkQkFYUnFRUlowSUF0Qi93RnhJZ3RCQW1vaURDQUthaUFHUWY4QmNTSUdRUUYwYWlJUFFRWjBja0dBZ0lBRWFrR0Evb040Y1NBR1FRSnFJZzBnQ1VIL0FYRWlDV29nQzBFQmRHcEJBbllpRG5JZ0J5QU5haUFLUVFGMGFpSU5RUTUwUVlDQS9BZHhjaUVWSUFjZ0NtcEJBV3BCQVhZaEJ5QU5RUUoySVJFZ0NTQUlRZjhCY1NJTmFrRUJha0VCZGlFSUlBOUJBblloRHlBTUlBMXFJQWxCQVhScVFRSjJJUXdnQ1NBTGFrRUJha0VCZGlJSklRMGdCa0VCYWlJR0lBdHFRUUYySWdzaEVpQUdJQXBxUVFGMklnWWhDZ3dCQ3lBTlJRUkFRUUVQQ3lBS1FRaDBJQXB5SUFwQkVIUnlJQXBCR0hSeUlSVWdFRUVDYWlJSElCUnFJQk5CQVhScVFRSjJJUWtnRTBFQmFpSUdJQlJxUVFGMklRZ2dCaUFRYWtFQmRpSUxJUXdnQ2lBVGFpQVFRUUYwYWtFQ2FrRUNkaUlHSVE0Z0NpQVFha0VCYWtFQmRpSVBJUTBnQnlBS1FRTnNha0VDZGlJUklSSWdDaUVIQ3lBQklCZEJCSFFnR0dwcUloQWdGVFlDTUNBUUlBMUIvd0Z4SUJKQi93RnhRUWgwY2lBS1FmOEJjVUVRZEhJZ0IwRVlkSEkyQWlBZ0VDQU1RZjhCY1NBT1FmOEJjVUVJZEhJZ0QwSC9BWEZCRUhSeUlCRkJHSFJ5TmdJUUlCQWdDRUgvQVhFZ0NVSC9BWEZCQ0hSeUlBdEIvd0Z4UVJCMGNpQUdRUmgwY2pZQ0FDQUJJQUlnRmtFR2RHcEJ5QUpxSUJZUUNDQVdRUUZxSWhaQkVFY05BQXRCQUFzTHhSSUJFSDhDZnlBQUtBTElBU0lIQkVBZ0FDZ0NCQ0FIS0FJRVJnd0JDMEVBQ3lFSEFrQWdCVVVOQUNBSFJRMEFRUUFnQjBFQ0lBQW9Bc2dCS0FJQUlnZEJCa2NnQjBFR1NSdEJBa1liSVFjTEFuOGdBQ2dDekFFaUNBUkFJQUFvQWdRZ0NDZ0NCRVlNQVF0QkFBc2hDQUpBSUFWRkRRQWdDRVVOQUVFQUlBaEJBaUFBS0FMTUFTZ0NBQ0lJUVFaSElBaEJCa2tiUVFKR0d5RUlDd0ovSUFBb0F0UUJJZ2tFUUNBQUtBSUVJQWtvQWdSR0RBRUxRUUFMSVFrQ1FDQUZSUTBBSUFsRkRRQkJBaUFBS0FMVUFTZ0NBQ0lGUVFaSElBVkJCa2tiUVFKSElRa0xBa0FDUUNBQUtBSUFRUUZxUVFOeElnQkJBazBFUUFKQUFrQUNRQ0FBUVFGckRnSUJBZ0FMSUFoRkJFQkJBUThMUVFBaEJTQUJJUUFEUUNBQUlBTXRBQUU2QUFBZ0FDQURMUUFDT2dBQklBQWdBeTBBQXpvQUFpQUFJQU10QUFRNkFBTWdBQ0FETFFBRk9nQUVJQUFnQXkwQUJqb0FCU0FBSUFNdEFBYzZBQVlnQUNBRExRQUlPZ0FISUFBZ0F5MEFDVG9BQ0NBQUlBTXRBQW82QUFrZ0FDQURMUUFMT2dBS0lBQWdBeTBBRERvQUN5QUFJQU10QUEwNkFBd2dBQ0FETFFBT09nQU5JQUFnQXkwQUR6b0FEaUFBSUFNdEFCQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3REN5QUhSUVJBUVFFUEMwRUFJUVVnQVNFQUEwQWdBQ0FFSUFWcUlnTXRBQUE2QUFBZ0FDQURMUUFBT2dBQklBQWdBeTBBQURvQUFpQUFJQU10QUFBNkFBTWdBQ0FETFFBQU9nQUVJQUFnQXkwQUFEb0FCU0FBSUFNdEFBQTZBQVlnQUNBRExRQUFPZ0FISUFBZ0F5MEFBRG9BQ0NBQUlBTXRBQUE2QUFrZ0FDQURMUUFBT2dBS0lBQWdBeTBBQURvQUN5QUFJQU10QUFBNkFBd2dBQ0FETFFBQU9nQU5JQUFnQXkwQUFEb0FEaUFBSUFNdEFBQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3Q0N5QUJBbjhDUUNBSFJRMEFJQWhGRFFBZ0JDMEFEeUFETFFBUUlBUXRBQTRnQXkwQUR5QUVMUUFOSUFNdEFBNGdCQzBBRENBRExRQU5JQVF0QUFzZ0F5MEFEQ0FFTFFBS0lBTXRBQXNnQkMwQUNTQURMUUFLSUFRdEFBZ2dBeTBBQ1NBRUxRQUhJQU10QUFnZ0JDMEFCaUFETFFBSElBUXRBQVVnQXkwQUJpQUVMUUFFSUFNdEFBVWdCQzBBQXlBRExRQUVJQVF0QUFJZ0F5MEFBeUFFTFFBQklBTXRBQUlnQXkwQUFTQUVMUUFBYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFrRVFha0VGZGd3QkN5QUhCRUFnQkMwQUR5QUVMUUFPSUFRdEFBMGdCQzBBRENBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSUlBUXRBQWNnQkMwQUJpQUVMUUFGSUFRdEFBUWdCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYW1wcWFtcHFhbXBxYW1wcWFrRUlha0VFZGd3QkMwR0FBU0FJUlEwQUdpQURMUUFRSUFNdEFBOGdBeTBBRGlBRExRQU5JQU10QUF3Z0F5MEFDeUFETFFBS0lBTXRBQWtnQXkwQUNDQURMUUFISUFNdEFBWWdBeTBBQlNBRExRQUVJQU10QUFNZ0F5MEFBU0FETFFBQ2FtcHFhbXBxYW1wcWFtcHFhbXBxUVFocVFRUjJDMEdBQWhBSEdnd0JDMEVCSVFBZ0IwVU5BU0FJUlEwQklBbEZEUUVnQkMwQUNDQUVMUUFHYXlBRUxRQVBJZ0FnQXkwQUFDSUZhMEVEZEdvZ0JDMEFDU0FFTFFBRmEwRUJkR29nQkMwQUNpQUVMUUFFYTBFRGJHb2dCQzBBQ3lBRUxRQURhMEVDZEdvZ0JDMEFEQ0FFTFFBQ2EwRUZiR29nQkMwQURTQUVMUUFCYTBFR2JHb2dCQzBBRGlBRUxRQUFhMEVIYkdwQkJXeEJJR3BCQm5VaEJ5QURMUUFKSUFNdEFBZHJJQU10QUFvZ0F5MEFCbXRCQVhScUlBTXRBQXNnQXkwQUJXdEJBMnhxSUFNdEFBd2dBeTBBQkd0QkFuUnFJQU10QUEwZ0F5MEFBMnRCQld4cUlBTXRBQTRnQXkwQUFtdEJCbXhxSUFNdEFBOGdBeTBBQVd0QkIyeHFJQU10QUJBaUF5QUZhMEVEZEdwQkJXeEJJR3BCQm5VaUJFRURkQ0VJSUFSQkIyd2hDU0FFUVFac0lRb2dCRUVGYkNFTElBUkJBMndoRENBRVFYMXNJUTBnQkVGN2JDRU9JQVJCZW13aER5QUVRWGxzSVJCQkFDQUVRUUYwSWhGcklSSkJBQ0FFUVFKMEloTnJJUlFnQUNBRGFrRUVkRUVRYWlFVlFRQWhCUU5BSUFFZ0JVRUVkQ0lBYWlBVklBVkJlV29nQjJ4cUlnTWdFR3BCQlhVaUJrSC9BU0FHUWY4QlNCc2lCa0VBSUFaQkFFb2JPZ0FBSUFFZ0FFRUJjbW9nQXlBUGFrRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFKeWFpQURJQTVxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJBM0pxSUFNZ0ZHcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFRWNtb2dBeUFOYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUVZ5YWlBRElCSnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkJuSnFJQU1nQkd0QkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVIY21vZ0EwRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFoeWFpQURJQVJxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJDWEpxSUFNZ0VXcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFS2Ntb2dBeUFNYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUXR5YWlBRElCTnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkRISnFJQU1nQzJwQkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVOY21vZ0F5QUtha0VGZFNJR1FmOEJJQVpCL3dGSUd5SUdRUUFnQmtFQVNoczZBQUFnQVNBQVFRNXlhaUFESUFscVFRVjFJZ1pCL3dFZ0JrSC9BVWdiSWdaQkFDQUdRUUJLR3pvQUFDQUJJQUJCRDNKcUlBTWdDR3BCQlhVaUFFSC9BU0FBUWY4QlNCc2lBRUVBSUFCQkFFb2JPZ0FBSUFWQkFXb2lCVUVRUncwQUN3dEJBQ0VBSUFFZ0FrRUFFQWdnQVNBQ1FVQnJRUUVRQ0NBQklBSkJnQUZxUVFJUUNDQUJJQUpCd0FGcVFRTVFDQ0FCSUFKQmdBSnFRUVFRQ0NBQklBSkJ3QUpxUVFVUUNDQUJJQUpCZ0FOcVFRWVFDQ0FCSUFKQndBTnFRUWNRQ0NBQklBSkJnQVJxUVFnUUNDQUJJQUpCd0FScVFRa1FDQ0FCSUFKQmdBVnFRUW9RQ0NBQklBSkJ3QVZxUVFzUUNDQUJJQUpCZ0FacVFRd1FDQ0FCSUFKQndBWnFRUTBRQ0NBQklBSkJnQWRxUVE0UUNDQUJJQUpCd0FkcVFROFFDQXNnQUF1N0NBRUhmd0pBSUFORkRRQWdBQ2dDQUNBRElBQW9BZ1FpQlc0aUNDQUZiQ0lFUVFoMGFpQURJQVJySWdkQkJIUnFJUVlnQlVFRWRDRUVJQUFvQWdnaENTQUZJQU5MSWdwRkJFQWdBU0FHSUFSQkFYSnJJZ010QUFBNkFBQWdBU0FETFFBQk9nQUJJQUVnQXkwQUFqb0FBaUFCSUFNdEFBTTZBQU1nQVNBRExRQUVPZ0FFSUFFZ0F5MEFCVG9BQlNBQklBTXRBQVk2QUFZZ0FTQURMUUFIT2dBSElBRWdBeTBBQ0RvQUNDQUJJQU10QUFrNkFBa2dBU0FETFFBS09nQUtJQUVnQXkwQUN6b0FDeUFCSUFNdEFBdzZBQXdnQVNBRExRQU5PZ0FOSUFFZ0F5MEFEam9BRGlBQklBTXRBQTg2QUE4Z0FTQURMUUFRT2dBUUlBRWdBeTBBRVRvQUVTQUJJQU10QUJJNkFCSWdBU0FETFFBVE9nQVRJQUVnQXkwQUZEb0FGQ0FCUVJWcUlRRUxJQWNFUUNBQ0lBWkJmMm9pQXkwQUFEb0FBQ0FDSUFNZ0JHb2lBeTBBQURvQUFTQUNJQU1nQkdvaUF5MEFBRG9BQWlBQ0lBTWdCR29pQXkwQUFEb0FBeUFDSUFNZ0JHb2lBeTBBQURvQUJDQUNJQU1nQkdvaUF5MEFBRG9BQlNBQ0lBTWdCR29pQXkwQUFEb0FCaUFDSUFNZ0JHb2lBeTBBQURvQUJ5QUNJQU1nQkdvaUF5MEFBRG9BQ0NBQ0lBTWdCR29pQXkwQUFEb0FDU0FDSUFNZ0JHb2lBeTBBQURvQUNpQUNJQU1nQkdvaUF5MEFBRG9BQ3lBQ0lBTWdCR29pQXkwQUFEb0FEQ0FDSUFNZ0JHb2lBeTBBQURvQURTQUNJQU1nQkdvaUF5MEFBRG9BRGlBQ0lBTWdCR290QUFBNkFBOGdBa0VRYWlFQ0N5QUFLQUlBSUFVZ0NXd2lCRUVJZEdvZ0NDQUZRUU4wSWdCc1FRTjBhaUFIUVFOMGFpRUdJQUJCK1AvLy93ZHhJUUFnQ2tVRVFDQUJJQVlnQUVFQmNtc2lBeTBBQURvQUFDQUJJQU10QUFFNkFBRWdBU0FETFFBQ09nQUNJQUVnQXkwQUF6b0FBeUFCSUFNdEFBUTZBQVFnQVNBRExRQUZPZ0FGSUFFZ0F5MEFCam9BQmlBQklBTXRBQWM2QUFjZ0FTQURRUWhxSWdNdEFBQTZBQWdnQVNBRVFRWjBJQU5xSWdOQmVHb3RBQUE2QUFrZ0FTQURRWGxxTFFBQU9nQUtJQUVnQTBGNmFpMEFBRG9BQ3lBQklBTkJlMm90QUFBNkFBd2dBU0FEUVh4cUxRQUFPZ0FOSUFFZ0EwRjlhaTBBQURvQURpQUJJQU5CZm1vdEFBQTZBQThnQVNBRFFYOXFMUUFBT2dBUUlBRWdBeTBBQURvQUVRc2dCMFVOQUNBQ0lBWkJmMm9pQVMwQUFEb0FBQ0FDSUFBZ0FXb2lBUzBBQURvQUFTQUNJQUFnQVdvaUFTMEFBRG9BQWlBQ0lBQWdBV29pQVMwQUFEb0FBeUFDSUFBZ0FXb2lBUzBBQURvQUJDQUNJQUFnQVdvaUFTMEFBRG9BQlNBQ0lBQWdBV29pQVMwQUFEb0FCaUFDSUFBZ0FXb2lBUzBBQURvQUJ5QUNJQUFnQVdvZ0JDQUZhMEVHZEdvaUFTMEFBRG9BQ0NBQ0lBQWdBV29pQVMwQUFEb0FDU0FDSUFBZ0FXb2lBUzBBQURvQUNpQUNJQUFnQVdvaUFTMEFBRG9BQ3lBQ0lBQWdBV29pQVMwQUFEb0FEQ0FDSUFBZ0FXb2lBUzBBQURvQURTQUNJQUFnQVdvaUFTMEFBRG9BRGlBQ0lBQWdBV290QUFBNkFBOExDNjhCQVFGL0l3QkIwQUJySWdZa0FDQUNJQVpCSUdvZ0JpQURFRlVDUUFKQVFRSWdBQ2dDQUNJRFFRWkhJQU5CQmtrYlFRRkdCRUFnQUNBRklBRkJ5QUpxSUFaQklHb2dCaUFFRUZRaUEwVU5BUXdDQ3lBQUlBVWdBU0FHUVNCcUlBWWdCQkJUSWdNTkFRc2dBQ0FGUVlBQ2FpQUJRY2dLYWlBR1FUVnFJQVpCRUdvZ0FTZ0NqQUVnQkJCU0lnTU5BRUVBSVFNZ0FDZ0N4QUZCQVVzTkFDQUNJQVVRR3dzZ0JrSFFBR29rQUNBREM2TXFBU1IvSXdCQklHc2lFQ1FBSUJBZ0JDZ0NCQ0lJTmdJTUlCQWdCQ2dDQ0RZQ0VDQURJQWh1SWdaQkJIUWhGQ0FESUFZZ0NHeHJRUVIwSVJVQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFBb0FnQWlCa0VEVFFSQUFrQUNRQUpBSUFaQkFtc09BZ0VDQUFzZ0FTZ0NrQUVoRXlBQUtBSUVJUTVCZnlFUEFuOGdBQ2dDeUFFaUNVVUVRRUVBSVFoQmZ3d0JDMEVBSVFoQmZ5QUpLQUlFSUE1SERRQWFRUUVoRWtGL0lBa29BZ0JCQlVzTkFCb2dDU2dDbUFFaUNFRVFkaUVISUFrb0FtZ0xJUTBnQUNnQ3pBRWlDVVVOQ0NBSktBSUVJQTVIRFFoQkFTRVdJQWtvQWdCQkJVc05DQ0FKS0FLc0FTSVJRUkIySVFvZ0NTZ0NiQ0VQREFnTElBRW9BcEFCSVJNZ0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhDMEYvSVFjQ1FDQUFLQUxNQVNJR1JRMEFJQXNnQmlnQ0JFY0VRQXdCQzBFQklSSWdCaWdDQUVFRlN3MEFJQVlvQXF3QklnbEJFSFloQ2lBR0tBSnNJUWNMSUFjZ0UwWUVRQ0FLSVFjZ0NTRUdEQWNMUVg4aER3SkFBa0FDUUNBQUtBTElBU0lJUlFSQVFRQWhCd3dCQzBFQUlRY2dDQ2dDQkNBTFJnMEJDMEVBSVFZTUFRdEJBU0VYSUFnb0FnQkJCVXNFUUVFQUlRWU1BUXNnQ0NnQ21BRWlCa0VRZGlFSElBZ29BbWdoRHdzQ1FBSkFJQUFvQXRBQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVTBOQVF3R0N3SkFJQUFvQXRRQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVXNOQmlBSUtBSndJUllnQ0NnQ3dBRWhDQXdIQzBFQUlRaEJmeUVXSUJJTkJpQVhSUTBHREFjTElBZ29BbXdoRmlBSUtBS3NBU0VJREFVTElBRW9BcEFCSVE4Z0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhCa0YvSVFjQ1FDQUFLQUxJQVNJS1JRUkFRUUFoQ0F3QkMwRUFJUWdnQmlBS0tBSUVSd1JBREFFTFFRRWhFU0FLS0FJQVFRVkxEUUFnQ2lnQ21BRWlDVUVRZGlFSUlBb29BbWdoQndzZ0J5QVBSZzBCQW44Q2Z3SkFBa0FnQUNnQ3pBRWlCMFVOQUNBSEtBSUVJQVpIRFFBZ0J5Z0NBRUVGU3cwQklBY29BbkFoRVNBSEtBSzhBU0VLSUFjb0Ftd2hFaUFIS0FLc0FTSUdRUkIyREFNTEFrQWdBQ2dDMUFFaUIwVU5BQ0FIS0FJRUlBWkhEUUJCQUNFR1FYOGhFaUFIS0FJQVFRVkxCRUJCZnlFUlFRQU1Bd3NnQnlnQ2NDRVJJQWNvQXNBQkRBSUxJQkVOQkF0QmZ5RVJRWDhoRWtFQUlRWkJBQXNoQ2tFQUN5RUhJQThnRWtZaUN5QVBJQkZHYWtFQlJ3UkFJQWNnQ0NBSFFSQjBRUkIxSWdzZ0NFRVFkRUVRZFNJT1NpSUlHeUlISUE0Z0N5QU9JQXNnRGtnYklBZ2JJZ2dnQ2tFUWRTSUxJQWdnQzBvYklBZEJFSFJCRUhVZ0MwZ2JJUWNnQmlBSklBWkJFSFJCRUhVaUN5QUpRUkIwUVJCMUlnbEtJZ1liSWdoQi8vOERjU0FKSUFzZ0NTQUxJQWxJR3lBR0d5SUdJQXBCRUhSQkVIVWlDU0FHSUFsS0d5QUlRUkIwUVJCMUlBbElHeUVHREFNTElBc05BaUFLUVJCMklRY2dDaUVHREFJTFFRRWhHeUFBUVlRQmFpRWNBMEFDZnlBQklCMUJBblFpSG1vaUlDSWtLQUt3QVNJR1FRSk5CRUFnQmtFQ2RFR2NOV29vQWdBTUFRdEJCQXNoSWlBQUlCNXFJZ1lnSUNnQ3dBRTJBbVFnQmlBQ0lDQW9Bc0FCRUJRaUJqWUNkQ0FHUlEwSUlDSUVRQ0FjSUIxQkJIUWlIMm9pSlNFbUlCd2dIMEVNY21vaUowRUNhaUVvSUJ3Z0gwRUljbW9pS1NFUklCd2dIMEVFY21vaUZpRVRRUUFoQmdOQUlBRWdIMm9nQmtFQ2RHb2lDQzhCMGdFaER5QUlMd0hRQVNFT0lDQW9Bc0FCSVNGQmZ5RVhBbjhnQUNBZFFRZDBJQ1FvQXJBQklpTkJCWFJxSUFaQkEzUnFJaHBCc0JscUtBSUFFQkVpQ1VVRVFFRUFJUXhCQUNFSVFRQWhDa0YvREFFTFFRQWhERUVBSVFoQkFDRUtRWDhnQ1NnQ0JDQUFLQUlFUncwQUdrRUJJUXBCZnlBSktBSUFRUVZMRFFBYUlBa2dHa0cwR1dvdEFBQWlCMEVDZEdvb0FvUUJJZ2hCRUhZaERDQUpJQWRCL0FGeGFpZ0NaQXNoRFFKQUFrQUNRQ0FBSUJwQnNCMXFLQUlBRUJFaUdFVUVRRUVBSVFrTUFRdEJBQ0VKSUJnb0FnUWdBQ2dDQkVZTkFRdEJBQ0VTUVFBaEN3d0JDMEVCSVFzZ0dDZ0NBRUVGU3dSQVFRQWhFZ3dCQ3lBWUlCcEJ0QjFxTFFBQUlnZEJBblJxS0FLRUFTSVNRUkIySVFrZ0dDQUhRZndCY1dvb0FtUWhGd3NDUUFKQUFrQUNRQUpBSUFBZ0drR3dJV29vQWdBUUVTSVpSUTBBSUJrb0FnUWdBQ2dDQkVjTkFDQVpLQUlBUVFWTkRRRU1BZ3NDUUNBQUlCcEJzQ1ZxS0FJQUVCRWlHVVVOQUNBWktBSUVJQUFvQWdSSERRQWdHU2dDQUVFRlN3MENJQmtnR2tHMEpXb3RBQUFpQjBIOEFYRnFLQUprSVJnZ0dTQUhRUUowYWlnQ2hBRWhCd3dEQzBFQUlRZEJmeUVZSUFwRkRRSWdDdzBDREFNTElCa2dHa0cwSVdvdEFBQWlCMEg4QVhGcUtBSmtJUmdnR1NBSFFRSjBhaWdDaEFFaEJ3d0JDMEVBSVFkQmZ5RVlDeUFYSUNGR0lnb2dEU0FoUmlJTGFpQVlJQ0ZHYWtFQlJ3UkFJQWtnRENBSlFSQjBRUkIxSWdzZ0RFRVFkRUVRZFNJTVNpSUpHeUlLSUF3Z0N5QU1JQXNnREVnYklBa2JJZ2tnQjBFUWRTSUxJQWtnQzBvYklBcEJFSFJCRUhVZ0MwZ2JJUXdnRWlBSUlCSkJFSFJCRUhVaUNpQUlRUkIwUVJCMUlndEtJZ2diSWdsQi8vOERjU0FMSUFvZ0N5QUtJQXRJR3lBSUd5SUlJQWRCRUhSQkVIVWlCeUFJSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVJREFFTElBZ2dFaUFMR3lFSUlBd2dDU0FMR3lFTUlBc05BQ0FLRFFBZ0IwRVFkaUVNSUFjaENBc2dDQ0FPYWlJS1FSQjBRUkIxUVlCQWEwSC8vd0JMRFFvZ0RDQVBhaUlKUVJCMFFSQjFRWUFRYWtIL0gwc05DaUFqUVFOTkJFQUNmd0pBQWtBQ1FBSkFJQ05CQVdzT0F3RUNBd0FMSUNVZ0Nqc0JBQ0FtSUFrN0FRSWdGaUFLT3dFQUlCTWdDVHNCQWlBcElBbzdBUUFnRVNBSk93RUNJQ2NnQ2pzQkFDQW9EQU1MSUJ3Z0JrRUJkQ0FlYWtFQ2RDSUhhaUlJSUFrN0FRSWdDQ0FLT3dFQUlCd2dCMEVFY21vaUNDQUtPd0VBSUFoQkFtb01BZ3NnQUNBR0lCNXFRUUowYWlJSUlBbzdBWXdCSUFnZ0NUc0JoZ0VnQ0NBS093R0VBU0FJUVk0QmFnd0JDeUFBSUFZZ0htcEJBblJxSWdnZ0Nqc0JoQUVnQ0VHR0FXb0xJQWs3QVFBTElBWkJBV29pQmlBaVJ3MEFDd3NnSFVFQmFpSWRRUVJIRFFBTFFRQWhEQU5BSUJBZ0FDQU1RUUowSWdKcUtBSjBOZ0lJSUF4QkFVdEJBM1FoQ1NBTVFRTjBRUWh4SVFjQ1FDQUJJQUpxS0FLd0FTSUNRUUpOQkVBQ1FBSkFBa0FnQWtFQmF3NENBUUlBQ3lBRklBQWdERUVFZEdwQmhBRnFJQkJCQ0dvZ0ZTQVVJQWNnQ1VFSVFRZ1FEZ3dEQ3lBRklBQWdERUVFZEdvaUFrR0VBV29nRUVFSWFpQVZJQlFnQnlBSlFRaEJCQkFPSUFVZ0FrR01BV29nRUVFSWFpQVZJQlFnQnlBSlFRUnlRUWhCQkJBT0RBSUxJQVVnQUNBTVFRUjBhaUlDUVlRQmFpQVFRUWhxSUJVZ0ZDQUhJQWxCQkVFSUVBNGdCU0FDUVlnQmFpQVFRUWhxSUJVZ0ZDQUhRUVJ5SUFsQkJFRUlFQTRNQVFzZ0JTQUFJQXhCQkhScUlnaEJoQUZxSUJCQkNHb2dGU0FVSUFjZ0NVRUVRUVFRRGlBRklBaEJpQUZxSUJCQkNHb2dGU0FVSUFkQkJISWlCaUFKUVFSQkJCQU9JQVVnQ0VHTUFXb2dFRUVJYWlBVklCUWdCeUFKUVFSeUlnSkJCRUVFRUE0Z0JTQUlRWkFCYWlBUVFRaHFJQlVnRkNBR0lBSkJCRUVFRUE0TElBeEJBV29pREVFRVJ3MEFDd3dHQ3lBSUlRY2dDU0VHQzBFQklSc2dCaUFNYWlJSVFSQjBRUkIxUVlCQWEwSC8vd0JMRFFVZ0J5QU5haUlHUVJCMFFSQjFRWUFRYWtIL0gwc05CU0FDSUE4UUZDSUhSUTBGSUFBZ0Jqc0JzZ0VnQUNBSU93R3dBU0FBSUFjMkFuUWdBQ0FQTmdKa0lBQWdCellDZkNBQUlBODJBbXdnQUNBQUtBS3dBU0lHTmdLc0FTQUFJQVkyQXFnQklBQWdCallDcEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FCS0FLVUFTRU9JQUV2QWFZQklRd2dBUzhCcEFFaEN5QUFLQUlFSVFrQ1FBSkFJQUFvQXRBQklnZEZEUUFnQnlnQ0JDQUpSdzBBUVFFaEVTQUhLQUlBUVFWTEJFQkJmeUVJUVFBaEJ3d0NDeUFIS0FKc0lRZ2dCeWdDckFFaEJ3d0JDMEYvSVFoQkFDRUhJQUFvQXN3QklncEZCRUJCQUNFUkRBRUxJQWtnQ2lnQ0JFY0VRRUVBSVJFTUFRdEJBU0VSSUFvb0FnQkJCVXNOQUNBS0tBSnNJUWdnQ2lnQ3NBRWhCd3NDUUNBSUlBNUdSUVJBSUFaQkVIWWhDQUovQWtBQ1FDQUFLQUxNQVNJTlJRMEFJQTBvQWdRZ0NVY05BQ0FOS0FJQVFRVkxEUUVnRFNnQ3ZBRWlFVUVRZGlFS0lBMG9BbkFNQWdzZ0VVVU5Bd3RCQUNFUlFRQWhDa0YvQ3lFTklBNGdEMFlpQ1NBTklBNUdha0VCUndSQUlBb2dDQ0FLUVJCMFFSQjFJZzBnQ0VFUWRFRVFkVW9pQ0JzaUNTQUdRUkIxSWdvZ0RTQUtJQW9nRFVvYklBZ2JJZ2dnQjBFUWRTSUtJQWdnQ2tvYklBbEJFSFJCRUhVZ0NrZ2JJUWdnRVNBR0lCRkJFSFJCRUhVaUNpQUdRUkIwUVJCMUlnMUtJZ1liSWdsQi8vOERjU0FOSUFvZ0RTQU5JQXBLR3lBR0d5SUdJQWRCRUhSQkVIVWlCeUFHSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVHREFJTElBa05BU0FOSUE1R0JFQWdFVUgvL3dOeElBcEJFSFJ5SVFZZ0NpRUlEQUlMQ3lBSFFSQjJJUWdnQnlFR0N5QUdJQXRxSWdkQkVIUkJFSFZCZ0VCclFmLy9BRXNOQlNBSUlBeHFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MEZJQUlnRGhBVUlnSkZEUVVnQUNBR093SENBU0FBSUFjN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKNElBQWdEallDY0NBQUlBNDJBbWdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0tnQVNBQUlBWTJBcHdCSUFBZ0JqWUNtQUVnQUVHVUFXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVJUVJBUURpQVFJQUFvQW5nMkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFoQkFFRUlRUkFRRGd3RUMwRUFJUWhCZnlFV0N5QVBJQk5HSWdzZ0V5QVdSbXBCQVVjRVFDQUtJQWNnQ2tFUWRFRVFkU0lMSUFkQkVIUkJFSFVpRGtvaUJ4c2lDaUFPSUFzZ0RpQUxJQTVJR3lBSEd5SUhJQWhCRUhVaUN5QUhJQXRLR3lBS1FSQjBRUkIxSUF0SUd5RUhJQWtnQmlBSlFSQjBRUkIxSWdvZ0JrRVFkRUVRZFNJTFNpSUdHeUlKUWYvL0EzRWdDeUFLSUFzZ0NpQUxTQnNnQmhzaUJpQUlRUkIwUVJCMUlnZ2dCaUFJU2hzZ0NVRVFkRUVRZFNBSVNCc2hCZ3dCQ3lBTERRQWdDRUVRZGlFSElBZ2hCZ3RCQVNFYklBWWdER29pQ0VFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0RXb2lCa0VRZEVFUWRVR0FFR3BCL3g5TERRSWdBaUFURUJRaUIwVU5BaUFBSUFZN0FhSUJJQUFnQ0RzQm9BRWdBQ0FITmdKMElBQWdFellDWkNBQUlBYzJBbmdnQUNBVE5nSm9JQUFnQUNnQ29BRWlEellDbkFFZ0FDQVBOZ0tZQVNBQUlBODJBcFFCSUFBZ0R6WUNrQUVnQUNBUE5nS01BU0FBSUE4MkFvZ0JJQUFnRHpZQ2hBRWdBU2dDbEFFaERpQUJMd0dtQVNFTklBRXZBYVFCSVF3Q2Z3SkFBa0FDUUNBQUtBTElBU0lHQkVBZ0JpZ0NCQ0FBS0FJRVJnUkFJQVlvQWdCQkJVMEVRQ0FHS0FLNEFTSUxRUkIySVFjZ0JpZ0NjQ0FPUncwRUlBc2hDUXdEQzBGL0lSSkJBQ0VKUVFBaEIwRUFJUXRCQUNFS0lBNUJmMFlOQWd3RUMwRi9JUkpCQUNFSlFRQWhCMEVBSVF0QkFDRUtJQTVCZjBZTkFRd0RDMEYvSVJKQkFDRUpRUUFoQjBFQUlRdEJBQ0VLSUE1QmYwY05BZ3NnQ1VILy93TnhJQWRCRUhSeURBSUxJQVlvQW1naEVpQUdLQUtnQVNFS0lBY2hDUXNnRDBFUWRpRUlJQTRnRTBZaUJpQU9JQkpHYWtFQlJ3UkFJQWdnQ1NBSlFSQjBRUkIxSWdrZ0NFRVFkRUVRZFVnaUJ4c2lDQ0FKSUE5QkVIVWlCaUFKSUFZZ0NVZ2JJQWNiSWdZZ0NrRVFkU0lISUFZZ0Iwb2JJQWhCRUhSQkVIVWdCMGdiSVFjZ0R5QUxJQXRCRUhSQkVIVWlDeUFQUVJCMFFSQjFJZ2xJSWdZYklnaEIvLzhEY1NBTElBa2dDeUFKSUF0SUd5QUdHeUlHSUFwQkVIUkJFSFVpQ1NBR0lBbEtHeUFJUVJCMFFSQjFJQWxJR3d3QkN5QUlJQXBCRUhZZ0Joc2hCeUFQSUFvZ0Joc0xJQXhxSWdoQkVIUkJFSFZCZ0VCclFmLy9BRXNOQWlBSElBMXFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MENJQUlnRGhBVUlnSkZEUUlnQUNBR093SENBU0FBSUFnN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKOElBQWdEallDY0NBQUlBNDJBbXdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0t3QVNBQUlBWTJBcXdCSUFBZ0JqWUNxQUVnQUVHa0FXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVRUVFnUURpQVFJQUFvQW53MkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFCQkNFRVFRUWdRRGd3QkN3SkFJQVpGQkVBZ0VrVUVRRUVBSVFrTUFnc2dGa1VFUUVFQUlRa01BZ3NnQ0VILy93TnhJQWRCRUhSeUlBMXlSUVJBUVFBaENRd0NDMEVBSVFrZ0VVSC8vd054SUFwQkVIUnlJQTl5UlEwQkN5QUJMd0dpQVNFTElBRXZBYUFCSVFrQ1FBSkFBa0FDUUFKQUlBQW9BdEFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVME5BUXdDQ3dKQUlBQW9BdFFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVc05BaUFHS0FKd0lSY2dCaWdDd0FFaERBd0RDMEYvSVJjZ0VrVU5BaUFXRFFJTUF3c2dCaWdDYkNFWElBWW9BcXdCSVF3TUFRdEJmeUVYQ3lBUElCTkdJZ1lnRFNBVFJpSU5haUFUSUJkR2FrRUJSd1JBSUFvZ0J5QUtRUkIwUVJCMUlnb2dCMEVRZEVFUWRTSU5TaUlHR3lJSElBMGdDaUFOSUFvZ0RVZ2JJQVliSWdZZ0RFRVFkU0lLSUFZZ0Nrb2JJQWRCRUhSQkVIVWdDa2diSVFjZ0VTQUlJQkZCRUhSQkVIVWlDaUFJUVJCMFFSQjFJZzFLSWdZYklnaEIvLzhEY1NBTklBb2dEU0FLSUExSUd5QUdHeUlHSUF4QkVIUkJFSFVpQ2lBR0lBcEtHeUFJUVJCMFFSQjFJQXBJR3lFSURBRUxJQWdnRVNBTkd5RUlJQWNnQ2lBTkd5RUhJQTBOQUNBR0RRQWdERUVRZGlFSElBd2hDQXRCQVNFYklBZ2dDV29pREVFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0Myb2lDVUVRZEVFUWRVR0FFR3BCL3g5TERRSUxJQUlnRXhBVUlnSkZCRUJCQVNFYkRBSUxJQUFnQ1RzQndnRWdBQ0FNT3dIQUFTQUFJQUkyQW5RZ0FDQVROZ0prSUFBZ0FqWUNnQUVnQUNBQ05nSjhJQUFnQWpZQ2VDQUFJQk0yQW5BZ0FDQVROZ0pzSUFBZ0V6WUNhQ0FBSUFBb0FzQUJJZ1kyQXJ3QklBQWdCallDdUFFZ0FDQUdOZ0swQVNBQUlBWTJBckFCSUFBZ0JqWUNyQUVnQUNBR05nS29BU0FBSUFZMkFxUUJJQUFnQmpZQ29BRWdBQ0FHTmdLY0FTQUFJQVkyQXBnQklBQWdCallDbEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FRSUFJMkFnZ2dCU0FBUVlRQmFpQVFRUWhxSUJVZ0ZFRUFRUUJCRUVFUUVBNExRUUFoR3lBQUtBTEVBVUVCU3cwQUlBQW9BZ0FFUUNBRUlBTWdCU0FCUWNnQ2FoQllEQUVMSUFRZ0JSQWJDeUFRUVNCcUpBQWdHd3VUQ3dFUGZ5QUFLQUlBSWhFZ0FTQUJJQUFvQWdRaUNuQWlBV3NpQkVFSWRHb2dBVUVFZEdvaEJTQUtRUVIwSVFzZ0FDZ0NDQ0FLYkNJQVFRWjBJUVlnQVVFRGRDRUpJQUJCQ0hRaERDQUVRUVowSVJJZ0NrRUNkRUg4Ly8vL0EzRkJBblFoRUFOQUlBVWdEa0VDZENJQVFmQXBhaWdDQUNJQklBdHNhaUFBUWJBcGFpZ0NBQ0lBYWlFRUlBSWdBVUVFZEdvZ0FHb2hBQUpBSUFNZ0RrRUdkR29pQVNnQ0FDSUhRZi8vL3dkSEJFQWdBU2dDQkNFSUlBQXRBQUVoRFNBRUlBY2dBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BZ2doQnlBQUxRQUNJUThnQkNBSUlBMXFRYkF1YWkwQUFEb0FBU0FCS0FJTUlRZ2dBQzBBQXlFTklBUWdCeUFQYWtHd0xtb3RBQUE2QUFJZ0JDQUlJQTFxUWJBdWFpMEFBRG9BQXlBQktBSVVJUWNnQUMwQUVTRUlJQVFnQzJvaUJDQUJLQUlRSUFBdEFCQnFRYkF1YWkwQUFEb0FBQ0FCS0FJWUlRMGdBQzBBRWlFUElBUWdCeUFJYWtHd0xtb3RBQUE2QUFFZ0FTZ0NIQ0VISUFBdEFCTWhDQ0FFSUEwZ0QycEJzQzVxTFFBQU9nQUNJQVFnQnlBSWFrR3dMbW90QUFBNkFBTWdBU2dDSkNFSElBQXRBQ0VoQ0NBRUlBdHFJZ1FnQVNnQ0lDQUFMUUFnYWtHd0xtb3RBQUE2QUFBZ0FTZ0NLQ0VOSUFBdEFDSWhEeUFFSUFjZ0NHcEJzQzVxTFFBQU9nQUJJQUVvQWl3aEJ5QUFMUUFqSVFnZ0JDQU5JQTlxUWJBdWFpMEFBRG9BQWlBRUlBY2dDR3BCc0M1cUxRQUFPZ0FESUFFb0FqUWhCeUFBTFFBeElRZ2dCQ0FMYWlJRUlBRW9BakFnQUMwQU1HcEJzQzVxTFFBQU9nQUFJQUVvQWpnaERTQUFMUUF5SVE4Z0JDQUhJQWhxUWJBdWFpMEFBRG9BQVNBQktBSThJUUVnQUMwQU15RUFJQVFnRFNBUGFrR3dMbW90QUFBNkFBSWdCQ0FBSUFGcVFiQXVhaTBBQURvQUF3d0JDeUFBS0FJUUlRRWdCQ0FBS0FJQU5nSUFJQVFnRUdvaUJDQUJOZ0lBSUFBb0FqQWhBU0FFSUJCcUlnUWdBQ2dDSURZQ0FDQUVJQkJxSUFFMkFnQUxJQTVCQVdvaURrRVFSdzBBQ3lBTUlCRnFJQkpxSUFscUloQWdCbW9oRVNBS1FRTjBRZmovLy84SGNTSUxRUUoyUVFKMElRNUJFQ0VLQTBBZ0NrRUNkRUVNY1NJQVFmQXBhaWdDQUNJQklBdHNJQUJCc0NscUtBSUFJZ0JxSUJFZ0VDQUtRUk5MSWdVYmFpRUVJQUpCd0FKQmdBSWdCUnRxSUFGQkEzUWdBR3BxSVFBQ1FDQURJQXBCQm5ScUlnRW9BZ0FpQlVILy8vOEhSd1JBSUFFb0FnUWhCaUFBTFFBQklRa2dCQ0FGSUFBdEFBQnFRYkF1YWkwQUFEb0FBQ0FCS0FJSUlRVWdBQzBBQWlFTUlBUWdCaUFKYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VHSUFBdEFBTWhDU0FFSUFVZ0RHcEJzQzVxTFFBQU9nQUNJQVFnQmlBSmFrR3dMbW90QUFBNkFBTWdBU2dDRkNFRklBQXRBQWtoQmlBRUlBdHFJZ1FnQVNnQ0VDQUFMUUFJYWtHd0xtb3RBQUE2QUFBZ0FTZ0NHQ0VKSUFBdEFBb2hEQ0FFSUFVZ0JtcEJzQzVxTFFBQU9nQUJJQUVvQWh3aEJTQUFMUUFMSVFZZ0JDQUpJQXhxUWJBdWFpMEFBRG9BQWlBRUlBVWdCbXBCc0M1cUxRQUFPZ0FESUFFb0FpUWhCU0FBTFFBUklRWWdCQ0FMYWlJRUlBRW9BaUFnQUMwQUVHcEJzQzVxTFFBQU9nQUFJQUVvQWlnaENTQUFMUUFTSVF3Z0JDQUZJQVpxUWJBdWFpMEFBRG9BQVNBQktBSXNJUVVnQUMwQUV5RUdJQVFnQ1NBTWFrR3dMbW90QUFBNkFBSWdCQ0FGSUFacVFiQXVhaTBBQURvQUF5QUJLQUkwSVFVZ0FDMEFHU0VHSUFRZ0Myb2lCQ0FCS0FJd0lBQXRBQmhxUWJBdWFpMEFBRG9BQUNBQktBSTRJUWtnQUMwQUdpRU1JQVFnQlNBR2FrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQXRBQnNoQUNBRUlBa2dER3BCc0M1cUxRQUFPZ0FDSUFRZ0FDQUJha0d3TG1vdEFBQTZBQU1NQVFzZ0FDZ0NDQ0VCSUFRZ0FDZ0NBRFlDQUNBRUlBNXFJZ1FnQVRZQ0FDQUFLQUlZSVFFZ0JDQU9haUlFSUFBb0FoQTJBZ0FnQkNBT2FpQUJOZ0lBQ3lBS1FRRnFJZ3BCR0VjTkFBc0w1Z0VCQjM4Q1FDQUFLQUlBSWdWRkRRQWdBRUVCTmdJOElBQW9BamdOQUNBQUtBSWNJUVpCLy8vLy93Y2hBZ05BQTBBZ0JTQURRU2hzYWlJRUtBSVlCRUFnQkNBQklBUW9BaEFpQkNBQ1NDSUhHeUVCSUFRZ0FpQUhHeUVDQ3lBRFFRRnFJZ01nQmswTkFDQUJSUTBDSUFBb0Fnd2dBQ2dDRUNJRFFRUjBhaUlDSUFFb0FnQTJBZ0FnQWlBQktBSWtOZ0lNSUFJZ0FTZ0NIRFlDQkNBQ0lBRW9BaUEyQWdnZ0FDQURRUUZxTmdJUVFRQWhBeUFCUVFBMkFoZ2dBU2dDRkNFRVFRQWhBVUgvLy8vL0J5RUNJQVFOQUFzZ0FDQUFLQUlzUVg5cU5nSXNEQUFBQ3dBTEM5d0dBUXAvSUFCQ0FEY0NFQUpBQWtBQ1FDQURSUTBBQWtBQ1FDQUJJQUFvQWpBaUEwY0VRQ0FEUVFGcUlBQW9BaUFpQkhBaUNTQUJSZzBCSUFBb0FnQWdBQ2dDSEVFb2JHb29BZ0FoQ3dOQUFrQUNRQ0FBS0FJb0lnY0VRQ0FBS0FJQUlRaEJBQ0VEQTBBZ0NDQURRU2hzYWlJRktBSVVRWDlxUVFGTkJFQWdCU0FGS0FJTUlnVWdCRUVBSUFVZ0NVc2JhellDQ0FzZ0EwRUJhaUlESUFkSERRQUxJQWNnQUNnQ0dFa05Ba0YvSVFWQkFDRURRUUFoQkFOQUlBZ2dBMEVvYkdvaUJpZ0NGRUYvYWtFQlRRUkFJQVlvQWdnaUJpQUVJQVZCZjBZZ0JpQUVTSElpQmhzaEJDQURJQVVnQmhzaEJRc2dBMEVCYWlJRElBZEhEUUFMSUFWQkFFNE5BVUVCRHd0QkFDRUhJQUFvQWhnTkFVRUJEd3NnQ0NBRlFTaHNhaUlEUVFBMkFoUWdBQ0FIUVg5cUlnYzJBaWdnQXlnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FDZ0NMQ0lGSUFBb0Fod2lDRThFUUNBQUtBSTREUVlnQUNnQ0FDRU1BMEJCQUNFRVFmLy8vLzhISVFaQkFDRURBMEFnRENBRFFTaHNhaUlLS0FJWUJFQWdDaUFFSUFvb0FoQWlDaUFHU0NJTkd5RUVJQW9nQmlBTkd5RUdDeUFEUVFGcUlnTWdDRTBOQUFzQ1FDQUVSUTBBSUFBb0Fnd2dBQ2dDRUNJR1FRUjBhaUlESUFRb0FnQTJBZ0FnQXlBRUtBSWtOZ0lNSUFNZ0JDZ0NIRFlDQkNBRElBUW9BaUEyQWdnZ0FDQUdRUUZxTmdJUUlBUkJBRFlDR0NBRUtBSVVEUUFnQUNBRlFYOXFJZ1UyQWl3TElBVWdDRThOQUFzTElBQW9BZ0FpQkNBSVFTaHNhaUlESUFrMkFnd2dBMEtBZ0lDQUVEY0NFQ0FEUVFBMkFoZ2dBeUFKTmdJSUlBQWdCMEVCYWpZQ0tDQUFJQVZCQVdvMkFpd2dCQ0FJUVFGcUVDY2dDVUVCYWlBQUtBSWdJZ1J3SWdrZ0FVY05BQXNDUUNBQUtBSVFJZ2xGRFFBZ0FDZ0NBQ0lGSUFBb0Fod2lCRUVvYkdvaUNDZ0NBQ0VISUFBb0Fnd2hCa0VBSVFNRFFDQUhJQVlnQTBFRWRHb29BZ0JIQkVBZ0NTQURRUUZxSWdOSERRRU1BZ3NMSUFSRkRRQkJBQ0VEQTBBZ0N5QUZJQU5CS0d4cUlna29BZ0JIQkVBZ0JDQURRUUZxSWdOSERRRU1BZ3NMSUFrZ0J6WUNBQ0FJSUFzMkFnQUxJQUlOQlNBQUtBSXdJUU1NQWdzZ0FrRUFSdzhMSUFJTkF3c2dBU0FEUmcwQUlBQWdBU0FBS0FJZ0lnQnFRWDlxSUFCd05nSXdDMEVBRHdzRFFBd0FBQXNBQ3lBQUlBRTJBakJCQUF0MUFRTi9Ba0FnQUNnQ0FDSUJSUTBBSUFBb0FoeEJmMFlOQUFOQUlBRWdBa0VvYkNJRGFpZ0NCQkFFSUFBb0FnQWlBU0FEYWtFQU5nSUVJQUpCQVdvaUFpQUFLQUljUVFGcVNRMEFDd3NnQVJBRUlBQkJBRFlDQUNBQUtBSUVFQVFnQUVFQU5nSUVJQUFvQWd3UUJDQUFRUUEyQWd3TGd3RUJBMzhDUUNBQUtBSUFJZ1pGRFFBZ0FDZ0NIRUYvUmcwQUEwQWdCaUFIUVNoc0lnaHFLQUlFRUFRZ0FDZ0NBQ0lHSUFocVFRQTJBZ1FnQjBFQmFpSUhJQUFvQWh4QkFXcEpEUUFMQ3lBR0VBUWdBRUVBTmdJQUlBQW9BZ1FRQkNBQVFRQTJBZ1FnQUNnQ0RCQUVJQUJCQURZQ0RDQUFJQUVnQWlBRElBUWdCUkJkQzRBQ0FRSi9JQUFnQlRZQ09DQUFJQVEyQWlBZ0FFTC8vd00zQWlRZ0FFSUFOd0lzSUFBZ0EwRUJJQU5CQVVzYklnTTJBaGdnQUNBRElBSWdCUnNpQWpZQ0hDQUFRYWdGRUFvaUF6WUNBRUgvL3dNaEJBSkFJQU5GRFFCQkFDRUZJQU5CQUVHb0JSQUhJUVlnQWtGL1J3UkFJQUZCZ0FOc1FTOXlJUVZCQUNFREEwQWdCaUFEUVNoc2FpSUhJQVVRQ2lJQk5nSUVJQUZGRFFJZ0J5QUJRUUFnQVd0QkQzRnFOZ0lBSUFNZ0Fra2hBU0FEUVFGcUlRTWdBUTBBQ3lBQ1FRUjBRUkJxSVFVTElBQkJ4QUFRQ2lJQk5nSUVJQUFnQlJBS0lnSTJBZ3dnQWtVTkFDQUJSUTBBUVFBaEJDQUJRUUJCeEFBUUJ4b2dBRUlBTndJUUN5QUVDOU1CQVFkL1FRRWhBUUpBSUFBb0FqZ05BQ0FBS0FJY0lRVWdBQ2dDQUNFR1FmLy8vLzhISVFOQkFDRUJBMEFnQmlBQlFTaHNhaUlFS0FJWUJFQWdCQ0FDSUFRb0FoQWlCQ0FEU0NJSEd5RUNJQVFnQXlBSEd5RURDeUFCUVFGcUlnRWdCVTBOQUFzZ0FrVUVRRUVCRHdzZ0FDZ0NEQ0FBS0FJUUlnTkJCSFJxSWdFZ0FpZ0NBRFlDQUNBQklBSW9BaVEyQWd3Z0FTQUNLQUljTmdJRUlBRWdBaWdDSURZQ0NDQUFJQU5CQVdvMkFoQkJBQ0VCSUFKQkFEWUNHQ0FDS0FJVURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQkMvVUVBUWgvSUFBb0FpZ2lCQVJBSUFBb0FnQWhCd05BSUFjZ0JVRW9iR29pQmlnQ0ZFRi9ha0VCVFFSQUlBWWdCaWdDRENJSUlBSkxCSDhnQ0NBQUtBSWdhd1VnQ0FzMkFnZ0xJQVZCQVdvaUJTQUVSdzBBQ3d0QkFDRUVBa0FnQVNnQ0FFVU5BQ0FCS0FJRUlnVkJBa3NOQUVFQUlRY2dBaUVHQTBBQ1FBSkFBa0FnQlVFQ1J3UkFJQUVnQjBFTWJHb29BZ2doQkFKQUlBVkZCRUFnQmlBRWF5SUdRWDlLRFFFZ0FDZ0NJQ0FHYWlFR0RBRUxJQVFnQm1vaUJrRUFJQUFvQWlBaUJTQUdJQVZJRzJzaEJnc2dCaUVKSUFZZ0Frc0VRQ0FHSUFBb0FpQnJJUWtMSUFBb0FoZ2lDa1VFUUVFQkR3c2dBQ2dDQUNFSVFRQWhCUU5BSUFnZ0JVRW9iR29pQkNnQ0ZDSUxRWDlxUVFGTkJFQWdCQ2dDQ0NBSlJnMERDMEVCSVFRZ0JVRUJhaUlGSUFwSERRQUxEQVVMUVFFaEJDQUFLQUlZSWdsRkRRUWdBU0FIUVF4c2FpZ0NEQ0VLSUFBb0FnQWhDRUVBSVFVRFFDQUlJQVZCS0d4cUlnUW9BaFJCQTBZRVFDQUVLQUlJSUFwR0RRTUxRUUVoQkNBRlFRRnFJZ1VnQ1VjTkFBc01CQXNnQlVFQVNBUkFRUUVQQzBFQklRUWdDMEVCU3cwQkRBTUxRUUVoQkNBRlFRQklEUUlMSUFjZ0F5SUVTUVJBQTBBZ0FDZ0NCQ0lKSUFSQkFuUnFJQWtnQkVGL2FpSUVRUUowYWlnQ0FEWUNBQ0FFSUFkTERRQUxJQUFvQWdBaENBc2dBQ2dDQkNBSFFRSjBhaUFJSUFWQktHd2lDV28yQWdBZ0IwRUJhaUlISVFRZ0J5SUZJQU5OQkVBRFFDQUFLQUlFSWdnZ0JVRUNkR29vQWdBaUNpQUFLQUlBSUFscVJ3UkFJQWdnQkVFQ2RHb2dDallDQUNBRVFRRnFJUVFMSUFWQkFXb2lCU0FEVFEwQUN3dEJBQ0VFSUFFZ0IwRU1iR29vQWdRaUJVRURTUTBBQ3dzZ0JBc0hBRUhFR2hBS0M3Y0JBUUovSXdCQkVHc2lCaVFBSUFaQkFEWUNEQ0FBSUFFZ0FpQUdRUXhxRUNvaUIwRjljVVVFUUFOQUlBQWdBU0FHS0FJTUlnZHFJZ0VnQWlBSGF5SUNJQVpCREdvUUtpSUhRWDF4UlEwQUN3c2dCMEVCUmdSQUlBUWdBQ2dDRUNJQktBSTBRUVIwTmdJQUlBVWdBU2dDT0VFRWREWUNBQ0FESUFCQnhBbHFJZ0FvQWhRaUFTQUFLQUlRU1FSL0lBQWdBVUVCYWpZQ0ZDQUFLQUlNSUFGQkJIUnFCVUVBQ3lnQ0FEWUNBQXNnQmtFUWFpUUFJQWNMU1FFQmZ5QUFRUUJCeEJvUUJ5SUNRYlFLYWtFQk5nSUFJQUpDZ0lLQWdJQUVOd0lFSUFCQndCQVFDaUlDTmdLd0dpQUNSUVJBUVFFUEN5QUJCRUFnQUVFQk5nTEFDUXRCQUF1NkJBRUpmd0pBQWtBZ0FVRUVTUTBBSUFBdEFBQU5BQ0FBTFFBQkRRQWdBQzBBQWlJSFFRRkxEUUJCQXlFRUlBQkJBMm9oQlVFQ0lRaEJmU0VNQWtBRFFDQUZJUVlDZnlBSVFRRnFJQWRCL3dGeElnVkZEUUFhUVFBaEJ5QUZRUUZHUVFBZ0NFRUJTeHNOQWtFQUN5RUlJQVJCZjNNaERDQUdRUUZxSVFVZ0JpMEFBQ0VISUFSQkFXb2lCQ0FCUncwQUN5QURJQUUyQWdCQkFROExJQVFoQ2tFQUlRaEJBQ0VGQTBCQkFTQUlJQWNnQmkwQUFDSUxSV29pQ1VFQ1Joc2dDQ0FMUVFOR0d5RUlJQXBCQVdvaENnSkFJQXRCQVVjTkFDQUpRUUpKRFFBZ0FpQUtJQXhxSUFsQmYzTnFJZ0UyQWd4QkFDQUpRWDFxSWdZZ0JpQUpTeHNoQnd3REMwRUFJQWtnQ3hzaEIwRUJJQVVnQ1VFQ1N4c2dCU0FMR3lFRklBWkJBV29oQmlBQklBcEhEUUFMSUFJZ0FTQU1haUFIYXlJQk5nSU1EQUVMSUFJZ0FUWUNERUVCSVFoQkFDRUhDeUFDUVFBMkFoQWdBa0VBTmdJSUlBSWdBQ0FFYWlJQU5nSUVJQUlnQURZQ0FDQURJQVFnQjJvZ0FXbzJBZ0JCQVNFREFrQWdCUTBBUVFBaEF5QUlSUTBBSUFJQ2Z5QUNLQUlNSWdGRkJFQWdBQ0VFUVFBTUFRc2dBQ0VFUVFBaEJnTkFJQUZCZjJvaEFTQUVMUUFBSVFVQ2Z3SkFJQVpCQWtjTkFDQUZRUU5HQkVBZ0FVVUVRRUVCRHdzZ0JDMEFBVUVEU3dSQVFRRVBDMEVBSVFZZ0JFRUJhZ3dDQ3lBRlFRTlBEUUJCQVE4TElBQWdCVG9BQUVFQUlBWkJBV29nQlJzaEJpQUFRUUZxSVFBZ0JFRUJhZ3NoQkNBQkRRQUxJQUlvQWd3TElBQWdCR3RxTmdJTUN5QURDd3Z0TWhrQVFZWUlDOG9GWmlBbUVBWUlaUmhsR0VNUVF4QkRFRU1RUXhCREVFTVFReEFpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNBQUFBQUFBQUFBQWFrQktNQ29vQ2lCcE9HazRTU2hKS0NrZ0tTQUpHQWtZYURCb01HZ3dhREJJSUVnZ1NDQklJQ2dZS0Jnb0dDZ1lDQkFJRUFnUUNCQm5LR2NvWnlobktHY29aeWhuS0djb1J4aEhHRWNZUnhoSEdFY1lSeGhIR0c1Z1RsZ3VVQTVRYmxoT1VDNUlEa2dOUUExQVRVaE5TQzFBTFVBTk9BMDRiVkJ0VUUxQVRVQXRPQzA0RFRBTk1HdElhMGhyU0d0SWEwaHJTR3RJYTBoTE9FczRTemhMT0VzNFN6aExPRXM0S3pBck1Dc3dLekFyTUNzd0t6QXJNQXNvQ3lnTEtBc29DeWdMS0Fzb0N5Z0FBQUFBTDJndmFCQ0FVSUF3Z0JCNGNJQlFlREI0RUhCd2VGQndNSEFRYUc5d2IzQlBhRTlvTDJBdllBOWdEMkJ2YUc5b1QyQlBZQzlZTDFnUFdBOVlBQUFBQUFBQUFBQm1PRVlnSmlBR0VHWXdSaGdtR0FZSVpTaGxLQ1VRSlJCa0lHUWdaQ0JrSUdRWVpCaGtHR1FZUXhCREVFTVFReEJERUVNUVF4QkRFQUFBQUFBQUFBQUFhVWhKT0NrNENUQUlLQWdvU0RCSU1DZ3dLREFJSUFnZ1owQm5RR2RBWjBCSEtFY29SeWhIS0Njb0p5Z25LQ2NvQnhnSEdBY1lCeGdBQUFBQWJYaHRlRzZBVG9BdWdBNkFMbmdPZUU1NExuQk5jRTF3RFhBTmNHMXdiWEJOYUUxb0xXZ3RhQTFvRFdodGFHMW9UV0JOWUMxZ0xXQU5ZQTFnREZnTVdBeFlERmhNV0V4WVRGaE1XQ3hZTEZnc1dDeFlERkFNVUF4UURGQnNZR3hnYkdCc1lFeFFURkJNVUV4UUxGQXNVQ3hRTEZBTVNBeElERWdNU0d0WWExaHJXR3RZYTFocldHdFlhMWhMU0V0SVMwaExTRXRJUzBoTFNFdElLMGdyU0N0SUswZ3JTQ3RJSzBnclNBdEFDMEFMUUF0QUMwQUxRQXRBQzBCclVHdFFhMUJyVUd0UWExQnJVR3RRUzBCTFFFdEFTMEJMUUV0QVMwQkxRQ3RBSzBBclFDdEFLMEFyUUN0QUswQUxPQXM0Q3pnTE9BczRDemdMT0FzNEFFSGdEUXV1Q1FZWVJqZ21PQVlRWmtoR01DWXdCZ2dsS0NVb1JTaEZLQ1VnSlNCRklFVWdKUmdsR0dWQVpVQkZHRVVZSlJBbEVHUTRaRGhrT0dRNFpEQmtNR1F3WkRCa0tHUW9aQ2hrS0dRZ1pDQmtJR1FnWkJoa0dHUVlaQmhFRUVRUVJCQkVFQ1FJSkFna0NDUUlCQUFFQUFRQUJBQUFBQXFBYW9CS2dDcUFDbmhxZUVwNEtuZ0tjR3B3U25BcWNBcG9LV2dwYUFsZ0NXQkphRWxvS1dBcFlBbFlDVmhwYUdsb1NXQkpZQ2xZS1ZnSlVBbFFhR0JvWUdoZ2FHQklXRWhZU0ZoSVdDaFFLRkFvVUNoUUNFZ0lTQWhJQ0Vob1dHaFlhRmhvV0VoUVNGQklVRWhRS0Vnb1NDaElLRWdJUUFoQUNFQUlRQWM0QnpnSE9BYzRCemdIT0FjNEJ6Z0hNQWN3QnpBSE1BY3dCekFITUFjd1IwaEhTRWRJUjBoSFNFZElSMGhIU0Fjb0J5Z0hLQWNvQnlnSEtBY29CeWhuVUdkUVoxQm5VR2RRWjFCblVHZFFSMEJIUUVkQVIwQkhRRWRBUjBCSFFDZEFKMEFuUUNkQUowQW5RQ2RBSjBBSElBY2dCeUFISUFjZ0J5QUhJQWNnQmdnbUNBQUFCZ0FHRUNZUVJoQUFBQVlZSmhoR0dHWVlCaUFtSUVZZ1ppQUdLQ1lvUmlobUtBWXdKakJHTUdZd0JqZ21PRVk0WmpnR1FDWkFSa0JtUUFaSUpraEdTR1pJQmxBbVVFWlFabEFHV0NaWVJsaG1XQVpnSm1CR1lHWmdCbWdtYUVab1ptZ0djQ1p3Um5CbWNBWjRKbmhHZUdaNEJvQW1nRWFBWm9BQUFFTVFBZ0FDQUNFSUlRZ2hDQ0VJWnlCbklFZ2dLQ0JIR0VjWUp4Z25HQVlnQmlBR0lBWWdCaGdHR0FZWUJoZ0dFQVlRQmhBR0VHWVlaaGhtR0dZWUpoQW1FQ1lRSmhBR0NBWUlCZ2dHQ0FBQVpWVkVSRFEwSXlNakl4TVRFeE1CQVFFQkFRRUJBUUVCQVFFQkFRRUJBUG5wMmNqSXVMaW5wNmVubDVlWGw0YUdob2FHaG9hR2RuWjJkbloyZG5ibTFzYTJwYVdWbFlTRWhJUjBkSFIwWkdSa1pGUlVWRlJEUTBORFEwTkRRek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEV3TURBd01EQXdNRDFyYkZ4YVdsbFpXRWhJU0VWRlJVVkVSRVJFUUVCQVFFYzNOemMzTnpjM05qWTJOalkyTmpZek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEU4VzFwUVdVbEhSME5EUWtKSU9EZzROalkyTmpVMU5UVTBORFEwTVRFeE1UdFpXa3BJU0VKQ1FVRkFRRWMzTnpjMk5qWTJOVFUxTlRRME5EUXpNek16T21CaFVWaElTRWhKT1RrNU9UazVPVGMzTnpjM056YzNOalkyTmpZMk5qWTFOVFUxTlRVMU5UUTBORFEwTkRRME16TXpNek16TXpNeU1qSXlNakl5TWpsZ1lWRlhSMGRIU0RnNE9EZzRPRGcyTmpZMk5qWTJOalEwTkRRME5EUTBNek16TXpNek16TXlNakl5TWpJeU1qVWxKU1VsSlNVbEpTVWxKU1VsSlNVb1lHSlNVVUZCUVVjM056YzNOemMzTmpZMk5qWTJOall6TXpNek16TXpNelVsSlNVbEpTVWxKU1VsSlNVbEpTVWtKQ1FrSkNRa0pDUWtKQ1FrSkNRa0lXQm5WMUpDUWtKRk5UVTFOVFUxTlRZbUppWW1KaVltSmlZbUppWW1KaVlrSkNRa0pDUWtKQ1FrSkNRa0pDUWtJeU1qSXlNakl5TWpJeU1qSXlNakl5RlFWa1pDTWpJeU5TVWxKU1VsSlNVa0pDUWtKQ1FrSkNNakl5TWpJeU1qSUVGQ01qTXpOVFUwRkJRVUZCUVVGQkJCUkRReUlpSWlJeE1URXhNVEV4TVFNVE1qSWhJU0VoQWhJaElSRUJJaElCQVRJaUVnSkRNeUlpRWhJQ0FsTkRNeU1TRWdJQ0V5TkRNMk5UQWdJQVFhQVhDeVFFQkFVR0J3Z0pDZ3dORHhFVUZoa2NJQ1FvTFRJNFAwZFFXbVZ4ZjVDaXRzdmkvLzhBUWVBWEN5UUNBZ0lEQXdNREJBUUVCZ1lIQndnSUNRa0tDZ3NMREF3TkRRNE9EdzhRRUJFUkVoSUFRY1VZQzRRQkFRQUFBUUFBQVFBQUFRQUJBUUFCQVFFQkFRRUJBUUVCQVFFQkFRRUJBZ0VCQWdFQkFnRUJBZ0VDQXdFQ0F3SUNBd0lDQkFJREJBSURCQU1EQlFNRUJnTUVCZ1FGQndRRkNBUUdDUVVIQ2dZSUN3WUlEUWNLRGdnTEVBa01FZ29ORkFzUEZ3MFJHUUFBQUFBQUFBQUFCUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVIVUdRc1ZCUUFBQUFBQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUVIMEdRc1ZCUUFBQUFRQUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVHVUdnc0ZCUUFBQUFRQVFhUWFDNlVCQndBQUFBUUFBQUFDQUFBQUJBQUFBQUVBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUFRQUFBQVFBQUFBREFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFCQUFBQUJBQUFBQVFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBRUFBQUFFQUFBQUJBQUFBQVFBQUFBREFBQUFCQUFBQUFZQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FFSFVHd3NWRFFBQUFBQUFBQUFQQUFBQS93QUFBQUFBQUFEL0FFSDBHd3NWRFFBQUFBUUFBQUFJQUFBQS93QUFBQUFBQUFEL0FFR1VIQXUxQ3cwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBSkFBQUFCQUFBQUFzQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQWtBQUFBRUFBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUNRQUFBQVFBQUFBTUFBQUFCQUFBQUFzQUFBQUVBQUFBRGdBQUFBRUFBQUFLQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBb0FBQUFFQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ2dBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUtBQUFBQVFBQUFBc0FBQUFFQUFBQUFBQUFBQVFBQUFBQkFBQUFBUUFBQUE0QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEZ0FBQUFRQUFBQUVBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQUVBQUFBT0FBQUFBUUFBQUE4QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFRQUFBQTRBQUFBQkFBQUFEd0FBQUFRQUFBQUVBQUFBQkFBQUFBVUFBQUFFQUFBQUFnQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFDQUFBQUJBQUFBQWdBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUVBQUFBQWdBQUFBUUFBQUFEQUFBQUJBQUFBQWdBQUFBRUFBQUFDUUFBQUFRQUFBQUdBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFZQUFBQUVBQUFBREFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFCZ0FBQUFRQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUFCQUFBQUFjQUFBQUVBQUFBREFBQUFBUUFBQUFOQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFCQUFBQURnQUFBUDhBQUFBRUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBRUFBQUFMQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFCQUFBQURnQUFBQVFBQUFBQkFBQUEvd0FBQUFRQUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFJQUFBQUtBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFBUUFBQUE4QUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEd0FBQUFJQUFBQUtBQUFBQkFBQUFBVUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQVlBQUFEL0FBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFBRUFBQUFDUUFBQVA4QUFBQU1BQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQWdBQUFQOEFBQUFJQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQUhBQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFjQUFBRC9BQUFBQWdBQUFBUUFBQUFOQUFBQS93QUFBQWdBQUFBREFBQUFEd0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQU1BQUFBUEFBQUFBQUFBQUFVQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUF3QUFBQThBQUFBQkFBQUFDZ0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFEQUFBQUR3QUFBQUVBQUFBS0FBQUFBQUFBQUFVQUFBQUVBQUFBQUFBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFFQUFBQUFRQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ3dBQUFBRUFBQUFPQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QkIxQ2NMRlFjQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QkI5Q2NMRlFjQUFBQUVBQUFBQWdBQUFQOEFBQUFBQUFBQS93QkJsQ2dMMlFFSEFBQUFCQUFBQUFJQUFBQUFBQUFBRFFBQUFBUUFBQUFJQUFBQUJBQUFBQU1BQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBSkFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBTUFBQUFFQUFBQUJnQUFBQVFBQUFBSkFBQUFCQUFBQUF3QUFBQUFBQUFBQkFBQUFBQUFBQUFFQUFBQUNBQUFBQXdBQUFBSUFBQUFEQUFBQUFBQUFBQUVBQUFBQUFBQUFBUUFBQUFJQUFBQURBQUFBQWdBQUFBTUFFSDRLUXNGQkFBQUFBUUFRWWdxQ3lVRUFBQUFCQUFBQUFnQUFBQUlBQUFBREFBQUFBd0FBQUFJQUFBQUNBQUFBQXdBQUFBTUFFR3hMZ3ZJQmdFQ0F3UUZCZ2NJQ1FvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEhoOGdJU0lqSkNVbUp5Z3BLaXNzTFM0dk1ERXlNelExTmpjNE9UbzdQRDArUDBCQlFrTkVSVVpIU0VsS1MweE5UazlRVVZKVFZGVldWMWhaV2x0Y1hWNWZZR0ZpWTJSbFptZG9hV3ByYkcxdWIzQnhjbk4wZFhaM2VIbDZlM3g5Zm4rQWdZS0RoSVdHaDRpSmlvdU1qWTZQa0pHU2s1U1ZscGVZbVpxYm5KMmVuNkNob3FPa3BhYW5xS21xcTZ5dHJxK3dzYkt6dExXMnQ3aTV1cnU4dmI2L3dNSEN3OFRGeHNmSXljckx6TTNPejlEUjB0UFUxZGJYMk5uYTI5emQzdC9nNGVMajVPWG01K2pwNnV2czdlN3Y4UEh5OC9UMTl2ZjQrZnI3L1AzKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUVBQUFBRUFBQUFCUUFBQUFJQUFBQURBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQXdBQUFBTkFBQUFDZ0FBQUFzQUFBQU9BQUFBRHdBQUFBQUFBQUFCQUFBQUFRQkJoRFVMSVFFQUFBQUJBQUFBQVFBQUFBRUFBQUFDQUFBQUFnQUFBQUVBQUFBQ0FBQUFBZ0JCdERVTEJRVUFBQUFFQUVIRU5RdkpCZ2NBQUFBRUFBQUFBZ0FBQUFRQUFBQUJBQUFBQkFBQUFBUUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUFBQUFBQUEwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQUFRQUFBQU1BQUFBQkFBQUFBc0FBQUFFQUFBQURnQUFBQUFBQUFBUkFBQUFCQUFBQUJBQUFBQUFBQUFBRXdBQUFBUUFBQUFTQUFBQUFBQUFBQlVBQUFBRUFBQUFGQUFBQUFBQUFBQVhBQUFBQkFBQUFCWUFBQUFCQUFBQUNnQUFBQUVBQUFBTEFBQUFCQUFBQUFBQUFBQUVBQUFBQVFBQUFBRUFBQUFPQUFBQUFRQUFBQThBQUFBRUFBQUFCQUFBQUFRQUFBQUZBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBQVFBQUFBSUFBQUFCQUFBQUFrQUFBQUVBQUFBQmdBQUFBUUFBQUFIQUFBQUJBQUFBQXdBQUFBRUFBQUFEUUFBQUFFQUFBQVNBQUFBQVFBQUFCTUFBQUFFQUFBQUVBQUFBQVFBQUFBUkFBQUFBUUFBQUJZQUFBQUJBQUFBRndBQUFBUUFBQUFVQUFBQUJBQUFBQlVBQUFBQkFBQUFDd0FBQUFFQUFBQU9BQUFBQkFBQUFBRUFBQUQvQUFBQUJBQUFBQUVBQUFBUEFBQUFBZ0FBQUFvQUFBQUVBQUFBQlFBQUFQOEFBQUFBQUFBQUJBQUFBQU1BQUFBRUFBQUFCZ0FBQUFRQUFBQUpBQUFBL3dBQUFBd0FBQUFFQUFBQUJ3QUFBUDhBQUFBQ0FBQUFCQUFBQUEwQUFBRC9BQUFBQ0FBQUFBRUFBQUFUQUFBQUFnQUFBQklBQUFBRUFBQUFFUUFBQVA4QUFBQVFBQUFBQVFBQUFCY0FBQUFDQUFBQUZnQUFBQVFBQUFBVkFBQUEvd0FBQUJRQUFBQURBQUFBRHdBQUFBRUFBQUFLQUFBQUFBQUFBQVVBQUFBRUFBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBQUVBQUFBQWdBQUFBQUFBQUFOQUFBQUJBQUFBQWdBQUFBRUFBQUFBd0FBQUFRQUFBQUdBQUFBQkFBQUFBa0FBQUFFQUFBQURBQUFBQU1BQUFBVEFBQUFBUUFBQUJJQUFBQUFBQUFBRVFBQUFBUUFBQUFRQUFBQUF3QUFBQmNBQUFBQkFBQUFGZ0FBQUFBQUFBQVZBQUFBQkFBQUFCUUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQURBQUFBQXdBQUFBQUFBQUFCQUFBQUFnQUFBQU1BQUFBRUFBQUFCUUFBQUFZQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QVFaWThDeTRCQVFFQkFRRUNBZ0lDQWdJREF3TURBd01FQkFRRUJBUUZCUVVGQlFVR0JnWUdCZ1lIQndjSEJ3Y0lDQWdJQUVIUVBBdEZDZ0FBQUEwQUFBQVFBQUFBQ3dBQUFBNEFBQUFTQUFBQURRQUFBQkFBQUFBVUFBQUFEZ0FBQUJJQUFBQVhBQUFBRUFBQUFCUUFBQUFaQUFBQUVnQUFBQmNBQUFBZEFFR2hQUXN6QVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURBRUhrUFF2TUFnRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhRQUFBQjRBQUFBZkFBQUFJQUFBQUNBQUFBQWhBQUFBSWdBQUFDSUFBQUFqQUFBQUl3QUFBQ1FBQUFBa0FBQUFKUUFBQUNVQUFBQWxBQUFBSmdBQUFDWUFBQUFtQUFBQUp3QUFBQ2NBQUFBbkFBQUFKd0FBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFMeDhQQUJjYkhSNEhDdzBPSnlzdExoQURCUW9NRXhVYUhDTWxLaXdCQWdRSUVSSVVHQVlKRmhrZ0lTSWtLQ1lwQUJBQkFnUUlJQU1GQ2d3UEx3Y0xEUTRHQ1I4akpTb3NJU0lrS0NjckxTNFJFaFFZRXhVYUhCY2JIUjRXR1NZcEFMQXRCRzVoYldVQjZ3TmtBQVp0WlcxamNIa0JCbkpsYzJsNlpRSUNaaklEQW1ZekJBRm1CUUptTlFZQ1pqWUhBbVkzQ0FKbU9Ba0NaamtLQVdVTEEyWXhNUXdEWmpFeURRTm1NVE1PQTJZeE5BOERaakUxRUFObU1UWVJBMll4TnhJRFpqRTRFd05tTVRrVUEyWXlNQlVEWmpJeEZnTm1NaklYQTJZeU14Z0RaakkwR1FObU1qVWFBMll5TmhzRFpqSTNIQU5tTWpnZEEyWXlPUjREWmpNd0h3Tm1NekVnQTJZek1pRURaak16SWdObU16UWpBMll6TlNRRFpqTTJKUU5tTXpjbUEyWXpPQ2NEWmpNNUtBTm1OREFwQTJZME1Tb0RaalF5S3dObU5ETXNBMlkwTkMwRFpqUTFMZ05tTkRZdkEyWTBOekFEWmpRNE1RTm1ORGt5QTJZMU1ETURaalV4TkFObU5USTFBMlkxTXpZRFpqVTBOd05tTlRVNEEyWTFOamtEWmpVM09nTm1OVGc3QTJZMU9Ud0Raall3UFFObU5qRStBMlkyTWo4RFpqWXpRQU5tTmpSQkEyWTJOVUlEWmpZMlF3Tm1OamRFQTJZMk9FVURaalk1UmdObU56QkhBMlkzTVVnRFpqY3lTUU5tTnpOS0EyWTNORXNEWmpjMVRBTm1OelpOQTJZM04wNERaamM0VHdObU56bFFBMlk0TUZFRFpqZ3hVZ05tT0RKVEEyWTRNMVFEWmpnMFZRTm1PRFZXQTJZNE5sY0RaamczV0FObU9EaFpBMlk0T1ZvRFpqa3dXd05tT1RGY0EyWTVNbDBEWmprelhnTm1PVFJmQTJZNU5XQUJhV0VCWjJJQlpHTUVaakV3TVFLNktXUUFBd0FBQVFBQ0FBRUJBQUFDQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1EQ1FBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FRSUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNGQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1HR0FBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFV0Eyd3lNaGNEYkRJekJ3WUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVSUJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlFrUUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlFvTUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVMQXdBQ2NEQUJBbkF4QWdKc01nd1JBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRFFZQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05BVUNiRFVPRUFBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVQQlFBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEVBc0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQVJBZ0FDY0RBQkFuQXhFZzhBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkJNREFBSndNQUVDYkRFQ0Ftd3lGQU1BQW5Bd0FRSndNUUlDYkRJVkJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlJZbUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2NEUUZBbkExQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlJBRGJERTJFUU5zTVRjU0Eyd3hPQk1EYkRFNUZBTnNNakFWQTJ3eU1SWURiREl5RndOc01qTVlBMnd5TkJrRGJESTFHZ05zTWpZYkEyd3lOeHdEYkRJNEhRTnNNamtlQTJ3ek1COERiRE14SUFOc016SWhBMnd6TXlJRGJETTBJd05zTXpVa0Eyd3pOaVVEYkRNM0Z3TUFBbkF3QVFKd01RSUNjRElZRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFWkVnQUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0doWUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhHd1lBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVWNCd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlkQlFBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEhnVUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQjhCQUFKd01DQUVBQUp3TUFFQ2NERUNBbXd5QXdKc015RWJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVGQU5zTWpBVkEyd3lNUllEYkRJeUZ3TnNNak1ZQTJ3eU5Ca0RiREkxR2dOc01qWWlGUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0l4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE55UVVBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVKUThBQW5Bd0FRSndNUUlDY0RJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNZREFBSndNQUVDYkRFQ0Ftd3lKdzhBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNnQ0FBSndNQUVDYkRFcEVRQUNjREFCQW5BeEFnSndNZ01DY0RNRUFuQTBCUUp3TlFZQ2NEWUhBbkEzQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaW9IQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmlzUEFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUXNCQUFDY0RBQkFuQXhBZ0pzTWdNQ2JETXRCUUFDY0RBQkFuQXhBZ0p3TWdNQ2JETUVBbXcwTGdNQUFuQXdBUUpzTVFJQ2JESXZBd0FDY0RBQkFtd3hBZ0pzTWpBSkFBSndNQUVDY0RFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NE1SWUFBbkF3QVFKd01RSUNiRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhNZ29BQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NU13UUFBbkF3QVFKc01RSUNiRElEQW13ek5BUUFBbkF3QVFKc01RSUNiRElEQW13ek5ROEFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hORFlGQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRM0JRQUNjREFCQW5BeEFnSnNNZ01DYkRNRUFtdzBPQWNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyT1FjQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNiRFVHQW13Mk9nY0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJPd2NBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyUEFVQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05EMEZBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFErRHdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMFB4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE4wQUhBQUp3TUFFQ2NERUNBbXd5QXdKc013UUNiRFFGQW13MUJnSnNOa0VRQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVUlKQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0UXdnQUFuQXdBUUp3TVFJQ2JESURBbXd6QkFKc05BVUNiRFVHQW13MkJ3SnNOMFFRQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVVVUQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0p3TmdjQ2NEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9FWVJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFtdzRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyUnhNQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW5BMkJ3SndOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRTQmNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NjRGdKQW5BNUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkE4RGJERTFFQU5zTVRZUkEyd3hOeElEYkRFNEV3TnNNVGtVQTJ3eU1CVURiREl4RmdOc01qSkpRd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0ZRTnNNakVXQTJ3eU1oY0RiREl6R0FOc01qUVpBMnd5TlJvRGJESTJHd05zTWpjY0Eyd3lPQjBEYkRJNUhnTnNNekFmQTJ3ek1TQURiRE15SVFOc016TWlBMnd6TkNNRGJETTFKQU5zTXpZbEEyd3pOeVlEYkRNNEp3TnNNemtvQTJ3ME1Da0RiRFF4S2dOc05ESXJBMncwTXl3RGJEUTBMUU5zTkRVdUEydzBOaThEYkRRM01BTnNORGd4QTJ3ME9USURiRFV3TXdOc05URTBBMncxTWpVRGJEVXpOZ05zTlRRM0EydzFOVGdEYkRVMk9RTnNOVGM2QTJ3MU9Ec0RiRFU1UEFOc05qQTlBMncyTVQ0RGJEWXlQd05zTmpOQUEydzJORUVEYkRZMVFnTnNOalpLRXdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UaExGQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPVXdIQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmswTkFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1rNExBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFFGQW13MUJnSnNOZ2NDYkRjSUFtdzRDUUpzT1FvRGJERXdUd1FBQW5Bd0FRSndNUUlDYkRJREFtd3pVQTRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTlJEQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeFVoTUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0VXlBQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW13MkJ3SnNOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRFd05zTVRrVUEyd3lNQlVEYkRJeEZnTnNNaklYQTJ3eU14Z0RiREkwR1FOc01qVWFBMnd5TmhzRGJESTNIQU5zTWpnZEEyd3lPUjREYkRNd0h3TnNNekZVRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpGVkN3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1GWUhBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSnNObGNxQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9CTURiREU1RkFOc01qQVZBMnd5TVJZRGJESXlGd05zTWpNWUEyd3lOQmtEYkRJMUdnTnNNalliQTJ3eU54d0RiREk0SFFOc01qa2VBMnd6TUI4RGJETXhJQU5zTXpJaEEyd3pNeUlEYkRNMEl3TnNNelVrQTJ3ek5pVURiRE0zSmdOc016Z25BMnd6T1NnRGJEUXdLUU5zTkRGWUV3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0VnTnNNVGhaQ0FBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNXZzRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTmJCQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETmNDUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNiRFlIQW13M0NBSnNPRjBJQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEZGVDQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M1h3d0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVdBQVlRZ0FBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FtdzJCd0pzTjJJREFBSndNQUVDY0RFQ0Ftd3lZdzBBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5IixVPWE7Ri5oMjY0TW9kdWxlPW5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoVS5kZWNvZGUoTCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBZPUYscT1BPT4oSSxnLEIpPT57QS5IRUFQVTguY29weVdpdGhpbihJLGcsZytCKX07ZnVuY3Rpb24gSyhBLEkpe2NvbnN0IGc9QSVJO3JldHVybiBnPjA/QStJLWc6QX1jb25zdCBIPUE9Pkk9Pntjb25zdCBnPUEuSEVBUFU4Lmxlbmd0aCxCPTY1NTM2LFE9MjE0NzQ4MzY0ODtpZihJPlEpcmV0dXJuITE7Y29uc3QgQz0xNjc3NzIxNjtmb3IobGV0IEQ9MTtEPD00O0QqPTIpe2xldCBFPWcqKDErLjIvRCk7RT1NYXRoLm1pbihFLEkrMTAwNjYzMjk2KTtjb25zdCB3PU1hdGgubWluKFEsSyhNYXRoLm1heChDLEksRSksQikpO3RyeXtjb25zdHttZW1vcnk6b309QTtvLmdyb3cody1vLmJ1ZmZlci5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpO2NvbnN0e2J1ZmZlcjpOfT1vO3JldHVybiBBLkhFQVA4PW5ldyBJbnQ4QXJyYXkoTiksQS5IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoTiksQS5IRUFQMzI9bmV3IEludDMyQXJyYXkoTiksITB9Y2F0Y2h7fX1yZXR1cm4hMX0sUj02NTUzNixjPTUyNTE3OTIsZD04NzUyLHQ9MTY3NzcyMTY7Y2xhc3MgaXtjb25zdHJ1Y3Rvcigpe3RoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLHRoaXMucGljPW5ldyBVaW50OEFycmF5KDApO2NvbnN0IEk9bmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7aW5pdGlhbDp0L1IsbWF4aW11bToyMTQ3NDgzNjQ4L1J9KSxnPXttZW1vcnk6SSxIRUFQODpuZXcgSW50OEFycmF5KEkuYnVmZmVyKSxIRUFQVTg6bmV3IFVpbnQ4QXJyYXkoSS5idWZmZXIpLEhFQVAzMjpuZXcgSW50MzJBcnJheShJLmJ1ZmZlcil9O2cuSEVBUDMyW2Q+PjJdPWM7Y29uc3R7ZXhwb3J0czpCfT1uZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UoWS5oMjY0TW9kdWxlLHtoMjY0OnttZW1vcnk6SSxtZW1jcHk6cShnKSxyZXNpemU6SChnKX19KTt0aGlzLm1lbW9yeT1nLHRoaXMuYXNtPUIsdGhpcy5wU3RvcmFnZT1CLmgyNjRhbGxvYygpLHRoaXMucFdpZHRoPUIubWFsbG9jKDQpLHRoaXMucEhlaWdodD1CLm1hbGxvYyg0KSx0aGlzLnBQaWN0dXJlPUIubWFsbG9jKDQpLHRoaXMuZGVjQnVmZmVyPUIubWFsbG9jKDEwMjQqMTAyNCksQi5pbml0KHRoaXMucFN0b3JhZ2UsMCl9ZGVjb2RlKEkpe2NvbnN0e21lbW9yeTpnLGFzbTpCfT10aGlzO2cuSEVBUFU4LnNldChJLHRoaXMuZGVjQnVmZmVyKTtjb25zdCBRPUIuZGVjb2RlKHRoaXMucFN0b3JhZ2UsdGhpcy5kZWNCdWZmZXIsSS5ieXRlTGVuZ3RoLHRoaXMucFBpY3R1cmUsdGhpcy5wV2lkdGgsdGhpcy5wSGVpZ2h0KTtpZihRPT09aS5QSUNfUkRZKXtjb25zdCBDPXRoaXMud2lkdGg9Zy5IRUFQMzJbdGhpcy5wV2lkdGg+Pj4yXSxEPXRoaXMuaGVpZ2h0PWcuSEVBUDMyW3RoaXMucEhlaWdodD4+PjJdLEU9Zy5IRUFQMzJbdGhpcy5wUGljdHVyZT4+Ml0sdz1DKkQqMy8yO3RoaXMucGljPWcuSEVBUFU4LnN1YmFycmF5KEUsRSt3KX1yZXR1cm4gUX19dmFyIGI9eS5IMjY0RGVjb2Rlcj1pO2kuUkRZPTAsaS5QSUNfUkRZPTEsaS5IRFJTX1JEWT0yLGkuRVJST1I9MyxpLlBBUkFNX1NFVF9FUlJPUj00LGkuTUVNQUxMT0NfRVJST1I9NTtmdW5jdGlvbiB4KEEpe3JldHVybiBVaW50OEFycmF5LmZyb20oYXRvYihBKSxJPT5JLmNoYXJDb2RlQXQoMCkpfWNvbnN0IHM9c2VsZixrPW5ldyBiLG09Si5zZWNvbmQvNTthZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixBPT57Y29uc3R7dGltZXN0YW1wOkksZmxhZ3M6ZyxpbmRleDpCfT1BLmRhdGEsUT1EYXRlLm5vdygpLUk7aWYoUT5tJiZnIT09Myl7TShgRnJhbWUgaXMgJHtRfW1zIGxhdGUsIGRyb3BwaW5nYCxCKTtyZXR1cm59Y29uc3QgQz14KEEuZGF0YS5lbmNvZGVkRnJhbWUpLEQ9ay5kZWNvZGUoQyk7dHJ5e2lmKEQhPT0xKXtNKGBmYWlsZWQgdG8gZGVjb2RlIGZyYW1lLCBzdGF0dXM6ICR7bihEKX1gLEIsQyk7cmV0dXJufWNvbnN0e3BpYzpFLGhlaWdodDp3LHdpZHRoOm99PWs7aWYoRS5sZW5ndGg9PT0wfHx3PT09MHx8bz09PTApe00oImRlY29kZWQgZnJhbWUgaGFzIG5vIGRhdGEiLEIsQyk7cmV0dXJufWNvbnN0IE49bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KEUpO3MucG9zdE1lc3NhZ2Uoe3RpbWVzdGFtcDpBLmRhdGEudGltZXN0YW1wLHl1djpOLGhlaWdodDp3LHdpZHRoOm8saW5kZXg6Qn0pfWNhdGNoKEUpe00oRSxCKX19KTtmdW5jdGlvbiBNKEEsSSxnKXtzLnBvc3RNZXNzYWdlKHtlcnJvcjpgaDI2NCBkZWNvZGVyIHdvcmtlcjogJHtBfWAsaW5kZXg6SX0pfWZ1bmN0aW9uIG4oQSl7c3dpdGNoKEEpe2Nhc2UgMDpyZXR1cm4iUkRZIjtjYXNlIDE6cmV0dXJuIlBJQ19SRFkiO2Nhc2UgMjpyZXR1cm4iSERSU19SRFkiO2Nhc2UgMzpyZXR1cm4iRVJST1IiO2Nhc2UgNDpyZXR1cm4iUEFSQU1fU0VUX0VSUk9SIjtjYXNlIDU6cmV0dXJuIk1FTUFMTE9DX0VSUk9SIjtkZWZhdWx0OnJldHVybiBBLnRvU3RyaW5nKCl9fX0pfSkoKTsK",blob$3=typeof window<"u"&&window.Blob&&new Blob([atob(encodedJs$3)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$3(){const s=blob$3&&(window.URL||window.webkitURL).createObjectURL(blob$3);try{return s?new Worker(s,{}):new Worker("data:application/javascript;base64,"+encodedJs$3,{type:"module"})}finally{s&&(window.URL||window.webkitURL).revokeObjectURL(s)}}class RealtimePlayer extends HTMLElement{constructor(){super(),__publicField$2(this,"drawer"),this.drawer=new H264BytestreamCanvasDrawer$1(()=>new WorkerWrapper$3,()=>{},()=>{})}connectedCallback(){this.style.background="black",this.innerHTML='',this.drawer.start(),this.drawer.setCanvas(this.querySelector("canvas"))}drawVideoFrame(o){this.drawer.receiveEncodedFrame(o)}}customElements.define("formant-realtime-player",RealtimePlayer);function insertWithoutScoping(s,o){if(s.inserted[o.name]===void 0)return s.insert("",o,s.sheet,!0)}function merge$3(s,o,et){var tt=[],nt=getRegisteredStyles(s,tt,et);return tt.length<2?et:nt+o(tt)}var createEmotion=function s(o){var et=createCache(o);et.sheet.speedy=function(ot){this.isSpeedy=ot},et.compat=!0;var tt=function(){for(var ot=arguments.length,st=new Array(ot),at=0;at({name:s,id:o,type:et,visible:rt,treePath:nt}),toggleVisibility:s=>{},cameraTargetId:"",setCameraTargetId:s=>{},reset:()=>{},toggleEditMode:()=>{},isEditing:!1,debug:!1});function useUI(){const[s,o]=React$1.useState([]),[et,tt]=React$1.useState(""),[nt,rt]=React$1.useState(!1);return{layers:s,register:(lt,ut,dt,ht,ct,pt=!0)=>{JSON.parse(sessionStorage.getItem(`${ut}-visible`)||"true");const ft={name:lt,id:ut,visible:pt,type:dt,treePath:ct,iconUrl:ht};return s.some(gt=>gt.id===ut)||o(gt=>[...gt,ft]),ft},toggleVisibility:lt=>{o(ut=>ut.map(dt=>{if(dt.id===lt){const ht=!dt.visible;if(sessionStorage.setItem(`${dt.id}-visible`,ht.toString()),dt.treePath&&dt.treePath.length>0){const ct=ut.filter(pt=>pt.treePath&&dt.treePath&&pt.treePath[0]===dt.treePath[0]&&pt.treePath.length>dt.treePath.length);ht?ct.forEach(pt=>{pt.visible=JSON.parse(sessionStorage.getItem(`${pt.id}-visible`)||"true")}):ct.forEach(pt=>{sessionStorage.setItem(`${pt.id}-visible`,pt.visible.toString()),pt.visible=!1})}return{...dt,visible:ht}}return dt}))},cameraTargetId:et,setCameraTargetId:tt,reset:()=>{o([])},toggleEditMode:()=>{rt(lt=>!lt)},isEditing:nt,debug:!1}}function stylis_min(s){function o(zt,en,Kt,nn,Zt){for(var jt=0,Vt=0,It=0,$t=0,Ht,qt,on=0,Xt=0,dn,_n=dn=Ht=0,Fn=0,Un=0,On=0,gn=0,hn=Kt.length,wn=hn-1,Zn,Pn="",$n="",Tr="",Qr="",_r;FnHt)&&(gn=(Pn=Pn.replace(" ",":")).length),0nn&&(nn=(en=en.trim()).charCodeAt(0)),nn){case 38:return en.replace(gt,"$1"+zt.trim());case 58:return zt.trim()+en.replace(gt,"$1"+zt.trim());default:if(0<1*Kt&&0Vt.charCodeAt(8))break;case 115:Zt=Zt.replace(Vt,"-webkit-"+Vt)+";"+Zt;break;case 207:case 102:Zt=Zt.replace(Vt,"-webkit-"+(102Kt.charCodeAt(0)&&(Kt=Kt.trim()),Pt=Kt,Kt=[Pt],01?o-1:0),tt=1;tt0?" Args: "+et.join(", "):""))}var j=function(){function s(et){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=et}var o=s.prototype;return o.indexOfGroup=function(et){for(var tt=0,nt=0;nt=this.groupSizes.length){for(var nt=this.groupSizes,rt=nt.length,it=rt;et>=it;)(it<<=1)<0&&D(16,""+et);this.groupSizes=new Uint32Array(it),this.groupSizes.set(nt),this.length=it;for(var ot=rt;ot=this.length||this.groupSizes[et]===0)return tt;for(var nt=this.groupSizes[et],rt=this.indexOfGroup(et),it=rt+nt,ot=rt;ot=k&&(k=o+1),T.set(s,o),x.set(o,s)},M="style["+N+'][data-styled-version="5.3.11"]',G=new RegExp("^"+N+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),L=function(s,o,et){for(var tt,nt=et.split(","),rt=0,it=nt.length;rt=0;at--){var lt=st[at];if(lt&<.nodeType===1&<.hasAttribute(N))return lt}}(et),rt=nt!==void 0?nt.nextSibling:null;tt.setAttribute(N,"active"),tt.setAttribute("data-styled-version","5.3.11");var it=Y();return it&&tt.setAttribute("nonce",it),et.insertBefore(tt,rt),tt},H=function(){function s(et){var tt=this.element=q(et);tt.appendChild(document.createTextNode("")),this.sheet=function(nt){if(nt.sheet)return nt.sheet;for(var rt=document.styleSheets,it=0,ot=rt.length;it=0){var nt=document.createTextNode(tt),rt=this.nodes[et];return this.element.insertBefore(nt,rt||null),this.length++,!0}return!1},o.deleteRule=function(et){this.element.removeChild(this.nodes[et]),this.length--},o.getRule=function(et){return et0&&(ut+=dt+",")}),rt+=""+at+lt+'{content:"'+ut+`"}/*!sc*/ -`}}}return rt}(this)},s}(),Z=/(a)(d)/gi,K=function(s){return String.fromCharCode(s+(s>25?39:97))};function Q(s){var o,et="";for(o=Math.abs(s);o>52;o=o/52|0)et=K(o%52)+et;return(K(o%52)+et).replace(Z,"$1-$2")}var ee=function(s,o){for(var et=o.length;et;)s=33*s^o.charCodeAt(--et);return s},te=function(s){return ee(5381,s)};function ne(s){for(var o=0;o>>0);if(!et.hasNameForId(nt,ot)){var st=tt(it,"."+ot,void 0,nt);et.insertRules(nt,ot,st)}rt.push(ot),this.staticRulesId=ot}else{for(var at=this.rules.length,lt=ee(this.baseHash,tt.hash),ut="",dt=0;dt>>0);if(!et.hasNameForId(nt,ft)){var gt=tt(ut,"."+ft,void 0,nt);et.insertRules(nt,ft,gt)}rt.push(ft)}}return rt.join(" ")},s}(),se=/^\s*\/\/.*$/gm,ie=[":","[",".","#"];function ae(s){var o,et,tt,nt,rt=s===void 0?w:s,it=rt.options,ot=it===void 0?w:it,st=rt.plugins,at=st===void 0?S:st,lt=new stylis_min(ot),ut=[],dt=function(pt){function ft(gt){if(gt)try{pt(gt+"}")}catch{}}return function(gt,yt,Ut,Ft,mt,vt,At,Lt,Rt,St){switch(gt){case 1:if(Rt===0&&yt.charCodeAt(0)===64)return pt(yt+";"),"";break;case 2:if(Lt===0)return yt+"/*|*/";break;case 3:switch(Lt){case 102:case 112:return pt(Ut[0]+yt),"";default:return yt+(St===0?"/*|*/":"")}case-2:yt.split("/*|*/}").forEach(ft)}}}(function(pt){ut.push(pt)}),ht=function(pt,ft,gt){return ft===0&&ie.indexOf(gt[et.length])!==-1||gt.match(nt)?pt:"."+o};function ct(pt,ft,gt,yt){yt===void 0&&(yt="&");var Ut=pt.replace(se,""),Ft=ft&>?gt+" "+ft+" { "+Ut+" }":Ut;return o=yt,et=ft,tt=new RegExp("\\"+et+"\\b","g"),nt=new RegExp("(\\"+et+"\\b){2,}"),lt(gt||!ft?"":ft,Ft)}return lt.use([].concat(at,[function(pt,ft,gt){pt===2&>.length&>[0].lastIndexOf(et)>0&&(gt[0]=gt[0].replace(tt,ht))},dt,function(pt){if(pt===-2){var ft=ut;return ut=[],ft}}])),ct.hash=at.length?at.reduce(function(pt,ft){return ft.name||D(15),ee(pt,ft.name)},5381).toString():"",ct}var ce=React$1.createContext();ce.Consumer;var le=React$1.createContext(),de=(le.Consumer,new X),he$1=ae();function pe(){return reactExports.useContext(ce)||de}function fe(){return reactExports.useContext(le)||he$1}var ye=function(){function s(o,et){var tt=this;this.inject=function(nt,rt){rt===void 0&&(rt=he$1);var it=tt.name+rt.hash;nt.hasNameForId(tt.id,it)||nt.insertRules(tt.id,it,rt(tt.rules,it,"@keyframes"))},this.toString=function(){return D(12,String(tt.name))},this.name=o,this.id="sc-keyframes-"+o,this.rules=et}return s.prototype.getName=function(o){return o===void 0&&(o=he$1),this.name+o.hash},s}(),ve=/([A-Z])/,ge=/([A-Z])/g,Se=/^ms-/,we=function(s){return"-"+s.toLowerCase()};function Ee(s){return ve.test(s)?s.replace(ge,we).replace(Se,"-ms-"):s}var be=function(s){return s==null||s===!1||s===""};function _e(s,o,et,tt){if(Array.isArray(s)){for(var nt,rt=[],it=0,ot=s.length;it1?o-1:0),tt=1;tt?@[\\\]^`{|}~-]+/g,De=/(^-|-$)/g;function je(s){return s.replace(Re,"-").replace(De,"")}var Te=function(s){return Q(te(s)>>>0)};function xe(s){return typeof s=="string"&&!0}var ke=function(s){return typeof s=="function"||typeof s=="object"&&s!==null&&!Array.isArray(s)},Ve=function(s){return s!=="__proto__"&&s!=="constructor"&&s!=="prototype"};function Be(s,o,et){var tt=s[et];ke(o)&&ke(tt)?ze(tt,o):s[et]=o}function ze(s){for(var o=arguments.length,et=new Array(o>1?o-1:0),tt=1;tt=0||(St[Lt]=vt[Lt]);return St}(o,["componentId"]),mt=Ut&&Ut+"-"+(xe(yt)?yt:je(b(yt)));return Ye(yt,y({},Ft,{attrs:dt,componentId:mt}),et)},Object.defineProperty(ct,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(yt){this._foldedDefaultProps=tt?ze({},s.defaultProps,yt):yt}}),Object.defineProperty(ct,"toString",{value:function(){return"."+ct.styledComponentId}}),nt&&m(ct,s,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),ct}var qe=function(s){return function o(et,tt,nt){if(nt===void 0&&(nt=w),!reactIsExports.isValidElementType(tt))return D(1,String(tt));var rt=function(){return et(tt,nt,Ae.apply(void 0,arguments))};return rt.withConfig=function(it){return o(et,tt,y({},nt,{},it))},rt.attrs=function(it){return o(et,tt,y({},nt,{attrs:Array.prototype.concat(nt.attrs,it).filter(Boolean)}))},rt}(Ye,s)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach(function(s){qe[s]=qe(s)});const styled=qe;function LayerIcon({active:s}){return jsxs$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{d:"M9.00001 10.9267L4.35287 7.05273L9.00001 3.17878L13.6471 7.05273L9.00001 10.9267Z",stroke:s?"#FFF":"#BAC4E2",strokeWidth:"2"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.71179 11.4992L8.35968 16.2074L9 16.7411L9.64031 16.2074L15.2882 11.4992L13.7265 10.1973L9 14.1374L4.27352 10.1973L2.71179 11.4992Z",fill:s?"#FFF":"#BAC4E2"})]})}function EyeIcon(){return jsxs$2("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.14398 11.4616C4.82104 7.02853 8.09047 4.54999 12 4.54999C15.9095 4.54999 19.179 7.02853 21.856 11.4616C22.0476 11.7789 22.048 12.1761 21.8571 12.4937C19.191 16.9292 15.921 19.4071 12 19.4071C8.07895 19.4071 4.80905 16.9292 2.14292 12.4937C1.95198 12.1761 1.95239 11.7789 2.14398 11.4616ZM4.17638 11.9797C6.57637 15.7502 9.1981 17.4071 12 17.4071C14.8019 17.4071 17.4236 15.7502 19.8236 11.9797C17.4121 8.20659 14.7903 6.54999 12 6.54999C9.20971 6.54999 6.58787 8.20659 4.17638 11.9797Z",fill:"white"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.0644 14.9358C13.662 14.9358 14.9572 13.6406 14.9572 12.0429C14.9572 11.1993 14.5961 10.44 14.02 9.91118C13.505 9.43857 12.8184 9.15009 12.0644 9.15009C10.4667 9.15009 9.17151 10.4453 9.17151 12.0429C9.17151 13.6406 10.4667 14.9358 12.0644 14.9358Z",fill:"white"})]})}function EyeCloseIcon(){return jsx$2("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.34223 14.6222C7.16729 14.0938 6.06407 13.3052 5.03075 12.2761L2.64019 14.2682L1.35983 12.7318L3.70532 10.7772C3.1631 10.087 2.64239 9.32476 2.14288 8.49375L3.85703 7.46338C6.34318 11.5994 9.07328 13.4071 12 13.4071C14.9266 13.4071 17.6567 11.5994 20.1429 7.46338L21.857 8.49375C21.3575 9.32474 20.8368 10.087 20.2946 10.7772L22.6402 12.7318L21.3598 14.2682L18.9692 12.2761C17.9359 13.3052 16.8327 14.0938 15.6578 14.6222L16.908 17.3309L15.092 18.169L13.7392 15.238C13.1743 15.3501 12.5946 15.4071 12 15.4071C11.4053 15.4071 10.8256 15.3501 10.2608 15.238L8.90796 18.169L7.09204 17.3309L8.34223 14.6222Z",fill:"#657197"})})}function Warning(){return jsx$2("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{d:"M9 13H11V15H9V13ZM9 5H11V11H9V5ZM9.99 0C4.47 0 0 4.48 0 10C0 15.52 4.47 20 9.99 20C15.52 20 20 15.52 20 10C20 4.48 15.52 0 9.99 0ZM10 18C5.58 18 2 14.42 2 10C2 5.58 5.58 2 10 2C14.42 2 18 5.58 18 10C18 14.42 14.42 18 10 18Z",fill:"#BAC4E2"})})}function ConfigArrow(){return jsxs$2("svg",{width:"11",height:"40",viewBox:"0 0 11 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.23327 2L6.23327 40L4.7666 40L4.7666 2L6.23327 2Z",fill:"#18D2FF"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.50546 2.90731L1.624 7.05859L0.586914 5.94941L4.98691 1.24352C5.2733 0.937231 5.73762 0.937231 6.024 1.24352L10.424 5.94941L9.38691 7.05859L5.50546 2.90731Z",fill:"#18D2FF"})]})}function CheckIcon(){return jsx$2("svg",{width:"14",height:"12",viewBox:"0 0 14 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.5392 2.02248L4.48528 11.3639L0.162109 6.90344L1.23921 5.85948L4.48528 9.2086L12.4621 0.978516L13.5392 2.02248Z",fill:"white"})})}function WaypointToggleIcon(){return jsxs$2("svg",{width:"20",height:"24",viewBox:"0 0 20 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 17.8438 7.69922)",stroke:"#BAC4E2",strokeWidth:"0.75"}),jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 13.4609 14.1641)",stroke:"#BAC4E2",strokeWidth:"0.75"}),jsx$2("path",{d:"M15.7656 10.2734L13.2578 13.8471",stroke:"#BAC4E2",strokeWidth:"0.75",strokeLinecap:"round"}),jsx$2("path",{d:"M7.04688 10.2734L4.53906 13.8471",stroke:"#BAC4E2",strokeWidth:"0.75",strokeLinecap:"round"}),jsx$2("path",{d:"M8.71094 10.2734L11.2187 13.8471",stroke:"#BAC4E2",strokeWidth:"0.75",strokeLinecap:"round"}),jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 9.07812 7.69922)",stroke:"#BAC4E2",strokeWidth:"0.75"}),jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 4.69336 14.1641)",stroke:"#BAC4E2",strokeWidth:"0.75"})]})}function BooleanToggleTrueIcon({onClick:s}){return jsxs$2("svg",{width:"36",height:"22",viewBox:"0 0 36 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("mask",{id:"mask0_471_35715",maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"36",height:"22",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M36 0H0V22H36V0ZM25 21C30.5228 21 35 16.5228 35 11C35 5.47715 30.5228 1 25 1C19.4772 1 15 5.47715 15 11C15 16.5228 19.4772 21 25 21Z",fill:"#D9D9D9"})}),jsx$2("g",{mask:"url(#mask0_471_35715)",children:jsx$2("rect",{x:"3",y:"7",width:"30",height:"9",rx:"4.5",fill:"#282F45",onClick:()=>s&&s()})}),jsx$2("circle",{cx:"25",cy:"11",r:"8",fill:"#18D2FF",onClick:()=>s&&s()})]})}function BooleanToggleFalseIcon({onClick:s}){return jsxs$2("svg",{width:"36",height:"22",viewBox:"0 0 36 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("mask",{id:"mask0_508_180629",maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"36",height:"22",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M36 0H0V22H36V0ZM11 21C16.5228 21 21 16.5228 21 11C21 5.47715 16.5228 1 11 1C5.47715 1 1 5.47715 1 11C1 16.5228 5.47715 21 11 21Z",fill:"#D9D9D9"})}),jsx$2("g",{mask:"url(#mask0_508_180629)",children:jsx$2("rect",{x:"3",y:"7",width:"30",height:"9",rx:"4.5",fill:"#282F45"})}),jsx$2("circle",{cx:"11",cy:"11",r:"8",fill:"#BAC4E2"})]})}function WaypointsPathToggleIcon(){return jsx$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{d:"M1.29297 16.293L16.293 1.29297",stroke:"#BAC4E2",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"4 4"})})}function PathToggleIcon(){return jsx$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{d:"M1.29297 16.293L16.293 1.29297",stroke:"#18D2FF",strokeWidth:"2",strokeLinecap:"round"})})}function PathEyeIcon(){return jsx$2("svg",{width:"16",height:"9",viewBox:"0 0 16 9",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.25881 5.96492C4.37723 5.56852 3.54948 4.97678 2.7742 4.20449L0.98113 5.69872L0.020853 4.54639L1.78023 3.08024C1.37381 2.56284 0.983494 1.9914 0.609059 1.36849L1.89468 0.595703C3.75929 3.69771 5.80686 5.05352 8.00187 5.05352C10.1969 5.05352 12.2444 3.69771 14.1091 0.595703L15.3947 1.36849C15.0199 1.99189 14.6293 2.56374 14.2225 3.08145L15.9805 4.54639L15.0202 5.69872L13.2284 4.20558C12.4536 4.97721 11.6264 5.56852 10.7454 5.96472L11.6829 7.99609L10.321 8.62468L9.30648 6.42661C8.88276 6.51076 8.44793 6.55352 8.00187 6.55352C7.55597 6.55352 7.1213 6.5108 6.69773 6.4267L5.68328 8.62468L4.32134 7.99609L5.25881 5.96492Z",fill:"#BAC4E2"})})}function CLoseIcon(){return jsxs$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.9688 14.0304L3.96875 5.03039L5.02941 3.96973L14.0294 12.9697L12.9688 14.0304Z",fill:"white"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.03125 14.0304L14.0312 5.03039L12.9706 3.96973L3.97059 12.9697L5.03125 14.0304Z",fill:"white"})]})}var LayerType=(s=>(s.CONTAINER="container",s.TRACKABLE="trackable",s.AXIS="axis",s.OTHER="other",s))(LayerType||{}),Rn=Object.defineProperty,Bn=(s,o,et)=>o in s?Rn(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,he=(s,o,et)=>(Bn(s,typeof o!="symbol"?o+"":o,et),et);const DEFAULT_FORMANT_API_URL="https://api.formant.io";function whichFormantApiUrl(s,o,et){try{if(et){if(et.includes("app-dev.formant.io")||et.includes("localhost"))return"https://api-dev.formant.io";if(et.includes("app-stage.formant.io"))return"https://api-stage.formant.io";if(et.includes("app.formant.io"))return"https://api.formant.io"}if(o.get("formant_stage"))return"https://api-stage.formant.io";if(o.get("formant_dev"))return"https://api-dev.formant.io";if(o.get("formant_local"))return"https://api.formant.local";if(o.get("formant_url")){const tt=o.get("formant_url");if(tt!==null)try{return new URL(tt).origin}catch{console.warn(`Ignoring malformed \`formant_url\` url parameter: ${tt}`)}}}catch{}return typeof s<"u"&&"FORMANT_API_URL"in s&&typeof s.FORMANT_API_URL=="string"?s.FORMANT_API_URL:DEFAULT_FORMANT_API_URL}const FORMANT_API_URL=whichFormantApiUrl(typeof window<"u"?window:globalThis,new URLSearchParams(typeof window<"u"&&window.location?window.location.search:void 0),typeof window<"u"&&window.location?window.location.host:void 0);var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}var base64={exports:{}};/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */base64.exports;(function(s,o){(function(et){var tt=o,nt=s&&s.exports==tt&&s,rt=typeof commonjsGlobal=="object"&&commonjsGlobal;(rt.global===rt||rt.window===rt)&&(et=rt);var it=function(ct){this.message=ct};it.prototype=new Error,it.prototype.name="InvalidCharacterError";var ot=function(ct){throw new it(ct)},st="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",at=/[\t\n\f\r ]/g,lt=function(ct){ct=String(ct).replace(at,"");var pt=ct.length;pt%4==0&&(ct=ct.replace(/==?$/,""),pt=ct.length),(pt%4==1||/[^+a-zA-Z0-9/]/.test(ct))&&ot("Invalid character: the string to be decoded is not correctly encoded.");for(var ft=0,gt,yt,Ut="",Ft=-1;++Ft>(-2*ft&6)));return Ut},ut=function(ct){ct=String(ct),/[^\0-\xFF]/.test(ct)&&ot("The string to be encoded contains characters outside of the Latin1 range.");for(var pt=ct.length%3,ft="",gt=-1,yt,Ut,Ft,mt,vt=ct.length-pt;++gt>18&63)+st.charAt(mt>>12&63)+st.charAt(mt>>6&63)+st.charAt(mt&63);return pt==2?(yt=ct.charCodeAt(gt)<<8,Ut=ct.charCodeAt(++gt),mt=yt+Ut,ft+=st.charAt(mt>>10)+st.charAt(mt>>4&63)+st.charAt(mt<<2&63)+"="):pt==1&&(mt=ct.charCodeAt(gt),ft+=st.charAt(mt>>2)+st.charAt(mt<<4&63)+"=="),ft},dt={encode:ut,decode:lt,version:"1.0.0"};if(tt&&!tt.nodeType)if(nt)nt.exports=dt;else for(var ht in dt)dt.hasOwnProperty(ht)&&(tt[ht]=dt[ht]);else et.base64=dt})(commonjsGlobal)})(base64,base64.exports);var base64Exports=base64.exports;class LoginFailureError extends Error{constructor(o){super("login failed"),he(this,"reason"),this.reason=o,this.name="LoginFailureError",Object.setPrototypeOf(this,new.target.prototype)}}class LoginChallengedError extends Error{constructor(o){super("login challenged"),he(this,"challenge"),this.challenge=o,this.name="LoginChallengedError",Object.setPrototypeOf(this,new.target.prototype)}}class AuthenticationStore{constructor({apiUrl:o,refreshAuthToken:et,addAccessTokenRefreshListener:tt}){he(this,"_refreshToken"),he(this,"_isShareToken",!1),he(this,"_currentOrganization"),he(this,"_currentUser"),he(this,"_defaultDeviceId"),he(this,"_token"),he(this,"_waitingForAuth",new Set),he(this,"_refreshTimer"),he(this,"_apiUrl"),he(this,"_refreshAuthToken"),he(this,"_addAccessTokenRefreshListener"),this._apiUrl=o,this._refreshAuthToken=et,this._addAccessTokenRefreshListener=tt}get token(){return this._token}get currentUser(){return this._currentUser}get currentOrganization(){return this._currentOrganization}get defaultDeviceId(){return this._defaultDeviceId}get refreshToken(){return this._refreshToken}get isShareToken(){return this._isShareToken}async login(o,et,tt={}){const{advanced:nt=!1}=tt;try{const rt=await fetch(`${this._apiUrl}/v1/admin/auth/login`,{method:"POST",body:JSON.stringify({email:o,password:et}),headers:{"Content-Type":"application/json"}}),it=await rt.json();if(rt.status!==200)throw new LoginFailureError(it.message);if("challenge"in it)throw new LoginChallengedError(it.challenge);const{authentication:ot}=it;return await this.loginWithToken(ot.accessToken,ot.refreshToken),nt?{result:"success",authentication:ot}:ot}catch(rt){if(nt||console.error("login() failed",{err:rt}),this._waitingForAuth.forEach(it=>it(!1)),this._waitingForAuth.clear(),!nt)throw rt;return rt instanceof LoginChallengedError?{result:"challenged",challenge:rt.challenge}:{result:"failure",reason:rt instanceof LoginFailureError?rt.reason:rt instanceof Error?rt.message:String(rt)}}}async loginWithToken(o,et){var tt;const nt=JSON.parse(base64Exports.decode(o.split(".")[1]));try{let rt;if(this._isShareToken=nt["formant:claims"]&&nt["formant:claims"].type=="share",nt["formant:claims"]&&(this._currentOrganization=nt["formant:claims"].organizationId),nt["custom:organization_id"]&&(this._currentOrganization=nt["custom:organization_id"]),this._isShareToken||(rt=nt.sub),nt["formant:claims"]&&nt["formant:claims"].userId&&(rt=nt["formant:claims"].userId),rt&&((tt=this._currentUser)==null?void 0:tt.id)!==rt){const it=await fetch(`${this._apiUrl}/v1/admin/users/${rt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+o}}),ot=await it.json();if(it.status!==200)throw new Error(ot.message);this._currentUser=ot}this._token=o,this._waitingForAuth.forEach(it=>it(!0))}catch(rt){console.error("loginWithToken() failed",{err:rt}),this._waitingForAuth.forEach(it=>it(!1))}finally{this._waitingForAuth.clear()}et&&(this._refreshToken=et,setInterval(async()=>{if(this._refreshToken){const rt=await(await fetch(`${this._apiUrl}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:this._refreshToken})})).json();this._token=rt.authentication.accessToken}},1e3*60*60))}isAuthenticated(){return this._token!==void 0}async loginToPeer(o,et,tt){if((await fetch(`${o}/login`,{method:"POST",body:JSON.stringify({username:et,password:tt}),headers:{"Content-Type":"application/json"}})).status!==200)throw new LoginFailureError("Invalid authentication")}getCurrentUser(){return this._currentUser}async waitTilAuthenticated(){return this.token!==void 0?!0:new Promise(o=>{this._waitingForAuth.add(o)})}async listenForRefresh(){const o=()=>{this._refreshTimer=void 0,this._refreshAuthToken()};this._addAccessTokenRefreshListener(et=>{this._refreshTimer&&clearTimeout(this._refreshTimer),this._refreshTimer=setTimeout(o,36e5),this.loginWithToken(et)}),this._refreshTimer=setTimeout(o,36e5)}async forgotPassword(o){await fetch(`${this._apiUrl}/v1/admin/auth/forgot-password`,{method:"POST",body:JSON.stringify({email:o}),headers:{"Content-Type":"application/json"}})}async confirmForgotPassword(o){return(await fetch(`${this._apiUrl}/v1/admin/auth/confirm-forgot-password`,{method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}})).ok}async respondToNewPasswordRequiredChallenge(o){const et=await fetch(`${this._apiUrl}/v1/admin/auth/respond-to-new-password-required-challenge`,{method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}});if(et.ok)return await et.json();throw new Error("respond-to-new-password-required-challenge failed")}async loginWithGoogle(o){return await(await fetch(`${this._apiUrl}/v1/admin/auth/login-google`,{method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}})).json()}async refresh(o){const et=await(await fetch(`${this._apiUrl}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:o})})).json();await this.loginWithToken(et.authentication.accessToken,o)}async checkSso(o,et){return await(await fetch(`${this._apiUrl}/v1/admin/auth/check-sso`,{method:"POST",body:JSON.stringify({email:o,allowUserAutoCreation:et}),headers:{"Content-Type":"application/json"}})).json()}async loginWithSso(o,et){const tt=await(await fetch(`${this._apiUrl}/v1/admin/auth/login-sso`,{method:"POST",body:JSON.stringify({token:o,refreshToken:et}),headers:{"Content-Type":"application/json"}})).json();if(!tt.authentication)throw new Error("Failed to login with SSO");return await this.loginWithToken(tt.authentication.accessToken,tt.authentication.refreshToken)}}function getCurrentModuleContext(){return typeof window<"u"&&window.location?new URLSearchParams(window.location.search).get("module"):null}function sendAppMessage(s){if(!(window&&window.parent))throw new Error("cannot send message to non-existent parent");window.parent.postMessage(s,"*")}function refreshAuthToken(){const s=getCurrentModuleContext();if(!s)throw new Error("No module context");sendAppMessage({type:"refresh_auth_token",module:s})}function addAccessTokenRefreshListener(s){function o(et){const tt=et.data;tt.type==="auth_token"&&s(tt.token)}return window.addEventListener("message",o),()=>{window.removeEventListener("message",o)}}const Authentication=new AuthenticationStore({apiUrl:FORMANT_API_URL,refreshAuthToken,addAccessTokenRefreshListener});async function getModuleConfiguration(s){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/module-configurations/${s}`,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).configuration}function disableAnalyticsBottomBar(){sendAppMessage({type:"hide_analytics_date_picker"})}function goToDevice(s){sendAppMessage({type:"go_to_device",deviceId:s})}function goToTime(s){sendAppMessage({type:"go_to_time",time:s.getTime()})}function requestModuleData(){const s=getCurrentModuleContext();if(!s)throw new Error("No module context");sendAppMessage({type:"request_module_data",module:s})}function sendChannelData(s,o){const et=getCurrentModuleContext();if(!et)throw new Error("No module context");sendAppMessage({type:"send_channel_data",source:et,channel:s,data:o})}function setModuleDateTimeRange(s,o){const et=getCurrentModuleContext();if(!et)throw new Error("No module context");sendAppMessage({type:"set_module_data_time_range",module:et,before:s,after:o||0})}function setupModuleMenus(s){const o=getCurrentModuleContext();if(!o)throw new Error("No module context");sendAppMessage({type:"setup_module_menus",module:o,menus:s})}function showMessage(s){sendAppMessage({type:"show_message",message:s})}function addChannelDataListener(s,o){const et=tt=>{const nt=tt.data;nt.type==="channel_data"&&nt.channel===s&&o({source:nt.source,data:nt.data})};return window.addEventListener("message",et),()=>window.removeEventListener("message",et)}function addMenuListener(s){const o=et=>{const tt=et.data;tt.type==="module_menu_item_clicked"&&s(tt.menu)};return window.addEventListener("message",o),()=>window.removeEventListener("message",o)}function addModuleConfigurationListener(s){const o=et=>{const tt=et.data;tt.type==="module_configuration"&&s(tt)};return window.addEventListener("message",o),()=>window.removeEventListener("message",o)}function addModuleDataListener(s){const o=getCurrentModuleContext();o&&sendAppMessage({type:"request_module_data",module:o});const et=tt=>{const nt=tt.data;nt.type==="module_data"&&s({streams:nt.streams,time:nt.time,queryRange:nt.queryRange})};return window.addEventListener("message",et),()=>window.removeEventListener("message",et)}function addOverviewDeviceListener(s){sendAppMessage({type:"request_devices"});const o=et=>{const tt=et.data;tt.type==="overview_devices"&&s(tt.data)};return window.addEventListener("message",o),()=>window.removeEventListener("message",o)}function _typeof$1(s){return _typeof$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o){return typeof o}:function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof$1(s)}function toInteger(s){if(s===null||s===!0||s===!1)return NaN;var o=Number(s);return isNaN(o)?o:o<0?Math.ceil(o):Math.floor(o)}function requiredArgs(s,o){if(o.length1?"s":"")+" required, but only "+o.length+" present")}function toDate(s){requiredArgs(1,arguments);var o=Object.prototype.toString.call(s);return s instanceof Date||_typeof$1(s)==="object"&&o==="[object Date]"?new Date(s.getTime()):typeof s=="number"||o==="[object Number]"?new Date(s):((typeof s=="string"||o==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function addDays(s,o){requiredArgs(2,arguments);var et=toDate(s),tt=toInteger(o);return isNaN(tt)?new Date(NaN):(tt&&et.setDate(et.getDate()+tt),et)}function addMonths(s,o){requiredArgs(2,arguments);var et=toDate(s),tt=toInteger(o);if(isNaN(tt))return new Date(NaN);if(!tt)return et;var nt=et.getDate(),rt=new Date(et.getTime());rt.setMonth(et.getMonth()+tt+1,0);var it=rt.getDate();return nt>=it?rt:(et.setFullYear(rt.getFullYear(),rt.getMonth(),nt),et)}function addMilliseconds(s,o){requiredArgs(2,arguments);var et=toDate(s).getTime(),tt=toInteger(o);return new Date(et+tt)}var MILLISECONDS_IN_HOUR=36e5;function addHours(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addMilliseconds(s,et*MILLISECONDS_IN_HOUR)}var defaultOptions={};function getDefaultOptions(){return defaultOptions}function startOfWeek(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs(1,arguments);var lt=getDefaultOptions(),ut=toInteger((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate(s),ht=dt.getDay(),ct=(ht=it)throw new RangeError("Invalid interval");var ot=[],st=tt,at=Number((et=o?.step)!==null&&et!==void 0?et:1);if(at<1||isNaN(at))throw new RangeError("`options.step` must be a number equal to or greater than 1");for(;st.getTime()<=it;)ot.push(toDate(st)),st=addMinutes(st,at);return ot}function eachMonthOfInterval(s){requiredArgs(1,arguments);var o=s||{},et=toDate(o.start),tt=toDate(o.end),nt=tt.getTime(),rt=[];if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var it=et;for(it.setHours(0,0,0,0),it.setDate(1);it.getTime()<=nt;)rt.push(toDate(it)),it.setMonth(it.getMonth()+1);return rt}function startOfQuarter(s){requiredArgs(1,arguments);var o=toDate(s),et=o.getMonth(),tt=et-et%3;return o.setMonth(tt,1),o.setHours(0,0,0,0),o}function eachQuarterOfInterval(s){requiredArgs(1,arguments);var o=s||{},et=toDate(o.start),tt=toDate(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=startOfQuarter(et),it=startOfQuarter(tt);nt=it.getTime();for(var ot=[],st=rt;st.getTime()<=nt;)ot.push(toDate(st)),st=addQuarters(st,1);return ot}function eachWeekOfInterval(s,o){requiredArgs(1,arguments);var et=s||{},tt=toDate(et.start),nt=toDate(et.end),rt=nt.getTime();if(!(tt.getTime()<=rt))throw new RangeError("Invalid interval");var it=startOfWeek(tt,o),ot=startOfWeek(nt,o);it.setHours(15),ot.setHours(15),rt=ot.getTime();for(var st=[],at=it;at.getTime()<=rt;)at.setHours(0),st.push(toDate(at)),at=addWeeks(at,1),at.setHours(15);return st}function startOfMonth(s){requiredArgs(1,arguments);var o=toDate(s);return o.setDate(1),o.setHours(0,0,0,0),o}function endOfYear(s){requiredArgs(1,arguments);var o=toDate(s),et=o.getFullYear();return o.setFullYear(et+1,0,0),o.setHours(23,59,59,999),o}function startOfYear(s){requiredArgs(1,arguments);var o=toDate(s),et=new Date(0);return et.setFullYear(o.getFullYear(),0,1),et.setHours(0,0,0,0),et}function eachYearOfInterval(s){requiredArgs(1,arguments);var o=s||{},et=toDate(o.start),tt=toDate(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=[],it=et;for(it.setHours(0,0,0,0),it.setMonth(0,1);it.getTime()<=nt;)rt.push(toDate(it)),it.setFullYear(it.getFullYear()+1);return rt}function endOfHour(s){requiredArgs(1,arguments);var o=toDate(s);return o.setMinutes(59,59,999),o}function endOfWeek(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs(1,arguments);var lt=getDefaultOptions(),ut=toInteger((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate(s),ht=dt.getDay(),ct=(ht=1&&ht<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var ct=new Date(0);ct.setFullYear(ut+1,0,ht),ct.setHours(0,0,0,0);var pt=startOfWeek(ct,o),ft=new Date(0);ft.setFullYear(ut,0,ht),ft.setHours(0,0,0,0);var gt=startOfWeek(ft,o);return lt.getTime()>=pt.getTime()?ut+1:lt.getTime()>=gt.getTime()?ut:ut-1}function startOfWeekYear(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs(1,arguments);var lt=getDefaultOptions(),ut=toInteger((et=(tt=(nt=(rt=o?.firstWeekContainsDate)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.firstWeekContainsDate)!==null&&nt!==void 0?nt:lt.firstWeekContainsDate)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.firstWeekContainsDate)!==null&&et!==void 0?et:1),dt=getWeekYear(s,o),ht=new Date(0);ht.setFullYear(dt,0,ut),ht.setHours(0,0,0,0);var ct=startOfWeek(ht,o);return ct}var MILLISECONDS_IN_WEEK=6048e5;function getWeek(s,o){requiredArgs(1,arguments);var et=toDate(s),tt=startOfWeek(et,o).getTime()-startOfWeekYear(et,o).getTime();return Math.round(tt/MILLISECONDS_IN_WEEK)+1}function getYear(s){return requiredArgs(1,arguments),toDate(s).getFullYear()}function startOfHour(s){requiredArgs(1,arguments);var o=toDate(s);return o.setMinutes(0,0,0),o}function subDays(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addDays(s,-et)}function roundToNearestMinutes(s,o){var et;if(arguments.length<1)throw new TypeError("1 argument required, but only none provided present");var tt=toInteger((et=o?.nearestTo)!==null&&et!==void 0?et:1);if(tt<1||tt>30)throw new RangeError("`options.nearestTo` must be between 1 and 30");var nt=toDate(s),rt=nt.getSeconds(),it=nt.getMinutes()+rt/60,ot=getRoundingMethod(o?.roundingMethod),st=ot(it/tt)*tt,at=it%tt,lt=Math.round(at/tt)*tt;return new Date(nt.getFullYear(),nt.getMonth(),nt.getDate(),nt.getHours(),st+lt)}function subMonths(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addMonths(s,-et)}function subHours(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addHours(s,-et)}function subMinutes(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addMinutes(s,-et)}function subQuarters(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addQuarters(s,-et)}function subWeeks(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addWeeks(s,-et)}function subYears(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addYears(s,-et)}const millisecond$2=1,second$2=1e3,minute$2=60*second$2,hour$2=60*minute$2,day$2=24*hour$2,week$2=7*day$2,month$2=30*day$2,year$2=365*day$2,duration$2={millisecond:millisecond$2,second:second$2,minute:minute$2,hour:hour$2,day:day$2,week:week$2,month:month$2,year:year$2};function filterDataByType$1(s,o){return s.filter(et=>o.includes(et.type))}function filterDataByTime$1(s,o,et){const tt=o.getTime(),nt=et.getTime();return s.map(rt=>({...rt,points:rt.points.filter(([it])=>it>=tt&&itrt.length>0)}let StoreCache$1=class{constructor({capacity:s,timeout:o}={}){he(this,"entries",new Map),he(this,"metadata",new Map),he(this,"capacity"),he(this,"staleIntervalMs"),this.capacity=s||1e4,this.staleIntervalMs=o||duration$2.minute}get(s,o){const et=this.keyToCacheKey(s);return this.isStale(et)&&!this.isGenerating(et)&&o&&this.generate(s,o),this.entries.get(et)}set(s,o){const et=this.keyToCacheKey(s);this.metadata.set(et,{generating:!1,staleAt:performance.now()+this.staleIntervalMs});const tt=this.entries.get(et);JSON.stringify(tt)===JSON.stringify(o)||(this.entries.set(et,o),this.enforceMaxSize())}clear(){this.entries.clear(),[...this.metadata.values()].forEach(s=>s.generating=!1)}clearKey(s){this.metadata.delete(s),this.entries.delete(s)}keyToCacheKey(s){return JSON.stringify(s)}enforceMaxSize(){for(;this.metadata.size>this.capacity&&this.metadata.size>0;){const[s]=[...this.metadata.entries()].reduce(([o,et],[tt,nt])=>nt.staleAt{const it=this.metadata.get(et);return it?.generating!==nt||this.set(s,rt),rt}).catch(rt=>{throw this.metadata.delete(et),rt});this.metadata.set(et,{...tt,generating:nt,staleAt:performance.now()+this.staleIntervalMs})}};async function queryTelemetry(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}let QueryStore$1=class{constructor(){he(this,"queryStoreCache",new StoreCache$1({capacity:1e4,timeout:20*duration$2.second})),he(this,"liveQueryStoreCache",new StoreCache$1({capacity:1e4,timeout:200*duration$2.millisecond}))}moduleQuery(s,o,et,tt,nt,rt=!1){const it={...s,names:[...o],types:[...et]},ot=this.query(it,tt,nt,rt);return ot===void 0||ot==="too much data"?ot:filterDataByType$1(ot,et)}query(s,o,et,tt=!1){const nt={...s,start:startOfMinute(o).toISOString(),end:tt?et.toISOString():addMinutes(roundToNearestMinutes(et),1).toISOString(),latestOnly:tt},rt=et>addSeconds(new Date,-20);let it;return rt?it=this.liveQueryCache(nt):it=this.queryCache(nt),!it||it==="too much data"||tt?it:filterDataByTime$1(it,o,et)}queryCache(s){return this.queryStoreCache.get(s,async()=>{try{return await queryTelemetry(s)}catch(o){throw o}})}liveQueryCache(s){return this.liveQueryStoreCache.get(s,async()=>{try{return await queryTelemetry(s)}catch(o){throw o}})}};const queryStore=new QueryStore$1;function addStreamListener(s,o,et){const tt=nt=>{const rt=nt.data;if(rt.type==="module_data"){const{start:it,end:ot}=rt.queryRange;et(queryStore.moduleQuery({},s,o,new Date(it),new Date(ot),!1))}};return window.addEventListener("message",tt),()=>window.removeEventListener("message",tt)}async function getDate(s,o,et){return new Promise(tt=>{sendAppMessage({type:"request_date",minTime:o,maxTime:et,time:s});const nt=rt=>{const it=rt.data;it.type==="date_response"&&(window.removeEventListener("message",nt),tt(it.data))};window.addEventListener("message",nt)})}async function prompt(s,o){return new Promise(et=>{const tt=Math.random().toString();sendAppMessage({type:"prompt",promptId:tt,schema:s,okText:o?.okText,cancelText:o?.cancelText});const nt=rt=>{const it=rt.data;it.type==="prompt_response"&&it.promptId===tt&&et(it.data),window.removeEventListener("message",nt)};window.addEventListener("message",nt)})}const Yt=class{static isModule(){return getCurrentModuleContext()!==null}static async getCurrentModuleConfiguration(){let s=new URLSearchParams("");typeof window<"u"&&window.location&&(s=new URLSearchParams(window.location.search));const o=s.get("configuration");if(!(o===null||o.trim()===""))return getModuleConfiguration(o.trim())}static get isOnline(){return Yt._isOnline}static listenForConnectionEvents(){const s=o=>{const{data:et}=o;et.type==="formant_online"&&(this._isOnline=et.online)};return window.addEventListener("message",s),()=>window.removeEventListener("message",s)}static checkConnection(s=1e3){return new Promise((o,et)=>{const tt=setTimeout(()=>et(new Error("deadline expired: took too long")),s),nt=rt=>{window.removeEventListener("message",nt),clearTimeout(tt);const{data:it}=rt;it.type==="formant_online"&&(this._isOnline=it.online,o(it.online))};window.addEventListener("message",nt),sendAppMessage({type:"formant_online"})})}static waitForConnection(s=5e3){let o=!1;const et=new Promise((rt,it)=>{setTimeout(()=>{o=!0,it(new Error("deadline expired: took too long"))},s)}),tt=rt=>new Promise(it=>setTimeout(it,rt)),nt=async()=>{for(await tt(50);!o&&!(this.isOnline||await this.checkConnection);)await tt(500)};return Promise.race([et,nt()])}};let App=Yt;he(App,"getCurrentModuleContext",getCurrentModuleContext),he(App,"disableAnalyticsBottomBar",disableAnalyticsBottomBar),he(App,"goToDevice",goToDevice),he(App,"goToTime",goToTime),he(App,"refreshAuthToken",refreshAuthToken),he(App,"requestModuleData",requestModuleData),he(App,"sendChannelData",sendChannelData),he(App,"setModuleDateTimeRange",setModuleDateTimeRange),he(App,"setupModuleMenus",setupModuleMenus),he(App,"showMessage",showMessage),he(App,"addAccessTokenRefreshListener",addAccessTokenRefreshListener),he(App,"addChannelDataListener",addChannelDataListener),he(App,"addMenuListener",addMenuListener),he(App,"addModuleConfigurationListener",addModuleConfigurationListener),he(App,"addModuleDataListener",addModuleDataListener),he(App,"addOverviewDeviceListener",addOverviewDeviceListener),he(App,"addStreamListener",addStreamListener),he(App,"getDate",getDate),he(App,"prompt",prompt),he(App,"_isOnline",null);function defined$1(s,o){if(s!==void 0)return s;throw new Error(o||"Value is undefined")}function notNull$1(s,o){if(s!==null)return s;throw new Error(o||"Value is null")}function definedAndNotNull$1(s,o){return notNull$1(defined$1(s,o),o)}var dist={exports:{}};/*! For license information please see index.js.LICENSE.txt */(function(module,exports){(function(s,o){module.exports=o()})(window,function(){return function(s){function o(at){for(var lt,ut,dt=at[0],ht=at[1],ct=0,pt=[];ct1?"s":"")+" required, but only "+qt.length+" present")}function at(Ht){if(Ht===null||Ht===!0||Ht===!1)return NaN;var qt=Number(Ht);return isNaN(qt)?qt:qt<0?Math.ceil(qt):Math.floor(qt)}var lt={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},ut=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,dt=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,ht=/^([+-])(\d{2})(?::?(\d{2}))?$/;function ct(Ht){var qt,on={},Xt=Ht.split(lt.dateTimeDelimiter);if(Xt.length>2)return on;if(/:/.test(Xt[0])?qt=Xt[0]:(on.date=Xt[0],qt=Xt[1],lt.timeZoneDelimiter.test(on.date)&&(on.date=Ht.split(lt.timeZoneDelimiter)[0],qt=Ht.substr(on.date.length,Ht.length))),qt){var dn=lt.timezone.exec(qt);dn?(on.time=qt.replace(dn[1],""),on.timezone=dn[1]):on.time=qt}return on}function pt(Ht,qt){var on=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+qt)+"})|(\\d{2}|[+-]\\d{"+(2+qt)+"})$)"),Xt=Ht.match(on);if(!Xt)return{year:NaN,restDateString:""};var dn=Xt[1]?parseInt(Xt[1]):null,_n=Xt[2]?parseInt(Xt[2]):null;return{year:_n===null?dn:100*_n,restDateString:Ht.slice((Xt[1]||Xt[2]).length)}}function ft(Ht,qt){if(qt===null)return new Date(NaN);var on=Ht.match(ut);if(!on)return new Date(NaN);var Xt=!!on[4],dn=gt(on[1]),_n=gt(on[2])-1,Fn=gt(on[3]),Un=gt(on[4]),On=gt(on[5])-1;if(Xt)return function(hn,wn,Zn){return wn>=1&&wn<=53&&Zn>=0&&Zn<=6}(0,Un,On)?function(hn,wn,Zn){var Pn=new Date(0);Pn.setUTCFullYear(hn,0,4);var $n=Pn.getUTCDay()||7,Tr=7*(wn-1)+Zn+1-$n;return Pn.setUTCDate(Pn.getUTCDate()+Tr),Pn}(qt,Un,On):new Date(NaN);var gn=new Date(0);return function(hn,wn,Zn){return wn>=0&&wn<=11&&Zn>=1&&Zn<=(mt[wn]||(vt(hn)?29:28))}(qt,_n,Fn)&&function(hn,wn){return wn>=1&&wn<=(vt(hn)?366:365)}(qt,dn)?(gn.setUTCFullYear(qt,_n,Math.max(dn,Fn)),gn):new Date(NaN)}function gt(Ht){return Ht?parseInt(Ht):1}function yt(Ht){var qt=Ht.match(dt);if(!qt)return NaN;var on=Ut(qt[1]),Xt=Ut(qt[2]),dn=Ut(qt[3]);return function(_n,Fn,Un){return _n===24?Fn===0&&Un===0:Un>=0&&Un<60&&Fn>=0&&Fn<60&&_n>=0&&_n<25}(on,Xt,dn)?36e5*on+6e4*Xt+1e3*dn:NaN}function Ut(Ht){return Ht&&parseFloat(Ht.replace(",","."))||0}function Ft(Ht){if(Ht==="Z")return 0;var qt=Ht.match(ht);if(!qt)return 0;var on=qt[1]==="+"?-1:1,Xt=parseInt(qt[2]),dn=qt[3]&&parseInt(qt[3])||0;return function(_n,Fn){return Fn>=0&&Fn<=59}(0,dn)?on*(36e5*Xt+6e4*dn):NaN}var mt=[31,null,31,30,31,30,31,31,30,31,30,31];function vt(Ht){return Ht%400==0||Ht%4==0&&Ht%100!=0}var At=et(40);function Lt(Ht){return st(1,arguments),Ht instanceof Date||Object(At.a)(Ht)==="object"&&Object.prototype.toString.call(Ht)==="[object Date]"}function Rt(Ht){st(1,arguments);var qt=Object.prototype.toString.call(Ht);return Ht instanceof Date||Object(At.a)(Ht)==="object"&&qt==="[object Date]"?new Date(Ht.getTime()):typeof Ht=="number"||qt==="[object Number]"?new Date(Ht):(typeof Ht!="string"&&qt!=="[object String]"||typeof console>"u"||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function St(Ht){const qt=function(on,Xt){var dn;st(1,arguments);var _n=at((dn=Xt?.additionalDigits)!==null&&dn!==void 0?dn:2);if(_n!==2&&_n!==1&&_n!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(typeof on!="string"&&Object.prototype.toString.call(on)!=="[object String]")return new Date(NaN);var Fn,Un=ct(on);if(Un.date){var On=pt(Un.date,_n);Fn=ft(On.restDateString,On.year)}if(!Fn||isNaN(Fn.getTime()))return new Date(NaN);var gn,hn=Fn.getTime(),wn=0;if(Un.time&&(wn=yt(Un.time),isNaN(wn)))return new Date(NaN);if(!Un.timezone){var Zn=new Date(hn+wn),Pn=new Date(0);return Pn.setFullYear(Zn.getUTCFullYear(),Zn.getUTCMonth(),Zn.getUTCDate()),Pn.setHours(Zn.getUTCHours(),Zn.getUTCMinutes(),Zn.getUTCSeconds(),Zn.getUTCMilliseconds()),Pn}return gn=Ft(Un.timezone),isNaN(gn)?new Date(NaN):new Date(hn+wn+gn)}(Ht);if(!function(on){if(st(1,arguments),!Lt(on)&&typeof on!="number")return!1;var Xt=Rt(on);return!isNaN(Number(Xt))}(qt))throw new Error(`Invalid ISO 8601 date string (${Ht})`);return qt}const Tt=Math.pow(2,20),Bt=Tt;var xt=et(3),Ct=et(28);function kt(Ht){return it()(Ht,{cycles:!0})}var Nt=function(Ht,qt){var on={};for(var Xt in Ht)Object.prototype.hasOwnProperty.call(Ht,Xt)&&qt.indexOf(Xt)<0&&(on[Xt]=Ht[Xt]);if(Ht!=null&&typeof Object.getOwnPropertySymbols=="function"){var dn=0;for(Xt=Object.getOwnPropertySymbols(Ht);dnon?Object(Ct.a)(On):On;if(!Ht.stack)return{message:kt(Xt(Ht))};const{name:dn,message:_n,stack:Fn}=Ht,Un=Nt(Ht,["name","message","stack"]);return{name:dn,message:_n!==void 0?_n:kt(Xt(Ht)),stack:Fn,meta:Un&&Object.keys(Un).length===0?void 0:Xt(Un)}}function Wt(Ht,qt={}){const{message:on,stack:Xt,meta:dn}=Ot(Ht,qt);return`${Xt||on||""}${dn&&Object.keys(dn).length>0?" -- "+kt(dn):""}`}var Dt=et(236);const Et=Object(Dt.a)();var Pt=et(14),zt=et.n(Pt),en=function(Ht,qt,on,Xt){return new(on||(on=Promise))(function(dn,_n){function Fn(gn){try{On(Xt.next(gn))}catch(hn){_n(hn)}}function Un(gn){try{On(Xt.throw(gn))}catch(hn){_n(hn)}}function On(gn){var hn;gn.done?dn(gn.value):(hn=gn.value,hn instanceof on?hn:new on(function(wn){wn(hn)})).then(Fn,Un)}On((Xt=Xt.apply(Ht,qt||[])).next())})},Kt=function(Ht,qt){var on={};for(var Xt in Ht)Object.prototype.hasOwnProperty.call(Ht,Xt)&&qt.indexOf(Xt)<0&&(on[Xt]=Ht[Xt]);if(Ht!=null&&typeof Object.getOwnPropertySymbols=="function"){var dn=0;for(Xt=Object.getOwnPropertySymbols(Ht);dn{var{timestamp:qt,level:on,message:Xt,error:dn}=Ht,_n=Zt(Ht,["timestamp","level","message","error"]);const Fn=Object.assign(Object.assign({timestamp:qt?St(qt).getTime():new Date().getTime(),level:on.toUpperCase(),message:Xt},dn?{error:Ot(dn)}:{}),{meta:Object.assign(Object.assign({},jt),_n)});return it()(Fn,{cycles:!0})}):ot.format.printf(Ht=>{var{timestamp:qt,level:on,message:Xt,error:dn}=Ht,_n=Zt(Ht,["timestamp","level","message","error"]);let Fn=`${qt||new Date().toISOString()} ${on.toUpperCase()}: ${Xt} `;return Object.keys(_n).length>0&&(Fn+=it()(_n,{cycles:!0})),dn&&(Fn+=` -`+Wt(dn)),Fn}),It=Object(ot.createLogger)({level:xt.g});if(It.add(new ot.transports.Console({format:Vt,level:"debug"})),It.transports.forEach(Ht=>{Ht.silent=!xt.h}),xt.e&&It.add(new nn(xt.e,jt)),xt.i){const Ht=nt.resolve(tt.tmpdir(),`silly-${xt.a}.log`);It.debug("Logging silly logs to file",{filename:Ht}),It.add(new ot.transports.File({filename:Ht,maxsize:1*Bt,maxFiles:10,format:ot.format.combine(($t="silly",Object(ot.format)(qt=>qt.level===$t&&qt)()),Vt),level:"silly"}))}var $t},function(s,o,et){et.d(o,"a",function(){return nt});const tt=864e5,nt={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:tt,week:6048e5,month:2592e6,year:31536e6}},function(s,o){var et,tt,nt=s.exports={};function rt(){throw new Error("setTimeout has not been defined")}function it(){throw new Error("clearTimeout has not been defined")}function ot(ft){if(et===setTimeout)return setTimeout(ft,0);if((et===rt||!et)&&setTimeout)return et=setTimeout,setTimeout(ft,0);try{return et(ft,0)}catch{try{return et.call(null,ft,0)}catch{return et.call(this,ft,0)}}}(function(){try{et=typeof setTimeout=="function"?setTimeout:rt}catch{et=rt}try{tt=typeof clearTimeout=="function"?clearTimeout:it}catch{tt=it}})();var st,at=[],lt=!1,ut=-1;function dt(){lt&&st&&(lt=!1,st.length?at=st.concat(at):ut=-1,at.length&&ht())}function ht(){if(!lt){var ft=ot(dt);lt=!0;for(var gt=at.length;gt;){for(st=at,at=[];++ut1)for(var yt=1;yt=ot())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ot().toString(16)+" bytes");return 0|Vt}function pt(Vt,It){if(at.isBuffer(Vt))return Vt.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(Vt)||Vt instanceof ArrayBuffer))return Vt.byteLength;typeof Vt!="string"&&(Vt=""+Vt);var $t=Vt.length;if($t===0)return 0;for(var Ht=!1;;)switch(It){case"ascii":case"latin1":case"binary":return $t;case"utf8":case"utf-8":case void 0:return nn(Vt).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*$t;case"hex":return $t>>>1;case"base64":return Zt(Vt).length;default:if(Ht)return nn(Vt).length;It=(""+It).toLowerCase(),Ht=!0}}function ft(Vt,It,$t){var Ht=!1;if((It===void 0||It<0)&&(It=0),It>this.length||(($t===void 0||$t>this.length)&&($t=this.length),$t<=0)||($t>>>=0)<=(It>>>=0))return"";for(Vt||(Vt="utf8");;)switch(Vt){case"hex":return Ct(this,It,$t);case"utf8":case"utf-8":return Tt(this,It,$t);case"ascii":return Bt(this,It,$t);case"latin1":case"binary":return xt(this,It,$t);case"base64":return St(this,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return kt(this,It,$t);default:if(Ht)throw new TypeError("Unknown encoding: "+Vt);Vt=(Vt+"").toLowerCase(),Ht=!0}}function gt(Vt,It,$t){var Ht=Vt[It];Vt[It]=Vt[$t],Vt[$t]=Ht}function yt(Vt,It,$t,Ht,qt){if(Vt.length===0)return-1;if(typeof $t=="string"?(Ht=$t,$t=0):$t>2147483647?$t=2147483647:$t<-2147483648&&($t=-2147483648),$t=+$t,isNaN($t)&&($t=qt?0:Vt.length-1),$t<0&&($t=Vt.length+$t),$t>=Vt.length){if(qt)return-1;$t=Vt.length-1}else if($t<0){if(!qt)return-1;$t=0}if(typeof It=="string"&&(It=at.from(It,Ht)),at.isBuffer(It))return It.length===0?-1:Ut(Vt,It,$t,Ht,qt);if(typeof It=="number")return It&=255,at.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?qt?Uint8Array.prototype.indexOf.call(Vt,It,$t):Uint8Array.prototype.lastIndexOf.call(Vt,It,$t):Ut(Vt,[It],$t,Ht,qt);throw new TypeError("val must be string, number or Buffer")}function Ut(Vt,It,$t,Ht,qt){var on,Xt=1,dn=Vt.length,_n=It.length;if(Ht!==void 0&&((Ht=String(Ht).toLowerCase())==="ucs2"||Ht==="ucs-2"||Ht==="utf16le"||Ht==="utf-16le")){if(Vt.length<2||It.length<2)return-1;Xt=2,dn/=2,_n/=2,$t/=2}function Fn(hn,wn){return Xt===1?hn[wn]:hn.readUInt16BE(wn*Xt)}if(qt){var Un=-1;for(on=$t;ondn&&($t=dn-_n),on=$t;on>=0;on--){for(var On=!0,gn=0;gn<_n;gn++)if(Fn(Vt,on+gn)!==Fn(It,gn)){On=!1;break}if(On)return on}return-1}function Ft(Vt,It,$t,Ht){$t=Number($t)||0;var qt=Vt.length-$t;Ht?(Ht=Number(Ht))>qt&&(Ht=qt):Ht=qt;var on=It.length;if(on%2!=0)throw new TypeError("Invalid hex string");Ht>on/2&&(Ht=on/2);for(var Xt=0;Xt>8,_n=Xt%256,Fn.push(_n),Fn.push(dn);return Fn}(It,Vt.length-$t),Vt,$t,Ht)}function St(Vt,It,$t){return It===0&&$t===Vt.length?nt.fromByteArray(Vt):nt.fromByteArray(Vt.slice(It,$t))}function Tt(Vt,It,$t){$t=Math.min(Vt.length,$t);for(var Ht=[],qt=It;qt<$t;){var on,Xt,dn,_n,Fn=Vt[qt],Un=null,On=Fn>239?4:Fn>223?3:Fn>191?2:1;if(qt+On<=$t)switch(On){case 1:Fn<128&&(Un=Fn);break;case 2:(192&(on=Vt[qt+1]))==128&&(_n=(31&Fn)<<6|63&on)>127&&(Un=_n);break;case 3:on=Vt[qt+1],Xt=Vt[qt+2],(192&on)==128&&(192&Xt)==128&&(_n=(15&Fn)<<12|(63&on)<<6|63&Xt)>2047&&(_n<55296||_n>57343)&&(Un=_n);break;case 4:on=Vt[qt+1],Xt=Vt[qt+2],dn=Vt[qt+3],(192&on)==128&&(192&Xt)==128&&(192&dn)==128&&(_n=(15&Fn)<<18|(63&on)<<12|(63&Xt)<<6|63&dn)>65535&&_n<1114112&&(Un=_n)}Un===null?(Un=65533,On=1):Un>65535&&(Un-=65536,Ht.push(Un>>>10&1023|55296),Un=56320|1023&Un),Ht.push(Un),qt+=On}return function(gn){var hn=gn.length;if(hn<=4096)return String.fromCharCode.apply(String,gn);for(var wn="",Zn=0;Zn0&&(Vt=this.toString("hex",0,It).match(/.{2}/g).join(" "),this.length>It&&(Vt+=" ... ")),""},at.prototype.compare=function(Vt,It,$t,Ht,qt){if(!at.isBuffer(Vt))throw new TypeError("Argument must be a Buffer");if(It===void 0&&(It=0),$t===void 0&&($t=Vt?Vt.length:0),Ht===void 0&&(Ht=0),qt===void 0&&(qt=this.length),It<0||$t>Vt.length||Ht<0||qt>this.length)throw new RangeError("out of range index");if(Ht>=qt&&It>=$t)return 0;if(Ht>=qt)return-1;if(It>=$t)return 1;if(this===Vt)return 0;for(var on=(qt>>>=0)-(Ht>>>=0),Xt=($t>>>=0)-(It>>>=0),dn=Math.min(on,Xt),_n=this.slice(Ht,qt),Fn=Vt.slice(It,$t),Un=0;Unqt)&&($t=qt),Vt.length>0&&($t<0||It<0)||It>this.length)throw new RangeError("Attempt to write outside buffer bounds");Ht||(Ht="utf8");for(var on=!1;;)switch(Ht){case"hex":return Ft(this,Vt,It,$t);case"utf8":case"utf-8":return mt(this,Vt,It,$t);case"ascii":return vt(this,Vt,It,$t);case"latin1":case"binary":return At(this,Vt,It,$t);case"base64":return Lt(this,Vt,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Rt(this,Vt,It,$t);default:if(on)throw new TypeError("Unknown encoding: "+Ht);Ht=(""+Ht).toLowerCase(),on=!0}},at.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Bt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(127&Vt[qt]);return Ht}function xt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(Vt[qt]);return Ht}function Ct(Vt,It,$t){var Ht=Vt.length;(!It||It<0)&&(It=0),(!$t||$t<0||$t>Ht)&&($t=Ht);for(var qt="",on=It;on<$t;++on)qt+=Kt(Vt[on]);return qt}function kt(Vt,It,$t){for(var Ht=Vt.slice(It,$t),qt="",on=0;on$t)throw new RangeError("Trying to access beyond buffer length")}function Ot(Vt,It,$t,Ht,qt,on){if(!at.isBuffer(Vt))throw new TypeError('"buffer" argument must be a Buffer instance');if(It>qt||ItVt.length)throw new RangeError("Index out of range")}function Wt(Vt,It,$t,Ht){It<0&&(It=65535+It+1);for(var qt=0,on=Math.min(Vt.length-$t,2);qt>>8*(Ht?qt:1-qt)}function Dt(Vt,It,$t,Ht){It<0&&(It=4294967295+It+1);for(var qt=0,on=Math.min(Vt.length-$t,4);qt>>8*(Ht?qt:3-qt)&255}function Et(Vt,It,$t,Ht,qt,on){if($t+Ht>Vt.length)throw new RangeError("Index out of range");if($t<0)throw new RangeError("Index out of range")}function Pt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,4),rt.write(Vt,It,$t,Ht,23,4),$t+4}function zt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,8),rt.write(Vt,It,$t,Ht,52,8),$t+8}at.prototype.slice=function(Vt,It){var $t,Ht=this.length;if((Vt=~~Vt)<0?(Vt+=Ht)<0&&(Vt=0):Vt>Ht&&(Vt=Ht),(It=It===void 0?Ht:~~It)<0?(It+=Ht)<0&&(It=0):It>Ht&&(It=Ht),It0&&(qt*=256);)Ht+=this[Vt+--It]*qt;return Ht},at.prototype.readUInt8=function(Vt,It){return It||Nt(Vt,1,this.length),this[Vt]},at.prototype.readUInt16LE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]|this[Vt+1]<<8},at.prototype.readUInt16BE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]<<8|this[Vt+1]},at.prototype.readUInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),(this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16)+16777216*this[Vt+3]},at.prototype.readUInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),16777216*this[Vt]+(this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3])},at.prototype.readIntLE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=this[Vt],qt=1,on=0;++on=(qt*=128)&&(Ht-=Math.pow(2,8*It)),Ht},at.prototype.readIntBE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=It,qt=1,on=this[Vt+--Ht];Ht>0&&(qt*=256);)on+=this[Vt+--Ht]*qt;return on>=(qt*=128)&&(on-=Math.pow(2,8*It)),on},at.prototype.readInt8=function(Vt,It){return It||Nt(Vt,1,this.length),128&this[Vt]?-1*(255-this[Vt]+1):this[Vt]},at.prototype.readInt16LE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt]|this[Vt+1]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt16BE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt+1]|this[Vt]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16|this[Vt+3]<<24},at.prototype.readInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]<<24|this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3]},at.prototype.readFloatLE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!0,23,4)},at.prototype.readFloatBE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!1,23,4)},at.prototype.readDoubleLE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!0,52,8)},at.prototype.readDoubleBE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!1,52,8)},at.prototype.writeUIntLE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=1,on=0;for(this[It]=255&Vt;++on<$t&&(qt*=256);)this[It+on]=Vt/qt&255;return It+$t},at.prototype.writeUIntBE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=$t-1,on=1;for(this[It+qt]=255&Vt;--qt>=0&&(on*=256);)this[It+qt]=Vt/on&255;return It+$t},at.prototype.writeUInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,255,0),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),this[It]=255&Vt,It+1},at.prototype.writeUInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Wt(this,Vt,It,!0),It+2},at.prototype.writeUInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Wt(this,Vt,It,!1),It+2},at.prototype.writeUInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It+3]=Vt>>>24,this[It+2]=Vt>>>16,this[It+1]=Vt>>>8,this[It]=255&Vt):Dt(this,Vt,It,!0),It+4},at.prototype.writeUInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeIntLE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=0,Xt=1,dn=0;for(this[It]=255&Vt;++on<$t&&(Xt*=256);)Vt<0&&dn===0&&this[It+on-1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeIntBE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=$t-1,Xt=1,dn=0;for(this[It+on]=255&Vt;--on>=0&&(Xt*=256);)Vt<0&&dn===0&&this[It+on+1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,127,-128),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),Vt<0&&(Vt=255+Vt+1),this[It]=255&Vt,It+1},at.prototype.writeInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Wt(this,Vt,It,!0),It+2},at.prototype.writeInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Wt(this,Vt,It,!1),It+2},at.prototype.writeInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8,this[It+2]=Vt>>>16,this[It+3]=Vt>>>24):Dt(this,Vt,It,!0),It+4},at.prototype.writeInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),Vt<0&&(Vt=4294967295+Vt+1),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeFloatLE=function(Vt,It,$t){return Pt(this,Vt,It,!0,$t)},at.prototype.writeFloatBE=function(Vt,It,$t){return Pt(this,Vt,It,!1,$t)},at.prototype.writeDoubleLE=function(Vt,It,$t){return zt(this,Vt,It,!0,$t)},at.prototype.writeDoubleBE=function(Vt,It,$t){return zt(this,Vt,It,!1,$t)},at.prototype.copy=function(Vt,It,$t,Ht){if($t||($t=0),Ht||Ht===0||(Ht=this.length),It>=Vt.length&&(It=Vt.length),It||(It=0),Ht>0&&Ht<$t&&(Ht=$t),Ht===$t||Vt.length===0||this.length===0)return 0;if(It<0)throw new RangeError("targetStart out of bounds");if($t<0||$t>=this.length)throw new RangeError("sourceStart out of bounds");if(Ht<0)throw new RangeError("sourceEnd out of bounds");Ht>this.length&&(Ht=this.length),Vt.length-It=0;--qt)Vt[qt+It]=this[qt+$t];else if(on<1e3||!at.TYPED_ARRAY_SUPPORT)for(qt=0;qt>>=0,$t=$t===void 0?this.length:$t>>>0,Vt||(Vt=0),typeof Vt=="number")for(on=It;on<$t;++on)this[on]=Vt;else{var Xt=at.isBuffer(Vt)?Vt:nn(new at(Vt,Ht).toString()),dn=Xt.length;for(on=0;on<$t-It;++on)this[on+It]=Xt[on%dn]}return this};var en=/[^+\/0-9A-Za-z-_]/g;function Kt(Vt){return Vt<16?"0"+Vt.toString(16):Vt.toString(16)}function nn(Vt,It){var $t;It=It||1/0;for(var Ht=Vt.length,qt=null,on=[],Xt=0;Xt55295&&$t<57344){if(!qt){if($t>56319){(It-=3)>-1&&on.push(239,191,189);continue}if(Xt+1===Ht){(It-=3)>-1&&on.push(239,191,189);continue}qt=$t;continue}if($t<56320){(It-=3)>-1&&on.push(239,191,189),qt=$t;continue}$t=65536+(qt-55296<<10|$t-56320)}else qt&&(It-=3)>-1&&on.push(239,191,189);if(qt=null,$t<128){if((It-=1)<0)break;on.push($t)}else if($t<2048){if((It-=2)<0)break;on.push($t>>6|192,63&$t|128)}else if($t<65536){if((It-=3)<0)break;on.push($t>>12|224,$t>>6&63|128,63&$t|128)}else{if(!($t<1114112))throw new Error("Invalid code point");if((It-=4)<0)break;on.push($t>>18|240,$t>>12&63|128,$t>>6&63|128,63&$t|128)}}return on}function Zt(Vt){return nt.toByteArray(function(It){if((It=function($t){return $t.trim?$t.trim():$t.replace(/^\s+|\s+$/g,"")}(It).replace(en,"")).length<2)return"";for(;It.length%4!=0;)It+="=";return It}(Vt))}function jt(Vt,It,$t,Ht){for(var qt=0;qt=It.length||qt>=Vt.length);++qt)It[qt+$t]=Vt[qt];return qt}}).call(this,et(6))},function(s,o){var et;et=function(){return this}();try{et=et||new Function("return this")()}catch{typeof window=="object"&&(et=window)}s.exports=et},function(s,o){typeof Object.create=="function"?s.exports=function(et,tt){tt&&(et.super_=tt,et.prototype=Object.create(tt.prototype,{constructor:{value:et,enumerable:!1,writable:!0,configurable:!0}}))}:s.exports=function(et,tt){if(tt){et.super_=tt;var nt=function(){};nt.prototype=tt.prototype,et.prototype=new nt,et.prototype.constructor=et}}},function(s,o,et){function tt(dt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ht){return typeof ht}:function(ht){return ht&&typeof Symbol=="function"&&ht.constructor===Symbol&&ht!==Symbol.prototype?"symbol":typeof ht})(dt)}function nt(dt,ht){if(ht&&(tt(ht)==="object"||typeof ht=="function"))return ht;if(ht!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return rt(dt)}function rt(dt){if(dt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return dt}function it(dt){var ht=typeof Map=="function"?new Map:void 0;return(it=function(ct){if(ct===null||(pt=ct,Function.toString.call(pt).indexOf("[native code]")===-1))return ct;var pt;if(typeof ct!="function")throw new TypeError("Super expression must either be null or a function");if(ht!==void 0){if(ht.has(ct))return ht.get(ct);ht.set(ct,ft)}function ft(){return ot(ct,arguments,lt(this).constructor)}return ft.prototype=Object.create(ct.prototype,{constructor:{value:ft,enumerable:!1,writable:!0,configurable:!0}}),at(ft,ct)})(dt)}function ot(dt,ht,ct){return(ot=st()?Reflect.construct.bind():function(pt,ft,gt){var yt=[null];yt.push.apply(yt,ft);var Ut=new(Function.bind.apply(pt,yt));return gt&&at(Ut,gt.prototype),Ut}).apply(null,arguments)}function st(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function at(dt,ht){return(at=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(ct,pt){return ct.__proto__=pt,ct})(dt,ht)}function lt(dt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(ht){return ht.__proto__||Object.getPrototypeOf(ht)})(dt)}var ut=function(dt){(function(yt,Ut){if(typeof Ut!="function"&&Ut!==null)throw new TypeError("Super expression must either be null or a function");yt.prototype=Object.create(Ut&&Ut.prototype,{constructor:{value:yt,writable:!0,configurable:!0}}),Object.defineProperty(yt,"prototype",{writable:!1}),Ut&&at(yt,Ut)})(gt,dt);var ht,ct,pt,ft=(ht=gt,ct=st(),function(){var yt,Ut=lt(ht);if(ct){var Ft=lt(this).constructor;yt=Reflect.construct(Ut,arguments,Ft)}else yt=Ut.apply(this,arguments);return nt(this,yt)});function gt(yt){var Ut;return function(Ft,mt){if(!(Ft instanceof mt))throw new TypeError("Cannot call a class as a function")}(this,gt),Ut=ft.call(this,`Format functions must be synchronous taking a two arguments: (info, opts) +`}}}return rt}(this)},s}(),Z=/(a)(d)/gi,K=function(s){return String.fromCharCode(s+(s>25?39:97))};function Q(s){var o,et="";for(o=Math.abs(s);o>52;o=o/52|0)et=K(o%52)+et;return(K(o%52)+et).replace(Z,"$1-$2")}var ee=function(s,o){for(var et=o.length;et;)s=33*s^o.charCodeAt(--et);return s},te=function(s){return ee(5381,s)};function ne(s){for(var o=0;o>>0);if(!et.hasNameForId(nt,ot)){var st=tt(it,"."+ot,void 0,nt);et.insertRules(nt,ot,st)}rt.push(ot),this.staticRulesId=ot}else{for(var at=this.rules.length,lt=ee(this.baseHash,tt.hash),ut="",dt=0;dt>>0);if(!et.hasNameForId(nt,ft)){var gt=tt(ut,"."+ft,void 0,nt);et.insertRules(nt,ft,gt)}rt.push(ft)}}return rt.join(" ")},s}(),se=/^\s*\/\/.*$/gm,ie=[":","[",".","#"];function ae(s){var o,et,tt,nt,rt=s===void 0?w:s,it=rt.options,ot=it===void 0?w:it,st=rt.plugins,at=st===void 0?S:st,lt=new stylis_min(ot),ut=[],dt=function(pt){function ft(gt){if(gt)try{pt(gt+"}")}catch{}}return function(gt,yt,Ut,Ft,mt,vt,At,Lt,Rt,St){switch(gt){case 1:if(Rt===0&&yt.charCodeAt(0)===64)return pt(yt+";"),"";break;case 2:if(Lt===0)return yt+"/*|*/";break;case 3:switch(Lt){case 102:case 112:return pt(Ut[0]+yt),"";default:return yt+(St===0?"/*|*/":"")}case-2:yt.split("/*|*/}").forEach(ft)}}}(function(pt){ut.push(pt)}),ht=function(pt,ft,gt){return ft===0&&ie.indexOf(gt[et.length])!==-1||gt.match(nt)?pt:"."+o};function ct(pt,ft,gt,yt){yt===void 0&&(yt="&");var Ut=pt.replace(se,""),Ft=ft&>?gt+" "+ft+" { "+Ut+" }":Ut;return o=yt,et=ft,tt=new RegExp("\\"+et+"\\b","g"),nt=new RegExp("(\\"+et+"\\b){2,}"),lt(gt||!ft?"":ft,Ft)}return lt.use([].concat(at,[function(pt,ft,gt){pt===2&>.length&>[0].lastIndexOf(et)>0&&(gt[0]=gt[0].replace(tt,ht))},dt,function(pt){if(pt===-2){var ft=ut;return ut=[],ft}}])),ct.hash=at.length?at.reduce(function(pt,ft){return ft.name||D(15),ee(pt,ft.name)},5381).toString():"",ct}var ce=React$1.createContext();ce.Consumer;var le=React$1.createContext(),de=(le.Consumer,new X),he$1=ae();function pe(){return reactExports.useContext(ce)||de}function fe(){return reactExports.useContext(le)||he$1}var ye=function(){function s(o,et){var tt=this;this.inject=function(nt,rt){rt===void 0&&(rt=he$1);var it=tt.name+rt.hash;nt.hasNameForId(tt.id,it)||nt.insertRules(tt.id,it,rt(tt.rules,it,"@keyframes"))},this.toString=function(){return D(12,String(tt.name))},this.name=o,this.id="sc-keyframes-"+o,this.rules=et}return s.prototype.getName=function(o){return o===void 0&&(o=he$1),this.name+o.hash},s}(),ve=/([A-Z])/,ge=/([A-Z])/g,Se=/^ms-/,we=function(s){return"-"+s.toLowerCase()};function Ee(s){return ve.test(s)?s.replace(ge,we).replace(Se,"-ms-"):s}var be=function(s){return s==null||s===!1||s===""};function _e(s,o,et,tt){if(Array.isArray(s)){for(var nt,rt=[],it=0,ot=s.length;it1?o-1:0),tt=1;tt?@[\\\]^`{|}~-]+/g,De=/(^-|-$)/g;function je(s){return s.replace(Re,"-").replace(De,"")}var Te=function(s){return Q(te(s)>>>0)};function xe(s){return typeof s=="string"&&!0}var ke=function(s){return typeof s=="function"||typeof s=="object"&&s!==null&&!Array.isArray(s)},Ve=function(s){return s!=="__proto__"&&s!=="constructor"&&s!=="prototype"};function Be(s,o,et){var tt=s[et];ke(o)&&ke(tt)?ze(tt,o):s[et]=o}function ze(s){for(var o=arguments.length,et=new Array(o>1?o-1:0),tt=1;tt=0||(St[Lt]=vt[Lt]);return St}(o,["componentId"]),mt=Ut&&Ut+"-"+(xe(yt)?yt:je(b(yt)));return Ye(yt,y({},Ft,{attrs:dt,componentId:mt}),et)},Object.defineProperty(ct,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(yt){this._foldedDefaultProps=tt?ze({},s.defaultProps,yt):yt}}),Object.defineProperty(ct,"toString",{value:function(){return"."+ct.styledComponentId}}),nt&&m(ct,s,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),ct}var qe=function(s){return function o(et,tt,nt){if(nt===void 0&&(nt=w),!reactIsExports.isValidElementType(tt))return D(1,String(tt));var rt=function(){return et(tt,nt,Ae.apply(void 0,arguments))};return rt.withConfig=function(it){return o(et,tt,y({},nt,{},it))},rt.attrs=function(it){return o(et,tt,y({},nt,{attrs:Array.prototype.concat(nt.attrs,it).filter(Boolean)}))},rt}(Ye,s)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach(function(s){qe[s]=qe(s)});const styled=qe;function LayerIcon({active:s}){return jsxs$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{d:"M9.00001 10.9267L4.35287 7.05273L9.00001 3.17878L13.6471 7.05273L9.00001 10.9267Z",stroke:s?"#FFF":"#BAC4E2",strokeWidth:"2"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.71179 11.4992L8.35968 16.2074L9 16.7411L9.64031 16.2074L15.2882 11.4992L13.7265 10.1973L9 14.1374L4.27352 10.1973L2.71179 11.4992Z",fill:s?"#FFF":"#BAC4E2"})]})}function EyeIcon(){return jsxs$2("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.14398 11.4616C4.82104 7.02853 8.09047 4.54999 12 4.54999C15.9095 4.54999 19.179 7.02853 21.856 11.4616C22.0476 11.7789 22.048 12.1761 21.8571 12.4937C19.191 16.9292 15.921 19.4071 12 19.4071C8.07895 19.4071 4.80905 16.9292 2.14292 12.4937C1.95198 12.1761 1.95239 11.7789 2.14398 11.4616ZM4.17638 11.9797C6.57637 15.7502 9.1981 17.4071 12 17.4071C14.8019 17.4071 17.4236 15.7502 19.8236 11.9797C17.4121 8.20659 14.7903 6.54999 12 6.54999C9.20971 6.54999 6.58787 8.20659 4.17638 11.9797Z",fill:"white"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.0644 14.9358C13.662 14.9358 14.9572 13.6406 14.9572 12.0429C14.9572 11.1993 14.5961 10.44 14.02 9.91118C13.505 9.43857 12.8184 9.15009 12.0644 9.15009C10.4667 9.15009 9.17151 10.4453 9.17151 12.0429C9.17151 13.6406 10.4667 14.9358 12.0644 14.9358Z",fill:"white"})]})}function EyeCloseIcon(){return jsx$2("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.34223 14.6222C7.16729 14.0938 6.06407 13.3052 5.03075 12.2761L2.64019 14.2682L1.35983 12.7318L3.70532 10.7772C3.1631 10.087 2.64239 9.32476 2.14288 8.49375L3.85703 7.46338C6.34318 11.5994 9.07328 13.4071 12 13.4071C14.9266 13.4071 17.6567 11.5994 20.1429 7.46338L21.857 8.49375C21.3575 9.32474 20.8368 10.087 20.2946 10.7772L22.6402 12.7318L21.3598 14.2682L18.9692 12.2761C17.9359 13.3052 16.8327 14.0938 15.6578 14.6222L16.908 17.3309L15.092 18.169L13.7392 15.238C13.1743 15.3501 12.5946 15.4071 12 15.4071C11.4053 15.4071 10.8256 15.3501 10.2608 15.238L8.90796 18.169L7.09204 17.3309L8.34223 14.6222Z",fill:"#657197"})})}function Warning(){return jsx$2("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{d:"M9 13H11V15H9V13ZM9 5H11V11H9V5ZM9.99 0C4.47 0 0 4.48 0 10C0 15.52 4.47 20 9.99 20C15.52 20 20 15.52 20 10C20 4.48 15.52 0 9.99 0ZM10 18C5.58 18 2 14.42 2 10C2 5.58 5.58 2 10 2C14.42 2 18 5.58 18 10C18 14.42 14.42 18 10 18Z",fill:"#BAC4E2"})})}function ConfigArrow(){return jsxs$2("svg",{width:"11",height:"40",viewBox:"0 0 11 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.23327 2L6.23327 40L4.7666 40L4.7666 2L6.23327 2Z",fill:"#18D2FF"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.50546 2.90731L1.624 7.05859L0.586914 5.94941L4.98691 1.24352C5.2733 0.937231 5.73762 0.937231 6.024 1.24352L10.424 5.94941L9.38691 7.05859L5.50546 2.90731Z",fill:"#18D2FF"})]})}function CheckIcon(){return jsx$2("svg",{width:"14",height:"12",viewBox:"0 0 14 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.5392 2.02248L4.48528 11.3639L0.162109 6.90344L1.23921 5.85948L4.48528 9.2086L12.4621 0.978516L13.5392 2.02248Z",fill:"white"})})}function WaypointToggleIcon(){return jsxs$2("svg",{width:"20",height:"24",viewBox:"0 0 20 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 17.8438 7.69922)",stroke:"#BAC4E2",strokeWidth:"0.75"}),jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 13.4609 14.1641)",stroke:"#BAC4E2",strokeWidth:"0.75"}),jsx$2("path",{d:"M15.7656 10.2734L13.2578 13.8471",stroke:"#BAC4E2",strokeWidth:"0.75",strokeLinecap:"round"}),jsx$2("path",{d:"M7.04688 10.2734L4.53906 13.8471",stroke:"#BAC4E2",strokeWidth:"0.75",strokeLinecap:"round"}),jsx$2("path",{d:"M8.71094 10.2734L11.2187 13.8471",stroke:"#BAC4E2",strokeWidth:"0.75",strokeLinecap:"round"}),jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 9.07812 7.69922)",stroke:"#BAC4E2",strokeWidth:"0.75"}),jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 4.69336 14.1641)",stroke:"#BAC4E2",strokeWidth:"0.75"})]})}function BooleanToggleTrueIcon({onClick:s}){return jsxs$2("svg",{width:"36",height:"22",viewBox:"0 0 36 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("mask",{id:"mask0_471_35715",maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"36",height:"22",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M36 0H0V22H36V0ZM25 21C30.5228 21 35 16.5228 35 11C35 5.47715 30.5228 1 25 1C19.4772 1 15 5.47715 15 11C15 16.5228 19.4772 21 25 21Z",fill:"#D9D9D9"})}),jsx$2("g",{mask:"url(#mask0_471_35715)",children:jsx$2("rect",{x:"3",y:"7",width:"30",height:"9",rx:"4.5",fill:"#282F45",onClick:()=>s&&s()})}),jsx$2("circle",{cx:"25",cy:"11",r:"8",fill:"#18D2FF",onClick:()=>s&&s()})]})}function BooleanToggleFalseIcon({onClick:s}){return jsxs$2("svg",{width:"36",height:"22",viewBox:"0 0 36 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("mask",{id:"mask0_508_180629",maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"36",height:"22",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M36 0H0V22H36V0ZM11 21C16.5228 21 21 16.5228 21 11C21 5.47715 16.5228 1 11 1C5.47715 1 1 5.47715 1 11C1 16.5228 5.47715 21 11 21Z",fill:"#D9D9D9"})}),jsx$2("g",{mask:"url(#mask0_508_180629)",children:jsx$2("rect",{x:"3",y:"7",width:"30",height:"9",rx:"4.5",fill:"#282F45"})}),jsx$2("circle",{cx:"11",cy:"11",r:"8",fill:"#BAC4E2"})]})}function WaypointsPathToggleIcon(){return jsx$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{d:"M1.29297 16.293L16.293 1.29297",stroke:"#BAC4E2",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"4 4"})})}function PathToggleIcon(){return jsx$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{d:"M1.29297 16.293L16.293 1.29297",stroke:"#18D2FF",strokeWidth:"2",strokeLinecap:"round"})})}function PathEyeIcon(){return jsx$2("svg",{width:"16",height:"9",viewBox:"0 0 16 9",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.25881 5.96492C4.37723 5.56852 3.54948 4.97678 2.7742 4.20449L0.98113 5.69872L0.020853 4.54639L1.78023 3.08024C1.37381 2.56284 0.983494 1.9914 0.609059 1.36849L1.89468 0.595703C3.75929 3.69771 5.80686 5.05352 8.00187 5.05352C10.1969 5.05352 12.2444 3.69771 14.1091 0.595703L15.3947 1.36849C15.0199 1.99189 14.6293 2.56374 14.2225 3.08145L15.9805 4.54639L15.0202 5.69872L13.2284 4.20558C12.4536 4.97721 11.6264 5.56852 10.7454 5.96472L11.6829 7.99609L10.321 8.62468L9.30648 6.42661C8.88276 6.51076 8.44793 6.55352 8.00187 6.55352C7.55597 6.55352 7.1213 6.5108 6.69773 6.4267L5.68328 8.62468L4.32134 7.99609L5.25881 5.96492Z",fill:"#BAC4E2"})})}function CLoseIcon(){return jsxs$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.9688 14.0304L3.96875 5.03039L5.02941 3.96973L14.0294 12.9697L12.9688 14.0304Z",fill:"white"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.03125 14.0304L14.0312 5.03039L12.9706 3.96973L3.97059 12.9697L5.03125 14.0304Z",fill:"white"})]})}var LayerType=(s=>(s.CONTAINER="container",s.TRACKABLE="trackable",s.AXIS="axis",s.OTHER="other",s))(LayerType||{}),Rn=Object.defineProperty,Bn=(s,o,et)=>o in s?Rn(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,he=(s,o,et)=>(Bn(s,typeof o!="symbol"?o+"":o,et),et);const DEFAULT_FORMANT_API_URL="https://api.formant.io";function whichFormantApiUrl(s,o,et){try{if(et){if(et.includes("app-dev.formant.io")||et.includes("localhost"))return"https://api-dev.formant.io";if(et.includes("app-stage.formant.io"))return"https://api-stage.formant.io";if(et.includes("app.formant.io"))return"https://api.formant.io"}if(o.get("formant_stage"))return"https://api-stage.formant.io";if(o.get("formant_dev"))return"https://api-dev.formant.io";if(o.get("formant_local"))return"https://api.formant.local";if(o.get("formant_url")){const tt=o.get("formant_url");if(tt!==null)try{return new URL(tt).origin}catch{console.warn(`Ignoring malformed \`formant_url\` url parameter: ${tt}`)}}}catch{}return typeof s<"u"&&"FORMANT_API_URL"in s&&typeof s.FORMANT_API_URL=="string"?s.FORMANT_API_URL:DEFAULT_FORMANT_API_URL}const FORMANT_API_URL=whichFormantApiUrl(typeof window<"u"?window:globalThis,new URLSearchParams(typeof window<"u"&&window.location?window.location.search:void 0),typeof window<"u"&&window.location?window.location.host:void 0);var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}var base64={exports:{}};/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */base64.exports;(function(s,o){(function(et){var tt=o,nt=s&&s.exports==tt&&s,rt=typeof commonjsGlobal=="object"&&commonjsGlobal;(rt.global===rt||rt.window===rt)&&(et=rt);var it=function(ct){this.message=ct};it.prototype=new Error,it.prototype.name="InvalidCharacterError";var ot=function(ct){throw new it(ct)},st="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",at=/[\t\n\f\r ]/g,lt=function(ct){ct=String(ct).replace(at,"");var pt=ct.length;pt%4==0&&(ct=ct.replace(/==?$/,""),pt=ct.length),(pt%4==1||/[^+a-zA-Z0-9/]/.test(ct))&&ot("Invalid character: the string to be decoded is not correctly encoded.");for(var ft=0,gt,yt,Ut="",Ft=-1;++Ft>(-2*ft&6)));return Ut},ut=function(ct){ct=String(ct),/[^\0-\xFF]/.test(ct)&&ot("The string to be encoded contains characters outside of the Latin1 range.");for(var pt=ct.length%3,ft="",gt=-1,yt,Ut,Ft,mt,vt=ct.length-pt;++gt>18&63)+st.charAt(mt>>12&63)+st.charAt(mt>>6&63)+st.charAt(mt&63);return pt==2?(yt=ct.charCodeAt(gt)<<8,Ut=ct.charCodeAt(++gt),mt=yt+Ut,ft+=st.charAt(mt>>10)+st.charAt(mt>>4&63)+st.charAt(mt<<2&63)+"="):pt==1&&(mt=ct.charCodeAt(gt),ft+=st.charAt(mt>>2)+st.charAt(mt<<4&63)+"=="),ft},dt={encode:ut,decode:lt,version:"1.0.0"};if(tt&&!tt.nodeType)if(nt)nt.exports=dt;else for(var ht in dt)dt.hasOwnProperty(ht)&&(tt[ht]=dt[ht]);else et.base64=dt})(commonjsGlobal)})(base64,base64.exports);var base64Exports=base64.exports;class LoginFailureError extends Error{constructor(o){super("login failed"),he(this,"reason"),this.reason=o,this.name="LoginFailureError",Object.setPrototypeOf(this,new.target.prototype)}}class LoginChallengedError extends Error{constructor(o){super("login challenged"),he(this,"challenge"),this.challenge=o,this.name="LoginChallengedError",Object.setPrototypeOf(this,new.target.prototype)}}class AuthenticationStore{constructor({apiUrl:o,refreshAuthToken:et,addAccessTokenRefreshListener:tt}){he(this,"_refreshToken"),he(this,"_isShareToken",!1),he(this,"_currentOrganization"),he(this,"_currentUser"),he(this,"_defaultDeviceId"),he(this,"_token"),he(this,"_waitingForAuth",new Set),he(this,"_refreshTimer"),he(this,"_apiUrl"),he(this,"_refreshAuthToken"),he(this,"_addAccessTokenRefreshListener"),this._apiUrl=o,this._refreshAuthToken=et,this._addAccessTokenRefreshListener=tt}get token(){return this._token}get currentUser(){return this._currentUser}get currentOrganization(){return this._currentOrganization}get defaultDeviceId(){return this._defaultDeviceId}get refreshToken(){return this._refreshToken}get isShareToken(){return this._isShareToken}async login(o,et,tt={}){const{advanced:nt=!1}=tt;try{const rt=await fetch(`${this._apiUrl}/v1/admin/auth/login`,{method:"POST",body:JSON.stringify({email:o,password:et}),headers:{"Content-Type":"application/json"}}),it=await rt.json();if(rt.status!==200)throw new LoginFailureError(it.message);if("challenge"in it)throw new LoginChallengedError(it.challenge);const{authentication:ot}=it;return await this.loginWithToken(ot.accessToken,ot.refreshToken),nt?{result:"success",authentication:ot}:ot}catch(rt){if(nt||console.error("login() failed",{err:rt}),this._waitingForAuth.forEach(it=>it(!1)),this._waitingForAuth.clear(),!nt)throw rt;return rt instanceof LoginChallengedError?{result:"challenged",challenge:rt.challenge}:{result:"failure",reason:rt instanceof LoginFailureError?rt.reason:rt instanceof Error?rt.message:String(rt)}}}async loginWithToken(o,et){var tt;const nt=JSON.parse(base64Exports.decode(o.split(".")[1]));try{let rt;if(this._isShareToken=nt["formant:claims"]&&nt["formant:claims"].type=="share",nt["formant:claims"]&&(this._currentOrganization=nt["formant:claims"].organizationId),nt["custom:organization_id"]&&(this._currentOrganization=nt["custom:organization_id"]),this._isShareToken||(rt=nt.sub),nt["formant:claims"]&&nt["formant:claims"].userId&&(rt=nt["formant:claims"].userId),rt&&((tt=this._currentUser)==null?void 0:tt.id)!==rt){const it=await fetch(`${this._apiUrl}/v1/admin/users/${rt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+o}}),ot=await it.json();if(it.status!==200)throw new Error(ot.message);this._currentUser=ot}this._token=o,this._waitingForAuth.forEach(it=>it(!0))}catch(rt){console.error("loginWithToken() failed",{err:rt}),this._waitingForAuth.forEach(it=>it(!1))}finally{this._waitingForAuth.clear()}et&&(this._refreshToken=et,setInterval(async()=>{if(this._refreshToken){const rt=await(await fetch(`${this._apiUrl}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:this._refreshToken})})).json();this._token=rt.authentication.accessToken}},1e3*60*60))}isAuthenticated(){return this._token!==void 0}async loginToPeer(o,et,tt){if((await fetch(`${o}/login`,{method:"POST",body:JSON.stringify({username:et,password:tt}),headers:{"Content-Type":"application/json"}})).status!==200)throw new LoginFailureError("Invalid authentication")}getCurrentUser(){return this._currentUser}async waitTilAuthenticated(){return this.token!==void 0?!0:new Promise(o=>{this._waitingForAuth.add(o)})}async listenForRefresh(){const o=()=>{this._refreshTimer=void 0,this._refreshAuthToken()};this._addAccessTokenRefreshListener(et=>{this._refreshTimer&&clearTimeout(this._refreshTimer),this._refreshTimer=setTimeout(o,36e5),this.loginWithToken(et)}),this._refreshTimer=setTimeout(o,36e5)}async forgotPassword(o){await fetch(`${this._apiUrl}/v1/admin/auth/forgot-password`,{method:"POST",body:JSON.stringify({email:o}),headers:{"Content-Type":"application/json"}})}async confirmForgotPassword(o){return(await fetch(`${this._apiUrl}/v1/admin/auth/confirm-forgot-password`,{method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}})).ok}async respondToNewPasswordRequiredChallenge(o){const et=await fetch(`${this._apiUrl}/v1/admin/auth/respond-to-new-password-required-challenge`,{method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}});if(et.ok)return await et.json();throw new Error("respond-to-new-password-required-challenge failed")}async loginWithGoogle(o){return await(await fetch(`${this._apiUrl}/v1/admin/auth/login-google`,{method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}})).json()}async refresh(o){const et=await(await fetch(`${this._apiUrl}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:o})})).json();await this.loginWithToken(et.authentication.accessToken,o)}async checkSso(o,et){return await(await fetch(`${this._apiUrl}/v1/admin/auth/check-sso`,{method:"POST",body:JSON.stringify({email:o,allowUserAutoCreation:et}),headers:{"Content-Type":"application/json"}})).json()}async loginWithSso(o,et){const tt=await(await fetch(`${this._apiUrl}/v1/admin/auth/login-sso`,{method:"POST",body:JSON.stringify({token:o,refreshToken:et}),headers:{"Content-Type":"application/json"}})).json();if(!tt.authentication)throw new Error("Failed to login with SSO");return await this.loginWithToken(tt.authentication.accessToken,tt.authentication.refreshToken)}}function getCurrentModuleContext(){return typeof window<"u"&&window.location?new URLSearchParams(window.location.search).get("module"):null}function sendAppMessage(s){if(!(window&&window.parent))throw new Error("cannot send message to non-existent parent");window.parent.postMessage(s,"*")}function refreshAuthToken(){const s=getCurrentModuleContext();if(!s)throw new Error("No module context");sendAppMessage({type:"refresh_auth_token",module:s})}function addAccessTokenRefreshListener(s){function o(et){const tt=et.data;tt.type==="auth_token"&&s(tt.token)}return window.addEventListener("message",o),()=>{window.removeEventListener("message",o)}}const Authentication=new AuthenticationStore({apiUrl:FORMANT_API_URL,refreshAuthToken,addAccessTokenRefreshListener});async function getModuleConfiguration(s){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/module-configurations/${s}`,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).configuration}function disableAnalyticsBottomBar(){sendAppMessage({type:"hide_analytics_date_picker"})}function goToDevice(s){sendAppMessage({type:"go_to_device",deviceId:s})}function goToTime(s){sendAppMessage({type:"go_to_time",time:s.getTime()})}function requestModuleData(){const s=getCurrentModuleContext();if(!s)throw new Error("No module context");sendAppMessage({type:"request_module_data",module:s})}function sendChannelData(s,o){const et=getCurrentModuleContext();if(!et)throw new Error("No module context");sendAppMessage({type:"send_channel_data",source:et,channel:s,data:o})}function setModuleDateTimeRange(s,o){const et=getCurrentModuleContext();if(!et)throw new Error("No module context");sendAppMessage({type:"set_module_data_time_range",module:et,before:s,after:o||0})}function setupModuleMenus(s){const o=getCurrentModuleContext();if(!o)throw new Error("No module context");sendAppMessage({type:"setup_module_menus",module:o,menus:s})}function showMessage(s){sendAppMessage({type:"show_message",message:s})}function addChannelDataListener(s,o){const et=tt=>{const nt=tt.data;nt.type==="channel_data"&&nt.channel===s&&o({source:nt.source,data:nt.data})};return window.addEventListener("message",et),()=>window.removeEventListener("message",et)}function addMenuListener(s){const o=et=>{const tt=et.data;tt.type==="module_menu_item_clicked"&&s(tt.menu)};return window.addEventListener("message",o),()=>window.removeEventListener("message",o)}function addModuleConfigurationListener(s){const o=et=>{const tt=et.data;tt.type==="module_configuration"&&s(tt)};return window.addEventListener("message",o),()=>window.removeEventListener("message",o)}function addModuleDataListener(s){const o=getCurrentModuleContext();o&&sendAppMessage({type:"request_module_data",module:o});const et=tt=>{const nt=tt.data;nt.type==="module_data"&&s({streams:nt.streams,time:nt.time,queryRange:nt.queryRange})};return window.addEventListener("message",et),()=>window.removeEventListener("message",et)}function addOverviewDeviceListener(s){sendAppMessage({type:"request_devices"});const o=et=>{const tt=et.data;tt.type==="overview_devices"&&s(tt.data)};return window.addEventListener("message",o),()=>window.removeEventListener("message",o)}function _typeof$1(s){return _typeof$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o){return typeof o}:function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof$1(s)}function toInteger(s){if(s===null||s===!0||s===!1)return NaN;var o=Number(s);return isNaN(o)?o:o<0?Math.ceil(o):Math.floor(o)}function requiredArgs(s,o){if(o.length1?"s":"")+" required, but only "+o.length+" present")}function toDate(s){requiredArgs(1,arguments);var o=Object.prototype.toString.call(s);return s instanceof Date||_typeof$1(s)==="object"&&o==="[object Date]"?new Date(s.getTime()):typeof s=="number"||o==="[object Number]"?new Date(s):((typeof s=="string"||o==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function addDays(s,o){requiredArgs(2,arguments);var et=toDate(s),tt=toInteger(o);return isNaN(tt)?new Date(NaN):(tt&&et.setDate(et.getDate()+tt),et)}function addMonths(s,o){requiredArgs(2,arguments);var et=toDate(s),tt=toInteger(o);if(isNaN(tt))return new Date(NaN);if(!tt)return et;var nt=et.getDate(),rt=new Date(et.getTime());rt.setMonth(et.getMonth()+tt+1,0);var it=rt.getDate();return nt>=it?rt:(et.setFullYear(rt.getFullYear(),rt.getMonth(),nt),et)}function addMilliseconds(s,o){requiredArgs(2,arguments);var et=toDate(s).getTime(),tt=toInteger(o);return new Date(et+tt)}var MILLISECONDS_IN_HOUR=36e5;function addHours(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addMilliseconds(s,et*MILLISECONDS_IN_HOUR)}var defaultOptions={};function getDefaultOptions(){return defaultOptions}function startOfWeek(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs(1,arguments);var lt=getDefaultOptions(),ut=toInteger((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate(s),ht=dt.getDay(),ct=(ht=it)throw new RangeError("Invalid interval");var ot=[],st=tt,at=Number((et=o?.step)!==null&&et!==void 0?et:1);if(at<1||isNaN(at))throw new RangeError("`options.step` must be a number equal to or greater than 1");for(;st.getTime()<=it;)ot.push(toDate(st)),st=addMinutes(st,at);return ot}function eachMonthOfInterval(s){requiredArgs(1,arguments);var o=s||{},et=toDate(o.start),tt=toDate(o.end),nt=tt.getTime(),rt=[];if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var it=et;for(it.setHours(0,0,0,0),it.setDate(1);it.getTime()<=nt;)rt.push(toDate(it)),it.setMonth(it.getMonth()+1);return rt}function startOfQuarter(s){requiredArgs(1,arguments);var o=toDate(s),et=o.getMonth(),tt=et-et%3;return o.setMonth(tt,1),o.setHours(0,0,0,0),o}function eachQuarterOfInterval(s){requiredArgs(1,arguments);var o=s||{},et=toDate(o.start),tt=toDate(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=startOfQuarter(et),it=startOfQuarter(tt);nt=it.getTime();for(var ot=[],st=rt;st.getTime()<=nt;)ot.push(toDate(st)),st=addQuarters(st,1);return ot}function eachWeekOfInterval(s,o){requiredArgs(1,arguments);var et=s||{},tt=toDate(et.start),nt=toDate(et.end),rt=nt.getTime();if(!(tt.getTime()<=rt))throw new RangeError("Invalid interval");var it=startOfWeek(tt,o),ot=startOfWeek(nt,o);it.setHours(15),ot.setHours(15),rt=ot.getTime();for(var st=[],at=it;at.getTime()<=rt;)at.setHours(0),st.push(toDate(at)),at=addWeeks(at,1),at.setHours(15);return st}function startOfMonth(s){requiredArgs(1,arguments);var o=toDate(s);return o.setDate(1),o.setHours(0,0,0,0),o}function endOfYear(s){requiredArgs(1,arguments);var o=toDate(s),et=o.getFullYear();return o.setFullYear(et+1,0,0),o.setHours(23,59,59,999),o}function startOfYear(s){requiredArgs(1,arguments);var o=toDate(s),et=new Date(0);return et.setFullYear(o.getFullYear(),0,1),et.setHours(0,0,0,0),et}function eachYearOfInterval(s){requiredArgs(1,arguments);var o=s||{},et=toDate(o.start),tt=toDate(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=[],it=et;for(it.setHours(0,0,0,0),it.setMonth(0,1);it.getTime()<=nt;)rt.push(toDate(it)),it.setFullYear(it.getFullYear()+1);return rt}function endOfHour(s){requiredArgs(1,arguments);var o=toDate(s);return o.setMinutes(59,59,999),o}function endOfWeek(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs(1,arguments);var lt=getDefaultOptions(),ut=toInteger((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate(s),ht=dt.getDay(),ct=(ht=1&&ht<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var ct=new Date(0);ct.setFullYear(ut+1,0,ht),ct.setHours(0,0,0,0);var pt=startOfWeek(ct,o),ft=new Date(0);ft.setFullYear(ut,0,ht),ft.setHours(0,0,0,0);var gt=startOfWeek(ft,o);return lt.getTime()>=pt.getTime()?ut+1:lt.getTime()>=gt.getTime()?ut:ut-1}function startOfWeekYear(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs(1,arguments);var lt=getDefaultOptions(),ut=toInteger((et=(tt=(nt=(rt=o?.firstWeekContainsDate)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.firstWeekContainsDate)!==null&&nt!==void 0?nt:lt.firstWeekContainsDate)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.firstWeekContainsDate)!==null&&et!==void 0?et:1),dt=getWeekYear(s,o),ht=new Date(0);ht.setFullYear(dt,0,ut),ht.setHours(0,0,0,0);var ct=startOfWeek(ht,o);return ct}var MILLISECONDS_IN_WEEK=6048e5;function getWeek(s,o){requiredArgs(1,arguments);var et=toDate(s),tt=startOfWeek(et,o).getTime()-startOfWeekYear(et,o).getTime();return Math.round(tt/MILLISECONDS_IN_WEEK)+1}function getYear(s){return requiredArgs(1,arguments),toDate(s).getFullYear()}function startOfHour(s){requiredArgs(1,arguments);var o=toDate(s);return o.setMinutes(0,0,0),o}function subDays(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addDays(s,-et)}function roundToNearestMinutes(s,o){var et;if(arguments.length<1)throw new TypeError("1 argument required, but only none provided present");var tt=toInteger((et=o?.nearestTo)!==null&&et!==void 0?et:1);if(tt<1||tt>30)throw new RangeError("`options.nearestTo` must be between 1 and 30");var nt=toDate(s),rt=nt.getSeconds(),it=nt.getMinutes()+rt/60,ot=getRoundingMethod(o?.roundingMethod),st=ot(it/tt)*tt,at=it%tt,lt=Math.round(at/tt)*tt;return new Date(nt.getFullYear(),nt.getMonth(),nt.getDate(),nt.getHours(),st+lt)}function subMonths(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addMonths(s,-et)}function subHours(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addHours(s,-et)}function subMinutes(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addMinutes(s,-et)}function subQuarters(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addQuarters(s,-et)}function subWeeks(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addWeeks(s,-et)}function subYears(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addYears(s,-et)}const millisecond$2=1,second$2=1e3,minute$2=60*second$2,hour$2=60*minute$2,day$2=24*hour$2,week$2=7*day$2,month$2=30*day$2,year$2=365*day$2,duration$2={millisecond:millisecond$2,second:second$2,minute:minute$2,hour:hour$2,day:day$2,week:week$2,month:month$2,year:year$2};function filterDataByType$1(s,o){return s.filter(et=>o.includes(et.type))}function filterDataByTime$1(s,o,et){const tt=o.getTime(),nt=et.getTime();return s.map(rt=>({...rt,points:rt.points.filter(([it])=>it>=tt&&itrt.length>0)}let StoreCache$1=class{constructor({capacity:s,timeout:o}={}){he(this,"entries",new Map),he(this,"metadata",new Map),he(this,"capacity"),he(this,"staleIntervalMs"),this.capacity=s||1e4,this.staleIntervalMs=o||duration$2.minute}get(s,o){const et=this.keyToCacheKey(s);return this.isStale(et)&&!this.isGenerating(et)&&o&&this.generate(s,o),this.entries.get(et)}set(s,o){const et=this.keyToCacheKey(s);this.metadata.set(et,{generating:!1,staleAt:performance.now()+this.staleIntervalMs});const tt=this.entries.get(et);JSON.stringify(tt)===JSON.stringify(o)||(this.entries.set(et,o),this.enforceMaxSize())}clear(){this.entries.clear(),[...this.metadata.values()].forEach(s=>s.generating=!1)}clearKey(s){this.metadata.delete(s),this.entries.delete(s)}keyToCacheKey(s){return JSON.stringify(s)}enforceMaxSize(){for(;this.metadata.size>this.capacity&&this.metadata.size>0;){const[s]=[...this.metadata.entries()].reduce(([o,et],[tt,nt])=>nt.staleAt{const it=this.metadata.get(et);return it?.generating!==nt||this.set(s,rt),rt}).catch(rt=>{throw this.metadata.delete(et),rt});this.metadata.set(et,{...tt,generating:nt,staleAt:performance.now()+this.staleIntervalMs})}};async function queryTelemetry(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}let QueryStore$1=class{constructor(){he(this,"queryStoreCache",new StoreCache$1({capacity:1e4,timeout:20*duration$2.second})),he(this,"liveQueryStoreCache",new StoreCache$1({capacity:1e4,timeout:200*duration$2.millisecond}))}moduleQuery(s,o,et,tt,nt,rt=!1){const it={...s,names:[...o],types:[...et]},ot=this.query(it,tt,nt,rt);return ot===void 0||ot==="too much data"?ot:filterDataByType$1(ot,et)}query(s,o,et,tt=!1){const nt={...s,start:startOfMinute(o).toISOString(),end:tt?et.toISOString():addMinutes(roundToNearestMinutes(et),1).toISOString(),latestOnly:tt},rt=et>addSeconds(new Date,-20);let it;return rt?it=this.liveQueryCache(nt):it=this.queryCache(nt),!it||it==="too much data"||tt?it:filterDataByTime$1(it,o,et)}queryCache(s){return this.queryStoreCache.get(s,async()=>{try{return await queryTelemetry(s)}catch(o){throw o}})}liveQueryCache(s){return this.liveQueryStoreCache.get(s,async()=>{try{return await queryTelemetry(s)}catch(o){throw o}})}};const queryStore=new QueryStore$1;function addStreamListener(s,o,et){const tt=nt=>{const rt=nt.data;if(rt.type==="module_data"){const{start:it,end:ot}=rt.queryRange;et(queryStore.moduleQuery({},s,o,new Date(it),new Date(ot),!1))}};return window.addEventListener("message",tt),()=>window.removeEventListener("message",tt)}async function getDate(s,o,et){return new Promise(tt=>{sendAppMessage({type:"request_date",minTime:o,maxTime:et,time:s});const nt=rt=>{const it=rt.data;it.type==="date_response"&&(window.removeEventListener("message",nt),tt(it.data))};window.addEventListener("message",nt)})}async function prompt(s,o){return new Promise(et=>{const tt=Math.random().toString();sendAppMessage({type:"prompt",promptId:tt,schema:s,okText:o?.okText,cancelText:o?.cancelText});const nt=rt=>{const it=rt.data;it.type==="prompt_response"&&it.promptId===tt&&et(it.data),window.removeEventListener("message",nt)};window.addEventListener("message",nt)})}const Yt=class{static isModule(){return getCurrentModuleContext()!==null}static async getCurrentModuleConfiguration(){let s=new URLSearchParams("");typeof window<"u"&&window.location&&(s=new URLSearchParams(window.location.search));const o=s.get("configuration");if(!(o===null||o.trim()===""))return getModuleConfiguration(o.trim())}static get isOnline(){return Yt._isOnline}static listenForConnectionEvents(){const s=o=>{const{data:et}=o;et.type==="formant_online"&&(this._isOnline=et.online)};return window.addEventListener("message",s),()=>window.removeEventListener("message",s)}static checkConnection(s=1e3){return new Promise((o,et)=>{const tt=setTimeout(()=>et(new Error("deadline expired: took too long")),s),nt=rt=>{window.removeEventListener("message",nt),clearTimeout(tt);const{data:it}=rt;it.type==="formant_online"&&(this._isOnline=it.online,o(it.online))};window.addEventListener("message",nt),sendAppMessage({type:"formant_online"})})}static waitForConnection(s=5e3){let o=!1;const et=new Promise((rt,it)=>{setTimeout(()=>{o=!0,it(new Error("deadline expired: took too long"))},s)}),tt=rt=>new Promise(it=>setTimeout(it,rt)),nt=async()=>{for(await tt(50);!o&&!(this.isOnline||await this.checkConnection);)await tt(500)};return Promise.race([et,nt()])}};let App=Yt;he(App,"getCurrentModuleContext",getCurrentModuleContext),he(App,"disableAnalyticsBottomBar",disableAnalyticsBottomBar),he(App,"goToDevice",goToDevice),he(App,"goToTime",goToTime),he(App,"refreshAuthToken",refreshAuthToken),he(App,"requestModuleData",requestModuleData),he(App,"sendChannelData",sendChannelData),he(App,"setModuleDateTimeRange",setModuleDateTimeRange),he(App,"setupModuleMenus",setupModuleMenus),he(App,"showMessage",showMessage),he(App,"addAccessTokenRefreshListener",addAccessTokenRefreshListener),he(App,"addChannelDataListener",addChannelDataListener),he(App,"addMenuListener",addMenuListener),he(App,"addModuleConfigurationListener",addModuleConfigurationListener),he(App,"addModuleDataListener",addModuleDataListener),he(App,"addOverviewDeviceListener",addOverviewDeviceListener),he(App,"addStreamListener",addStreamListener),he(App,"getDate",getDate),he(App,"prompt",prompt),he(App,"_isOnline",null);function defined$1(s,o){if(s!==void 0)return s;throw new Error(o||"Value is undefined")}function notNull$1(s,o){if(s!==null)return s;throw new Error(o||"Value is null")}function definedAndNotNull$1(s,o){return notNull$1(defined$1(s,o),o)}var dist={exports:{}};/*! For license information please see index.js.LICENSE.txt */(function(module,exports){(function(s,o){module.exports=o()})(window,function(){return function(s){function o(at){for(var lt,ut,dt=at[0],ht=at[1],ct=0,pt=[];ct1?"s":"")+" required, but only "+qt.length+" present")}function at(Ht){if(Ht===null||Ht===!0||Ht===!1)return NaN;var qt=Number(Ht);return isNaN(qt)?qt:qt<0?Math.ceil(qt):Math.floor(qt)}var lt={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},ut=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,dt=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,ht=/^([+-])(\d{2})(?::?(\d{2}))?$/;function ct(Ht){var qt,on={},Xt=Ht.split(lt.dateTimeDelimiter);if(Xt.length>2)return on;if(/:/.test(Xt[0])?qt=Xt[0]:(on.date=Xt[0],qt=Xt[1],lt.timeZoneDelimiter.test(on.date)&&(on.date=Ht.split(lt.timeZoneDelimiter)[0],qt=Ht.substr(on.date.length,Ht.length))),qt){var dn=lt.timezone.exec(qt);dn?(on.time=qt.replace(dn[1],""),on.timezone=dn[1]):on.time=qt}return on}function pt(Ht,qt){var on=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+qt)+"})|(\\d{2}|[+-]\\d{"+(2+qt)+"})$)"),Xt=Ht.match(on);if(!Xt)return{year:NaN,restDateString:""};var dn=Xt[1]?parseInt(Xt[1]):null,_n=Xt[2]?parseInt(Xt[2]):null;return{year:_n===null?dn:100*_n,restDateString:Ht.slice((Xt[1]||Xt[2]).length)}}function ft(Ht,qt){if(qt===null)return new Date(NaN);var on=Ht.match(ut);if(!on)return new Date(NaN);var Xt=!!on[4],dn=gt(on[1]),_n=gt(on[2])-1,Fn=gt(on[3]),Un=gt(on[4]),On=gt(on[5])-1;if(Xt)return function(hn,wn,Zn){return wn>=1&&wn<=53&&Zn>=0&&Zn<=6}(0,Un,On)?function(hn,wn,Zn){var Pn=new Date(0);Pn.setUTCFullYear(hn,0,4);var $n=Pn.getUTCDay()||7,Tr=7*(wn-1)+Zn+1-$n;return Pn.setUTCDate(Pn.getUTCDate()+Tr),Pn}(qt,Un,On):new Date(NaN);var gn=new Date(0);return function(hn,wn,Zn){return wn>=0&&wn<=11&&Zn>=1&&Zn<=(mt[wn]||(vt(hn)?29:28))}(qt,_n,Fn)&&function(hn,wn){return wn>=1&&wn<=(vt(hn)?366:365)}(qt,dn)?(gn.setUTCFullYear(qt,_n,Math.max(dn,Fn)),gn):new Date(NaN)}function gt(Ht){return Ht?parseInt(Ht):1}function yt(Ht){var qt=Ht.match(dt);if(!qt)return NaN;var on=Ut(qt[1]),Xt=Ut(qt[2]),dn=Ut(qt[3]);return function(_n,Fn,Un){return _n===24?Fn===0&&Un===0:Un>=0&&Un<60&&Fn>=0&&Fn<60&&_n>=0&&_n<25}(on,Xt,dn)?36e5*on+6e4*Xt+1e3*dn:NaN}function Ut(Ht){return Ht&&parseFloat(Ht.replace(",","."))||0}function Ft(Ht){if(Ht==="Z")return 0;var qt=Ht.match(ht);if(!qt)return 0;var on=qt[1]==="+"?-1:1,Xt=parseInt(qt[2]),dn=qt[3]&&parseInt(qt[3])||0;return function(_n,Fn){return Fn>=0&&Fn<=59}(0,dn)?on*(36e5*Xt+6e4*dn):NaN}var mt=[31,null,31,30,31,30,31,31,30,31,30,31];function vt(Ht){return Ht%400==0||Ht%4==0&&Ht%100!=0}var At=et(40);function Lt(Ht){return st(1,arguments),Ht instanceof Date||Object(At.a)(Ht)==="object"&&Object.prototype.toString.call(Ht)==="[object Date]"}function Rt(Ht){st(1,arguments);var qt=Object.prototype.toString.call(Ht);return Ht instanceof Date||Object(At.a)(Ht)==="object"&&qt==="[object Date]"?new Date(Ht.getTime()):typeof Ht=="number"||qt==="[object Number]"?new Date(Ht):(typeof Ht!="string"&&qt!=="[object String]"||typeof console>"u"||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function St(Ht){const qt=function(on,Xt){var dn;st(1,arguments);var _n=at((dn=Xt?.additionalDigits)!==null&&dn!==void 0?dn:2);if(_n!==2&&_n!==1&&_n!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(typeof on!="string"&&Object.prototype.toString.call(on)!=="[object String]")return new Date(NaN);var Fn,Un=ct(on);if(Un.date){var On=pt(Un.date,_n);Fn=ft(On.restDateString,On.year)}if(!Fn||isNaN(Fn.getTime()))return new Date(NaN);var gn,hn=Fn.getTime(),wn=0;if(Un.time&&(wn=yt(Un.time),isNaN(wn)))return new Date(NaN);if(!Un.timezone){var Zn=new Date(hn+wn),Pn=new Date(0);return Pn.setFullYear(Zn.getUTCFullYear(),Zn.getUTCMonth(),Zn.getUTCDate()),Pn.setHours(Zn.getUTCHours(),Zn.getUTCMinutes(),Zn.getUTCSeconds(),Zn.getUTCMilliseconds()),Pn}return gn=Ft(Un.timezone),isNaN(gn)?new Date(NaN):new Date(hn+wn+gn)}(Ht);if(!function(on){if(st(1,arguments),!Lt(on)&&typeof on!="number")return!1;var Xt=Rt(on);return!isNaN(Number(Xt))}(qt))throw new Error(`Invalid ISO 8601 date string (${Ht})`);return qt}const Tt=Math.pow(2,20),Bt=Tt;var xt=et(3),Ct=et(28);function kt(Ht){return it()(Ht,{cycles:!0})}var Nt=function(Ht,qt){var on={};for(var Xt in Ht)Object.prototype.hasOwnProperty.call(Ht,Xt)&&qt.indexOf(Xt)<0&&(on[Xt]=Ht[Xt]);if(Ht!=null&&typeof Object.getOwnPropertySymbols=="function"){var dn=0;for(Xt=Object.getOwnPropertySymbols(Ht);dnon?Object(Ct.a)(On):On;if(!Ht.stack)return{message:kt(Xt(Ht))};const{name:dn,message:_n,stack:Fn}=Ht,Un=Nt(Ht,["name","message","stack"]);return{name:dn,message:_n!==void 0?_n:kt(Xt(Ht)),stack:Fn,meta:Un&&Object.keys(Un).length===0?void 0:Xt(Un)}}function Jt(Ht,qt={}){const{message:on,stack:Xt,meta:dn}=Ot(Ht,qt);return`${Xt||on||""}${dn&&Object.keys(dn).length>0?" -- "+kt(dn):""}`}var Dt=et(236);const Et=Object(Dt.a)();var Pt=et(14),zt=et.n(Pt),en=function(Ht,qt,on,Xt){return new(on||(on=Promise))(function(dn,_n){function Fn(gn){try{On(Xt.next(gn))}catch(hn){_n(hn)}}function Un(gn){try{On(Xt.throw(gn))}catch(hn){_n(hn)}}function On(gn){var hn;gn.done?dn(gn.value):(hn=gn.value,hn instanceof on?hn:new on(function(wn){wn(hn)})).then(Fn,Un)}On((Xt=Xt.apply(Ht,qt||[])).next())})},Kt=function(Ht,qt){var on={};for(var Xt in Ht)Object.prototype.hasOwnProperty.call(Ht,Xt)&&qt.indexOf(Xt)<0&&(on[Xt]=Ht[Xt]);if(Ht!=null&&typeof Object.getOwnPropertySymbols=="function"){var dn=0;for(Xt=Object.getOwnPropertySymbols(Ht);dn{var{timestamp:qt,level:on,message:Xt,error:dn}=Ht,_n=Zt(Ht,["timestamp","level","message","error"]);const Fn=Object.assign(Object.assign({timestamp:qt?St(qt).getTime():new Date().getTime(),level:on.toUpperCase(),message:Xt},dn?{error:Ot(dn)}:{}),{meta:Object.assign(Object.assign({},jt),_n)});return it()(Fn,{cycles:!0})}):ot.format.printf(Ht=>{var{timestamp:qt,level:on,message:Xt,error:dn}=Ht,_n=Zt(Ht,["timestamp","level","message","error"]);let Fn=`${qt||new Date().toISOString()} ${on.toUpperCase()}: ${Xt} `;return Object.keys(_n).length>0&&(Fn+=it()(_n,{cycles:!0})),dn&&(Fn+=` +`+Jt(dn)),Fn}),It=Object(ot.createLogger)({level:xt.g});if(It.add(new ot.transports.Console({format:Vt,level:"debug"})),It.transports.forEach(Ht=>{Ht.silent=!xt.h}),xt.e&&It.add(new nn(xt.e,jt)),xt.i){const Ht=nt.resolve(tt.tmpdir(),`silly-${xt.a}.log`);It.debug("Logging silly logs to file",{filename:Ht}),It.add(new ot.transports.File({filename:Ht,maxsize:1*Bt,maxFiles:10,format:ot.format.combine(($t="silly",Object(ot.format)(qt=>qt.level===$t&&qt)()),Vt),level:"silly"}))}var $t},function(s,o,et){et.d(o,"a",function(){return nt});const tt=864e5,nt={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:tt,week:6048e5,month:2592e6,year:31536e6}},function(s,o){var et,tt,nt=s.exports={};function rt(){throw new Error("setTimeout has not been defined")}function it(){throw new Error("clearTimeout has not been defined")}function ot(ft){if(et===setTimeout)return setTimeout(ft,0);if((et===rt||!et)&&setTimeout)return et=setTimeout,setTimeout(ft,0);try{return et(ft,0)}catch{try{return et.call(null,ft,0)}catch{return et.call(this,ft,0)}}}(function(){try{et=typeof setTimeout=="function"?setTimeout:rt}catch{et=rt}try{tt=typeof clearTimeout=="function"?clearTimeout:it}catch{tt=it}})();var st,at=[],lt=!1,ut=-1;function dt(){lt&&st&&(lt=!1,st.length?at=st.concat(at):ut=-1,at.length&&ht())}function ht(){if(!lt){var ft=ot(dt);lt=!0;for(var gt=at.length;gt;){for(st=at,at=[];++ut1)for(var yt=1;yt=ot())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ot().toString(16)+" bytes");return 0|Vt}function pt(Vt,It){if(at.isBuffer(Vt))return Vt.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(Vt)||Vt instanceof ArrayBuffer))return Vt.byteLength;typeof Vt!="string"&&(Vt=""+Vt);var $t=Vt.length;if($t===0)return 0;for(var Ht=!1;;)switch(It){case"ascii":case"latin1":case"binary":return $t;case"utf8":case"utf-8":case void 0:return nn(Vt).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*$t;case"hex":return $t>>>1;case"base64":return Zt(Vt).length;default:if(Ht)return nn(Vt).length;It=(""+It).toLowerCase(),Ht=!0}}function ft(Vt,It,$t){var Ht=!1;if((It===void 0||It<0)&&(It=0),It>this.length||(($t===void 0||$t>this.length)&&($t=this.length),$t<=0)||($t>>>=0)<=(It>>>=0))return"";for(Vt||(Vt="utf8");;)switch(Vt){case"hex":return Ct(this,It,$t);case"utf8":case"utf-8":return Tt(this,It,$t);case"ascii":return Bt(this,It,$t);case"latin1":case"binary":return xt(this,It,$t);case"base64":return St(this,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return kt(this,It,$t);default:if(Ht)throw new TypeError("Unknown encoding: "+Vt);Vt=(Vt+"").toLowerCase(),Ht=!0}}function gt(Vt,It,$t){var Ht=Vt[It];Vt[It]=Vt[$t],Vt[$t]=Ht}function yt(Vt,It,$t,Ht,qt){if(Vt.length===0)return-1;if(typeof $t=="string"?(Ht=$t,$t=0):$t>2147483647?$t=2147483647:$t<-2147483648&&($t=-2147483648),$t=+$t,isNaN($t)&&($t=qt?0:Vt.length-1),$t<0&&($t=Vt.length+$t),$t>=Vt.length){if(qt)return-1;$t=Vt.length-1}else if($t<0){if(!qt)return-1;$t=0}if(typeof It=="string"&&(It=at.from(It,Ht)),at.isBuffer(It))return It.length===0?-1:Ut(Vt,It,$t,Ht,qt);if(typeof It=="number")return It&=255,at.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?qt?Uint8Array.prototype.indexOf.call(Vt,It,$t):Uint8Array.prototype.lastIndexOf.call(Vt,It,$t):Ut(Vt,[It],$t,Ht,qt);throw new TypeError("val must be string, number or Buffer")}function Ut(Vt,It,$t,Ht,qt){var on,Xt=1,dn=Vt.length,_n=It.length;if(Ht!==void 0&&((Ht=String(Ht).toLowerCase())==="ucs2"||Ht==="ucs-2"||Ht==="utf16le"||Ht==="utf-16le")){if(Vt.length<2||It.length<2)return-1;Xt=2,dn/=2,_n/=2,$t/=2}function Fn(hn,wn){return Xt===1?hn[wn]:hn.readUInt16BE(wn*Xt)}if(qt){var Un=-1;for(on=$t;ondn&&($t=dn-_n),on=$t;on>=0;on--){for(var On=!0,gn=0;gn<_n;gn++)if(Fn(Vt,on+gn)!==Fn(It,gn)){On=!1;break}if(On)return on}return-1}function Ft(Vt,It,$t,Ht){$t=Number($t)||0;var qt=Vt.length-$t;Ht?(Ht=Number(Ht))>qt&&(Ht=qt):Ht=qt;var on=It.length;if(on%2!=0)throw new TypeError("Invalid hex string");Ht>on/2&&(Ht=on/2);for(var Xt=0;Xt>8,_n=Xt%256,Fn.push(_n),Fn.push(dn);return Fn}(It,Vt.length-$t),Vt,$t,Ht)}function St(Vt,It,$t){return It===0&&$t===Vt.length?nt.fromByteArray(Vt):nt.fromByteArray(Vt.slice(It,$t))}function Tt(Vt,It,$t){$t=Math.min(Vt.length,$t);for(var Ht=[],qt=It;qt<$t;){var on,Xt,dn,_n,Fn=Vt[qt],Un=null,On=Fn>239?4:Fn>223?3:Fn>191?2:1;if(qt+On<=$t)switch(On){case 1:Fn<128&&(Un=Fn);break;case 2:(192&(on=Vt[qt+1]))==128&&(_n=(31&Fn)<<6|63&on)>127&&(Un=_n);break;case 3:on=Vt[qt+1],Xt=Vt[qt+2],(192&on)==128&&(192&Xt)==128&&(_n=(15&Fn)<<12|(63&on)<<6|63&Xt)>2047&&(_n<55296||_n>57343)&&(Un=_n);break;case 4:on=Vt[qt+1],Xt=Vt[qt+2],dn=Vt[qt+3],(192&on)==128&&(192&Xt)==128&&(192&dn)==128&&(_n=(15&Fn)<<18|(63&on)<<12|(63&Xt)<<6|63&dn)>65535&&_n<1114112&&(Un=_n)}Un===null?(Un=65533,On=1):Un>65535&&(Un-=65536,Ht.push(Un>>>10&1023|55296),Un=56320|1023&Un),Ht.push(Un),qt+=On}return function(gn){var hn=gn.length;if(hn<=4096)return String.fromCharCode.apply(String,gn);for(var wn="",Zn=0;Zn0&&(Vt=this.toString("hex",0,It).match(/.{2}/g).join(" "),this.length>It&&(Vt+=" ... ")),""},at.prototype.compare=function(Vt,It,$t,Ht,qt){if(!at.isBuffer(Vt))throw new TypeError("Argument must be a Buffer");if(It===void 0&&(It=0),$t===void 0&&($t=Vt?Vt.length:0),Ht===void 0&&(Ht=0),qt===void 0&&(qt=this.length),It<0||$t>Vt.length||Ht<0||qt>this.length)throw new RangeError("out of range index");if(Ht>=qt&&It>=$t)return 0;if(Ht>=qt)return-1;if(It>=$t)return 1;if(this===Vt)return 0;for(var on=(qt>>>=0)-(Ht>>>=0),Xt=($t>>>=0)-(It>>>=0),dn=Math.min(on,Xt),_n=this.slice(Ht,qt),Fn=Vt.slice(It,$t),Un=0;Unqt)&&($t=qt),Vt.length>0&&($t<0||It<0)||It>this.length)throw new RangeError("Attempt to write outside buffer bounds");Ht||(Ht="utf8");for(var on=!1;;)switch(Ht){case"hex":return Ft(this,Vt,It,$t);case"utf8":case"utf-8":return mt(this,Vt,It,$t);case"ascii":return vt(this,Vt,It,$t);case"latin1":case"binary":return At(this,Vt,It,$t);case"base64":return Lt(this,Vt,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Rt(this,Vt,It,$t);default:if(on)throw new TypeError("Unknown encoding: "+Ht);Ht=(""+Ht).toLowerCase(),on=!0}},at.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Bt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(127&Vt[qt]);return Ht}function xt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(Vt[qt]);return Ht}function Ct(Vt,It,$t){var Ht=Vt.length;(!It||It<0)&&(It=0),(!$t||$t<0||$t>Ht)&&($t=Ht);for(var qt="",on=It;on<$t;++on)qt+=Kt(Vt[on]);return qt}function kt(Vt,It,$t){for(var Ht=Vt.slice(It,$t),qt="",on=0;on$t)throw new RangeError("Trying to access beyond buffer length")}function Ot(Vt,It,$t,Ht,qt,on){if(!at.isBuffer(Vt))throw new TypeError('"buffer" argument must be a Buffer instance');if(It>qt||ItVt.length)throw new RangeError("Index out of range")}function Jt(Vt,It,$t,Ht){It<0&&(It=65535+It+1);for(var qt=0,on=Math.min(Vt.length-$t,2);qt>>8*(Ht?qt:1-qt)}function Dt(Vt,It,$t,Ht){It<0&&(It=4294967295+It+1);for(var qt=0,on=Math.min(Vt.length-$t,4);qt>>8*(Ht?qt:3-qt)&255}function Et(Vt,It,$t,Ht,qt,on){if($t+Ht>Vt.length)throw new RangeError("Index out of range");if($t<0)throw new RangeError("Index out of range")}function Pt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,4),rt.write(Vt,It,$t,Ht,23,4),$t+4}function zt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,8),rt.write(Vt,It,$t,Ht,52,8),$t+8}at.prototype.slice=function(Vt,It){var $t,Ht=this.length;if((Vt=~~Vt)<0?(Vt+=Ht)<0&&(Vt=0):Vt>Ht&&(Vt=Ht),(It=It===void 0?Ht:~~It)<0?(It+=Ht)<0&&(It=0):It>Ht&&(It=Ht),It0&&(qt*=256);)Ht+=this[Vt+--It]*qt;return Ht},at.prototype.readUInt8=function(Vt,It){return It||Nt(Vt,1,this.length),this[Vt]},at.prototype.readUInt16LE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]|this[Vt+1]<<8},at.prototype.readUInt16BE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]<<8|this[Vt+1]},at.prototype.readUInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),(this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16)+16777216*this[Vt+3]},at.prototype.readUInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),16777216*this[Vt]+(this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3])},at.prototype.readIntLE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=this[Vt],qt=1,on=0;++on=(qt*=128)&&(Ht-=Math.pow(2,8*It)),Ht},at.prototype.readIntBE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=It,qt=1,on=this[Vt+--Ht];Ht>0&&(qt*=256);)on+=this[Vt+--Ht]*qt;return on>=(qt*=128)&&(on-=Math.pow(2,8*It)),on},at.prototype.readInt8=function(Vt,It){return It||Nt(Vt,1,this.length),128&this[Vt]?-1*(255-this[Vt]+1):this[Vt]},at.prototype.readInt16LE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt]|this[Vt+1]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt16BE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt+1]|this[Vt]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16|this[Vt+3]<<24},at.prototype.readInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]<<24|this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3]},at.prototype.readFloatLE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!0,23,4)},at.prototype.readFloatBE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!1,23,4)},at.prototype.readDoubleLE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!0,52,8)},at.prototype.readDoubleBE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!1,52,8)},at.prototype.writeUIntLE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=1,on=0;for(this[It]=255&Vt;++on<$t&&(qt*=256);)this[It+on]=Vt/qt&255;return It+$t},at.prototype.writeUIntBE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=$t-1,on=1;for(this[It+qt]=255&Vt;--qt>=0&&(on*=256);)this[It+qt]=Vt/on&255;return It+$t},at.prototype.writeUInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,255,0),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),this[It]=255&Vt,It+1},at.prototype.writeUInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Jt(this,Vt,It,!0),It+2},at.prototype.writeUInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Jt(this,Vt,It,!1),It+2},at.prototype.writeUInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It+3]=Vt>>>24,this[It+2]=Vt>>>16,this[It+1]=Vt>>>8,this[It]=255&Vt):Dt(this,Vt,It,!0),It+4},at.prototype.writeUInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeIntLE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=0,Xt=1,dn=0;for(this[It]=255&Vt;++on<$t&&(Xt*=256);)Vt<0&&dn===0&&this[It+on-1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeIntBE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=$t-1,Xt=1,dn=0;for(this[It+on]=255&Vt;--on>=0&&(Xt*=256);)Vt<0&&dn===0&&this[It+on+1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,127,-128),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),Vt<0&&(Vt=255+Vt+1),this[It]=255&Vt,It+1},at.prototype.writeInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Jt(this,Vt,It,!0),It+2},at.prototype.writeInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Jt(this,Vt,It,!1),It+2},at.prototype.writeInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8,this[It+2]=Vt>>>16,this[It+3]=Vt>>>24):Dt(this,Vt,It,!0),It+4},at.prototype.writeInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),Vt<0&&(Vt=4294967295+Vt+1),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeFloatLE=function(Vt,It,$t){return Pt(this,Vt,It,!0,$t)},at.prototype.writeFloatBE=function(Vt,It,$t){return Pt(this,Vt,It,!1,$t)},at.prototype.writeDoubleLE=function(Vt,It,$t){return zt(this,Vt,It,!0,$t)},at.prototype.writeDoubleBE=function(Vt,It,$t){return zt(this,Vt,It,!1,$t)},at.prototype.copy=function(Vt,It,$t,Ht){if($t||($t=0),Ht||Ht===0||(Ht=this.length),It>=Vt.length&&(It=Vt.length),It||(It=0),Ht>0&&Ht<$t&&(Ht=$t),Ht===$t||Vt.length===0||this.length===0)return 0;if(It<0)throw new RangeError("targetStart out of bounds");if($t<0||$t>=this.length)throw new RangeError("sourceStart out of bounds");if(Ht<0)throw new RangeError("sourceEnd out of bounds");Ht>this.length&&(Ht=this.length),Vt.length-It=0;--qt)Vt[qt+It]=this[qt+$t];else if(on<1e3||!at.TYPED_ARRAY_SUPPORT)for(qt=0;qt>>=0,$t=$t===void 0?this.length:$t>>>0,Vt||(Vt=0),typeof Vt=="number")for(on=It;on<$t;++on)this[on]=Vt;else{var Xt=at.isBuffer(Vt)?Vt:nn(new at(Vt,Ht).toString()),dn=Xt.length;for(on=0;on<$t-It;++on)this[on+It]=Xt[on%dn]}return this};var en=/[^+\/0-9A-Za-z-_]/g;function Kt(Vt){return Vt<16?"0"+Vt.toString(16):Vt.toString(16)}function nn(Vt,It){var $t;It=It||1/0;for(var Ht=Vt.length,qt=null,on=[],Xt=0;Xt55295&&$t<57344){if(!qt){if($t>56319){(It-=3)>-1&&on.push(239,191,189);continue}if(Xt+1===Ht){(It-=3)>-1&&on.push(239,191,189);continue}qt=$t;continue}if($t<56320){(It-=3)>-1&&on.push(239,191,189),qt=$t;continue}$t=65536+(qt-55296<<10|$t-56320)}else qt&&(It-=3)>-1&&on.push(239,191,189);if(qt=null,$t<128){if((It-=1)<0)break;on.push($t)}else if($t<2048){if((It-=2)<0)break;on.push($t>>6|192,63&$t|128)}else if($t<65536){if((It-=3)<0)break;on.push($t>>12|224,$t>>6&63|128,63&$t|128)}else{if(!($t<1114112))throw new Error("Invalid code point");if((It-=4)<0)break;on.push($t>>18|240,$t>>12&63|128,$t>>6&63|128,63&$t|128)}}return on}function Zt(Vt){return nt.toByteArray(function(It){if((It=function($t){return $t.trim?$t.trim():$t.replace(/^\s+|\s+$/g,"")}(It).replace(en,"")).length<2)return"";for(;It.length%4!=0;)It+="=";return It}(Vt))}function jt(Vt,It,$t,Ht){for(var qt=0;qt=It.length||qt>=Vt.length);++qt)It[qt+$t]=Vt[qt];return qt}}).call(this,et(6))},function(s,o){var et;et=function(){return this}();try{et=et||new Function("return this")()}catch{typeof window=="object"&&(et=window)}s.exports=et},function(s,o){typeof Object.create=="function"?s.exports=function(et,tt){tt&&(et.super_=tt,et.prototype=Object.create(tt.prototype,{constructor:{value:et,enumerable:!1,writable:!0,configurable:!0}}))}:s.exports=function(et,tt){if(tt){et.super_=tt;var nt=function(){};nt.prototype=tt.prototype,et.prototype=new nt,et.prototype.constructor=et}}},function(s,o,et){function tt(dt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ht){return typeof ht}:function(ht){return ht&&typeof Symbol=="function"&&ht.constructor===Symbol&&ht!==Symbol.prototype?"symbol":typeof ht})(dt)}function nt(dt,ht){if(ht&&(tt(ht)==="object"||typeof ht=="function"))return ht;if(ht!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return rt(dt)}function rt(dt){if(dt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return dt}function it(dt){var ht=typeof Map=="function"?new Map:void 0;return(it=function(ct){if(ct===null||(pt=ct,Function.toString.call(pt).indexOf("[native code]")===-1))return ct;var pt;if(typeof ct!="function")throw new TypeError("Super expression must either be null or a function");if(ht!==void 0){if(ht.has(ct))return ht.get(ct);ht.set(ct,ft)}function ft(){return ot(ct,arguments,lt(this).constructor)}return ft.prototype=Object.create(ct.prototype,{constructor:{value:ft,enumerable:!1,writable:!0,configurable:!0}}),at(ft,ct)})(dt)}function ot(dt,ht,ct){return(ot=st()?Reflect.construct.bind():function(pt,ft,gt){var yt=[null];yt.push.apply(yt,ft);var Ut=new(Function.bind.apply(pt,yt));return gt&&at(Ut,gt.prototype),Ut}).apply(null,arguments)}function st(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function at(dt,ht){return(at=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(ct,pt){return ct.__proto__=pt,ct})(dt,ht)}function lt(dt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(ht){return ht.__proto__||Object.getPrototypeOf(ht)})(dt)}var ut=function(dt){(function(yt,Ut){if(typeof Ut!="function"&&Ut!==null)throw new TypeError("Super expression must either be null or a function");yt.prototype=Object.create(Ut&&Ut.prototype,{constructor:{value:yt,writable:!0,configurable:!0}}),Object.defineProperty(yt,"prototype",{writable:!1}),Ut&&at(yt,Ut)})(gt,dt);var ht,ct,pt,ft=(ht=gt,ct=st(),function(){var yt,Ut=lt(ht);if(ct){var Ft=lt(this).constructor;yt=Reflect.construct(Ut,arguments,Ft)}else yt=Ut.apply(this,arguments);return nt(this,yt)});function gt(yt){var Ut;return function(Ft,mt){if(!(Ft instanceof mt))throw new TypeError("Cannot call a class as a function")}(this,gt),Ut=ft.call(this,`Format functions must be synchronous taking a two arguments: (info, opts) Found: `.concat(yt.toString().split(` `)[0],` -`)),Error.captureStackTrace(rt(Ut),gt),Ut}return pt=gt,Object.defineProperty(pt,"prototype",{writable:!1}),pt}(it(Error));s.exports=function(dt){if(dt.length>2)throw new ut(dt);function ht(){var pt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.options=pt}function ct(pt){return new ht(pt)}return ht.prototype.transform=dt,ct.Format=ht,ct}},function(s,o,et){et.d(o,"a",function(){return tt});const tt=nt=>new Promise(rt=>setTimeout(rt,nt||0))},function(s,o,et){var tt=et(98),nt=tt,rt=typeof globalThis<"u"&&globalThis||typeof window<"u"&&window||rt!==void 0&&rt||typeof self<"u"&&self||function(){return this}.call(null)||Function("return this")(),it=et(97);nt.object.extend(proto,it),nt.exportSymbol("proto.v1.signaling.api.CreatePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.CreatePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetSessionsRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetSessionsResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.Peer",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.RtcSession",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.SessionType",null,rt),nt.exportSymbol("proto.v1.signaling.api.Signal",null,rt),proto.v1.signaling.api.Peer=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.Peer.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.Peer,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Peer.displayName="proto.v1.signaling.api.Peer"),proto.v1.signaling.api.Signal=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.Signal,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Signal.displayName="proto.v1.signaling.api.Signal"),proto.v1.signaling.api.RtcSession=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RtcSession,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RtcSession.displayName="proto.v1.signaling.api.RtcSession"),proto.v1.signaling.api.GetSessionsRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetSessionsRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetSessionsRequest.displayName="proto.v1.signaling.api.GetSessionsRequest"),proto.v1.signaling.api.GetSessionsResponse=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.GetSessionsResponse.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.GetSessionsResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetSessionsResponse.displayName="proto.v1.signaling.api.GetSessionsResponse"),proto.v1.signaling.api.GetHealthRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthRequest.displayName="proto.v1.signaling.api.GetHealthRequest"),proto.v1.signaling.api.GetHealthResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthResponse.displayName="proto.v1.signaling.api.GetHealthResponse"),proto.v1.signaling.api.CreatePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerRequest.displayName="proto.v1.signaling.api.CreatePeerRequest"),proto.v1.signaling.api.CreatePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerResponse.displayName="proto.v1.signaling.api.CreatePeerResponse"),proto.v1.signaling.api.DeletePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerRequest.displayName="proto.v1.signaling.api.DeletePeerRequest"),proto.v1.signaling.api.DeletePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerResponse.displayName="proto.v1.signaling.api.DeletePeerResponse"),proto.v1.signaling.api.RefreshPeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerRequest.displayName="proto.v1.signaling.api.RefreshPeerRequest"),proto.v1.signaling.api.RefreshPeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerResponse.displayName="proto.v1.signaling.api.RefreshPeerResponse"),proto.v1.signaling.api.GetPeersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetPeersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersRequest.displayName="proto.v1.signaling.api.GetPeersRequest"),proto.v1.signaling.api.GetPeersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.GetPeersResponse.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.GetPeersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersResponse.displayName="proto.v1.signaling.api.GetPeersResponse"),proto.v1.signaling.api.GetIceServersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersRequest.displayName="proto.v1.signaling.api.GetIceServersRequest"),proto.v1.signaling.api.GetIceServersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersResponse.displayName="proto.v1.signaling.api.GetIceServersResponse"),proto.v1.signaling.api.SendSignalRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalRequest.displayName="proto.v1.signaling.api.SendSignalRequest"),proto.v1.signaling.api.SendSignalResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalResponse.displayName="proto.v1.signaling.api.SendSignalResponse"),proto.v1.signaling.api.ReceiveSignalStreamRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.displayName="proto.v1.signaling.api.ReceiveSignalStreamRequest"),proto.v1.signaling.api.ReceiveSignalStreamResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.displayName="proto.v1.signaling.api.ReceiveSignalStreamResponse"),proto.v1.signaling.api.Peer.repeatedFields_=[5],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Peer.prototype.toObject=function(ot){return proto.v1.signaling.api.Peer.toObject(ot,this)},proto.v1.signaling.api.Peer.toObject=function(ot,st){var at,lt={peerId:tt.Message.getFieldWithDefault(st,1,""),organizationId:tt.Message.getFieldWithDefault(st,2,""),userId:(at=st.getUserId())&&it.StringValue.toObject(ot,at),deviceId:(at=st.getDeviceId())&&it.StringValue.toObject(ot,at),sessionIdsList:(at=tt.Message.getRepeatedField(st,5))==null?void 0:at,peerCreatedTimestamp:(at=st.getPeerCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Peer.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Peer;return proto.v1.signaling.api.Peer.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Peer.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;case 2:at=st.readString(),ot.setOrganizationId(at);break;case 3:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setUserId(at);break;case 4:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setDeviceId(at);break;case 5:at=st.readString(),ot.addSessionIds(at);break;case 6:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setPeerCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Peer.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Peer.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Peer.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getPeerId()).length>0&&st.writeString(1,at),(at=ot.getOrganizationId()).length>0&&st.writeString(2,at),(at=ot.getUserId())!=null&&st.writeMessage(3,at,it.StringValue.serializeBinaryToWriter),(at=ot.getDeviceId())!=null&&st.writeMessage(4,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionIdsList()).length>0&&st.writeRepeatedString(5,at),(at=ot.getPeerCreatedTimestamp())!=null&&st.writeMessage(6,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.Peer.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.Peer.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},proto.v1.signaling.api.Peer.prototype.getOrganizationId=function(){return tt.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.Peer.prototype.setOrganizationId=function(ot){return tt.Message.setProto3StringField(this,2,ot)},proto.v1.signaling.api.Peer.prototype.getUserId=function(){return tt.Message.getWrapperField(this,it.StringValue,3)},proto.v1.signaling.api.Peer.prototype.setUserId=function(ot){return tt.Message.setWrapperField(this,3,ot)},proto.v1.signaling.api.Peer.prototype.clearUserId=function(){return this.setUserId(void 0)},proto.v1.signaling.api.Peer.prototype.hasUserId=function(){return tt.Message.getField(this,3)!=null},proto.v1.signaling.api.Peer.prototype.getDeviceId=function(){return tt.Message.getWrapperField(this,it.StringValue,4)},proto.v1.signaling.api.Peer.prototype.setDeviceId=function(ot){return tt.Message.setWrapperField(this,4,ot)},proto.v1.signaling.api.Peer.prototype.clearDeviceId=function(){return this.setDeviceId(void 0)},proto.v1.signaling.api.Peer.prototype.hasDeviceId=function(){return tt.Message.getField(this,4)!=null},proto.v1.signaling.api.Peer.prototype.getSessionIdsList=function(){return tt.Message.getRepeatedField(this,5)},proto.v1.signaling.api.Peer.prototype.setSessionIdsList=function(ot){return tt.Message.setField(this,5,ot||[])},proto.v1.signaling.api.Peer.prototype.addSessionIds=function(ot,st){return tt.Message.addToRepeatedField(this,5,ot,st)},proto.v1.signaling.api.Peer.prototype.clearSessionIdsList=function(){return this.setSessionIdsList([])},proto.v1.signaling.api.Peer.prototype.getPeerCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,6)},proto.v1.signaling.api.Peer.prototype.setPeerCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,6,ot)},proto.v1.signaling.api.Peer.prototype.clearPeerCreatedTimestamp=function(){return this.setPeerCreatedTimestamp(void 0)},proto.v1.signaling.api.Peer.prototype.hasPeerCreatedTimestamp=function(){return tt.Message.getField(this,6)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Signal.prototype.toObject=function(ot){return proto.v1.signaling.api.Signal.toObject(ot,this)},proto.v1.signaling.api.Signal.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at),senderId:tt.Message.getFieldWithDefault(st,3,""),receiverId:tt.Message.getFieldWithDefault(st,4,""),payload:tt.Message.getFieldWithDefault(st,5,""),iceServers:tt.Message.getFieldWithDefault(st,6,""),iceTransportPolicy:tt.Message.getFieldWithDefault(st,7,""),sessionType:tt.Message.getFieldWithDefault(st,8,0)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Signal.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Signal;return proto.v1.signaling.api.Signal.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Signal.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;case 3:at=st.readString(),ot.setSenderId(at);break;case 4:at=st.readString(),ot.setReceiverId(at);break;case 5:at=st.readString(),ot.setPayload(at);break;case 6:at=st.readString(),ot.setIceServers(at);break;case 7:at=st.readString(),ot.setIceTransportPolicy(at);break;case 8:at=st.readEnum(),ot.setSessionType(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Signal.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Signal.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Signal.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter),(at=ot.getSenderId()).length>0&&st.writeString(3,at),(at=ot.getReceiverId()).length>0&&st.writeString(4,at),(at=ot.getPayload()).length>0&&st.writeString(5,at),(at=ot.getIceServers()).length>0&&st.writeString(6,at),(at=ot.getIceTransportPolicy()).length>0&&st.writeString(7,at),(at=ot.getSessionType())!==0&&st.writeEnum(8,at)},proto.v1.signaling.api.Signal.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.Signal.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.Signal.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.Signal.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},proto.v1.signaling.api.Signal.prototype.getSenderId=function(){return tt.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.Signal.prototype.setSenderId=function(ot){return tt.Message.setProto3StringField(this,3,ot)},proto.v1.signaling.api.Signal.prototype.getReceiverId=function(){return tt.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.Signal.prototype.setReceiverId=function(ot){return tt.Message.setProto3StringField(this,4,ot)},proto.v1.signaling.api.Signal.prototype.getPayload=function(){return tt.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.Signal.prototype.setPayload=function(ot){return tt.Message.setProto3StringField(this,5,ot)},proto.v1.signaling.api.Signal.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,6,"")},proto.v1.signaling.api.Signal.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,6,ot)},proto.v1.signaling.api.Signal.prototype.getIceTransportPolicy=function(){return tt.Message.getFieldWithDefault(this,7,"")},proto.v1.signaling.api.Signal.prototype.setIceTransportPolicy=function(ot){return tt.Message.setProto3StringField(this,7,ot)},proto.v1.signaling.api.Signal.prototype.getSessionType=function(){return tt.Message.getFieldWithDefault(this,8,0)},proto.v1.signaling.api.Signal.prototype.setSessionType=function(ot){return tt.Message.setProto3EnumField(this,8,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RtcSession.prototype.toObject=function(ot){return proto.v1.signaling.api.RtcSession.toObject(ot,this)},proto.v1.signaling.api.RtcSession.toObject=function(ot,st){var at={sessionId:tt.Message.getFieldWithDefault(st,1,""),offerPeerId:tt.Message.getFieldWithDefault(st,2,""),answerPeerId:tt.Message.getFieldWithDefault(st,3,""),organizationId:tt.Message.getFieldWithDefault(st,4,""),sessionType:tt.Message.getFieldWithDefault(st,5,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.RtcSession.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RtcSession;return proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setSessionId(at);break;case 2:at=st.readString(),ot.setOfferPeerId(at);break;case 3:at=st.readString(),ot.setAnswerPeerId(at);break;case 4:at=st.readString(),ot.setOrganizationId(at);break;case 5:at=st.readString(),ot.setSessionType(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.RtcSession.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RtcSession.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RtcSession.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId()).length>0&&st.writeString(1,at),(at=ot.getOfferPeerId()).length>0&&st.writeString(2,at),(at=ot.getAnswerPeerId()).length>0&&st.writeString(3,at),(at=ot.getOrganizationId()).length>0&&st.writeString(4,at),(at=ot.getSessionType()).length>0&&st.writeString(5,at)},proto.v1.signaling.api.RtcSession.prototype.getSessionId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.RtcSession.prototype.setSessionId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},proto.v1.signaling.api.RtcSession.prototype.getOfferPeerId=function(){return tt.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.RtcSession.prototype.setOfferPeerId=function(ot){return tt.Message.setProto3StringField(this,2,ot)},proto.v1.signaling.api.RtcSession.prototype.getAnswerPeerId=function(){return tt.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.RtcSession.prototype.setAnswerPeerId=function(ot){return tt.Message.setProto3StringField(this,3,ot)},proto.v1.signaling.api.RtcSession.prototype.getOrganizationId=function(){return tt.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.RtcSession.prototype.setOrganizationId=function(ot){return tt.Message.setProto3StringField(this,4,ot)},proto.v1.signaling.api.RtcSession.prototype.getSessionType=function(){return tt.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.RtcSession.prototype.setSessionType=function(ot){return tt.Message.setProto3StringField(this,5,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetSessionsRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetSessionsRequest.toObject(ot,this)},proto.v1.signaling.api.GetSessionsRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetSessionsRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetSessionsRequest;return proto.v1.signaling.api.GetSessionsRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetSessionsRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetSessionsRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetSessionsRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetSessionsRequest.serializeBinaryToWriter=function(ot,st){},proto.v1.signaling.api.GetSessionsResponse.repeatedFields_=[1],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetSessionsResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetSessionsResponse.toObject(ot,this)},proto.v1.signaling.api.GetSessionsResponse.toObject=function(ot,st){var at={sessionsList:tt.Message.toObjectList(st.getSessionsList(),proto.v1.signaling.api.RtcSession.toObject,ot)};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetSessionsResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetSessionsResponse;return proto.v1.signaling.api.GetSessionsResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetSessionsResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.RtcSession;st.readMessage(at,proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader),ot.addSessions(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetSessionsResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetSessionsResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetSessionsResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSessionsList()).length>0&&st.writeRepeatedMessage(1,at,proto.v1.signaling.api.RtcSession.serializeBinaryToWriter)},proto.v1.signaling.api.GetSessionsResponse.prototype.getSessionsList=function(){return tt.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.RtcSession,1)},proto.v1.signaling.api.GetSessionsResponse.prototype.setSessionsList=function(ot){return tt.Message.setRepeatedWrapperField(this,1,ot)},proto.v1.signaling.api.GetSessionsResponse.prototype.addSessions=function(ot,st){return tt.Message.addToRepeatedWrapperField(this,1,ot,proto.v1.signaling.api.RtcSession,st)},proto.v1.signaling.api.GetSessionsResponse.prototype.clearSessionsList=function(){return this.setSessionsList([])},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthRequest.toObject(ot,this)},proto.v1.signaling.api.GetHealthRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthRequest;return proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetHealthRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthResponse.toObject(ot,this)},proto.v1.signaling.api.GetHealthResponse.toObject=function(ot,st){var at={version:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthResponse;return proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setVersion(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetHealthResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getVersion()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetHealthResponse.prototype.getVersion=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetHealthResponse.prototype.setVersion=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerRequest.toObject(ot,this)},proto.v1.signaling.api.CreatePeerRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.CreatePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerRequest;return proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.CreatePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerResponse.toObject(ot,this)},proto.v1.signaling.api.CreatePeerResponse.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.CreatePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerResponse;return proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.CreatePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.CreatePeerResponse.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.CreatePeerResponse.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.CreatePeerResponse.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.CreatePeerResponse.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerRequest.toObject(ot,this)},proto.v1.signaling.api.DeletePeerRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerRequest;return proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.DeletePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.DeletePeerRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.DeletePeerRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerResponse.toObject(ot,this)},proto.v1.signaling.api.DeletePeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerResponse;return proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.DeletePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerRequest.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerRequest.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.RefreshPeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerRequest;return proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.RefreshPeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.RefreshPeerRequest.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.RefreshPeerRequest.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.RefreshPeerRequest.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.RefreshPeerRequest.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerResponse.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.RefreshPeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerResponse;return proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.RefreshPeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersRequest.toObject(ot,this)},proto.v1.signaling.api.GetPeersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersRequest;return proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetPeersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter=function(ot,st){},proto.v1.signaling.api.GetPeersResponse.repeatedFields_=[1],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersResponse.toObject(ot,this)},proto.v1.signaling.api.GetPeersResponse.toObject=function(ot,st){var at={peersList:tt.Message.toObjectList(st.getPeersList(),proto.v1.signaling.api.Peer.toObject,ot)};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersResponse;return proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.addPeers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetPeersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeersList()).length>0&&st.writeRepeatedMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.GetPeersResponse.prototype.getPeersList=function(){return tt.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.GetPeersResponse.prototype.setPeersList=function(ot){return tt.Message.setRepeatedWrapperField(this,1,ot)},proto.v1.signaling.api.GetPeersResponse.prototype.addPeers=function(ot,st){return tt.Message.addToRepeatedWrapperField(this,1,ot,proto.v1.signaling.api.Peer,st)},proto.v1.signaling.api.GetPeersResponse.prototype.clearPeersList=function(){return this.setPeersList([])},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersRequest.toObject(ot,this)},proto.v1.signaling.api.GetIceServersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersRequest;return proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetIceServersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersResponse.toObject(ot,this)},proto.v1.signaling.api.GetIceServersResponse.toObject=function(ot,st){var at={iceServers:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersResponse;return proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setIceServers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetIceServersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getIceServers()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetIceServersResponse.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetIceServersResponse.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalRequest.toObject(ot,this)},proto.v1.signaling.api.SendSignalRequest.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalRequest;return proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalRequest.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.SendSignalRequest.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalRequest.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.SendSignalRequest.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalResponse.toObject(ot,this)},proto.v1.signaling.api.SendSignalResponse.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalResponse;return proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamRequest;return proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamResponse;return proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SessionType={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3,HEADLESS:4},nt.object.extend(o,proto.v1.signaling.api)},function(s,o,et){et.d(o,"a",function(){return nt});var tt=et(28);class nt extends Error{constructor(it,ot,st,at,lt,ut,dt={}){super("Response error "+JSON.stringify({method:it,url:ot,requestBody:Object(tt.a)(st),statusCode:at,responseHeaders:lt?Object(tt.a)([...lt.entries()].reduce((ht,[ct,pt])=>(ht[ct]=pt,ht),{})):{},responseBody:Object(tt.a)(ut)})),this.method=it,this.url=ot,this.requestBody=st,this.statusCode=at,this.headers=lt,this.body=ut,this.validationErrors=dt,this.name="ResponseError",Object.setPrototypeOf(this,new.target.prototype)}}},function(s,o,et){function tt(nt,rt,it=()=>!0){if(function(ot,st,at=()=>!0){return ot instanceof st&&at(ot)}(nt,rt,it))return nt;throw nt}et.d(o,"a",function(){return tt})},function(s,o,et){(function(tt){var nt=Object.getOwnPropertyDescriptors||function(Nt){for(var Ot=Object.keys(Nt),Wt={},Dt=0;Dt=Et)return en;switch(en){case"%s":return String(Dt[Wt++]);case"%d":return Number(Dt[Wt++]);case"%j":try{return JSON.stringify(Dt[Wt++])}catch{return"[Circular]"}default:return en}}),zt=Dt[Wt];Wt=3&&(Wt.depth=arguments[2]),arguments.length>=4&&(Wt.colors=arguments[3]),pt(Ot)?Wt.showHidden=Ot:Ot&&o._extend(Wt,Ot),Ut(Wt.showHidden)&&(Wt.showHidden=!1),Ut(Wt.depth)&&(Wt.depth=2),Ut(Wt.colors)&&(Wt.colors=!1),Ut(Wt.customInspect)&&(Wt.customInspect=!0),Wt.colors&&(Wt.stylize=at),ut(Wt,Nt,Wt.depth)}function at(Nt,Ot){var Wt=st.styles[Ot];return Wt?"\x1B["+st.colors[Wt][0]+"m"+Nt+"\x1B["+st.colors[Wt][1]+"m":Nt}function lt(Nt,Ot){return Nt}function ut(Nt,Ot,Wt){if(Nt.customInspect&&Ot&&Lt(Ot.inspect)&&Ot.inspect!==o.inspect&&(!Ot.constructor||Ot.constructor.prototype!==Ot)){var Dt=Ot.inspect(Wt,Nt);return yt(Dt)||(Dt=ut(Nt,Dt,Wt)),Dt}var Et=function(Vt,It){if(Ut(It))return Vt.stylize("undefined","undefined");if(yt(It)){var $t="'"+JSON.stringify(It).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return Vt.stylize($t,"string")}if(gt(It))return Vt.stylize(""+It,"number");if(pt(It))return Vt.stylize(""+It,"boolean");if(ft(It))return Vt.stylize("null","null")}(Nt,Ot);if(Et)return Et;var Pt=Object.keys(Ot),zt=function(Vt){var It={};return Vt.forEach(function($t,Ht){It[$t]=!0}),It}(Pt);if(Nt.showHidden&&(Pt=Object.getOwnPropertyNames(Ot)),At(Ot)&&(Pt.indexOf("message")>=0||Pt.indexOf("description")>=0))return dt(Ot);if(Pt.length===0){if(Lt(Ot)){var en=Ot.name?": "+Ot.name:"";return Nt.stylize("[Function"+en+"]","special")}if(Ft(Ot))return Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp");if(vt(Ot))return Nt.stylize(Date.prototype.toString.call(Ot),"date");if(At(Ot))return dt(Ot)}var Kt,nn="",Zt=!1,jt=["{","}"];return ct(Ot)&&(Zt=!0,jt=["[","]"]),Lt(Ot)&&(nn=" [Function"+(Ot.name?": "+Ot.name:"")+"]"),Ft(Ot)&&(nn=" "+RegExp.prototype.toString.call(Ot)),vt(Ot)&&(nn=" "+Date.prototype.toUTCString.call(Ot)),At(Ot)&&(nn=" "+dt(Ot)),Pt.length!==0||Zt&&Ot.length!=0?Wt<0?Ft(Ot)?Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp"):Nt.stylize("[Object]","special"):(Nt.seen.push(Ot),Kt=Zt?function(Vt,It,$t,Ht,qt){for(var on=[],Xt=0,dn=It.length;Xt2)throw new ut(dt);function ht(){var pt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.options=pt}function ct(pt){return new ht(pt)}return ht.prototype.transform=dt,ct.Format=ht,ct}},function(s,o,et){et.d(o,"a",function(){return tt});const tt=nt=>new Promise(rt=>setTimeout(rt,nt||0))},function(s,o,et){var tt=et(98),nt=tt,rt=typeof globalThis<"u"&&globalThis||typeof window<"u"&&window||rt!==void 0&&rt||typeof self<"u"&&self||function(){return this}.call(null)||Function("return this")(),it=et(97);nt.object.extend(proto,it),nt.exportSymbol("proto.v1.signaling.api.CreatePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.CreatePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetSessionsRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetSessionsResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.Peer",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.RtcSession",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.SessionType",null,rt),nt.exportSymbol("proto.v1.signaling.api.Signal",null,rt),proto.v1.signaling.api.Peer=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.Peer.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.Peer,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Peer.displayName="proto.v1.signaling.api.Peer"),proto.v1.signaling.api.Signal=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.Signal,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Signal.displayName="proto.v1.signaling.api.Signal"),proto.v1.signaling.api.RtcSession=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RtcSession,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RtcSession.displayName="proto.v1.signaling.api.RtcSession"),proto.v1.signaling.api.GetSessionsRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetSessionsRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetSessionsRequest.displayName="proto.v1.signaling.api.GetSessionsRequest"),proto.v1.signaling.api.GetSessionsResponse=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.GetSessionsResponse.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.GetSessionsResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetSessionsResponse.displayName="proto.v1.signaling.api.GetSessionsResponse"),proto.v1.signaling.api.GetHealthRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthRequest.displayName="proto.v1.signaling.api.GetHealthRequest"),proto.v1.signaling.api.GetHealthResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthResponse.displayName="proto.v1.signaling.api.GetHealthResponse"),proto.v1.signaling.api.CreatePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerRequest.displayName="proto.v1.signaling.api.CreatePeerRequest"),proto.v1.signaling.api.CreatePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerResponse.displayName="proto.v1.signaling.api.CreatePeerResponse"),proto.v1.signaling.api.DeletePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerRequest.displayName="proto.v1.signaling.api.DeletePeerRequest"),proto.v1.signaling.api.DeletePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerResponse.displayName="proto.v1.signaling.api.DeletePeerResponse"),proto.v1.signaling.api.RefreshPeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerRequest.displayName="proto.v1.signaling.api.RefreshPeerRequest"),proto.v1.signaling.api.RefreshPeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerResponse.displayName="proto.v1.signaling.api.RefreshPeerResponse"),proto.v1.signaling.api.GetPeersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetPeersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersRequest.displayName="proto.v1.signaling.api.GetPeersRequest"),proto.v1.signaling.api.GetPeersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.GetPeersResponse.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.GetPeersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersResponse.displayName="proto.v1.signaling.api.GetPeersResponse"),proto.v1.signaling.api.GetIceServersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersRequest.displayName="proto.v1.signaling.api.GetIceServersRequest"),proto.v1.signaling.api.GetIceServersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersResponse.displayName="proto.v1.signaling.api.GetIceServersResponse"),proto.v1.signaling.api.SendSignalRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalRequest.displayName="proto.v1.signaling.api.SendSignalRequest"),proto.v1.signaling.api.SendSignalResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalResponse.displayName="proto.v1.signaling.api.SendSignalResponse"),proto.v1.signaling.api.ReceiveSignalStreamRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.displayName="proto.v1.signaling.api.ReceiveSignalStreamRequest"),proto.v1.signaling.api.ReceiveSignalStreamResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.displayName="proto.v1.signaling.api.ReceiveSignalStreamResponse"),proto.v1.signaling.api.Peer.repeatedFields_=[5],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Peer.prototype.toObject=function(ot){return proto.v1.signaling.api.Peer.toObject(ot,this)},proto.v1.signaling.api.Peer.toObject=function(ot,st){var at,lt={peerId:tt.Message.getFieldWithDefault(st,1,""),organizationId:tt.Message.getFieldWithDefault(st,2,""),userId:(at=st.getUserId())&&it.StringValue.toObject(ot,at),deviceId:(at=st.getDeviceId())&&it.StringValue.toObject(ot,at),sessionIdsList:(at=tt.Message.getRepeatedField(st,5))==null?void 0:at,peerCreatedTimestamp:(at=st.getPeerCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Peer.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Peer;return proto.v1.signaling.api.Peer.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Peer.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;case 2:at=st.readString(),ot.setOrganizationId(at);break;case 3:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setUserId(at);break;case 4:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setDeviceId(at);break;case 5:at=st.readString(),ot.addSessionIds(at);break;case 6:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setPeerCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Peer.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Peer.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Peer.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getPeerId()).length>0&&st.writeString(1,at),(at=ot.getOrganizationId()).length>0&&st.writeString(2,at),(at=ot.getUserId())!=null&&st.writeMessage(3,at,it.StringValue.serializeBinaryToWriter),(at=ot.getDeviceId())!=null&&st.writeMessage(4,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionIdsList()).length>0&&st.writeRepeatedString(5,at),(at=ot.getPeerCreatedTimestamp())!=null&&st.writeMessage(6,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.Peer.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.Peer.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},proto.v1.signaling.api.Peer.prototype.getOrganizationId=function(){return tt.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.Peer.prototype.setOrganizationId=function(ot){return tt.Message.setProto3StringField(this,2,ot)},proto.v1.signaling.api.Peer.prototype.getUserId=function(){return tt.Message.getWrapperField(this,it.StringValue,3)},proto.v1.signaling.api.Peer.prototype.setUserId=function(ot){return tt.Message.setWrapperField(this,3,ot)},proto.v1.signaling.api.Peer.prototype.clearUserId=function(){return this.setUserId(void 0)},proto.v1.signaling.api.Peer.prototype.hasUserId=function(){return tt.Message.getField(this,3)!=null},proto.v1.signaling.api.Peer.prototype.getDeviceId=function(){return tt.Message.getWrapperField(this,it.StringValue,4)},proto.v1.signaling.api.Peer.prototype.setDeviceId=function(ot){return tt.Message.setWrapperField(this,4,ot)},proto.v1.signaling.api.Peer.prototype.clearDeviceId=function(){return this.setDeviceId(void 0)},proto.v1.signaling.api.Peer.prototype.hasDeviceId=function(){return tt.Message.getField(this,4)!=null},proto.v1.signaling.api.Peer.prototype.getSessionIdsList=function(){return tt.Message.getRepeatedField(this,5)},proto.v1.signaling.api.Peer.prototype.setSessionIdsList=function(ot){return tt.Message.setField(this,5,ot||[])},proto.v1.signaling.api.Peer.prototype.addSessionIds=function(ot,st){return tt.Message.addToRepeatedField(this,5,ot,st)},proto.v1.signaling.api.Peer.prototype.clearSessionIdsList=function(){return this.setSessionIdsList([])},proto.v1.signaling.api.Peer.prototype.getPeerCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,6)},proto.v1.signaling.api.Peer.prototype.setPeerCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,6,ot)},proto.v1.signaling.api.Peer.prototype.clearPeerCreatedTimestamp=function(){return this.setPeerCreatedTimestamp(void 0)},proto.v1.signaling.api.Peer.prototype.hasPeerCreatedTimestamp=function(){return tt.Message.getField(this,6)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Signal.prototype.toObject=function(ot){return proto.v1.signaling.api.Signal.toObject(ot,this)},proto.v1.signaling.api.Signal.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at),senderId:tt.Message.getFieldWithDefault(st,3,""),receiverId:tt.Message.getFieldWithDefault(st,4,""),payload:tt.Message.getFieldWithDefault(st,5,""),iceServers:tt.Message.getFieldWithDefault(st,6,""),iceTransportPolicy:tt.Message.getFieldWithDefault(st,7,""),sessionType:tt.Message.getFieldWithDefault(st,8,0)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Signal.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Signal;return proto.v1.signaling.api.Signal.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Signal.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;case 3:at=st.readString(),ot.setSenderId(at);break;case 4:at=st.readString(),ot.setReceiverId(at);break;case 5:at=st.readString(),ot.setPayload(at);break;case 6:at=st.readString(),ot.setIceServers(at);break;case 7:at=st.readString(),ot.setIceTransportPolicy(at);break;case 8:at=st.readEnum(),ot.setSessionType(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Signal.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Signal.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Signal.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter),(at=ot.getSenderId()).length>0&&st.writeString(3,at),(at=ot.getReceiverId()).length>0&&st.writeString(4,at),(at=ot.getPayload()).length>0&&st.writeString(5,at),(at=ot.getIceServers()).length>0&&st.writeString(6,at),(at=ot.getIceTransportPolicy()).length>0&&st.writeString(7,at),(at=ot.getSessionType())!==0&&st.writeEnum(8,at)},proto.v1.signaling.api.Signal.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.Signal.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.Signal.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.Signal.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},proto.v1.signaling.api.Signal.prototype.getSenderId=function(){return tt.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.Signal.prototype.setSenderId=function(ot){return tt.Message.setProto3StringField(this,3,ot)},proto.v1.signaling.api.Signal.prototype.getReceiverId=function(){return tt.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.Signal.prototype.setReceiverId=function(ot){return tt.Message.setProto3StringField(this,4,ot)},proto.v1.signaling.api.Signal.prototype.getPayload=function(){return tt.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.Signal.prototype.setPayload=function(ot){return tt.Message.setProto3StringField(this,5,ot)},proto.v1.signaling.api.Signal.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,6,"")},proto.v1.signaling.api.Signal.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,6,ot)},proto.v1.signaling.api.Signal.prototype.getIceTransportPolicy=function(){return tt.Message.getFieldWithDefault(this,7,"")},proto.v1.signaling.api.Signal.prototype.setIceTransportPolicy=function(ot){return tt.Message.setProto3StringField(this,7,ot)},proto.v1.signaling.api.Signal.prototype.getSessionType=function(){return tt.Message.getFieldWithDefault(this,8,0)},proto.v1.signaling.api.Signal.prototype.setSessionType=function(ot){return tt.Message.setProto3EnumField(this,8,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RtcSession.prototype.toObject=function(ot){return proto.v1.signaling.api.RtcSession.toObject(ot,this)},proto.v1.signaling.api.RtcSession.toObject=function(ot,st){var at={sessionId:tt.Message.getFieldWithDefault(st,1,""),offerPeerId:tt.Message.getFieldWithDefault(st,2,""),answerPeerId:tt.Message.getFieldWithDefault(st,3,""),organizationId:tt.Message.getFieldWithDefault(st,4,""),sessionType:tt.Message.getFieldWithDefault(st,5,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.RtcSession.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RtcSession;return proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setSessionId(at);break;case 2:at=st.readString(),ot.setOfferPeerId(at);break;case 3:at=st.readString(),ot.setAnswerPeerId(at);break;case 4:at=st.readString(),ot.setOrganizationId(at);break;case 5:at=st.readString(),ot.setSessionType(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.RtcSession.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RtcSession.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RtcSession.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId()).length>0&&st.writeString(1,at),(at=ot.getOfferPeerId()).length>0&&st.writeString(2,at),(at=ot.getAnswerPeerId()).length>0&&st.writeString(3,at),(at=ot.getOrganizationId()).length>0&&st.writeString(4,at),(at=ot.getSessionType()).length>0&&st.writeString(5,at)},proto.v1.signaling.api.RtcSession.prototype.getSessionId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.RtcSession.prototype.setSessionId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},proto.v1.signaling.api.RtcSession.prototype.getOfferPeerId=function(){return tt.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.RtcSession.prototype.setOfferPeerId=function(ot){return tt.Message.setProto3StringField(this,2,ot)},proto.v1.signaling.api.RtcSession.prototype.getAnswerPeerId=function(){return tt.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.RtcSession.prototype.setAnswerPeerId=function(ot){return tt.Message.setProto3StringField(this,3,ot)},proto.v1.signaling.api.RtcSession.prototype.getOrganizationId=function(){return tt.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.RtcSession.prototype.setOrganizationId=function(ot){return tt.Message.setProto3StringField(this,4,ot)},proto.v1.signaling.api.RtcSession.prototype.getSessionType=function(){return tt.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.RtcSession.prototype.setSessionType=function(ot){return tt.Message.setProto3StringField(this,5,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetSessionsRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetSessionsRequest.toObject(ot,this)},proto.v1.signaling.api.GetSessionsRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetSessionsRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetSessionsRequest;return proto.v1.signaling.api.GetSessionsRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetSessionsRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetSessionsRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetSessionsRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetSessionsRequest.serializeBinaryToWriter=function(ot,st){},proto.v1.signaling.api.GetSessionsResponse.repeatedFields_=[1],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetSessionsResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetSessionsResponse.toObject(ot,this)},proto.v1.signaling.api.GetSessionsResponse.toObject=function(ot,st){var at={sessionsList:tt.Message.toObjectList(st.getSessionsList(),proto.v1.signaling.api.RtcSession.toObject,ot)};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetSessionsResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetSessionsResponse;return proto.v1.signaling.api.GetSessionsResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetSessionsResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.RtcSession;st.readMessage(at,proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader),ot.addSessions(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetSessionsResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetSessionsResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetSessionsResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSessionsList()).length>0&&st.writeRepeatedMessage(1,at,proto.v1.signaling.api.RtcSession.serializeBinaryToWriter)},proto.v1.signaling.api.GetSessionsResponse.prototype.getSessionsList=function(){return tt.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.RtcSession,1)},proto.v1.signaling.api.GetSessionsResponse.prototype.setSessionsList=function(ot){return tt.Message.setRepeatedWrapperField(this,1,ot)},proto.v1.signaling.api.GetSessionsResponse.prototype.addSessions=function(ot,st){return tt.Message.addToRepeatedWrapperField(this,1,ot,proto.v1.signaling.api.RtcSession,st)},proto.v1.signaling.api.GetSessionsResponse.prototype.clearSessionsList=function(){return this.setSessionsList([])},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthRequest.toObject(ot,this)},proto.v1.signaling.api.GetHealthRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthRequest;return proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetHealthRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthResponse.toObject(ot,this)},proto.v1.signaling.api.GetHealthResponse.toObject=function(ot,st){var at={version:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthResponse;return proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setVersion(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetHealthResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getVersion()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetHealthResponse.prototype.getVersion=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetHealthResponse.prototype.setVersion=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerRequest.toObject(ot,this)},proto.v1.signaling.api.CreatePeerRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.CreatePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerRequest;return proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.CreatePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerResponse.toObject(ot,this)},proto.v1.signaling.api.CreatePeerResponse.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.CreatePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerResponse;return proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.CreatePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.CreatePeerResponse.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.CreatePeerResponse.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.CreatePeerResponse.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.CreatePeerResponse.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerRequest.toObject(ot,this)},proto.v1.signaling.api.DeletePeerRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerRequest;return proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.DeletePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.DeletePeerRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.DeletePeerRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerResponse.toObject(ot,this)},proto.v1.signaling.api.DeletePeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerResponse;return proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.DeletePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerRequest.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerRequest.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.RefreshPeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerRequest;return proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.RefreshPeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.RefreshPeerRequest.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.RefreshPeerRequest.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.RefreshPeerRequest.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.RefreshPeerRequest.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerResponse.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.RefreshPeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerResponse;return proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.RefreshPeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersRequest.toObject(ot,this)},proto.v1.signaling.api.GetPeersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersRequest;return proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetPeersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter=function(ot,st){},proto.v1.signaling.api.GetPeersResponse.repeatedFields_=[1],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersResponse.toObject(ot,this)},proto.v1.signaling.api.GetPeersResponse.toObject=function(ot,st){var at={peersList:tt.Message.toObjectList(st.getPeersList(),proto.v1.signaling.api.Peer.toObject,ot)};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersResponse;return proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.addPeers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetPeersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeersList()).length>0&&st.writeRepeatedMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.GetPeersResponse.prototype.getPeersList=function(){return tt.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.GetPeersResponse.prototype.setPeersList=function(ot){return tt.Message.setRepeatedWrapperField(this,1,ot)},proto.v1.signaling.api.GetPeersResponse.prototype.addPeers=function(ot,st){return tt.Message.addToRepeatedWrapperField(this,1,ot,proto.v1.signaling.api.Peer,st)},proto.v1.signaling.api.GetPeersResponse.prototype.clearPeersList=function(){return this.setPeersList([])},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersRequest.toObject(ot,this)},proto.v1.signaling.api.GetIceServersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersRequest;return proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetIceServersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersResponse.toObject(ot,this)},proto.v1.signaling.api.GetIceServersResponse.toObject=function(ot,st){var at={iceServers:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersResponse;return proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setIceServers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetIceServersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getIceServers()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetIceServersResponse.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetIceServersResponse.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalRequest.toObject(ot,this)},proto.v1.signaling.api.SendSignalRequest.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalRequest;return proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalRequest.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.SendSignalRequest.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalRequest.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.SendSignalRequest.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalResponse.toObject(ot,this)},proto.v1.signaling.api.SendSignalResponse.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalResponse;return proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamRequest;return proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamResponse;return proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SessionType={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3,HEADLESS:4},nt.object.extend(o,proto.v1.signaling.api)},function(s,o,et){et.d(o,"a",function(){return nt});var tt=et(28);class nt extends Error{constructor(it,ot,st,at,lt,ut,dt={}){super("Response error "+JSON.stringify({method:it,url:ot,requestBody:Object(tt.a)(st),statusCode:at,responseHeaders:lt?Object(tt.a)([...lt.entries()].reduce((ht,[ct,pt])=>(ht[ct]=pt,ht),{})):{},responseBody:Object(tt.a)(ut)})),this.method=it,this.url=ot,this.requestBody=st,this.statusCode=at,this.headers=lt,this.body=ut,this.validationErrors=dt,this.name="ResponseError",Object.setPrototypeOf(this,new.target.prototype)}}},function(s,o,et){function tt(nt,rt,it=()=>!0){if(function(ot,st,at=()=>!0){return ot instanceof st&&at(ot)}(nt,rt,it))return nt;throw nt}et.d(o,"a",function(){return tt})},function(s,o,et){(function(tt){var nt=Object.getOwnPropertyDescriptors||function(Nt){for(var Ot=Object.keys(Nt),Jt={},Dt=0;Dt=Et)return en;switch(en){case"%s":return String(Dt[Jt++]);case"%d":return Number(Dt[Jt++]);case"%j":try{return JSON.stringify(Dt[Jt++])}catch{return"[Circular]"}default:return en}}),zt=Dt[Jt];Jt=3&&(Jt.depth=arguments[2]),arguments.length>=4&&(Jt.colors=arguments[3]),pt(Ot)?Jt.showHidden=Ot:Ot&&o._extend(Jt,Ot),Ut(Jt.showHidden)&&(Jt.showHidden=!1),Ut(Jt.depth)&&(Jt.depth=2),Ut(Jt.colors)&&(Jt.colors=!1),Ut(Jt.customInspect)&&(Jt.customInspect=!0),Jt.colors&&(Jt.stylize=at),ut(Jt,Nt,Jt.depth)}function at(Nt,Ot){var Jt=st.styles[Ot];return Jt?"\x1B["+st.colors[Jt][0]+"m"+Nt+"\x1B["+st.colors[Jt][1]+"m":Nt}function lt(Nt,Ot){return Nt}function ut(Nt,Ot,Jt){if(Nt.customInspect&&Ot&&Lt(Ot.inspect)&&Ot.inspect!==o.inspect&&(!Ot.constructor||Ot.constructor.prototype!==Ot)){var Dt=Ot.inspect(Jt,Nt);return yt(Dt)||(Dt=ut(Nt,Dt,Jt)),Dt}var Et=function(Vt,It){if(Ut(It))return Vt.stylize("undefined","undefined");if(yt(It)){var $t="'"+JSON.stringify(It).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return Vt.stylize($t,"string")}if(gt(It))return Vt.stylize(""+It,"number");if(pt(It))return Vt.stylize(""+It,"boolean");if(ft(It))return Vt.stylize("null","null")}(Nt,Ot);if(Et)return Et;var Pt=Object.keys(Ot),zt=function(Vt){var It={};return Vt.forEach(function($t,Ht){It[$t]=!0}),It}(Pt);if(Nt.showHidden&&(Pt=Object.getOwnPropertyNames(Ot)),At(Ot)&&(Pt.indexOf("message")>=0||Pt.indexOf("description")>=0))return dt(Ot);if(Pt.length===0){if(Lt(Ot)){var en=Ot.name?": "+Ot.name:"";return Nt.stylize("[Function"+en+"]","special")}if(Ft(Ot))return Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp");if(vt(Ot))return Nt.stylize(Date.prototype.toString.call(Ot),"date");if(At(Ot))return dt(Ot)}var Kt,nn="",Zt=!1,jt=["{","}"];return ct(Ot)&&(Zt=!0,jt=["[","]"]),Lt(Ot)&&(nn=" [Function"+(Ot.name?": "+Ot.name:"")+"]"),Ft(Ot)&&(nn=" "+RegExp.prototype.toString.call(Ot)),vt(Ot)&&(nn=" "+Date.prototype.toUTCString.call(Ot)),At(Ot)&&(nn=" "+dt(Ot)),Pt.length!==0||Zt&&Ot.length!=0?Jt<0?Ft(Ot)?Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp"):Nt.stylize("[Object]","special"):(Nt.seen.push(Ot),Kt=Zt?function(Vt,It,$t,Ht,qt){for(var on=[],Xt=0,dn=It.length;Xt=0,Ht+qt.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?$t[0]+(It===""?"":It+` `)+" "+Vt.join(`, - `)+" "+$t[1]:$t[0]+It+" "+Vt.join(", ")+" "+$t[1]}(Kt,nn,jt)):jt[0]+nn+jt[1]}function dt(Nt){return"["+Error.prototype.toString.call(Nt)+"]"}function ht(Nt,Ot,Wt,Dt,Et,Pt){var zt,en,Kt;if((Kt=Object.getOwnPropertyDescriptor(Ot,Et)||{value:Ot[Et]}).get?en=Kt.set?Nt.stylize("[Getter/Setter]","special"):Nt.stylize("[Getter]","special"):Kt.set&&(en=Nt.stylize("[Setter]","special")),xt(Dt,Et)||(zt="["+Et+"]"),en||(Nt.seen.indexOf(Kt.value)<0?(en=ft(Wt)?ut(Nt,Kt.value,null):ut(Nt,Kt.value,Wt-1)).indexOf(` + `)+" "+$t[1]:$t[0]+It+" "+Vt.join(", ")+" "+$t[1]}(Kt,nn,jt)):jt[0]+nn+jt[1]}function dt(Nt){return"["+Error.prototype.toString.call(Nt)+"]"}function ht(Nt,Ot,Jt,Dt,Et,Pt){var zt,en,Kt;if((Kt=Object.getOwnPropertyDescriptor(Ot,Et)||{value:Ot[Et]}).get?en=Kt.set?Nt.stylize("[Getter/Setter]","special"):Nt.stylize("[Getter]","special"):Kt.set&&(en=Nt.stylize("[Setter]","special")),xt(Dt,Et)||(zt="["+Et+"]"),en||(Nt.seen.indexOf(Kt.value)<0?(en=ft(Jt)?ut(Nt,Kt.value,null):ut(Nt,Kt.value,Jt-1)).indexOf(` `)>-1&&(en=Pt?en.split(` `).map(function(nn){return" "+nn}).join(` `).substr(2):` `+en.split(` `).map(function(nn){return" "+nn}).join(` -`)):en=Nt.stylize("[Circular]","special")),Ut(zt)){if(Pt&&Et.match(/^\d+$/))return en;(zt=JSON.stringify(""+Et)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(zt=zt.substr(1,zt.length-2),zt=Nt.stylize(zt,"name")):(zt=zt.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),zt=Nt.stylize(zt,"string"))}return zt+": "+en}function ct(Nt){return Array.isArray(Nt)}function pt(Nt){return typeof Nt=="boolean"}function ft(Nt){return Nt===null}function gt(Nt){return typeof Nt=="number"}function yt(Nt){return typeof Nt=="string"}function Ut(Nt){return Nt===void 0}function Ft(Nt){return mt(Nt)&&Rt(Nt)==="[object RegExp]"}function mt(Nt){return typeof Nt=="object"&&Nt!==null}function vt(Nt){return mt(Nt)&&Rt(Nt)==="[object Date]"}function At(Nt){return mt(Nt)&&(Rt(Nt)==="[object Error]"||Nt instanceof Error)}function Lt(Nt){return typeof Nt=="function"}function Rt(Nt){return Object.prototype.toString.call(Nt)}function St(Nt){return Nt<10?"0"+Nt.toString(10):Nt.toString(10)}o.debuglog=function(Nt){if(Ut(it)&&(it=tt.env.NODE_DEBUG||""),Nt=Nt.toUpperCase(),!ot[Nt])if(new RegExp("\\b"+Nt+"\\b","i").test(it)){var Ot=tt.pid;ot[Nt]=function(){var Wt=o.format.apply(o,arguments);console.error("%s %d: %s",Nt,Ot,Wt)}}else ot[Nt]=function(){};return ot[Nt]},o.inspect=st,st.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},st.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},o.isArray=ct,o.isBoolean=pt,o.isNull=ft,o.isNullOrUndefined=function(Nt){return Nt==null},o.isNumber=gt,o.isString=yt,o.isSymbol=function(Nt){return typeof Nt=="symbol"},o.isUndefined=Ut,o.isRegExp=Ft,o.isObject=mt,o.isDate=vt,o.isError=At,o.isFunction=Lt,o.isPrimitive=function(Nt){return Nt===null||typeof Nt=="boolean"||typeof Nt=="number"||typeof Nt=="string"||typeof Nt=="symbol"||Nt===void 0},o.isBuffer=et(104);var Tt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Bt(){var Nt=new Date,Ot=[St(Nt.getHours()),St(Nt.getMinutes()),St(Nt.getSeconds())].join(":");return[Nt.getDate(),Tt[Nt.getMonth()],Ot].join(" ")}function xt(Nt,Ot){return Object.prototype.hasOwnProperty.call(Nt,Ot)}o.log=function(){console.log("%s - %s",Bt(),o.format.apply(o,arguments))},o.inherits=et(105),o._extend=function(Nt,Ot){if(!Ot||!mt(Ot))return Nt;for(var Wt=Object.keys(Ot),Dt=Wt.length;Dt--;)Nt[Wt[Dt]]=Ot[Wt[Dt]];return Nt};var Ct=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;function kt(Nt,Ot){if(!Nt){var Wt=new Error("Promise was rejected with a falsy value");Wt.reason=Nt,Nt=Wt}return Ot(Nt)}o.promisify=function(Nt){if(typeof Nt!="function")throw new TypeError('The "original" argument must be of type Function');if(Ct&&Nt[Ct]){var Ot;if(typeof(Ot=Nt[Ct])!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(Ot,Ct,{value:Ot,enumerable:!1,writable:!1,configurable:!0}),Ot}function Ot(){for(var Wt,Dt,Et=new Promise(function(en,Kt){Wt=en,Dt=Kt}),Pt=[],zt=0;zt0&&arguments[0]!==void 0?arguments[0]:{};nt.call(this,{objectMode:!0,highWaterMark:st.highWaterMark}),this.format=st.format,this.level=st.level,this.handleExceptions=st.handleExceptions,this.handleRejections=st.handleRejections,this.silent=st.silent,st.log&&(this.log=st.log),st.logv&&(this.logv=st.logv),st.close&&(this.close=st.close),this.once("pipe",function(at){ot.levels=at.levels,ot.parent=at}),this.once("unpipe",function(at){at===ot.parent&&(ot.parent=null,ot.close&&ot.close())})};tt.inherits(it,nt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);var lt=this.level||this.parent&&this.parent.level;if(!lt||this.levels[lt]>=this.levels[ot[rt]]){if(ot&&!this.format)return this.log(ot,at);var ut=void 0,dt=void 0;try{dt=this.format.transform(Object.assign({},ot),this.format.options)}catch(ht){ut=ht}if(ut||!dt){if(at(),ut)throw ut;return}return this.log(dt,at)}return this._writableState.sync=!1,at(null)},it.prototype._writev=function(ot,st){if(this.logv){var at=ot.filter(this._accept,this);return at.length?this.logv(at,st):st(null)}for(var lt=0;lt=this.levels[st[rt]])||!this.handleExceptions&&st.exception===!0)},it.prototype._nop=function(){},s.exports.LegacyTransportStream=et(151)},function(s,o,et){s.exports=function(tt,nt){nt||(nt={}),typeof nt=="function"&&(nt={cmp:nt});var rt,it=typeof nt.cycles=="boolean"&&nt.cycles,ot=nt.cmp&&(rt=nt.cmp,function(at){return function(lt,ut){var dt={key:lt,value:at[lt]},ht={key:ut,value:at[ut]};return rt(dt,ht)}}),st=[];return function at(lt){if(lt&<.toJSON&&typeof lt.toJSON=="function"&&(lt=lt.toJSON()),lt!==void 0){if(typeof lt=="number")return isFinite(lt)?""+lt:"null";if(typeof lt!="object")return JSON.stringify(lt);var ut,dt;if(Array.isArray(lt)){for(dt="[",ut=0;ut(In=In||0)&&(In=Math.max(In+mr,0));Invn?1:0}e:{var _n=vt.navigator;if(_n){var Fn=_n.userAgent;if(Fn){Ht=Fn;break e}}Ht=""}var Un="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function On(sn){var vn=1;sn=sn.split(":");for(var In=[];0parseFloat(_r)){hn=String(Wr);break e}}hn=_r}var Uo={};function eo(){return function(sn){var vn=Uo;return Object.prototype.hasOwnProperty.call(vn,9)?vn[9]:vn[9]=sn(9)}(function(){for(var sn=0,vn=on(String(hn)).split("."),In=on("9").split("."),Kn=Math.max(vn.length,In.length),mr=0;sn==0&&mr>>0);function gr(sn){return typeof sn=="function"?sn:(sn[cr]||(sn[cr]=function(vn){return sn.handleEvent(vn)}),sn[cr])}function br(){Yr.call(this),this.f=new Fr(this),this.U=this}function ur(sn,vn){sn=sn.U;var In=vn.type||vn;if(typeof vn=="string")vn=new ro(vn,sn);else if(vn instanceof ro)vn.target=vn.target||sn;else{var Kn=vn;(function(mr,kr){for(var Sr,Ar,Zr=1;Zr=(sn?lo(Jo(Go(),sn.getName())):fr).value),Kn&&(vn=vn||fr,Kn=Jo(Go(),sn.getName()),typeof In=="function"&&(In=In()),rr||(rr=new oo),function(mr,kr){for(;mr;)mr.f.forEach(function(Sr){Sr(kr)}),mr=mr.b}(Kn,sn=new ao(vn,In,sn=sn.getName())))}function So(sn,vn){sn&&cs(sn,Pr,vn)}function so(){}function Bo(sn){var vn;return(vn=sn.a)||(vn={},ps(sn)&&(vn[0]=!0,vn[1]=!0),vn=sn.a=vn),vn}function Io(){}function ns(sn){return(sn=ps(sn))?new ActiveXObject(sn):new XMLHttpRequest}function ps(sn){if(!sn.b&&typeof XMLHttpRequest>"u"&&typeof ActiveXObject<"u"){for(var vn=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],In=0;In2*this.size&&Zs(this),!0)},nt.get=function(sn,vn){return Sl(this.o,sn)?this.o[sn]:vn},nt.set=function(sn,vn){Sl(this.o,sn)||(this.size+=1,this.j.push(sn),this.B++),this.o[sn]=vn},nt.addAll=function(sn){if(sn instanceof fs)for(var vn=sn.G(),In=0;In=Kn.j.length)throw bs;var kr=Kn.j[vn++];return sn?kr:Kn.o[kr]},mr.next=mr.a.bind(mr),mr};var As=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^\\/?#]*)@)?([^\\/?#]*?)(?::([0-9]+))?(?=[\\/?#]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;function ks(sn){br.call(this),this.headers=new fs,this.C=sn||null,this.c=!1,this.J=this.a=null,this.P=this.v="",this.g=0,this.l="",this.i=this.N=this.s=this.L=!1,this.h=0,this.w=null,this.m=js,this.I=this.M=!1}xt(ks,br);var js="";ks.prototype.b=Jo(Go(),"goog.net.XhrIo",void 0).g;var Xs=/^https?$/i,vo=["POST","PUT"];function Hl(sn,vn,In){if(sn.a)throw Error("[goog.net.XhrIo] Object is active with another request="+sn.v+"; newUri="+vn);sn.v=vn,sn.l="",sn.g=0,sn.P="POST",sn.L=!1,sn.c=!0,sn.a=sn.C?ns(sn.C):ns(vr),sn.J=sn.C?Bo(sn.C):Bo(vr),sn.a.onreadystatechange=Bt(sn.R,sn);try{So(sn.b,an(sn,"Opening Xhr")),sn.N=!0,sn.a.open("POST",String(vn),!0),sn.N=!1}catch(kr){return So(sn.b,an(sn,"Error opening Xhr: "+kr.message)),void Tn(sn,kr)}vn=In||"";var Kn=(In=sn.headers.clone()).G().find(function(kr){return kr.toLowerCase()=="content-type"}),mr=vt.FormData&&vn instanceof vt.FormData;!(0<=qt(vo,"POST"))||Kn||mr||In.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),In.forEach(function(kr,Sr){this.a.setRequestHeader(Sr,kr)},sn),sn.m&&(sn.a.responseType=sn.m),"withCredentials"in sn.a&&sn.a.withCredentials!==sn.M&&(sn.a.withCredentials=sn.M);try{Jn(sn),0>4),Co!=64&&(Sr(Ro<<4&240|Co>>2),Ko!=64&&Sr(Co<<6&192|Ko))}}(sn,function(kr){Kn[mr++]=kr}),Kn.subarray(0,mr)}function Hn(){if(!Vn){Vn={};for(var sn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),vn=["+/=","+/","-_=","-_.","-_"],In=0;5>In;In++){var Kn=sn.concat(vn[In].split(""));bn[In]=Kn;for(var mr=0;mr0&&arguments[0]!==void 0?arguments[0]:{};nt.call(this,{objectMode:!0,highWaterMark:st.highWaterMark}),this.format=st.format,this.level=st.level,this.handleExceptions=st.handleExceptions,this.handleRejections=st.handleRejections,this.silent=st.silent,st.log&&(this.log=st.log),st.logv&&(this.logv=st.logv),st.close&&(this.close=st.close),this.once("pipe",function(at){ot.levels=at.levels,ot.parent=at}),this.once("unpipe",function(at){at===ot.parent&&(ot.parent=null,ot.close&&ot.close())})};tt.inherits(it,nt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);var lt=this.level||this.parent&&this.parent.level;if(!lt||this.levels[lt]>=this.levels[ot[rt]]){if(ot&&!this.format)return this.log(ot,at);var ut=void 0,dt=void 0;try{dt=this.format.transform(Object.assign({},ot),this.format.options)}catch(ht){ut=ht}if(ut||!dt){if(at(),ut)throw ut;return}return this.log(dt,at)}return this._writableState.sync=!1,at(null)},it.prototype._writev=function(ot,st){if(this.logv){var at=ot.filter(this._accept,this);return at.length?this.logv(at,st):st(null)}for(var lt=0;lt=this.levels[st[rt]])||!this.handleExceptions&&st.exception===!0)},it.prototype._nop=function(){},s.exports.LegacyTransportStream=et(151)},function(s,o,et){s.exports=function(tt,nt){nt||(nt={}),typeof nt=="function"&&(nt={cmp:nt});var rt,it=typeof nt.cycles=="boolean"&&nt.cycles,ot=nt.cmp&&(rt=nt.cmp,function(at){return function(lt,ut){var dt={key:lt,value:at[lt]},ht={key:ut,value:at[ut]};return rt(dt,ht)}}),st=[];return function at(lt){if(lt&<.toJSON&&typeof lt.toJSON=="function"&&(lt=lt.toJSON()),lt!==void 0){if(typeof lt=="number")return isFinite(lt)?""+lt:"null";if(typeof lt!="object")return JSON.stringify(lt);var ut,dt;if(Array.isArray(lt)){for(dt="[",ut=0;ut(In=In||0)&&(In=Math.max(In+mr,0));Invn?1:0}e:{var _n=vt.navigator;if(_n){var Fn=_n.userAgent;if(Fn){Ht=Fn;break e}}Ht=""}var Un="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function On(sn){var vn=1;sn=sn.split(":");for(var In=[];0parseFloat(_r)){hn=String(Jr);break e}}hn=_r}var Uo={};function eo(){return function(sn){var vn=Uo;return Object.prototype.hasOwnProperty.call(vn,9)?vn[9]:vn[9]=sn(9)}(function(){for(var sn=0,vn=on(String(hn)).split("."),In=on("9").split("."),Kn=Math.max(vn.length,In.length),mr=0;sn==0&&mr>>0);function gr(sn){return typeof sn=="function"?sn:(sn[cr]||(sn[cr]=function(vn){return sn.handleEvent(vn)}),sn[cr])}function br(){Yr.call(this),this.f=new Fr(this),this.U=this}function ur(sn,vn){sn=sn.U;var In=vn.type||vn;if(typeof vn=="string")vn=new ro(vn,sn);else if(vn instanceof ro)vn.target=vn.target||sn;else{var Kn=vn;(function(mr,kr){for(var Sr,Ar,Zr=1;Zr=(sn?lo(Wo(Go(),sn.getName())):fr).value),Kn&&(vn=vn||fr,Kn=Wo(Go(),sn.getName()),typeof In=="function"&&(In=In()),rr||(rr=new oo),function(mr,kr){for(;mr;)mr.f.forEach(function(Sr){Sr(kr)}),mr=mr.b}(Kn,sn=new ao(vn,In,sn=sn.getName())))}function So(sn,vn){sn&&cs(sn,Pr,vn)}function so(){}function Bo(sn){var vn;return(vn=sn.a)||(vn={},ps(sn)&&(vn[0]=!0,vn[1]=!0),vn=sn.a=vn),vn}function Io(){}function ns(sn){return(sn=ps(sn))?new ActiveXObject(sn):new XMLHttpRequest}function ps(sn){if(!sn.b&&typeof XMLHttpRequest>"u"&&typeof ActiveXObject<"u"){for(var vn=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],In=0;In2*this.size&&Zs(this),!0)},nt.get=function(sn,vn){return Sl(this.o,sn)?this.o[sn]:vn},nt.set=function(sn,vn){Sl(this.o,sn)||(this.size+=1,this.j.push(sn),this.B++),this.o[sn]=vn},nt.addAll=function(sn){if(sn instanceof fs)for(var vn=sn.G(),In=0;In=Kn.j.length)throw bs;var kr=Kn.j[vn++];return sn?kr:Kn.o[kr]},mr.next=mr.a.bind(mr),mr};var As=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^\\/?#]*)@)?([^\\/?#]*?)(?::([0-9]+))?(?=[\\/?#]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;function ks(sn){br.call(this),this.headers=new fs,this.C=sn||null,this.c=!1,this.J=this.a=null,this.P=this.v="",this.g=0,this.l="",this.i=this.N=this.s=this.L=!1,this.h=0,this.w=null,this.m=js,this.I=this.M=!1}xt(ks,br);var js="";ks.prototype.b=Wo(Go(),"goog.net.XhrIo",void 0).g;var Xs=/^https?$/i,vo=["POST","PUT"];function Hl(sn,vn,In){if(sn.a)throw Error("[goog.net.XhrIo] Object is active with another request="+sn.v+"; newUri="+vn);sn.v=vn,sn.l="",sn.g=0,sn.P="POST",sn.L=!1,sn.c=!0,sn.a=sn.C?ns(sn.C):ns(vr),sn.J=sn.C?Bo(sn.C):Bo(vr),sn.a.onreadystatechange=Bt(sn.R,sn);try{So(sn.b,an(sn,"Opening Xhr")),sn.N=!0,sn.a.open("POST",String(vn),!0),sn.N=!1}catch(kr){return So(sn.b,an(sn,"Error opening Xhr: "+kr.message)),void Tn(sn,kr)}vn=In||"";var Kn=(In=sn.headers.clone()).G().find(function(kr){return kr.toLowerCase()=="content-type"}),mr=vt.FormData&&vn instanceof vt.FormData;!(0<=qt(vo,"POST"))||Kn||mr||In.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),In.forEach(function(kr,Sr){this.a.setRequestHeader(Sr,kr)},sn),sn.m&&(sn.a.responseType=sn.m),"withCredentials"in sn.a&&sn.a.withCredentials!==sn.M&&(sn.a.withCredentials=sn.M);try{Wn(sn),0>4),Co!=64&&(Sr(Ro<<4&240|Co>>2),Ko!=64&&Sr(Co<<6&192|Ko))}}(sn,function(kr){Kn[mr++]=kr}),Kn.subarray(0,mr)}function Hn(){if(!Vn){Vn={};for(var sn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),vn=["+/=","+/","-_=","-_.","-_"],In=0;5>In;In++){var Kn=sn.concat(vn[In].split(""));bn[In]=Kn;for(var mr=0;mr(Ar=mr.indexOf("#"))&&(Ar=mr.length),0>(Sr=mr.indexOf("?"))||Sr>Ar?(Sr=Ar,Zr=""):Zr=mr.substring(Sr+1,Ar),Ar=(mr=[mr.substr(0,Sr),Zr,mr.substr(Ar)])[1],mr[1]=Ro?Ar?Ar+"&"+Ro:Ro:Ar,mr=mr[0]+(mr[1]?"?"+mr[1]:"")+mr[2])):mr.a("$httpHeaders",Ar))}for(Kn=(vn=(0,Kn.a)(vn.getRequestMessage())).length,Ro=[0,0,0,0],Ar=new Uint8Array(5+Kn),Sr=3;0<=Sr;Sr--)Ro[Sr]=Kn%256,Kn>>>=8;if(Ar.set(new Uint8Array(Ro),1),Ar.set(vn,5),vn=Ar,sn.a=="text"){var Co;for(sn=vn,Co===void 0&&(Co=0),Hn(),Co=bn[Co],vn=Array(Math.floor(sn.length/3)),Kn=Co[64]||"",Ro=Ar=0;Ar>2],no=Co[(3&no)<<4|Ko>>4],Ko=Co[(15&Ko)<<2|Zr>>6],Zr=Co[63&Zr],vn[Ro++]=Sr+no+Ko+Zr}switch(Sr=0,Zr=Kn,sn.length-Ar){case 2:Zr=Co[(15&(Sr=sn[Ar+1]))<<2]||Kn;case 1:sn=sn[Ar],vn[Ro]=Co[sn>>2]+Co[(3&sn)<<4|Sr>>4]+Zr+Kn}vn=vn.join("")}else sn.a=="binary"&&(In.m="arraybuffer");return Hl(In,mr,vn),kr}function co(sn,vn,In){var Kn=!1,mr=null,kr=!1;sn.on("data",function(Sr){Kn=!0,mr=Sr}),sn.on("error",function(Sr){Sr.code==0||kr||(kr=!0,vn(Sr,null))}),sn.on("status",function(Sr){Sr.code==0||kr?In&&vn(null,null,Sr):(kr=!0,vn({code:Sr.code,message:Sr.details,metadata:Sr.metadata},null))}),In&&sn.on("metadata",function(Sr){vn(null,null,null,Sr)}),sn.on("end",function(){kr||(Kn?In?vn(null,mr,null,null,!0):vn(null,mr):vn({code:2,message:"Incomplete response"})),In&&vn(null,null)})}function _i(sn,vn){var In=sn;return vn.forEach(function(Kn){var mr=In;In=function(kr){return Kn.intercept(kr,mr)}}),In}Yn.prototype.on=function(sn,vn){return sn=="data"?this.b.push(vn):sn=="status"?this.h.push(vn):sn=="metadata"?this.g.push(vn):sn=="end"?this.c.push(vn):sn=="error"&&this.f.push(vn),this},Yn.prototype.removeListener=function(sn,vn){return sn=="data"?or(this.b,vn):sn=="status"?or(this.h,vn):sn=="metadata"?or(this.g,vn):sn=="end"?or(this.c,vn):sn=="error"&&or(this.f,vn),this},Yn.prototype.cancel=function(){this.l=!0,this.a.abort()},Yn.prototype.cancel=Yn.prototype.cancel,Yn.prototype.removeListener=Yn.prototype.removeListener,Yn.prototype.on=Yn.prototype.on,Jr.prototype.X=function(sn,vn,In,Kn,mr){var kr=this,Sr=sn.substr(0,sn.length-Kn.name.length);return co(sn=_i(function(Ar){return Hr(kr,Ar,Sr)},this.b).call(this,Wt(Kn,vn,In)),mr,!1),new Et(sn)},Jr.prototype.S=function(sn,vn,In,Kn){var mr=this,kr=sn.substr(0,sn.length-Kn.name.length);return _i(function(Sr){return new Promise(function(Ar,Zr){var no,Ro,Co;co(Hr(mr,Sr,kr),function(Ko,as,Po,xo,Bs){Ko?Zr(Ko):Bs?Co=as:Po?Ro=Po:xo?no=xo:(Ko=Sr.getMethodDescriptor(),Ar(new Nt(Co,Ko,as=(as=no)===void 0?{}:as,Ro===void 0?null:Ro)))},!0)})},this.h).call(this,Wt(Kn,vn,In)).then(function(Sr){return Sr.getResponseMessage()})},Jr.prototype.unaryCall=function(sn,vn,In,Kn){return this.S(sn,vn,In,Kn)},Jr.prototype.Y=function(sn,vn,In,Kn){var mr=this,kr=sn.substr(0,sn.length-Kn.name.length);return _i(function(Sr){return Hr(mr,Sr,kr)},this.b).call(this,Wt(Kn,vn,In))},Jr.prototype.serverStreaming=Jr.prototype.Y,Jr.prototype.unaryCall=Jr.prototype.unaryCall,Jr.prototype.thenableCall=Jr.prototype.S,Jr.prototype.rpcCall=Jr.prototype.X,s.exports.CallOptions=Ct,s.exports.MethodDescriptor=Ot,s.exports.GrpcWebClientBase=Jr,s.exports.RpcError=Dt,s.exports.StatusCode={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,UNAUTHENTICATED:16,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15},s.exports.MethodType={UNARY:"unary",SERVER_STREAMING:"server_streaming",BIDI_STREAMING:"bidi_streaming"},Kr=typeof globalThis<"u"&&globalThis||self}).call(this,et(6))},function(s,o,et){var tt=et(57),nt=et(60).warn;o.version=et(136).version,o.transports=et(137),o.config=et(49),o.addColors=tt.levels,o.format=tt.format,o.createLogger=et(87),o.ExceptionHandler=et(88),o.RejectionHandler=et(92),o.Container=et(215),o.Transport=et(14),o.loggers=new o.Container;var rt=o.createLogger();Object.keys(o.config.npm.levels).concat(["log","query","stream","add","remove","clear","profile","startTimer","handleExceptions","unhandleExceptions","handleRejections","unhandleRejections","configure","child"]).forEach(function(it){return o[it]=function(){return rt[it].apply(rt,arguments)}}),Object.defineProperty(o,"level",{get:function(){return rt.level},set:function(it){rt.level=it}}),Object.defineProperty(o,"exceptions",{get:function(){return rt.exceptions}}),["exitOnError"].forEach(function(it){Object.defineProperty(o,it,{get:function(){return rt[it]},set:function(ot){rt[it]=ot}})}),Object.defineProperty(o,"default",{get:function(){return{exceptionHandlers:rt.exceptionHandlers,rejectionHandlers:rt.rejectionHandlers,transports:rt.transports}}}),nt.deprecated(o,"setLevels"),nt.forFunctions(o,"useFormat",["cli"]),nt.forProperties(o,"useFormat",["padLevels","stripColors"]),nt.forFunctions(o,"deprecated",["addRewriter","addFilter","clone","extend"]),nt.forProperties(o,"deprecated",["emitErrs","levelLength"]),nt.moved(o,"createLogger","Logger")},function(s,o,et){(function(tt){var nt=tt!==void 0&&tt||typeof self<"u"&&self||window,rt=Function.prototype.apply;function it(ot,st){this._id=ot,this._clearFn=st}o.setTimeout=function(){return new it(rt.call(setTimeout,nt,arguments),clearTimeout)},o.setInterval=function(){return new it(rt.call(setInterval,nt,arguments),clearInterval)},o.clearTimeout=o.clearInterval=function(ot){ot&&ot.close()},it.prototype.unref=it.prototype.ref=function(){},it.prototype.close=function(){this._clearFn.call(nt,this._id)},o.enroll=function(ot,st){clearTimeout(ot._idleTimeoutId),ot._idleTimeout=st},o.unenroll=function(ot){clearTimeout(ot._idleTimeoutId),ot._idleTimeout=-1},o._unrefActive=o.active=function(ot){clearTimeout(ot._idleTimeoutId);var st=ot._idleTimeout;st>=0&&(ot._idleTimeoutId=setTimeout(function(){ot._onTimeout&&ot._onTimeout()},st))},et(139),o.setImmediate=typeof self<"u"&&self.setImmediate||tt!==void 0&&tt.setImmediate||this&&this.setImmediate,o.clearImmediate=typeof self<"u"&&self.clearImmediate||tt!==void 0&&tt.clearImmediate||this&&this.clearImmediate}).call(this,et(6))},function(s,o,et){var tt,nt=typeof Reflect=="object"?Reflect:null,rt=nt&&typeof nt.apply=="function"?nt.apply:function(yt,Ut,Ft){return Function.prototype.apply.call(yt,Ut,Ft)};tt=nt&&typeof nt.ownKeys=="function"?nt.ownKeys:Object.getOwnPropertySymbols?function(yt){return Object.getOwnPropertyNames(yt).concat(Object.getOwnPropertySymbols(yt))}:function(yt){return Object.getOwnPropertyNames(yt)};var it=Number.isNaN||function(yt){return yt!=yt};function ot(){ot.init.call(this)}s.exports=ot,s.exports.once=function(yt,Ut){return new Promise(function(Ft,mt){function vt(Lt){yt.removeListener(Ut,At),mt(Lt)}function At(){typeof yt.removeListener=="function"&&yt.removeListener("error",vt),Ft([].slice.call(arguments))}gt(yt,Ut,At,{once:!0}),Ut!=="error"&&function(Lt,Rt,St){typeof Lt.on=="function"&>(Lt,"error",Rt,St)}(yt,vt,{once:!0})})},ot.EventEmitter=ot,ot.prototype._events=void 0,ot.prototype._eventsCount=0,ot.prototype._maxListeners=void 0;var st=10;function at(yt){if(typeof yt!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof yt)}function lt(yt){return yt._maxListeners===void 0?ot.defaultMaxListeners:yt._maxListeners}function ut(yt,Ut,Ft,mt){var vt,At,Lt,Rt;if(at(Ft),(At=yt._events)===void 0?(At=yt._events=Object.create(null),yt._eventsCount=0):(At.newListener!==void 0&&(yt.emit("newListener",Ut,Ft.listener?Ft.listener:Ft),At=yt._events),Lt=At[Ut]),Lt===void 0)Lt=At[Ut]=Ft,++yt._eventsCount;else if(typeof Lt=="function"?Lt=At[Ut]=mt?[Ft,Lt]:[Lt,Ft]:mt?Lt.unshift(Ft):Lt.push(Ft),(vt=lt(yt))>0&&Lt.length>vt&&!Lt.warned){Lt.warned=!0;var St=new Error("Possible EventEmitter memory leak detected. "+Lt.length+" "+String(Ut)+" listeners added. Use emitter.setMaxListeners() to increase limit");St.name="MaxListenersExceededWarning",St.emitter=yt,St.type=Ut,St.count=Lt.length,Rt=St,console&&console.warn&&console.warn(Rt)}return yt}function dt(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function ht(yt,Ut,Ft){var mt={fired:!1,wrapFn:void 0,target:yt,type:Ut,listener:Ft},vt=dt.bind(mt);return vt.listener=Ft,mt.wrapFn=vt,vt}function ct(yt,Ut,Ft){var mt=yt._events;if(mt===void 0)return[];var vt=mt[Ut];return vt===void 0?[]:typeof vt=="function"?Ft?[vt.listener||vt]:[vt]:Ft?function(At){for(var Lt=new Array(At.length),Rt=0;Rt0&&(At=Ut[0]),At instanceof Error)throw At;var Lt=new Error("Unhandled error."+(At?" ("+At.message+")":""));throw Lt.context=At,Lt}var Rt=vt[yt];if(Rt===void 0)return!1;if(typeof Rt=="function")rt(Rt,this,Ut);else{var St=Rt.length,Tt=ft(Rt,St);for(Ft=0;Ft=0;At--)if(Ft[At]===Ut||Ft[At].listener===Ut){Lt=Ft[At].listener,vt=At;break}if(vt<0)return this;vt===0?Ft.shift():function(Rt,St){for(;St+1=0;mt--)this.removeListener(yt,Ut[mt]);return this},ot.prototype.listeners=function(yt){return ct(this,yt,!0)},ot.prototype.rawListeners=function(yt){return ct(this,yt,!1)},ot.listenerCount=function(yt,Ut){return typeof yt.listenerCount=="function"?yt.listenerCount(Ut):pt.call(yt,Ut)},ot.prototype.listenerCount=pt,ot.prototype.eventNames=function(){return this._eventsCount>0?tt(this._events):[]}},function(s,o,et){var tt=et(147).Buffer,nt=tt.isEncoding||function(ct){switch((ct=""+ct)&&ct.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function rt(ct){var pt;switch(this.encoding=function(ft){var gt=function(yt){if(!yt)return"utf8";for(var Ut;;)switch(yt){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return yt;default:if(Ut)return;yt=(""+yt).toLowerCase(),Ut=!0}}(ft);if(typeof gt!="string"&&(tt.isEncoding===nt||!nt(ft)))throw new Error("Unknown encoding: "+ft);return gt||ft}(ct),this.encoding){case"utf16le":this.text=st,this.end=at,pt=4;break;case"utf8":this.fillLast=ot,pt=4;break;case"base64":this.text=lt,this.end=ut,pt=3;break;default:return this.write=dt,void(this.end=ht)}this.lastNeed=0,this.lastTotal=0,this.lastChar=tt.allocUnsafe(pt)}function it(ct){return ct<=127?0:ct>>5==6?2:ct>>4==14?3:ct>>3==30?4:ct>>6==2?-1:-2}function ot(ct){var pt=this.lastTotal-this.lastNeed,ft=function(gt,yt,Ut){if((192&yt[0])!=128)return gt.lastNeed=0,"�";if(gt.lastNeed>1&&yt.length>1){if((192&yt[1])!=128)return gt.lastNeed=1,"�";if(gt.lastNeed>2&&yt.length>2&&(192&yt[2])!=128)return gt.lastNeed=2,"�"}}(this,ct);return ft!==void 0?ft:this.lastNeed<=ct.length?(ct.copy(this.lastChar,pt,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(ct.copy(this.lastChar,pt,0,ct.length),void(this.lastNeed-=ct.length))}function st(ct,pt){if((ct.length-pt)%2==0){var ft=ct.toString("utf16le",pt);if(ft){var gt=ft.charCodeAt(ft.length-1);if(gt>=55296&><=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1],ft.slice(0,-1)}return ft}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=ct[ct.length-1],ct.toString("utf16le",pt,ct.length-1)}function at(ct){var pt=ct&&ct.length?this.write(ct):"";if(this.lastNeed){var ft=this.lastTotal-this.lastNeed;return pt+this.lastChar.toString("utf16le",0,ft)}return pt}function lt(ct,pt){var ft=(ct.length-pt)%3;return ft===0?ct.toString("base64",pt):(this.lastNeed=3-ft,this.lastTotal=3,ft===1?this.lastChar[0]=ct[ct.length-1]:(this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1]),ct.toString("base64",pt,ct.length-ft))}function ut(ct){var pt=ct&&ct.length?this.write(ct):"";return this.lastNeed?pt+this.lastChar.toString("base64",0,3-this.lastNeed):pt}function dt(ct){return ct.toString(this.encoding)}function ht(ct){return ct&&ct.length?this.write(ct):""}o.StringDecoder=rt,rt.prototype.write=function(ct){if(ct.length===0)return"";var pt,ft;if(this.lastNeed){if((pt=this.fillLast(ct))===void 0)return"";ft=this.lastNeed,this.lastNeed=0}else ft=0;return ft=0?(vt>0&&(yt.lastNeed=vt-1),vt):--mt=0?(vt>0&&(yt.lastNeed=vt-2),vt):--mt=0?(vt>0&&(vt===2?vt=0:yt.lastNeed=vt-3),vt):0}(this,ct,pt);if(!this.lastNeed)return ct.toString("utf8",pt);this.lastTotal=ft;var gt=ct.length-(ft-this.lastNeed);return ct.copy(this.lastChar,0,gt),ct.toString("utf8",pt,gt)},rt.prototype.fillLast=function(ct){if(this.lastNeed<=ct.length)return ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,ct.length),this.lastNeed-=ct.length}},function(s,o,et){var tt=et(37),nt=Object.keys||function(ct){var pt=[];for(var ft in ct)pt.push(ft);return pt};s.exports=ut;var rt=Object.create(et(32));rt.inherits=et(7);var it=et(69),ot=et(47);rt.inherits(ut,it);for(var st=nt(ot.prototype),at=0;at2?"one of ".concat(ot," ").concat(it.slice(0,st-1).join(", "),", or ")+it[st-1]:st===2?"one of ".concat(ot," ").concat(it[0]," or ").concat(it[1]):"of ".concat(ot," ").concat(it[0])}return"of ".concat(ot," ").concat(String(it))}nt("ERR_INVALID_OPT_VALUE",function(it,ot){return'The value "'+ot+'" is invalid for option "'+it+'"'},TypeError),nt("ERR_INVALID_ARG_TYPE",function(it,ot,st){var at,lt,ut;if(typeof ot=="string"&&(lt="not ",ot.substr(0,lt.length)===lt)?(at="must not be",ot=ot.replace(/^not /,"")):at="must be",function(ht,ct,pt){return(pt===void 0||pt>ht.length)&&(pt=ht.length),ht.substring(pt-ct.length,pt)===ct}(it," argument"))ut="The ".concat(it," ").concat(at," ").concat(rt(ot,"type"));else{var dt=function(ht,ct,pt){return typeof pt!="number"&&(pt=0),!(pt+ct.length>ht.length)&&ht.indexOf(ct,pt)!==-1}(it,".")?"property":"argument";ut='The "'.concat(it,'" ').concat(dt," ").concat(at," ").concat(rt(ot,"type"))}return ut+=". Received type ".concat(typeof st)},TypeError),nt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),nt("ERR_METHOD_NOT_IMPLEMENTED",function(it){return"The "+it+" method is not implemented"}),nt("ERR_STREAM_PREMATURE_CLOSE","Premature close"),nt("ERR_STREAM_DESTROYED",function(it){return"Cannot call "+it+" after a stream was destroyed"}),nt("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),nt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),nt("ERR_STREAM_WRITE_AFTER_END","write after end"),nt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),nt("ERR_UNKNOWN_ENCODING",function(it){return"Unknown encoding: "+it},TypeError),nt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),s.exports.codes=tt},function(s,o,et){(function(tt){var nt=Object.keys||function(ht){var ct=[];for(var pt in ht)ct.push(pt);return ct};s.exports=lt;var rt=et(76),it=et(80);et(7)(lt,rt);for(var ot=nt(it.prototype),st=0;st(""+lt.get("app-id")).startsWith("formant/")?{}:rt},at)),this.endpoint=st}getHeaders(){return Object.assign(Object.assign({},it.headers),{"App-ID":"formant/"+nt.a,"App-Version":nt.k})}}it.headers={}},function(s,o,et){et(232),s.exports={encode:tt=>new TextEncoder().encode(tt),decode:tt=>new TextDecoder().decode(tt)}},function(s,o,et){et.d(o,"a",function(){return st});const tt=["query"],nt=["expected one of:","maybe you meant:","in query:","while processing query","column"],rt=["password","secret","token","key","buffer","authorization"],it=new Set(["email","firstName","lastName","phoneNumber","phoneNumbers"]),ot=at=>rt.some(lt=>at.toLowerCase().includes(lt.toLowerCase()))||it.has(at);function st(at,lt=new WeakSet){return lt.has(at)?"[ RECURSIVE ]":Array.isArray(at)?(lt.add(at),at.map(dt=>st(dt,lt))):!(ut=at)||typeof ut!="object"&&typeof ut!="function"?typeof at=="string"&&!nt.some(dt=>at.toLowerCase().includes(dt))&&ot(at)?"[ REDACTED ]":at:(lt.add(at),Object.keys(at).reduce((dt,ht)=>tt.includes(ht.toLowerCase())?(dt[ht]=at[ht],dt):(dt[ht]=ot(ht)?"[ REDACTED ]":st(at[ht],lt),dt),{}));var ut}},function(s,o,et){const{hasOwnProperty:tt}=Object.prototype,nt=yt();nt.configure=yt,nt.stringify=nt,nt.default=nt,o.stringify=nt,o.configure=yt,s.exports=nt;const rt=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/,it=new RegExp(rt,"g"),ot=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000b","\\f","\\r","\\u000e","\\u000f","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001a","\\u001b","\\u001c","\\u001d","\\u001e","\\u001f","","",'\\"',"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\"];function st(Ut){if(Ut.length===2){const mt=Ut.charCodeAt(1);return`${Ut[0]}\\u${mt.toString(16)}`}const Ft=Ut.charCodeAt(0);return ot.length>Ft?ot[Ft]:"\\u"+Ft.toString(16)}function at(Ut){if(Ut.length<5e3&&!rt.test(Ut))return Ut;if(Ut.length>100)return Ut.replace(it,st);let Ft="",mt=0;for(let vt=0;vt=55296&&At<=57343){if(At<=56319&&vt+1=56320&&Lt<=57343){vt++;continue}}Ft+=`${Ut.slice(mt,vt)}\\u${At.toString(16)}`,mt=vt+1}}return Ft+=Ut.slice(mt),Ft}function lt(Ut){if(Ut.length>200)return Ut.sort();for(let Ft=1;Ftmt;)Ut[vt]=Ut[vt-1],vt--;Ut[vt]=mt}return Ut}const ut=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function dt(Ut){return ut.call(Ut)!==void 0&&Ut.length!==0}function ht(Ut,Ft,mt){Ut.length= 1`)}return mt===void 0?1/0:mt}function ft(Ut){return Ut===1?"1 item":Ut+" items"}function gt(Ut){const Ft=new Set;for(const mt of Ut)typeof mt!="string"&&typeof mt!="number"||Ft.add(String(mt));return Ft}function yt(Ut){const Ft=function(Ct){if(tt.call(Ct,"strict")){const kt=Ct.strict;if(typeof kt!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(kt)return Nt=>{let Ot="Object can not safely be stringified. Received type "+typeof Nt;throw typeof Nt!="function"&&(Ot+=` (${Nt.toString()})`),new Error(Ot)}}}(Ut={...Ut});Ft&&(Ut.bigint===void 0&&(Ut.bigint=!1),"circularValue"in Ut||(Ut.circularValue=Error));const mt=function(Ct){if(tt.call(Ct,"circularValue")){const kt=Ct.circularValue;if(typeof kt=="string")return`"${kt}"`;if(kt==null)return kt;if(kt===Error||kt===TypeError)return{toString(){throw new TypeError("Converting circular structure to JSON")}};throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined')}return'"[Circular]"'}(Ut),vt=ct(Ut,"bigint"),At=ct(Ut,"deterministic"),Lt=pt(Ut,"maximumDepth"),Rt=pt(Ut,"maximumBreadth");function St(Ct,kt,Nt,Ot,Wt,Dt){let Et=kt[Ct];switch(typeof Et=="object"&&Et!==null&&typeof Et.toJSON=="function"&&(Et=Et.toJSON(Ct)),Et=Ot.call(kt,Ct,Et),typeof Et){case"string":return`"${at(Et)}"`;case"object":{if(Et===null)return"null";if(Nt.indexOf(Et)!==-1)return mt;let Pt="",zt=",";const en=Dt;if(Array.isArray(Et)){if(Et.length===0)return"[]";if(LtRt&&(Pt+=`${zt}"... ${ft(Et.length-Rt-1)} not stringified"`),Wt!==""&&(Pt+=` -`+en),Nt.pop(),`[${Pt}]`}let Kt=Object.keys(Et);const nn=Kt.length;if(nn===0)return"{}";if(LtRt&&(Pt+=`${jt}"...":${Zt}"${ft(nn-Rt)} not stringified"`,jt=zt),Wt!==""&&jt.length>1&&(Pt=` +`);for(var Ro=0;Ro(Ar=mr.indexOf("#"))&&(Ar=mr.length),0>(Sr=mr.indexOf("?"))||Sr>Ar?(Sr=Ar,Zr=""):Zr=mr.substring(Sr+1,Ar),Ar=(mr=[mr.substr(0,Sr),Zr,mr.substr(Ar)])[1],mr[1]=Ro?Ar?Ar+"&"+Ro:Ro:Ar,mr=mr[0]+(mr[1]?"?"+mr[1]:"")+mr[2])):mr.a("$httpHeaders",Ar))}for(Kn=(vn=(0,Kn.a)(vn.getRequestMessage())).length,Ro=[0,0,0,0],Ar=new Uint8Array(5+Kn),Sr=3;0<=Sr;Sr--)Ro[Sr]=Kn%256,Kn>>>=8;if(Ar.set(new Uint8Array(Ro),1),Ar.set(vn,5),vn=Ar,sn.a=="text"){var Co;for(sn=vn,Co===void 0&&(Co=0),Hn(),Co=bn[Co],vn=Array(Math.floor(sn.length/3)),Kn=Co[64]||"",Ro=Ar=0;Ar>2],no=Co[(3&no)<<4|Ko>>4],Ko=Co[(15&Ko)<<2|Zr>>6],Zr=Co[63&Zr],vn[Ro++]=Sr+no+Ko+Zr}switch(Sr=0,Zr=Kn,sn.length-Ar){case 2:Zr=Co[(15&(Sr=sn[Ar+1]))<<2]||Kn;case 1:sn=sn[Ar],vn[Ro]=Co[sn>>2]+Co[(3&sn)<<4|Sr>>4]+Zr+Kn}vn=vn.join("")}else sn.a=="binary"&&(In.m="arraybuffer");return Hl(In,mr,vn),kr}function co(sn,vn,In){var Kn=!1,mr=null,kr=!1;sn.on("data",function(Sr){Kn=!0,mr=Sr}),sn.on("error",function(Sr){Sr.code==0||kr||(kr=!0,vn(Sr,null))}),sn.on("status",function(Sr){Sr.code==0||kr?In&&vn(null,null,Sr):(kr=!0,vn({code:Sr.code,message:Sr.details,metadata:Sr.metadata},null))}),In&&sn.on("metadata",function(Sr){vn(null,null,null,Sr)}),sn.on("end",function(){kr||(Kn?In?vn(null,mr,null,null,!0):vn(null,mr):vn({code:2,message:"Incomplete response"})),In&&vn(null,null)})}function _i(sn,vn){var In=sn;return vn.forEach(function(Kn){var mr=In;In=function(kr){return Kn.intercept(kr,mr)}}),In}Yn.prototype.on=function(sn,vn){return sn=="data"?this.b.push(vn):sn=="status"?this.h.push(vn):sn=="metadata"?this.g.push(vn):sn=="end"?this.c.push(vn):sn=="error"&&this.f.push(vn),this},Yn.prototype.removeListener=function(sn,vn){return sn=="data"?or(this.b,vn):sn=="status"?or(this.h,vn):sn=="metadata"?or(this.g,vn):sn=="end"?or(this.c,vn):sn=="error"&&or(this.f,vn),this},Yn.prototype.cancel=function(){this.l=!0,this.a.abort()},Yn.prototype.cancel=Yn.prototype.cancel,Yn.prototype.removeListener=Yn.prototype.removeListener,Yn.prototype.on=Yn.prototype.on,Wr.prototype.X=function(sn,vn,In,Kn,mr){var kr=this,Sr=sn.substr(0,sn.length-Kn.name.length);return co(sn=_i(function(Ar){return Hr(kr,Ar,Sr)},this.b).call(this,Jt(Kn,vn,In)),mr,!1),new Et(sn)},Wr.prototype.S=function(sn,vn,In,Kn){var mr=this,kr=sn.substr(0,sn.length-Kn.name.length);return _i(function(Sr){return new Promise(function(Ar,Zr){var no,Ro,Co;co(Hr(mr,Sr,kr),function(Ko,as,Po,xo,Bs){Ko?Zr(Ko):Bs?Co=as:Po?Ro=Po:xo?no=xo:(Ko=Sr.getMethodDescriptor(),Ar(new Nt(Co,Ko,as=(as=no)===void 0?{}:as,Ro===void 0?null:Ro)))},!0)})},this.h).call(this,Jt(Kn,vn,In)).then(function(Sr){return Sr.getResponseMessage()})},Wr.prototype.unaryCall=function(sn,vn,In,Kn){return this.S(sn,vn,In,Kn)},Wr.prototype.Y=function(sn,vn,In,Kn){var mr=this,kr=sn.substr(0,sn.length-Kn.name.length);return _i(function(Sr){return Hr(mr,Sr,kr)},this.b).call(this,Jt(Kn,vn,In))},Wr.prototype.serverStreaming=Wr.prototype.Y,Wr.prototype.unaryCall=Wr.prototype.unaryCall,Wr.prototype.thenableCall=Wr.prototype.S,Wr.prototype.rpcCall=Wr.prototype.X,s.exports.CallOptions=Ct,s.exports.MethodDescriptor=Ot,s.exports.GrpcWebClientBase=Wr,s.exports.RpcError=Dt,s.exports.StatusCode={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,UNAUTHENTICATED:16,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15},s.exports.MethodType={UNARY:"unary",SERVER_STREAMING:"server_streaming",BIDI_STREAMING:"bidi_streaming"},Kr=typeof globalThis<"u"&&globalThis||self}).call(this,et(6))},function(s,o,et){var tt=et(57),nt=et(60).warn;o.version=et(136).version,o.transports=et(137),o.config=et(49),o.addColors=tt.levels,o.format=tt.format,o.createLogger=et(87),o.ExceptionHandler=et(88),o.RejectionHandler=et(92),o.Container=et(215),o.Transport=et(14),o.loggers=new o.Container;var rt=o.createLogger();Object.keys(o.config.npm.levels).concat(["log","query","stream","add","remove","clear","profile","startTimer","handleExceptions","unhandleExceptions","handleRejections","unhandleRejections","configure","child"]).forEach(function(it){return o[it]=function(){return rt[it].apply(rt,arguments)}}),Object.defineProperty(o,"level",{get:function(){return rt.level},set:function(it){rt.level=it}}),Object.defineProperty(o,"exceptions",{get:function(){return rt.exceptions}}),["exitOnError"].forEach(function(it){Object.defineProperty(o,it,{get:function(){return rt[it]},set:function(ot){rt[it]=ot}})}),Object.defineProperty(o,"default",{get:function(){return{exceptionHandlers:rt.exceptionHandlers,rejectionHandlers:rt.rejectionHandlers,transports:rt.transports}}}),nt.deprecated(o,"setLevels"),nt.forFunctions(o,"useFormat",["cli"]),nt.forProperties(o,"useFormat",["padLevels","stripColors"]),nt.forFunctions(o,"deprecated",["addRewriter","addFilter","clone","extend"]),nt.forProperties(o,"deprecated",["emitErrs","levelLength"]),nt.moved(o,"createLogger","Logger")},function(s,o,et){(function(tt){var nt=tt!==void 0&&tt||typeof self<"u"&&self||window,rt=Function.prototype.apply;function it(ot,st){this._id=ot,this._clearFn=st}o.setTimeout=function(){return new it(rt.call(setTimeout,nt,arguments),clearTimeout)},o.setInterval=function(){return new it(rt.call(setInterval,nt,arguments),clearInterval)},o.clearTimeout=o.clearInterval=function(ot){ot&&ot.close()},it.prototype.unref=it.prototype.ref=function(){},it.prototype.close=function(){this._clearFn.call(nt,this._id)},o.enroll=function(ot,st){clearTimeout(ot._idleTimeoutId),ot._idleTimeout=st},o.unenroll=function(ot){clearTimeout(ot._idleTimeoutId),ot._idleTimeout=-1},o._unrefActive=o.active=function(ot){clearTimeout(ot._idleTimeoutId);var st=ot._idleTimeout;st>=0&&(ot._idleTimeoutId=setTimeout(function(){ot._onTimeout&&ot._onTimeout()},st))},et(139),o.setImmediate=typeof self<"u"&&self.setImmediate||tt!==void 0&&tt.setImmediate||this&&this.setImmediate,o.clearImmediate=typeof self<"u"&&self.clearImmediate||tt!==void 0&&tt.clearImmediate||this&&this.clearImmediate}).call(this,et(6))},function(s,o,et){var tt,nt=typeof Reflect=="object"?Reflect:null,rt=nt&&typeof nt.apply=="function"?nt.apply:function(yt,Ut,Ft){return Function.prototype.apply.call(yt,Ut,Ft)};tt=nt&&typeof nt.ownKeys=="function"?nt.ownKeys:Object.getOwnPropertySymbols?function(yt){return Object.getOwnPropertyNames(yt).concat(Object.getOwnPropertySymbols(yt))}:function(yt){return Object.getOwnPropertyNames(yt)};var it=Number.isNaN||function(yt){return yt!=yt};function ot(){ot.init.call(this)}s.exports=ot,s.exports.once=function(yt,Ut){return new Promise(function(Ft,mt){function vt(Lt){yt.removeListener(Ut,At),mt(Lt)}function At(){typeof yt.removeListener=="function"&&yt.removeListener("error",vt),Ft([].slice.call(arguments))}gt(yt,Ut,At,{once:!0}),Ut!=="error"&&function(Lt,Rt,St){typeof Lt.on=="function"&>(Lt,"error",Rt,St)}(yt,vt,{once:!0})})},ot.EventEmitter=ot,ot.prototype._events=void 0,ot.prototype._eventsCount=0,ot.prototype._maxListeners=void 0;var st=10;function at(yt){if(typeof yt!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof yt)}function lt(yt){return yt._maxListeners===void 0?ot.defaultMaxListeners:yt._maxListeners}function ut(yt,Ut,Ft,mt){var vt,At,Lt,Rt;if(at(Ft),(At=yt._events)===void 0?(At=yt._events=Object.create(null),yt._eventsCount=0):(At.newListener!==void 0&&(yt.emit("newListener",Ut,Ft.listener?Ft.listener:Ft),At=yt._events),Lt=At[Ut]),Lt===void 0)Lt=At[Ut]=Ft,++yt._eventsCount;else if(typeof Lt=="function"?Lt=At[Ut]=mt?[Ft,Lt]:[Lt,Ft]:mt?Lt.unshift(Ft):Lt.push(Ft),(vt=lt(yt))>0&&Lt.length>vt&&!Lt.warned){Lt.warned=!0;var St=new Error("Possible EventEmitter memory leak detected. "+Lt.length+" "+String(Ut)+" listeners added. Use emitter.setMaxListeners() to increase limit");St.name="MaxListenersExceededWarning",St.emitter=yt,St.type=Ut,St.count=Lt.length,Rt=St,console&&console.warn&&console.warn(Rt)}return yt}function dt(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function ht(yt,Ut,Ft){var mt={fired:!1,wrapFn:void 0,target:yt,type:Ut,listener:Ft},vt=dt.bind(mt);return vt.listener=Ft,mt.wrapFn=vt,vt}function ct(yt,Ut,Ft){var mt=yt._events;if(mt===void 0)return[];var vt=mt[Ut];return vt===void 0?[]:typeof vt=="function"?Ft?[vt.listener||vt]:[vt]:Ft?function(At){for(var Lt=new Array(At.length),Rt=0;Rt0&&(At=Ut[0]),At instanceof Error)throw At;var Lt=new Error("Unhandled error."+(At?" ("+At.message+")":""));throw Lt.context=At,Lt}var Rt=vt[yt];if(Rt===void 0)return!1;if(typeof Rt=="function")rt(Rt,this,Ut);else{var St=Rt.length,Tt=ft(Rt,St);for(Ft=0;Ft=0;At--)if(Ft[At]===Ut||Ft[At].listener===Ut){Lt=Ft[At].listener,vt=At;break}if(vt<0)return this;vt===0?Ft.shift():function(Rt,St){for(;St+1=0;mt--)this.removeListener(yt,Ut[mt]);return this},ot.prototype.listeners=function(yt){return ct(this,yt,!0)},ot.prototype.rawListeners=function(yt){return ct(this,yt,!1)},ot.listenerCount=function(yt,Ut){return typeof yt.listenerCount=="function"?yt.listenerCount(Ut):pt.call(yt,Ut)},ot.prototype.listenerCount=pt,ot.prototype.eventNames=function(){return this._eventsCount>0?tt(this._events):[]}},function(s,o,et){var tt=et(147).Buffer,nt=tt.isEncoding||function(ct){switch((ct=""+ct)&&ct.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function rt(ct){var pt;switch(this.encoding=function(ft){var gt=function(yt){if(!yt)return"utf8";for(var Ut;;)switch(yt){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return yt;default:if(Ut)return;yt=(""+yt).toLowerCase(),Ut=!0}}(ft);if(typeof gt!="string"&&(tt.isEncoding===nt||!nt(ft)))throw new Error("Unknown encoding: "+ft);return gt||ft}(ct),this.encoding){case"utf16le":this.text=st,this.end=at,pt=4;break;case"utf8":this.fillLast=ot,pt=4;break;case"base64":this.text=lt,this.end=ut,pt=3;break;default:return this.write=dt,void(this.end=ht)}this.lastNeed=0,this.lastTotal=0,this.lastChar=tt.allocUnsafe(pt)}function it(ct){return ct<=127?0:ct>>5==6?2:ct>>4==14?3:ct>>3==30?4:ct>>6==2?-1:-2}function ot(ct){var pt=this.lastTotal-this.lastNeed,ft=function(gt,yt,Ut){if((192&yt[0])!=128)return gt.lastNeed=0,"�";if(gt.lastNeed>1&&yt.length>1){if((192&yt[1])!=128)return gt.lastNeed=1,"�";if(gt.lastNeed>2&&yt.length>2&&(192&yt[2])!=128)return gt.lastNeed=2,"�"}}(this,ct);return ft!==void 0?ft:this.lastNeed<=ct.length?(ct.copy(this.lastChar,pt,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(ct.copy(this.lastChar,pt,0,ct.length),void(this.lastNeed-=ct.length))}function st(ct,pt){if((ct.length-pt)%2==0){var ft=ct.toString("utf16le",pt);if(ft){var gt=ft.charCodeAt(ft.length-1);if(gt>=55296&><=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1],ft.slice(0,-1)}return ft}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=ct[ct.length-1],ct.toString("utf16le",pt,ct.length-1)}function at(ct){var pt=ct&&ct.length?this.write(ct):"";if(this.lastNeed){var ft=this.lastTotal-this.lastNeed;return pt+this.lastChar.toString("utf16le",0,ft)}return pt}function lt(ct,pt){var ft=(ct.length-pt)%3;return ft===0?ct.toString("base64",pt):(this.lastNeed=3-ft,this.lastTotal=3,ft===1?this.lastChar[0]=ct[ct.length-1]:(this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1]),ct.toString("base64",pt,ct.length-ft))}function ut(ct){var pt=ct&&ct.length?this.write(ct):"";return this.lastNeed?pt+this.lastChar.toString("base64",0,3-this.lastNeed):pt}function dt(ct){return ct.toString(this.encoding)}function ht(ct){return ct&&ct.length?this.write(ct):""}o.StringDecoder=rt,rt.prototype.write=function(ct){if(ct.length===0)return"";var pt,ft;if(this.lastNeed){if((pt=this.fillLast(ct))===void 0)return"";ft=this.lastNeed,this.lastNeed=0}else ft=0;return ft=0?(vt>0&&(yt.lastNeed=vt-1),vt):--mt=0?(vt>0&&(yt.lastNeed=vt-2),vt):--mt=0?(vt>0&&(vt===2?vt=0:yt.lastNeed=vt-3),vt):0}(this,ct,pt);if(!this.lastNeed)return ct.toString("utf8",pt);this.lastTotal=ft;var gt=ct.length-(ft-this.lastNeed);return ct.copy(this.lastChar,0,gt),ct.toString("utf8",pt,gt)},rt.prototype.fillLast=function(ct){if(this.lastNeed<=ct.length)return ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,ct.length),this.lastNeed-=ct.length}},function(s,o,et){var tt=et(37),nt=Object.keys||function(ct){var pt=[];for(var ft in ct)pt.push(ft);return pt};s.exports=ut;var rt=Object.create(et(32));rt.inherits=et(7);var it=et(69),ot=et(47);rt.inherits(ut,it);for(var st=nt(ot.prototype),at=0;at2?"one of ".concat(ot," ").concat(it.slice(0,st-1).join(", "),", or ")+it[st-1]:st===2?"one of ".concat(ot," ").concat(it[0]," or ").concat(it[1]):"of ".concat(ot," ").concat(it[0])}return"of ".concat(ot," ").concat(String(it))}nt("ERR_INVALID_OPT_VALUE",function(it,ot){return'The value "'+ot+'" is invalid for option "'+it+'"'},TypeError),nt("ERR_INVALID_ARG_TYPE",function(it,ot,st){var at,lt,ut;if(typeof ot=="string"&&(lt="not ",ot.substr(0,lt.length)===lt)?(at="must not be",ot=ot.replace(/^not /,"")):at="must be",function(ht,ct,pt){return(pt===void 0||pt>ht.length)&&(pt=ht.length),ht.substring(pt-ct.length,pt)===ct}(it," argument"))ut="The ".concat(it," ").concat(at," ").concat(rt(ot,"type"));else{var dt=function(ht,ct,pt){return typeof pt!="number"&&(pt=0),!(pt+ct.length>ht.length)&&ht.indexOf(ct,pt)!==-1}(it,".")?"property":"argument";ut='The "'.concat(it,'" ').concat(dt," ").concat(at," ").concat(rt(ot,"type"))}return ut+=". Received type ".concat(typeof st)},TypeError),nt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),nt("ERR_METHOD_NOT_IMPLEMENTED",function(it){return"The "+it+" method is not implemented"}),nt("ERR_STREAM_PREMATURE_CLOSE","Premature close"),nt("ERR_STREAM_DESTROYED",function(it){return"Cannot call "+it+" after a stream was destroyed"}),nt("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),nt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),nt("ERR_STREAM_WRITE_AFTER_END","write after end"),nt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),nt("ERR_UNKNOWN_ENCODING",function(it){return"Unknown encoding: "+it},TypeError),nt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),s.exports.codes=tt},function(s,o,et){(function(tt){var nt=Object.keys||function(ht){var ct=[];for(var pt in ht)ct.push(pt);return ct};s.exports=lt;var rt=et(76),it=et(80);et(7)(lt,rt);for(var ot=nt(it.prototype),st=0;st(""+lt.get("app-id")).startsWith("formant/")?{}:rt},at)),this.endpoint=st}getHeaders(){return Object.assign(Object.assign({},it.headers),{"App-ID":"formant/"+nt.a,"App-Version":nt.k})}}it.headers={}},function(s,o,et){et(232),s.exports={encode:tt=>new TextEncoder().encode(tt),decode:tt=>new TextDecoder().decode(tt)}},function(s,o,et){et.d(o,"a",function(){return st});const tt=["query"],nt=["expected one of:","maybe you meant:","in query:","while processing query","column"],rt=["password","secret","token","key","buffer","authorization"],it=new Set(["email","firstName","lastName","phoneNumber","phoneNumbers"]),ot=at=>rt.some(lt=>at.toLowerCase().includes(lt.toLowerCase()))||it.has(at);function st(at,lt=new WeakSet){return lt.has(at)?"[ RECURSIVE ]":Array.isArray(at)?(lt.add(at),at.map(dt=>st(dt,lt))):!(ut=at)||typeof ut!="object"&&typeof ut!="function"?typeof at=="string"&&!nt.some(dt=>at.toLowerCase().includes(dt))&&ot(at)?"[ REDACTED ]":at:(lt.add(at),Object.keys(at).reduce((dt,ht)=>tt.includes(ht.toLowerCase())?(dt[ht]=at[ht],dt):(dt[ht]=ot(ht)?"[ REDACTED ]":st(at[ht],lt),dt),{}));var ut}},function(s,o,et){const{hasOwnProperty:tt}=Object.prototype,nt=yt();nt.configure=yt,nt.stringify=nt,nt.default=nt,o.stringify=nt,o.configure=yt,s.exports=nt;const rt=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/,it=new RegExp(rt,"g"),ot=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000b","\\f","\\r","\\u000e","\\u000f","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001a","\\u001b","\\u001c","\\u001d","\\u001e","\\u001f","","",'\\"',"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\"];function st(Ut){if(Ut.length===2){const mt=Ut.charCodeAt(1);return`${Ut[0]}\\u${mt.toString(16)}`}const Ft=Ut.charCodeAt(0);return ot.length>Ft?ot[Ft]:"\\u"+Ft.toString(16)}function at(Ut){if(Ut.length<5e3&&!rt.test(Ut))return Ut;if(Ut.length>100)return Ut.replace(it,st);let Ft="",mt=0;for(let vt=0;vt=55296&&At<=57343){if(At<=56319&&vt+1=56320&&Lt<=57343){vt++;continue}}Ft+=`${Ut.slice(mt,vt)}\\u${At.toString(16)}`,mt=vt+1}}return Ft+=Ut.slice(mt),Ft}function lt(Ut){if(Ut.length>200)return Ut.sort();for(let Ft=1;Ftmt;)Ut[vt]=Ut[vt-1],vt--;Ut[vt]=mt}return Ut}const ut=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function dt(Ut){return ut.call(Ut)!==void 0&&Ut.length!==0}function ht(Ut,Ft,mt){Ut.length= 1`)}return mt===void 0?1/0:mt}function ft(Ut){return Ut===1?"1 item":Ut+" items"}function gt(Ut){const Ft=new Set;for(const mt of Ut)typeof mt!="string"&&typeof mt!="number"||Ft.add(String(mt));return Ft}function yt(Ut){const Ft=function(Ct){if(tt.call(Ct,"strict")){const kt=Ct.strict;if(typeof kt!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(kt)return Nt=>{let Ot="Object can not safely be stringified. Received type "+typeof Nt;throw typeof Nt!="function"&&(Ot+=` (${Nt.toString()})`),new Error(Ot)}}}(Ut={...Ut});Ft&&(Ut.bigint===void 0&&(Ut.bigint=!1),"circularValue"in Ut||(Ut.circularValue=Error));const mt=function(Ct){if(tt.call(Ct,"circularValue")){const kt=Ct.circularValue;if(typeof kt=="string")return`"${kt}"`;if(kt==null)return kt;if(kt===Error||kt===TypeError)return{toString(){throw new TypeError("Converting circular structure to JSON")}};throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined')}return'"[Circular]"'}(Ut),vt=ct(Ut,"bigint"),At=ct(Ut,"deterministic"),Lt=pt(Ut,"maximumDepth"),Rt=pt(Ut,"maximumBreadth");function St(Ct,kt,Nt,Ot,Jt,Dt){let Et=kt[Ct];switch(typeof Et=="object"&&Et!==null&&typeof Et.toJSON=="function"&&(Et=Et.toJSON(Ct)),Et=Ot.call(kt,Ct,Et),typeof Et){case"string":return`"${at(Et)}"`;case"object":{if(Et===null)return"null";if(Nt.indexOf(Et)!==-1)return mt;let Pt="",zt=",";const en=Dt;if(Array.isArray(Et)){if(Et.length===0)return"[]";if(LtRt&&(Pt+=`${zt}"... ${ft(Et.length-Rt-1)} not stringified"`),Jt!==""&&(Pt+=` +`+en),Nt.pop(),`[${Pt}]`}let Kt=Object.keys(Et);const nn=Kt.length;if(nn===0)return"{}";if(LtRt&&(Pt+=`${jt}"...":${Zt}"${ft(nn-Rt)} not stringified"`,jt=zt),Jt!==""&&jt.length>1&&(Pt=` ${Dt}${Pt} -${en}`),Nt.pop(),`{${Pt}}`}case"number":return isFinite(Et)?String(Et):Ft?Ft(Et):"null";case"boolean":return Et===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(Et);default:return Ft?Ft(Et):void 0}}function Tt(Ct,kt,Nt,Ot,Wt,Dt){switch(typeof kt=="object"&&kt!==null&&typeof kt.toJSON=="function"&&(kt=kt.toJSON(Ct)),typeof kt){case"string":return`"${at(kt)}"`;case"object":{if(kt===null)return"null";if(Nt.indexOf(kt)!==-1)return mt;const Et=Dt;let Pt="",zt=",";if(Array.isArray(kt)){if(kt.length===0)return"[]";if(LtRt&&(Pt+=`${zt}"... ${ft(kt.length-Rt-1)} not stringified"`),Wt!==""&&(Pt+=` -`+Et),Nt.pop(),`[${Pt}]`}Nt.push(kt);let en="";Wt!==""&&(zt=`, -`+(Dt+=Wt),en=" ");let Kt="";for(const nn of Ot){const Zt=Tt(nn,kt[nn],Nt,Ot,Wt,Dt);Zt!==void 0&&(Pt+=`${Kt}"${at(nn)}":${en}${Zt}`,Kt=zt)}return Wt!==""&&Kt.length>1&&(Pt=` +${en}`),Nt.pop(),`{${Pt}}`}case"number":return isFinite(Et)?String(Et):Ft?Ft(Et):"null";case"boolean":return Et===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(Et);default:return Ft?Ft(Et):void 0}}function Tt(Ct,kt,Nt,Ot,Jt,Dt){switch(typeof kt=="object"&&kt!==null&&typeof kt.toJSON=="function"&&(kt=kt.toJSON(Ct)),typeof kt){case"string":return`"${at(kt)}"`;case"object":{if(kt===null)return"null";if(Nt.indexOf(kt)!==-1)return mt;const Et=Dt;let Pt="",zt=",";if(Array.isArray(kt)){if(kt.length===0)return"[]";if(LtRt&&(Pt+=`${zt}"... ${ft(kt.length-Rt-1)} not stringified"`),Jt!==""&&(Pt+=` +`+Et),Nt.pop(),`[${Pt}]`}Nt.push(kt);let en="";Jt!==""&&(zt=`, +`+(Dt+=Jt),en=" ");let Kt="";for(const nn of Ot){const Zt=Tt(nn,kt[nn],Nt,Ot,Jt,Dt);Zt!==void 0&&(Pt+=`${Kt}"${at(nn)}":${en}${Zt}`,Kt=zt)}return Jt!==""&&Kt.length>1&&(Pt=` ${Dt}${Pt} -${Et}`),Nt.pop(),`{${Pt}}`}case"number":return isFinite(kt)?String(kt):Ft?Ft(kt):"null";case"boolean":return kt===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(kt);default:return Ft?Ft(kt):void 0}}function Bt(Ct,kt,Nt,Ot,Wt){switch(typeof kt){case"string":return`"${at(kt)}"`;case"object":{if(kt===null)return"null";if(typeof kt.toJSON=="function"){if(typeof(kt=kt.toJSON(Ct))!="object")return Bt(Ct,kt,Nt,Ot,Wt);if(kt===null)return"null"}if(Nt.indexOf(kt)!==-1)return mt;const Dt=Wt;if(Array.isArray(kt)){if(kt.length===0)return"[]";if(LtRt&&(Zt+=`${jt}"... ${ft(kt.length-Rt-1)} not stringified"`),Zt+=` +${Et}`),Nt.pop(),`{${Pt}}`}case"number":return isFinite(kt)?String(kt):Ft?Ft(kt):"null";case"boolean":return kt===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(kt);default:return Ft?Ft(kt):void 0}}function Bt(Ct,kt,Nt,Ot,Jt){switch(typeof kt){case"string":return`"${at(kt)}"`;case"object":{if(kt===null)return"null";if(typeof kt.toJSON=="function"){if(typeof(kt=kt.toJSON(Ct))!="object")return Bt(Ct,kt,Nt,Ot,Jt);if(kt===null)return"null"}if(Nt.indexOf(kt)!==-1)return mt;const Dt=Jt;if(Array.isArray(kt)){if(kt.length===0)return"[]";if(LtRt&&(Zt+=`${jt}"... ${ft(kt.length-Rt-1)} not stringified"`),Zt+=` `+Dt,Nt.pop(),`[${Zt}]`}let Et=Object.keys(kt);const Pt=Et.length;if(Pt===0)return"{}";if(LtRt&&(en+=`${Kt}"...": "${ft(Pt-Rt)} not stringified"`,Kt=zt),Kt!==""&&(en=` -${Wt}${en} -${Dt}`),Nt.pop(),`{${en}}`}case"number":return isFinite(kt)?String(kt):Ft?Ft(kt):"null";case"boolean":return kt===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(kt);default:return Ft?Ft(kt):void 0}}function xt(Ct,kt,Nt){switch(typeof kt){case"string":return`"${at(kt)}"`;case"object":{if(kt===null)return"null";if(typeof kt.toJSON=="function"){if(typeof(kt=kt.toJSON(Ct))!="object")return xt(Ct,kt,Nt);if(kt===null)return"null"}if(Nt.indexOf(kt)!==-1)return mt;let Ot="";if(Array.isArray(kt)){if(kt.length===0)return"[]";if(LtRt&&(Ot+=`,"... ${ft(kt.length-Rt-1)} not stringified"`),Nt.pop(),`[${Ot}]`}let Wt=Object.keys(kt);const Dt=Wt.length;if(Dt===0)return"{}";if(LtRt&&(Ot+=`${Et}"...":"${ft(Dt-Rt)} not stringified"`),Nt.pop(),`{${Ot}}`}case"number":return isFinite(kt)?String(kt):Ft?Ft(kt):"null";case"boolean":return kt===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(kt);default:return Ft?Ft(kt):void 0}}return function(Ct,kt,Nt){if(arguments.length>1){let Ot="";if(typeof Nt=="number"?Ot=" ".repeat(Math.min(Nt,10)):typeof Nt=="string"&&(Ot=Nt.slice(0,10)),kt!=null){if(typeof kt=="function")return St("",{"":Ct},[],kt,Ot,"");if(Array.isArray(kt))return Tt("",Ct,[],gt(kt),Ot,"")}if(Ot.length!==0)return Bt("",Ct,[],Ot,"")}return xt("",Ct,[])}}},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt,nt=tt.length){if(!nt)throw new Error("arity is undefined");return function(...rt){return typeof rt[nt-1]=="function"?tt.apply(this,rt):new Promise((it,ot)=>{rt[nt-1]=(st,...at)=>{if(st)return ot(st);it(at.length>1?at:at[0])},tt.apply(this,rt)})}},s.exports=o.default},function(s,o,et){(o=s.exports=et(69)).Stream=o,o.Readable=o,o.Writable=et(47),o.Duplex=et(22),o.Transform=et(72),o.PassThrough=et(169)},function(s,o,et){(function(tt){function nt(rt){return Object.prototype.toString.call(rt)}o.isArray=function(rt){return Array.isArray?Array.isArray(rt):nt(rt)==="[object Array]"},o.isBoolean=function(rt){return typeof rt=="boolean"},o.isNull=function(rt){return rt===null},o.isNullOrUndefined=function(rt){return rt==null},o.isNumber=function(rt){return typeof rt=="number"},o.isString=function(rt){return typeof rt=="string"},o.isSymbol=function(rt){return typeof rt=="symbol"},o.isUndefined=function(rt){return rt===void 0},o.isRegExp=function(rt){return nt(rt)==="[object RegExp]"},o.isObject=function(rt){return typeof rt=="object"&&rt!==null},o.isDate=function(rt){return nt(rt)==="[object Date]"},o.isError=function(rt){return nt(rt)==="[object Error]"||rt instanceof Error},o.isFunction=function(rt){return typeof rt=="function"},o.isPrimitive=function(rt){return rt===null||typeof rt=="boolean"||typeof rt=="number"||typeof rt=="string"||typeof rt=="symbol"||rt===void 0},o.isBuffer=tt.isBuffer}).call(this,et(5).Buffer)},function(s,o,et){(o=s.exports=et(76)).Stream=o,o.Readable=o,o.Writable=et(80),o.Duplex=et(25),o.Transform=et(81),o.PassThrough=et(189),o.finished=et(48),o.pipeline=et(190)},function(s,o,et){s.exports=function(tt){return tt}},function(s,o,et){var tt={};function nt(it,ot,st){st||(st=Error);var at=function(lt){var ut,dt;function ht(ct,pt,ft){return lt.call(this,function(gt,yt,Ut){return typeof ot=="string"?ot:ot(gt,yt,Ut)}(ct,pt,ft))||this}return dt=lt,(ut=ht).prototype=Object.create(dt.prototype),ut.prototype.constructor=ut,ut.__proto__=dt,ht}(st);at.prototype.name=st.name,at.prototype.code=it,tt[it]=at}function rt(it,ot){if(Array.isArray(it)){var st=it.length;return it=it.map(function(at){return String(at)}),st>2?"one of ".concat(ot," ").concat(it.slice(0,st-1).join(", "),", or ")+it[st-1]:st===2?"one of ".concat(ot," ").concat(it[0]," or ").concat(it[1]):"of ".concat(ot," ").concat(it[0])}return"of ".concat(ot," ").concat(String(it))}nt("ERR_INVALID_OPT_VALUE",function(it,ot){return'The value "'+ot+'" is invalid for option "'+it+'"'},TypeError),nt("ERR_INVALID_ARG_TYPE",function(it,ot,st){var at,lt,ut;if(typeof ot=="string"&&(lt="not ",ot.substr(0,lt.length)===lt)?(at="must not be",ot=ot.replace(/^not /,"")):at="must be",function(ht,ct,pt){return(pt===void 0||pt>ht.length)&&(pt=ht.length),ht.substring(pt-ct.length,pt)===ct}(it," argument"))ut="The ".concat(it," ").concat(at," ").concat(rt(ot,"type"));else{var dt=function(ht,ct,pt){return typeof pt!="number"&&(pt=0),!(pt+ct.length>ht.length)&&ht.indexOf(ct,pt)!==-1}(it,".")?"property":"argument";ut='The "'.concat(it,'" ').concat(dt," ").concat(at," ").concat(rt(ot,"type"))}return ut+=". Received type ".concat(typeof st)},TypeError),nt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),nt("ERR_METHOD_NOT_IMPLEMENTED",function(it){return"The "+it+" method is not implemented"}),nt("ERR_STREAM_PREMATURE_CLOSE","Premature close"),nt("ERR_STREAM_DESTROYED",function(it){return"Cannot call "+it+" after a stream was destroyed"}),nt("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),nt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),nt("ERR_STREAM_WRITE_AFTER_END","write after end"),nt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),nt("ERR_UNKNOWN_ENCODING",function(it){return"Unknown encoding: "+it},TypeError),nt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),s.exports.codes=tt},function(s,o,et){(function(tt){var nt=Object.keys||function(ht){var ct=[];for(var pt in ht)ct.push(pt);return ct};s.exports=lt;var rt=et(143),it=et(61);et(7)(lt,rt);for(var ot=nt(it.prototype),st=0;styt.validateHeaders?yt.validateHeaders(Ut):{},this.verbose=yt.verbose!==!1,yt.retries!==void 0&&!(yt.retries>=0))throw new Error("retries must be positive or zero");if(this.configuredRetries=yt.retries,yt.timeoutMs!==void 0&&!(yt.timeoutMs>0))throw new Error("timeoutMs must be positive");if(this.timeoutMs=yt.timeoutMs,yt.maxBackoffDelayMs!==void 0&&!(yt.maxBackoffDelayMs>0))throw new Error("maxBackoffDelayMs must be positive");this.maxBackoffDelayMs=yt.maxBackoffDelayMs||30*rt.a.second,this.json=yt.json!==!1}getRetries(){return this.configuredRetries!==void 0?this.configuredRetries:this.getConstructor().retries}getHeaders(){return{}}fetch(gt,yt={}){return dt(this,void 0,void 0,function*(){return(yield this.fetchVerbose(gt,yt)).body})}fetchVerbose(gt,yt={}){return dt(this,void 0,void 0,function*(){let Ut=100*rt.a.millisecond,Ft=0;const mt=this.timeoutMs!==void 0?new Date().getTime()+this.timeoutMs:void 0,vt=mt?()=>Math.max(mt-new Date().getTime(),0):void 0;for(;;)try{return yield this.doFetch(gt,yt,vt)}catch(At){const Lt=At,Rt=Object(at.a)(Lt,it);if(vt?.()===0||Ft===this.getRetries()||!Rt.retryable)throw Rt;Ft++,Ut=Math.min(...vt?[vt()]:[],Ut*(2+.1*(Math.random()-.5)),this.maxBackoffDelayMs),yield Object(ot.a)(Ut),this.verbose&&st.a.warn("Connection failure, retrying. Error: "+Lt.cause.message,{url:Lt.url,error:Lt.cause,attempt:Ft})}})}doFetch(gt,yt,Ut){return dt(this,void 0,void 0,function*(){const{token:Ft,json:mt=this.json,allowUnsafeRetries:vt}=yt,At=ht(yt,["token","json","allowUnsafeRetries"]),Lt=(At.method||"GET").toUpperCase(),Rt=this.endpoint!==void 0?`${this.endpoint}${gt?"/"+gt:""}`:gt,St=new AbortController;let Tt;if(Ut){const Bt=Ut();Bt>0?Tt=setTimeout(()=>{St.abort()},Bt):St.abort()}try{let Bt;yield Promise.race([this.getConstructor().waitForConnectivity(),new Promise(Dt=>{Bt=setTimeout(Dt,Ut?Math.min(rt.a.minute,Ut()):rt.a.minute)})]),Bt&&clearTimeout(Bt);const xt=yield nt()(Rt,Object.assign(Object.assign(Object.assign({},At),At.body!==void 0?{body:mt!==!1?JSON.stringify(At.body):At.body}:{}),{headers:Object.assign(Object.assign(Object.assign(Object.assign({},mt!==!1?{"Content-Type":"application/json"}:{}),this.getHeaders()),At.headers||{}),Ft!==void 0?{Authorization:"Bearer "+Ft}:{}),signal:St.signal})),Ct=xt.headers.get("content-type")||"",kt=Ct&&Ct.startsWith("application/json"),Nt=kt?yield xt.json():yield xt.text(),Ot=()=>new lt.a(Lt,Rt,At.body,xt.status,xt.headers,Nt,Nt&&Nt.validationErrors||{});if(!xt.ok)throw this.verbose&&st.a[xt.status>=500?"warn":"info"]("Response error",{method:Lt,url:Rt,statusCode:xt.status}),Ot();const Wt=this.validateHeaders(xt.headers);if(Object.keys(Wt).length!==0)throw new ut(Wt,Ot());if(xt.status===204)return{body:void 0,headers:xt.headers};if(mt&&!kt)throw new Error("Response is not JSON: "+JSON.stringify(Nt));return{body:Nt,headers:xt.headers}}catch(Bt){const xt=Bt,Ct=vt||ct.has(Lt);if(xt.message==="Network request failed")throw new it(xt,Rt,Ct);if(xt.type==="system"&&["EAI_AGAIN","ECONNREFUSED","EHOSTUNREACH","ENOTFOUND"].find(Wt=>Wt===xt.code))throw new it(xt,Rt,!0);if(xt.type==="system"&&["ETIMEDOUT","ECONNRESET","ESOCKETTIMEDOUT","EPIPE"].find(Wt=>Wt===xt.code))throw new it(xt,Rt,Ct);if(xt.name==="AbortError")throw new it(xt,Rt,Ct);const kt=Object(at.a)(xt,lt.a),{statusCode:Nt}=kt;if(Nt===408||Nt===429||Nt===502||Nt===503||Nt===504)throw this.verbose&&!Ct&&st.a.warn("Potentially unsafe retry"),new it(xt,Rt,!0);if(Nt===500&&["/online-devices","/stream-current-value","/events/counts","/queries/queries"].some(Wt=>Rt.includes(Wt)))throw new it(xt,Rt,Ct);const Ot=this.validateHeaders(kt.headers);throw Object.keys(Ot).length!==0?new ut(Ot,kt):(yield this.getConstructor().onResponseError(kt),xt)}finally{Tt&&clearTimeout(Tt)}})}getConstructor(){return Object.getPrototypeOf(this).constructor}}pt.retries=8,pt.waitForConnectivity=()=>dt(void 0,void 0,void 0,function*(){}),pt.onResponseError=()=>dt(void 0,void 0,void 0,function*(){})},function(s,o,et){function tt(ut,dt){if(!(ut instanceof dt))throw new TypeError("Cannot call a class as a function")}function nt(ut,dt){for(var ht=0;ht0&&arguments[0]!==void 0?arguments[0]:{};tt(this,ut),pt.colors&&this.addColors(pt.colors),this.options=pt}var dt,ht,ct;return dt=ut,ct=[{key:"addColors",value:function(pt){var ft=Object.keys(pt).reduce(function(gt,yt){return gt[yt]=at.test(pt[yt])?pt[yt].split(at):pt[yt],gt},{});return ut.allColors=Object.assign({},ut.allColors||{},ft),ut.allColors}}],(ht=[{key:"addColors",value:function(pt){return ut.addColors(pt)}},{key:"colorize",value:function(pt,ft,gt){if(gt===void 0&&(gt=ft),!Array.isArray(ut.allColors[pt]))return rt[ut.allColors[pt]](gt);for(var yt=0,Ut=ut.allColors[pt].length;yt=0&&tt.length%1==0},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default={},s.exports=o.default},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){(function(tt,nt,rt){var it=et(37);function ot(St){var Tt=this;this.next=null,this.entry=null,this.finish=function(){(function(Bt,xt,Ct){var kt=Bt.entry;for(Bt.entry=null;kt;){var Nt=kt.callback;xt.pendingcb--,Nt(Ct),kt=kt.next}xt.corkedRequestsFree?xt.corkedRequestsFree.next=Bt:xt.corkedRequestsFree=Bt})(Tt,St)}}s.exports=Ut;var st,at=!tt.browser&&["v0.10","v0.9."].indexOf(tt.version.slice(0,5))>-1?nt:it.nextTick;Ut.WritableState=yt;var lt=Object.create(et(32));lt.inherits=et(7);var ut={deprecate:et(43)},dt=et(70),ht=et(46).Buffer,ct=rt.Uint8Array||function(){},pt,ft=et(71);function gt(){}function yt(St,Tt){st=st||et(22),St=St||{};var Bt=Tt instanceof st;this.objectMode=!!St.objectMode,Bt&&(this.objectMode=this.objectMode||!!St.writableObjectMode);var xt=St.highWaterMark,Ct=St.writableHighWaterMark,kt=this.objectMode?16:16384;this.highWaterMark=xt||xt===0?xt:Bt&&(Ct||Ct===0)?Ct:kt,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Nt=St.decodeStrings===!1;this.decodeStrings=!Nt,this.defaultEncoding=St.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Ot){(function(Wt,Dt){var Et=Wt._writableState,Pt=Et.sync,zt=Et.writecb;if(function(Kt){Kt.writing=!1,Kt.writecb=null,Kt.length-=Kt.writelen,Kt.writelen=0}(Et),Dt)(function(Kt,nn,Zt,jt,Vt){--nn.pendingcb,Zt?(it.nextTick(Vt,jt),it.nextTick(Rt,Kt,nn),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt)):(Vt(jt),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt),Rt(Kt,nn))})(Wt,Et,Pt,Dt,zt);else{var en=At(Et);en||Et.corked||Et.bufferProcessing||!Et.bufferedRequest||vt(Wt,Et),Pt?at(mt,Wt,Et,en,zt):mt(Wt,Et,en,zt)}})(Tt,Ot)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new ot(this)}function Ut(St){if(st=st||et(22),!(pt.call(Ut,this)||this instanceof st))return new Ut(St);this._writableState=new yt(St,this),this.writable=!0,St&&(typeof St.write=="function"&&(this._write=St.write),typeof St.writev=="function"&&(this._writev=St.writev),typeof St.destroy=="function"&&(this._destroy=St.destroy),typeof St.final=="function"&&(this._final=St.final)),dt.call(this)}function Ft(St,Tt,Bt,xt,Ct,kt,Nt){Tt.writelen=xt,Tt.writecb=Nt,Tt.writing=!0,Tt.sync=!0,Bt?St._writev(Ct,Tt.onwrite):St._write(Ct,kt,Tt.onwrite),Tt.sync=!1}function mt(St,Tt,Bt,xt){Bt||function(Ct,kt){kt.length===0&&kt.needDrain&&(kt.needDrain=!1,Ct.emit("drain"))}(St,Tt),Tt.pendingcb--,xt(),Rt(St,Tt)}function vt(St,Tt){Tt.bufferProcessing=!0;var Bt=Tt.bufferedRequest;if(St._writev&&Bt&&Bt.next){var xt=Tt.bufferedRequestCount,Ct=new Array(xt),kt=Tt.corkedRequestsFree;kt.entry=Bt;for(var Nt=0,Ot=!0;Bt;)Ct[Nt]=Bt,Bt.isBuf||(Ot=!1),Bt=Bt.next,Nt+=1;Ct.allBuffers=Ot,Ft(St,Tt,!0,Tt.length,Ct,"",kt.finish),Tt.pendingcb++,Tt.lastBufferedRequest=null,kt.next?(Tt.corkedRequestsFree=kt.next,kt.next=null):Tt.corkedRequestsFree=new ot(Tt),Tt.bufferedRequestCount=0}else{for(;Bt;){var Wt=Bt.chunk,Dt=Bt.encoding,Et=Bt.callback;if(Ft(St,Tt,!1,Tt.objectMode?1:Wt.length,Wt,Dt,Et),Bt=Bt.next,Tt.bufferedRequestCount--,Tt.writing)break}Bt===null&&(Tt.lastBufferedRequest=null)}Tt.bufferedRequest=Bt,Tt.bufferProcessing=!1}function At(St){return St.ending&&St.length===0&&St.bufferedRequest===null&&!St.finished&&!St.writing}function Lt(St,Tt){St._final(function(Bt){Tt.pendingcb--,Bt&&St.emit("error",Bt),Tt.prefinished=!0,St.emit("prefinish"),Rt(St,Tt)})}function Rt(St,Tt){var Bt=At(Tt);return Bt&&(function(xt,Ct){Ct.prefinished||Ct.finalCalled||(typeof xt._final=="function"?(Ct.pendingcb++,Ct.finalCalled=!0,it.nextTick(Lt,xt,Ct)):(Ct.prefinished=!0,xt.emit("prefinish")))}(St,Tt),Tt.pendingcb===0&&(Tt.finished=!0,St.emit("finish"))),Bt}lt.inherits(Ut,dt),yt.prototype.getBuffer=function(){for(var St=this.bufferedRequest,Tt=[];St;)Tt.push(St),St=St.next;return Tt},function(){try{Object.defineProperty(yt.prototype,"buffer",{get:ut.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(pt=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ut,Symbol.hasInstance,{value:function(St){return!!pt.call(this,St)||this===Ut&&St&&St._writableState instanceof yt}})):pt=function(St){return St instanceof this},Ut.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Ut.prototype.write=function(St,Tt,Bt){var xt,Ct=this._writableState,kt=!1,Nt=!Ct.objectMode&&(xt=St,ht.isBuffer(xt)||xt instanceof ct);return Nt&&!ht.isBuffer(St)&&(St=function(Ot){return ht.from(Ot)}(St)),typeof Tt=="function"&&(Bt=Tt,Tt=null),Nt?Tt="buffer":Tt||(Tt=Ct.defaultEncoding),typeof Bt!="function"&&(Bt=gt),Ct.ended?function(Ot,Wt){var Dt=new Error("write after end");Ot.emit("error",Dt),it.nextTick(Wt,Dt)}(this,Bt):(Nt||function(Ot,Wt,Dt,Et){var Pt=!0,zt=!1;return Dt===null?zt=new TypeError("May not write null values to stream"):typeof Dt=="string"||Dt===void 0||Wt.objectMode||(zt=new TypeError("Invalid non-string/buffer chunk")),zt&&(Ot.emit("error",zt),it.nextTick(Et,zt),Pt=!1),Pt}(this,Ct,St,Bt))&&(Ct.pendingcb++,kt=function(Ot,Wt,Dt,Et,Pt,zt){if(!Dt){var en=function(jt,Vt,It){return jt.objectMode||jt.decodeStrings===!1||typeof Vt!="string"||(Vt=ht.from(Vt,It)),Vt}(Wt,Et,Pt);Et!==en&&(Dt=!0,Pt="buffer",Et=en)}var Kt=Wt.objectMode?1:Et.length;Wt.length+=Kt;var nn=Wt.length-1))throw new TypeError("Unknown encoding: "+St);return this._writableState.defaultEncoding=St,this},Object.defineProperty(Ut.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Ut.prototype._write=function(St,Tt,Bt){Bt(new Error("_write() is not implemented"))},Ut.prototype._writev=null,Ut.prototype.end=function(St,Tt,Bt){var xt=this._writableState;typeof St=="function"?(Bt=St,St=null,Tt=null):typeof Tt=="function"&&(Bt=Tt,Tt=null),St!=null&&this.write(St,Tt),xt.corked&&(xt.corked=1,this.uncork()),xt.ending||xt.finished||function(Ct,kt,Nt){kt.ending=!0,Rt(Ct,kt),Nt&&(kt.finished?it.nextTick(Nt):Ct.once("finish",Nt)),kt.ended=!0,Ct.writable=!1}(this,xt,Bt)},Object.defineProperty(Ut.prototype,"destroyed",{get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(St){this._writableState&&(this._writableState.destroyed=St)}}),Ut.prototype.destroy=ft.destroy,Ut.prototype._undestroy=ft.undestroy,Ut.prototype._destroy=function(St,Tt){this.end(),Tt(St)}}).call(this,et(2),et(19).setImmediate,et(6))},function(s,o,et){var tt=et(24).codes.ERR_STREAM_PREMATURE_CLOSE;function nt(){}s.exports=function rt(it,ot,st){if(typeof ot=="function")return rt(it,null,ot);ot||(ot={}),st=function(Ut){var Ft=!1;return function(){if(!Ft){Ft=!0;for(var mt=arguments.length,vt=new Array(mt),At=0;At=0;lt--){var ut=ot[lt];ut==="."?ot.splice(lt,1):ut===".."?(ot.splice(lt,1),at++):at&&(ot.splice(lt,1),at--)}if(st)for(;at--;at)ot.unshift("..");return ot}function rt(ot,st){if(ot.filter)return ot.filter(st);for(var at=[],lt=0;lt=-1&&!st;at--){var lt=at>=0?arguments[at]:tt.cwd();if(typeof lt!="string")throw new TypeError("Arguments to path.resolve must be strings");lt&&(ot=lt+"/"+ot,st=lt.charAt(0)==="/")}return(st?"/":"")+(ot=nt(rt(ot.split("/"),function(ut){return!!ut}),!st).join("/"))||"."},o.normalize=function(ot){var st=o.isAbsolute(ot),at=it(ot,-1)==="/";return(ot=nt(rt(ot.split("/"),function(lt){return!!lt}),!st).join("/"))||st||(ot="."),ot&&at&&(ot+="/"),(st?"/":"")+ot},o.isAbsolute=function(ot){return ot.charAt(0)==="/"},o.join=function(){var ot=Array.prototype.slice.call(arguments,0);return o.normalize(rt(ot,function(st,at){if(typeof st!="string")throw new TypeError("Arguments to path.join must be strings");return st}).join("/"))},o.relative=function(ot,st){function at(ft){for(var gt=0;gt=0&&ft[yt]==="";yt--);return gt>yt?[]:ft.slice(gt,yt-gt+1)}ot=o.resolve(ot).substr(1),st=o.resolve(st).substr(1);for(var lt=at(ot.split("/")),ut=at(st.split("/")),dt=Math.min(lt.length,ut.length),ht=dt,ct=0;ct=1;--dt)if((st=ot.charCodeAt(dt))===47){if(!ut){lt=dt;break}}else ut=!1;return lt===-1?at?"/":".":at&<===1?"/":ot.slice(0,lt)},o.basename=function(ot,st){var at=function(lt){typeof lt!="string"&&(lt+="");var ut,dt=0,ht=-1,ct=!0;for(ut=lt.length-1;ut>=0;--ut)if(lt.charCodeAt(ut)===47){if(!ct){dt=ut+1;break}}else ht===-1&&(ct=!1,ht=ut+1);return ht===-1?"":lt.slice(dt,ht)}(ot);return st&&at.substr(-1*st.length)===st&&(at=at.substr(0,at.length-st.length)),at},o.extname=function(ot){typeof ot!="string"&&(ot+="");for(var st=-1,at=0,lt=-1,ut=!0,dt=0,ht=ot.length-1;ht>=0;--ht){var ct=ot.charCodeAt(ht);if(ct!==47)lt===-1&&(ut=!1,lt=ht+1),ct===46?st===-1?st=ht:dt!==1&&(dt=1):st!==-1&&(dt=-1);else if(!ut){at=ht+1;break}}return st===-1||lt===-1||dt===0||dt===1&&st===lt-1&&st===at+1?"":ot.slice(st,lt)};var it="ab".substr(-1)==="b"?function(ot,st,at){return ot.substr(st,at)}:function(ot,st,at){return st<0&&(st=ot.length+st),ot.substr(st,at)}}).call(this,et(2))},,function(s,o,et){var tt=o.format=et(8);o.levels=et(102),Object.defineProperty(tt,"align",{value:et(119)}),Object.defineProperty(tt,"cli",{value:et(120)}),Object.defineProperty(tt,"colorize",{value:et(42)}),Object.defineProperty(tt,"combine",{value:et(121)}),Object.defineProperty(tt,"errors",{value:et(122)}),Object.defineProperty(tt,"json",{value:et(123)}),Object.defineProperty(tt,"label",{value:et(124)}),Object.defineProperty(tt,"logstash",{value:et(125)}),Object.defineProperty(tt,"metadata",{value:et(126)}),Object.defineProperty(tt,"ms",{value:et(127)}),Object.defineProperty(tt,"padLevels",{value:et(59)}),Object.defineProperty(tt,"prettyPrint",{value:et(129)}),Object.defineProperty(tt,"printf",{value:et(130)}),Object.defineProperty(tt,"simple",{value:et(131)}),Object.defineProperty(tt,"splat",{value:et(132)}),Object.defineProperty(tt,"timestamp",{value:et(133)}),Object.defineProperty(tt,"uncolorize",{value:et(135)})},function(s,o,et){var tt=et(103);s.exports=tt},function(s,o,et){function tt(dt){return function(ht){if(Array.isArray(ht))return nt(ht)}(dt)||function(ht){if(typeof Symbol<"u"&&ht[Symbol.iterator]!=null||ht["@@iterator"]!=null)return Array.from(ht)}(dt)||function(ht,ct){if(ht){if(typeof ht=="string")return nt(ht,ct);var pt=Object.prototype.toString.call(ht).slice(8,-1);if(pt==="Object"&&ht.constructor&&(pt=ht.constructor.name),pt==="Map"||pt==="Set")return Array.from(ht);if(pt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(pt))return nt(ht,ct)}}(dt)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +`+(Jt+=Ot);let en="",Kt="",nn=Math.min(Pt,Rt);dt(kt)&&(en+=ht(kt,zt,Rt),Et=Et.slice(kt.length),nn-=kt.length,Kt=zt),At&&(Et=lt(Et)),Nt.push(kt);for(let Zt=0;ZtRt&&(en+=`${Kt}"...": "${ft(Pt-Rt)} not stringified"`,Kt=zt),Kt!==""&&(en=` +${Jt}${en} +${Dt}`),Nt.pop(),`{${en}}`}case"number":return isFinite(kt)?String(kt):Ft?Ft(kt):"null";case"boolean":return kt===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(kt);default:return Ft?Ft(kt):void 0}}function xt(Ct,kt,Nt){switch(typeof kt){case"string":return`"${at(kt)}"`;case"object":{if(kt===null)return"null";if(typeof kt.toJSON=="function"){if(typeof(kt=kt.toJSON(Ct))!="object")return xt(Ct,kt,Nt);if(kt===null)return"null"}if(Nt.indexOf(kt)!==-1)return mt;let Ot="";if(Array.isArray(kt)){if(kt.length===0)return"[]";if(LtRt&&(Ot+=`,"... ${ft(kt.length-Rt-1)} not stringified"`),Nt.pop(),`[${Ot}]`}let Jt=Object.keys(kt);const Dt=Jt.length;if(Dt===0)return"{}";if(LtRt&&(Ot+=`${Et}"...":"${ft(Dt-Rt)} not stringified"`),Nt.pop(),`{${Ot}}`}case"number":return isFinite(kt)?String(kt):Ft?Ft(kt):"null";case"boolean":return kt===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(kt);default:return Ft?Ft(kt):void 0}}return function(Ct,kt,Nt){if(arguments.length>1){let Ot="";if(typeof Nt=="number"?Ot=" ".repeat(Math.min(Nt,10)):typeof Nt=="string"&&(Ot=Nt.slice(0,10)),kt!=null){if(typeof kt=="function")return St("",{"":Ct},[],kt,Ot,"");if(Array.isArray(kt))return Tt("",Ct,[],gt(kt),Ot,"")}if(Ot.length!==0)return Bt("",Ct,[],Ot,"")}return xt("",Ct,[])}}},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt,nt=tt.length){if(!nt)throw new Error("arity is undefined");return function(...rt){return typeof rt[nt-1]=="function"?tt.apply(this,rt):new Promise((it,ot)=>{rt[nt-1]=(st,...at)=>{if(st)return ot(st);it(at.length>1?at:at[0])},tt.apply(this,rt)})}},s.exports=o.default},function(s,o,et){(o=s.exports=et(69)).Stream=o,o.Readable=o,o.Writable=et(47),o.Duplex=et(22),o.Transform=et(72),o.PassThrough=et(169)},function(s,o,et){(function(tt){function nt(rt){return Object.prototype.toString.call(rt)}o.isArray=function(rt){return Array.isArray?Array.isArray(rt):nt(rt)==="[object Array]"},o.isBoolean=function(rt){return typeof rt=="boolean"},o.isNull=function(rt){return rt===null},o.isNullOrUndefined=function(rt){return rt==null},o.isNumber=function(rt){return typeof rt=="number"},o.isString=function(rt){return typeof rt=="string"},o.isSymbol=function(rt){return typeof rt=="symbol"},o.isUndefined=function(rt){return rt===void 0},o.isRegExp=function(rt){return nt(rt)==="[object RegExp]"},o.isObject=function(rt){return typeof rt=="object"&&rt!==null},o.isDate=function(rt){return nt(rt)==="[object Date]"},o.isError=function(rt){return nt(rt)==="[object Error]"||rt instanceof Error},o.isFunction=function(rt){return typeof rt=="function"},o.isPrimitive=function(rt){return rt===null||typeof rt=="boolean"||typeof rt=="number"||typeof rt=="string"||typeof rt=="symbol"||rt===void 0},o.isBuffer=tt.isBuffer}).call(this,et(5).Buffer)},function(s,o,et){(o=s.exports=et(76)).Stream=o,o.Readable=o,o.Writable=et(80),o.Duplex=et(25),o.Transform=et(81),o.PassThrough=et(189),o.finished=et(48),o.pipeline=et(190)},function(s,o,et){s.exports=function(tt){return tt}},function(s,o,et){var tt={};function nt(it,ot,st){st||(st=Error);var at=function(lt){var ut,dt;function ht(ct,pt,ft){return lt.call(this,function(gt,yt,Ut){return typeof ot=="string"?ot:ot(gt,yt,Ut)}(ct,pt,ft))||this}return dt=lt,(ut=ht).prototype=Object.create(dt.prototype),ut.prototype.constructor=ut,ut.__proto__=dt,ht}(st);at.prototype.name=st.name,at.prototype.code=it,tt[it]=at}function rt(it,ot){if(Array.isArray(it)){var st=it.length;return it=it.map(function(at){return String(at)}),st>2?"one of ".concat(ot," ").concat(it.slice(0,st-1).join(", "),", or ")+it[st-1]:st===2?"one of ".concat(ot," ").concat(it[0]," or ").concat(it[1]):"of ".concat(ot," ").concat(it[0])}return"of ".concat(ot," ").concat(String(it))}nt("ERR_INVALID_OPT_VALUE",function(it,ot){return'The value "'+ot+'" is invalid for option "'+it+'"'},TypeError),nt("ERR_INVALID_ARG_TYPE",function(it,ot,st){var at,lt,ut;if(typeof ot=="string"&&(lt="not ",ot.substr(0,lt.length)===lt)?(at="must not be",ot=ot.replace(/^not /,"")):at="must be",function(ht,ct,pt){return(pt===void 0||pt>ht.length)&&(pt=ht.length),ht.substring(pt-ct.length,pt)===ct}(it," argument"))ut="The ".concat(it," ").concat(at," ").concat(rt(ot,"type"));else{var dt=function(ht,ct,pt){return typeof pt!="number"&&(pt=0),!(pt+ct.length>ht.length)&&ht.indexOf(ct,pt)!==-1}(it,".")?"property":"argument";ut='The "'.concat(it,'" ').concat(dt," ").concat(at," ").concat(rt(ot,"type"))}return ut+=". Received type ".concat(typeof st)},TypeError),nt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),nt("ERR_METHOD_NOT_IMPLEMENTED",function(it){return"The "+it+" method is not implemented"}),nt("ERR_STREAM_PREMATURE_CLOSE","Premature close"),nt("ERR_STREAM_DESTROYED",function(it){return"Cannot call "+it+" after a stream was destroyed"}),nt("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),nt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),nt("ERR_STREAM_WRITE_AFTER_END","write after end"),nt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),nt("ERR_UNKNOWN_ENCODING",function(it){return"Unknown encoding: "+it},TypeError),nt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),s.exports.codes=tt},function(s,o,et){(function(tt){var nt=Object.keys||function(ht){var ct=[];for(var pt in ht)ct.push(pt);return ct};s.exports=lt;var rt=et(143),it=et(61);et(7)(lt,rt);for(var ot=nt(it.prototype),st=0;styt.validateHeaders?yt.validateHeaders(Ut):{},this.verbose=yt.verbose!==!1,yt.retries!==void 0&&!(yt.retries>=0))throw new Error("retries must be positive or zero");if(this.configuredRetries=yt.retries,yt.timeoutMs!==void 0&&!(yt.timeoutMs>0))throw new Error("timeoutMs must be positive");if(this.timeoutMs=yt.timeoutMs,yt.maxBackoffDelayMs!==void 0&&!(yt.maxBackoffDelayMs>0))throw new Error("maxBackoffDelayMs must be positive");this.maxBackoffDelayMs=yt.maxBackoffDelayMs||30*rt.a.second,this.json=yt.json!==!1}getRetries(){return this.configuredRetries!==void 0?this.configuredRetries:this.getConstructor().retries}getHeaders(){return{}}fetch(gt,yt={}){return dt(this,void 0,void 0,function*(){return(yield this.fetchVerbose(gt,yt)).body})}fetchVerbose(gt,yt={}){return dt(this,void 0,void 0,function*(){let Ut=100*rt.a.millisecond,Ft=0;const mt=this.timeoutMs!==void 0?new Date().getTime()+this.timeoutMs:void 0,vt=mt?()=>Math.max(mt-new Date().getTime(),0):void 0;for(;;)try{return yield this.doFetch(gt,yt,vt)}catch(At){const Lt=At,Rt=Object(at.a)(Lt,it);if(vt?.()===0||Ft===this.getRetries()||!Rt.retryable)throw Rt;Ft++,Ut=Math.min(...vt?[vt()]:[],Ut*(2+.1*(Math.random()-.5)),this.maxBackoffDelayMs),yield Object(ot.a)(Ut),this.verbose&&st.a.warn("Connection failure, retrying. Error: "+Lt.cause.message,{url:Lt.url,error:Lt.cause,attempt:Ft})}})}doFetch(gt,yt,Ut){return dt(this,void 0,void 0,function*(){const{token:Ft,json:mt=this.json,allowUnsafeRetries:vt}=yt,At=ht(yt,["token","json","allowUnsafeRetries"]),Lt=(At.method||"GET").toUpperCase(),Rt=this.endpoint!==void 0?`${this.endpoint}${gt?"/"+gt:""}`:gt,St=new AbortController;let Tt;if(Ut){const Bt=Ut();Bt>0?Tt=setTimeout(()=>{St.abort()},Bt):St.abort()}try{let Bt;yield Promise.race([this.getConstructor().waitForConnectivity(),new Promise(Dt=>{Bt=setTimeout(Dt,Ut?Math.min(rt.a.minute,Ut()):rt.a.minute)})]),Bt&&clearTimeout(Bt);const xt=yield nt()(Rt,Object.assign(Object.assign(Object.assign({},At),At.body!==void 0?{body:mt!==!1?JSON.stringify(At.body):At.body}:{}),{headers:Object.assign(Object.assign(Object.assign(Object.assign({},mt!==!1?{"Content-Type":"application/json"}:{}),this.getHeaders()),At.headers||{}),Ft!==void 0?{Authorization:"Bearer "+Ft}:{}),signal:St.signal})),Ct=xt.headers.get("content-type")||"",kt=Ct&&Ct.startsWith("application/json"),Nt=kt?yield xt.json():yield xt.text(),Ot=()=>new lt.a(Lt,Rt,At.body,xt.status,xt.headers,Nt,Nt&&Nt.validationErrors||{});if(!xt.ok)throw this.verbose&&st.a[xt.status>=500?"warn":"info"]("Response error",{method:Lt,url:Rt,statusCode:xt.status}),Ot();const Jt=this.validateHeaders(xt.headers);if(Object.keys(Jt).length!==0)throw new ut(Jt,Ot());if(xt.status===204)return{body:void 0,headers:xt.headers};if(mt&&!kt)throw new Error("Response is not JSON: "+JSON.stringify(Nt));return{body:Nt,headers:xt.headers}}catch(Bt){const xt=Bt,Ct=vt||ct.has(Lt);if(xt.message==="Network request failed")throw new it(xt,Rt,Ct);if(xt.type==="system"&&["EAI_AGAIN","ECONNREFUSED","EHOSTUNREACH","ENOTFOUND"].find(Jt=>Jt===xt.code))throw new it(xt,Rt,!0);if(xt.type==="system"&&["ETIMEDOUT","ECONNRESET","ESOCKETTIMEDOUT","EPIPE"].find(Jt=>Jt===xt.code))throw new it(xt,Rt,Ct);if(xt.name==="AbortError")throw new it(xt,Rt,Ct);const kt=Object(at.a)(xt,lt.a),{statusCode:Nt}=kt;if(Nt===408||Nt===429||Nt===502||Nt===503||Nt===504)throw this.verbose&&!Ct&&st.a.warn("Potentially unsafe retry"),new it(xt,Rt,!0);if(Nt===500&&["/online-devices","/stream-current-value","/events/counts","/queries/queries"].some(Jt=>Rt.includes(Jt)))throw new it(xt,Rt,Ct);const Ot=this.validateHeaders(kt.headers);throw Object.keys(Ot).length!==0?new ut(Ot,kt):(yield this.getConstructor().onResponseError(kt),xt)}finally{Tt&&clearTimeout(Tt)}})}getConstructor(){return Object.getPrototypeOf(this).constructor}}pt.retries=8,pt.waitForConnectivity=()=>dt(void 0,void 0,void 0,function*(){}),pt.onResponseError=()=>dt(void 0,void 0,void 0,function*(){})},function(s,o,et){function tt(ut,dt){if(!(ut instanceof dt))throw new TypeError("Cannot call a class as a function")}function nt(ut,dt){for(var ht=0;ht0&&arguments[0]!==void 0?arguments[0]:{};tt(this,ut),pt.colors&&this.addColors(pt.colors),this.options=pt}var dt,ht,ct;return dt=ut,ct=[{key:"addColors",value:function(pt){var ft=Object.keys(pt).reduce(function(gt,yt){return gt[yt]=at.test(pt[yt])?pt[yt].split(at):pt[yt],gt},{});return ut.allColors=Object.assign({},ut.allColors||{},ft),ut.allColors}}],(ht=[{key:"addColors",value:function(pt){return ut.addColors(pt)}},{key:"colorize",value:function(pt,ft,gt){if(gt===void 0&&(gt=ft),!Array.isArray(ut.allColors[pt]))return rt[ut.allColors[pt]](gt);for(var yt=0,Ut=ut.allColors[pt].length;yt=0&&tt.length%1==0},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default={},s.exports=o.default},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){(function(tt,nt,rt){var it=et(37);function ot(St){var Tt=this;this.next=null,this.entry=null,this.finish=function(){(function(Bt,xt,Ct){var kt=Bt.entry;for(Bt.entry=null;kt;){var Nt=kt.callback;xt.pendingcb--,Nt(Ct),kt=kt.next}xt.corkedRequestsFree?xt.corkedRequestsFree.next=Bt:xt.corkedRequestsFree=Bt})(Tt,St)}}s.exports=Ut;var st,at=!tt.browser&&["v0.10","v0.9."].indexOf(tt.version.slice(0,5))>-1?nt:it.nextTick;Ut.WritableState=yt;var lt=Object.create(et(32));lt.inherits=et(7);var ut={deprecate:et(43)},dt=et(70),ht=et(46).Buffer,ct=rt.Uint8Array||function(){},pt,ft=et(71);function gt(){}function yt(St,Tt){st=st||et(22),St=St||{};var Bt=Tt instanceof st;this.objectMode=!!St.objectMode,Bt&&(this.objectMode=this.objectMode||!!St.writableObjectMode);var xt=St.highWaterMark,Ct=St.writableHighWaterMark,kt=this.objectMode?16:16384;this.highWaterMark=xt||xt===0?xt:Bt&&(Ct||Ct===0)?Ct:kt,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Nt=St.decodeStrings===!1;this.decodeStrings=!Nt,this.defaultEncoding=St.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Ot){(function(Jt,Dt){var Et=Jt._writableState,Pt=Et.sync,zt=Et.writecb;if(function(Kt){Kt.writing=!1,Kt.writecb=null,Kt.length-=Kt.writelen,Kt.writelen=0}(Et),Dt)(function(Kt,nn,Zt,jt,Vt){--nn.pendingcb,Zt?(it.nextTick(Vt,jt),it.nextTick(Rt,Kt,nn),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt)):(Vt(jt),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt),Rt(Kt,nn))})(Jt,Et,Pt,Dt,zt);else{var en=At(Et);en||Et.corked||Et.bufferProcessing||!Et.bufferedRequest||vt(Jt,Et),Pt?at(mt,Jt,Et,en,zt):mt(Jt,Et,en,zt)}})(Tt,Ot)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new ot(this)}function Ut(St){if(st=st||et(22),!(pt.call(Ut,this)||this instanceof st))return new Ut(St);this._writableState=new yt(St,this),this.writable=!0,St&&(typeof St.write=="function"&&(this._write=St.write),typeof St.writev=="function"&&(this._writev=St.writev),typeof St.destroy=="function"&&(this._destroy=St.destroy),typeof St.final=="function"&&(this._final=St.final)),dt.call(this)}function Ft(St,Tt,Bt,xt,Ct,kt,Nt){Tt.writelen=xt,Tt.writecb=Nt,Tt.writing=!0,Tt.sync=!0,Bt?St._writev(Ct,Tt.onwrite):St._write(Ct,kt,Tt.onwrite),Tt.sync=!1}function mt(St,Tt,Bt,xt){Bt||function(Ct,kt){kt.length===0&&kt.needDrain&&(kt.needDrain=!1,Ct.emit("drain"))}(St,Tt),Tt.pendingcb--,xt(),Rt(St,Tt)}function vt(St,Tt){Tt.bufferProcessing=!0;var Bt=Tt.bufferedRequest;if(St._writev&&Bt&&Bt.next){var xt=Tt.bufferedRequestCount,Ct=new Array(xt),kt=Tt.corkedRequestsFree;kt.entry=Bt;for(var Nt=0,Ot=!0;Bt;)Ct[Nt]=Bt,Bt.isBuf||(Ot=!1),Bt=Bt.next,Nt+=1;Ct.allBuffers=Ot,Ft(St,Tt,!0,Tt.length,Ct,"",kt.finish),Tt.pendingcb++,Tt.lastBufferedRequest=null,kt.next?(Tt.corkedRequestsFree=kt.next,kt.next=null):Tt.corkedRequestsFree=new ot(Tt),Tt.bufferedRequestCount=0}else{for(;Bt;){var Jt=Bt.chunk,Dt=Bt.encoding,Et=Bt.callback;if(Ft(St,Tt,!1,Tt.objectMode?1:Jt.length,Jt,Dt,Et),Bt=Bt.next,Tt.bufferedRequestCount--,Tt.writing)break}Bt===null&&(Tt.lastBufferedRequest=null)}Tt.bufferedRequest=Bt,Tt.bufferProcessing=!1}function At(St){return St.ending&&St.length===0&&St.bufferedRequest===null&&!St.finished&&!St.writing}function Lt(St,Tt){St._final(function(Bt){Tt.pendingcb--,Bt&&St.emit("error",Bt),Tt.prefinished=!0,St.emit("prefinish"),Rt(St,Tt)})}function Rt(St,Tt){var Bt=At(Tt);return Bt&&(function(xt,Ct){Ct.prefinished||Ct.finalCalled||(typeof xt._final=="function"?(Ct.pendingcb++,Ct.finalCalled=!0,it.nextTick(Lt,xt,Ct)):(Ct.prefinished=!0,xt.emit("prefinish")))}(St,Tt),Tt.pendingcb===0&&(Tt.finished=!0,St.emit("finish"))),Bt}lt.inherits(Ut,dt),yt.prototype.getBuffer=function(){for(var St=this.bufferedRequest,Tt=[];St;)Tt.push(St),St=St.next;return Tt},function(){try{Object.defineProperty(yt.prototype,"buffer",{get:ut.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(pt=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ut,Symbol.hasInstance,{value:function(St){return!!pt.call(this,St)||this===Ut&&St&&St._writableState instanceof yt}})):pt=function(St){return St instanceof this},Ut.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Ut.prototype.write=function(St,Tt,Bt){var xt,Ct=this._writableState,kt=!1,Nt=!Ct.objectMode&&(xt=St,ht.isBuffer(xt)||xt instanceof ct);return Nt&&!ht.isBuffer(St)&&(St=function(Ot){return ht.from(Ot)}(St)),typeof Tt=="function"&&(Bt=Tt,Tt=null),Nt?Tt="buffer":Tt||(Tt=Ct.defaultEncoding),typeof Bt!="function"&&(Bt=gt),Ct.ended?function(Ot,Jt){var Dt=new Error("write after end");Ot.emit("error",Dt),it.nextTick(Jt,Dt)}(this,Bt):(Nt||function(Ot,Jt,Dt,Et){var Pt=!0,zt=!1;return Dt===null?zt=new TypeError("May not write null values to stream"):typeof Dt=="string"||Dt===void 0||Jt.objectMode||(zt=new TypeError("Invalid non-string/buffer chunk")),zt&&(Ot.emit("error",zt),it.nextTick(Et,zt),Pt=!1),Pt}(this,Ct,St,Bt))&&(Ct.pendingcb++,kt=function(Ot,Jt,Dt,Et,Pt,zt){if(!Dt){var en=function(jt,Vt,It){return jt.objectMode||jt.decodeStrings===!1||typeof Vt!="string"||(Vt=ht.from(Vt,It)),Vt}(Jt,Et,Pt);Et!==en&&(Dt=!0,Pt="buffer",Et=en)}var Kt=Jt.objectMode?1:Et.length;Jt.length+=Kt;var nn=Jt.length-1))throw new TypeError("Unknown encoding: "+St);return this._writableState.defaultEncoding=St,this},Object.defineProperty(Ut.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Ut.prototype._write=function(St,Tt,Bt){Bt(new Error("_write() is not implemented"))},Ut.prototype._writev=null,Ut.prototype.end=function(St,Tt,Bt){var xt=this._writableState;typeof St=="function"?(Bt=St,St=null,Tt=null):typeof Tt=="function"&&(Bt=Tt,Tt=null),St!=null&&this.write(St,Tt),xt.corked&&(xt.corked=1,this.uncork()),xt.ending||xt.finished||function(Ct,kt,Nt){kt.ending=!0,Rt(Ct,kt),Nt&&(kt.finished?it.nextTick(Nt):Ct.once("finish",Nt)),kt.ended=!0,Ct.writable=!1}(this,xt,Bt)},Object.defineProperty(Ut.prototype,"destroyed",{get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(St){this._writableState&&(this._writableState.destroyed=St)}}),Ut.prototype.destroy=ft.destroy,Ut.prototype._undestroy=ft.undestroy,Ut.prototype._destroy=function(St,Tt){this.end(),Tt(St)}}).call(this,et(2),et(19).setImmediate,et(6))},function(s,o,et){var tt=et(24).codes.ERR_STREAM_PREMATURE_CLOSE;function nt(){}s.exports=function rt(it,ot,st){if(typeof ot=="function")return rt(it,null,ot);ot||(ot={}),st=function(Ut){var Ft=!1;return function(){if(!Ft){Ft=!0;for(var mt=arguments.length,vt=new Array(mt),At=0;At=0;lt--){var ut=ot[lt];ut==="."?ot.splice(lt,1):ut===".."?(ot.splice(lt,1),at++):at&&(ot.splice(lt,1),at--)}if(st)for(;at--;at)ot.unshift("..");return ot}function rt(ot,st){if(ot.filter)return ot.filter(st);for(var at=[],lt=0;lt=-1&&!st;at--){var lt=at>=0?arguments[at]:tt.cwd();if(typeof lt!="string")throw new TypeError("Arguments to path.resolve must be strings");lt&&(ot=lt+"/"+ot,st=lt.charAt(0)==="/")}return(st?"/":"")+(ot=nt(rt(ot.split("/"),function(ut){return!!ut}),!st).join("/"))||"."},o.normalize=function(ot){var st=o.isAbsolute(ot),at=it(ot,-1)==="/";return(ot=nt(rt(ot.split("/"),function(lt){return!!lt}),!st).join("/"))||st||(ot="."),ot&&at&&(ot+="/"),(st?"/":"")+ot},o.isAbsolute=function(ot){return ot.charAt(0)==="/"},o.join=function(){var ot=Array.prototype.slice.call(arguments,0);return o.normalize(rt(ot,function(st,at){if(typeof st!="string")throw new TypeError("Arguments to path.join must be strings");return st}).join("/"))},o.relative=function(ot,st){function at(ft){for(var gt=0;gt=0&&ft[yt]==="";yt--);return gt>yt?[]:ft.slice(gt,yt-gt+1)}ot=o.resolve(ot).substr(1),st=o.resolve(st).substr(1);for(var lt=at(ot.split("/")),ut=at(st.split("/")),dt=Math.min(lt.length,ut.length),ht=dt,ct=0;ct=1;--dt)if((st=ot.charCodeAt(dt))===47){if(!ut){lt=dt;break}}else ut=!1;return lt===-1?at?"/":".":at&<===1?"/":ot.slice(0,lt)},o.basename=function(ot,st){var at=function(lt){typeof lt!="string"&&(lt+="");var ut,dt=0,ht=-1,ct=!0;for(ut=lt.length-1;ut>=0;--ut)if(lt.charCodeAt(ut)===47){if(!ct){dt=ut+1;break}}else ht===-1&&(ct=!1,ht=ut+1);return ht===-1?"":lt.slice(dt,ht)}(ot);return st&&at.substr(-1*st.length)===st&&(at=at.substr(0,at.length-st.length)),at},o.extname=function(ot){typeof ot!="string"&&(ot+="");for(var st=-1,at=0,lt=-1,ut=!0,dt=0,ht=ot.length-1;ht>=0;--ht){var ct=ot.charCodeAt(ht);if(ct!==47)lt===-1&&(ut=!1,lt=ht+1),ct===46?st===-1?st=ht:dt!==1&&(dt=1):st!==-1&&(dt=-1);else if(!ut){at=ht+1;break}}return st===-1||lt===-1||dt===0||dt===1&&st===lt-1&&st===at+1?"":ot.slice(st,lt)};var it="ab".substr(-1)==="b"?function(ot,st,at){return ot.substr(st,at)}:function(ot,st,at){return st<0&&(st=ot.length+st),ot.substr(st,at)}}).call(this,et(2))},,function(s,o,et){var tt=o.format=et(8);o.levels=et(102),Object.defineProperty(tt,"align",{value:et(119)}),Object.defineProperty(tt,"cli",{value:et(120)}),Object.defineProperty(tt,"colorize",{value:et(42)}),Object.defineProperty(tt,"combine",{value:et(121)}),Object.defineProperty(tt,"errors",{value:et(122)}),Object.defineProperty(tt,"json",{value:et(123)}),Object.defineProperty(tt,"label",{value:et(124)}),Object.defineProperty(tt,"logstash",{value:et(125)}),Object.defineProperty(tt,"metadata",{value:et(126)}),Object.defineProperty(tt,"ms",{value:et(127)}),Object.defineProperty(tt,"padLevels",{value:et(59)}),Object.defineProperty(tt,"prettyPrint",{value:et(129)}),Object.defineProperty(tt,"printf",{value:et(130)}),Object.defineProperty(tt,"simple",{value:et(131)}),Object.defineProperty(tt,"splat",{value:et(132)}),Object.defineProperty(tt,"timestamp",{value:et(133)}),Object.defineProperty(tt,"uncolorize",{value:et(135)})},function(s,o,et){var tt=et(103);s.exports=tt},function(s,o,et){function tt(dt){return function(ht){if(Array.isArray(ht))return nt(ht)}(dt)||function(ht){if(typeof Symbol<"u"&&ht[Symbol.iterator]!=null||ht["@@iterator"]!=null)return Array.from(ht)}(dt)||function(ht,ct){if(ht){if(typeof ht=="string")return nt(ht,ct);var pt=Object.prototype.toString.call(ht).slice(8,-1);if(pt==="Object"&&ht.constructor&&(pt=ht.constructor.name),pt==="Map"||pt==="Set")return Array.from(ht);if(pt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(pt))return nt(ht,ct)}}(dt)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function nt(dt,ht){(ht==null||ht>dt.length)&&(ht=dt.length);for(var ct=0,pt=new Array(ht);ct0&&arguments[0]!==void 0?arguments[0]:{levels:st.npm.levels};rt(this,dt),this.paddings=dt.paddingForLevels(ft.levels,ft.filler),this.options=ft}var ht,ct,pt;return ht=dt,pt=[{key:"getLongestLevel",value:function(ft){var gt=Object.keys(ft).map(function(yt){return yt.length});return Math.max.apply(Math,tt(gt))}},{key:"paddingForLevel",value:function(ft,gt,yt){var Ut=yt+1-ft.length,Ft=Math.floor(Ut/gt.length);return"".concat(gt).concat(gt.repeat(Ft)).slice(0,Ut)}},{key:"paddingForLevels",value:function(ft){var gt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:" ",yt=dt.getLongestLevel(ft);return Object.keys(ft).reduce(function(Ut,Ft){return Ut[Ft]=dt.paddingForLevel(Ft,gt,yt),Ut},{})}}],(ct=[{key:"transform",value:function(ft,gt){return ft.message="".concat(this.paddings[ft[at]]).concat(ft.message),ft[lt]&&(ft[lt]="".concat(this.paddings[ft[at]]).concat(ft[lt])),ft}}])&&it(ht.prototype,ct),pt&&it(ht,pt),Object.defineProperty(ht,"prototype",{writable:!1}),dt}();s.exports=function(dt){return new ut(dt)},s.exports.Padder=s.exports.Format=ut},function(s,o,et){var tt=et(13).format;o.warn={deprecated:function(nt){return function(){throw new Error(tt("{ %s } was removed in winston@3.0.0.",nt))}},useFormat:function(nt){return function(){throw new Error([tt("{ %s } was removed in winston@3.0.0.",nt),"Use a custom winston.format = winston.format(function) instead."].join(` `))}},forFunctions:function(nt,rt,it){it.forEach(function(ot){nt[ot]=o.warn[rt](ot)})},moved:function(nt,rt,it){function ot(){return function(){throw new Error([tt("winston.%s was moved in winston@3.0.0.",it),tt("Use a winston.%s instead.",rt)].join(` -`))}}Object.defineProperty(nt,it,{get:ot,set:ot})},forProperties:function(nt,rt,it){it.forEach(function(ot){var st=o.warn[rt](ot);Object.defineProperty(nt,ot,{get:st,set:st})})}}},function(s,o,et){(function(tt,nt){function rt(Ot){var Wt=this;this.next=null,this.entry=null,this.finish=function(){(function(Dt,Et,Pt){var zt=Dt.entry;for(Dt.entry=null;zt;){var en=zt.callback;Et.pendingcb--,en(Pt),zt=zt.next}Et.corkedRequestsFree.next=Dt})(Wt,Ot)}}var it;s.exports=St,St.WritableState=Rt;var ot={deprecate:et(43)},st=et(62),at=et(5).Buffer,lt=(tt!==void 0?tt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){},ut,dt=et(63),ht=et(64).getHighWaterMark,ct=et(35).codes,pt=ct.ERR_INVALID_ARG_TYPE,ft=ct.ERR_METHOD_NOT_IMPLEMENTED,gt=ct.ERR_MULTIPLE_CALLBACK,yt=ct.ERR_STREAM_CANNOT_PIPE,Ut=ct.ERR_STREAM_DESTROYED,Ft=ct.ERR_STREAM_NULL_VALUES,mt=ct.ERR_STREAM_WRITE_AFTER_END,vt=ct.ERR_UNKNOWN_ENCODING,At=dt.errorOrDestroy;function Lt(){}function Rt(Ot,Wt,Dt){it=it||et(36),Ot=Ot||{},typeof Dt!="boolean"&&(Dt=Wt instanceof it),this.objectMode=!!Ot.objectMode,Dt&&(this.objectMode=this.objectMode||!!Ot.writableObjectMode),this.highWaterMark=ht(this,Ot,"writableHighWaterMark",Dt),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Et=Ot.decodeStrings===!1;this.decodeStrings=!Et,this.defaultEncoding=Ot.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Pt){(function(zt,en){var Kt=zt._writableState,nn=Kt.sync,Zt=Kt.writecb;if(typeof Zt!="function")throw new gt;if(function(Vt){Vt.writing=!1,Vt.writecb=null,Vt.length-=Vt.writelen,Vt.writelen=0}(Kt),en)(function(Vt,It,$t,Ht,qt){--It.pendingcb,$t?(nt.nextTick(qt,Ht),nt.nextTick(Nt,Vt,It),Vt._writableState.errorEmitted=!0,At(Vt,Ht)):(qt(Ht),Vt._writableState.errorEmitted=!0,At(Vt,Ht),Nt(Vt,It))})(zt,Kt,nn,en,Zt);else{var jt=Ct(Kt)||zt.destroyed;jt||Kt.corked||Kt.bufferProcessing||!Kt.bufferedRequest||xt(zt,Kt),nn?nt.nextTick(Bt,zt,Kt,jt,Zt):Bt(zt,Kt,jt,Zt)}})(Wt,Pt)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=Ot.emitClose!==!1,this.autoDestroy=!!Ot.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new rt(this)}function St(Ot){var Wt=this instanceof(it=it||et(36));if(!Wt&&!ut.call(St,this))return new St(Ot);this._writableState=new Rt(Ot,this,Wt),this.writable=!0,Ot&&(typeof Ot.write=="function"&&(this._write=Ot.write),typeof Ot.writev=="function"&&(this._writev=Ot.writev),typeof Ot.destroy=="function"&&(this._destroy=Ot.destroy),typeof Ot.final=="function"&&(this._final=Ot.final)),st.call(this)}function Tt(Ot,Wt,Dt,Et,Pt,zt,en){Wt.writelen=Et,Wt.writecb=en,Wt.writing=!0,Wt.sync=!0,Wt.destroyed?Wt.onwrite(new Ut("write")):Dt?Ot._writev(Pt,Wt.onwrite):Ot._write(Pt,zt,Wt.onwrite),Wt.sync=!1}function Bt(Ot,Wt,Dt,Et){Dt||function(Pt,zt){zt.length===0&&zt.needDrain&&(zt.needDrain=!1,Pt.emit("drain"))}(Ot,Wt),Wt.pendingcb--,Et(),Nt(Ot,Wt)}function xt(Ot,Wt){Wt.bufferProcessing=!0;var Dt=Wt.bufferedRequest;if(Ot._writev&&Dt&&Dt.next){var Et=Wt.bufferedRequestCount,Pt=new Array(Et),zt=Wt.corkedRequestsFree;zt.entry=Dt;for(var en=0,Kt=!0;Dt;)Pt[en]=Dt,Dt.isBuf||(Kt=!1),Dt=Dt.next,en+=1;Pt.allBuffers=Kt,Tt(Ot,Wt,!0,Wt.length,Pt,"",zt.finish),Wt.pendingcb++,Wt.lastBufferedRequest=null,zt.next?(Wt.corkedRequestsFree=zt.next,zt.next=null):Wt.corkedRequestsFree=new rt(Wt),Wt.bufferedRequestCount=0}else{for(;Dt;){var nn=Dt.chunk,Zt=Dt.encoding,jt=Dt.callback;if(Tt(Ot,Wt,!1,Wt.objectMode?1:nn.length,nn,Zt,jt),Dt=Dt.next,Wt.bufferedRequestCount--,Wt.writing)break}Dt===null&&(Wt.lastBufferedRequest=null)}Wt.bufferedRequest=Dt,Wt.bufferProcessing=!1}function Ct(Ot){return Ot.ending&&Ot.length===0&&Ot.bufferedRequest===null&&!Ot.finished&&!Ot.writing}function kt(Ot,Wt){Ot._final(function(Dt){Wt.pendingcb--,Dt&&At(Ot,Dt),Wt.prefinished=!0,Ot.emit("prefinish"),Nt(Ot,Wt)})}function Nt(Ot,Wt){var Dt=Ct(Wt);if(Dt&&(function(Pt,zt){zt.prefinished||zt.finalCalled||(typeof Pt._final!="function"||zt.destroyed?(zt.prefinished=!0,Pt.emit("prefinish")):(zt.pendingcb++,zt.finalCalled=!0,nt.nextTick(kt,Pt,zt)))}(Ot,Wt),Wt.pendingcb===0&&(Wt.finished=!0,Ot.emit("finish"),Wt.autoDestroy))){var Et=Ot._readableState;(!Et||Et.autoDestroy&&Et.endEmitted)&&Ot.destroy()}return Dt}et(7)(St,st),Rt.prototype.getBuffer=function(){for(var Ot=this.bufferedRequest,Wt=[];Ot;)Wt.push(Ot),Ot=Ot.next;return Wt},function(){try{Object.defineProperty(Rt.prototype,"buffer",{get:ot.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ut=Function.prototype[Symbol.hasInstance],Object.defineProperty(St,Symbol.hasInstance,{value:function(Ot){return!!ut.call(this,Ot)||this===St&&Ot&&Ot._writableState instanceof Rt}})):ut=function(Ot){return Ot instanceof this},St.prototype.pipe=function(){At(this,new yt)},St.prototype.write=function(Ot,Wt,Dt){var Et,Pt=this._writableState,zt=!1,en=!Pt.objectMode&&(Et=Ot,at.isBuffer(Et)||Et instanceof lt);return en&&!at.isBuffer(Ot)&&(Ot=function(Kt){return at.from(Kt)}(Ot)),typeof Wt=="function"&&(Dt=Wt,Wt=null),en?Wt="buffer":Wt||(Wt=Pt.defaultEncoding),typeof Dt!="function"&&(Dt=Lt),Pt.ending?function(Kt,nn){var Zt=new mt;At(Kt,Zt),nt.nextTick(nn,Zt)}(this,Dt):(en||function(Kt,nn,Zt,jt){var Vt;return Zt===null?Vt=new Ft:typeof Zt=="string"||nn.objectMode||(Vt=new pt("chunk",["string","Buffer"],Zt)),!Vt||(At(Kt,Vt),nt.nextTick(jt,Vt),!1)}(this,Pt,Ot,Dt))&&(Pt.pendingcb++,zt=function(Kt,nn,Zt,jt,Vt,It){if(!Zt){var $t=function(Xt,dn,_n){return Xt.objectMode||Xt.decodeStrings===!1||typeof dn!="string"||(dn=at.from(dn,_n)),dn}(nn,jt,Vt);jt!==$t&&(Zt=!0,Vt="buffer",jt=$t)}var Ht=nn.objectMode?1:jt.length;nn.length+=Ht;var qt=nn.length-1))throw new vt(Ot);return this._writableState.defaultEncoding=Ot,this},Object.defineProperty(St.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(St.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),St.prototype._write=function(Ot,Wt,Dt){Dt(new ft("_write()"))},St.prototype._writev=null,St.prototype.end=function(Ot,Wt,Dt){var Et=this._writableState;return typeof Ot=="function"?(Dt=Ot,Ot=null,Wt=null):typeof Wt=="function"&&(Dt=Wt,Wt=null),Ot!=null&&this.write(Ot,Wt),Et.corked&&(Et.corked=1,this.uncork()),Et.ending||function(Pt,zt,en){zt.ending=!0,Nt(Pt,zt),en&&(zt.finished?nt.nextTick(en):Pt.once("finish",en)),zt.ended=!0,Pt.writable=!1}(this,Et,Dt),this},Object.defineProperty(St.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(St.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(Ot){this._writableState&&(this._writableState.destroyed=Ot)}}),St.prototype.destroy=dt.destroy,St.prototype._undestroy=dt.undestroy,St.prototype._destroy=function(Ot,Wt){Wt(Ot)}}).call(this,et(6),et(2))},function(s,o,et){s.exports=et(20).EventEmitter},function(s,o,et){(function(tt){function nt(ot,st){it(ot,st),rt(ot)}function rt(ot){ot._writableState&&!ot._writableState.emitClose||ot._readableState&&!ot._readableState.emitClose||ot.emit("close")}function it(ot,st){ot.emit("error",st)}s.exports={destroy:function(ot,st){var at=this,lt=this._readableState&&this._readableState.destroyed,ut=this._writableState&&this._writableState.destroyed;return lt||ut?(st?st(ot):ot&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,tt.nextTick(it,this,ot)):tt.nextTick(it,this,ot)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(ot||null,function(dt){!st&&dt?at._writableState?at._writableState.errorEmitted?tt.nextTick(rt,at):(at._writableState.errorEmitted=!0,tt.nextTick(nt,at,dt)):tt.nextTick(nt,at,dt):st?(tt.nextTick(rt,at),st(dt)):tt.nextTick(rt,at)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(ot,st){var at=ot._readableState,lt=ot._writableState;at&&at.autoDestroy||lt&<.autoDestroy?ot.destroy(st):ot.emit("error",st)}}}).call(this,et(2))},function(s,o,et){var tt=et(35).codes.ERR_INVALID_OPT_VALUE;s.exports={getHighWaterMark:function(nt,rt,it,ot){var st=function(at,lt,ut){return at.highWaterMark!=null?at.highWaterMark:lt?at[ut]:null}(rt,ot,it);if(st!=null){if(!isFinite(st)||Math.floor(st)!==st||st<0)throw new tt(ot?it:"highWaterMark",st);return Math.floor(st)}return nt.objectMode?16:16384}}},function(s,o){},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(159)),nt=it(et(23)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)(function(ot,st,at,lt){return(0,tt.default)(st)(ot,(0,nt.default)(at),lt)},4),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){function nt(...rt){if(tt!==null){var it=tt;tt=null,it.apply(this,rt)}}return Object.assign(nt,tt),nt},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){if(tt===null)throw new Error("Callback was already called.");var rt=tt;tt=null,rt.apply(this,nt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){var rt=et(37);s.exports=Ft;var it,ot=et(165);Ft.ReadableState=Ut,et(20).EventEmitter;var st=function(Dt,Et){return Dt.listeners(Et).length},at=et(70),lt=et(46).Buffer,ut=tt.Uint8Array||function(){},dt=Object.create(et(32));dt.inherits=et(7);var ht=et(166),ct=void 0;ct=ht&&ht.debuglog?ht.debuglog("stream"):function(){};var pt,ft=et(167),gt=et(71);dt.inherits(Ft,at);var yt=["error","close","destroy","pause","resume"];function Ut(Dt,Et){Dt=Dt||{};var Pt=Et instanceof(it=it||et(22));this.objectMode=!!Dt.objectMode,Pt&&(this.objectMode=this.objectMode||!!Dt.readableObjectMode);var zt=Dt.highWaterMark,en=Dt.readableHighWaterMark,Kt=this.objectMode?16:16384;this.highWaterMark=zt||zt===0?zt:Pt&&(en||en===0)?en:Kt,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new ft,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=Dt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Dt.encoding&&(pt||(pt=et(21).StringDecoder),this.decoder=new pt(Dt.encoding),this.encoding=Dt.encoding)}function Ft(Dt){if(it=it||et(22),!(this instanceof Ft))return new Ft(Dt);this._readableState=new Ut(Dt,this),this.readable=!0,Dt&&(typeof Dt.read=="function"&&(this._read=Dt.read),typeof Dt.destroy=="function"&&(this._destroy=Dt.destroy)),at.call(this)}function mt(Dt,Et,Pt,zt,en){var Kt,nn=Dt._readableState;return Et===null?(nn.reading=!1,function(Zt,jt){if(!jt.ended){if(jt.decoder){var Vt=jt.decoder.end();Vt&&Vt.length&&(jt.buffer.push(Vt),jt.length+=jt.objectMode?1:Vt.length)}jt.ended=!0,Lt(Zt)}}(Dt,nn)):(en||(Kt=function(Zt,jt){var Vt;It=jt,lt.isBuffer(It)||It instanceof ut||typeof jt=="string"||jt===void 0||Zt.objectMode||(Vt=new TypeError("Invalid non-string/buffer chunk"));var It;return Vt}(nn,Et)),Kt?Dt.emit("error",Kt):nn.objectMode||Et&&Et.length>0?(typeof Et=="string"||nn.objectMode||Object.getPrototypeOf(Et)===lt.prototype||(Et=function(Zt){return lt.from(Zt)}(Et)),zt?nn.endEmitted?Dt.emit("error",new Error("stream.unshift() after end event")):vt(Dt,nn,Et,!0):nn.ended?Dt.emit("error",new Error("stream.push() after EOF")):(nn.reading=!1,nn.decoder&&!Pt?(Et=nn.decoder.write(Et),nn.objectMode||Et.length!==0?vt(Dt,nn,Et,!1):St(Dt,nn)):vt(Dt,nn,Et,!1))):zt||(nn.reading=!1)),function(Zt){return!Zt.ended&&(Zt.needReadable||Zt.lengthEt.highWaterMark&&(Et.highWaterMark=function(Pt){return Pt>=8388608?Pt=8388608:(Pt--,Pt|=Pt>>>1,Pt|=Pt>>>2,Pt|=Pt>>>4,Pt|=Pt>>>8,Pt|=Pt>>>16,Pt++),Pt}(Dt)),Dt<=Et.length?Dt:Et.ended?Et.length:(Et.needReadable=!0,0))}function Lt(Dt){var Et=Dt._readableState;Et.needReadable=!1,Et.emittedReadable||(ct("emitReadable",Et.flowing),Et.emittedReadable=!0,Et.sync?rt.nextTick(Rt,Dt):Rt(Dt))}function Rt(Dt){ct("emit readable"),Dt.emit("readable"),Ct(Dt)}function St(Dt,Et){Et.readingMore||(Et.readingMore=!0,rt.nextTick(Tt,Dt,Et))}function Tt(Dt,Et){for(var Pt=Et.length;!Et.reading&&!Et.flowing&&!Et.ended&&Et.length=Et.length?(Pt=Et.decoder?Et.buffer.join(""):Et.buffer.length===1?Et.buffer.head.data:Et.buffer.concat(Et.length),Et.buffer.clear()):Pt=function(zt,en,Kt){var nn;return ztHt.length?Ht.length:Zt;if(qt===Ht.length?$t+=Ht:$t+=Ht.slice(0,Zt),(Zt-=qt)===0){qt===Ht.length?(++It,Vt.next?jt.head=Vt.next:jt.head=jt.tail=null):(jt.head=Vt,Vt.data=Ht.slice(qt));break}++It}return jt.length-=It,$t}(zt,en):function(Zt,jt){var Vt=lt.allocUnsafe(Zt),It=jt.head,$t=1;for(It.data.copy(Vt),Zt-=It.data.length;It=It.next;){var Ht=It.data,qt=Zt>Ht.length?Ht.length:Zt;if(Ht.copy(Vt,Vt.length-Zt,0,qt),(Zt-=qt)===0){qt===Ht.length?(++$t,It.next?jt.head=It.next:jt.head=jt.tail=null):(jt.head=It,It.data=Ht.slice(qt));break}++$t}return jt.length-=$t,Vt}(zt,en),nn}(Dt,Et.buffer,Et.decoder),Pt);var Pt}function Nt(Dt){var Et=Dt._readableState;if(Et.length>0)throw new Error('"endReadable()" called on non-empty stream');Et.endEmitted||(Et.ended=!0,rt.nextTick(Ot,Et,Dt))}function Ot(Dt,Et){Dt.endEmitted||Dt.length!==0||(Dt.endEmitted=!0,Et.readable=!1,Et.emit("end"))}function Wt(Dt,Et){for(var Pt=0,zt=Dt.length;Pt=Et.highWaterMark||Et.ended))return ct("read: emitReadable",Et.length,Et.ended),Et.length===0&&Et.ended?Nt(this):Lt(this),null;if((Dt=At(Dt,Et))===0&&Et.ended)return Et.length===0&&Nt(this),null;var zt,en=Et.needReadable;return ct("need readable",en),(Et.length===0||Et.length-Dt0?kt(Dt,Et):null)===null?(Et.needReadable=!0,Dt=0):Et.length-=Dt,Et.length===0&&(Et.ended||(Et.needReadable=!0),Pt!==Dt&&Et.ended&&Nt(this)),zt!==null&&this.emit("data",zt),zt},Ft.prototype._read=function(Dt){this.emit("error",new Error("_read() is not implemented"))},Ft.prototype.pipe=function(Dt,Et){var Pt=this,zt=this._readableState;switch(zt.pipesCount){case 0:zt.pipes=Dt;break;case 1:zt.pipes=[zt.pipes,Dt];break;default:zt.pipes.push(Dt)}zt.pipesCount+=1,ct("pipe count=%d opts=%j",zt.pipesCount,Et);var en=(!Et||Et.end!==!1)&&Dt!==nt.stdout&&Dt!==nt.stderr?nn:on;function Kt(Xt,dn){ct("onunpipe"),Xt===Pt&&dn&&dn.hasUnpiped===!1&&(dn.hasUnpiped=!0,ct("cleanup"),Dt.removeListener("close",Ht),Dt.removeListener("finish",qt),Dt.removeListener("drain",Zt),Dt.removeListener("error",$t),Dt.removeListener("unpipe",Kt),Pt.removeListener("end",nn),Pt.removeListener("end",on),Pt.removeListener("data",It),jt=!0,!zt.awaitDrain||Dt._writableState&&!Dt._writableState.needDrain||Zt())}function nn(){ct("onend"),Dt.end()}zt.endEmitted?rt.nextTick(en):Pt.once("end",en),Dt.on("unpipe",Kt);var Zt=function(Xt){return function(){var dn=Xt._readableState;ct("pipeOnDrain",dn.awaitDrain),dn.awaitDrain&&dn.awaitDrain--,dn.awaitDrain===0&&st(Xt,"data")&&(dn.flowing=!0,Ct(Xt))}}(Pt);Dt.on("drain",Zt);var jt=!1,Vt=!1;function It(Xt){ct("ondata"),Vt=!1,Dt.write(Xt)!==!1||Vt||((zt.pipesCount===1&&zt.pipes===Dt||zt.pipesCount>1&&Wt(zt.pipes,Dt)!==-1)&&!jt&&(ct("false write response, pause",Pt._readableState.awaitDrain),Pt._readableState.awaitDrain++,Vt=!0),Pt.pause())}function $t(Xt){ct("onerror",Xt),on(),Dt.removeListener("error",$t),st(Dt,"error")===0&&Dt.emit("error",Xt)}function Ht(){Dt.removeListener("finish",qt),on()}function qt(){ct("onfinish"),Dt.removeListener("close",Ht),on()}function on(){ct("unpipe"),Pt.unpipe(Dt)}return Pt.on("data",It),function(Xt,dn,_n){if(typeof Xt.prependListener=="function")return Xt.prependListener(dn,_n);Xt._events&&Xt._events[dn]?ot(Xt._events[dn])?Xt._events[dn].unshift(_n):Xt._events[dn]=[_n,Xt._events[dn]]:Xt.on(dn,_n)}(Dt,"error",$t),Dt.once("close",Ht),Dt.once("finish",qt),Dt.emit("pipe",Pt),zt.flowing||(ct("pipe resume"),Pt.resume()),Dt},Ft.prototype.unpipe=function(Dt){var Et=this._readableState,Pt={hasUnpiped:!1};if(Et.pipesCount===0)return this;if(Et.pipesCount===1)return Dt&&Dt!==Et.pipes||(Dt||(Dt=Et.pipes),Et.pipes=null,Et.pipesCount=0,Et.flowing=!1,Dt&&Dt.emit("unpipe",this,Pt)),this;if(!Dt){var zt=Et.pipes,en=Et.pipesCount;Et.pipes=null,Et.pipesCount=0,Et.flowing=!1;for(var Kt=0;Kt=0;Pt--)if(zt[Pt]!==en[Pt])return!1;for(Pt=zt.length-1;Pt>=0;Pt--)if(Et=zt[Pt],!Ft(Ct[Et],kt[Et],Nt,Ot))return!1;return!0}(Rt,St,Tt,Bt))}return Tt?Rt===St:Rt==St}function mt(Rt){return Object.prototype.toString.call(Rt)=="[object Arguments]"}function vt(Rt,St){if(!Rt||!St)return!1;if(Object.prototype.toString.call(St)=="[object RegExp]")return St.test(Rt);try{if(Rt instanceof St)return!0}catch{}return!Error.isPrototypeOf(St)&&St.call({},Rt)===!0}function At(Rt,St,Tt,Bt){var xt;if(typeof St!="function")throw new TypeError('"block" argument must be a function');typeof Tt=="string"&&(Bt=Tt,Tt=null),xt=function(Nt){var Ot;try{Nt()}catch(Wt){Ot=Wt}return Ot}(St),Bt=(Tt&&Tt.name?" ("+Tt.name+").":".")+(Bt?" "+Bt:"."),Rt&&!xt&&yt(xt,Tt,"Missing expected exception"+Bt);var Ct=typeof Bt=="string",kt=!Rt&&xt&&!Tt;if((!Rt&&ot.isError(xt)&&Ct&&vt(xt,Tt)||kt)&&yt(xt,Tt,"Got unwanted exception"+Bt),Rt&&xt&&Tt&&!vt(xt,Tt)||!Rt&&xt)throw xt}ht.AssertionError=function(Rt){this.name="AssertionError",this.actual=Rt.actual,this.expected=Rt.expected,this.operator=Rt.operator,Rt.message?(this.message=Rt.message,this.generatedMessage=!1):(this.message=function(Nt){return ft(gt(Nt.actual),128)+" "+Nt.operator+" "+ft(gt(Nt.expected),128)}(this),this.generatedMessage=!0);var St=Rt.stackStartFunction||yt;if(Error.captureStackTrace)Error.captureStackTrace(this,St);else{var Tt=new Error;if(Tt.stack){var Bt=Tt.stack,xt=pt(St),Ct=Bt.indexOf(` +`))}}Object.defineProperty(nt,it,{get:ot,set:ot})},forProperties:function(nt,rt,it){it.forEach(function(ot){var st=o.warn[rt](ot);Object.defineProperty(nt,ot,{get:st,set:st})})}}},function(s,o,et){(function(tt,nt){function rt(Ot){var Jt=this;this.next=null,this.entry=null,this.finish=function(){(function(Dt,Et,Pt){var zt=Dt.entry;for(Dt.entry=null;zt;){var en=zt.callback;Et.pendingcb--,en(Pt),zt=zt.next}Et.corkedRequestsFree.next=Dt})(Jt,Ot)}}var it;s.exports=St,St.WritableState=Rt;var ot={deprecate:et(43)},st=et(62),at=et(5).Buffer,lt=(tt!==void 0?tt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){},ut,dt=et(63),ht=et(64).getHighWaterMark,ct=et(35).codes,pt=ct.ERR_INVALID_ARG_TYPE,ft=ct.ERR_METHOD_NOT_IMPLEMENTED,gt=ct.ERR_MULTIPLE_CALLBACK,yt=ct.ERR_STREAM_CANNOT_PIPE,Ut=ct.ERR_STREAM_DESTROYED,Ft=ct.ERR_STREAM_NULL_VALUES,mt=ct.ERR_STREAM_WRITE_AFTER_END,vt=ct.ERR_UNKNOWN_ENCODING,At=dt.errorOrDestroy;function Lt(){}function Rt(Ot,Jt,Dt){it=it||et(36),Ot=Ot||{},typeof Dt!="boolean"&&(Dt=Jt instanceof it),this.objectMode=!!Ot.objectMode,Dt&&(this.objectMode=this.objectMode||!!Ot.writableObjectMode),this.highWaterMark=ht(this,Ot,"writableHighWaterMark",Dt),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Et=Ot.decodeStrings===!1;this.decodeStrings=!Et,this.defaultEncoding=Ot.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Pt){(function(zt,en){var Kt=zt._writableState,nn=Kt.sync,Zt=Kt.writecb;if(typeof Zt!="function")throw new gt;if(function(Vt){Vt.writing=!1,Vt.writecb=null,Vt.length-=Vt.writelen,Vt.writelen=0}(Kt),en)(function(Vt,It,$t,Ht,qt){--It.pendingcb,$t?(nt.nextTick(qt,Ht),nt.nextTick(Nt,Vt,It),Vt._writableState.errorEmitted=!0,At(Vt,Ht)):(qt(Ht),Vt._writableState.errorEmitted=!0,At(Vt,Ht),Nt(Vt,It))})(zt,Kt,nn,en,Zt);else{var jt=Ct(Kt)||zt.destroyed;jt||Kt.corked||Kt.bufferProcessing||!Kt.bufferedRequest||xt(zt,Kt),nn?nt.nextTick(Bt,zt,Kt,jt,Zt):Bt(zt,Kt,jt,Zt)}})(Jt,Pt)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=Ot.emitClose!==!1,this.autoDestroy=!!Ot.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new rt(this)}function St(Ot){var Jt=this instanceof(it=it||et(36));if(!Jt&&!ut.call(St,this))return new St(Ot);this._writableState=new Rt(Ot,this,Jt),this.writable=!0,Ot&&(typeof Ot.write=="function"&&(this._write=Ot.write),typeof Ot.writev=="function"&&(this._writev=Ot.writev),typeof Ot.destroy=="function"&&(this._destroy=Ot.destroy),typeof Ot.final=="function"&&(this._final=Ot.final)),st.call(this)}function Tt(Ot,Jt,Dt,Et,Pt,zt,en){Jt.writelen=Et,Jt.writecb=en,Jt.writing=!0,Jt.sync=!0,Jt.destroyed?Jt.onwrite(new Ut("write")):Dt?Ot._writev(Pt,Jt.onwrite):Ot._write(Pt,zt,Jt.onwrite),Jt.sync=!1}function Bt(Ot,Jt,Dt,Et){Dt||function(Pt,zt){zt.length===0&&zt.needDrain&&(zt.needDrain=!1,Pt.emit("drain"))}(Ot,Jt),Jt.pendingcb--,Et(),Nt(Ot,Jt)}function xt(Ot,Jt){Jt.bufferProcessing=!0;var Dt=Jt.bufferedRequest;if(Ot._writev&&Dt&&Dt.next){var Et=Jt.bufferedRequestCount,Pt=new Array(Et),zt=Jt.corkedRequestsFree;zt.entry=Dt;for(var en=0,Kt=!0;Dt;)Pt[en]=Dt,Dt.isBuf||(Kt=!1),Dt=Dt.next,en+=1;Pt.allBuffers=Kt,Tt(Ot,Jt,!0,Jt.length,Pt,"",zt.finish),Jt.pendingcb++,Jt.lastBufferedRequest=null,zt.next?(Jt.corkedRequestsFree=zt.next,zt.next=null):Jt.corkedRequestsFree=new rt(Jt),Jt.bufferedRequestCount=0}else{for(;Dt;){var nn=Dt.chunk,Zt=Dt.encoding,jt=Dt.callback;if(Tt(Ot,Jt,!1,Jt.objectMode?1:nn.length,nn,Zt,jt),Dt=Dt.next,Jt.bufferedRequestCount--,Jt.writing)break}Dt===null&&(Jt.lastBufferedRequest=null)}Jt.bufferedRequest=Dt,Jt.bufferProcessing=!1}function Ct(Ot){return Ot.ending&&Ot.length===0&&Ot.bufferedRequest===null&&!Ot.finished&&!Ot.writing}function kt(Ot,Jt){Ot._final(function(Dt){Jt.pendingcb--,Dt&&At(Ot,Dt),Jt.prefinished=!0,Ot.emit("prefinish"),Nt(Ot,Jt)})}function Nt(Ot,Jt){var Dt=Ct(Jt);if(Dt&&(function(Pt,zt){zt.prefinished||zt.finalCalled||(typeof Pt._final!="function"||zt.destroyed?(zt.prefinished=!0,Pt.emit("prefinish")):(zt.pendingcb++,zt.finalCalled=!0,nt.nextTick(kt,Pt,zt)))}(Ot,Jt),Jt.pendingcb===0&&(Jt.finished=!0,Ot.emit("finish"),Jt.autoDestroy))){var Et=Ot._readableState;(!Et||Et.autoDestroy&&Et.endEmitted)&&Ot.destroy()}return Dt}et(7)(St,st),Rt.prototype.getBuffer=function(){for(var Ot=this.bufferedRequest,Jt=[];Ot;)Jt.push(Ot),Ot=Ot.next;return Jt},function(){try{Object.defineProperty(Rt.prototype,"buffer",{get:ot.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ut=Function.prototype[Symbol.hasInstance],Object.defineProperty(St,Symbol.hasInstance,{value:function(Ot){return!!ut.call(this,Ot)||this===St&&Ot&&Ot._writableState instanceof Rt}})):ut=function(Ot){return Ot instanceof this},St.prototype.pipe=function(){At(this,new yt)},St.prototype.write=function(Ot,Jt,Dt){var Et,Pt=this._writableState,zt=!1,en=!Pt.objectMode&&(Et=Ot,at.isBuffer(Et)||Et instanceof lt);return en&&!at.isBuffer(Ot)&&(Ot=function(Kt){return at.from(Kt)}(Ot)),typeof Jt=="function"&&(Dt=Jt,Jt=null),en?Jt="buffer":Jt||(Jt=Pt.defaultEncoding),typeof Dt!="function"&&(Dt=Lt),Pt.ending?function(Kt,nn){var Zt=new mt;At(Kt,Zt),nt.nextTick(nn,Zt)}(this,Dt):(en||function(Kt,nn,Zt,jt){var Vt;return Zt===null?Vt=new Ft:typeof Zt=="string"||nn.objectMode||(Vt=new pt("chunk",["string","Buffer"],Zt)),!Vt||(At(Kt,Vt),nt.nextTick(jt,Vt),!1)}(this,Pt,Ot,Dt))&&(Pt.pendingcb++,zt=function(Kt,nn,Zt,jt,Vt,It){if(!Zt){var $t=function(Xt,dn,_n){return Xt.objectMode||Xt.decodeStrings===!1||typeof dn!="string"||(dn=at.from(dn,_n)),dn}(nn,jt,Vt);jt!==$t&&(Zt=!0,Vt="buffer",jt=$t)}var Ht=nn.objectMode?1:jt.length;nn.length+=Ht;var qt=nn.length-1))throw new vt(Ot);return this._writableState.defaultEncoding=Ot,this},Object.defineProperty(St.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(St.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),St.prototype._write=function(Ot,Jt,Dt){Dt(new ft("_write()"))},St.prototype._writev=null,St.prototype.end=function(Ot,Jt,Dt){var Et=this._writableState;return typeof Ot=="function"?(Dt=Ot,Ot=null,Jt=null):typeof Jt=="function"&&(Dt=Jt,Jt=null),Ot!=null&&this.write(Ot,Jt),Et.corked&&(Et.corked=1,this.uncork()),Et.ending||function(Pt,zt,en){zt.ending=!0,Nt(Pt,zt),en&&(zt.finished?nt.nextTick(en):Pt.once("finish",en)),zt.ended=!0,Pt.writable=!1}(this,Et,Dt),this},Object.defineProperty(St.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(St.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(Ot){this._writableState&&(this._writableState.destroyed=Ot)}}),St.prototype.destroy=dt.destroy,St.prototype._undestroy=dt.undestroy,St.prototype._destroy=function(Ot,Jt){Jt(Ot)}}).call(this,et(6),et(2))},function(s,o,et){s.exports=et(20).EventEmitter},function(s,o,et){(function(tt){function nt(ot,st){it(ot,st),rt(ot)}function rt(ot){ot._writableState&&!ot._writableState.emitClose||ot._readableState&&!ot._readableState.emitClose||ot.emit("close")}function it(ot,st){ot.emit("error",st)}s.exports={destroy:function(ot,st){var at=this,lt=this._readableState&&this._readableState.destroyed,ut=this._writableState&&this._writableState.destroyed;return lt||ut?(st?st(ot):ot&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,tt.nextTick(it,this,ot)):tt.nextTick(it,this,ot)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(ot||null,function(dt){!st&&dt?at._writableState?at._writableState.errorEmitted?tt.nextTick(rt,at):(at._writableState.errorEmitted=!0,tt.nextTick(nt,at,dt)):tt.nextTick(nt,at,dt):st?(tt.nextTick(rt,at),st(dt)):tt.nextTick(rt,at)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(ot,st){var at=ot._readableState,lt=ot._writableState;at&&at.autoDestroy||lt&<.autoDestroy?ot.destroy(st):ot.emit("error",st)}}}).call(this,et(2))},function(s,o,et){var tt=et(35).codes.ERR_INVALID_OPT_VALUE;s.exports={getHighWaterMark:function(nt,rt,it,ot){var st=function(at,lt,ut){return at.highWaterMark!=null?at.highWaterMark:lt?at[ut]:null}(rt,ot,it);if(st!=null){if(!isFinite(st)||Math.floor(st)!==st||st<0)throw new tt(ot?it:"highWaterMark",st);return Math.floor(st)}return nt.objectMode?16:16384}}},function(s,o){},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(159)),nt=it(et(23)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)(function(ot,st,at,lt){return(0,tt.default)(st)(ot,(0,nt.default)(at),lt)},4),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){function nt(...rt){if(tt!==null){var it=tt;tt=null,it.apply(this,rt)}}return Object.assign(nt,tt),nt},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){if(tt===null)throw new Error("Callback was already called.");var rt=tt;tt=null,rt.apply(this,nt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){var rt=et(37);s.exports=Ft;var it,ot=et(165);Ft.ReadableState=Ut,et(20).EventEmitter;var st=function(Dt,Et){return Dt.listeners(Et).length},at=et(70),lt=et(46).Buffer,ut=tt.Uint8Array||function(){},dt=Object.create(et(32));dt.inherits=et(7);var ht=et(166),ct=void 0;ct=ht&&ht.debuglog?ht.debuglog("stream"):function(){};var pt,ft=et(167),gt=et(71);dt.inherits(Ft,at);var yt=["error","close","destroy","pause","resume"];function Ut(Dt,Et){Dt=Dt||{};var Pt=Et instanceof(it=it||et(22));this.objectMode=!!Dt.objectMode,Pt&&(this.objectMode=this.objectMode||!!Dt.readableObjectMode);var zt=Dt.highWaterMark,en=Dt.readableHighWaterMark,Kt=this.objectMode?16:16384;this.highWaterMark=zt||zt===0?zt:Pt&&(en||en===0)?en:Kt,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new ft,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=Dt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Dt.encoding&&(pt||(pt=et(21).StringDecoder),this.decoder=new pt(Dt.encoding),this.encoding=Dt.encoding)}function Ft(Dt){if(it=it||et(22),!(this instanceof Ft))return new Ft(Dt);this._readableState=new Ut(Dt,this),this.readable=!0,Dt&&(typeof Dt.read=="function"&&(this._read=Dt.read),typeof Dt.destroy=="function"&&(this._destroy=Dt.destroy)),at.call(this)}function mt(Dt,Et,Pt,zt,en){var Kt,nn=Dt._readableState;return Et===null?(nn.reading=!1,function(Zt,jt){if(!jt.ended){if(jt.decoder){var Vt=jt.decoder.end();Vt&&Vt.length&&(jt.buffer.push(Vt),jt.length+=jt.objectMode?1:Vt.length)}jt.ended=!0,Lt(Zt)}}(Dt,nn)):(en||(Kt=function(Zt,jt){var Vt;It=jt,lt.isBuffer(It)||It instanceof ut||typeof jt=="string"||jt===void 0||Zt.objectMode||(Vt=new TypeError("Invalid non-string/buffer chunk"));var It;return Vt}(nn,Et)),Kt?Dt.emit("error",Kt):nn.objectMode||Et&&Et.length>0?(typeof Et=="string"||nn.objectMode||Object.getPrototypeOf(Et)===lt.prototype||(Et=function(Zt){return lt.from(Zt)}(Et)),zt?nn.endEmitted?Dt.emit("error",new Error("stream.unshift() after end event")):vt(Dt,nn,Et,!0):nn.ended?Dt.emit("error",new Error("stream.push() after EOF")):(nn.reading=!1,nn.decoder&&!Pt?(Et=nn.decoder.write(Et),nn.objectMode||Et.length!==0?vt(Dt,nn,Et,!1):St(Dt,nn)):vt(Dt,nn,Et,!1))):zt||(nn.reading=!1)),function(Zt){return!Zt.ended&&(Zt.needReadable||Zt.lengthEt.highWaterMark&&(Et.highWaterMark=function(Pt){return Pt>=8388608?Pt=8388608:(Pt--,Pt|=Pt>>>1,Pt|=Pt>>>2,Pt|=Pt>>>4,Pt|=Pt>>>8,Pt|=Pt>>>16,Pt++),Pt}(Dt)),Dt<=Et.length?Dt:Et.ended?Et.length:(Et.needReadable=!0,0))}function Lt(Dt){var Et=Dt._readableState;Et.needReadable=!1,Et.emittedReadable||(ct("emitReadable",Et.flowing),Et.emittedReadable=!0,Et.sync?rt.nextTick(Rt,Dt):Rt(Dt))}function Rt(Dt){ct("emit readable"),Dt.emit("readable"),Ct(Dt)}function St(Dt,Et){Et.readingMore||(Et.readingMore=!0,rt.nextTick(Tt,Dt,Et))}function Tt(Dt,Et){for(var Pt=Et.length;!Et.reading&&!Et.flowing&&!Et.ended&&Et.length=Et.length?(Pt=Et.decoder?Et.buffer.join(""):Et.buffer.length===1?Et.buffer.head.data:Et.buffer.concat(Et.length),Et.buffer.clear()):Pt=function(zt,en,Kt){var nn;return ztHt.length?Ht.length:Zt;if(qt===Ht.length?$t+=Ht:$t+=Ht.slice(0,Zt),(Zt-=qt)===0){qt===Ht.length?(++It,Vt.next?jt.head=Vt.next:jt.head=jt.tail=null):(jt.head=Vt,Vt.data=Ht.slice(qt));break}++It}return jt.length-=It,$t}(zt,en):function(Zt,jt){var Vt=lt.allocUnsafe(Zt),It=jt.head,$t=1;for(It.data.copy(Vt),Zt-=It.data.length;It=It.next;){var Ht=It.data,qt=Zt>Ht.length?Ht.length:Zt;if(Ht.copy(Vt,Vt.length-Zt,0,qt),(Zt-=qt)===0){qt===Ht.length?(++$t,It.next?jt.head=It.next:jt.head=jt.tail=null):(jt.head=It,It.data=Ht.slice(qt));break}++$t}return jt.length-=$t,Vt}(zt,en),nn}(Dt,Et.buffer,Et.decoder),Pt);var Pt}function Nt(Dt){var Et=Dt._readableState;if(Et.length>0)throw new Error('"endReadable()" called on non-empty stream');Et.endEmitted||(Et.ended=!0,rt.nextTick(Ot,Et,Dt))}function Ot(Dt,Et){Dt.endEmitted||Dt.length!==0||(Dt.endEmitted=!0,Et.readable=!1,Et.emit("end"))}function Jt(Dt,Et){for(var Pt=0,zt=Dt.length;Pt=Et.highWaterMark||Et.ended))return ct("read: emitReadable",Et.length,Et.ended),Et.length===0&&Et.ended?Nt(this):Lt(this),null;if((Dt=At(Dt,Et))===0&&Et.ended)return Et.length===0&&Nt(this),null;var zt,en=Et.needReadable;return ct("need readable",en),(Et.length===0||Et.length-Dt0?kt(Dt,Et):null)===null?(Et.needReadable=!0,Dt=0):Et.length-=Dt,Et.length===0&&(Et.ended||(Et.needReadable=!0),Pt!==Dt&&Et.ended&&Nt(this)),zt!==null&&this.emit("data",zt),zt},Ft.prototype._read=function(Dt){this.emit("error",new Error("_read() is not implemented"))},Ft.prototype.pipe=function(Dt,Et){var Pt=this,zt=this._readableState;switch(zt.pipesCount){case 0:zt.pipes=Dt;break;case 1:zt.pipes=[zt.pipes,Dt];break;default:zt.pipes.push(Dt)}zt.pipesCount+=1,ct("pipe count=%d opts=%j",zt.pipesCount,Et);var en=(!Et||Et.end!==!1)&&Dt!==nt.stdout&&Dt!==nt.stderr?nn:on;function Kt(Xt,dn){ct("onunpipe"),Xt===Pt&&dn&&dn.hasUnpiped===!1&&(dn.hasUnpiped=!0,ct("cleanup"),Dt.removeListener("close",Ht),Dt.removeListener("finish",qt),Dt.removeListener("drain",Zt),Dt.removeListener("error",$t),Dt.removeListener("unpipe",Kt),Pt.removeListener("end",nn),Pt.removeListener("end",on),Pt.removeListener("data",It),jt=!0,!zt.awaitDrain||Dt._writableState&&!Dt._writableState.needDrain||Zt())}function nn(){ct("onend"),Dt.end()}zt.endEmitted?rt.nextTick(en):Pt.once("end",en),Dt.on("unpipe",Kt);var Zt=function(Xt){return function(){var dn=Xt._readableState;ct("pipeOnDrain",dn.awaitDrain),dn.awaitDrain&&dn.awaitDrain--,dn.awaitDrain===0&&st(Xt,"data")&&(dn.flowing=!0,Ct(Xt))}}(Pt);Dt.on("drain",Zt);var jt=!1,Vt=!1;function It(Xt){ct("ondata"),Vt=!1,Dt.write(Xt)!==!1||Vt||((zt.pipesCount===1&&zt.pipes===Dt||zt.pipesCount>1&&Jt(zt.pipes,Dt)!==-1)&&!jt&&(ct("false write response, pause",Pt._readableState.awaitDrain),Pt._readableState.awaitDrain++,Vt=!0),Pt.pause())}function $t(Xt){ct("onerror",Xt),on(),Dt.removeListener("error",$t),st(Dt,"error")===0&&Dt.emit("error",Xt)}function Ht(){Dt.removeListener("finish",qt),on()}function qt(){ct("onfinish"),Dt.removeListener("close",Ht),on()}function on(){ct("unpipe"),Pt.unpipe(Dt)}return Pt.on("data",It),function(Xt,dn,_n){if(typeof Xt.prependListener=="function")return Xt.prependListener(dn,_n);Xt._events&&Xt._events[dn]?ot(Xt._events[dn])?Xt._events[dn].unshift(_n):Xt._events[dn]=[_n,Xt._events[dn]]:Xt.on(dn,_n)}(Dt,"error",$t),Dt.once("close",Ht),Dt.once("finish",qt),Dt.emit("pipe",Pt),zt.flowing||(ct("pipe resume"),Pt.resume()),Dt},Ft.prototype.unpipe=function(Dt){var Et=this._readableState,Pt={hasUnpiped:!1};if(Et.pipesCount===0)return this;if(Et.pipesCount===1)return Dt&&Dt!==Et.pipes||(Dt||(Dt=Et.pipes),Et.pipes=null,Et.pipesCount=0,Et.flowing=!1,Dt&&Dt.emit("unpipe",this,Pt)),this;if(!Dt){var zt=Et.pipes,en=Et.pipesCount;Et.pipes=null,Et.pipesCount=0,Et.flowing=!1;for(var Kt=0;Kt=0;Pt--)if(zt[Pt]!==en[Pt])return!1;for(Pt=zt.length-1;Pt>=0;Pt--)if(Et=zt[Pt],!Ft(Ct[Et],kt[Et],Nt,Ot))return!1;return!0}(Rt,St,Tt,Bt))}return Tt?Rt===St:Rt==St}function mt(Rt){return Object.prototype.toString.call(Rt)=="[object Arguments]"}function vt(Rt,St){if(!Rt||!St)return!1;if(Object.prototype.toString.call(St)=="[object RegExp]")return St.test(Rt);try{if(Rt instanceof St)return!0}catch{}return!Error.isPrototypeOf(St)&&St.call({},Rt)===!0}function At(Rt,St,Tt,Bt){var xt;if(typeof St!="function")throw new TypeError('"block" argument must be a function');typeof Tt=="string"&&(Bt=Tt,Tt=null),xt=function(Nt){var Ot;try{Nt()}catch(Jt){Ot=Jt}return Ot}(St),Bt=(Tt&&Tt.name?" ("+Tt.name+").":".")+(Bt?" "+Bt:"."),Rt&&!xt&&yt(xt,Tt,"Missing expected exception"+Bt);var Ct=typeof Bt=="string",kt=!Rt&&xt&&!Tt;if((!Rt&&ot.isError(xt)&&Ct&&vt(xt,Tt)||kt)&&yt(xt,Tt,"Got unwanted exception"+Bt),Rt&&xt&&Tt&&!vt(xt,Tt)||!Rt&&xt)throw xt}ht.AssertionError=function(Rt){this.name="AssertionError",this.actual=Rt.actual,this.expected=Rt.expected,this.operator=Rt.operator,Rt.message?(this.message=Rt.message,this.generatedMessage=!1):(this.message=function(Nt){return ft(gt(Nt.actual),128)+" "+Nt.operator+" "+ft(gt(Nt.expected),128)}(this),this.generatedMessage=!0);var St=Rt.stackStartFunction||yt;if(Error.captureStackTrace)Error.captureStackTrace(this,St);else{var Tt=new Error;if(Tt.stack){var Bt=Tt.stack,xt=pt(St),Ct=Bt.indexOf(` `+xt);if(Ct>=0){var kt=Bt.indexOf(` -`,Ct+1);Bt=Bt.substring(kt+1)}this.stack=Bt}}},ot.inherits(ht.AssertionError,Error),ht.fail=yt,ht.ok=Ut,ht.equal=function(Rt,St,Tt){Rt!=St&&yt(Rt,St,Tt,"==",ht.equal)},ht.notEqual=function(Rt,St,Tt){Rt==St&&yt(Rt,St,Tt,"!=",ht.notEqual)},ht.deepEqual=function(Rt,St,Tt){Ft(Rt,St,!1)||yt(Rt,St,Tt,"deepEqual",ht.deepEqual)},ht.deepStrictEqual=function(Rt,St,Tt){Ft(Rt,St,!0)||yt(Rt,St,Tt,"deepStrictEqual",ht.deepStrictEqual)},ht.notDeepEqual=function(Rt,St,Tt){Ft(Rt,St,!1)&&yt(Rt,St,Tt,"notDeepEqual",ht.notDeepEqual)},ht.notDeepStrictEqual=function Rt(St,Tt,Bt){Ft(St,Tt,!0)&&yt(St,Tt,Bt,"notDeepStrictEqual",Rt)},ht.strictEqual=function(Rt,St,Tt){Rt!==St&&yt(Rt,St,Tt,"===",ht.strictEqual)},ht.notStrictEqual=function(Rt,St,Tt){Rt===St&&yt(Rt,St,Tt,"!==",ht.notStrictEqual)},ht.throws=function(Rt,St,Tt){At(!0,Rt,St,Tt)},ht.doesNotThrow=function(Rt,St,Tt){At(!1,Rt,St,Tt)},ht.ifError=function(Rt){if(Rt)throw Rt},ht.strict=nt(function Rt(St,Tt){St||yt(St,!0,Tt,"==",Rt)},ht,{equal:ht.strictEqual,deepEqual:ht.deepStrictEqual,notEqual:ht.notStrictEqual,notDeepEqual:ht.notDeepStrictEqual}),ht.strict.strict=ht.strict;var Lt=Object.keys||function(Rt){var St=[];for(var Tt in Rt)st.call(Rt,Tt)&&St.push(Tt);return St}}).call(this,et(6))},function(s,o,et){s.exports=function(tt,nt,rt,it){for(var ot=65535&tt|0,st=tt>>>16&65535|0,at=0;rt!==0;){rt-=at=rt>2e3?2e3:rt;do st=st+(ot=ot+nt[it++]|0)|0;while(--at);ot%=65521,st%=65521}return ot|st<<16|0}},function(s,o,et){var tt=function(){for(var nt,rt=[],it=0;it<256;it++){nt=it;for(var ot=0;ot<8;ot++)nt=1&nt?3988292384^nt>>>1:nt>>>1;rt[it]=nt}return rt}();s.exports=function(nt,rt,it,ot){var st=tt,at=ot+it;nt^=-1;for(var lt=ot;lt>>8^st[255&(nt^rt[lt])];return-1^nt}},function(s,o,et){(function(tt,nt){var rt;s.exports=St,St.ReadableState=Rt,et(20).EventEmitter;var it=function(Zt,jt){return Zt.listeners(jt).length},ot=et(77),st=et(5).Buffer,at=(tt!==void 0?tt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){},lt,ut=et(184);lt=ut&&ut.debuglog?ut.debuglog("stream"):function(){};var dt,ht,ct,pt=et(185),ft=et(78),gt=et(79).getHighWaterMark,yt=et(24).codes,Ut=yt.ERR_INVALID_ARG_TYPE,Ft=yt.ERR_STREAM_PUSH_AFTER_EOF,mt=yt.ERR_METHOD_NOT_IMPLEMENTED,vt=yt.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;et(7)(St,ot);var At=ft.errorOrDestroy,Lt=["error","close","destroy","pause","resume"];function Rt(Zt,jt,Vt){rt=rt||et(25),Zt=Zt||{},typeof Vt!="boolean"&&(Vt=jt instanceof rt),this.objectMode=!!Zt.objectMode,Vt&&(this.objectMode=this.objectMode||!!Zt.readableObjectMode),this.highWaterMark=gt(this,Zt,"readableHighWaterMark",Vt),this.buffer=new pt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=Zt.emitClose!==!1,this.autoDestroy=!!Zt.autoDestroy,this.destroyed=!1,this.defaultEncoding=Zt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Zt.encoding&&(dt||(dt=et(21).StringDecoder),this.decoder=new dt(Zt.encoding),this.encoding=Zt.encoding)}function St(Zt){if(rt=rt||et(25),!(this instanceof St))return new St(Zt);var jt=this instanceof rt;this._readableState=new Rt(Zt,this,jt),this.readable=!0,Zt&&(typeof Zt.read=="function"&&(this._read=Zt.read),typeof Zt.destroy=="function"&&(this._destroy=Zt.destroy)),ot.call(this)}function Tt(Zt,jt,Vt,It,$t){lt("readableAddChunk",jt);var Ht,qt=Zt._readableState;if(jt===null)qt.reading=!1,function(on,Xt){if(lt("onEofChunk"),!Xt.ended){if(Xt.decoder){var dn=Xt.decoder.end();dn&&dn.length&&(Xt.buffer.push(dn),Xt.length+=Xt.objectMode?1:dn.length)}Xt.ended=!0,Xt.sync?Ct(on):(Xt.needReadable=!1,Xt.emittedReadable||(Xt.emittedReadable=!0,kt(on)))}}(Zt,qt);else if($t||(Ht=function(on,Xt){var dn;_n=Xt,st.isBuffer(_n)||_n instanceof at||typeof Xt=="string"||Xt===void 0||on.objectMode||(dn=new Ut("chunk",["string","Buffer","Uint8Array"],Xt));var _n;return dn}(qt,jt)),Ht)At(Zt,Ht);else if(qt.objectMode||jt&&jt.length>0)if(typeof jt=="string"||qt.objectMode||Object.getPrototypeOf(jt)===st.prototype||(jt=function(on){return st.from(on)}(jt)),It)qt.endEmitted?At(Zt,new vt):Bt(Zt,qt,jt,!0);else if(qt.ended)At(Zt,new Ft);else{if(qt.destroyed)return!1;qt.reading=!1,qt.decoder&&!Vt?(jt=qt.decoder.write(jt),qt.objectMode||jt.length!==0?Bt(Zt,qt,jt,!1):Nt(Zt,qt)):Bt(Zt,qt,jt,!1)}else It||(qt.reading=!1,Nt(Zt,qt));return!qt.ended&&(qt.lengthjt.highWaterMark&&(jt.highWaterMark=function(Vt){return Vt>=1073741824?Vt=1073741824:(Vt--,Vt|=Vt>>>1,Vt|=Vt>>>2,Vt|=Vt>>>4,Vt|=Vt>>>8,Vt|=Vt>>>16,Vt++),Vt}(Zt)),Zt<=jt.length?Zt:jt.ended?jt.length:(jt.needReadable=!0,0))}function Ct(Zt){var jt=Zt._readableState;lt("emitReadable",jt.needReadable,jt.emittedReadable),jt.needReadable=!1,jt.emittedReadable||(lt("emitReadable",jt.flowing),jt.emittedReadable=!0,nt.nextTick(kt,Zt))}function kt(Zt){var jt=Zt._readableState;lt("emitReadable_",jt.destroyed,jt.length,jt.ended),jt.destroyed||!jt.length&&!jt.ended||(Zt.emit("readable"),jt.emittedReadable=!1),jt.needReadable=!jt.flowing&&!jt.ended&&jt.length<=jt.highWaterMark,Pt(Zt)}function Nt(Zt,jt){jt.readingMore||(jt.readingMore=!0,nt.nextTick(Ot,Zt,jt))}function Ot(Zt,jt){for(;!jt.reading&&!jt.ended&&(jt.length0,jt.resumeScheduled&&!jt.paused?jt.flowing=!0:Zt.listenerCount("data")>0&&Zt.resume()}function Dt(Zt){lt("readable nexttick read 0"),Zt.read(0)}function Et(Zt,jt){lt("resume",jt.reading),jt.reading||Zt.read(0),jt.resumeScheduled=!1,Zt.emit("resume"),Pt(Zt),jt.flowing&&!jt.reading&&Zt.read(0)}function Pt(Zt){var jt=Zt._readableState;for(lt("flow",jt.flowing);jt.flowing&&Zt.read()!==null;);}function zt(Zt,jt){return jt.length===0?null:(jt.objectMode?Vt=jt.buffer.shift():!Zt||Zt>=jt.length?(Vt=jt.decoder?jt.buffer.join(""):jt.buffer.length===1?jt.buffer.first():jt.buffer.concat(jt.length),jt.buffer.clear()):Vt=jt.buffer.consume(Zt,jt.decoder),Vt);var Vt}function en(Zt){var jt=Zt._readableState;lt("endReadable",jt.endEmitted),jt.endEmitted||(jt.ended=!0,nt.nextTick(Kt,jt,Zt))}function Kt(Zt,jt){if(lt("endReadableNT",Zt.endEmitted,Zt.length),!Zt.endEmitted&&Zt.length===0&&(Zt.endEmitted=!0,jt.readable=!1,jt.emit("end"),Zt.autoDestroy)){var Vt=jt._writableState;(!Vt||Vt.autoDestroy&&Vt.finished)&&jt.destroy()}}function nn(Zt,jt){for(var Vt=0,It=Zt.length;Vt=jt.highWaterMark:jt.length>0)||jt.ended))return lt("read: emitReadable",jt.length,jt.ended),jt.length===0&&jt.ended?en(this):Ct(this),null;if((Zt=xt(Zt,jt))===0&&jt.ended)return jt.length===0&&en(this),null;var It,$t=jt.needReadable;return lt("need readable",$t),(jt.length===0||jt.length-Zt0?zt(Zt,jt):null)===null?(jt.needReadable=jt.length<=jt.highWaterMark,Zt=0):(jt.length-=Zt,jt.awaitDrain=0),jt.length===0&&(jt.ended||(jt.needReadable=!0),Vt!==Zt&&jt.ended&&en(this)),It!==null&&this.emit("data",It),It},St.prototype._read=function(Zt){At(this,new mt("_read()"))},St.prototype.pipe=function(Zt,jt){var Vt=this,It=this._readableState;switch(It.pipesCount){case 0:It.pipes=Zt;break;case 1:It.pipes=[It.pipes,Zt];break;default:It.pipes.push(Zt)}It.pipesCount+=1,lt("pipe count=%d opts=%j",It.pipesCount,jt);var $t=(!jt||jt.end!==!1)&&Zt!==nt.stdout&&Zt!==nt.stderr?qt:On;function Ht(gn,hn){lt("onunpipe"),gn===Vt&&hn&&hn.hasUnpiped===!1&&(hn.hasUnpiped=!0,lt("cleanup"),Zt.removeListener("close",Fn),Zt.removeListener("finish",Un),Zt.removeListener("drain",on),Zt.removeListener("error",_n),Zt.removeListener("unpipe",Ht),Vt.removeListener("end",qt),Vt.removeListener("end",On),Vt.removeListener("data",dn),Xt=!0,!It.awaitDrain||Zt._writableState&&!Zt._writableState.needDrain||on())}function qt(){lt("onend"),Zt.end()}It.endEmitted?nt.nextTick($t):Vt.once("end",$t),Zt.on("unpipe",Ht);var on=function(gn){return function(){var hn=gn._readableState;lt("pipeOnDrain",hn.awaitDrain),hn.awaitDrain&&hn.awaitDrain--,hn.awaitDrain===0&&it(gn,"data")&&(hn.flowing=!0,Pt(gn))}}(Vt);Zt.on("drain",on);var Xt=!1;function dn(gn){lt("ondata");var hn=Zt.write(gn);lt("dest.write",hn),hn===!1&&((It.pipesCount===1&&It.pipes===Zt||It.pipesCount>1&&nn(It.pipes,Zt)!==-1)&&!Xt&&(lt("false write response, pause",It.awaitDrain),It.awaitDrain++),Vt.pause())}function _n(gn){lt("onerror",gn),On(),Zt.removeListener("error",_n),it(Zt,"error")===0&&At(Zt,gn)}function Fn(){Zt.removeListener("finish",Un),On()}function Un(){lt("onfinish"),Zt.removeListener("close",Fn),On()}function On(){lt("unpipe"),Vt.unpipe(Zt)}return Vt.on("data",dn),function(gn,hn,wn){if(typeof gn.prependListener=="function")return gn.prependListener(hn,wn);gn._events&&gn._events[hn]?Array.isArray(gn._events[hn])?gn._events[hn].unshift(wn):gn._events[hn]=[wn,gn._events[hn]]:gn.on(hn,wn)}(Zt,"error",_n),Zt.once("close",Fn),Zt.once("finish",Un),Zt.emit("pipe",Vt),It.flowing||(lt("pipe resume"),Vt.resume()),Zt},St.prototype.unpipe=function(Zt){var jt=this._readableState,Vt={hasUnpiped:!1};if(jt.pipesCount===0)return this;if(jt.pipesCount===1)return Zt&&Zt!==jt.pipes||(Zt||(Zt=jt.pipes),jt.pipes=null,jt.pipesCount=0,jt.flowing=!1,Zt&&Zt.emit("unpipe",this,Vt)),this;if(!Zt){var It=jt.pipes,$t=jt.pipesCount;jt.pipes=null,jt.pipesCount=0,jt.flowing=!1;for(var Ht=0;Ht<$t;Ht++)It[Ht].emit("unpipe",this,{hasUnpiped:!1});return this}var qt=nn(jt.pipes,Zt);return qt===-1||(jt.pipes.splice(qt,1),jt.pipesCount-=1,jt.pipesCount===1&&(jt.pipes=jt.pipes[0]),Zt.emit("unpipe",this,Vt)),this},St.prototype.on=function(Zt,jt){var Vt=ot.prototype.on.call(this,Zt,jt),It=this._readableState;return Zt==="data"?(It.readableListening=this.listenerCount("readable")>0,It.flowing!==!1&&this.resume()):Zt==="readable"&&(It.endEmitted||It.readableListening||(It.readableListening=It.needReadable=!0,It.flowing=!1,It.emittedReadable=!1,lt("on readable",It.length,It.reading),It.length?Ct(this):It.reading||nt.nextTick(Dt,this))),Vt},St.prototype.addListener=St.prototype.on,St.prototype.removeListener=function(Zt,jt){var Vt=ot.prototype.removeListener.call(this,Zt,jt);return Zt==="readable"&&nt.nextTick(Wt,this),Vt},St.prototype.removeAllListeners=function(Zt){var jt=ot.prototype.removeAllListeners.apply(this,arguments);return Zt!=="readable"&&Zt!==void 0||nt.nextTick(Wt,this),jt},St.prototype.resume=function(){var Zt=this._readableState;return Zt.flowing||(lt("resume"),Zt.flowing=!Zt.readableListening,function(jt,Vt){Vt.resumeScheduled||(Vt.resumeScheduled=!0,nt.nextTick(Et,jt,Vt))}(this,Zt)),Zt.paused=!1,this},St.prototype.pause=function(){return lt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(lt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},St.prototype.wrap=function(Zt){var jt=this,Vt=this._readableState,It=!1;for(var $t in Zt.on("end",function(){if(lt("wrapped end"),Vt.decoder&&!Vt.ended){var qt=Vt.decoder.end();qt&&qt.length&&jt.push(qt)}jt.push(null)}),Zt.on("data",function(qt){lt("wrapped data"),Vt.decoder&&(qt=Vt.decoder.write(qt)),Vt.objectMode&&qt==null||(Vt.objectMode||qt&&qt.length)&&(jt.push(qt)||(It=!0,Zt.pause()))}),Zt)this[$t]===void 0&&typeof Zt[$t]=="function"&&(this[$t]=function(qt){return function(){return Zt[qt].apply(Zt,arguments)}}($t));for(var Ht=0;Ht-1))throw new vt(Ot);return this._writableState.defaultEncoding=Ot,this},Object.defineProperty(St.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(St.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),St.prototype._write=function(Ot,Wt,Dt){Dt(new ft("_write()"))},St.prototype._writev=null,St.prototype.end=function(Ot,Wt,Dt){var Et=this._writableState;return typeof Ot=="function"?(Dt=Ot,Ot=null,Wt=null):typeof Wt=="function"&&(Dt=Wt,Wt=null),Ot!=null&&this.write(Ot,Wt),Et.corked&&(Et.corked=1,this.uncork()),Et.ending||function(Pt,zt,en){zt.ending=!0,Nt(Pt,zt),en&&(zt.finished?nt.nextTick(en):Pt.once("finish",en)),zt.ended=!0,Pt.writable=!1}(this,Et,Dt),this},Object.defineProperty(St.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(St.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(Ot){this._writableState&&(this._writableState.destroyed=Ot)}}),St.prototype.destroy=dt.destroy,St.prototype._undestroy=dt.undestroy,St.prototype._destroy=function(Ot,Wt){Wt(Ot)}}).call(this,et(6),et(2))},function(s,o,et){s.exports=lt;var tt=et(24).codes,nt=tt.ERR_METHOD_NOT_IMPLEMENTED,rt=tt.ERR_MULTIPLE_CALLBACK,it=tt.ERR_TRANSFORM_ALREADY_TRANSFORMING,ot=tt.ERR_TRANSFORM_WITH_LENGTH_0,st=et(25);function at(ht,ct){var pt=this._transformState;pt.transforming=!1;var ft=pt.writecb;if(ft===null)return this.emit("error",new rt);pt.writechunk=null,pt.writecb=null,ct!=null&&this.push(ct),ft(ht);var gt=this._readableState;gt.reading=!1,(gt.needReadable||gt.lengthut._pos){var ct=ht.substr(ut._pos);if(ut._charset==="x-user-defined"){for(var pt=new nt(ct.length),ft=0;ftut._pos&&(ut.push(new nt(new Uint8Array(gt.result.slice(ut._pos)))),ut._pos=gt.result.byteLength)},gt.onload=function(){ut.push(null)},gt.readAsArrayBuffer(ht)}ut._xhr.readyState===at.DONE&&ut._mode!=="ms-stream"&&ut.push(null)}}).call(this,et(2),et(5).Buffer,et(6))},function(s,o,et){var tt=et(199),nt=et(201);function rt(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}o.parse=Ut,o.resolve=function(Ft,mt){return Ut(Ft,!1,!0).resolve(mt)},o.resolveObject=function(Ft,mt){return Ft?Ut(Ft,!1,!0).resolveObject(mt):mt},o.format=function(Ft){return nt.isString(Ft)&&(Ft=Ut(Ft)),Ft instanceof rt?Ft.format():rt.prototype.format.call(Ft)},o.Url=rt;var it=/^([a-z0-9.+-]+:)/i,ot=/:[0-9]*$/,st=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,at=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` -`," "]),lt=["'"].concat(at),ut=["%","/","?",";","#"].concat(lt),dt=["/","?","#"],ht=/^[+a-z0-9A-Z_-]{0,63}$/,ct=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,pt={javascript:!0,"javascript:":!0},ft={javascript:!0,"javascript:":!0},gt={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},yt=et(202);function Ut(Ft,mt,vt){if(Ft&&nt.isObject(Ft)&&Ft instanceof rt)return Ft;var At=new rt;return At.parse(Ft,mt,vt),At}rt.prototype.parse=function(Ft,mt,vt){if(!nt.isString(Ft))throw new TypeError("Parameter 'url' must be a string, not "+typeof Ft);var At=Ft.indexOf("?"),Lt=At!==-1&&At127?Kt+="x":Kt+=en[nn];if(!Kt.match(ht)){var jt=Pt.slice(0,Wt),Vt=Pt.slice(Wt+1),It=en.match(ct);It&&(jt.push(It[1]),Vt.unshift(It[2])),Vt.length&&(St="/"+Vt.join(".")+St),this.hostname=jt.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),Et||(this.hostname=tt.toASCII(this.hostname));var $t=this.port?":"+this.port:"",Ht=this.hostname||"";this.host=Ht+$t,this.href+=this.host,Et&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),St[0]!=="/"&&(St="/"+St))}if(!pt[xt])for(Wt=0,zt=lt.length;Wt0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),vt.search=Ft.search,vt.query=Ft.query,nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.href=vt.format(),vt;if(!en.length)return vt.pathname=null,vt.search?vt.path="/"+vt.search:vt.path=null,vt.href=vt.format(),vt;for(var nn=en.slice(-1)[0],Zt=(vt.host||Ft.host||en.length>1)&&(nn==="."||nn==="..")||nn==="",jt=0,Vt=en.length;Vt>=0;Vt--)(nn=en[Vt])==="."?en.splice(Vt,1):nn===".."?(en.splice(Vt,1),jt++):jt&&(en.splice(Vt,1),jt--);if(!Pt&&!zt)for(;jt--;jt)en.unshift("..");!Pt||en[0]===""||en[0]&&en[0].charAt(0)==="/"||en.unshift(""),Zt&&en.join("/").substr(-1)!=="/"&&en.push("");var It,$t=en[0]===""||en[0]&&en[0].charAt(0)==="/";return Kt&&(vt.hostname=vt.host=$t?"":en.length?en.shift():"",(It=!!(vt.host&&vt.host.indexOf("@")>0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),(Pt=Pt||vt.host&&en.length)&&!$t&&en.unshift(""),en.length?vt.pathname=en.join("/"):(vt.pathname=null,vt.path=null),nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.auth=Ft.auth||vt.auth,vt.slashes=vt.slashes||Ft.slashes,vt.href=vt.format(),vt},rt.prototype.parseHost=function(){var Ft=this.host,mt=ot.exec(Ft);mt&&((mt=mt[0])!==":"&&(this.port=mt.substr(1)),Ft=Ft.substr(0,Ft.length-mt.length)),Ft&&(this.hostname=Ft)}},function(s,o,et){const tt=nt=>nt!==null&&typeof nt=="object"&&typeof nt.pipe=="function";tt.writable=nt=>tt(nt)&&nt.writable!==!1&&typeof nt._write=="function"&&typeof nt._writableState=="object",tt.readable=nt=>tt(nt)&&nt.readable!==!1&&typeof nt._read=="function"&&typeof nt._readableState=="object",tt.duplex=nt=>tt.writable(nt)&&tt.readable(nt),tt.transform=nt=>tt.duplex(nt)&&typeof nt._transform=="function"&&typeof nt._transformState=="object",s.exports=tt},function(s,o,et){function tt(gt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(yt){return typeof yt}:function(yt){return yt&&typeof Symbol=="function"&&yt.constructor===Symbol&&yt!==Symbol.prototype?"symbol":typeof yt})(gt)}function nt(gt,yt){for(var Ut=0;Ut"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var Ut,Ft=ut(gt);if(yt){var mt=ut(this).constructor;Ut=Reflect.construct(Ft,arguments,mt)}else Ut=Ft.apply(this,arguments);return lt(this,Ut)}}function lt(gt,yt){if(yt&&(tt(yt)==="object"||typeof yt=="function"))return yt;if(yt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(Ut){if(Ut===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ut}(gt)}function ut(gt){return(ut=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(yt){return yt.__proto__||Object.getPrototypeOf(yt)})(gt)}var dt=et(4).LEVEL,ht=et(49),ct=et(207),pt=et(39)("winston:create-logger");function ft(gt){return"is"+gt.charAt(0).toUpperCase()+gt.slice(1)+"Enabled"}s.exports=function(){var gt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};gt.levels=gt.levels||ht.npm.levels;var yt=function(Ft){ot(vt,Ft);var mt=at(vt);function vt(At){return it(this,vt),mt.call(this,At)}return rt(vt)}(ct),Ut=new yt(gt);return Object.keys(gt.levels).forEach(function(Ft){pt('Define prototype method for "%s"',Ft),Ft!=="log"?(yt.prototype[Ft]=function(){for(var mt=this||Ut,vt=arguments.length,At=new Array(vt),Lt=0;Lt>>16&65535|0,at=0;rt!==0;){rt-=at=rt>2e3?2e3:rt;do st=st+(ot=ot+nt[it++]|0)|0;while(--at);ot%=65521,st%=65521}return ot|st<<16|0}},function(s,o,et){var tt=function(){for(var nt,rt=[],it=0;it<256;it++){nt=it;for(var ot=0;ot<8;ot++)nt=1&nt?3988292384^nt>>>1:nt>>>1;rt[it]=nt}return rt}();s.exports=function(nt,rt,it,ot){var st=tt,at=ot+it;nt^=-1;for(var lt=ot;lt>>8^st[255&(nt^rt[lt])];return-1^nt}},function(s,o,et){(function(tt,nt){var rt;s.exports=St,St.ReadableState=Rt,et(20).EventEmitter;var it=function(Zt,jt){return Zt.listeners(jt).length},ot=et(77),st=et(5).Buffer,at=(tt!==void 0?tt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){},lt,ut=et(184);lt=ut&&ut.debuglog?ut.debuglog("stream"):function(){};var dt,ht,ct,pt=et(185),ft=et(78),gt=et(79).getHighWaterMark,yt=et(24).codes,Ut=yt.ERR_INVALID_ARG_TYPE,Ft=yt.ERR_STREAM_PUSH_AFTER_EOF,mt=yt.ERR_METHOD_NOT_IMPLEMENTED,vt=yt.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;et(7)(St,ot);var At=ft.errorOrDestroy,Lt=["error","close","destroy","pause","resume"];function Rt(Zt,jt,Vt){rt=rt||et(25),Zt=Zt||{},typeof Vt!="boolean"&&(Vt=jt instanceof rt),this.objectMode=!!Zt.objectMode,Vt&&(this.objectMode=this.objectMode||!!Zt.readableObjectMode),this.highWaterMark=gt(this,Zt,"readableHighWaterMark",Vt),this.buffer=new pt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=Zt.emitClose!==!1,this.autoDestroy=!!Zt.autoDestroy,this.destroyed=!1,this.defaultEncoding=Zt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Zt.encoding&&(dt||(dt=et(21).StringDecoder),this.decoder=new dt(Zt.encoding),this.encoding=Zt.encoding)}function St(Zt){if(rt=rt||et(25),!(this instanceof St))return new St(Zt);var jt=this instanceof rt;this._readableState=new Rt(Zt,this,jt),this.readable=!0,Zt&&(typeof Zt.read=="function"&&(this._read=Zt.read),typeof Zt.destroy=="function"&&(this._destroy=Zt.destroy)),ot.call(this)}function Tt(Zt,jt,Vt,It,$t){lt("readableAddChunk",jt);var Ht,qt=Zt._readableState;if(jt===null)qt.reading=!1,function(on,Xt){if(lt("onEofChunk"),!Xt.ended){if(Xt.decoder){var dn=Xt.decoder.end();dn&&dn.length&&(Xt.buffer.push(dn),Xt.length+=Xt.objectMode?1:dn.length)}Xt.ended=!0,Xt.sync?Ct(on):(Xt.needReadable=!1,Xt.emittedReadable||(Xt.emittedReadable=!0,kt(on)))}}(Zt,qt);else if($t||(Ht=function(on,Xt){var dn;_n=Xt,st.isBuffer(_n)||_n instanceof at||typeof Xt=="string"||Xt===void 0||on.objectMode||(dn=new Ut("chunk",["string","Buffer","Uint8Array"],Xt));var _n;return dn}(qt,jt)),Ht)At(Zt,Ht);else if(qt.objectMode||jt&&jt.length>0)if(typeof jt=="string"||qt.objectMode||Object.getPrototypeOf(jt)===st.prototype||(jt=function(on){return st.from(on)}(jt)),It)qt.endEmitted?At(Zt,new vt):Bt(Zt,qt,jt,!0);else if(qt.ended)At(Zt,new Ft);else{if(qt.destroyed)return!1;qt.reading=!1,qt.decoder&&!Vt?(jt=qt.decoder.write(jt),qt.objectMode||jt.length!==0?Bt(Zt,qt,jt,!1):Nt(Zt,qt)):Bt(Zt,qt,jt,!1)}else It||(qt.reading=!1,Nt(Zt,qt));return!qt.ended&&(qt.lengthjt.highWaterMark&&(jt.highWaterMark=function(Vt){return Vt>=1073741824?Vt=1073741824:(Vt--,Vt|=Vt>>>1,Vt|=Vt>>>2,Vt|=Vt>>>4,Vt|=Vt>>>8,Vt|=Vt>>>16,Vt++),Vt}(Zt)),Zt<=jt.length?Zt:jt.ended?jt.length:(jt.needReadable=!0,0))}function Ct(Zt){var jt=Zt._readableState;lt("emitReadable",jt.needReadable,jt.emittedReadable),jt.needReadable=!1,jt.emittedReadable||(lt("emitReadable",jt.flowing),jt.emittedReadable=!0,nt.nextTick(kt,Zt))}function kt(Zt){var jt=Zt._readableState;lt("emitReadable_",jt.destroyed,jt.length,jt.ended),jt.destroyed||!jt.length&&!jt.ended||(Zt.emit("readable"),jt.emittedReadable=!1),jt.needReadable=!jt.flowing&&!jt.ended&&jt.length<=jt.highWaterMark,Pt(Zt)}function Nt(Zt,jt){jt.readingMore||(jt.readingMore=!0,nt.nextTick(Ot,Zt,jt))}function Ot(Zt,jt){for(;!jt.reading&&!jt.ended&&(jt.length0,jt.resumeScheduled&&!jt.paused?jt.flowing=!0:Zt.listenerCount("data")>0&&Zt.resume()}function Dt(Zt){lt("readable nexttick read 0"),Zt.read(0)}function Et(Zt,jt){lt("resume",jt.reading),jt.reading||Zt.read(0),jt.resumeScheduled=!1,Zt.emit("resume"),Pt(Zt),jt.flowing&&!jt.reading&&Zt.read(0)}function Pt(Zt){var jt=Zt._readableState;for(lt("flow",jt.flowing);jt.flowing&&Zt.read()!==null;);}function zt(Zt,jt){return jt.length===0?null:(jt.objectMode?Vt=jt.buffer.shift():!Zt||Zt>=jt.length?(Vt=jt.decoder?jt.buffer.join(""):jt.buffer.length===1?jt.buffer.first():jt.buffer.concat(jt.length),jt.buffer.clear()):Vt=jt.buffer.consume(Zt,jt.decoder),Vt);var Vt}function en(Zt){var jt=Zt._readableState;lt("endReadable",jt.endEmitted),jt.endEmitted||(jt.ended=!0,nt.nextTick(Kt,jt,Zt))}function Kt(Zt,jt){if(lt("endReadableNT",Zt.endEmitted,Zt.length),!Zt.endEmitted&&Zt.length===0&&(Zt.endEmitted=!0,jt.readable=!1,jt.emit("end"),Zt.autoDestroy)){var Vt=jt._writableState;(!Vt||Vt.autoDestroy&&Vt.finished)&&jt.destroy()}}function nn(Zt,jt){for(var Vt=0,It=Zt.length;Vt=jt.highWaterMark:jt.length>0)||jt.ended))return lt("read: emitReadable",jt.length,jt.ended),jt.length===0&&jt.ended?en(this):Ct(this),null;if((Zt=xt(Zt,jt))===0&&jt.ended)return jt.length===0&&en(this),null;var It,$t=jt.needReadable;return lt("need readable",$t),(jt.length===0||jt.length-Zt0?zt(Zt,jt):null)===null?(jt.needReadable=jt.length<=jt.highWaterMark,Zt=0):(jt.length-=Zt,jt.awaitDrain=0),jt.length===0&&(jt.ended||(jt.needReadable=!0),Vt!==Zt&&jt.ended&&en(this)),It!==null&&this.emit("data",It),It},St.prototype._read=function(Zt){At(this,new mt("_read()"))},St.prototype.pipe=function(Zt,jt){var Vt=this,It=this._readableState;switch(It.pipesCount){case 0:It.pipes=Zt;break;case 1:It.pipes=[It.pipes,Zt];break;default:It.pipes.push(Zt)}It.pipesCount+=1,lt("pipe count=%d opts=%j",It.pipesCount,jt);var $t=(!jt||jt.end!==!1)&&Zt!==nt.stdout&&Zt!==nt.stderr?qt:On;function Ht(gn,hn){lt("onunpipe"),gn===Vt&&hn&&hn.hasUnpiped===!1&&(hn.hasUnpiped=!0,lt("cleanup"),Zt.removeListener("close",Fn),Zt.removeListener("finish",Un),Zt.removeListener("drain",on),Zt.removeListener("error",_n),Zt.removeListener("unpipe",Ht),Vt.removeListener("end",qt),Vt.removeListener("end",On),Vt.removeListener("data",dn),Xt=!0,!It.awaitDrain||Zt._writableState&&!Zt._writableState.needDrain||on())}function qt(){lt("onend"),Zt.end()}It.endEmitted?nt.nextTick($t):Vt.once("end",$t),Zt.on("unpipe",Ht);var on=function(gn){return function(){var hn=gn._readableState;lt("pipeOnDrain",hn.awaitDrain),hn.awaitDrain&&hn.awaitDrain--,hn.awaitDrain===0&&it(gn,"data")&&(hn.flowing=!0,Pt(gn))}}(Vt);Zt.on("drain",on);var Xt=!1;function dn(gn){lt("ondata");var hn=Zt.write(gn);lt("dest.write",hn),hn===!1&&((It.pipesCount===1&&It.pipes===Zt||It.pipesCount>1&&nn(It.pipes,Zt)!==-1)&&!Xt&&(lt("false write response, pause",It.awaitDrain),It.awaitDrain++),Vt.pause())}function _n(gn){lt("onerror",gn),On(),Zt.removeListener("error",_n),it(Zt,"error")===0&&At(Zt,gn)}function Fn(){Zt.removeListener("finish",Un),On()}function Un(){lt("onfinish"),Zt.removeListener("close",Fn),On()}function On(){lt("unpipe"),Vt.unpipe(Zt)}return Vt.on("data",dn),function(gn,hn,wn){if(typeof gn.prependListener=="function")return gn.prependListener(hn,wn);gn._events&&gn._events[hn]?Array.isArray(gn._events[hn])?gn._events[hn].unshift(wn):gn._events[hn]=[wn,gn._events[hn]]:gn.on(hn,wn)}(Zt,"error",_n),Zt.once("close",Fn),Zt.once("finish",Un),Zt.emit("pipe",Vt),It.flowing||(lt("pipe resume"),Vt.resume()),Zt},St.prototype.unpipe=function(Zt){var jt=this._readableState,Vt={hasUnpiped:!1};if(jt.pipesCount===0)return this;if(jt.pipesCount===1)return Zt&&Zt!==jt.pipes||(Zt||(Zt=jt.pipes),jt.pipes=null,jt.pipesCount=0,jt.flowing=!1,Zt&&Zt.emit("unpipe",this,Vt)),this;if(!Zt){var It=jt.pipes,$t=jt.pipesCount;jt.pipes=null,jt.pipesCount=0,jt.flowing=!1;for(var Ht=0;Ht<$t;Ht++)It[Ht].emit("unpipe",this,{hasUnpiped:!1});return this}var qt=nn(jt.pipes,Zt);return qt===-1||(jt.pipes.splice(qt,1),jt.pipesCount-=1,jt.pipesCount===1&&(jt.pipes=jt.pipes[0]),Zt.emit("unpipe",this,Vt)),this},St.prototype.on=function(Zt,jt){var Vt=ot.prototype.on.call(this,Zt,jt),It=this._readableState;return Zt==="data"?(It.readableListening=this.listenerCount("readable")>0,It.flowing!==!1&&this.resume()):Zt==="readable"&&(It.endEmitted||It.readableListening||(It.readableListening=It.needReadable=!0,It.flowing=!1,It.emittedReadable=!1,lt("on readable",It.length,It.reading),It.length?Ct(this):It.reading||nt.nextTick(Dt,this))),Vt},St.prototype.addListener=St.prototype.on,St.prototype.removeListener=function(Zt,jt){var Vt=ot.prototype.removeListener.call(this,Zt,jt);return Zt==="readable"&&nt.nextTick(Jt,this),Vt},St.prototype.removeAllListeners=function(Zt){var jt=ot.prototype.removeAllListeners.apply(this,arguments);return Zt!=="readable"&&Zt!==void 0||nt.nextTick(Jt,this),jt},St.prototype.resume=function(){var Zt=this._readableState;return Zt.flowing||(lt("resume"),Zt.flowing=!Zt.readableListening,function(jt,Vt){Vt.resumeScheduled||(Vt.resumeScheduled=!0,nt.nextTick(Et,jt,Vt))}(this,Zt)),Zt.paused=!1,this},St.prototype.pause=function(){return lt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(lt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},St.prototype.wrap=function(Zt){var jt=this,Vt=this._readableState,It=!1;for(var $t in Zt.on("end",function(){if(lt("wrapped end"),Vt.decoder&&!Vt.ended){var qt=Vt.decoder.end();qt&&qt.length&&jt.push(qt)}jt.push(null)}),Zt.on("data",function(qt){lt("wrapped data"),Vt.decoder&&(qt=Vt.decoder.write(qt)),Vt.objectMode&&qt==null||(Vt.objectMode||qt&&qt.length)&&(jt.push(qt)||(It=!0,Zt.pause()))}),Zt)this[$t]===void 0&&typeof Zt[$t]=="function"&&(this[$t]=function(qt){return function(){return Zt[qt].apply(Zt,arguments)}}($t));for(var Ht=0;Ht-1))throw new vt(Ot);return this._writableState.defaultEncoding=Ot,this},Object.defineProperty(St.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(St.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),St.prototype._write=function(Ot,Jt,Dt){Dt(new ft("_write()"))},St.prototype._writev=null,St.prototype.end=function(Ot,Jt,Dt){var Et=this._writableState;return typeof Ot=="function"?(Dt=Ot,Ot=null,Jt=null):typeof Jt=="function"&&(Dt=Jt,Jt=null),Ot!=null&&this.write(Ot,Jt),Et.corked&&(Et.corked=1,this.uncork()),Et.ending||function(Pt,zt,en){zt.ending=!0,Nt(Pt,zt),en&&(zt.finished?nt.nextTick(en):Pt.once("finish",en)),zt.ended=!0,Pt.writable=!1}(this,Et,Dt),this},Object.defineProperty(St.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(St.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(Ot){this._writableState&&(this._writableState.destroyed=Ot)}}),St.prototype.destroy=dt.destroy,St.prototype._undestroy=dt.undestroy,St.prototype._destroy=function(Ot,Jt){Jt(Ot)}}).call(this,et(6),et(2))},function(s,o,et){s.exports=lt;var tt=et(24).codes,nt=tt.ERR_METHOD_NOT_IMPLEMENTED,rt=tt.ERR_MULTIPLE_CALLBACK,it=tt.ERR_TRANSFORM_ALREADY_TRANSFORMING,ot=tt.ERR_TRANSFORM_WITH_LENGTH_0,st=et(25);function at(ht,ct){var pt=this._transformState;pt.transforming=!1;var ft=pt.writecb;if(ft===null)return this.emit("error",new rt);pt.writechunk=null,pt.writecb=null,ct!=null&&this.push(ct),ft(ht);var gt=this._readableState;gt.reading=!1,(gt.needReadable||gt.lengthut._pos){var ct=ht.substr(ut._pos);if(ut._charset==="x-user-defined"){for(var pt=new nt(ct.length),ft=0;ftut._pos&&(ut.push(new nt(new Uint8Array(gt.result.slice(ut._pos)))),ut._pos=gt.result.byteLength)},gt.onload=function(){ut.push(null)},gt.readAsArrayBuffer(ht)}ut._xhr.readyState===at.DONE&&ut._mode!=="ms-stream"&&ut.push(null)}}).call(this,et(2),et(5).Buffer,et(6))},function(s,o,et){var tt=et(199),nt=et(201);function rt(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}o.parse=Ut,o.resolve=function(Ft,mt){return Ut(Ft,!1,!0).resolve(mt)},o.resolveObject=function(Ft,mt){return Ft?Ut(Ft,!1,!0).resolveObject(mt):mt},o.format=function(Ft){return nt.isString(Ft)&&(Ft=Ut(Ft)),Ft instanceof rt?Ft.format():rt.prototype.format.call(Ft)},o.Url=rt;var it=/^([a-z0-9.+-]+:)/i,ot=/:[0-9]*$/,st=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,at=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` +`," "]),lt=["'"].concat(at),ut=["%","/","?",";","#"].concat(lt),dt=["/","?","#"],ht=/^[+a-z0-9A-Z_-]{0,63}$/,ct=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,pt={javascript:!0,"javascript:":!0},ft={javascript:!0,"javascript:":!0},gt={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},yt=et(202);function Ut(Ft,mt,vt){if(Ft&&nt.isObject(Ft)&&Ft instanceof rt)return Ft;var At=new rt;return At.parse(Ft,mt,vt),At}rt.prototype.parse=function(Ft,mt,vt){if(!nt.isString(Ft))throw new TypeError("Parameter 'url' must be a string, not "+typeof Ft);var At=Ft.indexOf("?"),Lt=At!==-1&&At127?Kt+="x":Kt+=en[nn];if(!Kt.match(ht)){var jt=Pt.slice(0,Jt),Vt=Pt.slice(Jt+1),It=en.match(ct);It&&(jt.push(It[1]),Vt.unshift(It[2])),Vt.length&&(St="/"+Vt.join(".")+St),this.hostname=jt.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),Et||(this.hostname=tt.toASCII(this.hostname));var $t=this.port?":"+this.port:"",Ht=this.hostname||"";this.host=Ht+$t,this.href+=this.host,Et&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),St[0]!=="/"&&(St="/"+St))}if(!pt[xt])for(Jt=0,zt=lt.length;Jt0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),vt.search=Ft.search,vt.query=Ft.query,nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.href=vt.format(),vt;if(!en.length)return vt.pathname=null,vt.search?vt.path="/"+vt.search:vt.path=null,vt.href=vt.format(),vt;for(var nn=en.slice(-1)[0],Zt=(vt.host||Ft.host||en.length>1)&&(nn==="."||nn==="..")||nn==="",jt=0,Vt=en.length;Vt>=0;Vt--)(nn=en[Vt])==="."?en.splice(Vt,1):nn===".."?(en.splice(Vt,1),jt++):jt&&(en.splice(Vt,1),jt--);if(!Pt&&!zt)for(;jt--;jt)en.unshift("..");!Pt||en[0]===""||en[0]&&en[0].charAt(0)==="/"||en.unshift(""),Zt&&en.join("/").substr(-1)!=="/"&&en.push("");var It,$t=en[0]===""||en[0]&&en[0].charAt(0)==="/";return Kt&&(vt.hostname=vt.host=$t?"":en.length?en.shift():"",(It=!!(vt.host&&vt.host.indexOf("@")>0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),(Pt=Pt||vt.host&&en.length)&&!$t&&en.unshift(""),en.length?vt.pathname=en.join("/"):(vt.pathname=null,vt.path=null),nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.auth=Ft.auth||vt.auth,vt.slashes=vt.slashes||Ft.slashes,vt.href=vt.format(),vt},rt.prototype.parseHost=function(){var Ft=this.host,mt=ot.exec(Ft);mt&&((mt=mt[0])!==":"&&(this.port=mt.substr(1)),Ft=Ft.substr(0,Ft.length-mt.length)),Ft&&(this.hostname=Ft)}},function(s,o,et){const tt=nt=>nt!==null&&typeof nt=="object"&&typeof nt.pipe=="function";tt.writable=nt=>tt(nt)&&nt.writable!==!1&&typeof nt._write=="function"&&typeof nt._writableState=="object",tt.readable=nt=>tt(nt)&&nt.readable!==!1&&typeof nt._read=="function"&&typeof nt._readableState=="object",tt.duplex=nt=>tt.writable(nt)&&tt.readable(nt),tt.transform=nt=>tt.duplex(nt)&&typeof nt._transform=="function"&&typeof nt._transformState=="object",s.exports=tt},function(s,o,et){function tt(gt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(yt){return typeof yt}:function(yt){return yt&&typeof Symbol=="function"&&yt.constructor===Symbol&&yt!==Symbol.prototype?"symbol":typeof yt})(gt)}function nt(gt,yt){for(var Ut=0;Ut"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var Ut,Ft=ut(gt);if(yt){var mt=ut(this).constructor;Ut=Reflect.construct(Ft,arguments,mt)}else Ut=Ft.apply(this,arguments);return lt(this,Ut)}}function lt(gt,yt){if(yt&&(tt(yt)==="object"||typeof yt=="function"))return yt;if(yt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(Ut){if(Ut===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ut}(gt)}function ut(gt){return(ut=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(yt){return yt.__proto__||Object.getPrototypeOf(yt)})(gt)}var dt=et(4).LEVEL,ht=et(49),ct=et(207),pt=et(39)("winston:create-logger");function ft(gt){return"is"+gt.charAt(0).toUpperCase()+gt.slice(1)+"Enabled"}s.exports=function(){var gt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};gt.levels=gt.levels||ht.npm.levels;var yt=function(Ft){ot(vt,Ft);var mt=at(vt);function vt(At){return it(this,vt),mt.call(this,At)}return rt(vt)}(ct),Ut=new yt(gt);return Object.keys(gt.levels).forEach(function(Ft){pt('Define prototype method for "%s"',Ft),Ft!=="log"?(yt.prototype[Ft]=function(){for(var mt=this||Ut,vt=arguments.length,At=new Array(vt),Lt=0;Lt0){ot=at.substr(0,ht),st=at.substr(ht+1);var ct=ot.indexOf(".Module");ct>0&&(at=at.substr(ct+1),ot=ot.substr(0,ct))}lt=null}st&&(lt=ot,ut=st),st===""&&(ut=null,at=null);var pt={fileName:it[2]||null,lineNumber:parseInt(it[3],10)||null,functionName:at,typeName:lt,methodName:ut,columnNumber:parseInt(it[4],10)||null,native:dt};return nt._createParsedCallSite(pt)}}).filter(function(rt){return!!rt})},["this","typeName","functionName","methodName","fileName","lineNumber","columnNumber","function","evalOrigin"].forEach(function(tt){et.prototype[tt]=null,et.prototype["get"+tt[0].toUpperCase()+tt.substr(1)]=function(){return this[tt]}}),["topLevel","eval","native","constructor"].forEach(function(tt){et.prototype[tt]=!1,et.prototype["is"+tt[0].toUpperCase()+tt.substr(1)]=function(){return this[tt]}}),o._createParsedCallSite=function(tt){return new et(tt)}},function(s,o,et){function tt(lt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ut){return typeof ut}:function(ut){return ut&&typeof Symbol=="function"&&ut.constructor===Symbol&&ut!==Symbol.prototype?"symbol":typeof ut})(lt)}function nt(lt,ut){for(var dt=0;dt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var dt,ht=st(lt);if(ut){var ct=st(this).constructor;dt=Reflect.construct(ht,arguments,ct)}else dt=ht.apply(this,arguments);return ot(this,dt)}}function ot(lt,ut){if(ut&&(tt(ut)==="object"||typeof ut=="function"))return ut;if(ut!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(dt){if(dt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return dt}(lt)}function st(lt){return(st=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(ut){return ut.__proto__||Object.getPrototypeOf(ut)})(lt)}var at=et(33).Writable;s.exports=function(lt){(function(pt,ft){if(typeof ft!="function"&&ft!==null)throw new TypeError("Super expression must either be null or a function");pt.prototype=Object.create(ft&&ft.prototype,{constructor:{value:pt,writable:!0,configurable:!0}}),Object.defineProperty(pt,"prototype",{writable:!1}),ft&&rt(pt,ft)})(ct,lt);var ut,dt,ht=it(ct);function ct(pt){var ft;if(function(gt,yt){if(!(gt instanceof yt))throw new TypeError("Cannot call a class as a function")}(this,ct),ft=ht.call(this,{objectMode:!0}),!pt)throw new Error("ExceptionStream requires a TransportStream instance.");return ft.handleExceptions=!0,ft.transport=pt,ft}return ut=ct,(dt=[{key:"_write",value:function(pt,ft,gt){return pt.exception?this.transport.log(pt,gt):(gt(),!0)}}])&&nt(ut.prototype,dt),Object.defineProperty(ut,"prototype",{writable:!1}),ct}(at)},function(s,o,et){(function(tt){function nt(ut,dt){for(var ht=0;ht0&&ot.writeString(1,st)},proto.google.protobuf.StringValue.prototype.getValue=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.google.protobuf.StringValue.prototype.setValue=function(it){return tt.Message.setProto3StringField(this,1,it)},tt.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.BytesValue.prototype.toObject=function(it){return proto.google.protobuf.BytesValue.toObject(it,this)},proto.google.protobuf.BytesValue.toObject=function(it,ot){var st={value:ot.getValue_asB64()};return it&&(st.$jspbMessageInstance=ot),st}),proto.google.protobuf.BytesValue.deserializeBinary=function(it){var ot=new tt.BinaryReader(it),st=new proto.google.protobuf.BytesValue;return proto.google.protobuf.BytesValue.deserializeBinaryFromReader(st,ot)},proto.google.protobuf.BytesValue.deserializeBinaryFromReader=function(it,ot){for(;ot.nextField()&&!ot.isEndGroup();)switch(ot.getFieldNumber()){case 1:var st=ot.readBytes();it.setValue(st);break;default:ot.skipField()}return it},proto.google.protobuf.BytesValue.prototype.serializeBinary=function(){var it=new tt.BinaryWriter;return proto.google.protobuf.BytesValue.serializeBinaryToWriter(this,it),it.getResultBuffer()},proto.google.protobuf.BytesValue.serializeBinaryToWriter=function(it,ot){var st;(st=it.getValue_asU8()).length>0&&ot.writeBytes(1,st)},proto.google.protobuf.BytesValue.prototype.getValue=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.google.protobuf.BytesValue.prototype.getValue_asB64=function(){return tt.Message.bytesAsB64(this.getValue())},proto.google.protobuf.BytesValue.prototype.getValue_asU8=function(){return tt.Message.bytesAsU8(this.getValue())},proto.google.protobuf.BytesValue.prototype.setValue=function(it){return tt.Message.setProto3BytesField(this,1,it)},nt.object.extend(o,proto.google.protobuf)},function(module,exports,__webpack_require__){(function(global,Buffer){var $jscomp=$jscomp||{};$jscomp.scope={},$jscomp.findInternal=function(s,o,et){s instanceof String&&(s=String(s));for(var tt=s.length,nt=0;nt=nt}},"es6","es3"),$jscomp.polyfill("Array.prototype.find",function(s){return s||function(o,et){return $jscomp.findInternal(this,o,et).v}},"es6","es3"),$jscomp.polyfill("String.prototype.startsWith",function(s){return s||function(o,et){var tt=$jscomp.checkStringArgs(this,o,"startsWith");o+="";var nt=tt.length,rt=o.length;et=Math.max(0,Math.min(0|et,tt.length));for(var it=0;it=rt}},"es6","es3"),$jscomp.polyfill("String.prototype.repeat",function(s){return s||function(o){var et=$jscomp.checkStringArgs(this,null,"repeat");if(0>o||1342177279>>=1)&&(et+=et);return tt}},"es6","es3");var COMPILED=!0,goog=goog||{};goog.global=this||self,goog.isDef=function(s){return s!==void 0},goog.isString=function(s){return typeof s=="string"},goog.isBoolean=function(s){return typeof s=="boolean"},goog.isNumber=function(s){return typeof s=="number"},goog.exportPath_=function(s,o,et){s=s.split("."),et=et||goog.global,s[0]in et||et.execScript===void 0||et.execScript("var "+s[0]);for(var tt;s.length&&(tt=s.shift());)!s.length&&goog.isDef(o)?et[tt]=o:et=et[tt]&&et[tt]!==Object.prototype[tt]?et[tt]:et[tt]={}},goog.define=function(s,o){return o},goog.FEATURESET_YEAR=2012,goog.DEBUG=!0,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.STRICT_MODE_COMPATIBLE=!1,goog.DISALLOW_TEST_ONLY_CODE=!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(s){if(goog.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");goog.constructNamespace_(s)},goog.constructNamespace_=function(s,o){goog.exportPath_(s,o)},goog.getScriptNonce=function(s){return s&&s!=goog.global?goog.getScriptNonce_(s.document):(goog.cspNonce_===null&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document)),goog.cspNonce_)},goog.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/,goog.cspNonce_=null,goog.getScriptNonce_=function(s){return(s=s.querySelector&&s.querySelector("script[nonce]"))&&(s=s.nonce||s.getAttribute("nonce"))&&goog.NONCE_PATTERN_.test(s)?s:""},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(s){if(!goog.isString(s)||!s||s.search(goog.VALID_MODULE_RE_)==-1)throw Error("Invalid module identifier");if(!goog.isInGoogModuleLoader_())throw Error("Module "+s+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");goog.moduleLoaderState_.moduleName=s},goog.module.get=function(s){return goog.module.getInternal_(s)},goog.module.getInternal_=function(s){return null},goog.ModuleType={ES6:"es6",GOOG:"goog"},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()},goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG},goog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var s=goog.global.$jscomp;return!!s&&typeof s.getCurrentModulePath=="function"&&!!s.getCurrentModulePath()},goog.module.declareLegacyNamespace=function(){goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.declareModuleId=function(s){if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=s;else{var o=goog.global.$jscomp;if(!o||typeof o.getCurrentModulePath!="function")throw Error('Module with namespace "'+s+'" has been loaded incorrectly.');o=o.require(o.getCurrentModulePath()),goog.loadedModules_[s]={exports:o,type:goog.ModuleType.ES6,moduleId:s}}},goog.setTestOnly=function(s){if(goog.DISALLOW_TEST_ONLY_CODE)throw s=s||"",Error("Importing test-only code into non-debug environment"+(s?": "+s:"."))},goog.forwardDeclare=function(s){},goog.getObjectByName=function(s,o){s=s.split("."),o=o||goog.global;for(var et=0;et>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(s){var o=goog.typeOf(s);if(o=="object"||o=="array"){if(typeof s.clone=="function")return s.clone();for(var et in o=o=="array"?[]:{},s)o[et]=goog.cloneObject(s[et]);return o}return s},goog.bindNative_=function(s,o,et){return s.call.apply(s.bind,arguments)},goog.bindJs_=function(s,o,et){if(!s)throw Error();if(2"u"||!TrustedTypes.createPolicy)return o;try{o=TrustedTypes.createPolicy(s,{createHTML:goog.identity_,createScript:goog.identity_,createScriptURL:goog.identity_,createURL:goog.identity_})}catch(et){goog.logToConsole_(et.message)}return o},goog.TRUSTED_TYPES_POLICY_=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#base"):null;var jspb={BinaryConstants:{},ConstBinaryMessage:function(){},BinaryMessage:function(){}};jspb.BinaryConstants.FieldType={INVALID:-1,DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18,FHASH64:30,VHASH64:31},jspb.BinaryConstants.WireType={INVALID:-1,VARINT:0,FIXED64:1,DELIMITED:2,START_GROUP:3,END_GROUP:4,FIXED32:5},jspb.BinaryConstants.FieldTypeToWireType=function(s){var o=jspb.BinaryConstants.FieldType,et=jspb.BinaryConstants.WireType;switch(s){case o.INT32:case o.INT64:case o.UINT32:case o.UINT64:case o.SINT32:case o.SINT64:case o.BOOL:case o.ENUM:case o.VHASH64:return et.VARINT;case o.DOUBLE:case o.FIXED64:case o.SFIXED64:case o.FHASH64:return et.FIXED64;case o.STRING:case o.MESSAGE:case o.BYTES:return et.DELIMITED;case o.FLOAT:case o.FIXED32:case o.SFIXED32:return et.FIXED32;default:return et.INVALID}},jspb.BinaryConstants.INVALID_FIELD_NUMBER=-1,jspb.BinaryConstants.FLOAT32_EPS=1401298464324817e-60,jspb.BinaryConstants.FLOAT32_MIN=11754943508222875e-54,jspb.BinaryConstants.FLOAT32_MAX=34028234663852886e22,jspb.BinaryConstants.FLOAT64_EPS=5e-324,jspb.BinaryConstants.FLOAT64_MIN=22250738585072014e-324,jspb.BinaryConstants.FLOAT64_MAX=17976931348623157e292,jspb.BinaryConstants.TWO_TO_20=1048576,jspb.BinaryConstants.TWO_TO_23=8388608,jspb.BinaryConstants.TWO_TO_31=2147483648,jspb.BinaryConstants.TWO_TO_32=4294967296,jspb.BinaryConstants.TWO_TO_52=4503599627370496,jspb.BinaryConstants.TWO_TO_63=9223372036854776e3,jspb.BinaryConstants.TWO_TO_64=18446744073709552e3,jspb.BinaryConstants.ZERO_HASH="\0\0\0\0\0\0\0\0",goog.dom={},goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12},goog.debug={},goog.debug.Error=function(s){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var o=Error().stack;o&&(this.stack=o)}s&&(this.message=String(s)),this.reportErrorToServer=!0},goog.inherits(goog.debug.Error,Error),goog.debug.Error.prototype.name="CustomError",goog.asserts={},goog.asserts.ENABLE_ASSERTS=goog.DEBUG,goog.asserts.AssertionError=function(s,o){goog.debug.Error.call(this,goog.asserts.subs_(s,o)),this.messagePattern=s},goog.inherits(goog.asserts.AssertionError,goog.debug.Error),goog.asserts.AssertionError.prototype.name="AssertionError",goog.asserts.DEFAULT_ERROR_HANDLER=function(s){throw s},goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER,goog.asserts.subs_=function(s,o){for(var et="",tt=(s=s.split("%s")).length-1,nt=0;ntet?Math.max(0,s.length+et):et,goog.isString(s))return goog.isString(o)&&o.length==1?s.indexOf(o,et):-1;for(;et(et=et??s.length-1)&&(et=Math.max(0,s.length+et)),goog.isString(s))return goog.isString(o)&&o.length==1?s.lastIndexOf(o,et):-1;for(;0<=et;et--)if(et in s&&s[et]===o)return et;return-1},goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(s,o,et){goog.asserts.assert(s.length!=null),Array.prototype.forEach.call(s,o,et)}:function(s,o,et){for(var tt=s.length,nt=goog.isString(s)?s.split(""):s,rt=0;rt(o=goog.array.findIndex(s,o,et))?null:goog.isString(s)?s.charAt(o):s[o]},goog.array.findIndex=function(s,o,et){for(var tt=s.length,nt=goog.isString(s)?s.split(""):s,rt=0;rt(o=goog.array.findIndexRight(s,o,et))?null:goog.isString(s)?s.charAt(o):s[o]},goog.array.findIndexRight=function(s,o,et){var tt=s.length,nt=goog.isString(s)?s.split(""):s;for(--tt;0<=tt;tt--)if(tt in nt&&o.call(et,nt[tt],tt,s))return tt;return-1},goog.array.contains=function(s,o){return 0<=goog.array.indexOf(s,o)},goog.array.isEmpty=function(s){return s.length==0},goog.array.clear=function(s){if(!goog.isArray(s))for(var o=s.length-1;0<=o;o--)delete s[o];s.length=0},goog.array.insert=function(s,o){goog.array.contains(s,o)||s.push(o)},goog.array.insertAt=function(s,o,et){goog.array.splice(s,et,0,o)},goog.array.insertArrayAt=function(s,o,et){goog.partial(goog.array.splice,s,et,0).apply(null,o)},goog.array.insertBefore=function(s,o,et){var tt;arguments.length==2||0>(tt=goog.array.indexOf(s,et))?s.push(o):goog.array.insertAt(s,o,tt)},goog.array.remove=function(s,o){var et;return(et=0<=(o=goog.array.indexOf(s,o)))&&goog.array.removeAt(s,o),et},goog.array.removeLast=function(s,o){return 0<=(o=goog.array.lastIndexOf(s,o))&&(goog.array.removeAt(s,o),!0)},goog.array.removeAt=function(s,o){return goog.asserts.assert(s.length!=null),Array.prototype.splice.call(s,o,1).length==1},goog.array.removeIf=function(s,o,et){return 0<=(o=goog.array.findIndex(s,o,et))&&(goog.array.removeAt(s,o),!0)},goog.array.removeAllIf=function(s,o,et){var tt=0;return goog.array.forEachRight(s,function(nt,rt){o.call(et,nt,rt,s)&&goog.array.removeAt(s,rt)&&tt++}),tt},goog.array.concat=function(s){return Array.prototype.concat.apply([],arguments)},goog.array.join=function(s){return Array.prototype.concat.apply([],arguments)},goog.array.toArray=function(s){var o=s.length;if(0=arguments.length?Array.prototype.slice.call(s,o):Array.prototype.slice.call(s,o,et)},goog.array.removeDuplicates=function(s,o,et){o=o||s;var tt=function(st){return goog.isObject(st)?"o"+goog.getUid(st):(typeof st).charAt(0)+st};et=et||tt,tt={};for(var nt=0,rt=0;rt>1,at=et?o.call(nt,s[st],st,s):o(tt,s[st]);0o?1:s(et=goog.array.binarySearch(s,o,et))&&(goog.array.insertAt(s,o,-(et+1)),!0)},goog.array.binaryRemove=function(s,o,et){return 0<=(o=goog.array.binarySearch(s,o,et))&&goog.array.removeAt(s,o)},goog.array.bucket=function(s,o,et){for(var tt={},nt=0;nt(et=et||1)*(rt-nt))return[];if(0rt;s+=et)tt.push(s);return tt},goog.array.repeat=function(s,o){for(var et=[],tt=0;tto&&Array.prototype.push.apply(s,s.splice(0,-o))),s},goog.array.moveItem=function(s,o,et){goog.asserts.assert(0<=o&&o>=8),o[et++]=nt}return o},goog.crypt.byteArrayToString=function(s){if(8192>=s.length)return String.fromCharCode.apply(null,s);for(var o="",et=0;etnt?o[et++]=nt:(2048>nt?o[et++]=nt>>6|192:((64512&nt)==55296&&tt+1>18|240,o[et++]=nt>>12&63|128):o[et++]=nt>>12|224,o[et++]=nt>>6&63|128),o[et++]=63&nt|128)}return o},goog.crypt.utf8ByteArrayToString=function(s){for(var o=[],et=0,tt=0;etnt)o[tt++]=String.fromCharCode(nt);else if(191nt){var rt=s[et++];o[tt++]=String.fromCharCode((31&nt)<<6|63&rt)}else if(239nt){rt=s[et++];var it=s[et++];nt=((7&nt)<<18|(63&rt)<<12|(63&it)<<6|63&s[et++])-65536,o[tt++]=String.fromCharCode(55296+(nt>>10)),o[tt++]=String.fromCharCode(56320+(1023&nt))}else rt=s[et++],it=s[et++],o[tt++]=String.fromCharCode((15&nt)<<12|(63&rt)<<6|63&it)}return o.join("")},goog.crypt.xorByteArray=function(s,o){goog.asserts.assert(s.length==o.length,"XOR array lengths must match");for(var et=[],tt=0;tt":"
")},goog.string.internal.htmlEscape=function(s,o){if(o)s=s.replace(goog.string.internal.AMP_RE_,"&").replace(goog.string.internal.LT_RE_,"<").replace(goog.string.internal.GT_RE_,">").replace(goog.string.internal.QUOT_RE_,""").replace(goog.string.internal.SINGLE_QUOTE_RE_,"'").replace(goog.string.internal.NULL_RE_,"�");else{if(!goog.string.internal.ALL_RE_.test(s))return s;s.indexOf("&")!=-1&&(s=s.replace(goog.string.internal.AMP_RE_,"&")),s.indexOf("<")!=-1&&(s=s.replace(goog.string.internal.LT_RE_,"<")),s.indexOf(">")!=-1&&(s=s.replace(goog.string.internal.GT_RE_,">")),s.indexOf('"')!=-1&&(s=s.replace(goog.string.internal.QUOT_RE_,""")),s.indexOf("'")!=-1&&(s=s.replace(goog.string.internal.SINGLE_QUOTE_RE_,"'")),s.indexOf("\0")!=-1&&(s=s.replace(goog.string.internal.NULL_RE_,"�"))}return s},goog.string.internal.AMP_RE_=/&/g,goog.string.internal.LT_RE_=//g,goog.string.internal.QUOT_RE_=/"/g,goog.string.internal.SINGLE_QUOTE_RE_=/'/g,goog.string.internal.NULL_RE_=/\x00/g,goog.string.internal.ALL_RE_=/[\x00&<>"']/,goog.string.internal.whitespaceEscape=function(s,o){return goog.string.internal.newLineToBr(s.replace(/ /g,"  "),o)},goog.string.internal.contains=function(s,o){return s.indexOf(o)!=-1},goog.string.internal.caseInsensitiveContains=function(s,o){return goog.string.internal.contains(s.toLowerCase(),o.toLowerCase())},goog.string.internal.compareVersions=function(s,o){var et=0;s=goog.string.internal.trim(String(s)).split("."),o=goog.string.internal.trim(String(o)).split(".");for(var tt=Math.max(s.length,o.length),nt=0;et==0&&nto?1:0},goog.string.TypedString=function(){},goog.string.Const=function(s,o){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_=s===goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_&&o||"",this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_},goog.string.Const.prototype.implementsGoogStringTypedString=!0,goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_},goog.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"},goog.string.Const.unwrap=function(s){return s instanceof goog.string.Const&&s.constructor===goog.string.Const&&s.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_?s.stringConstValueWithSecurityContract__googStringSecurityPrivate_:(goog.asserts.fail("expected object of type Const, got '"+s+"'"),"type_error:Const")},goog.string.Const.from=function(s){return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_,s)},goog.string.Const.TYPE_MARKER_={},goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_={},goog.string.Const.EMPTY=goog.string.Const.from(""),goog.fs={},goog.fs.url={},goog.fs.url.createObjectUrl=function(s){return goog.fs.url.getUrlObject_().createObjectURL(s)},goog.fs.url.revokeObjectUrl=function(s){goog.fs.url.getUrlObject_().revokeObjectURL(s)},goog.fs.url.getUrlObject_=function(){var s=goog.fs.url.findUrlObject_();if(s!=null)return s;throw Error("This browser doesn't seem to support blob URLs")},goog.fs.url.findUrlObject_=function(){return goog.isDef(goog.global.URL)&&goog.isDef(goog.global.URL.createObjectURL)?goog.global.URL:goog.isDef(goog.global.webkitURL)&&goog.isDef(goog.global.webkitURL.createObjectURL)?goog.global.webkitURL:goog.isDef(goog.global.createObjectURL)?goog.global:null},goog.fs.url.browserSupportsObjectUrls=function(){return goog.fs.url.findUrlObject_()!=null},goog.html={},goog.html.trustedtypes={},goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#html"):null,goog.i18n={},goog.i18n.bidi={},goog.i18n.bidi.FORCE_RTL=!1,goog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||(goog.LOCALE.substring(0,2).toLowerCase()=="ar"||goog.LOCALE.substring(0,2).toLowerCase()=="fa"||goog.LOCALE.substring(0,2).toLowerCase()=="he"||goog.LOCALE.substring(0,2).toLowerCase()=="iw"||goog.LOCALE.substring(0,2).toLowerCase()=="ps"||goog.LOCALE.substring(0,2).toLowerCase()=="sd"||goog.LOCALE.substring(0,2).toLowerCase()=="ug"||goog.LOCALE.substring(0,2).toLowerCase()=="ur"||goog.LOCALE.substring(0,2).toLowerCase()=="yi")&&(goog.LOCALE.length==2||goog.LOCALE.substring(2,3)=="-"||goog.LOCALE.substring(2,3)=="_")||3<=goog.LOCALE.length&&goog.LOCALE.substring(0,3).toLowerCase()=="ckb"&&(goog.LOCALE.length==3||goog.LOCALE.substring(3,4)=="-"||goog.LOCALE.substring(3,4)=="_")||7<=goog.LOCALE.length&&(goog.LOCALE.substring(2,3)=="-"||goog.LOCALE.substring(2,3)=="_")&&(goog.LOCALE.substring(3,7).toLowerCase()=="adlm"||goog.LOCALE.substring(3,7).toLowerCase()=="arab"||goog.LOCALE.substring(3,7).toLowerCase()=="hebr"||goog.LOCALE.substring(3,7).toLowerCase()=="nkoo"||goog.LOCALE.substring(3,7).toLowerCase()=="rohg"||goog.LOCALE.substring(3,7).toLowerCase()=="thaa")||8<=goog.LOCALE.length&&(goog.LOCALE.substring(3,4)=="-"||goog.LOCALE.substring(3,4)=="_")&&(goog.LOCALE.substring(4,8).toLowerCase()=="adlm"||goog.LOCALE.substring(4,8).toLowerCase()=="arab"||goog.LOCALE.substring(4,8).toLowerCase()=="hebr"||goog.LOCALE.substring(4,8).toLowerCase()=="nkoo"||goog.LOCALE.substring(4,8).toLowerCase()=="rohg"||goog.LOCALE.substring(4,8).toLowerCase()=="thaa"),goog.i18n.bidi.Format={LRE:"‪",RLE:"‫",PDF:"‬",LRM:"‎",RLM:"‏"},goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0},goog.i18n.bidi.RIGHT="right",goog.i18n.bidi.LEFT="left",goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT,goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,goog.i18n.bidi.toDir=function(s,o){return typeof s=="number"?0s?goog.i18n.bidi.Dir.RTL:o?null:goog.i18n.bidi.Dir.NEUTRAL:s==null?null:s?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.ltrChars_="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ऀ-῿‎Ⰰ-\uD801\uD804-\uD839\uD83C-\uDBFF豈-﬜︀-﹯﻽-￿",goog.i18n.bidi.rtlChars_="֑-ۯۺ-ࣿ‏\uD802-\uD803\uD83A-\uD83Bיִ-﷿ﹰ-ﻼ",goog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g,goog.i18n.bidi.stripHtmlIfNeeded_=function(s,o){return o?s.replace(goog.i18n.bidi.htmlSkipReg_,""):s},goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.hasAnyRtl=function(s,o){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl,goog.i18n.bidi.hasAnyLtr=function(s,o){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.isRtlChar=function(s){return goog.i18n.bidi.rtlRe_.test(s)},goog.i18n.bidi.isLtrChar=function(s){return goog.i18n.bidi.ltrRe_.test(s)},goog.i18n.bidi.isNeutralChar=function(s){return!goog.i18n.bidi.isLtrChar(s)&&!goog.i18n.bidi.isRtlChar(s)},goog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.startsWithRtl=function(s,o){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl,goog.i18n.bidi.startsWithLtr=function(s,o){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr,goog.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/,goog.i18n.bidi.isNeutralText=function(s,o){return s=goog.i18n.bidi.stripHtmlIfNeeded_(s,o),goog.i18n.bidi.isRequiredLtrRe_.test(s)||!goog.i18n.bidi.hasAnyLtr(s)&&!goog.i18n.bidi.hasAnyRtl(s)},goog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$"),goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$"),goog.i18n.bidi.endsWithLtr=function(s,o){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr,goog.i18n.bidi.endsWithRtl=function(s,o){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl,goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i,goog.i18n.bidi.isRtlLanguage=function(s){return goog.i18n.bidi.rtlLocalesRe_.test(s)},goog.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g,goog.i18n.bidi.guardBracketInText=function(s,o){return o=(o===void 0?goog.i18n.bidi.hasAnyRtl(s):o)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM,s.replace(goog.i18n.bidi.bracketGuardTextRe_,o+"$&"+o)},goog.i18n.bidi.enforceRtlInHtml=function(s){return s.charAt(0)=="<"?s.replace(/<\w+/,"$& dir=rtl"):` `+s+""},goog.i18n.bidi.enforceRtlInText=function(s){return goog.i18n.bidi.Format.RLE+s+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.enforceLtrInHtml=function(s){return s.charAt(0)=="<"?s.replace(/<\w+/,"$& dir=ltr"):` `+s+""},goog.i18n.bidi.enforceLtrInText=function(s){return goog.i18n.bidi.Format.LRE+s+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g,goog.i18n.bidi.leftRe_=/left/gi,goog.i18n.bidi.rightRe_=/right/gi,goog.i18n.bidi.tempRe_=/%%%%/g,goog.i18n.bidi.mirrorCSS=function(s){return s.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)},goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g,goog.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g,goog.i18n.bidi.normalizeHebrewQuote=function(s){return s.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1״").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1׳")},goog.i18n.bidi.wordSeparatorRe_=/\s+/,goog.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/,goog.i18n.bidi.rtlDetectionThreshold_=.4,goog.i18n.bidi.estimateDirection=function(s,o){var et=0,tt=0,nt=!1;for(s=goog.i18n.bidi.stripHtmlIfNeeded_(s,o).split(goog.i18n.bidi.wordSeparatorRe_),o=0;ogoog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.detectRtlDirectionality=function(s,o){return goog.i18n.bidi.estimateDirection(s,o)==goog.i18n.bidi.Dir.RTL},goog.i18n.bidi.setElementDirAndAlign=function(s,o){s&&(o=goog.i18n.bidi.toDir(o))&&(s.style.textAlign=o==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,s.dir=o==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")},goog.i18n.bidi.setElementDirByTextDirectionality=function(s,o){switch(goog.i18n.bidi.estimateDirection(o)){case goog.i18n.bidi.Dir.LTR:s.dir="ltr";break;case goog.i18n.bidi.Dir.RTL:s.dir="rtl";break;default:s.removeAttribute("dir")}},goog.i18n.bidi.DirectionalString=function(){},goog.html.TrustedResourceUrl=function(){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_="",this.trustedURL_=null,this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0,goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString()},goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.html.TrustedResourceUrl.prototype.cloneWithParams=function(s,o){var et=goog.html.TrustedResourceUrl.unwrap(this),tt=(et=goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(et))[3]||"";return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(et[1]+goog.html.TrustedResourceUrl.stringifyParams_("?",et[2]||"",s)+goog.html.TrustedResourceUrl.stringifyParams_("#",tt,o))},goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"}),goog.html.TrustedResourceUrl.unwrap=function(s){return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(s).toString()},goog.html.TrustedResourceUrl.unwrapTrustedScriptURL=function(s){return s instanceof goog.html.TrustedResourceUrl&&s.constructor===goog.html.TrustedResourceUrl&&s.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?s.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_:(goog.asserts.fail("expected object of type TrustedResourceUrl, got '"+s+"' of type "+goog.typeOf(s)),"type_error:TrustedResourceUrl")},goog.html.TrustedResourceUrl.unwrapTrustedURL=function(s){return s.trustedURL_?s.trustedURL_:goog.html.TrustedResourceUrl.unwrap(s)},goog.html.TrustedResourceUrl.format=function(s,o){var et=goog.string.Const.unwrap(s);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(et))throw Error("Invalid TrustedResourceUrl format: "+et);return s=et.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,function(tt,nt){if(!Object.prototype.hasOwnProperty.call(o,nt))throw Error('Found marker, "'+nt+'", in format string, "'+et+'", but no valid label mapping found in args: '+JSON.stringify(o));return(tt=o[nt])instanceof goog.string.Const?goog.string.Const.unwrap(tt):encodeURIComponent(String(tt))}),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g,goog.html.TrustedResourceUrl.BASE_URL_=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i,goog.html.TrustedResourceUrl.URL_PARAM_PARSER_=/^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/,goog.html.TrustedResourceUrl.formatWithParams=function(s,o,et,tt){return goog.html.TrustedResourceUrl.format(s,o).cloneWithParams(et,tt)},goog.html.TrustedResourceUrl.fromConstant=function(s){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(s))},goog.html.TrustedResourceUrl.fromConstants=function(s){for(var o="",et=0;ets.length?"&":"")+encodeURIComponent(tt)+"="+encodeURIComponent(String(it)))}}return o},goog.html.SafeUrl=function(){this.privateDoNotAccessOrElseSafeUrlWrappedValue_="",this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez",goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0,goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()},goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.DEBUG&&(goog.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeUrlWrappedValue_+"}"}),goog.html.SafeUrl.unwrap=function(s){return goog.html.SafeUrl.unwrapTrustedURL(s).toString()},goog.html.SafeUrl.unwrapTrustedURL=function(s){return s instanceof goog.html.SafeUrl&&s.constructor===goog.html.SafeUrl&&s.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?s.privateDoNotAccessOrElseSafeUrlWrappedValue_:(goog.asserts.fail("expected object of type SafeUrl, got '"+s+"' of type "+goog.typeOf(s)),"type_error:SafeUrl")},goog.html.SafeUrl.fromConstant=function(s){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(s))},goog.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-wav|wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime))(?:;\w+=(?:\w+|"[\w;=]+"))*$/i,goog.html.SafeUrl.isSafeMimeType=function(s){return goog.html.SAFE_MIME_TYPE_PATTERN_.test(s)},goog.html.SafeUrl.fromBlob=function(s){return s=goog.html.SAFE_MIME_TYPE_PATTERN_.test(s.type)?goog.fs.url.createObjectUrl(s):goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.DATA_URL_PATTERN_=/^data:([^,]*);base64,[a-z0-9+\/]+=*$/i,goog.html.SafeUrl.fromDataUrl=function(s){var o=(s=s.replace(/(%0A|%0D)/g,"")).match(goog.html.DATA_URL_PATTERN_);return o=o&&goog.html.SAFE_MIME_TYPE_PATTERN_.test(o[1]),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(o?s:goog.html.SafeUrl.INNOCUOUS_STRING)},goog.html.SafeUrl.fromTelUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"tel:")||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SIP_URL_PATTERN_=/^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i,goog.html.SafeUrl.fromSipUrl=function(s){return goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(s))||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.fromFacebookMessengerUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"fb-messenger://share")||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.fromWhatsAppUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"whatsapp://send")||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.fromSmsUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"sms:")&&goog.html.SafeUrl.isSmsUrlBodyValid_(s)||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.isSmsUrlBodyValid_=function(s){var o=s.indexOf("#");if(0+~[\]()=^$|]+$/.test(et))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: "+s);if(!goog.html.SafeStyleSheet.hasBalancedBrackets_(et))throw Error("() and [] in selector must be balanced, got: "+s);return o instanceof goog.html.SafeStyle||(o=goog.html.SafeStyle.create(o)),s=s+"{"+goog.html.SafeStyle.unwrap(o).replace(/.");if(s.toUpperCase()in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error("Tag name <"+s+"> is not allowed for SafeHtml.")},goog.html.SafeHtml.createIframe=function(s,o,et,tt){s&&goog.html.TrustedResourceUrl.unwrap(s);var nt={};return nt.src=s||null,nt.srcdoc=o&&goog.html.SafeHtml.unwrap(o),s=goog.html.SafeHtml.combineAttributes(nt,{sandbox:""},et),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",s,tt)},goog.html.SafeHtml.createSandboxIframe=function(s,o,et,tt){if(!goog.html.SafeHtml.canUseSandboxIframe())throw Error("The browser does not support sandboxed iframes.");var nt={};return nt.src=s?goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(s)):null,nt.srcdoc=o||null,nt.sandbox="",s=goog.html.SafeHtml.combineAttributes(nt,{},et),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",s,tt)},goog.html.SafeHtml.canUseSandboxIframe=function(){return goog.global.HTMLIFrameElement&&"sandbox"in goog.global.HTMLIFrameElement.prototype},goog.html.SafeHtml.createScriptSrc=function(s,o){return goog.html.TrustedResourceUrl.unwrap(s),s=goog.html.SafeHtml.combineAttributes({src:s},{},o),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",s)},goog.html.SafeHtml.createScript=function(s,o){for(var et in o){var tt=et.toLowerCase();if(tt=="language"||tt=="src"||tt=="text"||tt=="type")throw Error('Cannot set "'+tt+'" attribute')}for(et="",s=goog.array.concat(s),tt=0;tt does not allow content."),nt+=">"):(tt=goog.html.SafeHtml.concat(et),nt+=">"+goog.html.SafeHtml.unwrap(tt)+"",tt=tt.getDirection()),(s=o&&o.dir)&&(tt=/^(ltr|rtl|auto)$/i.test(s)?goog.i18n.bidi.Dir.NEUTRAL:null),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(nt,tt)},goog.html.SafeHtml.stringifyAttributes=function(s,o){var et="";if(o)for(var tt in o){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(tt))throw Error('Invalid attribute name "'+tt+'".');var nt=o[tt];goog.isDefAndNotNull(nt)&&(et+=" "+goog.html.SafeHtml.getAttrNameAndValue_(s,tt,nt))}return et},goog.html.SafeHtml.combineAttributes=function(s,o,et){var tt,nt={};for(tt in s)goog.asserts.assert(tt.toLowerCase()==tt,"Must be lower case"),nt[tt]=s[tt];for(tt in o)goog.asserts.assert(tt.toLowerCase()==tt,"Must be lower case"),nt[tt]=o[tt];for(tt in et){var rt=tt.toLowerCase();if(rt in s)throw Error('Cannot override "'+rt+'" attribute, got "'+tt+'" with value "'+et[tt]+'"');rt in o&&delete nt[rt],nt[tt]=et[tt]}return nt},goog.html.SafeHtml.DOCTYPE_HTML=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.EMPTY=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.BR=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("
",goog.i18n.bidi.Dir.NEUTRAL),goog.html.uncheckedconversions={},goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(s,o,et){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(o,et||null)},goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(o)},goog.dom.asserts={},goog.dom.asserts.assertIsLocation=function(s){if(goog.asserts.ENABLE_ASSERTS){var o=goog.dom.asserts.getWindow_(s);o&&(!s||!(s instanceof o.Location)&&s instanceof o.Element)&&goog.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(s))}return s},goog.dom.asserts.assertIsElementType_=function(s,o){if(goog.asserts.ENABLE_ASSERTS){var et=goog.dom.asserts.getWindow_(s);et&&et[o]!==void 0&&(s&&(s instanceof et[o]||!(s instanceof et.Location||s instanceof et.Element))||goog.asserts.fail("Argument is not a %s (or a non-Element, non-Location mock); got: %s",o,goog.dom.asserts.debugStringForType_(s)))}return s},goog.dom.asserts.assertIsHTMLAnchorElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLAnchorElement")},goog.dom.asserts.assertIsHTMLButtonElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLButtonElement")},goog.dom.asserts.assertIsHTMLLinkElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLLinkElement")},goog.dom.asserts.assertIsHTMLImageElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLImageElement")},goog.dom.asserts.assertIsHTMLAudioElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLAudioElement")},goog.dom.asserts.assertIsHTMLVideoElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLVideoElement")},goog.dom.asserts.assertIsHTMLInputElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLInputElement")},goog.dom.asserts.assertIsHTMLTextAreaElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLTextAreaElement")},goog.dom.asserts.assertIsHTMLCanvasElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLCanvasElement")},goog.dom.asserts.assertIsHTMLEmbedElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLEmbedElement")},goog.dom.asserts.assertIsHTMLFormElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLFormElement")},goog.dom.asserts.assertIsHTMLFrameElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLFrameElement")},goog.dom.asserts.assertIsHTMLIFrameElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLIFrameElement")},goog.dom.asserts.assertIsHTMLObjectElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLObjectElement")},goog.dom.asserts.assertIsHTMLScriptElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLScriptElement")},goog.dom.asserts.debugStringForType_=function(s){if(!goog.isObject(s))return s===void 0?"undefined":s===null?"null":typeof s;try{return s.constructor.displayName||s.constructor.name||Object.prototype.toString.call(s)}catch{return""}},goog.dom.asserts.getWindow_=function(s){try{var o=s&&s.ownerDocument,et=o&&(o.defaultView||o.parentWindow);if((et=et||goog.global).Element&&et.Location)return et}catch{}return null},goog.functions={},goog.functions.constant=function(s){return function(){return s}},goog.functions.FALSE=function(){return!1},goog.functions.TRUE=function(){return!0},goog.functions.NULL=function(){return null},goog.functions.identity=function(s,o){return s},goog.functions.error=function(s){return function(){throw Error(s)}},goog.functions.fail=function(s){return function(){throw s}},goog.functions.lock=function(s,o){return o=o||0,function(){return s.apply(this,Array.prototype.slice.call(arguments,0,o))}},goog.functions.nth=function(s){return function(){return arguments[s]}},goog.functions.partialRight=function(s,o){var et=Array.prototype.slice.call(arguments,1);return function(){var tt=Array.prototype.slice.call(arguments);return tt.push.apply(tt,et),s.apply(this,tt)}},goog.functions.withReturnValue=function(s,o){return goog.functions.sequence(s,goog.functions.constant(o))},goog.functions.equalTo=function(s,o){return function(et){return o?s==et:s===et}},goog.functions.compose=function(s,o){var et=arguments,tt=et.length;return function(){var nt;tt&&(nt=et[tt-1].apply(this,arguments));for(var rt=tt-2;0<=rt;rt--)nt=et[rt].call(this,nt);return nt}},goog.functions.sequence=function(s){var o=arguments,et=o.length;return function(){for(var tt,nt=0;nt"u")return!1;var s=document.createElement("div"),o=document.createElement("div");return o.appendChild(document.createElement("div")),s.appendChild(o),!(goog.DEBUG&&!s.firstChild)&&(o=s.firstChild.firstChild,s.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY),!o.parentElement)}),goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(s,o){if(goog.dom.safe.isInnerHtmlCleanupRecursive_())for(;s.lastChild;)s.removeChild(s.lastChild);s.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(o)},goog.dom.safe.setInnerHtml=function(s,o){if(goog.asserts.ENABLE_ASSERTS){var et=s.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[et])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+s.tagName+".")}goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(s,o)},goog.dom.safe.setOuterHtml=function(s,o){s.outerHTML=goog.html.SafeHtml.unwrapTrustedHTML(o)},goog.dom.safe.setFormElementAction=function(s,o){o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),goog.dom.asserts.assertIsHTMLFormElement(s).action=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setButtonFormAction=function(s,o){o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),goog.dom.asserts.assertIsHTMLButtonElement(s).formAction=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setInputFormAction=function(s,o){o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),goog.dom.asserts.assertIsHTMLInputElement(s).formAction=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setStyle=function(s,o){s.style.cssText=goog.html.SafeStyle.unwrap(o)},goog.dom.safe.documentWrite=function(s,o){s.write(goog.html.SafeHtml.unwrapTrustedHTML(o))},goog.dom.safe.setAnchorHref=function(s,o){goog.dom.asserts.assertIsHTMLAnchorElement(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.href=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setImageSrc=function(s,o){if(goog.dom.asserts.assertIsHTMLImageElement(s),!(o instanceof goog.html.SafeUrl)){var et=/^data:image\//i.test(o);o=goog.html.SafeUrl.sanitizeAssertUnchanged(o,et)}s.src=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setAudioSrc=function(s,o){if(goog.dom.asserts.assertIsHTMLAudioElement(s),!(o instanceof goog.html.SafeUrl)){var et=/^data:audio\//i.test(o);o=goog.html.SafeUrl.sanitizeAssertUnchanged(o,et)}s.src=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setVideoSrc=function(s,o){if(goog.dom.asserts.assertIsHTMLVideoElement(s),!(o instanceof goog.html.SafeUrl)){var et=/^data:video\//i.test(o);o=goog.html.SafeUrl.sanitizeAssertUnchanged(o,et)}s.src=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setEmbedSrc=function(s,o){goog.dom.asserts.assertIsHTMLEmbedElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(o)},goog.dom.safe.setFrameSrc=function(s,o){goog.dom.asserts.assertIsHTMLFrameElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedURL(o)},goog.dom.safe.setIframeSrc=function(s,o){goog.dom.asserts.assertIsHTMLIFrameElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedURL(o)},goog.dom.safe.setIframeSrcdoc=function(s,o){goog.dom.asserts.assertIsHTMLIFrameElement(s),s.srcdoc=goog.html.SafeHtml.unwrapTrustedHTML(o)},goog.dom.safe.setLinkHrefAndRel=function(s,o,et){goog.dom.asserts.assertIsHTMLLinkElement(s),s.rel=et,goog.string.internal.caseInsensitiveContains(et,"stylesheet")?(goog.asserts.assert(o instanceof goog.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),s.href=goog.html.TrustedResourceUrl.unwrapTrustedURL(o)):s.href=o instanceof goog.html.TrustedResourceUrl?goog.html.TrustedResourceUrl.unwrapTrustedURL(o):o instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrapTrustedURL(o):goog.html.SafeUrl.unwrapTrustedURL(goog.html.SafeUrl.sanitizeAssertUnchanged(o))},goog.dom.safe.setObjectData=function(s,o){goog.dom.asserts.assertIsHTMLObjectElement(s),s.data=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(o)},goog.dom.safe.setScriptSrc=function(s,o){goog.dom.asserts.assertIsHTMLScriptElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(o),(o=goog.getScriptNonce())&&s.setAttribute("nonce",o)},goog.dom.safe.setScriptContent=function(s,o){goog.dom.asserts.assertIsHTMLScriptElement(s),s.text=goog.html.SafeScript.unwrapTrustedScript(o),(o=goog.getScriptNonce())&&s.setAttribute("nonce",o)},goog.dom.safe.setLocationHref=function(s,o){goog.dom.asserts.assertIsLocation(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.href=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.assignLocation=function(s,o){goog.dom.asserts.assertIsLocation(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.assign(goog.html.SafeUrl.unwrapTrustedURL(o))},goog.dom.safe.replaceLocation=function(s,o){goog.dom.asserts.assertIsLocation(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.replace(goog.html.SafeUrl.unwrapTrustedURL(o))},goog.dom.safe.openInWindow=function(s,o,et,tt,nt){return s=s instanceof goog.html.SafeUrl?s:goog.html.SafeUrl.sanitizeAssertUnchanged(s),(o||goog.global).open(goog.html.SafeUrl.unwrapTrustedURL(s),et?goog.string.Const.unwrap(et):"",tt,nt)},goog.dom.safe.parseFromStringHtml=function(s,o){return goog.dom.safe.parseFromString(s,o,"text/html")},goog.dom.safe.parseFromString=function(s,o,et){return s.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(o),et)},goog.dom.safe.createImageFromBlob=function(s){if(!/^image\/.*/g.test(s.type))throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");var o=goog.global.URL.createObjectURL(s);return(s=new goog.global.Image).onload=function(){goog.global.URL.revokeObjectURL(o)},goog.dom.safe.setImageSrc(s,goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Image blob URL."),o)),s},goog.string.DETECT_DOUBLE_ESCAPING=!1,goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1,goog.string.Unicode={NBSP:" "},goog.string.startsWith=goog.string.internal.startsWith,goog.string.endsWith=goog.string.internal.endsWith,goog.string.caseInsensitiveStartsWith=goog.string.internal.caseInsensitiveStartsWith,goog.string.caseInsensitiveEndsWith=goog.string.internal.caseInsensitiveEndsWith,goog.string.caseInsensitiveEquals=goog.string.internal.caseInsensitiveEquals,goog.string.subs=function(s,o){for(var et=s.split("%s"),tt="",nt=Array.prototype.slice.call(arguments,1);nt.length&&1=s||"€"<=s&&"�">=s},goog.string.stripNewlines=function(s){return s.replace(/(\r\n|\r|\n)+/g," ")},goog.string.canonicalizeNewlines=function(s){return s.replace(/(\r\n|\r|\n)/g,` -`)},goog.string.normalizeWhitespace=function(s){return s.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(s){return s.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(s){return s.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.string.internal.trim,goog.string.trimLeft=function(s){return s.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(s){return s.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare,goog.string.numberAwareCompare_=function(s,o,et){if(s==o)return 0;if(!s)return-1;if(!o)return 1;for(var tt=s.toLowerCase().match(et),nt=o.toLowerCase().match(et),rt=Math.min(tt.length,nt.length),it=0;it",""":'"'},tt=o?o.createElement("div"):goog.global.document.createElement("div");return s.replace(goog.string.HTML_ENTITY_PATTERN_,function(nt,rt){var it=et[nt];return it||(rt.charAt(0)=="#"&&(rt=+("0"+rt.substr(1)),isNaN(rt)||(it=String.fromCharCode(rt))),it||(goog.dom.safe.setInnerHtml(tt,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),nt+" ")),it=tt.firstChild.nodeValue.slice(0,-1)),et[nt]=it)})},goog.string.unescapePureXmlEntities_=function(s){return s.replace(/&([^;]+);/g,function(o,et){switch(et){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:return et.charAt(0)!="#"||(et=+("0"+et.substr(1)),isNaN(et))?o:String.fromCharCode(et)}})},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(s,o){return goog.string.newLineToBr(s.replace(/ /g,"  "),o)},goog.string.preserveSpaces=function(s){return s.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(s,o){for(var et=o.length,tt=0;tto&&(s=s.substring(0,o-3)+"..."),et&&(s=goog.string.htmlEscape(s)),s},goog.string.truncateMiddle=function(s,o,et,tt){if(et&&(s=goog.string.unescapeEntities(s)),tt&&s.length>o){tt>o&&(tt=o);var nt=s.length-tt;s=s.substring(0,o-tt)+"..."+s.substring(nt)}else s.length>o&&(tt=Math.floor(o/2),nt=s.length-tt,s=s.substring(0,tt+o%2)+"..."+s.substring(nt));return et&&(s=goog.string.htmlEscape(s)),s},goog.string.specialEscapeChars_={"\0":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(s){s=String(s);for(var o=['"'],et=0;etnt?tt:goog.string.escapeChar(tt))}return o.push('"'),o.join("")},goog.string.escapeString=function(s){for(var o=[],et=0;eto)var et=s;else 256>o?(et="\\x",(16>o||256o&&(et+="0")),et+=o.toString(16).toUpperCase();return goog.string.jsEscapeCache_[s]=et},goog.string.contains=goog.string.internal.contains,goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains,goog.string.countOf=function(s,o){return s&&o?s.split(o).length-1:0},goog.string.removeAt=function(s,o,et){var tt=s;return 0<=o&&o>>0;return o},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(s){var o=Number(s);return o==0&&goog.string.isEmptyOrWhitespace(s)?NaN:o},goog.string.isLowerCamelCase=function(s){return/^[a-z]+([A-Z][a-z]*)*$/.test(s)},goog.string.isUpperCamelCase=function(s){return/^([A-Z][a-z]*)+$/.test(s)},goog.string.toCamelCase=function(s){return String(s).replace(/\-([a-z])/g,function(o,et){return et.toUpperCase()})},goog.string.toSelectorCase=function(s){return String(s).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(s,o){return o=goog.isString(o)?goog.string.regExpEscape(o):"\\s",s.replace(new RegExp("(^"+(o?"|["+o+"]+":"")+")([a-z])","g"),function(et,tt,nt){return tt+nt.toUpperCase()})},goog.string.capitalize=function(s){return String(s.charAt(0)).toUpperCase()+String(s.substr(1)).toLowerCase()},goog.string.parseInt=function(s){return isFinite(s)&&(s=String(s)),goog.isString(s)?/^\s*-?0x/i.test(s)?parseInt(s,16):parseInt(s,10):NaN},goog.string.splitLimit=function(s,o,et){s=s.split(o);for(var tt=[];0et&&(et=nt)}return et==-1?s:s.slice(et+1)},goog.string.editDistance=function(s,o){var et=[],tt=[];if(s==o)return 0;if(!s.length||!o.length)return Math.max(s.length,o.length);for(var nt=0;ntparseFloat(s)?String(o):s},goog.userAgent.getVersionRegexResult_=function(){var s=goog.userAgent.getUserAgentString();return goog.userAgent.GECKO?/rv:([^\);]+)(\)|;)/.exec(s):goog.userAgent.EDGE?/Edge\/([\d\.]+)/.exec(s):goog.userAgent.IE?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(s):goog.userAgent.WEBKIT?/WebKit\/(\S+)/.exec(s):goog.userAgent.OPERA?/(?:Version)[ \/]?(\S+)/.exec(s):void 0},goog.userAgent.getDocumentMode_=function(){var s=goog.global.document;return s?s.documentMode:void 0},goog.userAgent.VERSION=goog.userAgent.determineVersion_(),goog.userAgent.compare=function(s,o){return goog.string.compareVersions(s,o)},goog.userAgent.isVersionOrHigherCache_={},goog.userAgent.isVersionOrHigher=function(s){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,s,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,s)})},goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher,goog.userAgent.isDocumentModeOrHigher=function(s){return Number(goog.userAgent.DOCUMENT_MODE)>=s},goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher,goog.userAgent.DOCUMENT_MODE=function(){if(goog.global.document&&goog.userAgent.IE)return goog.userAgent.getDocumentMode_()}(),goog.userAgent.product={},goog.userAgent.product.ASSUME_FIREFOX=!1,goog.userAgent.product.ASSUME_IPHONE=!1,goog.userAgent.product.ASSUME_IPAD=!1,goog.userAgent.product.ASSUME_ANDROID=!1,goog.userAgent.product.ASSUME_CHROME=!1,goog.userAgent.product.ASSUME_SAFARI=!1,goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI,goog.userAgent.product.OPERA=goog.userAgent.OPERA,goog.userAgent.product.IE=goog.userAgent.IE,goog.userAgent.product.EDGE=goog.userAgent.EDGE,goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox(),goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()},goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_(),goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser(),goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome(),goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()},goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_(),goog.crypt.base64={},goog.crypt.base64.DEFAULT_ALPHABET_COMMON_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"+/=",goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"-_.",goog.crypt.base64.Alphabet={DEFAULT:0,NO_PADDING:1,WEBSAFE:2,WEBSAFE_DOT_PADDING:3,WEBSAFE_NO_PADDING:4},goog.crypt.base64.paddingChars_="=.",goog.crypt.base64.isPadding_=function(s){return goog.string.contains(goog.crypt.base64.paddingChars_,s)},goog.crypt.base64.byteToCharMaps_={},goog.crypt.base64.charToByteMap_=null,goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA,goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||typeof goog.global.btoa=="function",goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&typeof goog.global.atob=="function",goog.crypt.base64.encodeByteArray=function(s,o){goog.asserts.assert(goog.isArrayLike(s),"encodeByteArray takes an array as a parameter"),o===void 0&&(o=goog.crypt.base64.Alphabet.DEFAULT),goog.crypt.base64.init_(),o=goog.crypt.base64.byteToCharMaps_[o];for(var et=[],tt=0;tt>2;nt=(3&nt)<<4|it>>4,it=(15&it)<<2|st>>6,st&=63,ot||(st=64,rt||(it=64)),et.push(o[at],o[nt],o[it]||"",o[st]||"")}return et.join("")},goog.crypt.base64.encodeString=function(s,o){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!o?goog.global.btoa(s):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(s),o)},goog.crypt.base64.decodeString=function(s,o){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!o)return goog.global.atob(s);var et="";return goog.crypt.base64.decodeStringInternal_(s,function(tt){et+=String.fromCharCode(tt)}),et},goog.crypt.base64.decodeStringToByteArray=function(s,o){var et=[];return goog.crypt.base64.decodeStringInternal_(s,function(tt){et.push(tt)}),et},goog.crypt.base64.decodeStringToUint8Array=function(s){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var o=s.length,et=3*o/4;et%3?et=Math.floor(et):goog.crypt.base64.isPadding_(s[o-1])&&(et=goog.crypt.base64.isPadding_(s[o-2])?et-2:et-1);var tt=new Uint8Array(et),nt=0;return goog.crypt.base64.decodeStringInternal_(s,function(rt){tt[nt++]=rt}),tt.subarray(0,nt)},goog.crypt.base64.decodeStringInternal_=function(s,o){function et(st){for(;tt>4),it!=64&&(o(rt<<4&240|it>>2),ot!=64&&o(it<<6&192|ot))}},goog.crypt.base64.init_=function(){if(!goog.crypt.base64.charToByteMap_){goog.crypt.base64.charToByteMap_={};for(var s=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""),o=["+/=","+/","-_=","-_.","-_"],et=0;5>et;et++){var tt=s.concat(o[et].split(""));goog.crypt.base64.byteToCharMaps_[et]=tt;for(var nt=0;nt>>0;s=Math.floor((s-o)/jspb.BinaryConstants.TWO_TO_32)>>>0,jspb.utils.split64Low=o,jspb.utils.split64High=s},jspb.utils.splitInt64=function(s){var o=0>s,et=(s=Math.abs(s))>>>0;s=Math.floor((s-et)/jspb.BinaryConstants.TWO_TO_32),s>>>=0,o&&(s=~s>>>0,4294967295<(et=1+(~et>>>0))&&(et=0,4294967295<++s&&(s=0))),jspb.utils.split64Low=et,jspb.utils.split64High=s},jspb.utils.splitZigzag64=function(s){var o=0>s;s=2*Math.abs(s),jspb.utils.splitUint64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;o&&(s==0?et==0?et=s=4294967295:(et--,s=4294967295):s--),jspb.utils.split64Low=s,jspb.utils.split64High=et},jspb.utils.splitFloat32=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)0<1/s?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(s))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(s>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|2139095040)>>>0;else if(s>>0;else{var et=Math.floor(Math.log(s)/Math.LN2);s*=Math.pow(2,-et),s=8388607&Math.round(s*jspb.BinaryConstants.TWO_TO_23),jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|et+127<<23|s)>>>0}},jspb.utils.splitFloat64=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)jspb.utils.split64High=0<1/s?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(s))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(s>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(o<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(s>>0,jspb.utils.split64Low=et>>>0}else{var tt=0;if(2<=(et=s))for(;2<=et&&1023>tt;)tt++,et/=2;else for(;1>et&&-1022>>0,jspb.utils.split64High=(o<<31|tt+1023<<20|s)>>>0,jspb.utils.split64Low=et}},jspb.utils.splitHash64=function(s){var o=s.charCodeAt(0),et=s.charCodeAt(1),tt=s.charCodeAt(2),nt=s.charCodeAt(3),rt=s.charCodeAt(4),it=s.charCodeAt(5),ot=s.charCodeAt(6);s=s.charCodeAt(7),jspb.utils.split64Low=o+(et<<8)+(tt<<16)+(nt<<24)>>>0,jspb.utils.split64High=rt+(it<<8)+(ot<<16)+(s<<24)>>>0},jspb.utils.joinUint64=function(s,o){return o*jspb.BinaryConstants.TWO_TO_32+(s>>>0)},jspb.utils.joinInt64=function(s,o){var et=2147483648&o;return et&&(o=~o>>>0,(s=1+~s>>>0)==0&&(o=o+1>>>0)),s=jspb.utils.joinUint64(s,o),et?-s:s},jspb.utils.toZigzag64=function(s,o,et){var tt=o>>31;return et(s<<1^tt,(o<<1|s>>>31)^tt)},jspb.utils.joinZigzag64=function(s,o){return jspb.utils.fromZigzag64(s,o,jspb.utils.joinInt64)},jspb.utils.fromZigzag64=function(s,o,et){var tt=-(1&s);return et((s>>>1|o<<31)^tt,o>>>1^tt)},jspb.utils.joinFloat32=function(s,o){o=2*(s>>31)+1;var et=s>>>23&255;return s&=8388607,et==255?s?NaN:1/0*o:et==0?o*Math.pow(2,-149)*s:o*Math.pow(2,et-150)*(s+Math.pow(2,23))},jspb.utils.joinFloat64=function(s,o){var et=2*(o>>31)+1,tt=o>>>20&2047;return s=jspb.BinaryConstants.TWO_TO_32*(1048575&o)+s,tt==2047?s?NaN:1/0*et:tt==0?et*Math.pow(2,-1074)*s:et*Math.pow(2,tt-1075)*(s+jspb.BinaryConstants.TWO_TO_52)},jspb.utils.joinHash64=function(s,o){return String.fromCharCode(s>>>0&255,s>>>8&255,s>>>16&255,s>>>24&255,o>>>0&255,o>>>8&255,o>>>16&255,o>>>24&255)},jspb.utils.DIGITS="0123456789abcdef".split(""),jspb.utils.ZERO_CHAR_CODE_=48,jspb.utils.A_CHAR_CODE_=97,jspb.utils.joinUnsignedDecimalString=function(s,o){function et(nt,rt){return nt=nt?String(nt):"",rt?"0000000".slice(nt.length)+nt:nt}if(2097151>=o)return""+(jspb.BinaryConstants.TWO_TO_32*o+s);var tt=(s>>>24|o<<8)>>>0&16777215;return s=(16777215&s)+6777216*tt+6710656*(o=o>>16&65535),tt+=8147497*o,o*=2,1e7<=s&&(tt+=Math.floor(s/1e7),s%=1e7),1e7<=tt&&(o+=Math.floor(tt/1e7),tt%=1e7),et(o,0)+et(tt,o)+et(s,1)},jspb.utils.joinSignedDecimalString=function(s,o){var et=2147483648&o;return et&&(o=~o+((s=1+~s>>>0)==0?1:0)>>>0),s=jspb.utils.joinUnsignedDecimalString(s,o),et?"-"+s:s},jspb.utils.hash64ToDecimalString=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinSignedDecimalString(s,et):jspb.utils.joinUnsignedDecimalString(s,et)},jspb.utils.hash64ArrayToDecimalStrings=function(s,o){for(var et=Array(s.length),tt=0;ttot&&(rt!==1||0>>=8}goog.asserts.assert(0rt;rt++)tt[rt]=255&~tt[rt]}(),o(1,1)),goog.crypt.byteArrayToString(tt)},jspb.utils.splitDecimalString=function(s){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(s))},jspb.utils.toHexDigit_=function(s){return String.fromCharCode(10>s?jspb.utils.ZERO_CHAR_CODE_+s:jspb.utils.A_CHAR_CODE_-10+s)},jspb.utils.fromHexCharCode_=function(s){return s>=jspb.utils.A_CHAR_CODE_?s-jspb.utils.A_CHAR_CODE_+10:s-jspb.utils.ZERO_CHAR_CODE_},jspb.utils.hash64ToHexString=function(s){var o=Array(18);o[0]="0",o[1]="x";for(var et=0;8>et;et++){var tt=s.charCodeAt(7-et);o[2*et+2]=jspb.utils.toHexDigit_(tt>>4),o[2*et+3]=jspb.utils.toHexDigit_(15&tt)}return o.join("")},jspb.utils.hexStringToHash64=function(s){s=s.toLowerCase(),goog.asserts.assert(s.length==18),goog.asserts.assert(s[0]=="0"),goog.asserts.assert(s[1]=="x");for(var o="",et=0;8>et;et++){var tt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+2)),nt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+3));o=String.fromCharCode(16*tt+nt)+o}return o},jspb.utils.hash64ToNumber=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinInt64(s,et):jspb.utils.joinUint64(s,et)},jspb.utils.numberToHash64=function(s){return jspb.utils.splitInt64(s),jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.utils.countVarints=function(s,o,et){for(var tt=0,nt=o;nt>7;return et-o-tt},jspb.utils.countVarintFields=function(s,o,et,tt){var nt=0;if(128>(tt=8*tt+jspb.BinaryConstants.WireType.VARINT))for(;o>=7}if(s[o++]!=rt)break;for(nt++;128&(rt=s[o++]););}return nt},jspb.utils.countFixedFields_=function(s,o,et,tt,nt){var rt=0;if(128>tt)for(;o>=7}if(s[o++]!=it)break;rt++,o+=nt}return rt},jspb.utils.countFixed32Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED32,4)},jspb.utils.countFixed64Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED64,8)},jspb.utils.countDelimitedFields=function(s,o,et,tt){var nt=0;for(tt=8*tt+jspb.BinaryConstants.WireType.DELIMITED;o>=7}if(s[o++]!=rt)break;nt++;for(var it=0,ot=1;it+=(127&(rt=s[o++]))*ot,ot*=128,(128&rt)!=0;);o+=it}return nt},jspb.utils.debugBytesToTextFormat=function(s){var o='"';if(s){s=jspb.utils.byteSourceToUint8Array(s);for(var et=0;ets[et]&&(o+="0"),o+=s[et].toString(16)}return o+'"'},jspb.utils.debugScalarToTextFormat=function(s){return typeof s=="string"?goog.string.quote(s):s.toString()},jspb.utils.stringToByteArray=function(s){for(var o=new Uint8Array(s.length),et=0;etjspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)},jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)},jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1},jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_},jspb.BinaryDecoder.prototype.setBlock=function(s,o,et){this.bytes_=jspb.utils.byteSourceToUint8Array(s),this.start_=o!==void 0?o:0,this.end_=et!==void 0?this.start_+et:this.bytes_.length,this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_},jspb.BinaryDecoder.prototype.setEnd=function(s){this.end_=s},jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_},jspb.BinaryDecoder.prototype.setCursor=function(s){this.cursor_=s},jspb.BinaryDecoder.prototype.advance=function(s){this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_)},jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_},jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_},jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_},jspb.BinaryDecoder.prototype.readSplitVarint64=function(s){for(var o=128,et=0,tt=0,nt=0;4>nt&&128<=o;nt++)et|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt;if(128<=o&&(et|=(127&(o=this.bytes_[this.cursor_++]))<<28,tt|=(127&o)>>4),128<=o)for(nt=0;5>nt&&128<=o;nt++)tt|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt+3;if(128>o)return s(et>>>0,tt>>>0);goog.asserts.fail("Failed to read varint, encoding is invalid."),this.error_=!0},jspb.BinaryDecoder.prototype.readSplitZigzagVarint64=function(s){return this.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryDecoder.prototype.readSplitFixed64=function(s){var o=this.bytes_,et=this.cursor_;this.cursor_+=8;for(var tt=0,nt=0,rt=et+7;rt>=et;rt--)tt=tt<<8|o[rt],nt=nt<<8|o[rt+4];return s(tt,nt)},jspb.BinaryDecoder.prototype.skipVarint=function(){for(;128&this.bytes_[this.cursor_];)this.cursor_++;this.cursor_++},jspb.BinaryDecoder.prototype.unskipVarint=function(s){for(;128>>=7;this.cursor_--},jspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var s=this.bytes_,o=s[this.cursor_+0],et=127&o;return 128>o?(this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+1]))<<7,128>o?(this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+2]))<<14,128>o?(this.cursor_+=3,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+3]))<<21,128>o?(this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(15&(o=s[this.cursor_+4]))<<28,128>o?(this.cursor_+=5,goog.asserts.assert(this.cursor_<=this.end_),et>>>0):(this.cursor_+=5,128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&goog.asserts.assert(!1),goog.asserts.assert(this.cursor_<=this.end_),et)))))},jspb.BinaryDecoder.prototype.readSignedVarint32=jspb.BinaryDecoder.prototype.readUnsignedVarint32,jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()},jspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()},jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var s=this.readUnsignedVarint32();return s>>>1^-(1&s)},jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinUint64)},jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString)},jspb.BinaryDecoder.prototype.readSignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinInt64)},jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){return this.readSplitVarint64(jspb.utils.joinZigzag64)},jspb.BinaryDecoder.prototype.readZigzagVarintHash64=function(){return this.readSplitZigzagVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readUint8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s},jspb.BinaryDecoder.prototype.readUint16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8},jspb.BinaryDecoder.prototype.readUint32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8|et<<16|tt<<24)>>>0},jspb.BinaryDecoder.prototype.readUint64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUint64(s,o)},jspb.BinaryDecoder.prototype.readUint64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUnsignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readInt8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s<<24>>24},jspb.BinaryDecoder.prototype.readInt16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8)<<16>>16},jspb.BinaryDecoder.prototype.readInt32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8|et<<16|tt<<24},jspb.BinaryDecoder.prototype.readInt64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinInt64(s,o)},jspb.BinaryDecoder.prototype.readInt64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinSignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readFloat=function(){var s=this.readUint32();return jspb.utils.joinFloat32(s,0)},jspb.BinaryDecoder.prototype.readDouble=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinFloat64(s,o)},jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]},jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()},jspb.BinaryDecoder.prototype.readString=function(s){var o=this.bytes_,et=this.cursor_;s=et+s;for(var tt=[],nt="";etrt)tt.push(rt);else{if(192>rt)continue;if(224>rt){var it=o[et++];tt.push((31&rt)<<6|63&it)}else if(240>rt){it=o[et++];var ot=o[et++];tt.push((15&rt)<<12|(63&it)<<6|63&ot)}else 248>rt&&(rt=(7&rt)<<18|(63&(it=o[et++]))<<12|(63&(ot=o[et++]))<<6|63&o[et++],rt-=65536,tt.push(55296+(rt>>10&1023),56320+(1023&rt)))}8192<=tt.length&&(nt+=String.fromCharCode.apply(null,tt),tt.length=0)}return nt+=goog.crypt.byteArrayToString(tt),this.cursor_=et,nt},jspb.BinaryDecoder.prototype.readStringWithLength=function(){var s=this.readUnsignedVarint32();return this.readString(s)},jspb.BinaryDecoder.prototype.readBytes=function(s){if(0>s||this.cursor_+s>this.bytes_.length)return this.error_=!0,goog.asserts.fail("Invalid byte length!"),new Uint8Array(0);var o=this.bytes_.subarray(this.cursor_,this.cursor_+s);return this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_),o},jspb.BinaryDecoder.prototype.readVarintHash64=function(){return this.readSplitVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readFixedHash64=function(){var s=this.bytes_,o=this.cursor_,et=s[o+0],tt=s[o+1],nt=s[o+2],rt=s[o+3],it=s[o+4],ot=s[o+5],st=s[o+6];return s=s[o+7],this.cursor_+=8,String.fromCharCode(et,tt,nt,rt,it,ot,st,s)},jspb.BinaryReader=function(s,o,et){this.decoder_=jspb.BinaryDecoder.alloc(s,o,et),this.fieldCursor_=this.decoder_.getCursor(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null},jspb.BinaryReader.instanceCache_=[],jspb.BinaryReader.alloc=function(s,o,et){if(jspb.BinaryReader.instanceCache_.length){var tt=jspb.BinaryReader.instanceCache_.pop();return s&&tt.decoder_.setBlock(s,o,et),tt}return new jspb.BinaryReader(s,o,et)},jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc,jspb.BinaryReader.prototype.free=function(){this.decoder_.clear(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null,100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)},jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_},jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()},jspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()},jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_},jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_},jspb.BinaryReader.prototype.isDelimited=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED},jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP},jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()},jspb.BinaryReader.prototype.setBlock=function(s,o,et){this.decoder_.setBlock(s,o,et),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.advance=function(s){this.decoder_.advance(s)},jspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return goog.asserts.fail("Decoder hit an error"),!1;this.fieldCursor_=this.decoder_.getCursor();var s=this.decoder_.readUnsignedVarint32(),o=s>>>3;return(s&=7)!=jspb.BinaryConstants.WireType.VARINT&&s!=jspb.BinaryConstants.WireType.FIXED32&&s!=jspb.BinaryConstants.WireType.FIXED64&&s!=jspb.BinaryConstants.WireType.DELIMITED&&s!=jspb.BinaryConstants.WireType.START_GROUP&&s!=jspb.BinaryConstants.WireType.END_GROUP?(goog.asserts.fail("Invalid wire type: %s (at position %s)",s,this.fieldCursor_),this.error_=!0,!1):(this.nextField_=o,this.nextWireType_=s,!0)},jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)},jspb.BinaryReader.prototype.skipMatchingFields=function(){var s=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==s;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()},jspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(goog.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()},jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)goog.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField();else{var s=this.decoder_.readUnsignedVarint32();this.decoder_.advance(s)}},jspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(goog.asserts.fail("Invalid wire type for skipFixed32Field"),this.skipField()):this.decoder_.advance(4)},jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(goog.asserts.fail("Invalid wire type for skipFixed64Field"),this.skipField()):this.decoder_.advance(8)},jspb.BinaryReader.prototype.skipGroup=function(){for(var s=this.nextField_;;){if(!this.nextField()){goog.asserts.fail("Unmatched start-group tag: stream EOF"),this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP){this.nextField_!=s&&(goog.asserts.fail("Unmatched end-group tag"),this.error_=!0);break}this.skipField()}},jspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:goog.asserts.fail("Invalid wire encoding for field.")}},jspb.BinaryReader.prototype.registerReadCallback=function(s,o){this.readCallbacks_===null&&(this.readCallbacks_={}),goog.asserts.assert(!this.readCallbacks_[s]),this.readCallbacks_[s]=o},jspb.BinaryReader.prototype.runReadCallback=function(s){return goog.asserts.assert(this.readCallbacks_!==null),s=this.readCallbacks_[s],goog.asserts.assert(s),s(this)},jspb.BinaryReader.prototype.readAny=function(s){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(s);var o=jspb.BinaryConstants.FieldType;switch(s){case o.DOUBLE:return this.readDouble();case o.FLOAT:return this.readFloat();case o.INT64:return this.readInt64();case o.UINT64:return this.readUint64();case o.INT32:return this.readInt32();case o.FIXED64:return this.readFixed64();case o.FIXED32:return this.readFixed32();case o.BOOL:return this.readBool();case o.STRING:return this.readString();case o.GROUP:goog.asserts.fail("Group field type not supported in readAny()");case o.MESSAGE:goog.asserts.fail("Message field type not supported in readAny()");case o.BYTES:return this.readBytes();case o.UINT32:return this.readUint32();case o.ENUM:return this.readEnum();case o.SFIXED32:return this.readSfixed32();case o.SFIXED64:return this.readSfixed64();case o.SINT32:return this.readSint32();case o.SINT64:return this.readSint64();case o.FHASH64:return this.readFixedHash64();case o.VHASH64:return this.readVarintHash64();default:goog.asserts.fail("Invalid field type in readAny()")}return 0},jspb.BinaryReader.prototype.readMessage=function(s,o){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var et=this.decoder_.getEnd(),tt=this.decoder_.readUnsignedVarint32();tt=this.decoder_.getCursor()+tt,this.decoder_.setEnd(tt),o(s,this),this.decoder_.setCursor(tt),this.decoder_.setEnd(et)},jspb.BinaryReader.prototype.readGroup=function(s,o,et){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP),goog.asserts.assert(this.nextField_==s),et(o,this),this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(goog.asserts.fail("Group submessage did not end with an END_GROUP tag"),this.error_=!0)},jspb.BinaryReader.prototype.getFieldDecoder=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32(),o=this.decoder_.getCursor(),et=o+s;return s=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),o,s),this.decoder_.setCursor(et),s},jspb.BinaryReader.prototype.readInt32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32()},jspb.BinaryReader.prototype.readInt32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32String()},jspb.BinaryReader.prototype.readInt64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readInt64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64String()},jspb.BinaryReader.prototype.readUint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readUint32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32String()},jspb.BinaryReader.prototype.readUint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64()},jspb.BinaryReader.prototype.readUint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64String()},jspb.BinaryReader.prototype.readSint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint32()},jspb.BinaryReader.prototype.readSint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64()},jspb.BinaryReader.prototype.readSint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64String()},jspb.BinaryReader.prototype.readFixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readUint32()},jspb.BinaryReader.prototype.readFixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64()},jspb.BinaryReader.prototype.readFixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64String()},jspb.BinaryReader.prototype.readSfixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32()},jspb.BinaryReader.prototype.readSfixed32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32().toString()},jspb.BinaryReader.prototype.readSfixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64()},jspb.BinaryReader.prototype.readSfixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64String()},jspb.BinaryReader.prototype.readFloat=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readFloat()},jspb.BinaryReader.prototype.readDouble=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readDouble()},jspb.BinaryReader.prototype.readBool=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),!!this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readEnum=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readString=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(s)},jspb.BinaryReader.prototype.readBytes=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(s)},jspb.BinaryReader.prototype.readVarintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readVarintHash64()},jspb.BinaryReader.prototype.readSintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarintHash64()},jspb.BinaryReader.prototype.readSplitVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(s)},jspb.BinaryReader.prototype.readSplitZigzagVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryReader.prototype.readFixedHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readFixedHash64()},jspb.BinaryReader.prototype.readSplitFixed64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readSplitFixed64(s)},jspb.BinaryReader.prototype.readPackedField_=function(s){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var o=this.decoder_.readUnsignedVarint32();o=this.decoder_.getCursor()+o;for(var et=[];this.decoder_.getCursor()o.length?et.length:o.length;for(s.getJsPbMessageId()&&(tt[0]=s.getJsPbMessageId(),nt=1);nt>>1|(1&this.hi)<<31)>>>0,this.hi>>>1>>>0)},jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)},jspb.arith.UInt64.prototype.msb=function(){return!!(2147483648&this.hi)},jspb.arith.UInt64.prototype.lsb=function(){return!!(1&this.lo)},jspb.arith.UInt64.prototype.zero=function(){return this.lo==0&&this.hi==0},jspb.arith.UInt64.prototype.add=function(s){return new jspb.arith.UInt64((this.lo+s.lo&4294967295)>>>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.UInt64.prototype.sub=function(s){return new jspb.arith.UInt64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.UInt64.mul32x32=function(s,o){var et=65535&s,tt=65535&o,nt=o>>>16;for(o=et*tt+65536*(et*nt&65535)+65536*((s>>>=16)*tt&65535),et=s*nt+(et*nt>>>16)+(s*tt>>>16);4294967296<=o;)o-=4294967296,et+=1;return new jspb.arith.UInt64(o>>>0,et>>>0)},jspb.arith.UInt64.prototype.mul=function(s){var o=jspb.arith.UInt64.mul32x32(this.lo,s);return(s=jspb.arith.UInt64.mul32x32(this.hi,s)).hi=s.lo,s.lo=0,o.add(s)},jspb.arith.UInt64.prototype.div=function(s){if(s==0)return[];var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(this.lo,this.hi);s=new jspb.arith.UInt64(s,0);for(var tt=new jspb.arith.UInt64(1,0);!s.msb();)s=s.leftShift(),tt=tt.leftShift();for(;!tt.zero();)0>=s.cmp(et)&&(o=o.add(tt),et=et.sub(s)),s=s.rightShift(),tt=tt.rightShift();return[o,et]},jspb.arith.UInt64.prototype.toString=function(){for(var s="",o=this;!o.zero();){var et=(o=o.div(10))[0];s=o[1].lo+s,o=et}return s==""&&(s="0"),s},jspb.arith.UInt64.fromString=function(s){for(var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(0,0),tt=0;tts[tt]||"9">>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.sub=function(s){return new jspb.arith.Int64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)},jspb.arith.Int64.prototype.toString=function(){var s=(2147483648&this.hi)!=0,o=new jspb.arith.UInt64(this.lo,this.hi);return s&&(o=new jspb.arith.UInt64(0,0).sub(o)),(s?"-":"")+o.toString()},jspb.arith.Int64.fromString=function(s){var o=0>>7|o<<25)>>>0,o>>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSplitFixed64=function(s,o){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(o==Math.floor(o)),goog.asserts.assert(0<=s&&s>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSignedVarint32=function(s){if(goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&so;o++)this.buffer_.push(127&s|128),s>>=7;this.buffer_.push(1)}},jspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_31&&s>31)>>>0)},jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s>>0,tt>>>0)})},jspb.BinaryEncoder.prototype.writeUint8=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&256>s),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeUint16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&65536>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeUint32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeUint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&ss),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeInt16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(-32768<=s&&32768>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeInt32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeInt64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_63&&+s=-jspb.BinaryConstants.FLOAT32_MAX&&s<=jspb.BinaryConstants.FLOAT32_MAX),jspb.utils.splitFloat32(s),this.writeUint32(jspb.utils.split64Low)},jspb.BinaryEncoder.prototype.writeDouble=function(s){goog.asserts.assert(1/0===s||-1/0===s||isNaN(s)||s>=-jspb.BinaryConstants.FLOAT64_MAX&&s<=jspb.BinaryConstants.FLOAT64_MAX),jspb.utils.splitFloat64(s),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeBool=function(s){goog.asserts.assert(typeof s=="boolean"||typeof s=="number"),this.buffer_.push(s?1:0)},jspb.BinaryEncoder.prototype.writeEnum=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&stt)this.buffer_.push(tt);else if(2048>tt)this.buffer_.push(tt>>6|192),this.buffer_.push(63&tt|128);else if(65536>tt)if(55296<=tt&&56319>=tt&&et+1=nt&&(tt=1024*(tt-55296)+nt-56320+65536,this.buffer_.push(tt>>18|240),this.buffer_.push(tt>>12&63|128),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128),et++)}else this.buffer_.push(tt>>12|224),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128)}return this.buffer_.length-o},jspb.BinaryWriter=function(){this.blocks_=[],this.totalLength_=0,this.encoder_=new jspb.BinaryEncoder,this.bookmarks_=[]},jspb.BinaryWriter.prototype.appendUint8Array_=function(s){var o=this.encoder_.end();this.blocks_.push(o),this.blocks_.push(s),this.totalLength_+=o.length+s.length},jspb.BinaryWriter.prototype.beginDelimited_=function(s){return this.writeFieldHeader_(s,jspb.BinaryConstants.WireType.DELIMITED),s=this.encoder_.end(),this.blocks_.push(s),this.totalLength_+=s.length,s.push(this.totalLength_),s},jspb.BinaryWriter.prototype.endDelimited_=function(s){var o=s.pop();for(o=this.totalLength_+this.encoder_.length()-o,goog.asserts.assert(0<=o);127>>=7,this.totalLength_++;s.push(o),this.totalLength_++},jspb.BinaryWriter.prototype.writeSerializedMessage=function(s,o,et){this.appendUint8Array_(s.subarray(o,et))},jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(s,o,et){s!=null&&o!=null&&et!=null&&this.writeSerializedMessage(s,o,et)},jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[],this.encoder_.end(),this.totalLength_=0,this.bookmarks_=[]},jspb.BinaryWriter.prototype.getResultBuffer=function(){goog.asserts.assert(this.bookmarks_.length==0);for(var s=new Uint8Array(this.totalLength_+this.encoder_.length()),o=this.blocks_,et=o.length,tt=0,nt=0;nt=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o>>0,rt>>>0)})},jspb.BinaryWriter.prototype.writeRepeatedInt32=function(s,o){if(o!=null)for(var et=0;et>>0,ot>>>0)});this.endDelimited_(s)}},jspb.BinaryWriter.prototype.writePackedInt64String=function(s,o){if(o!=null&&o.length){s=this.beginDelimited_(s);for(var et=0;et-1};function ct(xt){if(typeof xt!="string"&&(xt=String(xt)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(xt))throw new TypeError("Invalid character in header field name");return xt.toLowerCase()}function pt(xt){return typeof xt!="string"&&(xt=String(xt)),xt}function ft(xt){var Ct={next:function(){var kt=xt.shift();return{done:kt===void 0,value:kt}}};return st&&(Ct[Symbol.iterator]=function(){return Ct}),Ct}function gt(xt){this.map={},xt instanceof gt?xt.forEach(function(Ct,kt){this.append(kt,Ct)},this):Array.isArray(xt)?xt.forEach(function(Ct){this.append(Ct[0],Ct[1])},this):xt&&Object.getOwnPropertyNames(xt).forEach(function(Ct){this.append(Ct,xt[Ct])},this)}function yt(xt){if(xt.bodyUsed)return Promise.reject(new TypeError("Already read"));xt.bodyUsed=!0}function Ut(xt){return new Promise(function(Ct,kt){xt.onload=function(){Ct(xt.result)},xt.onerror=function(){kt(xt.error)}})}function Ft(xt){var Ct=new FileReader,kt=Ut(Ct);return Ct.readAsArrayBuffer(xt),kt}function mt(xt){if(xt.slice)return xt.slice(0);var Ct=new Uint8Array(xt.byteLength);return Ct.set(new Uint8Array(xt)),Ct.buffer}function vt(){return this.bodyUsed=!1,this._initBody=function(xt){var Ct;this._bodyInit=xt,xt?typeof xt=="string"?this._bodyText=xt:at&&Blob.prototype.isPrototypeOf(xt)?this._bodyBlob=xt:lt&&FormData.prototype.isPrototypeOf(xt)?this._bodyFormData=xt:ot&&URLSearchParams.prototype.isPrototypeOf(xt)?this._bodyText=xt.toString():ut&&at&&(Ct=xt)&&DataView.prototype.isPrototypeOf(Ct)?(this._bodyArrayBuffer=mt(xt.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):ut&&(ArrayBuffer.prototype.isPrototypeOf(xt)||ht(xt))?this._bodyArrayBuffer=mt(xt):this._bodyText=xt=Object.prototype.toString.call(xt):this._bodyText="",this.headers.get("content-type")||(typeof xt=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):ot&&URLSearchParams.prototype.isPrototypeOf(xt)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},at&&(this.blob=function(){var xt=yt(this);if(xt)return xt;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?yt(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(Ft)}),this.text=function(){var xt,Ct,kt,Nt=yt(this);if(Nt)return Nt;if(this._bodyBlob)return xt=this._bodyBlob,Ct=new FileReader,kt=Ut(Ct),Ct.readAsText(xt),kt;if(this._bodyArrayBuffer)return Promise.resolve(function(Ot){for(var Wt=new Uint8Array(Ot),Dt=new Array(Wt.length),Et=0;Et-1?Nt:kt),this.mode=Ct.mode||this.mode||null,this.signal=Ct.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Ot)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(Ot)}function Rt(xt){var Ct=new FormData;return xt.trim().split("&").forEach(function(kt){if(kt){var Nt=kt.split("="),Ot=Nt.shift().replace(/\+/g," "),Wt=Nt.join("=").replace(/\+/g," ");Ct.append(decodeURIComponent(Ot),decodeURIComponent(Wt))}}),Ct}function St(xt,Ct){Ct||(Ct={}),this.type="default",this.status=Ct.status===void 0?200:Ct.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in Ct?Ct.statusText:"OK",this.headers=new gt(Ct.headers),this.url=Ct.url||"",this._initBody(xt)}Lt.prototype.clone=function(){return new Lt(this,{body:this._bodyInit})},vt.call(Lt.prototype),vt.call(St.prototype),St.prototype.clone=function(){return new St(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new gt(this.headers),url:this.url})},St.error=function(){var xt=new St(null,{status:0,statusText:""});return xt.type="error",xt};var Tt=[301,302,303,307,308];St.redirect=function(xt,Ct){if(Tt.indexOf(Ct)===-1)throw new RangeError("Invalid status code");return new St(null,{status:Ct,headers:{location:xt}})},it.DOMException=rt.DOMException;try{new it.DOMException}catch{it.DOMException=function(xt,Ct){this.message=xt,this.name=Ct;var kt=Error(xt);this.stack=kt.stack},it.DOMException.prototype=Object.create(Error.prototype),it.DOMException.prototype.constructor=it.DOMException}function Bt(xt,Ct){return new Promise(function(kt,Nt){var Ot=new Lt(xt,Ct);if(Ot.signal&&Ot.signal.aborted)return Nt(new it.DOMException("Aborted","AbortError"));var Wt=new XMLHttpRequest;function Dt(){Wt.abort()}Wt.onload=function(){var Et,Pt,zt={status:Wt.status,statusText:Wt.statusText,headers:(Et=Wt.getAllResponseHeaders()||"",Pt=new gt,Et.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(Kt){var nn=Kt.split(":"),Zt=nn.shift().trim();if(Zt){var jt=nn.join(":").trim();Pt.append(Zt,jt)}}),Pt)};zt.url="responseURL"in Wt?Wt.responseURL:zt.headers.get("X-Request-URL");var en="response"in Wt?Wt.response:Wt.responseText;kt(new St(en,zt))},Wt.onerror=function(){Nt(new TypeError("Network request failed"))},Wt.ontimeout=function(){Nt(new TypeError("Network request failed"))},Wt.onabort=function(){Nt(new it.DOMException("Aborted","AbortError"))},Wt.open(Ot.method,Ot.url,!0),Ot.credentials==="include"?Wt.withCredentials=!0:Ot.credentials==="omit"&&(Wt.withCredentials=!1),"responseType"in Wt&&at&&(Wt.responseType="blob"),Ot.headers.forEach(function(Et,Pt){Wt.setRequestHeader(Pt,Et)}),Ot.signal&&(Ot.signal.addEventListener("abort",Dt),Wt.onreadystatechange=function(){Wt.readyState===4&&Ot.signal.removeEventListener("abort",Dt)}),Wt.send(Ot._bodyInit===void 0?null:Ot._bodyInit)})}Bt.polyfill=!0,rt.fetch||(rt.fetch=Bt,rt.Headers=gt,rt.Request=Lt,rt.Response=St),it.Headers=gt,it.Request=Lt,it.Response=St,it.fetch=Bt,Object.defineProperty(it,"__esModule",{value:!0})})({})})(tt),tt.fetch.ponyfill=!0,delete tt.fetch.polyfill;var nt=tt;(o=nt.fetch).default=nt.fetch,o.fetch=nt.fetch,o.Headers=nt.Headers,o.Request=nt.Request,o.Response=nt.Response,s.exports=o},function(s,o,et){(function(tt){const nt=et(216),rt=et(51),it=(ot,st,at)=>({from:it,EnvVarError:et(51),get:function(lt){if(!lt)return ot;if(arguments.length>1)throw new rt("It looks like you passed more than one argument to env.get(). Since env-var@6.0.0 this is no longer supported. To set a default value use env.get(TARGET).default(DEFAULT)");return nt(ot,lt,st||{},at||function(){})},accessors:et(93),logger:et(230)(console.log,ot.NODE_ENV)});s.exports=it(tt===void 0?{}:tt.env)}).call(this,et(2))},function(s,o,et){(function(tt){const nt=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,rt=typeof AbortController=="function"?AbortController:class{constructor(){this.signal=new st}abort(){this.signal.dispatchEvent("abort")}},it=typeof AbortSignal=="function",ot=typeof rt.AbortSignal=="function",st=it?AbortSignal:ot?rt.AbortController:class{constructor(){this.aborted=!1,this._listeners=[]}dispatchEvent(Ft){if(Ft==="abort"){this.aborted=!0;const mt={type:Ft,target:this};this.onabort(mt),this._listeners.forEach(vt=>vt(mt),this)}}onabort(){}addEventListener(Ft,mt){Ft==="abort"&&this._listeners.push(mt)}removeEventListener(Ft,mt){Ft==="abort"&&(this._listeners=this._listeners.filter(vt=>vt!==mt))}},at=new Set,lt=(Ft,mt)=>{const vt="LRU_CACHE_OPTION_"+Ft;ht(vt)&&ct(vt,Ft+" option","options."+mt,Ut)},ut=(Ft,mt)=>{const vt="LRU_CACHE_METHOD_"+Ft;if(ht(vt)){const{prototype:At}=Ut,{get:Lt}=Object.getOwnPropertyDescriptor(At,Ft);ct(vt,Ft+" method",`cache.${mt}()`,Lt)}},dt=(...Ft)=>{typeof tt=="object"&&tt&&typeof tt.emitWarning=="function"?tt.emitWarning(...Ft):console.error(...Ft)},ht=Ft=>!at.has(Ft),ct=(Ft,mt,vt,At)=>{at.add(Ft),dt(`The ${mt} is deprecated. Please use ${vt} instead.`,"DeprecationWarning",Ft,At)},pt=Ft=>Ft&&Ft===Math.floor(Ft)&&Ft>0&&isFinite(Ft),ft=Ft=>pt(Ft)?Ft<=Math.pow(2,8)?Uint8Array:Ft<=Math.pow(2,16)?Uint16Array:Ft<=Math.pow(2,32)?Uint32Array:Ft<=Number.MAX_SAFE_INTEGER?gt:null:null;class gt extends Array{constructor(mt){super(mt),this.fill(0)}}class yt{constructor(mt){if(mt===0)return[];const vt=ft(mt);this.heap=new vt(mt),this.length=0}push(mt){this.heap[this.length++]=mt}pop(){return this.heap[--this.length]}}class Ut{constructor(mt={}){const{max:vt=0,ttl:At,ttlResolution:Lt=1,ttlAutopurge:Rt,updateAgeOnGet:St,updateAgeOnHas:Tt,allowStale:Bt,dispose:xt,disposeAfter:Ct,noDisposeOnSet:kt,noUpdateTTL:Nt,maxSize:Ot=0,maxEntrySize:Wt=0,sizeCalculation:Dt,fetchMethod:Et,fetchContext:Pt,noDeleteOnFetchRejection:zt,noDeleteOnStaleGet:en}=mt,{length:Kt,maxAge:nn,stale:Zt}=mt instanceof Ut?{}:mt;if(vt!==0&&!pt(vt))throw new TypeError("max option must be a nonnegative integer");const jt=vt?ft(vt):Array;if(!jt)throw new Error("invalid max value: "+vt);if(this.max=vt,this.maxSize=Ot,this.maxEntrySize=Wt||this.maxSize,this.sizeCalculation=Dt||Kt,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=Et||null,this.fetchMethod&&typeof this.fetchMethod!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=Pt,!this.fetchMethod&&Pt!==void 0)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(vt).fill(null),this.valList=new Array(vt).fill(null),this.next=new jt(vt),this.prev=new jt(vt),this.head=0,this.tail=0,this.free=new yt(vt),this.initialFill=1,this.size=0,typeof xt=="function"&&(this.dispose=xt),typeof Ct=="function"?(this.disposeAfter=Ct,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!kt,this.noUpdateTTL=!!Nt,this.noDeleteOnFetchRejection=!!zt,this.maxEntrySize!==0){if(this.maxSize!==0&&!pt(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!pt(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!Bt||!!Zt,this.noDeleteOnStaleGet=!!en,this.updateAgeOnGet=!!St,this.updateAgeOnHas=!!Tt,this.ttlResolution=pt(Lt)||Lt===0?Lt:1,this.ttlAutopurge=!!Rt,this.ttl=At||nn||0,this.ttl){if(!pt(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(this.max===0&&this.ttl===0&&this.maxSize===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const Vt="LRU_CACHE_UNBOUNDED";ht(Vt)&&(at.add(Vt),dt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Vt,Ut))}Zt&<("stale","allowStale"),nn&<("maxAge","ttl"),Kt&<("length","sizeCalculation")}getRemainingTTL(mt){return this.has(mt,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new gt(this.max),this.starts=new gt(this.max),this.setItemTTL=(At,Lt,Rt=nt.now())=>{if(this.starts[At]=Lt!==0?Rt:0,this.ttls[At]=Lt,Lt!==0&&this.ttlAutopurge){const St=setTimeout(()=>{this.isStale(At)&&this.delete(this.keyList[At])},Lt+1);St.unref&&St.unref()}},this.updateItemAge=At=>{this.starts[At]=this.ttls[At]!==0?nt.now():0};let mt=0;const vt=()=>{const At=nt.now();if(this.ttlResolution>0){mt=At;const Lt=setTimeout(()=>mt=0,this.ttlResolution);Lt.unref&&Lt.unref()}return At};this.getRemainingTTL=At=>{const Lt=this.keyMap.get(At);return Lt===void 0?0:this.ttls[Lt]===0||this.starts[Lt]===0?1/0:this.starts[Lt]+this.ttls[Lt]-(mt||vt())},this.isStale=At=>this.ttls[At]!==0&&this.starts[At]!==0&&(mt||vt())-this.starts[At]>this.ttls[At]}updateItemAge(mt){}setItemTTL(mt,vt,At){}isStale(mt){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new gt(this.max),this.removeItemSize=mt=>{this.calculatedSize-=this.sizes[mt],this.sizes[mt]=0},this.requireSize=(mt,vt,At,Lt)=>{if(!pt(At)){if(!Lt)throw new TypeError("invalid size value (must be positive integer)");if(typeof Lt!="function")throw new TypeError("sizeCalculation must be a function");if(At=Lt(vt,mt),!pt(At))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return At},this.addItemSize=(mt,vt)=>{this.sizes[mt]=vt;const At=this.maxSize-this.sizes[mt];for(;this.calculatedSize>At;)this.evict(!0);this.calculatedSize+=this.sizes[mt]}}removeItemSize(mt){}addItemSize(mt,vt){}requireSize(mt,vt,At,Lt){if(At||Lt)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.tail;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.head);)vt=this.prev[vt]}*rindexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.head;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.tail);)vt=this.next[vt]}isValidIndex(mt){return this.keyMap.get(this.keyList[mt])===mt}*entries(){for(const mt of this.indexes())yield[this.keyList[mt],this.valList[mt]]}*rentries(){for(const mt of this.rindexes())yield[this.keyList[mt],this.valList[mt]]}*keys(){for(const mt of this.indexes())yield this.keyList[mt]}*rkeys(){for(const mt of this.rindexes())yield this.keyList[mt]}*values(){for(const mt of this.indexes())yield this.valList[mt]}*rvalues(){for(const mt of this.rindexes())yield this.valList[mt]}[Symbol.iterator](){return this.entries()}find(mt,vt={}){for(const At of this.indexes())if(mt(this.valList[At],this.keyList[At],this))return this.get(this.keyList[At],vt)}forEach(mt,vt=this){for(const At of this.indexes())mt.call(vt,this.valList[At],this.keyList[At],this)}rforEach(mt,vt=this){for(const At of this.rindexes())mt.call(vt,this.valList[At],this.keyList[At],this)}get prune(){return ut("prune","purgeStale"),this.purgeStale}purgeStale(){let mt=!1;for(const vt of this.rindexes({allowStale:!0}))this.isStale(vt)&&(this.delete(this.keyList[vt]),mt=!0);return mt}dump(){const mt=[];for(const vt of this.indexes({allowStale:!0})){const At=this.keyList[vt],Lt=this.valList[vt],Rt={value:this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt};if(this.ttls){Rt.ttl=this.ttls[vt];const St=nt.now()-this.starts[vt];Rt.start=Math.floor(Date.now()-St)}this.sizes&&(Rt.size=this.sizes[vt]),mt.unshift([At,Rt])}return mt}load(mt){this.clear();for(const[vt,At]of mt){if(At.start){const Lt=Date.now()-At.start;At.start=nt.now()-Lt}this.set(vt,At.value,At)}}dispose(mt,vt,At){}set(mt,vt,{ttl:At=this.ttl,start:Lt,noDisposeOnSet:Rt=this.noDisposeOnSet,size:St=0,sizeCalculation:Tt=this.sizeCalculation,noUpdateTTL:Bt=this.noUpdateTTL}={}){if(St=this.requireSize(mt,vt,St,Tt),this.maxEntrySize&&St>this.maxEntrySize)return this;let xt=this.size===0?void 0:this.keyMap.get(mt);if(xt===void 0)xt=this.newIndex(),this.keyList[xt]=mt,this.valList[xt]=vt,this.keyMap.set(mt,xt),this.next[this.tail]=xt,this.prev[xt]=this.tail,this.tail=xt,this.size++,this.addItemSize(xt,St),Bt=!1;else{const Ct=this.valList[xt];vt!==Ct&&(this.isBackgroundFetch(Ct)?Ct.__abortController.abort():Rt||(this.dispose(Ct,mt,"set"),this.disposeAfter&&this.disposed.push([Ct,mt,"set"])),this.removeItemSize(xt),this.valList[xt]=vt,this.addItemSize(xt,St)),this.moveToTail(xt)}if(At===0||this.ttl!==0||this.ttls||this.initializeTTLTracking(),Bt||this.setItemTTL(xt,At,Lt),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return this.size===0?this.tail:this.size===this.max&&this.max!==0?this.evict(!1):this.free.length!==0?this.free.pop():this.initialFill++}pop(){if(this.size){const mt=this.valList[this.head];return this.evict(!0),mt}}evict(mt){const vt=this.head,At=this.keyList[vt],Lt=this.valList[vt];return this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,At,"evict"),this.disposeAfter&&this.disposed.push([Lt,At,"evict"])),this.removeItemSize(vt),mt&&(this.keyList[vt]=null,this.valList[vt]=null,this.free.push(vt)),this.head=this.next[vt],this.keyMap.delete(At),this.size--,vt}has(mt,{updateAgeOnHas:vt=this.updateAgeOnHas}={}){const At=this.keyMap.get(mt);return At!==void 0&&!this.isStale(At)&&(vt&&this.updateItemAge(At),!0)}peek(mt,{allowStale:vt=this.allowStale}={}){const At=this.keyMap.get(mt);if(At!==void 0&&(vt||!this.isStale(At))){const Lt=this.valList[At];return this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt}}backgroundFetch(mt,vt,At,Lt){const Rt=vt===void 0?void 0:this.valList[vt];if(this.isBackgroundFetch(Rt))return Rt;const St=new rt,Tt={signal:St.signal,options:At,context:Lt},Bt=new Promise(xt=>xt(this.fetchMethod(mt,Rt,Tt))).then(xt=>(St.signal.aborted||this.set(mt,xt,Tt.options),xt),xt=>{if(this.valList[vt]===Bt&&(!At.noDeleteOnFetchRejection||Bt.__staleWhileFetching===void 0?this.delete(mt):this.valList[vt]=Bt.__staleWhileFetching),Bt.__returned===Bt)throw xt});return Bt.__abortController=St,Bt.__staleWhileFetching=Rt,Bt.__returned=null,vt===void 0?(this.set(mt,Bt,Tt.options),vt=this.keyMap.get(mt)):this.valList[vt]=Bt,Bt}isBackgroundFetch(mt){return mt&&typeof mt=="object"&&typeof mt.then=="function"&&Object.prototype.hasOwnProperty.call(mt,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(mt,"__returned")&&(mt.__returned===mt||mt.__returned===null)}async fetch(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet,ttl:Rt=this.ttl,noDisposeOnSet:St=this.noDisposeOnSet,size:Tt=0,sizeCalculation:Bt=this.sizeCalculation,noUpdateTTL:xt=this.noUpdateTTL,noDeleteOnFetchRejection:Ct=this.noDeleteOnFetchRejection,fetchContext:kt=this.fetchContext,forceRefresh:Nt=!1}={}){if(!this.fetchMethod)return this.get(mt,{allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt});const Ot={allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt,ttl:Rt,noDisposeOnSet:St,size:Tt,sizeCalculation:Bt,noUpdateTTL:xt,noDeleteOnFetchRejection:Ct};let Wt=this.keyMap.get(mt);if(Wt===void 0){const Dt=this.backgroundFetch(mt,Wt,Ot,kt);return Dt.__returned=Dt}{const Dt=this.valList[Wt];if(this.isBackgroundFetch(Dt))return vt&&Dt.__staleWhileFetching!==void 0?Dt.__staleWhileFetching:Dt.__returned=Dt;if(!Nt&&!this.isStale(Wt))return this.moveToTail(Wt),At&&this.updateItemAge(Wt),Dt;const Et=this.backgroundFetch(mt,Wt,Ot,kt);return vt&&Et.__staleWhileFetching!==void 0?Et.__staleWhileFetching:Et.__returned=Et}}get(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet}={}){const Rt=this.keyMap.get(mt);if(Rt!==void 0){const St=this.valList[Rt],Tt=this.isBackgroundFetch(St);return this.isStale(Rt)?Tt?vt?St.__staleWhileFetching:void 0:(Lt||this.delete(mt),vt?St:void 0):Tt?void 0:(this.moveToTail(Rt),At&&this.updateItemAge(Rt),St)}}connect(mt,vt){this.prev[vt]=mt,this.next[mt]=vt}moveToTail(mt){mt!==this.tail&&(mt===this.head?this.head=this.next[mt]:this.connect(this.prev[mt],this.next[mt]),this.connect(this.tail,mt),this.tail=mt)}get del(){return ut("del","delete"),this.delete}delete(mt){let vt=!1;if(this.size!==0){const At=this.keyMap.get(mt);if(At!==void 0)if(vt=!0,this.size===1)this.clear();else{this.removeItemSize(At);const Lt=this.valList[At];this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,mt,"delete"),this.disposeAfter&&this.disposed.push([Lt,mt,"delete"])),this.keyMap.delete(mt),this.keyList[At]=null,this.valList[At]=null,At===this.tail?this.tail=this.prev[At]:At===this.head?this.head=this.next[At]:(this.next[this.prev[At]]=this.next[At],this.prev[this.next[At]]=this.prev[At]),this.size--,this.free.push(At)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return vt}clear(){for(const mt of this.rindexes({allowStale:!0})){const vt=this.valList[mt];if(this.isBackgroundFetch(vt))vt.__abortController.abort();else{const At=this.keyList[mt];this.dispose(vt,At,"delete"),this.disposeAfter&&this.disposed.push([vt,At,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return ut("reset","clear"),this.clear}get length(){return((mt,vt)=>{const At="LRU_CACHE_PROPERTY_"+mt;if(ht(At)){const{prototype:Lt}=Ut,{get:Rt}=Object.getOwnPropertyDescriptor(Lt,mt);ct(At,mt+" property","cache."+vt,Rt)}})("length","size"),this.size}static get AbortController(){return rt}static get AbortSignal(){return st}}s.exports=Ut}).call(this,et(2))},function(s,o,et){var tt=et(42).Colorizer;s.exports=function(nt){return tt.addColors(nt.colors||nt),nt}},function(s,o,et){var tt={};s.exports=tt,tt.themes={};var nt=et(13),rt=tt.styles=et(106),it=Object.defineProperties,ot=new RegExp(/[\r\n]+/g);tt.supportsColor=et(107).supportsColor,tt.enabled===void 0&&(tt.enabled=tt.supportsColor()!==!1),tt.enable=function(){tt.enabled=!0},tt.disable=function(){tt.enabled=!1},tt.stripColors=tt.strip=function(ft){return(""+ft).replace(/\x1B\[\d+m/g,"")},tt.stylize=function(ft,gt){if(!tt.enabled)return ft+"";var yt=rt[gt];return!yt&> in tt?tt[gt](ft):yt.open+ft+yt.close};var st=/[|\\{}()[\]^$+*?.]/g;function at(ft){var gt=function yt(){return ht.apply(yt,arguments)};return gt._styles=ft,gt.__proto__=dt,gt}var lt,ut=(lt={},rt.grey=rt.gray,Object.keys(rt).forEach(function(ft){rt[ft].closeRe=new RegExp(function(gt){if(typeof gt!="string")throw new TypeError("Expected a string");return gt.replace(st,"\\$&")}(rt[ft].close),"g"),lt[ft]={get:function(){return at(this._styles.concat(ft))}}}),lt),dt=it(function(){},ut);function ht(){var ft=Array.prototype.slice.call(arguments),gt=ft.map(function(vt){return vt!=null&&vt.constructor===String?vt:nt.inspect(vt)}).join(" ");if(!tt.enabled||!gt)return gt;for(var yt=gt.indexOf(` +`)},goog.string.normalizeWhitespace=function(s){return s.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(s){return s.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(s){return s.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.string.internal.trim,goog.string.trimLeft=function(s){return s.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(s){return s.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare,goog.string.numberAwareCompare_=function(s,o,et){if(s==o)return 0;if(!s)return-1;if(!o)return 1;for(var tt=s.toLowerCase().match(et),nt=o.toLowerCase().match(et),rt=Math.min(tt.length,nt.length),it=0;it",""":'"'},tt=o?o.createElement("div"):goog.global.document.createElement("div");return s.replace(goog.string.HTML_ENTITY_PATTERN_,function(nt,rt){var it=et[nt];return it||(rt.charAt(0)=="#"&&(rt=+("0"+rt.substr(1)),isNaN(rt)||(it=String.fromCharCode(rt))),it||(goog.dom.safe.setInnerHtml(tt,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),nt+" ")),it=tt.firstChild.nodeValue.slice(0,-1)),et[nt]=it)})},goog.string.unescapePureXmlEntities_=function(s){return s.replace(/&([^;]+);/g,function(o,et){switch(et){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:return et.charAt(0)!="#"||(et=+("0"+et.substr(1)),isNaN(et))?o:String.fromCharCode(et)}})},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(s,o){return goog.string.newLineToBr(s.replace(/ /g,"  "),o)},goog.string.preserveSpaces=function(s){return s.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(s,o){for(var et=o.length,tt=0;tto&&(s=s.substring(0,o-3)+"..."),et&&(s=goog.string.htmlEscape(s)),s},goog.string.truncateMiddle=function(s,o,et,tt){if(et&&(s=goog.string.unescapeEntities(s)),tt&&s.length>o){tt>o&&(tt=o);var nt=s.length-tt;s=s.substring(0,o-tt)+"..."+s.substring(nt)}else s.length>o&&(tt=Math.floor(o/2),nt=s.length-tt,s=s.substring(0,tt+o%2)+"..."+s.substring(nt));return et&&(s=goog.string.htmlEscape(s)),s},goog.string.specialEscapeChars_={"\0":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(s){s=String(s);for(var o=['"'],et=0;etnt?tt:goog.string.escapeChar(tt))}return o.push('"'),o.join("")},goog.string.escapeString=function(s){for(var o=[],et=0;eto)var et=s;else 256>o?(et="\\x",(16>o||256o&&(et+="0")),et+=o.toString(16).toUpperCase();return goog.string.jsEscapeCache_[s]=et},goog.string.contains=goog.string.internal.contains,goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains,goog.string.countOf=function(s,o){return s&&o?s.split(o).length-1:0},goog.string.removeAt=function(s,o,et){var tt=s;return 0<=o&&o>>0;return o},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(s){var o=Number(s);return o==0&&goog.string.isEmptyOrWhitespace(s)?NaN:o},goog.string.isLowerCamelCase=function(s){return/^[a-z]+([A-Z][a-z]*)*$/.test(s)},goog.string.isUpperCamelCase=function(s){return/^([A-Z][a-z]*)+$/.test(s)},goog.string.toCamelCase=function(s){return String(s).replace(/\-([a-z])/g,function(o,et){return et.toUpperCase()})},goog.string.toSelectorCase=function(s){return String(s).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(s,o){return o=goog.isString(o)?goog.string.regExpEscape(o):"\\s",s.replace(new RegExp("(^"+(o?"|["+o+"]+":"")+")([a-z])","g"),function(et,tt,nt){return tt+nt.toUpperCase()})},goog.string.capitalize=function(s){return String(s.charAt(0)).toUpperCase()+String(s.substr(1)).toLowerCase()},goog.string.parseInt=function(s){return isFinite(s)&&(s=String(s)),goog.isString(s)?/^\s*-?0x/i.test(s)?parseInt(s,16):parseInt(s,10):NaN},goog.string.splitLimit=function(s,o,et){s=s.split(o);for(var tt=[];0et&&(et=nt)}return et==-1?s:s.slice(et+1)},goog.string.editDistance=function(s,o){var et=[],tt=[];if(s==o)return 0;if(!s.length||!o.length)return Math.max(s.length,o.length);for(var nt=0;ntparseFloat(s)?String(o):s},goog.userAgent.getVersionRegexResult_=function(){var s=goog.userAgent.getUserAgentString();return goog.userAgent.GECKO?/rv:([^\);]+)(\)|;)/.exec(s):goog.userAgent.EDGE?/Edge\/([\d\.]+)/.exec(s):goog.userAgent.IE?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(s):goog.userAgent.WEBKIT?/WebKit\/(\S+)/.exec(s):goog.userAgent.OPERA?/(?:Version)[ \/]?(\S+)/.exec(s):void 0},goog.userAgent.getDocumentMode_=function(){var s=goog.global.document;return s?s.documentMode:void 0},goog.userAgent.VERSION=goog.userAgent.determineVersion_(),goog.userAgent.compare=function(s,o){return goog.string.compareVersions(s,o)},goog.userAgent.isVersionOrHigherCache_={},goog.userAgent.isVersionOrHigher=function(s){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,s,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,s)})},goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher,goog.userAgent.isDocumentModeOrHigher=function(s){return Number(goog.userAgent.DOCUMENT_MODE)>=s},goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher,goog.userAgent.DOCUMENT_MODE=function(){if(goog.global.document&&goog.userAgent.IE)return goog.userAgent.getDocumentMode_()}(),goog.userAgent.product={},goog.userAgent.product.ASSUME_FIREFOX=!1,goog.userAgent.product.ASSUME_IPHONE=!1,goog.userAgent.product.ASSUME_IPAD=!1,goog.userAgent.product.ASSUME_ANDROID=!1,goog.userAgent.product.ASSUME_CHROME=!1,goog.userAgent.product.ASSUME_SAFARI=!1,goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI,goog.userAgent.product.OPERA=goog.userAgent.OPERA,goog.userAgent.product.IE=goog.userAgent.IE,goog.userAgent.product.EDGE=goog.userAgent.EDGE,goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox(),goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()},goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_(),goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser(),goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome(),goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()},goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_(),goog.crypt.base64={},goog.crypt.base64.DEFAULT_ALPHABET_COMMON_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"+/=",goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"-_.",goog.crypt.base64.Alphabet={DEFAULT:0,NO_PADDING:1,WEBSAFE:2,WEBSAFE_DOT_PADDING:3,WEBSAFE_NO_PADDING:4},goog.crypt.base64.paddingChars_="=.",goog.crypt.base64.isPadding_=function(s){return goog.string.contains(goog.crypt.base64.paddingChars_,s)},goog.crypt.base64.byteToCharMaps_={},goog.crypt.base64.charToByteMap_=null,goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA,goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||typeof goog.global.btoa=="function",goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&typeof goog.global.atob=="function",goog.crypt.base64.encodeByteArray=function(s,o){goog.asserts.assert(goog.isArrayLike(s),"encodeByteArray takes an array as a parameter"),o===void 0&&(o=goog.crypt.base64.Alphabet.DEFAULT),goog.crypt.base64.init_(),o=goog.crypt.base64.byteToCharMaps_[o];for(var et=[],tt=0;tt>2;nt=(3&nt)<<4|it>>4,it=(15&it)<<2|st>>6,st&=63,ot||(st=64,rt||(it=64)),et.push(o[at],o[nt],o[it]||"",o[st]||"")}return et.join("")},goog.crypt.base64.encodeString=function(s,o){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!o?goog.global.btoa(s):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(s),o)},goog.crypt.base64.decodeString=function(s,o){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!o)return goog.global.atob(s);var et="";return goog.crypt.base64.decodeStringInternal_(s,function(tt){et+=String.fromCharCode(tt)}),et},goog.crypt.base64.decodeStringToByteArray=function(s,o){var et=[];return goog.crypt.base64.decodeStringInternal_(s,function(tt){et.push(tt)}),et},goog.crypt.base64.decodeStringToUint8Array=function(s){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var o=s.length,et=3*o/4;et%3?et=Math.floor(et):goog.crypt.base64.isPadding_(s[o-1])&&(et=goog.crypt.base64.isPadding_(s[o-2])?et-2:et-1);var tt=new Uint8Array(et),nt=0;return goog.crypt.base64.decodeStringInternal_(s,function(rt){tt[nt++]=rt}),tt.subarray(0,nt)},goog.crypt.base64.decodeStringInternal_=function(s,o){function et(st){for(;tt>4),it!=64&&(o(rt<<4&240|it>>2),ot!=64&&o(it<<6&192|ot))}},goog.crypt.base64.init_=function(){if(!goog.crypt.base64.charToByteMap_){goog.crypt.base64.charToByteMap_={};for(var s=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""),o=["+/=","+/","-_=","-_.","-_"],et=0;5>et;et++){var tt=s.concat(o[et].split(""));goog.crypt.base64.byteToCharMaps_[et]=tt;for(var nt=0;nt>>0;s=Math.floor((s-o)/jspb.BinaryConstants.TWO_TO_32)>>>0,jspb.utils.split64Low=o,jspb.utils.split64High=s},jspb.utils.splitInt64=function(s){var o=0>s,et=(s=Math.abs(s))>>>0;s=Math.floor((s-et)/jspb.BinaryConstants.TWO_TO_32),s>>>=0,o&&(s=~s>>>0,4294967295<(et=1+(~et>>>0))&&(et=0,4294967295<++s&&(s=0))),jspb.utils.split64Low=et,jspb.utils.split64High=s},jspb.utils.splitZigzag64=function(s){var o=0>s;s=2*Math.abs(s),jspb.utils.splitUint64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;o&&(s==0?et==0?et=s=4294967295:(et--,s=4294967295):s--),jspb.utils.split64Low=s,jspb.utils.split64High=et},jspb.utils.splitFloat32=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)0<1/s?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(s))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(s>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|2139095040)>>>0;else if(s>>0;else{var et=Math.floor(Math.log(s)/Math.LN2);s*=Math.pow(2,-et),s=8388607&Math.round(s*jspb.BinaryConstants.TWO_TO_23),jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|et+127<<23|s)>>>0}},jspb.utils.splitFloat64=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)jspb.utils.split64High=0<1/s?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(s))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(s>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(o<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(s>>0,jspb.utils.split64Low=et>>>0}else{var tt=0;if(2<=(et=s))for(;2<=et&&1023>tt;)tt++,et/=2;else for(;1>et&&-1022>>0,jspb.utils.split64High=(o<<31|tt+1023<<20|s)>>>0,jspb.utils.split64Low=et}},jspb.utils.splitHash64=function(s){var o=s.charCodeAt(0),et=s.charCodeAt(1),tt=s.charCodeAt(2),nt=s.charCodeAt(3),rt=s.charCodeAt(4),it=s.charCodeAt(5),ot=s.charCodeAt(6);s=s.charCodeAt(7),jspb.utils.split64Low=o+(et<<8)+(tt<<16)+(nt<<24)>>>0,jspb.utils.split64High=rt+(it<<8)+(ot<<16)+(s<<24)>>>0},jspb.utils.joinUint64=function(s,o){return o*jspb.BinaryConstants.TWO_TO_32+(s>>>0)},jspb.utils.joinInt64=function(s,o){var et=2147483648&o;return et&&(o=~o>>>0,(s=1+~s>>>0)==0&&(o=o+1>>>0)),s=jspb.utils.joinUint64(s,o),et?-s:s},jspb.utils.toZigzag64=function(s,o,et){var tt=o>>31;return et(s<<1^tt,(o<<1|s>>>31)^tt)},jspb.utils.joinZigzag64=function(s,o){return jspb.utils.fromZigzag64(s,o,jspb.utils.joinInt64)},jspb.utils.fromZigzag64=function(s,o,et){var tt=-(1&s);return et((s>>>1|o<<31)^tt,o>>>1^tt)},jspb.utils.joinFloat32=function(s,o){o=2*(s>>31)+1;var et=s>>>23&255;return s&=8388607,et==255?s?NaN:1/0*o:et==0?o*Math.pow(2,-149)*s:o*Math.pow(2,et-150)*(s+Math.pow(2,23))},jspb.utils.joinFloat64=function(s,o){var et=2*(o>>31)+1,tt=o>>>20&2047;return s=jspb.BinaryConstants.TWO_TO_32*(1048575&o)+s,tt==2047?s?NaN:1/0*et:tt==0?et*Math.pow(2,-1074)*s:et*Math.pow(2,tt-1075)*(s+jspb.BinaryConstants.TWO_TO_52)},jspb.utils.joinHash64=function(s,o){return String.fromCharCode(s>>>0&255,s>>>8&255,s>>>16&255,s>>>24&255,o>>>0&255,o>>>8&255,o>>>16&255,o>>>24&255)},jspb.utils.DIGITS="0123456789abcdef".split(""),jspb.utils.ZERO_CHAR_CODE_=48,jspb.utils.A_CHAR_CODE_=97,jspb.utils.joinUnsignedDecimalString=function(s,o){function et(nt,rt){return nt=nt?String(nt):"",rt?"0000000".slice(nt.length)+nt:nt}if(2097151>=o)return""+(jspb.BinaryConstants.TWO_TO_32*o+s);var tt=(s>>>24|o<<8)>>>0&16777215;return s=(16777215&s)+6777216*tt+6710656*(o=o>>16&65535),tt+=8147497*o,o*=2,1e7<=s&&(tt+=Math.floor(s/1e7),s%=1e7),1e7<=tt&&(o+=Math.floor(tt/1e7),tt%=1e7),et(o,0)+et(tt,o)+et(s,1)},jspb.utils.joinSignedDecimalString=function(s,o){var et=2147483648&o;return et&&(o=~o+((s=1+~s>>>0)==0?1:0)>>>0),s=jspb.utils.joinUnsignedDecimalString(s,o),et?"-"+s:s},jspb.utils.hash64ToDecimalString=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinSignedDecimalString(s,et):jspb.utils.joinUnsignedDecimalString(s,et)},jspb.utils.hash64ArrayToDecimalStrings=function(s,o){for(var et=Array(s.length),tt=0;ttot&&(rt!==1||0>>=8}goog.asserts.assert(0rt;rt++)tt[rt]=255&~tt[rt]}(),o(1,1)),goog.crypt.byteArrayToString(tt)},jspb.utils.splitDecimalString=function(s){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(s))},jspb.utils.toHexDigit_=function(s){return String.fromCharCode(10>s?jspb.utils.ZERO_CHAR_CODE_+s:jspb.utils.A_CHAR_CODE_-10+s)},jspb.utils.fromHexCharCode_=function(s){return s>=jspb.utils.A_CHAR_CODE_?s-jspb.utils.A_CHAR_CODE_+10:s-jspb.utils.ZERO_CHAR_CODE_},jspb.utils.hash64ToHexString=function(s){var o=Array(18);o[0]="0",o[1]="x";for(var et=0;8>et;et++){var tt=s.charCodeAt(7-et);o[2*et+2]=jspb.utils.toHexDigit_(tt>>4),o[2*et+3]=jspb.utils.toHexDigit_(15&tt)}return o.join("")},jspb.utils.hexStringToHash64=function(s){s=s.toLowerCase(),goog.asserts.assert(s.length==18),goog.asserts.assert(s[0]=="0"),goog.asserts.assert(s[1]=="x");for(var o="",et=0;8>et;et++){var tt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+2)),nt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+3));o=String.fromCharCode(16*tt+nt)+o}return o},jspb.utils.hash64ToNumber=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinInt64(s,et):jspb.utils.joinUint64(s,et)},jspb.utils.numberToHash64=function(s){return jspb.utils.splitInt64(s),jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.utils.countVarints=function(s,o,et){for(var tt=0,nt=o;nt>7;return et-o-tt},jspb.utils.countVarintFields=function(s,o,et,tt){var nt=0;if(128>(tt=8*tt+jspb.BinaryConstants.WireType.VARINT))for(;o>=7}if(s[o++]!=rt)break;for(nt++;128&(rt=s[o++]););}return nt},jspb.utils.countFixedFields_=function(s,o,et,tt,nt){var rt=0;if(128>tt)for(;o>=7}if(s[o++]!=it)break;rt++,o+=nt}return rt},jspb.utils.countFixed32Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED32,4)},jspb.utils.countFixed64Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED64,8)},jspb.utils.countDelimitedFields=function(s,o,et,tt){var nt=0;for(tt=8*tt+jspb.BinaryConstants.WireType.DELIMITED;o>=7}if(s[o++]!=rt)break;nt++;for(var it=0,ot=1;it+=(127&(rt=s[o++]))*ot,ot*=128,(128&rt)!=0;);o+=it}return nt},jspb.utils.debugBytesToTextFormat=function(s){var o='"';if(s){s=jspb.utils.byteSourceToUint8Array(s);for(var et=0;ets[et]&&(o+="0"),o+=s[et].toString(16)}return o+'"'},jspb.utils.debugScalarToTextFormat=function(s){return typeof s=="string"?goog.string.quote(s):s.toString()},jspb.utils.stringToByteArray=function(s){for(var o=new Uint8Array(s.length),et=0;etjspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)},jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)},jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1},jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_},jspb.BinaryDecoder.prototype.setBlock=function(s,o,et){this.bytes_=jspb.utils.byteSourceToUint8Array(s),this.start_=o!==void 0?o:0,this.end_=et!==void 0?this.start_+et:this.bytes_.length,this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_},jspb.BinaryDecoder.prototype.setEnd=function(s){this.end_=s},jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_},jspb.BinaryDecoder.prototype.setCursor=function(s){this.cursor_=s},jspb.BinaryDecoder.prototype.advance=function(s){this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_)},jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_},jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_},jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_},jspb.BinaryDecoder.prototype.readSplitVarint64=function(s){for(var o=128,et=0,tt=0,nt=0;4>nt&&128<=o;nt++)et|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt;if(128<=o&&(et|=(127&(o=this.bytes_[this.cursor_++]))<<28,tt|=(127&o)>>4),128<=o)for(nt=0;5>nt&&128<=o;nt++)tt|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt+3;if(128>o)return s(et>>>0,tt>>>0);goog.asserts.fail("Failed to read varint, encoding is invalid."),this.error_=!0},jspb.BinaryDecoder.prototype.readSplitZigzagVarint64=function(s){return this.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryDecoder.prototype.readSplitFixed64=function(s){var o=this.bytes_,et=this.cursor_;this.cursor_+=8;for(var tt=0,nt=0,rt=et+7;rt>=et;rt--)tt=tt<<8|o[rt],nt=nt<<8|o[rt+4];return s(tt,nt)},jspb.BinaryDecoder.prototype.skipVarint=function(){for(;128&this.bytes_[this.cursor_];)this.cursor_++;this.cursor_++},jspb.BinaryDecoder.prototype.unskipVarint=function(s){for(;128>>=7;this.cursor_--},jspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var s=this.bytes_,o=s[this.cursor_+0],et=127&o;return 128>o?(this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+1]))<<7,128>o?(this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+2]))<<14,128>o?(this.cursor_+=3,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+3]))<<21,128>o?(this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(15&(o=s[this.cursor_+4]))<<28,128>o?(this.cursor_+=5,goog.asserts.assert(this.cursor_<=this.end_),et>>>0):(this.cursor_+=5,128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&goog.asserts.assert(!1),goog.asserts.assert(this.cursor_<=this.end_),et)))))},jspb.BinaryDecoder.prototype.readSignedVarint32=jspb.BinaryDecoder.prototype.readUnsignedVarint32,jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()},jspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()},jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var s=this.readUnsignedVarint32();return s>>>1^-(1&s)},jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinUint64)},jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString)},jspb.BinaryDecoder.prototype.readSignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinInt64)},jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){return this.readSplitVarint64(jspb.utils.joinZigzag64)},jspb.BinaryDecoder.prototype.readZigzagVarintHash64=function(){return this.readSplitZigzagVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readUint8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s},jspb.BinaryDecoder.prototype.readUint16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8},jspb.BinaryDecoder.prototype.readUint32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8|et<<16|tt<<24)>>>0},jspb.BinaryDecoder.prototype.readUint64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUint64(s,o)},jspb.BinaryDecoder.prototype.readUint64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUnsignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readInt8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s<<24>>24},jspb.BinaryDecoder.prototype.readInt16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8)<<16>>16},jspb.BinaryDecoder.prototype.readInt32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8|et<<16|tt<<24},jspb.BinaryDecoder.prototype.readInt64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinInt64(s,o)},jspb.BinaryDecoder.prototype.readInt64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinSignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readFloat=function(){var s=this.readUint32();return jspb.utils.joinFloat32(s,0)},jspb.BinaryDecoder.prototype.readDouble=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinFloat64(s,o)},jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]},jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()},jspb.BinaryDecoder.prototype.readString=function(s){var o=this.bytes_,et=this.cursor_;s=et+s;for(var tt=[],nt="";etrt)tt.push(rt);else{if(192>rt)continue;if(224>rt){var it=o[et++];tt.push((31&rt)<<6|63&it)}else if(240>rt){it=o[et++];var ot=o[et++];tt.push((15&rt)<<12|(63&it)<<6|63&ot)}else 248>rt&&(rt=(7&rt)<<18|(63&(it=o[et++]))<<12|(63&(ot=o[et++]))<<6|63&o[et++],rt-=65536,tt.push(55296+(rt>>10&1023),56320+(1023&rt)))}8192<=tt.length&&(nt+=String.fromCharCode.apply(null,tt),tt.length=0)}return nt+=goog.crypt.byteArrayToString(tt),this.cursor_=et,nt},jspb.BinaryDecoder.prototype.readStringWithLength=function(){var s=this.readUnsignedVarint32();return this.readString(s)},jspb.BinaryDecoder.prototype.readBytes=function(s){if(0>s||this.cursor_+s>this.bytes_.length)return this.error_=!0,goog.asserts.fail("Invalid byte length!"),new Uint8Array(0);var o=this.bytes_.subarray(this.cursor_,this.cursor_+s);return this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_),o},jspb.BinaryDecoder.prototype.readVarintHash64=function(){return this.readSplitVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readFixedHash64=function(){var s=this.bytes_,o=this.cursor_,et=s[o+0],tt=s[o+1],nt=s[o+2],rt=s[o+3],it=s[o+4],ot=s[o+5],st=s[o+6];return s=s[o+7],this.cursor_+=8,String.fromCharCode(et,tt,nt,rt,it,ot,st,s)},jspb.BinaryReader=function(s,o,et){this.decoder_=jspb.BinaryDecoder.alloc(s,o,et),this.fieldCursor_=this.decoder_.getCursor(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null},jspb.BinaryReader.instanceCache_=[],jspb.BinaryReader.alloc=function(s,o,et){if(jspb.BinaryReader.instanceCache_.length){var tt=jspb.BinaryReader.instanceCache_.pop();return s&&tt.decoder_.setBlock(s,o,et),tt}return new jspb.BinaryReader(s,o,et)},jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc,jspb.BinaryReader.prototype.free=function(){this.decoder_.clear(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null,100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)},jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_},jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()},jspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()},jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_},jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_},jspb.BinaryReader.prototype.isDelimited=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED},jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP},jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()},jspb.BinaryReader.prototype.setBlock=function(s,o,et){this.decoder_.setBlock(s,o,et),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.advance=function(s){this.decoder_.advance(s)},jspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return goog.asserts.fail("Decoder hit an error"),!1;this.fieldCursor_=this.decoder_.getCursor();var s=this.decoder_.readUnsignedVarint32(),o=s>>>3;return(s&=7)!=jspb.BinaryConstants.WireType.VARINT&&s!=jspb.BinaryConstants.WireType.FIXED32&&s!=jspb.BinaryConstants.WireType.FIXED64&&s!=jspb.BinaryConstants.WireType.DELIMITED&&s!=jspb.BinaryConstants.WireType.START_GROUP&&s!=jspb.BinaryConstants.WireType.END_GROUP?(goog.asserts.fail("Invalid wire type: %s (at position %s)",s,this.fieldCursor_),this.error_=!0,!1):(this.nextField_=o,this.nextWireType_=s,!0)},jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)},jspb.BinaryReader.prototype.skipMatchingFields=function(){var s=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==s;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()},jspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(goog.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()},jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)goog.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField();else{var s=this.decoder_.readUnsignedVarint32();this.decoder_.advance(s)}},jspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(goog.asserts.fail("Invalid wire type for skipFixed32Field"),this.skipField()):this.decoder_.advance(4)},jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(goog.asserts.fail("Invalid wire type for skipFixed64Field"),this.skipField()):this.decoder_.advance(8)},jspb.BinaryReader.prototype.skipGroup=function(){for(var s=this.nextField_;;){if(!this.nextField()){goog.asserts.fail("Unmatched start-group tag: stream EOF"),this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP){this.nextField_!=s&&(goog.asserts.fail("Unmatched end-group tag"),this.error_=!0);break}this.skipField()}},jspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:goog.asserts.fail("Invalid wire encoding for field.")}},jspb.BinaryReader.prototype.registerReadCallback=function(s,o){this.readCallbacks_===null&&(this.readCallbacks_={}),goog.asserts.assert(!this.readCallbacks_[s]),this.readCallbacks_[s]=o},jspb.BinaryReader.prototype.runReadCallback=function(s){return goog.asserts.assert(this.readCallbacks_!==null),s=this.readCallbacks_[s],goog.asserts.assert(s),s(this)},jspb.BinaryReader.prototype.readAny=function(s){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(s);var o=jspb.BinaryConstants.FieldType;switch(s){case o.DOUBLE:return this.readDouble();case o.FLOAT:return this.readFloat();case o.INT64:return this.readInt64();case o.UINT64:return this.readUint64();case o.INT32:return this.readInt32();case o.FIXED64:return this.readFixed64();case o.FIXED32:return this.readFixed32();case o.BOOL:return this.readBool();case o.STRING:return this.readString();case o.GROUP:goog.asserts.fail("Group field type not supported in readAny()");case o.MESSAGE:goog.asserts.fail("Message field type not supported in readAny()");case o.BYTES:return this.readBytes();case o.UINT32:return this.readUint32();case o.ENUM:return this.readEnum();case o.SFIXED32:return this.readSfixed32();case o.SFIXED64:return this.readSfixed64();case o.SINT32:return this.readSint32();case o.SINT64:return this.readSint64();case o.FHASH64:return this.readFixedHash64();case o.VHASH64:return this.readVarintHash64();default:goog.asserts.fail("Invalid field type in readAny()")}return 0},jspb.BinaryReader.prototype.readMessage=function(s,o){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var et=this.decoder_.getEnd(),tt=this.decoder_.readUnsignedVarint32();tt=this.decoder_.getCursor()+tt,this.decoder_.setEnd(tt),o(s,this),this.decoder_.setCursor(tt),this.decoder_.setEnd(et)},jspb.BinaryReader.prototype.readGroup=function(s,o,et){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP),goog.asserts.assert(this.nextField_==s),et(o,this),this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(goog.asserts.fail("Group submessage did not end with an END_GROUP tag"),this.error_=!0)},jspb.BinaryReader.prototype.getFieldDecoder=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32(),o=this.decoder_.getCursor(),et=o+s;return s=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),o,s),this.decoder_.setCursor(et),s},jspb.BinaryReader.prototype.readInt32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32()},jspb.BinaryReader.prototype.readInt32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32String()},jspb.BinaryReader.prototype.readInt64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readInt64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64String()},jspb.BinaryReader.prototype.readUint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readUint32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32String()},jspb.BinaryReader.prototype.readUint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64()},jspb.BinaryReader.prototype.readUint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64String()},jspb.BinaryReader.prototype.readSint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint32()},jspb.BinaryReader.prototype.readSint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64()},jspb.BinaryReader.prototype.readSint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64String()},jspb.BinaryReader.prototype.readFixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readUint32()},jspb.BinaryReader.prototype.readFixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64()},jspb.BinaryReader.prototype.readFixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64String()},jspb.BinaryReader.prototype.readSfixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32()},jspb.BinaryReader.prototype.readSfixed32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32().toString()},jspb.BinaryReader.prototype.readSfixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64()},jspb.BinaryReader.prototype.readSfixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64String()},jspb.BinaryReader.prototype.readFloat=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readFloat()},jspb.BinaryReader.prototype.readDouble=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readDouble()},jspb.BinaryReader.prototype.readBool=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),!!this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readEnum=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readString=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(s)},jspb.BinaryReader.prototype.readBytes=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(s)},jspb.BinaryReader.prototype.readVarintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readVarintHash64()},jspb.BinaryReader.prototype.readSintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarintHash64()},jspb.BinaryReader.prototype.readSplitVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(s)},jspb.BinaryReader.prototype.readSplitZigzagVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryReader.prototype.readFixedHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readFixedHash64()},jspb.BinaryReader.prototype.readSplitFixed64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readSplitFixed64(s)},jspb.BinaryReader.prototype.readPackedField_=function(s){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var o=this.decoder_.readUnsignedVarint32();o=this.decoder_.getCursor()+o;for(var et=[];this.decoder_.getCursor()o.length?et.length:o.length;for(s.getJsPbMessageId()&&(tt[0]=s.getJsPbMessageId(),nt=1);nt>>1|(1&this.hi)<<31)>>>0,this.hi>>>1>>>0)},jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)},jspb.arith.UInt64.prototype.msb=function(){return!!(2147483648&this.hi)},jspb.arith.UInt64.prototype.lsb=function(){return!!(1&this.lo)},jspb.arith.UInt64.prototype.zero=function(){return this.lo==0&&this.hi==0},jspb.arith.UInt64.prototype.add=function(s){return new jspb.arith.UInt64((this.lo+s.lo&4294967295)>>>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.UInt64.prototype.sub=function(s){return new jspb.arith.UInt64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.UInt64.mul32x32=function(s,o){var et=65535&s,tt=65535&o,nt=o>>>16;for(o=et*tt+65536*(et*nt&65535)+65536*((s>>>=16)*tt&65535),et=s*nt+(et*nt>>>16)+(s*tt>>>16);4294967296<=o;)o-=4294967296,et+=1;return new jspb.arith.UInt64(o>>>0,et>>>0)},jspb.arith.UInt64.prototype.mul=function(s){var o=jspb.arith.UInt64.mul32x32(this.lo,s);return(s=jspb.arith.UInt64.mul32x32(this.hi,s)).hi=s.lo,s.lo=0,o.add(s)},jspb.arith.UInt64.prototype.div=function(s){if(s==0)return[];var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(this.lo,this.hi);s=new jspb.arith.UInt64(s,0);for(var tt=new jspb.arith.UInt64(1,0);!s.msb();)s=s.leftShift(),tt=tt.leftShift();for(;!tt.zero();)0>=s.cmp(et)&&(o=o.add(tt),et=et.sub(s)),s=s.rightShift(),tt=tt.rightShift();return[o,et]},jspb.arith.UInt64.prototype.toString=function(){for(var s="",o=this;!o.zero();){var et=(o=o.div(10))[0];s=o[1].lo+s,o=et}return s==""&&(s="0"),s},jspb.arith.UInt64.fromString=function(s){for(var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(0,0),tt=0;tts[tt]||"9">>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.sub=function(s){return new jspb.arith.Int64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)},jspb.arith.Int64.prototype.toString=function(){var s=(2147483648&this.hi)!=0,o=new jspb.arith.UInt64(this.lo,this.hi);return s&&(o=new jspb.arith.UInt64(0,0).sub(o)),(s?"-":"")+o.toString()},jspb.arith.Int64.fromString=function(s){var o=0>>7|o<<25)>>>0,o>>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSplitFixed64=function(s,o){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(o==Math.floor(o)),goog.asserts.assert(0<=s&&s>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSignedVarint32=function(s){if(goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&so;o++)this.buffer_.push(127&s|128),s>>=7;this.buffer_.push(1)}},jspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_31&&s>31)>>>0)},jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s>>0,tt>>>0)})},jspb.BinaryEncoder.prototype.writeUint8=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&256>s),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeUint16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&65536>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeUint32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeUint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&ss),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeInt16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(-32768<=s&&32768>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeInt32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeInt64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_63&&+s=-jspb.BinaryConstants.FLOAT32_MAX&&s<=jspb.BinaryConstants.FLOAT32_MAX),jspb.utils.splitFloat32(s),this.writeUint32(jspb.utils.split64Low)},jspb.BinaryEncoder.prototype.writeDouble=function(s){goog.asserts.assert(1/0===s||-1/0===s||isNaN(s)||s>=-jspb.BinaryConstants.FLOAT64_MAX&&s<=jspb.BinaryConstants.FLOAT64_MAX),jspb.utils.splitFloat64(s),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeBool=function(s){goog.asserts.assert(typeof s=="boolean"||typeof s=="number"),this.buffer_.push(s?1:0)},jspb.BinaryEncoder.prototype.writeEnum=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&stt)this.buffer_.push(tt);else if(2048>tt)this.buffer_.push(tt>>6|192),this.buffer_.push(63&tt|128);else if(65536>tt)if(55296<=tt&&56319>=tt&&et+1=nt&&(tt=1024*(tt-55296)+nt-56320+65536,this.buffer_.push(tt>>18|240),this.buffer_.push(tt>>12&63|128),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128),et++)}else this.buffer_.push(tt>>12|224),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128)}return this.buffer_.length-o},jspb.BinaryWriter=function(){this.blocks_=[],this.totalLength_=0,this.encoder_=new jspb.BinaryEncoder,this.bookmarks_=[]},jspb.BinaryWriter.prototype.appendUint8Array_=function(s){var o=this.encoder_.end();this.blocks_.push(o),this.blocks_.push(s),this.totalLength_+=o.length+s.length},jspb.BinaryWriter.prototype.beginDelimited_=function(s){return this.writeFieldHeader_(s,jspb.BinaryConstants.WireType.DELIMITED),s=this.encoder_.end(),this.blocks_.push(s),this.totalLength_+=s.length,s.push(this.totalLength_),s},jspb.BinaryWriter.prototype.endDelimited_=function(s){var o=s.pop();for(o=this.totalLength_+this.encoder_.length()-o,goog.asserts.assert(0<=o);127>>=7,this.totalLength_++;s.push(o),this.totalLength_++},jspb.BinaryWriter.prototype.writeSerializedMessage=function(s,o,et){this.appendUint8Array_(s.subarray(o,et))},jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(s,o,et){s!=null&&o!=null&&et!=null&&this.writeSerializedMessage(s,o,et)},jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[],this.encoder_.end(),this.totalLength_=0,this.bookmarks_=[]},jspb.BinaryWriter.prototype.getResultBuffer=function(){goog.asserts.assert(this.bookmarks_.length==0);for(var s=new Uint8Array(this.totalLength_+this.encoder_.length()),o=this.blocks_,et=o.length,tt=0,nt=0;nt=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o>>0,rt>>>0)})},jspb.BinaryWriter.prototype.writeRepeatedInt32=function(s,o){if(o!=null)for(var et=0;et>>0,ot>>>0)});this.endDelimited_(s)}},jspb.BinaryWriter.prototype.writePackedInt64String=function(s,o){if(o!=null&&o.length){s=this.beginDelimited_(s);for(var et=0;et-1};function ct(xt){if(typeof xt!="string"&&(xt=String(xt)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(xt))throw new TypeError("Invalid character in header field name");return xt.toLowerCase()}function pt(xt){return typeof xt!="string"&&(xt=String(xt)),xt}function ft(xt){var Ct={next:function(){var kt=xt.shift();return{done:kt===void 0,value:kt}}};return st&&(Ct[Symbol.iterator]=function(){return Ct}),Ct}function gt(xt){this.map={},xt instanceof gt?xt.forEach(function(Ct,kt){this.append(kt,Ct)},this):Array.isArray(xt)?xt.forEach(function(Ct){this.append(Ct[0],Ct[1])},this):xt&&Object.getOwnPropertyNames(xt).forEach(function(Ct){this.append(Ct,xt[Ct])},this)}function yt(xt){if(xt.bodyUsed)return Promise.reject(new TypeError("Already read"));xt.bodyUsed=!0}function Ut(xt){return new Promise(function(Ct,kt){xt.onload=function(){Ct(xt.result)},xt.onerror=function(){kt(xt.error)}})}function Ft(xt){var Ct=new FileReader,kt=Ut(Ct);return Ct.readAsArrayBuffer(xt),kt}function mt(xt){if(xt.slice)return xt.slice(0);var Ct=new Uint8Array(xt.byteLength);return Ct.set(new Uint8Array(xt)),Ct.buffer}function vt(){return this.bodyUsed=!1,this._initBody=function(xt){var Ct;this._bodyInit=xt,xt?typeof xt=="string"?this._bodyText=xt:at&&Blob.prototype.isPrototypeOf(xt)?this._bodyBlob=xt:lt&&FormData.prototype.isPrototypeOf(xt)?this._bodyFormData=xt:ot&&URLSearchParams.prototype.isPrototypeOf(xt)?this._bodyText=xt.toString():ut&&at&&(Ct=xt)&&DataView.prototype.isPrototypeOf(Ct)?(this._bodyArrayBuffer=mt(xt.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):ut&&(ArrayBuffer.prototype.isPrototypeOf(xt)||ht(xt))?this._bodyArrayBuffer=mt(xt):this._bodyText=xt=Object.prototype.toString.call(xt):this._bodyText="",this.headers.get("content-type")||(typeof xt=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):ot&&URLSearchParams.prototype.isPrototypeOf(xt)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},at&&(this.blob=function(){var xt=yt(this);if(xt)return xt;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?yt(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(Ft)}),this.text=function(){var xt,Ct,kt,Nt=yt(this);if(Nt)return Nt;if(this._bodyBlob)return xt=this._bodyBlob,Ct=new FileReader,kt=Ut(Ct),Ct.readAsText(xt),kt;if(this._bodyArrayBuffer)return Promise.resolve(function(Ot){for(var Jt=new Uint8Array(Ot),Dt=new Array(Jt.length),Et=0;Et-1?Nt:kt),this.mode=Ct.mode||this.mode||null,this.signal=Ct.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Ot)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(Ot)}function Rt(xt){var Ct=new FormData;return xt.trim().split("&").forEach(function(kt){if(kt){var Nt=kt.split("="),Ot=Nt.shift().replace(/\+/g," "),Jt=Nt.join("=").replace(/\+/g," ");Ct.append(decodeURIComponent(Ot),decodeURIComponent(Jt))}}),Ct}function St(xt,Ct){Ct||(Ct={}),this.type="default",this.status=Ct.status===void 0?200:Ct.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in Ct?Ct.statusText:"OK",this.headers=new gt(Ct.headers),this.url=Ct.url||"",this._initBody(xt)}Lt.prototype.clone=function(){return new Lt(this,{body:this._bodyInit})},vt.call(Lt.prototype),vt.call(St.prototype),St.prototype.clone=function(){return new St(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new gt(this.headers),url:this.url})},St.error=function(){var xt=new St(null,{status:0,statusText:""});return xt.type="error",xt};var Tt=[301,302,303,307,308];St.redirect=function(xt,Ct){if(Tt.indexOf(Ct)===-1)throw new RangeError("Invalid status code");return new St(null,{status:Ct,headers:{location:xt}})},it.DOMException=rt.DOMException;try{new it.DOMException}catch{it.DOMException=function(xt,Ct){this.message=xt,this.name=Ct;var kt=Error(xt);this.stack=kt.stack},it.DOMException.prototype=Object.create(Error.prototype),it.DOMException.prototype.constructor=it.DOMException}function Bt(xt,Ct){return new Promise(function(kt,Nt){var Ot=new Lt(xt,Ct);if(Ot.signal&&Ot.signal.aborted)return Nt(new it.DOMException("Aborted","AbortError"));var Jt=new XMLHttpRequest;function Dt(){Jt.abort()}Jt.onload=function(){var Et,Pt,zt={status:Jt.status,statusText:Jt.statusText,headers:(Et=Jt.getAllResponseHeaders()||"",Pt=new gt,Et.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(Kt){var nn=Kt.split(":"),Zt=nn.shift().trim();if(Zt){var jt=nn.join(":").trim();Pt.append(Zt,jt)}}),Pt)};zt.url="responseURL"in Jt?Jt.responseURL:zt.headers.get("X-Request-URL");var en="response"in Jt?Jt.response:Jt.responseText;kt(new St(en,zt))},Jt.onerror=function(){Nt(new TypeError("Network request failed"))},Jt.ontimeout=function(){Nt(new TypeError("Network request failed"))},Jt.onabort=function(){Nt(new it.DOMException("Aborted","AbortError"))},Jt.open(Ot.method,Ot.url,!0),Ot.credentials==="include"?Jt.withCredentials=!0:Ot.credentials==="omit"&&(Jt.withCredentials=!1),"responseType"in Jt&&at&&(Jt.responseType="blob"),Ot.headers.forEach(function(Et,Pt){Jt.setRequestHeader(Pt,Et)}),Ot.signal&&(Ot.signal.addEventListener("abort",Dt),Jt.onreadystatechange=function(){Jt.readyState===4&&Ot.signal.removeEventListener("abort",Dt)}),Jt.send(Ot._bodyInit===void 0?null:Ot._bodyInit)})}Bt.polyfill=!0,rt.fetch||(rt.fetch=Bt,rt.Headers=gt,rt.Request=Lt,rt.Response=St),it.Headers=gt,it.Request=Lt,it.Response=St,it.fetch=Bt,Object.defineProperty(it,"__esModule",{value:!0})})({})})(tt),tt.fetch.ponyfill=!0,delete tt.fetch.polyfill;var nt=tt;(o=nt.fetch).default=nt.fetch,o.fetch=nt.fetch,o.Headers=nt.Headers,o.Request=nt.Request,o.Response=nt.Response,s.exports=o},function(s,o,et){(function(tt){const nt=et(216),rt=et(51),it=(ot,st,at)=>({from:it,EnvVarError:et(51),get:function(lt){if(!lt)return ot;if(arguments.length>1)throw new rt("It looks like you passed more than one argument to env.get(). Since env-var@6.0.0 this is no longer supported. To set a default value use env.get(TARGET).default(DEFAULT)");return nt(ot,lt,st||{},at||function(){})},accessors:et(93),logger:et(230)(console.log,ot.NODE_ENV)});s.exports=it(tt===void 0?{}:tt.env)}).call(this,et(2))},function(s,o,et){(function(tt){const nt=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,rt=typeof AbortController=="function"?AbortController:class{constructor(){this.signal=new st}abort(){this.signal.dispatchEvent("abort")}},it=typeof AbortSignal=="function",ot=typeof rt.AbortSignal=="function",st=it?AbortSignal:ot?rt.AbortController:class{constructor(){this.aborted=!1,this._listeners=[]}dispatchEvent(Ft){if(Ft==="abort"){this.aborted=!0;const mt={type:Ft,target:this};this.onabort(mt),this._listeners.forEach(vt=>vt(mt),this)}}onabort(){}addEventListener(Ft,mt){Ft==="abort"&&this._listeners.push(mt)}removeEventListener(Ft,mt){Ft==="abort"&&(this._listeners=this._listeners.filter(vt=>vt!==mt))}},at=new Set,lt=(Ft,mt)=>{const vt="LRU_CACHE_OPTION_"+Ft;ht(vt)&&ct(vt,Ft+" option","options."+mt,Ut)},ut=(Ft,mt)=>{const vt="LRU_CACHE_METHOD_"+Ft;if(ht(vt)){const{prototype:At}=Ut,{get:Lt}=Object.getOwnPropertyDescriptor(At,Ft);ct(vt,Ft+" method",`cache.${mt}()`,Lt)}},dt=(...Ft)=>{typeof tt=="object"&&tt&&typeof tt.emitWarning=="function"?tt.emitWarning(...Ft):console.error(...Ft)},ht=Ft=>!at.has(Ft),ct=(Ft,mt,vt,At)=>{at.add(Ft),dt(`The ${mt} is deprecated. Please use ${vt} instead.`,"DeprecationWarning",Ft,At)},pt=Ft=>Ft&&Ft===Math.floor(Ft)&&Ft>0&&isFinite(Ft),ft=Ft=>pt(Ft)?Ft<=Math.pow(2,8)?Uint8Array:Ft<=Math.pow(2,16)?Uint16Array:Ft<=Math.pow(2,32)?Uint32Array:Ft<=Number.MAX_SAFE_INTEGER?gt:null:null;class gt extends Array{constructor(mt){super(mt),this.fill(0)}}class yt{constructor(mt){if(mt===0)return[];const vt=ft(mt);this.heap=new vt(mt),this.length=0}push(mt){this.heap[this.length++]=mt}pop(){return this.heap[--this.length]}}class Ut{constructor(mt={}){const{max:vt=0,ttl:At,ttlResolution:Lt=1,ttlAutopurge:Rt,updateAgeOnGet:St,updateAgeOnHas:Tt,allowStale:Bt,dispose:xt,disposeAfter:Ct,noDisposeOnSet:kt,noUpdateTTL:Nt,maxSize:Ot=0,maxEntrySize:Jt=0,sizeCalculation:Dt,fetchMethod:Et,fetchContext:Pt,noDeleteOnFetchRejection:zt,noDeleteOnStaleGet:en}=mt,{length:Kt,maxAge:nn,stale:Zt}=mt instanceof Ut?{}:mt;if(vt!==0&&!pt(vt))throw new TypeError("max option must be a nonnegative integer");const jt=vt?ft(vt):Array;if(!jt)throw new Error("invalid max value: "+vt);if(this.max=vt,this.maxSize=Ot,this.maxEntrySize=Jt||this.maxSize,this.sizeCalculation=Dt||Kt,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=Et||null,this.fetchMethod&&typeof this.fetchMethod!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=Pt,!this.fetchMethod&&Pt!==void 0)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(vt).fill(null),this.valList=new Array(vt).fill(null),this.next=new jt(vt),this.prev=new jt(vt),this.head=0,this.tail=0,this.free=new yt(vt),this.initialFill=1,this.size=0,typeof xt=="function"&&(this.dispose=xt),typeof Ct=="function"?(this.disposeAfter=Ct,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!kt,this.noUpdateTTL=!!Nt,this.noDeleteOnFetchRejection=!!zt,this.maxEntrySize!==0){if(this.maxSize!==0&&!pt(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!pt(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!Bt||!!Zt,this.noDeleteOnStaleGet=!!en,this.updateAgeOnGet=!!St,this.updateAgeOnHas=!!Tt,this.ttlResolution=pt(Lt)||Lt===0?Lt:1,this.ttlAutopurge=!!Rt,this.ttl=At||nn||0,this.ttl){if(!pt(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(this.max===0&&this.ttl===0&&this.maxSize===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const Vt="LRU_CACHE_UNBOUNDED";ht(Vt)&&(at.add(Vt),dt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Vt,Ut))}Zt&<("stale","allowStale"),nn&<("maxAge","ttl"),Kt&<("length","sizeCalculation")}getRemainingTTL(mt){return this.has(mt,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new gt(this.max),this.starts=new gt(this.max),this.setItemTTL=(At,Lt,Rt=nt.now())=>{if(this.starts[At]=Lt!==0?Rt:0,this.ttls[At]=Lt,Lt!==0&&this.ttlAutopurge){const St=setTimeout(()=>{this.isStale(At)&&this.delete(this.keyList[At])},Lt+1);St.unref&&St.unref()}},this.updateItemAge=At=>{this.starts[At]=this.ttls[At]!==0?nt.now():0};let mt=0;const vt=()=>{const At=nt.now();if(this.ttlResolution>0){mt=At;const Lt=setTimeout(()=>mt=0,this.ttlResolution);Lt.unref&&Lt.unref()}return At};this.getRemainingTTL=At=>{const Lt=this.keyMap.get(At);return Lt===void 0?0:this.ttls[Lt]===0||this.starts[Lt]===0?1/0:this.starts[Lt]+this.ttls[Lt]-(mt||vt())},this.isStale=At=>this.ttls[At]!==0&&this.starts[At]!==0&&(mt||vt())-this.starts[At]>this.ttls[At]}updateItemAge(mt){}setItemTTL(mt,vt,At){}isStale(mt){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new gt(this.max),this.removeItemSize=mt=>{this.calculatedSize-=this.sizes[mt],this.sizes[mt]=0},this.requireSize=(mt,vt,At,Lt)=>{if(!pt(At)){if(!Lt)throw new TypeError("invalid size value (must be positive integer)");if(typeof Lt!="function")throw new TypeError("sizeCalculation must be a function");if(At=Lt(vt,mt),!pt(At))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return At},this.addItemSize=(mt,vt)=>{this.sizes[mt]=vt;const At=this.maxSize-this.sizes[mt];for(;this.calculatedSize>At;)this.evict(!0);this.calculatedSize+=this.sizes[mt]}}removeItemSize(mt){}addItemSize(mt,vt){}requireSize(mt,vt,At,Lt){if(At||Lt)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.tail;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.head);)vt=this.prev[vt]}*rindexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.head;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.tail);)vt=this.next[vt]}isValidIndex(mt){return this.keyMap.get(this.keyList[mt])===mt}*entries(){for(const mt of this.indexes())yield[this.keyList[mt],this.valList[mt]]}*rentries(){for(const mt of this.rindexes())yield[this.keyList[mt],this.valList[mt]]}*keys(){for(const mt of this.indexes())yield this.keyList[mt]}*rkeys(){for(const mt of this.rindexes())yield this.keyList[mt]}*values(){for(const mt of this.indexes())yield this.valList[mt]}*rvalues(){for(const mt of this.rindexes())yield this.valList[mt]}[Symbol.iterator](){return this.entries()}find(mt,vt={}){for(const At of this.indexes())if(mt(this.valList[At],this.keyList[At],this))return this.get(this.keyList[At],vt)}forEach(mt,vt=this){for(const At of this.indexes())mt.call(vt,this.valList[At],this.keyList[At],this)}rforEach(mt,vt=this){for(const At of this.rindexes())mt.call(vt,this.valList[At],this.keyList[At],this)}get prune(){return ut("prune","purgeStale"),this.purgeStale}purgeStale(){let mt=!1;for(const vt of this.rindexes({allowStale:!0}))this.isStale(vt)&&(this.delete(this.keyList[vt]),mt=!0);return mt}dump(){const mt=[];for(const vt of this.indexes({allowStale:!0})){const At=this.keyList[vt],Lt=this.valList[vt],Rt={value:this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt};if(this.ttls){Rt.ttl=this.ttls[vt];const St=nt.now()-this.starts[vt];Rt.start=Math.floor(Date.now()-St)}this.sizes&&(Rt.size=this.sizes[vt]),mt.unshift([At,Rt])}return mt}load(mt){this.clear();for(const[vt,At]of mt){if(At.start){const Lt=Date.now()-At.start;At.start=nt.now()-Lt}this.set(vt,At.value,At)}}dispose(mt,vt,At){}set(mt,vt,{ttl:At=this.ttl,start:Lt,noDisposeOnSet:Rt=this.noDisposeOnSet,size:St=0,sizeCalculation:Tt=this.sizeCalculation,noUpdateTTL:Bt=this.noUpdateTTL}={}){if(St=this.requireSize(mt,vt,St,Tt),this.maxEntrySize&&St>this.maxEntrySize)return this;let xt=this.size===0?void 0:this.keyMap.get(mt);if(xt===void 0)xt=this.newIndex(),this.keyList[xt]=mt,this.valList[xt]=vt,this.keyMap.set(mt,xt),this.next[this.tail]=xt,this.prev[xt]=this.tail,this.tail=xt,this.size++,this.addItemSize(xt,St),Bt=!1;else{const Ct=this.valList[xt];vt!==Ct&&(this.isBackgroundFetch(Ct)?Ct.__abortController.abort():Rt||(this.dispose(Ct,mt,"set"),this.disposeAfter&&this.disposed.push([Ct,mt,"set"])),this.removeItemSize(xt),this.valList[xt]=vt,this.addItemSize(xt,St)),this.moveToTail(xt)}if(At===0||this.ttl!==0||this.ttls||this.initializeTTLTracking(),Bt||this.setItemTTL(xt,At,Lt),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return this.size===0?this.tail:this.size===this.max&&this.max!==0?this.evict(!1):this.free.length!==0?this.free.pop():this.initialFill++}pop(){if(this.size){const mt=this.valList[this.head];return this.evict(!0),mt}}evict(mt){const vt=this.head,At=this.keyList[vt],Lt=this.valList[vt];return this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,At,"evict"),this.disposeAfter&&this.disposed.push([Lt,At,"evict"])),this.removeItemSize(vt),mt&&(this.keyList[vt]=null,this.valList[vt]=null,this.free.push(vt)),this.head=this.next[vt],this.keyMap.delete(At),this.size--,vt}has(mt,{updateAgeOnHas:vt=this.updateAgeOnHas}={}){const At=this.keyMap.get(mt);return At!==void 0&&!this.isStale(At)&&(vt&&this.updateItemAge(At),!0)}peek(mt,{allowStale:vt=this.allowStale}={}){const At=this.keyMap.get(mt);if(At!==void 0&&(vt||!this.isStale(At))){const Lt=this.valList[At];return this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt}}backgroundFetch(mt,vt,At,Lt){const Rt=vt===void 0?void 0:this.valList[vt];if(this.isBackgroundFetch(Rt))return Rt;const St=new rt,Tt={signal:St.signal,options:At,context:Lt},Bt=new Promise(xt=>xt(this.fetchMethod(mt,Rt,Tt))).then(xt=>(St.signal.aborted||this.set(mt,xt,Tt.options),xt),xt=>{if(this.valList[vt]===Bt&&(!At.noDeleteOnFetchRejection||Bt.__staleWhileFetching===void 0?this.delete(mt):this.valList[vt]=Bt.__staleWhileFetching),Bt.__returned===Bt)throw xt});return Bt.__abortController=St,Bt.__staleWhileFetching=Rt,Bt.__returned=null,vt===void 0?(this.set(mt,Bt,Tt.options),vt=this.keyMap.get(mt)):this.valList[vt]=Bt,Bt}isBackgroundFetch(mt){return mt&&typeof mt=="object"&&typeof mt.then=="function"&&Object.prototype.hasOwnProperty.call(mt,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(mt,"__returned")&&(mt.__returned===mt||mt.__returned===null)}async fetch(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet,ttl:Rt=this.ttl,noDisposeOnSet:St=this.noDisposeOnSet,size:Tt=0,sizeCalculation:Bt=this.sizeCalculation,noUpdateTTL:xt=this.noUpdateTTL,noDeleteOnFetchRejection:Ct=this.noDeleteOnFetchRejection,fetchContext:kt=this.fetchContext,forceRefresh:Nt=!1}={}){if(!this.fetchMethod)return this.get(mt,{allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt});const Ot={allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt,ttl:Rt,noDisposeOnSet:St,size:Tt,sizeCalculation:Bt,noUpdateTTL:xt,noDeleteOnFetchRejection:Ct};let Jt=this.keyMap.get(mt);if(Jt===void 0){const Dt=this.backgroundFetch(mt,Jt,Ot,kt);return Dt.__returned=Dt}{const Dt=this.valList[Jt];if(this.isBackgroundFetch(Dt))return vt&&Dt.__staleWhileFetching!==void 0?Dt.__staleWhileFetching:Dt.__returned=Dt;if(!Nt&&!this.isStale(Jt))return this.moveToTail(Jt),At&&this.updateItemAge(Jt),Dt;const Et=this.backgroundFetch(mt,Jt,Ot,kt);return vt&&Et.__staleWhileFetching!==void 0?Et.__staleWhileFetching:Et.__returned=Et}}get(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet}={}){const Rt=this.keyMap.get(mt);if(Rt!==void 0){const St=this.valList[Rt],Tt=this.isBackgroundFetch(St);return this.isStale(Rt)?Tt?vt?St.__staleWhileFetching:void 0:(Lt||this.delete(mt),vt?St:void 0):Tt?void 0:(this.moveToTail(Rt),At&&this.updateItemAge(Rt),St)}}connect(mt,vt){this.prev[vt]=mt,this.next[mt]=vt}moveToTail(mt){mt!==this.tail&&(mt===this.head?this.head=this.next[mt]:this.connect(this.prev[mt],this.next[mt]),this.connect(this.tail,mt),this.tail=mt)}get del(){return ut("del","delete"),this.delete}delete(mt){let vt=!1;if(this.size!==0){const At=this.keyMap.get(mt);if(At!==void 0)if(vt=!0,this.size===1)this.clear();else{this.removeItemSize(At);const Lt=this.valList[At];this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,mt,"delete"),this.disposeAfter&&this.disposed.push([Lt,mt,"delete"])),this.keyMap.delete(mt),this.keyList[At]=null,this.valList[At]=null,At===this.tail?this.tail=this.prev[At]:At===this.head?this.head=this.next[At]:(this.next[this.prev[At]]=this.next[At],this.prev[this.next[At]]=this.prev[At]),this.size--,this.free.push(At)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return vt}clear(){for(const mt of this.rindexes({allowStale:!0})){const vt=this.valList[mt];if(this.isBackgroundFetch(vt))vt.__abortController.abort();else{const At=this.keyList[mt];this.dispose(vt,At,"delete"),this.disposeAfter&&this.disposed.push([vt,At,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return ut("reset","clear"),this.clear}get length(){return((mt,vt)=>{const At="LRU_CACHE_PROPERTY_"+mt;if(ht(At)){const{prototype:Lt}=Ut,{get:Rt}=Object.getOwnPropertyDescriptor(Lt,mt);ct(At,mt+" property","cache."+vt,Rt)}})("length","size"),this.size}static get AbortController(){return rt}static get AbortSignal(){return st}}s.exports=Ut}).call(this,et(2))},function(s,o,et){var tt=et(42).Colorizer;s.exports=function(nt){return tt.addColors(nt.colors||nt),nt}},function(s,o,et){var tt={};s.exports=tt,tt.themes={};var nt=et(13),rt=tt.styles=et(106),it=Object.defineProperties,ot=new RegExp(/[\r\n]+/g);tt.supportsColor=et(107).supportsColor,tt.enabled===void 0&&(tt.enabled=tt.supportsColor()!==!1),tt.enable=function(){tt.enabled=!0},tt.disable=function(){tt.enabled=!1},tt.stripColors=tt.strip=function(ft){return(""+ft).replace(/\x1B\[\d+m/g,"")},tt.stylize=function(ft,gt){if(!tt.enabled)return ft+"";var yt=rt[gt];return!yt&> in tt?tt[gt](ft):yt.open+ft+yt.close};var st=/[|\\{}()[\]^$+*?.]/g;function at(ft){var gt=function yt(){return ht.apply(yt,arguments)};return gt._styles=ft,gt.__proto__=dt,gt}var lt,ut=(lt={},rt.grey=rt.gray,Object.keys(rt).forEach(function(ft){rt[ft].closeRe=new RegExp(function(gt){if(typeof gt!="string")throw new TypeError("Expected a string");return gt.replace(st,"\\$&")}(rt[ft].close),"g"),lt[ft]={get:function(){return at(this._styles.concat(ft))}}}),lt),dt=it(function(){},ut);function ht(){var ft=Array.prototype.slice.call(arguments),gt=ft.map(function(vt){return vt!=null&&vt.constructor===String?vt:nt.inspect(vt)}).join(" ");if(!tt.enabled||!gt)return gt;for(var yt=gt.indexOf(` `)!=-1,Ut=this._styles,Ft=Ut.length;Ft--;){var mt=rt[Ut[Ft]];gt=mt.open+gt.replace(mt.closeRe,mt.open)+mt.close,yt&&(gt=gt.replace(ot,function(vt){return mt.close+vt+mt.open}))}return gt}tt.setTheme=function(ft){if(typeof ft!="string")for(var gt in ft)(function(yt){tt[yt]=function(Ut){if(typeof ft[yt]=="object"){var Ft=Ut;for(var mt in ft[yt])Ft=tt[ft[yt][mt]](Ft);return Ft}return tt[ft[yt]](Ut)}})(gt);else console.log("colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));")};var ct=function(ft,gt){var yt=gt.split("");return(yt=yt.map(ft)).join("")};for(var pt in tt.trap=et(109),tt.zalgo=et(110),tt.maps={},tt.maps.america=et(111)(tt),tt.maps.zebra=et(112)(tt),tt.maps.rainbow=et(113)(tt),tt.maps.random=et(114)(tt),tt.maps)(function(ft){tt[ft]=function(gt){return ct(tt.maps[ft],gt)}})(pt);it(tt,function(){var ft={};return Object.keys(ut).forEach(function(gt){ft[gt]={get:function(){return at([gt])}}}),ft}())},function(s,o){s.exports=function(et){return et&&typeof et=="object"&&typeof et.copy=="function"&&typeof et.fill=="function"&&typeof et.readUInt8=="function"}},function(s,o){typeof Object.create=="function"?s.exports=function(et,tt){et.super_=tt,et.prototype=Object.create(tt.prototype,{constructor:{value:et,enumerable:!1,writable:!0,configurable:!0}})}:s.exports=function(et,tt){et.super_=tt;var nt=function(){};nt.prototype=tt.prototype,et.prototype=new nt,et.prototype.constructor=et}},function(s,o){var et={};s.exports=et;var tt={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightRed:[91,39],brightGreen:[92,39],brightYellow:[93,39],brightBlue:[94,39],brightMagenta:[95,39],brightCyan:[96,39],brightWhite:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgGray:[100,49],bgGrey:[100,49],bgBrightRed:[101,49],bgBrightGreen:[102,49],bgBrightYellow:[103,49],bgBrightBlue:[104,49],bgBrightMagenta:[105,49],bgBrightCyan:[106,49],bgBrightWhite:[107,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(tt).forEach(function(nt){var rt=tt[nt],it=et[nt]=[];it.open="\x1B["+rt[0]+"m",it.close="\x1B["+rt[1]+"m"})},function(s,o,et){(function(tt){var nt=et(16),rt=et(108),it=tt.env,ot=void 0;function st(at){return function(lt){return lt!==0&&{level:lt,hasBasic:!0,has256:lt>=2,has16m:lt>=3}}(function(lt){if(ot===!1)return 0;if(rt("color=16m")||rt("color=full")||rt("color=truecolor"))return 3;if(rt("color=256"))return 2;if(lt&&!lt.isTTY&&ot!==!0)return 0;var ut=ot?1:0;if(tt.platform==="win32"){var dt=nt.release().split(".");return Number(tt.versions.node.split(".")[0])>=8&&Number(dt[0])>=10&&Number(dt[2])>=10586?Number(dt[2])>=14931?3:2:1}if("CI"in it)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(function(ct){return ct in it})||it.CI_NAME==="codeship"?1:ut;if("TEAMCITY_VERSION"in it)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(it.TEAMCITY_VERSION)?1:0;if("TERM_PROGRAM"in it){var ht=parseInt((it.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(it.TERM_PROGRAM){case"iTerm.app":return ht>=3?3:2;case"Hyper":return 3;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test("xterm")?2:/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test("xterm")||"COLORTERM"in it?1:ut}(at))}rt("no-color")||rt("no-colors")||rt("color=false")?ot=!1:(rt("color")||rt("colors")||rt("color=true")||rt("color=always"))&&(ot=!0),"FORCE_COLOR"in it&&(ot=it.FORCE_COLOR.length===0||parseInt(it.FORCE_COLOR,10)!==0),s.exports={supportsColor:st,stdout:st(tt.stdout),stderr:st(tt.stderr)}}).call(this,et(2))},function(s,o,et){(function(tt){s.exports=function(nt,rt){var it=(rt=rt||tt.argv).indexOf("--"),ot=/^-{1,2}/.test(nt)?"":"--",st=rt.indexOf(ot+nt);return st!==-1&&(it===-1||st0&&arguments[0]!==void 0?arguments[0]:{};tt(this,ut),ct.levels||(ct.levels=st.cli.levels),this.colorizer=new rt(ct),this.padder=new it(ct),this.options=ct}var dt,ht;return dt=ut,(ht=[{key:"transform",value:function(ct,pt){return this.colorizer.transform(this.padder.transform(ct,pt),pt),ct[at]="".concat(ct.level,":").concat(ct.message),ct}}])&&nt(dt.prototype,ht),Object.defineProperty(dt,"prototype",{writable:!1}),ut}();s.exports=function(ut){return new lt(ut)},s.exports.Format=lt},function(s,o,et){var tt=et(8);function nt(it){if(it.every(rt))return function(ot){for(var st=ot,at=0;at1&&arguments[1]!==void 0?arguments[1]:{},st="metadata";ot.key&&(st=ot.key);var at=[];return ot.fillExcept||ot.fillWith||(at.push("level"),at.push("message")),ot.fillExcept&&(at=ot.fillExcept),at.length>0?nt(it,at,st):ot.fillWith?rt(it,ot.fillWith,st):it})},function(s,o,et){var tt=et(8),nt=et(128);s.exports=tt(function(rt){var it=+new Date;return(void 0).diff=it-((void 0).prevTime||it),(void 0).prevTime=it,rt.ms="+".concat(nt((void 0).diff)),rt})},function(s,o){var et=1e3,tt=6e4,nt=60*tt,rt=24*nt;function it(ot,st,at,lt){var ut=st>=1.5*at;return Math.round(ot/at)+" "+lt+(ut?"s":"")}s.exports=function(ot,st){st=st||{};var at=typeof ot;if(at==="string"&&ot.length>0)return function(lt){if(!((lt=String(lt)).length>100)){var ut=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(lt);if(ut){var dt=parseFloat(ut[1]);switch((ut[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*dt;case"weeks":case"week":case"w":return 6048e5*dt;case"days":case"day":case"d":return dt*rt;case"hours":case"hour":case"hrs":case"hr":case"h":return dt*nt;case"minutes":case"minute":case"mins":case"min":case"m":return dt*tt;case"seconds":case"second":case"secs":case"sec":case"s":return dt*et;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return dt;default:return}}}}(ot);if(at==="number"&&isFinite(ot))return st.long?function(lt){var ut=Math.abs(lt);return ut>=rt?it(lt,ut,rt,"day"):ut>=nt?it(lt,ut,nt,"hour"):ut>=tt?it(lt,ut,tt,"minute"):ut>=et?it(lt,ut,et,"second"):lt+" ms"}(ot):function(lt){var ut=Math.abs(lt);return ut>=rt?Math.round(lt/rt)+"d":ut>=nt?Math.round(lt/nt)+"h":ut>=tt?Math.round(lt/tt)+"m":ut>=et?Math.round(lt/et)+"s":lt+"ms"}(ot);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(ot))}},function(s,o,et){var tt=et(13).inspect,nt=et(8),rt=et(4),it=rt.LEVEL,ot=rt.MESSAGE,st=rt.SPLAT;s.exports=nt(function(at){var lt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ut=Object.assign({},at);return delete ut[it],delete ut[ot],delete ut[st],at[ot]=tt(ut,!1,lt.depth||null,lt.colorize),at})},function(s,o,et){function tt(it,ot){for(var st=0;stut.length)&&(dt=ut.length);for(var ht=0,ct=new Array(dt);ht1?ft.splice(0):ft,Ut=yt.length;if(Ut)for(var Ft=0;Ft1&&arguments[1]!==void 0?arguments[1]:{};return it.format&&(rt.timestamp=typeof it.format=="function"?it.format():tt.format(new Date,it.format)),rt.timestamp||(rt.timestamp=new Date().toISOString()),it.alias&&(rt[it.alias]=rt.timestamp),rt})},function(s,o,et){et.r(o),et.d(o,"assign",function(){return st}),et.d(o,"format",function(){return St}),et.d(o,"parse",function(){return Tt}),et.d(o,"defaultI18n",function(){return dt}),et.d(o,"setGlobalDateI18n",function(){return ct}),et.d(o,"setGlobalDateMasks",function(){return Rt});var tt=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,nt="[^\\s]+",rt=/\[([^]*?)\]/gm;function it(xt,Ct){for(var kt=[],Nt=0,Ot=xt.length;Nt-1?Nt:null}};function st(xt){for(var Ct=[],kt=1;kt3?0:(xt-xt%10!=10?1:0)*xt%10]}},ht=st({},dt),ct=function(xt){return ht=st(ht,xt)},pt=function(xt){return xt.replace(/[|\\{()[^$+*?.-]/g,"\\$&")},ft=function(xt,Ct){for(Ct===void 0&&(Ct=2),xt=String(xt);xt.length0?"-":"+")+ft(100*Math.floor(Math.abs(Ct)/60)+Math.abs(Ct)%60,4)},Z:function(xt){var Ct=xt.getTimezoneOffset();return(Ct>0?"-":"+")+ft(Math.floor(Math.abs(Ct)/60),2)+":"+ft(Math.abs(Ct)%60,2)}},yt=function(xt){return+xt-1},Ut=[null,"[1-9]\\d?"],Ft=[null,nt],mt=["isPm",nt,function(xt,Ct){var kt=xt.toLowerCase();return kt===Ct.amPm[0]?0:kt===Ct.amPm[1]?1:null}],vt=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(xt){var Ct=(xt+"").match(/([+-]|\d\d)/gi);if(Ct){var kt=60*+Ct[1]+parseInt(Ct[2],10);return Ct[0]==="+"?kt:-kt}return 0}],At={D:["day","[1-9]\\d?"],DD:["day","\\d\\d"],Do:["day","[1-9]\\d?"+nt,function(xt){return parseInt(xt,10)}],M:["month","[1-9]\\d?",yt],MM:["month","\\d\\d",yt],YY:["year","\\d\\d",function(xt){var Ct=+(""+new Date().getFullYear()).substr(0,2);return+(""+(+xt>68?Ct-1:Ct)+xt)}],h:["hour","[1-9]\\d?",void 0,"isPm"],hh:["hour","\\d\\d",void 0,"isPm"],H:["hour","[1-9]\\d?"],HH:["hour","\\d\\d"],m:["minute","[1-9]\\d?"],mm:["minute","\\d\\d"],s:["second","[1-9]\\d?"],ss:["second","\\d\\d"],YYYY:["year","\\d{4}"],S:["millisecond","\\d",function(xt){return 100*+xt}],SS:["millisecond","\\d\\d",function(xt){return 10*+xt}],SSS:["millisecond","\\d{3}"],d:Ut,dd:Ut,ddd:Ft,dddd:Ft,MMM:["month",nt,ot("monthNamesShort")],MMMM:["month",nt,ot("monthNames")],a:mt,A:mt,ZZ:vt,Z:vt},Lt={default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},Rt=function(xt){return st(Lt,xt)},St=function(xt,Ct,kt){if(Ct===void 0&&(Ct=Lt.default),kt===void 0&&(kt={}),typeof xt=="number"&&(xt=new Date(xt)),Object.prototype.toString.call(xt)!=="[object Date]"||isNaN(xt.getTime()))throw new Error("Invalid Date pass to format");var Nt=[];Ct=(Ct=Lt[Ct]||Ct).replace(rt,function(Wt,Dt){return Nt.push(Dt),"@@@"});var Ot=st(st({},ht),kt);return(Ct=Ct.replace(tt,function(Wt){return gt[Wt](xt,Ot)})).replace(/@@@/g,function(){return Nt.shift()})};function Tt(xt,Ct,kt){if(kt===void 0&&(kt={}),typeof Ct!="string")throw new Error("Invalid format in fecha parse");if(Ct=Lt[Ct]||Ct,xt.length>1e3)return null;var Nt={year:new Date().getFullYear(),month:0,day:1,hour:0,minute:0,second:0,millisecond:0,isPm:null,timezoneOffset:null},Ot=[],Wt=[],Dt=Ct.replace(rt,function(qt,on){return Wt.push(pt(on)),"@@@"}),Et={},Pt={};Dt=pt(Dt).replace(tt,function(qt){var on=At[qt],Xt=on[0],dn=on[1],_n=on[3];if(Et[Xt])throw new Error("Invalid format. "+Xt+" specified twice in format");return Et[Xt]=!0,_n&&(Pt[_n]=!0),Ot.push(on),"("+dn+")"}),Object.keys(Pt).forEach(function(qt){if(!Et[qt])throw new Error("Invalid format. "+qt+" is required in specified format")}),Dt=Dt.replace(/@@@/g,function(){return Wt.shift()});var zt=xt.match(new RegExp(Dt,"i"));if(!zt)return null;for(var en=st(st({},ht),kt),Kt=1;Kt","maintainers":["David Hyde "],"repository":{"type":"git","url":"https://github.com/winstonjs/winston.git"},"keywords":["winston","logger","logging","logs","sysadmin","bunyan","pino","loglevel","tools","json","stream"],"dependencies":{"@dabh/diagnostics":"^2.0.2","@colors/colors":"1.5.0","async":"^3.2.3","is-stream":"^2.0.0","logform":"^2.4.0","one-time":"^1.0.0","readable-stream":"^3.4.0","safe-stable-stringify":"^2.3.1","stack-trace":"0.0.x","triple-beam":"^1.3.0","winston-transport":"^4.5.0"},"devDependencies":{"@babel/cli":"^7.17.0","@babel/core":"^7.17.2","@babel/preset-env":"^7.16.7","@dabh/eslint-config-populist":"^5.0.0","@types/node":"^18.0.0","abstract-winston-transport":"^0.5.1","assume":"^2.2.0","cross-spawn-async":"^2.2.5","eslint":"^8.9.0","hock":"^1.4.1","mocha":"8.1.3","nyc":"^15.1.0","rimraf":"^3.0.2","split2":"^4.1.0","std-mocks":"^1.0.1","through2":"^4.0.2","winston-compat":"^0.1.5"},"main":"./lib/winston.js","browser":"./dist/winston","types":"./index.d.ts","scripts":{"lint":"eslint lib/*.js lib/winston/*.js lib/winston/**/*.js --resolve-plugins-relative-to ./node_modules/@dabh/eslint-config-populist","test":"mocha","test:coverage":"nyc npm run test:unit","test:unit":"mocha test/unit","test:integration":"mocha test/integration","build":"rimraf dist && babel lib -d dist","prepublishOnly":"npm run build"},"engines":{"node":">= 12.0.0"},"license":"MIT"}')},function(s,o,et){Object.defineProperty(o,"Console",{configurable:!0,enumerable:!0,get:function(){return et(138)}}),Object.defineProperty(o,"File",{configurable:!0,enumerable:!0,get:function(){return et(152)}}),Object.defineProperty(o,"Http",{configurable:!0,enumerable:!0,get:function(){return et(194)}}),Object.defineProperty(o,"Stream",{configurable:!0,enumerable:!0,get:function(){return et(206)}})},function(s,o,et){(function(tt){function nt(ft){return(nt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(gt){return typeof gt}:function(gt){return gt&&typeof Symbol=="function"&>.constructor===Symbol&>!==Symbol.prototype?"symbol":typeof gt})(ft)}function rt(ft,gt){if(!(ft instanceof gt))throw new TypeError("Cannot call a class as a function")}function it(ft,gt){for(var yt=0;yt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var yt,Ut=lt(ft);if(gt){var Ft=lt(this).constructor;yt=Reflect.construct(Ut,arguments,Ft)}else yt=Ut.apply(this,arguments);return at(this,yt)}}function at(ft,gt){if(gt&&(nt(gt)==="object"||typeof gt=="function"))return gt;if(gt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(yt){if(yt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return yt}(ft)}function lt(ft){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(gt){return gt.__proto__||Object.getPrototypeOf(gt)})(ft)}var ut=et(16),dt=et(4),ht=dt.LEVEL,ct=dt.MESSAGE,pt=et(14);s.exports=function(ft){(function(mt,vt){if(typeof vt!="function"&&vt!==null)throw new TypeError("Super expression must either be null or a function");mt.prototype=Object.create(vt&&vt.prototype,{constructor:{value:mt,writable:!0,configurable:!0}}),Object.defineProperty(mt,"prototype",{writable:!1}),vt&&ot(mt,vt)})(Ft,ft);var gt,yt,Ut=st(Ft);function Ft(){var mt,vt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return rt(this,Ft),(mt=Ut.call(this,vt)).name=vt.name||"console",mt.stderrLevels=mt._stringArrayToSet(vt.stderrLevels),mt.consoleWarnLevels=mt._stringArrayToSet(vt.consoleWarnLevels),mt.eol=typeof vt.eol=="string"?vt.eol:ut.EOL,mt.setMaxListeners(30),mt}return gt=Ft,(yt=[{key:"log",value:function(mt,vt){var At=this;return tt(function(){return At.emit("logged",mt)}),this.stderrLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.error(mt[ct]),void(vt&&vt())):this.consoleWarnLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.warn(mt[ct]),void(vt&&vt())):(console._stdout?console._stdout.write("".concat(mt[ct]).concat(this.eol)):console.log(mt[ct]),void(vt&&vt()))}},{key:"_stringArrayToSet",value:function(mt,vt){if(!mt)return{};if(vt=vt||"Cannot make set from type other than Array of string elements",!Array.isArray(mt))throw new Error(vt);return mt.reduce(function(At,Lt){if(typeof Lt!="string")throw new Error(vt);return At[Lt]=!0,At},{})}}])&&it(gt.prototype,yt),Object.defineProperty(gt,"prototype",{writable:!1}),Ft}(pt)}).call(this,et(19).setImmediate)},function(s,o,et){(function(tt,nt){(function(rt,it){if(!rt.setImmediate){var ot,st,at,lt,ut,dt=1,ht={},ct=!1,pt=rt.document,ft=Object.getPrototypeOf&&Object.getPrototypeOf(rt);ft=ft&&ft.setTimeout?ft:rt,{}.toString.call(rt.process)==="[object process]"?ot=function(Ut){nt.nextTick(function(){yt(Ut)})}:function(){if(rt.postMessage&&!rt.importScripts){var Ut=!0,Ft=rt.onmessage;return rt.onmessage=function(){Ut=!1},rt.postMessage("","*"),rt.onmessage=Ft,Ut}}()?(lt="setImmediate$"+Math.random()+"$",ut=function(Ut){Ut.source===rt&&typeof Ut.data=="string"&&Ut.data.indexOf(lt)===0&&yt(+Ut.data.slice(lt.length))},rt.addEventListener?rt.addEventListener("message",ut,!1):rt.attachEvent("onmessage",ut),ot=function(Ut){rt.postMessage(lt+Ut,"*")}):rt.MessageChannel?((at=new MessageChannel).port1.onmessage=function(Ut){yt(Ut.data)},ot=function(Ut){at.port2.postMessage(Ut)}):pt&&"onreadystatechange"in pt.createElement("script")?(st=pt.documentElement,ot=function(Ut){var Ft=pt.createElement("script");Ft.onreadystatechange=function(){yt(Ut),Ft.onreadystatechange=null,st.removeChild(Ft),Ft=null},st.appendChild(Ft)}):ot=function(Ut){setTimeout(yt,0,Ut)},ft.setImmediate=function(Ut){typeof Ut!="function"&&(Ut=new Function(""+Ut));for(var Ft=new Array(arguments.length-1),mt=0;mt"u"?tt===void 0?this:tt:self)}).call(this,et(6),et(2))},function(s,o,et){o.byteLength=function(ut){var dt=at(ut),ht=dt[0],ct=dt[1];return 3*(ht+ct)/4-ct},o.toByteArray=function(ut){var dt,ht,ct=at(ut),pt=ct[0],ft=ct[1],gt=new rt(function(Ft,mt,vt){return 3*(mt+vt)/4-vt}(0,pt,ft)),yt=0,Ut=ft>0?pt-4:pt;for(ht=0;ht>16&255,gt[yt++]=dt>>8&255,gt[yt++]=255&dt;return ft===2&&(dt=nt[ut.charCodeAt(ht)]<<2|nt[ut.charCodeAt(ht+1)]>>4,gt[yt++]=255&dt),ft===1&&(dt=nt[ut.charCodeAt(ht)]<<10|nt[ut.charCodeAt(ht+1)]<<4|nt[ut.charCodeAt(ht+2)]>>2,gt[yt++]=dt>>8&255,gt[yt++]=255&dt),gt},o.fromByteArray=function(ut){for(var dt,ht=ut.length,ct=ht%3,pt=[],ft=0,gt=ht-ct;ftgt?gt:ft+16383));return ct===1?(dt=ut[ht-1],pt.push(tt[dt>>2]+tt[dt<<4&63]+"==")):ct===2&&(dt=(ut[ht-2]<<8)+ut[ht-1],pt.push(tt[dt>>10]+tt[dt>>4&63]+tt[dt<<2&63]+"=")),pt.join("")};for(var tt=[],nt=[],rt=typeof Uint8Array<"u"?Uint8Array:Array,it="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ot=0,st=it.length;ot0)throw new Error("Invalid string. Length must be a multiple of 4");var ht=ut.indexOf("=");return ht===-1&&(ht=dt),[ht,ht===dt?0:4-ht%4]}function lt(ut,dt,ht){for(var ct,pt,ft=[],gt=dt;gt>18&63]+tt[pt>>12&63]+tt[pt>>6&63]+tt[63&pt]);return ft.join("")}nt["-".charCodeAt(0)]=62,nt["_".charCodeAt(0)]=63},function(s,o){o.read=function(et,tt,nt,rt,it){var ot,st,at=8*it-rt-1,lt=(1<>1,dt=-7,ht=nt?it-1:0,ct=nt?-1:1,pt=et[tt+ht];for(ht+=ct,ot=pt&(1<<-dt)-1,pt>>=-dt,dt+=at;dt>0;ot=256*ot+et[tt+ht],ht+=ct,dt-=8);for(st=ot&(1<<-dt)-1,ot>>=-dt,dt+=rt;dt>0;st=256*st+et[tt+ht],ht+=ct,dt-=8);if(ot===0)ot=1-ut;else{if(ot===lt)return st?NaN:1/0*(pt?-1:1);st+=Math.pow(2,rt),ot-=ut}return(pt?-1:1)*st*Math.pow(2,ot-rt)},o.write=function(et,tt,nt,rt,it,ot){var st,at,lt,ut=8*ot-it-1,dt=(1<>1,ct=it===23?Math.pow(2,-24)-Math.pow(2,-77):0,pt=rt?0:ot-1,ft=rt?1:-1,gt=tt<0||tt===0&&1/tt<0?1:0;for(tt=Math.abs(tt),isNaN(tt)||tt===1/0?(at=isNaN(tt)?1:0,st=dt):(st=Math.floor(Math.log(tt)/Math.LN2),tt*(lt=Math.pow(2,-st))<1&&(st--,lt*=2),(tt+=st+ht>=1?ct/lt:ct*Math.pow(2,1-ht))*lt>=2&&(st++,lt/=2),st+ht>=dt?(at=0,st=dt):st+ht>=1?(at=(tt*lt-1)*Math.pow(2,it),st+=ht):(at=tt*Math.pow(2,ht-1)*Math.pow(2,it),st=0));it>=8;et[nt+pt]=255&at,pt+=ft,at/=256,it-=8);for(st=st<0;et[nt+pt]=255&st,pt+=ft,st/=256,ut-=8);et[nt+pt-ft]|=128*gt}},function(s,o){var et={}.toString;s.exports=Array.isArray||function(tt){return et.call(tt)=="[object Array]"}},function(s,o,et){(function(tt,nt){var rt;s.exports=St,St.ReadableState=Rt,et(20).EventEmitter;var it=function(Zt,jt){return Zt.listeners(jt).length},ot=et(62),st=et(5).Buffer,at=(tt!==void 0?tt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){},lt,ut=et(144);lt=ut&&ut.debuglog?ut.debuglog("stream"):function(){};var dt,ht,ct,pt=et(145),ft=et(63),gt=et(64).getHighWaterMark,yt=et(35).codes,Ut=yt.ERR_INVALID_ARG_TYPE,Ft=yt.ERR_STREAM_PUSH_AFTER_EOF,mt=yt.ERR_METHOD_NOT_IMPLEMENTED,vt=yt.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;et(7)(St,ot);var At=ft.errorOrDestroy,Lt=["error","close","destroy","pause","resume"];function Rt(Zt,jt,Vt){rt=rt||et(36),Zt=Zt||{},typeof Vt!="boolean"&&(Vt=jt instanceof rt),this.objectMode=!!Zt.objectMode,Vt&&(this.objectMode=this.objectMode||!!Zt.readableObjectMode),this.highWaterMark=gt(this,Zt,"readableHighWaterMark",Vt),this.buffer=new pt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=Zt.emitClose!==!1,this.autoDestroy=!!Zt.autoDestroy,this.destroyed=!1,this.defaultEncoding=Zt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Zt.encoding&&(dt||(dt=et(21).StringDecoder),this.decoder=new dt(Zt.encoding),this.encoding=Zt.encoding)}function St(Zt){if(rt=rt||et(36),!(this instanceof St))return new St(Zt);var jt=this instanceof rt;this._readableState=new Rt(Zt,this,jt),this.readable=!0,Zt&&(typeof Zt.read=="function"&&(this._read=Zt.read),typeof Zt.destroy=="function"&&(this._destroy=Zt.destroy)),ot.call(this)}function Tt(Zt,jt,Vt,It,$t){lt("readableAddChunk",jt);var Ht,qt=Zt._readableState;if(jt===null)qt.reading=!1,function(on,Xt){if(lt("onEofChunk"),!Xt.ended){if(Xt.decoder){var dn=Xt.decoder.end();dn&&dn.length&&(Xt.buffer.push(dn),Xt.length+=Xt.objectMode?1:dn.length)}Xt.ended=!0,Xt.sync?Ct(on):(Xt.needReadable=!1,Xt.emittedReadable||(Xt.emittedReadable=!0,kt(on)))}}(Zt,qt);else if($t||(Ht=function(on,Xt){var dn;_n=Xt,st.isBuffer(_n)||_n instanceof at||typeof Xt=="string"||Xt===void 0||on.objectMode||(dn=new Ut("chunk",["string","Buffer","Uint8Array"],Xt));var _n;return dn}(qt,jt)),Ht)At(Zt,Ht);else if(qt.objectMode||jt&&jt.length>0)if(typeof jt=="string"||qt.objectMode||Object.getPrototypeOf(jt)===st.prototype||(jt=function(on){return st.from(on)}(jt)),It)qt.endEmitted?At(Zt,new vt):Bt(Zt,qt,jt,!0);else if(qt.ended)At(Zt,new Ft);else{if(qt.destroyed)return!1;qt.reading=!1,qt.decoder&&!Vt?(jt=qt.decoder.write(jt),qt.objectMode||jt.length!==0?Bt(Zt,qt,jt,!1):Nt(Zt,qt)):Bt(Zt,qt,jt,!1)}else It||(qt.reading=!1,Nt(Zt,qt));return!qt.ended&&(qt.lengthjt.highWaterMark&&(jt.highWaterMark=function(Vt){return Vt>=1073741824?Vt=1073741824:(Vt--,Vt|=Vt>>>1,Vt|=Vt>>>2,Vt|=Vt>>>4,Vt|=Vt>>>8,Vt|=Vt>>>16,Vt++),Vt}(Zt)),Zt<=jt.length?Zt:jt.ended?jt.length:(jt.needReadable=!0,0))}function Ct(Zt){var jt=Zt._readableState;lt("emitReadable",jt.needReadable,jt.emittedReadable),jt.needReadable=!1,jt.emittedReadable||(lt("emitReadable",jt.flowing),jt.emittedReadable=!0,nt.nextTick(kt,Zt))}function kt(Zt){var jt=Zt._readableState;lt("emitReadable_",jt.destroyed,jt.length,jt.ended),jt.destroyed||!jt.length&&!jt.ended||(Zt.emit("readable"),jt.emittedReadable=!1),jt.needReadable=!jt.flowing&&!jt.ended&&jt.length<=jt.highWaterMark,Pt(Zt)}function Nt(Zt,jt){jt.readingMore||(jt.readingMore=!0,nt.nextTick(Ot,Zt,jt))}function Ot(Zt,jt){for(;!jt.reading&&!jt.ended&&(jt.length0,jt.resumeScheduled&&!jt.paused?jt.flowing=!0:Zt.listenerCount("data")>0&&Zt.resume()}function Dt(Zt){lt("readable nexttick read 0"),Zt.read(0)}function Et(Zt,jt){lt("resume",jt.reading),jt.reading||Zt.read(0),jt.resumeScheduled=!1,Zt.emit("resume"),Pt(Zt),jt.flowing&&!jt.reading&&Zt.read(0)}function Pt(Zt){var jt=Zt._readableState;for(lt("flow",jt.flowing);jt.flowing&&Zt.read()!==null;);}function zt(Zt,jt){return jt.length===0?null:(jt.objectMode?Vt=jt.buffer.shift():!Zt||Zt>=jt.length?(Vt=jt.decoder?jt.buffer.join(""):jt.buffer.length===1?jt.buffer.first():jt.buffer.concat(jt.length),jt.buffer.clear()):Vt=jt.buffer.consume(Zt,jt.decoder),Vt);var Vt}function en(Zt){var jt=Zt._readableState;lt("endReadable",jt.endEmitted),jt.endEmitted||(jt.ended=!0,nt.nextTick(Kt,jt,Zt))}function Kt(Zt,jt){if(lt("endReadableNT",Zt.endEmitted,Zt.length),!Zt.endEmitted&&Zt.length===0&&(Zt.endEmitted=!0,jt.readable=!1,jt.emit("end"),Zt.autoDestroy)){var Vt=jt._writableState;(!Vt||Vt.autoDestroy&&Vt.finished)&&jt.destroy()}}function nn(Zt,jt){for(var Vt=0,It=Zt.length;Vt=jt.highWaterMark:jt.length>0)||jt.ended))return lt("read: emitReadable",jt.length,jt.ended),jt.length===0&&jt.ended?en(this):Ct(this),null;if((Zt=xt(Zt,jt))===0&&jt.ended)return jt.length===0&&en(this),null;var It,$t=jt.needReadable;return lt("need readable",$t),(jt.length===0||jt.length-Zt0?zt(Zt,jt):null)===null?(jt.needReadable=jt.length<=jt.highWaterMark,Zt=0):(jt.length-=Zt,jt.awaitDrain=0),jt.length===0&&(jt.ended||(jt.needReadable=!0),Vt!==Zt&&jt.ended&&en(this)),It!==null&&this.emit("data",It),It},St.prototype._read=function(Zt){At(this,new mt("_read()"))},St.prototype.pipe=function(Zt,jt){var Vt=this,It=this._readableState;switch(It.pipesCount){case 0:It.pipes=Zt;break;case 1:It.pipes=[It.pipes,Zt];break;default:It.pipes.push(Zt)}It.pipesCount+=1,lt("pipe count=%d opts=%j",It.pipesCount,jt);var $t=(!jt||jt.end!==!1)&&Zt!==nt.stdout&&Zt!==nt.stderr?qt:On;function Ht(gn,hn){lt("onunpipe"),gn===Vt&&hn&&hn.hasUnpiped===!1&&(hn.hasUnpiped=!0,lt("cleanup"),Zt.removeListener("close",Fn),Zt.removeListener("finish",Un),Zt.removeListener("drain",on),Zt.removeListener("error",_n),Zt.removeListener("unpipe",Ht),Vt.removeListener("end",qt),Vt.removeListener("end",On),Vt.removeListener("data",dn),Xt=!0,!It.awaitDrain||Zt._writableState&&!Zt._writableState.needDrain||on())}function qt(){lt("onend"),Zt.end()}It.endEmitted?nt.nextTick($t):Vt.once("end",$t),Zt.on("unpipe",Ht);var on=function(gn){return function(){var hn=gn._readableState;lt("pipeOnDrain",hn.awaitDrain),hn.awaitDrain&&hn.awaitDrain--,hn.awaitDrain===0&&it(gn,"data")&&(hn.flowing=!0,Pt(gn))}}(Vt);Zt.on("drain",on);var Xt=!1;function dn(gn){lt("ondata");var hn=Zt.write(gn);lt("dest.write",hn),hn===!1&&((It.pipesCount===1&&It.pipes===Zt||It.pipesCount>1&&nn(It.pipes,Zt)!==-1)&&!Xt&&(lt("false write response, pause",It.awaitDrain),It.awaitDrain++),Vt.pause())}function _n(gn){lt("onerror",gn),On(),Zt.removeListener("error",_n),it(Zt,"error")===0&&At(Zt,gn)}function Fn(){Zt.removeListener("finish",Un),On()}function Un(){lt("onfinish"),Zt.removeListener("close",Fn),On()}function On(){lt("unpipe"),Vt.unpipe(Zt)}return Vt.on("data",dn),function(gn,hn,wn){if(typeof gn.prependListener=="function")return gn.prependListener(hn,wn);gn._events&&gn._events[hn]?Array.isArray(gn._events[hn])?gn._events[hn].unshift(wn):gn._events[hn]=[wn,gn._events[hn]]:gn.on(hn,wn)}(Zt,"error",_n),Zt.once("close",Fn),Zt.once("finish",Un),Zt.emit("pipe",Vt),It.flowing||(lt("pipe resume"),Vt.resume()),Zt},St.prototype.unpipe=function(Zt){var jt=this._readableState,Vt={hasUnpiped:!1};if(jt.pipesCount===0)return this;if(jt.pipesCount===1)return Zt&&Zt!==jt.pipes||(Zt||(Zt=jt.pipes),jt.pipes=null,jt.pipesCount=0,jt.flowing=!1,Zt&&Zt.emit("unpipe",this,Vt)),this;if(!Zt){var It=jt.pipes,$t=jt.pipesCount;jt.pipes=null,jt.pipesCount=0,jt.flowing=!1;for(var Ht=0;Ht<$t;Ht++)It[Ht].emit("unpipe",this,{hasUnpiped:!1});return this}var qt=nn(jt.pipes,Zt);return qt===-1||(jt.pipes.splice(qt,1),jt.pipesCount-=1,jt.pipesCount===1&&(jt.pipes=jt.pipes[0]),Zt.emit("unpipe",this,Vt)),this},St.prototype.on=function(Zt,jt){var Vt=ot.prototype.on.call(this,Zt,jt),It=this._readableState;return Zt==="data"?(It.readableListening=this.listenerCount("readable")>0,It.flowing!==!1&&this.resume()):Zt==="readable"&&(It.endEmitted||It.readableListening||(It.readableListening=It.needReadable=!0,It.flowing=!1,It.emittedReadable=!1,lt("on readable",It.length,It.reading),It.length?Ct(this):It.reading||nt.nextTick(Dt,this))),Vt},St.prototype.addListener=St.prototype.on,St.prototype.removeListener=function(Zt,jt){var Vt=ot.prototype.removeListener.call(this,Zt,jt);return Zt==="readable"&&nt.nextTick(Wt,this),Vt},St.prototype.removeAllListeners=function(Zt){var jt=ot.prototype.removeAllListeners.apply(this,arguments);return Zt!=="readable"&&Zt!==void 0||nt.nextTick(Wt,this),jt},St.prototype.resume=function(){var Zt=this._readableState;return Zt.flowing||(lt("resume"),Zt.flowing=!Zt.readableListening,function(jt,Vt){Vt.resumeScheduled||(Vt.resumeScheduled=!0,nt.nextTick(Et,jt,Vt))}(this,Zt)),Zt.paused=!1,this},St.prototype.pause=function(){return lt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(lt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},St.prototype.wrap=function(Zt){var jt=this,Vt=this._readableState,It=!1;for(var $t in Zt.on("end",function(){if(lt("wrapped end"),Vt.decoder&&!Vt.ended){var qt=Vt.decoder.end();qt&&qt.length&&jt.push(qt)}jt.push(null)}),Zt.on("data",function(qt){lt("wrapped data"),Vt.decoder&&(qt=Vt.decoder.write(qt)),Vt.objectMode&&qt==null||(Vt.objectMode||qt&&qt.length)&&(jt.push(qt)||(It=!0,Zt.pause()))}),Zt)this[$t]===void 0&&typeof Zt[$t]=="function"&&(this[$t]=function(qt){return function(){return Zt[qt].apply(Zt,arguments)}}($t));for(var Ht=0;Ht0?this.tail.next=pt:this.head=pt,this.tail=pt,++this.length}},{key:"unshift",value:function(ct){var pt={data:ct,next:this.head};this.length===0&&(this.tail=pt),this.head=pt,++this.length}},{key:"shift",value:function(){if(this.length!==0){var ct=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,ct}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(ct){if(this.length===0)return"";for(var pt=this.head,ft=""+pt.data;pt=pt.next;)ft+=ct+pt.data;return ft}},{key:"concat",value:function(ct){if(this.length===0)return st.alloc(0);for(var pt,ft,gt,yt=st.allocUnsafe(ct>>>0),Ut=this.head,Ft=0;Ut;)pt=Ut.data,ft=yt,gt=Ft,st.prototype.copy.call(pt,ft,gt),Ft+=Ut.data.length,Ut=Ut.next;return yt}},{key:"consume",value:function(ct,pt){var ft;return ctyt.length?yt.length:ct;if(Ut===yt.length?gt+=yt:gt+=yt.slice(0,ct),(ct-=Ut)==0){Ut===yt.length?(++ft,pt.next?this.head=pt.next:this.head=this.tail=null):(this.head=pt,pt.data=yt.slice(Ut));break}++ft}return this.length-=ft,gt}},{key:"_getBuffer",value:function(ct){var pt=st.allocUnsafe(ct),ft=this.head,gt=1;for(ft.data.copy(pt),ct-=ft.data.length;ft=ft.next;){var yt=ft.data,Ut=ct>yt.length?yt.length:ct;if(yt.copy(pt,pt.length-ct,0,Ut),(ct-=Ut)==0){Ut===yt.length?(++gt,ft.next?this.head=ft.next:this.head=this.tail=null):(this.head=ft,ft.data=yt.slice(Ut));break}++gt}return this.length-=gt,pt}},{key:lt,value:function(ct,pt){return at(this,nt(nt({},pt),{},{depth:0,customInspect:!1}))}}])&&it(dt.prototype,ht),Object.defineProperty(dt,"prototype",{writable:!1}),ut}()},function(s,o){},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){(function(tt){var nt;function rt(Ut,Ft,mt){return(Ft=function(vt){var At=function(Lt,Rt){if(typeof Lt!="object"||Lt===null)return Lt;var St=Lt[Symbol.toPrimitive];if(St!==void 0){var Tt=St.call(Lt,Rt||"default");if(typeof Tt!="object")return Tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Rt==="string"?String:Number)(Lt)}(vt,"string");return typeof At=="symbol"?At:String(At)}(Ft))in Ut?Object.defineProperty(Ut,Ft,{value:mt,enumerable:!0,configurable:!0,writable:!0}):Ut[Ft]=mt,Ut}var it=et(149),ot=Symbol("lastResolve"),st=Symbol("lastReject"),at=Symbol("error"),lt=Symbol("ended"),ut=Symbol("lastPromise"),dt=Symbol("handlePromise"),ht=Symbol("stream");function ct(Ut,Ft){return{value:Ut,done:Ft}}function pt(Ut){var Ft=Ut[ot];if(Ft!==null){var mt=Ut[ht].read();mt!==null&&(Ut[ut]=null,Ut[ot]=null,Ut[st]=null,Ft(ct(mt,!1)))}}function ft(Ut){tt.nextTick(pt,Ut)}var gt=Object.getPrototypeOf(function(){}),yt=Object.setPrototypeOf((rt(nt={get stream(){return this[ht]},next:function(){var Ut=this,Ft=this[at];if(Ft!==null)return Promise.reject(Ft);if(this[lt])return Promise.resolve(ct(void 0,!0));if(this[ht].destroyed)return new Promise(function(Lt,Rt){tt.nextTick(function(){Ut[at]?Rt(Ut[at]):Lt(ct(void 0,!0))})});var mt,vt=this[ut];if(vt)mt=new Promise(function(Lt,Rt){return function(St,Tt){Lt.then(function(){Rt[lt]?St(ct(void 0,!0)):Rt[dt](St,Tt)},Tt)}}(vt,this));else{var At=this[ht].read();if(At!==null)return Promise.resolve(ct(At,!1));mt=new Promise(this[dt])}return this[ut]=mt,mt}},Symbol.asyncIterator,function(){return this}),rt(nt,"return",function(){var Ut=this;return new Promise(function(Ft,mt){Ut[ht].destroy(null,function(vt){vt?mt(vt):Ft(ct(void 0,!0))})})}),nt),gt);s.exports=function(Ut){var Ft,mt=Object.create(yt,(rt(Ft={},ht,{value:Ut,writable:!0}),rt(Ft,ot,{value:null,writable:!0}),rt(Ft,st,{value:null,writable:!0}),rt(Ft,at,{value:null,writable:!0}),rt(Ft,lt,{value:Ut._readableState.endEmitted,writable:!0}),rt(Ft,dt,{value:function(vt,At){var Lt=mt[ht].read();Lt?(mt[ut]=null,mt[ot]=null,mt[st]=null,vt(ct(Lt,!1))):(mt[ot]=vt,mt[st]=At)},writable:!0}),Ft));return mt[ut]=null,it(Ut,function(vt){if(vt&&vt.code!=="ERR_STREAM_PREMATURE_CLOSE"){var At=mt[st];return At!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,At(vt)),void(mt[at]=vt)}var Lt=mt[ot];Lt!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,Lt(ct(void 0,!0))),mt[lt]=!0}),Ut.on("readable",ft.bind(null,mt)),mt}}).call(this,et(2))},function(s,o,et){var tt=et(35).codes.ERR_STREAM_PREMATURE_CLOSE;function nt(){}s.exports=function rt(it,ot,st){if(typeof ot=="function")return rt(it,null,ot);ot||(ot={}),st=function(Ut){var Ft=!1;return function(){if(!Ft){Ft=!0;for(var mt=arguments.length,vt=new Array(mt),At=0;At0&&arguments[0]!==void 0?arguments[0]:{};if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");function st(at){this.emit("error",at,this.transport)}this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=st.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(var at=0;at"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var Tt,Bt=dt(Rt);if(St){var xt=dt(this).constructor;Tt=Reflect.construct(Bt,arguments,xt)}else Tt=Bt.apply(this,arguments);return lt(this,Tt)}}function lt(Rt,St){if(St&&(rt(St)==="object"||typeof St=="function"))return St;if(St!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ut(Rt)}function ut(Rt){if(Rt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Rt}function dt(Rt){return(dt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(St){return St.__proto__||Object.getPrototypeOf(St)})(Rt)}var ht=et(65),ct=et(55),pt=et(153),ft=et(163),gt=et(4).MESSAGE,yt=et(33),Ut=yt.Stream,Ft=yt.PassThrough,mt=et(14),vt=et(39)("winston:file"),At=et(16),Lt=et(193);s.exports=function(Rt){(function(Ct,kt){if(typeof kt!="function"&&kt!==null)throw new TypeError("Super expression must either be null or a function");Ct.prototype=Object.create(kt&&kt.prototype,{constructor:{value:Ct,writable:!0,configurable:!0}}),Object.defineProperty(Ct,"prototype",{writable:!1}),kt&&st(Ct,kt)})(xt,Rt);var St,Tt,Bt=at(xt);function xt(){var Ct,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};function Nt(Ot){for(var Wt=arguments.length,Dt=new Array(Wt>1?Wt-1:0),Et=1;Et1&&arguments[1]!==void 0?arguments[1]:function(){};if(this.silent)return Nt(),!0;if(this._drain)this._stream.once("drain",function(){kt._drain=!1,kt.log(Ct,Nt)});else{if(!this._rotate){var Ot="".concat(Ct[gt]).concat(this.eol),Wt=nt.byteLength(Ot);this._pendingSize+=Wt,this._opening&&!this.rotatedWhileOpening&&this._needsNewFile(this._size+this._pendingSize)&&(this.rotatedWhileOpening=!0);var Dt=this._stream.write(Ot,Et.bind(this));return Dt?Nt():(this._drain=!0,this._stream.once("drain",function(){kt._drain=!1,Nt()})),vt("written",Dt,this._drain),this.finishIfEnding(),Dt}this._stream.once("rotate",function(){kt._rotate=!1,kt.log(Ct,Nt)})}function Et(){var Pt=this;this._size+=Wt,this._pendingSize-=Wt,vt("logged %s %s",this._size,Ot),this.emit("logged",Ct),this._opening||this._needsNewFile()&&(this._rotate=!0,this._endStream(function(){return Pt._rotateFile()}))}}},{key:"query",value:function(Ct,kt){typeof Ct=="function"&&(kt=Ct,Ct={}),Ct=function(zt){return(zt=zt||{}).rows=zt.rows||zt.limit||10,zt.start=zt.start||0,zt.until=zt.until||new Date,rt(zt.until)!=="object"&&(zt.until=new Date(zt.until)),zt.from=zt.from||zt.until-864e5,rt(zt.from)!=="object"&&(zt.from=new Date(zt.from)),zt.order=zt.order||"desc",zt}(Ct);var Nt=ct.join(this.dirname,this.filename),Ot="",Wt=[],Dt=0,Et=ht.createReadStream(Nt,{encoding:"utf8"});function Pt(zt,en){try{var Kt=JSON.parse(zt);(function(nn){if(nn&&rt(nn)==="object"){var Zt=new Date(nn.timestamp);if(!(Ct.from&&ZtCt.until||Ct.level&&Ct.level!==nn.level))return!0}})(Kt)&&function(nn){Ct.rows&&Wt.length>=Ct.rows&&Ct.order!=="desc"?Et.readable&&Et.destroy():(Ct.fields&&(nn=Ct.fields.reduce(function(Zt,jt){return Zt[jt]=nn[jt],Zt},{})),Ct.order==="desc"&&Wt.length>=Ct.rows&&Wt.shift(),Wt.push(nn))}(Kt)}catch(nn){en||Et.emit("error",nn)}}Et.on("error",function(zt){if(Et.readable&&Et.destroy(),kt)return zt.code!=="ENOENT"?kt(zt):kt(null,Wt)}),Et.on("data",function(zt){for(var en=(zt=(Ot+zt).split(/\n+/)).length-1,Kt=0;Kt=Ct.start)&&Pt(zt[Kt]),Dt++;Ot=zt[en]}),Et.on("close",function(){Ot&&Pt(Ot,!0),Ct.order==="desc"&&(Wt=Wt.reverse()),kt&&kt(null,Wt)})}},{key:"stream",value:function(){var Ct=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},kt=ct.join(this.dirname,this.filename),Nt=new Ut,Ot={file:kt,start:Ct.start};return Nt.destroy=Lt(Ot,function(Wt,Dt){if(Wt)return Nt.emit("error",Wt);try{Nt.emit("data",Dt),Dt=JSON.parse(Dt),Nt.emit("log",Dt)}catch(Et){Nt.emit("error",Et)}}),Nt}},{key:"open",value:function(){var Ct=this;this.filename&&(this._opening||(this._opening=!0,this.stat(function(kt,Nt){if(kt)return Ct.emit("error",kt);vt("stat done: %s { size: %s }",Ct.filename,Nt),Ct._size=Nt,Ct._dest=Ct._createStream(Ct._stream),Ct._opening=!1,Ct.once("open",function(){Ct._stream.eventNames().includes("rotate")?Ct._stream.emit("rotate"):Ct._rotate=!1})})))}},{key:"stat",value:function(Ct){var kt=this,Nt=this._getFile(),Ot=ct.join(this.dirname,Nt);ht.stat(Ot,function(Wt,Dt){return Wt&&Wt.code==="ENOENT"?(vt("ENOENT ok",Ot),kt.filename=Nt,Ct(null,0)):Wt?(vt("err ".concat(Wt.code," ").concat(Ot)),Ct(Wt)):!Dt||kt._needsNewFile(Dt.size)?kt._incFile(function(){return kt.stat(Ct)}):(kt.filename=Nt,void Ct(null,Dt.size))})}},{key:"close",value:function(Ct){var kt=this;this._stream&&this._stream.end(function(){Ct&&Ct(),kt.emit("flush"),kt.emit("closed")})}},{key:"_needsNewFile",value:function(Ct){return Ct=Ct||this._size,this.maxsize&&Ct>=this.maxsize}},{key:"_onError",value:function(Ct){this.emit("error",Ct)}},{key:"_setupStream",value:function(Ct){return Ct.on("error",this._onError),Ct}},{key:"_cleanupStream",value:function(Ct){return Ct.removeListener("error",this._onError),Ct}},{key:"_rotateFile",value:function(){var Ct=this;this._incFile(function(){return Ct.open()})}},{key:"_endStream",value:function(){var Ct=this,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){};this._dest?(this._stream.unpipe(this._dest),this._dest.end(function(){Ct._cleanupStream(Ct._dest),kt()})):kt()}},{key:"_createStream",value:function(Ct){var kt=this,Nt=ct.join(this.dirname,this.filename);vt("create stream start",Nt,this.options);var Ot=ht.createWriteStream(Nt,this.options).on("error",function(Dt){return vt(Dt)}).on("close",function(){return vt("close",Ot.path,Ot.bytesWritten)}).on("open",function(){vt("file open ok",Nt),kt.emit("open",Nt),Ct.pipe(Ot),kt.rotatedWhileOpening&&(kt._stream=new Ft,kt._stream.setMaxListeners(30),kt._rotateFile(),kt.rotatedWhileOpening=!1,kt._cleanupStream(Ot),Ct.end())});if(vt("create stream ok",Nt),this.zippedArchive){var Wt=ft.createGzip();return Wt.pipe(Ot),Wt}return Ot}},{key:"_incFile",value:function(Ct){vt("_incFile",this.filename);var kt=ct.extname(this._basename),Nt=ct.basename(this._basename,kt);this.tailable?this._checkMaxFilesTailable(kt,Nt,Ct):(this._created+=1,this._checkMaxFilesIncrementing(kt,Nt,Ct))}},{key:"_getFile",value:function(){var Ct=ct.extname(this._basename),kt=ct.basename(this._basename,Ct),Nt=this.rotationFormat?this.rotationFormat():this._created,Ot=!this.tailable&&this._created?"".concat(kt).concat(Nt).concat(Ct):"".concat(kt).concat(Ct);return this.zippedArchive&&!this.tailable?"".concat(Ot,".gz"):Ot}},{key:"_checkMaxFilesIncrementing",value:function(Ct,kt,Nt){if(!this.maxFiles||this._created1;Et--)Wt.push(function(Pt,zt){var en=this,Kt="".concat(kt).concat(Pt-1).concat(Ct).concat(Dt),nn=ct.join(this.dirname,Kt);ht.exists(nn,function(Zt){if(!Zt)return zt(null);Kt="".concat(kt).concat(Pt).concat(Ct).concat(Dt),ht.rename(nn,ct.join(en.dirname,Kt),zt)})}.bind(this,Et));pt(Wt,function(){ht.rename(ct.join(Ot.dirname,"".concat(kt).concat(Ct)),ct.join(Ot.dirname,"".concat(kt,"1").concat(Ct).concat(Dt)),Nt)})}}},{key:"_createLogDirIfNotExist",value:function(Ct){ht.existsSync(Ct)||ht.mkdirSync(Ct,{recursive:!0})}}])&&ot(St.prototype,Tt),Object.defineProperty(St,"prototype",{writable:!1}),xt}(mt)}).call(this,et(19).setImmediate,et(5).Buffer)},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(it,ot){return(0,tt.default)(nt.default,it,ot)};var tt=rt(et(154)),nt=rt(et(158));function rt(it){return it&&it.__esModule?it:{default:it}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(44)),nt=it(et(23)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)((ot,st,at)=>{var lt=(0,tt.default)(st)?[]:{};ot(st,(ut,dt,ht)=>{(0,nt.default)(ut)((ct,...pt)=>{pt.length<2&&([pt]=pt),lt[dt]=pt,ht(ct)})},ut=>at(ut,lt))},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(at){return(0,rt.isAsync)(at)?function(...lt){const ut=lt.pop();return ot(at.apply(this,lt),ut)}:(0,tt.default)(function(lt,ut){var dt;try{dt=at.apply(this,lt)}catch(ht){return ut(ht)}if(dt&&typeof dt.then=="function")return ot(dt,ut);ut(null,dt)})};var tt=it(et(156)),nt=it(et(157)),rt=et(23);function it(at){return at&&at.__esModule?at:{default:at}}function ot(at,lt){return at.then(ut=>{st(lt,null,ut)},ut=>{st(lt,ut&&ut.message?ut:new Error(ut))})}function st(at,lt,ut){try{at(lt,ut)}catch(dt){(0,nt.default)(ht=>{throw ht},dt)}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){var rt=nt.pop();return tt.call(this,nt,rt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){Object.defineProperty(o,"__esModule",{value:!0}),o.fallback=at,o.wrap=lt;var rt,it=o.hasQueueMicrotask=typeof queueMicrotask=="function"&&queueMicrotask,ot=o.hasSetImmediate=typeof tt=="function"&&tt,st=o.hasNextTick=typeof nt=="object"&&typeof nt.nextTick=="function";function at(ut){setTimeout(ut,0)}function lt(ut){return(dt,...ht)=>ut(()=>dt(...ht))}rt=it?queueMicrotask:ot?tt:st?nt.nextTick:at,o.default=lt(rt)}).call(this,et(19).setImmediate,et(2))},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=rt(et(66)),nt=rt(et(30));function rt(it){return it&&it.__esModule?it:{default:it}}o.default=(0,nt.default)(function(it,ot,st){return(0,tt.default)(it,1,ot,st)},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=at(et(67)),nt=at(et(160)),rt=at(et(68)),it=et(23),ot=at(et(162)),st=at(et(45));function at(lt){return lt&<.__esModule?lt:{default:lt}}o.default=lt=>(ut,dt,ht)=>{if(ht=(0,tt.default)(ht),lt<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!ut)return ht(null);if((0,it.isAsyncGenerator)(ut))return(0,ot.default)(ut,lt,dt,ht);if((0,it.isAsyncIterable)(ut))return(0,ot.default)(ut[Symbol.asyncIterator](),lt,dt,ht);var ct=(0,nt.default)(ut),pt=!1,ft=!1,gt=0,yt=!1;function Ut(mt,vt){if(!ft)if(gt-=1,mt)pt=!0,ht(mt);else if(mt===!1)pt=!0,ft=!0;else{if(vt===st.default||pt&><=0)return pt=!0,ht(null);yt||Ft()}}function Ft(){for(yt=!0;gt=ot||dt||lt||(dt=!0,it.next().then(({value:yt,done:Ut})=>{if(!ut&&!lt){if(dt=!1,Ut)return lt=!0,void(ht<=0&&at(null));ht++,st(yt,ct,ft),ct++,pt()}}).catch(gt))}function ft(yt,Ut){if(ht-=1,!ut)return yt?gt(yt):yt===!1?(lt=!0,void(ut=!0)):Ut===rt.default||lt&&ht<=0?(lt=!0,at(null)):void pt()}function gt(yt){ut||(dt=!1,lt=!0,at(yt))}pt()};var tt,nt=et(45),rt=(tt=nt)&&tt.__esModule?tt:{default:tt};s.exports=o.default},function(s,o,et){(function(tt){var nt=et(5).Buffer,rt=et(164).Transform,it=et(174),ot=et(13),st=et(73).ok,at=et(5).kMaxLength,lt="Cannot create final Buffer. It would be larger than 0x"+at.toString(16)+" bytes";it.Z_MIN_WINDOWBITS=8,it.Z_MAX_WINDOWBITS=15,it.Z_DEFAULT_WINDOWBITS=15,it.Z_MIN_CHUNK=64,it.Z_MAX_CHUNK=1/0,it.Z_DEFAULT_CHUNK=16384,it.Z_MIN_MEMLEVEL=1,it.Z_MAX_MEMLEVEL=9,it.Z_DEFAULT_MEMLEVEL=8,it.Z_MIN_LEVEL=-1,it.Z_MAX_LEVEL=9,it.Z_DEFAULT_LEVEL=it.Z_DEFAULT_COMPRESSION;for(var ut=Object.keys(it),dt=0;dt=at?en=new RangeError(lt):zt=nt.concat(Wt,Dt),Wt=[],kt.close(),Ot(en,zt)}kt.on("error",function(zt){kt.removeListener("end",Pt),kt.removeListener("readable",Et),Ot(zt)}),kt.on("end",Pt),kt.end(Nt),Et()}function Ut(kt,Nt){if(typeof Nt=="string"&&(Nt=nt.from(Nt)),!nt.isBuffer(Nt))throw new TypeError("Not a string or buffer");var Ot=kt._finishFlushFlag;return kt._processChunk(Nt,Ot)}function Ft(kt){if(!(this instanceof Ft))return new Ft(kt);Bt.call(this,kt,it.DEFLATE)}function mt(kt){if(!(this instanceof mt))return new mt(kt);Bt.call(this,kt,it.INFLATE)}function vt(kt){if(!(this instanceof vt))return new vt(kt);Bt.call(this,kt,it.GZIP)}function At(kt){if(!(this instanceof At))return new At(kt);Bt.call(this,kt,it.GUNZIP)}function Lt(kt){if(!(this instanceof Lt))return new Lt(kt);Bt.call(this,kt,it.DEFLATERAW)}function Rt(kt){if(!(this instanceof Rt))return new Rt(kt);Bt.call(this,kt,it.INFLATERAW)}function St(kt){if(!(this instanceof St))return new St(kt);Bt.call(this,kt,it.UNZIP)}function Tt(kt){return kt===it.Z_NO_FLUSH||kt===it.Z_PARTIAL_FLUSH||kt===it.Z_SYNC_FLUSH||kt===it.Z_FULL_FLUSH||kt===it.Z_FINISH||kt===it.Z_BLOCK}function Bt(kt,Nt){var Ot=this;if(this._opts=kt=kt||{},this._chunkSize=kt.chunkSize||o.Z_DEFAULT_CHUNK,rt.call(this,kt),kt.flush&&!Tt(kt.flush))throw new Error("Invalid flush flag: "+kt.flush);if(kt.finishFlush&&!Tt(kt.finishFlush))throw new Error("Invalid flush flag: "+kt.finishFlush);if(this._flushFlag=kt.flush||it.Z_NO_FLUSH,this._finishFlushFlag=kt.finishFlush!==void 0?kt.finishFlush:it.Z_FINISH,kt.chunkSize&&(kt.chunkSizeo.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+kt.chunkSize);if(kt.windowBits&&(kt.windowBitso.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+kt.windowBits);if(kt.level&&(kt.levelo.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+kt.level);if(kt.memLevel&&(kt.memLevelo.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+kt.memLevel);if(kt.strategy&&kt.strategy!=o.Z_FILTERED&&kt.strategy!=o.Z_HUFFMAN_ONLY&&kt.strategy!=o.Z_RLE&&kt.strategy!=o.Z_FIXED&&kt.strategy!=o.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+kt.strategy);if(kt.dictionary&&!nt.isBuffer(kt.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._handle=new it.Zlib(Nt);var Wt=this;this._hadError=!1,this._handle.onerror=function(Pt,zt){xt(Wt),Wt._hadError=!0;var en=new Error(Pt);en.errno=zt,en.code=o.codes[zt],Wt.emit("error",en)};var Dt=o.Z_DEFAULT_COMPRESSION;typeof kt.level=="number"&&(Dt=kt.level);var Et=o.Z_DEFAULT_STRATEGY;typeof kt.strategy=="number"&&(Et=kt.strategy),this._handle.init(kt.windowBits||o.Z_DEFAULT_WINDOWBITS,Dt,kt.memLevel||o.Z_DEFAULT_MEMLEVEL,Et,kt.dictionary),this._buffer=nt.allocUnsafe(this._chunkSize),this._offset=0,this._level=Dt,this._strategy=Et,this.once("end",this.close),Object.defineProperty(this,"_closed",{get:function(){return!Ot._handle},configurable:!0,enumerable:!0})}function xt(kt,Nt){Nt&&tt.nextTick(Nt),kt._handle&&(kt._handle.close(),kt._handle=null)}function Ct(kt){kt.emit("close")}Object.defineProperty(o,"codes",{enumerable:!0,value:Object.freeze(ct),writable:!1}),o.Deflate=Ft,o.Inflate=mt,o.Gzip=vt,o.Gunzip=At,o.DeflateRaw=Lt,o.InflateRaw=Rt,o.Unzip=St,o.createDeflate=function(kt){return new Ft(kt)},o.createInflate=function(kt){return new mt(kt)},o.createDeflateRaw=function(kt){return new Lt(kt)},o.createInflateRaw=function(kt){return new Rt(kt)},o.createGzip=function(kt){return new vt(kt)},o.createGunzip=function(kt){return new At(kt)},o.createUnzip=function(kt){return new St(kt)},o.deflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Ft(Nt),kt,Ot)},o.deflateSync=function(kt,Nt){return Ut(new Ft(Nt),kt)},o.gzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new vt(Nt),kt,Ot)},o.gzipSync=function(kt,Nt){return Ut(new vt(Nt),kt)},o.deflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Lt(Nt),kt,Ot)},o.deflateRawSync=function(kt,Nt){return Ut(new Lt(Nt),kt)},o.unzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new St(Nt),kt,Ot)},o.unzipSync=function(kt,Nt){return Ut(new St(Nt),kt)},o.inflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new mt(Nt),kt,Ot)},o.inflateSync=function(kt,Nt){return Ut(new mt(Nt),kt)},o.gunzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new At(Nt),kt,Ot)},o.gunzipSync=function(kt,Nt){return Ut(new At(Nt),kt)},o.inflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Rt(Nt),kt,Ot)},o.inflateRawSync=function(kt,Nt){return Ut(new Rt(Nt),kt)},ot.inherits(Bt,rt),Bt.prototype.params=function(kt,Nt,Ot){if(kto.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+kt);if(Nt!=o.Z_FILTERED&&Nt!=o.Z_HUFFMAN_ONLY&&Nt!=o.Z_RLE&&Nt!=o.Z_FIXED&&Nt!=o.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+Nt);if(this._level!==kt||this._strategy!==Nt){var Wt=this;this.flush(it.Z_SYNC_FLUSH,function(){st(Wt._handle,"zlib binding closed"),Wt._handle.params(kt,Nt),Wt._hadError||(Wt._level=kt,Wt._strategy=Nt,Ot&&Ot())})}else tt.nextTick(Ot)},Bt.prototype.reset=function(){return st(this._handle,"zlib binding closed"),this._handle.reset()},Bt.prototype._flush=function(kt){this._transform(nt.alloc(0),"",kt)},Bt.prototype.flush=function(kt,Nt){var Ot=this,Wt=this._writableState;(typeof kt=="function"||kt===void 0&&!Nt)&&(Nt=kt,kt=it.Z_FULL_FLUSH),Wt.ended?Nt&&tt.nextTick(Nt):Wt.ending?Nt&&this.once("end",Nt):Wt.needDrain?Nt&&this.once("drain",function(){return Ot.flush(kt,Nt)}):(this._flushFlag=kt,this.write(nt.alloc(0),"",Nt))},Bt.prototype.close=function(kt){xt(this,kt),tt.nextTick(Ct,this)},Bt.prototype._transform=function(kt,Nt,Ot){var Wt,Dt=this._writableState,Et=(Dt.ending||Dt.ended)&&(!kt||Dt.length===kt.length);return kt===null||nt.isBuffer(kt)?this._handle?(Et?Wt=this._finishFlushFlag:(Wt=this._flushFlag,kt.length>=Dt.length&&(this._flushFlag=this._opts.flush||it.Z_NO_FLUSH)),void this._processChunk(kt,Wt,Ot)):Ot(new Error("zlib binding closed")):Ot(new Error("invalid input"))},Bt.prototype._processChunk=function(kt,Nt,Ot){var Wt=kt&&kt.length,Dt=this._chunkSize-this._offset,Et=0,Pt=this,zt=typeof Ot=="function";if(!zt){var en,Kt=[],nn=0;this.on("error",function($t){en=$t}),st(this._handle,"zlib binding closed");do var Zt=this._handle.writeSync(Nt,kt,Et,Wt,this._buffer,this._offset,Dt);while(!this._hadError&&It(Zt[0],Zt[1]));if(this._hadError)throw en;if(nn>=at)throw xt(this),new RangeError(lt);var jt=nt.concat(Kt,nn);return xt(this),jt}st(this._handle,"zlib binding closed");var Vt=this._handle.write(Nt,kt,Et,Wt,this._buffer,this._offset,Dt);function It($t,Ht){if(this&&(this.buffer=null,this.callback=null),!Pt._hadError){var qt=Dt-Ht;if(st(qt>=0,"have should not go down"),qt>0){var on=Pt._buffer.slice(Pt._offset,Pt._offset+qt);Pt._offset+=qt,zt?Pt.push(on):(Kt.push(on),nn+=on.length)}if((Ht===0||Pt._offset>=Pt._chunkSize)&&(Dt=Pt._chunkSize,Pt._offset=0,Pt._buffer=nt.allocUnsafe(Pt._chunkSize)),Ht===0){if(Et+=Wt-$t,Wt=$t,!zt)return!0;var Xt=Pt._handle.write(Nt,kt,Et,Wt,Pt._buffer,Pt._offset,Pt._chunkSize);return Xt.callback=It,void(Xt.buffer=kt)}if(!zt)return!1;Ot()}}Vt.buffer=kt,Vt.callback=It},ot.inherits(Ft,Bt),ot.inherits(mt,Bt),ot.inherits(vt,Bt),ot.inherits(At,Bt),ot.inherits(Lt,Bt),ot.inherits(Rt,Bt),ot.inherits(St,Bt)}).call(this,et(2))},function(s,o,et){s.exports=nt;var tt=et(20).EventEmitter;function nt(){tt.call(this)}et(7)(nt,tt),nt.Readable=et(31),nt.Writable=et(170),nt.Duplex=et(171),nt.Transform=et(172),nt.PassThrough=et(173),nt.Stream=nt,nt.prototype.pipe=function(rt,it){var ot=this;function st(pt){rt.writable&&rt.write(pt)===!1&&ot.pause&&ot.pause()}function at(){ot.readable&&ot.resume&&ot.resume()}ot.on("data",st),rt.on("drain",at),rt._isStdio||it&&it.end===!1||(ot.on("end",ut),ot.on("close",dt));var lt=!1;function ut(){lt||(lt=!0,rt.end())}function dt(){lt||(lt=!0,typeof rt.destroy=="function"&&rt.destroy())}function ht(pt){if(ct(),tt.listenerCount(this,"error")===0)throw pt}function ct(){ot.removeListener("data",st),rt.removeListener("drain",at),ot.removeListener("end",ut),ot.removeListener("close",dt),ot.removeListener("error",ht),rt.removeListener("error",ht),ot.removeListener("end",ct),ot.removeListener("close",ct),rt.removeListener("close",ct)}return ot.on("error",ht),rt.on("error",ht),ot.on("end",ct),ot.on("close",ct),rt.on("close",ct),rt.emit("pipe",ot),rt}},function(s,o){var et={}.toString;s.exports=Array.isArray||function(tt){return et.call(tt)=="[object Array]"}},function(s,o){},function(s,o,et){var tt=et(46).Buffer,nt=et(168);s.exports=function(){function rt(){(function(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")})(this,rt),this.head=null,this.tail=null,this.length=0}return rt.prototype.push=function(it){var ot={data:it,next:null};this.length>0?this.tail.next=ot:this.head=ot,this.tail=ot,++this.length},rt.prototype.unshift=function(it){var ot={data:it,next:this.head};this.length===0&&(this.tail=ot),this.head=ot,++this.length},rt.prototype.shift=function(){if(this.length!==0){var it=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,it}},rt.prototype.clear=function(){this.head=this.tail=null,this.length=0},rt.prototype.join=function(it){if(this.length===0)return"";for(var ot=this.head,st=""+ot.data;ot=ot.next;)st+=it+ot.data;return st},rt.prototype.concat=function(it){if(this.length===0)return tt.alloc(0);if(this.length===1)return this.head.data;for(var ot,st,at,lt=tt.allocUnsafe(it>>>0),ut=this.head,dt=0;ut;)ot=ut.data,st=lt,at=dt,ot.copy(st,at),dt+=ut.data.length,ut=ut.next;return lt},rt}(),nt&&nt.inspect&&nt.inspect.custom&&(s.exports.prototype[nt.inspect.custom]=function(){var rt=nt.inspect({length:this.length});return this.constructor.name+" "+rt})},function(s,o){},function(s,o,et){s.exports=rt;var tt=et(72),nt=Object.create(et(32));function rt(it){if(!(this instanceof rt))return new rt(it);tt.call(this,it)}nt.inherits=et(7),nt.inherits(rt,tt),rt.prototype._transform=function(it,ot,st){st(null,it)}},function(s,o,et){s.exports=et(47)},function(s,o,et){s.exports=et(22)},function(s,o,et){s.exports=et(31).Transform},function(s,o,et){s.exports=et(31).PassThrough},function(s,o,et){(function(tt,nt){var rt=et(73),it=et(176),ot=et(177),st=et(180),at=et(183);for(var lt in at)o[lt]=at[lt];o.NONE=0,o.DEFLATE=1,o.INFLATE=2,o.GZIP=3,o.GUNZIP=4,o.DEFLATERAW=5,o.INFLATERAW=6,o.UNZIP=7;function ut(dt){if(typeof dt!="number"||dto.UNZIP)throw new TypeError("Bad argument");this.dictionary=null,this.err=0,this.flush=0,this.init_done=!1,this.level=0,this.memLevel=0,this.mode=dt,this.strategy=0,this.windowBits=0,this.write_in_progress=!1,this.pending_close=!1,this.gzip_id_bytes_read=0}ut.prototype.close=function(){this.write_in_progress?this.pending_close=!0:(this.pending_close=!1,rt(this.init_done,"close before init"),rt(this.mode<=o.UNZIP),this.mode===o.DEFLATE||this.mode===o.GZIP||this.mode===o.DEFLATERAW?ot.deflateEnd(this.strm):this.mode!==o.INFLATE&&this.mode!==o.GUNZIP&&this.mode!==o.INFLATERAW&&this.mode!==o.UNZIP||st.inflateEnd(this.strm),this.mode=o.NONE,this.dictionary=null)},ut.prototype.write=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!0,dt,ht,ct,pt,ft,gt,yt)},ut.prototype.writeSync=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!1,dt,ht,ct,pt,ft,gt,yt)},ut.prototype._write=function(dt,ht,ct,pt,ft,gt,yt,Ut){if(rt.equal(arguments.length,8),rt(this.init_done,"write before init"),rt(this.mode!==o.NONE,"already finalized"),rt.equal(!1,this.write_in_progress,"write already in progress"),rt.equal(!1,this.pending_close,"close is pending"),this.write_in_progress=!0,rt.equal(!1,ht===void 0,"must provide flush value"),this.write_in_progress=!0,ht!==o.Z_NO_FLUSH&&ht!==o.Z_PARTIAL_FLUSH&&ht!==o.Z_SYNC_FLUSH&&ht!==o.Z_FULL_FLUSH&&ht!==o.Z_FINISH&&ht!==o.Z_BLOCK)throw new Error("Invalid flush value");if(ct==null&&(ct=tt.alloc(0),ft=0,pt=0),this.strm.avail_in=ft,this.strm.input=ct,this.strm.next_in=pt,this.strm.avail_out=Ut,this.strm.output=gt,this.strm.next_out=yt,this.flush=ht,!dt)return this._process(),this._checkError()?this._afterSync():void 0;var Ft=this;return nt.nextTick(function(){Ft._process(),Ft._after()}),this},ut.prototype._afterSync=function(){var dt=this.strm.avail_out,ht=this.strm.avail_in;return this.write_in_progress=!1,[ht,dt]},ut.prototype._process=function(){var dt=null;switch(this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflate(this.strm,this.flush);break;case o.UNZIP:switch(this.strm.avail_in>0&&(dt=this.strm.next_in),this.gzip_id_bytes_read){case 0:if(dt===null)break;if(this.strm.input[dt]!==31){this.mode=o.INFLATE;break}if(this.gzip_id_bytes_read=1,dt++,this.strm.avail_in===1)break;case 1:if(dt===null)break;this.strm.input[dt]===139?(this.gzip_id_bytes_read=2,this.mode=o.GUNZIP):this.mode=o.INFLATE;break;default:throw new Error("invalid number of gzip magic number bytes read")}case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:for(this.err=st.inflate(this.strm,this.flush),this.err===o.Z_NEED_DICT&&this.dictionary&&(this.err=st.inflateSetDictionary(this.strm,this.dictionary),this.err===o.Z_OK?this.err=st.inflate(this.strm,this.flush):this.err===o.Z_DATA_ERROR&&(this.err=o.Z_NEED_DICT));this.strm.avail_in>0&&this.mode===o.GUNZIP&&this.err===o.Z_STREAM_END&&this.strm.next_in[0]!==0;)this.reset(),this.err=st.inflate(this.strm,this.flush);break;default:throw new Error("Unknown mode "+this.mode)}},ut.prototype._checkError=function(){switch(this.err){case o.Z_OK:case o.Z_BUF_ERROR:if(this.strm.avail_out!==0&&this.flush===o.Z_FINISH)return this._error("unexpected end of file"),!1;break;case o.Z_STREAM_END:break;case o.Z_NEED_DICT:return this.dictionary==null?this._error("Missing dictionary"):this._error("Bad dictionary"),!1;default:return this._error("Zlib error"),!1}return!0},ut.prototype._after=function(){if(this._checkError()){var dt=this.strm.avail_out,ht=this.strm.avail_in;this.write_in_progress=!1,this.callback(ht,dt),this.pending_close&&this.close()}},ut.prototype._error=function(dt){this.strm.msg&&(dt=this.strm.msg),this.onerror(dt,this.err),this.write_in_progress=!1,this.pending_close&&this.close()},ut.prototype.init=function(dt,ht,ct,pt,ft){rt(arguments.length===4||arguments.length===5,"init(windowBits, level, memLevel, strategy, [dictionary])"),rt(dt>=8&&dt<=15,"invalid windowBits"),rt(ht>=-1&&ht<=9,"invalid compression level"),rt(ct>=1&&ct<=9,"invalid memlevel"),rt(pt===o.Z_FILTERED||pt===o.Z_HUFFMAN_ONLY||pt===o.Z_RLE||pt===o.Z_FIXED||pt===o.Z_DEFAULT_STRATEGY,"invalid strategy"),this._init(ht,dt,ct,pt,ft),this._setDictionary()},ut.prototype.params=function(){throw new Error("deflateParams Not supported")},ut.prototype.reset=function(){this._reset(),this._setDictionary()},ut.prototype._init=function(dt,ht,ct,pt,ft){switch(this.level=dt,this.windowBits=ht,this.memLevel=ct,this.strategy=pt,this.flush=o.Z_NO_FLUSH,this.err=o.Z_OK,this.mode!==o.GZIP&&this.mode!==o.GUNZIP||(this.windowBits+=16),this.mode===o.UNZIP&&(this.windowBits+=32),this.mode!==o.DEFLATERAW&&this.mode!==o.INFLATERAW||(this.windowBits=-1*this.windowBits),this.strm=new it,this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflateInit2(this.strm,this.level,o.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:case o.UNZIP:this.err=st.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}this.err!==o.Z_OK&&this._error("Init error"),this.dictionary=ft,this.write_in_progress=!1,this.init_done=!0},ut.prototype._setDictionary=function(){if(this.dictionary!=null){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:this.err=ot.deflateSetDictionary(this.strm,this.dictionary)}this.err!==o.Z_OK&&this._error("Failed to set dictionary")}},ut.prototype._reset=function(){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:case o.GZIP:this.err=ot.deflateReset(this.strm);break;case o.INFLATE:case o.INFLATERAW:case o.GUNZIP:this.err=st.inflateReset(this.strm)}this.err!==o.Z_OK&&this._error("Failed to reset stream")},o.Zlib=ut}).call(this,et(5).Buffer,et(2))},function(s,o,et){var tt=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable;function it(ot){if(ot==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(ot)}s.exports=function(){try{if(!Object.assign)return!1;var ot=new String("abc");if(ot[5]="de",Object.getOwnPropertyNames(ot)[0]==="5")return!1;for(var st={},at=0;at<10;at++)st["_"+String.fromCharCode(at)]=at;if(Object.getOwnPropertyNames(st).map(function(ut){return st[ut]}).join("")!=="0123456789")return!1;var lt={};return"abcdefghijklmnopqrst".split("").forEach(function(ut){lt[ut]=ut}),Object.keys(Object.assign({},lt)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}()?Object.assign:function(ot,st){for(var at,lt,ut=it(ot),dt=1;dt4?9:0)}function ut(Rt){for(var St=Rt.length;--St>=0;)Rt[St]=0}function dt(Rt){var St=Rt.state,Tt=St.pending;Tt>Rt.avail_out&&(Tt=Rt.avail_out),Tt!==0&&(nt.arraySet(Rt.output,St.pending_buf,St.pending_out,Tt,Rt.next_out),Rt.next_out+=Tt,St.pending_out+=Tt,Rt.total_out+=Tt,Rt.avail_out-=Tt,St.pending-=Tt,St.pending===0&&(St.pending_out=0))}function ht(Rt,St){rt._tr_flush_block(Rt,Rt.block_start>=0?Rt.block_start:-1,Rt.strstart-Rt.block_start,St),Rt.block_start=Rt.strstart,dt(Rt.strm)}function ct(Rt,St){Rt.pending_buf[Rt.pending++]=St}function pt(Rt,St){Rt.pending_buf[Rt.pending++]=St>>>8&255,Rt.pending_buf[Rt.pending++]=255&St}function ft(Rt,St){var Tt,Bt,xt=Rt.max_chain_length,Ct=Rt.strstart,kt=Rt.prev_length,Nt=Rt.nice_match,Ot=Rt.strstart>Rt.w_size-262?Rt.strstart-(Rt.w_size-262):0,Wt=Rt.window,Dt=Rt.w_mask,Et=Rt.prev,Pt=Rt.strstart+258,zt=Wt[Ct+kt-1],en=Wt[Ct+kt];Rt.prev_length>=Rt.good_match&&(xt>>=2),Nt>Rt.lookahead&&(Nt=Rt.lookahead);do if(Wt[(Tt=St)+kt]===en&&Wt[Tt+kt-1]===zt&&Wt[Tt]===Wt[Ct]&&Wt[++Tt]===Wt[Ct+1]){Ct+=2,Tt++;do;while(Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Ctkt){if(Rt.match_start=St,kt=Bt,Bt>=Nt)break;zt=Wt[Ct+kt-1],en=Wt[Ct+kt]}}while((St=Et[St&Dt])>Ot&&--xt!=0);return kt<=Rt.lookahead?kt:Rt.lookahead}function gt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt,Et=Rt.w_size;do{if(xt=Rt.window_size-Rt.lookahead-Rt.strstart,Rt.strstart>=Et+(Et-262)){nt.arraySet(Rt.window,Rt.window,Et,Et,0),Rt.match_start-=Et,Rt.strstart-=Et,Rt.block_start-=Et,St=Tt=Rt.hash_size;do Bt=Rt.head[--St],Rt.head[St]=Bt>=Et?Bt-Et:0;while(--Tt);St=Tt=Et;do Bt=Rt.prev[--St],Rt.prev[St]=Bt>=Et?Bt-Et:0;while(--Tt);xt+=Et}if(Rt.strm.avail_in===0)break;if(kt=Rt.strm,Nt=Rt.window,Ot=Rt.strstart+Rt.lookahead,Wt=xt,Dt=void 0,(Dt=kt.avail_in)>Wt&&(Dt=Wt),Tt=Dt===0?0:(kt.avail_in-=Dt,nt.arraySet(Nt,kt.input,kt.next_in,Dt,Ot),kt.state.wrap===1?kt.adler=it(kt.adler,Nt,Dt,Ot):kt.state.wrap===2&&(kt.adler=ot(kt.adler,Nt,Dt,Ot)),kt.next_in+=Dt,kt.total_in+=Dt,Dt),Rt.lookahead+=Tt,Rt.lookahead+Rt.insert>=3)for(Ct=Rt.strstart-Rt.insert,Rt.ins_h=Rt.window[Ct],Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<=3)if(Bt=rt._tr_tally(Rt,Rt.strstart-Rt.match_start,Rt.match_length-3),Rt.lookahead-=Rt.match_length,Rt.match_length<=Rt.max_lazy_match&&Rt.lookahead>=3){Rt.match_length--;do Rt.strstart++,Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<4096)&&(Rt.match_length=2)),Rt.prev_length>=3&&Rt.match_length<=Rt.prev_length){xt=Rt.strstart+Rt.lookahead-3,Bt=rt._tr_tally(Rt,Rt.strstart-1-Rt.prev_match,Rt.prev_length-3),Rt.lookahead-=Rt.prev_length-1,Rt.prev_length-=2;do++Rt.strstart<=xt&&(Rt.ins_h=(Rt.ins_h<15&&(kt=2,Bt-=16),xt<1||xt>9||Tt!==8||Bt<8||Bt>15||St<0||St>9||Ct<0||Ct>4)return at(Rt,-2);Bt===8&&(Bt=9);var Nt=new mt;return Rt.state=Nt,Nt.strm=Rt,Nt.wrap=kt,Nt.gzhead=null,Nt.w_bits=Bt,Nt.w_size=1<Rt.pending_buf_size-5&&(Tt=Rt.pending_buf_size-5);;){if(Rt.lookahead<=1){if(gt(Rt),Rt.lookahead===0&&St===0)return 1;if(Rt.lookahead===0)break}Rt.strstart+=Rt.lookahead,Rt.lookahead=0;var Bt=Rt.block_start+Tt;if((Rt.strstart===0||Rt.strstart>=Bt)&&(Rt.lookahead=Rt.strstart-Bt,Rt.strstart=Bt,ht(Rt,!1),Rt.strm.avail_out===0)||Rt.strstart-Rt.block_start>=Rt.w_size-262&&(ht(Rt,!1),Rt.strm.avail_out===0))return 1}return Rt.insert=0,St===4?(ht(Rt,!0),Rt.strm.avail_out===0?3:4):(Rt.strstart>Rt.block_start&&(ht(Rt,!1),Rt.strm.avail_out),1)}),new Ft(4,4,8,4,yt),new Ft(4,5,16,8,yt),new Ft(4,6,32,32,yt),new Ft(4,4,16,16,Ut),new Ft(8,16,32,32,Ut),new Ft(8,16,128,128,Ut),new Ft(8,32,128,256,Ut),new Ft(32,128,258,1024,Ut),new Ft(32,258,258,4096,Ut)],o.deflateInit=function(Rt,St){return Lt(Rt,St,8,15,8,0)},o.deflateInit2=Lt,o.deflateReset=At,o.deflateResetKeep=vt,o.deflateSetHeader=function(Rt,St){return Rt&&Rt.state?Rt.state.wrap!==2?-2:(Rt.state.gzhead=St,0):-2},o.deflate=function(Rt,St){var Tt,Bt,xt,Ct;if(!Rt||!Rt.state||St>5||St<0)return Rt?at(Rt,-2):-2;if(Bt=Rt.state,!Rt.output||!Rt.input&&Rt.avail_in!==0||Bt.status===666&&St!==4)return at(Rt,Rt.avail_out===0?-5:-2);if(Bt.strm=Rt,Tt=Bt.last_flush,Bt.last_flush=St,Bt.status===42)if(Bt.wrap===2)Rt.adler=0,ct(Bt,31),ct(Bt,139),ct(Bt,8),Bt.gzhead?(ct(Bt,(Bt.gzhead.text?1:0)+(Bt.gzhead.hcrc?2:0)+(Bt.gzhead.extra?4:0)+(Bt.gzhead.name?8:0)+(Bt.gzhead.comment?16:0)),ct(Bt,255&Bt.gzhead.time),ct(Bt,Bt.gzhead.time>>8&255),ct(Bt,Bt.gzhead.time>>16&255),ct(Bt,Bt.gzhead.time>>24&255),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,255&Bt.gzhead.os),Bt.gzhead.extra&&Bt.gzhead.extra.length&&(ct(Bt,255&Bt.gzhead.extra.length),ct(Bt,Bt.gzhead.extra.length>>8&255)),Bt.gzhead.hcrc&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending,0)),Bt.gzindex=0,Bt.status=69):(ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,3),Bt.status=113);else{var kt=8+(Bt.w_bits-8<<4)<<8;kt|=(Bt.strategy>=2||Bt.level<2?0:Bt.level<6?1:Bt.level===6?2:3)<<6,Bt.strstart!==0&&(kt|=32),kt+=31-kt%31,Bt.status=113,pt(Bt,kt),Bt.strstart!==0&&(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),Rt.adler=1}if(Bt.status===69)if(Bt.gzhead.extra){for(xt=Bt.pending;Bt.gzindex<(65535&Bt.gzhead.extra.length)&&(Bt.pending!==Bt.pending_buf_size||(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending!==Bt.pending_buf_size));)ct(Bt,255&Bt.gzhead.extra[Bt.gzindex]),Bt.gzindex++;Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Bt.gzindex===Bt.gzhead.extra.length&&(Bt.gzindex=0,Bt.status=73)}else Bt.status=73;if(Bt.status===73)if(Bt.gzhead.name){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.gzindex=0,Bt.status=91)}else Bt.status=91;if(Bt.status===91)if(Bt.gzhead.comment){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.status=103)}else Bt.status=103;if(Bt.status===103&&(Bt.gzhead.hcrc?(Bt.pending+2>Bt.pending_buf_size&&dt(Rt),Bt.pending+2<=Bt.pending_buf_size&&(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),Rt.adler=0,Bt.status=113)):Bt.status=113),Bt.pending!==0){if(dt(Rt),Rt.avail_out===0)return Bt.last_flush=-1,0}else if(Rt.avail_in===0&<(St)<=lt(Tt)&&St!==4)return at(Rt,-5);if(Bt.status===666&&Rt.avail_in!==0)return at(Rt,-5);if(Rt.avail_in!==0||Bt.lookahead!==0||St!==0&&Bt.status!==666){var Nt=Bt.strategy===2?function(Ot,Wt){for(var Dt;;){if(Ot.lookahead===0&&(gt(Ot),Ot.lookahead===0)){if(Wt===0)return 1;break}if(Ot.match_length=0,Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++,Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Wt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):Bt.strategy===3?function(Ot,Wt){for(var Dt,Et,Pt,zt,en=Ot.window;;){if(Ot.lookahead<=258){if(gt(Ot),Ot.lookahead<=258&&Wt===0)return 1;if(Ot.lookahead===0)break}if(Ot.match_length=0,Ot.lookahead>=3&&Ot.strstart>0&&(Et=en[Pt=Ot.strstart-1])===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]){zt=Ot.strstart+258;do;while(Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&PtOt.lookahead&&(Ot.match_length=Ot.lookahead)}if(Ot.match_length>=3?(Dt=rt._tr_tally(Ot,1,Ot.match_length-3),Ot.lookahead-=Ot.match_length,Ot.strstart+=Ot.match_length,Ot.match_length=0):(Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++),Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Wt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):tt[Bt.level].func(Bt,St);if(Nt!==3&&Nt!==4||(Bt.status=666),Nt===1||Nt===3)return Rt.avail_out===0&&(Bt.last_flush=-1),0;if(Nt===2&&(St===1?rt._tr_align(Bt):St!==5&&(rt._tr_stored_block(Bt,0,0,!1),St===3&&(ut(Bt.head),Bt.lookahead===0&&(Bt.strstart=0,Bt.block_start=0,Bt.insert=0))),dt(Rt),Rt.avail_out===0))return Bt.last_flush=-1,0}return St!==4?0:Bt.wrap<=0?1:(Bt.wrap===2?(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),ct(Bt,Rt.adler>>16&255),ct(Bt,Rt.adler>>24&255),ct(Bt,255&Rt.total_in),ct(Bt,Rt.total_in>>8&255),ct(Bt,Rt.total_in>>16&255),ct(Bt,Rt.total_in>>24&255)):(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),dt(Rt),Bt.wrap>0&&(Bt.wrap=-Bt.wrap),Bt.pending!==0?0:1)},o.deflateEnd=function(Rt){var St;return Rt&&Rt.state?(St=Rt.state.status)!==42&&St!==69&&St!==73&&St!==91&&St!==103&&St!==113&&St!==666?at(Rt,-2):(Rt.state=null,St===113?at(Rt,-3):0):-2},o.deflateSetDictionary=function(Rt,St){var Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt=St.length;if(!Rt||!Rt.state||(Ct=(Tt=Rt.state).wrap)===2||Ct===1&&Tt.status!==42||Tt.lookahead)return-2;for(Ct===1&&(Rt.adler=it(Rt.adler,St,Dt,0)),Tt.wrap=0,Dt>=Tt.w_size&&(Ct===0&&(ut(Tt.head),Tt.strstart=0,Tt.block_start=0,Tt.insert=0),Wt=new nt.Buf8(Tt.w_size),nt.arraySet(Wt,St,Dt-Tt.w_size,Tt.w_size,0),St=Wt,Dt=Tt.w_size),kt=Rt.avail_in,Nt=Rt.next_in,Ot=Rt.input,Rt.avail_in=Dt,Rt.next_in=0,Rt.input=St,gt(Tt);Tt.lookahead>=3;){Bt=Tt.strstart,xt=Tt.lookahead-2;do Tt.ins_h=(Tt.ins_h<=0;)Et[Pt]=0}var rt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],it=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ot=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],st=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],at=new Array(576);nt(at);var lt=new Array(60);nt(lt);var ut=new Array(512);nt(ut);var dt=new Array(256);nt(dt);var ht=new Array(29);nt(ht);var ct,pt,ft,gt=new Array(30);function yt(Et,Pt,zt,en,Kt){this.static_tree=Et,this.extra_bits=Pt,this.extra_base=zt,this.elems=en,this.max_length=Kt,this.has_stree=Et&&Et.length}function Ut(Et,Pt){this.dyn_tree=Et,this.max_code=0,this.stat_desc=Pt}function Ft(Et){return Et<256?ut[Et]:ut[256+(Et>>>7)]}function mt(Et,Pt){Et.pending_buf[Et.pending++]=255&Pt,Et.pending_buf[Et.pending++]=Pt>>>8&255}function vt(Et,Pt,zt){Et.bi_valid>16-zt?(Et.bi_buf|=Pt<>16-Et.bi_valid,Et.bi_valid+=zt-16):(Et.bi_buf|=Pt<>>=1,zt<<=1;while(--Pt>0);return zt>>>1}function Rt(Et,Pt,zt){var en,Kt,nn=new Array(16),Zt=0;for(en=1;en<=15;en++)nn[en]=Zt=Zt+zt[en-1]<<1;for(Kt=0;Kt<=Pt;Kt++){var jt=Et[2*Kt+1];jt!==0&&(Et[2*Kt]=Lt(nn[jt]++,jt))}}function St(Et){var Pt;for(Pt=0;Pt<286;Pt++)Et.dyn_ltree[2*Pt]=0;for(Pt=0;Pt<30;Pt++)Et.dyn_dtree[2*Pt]=0;for(Pt=0;Pt<19;Pt++)Et.bl_tree[2*Pt]=0;Et.dyn_ltree[512]=1,Et.opt_len=Et.static_len=0,Et.last_lit=Et.matches=0}function Tt(Et){Et.bi_valid>8?mt(Et,Et.bi_buf):Et.bi_valid>0&&(Et.pending_buf[Et.pending++]=Et.bi_buf),Et.bi_buf=0,Et.bi_valid=0}function Bt(Et,Pt,zt,en){var Kt=2*Pt,nn=2*zt;return Et[Kt]>1;zt>=1;zt--)xt(Et,nn,zt);Kt=Vt;do zt=Et.heap[1],Et.heap[1]=Et.heap[Et.heap_len--],xt(Et,nn,1),en=Et.heap[1],Et.heap[--Et.heap_max]=zt,Et.heap[--Et.heap_max]=en,nn[2*Kt]=nn[2*zt]+nn[2*en],Et.depth[Kt]=(Et.depth[zt]>=Et.depth[en]?Et.depth[zt]:Et.depth[en])+1,nn[2*zt+1]=nn[2*en+1]=Kt,Et.heap[1]=Kt++,xt(Et,nn,1);while(Et.heap_len>=2);Et.heap[--Et.heap_max]=Et.heap[1],function($t,Ht){var qt,on,Xt,dn,_n,Fn,Un=Ht.dyn_tree,On=Ht.max_code,gn=Ht.stat_desc.static_tree,hn=Ht.stat_desc.has_stree,wn=Ht.stat_desc.extra_bits,Zn=Ht.stat_desc.extra_base,Pn=Ht.stat_desc.max_length,$n=0;for(dn=0;dn<=15;dn++)$t.bl_count[dn]=0;for(Un[2*$t.heap[$t.heap_max]+1]=0,qt=$t.heap_max+1;qt<573;qt++)(dn=Un[2*Un[2*(on=$t.heap[qt])+1]+1]+1)>Pn&&(dn=Pn,$n++),Un[2*on+1]=dn,on>On||($t.bl_count[dn]++,_n=0,on>=Zn&&(_n=wn[on-Zn]),Fn=Un[2*on],$t.opt_len+=Fn*(dn+_n),hn&&($t.static_len+=Fn*(gn[2*on+1]+_n)));if($n!==0){do{for(dn=Pn-1;$t.bl_count[dn]===0;)dn--;$t.bl_count[dn]--,$t.bl_count[dn+1]+=2,$t.bl_count[Pn]--,$n-=2}while($n>0);for(dn=Pn;dn!==0;dn--)for(on=$t.bl_count[dn];on!==0;)(Xt=$t.heap[--qt])>On||(Un[2*Xt+1]!==dn&&($t.opt_len+=(dn-Un[2*Xt+1])*Un[2*Xt],Un[2*Xt+1]=dn),on--)}}(Et,Pt),Rt(nn,It,Et.bl_count)}function Nt(Et,Pt,zt){var en,Kt,nn=-1,Zt=Pt[1],jt=0,Vt=7,It=4;for(Zt===0&&(Vt=138,It=3),Pt[2*(zt+1)+1]=65535,en=0;en<=zt;en++)Kt=Zt,Zt=Pt[2*(en+1)+1],++jt>=7;Kt<30;Kt++)for(gt[Kt]=nn<<7,Pt=0;Pt<1<0?(Et.strm.data_type===2&&(Et.strm.data_type=function(jt){var Vt,It=4093624447;for(Vt=0;Vt<=31;Vt++,It>>>=1)if(1&It&&jt.dyn_ltree[2*Vt]!==0)return 0;if(jt.dyn_ltree[18]!==0||jt.dyn_ltree[20]!==0||jt.dyn_ltree[26]!==0)return 1;for(Vt=32;Vt<256;Vt++)if(jt.dyn_ltree[2*Vt]!==0)return 1;return 0}(Et)),kt(Et,Et.l_desc),kt(Et,Et.d_desc),Zt=function(jt){var Vt;for(Nt(jt,jt.dyn_ltree,jt.l_desc.max_code),Nt(jt,jt.dyn_dtree,jt.d_desc.max_code),kt(jt,jt.bl_desc),Vt=18;Vt>=3&&jt.bl_tree[2*st[Vt]+1]===0;Vt--);return jt.opt_len+=3*(Vt+1)+5+5+4,Vt}(Et),Kt=Et.opt_len+3+7>>>3,(nn=Et.static_len+3+7>>>3)<=Kt&&(Kt=nn)):Kt=nn=zt+5,zt+4<=Kt&&Pt!==-1?Dt(Et,Pt,zt,en):Et.strategy===4||nn===Kt?(vt(Et,2+(en?1:0),3),Ct(Et,at,lt)):(vt(Et,4+(en?1:0),3),function(jt,Vt,It,$t){var Ht;for(vt(jt,Vt-257,5),vt(jt,It-1,5),vt(jt,$t-4,4),Ht=0;Ht<$t;Ht++)vt(jt,jt.bl_tree[2*st[Ht]+1],3);Ot(jt,jt.dyn_ltree,Vt-1),Ot(jt,jt.dyn_dtree,It-1)}(Et,Et.l_desc.max_code+1,Et.d_desc.max_code+1,Zt+1),Ct(Et,Et.dyn_ltree,Et.dyn_dtree)),St(Et),en&&Tt(Et)},o._tr_tally=function(Et,Pt,zt){return Et.pending_buf[Et.d_buf+2*Et.last_lit]=Pt>>>8&255,Et.pending_buf[Et.d_buf+2*Et.last_lit+1]=255&Pt,Et.pending_buf[Et.l_buf+Et.last_lit]=255&zt,Et.last_lit++,Pt===0?Et.dyn_ltree[2*zt]++:(Et.matches++,Pt--,Et.dyn_ltree[2*(dt[zt]+256+1)]++,Et.dyn_dtree[2*Ft(Pt)]++),Et.last_lit===Et.lit_bufsize-1},o._tr_align=function(Et){vt(Et,2,3),At(Et,256,at),function(Pt){Pt.bi_valid===16?(mt(Pt,Pt.bi_buf),Pt.bi_buf=0,Pt.bi_valid=0):Pt.bi_valid>=8&&(Pt.pending_buf[Pt.pending++]=255&Pt.bi_buf,Pt.bi_buf>>=8,Pt.bi_valid-=8)}(Et)}},function(s,o,et){s.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(s,o,et){var tt=et(38),nt=et(74),rt=et(75),it=et(181),ot=et(182);function st(Ut){return(Ut>>>24&255)+(Ut>>>8&65280)+((65280&Ut)<<8)+((255&Ut)<<24)}function at(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new tt.Buf16(320),this.work=new tt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function lt(Ut){var Ft;return Ut&&Ut.state?(Ft=Ut.state,Ut.total_in=Ut.total_out=Ft.total=0,Ut.msg="",Ft.wrap&&(Ut.adler=1&Ft.wrap),Ft.mode=1,Ft.last=0,Ft.havedict=0,Ft.dmax=32768,Ft.head=null,Ft.hold=0,Ft.bits=0,Ft.lencode=Ft.lendyn=new tt.Buf32(852),Ft.distcode=Ft.distdyn=new tt.Buf32(592),Ft.sane=1,Ft.back=-1,0):-2}function ut(Ut){var Ft;return Ut&&Ut.state?((Ft=Ut.state).wsize=0,Ft.whave=0,Ft.wnext=0,lt(Ut)):-2}function dt(Ut,Ft){var mt,vt;return Ut&&Ut.state?(vt=Ut.state,Ft<0?(mt=0,Ft=-Ft):(mt=1+(Ft>>4),Ft<48&&(Ft&=15)),Ft&&(Ft<8||Ft>15)?-2:(vt.window!==null&&vt.wbits!==Ft&&(vt.window=null),vt.wrap=mt,vt.wbits=Ft,ut(Ut))):-2}function ht(Ut,Ft){var mt,vt;return Ut?(vt=new at,Ut.state=vt,vt.window=null,(mt=dt(Ut,Ft))!==0&&(Ut.state=null),mt):-2}var ct,pt,ft=!0;function gt(Ut){if(ft){var Ft;for(ct=new tt.Buf32(512),pt=new tt.Buf32(32),Ft=0;Ft<144;)Ut.lens[Ft++]=8;for(;Ft<256;)Ut.lens[Ft++]=9;for(;Ft<280;)Ut.lens[Ft++]=7;for(;Ft<288;)Ut.lens[Ft++]=8;for(ot(1,Ut.lens,0,288,ct,0,Ut.work,{bits:9}),Ft=0;Ft<32;)Ut.lens[Ft++]=5;ot(2,Ut.lens,0,32,pt,0,Ut.work,{bits:5}),ft=!1}Ut.lencode=ct,Ut.lenbits=9,Ut.distcode=pt,Ut.distbits=5}function yt(Ut,Ft,mt,vt){var At,Lt=Ut.state;return Lt.window===null&&(Lt.wsize=1<=Lt.wsize?(tt.arraySet(Lt.window,Ft,mt-Lt.wsize,Lt.wsize,0),Lt.wnext=0,Lt.whave=Lt.wsize):((At=Lt.wsize-Lt.wnext)>vt&&(At=vt),tt.arraySet(Lt.window,Ft,mt-vt,At,Lt.wnext),(vt-=At)?(tt.arraySet(Lt.window,Ft,mt-vt,vt,0),Lt.wnext=vt,Lt.whave=Lt.wsize):(Lt.wnext+=At,Lt.wnext===Lt.wsize&&(Lt.wnext=0),Lt.whave>>8&255,mt.check=rt(mt.check,$t,2,0),Bt=0,xt=0,mt.mode=2;break}if(mt.flags=0,mt.head&&(mt.head.done=!1),!(1&mt.wrap)||(((255&Bt)<<8)+(Bt>>8))%31){Ut.msg="incorrect header check",mt.mode=30;break}if((15&Bt)!=8){Ut.msg="unknown compression method",mt.mode=30;break}if(xt-=4,nn=8+(15&(Bt>>>=4)),mt.wbits===0)mt.wbits=nn;else if(nn>mt.wbits){Ut.msg="invalid window size",mt.mode=30;break}mt.dmax=1<>8&1),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=3;case 3:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,$t[2]=Bt>>>16&255,$t[3]=Bt>>>24&255,mt.check=rt(mt.check,$t,4,0)),Bt=0,xt=0,mt.mode=4;case 4:for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>8),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=5;case 5:if(1024&mt.flags){for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0}else mt.head&&(mt.head.extra=null);mt.mode=6;case 6:if(1024&mt.flags&&((Nt=mt.length)>St&&(Nt=St),Nt&&(mt.head&&(nn=mt.head.extra_len-mt.length,mt.head.extra||(mt.head.extra=new Array(mt.head.extra_len)),tt.arraySet(mt.head.extra,vt,Lt,Nt,nn)),512&mt.flags&&(mt.check=rt(mt.check,vt,Nt,Lt)),St-=Nt,Lt+=Nt,mt.length-=Nt),mt.length))break e;mt.length=0,mt.mode=7;case 7:if(2048&mt.flags){if(St===0)break e;Nt=0;do nn=vt[Lt+Nt++],mt.head&&nn&&mt.length<65536&&(mt.head.name+=String.fromCharCode(nn));while(nn&&Nt>9&1,mt.head.done=!0),Ut.adler=mt.check=0,mt.mode=12;break;case 10:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=7&xt,xt-=7&xt,mt.mode=27;break}for(;xt<3;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=1)){case 0:mt.mode=14;break;case 1:if(gt(mt),mt.mode=20,Ft===6){Bt>>>=2,xt-=2;break e}break;case 2:mt.mode=17;break;case 3:Ut.msg="invalid block type",mt.mode=30}Bt>>>=2,xt-=2;break;case 14:for(Bt>>>=7&xt,xt-=7&xt;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>16^65535)){Ut.msg="invalid stored block lengths",mt.mode=30;break}if(mt.length=65535&Bt,Bt=0,xt=0,mt.mode=15,Ft===6)break e;case 15:mt.mode=16;case 16:if(Nt=mt.length){if(Nt>St&&(Nt=St),Nt>Tt&&(Nt=Tt),Nt===0)break e;tt.arraySet(At,vt,Lt,Nt,Rt),St-=Nt,Lt+=Nt,Tt-=Nt,Rt+=Nt,mt.length-=Nt;break}mt.mode=12;break;case 17:for(;xt<14;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=5,xt-=5,mt.ndist=1+(31&Bt),Bt>>>=5,xt-=5,mt.ncode=4+(15&Bt),Bt>>>=4,xt-=4,mt.nlen>286||mt.ndist>30){Ut.msg="too many length or distance symbols",mt.mode=30;break}mt.have=0,mt.mode=18;case 18:for(;mt.have>>=3,xt-=3}for(;mt.have<19;)mt.lens[Ht[mt.have++]]=0;if(mt.lencode=mt.lendyn,mt.lenbits=7,jt={bits:mt.lenbits},Zt=ot(0,mt.lens,0,19,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid code lengths set",mt.mode=30;break}mt.have=0,mt.mode=19;case 19:for(;mt.have>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=Dt,xt-=Dt,mt.lens[mt.have++]=Pt;else{if(Pt===16){for(Vt=Dt+2;xt>>=Dt,xt-=Dt,mt.have===0){Ut.msg="invalid bit length repeat",mt.mode=30;break}nn=mt.lens[mt.have-1],Nt=3+(3&Bt),Bt>>>=2,xt-=2}else if(Pt===17){for(Vt=Dt+3;xt>>=Dt)),Bt>>>=3,xt-=3}else{for(Vt=Dt+7;xt>>=Dt)),Bt>>>=7,xt-=7}if(mt.have+Nt>mt.nlen+mt.ndist){Ut.msg="invalid bit length repeat",mt.mode=30;break}for(;Nt--;)mt.lens[mt.have++]=nn}}if(mt.mode===30)break;if(mt.lens[256]===0){Ut.msg="invalid code -- missing end-of-block",mt.mode=30;break}if(mt.lenbits=9,jt={bits:mt.lenbits},Zt=ot(1,mt.lens,0,mt.nlen,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid literal/lengths set",mt.mode=30;break}if(mt.distbits=6,mt.distcode=mt.distdyn,jt={bits:mt.distbits},Zt=ot(2,mt.lens,mt.nlen,mt.ndist,mt.distcode,0,mt.work,jt),mt.distbits=jt.bits,Zt){Ut.msg="invalid distances set",mt.mode=30;break}if(mt.mode=20,Ft===6)break e;case 20:mt.mode=21;case 21:if(St>=6&&Tt>=258){Ut.next_out=Rt,Ut.avail_out=Tt,Ut.next_in=Lt,Ut.avail_in=St,mt.hold=Bt,mt.bits=xt,it(Ut,kt),Rt=Ut.next_out,At=Ut.output,Tt=Ut.avail_out,Lt=Ut.next_in,vt=Ut.input,St=Ut.avail_in,Bt=mt.hold,xt=mt.bits,mt.mode===12&&(mt.back=-1);break}for(mt.back=0;Et=(It=mt.lencode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,mt.length=Pt,Et===0){mt.mode=26;break}if(32&Et){mt.back=-1,mt.mode=12;break}if(64&Et){Ut.msg="invalid literal/length code",mt.mode=30;break}mt.extra=15&Et,mt.mode=22;case 22:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}mt.was=mt.length,mt.mode=23;case 23:for(;Et=(It=mt.distcode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,64&Et){Ut.msg="invalid distance code",mt.mode=30;break}mt.offset=Pt,mt.extra=15&Et,mt.mode=24;case 24:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}if(mt.offset>mt.dmax){Ut.msg="invalid distance too far back",mt.mode=30;break}mt.mode=25;case 25:if(Tt===0)break e;if(Nt=kt-Tt,mt.offset>Nt){if((Nt=mt.offset-Nt)>mt.whave&&mt.sane){Ut.msg="invalid distance too far back",mt.mode=30;break}Nt>mt.wnext?(Nt-=mt.wnext,Ot=mt.wsize-Nt):Ot=mt.wnext-Nt,Nt>mt.length&&(Nt=mt.length),Wt=mt.window}else Wt=At,Ot=Rt-mt.offset,Nt=mt.length;Nt>Tt&&(Nt=Tt),Tt-=Nt,mt.length-=Nt;do At[Rt++]=Wt[Ot++];while(--Nt);mt.length===0&&(mt.mode=21);break;case 26:if(Tt===0)break e;At[Rt++]=mt.length,Tt--,mt.mode=21;break;case 27:if(mt.wrap){for(;xt<32;){if(St===0)break e;St--,Bt|=vt[Lt++]<>>=At=vt>>>24,gt-=At,(At=vt>>>16&255)===0)xt[st++]=65535&vt;else{if(!(16&At)){if(!(64&At)){vt=yt[(65535&vt)+(ft&(1<>>=At,gt-=At),gt<15&&(ft+=Bt[it++]<>>=At=vt>>>24,gt-=At,!(16&(At=vt>>>16&255))){if(!(64&At)){vt=Ut[(65535&vt)+(ft&(1<ut){tt.msg="invalid distance too far back",rt.mode=30;break e}if(ft>>>=At,gt-=At,Rt>(At=st-at)){if((At=Rt-At)>ht&&rt.sane){tt.msg="invalid distance too far back",rt.mode=30;break e}if(St=0,Tt=pt,ct===0){if(St+=dt-At,At2;)xt[st++]=Tt[St++],xt[st++]=Tt[St++],xt[st++]=Tt[St++],Lt-=3;Lt&&(xt[st++]=Tt[St++],Lt>1&&(xt[st++]=Tt[St++]))}else{St=st-Rt;do xt[st++]=xt[St++],xt[st++]=xt[St++],xt[st++]=xt[St++],Lt-=3;while(Lt>2);Lt&&(xt[st++]=xt[St++],Lt>1&&(xt[st++]=xt[St++]))}break}}break}}while(it>3,ft&=(1<<(gt-=Lt<<3))-1,tt.next_in=it,tt.next_out=st,tt.avail_in=it=1&&zt[xt]===0;xt--);if(Ct>xt&&(Ct=xt),xt===0)return dt[ht++]=20971520,dt[ht++]=20971520,pt.bits=1,0;for(Bt=1;Bt0&&(st===0||xt!==1))return-1;for(en[1]=0,St=1;St<15;St++)en[St+1]=en[St]+zt[St];for(Tt=0;Tt852||st===2&&Wt>592)return 1;for(;;){vt=St-Nt,ct[Tt]mt?(At=Kt[nn+ct[Tt]],Lt=Et[Pt+ct[Tt]]):(At=96,Lt=0),ft=1<>Nt)+(gt-=ft)]=vt<<24|At<<16|Lt|0;while(gt!==0);for(ft=1<>=1;if(ft!==0?(Dt&=ft-1,Dt+=ft):Dt=0,Tt++,--zt[St]==0){if(St===xt)break;St=at[lt+ct[Tt]]}if(St>Ct&&(Dt&Ut)!==yt){for(Nt===0&&(Nt=Ct),Ft+=Bt,Ot=1<<(kt=St-Nt);kt+Nt852||st===2&&Wt>592)return 1;dt[yt=Dt&Ut]=Ct<<24|kt<<16|Ft-ht|0}}return Dt!==0&&(dt[Ft+Dt]=St-Nt<<24|64<<16|0),pt.bits=Ct,0}},function(s,o,et){s.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(s,o){},function(s,o,et){function tt(ut,dt){var ht=Object.keys(ut);if(Object.getOwnPropertySymbols){var ct=Object.getOwnPropertySymbols(ut);dt&&(ct=ct.filter(function(pt){return Object.getOwnPropertyDescriptor(ut,pt).enumerable})),ht.push.apply(ht,ct)}return ht}function nt(ut){for(var dt=1;dt0?this.tail.next=pt:this.head=pt,this.tail=pt,++this.length}},{key:"unshift",value:function(ct){var pt={data:ct,next:this.head};this.length===0&&(this.tail=pt),this.head=pt,++this.length}},{key:"shift",value:function(){if(this.length!==0){var ct=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,ct}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(ct){if(this.length===0)return"";for(var pt=this.head,ft=""+pt.data;pt=pt.next;)ft+=ct+pt.data;return ft}},{key:"concat",value:function(ct){if(this.length===0)return st.alloc(0);for(var pt,ft,gt,yt=st.allocUnsafe(ct>>>0),Ut=this.head,Ft=0;Ut;)pt=Ut.data,ft=yt,gt=Ft,st.prototype.copy.call(pt,ft,gt),Ft+=Ut.data.length,Ut=Ut.next;return yt}},{key:"consume",value:function(ct,pt){var ft;return ctyt.length?yt.length:ct;if(Ut===yt.length?gt+=yt:gt+=yt.slice(0,ct),(ct-=Ut)==0){Ut===yt.length?(++ft,pt.next?this.head=pt.next:this.head=this.tail=null):(this.head=pt,pt.data=yt.slice(Ut));break}++ft}return this.length-=ft,gt}},{key:"_getBuffer",value:function(ct){var pt=st.allocUnsafe(ct),ft=this.head,gt=1;for(ft.data.copy(pt),ct-=ft.data.length;ft=ft.next;){var yt=ft.data,Ut=ct>yt.length?yt.length:ct;if(yt.copy(pt,pt.length-ct,0,Ut),(ct-=Ut)==0){Ut===yt.length?(++gt,ft.next?this.head=ft.next:this.head=this.tail=null):(this.head=ft,ft.data=yt.slice(Ut));break}++gt}return this.length-=gt,pt}},{key:lt,value:function(ct,pt){return at(this,nt(nt({},pt),{},{depth:0,customInspect:!1}))}}])&&it(dt.prototype,ht),Object.defineProperty(dt,"prototype",{writable:!1}),ut}()},function(s,o){},function(s,o,et){(function(tt){var nt;function rt(Ut,Ft,mt){return(Ft=function(vt){var At=function(Lt,Rt){if(typeof Lt!="object"||Lt===null)return Lt;var St=Lt[Symbol.toPrimitive];if(St!==void 0){var Tt=St.call(Lt,Rt||"default");if(typeof Tt!="object")return Tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Rt==="string"?String:Number)(Lt)}(vt,"string");return typeof At=="symbol"?At:String(At)}(Ft))in Ut?Object.defineProperty(Ut,Ft,{value:mt,enumerable:!0,configurable:!0,writable:!0}):Ut[Ft]=mt,Ut}var it=et(48),ot=Symbol("lastResolve"),st=Symbol("lastReject"),at=Symbol("error"),lt=Symbol("ended"),ut=Symbol("lastPromise"),dt=Symbol("handlePromise"),ht=Symbol("stream");function ct(Ut,Ft){return{value:Ut,done:Ft}}function pt(Ut){var Ft=Ut[ot];if(Ft!==null){var mt=Ut[ht].read();mt!==null&&(Ut[ut]=null,Ut[ot]=null,Ut[st]=null,Ft(ct(mt,!1)))}}function ft(Ut){tt.nextTick(pt,Ut)}var gt=Object.getPrototypeOf(function(){}),yt=Object.setPrototypeOf((rt(nt={get stream(){return this[ht]},next:function(){var Ut=this,Ft=this[at];if(Ft!==null)return Promise.reject(Ft);if(this[lt])return Promise.resolve(ct(void 0,!0));if(this[ht].destroyed)return new Promise(function(Lt,Rt){tt.nextTick(function(){Ut[at]?Rt(Ut[at]):Lt(ct(void 0,!0))})});var mt,vt=this[ut];if(vt)mt=new Promise(function(Lt,Rt){return function(St,Tt){Lt.then(function(){Rt[lt]?St(ct(void 0,!0)):Rt[dt](St,Tt)},Tt)}}(vt,this));else{var At=this[ht].read();if(At!==null)return Promise.resolve(ct(At,!1));mt=new Promise(this[dt])}return this[ut]=mt,mt}},Symbol.asyncIterator,function(){return this}),rt(nt,"return",function(){var Ut=this;return new Promise(function(Ft,mt){Ut[ht].destroy(null,function(vt){vt?mt(vt):Ft(ct(void 0,!0))})})}),nt),gt);s.exports=function(Ut){var Ft,mt=Object.create(yt,(rt(Ft={},ht,{value:Ut,writable:!0}),rt(Ft,ot,{value:null,writable:!0}),rt(Ft,st,{value:null,writable:!0}),rt(Ft,at,{value:null,writable:!0}),rt(Ft,lt,{value:Ut._readableState.endEmitted,writable:!0}),rt(Ft,dt,{value:function(vt,At){var Lt=mt[ht].read();Lt?(mt[ut]=null,mt[ot]=null,mt[st]=null,vt(ct(Lt,!1))):(mt[ot]=vt,mt[st]=At)},writable:!0}),Ft));return mt[ut]=null,it(Ut,function(vt){if(vt&&vt.code!=="ERR_STREAM_PREMATURE_CLOSE"){var At=mt[st];return At!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,At(vt)),void(mt[at]=vt)}var Lt=mt[ot];Lt!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,Lt(ct(void 0,!0))),mt[lt]=!0}),Ut.on("readable",ft.bind(null,mt)),mt}}).call(this,et(2))},function(s,o){s.exports=function(){throw new Error("Readable.from is not available in the browser")}},function(s,o,et){s.exports=nt;var tt=et(81);function nt(rt){if(!(this instanceof nt))return new nt(rt);tt.call(this,rt)}et(7)(nt,tt),nt.prototype._transform=function(rt,it,ot){ot(null,rt)}},function(s,o,et){var tt,nt=et(24).codes,rt=nt.ERR_MISSING_ARGS,it=nt.ERR_STREAM_DESTROYED;function ot(dt){if(dt)throw dt}function st(dt,ht,ct,pt){pt=function(yt){var Ut=!1;return function(){Ut||(Ut=!0,yt.apply(void 0,arguments))}}(pt);var ft=!1;dt.on("close",function(){ft=!0}),tt===void 0&&(tt=et(48)),tt(dt,{readable:ht,writable:ct},function(yt){if(yt)return pt(yt);ft=!0,pt()});var gt=!1;return function(yt){if(!ft&&!gt)return gt=!0,function(Ut){return Ut.setHeader&&typeof Ut.abort=="function"}(dt)?dt.abort():typeof dt.destroy=="function"?dt.destroy():void pt(yt||new it("pipe"))}}function at(dt){dt()}function lt(dt,ht){return dt.pipe(ht)}function ut(dt){return dt.length?typeof dt[dt.length-1]!="function"?ot:dt.pop():ot}s.exports=function(){for(var dt=arguments.length,ht=new Array(dt),ct=0;ct0,function(mt){pt||(pt=mt),mt&>.forEach(at),Ft||(gt.forEach(at),ft(pt))})});return ht.reduce(lt)}},function(s,o,et){var tt=et(192)(function nt(rt,it){return(it=it||{}).namespace=rt,it.prod=!0,it.dev=!1,it.force||nt.force?nt.yep(it):nt.nope(it)});s.exports=tt},function(s,o){var et=[],tt=[],nt=function(){};function rt(ct){return!~et.indexOf(ct)&&(et.push(ct),!0)}function it(ct){nt=ct}function ot(ct){for(var pt=[],ft=0;ftst.start)&&(at?at(null,ht):dt.emit("line",ht)),pt++,ht=""),setTimeout(yt,1e3);var mt=ut.write(lt.slice(0,Ft));at||dt.emit("data",mt);for(var vt=(mt=(ht+mt).split(/\n+/)).length-1,At=0;Atst.start)&&(at?at(null,mt[At]):dt.emit("line",mt[At])),pt++;return ht=mt[vt],ct+=Ft,yt()});nt.close(gt,ot)})()}),at?dt.destroy:dt}}).call(this,et(5).Buffer)},function(s,o,et){(function(tt,nt){function rt(Ft){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(mt){return typeof mt}:function(mt){return mt&&typeof Symbol=="function"&&mt.constructor===Symbol&&mt!==Symbol.prototype?"symbol":typeof mt})(Ft)}function it(Ft,mt){var vt=Object.keys(Ft);if(Object.getOwnPropertySymbols){var At=Object.getOwnPropertySymbols(Ft);mt&&(At=At.filter(function(Lt){return Object.getOwnPropertyDescriptor(Ft,Lt).enumerable})),vt.push.apply(vt,At)}return vt}function ot(Ft){for(var mt=1;mt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var vt,At=ct(Ft);if(mt){var Lt=ct(this).constructor;vt=Reflect.construct(At,arguments,Lt)}else vt=At.apply(this,arguments);return ht(this,vt)}}function ht(Ft,mt){if(mt&&(rt(mt)==="object"||typeof mt=="function"))return mt;if(mt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(vt){if(vt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return vt}(Ft)}function ct(Ft){return(ct=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(mt){return mt.__proto__||Object.getPrototypeOf(mt)})(Ft)}var pt=et(82),ft=et(205),gt=et(33).Stream,yt=et(14),Ut=et(29);s.exports=function(Ft){(function(Rt,St){if(typeof St!="function"&&St!==null)throw new TypeError("Super expression must either be null or a function");Rt.prototype=Object.create(St&&St.prototype,{constructor:{value:Rt,writable:!0,configurable:!0}}),Object.defineProperty(Rt,"prototype",{writable:!1}),St&&ut(Rt,St)})(Lt,Ft);var mt,vt,At=dt(Lt);function Lt(){var Rt,St=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return at(this,Lt),(Rt=At.call(this,St)).options=St,Rt.name=St.name||"http",Rt.ssl=!!St.ssl,Rt.host=St.host||"localhost",Rt.port=St.port,Rt.auth=St.auth,Rt.path=St.path||"",Rt.agent=St.agent,Rt.headers=St.headers||{},Rt.headers["content-type"]="application/json",Rt.batch=St.batch||!1,Rt.batchInterval=St.batchInterval||5e3,Rt.batchCount=St.batchCount||10,Rt.batchOptions=[],Rt.batchTimeoutID=-1,Rt.batchCallback={},Rt.port||(Rt.port=Rt.ssl?443:80),Rt}return mt=Lt,(vt=[{key:"log",value:function(Rt,St){var Tt=this;this._request(Rt,function(Bt,xt){xt&&xt.statusCode!==200&&(Bt=new Error("Invalid HTTP Status Code: ".concat(xt.statusCode))),Bt?Tt.emit("warn",Bt):Tt.emit("logged",Rt)}),St&&tt(St)}},{key:"query",value:function(Rt,St){typeof Rt=="function"&&(St=Rt,Rt={}),(Rt={method:"query",params:this.normalizeQuery(Rt)}).params.path&&(Rt.path=Rt.params.path,delete Rt.params.path),Rt.params.auth&&(Rt.auth=Rt.params.auth,delete Rt.params.auth),this._request(Rt,function(Tt,Bt,xt){if(Bt&&Bt.statusCode!==200&&(Tt=new Error("Invalid HTTP Status Code: ".concat(Bt.statusCode))),Tt)return St(Tt);if(typeof xt=="string")try{xt=JSON.parse(xt)}catch(Ct){return St(Ct)}St(null,xt)})}},{key:"stream",value:function(){var Rt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},St=new gt;(Rt={method:"stream",params:Rt}).params.path&&(Rt.path=Rt.params.path,delete Rt.params.path),Rt.params.auth&&(Rt.auth=Rt.params.auth,delete Rt.params.auth);var Tt="",Bt=this._request(Rt);return St.destroy=function(){return Bt.destroy()},Bt.on("data",function(xt){for(var Ct=(xt=(Tt+xt).split(/\n+/)).length-1,kt=0;kt0&&(clearTimeout(this.batchTimeoutID),this.batchTimeoutID=-1);var Bt=this.batchOptions.slice();this.batchOptions=[],this._doRequest(Bt,Rt,St,Tt)}},{key:"_doRequest",value:function(Rt,St,Tt,Bt){var xt=Object.assign({},this.headers);Tt&&Tt.bearer&&(xt.Authorization="Bearer ".concat(Tt.bearer));var Ct=(this.ssl?ft:pt).request(ot(ot({},this.options),{},{method:"POST",host:this.host,port:this.port,path:"/".concat(Bt.replace(/^\//,"")),headers:xt,auth:Tt&&Tt.username&&Tt.password?"".concat(Tt.username,":").concat(Tt.password):"",agent:this.agent}));Ct.on("error",St),Ct.on("response",function(kt){return kt.on("end",function(){return St(null,kt)}).resume()}),Ct.end(nt.from(Ut(Rt,this.options.replacer),"utf8"))}}])&<(mt.prototype,vt),Object.defineProperty(mt,"prototype",{writable:!1}),Lt}(yt)}).call(this,et(19).setImmediate,et(5).Buffer)},function(s,o,et){(function(tt,nt,rt){var it=et(83),ot=et(7),st=et(84),at=et(31),lt=et(196),ut=st.IncomingMessage,dt=st.readyStates,ht=s.exports=function(pt){var ft,gt=this;at.Writable.call(gt),gt._opts=pt,gt._body=[],gt._headers={},pt.auth&>.setHeader("Authorization","Basic "+new tt(pt.auth).toString("base64")),Object.keys(pt.headers).forEach(function(Ut){gt.setHeader(Ut,pt.headers[Ut])});var yt=!0;if(pt.mode==="disable-fetch"||"requestTimeout"in pt&&!it.abortController)yt=!1,ft=!0;else if(pt.mode==="prefer-streaming")ft=!1;else if(pt.mode==="allow-wrong-content-type")ft=!it.overrideMimeType;else{if(pt.mode&&pt.mode!=="default"&&pt.mode!=="prefer-fast")throw new Error("Invalid value for opts.mode");ft=!0}gt._mode=function(Ut,Ft){return it.fetch&&Ft?"fetch":it.mozchunkedarraybuffer?"moz-chunked-arraybuffer":it.msstream?"ms-stream":it.arraybuffer&&Ut?"arraybuffer":it.vbArray&&Ut?"text:vbarray":"text"}(ft,yt),gt._fetchTimer=null,gt.on("finish",function(){gt._onFinish()})};ot(ht,at.Writable),ht.prototype.setHeader=function(pt,ft){var gt=pt.toLowerCase();ct.indexOf(gt)===-1&&(this._headers[gt]={name:pt,value:ft})},ht.prototype.getHeader=function(pt){var ft=this._headers[pt.toLowerCase()];return ft?ft.value:null},ht.prototype.removeHeader=function(pt){delete this._headers[pt.toLowerCase()]},ht.prototype._onFinish=function(){var pt=this;if(!pt._destroyed){var ft=pt._opts,gt=pt._headers,yt=null;ft.method!=="GET"&&ft.method!=="HEAD"&&(yt=it.arraybuffer?lt(tt.concat(pt._body)):it.blobConstructor?new nt.Blob(pt._body.map(function(At){return lt(At)}),{type:(gt["content-type"]||{}).value||""}):tt.concat(pt._body).toString());var Ut=[];if(Object.keys(gt).forEach(function(At){var Lt=gt[At].name,Rt=gt[At].value;Array.isArray(Rt)?Rt.forEach(function(St){Ut.push([Lt,St])}):Ut.push([Lt,Rt])}),pt._mode==="fetch"){var Ft=null;if(it.abortController){var mt=new AbortController;Ft=mt.signal,pt._fetchAbortController=mt,"requestTimeout"in ft&&ft.requestTimeout!==0&&(pt._fetchTimer=nt.setTimeout(function(){pt.emit("requestTimeout"),pt._fetchAbortController&&pt._fetchAbortController.abort()},ft.requestTimeout))}nt.fetch(pt._opts.url,{method:pt._opts.method,headers:Ut,body:yt||void 0,mode:"cors",credentials:ft.withCredentials?"include":"same-origin",signal:Ft}).then(function(At){pt._fetchResponse=At,pt._connect()},function(At){nt.clearTimeout(pt._fetchTimer),pt._destroyed||pt.emit("error",At)})}else{var vt=pt._xhr=new nt.XMLHttpRequest;try{vt.open(pt._opts.method,pt._opts.url,!0)}catch(At){return void rt.nextTick(function(){pt.emit("error",At)})}"responseType"in vt&&(vt.responseType=pt._mode.split(":")[0]),"withCredentials"in vt&&(vt.withCredentials=!!ft.withCredentials),pt._mode==="text"&&"overrideMimeType"in vt&&vt.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in ft&&(vt.timeout=ft.requestTimeout,vt.ontimeout=function(){pt.emit("requestTimeout")}),Ut.forEach(function(At){vt.setRequestHeader(At[0],At[1])}),pt._response=null,vt.onreadystatechange=function(){switch(vt.readyState){case dt.LOADING:case dt.DONE:pt._onXHRProgress()}},pt._mode==="moz-chunked-arraybuffer"&&(vt.onprogress=function(){pt._onXHRProgress()}),vt.onerror=function(){pt._destroyed||pt.emit("error",new Error("XHR error"))};try{vt.send(yt)}catch(At){return void rt.nextTick(function(){pt.emit("error",At)})}}}},ht.prototype._onXHRProgress=function(){(function(pt){try{var ft=pt.status;return ft!==null&&ft!==0}catch{return!1}})(this._xhr)&&!this._destroyed&&(this._response||this._connect(),this._response._onXHRProgress())},ht.prototype._connect=function(){var pt=this;pt._destroyed||(pt._response=new ut(pt._xhr,pt._fetchResponse,pt._mode,pt._fetchTimer),pt._response.on("error",function(ft){pt.emit("error",ft)}),pt.emit("response",pt._response))},ht.prototype._write=function(pt,ft,gt){this._body.push(pt),gt()},ht.prototype.abort=ht.prototype.destroy=function(){this._destroyed=!0,nt.clearTimeout(this._fetchTimer),this._response&&(this._response._destroyed=!0),this._xhr?this._xhr.abort():this._fetchAbortController&&this._fetchAbortController.abort()},ht.prototype.end=function(pt,ft,gt){typeof pt=="function"&&(gt=pt,pt=void 0),at.Writable.prototype.end.call(this,pt,ft,gt)},ht.prototype.flushHeaders=function(){},ht.prototype.setTimeout=function(){},ht.prototype.setNoDelay=function(){},ht.prototype.setSocketKeepAlive=function(){};var ct=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]}).call(this,et(5).Buffer,et(6),et(2))},function(s,o,et){var tt=et(5).Buffer;s.exports=function(nt){if(nt instanceof Uint8Array){if(nt.byteOffset===0&&nt.byteLength===nt.buffer.byteLength)return nt.buffer;if(typeof nt.buffer.slice=="function")return nt.buffer.slice(nt.byteOffset,nt.byteOffset+nt.byteLength)}if(tt.isBuffer(nt)){for(var rt=new Uint8Array(nt.length),it=nt.length,ot=0;ot= 0x80 (not a basic code point)","invalid-input":"Invalid input"},ct=Math.floor,pt=String.fromCharCode;function ft(Rt){throw new RangeError(ht[Rt])}function gt(Rt,St){for(var Tt=Rt.length,Bt=[];Tt--;)Bt[Tt]=St(Rt[Tt]);return Bt}function yt(Rt,St){var Tt=Rt.split("@"),Bt="";return Tt.length>1&&(Bt=Tt[0]+"@",Rt=Tt[1]),Bt+gt((Rt=Rt.replace(dt,".")).split("."),St).join(".")}function Ut(Rt){for(var St,Tt,Bt=[],xt=0,Ct=Rt.length;xt=55296&&St<=56319&&xt65535&&(Tt+=pt((St-=65536)>>>10&1023|55296),St=56320|1023&St),Tt+=pt(St)}).join("")}function mt(Rt,St){return Rt+22+75*(Rt<26)-((St!=0)<<5)}function vt(Rt,St,Tt){var Bt=0;for(Rt=Tt?ct(Rt/700):Rt>>1,Rt+=ct(Rt/St);Rt>455;Bt+=36)Rt=ct(Rt/35);return ct(Bt+36*Rt/(Rt+38))}function At(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt,Et,Pt=[],zt=Rt.length,en=0,Kt=128,nn=72;for((Tt=Rt.lastIndexOf("-"))<0&&(Tt=0),Bt=0;Bt=128&&ft("not-basic"),Pt.push(Rt.charCodeAt(Bt));for(xt=Tt>0?Tt+1:0;xt=zt&&ft("invalid-input"),((Ot=(Et=Rt.charCodeAt(xt++))-48<10?Et-22:Et-65<26?Et-65:Et-97<26?Et-97:36)>=36||Ot>ct((at-en)/kt))&&ft("overflow"),en+=Ot*kt,!(Ot<(Wt=Nt<=nn?1:Nt>=nn+26?26:Nt-nn));Nt+=36)kt>ct(at/(Dt=36-Wt))&&ft("overflow"),kt*=Dt;nn=vt(en-Ct,St=Pt.length+1,Ct==0),ct(en/St)>at-Kt&&ft("overflow"),Kt+=ct(en/St),en%=St,Pt.splice(en++,0,Kt)}return Ft(Pt)}function Lt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt,Et,Pt,zt,en,Kt,nn=[];for(Pt=(Rt=Ut(Rt)).length,St=128,Tt=0,Ct=72,kt=0;kt=St&&Etct((at-Tt)/(zt=Bt+1))&&ft("overflow"),Tt+=(Nt-St)*zt,St=Nt,kt=0;ktat&&ft("overflow"),Et==St){for(Ot=Tt,Wt=36;!(Ot<(Dt=Wt<=Ct?1:Wt>=Ct+26?26:Wt-Ct));Wt+=36)Kt=Ot-Dt,en=36-Dt,nn.push(pt(mt(Dt+Kt%en,0))),Ot=ct(Kt/en);nn.push(pt(mt(Ot,0))),Ct=vt(Tt,zt,Bt==xt),Tt=0,++Bt}++Tt,++St}return nn.join("")}st={version:"1.4.1",ucs2:{decode:Ut,encode:Ft},decode:At,encode:Lt,toASCII:function(Rt){return yt(Rt,function(St){return ut.test(St)?"xn--"+Lt(St):St})},toUnicode:function(Rt){return yt(Rt,function(St){return lt.test(St)?At(St.slice(4).toLowerCase()):St})}},(rt=function(){return st}.call(o,et,o,tt))===void 0||(tt.exports=rt)})()}).call(this,et(200)(s),et(6))},function(s,o){s.exports=function(et){return et.webpackPolyfill||(et.deprecate=function(){},et.paths=[],et.children||(et.children=[]),Object.defineProperty(et,"loaded",{enumerable:!0,get:function(){return et.l}}),Object.defineProperty(et,"id",{enumerable:!0,get:function(){return et.i}}),et.webpackPolyfill=1),et}},function(s,o,et){s.exports={isString:function(tt){return typeof tt=="string"},isObject:function(tt){return typeof tt=="object"&&tt!==null},isNull:function(tt){return tt===null},isNullOrUndefined:function(tt){return tt==null}}},function(s,o,et){o.decode=o.parse=et(203),o.encode=o.stringify=et(204)},function(s,o,et){function tt(rt,it){return Object.prototype.hasOwnProperty.call(rt,it)}s.exports=function(rt,it,ot,st){it=it||"&",ot=ot||"=";var at={};if(typeof rt!="string"||rt.length===0)return at;var lt=/\+/g;rt=rt.split(it);var ut=1e3;st&&typeof st.maxKeys=="number"&&(ut=st.maxKeys);var dt=rt.length;ut>0&&dt>ut&&(dt=ut);for(var ht=0;ht=0?(ct=yt.substr(0,Ut),pt=yt.substr(Ut+1)):(ct=yt,pt=""),ft=decodeURIComponent(ct),gt=decodeURIComponent(pt),tt(at,ft)?nt(at[ft])?at[ft].push(gt):at[ft]=[at[ft],gt]:at[ft]=gt}return at};var nt=Array.isArray||function(rt){return Object.prototype.toString.call(rt)==="[object Array]"}},function(s,o,et){var tt=function(ot){switch(typeof ot){case"string":return ot;case"boolean":return ot?"true":"false";case"number":return isFinite(ot)?ot:"";default:return""}};s.exports=function(ot,st,at,lt){return st=st||"&",at=at||"=",ot===null&&(ot=void 0),typeof ot=="object"?rt(it(ot),function(ut){var dt=encodeURIComponent(tt(ut))+at;return nt(ot[ut])?rt(ot[ut],function(ht){return dt+encodeURIComponent(tt(ht))}).join(st):dt+encodeURIComponent(tt(ot[ut]))}).join(st):lt?encodeURIComponent(tt(lt))+at+encodeURIComponent(tt(ot)):""};var nt=Array.isArray||function(ot){return Object.prototype.toString.call(ot)==="[object Array]"};function rt(ot,st){if(ot.map)return ot.map(st);for(var at=[],lt=0;lt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var gt,yt=lt(pt);if(ft){var Ut=lt(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return at(this,gt)}}function at(pt,ft){if(ft&&(nt(ft)==="object"||typeof ft=="function"))return ft;if(ft!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(gt){if(gt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return gt}(pt)}function lt(pt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(ft){return ft.__proto__||Object.getPrototypeOf(ft)})(pt)}var ut=et(86),dt=et(4).MESSAGE,ht=et(16),ct=et(14);s.exports=function(pt){(function(Ft,mt){if(typeof mt!="function"&&mt!==null)throw new TypeError("Super expression must either be null or a function");Ft.prototype=Object.create(mt&&mt.prototype,{constructor:{value:Ft,writable:!0,configurable:!0}}),Object.defineProperty(Ft,"prototype",{writable:!1}),mt&&ot(Ft,mt)})(Ut,pt);var ft,gt,yt=st(Ut);function Ut(){var Ft,mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(rt(this,Ut),Ft=yt.call(this,mt),!mt.stream||!ut(mt.stream))throw new Error("options.stream is required.");return Ft._stream=mt.stream,Ft._stream.setMaxListeners(1/0),Ft.isObjectMode=mt.stream._writableState.objectMode,Ft.eol=typeof mt.eol=="string"?mt.eol:ht.EOL,Ft}return ft=Ut,(gt=[{key:"log",value:function(Ft,mt){var vt=this;if(tt(function(){return vt.emit("logged",Ft)}),this.isObjectMode)return this._stream.write(Ft),void(mt&&mt());this._stream.write("".concat(Ft[dt]).concat(this.eol)),mt&&mt()}}])&&it(ft.prototype,gt),Object.defineProperty(ft,"prototype",{writable:!1}),Ut}(ct)}).call(this,et(19).setImmediate)},function(s,o,et){(function(tt){function nt(Bt,xt,Ct){return xt in Bt?Object.defineProperty(Bt,xt,{value:Ct,enumerable:!0,configurable:!0,writable:!0}):Bt[xt]=Ct,Bt}function rt(Bt){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(xt){return typeof xt}:function(xt){return xt&&typeof Symbol=="function"&&xt.constructor===Symbol&&xt!==Symbol.prototype?"symbol":typeof xt})(Bt)}function it(Bt,xt){for(var Ct=0;Ct"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var Ct,kt=lt(Bt);if(xt){var Nt=lt(this).constructor;Ct=Reflect.construct(kt,arguments,Nt)}else Ct=kt.apply(this,arguments);return at(this,Ct)}}function at(Bt,xt){if(xt&&(rt(xt)==="object"||typeof xt=="function"))return xt;if(xt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(Ct){if(Ct===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ct}(Bt)}function lt(Bt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(xt){return xt.__proto__||Object.getPrototypeOf(xt)})(Bt)}var ut=et(33),dt=ut.Stream,ht=ut.Transform,ct=et(50),pt=et(4),ft=pt.LEVEL,gt=pt.SPLAT,yt=et(86),Ut=et(88),Ft=et(92),mt=et(211),vt=et(212),At=et(60).warn,Lt=et(49),Rt=/%[scdjifoO%]/g,St=function(Bt){(function(Ot,Wt){if(typeof Wt!="function"&&Wt!==null)throw new TypeError("Super expression must either be null or a function");Ot.prototype=Object.create(Wt&&Wt.prototype,{constructor:{value:Ot,writable:!0,configurable:!0}}),Object.defineProperty(Ot,"prototype",{writable:!1}),Wt&&ot(Ot,Wt)})(Nt,Bt);var xt,Ct,kt=st(Nt);function Nt(Ot){var Wt;return function(Dt,Et){if(!(Dt instanceof Et))throw new TypeError("Cannot call a class as a function")}(this,Nt),(Wt=kt.call(this,{objectMode:!0})).configure(Ot),Wt}return xt=Nt,(Ct=[{key:"child",value:function(Ot){var Wt=this;return Object.create(Wt,{write:{value:function(Dt){var Et=Object.assign({},Ot,Dt);Dt instanceof Error&&(Et.stack=Dt.stack,Et.message=Dt.message),Wt.write(Et)}}})}},{key:"configure",value:function(){var Ot=this,Wt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Dt=Wt.silent,Et=Wt.format,Pt=Wt.defaultMeta,zt=Wt.levels,en=Wt.level,Kt=en===void 0?"info":en,nn=Wt.exitOnError,Zt=nn===void 0||nn,jt=Wt.transports,Vt=Wt.colors,It=Wt.emitErrs,$t=Wt.formatters,Ht=Wt.padLevels,qt=Wt.rewriters,on=Wt.stripColors,Xt=Wt.exceptionHandlers,dn=Wt.rejectionHandlers;if(this.transports.length&&this.clear(),this.silent=Dt,this.format=Et||this.format||et(213)(),this.defaultMeta=Pt||null,this.levels=zt||this.levels||Lt.npm.levels,this.level=Kt,this.exceptions&&this.exceptions.unhandle(),this.rejections&&this.rejections.unhandle(),this.exceptions=new Ut(this),this.rejections=new Ft(this),this.profilers={},this.exitOnError=Zt,jt&&(jt=Array.isArray(jt)?jt:[jt]).forEach(function(_n){return Ot.add(_n)}),Vt||It||$t||Ht||qt||on)throw new Error(["{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.","Use a custom winston.format(function) instead.","See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md"].join(` -`));Xt&&this.exceptions.handle(Xt),dn&&this.rejections.handle(dn)}},{key:"isLevelEnabled",value:function(Ot){var Wt=this,Dt=Tt(this.levels,Ot);if(Dt===null)return!1;var Et=Tt(this.levels,this.level);return Et!==null&&(this.transports&&this.transports.length!==0?this.transports.findIndex(function(Pt){var zt=Tt(Wt.levels,Pt.level);return zt===null&&(zt=Et),zt>=Dt})!==-1:Et>=Dt)}},{key:"log",value:function(Ot,Wt){for(var Dt,Et,Pt=arguments.length,zt=new Array(Pt>2?Pt-2:0),en=2;en2?new mt({transport:Ot}):Ot;if(!Wt._writableState||!Wt._writableState.objectMode)throw new Error("Transports must WritableStreams in objectMode. Set { objectMode: true }.");return this._onEvent("error",Wt),this._onEvent("warn",Wt),this.pipe(Wt),Ot.handleExceptions&&this.exceptions.handle(),Ot.handleRejections&&this.rejections.handle(),this}},{key:"remove",value:function(Ot){if(!Ot)return this;var Wt=Ot;return(!yt(Ot)||Ot.log.length>2)&&(Wt=this.transports.filter(function(Dt){return Dt.transport===Ot})[0]),Wt&&this.unpipe(Wt),this}},{key:"clear",value:function(){return this.unpipe(),this}},{key:"close",value:function(){return this.exceptions.unhandle(),this.rejections.unhandle(),this.clear(),this.emit("close"),this}},{key:"setLevels",value:function(){At.deprecated("setLevels")}},{key:"query",value:function(Ot,Wt){typeof Ot=="function"&&(Wt=Ot,Ot={}),Ot=Ot||{};var Dt={},Et=Object.assign({},Ot.query||{});ct(this.transports.filter(function(Pt){return!!Pt.query}),function(Pt,zt){(function(en,Kt){Ot.query&&typeof en.formatQuery=="function"&&(Ot.query=en.formatQuery(Et)),en.query(Ot,function(nn,Zt){if(nn)return Kt(nn);typeof en.formatResults=="function"&&(Zt=en.formatResults(Zt,Ot.format)),Kt(null,Zt)})})(Pt,function(en,Kt){zt&&((Kt=en||Kt)&&(Dt[Pt.name]=Kt),zt()),zt=null})},function(){return Wt(null,Dt)})}},{key:"stream",value:function(){var Ot=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Wt=new dt,Dt=[];return Wt._streams=Dt,Wt.destroy=function(){for(var Et=Dt.length;Et--;)Dt[Et].destroy()},this.transports.filter(function(Et){return!!Et.stream}).forEach(function(Et){var Pt=Et.stream(Ot);Pt&&(Dt.push(Pt),Pt.on("log",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Wt.emit("log",zt)}),Pt.on("error",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Wt.emit("error",zt)}))}),Wt}},{key:"startTimer",value:function(){return new vt(this)}},{key:"profile",value:function(Ot){var Wt=Date.now();if(this.profilers[Ot]){var Dt=this.profilers[Ot];delete this.profilers[Ot];for(var Et=arguments.length,Pt=new Array(Et>1?Et-1:0),zt=1;zttt(nt,it)},s.exports=o.default},function(s,o,et){var tt=Object.prototype.toString;s.exports=function(nt){if(typeof nt.displayName=="string"&&nt.constructor.name)return nt.displayName;if(typeof nt.name=="string"&&nt.name)return nt.name;if(typeof nt=="object"&&nt.constructor&&typeof nt.constructor.name=="string")return nt.constructor.name;var rt=nt.toString(),it=tt.call(nt).slice(8,-1);return(rt=it==="Function"?rt.substring(rt.indexOf("(")+1,rt.indexOf(")")):it)||"anonymous"}},function(s,o,et){const tt=et(13),{LEVEL:nt}=et(4),rt=et(14),it=s.exports=function(ot={}){if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=function(st){this.emit("error",st,this.transport)}.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(let at=0;atut.length)&&(dt=ut.length);for(var ht=0,ct=new Array(dt);ht1?ft.splice(0):ft,Ut=yt.length;if(Ut)for(var Ft=0;Ft1&&arguments[1]!==void 0?arguments[1]:{};return it.format&&(rt.timestamp=typeof it.format=="function"?it.format():tt.format(new Date,it.format)),rt.timestamp||(rt.timestamp=new Date().toISOString()),it.alias&&(rt[it.alias]=rt.timestamp),rt})},function(s,o,et){et.r(o),et.d(o,"assign",function(){return st}),et.d(o,"format",function(){return St}),et.d(o,"parse",function(){return Tt}),et.d(o,"defaultI18n",function(){return dt}),et.d(o,"setGlobalDateI18n",function(){return ct}),et.d(o,"setGlobalDateMasks",function(){return Rt});var tt=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,nt="[^\\s]+",rt=/\[([^]*?)\]/gm;function it(xt,Ct){for(var kt=[],Nt=0,Ot=xt.length;Nt-1?Nt:null}};function st(xt){for(var Ct=[],kt=1;kt3?0:(xt-xt%10!=10?1:0)*xt%10]}},ht=st({},dt),ct=function(xt){return ht=st(ht,xt)},pt=function(xt){return xt.replace(/[|\\{()[^$+*?.-]/g,"\\$&")},ft=function(xt,Ct){for(Ct===void 0&&(Ct=2),xt=String(xt);xt.length0?"-":"+")+ft(100*Math.floor(Math.abs(Ct)/60)+Math.abs(Ct)%60,4)},Z:function(xt){var Ct=xt.getTimezoneOffset();return(Ct>0?"-":"+")+ft(Math.floor(Math.abs(Ct)/60),2)+":"+ft(Math.abs(Ct)%60,2)}},yt=function(xt){return+xt-1},Ut=[null,"[1-9]\\d?"],Ft=[null,nt],mt=["isPm",nt,function(xt,Ct){var kt=xt.toLowerCase();return kt===Ct.amPm[0]?0:kt===Ct.amPm[1]?1:null}],vt=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(xt){var Ct=(xt+"").match(/([+-]|\d\d)/gi);if(Ct){var kt=60*+Ct[1]+parseInt(Ct[2],10);return Ct[0]==="+"?kt:-kt}return 0}],At={D:["day","[1-9]\\d?"],DD:["day","\\d\\d"],Do:["day","[1-9]\\d?"+nt,function(xt){return parseInt(xt,10)}],M:["month","[1-9]\\d?",yt],MM:["month","\\d\\d",yt],YY:["year","\\d\\d",function(xt){var Ct=+(""+new Date().getFullYear()).substr(0,2);return+(""+(+xt>68?Ct-1:Ct)+xt)}],h:["hour","[1-9]\\d?",void 0,"isPm"],hh:["hour","\\d\\d",void 0,"isPm"],H:["hour","[1-9]\\d?"],HH:["hour","\\d\\d"],m:["minute","[1-9]\\d?"],mm:["minute","\\d\\d"],s:["second","[1-9]\\d?"],ss:["second","\\d\\d"],YYYY:["year","\\d{4}"],S:["millisecond","\\d",function(xt){return 100*+xt}],SS:["millisecond","\\d\\d",function(xt){return 10*+xt}],SSS:["millisecond","\\d{3}"],d:Ut,dd:Ut,ddd:Ft,dddd:Ft,MMM:["month",nt,ot("monthNamesShort")],MMMM:["month",nt,ot("monthNames")],a:mt,A:mt,ZZ:vt,Z:vt},Lt={default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},Rt=function(xt){return st(Lt,xt)},St=function(xt,Ct,kt){if(Ct===void 0&&(Ct=Lt.default),kt===void 0&&(kt={}),typeof xt=="number"&&(xt=new Date(xt)),Object.prototype.toString.call(xt)!=="[object Date]"||isNaN(xt.getTime()))throw new Error("Invalid Date pass to format");var Nt=[];Ct=(Ct=Lt[Ct]||Ct).replace(rt,function(Jt,Dt){return Nt.push(Dt),"@@@"});var Ot=st(st({},ht),kt);return(Ct=Ct.replace(tt,function(Jt){return gt[Jt](xt,Ot)})).replace(/@@@/g,function(){return Nt.shift()})};function Tt(xt,Ct,kt){if(kt===void 0&&(kt={}),typeof Ct!="string")throw new Error("Invalid format in fecha parse");if(Ct=Lt[Ct]||Ct,xt.length>1e3)return null;var Nt={year:new Date().getFullYear(),month:0,day:1,hour:0,minute:0,second:0,millisecond:0,isPm:null,timezoneOffset:null},Ot=[],Jt=[],Dt=Ct.replace(rt,function(qt,on){return Jt.push(pt(on)),"@@@"}),Et={},Pt={};Dt=pt(Dt).replace(tt,function(qt){var on=At[qt],Xt=on[0],dn=on[1],_n=on[3];if(Et[Xt])throw new Error("Invalid format. "+Xt+" specified twice in format");return Et[Xt]=!0,_n&&(Pt[_n]=!0),Ot.push(on),"("+dn+")"}),Object.keys(Pt).forEach(function(qt){if(!Et[qt])throw new Error("Invalid format. "+qt+" is required in specified format")}),Dt=Dt.replace(/@@@/g,function(){return Jt.shift()});var zt=xt.match(new RegExp(Dt,"i"));if(!zt)return null;for(var en=st(st({},ht),kt),Kt=1;Kt","maintainers":["David Hyde "],"repository":{"type":"git","url":"https://github.com/winstonjs/winston.git"},"keywords":["winston","logger","logging","logs","sysadmin","bunyan","pino","loglevel","tools","json","stream"],"dependencies":{"@dabh/diagnostics":"^2.0.2","@colors/colors":"1.5.0","async":"^3.2.3","is-stream":"^2.0.0","logform":"^2.4.0","one-time":"^1.0.0","readable-stream":"^3.4.0","safe-stable-stringify":"^2.3.1","stack-trace":"0.0.x","triple-beam":"^1.3.0","winston-transport":"^4.5.0"},"devDependencies":{"@babel/cli":"^7.17.0","@babel/core":"^7.17.2","@babel/preset-env":"^7.16.7","@dabh/eslint-config-populist":"^5.0.0","@types/node":"^18.0.0","abstract-winston-transport":"^0.5.1","assume":"^2.2.0","cross-spawn-async":"^2.2.5","eslint":"^8.9.0","hock":"^1.4.1","mocha":"8.1.3","nyc":"^15.1.0","rimraf":"^3.0.2","split2":"^4.1.0","std-mocks":"^1.0.1","through2":"^4.0.2","winston-compat":"^0.1.5"},"main":"./lib/winston.js","browser":"./dist/winston","types":"./index.d.ts","scripts":{"lint":"eslint lib/*.js lib/winston/*.js lib/winston/**/*.js --resolve-plugins-relative-to ./node_modules/@dabh/eslint-config-populist","test":"mocha","test:coverage":"nyc npm run test:unit","test:unit":"mocha test/unit","test:integration":"mocha test/integration","build":"rimraf dist && babel lib -d dist","prepublishOnly":"npm run build"},"engines":{"node":">= 12.0.0"},"license":"MIT"}')},function(s,o,et){Object.defineProperty(o,"Console",{configurable:!0,enumerable:!0,get:function(){return et(138)}}),Object.defineProperty(o,"File",{configurable:!0,enumerable:!0,get:function(){return et(152)}}),Object.defineProperty(o,"Http",{configurable:!0,enumerable:!0,get:function(){return et(194)}}),Object.defineProperty(o,"Stream",{configurable:!0,enumerable:!0,get:function(){return et(206)}})},function(s,o,et){(function(tt){function nt(ft){return(nt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(gt){return typeof gt}:function(gt){return gt&&typeof Symbol=="function"&>.constructor===Symbol&>!==Symbol.prototype?"symbol":typeof gt})(ft)}function rt(ft,gt){if(!(ft instanceof gt))throw new TypeError("Cannot call a class as a function")}function it(ft,gt){for(var yt=0;yt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var yt,Ut=lt(ft);if(gt){var Ft=lt(this).constructor;yt=Reflect.construct(Ut,arguments,Ft)}else yt=Ut.apply(this,arguments);return at(this,yt)}}function at(ft,gt){if(gt&&(nt(gt)==="object"||typeof gt=="function"))return gt;if(gt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(yt){if(yt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return yt}(ft)}function lt(ft){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(gt){return gt.__proto__||Object.getPrototypeOf(gt)})(ft)}var ut=et(16),dt=et(4),ht=dt.LEVEL,ct=dt.MESSAGE,pt=et(14);s.exports=function(ft){(function(mt,vt){if(typeof vt!="function"&&vt!==null)throw new TypeError("Super expression must either be null or a function");mt.prototype=Object.create(vt&&vt.prototype,{constructor:{value:mt,writable:!0,configurable:!0}}),Object.defineProperty(mt,"prototype",{writable:!1}),vt&&ot(mt,vt)})(Ft,ft);var gt,yt,Ut=st(Ft);function Ft(){var mt,vt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return rt(this,Ft),(mt=Ut.call(this,vt)).name=vt.name||"console",mt.stderrLevels=mt._stringArrayToSet(vt.stderrLevels),mt.consoleWarnLevels=mt._stringArrayToSet(vt.consoleWarnLevels),mt.eol=typeof vt.eol=="string"?vt.eol:ut.EOL,mt.setMaxListeners(30),mt}return gt=Ft,(yt=[{key:"log",value:function(mt,vt){var At=this;return tt(function(){return At.emit("logged",mt)}),this.stderrLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.error(mt[ct]),void(vt&&vt())):this.consoleWarnLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.warn(mt[ct]),void(vt&&vt())):(console._stdout?console._stdout.write("".concat(mt[ct]).concat(this.eol)):console.log(mt[ct]),void(vt&&vt()))}},{key:"_stringArrayToSet",value:function(mt,vt){if(!mt)return{};if(vt=vt||"Cannot make set from type other than Array of string elements",!Array.isArray(mt))throw new Error(vt);return mt.reduce(function(At,Lt){if(typeof Lt!="string")throw new Error(vt);return At[Lt]=!0,At},{})}}])&&it(gt.prototype,yt),Object.defineProperty(gt,"prototype",{writable:!1}),Ft}(pt)}).call(this,et(19).setImmediate)},function(s,o,et){(function(tt,nt){(function(rt,it){if(!rt.setImmediate){var ot,st,at,lt,ut,dt=1,ht={},ct=!1,pt=rt.document,ft=Object.getPrototypeOf&&Object.getPrototypeOf(rt);ft=ft&&ft.setTimeout?ft:rt,{}.toString.call(rt.process)==="[object process]"?ot=function(Ut){nt.nextTick(function(){yt(Ut)})}:function(){if(rt.postMessage&&!rt.importScripts){var Ut=!0,Ft=rt.onmessage;return rt.onmessage=function(){Ut=!1},rt.postMessage("","*"),rt.onmessage=Ft,Ut}}()?(lt="setImmediate$"+Math.random()+"$",ut=function(Ut){Ut.source===rt&&typeof Ut.data=="string"&&Ut.data.indexOf(lt)===0&&yt(+Ut.data.slice(lt.length))},rt.addEventListener?rt.addEventListener("message",ut,!1):rt.attachEvent("onmessage",ut),ot=function(Ut){rt.postMessage(lt+Ut,"*")}):rt.MessageChannel?((at=new MessageChannel).port1.onmessage=function(Ut){yt(Ut.data)},ot=function(Ut){at.port2.postMessage(Ut)}):pt&&"onreadystatechange"in pt.createElement("script")?(st=pt.documentElement,ot=function(Ut){var Ft=pt.createElement("script");Ft.onreadystatechange=function(){yt(Ut),Ft.onreadystatechange=null,st.removeChild(Ft),Ft=null},st.appendChild(Ft)}):ot=function(Ut){setTimeout(yt,0,Ut)},ft.setImmediate=function(Ut){typeof Ut!="function"&&(Ut=new Function(""+Ut));for(var Ft=new Array(arguments.length-1),mt=0;mt"u"?tt===void 0?this:tt:self)}).call(this,et(6),et(2))},function(s,o,et){o.byteLength=function(ut){var dt=at(ut),ht=dt[0],ct=dt[1];return 3*(ht+ct)/4-ct},o.toByteArray=function(ut){var dt,ht,ct=at(ut),pt=ct[0],ft=ct[1],gt=new rt(function(Ft,mt,vt){return 3*(mt+vt)/4-vt}(0,pt,ft)),yt=0,Ut=ft>0?pt-4:pt;for(ht=0;ht>16&255,gt[yt++]=dt>>8&255,gt[yt++]=255&dt;return ft===2&&(dt=nt[ut.charCodeAt(ht)]<<2|nt[ut.charCodeAt(ht+1)]>>4,gt[yt++]=255&dt),ft===1&&(dt=nt[ut.charCodeAt(ht)]<<10|nt[ut.charCodeAt(ht+1)]<<4|nt[ut.charCodeAt(ht+2)]>>2,gt[yt++]=dt>>8&255,gt[yt++]=255&dt),gt},o.fromByteArray=function(ut){for(var dt,ht=ut.length,ct=ht%3,pt=[],ft=0,gt=ht-ct;ftgt?gt:ft+16383));return ct===1?(dt=ut[ht-1],pt.push(tt[dt>>2]+tt[dt<<4&63]+"==")):ct===2&&(dt=(ut[ht-2]<<8)+ut[ht-1],pt.push(tt[dt>>10]+tt[dt>>4&63]+tt[dt<<2&63]+"=")),pt.join("")};for(var tt=[],nt=[],rt=typeof Uint8Array<"u"?Uint8Array:Array,it="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ot=0,st=it.length;ot0)throw new Error("Invalid string. Length must be a multiple of 4");var ht=ut.indexOf("=");return ht===-1&&(ht=dt),[ht,ht===dt?0:4-ht%4]}function lt(ut,dt,ht){for(var ct,pt,ft=[],gt=dt;gt>18&63]+tt[pt>>12&63]+tt[pt>>6&63]+tt[63&pt]);return ft.join("")}nt["-".charCodeAt(0)]=62,nt["_".charCodeAt(0)]=63},function(s,o){o.read=function(et,tt,nt,rt,it){var ot,st,at=8*it-rt-1,lt=(1<>1,dt=-7,ht=nt?it-1:0,ct=nt?-1:1,pt=et[tt+ht];for(ht+=ct,ot=pt&(1<<-dt)-1,pt>>=-dt,dt+=at;dt>0;ot=256*ot+et[tt+ht],ht+=ct,dt-=8);for(st=ot&(1<<-dt)-1,ot>>=-dt,dt+=rt;dt>0;st=256*st+et[tt+ht],ht+=ct,dt-=8);if(ot===0)ot=1-ut;else{if(ot===lt)return st?NaN:1/0*(pt?-1:1);st+=Math.pow(2,rt),ot-=ut}return(pt?-1:1)*st*Math.pow(2,ot-rt)},o.write=function(et,tt,nt,rt,it,ot){var st,at,lt,ut=8*ot-it-1,dt=(1<>1,ct=it===23?Math.pow(2,-24)-Math.pow(2,-77):0,pt=rt?0:ot-1,ft=rt?1:-1,gt=tt<0||tt===0&&1/tt<0?1:0;for(tt=Math.abs(tt),isNaN(tt)||tt===1/0?(at=isNaN(tt)?1:0,st=dt):(st=Math.floor(Math.log(tt)/Math.LN2),tt*(lt=Math.pow(2,-st))<1&&(st--,lt*=2),(tt+=st+ht>=1?ct/lt:ct*Math.pow(2,1-ht))*lt>=2&&(st++,lt/=2),st+ht>=dt?(at=0,st=dt):st+ht>=1?(at=(tt*lt-1)*Math.pow(2,it),st+=ht):(at=tt*Math.pow(2,ht-1)*Math.pow(2,it),st=0));it>=8;et[nt+pt]=255&at,pt+=ft,at/=256,it-=8);for(st=st<0;et[nt+pt]=255&st,pt+=ft,st/=256,ut-=8);et[nt+pt-ft]|=128*gt}},function(s,o){var et={}.toString;s.exports=Array.isArray||function(tt){return et.call(tt)=="[object Array]"}},function(s,o,et){(function(tt,nt){var rt;s.exports=St,St.ReadableState=Rt,et(20).EventEmitter;var it=function(Zt,jt){return Zt.listeners(jt).length},ot=et(62),st=et(5).Buffer,at=(tt!==void 0?tt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){},lt,ut=et(144);lt=ut&&ut.debuglog?ut.debuglog("stream"):function(){};var dt,ht,ct,pt=et(145),ft=et(63),gt=et(64).getHighWaterMark,yt=et(35).codes,Ut=yt.ERR_INVALID_ARG_TYPE,Ft=yt.ERR_STREAM_PUSH_AFTER_EOF,mt=yt.ERR_METHOD_NOT_IMPLEMENTED,vt=yt.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;et(7)(St,ot);var At=ft.errorOrDestroy,Lt=["error","close","destroy","pause","resume"];function Rt(Zt,jt,Vt){rt=rt||et(36),Zt=Zt||{},typeof Vt!="boolean"&&(Vt=jt instanceof rt),this.objectMode=!!Zt.objectMode,Vt&&(this.objectMode=this.objectMode||!!Zt.readableObjectMode),this.highWaterMark=gt(this,Zt,"readableHighWaterMark",Vt),this.buffer=new pt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=Zt.emitClose!==!1,this.autoDestroy=!!Zt.autoDestroy,this.destroyed=!1,this.defaultEncoding=Zt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Zt.encoding&&(dt||(dt=et(21).StringDecoder),this.decoder=new dt(Zt.encoding),this.encoding=Zt.encoding)}function St(Zt){if(rt=rt||et(36),!(this instanceof St))return new St(Zt);var jt=this instanceof rt;this._readableState=new Rt(Zt,this,jt),this.readable=!0,Zt&&(typeof Zt.read=="function"&&(this._read=Zt.read),typeof Zt.destroy=="function"&&(this._destroy=Zt.destroy)),ot.call(this)}function Tt(Zt,jt,Vt,It,$t){lt("readableAddChunk",jt);var Ht,qt=Zt._readableState;if(jt===null)qt.reading=!1,function(on,Xt){if(lt("onEofChunk"),!Xt.ended){if(Xt.decoder){var dn=Xt.decoder.end();dn&&dn.length&&(Xt.buffer.push(dn),Xt.length+=Xt.objectMode?1:dn.length)}Xt.ended=!0,Xt.sync?Ct(on):(Xt.needReadable=!1,Xt.emittedReadable||(Xt.emittedReadable=!0,kt(on)))}}(Zt,qt);else if($t||(Ht=function(on,Xt){var dn;_n=Xt,st.isBuffer(_n)||_n instanceof at||typeof Xt=="string"||Xt===void 0||on.objectMode||(dn=new Ut("chunk",["string","Buffer","Uint8Array"],Xt));var _n;return dn}(qt,jt)),Ht)At(Zt,Ht);else if(qt.objectMode||jt&&jt.length>0)if(typeof jt=="string"||qt.objectMode||Object.getPrototypeOf(jt)===st.prototype||(jt=function(on){return st.from(on)}(jt)),It)qt.endEmitted?At(Zt,new vt):Bt(Zt,qt,jt,!0);else if(qt.ended)At(Zt,new Ft);else{if(qt.destroyed)return!1;qt.reading=!1,qt.decoder&&!Vt?(jt=qt.decoder.write(jt),qt.objectMode||jt.length!==0?Bt(Zt,qt,jt,!1):Nt(Zt,qt)):Bt(Zt,qt,jt,!1)}else It||(qt.reading=!1,Nt(Zt,qt));return!qt.ended&&(qt.lengthjt.highWaterMark&&(jt.highWaterMark=function(Vt){return Vt>=1073741824?Vt=1073741824:(Vt--,Vt|=Vt>>>1,Vt|=Vt>>>2,Vt|=Vt>>>4,Vt|=Vt>>>8,Vt|=Vt>>>16,Vt++),Vt}(Zt)),Zt<=jt.length?Zt:jt.ended?jt.length:(jt.needReadable=!0,0))}function Ct(Zt){var jt=Zt._readableState;lt("emitReadable",jt.needReadable,jt.emittedReadable),jt.needReadable=!1,jt.emittedReadable||(lt("emitReadable",jt.flowing),jt.emittedReadable=!0,nt.nextTick(kt,Zt))}function kt(Zt){var jt=Zt._readableState;lt("emitReadable_",jt.destroyed,jt.length,jt.ended),jt.destroyed||!jt.length&&!jt.ended||(Zt.emit("readable"),jt.emittedReadable=!1),jt.needReadable=!jt.flowing&&!jt.ended&&jt.length<=jt.highWaterMark,Pt(Zt)}function Nt(Zt,jt){jt.readingMore||(jt.readingMore=!0,nt.nextTick(Ot,Zt,jt))}function Ot(Zt,jt){for(;!jt.reading&&!jt.ended&&(jt.length0,jt.resumeScheduled&&!jt.paused?jt.flowing=!0:Zt.listenerCount("data")>0&&Zt.resume()}function Dt(Zt){lt("readable nexttick read 0"),Zt.read(0)}function Et(Zt,jt){lt("resume",jt.reading),jt.reading||Zt.read(0),jt.resumeScheduled=!1,Zt.emit("resume"),Pt(Zt),jt.flowing&&!jt.reading&&Zt.read(0)}function Pt(Zt){var jt=Zt._readableState;for(lt("flow",jt.flowing);jt.flowing&&Zt.read()!==null;);}function zt(Zt,jt){return jt.length===0?null:(jt.objectMode?Vt=jt.buffer.shift():!Zt||Zt>=jt.length?(Vt=jt.decoder?jt.buffer.join(""):jt.buffer.length===1?jt.buffer.first():jt.buffer.concat(jt.length),jt.buffer.clear()):Vt=jt.buffer.consume(Zt,jt.decoder),Vt);var Vt}function en(Zt){var jt=Zt._readableState;lt("endReadable",jt.endEmitted),jt.endEmitted||(jt.ended=!0,nt.nextTick(Kt,jt,Zt))}function Kt(Zt,jt){if(lt("endReadableNT",Zt.endEmitted,Zt.length),!Zt.endEmitted&&Zt.length===0&&(Zt.endEmitted=!0,jt.readable=!1,jt.emit("end"),Zt.autoDestroy)){var Vt=jt._writableState;(!Vt||Vt.autoDestroy&&Vt.finished)&&jt.destroy()}}function nn(Zt,jt){for(var Vt=0,It=Zt.length;Vt=jt.highWaterMark:jt.length>0)||jt.ended))return lt("read: emitReadable",jt.length,jt.ended),jt.length===0&&jt.ended?en(this):Ct(this),null;if((Zt=xt(Zt,jt))===0&&jt.ended)return jt.length===0&&en(this),null;var It,$t=jt.needReadable;return lt("need readable",$t),(jt.length===0||jt.length-Zt0?zt(Zt,jt):null)===null?(jt.needReadable=jt.length<=jt.highWaterMark,Zt=0):(jt.length-=Zt,jt.awaitDrain=0),jt.length===0&&(jt.ended||(jt.needReadable=!0),Vt!==Zt&&jt.ended&&en(this)),It!==null&&this.emit("data",It),It},St.prototype._read=function(Zt){At(this,new mt("_read()"))},St.prototype.pipe=function(Zt,jt){var Vt=this,It=this._readableState;switch(It.pipesCount){case 0:It.pipes=Zt;break;case 1:It.pipes=[It.pipes,Zt];break;default:It.pipes.push(Zt)}It.pipesCount+=1,lt("pipe count=%d opts=%j",It.pipesCount,jt);var $t=(!jt||jt.end!==!1)&&Zt!==nt.stdout&&Zt!==nt.stderr?qt:On;function Ht(gn,hn){lt("onunpipe"),gn===Vt&&hn&&hn.hasUnpiped===!1&&(hn.hasUnpiped=!0,lt("cleanup"),Zt.removeListener("close",Fn),Zt.removeListener("finish",Un),Zt.removeListener("drain",on),Zt.removeListener("error",_n),Zt.removeListener("unpipe",Ht),Vt.removeListener("end",qt),Vt.removeListener("end",On),Vt.removeListener("data",dn),Xt=!0,!It.awaitDrain||Zt._writableState&&!Zt._writableState.needDrain||on())}function qt(){lt("onend"),Zt.end()}It.endEmitted?nt.nextTick($t):Vt.once("end",$t),Zt.on("unpipe",Ht);var on=function(gn){return function(){var hn=gn._readableState;lt("pipeOnDrain",hn.awaitDrain),hn.awaitDrain&&hn.awaitDrain--,hn.awaitDrain===0&&it(gn,"data")&&(hn.flowing=!0,Pt(gn))}}(Vt);Zt.on("drain",on);var Xt=!1;function dn(gn){lt("ondata");var hn=Zt.write(gn);lt("dest.write",hn),hn===!1&&((It.pipesCount===1&&It.pipes===Zt||It.pipesCount>1&&nn(It.pipes,Zt)!==-1)&&!Xt&&(lt("false write response, pause",It.awaitDrain),It.awaitDrain++),Vt.pause())}function _n(gn){lt("onerror",gn),On(),Zt.removeListener("error",_n),it(Zt,"error")===0&&At(Zt,gn)}function Fn(){Zt.removeListener("finish",Un),On()}function Un(){lt("onfinish"),Zt.removeListener("close",Fn),On()}function On(){lt("unpipe"),Vt.unpipe(Zt)}return Vt.on("data",dn),function(gn,hn,wn){if(typeof gn.prependListener=="function")return gn.prependListener(hn,wn);gn._events&&gn._events[hn]?Array.isArray(gn._events[hn])?gn._events[hn].unshift(wn):gn._events[hn]=[wn,gn._events[hn]]:gn.on(hn,wn)}(Zt,"error",_n),Zt.once("close",Fn),Zt.once("finish",Un),Zt.emit("pipe",Vt),It.flowing||(lt("pipe resume"),Vt.resume()),Zt},St.prototype.unpipe=function(Zt){var jt=this._readableState,Vt={hasUnpiped:!1};if(jt.pipesCount===0)return this;if(jt.pipesCount===1)return Zt&&Zt!==jt.pipes||(Zt||(Zt=jt.pipes),jt.pipes=null,jt.pipesCount=0,jt.flowing=!1,Zt&&Zt.emit("unpipe",this,Vt)),this;if(!Zt){var It=jt.pipes,$t=jt.pipesCount;jt.pipes=null,jt.pipesCount=0,jt.flowing=!1;for(var Ht=0;Ht<$t;Ht++)It[Ht].emit("unpipe",this,{hasUnpiped:!1});return this}var qt=nn(jt.pipes,Zt);return qt===-1||(jt.pipes.splice(qt,1),jt.pipesCount-=1,jt.pipesCount===1&&(jt.pipes=jt.pipes[0]),Zt.emit("unpipe",this,Vt)),this},St.prototype.on=function(Zt,jt){var Vt=ot.prototype.on.call(this,Zt,jt),It=this._readableState;return Zt==="data"?(It.readableListening=this.listenerCount("readable")>0,It.flowing!==!1&&this.resume()):Zt==="readable"&&(It.endEmitted||It.readableListening||(It.readableListening=It.needReadable=!0,It.flowing=!1,It.emittedReadable=!1,lt("on readable",It.length,It.reading),It.length?Ct(this):It.reading||nt.nextTick(Dt,this))),Vt},St.prototype.addListener=St.prototype.on,St.prototype.removeListener=function(Zt,jt){var Vt=ot.prototype.removeListener.call(this,Zt,jt);return Zt==="readable"&&nt.nextTick(Jt,this),Vt},St.prototype.removeAllListeners=function(Zt){var jt=ot.prototype.removeAllListeners.apply(this,arguments);return Zt!=="readable"&&Zt!==void 0||nt.nextTick(Jt,this),jt},St.prototype.resume=function(){var Zt=this._readableState;return Zt.flowing||(lt("resume"),Zt.flowing=!Zt.readableListening,function(jt,Vt){Vt.resumeScheduled||(Vt.resumeScheduled=!0,nt.nextTick(Et,jt,Vt))}(this,Zt)),Zt.paused=!1,this},St.prototype.pause=function(){return lt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(lt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},St.prototype.wrap=function(Zt){var jt=this,Vt=this._readableState,It=!1;for(var $t in Zt.on("end",function(){if(lt("wrapped end"),Vt.decoder&&!Vt.ended){var qt=Vt.decoder.end();qt&&qt.length&&jt.push(qt)}jt.push(null)}),Zt.on("data",function(qt){lt("wrapped data"),Vt.decoder&&(qt=Vt.decoder.write(qt)),Vt.objectMode&&qt==null||(Vt.objectMode||qt&&qt.length)&&(jt.push(qt)||(It=!0,Zt.pause()))}),Zt)this[$t]===void 0&&typeof Zt[$t]=="function"&&(this[$t]=function(qt){return function(){return Zt[qt].apply(Zt,arguments)}}($t));for(var Ht=0;Ht0?this.tail.next=pt:this.head=pt,this.tail=pt,++this.length}},{key:"unshift",value:function(ct){var pt={data:ct,next:this.head};this.length===0&&(this.tail=pt),this.head=pt,++this.length}},{key:"shift",value:function(){if(this.length!==0){var ct=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,ct}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(ct){if(this.length===0)return"";for(var pt=this.head,ft=""+pt.data;pt=pt.next;)ft+=ct+pt.data;return ft}},{key:"concat",value:function(ct){if(this.length===0)return st.alloc(0);for(var pt,ft,gt,yt=st.allocUnsafe(ct>>>0),Ut=this.head,Ft=0;Ut;)pt=Ut.data,ft=yt,gt=Ft,st.prototype.copy.call(pt,ft,gt),Ft+=Ut.data.length,Ut=Ut.next;return yt}},{key:"consume",value:function(ct,pt){var ft;return ctyt.length?yt.length:ct;if(Ut===yt.length?gt+=yt:gt+=yt.slice(0,ct),(ct-=Ut)==0){Ut===yt.length?(++ft,pt.next?this.head=pt.next:this.head=this.tail=null):(this.head=pt,pt.data=yt.slice(Ut));break}++ft}return this.length-=ft,gt}},{key:"_getBuffer",value:function(ct){var pt=st.allocUnsafe(ct),ft=this.head,gt=1;for(ft.data.copy(pt),ct-=ft.data.length;ft=ft.next;){var yt=ft.data,Ut=ct>yt.length?yt.length:ct;if(yt.copy(pt,pt.length-ct,0,Ut),(ct-=Ut)==0){Ut===yt.length?(++gt,ft.next?this.head=ft.next:this.head=this.tail=null):(this.head=ft,ft.data=yt.slice(Ut));break}++gt}return this.length-=gt,pt}},{key:lt,value:function(ct,pt){return at(this,nt(nt({},pt),{},{depth:0,customInspect:!1}))}}])&&it(dt.prototype,ht),Object.defineProperty(dt,"prototype",{writable:!1}),ut}()},function(s,o){},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){(function(tt){var nt;function rt(Ut,Ft,mt){return(Ft=function(vt){var At=function(Lt,Rt){if(typeof Lt!="object"||Lt===null)return Lt;var St=Lt[Symbol.toPrimitive];if(St!==void 0){var Tt=St.call(Lt,Rt||"default");if(typeof Tt!="object")return Tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Rt==="string"?String:Number)(Lt)}(vt,"string");return typeof At=="symbol"?At:String(At)}(Ft))in Ut?Object.defineProperty(Ut,Ft,{value:mt,enumerable:!0,configurable:!0,writable:!0}):Ut[Ft]=mt,Ut}var it=et(149),ot=Symbol("lastResolve"),st=Symbol("lastReject"),at=Symbol("error"),lt=Symbol("ended"),ut=Symbol("lastPromise"),dt=Symbol("handlePromise"),ht=Symbol("stream");function ct(Ut,Ft){return{value:Ut,done:Ft}}function pt(Ut){var Ft=Ut[ot];if(Ft!==null){var mt=Ut[ht].read();mt!==null&&(Ut[ut]=null,Ut[ot]=null,Ut[st]=null,Ft(ct(mt,!1)))}}function ft(Ut){tt.nextTick(pt,Ut)}var gt=Object.getPrototypeOf(function(){}),yt=Object.setPrototypeOf((rt(nt={get stream(){return this[ht]},next:function(){var Ut=this,Ft=this[at];if(Ft!==null)return Promise.reject(Ft);if(this[lt])return Promise.resolve(ct(void 0,!0));if(this[ht].destroyed)return new Promise(function(Lt,Rt){tt.nextTick(function(){Ut[at]?Rt(Ut[at]):Lt(ct(void 0,!0))})});var mt,vt=this[ut];if(vt)mt=new Promise(function(Lt,Rt){return function(St,Tt){Lt.then(function(){Rt[lt]?St(ct(void 0,!0)):Rt[dt](St,Tt)},Tt)}}(vt,this));else{var At=this[ht].read();if(At!==null)return Promise.resolve(ct(At,!1));mt=new Promise(this[dt])}return this[ut]=mt,mt}},Symbol.asyncIterator,function(){return this}),rt(nt,"return",function(){var Ut=this;return new Promise(function(Ft,mt){Ut[ht].destroy(null,function(vt){vt?mt(vt):Ft(ct(void 0,!0))})})}),nt),gt);s.exports=function(Ut){var Ft,mt=Object.create(yt,(rt(Ft={},ht,{value:Ut,writable:!0}),rt(Ft,ot,{value:null,writable:!0}),rt(Ft,st,{value:null,writable:!0}),rt(Ft,at,{value:null,writable:!0}),rt(Ft,lt,{value:Ut._readableState.endEmitted,writable:!0}),rt(Ft,dt,{value:function(vt,At){var Lt=mt[ht].read();Lt?(mt[ut]=null,mt[ot]=null,mt[st]=null,vt(ct(Lt,!1))):(mt[ot]=vt,mt[st]=At)},writable:!0}),Ft));return mt[ut]=null,it(Ut,function(vt){if(vt&&vt.code!=="ERR_STREAM_PREMATURE_CLOSE"){var At=mt[st];return At!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,At(vt)),void(mt[at]=vt)}var Lt=mt[ot];Lt!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,Lt(ct(void 0,!0))),mt[lt]=!0}),Ut.on("readable",ft.bind(null,mt)),mt}}).call(this,et(2))},function(s,o,et){var tt=et(35).codes.ERR_STREAM_PREMATURE_CLOSE;function nt(){}s.exports=function rt(it,ot,st){if(typeof ot=="function")return rt(it,null,ot);ot||(ot={}),st=function(Ut){var Ft=!1;return function(){if(!Ft){Ft=!0;for(var mt=arguments.length,vt=new Array(mt),At=0;At0&&arguments[0]!==void 0?arguments[0]:{};if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");function st(at){this.emit("error",at,this.transport)}this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=st.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(var at=0;at"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var Tt,Bt=dt(Rt);if(St){var xt=dt(this).constructor;Tt=Reflect.construct(Bt,arguments,xt)}else Tt=Bt.apply(this,arguments);return lt(this,Tt)}}function lt(Rt,St){if(St&&(rt(St)==="object"||typeof St=="function"))return St;if(St!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ut(Rt)}function ut(Rt){if(Rt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Rt}function dt(Rt){return(dt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(St){return St.__proto__||Object.getPrototypeOf(St)})(Rt)}var ht=et(65),ct=et(55),pt=et(153),ft=et(163),gt=et(4).MESSAGE,yt=et(33),Ut=yt.Stream,Ft=yt.PassThrough,mt=et(14),vt=et(39)("winston:file"),At=et(16),Lt=et(193);s.exports=function(Rt){(function(Ct,kt){if(typeof kt!="function"&&kt!==null)throw new TypeError("Super expression must either be null or a function");Ct.prototype=Object.create(kt&&kt.prototype,{constructor:{value:Ct,writable:!0,configurable:!0}}),Object.defineProperty(Ct,"prototype",{writable:!1}),kt&&st(Ct,kt)})(xt,Rt);var St,Tt,Bt=at(xt);function xt(){var Ct,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};function Nt(Ot){for(var Jt=arguments.length,Dt=new Array(Jt>1?Jt-1:0),Et=1;Et1&&arguments[1]!==void 0?arguments[1]:function(){};if(this.silent)return Nt(),!0;if(this._drain)this._stream.once("drain",function(){kt._drain=!1,kt.log(Ct,Nt)});else{if(!this._rotate){var Ot="".concat(Ct[gt]).concat(this.eol),Jt=nt.byteLength(Ot);this._pendingSize+=Jt,this._opening&&!this.rotatedWhileOpening&&this._needsNewFile(this._size+this._pendingSize)&&(this.rotatedWhileOpening=!0);var Dt=this._stream.write(Ot,Et.bind(this));return Dt?Nt():(this._drain=!0,this._stream.once("drain",function(){kt._drain=!1,Nt()})),vt("written",Dt,this._drain),this.finishIfEnding(),Dt}this._stream.once("rotate",function(){kt._rotate=!1,kt.log(Ct,Nt)})}function Et(){var Pt=this;this._size+=Jt,this._pendingSize-=Jt,vt("logged %s %s",this._size,Ot),this.emit("logged",Ct),this._opening||this._needsNewFile()&&(this._rotate=!0,this._endStream(function(){return Pt._rotateFile()}))}}},{key:"query",value:function(Ct,kt){typeof Ct=="function"&&(kt=Ct,Ct={}),Ct=function(zt){return(zt=zt||{}).rows=zt.rows||zt.limit||10,zt.start=zt.start||0,zt.until=zt.until||new Date,rt(zt.until)!=="object"&&(zt.until=new Date(zt.until)),zt.from=zt.from||zt.until-864e5,rt(zt.from)!=="object"&&(zt.from=new Date(zt.from)),zt.order=zt.order||"desc",zt}(Ct);var Nt=ct.join(this.dirname,this.filename),Ot="",Jt=[],Dt=0,Et=ht.createReadStream(Nt,{encoding:"utf8"});function Pt(zt,en){try{var Kt=JSON.parse(zt);(function(nn){if(nn&&rt(nn)==="object"){var Zt=new Date(nn.timestamp);if(!(Ct.from&&ZtCt.until||Ct.level&&Ct.level!==nn.level))return!0}})(Kt)&&function(nn){Ct.rows&&Jt.length>=Ct.rows&&Ct.order!=="desc"?Et.readable&&Et.destroy():(Ct.fields&&(nn=Ct.fields.reduce(function(Zt,jt){return Zt[jt]=nn[jt],Zt},{})),Ct.order==="desc"&&Jt.length>=Ct.rows&&Jt.shift(),Jt.push(nn))}(Kt)}catch(nn){en||Et.emit("error",nn)}}Et.on("error",function(zt){if(Et.readable&&Et.destroy(),kt)return zt.code!=="ENOENT"?kt(zt):kt(null,Jt)}),Et.on("data",function(zt){for(var en=(zt=(Ot+zt).split(/\n+/)).length-1,Kt=0;Kt=Ct.start)&&Pt(zt[Kt]),Dt++;Ot=zt[en]}),Et.on("close",function(){Ot&&Pt(Ot,!0),Ct.order==="desc"&&(Jt=Jt.reverse()),kt&&kt(null,Jt)})}},{key:"stream",value:function(){var Ct=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},kt=ct.join(this.dirname,this.filename),Nt=new Ut,Ot={file:kt,start:Ct.start};return Nt.destroy=Lt(Ot,function(Jt,Dt){if(Jt)return Nt.emit("error",Jt);try{Nt.emit("data",Dt),Dt=JSON.parse(Dt),Nt.emit("log",Dt)}catch(Et){Nt.emit("error",Et)}}),Nt}},{key:"open",value:function(){var Ct=this;this.filename&&(this._opening||(this._opening=!0,this.stat(function(kt,Nt){if(kt)return Ct.emit("error",kt);vt("stat done: %s { size: %s }",Ct.filename,Nt),Ct._size=Nt,Ct._dest=Ct._createStream(Ct._stream),Ct._opening=!1,Ct.once("open",function(){Ct._stream.eventNames().includes("rotate")?Ct._stream.emit("rotate"):Ct._rotate=!1})})))}},{key:"stat",value:function(Ct){var kt=this,Nt=this._getFile(),Ot=ct.join(this.dirname,Nt);ht.stat(Ot,function(Jt,Dt){return Jt&&Jt.code==="ENOENT"?(vt("ENOENT ok",Ot),kt.filename=Nt,Ct(null,0)):Jt?(vt("err ".concat(Jt.code," ").concat(Ot)),Ct(Jt)):!Dt||kt._needsNewFile(Dt.size)?kt._incFile(function(){return kt.stat(Ct)}):(kt.filename=Nt,void Ct(null,Dt.size))})}},{key:"close",value:function(Ct){var kt=this;this._stream&&this._stream.end(function(){Ct&&Ct(),kt.emit("flush"),kt.emit("closed")})}},{key:"_needsNewFile",value:function(Ct){return Ct=Ct||this._size,this.maxsize&&Ct>=this.maxsize}},{key:"_onError",value:function(Ct){this.emit("error",Ct)}},{key:"_setupStream",value:function(Ct){return Ct.on("error",this._onError),Ct}},{key:"_cleanupStream",value:function(Ct){return Ct.removeListener("error",this._onError),Ct}},{key:"_rotateFile",value:function(){var Ct=this;this._incFile(function(){return Ct.open()})}},{key:"_endStream",value:function(){var Ct=this,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){};this._dest?(this._stream.unpipe(this._dest),this._dest.end(function(){Ct._cleanupStream(Ct._dest),kt()})):kt()}},{key:"_createStream",value:function(Ct){var kt=this,Nt=ct.join(this.dirname,this.filename);vt("create stream start",Nt,this.options);var Ot=ht.createWriteStream(Nt,this.options).on("error",function(Dt){return vt(Dt)}).on("close",function(){return vt("close",Ot.path,Ot.bytesWritten)}).on("open",function(){vt("file open ok",Nt),kt.emit("open",Nt),Ct.pipe(Ot),kt.rotatedWhileOpening&&(kt._stream=new Ft,kt._stream.setMaxListeners(30),kt._rotateFile(),kt.rotatedWhileOpening=!1,kt._cleanupStream(Ot),Ct.end())});if(vt("create stream ok",Nt),this.zippedArchive){var Jt=ft.createGzip();return Jt.pipe(Ot),Jt}return Ot}},{key:"_incFile",value:function(Ct){vt("_incFile",this.filename);var kt=ct.extname(this._basename),Nt=ct.basename(this._basename,kt);this.tailable?this._checkMaxFilesTailable(kt,Nt,Ct):(this._created+=1,this._checkMaxFilesIncrementing(kt,Nt,Ct))}},{key:"_getFile",value:function(){var Ct=ct.extname(this._basename),kt=ct.basename(this._basename,Ct),Nt=this.rotationFormat?this.rotationFormat():this._created,Ot=!this.tailable&&this._created?"".concat(kt).concat(Nt).concat(Ct):"".concat(kt).concat(Ct);return this.zippedArchive&&!this.tailable?"".concat(Ot,".gz"):Ot}},{key:"_checkMaxFilesIncrementing",value:function(Ct,kt,Nt){if(!this.maxFiles||this._created1;Et--)Jt.push(function(Pt,zt){var en=this,Kt="".concat(kt).concat(Pt-1).concat(Ct).concat(Dt),nn=ct.join(this.dirname,Kt);ht.exists(nn,function(Zt){if(!Zt)return zt(null);Kt="".concat(kt).concat(Pt).concat(Ct).concat(Dt),ht.rename(nn,ct.join(en.dirname,Kt),zt)})}.bind(this,Et));pt(Jt,function(){ht.rename(ct.join(Ot.dirname,"".concat(kt).concat(Ct)),ct.join(Ot.dirname,"".concat(kt,"1").concat(Ct).concat(Dt)),Nt)})}}},{key:"_createLogDirIfNotExist",value:function(Ct){ht.existsSync(Ct)||ht.mkdirSync(Ct,{recursive:!0})}}])&&ot(St.prototype,Tt),Object.defineProperty(St,"prototype",{writable:!1}),xt}(mt)}).call(this,et(19).setImmediate,et(5).Buffer)},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(it,ot){return(0,tt.default)(nt.default,it,ot)};var tt=rt(et(154)),nt=rt(et(158));function rt(it){return it&&it.__esModule?it:{default:it}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(44)),nt=it(et(23)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)((ot,st,at)=>{var lt=(0,tt.default)(st)?[]:{};ot(st,(ut,dt,ht)=>{(0,nt.default)(ut)((ct,...pt)=>{pt.length<2&&([pt]=pt),lt[dt]=pt,ht(ct)})},ut=>at(ut,lt))},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(at){return(0,rt.isAsync)(at)?function(...lt){const ut=lt.pop();return ot(at.apply(this,lt),ut)}:(0,tt.default)(function(lt,ut){var dt;try{dt=at.apply(this,lt)}catch(ht){return ut(ht)}if(dt&&typeof dt.then=="function")return ot(dt,ut);ut(null,dt)})};var tt=it(et(156)),nt=it(et(157)),rt=et(23);function it(at){return at&&at.__esModule?at:{default:at}}function ot(at,lt){return at.then(ut=>{st(lt,null,ut)},ut=>{st(lt,ut&&ut.message?ut:new Error(ut))})}function st(at,lt,ut){try{at(lt,ut)}catch(dt){(0,nt.default)(ht=>{throw ht},dt)}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){var rt=nt.pop();return tt.call(this,nt,rt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){Object.defineProperty(o,"__esModule",{value:!0}),o.fallback=at,o.wrap=lt;var rt,it=o.hasQueueMicrotask=typeof queueMicrotask=="function"&&queueMicrotask,ot=o.hasSetImmediate=typeof tt=="function"&&tt,st=o.hasNextTick=typeof nt=="object"&&typeof nt.nextTick=="function";function at(ut){setTimeout(ut,0)}function lt(ut){return(dt,...ht)=>ut(()=>dt(...ht))}rt=it?queueMicrotask:ot?tt:st?nt.nextTick:at,o.default=lt(rt)}).call(this,et(19).setImmediate,et(2))},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=rt(et(66)),nt=rt(et(30));function rt(it){return it&&it.__esModule?it:{default:it}}o.default=(0,nt.default)(function(it,ot,st){return(0,tt.default)(it,1,ot,st)},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=at(et(67)),nt=at(et(160)),rt=at(et(68)),it=et(23),ot=at(et(162)),st=at(et(45));function at(lt){return lt&<.__esModule?lt:{default:lt}}o.default=lt=>(ut,dt,ht)=>{if(ht=(0,tt.default)(ht),lt<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!ut)return ht(null);if((0,it.isAsyncGenerator)(ut))return(0,ot.default)(ut,lt,dt,ht);if((0,it.isAsyncIterable)(ut))return(0,ot.default)(ut[Symbol.asyncIterator](),lt,dt,ht);var ct=(0,nt.default)(ut),pt=!1,ft=!1,gt=0,yt=!1;function Ut(mt,vt){if(!ft)if(gt-=1,mt)pt=!0,ht(mt);else if(mt===!1)pt=!0,ft=!0;else{if(vt===st.default||pt&><=0)return pt=!0,ht(null);yt||Ft()}}function Ft(){for(yt=!0;gt=ot||dt||lt||(dt=!0,it.next().then(({value:yt,done:Ut})=>{if(!ut&&!lt){if(dt=!1,Ut)return lt=!0,void(ht<=0&&at(null));ht++,st(yt,ct,ft),ct++,pt()}}).catch(gt))}function ft(yt,Ut){if(ht-=1,!ut)return yt?gt(yt):yt===!1?(lt=!0,void(ut=!0)):Ut===rt.default||lt&&ht<=0?(lt=!0,at(null)):void pt()}function gt(yt){ut||(dt=!1,lt=!0,at(yt))}pt()};var tt,nt=et(45),rt=(tt=nt)&&tt.__esModule?tt:{default:tt};s.exports=o.default},function(s,o,et){(function(tt){var nt=et(5).Buffer,rt=et(164).Transform,it=et(174),ot=et(13),st=et(73).ok,at=et(5).kMaxLength,lt="Cannot create final Buffer. It would be larger than 0x"+at.toString(16)+" bytes";it.Z_MIN_WINDOWBITS=8,it.Z_MAX_WINDOWBITS=15,it.Z_DEFAULT_WINDOWBITS=15,it.Z_MIN_CHUNK=64,it.Z_MAX_CHUNK=1/0,it.Z_DEFAULT_CHUNK=16384,it.Z_MIN_MEMLEVEL=1,it.Z_MAX_MEMLEVEL=9,it.Z_DEFAULT_MEMLEVEL=8,it.Z_MIN_LEVEL=-1,it.Z_MAX_LEVEL=9,it.Z_DEFAULT_LEVEL=it.Z_DEFAULT_COMPRESSION;for(var ut=Object.keys(it),dt=0;dt=at?en=new RangeError(lt):zt=nt.concat(Jt,Dt),Jt=[],kt.close(),Ot(en,zt)}kt.on("error",function(zt){kt.removeListener("end",Pt),kt.removeListener("readable",Et),Ot(zt)}),kt.on("end",Pt),kt.end(Nt),Et()}function Ut(kt,Nt){if(typeof Nt=="string"&&(Nt=nt.from(Nt)),!nt.isBuffer(Nt))throw new TypeError("Not a string or buffer");var Ot=kt._finishFlushFlag;return kt._processChunk(Nt,Ot)}function Ft(kt){if(!(this instanceof Ft))return new Ft(kt);Bt.call(this,kt,it.DEFLATE)}function mt(kt){if(!(this instanceof mt))return new mt(kt);Bt.call(this,kt,it.INFLATE)}function vt(kt){if(!(this instanceof vt))return new vt(kt);Bt.call(this,kt,it.GZIP)}function At(kt){if(!(this instanceof At))return new At(kt);Bt.call(this,kt,it.GUNZIP)}function Lt(kt){if(!(this instanceof Lt))return new Lt(kt);Bt.call(this,kt,it.DEFLATERAW)}function Rt(kt){if(!(this instanceof Rt))return new Rt(kt);Bt.call(this,kt,it.INFLATERAW)}function St(kt){if(!(this instanceof St))return new St(kt);Bt.call(this,kt,it.UNZIP)}function Tt(kt){return kt===it.Z_NO_FLUSH||kt===it.Z_PARTIAL_FLUSH||kt===it.Z_SYNC_FLUSH||kt===it.Z_FULL_FLUSH||kt===it.Z_FINISH||kt===it.Z_BLOCK}function Bt(kt,Nt){var Ot=this;if(this._opts=kt=kt||{},this._chunkSize=kt.chunkSize||o.Z_DEFAULT_CHUNK,rt.call(this,kt),kt.flush&&!Tt(kt.flush))throw new Error("Invalid flush flag: "+kt.flush);if(kt.finishFlush&&!Tt(kt.finishFlush))throw new Error("Invalid flush flag: "+kt.finishFlush);if(this._flushFlag=kt.flush||it.Z_NO_FLUSH,this._finishFlushFlag=kt.finishFlush!==void 0?kt.finishFlush:it.Z_FINISH,kt.chunkSize&&(kt.chunkSizeo.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+kt.chunkSize);if(kt.windowBits&&(kt.windowBitso.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+kt.windowBits);if(kt.level&&(kt.levelo.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+kt.level);if(kt.memLevel&&(kt.memLevelo.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+kt.memLevel);if(kt.strategy&&kt.strategy!=o.Z_FILTERED&&kt.strategy!=o.Z_HUFFMAN_ONLY&&kt.strategy!=o.Z_RLE&&kt.strategy!=o.Z_FIXED&&kt.strategy!=o.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+kt.strategy);if(kt.dictionary&&!nt.isBuffer(kt.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._handle=new it.Zlib(Nt);var Jt=this;this._hadError=!1,this._handle.onerror=function(Pt,zt){xt(Jt),Jt._hadError=!0;var en=new Error(Pt);en.errno=zt,en.code=o.codes[zt],Jt.emit("error",en)};var Dt=o.Z_DEFAULT_COMPRESSION;typeof kt.level=="number"&&(Dt=kt.level);var Et=o.Z_DEFAULT_STRATEGY;typeof kt.strategy=="number"&&(Et=kt.strategy),this._handle.init(kt.windowBits||o.Z_DEFAULT_WINDOWBITS,Dt,kt.memLevel||o.Z_DEFAULT_MEMLEVEL,Et,kt.dictionary),this._buffer=nt.allocUnsafe(this._chunkSize),this._offset=0,this._level=Dt,this._strategy=Et,this.once("end",this.close),Object.defineProperty(this,"_closed",{get:function(){return!Ot._handle},configurable:!0,enumerable:!0})}function xt(kt,Nt){Nt&&tt.nextTick(Nt),kt._handle&&(kt._handle.close(),kt._handle=null)}function Ct(kt){kt.emit("close")}Object.defineProperty(o,"codes",{enumerable:!0,value:Object.freeze(ct),writable:!1}),o.Deflate=Ft,o.Inflate=mt,o.Gzip=vt,o.Gunzip=At,o.DeflateRaw=Lt,o.InflateRaw=Rt,o.Unzip=St,o.createDeflate=function(kt){return new Ft(kt)},o.createInflate=function(kt){return new mt(kt)},o.createDeflateRaw=function(kt){return new Lt(kt)},o.createInflateRaw=function(kt){return new Rt(kt)},o.createGzip=function(kt){return new vt(kt)},o.createGunzip=function(kt){return new At(kt)},o.createUnzip=function(kt){return new St(kt)},o.deflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Ft(Nt),kt,Ot)},o.deflateSync=function(kt,Nt){return Ut(new Ft(Nt),kt)},o.gzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new vt(Nt),kt,Ot)},o.gzipSync=function(kt,Nt){return Ut(new vt(Nt),kt)},o.deflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Lt(Nt),kt,Ot)},o.deflateRawSync=function(kt,Nt){return Ut(new Lt(Nt),kt)},o.unzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new St(Nt),kt,Ot)},o.unzipSync=function(kt,Nt){return Ut(new St(Nt),kt)},o.inflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new mt(Nt),kt,Ot)},o.inflateSync=function(kt,Nt){return Ut(new mt(Nt),kt)},o.gunzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new At(Nt),kt,Ot)},o.gunzipSync=function(kt,Nt){return Ut(new At(Nt),kt)},o.inflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Rt(Nt),kt,Ot)},o.inflateRawSync=function(kt,Nt){return Ut(new Rt(Nt),kt)},ot.inherits(Bt,rt),Bt.prototype.params=function(kt,Nt,Ot){if(kto.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+kt);if(Nt!=o.Z_FILTERED&&Nt!=o.Z_HUFFMAN_ONLY&&Nt!=o.Z_RLE&&Nt!=o.Z_FIXED&&Nt!=o.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+Nt);if(this._level!==kt||this._strategy!==Nt){var Jt=this;this.flush(it.Z_SYNC_FLUSH,function(){st(Jt._handle,"zlib binding closed"),Jt._handle.params(kt,Nt),Jt._hadError||(Jt._level=kt,Jt._strategy=Nt,Ot&&Ot())})}else tt.nextTick(Ot)},Bt.prototype.reset=function(){return st(this._handle,"zlib binding closed"),this._handle.reset()},Bt.prototype._flush=function(kt){this._transform(nt.alloc(0),"",kt)},Bt.prototype.flush=function(kt,Nt){var Ot=this,Jt=this._writableState;(typeof kt=="function"||kt===void 0&&!Nt)&&(Nt=kt,kt=it.Z_FULL_FLUSH),Jt.ended?Nt&&tt.nextTick(Nt):Jt.ending?Nt&&this.once("end",Nt):Jt.needDrain?Nt&&this.once("drain",function(){return Ot.flush(kt,Nt)}):(this._flushFlag=kt,this.write(nt.alloc(0),"",Nt))},Bt.prototype.close=function(kt){xt(this,kt),tt.nextTick(Ct,this)},Bt.prototype._transform=function(kt,Nt,Ot){var Jt,Dt=this._writableState,Et=(Dt.ending||Dt.ended)&&(!kt||Dt.length===kt.length);return kt===null||nt.isBuffer(kt)?this._handle?(Et?Jt=this._finishFlushFlag:(Jt=this._flushFlag,kt.length>=Dt.length&&(this._flushFlag=this._opts.flush||it.Z_NO_FLUSH)),void this._processChunk(kt,Jt,Ot)):Ot(new Error("zlib binding closed")):Ot(new Error("invalid input"))},Bt.prototype._processChunk=function(kt,Nt,Ot){var Jt=kt&&kt.length,Dt=this._chunkSize-this._offset,Et=0,Pt=this,zt=typeof Ot=="function";if(!zt){var en,Kt=[],nn=0;this.on("error",function($t){en=$t}),st(this._handle,"zlib binding closed");do var Zt=this._handle.writeSync(Nt,kt,Et,Jt,this._buffer,this._offset,Dt);while(!this._hadError&&It(Zt[0],Zt[1]));if(this._hadError)throw en;if(nn>=at)throw xt(this),new RangeError(lt);var jt=nt.concat(Kt,nn);return xt(this),jt}st(this._handle,"zlib binding closed");var Vt=this._handle.write(Nt,kt,Et,Jt,this._buffer,this._offset,Dt);function It($t,Ht){if(this&&(this.buffer=null,this.callback=null),!Pt._hadError){var qt=Dt-Ht;if(st(qt>=0,"have should not go down"),qt>0){var on=Pt._buffer.slice(Pt._offset,Pt._offset+qt);Pt._offset+=qt,zt?Pt.push(on):(Kt.push(on),nn+=on.length)}if((Ht===0||Pt._offset>=Pt._chunkSize)&&(Dt=Pt._chunkSize,Pt._offset=0,Pt._buffer=nt.allocUnsafe(Pt._chunkSize)),Ht===0){if(Et+=Jt-$t,Jt=$t,!zt)return!0;var Xt=Pt._handle.write(Nt,kt,Et,Jt,Pt._buffer,Pt._offset,Pt._chunkSize);return Xt.callback=It,void(Xt.buffer=kt)}if(!zt)return!1;Ot()}}Vt.buffer=kt,Vt.callback=It},ot.inherits(Ft,Bt),ot.inherits(mt,Bt),ot.inherits(vt,Bt),ot.inherits(At,Bt),ot.inherits(Lt,Bt),ot.inherits(Rt,Bt),ot.inherits(St,Bt)}).call(this,et(2))},function(s,o,et){s.exports=nt;var tt=et(20).EventEmitter;function nt(){tt.call(this)}et(7)(nt,tt),nt.Readable=et(31),nt.Writable=et(170),nt.Duplex=et(171),nt.Transform=et(172),nt.PassThrough=et(173),nt.Stream=nt,nt.prototype.pipe=function(rt,it){var ot=this;function st(pt){rt.writable&&rt.write(pt)===!1&&ot.pause&&ot.pause()}function at(){ot.readable&&ot.resume&&ot.resume()}ot.on("data",st),rt.on("drain",at),rt._isStdio||it&&it.end===!1||(ot.on("end",ut),ot.on("close",dt));var lt=!1;function ut(){lt||(lt=!0,rt.end())}function dt(){lt||(lt=!0,typeof rt.destroy=="function"&&rt.destroy())}function ht(pt){if(ct(),tt.listenerCount(this,"error")===0)throw pt}function ct(){ot.removeListener("data",st),rt.removeListener("drain",at),ot.removeListener("end",ut),ot.removeListener("close",dt),ot.removeListener("error",ht),rt.removeListener("error",ht),ot.removeListener("end",ct),ot.removeListener("close",ct),rt.removeListener("close",ct)}return ot.on("error",ht),rt.on("error",ht),ot.on("end",ct),ot.on("close",ct),rt.on("close",ct),rt.emit("pipe",ot),rt}},function(s,o){var et={}.toString;s.exports=Array.isArray||function(tt){return et.call(tt)=="[object Array]"}},function(s,o){},function(s,o,et){var tt=et(46).Buffer,nt=et(168);s.exports=function(){function rt(){(function(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")})(this,rt),this.head=null,this.tail=null,this.length=0}return rt.prototype.push=function(it){var ot={data:it,next:null};this.length>0?this.tail.next=ot:this.head=ot,this.tail=ot,++this.length},rt.prototype.unshift=function(it){var ot={data:it,next:this.head};this.length===0&&(this.tail=ot),this.head=ot,++this.length},rt.prototype.shift=function(){if(this.length!==0){var it=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,it}},rt.prototype.clear=function(){this.head=this.tail=null,this.length=0},rt.prototype.join=function(it){if(this.length===0)return"";for(var ot=this.head,st=""+ot.data;ot=ot.next;)st+=it+ot.data;return st},rt.prototype.concat=function(it){if(this.length===0)return tt.alloc(0);if(this.length===1)return this.head.data;for(var ot,st,at,lt=tt.allocUnsafe(it>>>0),ut=this.head,dt=0;ut;)ot=ut.data,st=lt,at=dt,ot.copy(st,at),dt+=ut.data.length,ut=ut.next;return lt},rt}(),nt&&nt.inspect&&nt.inspect.custom&&(s.exports.prototype[nt.inspect.custom]=function(){var rt=nt.inspect({length:this.length});return this.constructor.name+" "+rt})},function(s,o){},function(s,o,et){s.exports=rt;var tt=et(72),nt=Object.create(et(32));function rt(it){if(!(this instanceof rt))return new rt(it);tt.call(this,it)}nt.inherits=et(7),nt.inherits(rt,tt),rt.prototype._transform=function(it,ot,st){st(null,it)}},function(s,o,et){s.exports=et(47)},function(s,o,et){s.exports=et(22)},function(s,o,et){s.exports=et(31).Transform},function(s,o,et){s.exports=et(31).PassThrough},function(s,o,et){(function(tt,nt){var rt=et(73),it=et(176),ot=et(177),st=et(180),at=et(183);for(var lt in at)o[lt]=at[lt];o.NONE=0,o.DEFLATE=1,o.INFLATE=2,o.GZIP=3,o.GUNZIP=4,o.DEFLATERAW=5,o.INFLATERAW=6,o.UNZIP=7;function ut(dt){if(typeof dt!="number"||dto.UNZIP)throw new TypeError("Bad argument");this.dictionary=null,this.err=0,this.flush=0,this.init_done=!1,this.level=0,this.memLevel=0,this.mode=dt,this.strategy=0,this.windowBits=0,this.write_in_progress=!1,this.pending_close=!1,this.gzip_id_bytes_read=0}ut.prototype.close=function(){this.write_in_progress?this.pending_close=!0:(this.pending_close=!1,rt(this.init_done,"close before init"),rt(this.mode<=o.UNZIP),this.mode===o.DEFLATE||this.mode===o.GZIP||this.mode===o.DEFLATERAW?ot.deflateEnd(this.strm):this.mode!==o.INFLATE&&this.mode!==o.GUNZIP&&this.mode!==o.INFLATERAW&&this.mode!==o.UNZIP||st.inflateEnd(this.strm),this.mode=o.NONE,this.dictionary=null)},ut.prototype.write=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!0,dt,ht,ct,pt,ft,gt,yt)},ut.prototype.writeSync=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!1,dt,ht,ct,pt,ft,gt,yt)},ut.prototype._write=function(dt,ht,ct,pt,ft,gt,yt,Ut){if(rt.equal(arguments.length,8),rt(this.init_done,"write before init"),rt(this.mode!==o.NONE,"already finalized"),rt.equal(!1,this.write_in_progress,"write already in progress"),rt.equal(!1,this.pending_close,"close is pending"),this.write_in_progress=!0,rt.equal(!1,ht===void 0,"must provide flush value"),this.write_in_progress=!0,ht!==o.Z_NO_FLUSH&&ht!==o.Z_PARTIAL_FLUSH&&ht!==o.Z_SYNC_FLUSH&&ht!==o.Z_FULL_FLUSH&&ht!==o.Z_FINISH&&ht!==o.Z_BLOCK)throw new Error("Invalid flush value");if(ct==null&&(ct=tt.alloc(0),ft=0,pt=0),this.strm.avail_in=ft,this.strm.input=ct,this.strm.next_in=pt,this.strm.avail_out=Ut,this.strm.output=gt,this.strm.next_out=yt,this.flush=ht,!dt)return this._process(),this._checkError()?this._afterSync():void 0;var Ft=this;return nt.nextTick(function(){Ft._process(),Ft._after()}),this},ut.prototype._afterSync=function(){var dt=this.strm.avail_out,ht=this.strm.avail_in;return this.write_in_progress=!1,[ht,dt]},ut.prototype._process=function(){var dt=null;switch(this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflate(this.strm,this.flush);break;case o.UNZIP:switch(this.strm.avail_in>0&&(dt=this.strm.next_in),this.gzip_id_bytes_read){case 0:if(dt===null)break;if(this.strm.input[dt]!==31){this.mode=o.INFLATE;break}if(this.gzip_id_bytes_read=1,dt++,this.strm.avail_in===1)break;case 1:if(dt===null)break;this.strm.input[dt]===139?(this.gzip_id_bytes_read=2,this.mode=o.GUNZIP):this.mode=o.INFLATE;break;default:throw new Error("invalid number of gzip magic number bytes read")}case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:for(this.err=st.inflate(this.strm,this.flush),this.err===o.Z_NEED_DICT&&this.dictionary&&(this.err=st.inflateSetDictionary(this.strm,this.dictionary),this.err===o.Z_OK?this.err=st.inflate(this.strm,this.flush):this.err===o.Z_DATA_ERROR&&(this.err=o.Z_NEED_DICT));this.strm.avail_in>0&&this.mode===o.GUNZIP&&this.err===o.Z_STREAM_END&&this.strm.next_in[0]!==0;)this.reset(),this.err=st.inflate(this.strm,this.flush);break;default:throw new Error("Unknown mode "+this.mode)}},ut.prototype._checkError=function(){switch(this.err){case o.Z_OK:case o.Z_BUF_ERROR:if(this.strm.avail_out!==0&&this.flush===o.Z_FINISH)return this._error("unexpected end of file"),!1;break;case o.Z_STREAM_END:break;case o.Z_NEED_DICT:return this.dictionary==null?this._error("Missing dictionary"):this._error("Bad dictionary"),!1;default:return this._error("Zlib error"),!1}return!0},ut.prototype._after=function(){if(this._checkError()){var dt=this.strm.avail_out,ht=this.strm.avail_in;this.write_in_progress=!1,this.callback(ht,dt),this.pending_close&&this.close()}},ut.prototype._error=function(dt){this.strm.msg&&(dt=this.strm.msg),this.onerror(dt,this.err),this.write_in_progress=!1,this.pending_close&&this.close()},ut.prototype.init=function(dt,ht,ct,pt,ft){rt(arguments.length===4||arguments.length===5,"init(windowBits, level, memLevel, strategy, [dictionary])"),rt(dt>=8&&dt<=15,"invalid windowBits"),rt(ht>=-1&&ht<=9,"invalid compression level"),rt(ct>=1&&ct<=9,"invalid memlevel"),rt(pt===o.Z_FILTERED||pt===o.Z_HUFFMAN_ONLY||pt===o.Z_RLE||pt===o.Z_FIXED||pt===o.Z_DEFAULT_STRATEGY,"invalid strategy"),this._init(ht,dt,ct,pt,ft),this._setDictionary()},ut.prototype.params=function(){throw new Error("deflateParams Not supported")},ut.prototype.reset=function(){this._reset(),this._setDictionary()},ut.prototype._init=function(dt,ht,ct,pt,ft){switch(this.level=dt,this.windowBits=ht,this.memLevel=ct,this.strategy=pt,this.flush=o.Z_NO_FLUSH,this.err=o.Z_OK,this.mode!==o.GZIP&&this.mode!==o.GUNZIP||(this.windowBits+=16),this.mode===o.UNZIP&&(this.windowBits+=32),this.mode!==o.DEFLATERAW&&this.mode!==o.INFLATERAW||(this.windowBits=-1*this.windowBits),this.strm=new it,this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflateInit2(this.strm,this.level,o.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:case o.UNZIP:this.err=st.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}this.err!==o.Z_OK&&this._error("Init error"),this.dictionary=ft,this.write_in_progress=!1,this.init_done=!0},ut.prototype._setDictionary=function(){if(this.dictionary!=null){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:this.err=ot.deflateSetDictionary(this.strm,this.dictionary)}this.err!==o.Z_OK&&this._error("Failed to set dictionary")}},ut.prototype._reset=function(){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:case o.GZIP:this.err=ot.deflateReset(this.strm);break;case o.INFLATE:case o.INFLATERAW:case o.GUNZIP:this.err=st.inflateReset(this.strm)}this.err!==o.Z_OK&&this._error("Failed to reset stream")},o.Zlib=ut}).call(this,et(5).Buffer,et(2))},function(s,o,et){var tt=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable;function it(ot){if(ot==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(ot)}s.exports=function(){try{if(!Object.assign)return!1;var ot=new String("abc");if(ot[5]="de",Object.getOwnPropertyNames(ot)[0]==="5")return!1;for(var st={},at=0;at<10;at++)st["_"+String.fromCharCode(at)]=at;if(Object.getOwnPropertyNames(st).map(function(ut){return st[ut]}).join("")!=="0123456789")return!1;var lt={};return"abcdefghijklmnopqrst".split("").forEach(function(ut){lt[ut]=ut}),Object.keys(Object.assign({},lt)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}()?Object.assign:function(ot,st){for(var at,lt,ut=it(ot),dt=1;dt4?9:0)}function ut(Rt){for(var St=Rt.length;--St>=0;)Rt[St]=0}function dt(Rt){var St=Rt.state,Tt=St.pending;Tt>Rt.avail_out&&(Tt=Rt.avail_out),Tt!==0&&(nt.arraySet(Rt.output,St.pending_buf,St.pending_out,Tt,Rt.next_out),Rt.next_out+=Tt,St.pending_out+=Tt,Rt.total_out+=Tt,Rt.avail_out-=Tt,St.pending-=Tt,St.pending===0&&(St.pending_out=0))}function ht(Rt,St){rt._tr_flush_block(Rt,Rt.block_start>=0?Rt.block_start:-1,Rt.strstart-Rt.block_start,St),Rt.block_start=Rt.strstart,dt(Rt.strm)}function ct(Rt,St){Rt.pending_buf[Rt.pending++]=St}function pt(Rt,St){Rt.pending_buf[Rt.pending++]=St>>>8&255,Rt.pending_buf[Rt.pending++]=255&St}function ft(Rt,St){var Tt,Bt,xt=Rt.max_chain_length,Ct=Rt.strstart,kt=Rt.prev_length,Nt=Rt.nice_match,Ot=Rt.strstart>Rt.w_size-262?Rt.strstart-(Rt.w_size-262):0,Jt=Rt.window,Dt=Rt.w_mask,Et=Rt.prev,Pt=Rt.strstart+258,zt=Jt[Ct+kt-1],en=Jt[Ct+kt];Rt.prev_length>=Rt.good_match&&(xt>>=2),Nt>Rt.lookahead&&(Nt=Rt.lookahead);do if(Jt[(Tt=St)+kt]===en&&Jt[Tt+kt-1]===zt&&Jt[Tt]===Jt[Ct]&&Jt[++Tt]===Jt[Ct+1]){Ct+=2,Tt++;do;while(Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Ctkt){if(Rt.match_start=St,kt=Bt,Bt>=Nt)break;zt=Jt[Ct+kt-1],en=Jt[Ct+kt]}}while((St=Et[St&Dt])>Ot&&--xt!=0);return kt<=Rt.lookahead?kt:Rt.lookahead}function gt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt,Et=Rt.w_size;do{if(xt=Rt.window_size-Rt.lookahead-Rt.strstart,Rt.strstart>=Et+(Et-262)){nt.arraySet(Rt.window,Rt.window,Et,Et,0),Rt.match_start-=Et,Rt.strstart-=Et,Rt.block_start-=Et,St=Tt=Rt.hash_size;do Bt=Rt.head[--St],Rt.head[St]=Bt>=Et?Bt-Et:0;while(--Tt);St=Tt=Et;do Bt=Rt.prev[--St],Rt.prev[St]=Bt>=Et?Bt-Et:0;while(--Tt);xt+=Et}if(Rt.strm.avail_in===0)break;if(kt=Rt.strm,Nt=Rt.window,Ot=Rt.strstart+Rt.lookahead,Jt=xt,Dt=void 0,(Dt=kt.avail_in)>Jt&&(Dt=Jt),Tt=Dt===0?0:(kt.avail_in-=Dt,nt.arraySet(Nt,kt.input,kt.next_in,Dt,Ot),kt.state.wrap===1?kt.adler=it(kt.adler,Nt,Dt,Ot):kt.state.wrap===2&&(kt.adler=ot(kt.adler,Nt,Dt,Ot)),kt.next_in+=Dt,kt.total_in+=Dt,Dt),Rt.lookahead+=Tt,Rt.lookahead+Rt.insert>=3)for(Ct=Rt.strstart-Rt.insert,Rt.ins_h=Rt.window[Ct],Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<=3)if(Bt=rt._tr_tally(Rt,Rt.strstart-Rt.match_start,Rt.match_length-3),Rt.lookahead-=Rt.match_length,Rt.match_length<=Rt.max_lazy_match&&Rt.lookahead>=3){Rt.match_length--;do Rt.strstart++,Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<4096)&&(Rt.match_length=2)),Rt.prev_length>=3&&Rt.match_length<=Rt.prev_length){xt=Rt.strstart+Rt.lookahead-3,Bt=rt._tr_tally(Rt,Rt.strstart-1-Rt.prev_match,Rt.prev_length-3),Rt.lookahead-=Rt.prev_length-1,Rt.prev_length-=2;do++Rt.strstart<=xt&&(Rt.ins_h=(Rt.ins_h<15&&(kt=2,Bt-=16),xt<1||xt>9||Tt!==8||Bt<8||Bt>15||St<0||St>9||Ct<0||Ct>4)return at(Rt,-2);Bt===8&&(Bt=9);var Nt=new mt;return Rt.state=Nt,Nt.strm=Rt,Nt.wrap=kt,Nt.gzhead=null,Nt.w_bits=Bt,Nt.w_size=1<Rt.pending_buf_size-5&&(Tt=Rt.pending_buf_size-5);;){if(Rt.lookahead<=1){if(gt(Rt),Rt.lookahead===0&&St===0)return 1;if(Rt.lookahead===0)break}Rt.strstart+=Rt.lookahead,Rt.lookahead=0;var Bt=Rt.block_start+Tt;if((Rt.strstart===0||Rt.strstart>=Bt)&&(Rt.lookahead=Rt.strstart-Bt,Rt.strstart=Bt,ht(Rt,!1),Rt.strm.avail_out===0)||Rt.strstart-Rt.block_start>=Rt.w_size-262&&(ht(Rt,!1),Rt.strm.avail_out===0))return 1}return Rt.insert=0,St===4?(ht(Rt,!0),Rt.strm.avail_out===0?3:4):(Rt.strstart>Rt.block_start&&(ht(Rt,!1),Rt.strm.avail_out),1)}),new Ft(4,4,8,4,yt),new Ft(4,5,16,8,yt),new Ft(4,6,32,32,yt),new Ft(4,4,16,16,Ut),new Ft(8,16,32,32,Ut),new Ft(8,16,128,128,Ut),new Ft(8,32,128,256,Ut),new Ft(32,128,258,1024,Ut),new Ft(32,258,258,4096,Ut)],o.deflateInit=function(Rt,St){return Lt(Rt,St,8,15,8,0)},o.deflateInit2=Lt,o.deflateReset=At,o.deflateResetKeep=vt,o.deflateSetHeader=function(Rt,St){return Rt&&Rt.state?Rt.state.wrap!==2?-2:(Rt.state.gzhead=St,0):-2},o.deflate=function(Rt,St){var Tt,Bt,xt,Ct;if(!Rt||!Rt.state||St>5||St<0)return Rt?at(Rt,-2):-2;if(Bt=Rt.state,!Rt.output||!Rt.input&&Rt.avail_in!==0||Bt.status===666&&St!==4)return at(Rt,Rt.avail_out===0?-5:-2);if(Bt.strm=Rt,Tt=Bt.last_flush,Bt.last_flush=St,Bt.status===42)if(Bt.wrap===2)Rt.adler=0,ct(Bt,31),ct(Bt,139),ct(Bt,8),Bt.gzhead?(ct(Bt,(Bt.gzhead.text?1:0)+(Bt.gzhead.hcrc?2:0)+(Bt.gzhead.extra?4:0)+(Bt.gzhead.name?8:0)+(Bt.gzhead.comment?16:0)),ct(Bt,255&Bt.gzhead.time),ct(Bt,Bt.gzhead.time>>8&255),ct(Bt,Bt.gzhead.time>>16&255),ct(Bt,Bt.gzhead.time>>24&255),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,255&Bt.gzhead.os),Bt.gzhead.extra&&Bt.gzhead.extra.length&&(ct(Bt,255&Bt.gzhead.extra.length),ct(Bt,Bt.gzhead.extra.length>>8&255)),Bt.gzhead.hcrc&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending,0)),Bt.gzindex=0,Bt.status=69):(ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,3),Bt.status=113);else{var kt=8+(Bt.w_bits-8<<4)<<8;kt|=(Bt.strategy>=2||Bt.level<2?0:Bt.level<6?1:Bt.level===6?2:3)<<6,Bt.strstart!==0&&(kt|=32),kt+=31-kt%31,Bt.status=113,pt(Bt,kt),Bt.strstart!==0&&(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),Rt.adler=1}if(Bt.status===69)if(Bt.gzhead.extra){for(xt=Bt.pending;Bt.gzindex<(65535&Bt.gzhead.extra.length)&&(Bt.pending!==Bt.pending_buf_size||(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending!==Bt.pending_buf_size));)ct(Bt,255&Bt.gzhead.extra[Bt.gzindex]),Bt.gzindex++;Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Bt.gzindex===Bt.gzhead.extra.length&&(Bt.gzindex=0,Bt.status=73)}else Bt.status=73;if(Bt.status===73)if(Bt.gzhead.name){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.gzindex=0,Bt.status=91)}else Bt.status=91;if(Bt.status===91)if(Bt.gzhead.comment){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.status=103)}else Bt.status=103;if(Bt.status===103&&(Bt.gzhead.hcrc?(Bt.pending+2>Bt.pending_buf_size&&dt(Rt),Bt.pending+2<=Bt.pending_buf_size&&(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),Rt.adler=0,Bt.status=113)):Bt.status=113),Bt.pending!==0){if(dt(Rt),Rt.avail_out===0)return Bt.last_flush=-1,0}else if(Rt.avail_in===0&<(St)<=lt(Tt)&&St!==4)return at(Rt,-5);if(Bt.status===666&&Rt.avail_in!==0)return at(Rt,-5);if(Rt.avail_in!==0||Bt.lookahead!==0||St!==0&&Bt.status!==666){var Nt=Bt.strategy===2?function(Ot,Jt){for(var Dt;;){if(Ot.lookahead===0&&(gt(Ot),Ot.lookahead===0)){if(Jt===0)return 1;break}if(Ot.match_length=0,Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++,Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Jt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):Bt.strategy===3?function(Ot,Jt){for(var Dt,Et,Pt,zt,en=Ot.window;;){if(Ot.lookahead<=258){if(gt(Ot),Ot.lookahead<=258&&Jt===0)return 1;if(Ot.lookahead===0)break}if(Ot.match_length=0,Ot.lookahead>=3&&Ot.strstart>0&&(Et=en[Pt=Ot.strstart-1])===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]){zt=Ot.strstart+258;do;while(Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&PtOt.lookahead&&(Ot.match_length=Ot.lookahead)}if(Ot.match_length>=3?(Dt=rt._tr_tally(Ot,1,Ot.match_length-3),Ot.lookahead-=Ot.match_length,Ot.strstart+=Ot.match_length,Ot.match_length=0):(Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++),Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Jt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):tt[Bt.level].func(Bt,St);if(Nt!==3&&Nt!==4||(Bt.status=666),Nt===1||Nt===3)return Rt.avail_out===0&&(Bt.last_flush=-1),0;if(Nt===2&&(St===1?rt._tr_align(Bt):St!==5&&(rt._tr_stored_block(Bt,0,0,!1),St===3&&(ut(Bt.head),Bt.lookahead===0&&(Bt.strstart=0,Bt.block_start=0,Bt.insert=0))),dt(Rt),Rt.avail_out===0))return Bt.last_flush=-1,0}return St!==4?0:Bt.wrap<=0?1:(Bt.wrap===2?(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),ct(Bt,Rt.adler>>16&255),ct(Bt,Rt.adler>>24&255),ct(Bt,255&Rt.total_in),ct(Bt,Rt.total_in>>8&255),ct(Bt,Rt.total_in>>16&255),ct(Bt,Rt.total_in>>24&255)):(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),dt(Rt),Bt.wrap>0&&(Bt.wrap=-Bt.wrap),Bt.pending!==0?0:1)},o.deflateEnd=function(Rt){var St;return Rt&&Rt.state?(St=Rt.state.status)!==42&&St!==69&&St!==73&&St!==91&&St!==103&&St!==113&&St!==666?at(Rt,-2):(Rt.state=null,St===113?at(Rt,-3):0):-2},o.deflateSetDictionary=function(Rt,St){var Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt=St.length;if(!Rt||!Rt.state||(Ct=(Tt=Rt.state).wrap)===2||Ct===1&&Tt.status!==42||Tt.lookahead)return-2;for(Ct===1&&(Rt.adler=it(Rt.adler,St,Dt,0)),Tt.wrap=0,Dt>=Tt.w_size&&(Ct===0&&(ut(Tt.head),Tt.strstart=0,Tt.block_start=0,Tt.insert=0),Jt=new nt.Buf8(Tt.w_size),nt.arraySet(Jt,St,Dt-Tt.w_size,Tt.w_size,0),St=Jt,Dt=Tt.w_size),kt=Rt.avail_in,Nt=Rt.next_in,Ot=Rt.input,Rt.avail_in=Dt,Rt.next_in=0,Rt.input=St,gt(Tt);Tt.lookahead>=3;){Bt=Tt.strstart,xt=Tt.lookahead-2;do Tt.ins_h=(Tt.ins_h<=0;)Et[Pt]=0}var rt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],it=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ot=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],st=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],at=new Array(576);nt(at);var lt=new Array(60);nt(lt);var ut=new Array(512);nt(ut);var dt=new Array(256);nt(dt);var ht=new Array(29);nt(ht);var ct,pt,ft,gt=new Array(30);function yt(Et,Pt,zt,en,Kt){this.static_tree=Et,this.extra_bits=Pt,this.extra_base=zt,this.elems=en,this.max_length=Kt,this.has_stree=Et&&Et.length}function Ut(Et,Pt){this.dyn_tree=Et,this.max_code=0,this.stat_desc=Pt}function Ft(Et){return Et<256?ut[Et]:ut[256+(Et>>>7)]}function mt(Et,Pt){Et.pending_buf[Et.pending++]=255&Pt,Et.pending_buf[Et.pending++]=Pt>>>8&255}function vt(Et,Pt,zt){Et.bi_valid>16-zt?(Et.bi_buf|=Pt<>16-Et.bi_valid,Et.bi_valid+=zt-16):(Et.bi_buf|=Pt<>>=1,zt<<=1;while(--Pt>0);return zt>>>1}function Rt(Et,Pt,zt){var en,Kt,nn=new Array(16),Zt=0;for(en=1;en<=15;en++)nn[en]=Zt=Zt+zt[en-1]<<1;for(Kt=0;Kt<=Pt;Kt++){var jt=Et[2*Kt+1];jt!==0&&(Et[2*Kt]=Lt(nn[jt]++,jt))}}function St(Et){var Pt;for(Pt=0;Pt<286;Pt++)Et.dyn_ltree[2*Pt]=0;for(Pt=0;Pt<30;Pt++)Et.dyn_dtree[2*Pt]=0;for(Pt=0;Pt<19;Pt++)Et.bl_tree[2*Pt]=0;Et.dyn_ltree[512]=1,Et.opt_len=Et.static_len=0,Et.last_lit=Et.matches=0}function Tt(Et){Et.bi_valid>8?mt(Et,Et.bi_buf):Et.bi_valid>0&&(Et.pending_buf[Et.pending++]=Et.bi_buf),Et.bi_buf=0,Et.bi_valid=0}function Bt(Et,Pt,zt,en){var Kt=2*Pt,nn=2*zt;return Et[Kt]>1;zt>=1;zt--)xt(Et,nn,zt);Kt=Vt;do zt=Et.heap[1],Et.heap[1]=Et.heap[Et.heap_len--],xt(Et,nn,1),en=Et.heap[1],Et.heap[--Et.heap_max]=zt,Et.heap[--Et.heap_max]=en,nn[2*Kt]=nn[2*zt]+nn[2*en],Et.depth[Kt]=(Et.depth[zt]>=Et.depth[en]?Et.depth[zt]:Et.depth[en])+1,nn[2*zt+1]=nn[2*en+1]=Kt,Et.heap[1]=Kt++,xt(Et,nn,1);while(Et.heap_len>=2);Et.heap[--Et.heap_max]=Et.heap[1],function($t,Ht){var qt,on,Xt,dn,_n,Fn,Un=Ht.dyn_tree,On=Ht.max_code,gn=Ht.stat_desc.static_tree,hn=Ht.stat_desc.has_stree,wn=Ht.stat_desc.extra_bits,Zn=Ht.stat_desc.extra_base,Pn=Ht.stat_desc.max_length,$n=0;for(dn=0;dn<=15;dn++)$t.bl_count[dn]=0;for(Un[2*$t.heap[$t.heap_max]+1]=0,qt=$t.heap_max+1;qt<573;qt++)(dn=Un[2*Un[2*(on=$t.heap[qt])+1]+1]+1)>Pn&&(dn=Pn,$n++),Un[2*on+1]=dn,on>On||($t.bl_count[dn]++,_n=0,on>=Zn&&(_n=wn[on-Zn]),Fn=Un[2*on],$t.opt_len+=Fn*(dn+_n),hn&&($t.static_len+=Fn*(gn[2*on+1]+_n)));if($n!==0){do{for(dn=Pn-1;$t.bl_count[dn]===0;)dn--;$t.bl_count[dn]--,$t.bl_count[dn+1]+=2,$t.bl_count[Pn]--,$n-=2}while($n>0);for(dn=Pn;dn!==0;dn--)for(on=$t.bl_count[dn];on!==0;)(Xt=$t.heap[--qt])>On||(Un[2*Xt+1]!==dn&&($t.opt_len+=(dn-Un[2*Xt+1])*Un[2*Xt],Un[2*Xt+1]=dn),on--)}}(Et,Pt),Rt(nn,It,Et.bl_count)}function Nt(Et,Pt,zt){var en,Kt,nn=-1,Zt=Pt[1],jt=0,Vt=7,It=4;for(Zt===0&&(Vt=138,It=3),Pt[2*(zt+1)+1]=65535,en=0;en<=zt;en++)Kt=Zt,Zt=Pt[2*(en+1)+1],++jt>=7;Kt<30;Kt++)for(gt[Kt]=nn<<7,Pt=0;Pt<1<0?(Et.strm.data_type===2&&(Et.strm.data_type=function(jt){var Vt,It=4093624447;for(Vt=0;Vt<=31;Vt++,It>>>=1)if(1&It&&jt.dyn_ltree[2*Vt]!==0)return 0;if(jt.dyn_ltree[18]!==0||jt.dyn_ltree[20]!==0||jt.dyn_ltree[26]!==0)return 1;for(Vt=32;Vt<256;Vt++)if(jt.dyn_ltree[2*Vt]!==0)return 1;return 0}(Et)),kt(Et,Et.l_desc),kt(Et,Et.d_desc),Zt=function(jt){var Vt;for(Nt(jt,jt.dyn_ltree,jt.l_desc.max_code),Nt(jt,jt.dyn_dtree,jt.d_desc.max_code),kt(jt,jt.bl_desc),Vt=18;Vt>=3&&jt.bl_tree[2*st[Vt]+1]===0;Vt--);return jt.opt_len+=3*(Vt+1)+5+5+4,Vt}(Et),Kt=Et.opt_len+3+7>>>3,(nn=Et.static_len+3+7>>>3)<=Kt&&(Kt=nn)):Kt=nn=zt+5,zt+4<=Kt&&Pt!==-1?Dt(Et,Pt,zt,en):Et.strategy===4||nn===Kt?(vt(Et,2+(en?1:0),3),Ct(Et,at,lt)):(vt(Et,4+(en?1:0),3),function(jt,Vt,It,$t){var Ht;for(vt(jt,Vt-257,5),vt(jt,It-1,5),vt(jt,$t-4,4),Ht=0;Ht<$t;Ht++)vt(jt,jt.bl_tree[2*st[Ht]+1],3);Ot(jt,jt.dyn_ltree,Vt-1),Ot(jt,jt.dyn_dtree,It-1)}(Et,Et.l_desc.max_code+1,Et.d_desc.max_code+1,Zt+1),Ct(Et,Et.dyn_ltree,Et.dyn_dtree)),St(Et),en&&Tt(Et)},o._tr_tally=function(Et,Pt,zt){return Et.pending_buf[Et.d_buf+2*Et.last_lit]=Pt>>>8&255,Et.pending_buf[Et.d_buf+2*Et.last_lit+1]=255&Pt,Et.pending_buf[Et.l_buf+Et.last_lit]=255&zt,Et.last_lit++,Pt===0?Et.dyn_ltree[2*zt]++:(Et.matches++,Pt--,Et.dyn_ltree[2*(dt[zt]+256+1)]++,Et.dyn_dtree[2*Ft(Pt)]++),Et.last_lit===Et.lit_bufsize-1},o._tr_align=function(Et){vt(Et,2,3),At(Et,256,at),function(Pt){Pt.bi_valid===16?(mt(Pt,Pt.bi_buf),Pt.bi_buf=0,Pt.bi_valid=0):Pt.bi_valid>=8&&(Pt.pending_buf[Pt.pending++]=255&Pt.bi_buf,Pt.bi_buf>>=8,Pt.bi_valid-=8)}(Et)}},function(s,o,et){s.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(s,o,et){var tt=et(38),nt=et(74),rt=et(75),it=et(181),ot=et(182);function st(Ut){return(Ut>>>24&255)+(Ut>>>8&65280)+((65280&Ut)<<8)+((255&Ut)<<24)}function at(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new tt.Buf16(320),this.work=new tt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function lt(Ut){var Ft;return Ut&&Ut.state?(Ft=Ut.state,Ut.total_in=Ut.total_out=Ft.total=0,Ut.msg="",Ft.wrap&&(Ut.adler=1&Ft.wrap),Ft.mode=1,Ft.last=0,Ft.havedict=0,Ft.dmax=32768,Ft.head=null,Ft.hold=0,Ft.bits=0,Ft.lencode=Ft.lendyn=new tt.Buf32(852),Ft.distcode=Ft.distdyn=new tt.Buf32(592),Ft.sane=1,Ft.back=-1,0):-2}function ut(Ut){var Ft;return Ut&&Ut.state?((Ft=Ut.state).wsize=0,Ft.whave=0,Ft.wnext=0,lt(Ut)):-2}function dt(Ut,Ft){var mt,vt;return Ut&&Ut.state?(vt=Ut.state,Ft<0?(mt=0,Ft=-Ft):(mt=1+(Ft>>4),Ft<48&&(Ft&=15)),Ft&&(Ft<8||Ft>15)?-2:(vt.window!==null&&vt.wbits!==Ft&&(vt.window=null),vt.wrap=mt,vt.wbits=Ft,ut(Ut))):-2}function ht(Ut,Ft){var mt,vt;return Ut?(vt=new at,Ut.state=vt,vt.window=null,(mt=dt(Ut,Ft))!==0&&(Ut.state=null),mt):-2}var ct,pt,ft=!0;function gt(Ut){if(ft){var Ft;for(ct=new tt.Buf32(512),pt=new tt.Buf32(32),Ft=0;Ft<144;)Ut.lens[Ft++]=8;for(;Ft<256;)Ut.lens[Ft++]=9;for(;Ft<280;)Ut.lens[Ft++]=7;for(;Ft<288;)Ut.lens[Ft++]=8;for(ot(1,Ut.lens,0,288,ct,0,Ut.work,{bits:9}),Ft=0;Ft<32;)Ut.lens[Ft++]=5;ot(2,Ut.lens,0,32,pt,0,Ut.work,{bits:5}),ft=!1}Ut.lencode=ct,Ut.lenbits=9,Ut.distcode=pt,Ut.distbits=5}function yt(Ut,Ft,mt,vt){var At,Lt=Ut.state;return Lt.window===null&&(Lt.wsize=1<=Lt.wsize?(tt.arraySet(Lt.window,Ft,mt-Lt.wsize,Lt.wsize,0),Lt.wnext=0,Lt.whave=Lt.wsize):((At=Lt.wsize-Lt.wnext)>vt&&(At=vt),tt.arraySet(Lt.window,Ft,mt-vt,At,Lt.wnext),(vt-=At)?(tt.arraySet(Lt.window,Ft,mt-vt,vt,0),Lt.wnext=vt,Lt.whave=Lt.wsize):(Lt.wnext+=At,Lt.wnext===Lt.wsize&&(Lt.wnext=0),Lt.whave>>8&255,mt.check=rt(mt.check,$t,2,0),Bt=0,xt=0,mt.mode=2;break}if(mt.flags=0,mt.head&&(mt.head.done=!1),!(1&mt.wrap)||(((255&Bt)<<8)+(Bt>>8))%31){Ut.msg="incorrect header check",mt.mode=30;break}if((15&Bt)!=8){Ut.msg="unknown compression method",mt.mode=30;break}if(xt-=4,nn=8+(15&(Bt>>>=4)),mt.wbits===0)mt.wbits=nn;else if(nn>mt.wbits){Ut.msg="invalid window size",mt.mode=30;break}mt.dmax=1<>8&1),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=3;case 3:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,$t[2]=Bt>>>16&255,$t[3]=Bt>>>24&255,mt.check=rt(mt.check,$t,4,0)),Bt=0,xt=0,mt.mode=4;case 4:for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>8),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=5;case 5:if(1024&mt.flags){for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0}else mt.head&&(mt.head.extra=null);mt.mode=6;case 6:if(1024&mt.flags&&((Nt=mt.length)>St&&(Nt=St),Nt&&(mt.head&&(nn=mt.head.extra_len-mt.length,mt.head.extra||(mt.head.extra=new Array(mt.head.extra_len)),tt.arraySet(mt.head.extra,vt,Lt,Nt,nn)),512&mt.flags&&(mt.check=rt(mt.check,vt,Nt,Lt)),St-=Nt,Lt+=Nt,mt.length-=Nt),mt.length))break e;mt.length=0,mt.mode=7;case 7:if(2048&mt.flags){if(St===0)break e;Nt=0;do nn=vt[Lt+Nt++],mt.head&&nn&&mt.length<65536&&(mt.head.name+=String.fromCharCode(nn));while(nn&&Nt>9&1,mt.head.done=!0),Ut.adler=mt.check=0,mt.mode=12;break;case 10:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=7&xt,xt-=7&xt,mt.mode=27;break}for(;xt<3;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=1)){case 0:mt.mode=14;break;case 1:if(gt(mt),mt.mode=20,Ft===6){Bt>>>=2,xt-=2;break e}break;case 2:mt.mode=17;break;case 3:Ut.msg="invalid block type",mt.mode=30}Bt>>>=2,xt-=2;break;case 14:for(Bt>>>=7&xt,xt-=7&xt;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>16^65535)){Ut.msg="invalid stored block lengths",mt.mode=30;break}if(mt.length=65535&Bt,Bt=0,xt=0,mt.mode=15,Ft===6)break e;case 15:mt.mode=16;case 16:if(Nt=mt.length){if(Nt>St&&(Nt=St),Nt>Tt&&(Nt=Tt),Nt===0)break e;tt.arraySet(At,vt,Lt,Nt,Rt),St-=Nt,Lt+=Nt,Tt-=Nt,Rt+=Nt,mt.length-=Nt;break}mt.mode=12;break;case 17:for(;xt<14;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=5,xt-=5,mt.ndist=1+(31&Bt),Bt>>>=5,xt-=5,mt.ncode=4+(15&Bt),Bt>>>=4,xt-=4,mt.nlen>286||mt.ndist>30){Ut.msg="too many length or distance symbols",mt.mode=30;break}mt.have=0,mt.mode=18;case 18:for(;mt.have>>=3,xt-=3}for(;mt.have<19;)mt.lens[Ht[mt.have++]]=0;if(mt.lencode=mt.lendyn,mt.lenbits=7,jt={bits:mt.lenbits},Zt=ot(0,mt.lens,0,19,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid code lengths set",mt.mode=30;break}mt.have=0,mt.mode=19;case 19:for(;mt.have>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=Dt,xt-=Dt,mt.lens[mt.have++]=Pt;else{if(Pt===16){for(Vt=Dt+2;xt>>=Dt,xt-=Dt,mt.have===0){Ut.msg="invalid bit length repeat",mt.mode=30;break}nn=mt.lens[mt.have-1],Nt=3+(3&Bt),Bt>>>=2,xt-=2}else if(Pt===17){for(Vt=Dt+3;xt>>=Dt)),Bt>>>=3,xt-=3}else{for(Vt=Dt+7;xt>>=Dt)),Bt>>>=7,xt-=7}if(mt.have+Nt>mt.nlen+mt.ndist){Ut.msg="invalid bit length repeat",mt.mode=30;break}for(;Nt--;)mt.lens[mt.have++]=nn}}if(mt.mode===30)break;if(mt.lens[256]===0){Ut.msg="invalid code -- missing end-of-block",mt.mode=30;break}if(mt.lenbits=9,jt={bits:mt.lenbits},Zt=ot(1,mt.lens,0,mt.nlen,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid literal/lengths set",mt.mode=30;break}if(mt.distbits=6,mt.distcode=mt.distdyn,jt={bits:mt.distbits},Zt=ot(2,mt.lens,mt.nlen,mt.ndist,mt.distcode,0,mt.work,jt),mt.distbits=jt.bits,Zt){Ut.msg="invalid distances set",mt.mode=30;break}if(mt.mode=20,Ft===6)break e;case 20:mt.mode=21;case 21:if(St>=6&&Tt>=258){Ut.next_out=Rt,Ut.avail_out=Tt,Ut.next_in=Lt,Ut.avail_in=St,mt.hold=Bt,mt.bits=xt,it(Ut,kt),Rt=Ut.next_out,At=Ut.output,Tt=Ut.avail_out,Lt=Ut.next_in,vt=Ut.input,St=Ut.avail_in,Bt=mt.hold,xt=mt.bits,mt.mode===12&&(mt.back=-1);break}for(mt.back=0;Et=(It=mt.lencode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,mt.length=Pt,Et===0){mt.mode=26;break}if(32&Et){mt.back=-1,mt.mode=12;break}if(64&Et){Ut.msg="invalid literal/length code",mt.mode=30;break}mt.extra=15&Et,mt.mode=22;case 22:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}mt.was=mt.length,mt.mode=23;case 23:for(;Et=(It=mt.distcode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,64&Et){Ut.msg="invalid distance code",mt.mode=30;break}mt.offset=Pt,mt.extra=15&Et,mt.mode=24;case 24:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}if(mt.offset>mt.dmax){Ut.msg="invalid distance too far back",mt.mode=30;break}mt.mode=25;case 25:if(Tt===0)break e;if(Nt=kt-Tt,mt.offset>Nt){if((Nt=mt.offset-Nt)>mt.whave&&mt.sane){Ut.msg="invalid distance too far back",mt.mode=30;break}Nt>mt.wnext?(Nt-=mt.wnext,Ot=mt.wsize-Nt):Ot=mt.wnext-Nt,Nt>mt.length&&(Nt=mt.length),Jt=mt.window}else Jt=At,Ot=Rt-mt.offset,Nt=mt.length;Nt>Tt&&(Nt=Tt),Tt-=Nt,mt.length-=Nt;do At[Rt++]=Jt[Ot++];while(--Nt);mt.length===0&&(mt.mode=21);break;case 26:if(Tt===0)break e;At[Rt++]=mt.length,Tt--,mt.mode=21;break;case 27:if(mt.wrap){for(;xt<32;){if(St===0)break e;St--,Bt|=vt[Lt++]<>>=At=vt>>>24,gt-=At,(At=vt>>>16&255)===0)xt[st++]=65535&vt;else{if(!(16&At)){if(!(64&At)){vt=yt[(65535&vt)+(ft&(1<>>=At,gt-=At),gt<15&&(ft+=Bt[it++]<>>=At=vt>>>24,gt-=At,!(16&(At=vt>>>16&255))){if(!(64&At)){vt=Ut[(65535&vt)+(ft&(1<ut){tt.msg="invalid distance too far back",rt.mode=30;break e}if(ft>>>=At,gt-=At,Rt>(At=st-at)){if((At=Rt-At)>ht&&rt.sane){tt.msg="invalid distance too far back",rt.mode=30;break e}if(St=0,Tt=pt,ct===0){if(St+=dt-At,At2;)xt[st++]=Tt[St++],xt[st++]=Tt[St++],xt[st++]=Tt[St++],Lt-=3;Lt&&(xt[st++]=Tt[St++],Lt>1&&(xt[st++]=Tt[St++]))}else{St=st-Rt;do xt[st++]=xt[St++],xt[st++]=xt[St++],xt[st++]=xt[St++],Lt-=3;while(Lt>2);Lt&&(xt[st++]=xt[St++],Lt>1&&(xt[st++]=xt[St++]))}break}}break}}while(it>3,ft&=(1<<(gt-=Lt<<3))-1,tt.next_in=it,tt.next_out=st,tt.avail_in=it=1&&zt[xt]===0;xt--);if(Ct>xt&&(Ct=xt),xt===0)return dt[ht++]=20971520,dt[ht++]=20971520,pt.bits=1,0;for(Bt=1;Bt0&&(st===0||xt!==1))return-1;for(en[1]=0,St=1;St<15;St++)en[St+1]=en[St]+zt[St];for(Tt=0;Tt852||st===2&&Jt>592)return 1;for(;;){vt=St-Nt,ct[Tt]mt?(At=Kt[nn+ct[Tt]],Lt=Et[Pt+ct[Tt]]):(At=96,Lt=0),ft=1<>Nt)+(gt-=ft)]=vt<<24|At<<16|Lt|0;while(gt!==0);for(ft=1<>=1;if(ft!==0?(Dt&=ft-1,Dt+=ft):Dt=0,Tt++,--zt[St]==0){if(St===xt)break;St=at[lt+ct[Tt]]}if(St>Ct&&(Dt&Ut)!==yt){for(Nt===0&&(Nt=Ct),Ft+=Bt,Ot=1<<(kt=St-Nt);kt+Nt852||st===2&&Jt>592)return 1;dt[yt=Dt&Ut]=Ct<<24|kt<<16|Ft-ht|0}}return Dt!==0&&(dt[Ft+Dt]=St-Nt<<24|64<<16|0),pt.bits=Ct,0}},function(s,o,et){s.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(s,o){},function(s,o,et){function tt(ut,dt){var ht=Object.keys(ut);if(Object.getOwnPropertySymbols){var ct=Object.getOwnPropertySymbols(ut);dt&&(ct=ct.filter(function(pt){return Object.getOwnPropertyDescriptor(ut,pt).enumerable})),ht.push.apply(ht,ct)}return ht}function nt(ut){for(var dt=1;dt0?this.tail.next=pt:this.head=pt,this.tail=pt,++this.length}},{key:"unshift",value:function(ct){var pt={data:ct,next:this.head};this.length===0&&(this.tail=pt),this.head=pt,++this.length}},{key:"shift",value:function(){if(this.length!==0){var ct=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,ct}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(ct){if(this.length===0)return"";for(var pt=this.head,ft=""+pt.data;pt=pt.next;)ft+=ct+pt.data;return ft}},{key:"concat",value:function(ct){if(this.length===0)return st.alloc(0);for(var pt,ft,gt,yt=st.allocUnsafe(ct>>>0),Ut=this.head,Ft=0;Ut;)pt=Ut.data,ft=yt,gt=Ft,st.prototype.copy.call(pt,ft,gt),Ft+=Ut.data.length,Ut=Ut.next;return yt}},{key:"consume",value:function(ct,pt){var ft;return ctyt.length?yt.length:ct;if(Ut===yt.length?gt+=yt:gt+=yt.slice(0,ct),(ct-=Ut)==0){Ut===yt.length?(++ft,pt.next?this.head=pt.next:this.head=this.tail=null):(this.head=pt,pt.data=yt.slice(Ut));break}++ft}return this.length-=ft,gt}},{key:"_getBuffer",value:function(ct){var pt=st.allocUnsafe(ct),ft=this.head,gt=1;for(ft.data.copy(pt),ct-=ft.data.length;ft=ft.next;){var yt=ft.data,Ut=ct>yt.length?yt.length:ct;if(yt.copy(pt,pt.length-ct,0,Ut),(ct-=Ut)==0){Ut===yt.length?(++gt,ft.next?this.head=ft.next:this.head=this.tail=null):(this.head=ft,ft.data=yt.slice(Ut));break}++gt}return this.length-=gt,pt}},{key:lt,value:function(ct,pt){return at(this,nt(nt({},pt),{},{depth:0,customInspect:!1}))}}])&&it(dt.prototype,ht),Object.defineProperty(dt,"prototype",{writable:!1}),ut}()},function(s,o){},function(s,o,et){(function(tt){var nt;function rt(Ut,Ft,mt){return(Ft=function(vt){var At=function(Lt,Rt){if(typeof Lt!="object"||Lt===null)return Lt;var St=Lt[Symbol.toPrimitive];if(St!==void 0){var Tt=St.call(Lt,Rt||"default");if(typeof Tt!="object")return Tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Rt==="string"?String:Number)(Lt)}(vt,"string");return typeof At=="symbol"?At:String(At)}(Ft))in Ut?Object.defineProperty(Ut,Ft,{value:mt,enumerable:!0,configurable:!0,writable:!0}):Ut[Ft]=mt,Ut}var it=et(48),ot=Symbol("lastResolve"),st=Symbol("lastReject"),at=Symbol("error"),lt=Symbol("ended"),ut=Symbol("lastPromise"),dt=Symbol("handlePromise"),ht=Symbol("stream");function ct(Ut,Ft){return{value:Ut,done:Ft}}function pt(Ut){var Ft=Ut[ot];if(Ft!==null){var mt=Ut[ht].read();mt!==null&&(Ut[ut]=null,Ut[ot]=null,Ut[st]=null,Ft(ct(mt,!1)))}}function ft(Ut){tt.nextTick(pt,Ut)}var gt=Object.getPrototypeOf(function(){}),yt=Object.setPrototypeOf((rt(nt={get stream(){return this[ht]},next:function(){var Ut=this,Ft=this[at];if(Ft!==null)return Promise.reject(Ft);if(this[lt])return Promise.resolve(ct(void 0,!0));if(this[ht].destroyed)return new Promise(function(Lt,Rt){tt.nextTick(function(){Ut[at]?Rt(Ut[at]):Lt(ct(void 0,!0))})});var mt,vt=this[ut];if(vt)mt=new Promise(function(Lt,Rt){return function(St,Tt){Lt.then(function(){Rt[lt]?St(ct(void 0,!0)):Rt[dt](St,Tt)},Tt)}}(vt,this));else{var At=this[ht].read();if(At!==null)return Promise.resolve(ct(At,!1));mt=new Promise(this[dt])}return this[ut]=mt,mt}},Symbol.asyncIterator,function(){return this}),rt(nt,"return",function(){var Ut=this;return new Promise(function(Ft,mt){Ut[ht].destroy(null,function(vt){vt?mt(vt):Ft(ct(void 0,!0))})})}),nt),gt);s.exports=function(Ut){var Ft,mt=Object.create(yt,(rt(Ft={},ht,{value:Ut,writable:!0}),rt(Ft,ot,{value:null,writable:!0}),rt(Ft,st,{value:null,writable:!0}),rt(Ft,at,{value:null,writable:!0}),rt(Ft,lt,{value:Ut._readableState.endEmitted,writable:!0}),rt(Ft,dt,{value:function(vt,At){var Lt=mt[ht].read();Lt?(mt[ut]=null,mt[ot]=null,mt[st]=null,vt(ct(Lt,!1))):(mt[ot]=vt,mt[st]=At)},writable:!0}),Ft));return mt[ut]=null,it(Ut,function(vt){if(vt&&vt.code!=="ERR_STREAM_PREMATURE_CLOSE"){var At=mt[st];return At!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,At(vt)),void(mt[at]=vt)}var Lt=mt[ot];Lt!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,Lt(ct(void 0,!0))),mt[lt]=!0}),Ut.on("readable",ft.bind(null,mt)),mt}}).call(this,et(2))},function(s,o){s.exports=function(){throw new Error("Readable.from is not available in the browser")}},function(s,o,et){s.exports=nt;var tt=et(81);function nt(rt){if(!(this instanceof nt))return new nt(rt);tt.call(this,rt)}et(7)(nt,tt),nt.prototype._transform=function(rt,it,ot){ot(null,rt)}},function(s,o,et){var tt,nt=et(24).codes,rt=nt.ERR_MISSING_ARGS,it=nt.ERR_STREAM_DESTROYED;function ot(dt){if(dt)throw dt}function st(dt,ht,ct,pt){pt=function(yt){var Ut=!1;return function(){Ut||(Ut=!0,yt.apply(void 0,arguments))}}(pt);var ft=!1;dt.on("close",function(){ft=!0}),tt===void 0&&(tt=et(48)),tt(dt,{readable:ht,writable:ct},function(yt){if(yt)return pt(yt);ft=!0,pt()});var gt=!1;return function(yt){if(!ft&&!gt)return gt=!0,function(Ut){return Ut.setHeader&&typeof Ut.abort=="function"}(dt)?dt.abort():typeof dt.destroy=="function"?dt.destroy():void pt(yt||new it("pipe"))}}function at(dt){dt()}function lt(dt,ht){return dt.pipe(ht)}function ut(dt){return dt.length?typeof dt[dt.length-1]!="function"?ot:dt.pop():ot}s.exports=function(){for(var dt=arguments.length,ht=new Array(dt),ct=0;ct0,function(mt){pt||(pt=mt),mt&>.forEach(at),Ft||(gt.forEach(at),ft(pt))})});return ht.reduce(lt)}},function(s,o,et){var tt=et(192)(function nt(rt,it){return(it=it||{}).namespace=rt,it.prod=!0,it.dev=!1,it.force||nt.force?nt.yep(it):nt.nope(it)});s.exports=tt},function(s,o){var et=[],tt=[],nt=function(){};function rt(ct){return!~et.indexOf(ct)&&(et.push(ct),!0)}function it(ct){nt=ct}function ot(ct){for(var pt=[],ft=0;ftst.start)&&(at?at(null,ht):dt.emit("line",ht)),pt++,ht=""),setTimeout(yt,1e3);var mt=ut.write(lt.slice(0,Ft));at||dt.emit("data",mt);for(var vt=(mt=(ht+mt).split(/\n+/)).length-1,At=0;Atst.start)&&(at?at(null,mt[At]):dt.emit("line",mt[At])),pt++;return ht=mt[vt],ct+=Ft,yt()});nt.close(gt,ot)})()}),at?dt.destroy:dt}}).call(this,et(5).Buffer)},function(s,o,et){(function(tt,nt){function rt(Ft){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(mt){return typeof mt}:function(mt){return mt&&typeof Symbol=="function"&&mt.constructor===Symbol&&mt!==Symbol.prototype?"symbol":typeof mt})(Ft)}function it(Ft,mt){var vt=Object.keys(Ft);if(Object.getOwnPropertySymbols){var At=Object.getOwnPropertySymbols(Ft);mt&&(At=At.filter(function(Lt){return Object.getOwnPropertyDescriptor(Ft,Lt).enumerable})),vt.push.apply(vt,At)}return vt}function ot(Ft){for(var mt=1;mt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var vt,At=ct(Ft);if(mt){var Lt=ct(this).constructor;vt=Reflect.construct(At,arguments,Lt)}else vt=At.apply(this,arguments);return ht(this,vt)}}function ht(Ft,mt){if(mt&&(rt(mt)==="object"||typeof mt=="function"))return mt;if(mt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(vt){if(vt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return vt}(Ft)}function ct(Ft){return(ct=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(mt){return mt.__proto__||Object.getPrototypeOf(mt)})(Ft)}var pt=et(82),ft=et(205),gt=et(33).Stream,yt=et(14),Ut=et(29);s.exports=function(Ft){(function(Rt,St){if(typeof St!="function"&&St!==null)throw new TypeError("Super expression must either be null or a function");Rt.prototype=Object.create(St&&St.prototype,{constructor:{value:Rt,writable:!0,configurable:!0}}),Object.defineProperty(Rt,"prototype",{writable:!1}),St&&ut(Rt,St)})(Lt,Ft);var mt,vt,At=dt(Lt);function Lt(){var Rt,St=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return at(this,Lt),(Rt=At.call(this,St)).options=St,Rt.name=St.name||"http",Rt.ssl=!!St.ssl,Rt.host=St.host||"localhost",Rt.port=St.port,Rt.auth=St.auth,Rt.path=St.path||"",Rt.agent=St.agent,Rt.headers=St.headers||{},Rt.headers["content-type"]="application/json",Rt.batch=St.batch||!1,Rt.batchInterval=St.batchInterval||5e3,Rt.batchCount=St.batchCount||10,Rt.batchOptions=[],Rt.batchTimeoutID=-1,Rt.batchCallback={},Rt.port||(Rt.port=Rt.ssl?443:80),Rt}return mt=Lt,(vt=[{key:"log",value:function(Rt,St){var Tt=this;this._request(Rt,function(Bt,xt){xt&&xt.statusCode!==200&&(Bt=new Error("Invalid HTTP Status Code: ".concat(xt.statusCode))),Bt?Tt.emit("warn",Bt):Tt.emit("logged",Rt)}),St&&tt(St)}},{key:"query",value:function(Rt,St){typeof Rt=="function"&&(St=Rt,Rt={}),(Rt={method:"query",params:this.normalizeQuery(Rt)}).params.path&&(Rt.path=Rt.params.path,delete Rt.params.path),Rt.params.auth&&(Rt.auth=Rt.params.auth,delete Rt.params.auth),this._request(Rt,function(Tt,Bt,xt){if(Bt&&Bt.statusCode!==200&&(Tt=new Error("Invalid HTTP Status Code: ".concat(Bt.statusCode))),Tt)return St(Tt);if(typeof xt=="string")try{xt=JSON.parse(xt)}catch(Ct){return St(Ct)}St(null,xt)})}},{key:"stream",value:function(){var Rt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},St=new gt;(Rt={method:"stream",params:Rt}).params.path&&(Rt.path=Rt.params.path,delete Rt.params.path),Rt.params.auth&&(Rt.auth=Rt.params.auth,delete Rt.params.auth);var Tt="",Bt=this._request(Rt);return St.destroy=function(){return Bt.destroy()},Bt.on("data",function(xt){for(var Ct=(xt=(Tt+xt).split(/\n+/)).length-1,kt=0;kt0&&(clearTimeout(this.batchTimeoutID),this.batchTimeoutID=-1);var Bt=this.batchOptions.slice();this.batchOptions=[],this._doRequest(Bt,Rt,St,Tt)}},{key:"_doRequest",value:function(Rt,St,Tt,Bt){var xt=Object.assign({},this.headers);Tt&&Tt.bearer&&(xt.Authorization="Bearer ".concat(Tt.bearer));var Ct=(this.ssl?ft:pt).request(ot(ot({},this.options),{},{method:"POST",host:this.host,port:this.port,path:"/".concat(Bt.replace(/^\//,"")),headers:xt,auth:Tt&&Tt.username&&Tt.password?"".concat(Tt.username,":").concat(Tt.password):"",agent:this.agent}));Ct.on("error",St),Ct.on("response",function(kt){return kt.on("end",function(){return St(null,kt)}).resume()}),Ct.end(nt.from(Ut(Rt,this.options.replacer),"utf8"))}}])&<(mt.prototype,vt),Object.defineProperty(mt,"prototype",{writable:!1}),Lt}(yt)}).call(this,et(19).setImmediate,et(5).Buffer)},function(s,o,et){(function(tt,nt,rt){var it=et(83),ot=et(7),st=et(84),at=et(31),lt=et(196),ut=st.IncomingMessage,dt=st.readyStates,ht=s.exports=function(pt){var ft,gt=this;at.Writable.call(gt),gt._opts=pt,gt._body=[],gt._headers={},pt.auth&>.setHeader("Authorization","Basic "+new tt(pt.auth).toString("base64")),Object.keys(pt.headers).forEach(function(Ut){gt.setHeader(Ut,pt.headers[Ut])});var yt=!0;if(pt.mode==="disable-fetch"||"requestTimeout"in pt&&!it.abortController)yt=!1,ft=!0;else if(pt.mode==="prefer-streaming")ft=!1;else if(pt.mode==="allow-wrong-content-type")ft=!it.overrideMimeType;else{if(pt.mode&&pt.mode!=="default"&&pt.mode!=="prefer-fast")throw new Error("Invalid value for opts.mode");ft=!0}gt._mode=function(Ut,Ft){return it.fetch&&Ft?"fetch":it.mozchunkedarraybuffer?"moz-chunked-arraybuffer":it.msstream?"ms-stream":it.arraybuffer&&Ut?"arraybuffer":it.vbArray&&Ut?"text:vbarray":"text"}(ft,yt),gt._fetchTimer=null,gt.on("finish",function(){gt._onFinish()})};ot(ht,at.Writable),ht.prototype.setHeader=function(pt,ft){var gt=pt.toLowerCase();ct.indexOf(gt)===-1&&(this._headers[gt]={name:pt,value:ft})},ht.prototype.getHeader=function(pt){var ft=this._headers[pt.toLowerCase()];return ft?ft.value:null},ht.prototype.removeHeader=function(pt){delete this._headers[pt.toLowerCase()]},ht.prototype._onFinish=function(){var pt=this;if(!pt._destroyed){var ft=pt._opts,gt=pt._headers,yt=null;ft.method!=="GET"&&ft.method!=="HEAD"&&(yt=it.arraybuffer?lt(tt.concat(pt._body)):it.blobConstructor?new nt.Blob(pt._body.map(function(At){return lt(At)}),{type:(gt["content-type"]||{}).value||""}):tt.concat(pt._body).toString());var Ut=[];if(Object.keys(gt).forEach(function(At){var Lt=gt[At].name,Rt=gt[At].value;Array.isArray(Rt)?Rt.forEach(function(St){Ut.push([Lt,St])}):Ut.push([Lt,Rt])}),pt._mode==="fetch"){var Ft=null;if(it.abortController){var mt=new AbortController;Ft=mt.signal,pt._fetchAbortController=mt,"requestTimeout"in ft&&ft.requestTimeout!==0&&(pt._fetchTimer=nt.setTimeout(function(){pt.emit("requestTimeout"),pt._fetchAbortController&&pt._fetchAbortController.abort()},ft.requestTimeout))}nt.fetch(pt._opts.url,{method:pt._opts.method,headers:Ut,body:yt||void 0,mode:"cors",credentials:ft.withCredentials?"include":"same-origin",signal:Ft}).then(function(At){pt._fetchResponse=At,pt._connect()},function(At){nt.clearTimeout(pt._fetchTimer),pt._destroyed||pt.emit("error",At)})}else{var vt=pt._xhr=new nt.XMLHttpRequest;try{vt.open(pt._opts.method,pt._opts.url,!0)}catch(At){return void rt.nextTick(function(){pt.emit("error",At)})}"responseType"in vt&&(vt.responseType=pt._mode.split(":")[0]),"withCredentials"in vt&&(vt.withCredentials=!!ft.withCredentials),pt._mode==="text"&&"overrideMimeType"in vt&&vt.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in ft&&(vt.timeout=ft.requestTimeout,vt.ontimeout=function(){pt.emit("requestTimeout")}),Ut.forEach(function(At){vt.setRequestHeader(At[0],At[1])}),pt._response=null,vt.onreadystatechange=function(){switch(vt.readyState){case dt.LOADING:case dt.DONE:pt._onXHRProgress()}},pt._mode==="moz-chunked-arraybuffer"&&(vt.onprogress=function(){pt._onXHRProgress()}),vt.onerror=function(){pt._destroyed||pt.emit("error",new Error("XHR error"))};try{vt.send(yt)}catch(At){return void rt.nextTick(function(){pt.emit("error",At)})}}}},ht.prototype._onXHRProgress=function(){(function(pt){try{var ft=pt.status;return ft!==null&&ft!==0}catch{return!1}})(this._xhr)&&!this._destroyed&&(this._response||this._connect(),this._response._onXHRProgress())},ht.prototype._connect=function(){var pt=this;pt._destroyed||(pt._response=new ut(pt._xhr,pt._fetchResponse,pt._mode,pt._fetchTimer),pt._response.on("error",function(ft){pt.emit("error",ft)}),pt.emit("response",pt._response))},ht.prototype._write=function(pt,ft,gt){this._body.push(pt),gt()},ht.prototype.abort=ht.prototype.destroy=function(){this._destroyed=!0,nt.clearTimeout(this._fetchTimer),this._response&&(this._response._destroyed=!0),this._xhr?this._xhr.abort():this._fetchAbortController&&this._fetchAbortController.abort()},ht.prototype.end=function(pt,ft,gt){typeof pt=="function"&&(gt=pt,pt=void 0),at.Writable.prototype.end.call(this,pt,ft,gt)},ht.prototype.flushHeaders=function(){},ht.prototype.setTimeout=function(){},ht.prototype.setNoDelay=function(){},ht.prototype.setSocketKeepAlive=function(){};var ct=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]}).call(this,et(5).Buffer,et(6),et(2))},function(s,o,et){var tt=et(5).Buffer;s.exports=function(nt){if(nt instanceof Uint8Array){if(nt.byteOffset===0&&nt.byteLength===nt.buffer.byteLength)return nt.buffer;if(typeof nt.buffer.slice=="function")return nt.buffer.slice(nt.byteOffset,nt.byteOffset+nt.byteLength)}if(tt.isBuffer(nt)){for(var rt=new Uint8Array(nt.length),it=nt.length,ot=0;ot= 0x80 (not a basic code point)","invalid-input":"Invalid input"},ct=Math.floor,pt=String.fromCharCode;function ft(Rt){throw new RangeError(ht[Rt])}function gt(Rt,St){for(var Tt=Rt.length,Bt=[];Tt--;)Bt[Tt]=St(Rt[Tt]);return Bt}function yt(Rt,St){var Tt=Rt.split("@"),Bt="";return Tt.length>1&&(Bt=Tt[0]+"@",Rt=Tt[1]),Bt+gt((Rt=Rt.replace(dt,".")).split("."),St).join(".")}function Ut(Rt){for(var St,Tt,Bt=[],xt=0,Ct=Rt.length;xt=55296&&St<=56319&&xt65535&&(Tt+=pt((St-=65536)>>>10&1023|55296),St=56320|1023&St),Tt+=pt(St)}).join("")}function mt(Rt,St){return Rt+22+75*(Rt<26)-((St!=0)<<5)}function vt(Rt,St,Tt){var Bt=0;for(Rt=Tt?ct(Rt/700):Rt>>1,Rt+=ct(Rt/St);Rt>455;Bt+=36)Rt=ct(Rt/35);return ct(Bt+36*Rt/(Rt+38))}function At(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt,Et,Pt=[],zt=Rt.length,en=0,Kt=128,nn=72;for((Tt=Rt.lastIndexOf("-"))<0&&(Tt=0),Bt=0;Bt=128&&ft("not-basic"),Pt.push(Rt.charCodeAt(Bt));for(xt=Tt>0?Tt+1:0;xt=zt&&ft("invalid-input"),((Ot=(Et=Rt.charCodeAt(xt++))-48<10?Et-22:Et-65<26?Et-65:Et-97<26?Et-97:36)>=36||Ot>ct((at-en)/kt))&&ft("overflow"),en+=Ot*kt,!(Ot<(Jt=Nt<=nn?1:Nt>=nn+26?26:Nt-nn));Nt+=36)kt>ct(at/(Dt=36-Jt))&&ft("overflow"),kt*=Dt;nn=vt(en-Ct,St=Pt.length+1,Ct==0),ct(en/St)>at-Kt&&ft("overflow"),Kt+=ct(en/St),en%=St,Pt.splice(en++,0,Kt)}return Ft(Pt)}function Lt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt,Et,Pt,zt,en,Kt,nn=[];for(Pt=(Rt=Ut(Rt)).length,St=128,Tt=0,Ct=72,kt=0;kt=St&&Etct((at-Tt)/(zt=Bt+1))&&ft("overflow"),Tt+=(Nt-St)*zt,St=Nt,kt=0;ktat&&ft("overflow"),Et==St){for(Ot=Tt,Jt=36;!(Ot<(Dt=Jt<=Ct?1:Jt>=Ct+26?26:Jt-Ct));Jt+=36)Kt=Ot-Dt,en=36-Dt,nn.push(pt(mt(Dt+Kt%en,0))),Ot=ct(Kt/en);nn.push(pt(mt(Ot,0))),Ct=vt(Tt,zt,Bt==xt),Tt=0,++Bt}++Tt,++St}return nn.join("")}st={version:"1.4.1",ucs2:{decode:Ut,encode:Ft},decode:At,encode:Lt,toASCII:function(Rt){return yt(Rt,function(St){return ut.test(St)?"xn--"+Lt(St):St})},toUnicode:function(Rt){return yt(Rt,function(St){return lt.test(St)?At(St.slice(4).toLowerCase()):St})}},(rt=function(){return st}.call(o,et,o,tt))===void 0||(tt.exports=rt)})()}).call(this,et(200)(s),et(6))},function(s,o){s.exports=function(et){return et.webpackPolyfill||(et.deprecate=function(){},et.paths=[],et.children||(et.children=[]),Object.defineProperty(et,"loaded",{enumerable:!0,get:function(){return et.l}}),Object.defineProperty(et,"id",{enumerable:!0,get:function(){return et.i}}),et.webpackPolyfill=1),et}},function(s,o,et){s.exports={isString:function(tt){return typeof tt=="string"},isObject:function(tt){return typeof tt=="object"&&tt!==null},isNull:function(tt){return tt===null},isNullOrUndefined:function(tt){return tt==null}}},function(s,o,et){o.decode=o.parse=et(203),o.encode=o.stringify=et(204)},function(s,o,et){function tt(rt,it){return Object.prototype.hasOwnProperty.call(rt,it)}s.exports=function(rt,it,ot,st){it=it||"&",ot=ot||"=";var at={};if(typeof rt!="string"||rt.length===0)return at;var lt=/\+/g;rt=rt.split(it);var ut=1e3;st&&typeof st.maxKeys=="number"&&(ut=st.maxKeys);var dt=rt.length;ut>0&&dt>ut&&(dt=ut);for(var ht=0;ht=0?(ct=yt.substr(0,Ut),pt=yt.substr(Ut+1)):(ct=yt,pt=""),ft=decodeURIComponent(ct),gt=decodeURIComponent(pt),tt(at,ft)?nt(at[ft])?at[ft].push(gt):at[ft]=[at[ft],gt]:at[ft]=gt}return at};var nt=Array.isArray||function(rt){return Object.prototype.toString.call(rt)==="[object Array]"}},function(s,o,et){var tt=function(ot){switch(typeof ot){case"string":return ot;case"boolean":return ot?"true":"false";case"number":return isFinite(ot)?ot:"";default:return""}};s.exports=function(ot,st,at,lt){return st=st||"&",at=at||"=",ot===null&&(ot=void 0),typeof ot=="object"?rt(it(ot),function(ut){var dt=encodeURIComponent(tt(ut))+at;return nt(ot[ut])?rt(ot[ut],function(ht){return dt+encodeURIComponent(tt(ht))}).join(st):dt+encodeURIComponent(tt(ot[ut]))}).join(st):lt?encodeURIComponent(tt(lt))+at+encodeURIComponent(tt(ot)):""};var nt=Array.isArray||function(ot){return Object.prototype.toString.call(ot)==="[object Array]"};function rt(ot,st){if(ot.map)return ot.map(st);for(var at=[],lt=0;lt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var gt,yt=lt(pt);if(ft){var Ut=lt(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return at(this,gt)}}function at(pt,ft){if(ft&&(nt(ft)==="object"||typeof ft=="function"))return ft;if(ft!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(gt){if(gt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return gt}(pt)}function lt(pt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(ft){return ft.__proto__||Object.getPrototypeOf(ft)})(pt)}var ut=et(86),dt=et(4).MESSAGE,ht=et(16),ct=et(14);s.exports=function(pt){(function(Ft,mt){if(typeof mt!="function"&&mt!==null)throw new TypeError("Super expression must either be null or a function");Ft.prototype=Object.create(mt&&mt.prototype,{constructor:{value:Ft,writable:!0,configurable:!0}}),Object.defineProperty(Ft,"prototype",{writable:!1}),mt&&ot(Ft,mt)})(Ut,pt);var ft,gt,yt=st(Ut);function Ut(){var Ft,mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(rt(this,Ut),Ft=yt.call(this,mt),!mt.stream||!ut(mt.stream))throw new Error("options.stream is required.");return Ft._stream=mt.stream,Ft._stream.setMaxListeners(1/0),Ft.isObjectMode=mt.stream._writableState.objectMode,Ft.eol=typeof mt.eol=="string"?mt.eol:ht.EOL,Ft}return ft=Ut,(gt=[{key:"log",value:function(Ft,mt){var vt=this;if(tt(function(){return vt.emit("logged",Ft)}),this.isObjectMode)return this._stream.write(Ft),void(mt&&mt());this._stream.write("".concat(Ft[dt]).concat(this.eol)),mt&&mt()}}])&&it(ft.prototype,gt),Object.defineProperty(ft,"prototype",{writable:!1}),Ut}(ct)}).call(this,et(19).setImmediate)},function(s,o,et){(function(tt){function nt(Bt,xt,Ct){return xt in Bt?Object.defineProperty(Bt,xt,{value:Ct,enumerable:!0,configurable:!0,writable:!0}):Bt[xt]=Ct,Bt}function rt(Bt){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(xt){return typeof xt}:function(xt){return xt&&typeof Symbol=="function"&&xt.constructor===Symbol&&xt!==Symbol.prototype?"symbol":typeof xt})(Bt)}function it(Bt,xt){for(var Ct=0;Ct"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var Ct,kt=lt(Bt);if(xt){var Nt=lt(this).constructor;Ct=Reflect.construct(kt,arguments,Nt)}else Ct=kt.apply(this,arguments);return at(this,Ct)}}function at(Bt,xt){if(xt&&(rt(xt)==="object"||typeof xt=="function"))return xt;if(xt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(Ct){if(Ct===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ct}(Bt)}function lt(Bt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(xt){return xt.__proto__||Object.getPrototypeOf(xt)})(Bt)}var ut=et(33),dt=ut.Stream,ht=ut.Transform,ct=et(50),pt=et(4),ft=pt.LEVEL,gt=pt.SPLAT,yt=et(86),Ut=et(88),Ft=et(92),mt=et(211),vt=et(212),At=et(60).warn,Lt=et(49),Rt=/%[scdjifoO%]/g,St=function(Bt){(function(Ot,Jt){if(typeof Jt!="function"&&Jt!==null)throw new TypeError("Super expression must either be null or a function");Ot.prototype=Object.create(Jt&&Jt.prototype,{constructor:{value:Ot,writable:!0,configurable:!0}}),Object.defineProperty(Ot,"prototype",{writable:!1}),Jt&&ot(Ot,Jt)})(Nt,Bt);var xt,Ct,kt=st(Nt);function Nt(Ot){var Jt;return function(Dt,Et){if(!(Dt instanceof Et))throw new TypeError("Cannot call a class as a function")}(this,Nt),(Jt=kt.call(this,{objectMode:!0})).configure(Ot),Jt}return xt=Nt,(Ct=[{key:"child",value:function(Ot){var Jt=this;return Object.create(Jt,{write:{value:function(Dt){var Et=Object.assign({},Ot,Dt);Dt instanceof Error&&(Et.stack=Dt.stack,Et.message=Dt.message),Jt.write(Et)}}})}},{key:"configure",value:function(){var Ot=this,Jt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Dt=Jt.silent,Et=Jt.format,Pt=Jt.defaultMeta,zt=Jt.levels,en=Jt.level,Kt=en===void 0?"info":en,nn=Jt.exitOnError,Zt=nn===void 0||nn,jt=Jt.transports,Vt=Jt.colors,It=Jt.emitErrs,$t=Jt.formatters,Ht=Jt.padLevels,qt=Jt.rewriters,on=Jt.stripColors,Xt=Jt.exceptionHandlers,dn=Jt.rejectionHandlers;if(this.transports.length&&this.clear(),this.silent=Dt,this.format=Et||this.format||et(213)(),this.defaultMeta=Pt||null,this.levels=zt||this.levels||Lt.npm.levels,this.level=Kt,this.exceptions&&this.exceptions.unhandle(),this.rejections&&this.rejections.unhandle(),this.exceptions=new Ut(this),this.rejections=new Ft(this),this.profilers={},this.exitOnError=Zt,jt&&(jt=Array.isArray(jt)?jt:[jt]).forEach(function(_n){return Ot.add(_n)}),Vt||It||$t||Ht||qt||on)throw new Error(["{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.","Use a custom winston.format(function) instead.","See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md"].join(` +`));Xt&&this.exceptions.handle(Xt),dn&&this.rejections.handle(dn)}},{key:"isLevelEnabled",value:function(Ot){var Jt=this,Dt=Tt(this.levels,Ot);if(Dt===null)return!1;var Et=Tt(this.levels,this.level);return Et!==null&&(this.transports&&this.transports.length!==0?this.transports.findIndex(function(Pt){var zt=Tt(Jt.levels,Pt.level);return zt===null&&(zt=Et),zt>=Dt})!==-1:Et>=Dt)}},{key:"log",value:function(Ot,Jt){for(var Dt,Et,Pt=arguments.length,zt=new Array(Pt>2?Pt-2:0),en=2;en2?new mt({transport:Ot}):Ot;if(!Jt._writableState||!Jt._writableState.objectMode)throw new Error("Transports must WritableStreams in objectMode. Set { objectMode: true }.");return this._onEvent("error",Jt),this._onEvent("warn",Jt),this.pipe(Jt),Ot.handleExceptions&&this.exceptions.handle(),Ot.handleRejections&&this.rejections.handle(),this}},{key:"remove",value:function(Ot){if(!Ot)return this;var Jt=Ot;return(!yt(Ot)||Ot.log.length>2)&&(Jt=this.transports.filter(function(Dt){return Dt.transport===Ot})[0]),Jt&&this.unpipe(Jt),this}},{key:"clear",value:function(){return this.unpipe(),this}},{key:"close",value:function(){return this.exceptions.unhandle(),this.rejections.unhandle(),this.clear(),this.emit("close"),this}},{key:"setLevels",value:function(){At.deprecated("setLevels")}},{key:"query",value:function(Ot,Jt){typeof Ot=="function"&&(Jt=Ot,Ot={}),Ot=Ot||{};var Dt={},Et=Object.assign({},Ot.query||{});ct(this.transports.filter(function(Pt){return!!Pt.query}),function(Pt,zt){(function(en,Kt){Ot.query&&typeof en.formatQuery=="function"&&(Ot.query=en.formatQuery(Et)),en.query(Ot,function(nn,Zt){if(nn)return Kt(nn);typeof en.formatResults=="function"&&(Zt=en.formatResults(Zt,Ot.format)),Kt(null,Zt)})})(Pt,function(en,Kt){zt&&((Kt=en||Kt)&&(Dt[Pt.name]=Kt),zt()),zt=null})},function(){return Jt(null,Dt)})}},{key:"stream",value:function(){var Ot=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Jt=new dt,Dt=[];return Jt._streams=Dt,Jt.destroy=function(){for(var Et=Dt.length;Et--;)Dt[Et].destroy()},this.transports.filter(function(Et){return!!Et.stream}).forEach(function(Et){var Pt=Et.stream(Ot);Pt&&(Dt.push(Pt),Pt.on("log",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Jt.emit("log",zt)}),Pt.on("error",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Jt.emit("error",zt)}))}),Jt}},{key:"startTimer",value:function(){return new vt(this)}},{key:"profile",value:function(Ot){var Jt=Date.now();if(this.profilers[Ot]){var Dt=this.profilers[Ot];delete this.profilers[Ot];for(var Et=arguments.length,Pt=new Array(Et>1?Et-1:0),zt=1;zttt(nt,it)},s.exports=o.default},function(s,o,et){var tt=Object.prototype.toString;s.exports=function(nt){if(typeof nt.displayName=="string"&&nt.constructor.name)return nt.displayName;if(typeof nt.name=="string"&&nt.name)return nt.name;if(typeof nt=="object"&&nt.constructor&&typeof nt.constructor.name=="string")return nt.constructor.name;var rt=nt.toString(),it=tt.call(nt).slice(8,-1);return(rt=it==="Function"?rt.substring(rt.indexOf("(")+1,rt.indexOf(")")):it)||"anonymous"}},function(s,o,et){const tt=et(13),{LEVEL:nt}=et(4),rt=et(14),it=s.exports=function(ot={}){if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=function(st){this.emit("error",st,this.transport)}.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(let at=0;at{const at=rt.configure(st);return ot[nt]=at(ot,st.replacer||it,st.space),ot})},function(s,o,et){class tt extends Error{constructor(rt){super(`Format functions must be synchronous taking a two arguments: (info, opts) Found: ${rt.toString().split(` `)[0]} -`),Error.captureStackTrace(this,tt)}}s.exports=nt=>{if(nt.length>2)throw new tt(nt);function rt(ot={}){this.options=ot}function it(ot){return new rt(ot)}return rt.prototype.transform=nt,it.Format=rt,it}},function(s,o,et){function tt(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")}function nt(it,ot){for(var st=0;st0&&arguments[0]!==void 0?arguments[0]:{};tt(this,it),this.loggers=new Map,this.options=at}var ot,st;return ot=it,(st=[{key:"add",value:function(at,lt){var ut=this;if(!this.loggers.has(at)){var dt=(lt=Object.assign({},lt||this.options)).transports||this.options.transports;lt.transports=dt?dt.slice():[];var ht=rt(lt);ht.on("close",function(){return ut._delete(at)}),this.loggers.set(at,ht)}return this.loggers.get(at)}},{key:"get",value:function(at,lt){return this.add(at,lt)}},{key:"has",value:function(at){return!!this.loggers.has(at)}},{key:"close",value:function(at){var lt=this;if(at)return this._removeLogger(at);this.loggers.forEach(function(ut,dt){return lt._removeLogger(dt)})}},{key:"_removeLogger",value:function(at){this.loggers.has(at)&&(this.loggers.get(at).close(),this._delete(at))}},{key:"_delete",value:function(at){this.loggers.delete(at)}}])&&nt(ot.prototype,st),Object.defineProperty(ot,"prototype",{writable:!1}),it}()},function(s,o,et){(function(tt){const nt=et(51),rt=/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/;s.exports=function(it,ot,st,at){let lt,ut,dt=!1,ht=!1;const ct=et(93);function pt(yt){at(ot,yt)}function ft(yt,Ut){let Ft=`"${ot}" ${Ut}`;throw yt&&(Ft=""+Ft),ut&&(Ft=`${Ft}. An example of a valid value would be: ${ut}`),new nt(Ft)}const gt={convertFromBase64:function(){return pt("marking for base64 conversion"),dt=!0,gt},default:function(yt){if(typeof yt=="number")lt=yt.toString();else if(Array.isArray(yt)||typeof yt=="object"&&yt!==null)lt=JSON.stringify(yt);else{if(typeof yt!="string")throw new nt("values passed to default() must be of Number, String, Array, or Object type");lt=yt}return pt(`setting default value to "${lt}"`),gt},required:function(yt){return yt===void 0?(pt("marked as required"),ht=!0):(pt("setting required flag to "+yt),ht=yt),gt},example:function(yt){return ut=yt,gt}};return Object.entries({...ct,...st}).forEach(([yt,Ut])=>{gt[yt]=function(Ft){return function(){let mt=it[ot];if(pt(`will be read from the environment using "${Ft.name}" accessor`),mt===void 0)if(lt===void 0&&ht)pt("was not found in the environment, but is required to be set"),ft(void 0,"is a required variable, but it was not set");else{if(lt===void 0)return void pt("was not found in the environment, but is not required. returning undefined");pt(`was not found in the environment, parsing default value "${lt}" instead`),mt=lt}ht&&(pt("verifying variable value is not an empty string"),mt.trim().length===0&&ft(void 0,"is a required variable, but its value was empty")),dt&&(pt("verifying variable is a valid base64 string"),mt.match(rt)||ft(mt,"should be a valid base64 string if using convertFromBase64"),pt("converting from base64 to utf8 string"),mt=tt.from(mt,"base64").toString());const vt=[mt].concat(Array.prototype.slice.call(arguments));try{pt(`passing value "${mt}" to "${Ft.name}" accessor`);const At=Ft.apply(Ft,vt);return pt("parsed successfully, returning "+At),At}catch(At){ft(mt,At.message)}}}(Ut)}),gt}}).call(this,et(5).Buffer)},function(s,o,et){const tt=et(34);s.exports=function(nt,rt){return rt=rt||",",nt.length?tt(nt).split(rt).filter(Boolean):[]}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(nt!=="false"&&nt!=="true")throw new Error('should be either "true", "false", "TRUE", or "FALSE"');return nt!=="false"}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(["false","0","true","1"].indexOf(nt)===-1)throw new Error('should be either "true", "false", "TRUE", "FALSE", 1, or 0');return!(nt==="0"||nt==="false")}},function(s,o,et){const tt=et(94);s.exports=function(nt){var rt=tt(nt);if(rt>65535)throw new Error("cannot assign a port number greater than 65535");return rt}},function(s,o,et){const tt=et(34);s.exports=function(nt,rt){const it=tt(nt);if(rt.indexOf(it)<0)throw new Error(`should be one of [${rt.join(", ")}]`);return it}},function(s,o,et){const tt=et(53);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative float");return rt}},function(s,o,et){const tt=et(53);s.exports=function(nt){const rt=tt(nt);if(rt<0)throw new Error("should be a positive float");return rt}},function(s,o,et){const tt=et(52);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative integer");return rt}},function(s,o,et){const tt=et(54);s.exports=function(nt){var rt=tt(nt);if(!Array.isArray(rt))throw new Error("should be a parseable JSON Array");return rt}},function(s,o,et){const tt=et(54);s.exports=function(nt){var rt=tt(nt);if(Array.isArray(rt))throw new Error("should be a parseable JSON Object");return rt}},function(s,o,et){s.exports=function(tt,nt){try{RegExp(void 0,nt)}catch{throw new Error("invalid regexp flags")}try{return new RegExp(tt,nt)}catch{throw new Error("should be a valid regexp")}}},function(s,o,et){const tt=et(95);s.exports=function(nt){return tt(nt).toString()}},function(s,o,et){const tt=et(34),nt=/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021\u0023-\u005b\u005d-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021-\u005a\u0053-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])+)\])$/;s.exports=function(rt){const it=tt(rt);if(!nt.test(it))throw new Error("should be a valid email address");return it}},function(s,o,et){s.exports=function(tt,nt){return function(rt,it){nt&&nt.match(/prod|production/)||tt(`env-var (${rt}): ${it}`)}}},function(s,o,et){(function(tt){(function(){var nt,rt,it,ot,st,at;typeof performance<"u"&&performance!==null&&performance.now?s.exports=function(){return performance.now()}:tt!=null&&tt.hrtime?(s.exports=function(){return(nt()-st)/1e6},rt=tt.hrtime,ot=(nt=function(){var lt;return 1e9*(lt=rt())[0]+lt[1]})(),at=1e9*tt.uptime(),st=ot-at):Date.now?(s.exports=function(){return Date.now()-it},it=Date.now()):(s.exports=function(){return new Date().getTime()-it},it=new Date().getTime())}).call(this)}).call(this,et(2))},function(s,o,et){(function(tt){(function(nt){function rt(ot){if((ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextEncoder': The encoding label provided ('"+ot+"') is invalid.")}function it(ot,st){if(st=st===void 0?{fatal:!1}:st,(ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextDecoder': The encoding label provided ('"+ot+"') is invalid.");if(st.fatal)throw Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.")}if(nt.TextEncoder&&nt.TextDecoder)return!1;Object.defineProperty(rt.prototype,"encoding",{value:"utf-8"}),rt.prototype.encode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to encode: the 'stream' option is unsupported.");st=0;for(var at=ot.length,lt=0,ut=Math.max(32,at+(at>>1)+7),dt=new Uint8Array(ut>>3<<3);st=ht){if(st=ht)continue}if(lt+4>dt.length&&(ut+=8,ut=(ut*=1+st/ot.length*2)>>3<<3,(ct=new Uint8Array(ut)).set(dt),dt=ct),(4294967168&ht)==0)dt[lt++]=ht;else{if(!(4294965248&ht))dt[lt++]=ht>>6&31|192;else if(!(4294901760&ht))dt[lt++]=ht>>12&15|224,dt[lt++]=ht>>6&63|128;else{if(4292870144&ht)continue;dt[lt++]=ht>>18&7|240,dt[lt++]=ht>>12&63|128,dt[lt++]=ht>>6&63|128}dt[lt++]=63&ht|128}}return dt.slice(0,lt)},Object.defineProperty(it.prototype,"encoding",{value:"utf-8"}),Object.defineProperty(it.prototype,"fatal",{value:!1}),Object.defineProperty(it.prototype,"ignoreBOM",{value:!1}),it.prototype.decode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to decode: the 'stream' option is unsupported.");st=0;for(var at=(ot=new Uint8Array(ot)).length,lt=[];st>>10&1023|55296),ut=56320|1023&ut),lt.push(ut))}return String.fromCharCode.apply(null,lt)},nt.TextEncoder=rt,nt.TextDecoder=it})(typeof window<"u"?window:tt!==void 0?tt:this)}).call(this,et(6))},function(s,o,et){et.r(o),et.d(o,"AuthClient",function(){return rt}),et.d(o,"RtcSignalingClient",function(){return ot}),et.d(o,"Credentials",function(){return kt}),et.d(o,"SignalingPromiseClient",function(){return Nt.SignalingPromiseClient}),et.d(o,"RtcClient",function(){return un}),et.d(o,"RtcClientV1",function(){return ar}),et.d(o,"createRtcStreamMessage",function(){return Qr});var tt=et(26),nt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class rt extends tt.a{adminSignup(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/admin-signup",{token:mn,method:"POST",body:cn})})}login(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login",{method:"POST",body:cn,allowUnsafeRetries:!0})})}loginWithGoogleToken(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login-google",{method:"POST",body:cn,allowUnsafeRetries:!0})})}refresh(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/refresh",{method:"POST",body:{refreshToken:cn,tokenExpirationSeconds:mn},allowUnsafeRetries:!0})})}respondToNewPasswordRequiredChallenge(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/respond-to-new-password-required-challenge",{method:"POST",body:cn})})}forgotPassword(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/forgot-password",{method:"POST",body:{email:cn}})})}confirmForgotPassword(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/confirm-forgot-password",{method:"POST",body:cn})})}resendInvitation(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/resend-invitation",{method:"POST",body:{email:cn}})})}changePassword({token:cn,refreshToken:mn,currentPassword:xn,newPassword:Gn}){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/change-password",{token:cn,method:"POST",body:{refreshToken:mn,currentPassword:xn,newPassword:Gn}})})}getDeviceCredentials(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/device-credentials",{token:cn,method:"POST",allowUnsafeRetries:!0})})}impersonate(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/impersonate",{token:cn,method:"POST",allowUnsafeRetries:!0,body:{userId:mn}})})}createServiceAccount(cn,mn,xn,Gn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/service-account",{token:cn,method:"POST",allowUnsafeRetries:!0,body:{name:mn,roleId:xn,tags:Gn}})})}getFeatures(cn){return nt(this,void 0,void 0,function*(){return(yield this.fetch("auth/features",{token:cn})).features})}checkSso(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/check-sso",{method:"POST",body:{email:cn,allowUserAutoCreation:mn}})})}loginWithSso(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login-sso",{method:"POST",body:{token:cn,refreshToken:mn}})})}}var it=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class ot extends tt.a{createPeer(cn,mn){return it(this,void 0,void 0,function*(){return yield this.fetch("peers",{token:cn,method:"POST",body:mn})})}getPeers(cn){return it(this,void 0,void 0,function*(){return(yield this.fetch("peers",{token:cn})).items})}refreshPeer(cn,mn){return it(this,void 0,void 0,function*(){yield this.fetch(`peers/${mn}/refresh`,{token:cn,method:"POST",allowUnsafeRetries:!0})})}createSession(cn,mn){return it(this,void 0,void 0,function*(){return yield this.fetch("sessions",{token:cn,method:"POST",body:mn})})}refreshSession(cn,mn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${mn}/refresh`,{token:cn,method:"POST",allowUnsafeRetries:!0})})}deleteSession(cn,mn){return it(this,void 0,void 0,function*(){yield this.fetch("sessions/"+mn,{token:cn,method:"DELETE",allowUnsafeRetries:!0})})}getSessions(cn){return it(this,void 0,void 0,function*(){return(yield this.fetch("sessions",{token:cn})).items})}getIceServers(cn){return it(this,void 0,void 0,function*(){return(yield this.fetch("ice-servers",{token:cn})).items})}addSignals(cn,mn,xn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${mn}/add-signals`,{token:cn,method:"POST",body:xn})})}takeSignals(cn,mn){return it(this,void 0,void 0,function*(){return(yield this.fetch(`sessions/${mn}/take-signals`,{token:cn,method:"POST"})).items})}}var st=et(1),at=et(9),lt=et(15),ut=et.n(lt),dt=et(101),ht=et.n(dt),ct=et(3),pt=et(0),ft=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class gt extends class{constructor(cn,mn){this.type=cn,this.name=mn}}{constructor(cn){super("simple","LogReporter"),this.message=cn}send(cn){return ft(this,void 0,void 0,function*(){var mn,xn;pt.a.debug(this.message,(mn=cn.reduce((Gn,er)=>Object.assign(Object.assign({},Gn),{[er.name]:er.stat}),{}),xn=Gn=>{const{sum:er,count:cr}=Gn,gr=er/cr;return Object.assign(Object.assign({},Gn),{average:gr})},Object.keys(mn).reduce((Gn,er)=>Object.assign(Object.assign({},Gn),{[er]:xn(mn[er])}),{})))})}}const yt=/^[a-zA-Z0-9-_.,:?'"()@\/\\#$+ ]{1,255}$/,Ut=/^[*a-zA-Z0-9-_.,:?'"()@\/\\#$+ ]{1,255}$/;function Ft(hr,cn=!1){return!!(hr!=null&&hr.match(cn?Ut:yt))}var mt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};function vt({func:hr,delay:cn,immediate:mn=!1}){let xn=!1,Gn=setTimeout(function cr(){return mt(this,void 0,void 0,function*(){if(xn)return;const gr=new Date().getTime();try{er=hr(),yield er}finally{if(!xn){const br=new Date().getTime();Gn=setTimeout(cr,Math.max(cn-(br-gr),0))}}})},mn?0:cn),er=Promise.resolve();return{stop(){return mt(this,void 0,void 0,function*(){xn=!0,clearTimeout(Gn),yield er})}}}var At=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};const Lt=et(231);class Rt{constructor(cn){this.buffer={},this.reporters=[],this.flushInterval=vt({func:()=>this.flushStats(),delay:Rt.samplePeriodMs}),this.tags=this.filterTags(cn?.tags||{app:ct.a,version:ct.k,namespace:ct.j})}shutdown(){return At(this,void 0,void 0,function*(){yield this.flushInterval.stop(),yield this.flushStats(),yield Object(at.a)(2*st.a.second)})}aggregate(cn,mn,xn){this.addToBuffer(this.buffer,this.encodeKey({metric:cn,tags:this.filterTags(xn||{})}),typeof mn=="number"?{min:mn,max:mn,sum:mn,count:1}:mn)}increment(cn,mn){this.aggregate(cn,1,mn)}timer(cn,mn,xn){return At(this,void 0,void 0,function*(){const Gn=Lt(),er=yield mn(),cr=Lt();return this.aggregate(cn,cr-Gn,xn),er})}registerStatsReporter(cn){this.reporters.push(cn)}setTag(cn,mn){const xn=this.filterTags({[cn]:mn});this.tags=Object.assign(Object.assign({},this.tags),xn)}addToBuffer(cn,mn,xn){if(cn[mn]){const{min:Gn,max:er,sum:cr,count:gr}=cn[mn];cn[mn]={min:Math.min(Gn,xn.min),max:Math.max(er,xn.max),sum:cr+xn.sum,count:gr+xn.count}}else cn[mn]=xn}write(cn){return At(this,void 0,void 0,function*(){yield Promise.all(this.reporters.map(mn=>At(this,void 0,void 0,function*(){let xn;const Gn={};switch(mn.type){case"simple":for(const[cr,gr]of Object.entries(cn)){const{metric:br}=this.decodeKey(cr);this.addToBuffer(Gn,this.encodeKey({metric:br}),gr)}xn=Gn;break;case"tagged":xn=cn;break;default:(function(cr){throw new Error(`Unreachable type encountered (${cr})`)})(mn.type)}const er=Object.entries(xn);if(er.length>0)return mn.send(er.map(([cr,gr])=>{const{metric:br,tags:ur}=this.decodeKey(cr);return{name:br,tags:Object.assign(Object.assign({},ur),this.tags),stat:gr}}),Rt.samplePeriodMs).catch(cr=>{pt.a.debug("Failed to write stats to "+mn.name,{error:cr})})})))})}flushStats(){return At(this,void 0,void 0,function*(){yield this.write(this.buffer),this.buffer={}})}encodeKey(cn){return ut()(Object.assign(Object.assign({},cn),Object.keys(cn.tags||{}).length>0?{tags:cn.tags}:{}))}decodeKey(cn){return JSON.parse(cn)}filterTags(cn){return Object.entries(cn||{}).reduce((mn,[xn,Gn])=>(Ft(xn)&&Ft(Gn)&&(mn[xn]=Gn),mn),{})}}Rt.samplePeriodMs=5*st.a.minute;const St=!!ct.d,Tt=new Rt;St||["local","on-prem"].includes(ct.j)||Tt.registerStatsReporter(new gt("stats"));var Bt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class xt extends class{constructor(cn){this.options=cn,this.cache=new ht.a(Object.assign(Object.assign(Object.assign({},cn.dispose||cn.disposeAfter?{ttlAutopurge:!0}:{}),cn),{dispose:(...mn)=>{var xn;mn[2]==="evict"&&Tt.increment("lru-eviction",{name:cn.name}),(xn=cn.dispose)===null||xn===void 0||xn.call(cn,...mn)},disposeAfter:(...mn)=>{var xn;this.updateStats(),(xn=cn.disposeAfter)===null||xn===void 0||xn.call(cn,...mn)}})),this.stringify=cn.fastStringify?JSON.stringify:ut.a}set(cn,mn,xn){const Gn=this.stringify(cn);if(!this.cache.set(Gn,mn,{ttl:xn})){const er=this.cache.sizeCalculation?this.cache.sizeCalculation(mn,Gn):"unknown";throw Error(`Value too large (${er} > ${this.cache.max})`)}this.updateStats()}get(cn){const{name:mn}=this.options,xn=this.stringify(cn),Gn=this.cache.getRemainingTTL(xn);return Gn<=0?Tt.increment("cache-miss",{name:mn}):Gn!==1/0&&Tt.aggregate("cache-item-ttl",Gn,{name:mn}),this.cache.get(xn)}delete(cn){this.cache.delete(this.stringify(cn))}peek(cn){return this.cache.peek(this.stringify(cn))}size(){return this.cache.size}clear(){this.cache.clear()}forEach(cn){this.cache.forEach(cn)}purgeStale(){return this.cache.purgeStale()}updateStats(){const{name:cn}=this.options;Tt.aggregate("cache-item-count",this.cache.size,{name:cn}),this.cache.calculatedSize!==void 0&&Tt.aggregate("cache-length",this.cache.calculatedSize,{name:cn})}}{constructor(cn){if(super(cn),this.expireRejectedPromiseValues=cn.expireRejectedPromiseValues===void 0||cn.expireRejectedPromiseValues,this.rejectedPromiseValueTtl=cn.rejectedPromiseValueTtl!==void 0?cn.rejectedPromiseValueTtl:st.a.second,this.rejectedPromiseValueTtl<0)throw new Error("rejectedPromiseValueTtl must not be negative")}set(cn,mn,xn){super.set(cn,mn,xn),this.expireRejectedPromiseValues&&mn.catch(()=>Bt(this,void 0,void 0,function*(){yield Object(at.a)(this.rejectedPromiseValueTtl),this.peek(cn)===mn&&this.delete(cn)}))}}var Ct=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class kt{constructor(cn,mn,xn){this.authClient=cn,this.email=mn,this.password=xn,this.tokenTtlMs=1*st.a.hour,this.tokenCache=new xt({name:"Credentials-tokenCache",max:100,ttl:this.tokenTtlMs-5*st.a.minute,fastStringify:!0})}getToken(){return Ct(this,void 0,void 0,function*(){let cn=this.tokenCache.get(this.email);return cn||(cn=(()=>Ct(this,void 0,void 0,function*(){const{authentication:mn}=yield this.authClient.login({email:this.email,password:this.password,tokenExpirationSeconds:this.tokenTtlMs/st.a.second});if(!mn)throw new Error("User account not verified.");return mn.accessToken}))(),this.tokenCache.set(this.email,cn)),cn})}}var Nt=et(96),Ot=et(17),Wt=et(236),Dt=et(41),Et=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class Pt extends Dt.a{constructor(cn){super(cn)}postLanRtcOffer(cn){return Et(this,void 0,void 0,function*(){return yield this.fetch("v1/lan-rtc-offer",{method:"POST",body:cn})})}}var zt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};function en(hr){return zt(this,void 0,void 0,function*(){return(yield Promise.all(hr.map(cn=>cn.catch(mn=>mn)))).filter(cn=>cn instanceof Error)})}function Kt(hr,cn){if(hr===void 0)throw new Error("Value is undefined"+(cn?": "+cn:""))}function nn(hr,cn){if(hr===null)throw new Error("Value is null"+(cn?": "+cn:""))}function Zt(hr){return Kt(hr),hr}function jt(hr,cn){const mn=hr.reduce((xn,Gn)=>[...xn,...Gn.urls],[]).filter(xn=>Vt(xn,cn)).sort(xn=>It(xn,"udp")?-1:0).shift();if(mn)return Object.assign(Object.assign({},Zt(hr.find(xn=>xn.urls.includes(mn)))),{urls:[mn]})}function Vt(hr,cn){switch(cn){case"stun":return/^stuns?:/.test(hr);case"turn":return/^turns?:/.test(hr)}}function It(hr,cn){return hr.endsWith("transport="+cn)}var $t=et(10);class Ht extends Error{constructor(cn,mn){super(`Deadline expired after ${cn}ms + ${mn}ms`)}}class qt{static withDeadline(cn,mn){const xn=new Promise((Gn,er)=>{setTimeout(()=>{er(new Ht(mn,this.grpcCallDeadlineSlopMs))},mn+this.grpcCallDeadlineSlopMs)});return Promise.race([cn,xn])}}qt.grpcCallDeadlineSlopMs=500*st.a.millisecond;var on=et(27);const Xt={ordered:!1,maxPacketLifeTime:300*st.a.millisecond},dn={ordered:!0},_n={ordered:!0},Fn={ordered:!1,maxRetransmits:0},Un={ordered:!1,maxRetransmits:0},On=hr=>"received"in hr&&hr.received!==void 0,gn=hr=>!("received"in hr)||hr.received===void 0,hn=2*st.a.second,wn=10*st.a.second;function Zn(hr,cn={}){const mn=Array.from(hr.values()),xn=mn.filter(On),Gn=xn.length>0,er=Math.max(...mn.map(nr=>nr.sent)),cr=Math.max(...xn.map(nr=>nr.received));let gr;if(Gn){const nr=Date.now()-er<=st.a.millisecond?mn.length-1:mn.length,Kr=xn.length>nr?nr:xn.length,ho=xn.map(Gr=>Gr.received-Gr.sent),{standardDeviation:Nn,mean:rr,jitter:Rr}=function(Gr){const Pr=Gr.length;if(Pr===0)return{mean:NaN,standardDeviation:-1,jitter:NaN};const oo=Gr.reduce((lo,To)=>lo+To,0)/Pr,ao=Math.sqrt(Gr.map(lo=>Math.pow(lo-oo,2)).reduce((lo,To)=>lo+To)/Pr);if(Pr===1)return{mean:oo,standardDeviation:ao,jitter:NaN};let mo=0;for(let lo=1;loGr.sent{const[Kr,ho]=nr;ho.sent{var er,cr;return{streamId:Gn,sentCount:(er=mn.get(Gn))!==null&&er!==void 0?er:0,receivedCount:(cr=xn.get(Gn))!==null&&cr!==void 0?cr:0}}),timestamp:cn}}incrementLocalSent(cn){const{localSent:mn}=this.counts,xn=Pn(cn.header.stream);mn.set(xn,(mn.get(xn)||0)+1)}incrementLocalReceived(cn){const{localReceived:mn}=this.counts,xn=Pn(cn.header.stream),Gn=mn.get(xn)||0;if(Gn===0){const{streamName:er,streamType:cr}=cn.header.stream;pt.a.debug("RTC client received first message for stream",{streamName:er,streamType:cr})}mn.set(xn,Gn+1)}uploadMetrics(){return $n(this,void 0,void 0,function*(){const{sessionId:cn}=this,mn=yield this.connection.peerConnection.getStats(),xn={};mn.forEach(ur=>xn[ur.id]=ur),pt.a.debug("rtc-stats",Object.assign(Object.assign({},xn),{sessionId:cn}));const{localSent:Gn,localReceived:er,remoteSent:cr,remoteReceived:gr}=this.counts,br=[...new Set([...Gn.keys(),...er.keys()])].reduce((ur,nr)=>{const Kr=Gn.get(nr),ho=er.get(nr),Nn=cr.get(nr),rr=gr.get(nr);return Object.assign(Object.assign({},ur),{[`local-${nr}-sent`]:Kr,[`local-${nr}-received`]:ho,[`remote-${nr}-sent`]:Nn,[`remote-${nr}-received`]:rr})},{sessionId:cn});pt.a.debug("rtc-message-report",Object.assign({deviceId:this.connection.getRemoteDeviceId()},br))})}}function Qr(hr,cn,mn){return{header:{stream:hr,created:Date.now(),frameId:mn||""},payload:cn}}function _r(hr){const cn=hr.localCandidate.candidateType,mn=hr.remoteCandidate.candidateType;return cn==="host"&&mn==="host"?"local":cn==="relay"||mn==="relay"?"TURN":"STUN"}function Ir(hr){return new Set(["disconnected","failed","closed"]).has(hr.iceConnectionState)}function Wr(hr){switch(hr.header.stream.streamType){case"twist":{const{twist:cn}=hr.payload;if(!cn)throw Error("twist not in payload of RTC message with type twist");return{header:hr.header,payload:{twist:{linear:Object.assign({x:0,y:0,z:0},cn.linear),angular:Object.assign({x:0,y:0,z:0},cn.angular)}}}}case"pose":{const{pose:cn}=hr.payload;if(!cn)throw Error("pose not in payload of RTC message with type pose");return{header:hr.header,payload:{pose:{translation:Object.assign({x:0,y:0,z:0},cn.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},cn.rotation)}}}}case"pose-with-covariance":{const{poseWithCovariance:cn}=hr.payload;if(!cn)throw Error("poseWithCovariance not in payload of RTC message with type pose-with-covariance");const mn=new Array(36).fill(0);return cn.covariance.forEach((xn,Gn)=>{if(Gn>=36)throw Error("covariance contains more than 36 elements");mn[Gn]=xn}),{header:hr.header,payload:{poseWithCovariance:{pose:{translation:Object.assign({x:0,y:0,z:0},cn.pose.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},cn.pose.rotation)},covariance:mn}}}}case"point":{const{point:cn}=hr.payload;if(!cn)throw Error("point not in payload of RTC message with type point");return{header:hr.header,payload:{point:Object.assign({x:0,y:0,z:0},cn)}}}default:return hr}}var qr=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class Uo{get peerConnection(){return nn(this._peerConnection,"RTCPeerConnection is closed!"),this._peerConnection}constructor(cn,mn,xn,Gn){this.iceServers=mn,this.config=xn,this.dataChannelNotifier=Gn,this.connectTimeoutMs=20*st.a.second,this.iceGatheringTimeoutMs=3*st.a.second,this.pingUpdateTimeoutMs=1*st.a.second,this.pingV2UpdateTimeoutMs=250*st.a.millisecond,this.pingV2MetricsGatherTimeoutMs=1*st.a.second,this.streamsInfoUpdateTimeoutMs=2*st.a.second,this.reassemblyTimeoutMs=500*st.a.millisecond,this.reassemblyTableCleanupMs=1*st.a.second,this.heartbeatTimeoutMs=20*st.a.millisecond,this._peerConnection=null,this.heartbeatChannel=null,this.latestTtlStreamChannel=null,this.reliableStreamChannel=null,this.latestReliableStreamChannel=null,this.latestTryOnceStreamChannel=null,this.streamLatestTimestamp=new Map,this.reassemblyTable=new Map,this.reassemblyTableLastTimestamp=new Map,this.closeCalled=!1,this.gotOffer=!1,this.hasIceCandidate=!1,this.pingV2Map=new Map,this.sendPingV2=()=>{const{latestTryOnceStreamChannel:cr}=this;if(!cr)return;const gr=new Date().getTime(),br=Object(Wt.a)();this.sendSystemMessage(cr,{type:"ping-v2",payload:{timestamp:gr,id:br}}),this.pingV2Map.set(br,{sent:gr})},this.gatherPingV2Metrics=()=>{const cr=Zn(this.pingV2Map);if(cr){const gr=this.getRemoteDeviceId();this.pingInfo=cr,Tt.aggregate("rtc-ping-average",cr.average,Object.assign({},gr?{deviceId:gr}:{})),Tt.aggregate("rtc-ping-loss",cr.loss,Object.assign({},gr?{deviceId:gr}:{})),Tt.aggregate("rtc-jitter",cr.jitter,Object.assign({},gr?{deviceId:gr}:{}))}},this._peerConnection=cn;const{isOffer:er}=xn.baseConfig;er?this.initializeChannels(cn):cn.ondatachannel=cr=>{switch(cr.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=cr.channel;break;case"stream.reliable":this.reliableStreamChannel=cr.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=cr.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=cr.channel;break;case"heartbeat":return void(this.heartbeatChannel=cr.channel);default:return void this.dataChannelNotifier(cr.channel)}this.setupChannel(cr.channel)},this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:cr}=this;cr&&this.sendSystemMessage(cr,{type:"ping"})},this.pingUpdateTimeoutMs),this.pingV2UpdateTimeout=setInterval(this.sendPingV2,this.pingV2UpdateTimeoutMs),this.pingV2MetricsGatherTimeout=setInterval(this.gatherPingV2Metrics,this.pingV2MetricsGatherTimeoutMs),this.streamsInfoUpdateTimeout=setInterval(()=>{const{latestTtlStreamChannel:cr}=this;cr&&this.sendSystemMessage(cr,{type:"streams-info"})},this.streamsInfoUpdateTimeoutMs),this.reassemblyTableCleanupTimeout=setInterval(()=>{const cr=new Date().getTime();this.reassemblyTableLastTimestamp.forEach((gr,br,ur)=>{cr>br+this.reassemblyTimeoutMs&&this.reassemblyTable.delete(gr)})},this.reassemblyTableCleanupMs),this.heartbeatTimeout=setInterval(()=>{const{heartbeatChannel:cr}=this;cr&&cr.readyState==="open"&&cr.send(new Uint8Array([1]))},this.heartbeatTimeoutMs)}handleSignal(cn){return qr(this,void 0,void 0,function*(){const{peerConnection:mn}=this,{track:xn}=this.config.baseConfig,Gn=(()=>{try{return JSON.parse(cn.getPayload())}catch{return}})();if(!Gn)return void pt.a.error("Received unparseable signal.");pt.a.debug("Handling signal",{description:Gn});const{sdp:er,type:cr}=Gn;if(!er||!cr)return void pt.a.warn("Received non-SDP signal");const{signalingState:gr,connectionState:br}=mn;if(gr!=="stable"||br!=="connected")if(mn.remoteDescription)pt.a.warn("Received SDP after remote description was set: "+er);else{if(cr==="offer"){if(gr!=="stable")return void pt.a.warn("Received offer SDP when signaling is ongoing.");yield mn.setRemoteDescription(Gn);const ur=yield mn.createAnswer();yield mn.setLocalDescription(ur);const nr=cn.clone();return xn?.("Answer Received",nr),nr.setPayload(JSON.stringify(ur)),nr.setReceiverId(cn.getSenderId()),nr.setSenderId(cn.getReceiverId()),nr}if(cr==="answer"){if(gr==="stable")return void pt.a.warn("Received answer SDP when signaling hasn't started.");yield mn.setRemoteDescription(Gn)}}else pt.a.warn("Received SDP when already connected: "+er)})}send(cn,mn){const xn=this.getChannelFromLabel(mn.channelLabel);xn?this.sendOnChannel(xn,cn):pt.a.warn("Send called with unexpected channel label",{channelLabel:mn.channelLabel})}controlRemoteStream(cn){var mn;this.sendSystemMessage((nn(mn=this.reliableStreamChannel),mn),{type:"stream-control",streamControl:cn})}isActive(){return new Set(["new","checking","connected","completed"]).has(this.peerConnection.iceConnectionState)||this.isReady()}isReady(){const{reliableStreamChannel:cn,latestTtlStreamChannel:mn,latestTryOnceStreamChannel:xn,latestReliableStreamChannel:Gn}=this;return cn?.readyState==="open"&&mn?.readyState==="open"&&xn?.readyState==="open"&&Gn?.readyState==="open"}close(){var cn,mn,xn,Gn,er,cr,gr;return qr(this,void 0,void 0,function*(){this.closeCalled||(this.closeCalled=!0,yield(cn=this.sessionMetrics)===null||cn===void 0?void 0:cn.uploadMetrics(),eo(this.pingUpdateTimeout),eo(this.pingV2UpdateTimeout),eo(this.pingV2MetricsGatherTimeout),eo(this.reassemblyTableCleanupTimeout),eo(this.streamsInfoUpdateTimeout),eo(this.heartbeatTimeout),(mn=this._peerConnection)===null||mn===void 0||mn.close(),(xn=this.heartbeatChannel)===null||xn===void 0||xn.close(),(Gn=this.latestReliableStreamChannel)===null||Gn===void 0||Gn.close(),(er=this.latestTryOnceStreamChannel)===null||er===void 0||er.close(),(cr=this.latestTtlStreamChannel)===null||cr===void 0||cr.close(),(gr=this.reliableStreamChannel)===null||gr===void 0||gr.close(),this._peerConnection=null,this.heartbeatChannel=null,this.latestReliableStreamChannel=null,this.latestTryOnceStreamChannel=null,this.latestTtlStreamChannel=null,this.reliableStreamChannel=null)})}getPing(){return this.pingTimeMs}getPingInfo(){return this.pingInfo}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionCreatedTimestamp(){var cn;return(cn=this.config.remoteConfig)===null||cn===void 0?void 0:cn.sessionCreatedTimestamp}setSessionCreatedTimestamp(cn){this.config.remoteConfig&&(this.config.remoteConfig.sessionCreatedTimestamp=cn)}getSessionId(){var cn;return(cn=this.config.remoteConfig)===null||cn===void 0?void 0:cn.sessionId}setSessionId(cn){this.config.remoteConfig&&(this.config.remoteConfig.sessionId=cn,this.sessionMetrics=new Tr(cn,this))}getRemotePeerId(){return this.config.baseConfig.remotePeerId}getRemoteDeviceId(){var cn;return(cn=this.config.baseConfig)===null||cn===void 0?void 0:cn.remoteDeviceId}setRemoteDeviceId(cn){this.config.baseConfig.remoteDeviceId=cn}getSessionMetricsMessageCounts(){var cn;return(cn=this.sessionMetrics)===null||cn===void 0?void 0:cn.counts}getConnectionStatsInfo(){return qr(this,void 0,void 0,function*(){const{peerConnection:cn}=this;if(!cn)return;const mn=yield cn.getStats(null),xn=[];mn.forEach(br=>{xn.push(br)});const Gn=xn.find(br=>br.type==="transport");if(!Gn)return;const er=xn.find(br=>(br.type==="candidate-pair"||br.type==="candidatepair")&&br.id===Gn.selectedCandidatePairId);if(!er)return;const cr=xn.find(br=>br.id===er.localCandidateId),gr=xn.find(br=>br.id===er.remoteCandidateId);return cr&&gr&&(cr.address=cr.address||cr.ip,gr.address=gr.address||gr.ip,cr.address!==void 0&&gr.address!==void 0)?{transport:Gn,localCandidate:cr,remoteCandidate:gr,candidatePair:er}:void 0})}initializeChannels(cn){this.heartbeatChannel=cn.createDataChannel("heartbeat",Un),this.heartbeatChannel.binaryType="arraybuffer",this.latestTtlStreamChannel=cn.createDataChannel("stream.latest-ttl",Xt),this.latestTtlStreamChannel.binaryType="arraybuffer",this.reliableStreamChannel=cn.createDataChannel("stream.reliable",dn),this.reliableStreamChannel.binaryType="arraybuffer",this.latestReliableStreamChannel=cn.createDataChannel("stream.latest-reliable",_n),this.latestReliableStreamChannel.binaryType="arraybuffer",this.latestTryOnceStreamChannel=cn.createDataChannel("stream.latest-try-once",Fn),this.latestTryOnceStreamChannel.binaryType="arraybuffer",this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}getOffer(){var cn,mn;return qr(this,void 0,void 0,function*(){const{gotOffer:xn}=this,{peerConnection:Gn,config:er}=this;if(this.config.baseConfig.isLan)throw new Error('"getOffer" method can only be called with internet connections. LAN connections should call the "getLanOffer" method.');const cr=(cn=this.config.remoteConfig)===null||cn===void 0?void 0:cn.sessionId;if(xn)return void pt.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,Ir(this.peerConnection))return void pt.a.debug("Failed to generate offer because the peer connection was inactive.");const gr=er.baseConfig.track;Gn.onicecandidate=()=>{this.hasIceCandidate=!0},Gn.oniceconnectionstatechange=()=>qr(this,void 0,void 0,function*(){const Nn=Gn.iceConnectionState;if(Nn==="connected"||Nn==="completed"){const rr=yield this.getConnectionStatsInfo(),Rr=rr?_r(rr):void 0;pt.a.info("ICE connection state changed to "+Nn,{sessionId:cr,connectionStatsInfo:rr,iceMode:Rr}),gr?.("ICE connection state change",{iceConnectionState:Nn,sessionId:cr,connectionStatsInfo:rr,iceMode:Rr})}}),yield Gn.setLocalDescription(yield Gn.createOffer());const br=Gn.getConfiguration?Gn.getConfiguration().iceTransportPolicy:"all",ur=new Date().getTime();for(;;){const Nn=new Date().getTime()-ur;if(Nn>this.connectTimeoutMs)return void pt.a.debug("Failed to generate offer because ICE gathering timed out.");if(Nn>this.iceGatheringTimeoutMs&&this.hasIceCandidate){pt.a.debug("ICE gathering partially completed; proceeding",{iceTransportPolicy:br,waitTime:Nn}),gr?.("ICE gathering partially completed",{sessionId:cr,iceTransportPolicy:br,waitTime:Nn});break}if(Gn.iceGatheringState==="complete"){pt.a.debug("ICE gathering complete",{iceTransportPolicy:br,waitTime:Nn}),gr?.("ICE gathering completed",{sessionId:cr,iceTransportPolicy:br,waitTime:Nn});break}yield Object(at.a)(.1*st.a.second)}const nr=(mn=this.iceServers)!==null&&mn!==void 0?mn:[];for(const Nn of nr)"credentialType"in Nn&&(Nn.credentialType=void 0);const Kr=JSON.stringify(nr),ho=new $t.Signal;return ho.setPayload(JSON.stringify(Gn.localDescription)),ho.setSenderId(this.config.baseConfig.localPeerId),ho.setReceiverId(this.config.baseConfig.remotePeerId),ho.setIceServers(Kr),ho.setIceTransportPolicy(br??"all"),this.config.baseConfig.sessionType!==void 0?ho.setSessionType(this.config.baseConfig.sessionType):ho.setSessionType($t.SessionType.TELEOP),pt.a.debug("Sending offer signal with description",{description:ho.getPayload()}),ho})}getLanOffer(){return qr(this,void 0,void 0,function*(){const{peerConnection:cn,gotOffer:mn}=this;if(!this.config.baseConfig.isLan)throw new Error('"getLanOffer" method can only be used with LAN connections. Internet connections should call the "getOffer" method.');if(mn)return void pt.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,Ir(this.peerConnection))return void pt.a.debug("Failed to generate offer because the peer connection was inactive.");yield cn.setLocalDescription(yield cn.createOffer());const xn=new Date().getTime();for(;;){if(new Date().getTime()-xn>this.iceGatheringTimeoutMs)return void pt.a.debug("Failed to generate offer because ICE gathering timed out.");if(cn.iceGatheringState==="complete")break;yield Object(at.a)(.1*st.a.second)}const Gn=cn.localDescription;if(Gn)return pt.a.debug("Sending LAN offer signal with description",{description:Gn}),Gn;pt.a.error("Failed to generate LAN offer description")})}handleLanAnswer(cn){return qr(this,void 0,void 0,function*(){const{peerConnection:mn}=this;if(!this.config.baseConfig.isLan)throw new Error('"handleLanAnswer" method can only be used with LAN connections. Internet connections should call the "handleSignal" method.');yield mn.setRemoteDescription(cn)})}getChannelFromLabel(cn){switch(cn){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(cn,mn){var xn;let Gn;try{Gn=Object(on.encode)(JSON.stringify(mn))}catch(er){return void pt.a.warn("Failed to encode RTC message",{error:er})}try{cn.send(Gn),(xn=this.sessionMetrics)===null||xn===void 0||xn.incrementLocalSent(mn)}catch(er){pt.a.warn("Failed to send message to channel",{error:er,channel:cn.label})}}channelNotRecognized(cn){return cn!==this.latestTtlStreamChannel&&cn!==this.latestReliableStreamChannel&&cn!==this.latestTryOnceStreamChannel&&cn!==this.reliableStreamChannel}setupChannel(cn){cn.onmessage=mn=>{if(this.channelNotRecognized(cn))return void pt.a.warn("Received message on unrecognized data channel.");let xn;try{xn=JSON.parse(Object(on.decode)(mn.data))}catch(Gn){return void pt.a.warn("Received unparseable message on RTC stream data channel",{error:Gn,channel:cn.label})}xn.communicationType==="message-chunk"?this.receiveChannelMessageChunk(cn,xn):this.receiveChannelMessage(cn,xn)},cn.onerror=mn=>{pt.a.warn("Channel error: "+mn.error,{error:mn.error,sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onopen=()=>{pt.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onclose=()=>{const mn={bufferedAmount:cn.bufferedAmount,sessionId:this.getSessionId(),channelLabel:cn.label};this.closeCalled===!1?pt.a.debug("Unexpected channel closed",mn):pt.a.debug("Channel closed",mn)}}receiveChannelMessage(cn,mn){var xn;const{config:Gn}=this,{remotePeerId:er}=this.config.baseConfig;this.lastMessageTimestamp=new Date().getTime(),mn=Wr(mn),(xn=this.sessionMetrics)===null||xn===void 0||xn.incrementLocalReceived(mn),!this.handleSystemMessage(cn,mn)&&((cn===this.latestTryOnceStreamChannel||cn===this.latestTtlStreamChannel||cn===this.latestReliableStreamChannel)&&!this.isLatestMessage(mn)||Gn.baseConfig.receive(er,mn))}receiveChannelMessageChunk(cn,mn){const xn=this.reassemblyTable.get(mn.id)||[];if(xn.push(mn),xn.length===mn.total){const Gn=function(er){const cr=er.sort((gr,br)=>gr.seqgr.part).reduce((gr,br)=>gr+br);try{return JSON.parse(cr)}catch{return void pt.a.warn("Could not reassemble RTC message chunks")}}(xn);return Gn&&this.receiveChannelMessage(cn,Gn),void this.reassemblyTable.delete(mn.id)}this.reassemblyTable.set(mn.id,xn),this.reassemblyTableLastTimestamp.set(mn.id,new Date().getTime())}handleSystemMessage(cn,mn){var xn,Gn;const{config:er}=this,{baseConfig:cr}=er,{remotePeerId:gr,remoteDeviceId:br}=cr;switch(mn.header.stream.streamType){case"ping":return this.sendSystemMessage(cn,{type:"pong",timestamp:Zt(mn.payload.ping)}),!0;case"pong":{const ur=new Date().getTime()-Zt(mn.payload.pong);return this.pingTimeMs=ur,Tt.aggregate("rtc-ping-time",ur,Object.assign({},br?{deviceId:br}:{})),!0}case"ping-v2":return this.sendPingV2(),!0;case"pong-v2":{const ur=Zt(mn.payload.pongV2),nr=this.pingV2Map.get(ur.id);return nr?.sent!==ur.timestamp&&pt.a.warn("Pong timestamp doesn't match stored value",{currentEntry:nr,pong:ur}),this.pingV2Map.set(ur.id,{sent:ur.timestamp,received:new Date().getTime()}),!0}case"streams-info":{const{sessionMetrics:ur}=this,nr=(xn=mn.payload.streamsInfo)===null||xn===void 0?void 0:xn.timestamp;return!!nr&&(ur?.updateRemoteMessagesCounts(mn),(Gn=cr.onStreamsInfoUpdate)===null||Gn===void 0||Gn.call(cr,gr,nr),!0)}case"stream-control":return!0;default:return!1}}sendSystemMessage(cn,mn){var xn;const{localUserId:Gn,localPeerId:er}=this.config.baseConfig;if(cn.readyState!=="open")return;const cr={entityId:Gn??er,streamName:"$."+mn.type,streamType:mn.type};let gr;switch(mn.type){case"ping":gr={ping:new Date().getTime()};break;case"pong":gr={pong:mn.timestamp};break;case"ping-v2":gr={pingV2:mn.payload};break;case"pong-v2":gr={pongV2:mn.payload};break;case"stream-control":gr={streamControl:mn.streamControl};break;case"streams-info":gr={streamsInfo:(xn=this.sessionMetrics)===null||xn===void 0?void 0:xn.getLocalStreamsInfo(new Date().getTime())}}this.sendOnChannel(cn,Qr(cr,gr))}isLatestMessage(cn){const mn=Pn(cn.header.stream),xn=(this.streamLatestTimestamp.get(mn)||0)<=cn.header.created;return xn&&this.streamLatestTimestamp.set(mn,cn.header.created),xn}}function eo(hr){hr&&clearInterval(hr)}function Yr(){pt.a.debug("forceGarbageCollection() triggered"),queueMicrotask(()=>{let hr=document.createElement("img");hr.src=window.URL.createObjectURL(new Blob([new ArrayBuffer(5e7)])),hr.onerror=function(){window.URL.revokeObjectURL(this.src),hr=null}})}function _o(hr){try{return hr instanceof Error?`${hr.name}: ${hr.message}`:typeof hr=="object"?JSON.stringify(hr):String(hr)}catch{return"Unknown error"}}function ro(hr){var cn,mn;return{userId:(cn=hr.getUserId())===null||cn===void 0?void 0:cn.getValue(),deviceId:(mn=hr.getDeviceId())===null||mn===void 0?void 0:mn.getValue(),organizationId:hr.getOrganizationId(),id:hr.getPeerId(),capabilities:[],capabilitySet:{}}}var Fo=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};const kn=hr=>hr.map(cn=>Object.assign(Object.assign(Object.assign({},cn),cn.username?{username:""}:null),cn.credential?{credential:""}:null));class un{constructor(cn){this.config=cn,this.grpcCallDeadline=5*st.a.second,this.refreshIntervalDelayMs=2*st.a.second,this.iceServersTtl=30*st.a.minute,this.connections=[],this.localConnections=[],this.isConnectionInitiator=new WeakSet,this.isOutgoingConnection=new Set,this.peerDataChannelListeners=[],this.rtcInstancesConstructed=0,this.statsLoopsExecuted=0;const{refreshIntervalDelayMs:mn}=this;this.refreshInterval=vt({func:()=>Fo(this,void 0,void 0,function*(){try{yield this.update()}catch(xn){pt.a.warn("RTC refresh failed",{error:xn})}}),delay:mn,immediate:!0})}send(cn,mn,xn){const Gn=this.getActiveConnection(cn);Gn?Gn.isReady()?Gn.send(mn,xn):pt.a.warn("Send called with unready connection."):pt.a.warn("Send called with no connection.")}controlRemoteStream(cn,mn){const xn=this.getActiveConnection(cn);xn?xn.isReady()?xn.controlRemoteStream(mn):pt.a.warn("controlRemoteStream called with unready connection."):pt.a.warn("controlRemoteStream called with no connection.")}getLocalPeer(){return Fo(this,void 0,void 0,function*(){for(;!this.localPeer;)yield Object(at.a)(.1*st.a.second);return ro(this.localPeer)})}connect(cn,mn){var xn,Gn,er;return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode===!0)throw new Error("connect method called in local only mode.");const{track:cr,signalingClient:gr}=this.config,{localPeer:br,receiveSignalStream:ur,iceServers:nr}=this;if(!br||!ur||!nr)return void pt.a.warn("Connect called prior to local peer, receiveSignalStream, and ICE servers ready");if(this.getActiveConnection(cn))return void pt.a.warn("Connect called for peer with existing connection.");if(this.isOutgoingConnection.has(cn))return void pt.a.warn("Connect called for peer with an existing outgoing connection offer.");this.isOutgoingConnection.add(cn);const Kr=function(zr,Gr,Pr){const{rtcIceTransportPolicies:oo,rtcIceServerProtocol:ao,useAllServers:mo}=Gr||{},lo=zr.map(To=>Object.assign(Object.assign({},To),{urls:To.urls.filter(Jo=>{const Go=(oo===void 0||oo.some(cs=>Vt(Jo,cs)))&&(ao===void 0||It(Jo,ao));return Go||pt.a.debug("Ignoring ICE server: "+Jo,{organizationId:Pr}),Go})})).filter(({urls:To})=>To.filter(Jo=>Jo).length>0);return mo?lo:[jt(lo,"stun"),jt(lo,"turn")].filter(To=>To!==void 0).map(To=>Zt(To))}(nr,mn);pt.a.debug("Received ICE servers:",kn(nr)),pt.a.debug("Using ICE servers:",kn(Kr));const ho=new Uo(yield this.createRTCPeerConnection(Kr),Kr,{baseConfig:{isOffer:!0,isLan:!1,receive:(zr,Gr)=>this.config.receive(zr,Gr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(zr,Gr)=>{var Pr,oo;return(oo=(Pr=this.config).onStreamsInfoUpdate)===null||oo===void 0?void 0:oo.call(Pr,zr,Gr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(xn=br.getUserId())===null||xn===void 0?void 0:xn.getValue(),localPeerId:br.getPeerId(),remotePeerId:cn,sessionType:this.config.sessionType},remoteConfig:{}},zr=>this.onCustomDataChannel(cn,zr)),Nn=yield ho.getOffer();if(!Nn)return pt.a.error("Failed to generate offer."),void this.isOutgoingConnection.delete(cn);pt.a.debug("Sending offer."),cr?.("Sending offer",Nn);const rr=new $t.SendSignalRequest;rr.setSignal(Nn);const Rr=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(gr.sendSignal(rr,yield this.getMetadata()),this.grpcCallDeadline)}catch(zr){pt.a.warn("Error when sending signal",{error:zr})}}))();if(!this.isOutgoingConnection.has(cn))return void pt.a.debug("No offer set after receiving offer signal response.");pt.a.debug("Offer sent.");const vr=(Gn=Rr?.getSessionId())===null||Gn===void 0?void 0:Gn.getValue(),fr=(er=Rr?.getSessionCreatedTimestamp())===null||er===void 0?void 0:er.getValue();return vr&&fr?(ho.setSessionId(vr),ho.setSessionCreatedTimestamp(fr),this.isOutgoingConnection.delete(cn),this.connections.push(ho),this.isConnectionInitiator.add(ho),this.setupHandlers(ho),vr):(pt.a.warn("No session ID or no session created timestamp on send signal response."),void this.isOutgoingConnection.delete(cn))})}connectLan(cn){var mn,xn;return Fo(this,void 0,void 0,function*(){const Gn=new Pt(cn),er=new Uo(yield this.createRTCPeerConnection([]),[],{baseConfig:{isOffer:!0,isLan:!0,receive:(ur,nr)=>this.config.receive(ur,nr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(ur,nr)=>{var Kr,ho;return(ho=(Kr=this.config).onStreamsInfoUpdate)===null||ho===void 0?void 0:ho.call(Kr,ur,nr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(xn=(mn=this.localPeer)===null||mn===void 0?void 0:mn.getUserId())===null||xn===void 0?void 0:xn.getValue(),localPeerId:"lan_client",remotePeerId:cn}},ur=>this.onCustomDataChannel(cn,ur)),cr=yield er.getLanOffer();if(!cr)return pt.a.warn("Could not generate LAN offer"),!1;const gr=yield Gn.postLanRtcOffer({offer:JSON.stringify(cr)}),br=new RTCSessionDescription(JSON.parse(gr.answer));return yield er.handleLanAnswer(br),this.localConnections.push(er),this.isConnectionInitiator.add(er),Object(Wt.a)()})}getConnections(){return[...this.connections,...this.localConnections]}createCustomDataChannel(cn,mn,xn,Gn,er){const cr=this.getActiveConnection(cn);if(cr&&this.isConnectionInitiator.has(cr)){const br=cr.peerConnection.createDataChannel("custom."+mn,xn);return Gn&&(br.binaryType="arraybuffer"),er(cn,br),()=>{}}const gr=(br,ur)=>{cn===br&&ur.label==="custom."+mn&&er(cn,ur)};return this.peerDataChannelListeners.push(gr),()=>{this.peerDataChannelListeners=this.peerDataChannelListeners.filter(br=>br!==gr)}}onCustomDataChannel(cn,mn){this.peerDataChannelListeners.forEach(xn=>xn(cn,mn))}getConnectionStatus(cn){if(this.isOutgoingConnection.has(cn))return"connecting";const mn=this.getActiveConnection(cn);return mn?mn.isReady()?"connected":"connecting":"disconnected"}getConnectionStatsInfo(cn){return Fo(this,void 0,void 0,function*(){const mn=this.getActiveConnection(cn);if(mn)return yield mn.getConnectionStatsInfo()})}disconnect(cn){return Fo(this,void 0,void 0,function*(){const mn=this.getActiveConnection(cn);mn&&(yield mn.close(),this.connections=this.connections.filter(xn=>xn!==mn),this.localConnections=this.localConnections.filter(xn=>xn!==mn))})}getPeers(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,mn=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(cn.getPeers(new $t.GetPeersRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(er){pt.a.warn("Error when getting peers",{error:er})}}))();if(!mn)return[];const xn=mn.getPeersList();if(!xn)return[];const Gn=er=>{var cr,gr;return(gr=(cr=er.getPeerCreatedTimestamp())===null||cr===void 0?void 0:cr.getValue())!==null&&gr!==void 0?gr:0};return xn.sort((er,cr)=>Gn(cr)-Gn(er)).map(er=>ro(er))})}getSessions(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,mn=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(cn.getPeers(new $t.GetPeersRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(er){pt.a.warn("Error when getting peers",{error:er})}}))();if(!mn)return{};const xn=mn.getPeersList(),Gn={};for(const er of xn)Gn[er.getPeerId()]=er.getSessionIdsList();return Gn})}getPing(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getPing();pt.a.warn("Attempted to get ping time from inactive peer.")}getPingInfo(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getPingInfo();pt.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getLastMessageTimestamp();pt.a.warn("Attempted to get last message time from inactive peer.")}getSessionMetricsMessageCounts(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getSessionMetricsMessageCounts();pt.a.warn("Attempted to get session metrics counts from inactive peer.")}isReady(){if(this.config.lanOnlyMode)return!0;const{localPeer:cn,receiveSignalStream:mn,iceServers:xn}=this;return!!(cn&&mn&&xn)}shutdown(){return Fo(this,void 0,void 0,function*(){yield this.refreshInterval.stop(),this.receiveSignalStream&&this.receiveSignalStream.cancel();const cn=this.connections;this.connections=[],yield this.closeConnections(cn);const mn=this.localConnections;this.localConnections=[],yield this.closeConnections(mn),this.isOutgoingConnection.clear(),this.peerDataChannelListeners=[];const{localPeer:xn}=this;if(!xn||this.config.lanOnlyMode)return;const{signalingClient:Gn}=this.config;yield(()=>Fo(this,void 0,void 0,function*(){try{const er=new $t.DeletePeerRequest;er.setPeerId(xn.getPeerId()),yield qt.withDeadline(Gn.deletePeer(er,yield this.getMetadata()),this.grpcCallDeadline)}catch(er){return void pt.a.warn("Error deleting local peer",{error:er})}}))()})}createPeer(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createPeer method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,mn=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(cn.createPeer(new $t.CreatePeerRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(Gn){const er=Gn;pt.a.debug("createPeer failed",{error:er});const cr=_o(er);throw new Error("Was not able to create peer: "+cr)}}))(),xn=mn?.getPeer();if(!xn)throw new Error("Response did not provide peer.");return this.localPeer=xn})}createReceiveSignalStream(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createReceiveSignalStream method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,{localPeer:mn,iceServers:xn}=this;if(!mn||!xn)return;const{receiveSignalStream:Gn}=this;Gn&&Gn.cancel();const er=new $t.ReceiveSignalStreamRequest;er.setPeerId(mn.getPeerId());const cr=yield(()=>Fo(this,void 0,void 0,function*(){try{return cn.receiveSignalStream(er,yield this.getMetadata({hasDeadline:!1}))}catch(gr){pt.a.debug("createReceiveSignalStream failed",{error:gr});const br=_o(gr);throw new Error("Unable to create receive signal stream: "+br)}}))();if(!cr)throw new Error("Response did not provide stream.");return cr.on("data",gr=>Fo(this,void 0,void 0,function*(){var br,ur,nr,Kr;const ho=gr.getSignal(),Nn=(br=ho?.getSessionId())===null||br===void 0?void 0:br.getValue(),rr=ho?.getSenderId(),Rr=ho?.getReceiverId(),vr=(ur=ho?.getSessionCreatedTimestamp())===null||ur===void 0?void 0:ur.getValue();if(!(ho&&Nn&&rr&&Rr&&vr))return void pt.a.warn("Received signal with missing information.");const fr=this.getActiveConnection(rr);if(fr)if(fr.getSessionId()!==Nn){if(pt.a.debug("Received signal: different session for a peer we're already connected to."),(fr.getSessionCreatedTimestamp()||0)>vr)return;const zr=new Uo(yield this.createRTCPeerConnection(xn),xn,{baseConfig:{isOffer:!1,isLan:!1,receive:(Gr,Pr)=>this.config.receive(Gr,Pr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(Gr,Pr)=>{var oo,ao;return(ao=(oo=this.config).onStreamsInfoUpdate)===null||ao===void 0?void 0:ao.call(oo,Gr,Pr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:mn.getPeerId(),localUserId:(Kr=mn.getUserId())===null||Kr===void 0?void 0:Kr.getValue(),remotePeerId:rr},remoteConfig:{sessionId:Nn,sessionCreatedTimestamp:vr}},Gr=>this.onCustomDataChannel(rr,Gr));yield zr.handleSignal(ho),this.connections.push(zr)}else pt.a.debug("Received signal: for an existing connection."),yield fr.handleSignal(ho);else{pt.a.debug("Received signal: new connection.");const zr=new Uo(yield this.createRTCPeerConnection(xn),xn,{baseConfig:{isOffer:!1,isLan:!1,receive:(Gr,Pr)=>this.config.receive(Gr,Pr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(Gr,Pr)=>{var oo,ao;return(ao=(oo=this.config).onStreamsInfoUpdate)===null||ao===void 0?void 0:ao.call(oo,Gr,Pr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:mn.getPeerId(),localUserId:(nr=mn.getUserId())===null||nr===void 0?void 0:nr.getValue(),remotePeerId:rr},remoteConfig:{sessionId:Nn,sessionCreatedTimestamp:vr}},Gr=>this.onCustomDataChannel(rr,Gr));yield zr.handleSignal(ho),this.connections.push(zr)}})),cr.on("end",()=>{cr.cancel(),this.receiveSignalStream=void 0}),cr.on("error",gr=>{switch(gr.code){case Ot.StatusCode.CANCELLED:case Ot.StatusCode.UNAVAILABLE:case Ot.StatusCode.UNKNOWN:pt.a.debug("Receive signal stream error",{error:gr});break;case Ot.StatusCode.UNAUTHENTICATED:pt.a.warn("Receive signal stream error",{error:gr});break;default:pt.a.error("Receive signal stream error",{error:gr})}cr.cancel(),this.receiveSignalStream=void 0}),this.receiveSignalStream=cr})}createRTCPeerConnection(cn){var mn;return Fo(this,void 0,void 0,function*(){const xn=(mn=this.config.alternateRTCPeerConnection)!==null&&mn!==void 0?mn:window.RTCPeerConnection;if(!xn)throw function(){if(typeof navigator>"u")throw new Error("not a browser");const{userAgent:Gn}=navigator;return Gn.includes("Firefox/")?"Firefox":Gn.includes("Edg/")?"Edge":Gn.includes("Chrome/")?"Chrome":Gn.includes("Safari/")?"Safari":Gn.includes("MSIE/")||Gn.includes("Trident/")?"IE":"Other"}()!=="Chrome"?new Error("WebRTC is not enabled. Please try again with the latest version of Google Chrome."):new Error("WebRTC is not enabled. Please ensure WebRTC is not disabled by ad blocking software.");this.rtcInstancesConstructed++,this.rtcInstancesConstructed%20||Yr();try{return new xn({iceServers:cn})}catch(Gn){throw pt.a.debug(`Failed to create RTCPeerConnection: ${this.rtcInstancesConstructed} total allocated`),Gn}})}closeConnections(cn){return Fo(this,void 0,void 0,function*(){const mn=yield en(cn.map(xn=>Fo(this,void 0,void 0,function*(){yield xn.close()})));for(const xn of mn)pt.a.warn("Request to close session failed",{error:xn})})}getActiveConnection(cn){return this.getConnections().find(mn=>mn.getRemotePeerId()===cn&&mn.isActive())}update(){var cn;return Fo(this,void 0,void 0,function*(){if(this.localConnections=this.localConnections.filter(Kr=>Kr.isActive()),this.config.lanOnlyMode)return;const{signalingClient:mn}=this.config;if(!this.localPeer||!this.receiveSignalStream||!this.iceServers){const Kr=[];return this.localPeer||Kr.push(this.createPeer()),this.iceServers||Kr.push(this.updateIceServers()),yield Promise.all(Kr),void(this.receiveSignalStream||(yield this.createReceiveSignalStream()))}const[xn,Gn]=(er=this.connections,cr=Kr=>Kr.isActive(),er.reduce((Kr,ho,Nn,rr)=>{const[Rr,vr]=Kr;return(cr(ho,Nn,rr)?Rr:vr).push(ho),Kr},[[],[]]));var er,cr;yield this.closeConnections(Gn),this.connections=xn,this.gatherConnectionStats().catch(Kr=>{pt.a.warn("Error calling gatherConnectionStats",{error:Kr})}),this.statsLoopsExecuted++;const{localPeer:gr}=this,br=this.connections.filter(Kr=>Kr.getSessionId).map(Kr=>Zt(Kr.getSessionId()));gr.setSessionIdsList(br);const ur=new $t.RefreshPeerRequest;ur.setPeer(gr);try{yield qt.withDeadline(mn.refreshPeer(ur,yield this.getMetadata()),this.grpcCallDeadline)}catch(Kr){Kr instanceof Ot.RpcError&&Kr.code===Ot.StatusCode.NOT_FOUND?(pt.a.warn("Peer expired, creating new peer",{peerId:gr.getPeerId()}),yield this.reset()):pt.a.warn("Error calling RefreshPeer",{error:Kr})}const nr=yield this.getPeers();for(const Kr of this.connections)Kr.setRemoteDeviceId((cn=nr.find(ho=>ho.id===Kr.getRemotePeerId()))===null||cn===void 0?void 0:cn.deviceId)})}gatherConnectionStats(){return Fo(this,void 0,void 0,function*(){if(this.statsLoopsExecuted%10!=0||this.connections.length!==1)return;const cn=yield this.connections[0].getConnectionStatsInfo(),mn=cn?_r(cn):void 0;mn?Tt.setTag("rtc-connection-type",mn):Tt.setTag("rtc-connection-type","unknown")})}reset(){return Fo(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.isOutgoingConnection.clear(),yield this.createPeer(),yield this.createReceiveSignalStream()})}updateIceServers(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)return;const{iceServersLastUpdate:cn,iceServersTtl:mn}=this,xn=new Date().getTime();if(!cn||xn-cn>mn)try{const Gn=(yield qt.withDeadline(this.config.signalingClient.getIceServers(new $t.GetIceServersRequest,yield this.getMetadata()),this.grpcCallDeadline)).getIceServers();this.iceServers=JSON.parse(Gn),this.iceServersLastUpdate=xn}catch(Gn){pt.a.warn("Error in updateIceServers",{error:Gn})}})}setupHandlers(cn){const{peerConnection:mn}=cn,xn=cn.getSessionCreatedTimestamp();mn.onconnectionstatechange=()=>Fo(this,void 0,void 0,function*(){const Gn=mn.connectionState;if(!xn)return;const er=cn.getRemoteDeviceId();switch(Gn){case"connected":Tt.aggregate("rtc-connect-time",new Date().getTime()-xn,Object.assign({},er?{deviceId:er}:{}));break;case"failed":Tt.increment("rtc-connect-failed",Object.assign({},er?{deviceId:er}:{}))}})}getMetadata(cn={}){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getMetadata method cannot be called in local-only mode");const{getToken:mn}=this.config,{grpcCallDeadline:xn}=this,{hasDeadline:Gn=!0}=cn,er=Gn?{deadline:(Date.now()+xn).toString(10)}:null;try{const cr=yield mn();return Object.assign({authorization:cr},er)}catch(cr){throw pt.a.error("getToken() failed",{error:cr}),new Error("Cannot get authorization token")}})}}var pn=et(12),Qn=et(11),Wn=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class jn{constructor(cn,mn){this.sentMessagesCounts=new Map,this.receivedMessagesCounts=new Map,this.sessionId=cn,this.connection=mn}incrementMessageSent(cn){const mn=Pn(cn.header.stream);this.sentMessagesCounts.set(mn,(this.sentMessagesCounts.get(mn)||0)+1)}incrementMessageReceived(cn){const mn=Pn(cn.header.stream);this.receivedMessagesCounts.set(mn,(this.receivedMessagesCounts.get(mn)||0)+1)}uploadMetrics(){return Wn(this,void 0,void 0,function*(){const{sessionId:cn}=this,mn=yield this.connection.peerConnection.getStats(),xn={};mn.forEach(er=>xn[er.id]=er),pt.a.debug("rtc-stats",Object.assign(Object.assign({},xn),{sessionId:cn}));const Gn=[...new Set(Array.from(this.sentMessagesCounts.keys()).concat(Array.from(this.receivedMessagesCounts.keys())))].reduce((er,cr)=>{const gr=this.sentMessagesCounts.get(cr),br=this.receivedMessagesCounts.get(cr);return Object.assign(Object.assign({},er),{[cr+"-sent"]:gr,[cr+"-received"]:br})},{sessionId:cn});pt.a.debug("rtc-message-report",Gn)})}}function Fr(hr,cn){return Pn(hr)===Pn(cn)}var Er=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class wr{constructor(cn,mn){this.peerConnection=cn,this.config=mn,this.connectTimeoutMs=10*st.a.second,this.gatherIceTimeoutMs=5*st.a.second,this.pingUpdateTimeoutMs=2*st.a.second,this.streamLatestTimestamp=new Map,this.closeCalled=!1,this.connectCalled=!1,this.sentOffer=!1,this.receivedIceCandidate=!1;const{isOffer:xn}=mn;xn?this.initializeChannels(cn):cn.ondatachannel=Gn=>{switch(Gn.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=Gn.channel;break;case"stream.reliable":this.reliableStreamChannel=Gn.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=Gn.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=Gn.channel}this.setupChannel(Gn.channel)},this.sessionMetrics=new jn(this.getSessionId(),this)}connect(){return Er(this,void 0,void 0,function*(){if(this.connectCalled)return;this.connectCalled=!0,this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:Gn}=this;Gn&&this.sendSystemMessage(Gn,{type:"ping"})},this.pingUpdateTimeoutMs),this.connectTimeout=setTimeout(()=>Er(this,void 0,void 0,function*(){this.isReady()||(pt.a.warn("RTC connect timed out, closing connection"),yield this.close())}),this.connectTimeoutMs);const{peerConnection:cn,config:{isOffer:mn,sessionId:xn}}=this;if(mn){const Gn=yield cn.createOffer();yield cn.setLocalDescription(Gn)}mn&&(this.gatherIceTimeout=setTimeout(()=>Er(this,void 0,void 0,function*(){this.sentOffer||(pt.a.warn("ICE gathering timed out"),this.receivedIceCandidate?(pt.a.warn("Attempting to connect with partial ICE candidate pool"),yield this.sendOffer()):yield this.close())}),this.gatherIceTimeoutMs),cn.onicecandidate=Gn=>Er(this,void 0,void 0,function*(){Gn.candidate?this.receivedIceCandidate=!0:yield this.sendOffer()}),cn.onicegatheringstatechange=()=>Er(this,void 0,void 0,function*(){cn.iceGatheringState==="complete"&&(yield this.sendOffer())}),cn.onnegotiationneeded=()=>{pt.a.debug("Negotiation needed",{sessionId:xn})})})}handleSignal(cn){return Er(this,void 0,void 0,function*(){const{peerConnection:mn,config:{sessionId:xn,sendSignal:Gn}}=this,{description:er}=JSON.parse(cn.payload);if(pt.a.debug("Handling signal",{sessionId:xn,description:JSON.stringify(er)}),er)if(mn.signalingState!=="stable"||mn.connectionState!=="connected")if(mn.remoteDescription)pt.a.warn("Received SDP signal during negotiation when remote description is already set: "+JSON.stringify(cn));else if(er.type==="offer"){yield mn.setRemoteDescription(er);const cr=yield mn.createAnswer();yield mn.setLocalDescription(cr),yield Gn({payload:JSON.stringify({description:cr})})}else er.type==="answer"&&(yield mn.setRemoteDescription(er));else pt.a.warn("Received SDP signal when signaling is stable and connected: "+JSON.stringify(cn));else pt.a.warn("Received non-SDP signal: "+JSON.stringify(cn))})}send(cn,mn){const xn=this.getChannelFromLabel(mn.channelLabel);xn?this.sendOnChannel(xn,cn):pt.a.warn("Send called with unexpected channel label",{channelLabel:mn.channelLabel})}controlRemoteStream(cn){this.sendSystemMessage(Zt(this.reliableStreamChannel),{type:"stream-control",streamControl:cn})}isActive(){return new Set(["new","connecting","connected"]).has(this.peerConnection.connectionState)}isReady(){const{peerConnection:cn,latestTtlStreamChannel:mn,reliableStreamChannel:xn,latestTryOnceStreamChannel:Gn}=this;return!!(xn&&mn&&Gn)&&cn.connectionState==="connected"&&xn.readyState==="open"&&mn.readyState==="open"&&Gn.readyState==="open"}isClosed(){const{peerConnection:cn,reliableStreamChannel:mn,latestTryOnceStreamChannel:xn,latestTtlStreamChannel:Gn}=this;return!(cn.connectionState!=="closed"||mn!==void 0&&mn.readyState!=="closed"||xn!==void 0&&xn.readyState!=="closed"||Gn!==void 0&&Gn.readyState!=="closed")}needsClosing(){const{peerConnection:cn,latestTtlStreamChannel:mn,reliableStreamChannel:xn,latestTryOnceStreamChannel:Gn}=this;if(this.isClosed())return!1;const er=new Set(["closing","closed"]),cr=gr=>gr&&er.has(gr.readyState);return Ir(cn)||cr(mn)||cr(xn)||cr(Gn)}close(){return Er(this,void 0,void 0,function*(){this.closeCalled||(this.closeCalled=!0,yield this.sessionMetrics.uploadMetrics(),this.pingUpdateTimeout&&clearInterval(this.pingUpdateTimeout),this.connectTimeout&&clearTimeout(this.connectTimeout),this.gatherIceTimeout&&clearTimeout(this.gatherIceTimeout),this.peerConnection.close())})}getPing(){return this.pingTimeMs}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionId(){return this.config.sessionId}getRemotePeer(){return this.config.remotePeer}initializeChannels(cn){this.latestTtlStreamChannel=cn.createDataChannel("stream.latest-ttl",Xt),this.reliableStreamChannel=cn.createDataChannel("stream.reliable",dn),this.latestReliableStreamChannel=cn.createDataChannel("stream.latest-reliable",_n),this.latestTryOnceStreamChannel=cn.createDataChannel("stream.latest-try-once",Fn),this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}sendOffer(){return Er(this,void 0,void 0,function*(){if(this.sentOffer||(this.sentOffer=!0,Ir(this.peerConnection)))return;const{peerConnection:cn,config:{sendSignal:mn}}=this,xn=yield cn.createOffer();yield cn.setLocalDescription(xn);const Gn={payload:JSON.stringify({description:xn})};yield mn(Gn)})}getChannelFromLabel(cn){switch(cn){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(cn,mn){let xn;try{xn=Object(on.encode)(JSON.stringify(mn))}catch(Gn){return void pt.a.warn("Failed to encode RTC message",{error:Gn})}try{cn.send(xn),this.sessionMetrics.incrementMessageSent(mn)}catch(Gn){pt.a.warn("Failed to send message to channel",{error:Gn,channel:cn.label})}}channelNotRecognized(cn){return cn!==this.latestTtlStreamChannel&&cn!==this.latestReliableStreamChannel&&cn!==this.latestTryOnceStreamChannel&&cn!==this.reliableStreamChannel}setupChannel(cn){cn.onmessage=mn=>{if(this.channelNotRecognized(cn))return void pt.a.warn("Received message on unrecognized data channel.");let xn;try{xn=JSON.parse(Object(on.decode)(mn.data))}catch(Gn){return void pt.a.warn("Received unparseable RTC message",{error:Gn,channel:cn.label})}if(this.lastMessageTimestamp=new Date().getTime(),xn=Wr(xn),this.sessionMetrics.incrementMessageReceived(xn),!this.handleSystemMessage(cn,xn)){if(!this.hasCapabilities(xn))return void pt.a.warn("Received RTC message that was not within the capability scope of the connection.");(cn===this.latestTryOnceStreamChannel||cn===this.latestTtlStreamChannel||cn===this.latestReliableStreamChannel)&&!this.isLatestMessage(xn)||this.config.receive(this.config.remotePeer.id,xn)}},cn.onerror=mn=>{pt.a.warn("Channel error: "+mn.error,{error:mn.error,sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onopen=()=>{pt.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onclose=()=>{const mn={bufferedAmount:cn.bufferedAmount,sessionId:this.getSessionId(),channelLabel:cn.label};this.closeCalled===!1?pt.a.debug("Unexpected channel closed",mn):pt.a.debug("Channel closed",mn)}}handleSystemMessage(cn,mn){switch(mn.header.stream.streamType){case"ping":return this.sendSystemMessage(cn,{type:"pong",timestamp:Zt(mn.payload.ping)}),!0;case"pong":{const xn=new Date().getTime()-Zt(mn.payload.pong);return this.pingTimeMs=xn,Tt.aggregate("rtc-ping-time",xn),!0}case"stream-control":return!0;default:return!1}}sendSystemMessage(cn,mn){if(cn.readyState!=="open")return;const xn={entityId:Zt(this.config.localPeer.deviceId||this.config.localPeer.userId),streamName:"$."+mn.type,streamType:mn.type};let Gn;switch(mn.type){case"ping":Gn={ping:new Date().getTime()};break;case"pong":Gn={pong:mn.timestamp};break;case"stream-control":Gn={streamControl:mn.streamControl}}this.sendOnChannel(cn,Qr(xn,Gn))}hasCapabilities(cn){var mn,xn;const{localPeer:Gn,remotePeer:er}=this.config,cr=(mn=Gn.capabilitySet.streaming)===null||mn===void 0?void 0:mn.streams,gr=cr&&cr.some(nr=>nr.receive&&Fr(nr.stream,cn.header.stream)),br=(xn=er.capabilitySet.streaming)===null||xn===void 0?void 0:xn.streams,ur=br&&br.some(nr=>nr.send&&Fr(nr.stream,cn.header.stream));return gr||ur}isLatestMessage(cn){const mn=Pn(cn.header.stream),xn=(this.streamLatestTimestamp.get(mn)||0)<=cn.header.created;return xn&&this.streamLatestTimestamp.set(mn,cn.header.created),xn}}var tr=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class ar{constructor(cn){this.config=cn,this.connections=[],this.connectingSessions=new Map,this.rtcInstancesConstructed=0,this.updateInterval=vt({func:()=>tr(this,void 0,void 0,function*(){try{yield this.update()}catch(mn){pt.a.warn("RTC update failed",{error:mn})}}),delay:250*st.a.millisecond,immediate:!0}),this.localPeer=this.createPeer()}send(cn,mn,xn){const Gn=this.getActiveConnection(cn);Gn?Gn.isReady()?Gn.send(mn,xn):pt.a.warn("Attempted to send with an active connection to that peer which was not yet ready."):pt.a.warn("Attempted to send with no active connection to that peer.")}controlRemoteStream(cn,mn){const xn=this.getActiveConnection(cn);xn?xn.isReady()?xn.controlRemoteStream(mn):pt.a.warn("Attempted to control remote stream with an active connection to that peer which was not yet ready."):pt.a.warn("Attempted to control remote stream with no active connection to that peer.")}connect(cn){return tr(this,void 0,void 0,function*(){const mn=yield this.getLocalPeer();if(this.getActiveConnection(cn))return void pt.a.warn("Attempted to connect to peer with an already active connection.");let xn;try{xn=yield this.config.signalingClient.createSession(yield this.config.getToken(),{offerPeerId:mn.id,answerPeerId:cn})}catch(Gn){Object(pn.a)(Gn,Qn.a,er=>er.statusCode===404),pt.a.warn("Attempted to connect to peer that does not exist.")}if(xn)for(this.connectingSessions.set(xn.id,new Date().getTime()),yield this.connectToSession(xn);;)switch(yield Object(at.a)(.1),this.getConnectionStatus(cn)){case"connecting":continue;case"connected":return xn.id;case"disconnected":return}})}getConnectionStatus(cn){const mn=this.getActiveConnection(cn);return mn?mn.isReady()?"connected":"connecting":"disconnected"}getIceMode(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.iceMode}disconnect(cn){return tr(this,void 0,void 0,function*(){const mn=this.getActiveConnection(cn);mn&&(yield this.closeConnection(mn))})}getLocalPeer(){return tr(this,void 0,void 0,function*(){return yield this.localPeer})}getPeers(){return tr(this,void 0,void 0,function*(){return yield this.config.signalingClient.getPeers(yield this.config.getToken())})}getPing(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getPing();pt.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getLastMessageTimestamp();pt.a.warn("Attempted to get ping time from inactive peer.")}shutdown(){return tr(this,void 0,void 0,function*(){yield this.updateInterval.stop();const cn=this.connections;this.connections=[],yield this.closeConnections(cn)})}closeConnection(cn){return tr(this,void 0,void 0,function*(){this.connectingSessions.delete(cn.getSessionId()),yield cn.close();try{yield this.config.signalingClient.deleteSession(yield this.config.getToken(),cn.getSessionId())}catch(mn){Object(pn.a)(mn,Qn.a,xn=>xn.statusCode===404)}})}getSessions(){return tr(this,void 0,void 0,function*(){const cn=yield this.getLocalPeer();return(yield this.config.signalingClient.getSessions(yield this.config.getToken())).filter(mn=>mn.offer.peer.id===cn.id||mn.answer.peer.id===cn.id)})}createPeer(){return tr(this,void 0,void 0,function*(){return yield this.config.signalingClient.createPeer(yield this.config.getToken(),{capabilitySet:this.config.capabilitySet||{}})})}createRTCPeerConnection(cn={}){return tr(this,void 0,void 0,function*(){const mn=this.config.alternateRTCPeerConnection||RTCPeerConnection;this.rtcInstancesConstructed++,this.rtcInstancesConstructed%20||Yr();try{return new mn(Object.assign({iceServers:yield this.config.signalingClient.getIceServers(yield this.config.getToken())},cn))}catch(xn){throw pt.a.debug(`Failed to create RTCPeerConnection: ${this.rtcInstancesConstructed} total allocated`),xn}})}closeConnections(cn){return tr(this,void 0,void 0,function*(){const mn=yield en(cn.map(xn=>tr(this,void 0,void 0,function*(){yield this.closeConnection(xn)})));for(const xn of mn)pt.a.warn("Request to close session failed",{error:xn})})}reset(){return tr(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.connectingSessions=new Map,this.localPeer=this.createPeer(),yield this.localPeer})}getActiveConnection(cn){return this.connections.find(mn=>mn.getRemotePeer().id===cn&&mn.isActive())}update(){return tr(this,void 0,void 0,function*(){const cn=yield this.getLocalPeer();try{yield this.config.signalingClient.refreshPeer(yield this.config.getToken(),cn.id)}catch(mn){Object(pn.a)(mn,Qn.a,xn=>xn.statusCode===404),pt.a.warn("Peer expired, creating new peer",{peerId:cn.id}),yield this.reset()}yield this.handleSessions(yield this.getSessions())})}handleSessions(cn){return tr(this,void 0,void 0,function*(){yield this.syncConnectionsAndSessions(cn);const mn=cn.map(xn=>({session:xn,connection:this.connections.find(Gn=>Gn.getSessionId()===xn.id)}));yield Promise.all(mn.map(({session:xn,connection:Gn})=>tr(this,void 0,void 0,function*(){return yield this.maintainConnection(xn,Gn)})))})}syncConnectionsAndSessions(cn){return tr(this,void 0,void 0,function*(){const mn=new Set(cn.map(er=>er.id)),xn=er=>mn.has(er.getSessionId())||this.connectingSessions.has(er.getSessionId());this.connections=this.connections.filter(er=>xn(er));const Gn=this.connections.filter(er=>!xn(er)||er.needsClosing());yield Promise.all(Gn.map(er=>tr(this,void 0,void 0,function*(){yield this.closeConnection(er)})))})}maintainConnection(cn,mn){return tr(this,void 0,void 0,function*(){const xn=yield this.getLocalPeer(),Gn=cn.offer.peer.id===xn.id;if(mn){if(mn.isReady())try{yield this.config.signalingClient.refreshSession(yield this.config.getToken(),cn.id)}catch(er){Object(pn.a)(er,Qn.a,cr=>cr.statusCode===404),pt.a.debug("Refresh session not found",{sessionId:cn.id})}else if(mn.isActive())try{yield this.consumeSignals(mn)}catch(er){pt.a.warn("Failed to ingest signals, closing connection",{error:er}),yield this.closeConnection(mn)}}else{if(Gn)return;yield this.connectToSession(cn)}})}connectToSession(cn){return tr(this,void 0,void 0,function*(){const mn=yield this.getLocalPeer(),xn=cn.offer.peer.id===mn.id,Gn=yield this.createRTCPeerConnection(),er=new wr(Gn,{localPeer:xn?cn.offer.peer:cn.answer.peer,remotePeer:xn?cn.answer.peer:cn.offer.peer,sessionId:cn.id,isOffer:xn,sendSignal:cr=>this.sendSignal(cn.id,cr),receive:(cr,gr)=>this.config.receive(cr,gr)});if(this.connections.find(cr=>cr.getSessionId()===cn.id))return pt.a.warn("connectToSession called on a session that already has a connection.",{sessionId:cn.id}),void(yield er.close());this.setupHandlers(er),this.connections.push(er);try{yield er.connect()}catch(cr){pt.a.warn("Failed to handle negotiation, closing connection",{error:cr}),yield this.closeConnection(er)}})}setupHandlers(cn){const{peerConnection:mn}=cn,xn=cn.getSessionId();mn.onconnectionstatechange=()=>tr(this,void 0,void 0,function*(){const Gn=this.connectingSessions.get(xn);if(Gn===void 0)return;const er=mn.connectionState;switch(Ir(mn)&&this.connectingSessions.delete(xn),er){case"connected":{this.connectingSessions.delete(xn);const cr=new Date().getTime()-Gn;Tt.aggregate("rtc-connect-time",cr);break}case"failed":Tt.increment("rtc-connect-failed"),yield this.closeConnection(cn)}})}consumeSignals(cn){return tr(this,void 0,void 0,function*(){let mn=[];try{mn=yield this.config.signalingClient.takeSignals(yield this.config.getToken(),cn.getSessionId())}catch(xn){Object(pn.a)(xn,Qn.a,Gn=>Gn.statusCode===404)}for(const xn of mn)yield cn.handleSignal(xn)})}sendSignal(cn,mn){return tr(this,void 0,void 0,function*(){try{yield this.config.signalingClient.addSignals(yield this.config.getToken(),cn,{signals:[mn]})}catch(xn){Object(pn.a)(xn,Qn.a,Gn=>Gn.statusCode===404)}})}}},,function(s,o,et){et.r(o),et.d(o,"LogClient",function(){return ot});var tt=et(26),nt=et(12),rt=et(11),it=function(st,at,lt,ut){return new(lt||(lt=Promise))(function(dt,ht){function ct(gt){try{ft(ut.next(gt))}catch(yt){ht(yt)}}function pt(gt){try{ft(ut.throw(gt))}catch(yt){ht(yt)}}function ft(gt){var yt;gt.done?dt(gt.value):(yt=gt.value,yt instanceof lt?yt:new lt(function(Ut){Ut(yt)})).then(ct,pt)}ft((ut=ut.apply(st,at||[])).next())})};class ot extends tt.a{log(at){return it(this,void 0,void 0,function*(){const lt=ot.token;try{yield this.fetch("logs",{token:lt,method:"POST",body:{logs:at},allowUnsafeRetries:!0})}catch(ut){Object(nt.a)(ut,rt.a,dt=>dt.statusCode===401&<!==void 0),ot.token===lt&&delete ot.token,yield this.log(at)}})}}},function(s,o,et){var tt={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let nt;const rt=new Uint8Array(16);function it(){if(!nt&&(nt=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!nt))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return nt(rt)}const ot=[];for(let at=0;at<256;++at)ot.push((at+256).toString(16).slice(1));function st(at,lt=0){return(ot[at[lt+0]]+ot[at[lt+1]]+ot[at[lt+2]]+ot[at[lt+3]]+"-"+ot[at[lt+4]]+ot[at[lt+5]]+"-"+ot[at[lt+6]]+ot[at[lt+7]]+"-"+ot[at[lt+8]]+ot[at[lt+9]]+"-"+ot[at[lt+10]]+ot[at[lt+11]]+ot[at[lt+12]]+ot[at[lt+13]]+ot[at[lt+14]]+ot[at[lt+15]]).toLowerCase()}o.a=function(at,lt,ut){if(tt.randomUUID&&!lt&&!at)return tt.randomUUID();const dt=(at=at||{}).random||(at.rng||it)();if(dt[6]=15&dt[6]|64,dt[8]=63&dt[8]|128,lt){ut=ut||0;for(let ht=0;ht<16;++ht)lt[ut+ht]=dt[ht];return lt}return st(dt)}}])})})(dist);var distExports=dist.exports;const SessionTypes={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3,HEADLESS:4},singleton=Symbol("RtcClientPool.instance");var Sn;class RtcClientPool{constructor(o){he(this,Sn,null),he(this,"createClient"),he(this,"ttlMs"),he(this,"proxyHandler"),he(this,"proxyReceivers",new Map),he(this,"teardownTimeout",null),he(this,"dispatch",(nt,rt)=>{this.proxyReceivers.forEach(it=>it?.(nt,rt))});const{createClient:et,ttlMs:tt=0}=o;this.createClient=et,this.ttlMs=Math.max(tt,0),this.proxyHandler={get:(nt,rt,it)=>{switch(rt){case"shutdown":return()=>this.releaseInstance(it);default:return Reflect.get(nt,rt,it)}}}}get isActive(){return this[singleton]!==null}get size(){return this.proxyReceivers.size}get(o){const et=new Proxy(this.allocate(),this.proxyHandler);return this.proxyReceivers.set(et,o??null),et}allocate(){if(this[singleton])return this.teardownTimeout&&(clearTimeout(this.teardownTimeout),this.teardownTimeout=null),this[singleton];const o=this.createClient(this.dispatch);return this[singleton]=o,o}async teardown(){const o=this[singleton];if(!o){console.warn("singleton has already been shutdown!");return}try{await o.shutdown()}finally{this[singleton]=null}}async releaseInstance(o){return this.proxyReceivers.delete(o)?this.proxyReceivers.size!==0?!1:(!this.teardownTimeout&&Number.isFinite(this.ttlMs)&&(this.ttlMs===0?await this.teardown():this.teardownTimeout=setTimeout(()=>{this.teardown().catch(et=>console.error("teardown failed",{err:et})).finally(()=>this.teardownTimeout=null)},this.ttlMs)),!0):(console.warn("this instance has already been released!"),!1)}}Sn=singleton;const getToken=async()=>defined$1(Authentication.token,"Realtime when user isn't authorized"),EnumRtcClientPools={[SessionTypes.UNKNOWN]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.UNKNOWN,receive:s})}),[SessionTypes.TELEOP]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.TELEOP,receive:s})}),[SessionTypes.PORT_FORWARD]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.PORT_FORWARD,receive:s})}),[SessionTypes.OBSERVE]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.OBSERVE,receive:s})}),[SessionTypes.HEADLESS]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.HEADLESS,receive:s})})},AppRtcClientPools={...EnumRtcClientPools,unknown:EnumRtcClientPools[SessionTypes.UNKNOWN],teleop:EnumRtcClientPools[SessionTypes.TELEOP],portForward:EnumRtcClientPools[SessionTypes.PORT_FORWARD],observe:EnumRtcClientPools[SessionTypes.OBSERVE],headless:EnumRtcClientPools[SessionTypes.HEADLESS]},defaultRtcClientPool=EnumRtcClientPools[SessionTypes.TELEOP],getRtcClientPool=s=>{const{sessionType:o}=s;return o?AppRtcClientPools[o]:defaultRtcClientPool};class CaptureStream{constructor(o){he(this,"token"),this.captureSession=o}async ingestJSON(o){if(!this.token){const et=await(await fetch(`${FORMANT_API_URL}/v1/admin/capture-sessions/${this.captureSession.code}/authenticate`,{method:"POST"})).json();this.token=et.token}await fetch(`${FORMANT_API_URL}/v1/ingest`,{method:"POST",body:JSON.stringify({deviceId:this.captureSession.deviceId,name:this.captureSession.streamName,type:"json",points:[[Date.now(),JSON.stringify(o)]]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+this.token}})}}function delay$1(s){return new Promise(o=>setTimeout(o,s))}const isRtcPeer=s=>s!==void 0&&s.capabilities!==void 0&&s.capabilitySet!==void 0;class DataChannel{constructor(o){he(this,"ready",!1),he(this,"listeners",[]),he(this,"openListeners",[]),he(this,"closeListeners",[]),he(this,"errorListeners",[]),he(this,"binaryListeners",[]),he(this,"error"),he(this,"decoder",new TextDecoder),this.dataChannel=o,this.dataChannel.binaryType="arraybuffer",this.dataChannel.onopen=()=>{this.setReady()},this.dataChannel.onclose=()=>{this.ready=!1,this.closeListeners.forEach(et=>et())},this.dataChannel.onerror=et=>{console.error(et),this.error="An error occurred in DataChannel",this.errorListeners.forEach(tt=>tt(et))},this.dataChannel.onmessage=et=>{this.listeners.forEach(tt=>{const nt=new Uint8Array(et.data),rt=this.decoder.decode(nt);tt(rt)}),this.binaryListeners.forEach(tt=>{tt(new Uint8Array(et.data))})}}setReady(){this.ready=!0,this.openListeners.forEach(o=>o())}addOpenListener(o){this.openListeners.push(o)}removeOpenListener(o){this.openListeners=this.openListeners.filter(et=>et!==o)}addCloseListener(o){this.closeListeners.push(o)}removeCloseListener(o){this.closeListeners=this.closeListeners.filter(et=>et!==o)}addErrorListener(o){this.errorListeners.push(o)}removeErrorListener(o){this.errorListeners=this.errorListeners.filter(et=>et!==o)}async waitTilReady(){return this.ready?!0:new Promise((o,et)=>{let tt=setInterval(()=>{this.dataChannel.readyState==="open"&&this.setReady(),this.ready&&(clearInterval(tt),o(!0)),this.error&&et(this.error)},10)})}send(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}sendBinary(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}addListener(o){this.listeners.push(o)}removeListener(o){const et=this.listeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.listeners.splice(et,1)}addBinaryListener(o){this.binaryListeners.push(o)}removeBinaryListener(o){const et=this.binaryListeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.binaryListeners.splice(et,1)}}var eventemitter3={exports:{}};(function(s){var o=Object.prototype.hasOwnProperty,et="~";function tt(){}Object.create&&(tt.prototype=Object.create(null),new tt().__proto__||(et=!1));function nt(st,at,lt){this.fn=st,this.context=at,this.once=lt||!1}function rt(st,at,lt,ut,dt){if(typeof lt!="function")throw new TypeError("The listener must be a function");var ht=new nt(lt,ut||st,dt),ct=et?et+at:at;return st._events[ct]?st._events[ct].fn?st._events[ct]=[st._events[ct],ht]:st._events[ct].push(ht):(st._events[ct]=ht,st._eventsCount++),st}function it(st,at){--st._eventsCount===0?st._events=new tt:delete st._events[at]}function ot(){this._events=new tt,this._eventsCount=0}ot.prototype.eventNames=function(){var st=[],at,lt;if(this._eventsCount===0)return st;for(lt in at=this._events)o.call(at,lt)&&st.push(et?lt.slice(1):lt);return Object.getOwnPropertySymbols?st.concat(Object.getOwnPropertySymbols(at)):st},ot.prototype.listeners=function(st){var at=et?et+st:st,lt=this._events[at];if(!lt)return[];if(lt.fn)return[lt.fn];for(var ut=0,dt=lt.length,ht=new Array(dt);ut{nt.payload.jointState&&this.currentListeners.forEach(rt=>{nt.payload.jointState&&rt(nt.payload.jointState)})}),this.device=o,this.config=et}async synchronize(){this.device.addRealtimeListener(this.onRealtimeMessage),this.device.startListeningToRealtimeDataStream(this.config.currentJointStateStream)}async desynchronize(){this.device.removeRealtimeListener(this.onRealtimeMessage),this.device.stopListeningToRealtimeDataStream(this.config.currentJointStateStream)}async addCurrentJointStateListener(o){this.currentListeners.push(o)}}class RequestDataChannel{constructor(o,et,tt){he(this,"channel"),he(this,"requestIdToResponseMap",new Map),this.device=o,this.channel_name=et,this.timeout=tt}addOpenListener(o){defined$1(this.channel,"channel not initalized").addOpenListener(o)}removeOpenListener(o){defined$1(this.channel,"channel not initalized").removeOpenListener(o)}addCloseListener(o){defined$1(this.channel,"channel not initalized").addCloseListener(o)}removeCloseListener(o){defined$1(this.channel,"channel not initalized").removeCloseListener(o)}addErrorListener(o){defined$1(this.channel,"channel not initalized").addErrorListener(o)}removeErrorListener(o){defined$1(this.channel,"channel not initalized").removeErrorListener(o)}}class BinaryRequestDataChannel extends RequestDataChannel{constructor(){super(...arguments),he(this,"RESPONSE_SUCCESS_BYTE",0),he(this,"decoder",new TextDecoder)}generateBinaryId(){const o=new Uint8Array(16);for(let et=0;et{const et=o.slice(0,16).toString();if(et.length===0)throw new Error("Invalid response");const tt=o.slice(16);if(tt.length===0)throw new Error("Invalid response");this.requestIdToResponseMap.has(et)&&this.requestIdToResponseMap.set(et,tt)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateBinaryId(),it=rt.toString();tt.set(it,!0),et.sendBinary(new Uint8Array([...rt,...o]));const ot=new Date().getTime();for(;new Date().getTime(){const et=JSON.parse(o),{id:tt,data:nt,error:rt}=et;if(!tt)throw new Error("Invalid response");if(!nt&&!rt)throw new Error("Invalid response");this.requestIdToResponseMap.has(tt)&&this.requestIdToResponseMap.set(tt,et)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateTextId();tt.set(rt,!0),et.send(JSON.stringify({id:rt,data:o}));const it=new Date().getTime();for(;new Date().getTime(){this.realtimeListeners.forEach(tt=>tt(o,et))})}stopConnectionMonitoring(){clearInterval(this.connectionMonitorInterval),this.connectionMonitorInterval=void 0}assertNotCancelled(o){if(o)throw new Error("Cancelled by deadline")}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}addRealtimeListener(o){this.realtimeListeners.push(o)}removeRealtimeListener(o){const et=this.realtimeListeners.indexOf(o);if(et===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(et,1)}async getRealtimeManipulators(){var o;const et=await this.getConfiguration(),tt=[];for(const nt of(o=et.teleop.rosStreams)!=null?o:[])nt.topicType=="sensor_msgs/JointState"&&tt.push(new Manipulator(this,{currentJointStateStream:{name:nt.topicName},plannedJointStateStream:nt.plannedTopic?{name:nt.plannedTopic}:void 0,planValidStream:nt.planValidTopic?{name:nt.planValidTopic}:void 0,endEffectorStream:nt.endEffectorTopic?{name:nt.endEffectorTopic}:void 0,endEffectorLinkName:nt.endEffectorLinkName,baseReferenceFrame:nt.baseReferenceFrame,localFrame:nt.localFrame}));return tt}async getRealtimeVideoStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="formant/H264VideoFrame"&&st.push({name:at.topicName}),(at.topicType==="sensor_msgs/Image"||at.topicType==="sensor_msgs/CompressedImage")&&at.encodeVideo&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});return st}createCustomRequestDataChannel(o,et=3e3){return new TextRequestDataChannel(this,o,et)}createCustomBinaryRequestDataChannel(o,et=3e3){return new BinaryRequestDataChannel(this,o,et)}async startListeningToRealtimeVideo(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o,enablePriorityUpload:!0,pipeline:"telemetry"})}async disableRealtimeTelemetryPriorityIngestion(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o,enablePriorityUpload:!1,pipeline:"telemetry"})}async changeStreamAudioType(o,et){const tt=defined$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.controlRemoteStream(defined$1(nt).id,{streamName:o,setAudioFormat:et})}async createCustomDataChannel(o,et){const tt=defined$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer(),rt=await new Promise(it=>{tt.createCustomDataChannel(defined$1(nt).id,o,{ordered:!0,...et},!1,(ot,st)=>{const at=new DataChannel(st);it(at)})});return await rt.waitTilReady(),rt}async sendRealtimeMessage(o,et={channelLabel:"stream.reliable"}){const tt=defined$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.send(defined$1(nt).id,o,et)}async getRealtimeAudioStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="audio_common_msgs/AudioData"&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});return st}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Z_FIXED$1=4,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN$1=2;function zero$1(s){let o=s.length;for(;--o>=0;)s[o]=0}const STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH$1=3,MAX_MATCH$1=258,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,BL_CODES$1=19,HEAP_SIZE$1=2*L_CODES$1+1,MAX_BITS$1=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),extra_dbits=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),extra_blbits=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),bl_order=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),DIST_CODE_LEN=512,static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);const static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);const _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);const _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);const base_length=new Array(LENGTH_CODES$1);zero$1(base_length);const base_dist=new Array(D_CODES$1);zero$1(base_dist);function StaticTreeDesc(s,o,et,tt,nt){this.static_tree=s,this.extra_bits=o,this.extra_base=et,this.elems=tt,this.max_length=nt,this.has_stree=s&&s.length}let static_l_desc,static_d_desc,static_bl_desc;function TreeDesc(s,o){this.dyn_tree=s,this.max_code=0,this.stat_desc=o}const d_code=s=>s<256?_dist_code[s]:_dist_code[256+(s>>>7)],put_short=(s,o)=>{s.pending_buf[s.pending++]=o&255,s.pending_buf[s.pending++]=o>>>8&255},send_bits=(s,o,et)=>{s.bi_valid>Buf_size-et?(s.bi_buf|=o<>Buf_size-s.bi_valid,s.bi_valid+=et-Buf_size):(s.bi_buf|=o<{send_bits(s,et[o*2],et[o*2+1])},bi_reverse=(s,o)=>{let et=0;do et|=s&1,s>>>=1,et<<=1;while(--o>0);return et>>>1},bi_flush=s=>{s.bi_valid===16?(put_short(s,s.bi_buf),s.bi_buf=0,s.bi_valid=0):s.bi_valid>=8&&(s.pending_buf[s.pending++]=s.bi_buf&255,s.bi_buf>>=8,s.bi_valid-=8)},gen_bitlen=(s,o)=>{const et=o.dyn_tree,tt=o.max_code,nt=o.stat_desc.static_tree,rt=o.stat_desc.has_stree,it=o.stat_desc.extra_bits,ot=o.stat_desc.extra_base,st=o.stat_desc.max_length;let at,lt,ut,dt,ht,ct,pt=0;for(dt=0;dt<=MAX_BITS$1;dt++)s.bl_count[dt]=0;for(et[s.heap[s.heap_max]*2+1]=0,at=s.heap_max+1;atst&&(dt=st,pt++),et[lt*2+1]=dt,!(lt>tt)&&(s.bl_count[dt]++,ht=0,lt>=ot&&(ht=it[lt-ot]),ct=et[lt*2],s.opt_len+=ct*(dt+ht),rt&&(s.static_len+=ct*(nt[lt*2+1]+ht)));if(pt!==0){do{for(dt=st-1;s.bl_count[dt]===0;)dt--;s.bl_count[dt]--,s.bl_count[dt+1]+=2,s.bl_count[st]--,pt-=2}while(pt>0);for(dt=st;dt!==0;dt--)for(lt=s.bl_count[dt];lt!==0;)ut=s.heap[--at],!(ut>tt)&&(et[ut*2+1]!==dt&&(s.opt_len+=(dt-et[ut*2+1])*et[ut*2],et[ut*2+1]=dt),lt--)}},gen_codes=(s,o,et)=>{const tt=new Array(MAX_BITS$1+1);let nt=0,rt,it;for(rt=1;rt<=MAX_BITS$1;rt++)nt=nt+et[rt-1]<<1,tt[rt]=nt;for(it=0;it<=o;it++){let ot=s[it*2+1];ot!==0&&(s[it*2]=bi_reverse(tt[ot]++,ot))}},tr_static_init=()=>{let s,o,et,tt,nt;const rt=new Array(MAX_BITS$1+1);for(et=0,tt=0;tt>=7;tt{let o;for(o=0;o{s.bi_valid>8?put_short(s,s.bi_buf):s.bi_valid>0&&(s.pending_buf[s.pending++]=s.bi_buf),s.bi_buf=0,s.bi_valid=0},smaller=(s,o,et,tt)=>{const nt=o*2,rt=et*2;return s[nt]{const tt=s.heap[et];let nt=et<<1;for(;nt<=s.heap_len&&(nt{let tt,nt,rt=0,it,ot;if(s.sym_next!==0)do tt=s.pending_buf[s.sym_buf+rt++]&255,tt+=(s.pending_buf[s.sym_buf+rt++]&255)<<8,nt=s.pending_buf[s.sym_buf+rt++],tt===0?send_code(s,nt,o):(it=_length_code[nt],send_code(s,it+LITERALS$1+1,o),ot=extra_lbits[it],ot!==0&&(nt-=base_length[it],send_bits(s,nt,ot)),tt--,it=d_code(tt),send_code(s,it,et),ot=extra_dbits[it],ot!==0&&(tt-=base_dist[it],send_bits(s,tt,ot)));while(rt{const et=o.dyn_tree,tt=o.stat_desc.static_tree,nt=o.stat_desc.has_stree,rt=o.stat_desc.elems;let it,ot,st=-1,at;for(s.heap_len=0,s.heap_max=HEAP_SIZE$1,it=0;it>1;it>=1;it--)pqdownheap(s,et,it);at=rt;do it=s.heap[1],s.heap[1]=s.heap[s.heap_len--],pqdownheap(s,et,1),ot=s.heap[1],s.heap[--s.heap_max]=it,s.heap[--s.heap_max]=ot,et[at*2]=et[it*2]+et[ot*2],s.depth[at]=(s.depth[it]>=s.depth[ot]?s.depth[it]:s.depth[ot])+1,et[it*2+1]=et[ot*2+1]=at,s.heap[1]=at++,pqdownheap(s,et,1);while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1],gen_bitlen(s,o),gen_codes(et,st,s.bl_count)},scan_tree=(s,o,et)=>{let tt,nt=-1,rt,it=o[0*2+1],ot=0,st=7,at=4;for(it===0&&(st=138,at=3),o[(et+1)*2+1]=65535,tt=0;tt<=et;tt++)rt=it,it=o[(tt+1)*2+1],!(++ot{let tt,nt=-1,rt,it=o[0*2+1],ot=0,st=7,at=4;for(it===0&&(st=138,at=3),tt=0;tt<=et;tt++)if(rt=it,it=o[(tt+1)*2+1],!(++ot{let o;for(scan_tree(s,s.dyn_ltree,s.l_desc.max_code),scan_tree(s,s.dyn_dtree,s.d_desc.max_code),build_tree(s,s.bl_desc),o=BL_CODES$1-1;o>=3&&s.bl_tree[bl_order[o]*2+1]===0;o--);return s.opt_len+=3*(o+1)+5+5+4,o},send_all_trees=(s,o,et,tt)=>{let nt;for(send_bits(s,o-257,5),send_bits(s,et-1,5),send_bits(s,tt-4,4),nt=0;nt{let o=4093624447,et;for(et=0;et<=31;et++,o>>>=1)if(o&1&&s.dyn_ltree[et*2]!==0)return Z_BINARY;if(s.dyn_ltree[9*2]!==0||s.dyn_ltree[10*2]!==0||s.dyn_ltree[13*2]!==0)return Z_TEXT;for(et=32;et{static_init_done||(tr_static_init(),static_init_done=!0),s.l_desc=new TreeDesc(s.dyn_ltree,static_l_desc),s.d_desc=new TreeDesc(s.dyn_dtree,static_d_desc),s.bl_desc=new TreeDesc(s.bl_tree,static_bl_desc),s.bi_buf=0,s.bi_valid=0,init_block(s)},_tr_stored_block$1=(s,o,et,tt)=>{send_bits(s,(STORED_BLOCK<<1)+(tt?1:0),3),bi_windup(s),put_short(s,et),put_short(s,~et),et&&s.pending_buf.set(s.window.subarray(o,o+et),s.pending),s.pending+=et},_tr_align$1=s=>{send_bits(s,STATIC_TREES<<1,3),send_code(s,END_BLOCK,static_ltree),bi_flush(s)},_tr_flush_block$1=(s,o,et,tt)=>{let nt,rt,it=0;s.level>0?(s.strm.data_type===Z_UNKNOWN$1&&(s.strm.data_type=detect_data_type(s)),build_tree(s,s.l_desc),build_tree(s,s.d_desc),it=build_bl_tree(s),nt=s.opt_len+3+7>>>3,rt=s.static_len+3+7>>>3,rt<=nt&&(nt=rt)):nt=rt=et+5,et+4<=nt&&o!==-1?_tr_stored_block$1(s,o,et,tt):s.strategy===Z_FIXED$1||rt===nt?(send_bits(s,(STATIC_TREES<<1)+(tt?1:0),3),compress_block(s,static_ltree,static_dtree)):(send_bits(s,(DYN_TREES<<1)+(tt?1:0),3),send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,it+1),compress_block(s,s.dyn_ltree,s.dyn_dtree)),init_block(s),tt&&bi_windup(s)},_tr_tally$1=(s,o,et)=>(s.pending_buf[s.sym_buf+s.sym_next++]=o,s.pending_buf[s.sym_buf+s.sym_next++]=o>>8,s.pending_buf[s.sym_buf+s.sym_next++]=et,o===0?s.dyn_ltree[et*2]++:(s.matches++,o--,s.dyn_ltree[(_length_code[et]+LITERALS$1+1)*2]++,s.dyn_dtree[d_code(o)*2]++),s.sym_next===s.sym_end);var _tr_init_1=_tr_init$1,_tr_stored_block_1=_tr_stored_block$1,_tr_flush_block_1=_tr_flush_block$1,_tr_tally_1=_tr_tally$1,_tr_align_1=_tr_align$1,trees={_tr_init:_tr_init_1,_tr_stored_block:_tr_stored_block_1,_tr_flush_block:_tr_flush_block_1,_tr_tally:_tr_tally_1,_tr_align:_tr_align_1};const adler32=(s,o,et,tt)=>{let nt=s&65535|0,rt=s>>>16&65535|0,it=0;for(;et!==0;){it=et>2e3?2e3:et,et-=it;do nt=nt+o[tt++]|0,rt=rt+nt|0;while(--it);nt%=65521,rt%=65521}return nt|rt<<16|0};var adler32_1=adler32;const makeTable=()=>{let s,o=[];for(var et=0;et<256;et++){s=et;for(var tt=0;tt<8;tt++)s=s&1?3988292384^s>>>1:s>>>1;o[et]=s}return o},crcTable=new Uint32Array(makeTable()),crc32=(s,o,et,tt)=>{const nt=crcTable,rt=tt+et;s^=-1;for(let it=tt;it>>8^nt[(s^o[it])&255];return s^-1};var crc32_1=crc32,messages={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},constants$2={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init,_tr_stored_block,_tr_flush_block,_tr_tally,_tr_align}=trees,{Z_NO_FLUSH:Z_NO_FLUSH$2,Z_PARTIAL_FLUSH,Z_FULL_FLUSH:Z_FULL_FLUSH$1,Z_FINISH:Z_FINISH$3,Z_BLOCK:Z_BLOCK$1,Z_OK:Z_OK$3,Z_STREAM_END:Z_STREAM_END$3,Z_STREAM_ERROR:Z_STREAM_ERROR$2,Z_DATA_ERROR:Z_DATA_ERROR$2,Z_BUF_ERROR:Z_BUF_ERROR$1,Z_DEFAULT_COMPRESSION:Z_DEFAULT_COMPRESSION$1,Z_FILTERED,Z_HUFFMAN_ONLY,Z_RLE,Z_FIXED,Z_DEFAULT_STRATEGY:Z_DEFAULT_STRATEGY$1,Z_UNKNOWN,Z_DEFLATED:Z_DEFLATED$2}=constants$2,MAX_MEM_LEVEL=9,MAX_WBITS$1=15,DEF_MEM_LEVEL=8,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,GZIP_STATE=57,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3,err=(s,o)=>(s.msg=messages[o],o),rank=s=>s*2-(s>4?9:0),zero=s=>{let o=s.length;for(;--o>=0;)s[o]=0},slide_hash=s=>{let o,et,tt,nt=s.w_size;o=s.hash_size,tt=o;do et=s.head[--tt],s.head[tt]=et>=nt?et-nt:0;while(--o);o=nt,tt=o;do et=s.prev[--tt],s.prev[tt]=et>=nt?et-nt:0;while(--o)};let HASH_ZLIB=(s,o,et)=>(o<{const o=s.state;let et=o.pending;et>s.avail_out&&(et=s.avail_out),et!==0&&(s.output.set(o.pending_buf.subarray(o.pending_out,o.pending_out+et),s.next_out),s.next_out+=et,o.pending_out+=et,s.total_out+=et,s.avail_out-=et,o.pending-=et,o.pending===0&&(o.pending_out=0))},flush_block_only=(s,o)=>{_tr_flush_block(s,s.block_start>=0?s.block_start:-1,s.strstart-s.block_start,o),s.block_start=s.strstart,flush_pending(s.strm)},put_byte=(s,o)=>{s.pending_buf[s.pending++]=o},putShortMSB=(s,o)=>{s.pending_buf[s.pending++]=o>>>8&255,s.pending_buf[s.pending++]=o&255},read_buf=(s,o,et,tt)=>{let nt=s.avail_in;return nt>tt&&(nt=tt),nt===0?0:(s.avail_in-=nt,o.set(s.input.subarray(s.next_in,s.next_in+nt),et),s.state.wrap===1?s.adler=adler32_1(s.adler,o,nt,et):s.state.wrap===2&&(s.adler=crc32_1(s.adler,o,nt,et)),s.next_in+=nt,s.total_in+=nt,nt)},longest_match=(s,o)=>{let et=s.max_chain_length,tt=s.strstart,nt,rt,it=s.prev_length,ot=s.nice_match;const st=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0,at=s.window,lt=s.w_mask,ut=s.prev,dt=s.strstart+MAX_MATCH;let ht=at[tt+it-1],ct=at[tt+it];s.prev_length>=s.good_match&&(et>>=2),ot>s.lookahead&&(ot=s.lookahead);do if(nt=o,!(at[nt+it]!==ct||at[nt+it-1]!==ht||at[nt]!==at[tt]||at[++nt]!==at[tt+1])){tt+=2,nt++;do;while(at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&ttit){if(s.match_start=o,it=rt,rt>=ot)break;ht=at[tt+it-1],ct=at[tt+it]}}while((o=ut[o<])>st&&--et!==0);return it<=s.lookahead?it:s.lookahead},fill_window=s=>{const o=s.w_size;let et,tt,nt;do{if(tt=s.window_size-s.lookahead-s.strstart,s.strstart>=o+(o-MIN_LOOKAHEAD)&&(s.window.set(s.window.subarray(o,o+o-tt),0),s.match_start-=o,s.strstart-=o,s.block_start-=o,s.insert>s.strstart&&(s.insert=s.strstart),slide_hash(s),tt+=o),s.strm.avail_in===0)break;if(et=read_buf(s.strm,s.window,s.strstart+s.lookahead,tt),s.lookahead+=et,s.lookahead+s.insert>=MIN_MATCH)for(nt=s.strstart-s.insert,s.ins_h=s.window[nt],s.ins_h=HASH(s,s.ins_h,s.window[nt+1]);s.insert&&(s.ins_h=HASH(s,s.ins_h,s.window[nt+MIN_MATCH-1]),s.prev[nt&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=nt,nt++,s.insert--,!(s.lookahead+s.insert{let et=s.pending_buf_size-5>s.w_size?s.w_size:s.pending_buf_size-5,tt,nt,rt,it=0,ot=s.strm.avail_in;do{if(tt=65535,rt=s.bi_valid+42>>3,s.strm.avail_outnt+s.strm.avail_in&&(tt=nt+s.strm.avail_in),tt>rt&&(tt=rt),tt>8,s.pending_buf[s.pending-2]=~tt,s.pending_buf[s.pending-1]=~tt>>8,flush_pending(s.strm),nt&&(nt>tt&&(nt=tt),s.strm.output.set(s.window.subarray(s.block_start,s.block_start+nt),s.strm.next_out),s.strm.next_out+=nt,s.strm.avail_out-=nt,s.strm.total_out+=nt,s.block_start+=nt,tt-=nt),tt&&(read_buf(s.strm,s.strm.output,s.strm.next_out,tt),s.strm.next_out+=tt,s.strm.avail_out-=tt,s.strm.total_out+=tt)}while(it===0);return ot-=s.strm.avail_in,ot&&(ot>=s.w_size?(s.matches=2,s.window.set(s.strm.input.subarray(s.strm.next_in-s.w_size,s.strm.next_in),0),s.strstart=s.w_size,s.insert=s.strstart):(s.window_size-s.strstart<=ot&&(s.strstart-=s.w_size,s.window.set(s.window.subarray(s.w_size,s.w_size+s.strstart),0),s.matches<2&&s.matches++,s.insert>s.strstart&&(s.insert=s.strstart)),s.window.set(s.strm.input.subarray(s.strm.next_in-ot,s.strm.next_in),s.strstart),s.strstart+=ot,s.insert+=ot>s.w_size-s.insert?s.w_size-s.insert:ot),s.block_start=s.strstart),s.high_waterrt&&s.block_start>=s.w_size&&(s.block_start-=s.w_size,s.strstart-=s.w_size,s.window.set(s.window.subarray(s.w_size,s.w_size+s.strstart),0),s.matches<2&&s.matches++,rt+=s.w_size,s.insert>s.strstart&&(s.insert=s.strstart)),rt>s.strm.avail_in&&(rt=s.strm.avail_in),rt&&(read_buf(s.strm,s.window,s.strstart,rt),s.strstart+=rt,s.insert+=rt>s.w_size-s.insert?s.w_size-s.insert:rt),s.high_water>3,rt=s.pending_buf_size-rt>65535?65535:s.pending_buf_size-rt,et=rt>s.w_size?s.w_size:rt,nt=s.strstart-s.block_start,(nt>=et||(nt||o===Z_FINISH$3)&&o!==Z_NO_FLUSH$2&&s.strm.avail_in===0&&nt<=rt)&&(tt=nt>rt?rt:nt,it=o===Z_FINISH$3&&s.strm.avail_in===0&&tt===nt?1:0,_tr_stored_block(s,s.block_start,tt,it),s.block_start+=tt,flush_pending(s.strm)),it?BS_FINISH_STARTED:BS_NEED_MORE)},deflate_fast=(s,o)=>{let et,tt;for(;;){if(s.lookahead=MIN_MATCH&&(s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart),et!==0&&s.strstart-et<=s.w_size-MIN_LOOKAHEAD&&(s.match_length=longest_match(s,et)),s.match_length>=MIN_MATCH)if(tt=_tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH),s.lookahead-=s.match_length,s.match_length<=s.max_lazy_match&&s.lookahead>=MIN_MATCH){s.match_length--;do s.strstart++,s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart;while(--s.match_length!==0);s.strstart++}else s.strstart+=s.match_length,s.match_length=0,s.ins_h=s.window[s.strstart],s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+1]);else tt=_tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++;if(tt&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}return s.insert=s.strstart{let et,tt,nt;for(;;){if(s.lookahead=MIN_MATCH&&(s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart),s.prev_length=s.match_length,s.prev_match=s.match_start,s.match_length=MIN_MATCH-1,et!==0&&s.prev_length4096)&&(s.match_length=MIN_MATCH-1)),s.prev_length>=MIN_MATCH&&s.match_length<=s.prev_length){nt=s.strstart+s.lookahead-MIN_MATCH,tt=_tr_tally(s,s.strstart-1-s.prev_match,s.prev_length-MIN_MATCH),s.lookahead-=s.prev_length-1,s.prev_length-=2;do++s.strstart<=nt&&(s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart);while(--s.prev_length!==0);if(s.match_available=0,s.match_length=MIN_MATCH-1,s.strstart++,tt&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}else if(s.match_available){if(tt=_tr_tally(s,0,s.window[s.strstart-1]),tt&&flush_block_only(s,!1),s.strstart++,s.lookahead--,s.strm.avail_out===0)return BS_NEED_MORE}else s.match_available=1,s.strstart++,s.lookahead--}return s.match_available&&(tt=_tr_tally(s,0,s.window[s.strstart-1]),s.match_available=0),s.insert=s.strstart{let et,tt,nt,rt;const it=s.window;for(;;){if(s.lookahead<=MAX_MATCH){if(fill_window(s),s.lookahead<=MAX_MATCH&&o===Z_NO_FLUSH$2)return BS_NEED_MORE;if(s.lookahead===0)break}if(s.match_length=0,s.lookahead>=MIN_MATCH&&s.strstart>0&&(nt=s.strstart-1,tt=it[nt],tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt])){rt=s.strstart+MAX_MATCH;do;while(tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&nts.lookahead&&(s.match_length=s.lookahead)}if(s.match_length>=MIN_MATCH?(et=_tr_tally(s,1,s.match_length-MIN_MATCH),s.lookahead-=s.match_length,s.strstart+=s.match_length,s.match_length=0):(et=_tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++),et&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}return s.insert=0,o===Z_FINISH$3?(flush_block_only(s,!0),s.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):s.sym_next&&(flush_block_only(s,!1),s.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_huff=(s,o)=>{let et;for(;;){if(s.lookahead===0&&(fill_window(s),s.lookahead===0)){if(o===Z_NO_FLUSH$2)return BS_NEED_MORE;break}if(s.match_length=0,et=_tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++,et&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}return s.insert=0,o===Z_FINISH$3?(flush_block_only(s,!0),s.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):s.sym_next&&(flush_block_only(s,!1),s.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE};function Config(s,o,et,tt,nt){this.good_length=s,this.max_lazy=o,this.nice_length=et,this.max_chain=tt,this.func=nt}const configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)],lm_init=s=>{s.window_size=2*s.w_size,zero(s.head),s.max_lazy_match=configuration_table[s.level].max_lazy,s.good_match=configuration_table[s.level].good_length,s.nice_match=configuration_table[s.level].nice_length,s.max_chain_length=configuration_table[s.level].max_chain,s.strstart=0,s.block_start=0,s.lookahead=0,s.insert=0,s.match_length=s.prev_length=MIN_MATCH-1,s.match_available=0,s.ins_h=0};function DeflateState(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Z_DEFLATED$2,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(HEAP_SIZE*2),this.dyn_dtree=new Uint16Array((2*D_CODES+1)*2),this.bl_tree=new Uint16Array((2*BL_CODES+1)*2),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(MAX_BITS+1),this.heap=new Uint16Array(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*L_CODES+1),zero(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const deflateStateCheck=s=>{if(!s)return 1;const o=s.state;return!o||o.strm!==s||o.status!==INIT_STATE&&o.status!==GZIP_STATE&&o.status!==EXTRA_STATE&&o.status!==NAME_STATE&&o.status!==COMMENT_STATE&&o.status!==HCRC_STATE&&o.status!==BUSY_STATE&&o.status!==FINISH_STATE?1:0},deflateResetKeep=s=>{if(deflateStateCheck(s))return err(s,Z_STREAM_ERROR$2);s.total_in=s.total_out=0,s.data_type=Z_UNKNOWN;const o=s.state;return o.pending=0,o.pending_out=0,o.wrap<0&&(o.wrap=-o.wrap),o.status=o.wrap===2?GZIP_STATE:o.wrap?INIT_STATE:BUSY_STATE,s.adler=o.wrap===2?0:1,o.last_flush=-2,_tr_init(o),Z_OK$3},deflateReset=s=>{const o=deflateResetKeep(s);return o===Z_OK$3&&lm_init(s.state),o},deflateSetHeader=(s,o)=>deflateStateCheck(s)||s.state.wrap!==2?Z_STREAM_ERROR$2:(s.state.gzhead=o,Z_OK$3),deflateInit2=(s,o,et,tt,nt,rt)=>{if(!s)return Z_STREAM_ERROR$2;let it=1;if(o===Z_DEFAULT_COMPRESSION$1&&(o=6),tt<0?(it=0,tt=-tt):tt>15&&(it=2,tt-=16),nt<1||nt>MAX_MEM_LEVEL||et!==Z_DEFLATED$2||tt<8||tt>15||o<0||o>9||rt<0||rt>Z_FIXED||tt===8&&it!==1)return err(s,Z_STREAM_ERROR$2);tt===8&&(tt=9);const ot=new DeflateState;return s.state=ot,ot.strm=s,ot.status=INIT_STATE,ot.wrap=it,ot.gzhead=null,ot.w_bits=tt,ot.w_size=1<deflateInit2(s,o,Z_DEFLATED$2,MAX_WBITS$1,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY$1),deflate$2=(s,o)=>{if(deflateStateCheck(s)||o>Z_BLOCK$1||o<0)return s?err(s,Z_STREAM_ERROR$2):Z_STREAM_ERROR$2;const et=s.state;if(!s.output||s.avail_in!==0&&!s.input||et.status===FINISH_STATE&&o!==Z_FINISH$3)return err(s,s.avail_out===0?Z_BUF_ERROR$1:Z_STREAM_ERROR$2);const tt=et.last_flush;if(et.last_flush=o,et.pending!==0){if(flush_pending(s),s.avail_out===0)return et.last_flush=-1,Z_OK$3}else if(s.avail_in===0&&rank(o)<=rank(tt)&&o!==Z_FINISH$3)return err(s,Z_BUF_ERROR$1);if(et.status===FINISH_STATE&&s.avail_in!==0)return err(s,Z_BUF_ERROR$1);if(et.status===INIT_STATE&&et.wrap===0&&(et.status=BUSY_STATE),et.status===INIT_STATE){let nt=Z_DEFLATED$2+(et.w_bits-8<<4)<<8,rt=-1;if(et.strategy>=Z_HUFFMAN_ONLY||et.level<2?rt=0:et.level<6?rt=1:et.level===6?rt=2:rt=3,nt|=rt<<6,et.strstart!==0&&(nt|=PRESET_DICT),nt+=31-nt%31,putShortMSB(et,nt),et.strstart!==0&&(putShortMSB(et,s.adler>>>16),putShortMSB(et,s.adler&65535)),s.adler=1,et.status=BUSY_STATE,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3}if(et.status===GZIP_STATE){if(s.adler=0,put_byte(et,31),put_byte(et,139),put_byte(et,8),et.gzhead)put_byte(et,(et.gzhead.text?1:0)+(et.gzhead.hcrc?2:0)+(et.gzhead.extra?4:0)+(et.gzhead.name?8:0)+(et.gzhead.comment?16:0)),put_byte(et,et.gzhead.time&255),put_byte(et,et.gzhead.time>>8&255),put_byte(et,et.gzhead.time>>16&255),put_byte(et,et.gzhead.time>>24&255),put_byte(et,et.level===9?2:et.strategy>=Z_HUFFMAN_ONLY||et.level<2?4:0),put_byte(et,et.gzhead.os&255),et.gzhead.extra&&et.gzhead.extra.length&&(put_byte(et,et.gzhead.extra.length&255),put_byte(et,et.gzhead.extra.length>>8&255)),et.gzhead.hcrc&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending,0)),et.gzindex=0,et.status=EXTRA_STATE;else if(put_byte(et,0),put_byte(et,0),put_byte(et,0),put_byte(et,0),put_byte(et,0),put_byte(et,et.level===9?2:et.strategy>=Z_HUFFMAN_ONLY||et.level<2?4:0),put_byte(et,OS_CODE),et.status=BUSY_STATE,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3}if(et.status===EXTRA_STATE){if(et.gzhead.extra){let nt=et.pending,rt=(et.gzhead.extra.length&65535)-et.gzindex;for(;et.pending+rt>et.pending_buf_size;){let ot=et.pending_buf_size-et.pending;if(et.pending_buf.set(et.gzhead.extra.subarray(et.gzindex,et.gzindex+ot),et.pending),et.pending=et.pending_buf_size,et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),et.gzindex+=ot,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3;nt=0,rt-=ot}let it=new Uint8Array(et.gzhead.extra);et.pending_buf.set(it.subarray(et.gzindex,et.gzindex+rt),et.pending),et.pending+=rt,et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),et.gzindex=0}et.status=NAME_STATE}if(et.status===NAME_STATE){if(et.gzhead.name){let nt=et.pending,rt;do{if(et.pending===et.pending_buf_size){if(et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3;nt=0}et.gzindexnt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),et.gzindex=0}et.status=COMMENT_STATE}if(et.status===COMMENT_STATE){if(et.gzhead.comment){let nt=et.pending,rt;do{if(et.pending===et.pending_buf_size){if(et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3;nt=0}et.gzindexnt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt))}et.status=HCRC_STATE}if(et.status===HCRC_STATE){if(et.gzhead.hcrc){if(et.pending+2>et.pending_buf_size&&(flush_pending(s),et.pending!==0))return et.last_flush=-1,Z_OK$3;put_byte(et,s.adler&255),put_byte(et,s.adler>>8&255),s.adler=0}if(et.status=BUSY_STATE,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3}if(s.avail_in!==0||et.lookahead!==0||o!==Z_NO_FLUSH$2&&et.status!==FINISH_STATE){let nt=et.level===0?deflate_stored(et,o):et.strategy===Z_HUFFMAN_ONLY?deflate_huff(et,o):et.strategy===Z_RLE?deflate_rle(et,o):configuration_table[et.level].func(et,o);if((nt===BS_FINISH_STARTED||nt===BS_FINISH_DONE)&&(et.status=FINISH_STATE),nt===BS_NEED_MORE||nt===BS_FINISH_STARTED)return s.avail_out===0&&(et.last_flush=-1),Z_OK$3;if(nt===BS_BLOCK_DONE&&(o===Z_PARTIAL_FLUSH?_tr_align(et):o!==Z_BLOCK$1&&(_tr_stored_block(et,0,0,!1),o===Z_FULL_FLUSH$1&&(zero(et.head),et.lookahead===0&&(et.strstart=0,et.block_start=0,et.insert=0))),flush_pending(s),s.avail_out===0))return et.last_flush=-1,Z_OK$3}return o!==Z_FINISH$3?Z_OK$3:et.wrap<=0?Z_STREAM_END$3:(et.wrap===2?(put_byte(et,s.adler&255),put_byte(et,s.adler>>8&255),put_byte(et,s.adler>>16&255),put_byte(et,s.adler>>24&255),put_byte(et,s.total_in&255),put_byte(et,s.total_in>>8&255),put_byte(et,s.total_in>>16&255),put_byte(et,s.total_in>>24&255)):(putShortMSB(et,s.adler>>>16),putShortMSB(et,s.adler&65535)),flush_pending(s),et.wrap>0&&(et.wrap=-et.wrap),et.pending!==0?Z_OK$3:Z_STREAM_END$3)},deflateEnd=s=>{if(deflateStateCheck(s))return Z_STREAM_ERROR$2;const o=s.state.status;return s.state=null,o===BUSY_STATE?err(s,Z_DATA_ERROR$2):Z_OK$3},deflateSetDictionary=(s,o)=>{let et=o.length;if(deflateStateCheck(s))return Z_STREAM_ERROR$2;const tt=s.state,nt=tt.wrap;if(nt===2||nt===1&&tt.status!==INIT_STATE||tt.lookahead)return Z_STREAM_ERROR$2;if(nt===1&&(s.adler=adler32_1(s.adler,o,et,0)),tt.wrap=0,et>=tt.w_size){nt===0&&(zero(tt.head),tt.strstart=0,tt.block_start=0,tt.insert=0);let st=new Uint8Array(tt.w_size);st.set(o.subarray(et-tt.w_size,et),0),o=st,et=tt.w_size}const rt=s.avail_in,it=s.next_in,ot=s.input;for(s.avail_in=et,s.next_in=0,s.input=o,fill_window(tt);tt.lookahead>=MIN_MATCH;){let st=tt.strstart,at=tt.lookahead-(MIN_MATCH-1);do tt.ins_h=HASH(tt,tt.ins_h,tt.window[st+MIN_MATCH-1]),tt.prev[st&tt.w_mask]=tt.head[tt.ins_h],tt.head[tt.ins_h]=st,st++;while(--at);tt.strstart=st,tt.lookahead=MIN_MATCH-1,fill_window(tt)}return tt.strstart+=tt.lookahead,tt.block_start=tt.strstart,tt.insert=tt.lookahead,tt.lookahead=0,tt.match_length=tt.prev_length=MIN_MATCH-1,tt.match_available=0,s.next_in=it,s.input=ot,s.avail_in=rt,tt.wrap=nt,Z_OK$3};var deflateInit_1=deflateInit,deflateInit2_1=deflateInit2,deflateReset_1=deflateReset,deflateResetKeep_1=deflateResetKeep,deflateSetHeader_1=deflateSetHeader,deflate_2$1=deflate$2,deflateEnd_1=deflateEnd,deflateSetDictionary_1=deflateSetDictionary,deflateInfo="pako deflate (from Nodeca project)",deflate_1$2={deflateInit:deflateInit_1,deflateInit2:deflateInit2_1,deflateReset:deflateReset_1,deflateResetKeep:deflateResetKeep_1,deflateSetHeader:deflateSetHeader_1,deflate:deflate_2$1,deflateEnd:deflateEnd_1,deflateSetDictionary:deflateSetDictionary_1,deflateInfo};const _has=(s,o)=>Object.prototype.hasOwnProperty.call(s,o);var assign$1=function(s){const o=Array.prototype.slice.call(arguments,1);for(;o.length;){const et=o.shift();if(et){if(typeof et!="object")throw new TypeError(et+"must be non-object");for(const tt in et)_has(et,tt)&&(s[tt]=et[tt])}}return s},flattenChunks=s=>{let o=0;for(let tt=0,nt=s.length;tt=252?6:s>=248?5:s>=240?4:s>=224?3:s>=192?2:1;_utf8len[254]=_utf8len[254]=1;var string2buf=s=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(s);let o,et,tt,nt,rt,it=s.length,ot=0;for(nt=0;nt>>6,o[rt++]=128|et&63):et<65536?(o[rt++]=224|et>>>12,o[rt++]=128|et>>>6&63,o[rt++]=128|et&63):(o[rt++]=240|et>>>18,o[rt++]=128|et>>>12&63,o[rt++]=128|et>>>6&63,o[rt++]=128|et&63);return o};const buf2binstring=(s,o)=>{if(o<65534&&s.subarray&&STR_APPLY_UIA_OK)return String.fromCharCode.apply(null,s.length===o?s:s.subarray(0,o));let et="";for(let tt=0;tt{const et=o||s.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(s.subarray(0,o));let tt,nt;const rt=new Array(et*2);for(nt=0,tt=0;tt4){rt[nt++]=65533,tt+=ot-1;continue}for(it&=ot===2?31:ot===3?15:7;ot>1&&tt1){rt[nt++]=65533;continue}it<65536?rt[nt++]=it:(it-=65536,rt[nt++]=55296|it>>10&1023,rt[nt++]=56320|it&1023)}return buf2binstring(rt,nt)},utf8border=(s,o)=>{o=o||s.length,o>s.length&&(o=s.length);let et=o-1;for(;et>=0&&(s[et]&192)===128;)et--;return et<0||et===0?o:et+_utf8len[s[et]]>o?et:o},strings={string2buf,buf2string,utf8border};function ZStream(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zstream=ZStream;const toString$1=Object.prototype.toString,{Z_NO_FLUSH:Z_NO_FLUSH$1,Z_SYNC_FLUSH,Z_FULL_FLUSH,Z_FINISH:Z_FINISH$2,Z_OK:Z_OK$2,Z_STREAM_END:Z_STREAM_END$2,Z_DEFAULT_COMPRESSION,Z_DEFAULT_STRATEGY,Z_DEFLATED:Z_DEFLATED$1}=constants$2;function Deflate$1(s){this.options=common.assign({level:Z_DEFAULT_COMPRESSION,method:Z_DEFLATED$1,chunkSize:16384,windowBits:15,memLevel:8,strategy:Z_DEFAULT_STRATEGY},s||{});let o=this.options;o.raw&&o.windowBits>0?o.windowBits=-o.windowBits:o.gzip&&o.windowBits>0&&o.windowBits<16&&(o.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let et=deflate_1$2.deflateInit2(this.strm,o.level,o.method,o.windowBits,o.memLevel,o.strategy);if(et!==Z_OK$2)throw new Error(messages[et]);if(o.header&&deflate_1$2.deflateSetHeader(this.strm,o.header),o.dictionary){let tt;if(typeof o.dictionary=="string"?tt=strings.string2buf(o.dictionary):toString$1.call(o.dictionary)==="[object ArrayBuffer]"?tt=new Uint8Array(o.dictionary):tt=o.dictionary,et=deflate_1$2.deflateSetDictionary(this.strm,tt),et!==Z_OK$2)throw new Error(messages[et]);this._dict_set=!0}}Deflate$1.prototype.push=function(s,o){const et=this.strm,tt=this.options.chunkSize;let nt,rt;if(this.ended)return!1;for(o===~~o?rt=o:rt=o===!0?Z_FINISH$2:Z_NO_FLUSH$1,typeof s=="string"?et.input=strings.string2buf(s):toString$1.call(s)==="[object ArrayBuffer]"?et.input=new Uint8Array(s):et.input=s,et.next_in=0,et.avail_in=et.input.length;;){if(et.avail_out===0&&(et.output=new Uint8Array(tt),et.next_out=0,et.avail_out=tt),(rt===Z_SYNC_FLUSH||rt===Z_FULL_FLUSH)&&et.avail_out<=6){this.onData(et.output.subarray(0,et.next_out)),et.avail_out=0;continue}if(nt=deflate_1$2.deflate(et,rt),nt===Z_STREAM_END$2)return et.next_out>0&&this.onData(et.output.subarray(0,et.next_out)),nt=deflate_1$2.deflateEnd(this.strm),this.onEnd(nt),this.ended=!0,nt===Z_OK$2;if(et.avail_out===0){this.onData(et.output);continue}if(rt>0&&et.next_out>0){this.onData(et.output.subarray(0,et.next_out)),et.avail_out=0;continue}if(et.avail_in===0)break}return!0};Deflate$1.prototype.onData=function(s){this.chunks.push(s)};Deflate$1.prototype.onEnd=function(s){s===Z_OK$2&&(this.result=common.flattenChunks(this.chunks)),this.chunks=[],this.err=s,this.msg=this.strm.msg};function deflate$1(s,o){const et=new Deflate$1(o);if(et.push(s,!0),et.err)throw et.msg||messages[et.err];return et.result}function deflateRaw$1(s,o){return o=o||{},o.raw=!0,deflate$1(s,o)}function gzip$1(s,o){return o=o||{},o.gzip=!0,deflate$1(s,o)}var Deflate_1$1=Deflate$1,deflate_2=deflate$1,deflateRaw_1$1=deflateRaw$1,gzip_1$1=gzip$1,constants$1=constants$2,deflate_1$1={Deflate:Deflate_1$1,deflate:deflate_2,deflateRaw:deflateRaw_1$1,gzip:gzip_1$1,constants:constants$1};const{Deflate,deflate,deflateRaw,gzip}=deflate_1$1;var deflate_1=deflate,fromByteArray_1=fromByteArray,lookup=[],code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i>18&63]+lookup[s>>12&63]+lookup[s>>6&63]+lookup[s&63]}function encodeChunk(s,o,et){for(var tt,nt=[],rt=o;rtot?ot:it+rt));return tt===1?(o=s[et-1],nt.push(lookup[o>>2]+lookup[o<<4&63]+"==")):tt===2&&(o=(s[et-2]<<8)+s[et-1],nt.push(lookup[o>>10]+lookup[o>>4&63]+lookup[o<<2&63]+"=")),nt.join("")}const encoder=new TextEncoder;new TextDecoder;function serializeHash(s){const o=JSON.stringify(s),et=encoder.encode(o),tt=deflate_1(et);return fromByteArray_1(tt)}async function getViews(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/views`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function createShareLink(s,o){if(!Authentication.token)throw new Error("Not authenticated");const et=(await getViews()).filter(it=>it.name===o);if(et.length===0)return console.warn("View does not exist or it is misspell"),null;const tt=await fetch(`${FORMANT_API_URL}/v1/admin/shares`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),nt=FORMANT_API_URL.replace("api","app"),{code:rt}=await tt.json();return`${nt}/shares/${rt}#${serializeHash({viewId:et[0].id})}`}const aggregateByDateFunctions={day:{interval:eachDayOfInterval,start:startOfDay,end:endOfDay,sub:subDays,get:getDay},week:{interval:eachWeekOfInterval,start:startOfWeek,end:endOfWeek,sub:subWeeks,get:getWeek},month:{interval:eachMonthOfInterval,start:startOfMonth,end:endOfMonth,sub:subMonths,get:getMonth},year:{interval:eachYearOfInterval,start:startOfYear,end:endOfYear,sub:subYears,get:getYear},hour:{interval:eachHourOfInterval,start:startOfHour,end:endOfHour,sub:subHours,get:getHours},minute:{interval:eachMinuteOfInterval,start:startOfMinute,end:endOfMinute,sub:subMinutes,get:getMinutes},quarter:{interval:eachQuarterOfInterval,start:startOfQuarter,end:endOfQuarter,sub:subQuarters,get:getQuarter}},formatTimeFrameText=(s,o)=>s.split("/")[0]+"/"+s.split("/")[1]+"–"+o.split("/")[0]+"/"+o.split("/")[1];async function queryEvents(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/events/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function eventsCounter(s,o,et,tt,nt){const rt=aggregateByDateFunctions[o];return await Promise.all(Array(et).fill(0).map(async(it,ot)=>{const st=new Date(tt),at=rt.sub(rt.start(st),et-ot-1),lt=rt.sub(rt.end(st),et-ot-1),ut=formatTimeFrameText(at.toLocaleDateString(),lt.toLocaleDateString()),dt=await queryEvents({...nt,eventTypes:s,start:new Date(at).toISOString(),end:new Date(lt).toISOString()});return{date:ut,events:dt}}))}async function getAnnotationCount(s,o){return(await queryEvents({...s,eventTypes:["annotation"]})).filter(et=>!!et.tags&&Object.keys(et.tags).includes(o)).reduce((et,tt)=>{const nt=tt.tags[o];return nt in et?(et[nt]+=1,et):(et[nt]=1,et)},{})}async function getAnnotationCountByIntervals(s,o,et){const{end:tt,start:nt}=s,rt=aggregateByDateFunctions[et].interval({start:new Date(nt),end:new Date(tt)}),it=rt.map((st,at)=>{const lt=new Date(st).toISOString(),ut=at===rt.length-1?new Date(Date.now()).toISOString():new Date(rt[at+1]);return getAnnotationCount({...s,start:lt,end:ut},o)}),ot=await Promise.all(it);return rt.map((st,at)=>({date:new Date(st).toISOString(),annotations:ot[at]}))}async function getTelemetry(s,o,et,tt,nt,rt){let it=s;Array.isArray(s)||(it=[s]);let ot=o;return Array.isArray(o)||(ot=[o]),(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify({deviceIds:it,end:tt.toISOString(),names:ot,start:et.toISOString(),tags:nt,latestOnly:rt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getRealtimeSessions(){if(!Authentication.token)throw new Error("Not authenticated");const s=defaultRtcClientPool.get();try{return await s.getSessions()}finally{await s.shutdown()}}async function getPeers(){if(!Authentication.token)throw new Error("Not authenticated");const s=defaultRtcClientPool.get();try{return await s.getPeers()}finally{await s.shutdown()}}async function createDevice(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/devices`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchDevice(s,o){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${s}`,{method:"PATCH",body:JSON.stringify(o),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getDevicesData(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function queryDevicesData(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function disableDevice(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${s}/disable`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}class Device extends BaseDevice{constructor(o,et,tt,nt){super(),this.id=o,this.name=et,this.organizationId=tt,this.tags=nt}async getLatestTelemetry(){return(await(await fetch(`${FORMANT_API_URL}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async getConfiguration(o=!1){let et=await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}});const tt=await et.json();if(!tt.state.reportedConfiguration)throw new Error("Device has no configuration, has it ever been turned on?");const nt=o?tt.desiredConfigurationVersion:tt.state.reportedConfiguration.version;return et=await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}/configurations/${nt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),(await et.json()).document}async getAgentVersion(){var o;const et=await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return(o=et?.state)==null?void 0:o.agentVersion}async getFileUrl(o){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[o]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).fileUrls}async startRealtimeConnection(o={}){if(console.debug(`${new Date().toISOString()} :: Connection start requested`),this.rtcClient&&this.connectionMonitorInterval!==void 0)throw new Error(`Already created realtime connection to device ${this.id}`);this.rtcClient&&console.warn("overwriting existing rtcClient due to missing connectionMonitorInterval");const{sessionType:et,deadlineMs:tt=1e4,maxConnectRetries:nt=3}=typeof o=="number"?{sessionType:o}:o,rt=getRtcClientPool({sessionType:et}).get(this.handleMessage);let it=!1;const ot=new Promise((at,lt)=>setTimeout(()=>{it=!0,lt(new Error("Connection timed out: the connection could not be finalized in time, possibly due to network issues or misconfigured settings."))},tt)),st=async()=>{if("isReady"in rt)for(;!rt.isReady();)this.assertNotCancelled(it),await delay$1(100);const at=await this.getRemoteDevicePeerId(rt);this.assertNotCancelled(it);let lt;for(let dt=0;dt{this.remoteDevicePeerId=at,this.initConnectionMonitoring(),this.rtcClient=rt,this.emit("connect")}).catch(at=>{throw console.debug(`${new Date().toISOString()} :: Connection failed: %o`,at),this.remoteDevicePeerId=null,rt.shutdown().catch(lt=>{console.error("rtcClient cannot shutdown: %o",lt)}),this.emit("connection_failed",at),at})}async getRemoteDevicePeerId(o){const et=(await o.getPeers()).find(tt=>tt.deviceId===this.id);if(!isRtcPeer(et))throw new Error("Cannot find peer, is the robot offline?");return et.id}initConnectionMonitoring(){this.connectionMonitorInterval=setInterval(async()=>{let o=!1;if(this.rtcClient){const et=this.rtcClient.getConnections().find(tt=>tt.getRemotePeerId()===this.remoteDevicePeerId&&tt.isActive());(et===void 0||!et.isReady())&&(console.debug(`${new Date().toISOString()} :: data channel closed`),o=!0)}(!this.rtcClient||!this.remoteDevicePeerId||await this.rtcClient.getConnectionStatsInfo(this.remoteDevicePeerId)===void 0||o)&&(this.emit("disconnect"),this.stopRealtimeConnection().catch(et=>{console.error(et)}))},1e3)}async getRemotePeer(){const o=(await defined$1(this.rtcClient,"Realtime connection has not been started").getPeers()).find(et=>et.deviceId===this.id);return defined$1(o,"Could not find remote peer for device "+this.id)}async stopRealtimeConnection(){let o=!1;if(this.rtcClient){this.stopConnectionMonitoring(),this.remoteDevicePeerId?(await this.rtcClient.disconnect(this.remoteDevicePeerId),this.remoteDevicePeerId=null):o=!0;try{await this.rtcClient.shutdown()}finally{this.rtcClient=void 0}}if(o)throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async isInRealtimeSession(){const o=await getPeers(),et=await getRealtimeSessions(),tt=o.find(nt=>nt.deviceId===this.id);return tt?et[tt.id].length>0:!1}async getAvailableCommands(){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/command-templates/`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(o=>({name:o.name,id:o.id,command:o.command,description:o.description,parameterEnabled:o.parameterEnabled,parameterValue:o.parameterValue,parameterMeta:o.parameterMeta,enabled:o.enabled,tags:o.tags}))}async sendCommand(o,et,tt,nt){var rt;const it=(await this.getAvailableCommands()).find(at=>at.name===o);if(!it)throw new Error(`Could not find command with name "${o}"`);let ot="";et===void 0?it.parameterEnabled&&it.parameterValue&&(ot=it.parameterValue):ot=et;let st={value:ot,scrubberTime:(tt||new Date).toISOString(),meta:{...it.parameterMeta,...nt}};return await fetch(`${FORMANT_API_URL}/v1/admin/commands`,{method:"POST",body:JSON.stringify({commandTemplateId:it.id,organizationId:this.organizationId,deviceId:this.id,command:it.command,parameter:st,userId:(rt=Authentication.currentUser)==null?void 0:rt.id}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async getCommand(o){return await fetch(`${FORMANT_API_URL}/v1/admin/commands/${o}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async createCaptureStream(o){const et=await(await fetch(`${FORMANT_API_URL}/v1/admin/capture-sessions`,{method:"POST",body:JSON.stringify({deviceId:this.id,streamName:o,tags:{}}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return new CaptureStream(et)}async getTelemetry(o,et,tt,nt,rt,it,ot){if(rt!==void 0||it!==void 0)throw new Error("Limit and offset are not supported in this method");return await getTelemetry(this.id,o,et,tt,nt,ot)}async queryEvents(o){if(o.deviceIds)throw new Error("Cannot filter multiple devices via Device class");return o.deviceIds=[this.id],queryEvents(o)}async getTelemetryStreams(){var o,et;const tt=await this.getConfiguration(),nt=await fetch(`${FORMANT_API_URL}/v1/queries/metadata/stream-names`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),rt=[],it=[];return(et=(o=tt.telemetry)==null?void 0:o.streams)==null||et.forEach(ot=>{ot.disabled!==!0&&rt.push(ot.name),ot.onDemand===!0&&it.push(ot.name)}),console.log(it),(await nt.json()).items.filter(ot=>!rt.includes(ot)).map(ot=>({name:ot,onDemand:it.includes(ot)}))}async createInterventionRequest(o,et,tt,nt){return await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-requests`,{method:"POST",body:JSON.stringify({message:o,interventionType:et,time:new Date().toISOString(),deviceId:this.id,tags:nt,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async addInterventionResponse(o,et,tt){return await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-responses`,{method:"POST",body:JSON.stringify({interventionId:o,interventionType:et,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async getAnnotationCount(o,et){return await getAnnotationCount({...o,deviceIds:[this.id]},et)}async getAnnotationCountByIntervals(o,et,tt){return await getAnnotationCountByIntervals({...o,deviceIds:[this.id]},et,tt)}async eventsCounter(o,et,tt,nt,rt){return await eventsCounter(o,et,tt,nt,{...rt,deviceIds:[this.id]})}async createShareLink(o,et){return o.scope.deviceIds=[this.id],await createShareLink(o,et)}}he(Device,"createDevice",createDevice),he(Device,"patchDevice",patchDevice),he(Device,"getDevicesData",getDevicesData),he(Device,"queryDevicesData",queryDevicesData),he(Device,"disableDevice",disableDevice);class PeerDevice extends BaseDevice{constructor(o){super(),he(this,"id"),he(this,"telemetryStreamActive",!1),he(this,"streamTelemetry",{}),this.peerUrl=o}async getLatestTelemetry(){this.telemetryStreamActive||this.subscribeToTelemetry();const o=this.streamTelemetry;return Object.entries(o).map(([et,tt])=>({deviceId:this.id,streamName:et,streamType:"json",currentValue:tt,currentValueTime:tt.timestamp,tags:{}}))}async getTelemetry(o,et,tt,nt,rt,it,ot){if(Array.isArray(o))throw new Error("Multiple stream names not supported");if(nt)throw new Error("Tags not supported");if(ot&&rt===void 0)rt=1;else if(ot&&rt!==void 0)throw new Error("latestOnly and limit cannot be used together");let st=`${this.peerUrl}/v1/querydatapoints?stream_name=${o}&start=${et.toISOString()}&end=${tt.toISOString()}`;rt!=null&&rt>0&&(st+=`&limit=${rt}`),it!=null&&it>=0&&(st+=`&offset=${it}`);const at=await(await fetch(st)).json(),lt=[];for(const ut of at.results){const dt=parseInt(ut.timestamp),ht=ut.tags.data_type;delete ut.tags.data_type,lt.push({deviceId:this.id,name:ut.stream,points:[[dt,this.getPointPayload(ht,ut)]],tags:ut.tags,type:ht})}return lt.reverse()}async queryEvents(o){const et=["id","viewed","keyword","message","sort","eventTypes","notificationEnabled","userIds","annotationTemplateIds","disableNullMatches","severities","deviceIds","names","types","tags","notNames"];this.checkKeysAndThrow(o,et);let tt=`${this.peerUrl}/v1/queryevents?start=${o.start}&end=${o.end}`;o.count!=null&&o.count>0&&(tt+=`&limit=${o.count}`),o.offset!=null&&o.offset>=0&&(tt+=`&offset=${o.offset}`);const nt=await(await fetch(tt)).json(),rt=[];for(const it of nt.results){const ot=parseInt(it.timestamp),st={deviceId:this.id,time:new Date(ot).toISOString(),message:it.message,notificationEnabled:it.notificationEnabled,type:it.type,tags:it.tags};it.id!==""&&(st.id=it.id),it.type!==""&&(st.type=it.type),it.streamName!==""&&(st.streamName=it.streamName),it.streamType!==""&&(st.streamType=it.streamType),it.severity!==""&&(st.severity=it.severity.toLowerCase()),it.tags&&(st.tags=it.tags),it.endTimestamp!=="0"&&(st.endTime=new Date(parseInt(it.endTimestamp)).toISOString()),rt.push(st)}return rt.reverse()}checkKeysAndThrow(o,et){const tt=et.filter(nt=>nt in o);if(tt.length>0)throw new Error(`Filters not currently supported: ${tt.join(", ")}.`)}getPointPayload(o,et){switch(o){case"numeric":return et.numeric.value;case"numeric set":return et.numericSet.numerics;case"text":return et.text.value;case"json":return et.json.value;case"bitset":const tt=[],nt=[];for(const rt of et.bitset.bits)tt.push(rt.key),nt.push(rt.value);return{keys:tt,values:nt};case"location":return et.location;case"health":return et.health;case"battery":return et.battery;default:return{}}}subscribeToTelemetry(){this.telemetryStreamActive=!0;let o=0;const et=new XMLHttpRequest;et.responseType="text",et.addEventListener("error",tt=>{this.handleXHRError("error")}),et.addEventListener("abort",tt=>{this.handleXHRError("abort")}),et.addEventListener("timeout",tt=>{this.handleXHRError("timeout")}),et.addEventListener("readystatechange",tt=>{et.readyState===XMLHttpRequest.DONE&&this.handleXHRError("closed")}),et.addEventListener("progress",tt=>{const nt=tt.loaded,rt=nt-o;o=nt,et.responseText.substr(-rt).split(` +`),Error.captureStackTrace(this,tt)}}s.exports=nt=>{if(nt.length>2)throw new tt(nt);function rt(ot={}){this.options=ot}function it(ot){return new rt(ot)}return rt.prototype.transform=nt,it.Format=rt,it}},function(s,o,et){function tt(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")}function nt(it,ot){for(var st=0;st0&&arguments[0]!==void 0?arguments[0]:{};tt(this,it),this.loggers=new Map,this.options=at}var ot,st;return ot=it,(st=[{key:"add",value:function(at,lt){var ut=this;if(!this.loggers.has(at)){var dt=(lt=Object.assign({},lt||this.options)).transports||this.options.transports;lt.transports=dt?dt.slice():[];var ht=rt(lt);ht.on("close",function(){return ut._delete(at)}),this.loggers.set(at,ht)}return this.loggers.get(at)}},{key:"get",value:function(at,lt){return this.add(at,lt)}},{key:"has",value:function(at){return!!this.loggers.has(at)}},{key:"close",value:function(at){var lt=this;if(at)return this._removeLogger(at);this.loggers.forEach(function(ut,dt){return lt._removeLogger(dt)})}},{key:"_removeLogger",value:function(at){this.loggers.has(at)&&(this.loggers.get(at).close(),this._delete(at))}},{key:"_delete",value:function(at){this.loggers.delete(at)}}])&&nt(ot.prototype,st),Object.defineProperty(ot,"prototype",{writable:!1}),it}()},function(s,o,et){(function(tt){const nt=et(51),rt=/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/;s.exports=function(it,ot,st,at){let lt,ut,dt=!1,ht=!1;const ct=et(93);function pt(yt){at(ot,yt)}function ft(yt,Ut){let Ft=`"${ot}" ${Ut}`;throw yt&&(Ft=""+Ft),ut&&(Ft=`${Ft}. An example of a valid value would be: ${ut}`),new nt(Ft)}const gt={convertFromBase64:function(){return pt("marking for base64 conversion"),dt=!0,gt},default:function(yt){if(typeof yt=="number")lt=yt.toString();else if(Array.isArray(yt)||typeof yt=="object"&&yt!==null)lt=JSON.stringify(yt);else{if(typeof yt!="string")throw new nt("values passed to default() must be of Number, String, Array, or Object type");lt=yt}return pt(`setting default value to "${lt}"`),gt},required:function(yt){return yt===void 0?(pt("marked as required"),ht=!0):(pt("setting required flag to "+yt),ht=yt),gt},example:function(yt){return ut=yt,gt}};return Object.entries({...ct,...st}).forEach(([yt,Ut])=>{gt[yt]=function(Ft){return function(){let mt=it[ot];if(pt(`will be read from the environment using "${Ft.name}" accessor`),mt===void 0)if(lt===void 0&&ht)pt("was not found in the environment, but is required to be set"),ft(void 0,"is a required variable, but it was not set");else{if(lt===void 0)return void pt("was not found in the environment, but is not required. returning undefined");pt(`was not found in the environment, parsing default value "${lt}" instead`),mt=lt}ht&&(pt("verifying variable value is not an empty string"),mt.trim().length===0&&ft(void 0,"is a required variable, but its value was empty")),dt&&(pt("verifying variable is a valid base64 string"),mt.match(rt)||ft(mt,"should be a valid base64 string if using convertFromBase64"),pt("converting from base64 to utf8 string"),mt=tt.from(mt,"base64").toString());const vt=[mt].concat(Array.prototype.slice.call(arguments));try{pt(`passing value "${mt}" to "${Ft.name}" accessor`);const At=Ft.apply(Ft,vt);return pt("parsed successfully, returning "+At),At}catch(At){ft(mt,At.message)}}}(Ut)}),gt}}).call(this,et(5).Buffer)},function(s,o,et){const tt=et(34);s.exports=function(nt,rt){return rt=rt||",",nt.length?tt(nt).split(rt).filter(Boolean):[]}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(nt!=="false"&&nt!=="true")throw new Error('should be either "true", "false", "TRUE", or "FALSE"');return nt!=="false"}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(["false","0","true","1"].indexOf(nt)===-1)throw new Error('should be either "true", "false", "TRUE", "FALSE", 1, or 0');return!(nt==="0"||nt==="false")}},function(s,o,et){const tt=et(94);s.exports=function(nt){var rt=tt(nt);if(rt>65535)throw new Error("cannot assign a port number greater than 65535");return rt}},function(s,o,et){const tt=et(34);s.exports=function(nt,rt){const it=tt(nt);if(rt.indexOf(it)<0)throw new Error(`should be one of [${rt.join(", ")}]`);return it}},function(s,o,et){const tt=et(53);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative float");return rt}},function(s,o,et){const tt=et(53);s.exports=function(nt){const rt=tt(nt);if(rt<0)throw new Error("should be a positive float");return rt}},function(s,o,et){const tt=et(52);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative integer");return rt}},function(s,o,et){const tt=et(54);s.exports=function(nt){var rt=tt(nt);if(!Array.isArray(rt))throw new Error("should be a parseable JSON Array");return rt}},function(s,o,et){const tt=et(54);s.exports=function(nt){var rt=tt(nt);if(Array.isArray(rt))throw new Error("should be a parseable JSON Object");return rt}},function(s,o,et){s.exports=function(tt,nt){try{RegExp(void 0,nt)}catch{throw new Error("invalid regexp flags")}try{return new RegExp(tt,nt)}catch{throw new Error("should be a valid regexp")}}},function(s,o,et){const tt=et(95);s.exports=function(nt){return tt(nt).toString()}},function(s,o,et){const tt=et(34),nt=/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021\u0023-\u005b\u005d-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021-\u005a\u0053-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])+)\])$/;s.exports=function(rt){const it=tt(rt);if(!nt.test(it))throw new Error("should be a valid email address");return it}},function(s,o,et){s.exports=function(tt,nt){return function(rt,it){nt&&nt.match(/prod|production/)||tt(`env-var (${rt}): ${it}`)}}},function(s,o,et){(function(tt){(function(){var nt,rt,it,ot,st,at;typeof performance<"u"&&performance!==null&&performance.now?s.exports=function(){return performance.now()}:tt!=null&&tt.hrtime?(s.exports=function(){return(nt()-st)/1e6},rt=tt.hrtime,ot=(nt=function(){var lt;return 1e9*(lt=rt())[0]+lt[1]})(),at=1e9*tt.uptime(),st=ot-at):Date.now?(s.exports=function(){return Date.now()-it},it=Date.now()):(s.exports=function(){return new Date().getTime()-it},it=new Date().getTime())}).call(this)}).call(this,et(2))},function(s,o,et){(function(tt){(function(nt){function rt(ot){if((ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextEncoder': The encoding label provided ('"+ot+"') is invalid.")}function it(ot,st){if(st=st===void 0?{fatal:!1}:st,(ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextDecoder': The encoding label provided ('"+ot+"') is invalid.");if(st.fatal)throw Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.")}if(nt.TextEncoder&&nt.TextDecoder)return!1;Object.defineProperty(rt.prototype,"encoding",{value:"utf-8"}),rt.prototype.encode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to encode: the 'stream' option is unsupported.");st=0;for(var at=ot.length,lt=0,ut=Math.max(32,at+(at>>1)+7),dt=new Uint8Array(ut>>3<<3);st=ht){if(st=ht)continue}if(lt+4>dt.length&&(ut+=8,ut=(ut*=1+st/ot.length*2)>>3<<3,(ct=new Uint8Array(ut)).set(dt),dt=ct),(4294967168&ht)==0)dt[lt++]=ht;else{if(!(4294965248&ht))dt[lt++]=ht>>6&31|192;else if(!(4294901760&ht))dt[lt++]=ht>>12&15|224,dt[lt++]=ht>>6&63|128;else{if(4292870144&ht)continue;dt[lt++]=ht>>18&7|240,dt[lt++]=ht>>12&63|128,dt[lt++]=ht>>6&63|128}dt[lt++]=63&ht|128}}return dt.slice(0,lt)},Object.defineProperty(it.prototype,"encoding",{value:"utf-8"}),Object.defineProperty(it.prototype,"fatal",{value:!1}),Object.defineProperty(it.prototype,"ignoreBOM",{value:!1}),it.prototype.decode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to decode: the 'stream' option is unsupported.");st=0;for(var at=(ot=new Uint8Array(ot)).length,lt=[];st>>10&1023|55296),ut=56320|1023&ut),lt.push(ut))}return String.fromCharCode.apply(null,lt)},nt.TextEncoder=rt,nt.TextDecoder=it})(typeof window<"u"?window:tt!==void 0?tt:this)}).call(this,et(6))},function(s,o,et){et.r(o),et.d(o,"AuthClient",function(){return rt}),et.d(o,"RtcSignalingClient",function(){return ot}),et.d(o,"Credentials",function(){return kt}),et.d(o,"SignalingPromiseClient",function(){return Nt.SignalingPromiseClient}),et.d(o,"RtcClient",function(){return un}),et.d(o,"RtcClientV1",function(){return ar}),et.d(o,"createRtcStreamMessage",function(){return Qr});var tt=et(26),nt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class rt extends tt.a{adminSignup(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/admin-signup",{token:mn,method:"POST",body:cn})})}login(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login",{method:"POST",body:cn,allowUnsafeRetries:!0})})}loginWithGoogleToken(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login-google",{method:"POST",body:cn,allowUnsafeRetries:!0})})}refresh(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/refresh",{method:"POST",body:{refreshToken:cn,tokenExpirationSeconds:mn},allowUnsafeRetries:!0})})}respondToNewPasswordRequiredChallenge(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/respond-to-new-password-required-challenge",{method:"POST",body:cn})})}forgotPassword(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/forgot-password",{method:"POST",body:{email:cn}})})}confirmForgotPassword(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/confirm-forgot-password",{method:"POST",body:cn})})}resendInvitation(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/resend-invitation",{method:"POST",body:{email:cn}})})}changePassword({token:cn,refreshToken:mn,currentPassword:xn,newPassword:Gn}){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/change-password",{token:cn,method:"POST",body:{refreshToken:mn,currentPassword:xn,newPassword:Gn}})})}getDeviceCredentials(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/device-credentials",{token:cn,method:"POST",allowUnsafeRetries:!0})})}impersonate(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/impersonate",{token:cn,method:"POST",allowUnsafeRetries:!0,body:{userId:mn}})})}createServiceAccount(cn,mn,xn,Gn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/service-account",{token:cn,method:"POST",allowUnsafeRetries:!0,body:{name:mn,roleId:xn,tags:Gn}})})}getFeatures(cn){return nt(this,void 0,void 0,function*(){return(yield this.fetch("auth/features",{token:cn})).features})}checkSso(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/check-sso",{method:"POST",body:{email:cn,allowUserAutoCreation:mn}})})}loginWithSso(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login-sso",{method:"POST",body:{token:cn,refreshToken:mn}})})}}var it=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class ot extends tt.a{createPeer(cn,mn){return it(this,void 0,void 0,function*(){return yield this.fetch("peers",{token:cn,method:"POST",body:mn})})}getPeers(cn){return it(this,void 0,void 0,function*(){return(yield this.fetch("peers",{token:cn})).items})}refreshPeer(cn,mn){return it(this,void 0,void 0,function*(){yield this.fetch(`peers/${mn}/refresh`,{token:cn,method:"POST",allowUnsafeRetries:!0})})}createSession(cn,mn){return it(this,void 0,void 0,function*(){return yield this.fetch("sessions",{token:cn,method:"POST",body:mn})})}refreshSession(cn,mn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${mn}/refresh`,{token:cn,method:"POST",allowUnsafeRetries:!0})})}deleteSession(cn,mn){return it(this,void 0,void 0,function*(){yield this.fetch("sessions/"+mn,{token:cn,method:"DELETE",allowUnsafeRetries:!0})})}getSessions(cn){return it(this,void 0,void 0,function*(){return(yield this.fetch("sessions",{token:cn})).items})}getIceServers(cn){return it(this,void 0,void 0,function*(){return(yield this.fetch("ice-servers",{token:cn})).items})}addSignals(cn,mn,xn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${mn}/add-signals`,{token:cn,method:"POST",body:xn})})}takeSignals(cn,mn){return it(this,void 0,void 0,function*(){return(yield this.fetch(`sessions/${mn}/take-signals`,{token:cn,method:"POST"})).items})}}var st=et(1),at=et(9),lt=et(15),ut=et.n(lt),dt=et(101),ht=et.n(dt),ct=et(3),pt=et(0),ft=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class gt extends class{constructor(cn,mn){this.type=cn,this.name=mn}}{constructor(cn){super("simple","LogReporter"),this.message=cn}send(cn){return ft(this,void 0,void 0,function*(){var mn,xn;pt.a.debug(this.message,(mn=cn.reduce((Gn,er)=>Object.assign(Object.assign({},Gn),{[er.name]:er.stat}),{}),xn=Gn=>{const{sum:er,count:cr}=Gn,gr=er/cr;return Object.assign(Object.assign({},Gn),{average:gr})},Object.keys(mn).reduce((Gn,er)=>Object.assign(Object.assign({},Gn),{[er]:xn(mn[er])}),{})))})}}const yt=/^[a-zA-Z0-9-_.,:?'"()@\/\\#$+ ]{1,255}$/,Ut=/^[*a-zA-Z0-9-_.,:?'"()@\/\\#$+ ]{1,255}$/;function Ft(hr,cn=!1){return!!(hr!=null&&hr.match(cn?Ut:yt))}var mt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};function vt({func:hr,delay:cn,immediate:mn=!1}){let xn=!1,Gn=setTimeout(function cr(){return mt(this,void 0,void 0,function*(){if(xn)return;const gr=new Date().getTime();try{er=hr(),yield er}finally{if(!xn){const br=new Date().getTime();Gn=setTimeout(cr,Math.max(cn-(br-gr),0))}}})},mn?0:cn),er=Promise.resolve();return{stop(){return mt(this,void 0,void 0,function*(){xn=!0,clearTimeout(Gn),yield er})}}}var At=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};const Lt=et(231);class Rt{constructor(cn){this.buffer={},this.reporters=[],this.flushInterval=vt({func:()=>this.flushStats(),delay:Rt.samplePeriodMs}),this.tags=this.filterTags(cn?.tags||{app:ct.a,version:ct.k,namespace:ct.j})}shutdown(){return At(this,void 0,void 0,function*(){yield this.flushInterval.stop(),yield this.flushStats(),yield Object(at.a)(2*st.a.second)})}aggregate(cn,mn,xn){this.addToBuffer(this.buffer,this.encodeKey({metric:cn,tags:this.filterTags(xn||{})}),typeof mn=="number"?{min:mn,max:mn,sum:mn,count:1}:mn)}increment(cn,mn){this.aggregate(cn,1,mn)}timer(cn,mn,xn){return At(this,void 0,void 0,function*(){const Gn=Lt(),er=yield mn(),cr=Lt();return this.aggregate(cn,cr-Gn,xn),er})}registerStatsReporter(cn){this.reporters.push(cn)}setTag(cn,mn){const xn=this.filterTags({[cn]:mn});this.tags=Object.assign(Object.assign({},this.tags),xn)}addToBuffer(cn,mn,xn){if(cn[mn]){const{min:Gn,max:er,sum:cr,count:gr}=cn[mn];cn[mn]={min:Math.min(Gn,xn.min),max:Math.max(er,xn.max),sum:cr+xn.sum,count:gr+xn.count}}else cn[mn]=xn}write(cn){return At(this,void 0,void 0,function*(){yield Promise.all(this.reporters.map(mn=>At(this,void 0,void 0,function*(){let xn;const Gn={};switch(mn.type){case"simple":for(const[cr,gr]of Object.entries(cn)){const{metric:br}=this.decodeKey(cr);this.addToBuffer(Gn,this.encodeKey({metric:br}),gr)}xn=Gn;break;case"tagged":xn=cn;break;default:(function(cr){throw new Error(`Unreachable type encountered (${cr})`)})(mn.type)}const er=Object.entries(xn);if(er.length>0)return mn.send(er.map(([cr,gr])=>{const{metric:br,tags:ur}=this.decodeKey(cr);return{name:br,tags:Object.assign(Object.assign({},ur),this.tags),stat:gr}}),Rt.samplePeriodMs).catch(cr=>{pt.a.debug("Failed to write stats to "+mn.name,{error:cr})})})))})}flushStats(){return At(this,void 0,void 0,function*(){yield this.write(this.buffer),this.buffer={}})}encodeKey(cn){return ut()(Object.assign(Object.assign({},cn),Object.keys(cn.tags||{}).length>0?{tags:cn.tags}:{}))}decodeKey(cn){return JSON.parse(cn)}filterTags(cn){return Object.entries(cn||{}).reduce((mn,[xn,Gn])=>(Ft(xn)&&Ft(Gn)&&(mn[xn]=Gn),mn),{})}}Rt.samplePeriodMs=5*st.a.minute;const St=!!ct.d,Tt=new Rt;St||["local","on-prem"].includes(ct.j)||Tt.registerStatsReporter(new gt("stats"));var Bt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class xt extends class{constructor(cn){this.options=cn,this.cache=new ht.a(Object.assign(Object.assign(Object.assign({},cn.dispose||cn.disposeAfter?{ttlAutopurge:!0}:{}),cn),{dispose:(...mn)=>{var xn;mn[2]==="evict"&&Tt.increment("lru-eviction",{name:cn.name}),(xn=cn.dispose)===null||xn===void 0||xn.call(cn,...mn)},disposeAfter:(...mn)=>{var xn;this.updateStats(),(xn=cn.disposeAfter)===null||xn===void 0||xn.call(cn,...mn)}})),this.stringify=cn.fastStringify?JSON.stringify:ut.a}set(cn,mn,xn){const Gn=this.stringify(cn);if(!this.cache.set(Gn,mn,{ttl:xn})){const er=this.cache.sizeCalculation?this.cache.sizeCalculation(mn,Gn):"unknown";throw Error(`Value too large (${er} > ${this.cache.max})`)}this.updateStats()}get(cn){const{name:mn}=this.options,xn=this.stringify(cn),Gn=this.cache.getRemainingTTL(xn);return Gn<=0?Tt.increment("cache-miss",{name:mn}):Gn!==1/0&&Tt.aggregate("cache-item-ttl",Gn,{name:mn}),this.cache.get(xn)}delete(cn){this.cache.delete(this.stringify(cn))}peek(cn){return this.cache.peek(this.stringify(cn))}size(){return this.cache.size}clear(){this.cache.clear()}forEach(cn){this.cache.forEach(cn)}purgeStale(){return this.cache.purgeStale()}updateStats(){const{name:cn}=this.options;Tt.aggregate("cache-item-count",this.cache.size,{name:cn}),this.cache.calculatedSize!==void 0&&Tt.aggregate("cache-length",this.cache.calculatedSize,{name:cn})}}{constructor(cn){if(super(cn),this.expireRejectedPromiseValues=cn.expireRejectedPromiseValues===void 0||cn.expireRejectedPromiseValues,this.rejectedPromiseValueTtl=cn.rejectedPromiseValueTtl!==void 0?cn.rejectedPromiseValueTtl:st.a.second,this.rejectedPromiseValueTtl<0)throw new Error("rejectedPromiseValueTtl must not be negative")}set(cn,mn,xn){super.set(cn,mn,xn),this.expireRejectedPromiseValues&&mn.catch(()=>Bt(this,void 0,void 0,function*(){yield Object(at.a)(this.rejectedPromiseValueTtl),this.peek(cn)===mn&&this.delete(cn)}))}}var Ct=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class kt{constructor(cn,mn,xn){this.authClient=cn,this.email=mn,this.password=xn,this.tokenTtlMs=1*st.a.hour,this.tokenCache=new xt({name:"Credentials-tokenCache",max:100,ttl:this.tokenTtlMs-5*st.a.minute,fastStringify:!0})}getToken(){return Ct(this,void 0,void 0,function*(){let cn=this.tokenCache.get(this.email);return cn||(cn=(()=>Ct(this,void 0,void 0,function*(){const{authentication:mn}=yield this.authClient.login({email:this.email,password:this.password,tokenExpirationSeconds:this.tokenTtlMs/st.a.second});if(!mn)throw new Error("User account not verified.");return mn.accessToken}))(),this.tokenCache.set(this.email,cn)),cn})}}var Nt=et(96),Ot=et(17),Jt=et(236),Dt=et(41),Et=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class Pt extends Dt.a{constructor(cn){super(cn)}postLanRtcOffer(cn){return Et(this,void 0,void 0,function*(){return yield this.fetch("v1/lan-rtc-offer",{method:"POST",body:cn})})}}var zt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};function en(hr){return zt(this,void 0,void 0,function*(){return(yield Promise.all(hr.map(cn=>cn.catch(mn=>mn)))).filter(cn=>cn instanceof Error)})}function Kt(hr,cn){if(hr===void 0)throw new Error("Value is undefined"+(cn?": "+cn:""))}function nn(hr,cn){if(hr===null)throw new Error("Value is null"+(cn?": "+cn:""))}function Zt(hr){return Kt(hr),hr}function jt(hr,cn){const mn=hr.reduce((xn,Gn)=>[...xn,...Gn.urls],[]).filter(xn=>Vt(xn,cn)).sort(xn=>It(xn,"udp")?-1:0).shift();if(mn)return Object.assign(Object.assign({},Zt(hr.find(xn=>xn.urls.includes(mn)))),{urls:[mn]})}function Vt(hr,cn){switch(cn){case"stun":return/^stuns?:/.test(hr);case"turn":return/^turns?:/.test(hr)}}function It(hr,cn){return hr.endsWith("transport="+cn)}var $t=et(10);class Ht extends Error{constructor(cn,mn){super(`Deadline expired after ${cn}ms + ${mn}ms`)}}class qt{static withDeadline(cn,mn){const xn=new Promise((Gn,er)=>{setTimeout(()=>{er(new Ht(mn,this.grpcCallDeadlineSlopMs))},mn+this.grpcCallDeadlineSlopMs)});return Promise.race([cn,xn])}}qt.grpcCallDeadlineSlopMs=500*st.a.millisecond;var on=et(27);const Xt={ordered:!1,maxPacketLifeTime:300*st.a.millisecond},dn={ordered:!0},_n={ordered:!0},Fn={ordered:!1,maxRetransmits:0},Un={ordered:!1,maxRetransmits:0},On=hr=>"received"in hr&&hr.received!==void 0,gn=hr=>!("received"in hr)||hr.received===void 0,hn=2*st.a.second,wn=10*st.a.second;function Zn(hr,cn={}){const mn=Array.from(hr.values()),xn=mn.filter(On),Gn=xn.length>0,er=Math.max(...mn.map(nr=>nr.sent)),cr=Math.max(...xn.map(nr=>nr.received));let gr;if(Gn){const nr=Date.now()-er<=st.a.millisecond?mn.length-1:mn.length,Kr=xn.length>nr?nr:xn.length,ho=xn.map(Gr=>Gr.received-Gr.sent),{standardDeviation:Nn,mean:rr,jitter:Rr}=function(Gr){const Pr=Gr.length;if(Pr===0)return{mean:NaN,standardDeviation:-1,jitter:NaN};const oo=Gr.reduce((lo,To)=>lo+To,0)/Pr,ao=Math.sqrt(Gr.map(lo=>Math.pow(lo-oo,2)).reduce((lo,To)=>lo+To)/Pr);if(Pr===1)return{mean:oo,standardDeviation:ao,jitter:NaN};let mo=0;for(let lo=1;loGr.sent{const[Kr,ho]=nr;ho.sent{var er,cr;return{streamId:Gn,sentCount:(er=mn.get(Gn))!==null&&er!==void 0?er:0,receivedCount:(cr=xn.get(Gn))!==null&&cr!==void 0?cr:0}}),timestamp:cn}}incrementLocalSent(cn){const{localSent:mn}=this.counts,xn=Pn(cn.header.stream);mn.set(xn,(mn.get(xn)||0)+1)}incrementLocalReceived(cn){const{localReceived:mn}=this.counts,xn=Pn(cn.header.stream),Gn=mn.get(xn)||0;if(Gn===0){const{streamName:er,streamType:cr}=cn.header.stream;pt.a.debug("RTC client received first message for stream",{streamName:er,streamType:cr})}mn.set(xn,Gn+1)}uploadMetrics(){return $n(this,void 0,void 0,function*(){const{sessionId:cn}=this,mn=yield this.connection.peerConnection.getStats(),xn={};mn.forEach(ur=>xn[ur.id]=ur),pt.a.debug("rtc-stats",Object.assign(Object.assign({},xn),{sessionId:cn}));const{localSent:Gn,localReceived:er,remoteSent:cr,remoteReceived:gr}=this.counts,br=[...new Set([...Gn.keys(),...er.keys()])].reduce((ur,nr)=>{const Kr=Gn.get(nr),ho=er.get(nr),Nn=cr.get(nr),rr=gr.get(nr);return Object.assign(Object.assign({},ur),{[`local-${nr}-sent`]:Kr,[`local-${nr}-received`]:ho,[`remote-${nr}-sent`]:Nn,[`remote-${nr}-received`]:rr})},{sessionId:cn});pt.a.debug("rtc-message-report",Object.assign({deviceId:this.connection.getRemoteDeviceId()},br))})}}function Qr(hr,cn,mn){return{header:{stream:hr,created:Date.now(),frameId:mn||""},payload:cn}}function _r(hr){const cn=hr.localCandidate.candidateType,mn=hr.remoteCandidate.candidateType;return cn==="host"&&mn==="host"?"local":cn==="relay"||mn==="relay"?"TURN":"STUN"}function Ir(hr){return new Set(["disconnected","failed","closed"]).has(hr.iceConnectionState)}function Jr(hr){switch(hr.header.stream.streamType){case"twist":{const{twist:cn}=hr.payload;if(!cn)throw Error("twist not in payload of RTC message with type twist");return{header:hr.header,payload:{twist:{linear:Object.assign({x:0,y:0,z:0},cn.linear),angular:Object.assign({x:0,y:0,z:0},cn.angular)}}}}case"pose":{const{pose:cn}=hr.payload;if(!cn)throw Error("pose not in payload of RTC message with type pose");return{header:hr.header,payload:{pose:{translation:Object.assign({x:0,y:0,z:0},cn.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},cn.rotation)}}}}case"pose-with-covariance":{const{poseWithCovariance:cn}=hr.payload;if(!cn)throw Error("poseWithCovariance not in payload of RTC message with type pose-with-covariance");const mn=new Array(36).fill(0);return cn.covariance.forEach((xn,Gn)=>{if(Gn>=36)throw Error("covariance contains more than 36 elements");mn[Gn]=xn}),{header:hr.header,payload:{poseWithCovariance:{pose:{translation:Object.assign({x:0,y:0,z:0},cn.pose.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},cn.pose.rotation)},covariance:mn}}}}case"point":{const{point:cn}=hr.payload;if(!cn)throw Error("point not in payload of RTC message with type point");return{header:hr.header,payload:{point:Object.assign({x:0,y:0,z:0},cn)}}}default:return hr}}var qr=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class Uo{get peerConnection(){return nn(this._peerConnection,"RTCPeerConnection is closed!"),this._peerConnection}constructor(cn,mn,xn,Gn){this.iceServers=mn,this.config=xn,this.dataChannelNotifier=Gn,this.connectTimeoutMs=20*st.a.second,this.iceGatheringTimeoutMs=3*st.a.second,this.pingUpdateTimeoutMs=1*st.a.second,this.pingV2UpdateTimeoutMs=250*st.a.millisecond,this.pingV2MetricsGatherTimeoutMs=1*st.a.second,this.streamsInfoUpdateTimeoutMs=2*st.a.second,this.reassemblyTimeoutMs=500*st.a.millisecond,this.reassemblyTableCleanupMs=1*st.a.second,this.heartbeatTimeoutMs=20*st.a.millisecond,this._peerConnection=null,this.heartbeatChannel=null,this.latestTtlStreamChannel=null,this.reliableStreamChannel=null,this.latestReliableStreamChannel=null,this.latestTryOnceStreamChannel=null,this.streamLatestTimestamp=new Map,this.reassemblyTable=new Map,this.reassemblyTableLastTimestamp=new Map,this.closeCalled=!1,this.gotOffer=!1,this.hasIceCandidate=!1,this.pingV2Map=new Map,this.sendPingV2=()=>{const{latestTryOnceStreamChannel:cr}=this;if(!cr)return;const gr=new Date().getTime(),br=Object(Jt.a)();this.sendSystemMessage(cr,{type:"ping-v2",payload:{timestamp:gr,id:br}}),this.pingV2Map.set(br,{sent:gr})},this.gatherPingV2Metrics=()=>{const cr=Zn(this.pingV2Map);if(cr){const gr=this.getRemoteDeviceId();this.pingInfo=cr,Tt.aggregate("rtc-ping-average",cr.average,Object.assign({},gr?{deviceId:gr}:{})),Tt.aggregate("rtc-ping-loss",cr.loss,Object.assign({},gr?{deviceId:gr}:{})),Tt.aggregate("rtc-jitter",cr.jitter,Object.assign({},gr?{deviceId:gr}:{}))}},this._peerConnection=cn;const{isOffer:er}=xn.baseConfig;er?this.initializeChannels(cn):cn.ondatachannel=cr=>{switch(cr.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=cr.channel;break;case"stream.reliable":this.reliableStreamChannel=cr.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=cr.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=cr.channel;break;case"heartbeat":return void(this.heartbeatChannel=cr.channel);default:return void this.dataChannelNotifier(cr.channel)}this.setupChannel(cr.channel)},this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:cr}=this;cr&&this.sendSystemMessage(cr,{type:"ping"})},this.pingUpdateTimeoutMs),this.pingV2UpdateTimeout=setInterval(this.sendPingV2,this.pingV2UpdateTimeoutMs),this.pingV2MetricsGatherTimeout=setInterval(this.gatherPingV2Metrics,this.pingV2MetricsGatherTimeoutMs),this.streamsInfoUpdateTimeout=setInterval(()=>{const{latestTtlStreamChannel:cr}=this;cr&&this.sendSystemMessage(cr,{type:"streams-info"})},this.streamsInfoUpdateTimeoutMs),this.reassemblyTableCleanupTimeout=setInterval(()=>{const cr=new Date().getTime();this.reassemblyTableLastTimestamp.forEach((gr,br,ur)=>{cr>br+this.reassemblyTimeoutMs&&this.reassemblyTable.delete(gr)})},this.reassemblyTableCleanupMs),this.heartbeatTimeout=setInterval(()=>{const{heartbeatChannel:cr}=this;cr&&cr.readyState==="open"&&cr.send(new Uint8Array([1]))},this.heartbeatTimeoutMs)}handleSignal(cn){return qr(this,void 0,void 0,function*(){const{peerConnection:mn}=this,{track:xn}=this.config.baseConfig,Gn=(()=>{try{return JSON.parse(cn.getPayload())}catch{return}})();if(!Gn)return void pt.a.error("Received unparseable signal.");pt.a.debug("Handling signal",{description:Gn});const{sdp:er,type:cr}=Gn;if(!er||!cr)return void pt.a.warn("Received non-SDP signal");const{signalingState:gr,connectionState:br}=mn;if(gr!=="stable"||br!=="connected")if(mn.remoteDescription)pt.a.warn("Received SDP after remote description was set: "+er);else{if(cr==="offer"){if(gr!=="stable")return void pt.a.warn("Received offer SDP when signaling is ongoing.");yield mn.setRemoteDescription(Gn);const ur=yield mn.createAnswer();yield mn.setLocalDescription(ur);const nr=cn.clone();return xn?.("Answer Received",nr),nr.setPayload(JSON.stringify(ur)),nr.setReceiverId(cn.getSenderId()),nr.setSenderId(cn.getReceiverId()),nr}if(cr==="answer"){if(gr==="stable")return void pt.a.warn("Received answer SDP when signaling hasn't started.");yield mn.setRemoteDescription(Gn)}}else pt.a.warn("Received SDP when already connected: "+er)})}send(cn,mn){const xn=this.getChannelFromLabel(mn.channelLabel);xn?this.sendOnChannel(xn,cn):pt.a.warn("Send called with unexpected channel label",{channelLabel:mn.channelLabel})}controlRemoteStream(cn){var mn;this.sendSystemMessage((nn(mn=this.reliableStreamChannel),mn),{type:"stream-control",streamControl:cn})}isActive(){return new Set(["new","checking","connected","completed"]).has(this.peerConnection.iceConnectionState)||this.isReady()}isReady(){const{reliableStreamChannel:cn,latestTtlStreamChannel:mn,latestTryOnceStreamChannel:xn,latestReliableStreamChannel:Gn}=this;return cn?.readyState==="open"&&mn?.readyState==="open"&&xn?.readyState==="open"&&Gn?.readyState==="open"}close(){var cn,mn,xn,Gn,er,cr,gr;return qr(this,void 0,void 0,function*(){this.closeCalled||(this.closeCalled=!0,yield(cn=this.sessionMetrics)===null||cn===void 0?void 0:cn.uploadMetrics(),eo(this.pingUpdateTimeout),eo(this.pingV2UpdateTimeout),eo(this.pingV2MetricsGatherTimeout),eo(this.reassemblyTableCleanupTimeout),eo(this.streamsInfoUpdateTimeout),eo(this.heartbeatTimeout),(mn=this._peerConnection)===null||mn===void 0||mn.close(),(xn=this.heartbeatChannel)===null||xn===void 0||xn.close(),(Gn=this.latestReliableStreamChannel)===null||Gn===void 0||Gn.close(),(er=this.latestTryOnceStreamChannel)===null||er===void 0||er.close(),(cr=this.latestTtlStreamChannel)===null||cr===void 0||cr.close(),(gr=this.reliableStreamChannel)===null||gr===void 0||gr.close(),this._peerConnection=null,this.heartbeatChannel=null,this.latestReliableStreamChannel=null,this.latestTryOnceStreamChannel=null,this.latestTtlStreamChannel=null,this.reliableStreamChannel=null)})}getPing(){return this.pingTimeMs}getPingInfo(){return this.pingInfo}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionCreatedTimestamp(){var cn;return(cn=this.config.remoteConfig)===null||cn===void 0?void 0:cn.sessionCreatedTimestamp}setSessionCreatedTimestamp(cn){this.config.remoteConfig&&(this.config.remoteConfig.sessionCreatedTimestamp=cn)}getSessionId(){var cn;return(cn=this.config.remoteConfig)===null||cn===void 0?void 0:cn.sessionId}setSessionId(cn){this.config.remoteConfig&&(this.config.remoteConfig.sessionId=cn,this.sessionMetrics=new Tr(cn,this))}getRemotePeerId(){return this.config.baseConfig.remotePeerId}getRemoteDeviceId(){var cn;return(cn=this.config.baseConfig)===null||cn===void 0?void 0:cn.remoteDeviceId}setRemoteDeviceId(cn){this.config.baseConfig.remoteDeviceId=cn}getSessionMetricsMessageCounts(){var cn;return(cn=this.sessionMetrics)===null||cn===void 0?void 0:cn.counts}getConnectionStatsInfo(){return qr(this,void 0,void 0,function*(){const{peerConnection:cn}=this;if(!cn)return;const mn=yield cn.getStats(null),xn=[];mn.forEach(br=>{xn.push(br)});const Gn=xn.find(br=>br.type==="transport");if(!Gn)return;const er=xn.find(br=>(br.type==="candidate-pair"||br.type==="candidatepair")&&br.id===Gn.selectedCandidatePairId);if(!er)return;const cr=xn.find(br=>br.id===er.localCandidateId),gr=xn.find(br=>br.id===er.remoteCandidateId);return cr&&gr&&(cr.address=cr.address||cr.ip,gr.address=gr.address||gr.ip,cr.address!==void 0&&gr.address!==void 0)?{transport:Gn,localCandidate:cr,remoteCandidate:gr,candidatePair:er}:void 0})}initializeChannels(cn){this.heartbeatChannel=cn.createDataChannel("heartbeat",Un),this.heartbeatChannel.binaryType="arraybuffer",this.latestTtlStreamChannel=cn.createDataChannel("stream.latest-ttl",Xt),this.latestTtlStreamChannel.binaryType="arraybuffer",this.reliableStreamChannel=cn.createDataChannel("stream.reliable",dn),this.reliableStreamChannel.binaryType="arraybuffer",this.latestReliableStreamChannel=cn.createDataChannel("stream.latest-reliable",_n),this.latestReliableStreamChannel.binaryType="arraybuffer",this.latestTryOnceStreamChannel=cn.createDataChannel("stream.latest-try-once",Fn),this.latestTryOnceStreamChannel.binaryType="arraybuffer",this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}getOffer(){var cn,mn;return qr(this,void 0,void 0,function*(){const{gotOffer:xn}=this,{peerConnection:Gn,config:er}=this;if(this.config.baseConfig.isLan)throw new Error('"getOffer" method can only be called with internet connections. LAN connections should call the "getLanOffer" method.');const cr=(cn=this.config.remoteConfig)===null||cn===void 0?void 0:cn.sessionId;if(xn)return void pt.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,Ir(this.peerConnection))return void pt.a.debug("Failed to generate offer because the peer connection was inactive.");const gr=er.baseConfig.track;Gn.onicecandidate=()=>{this.hasIceCandidate=!0},Gn.oniceconnectionstatechange=()=>qr(this,void 0,void 0,function*(){const Nn=Gn.iceConnectionState;if(Nn==="connected"||Nn==="completed"){const rr=yield this.getConnectionStatsInfo(),Rr=rr?_r(rr):void 0;pt.a.info("ICE connection state changed to "+Nn,{sessionId:cr,connectionStatsInfo:rr,iceMode:Rr}),gr?.("ICE connection state change",{iceConnectionState:Nn,sessionId:cr,connectionStatsInfo:rr,iceMode:Rr})}}),yield Gn.setLocalDescription(yield Gn.createOffer());const br=Gn.getConfiguration?Gn.getConfiguration().iceTransportPolicy:"all",ur=new Date().getTime();for(;;){const Nn=new Date().getTime()-ur;if(Nn>this.connectTimeoutMs)return void pt.a.debug("Failed to generate offer because ICE gathering timed out.");if(Nn>this.iceGatheringTimeoutMs&&this.hasIceCandidate){pt.a.debug("ICE gathering partially completed; proceeding",{iceTransportPolicy:br,waitTime:Nn}),gr?.("ICE gathering partially completed",{sessionId:cr,iceTransportPolicy:br,waitTime:Nn});break}if(Gn.iceGatheringState==="complete"){pt.a.debug("ICE gathering complete",{iceTransportPolicy:br,waitTime:Nn}),gr?.("ICE gathering completed",{sessionId:cr,iceTransportPolicy:br,waitTime:Nn});break}yield Object(at.a)(.1*st.a.second)}const nr=(mn=this.iceServers)!==null&&mn!==void 0?mn:[];for(const Nn of nr)"credentialType"in Nn&&(Nn.credentialType=void 0);const Kr=JSON.stringify(nr),ho=new $t.Signal;return ho.setPayload(JSON.stringify(Gn.localDescription)),ho.setSenderId(this.config.baseConfig.localPeerId),ho.setReceiverId(this.config.baseConfig.remotePeerId),ho.setIceServers(Kr),ho.setIceTransportPolicy(br??"all"),this.config.baseConfig.sessionType!==void 0?ho.setSessionType(this.config.baseConfig.sessionType):ho.setSessionType($t.SessionType.TELEOP),pt.a.debug("Sending offer signal with description",{description:ho.getPayload()}),ho})}getLanOffer(){return qr(this,void 0,void 0,function*(){const{peerConnection:cn,gotOffer:mn}=this;if(!this.config.baseConfig.isLan)throw new Error('"getLanOffer" method can only be used with LAN connections. Internet connections should call the "getOffer" method.');if(mn)return void pt.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,Ir(this.peerConnection))return void pt.a.debug("Failed to generate offer because the peer connection was inactive.");yield cn.setLocalDescription(yield cn.createOffer());const xn=new Date().getTime();for(;;){if(new Date().getTime()-xn>this.iceGatheringTimeoutMs)return void pt.a.debug("Failed to generate offer because ICE gathering timed out.");if(cn.iceGatheringState==="complete")break;yield Object(at.a)(.1*st.a.second)}const Gn=cn.localDescription;if(Gn)return pt.a.debug("Sending LAN offer signal with description",{description:Gn}),Gn;pt.a.error("Failed to generate LAN offer description")})}handleLanAnswer(cn){return qr(this,void 0,void 0,function*(){const{peerConnection:mn}=this;if(!this.config.baseConfig.isLan)throw new Error('"handleLanAnswer" method can only be used with LAN connections. Internet connections should call the "handleSignal" method.');yield mn.setRemoteDescription(cn)})}getChannelFromLabel(cn){switch(cn){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(cn,mn){var xn;let Gn;try{Gn=Object(on.encode)(JSON.stringify(mn))}catch(er){return void pt.a.warn("Failed to encode RTC message",{error:er})}try{cn.send(Gn),(xn=this.sessionMetrics)===null||xn===void 0||xn.incrementLocalSent(mn)}catch(er){pt.a.warn("Failed to send message to channel",{error:er,channel:cn.label})}}channelNotRecognized(cn){return cn!==this.latestTtlStreamChannel&&cn!==this.latestReliableStreamChannel&&cn!==this.latestTryOnceStreamChannel&&cn!==this.reliableStreamChannel}setupChannel(cn){cn.onmessage=mn=>{if(this.channelNotRecognized(cn))return void pt.a.warn("Received message on unrecognized data channel.");let xn;try{xn=JSON.parse(Object(on.decode)(mn.data))}catch(Gn){return void pt.a.warn("Received unparseable message on RTC stream data channel",{error:Gn,channel:cn.label})}xn.communicationType==="message-chunk"?this.receiveChannelMessageChunk(cn,xn):this.receiveChannelMessage(cn,xn)},cn.onerror=mn=>{pt.a.warn("Channel error: "+mn.error,{error:mn.error,sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onopen=()=>{pt.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onclose=()=>{const mn={bufferedAmount:cn.bufferedAmount,sessionId:this.getSessionId(),channelLabel:cn.label};this.closeCalled===!1?pt.a.debug("Unexpected channel closed",mn):pt.a.debug("Channel closed",mn)}}receiveChannelMessage(cn,mn){var xn;const{config:Gn}=this,{remotePeerId:er}=this.config.baseConfig;this.lastMessageTimestamp=new Date().getTime(),mn=Jr(mn),(xn=this.sessionMetrics)===null||xn===void 0||xn.incrementLocalReceived(mn),!this.handleSystemMessage(cn,mn)&&((cn===this.latestTryOnceStreamChannel||cn===this.latestTtlStreamChannel||cn===this.latestReliableStreamChannel)&&!this.isLatestMessage(mn)||Gn.baseConfig.receive(er,mn))}receiveChannelMessageChunk(cn,mn){const xn=this.reassemblyTable.get(mn.id)||[];if(xn.push(mn),xn.length===mn.total){const Gn=function(er){const cr=er.sort((gr,br)=>gr.seqgr.part).reduce((gr,br)=>gr+br);try{return JSON.parse(cr)}catch{return void pt.a.warn("Could not reassemble RTC message chunks")}}(xn);return Gn&&this.receiveChannelMessage(cn,Gn),void this.reassemblyTable.delete(mn.id)}this.reassemblyTable.set(mn.id,xn),this.reassemblyTableLastTimestamp.set(mn.id,new Date().getTime())}handleSystemMessage(cn,mn){var xn,Gn;const{config:er}=this,{baseConfig:cr}=er,{remotePeerId:gr,remoteDeviceId:br}=cr;switch(mn.header.stream.streamType){case"ping":return this.sendSystemMessage(cn,{type:"pong",timestamp:Zt(mn.payload.ping)}),!0;case"pong":{const ur=new Date().getTime()-Zt(mn.payload.pong);return this.pingTimeMs=ur,Tt.aggregate("rtc-ping-time",ur,Object.assign({},br?{deviceId:br}:{})),!0}case"ping-v2":return this.sendPingV2(),!0;case"pong-v2":{const ur=Zt(mn.payload.pongV2),nr=this.pingV2Map.get(ur.id);return nr?.sent!==ur.timestamp&&pt.a.warn("Pong timestamp doesn't match stored value",{currentEntry:nr,pong:ur}),this.pingV2Map.set(ur.id,{sent:ur.timestamp,received:new Date().getTime()}),!0}case"streams-info":{const{sessionMetrics:ur}=this,nr=(xn=mn.payload.streamsInfo)===null||xn===void 0?void 0:xn.timestamp;return!!nr&&(ur?.updateRemoteMessagesCounts(mn),(Gn=cr.onStreamsInfoUpdate)===null||Gn===void 0||Gn.call(cr,gr,nr),!0)}case"stream-control":return!0;default:return!1}}sendSystemMessage(cn,mn){var xn;const{localUserId:Gn,localPeerId:er}=this.config.baseConfig;if(cn.readyState!=="open")return;const cr={entityId:Gn??er,streamName:"$."+mn.type,streamType:mn.type};let gr;switch(mn.type){case"ping":gr={ping:new Date().getTime()};break;case"pong":gr={pong:mn.timestamp};break;case"ping-v2":gr={pingV2:mn.payload};break;case"pong-v2":gr={pongV2:mn.payload};break;case"stream-control":gr={streamControl:mn.streamControl};break;case"streams-info":gr={streamsInfo:(xn=this.sessionMetrics)===null||xn===void 0?void 0:xn.getLocalStreamsInfo(new Date().getTime())}}this.sendOnChannel(cn,Qr(cr,gr))}isLatestMessage(cn){const mn=Pn(cn.header.stream),xn=(this.streamLatestTimestamp.get(mn)||0)<=cn.header.created;return xn&&this.streamLatestTimestamp.set(mn,cn.header.created),xn}}function eo(hr){hr&&clearInterval(hr)}function Yr(){pt.a.debug("forceGarbageCollection() triggered"),queueMicrotask(()=>{let hr=document.createElement("img");hr.src=window.URL.createObjectURL(new Blob([new ArrayBuffer(5e7)])),hr.onerror=function(){window.URL.revokeObjectURL(this.src),hr=null}})}function _o(hr){try{return hr instanceof Error?`${hr.name}: ${hr.message}`:typeof hr=="object"?JSON.stringify(hr):String(hr)}catch{return"Unknown error"}}function ro(hr){var cn,mn;return{userId:(cn=hr.getUserId())===null||cn===void 0?void 0:cn.getValue(),deviceId:(mn=hr.getDeviceId())===null||mn===void 0?void 0:mn.getValue(),organizationId:hr.getOrganizationId(),id:hr.getPeerId(),capabilities:[],capabilitySet:{}}}var Fo=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};const kn=hr=>hr.map(cn=>Object.assign(Object.assign(Object.assign({},cn),cn.username?{username:""}:null),cn.credential?{credential:""}:null));class un{constructor(cn){this.config=cn,this.grpcCallDeadline=5*st.a.second,this.refreshIntervalDelayMs=2*st.a.second,this.iceServersTtl=30*st.a.minute,this.connections=[],this.localConnections=[],this.isConnectionInitiator=new WeakSet,this.isOutgoingConnection=new Set,this.peerDataChannelListeners=[],this.rtcInstancesConstructed=0,this.statsLoopsExecuted=0;const{refreshIntervalDelayMs:mn}=this;this.refreshInterval=vt({func:()=>Fo(this,void 0,void 0,function*(){try{yield this.update()}catch(xn){pt.a.warn("RTC refresh failed",{error:xn})}}),delay:mn,immediate:!0})}send(cn,mn,xn){const Gn=this.getActiveConnection(cn);Gn?Gn.isReady()?Gn.send(mn,xn):pt.a.warn("Send called with unready connection."):pt.a.warn("Send called with no connection.")}controlRemoteStream(cn,mn){const xn=this.getActiveConnection(cn);xn?xn.isReady()?xn.controlRemoteStream(mn):pt.a.warn("controlRemoteStream called with unready connection."):pt.a.warn("controlRemoteStream called with no connection.")}getLocalPeer(){return Fo(this,void 0,void 0,function*(){for(;!this.localPeer;)yield Object(at.a)(.1*st.a.second);return ro(this.localPeer)})}connect(cn,mn){var xn,Gn,er;return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode===!0)throw new Error("connect method called in local only mode.");const{track:cr,signalingClient:gr}=this.config,{localPeer:br,receiveSignalStream:ur,iceServers:nr}=this;if(!br||!ur||!nr)return void pt.a.warn("Connect called prior to local peer, receiveSignalStream, and ICE servers ready");if(this.getActiveConnection(cn))return void pt.a.warn("Connect called for peer with existing connection.");if(this.isOutgoingConnection.has(cn))return void pt.a.warn("Connect called for peer with an existing outgoing connection offer.");this.isOutgoingConnection.add(cn);const Kr=function(zr,Gr,Pr){const{rtcIceTransportPolicies:oo,rtcIceServerProtocol:ao,useAllServers:mo}=Gr||{},lo=zr.map(To=>Object.assign(Object.assign({},To),{urls:To.urls.filter(Wo=>{const Go=(oo===void 0||oo.some(cs=>Vt(Wo,cs)))&&(ao===void 0||It(Wo,ao));return Go||pt.a.debug("Ignoring ICE server: "+Wo,{organizationId:Pr}),Go})})).filter(({urls:To})=>To.filter(Wo=>Wo).length>0);return mo?lo:[jt(lo,"stun"),jt(lo,"turn")].filter(To=>To!==void 0).map(To=>Zt(To))}(nr,mn);pt.a.debug("Received ICE servers:",kn(nr)),pt.a.debug("Using ICE servers:",kn(Kr));const ho=new Uo(yield this.createRTCPeerConnection(Kr),Kr,{baseConfig:{isOffer:!0,isLan:!1,receive:(zr,Gr)=>this.config.receive(zr,Gr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(zr,Gr)=>{var Pr,oo;return(oo=(Pr=this.config).onStreamsInfoUpdate)===null||oo===void 0?void 0:oo.call(Pr,zr,Gr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(xn=br.getUserId())===null||xn===void 0?void 0:xn.getValue(),localPeerId:br.getPeerId(),remotePeerId:cn,sessionType:this.config.sessionType},remoteConfig:{}},zr=>this.onCustomDataChannel(cn,zr)),Nn=yield ho.getOffer();if(!Nn)return pt.a.error("Failed to generate offer."),void this.isOutgoingConnection.delete(cn);pt.a.debug("Sending offer."),cr?.("Sending offer",Nn);const rr=new $t.SendSignalRequest;rr.setSignal(Nn);const Rr=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(gr.sendSignal(rr,yield this.getMetadata()),this.grpcCallDeadline)}catch(zr){pt.a.warn("Error when sending signal",{error:zr})}}))();if(!this.isOutgoingConnection.has(cn))return void pt.a.debug("No offer set after receiving offer signal response.");pt.a.debug("Offer sent.");const vr=(Gn=Rr?.getSessionId())===null||Gn===void 0?void 0:Gn.getValue(),fr=(er=Rr?.getSessionCreatedTimestamp())===null||er===void 0?void 0:er.getValue();return vr&&fr?(ho.setSessionId(vr),ho.setSessionCreatedTimestamp(fr),this.isOutgoingConnection.delete(cn),this.connections.push(ho),this.isConnectionInitiator.add(ho),this.setupHandlers(ho),vr):(pt.a.warn("No session ID or no session created timestamp on send signal response."),void this.isOutgoingConnection.delete(cn))})}connectLan(cn){var mn,xn;return Fo(this,void 0,void 0,function*(){const Gn=new Pt(cn),er=new Uo(yield this.createRTCPeerConnection([]),[],{baseConfig:{isOffer:!0,isLan:!0,receive:(ur,nr)=>this.config.receive(ur,nr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(ur,nr)=>{var Kr,ho;return(ho=(Kr=this.config).onStreamsInfoUpdate)===null||ho===void 0?void 0:ho.call(Kr,ur,nr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(xn=(mn=this.localPeer)===null||mn===void 0?void 0:mn.getUserId())===null||xn===void 0?void 0:xn.getValue(),localPeerId:"lan_client",remotePeerId:cn}},ur=>this.onCustomDataChannel(cn,ur)),cr=yield er.getLanOffer();if(!cr)return pt.a.warn("Could not generate LAN offer"),!1;const gr=yield Gn.postLanRtcOffer({offer:JSON.stringify(cr)}),br=new RTCSessionDescription(JSON.parse(gr.answer));return yield er.handleLanAnswer(br),this.localConnections.push(er),this.isConnectionInitiator.add(er),Object(Jt.a)()})}getConnections(){return[...this.connections,...this.localConnections]}createCustomDataChannel(cn,mn,xn,Gn,er){const cr=this.getActiveConnection(cn);if(cr&&this.isConnectionInitiator.has(cr)){const br=cr.peerConnection.createDataChannel("custom."+mn,xn);return Gn&&(br.binaryType="arraybuffer"),er(cn,br),()=>{}}const gr=(br,ur)=>{cn===br&&ur.label==="custom."+mn&&er(cn,ur)};return this.peerDataChannelListeners.push(gr),()=>{this.peerDataChannelListeners=this.peerDataChannelListeners.filter(br=>br!==gr)}}onCustomDataChannel(cn,mn){this.peerDataChannelListeners.forEach(xn=>xn(cn,mn))}getConnectionStatus(cn){if(this.isOutgoingConnection.has(cn))return"connecting";const mn=this.getActiveConnection(cn);return mn?mn.isReady()?"connected":"connecting":"disconnected"}getConnectionStatsInfo(cn){return Fo(this,void 0,void 0,function*(){const mn=this.getActiveConnection(cn);if(mn)return yield mn.getConnectionStatsInfo()})}disconnect(cn){return Fo(this,void 0,void 0,function*(){const mn=this.getActiveConnection(cn);mn&&(yield mn.close(),this.connections=this.connections.filter(xn=>xn!==mn),this.localConnections=this.localConnections.filter(xn=>xn!==mn))})}getPeers(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,mn=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(cn.getPeers(new $t.GetPeersRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(er){pt.a.warn("Error when getting peers",{error:er})}}))();if(!mn)return[];const xn=mn.getPeersList();if(!xn)return[];const Gn=er=>{var cr,gr;return(gr=(cr=er.getPeerCreatedTimestamp())===null||cr===void 0?void 0:cr.getValue())!==null&&gr!==void 0?gr:0};return xn.sort((er,cr)=>Gn(cr)-Gn(er)).map(er=>ro(er))})}getSessions(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,mn=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(cn.getPeers(new $t.GetPeersRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(er){pt.a.warn("Error when getting peers",{error:er})}}))();if(!mn)return{};const xn=mn.getPeersList(),Gn={};for(const er of xn)Gn[er.getPeerId()]=er.getSessionIdsList();return Gn})}getPing(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getPing();pt.a.warn("Attempted to get ping time from inactive peer.")}getPingInfo(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getPingInfo();pt.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getLastMessageTimestamp();pt.a.warn("Attempted to get last message time from inactive peer.")}getSessionMetricsMessageCounts(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getSessionMetricsMessageCounts();pt.a.warn("Attempted to get session metrics counts from inactive peer.")}isReady(){if(this.config.lanOnlyMode)return!0;const{localPeer:cn,receiveSignalStream:mn,iceServers:xn}=this;return!!(cn&&mn&&xn)}shutdown(){return Fo(this,void 0,void 0,function*(){yield this.refreshInterval.stop(),this.receiveSignalStream&&this.receiveSignalStream.cancel();const cn=this.connections;this.connections=[],yield this.closeConnections(cn);const mn=this.localConnections;this.localConnections=[],yield this.closeConnections(mn),this.isOutgoingConnection.clear(),this.peerDataChannelListeners=[];const{localPeer:xn}=this;if(!xn||this.config.lanOnlyMode)return;const{signalingClient:Gn}=this.config;yield(()=>Fo(this,void 0,void 0,function*(){try{const er=new $t.DeletePeerRequest;er.setPeerId(xn.getPeerId()),yield qt.withDeadline(Gn.deletePeer(er,yield this.getMetadata()),this.grpcCallDeadline)}catch(er){return void pt.a.warn("Error deleting local peer",{error:er})}}))()})}createPeer(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createPeer method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,mn=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(cn.createPeer(new $t.CreatePeerRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(Gn){const er=Gn;pt.a.debug("createPeer failed",{error:er});const cr=_o(er);throw new Error("Was not able to create peer: "+cr)}}))(),xn=mn?.getPeer();if(!xn)throw new Error("Response did not provide peer.");return this.localPeer=xn})}createReceiveSignalStream(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createReceiveSignalStream method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,{localPeer:mn,iceServers:xn}=this;if(!mn||!xn)return;const{receiveSignalStream:Gn}=this;Gn&&Gn.cancel();const er=new $t.ReceiveSignalStreamRequest;er.setPeerId(mn.getPeerId());const cr=yield(()=>Fo(this,void 0,void 0,function*(){try{return cn.receiveSignalStream(er,yield this.getMetadata({hasDeadline:!1}))}catch(gr){pt.a.debug("createReceiveSignalStream failed",{error:gr});const br=_o(gr);throw new Error("Unable to create receive signal stream: "+br)}}))();if(!cr)throw new Error("Response did not provide stream.");return cr.on("data",gr=>Fo(this,void 0,void 0,function*(){var br,ur,nr,Kr;const ho=gr.getSignal(),Nn=(br=ho?.getSessionId())===null||br===void 0?void 0:br.getValue(),rr=ho?.getSenderId(),Rr=ho?.getReceiverId(),vr=(ur=ho?.getSessionCreatedTimestamp())===null||ur===void 0?void 0:ur.getValue();if(!(ho&&Nn&&rr&&Rr&&vr))return void pt.a.warn("Received signal with missing information.");const fr=this.getActiveConnection(rr);if(fr)if(fr.getSessionId()!==Nn){if(pt.a.debug("Received signal: different session for a peer we're already connected to."),(fr.getSessionCreatedTimestamp()||0)>vr)return;const zr=new Uo(yield this.createRTCPeerConnection(xn),xn,{baseConfig:{isOffer:!1,isLan:!1,receive:(Gr,Pr)=>this.config.receive(Gr,Pr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(Gr,Pr)=>{var oo,ao;return(ao=(oo=this.config).onStreamsInfoUpdate)===null||ao===void 0?void 0:ao.call(oo,Gr,Pr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:mn.getPeerId(),localUserId:(Kr=mn.getUserId())===null||Kr===void 0?void 0:Kr.getValue(),remotePeerId:rr},remoteConfig:{sessionId:Nn,sessionCreatedTimestamp:vr}},Gr=>this.onCustomDataChannel(rr,Gr));yield zr.handleSignal(ho),this.connections.push(zr)}else pt.a.debug("Received signal: for an existing connection."),yield fr.handleSignal(ho);else{pt.a.debug("Received signal: new connection.");const zr=new Uo(yield this.createRTCPeerConnection(xn),xn,{baseConfig:{isOffer:!1,isLan:!1,receive:(Gr,Pr)=>this.config.receive(Gr,Pr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(Gr,Pr)=>{var oo,ao;return(ao=(oo=this.config).onStreamsInfoUpdate)===null||ao===void 0?void 0:ao.call(oo,Gr,Pr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:mn.getPeerId(),localUserId:(nr=mn.getUserId())===null||nr===void 0?void 0:nr.getValue(),remotePeerId:rr},remoteConfig:{sessionId:Nn,sessionCreatedTimestamp:vr}},Gr=>this.onCustomDataChannel(rr,Gr));yield zr.handleSignal(ho),this.connections.push(zr)}})),cr.on("end",()=>{cr.cancel(),this.receiveSignalStream=void 0}),cr.on("error",gr=>{switch(gr.code){case Ot.StatusCode.CANCELLED:case Ot.StatusCode.UNAVAILABLE:case Ot.StatusCode.UNKNOWN:pt.a.debug("Receive signal stream error",{error:gr});break;case Ot.StatusCode.UNAUTHENTICATED:pt.a.warn("Receive signal stream error",{error:gr});break;default:pt.a.error("Receive signal stream error",{error:gr})}cr.cancel(),this.receiveSignalStream=void 0}),this.receiveSignalStream=cr})}createRTCPeerConnection(cn){var mn;return Fo(this,void 0,void 0,function*(){const xn=(mn=this.config.alternateRTCPeerConnection)!==null&&mn!==void 0?mn:window.RTCPeerConnection;if(!xn)throw function(){if(typeof navigator>"u")throw new Error("not a browser");const{userAgent:Gn}=navigator;return Gn.includes("Firefox/")?"Firefox":Gn.includes("Edg/")?"Edge":Gn.includes("Chrome/")?"Chrome":Gn.includes("Safari/")?"Safari":Gn.includes("MSIE/")||Gn.includes("Trident/")?"IE":"Other"}()!=="Chrome"?new Error("WebRTC is not enabled. Please try again with the latest version of Google Chrome."):new Error("WebRTC is not enabled. Please ensure WebRTC is not disabled by ad blocking software.");this.rtcInstancesConstructed++,this.rtcInstancesConstructed%20||Yr();try{return new xn({iceServers:cn})}catch(Gn){throw pt.a.debug(`Failed to create RTCPeerConnection: ${this.rtcInstancesConstructed} total allocated`),Gn}})}closeConnections(cn){return Fo(this,void 0,void 0,function*(){const mn=yield en(cn.map(xn=>Fo(this,void 0,void 0,function*(){yield xn.close()})));for(const xn of mn)pt.a.warn("Request to close session failed",{error:xn})})}getActiveConnection(cn){return this.getConnections().find(mn=>mn.getRemotePeerId()===cn&&mn.isActive())}update(){var cn;return Fo(this,void 0,void 0,function*(){if(this.localConnections=this.localConnections.filter(Kr=>Kr.isActive()),this.config.lanOnlyMode)return;const{signalingClient:mn}=this.config;if(!this.localPeer||!this.receiveSignalStream||!this.iceServers){const Kr=[];return this.localPeer||Kr.push(this.createPeer()),this.iceServers||Kr.push(this.updateIceServers()),yield Promise.all(Kr),void(this.receiveSignalStream||(yield this.createReceiveSignalStream()))}const[xn,Gn]=(er=this.connections,cr=Kr=>Kr.isActive(),er.reduce((Kr,ho,Nn,rr)=>{const[Rr,vr]=Kr;return(cr(ho,Nn,rr)?Rr:vr).push(ho),Kr},[[],[]]));var er,cr;yield this.closeConnections(Gn),this.connections=xn,this.gatherConnectionStats().catch(Kr=>{pt.a.warn("Error calling gatherConnectionStats",{error:Kr})}),this.statsLoopsExecuted++;const{localPeer:gr}=this,br=this.connections.filter(Kr=>Kr.getSessionId).map(Kr=>Zt(Kr.getSessionId()));gr.setSessionIdsList(br);const ur=new $t.RefreshPeerRequest;ur.setPeer(gr);try{yield qt.withDeadline(mn.refreshPeer(ur,yield this.getMetadata()),this.grpcCallDeadline)}catch(Kr){Kr instanceof Ot.RpcError&&Kr.code===Ot.StatusCode.NOT_FOUND?(pt.a.warn("Peer expired, creating new peer",{peerId:gr.getPeerId()}),yield this.reset()):pt.a.warn("Error calling RefreshPeer",{error:Kr})}const nr=yield this.getPeers();for(const Kr of this.connections)Kr.setRemoteDeviceId((cn=nr.find(ho=>ho.id===Kr.getRemotePeerId()))===null||cn===void 0?void 0:cn.deviceId)})}gatherConnectionStats(){return Fo(this,void 0,void 0,function*(){if(this.statsLoopsExecuted%10!=0||this.connections.length!==1)return;const cn=yield this.connections[0].getConnectionStatsInfo(),mn=cn?_r(cn):void 0;mn?Tt.setTag("rtc-connection-type",mn):Tt.setTag("rtc-connection-type","unknown")})}reset(){return Fo(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.isOutgoingConnection.clear(),yield this.createPeer(),yield this.createReceiveSignalStream()})}updateIceServers(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)return;const{iceServersLastUpdate:cn,iceServersTtl:mn}=this,xn=new Date().getTime();if(!cn||xn-cn>mn)try{const Gn=(yield qt.withDeadline(this.config.signalingClient.getIceServers(new $t.GetIceServersRequest,yield this.getMetadata()),this.grpcCallDeadline)).getIceServers();this.iceServers=JSON.parse(Gn),this.iceServersLastUpdate=xn}catch(Gn){pt.a.warn("Error in updateIceServers",{error:Gn})}})}setupHandlers(cn){const{peerConnection:mn}=cn,xn=cn.getSessionCreatedTimestamp();mn.onconnectionstatechange=()=>Fo(this,void 0,void 0,function*(){const Gn=mn.connectionState;if(!xn)return;const er=cn.getRemoteDeviceId();switch(Gn){case"connected":Tt.aggregate("rtc-connect-time",new Date().getTime()-xn,Object.assign({},er?{deviceId:er}:{}));break;case"failed":Tt.increment("rtc-connect-failed",Object.assign({},er?{deviceId:er}:{}))}})}getMetadata(cn={}){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getMetadata method cannot be called in local-only mode");const{getToken:mn}=this.config,{grpcCallDeadline:xn}=this,{hasDeadline:Gn=!0}=cn,er=Gn?{deadline:(Date.now()+xn).toString(10)}:null;try{const cr=yield mn();return Object.assign({authorization:cr},er)}catch(cr){throw pt.a.error("getToken() failed",{error:cr}),new Error("Cannot get authorization token")}})}}var pn=et(12),Qn=et(11),Jn=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class jn{constructor(cn,mn){this.sentMessagesCounts=new Map,this.receivedMessagesCounts=new Map,this.sessionId=cn,this.connection=mn}incrementMessageSent(cn){const mn=Pn(cn.header.stream);this.sentMessagesCounts.set(mn,(this.sentMessagesCounts.get(mn)||0)+1)}incrementMessageReceived(cn){const mn=Pn(cn.header.stream);this.receivedMessagesCounts.set(mn,(this.receivedMessagesCounts.get(mn)||0)+1)}uploadMetrics(){return Jn(this,void 0,void 0,function*(){const{sessionId:cn}=this,mn=yield this.connection.peerConnection.getStats(),xn={};mn.forEach(er=>xn[er.id]=er),pt.a.debug("rtc-stats",Object.assign(Object.assign({},xn),{sessionId:cn}));const Gn=[...new Set(Array.from(this.sentMessagesCounts.keys()).concat(Array.from(this.receivedMessagesCounts.keys())))].reduce((er,cr)=>{const gr=this.sentMessagesCounts.get(cr),br=this.receivedMessagesCounts.get(cr);return Object.assign(Object.assign({},er),{[cr+"-sent"]:gr,[cr+"-received"]:br})},{sessionId:cn});pt.a.debug("rtc-message-report",Gn)})}}function Fr(hr,cn){return Pn(hr)===Pn(cn)}var Er=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class wr{constructor(cn,mn){this.peerConnection=cn,this.config=mn,this.connectTimeoutMs=10*st.a.second,this.gatherIceTimeoutMs=5*st.a.second,this.pingUpdateTimeoutMs=2*st.a.second,this.streamLatestTimestamp=new Map,this.closeCalled=!1,this.connectCalled=!1,this.sentOffer=!1,this.receivedIceCandidate=!1;const{isOffer:xn}=mn;xn?this.initializeChannels(cn):cn.ondatachannel=Gn=>{switch(Gn.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=Gn.channel;break;case"stream.reliable":this.reliableStreamChannel=Gn.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=Gn.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=Gn.channel}this.setupChannel(Gn.channel)},this.sessionMetrics=new jn(this.getSessionId(),this)}connect(){return Er(this,void 0,void 0,function*(){if(this.connectCalled)return;this.connectCalled=!0,this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:Gn}=this;Gn&&this.sendSystemMessage(Gn,{type:"ping"})},this.pingUpdateTimeoutMs),this.connectTimeout=setTimeout(()=>Er(this,void 0,void 0,function*(){this.isReady()||(pt.a.warn("RTC connect timed out, closing connection"),yield this.close())}),this.connectTimeoutMs);const{peerConnection:cn,config:{isOffer:mn,sessionId:xn}}=this;if(mn){const Gn=yield cn.createOffer();yield cn.setLocalDescription(Gn)}mn&&(this.gatherIceTimeout=setTimeout(()=>Er(this,void 0,void 0,function*(){this.sentOffer||(pt.a.warn("ICE gathering timed out"),this.receivedIceCandidate?(pt.a.warn("Attempting to connect with partial ICE candidate pool"),yield this.sendOffer()):yield this.close())}),this.gatherIceTimeoutMs),cn.onicecandidate=Gn=>Er(this,void 0,void 0,function*(){Gn.candidate?this.receivedIceCandidate=!0:yield this.sendOffer()}),cn.onicegatheringstatechange=()=>Er(this,void 0,void 0,function*(){cn.iceGatheringState==="complete"&&(yield this.sendOffer())}),cn.onnegotiationneeded=()=>{pt.a.debug("Negotiation needed",{sessionId:xn})})})}handleSignal(cn){return Er(this,void 0,void 0,function*(){const{peerConnection:mn,config:{sessionId:xn,sendSignal:Gn}}=this,{description:er}=JSON.parse(cn.payload);if(pt.a.debug("Handling signal",{sessionId:xn,description:JSON.stringify(er)}),er)if(mn.signalingState!=="stable"||mn.connectionState!=="connected")if(mn.remoteDescription)pt.a.warn("Received SDP signal during negotiation when remote description is already set: "+JSON.stringify(cn));else if(er.type==="offer"){yield mn.setRemoteDescription(er);const cr=yield mn.createAnswer();yield mn.setLocalDescription(cr),yield Gn({payload:JSON.stringify({description:cr})})}else er.type==="answer"&&(yield mn.setRemoteDescription(er));else pt.a.warn("Received SDP signal when signaling is stable and connected: "+JSON.stringify(cn));else pt.a.warn("Received non-SDP signal: "+JSON.stringify(cn))})}send(cn,mn){const xn=this.getChannelFromLabel(mn.channelLabel);xn?this.sendOnChannel(xn,cn):pt.a.warn("Send called with unexpected channel label",{channelLabel:mn.channelLabel})}controlRemoteStream(cn){this.sendSystemMessage(Zt(this.reliableStreamChannel),{type:"stream-control",streamControl:cn})}isActive(){return new Set(["new","connecting","connected"]).has(this.peerConnection.connectionState)}isReady(){const{peerConnection:cn,latestTtlStreamChannel:mn,reliableStreamChannel:xn,latestTryOnceStreamChannel:Gn}=this;return!!(xn&&mn&&Gn)&&cn.connectionState==="connected"&&xn.readyState==="open"&&mn.readyState==="open"&&Gn.readyState==="open"}isClosed(){const{peerConnection:cn,reliableStreamChannel:mn,latestTryOnceStreamChannel:xn,latestTtlStreamChannel:Gn}=this;return!(cn.connectionState!=="closed"||mn!==void 0&&mn.readyState!=="closed"||xn!==void 0&&xn.readyState!=="closed"||Gn!==void 0&&Gn.readyState!=="closed")}needsClosing(){const{peerConnection:cn,latestTtlStreamChannel:mn,reliableStreamChannel:xn,latestTryOnceStreamChannel:Gn}=this;if(this.isClosed())return!1;const er=new Set(["closing","closed"]),cr=gr=>gr&&er.has(gr.readyState);return Ir(cn)||cr(mn)||cr(xn)||cr(Gn)}close(){return Er(this,void 0,void 0,function*(){this.closeCalled||(this.closeCalled=!0,yield this.sessionMetrics.uploadMetrics(),this.pingUpdateTimeout&&clearInterval(this.pingUpdateTimeout),this.connectTimeout&&clearTimeout(this.connectTimeout),this.gatherIceTimeout&&clearTimeout(this.gatherIceTimeout),this.peerConnection.close())})}getPing(){return this.pingTimeMs}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionId(){return this.config.sessionId}getRemotePeer(){return this.config.remotePeer}initializeChannels(cn){this.latestTtlStreamChannel=cn.createDataChannel("stream.latest-ttl",Xt),this.reliableStreamChannel=cn.createDataChannel("stream.reliable",dn),this.latestReliableStreamChannel=cn.createDataChannel("stream.latest-reliable",_n),this.latestTryOnceStreamChannel=cn.createDataChannel("stream.latest-try-once",Fn),this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}sendOffer(){return Er(this,void 0,void 0,function*(){if(this.sentOffer||(this.sentOffer=!0,Ir(this.peerConnection)))return;const{peerConnection:cn,config:{sendSignal:mn}}=this,xn=yield cn.createOffer();yield cn.setLocalDescription(xn);const Gn={payload:JSON.stringify({description:xn})};yield mn(Gn)})}getChannelFromLabel(cn){switch(cn){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(cn,mn){let xn;try{xn=Object(on.encode)(JSON.stringify(mn))}catch(Gn){return void pt.a.warn("Failed to encode RTC message",{error:Gn})}try{cn.send(xn),this.sessionMetrics.incrementMessageSent(mn)}catch(Gn){pt.a.warn("Failed to send message to channel",{error:Gn,channel:cn.label})}}channelNotRecognized(cn){return cn!==this.latestTtlStreamChannel&&cn!==this.latestReliableStreamChannel&&cn!==this.latestTryOnceStreamChannel&&cn!==this.reliableStreamChannel}setupChannel(cn){cn.onmessage=mn=>{if(this.channelNotRecognized(cn))return void pt.a.warn("Received message on unrecognized data channel.");let xn;try{xn=JSON.parse(Object(on.decode)(mn.data))}catch(Gn){return void pt.a.warn("Received unparseable RTC message",{error:Gn,channel:cn.label})}if(this.lastMessageTimestamp=new Date().getTime(),xn=Jr(xn),this.sessionMetrics.incrementMessageReceived(xn),!this.handleSystemMessage(cn,xn)){if(!this.hasCapabilities(xn))return void pt.a.warn("Received RTC message that was not within the capability scope of the connection.");(cn===this.latestTryOnceStreamChannel||cn===this.latestTtlStreamChannel||cn===this.latestReliableStreamChannel)&&!this.isLatestMessage(xn)||this.config.receive(this.config.remotePeer.id,xn)}},cn.onerror=mn=>{pt.a.warn("Channel error: "+mn.error,{error:mn.error,sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onopen=()=>{pt.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onclose=()=>{const mn={bufferedAmount:cn.bufferedAmount,sessionId:this.getSessionId(),channelLabel:cn.label};this.closeCalled===!1?pt.a.debug("Unexpected channel closed",mn):pt.a.debug("Channel closed",mn)}}handleSystemMessage(cn,mn){switch(mn.header.stream.streamType){case"ping":return this.sendSystemMessage(cn,{type:"pong",timestamp:Zt(mn.payload.ping)}),!0;case"pong":{const xn=new Date().getTime()-Zt(mn.payload.pong);return this.pingTimeMs=xn,Tt.aggregate("rtc-ping-time",xn),!0}case"stream-control":return!0;default:return!1}}sendSystemMessage(cn,mn){if(cn.readyState!=="open")return;const xn={entityId:Zt(this.config.localPeer.deviceId||this.config.localPeer.userId),streamName:"$."+mn.type,streamType:mn.type};let Gn;switch(mn.type){case"ping":Gn={ping:new Date().getTime()};break;case"pong":Gn={pong:mn.timestamp};break;case"stream-control":Gn={streamControl:mn.streamControl}}this.sendOnChannel(cn,Qr(xn,Gn))}hasCapabilities(cn){var mn,xn;const{localPeer:Gn,remotePeer:er}=this.config,cr=(mn=Gn.capabilitySet.streaming)===null||mn===void 0?void 0:mn.streams,gr=cr&&cr.some(nr=>nr.receive&&Fr(nr.stream,cn.header.stream)),br=(xn=er.capabilitySet.streaming)===null||xn===void 0?void 0:xn.streams,ur=br&&br.some(nr=>nr.send&&Fr(nr.stream,cn.header.stream));return gr||ur}isLatestMessage(cn){const mn=Pn(cn.header.stream),xn=(this.streamLatestTimestamp.get(mn)||0)<=cn.header.created;return xn&&this.streamLatestTimestamp.set(mn,cn.header.created),xn}}var tr=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class ar{constructor(cn){this.config=cn,this.connections=[],this.connectingSessions=new Map,this.rtcInstancesConstructed=0,this.updateInterval=vt({func:()=>tr(this,void 0,void 0,function*(){try{yield this.update()}catch(mn){pt.a.warn("RTC update failed",{error:mn})}}),delay:250*st.a.millisecond,immediate:!0}),this.localPeer=this.createPeer()}send(cn,mn,xn){const Gn=this.getActiveConnection(cn);Gn?Gn.isReady()?Gn.send(mn,xn):pt.a.warn("Attempted to send with an active connection to that peer which was not yet ready."):pt.a.warn("Attempted to send with no active connection to that peer.")}controlRemoteStream(cn,mn){const xn=this.getActiveConnection(cn);xn?xn.isReady()?xn.controlRemoteStream(mn):pt.a.warn("Attempted to control remote stream with an active connection to that peer which was not yet ready."):pt.a.warn("Attempted to control remote stream with no active connection to that peer.")}connect(cn){return tr(this,void 0,void 0,function*(){const mn=yield this.getLocalPeer();if(this.getActiveConnection(cn))return void pt.a.warn("Attempted to connect to peer with an already active connection.");let xn;try{xn=yield this.config.signalingClient.createSession(yield this.config.getToken(),{offerPeerId:mn.id,answerPeerId:cn})}catch(Gn){Object(pn.a)(Gn,Qn.a,er=>er.statusCode===404),pt.a.warn("Attempted to connect to peer that does not exist.")}if(xn)for(this.connectingSessions.set(xn.id,new Date().getTime()),yield this.connectToSession(xn);;)switch(yield Object(at.a)(.1),this.getConnectionStatus(cn)){case"connecting":continue;case"connected":return xn.id;case"disconnected":return}})}getConnectionStatus(cn){const mn=this.getActiveConnection(cn);return mn?mn.isReady()?"connected":"connecting":"disconnected"}getIceMode(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.iceMode}disconnect(cn){return tr(this,void 0,void 0,function*(){const mn=this.getActiveConnection(cn);mn&&(yield this.closeConnection(mn))})}getLocalPeer(){return tr(this,void 0,void 0,function*(){return yield this.localPeer})}getPeers(){return tr(this,void 0,void 0,function*(){return yield this.config.signalingClient.getPeers(yield this.config.getToken())})}getPing(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getPing();pt.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getLastMessageTimestamp();pt.a.warn("Attempted to get ping time from inactive peer.")}shutdown(){return tr(this,void 0,void 0,function*(){yield this.updateInterval.stop();const cn=this.connections;this.connections=[],yield this.closeConnections(cn)})}closeConnection(cn){return tr(this,void 0,void 0,function*(){this.connectingSessions.delete(cn.getSessionId()),yield cn.close();try{yield this.config.signalingClient.deleteSession(yield this.config.getToken(),cn.getSessionId())}catch(mn){Object(pn.a)(mn,Qn.a,xn=>xn.statusCode===404)}})}getSessions(){return tr(this,void 0,void 0,function*(){const cn=yield this.getLocalPeer();return(yield this.config.signalingClient.getSessions(yield this.config.getToken())).filter(mn=>mn.offer.peer.id===cn.id||mn.answer.peer.id===cn.id)})}createPeer(){return tr(this,void 0,void 0,function*(){return yield this.config.signalingClient.createPeer(yield this.config.getToken(),{capabilitySet:this.config.capabilitySet||{}})})}createRTCPeerConnection(cn={}){return tr(this,void 0,void 0,function*(){const mn=this.config.alternateRTCPeerConnection||RTCPeerConnection;this.rtcInstancesConstructed++,this.rtcInstancesConstructed%20||Yr();try{return new mn(Object.assign({iceServers:yield this.config.signalingClient.getIceServers(yield this.config.getToken())},cn))}catch(xn){throw pt.a.debug(`Failed to create RTCPeerConnection: ${this.rtcInstancesConstructed} total allocated`),xn}})}closeConnections(cn){return tr(this,void 0,void 0,function*(){const mn=yield en(cn.map(xn=>tr(this,void 0,void 0,function*(){yield this.closeConnection(xn)})));for(const xn of mn)pt.a.warn("Request to close session failed",{error:xn})})}reset(){return tr(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.connectingSessions=new Map,this.localPeer=this.createPeer(),yield this.localPeer})}getActiveConnection(cn){return this.connections.find(mn=>mn.getRemotePeer().id===cn&&mn.isActive())}update(){return tr(this,void 0,void 0,function*(){const cn=yield this.getLocalPeer();try{yield this.config.signalingClient.refreshPeer(yield this.config.getToken(),cn.id)}catch(mn){Object(pn.a)(mn,Qn.a,xn=>xn.statusCode===404),pt.a.warn("Peer expired, creating new peer",{peerId:cn.id}),yield this.reset()}yield this.handleSessions(yield this.getSessions())})}handleSessions(cn){return tr(this,void 0,void 0,function*(){yield this.syncConnectionsAndSessions(cn);const mn=cn.map(xn=>({session:xn,connection:this.connections.find(Gn=>Gn.getSessionId()===xn.id)}));yield Promise.all(mn.map(({session:xn,connection:Gn})=>tr(this,void 0,void 0,function*(){return yield this.maintainConnection(xn,Gn)})))})}syncConnectionsAndSessions(cn){return tr(this,void 0,void 0,function*(){const mn=new Set(cn.map(er=>er.id)),xn=er=>mn.has(er.getSessionId())||this.connectingSessions.has(er.getSessionId());this.connections=this.connections.filter(er=>xn(er));const Gn=this.connections.filter(er=>!xn(er)||er.needsClosing());yield Promise.all(Gn.map(er=>tr(this,void 0,void 0,function*(){yield this.closeConnection(er)})))})}maintainConnection(cn,mn){return tr(this,void 0,void 0,function*(){const xn=yield this.getLocalPeer(),Gn=cn.offer.peer.id===xn.id;if(mn){if(mn.isReady())try{yield this.config.signalingClient.refreshSession(yield this.config.getToken(),cn.id)}catch(er){Object(pn.a)(er,Qn.a,cr=>cr.statusCode===404),pt.a.debug("Refresh session not found",{sessionId:cn.id})}else if(mn.isActive())try{yield this.consumeSignals(mn)}catch(er){pt.a.warn("Failed to ingest signals, closing connection",{error:er}),yield this.closeConnection(mn)}}else{if(Gn)return;yield this.connectToSession(cn)}})}connectToSession(cn){return tr(this,void 0,void 0,function*(){const mn=yield this.getLocalPeer(),xn=cn.offer.peer.id===mn.id,Gn=yield this.createRTCPeerConnection(),er=new wr(Gn,{localPeer:xn?cn.offer.peer:cn.answer.peer,remotePeer:xn?cn.answer.peer:cn.offer.peer,sessionId:cn.id,isOffer:xn,sendSignal:cr=>this.sendSignal(cn.id,cr),receive:(cr,gr)=>this.config.receive(cr,gr)});if(this.connections.find(cr=>cr.getSessionId()===cn.id))return pt.a.warn("connectToSession called on a session that already has a connection.",{sessionId:cn.id}),void(yield er.close());this.setupHandlers(er),this.connections.push(er);try{yield er.connect()}catch(cr){pt.a.warn("Failed to handle negotiation, closing connection",{error:cr}),yield this.closeConnection(er)}})}setupHandlers(cn){const{peerConnection:mn}=cn,xn=cn.getSessionId();mn.onconnectionstatechange=()=>tr(this,void 0,void 0,function*(){const Gn=this.connectingSessions.get(xn);if(Gn===void 0)return;const er=mn.connectionState;switch(Ir(mn)&&this.connectingSessions.delete(xn),er){case"connected":{this.connectingSessions.delete(xn);const cr=new Date().getTime()-Gn;Tt.aggregate("rtc-connect-time",cr);break}case"failed":Tt.increment("rtc-connect-failed"),yield this.closeConnection(cn)}})}consumeSignals(cn){return tr(this,void 0,void 0,function*(){let mn=[];try{mn=yield this.config.signalingClient.takeSignals(yield this.config.getToken(),cn.getSessionId())}catch(xn){Object(pn.a)(xn,Qn.a,Gn=>Gn.statusCode===404)}for(const xn of mn)yield cn.handleSignal(xn)})}sendSignal(cn,mn){return tr(this,void 0,void 0,function*(){try{yield this.config.signalingClient.addSignals(yield this.config.getToken(),cn,{signals:[mn]})}catch(xn){Object(pn.a)(xn,Qn.a,Gn=>Gn.statusCode===404)}})}}},,function(s,o,et){et.r(o),et.d(o,"LogClient",function(){return ot});var tt=et(26),nt=et(12),rt=et(11),it=function(st,at,lt,ut){return new(lt||(lt=Promise))(function(dt,ht){function ct(gt){try{ft(ut.next(gt))}catch(yt){ht(yt)}}function pt(gt){try{ft(ut.throw(gt))}catch(yt){ht(yt)}}function ft(gt){var yt;gt.done?dt(gt.value):(yt=gt.value,yt instanceof lt?yt:new lt(function(Ut){Ut(yt)})).then(ct,pt)}ft((ut=ut.apply(st,at||[])).next())})};class ot extends tt.a{log(at){return it(this,void 0,void 0,function*(){const lt=ot.token;try{yield this.fetch("logs",{token:lt,method:"POST",body:{logs:at},allowUnsafeRetries:!0})}catch(ut){Object(nt.a)(ut,rt.a,dt=>dt.statusCode===401&<!==void 0),ot.token===lt&&delete ot.token,yield this.log(at)}})}}},function(s,o,et){var tt={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let nt;const rt=new Uint8Array(16);function it(){if(!nt&&(nt=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!nt))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return nt(rt)}const ot=[];for(let at=0;at<256;++at)ot.push((at+256).toString(16).slice(1));function st(at,lt=0){return(ot[at[lt+0]]+ot[at[lt+1]]+ot[at[lt+2]]+ot[at[lt+3]]+"-"+ot[at[lt+4]]+ot[at[lt+5]]+"-"+ot[at[lt+6]]+ot[at[lt+7]]+"-"+ot[at[lt+8]]+ot[at[lt+9]]+"-"+ot[at[lt+10]]+ot[at[lt+11]]+ot[at[lt+12]]+ot[at[lt+13]]+ot[at[lt+14]]+ot[at[lt+15]]).toLowerCase()}o.a=function(at,lt,ut){if(tt.randomUUID&&!lt&&!at)return tt.randomUUID();const dt=(at=at||{}).random||(at.rng||it)();if(dt[6]=15&dt[6]|64,dt[8]=63&dt[8]|128,lt){ut=ut||0;for(let ht=0;ht<16;++ht)lt[ut+ht]=dt[ht];return lt}return st(dt)}}])})})(dist);var distExports=dist.exports;const SessionTypes={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3,HEADLESS:4},singleton=Symbol("RtcClientPool.instance");var Sn;class RtcClientPool{constructor(o){he(this,Sn,null),he(this,"createClient"),he(this,"ttlMs"),he(this,"proxyHandler"),he(this,"proxyReceivers",new Map),he(this,"teardownTimeout",null),he(this,"dispatch",(nt,rt)=>{this.proxyReceivers.forEach(it=>it?.(nt,rt))});const{createClient:et,ttlMs:tt=0}=o;this.createClient=et,this.ttlMs=Math.max(tt,0),this.proxyHandler={get:(nt,rt,it)=>{switch(rt){case"shutdown":return()=>this.releaseInstance(it);default:return Reflect.get(nt,rt,it)}}}}get isActive(){return this[singleton]!==null}get size(){return this.proxyReceivers.size}get(o){const et=new Proxy(this.allocate(),this.proxyHandler);return this.proxyReceivers.set(et,o??null),et}allocate(){if(this[singleton])return this.teardownTimeout&&(clearTimeout(this.teardownTimeout),this.teardownTimeout=null),this[singleton];const o=this.createClient(this.dispatch);return this[singleton]=o,o}async teardown(){const o=this[singleton];if(!o){console.warn("singleton has already been shutdown!");return}try{await o.shutdown()}finally{this[singleton]=null}}async releaseInstance(o){return this.proxyReceivers.delete(o)?this.proxyReceivers.size!==0?!1:(!this.teardownTimeout&&Number.isFinite(this.ttlMs)&&(this.ttlMs===0?await this.teardown():this.teardownTimeout=setTimeout(()=>{this.teardown().catch(et=>console.error("teardown failed",{err:et})).finally(()=>this.teardownTimeout=null)},this.ttlMs)),!0):(console.warn("this instance has already been released!"),!1)}}Sn=singleton;const getToken=async()=>defined$1(Authentication.token,"Realtime when user isn't authorized"),EnumRtcClientPools={[SessionTypes.UNKNOWN]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.UNKNOWN,receive:s})}),[SessionTypes.TELEOP]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.TELEOP,receive:s})}),[SessionTypes.PORT_FORWARD]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.PORT_FORWARD,receive:s})}),[SessionTypes.OBSERVE]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.OBSERVE,receive:s})}),[SessionTypes.HEADLESS]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.HEADLESS,receive:s})})},AppRtcClientPools={...EnumRtcClientPools,unknown:EnumRtcClientPools[SessionTypes.UNKNOWN],teleop:EnumRtcClientPools[SessionTypes.TELEOP],portForward:EnumRtcClientPools[SessionTypes.PORT_FORWARD],observe:EnumRtcClientPools[SessionTypes.OBSERVE],headless:EnumRtcClientPools[SessionTypes.HEADLESS]},defaultRtcClientPool=EnumRtcClientPools[SessionTypes.TELEOP],getRtcClientPool=s=>{const{sessionType:o}=s;return o?AppRtcClientPools[o]:defaultRtcClientPool};class CaptureStream{constructor(o){he(this,"token"),this.captureSession=o}async ingestJSON(o){if(!this.token){const et=await(await fetch(`${FORMANT_API_URL}/v1/admin/capture-sessions/${this.captureSession.code}/authenticate`,{method:"POST"})).json();this.token=et.token}await fetch(`${FORMANT_API_URL}/v1/ingest`,{method:"POST",body:JSON.stringify({deviceId:this.captureSession.deviceId,name:this.captureSession.streamName,type:"json",points:[[Date.now(),JSON.stringify(o)]]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+this.token}})}}function delay$1(s){return new Promise(o=>setTimeout(o,s))}const isRtcPeer=s=>s!==void 0&&s.capabilities!==void 0&&s.capabilitySet!==void 0;class DataChannel{constructor(o){he(this,"ready",!1),he(this,"listeners",[]),he(this,"openListeners",[]),he(this,"closeListeners",[]),he(this,"errorListeners",[]),he(this,"binaryListeners",[]),he(this,"error"),he(this,"decoder",new TextDecoder),this.dataChannel=o,this.dataChannel.binaryType="arraybuffer",this.dataChannel.onopen=()=>{this.setReady()},this.dataChannel.onclose=()=>{this.ready=!1,this.closeListeners.forEach(et=>et())},this.dataChannel.onerror=et=>{console.error(et),this.error="An error occurred in DataChannel",this.errorListeners.forEach(tt=>tt(et))},this.dataChannel.onmessage=et=>{this.listeners.forEach(tt=>{const nt=new Uint8Array(et.data),rt=this.decoder.decode(nt);tt(rt)}),this.binaryListeners.forEach(tt=>{tt(new Uint8Array(et.data))})}}setReady(){this.ready=!0,this.openListeners.forEach(o=>o())}addOpenListener(o){this.openListeners.push(o)}removeOpenListener(o){this.openListeners=this.openListeners.filter(et=>et!==o)}addCloseListener(o){this.closeListeners.push(o)}removeCloseListener(o){this.closeListeners=this.closeListeners.filter(et=>et!==o)}addErrorListener(o){this.errorListeners.push(o)}removeErrorListener(o){this.errorListeners=this.errorListeners.filter(et=>et!==o)}async waitTilReady(){return this.ready?!0:new Promise((o,et)=>{let tt=setInterval(()=>{this.dataChannel.readyState==="open"&&this.setReady(),this.ready&&(clearInterval(tt),o(!0)),this.error&&et(this.error)},10)})}send(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}sendBinary(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}addListener(o){this.listeners.push(o)}removeListener(o){const et=this.listeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.listeners.splice(et,1)}addBinaryListener(o){this.binaryListeners.push(o)}removeBinaryListener(o){const et=this.binaryListeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.binaryListeners.splice(et,1)}}var eventemitter3={exports:{}};(function(s){var o=Object.prototype.hasOwnProperty,et="~";function tt(){}Object.create&&(tt.prototype=Object.create(null),new tt().__proto__||(et=!1));function nt(st,at,lt){this.fn=st,this.context=at,this.once=lt||!1}function rt(st,at,lt,ut,dt){if(typeof lt!="function")throw new TypeError("The listener must be a function");var ht=new nt(lt,ut||st,dt),ct=et?et+at:at;return st._events[ct]?st._events[ct].fn?st._events[ct]=[st._events[ct],ht]:st._events[ct].push(ht):(st._events[ct]=ht,st._eventsCount++),st}function it(st,at){--st._eventsCount===0?st._events=new tt:delete st._events[at]}function ot(){this._events=new tt,this._eventsCount=0}ot.prototype.eventNames=function(){var st=[],at,lt;if(this._eventsCount===0)return st;for(lt in at=this._events)o.call(at,lt)&&st.push(et?lt.slice(1):lt);return Object.getOwnPropertySymbols?st.concat(Object.getOwnPropertySymbols(at)):st},ot.prototype.listeners=function(st){var at=et?et+st:st,lt=this._events[at];if(!lt)return[];if(lt.fn)return[lt.fn];for(var ut=0,dt=lt.length,ht=new Array(dt);ut{nt.payload.jointState&&this.currentListeners.forEach(rt=>{nt.payload.jointState&&rt(nt.payload.jointState)})}),this.device=o,this.config=et}async synchronize(){this.device.addRealtimeListener(this.onRealtimeMessage),this.device.startListeningToRealtimeDataStream(this.config.currentJointStateStream)}async desynchronize(){this.device.removeRealtimeListener(this.onRealtimeMessage),this.device.stopListeningToRealtimeDataStream(this.config.currentJointStateStream)}async addCurrentJointStateListener(o){this.currentListeners.push(o)}}class RequestDataChannel{constructor(o,et,tt){he(this,"channel"),he(this,"requestIdToResponseMap",new Map),this.device=o,this.channel_name=et,this.timeout=tt}addOpenListener(o){defined$1(this.channel,"channel not initalized").addOpenListener(o)}removeOpenListener(o){defined$1(this.channel,"channel not initalized").removeOpenListener(o)}addCloseListener(o){defined$1(this.channel,"channel not initalized").addCloseListener(o)}removeCloseListener(o){defined$1(this.channel,"channel not initalized").removeCloseListener(o)}addErrorListener(o){defined$1(this.channel,"channel not initalized").addErrorListener(o)}removeErrorListener(o){defined$1(this.channel,"channel not initalized").removeErrorListener(o)}}class BinaryRequestDataChannel extends RequestDataChannel{constructor(){super(...arguments),he(this,"RESPONSE_SUCCESS_BYTE",0),he(this,"decoder",new TextDecoder)}generateBinaryId(){const o=new Uint8Array(16);for(let et=0;et{const et=o.slice(0,16).toString();if(et.length===0)throw new Error("Invalid response");const tt=o.slice(16);if(tt.length===0)throw new Error("Invalid response");this.requestIdToResponseMap.has(et)&&this.requestIdToResponseMap.set(et,tt)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateBinaryId(),it=rt.toString();tt.set(it,!0),et.sendBinary(new Uint8Array([...rt,...o]));const ot=new Date().getTime();for(;new Date().getTime(){const et=JSON.parse(o),{id:tt,data:nt,error:rt}=et;if(!tt)throw new Error("Invalid response");if(!nt&&!rt)throw new Error("Invalid response");this.requestIdToResponseMap.has(tt)&&this.requestIdToResponseMap.set(tt,et)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateTextId();tt.set(rt,!0),et.send(JSON.stringify({id:rt,data:o}));const it=new Date().getTime();for(;new Date().getTime(){this.realtimeListeners.forEach(tt=>tt(o,et))})}stopConnectionMonitoring(){clearInterval(this.connectionMonitorInterval),this.connectionMonitorInterval=void 0}assertNotCancelled(o){if(o)throw new Error("Cancelled by deadline")}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}addRealtimeListener(o){this.realtimeListeners.push(o)}removeRealtimeListener(o){const et=this.realtimeListeners.indexOf(o);if(et===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(et,1)}async getRealtimeManipulators(){var o;const et=await this.getConfiguration(),tt=[];for(const nt of(o=et.teleop.rosStreams)!=null?o:[])nt.topicType=="sensor_msgs/JointState"&&tt.push(new Manipulator(this,{currentJointStateStream:{name:nt.topicName},plannedJointStateStream:nt.plannedTopic?{name:nt.plannedTopic}:void 0,planValidStream:nt.planValidTopic?{name:nt.planValidTopic}:void 0,endEffectorStream:nt.endEffectorTopic?{name:nt.endEffectorTopic}:void 0,endEffectorLinkName:nt.endEffectorLinkName,baseReferenceFrame:nt.baseReferenceFrame,localFrame:nt.localFrame}));return tt}async getRealtimeVideoStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="formant/H264VideoFrame"&&st.push({name:at.topicName}),(at.topicType==="sensor_msgs/Image"||at.topicType==="sensor_msgs/CompressedImage")&&at.encodeVideo&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});return st}createCustomRequestDataChannel(o,et=3e3){return new TextRequestDataChannel(this,o,et)}createCustomBinaryRequestDataChannel(o,et=3e3){return new BinaryRequestDataChannel(this,o,et)}async startListeningToRealtimeVideo(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o,enablePriorityUpload:!0,pipeline:"telemetry"})}async disableRealtimeTelemetryPriorityIngestion(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o,enablePriorityUpload:!1,pipeline:"telemetry"})}async changeStreamAudioType(o,et){const tt=defined$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.controlRemoteStream(defined$1(nt).id,{streamName:o,setAudioFormat:et})}async createCustomDataChannel(o,et){const tt=defined$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer(),rt=await new Promise(it=>{tt.createCustomDataChannel(defined$1(nt).id,o,{ordered:!0,...et},!1,(ot,st)=>{const at=new DataChannel(st);it(at)})});return await rt.waitTilReady(),rt}async sendRealtimeMessage(o,et={channelLabel:"stream.reliable"}){const tt=defined$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.send(defined$1(nt).id,o,et)}async getRealtimeAudioStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="audio_common_msgs/AudioData"&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});return st}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Z_FIXED$1=4,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN$1=2;function zero$1(s){let o=s.length;for(;--o>=0;)s[o]=0}const STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH$1=3,MAX_MATCH$1=258,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,BL_CODES$1=19,HEAP_SIZE$1=2*L_CODES$1+1,MAX_BITS$1=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),extra_dbits=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),extra_blbits=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),bl_order=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),DIST_CODE_LEN=512,static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);const static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);const _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);const _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);const base_length=new Array(LENGTH_CODES$1);zero$1(base_length);const base_dist=new Array(D_CODES$1);zero$1(base_dist);function StaticTreeDesc(s,o,et,tt,nt){this.static_tree=s,this.extra_bits=o,this.extra_base=et,this.elems=tt,this.max_length=nt,this.has_stree=s&&s.length}let static_l_desc,static_d_desc,static_bl_desc;function TreeDesc(s,o){this.dyn_tree=s,this.max_code=0,this.stat_desc=o}const d_code=s=>s<256?_dist_code[s]:_dist_code[256+(s>>>7)],put_short=(s,o)=>{s.pending_buf[s.pending++]=o&255,s.pending_buf[s.pending++]=o>>>8&255},send_bits=(s,o,et)=>{s.bi_valid>Buf_size-et?(s.bi_buf|=o<>Buf_size-s.bi_valid,s.bi_valid+=et-Buf_size):(s.bi_buf|=o<{send_bits(s,et[o*2],et[o*2+1])},bi_reverse=(s,o)=>{let et=0;do et|=s&1,s>>>=1,et<<=1;while(--o>0);return et>>>1},bi_flush=s=>{s.bi_valid===16?(put_short(s,s.bi_buf),s.bi_buf=0,s.bi_valid=0):s.bi_valid>=8&&(s.pending_buf[s.pending++]=s.bi_buf&255,s.bi_buf>>=8,s.bi_valid-=8)},gen_bitlen=(s,o)=>{const et=o.dyn_tree,tt=o.max_code,nt=o.stat_desc.static_tree,rt=o.stat_desc.has_stree,it=o.stat_desc.extra_bits,ot=o.stat_desc.extra_base,st=o.stat_desc.max_length;let at,lt,ut,dt,ht,ct,pt=0;for(dt=0;dt<=MAX_BITS$1;dt++)s.bl_count[dt]=0;for(et[s.heap[s.heap_max]*2+1]=0,at=s.heap_max+1;atst&&(dt=st,pt++),et[lt*2+1]=dt,!(lt>tt)&&(s.bl_count[dt]++,ht=0,lt>=ot&&(ht=it[lt-ot]),ct=et[lt*2],s.opt_len+=ct*(dt+ht),rt&&(s.static_len+=ct*(nt[lt*2+1]+ht)));if(pt!==0){do{for(dt=st-1;s.bl_count[dt]===0;)dt--;s.bl_count[dt]--,s.bl_count[dt+1]+=2,s.bl_count[st]--,pt-=2}while(pt>0);for(dt=st;dt!==0;dt--)for(lt=s.bl_count[dt];lt!==0;)ut=s.heap[--at],!(ut>tt)&&(et[ut*2+1]!==dt&&(s.opt_len+=(dt-et[ut*2+1])*et[ut*2],et[ut*2+1]=dt),lt--)}},gen_codes=(s,o,et)=>{const tt=new Array(MAX_BITS$1+1);let nt=0,rt,it;for(rt=1;rt<=MAX_BITS$1;rt++)nt=nt+et[rt-1]<<1,tt[rt]=nt;for(it=0;it<=o;it++){let ot=s[it*2+1];ot!==0&&(s[it*2]=bi_reverse(tt[ot]++,ot))}},tr_static_init=()=>{let s,o,et,tt,nt;const rt=new Array(MAX_BITS$1+1);for(et=0,tt=0;tt>=7;tt{let o;for(o=0;o{s.bi_valid>8?put_short(s,s.bi_buf):s.bi_valid>0&&(s.pending_buf[s.pending++]=s.bi_buf),s.bi_buf=0,s.bi_valid=0},smaller=(s,o,et,tt)=>{const nt=o*2,rt=et*2;return s[nt]{const tt=s.heap[et];let nt=et<<1;for(;nt<=s.heap_len&&(nt{let tt,nt,rt=0,it,ot;if(s.sym_next!==0)do tt=s.pending_buf[s.sym_buf+rt++]&255,tt+=(s.pending_buf[s.sym_buf+rt++]&255)<<8,nt=s.pending_buf[s.sym_buf+rt++],tt===0?send_code(s,nt,o):(it=_length_code[nt],send_code(s,it+LITERALS$1+1,o),ot=extra_lbits[it],ot!==0&&(nt-=base_length[it],send_bits(s,nt,ot)),tt--,it=d_code(tt),send_code(s,it,et),ot=extra_dbits[it],ot!==0&&(tt-=base_dist[it],send_bits(s,tt,ot)));while(rt{const et=o.dyn_tree,tt=o.stat_desc.static_tree,nt=o.stat_desc.has_stree,rt=o.stat_desc.elems;let it,ot,st=-1,at;for(s.heap_len=0,s.heap_max=HEAP_SIZE$1,it=0;it>1;it>=1;it--)pqdownheap(s,et,it);at=rt;do it=s.heap[1],s.heap[1]=s.heap[s.heap_len--],pqdownheap(s,et,1),ot=s.heap[1],s.heap[--s.heap_max]=it,s.heap[--s.heap_max]=ot,et[at*2]=et[it*2]+et[ot*2],s.depth[at]=(s.depth[it]>=s.depth[ot]?s.depth[it]:s.depth[ot])+1,et[it*2+1]=et[ot*2+1]=at,s.heap[1]=at++,pqdownheap(s,et,1);while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1],gen_bitlen(s,o),gen_codes(et,st,s.bl_count)},scan_tree=(s,o,et)=>{let tt,nt=-1,rt,it=o[0*2+1],ot=0,st=7,at=4;for(it===0&&(st=138,at=3),o[(et+1)*2+1]=65535,tt=0;tt<=et;tt++)rt=it,it=o[(tt+1)*2+1],!(++ot{let tt,nt=-1,rt,it=o[0*2+1],ot=0,st=7,at=4;for(it===0&&(st=138,at=3),tt=0;tt<=et;tt++)if(rt=it,it=o[(tt+1)*2+1],!(++ot{let o;for(scan_tree(s,s.dyn_ltree,s.l_desc.max_code),scan_tree(s,s.dyn_dtree,s.d_desc.max_code),build_tree(s,s.bl_desc),o=BL_CODES$1-1;o>=3&&s.bl_tree[bl_order[o]*2+1]===0;o--);return s.opt_len+=3*(o+1)+5+5+4,o},send_all_trees=(s,o,et,tt)=>{let nt;for(send_bits(s,o-257,5),send_bits(s,et-1,5),send_bits(s,tt-4,4),nt=0;nt{let o=4093624447,et;for(et=0;et<=31;et++,o>>>=1)if(o&1&&s.dyn_ltree[et*2]!==0)return Z_BINARY;if(s.dyn_ltree[9*2]!==0||s.dyn_ltree[10*2]!==0||s.dyn_ltree[13*2]!==0)return Z_TEXT;for(et=32;et{static_init_done||(tr_static_init(),static_init_done=!0),s.l_desc=new TreeDesc(s.dyn_ltree,static_l_desc),s.d_desc=new TreeDesc(s.dyn_dtree,static_d_desc),s.bl_desc=new TreeDesc(s.bl_tree,static_bl_desc),s.bi_buf=0,s.bi_valid=0,init_block(s)},_tr_stored_block$1=(s,o,et,tt)=>{send_bits(s,(STORED_BLOCK<<1)+(tt?1:0),3),bi_windup(s),put_short(s,et),put_short(s,~et),et&&s.pending_buf.set(s.window.subarray(o,o+et),s.pending),s.pending+=et},_tr_align$1=s=>{send_bits(s,STATIC_TREES<<1,3),send_code(s,END_BLOCK,static_ltree),bi_flush(s)},_tr_flush_block$1=(s,o,et,tt)=>{let nt,rt,it=0;s.level>0?(s.strm.data_type===Z_UNKNOWN$1&&(s.strm.data_type=detect_data_type(s)),build_tree(s,s.l_desc),build_tree(s,s.d_desc),it=build_bl_tree(s),nt=s.opt_len+3+7>>>3,rt=s.static_len+3+7>>>3,rt<=nt&&(nt=rt)):nt=rt=et+5,et+4<=nt&&o!==-1?_tr_stored_block$1(s,o,et,tt):s.strategy===Z_FIXED$1||rt===nt?(send_bits(s,(STATIC_TREES<<1)+(tt?1:0),3),compress_block(s,static_ltree,static_dtree)):(send_bits(s,(DYN_TREES<<1)+(tt?1:0),3),send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,it+1),compress_block(s,s.dyn_ltree,s.dyn_dtree)),init_block(s),tt&&bi_windup(s)},_tr_tally$1=(s,o,et)=>(s.pending_buf[s.sym_buf+s.sym_next++]=o,s.pending_buf[s.sym_buf+s.sym_next++]=o>>8,s.pending_buf[s.sym_buf+s.sym_next++]=et,o===0?s.dyn_ltree[et*2]++:(s.matches++,o--,s.dyn_ltree[(_length_code[et]+LITERALS$1+1)*2]++,s.dyn_dtree[d_code(o)*2]++),s.sym_next===s.sym_end);var _tr_init_1=_tr_init$1,_tr_stored_block_1=_tr_stored_block$1,_tr_flush_block_1=_tr_flush_block$1,_tr_tally_1=_tr_tally$1,_tr_align_1=_tr_align$1,trees={_tr_init:_tr_init_1,_tr_stored_block:_tr_stored_block_1,_tr_flush_block:_tr_flush_block_1,_tr_tally:_tr_tally_1,_tr_align:_tr_align_1};const adler32=(s,o,et,tt)=>{let nt=s&65535|0,rt=s>>>16&65535|0,it=0;for(;et!==0;){it=et>2e3?2e3:et,et-=it;do nt=nt+o[tt++]|0,rt=rt+nt|0;while(--it);nt%=65521,rt%=65521}return nt|rt<<16|0};var adler32_1=adler32;const makeTable=()=>{let s,o=[];for(var et=0;et<256;et++){s=et;for(var tt=0;tt<8;tt++)s=s&1?3988292384^s>>>1:s>>>1;o[et]=s}return o},crcTable=new Uint32Array(makeTable()),crc32=(s,o,et,tt)=>{const nt=crcTable,rt=tt+et;s^=-1;for(let it=tt;it>>8^nt[(s^o[it])&255];return s^-1};var crc32_1=crc32,messages={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},constants$2={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init,_tr_stored_block,_tr_flush_block,_tr_tally,_tr_align}=trees,{Z_NO_FLUSH:Z_NO_FLUSH$2,Z_PARTIAL_FLUSH,Z_FULL_FLUSH:Z_FULL_FLUSH$1,Z_FINISH:Z_FINISH$3,Z_BLOCK:Z_BLOCK$1,Z_OK:Z_OK$3,Z_STREAM_END:Z_STREAM_END$3,Z_STREAM_ERROR:Z_STREAM_ERROR$2,Z_DATA_ERROR:Z_DATA_ERROR$2,Z_BUF_ERROR:Z_BUF_ERROR$1,Z_DEFAULT_COMPRESSION:Z_DEFAULT_COMPRESSION$1,Z_FILTERED,Z_HUFFMAN_ONLY,Z_RLE,Z_FIXED,Z_DEFAULT_STRATEGY:Z_DEFAULT_STRATEGY$1,Z_UNKNOWN,Z_DEFLATED:Z_DEFLATED$2}=constants$2,MAX_MEM_LEVEL=9,MAX_WBITS$1=15,DEF_MEM_LEVEL=8,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,GZIP_STATE=57,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3,err=(s,o)=>(s.msg=messages[o],o),rank=s=>s*2-(s>4?9:0),zero=s=>{let o=s.length;for(;--o>=0;)s[o]=0},slide_hash=s=>{let o,et,tt,nt=s.w_size;o=s.hash_size,tt=o;do et=s.head[--tt],s.head[tt]=et>=nt?et-nt:0;while(--o);o=nt,tt=o;do et=s.prev[--tt],s.prev[tt]=et>=nt?et-nt:0;while(--o)};let HASH_ZLIB=(s,o,et)=>(o<{const o=s.state;let et=o.pending;et>s.avail_out&&(et=s.avail_out),et!==0&&(s.output.set(o.pending_buf.subarray(o.pending_out,o.pending_out+et),s.next_out),s.next_out+=et,o.pending_out+=et,s.total_out+=et,s.avail_out-=et,o.pending-=et,o.pending===0&&(o.pending_out=0))},flush_block_only=(s,o)=>{_tr_flush_block(s,s.block_start>=0?s.block_start:-1,s.strstart-s.block_start,o),s.block_start=s.strstart,flush_pending(s.strm)},put_byte=(s,o)=>{s.pending_buf[s.pending++]=o},putShortMSB=(s,o)=>{s.pending_buf[s.pending++]=o>>>8&255,s.pending_buf[s.pending++]=o&255},read_buf=(s,o,et,tt)=>{let nt=s.avail_in;return nt>tt&&(nt=tt),nt===0?0:(s.avail_in-=nt,o.set(s.input.subarray(s.next_in,s.next_in+nt),et),s.state.wrap===1?s.adler=adler32_1(s.adler,o,nt,et):s.state.wrap===2&&(s.adler=crc32_1(s.adler,o,nt,et)),s.next_in+=nt,s.total_in+=nt,nt)},longest_match=(s,o)=>{let et=s.max_chain_length,tt=s.strstart,nt,rt,it=s.prev_length,ot=s.nice_match;const st=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0,at=s.window,lt=s.w_mask,ut=s.prev,dt=s.strstart+MAX_MATCH;let ht=at[tt+it-1],ct=at[tt+it];s.prev_length>=s.good_match&&(et>>=2),ot>s.lookahead&&(ot=s.lookahead);do if(nt=o,!(at[nt+it]!==ct||at[nt+it-1]!==ht||at[nt]!==at[tt]||at[++nt]!==at[tt+1])){tt+=2,nt++;do;while(at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&ttit){if(s.match_start=o,it=rt,rt>=ot)break;ht=at[tt+it-1],ct=at[tt+it]}}while((o=ut[o<])>st&&--et!==0);return it<=s.lookahead?it:s.lookahead},fill_window=s=>{const o=s.w_size;let et,tt,nt;do{if(tt=s.window_size-s.lookahead-s.strstart,s.strstart>=o+(o-MIN_LOOKAHEAD)&&(s.window.set(s.window.subarray(o,o+o-tt),0),s.match_start-=o,s.strstart-=o,s.block_start-=o,s.insert>s.strstart&&(s.insert=s.strstart),slide_hash(s),tt+=o),s.strm.avail_in===0)break;if(et=read_buf(s.strm,s.window,s.strstart+s.lookahead,tt),s.lookahead+=et,s.lookahead+s.insert>=MIN_MATCH)for(nt=s.strstart-s.insert,s.ins_h=s.window[nt],s.ins_h=HASH(s,s.ins_h,s.window[nt+1]);s.insert&&(s.ins_h=HASH(s,s.ins_h,s.window[nt+MIN_MATCH-1]),s.prev[nt&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=nt,nt++,s.insert--,!(s.lookahead+s.insert{let et=s.pending_buf_size-5>s.w_size?s.w_size:s.pending_buf_size-5,tt,nt,rt,it=0,ot=s.strm.avail_in;do{if(tt=65535,rt=s.bi_valid+42>>3,s.strm.avail_outnt+s.strm.avail_in&&(tt=nt+s.strm.avail_in),tt>rt&&(tt=rt),tt>8,s.pending_buf[s.pending-2]=~tt,s.pending_buf[s.pending-1]=~tt>>8,flush_pending(s.strm),nt&&(nt>tt&&(nt=tt),s.strm.output.set(s.window.subarray(s.block_start,s.block_start+nt),s.strm.next_out),s.strm.next_out+=nt,s.strm.avail_out-=nt,s.strm.total_out+=nt,s.block_start+=nt,tt-=nt),tt&&(read_buf(s.strm,s.strm.output,s.strm.next_out,tt),s.strm.next_out+=tt,s.strm.avail_out-=tt,s.strm.total_out+=tt)}while(it===0);return ot-=s.strm.avail_in,ot&&(ot>=s.w_size?(s.matches=2,s.window.set(s.strm.input.subarray(s.strm.next_in-s.w_size,s.strm.next_in),0),s.strstart=s.w_size,s.insert=s.strstart):(s.window_size-s.strstart<=ot&&(s.strstart-=s.w_size,s.window.set(s.window.subarray(s.w_size,s.w_size+s.strstart),0),s.matches<2&&s.matches++,s.insert>s.strstart&&(s.insert=s.strstart)),s.window.set(s.strm.input.subarray(s.strm.next_in-ot,s.strm.next_in),s.strstart),s.strstart+=ot,s.insert+=ot>s.w_size-s.insert?s.w_size-s.insert:ot),s.block_start=s.strstart),s.high_waterrt&&s.block_start>=s.w_size&&(s.block_start-=s.w_size,s.strstart-=s.w_size,s.window.set(s.window.subarray(s.w_size,s.w_size+s.strstart),0),s.matches<2&&s.matches++,rt+=s.w_size,s.insert>s.strstart&&(s.insert=s.strstart)),rt>s.strm.avail_in&&(rt=s.strm.avail_in),rt&&(read_buf(s.strm,s.window,s.strstart,rt),s.strstart+=rt,s.insert+=rt>s.w_size-s.insert?s.w_size-s.insert:rt),s.high_water>3,rt=s.pending_buf_size-rt>65535?65535:s.pending_buf_size-rt,et=rt>s.w_size?s.w_size:rt,nt=s.strstart-s.block_start,(nt>=et||(nt||o===Z_FINISH$3)&&o!==Z_NO_FLUSH$2&&s.strm.avail_in===0&&nt<=rt)&&(tt=nt>rt?rt:nt,it=o===Z_FINISH$3&&s.strm.avail_in===0&&tt===nt?1:0,_tr_stored_block(s,s.block_start,tt,it),s.block_start+=tt,flush_pending(s.strm)),it?BS_FINISH_STARTED:BS_NEED_MORE)},deflate_fast=(s,o)=>{let et,tt;for(;;){if(s.lookahead=MIN_MATCH&&(s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart),et!==0&&s.strstart-et<=s.w_size-MIN_LOOKAHEAD&&(s.match_length=longest_match(s,et)),s.match_length>=MIN_MATCH)if(tt=_tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH),s.lookahead-=s.match_length,s.match_length<=s.max_lazy_match&&s.lookahead>=MIN_MATCH){s.match_length--;do s.strstart++,s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart;while(--s.match_length!==0);s.strstart++}else s.strstart+=s.match_length,s.match_length=0,s.ins_h=s.window[s.strstart],s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+1]);else tt=_tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++;if(tt&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}return s.insert=s.strstart{let et,tt,nt;for(;;){if(s.lookahead=MIN_MATCH&&(s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart),s.prev_length=s.match_length,s.prev_match=s.match_start,s.match_length=MIN_MATCH-1,et!==0&&s.prev_length4096)&&(s.match_length=MIN_MATCH-1)),s.prev_length>=MIN_MATCH&&s.match_length<=s.prev_length){nt=s.strstart+s.lookahead-MIN_MATCH,tt=_tr_tally(s,s.strstart-1-s.prev_match,s.prev_length-MIN_MATCH),s.lookahead-=s.prev_length-1,s.prev_length-=2;do++s.strstart<=nt&&(s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart);while(--s.prev_length!==0);if(s.match_available=0,s.match_length=MIN_MATCH-1,s.strstart++,tt&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}else if(s.match_available){if(tt=_tr_tally(s,0,s.window[s.strstart-1]),tt&&flush_block_only(s,!1),s.strstart++,s.lookahead--,s.strm.avail_out===0)return BS_NEED_MORE}else s.match_available=1,s.strstart++,s.lookahead--}return s.match_available&&(tt=_tr_tally(s,0,s.window[s.strstart-1]),s.match_available=0),s.insert=s.strstart{let et,tt,nt,rt;const it=s.window;for(;;){if(s.lookahead<=MAX_MATCH){if(fill_window(s),s.lookahead<=MAX_MATCH&&o===Z_NO_FLUSH$2)return BS_NEED_MORE;if(s.lookahead===0)break}if(s.match_length=0,s.lookahead>=MIN_MATCH&&s.strstart>0&&(nt=s.strstart-1,tt=it[nt],tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt])){rt=s.strstart+MAX_MATCH;do;while(tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&nts.lookahead&&(s.match_length=s.lookahead)}if(s.match_length>=MIN_MATCH?(et=_tr_tally(s,1,s.match_length-MIN_MATCH),s.lookahead-=s.match_length,s.strstart+=s.match_length,s.match_length=0):(et=_tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++),et&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}return s.insert=0,o===Z_FINISH$3?(flush_block_only(s,!0),s.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):s.sym_next&&(flush_block_only(s,!1),s.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_huff=(s,o)=>{let et;for(;;){if(s.lookahead===0&&(fill_window(s),s.lookahead===0)){if(o===Z_NO_FLUSH$2)return BS_NEED_MORE;break}if(s.match_length=0,et=_tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++,et&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}return s.insert=0,o===Z_FINISH$3?(flush_block_only(s,!0),s.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):s.sym_next&&(flush_block_only(s,!1),s.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE};function Config(s,o,et,tt,nt){this.good_length=s,this.max_lazy=o,this.nice_length=et,this.max_chain=tt,this.func=nt}const configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)],lm_init=s=>{s.window_size=2*s.w_size,zero(s.head),s.max_lazy_match=configuration_table[s.level].max_lazy,s.good_match=configuration_table[s.level].good_length,s.nice_match=configuration_table[s.level].nice_length,s.max_chain_length=configuration_table[s.level].max_chain,s.strstart=0,s.block_start=0,s.lookahead=0,s.insert=0,s.match_length=s.prev_length=MIN_MATCH-1,s.match_available=0,s.ins_h=0};function DeflateState(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Z_DEFLATED$2,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(HEAP_SIZE*2),this.dyn_dtree=new Uint16Array((2*D_CODES+1)*2),this.bl_tree=new Uint16Array((2*BL_CODES+1)*2),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(MAX_BITS+1),this.heap=new Uint16Array(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*L_CODES+1),zero(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const deflateStateCheck=s=>{if(!s)return 1;const o=s.state;return!o||o.strm!==s||o.status!==INIT_STATE&&o.status!==GZIP_STATE&&o.status!==EXTRA_STATE&&o.status!==NAME_STATE&&o.status!==COMMENT_STATE&&o.status!==HCRC_STATE&&o.status!==BUSY_STATE&&o.status!==FINISH_STATE?1:0},deflateResetKeep=s=>{if(deflateStateCheck(s))return err(s,Z_STREAM_ERROR$2);s.total_in=s.total_out=0,s.data_type=Z_UNKNOWN;const o=s.state;return o.pending=0,o.pending_out=0,o.wrap<0&&(o.wrap=-o.wrap),o.status=o.wrap===2?GZIP_STATE:o.wrap?INIT_STATE:BUSY_STATE,s.adler=o.wrap===2?0:1,o.last_flush=-2,_tr_init(o),Z_OK$3},deflateReset=s=>{const o=deflateResetKeep(s);return o===Z_OK$3&&lm_init(s.state),o},deflateSetHeader=(s,o)=>deflateStateCheck(s)||s.state.wrap!==2?Z_STREAM_ERROR$2:(s.state.gzhead=o,Z_OK$3),deflateInit2=(s,o,et,tt,nt,rt)=>{if(!s)return Z_STREAM_ERROR$2;let it=1;if(o===Z_DEFAULT_COMPRESSION$1&&(o=6),tt<0?(it=0,tt=-tt):tt>15&&(it=2,tt-=16),nt<1||nt>MAX_MEM_LEVEL||et!==Z_DEFLATED$2||tt<8||tt>15||o<0||o>9||rt<0||rt>Z_FIXED||tt===8&&it!==1)return err(s,Z_STREAM_ERROR$2);tt===8&&(tt=9);const ot=new DeflateState;return s.state=ot,ot.strm=s,ot.status=INIT_STATE,ot.wrap=it,ot.gzhead=null,ot.w_bits=tt,ot.w_size=1<deflateInit2(s,o,Z_DEFLATED$2,MAX_WBITS$1,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY$1),deflate$2=(s,o)=>{if(deflateStateCheck(s)||o>Z_BLOCK$1||o<0)return s?err(s,Z_STREAM_ERROR$2):Z_STREAM_ERROR$2;const et=s.state;if(!s.output||s.avail_in!==0&&!s.input||et.status===FINISH_STATE&&o!==Z_FINISH$3)return err(s,s.avail_out===0?Z_BUF_ERROR$1:Z_STREAM_ERROR$2);const tt=et.last_flush;if(et.last_flush=o,et.pending!==0){if(flush_pending(s),s.avail_out===0)return et.last_flush=-1,Z_OK$3}else if(s.avail_in===0&&rank(o)<=rank(tt)&&o!==Z_FINISH$3)return err(s,Z_BUF_ERROR$1);if(et.status===FINISH_STATE&&s.avail_in!==0)return err(s,Z_BUF_ERROR$1);if(et.status===INIT_STATE&&et.wrap===0&&(et.status=BUSY_STATE),et.status===INIT_STATE){let nt=Z_DEFLATED$2+(et.w_bits-8<<4)<<8,rt=-1;if(et.strategy>=Z_HUFFMAN_ONLY||et.level<2?rt=0:et.level<6?rt=1:et.level===6?rt=2:rt=3,nt|=rt<<6,et.strstart!==0&&(nt|=PRESET_DICT),nt+=31-nt%31,putShortMSB(et,nt),et.strstart!==0&&(putShortMSB(et,s.adler>>>16),putShortMSB(et,s.adler&65535)),s.adler=1,et.status=BUSY_STATE,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3}if(et.status===GZIP_STATE){if(s.adler=0,put_byte(et,31),put_byte(et,139),put_byte(et,8),et.gzhead)put_byte(et,(et.gzhead.text?1:0)+(et.gzhead.hcrc?2:0)+(et.gzhead.extra?4:0)+(et.gzhead.name?8:0)+(et.gzhead.comment?16:0)),put_byte(et,et.gzhead.time&255),put_byte(et,et.gzhead.time>>8&255),put_byte(et,et.gzhead.time>>16&255),put_byte(et,et.gzhead.time>>24&255),put_byte(et,et.level===9?2:et.strategy>=Z_HUFFMAN_ONLY||et.level<2?4:0),put_byte(et,et.gzhead.os&255),et.gzhead.extra&&et.gzhead.extra.length&&(put_byte(et,et.gzhead.extra.length&255),put_byte(et,et.gzhead.extra.length>>8&255)),et.gzhead.hcrc&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending,0)),et.gzindex=0,et.status=EXTRA_STATE;else if(put_byte(et,0),put_byte(et,0),put_byte(et,0),put_byte(et,0),put_byte(et,0),put_byte(et,et.level===9?2:et.strategy>=Z_HUFFMAN_ONLY||et.level<2?4:0),put_byte(et,OS_CODE),et.status=BUSY_STATE,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3}if(et.status===EXTRA_STATE){if(et.gzhead.extra){let nt=et.pending,rt=(et.gzhead.extra.length&65535)-et.gzindex;for(;et.pending+rt>et.pending_buf_size;){let ot=et.pending_buf_size-et.pending;if(et.pending_buf.set(et.gzhead.extra.subarray(et.gzindex,et.gzindex+ot),et.pending),et.pending=et.pending_buf_size,et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),et.gzindex+=ot,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3;nt=0,rt-=ot}let it=new Uint8Array(et.gzhead.extra);et.pending_buf.set(it.subarray(et.gzindex,et.gzindex+rt),et.pending),et.pending+=rt,et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),et.gzindex=0}et.status=NAME_STATE}if(et.status===NAME_STATE){if(et.gzhead.name){let nt=et.pending,rt;do{if(et.pending===et.pending_buf_size){if(et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3;nt=0}et.gzindexnt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),et.gzindex=0}et.status=COMMENT_STATE}if(et.status===COMMENT_STATE){if(et.gzhead.comment){let nt=et.pending,rt;do{if(et.pending===et.pending_buf_size){if(et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3;nt=0}et.gzindexnt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt))}et.status=HCRC_STATE}if(et.status===HCRC_STATE){if(et.gzhead.hcrc){if(et.pending+2>et.pending_buf_size&&(flush_pending(s),et.pending!==0))return et.last_flush=-1,Z_OK$3;put_byte(et,s.adler&255),put_byte(et,s.adler>>8&255),s.adler=0}if(et.status=BUSY_STATE,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3}if(s.avail_in!==0||et.lookahead!==0||o!==Z_NO_FLUSH$2&&et.status!==FINISH_STATE){let nt=et.level===0?deflate_stored(et,o):et.strategy===Z_HUFFMAN_ONLY?deflate_huff(et,o):et.strategy===Z_RLE?deflate_rle(et,o):configuration_table[et.level].func(et,o);if((nt===BS_FINISH_STARTED||nt===BS_FINISH_DONE)&&(et.status=FINISH_STATE),nt===BS_NEED_MORE||nt===BS_FINISH_STARTED)return s.avail_out===0&&(et.last_flush=-1),Z_OK$3;if(nt===BS_BLOCK_DONE&&(o===Z_PARTIAL_FLUSH?_tr_align(et):o!==Z_BLOCK$1&&(_tr_stored_block(et,0,0,!1),o===Z_FULL_FLUSH$1&&(zero(et.head),et.lookahead===0&&(et.strstart=0,et.block_start=0,et.insert=0))),flush_pending(s),s.avail_out===0))return et.last_flush=-1,Z_OK$3}return o!==Z_FINISH$3?Z_OK$3:et.wrap<=0?Z_STREAM_END$3:(et.wrap===2?(put_byte(et,s.adler&255),put_byte(et,s.adler>>8&255),put_byte(et,s.adler>>16&255),put_byte(et,s.adler>>24&255),put_byte(et,s.total_in&255),put_byte(et,s.total_in>>8&255),put_byte(et,s.total_in>>16&255),put_byte(et,s.total_in>>24&255)):(putShortMSB(et,s.adler>>>16),putShortMSB(et,s.adler&65535)),flush_pending(s),et.wrap>0&&(et.wrap=-et.wrap),et.pending!==0?Z_OK$3:Z_STREAM_END$3)},deflateEnd=s=>{if(deflateStateCheck(s))return Z_STREAM_ERROR$2;const o=s.state.status;return s.state=null,o===BUSY_STATE?err(s,Z_DATA_ERROR$2):Z_OK$3},deflateSetDictionary=(s,o)=>{let et=o.length;if(deflateStateCheck(s))return Z_STREAM_ERROR$2;const tt=s.state,nt=tt.wrap;if(nt===2||nt===1&&tt.status!==INIT_STATE||tt.lookahead)return Z_STREAM_ERROR$2;if(nt===1&&(s.adler=adler32_1(s.adler,o,et,0)),tt.wrap=0,et>=tt.w_size){nt===0&&(zero(tt.head),tt.strstart=0,tt.block_start=0,tt.insert=0);let st=new Uint8Array(tt.w_size);st.set(o.subarray(et-tt.w_size,et),0),o=st,et=tt.w_size}const rt=s.avail_in,it=s.next_in,ot=s.input;for(s.avail_in=et,s.next_in=0,s.input=o,fill_window(tt);tt.lookahead>=MIN_MATCH;){let st=tt.strstart,at=tt.lookahead-(MIN_MATCH-1);do tt.ins_h=HASH(tt,tt.ins_h,tt.window[st+MIN_MATCH-1]),tt.prev[st&tt.w_mask]=tt.head[tt.ins_h],tt.head[tt.ins_h]=st,st++;while(--at);tt.strstart=st,tt.lookahead=MIN_MATCH-1,fill_window(tt)}return tt.strstart+=tt.lookahead,tt.block_start=tt.strstart,tt.insert=tt.lookahead,tt.lookahead=0,tt.match_length=tt.prev_length=MIN_MATCH-1,tt.match_available=0,s.next_in=it,s.input=ot,s.avail_in=rt,tt.wrap=nt,Z_OK$3};var deflateInit_1=deflateInit,deflateInit2_1=deflateInit2,deflateReset_1=deflateReset,deflateResetKeep_1=deflateResetKeep,deflateSetHeader_1=deflateSetHeader,deflate_2$1=deflate$2,deflateEnd_1=deflateEnd,deflateSetDictionary_1=deflateSetDictionary,deflateInfo="pako deflate (from Nodeca project)",deflate_1$2={deflateInit:deflateInit_1,deflateInit2:deflateInit2_1,deflateReset:deflateReset_1,deflateResetKeep:deflateResetKeep_1,deflateSetHeader:deflateSetHeader_1,deflate:deflate_2$1,deflateEnd:deflateEnd_1,deflateSetDictionary:deflateSetDictionary_1,deflateInfo};const _has=(s,o)=>Object.prototype.hasOwnProperty.call(s,o);var assign$1=function(s){const o=Array.prototype.slice.call(arguments,1);for(;o.length;){const et=o.shift();if(et){if(typeof et!="object")throw new TypeError(et+"must be non-object");for(const tt in et)_has(et,tt)&&(s[tt]=et[tt])}}return s},flattenChunks=s=>{let o=0;for(let tt=0,nt=s.length;tt=252?6:s>=248?5:s>=240?4:s>=224?3:s>=192?2:1;_utf8len[254]=_utf8len[254]=1;var string2buf=s=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(s);let o,et,tt,nt,rt,it=s.length,ot=0;for(nt=0;nt>>6,o[rt++]=128|et&63):et<65536?(o[rt++]=224|et>>>12,o[rt++]=128|et>>>6&63,o[rt++]=128|et&63):(o[rt++]=240|et>>>18,o[rt++]=128|et>>>12&63,o[rt++]=128|et>>>6&63,o[rt++]=128|et&63);return o};const buf2binstring=(s,o)=>{if(o<65534&&s.subarray&&STR_APPLY_UIA_OK)return String.fromCharCode.apply(null,s.length===o?s:s.subarray(0,o));let et="";for(let tt=0;tt{const et=o||s.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(s.subarray(0,o));let tt,nt;const rt=new Array(et*2);for(nt=0,tt=0;tt4){rt[nt++]=65533,tt+=ot-1;continue}for(it&=ot===2?31:ot===3?15:7;ot>1&&tt1){rt[nt++]=65533;continue}it<65536?rt[nt++]=it:(it-=65536,rt[nt++]=55296|it>>10&1023,rt[nt++]=56320|it&1023)}return buf2binstring(rt,nt)},utf8border=(s,o)=>{o=o||s.length,o>s.length&&(o=s.length);let et=o-1;for(;et>=0&&(s[et]&192)===128;)et--;return et<0||et===0?o:et+_utf8len[s[et]]>o?et:o},strings={string2buf,buf2string,utf8border};function ZStream(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zstream=ZStream;const toString$1=Object.prototype.toString,{Z_NO_FLUSH:Z_NO_FLUSH$1,Z_SYNC_FLUSH,Z_FULL_FLUSH,Z_FINISH:Z_FINISH$2,Z_OK:Z_OK$2,Z_STREAM_END:Z_STREAM_END$2,Z_DEFAULT_COMPRESSION,Z_DEFAULT_STRATEGY,Z_DEFLATED:Z_DEFLATED$1}=constants$2;function Deflate$1(s){this.options=common.assign({level:Z_DEFAULT_COMPRESSION,method:Z_DEFLATED$1,chunkSize:16384,windowBits:15,memLevel:8,strategy:Z_DEFAULT_STRATEGY},s||{});let o=this.options;o.raw&&o.windowBits>0?o.windowBits=-o.windowBits:o.gzip&&o.windowBits>0&&o.windowBits<16&&(o.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let et=deflate_1$2.deflateInit2(this.strm,o.level,o.method,o.windowBits,o.memLevel,o.strategy);if(et!==Z_OK$2)throw new Error(messages[et]);if(o.header&&deflate_1$2.deflateSetHeader(this.strm,o.header),o.dictionary){let tt;if(typeof o.dictionary=="string"?tt=strings.string2buf(o.dictionary):toString$1.call(o.dictionary)==="[object ArrayBuffer]"?tt=new Uint8Array(o.dictionary):tt=o.dictionary,et=deflate_1$2.deflateSetDictionary(this.strm,tt),et!==Z_OK$2)throw new Error(messages[et]);this._dict_set=!0}}Deflate$1.prototype.push=function(s,o){const et=this.strm,tt=this.options.chunkSize;let nt,rt;if(this.ended)return!1;for(o===~~o?rt=o:rt=o===!0?Z_FINISH$2:Z_NO_FLUSH$1,typeof s=="string"?et.input=strings.string2buf(s):toString$1.call(s)==="[object ArrayBuffer]"?et.input=new Uint8Array(s):et.input=s,et.next_in=0,et.avail_in=et.input.length;;){if(et.avail_out===0&&(et.output=new Uint8Array(tt),et.next_out=0,et.avail_out=tt),(rt===Z_SYNC_FLUSH||rt===Z_FULL_FLUSH)&&et.avail_out<=6){this.onData(et.output.subarray(0,et.next_out)),et.avail_out=0;continue}if(nt=deflate_1$2.deflate(et,rt),nt===Z_STREAM_END$2)return et.next_out>0&&this.onData(et.output.subarray(0,et.next_out)),nt=deflate_1$2.deflateEnd(this.strm),this.onEnd(nt),this.ended=!0,nt===Z_OK$2;if(et.avail_out===0){this.onData(et.output);continue}if(rt>0&&et.next_out>0){this.onData(et.output.subarray(0,et.next_out)),et.avail_out=0;continue}if(et.avail_in===0)break}return!0};Deflate$1.prototype.onData=function(s){this.chunks.push(s)};Deflate$1.prototype.onEnd=function(s){s===Z_OK$2&&(this.result=common.flattenChunks(this.chunks)),this.chunks=[],this.err=s,this.msg=this.strm.msg};function deflate$1(s,o){const et=new Deflate$1(o);if(et.push(s,!0),et.err)throw et.msg||messages[et.err];return et.result}function deflateRaw$1(s,o){return o=o||{},o.raw=!0,deflate$1(s,o)}function gzip$1(s,o){return o=o||{},o.gzip=!0,deflate$1(s,o)}var Deflate_1$1=Deflate$1,deflate_2=deflate$1,deflateRaw_1$1=deflateRaw$1,gzip_1$1=gzip$1,constants$1=constants$2,deflate_1$1={Deflate:Deflate_1$1,deflate:deflate_2,deflateRaw:deflateRaw_1$1,gzip:gzip_1$1,constants:constants$1};const{Deflate,deflate,deflateRaw,gzip}=deflate_1$1;var deflate_1=deflate,fromByteArray_1=fromByteArray,lookup=[],code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i>18&63]+lookup[s>>12&63]+lookup[s>>6&63]+lookup[s&63]}function encodeChunk(s,o,et){for(var tt,nt=[],rt=o;rtot?ot:it+rt));return tt===1?(o=s[et-1],nt.push(lookup[o>>2]+lookup[o<<4&63]+"==")):tt===2&&(o=(s[et-2]<<8)+s[et-1],nt.push(lookup[o>>10]+lookup[o>>4&63]+lookup[o<<2&63]+"=")),nt.join("")}const encoder=new TextEncoder;new TextDecoder;function serializeHash(s){const o=JSON.stringify(s),et=encoder.encode(o),tt=deflate_1(et);return fromByteArray_1(tt)}async function getViews(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/views`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function createShareLink(s,o){if(!Authentication.token)throw new Error("Not authenticated");const et=(await getViews()).filter(it=>it.name===o);if(et.length===0)return console.warn("View does not exist or it is misspell"),null;const tt=await fetch(`${FORMANT_API_URL}/v1/admin/shares`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),nt=FORMANT_API_URL.replace("api","app"),{code:rt}=await tt.json();return`${nt}/shares/${rt}#${serializeHash({viewId:et[0].id})}`}const aggregateByDateFunctions={day:{interval:eachDayOfInterval,start:startOfDay,end:endOfDay,sub:subDays,get:getDay},week:{interval:eachWeekOfInterval,start:startOfWeek,end:endOfWeek,sub:subWeeks,get:getWeek},month:{interval:eachMonthOfInterval,start:startOfMonth,end:endOfMonth,sub:subMonths,get:getMonth},year:{interval:eachYearOfInterval,start:startOfYear,end:endOfYear,sub:subYears,get:getYear},hour:{interval:eachHourOfInterval,start:startOfHour,end:endOfHour,sub:subHours,get:getHours},minute:{interval:eachMinuteOfInterval,start:startOfMinute,end:endOfMinute,sub:subMinutes,get:getMinutes},quarter:{interval:eachQuarterOfInterval,start:startOfQuarter,end:endOfQuarter,sub:subQuarters,get:getQuarter}},formatTimeFrameText=(s,o)=>s.split("/")[0]+"/"+s.split("/")[1]+"–"+o.split("/")[0]+"/"+o.split("/")[1];async function queryEvents(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/events/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function eventsCounter(s,o,et,tt,nt){const rt=aggregateByDateFunctions[o];return await Promise.all(Array(et).fill(0).map(async(it,ot)=>{const st=new Date(tt),at=rt.sub(rt.start(st),et-ot-1),lt=rt.sub(rt.end(st),et-ot-1),ut=formatTimeFrameText(at.toLocaleDateString(),lt.toLocaleDateString()),dt=await queryEvents({...nt,eventTypes:s,start:new Date(at).toISOString(),end:new Date(lt).toISOString()});return{date:ut,events:dt}}))}async function getAnnotationCount(s,o){return(await queryEvents({...s,eventTypes:["annotation"]})).filter(et=>!!et.tags&&Object.keys(et.tags).includes(o)).reduce((et,tt)=>{const nt=tt.tags[o];return nt in et?(et[nt]+=1,et):(et[nt]=1,et)},{})}async function getAnnotationCountByIntervals(s,o,et){const{end:tt,start:nt}=s,rt=aggregateByDateFunctions[et].interval({start:new Date(nt),end:new Date(tt)}),it=rt.map((st,at)=>{const lt=new Date(st).toISOString(),ut=at===rt.length-1?new Date(Date.now()).toISOString():new Date(rt[at+1]);return getAnnotationCount({...s,start:lt,end:ut},o)}),ot=await Promise.all(it);return rt.map((st,at)=>({date:new Date(st).toISOString(),annotations:ot[at]}))}async function getTelemetry(s,o,et,tt,nt,rt){let it=s;Array.isArray(s)||(it=[s]);let ot=o;return Array.isArray(o)||(ot=[o]),(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify({deviceIds:it,end:tt.toISOString(),names:ot,start:et.toISOString(),tags:nt,latestOnly:rt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getRealtimeSessions(){if(!Authentication.token)throw new Error("Not authenticated");const s=defaultRtcClientPool.get();try{return await s.getSessions()}finally{await s.shutdown()}}async function getPeers(){if(!Authentication.token)throw new Error("Not authenticated");const s=defaultRtcClientPool.get();try{return await s.getPeers()}finally{await s.shutdown()}}async function createDevice(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/devices`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchDevice(s,o){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${s}`,{method:"PATCH",body:JSON.stringify(o),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getDevicesData(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function queryDevicesData(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function disableDevice(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${s}/disable`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}class Device extends BaseDevice{constructor(o,et,tt,nt){super(),this.id=o,this.name=et,this.organizationId=tt,this.tags=nt}async getLatestTelemetry(){return(await(await fetch(`${FORMANT_API_URL}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async getConfiguration(o=!1){let et=await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}});const tt=await et.json();if(!tt.state.reportedConfiguration)throw new Error("Device has no configuration, has it ever been turned on?");const nt=o?tt.desiredConfigurationVersion:tt.state.reportedConfiguration.version;return et=await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}/configurations/${nt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),(await et.json()).document}async getAgentVersion(){var o;const et=await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return(o=et?.state)==null?void 0:o.agentVersion}async getFileUrl(o){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[o]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).fileUrls}async startRealtimeConnection(o={}){if(console.debug(`${new Date().toISOString()} :: Connection start requested`),this.rtcClient&&this.connectionMonitorInterval!==void 0)throw new Error(`Already created realtime connection to device ${this.id}`);this.rtcClient&&console.warn("overwriting existing rtcClient due to missing connectionMonitorInterval");const{sessionType:et,deadlineMs:tt=1e4,maxConnectRetries:nt=3}=typeof o=="number"?{sessionType:o}:o,rt=getRtcClientPool({sessionType:et}).get(this.handleMessage);let it=!1;const ot=new Promise((at,lt)=>setTimeout(()=>{it=!0,lt(new Error("Connection timed out: the connection could not be finalized in time, possibly due to network issues or misconfigured settings."))},tt)),st=async()=>{if("isReady"in rt)for(;!rt.isReady();)this.assertNotCancelled(it),await delay$1(100);const at=await this.getRemoteDevicePeerId(rt);this.assertNotCancelled(it);let lt;for(let dt=0;dt{this.remoteDevicePeerId=at,this.initConnectionMonitoring(),this.rtcClient=rt,this.emit("connect")}).catch(at=>{throw console.debug(`${new Date().toISOString()} :: Connection failed: %o`,at),this.remoteDevicePeerId=null,rt.shutdown().catch(lt=>{console.error("rtcClient cannot shutdown: %o",lt)}),this.emit("connection_failed",at),at})}async getRemoteDevicePeerId(o){const et=(await o.getPeers()).find(tt=>tt.deviceId===this.id);if(!isRtcPeer(et))throw new Error("Cannot find peer, is the robot offline?");return et.id}initConnectionMonitoring(){this.connectionMonitorInterval=setInterval(async()=>{let o=!1;if(this.rtcClient){const et=this.rtcClient.getConnections().find(tt=>tt.getRemotePeerId()===this.remoteDevicePeerId&&tt.isActive());(et===void 0||!et.isReady())&&(console.debug(`${new Date().toISOString()} :: data channel closed`),o=!0)}(!this.rtcClient||!this.remoteDevicePeerId||await this.rtcClient.getConnectionStatsInfo(this.remoteDevicePeerId)===void 0||o)&&(this.emit("disconnect"),this.stopRealtimeConnection().catch(et=>{console.error(et)}))},1e3)}async getRemotePeer(){const o=(await defined$1(this.rtcClient,"Realtime connection has not been started").getPeers()).find(et=>et.deviceId===this.id);return defined$1(o,"Could not find remote peer for device "+this.id)}async stopRealtimeConnection(){let o=!1;if(this.rtcClient){this.stopConnectionMonitoring(),this.remoteDevicePeerId?(await this.rtcClient.disconnect(this.remoteDevicePeerId),this.remoteDevicePeerId=null):o=!0;try{await this.rtcClient.shutdown()}finally{this.rtcClient=void 0}}if(o)throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async isInRealtimeSession(){const o=await getPeers(),et=await getRealtimeSessions(),tt=o.find(nt=>nt.deviceId===this.id);return tt?et[tt.id].length>0:!1}async getAvailableCommands(){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/command-templates/`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(o=>({name:o.name,id:o.id,command:o.command,description:o.description,parameterEnabled:o.parameterEnabled,parameterValue:o.parameterValue,parameterMeta:o.parameterMeta,enabled:o.enabled,tags:o.tags}))}async sendCommand(o,et,tt,nt){var rt;const it=(await this.getAvailableCommands()).find(at=>at.name===o);if(!it)throw new Error(`Could not find command with name "${o}"`);let ot="";et===void 0?it.parameterEnabled&&it.parameterValue&&(ot=it.parameterValue):ot=et;let st={value:ot,scrubberTime:(tt||new Date).toISOString(),meta:{...it.parameterMeta,...nt}};return await fetch(`${FORMANT_API_URL}/v1/admin/commands`,{method:"POST",body:JSON.stringify({commandTemplateId:it.id,organizationId:this.organizationId,deviceId:this.id,command:it.command,parameter:st,userId:(rt=Authentication.currentUser)==null?void 0:rt.id}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async getCommand(o){return await fetch(`${FORMANT_API_URL}/v1/admin/commands/${o}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async createCaptureStream(o){const et=await(await fetch(`${FORMANT_API_URL}/v1/admin/capture-sessions`,{method:"POST",body:JSON.stringify({deviceId:this.id,streamName:o,tags:{}}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return new CaptureStream(et)}async getTelemetry(o,et,tt,nt,rt,it,ot){if(rt!==void 0||it!==void 0)throw new Error("Limit and offset are not supported in this method");return await getTelemetry(this.id,o,et,tt,nt,ot)}async queryEvents(o){if(o.deviceIds)throw new Error("Cannot filter multiple devices via Device class");return o.deviceIds=[this.id],queryEvents(o)}async getTelemetryStreams(){var o,et;const tt=await this.getConfiguration(),nt=await fetch(`${FORMANT_API_URL}/v1/queries/metadata/stream-names`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),rt=[],it=[];return(et=(o=tt.telemetry)==null?void 0:o.streams)==null||et.forEach(ot=>{ot.disabled!==!0&&rt.push(ot.name),ot.onDemand===!0&&it.push(ot.name)}),console.log(it),(await nt.json()).items.filter(ot=>!rt.includes(ot)).map(ot=>({name:ot,onDemand:it.includes(ot)}))}async createInterventionRequest(o,et,tt,nt){return await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-requests`,{method:"POST",body:JSON.stringify({message:o,interventionType:et,time:new Date().toISOString(),deviceId:this.id,tags:nt,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async addInterventionResponse(o,et,tt){return await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-responses`,{method:"POST",body:JSON.stringify({interventionId:o,interventionType:et,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async getAnnotationCount(o,et){return await getAnnotationCount({...o,deviceIds:[this.id]},et)}async getAnnotationCountByIntervals(o,et,tt){return await getAnnotationCountByIntervals({...o,deviceIds:[this.id]},et,tt)}async eventsCounter(o,et,tt,nt,rt){return await eventsCounter(o,et,tt,nt,{...rt,deviceIds:[this.id]})}async createShareLink(o,et){return o.scope.deviceIds=[this.id],await createShareLink(o,et)}}he(Device,"createDevice",createDevice),he(Device,"patchDevice",patchDevice),he(Device,"getDevicesData",getDevicesData),he(Device,"queryDevicesData",queryDevicesData),he(Device,"disableDevice",disableDevice);class PeerDevice extends BaseDevice{constructor(o){super(),he(this,"id"),he(this,"telemetryStreamActive",!1),he(this,"streamTelemetry",{}),this.peerUrl=o}async getLatestTelemetry(){this.telemetryStreamActive||this.subscribeToTelemetry();const o=this.streamTelemetry;return Object.entries(o).map(([et,tt])=>({deviceId:this.id,streamName:et,streamType:"json",currentValue:tt,currentValueTime:tt.timestamp,tags:{}}))}async getTelemetry(o,et,tt,nt,rt,it,ot){if(Array.isArray(o))throw new Error("Multiple stream names not supported");if(nt)throw new Error("Tags not supported");if(ot&&rt===void 0)rt=1;else if(ot&&rt!==void 0)throw new Error("latestOnly and limit cannot be used together");let st=`${this.peerUrl}/v1/querydatapoints?stream_name=${o}&start=${et.toISOString()}&end=${tt.toISOString()}`;rt!=null&&rt>0&&(st+=`&limit=${rt}`),it!=null&&it>=0&&(st+=`&offset=${it}`);const at=await(await fetch(st)).json(),lt=[];for(const ut of at.results){const dt=parseInt(ut.timestamp),ht=ut.tags.data_type;delete ut.tags.data_type,lt.push({deviceId:this.id,name:ut.stream,points:[[dt,this.getPointPayload(ht,ut)]],tags:ut.tags,type:ht})}return lt.reverse()}async queryEvents(o){const et=["id","viewed","keyword","message","sort","eventTypes","notificationEnabled","userIds","annotationTemplateIds","disableNullMatches","severities","deviceIds","names","types","tags","notNames"];this.checkKeysAndThrow(o,et);let tt=`${this.peerUrl}/v1/queryevents?start=${o.start}&end=${o.end}`;o.count!=null&&o.count>0&&(tt+=`&limit=${o.count}`),o.offset!=null&&o.offset>=0&&(tt+=`&offset=${o.offset}`);const nt=await(await fetch(tt)).json(),rt=[];for(const it of nt.results){const ot=parseInt(it.timestamp),st={deviceId:this.id,time:new Date(ot).toISOString(),message:it.message,notificationEnabled:it.notificationEnabled,type:it.type,tags:it.tags};it.id!==""&&(st.id=it.id),it.type!==""&&(st.type=it.type),it.streamName!==""&&(st.streamName=it.streamName),it.streamType!==""&&(st.streamType=it.streamType),it.severity!==""&&(st.severity=it.severity.toLowerCase()),it.tags&&(st.tags=it.tags),it.endTimestamp!=="0"&&(st.endTime=new Date(parseInt(it.endTimestamp)).toISOString()),rt.push(st)}return rt.reverse()}checkKeysAndThrow(o,et){const tt=et.filter(nt=>nt in o);if(tt.length>0)throw new Error(`Filters not currently supported: ${tt.join(", ")}.`)}getPointPayload(o,et){switch(o){case"numeric":return et.numeric.value;case"numeric set":return et.numericSet.numerics;case"text":return et.text.value;case"json":return et.json.value;case"bitset":const tt=[],nt=[];for(const rt of et.bitset.bits)tt.push(rt.key),nt.push(rt.value);return{keys:tt,values:nt};case"location":return et.location;case"health":return et.health;case"battery":return et.battery;default:return{}}}subscribeToTelemetry(){this.telemetryStreamActive=!0;let o=0;const et=new XMLHttpRequest;et.responseType="text",et.addEventListener("error",tt=>{this.handleXHRError("error")}),et.addEventListener("abort",tt=>{this.handleXHRError("abort")}),et.addEventListener("timeout",tt=>{this.handleXHRError("timeout")}),et.addEventListener("readystatechange",tt=>{et.readyState===XMLHttpRequest.DONE&&this.handleXHRError("closed")}),et.addEventListener("progress",tt=>{const nt=tt.loaded,rt=nt-o;o=nt,et.responseText.substr(-rt).split(` `).forEach(it=>{var ot;if(it.length>0){const st=JSON.parse(it);if((ot=st.result)!=null&&ot.datapoint){const at=st.result.datapoint,lt=at.stream;delete at.stream,this.streamTelemetry[lt]=at}}})}),et.open("POST",`${this.peerUrl}/v1/telemetry`),et.send()}handleXHRError(o){console.warn(`Telemetry stream ended: ${o}`),this.telemetryStreamActive=!1}async getDeviceId(){return(await(await fetch(`${this.peerUrl}/v1/config`)).json()).configuration.id}async getConfiguration(){return(await(await fetch(`${this.peerUrl}/v1/config`)).json()).configuration.document}async getViews(){return(await(await fetch(`${this.peerUrl}/v1/views`)).json()).views}async startRealtimeConnection(o){if(console.debug(`${new Date().toISOString()} :: Connection start requested`),this.rtcClient&&this.connectionMonitorInterval!==void 0)throw new Error(`Already created realtime connection to device ${this.id}`);this.rtcClient&&console.warn("overwriting existing rtcClient due to missing connectionMonitorInterval");const et=new distExports.RtcClient({lanOnlyMode:!0,receive:this.handleMessage,sessionType:o});for(await et.connectLan(this.peerUrl);et.getConnectionStatus(this.peerUrl)!=="connected";)await delay$1(100);this.rtcClient=et,this.initConnectionMonitoring()}initConnectionMonitoring(){this.connectionMonitorInterval=setInterval(async()=>{let o=!1;this.rtcClient&&this.rtcClient.getConnectionStatus(this.peerUrl)!=="connected"&&(console.debug(`${new Date().toISOString()} :: data channel closed`),o=!0),(!this.rtcClient||o)&&(this.emit("disconnect"),this.stopRealtimeConnection().catch(et=>{console.error(et)}))},1e3)}async getRemotePeer(){return{id:this.peerUrl,organizationId:"",deviceId:this.id,capabilities:[],capabilitySet:{}}}async stopRealtimeConnection(){let o=!1;if(this.rtcClient){this.stopConnectionMonitoring(),this.id?(await this.rtcClient.disconnect(this.id),this.remoteDevicePeerId=null):o=!0;try{await this.rtcClient.shutdown()}finally{this.rtcClient=void 0}}if(o)throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async getCommandMetadata(){return(await fetch(`${this.peerUrl}/v1/commands`)).json()}async sendCommand(o,et,tt,nt){const rt={value:et,scrubberTime:(tt||new Date).toISOString(),meta:nt};return await fetch(`${this.peerUrl}/v1/enqueue-command`,{method:"POST",body:JSON.stringify({command:o,parameter:rt}),headers:{"Content-Type":"application/json"}})}}async function addDeviceToFleet(s,o){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${s}`,{method:"PATCH",body:JSON.stringify({fleetId:o}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function aggregateTelemetry(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).aggregates}async function deleteFleet(s){if(!Authentication.token)throw new Error("Not authenticated");await fetch(`${FORMANT_API_URL}/v1/admin/fleets/${s}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async function getAnalyticStreams(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getAnalyticsModules(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/analytics-modules`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getAnalyticsRows(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/rows`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function queryDevices(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(o=>new Device(o.id,o.name,o.organizationId,o.tags))}async function getCurrentGroup(){if(!Authentication.token)throw new Error("Not authenticated");let s=new URLSearchParams("");typeof window<"u"&&window.location&&(s=new URLSearchParams(window.location.search));const o=s.get("group");if(o===null||o.trim()==="")return;const et=await fetch(`${FORMANT_API_URL}/v1/admin/groups/`+o,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),{tagKey:tt,tagValue:nt}=await et.json();return await queryDevices({tags:{[tt]:[nt]},enabled:!0,type:"default"})}async function getDevice(s){if(!Authentication.token)throw new Error("Not authenticated");const o=await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json(),et=o.name;return new Device(s,et,o.organizationId,o.tags)}async function getDevices(){if(!Authentication.token)throw new Error("Not authenticated");const s=await(await fetch(`${FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return s.items,s.items.map(o=>new Device(o.id,o.name,defined$1(Authentication.currentOrganization),o.tags))}async function getEvent(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/events/query/id=${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getFileUrl(s){const o=await(await fetch(`${FORMANT_API_URL}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[s]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();if(o.fileUrls.length===0)throw new Error("File not found");return o.fileUrls[0]}async function getFleet(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/fleets/${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getFleetDevices(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/fleets/${s}/devices`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getInterventions(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-requests`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getLatestTelemetry(...s){const o=s.flat().filter(et=>!!et);return o.length===0?[]:(await(await fetch(`${FORMANT_API_URL}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:o}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getOnlineDevices(){if(!Authentication.token)throw new Error("Not authenticated");const s=(await(await fetch(`${FORMANT_API_URL}/v1/queries/online-devices`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items;return(await getDevices()).filter(o=>s.includes(o.id))}async function getRealtimeDevices(){if(!Authentication.token)throw new Error("Not authenticated");const s=(await(await fetch(`${FORMANT_API_URL}/v1/signaling/peers`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(o=>o.deviceId);return(await getDevices()).filter(o=>s.includes(o.id))}async function getStreams(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.filter(s=>s.enabled)}async function getTaskReportRows(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/task-report-rows`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getTaskReportTables(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/task-reports`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function listFleets(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/fleets`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function patchFleet(s,o){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/fleets/${s}`,{method:"PATCH",body:JSON.stringify(o),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchStream(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/streams/${s.id}`,{method:"PATCH",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchView(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/views/${s.id}`,{method:"PATCH",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function queryAnalytics$1(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function createFleet(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/fleets`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getAllEventTriggerGroup(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/event-trigger-groups`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getEventTriggerGroup(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/event-trigger-groups/${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchEventTriggerGroup(s,o){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/event-trigger-groups/${s}`,{method:"PATCH",body:JSON.stringify(o),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}const Qt=class{static async setDefaultDevice(s){Qt.defaultDeviceId=s}static async getCurrentDevice(){if(!Authentication.token)throw new Error("Not authenticated");if(!Qt.defaultDeviceId)throw new Error("No known default device");const s=(await(await fetch(`${FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.find(tt=>tt.id===Qt.defaultDeviceId),o=s.name,et=new Device(Qt.defaultDeviceId,o,defined$1(Authentication.currentOrganization),s.tags);return Qt.knownContext.push(new WeakRef(et)),et}static async getPeerDevice(s){const o=new PeerDevice(s);return o.id=await o.getDeviceId(),o}static async getDevice(s){const o=await getDevice(s);return Qt.knownContext.push(new WeakRef(o)),o}};let Fleet=Qt;he(Fleet,"defaultDeviceId"),he(Fleet,"knownContext",[]),he(Fleet,"createFleet",createFleet),he(Fleet,"listFleets",listFleets),he(Fleet,"getFleet",getFleet),he(Fleet,"patchFleet",patchFleet),he(Fleet,"deleteFleet",deleteFleet),he(Fleet,"addDeviceToFleet",addDeviceToFleet),he(Fleet,"getFleetDevices",getFleetDevices),he(Fleet,"aggregateTelemetry",aggregateTelemetry),he(Fleet,"createShareLink",createShareLink),he(Fleet,"eventsCounter",eventsCounter),he(Fleet,"getAnalyticStreams",getAnalyticStreams),he(Fleet,"getAnalyticsModules",getAnalyticsModules),he(Fleet,"getAnalyticsRows",getAnalyticsRows),he(Fleet,"getAnnotationCount",getAnnotationCount),he(Fleet,"getAnnotationCountByIntervals",getAnnotationCountByIntervals),he(Fleet,"getCurrentGroup",getCurrentGroup),he(Fleet,"getDevices",getDevices),he(Fleet,"getEvent",getEvent),he(Fleet,"getFileUrl",getFileUrl),he(Fleet,"getInterventions",getInterventions),he(Fleet,"getLatestTelemetry",getLatestTelemetry),he(Fleet,"getOnlineDevices",getOnlineDevices),he(Fleet,"getPeers",getPeers),he(Fleet,"getRealtimeDevices",getRealtimeDevices),he(Fleet,"getRealtimeSessions",getRealtimeSessions),he(Fleet,"getStreams",getStreams),he(Fleet,"getTaskReportRows",getTaskReportRows),he(Fleet,"getTaskReportTables",getTaskReportTables),he(Fleet,"getTelemetry",getTelemetry),he(Fleet,"getViews",getViews),he(Fleet,"patchStream",patchStream),he(Fleet,"patchView",patchView),he(Fleet,"queryAnalytics",queryAnalytics$1),he(Fleet,"queryDevices",queryDevices),he(Fleet,"queryEvents",queryEvents),he(Fleet,"queryTelemetry",queryTelemetry),he(Fleet,"getAllEventTriggerGroup",getAllEventTriggerGroup),he(Fleet,"getEventTriggerGroup",getEventTriggerGroup),he(Fleet,"patchEventTriggergroup",patchEventTriggerGroup);try{const s=typeof window<"u"&&window.location?new URLSearchParams(window.location.search):new URLSearchParams(""),o=s.get("device");o&&Fleet.setDefaultDevice(o);const et=s.get("auth");et&&Authentication.loginWithToken(et),s.get("module")&&Authentication.listenForRefresh(),typeof window<"u"&&App.listenForConnectionEvents()}catch(s){}var signaling_pb={},googleProtobuf={};(function(exports){var $jscomp=$jscomp||{};$jscomp.scope={},$jscomp.findInternal=function(s,o,et){s instanceof String&&(s=String(s));for(var tt=s.length,nt=0;nt=nt}},"es6","es3"),$jscomp.polyfill("Array.prototype.find",function(s){return s||function(o,et){return $jscomp.findInternal(this,o,et).v}},"es6","es3"),$jscomp.polyfill("String.prototype.startsWith",function(s){return s||function(o,et){var tt=$jscomp.checkStringArgs(this,o,"startsWith");o+="";var nt=tt.length,rt=o.length;et=Math.max(0,Math.min(et|0,tt.length));for(var it=0;it=rt}},"es6","es3"),$jscomp.polyfill("String.prototype.repeat",function(s){return s||function(o){var et=$jscomp.checkStringArgs(this,null,"repeat");if(0>o||1342177279>>=1)&&(et+=et);return tt}},"es6","es3");var COMPILED=!0,goog=goog||{};goog.global=commonjsGlobal||self,goog.exportPath_=function(s,o,et){s=s.split("."),et=et||goog.global,s[0]in et||typeof et.execScript>"u"||et.execScript("var "+s[0]);for(var tt;s.length&&(tt=s.shift());)s.length||o===void 0?et=et[tt]&&et[tt]!==Object.prototype[tt]?et[tt]:et[tt]={}:et[tt]=o},goog.define=function(s,o){return o},goog.FEATURESET_YEAR=2012,goog.DEBUG=!0,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.STRICT_MODE_COMPATIBLE=!1,goog.DISALLOW_TEST_ONLY_CODE=!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(s){if(goog.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");goog.constructNamespace_(s)},goog.constructNamespace_=function(s,o){goog.exportPath_(s,o)},goog.getScriptNonce=function(s){return s&&s!=goog.global?goog.getScriptNonce_(s.document):(goog.cspNonce_===null&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document)),goog.cspNonce_)},goog.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/,goog.cspNonce_=null,goog.getScriptNonce_=function(s){return(s=s.querySelector&&s.querySelector("script[nonce]"))&&(s=s.nonce||s.getAttribute("nonce"))&&goog.NONCE_PATTERN_.test(s)?s:""},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(s){if(typeof s!="string"||!s||s.search(goog.VALID_MODULE_RE_)==-1)throw Error("Invalid module identifier");if(!goog.isInGoogModuleLoader_())throw Error("Module "+s+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");goog.moduleLoaderState_.moduleName=s},goog.module.get=function(s){return goog.module.getInternal_(s)},goog.module.getInternal_=function(s){return null},goog.ModuleType={ES6:"es6",GOOG:"goog"},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()},goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG},goog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var s=goog.global.$jscomp;return s?typeof s.getCurrentModulePath!="function"?!1:!!s.getCurrentModulePath():!1},goog.module.declareLegacyNamespace=function(){goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.declareModuleId=function(s){if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=s;else{var o=goog.global.$jscomp;if(!o||typeof o.getCurrentModulePath!="function")throw Error('Module with namespace "'+s+'" has been loaded incorrectly.');o=o.require(o.getCurrentModulePath()),goog.loadedModules_[s]={exports:o,type:goog.ModuleType.ES6,moduleId:s}}},goog.setTestOnly=function(s){if(goog.DISALLOW_TEST_ONLY_CODE)throw s=s||"",Error("Importing test-only code into non-debug environment"+(s?": "+s:"."))},goog.forwardDeclare=function(s){},goog.getObjectByName=function(s,o){s=s.split("."),o=o||goog.global;for(var et=0;et{const{canvas:it}=this;if(!it)return;const ot=it.getContext("webgl");this.webglContext=ot||void 0,this.lastDecodedFrameTime=void 0,this.lastReceivedFrameTime=void 0,this.hasReceivedKeyframe=!1,this.currentFrameIndex=void 0,!(!this.canvas||!this.webglContext)&&(this.yuvCanvas||(this.yuvCanvas=new YUVCanvas(this.webglContext)),this.moduleStartTime=Date.now())}),__publicField(this,"stop",()=>{var it;(it=this.decoder)==null||it.release(),this.webglContext=void 0,this.decoderQueueLocked=!1}),__publicField(this,"reset",()=>{this.retries=0,this.restart()}),__publicField(this,"notifyWarningTextChanged",()=>{var it;(it=this.onWarningTextChanged)==null||it.call(this,this.getWarningText())}),__publicField(this,"restart",()=>{console.info("Restarting decoder"),console.info("BytestreamPlayer restarting",__spreadProps(__spreadValues({},this.trackInfo),{Restart:this.timesRestarted})),this.frameQueue=[],this.decoderQueue=[],this.stop(),this.decoder=new H264Decoder(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),this.start(),this.retries++,this.timesRestarted++}),__publicField(this,"onTrackTick",()=>{if(this.numFramesDecoded===0){if(this.lastDecodedFrameTime===void 0){const at=Date.now();console.info("BytestreamPlayer waiting for video",__spreadProps(__spreadValues({},this.trackInfo),{"Time Waited":at-this.moduleCreateTime}))}return}this.numFramesReceived/this.numFramesDecoded>maxDropRatio&&this.warnPerformanceProblems(),this.numFramesReceived=0,this.numFramesDecoded=0;const it=Array.from(this.frameCheckpointMap.entries()).reduce((at,[lt,ut])=>{var dt;return!this.currentFrameIndex||lt>this.currentFrameIndex-60||ut==="FrameDrawn"||(at[ut]=((dt=at[ut])!=null?dt:0)+1,this.frameCheckpointMap.delete(lt)),at},{});Object.keys(it).map(at=>{console.info("BytestreamPlayer Frame Dropped",__spreadProps(__spreadValues({},this.trackInfo),{"Num Dropped":it[at],"Frame State":at}))});const{minJitter:ot,maxJitter:st}=this;ot&&st&&(console.info("BytestreamPlayer Jitter",__spreadProps(__spreadValues({},this.trackInfo),{minJitter:ot,maxJitter:st})),this.minJitter=void 0,this.maxJitter=void 0)}),__publicField(this,"onTick",()=>{var it;const{lastReceivedFrameTime:ot,lastDecodedFrameTime:st,moduleStartTime:at,noSignal:lt,retries:ut}=this,dt=new Date().getTime();lt&&(this.lastNoSignalTime=dt),this.overWaitingThreshold=dt-at>noSignalThreshold;const ht=dt-at>decoderNotWorkingThreshold;if(!st){ot&&ht&&utnoSignalThreshold&&ctwarnPerformanceThreshold&&this.warnPerformanceProblems(),ct>noSignalThreshold&&(this.lostSignal=!0)}this.overWaitingThreshold&&(this.waitingForDecoder||this.noSignal||this.lostSignal)&&((it=this.onCanvasDrawerWarning)==null||it.call(this,"ShouldDisableControl"))}),__publicField(this,"receiveEncodedFrame",it=>{if(!it)return;const ot=it.index;if(ot&&this.frameCheckpointMap.set(ot,"FrameReceived"),!(!it||!this.canvas||!this.webglContext)){if(this.isKeyframe(it),!this.hasReceivedKeyframe)return console.info("Dropping frame because no keyframe detected"),!1;this.lastReceivedFrameTime===void 0&&console.debug("Received first frame on bytestream player",__spreadValues({},this.trackInfo)),this.checkOrder(it),this.numFramesReceived++,this.lastReceivedFrameTime=Date.now(),this.lostSignal&&this.restart(),this.noSignal=!1,this.lostSignal=!1,this.frameQueue.push(it),ot&&this.frameCheckpointMap.set(ot,"FrameQueued"),this.frameQueue.length>maxQueueSize&&(this.frameQueue=this.frameQueue.filter(st=>this.isKeyframe(st))),this.frameQueue.length>maxQueueSize&&(this.frameQueue=[],this.decoderQueue=[]),this.decodeNextFrame()}}),__publicField(this,"onDecoderError",it=>{this.frameQueue=[],this.decoderQueue=[],this.hasReceivedKeyframe=!1,console.info("BytestreamPlayer decode error",__spreadProps(__spreadValues({},this.trackInfo),{"Frame Index":it}))}),__publicField(this,"onReceiveDecodedFrame",it=>{var ot,st;const{canvas:at,yuvCanvas:lt,decoderQueue:ut}=this,{timestamp:dt,yuv:ht,height:ct,width:pt,index:ft}=it;this.frameCheckpointMap.set(ft,"FrameDecoded"),this.numFramesDecoded++;const gt=Date.now();if(this.lastDecodedFrameTime===void 0&&console.info("BytestreamPlayer started video",__spreadProps(__spreadValues({},this.trackInfo),{"Time Until Video":gt-this.moduleCreateTime})),this.lastDecodedFrameTime=gt,this.waitingForDecoder=!1,this.decoderQueue=ut.filter(Ft=>gt-Ftduration$1$1.second||!lt||!at||ct===0||pt===0)return;ct!==at.height&&(at.height=ct,lt.height=ct),pt!==at.width&&(at.width=pt,lt.width=pt);const yt=lt.draw(ht),Ut=Date.now();if(this.lastDrawnFrameTime){const Ft=Ut-this.lastDrawnFrameTime;this.minJitter=Math.min(Ft,(ot=this.minJitter)!=null?ot:Number.MAX_SAFE_INTEGER),this.maxJitter=Math.max(Ft,(st=this.maxJitter)!=null?st:0)}this.lastDrawnFrameTime=Ut,this.frameCheckpointMap.set(ft,"FrameDrawn"),yt===0&&(this.webglYUVSupported=!0),yt===hardwareIncompatibleErrorCode&&(this.webglYUVSupported=!1),this.frameQueue.length>0&&this.decodeNextFrame()}),this.workerFactory=o,this.onWebglYUVSupportedChanged=et,this.onWarningTextChanged=tt,this.onCanvasDrawerWarning=nt,this.trackInfo=rt,this.decoder=new H264Decoder(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),setInterval(this.onTick,duration$1$1.millisecond*200),setInterval(this.onTrackTick,duration$1$1.second*5)}get waitingForDecoder(){return this._waitingForDecoder}set waitingForDecoder(o){this._waitingForDecoder=o,this.notifyWarningTextChanged()}get noSignal(){return this._noSignal}set noSignal(o){this._noSignal=o,this.notifyWarningTextChanged()}get lostSignal(){return this._lostSignal}set lostSignal(o){this._lostSignal=o,this.notifyWarningTextChanged()}get overWaitingThreshold(){return this._overWaitingThreshold}set overWaitingThreshold(o){this._overWaitingThreshold=o,this.notifyWarningTextChanged()}get retries(){return this._retries}set retries(o){this._retries=o,this.notifyWarningTextChanged()}get webglYUVSupported(){return this._webglYUVSupported}set webglYUVSupported(o){var et;this._webglYUVSupported=o,(et=this.onWebglYUVSupportedChanged)==null||et.call(this,o),this.notifyWarningTextChanged()}setCanvas(o){this.canvas=o}getWarningText(){var o;const{waitingForDecoder:et,noSignal:tt,overWaitingThreshold:nt,lostSignal:rt,retries:it,webglYUVSupported:ot}=this,st=ot===!1,at=et?it===numRetries?"Decoder failed to start":"Starting decoder":void 0,lt=st?"Hardware decoding not supported on this device":void 0;return(o=lt??(rt?"Lost signal":tt?nt?"No signal":"Waiting for signal":void 0))!=null?o:at}decodeNextFrame(){if(this.decoderQueueLocked&&(this.decodeNextFrameAttempted=!0),this.decoderQueueLocked=!0,this.decoderQueue.length>maxQueueSize){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const o=this.frameQueue.shift();if(!o){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const et=Date.now();this.frameCheckpointMap.set(o.index,"FrameSentToDecoder"),this.decoder.post(et,o.frame_data,o.flags,o.index),this.decoderQueue.push(et),this.decoderQueueLocked=!1,this.decodeNextFrameAttempted&&(this.decodeNextFrameAttempted=!1,this.decodeNextFrame())}warnPerformanceProblems(){var o;this.lastDecodedFrameTime&&this.overWaitingThreshold&&!this.lostSignal&&!this.noSignal&&((o=this.onCanvasDrawerWarning)==null||o.call(this,"ShouldDegradeVideo"))}checkOrder(o){if(this.currentFrameIndex!==void 0&&o.indexDate.now()?!1:nt>this.medianFrameSize?(this.hasReceivedKeyframe=!0,!0):!1}}const encodedJs$2="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbihTKXt0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShTKTpTKCl9KShmdW5jdGlvbigpe2NvbnN0IEo9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07dmFyIHk9e30sRj17fSxhPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBHPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7ZnVuY3Rpb24gaChBKXtsZXQgST1BLmxlbmd0aDtBW0EubGVuZ3RoLTJdPT09Ij0iP0ktPTI6QVtBLmxlbmd0aC0xXT09PSI9IiYmSS0tO2NvbnN0IGc9SS80KjN8MCxCPW5ldyBVaW50OEFycmF5KGcpO2ZvcihsZXQgUT0wLEM9MDtRPGc7USs9Myl7Y29uc3QgRD1HLmluZGV4T2YoQVtDKytdKSxFPUcuaW5kZXhPZihBW0MrK10pO2lmKEJbUV09RDw8MnxFPj40LEM9PT1JKWJyZWFrO2NvbnN0IHc9Ry5pbmRleE9mKEFbQysrXXx8Ij0iKTtpZihCW1ErMV09KEUmMTUpPDw0fHc+PjIsQz09PUkpYnJlYWs7Y29uc3Qgbz1HLmluZGV4T2YoQVtDKytdfHwiPSIpO0JbUSsyXT0odyYzKTw8NnxvfXJldHVybiBCfWEuZGVjb2RlPWgsT2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IEw9IkFHRnpiUUVBQUFBQmx3RVRZQUovZndGL1lBUi9mMzkvQVg5Z0FuOS9BR0FEZjM5L0FYOWdBWDhBWUFsL2YzOS9mMzkvZjM4QVlBRi9BWDlnQkg5L2YzOEFZQVovZjM5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUFOL2YzOEFZQVYvZjM5L2Z3Ri9ZQUFBWUFWL2YzOS9md0JnQm45L2YzOS9md0JnQ245L2YzOS9mMzkvZjM4QVlBQUJmMkFIZjM5L2YzOS9md0YvWUFoL2YzOS9mMzkvZndGL0FqQURCR2d5TmpRR2JXVnRZM0I1QUFNRWFESTJOQVp5WlhOcGVtVUFCZ1JvTWpZMEJtMWxiVzl5ZVFJQmdBS0FnQUlEWTJJQUFBUUFBUU1LQVFZQUJRTUZCZ2NBQndZQUF3NERCd2NGQWdBQ0F3UUFCUVVGQlFvRUFnUUpBUWNBQXdZR0FnSUJCZ1FEQWdJQkN3RUJBd01MRFFJQkFBQUNDUWtKRHdJRkJRQUJDZ0FTQ3hFSUNBY0lDQWNFQVFRSUNBWUJFQWdBQVFZSkFYOEJRYkRFd0FJTEJ5WUVCbTFoYkd4dll3QUtDV2d5TmpSaGJHeHZZd0JnQm1SbFkyOWtaUUJoQkdsdWFYUUFZZ3IycFFWaXdBSUJBbjhnQUJBUElnSkJmMHdFUUNBQVFRRVFDeG9nQVVFQU5nSUFRUUFQQ3dKQUFrQWdBa0dBZ0lDQUJFOEVRQ0FBUVFNUUMwRi9SZ1JBUVFFUEN5QUJJQUpCSFhaQkFYRkJBV28yQWdBTUFRc2dBa0dBZ0lDQUFrOEVRQ0FBUVFVUUMwRi9SZ1JBUVFFUEN5QUJJQUpCRzNaQkEzRkJBMm8yQWdBTUFRc2dBa0dBZ0lDQUFVOEVRQ0FBUVFjUUMwRi9SZ1JBUVFFUEN5QUJJQUpCR1haQkIzRkJCMm8yQWdBTUFRc2dBaEF2SWdOQkJHb2lBa0VnUmdSQUlBRkJBRFlDQUNBQVFTQVFDeHBCQVNFQ0lBQkJBUkFEUVFGSERRSWdBQkFQSVFNZ0FFRWdFQXRCZjBZTkFpQURRUUZMRFFJZ0EwRUJhd1JBSUFGQmZ6WUNBQXdDQ3lBQlFYODJBZ0JCQVE4TElBQWdBMEVGYWhBTEdpQUFJQUlRQXlJQVFYOUdCRUJCQVE4TElBRWdBRUYvSUFKMFFYOXphallDQUF0QkFDRUNDeUFDQzRnQ0FRZC9JQUFvQWdRaEJBSkFJQUFvQWd4QkEzUWlCeUFBS0FJUUlnaHJJZ0pCSUU0RVFDQUVLQUFBSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUVESUFBb0FnZ2lBa1VOQVNBRElBSjBJQVF0QUFSQkNDQUNhM1p5SVFNTUFRc2dBa0VCU0FSQURBRUxJQVF0QUFBZ0FDZ0NDQ0lGUVJocUlnWjBJUU1nQWlBRmFrRjRhaUlDUVFGSURRQURRQ0FFTFFBQklBWkJlR29pQm5RZ0EzSWhBeUFDUVFoS0lRVWdCRUVCYWlFRUlBSkJlR29oQWlBRkRRQUxDeUFBSUFFZ0NHb2lCRFlDRUNBQUlBUkJCM0UyQWdoQmZ5RUNJQVFnQjAwRWZ5QUFJQUFvQWdBZ0JFRURkbW8yQWdRZ0EwRWdJQUZyZGdWQmZ3c0xxZzBCQjM4Q1FDQUFSUTBBSUFCQmVHb2lBeUFBUVh4cUtBSUFJZ0ZCZUhFaUFHb2hCUUpBSUFGQkFYRU5BQ0FCUVFOeFJRMEJJQU1nQXlnQ0FDSUNheUlEUWNUQUFDZ0NBQ0lFU1EwQklBQWdBbW9oQUNBRFFjakFBQ2dDQUVjRVFDQUNRZjhCVFFSQUlBTW9BZ2dpQkNBQ1FRTjJJZ0pCQTNSQjNNQUFha2NhSUFRZ0F5Z0NEQ0lCUmdSQVFiVEFBRUcwd0FBb0FnQkJmaUFDZDNFMkFnQU1Bd3NnQkNBQk5nSU1JQUVnQkRZQ0NBd0NDeUFES0FJWUlRWUNRQ0FESUFNb0Fnd2lBVWNFUUNBRUlBTW9BZ2dpQWswRVFDQUNLQUlNR2dzZ0FpQUJOZ0lNSUFFZ0FqWUNDQXdCQ3dKQUlBTkJGR29pQWlnQ0FDSUVEUUFnQTBFUWFpSUNLQUlBSWdRTkFFRUFJUUVNQVFzRFFDQUNJUWNnQkNJQlFSUnFJZ0lvQWdBaUJBMEFJQUZCRUdvaEFpQUJLQUlRSWdRTkFBc2dCMEVBTmdJQUN5QUdSUTBCQWtBZ0F5QURLQUljSWdKQkFuUkI1TUlBYWlJRUtBSUFSZ1JBSUFRZ0FUWUNBQ0FCRFFGQnVNQUFRYmpBQUNnQ0FFRitJQUozY1RZQ0FBd0RDeUFHUVJCQkZDQUdLQUlRSUFOR0cyb2dBVFlDQUNBQlJRMENDeUFCSUFZMkFoZ2dBeWdDRUNJQ0JFQWdBU0FDTmdJUUlBSWdBVFlDR0FzZ0F5Z0NGQ0lDUlEwQklBRWdBallDRkNBQ0lBRTJBaGdNQVFzZ0JTZ0NCQ0lCUVFOeFFRTkhEUUJCdk1BQUlBQTJBZ0FnQlNBQlFYNXhOZ0lFSUFNZ0FFRUJjallDQkNBQUlBTnFJQUEyQWdBUEN5QUZJQU5ORFFBZ0JTZ0NCQ0lCUVFGeFJRMEFBa0FnQVVFQ2NVVUVRQ0FGUWN6QUFDZ0NBRVlFUUVITXdBQWdBellDQUVIQXdBQkJ3TUFBS0FJQUlBQnFJZ0EyQWdBZ0F5QUFRUUZ5TmdJRUlBTkJ5TUFBS0FJQVJ3MERRYnpBQUVFQU5nSUFRY2pBQUVFQU5nSUFEd3NnQlVISXdBQW9BZ0JHQkVCQnlNQUFJQU0yQWdCQnZNQUFRYnpBQUNnQ0FDQUFhaUlBTmdJQUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFDUUNBQlFmOEJUUVJBSUFVb0Fnd2hBaUFGS0FJSUlnUWdBVUVEZGlJQlFRTjBRZHpBQUdvaUIwY0VRRUhFd0FBb0FnQWFDeUFDSUFSR0JFQkJ0TUFBUWJUQUFDZ0NBRUYrSUFGM2NUWUNBQXdDQ3lBQ0lBZEhCRUJCeE1BQUtBSUFHZ3NnQkNBQ05nSU1JQUlnQkRZQ0NBd0JDeUFGS0FJWUlRWUNRQ0FGSUFVb0Fnd2lBVWNFUUVIRXdBQW9BZ0FnQlNnQ0NDSUNUUVJBSUFJb0Fnd2FDeUFDSUFFMkFnd2dBU0FDTmdJSURBRUxBa0FnQlVFVWFpSUNLQUlBSWdRTkFDQUZRUkJxSWdJb0FnQWlCQTBBUVFBaEFRd0JDd05BSUFJaEJ5QUVJZ0ZCRkdvaUFpZ0NBQ0lFRFFBZ0FVRVFhaUVDSUFFb0FoQWlCQTBBQ3lBSFFRQTJBZ0FMSUFaRkRRQUNRQ0FGSUFVb0Fod2lBa0VDZEVIa3dnQnFJZ1FvQWdCR0JFQWdCQ0FCTmdJQUlBRU5BVUc0d0FCQnVNQUFLQUlBUVg0Z0FuZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ0lFUUNBQklBSTJBaEFnQWlBQk5nSVlDeUFGS0FJVUlnSkZEUUFnQVNBQ05nSVVJQUlnQVRZQ0dBc2dBeUFBUVFGeU5nSUVJQUFnQTJvZ0FEWUNBQ0FEUWNqQUFDZ0NBRWNOQVVHOHdBQWdBRFlDQUE4TElBVWdBVUYrY1RZQ0JDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFDeUFBUWY4QlRRUkFJQUJCQTNZaUFVRURkRUhjd0FCcUlRQUNmMEcwd0FBb0FnQWlBa0VCSUFGMElnRnhSUVJBUWJUQUFDQUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBaUFBSUFNMkFnZ2dBaUFETmdJTUlBTWdBRFlDRENBRElBSTJBZ2dQQ3lBRFFnQTNBaEFnQXdKL1FRQWdBRUVJZGlJQlJRMEFHa0VmSUFCQi8vLy9CMHNOQUJvZ0FTQUJRWUQrUDJwQkVIWkJDSEVpQVhRaUFpQUNRWURnSDJwQkVIWkJCSEVpQW5RaUJDQUVRWUNBRDJwQkVIWkJBbkVpQkhSQkQzWWdBU0FDY2lBRWNtc2lBVUVCZENBQUlBRkJGV3AyUVFGeGNrRWNhZ3NpQWpZQ0hDQUNRUUowUWVUQ0FHb2hBUUpBQWtBQ1FFRzR3QUFvQWdBaUJFRUJJQUowSWdkeFJRUkFRYmpBQUNBRUlBZHlOZ0lBSUFFZ0F6WUNBQ0FESUFFMkFoZ01BUXNnQUVFQVFSa2dBa0VCZG1zZ0FrRWZSaHQwSVFJZ0FTZ0NBQ0VCQTBBZ0FTSUVLQUlFUVhoeElBQkdEUUlnQWtFZGRpRUJJQUpCQVhRaEFpQUVJQUZCQkhGcUlnZEJFR29vQWdBaUFRMEFDeUFISUFNMkFoQWdBeUFFTmdJWUN5QURJQU0yQWd3Z0F5QUROZ0lJREFFTElBUW9BZ2dpQUNBRE5nSU1JQVFnQXpZQ0NDQURRUUEyQWhnZ0F5QUVOZ0lNSUFNZ0FEWUNDQXRCMU1BQVFkVEFBQ2dDQUVGL2FpSUFOZ0lBSUFBTkFFSDh3d0FoQXdOQUlBTW9BZ0FpQUVFSWFpRURJQUFOQUF0QjFNQUFRWDgyQWdBTEMzUUJBbjhqQUVFUWF5SUNKQUFnQWtFQU5nSU1JQUFnQWtFTWFoQUNJUUFDZnlBQ0tBSU1JZ05CZjBZRVFFRUJJQUJGRFFFYUlBRkJnSUNBZ0hnMkFnQkJBQXdCQzBFQklBQU5BQm9nQVNBRFFRRnFRUUYySWdGQkFDQUJheUFEUVFGeEd6WUNBRUVBQ3lFQUlBSkJFR29rQUNBQUM4Y0xBUlIvSUFGQm9EMXFMUUFBUVF4c0lnWkIxRHhxS0FJQUlRVWdCa0hRUEdvb0FnQWdBVUdRUEdvdEFBQWlCM1FoQkNBQ1JRUkFJQUFnQUNnQ0FDQUViRFlDQUFzZ0JTQUhkQ0VCQWtBQ1FDQURRWnovQTNFRVFDQUFJQVpCMkR4cUtBSUFJQWQwSWdNZ0FDZ0NQR3cyQWp3Z0FDQUFLQUk0SUFGc05nSTRRUUVoQWlBQUlBQW9BaXdnQkd3aUJ5QUFLQUlNSUFSc0lnVnFJZ2tnQUNnQ0lDQUJiQ0lLSUFBb0FqUWdBV3dpRDBFQmRXb2lFR3NpQmpZQ0xDQUFLQUlvSVFnZ0FDQUZJQWRySWdVZ0NrRUJkU0FQYXlJS2F5SUhOZ0lvSUFBb0FpUWhEaUFBSUFVZ0Ntb2lCVFlDSkNBQUlBQW9BaHdnQVd3aUR5QUFLQUlJSUFGc0lndHFJaE1nQUNnQ0VDQURiQ0lSSUFBb0FqQWdBMndpREVFQmRXb2lGV3NpQ2pZQ0hDQUFLQUlZSVEwZ0FDQUxJQTlySWdzZ0VVRUJkU0FNYXlJUmF5SVBOZ0lZSUFBb0FoUWhEQ0FBSUFzZ0VXb2lDellDRkNBQUlBUWdER3dpQkNBQUtBSUFJZ3hxSWhRZ0FDZ0NCQ0FCYkNJU0lBRWdEV3dpRFVFQmRXb2lGbXNpRVRZQ0RDQUFJQXdnQkdzaUJDQVNRUUYxSUExcklnMXJJZ3cyQWdnZ0FDQUVJQTFxSWcwMkFnUWdBQ0FCSUE1c0lnUWdBQ2dDT0NJT2F5SVNJQU1nQ0d3aUNFRUJkU0FBS0FJOEloZHJJZ05ySWdFMkFqZ2dBQ0FESUJKcUlnTTJBalFnQUNBRUlBNXFJZzRnRjBFQmRTQUlhaUlJYXlJRU5nSThJQUFnRkNBV2FpSVVJQWtnRUdvaUVHdEJJR29pRWlBSUlBNXFJZ2tnRXlBVmFpSUlRUUYxSWc1cmFrRUdkU0lUTmdJZ0lBQWdFaUFPSUFscmFrRUdkU0lPTmdJUUlBQWdFQ0FVYWtFZ2FpSVFJQWxCQVhVZ0NHb2lDV3RCQm5VaUNEWUNNQ0FBSUFrZ0VHcEJCblVpQ1RZQ0FDQUpRWUFFYWlBT1FZQUVhbkpCL3dkTERRSWdDRUdBQkdvZ0UwR0FCR3B5UWY4SFN3MENJQUFnQlNBTmFrRWdhaUlKSUFOQkFYVWdDMm9pRUd0QkJuVWlDRFlDTkNBQUlBMGdCV3RCSUdvaUJTQURJQXRCQVhVaUMydHFRUVoxSWcwMkFpUWdBQ0FGSUFzZ0EydHFRUVoxSWdNMkFoUWdBQ0FKSUJCcVFRWjFJZ1UyQWdRZ0JVR0FCR29nQTBHQUJHcHlRZjhIU3cwQ0lBaEJnQVJxSUExQmdBUnFja0gvQjBzTkFpQUFJQWNnREdwQklHb2lBeUFCUVFGMUlBOXFJZ1ZyUVFaMUlnczJBamdnQUNBTUlBZHJRU0JxSWdjZ0FTQVBRUUYxSWc5cmFrRUdkU0lNTmdJb0lBQWdCeUFQSUFGcmFrRUdkU0lCTmdJWUlBQWdBeUFGYWtFR2RTSUROZ0lJSUFOQmdBUnFJQUZCZ0FScWNrSC9CMHNOQWlBTFFZQUVhaUFNUVlBRWFuSkIvd2RMRFFJZ0FDQUdJQkZxUVNCcUlnRWdCRUVCZFNBS2FpSURhMEVHZFNJSE5nSThJQUFnRVNBR2EwRWdhaUlHSUFRZ0NrRUJkU0lGYTJwQkJuVWlDallDTENBQUlBWWdCU0FFYTJwQkJuVWlCRFlDSENBQUlBRWdBMnBCQm5VaUFEWUNEQ0FBUVlBRWFpQUVRWUFFYW5KQi93ZExEUUlnQjBHQUJHb2dDa0dBQkdweVFmOEhUUTBCREFJTElBTkI0Z0J4UlFSQVFRRWhBaUFBS0FJQVFTQnFRUVoxSWdGQmdBUnFRZjhIU3cwQ0lBQWdBVFlDT0NBQUlBRTJBandnQUNBQk5nSTBJQUFnQVRZQ01DQUFJQUUyQWl3Z0FDQUJOZ0lvSUFBZ0FUWUNKQ0FBSUFFMkFpQWdBQ0FCTmdJY0lBQWdBVFlDR0NBQUlBRTJBaFFnQUNBQk5nSVFJQUFnQVRZQ0RDQUFJQUUyQWdnZ0FDQUJOZ0lFSUFBZ0FUWUNBQXdCQzBFQklRSWdBQ0FBS0FJRUlBRnNJZ2NnQUNnQ0dDQUJiQ0lHUVFGMWFpSURJQUFvQWdBaUJTQUFLQUlVSUFSc0lnUnFJZ3BxUVNCcVFRWjFJZ0UyQWpBZ0FDQUtJQU5yUVNCcVFRWjFJZ00yQWd3Z0FDQUZJQVJySWdVZ0JpQUhRUUYxSWdkcmFrRWdha0VHZFNJRU5nSUlJQUFnQnlBR2F5QUZha0VnYWtFR2RTSUdOZ0lFSUFBZ0FUWUNBQ0FBSUFFMkFpQWdBQ0FHTmdJMElBQWdBVFlDRUNBQUlBWTJBaVFnQUNBRU5nSTRJQUFnQmpZQ0ZDQUFJQVEyQWlnZ0FDQUROZ0k4SUFBZ0JEWUNHQ0FBSUFNMkFpd2dBQ0FETmdJY0lBTkJnQVJxSUFGQmdBUnFJQVJCZ0FScUlBWkJnQVJxY25KeVFmOEhTdzBCQzBFQUlRSUxJQUlMOHdJQ0FuOEJmZ0pBSUFKRkRRQWdBQ0FDYWlJRFFYOXFJQUU2QUFBZ0FDQUJPZ0FBSUFKQkEwa05BQ0FEUVg1cUlBRTZBQUFnQUNBQk9nQUJJQU5CZldvZ0FUb0FBQ0FBSUFFNkFBSWdBa0VIU1EwQUlBTkJmR29nQVRvQUFDQUFJQUU2QUFNZ0FrRUpTUTBBSUFCQkFDQUFhMEVEY1NJRWFpSURJQUZCL3dGeFFZR0NoQWhzSWdFMkFnQWdBeUFDSUFSclFYeHhJZ1JxSWdKQmZHb2dBVFlDQUNBRVFRbEpEUUFnQXlBQk5nSUlJQU1nQVRZQ0JDQUNRWGhxSUFFMkFnQWdBa0YwYWlBQk5nSUFJQVJCR1VrTkFDQURJQUUyQWhnZ0F5QUJOZ0lVSUFNZ0FUWUNFQ0FESUFFMkFnd2dBa0Z3YWlBQk5nSUFJQUpCYkdvZ0FUWUNBQ0FDUVdocUlBRTJBZ0FnQWtGa2FpQUJOZ0lBSUFRZ0EwRUVjVUVZY2lJRWF5SUNRU0JKRFFBZ0FhMGlCVUlnaGlBRmhDRUZJQU1nQkdvaEFRTkFJQUVnQlRjREdDQUJJQVUzQXhBZ0FTQUZOd01JSUFFZ0JUY0RBQ0FCUVNCcUlRRWdBa0ZnYWlJQ1FSOUxEUUFMQ3lBQUMvSURBUU4vSUFFb0FnQWlBMEgvLy84SFJ3UkFJQUVvQWdRaEJDQUFJQUlnQWtFRGNTQUNRUkJKSWdJYlFRSjBJZ1ZCOENscUtBSUFRUkJCQ0NBQ0d5SUNiR29nQlVHd0tXb29BZ0JxSWdBZ0F5QUFMUUFBYWtHd0xtb3RBQUE2QUFBZ0FTZ0NDQ0VESUFBZ0JDQUFMUUFCYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VFSUFBZ0F5QUFMUUFDYWtHd0xtb3RBQUE2QUFJZ0FDQUVJQUF0QUFOcVFiQXVhaTBBQURvQUF5QUJLQUlVSVFNZ0FDQUNhaUlBSUFFb0FoQWdBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BaGdoQkNBQUlBTWdBQzBBQVdwQnNDNXFMUUFBT2dBQklBRW9BaHdoQXlBQUlBUWdBQzBBQW1wQnNDNXFMUUFBT2dBQ0lBQWdBeUFBTFFBRGFrR3dMbW90QUFBNkFBTWdBU2dDSkNFRElBQWdBbW9pQUNBQktBSWdJQUF0QUFCcVFiQXVhaTBBQURvQUFDQUJLQUlvSVFRZ0FDQURJQUF0QUFGcVFiQXVhaTBBQURvQUFTQUJLQUlzSVFNZ0FDQUVJQUF0QUFKcVFiQXVhaTBBQURvQUFpQUFJQU1nQUMwQUEycEJzQzVxTFFBQU9nQURJQUVvQWpRaEF5QUFJQUpxSWdBZ0FTZ0NNQ0FBTFFBQWFrR3dMbW90QUFBNkFBQWdBU2dDT0NFQ0lBQWdBeUFBTFFBQmFrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQWdBaUFBTFFBQ2FrR3dMbW90QUFBNkFBSWdBQ0FCSUFBdEFBTnFRYkF1YWkwQUFEb0FBd3NMMHhBQkRIOGpBRUdBQVdzaUNpUUFJQUFRRHlFRVFRRWhCUUpBQWtBQ2Z5QUNRUUZOQkVBZ0JFRUFTQTBDSUFSQkdYWkIvZ0J4UVlBSWFpQUVRWUNBZ09BQVR3MEJHaUFFUVJWMlFmNFBjVUhBQ0dvZ0JFR0FnSUFJVHcwQkdpQUVRUkYyUWY3L0FYRkJrQWxxSUFSQmdJQ0FBVThOQVJvZ0JFRVFka0VCZEVHUUNtb01BUXNnQWtFRFRRUkFJQVJCZjB3RVFFRUNRYUlRSUFSQmdJQ0FnQVJ4R3lFRkRBTUxJQVJCR1haQi9nQnhRZEFLYWlBRVFZQ0FnSUFCVHcwQkdpQUVRUloyUWY0SGNVR1FDMm9nQkVHQWdJQVFUdzBCR2lBRVFSRjJRZjcvQVhGQjBBdHFEQUVMSUFKQkIwMEVRQ0FFUVJwMklnSkJlR3BCT0VrRVFDQUNRUUYwUWRBTmFnd0NDeUFFUVJWMlFmNFBjVUhRRG1vTUFRc2dCRUVaZGtIK0FIRkIwQkJxSUFKQkVFME5BQm9nQkVFZGRpSUNCRUFnQWtFQmRFSFFFV29NQVFzZ0JFRVhka0grQTNGQjRCRnFDeThCQUNJRkRRQkJBU0VMREFFTFFRRWhDeUFGUVF0Mklna2dBMHNOQUVFZ0lBVkJIM0VpQm1zaEFnSkFJQWxGQkVBTUFRc2dCQ0FHZENFRUFrQWdCVUVGZGtFL2NTSU1SUVJBREFFTElBSWdERWtFUUNBQUlBWVFDMEYvUmcwRElBQVFEeUVFUVNBaEFnc2dCQ0FNZENFR1FRRWdERUYvYW5RaEJ5QUVRU0FnREd0MklRUURRQ0FLUVVCcklBaEJBblJxUVg5QkFTQUVJQWR4R3pZQ0FDQUlRUUZxSVFnZ0IwRUJkaUlIRFFBTElBSWdER3NoQWlBR0lRUUxJQWdnQ1VrRVFDQU1RUU5KSWc4Z0JVSC9yd0ZMY1NFRkEwQWdBa0VQVFFSQUlBQkJJQ0FDYXhBTFFYOUdCRUFNQlFzZ0FCQVBJUVJCSUNFQ0MwRUFJUVlDUUFKQUFuOENRQ0FFUVFCSURRQkJBU0VHSUFSQi8vLy8vd05MRFFCQkFpRUdJQVJCLy8vLy93RkxEUUJCQXlFR0lBUkIvLy8vL3dCTERRQkJCQ0VHSUFSQi8vLy9QMHNOQUVFRklRWWdCRUgvLy84ZlN3MEFRUVloQmlBRVFmLy8vdzlMRFFCQkJ5RUdJQVJCLy8vL0Iwc05BRUVJSVFZZ0JFSC8vLzhEU3cwQVFRa2hCaUFFUWYvLy93RkxEUUJCQ2lFR0lBUkIvLy8vQUVzTkFFRUxJUVlnQkVILy96OUxEUUJCRENFR0lBUkIvLzhmU3cwQVFRMGhCaUFFUWYvL0Qwc05BQUovQWtBZ0JFSC8vd2ROQkVBZ0JFR0FnSHh4UVlDQUJFWU5BUXdLQ3lBRlFRUWdCUnNoQmlBRVFROTBJUVJCRGlFSElBSkJjV29NQVFzZ0JVRUJJQVViSVFVZ0JFRVFkQ0VFUVF3aEJrRVBJUWNnQWtGd2Fnc2hBaUFISUFWMElRY2dCVVVNQVFzZ0JpQUZkQ0VIUVFFaERpQUNJQVpCQVdvaUJtc2hBaUFFSUFaMElRUWdCVVVOQVNBRklRWkJBQXNoRGlBQ0lBWlBCSDhnQkFVZ0FFRWdJQUpyRUF0QmYwWUVRQXdIQzBFZ0lRSWdBQkFQQ3lFTklBSWdCbXNoQWlBTklBWjBJUVFnRFVFZ0lBWnJkaUFIYWlFSERBRUxRUUFoQlFzZ0NrRkFheUFJUVFKMGFrRUFJQWRCQW1vZ0J5QUlJQXhHR3lBSElBOGJJZzFCQW1wQkFYWWlCbXNnQmlBTlFRRnhHellDQUVFQklBVWdEaHNpQlNBRlFRWkpJQVpCQXlBRlFYOXFkRXB4YWlFRklBaEJBV29pQ0NBSlJ3MEFDd3RCQUNFSEFrQWdDU0FEVHdSQVFRQWhDQXdCQ3dKQUlBSkJDRXNFUUNBQ0lRVU1BUXRCSUNFRklBQkJJQ0FDYXhBTFFYOUdEUU1nQUJBUElRUUxBa0FDUUFKL0FrQWdBMEVFUndSQUlBbEJmMm9pQWtFTlN3MERBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBa0VCYXc0TkFBRUNBd1FGQmdjSUNRb0xEQTRMSUFSQkduWkI0QkpxREE0TElBUkJHblpCb0JOcURBMExJQVJCRzNaQjRCTnFEQXdMSUFSQkczWkJnQlJxREFzTElBUkJHblpCb0JScURBb0xJQVJCR25aQjRCUnFEQWtMSUFSQkduWkJvQlZxREFnTElBUkJHblpCNEJWcURBY0xJQVJCRzNaQm9CWnFEQVlMSUFSQkhIWkJ3QlpxREFVTElBUkJISFpCMEJacURBUUxJQVJCSFhaQjRCWnFEQU1MSUFSQkhuWkI2QlpxREFJTElBUkJBRWdFUUVFQklRSU1CQXRCRVNFQ0lBbEJBMFlOQTBFU0lRSWdCRUgvLy8vL0Ewc05BMEVpSVFJZ0NVRUNSZzBEUVNOQk15QUVRZi8vLy84QlN4c2hBZ3dEQ3lBRVFSdDJRYUFTYWlBRVFSZDJRY0FTYWlBRVFmLy8vLzhBU3hzTExRQUFJZ0lOQVF3RUMwRVJRUUVnQkVFQVNCc2hBZ3NnQWtFRWRpRUlJQVVnQWtFUGNTSURheUVDSUFRZ0EzUWhCQXNnQ1VGL2FpSURCRUFEUUFKL0lBZ0VRQ0FDUVFwTkJFQWdBRUVnSUFKckVBdEJmMFlFUUF3SEN5QUFFQThoQkVFZ0lRSUxBa0FDZndKQUlBaEJmMm9pQlVFRlRRUkFBa0FDUUFKQUFrQUNRQ0FGUVFGckRnVUFBUUlEQkFZTElBUkJIblpCN2hacURBWUxJQVJCSG5aQjhoWnFEQVVMSUFSQkhYWkI5aFpxREFRTElBUkJIWFpCL2hacURBTUxJQVJCSFhaQmhoZHFEQUlMQW45Qjh3QWdCRUVaZGtId0FIRnJJQVJCZ0lDQWdBSlBEUUFhUWZRQUlBUkIvLy8vL3dCTERRQWFRWVVCSUFSQi8vLy9QMHNOQUJwQmxnRWdCRUgvLy84ZlN3MEFHa0duQVNBRVFmLy8vdzlMRFFBYVFiZ0JJQVJCLy8vL0Iwc05BQnBCeVFFZ0JFSC8vLzhEU3cwQUdrSGFBU0FFUWYvLy93RkxEUUFhUVFCQjZ3RWdCRUdBZ0lBQlNSc0xJZ1ZCQkhZZ0NFME5BZ3dJQ3lBRVFSOTJRZXdXYWdzdEFBQWhCUXNnQlVVRVFBd0dDeUFLSUFkQkFuUnFJQVZCQkhZaUJrRUJhallDQUNBQ0lBVkJEM0VpQldzaEFpQUVJQVYwSVFRZ0NDQUdhd3dCQ3lBS0lBZEJBblJxUVFFMkFnQkJBQXNoQ0NBSFFRRnFJZ2NnQTBjTkFBc2dBU0FJUVFKMGFpQUtRVUJySUFOQkFuUnFLQUlBTmdJQUlBbEJmbW9oQlVFQklBaDBJUWNEUUNBQklBb2dCU0lEUVFKMElnVnFLQUlBSUFocUlnaEJBblJxSUFwQlFHc2dCV29vQWdBMkFnQWdBMEYvYWlFRlFRRWdDSFFnQjNJaEJ5QUREUUFMREFFTElBRWdDRUVDZEdvZ0NrRkFheUFEUVFKMGFpZ0NBRFlDQUVFQklBaDBJUWNMSUFCQklDQUNheEFMRFFBZ0IwRVFkQ0FKUVFSMGNpRUxDeUFLUVlBQmFpUUFJQXNMelM0QkMzOGpBRUVRYXlJTEpBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCdE1BQUtBSUFJZ1pCRUNBQVFRdHFRWGh4SUFCQkMwa2JJZ1ZCQTNZaUFIWWlBVUVEY1FSQUlBRkJmM05CQVhFZ0FHb2lBa0VEZENJRVFlVEFBR29vQWdBaUFVRUlhaUVBQWtBZ0FTZ0NDQ0lESUFSQjNNQUFhaUlFUmdSQVFiVEFBQ0FHUVg0Z0FuZHhOZ0lBREFFTFFjVEFBQ2dDQUJvZ0F5QUVOZ0lNSUFRZ0F6WUNDQXNnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1EQXNnQlVHOHdBQW9BZ0FpQ0UwTkFTQUJCRUFDUUVFQ0lBQjBJZ0pCQUNBQ2EzSWdBU0FBZEhFaUFFRUFJQUJyY1VGL2FpSUFJQUJCREhaQkVIRWlBSFlpQVVFRmRrRUljU0lDSUFCeUlBRWdBbllpQUVFQ2RrRUVjU0lCY2lBQUlBRjJJZ0JCQVhaQkFuRWlBWElnQUNBQmRpSUFRUUYyUVFGeElnRnlJQUFnQVhacUlnSkJBM1FpQTBIa3dBQnFLQUlBSWdFb0FnZ2lBQ0FEUWR6QUFHb2lBMFlFUUVHMHdBQWdCa0YrSUFKM2NTSUdOZ0lBREFFTFFjVEFBQ2dDQUJvZ0FDQUROZ0lNSUFNZ0FEWUNDQXNnQVVFSWFpRUFJQUVnQlVFRGNqWUNCQ0FCSUFWcUlnY2dBa0VEZENJQ0lBVnJJZ05CQVhJMkFnUWdBU0FDYWlBRE5nSUFJQWdFUUNBSVFRTjJJZ1JCQTNSQjNNQUFhaUVCUWNqQUFDZ0NBQ0VDQW44Z0JrRUJJQVIwSWdSeFJRUkFRYlRBQUNBRUlBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEJDQUJJQUkyQWdnZ0JDQUNOZ0lNSUFJZ0FUWUNEQ0FDSUFRMkFnZ0xRY2pBQUNBSE5nSUFRYnpBQUNBRE5nSUFEQXdMUWJqQUFDZ0NBQ0lLUlEwQklBcEJBQ0FLYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQWlBQWNpQUJJQUoySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJZ0VvQWdSQmVIRWdCV3NoQXlBQklRSURRQUpBSUFJb0FoQWlBRVVFUUNBQ0tBSVVJZ0JGRFFFTElBQW9BZ1JCZUhFZ0JXc2lBaUFESUFJZ0Ewa2lBaHNoQXlBQUlBRWdBaHNoQVNBQUlRSU1BUXNMSUFFb0FoZ2hDU0FCSUFFb0Fnd2lCRWNFUUVIRXdBQW9BZ0FnQVNnQ0NDSUFUUVJBSUFBb0Fnd2FDeUFBSUFRMkFnd2dCQ0FBTmdJSURBc0xJQUZCRkdvaUFpZ0NBQ0lBUlFSQUlBRW9BaEFpQUVVTkF5QUJRUkJxSVFJTEEwQWdBaUVISUFBaUJFRVVhaUlDS0FJQUlnQU5BQ0FFUVJCcUlRSWdCQ2dDRUNJQURRQUxJQWRCQURZQ0FBd0tDMEYvSVFVZ0FFRy9mMHNOQUNBQVFRdHFJZ0JCZUhFaEJVRzR3QUFvQWdBaUIwVU5BRUVBSUFWcklRSUNRQUpBQWtBQ2YwRUFJQUJCQ0hZaUFFVU5BQnBCSHlBRlFmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnTWdBMEdBZ0E5cVFSQjJRUUp4SWdOMFFROTJJQUFnQVhJZ0EzSnJJZ0JCQVhRZ0JTQUFRUlZxZGtFQmNYSkJIR29MSWdoQkFuUkI1TUlBYWlnQ0FDSURSUVJBUVFBaEFBd0JDeUFGUVFCQkdTQUlRUUYyYXlBSVFSOUdHM1FoQVVFQUlRQURRQUpBSUFNb0FnUkJlSEVnQldzaUJpQUNUdzBBSUFNaEJDQUdJZ0lOQUVFQUlRSWdBeUVBREFNTElBQWdBeWdDRkNJR0lBWWdBeUFCUVIxMlFRUnhhaWdDRUNJRFJoc2dBQ0FHR3lFQUlBRWdBMEVBUjNRaEFTQUREUUFMQ3lBQUlBUnlSUVJBUVFJZ0NIUWlBRUVBSUFCcmNpQUhjU0lBUlEwRElBQkJBQ0FBYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQXlBQWNpQUJJQU4ySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJRElBSkpJUUVnQXlBQ0lBRWJJUUlnQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBQ1FiekFBQ2dDQUNBRmEwOE5BQ0FFS0FJWUlRZ2dCQ0FFS0FJTUlnRkhCRUJCeE1BQUtBSUFJQVFvQWdnaUFFMEVRQ0FBS0FJTUdnc2dBQ0FCTmdJTUlBRWdBRFlDQ0F3SkN5QUVRUlJxSWdNb0FnQWlBRVVFUUNBRUtBSVFJZ0JGRFFNZ0JFRVFhaUVEQ3dOQUlBTWhCaUFBSWdGQkZHb2lBeWdDQUNJQURRQWdBVUVRYWlFRElBRW9BaEFpQUEwQUN5QUdRUUEyQWdBTUNBdEJ2TUFBS0FJQUlnRWdCVThFUUVISXdBQW9BZ0FoQUFKQUlBRWdCV3NpQWtFUVR3UkFRYnpBQUNBQ05nSUFRY2pBQUNBQUlBVnFJZ00yQWdBZ0F5QUNRUUZ5TmdJRUlBQWdBV29nQWpZQ0FDQUFJQVZCQTNJMkFnUU1BUXRCeU1BQVFRQTJBZ0JCdk1BQVFRQTJBZ0FnQUNBQlFRTnlOZ0lFSUFBZ0FXb2lBU0FCS0FJRVFRRnlOZ0lFQ3lBQVFRaHFJUUFNQ2d0QndNQUFLQUlBSWdFZ0JVc0VRRUhBd0FBZ0FTQUZheUlCTmdJQVFjekFBRUhNd0FBb0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQW9MUVFBaEFDQUZRUzlxSWdRQ2YwR014QUFvQWdBRVFFR1V4QUFvQWdBTUFRdEJtTVFBUW44M0FnQkJrTVFBUW9DZ2dJQ0FnQVEzQWdCQmpNUUFJQXRCREdwQmNIRkIyS3JWcWdWek5nSUFRYURFQUVFQU5nSUFRZkREQUVFQU5nSUFRWUFnQ3lJQ2FpSUdRUUFnQW1zaUIzRWlBaUFGVFEwSlFlekRBQ2dDQUNJREJFQkI1TU1BS0FJQUlnZ2dBbW9pQ1NBSVRRMEtJQWtnQTBzTkNndEI4TU1BTFFBQVFRUnhEUVFDUUFKQVFjekFBQ2dDQUNJREJFQkI5TU1BSVFBRFFDQUFLQUlBSWdnZ0EwMEVRQ0FJSUFBb0FnUnFJQU5MRFFNTElBQW9BZ2dpQUEwQUN3dEJBQkFUSWdGQmYwWU5CU0FDSVFaQmtNUUFLQUlBSWdCQmYyb2lBeUFCY1FSQUlBSWdBV3NnQVNBRGFrRUFJQUJyY1dvaEJnc2dCaUFGVFEwRklBWkIvdi8vL3dkTERRVkI3TU1BS0FJQUlnQUVRRUhrd3dBb0FnQWlBeUFHYWlJSElBTk5EUVlnQnlBQVN3MEdDeUFHRUJNaUFDQUJSdzBCREFjTElBWWdBV3NnQjNFaUJrSCsvLy8vQjBzTkJDQUdFQk1pQVNBQUtBSUFJQUFvQWdScVJnMERJQUVoQUFzQ1FDQUZRVEJxSUFaTkRRQWdBRUYvUmcwQVFaVEVBQ2dDQUNJQklBUWdCbXRxUVFBZ0FXdHhJZ0ZCL3YvLy93ZExCRUFnQUNFQkRBY0xJQUVRRTBGL1J3UkFJQUVnQm1vaEJpQUFJUUVNQnd0QkFDQUdheEFUR2d3RUN5QUFJZ0ZCZjBjTkJRd0RDMEVBSVFRTUJ3dEJBQ0VCREFVTElBRkJmMGNOQWd0QjhNTUFRZkREQUNnQ0FFRUVjallDQUFzZ0FrSCsvLy8vQjBzTkFTQUNFQk1pQVVFQUVCTWlBRThOQVNBQlFYOUdEUUVnQUVGL1JnMEJJQUFnQVdzaUJpQUZRU2hxVFEwQkMwSGt3d0JCNU1NQUtBSUFJQVpxSWdBMkFnQWdBRUhvd3dBb0FnQkxCRUJCNk1NQUlBQTJBZ0FMQWtBQ1FBSkFRY3pBQUNnQ0FDSURCRUJCOU1NQUlRQURRQ0FCSUFBb0FnQWlBaUFBS0FJRUlnUnFSZzBDSUFBb0FnZ2lBQTBBQ3d3Q0MwSEV3QUFvQWdBaUFFRUFJQUVnQUU4YlJRUkFRY1RBQUNBQk5nSUFDMEVBSVFCQitNTUFJQVkyQWdCQjlNTUFJQUUyQWdCQjFNQUFRWDgyQWdCQjJNQUFRWXpFQUNnQ0FEWUNBRUdBeEFCQkFEWUNBQU5BSUFCQkEzUWlBa0hrd0FCcUlBSkIzTUFBYWlJRE5nSUFJQUpCNk1BQWFpQUROZ0lBSUFCQkFXb2lBRUVnUncwQUMwSEF3QUFnQmtGWWFpSUFRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlDYXlJRE5nSUFRY3pBQUNBQklBSnFJZ0kyQWdBZ0FpQURRUUZ5TmdJRUlBQWdBV3BCS0RZQ0JFSFF3QUJCbk1RQUtBSUFOZ0lBREFJTElBQXRBQXhCQ0hFTkFDQUJJQU5ORFFBZ0FpQURTdzBBSUFBZ0JDQUdhallDQkVITXdBQWdBMEY0SUFOclFRZHhRUUFnQTBFSWFrRUhjUnNpQUdvaUFUWUNBRUhBd0FCQndNQUFLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRZERBQUVHY3hBQW9BZ0EyQWdBTUFRc2dBVUhFd0FBb0FnQWlCRWtFUUVIRXdBQWdBVFlDQUNBQklRUUxJQUVnQm1vaEFrSDB3d0FoQUFKQUFrQUNRQUpBQWtBQ1FBTkFJQUlnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEI5TU1BSVFBRFFDQUFLQUlBSWdJZ0EwMEVRQ0FDSUFBb0FnUnFJZ1FnQTBzTkF3c2dBQ2dDQ0NFQURBQUFDd0FMSUFBZ0FUWUNBQ0FBSUFBb0FnUWdCbW8yQWdRZ0FVRjRJQUZyUVFkeFFRQWdBVUVJYWtFSGNSdHFJZ2tnQlVFRGNqWUNCQ0FDUVhnZ0FtdEJCM0ZCQUNBQ1FRaHFRUWR4RzJvaUFTQUpheUFGYXlFQUlBVWdDV29oQnlBQklBTkdCRUJCek1BQUlBYzJBZ0JCd01BQVFjREFBQ2dDQUNBQWFpSUFOZ0lBSUFjZ0FFRUJjallDQkF3REN5QUJRY2pBQUNnQ0FFWUVRRUhJd0FBZ0J6WUNBRUc4d0FCQnZNQUFLQUlBSUFCcUlnQTJBZ0FnQnlBQVFRRnlOZ0lFSUFBZ0Iyb2dBRFlDQUF3REN5QUJLQUlFSWdKQkEzRkJBVVlFUUNBQ1FYaHhJUW9DUUNBQ1FmOEJUUVJBSUFFb0FnZ2lBeUFDUVFOMklnUkJBM1JCM01BQWFrY2FJQU1nQVNnQ0RDSUNSZ1JBUWJUQUFFRzB3QUFvQWdCQmZpQUVkM0UyQWdBTUFnc2dBeUFDTmdJTUlBSWdBellDQ0F3QkN5QUJLQUlZSVFnQ1FDQUJJQUVvQWd3aUJrY0VRQ0FFSUFFb0FnZ2lBazBFUUNBQ0tBSU1HZ3NnQWlBR05nSU1JQVlnQWpZQ0NBd0JDd0pBSUFGQkZHb2lBeWdDQUNJRkRRQWdBVUVRYWlJREtBSUFJZ1VOQUVFQUlRWU1BUXNEUUNBRElRSWdCU0lHUVJScUlnTW9BZ0FpQlEwQUlBWkJFR29oQXlBR0tBSVFJZ1VOQUFzZ0FrRUFOZ0lBQ3lBSVJRMEFBa0FnQVNBQktBSWNJZ0pCQW5SQjVNSUFhaUlES0FJQVJnUkFJQU1nQmpZQ0FDQUdEUUZCdU1BQVFiakFBQ2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQUZHRzJvZ0JqWUNBQ0FHUlEwQkN5QUdJQWcyQWhnZ0FTZ0NFQ0lDQkVBZ0JpQUNOZ0lRSUFJZ0JqWUNHQXNnQVNnQ0ZDSUNSUTBBSUFZZ0FqWUNGQ0FDSUFZMkFoZ0xJQUVnQ21vaEFTQUFJQXBxSVFBTElBRWdBU2dDQkVGK2NUWUNCQ0FISUFCQkFYSTJBZ1FnQUNBSGFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVFRGRpSUJRUU4wUWR6QUFHb2hBQUovUWJUQUFDZ0NBQ0lDUVFFZ0FYUWlBWEZGQkVCQnRNQUFJQUVnQW5JMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0J6WUNDQ0FCSUFjMkFnd2dCeUFBTmdJTUlBY2dBVFlDQ0F3REN5QUhBbjlCQUNBQVFRaDJJZ0ZGRFFBYVFSOGdBRUgvLy84SFN3MEFHaUFCSUFGQmdQNC9ha0VRZGtFSWNTSUJkQ0lDSUFKQmdPQWZha0VRZGtFRWNTSUNkQ0lESUFOQmdJQVBha0VRZGtFQ2NTSURkRUVQZGlBQklBSnlJQU55YXlJQlFRRjBJQUFnQVVFVmFuWkJBWEZ5UVJ4cUN5SUJOZ0ljSUFkQ0FEY0NFQ0FCUVFKMFFlVENBR29oQWdKQVFiakFBQ2dDQUNJRFFRRWdBWFFpQkhGRkJFQkJ1TUFBSUFNZ0JISTJBZ0FnQWlBSE5nSUFEQUVMSUFCQkFFRVpJQUZCQVhacklBRkJIMFliZENFRElBSW9BZ0FoQVFOQUlBRWlBaWdDQkVGNGNTQUFSZzBESUFOQkhYWWhBU0FEUVFGMElRTWdBaUFCUVFSeGFpSUVLQUlRSWdFTkFBc2dCQ0FITmdJUUN5QUhJQUkyQWhnZ0J5QUhOZ0lNSUFjZ0J6WUNDQXdDQzBIQXdBQWdCa0ZZYWlJQVFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEd5SUNheUlITmdJQVFjekFBQ0FCSUFKcUlnSTJBZ0FnQWlBSFFRRnlOZ0lFSUFBZ0FXcEJLRFlDQkVIUXdBQkJuTVFBS0FJQU5nSUFJQU1nQkVFbklBUnJRUWR4UVFBZ0JFRlpha0VIY1J0cVFWRnFJZ0FnQUNBRFFSQnFTUnNpQWtFYk5nSUVJQUpCL01NQUtRSUFOd0lRSUFKQjlNTUFLUUlBTndJSVFmekRBQ0FDUVFocU5nSUFRZmpEQUNBR05nSUFRZlREQUNBQk5nSUFRWURFQUVFQU5nSUFJQUpCR0dvaEFBTkFJQUJCQnpZQ0JDQUFRUWhxSVFFZ0FFRUVhaUVBSUFRZ0FVc05BQXNnQWlBRFJnMERJQUlnQWlnQ0JFRitjVFlDQkNBRElBSWdBMnNpQkVFQmNqWUNCQ0FDSUFRMkFnQWdCRUgvQVUwRVFDQUVRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQVFMSUFOQ0FEY0NFQ0FEQW45QkFDQUVRUWgySWdCRkRRQWFRUjhnQkVILy8vOEhTdzBBR2lBQUlBQkJnUDQvYWtFUWRrRUljU0lBZENJQklBRkJnT0FmYWtFUWRrRUVjU0lCZENJQ0lBSkJnSUFQYWtFUWRrRUNjU0lDZEVFUGRpQUFJQUZ5SUFKeWF5SUFRUUYwSUFRZ0FFRVZhblpCQVhGeVFSeHFDeUlBTmdJY0lBQkJBblJCNU1JQWFpRUJBa0JCdU1BQUtBSUFJZ0pCQVNBQWRDSUdjVVVFUUVHNHdBQWdBaUFHY2pZQ0FDQUJJQU0yQWdBZ0F5QUJOZ0lZREFFTElBUkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQUVvQWdBaEFRTkFJQUVpQWlnQ0JFRjRjU0FFUmcwRUlBQkJIWFloQVNBQVFRRjBJUUFnQWlBQlFRUnhhaUlHS0FJUUlnRU5BQXNnQmlBRE5nSVFJQU1nQWpZQ0dBc2dBeUFETmdJTUlBTWdBellDQ0F3REN5QUNLQUlJSWdBZ0J6WUNEQ0FDSUFjMkFnZ2dCMEVBTmdJWUlBY2dBallDRENBSElBQTJBZ2dMSUFsQkNHb2hBQXdGQ3lBQ0tBSUlJZ0FnQXpZQ0RDQUNJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FqWUNEQ0FESUFBMkFnZ0xRY0RBQUNnQ0FDSUFJQVZORFFCQndNQUFJQUFnQldzaUFUWUNBRUhNd0FCQnpNQUFLQUlBSWdBZ0JXb2lBallDQUNBQ0lBRkJBWEkyQWdRZ0FDQUZRUU55TmdJRUlBQkJDR29oQUF3REMwR3d3QUJCTURZQ0FFRUFJUUFNQWdzQ1FDQUlSUTBBQWtBZ0JDZ0NIQ0lBUVFKMFFlVENBR29pQXlnQ0FDQUVSZ1JBSUFNZ0FUWUNBQ0FCRFFGQnVNQUFJQWRCZmlBQWQzRWlCellDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQVJHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQWcyQWhnZ0JDZ0NFQ0lBQkVBZ0FTQUFOZ0lRSUFBZ0FUWUNHQXNnQkNnQ0ZDSUFSUTBBSUFFZ0FEWUNGQ0FBSUFFMkFoZ0xBa0FnQWtFUFRRUkFJQVFnQWlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnTWdBa0VCY2pZQ0JDQUNJQU5xSUFJMkFnQWdBa0gvQVUwRVFDQUNRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQUVMSUFNQ2YwRUFJQUpCQ0hZaUFFVU5BQnBCSHlBQ1FmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnVWdCVUdBZ0E5cVFSQjJRUUp4SWdWMFFROTJJQUFnQVhJZ0JYSnJJZ0JCQVhRZ0FpQUFRUlZxZGtFQmNYSkJIR29MSWdBMkFod2dBMElBTndJUUlBQkJBblJCNU1JQWFpRUJBa0FDUUNBSFFRRWdBSFFpQlhGRkJFQkJ1TUFBSUFVZ0IzSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBRW9BZ0FoQlFOQUlBVWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCU0FBUVFGMElRQWdBU0FGUVFSeGFpSUdLQUlRSWdVTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUFsRkRRQUNRQ0FCS0FJY0lnQkJBblJCNU1JQWFpSUNLQUlBSUFGR0JFQWdBaUFFTmdJQUlBUU5BVUc0d0FBZ0NrRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0JVRURjallDQkNBQklBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQ0FSQUlBaEJBM1lpQlVFRGRFSGN3QUJxSVFCQnlNQUFLQUlBSVFJQ2YwRUJJQVYwSWdVZ0JuRkZCRUJCdE1BQUlBVWdCbkkyQWdBZ0FBd0JDeUFBS0FJSUN5RUZJQUFnQWpZQ0NDQUZJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0JUWUNDQXRCeU1BQUlBUTJBZ0JCdk1BQUlBTTJBZ0FMSUFGQkNHb2hBQXNnQzBFUWFpUUFJQUFMUkFFQmZ5QUFJQUFvQWhBZ0FXb2lBVFlDRUNBQUlBRkJCM0UyQWdoQmZ5RUNJQUVnQUNnQ0RFRURkRTBFZnlBQUlBQW9BZ0FnQVVFRGRtbzJBZ1JCQUFWQmZ3c0w1UWNCQ0g4Z0FDQUVRUUFnQm1zZ0FpQUNJQVpxUVFCSUd5SUNJQUlnQkVvYklnSnFJQUFnQWtFQVNoc2lDU0FGUVFBZ0Iyc2dBeUFESUFkcVFRQklHeUlBSUFBZ0JVb2JJZ0FnQkd4cUlBa2dBRUVBU2hzaEF5QUhRUUFnQUdzZ0FFRWZkWEVpQ1dzZ0FDQUhhaUlBSUFWcklneEJBQ0FBSUFWS0d5SVBheUVMSUFaQkFDQUNheUlPSUFKQkgzVnhJZzFySUFJZ0Jtb2lBQ0FFYTBFQUlBQWdCRW9pQlJzaUNtc2hBQUpBSUFKQkFFZ2dCWElpRUVVRVFDQUpCRUFEUUNBQklBTWdBQkFWSUFocUlRRWdDVUYvYWlJSkRRQUxDeUFMUlEwQkEwQWdBU0FESUFBUUZTQUlhaUVCSUFNZ0JHb2hBeUFMUVg5cUlnc05BQXNNQVFzQ1FDQUpSUTBBSUExRkJFQURRQ0FBSVFjZ0FTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQVNBSWFpRUJJQWxCZjJvaUNRMEFEQUlBQ3dBTElBRWdEbW9oQmdOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0JpRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQmlBSWFpRUdJQUVnQ0dvaEFTQUpRWDlxSWdrTkFBc0xJQXRGRFFBZ0RVVUVRQU5BSUFBaEJ5QUJJUUlnQXlFRklBQUVRQU5BSUFJZ0JTMEFBRG9BQUNBQ1FRRnFJUUlnQlVFQmFpRUZJQWRCZjJvaUJ3MEFDd3NnQ2dSQUlBSWdCVUYvYWkwQUFDQUtFQWNhQ3lBQklBaHFJUUVnQXlBRWFpRURJQXRCZjJvaUN3MEFEQUlBQ3dBTElBRWdEbW9oQ1FOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0NTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQ0NBSmFpRUpJQUVnQ0dvaEFTQURJQVJxSVFNZ0MwRi9haUlMRFFBTEN3SkFJQTlGRFFBZ0F5QUVheUVESUJCRkJFQURRQ0FCSUFNZ0FCQVZJQWhxSVFFZ0RFRi9haUlNRFFBTUFnQUxBQXNnRFVVRVFBTkFJQU1oQWlBQklRVWdBQ0VISUFBRVFBTkFJQVVnQWkwQUFEb0FBQ0FGUVFGcUlRVWdBa0VCYWlFQ0lBZEJmMm9pQncwQUN3c2dDZ1JBSUFVZ0FrRi9haTBBQUNBS0VBY2FDeUFCSUFocUlRRWdERUYvYWlJTURRQU1BZ0FMQUFzZ0FTQU9haUVKQTBBZ0FTQURMUUFBSUEwUUJ5RUJJQUFoQnlBSklRSWdBeUVGSUFBRVFBTkFJQUlnQlMwQUFEb0FBQ0FDUVFGcUlRSWdCVUVCYWlFRklBZEJmMm9pQncwQUN3c2dDZ1JBSUFJZ0JVRi9haTBBQUNBS0VBY2FDeUFJSUFscUlRa2dBU0FJYWlFQklBeEJmMm9pREEwQUN3c0w5QUlCQTM4Z0FVRURkRUh3Tm1vaUF5Z0NBQ0VGSUFNdEFBUWhBeUFCUVFOMFFiQTFhaUlCTFFBRUlRUUNRQ0FCS0FJQVFRUkdCRUFnQWlBRVFRRjBhaTRCQUNFQklBVkJCRVlFUUNBQklBSWdBMEVCZEdvdUFRQnFRUUZxUVFGMUR3c0NmeUFBS0FMTUFTSUNCRUFnQUNnQ0JDQUNLQUlFUmd3QkMwRUFDMFVOQVNBQklBQW9Bc3dCSUFOQkFYUnFMZ0VjYWtFQmFrRUJkUThMSUFWQkJFWUVRQ0FDSUFOQkFYUnFMZ0VBSVFFQ2Z5QUFLQUxJQVNJQ0JFQWdBQ2dDQkNBQ0tBSUVSZ3dCQzBFQUMwVU5BU0FCSUFBb0FzZ0JJQVJCQVhScUxnRWNha0VCYWtFQmRROExBbjhDZnlBQUtBTElBU0lCQkVBZ0FDZ0NCQ0FCS0FJRVJnd0JDMEVBQzBVRVFFRUFJUUpCQUF3QkMwRUJJUUlnQUNnQ3lBRWdCRUVCZEdvdUFSd0xJUUVDZnlBQUtBTE1BU0lFQkVBZ0FDZ0NCQ0FFS0FJRVJnd0JDMEVBQzBVTkFDQUFLQUxNQVNBRFFRRjBhaTRCSENFQUlBSkZCRUFnQUE4TElBQWdBV3BCQVdwQkFYVWhBUXNnQVF1SkJ3RUhmeUFESUFWcUlnMGdBUzRCQUNJTVFRSjFhaUVESUFRZ0Jtb2lEaUFCTGdFQ0lnOUJBblZxSVFRZ0FpZ0NDRUVFZENFSklBSW9BZ1JCQkhRaENpQUFJQVpCQkhScUlBVnFJUXNDUUNBTVFRTnhRUVIwSUE5QkEzRkJBblJ5UWRBN2FpZ0NBQ0lNUVE1TkJFQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnREVFQmF3NE9BUUlEQkFVR0J3Z0pDZ3NNRFE0QUN5QUNLQUlBSUFzZ0F5QUVJQW9nQ1NBSElBaEJFQkFNREE4TElBSW9BZ0FnQ3lBRElBUkJmbW9nQ2lBSklBY2dDRUVBRUNRTURnc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJRUVjTURRc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJUVFFUUpBd01DeUFDS0FJQUlBc2dBMEYrYWlBRUlBb2dDU0FISUFoQkFCQWpEQXNMSUFJb0FnQWdDeUFEUVg1cUlBUkJmbW9nQ2lBSklBY2dDRUVBRUJvTUNnc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRQVFJUXdKQ3lBQ0tBSUFJQXNnQTBGK2FpQUVRWDVxSUFvZ0NTQUhJQWhCQWhBYURBZ0xJQUlvQWdBZ0N5QURRWDVxSUFRZ0NpQUpJQWNnQ0JCR0RBY0xJQUlvQWdBZ0N5QURRWDVxSUFSQmZtb2dDaUFKSUFjZ0NFRUFFQ0lNQmdzZ0FpZ0NBQ0FMSUFOQmZtb2dCRUYrYWlBS0lBa2dCeUFJRUVVTUJRc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRRVFJZ3dFQ3lBQ0tBSUFJQXNnQTBGK2FpQUVJQW9nQ1NBSElBaEJBUkFqREFNTElBSW9BZ0FnQ3lBRFFYNXFJQVJCZm1vZ0NpQUpJQWNnQ0VFQkVCb01BZ3NnQWlnQ0FDQUxJQU5CZm1vZ0JFRithaUFLSUFrZ0J5QUlRUUVRSVF3QkN5QUNLQUlBSUFzZ0EwRithaUFFUVg1cUlBb2dDU0FISUFoQkF4QWFDeUFOUVFGMklBRXVBUUFpQ1VFRGRXb2hBeUFPUVFGMklBRXVBUUlpQVVFRGRXb2hCQ0FDS0FJQUlBSW9BZ1FpQ2lBQ0tBSUlJZ3RzUVFoMGFpRUNJQUFnQmtFQ2RFRjRjV29nQlVFQmRtcEJnQUpxSVFVZ0NFRUJkaUVHSUFkQkFYWWhCeUFCUVFkeElRZ2dDMEVEZENFQUlBcEJBM1FoQVFKQUlBbEJCM0VpQ1VVTkFDQUlSUTBBSUFJZ0JTQURJQVFnQVNBQUlBa2dDQ0FISUFZUVNBOExJQWtFUUNBQ0lBVWdBeUFFSUFFZ0FDQUpJQWNnQmhCTER3c2dDQVJBSUFJZ0JTQURJQVFnQVNBQUlBZ2dCeUFHRUVvUEN5QUNJQVVnQXlBRUlBRWdBQ0FISUFaQkNCQU1JQUlnQUNBQmJHb2dCVUZBYXlBRElBUWdBU0FBSUFjZ0JrRUlFQXdMeHdFQkJIOGdBQ2dDQkNFQ0FrQWdBQ2dDREVFRGRDQUFLQUlRYXlJRFFTQk9CRUFnQWlnQUFDSUJRUmgwSUFGQkNIUkJnSUQ4QjNGeUlBRkJDSFpCZ1A0RGNTQUJRUmgyY25JaEFTQUFLQUlJSWdCRkRRRWdBU0FBZENBQ0xRQUVRUWdnQUd0MmNnOExJQU5CQVVnRVFFRUFEd3NnQWkwQUFDQUFLQUlJSWdCQkdHb2lCSFFoQVNBQUlBTnFRWGhxSWdCQkFVZ05BQU5BSUFJdEFBRWdCRUY0YWlJRWRDQUJjaUVCSUFCQkNFb2hBeUFDUVFGcUlRSWdBRUY0YWlFQUlBTU5BQXNMSUFFTGpBUUJCMzhDUUNBQVFYOXFJZ2d0QUFBaUJTQUFMUUFBSWdacklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJRVR3MEFJQUJCZm1vdEFBQWlCQ0FGYXlJSElBZEJIM1VpQjJvZ0IzTWdBaWdDQ0NJSlR3MEFJQUF0QUFFaUJ5QUdheUlLSUFwQkgzVWlDbW9nQ25NZ0NVOE5BQ0FCUVFOTkJFQWdDQ0FGSUFFZ0FpZ0NBR3BCZjJvdEFBQWlDRUYvY3lJSklBaEJBV29pQ0NBR0lBVnJRUUowSUFkcklBUnFRUVJxUVFOMUlnVWdCU0FJU2hzZ0JTQUpTQnNpQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFGYTBHd0xtb3RBQUE2QUFBTUFRc2dDQ0FGSUFkcUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFBZ0JpQUhRUUYwYWlBRWFrRUNha0VDZGpvQUFBc0NRQ0FBSUFOcUlnQkJmMm9pQnkwQUFDSURJQUF0QUFBaUJXc2lCaUFHUVI5MUlnWnFJQVp6SUFJb0FnUlBEUUFnQUVGK2FpMEFBQ0lHSUFOcklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJSUlnaFBEUUFnQUMwQUFTSUVJQVZySWdrZ0NVRWZkU0lKYWlBSmN5QUlUdzBBSUFGQkEwMEVRQ0FISUFFZ0FpZ0NBR3BCZjJvdEFBQWlBVUYvY3lJQ0lBRkJBV29pQnlBRklBTnJRUUowSUFScklBWnFRUVJxUVFOMUlnRWdBU0FIU2hzZ0FTQUNTQnNpQVNBRGFrR3dMbW90QUFBNkFBQWdBQ0FGSUFGclFiQXVhaTBBQURvQUFBOExJQWNnQXlBRWFpQUdRUUYwYWtFQ2FrRUNkam9BQUNBQUlBVWdCRUVCZEdvZ0JtcEJBbXBCQW5ZNkFBQUxDMGNBQWtBZ0FVRUVUUVJBQWtBQ1FBSkFBa0FnQVVFQmF3NEVBUUlEQlFBTElBQW9Bc2dCRHdzZ0FDZ0N6QUVQQ3lBQUtBTFFBUThMSUFBb0F0UUJEd3RCQUNFQUN5QUFDNlVEQVF0L1FRQWdBMnNpQzBFQmRDRUVJQUVnQWlnQ0FHcEJmMm90QUFBaUFVRUJhaUVKSUFGQmYzTWhDZ0pBSUFBZ0Eyc2lCeTBBQUNJRklBQXRBQUFpQm1zaUFTQUJRUjkxSWdGcUlBRnpJQUlvQWdRaUFVOE5BQ0FBSUFScUxRQUFJZzBnQldzaUNDQUlRUjkxSWdocUlBaHpJQUlvQWdnaUNFOE5BQ0FBSUFOcUxRQUFJZzRnQm1zaURDQU1RUjkxSWd4cUlBeHpJQWhQRFFBZ0J5QUtJQWtnQmlBRmEwRUNkQ0FPYXlBTmFrRUVha0VEZFNJQklBRWdDVW9iSUFFZ0NrZ2JJZ0VnQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFCYTBHd0xtb3RBQUE2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJBV29pQlNBTGFpSUxMUUFBSWdZZ0FDMEFBU0lBYXlJSElBZEJIM1VpQjJvZ0IzTWdBVThOQUNBRUlBVnFMUUFBSWdFZ0Jtc2lCQ0FFUVI5MUlnUnFJQVJ6SUFJb0FnZ2lBazhOQUNBRElBVnFMUUFBSWdNZ0FHc2lCQ0FFUVI5MUlnUnFJQVJ6SUFKUERRQWdDeUFLSUFrZ0FDQUdhMEVDZENBRGF5QUJha0VFYWtFRGRTSUJJQUVnQ1VvYklBRWdDa2diSWdFZ0JtcEJzQzVxTFFBQU9nQUFJQVVnQUNBQmEwR3dMbW90QUFBNkFBQUxDMFFCQW44L0FDRUJBa0JCc01RQUtBSUFJZ0lnQUVFRGFrRjhjV29pQUNBQlFSQjBUUTBBSUFBUUFRMEFRYkRBQUVFd05nSUFRWDhQQzBHd3hBQWdBRFlDQUNBQ0N6UUJBWDhDUUNBQlFSQkxEUUFnQUNnQ0JDQUJRUUowYWlnQ0FDSUFSUTBBSUFBb0FoUkJBa2tOQUNBQUtBSUFJUUlMSUFJTGdnUUJBMzhnQWtHQUJFOEVRQ0FBSUFFZ0FoQUFHaUFBRHdzZ0FDQUNhaUVEQWtBZ0FDQUJjMEVEY1VVRVFBSkFJQUpCQVVnRVFDQUFJUUlNQVFzZ0FFRURjVVVFUUNBQUlRSU1BUXNnQUNFQ0EwQWdBaUFCTFFBQU9nQUFJQUZCQVdvaEFTQUNRUUZxSWdJZ0EwOE5BU0FDUVFOeERRQUxDd0pBSUFOQmZIRWlCRUhBQUVrTkFDQUNJQVJCUUdvaUJVc05BQU5BSUFJZ0FTZ0NBRFlDQUNBQ0lBRW9BZ1EyQWdRZ0FpQUJLQUlJTmdJSUlBSWdBU2dDRERZQ0RDQUNJQUVvQWhBMkFoQWdBaUFCS0FJVU5nSVVJQUlnQVNnQ0dEWUNHQ0FDSUFFb0FodzJBaHdnQWlBQktBSWdOZ0lnSUFJZ0FTZ0NKRFlDSkNBQ0lBRW9BaWcyQWlnZ0FpQUJLQUlzTmdJc0lBSWdBU2dDTURZQ01DQUNJQUVvQWpRMkFqUWdBaUFCS0FJNE5nSTRJQUlnQVNnQ1BEWUNQQ0FCUVVCcklRRWdBa0ZBYXlJQ0lBVk5EUUFMQ3lBQ0lBUlBEUUVEUUNBQ0lBRW9BZ0EyQWdBZ0FVRUVhaUVCSUFKQkJHb2lBaUFFU1EwQUN3d0JDeUFEUVFSSkJFQWdBQ0VDREFFTElBTkJmR29pQkNBQVNRUkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FpQUJMUUFCT2dBQklBSWdBUzBBQWpvQUFpQUNJQUV0QUFNNkFBTWdBVUVFYWlFQklBSkJCR29pQWlBRVRRMEFDd3NnQWlBRFNRUkFBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSWdBMGNOQUFzTElBQUx3UmdCSUg4akFFSFFBMnNpQmlRQUlBRW9BZ2doRkNBQklBRW9BZ1FpQ2lBQ2JDSWFJQU5xRUIwZ0FTZ0NBQ0VKSUFCQkFEWUNDQ0FBUWlnM0FoUWdBRUlBTndJTUlBQkJCallDQUNBRFFRUjBJUWNDUUFKQUFrQWdCRUYrYWlJRVFRVkxEUUFDUUNBRVFRRnJEZ1FCQVFFQkFBc01BUXNnQmtFQU5nSU1JQVlnRkRZQ0dDQUdJQW8yQWhRZ0JpQUZOZ0lRSUFVRVFDQUdRZEFBYWlBR1FReHFJQVpCRUdvZ0J5QUNRUVIwUVFCQkFFRVFRUkFRRGd3Q0N3c2dCa0hRQUdwQkFFR0FBeEFIR2lBSklCcEJDSFJxSUFkcUlRd2dCa0lBTndOSUlBWkJRR3RDQURjREFDQUdRZ0EzQXpnZ0JrSUFOd013SUFaQ0FEY0RLQ0FHUWdBM0F5QWdCa0lBTndNWUlBWkNBRGNERUVFQUlRa0NmMEVBSUFKRkRRQWFRUUFnQUVFQUlBcHJRZGdCYkdvb0FzUUJSUTBBR2lBR0lBd2dDa0VFZEdzaUJDMEFCU0FFTFFBRWFpQUVMUUFHYWlBRUxRQUhhaUlYSUFRdEFBTWdCQzBBQWlBRUxRQUJJQVF0QUFCcWFtb2lGbW9pQlNBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSWFtcHFJaEpySUFRdEFBOGdCQzBBRGlBRUxRQU5JQVF0QUF4cWFtb2lFMnNpQ0RZQ0ZDQUdJQVVnRW1vZ0Uyb2lDVFlDRUVFQkN5RUZBbjhDUUNBQ0lCUkJmMnBIQkVBZ0FDQUtRZGdCYkdvb0FzUUJEUUVMSUFVTUFRc2dCaUFNSUFwQkNIUnFJZ0l0QUFVZ0FpMEFCR29nQWkwQUJtb2dBaTBBQjJvaUhpQUNMUUFESUFJdEFBSWdBaTBBQVNBQ0xRQUFhbXBxSWg5cUlnUWdBaTBBQ3lBQ0xRQUtJQUl0QUFrZ0FpMEFDR3BxYWlJWWF5QUNMUUFQSUFJdEFBNGdBaTBBRFNBQ0xRQU1hbXBxSWhscklBaHFJZ2cyQWhRZ0JpQUVJQmhxSUFscUlCbHFJZ2syQWhCQkFTRVFJQVZCQVdvTElRZEJBQ0VFQW44Q1FDQURSUTBBSUFCQmJHb29BZ0JGRFFBZ0JpQU1RWDlxSWdJZ0NrRUdkQ0lPYWlJRUlBcEJCSFFpQzJvdEFBQWdCQzBBQUdvZ0JDQUtRUVYwSWc5cUxRQUFhaUFFSUFwQk1Hd2lEV290QUFCcUloc2dBaUFOYWkwQUFDQUNJQTlxTFFBQUlBSWdDMm90QUFBZ0FpMEFBR3BxYWlJY2FpSVJJQVFnRG1vaUFpQUxhaTBBQUNBQ0xRQUFhaUFDSUE5cUxRQUFhaUFDSUExcUxRQUFhaUlWYXlBQ0lBNXFJZ0lnQzJvdEFBQWdBaTBBQUdvZ0FpQVBhaTBBQUdvZ0FpQU5haTBBQUdvaUQyc2lCRFlDSUNBR0lCRWdGV29nQ1dvZ0Qyb2lDVFlDRUNBSFFRRnFJUXRCQVF3QkN5QUhJUXRCQUFzaEFnSkFBa0FDUUFKQUFrQUNRQ0FESUFwQmYycEhCRUFnQUNnQ25BTU5BUXRCQUNFT0lBSkJBRWNoRVNBSERRRU1BZ3NnQmlBRUlBeEJFR29pQkNBS1FRWjBJaDFxSWdBZ0NrRUVkQ0lOYWkwQUFDQUFMUUFBYWlBQUlBcEJCWFFpRG1vdEFBQnFJQUFnQ2tFd2JDSVJhaTBBQUdvaUlDQUVJQkZxTFFBQUlBUWdEbW90QUFBZ0JDQU5haTBBQUNBTUxRQVFhbXBxSWlGcUlpSWdBQ0FkYWlJQUlBMXFMUUFBSUFBdEFBQnFJQUFnRG1vdEFBQnFJQUFnRVdvdEFBQnFJZ3hySUFBZ0hXb2lBQ0FOYWkwQUFDQUFMUUFBYWlBQUlBNXFMUUFBYWlBQUlCRnFMUUFBYWlJTmEyb2lCRFlDSUNBR0lBd2dJbW9nQ1dvZ0RXb2lDVFlDRUNBQ1FRQkhJUkZCQVNFT0lBSkJBV29oQUNBTFFRRnFJUXNDUUNBSERRQWdBa1VOQUNBR0lCc2dIR29nRldvZ0Qyb2dJV3NnSUdzZ0RHc2dEV3RCQlhVaUNEWUNGQXdEQ3lBSFJRMENJQUFoQWdzZ0JpQUlJQWRCQTJwMUlnZzJBaFFMQWtBZ0VFVU5BQ0FGUlEwQUlBSU5BQ0FHSUJZZ0Yyb2dFbW9nRTJvZ0dXc2dHR3NnSG1zZ0gydEJCWFVpQkRZQ0lFRUJJUkJCQVNFTkRBTUxJQkJCQUVjaEVDQUZRUUJISVEwZ0FrVU5BZ3dCQ3lBUVFRQkhJUkFnQlVFQVJ5RU5JQUFoQWdzZ0JpQUVJQUpCQTJwMUlnUTJBaUFMSUFZQ2Z5QUxRWDlxSWdCQkFrMEVRQUpBQWtBQ1FDQUFRUUZyRGdJQkFnQUxJQWxCQkhZTUF3c2dDVUVGZGd3Q0N5QUpRUlZzUVFwMURBRUxJQWxCQm5ZTElnQTJBaEFDUUNBRUlBaHlSUVJBSUFZZ0FEWUNTQ0FHSUFBMkFrd2dCaUFBTmdKRUlBWWdBRFlDUUNBR0lBQTJBandnQmlBQU5nSTRJQVlnQURZQ05DQUdJQUEyQWpBZ0JpQUFOZ0lzSUFZZ0FEWUNLQ0FHSUFBMkFpUWdCaUFBTmdJZ0lBWWdBRFlDSENBR0lBQTJBaGdnQmlBQU5nSVVEQUVMSUFZZ0FDQUlhaUlGSUFSck5nSkFJQVlnQlNBRVFRRjFJZ0pyTmdJd0lBWWdBaUFGYWpZQ0lDQUdJQVFnQldvMkFoQWdCaUFBSUFocklnVWdCR3MyQWt3Z0JpQUZJQUpyTmdJOElBWWdBaUFGYWpZQ0xDQUdJQVFnQldvMkFod2dCaUFBSUFoQkFYVWlCMm9pQlNBRWF6WUNSQ0FHSUFVZ0FtczJBalFnQmlBQ0lBVnFOZ0lrSUFZZ0JDQUZhallDRkNBR0lBQWdCMnNpQUNBRWF6WUNTQ0FHSUFBZ0FtczJBamdnQmlBQUlBSnFOZ0lvSUFZZ0FDQUVhallDR0FzZ0JrSFFBR29oQ0NBR1FSQnFJUUJCQUNFRUEwQWdDQ0FBSUFSQkRIRnFLQUlBSWdKQi93RWdBa0gvQVVnYklnSkJBQ0FDUVFCS0d6b0FBQ0FBSUFCQkVHb2dCRUVCYWlJRVFUOXhHeUVBSUFoQkFXb2hDQ0FFUVlBQ1J3MEFDeUFCS0FJQUlBb2dGR3dpQUVFSWRHb2dHa0VHZEdvZ0EwRURkR29oQXlBS1FRUjBJUXdnQ2tFR2RDRWFJQUJCQm5RaEhVRUFJQXBCQTNRaUMyc2hJQ0FHUWRBQ2FpRWhJQVpCUUdzaElrRUFJUVVEUUNBR1FnQTNBMGdnSWtJQU53TUFJQVpDQURjRE9DQUdRZ0EzQXpBZ0JrSUFOd01vSUFaQ0FEY0RJQ0FHUWdBM0F4Z2dCa0lBTndNUVFRQWhDRUVBSVFSQkFDRUpJQTBFUUNBR0lBTWdJR29pQUMwQUF5QUFMUUFDYWlJWElBQXRBQUVnQUMwQUFHb2lGbW9pQWlBQUxRQUZJQUF0QUFScUloSnJJQUF0QUFjZ0FDMEFCbW9pRTJzaUNEWUNGQ0FHSUFJZ0Vtb2dFMm9pQkRZQ0VFRUJJUWtMSUJBRVFDQUdJQU1nR21vaUFDMEFBeUFBTFFBQ2FpSWVJQUF0QUFFZ0FDMEFBR29pSDJvaUFpQUFMUUFGSUFBdEFBUnFJaGhySUFBdEFBY2dBQzBBQm1vaUdXc2dDR29pQ0RZQ0ZDQUdJQUlnR0dvZ0JHb2dHV29pQkRZQ0VDQUpRUUZxSVFrTFFRQWhBQUovSUJGRkJFQWdDU0VIUVFBTUFRc2dCaUFEUVg5cUlnQWdER29pQWlBTGFpMEFBQ0FDTFFBQWFpSWJJQUFnQzJvdEFBQWdBQzBBQUdvaUhHb2lCeUFDSUF4cUlnQWdDMm90QUFBZ0FDMEFBR29pRldzZ0FDQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlnOXJJZ0EyQWlBZ0JpQUhJQlZxSUFScUlBOXFJZ1EyQWhBZ0NVRUJhaUVIUVFFTElRSUNRQ0FHQW44Q1FBSkFBa0FnRGtVRVFDQUpEUUVNQWdzZ0JpQUFJQU5CQ0dvaUNpQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlpTWdDaUFMYWkwQUFDQURMUUFJYWlJa2FpSWxJQUFnREdvaUFDQUxhaTBBQUNBQUxRQUFhaUlLYXlBQUlBeHFJZ0FnQzJvdEFBQWdBQzBBQUdvaUZHdHFJZ0EyQWlBZ0JpQUtJQ1ZxSUFScUlCUnFJZ1EyQWhBZ0FrRUJhaUVDSUFkQkFXb2hCeUFSUVFGeklBbEJBRWR5UlFSQUlBWWdHeUFjYWlBVmFpQVBhaUFrYXlBamF5QUtheUFVYTBFRWRTSUlOZ0lVREFNTElBbEZEUUlMSUFZZ0NDQUpRUUpxZFNJSU5nSVVDeUFXSUJkcUlCSnFJQk5xSUJscklCaHJJQjVySUI5clFRUjFJQkFnRFNBQ1JYRnhRUUZHRFFFYUlBSkZEUUlMSUFBZ0FrRUNhblVMSWdBMkFpQUxJQVlDZnlBSFFYOXFJZ0pCQWswRVFBSkFBa0FDUUNBQ1FRRnJEZ0lCQWdBTElBUkJBM1lNQXdzZ0JFRUVkZ3dDQ3lBRVFSVnNRUWwyREFFTElBUkJCWFlMSWdRMkFoQUNRQ0FBSUFoeVJRUkFJQVlnQkRZQ1NDQUdJQVEyQWt3Z0JpQUVOZ0pFSUFZZ0JEWUNRQ0FHSUFRMkFqd2dCaUFFTmdJNElBWWdCRFlDTkNBR0lBUTJBakFnQmlBRU5nSXNJQVlnQkRZQ0tDQUdJQVEyQWlRZ0JpQUVOZ0lnSUFZZ0JEWUNIQ0FHSUFRMkFoZ2dCaUFFTmdJVURBRUxJQVlnQkNBSWFpSUhJQUJyTmdKQUlBWWdCeUFBUVFGMUlnSnJOZ0l3SUFZZ0FpQUhhallDSUNBR0lBQWdCMm8yQWhBZ0JpQUVJQWhySWdjZ0FHczJBa3dnQmlBSElBSnJOZ0k4SUFZZ0FpQUhhallDTENBR0lBQWdCMm8yQWh3Z0JpQUVJQWhCQVhVaUNXb2lCeUFBYXpZQ1JDQUdJQWNnQW1zMkFqUWdCaUFDSUFkcU5nSWtJQVlnQUNBSGFqWUNGQ0FHSUFRZ0NXc2lCQ0FBYXpZQ1NDQUdJQVFnQW1zMkFqZ2dCaUFDSUFScU5nSW9JQVlnQUNBRWFqWUNHQXNnSVNBRlFRWjBhaUVJUVFBaEFDQUdRUkJxSVFRRFFDQUlJQVFnQUVFQmRFRU1jV29vQWdBaUFrSC9BU0FDUWY4QlNCc2lBa0VBSUFKQkFFb2JPZ0FBSUFRZ0JFRVFhaUFBUVFGcUlnQkJEM0ViSVFRZ0NFRUJhaUVJSUFCQndBQkhEUUFMSUFNZ0hXb2hBeUFGUVFGcUlnVkJBa2NOQUFzTElBRWdCa0hRQUdvUUd5QUdRZEFEYWlRQUN6WUFJQUlFUUNBQUlBRVFBZzhMUVFFaEFpQUJJQUJCQVJBRElnQTJBZ0FnQUVGL1J3Ui9JQUVnQUVFQmN6WUNBRUVBQlVFQkN3dk1Bd0VTZnlBRFFRRjBJUThnQTBGOWJDRVFRUUFnQTJzaUVVRUJkQ0VTSUFFZ0FpZ0NBR3BCZjJvdEFBQWlCMEVCYWlFVFFRQWdCMnNoQ2tFRUlRRURRQUpBSUFBZ0VXb2lGQzBBQUNJRklBQXRBQUFpQ0dzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdSUERRQWdBQ0FTYWlJTExRQUFJZ3dnQldzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdnaUJrOE5BQ0FBSUFOcUloVXRBQUFpRFNBSWF5SUVJQVJCSDNVaUJHb2dCSE1nQms4TkFDQUhJUVFnQUNBUWFpMEFBQ0lKSUFWcklnNGdEa0VmZFNJT2FpQU9jeUFHU1FSQUlBc2dEQ0FLSUFjZ0JTQUlha0VCYWtFQmRpQU1RUUYwYXlBSmFrRUJkU0lFSUFRZ0Iwb2JJQVFnQ2tnYmFqb0FBQ0FDS0FJSUlRWWdFeUVFQ3lBVUlBVUNmeUFBSUE5cUxRQUFJZ3NnQ0dzaUNTQUpRUjkxSWdscUlBbHpJQVpKQkVBZ0ZTQU5JQW9nQnlBRklBaHFRUUZxUVFGMklBMUJBWFJySUF0cVFRRjFJZ1lnQmlBSFNoc2dCaUFLU0J0cU9nQUFJQVJCQVdvaEJBdEJBQ0FFYXlJR0N5QUVJQWdnQld0QkFuUWdEV3NnREdwQkJHcEJBM1VpQlNBRklBUktHeUFGSUFaSUd5SUVha0d3TG1vdEFBQTZBQUFnQUNBSUlBUnJRYkF1YWkwQUFEb0FBQXNnQUVFQmFpRUFJQUZCZjJvaUFRMEFDd3Y3QmdFT2Z5QUNLQUlJSVFvZ0FpZ0NCQ0VQQWtBZ0FVRUVUd1JBSUE5QkFuWkJBbW9oRUVFRUlRSURRQUpBSUFCQmYyb2lCUzBBQUNJSElBQXRBQUFpQ0dzaUFTQUJRUjkxSWdGcUlBRnpJZzBnRDA4TkFDQUFRWDVxSWc0dEFBQWlBU0FIYXlJRUlBUkJIM1VpQkdvZ0JITWdDazhOQUNBQUxRQUJJZ2tnQ0dzaUJDQUVRUjkxSWdScUlBUnpJQXBQRFFBQ1FDQU5JQkJKQkVBZ0FDMEFBaUVMQW44Z0FFRjlhaUlOTFFBQUlnUWdCMnNpQmlBR1FSOTFJZ1pxSUFaeklBcEpCRUJCQXlFR0lBVWdDU0FISUFocUlBRnFJZ1ZCQVhScUlBUnFRUVJxUVFOMk9nQUFJQTRnQkNBRmFrRUNha0VDZGpvQUFDQUVRUU5zSVE0Z0JVRUVhaUVNSUFCQmZHb3RBQUFNQVFzZ0J5QUphaUVNUVFJaERrRUNJUVlnQlNFTklBRUxJUVFnRFNBTUlBNXFJQVJCQVhScUlBWjJPZ0FBSUFzZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFwUERRRWdBQ0FISUFscUlBaHFJZ1VnQzJwQkFtcEJBblk2QUFFZ0FDQUZJQXRCQTJ4cUlBQXRBQU5CQVhScVFRUnFRUU4yT2dBQ0lBQWdBU0FGUVFGMGFpQUxha0VFYWtFRGRqb0FBQXdDQ3lBRklBY2dDV29nQVVFQmRHcEJBbXBCQW5ZNkFBQUxJQUFnQVNBSWFpQUpRUUYwYWtFQ2FrRUNkam9BQUFzZ0FDQURhaUVBSUFKQmYyb2lBZzBBQ3d3QkN5QUJJQUlvQWdCcVFYOXFMUUFBSWdWQkFXb2hEVUVBSUFWcklRaEJCQ0VDQTBBQ1FDQUFRWDlxSWc0dEFBQWlCQ0FBTFFBQUlnZHJJZ0VnQVVFZmRTSUJhaUFCY3lBUFR3MEFJQUJCZm1vaURDMEFBQ0lKSUFScklnRWdBVUVmZFNJQmFpQUJjeUFLVHcwQUlBQXRBQUVpQ3lBSGF5SUJJQUZCSDNVaUFXb2dBWE1nQ2s4TkFDQUFMUUFDSVFZZ0JTRUJJQUJCZldvdEFBQWlFQ0FFYXlJUklCRkJIM1VpRVdvZ0VYTWdDa2tFUUNBTUlBa2dDQ0FGSUFRZ0IycEJBV3BCQVhZZ0NVRUJkR3NnRUdwQkFYVWlBU0FCSUFWS0d5QUJJQWhJRzJvNkFBQWdEU0VCQ3lBT0lBUUNmeUFHSUFkcklnd2dERUVmZFNJTWFpQU1jeUFLU1FSQUlBQWdDeUFJSUFVZ0JDQUhha0VCYWtFQmRpQUxRUUYwYXlBR2FrRUJkU0lHSUFZZ0JVb2JJQVlnQ0VnYmFqb0FBU0FCUVFGcUlRRUxRUUFnQVdzaUJnc2dBU0FKSUF0cklBY2dCR3RCQW5ScVFRUnFRUU4xSWdRZ0JDQUJTaHNnQkNBR1NCc2lBV3BCc0M1cUxRQUFPZ0FBSUFBZ0J5QUJhMEd3TG1vdEFBQTZBQUFMSUFBZ0Eyb2hBQ0FDUVg5cUlnSU5BQXNMQzlvSEFRMS9Jd0JCd0FOckloRWtBQ0FHUVFWcUlRa0NRQUpBSUFKQkFFZ05BQ0FEUVFCSURRQWdBaUFKYWlBRVN3MEFJQU1nQjJwQkJXb2dCVXNOQUNBRUlRa2dBeUVLREFFTElBQWdFU0FDSUFNZ0JDQUZJQWtnQjBFRmFpQUpFQXdnRVNFQVFRQWhBZ3NDUUNBSFJRMEFJQUFnQ1NBS2JDQUNhbW9oRTBFUUlBWnJJUlFDUUNBR1FRSjJJaElFUUNBSklBWnJJUlVnRXlBSklBaEJBWFpCQVhGQkFuSnNha0VGYWlFQ0lBY2hCQU5BSUFKQmYyb3RBQUFoQUNBQ1FYNXFMUUFBSVFNZ0FrRjlhaTBBQUNFRklBSkJmR290QUFBaEN5QUNRWHRxTFFBQUlRMGdFaUVQQTBBZ0FTQUNMUUFBSWdvZ0RTQUFJQXRxSWd4cklBTWdCV3BCRkd4cUlBeEJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQUFnQVNBQ0xRQUJJZ3dnQ3lBQUlBTnFRUlJzYWlBRklBcHFJZ3RySUF0QkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBRWdBU0FDTFFBQ0loQWdCU0FBSUFwcVFSUnNhaUFESUF4cUlnVnJJQVZCQW5ScmFrRVFha0VGZFVHd0xtb3RBQUE2QUFJZ0FTQUNMUUFESWc0Z0F5QUtJQXhxUVJSc2FpQUFJQkJxSWdOcklBTkJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQU1nQVVFRWFpRUJJQUpCQkdvaEFpQUFJUTBnQ2lFTElBd2hCU0FRSVFNZ0RpRUFJQTlCZjJvaUR3MEFDeUFCSUJScUlRRWdBaUFWYWlFQ0lBUkJmMm9pQkEwQUN3d0JDeUFIUVg5cUlCUnNJQVpySUFGcVFSQnFJUUVMSUFkQkFuWWlCRVVOQUVIQUFDQUdheUVRSUFsQkFYUWhDaUFKUVFKMElBWnJJUXRCQUNBSmF5SU1RUUYwSVJJZ0FTQUhRUVIwYXlFQ0lBa2dFMm9nQ0VFQmNXcEJBbW9pQUNBSlFRVnNhaUVCQTBBZ0JpSURCRUFEUUNBQ0lBQWdDbW90QUFBaUJTQUJJQXBxTFFBQUlBRWdDV290QUFBaURpQUJJQkpxTFFBQUlnZHFJZ2hySUFoQkFuUnJhaUFCTFFBQUlnMGdBU0FNYWkwQUFDSUlha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQUl0QURCcVFRRnFRUUYyT2dBd0lBSWdBQ0FKYWkwQUFDSVBJQTRnQnlBSWFrRVViR29nQlNBTmFpSU9heUFPUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFDQnFRUUZxUVFGMk9nQWdJQUlnQUMwQUFDSU9JQTBnQlNBSGFrRVViR29nQ0NBUGFpSU5heUFOUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFCQnFRUUZxUVFGMk9nQVFJQUlnQUNBTWFpMEFBQ0FJSUFVZ0QycEJGR3hxSUFjZ0Rtb2lCV3NnQlVFQ2RHdHFRUkJxUVFWMVFiQXVhaTBBQUNBQ0xRQUFha0VCYWtFQmRqb0FBQ0FBUVFGcUlRQWdBa0VCYWlFQ0lBRkJBV29oQVNBRFFYOXFJZ01OQUFzTElBSWdFR29oQWlBQklBdHFJUUVnQUNBTGFpRUFJQVJCZjJvaUJBMEFDd3NnRVVIQUEyb2tBQXUxQlFFRWZ5QUFLQUlVSVFNZ0FDZ0NFQ0VFSUFBb0FnUWhCU0FBS0FJTUlnSWdBU2tDQURjQ0FDQUNJQUVwQWdnM0FnZ2dBaUFGUVFSMElnQnFJZ0lnQVNrQ0VEY0NBQ0FDSUFFcEFoZzNBZ2dnQUNBQ2FpSUNJQUVwQWlBM0FnQWdBaUFCS1FJb053SUlJQUFnQW1vaUFpQUJLUUl3TndJQUlBSWdBU2tDT0RjQ0NDQUFJQUpxSWdJZ0FTa0NRRGNDQUNBQ0lBRXBBa2czQWdnZ0FDQUNhaUlDSUFFcEFsQTNBZ0FnQWlBQktRSllOd0lJSUFBZ0Ftb2lBaUFCS1FKZ053SUFJQUlnQVNrQ2FEY0NDQ0FBSUFKcUlnSWdBU2tDY0RjQ0FDQUNJQUVwQW5nM0FnZ2dBQ0FDYWlJQ0lBRXBBb0FCTndJQUlBSWdBU2tDaUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcEFCTndJQUlBSWdBU2tDbUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcUFCTndJQUlBSWdBU2tDcUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBckFCTndJQUlBSWdBU2tDdUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBc0FCTndJQUlBSWdBU2tDeUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdEFCTndJQUlBSWdBU2tDMkFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdUFCTndJQUlBSWdBU2tDNkFFM0FnZ2dBQ0FDYWlJQUlBRXBBdkFCTndJQUlBQWdBU2tDK0FFM0FnZ2dCQ0FCS1FLQUFqY0NBQ0FFSUFWQkEzUWlBR29pQkNBQktRS0lBamNDQUNBQUlBUnFJZ1FnQVNrQ2tBSTNBZ0FnQUNBRWFpSUVJQUVwQXBnQ053SUFJQUFnQkdvaUJDQUJLUUtnQWpjQ0FDQUFJQVJxSWdRZ0FTa0NxQUkzQWdBZ0FDQUVhaUlFSUFFcEFyQUNOd0lBSUFBZ0JHb2dBU2tDdUFJM0FnQWdBeUFCS1FMQUFqY0NBQ0FBSUFOcUlnTWdBU2tDeUFJM0FnQWdBQ0FEYWlJRElBRXBBdEFDTndJQUlBQWdBMm9pQXlBQktRTFlBamNDQUNBQUlBTnFJZ01nQVNrQzRBSTNBZ0FnQUNBRGFpSURJQUVwQXVnQ053SUFJQUFnQTJvaUF5QUJLUUx3QWpjQ0FDQUFJQU5xSUFFcEF2Z0NOd0lBQytnQ0FRVi9Ba0FnQUNBQkVBSWlBdzBBUVFFaEF5QUJJQUVvQWdCQkFXb2lBallDQUNBQ1FTQkxEUUFnQUVFRUVBTWlBa0YvUmcwQUlBRWdBallDQkNBQVFRUVFBeUlDUVg5R0RRQWdBU0FDTmdJSUlBRW9BZ0FFUUFOQUlBQWdBU0FGUVFKMGFpSUNJZ1JCREdvUUFpSUREUUpCQVNFRElBUW9BZ3dpQmtGL1JnMENJQVFnQmtFQmFpSUROZ0lNSUFRZ0F5QUJLQUlFUVFacWREWUNEQ0FBSUFKQmpBRnFFQUlpQXcwQ1FRRWhBeUFDS0FLTUFTSUVRWDlHRFFJZ0FpQUVRUUZxSWdRMkFvd0JJQUlnQkNBQktBSUlRUVJxZERZQ2pBRWdBRUVCRUFNaUJFRi9SZzBDSUFJZ0JFRUJSallDakFJZ0JVRUJhaUlGSUFFb0FnQkpEUUFMQ3lBQVFRVVFBeUlDUVg5R0RRQWdBU0FDUVFGcU5nS01BeUFBUVFVUUF5SUNRWDlHRFFBZ0FTQUNRUUZxTmdLUUF5QUFRUVVRQXlJQ1FYOUdEUUFnQVNBQ1FRRnFOZ0tVQXlBQVFRVVFBeUlBUVg5R0RRQWdBU0FBTmdLWUEwRUFJUU1MSUFNTFd3RURmeUFBSUFBb0FnQWlCQ0FCSUFBb0FnUWlBbkFpQTBFRWRHb2dBU0FEYXlJQlFRaDBhallDRENBQUlBUWdBaUFBS0FJSWJDSUNRUWgwYWlBQlFRWjBhaUFEUVFOMGFpSUJOZ0lRSUFBZ0FTQUNRUVowYWpZQ0ZBdFZBUUovSUFFZ0FrRUJhaUlESUFNZ0FVa2JJUU1nQUNBQ1FRSjBhaWdDQUNFRUEwQUNRQ0FDUVFGcUlnSWdBVThFUUNBRElRSU1BUXNnQUNBQ1FRSjBhaWdDQUNBRVJ3MEJDd3RCQUNBQ0lBRWdBa1liQ3ljQUlBQkJDQ0FBS0FJSUlnQnJFQU5CZjBZRVFBOExRUUFnQUd0QkFuUkJ6RDlxS0FJQUdndDZBUUovSXdCQklHc2lBaVFBSUFJZ0FDZ0NFRFlDRUNBQ0lBQXBBZ2czQXdnZ0FpQUFLUUlBTndNQUFrQWdBaUFDUVJ4cUVBSWlBQTBBSUFJZ0FrRWNhaEFDSWdBTkFDQUNJQUpCSEdvUUFpSUFEUUJCQVNFQUlBSW9BaHdpQTBIL0FVc05BQ0FCSUFNMkFnQkJBQ0VBQ3lBQ1FTQnFKQUFnQUF2bkJ3RVNmeU1BUVlBT2F5SU1KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQTBFQVNBMEFJQUlnQ1dvZ0JFc05BQ0FESUFkcVFRVnFJQVZMRFFBZ0F5RUtEQUVMSUFBZ0RFSEFDbW9nQWlBRElBUWdCU0FKSUFkQkJXb2dDUkFNSUF4QndBcHFJUUFnQ1NFRVFRQWhBZ3NDUUNBSFFRSjJJaFJGRFFBZ0NVVU5BQ0FFUVFGMElSVkJBQ0FFYXlJV1FRRjBJUm9nQkVFQ2RDQUdhMEY3YWlFWElBQWdCQ0FLYkNBQ2Ftb2dCR29pQUNBRVFRVnNhaUVDSUF3Z0NVRUNkQ0lRYWlFRElBbEJBM1FoRFVFQUlBbHJRUUowSVE0Z0NVRURiRUVDZENFUEEwQWdDU0VGQTBBZ0F5QU5haUFBSUJWcUxRQUFJaEVnQWlBVmFpMEFBQ0FDSUFScUxRQUFJZ3NnQWlBYWFpMEFBQ0lTYWlJS2F5QUtRUUowYTJvZ0FpMEFBQ0lZSUFJZ0Ztb3RBQUFpRTJwQkZHeHFOZ0lBSUFNZ0VHb2dBQ0FFYWkwQUFDSVpJQXNnRWlBVGFrRVViR29nRVNBWWFpSUtheUFLUVFKMGEybzJBZ0FnQXlBQUxRQUFJZ3NnR0NBUklCSnFRUlJzYWlBVElCbHFJZ3BySUFwQkFuUnJhallDQUNBRElBNXFJQUFnRm1vdEFBQWdFeUFSSUJscVFSUnNhaUFMSUJKcUlncHJJQXBCQW5ScmFqWUNBQ0FBUVFGcUlRQWdBMEVFYWlFRElBSkJBV29oQWlBRlFYOXFJZ1VOQUFzZ0FpQVhhaUVDSUFBZ0Yyb2hBQ0FESUE5cUlRTWdGRUYvYWlJVURRQUxDeUFIQkVCQkVDQUdheUVRSUFaQkFuWWhDaUFNSUFoQkFuUnFRUWhxSVFBZ0RFRVVhaUVDQTBBZ0NnUkFJQUpCYkdvb0FnQWhCQ0FDUVhCcUtBSUFJUThnQWtGMGFpZ0NBQ0VOSUFKQmVHb29BZ0FoQlNBQ1FYeHFLQUlBSVFNZ0NpRUpBMEFnQVNBQ0tBSUFJZzRnQkNBRElBOXFJZ1JySUFVZ0RXcEJGR3hxSUFSQkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQUlBQW9BZ0JCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlvQWdRaUN5QVBJQU1nQldwQkZHeHFJQTBnRG1vaUJHc2dCRUVDZEd0cVFZQUVha0VLZFVHd0xtb3RBQUFnQUNnQ0JFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FCSUFFZ0FpZ0NDQ0lJSUEwZ0F5QU9ha0VVYkdvZ0JTQUxhaUlFYXlBRVFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlJUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBSWdBU0FDS0FJTUlnWWdCU0FMSUE1cVFSUnNhaUFESUFocUlnUnJJQVJCQW5ScmFrR0FCR3BCQ25WQnNDNXFMUUFBSUFBb0FneEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQXlBQlFRUnFJUUVnQUVFUWFpRUFJQUpCRUdvaEFpQURJUVFnRGlFUElBc2hEU0FJSVFVZ0JpRURJQWxCZjJvaUNRMEFDd3NnQVNBUWFpRUJJQUJCRkdvaEFDQUNRUlJxSVFJZ0IwRi9haUlIRFFBTEN5QU1RWUFPYWlRQUM5RUhBUXgvSXdCQmdBNXJJZzhrQUNBR1FRVnFJUWtDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSmFpQUVTdzBBSUFkQkJXb2lEaUFEYWlBRlN3MEFJQVFoQ1NBRElRb01BUXNnQUNBUFFjQUthaUFDSUFNZ0JDQUZJQWtnQjBFRmFpSU9JQWtRRENBUFFjQUthaUVBUVFBaEFnc0NRQ0FPUlEwQUlBWkJBbllpRWtVTkFDQUpJQVpySVJNZ0FDQUpJQXBzSUFKcWFrRUZhaUVDSUE4aEFBTkFJQUpCZjJvdEFBQWhDU0FDUVg1cUxRQUFJUU1nQWtGOWFpMEFBQ0VGSUFKQmZHb3RBQUFoQ2lBQ1FYdHFMUUFBSVF3Z0VpRU5BMEFnQUNBQ0xRQUFJZ1FnRENBSklBcHFJZ3RySUFNZ0JXcEJGR3hxSUF0QkFuUnJhallDQUNBQUlBSXRBQUVpQ3lBRElBbHFRUlJzSUFwcUlBUWdCV29pQ21zZ0NrRUNkR3RxTmdJRUlBQWdBaTBBQWlJUUlBUWdDV3BCRkd3Z0JXb2dBeUFMYWlJRmF5QUZRUUowYTJvMkFnZ2dBQ0FDTFFBREloUWdCQ0FMYWtFVWJDQURhaUFKSUJCcUlnTnJJQU5CQW5ScmFqWUNEQ0FBUVJCcUlRQWdBa0VFYWlFQ0lBa2hEQ0FFSVFvZ0N5RUZJQkFoQXlBVUlRa2dEVUYvYWlJTkRRQUxJQUlnRTJvaEFpQU9RWDlxSWc0TkFBc0xJQWRCQW5ZaUJ3UkFRY0FBSUFacklSUWdEeUFHUVFKMElnUnFJZ2tnQmtFVWJHb2hBaUFKSUFoQkFtb2dCbXhCQW5ScUlRQWdCa0VEYkVFQ2RDRUZRUUFnQm1zaURrRURkQ0VUSUFaQkEzUWhDQU5BSUFZaEF5QUdCRUFEUUNBQklBZ2dDV29vQWdBaUNpQUNJQWhxS0FJQUlBSWdCR29vQWdBaUVTQUNJQk5xS0FJQUlndHFJZ3hySUF4QkFuUnJhaUFDS0FJQUlnMGdBaUFPUVFKMEloQnFLQUlBSWd4cVFSUnNha0dBQkdwQkNuVkJzQzVxTFFBQUlBQWdDR29vQWdCQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FNQ0FCSUFRZ0NXb29BZ0FpRWlBUklBc2dER3BCRkd4cUlBb2dEV29pRVdzZ0VVRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQWdBQ0FFYWlnQ0FFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FnSUFFZ0NTZ0NBQ0lSSUEwZ0NpQUxha0VVYkdvZ0RDQVNhaUlOYXlBTlFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFCQWdBU0FKSUJCcUtBSUFJQXdnQ2lBU2FrRVViR29nQ3lBUmFpSUtheUFLUVFKMGEycEJnQVJxUVFwMVFiQXVhaTBBQUNBQUlCQnFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBQWdBRUVFYWlFQUlBbEJCR29oQ1NBQlFRRnFJUUVnQWtFRWFpRUNJQU5CZjJvaUF3MEFDd3NnQVNBVWFpRUJJQUFnQldvaEFDQUNJQVZxSVFJZ0JTQUphaUVKSUFkQmYyb2lCdzBBQ3dzZ0QwR0FEbW9rQUF1MEJnRUpmeU1BUWNBRGF5SU5KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQXlBSGFpQUZTdzBBSUFOQkFFZ05BQ0FDSUFscUlBUkxEUUFnQkNFSklBTWhDZ3dCQ3lBQUlBMGdBaUFESUFRZ0JTQUpJQWNnQ1JBTUlBMGhBRUVBSVFJTElBY0VRRUVRSUFacklSQWdDU0FHYXlFUklBWkJBblloRHlBQUlBa2dDbXdnQW1wcVFRVnFJUWtEUUFKQUlBOUZEUUFnQ1VGL2FpMEFBQ0VDSUFsQmZtb3RBQUFoQmlBSlFYMXFMUUFBSVFNZ0NVRjhhaTBBQUNFRklBbEJlMm90QUFBaENpQVBJZ0FoQ3lBSUJFQURRQ0FCSUFZZ0NTMEFBQ0lFSUFvZ0FpQUZhaUlLYXlBRElBWnFRUlJzYWlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlnQ1MwQUFTSUxJQVVnQWlBR2FrRVViR29nQXlBRWFpSUZheUFGUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQVNBQklBUWdDUzBBQWlJTUlBTWdBaUFFYWtFVWJHb2dCaUFMYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBaUFCSUFzZ0NTMEFBeUlPSUFZZ0JDQUxha0VVYkdvZ0FpQU1haUlEYXlBRFFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUF5QUJRUVJxSVFFZ0NVRUVhaUVKSUFJaENpQUVJUVVnQ3lFRElBd2hCaUFPSVFJZ0FFRi9haUlBRFFBTUFnQUxBQXNEUUNBQklBTWdDUzBBQUNJQUlBb2dBaUFGYWlJRWF5QURJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBQ0FCSUFZZ0NTMEFBU0lFSUFVZ0FpQUdha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFTQUJJQUlnQ1MwQUFpSU1JQU1nQUNBQ2FrRVViR29nQkNBR2FpSURheUFEUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQWlBQklBQWdDUzBBQXlJT0lBWWdBQ0FFYWtFVWJHb2dBaUFNYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBeUFCUVFScUlRRWdDVUVFYWlFSklBSWhDaUFBSVFVZ0JDRURJQXdoQmlBT0lRSWdDMEYvYWlJTERRQUxDeUFCSUJCcUlRRWdDU0FSYWlFSklBZEJmMm9pQncwQUN3c2dEVUhBQTJva0FBdkdCQUVMZnlNQVFjQURheUlOSkFBQ1FBSkFJQUpCQUVnTkFDQURRUUJJRFFBZ0FpQUdhaUFFU3cwQUlBTWdCMnBCQldvZ0JVc05BQ0FESVFrTUFRc2dBQ0FOSUFJZ0F5QUVJQVVnQmlBSFFRVnFJQVlRRENBTklRQWdCaUVFUVFBaEFnc2dCMEVDZGlJUUJFQkJ3QUFnQm1zaEVpQUVRUUYwSVFVZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVRJQUFnQkNBSmJDQUNhbW9nQkdvaUFDQUVRUVZzYWlFQ0lBQWdCQ0FJUVFKcWJHb2hCd05BSUFZaEF5QUdCRUFEUUNBQklBQWdCV290QUFBaUNDQUNJQVZxTFFBQUlBSWdCR290QUFBaUNpQUNJQk5xTFFBQUlnbHFJZ3RySUF0QkFuUnJhaUFDTFFBQUlnd2dBaUFQYWkwQUFDSUxha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQVVnQjJvdEFBQnFRUUZxUVFGMk9nQXdJQUVnQUNBRWFpMEFBQ0lSSUFvZ0NTQUxha0VVYkdvZ0NDQU1haUlLYXlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQUlBUWdCMm90QUFCcVFRRnFRUUYyT2dBZ0lBRWdBQzBBQUNJS0lBd2dDQ0FKYWtFVWJHb2dDeUFSYWlJTWF5QU1RUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFJQWN0QUFCcVFRRnFRUUYyT2dBUUlBRWdBQ0FQYWkwQUFDQUxJQWdnRVdwQkZHeHFJQWtnQ21vaUNHc2dDRUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBQ0FISUE5cUxRQUFha0VCYWtFQmRqb0FBQ0FIUVFGcUlRY2dBRUVCYWlFQUlBRkJBV29oQVNBQ1FRRnFJUUlnQTBGL2FpSUREUUFMQ3lBQklCSnFJUUVnQnlBT2FpRUhJQUlnRG1vaEFpQUFJQTVxSVFBZ0VFRi9haUlRRFFBTEN5QU5RY0FEYWlRQUM0OEhBUXgvSUFFb0FnZ2hDeUFCS0FJRUlRWUNRQUpBQWtBZ0FrRUZTdzBBSUFKQkFXc09CQUFBQUFBQkN5QUFLQUs0R2cwQURBRUxJQUJCeEFscUlRUURRQ0FFSUFNUUZDRUhJQU5CRGtzTkFTQURRUUZxSVFNZ0IwVU5BQXNMQWtBQ1FBSkFBa0FnQUNnQ21Ba2lDQVJBSUFBb0Fyd0pJUXBCQUNFRFFRQWhCQU5BSUFvZ0EwSFlBV3hxS0FMRUFVVUVRRUVBSUFSQkFXb2lCQ0FFSUFaR0lnVWJJUVFnQlNBSmFpRUpJQU5CQVdvaUF5QUlTUTBCQ3dzZ0F5QUlSdzBCQ3dKQUFrQWdBa0YrYWlJQ1FRVkxEUUFDUUNBQ1FRRnJEZ1FCQVFFQkFBc2dCMFVOQVNBQUtBSzRHa1VOQVF3REN5QUhEUUlMSUFFb0FnQkJnQUVnQmlBTGJFR0FBMndRQnhvTUFnc2dBQ2dDdkFrZ0JpQUpiRUhZQVd4cUlRZ2dCQVJBSUFRaEF3TkFJQWdnQTBGL2FpSURRZGdCYkdvaUNpQUJJQWtnQXlBQ0lBY1FGaUFLUVFFMkFzUUJJQUFnQUNnQ3RBbEJBV28yQXJRSklBTU5BQXNMSUFSQkFXb2lBeUFHU1FSQUEwQWdDQ0FEUWRnQmJHb2lCQ2dDeEFGRkJFQWdCQ0FCSUFrZ0F5QUNJQWNRRmlBRVFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpDeUFEUVFGcUlnTWdCa2NOQUFzTEFrQWdDVVVOQUNBR1JRMEFRUUFoQlNBSlFYOXFJZ3dnQm13aERTQU1SUVJBQTBBZ0FDZ0N2QWtnRFVIWUFXeHFJQVZCMkFGc2FpSUVJQUZCQUNBRklBSWdCeEFXSUFSQkFUWUN4QUVnQUNBQUtBSzBDVUVCYWpZQ3RBa2dCVUVCYWlJRklBWkhEUUFNQWdBTEFBc2dDVUYrYWlFSVFRQWdCbXRCMkFGc0lRNERRQ0FBS0FLOENTQU5RZGdCYkdvZ0JVSFlBV3hxSWdNZ0FTQU1JQVVnQWlBSEVCWWdBMEVCTmdMRUFTQUFJQUFvQXJRSlFRRnFOZ0swQ1NBSUlRUURRQ0FESUE1cUlnTWdBU0FFSWdvZ0JTQUNJQWNRRmlBRFFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpJQVJCZjJvaEJDQUtEUUFMSUFWQkFXb2lCU0FHUncwQUN3c2dDVUVCYWlJRklBdFBEUUlnQmtVTkFnTkFJQUFvQXJ3SklBVWdCbXhCMkFGc2FpRUlRUUFoQXdOQUlBZ2dBMEhZQVd4cUlnUW9Bc1FCUlFSQUlBUWdBU0FGSUFNZ0FpQUhFQllnQkVFQk5nTEVBU0FBSUFBb0FyUUpRUUZxTmdLMENRc2dBMEVCYWlJRElBWkhEUUFMSUFWQkFXb2lCU0FMUncwQUN3d0NDeUFCS0FJQUlBY2dCaUFMYkVHQUEyd1FGUm9MSUFBZ0FDZ0NtQWtpQVRZQ3RBa2dBVVVOQUNBQUtBSzhDU0VBUVFBaEF3TkFJQUFnQTBIWUFXeHFRUUUyQWdnZ0EwRUJhaUlESUFGSERRQUxDd3MyQVFKL0lBQW9BaWdpQWdSQUEwQWdBQ2dDQkNBQlFRSjBhaUFBS0FJQUlBRkJLR3hxTmdJQUlBRkJBV29pQVNBQ1J3MEFDd3NMOXdRQ0RIOEJma0VISVFVakFFRWdheUlJSVF3RFFDQUZJQUZKQkVBZ0FFRUFJQVZyUVNoc2FpRUtJQVVoQmdOQUlBQWdCa0VvYkdvaUFpZ0NDQ0VKSUFJcEFnQWhEaUFJSUFJcEFndzNBeGdnQWlnQ0dDRU5JQUlvQWhRaEN5QU1JQUlvQWlRMkFoQWdDQ0FDS1FJY053TUlBa0FnQmlJRElBVkpEUUFDUUNBTFJRUkFBMEFnQ2lBRFFTaHNJZ0pxSWdRb0FoUU5BaUFOUlEwQ0lBUW9BaGdOQWlBQUlBSnFJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3lBTFFYOXFRUUZOQkVBRFFBSi9Ba0FnQ2lBRFFTaHNJZ0pxSWdRb0FoUWlCMFVOQUNBSFFYOXFRUUZMRFFBZ0JDZ0NDQ0lISUFsS0RRUWdBQ0FDYWlJRUlBY2dDVWdOQVJvZ0JDRUNEQVVMSUFBZ0Ftb0xJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3dOQUlBb2dBMEVvYkNJQ2FpSUVLQUlVSWdjRVFDQUhRWDlxUVFKSkRRSWdCQ2dDQ0NBSlRBMENDeUFBSUFKcUlnUWdBQ0FESUFWcklnTkJLR3hxSWdJcEFnQTNBZ0FnQkNBQ0tRSWdOd0lnSUFRZ0Fpa0NHRGNDR0NBRUlBSXBBaEEzQWhBZ0JDQUNLUUlJTndJSUlBTWdCVThOQUFzTUFRc2dBQ0FEUVNoc2FpRUNDeUFDSUE0M0FnQWdBQ0FEUVNoc2FpSURJQWsyQWdnZ0NDa0RHQ0VPSUFNZ0RUWUNHQ0FESUFzMkFoUWdBeUFPTndJTUlBTWdDQ2tEQ0RjQ0hDQURJQXdvQWhBMkFpUWdCa0VCYWlJR0lBRkhEUUFMQ3lBRlFRRjJJZ1VOQUFzTHJRVUJBWDhDUUNBQUtBSUFJZ0VvQWhSRkRRQWdBVUVBTmdJVUlBRW9BaGdOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ1BFVU5BQ0FCUVFBMkFqd2dBVUZBYXlnQ0FBMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUprUlEwQUlBRkJBRFlDWkNBQktBSm9EUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQW93QlJRMEFJQUZCQURZQ2pBRWdBU2dDa0FFTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0N0QUZGRFFBZ0FVRUFOZ0swQVNBQktBSzRBUTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMY0FVVU5BQ0FCUVFBMkF0d0JJQUVvQXVBQkRRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9Bb1FDUlEwQUlBRkJBRFlDaEFJZ0FTZ0NpQUlOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ3JBSkZEUUFnQVVFQU5nS3NBaUFCS0FLd0FnMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUxVQWtVTkFDQUJRUUEyQXRRQ0lBRW9BdGdDRFFBZ0FDQUFLQUlzUVg5cU5nSXNDd0pBSUFFb0F2d0NSUTBBSUFGQkFEWUMvQUlnQVNnQ2dBTU5BQ0FBSUFBb0FpeEJmMm8yQWl3TEFrQWdBU2dDcEFORkRRQWdBVUVBTmdLa0F5QUJLQUtvQXcwQUlBQWdBQ2dDTEVGL2FqWUNMQXNDUUNBQktBTE1BMFVOQUNBQlFRQTJBc3dESUFFb0F0QUREUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQXZRRFJRMEFJQUZCQURZQzlBTWdBU2dDK0FNTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0NuQVJGRFFBZ0FVRUFOZ0tjQkNBQktBS2dCQTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMRUJFVU5BQ0FCUVFBMkFzUUVJQUVvQXNnRURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9BdXdFUlEwQUlBRkJBRFlDN0FRZ0FTZ0M4QVFOQUNBQUlBQW9BaXhCZjJvMkFpd0xBMEFnQUJCZVJRMEFDeUFBUVFBMkFqQWdBRUwvL3dNM0FpUUwzUTRCQ1g4Z0FpZ0NBQ0FBS0FJSUlnSW9BZ0JHQkVBZ0FFRUFOZ0kwSUFBb0FqZ2lDMFVoRFFKQUlBRkZCRUFnQWlBRE5nSU1JQUpCQURZQ0ZDQUNJQTAyQWhnZ0FpQUVOZ0lRSUFJZ0F6WUNDQ0FMRFFFZ0FDQUFLQUlzUVFGcU5nSXNEQUVMSUFVRVFDQUFRZ0EzQWhBZ0FCQW9Ba0FnQVNnQ0FFVUVRQ0FBS0FJNFJRMEJDeUFBUWdBM0FoQUxJQUFvQWdnaUFrRURRUUlnQVNnQ0JDSUJHellDRkNBQVFRQkIvLzhESUFFYk5nSWtJQUlnRFRZQ0dDQUNRUUEyQWhBZ0FrSUFOd0lJSUFCQ2dZQ0FnQkEzQWlnTUFRc0NRQUpBQWtBZ0FTZ0NDQVJBUVFBaEN3TkFJQUVnQzBFVWJHb2lDQ2dDRENJQ1FRWkxEUUlDUUFKQUFrQUNRQUpBQWtBQ1FDQUNRUUZyRGdZQUFRSURCQVVKQ3lBQUtBSVlJZ2xGRFFnZ0F5QUlLQUlRYXlFTUlBQW9BZ0FoQ2tFQUlRZ0RRQUpBSUFvZ0NFRW9iR29pQWlnQ0ZFRi9ha0VCVFFSQUlBSW9BZ2dnREVZTkFRc2dDRUVCYWlJSUlBbEhEUUVNQ2dzTElBaEJBRWdOQ0NBQ1FRQTJBaFFnQUNBQUtBSW9RWDlxTmdJb0lBSW9BaGdOQlNBQUlBQW9BaXhCZjJvMkFpd2dDMEVCYWlFTERBWUxJQUFvQWhnaUNVVU5CeUFJS0FJVUlRd2dBQ2dDQUNFS1FRQWhDQU5BQWtBZ0NpQUlRU2hzYWlJQ0tBSVVRUU5HQkVBZ0FpZ0NDQ0FNUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdKQ3dzZ0NFRUFTQTBISUFKQkFEWUNGQ0FBSUFBb0FpaEJmMm8yQWlnZ0FpZ0NHQTBFSUFBZ0FDZ0NMRUYvYWpZQ0xDQUxRUUZxSVFzTUJRc2dBQ2dDSkNJQ1FmLy9BMFlOQmlBQ0lBZ29BaGdpREVrTkJpQUFLQUlZSWdsRkRRWWdDQ2dDRUNFT0lBQW9BZ0FoQ2tFQUlRSURRQUpBQWtBZ0NpQUNRU2hzYWlJSUtBSVVRUU5IRFFBZ0NDZ0NDQ0FNUncwQUlBaEJBRFlDRkNBQUlBQW9BaWhCZjJvMkFpZ2dDQ2dDR0EwQklBQWdBQ2dDTEVGL2FqWUNMQXdCQ3lBQ1FRRnFJZ0lnQ1VjTkFRc0xJQWxCQVNBSlFRRkxHeUVKSUFNZ0Rtc2hEa0VBSVFnRFFBSkFJQW9nQ0VFb2JHb2lBaWdDRkNJUFFYOXFRUUZOQkVBZ0FpZ0NDQ0FPUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdJQ3dzZ0NFRUFTQTBHSUE5QkFra05CaUFDUVFNMkFoUWdBaUFNTmdJSUlBdEJBV29oQ3d3RUN5QUFJQWdvQWh3aUNUWUNKQ0FBS0FJWUlneEZEUUlnQUNnQ0FDRUtRUUFoQWlBSlFmLy9BMFlFUUFOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDRUVBTmdJVUlBQWdBQ2dDS0VGL2FqWUNLQ0FJS0FJWURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQ1FRRnFJZ0lnREVjTkFBd0VBQXNBQ3dOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDQ2dDQ0NBSlRRMEFJQWhCQURZQ0ZDQUFJQUFvQWloQmYybzJBaWdnQ0NnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FrRUJhaUlDSUF4SERRQUxEQUlMSUFBUUtDQUFRUUUyQWpSQkFDRURJQXRCQVdvaEN3d0NDeUFBS0FJa0lnSkIvLzhEUmcwRElBSWdDQ2dDR0NJTVNRMERJQUFvQWhnaUNrVU5BeUFBS0FJQUlRaEJBQ0VDQWtBRFFBSkFJQWdnQWtFb2JHb2lDU2dDRkVFRFJ3MEFJQWtvQWdnZ0RFY05BQ0FKUVFBMkFoUWdBQ0FBS0FJb1FYOXFJZ2cyQWlnZ0NTZ0NHQTBDSUFBZ0FDZ0NMRUYvYWpZQ0xBd0NDeUFDUVFGcUlnSWdDa2NOQUFzZ0FDZ0NLQ0VJQ3lBSUlBcFBEUU1nQUNnQ0NDSUNRUU0yQWhRZ0FpQUVOZ0lRSUFJZ0REWUNDQ0FDSUFNMkFnd2dBaUFBS0FJNFJUWUNHRUVCSVJBZ0FDQUlRUUZxTmdJb0lBQWdBQ2dDTEVFQmFqWUNMQXNnQzBFQmFpRUxEQUFBQ3dBTFFRQWhBaUFBS0FJb0lna2dBQ2dDR0NJTFNRMEJJQWxGQkVCQkFDRUpEQUlMSUFBb0FnQWhERUYvSVFFRFFDQU1JQUpCS0d4cUlnb29BaFJCZjJwQkFVMEVRQ0FLS0FJSUlnb2dDQ0FCUVg5R0lBb2dDRWh5SWdvYklRZ2dBaUFCSUFvYklRRUxJQUpCQVdvaUFpQUpSdzBBQ3lBQlFRQklEUUVnRENBQlFTaHNhaUlCUVFBMkFoUWdBQ0FKUVg5cUlnazJBaWdnQVNnQ0dBMEJJQUFnQUNnQ0xFRi9hallDTEF3QkN5QVFEUUVnQUNnQ0dDRUxJQUFvQWlnaENRc2dDU0FMVHcwQklBQW9BZ2dpQVNBTk5nSVlJQUZCQWpZQ0ZDQUJJQVEyQWhBZ0FTQUROZ0lJSUFFZ0F6WUNEQ0FBSUFsQkFXbzJBaWdnQUNBQUtBSXNRUUZxTmdJc0N3c2dBQ2dDQ0NJQklBYzJBaUFnQVNBR05nSWNJQUVnQlRZQ0pBSkFJQUFvQWpoRkJFQWdBQ2dDTENJSklBQW9BaHdpQTAwTkFTQUFLQUlBSVFRRFFFSC8vLy8vQnlFRlFRQWhCa0VBSVFJRFFDQUVJQUpCS0d4cUlnRW9BaGdFUUNBQklBWWdBU2dDRUNJQklBVklJZ2NiSVFZZ0FTQUZJQWNiSVFVTElBSkJBV29pQWlBRFRRMEFDd0pBSUFaRkRRQWdBQ2dDRENBQUtBSVFJZ0pCQkhScUlnRWdCaWdDQURZQ0FDQUJJQVlvQWlRMkFnd2dBU0FHS0FJY05nSUVJQUVnQmlnQ0lEWUNDQ0FBSUFKQkFXbzJBaEFnQmtFQU5nSVlJQVlvQWhRTkFDQUFJQWxCZjJvaUNUWUNMQXNnQ1NBRFN3MEFDd3dCQ3lBQktBSUFJUUlnQUNnQ0RDQUFLQUlRSWdOQkJIUnFJZ0VnQlRZQ0RDQUJJQUkyQWdBZ0FTQUhOZ0lJSUFFZ0JqWUNCQ0FBSUFOQkFXbzJBaEFnQUNnQ0hDRURDeUFBS0FJQUlBTkJBV29RSndzTDFBc0NBbjhCZmlNQVFaQUJheUlFSkFBZ0JFRUFOZ0lNQWtBQ1FBSkFJQUFvQXBBYVJRMEFJQUFvQXBRYUlBRkhEUUFnQkNBQVFhUWFhaWtDQURjREdDQUFLUUtjR2lFR0lBUkJBRFlDR0NBRUlBWTNBeEFnQkVFQU5nSWdJQVFnQmo0Q0ZDQURJQUFvQXBnYU5nSUFEQUVMUVFNaEJTQUJJQUlnQkVFUWFpQURFR01OQVNBQUlBUXBBeEEzQXB3YUlBQkJyQnBxSUFRb0FpQTJBZ0FnQUVHa0dtb2dCQ2tER0RjQ0FDQURLQUlBSVFJZ0FDQUJOZ0tVR2lBQUlBSTJBcGdhQzBFQUlRVWdBRUVBTmdLUUdpQUVRUkJxSUFSQmlBRnFFRThFUUVFRElRVU1BUXNnQkNnQ2lBRkJmMnBCQzBzTkFDQUVRUkJxSUFSQmlBRnFJQUFnQkVFTWFoQXlJZ0VFUUVFRUlRVWdBVUh3L3dOR0RRRkJBeUVGREFFTEFrQWdCQ2dDREFSQUFrQWdBQ2dDb0FsRkRRQWdBQ2dDRUVVTkFFRURJUVVnQUNnQ3RCb05Bd0pBSUFBb0FxUUpSUVJBSUFCQnhBbHFJZ0lpQVNBQktBSUFJQUVvQWh4QktHeHFJZ0UyQWdnZ0FDQUJLQUlBTmdLNENpQUNFQ1lnQUNBQVFiZ0tha0VBRUNVTUFRc2dBQ0FBUWJnS2FpQUFRZHdLYWlnQ0FCQWxDeUFEUVFBMkFnQWdBRUVBTmdLY0NTQUFRUUUyQXBBYURBSUxJQUJCQURZQ25Ba2dBRUVBTmdLa0NRc2dCQ2dDaUFGQmYyb2lBVUVIU3cwQkFrQUNRQUpBSUFGQkFXc09Cd1FFQkFJRUFBRUNDeUFFUVJCcUlBUkJLR29RUXdSQUlBUW9BbEFRQkNBRVFRQTJBbEFnQkNnQ2ZCQUVJQVJCQURZQ2ZFRURJUVVNQkFzZ0FDQUVRU2hxRURjTUF3c2dCRUVRYWlBRVFTaHFFRXdFUUNBRUtBSThFQVFnQkVFQU5nSThJQVFvQWtBUUJDQUVRUUEyQWtBZ0JDZ0NSQkFFSUFSQkFEWUNSQ0FFS0FKVUVBUWdCRUVBTmdKVVFRTWhCUXdEQ3lBQUlBUkJLR29RTmd3Q0N5QUFLQUtjQ1EwQklBQkJBVFlDb0FrQ1FDQUFLQUtrQ1EwQUlBQkNBRGNDdEFrZ0JFRVFhaUFFUVNocUVDQWFJQUFvQWdnaEFTQUFJQVFvQWlnZ0JDZ0NpQUZCQlVZUU5TSUNCRUFnQUVLQWdvQ0FnQVEzQWdRZ0FFRUFOZ0swR2lBQVFnQTNBZ3hCQlVFRUlBSkIvLzhEUmhzaEJRd0RDeUFCSUFBb0FnaEdEUUFnQUNnQ0VDRUJJQVJCQVRZQ0NDQUFLQUlBSWdKQkgwMEVRQ0FBSUFKQkFuUnFLQUlVSVFVTElBTkJBRFlDQUNBQVFRRTJBcEFhQWtBQ1FBSkFJQVFvQW9nQlFRVkhEUUFnQkVFSWFpQUVRUkJxSUFFZ0FDZ0NEQkE0SUFRb0FnaHlEUUFnQlVVTkFDQUFRZndKYWlnQ0FBMEFJQVVvQWpRZ0FTZ0NORWNOQUNBRktBSTRJQUVvQWpoSERRQWdCU2dDV0NBQktBSllSZzBCQ3lBQVFZQUtha0VBTmdJQURBRUxJQUJCeEFscUVGa0xJQUFnQUNnQ0NEWUNBRUVDSVFVTUFnc2dBQ2dDdEJvRVFFRURJUVVNQWdzZ0JFRVFhaUFBUWJRU2FpSUNJQUFvQWhBZ0FDZ0NEQ0FFUVlnQmFoQStCRUJCQXlFRkRBSUxJQUFvQXFRSlJRUkFBa0FnQkNnQ2lBRkJCVVlOQUNBQVFjUUphaUFBUWNBU2FpZ0NBQ0FFS0FLTUFVRUFSeUFBS0FJUUtBSXdFRnBGRFFCQkF5RUZEQU1MSUFCQnhBbHFJZ0VnQVNnQ0FDQUJLQUljUVNoc2FpSUJOZ0lJSUFBZ0FTZ0NBRFlDdUFvTElBQkIyQXBxSUFKQjNBY1FGU0VCSUFCQkFUWUNwQWtnQUNBRUtRT0lBVGNDMEFvZ0FDZ0NsQWtnQUNnQ0RDQUFRWmdMYWlnQ0FDQUFLQUlRSWdJb0FqUWdBaWdDT0JBL0lBQkJ4QWxxSWdJUUppQUNJQUJCbkF0cUlBQkI1QXBxS0FJQUlBQkJoQXRxS0FJQUVGOEVRRUVESVFVTUFnc2dCRUVRYWlBQUlBQkJ1QXBxSUFFUVFRUkFJQUFnQUNnQzJBb1FRRUVESVFVTUFnc2dBQkF6UlEwQklBQkJBVFlDbkFrTElBQkJ1QXBxSWdFZ0FDZ0N2QWtRU1NBQUVEUWdBRUdFQ21vZ0FDZ0NFQ0FBUWRnS2FpQUFRZEFLYWhCTklRSUNRQ0FBS0FLa0NVVU5BQ0FBUWNRSmFpRURJQUJCMUFwcUtBSUFCRUFnQXlBQVFld01haUFCSUFCQjVBcHFLQUlBSUFJZ0FDZ0MwQXBCQlVZZ0FDZ0N1QWtnQUNnQ3RBa1FLUXdCQ3lBRFFRQWdBU0FBUWVRS2FpZ0NBQ0FDSUFBb0F0QUtRUVZHSUFBb0FyZ0pJQUFvQXJRSkVDa0xJQUJDQURjQ29BbEJBU0VGQ3lBRVFaQUJhaVFBSUFVTHFBd0JDMzhDUUNBQlFRUlBCRUJCQUNBRGF5SU5RUUYwSVFvQ1FDQUFJQU5ySWdVdEFBQWlCaUFBTFFBQUlnaHJJZ0VnQVVFZmRTSUJhaUFCY3lBQ0tBSUVJZ0ZQRFFBZ0FDQUthaTBBQUNJSElBWnJJZ1FnQkVFZmRTSUVhaUFFY3lBQ0tBSUlJZ3hQRFFBZ0FDQURhaTBBQUNJRUlBaHJJZ3NnQzBFZmRTSUxhaUFMY3lBTVR3MEFJQVVnQkNBR2FpQUhRUUYwYWtFQ2FrRUNkam9BQUNBQUlBZ2dCRUVCZEdvZ0IycEJBbXBCQW5ZNkFBQWdBaWdDQkNFQkN3SkFJQUJCQVdvaUJpQU5haUlNTFFBQUlnZ2dBQzBBQVNJSGF5SUVJQVJCSDNVaUJHb2dCSE1nQVU4TkFDQUdJQXBxTFFBQUlnUWdDR3NpQlNBRlFSOTFJZ1ZxSUFWeklBSW9BZ2dpQzA4TkFDQURJQVpxTFFBQUlnVWdCMnNpQ1NBSlFSOTFJZ2xxSUFseklBdFBEUUFnRENBRklBaHFJQVJCQVhScVFRSnFRUUoyT2dBQUlBWWdCeUFGUVFGMGFpQUVha0VDYWtFQ2Rqb0FBQ0FDS0FJRUlRRUxBa0FnQUVFQ2FpSUdJQTFxSWd3dEFBQWlDQ0FBTFFBQ0lnZHJJZ1FnQkVFZmRTSUVhaUFFY3lBQlR3MEFJQVlnQ21vdEFBQWlCQ0FJYXlJRklBVkJIM1VpQldvZ0JYTWdBaWdDQ0NJTFR3MEFJQU1nQm1vdEFBQWlCU0FIYXlJSklBbEJIM1VpQ1dvZ0NYTWdDMDhOQUNBTUlBVWdDR29nQkVFQmRHcEJBbXBCQW5ZNkFBQWdCaUFISUFWQkFYUnFJQVJxUVFKcVFRSjJPZ0FBSUFJb0FnUWhBUXNDUUNBQVFRTnFJZ1lnRFdvaURDMEFBQ0lJSUFBdEFBTWlCMnNpQkNBRVFSOTFJZ1JxSUFSeklBRlBEUUFnQmlBS2FpMEFBQ0lFSUFocklnVWdCVUVmZFNJRmFpQUZjeUFDS0FJSUlndFBEUUFnQXlBR2FpMEFBQ0lGSUFkcklna2dDVUVmZFNJSmFpQUpjeUFMVHcwQUlBd2dCU0FJYWlBRVFRRjBha0VDYWtFQ2Rqb0FBQ0FHSUFjZ0JVRUJkR29nQkdwQkFtcEJBblk2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJCR29pQmlBTmFpSU1MUUFBSWdnZ0FDMEFCQ0lIYXlJRUlBUkJIM1VpQkdvZ0JITWdBVThOQUNBR0lBcHFMUUFBSWdRZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFJb0FnZ2lDMDhOQUNBRElBWnFMUUFBSWdVZ0Iyc2lDU0FKUVI5MUlnbHFJQWx6SUF0UERRQWdEQ0FGSUFocUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFZZ0J5QUZRUUYwYWlBRWFrRUNha0VDZGpvQUFDQUNLQUlFSVFFTEFrQWdBRUVGYWlJR0lBMXFJZ3d0QUFBaUNDQUFMUUFGSWdkcklnUWdCRUVmZFNJRWFpQUVjeUFCVHcwQUlBWWdDbW90QUFBaUJDQUlheUlGSUFWQkgzVWlCV29nQlhNZ0FpZ0NDQ0lMVHcwQUlBTWdCbW90QUFBaUJTQUhheUlKSUFsQkgzVWlDV29nQ1hNZ0MwOE5BQ0FNSUFVZ0NHb2dCRUVCZEdwQkFtcEJBblk2QUFBZ0JpQUhJQVZCQVhScUlBUnFRUUpxUVFKMk9nQUFJQUlvQWdRaEFRc0NRQ0FBUVFacUlnWWdEV29pREMwQUFDSUlJQUF0QUFZaUIyc2lCQ0FFUVI5MUlnUnFJQVJ6SUFGUERRQWdCaUFLYWkwQUFDSUVJQWhySWdVZ0JVRWZkU0lGYWlBRmN5QUNLQUlJSWd0UERRQWdBeUFHYWkwQUFDSUZJQWRySWdrZ0NVRWZkU0lKYWlBSmN5QUxUdzBBSUF3Z0JTQUlhaUFFUVFGMGFrRUNha0VDZGpvQUFDQUdJQWNnQlVFQmRHb2dCR3BCQW1wQkFuWTZBQUFnQWlnQ0JDRUJDeUFOSUFCQkIyb2lEV29pQ0MwQUFDSUdJQUF0QUFjaUFHc2lCeUFIUVI5MUlnZHFJQWR6SUFGUERRRWdDaUFOYWkwQUFDSUJJQVpySWdvZ0NrRWZkU0lLYWlBS2N5QUNLQUlJSWdwUERRRWdBeUFOYWkwQUFDSUNJQUJySWdNZ0EwRWZkU0lEYWlBRGN5QUtUdzBCSUFnZ0FpQUdhaUFCUVFGMGFrRUNha0VDZGpvQUFDQU5JQUFnQWtFQmRHb2dBV3BCQW1wQkFuWTZBQUFQQzBFQUlBTnJJZ2RCQVhRaEJDQUJJQUlvQWdCcVFYOXFMUUFBSWdGQkFXb2hCaUFCUVg5eklRaEJDQ0VCQTBBQ1FDQUFJQWRxSWdVdEFBQWlDaUFBTFFBQUlnMXJJZ3dnREVFZmRTSU1haUFNY3lBQ0tBSUVUdzBBSUFBZ0JHb3RBQUFpRENBS2F5SUxJQXRCSDNVaUMyb2dDM01nQWlnQ0NDSUxUdzBBSUFBZ0Eyb3RBQUFpQ1NBTmF5SU9JQTVCSDNVaURtb2dEbk1nQzA4TkFDQUZJQW9nQ0NBR0lBMGdDbXRCQW5RZ0NXc2dER3BCQkdwQkEzVWlDaUFLSUFaS0d5QUtJQWhJR3lJS2FrR3dMbW90QUFBNkFBQWdBQ0FOSUFwclFiQXVhaTBBQURvQUFBc2dBRUVCYWlFQUlBRkJmMm9pQVEwQUN3c0w2Z2dCQW44Z0FVRUFRYmdIRUFjaEFrRUJJUUVDUUFKQUlBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBZ0FDUUNBRFFRRkhEUUFnQUVFSUVBTWlBMEYvUmcwQklBSWdBellDQkNBRFFmOEJSdzBBSUFCQkVCQURJZ05CZjBZTkFTQUNJQU0yQWdnZ0FFRVFFQU1pQTBGL1JnMEJJQUlnQXpZQ0RBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDRUNBRFFRRkdCRUFnQUVFQkVBTWlBMEYvUmcwQklBSWdBMEVCUmpZQ0ZBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDR0FKQUFrQWdBMEVCUmdSQUlBQkJBeEFESWdOQmYwWU5BeUFDSUFNMkFod2dBRUVCRUFNaUEwRi9SZzBESUFJZ0EwRUJSallDSUNBQVFRRVFBeUlEUVg5R0RRTWdBaUFEUVFGR05nSWtJQU5CQVVjTkFTQUFRUWdRQXlJRFFYOUdEUU1nQWlBRE5nSW9JQUJCQ0JBRElnTkJmMFlOQXlBQ0lBTTJBaXdnQUVFSUVBTWlBMEYvUncwQ0RBTUxJQUpCQlRZQ0hBc2dBa0tDZ0lDQUlEY0NLRUVDSVFNTElBSWdBellDTUNBQVFRRVFBeUlEUVg5R0RRQWdBaUFEUVFGR05nSTBBa0FnQTBFQlJ3MEFJQUFnQWtFNGFoQUNJZ0VOQVNBQ0tBSTRRUVZMRFFJZ0FDQUNRVHhxRUFJaUFRMEJJQUlvQWp4QkJVME5BQXdDQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDUUNBRFFRRkdCRUFnQUJBUElRRWdBRUVnRUFzaEF5QUJSUTBDSUFOQmYwWU5BaUFDSUFFMkFrUWdBQkFQSVFFZ0FFRWdFQXNoQXlBQlJRMENJQU5CZjBZTkFpQUNJQUUyQWtoQkFTRUJJQUJCQVJBRElnTkJmMFlOQVNBQ0lBTkJBVVkyQWt3TElBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBbEFDUUNBRFFRRkdCRUFnQUNBQ1FkUUFhaEFjSWdGRkRRRU1BZ3NnQWtFQk5nSlVJQUpDbUlDQWdJQUROd0xvQXlBQ1FwaUFnSUNBQXpjQzRBTWdBa0dCa0txSkFUWUM0QUVnQWtHQmtLcUpBVFlDWUF0QkFTRUJJQUJCQVJBRElnTkJmMFlOQUNBQ0lBTkJBVVkyQXZBREFrQWdBMEVCUmdSQUlBQWdBa0gwQTJvUUhDSUJSUTBCREFJTElBSkJBVFlDOUFNZ0FrS1lnSUNBZ0FNM0FvZ0hJQUpDbUlDQWdJQUROd0tBQnlBQ1FZRzR1UElBTmdLQUJTQUNRWUc0dVBJQU5nS0FCQXNDUUNBQ0tBSlFSUVJBSUFJb0F2QURSUTBCQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBCSUFJZ0EwRUJSallDa0FjTFFRRWhBU0FBUVFFUUF5SURRWDlHRFFBZ0FpQURRUUZHTmdLVUJ5QUFRUUVRQXlJRFFYOUdEUUFnQWlBRFFRRkdOZ0tZQndKQUlBTkJBVVlFUUNBQVFRRVFBeUlEUVg5R0RRSWdBaUFEUVFGR05nS2NCeUFBSUFKQm9BZHFFQUlpQVEwQ0lBSW9BcUFIUVJCTERRTWdBQ0FDUWFRSGFoQUNJZ0VOQWlBQ0tBS2tCMEVRU3cwRElBQWdBa0dvQjJvUUFpSUJEUUlnQWlnQ3FBZEJFRXNOQXlBQUlBSkJyQWRxRUFJaUFRMENRUUVoQVNBQ0tBS3NCMEVRU3cwQ0lBQWdBa0d3QjJvUUFpSUJEUUlnQUNBQ1FiUUhhaEFDSWdGRkRRRU1BZ3NnQWtFUU5nSzBCeUFDUXBDQWdJQ0FBamNDckFjZ0FrS0JnSUNBZ0FJM0FxUUhJQUpDZ1lDQWdDQTNBcHdIQzBFQUlRRUxJQUVQQzBFQkMwMEJBbjhqQUVFUWF5SURKQUJCQVNFRUFrQWdBQ0FEUVF4cUVBSU5BQ0FES0FJTUlnQkJMMHNOQUNBQlFkQS9RWURBQUNBQ0d5QUFhaTBBQURZQ0FFRUFJUVFMSUFOQkVHb2tBQ0FFQ3o0QkFuOENRQ0FBS0FJTVFRTjBJQUFvQWhCcklnRkZCRUFNQVF0QkFTRUNJQUZCQ0VzTkFFRUJJQUZCZjJwMElBQVFEMEVnSUFGcmRrY1BDeUFDQ3pJQkFuOENRRUdBZ0lEQUFDSUJJQUJ4RFFBRFFDQUNRUUZxSVFJZ0FVRUJkaUlCUlEwQklBQWdBWEZGRFFBTEN5QUNDNG9DQVFkL0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRUNRUUVoQXlBQlFRWlBCRUJCQUNFRElBSWdBVUdRUEdvdEFBQkJmMnAwSVFJTElBQWdBQ2dDQUNJQklBQW9BZ2dpQkdzaUJTQUFLQUlFSWdZZ0FDZ0NEQ0lIYXlJSWF5QUNiQ0FEZFRZQ0RDQUFJQVVnQ0dvZ0Ftd2dBM1UyQWdnZ0FDQUJJQVJxSWdFZ0JpQUhhaUlFYXlBQ2JDQURkVFlDQkNBQUlBRWdCR29nQW13Z0EzVTJBZ0FnQUNBQUtBSWNJZ0VnQUNnQ0ZDSUVhaUlGSUFBb0FoZ2lCaUFBS0FJUUlnZHFJZ2hxSUFKc0lBTjFOZ0lRSUFBZ0JDQUJheUlCSUFjZ0Jtc2lCR29nQW13Z0EzVTJBaGdnQUNBSUlBVnJJQUpzSUFOMU5nSVVJQUFnQkNBQmF5QUNiQ0FEZFRZQ0hBdlBDQUVVZnlBQUlBQW9BaXdpQWlBQUtBSU1JZ1pxSWdVZ0FDZ0NOQ0lFSUFBb0FpQWlFR29pQ21zaUVUWUNMQ0FBS0FJb0lRTWdBQ0FHSUFKcklnY2dFQ0FFYXlJRWF5SUdOZ0lvSUFBb0FpUWhBaUFBSUFRZ0Iyb2lCRFlDSkNBQUlBVWdDbW9pQlRZQ0lDQUFJQUFvQWh3aUNpQUFLQUlJSWdkcUlnZ2dBQ2dDTUNJTUlBQW9BaEFpQ1dvaUMyc2lFRFlDSENBQUtBSVlJUThnQUNBSElBcHJJZ2NnQ1NBTWF5SU1heUlLTmdJWUlBQW9BaFFoQ1NBQUlBY2dER29pQnpZQ0ZDQUFJQWdnQzJvaUNEWUNFQ0FBSUFrZ0FDZ0NBQ0lMYWlJU0lBOGdBQ2dDQkNJTmFpSU9heUlNTmdJTUlBQWdDeUFKYXlJSklBMGdEMnNpQzJzaUR6WUNDQ0FBSUFrZ0Myb2lDVFlDQkNBQUlBNGdFbW9pQ3pZQ0FDQUFJQUlnQUNnQ09DSU5haUlUSUFNZ0FDZ0NQQ0lPYWlJVWF5SVNOZ0k4SUFBZ0FpQU5heUlDSUFNZ0Rtc2lBMnNpRFRZQ09DQUFJQUlnQTJvaURqWUNOQ0FBSUJNZ0ZHb2lFellDTUNBQlFaQThhaTBBQUNFQ0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRURJQUZCREU4RVFDQUFJQU1nQWtGK2FuUWlBU0FGSUF0cUlnTWdDQ0FUYWlJQ2EydzJBakFnQUNBTElBVnJJZ1VnQ0NBVGF5SUlheUFCYkRZQ0lDQUFJQVVnQ0dvZ0FXdzJBaEFnQUNBQ0lBTnFJQUZzTmdJQUlBQWdCQ0FKYWlJRElBY2dEbW9pQW1zZ0FXdzJBalFnQUNBSklBUnJJZ1FnQnlBT2F5SUZheUFCYkRZQ0pDQUFJQVFnQldvZ0FXdzJBaFFnQUNBQ0lBTnFJQUZzTmdJRUlBQWdCaUFQYWlJRElBb2dEV29pQW1zZ0FXdzJBamdnQUNBUElBWnJJZ1lnQ2lBTmF5SUVheUFCYkRZQ0tDQUFJQVFnQm1vZ0FXdzJBaGdnQUNBQ0lBTnFJQUZzTmdJSUlBQWdEQ0FSYXlJRElCQWdFbXNpQW1zZ0FXdzJBaXdnQUNBQ0lBTnFJQUZzTmdJY0lBQWdFQ0FTYWlJRElBd2dFV29pQW1vZ0FXdzJBZ3dnQUNBQ0lBTnJJQUZzTmdJOER3c2dBRUVCUVFJZ0FVRjZha0VHU1JzaUFTQUZJQXRxSWhRZ0NDQVRhaUlWYXlBRGJHcEJBaUFDYXlJQ2RUWUNNQ0FBSUFzZ0JXc2lCU0FJSUJOcklnaHJJQU5zSUFGcUlBSjFOZ0lnSUFBZ0JTQUlhaUFEYkNBQmFpQUNkVFlDRUNBQUlCUWdGV29nQTJ3Z0FXb2dBblUyQWdBZ0FDQUVJQWxxSWdVZ0J5QU9haUlJYXlBRGJDQUJhaUFDZFRZQ05DQUFJQWtnQkdzaUJDQUhJQTVySWdkcklBTnNJQUZxSUFKMU5nSWtJQUFnQkNBSGFpQURiQ0FCYWlBQ2RUWUNGQ0FBSUFVZ0NHb2dBMndnQVdvZ0FuVTJBZ1FnQUNBR0lBOXFJZ1FnQ2lBTmFpSUZheUFEYkNBQmFpQUNkVFlDT0NBQUlBOGdCbXNpQmlBS0lBMXJJZ3BySUFOc0lBRnFJQUoxTmdJb0lBQWdCaUFLYWlBRGJDQUJhaUFDZFRZQ0dDQUFJQVFnQldvZ0Eyd2dBV29nQW5VMkFnZ2dBQ0FNSUJGcklnWWdFQ0FTYXlJRWF5QURiQ0FCYWlBQ2RUWUNMQ0FBSUFRZ0Jtb2dBMndnQVdvZ0FuVTJBaHdnQUNBUUlCSnFJZ1lnRENBUmFpSVJhaUFEYkNBQmFpQUNkVFlDRENBQUlCRWdCbXNnQTJ3Z0FXb2dBblUyQWp3THZRVUJCbjhqQUVFZ2F5SUZKQUFnQTBFQU5nSUFBa0FnQVNnQ0FDSUdRUkpMRFFCQkFTQUdkQ0lHUWNEZkgzRkZCRUFnQmtFaWNVVU5BU0FDUWJRS2FpZ0NBQVJBSUFOQkFUWUNBQ0FDUVFBMkFyUUtDeUFBSUFWQkhHb1FJQ0lFRFFGQjhQOERJUVFnQWlBRktBSWNRUUowYWlnQ2xBRWlDRVVOQVNBQ0lBZ29BZ1FpQmtFQ2RHb29BaFFpQjBVTkFRSkFJQUlvQWdnaUNVRWdSZzBBSUFZZ0NVWU5BQ0FCS0FJQVFRVkhEUUlMQWtBZ0FrR1lDbW9vQWdBaUJDQUJLQUlFSWdaR0RRQWdCRUVBSUFZYkRRQWdBMEVCTmdJQUN5QUJLQUlBSVFRQ1FBSkFJQUlvQXBRS1FRVkdCRUFnQkVFRlJ3MEJEQUlMSUFSQkJVY05BUXNnQTBFQk5nSUFDMEVCSVFRZ0FDQUhLQUlNSUFWQkdHb1FQUTBCSUFVb0FoZ2lCaUFDUVp3S2FpZ0NBRWNFUUNBQ0lBWTJBcHdLSUFOQkFUWUNBQXNnQVNnQ0FFRUZSZ1JBSUFBZ0J5Z0NEQ0FGUVJScUVEd05BZ0pBSUFJb0FwUUtRUVZIQkVBZ0JTZ0NGQ0VFREFFTElBSkJvQXBxS0FJQUlnUWdCU2dDRkNJR1JnMEFJQU5CQVRZQ0FDQUdJUVFMSUFKQm9BcHFJQVEyQWdBTEFrQWdCeWdDRUNJRVFRRkxEUUFnQkVFQmF3UkFRUUVoQkNBQUlBY2dBU2dDQUNBRlFRaHFFRHNOQXlBRktBSUlJZ1FnQWtHa0Ntb29BZ0JIQkVBZ0FpQUVOZ0trQ2lBRFFRRTJBZ0FMSUFnb0FnaEZEUUVnQUNBSElBRW9BZ0FnQlVFUWFoQTZJZ1FOQXlBRktBSVFJZ0FnQWtHb0Ntb29BZ0JHRFFFZ0FpQUFOZ0tvQ2lBRFFRRTJBZ0FNQVFzZ0J5Z0NHQTBBSUFBZ0J5QUJLQUlBSUFnb0FnZ2dCVUVJYWhBNUlnUU5BaUFGS0FJSUlnQWdBa0dzQ21vb0FnQkhCRUFnQWlBQU5nS3NDaUFEUVFFMkFnQUxJQWdvQWdoRkRRQWdCU2dDRENJQUlBSkJzQXBxS0FJQVJnMEFJQUlnQURZQ3NBb2dBMEVCTmdJQUN5QUNJQUVwQWdBM0FwUUtRUUFoQkF3QkN5QURRUUUyQWdBTElBVkJJR29rQUNBRUMzOEJBMzhDUUFKQUFrQWdBRUg4Q21vb0FnQUVRQ0FBS0FLWUNTSUREUUZCQVE4TFFRRWhBU0FBUWF3SmFpZ0NBQ0FBS0FLWUNVY05BUXdDQ3lBQUtBSzhDU0VCUVFBaEFBTkFJQUlnQVNBQVFkZ0JiR29vQXNRQlFRQkhhaUVDSUFCQkFXb2lBQ0FEUncwQUMwRUJJUUVnQWlBRFJnMEJDMEVBSVFFTElBRUxTZ0VEZnlBQVFnQTNBcWdKSUFBb0FwZ0pJZ0VFUUNBQUtBSzhDU0VDUVFBaEFBTkFJQUlnQUVIWUFXeHFJZ05CQURZQ3hBRWdBMEVBTmdJRUlBQkJBV29pQUNBQlJ3MEFDd3NMZ3dZQkRIOUJBU0VHQWtBZ0FDQUJRUUowYWlnQ2xBRWlCRVVOQUNBQUlBUW9BZ1FpQ1VFQ2RHb2lDa0VVYWlnQ0FDSURSUTBBQWtBZ0JDZ0NEQ0lGUVFKSkRRQWdBeWdDTkNJSElBTW9BamhzSVFnQ1FDQUVLQUlRSWdOQkFrc05BQUpBQWtBQ1FDQURRUUZyRGdJREFBRUxJQVZCZjJvaEN5QUVLQUljSVF3Z0JDZ0NHQ0VOUVFBaEF3d0JDeUFFS0FJVUlRZEJBQ0VEQTBBZ0J5QURRUUowYWlnQ0FDQUlUUVJBSUFVZ0EwRUJhaUlEUncwQkRBUUxDMEVCRHdzRFFDQU5JQU5CQW5RaUJXb29BZ0FpRGlBRklBeHFLQUlBSWdWTERRTWdCU0FJVHcwRElBNGdCM0FnQlNBSGNFMEVRQ0FEUVFGcUlnTWdDMFlOQXd3QkN3dEJBUThMSUFOQmZXcEJBazBFUUNBRUtBSWtJQWhORFFFTUFnc2dBMEVHUncwQUlBUW9BaWdnQ0VrTkFRc0NRQ0FBS0FJRUlnTkJnQUpHQkVBZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQW9BclFhQkVBZ0FFRUFOZ0swR2lBQUtBSzhDUkFFSUFCQkFEWUN2QWtnQUNnQ2xBa1FCQ0FBSUFBb0FwZ0pJZ0ZCMkFGc0lnUVFDaUlDTmdLOENTQUFJQUZCQW5RUUNpSUROZ0tVQ1VILy93TWhCaUFDUlEwQ0lBTkZEUUlnQWtFQUlBUVFCeUFBS0FJUUtBSTBJQUVRVGlBQUtBSVFJUUZCQVNFQ0FrQWdBQ2dDd0FrTkFDQUJLQUlRUVFKR0RRQUNRQ0FCS0FKUVJRMEFJQUVvQWxRaUJDZ0NtQWRGRFFBZ0JDZ0NzQWRGRFFFTFFRQWhBZ3NnQUVIRUNXb2dBU2dDT0NBQktBSTBiQ0FCS0FKWUlBRW9BaXdnQVNnQ0RDQUNFRndpQmtVTkFRd0NDeUFCSUFOR0RRQWdBQ2dDQ0NBSlJ3UkFJQUpGRFFJZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQWdCRFlDRENBQUlBRTJBZ1FMUVFBaEJnc2dCZ3UyQVFFRGZ3SkFJQUFnQVNnQ0FDSURRUUowYWlJQ0tBS1VBU0lFUlFSQUlBSkJ5QUFRQ2lJQU5nS1VBU0FBRFFFUEN3SkFJQU1nQUNnQ0JFY05BQ0FCS0FJRUlBQW9BZ2hHRFFBZ0FFR0JBallDQkFzZ0JDZ0NGQkFFSUFJb0FwUUJRUUEyQWhRZ0FpZ0NsQUVvQWhnUUJDQUNLQUtVQVVFQU5nSVlJQUlvQXBRQktBSWNFQVFnQWlnQ2xBRkJBRFlDSENBQ0tBS1VBU2dDTEJBRUlBSW9BcFFCUVFBMkFpd0xJQUlvQXBRQklBRkJ5QUFRRlJvTDFnRUJBMzhDUUNBQUlBRW9BZ2dpQTBFQ2RHb2lBaWdDRkNJRVJRUkFJQUpCM0FBUUNpSUFOZ0lVSUFBTkFROExJQUFvQWdnZ0EwWUVRQ0FCSUFBb0FoQVFRZ1JBSUFJb0FoUW9BaWdRQkNBQ0tBSVVRUUEyQWlnZ0FpZ0NGQ2dDVkJBRUlBSW9BaFJCQURZQ1ZDQUFRUUEyQWhBZ0FFR0JBallDQkNBQVFpRTNBZ2dNQWdzZ0FTZ0NLQkFFSUFGQkFEWUNLQ0FCS0FKVUVBUWdBVUVBTmdKVUR3c2dCQ2dDS0JBRUlBSW9BaFJCQURZQ0tDQUNLQUlVS0FKVUVBUWdBaWdDRkVFQU5nSlVDeUFDS0FJVUlBRkIzQUFRRlJvTDBnSUJBMzhqQUVFZ2F5SUVKQUFnQkNBQktBSVFOZ0lRSUFRZ0FTa0NDRGNEQ0NBRUlBRXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUJEUUFnQkNBRVFSeHFFQUlpQVEwQUlBUWdCRUVjYWhBQ0lnRU5BQ0FDS0FJTUlRWkJBQ0VCQTBBZ0FTSUZRUUZxSVFFZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQVF3QkN5QUVJQVJCSEdvUUFpSUJEUUFDUUNBQ0tBSVFJZ0VFZnlBQkJTQUNLQUlVSVFaQkFDRUJBMEFnQVNJRlFRRnFJUUVnQmlBRmRnMEFDeUFFSUFWQmYyb1FBMEYvUmdSQVFRRWhBUXdEQ3lBREtBSUlCRUFnQkNBRVFSaHFFQVVpQVEwREN5QUNLQUlRQzBFQlJ3MEFJQUlvQWhnTkFDQUVJQVJCR0dvUUJTSUJEUUVnQXlnQ0NFVU5BQ0FFSUFSQkdHb1FCU0lCRFFFTElBTW9Ba1FFUUNBRUlBUkJIR29RQWlJQkRRRUxJQUFnQkVFQkVBTWlBRFlDQUNBQVFYOUdJUUVMSUFSQklHb2tBQ0FCQzhZQkFRSi9Jd0JCSUdzaUJTUUFJQVVnQUNnQ0VEWUNFQ0FGSUFBcEFnZzNBd2dnQlNBQUtRSUFOd01BQWtBZ0JTQUZRUnhxRUFJaUFBMEFJQVVnQlVFY2FoQUNJZ0FOQUNBRklBVkJIR29RQWlJQURRQWdBU2dDRENFR1FRQWhBQU5BSUFBaUFVRUJhaUVBSUFZZ0FYWU5BQXNnQlNBQlFYOXFFQU5CZjBZRVFFRUJJUUFNQVFzZ0FrRUZSZ1JBSUFVZ0JVRWNhaEFDSWdBTkFRc2dCU0FFRUFVaUFBMEFJQU1FUUNBRklBUkJCR29RQlNJQURRRUxRUUFoQUFzZ0JVRWdhaVFBSUFBTDRRRUJBMzhqQUVFZ2F5SUVKQUFnQkNBQUtBSVFOZ0lRSUFRZ0FDa0NDRGNEQ0NBRUlBQXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUFEUUFnQkNBRVFSeHFFQUlpQUEwQUlBUWdCRUVjYWhBQ0lnQU5BQ0FCS0FJTUlRWkJBQ0VBQTBBZ0FDSUZRUUZxSVFBZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUNRUVZHQkVBZ0JDQUVRUnhxRUFJaUFBMEJDeUFCS0FJVUlRSkJBQ0VBQTBBZ0FDSUJRUUZxSVFBZ0FpQUJkZzBBQ3lBRUlBRkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUVJQU1RQlNFQUN5QUVRU0JxSkFBZ0FBdm1BUUVEZnlNQVFTQnJJZ1FrQUNBRUlBQW9BaEEyQWhBZ0JDQUFLUUlJTndNSUlBUWdBQ2tDQURjREFBSkFJQVFnQkVFY2FoQUNJZ0FOQUNBRUlBUkJIR29RQWlJQURRQWdCQ0FFUVJ4cUVBSWlBQTBBSUFFb0Fnd2hCa0VBSVFBRFFDQUFJZ1ZCQVdvaEFDQUdJQVYyRFFBTElBUWdCVUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQUpCQlVZRVFDQUVJQVJCSEdvUUFpSUFEUUVMSUFFb0FoUWhBa0VBSVFBRFFDQUFJZ0ZCQVdvaEFDQUNJQUYyRFFBTElBUWdBVUYvYWhBRElnQkJmMFlFUUVFQklRQU1BUXNnQXlBQU5nSUFRUUFoQUFzZ0JFRWdhaVFBSUFBTGtnRUJBbjhqQUVFZ2F5SURKQUFnQXlBQUtBSVFOZ0lRSUFNZ0FDa0NBRGNEQUNBRElBQXBBZ2czQXdnQ1FDQURJQU5CSEdvUUFpSUFEUUFnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BRUVBSVFBRFFDQUFJZ1JCQVdvaEFDQUJJQVIyRFFBTElBTWdCRUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQU1nQWhBQ0lRQUxJQU5CSUdva0FDQUFDNWNCQVFKL0l3QkJJR3NpQXlRQUlBTWdBQ2dDRURZQ0VDQURJQUFwQWdnM0F3Z2dBeUFBS1FJQU53TUFBa0FnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BQ0FESUFOQkhHb1FBaUlBRFFCQkFDRUFBMEFnQUNJRVFRRnFJUUFnQVNBRWRnMEFDeUFESUFSQmYyb1FBeUlBUVg5R0JFQkJBU0VBREFFTElBSWdBRFlDQUVFQUlRQUxJQU5CSUdva0FDQUFDNjhPQVFwL0l3QkJFR3NpQlNRQUlBRkJBRUhjQnhBSElRY2dBaWdDTkNFR0lBSW9BamdoQ0FKQUlBQWdCVUVFYWhBQ0lnRU5BQ0FISUFVb0FnUWlBVFlDQUNBQklBWWdDR3dpQzA4RVFFRUJJUUVNQVFzZ0FDQUZRUVJxRUFJaUFRMEFJQWNnQlNnQ0JDSUdOZ0lFSUFaQkIwc0VRRUVCSVFFTUFRdEJBU0VCQWtBQ1FDQUdRUUZyRGdjQ0FRSUNBQUlCQUFzZ0JDZ0NBRUVGUmdSQURBSUxJQUlvQWl3TkFBd0JDeUFBSUFWQkJHb1FBaUlCRFFBZ0J5QUZLQUlFSWdZMkFnaEJBU0VCSUFZZ0F5Z0NBRWNOQUNBQ0tBSU1JUWhCQUNFQkEwQWdBU0lHUVFGcUlRRWdDQ0FHZGcwQUMwRUJJUUVnQUNBR1FYOXFFQU1pQmtGL1JnMEFJQVpCQUNBRUtBSUFJZ2hCQlVZYkRRQWdCeUFHTmdJTUlBaEJCVVlFUUNBQUlBVkJCR29RQWlJQkRRRWdCeUFGS0FJRUlnWTJBaEJCQVNFQklBWkIvLzhEU3cwQkN3SkFJQUlvQWhBaUFRUi9JQUVGSUFJb0FoUWhDRUVBSVFFRFFDQUJJZ1pCQVdvaEFTQUlJQVoyRFFBTElBQWdCa0YvYWhBRElnRkJmMFlFUUVFQklRRU1Bd3NnQnlBQk5nSVVJQU1vQWdnRVFDQUFJQVVRQlNJQkRRTWdCeUFGS0FJQU5nSVlDeUFFS0FJQVFRVkdCRUJCQVNFQklBY29BaFFpQmlBQ0tBSVVRUUYyU3cwRElBWkJBQ0FIS0FJWUlnaEJIM1VnQ0hGclJ3MERDeUFDS0FJUUMwRUJSdzBBSUFJb0FoZ05BQ0FBSUFVUUJTSUJEUUVnQnlBRktBSUFOZ0ljSUFNb0FnZ0VRQ0FBSUFVUUJTSUJEUUlnQnlBRktBSUFOZ0lnQ3lBRUtBSUFRUVZIRFFCQkFTRUJJQWNvQWh3aUJpQUhLQUlnSUFZZ0FpZ0NJR3BxSWdnZ0JpQUlTQnNOQVFzZ0F5Z0NSQVJBSUFBZ0JVRUVhaEFDSWdFTkFTQUhJQVVvQWdRaUJqWUNKRUVCSVFFZ0JrSC9BRXNOQVFzQ1FDQUhLQUlFSWdGQkJVc05BQUpBSUFGQkFXc09CQUVCQVFFQUMwRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDS0FKQUlBWUVRQ0FBSUFWQkJHb1FBaUlCRFFOQkFTRUJJQVVvQWdRaUJrRVBTdzBESUFaQkFXb2hCZ3dCQ3lBREtBSXdJZ1pCRUVzTkFnc2dCeUFHTmdJc0lBY29BZ1FoQVFzQ1FDQUJRUVZMRFFBQ1FDQUJRUUZyRGdRQkFRRUJBQXNnQWlnQ0RDRUpJQWNvQWl3aENrRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDUkNBR1JRMEFRUUFoQVFOQUlBRWlCaUFLU3dSQVFRRWhBUXdEQ3lBQUlBVkJDR29RQWlJQkRRSWdCU2dDQ0NJQlFRTkxCRUJCQVNFQkRBTUxJQWNnQmtFTWJHb2lDQ0FCTmdKSUFrQWdBVUVCVFFSQUlBQWdCVUVNYWhBQ0lnRU5CQ0FGS0FJTUlnRWdDVThFUUVFQklRRU1CUXNnQ0NBQlFRRnFOZ0pNREFFTElBRkJBa2NOQUNBQUlBVkJER29RQWlJQkRRTWdDQ0FGS0FJTU5nSlFDeUFHUVFGcUlRRWdCU2dDQ0VFRFJ3MEFDMEVCSVFFZ0JrVU5BUXNDUUNBRUtBSUVSUTBBSUFRb0FnQWhCQ0FDS0FJc0lRbEJBU0VCSUFCQkFSQURJUUlnQkVFRlJnUkFJQUpCZjBZTkFpQUhJQUkyQXBRQ0lBQkJBUkFESWdKQmYwWU5BaUFISUFJMkFwZ0NJQWtOQVNBQ1JRMEJEQUlMSUFKQmYwWU5BU0FISUFJMkFwd0NJQUpGRFFBZ0NVRUJkRUVEYWlFT1FRQWhCa0VBSVFwQkFDRUVBMEFnQmlBT1JnUkFRUUVoQVF3REN5QUFJQVZCQ0dvUUFpSUJEUUlnQlNnQ0NDSUNRUVpMQkVCQkFTRUJEQU1MSUFjZ0JrRVViR29pQ0NBQ05nS2dBZ0ovSUFKQkFuSkJBMFlFUUNBQUlBVkJER29RQWlJQkRRUWdDQ0FGS0FJTVFRRnFOZ0trQWlBRktBSUlJUUlMSUFKQkFrWUxCRUFnQUNBRlFReHFFQUlpQVEwRElBZ2dCU2dDRERZQ3FBSWdCU2dDQ0NFQ0N3SkFJQUpCZldvaUFVRURTdzBBQWtBZ0FVRUJhdzRDQVFFQUN5QUFJQVZCREdvUUFpSUJEUU1nQ0NBRktBSU1OZ0tzQWlBRktBSUlJUUlMSUFKQkJFWUVRQ0FBSUFWQkRHb1FBaUlCRFFNZ0JTZ0NEQ0lCSUFsTEJFQkJBU0VCREFRTElBZ2dBVUYvYWtILy93TWdBUnMyQXJBQ0lBcEJBV29oQ2lBRktBSUlJUUlMSUFaQkFXb2hCaUFNSUFKQkJrWnFJUXdnQkNBQ1FRVkdhaUVFSUEwZ0FrRi9ha0VEU1dvaERTQUNEUUFMUVFFaEFTQUVJQXB5SUF4eVFRRkxEUUVnQkVVTkFDQU5EUUVMSUFBZ0JSQUZJZ0VOQUNBSElBVW9BZ0FpQVRZQ01DQUZJQUVnQXlnQ05Hb2lBallDQUVFQklRRWdBa0V6U3cwQUFrQWdBeWdDUEVVTkFDQUFJQVZCQkdvUUFpSUJEUUVnQnlBRktBSUVJZ0kyQWpSQkFTRUJJQUpCQWtzTkFTQUNRUUZHRFFBZ0FDQUZFQVVpQVEwQlFRRWhBU0FGS0FJQUlnSkJCbXBCREVzTkFTQUhJQUpCQVhRMkFqZ2dBQ0FGRUFVaUFRMEJRUUVoQVNBRktBSUFJZ0pCQm1wQkRFc05BU0FISUFKQkFYUTJBandMQWtBZ0F5Z0NERUVDU1EwQUlBTW9BaEJCZldwQkFrc05BRUVDUVFFZ0N5QUxJQU1vQWlRaUFXNGlBaUFCYkdzYklBSnFJUVJCQUNFQ0EwQWdCQ0FDSWdGQkFXb2lBbllOQUFzZ0JTQUFJQUlnQVNBRVFYOGdBWFJCZjNOeEd4QURJZ0EyQWdSQkFTRUJJQUJCZjBZTkFTQUhJQUEyQWtBZ0FDQUxJQU1vQWlRaUFHcEJmMm9nQUc1TERRRUxRUUFoQVFzZ0JVRVFhaVFBSUFFTHdRa0JEWDhnQXlBRWJDRUZJQUVvQWd3aUNVRUJSZ1JBSUFCQkFDQUZRUUowRUFjYUR3c0NRQUpBQWtBQ1FDQUJLQUlRSWdaQmZXcEJBazBFUUNBQktBSWtJQUpzSWdJZ0JTQUNJQVZKR3lFTElBWkJmbkZCQkVjTkFTQUZJQXRySUFzZ0FTZ0NJQnNoQndzQ1FBSkFBa0FnQmtFRlRRUkFJQVpCQVdzT0JRWUZCQU1DQVFzZ0JVVU5CaUFCS0FJc0lRSkJBQ0VCQTBBZ0FDQUJRUUowSWdOcUlBSWdBMm9vQWdBMkFnQWdBVUVCYWlJQklBVkhEUUFMREFZTEFrQWdDUVJBSUFFb0FoUWhBa0VBSVFZTUFRc2dCVVVOQmdOQURBQUFDd0FMQTBCQkFDRUVJQVlnQlU4TkJnTkFRUUFoQndKQUlBSWdCRUVDZEdvaUF5Z0NBQ0lCUlEwQUlBRWhCeUFGSUFaTkRRQkJBQ0VCUVFBZ0JTQUdheUlISUFjZ0JVc2JJUWdEUUNBQUlBRWdCbXBCQW5ScUlBUTJBZ0FnQVVFQmFpSUJJQU1vQWdBaUIwOE5BU0FCSUFoSERRQUxDeUFFUVFGcUlnUWdDVWxCQUNBR0lBZHFJZ1lnQlVrYkRRQUxJQVlnQlVrTkFBc01CUXNnQTBVTkJDQUVSUTBFUVFFZ0FTZ0NJQ0lKYXlFSVFRQWhCVUVBSVFJRFFFRUFJUUVnQlNFR0EwQWdBQ0FCSUFOc0lBSnFRUUowYWlBSklBZ2dCaUFIU1JzMkFnQWdCa0VCYWlFR0lBRkJBV29pQVNBRVJ3MEFDeUFFSUFWcUlRVWdBa0VCYWlJQ0lBTkhEUUFMREFRTElBVkZEUU5CQVNBQktBSWdJZ0pySVFOQkFDRUJBMEFnQUNBQlFRSjBhaUFDSUFNZ0FTQUhTUnMyQWdBZ0FVRUJhaUlCSUFWSERRQUxEQU1MSUFFb0FpQWhBaUFGQkVCQkFDRUJBMEFnQUNBQlFRSjBha0VCTmdJQUlBRkJBV29pQVNBRlJ3MEFDd3NnQzBVTkFpQURRWDlxSVE4Z0JFRi9haUVRSUFKQmYyb2hCa0VCSUFKQkFYUWlBV3NoQlNBQlFYOXFJUWtnQkNBQ2EwRUJkaUlLSVF3Z0F5QUNhMEVCZGlJTklRUWdDaUVJSUEwaEFVRUFJUWNEUUNBQUlBTWdDR3dnQVdwQkFuUnFJZzRvQWdBaUVVRUJSZ1JBSUE1QkFEWUNBQXNnRVVFQlJpRU9Ba0FDUUNBR1FYOUhEUUFnQVNBRVJ3MEFRUUFoQmlBSklRSWdCRUVCSUFSQkFVb2JRWDlxSWdFaEJBd0JDd0pBSUFaQkFVY05BQ0FCSUExSERRQkJBQ0VHSUFVaEFpQU5RUUZxSWdFZ0R5QUJJQTlJR3lJQklRME1BUXNDUUNBQ1FYOUhEUUFnQ0NBTVJ3MEFRUUFoQWlBRklRWWdERUVCSUF4QkFVb2JRWDlxSWdnaERBd0JDd0pBSUFKQkFVY05BQ0FJSUFwSERRQkJBQ0VDSUFraEJpQUtRUUZxSWdnZ0VDQUlJQkJJR3lJSUlRb01BUXNnQWlBSWFpRUlJQUVnQm1vaEFRc2dCeUFPYWlJSElBdEpEUUFMREFJTElBRW9BaHdoQnlBQktBSVlJUWdnQlFSQUlBbEJmMm9oQWtFQUlRRURRQ0FBSUFGQkFuUnFJQUkyQWdBZ0FVRUJhaUlCSUFWSERRQUxJQUpGRFFJTElBbEJmbW9oQVFOQUFrQWdDQ0FCSWdSQkFuUWlBV29vQWdBaUJpQURiaUlDSUFFZ0Iyb29BZ0FpQVNBRGJpSUZTdzBBSUFZZ0FpQURiR3NpQmlBQklBTWdCV3hySWdsTEJFQURRQ0FDUVFGcUlnSWdCVTBOQUF3Q0FBc0FDd05BSUFJZ0Eyd2hDaUFHSVFFRFFDQUFJQUVnQ21wQkFuUnFJQVEyQWdBZ0FVRUJhaUlCSUFsTkRRQUxJQUpCQVdvaUFpQUZUUTBBQ3dzZ0JFRi9haUVCSUFRTkFBc01BUXNnQlVVTkFFRUFJUUVEUUNBQUlBRkJBblJxSUFFZ0EyNGlBaUFKYkVFQmRpQUJJQUlnQTJ4cmFpQUpjRFlDQUNBQlFRRnFJZ0VnQlVjTkFBc0xDOFFCQVFWL0lBQW9BcWdKSVFRQ1FDQUFRYkFKYWlnQ0FDSUNSUTBBSUFKQmYyb2lBaUFCVFFSQUlBSWhBUXdCQ3lBQUtBSzhDU0VGQTBBQ1FDQUZJQUpCMkFGc2FpZ0NCQ0FFUncwQUlBTkJBV29pQXlBQUtBSVFLQUkwSWdaQkNpQUdRUXBMRzBrTkFDQUNJUUVNQWdzZ0FrRi9haUlDSUFGTERRQUxDd05BQWtBZ0FDZ0N2QWtnQVVIWUFXeHFJZ0lvQWdRZ0JFY05BQ0FDS0FMRUFTSURSUTBBSUFJZ0EwRi9hallDeEFFZ0FDZ0NsQWtnQUNnQ21Ba2dBUkFlSWdFTkFRc0xDNzBFQWd0L0FYNGpBRUhBQTJzaUJTUUFJQU1vQWdBaEJ5QUJLQUt3R2lFSUlBVkJBRFlDRENBQlFiQUpha0VBTmdJQUlBRWdBU2dDcUFsQkFXbzJBcWdKSUFVZ0F5Z0NNQ0FCS0FJTUtBSTBhallDQ0NBQlFjUUphaUVOSUFoQkRHb2hEZ0pBQTBBZ0FTZ0N2QWtoQkFKQUlBTW9BaVFOQUNBRUlBZEIyQUZzYWlnQ3hBRkZEUUJCQVNFRURBSUxJQU1wQWpRaER5QURLQUk4SVFzZ0FTZ0NxQWtoRENBRUlBZEIyQUZzSWdacUlnUWdBU2dDRENnQ09EWUNHQ0FFSUFzMkFoQWdCQ0FQTndJSUlBUWdERFlDQkFKQUlBTW9BZ1FpQkVFQ1JnMEFJQWtOQUNBRVFRZEdEUUFnQUNBRlFReHFFQUlpQkEwQ0lBVW9BZ3dpQkNBQktBS1lDU0FIYTBzRVFFRUJJUVFNQXdzZ0JFVUVRRUVBSVFrTUFRc2dEa0VBUWFRQkVBY2FJQWhCQURZQ0FFRUJJUWtMQWtBZ0JTZ0NEQ0lFQkVBZ0JTQUVRWDlxTmdJTURBRUxRUUFoQ1NBQUlBZ2dBU2dDdkFrZ0Jtb2dBeWdDQkNBREtBSXNFRkVpQkEwQ0N5QUJLQUs4Q1NBR2FpQUlJQUlnRFNBRlFRaHFJQWNnQVNnQ0RDZ0NRQ0FGUVJCcUVGQWlCQTBCSUFFb0Fyd0pJQVpxS0FMRUFTRUxJQUFRTGlFRUlBVW9BZ3doQmdKQUlBTW9BZ1JCZm1vaURFRUZTdzBBQWtBZ0RFRUJhdzRFQVFFQkFRQUxJQUVnQnpZQ3NBa0xJQVFnQm5JaEJrRUJJUVFnQVNnQ2xBa2dBU2dDbUFrZ0J4QWVJZ2RGUVFBZ0Joc05BU0FLSUF0QkFVWnFJUW9nQmcwQUN5QUJRYXdKYWlnQ0FDQUthaUlBSUFFb0FwZ0pTdzBBSUFFZ0FEWUNyQWxCQUNFRUN5QUZRY0FEYWlRQUlBUUw1Z0lCQjM5QkFTRUNBa0FnQUNnQ0FDQUJLQUlBUncwQUlBQW9BZ1FnQVNnQ0JFY05BQ0FBS0FJTUlBRW9BZ3hIRFFBZ0FDZ0NFQ0lESUFFb0FoQkhEUUFnQUNnQ0xDQUJLQUlzUncwQUlBQW9BakFnQVNnQ01FY05BQ0FBS0FJMElBRW9BalJIRFFBZ0FDZ0NPQ0FCS0FJNFJ3MEFJQUFvQWp3aUJTQUJLQUk4UncwQUlBQW9BbEFnQVNnQ1VFY05BQUpBSUFOQkFVc05BQ0FEUVFGclJRUkFJQUFvQWhnZ0FTZ0NHRWNOQWlBQUtBSWNJQUVvQWh4SERRSWdBQ2dDSUNBQktBSWdSdzBDSUFBb0FpUWlCQ0FCS0FJa1J3MENJQVJGRFFFZ0FTZ0NLQ0VHSUFBb0FpZ2hCMEVBSVFNRFFDQUhJQU5CQW5RaUNHb29BZ0FnQmlBSWFpZ0NBRWNOQXlBRUlBTkJBV29pQTBjTkFBc01BUXNnQUNnQ0ZDQUJLQUlVUncwQkN5QUZCRUFnQUNnQ1FDQUJLQUpBUncwQklBQW9Ba1FnQVNnQ1JFY05BU0FBS0FKSUlBRW9Ba2hIRFFFZ0FDZ0NUQ0FCS0FKTVJ3MEJDMEVBSVFJTElBSUwvd2tCQm44akFFRVFheUlFSkFBZ0FVRUFRZHdBRUFjaEF3SkFJQUJCQ0JBRElnRkJmMFlFUUVFQklRRU1BUXNnQXlBQk5nSUFJQUJCQVJBREdpQUFRUUVRQXhvZ0FFRUJFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUZFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUlFQU1pQVVGL1JnUkFRUUVoQVF3QkN5QURJQUUyQWdRZ0FDQURRUWhxRUFJaUFRMEFJQU1vQWdoQkgwc0VRRUVCSVFFTUFRc2dBQ0FFUVF4cUVBSWlBUTBBUVFFaEFTQUVLQUlNSWdKQkRFc05BQ0FEUVFFZ0FrRUVhblEyQWd3Z0FDQUVRUXhxRUFJaUFRMEFRUUVoQVNBRUtBSU1JZ0pCQWtzTkFDQURJQUkyQWhBQ1FDQUNRUUZMRFFBZ0FrRUJhd1JBSUFBZ0JFRU1haEFDSWdFTkFrRUJJUUVnQkNnQ0RDSUNRUXhMRFFJZ0EwRUJJQUpCQkdwME5nSVVEQUVMSUFCQkFSQURJZ0pCZjBZTkFTQURJQUpCQVVZMkFoZ2dBQ0FEUVJ4cUVBVWlBUTBCSUFBZ0EwRWdhaEFGSWdFTkFTQUFJQU5CSkdvUUFpSUJEUUZCQVNFQklBTW9BaVFpQWtIL0FVc05BU0FDQkVBZ0F5QUNRUUowRUFvaUFUWUNLQ0FCUlFSQVFmLy9BeUVCREFNTElBQWdBUkFGSWdFTkFrRUJJUUlEUUNBQ0lBTW9BaVJQRFFJZ0FrRUNkQ0VCSUFKQkFXb2hBaUFBSUFFZ0F5Z0NLR29RQlNJQlJRMEFDd3dDQ3lBRFFRQTJBaWdMSUFBZ0EwRXNhaEFDSWdFTkFFRUJJUUVnQXlnQ0xFRVFTdzBBSUFCQkFSQURJZ0pCZjBZTkFDQURJQUpCQVVZMkFqQWdBQ0FFUVF4cUVBSWlBUTBBSUFNZ0JDZ0NERUVCYWpZQ05DQUFJQVJCREdvUUFpSUJEUUJCQVNFQklBTWdCQ2dDREVFQmFqWUNPQ0FBUVFFUUEwRUJha0VDU1EwQUlBQkJBUkFEUVg5R0RRQWdBRUVCRUFNaUFrRi9SZzBBSUFNZ0FrRUJSaUlCTmdJOEFrQWdBVVVFUUNBREtBSTRJUVVnQXlnQ05DRUdEQUVMSUFBZ0EwRkFheEFDSWdFTkFTQUFJQU5CeEFCcUVBSWlBUTBCSUFBZ0EwSElBR29RQWlJQkRRRWdBQ0FEUWN3QWFoQUNJZ0VOQVVFQklRRWdBeWdDUUNBREtBSkVRWDl6SUFNb0FqUWlCa0VEZEdwS0RRRWdBeWdDU0NBREtBSk1RWDl6SUFNb0FqZ2lCVUVEZEdwS0RRRUxBa0FDUUFKQUFrQWdBeWdDQkVGMmFpSUhRU2xMRFFCQjR3QWhBVUdBcEFraEFnSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQjBFQmF3NHBBQUVCQ3dzTEN3c0xBUUlEQ3dzTEN3c0xDd01FQlFzTEN3c0xDd3NHQmdjTEN3c0xDd3NMQ0FrS0MwR01BeUVCUVlDTUZTRUNEQWtMUVl3RElRRkJnTmczSVFJTUNBdEJtQVloQVVHQXNPOEFJUUlNQnd0QjFBd2hBVUdBN0wwQklRSU1CZ3RCa0J3aEFVR0E4S1VESVFJTUJRdEJnQ2doQVVHQWdPQURJUUlNQkF0QmdNQUFJUUZCZ0lDQUJpRUNEQU1MUVlERUFDRUJRWUNBc0FZaEFnd0NDMEhBckFFaEFVR0F3SnNVSVFJTUFRdEJnS0FDSVFGQmdJRGdJU0VDQ3lBQklBVWdCbXdpQVU4TkFRc2dCRUgvLy8vL0J6WUNEQ0FES0FJc0lRSU1BUXNnQkNBQ0lBRkJnQU5zYmlJQlFSQWdBVUVRU1JzaUFUWUNEQ0FES0FJc0lnSWdBVTBOQVFzZ0JDQUNOZ0lNSUFJaEFRc2dBeUFCTmdKWVFRRWhBU0FBUVFFUUF5SUNRWDlHRFFBZ0F5QUNRUUZHTmdKUUFrQWdBa0VCUncwQUlBTkJ1QWNRQ2lJQk5nSlVJQUZGQkVCQi8vOERJUUVNQWdzZ0FDQUJFQ3dpQVEwQklBTW9BbFFpQWlnQ21BZEZEUUJCQVNFQklBSW9BckFISUFJb0FyUUhJZ0pMRFFFZ0FpQURLQUlzU1EwQklBSWdBeWdDV0VzTkFTQURJQUpCQVNBQ0d6WUNXQXNnQUJBZlFRQWhBUXNnQkVFUWFpUUFJQUVMalFRQkRuOGdBUUovQWtBZ0FDOEJJQ0lIRFFBZ0FDOEJIQTBBUVFBTUFRdEJBZ3MyQWlBZ0FRSi9Ba0FnQUM4QklpSUNEUUFnQUM4QkhnMEFRUUFNQVF0QkFnczJBaWdnQVFKL0FrQWdBQzhCS0NJRERRQWdBQzhCSkEwQVFRQU1BUXRCQWdzMkFqQWdBUUovQWtBZ0FDOEJLaUlJRFFBZ0FDOEJKZzBBUVFBTUFRdEJBZ3MyQWpnZ0FTQUhJQUF2QVN3aUNYSkJBRWRCQVhRMkFrQWdBU0FDSUFBdkFTNGlCSEpCQUVkQkFYUTJBa2dnQVNBRElBQXZBVFFpQlhKQkFFZEJBWFEyQWxBZ0FTQUlJQUF2QVRZaUNuSkJBRWRCQVhRMkFsZ2dBU0FBTHdFd0lnMGdDWEpCQUVkQkFYUTJBbUFnQVNBQUx3RXlJZ3NnQkhKQkFFZEJBWFEyQW1nZ0FTQUFMd0U0SWd3Z0JYSkJBRWRCQVhRMkFuQWdBU0FBTHdFNklnNGdDbkpCQUVkQkFYUTJBbmhCQWlFR0lBRWdBQzhCSGlJUEJIOUJBZ1VnQUM4QkhFRUFSMEVCZEFzMkFnd2dBU0FQSUFBdkFTUWlCbkpCQUVkQkFYUTJBaFFnQUM4QkppRUFJQUVnRENBT2NrRUFSMEVCZERZQ2ZDQUJJQXNnREhKQkFFZEJBWFEyQW5RZ0FTQUxJQTF5UVFCSFFRRjBOZ0pzSUFFZ0JTQUtja0VBUjBFQmREWUNYQ0FCSUFRZ0JYSkJBRWRCQVhRMkFsUWdBU0FFSUFseVFRQkhRUUYwTmdKTUlBRWdBeUFJY2tFQVIwRUJkRFlDUENBQklBSWdBM0pCQUVkQkFYUTJBalFnQVNBQ0lBZHlRUUJIUVFGME5nSXNJQUVnQUNBR2NrRUFSMEVCZERZQ0hBdk1CZ0VMZnlNQVFZQU9heUlPSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0NHb2dCRXNOQUNBSFFRVnFJZ29nQTJvZ0JVc05BQ0FFSVFnZ0F5RUpEQUVMSUFBZ0RrSEFDbW9nQWlBRElBUWdCU0FJSUFkQkJXb2lDaUFJRUF3Z0RrSEFDbW9oQUVFQUlRSUxBa0FnQ2tVTkFDQUdRUUoySWhCRkRRQWdDQ0FHYXlFUklBQWdDQ0FKYkNBQ2FtcEJCV29oQWlBT0lRQURRQ0FDUVg5cUxRQUFJUWdnQWtGK2FpMEFBQ0VESUFKQmZXb3RBQUFoQlNBQ1FYeHFMUUFBSVFRZ0FrRjdhaTBBQUNFTUlCQWhEUU5BSUFBZ0FpMEFBQ0lKSUF3Z0JDQUlhaUlMYXlBRElBVnFRUlJzYWlBTFFRSjBhMm8yQWdBZ0FDQUNMUUFCSWdzZ0F5QUlha0VVYkNBRWFpQUZJQWxxSWdScklBUkJBblJyYWpZQ0JDQUFJQUl0QUFJaUR5QUlJQWxxUVJSc0lBVnFJQU1nQzJvaUJHc2dCRUVDZEd0cU5nSUlJQUFnQWkwQUF5SVNJQWtnQzJwQkZHd2dBMm9nQ0NBUGFpSURheUFEUVFKMGEybzJBZ3dnQUVFUWFpRUFJQUpCQkdvaEFpQUlJUXdnQ1NFRUlBc2hCU0FQSVFNZ0VpRUlJQTFCZjJvaURRMEFDeUFDSUJGcUlRSWdDa0YvYWlJS0RRQUxDd0pBSUFkQkFuWWlCMFVOQUNBR1JRMEFRY0FBSUFacklROGdEaUFHUVFKMGFpSUlJQVpCRkd4cUlRSkJBQ0FHYXlJUVFRTjBJUklnQmtFRGRDRUpJQVpCQTJ4QkFuUWhDd05BSUFZaEJBTkFJQUVnQ0NBSmFpZ0NBQ0lBSUFJZ0NXb29BZ0FnQWlBR1FRSjBJZzFxS0FJQUlnb2dBaUFTYWlnQ0FDSURhaUlGYXlBRlFRSjBhMm9nQWlnQ0FDSU1JQUlnRUVFQ2RDSVJhaWdDQUNJRmFrRVViR3BCZ0FScVFRcDFRYkF1YWkwQUFEb0FNQ0FCSUFnZ0RXb29BZ0FpRFNBS0lBTWdCV3BCRkd4cUlBQWdER29pQ21zZ0NrRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQTZBQ0FnQVNBSUtBSUFJZ29nRENBQUlBTnFRUlJzYWlBRklBMXFJZ3hySUF4QkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQU9nQVFJQUVnQ0NBUmFpZ0NBQ0FGSUFBZ0RXcEJGR3hxSUFNZ0Ntb2lBR3NnQUVFQ2RHdHFRWUFFYWtFS2RVR3dMbW90QUFBNkFBQWdDRUVFYWlFSUlBRkJBV29oQVNBQ1FRUnFJUUlnQkVGL2FpSUVEUUFMSUFFZ0Qyb2hBU0FDSUF0cUlRSWdDQ0FMYWlFSUlBZEJmMm9pQncwQUN3c2dEa0dBRG1va0FBdmxBd0VKZnlNQVFjQURheUlLSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0F5QUhhaUFGU3cwQUlBTkJBRWdOQUNBQ0lBaHFJQVJMRFFBZ0JDRUlJQU1oQ1F3QkN5QUFJQW9nQWlBRElBUWdCU0FJSUFjZ0NCQU1JQW9oQUVFQUlRSUxBa0FnQjBVTkFDQUdRUUoySWcxRkRRQkJFQ0FHYXlFT0lBZ2dCbXNoRHlBQUlBZ2dDV3dnQW1wcVFRVnFJUUlEUUNBQ1FYOXFMUUFBSVFnZ0FrRithaTBBQUNFR0lBSkJmV290QUFBaEFDQUNRWHhxTFFBQUlRVWdBa0Y3YWkwQUFDRUpJQTBoQ3dOQUlBRWdBaTBBQUNJRElBa2dCU0FJYWlJRWF5QUFJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FBSUFFZ0FpMEFBU0lFSUFVZ0JpQUlha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQU9nQUJJQUVnQWkwQUFpSU1JQUFnQXlBSWFrRVViR29nQkNBR2FpSUFheUFBUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBT2dBQ0lBRWdBaTBBQXlJUUlBWWdBeUFFYWtFVWJHb2dDQ0FNYWlJQWF5QUFRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FESUFGQkJHb2hBU0FDUVFScUlRSWdDQ0VKSUFNaEJTQUVJUUFnRENFR0lCQWhDQ0FMUVg5cUlnc05BQXNnQVNBT2FpRUJJQUlnRDJvaEFpQUhRWDlxSWdjTkFBc0xJQXBCd0FOcUpBQUw5UU1CQzM4akFFSEFBMnNpQ3lRQUFrQUNRQ0FDUVFCSURRQWdBMEVBU0EwQUlBSWdCbW9nQkVzTkFDQURJQWRxUVFWcUlBVkxEUUFnQXlFSURBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFZZ0IwRUZhaUFHRUF3Z0N5RUFJQVloQkVFQUlRSUxBa0FnQjBFQ2RpSU1SUTBBSUFaRkRRQkJ3QUFnQm1zaEVTQUVRUUYwSVEwZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVNJQUFnQkNBSWJDQUNhbW9nQkdvaUJ5QUVRUVZzYWlFQ0EwQWdCaUVBQTBBZ0FTQUhJQTFxTFFBQUlnTWdBaUFOYWkwQUFDQUNJQVJxTFFBQUlna2dBaUFTYWkwQUFDSUZhaUlJYXlBSVFRSjBhMm9nQWkwQUFDSUtJQUlnRDJvdEFBQWlDR3BCRkd4cVFSQnFRUVYxUWJBdWFpMEFBRG9BTUNBQklBUWdCMm90QUFBaUVDQUpJQVVnQ0dwQkZHeHFJQU1nQ21vaUNXc2dDVUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBRG9BSUNBQklBY3RBQUFpQ1NBS0lBTWdCV3BCRkd4cUlBZ2dFR29pQ21zZ0NrRUNkR3RxUVJCcVFRVjFRYkF1YWkwQUFEb0FFQ0FCSUFjZ0Qyb3RBQUFnQ0NBRElCQnFRUlJzYWlBRklBbHFJZ05ySUFOQkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBQWdCMEVCYWlFSElBRkJBV29oQVNBQ1FRRnFJUUlnQUVGL2FpSUFEUUFMSUFFZ0VXb2hBU0FDSUE1cUlRSWdCeUFPYWlFSElBeEJmMm9pREEwQUN3c2dDMEhBQTJva0FBdXFCZ0VOZnlNQVFiQUJheUlSSkFBZ0NFRUJhaUVLQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0Ntb2dCRXNOQUNBRElBbHFRUUZxSUFWTERRQWdCU0VNSUFRaENpQURJUThNQVFzZ0FDQVJJQUlnQXlBRUlBVWdDaUFKUVFGcUlnd2dDaEFNSUFBZ0JDQUZiR29nRVNBS0lBeHNhaUFDSUFNZ0JDQUZJQW9nRENBS0VBd2dFU0VBUVFBaEFnc0NRQ0FKUVFGMklnVkZEUUFnQ0VFQmRpSUVSUTBBUVJBZ0NHc2hFMEVJSUFkcklRdEJDQ0FHYXlFTklBcEJBWFFpRGlBSWF5RVVJQUFnQW1vaUZpQUtJQTlzYWlFQ0lBRWhBQ0FGSVJVRFFDQUNJQTVxTFFBQUlBZHNJQXNnQWlBS2FpMEFBQ0lEYkdvaENDQURJQWRzSUFzZ0FpMEFBR3hxSVFrZ0JDRURBMEFnQWtFQmFpSVFJQTVxTFFBQUlSSWdBQ0FKSUExc0lBb2dFR290QUFBaUNTQUhiQ0FMSUFJdEFBRnNhaUlRSUFac2FrRWdha0VHZGpvQUFDQUFJQWdnRFd3Z0J5QVNiQ0FKSUF0c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ0NBQ0xRQUNJUWtnQWtFQ2FpSUNJQTVxTFFBQUlSSWdBQ0FOSUJCc0lBSWdDbW90QUFBaUVDQUhiQ0FKSUF0c2FpSUpJQVpzYWtFZ2FrRUdkam9BQVNBQUlBZ2dEV3dnQnlBU2JDQUxJQkJzYWlJSUlBWnNha0VnYWtFR2Rqb0FDU0FBUVFKcUlRQWdBMEYvYWlJRERRQUxJQUlnRkdvaEFpQUFJQk5xSVFBZ0ZVRi9haUlWRFFBTElBRkJRR3NoQUNBV0lBd2dEMm9nQ214cUlRSURRQ0FDSUE1cUxRQUFJQWRzSUFzZ0FpQUthaTBBQUNJQmJHb2hDQ0FCSUFkc0lBc2dBaTBBQUd4cUlRa2dCQ0VEQTBBZ0FrRUJhaUlCSUE1cUxRQUFJUXdnQUNBSklBMXNJQUVnQ21vdEFBQWlBU0FIYkNBTElBSXRBQUZzYWlJSklBWnNha0VnYWtFR2Rqb0FBQ0FBSUFnZ0RXd2dCeUFNYkNBQklBdHNhaUlCSUFac2FrRWdha0VHZGpvQUNDQUNMUUFDSVFnZ0FrRUNhaUlDSUE1cUxRQUFJUXdnQUNBSklBMXNJQUlnQ21vdEFBQWlEeUFIYkNBSUlBdHNhaUlKSUFac2FrRWdha0VHZGpvQUFTQUFJQUVnRFd3Z0J5QU1iQ0FMSUE5c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ1NBQVFRSnFJUUFnQTBGL2FpSUREUUFMSUFJZ0ZHb2hBaUFBSUJOcUlRQWdCVUYvYWlJRkRRQUxDeUFSUWJBQmFpUUFDLzlFQVVGL0l3QkJzQUZySWdNa0FDQUFLQUlJSWdRRVFDQUFLQUlFSWg5QkEzUWhGaUFFSUI5c0lnUkJCblFoT3lBRVFRaDBJVHdnSDBFR2RDRTlJQjlCTUd3aFBpQWZRUVYwSVNVZ0gwRlFiQ0VyUVFBZ0gwRUVkQ0lhYXlJb1FRSjBJVDhnS0VFQmRDRXNJQU5CR0dvaElpQURRUXh5SVNNRFFBSkFJQUVvQWdnaUNVRUJSZzBBQWtBQ1FBSkFBa0FnQVNnQ3lBRWlBa1VFUUVFQklRWU1BUXRCQlNFR0lBbEJBa2NOQUVFRlFRRWdBU2dDQkNJSklBSW9BZ1JHR3lFR0lBRW9Bc3dCSWdRTkFVRUFJUVFNQXdzZ0FTZ0N6QUVpQkVVRVFFRUFJUVFNQXdzZ0NVRUNSdzBCSUFFb0FnUWhDUXNnQ1NBRUtBSUVSdzBCQ3lBR1FRSnlJUVlMQW44Z0JrRUNjU0l0QkVBQ1FDQUJLQUlBUVFWTkJFQWdCQ2dDQUVFR1NRMEJDeUFEUVFRMkFrQWdBMEVFTmdKSUlBTkJCRFlDT0NBRFFRUTJBakJCQVF3Q0MwRUNJUTlCQWlFSkFrQWdBUzhCSEEwQUlBUXZBVEFOQUVFQklRa2dBU2dDZENBRUtBSjhSdzBBSUFFdUFZUUJJQVF1QWF3QmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBRUxnR3VBV3NpQ1NBSlFSOTFJZ2xxSUFselFRTkxJUWtMSUFNZ0NUWUNNQUpBSUFFdkFSNE5BQ0FFTHdFeURRQkJBU0VQSUFFb0FuUWdCQ2dDZkVjTkFDQUJMZ0dJQVNBRUxnR3dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmlnRWdCQzRCc2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWpoQkFpRUZRUUloQ2dKQUlBRXZBU1FOQUNBRUx3RTREUUJCQVNFS0lBRW9BbmdnQkNnQ2dBRkhEUUFnQVM0QmxBRWdCQzRCdkFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBWllCSUFRdUFiNEJheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSkFBa0FnQVM4QkpnMEFJQVF2QVRvTkFFRUJJUVVnQVNnQ2VDQUVLQUtBQVVjTkFDQUJMZ0dZQVNBRUxnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0Qm1nRWdCQzRCd2dGcklnUWdCRUVmZFNJRWFpQUVjMEVEU3lFRkN5QURJQVUyQWtnZ0NTQVBjaUFLY2lBRmNrRUFSd3dCQ3lBRFFRQTJBa0FnQTBFQU5nSklJQU5CQURZQ09DQURRUUEyQWpCQkFBc2hDUUpBQWtBQ1FBSkFJQVpCQkhFaUxnUkFBa0FnQVNnQ0FDSUdRUVZOQkVBZ0FpZ0NBRUVHU1EwQkN5QURRUVEyQW5RZ0EwRUVOZ0tVQVNBRFFRUTJBbFFnQTBFRU5nSTBRUUVoQ1F3Q0MwRUNJUTlCQWlFRUFrQWdBUzhCSEEwQUlBSXZBU1lOQUVFQklRUWdBU2dDZENBQ0tBSjRSdzBBSUFFdUFZUUJJQUl1QVpnQmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBQ0xnR2FBV3NpQkNBRVFSOTFJZ1JxSUFSelFRTkxJUVFMSUFNZ0JEWUNOQUpBSUFFdkFTQU5BQ0FDTHdFcURRQkJBU0VQSUFFb0FuUWdBaWdDZUVjTkFDQUJMZ0dNQVNBQ0xnR2dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmpnRWdBaTRCb2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWxSQkFpRUZRUUloQ2dKQUlBRXZBU3dOQUNBQ0x3RTJEUUJCQVNFS0lBRW9BbndnQWlnQ2dBRkhEUUFnQVM0QnBBRWdBaTRCdUFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBYVlCSUFJdUFib0JheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSjBBa0FnQVM4Qk1BMEFJQUl2QVRvTkFFRUJJUVVnQVNnQ2ZDQUNLQUtBQVVjTkFDQUJMZ0dzQVNBQ0xnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0QnJnRWdBaTRCd2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFRkN5QURJQVUyQXBRQklBbEZEUUpCQVNFSkRBTUxJQU5CQURZQ2RDQURRUUEyQXBRQklBTkJBRFlDVkNBRFFRQTJBalFnQVNnQ0FDRUdDeUFHUVFaSkRRRWdBMEVETmdLZ0FTQURRb09BZ0lBd053S2tBU0FEUVFNMkFwQUJJQU5CQXpZQ2NDQURRUU0yQXF3QklBTkNnNENBZ0RBM0E1Z0JJQU5DZzRDQWdEQTNBNGdCSUFOQ2c0Q0FnREEzQTRBQklBTkNnNENBZ0RBM0EzZ2dBMEtEZ0lDQU1EY0RhQ0FEUW9PQWdJQXdOd05nSUFOQ2c0Q0FnREEzQTFnZ0EwS0RnSUNBTURjQ1RDQURRUU0yQWtRZ0EwRUROZ0k4REFJTElBUWdEM0lnQ25JZ0JYSkJBRWNoQ1FzQ1FBSi9JQVpCQTAwRVFDQUdRUUowUVl3MWFpZ0NBQXdCQzBFRUMwRUJSZ1JBSUFFZ0EwRXdhaEJFSUFNb0Fxd0JJUWNnQXlnQ3BBRWhEaUFES0FLY0FTRVFJQU1vQW93QklSa2dBeWdDaEFFaEJpQURLQUo4SVJjZ0F5Z0NiQ0VJSUFNb0FtUWhCQ0FES0FKY0lSUWdBeWdDVENFTUlBTW9Ba1FoQWlBREtBSThJUkVnQXlnQ3FBRWhIQ0FES0FLZ0FTRW1JQU1vQXBnQklRMGdBeWdDa0FFaEhTQURLQUtJQVNFU0lBTW9Bb0FCSVJVZ0F5Z0NlQ0ViSUFNb0FuQWhFeUFES0FKb0lRb2dBeWdDWUNFUElBTW9BbGdoQlNBREtBSlFJU2NNQVFzZ0F3Si9Ba0FnQXdKL0FrQUNRQ0FCS0FJQVFYNXFJZ1JCQVUwRVFDQUVRUUZyQkVBZ0F3Si9Ba0FnQVM4QklDSUVEUUFnQVM4QkhBMEFRUUFNQVF0QkFnc2lKellDVUNBREFuOENRQ0FCTHdFaUlnY05BQ0FCTHdFZURRQkJBQXdCQzBFQ0N5SUZOZ0pZSUFNQ2Z3SkFJQUV2QVNnaUJnMEFJQUV2QVNRTkFFRUFEQUVMUVFJTElnODJBbUFnQXdKL0FrQWdBUzhCS2lJT0RRQWdBUzhCSmcwQVFRQU1BUXRCQWdzaUNqWUNhQ0FEQW44Q1FDQUJMd0V3SWg0TkFDQUJMd0VzRFFCQkFBd0JDMEVDQ3lJZE5nS1FBU0FEQW44Q1FDQUJMd0V5SWhBTkFDQUJMd0V1RFFCQkFBd0JDMEVDQ3lJTk5nS1lBU0FEQW44Q1FDQUJMd0U0SWdzTkFDQUJMd0UwRFFCQkFBd0JDMEVDQ3lJbU5nS2dBU0FEQW44Q1FDQUJMd0U2SWhnTkFDQUJMd0UyRFFCQkFBd0JDMEVDQ3lJY05nS29BVUVDSVJ0QkFpRVRBa0FnQkNBQkx3RXNJaGR5RFFCQkFTRVRJQUV1QWFRQklBRXVBWXdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQkxnR21BU0FCTGdHT0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdBU2dDZkNBQktBSjBSeUVUQ3lBRElCTTJBbkFDUUNBSElBRXZBUzRpSUhJTkFFRUJJUnNnQVM0QnFBRWdBUzRCa0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRXVBYW9CSUFFdUFaSUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FCS0FKOElBRW9BblJISVJzTElBTWdHellDZUVFQ0lSSkJBaUVWQWtBZ0JpQUJMd0UwSWhseURRQkJBU0VWSUFFdUFiUUJJQUV1QVp3QmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJMZ0cyQVNBQkxnR2VBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEZRc2dBeUFWTmdLQUFRSkFJQTRnQVM4Qk5pSWhjZzBBUVFFaEVpQUJMZ0c0QVNBQkxnR2dBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVM0QnVnRWdBUzRCb2dGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9Bb0FCSUFFb0FuaEhJUklMSUFNZ0VqWUNpQUVnQVM4QkhnMENJQUV2QVJ3RVFFRUNJUkVnQTBFQ05nSThJQUV2QVNRaUNBMEdRUUFoREVFQURBY0xRUUFoRVNBRFFRQTJBanhCQUNFTVFRQWdBUzhCSkNJSVJRMEdHZ3dGQ3lBREFuOENRQ0FCTHdFZ0lnSU5BQ0FCTHdFY0RRQkJBQXdCQzBFQ0N5SW5OZ0pRSUFNQ2Z3SkFJQUV2QVNJaUJnMEFJQUV2QVI0TkFFRUFEQUVMUVFJTElnVTJBbGdnQXdKL0FrQWdBUzhCS0NJT0RRQWdBUzhCSkEwQVFRQU1BUXRCQWdzaUR6WUNZQ0FEQW44Q1FDQUJMd0VxSWdnTkFDQUJMd0VtRFFCQkFBd0JDMEVDQ3lJS05nSm9JQU1nQWlBQkx3RXNJaGR5UVFCSFFRRjBJaE0yQW5BZ0F5QUdJQUV2QVM0aUMzSkJBRWRCQVhRaUd6WUNlQ0FESUE0Z0FTOEJOQ0llY2tFQVIwRUJkQ0lWTmdLQUFTQURJQWdnQVM4Qk5pSVpja0VBUjBFQmRDSVNOZ0tJQVNBRElBRXZBVEFpRUNBWGNrRUFSMEVCZENJZE5nS1FBU0FESUFFdkFUSWlJQ0FMY2tFQVIwRUJkQ0lOTmdLWUFTQURJQUV2QVRnaUlTQWVja0VBUjBFQmRDSW1OZ0tnQVNBRElBRXZBVG9pQnlBWmNrRUFSMEVCZENJY05nS29BU0FEQW44Q1FDQUJMd0VlSWlRTkFDQUJMd0VjRFFCQkFBd0JDMEVDQ3lJUk5nSThJQUV2QVNZRVFDQUJMd0VrSVJnTUF3c2dBUzhCSkNJWURRSkJBQ0VZUVFBTUF3c2dBUzRCaGdFaEZDQUJMZ0dPQVNFRVFRSWhCU0FEQW45QkFpQUJMd0VjSWhFZ0FTOEJJQ0l2Y2cwQUdrRUJJQUV1QVl3QklBRXVBWVFCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUJvZ0JDQVVheUlHSUFaQkgzVWlCbW9nQm5OQkEwc0xJaWMyQWxBZ0FTNEJpZ0VoQ0NBQkxnR1NBU0VHQWtBZ0FTOEJIaUl3SUFFdkFTSWlFSElOQUVFQklRVWdBUzRCa0FFZ0FTNEJpQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUFZZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6UVFOTElRVUxJQU1nQlRZQ1dDQUJMZ0dXQVNFTUlBRXVBWjRCSVFkQkFpRUtJQU1DZjBFQ0lBRXZBU1FpTVNBQkx3RW9JaGR5RFFBYVFRRWdBUzRCbkFFZ0FTNEJsQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBR2lBSElBeHJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3c2lEellDWUNBQkxnR2FBU0V5SUFFdUFhSUJJUXNDUUNBQkx3RW1Ja0FnQVM4QktpSXpjZzBBUVFFaENpQUJMZ0dnQVNBQkxnR1lBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQ3lBeWF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzaENnc2dBeUFLTmdKb0lBRXVBYVlCSVI1QkFpRWJRUUloRXdKQUlDOGdBUzhCTENJMGNnMEFRUUVoRXlBQkxnR2tBU0FCTGdHTUFXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdIaUFFYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQktBSjhJQUVvQW5SSElSTUxJQU1nRXpZQ2NDQUJMZ0dxQVNFT0FrQWdFQ0FCTHdFdUloaHlEUUJCQVNFYklBRXVBYWdCSUFFdUFaQUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FPSUFacklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9BbndnQVNnQ2RFY2hHd3NnQXlBYk5nSjRJQUV1QWJZQklSbEJBaUVTUVFJaEZRSkFJQmNnQVM4Qk5DSWdjZzBBUVFFaEZTQUJMZ0cwQVNBQkxnR2NBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnR1NBSGF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJLQUtBQVNBQktBSjRSeUVWQ3lBRElCVTJBb0FCSUFFdUFib0JJU0VDUUNBeklBRXZBVFlpTlhJTkFFRUJJUklnQVM0QnVBRWdBUzRCb0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlDRWdDMnNpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEVnc2dBeUFTTmdLSUFTQUJMZ0d1QVNFMlFRSWhEU0FEQW45QkFpQTBJQUV2QVRBaVFYSU5BQnBCQVNBQkxnR3NBU0FCTGdHa0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWFJRFlnSG1zaUFpQUNRUjkxSWdKcUlBSnpRUU5MQ3lJZE5nS1FBU0FCTGdHeUFTRWtBa0FnR0NBQkx3RXlJamR5RFFCQkFTRU5JQUV1QWJBQklBRXVBYWdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBa0lBNXJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN5RU5DeUFESUEwMkFwZ0JJQUV1QWI0QklTbEJBaUVjSUFNQ2YwRUNJQ0FnQVM4Qk9DSTRjZzBBR2tFQklBRXVBYndCSUFFdUFiUUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQm9nS1NBWmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTElpWTJBcUFCSUFFdUFjSUJJVGtDUUNBMUlBRXZBVG9pUW5JTkFFRUJJUndnQVM0QndBRWdBUzRCdUFGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlEa2dJV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxJUndMSUFNZ0hEWUNxQUZCQWlFQ0lBTUNmMEVDSUJFZ01ISU5BQnBCQVNBQkxnR0lBU0FCTGdHRUFXc2lFU0FSUVI5MUloRnFJQkZ6UVFOTERRQWFJQWdnRkdzaUZDQVVRUjkxSWhScUlCUnpRUU5MQ3lJUk5nSThBa0FnTUNBeGNnMEFRUUVoQWlBQkxnR1VBU0FCTGdHSUFXc2lGQ0FVUVI5MUloUnFJQlJ6UVFOTERRQWdEQ0FJYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBQktBSjRJQUVvQW5SSElRSUxJQU1nQWpZQ1JFRUNJUlFnQXdKL1FRSWdNU0JBY2cwQUdrRUJJQUV1QVpnQklBRXVBWlFCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUJvZ01pQU1heUlJSUFoQkgzVWlDR29nQ0hOQkEwc0xJZ3cyQWt3Q1FDQVFJQzl5RFFCQkFTRVVJQUV1QVpBQklBRXVBWXdCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBR0lBUnJJZ1FnQkVFZmRTSUVhaUFFYzBFRFN5RVVDeUFESUJRMkFseEJBaUVJUVFJaEJBSkFJQkFnRjNJTkFFRUJJUVFnQVM0Qm5BRWdBUzRCa0FGckloQWdFRUVmZFNJUWFpQVFjMEVEU3cwQUlBY2dCbXNpQmlBR1FSOTFJZ1pxSUFaelFRTkxEUUFnQVNnQ2VDQUJLQUowUnlFRUN5QURJQVEyQW1RQ1FDQVhJRE55RFFCQkFTRUlJQUV1QWFBQklBRXVBWndCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUNBTElBZHJJZ1lnQmtFZmRTSUdhaUFHYzBFRFN5RUlDeUFESUFnMkFteEJBaUVHSUFNQ2YwRUNJQmdnTkhJTkFCcEJBU0FCTGdHb0FTQUJMZ0drQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBYUlBNGdIbXNpQnlBSFFSOTFJZ2RxSUFkelFRTkxDeUlYTmdKOEFrQWdHQ0FnY2cwQVFRRWhCaUFCTGdHMEFTQUJMZ0dvQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBZ0dTQU9heUlISUFkQkgzVWlCMm9nQjNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQlFRSWhFQ0FEQW45QkFpQWdJRFZ5RFFBYVFRRWdBUzRCdUFFZ0FTNEJ0QUZySWdjZ0IwRWZkU0lIYWlBSGMwRURTdzBBR2lBaElCbHJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN3c2lHVFlDakFFQ1FDQTNJRUZ5RFFCQkFTRVFJQUV1QWJBQklBRXVBYXdCYXlJSElBZEJIM1VpQjJvZ0IzTkJBMHNOQUNBa0lEWnJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN5RVFDeUFESUJBMkFwd0JRUUloQjBFQ0lRNENRQ0EzSURoeURRQkJBU0VPSUFFdUFid0JJQUV1QWJBQmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQXBJQ1JySWdzZ0MwRWZkU0lMYWlBTGMwRURTdzBBSUFFb0FvQUJJQUVvQW54SElRNExJQU1nRGpZQ3BBRUNRQ0E0SUVKeURRQkJBU0VISUFFdUFjQUJJQUV1QWJ3QmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQTVJQ2xySWdjZ0IwRWZkU0lIYWlBSGMwRURTeUVIQ3lBRElBYzJBcXdCREFVTFFRSWhFU0FEUVFJMkFqd2dBUzhCSkNFSURBSUxRUUlMSWd3MkFreEJBaUVFSUFOQkFpQUlRUUJIUVFGMElBNGJJZ2cyQW13Z0EwRUNJQVpCQUVkQkFYUWdBaHNpRkRZQ1hDQURJQWNnSVhKQkFFZEJBWFFpQnpZQ3JBRWdBeUFRSUNCeVFRQkhRUUYwSWhBMkFwd0JJQU1nR1NBZWNrRUFSMEVCZENJWk5nS01BU0FESUFzZ0YzSkJBRWRCQVhRaUZ6WUNmRUVDSVFJQ1FDQVlJQ1J5RFFCQkFTRUNJQUV1QVpRQklBRXVBWWdCYXlJWUlCaEJIM1VpR0dvZ0dITkJBMHNOQUNBQkxnR1dBU0FCTGdHS0FXc2lHQ0FZUVI5MUloaHFJQmh6UVFOTERRQWdBU2dDZUNBQktBSjBSeUVDQ3lBRElBSTJBa1FDUUNBR0lBNXlEUUJCQVNFRUlBRXVBWndCSUFFdUFaQUJheUlHSUFaQkgzVWlCbW9nQm5OQkEwc05BQ0FCTGdHZUFTQUJMZ0dTQVdzaUJpQUdRUjkxSWdacUlBWnpRUU5MRFFBZ0FTZ0NlQ0FCS0FKMFJ5RUVDeUFESUFRMkFtUkJBaUVPUVFJaEJnSkFJQXNnSG5JTkFFRUJJUVlnQVM0QnRBRWdBUzRCcUFGcklnc2dDMEVmZFNJTGFpQUxjMEVEU3cwQUlBRXVBYllCSUFFdUFhb0JheUlMSUF0QkgzVWlDMm9nQzNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQkFrQWdJQ0FoY2cwQVFRRWhEaUFCTGdHOEFTQUJMZ0d3QVdzaUN5QUxRUjkxSWd0cUlBdHpRUU5MRFFBZ0FTNEJ2Z0VnQVM0QnNnRnJJZ3NnQzBFZmRTSUxhaUFMYzBFRFN3MEFJQUVvQW9BQklBRW9BbnhISVE0TElBTWdEallDcEFFTUFnc2dDQ0VNUVFJTElnSTJBa1FnQXlBQkx3RW1JQXhCLy84RGNYSkJBRWRCQVhRaUREWUNUQ0FEQW44Q1FDQUhSUVJBSUFRRVFFRUNJUlFnQTBFQ05nSmNJQVlOQWtFQURBTUxRUUFoRkNBRFFRQTJBbHhCQUNBR1JRMENHZ3dCQzBFQ0lSUWdBMEVDTmdKY0MwRUNDeUlFTmdKa0lBTkJBaUFPUVFCSFFRRjBJQVliSWdnMkFtd2dBd0ovQWtBZ0lFVUVRQ0FYQkVCQkFpRVhJQU5CQWpZQ2ZDQVpEUUpCQUF3REMwRUFJUmNnQTBFQU5nSjhRUUFnR1VVTkFob01BUXRCQWlFWElBTkJBallDZkF0QkFnc2lCallDaEFFZ0F5QUxJQmh5UVFCSFFRRjBJZ2MyQXF3QklBTWdDeUFRY2tFQVIwRUJkQ0lPTmdLa0FTQURRUUlnRUVFQVIwRUJkQ0FlR3lJUU5nS2NBU0FESUJrZ0lYSkJBRWRCQVhRaUdUWUNqQUVMSUFrZ0ozSWdCWElnRDNJZ0NuSWdFM0lnRzNJZ0ZYSWdFbklnSFhJZ0RYSWdKbklnSEhJZ0VYSWdBbklnREhJZ0ZISWdCSElnQ0hJZ0YzSWdCbklnR1hJZ0VISWdEbklnQjNKRkRRRUxJQUVvQWd3aENTQURJQUVvQWhBaUJTQUJLQUlVSWdScUlnWkJNeUFHUVROSUd5SUdRUUFnQmtFQVNodEIwQmRxTFFBQUlnWTJBaUFnQXlBRUlBbHFJZ0pCTXlBQ1FUTklHeUlDUVFBZ0FrRUFTaHNpQ0VHUUYyb3RBQUFpQWpZQ0hDQURJQWhCQTJ4QmtCaHFJZ2cyQWhnQ1FDQXRSUTBBSUFRZ0FTZ0N6QUVvQWhRaUIwY0VRQ0FESUFRZ0IycEJBV3BCQVhZaUJ5QUZhaUlOUVRNZ0RVRXpTQnNpRFVFQUlBMUJBRW9iUWRBWGFpMEFBRFlDQ0NBRElBY2dDV29pQjBFeklBZEJNMGdiSWdkQkFDQUhRUUJLR3lJSFFaQVhhaTBBQURZQ0JDQURJQWRCQTJ4QmtCaHFOZ0lBREFFTElBTWdCallDQ0NBRElBSTJBZ1FnQXlBSU5nSUFDd0pBSUM1RkRRQWdCQ0FCS0FMSUFTZ0NGQ0lIUndSQUlBTWdCQ0FIYWtFQmFrRUJkaUlFSUFWcUlnVkJNeUFGUVROSUd5SUZRUUFnQlVFQVNodEIwQmRxTFFBQU5nSVVJQU1nQkNBSmFpSUVRVE1nQkVFelNCc2lCRUVBSUFSQkFFb2JJZ1JCa0JkcUxRQUFOZ0lRSUFNZ0JFRURiRUdRR0dvMkFnd01BUXNnQXlBR05nSVVJQU1nQWpZQ0VDQURJQWcyQWd3TElBQW9BZ0FnSHlBNmJDSVVRUWgwYWlBcVFRUjBhaUVKUVFBaEFrRURJUVFnQTBFd2FpRUdBMEFnQmlnQ0JDSUZCRUFnQ1NBRklDTWdHaEFaQ3lBR0tBSU1JZ1VFUUNBSlFRUnFJQVVnSWlBYUVCa0xJQVlvQWhRaUJRUkFJQWxCQ0dvZ0JTQWlJQm9RR1FzZ0JpZ0NIQ0lGQkVBZ0NVRU1haUFGSUNJZ0doQVpDeUFFSVFnQ1FBSkFBa0FnQmlnQ0FDSUVJQVlvQWdnaUQwY05BQ0FFSUFZb0FoQkhEUUFnQkNBR0tBSVlSdzBBSUFSRkRRSWdBeUFDUVF4c2FpSUZLQUlJSVF3Z0JTZ0NCQ0ViSUFSQkJFa05BU0FiUVFKMlFRSnFJUkJCRUNFUElBa2hCQU5BQWtBZ0JDQW9haUlDTFFBQUlnb2dCQzBBQUNJT2F5SUZJQVZCSDNVaUJXb2dCWE1pQnlBYlR3MEFJQVFnTEdvaUVTMEFBQ0lGSUFwcklnMGdEVUVmZFNJTmFpQU5jeUFNVHcwQUlBUWdHbW9pSEMwQUFDSVNJQTVySWcwZ0RVRWZkU0lOYWlBTmN5QU1UdzBBQWtBZ0J5QVFTUVJBSUFRZ0pXb2lGeTBBQUNFVkFuOGdCQ0FyYWlJTkxRQUFJaE1nQ21zaUJ5QUhRUjkxSWdkcUlBZHpJQXhKQkVCQkF5RWRJQUlnRWlBS0lBNXFJQVZxSWdKQkFYUnFJQk5xUVFScVFRTjJPZ0FBSUJFZ0FpQVRha0VDYWtFQ2Rqb0FBQ0FDUVFScUlSRWdCQ0EvYWkwQUFDRUhJQk5CQTJ3TUFRc2dDaUFTYWlFUklBVWhCMEVDSVIwZ0FpRU5RUUlMSVFJZ0RTQUNJQkZxSUFkQkFYUnFJQjEyT2dBQUlCVWdEbXNpQWlBQ1FSOTFJZ0pxSUFKeklBeFBEUUVnQkNBRklBb2dFbW9nRG1vaUFrRUJkR29nRldwQkJHcEJBM1k2QUFBZ0hDQUNJQlZxUVFKcVFRSjJPZ0FBSUJjZ0FpQVZRUU5zYWlBRUlENXFMUUFBUVFGMGFrRUVha0VEZGpvQUFBd0NDeUFDSUFvZ0Vtb2dCVUVCZEdwQkFtcEJBblk2QUFBTElBUWdCU0FPYWlBU1FRRjBha0VDYWtFQ2Rqb0FBQXNnQkVFQmFpRUVJQTlCZjJvaUR3MEFDd3dDQ3dKL0lBUUVRQ0FKSUFRZ0F5QUNRUXhzYWlBYUVCZ2dCaWdDQ0NFUEN5QVBDd1JBSUFsQkJHb2dEeUFESUFKQkRHeHFJQm9RR0FzZ0JpZ0NFQ0lFQkVBZ0NVRUlhaUFFSUFNZ0FrRU1iR29nR2hBWUN5QUdLQUlZSWdSRkRRRWdDVUVNYWlBRUlBTWdBa0VNYkdvZ0doQVlEQUVMSUFRZ0JTZ0NBR3BCZjJvdEFBQWlBa0VCYWlFSFFRQWdBbXNoRGtFUUlROGdDU0VFQTBBQ1FDQUVJQ2hxSWhNdEFBQWlEU0FFTFFBQUlncHJJZ1VnQlVFZmRTSUZhaUFGY3lBYlR3MEFJQVFnTEdvaUVTMEFBQ0lTSUExcklnVWdCVUVmZFNJRmFpQUZjeUFNVHcwQUlBUWdHbW9pRUMwQUFDSVZJQXBySWdVZ0JVRWZkU0lGYWlBRmN5QU1UdzBBSUFJaEJTQUVJQ3RxTFFBQUlod2dEV3NpSFNBZFFSOTFJaDFxSUIxeklBeEpCRUFnRVNBU0lBNGdBaUFLSUExcVFRRnFRUUYySUJKQkFYUnJJQnhxUVFGMUlnVWdCU0FDU2hzZ0JTQU9TQnRxT2dBQUlBY2hCUXNnRXlBTkFuOGdCQ0FsYWkwQUFDSVRJQXBySWhFZ0VVRWZkU0lSYWlBUmN5QU1TUVJBSUJBZ0ZTQU9JQUlnQ2lBTmFrRUJha0VCZGlBVlFRRjBheUFUYWtFQmRTSVRJQk1nQWtvYklCTWdEa2diYWpvQUFDQUZRUUZxSVFVTFFRQWdCV3NpRXdzZ0JTQVNJQlZySUFvZ0RXdEJBblJxUVFScVFRTjFJaElnRWlBRlNoc2dFaUFUU0JzaUJXcEJzQzVxTFFBQU9nQUFJQVFnQ2lBRmEwR3dMbW90QUFBNkFBQUxJQVJCQVdvaEJDQVBRWDlxSWc4TkFBc0xJQWhCZjJvaEJDQUdRU0JxSVFZZ0NTQTlhaUVKUVFJaEFpQUlEUUFMSUFFb0Fnd2hCQ0FESUFFb0FoQWlCU0FCS0FJVUlnWWdBU2dDR0NJQ2FpSUpRVE1nQ1VFelNCc2lDVUVBSUFsQkFFb2JRUUowUWVBOWFpZ0NBQ0lKYWlJSVFUTWdDRUV6U0JzaUNFRUFJQWhCQUVvYlFkQVhhaTBBQUNJSU5nSWdJQU1nQkNBSmFpSUhRVE1nQjBFelNCc2lCMEVBSUFkQkFFb2JJZzFCa0JkcUxRQUFJZ2MyQWh3Z0F5QU5RUU5zUVpBWWFpSU5OZ0lZQWtBZ0xVVU5BQ0FHSUFFb0Fzd0JLQUlVSWd4SEJFQWdBeUFKSUFJZ0RHb2lERUV6SUF4Qk0wZ2JJZ3hCQUNBTVFRQktHMEVDZEVIZ1BXb29BZ0JxUVFGcVFRRjJJZ3dnQldvaUQwRXpJQTlCTTBnYklnOUJBQ0FQUVFCS0cwSFFGMm90QUFBMkFnZ2dBeUFFSUF4cUlneEJNeUFNUVROSUd5SU1RUUFnREVFQVNoc2lERUdRRjJvdEFBQTJBZ1FnQXlBTVFRTnNRWkFZYWpZQ0FBd0JDeUFESUFnMkFnZ2dBeUFITmdJRUlBTWdEVFlDQUFzQ1FDQXVSUTBBSUFZZ0FTZ0N5QUVvQWhRaURFY0VRQ0FESUFVZ0NTQUNJQXhxSWdaQk15QUdRVE5JR3lJR1FRQWdCa0VBU2h0QkFuUkI0RDFxS0FJQWFrRUJha0VCZGlJSmFpSUZRVE1nQlVFelNCc2lCVUVBSUFWQkFFb2JRZEFYYWkwQUFEWUNGQ0FESUFRZ0NXb2lCRUV6SUFSQk0wZ2JJZ1JCQUNBRVFRQktHeUlFUVpBWGFpMEFBRFlDRUNBRElBUkJBMnhCa0JocU5nSU1EQUVMSUFNZ0NEWUNGQ0FESUFjMkFoQWdBeUFOTmdJTUN5QUFLQUlBSUR4cUlCUkJCblJxSUNwQkEzUnFJZ2tnTzJvaEJFRUFJUW9nQTBFd2FpRUdRUUFoQWdOQUlBWW9BZ1FpQlFSQUlBa2dCU0FqSUJZUUVDQUVJQVlvQWdRZ0l5QVdFQkFMSUFZb0FpUWlCUVJBSUFrZ0dtb2dCU0FqSUJZUUVDQUVJQnBxSUFZb0FpUWdJeUFXRUJBTElBWW9BaFFpQlFSQUlBbEJCR29nQlNBaUlCWVFFQ0FFUVFScUlBWW9BaFFnSWlBV0VCQUxJQVlvQWpRaUJRUkFJQWtnR21wQkJHb2dCU0FpSUJZUUVDQUVJQnBxUVFScUlBWW9BalFnSWlBV0VCQUxJQUloQlFKQUFrQWdCaWdDQUNJQ0lBWW9BZ2dpRDBjTkFDQUNJQVlvQWhCSERRQWdBaUFHS0FJWVJ3MEFJQUpGRFFFZ0NTQUNJQU1nQ2tFTWJHb2lBaUFXRUNzZ0JDQUdLQUlBSUFJZ0ZoQXJEQUVMQW44Z0FnUkFJQWtnQWlBRElBcEJER3hxSWdJZ0ZoQVNJQVFnQmlnQ0FDQUNJQllRRWlBR0tBSUlJUThMSUE4TEJFQWdDVUVDYWlBUElBTWdDa0VNYkdvaUFpQVdFQklnQkVFQ2FpQUdLQUlJSUFJZ0ZoQVNDeUFHS0FJUUlnSUVRQ0FKUVFScUlBSWdBeUFLUVF4c2FpSUNJQllRRWlBRVFRUnFJQVlvQWhBZ0FpQVdFQklMSUFZb0FoZ2lBa1VOQUNBSlFRWnFJQUlnQXlBS1FReHNhaUlDSUJZUUVpQUVRUVpxSUFZb0FoZ2dBaUFXRUJJTElBUWdKV29oQkNBSklDVnFJUWtnQmtGQWF5RUdRUUVoQWtFQ0lRb2dCVVVOQUFzTFFRQWdLa0VCYWlJRUlBUWdIMFlpQkJzaEtpQUJRZGdCYWlFQklBUWdPbW9pT2lBQUtBSUlTUTBBQ3dzZ0EwR3dBV29rQUF1Q0JRRUtmeU1BUVpBQmF5SUxKQUFDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSGFpQUVTdzBBSUFNZ0NHcEJBV29nQlVzTkFDQUZJUXdnQXlFT0RBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFjZ0NFRUJhaUlNSUFjUURDQUFJQVFnQld4cUlBc2dCeUFNYkdvZ0FpQURJQVFnQlNBSElBd2dCeEFNSUFzaEFDQUhJUVJCQUNFQ0N3SkFJQWhCQVhZaUJVVU5BQ0FIUVFGMklnTkZEUUJCRUNBSGF5RVFRUWdnQm1zaENTQUVRUUYwSWcwZ0Iyc2hFU0FBSUFKcUloSWdCQ0FPYkdvaEJ5QUJJUUlnQlNFSUEwQWdBeUVBQTBBZ0J5QU5haTBBQUNFS0lBSWdDU0FITFFBQWJDQUVJQWRxTFFBQUlnOGdCbXhxUVFOMFFTQnFRUVoyT2dBQUlBSWdDU0FQYkNBR0lBcHNha0VEZEVFZ2FrRUdkam9BQ0NBSFFRRnFJZ29nRFdvdEFBQWhEeUFDSUFrZ0J5MEFBV3dnQkNBS2FpMEFBQ0lLSUFac2FrRURkRUVnYWtFR2Rqb0FBU0FDSUFrZ0Ntd2dCaUFQYkdwQkEzUkJJR3BCQm5ZNkFBa2dBa0VDYWlFQ0lBZEJBbW9oQnlBQVFYOXFJZ0FOQUFzZ0J5QVJhaUVISUFJZ0VHb2hBaUFJUVg5cUlnZ05BQXNnQVVGQWF5RUNJQklnRENBT2FpQUViR29oQndOQUlBTWhBQU5BSUFjZ0RXb3RBQUFoQVNBQ0lBa2dCeTBBQUd3Z0JDQUhhaTBBQUNJSUlBWnNha0VEZEVFZ2FrRUdkam9BQUNBQ0lBZ2dDV3dnQVNBR2JHcEJBM1JCSUdwQkJuWTZBQWdnQjBFQmFpSUJJQTFxTFFBQUlRZ2dBaUFKSUFjdEFBRnNJQUVnQkdvdEFBQWlBU0FHYkdwQkEzUkJJR3BCQm5ZNkFBRWdBaUFCSUFsc0lBWWdDR3hxUVFOMFFTQnFRUVoyT2dBSklBSkJBbW9oQWlBSFFRSnFJUWNnQUVGL2FpSUFEUUFMSUFjZ0VXb2hCeUFDSUJCcUlRSWdCVUYvYWlJRkRRQUxDeUFMUVpBQmFpUUFDLzBFQVF0L0l3QkJrQUZySWd3a0FDQUhRUUZxSVFrQ1FBSkFJQUpCQUVnTkFDQURJQWhxSUFWTERRQWdBMEVBU0EwQUlBSWdDV29nQkVzTkFDQUVJUWtnQXlFTERBRUxJQUFnRENBQ0lBTWdCQ0FGSUFrZ0NDQUpFQXdnQUNBRUlBVnNhaUFNSUFnZ0NXeHFJQUlnQXlBRUlBVWdDU0FJSUFrUURDQU1JUUFnQ0NFRlFRQWhBZ3NDUUNBSVFRRjJJZ2hGRFFBZ0IwRUJkaUlFUlEwQVFSQWdCMnNoRGtFSUlBWnJJUW9nQ1VFQmRDQUhheUVQSUFBZ0Ftb2lFU0FKSUF0c2FpRUNJQUVoQXlBSUlRQURRQ0FFSVFjRFFDQUNRUUZxSUFscUxRQUFJUkFnQWlBSmFpMEFBQ0VOSUFNZ0FpMEFBU0lTSUFac0lBb2dBaTBBQUd4cVFRTjBRU0JxUVFaMk9nQUFJQU1nQmlBUWJDQUtJQTFzYWtFRGRFRWdha0VHZGpvQUNDQUNMUUFDSVEwZ0FrRUNhaUlDSUFscUxRQUFJUk1nQXlBR0lBMXNJQW9nRW14cVFRTjBRU0JxUVFaMk9nQUJJQU1nQmlBVGJDQUtJQkJzYWtFRGRFRWdha0VHZGpvQUNTQURRUUpxSVFNZ0IwRi9haUlIRFFBTElBSWdEMm9oQWlBRElBNXFJUU1nQUVGL2FpSUFEUUFMSUFGQlFHc2hBeUFSSUFVZ0Myb2dDV3hxSVFJRFFDQUVJUWNEUUNBQ1FRRnFJQWxxTFFBQUlRQWdBaUFKYWkwQUFDRUJJQU1nQWkwQUFTSUZJQVpzSUFvZ0FpMEFBR3hxUVFOMFFTQnFRUVoyT2dBQUlBTWdBQ0FHYkNBQklBcHNha0VEZEVFZ2FrRUdkam9BQ0NBQ0xRQUNJUUVnQWtFQ2FpSUNJQWxxTFFBQUlRc2dBeUFCSUFac0lBVWdDbXhxUVFOMFFTQnFRUVoyT2dBQklBTWdCaUFMYkNBQUlBcHNha0VEZEVFZ2FrRUdkam9BQ1NBRFFRSnFJUU1nQjBGL2FpSUhEUUFMSUFJZ0Qyb2hBaUFESUE1cUlRTWdDRUYvYWlJSURRQUxDeUFNUVpBQmFpUUFDN2tIQVFWL0l3QkJFR3NpQkNRQUFrQWdBQ0FCUVFCQnlBQVFCeUlERUFJaUFRMEFRUUVoQVNBREtBSUFRZjhCU3cwQUlBQWdBMEVFYWhBQ0lnRU5BRUVCSVFFZ0F5Z0NCRUVmU3cwQUlBQkJBUkFERFFBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNDQ0FBSUFSQkRHb1FBaUlCRFFBZ0F5QUVLQUlNUVFGcUlnRTJBZ3dnQVVFSVN3UkFRUUVoQVF3QkN3SkFJQUZCQWtrTkFDQUFJQU5CRUdvUUFpSUJEUUVnQXlnQ0VDSUJRUVpMSWdJRVFFRUJJUUVNQWdzZ0FnMEFBa0FDUUFKQUFrQWdBVUVCYXc0R0JBRUNBZ0lEQUFzZ0F5QURLQUlNSWdGQkFuUVFDaUlDTmdJVUlBSkZCRUJCLy84RElRRU1CUXNnQVVVTkEwRUFJUUlEUUNBQUlBUkJER29RQWlJQkRRVWdBeWdDRkNBQ1FRSjBhaUFFS0FJTVFRRnFOZ0lBSUFKQkFXb2lBaUFES0FJTVNRMEFDd3dEQ3lBRElBTW9BZ3dpQWtFQ2RFRjhhaUlCRUFvaUJUWUNHQ0FESUFFUUNpSUdOZ0ljUWYvL0F5RUJJQVZGRFFNZ0JrVU5BeUFDUVFGR0RRSkJBQ0VDQTBBZ0FDQUVRUXhxRUFJaUFRMEVJQUpCQW5RaUJTQURLQUlZYWlBRUtBSU1OZ0lBSUFBZ0JFRU1haEFDSWdFTkJDQURLQUljSUFWcUlBUW9BZ3cyQWdBZ0FrRUJhaUlDSUFNb0FneEJmMnBKRFFBTERBSUxRUUVoQVNBQVFRRVFBeUlDUVg5R0RRSWdBeUFDUVFGR05nSWdJQUFnQkVFTWFoQUNJZ0VOQWlBRElBUW9BZ3hCQVdvMkFpUU1BUXNnQUNBRVFReHFFQUlpQVEwQklBTWdCQ2dDREVFQmFpSUJOZ0lvSUFNZ0FVRUNkQkFLSWdJMkFpd2dBa1VFUUVILy93TWhBUXdDQ3lBQlJRMEFJQU1vQWd4QkFuUkJyRHRxS0FJQUlRWkJBQ0VDQTBBZ0FDQUdFQU1oQlNBREtBSXNJQUpCQW5ScUlBVTJBZ0JCQVNFQklBVWdBeWdDREU4TkFpQUNRUUZxSWdJZ0F5Z0NLRWtOQUFzTElBQWdCRUVNYWhBQ0lnRU5BRUVCSVFFZ0JDZ0NEQ0lDUVI5TERRQWdBeUFDUVFGcU5nSXdJQUFnQkVFTWFoQUNJZ0VOQUVFQklRRWdCQ2dDREVFZlN3MEFJQUJCQVJBREJFQU1BUXNnQUVFQ0VBTkJBa3NFUUF3QkN5QUFJQVJCQ0dvUUJTSUJEUUFnQkNnQ0NFRWFhaUlCUVROTEJFQkJBU0VCREFFTElBTWdBVFlDTkNBQUlBUkJDR29RQlNJQkRRQWdCQ2dDQ0VFYWFrRXpTd1JBUVFFaEFRd0JDeUFBSUFSQkNHb1FCU0lCRFFCQkFTRUJJQVFvQWdnaUFrRU1ha0VZU3cwQUlBTWdBallDT0NBQVFRRVFBeUlDUVg5R0RRQWdBeUFDUVFGR05nSThJQUJCQVJBRElnSkJmMFlOQUNBRElBSkJBVVkyQWtBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNSQ0FBRUI5QkFDRUJDeUFFUVJCcUpBQWdBUXZxQlFFSmZ3SkFJQUlvQXB3Q1JRUkFEQUVMUVFFaEJnTkFBa0FDUUNBQ0lBVkJGR3hxS0FLZ0FpSUVRUVZMRFFBZ0JFRUJhdzRGQUFBQUFBTUJDeUFGUVFGcUlRVU1BUXNMSUFRaEJnc0Nmd0pBSUFFb0FoQWlCRUVCVFFSQUlBUkJBV3NFUUNBREtBSUFRUVZHQkVBZ0FFSUFOd0lBSUFJb0FoUWhCVUVBSVFRTUF3c2dBQ2dDQUNJRUlBSW9BaFFpQlUwTkFpQUVJQVZySUFFb0FoUWlCMEVCZGtrTkFpQUFLQUlFSUFkcURBTUxRUUFoQlFKL1FRQWdBeWdDQUVFRlJnMEFHaUFBS0FJTUlnY2dBQ2dDQ0NBQ0tBSU1UUTBBR2lBQktBSU1JQWRxQ3lFSFFRQWhCQUovSUFFb0FpUWlDQVJBSUFJb0Fnd2dCMm9oQlFzZ0JTQURLQUlFSWdwRklBVkJBRWR4YXlJSkN3UkFJQWxCZjJvaUF5QURJQWh1SWdzZ0NHeHJJUU1MSUFnRVFDQUJLQUlvSVF4QkFDRUZBMEFnRENBRlFRSjBhaWdDQUNBRWFpRUVJQVZCQVdvaUJTQUlSdzBBQ3dzQ1FDQUpSUVJBUVFBaEJBd0JDeUFFSUF0c0lRUWdBU2dDS0NFSVFRQWhCUU5BSUFnZ0JVRUNkR29vQWdBZ0JHb2hCQ0FGUVFGcUlnVWdBMDBOQUFzTElBcEZCRUFnQVNnQ0hDQUVhaUVFQ3lBR1JRUkFJQUlvQWlBaEF5QUJLQUlnSVFFZ0FpZ0NIQ0VHSUFBZ0J6WUNEQ0FBSUFJb0FndzJBZ2dnQmlBQklBTnFJZ0JCSDNVZ0FIRWdCR3BxRHdzZ0FFSUFOd0lJUVFBUEMwRUFJUVZCQUNFRUlBTW9BZ0JCQlVjRVFDQUFLQUlNSVFVZ0FDZ0NDQ0FDS0FJTUlnUkxCRUFnQVNnQ0RDQUZhaUVGQ3lBRUlBVnFRUUYwSUFNb0FnUkZheUVFQ3lBR1JRUkFJQUFnQlRZQ0RDQUFJQUlvQWd3MkFnZ2dCQThMSUFCQ0FEY0NDRUVBRHdzQ1FDQUZJQVJORFFBZ0JTQUVheUFCS0FJVUlnRkJBWFpORFFBZ0FDZ0NCQ0FCYXd3QkN5QUFLQUlFQ3lFRUlBTW9BZ1JGQkVBZ0JDQUZhaUFDS0FJWUlnQkJIM1VnQUhGcUR3c2dBQ0FFTmdJRUlBSW9BaGdoQVNBR0JFQWdBRUVBTmdJRUlBQkJBQ0FCYXlBQlFSOTFjVFlDQUVFQUR3c2dBQ0FGTmdJQUlBUWdCV29nQVVFZmRTQUJjV29MdkFFQkNIOGdBZ1JBSUFGQmYyb2hCMEVBSUFGclFkZ0JiQ0VJUVFFZ0FXdEIyQUZzSVFrZ0FVRi9jMEhZQVd3aENnTkFJQUFnQmtIWUFXeHFJZ01nQTBHb2ZtcEJBQ0FFR3pZQ3lBRWdBd0ovSUFWRkJFQWdBMEVBTmdMTUFVRUFEQUVMSUFNZ0F5QUlhallDekFFZ0F5QUpha0VBSUFRZ0Iwa2JDellDMEFFZ0F5QURJQXBxUVFBZ0JCdEJBQ0FGR3pZQzFBRkJBQ0FFUVFGcUlnTWdBU0FEUmlJREd5RUVJQU1nQldvaEJTQUdRUUZxSWdZZ0FrY05BQXNMQzNjQkFuOUJBU0VDQWtBZ0FFRUJFQU5CZjBZTkFDQUJJQUJCQWhBRE5nSUVJQUVnQUVFRkVBTWlBRFlDQUNBQVFYNXFRUU5KRFFBQ1FDQUFRUXhMRFFCQkFTQUFkQ0lEUWNBOGNVVUVRQ0FEUWFBRGNVVU5BU0FBUVFaR0RRSWdBU2dDQkEwQkRBSUxJQUVvQWdRTkFRdEJBQ0VDQ3lBQ0M1SVRBUVovSUFBZ0FTZ0NBQ0lOTmdJQUlBQWdBQ2dDeEFGQkFXbzJBc1FCSUFJZ0JSQWRBa0FDUUFKQUFrQUNRQ0FOUVI5R0JFQWdBRUVBTmdJVUlBQW9Bc1FCUVFGTERRRWdBRUVjYWlFSklBRkJ5QUpxSVFSQkZ5RUJJQWNoQUFOQUlBbEJFRHNCQUNBQUlBUW9BZ0E2QUFBZ0FDQUVLQUlFT2dBQklBQWdCQ2dDQ0RvQUFpQUFJQVFvQWd3NkFBTWdBQ0FFS0FJUU9nQUVJQUFnQkNnQ0ZEb0FCU0FBSUFRb0FoZzZBQVlnQUNBRUtBSWNPZ0FISUFBZ0JDZ0NJRG9BQ0NBQUlBUW9BaVE2QUFrZ0FDQUVLQUlvT2dBS0lBQWdCQ2dDTERvQUN5QUFJQVFvQWpBNkFBd2dBQ0FFS0FJME9nQU5JQUFnQkNnQ09Eb0FEaUFBSUFRb0FqdzZBQThnQVNJRFFYOXFJUUVnQ1VFQ2FpRUpJQUJCRUdvaEFDQUVRVUJySVFRZ0F3MEFDeUFDSUFjUUd3d0VDeUFBUVJ4cUlRa2dEUVJBSUFrZ0FTa0NrQUkzQWdBZ0NTQUJLUUcrQWpjQkxpQUpJQUVwQXJnQ053SW9JQWtnQVNrQ3NBSTNBaUFnQ1NBQktRS29BamNDR0NBSklBRXBBcUFDTndJUUlBa2dBU2tDbUFJM0FnZ2dCQ2dDQUNFS0FrQWdBU2dDQ0NJTFJRMEFJQVFnQ2lBTGFpSUtOZ0lBSUFRZ0NrRi9UQVIvSUFwQk5Hb0ZJQXBCTkVnTkFTQUtRVXhxQ3lJS05nSUFDeUFBSUFvMkFoUWdBVUhJRDJvaERDQUJRY2dDYWlFRUFrQUNRQ0FBS0FJQVFRWk5CRUFnQ1M4QkFFVU5BVUVCSVFnZ0JDQUtRUUFnRENnQ0FCQUdSUTBDREFnTElBQXZBVXdFUUNBQlFjZ09haUFLRURFTFFiQTBJUXBCRHlFSUEwQWdDQ0VMSUFRZ0FTQUtLQUlBUVFKMGFrSElEbW9vQWdBaUNEWUNBQUpBQWtBZ0NFVUVRQ0FKTHdFQVJRMEJDMEVCSVFnZ0JDQUFLQUlVUVFFZ0RDZ0NBQkFHUlEwQkRBb0xJQVJCLy8vL0J6WUNBQXNnQ2tFRWFpRUtJQXRCZjJvaENDQU1RUVJxSVF3Z0NVRUNhaUVKSUFSQlFHc2hCQ0FMRFFBTERBUUxJQVJCLy8vL0J6WUNBQXNnQVVHSUEyb2hCQUpBSUFBdkFSNEVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSE1EMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJ5QU5xSVFRQ1FDQUFMd0VnQkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCMEE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUVlnRWFpRUVBa0FnQUM4QklnUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFkUVBhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVSElCR29oQkFKQUlBQXZBU1FFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUhZRDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCaUFWcUlRUUNRQ0FBTHdFbUJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQjNBOXFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFjZ0ZhaUVFQWtBZ0FDOEJLQVJBUVFFaENDQUVJQUFvQWhSQkFDQUJRZUFQYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJQm1vaEJBSkFJQUF2QVNvRVFFRUJJUWdnQkNBQUtBSVVRUUFnQVVIa0Qyb29BZ0FRQmtVTkFRd0hDeUFFUWYvLy93YzJBZ0FMSUFGQnlBWnFJUVFDUUNBQUx3RXNCRUJCQVNFSUlBUWdBQ2dDRkVFQUlBRkI2QTlxS0FJQUVBWkZEUUVNQndzZ0JFSC8vLzhITmdJQUN5QUJRWWdIYWlFRUFrQWdBQzhCTGdSQVFRRWhDQ0FFSUFBb0FoUkJBQ0FCUWV3UGFpZ0NBQkFHUlEwQkRBY0xJQVJCLy8vL0J6WUNBQXNnQVVISUIyb2hCQUpBSUFBdkFUQUVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSHdEMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJpQWhxSVFRQ1FDQUFMd0V5QkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCOUE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUWNnSWFpRUVBa0FnQUM4Qk5BUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFmZ1BhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVR0lDV29oQkFKQUlBQXZBVFlFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUg4RDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCeUFscUlRUUNRQ0FBTHdFNEJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQmdCQnFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFZZ0thaUVFQWtBZ0FDOEJPZ1JBUVFFaENDQUVJQUFvQWhSQkFDQUJRWVFRYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJRUdvaERDQUJRY2dLYWlFRURBSUxJQWxDQURjQ0FDQUpRZ0EzQVM0Z0NVSUFOd0lvSUFsQ0FEY0NJQ0FKUWdBM0FoZ2dDVUlBTndJUUlBbENBRGNDQ0NBQUlBUW9BZ0EyQWhRTUFnc2dBRUtRZ01DQWdJS0FDRGNCSENBQVFwQ0F3SUNBZ29BSU53RkVJQUJDa0lEQWdJQ0NnQWczQVR3Z0FFS1FnTUNBZ0lLQUNEY0JOQ0FBUXBDQXdJQ0Fnb0FJTndFc0lBQkNrSURBZ0lDQ2dBZzNBU1JCQUE4TElBQW9BaGdnQUNnQ0ZHb2lDMEV6SUF0Qk0wZ2JJZ3RCQUNBTFFRQktHMEVDZEVIZ1BXb29BZ0FoQ1FKQUlBQXZBVTVGQkVBZ0FDOEJVRVVOQVFzZ0FVR0lEMm9nQ1JBd0N5QUVJQUZCaUE5cUtBSUFJZ3MyQWdBQ1FBSkFJQXRGQkVBZ0FDOEJQRVVOQVF0QkFTRUlJQVFnQ1VFQklBd29BZ0FRQmtVTkFRd0VDeUFFUWYvLy93YzJBZ0FMSUFRZ0FTZ0NqQThpQ3pZQ1FDQUVRVUJySVFvQ1FBSkFJQXRGQkVBZ0FDOEJQa1VOQVF0QkFTRUlJQW9nQ1VFQklBd29BZ1FRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NrQThpQ3pZQ2dBRWdCRUdBQVdvaENnSkFBa0FnQzBVRVFDQUFRVUJyTHdFQVJRMEJDMEVCSVFnZ0NpQUpRUUVnRENnQ0NCQUdSUTBCREFRTElBcEIvLy8vQnpZQ0FBc2dCQ0FCS0FLVUR5SUxOZ0xBQVNBRVFjQUJhaUVLQWtBQ1FDQUxSUVJBSUFBdkFVSkZEUUVMUVFFaENDQUtJQWxCQVNBTUtBSU1FQVpGRFFFTUJBc2dDa0gvLy84SE5nSUFDeUFFSUFFb0FwZ1BJZ3MyQW9BQ0lBUkJnQUpxSVFvQ1FBSkFJQXRGQkVBZ0FDOEJSRVVOQVF0QkFTRUlJQW9nQ1VFQklBd29BaEFRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NuQThpQ3pZQ3dBSWdCRUhBQW1vaENnSkFBa0FnQzBVRVFDQUFMd0ZHUlEwQkMwRUJJUWdnQ2lBSlFRRWdEQ2dDRkJBR1JRMEJEQVFMSUFwQi8vLy9CellDQUFzZ0JDQUJLQUtnRHlJTE5nS0FBeUFFUVlBRGFpRUtBa0FDUUNBTFJRUkFJQUF2QVVoRkRRRUxRUUVoQ0NBS0lBbEJBU0FNS0FJWUVBWkZEUUVNQkFzZ0NrSC8vLzhITmdJQUN5QUVJQUVvQXFRUElnczJBc0FESUFSQndBTnFJUVFDUUFKQUlBdEZCRUFnQUM4QlNrVU5BUXRCQVNFSUlBUWdDVUVCSUF3b0Fod1FCa1VOQVF3RUN5QUVRZi8vL3djMkFnQUxJQTFCQmtrTkFDQUFJQUVnQWlBRklBWWdCeEJXSWdoRkRRRU1BZ3NnQUNBQklBTWdCU0FDSUFjUVZ5SUlEUUVMUVFBaENBc2dDQXVXSFFFSGZ5TUFRUkJySWdja0FDQUJRUUJCcUJBUUJ5RUZJQUFnQjBFRWFoQUNJUUVnQnlnQ0JDRUlBa0FDUUFKQUlBTkJmbW9pQTBFRlN3MEFBa0FnQTBFQmF3NEVBUUVCQVFBTFFRRWhBeUFCRFFJZ0NFRUdhaUlHUVI5TkRRRU1BZ3RCQVNFRElBRU5BU0FJUVFGcUlnWkJIMHNOQVFzZ0JTQUdOZ0lBQWtBZ0JrRWZSZ1JBQTBBZ0FDZ0NDQVJBSUFCQkFSQURSUTBCREFRTEN5QUZRY2dDYWlFR0EwQWdCeUFBUVFnUUF5SUJOZ0lFSUFGQmYwWU5BeUFHSUFFMkFnQWdCa0VFYWlFR0lBbEJBV29pQ1VHQUEwY05BQXNNQVF0QkFpQUdRUVpISUFaQkJra2JJUW9DUUFKQUlBWkJCRWtOQUNBR1FRVkxEUUFnQUNBSFFReHFFQUlOQVNBSEtBSU1JZ0ZCQTBzTkFTQUZJQUUyQXJBQklBQWdCMEVNYWhBQ0RRRWdCeWdDRENJQlFRTkxEUUVnQlNBQk5nSzBBU0FBSUFkQkRHb1FBZzBCSUFjb0Fnd2lBVUVEU3cwQklBVWdBVFlDdUFFZ0FDQUhRUXhxRUFJTkFTQUhLQUlNSWdGQkEwc05BU0FGSUFFMkFyd0JBa0FnQkVFQ1NRMEFJQVpCQlVZTkFDQUFJQWRCREdvZ0JFRUNTeUlCRUJjTkFpQUhLQUlNSWdnZ0JFOE5BaUFGSUFnMkFzQUJJQUFnQjBFTWFpQUJFQmNOQWlBSEtBSU1JZ2dnQkU4TkFpQUZJQWcyQXNRQklBQWdCMEVNYWlBQkVCY05BaUFIS0FJTUlnZ2dCRThOQWlBRklBZzJBc2dCSUFBZ0IwRU1haUFCRUJjTkFpQUhLQUlNSWdFZ0JFOE5BaUFGSUFFMkFzd0JDeUFISUFVb0FyQUJJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93SFFBU0FBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dIU0FTQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVlnQVEwQUN5QUhJQVVvQXJRQklnRkJBazBFZnlBQlFRSjBRZkEwYWlnQ0FBVkJBd3MyQWd4QkFDRUdBMEFnQUNBSFFRaHFFQVVpQXcwQ0lBVWdCa0VDZEdvaUFTQUhLQUlJT3dIZ0FTQUFJQWRCQ0dvUUJTSUREUUlnQVNBSEtBSUlPd0hpQVNBSElBY29BZ3dpQVVGL2FqWUNEQ0FHUVFGcUlRWWdBUTBBQ3lBSElBVW9BcmdCSWdGQkFrMEVmeUFCUVFKMFFmQTBhaWdDQUFWQkF3czJBZ3hCQUNFR0EwQWdBQ0FIUVFocUVBVWlBdzBDSUFVZ0JrRUNkR29pQVNBSEtBSUlPd0h3QVNBQUlBZEJDR29RQlNJRERRSWdBU0FIS0FJSU93SHlBU0FISUFjb0Fnd2lBVUYvYWpZQ0RDQUdRUUZxSVFZZ0FRMEFDeUFISUFVb0Fyd0JJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93R0FBaUFBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dHQ0FpQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVpCQUNFRElBRU5BQXNNQVF0QkFDRURJQXBCQWtzTkFBSkFBbjhDUUFKQUFrQWdDa0VCYXc0Q0JBRUFDeUFIUVFBMkFnZ2dCU0FBRUE4aUFVRWZkallDRENBQlFRQk9EUUVnQVVFQmRDRUdRUUFNQWdzZ0JFRUNUd1JBUVFNaEFTQUdRUU5OQkVBZ0JrRUNkRUg4Tkdvb0FnQWhBUXNnQkVFQ1N5RUxRUUVoQXdOQUlBQWdCMEVNYWlBTEVCY05CU0FIS0FJTUlnZ2dCRThOQlNBRklBbEJBblJxSUFnMkFwQUJJQUVpQ0VGL2FpRUJJQWxCQVdvaENTQUlEUUFMQzBFRElRTWdCa0VEVFFSQUlBWkJBblJCL0RScUtBSUFJUU1MUVFBaEJnTkFJQU1oQVNBQUlBZEJDR29RQlNJRERRUWdCU0FHUVFKMGFpSUVJQWNvQWdnN0FhQUJJQUFnQjBFSWFoQUZJZ01OQkNBRUlBY29BZ2c3QWFJQklBRkJmMm9oQXlBR1FRRnFJUVlnQVEwQUMwRUFJUU1NQXdzZ0JTQUJRUngyTmdKTUlBRkJCSFFoQmtFQkN5RURJQVVnQmtFZmRqWUNFQ0FGSUFaQkFFZ0VmeUFHUVFGMEJTQUZJQVpCSEhZMkFsQWdBMEVCYWlFRElBWkJCSFFMSWdGQkgzWTJBaFFnQlNBQlFRQklCSDhnQVVFQmRBVWdCU0FCUVJ4Mk5nSlVJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0lZSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNXQ0FEUVFGcUlRTWdBVUVFZEFzaUFVRWZkallDSENBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBbHdnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWlBZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pnSUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJa0lBVWdBVUVBU0FSL0lBRkJBWFFGSUFVZ0FVRWNkallDWkNBRFFRRnFJUU1nQVVFRWRBc2lBVUVmZGpZQ0tDQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pvSUFOQkFXb2hBeUFCUVFSMEN5RUdBa0FnQUNBRFFRTnNRUWhxRUF0QmYwWU5BQ0FIUVFFMkFnZ2dCU0FBRUE4aUFVRWZkallDTEFKL0lBRkJBRWdFUUNBQlFRRjBJUVpCQUF3QkN5QUZJQUZCSEhZMkFtd2dBVUVFZENFR1FRRUxJUU1nQlNBR1FSOTJOZ0l3SUFVZ0JrRUFTQVIvSUFaQkFYUUZJQVVnQmtFY2RqWUNjQ0FEUVFGcUlRTWdCa0VFZEFzaUFVRWZkallDTkNBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBblFnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWpnZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0o0SUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJOElBVkJRR3NnQVVFQVNBUi9JQUZCQVhRRklBVWdBVUVjZGpZQ2ZDQURRUUZxSVFNZ0FVRUVkQXNpQVVFZmRqWUNBQ0FGSUFGQkFFZ0VmeUFCUVFGMEJTQUZJQUZCSEhZMkFvQUJJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0pFSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNoQUVnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWtnZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNpQUVnQTBFQmFpRURJQUZCQkhRTElRWWdBQ0FEUVFOc1FRaHFFQXRCZjBZTkFDQUhJQVkyQWd3Z0IwRUNOZ0lJREFFTElBY2dCallDREVFQklRTU1BUXRCQVNFRElBQWdCMEVNYWhBQ0RRQWdCeWdDRENJQlFRTkxEUUFnQlNBQk5nS01BVUVBSVFNTElBTU5BUUpBSUFwQkFVY0VRQ0FBSUFkQkJHb2dDa1VRTFNJRERRTWdCU0FIS0FJRUlnRTJBZ1FnQVVVTkFnd0JDeUFGSUFVb0FnQWlBVUY1YWlJRFFRSjBRWEJ4SWdSQlVHb2dCQ0FEUVF0TEcwRVBRUUFnQVVFU1N4dHlOZ0lFQzBFQklRTWdBQ0FIUVF4cUVBVU5BU0FIS0FJTUlnRkJHbXBCTTBzTkFTQUZJQUUyQWdnZ0JVR1FBbW9oQ0NBRktBSUVJUVFDUUFKQUlBVW9BZ0JCQjBrRVFFRUFJUWxCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FJSUFsQkFuUnFRYmdOYWlBQUlBZ2dDVUVHZEdwQk9Hb2dBaUFKSUFnUURVRVFFQWtpQTBFUWRqWUNBQ0FEUVE5eERRUWdDQ0FKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FJSUFsQkFYSWlCa0VDZEdwQnVBMXFJQUFnQ0NBR1FRWjBha0U0YWlBQ0lBWWdDQkFOUVJBUUNTSURRUkIyTmdJQUlBTkJEM0VOQkNBSUlBWkJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBZ2dDVUVDY2lJR1FRSjBha0c0RFdvZ0FDQUlJQVpCQm5ScVFUaHFJQUlnQmlBSUVBMUJFQkFKSWdOQkVIWTJBZ0FnQTBFUGNRMEVJQWdnQmtFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQ0NBSlFRTnlJZ1pCQW5ScVFiZ05haUFBSUFnZ0JrRUdkR3BCT0dvZ0FpQUdJQWdRRFVFUUVBa2lBMEVRZGpZQ0FDQURRUTl4RFFRZ0JTQUdRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc01BUXRCQUNFSklBQWdCVUhJRG1vZ0FrRUFJQWdRRFVFUUVBa2lBMEVQY1EwQklBVWdBMEVFZGtIL0FYRTdBY0FDSUFWQmtBSnFJUVpCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FHSUFsQkFuUnFRYmdOYWlBQUlBWWdDVUVHZEdwQlBHb2dBaUFKSUFnUURVRVBFQWtpQTBFUGRqWUNBQ0FEUVE5eERRTWdCaUFKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FHSUFsQkFYSWlDa0VDZEdwQnVBMXFJQUFnQmlBS1FRWjBha0U4YWlBQ0lBb2dDQkFOUVE4UUNTSURRUTkyTmdJQUlBTkJEM0VOQXlBR0lBcEJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBWWdDVUVDY2lJS1FRSjBha0c0RFdvZ0FDQUdJQXBCQm5ScVFUeHFJQUlnQ2lBSUVBMUJEeEFKSWdOQkQzWTJBZ0FnQTBFUGNRMERJQVlnQ2tFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQmlBSlFRTnlJZ3BCQW5ScVFiZ05haUFBSUFZZ0NrRUdkR3BCUEdvZ0FpQUtJQWdRRFVFUEVBa2lBMEVQZGpZQ0FDQURRUTl4RFFNZ0JTQUtRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc0xJQVJCQTNFRVFDQUFJQVZCaUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIQ0FpQUFJQVZCbUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIRUFndEJBQ0VESUFSQkFuRkZEUUFnQUNBRlFjd0thaUFDUVJBZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCaUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzQUlnQUNBRlFZd0xhaUFDUVJFZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCakJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzZ0lnQUNBRlFjd0xhaUFDUVJJZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCa0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0QUlnQUNBRlFZd01haUFDUVJNZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0Z0lnQUNBRlFjd01haUFDUVJRZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1QUlnQUNBRlFZd05haUFDUVJVZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbkJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1Z0lnQUNBRlFjd05haUFDUVJZZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCb0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2QUlnQUNBRlFZd09haUFDUVJjZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCcEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2Z0lMSUFBZ0FDZ0NDQ0FBS0FJRUlBQW9BZ0JyUVFOMGFqWUNFQ0FERFFFTFFRQWhBd3NnQjBFUWFpUUFJQU1McFJRQkRIOENmeUFBS0FMSUFTSUhCRUFnQUNnQ0JDQUhLQUlFUmd3QkMwRUFDeUVLQWtBZ0JrVU5BQ0FLUlEwQVFRQWdDa0VDSUFBb0FzZ0JLQUlBSWdkQkJrY2dCMEVHU1J0QkFrWWJJUW9MQW44Z0FDZ0N6QUVpQndSQUlBQW9BZ1FnQnlnQ0JFWU1BUXRCQUFzaEJ3SkFJQVpGRFFBZ0IwVU5BRUVBSUFkQkFpQUFLQUxNQVNnQ0FDSUhRUVpISUFkQkJra2JRUUpHR3lFSEN3Si9JQUFvQXRRQklna0VRQ0FBS0FJRUlBa29BZ1JHREFFTFFRQUxJUWtDUUNBR1JRMEFJQWxGRFFCQkFpQUFLQUxVQVNnQ0FDSUFRUVpISUFCQkJra2JRUUpISVFrTElBcEJBRWNnQjBFQVIzRWlEU0FKUVFCSGNTRU9JQVZCQWtzaEQwRVFJUXNEUUFKQUlBOUZCRUFDUUFKQUFrQWdCVUVCYXc0Q0FRSUFDeUFCQW44Z0RRUkFJQVF0QUFNZ0JDMEFBaUFFTFFBQklBUXRBQUFnQXkwQUJDQURMUUFESUFNdEFBRWdBeTBBQW1wcWFtcHFhbXBCQkdwQkEzWWhCaUFETFFBSUlBTXRBQWNnQXkwQUJTQURMUUFHYW1wcVFRSnFRUUoyREFFTElBY0VRQ0FETFFBRUlBTXRBQU1nQXkwQUFTQURMUUFDYW1wcVFRSnFRUUoySVFZZ0F5MEFDQ0FETFFBSElBTXRBQVVnQXkwQUJtcHFha0VDYWtFQ2Rnd0JDeUFLUlFSQVFZQUJJUVpCZ0FFTUFRc2dCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYWtFQ2FrRUNkaUlHQzBIL0FYRkJnWUtFQ0d3aUFEWUFIQ0FCSUFaQi93RnhRWUdDaEFoc0lnWTJBQmdnQVNBQU5nQVVJQUVnQmpZQUVDQUJJQUEyQUF3Z0FTQUdOZ0FJSUFFZ0FEWUFCQ0FCSUFZMkFBQUNmeUFLQkVBZ0JDMEFCeUFFTFFBR0lBUXRBQVVnQkMwQUJHcHFhaUlHUVFKcVFRSjJJZ0FnQjBVTkFSb2dBeTBBQ0NBRExRQUhJQU10QUFZZ0JpQURMUUFGYW1wcWFrRUVha0VEZGd3QkN5QUhSUVJBUVlBQklRQkJnQUVNQVFzZ0F5MEFCQ0FETFFBRElBTXRBQUVnQXkwQUFtcHFha0VDYWtFQ2RpRUFJQU10QUFnZ0F5MEFCeUFETFFBRklBTXRBQVpxYW1wQkFtcEJBbllMSVFZZ0FTQUFRZjhCY1VHQmdvUUliQ0lBTmdBZ0lBRWdCa0gvQVhGQmdZS0VDR3dpQmpZQVBDQUJJQUEyQURnZ0FTQUdOZ0EwSUFFZ0FEWUFNQ0FCSUFZMkFDd2dBU0FBTmdBb0lBRWdCallBSkF3REN5QUtSUVJBUVFFUEN5QUJJQVF0QUFBNkFBQWdBU0FFTFFBQU9nQUJJQUVnQkMwQUFEb0FBaUFCSUFRdEFBQTZBQU1nQVNBRUxRQUFPZ0FFSUFFZ0JDMEFBRG9BQlNBQklBUXRBQUE2QUFZZ0FTQUVMUUFBT2dBSElBRWdCQzBBQVRvQUNDQUJJQVF0QUFFNkFBa2dBU0FFTFFBQk9nQUtJQUVnQkMwQUFUb0FDeUFCSUFRdEFBRTZBQXdnQVNBRUxRQUJPZ0FOSUFFZ0JDMEFBVG9BRGlBQklBUXRBQUU2QUE4Z0FTQUVMUUFDT2dBUUlBRWdCQzBBQWpvQUVTQUJJQVF0QUFJNkFCSWdBU0FFTFFBQ09nQVRJQUVnQkMwQUFqb0FGQ0FCSUFRdEFBSTZBQlVnQVNBRUxRQUNPZ0FXSUFFZ0JDMEFBam9BRnlBQklBUXRBQU02QUJnZ0FTQUVMUUFET2dBWklBRWdCQzBBQXpvQUdpQUJJQVF0QUFNNkFCc2dBU0FFTFFBRE9nQWNJQUVnQkMwQUF6b0FIU0FCSUFRdEFBTTZBQjRnQVNBRUxRQURPZ0FmSUFFZ0JDMEFCRG9BSUNBQklBUXRBQVE2QUNFZ0FTQUVMUUFFT2dBaUlBRWdCQzBBQkRvQUl5QUJJQVF0QUFRNkFDUWdBU0FFTFFBRU9nQWxJQUVnQkMwQUJEb0FKaUFCSUFRdEFBUTZBQ2NnQVNBRUxRQUZPZ0FvSUFFZ0JDMEFCVG9BS1NBQklBUXRBQVU2QUNvZ0FTQUVMUUFGT2dBcklBRWdCQzBBQlRvQUxDQUJJQVF0QUFVNkFDMGdBU0FFTFFBRk9nQXVJQUVnQkMwQUJUb0FMeUFCSUFRdEFBWTZBREFnQVNBRUxRQUdPZ0F4SUFFZ0JDMEFCam9BTWlBQklBUXRBQVk2QURNZ0FTQUVMUUFHT2dBMElBRWdCQzBBQmpvQU5TQUJJQVF0QUFZNkFEWWdBU0FFTFFBR09nQTNJQUVnQkMwQUJ6b0FPQ0FCSUFRdEFBYzZBRGtnQVNBRUxRQUhPZ0E2SUFFZ0JDMEFCem9BT3lBQklBUXRBQWM2QUR3Z0FTQUVMUUFIT2dBOUlBRWdCQzBBQnpvQVBpQUJJQVF0QUFjNkFEOE1BZ3NnQjBVRVFFRUJEd3NnQVNBRExRQUJPZ0FBSUFFZ0F5MEFBVG9BQ0NBQklBTXRBQUU2QUJBZ0FTQURMUUFCT2dBWUlBRWdBeTBBQVRvQUlDQUJJQU10QUFFNkFDZ2dBU0FETFFBQk9nQXdJQUVnQXkwQUFUb0FPQ0FCSUFNdEFBSTZBQUVnQVNBRExRQUNPZ0FKSUFFZ0F5MEFBam9BRVNBQklBTXRBQUk2QUJrZ0FTQURMUUFDT2dBaElBRWdBeTBBQWpvQUtTQUJJQU10QUFJNkFERWdBU0FETFFBQ09nQTVJQUVnQXkwQUF6b0FBaUFCSUFNdEFBTTZBQW9nQVNBRExRQURPZ0FTSUFFZ0F5MEFBem9BR2lBQklBTXRBQU02QUNJZ0FTQURMUUFET2dBcUlBRWdBeTBBQXpvQU1pQUJJQU10QUFNNkFEb2dBU0FETFFBRU9nQURJQUVnQXkwQUJEb0FDeUFCSUFNdEFBUTZBQk1nQVNBRExRQUVPZ0FiSUFFZ0F5MEFCRG9BSXlBQklBTXRBQVE2QUNzZ0FTQURMUUFFT2dBeklBRWdBeTBBQkRvQU95QUJJQU10QUFVNkFBUWdBU0FETFFBRk9nQU1JQUVnQXkwQUJUb0FGQ0FCSUFNdEFBVTZBQndnQVNBRExRQUZPZ0FrSUFFZ0F5MEFCVG9BTENBQklBTXRBQVU2QURRZ0FTQURMUUFGT2dBOElBRWdBeTBBQmpvQUJTQUJJQU10QUFZNkFBMGdBU0FETFFBR09nQVZJQUVnQXkwQUJqb0FIU0FCSUFNdEFBWTZBQ1VnQVNBRExRQUdPZ0F0SUFFZ0F5MEFCam9BTlNBQklBTXRBQVk2QUQwZ0FTQURMUUFIT2dBR0lBRWdBeTBBQnpvQURpQUJJQU10QUFjNkFCWWdBU0FETFFBSE9nQWVJQUVnQXkwQUJ6b0FKaUFCSUFNdEFBYzZBQzRnQVNBRExRQUhPZ0EySUFFZ0F5MEFCem9BUGlBQklBTXRBQWc2QUFjZ0FTQURMUUFJT2dBUElBRWdBeTBBQ0RvQUZ5QUJJQU10QUFnNkFCOGdBU0FETFFBSU9nQW5JQUVnQXkwQUNEb0FMeUFCSUFNdEFBZzZBRGNnQVNBRExRQUlPZ0EvREFFTElBNUZCRUJCQVE4TElBTXRBQVVnQXkwQUEyc2dBeTBBQmlBRExRQUNhMEVCZEdvZ0F5MEFCeUFETFFBQmEwRURiR29nQXkwQUNDSUFJQU10QUFBaUNXdEJBblJxUVJGc1FSQnFRUVYxSWdaQmZXd2hFQ0FBSUFRdEFBY2lER3BCQkhRZ0JDMEFCQ0FFTFFBQ2F5QU1JQWxyUVFKMGFpQUVMUUFGSUFRdEFBRnJRUUYwYWlBRUxRQUdJQVF0QUFCclFRTnNha0VSYkVFUWFrRUZkU0lSUVgxc2FrRVFhaUVKUVFnaERDQUJJUUFEUUNBQUlBa2dFR29pQ0VFRmRVR3dMbW90QUFBNkFBQWdBQ0FHSUFocUlnaEJCWFZCc0M1cUxRQUFPZ0FCSUFBZ0JpQUlhaUlJUVFWMVFiQXVhaTBBQURvQUFpQUFJQVlnQ0dvaUNFRUZkVUd3TG1vdEFBQTZBQU1nQUNBR0lBaHFJZ2hCQlhWQnNDNXFMUUFBT2dBRUlBQWdCaUFJYWlJSVFRVjFRYkF1YWkwQUFEb0FCU0FBSUFZZ0NHb2lDRUVGZFVHd0xtb3RBQUE2QUFZZ0FDQUdJQWhxUVFWMVFiQXVhaTBBQURvQUJ5QUpJQkZxSVFrZ0FFRUlhaUVBSUF4QmYyb2lEQTBBQ3dzZ0FTQUNJQXNRQ0NBQklBSkJRR3NnQzBFQmNoQUlJQUVnQWtHQUFXb2dDMEVDY2hBSUlBRWdBa0hBQVdvZ0MwRURjaEFJSUFKQmdBSnFJUUlnQkVFSWFpRUVJQU5CQ1dvaEF5QUJRVUJySVFFZ0MwRUVhaUVMSUJKQkFXb2lFa0VDUncwQUMwRUFDNkVWQWhoL0FuNENmd05BQW44Z0FDSUlJQlpCQTNSQnNEVnFLUUlBSWg2bkVCRWlDU0lHQkVBZ0NDZ0NCQ0FHS0FJRVJnd0JDMEVBQ3lFTkFrQWdCVVVOQUNBTlJRMEFRUUFnRFVFQ0lBa29BZ0FpQmtFR1J5QUdRUVpKRzBFQ1Joc2hEUXNDZnlBSUlCWkJBM1JCOERacUtRSUFJaCtuRUJFaUJ5SUdCRUFnQ0NnQ0JDQUdLQUlFUmd3QkMwRUFDeUVQQWtBZ0JVVU5BQ0FQUlEwQVFRQWdEMEVDSUFjb0FnQWlCa0VHUnlBR1FRWkpHMEVDUmhzaER3dEJBaUVNSUExQkFFY2dEMEVBUjNFaUVrRUJSZ1JBUVFJaEJnSi9RUUlnQ1NnQ0FDSUxRUVpISUF0QkJra2JSUVJBSUFrZ0hrSWdpS2RCL3dGeGFpMEFVaUVHQ3lBR0N3Si9RUUlnQnlnQ0FDSUpRUVpISUFsQkJra2JSUVJBSUFjZ0gwSWdpS2RCL3dGeGFpMEFVaUVNQ3lBTUN5QUdJQXhKR3lFTUN5QUNJQlpCQW5RaUNXb2lCaWdDREVVRVFDQUdLQUpNSWdZZ0JpQU1UMm9oREFzZ0NDQVdhaUFNT2dCU0FuOGdDQ0FXUVFOMFFiQTRhaWdDQUJBUklnWWlCd1JBSUFnb0FnUWdCeWdDQkVZTUFRdEJBQXNoRGdKQUlBVkZEUUFnRGtVTkFFRUFJQTVCQWlBR0tBSUFJZ1pCQmtjZ0JrRUdTUnRCQWtZYklRNExBbjhnQUNBV1FRTjBRZkE1YWlnQ0FCQVJJZ2dpQmdSQUlBQW9BZ1FnQmlnQ0JFWU1BUXRCQUFzaEVRSkFJQVZGRFFBZ0VVVU5BRUVBSUJGQkFpQUlLQUlBSWdoQkJrY2dDRUVHU1J0QkFrWWJJUkVMSUFsQjhDbHFLQUlBSVJjZ0NVR3dLV29vQWdBaEdBSi9RWVVLSUJaMlFRRnhJaHdFUUNBWFFRTnFJUWNnQkNBWGFpSUlRUUpxSVFZZ0NFRUJhaUVMSUFRTUFRc2dGMEVFZENBWWFpSUlRUzlxSVFjZ0FTQUlhaUlJUVI5cUlRWWdDRUVQYWlFTElBaEJmMm9oQ0NBQkN5RUpJQWNnQ1dvdEFBQWhDaUFHTFFBQUlSQWdDeTBBQUNFVElBZ3RBQUFoRkFKQVFUTWdGblpCQVhFRVFDQURJQmhxSWdjdEFBZ2hHeUFITFFBSElSa2dCeTBBQmlFVklBY3RBQVVoR2lBSExRQUVJUVlnQnkwQUF5RUxJQWN0QUFJaENTQUhMUUFCSVFnTUFRc2dBU0FYUVg5cUloMUJCSFFnR0dwcUlnY3RBQUFoQ0NBSExRQUhJUnNnQnkwQUJpRVpJQWN0QUFVaEZTQUhMUUFFSVJvZ0J5MEFBeUVHSUFjdEFBSWhDeUFITFFBQklRa2dIQVJBSUFRZ0hXb2hCd3dCQ3lBSFFYOXFJUWNMQWtBZ0RFRUhUUVJBSUFjdEFBQWhCd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQWdERUVCYXc0SEFRSURCQVVHQndBTElBOUZCRUJCQVE4TElBaEIvd0Z4SUF0Qi93RnhRUkIwSUFaQkdIUnljaUFKUWY4QmNVRUlkSEloRlNBSUlnd2hEU0FKSWc0aEVpQUxJZzhoQ2lBR0loRWhCd3dJQ3lBTlJRUkFRUUVQQ3lBS1FZR0NoQWhzSVJVZ0VFR0Jnb1FJYkNJTlFSaDJJUWNnRFVFUWRpRUtJQTFCQ0hZaEVpQVRRWUdDaEFoc0lneEJHSFloRVNBTVFSQjJJUThnREVFSWRpRU9JQlJCZ1lLRUNHd2lDRUVZZGlFR0lBaEJFSFloQ3lBSVFRaDJJUWtNQndzQ2Z5QVRJQlJxSUFwcUlCQnFJQVpCL3dGeGFpQUxRZjhCY1dvZ0NVSC9BWEZxSUFoQi93Rnhha0VFYWtFRGRpQVNEUUFhSUJNZ0ZHb2dDbW9nRUdwQkFtcEJBbllnRFEwQUdrR0FBU0FQUlEwQUdpQUdRZjhCY1NBTFFmOEJjV29nQ1VIL0FYRnFJQWhCL3dGeGFrRUNha0VDZGdzaUNFR0Jnb1FJYkNFVklBZ2lDU0lMSWdZaURDSU9JZzhpRVNJTkloSWlDaUVIREFZTElBOUZCRUJCQVE4TElBWkIvd0Z4SWcxQkFtb2lFU0FWSUFZZ0RodEIvd0Z4SWdkcUlCb2dCaUFPRzBIL0FYRWlDa0VCZEdwQkFuWWlEeUFaSUFZZ0RodEIvd0Z4SWd3Z0d5QUdJQTRiUWY4QmNTSUdRUU5zYWtFV2RFR0FnSUFFYWtHQWdJQjRjWElnQ2lBTWFpQUhRUUYwYWtFQ2FpSVFRUVowUVlEK0EzRnlJQVlnQjJvZ0RFRUJkR3BCQW1vaUJrRU9kRUdBZ1B3SGNYSWhGU0FHUVFKMklRY2dDMEgvQVhFaUJrRUNhaUlMSUFoQi93RnhhaUFKUWY4QmNTSUpRUUYwYWtFQ2RpRUlJQWtnRVdvZ0JrRUJkR3BCQW5ZaUNTRU1JQW9nQzJvZ0RVRUJkR3BCQW5ZaUN5RU9JQXNoRFNBUElnWWhFaUFRUVFKMkloRWhDZ3dGQzBFQklCRkZJQkpCQVhOeURRWWFJQlFnRTBFQmRHb2dFR3BCQW1vaURrRUdkRUdBL2dOeElBb2dFMEVDYWlJUGFpQVFRUUYwYWtFQ2RuSWdDRUgvQVhFaUNrRUNhaUlNSUJScUlBZEJBWFJxUVFKMklnaEJHSFJ5SUE4Z0ZFRUJkR29nQjJvaUVFRU9kRUdBZ1B3SGNYSWhGU0FKUWY4QmNTSVJRUUpxSWdrZ0JrSC9BWEZxSUF0Qi93RnhJZ3RCQVhScVFRSjJJUVlnRGtFQ2RpRU5JQWtnQ2tFQmRHb2dCMnBCQW5ZaUNTRVBJQkZCQVhRZ0Myb2dER3BCQW5ZaUN5RVJJQkJCQW5ZaURDRVNJQWdpRGlFS0lBa2hCd3dFQzBFQklCRkZJQkpCQVhOeURRVWFJQWhCL3dGeElncEJBbW9pRGlBTFFmOEJjU0lJSUFsQi93RnhJZ3RCQVhScWFrRUNkaUlQUVJoMElCUWdFMEVCZEdvZ0VHcEJBbXBCQW5aeUlBNGdGR29nQjBFQmRHb2lDVUVHZEVHQS9nTnhjaUFMUVFKcUlnNGdDa0VCZEdvZ0Iyb2lEVUVPZEVHQWdQd0hjWEloRlNBSVFRRnFJaEFnQmtIL0FYRWlER3BCQVhZaEJpQU1JQTVxSUFoQkFYUnFRUUoySVJFZ0NVRUNkaUVNSUExQkFuWWhEaUFUSUJSQkFYUnFJQWRxUVFKcVFRSjJJUTBnQnlBS2FrRUJha0VCZGlJSUlSSWdDaUFMYWtFQmFrRUJkaUlKSVFvZ0N5QVFha0VCZGlJTElRY01Bd3RCQVNBUlJTQVNRUUZ6Y2cwRUdpQVRRUUpxSWc0Z0Ntb2dFRUVCZEdwQkJuUkJnUDREY1NBUUlCTnFRUUZxSWc5QkQzUkJnSUQ4QjNFZ0ZFRUNhaUlNSUJOQkFYUnFJQkJxUVFKMkloSkJHSFJ5SUFvZ0VHcEJBV3BCQVhaeWNpRVZJQWhCL3dGeElnZ2dDMEgvQVhGcUlBbEIvd0Z4SWdsQkFYUnFRUUpxUVFKMklRWWdDU0FJUVFGMGFpQUhha0VDYWtFQ2RpRUxJQTlCQVhZaERTQUlJQXhxSUFkQkFYUnFRUUoySWhFaENTQVVRUUZxSWdvZ0IycEJBWFlpQ0NFUElBb2dFMnBCQVhZaURDRUtJQTRnRkVFQmRHb2dCMnBCQW5ZaURpRUhEQUlMSUE5RkJFQkJBUThMSUJvZ0JpQU9HMEgvQVhFaUNpQVpJQVlnRGh0Qi93RnhhaUFWSUFZZ0RodEIvd0Z4SWdkQkFYUnFRUlowSUF0Qi93RnhJZ3RCQW1vaURDQUthaUFHUWY4QmNTSUdRUUYwYWlJUFFRWjBja0dBZ0lBRWFrR0Evb040Y1NBR1FRSnFJZzBnQ1VIL0FYRWlDV29nQzBFQmRHcEJBbllpRG5JZ0J5QU5haUFLUVFGMGFpSU5RUTUwUVlDQS9BZHhjaUVWSUFjZ0NtcEJBV3BCQVhZaEJ5QU5RUUoySVJFZ0NTQUlRZjhCY1NJTmFrRUJha0VCZGlFSUlBOUJBblloRHlBTUlBMXFJQWxCQVhScVFRSjJJUXdnQ1NBTGFrRUJha0VCZGlJSklRMGdCa0VCYWlJR0lBdHFRUUYySWdzaEVpQUdJQXBxUVFGMklnWWhDZ3dCQ3lBTlJRUkFRUUVQQ3lBS1FRaDBJQXB5SUFwQkVIUnlJQXBCR0hSeUlSVWdFRUVDYWlJSElCUnFJQk5CQVhScVFRSjJJUWtnRTBFQmFpSUdJQlJxUVFGMklRZ2dCaUFRYWtFQmRpSUxJUXdnQ2lBVGFpQVFRUUYwYWtFQ2FrRUNkaUlHSVE0Z0NpQVFha0VCYWtFQmRpSVBJUTBnQnlBS1FRTnNha0VDZGlJUklSSWdDaUVIQ3lBQklCZEJCSFFnR0dwcUloQWdGVFlDTUNBUUlBMUIvd0Z4SUJKQi93RnhRUWgwY2lBS1FmOEJjVUVRZEhJZ0IwRVlkSEkyQWlBZ0VDQU1RZjhCY1NBT1FmOEJjVUVJZEhJZ0QwSC9BWEZCRUhSeUlCRkJHSFJ5TmdJUUlCQWdDRUgvQVhFZ0NVSC9BWEZCQ0hSeUlBdEIvd0Z4UVJCMGNpQUdRUmgwY2pZQ0FDQUJJQUlnRmtFR2RHcEJ5QUpxSUJZUUNDQVdRUUZxSWhaQkVFY05BQXRCQUFzTHhSSUJFSDhDZnlBQUtBTElBU0lIQkVBZ0FDZ0NCQ0FIS0FJRVJnd0JDMEVBQ3lFSEFrQWdCVVVOQUNBSFJRMEFRUUFnQjBFQ0lBQW9Bc2dCS0FJQUlnZEJCa2NnQjBFR1NSdEJBa1liSVFjTEFuOGdBQ2dDekFFaUNBUkFJQUFvQWdRZ0NDZ0NCRVlNQVF0QkFBc2hDQUpBSUFWRkRRQWdDRVVOQUVFQUlBaEJBaUFBS0FMTUFTZ0NBQ0lJUVFaSElBaEJCa2tiUVFKR0d5RUlDd0ovSUFBb0F0UUJJZ2tFUUNBQUtBSUVJQWtvQWdSR0RBRUxRUUFMSVFrQ1FDQUZSUTBBSUFsRkRRQkJBaUFBS0FMVUFTZ0NBQ0lGUVFaSElBVkJCa2tiUVFKSElRa0xBa0FDUUNBQUtBSUFRUUZxUVFOeElnQkJBazBFUUFKQUFrQUNRQ0FBUVFGckRnSUJBZ0FMSUFoRkJFQkJBUThMUVFBaEJTQUJJUUFEUUNBQUlBTXRBQUU2QUFBZ0FDQURMUUFDT2dBQklBQWdBeTBBQXpvQUFpQUFJQU10QUFRNkFBTWdBQ0FETFFBRk9nQUVJQUFnQXkwQUJqb0FCU0FBSUFNdEFBYzZBQVlnQUNBRExRQUlPZ0FISUFBZ0F5MEFDVG9BQ0NBQUlBTXRBQW82QUFrZ0FDQURMUUFMT2dBS0lBQWdBeTBBRERvQUN5QUFJQU10QUEwNkFBd2dBQ0FETFFBT09nQU5JQUFnQXkwQUR6b0FEaUFBSUFNdEFCQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3REN5QUhSUVJBUVFFUEMwRUFJUVVnQVNFQUEwQWdBQ0FFSUFWcUlnTXRBQUE2QUFBZ0FDQURMUUFBT2dBQklBQWdBeTBBQURvQUFpQUFJQU10QUFBNkFBTWdBQ0FETFFBQU9nQUVJQUFnQXkwQUFEb0FCU0FBSUFNdEFBQTZBQVlnQUNBRExRQUFPZ0FISUFBZ0F5MEFBRG9BQ0NBQUlBTXRBQUE2QUFrZ0FDQURMUUFBT2dBS0lBQWdBeTBBQURvQUN5QUFJQU10QUFBNkFBd2dBQ0FETFFBQU9nQU5JQUFnQXkwQUFEb0FEaUFBSUFNdEFBQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3Q0N5QUJBbjhDUUNBSFJRMEFJQWhGRFFBZ0JDMEFEeUFETFFBUUlBUXRBQTRnQXkwQUR5QUVMUUFOSUFNdEFBNGdCQzBBRENBRExRQU5JQVF0QUFzZ0F5MEFEQ0FFTFFBS0lBTXRBQXNnQkMwQUNTQURMUUFLSUFRdEFBZ2dBeTBBQ1NBRUxRQUhJQU10QUFnZ0JDMEFCaUFETFFBSElBUXRBQVVnQXkwQUJpQUVMUUFFSUFNdEFBVWdCQzBBQXlBRExRQUVJQVF0QUFJZ0F5MEFBeUFFTFFBQklBTXRBQUlnQXkwQUFTQUVMUUFBYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFrRVFha0VGZGd3QkN5QUhCRUFnQkMwQUR5QUVMUUFPSUFRdEFBMGdCQzBBRENBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSUlBUXRBQWNnQkMwQUJpQUVMUUFGSUFRdEFBUWdCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYW1wcWFtcHFhbXBxYW1wcWFrRUlha0VFZGd3QkMwR0FBU0FJUlEwQUdpQURMUUFRSUFNdEFBOGdBeTBBRGlBRExRQU5JQU10QUF3Z0F5MEFDeUFETFFBS0lBTXRBQWtnQXkwQUNDQURMUUFISUFNdEFBWWdBeTBBQlNBRExRQUVJQU10QUFNZ0F5MEFBU0FETFFBQ2FtcHFhbXBxYW1wcWFtcHFhbXBxUVFocVFRUjJDMEdBQWhBSEdnd0JDMEVCSVFBZ0IwVU5BU0FJUlEwQklBbEZEUUVnQkMwQUNDQUVMUUFHYXlBRUxRQVBJZ0FnQXkwQUFDSUZhMEVEZEdvZ0JDMEFDU0FFTFFBRmEwRUJkR29nQkMwQUNpQUVMUUFFYTBFRGJHb2dCQzBBQ3lBRUxRQURhMEVDZEdvZ0JDMEFEQ0FFTFFBQ2EwRUZiR29nQkMwQURTQUVMUUFCYTBFR2JHb2dCQzBBRGlBRUxRQUFhMEVIYkdwQkJXeEJJR3BCQm5VaEJ5QURMUUFKSUFNdEFBZHJJQU10QUFvZ0F5MEFCbXRCQVhScUlBTXRBQXNnQXkwQUJXdEJBMnhxSUFNdEFBd2dBeTBBQkd0QkFuUnFJQU10QUEwZ0F5MEFBMnRCQld4cUlBTXRBQTRnQXkwQUFtdEJCbXhxSUFNdEFBOGdBeTBBQVd0QkIyeHFJQU10QUJBaUF5QUZhMEVEZEdwQkJXeEJJR3BCQm5VaUJFRURkQ0VJSUFSQkIyd2hDU0FFUVFac0lRb2dCRUVGYkNFTElBUkJBMndoRENBRVFYMXNJUTBnQkVGN2JDRU9JQVJCZW13aER5QUVRWGxzSVJCQkFDQUVRUUYwSWhGcklSSkJBQ0FFUVFKMEloTnJJUlFnQUNBRGFrRUVkRUVRYWlFVlFRQWhCUU5BSUFFZ0JVRUVkQ0lBYWlBVklBVkJlV29nQjJ4cUlnTWdFR3BCQlhVaUJrSC9BU0FHUWY4QlNCc2lCa0VBSUFaQkFFb2JPZ0FBSUFFZ0FFRUJjbW9nQXlBUGFrRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFKeWFpQURJQTVxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJBM0pxSUFNZ0ZHcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFRWNtb2dBeUFOYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUVZ5YWlBRElCSnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkJuSnFJQU1nQkd0QkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVIY21vZ0EwRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFoeWFpQURJQVJxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJDWEpxSUFNZ0VXcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFS2Ntb2dBeUFNYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUXR5YWlBRElCTnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkRISnFJQU1nQzJwQkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVOY21vZ0F5QUtha0VGZFNJR1FmOEJJQVpCL3dGSUd5SUdRUUFnQmtFQVNoczZBQUFnQVNBQVFRNXlhaUFESUFscVFRVjFJZ1pCL3dFZ0JrSC9BVWdiSWdaQkFDQUdRUUJLR3pvQUFDQUJJQUJCRDNKcUlBTWdDR3BCQlhVaUFFSC9BU0FBUWY4QlNCc2lBRUVBSUFCQkFFb2JPZ0FBSUFWQkFXb2lCVUVRUncwQUN3dEJBQ0VBSUFFZ0FrRUFFQWdnQVNBQ1FVQnJRUUVRQ0NBQklBSkJnQUZxUVFJUUNDQUJJQUpCd0FGcVFRTVFDQ0FCSUFKQmdBSnFRUVFRQ0NBQklBSkJ3QUpxUVFVUUNDQUJJQUpCZ0FOcVFRWVFDQ0FCSUFKQndBTnFRUWNRQ0NBQklBSkJnQVJxUVFnUUNDQUJJQUpCd0FScVFRa1FDQ0FCSUFKQmdBVnFRUW9RQ0NBQklBSkJ3QVZxUVFzUUNDQUJJQUpCZ0FacVFRd1FDQ0FCSUFKQndBWnFRUTBRQ0NBQklBSkJnQWRxUVE0UUNDQUJJQUpCd0FkcVFROFFDQXNnQUF1N0NBRUhmd0pBSUFORkRRQWdBQ2dDQUNBRElBQW9BZ1FpQlc0aUNDQUZiQ0lFUVFoMGFpQURJQVJySWdkQkJIUnFJUVlnQlVFRWRDRUVJQUFvQWdnaENTQUZJQU5MSWdwRkJFQWdBU0FHSUFSQkFYSnJJZ010QUFBNkFBQWdBU0FETFFBQk9nQUJJQUVnQXkwQUFqb0FBaUFCSUFNdEFBTTZBQU1nQVNBRExRQUVPZ0FFSUFFZ0F5MEFCVG9BQlNBQklBTXRBQVk2QUFZZ0FTQURMUUFIT2dBSElBRWdBeTBBQ0RvQUNDQUJJQU10QUFrNkFBa2dBU0FETFFBS09nQUtJQUVnQXkwQUN6b0FDeUFCSUFNdEFBdzZBQXdnQVNBRExRQU5PZ0FOSUFFZ0F5MEFEam9BRGlBQklBTXRBQTg2QUE4Z0FTQURMUUFRT2dBUUlBRWdBeTBBRVRvQUVTQUJJQU10QUJJNkFCSWdBU0FETFFBVE9nQVRJQUVnQXkwQUZEb0FGQ0FCUVJWcUlRRUxJQWNFUUNBQ0lBWkJmMm9pQXkwQUFEb0FBQ0FDSUFNZ0JHb2lBeTBBQURvQUFTQUNJQU1nQkdvaUF5MEFBRG9BQWlBQ0lBTWdCR29pQXkwQUFEb0FBeUFDSUFNZ0JHb2lBeTBBQURvQUJDQUNJQU1nQkdvaUF5MEFBRG9BQlNBQ0lBTWdCR29pQXkwQUFEb0FCaUFDSUFNZ0JHb2lBeTBBQURvQUJ5QUNJQU1nQkdvaUF5MEFBRG9BQ0NBQ0lBTWdCR29pQXkwQUFEb0FDU0FDSUFNZ0JHb2lBeTBBQURvQUNpQUNJQU1nQkdvaUF5MEFBRG9BQ3lBQ0lBTWdCR29pQXkwQUFEb0FEQ0FDSUFNZ0JHb2lBeTBBQURvQURTQUNJQU1nQkdvaUF5MEFBRG9BRGlBQ0lBTWdCR290QUFBNkFBOGdBa0VRYWlFQ0N5QUFLQUlBSUFVZ0NXd2lCRUVJZEdvZ0NDQUZRUU4wSWdCc1FRTjBhaUFIUVFOMGFpRUdJQUJCK1AvLy93ZHhJUUFnQ2tVRVFDQUJJQVlnQUVFQmNtc2lBeTBBQURvQUFDQUJJQU10QUFFNkFBRWdBU0FETFFBQ09nQUNJQUVnQXkwQUF6b0FBeUFCSUFNdEFBUTZBQVFnQVNBRExRQUZPZ0FGSUFFZ0F5MEFCam9BQmlBQklBTXRBQWM2QUFjZ0FTQURRUWhxSWdNdEFBQTZBQWdnQVNBRVFRWjBJQU5xSWdOQmVHb3RBQUE2QUFrZ0FTQURRWGxxTFFBQU9nQUtJQUVnQTBGNmFpMEFBRG9BQ3lBQklBTkJlMm90QUFBNkFBd2dBU0FEUVh4cUxRQUFPZ0FOSUFFZ0EwRjlhaTBBQURvQURpQUJJQU5CZm1vdEFBQTZBQThnQVNBRFFYOXFMUUFBT2dBUUlBRWdBeTBBQURvQUVRc2dCMFVOQUNBQ0lBWkJmMm9pQVMwQUFEb0FBQ0FDSUFBZ0FXb2lBUzBBQURvQUFTQUNJQUFnQVdvaUFTMEFBRG9BQWlBQ0lBQWdBV29pQVMwQUFEb0FBeUFDSUFBZ0FXb2lBUzBBQURvQUJDQUNJQUFnQVdvaUFTMEFBRG9BQlNBQ0lBQWdBV29pQVMwQUFEb0FCaUFDSUFBZ0FXb2lBUzBBQURvQUJ5QUNJQUFnQVdvZ0JDQUZhMEVHZEdvaUFTMEFBRG9BQ0NBQ0lBQWdBV29pQVMwQUFEb0FDU0FDSUFBZ0FXb2lBUzBBQURvQUNpQUNJQUFnQVdvaUFTMEFBRG9BQ3lBQ0lBQWdBV29pQVMwQUFEb0FEQ0FDSUFBZ0FXb2lBUzBBQURvQURTQUNJQUFnQVdvaUFTMEFBRG9BRGlBQ0lBQWdBV290QUFBNkFBOExDNjhCQVFGL0l3QkIwQUJySWdZa0FDQUNJQVpCSUdvZ0JpQURFRlVDUUFKQVFRSWdBQ2dDQUNJRFFRWkhJQU5CQmtrYlFRRkdCRUFnQUNBRklBRkJ5QUpxSUFaQklHb2dCaUFFRUZRaUEwVU5BUXdDQ3lBQUlBVWdBU0FHUVNCcUlBWWdCQkJUSWdNTkFRc2dBQ0FGUVlBQ2FpQUJRY2dLYWlBR1FUVnFJQVpCRUdvZ0FTZ0NqQUVnQkJCU0lnTU5BRUVBSVFNZ0FDZ0N4QUZCQVVzTkFDQUNJQVVRR3dzZ0JrSFFBR29rQUNBREM2TXFBU1IvSXdCQklHc2lFQ1FBSUJBZ0JDZ0NCQ0lJTmdJTUlCQWdCQ2dDQ0RZQ0VDQURJQWh1SWdaQkJIUWhGQ0FESUFZZ0NHeHJRUVIwSVJVQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFBb0FnQWlCa0VEVFFSQUFrQUNRQUpBSUFaQkFtc09BZ0VDQUFzZ0FTZ0NrQUVoRXlBQUtBSUVJUTVCZnlFUEFuOGdBQ2dDeUFFaUNVVUVRRUVBSVFoQmZ3d0JDMEVBSVFoQmZ5QUpLQUlFSUE1SERRQWFRUUVoRWtGL0lBa29BZ0JCQlVzTkFCb2dDU2dDbUFFaUNFRVFkaUVISUFrb0FtZ0xJUTBnQUNnQ3pBRWlDVVVOQ0NBSktBSUVJQTVIRFFoQkFTRVdJQWtvQWdCQkJVc05DQ0FKS0FLc0FTSVJRUkIySVFvZ0NTZ0NiQ0VQREFnTElBRW9BcEFCSVJNZ0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhDMEYvSVFjQ1FDQUFLQUxNQVNJR1JRMEFJQXNnQmlnQ0JFY0VRQXdCQzBFQklSSWdCaWdDQUVFRlN3MEFJQVlvQXF3QklnbEJFSFloQ2lBR0tBSnNJUWNMSUFjZ0UwWUVRQ0FLSVFjZ0NTRUdEQWNMUVg4aER3SkFBa0FDUUNBQUtBTElBU0lJUlFSQVFRQWhCd3dCQzBFQUlRY2dDQ2dDQkNBTFJnMEJDMEVBSVFZTUFRdEJBU0VYSUFnb0FnQkJCVXNFUUVFQUlRWU1BUXNnQ0NnQ21BRWlCa0VRZGlFSElBZ29BbWdoRHdzQ1FBSkFJQUFvQXRBQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVTBOQVF3R0N3SkFJQUFvQXRRQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVXNOQmlBSUtBSndJUllnQ0NnQ3dBRWhDQXdIQzBFQUlRaEJmeUVXSUJJTkJpQVhSUTBHREFjTElBZ29BbXdoRmlBSUtBS3NBU0VJREFVTElBRW9BcEFCSVE4Z0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhCa0YvSVFjQ1FDQUFLQUxJQVNJS1JRUkFRUUFoQ0F3QkMwRUFJUWdnQmlBS0tBSUVSd1JBREFFTFFRRWhFU0FLS0FJQVFRVkxEUUFnQ2lnQ21BRWlDVUVRZGlFSUlBb29BbWdoQndzZ0J5QVBSZzBCQW44Q2Z3SkFBa0FnQUNnQ3pBRWlCMFVOQUNBSEtBSUVJQVpIRFFBZ0J5Z0NBRUVGU3cwQklBY29BbkFoRVNBSEtBSzhBU0VLSUFjb0Ftd2hFaUFIS0FLc0FTSUdRUkIyREFNTEFrQWdBQ2dDMUFFaUIwVU5BQ0FIS0FJRUlBWkhEUUJCQUNFR1FYOGhFaUFIS0FJQVFRVkxCRUJCZnlFUlFRQU1Bd3NnQnlnQ2NDRVJJQWNvQXNBQkRBSUxJQkVOQkF0QmZ5RVJRWDhoRWtFQUlRWkJBQXNoQ2tFQUN5RUhJQThnRWtZaUN5QVBJQkZHYWtFQlJ3UkFJQWNnQ0NBSFFSQjBRUkIxSWdzZ0NFRVFkRUVRZFNJT1NpSUlHeUlISUE0Z0N5QU9JQXNnRGtnYklBZ2JJZ2dnQ2tFUWRTSUxJQWdnQzBvYklBZEJFSFJCRUhVZ0MwZ2JJUWNnQmlBSklBWkJFSFJCRUhVaUN5QUpRUkIwUVJCMUlnbEtJZ1liSWdoQi8vOERjU0FKSUFzZ0NTQUxJQWxJR3lBR0d5SUdJQXBCRUhSQkVIVWlDU0FHSUFsS0d5QUlRUkIwUVJCMUlBbElHeUVHREFNTElBc05BaUFLUVJCMklRY2dDaUVHREFJTFFRRWhHeUFBUVlRQmFpRWNBMEFDZnlBQklCMUJBblFpSG1vaUlDSWtLQUt3QVNJR1FRSk5CRUFnQmtFQ2RFR2NOV29vQWdBTUFRdEJCQXNoSWlBQUlCNXFJZ1lnSUNnQ3dBRTJBbVFnQmlBQ0lDQW9Bc0FCRUJRaUJqWUNkQ0FHUlEwSUlDSUVRQ0FjSUIxQkJIUWlIMm9pSlNFbUlCd2dIMEVNY21vaUowRUNhaUVvSUJ3Z0gwRUljbW9pS1NFUklCd2dIMEVFY21vaUZpRVRRUUFoQmdOQUlBRWdIMm9nQmtFQ2RHb2lDQzhCMGdFaER5QUlMd0hRQVNFT0lDQW9Bc0FCSVNGQmZ5RVhBbjhnQUNBZFFRZDBJQ1FvQXJBQklpTkJCWFJxSUFaQkEzUnFJaHBCc0JscUtBSUFFQkVpQ1VVRVFFRUFJUXhCQUNFSVFRQWhDa0YvREFFTFFRQWhERUVBSVFoQkFDRUtRWDhnQ1NnQ0JDQUFLQUlFUncwQUdrRUJJUXBCZnlBSktBSUFRUVZMRFFBYUlBa2dHa0cwR1dvdEFBQWlCMEVDZEdvb0FvUUJJZ2hCRUhZaERDQUpJQWRCL0FGeGFpZ0NaQXNoRFFKQUFrQUNRQ0FBSUJwQnNCMXFLQUlBRUJFaUdFVUVRRUVBSVFrTUFRdEJBQ0VKSUJnb0FnUWdBQ2dDQkVZTkFRdEJBQ0VTUVFBaEN3d0JDMEVCSVFzZ0dDZ0NBRUVGU3dSQVFRQWhFZ3dCQ3lBWUlCcEJ0QjFxTFFBQUlnZEJBblJxS0FLRUFTSVNRUkIySVFrZ0dDQUhRZndCY1dvb0FtUWhGd3NDUUFKQUFrQUNRQUpBSUFBZ0drR3dJV29vQWdBUUVTSVpSUTBBSUJrb0FnUWdBQ2dDQkVjTkFDQVpLQUlBUVFWTkRRRU1BZ3NDUUNBQUlCcEJzQ1ZxS0FJQUVCRWlHVVVOQUNBWktBSUVJQUFvQWdSSERRQWdHU2dDQUVFRlN3MENJQmtnR2tHMEpXb3RBQUFpQjBIOEFYRnFLQUprSVJnZ0dTQUhRUUowYWlnQ2hBRWhCd3dEQzBFQUlRZEJmeUVZSUFwRkRRSWdDdzBDREFNTElCa2dHa0cwSVdvdEFBQWlCMEg4QVhGcUtBSmtJUmdnR1NBSFFRSjBhaWdDaEFFaEJ3d0JDMEVBSVFkQmZ5RVlDeUFYSUNGR0lnb2dEU0FoUmlJTGFpQVlJQ0ZHYWtFQlJ3UkFJQWtnRENBSlFSQjBRUkIxSWdzZ0RFRVFkRUVRZFNJTVNpSUpHeUlLSUF3Z0N5QU1JQXNnREVnYklBa2JJZ2tnQjBFUWRTSUxJQWtnQzBvYklBcEJFSFJCRUhVZ0MwZ2JJUXdnRWlBSUlCSkJFSFJCRUhVaUNpQUlRUkIwUVJCMUlndEtJZ2diSWdsQi8vOERjU0FMSUFvZ0N5QUtJQXRJR3lBSUd5SUlJQWRCRUhSQkVIVWlCeUFJSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVJREFFTElBZ2dFaUFMR3lFSUlBd2dDU0FMR3lFTUlBc05BQ0FLRFFBZ0IwRVFkaUVNSUFjaENBc2dDQ0FPYWlJS1FSQjBRUkIxUVlCQWEwSC8vd0JMRFFvZ0RDQVBhaUlKUVJCMFFSQjFRWUFRYWtIL0gwc05DaUFqUVFOTkJFQUNmd0pBQWtBQ1FBSkFJQ05CQVdzT0F3RUNBd0FMSUNVZ0Nqc0JBQ0FtSUFrN0FRSWdGaUFLT3dFQUlCTWdDVHNCQWlBcElBbzdBUUFnRVNBSk93RUNJQ2NnQ2pzQkFDQW9EQU1MSUJ3Z0JrRUJkQ0FlYWtFQ2RDSUhhaUlJSUFrN0FRSWdDQ0FLT3dFQUlCd2dCMEVFY21vaUNDQUtPd0VBSUFoQkFtb01BZ3NnQUNBR0lCNXFRUUowYWlJSUlBbzdBWXdCSUFnZ0NUc0JoZ0VnQ0NBS093R0VBU0FJUVk0QmFnd0JDeUFBSUFZZ0htcEJBblJxSWdnZ0Nqc0JoQUVnQ0VHR0FXb0xJQWs3QVFBTElBWkJBV29pQmlBaVJ3MEFDd3NnSFVFQmFpSWRRUVJIRFFBTFFRQWhEQU5BSUJBZ0FDQU1RUUowSWdKcUtBSjBOZ0lJSUF4QkFVdEJBM1FoQ1NBTVFRTjBRUWh4SVFjQ1FDQUJJQUpxS0FLd0FTSUNRUUpOQkVBQ1FBSkFBa0FnQWtFQmF3NENBUUlBQ3lBRklBQWdERUVFZEdwQmhBRnFJQkJCQ0dvZ0ZTQVVJQWNnQ1VFSVFRZ1FEZ3dEQ3lBRklBQWdERUVFZEdvaUFrR0VBV29nRUVFSWFpQVZJQlFnQnlBSlFRaEJCQkFPSUFVZ0FrR01BV29nRUVFSWFpQVZJQlFnQnlBSlFRUnlRUWhCQkJBT0RBSUxJQVVnQUNBTVFRUjBhaUlDUVlRQmFpQVFRUWhxSUJVZ0ZDQUhJQWxCQkVFSUVBNGdCU0FDUVlnQmFpQVFRUWhxSUJVZ0ZDQUhRUVJ5SUFsQkJFRUlFQTRNQVFzZ0JTQUFJQXhCQkhScUlnaEJoQUZxSUJCQkNHb2dGU0FVSUFjZ0NVRUVRUVFRRGlBRklBaEJpQUZxSUJCQkNHb2dGU0FVSUFkQkJISWlCaUFKUVFSQkJCQU9JQVVnQ0VHTUFXb2dFRUVJYWlBVklCUWdCeUFKUVFSeUlnSkJCRUVFRUE0Z0JTQUlRWkFCYWlBUVFRaHFJQlVnRkNBR0lBSkJCRUVFRUE0TElBeEJBV29pREVFRVJ3MEFDd3dHQ3lBSUlRY2dDU0VHQzBFQklSc2dCaUFNYWlJSVFSQjBRUkIxUVlCQWEwSC8vd0JMRFFVZ0J5QU5haUlHUVJCMFFSQjFRWUFRYWtIL0gwc05CU0FDSUE4UUZDSUhSUTBGSUFBZ0Jqc0JzZ0VnQUNBSU93R3dBU0FBSUFjMkFuUWdBQ0FQTmdKa0lBQWdCellDZkNBQUlBODJBbXdnQUNBQUtBS3dBU0lHTmdLc0FTQUFJQVkyQXFnQklBQWdCallDcEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FCS0FLVUFTRU9JQUV2QWFZQklRd2dBUzhCcEFFaEN5QUFLQUlFSVFrQ1FBSkFJQUFvQXRBQklnZEZEUUFnQnlnQ0JDQUpSdzBBUVFFaEVTQUhLQUlBUVFWTEJFQkJmeUVJUVFBaEJ3d0NDeUFIS0FKc0lRZ2dCeWdDckFFaEJ3d0JDMEYvSVFoQkFDRUhJQUFvQXN3QklncEZCRUJCQUNFUkRBRUxJQWtnQ2lnQ0JFY0VRRUVBSVJFTUFRdEJBU0VSSUFvb0FnQkJCVXNOQUNBS0tBSnNJUWdnQ2lnQ3NBRWhCd3NDUUNBSUlBNUdSUVJBSUFaQkVIWWhDQUovQWtBQ1FDQUFLQUxNQVNJTlJRMEFJQTBvQWdRZ0NVY05BQ0FOS0FJQVFRVkxEUUVnRFNnQ3ZBRWlFVUVRZGlFS0lBMG9BbkFNQWdzZ0VVVU5Bd3RCQUNFUlFRQWhDa0YvQ3lFTklBNGdEMFlpQ1NBTklBNUdha0VCUndSQUlBb2dDQ0FLUVJCMFFSQjFJZzBnQ0VFUWRFRVFkVW9pQ0JzaUNTQUdRUkIxSWdvZ0RTQUtJQW9nRFVvYklBZ2JJZ2dnQjBFUWRTSUtJQWdnQ2tvYklBbEJFSFJCRUhVZ0NrZ2JJUWdnRVNBR0lCRkJFSFJCRUhVaUNpQUdRUkIwUVJCMUlnMUtJZ1liSWdsQi8vOERjU0FOSUFvZ0RTQU5JQXBLR3lBR0d5SUdJQWRCRUhSQkVIVWlCeUFHSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVHREFJTElBa05BU0FOSUE1R0JFQWdFVUgvL3dOeElBcEJFSFJ5SVFZZ0NpRUlEQUlMQ3lBSFFSQjJJUWdnQnlFR0N5QUdJQXRxSWdkQkVIUkJFSFZCZ0VCclFmLy9BRXNOQlNBSUlBeHFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MEZJQUlnRGhBVUlnSkZEUVVnQUNBR093SENBU0FBSUFjN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKNElBQWdEallDY0NBQUlBNDJBbWdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0tnQVNBQUlBWTJBcHdCSUFBZ0JqWUNtQUVnQUVHVUFXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVJUVJBUURpQVFJQUFvQW5nMkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFoQkFFRUlRUkFRRGd3RUMwRUFJUWhCZnlFV0N5QVBJQk5HSWdzZ0V5QVdSbXBCQVVjRVFDQUtJQWNnQ2tFUWRFRVFkU0lMSUFkQkVIUkJFSFVpRGtvaUJ4c2lDaUFPSUFzZ0RpQUxJQTVJR3lBSEd5SUhJQWhCRUhVaUN5QUhJQXRLR3lBS1FSQjBRUkIxSUF0SUd5RUhJQWtnQmlBSlFSQjBRUkIxSWdvZ0JrRVFkRUVRZFNJTFNpSUdHeUlKUWYvL0EzRWdDeUFLSUFzZ0NpQUxTQnNnQmhzaUJpQUlRUkIwUVJCMUlnZ2dCaUFJU2hzZ0NVRVFkRUVRZFNBSVNCc2hCZ3dCQ3lBTERRQWdDRUVRZGlFSElBZ2hCZ3RCQVNFYklBWWdER29pQ0VFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0RXb2lCa0VRZEVFUWRVR0FFR3BCL3g5TERRSWdBaUFURUJRaUIwVU5BaUFBSUFZN0FhSUJJQUFnQ0RzQm9BRWdBQ0FITmdKMElBQWdFellDWkNBQUlBYzJBbmdnQUNBVE5nSm9JQUFnQUNnQ29BRWlEellDbkFFZ0FDQVBOZ0tZQVNBQUlBODJBcFFCSUFBZ0R6WUNrQUVnQUNBUE5nS01BU0FBSUE4MkFvZ0JJQUFnRHpZQ2hBRWdBU2dDbEFFaERpQUJMd0dtQVNFTklBRXZBYVFCSVF3Q2Z3SkFBa0FDUUNBQUtBTElBU0lHQkVBZ0JpZ0NCQ0FBS0FJRVJnUkFJQVlvQWdCQkJVMEVRQ0FHS0FLNEFTSUxRUkIySVFjZ0JpZ0NjQ0FPUncwRUlBc2hDUXdEQzBGL0lSSkJBQ0VKUVFBaEIwRUFJUXRCQUNFS0lBNUJmMFlOQWd3RUMwRi9JUkpCQUNFSlFRQWhCMEVBSVF0QkFDRUtJQTVCZjBZTkFRd0RDMEYvSVJKQkFDRUpRUUFoQjBFQUlRdEJBQ0VLSUE1QmYwY05BZ3NnQ1VILy93TnhJQWRCRUhSeURBSUxJQVlvQW1naEVpQUdLQUtnQVNFS0lBY2hDUXNnRDBFUWRpRUlJQTRnRTBZaUJpQU9JQkpHYWtFQlJ3UkFJQWdnQ1NBSlFSQjBRUkIxSWdrZ0NFRVFkRUVRZFVnaUJ4c2lDQ0FKSUE5QkVIVWlCaUFKSUFZZ0NVZ2JJQWNiSWdZZ0NrRVFkU0lISUFZZ0Iwb2JJQWhCRUhSQkVIVWdCMGdiSVFjZ0R5QUxJQXRCRUhSQkVIVWlDeUFQUVJCMFFSQjFJZ2xJSWdZYklnaEIvLzhEY1NBTElBa2dDeUFKSUF0SUd5QUdHeUlHSUFwQkVIUkJFSFVpQ1NBR0lBbEtHeUFJUVJCMFFSQjFJQWxJR3d3QkN5QUlJQXBCRUhZZ0Joc2hCeUFQSUFvZ0Joc0xJQXhxSWdoQkVIUkJFSFZCZ0VCclFmLy9BRXNOQWlBSElBMXFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MENJQUlnRGhBVUlnSkZEUUlnQUNBR093SENBU0FBSUFnN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKOElBQWdEallDY0NBQUlBNDJBbXdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0t3QVNBQUlBWTJBcXdCSUFBZ0JqWUNxQUVnQUVHa0FXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVRUVFnUURpQVFJQUFvQW53MkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFCQkNFRVFRUWdRRGd3QkN3SkFJQVpGQkVBZ0VrVUVRRUVBSVFrTUFnc2dGa1VFUUVFQUlRa01BZ3NnQ0VILy93TnhJQWRCRUhSeUlBMXlSUVJBUVFBaENRd0NDMEVBSVFrZ0VVSC8vd054SUFwQkVIUnlJQTl5UlEwQkN5QUJMd0dpQVNFTElBRXZBYUFCSVFrQ1FBSkFBa0FDUUFKQUlBQW9BdEFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVME5BUXdDQ3dKQUlBQW9BdFFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVc05BaUFHS0FKd0lSY2dCaWdDd0FFaERBd0RDMEYvSVJjZ0VrVU5BaUFXRFFJTUF3c2dCaWdDYkNFWElBWW9BcXdCSVF3TUFRdEJmeUVYQ3lBUElCTkdJZ1lnRFNBVFJpSU5haUFUSUJkR2FrRUJSd1JBSUFvZ0J5QUtRUkIwUVJCMUlnb2dCMEVRZEVFUWRTSU5TaUlHR3lJSElBMGdDaUFOSUFvZ0RVZ2JJQVliSWdZZ0RFRVFkU0lLSUFZZ0Nrb2JJQWRCRUhSQkVIVWdDa2diSVFjZ0VTQUlJQkZCRUhSQkVIVWlDaUFJUVJCMFFSQjFJZzFLSWdZYklnaEIvLzhEY1NBTklBb2dEU0FLSUExSUd5QUdHeUlHSUF4QkVIUkJFSFVpQ2lBR0lBcEtHeUFJUVJCMFFSQjFJQXBJR3lFSURBRUxJQWdnRVNBTkd5RUlJQWNnQ2lBTkd5RUhJQTBOQUNBR0RRQWdERUVRZGlFSElBd2hDQXRCQVNFYklBZ2dDV29pREVFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0Myb2lDVUVRZEVFUWRVR0FFR3BCL3g5TERRSUxJQUlnRXhBVUlnSkZCRUJCQVNFYkRBSUxJQUFnQ1RzQndnRWdBQ0FNT3dIQUFTQUFJQUkyQW5RZ0FDQVROZ0prSUFBZ0FqWUNnQUVnQUNBQ05nSjhJQUFnQWpZQ2VDQUFJQk0yQW5BZ0FDQVROZ0pzSUFBZ0V6WUNhQ0FBSUFBb0FzQUJJZ1kyQXJ3QklBQWdCallDdUFFZ0FDQUdOZ0swQVNBQUlBWTJBckFCSUFBZ0JqWUNyQUVnQUNBR05nS29BU0FBSUFZMkFxUUJJQUFnQmpZQ29BRWdBQ0FHTmdLY0FTQUFJQVkyQXBnQklBQWdCallDbEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FRSUFJMkFnZ2dCU0FBUVlRQmFpQVFRUWhxSUJVZ0ZFRUFRUUJCRUVFUUVBNExRUUFoR3lBQUtBTEVBVUVCU3cwQUlBQW9BZ0FFUUNBRUlBTWdCU0FCUWNnQ2FoQllEQUVMSUFRZ0JSQWJDeUFRUVNCcUpBQWdHd3VUQ3dFUGZ5QUFLQUlBSWhFZ0FTQUJJQUFvQWdRaUNuQWlBV3NpQkVFSWRHb2dBVUVFZEdvaEJTQUtRUVIwSVFzZ0FDZ0NDQ0FLYkNJQVFRWjBJUVlnQVVFRGRDRUpJQUJCQ0hRaERDQUVRUVowSVJJZ0NrRUNkRUg4Ly8vL0EzRkJBblFoRUFOQUlBVWdEa0VDZENJQVFmQXBhaWdDQUNJQklBdHNhaUFBUWJBcGFpZ0NBQ0lBYWlFRUlBSWdBVUVFZEdvZ0FHb2hBQUpBSUFNZ0RrRUdkR29pQVNnQ0FDSUhRZi8vL3dkSEJFQWdBU2dDQkNFSUlBQXRBQUVoRFNBRUlBY2dBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BZ2doQnlBQUxRQUNJUThnQkNBSUlBMXFRYkF1YWkwQUFEb0FBU0FCS0FJTUlRZ2dBQzBBQXlFTklBUWdCeUFQYWtHd0xtb3RBQUE2QUFJZ0JDQUlJQTFxUWJBdWFpMEFBRG9BQXlBQktBSVVJUWNnQUMwQUVTRUlJQVFnQzJvaUJDQUJLQUlRSUFBdEFCQnFRYkF1YWkwQUFEb0FBQ0FCS0FJWUlRMGdBQzBBRWlFUElBUWdCeUFJYWtHd0xtb3RBQUE2QUFFZ0FTZ0NIQ0VISUFBdEFCTWhDQ0FFSUEwZ0QycEJzQzVxTFFBQU9nQUNJQVFnQnlBSWFrR3dMbW90QUFBNkFBTWdBU2dDSkNFSElBQXRBQ0VoQ0NBRUlBdHFJZ1FnQVNnQ0lDQUFMUUFnYWtHd0xtb3RBQUE2QUFBZ0FTZ0NLQ0VOSUFBdEFDSWhEeUFFSUFjZ0NHcEJzQzVxTFFBQU9nQUJJQUVvQWl3aEJ5QUFMUUFqSVFnZ0JDQU5JQTlxUWJBdWFpMEFBRG9BQWlBRUlBY2dDR3BCc0M1cUxRQUFPZ0FESUFFb0FqUWhCeUFBTFFBeElRZ2dCQ0FMYWlJRUlBRW9BakFnQUMwQU1HcEJzQzVxTFFBQU9nQUFJQUVvQWpnaERTQUFMUUF5SVE4Z0JDQUhJQWhxUWJBdWFpMEFBRG9BQVNBQktBSThJUUVnQUMwQU15RUFJQVFnRFNBUGFrR3dMbW90QUFBNkFBSWdCQ0FBSUFGcVFiQXVhaTBBQURvQUF3d0JDeUFBS0FJUUlRRWdCQ0FBS0FJQU5nSUFJQVFnRUdvaUJDQUJOZ0lBSUFBb0FqQWhBU0FFSUJCcUlnUWdBQ2dDSURZQ0FDQUVJQkJxSUFFMkFnQUxJQTVCQVdvaURrRVFSdzBBQ3lBTUlCRnFJQkpxSUFscUloQWdCbW9oRVNBS1FRTjBRZmovLy84SGNTSUxRUUoyUVFKMElRNUJFQ0VLQTBBZ0NrRUNkRUVNY1NJQVFmQXBhaWdDQUNJQklBdHNJQUJCc0NscUtBSUFJZ0JxSUJFZ0VDQUtRUk5MSWdVYmFpRUVJQUpCd0FKQmdBSWdCUnRxSUFGQkEzUWdBR3BxSVFBQ1FDQURJQXBCQm5ScUlnRW9BZ0FpQlVILy8vOEhSd1JBSUFFb0FnUWhCaUFBTFFBQklRa2dCQ0FGSUFBdEFBQnFRYkF1YWkwQUFEb0FBQ0FCS0FJSUlRVWdBQzBBQWlFTUlBUWdCaUFKYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VHSUFBdEFBTWhDU0FFSUFVZ0RHcEJzQzVxTFFBQU9nQUNJQVFnQmlBSmFrR3dMbW90QUFBNkFBTWdBU2dDRkNFRklBQXRBQWtoQmlBRUlBdHFJZ1FnQVNnQ0VDQUFMUUFJYWtHd0xtb3RBQUE2QUFBZ0FTZ0NHQ0VKSUFBdEFBb2hEQ0FFSUFVZ0JtcEJzQzVxTFFBQU9nQUJJQUVvQWh3aEJTQUFMUUFMSVFZZ0JDQUpJQXhxUWJBdWFpMEFBRG9BQWlBRUlBVWdCbXBCc0M1cUxRQUFPZ0FESUFFb0FpUWhCU0FBTFFBUklRWWdCQ0FMYWlJRUlBRW9BaUFnQUMwQUVHcEJzQzVxTFFBQU9nQUFJQUVvQWlnaENTQUFMUUFTSVF3Z0JDQUZJQVpxUWJBdWFpMEFBRG9BQVNBQktBSXNJUVVnQUMwQUV5RUdJQVFnQ1NBTWFrR3dMbW90QUFBNkFBSWdCQ0FGSUFacVFiQXVhaTBBQURvQUF5QUJLQUkwSVFVZ0FDMEFHU0VHSUFRZ0Myb2lCQ0FCS0FJd0lBQXRBQmhxUWJBdWFpMEFBRG9BQUNBQktBSTRJUWtnQUMwQUdpRU1JQVFnQlNBR2FrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQXRBQnNoQUNBRUlBa2dER3BCc0M1cUxRQUFPZ0FDSUFRZ0FDQUJha0d3TG1vdEFBQTZBQU1NQVFzZ0FDZ0NDQ0VCSUFRZ0FDZ0NBRFlDQUNBRUlBNXFJZ1FnQVRZQ0FDQUFLQUlZSVFFZ0JDQU9haUlFSUFBb0FoQTJBZ0FnQkNBT2FpQUJOZ0lBQ3lBS1FRRnFJZ3BCR0VjTkFBc0w1Z0VCQjM4Q1FDQUFLQUlBSWdWRkRRQWdBRUVCTmdJOElBQW9BamdOQUNBQUtBSWNJUVpCLy8vLy93Y2hBZ05BQTBBZ0JTQURRU2hzYWlJRUtBSVlCRUFnQkNBQklBUW9BaEFpQkNBQ1NDSUhHeUVCSUFRZ0FpQUhHeUVDQ3lBRFFRRnFJZ01nQmswTkFDQUJSUTBDSUFBb0Fnd2dBQ2dDRUNJRFFRUjBhaUlDSUFFb0FnQTJBZ0FnQWlBQktBSWtOZ0lNSUFJZ0FTZ0NIRFlDQkNBQ0lBRW9BaUEyQWdnZ0FDQURRUUZxTmdJUVFRQWhBeUFCUVFBMkFoZ2dBU2dDRkNFRVFRQWhBVUgvLy8vL0J5RUNJQVFOQUFzZ0FDQUFLQUlzUVg5cU5nSXNEQUFBQ3dBTEM5d0dBUXAvSUFCQ0FEY0NFQUpBQWtBQ1FDQURSUTBBQWtBQ1FDQUJJQUFvQWpBaUEwY0VRQ0FEUVFGcUlBQW9BaUFpQkhBaUNTQUJSZzBCSUFBb0FnQWdBQ2dDSEVFb2JHb29BZ0FoQ3dOQUFrQUNRQ0FBS0FJb0lnY0VRQ0FBS0FJQUlRaEJBQ0VEQTBBZ0NDQURRU2hzYWlJRktBSVVRWDlxUVFGTkJFQWdCU0FGS0FJTUlnVWdCRUVBSUFVZ0NVc2JhellDQ0FzZ0EwRUJhaUlESUFkSERRQUxJQWNnQUNnQ0dFa05Ba0YvSVFWQkFDRURRUUFoQkFOQUlBZ2dBMEVvYkdvaUJpZ0NGRUYvYWtFQlRRUkFJQVlvQWdnaUJpQUVJQVZCZjBZZ0JpQUVTSElpQmhzaEJDQURJQVVnQmhzaEJRc2dBMEVCYWlJRElBZEhEUUFMSUFWQkFFNE5BVUVCRHd0QkFDRUhJQUFvQWhnTkFVRUJEd3NnQ0NBRlFTaHNhaUlEUVFBMkFoUWdBQ0FIUVg5cUlnYzJBaWdnQXlnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FDZ0NMQ0lGSUFBb0Fod2lDRThFUUNBQUtBSTREUVlnQUNnQ0FDRU1BMEJCQUNFRVFmLy8vLzhISVFaQkFDRURBMEFnRENBRFFTaHNhaUlLS0FJWUJFQWdDaUFFSUFvb0FoQWlDaUFHU0NJTkd5RUVJQW9nQmlBTkd5RUdDeUFEUVFGcUlnTWdDRTBOQUFzQ1FDQUVSUTBBSUFBb0Fnd2dBQ2dDRUNJR1FRUjBhaUlESUFRb0FnQTJBZ0FnQXlBRUtBSWtOZ0lNSUFNZ0JDZ0NIRFlDQkNBRElBUW9BaUEyQWdnZ0FDQUdRUUZxTmdJUUlBUkJBRFlDR0NBRUtBSVVEUUFnQUNBRlFYOXFJZ1UyQWl3TElBVWdDRThOQUFzTElBQW9BZ0FpQkNBSVFTaHNhaUlESUFrMkFnd2dBMEtBZ0lDQUVEY0NFQ0FEUVFBMkFoZ2dBeUFKTmdJSUlBQWdCMEVCYWpZQ0tDQUFJQVZCQVdvMkFpd2dCQ0FJUVFGcUVDY2dDVUVCYWlBQUtBSWdJZ1J3SWdrZ0FVY05BQXNDUUNBQUtBSVFJZ2xGRFFBZ0FDZ0NBQ0lGSUFBb0Fod2lCRUVvYkdvaUNDZ0NBQ0VISUFBb0Fnd2hCa0VBSVFNRFFDQUhJQVlnQTBFRWRHb29BZ0JIQkVBZ0NTQURRUUZxSWdOSERRRU1BZ3NMSUFSRkRRQkJBQ0VEQTBBZ0N5QUZJQU5CS0d4cUlna29BZ0JIQkVBZ0JDQURRUUZxSWdOSERRRU1BZ3NMSUFrZ0J6WUNBQ0FJSUFzMkFnQUxJQUlOQlNBQUtBSXdJUU1NQWdzZ0FrRUFSdzhMSUFJTkF3c2dBU0FEUmcwQUlBQWdBU0FBS0FJZ0lnQnFRWDlxSUFCd05nSXdDMEVBRHdzRFFBd0FBQXNBQ3lBQUlBRTJBakJCQUF0MUFRTi9Ba0FnQUNnQ0FDSUJSUTBBSUFBb0FoeEJmMFlOQUFOQUlBRWdBa0VvYkNJRGFpZ0NCQkFFSUFBb0FnQWlBU0FEYWtFQU5nSUVJQUpCQVdvaUFpQUFLQUljUVFGcVNRMEFDd3NnQVJBRUlBQkJBRFlDQUNBQUtBSUVFQVFnQUVFQU5nSUVJQUFvQWd3UUJDQUFRUUEyQWd3TGd3RUJBMzhDUUNBQUtBSUFJZ1pGRFFBZ0FDZ0NIRUYvUmcwQUEwQWdCaUFIUVNoc0lnaHFLQUlFRUFRZ0FDZ0NBQ0lHSUFocVFRQTJBZ1FnQjBFQmFpSUhJQUFvQWh4QkFXcEpEUUFMQ3lBR0VBUWdBRUVBTmdJQUlBQW9BZ1FRQkNBQVFRQTJBZ1FnQUNnQ0RCQUVJQUJCQURZQ0RDQUFJQUVnQWlBRElBUWdCUkJkQzRBQ0FRSi9JQUFnQlRZQ09DQUFJQVEyQWlBZ0FFTC8vd00zQWlRZ0FFSUFOd0lzSUFBZ0EwRUJJQU5CQVVzYklnTTJBaGdnQUNBRElBSWdCUnNpQWpZQ0hDQUFRYWdGRUFvaUF6WUNBRUgvL3dNaEJBSkFJQU5GRFFCQkFDRUZJQU5CQUVHb0JSQUhJUVlnQWtGL1J3UkFJQUZCZ0FOc1FTOXlJUVZCQUNFREEwQWdCaUFEUVNoc2FpSUhJQVVRQ2lJQk5nSUVJQUZGRFFJZ0J5QUJRUUFnQVd0QkQzRnFOZ0lBSUFNZ0Fra2hBU0FEUVFGcUlRTWdBUTBBQ3lBQ1FRUjBRUkJxSVFVTElBQkJ4QUFRQ2lJQk5nSUVJQUFnQlJBS0lnSTJBZ3dnQWtVTkFDQUJSUTBBUVFBaEJDQUJRUUJCeEFBUUJ4b2dBRUlBTndJUUN5QUVDOU1CQVFkL1FRRWhBUUpBSUFBb0FqZ05BQ0FBS0FJY0lRVWdBQ2dDQUNFR1FmLy8vLzhISVFOQkFDRUJBMEFnQmlBQlFTaHNhaUlFS0FJWUJFQWdCQ0FDSUFRb0FoQWlCQ0FEU0NJSEd5RUNJQVFnQXlBSEd5RURDeUFCUVFGcUlnRWdCVTBOQUFzZ0FrVUVRRUVCRHdzZ0FDZ0NEQ0FBS0FJUUlnTkJCSFJxSWdFZ0FpZ0NBRFlDQUNBQklBSW9BaVEyQWd3Z0FTQUNLQUljTmdJRUlBRWdBaWdDSURZQ0NDQUFJQU5CQVdvMkFoQkJBQ0VCSUFKQkFEWUNHQ0FDS0FJVURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQkMvVUVBUWgvSUFBb0FpZ2lCQVJBSUFBb0FnQWhCd05BSUFjZ0JVRW9iR29pQmlnQ0ZFRi9ha0VCVFFSQUlBWWdCaWdDRENJSUlBSkxCSDhnQ0NBQUtBSWdhd1VnQ0FzMkFnZ0xJQVZCQVdvaUJTQUVSdzBBQ3d0QkFDRUVBa0FnQVNnQ0FFVU5BQ0FCS0FJRUlnVkJBa3NOQUVFQUlRY2dBaUVHQTBBQ1FBSkFBa0FnQlVFQ1J3UkFJQUVnQjBFTWJHb29BZ2doQkFKQUlBVkZCRUFnQmlBRWF5SUdRWDlLRFFFZ0FDZ0NJQ0FHYWlFR0RBRUxJQVFnQm1vaUJrRUFJQUFvQWlBaUJTQUdJQVZJRzJzaEJnc2dCaUVKSUFZZ0Frc0VRQ0FHSUFBb0FpQnJJUWtMSUFBb0FoZ2lDa1VFUUVFQkR3c2dBQ2dDQUNFSVFRQWhCUU5BSUFnZ0JVRW9iR29pQkNnQ0ZDSUxRWDlxUVFGTkJFQWdCQ2dDQ0NBSlJnMERDMEVCSVFRZ0JVRUJhaUlGSUFwSERRQUxEQVVMUVFFaEJDQUFLQUlZSWdsRkRRUWdBU0FIUVF4c2FpZ0NEQ0VLSUFBb0FnQWhDRUVBSVFVRFFDQUlJQVZCS0d4cUlnUW9BaFJCQTBZRVFDQUVLQUlJSUFwR0RRTUxRUUVoQkNBRlFRRnFJZ1VnQ1VjTkFBc01CQXNnQlVFQVNBUkFRUUVQQzBFQklRUWdDMEVCU3cwQkRBTUxRUUVoQkNBRlFRQklEUUlMSUFjZ0F5SUVTUVJBQTBBZ0FDZ0NCQ0lKSUFSQkFuUnFJQWtnQkVGL2FpSUVRUUowYWlnQ0FEWUNBQ0FFSUFkTERRQUxJQUFvQWdBaENBc2dBQ2dDQkNBSFFRSjBhaUFJSUFWQktHd2lDV28yQWdBZ0IwRUJhaUlISVFRZ0J5SUZJQU5OQkVBRFFDQUFLQUlFSWdnZ0JVRUNkR29vQWdBaUNpQUFLQUlBSUFscVJ3UkFJQWdnQkVFQ2RHb2dDallDQUNBRVFRRnFJUVFMSUFWQkFXb2lCU0FEVFEwQUN3dEJBQ0VFSUFFZ0IwRU1iR29vQWdRaUJVRURTUTBBQ3dzZ0JBc0hBRUhFR2hBS0M3Y0JBUUovSXdCQkVHc2lCaVFBSUFaQkFEWUNEQ0FBSUFFZ0FpQUdRUXhxRUNvaUIwRjljVVVFUUFOQUlBQWdBU0FHS0FJTUlnZHFJZ0VnQWlBSGF5SUNJQVpCREdvUUtpSUhRWDF4UlEwQUN3c2dCMEVCUmdSQUlBUWdBQ2dDRUNJQktBSTBRUVIwTmdJQUlBVWdBU2dDT0VFRWREWUNBQ0FESUFCQnhBbHFJZ0FvQWhRaUFTQUFLQUlRU1FSL0lBQWdBVUVCYWpZQ0ZDQUFLQUlNSUFGQkJIUnFCVUVBQ3lnQ0FEWUNBQXNnQmtFUWFpUUFJQWNMU1FFQmZ5QUFRUUJCeEJvUUJ5SUNRYlFLYWtFQk5nSUFJQUpDZ0lLQWdJQUVOd0lFSUFCQndCQVFDaUlDTmdLd0dpQUNSUVJBUVFFUEN5QUJCRUFnQUVFQk5nTEFDUXRCQUF1NkJBRUpmd0pBQWtBZ0FVRUVTUTBBSUFBdEFBQU5BQ0FBTFFBQkRRQWdBQzBBQWlJSFFRRkxEUUJCQXlFRUlBQkJBMm9oQlVFQ0lRaEJmU0VNQWtBRFFDQUZJUVlDZnlBSVFRRnFJQWRCL3dGeElnVkZEUUFhUVFBaEJ5QUZRUUZHUVFBZ0NFRUJTeHNOQWtFQUN5RUlJQVJCZjNNaERDQUdRUUZxSVFVZ0JpMEFBQ0VISUFSQkFXb2lCQ0FCUncwQUN5QURJQUUyQWdCQkFROExJQVFoQ2tFQUlRaEJBQ0VGQTBCQkFTQUlJQWNnQmkwQUFDSUxSV29pQ1VFQ1Joc2dDQ0FMUVFOR0d5RUlJQXBCQVdvaENnSkFJQXRCQVVjTkFDQUpRUUpKRFFBZ0FpQUtJQXhxSUFsQmYzTnFJZ0UyQWd4QkFDQUpRWDFxSWdZZ0JpQUpTeHNoQnd3REMwRUFJQWtnQ3hzaEIwRUJJQVVnQ1VFQ1N4c2dCU0FMR3lFRklBWkJBV29oQmlBQklBcEhEUUFMSUFJZ0FTQU1haUFIYXlJQk5nSU1EQUVMSUFJZ0FUWUNERUVCSVFoQkFDRUhDeUFDUVFBMkFoQWdBa0VBTmdJSUlBSWdBQ0FFYWlJQU5nSUVJQUlnQURZQ0FDQURJQVFnQjJvZ0FXbzJBZ0JCQVNFREFrQWdCUTBBUVFBaEF5QUlSUTBBSUFJQ2Z5QUNLQUlNSWdGRkJFQWdBQ0VFUVFBTUFRc2dBQ0VFUVFBaEJnTkFJQUZCZjJvaEFTQUVMUUFBSVFVQ2Z3SkFJQVpCQWtjTkFDQUZRUU5HQkVBZ0FVVUVRRUVCRHdzZ0JDMEFBVUVEU3dSQVFRRVBDMEVBSVFZZ0JFRUJhZ3dDQ3lBRlFRTlBEUUJCQVE4TElBQWdCVG9BQUVFQUlBWkJBV29nQlJzaEJpQUFRUUZxSVFBZ0JFRUJhZ3NoQkNBQkRRQUxJQUlvQWd3TElBQWdCR3RxTmdJTUN5QURDd3Z0TWhrQVFZWUlDOG9GWmlBbUVBWUlaUmhsR0VNUVF4QkRFRU1RUXhCREVFTVFReEFpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNBQUFBQUFBQUFBQWFrQktNQ29vQ2lCcE9HazRTU2hKS0NrZ0tTQUpHQWtZYURCb01HZ3dhREJJSUVnZ1NDQklJQ2dZS0Jnb0dDZ1lDQkFJRUFnUUNCQm5LR2NvWnlobktHY29aeWhuS0djb1J4aEhHRWNZUnhoSEdFY1lSeGhIR0c1Z1RsZ3VVQTVRYmxoT1VDNUlEa2dOUUExQVRVaE5TQzFBTFVBTk9BMDRiVkJ0VUUxQVRVQXRPQzA0RFRBTk1HdElhMGhyU0d0SWEwaHJTR3RJYTBoTE9FczRTemhMT0VzNFN6aExPRXM0S3pBck1Dc3dLekFyTUNzd0t6QXJNQXNvQ3lnTEtBc29DeWdMS0Fzb0N5Z0FBQUFBTDJndmFCQ0FVSUF3Z0JCNGNJQlFlREI0RUhCd2VGQndNSEFRYUc5d2IzQlBhRTlvTDJBdllBOWdEMkJ2YUc5b1QyQlBZQzlZTDFnUFdBOVlBQUFBQUFBQUFBQm1PRVlnSmlBR0VHWXdSaGdtR0FZSVpTaGxLQ1VRSlJCa0lHUWdaQ0JrSUdRWVpCaGtHR1FZUXhCREVFTVFReEJERUVNUVF4QkRFQUFBQUFBQUFBQUFhVWhKT0NrNENUQUlLQWdvU0RCSU1DZ3dLREFJSUFnZ1owQm5RR2RBWjBCSEtFY29SeWhIS0Njb0p5Z25LQ2NvQnhnSEdBY1lCeGdBQUFBQWJYaHRlRzZBVG9BdWdBNkFMbmdPZUU1NExuQk5jRTF3RFhBTmNHMXdiWEJOYUUxb0xXZ3RhQTFvRFdodGFHMW9UV0JOWUMxZ0xXQU5ZQTFnREZnTVdBeFlERmhNV0V4WVRGaE1XQ3hZTEZnc1dDeFlERkFNVUF4UURGQnNZR3hnYkdCc1lFeFFURkJNVUV4UUxGQXNVQ3hRTEZBTVNBeElERWdNU0d0WWExaHJXR3RZYTFocldHdFlhMWhMU0V0SVMwaExTRXRJUzBoTFNFdElLMGdyU0N0SUswZ3JTQ3RJSzBnclNBdEFDMEFMUUF0QUMwQUxRQXRBQzBCclVHdFFhMUJyVUd0UWExQnJVR3RRUzBCTFFFdEFTMEJMUUV0QVMwQkxRQ3RBSzBBclFDdEFLMEFyUUN0QUswQUxPQXM0Q3pnTE9BczRDemdMT0FzNEFFSGdEUXV1Q1FZWVJqZ21PQVlRWmtoR01DWXdCZ2dsS0NVb1JTaEZLQ1VnSlNCRklFVWdKUmdsR0dWQVpVQkZHRVVZSlJBbEVHUTRaRGhrT0dRNFpEQmtNR1F3WkRCa0tHUW9aQ2hrS0dRZ1pDQmtJR1FnWkJoa0dHUVlaQmhFRUVRUVJCQkVFQ1FJSkFna0NDUUlCQUFFQUFRQUJBQUFBQXFBYW9CS2dDcUFDbmhxZUVwNEtuZ0tjR3B3U25BcWNBcG9LV2dwYUFsZ0NXQkphRWxvS1dBcFlBbFlDVmhwYUdsb1NXQkpZQ2xZS1ZnSlVBbFFhR0JvWUdoZ2FHQklXRWhZU0ZoSVdDaFFLRkFvVUNoUUNFZ0lTQWhJQ0Vob1dHaFlhRmhvV0VoUVNGQklVRWhRS0Vnb1NDaElLRWdJUUFoQUNFQUlRQWM0QnpnSE9BYzRCemdIT0FjNEJ6Z0hNQWN3QnpBSE1BY3dCekFITUFjd1IwaEhTRWRJUjBoSFNFZElSMGhIU0Fjb0J5Z0hLQWNvQnlnSEtBY29CeWhuVUdkUVoxQm5VR2RRWjFCblVHZFFSMEJIUUVkQVIwQkhRRWRBUjBCSFFDZEFKMEFuUUNkQUowQW5RQ2RBSjBBSElBY2dCeUFISUFjZ0J5QUhJQWNnQmdnbUNBQUFCZ0FHRUNZUVJoQUFBQVlZSmhoR0dHWVlCaUFtSUVZZ1ppQUdLQ1lvUmlobUtBWXdKakJHTUdZd0JqZ21PRVk0WmpnR1FDWkFSa0JtUUFaSUpraEdTR1pJQmxBbVVFWlFabEFHV0NaWVJsaG1XQVpnSm1CR1lHWmdCbWdtYUVab1ptZ0djQ1p3Um5CbWNBWjRKbmhHZUdaNEJvQW1nRWFBWm9BQUFFTVFBZ0FDQUNFSUlRZ2hDQ0VJWnlCbklFZ2dLQ0JIR0VjWUp4Z25HQVlnQmlBR0lBWWdCaGdHR0FZWUJoZ0dFQVlRQmhBR0VHWVlaaGhtR0dZWUpoQW1FQ1lRSmhBR0NBWUlCZ2dHQ0FBQVpWVkVSRFEwSXlNakl4TVRFeE1CQVFFQkFRRUJBUUVCQVFFQkFRRUJBUG5wMmNqSXVMaW5wNmVubDVlWGw0YUdob2FHaG9hR2RuWjJkbloyZG5ibTFzYTJwYVdWbFlTRWhJUjBkSFIwWkdSa1pGUlVWRlJEUTBORFEwTkRRek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEV3TURBd01EQXdNRDFyYkZ4YVdsbFpXRWhJU0VWRlJVVkVSRVJFUUVCQVFFYzNOemMzTnpjM05qWTJOalkyTmpZek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEU4VzFwUVdVbEhSME5EUWtKSU9EZzROalkyTmpVMU5UVTBORFEwTVRFeE1UdFpXa3BJU0VKQ1FVRkFRRWMzTnpjMk5qWTJOVFUxTlRRME5EUXpNek16T21CaFVWaElTRWhKT1RrNU9UazVPVGMzTnpjM056YzNOalkyTmpZMk5qWTFOVFUxTlRVMU5UUTBORFEwTkRRME16TXpNek16TXpNeU1qSXlNakl5TWpsZ1lWRlhSMGRIU0RnNE9EZzRPRGcyTmpZMk5qWTJOalEwTkRRME5EUTBNek16TXpNek16TXlNakl5TWpJeU1qVWxKU1VsSlNVbEpTVWxKU1VsSlNVb1lHSlNVVUZCUVVjM056YzNOemMzTmpZMk5qWTJOall6TXpNek16TXpNelVsSlNVbEpTVWxKU1VsSlNVbEpTVWtKQ1FrSkNRa0pDUWtKQ1FrSkNRa0lXQm5WMUpDUWtKRk5UVTFOVFUxTlRZbUppWW1KaVltSmlZbUppWW1KaVlrSkNRa0pDUWtKQ1FrSkNRa0pDUWtJeU1qSXlNakl5TWpJeU1qSXlNakl5RlFWa1pDTWpJeU5TVWxKU1VsSlNVa0pDUWtKQ1FrSkNNakl5TWpJeU1qSUVGQ01qTXpOVFUwRkJRVUZCUVVGQkJCUkRReUlpSWlJeE1URXhNVEV4TVFNVE1qSWhJU0VoQWhJaElSRUJJaElCQVRJaUVnSkRNeUlpRWhJQ0FsTkRNeU1TRWdJQ0V5TkRNMk5UQWdJQVFhQVhDeVFFQkFVR0J3Z0pDZ3dORHhFVUZoa2NJQ1FvTFRJNFAwZFFXbVZ4ZjVDaXRzdmkvLzhBUWVBWEN5UUNBZ0lEQXdNREJBUUVCZ1lIQndnSUNRa0tDZ3NMREF3TkRRNE9EdzhRRUJFUkVoSUFRY1VZQzRRQkFRQUFBUUFBQVFBQUFRQUJBUUFCQVFFQkFRRUJBUUVCQVFFQkFRRUJBZ0VCQWdFQkFnRUJBZ0VDQXdFQ0F3SUNBd0lDQkFJREJBSURCQU1EQlFNRUJnTUVCZ1FGQndRRkNBUUdDUVVIQ2dZSUN3WUlEUWNLRGdnTEVBa01FZ29ORkFzUEZ3MFJHUUFBQUFBQUFBQUFCUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVIVUdRc1ZCUUFBQUFBQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUVIMEdRc1ZCUUFBQUFRQUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVHVUdnc0ZCUUFBQUFRQVFhUWFDNlVCQndBQUFBUUFBQUFDQUFBQUJBQUFBQUVBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUFRQUFBQVFBQUFBREFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFCQUFBQUJBQUFBQVFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBRUFBQUFFQUFBQUJBQUFBQVFBQUFBREFBQUFCQUFBQUFZQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FFSFVHd3NWRFFBQUFBQUFBQUFQQUFBQS93QUFBQUFBQUFEL0FFSDBHd3NWRFFBQUFBUUFBQUFJQUFBQS93QUFBQUFBQUFEL0FFR1VIQXUxQ3cwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBSkFBQUFCQUFBQUFzQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQWtBQUFBRUFBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUNRQUFBQVFBQUFBTUFBQUFCQUFBQUFzQUFBQUVBQUFBRGdBQUFBRUFBQUFLQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBb0FBQUFFQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ2dBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUtBQUFBQVFBQUFBc0FBQUFFQUFBQUFBQUFBQVFBQUFBQkFBQUFBUUFBQUE0QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEZ0FBQUFRQUFBQUVBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQUVBQUFBT0FBQUFBUUFBQUE4QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFRQUFBQTRBQUFBQkFBQUFEd0FBQUFRQUFBQUVBQUFBQkFBQUFBVUFBQUFFQUFBQUFnQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFDQUFBQUJBQUFBQWdBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUVBQUFBQWdBQUFBUUFBQUFEQUFBQUJBQUFBQWdBQUFBRUFBQUFDUUFBQUFRQUFBQUdBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFZQUFBQUVBQUFBREFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFCZ0FBQUFRQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUFCQUFBQUFjQUFBQUVBQUFBREFBQUFBUUFBQUFOQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFCQUFBQURnQUFBUDhBQUFBRUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBRUFBQUFMQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFCQUFBQURnQUFBQVFBQUFBQkFBQUEvd0FBQUFRQUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFJQUFBQUtBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFBUUFBQUE4QUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEd0FBQUFJQUFBQUtBQUFBQkFBQUFBVUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQVlBQUFEL0FBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFBRUFBQUFDUUFBQVA4QUFBQU1BQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQWdBQUFQOEFBQUFJQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQUhBQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFjQUFBRC9BQUFBQWdBQUFBUUFBQUFOQUFBQS93QUFBQWdBQUFBREFBQUFEd0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQU1BQUFBUEFBQUFBQUFBQUFVQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUF3QUFBQThBQUFBQkFBQUFDZ0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFEQUFBQUR3QUFBQUVBQUFBS0FBQUFBQUFBQUFVQUFBQUVBQUFBQUFBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFFQUFBQUFRQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ3dBQUFBRUFBQUFPQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QkIxQ2NMRlFjQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QkI5Q2NMRlFjQUFBQUVBQUFBQWdBQUFQOEFBQUFBQUFBQS93QkJsQ2dMMlFFSEFBQUFCQUFBQUFJQUFBQUFBQUFBRFFBQUFBUUFBQUFJQUFBQUJBQUFBQU1BQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBSkFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBTUFBQUFFQUFBQUJnQUFBQVFBQUFBSkFBQUFCQUFBQUF3QUFBQUFBQUFBQkFBQUFBQUFBQUFFQUFBQUNBQUFBQXdBQUFBSUFBQUFEQUFBQUFBQUFBQUVBQUFBQUFBQUFBUUFBQUFJQUFBQURBQUFBQWdBQUFBTUFFSDRLUXNGQkFBQUFBUUFRWWdxQ3lVRUFBQUFCQUFBQUFnQUFBQUlBQUFBREFBQUFBd0FBQUFJQUFBQUNBQUFBQXdBQUFBTUFFR3hMZ3ZJQmdFQ0F3UUZCZ2NJQ1FvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEhoOGdJU0lqSkNVbUp5Z3BLaXNzTFM0dk1ERXlNelExTmpjNE9UbzdQRDArUDBCQlFrTkVSVVpIU0VsS1MweE5UazlRVVZKVFZGVldWMWhaV2x0Y1hWNWZZR0ZpWTJSbFptZG9hV3ByYkcxdWIzQnhjbk4wZFhaM2VIbDZlM3g5Zm4rQWdZS0RoSVdHaDRpSmlvdU1qWTZQa0pHU2s1U1ZscGVZbVpxYm5KMmVuNkNob3FPa3BhYW5xS21xcTZ5dHJxK3dzYkt6dExXMnQ3aTV1cnU4dmI2L3dNSEN3OFRGeHNmSXljckx6TTNPejlEUjB0UFUxZGJYMk5uYTI5emQzdC9nNGVMajVPWG01K2pwNnV2czdlN3Y4UEh5OC9UMTl2ZjQrZnI3L1AzKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUVBQUFBRUFBQUFCUUFBQUFJQUFBQURBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQXdBQUFBTkFBQUFDZ0FBQUFzQUFBQU9BQUFBRHdBQUFBQUFBQUFCQUFBQUFRQkJoRFVMSVFFQUFBQUJBQUFBQVFBQUFBRUFBQUFDQUFBQUFnQUFBQUVBQUFBQ0FBQUFBZ0JCdERVTEJRVUFBQUFFQUVIRU5RdkpCZ2NBQUFBRUFBQUFBZ0FBQUFRQUFBQUJBQUFBQkFBQUFBUUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUFBQUFBQUEwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQUFRQUFBQU1BQUFBQkFBQUFBc0FBQUFFQUFBQURnQUFBQUFBQUFBUkFBQUFCQUFBQUJBQUFBQUFBQUFBRXdBQUFBUUFBQUFTQUFBQUFBQUFBQlVBQUFBRUFBQUFGQUFBQUFBQUFBQVhBQUFBQkFBQUFCWUFBQUFCQUFBQUNnQUFBQUVBQUFBTEFBQUFCQUFBQUFBQUFBQUVBQUFBQVFBQUFBRUFBQUFPQUFBQUFRQUFBQThBQUFBRUFBQUFCQUFBQUFRQUFBQUZBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBQVFBQUFBSUFBQUFCQUFBQUFrQUFBQUVBQUFBQmdBQUFBUUFBQUFIQUFBQUJBQUFBQXdBQUFBRUFBQUFEUUFBQUFFQUFBQVNBQUFBQVFBQUFCTUFBQUFFQUFBQUVBQUFBQVFBQUFBUkFBQUFBUUFBQUJZQUFBQUJBQUFBRndBQUFBUUFBQUFVQUFBQUJBQUFBQlVBQUFBQkFBQUFDd0FBQUFFQUFBQU9BQUFBQkFBQUFBRUFBQUQvQUFBQUJBQUFBQUVBQUFBUEFBQUFBZ0FBQUFvQUFBQUVBQUFBQlFBQUFQOEFBQUFBQUFBQUJBQUFBQU1BQUFBRUFBQUFCZ0FBQUFRQUFBQUpBQUFBL3dBQUFBd0FBQUFFQUFBQUJ3QUFBUDhBQUFBQ0FBQUFCQUFBQUEwQUFBRC9BQUFBQ0FBQUFBRUFBQUFUQUFBQUFnQUFBQklBQUFBRUFBQUFFUUFBQVA4QUFBQVFBQUFBQVFBQUFCY0FBQUFDQUFBQUZnQUFBQVFBQUFBVkFBQUEvd0FBQUJRQUFBQURBQUFBRHdBQUFBRUFBQUFLQUFBQUFBQUFBQVVBQUFBRUFBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBQUVBQUFBQWdBQUFBQUFBQUFOQUFBQUJBQUFBQWdBQUFBRUFBQUFBd0FBQUFRQUFBQUdBQUFBQkFBQUFBa0FBQUFFQUFBQURBQUFBQU1BQUFBVEFBQUFBUUFBQUJJQUFBQUFBQUFBRVFBQUFBUUFBQUFRQUFBQUF3QUFBQmNBQUFBQkFBQUFGZ0FBQUFBQUFBQVZBQUFBQkFBQUFCUUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQURBQUFBQXdBQUFBQUFBQUFCQUFBQUFnQUFBQU1BQUFBRUFBQUFCUUFBQUFZQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QVFaWThDeTRCQVFFQkFRRUNBZ0lDQWdJREF3TURBd01FQkFRRUJBUUZCUVVGQlFVR0JnWUdCZ1lIQndjSEJ3Y0lDQWdJQUVIUVBBdEZDZ0FBQUEwQUFBQVFBQUFBQ3dBQUFBNEFBQUFTQUFBQURRQUFBQkFBQUFBVUFBQUFEZ0FBQUJJQUFBQVhBQUFBRUFBQUFCUUFBQUFaQUFBQUVnQUFBQmNBQUFBZEFFR2hQUXN6QVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURBRUhrUFF2TUFnRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhRQUFBQjRBQUFBZkFBQUFJQUFBQUNBQUFBQWhBQUFBSWdBQUFDSUFBQUFqQUFBQUl3QUFBQ1FBQUFBa0FBQUFKUUFBQUNVQUFBQWxBQUFBSmdBQUFDWUFBQUFtQUFBQUp3QUFBQ2NBQUFBbkFBQUFKd0FBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFMeDhQQUJjYkhSNEhDdzBPSnlzdExoQURCUW9NRXhVYUhDTWxLaXdCQWdRSUVSSVVHQVlKRmhrZ0lTSWtLQ1lwQUJBQkFnUUlJQU1GQ2d3UEx3Y0xEUTRHQ1I4akpTb3NJU0lrS0NjckxTNFJFaFFZRXhVYUhCY2JIUjRXR1NZcEFMQXRCRzVoYldVQjZ3TmtBQVp0WlcxamNIa0JCbkpsYzJsNlpRSUNaaklEQW1ZekJBRm1CUUptTlFZQ1pqWUhBbVkzQ0FKbU9Ba0NaamtLQVdVTEEyWXhNUXdEWmpFeURRTm1NVE1PQTJZeE5BOERaakUxRUFObU1UWVJBMll4TnhJRFpqRTRFd05tTVRrVUEyWXlNQlVEWmpJeEZnTm1NaklYQTJZeU14Z0RaakkwR1FObU1qVWFBMll5TmhzRFpqSTNIQU5tTWpnZEEyWXlPUjREWmpNd0h3Tm1NekVnQTJZek1pRURaak16SWdObU16UWpBMll6TlNRRFpqTTJKUU5tTXpjbUEyWXpPQ2NEWmpNNUtBTm1OREFwQTJZME1Tb0RaalF5S3dObU5ETXNBMlkwTkMwRFpqUTFMZ05tTkRZdkEyWTBOekFEWmpRNE1RTm1ORGt5QTJZMU1ETURaalV4TkFObU5USTFBMlkxTXpZRFpqVTBOd05tTlRVNEEyWTFOamtEWmpVM09nTm1OVGc3QTJZMU9Ud0Raall3UFFObU5qRStBMlkyTWo4RFpqWXpRQU5tTmpSQkEyWTJOVUlEWmpZMlF3Tm1OamRFQTJZMk9FVURaalk1UmdObU56QkhBMlkzTVVnRFpqY3lTUU5tTnpOS0EyWTNORXNEWmpjMVRBTm1OelpOQTJZM04wNERaamM0VHdObU56bFFBMlk0TUZFRFpqZ3hVZ05tT0RKVEEyWTRNMVFEWmpnMFZRTm1PRFZXQTJZNE5sY0RaamczV0FObU9EaFpBMlk0T1ZvRFpqa3dXd05tT1RGY0EyWTVNbDBEWmprelhnTm1PVFJmQTJZNU5XQUJhV0VCWjJJQlpHTUVaakV3TVFLNktXUUFBd0FBQVFBQ0FBRUJBQUFDQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1EQ1FBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FRSUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNGQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1HR0FBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFV0Eyd3lNaGNEYkRJekJ3WUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVSUJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlFrUUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlFvTUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVMQXdBQ2NEQUJBbkF4QWdKc01nd1JBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRFFZQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05BVUNiRFVPRUFBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVQQlFBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEVBc0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQVJBZ0FDY0RBQkFuQXhFZzhBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkJNREFBSndNQUVDYkRFQ0Ftd3lGQU1BQW5Bd0FRSndNUUlDYkRJVkJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlJZbUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2NEUUZBbkExQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlJBRGJERTJFUU5zTVRjU0Eyd3hPQk1EYkRFNUZBTnNNakFWQTJ3eU1SWURiREl5RndOc01qTVlBMnd5TkJrRGJESTFHZ05zTWpZYkEyd3lOeHdEYkRJNEhRTnNNamtlQTJ3ek1COERiRE14SUFOc016SWhBMnd6TXlJRGJETTBJd05zTXpVa0Eyd3pOaVVEYkRNM0Z3TUFBbkF3QVFKd01RSUNjRElZRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFWkVnQUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0doWUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhHd1lBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVWNCd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlkQlFBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEhnVUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQjhCQUFKd01DQUVBQUp3TUFFQ2NERUNBbXd5QXdKc015RWJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVGQU5zTWpBVkEyd3lNUllEYkRJeUZ3TnNNak1ZQTJ3eU5Ca0RiREkxR2dOc01qWWlGUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0l4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE55UVVBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVKUThBQW5Bd0FRSndNUUlDY0RJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNZREFBSndNQUVDYkRFQ0Ftd3lKdzhBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNnQ0FBSndNQUVDYkRFcEVRQUNjREFCQW5BeEFnSndNZ01DY0RNRUFuQTBCUUp3TlFZQ2NEWUhBbkEzQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaW9IQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmlzUEFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUXNCQUFDY0RBQkFuQXhBZ0pzTWdNQ2JETXRCUUFDY0RBQkFuQXhBZ0p3TWdNQ2JETUVBbXcwTGdNQUFuQXdBUUpzTVFJQ2JESXZBd0FDY0RBQkFtd3hBZ0pzTWpBSkFBSndNQUVDY0RFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NE1SWUFBbkF3QVFKd01RSUNiRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhNZ29BQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NU13UUFBbkF3QVFKc01RSUNiRElEQW13ek5BUUFBbkF3QVFKc01RSUNiRElEQW13ek5ROEFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hORFlGQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRM0JRQUNjREFCQW5BeEFnSnNNZ01DYkRNRUFtdzBPQWNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyT1FjQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNiRFVHQW13Mk9nY0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJPd2NBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyUEFVQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05EMEZBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFErRHdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMFB4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE4wQUhBQUp3TUFFQ2NERUNBbXd5QXdKc013UUNiRFFGQW13MUJnSnNOa0VRQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVUlKQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0UXdnQUFuQXdBUUp3TVFJQ2JESURBbXd6QkFKc05BVUNiRFVHQW13MkJ3SnNOMFFRQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVVVUQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0p3TmdjQ2NEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9FWVJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFtdzRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyUnhNQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW5BMkJ3SndOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRTQmNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NjRGdKQW5BNUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkE4RGJERTFFQU5zTVRZUkEyd3hOeElEYkRFNEV3TnNNVGtVQTJ3eU1CVURiREl4RmdOc01qSkpRd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0ZRTnNNakVXQTJ3eU1oY0RiREl6R0FOc01qUVpBMnd5TlJvRGJESTJHd05zTWpjY0Eyd3lPQjBEYkRJNUhnTnNNekFmQTJ3ek1TQURiRE15SVFOc016TWlBMnd6TkNNRGJETTFKQU5zTXpZbEEyd3pOeVlEYkRNNEp3TnNNemtvQTJ3ME1Da0RiRFF4S2dOc05ESXJBMncwTXl3RGJEUTBMUU5zTkRVdUEydzBOaThEYkRRM01BTnNORGd4QTJ3ME9USURiRFV3TXdOc05URTBBMncxTWpVRGJEVXpOZ05zTlRRM0EydzFOVGdEYkRVMk9RTnNOVGM2QTJ3MU9Ec0RiRFU1UEFOc05qQTlBMncyTVQ0RGJEWXlQd05zTmpOQUEydzJORUVEYkRZMVFnTnNOalpLRXdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UaExGQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPVXdIQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmswTkFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1rNExBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFFGQW13MUJnSnNOZ2NDYkRjSUFtdzRDUUpzT1FvRGJERXdUd1FBQW5Bd0FRSndNUUlDYkRJREFtd3pVQTRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTlJEQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeFVoTUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0VXlBQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW13MkJ3SnNOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRFd05zTVRrVUEyd3lNQlVEYkRJeEZnTnNNaklYQTJ3eU14Z0RiREkwR1FOc01qVWFBMnd5TmhzRGJESTNIQU5zTWpnZEEyd3lPUjREYkRNd0h3TnNNekZVRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpGVkN3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1GWUhBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSnNObGNxQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9CTURiREU1RkFOc01qQVZBMnd5TVJZRGJESXlGd05zTWpNWUEyd3lOQmtEYkRJMUdnTnNNalliQTJ3eU54d0RiREk0SFFOc01qa2VBMnd6TUI4RGJETXhJQU5zTXpJaEEyd3pNeUlEYkRNMEl3TnNNelVrQTJ3ek5pVURiRE0zSmdOc016Z25BMnd6T1NnRGJEUXdLUU5zTkRGWUV3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0VnTnNNVGhaQ0FBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNXZzRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTmJCQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETmNDUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNiRFlIQW13M0NBSnNPRjBJQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEZGVDQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M1h3d0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVdBQVlRZ0FBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FtdzJCd0pzTjJJREFBSndNQUVDY0RFQ0Ftd3lZdzBBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5IixVPWE7Ri5oMjY0TW9kdWxlPW5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoVS5kZWNvZGUoTCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBZPUYscT1BPT4oSSxnLEIpPT57QS5IRUFQVTguY29weVdpdGhpbihJLGcsZytCKX07ZnVuY3Rpb24gSyhBLEkpe2NvbnN0IGc9QSVJO3JldHVybiBnPjA/QStJLWc6QX1jb25zdCBIPUE9Pkk9Pntjb25zdCBnPUEuSEVBUFU4Lmxlbmd0aCxCPTY1NTM2LFE9MjE0NzQ4MzY0ODtpZihJPlEpcmV0dXJuITE7Y29uc3QgQz0xNjc3NzIxNjtmb3IobGV0IEQ9MTtEPD00O0QqPTIpe2xldCBFPWcqKDErLjIvRCk7RT1NYXRoLm1pbihFLEkrMTAwNjYzMjk2KTtjb25zdCB3PU1hdGgubWluKFEsSyhNYXRoLm1heChDLEksRSksQikpO3RyeXtjb25zdHttZW1vcnk6b309QTtvLmdyb3cody1vLmJ1ZmZlci5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpO2NvbnN0e2J1ZmZlcjpOfT1vO3JldHVybiBBLkhFQVA4PW5ldyBJbnQ4QXJyYXkoTiksQS5IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoTiksQS5IRUFQMzI9bmV3IEludDMyQXJyYXkoTiksITB9Y2F0Y2h7fX1yZXR1cm4hMX0sUj02NTUzNixjPTUyNTE3OTIsZD04NzUyLHQ9MTY3NzcyMTY7Y2xhc3MgaXtjb25zdHJ1Y3Rvcigpe3RoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLHRoaXMucGljPW5ldyBVaW50OEFycmF5KDApO2NvbnN0IEk9bmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7aW5pdGlhbDp0L1IsbWF4aW11bToyMTQ3NDgzNjQ4L1J9KSxnPXttZW1vcnk6SSxIRUFQODpuZXcgSW50OEFycmF5KEkuYnVmZmVyKSxIRUFQVTg6bmV3IFVpbnQ4QXJyYXkoSS5idWZmZXIpLEhFQVAzMjpuZXcgSW50MzJBcnJheShJLmJ1ZmZlcil9O2cuSEVBUDMyW2Q+PjJdPWM7Y29uc3R7ZXhwb3J0czpCfT1uZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UoWS5oMjY0TW9kdWxlLHtoMjY0OnttZW1vcnk6SSxtZW1jcHk6cShnKSxyZXNpemU6SChnKX19KTt0aGlzLm1lbW9yeT1nLHRoaXMuYXNtPUIsdGhpcy5wU3RvcmFnZT1CLmgyNjRhbGxvYygpLHRoaXMucFdpZHRoPUIubWFsbG9jKDQpLHRoaXMucEhlaWdodD1CLm1hbGxvYyg0KSx0aGlzLnBQaWN0dXJlPUIubWFsbG9jKDQpLHRoaXMuZGVjQnVmZmVyPUIubWFsbG9jKDEwMjQqMTAyNCksQi5pbml0KHRoaXMucFN0b3JhZ2UsMCl9ZGVjb2RlKEkpe2NvbnN0e21lbW9yeTpnLGFzbTpCfT10aGlzO2cuSEVBUFU4LnNldChJLHRoaXMuZGVjQnVmZmVyKTtjb25zdCBRPUIuZGVjb2RlKHRoaXMucFN0b3JhZ2UsdGhpcy5kZWNCdWZmZXIsSS5ieXRlTGVuZ3RoLHRoaXMucFBpY3R1cmUsdGhpcy5wV2lkdGgsdGhpcy5wSGVpZ2h0KTtpZihRPT09aS5QSUNfUkRZKXtjb25zdCBDPXRoaXMud2lkdGg9Zy5IRUFQMzJbdGhpcy5wV2lkdGg+Pj4yXSxEPXRoaXMuaGVpZ2h0PWcuSEVBUDMyW3RoaXMucEhlaWdodD4+PjJdLEU9Zy5IRUFQMzJbdGhpcy5wUGljdHVyZT4+Ml0sdz1DKkQqMy8yO3RoaXMucGljPWcuSEVBUFU4LnN1YmFycmF5KEUsRSt3KX1yZXR1cm4gUX19dmFyIGI9eS5IMjY0RGVjb2Rlcj1pO2kuUkRZPTAsaS5QSUNfUkRZPTEsaS5IRFJTX1JEWT0yLGkuRVJST1I9MyxpLlBBUkFNX1NFVF9FUlJPUj00LGkuTUVNQUxMT0NfRVJST1I9NTtmdW5jdGlvbiB4KEEpe3JldHVybiBVaW50OEFycmF5LmZyb20oYXRvYihBKSxJPT5JLmNoYXJDb2RlQXQoMCkpfWNvbnN0IHM9c2VsZixrPW5ldyBiLG09Si5zZWNvbmQvNTthZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixBPT57Y29uc3R7dGltZXN0YW1wOkksZmxhZ3M6ZyxpbmRleDpCfT1BLmRhdGEsUT1EYXRlLm5vdygpLUk7aWYoUT5tJiZnIT09Myl7TShgRnJhbWUgaXMgJHtRfW1zIGxhdGUsIGRyb3BwaW5nYCxCKTtyZXR1cm59Y29uc3QgQz14KEEuZGF0YS5lbmNvZGVkRnJhbWUpLEQ9ay5kZWNvZGUoQyk7dHJ5e2lmKEQhPT0xKXtNKGBmYWlsZWQgdG8gZGVjb2RlIGZyYW1lLCBzdGF0dXM6ICR7bihEKX1gLEIsQyk7cmV0dXJufWNvbnN0e3BpYzpFLGhlaWdodDp3LHdpZHRoOm99PWs7aWYoRS5sZW5ndGg9PT0wfHx3PT09MHx8bz09PTApe00oImRlY29kZWQgZnJhbWUgaGFzIG5vIGRhdGEiLEIsQyk7cmV0dXJufWNvbnN0IE49bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KEUpO3MucG9zdE1lc3NhZ2Uoe3RpbWVzdGFtcDpBLmRhdGEudGltZXN0YW1wLHl1djpOLGhlaWdodDp3LHdpZHRoOm8saW5kZXg6Qn0pfWNhdGNoKEUpe00oRSxCKX19KTtmdW5jdGlvbiBNKEEsSSxnKXtzLnBvc3RNZXNzYWdlKHtlcnJvcjpgaDI2NCBkZWNvZGVyIHdvcmtlcjogJHtBfWAsaW5kZXg6SX0pfWZ1bmN0aW9uIG4oQSl7c3dpdGNoKEEpe2Nhc2UgMDpyZXR1cm4iUkRZIjtjYXNlIDE6cmV0dXJuIlBJQ19SRFkiO2Nhc2UgMjpyZXR1cm4iSERSU19SRFkiO2Nhc2UgMzpyZXR1cm4iRVJST1IiO2Nhc2UgNDpyZXR1cm4iUEFSQU1fU0VUX0VSUk9SIjtjYXNlIDU6cmV0dXJuIk1FTUFMTE9DX0VSUk9SIjtkZWZhdWx0OnJldHVybiBBLnRvU3RyaW5nKCl9fX0pfSkoKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9dWktc2RrLXJlYWx0aW1lLXBsYXllci1jb3JlLXdvcmtlci51bWQtNjhhNmUxNmEuanMubWFwCg==",blob$2=typeof window<"u"&&window.Blob&&new Blob([atob(encodedJs$2)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$2(){let s;try{if(s=blob$2&&(window.URL||window.webkitURL).createObjectURL(blob$2),!s)throw"";return new Worker(s)}catch{return new Worker("data:application/javascript;base64,"+encodedJs$2)}finally{s&&(window.URL||window.webkitURL).revokeObjectURL(s)}}const millisecond$3=1,second$3=1e3,minute$3=60*second$3,hour$3=60*minute$3,day$3=24*hour$3,week$3=7*day$3,month$3=30*day$3,year$3=365*day$3,duration$3={millisecond:millisecond$3,second:second$3,minute:minute$3,hour:hour$3,day:day$3,week:week$3,month:month$3,year:year$3};function filterDataByTime(s,o,et){const tt=o.getTime(),nt=et.getTime();return s.map(rt=>({...rt,points:rt.points.filter(([it])=>it>=tt&&itrt.length>0)}function filterDataByType(s,o){return s.filter(et=>et.type===o)}class StoreCache{constructor({capacity:o,timeout:et}={}){he(this,"entries",new Map),he(this,"metadata",new Map),he(this,"capacity"),he(this,"timeout"),this.capacity=o||1e4,this.timeout=et||duration$3.minute}get(o,et){const tt=this.keyToCacheKey(o),nt=this.entries.get(tt),rt=this.metadata.get(tt);return(nt===void 0||rt&&rt?.expiration.getTime()this.capacity&&this.deleteOldestEntry()}clear(){this.entries.clear(),[...this.metadata.values()].forEach(o=>o.generating=!1)}clearKey(o){this.metadata.delete(o),this.entries.delete(o)}keyToCacheKey(o){return JSON.stringify(o)}deleteOldestEntry(){if(this.metadata.size<1)return;const[o]=[...this.metadata.entries()].reduce(([et,tt],[nt,rt])=>rt.expiration.getTime(){et.then(rt=>{const it=this.metadata.get(tt);!(it!=null&&it.generating)||this.set(o,rt)})},0)}}function roundToNearestSecond(s){return new Date(Math.round(s.getTime()/1e3)*1e3)}class QueryStore{constructor(){he(this,"queryStoreCache",new StoreCache({capacity:1e4,timeout:20*duration$3.second})),he(this,"liveQueryStoreCache",new StoreCache({capacity:1e4,timeout:1*duration$3.second}))}moduleQuery(o,et,tt,nt,rt,it=!1){const ot={...o,names:[et],types:[tt],start:nt.toISOString(),end:rt.toISOString(),latestOnly:it},st=this.query(ot);return st===void 0||st==="too much data"?st:filterDataByType(st,tt)}query(o){const et=new Date(o.end)>addSeconds(new Date,-20),tt=startOfMinute(new Date(o.start)).toISOString(),nt=o.latestOnly?addSeconds(roundToNearestSecond(new Date(o.end)),5).toISOString():addMinutes(roundToNearestMinutes(new Date(o.end)),1).toISOString();let rt;return et?rt=this.liveQueryCache({...o,start:tt,end:nt}):rt=this.queryCache({...o,start:tt,end:nt}),!rt||rt==="too much data"||o.latestOnly?rt:filterDataByTime(rt,new Date(tt),new Date(nt))}queryCache(o){return this.queryStoreCache.get(o,async()=>{try{return await Fleet.queryTelemetry(o)}catch(et){throw et}})}liveQueryCache(o){return this.liveQueryStoreCache.get(o,async()=>{try{return await Fleet.queryTelemetry(o)}catch(et){throw et}})}}const encodedJs$1="dmFyIFI9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBHPShNLGIseCk9PmIgaW4gTT9SKE0sYix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6eH0pOk1bYl09eDt2YXIgST0oTSxiLHgpPT4oRyhNLHR5cGVvZiBiIT0ic3ltYm9sIj9iKyIiOmIseCkseCk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IFM9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07ZnVuY3Rpb24gcShvKXt9Y2xhc3MgX3tjb25zdHJ1Y3Rvcih7Y2FwYWNpdHk6dCx0aW1lb3V0Om59PXt9KXtJKHRoaXMsImVudHJpZXMiLG5ldyBNYXApO0kodGhpcywibWV0YWRhdGEiLG5ldyBNYXApO0kodGhpcywiY2FwYWNpdHkiKTtJKHRoaXMsInRpbWVvdXQiKTt0aGlzLmNhcGFjaXR5PXR8fDFlNCx0aGlzLnRpbWVvdXQ9bnx8Uy5taW51dGV9Z2V0KHQsbil7Y29uc3QgZT10aGlzLmtleVRvQ2FjaGVLZXkodCksYz10aGlzLmVudHJpZXMuZ2V0KGUpLGk9dGhpcy5tZXRhZGF0YS5nZXQoZSk7cmV0dXJuKGM9PT12b2lkIDB8fGkmJihpPT1udWxsP3ZvaWQgMDppLmV4cGlyYXRpb24uZ2V0VGltZSgpKTxEYXRlLm5vdygpKSYmIShpIT1udWxsJiZpLmdlbmVyYXRpbmcpJiZuJiZ0aGlzLmdlbmVyYXRlKHQsbigpKSxjPT09dm9pZCAwJiZpJiZpLmxhc3RWYWx1ZSE9PXZvaWQgMD9pLmxhc3RWYWx1ZTpjfXNldCh0LG4pe2NvbnN0IGU9dGhpcy5rZXlUb0NhY2hlS2V5KHQpO3RoaXMubWV0YWRhdGEuc2V0KGUse2dlbmVyYXRpbmc6ITEsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCksbGFzdFZhbHVlOm59KSx0aGlzLmVudHJpZXMuc2V0KGUsbiksdGhpcy5tZXRhZGF0YS5zaXplPnRoaXMuY2FwYWNpdHkmJnRoaXMuZGVsZXRlT2xkZXN0RW50cnkoKX1jbGVhcigpe3RoaXMuZW50cmllcy5jbGVhcigpLFsuLi50aGlzLm1ldGFkYXRhLnZhbHVlcygpXS5mb3JFYWNoKHQ9PnQuZ2VuZXJhdGluZz0hMSl9Y2xlYXJLZXkodCl7dGhpcy5tZXRhZGF0YS5kZWxldGUodCksdGhpcy5lbnRyaWVzLmRlbGV0ZSh0KX1rZXlUb0NhY2hlS2V5KHQpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1kZWxldGVPbGRlc3RFbnRyeSgpe2lmKHRoaXMubWV0YWRhdGEuc2l6ZTwxKXJldHVybjtjb25zdFt0XT1bLi4udGhpcy5tZXRhZGF0YS5lbnRyaWVzKCldLnJlZHVjZSgoW24sZV0sW2MsaV0pPT5pLmV4cGlyYXRpb24uZ2V0VGltZSgpPGUuZXhwaXJhdGlvbi5nZXRUaW1lKCk/W2MsaV06W24sZV0pO3RoaXMuY2xlYXJLZXkodCl9Z2VuZXJhdGUodCxuKXtjb25zdCBlPXRoaXMua2V5VG9DYWNoZUtleSh0KSxjPXRoaXMubWV0YWRhdGEuZ2V0KGUpfHx7fTt0aGlzLm1ldGFkYXRhLnNldChlLHsuLi5jLGdlbmVyYXRpbmc6ITAsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCl9KSxzZXRUaW1lb3V0KCgpPT57bi50aGVuKGk9Pntjb25zdCByPXRoaXMubWV0YWRhdGEuZ2V0KGUpOyEociE9bnVsbCYmci5nZW5lcmF0aW5nKXx8dGhpcy5zZXQodCxpKX0pfSwwKX19LyoqCiAqIExaRiBjb21wcmVzc2lvbi9kZWNvbXByZXNzaW9uIG1vZHVsZS4gUG9ydGVkIGZyb20gdGhlIEMKICogaW1wbGVtZW50YXRpb24gb2YgbGlibHpmLCBzcGVjZmljYWxseSBsemZfYy5jIGFuZCBsemZfZC5jCiAqIEBsaWNlbnNlIEJTRC0yLUNsYXVzZQogKi9mdW5jdGlvbiBLKG8pe3ZhciB0PW5ldyBVaW50OEFycmF5KG8pLG49W10sZT0wLGM9MDtkb3t2YXIgaT10W2UrK107aWYoaTwxPDw1KXtpZihpKyssZStpPnQubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBpbnB1dCIpO2Zvcig7aS0tOyluW2MrK109dFtlKytdfWVsc2V7dmFyIHI9aT4+NSxmPWMtKChpJjMxKTw8OCktMTtpZihlPj10Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgaW5wdXQiKTtpZihyPT03JiYocis9dFtlKytdLGU+PXQubGVuZ3RoKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgaW5wdXQiKTtpZihmLT10W2UrK10sZjwwKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBpbnB1dCIpO3IrPTI7ZG8gbltjKytdPW5bZisrXTt3aGlsZSgtLXIpfX13aGlsZShlPHQubGVuZ3RoKTtpZih0eXBlb2YgQnVmZmVyIT0idW5kZWZpbmVkIilyZXR1cm4gbmV3IEJ1ZmZlcihuKTt2YXIgdT1uZXcgVWludDhBcnJheShuLmxlbmd0aCk7cmV0dXJuIHUuc2V0KG4pLHV9ZnVuY3Rpb24gTyhvKXt2YXIgdD0xNixuPTE8PHQsZT0xPDwxMyxjPSgxPDw4KSsoMTw8MyksaT0xPDw1O2Z1bmN0aW9uIHIodixUKXtyZXR1cm4gdltUXTw8OHx2W1QrMV19ZnVuY3Rpb24gZih2LFQsUCl7cmV0dXJuIHY8PDh8VFtQKzJdfWZ1bmN0aW9uIHUodil7cmV0dXJuIHYqNTA2ODMyODI5Pj4zMi10LTgmbi0xfWZvcih2YXIgcz1uZXcgVWludDhBcnJheShvKSxhPVtdLGQ9bmV3IFVpbnQzMkFycmF5KG4pLHk9cy5sZW5ndGgsaD0wLGc9cihzLGgpLHA9MSxsPTA7aDx5LTI7KXtnPWYoZyxvLGgpO3ZhciB6PXUoZyksbT1kW3pdO2Rbel09aDt2YXIgRTtpZihtPGgmJihFPWgtbS0xKTxlJiZtPjAmJnNbbSsyXT09c1toKzJdJiZzW20rMV09PXNbaCsxXSYmc1ttXT09c1toXSl7dmFyIHc9MixGPXktaC13O0Y9Rj5jP2M6RixhW3AtbC0xXT1sLTEmMjU1LGw9PTAmJihwLT0xKTtkbyB3Kys7d2hpbGUodzxGJiZzW20rd109PXNbaCt3XSk7aWYody09MixoKyssdzw3P2FbcCsrXT0oRT4+OCkrKHc8PDUpJjI1NTooYVtwKytdPShFPj44KSsoNzw8NSkmMjU1LGFbcCsrXT13LTcmMjU1KSxhW3ArK109RSYyNTUsbD0wLHArKyxoKz13KzEsaD49eS0yKWJyZWFrOy0taCwtLWgsZz1yKHMsaCksZz1mKGcscyxoKSxkW3UoZyldPWgrKyxnPWYoZyxzLGgpLGRbdShnKV09aCsrfWVsc2UgbCsrLGFbcCsrXT1zW2grK10sbD09aSYmKGFbcC1sLTFdPWwtMSYyNTUsbD0wLHArKyl9Zm9yKDtoPHk7KWwrKyxhW3ArK109c1toKytdLGw9PWkmJihhW3AtbC0xXT1sLTEmMjU1LGw9MCxwKyspO2lmKGwhPTAmJihhW3AtbC0xXT1sLTEmMjU1KSx0eXBlb2YgQnVmZmVyIT0idW5kZWZpbmVkIilyZXR1cm4gbmV3IEJ1ZmZlcihhKTt2YXIgVT1uZXcgVWludDhBcnJheShhLmxlbmd0aCk7cmV0dXJuIFUuc2V0KGEpLFV9dmFyIEI9e2RlY29tcHJlc3M6Syxjb21wcmVzczpPfTtjb25zdCBDPShvLHQpPT50PD1vP1tdOm5ldyBBcnJheSh0LW8pLmZpbGwoMCkubWFwKChuLGUpPT5lK28pLEE9ITA7ZnVuY3Rpb24gSChvKXtjb25zdCB0PWF0b2Iobyksbj10Lmxlbmd0aCxlPW5ldyBVaW50OEFycmF5KG4pO2ZvcihsZXQgYz0wO2M8bjtjKz0xKWVbY109dC5jaGFyQ29kZUF0KGMpO3JldHVybiBlLmJ1ZmZlcn1mdW5jdGlvbiBMKG8pe2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkobyk7bGV0IG49IiIsZT0wO2Zvcig7ZTx0Lmxlbmd0aCYmbi5zZWFyY2goL1tcclxuXURBVEFccyhcUyopXHMvaSk9PT0tMTtlKz0xKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUodFtlXSk7cmV0dXJue2JvZHk6by5zbGljZShlKSxoZWFkZXI6bi5yZXBsYWNlKC8jLiovZ2ksIiIpfX1mdW5jdGlvbiBWKG8pe2NvbnN0IG49bmV3IFVpbnQzMkFycmF5KG8sMCwyKVswXTtyZXR1cm4gbj09PTA/bmV3IEFycmF5QnVmZmVyKDApOkIuZGVjb21wcmVzcyhuZXcgVWludDhBcnJheShvLDgsbikpLmJ1ZmZlcn1mdW5jdGlvbiBrKG8pe2NvbnN0e2hlYWRlcjp0LGJvZHk6bn09TChvKSxlPS9WRVJTSU9OICguKikvaS5leGVjKHQpO2lmKGU9PT1udWxsKXRocm93IG5ldyBFcnJvcihgTWlzc2luZyB2ZXJzaW9uLiBIZWFkZXIgJHt0fWApO2NvbnN0IGM9ZVsxXSxpPS9GSUVMRFMgKC4qKS9pLmV4ZWModCk7aWYoIWkpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIGZpZWxkcyIpO2NvbnN0IHI9aVsxXS5zcGxpdCgiICIpLGY9L1NJWkUgKC4qKS9pLmV4ZWModCk7aWYoIWYpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHNpemUiKTtjb25zdCB1PWZbMV0uc3BsaXQoIiAiKS5tYXAodj0+cGFyc2VJbnQodiwxMCkpLHM9L1RZUEUgKC4qKS9pLmV4ZWModCk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHR5cGUiKTtjb25zdCBhPXNbMV0uc3BsaXQoIiAiKSxkPS9DT1VOVCAoLiopL2kuZXhlYyh0KTtsZXQgeTtkJiYoeT1kWzFdLnNwbGl0KCIgIikubWFwKHY9PnBhcnNlSW50KHYsMTApKSk7Y29uc3QgaD15fHxyLm1hcCh2PT4xKSxnPS9XSURUSCAoLiopL2kuZXhlYyh0KTtpZighZyl0aHJvdyBuZXcgRXJyb3IoIk1pc3Npbmcgd2lkdGgiKTtjb25zdCBwPXBhcnNlSW50KGdbMV0sMTApLGw9L0hFSUdIVCAoLiopL2kuZXhlYyh0KTtpZighbCl0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgaGVpZ2h0Iik7Y29uc3Qgej1wYXJzZUludChsWzFdLDEwKSxtPS9QT0lOVFMgKC4qKS9pLmV4ZWModCk7bGV0IEU7bSYmKEU9cGFyc2VJbnQobVsxXSwxMCkpO2NvbnN0IHc9RXx8cCp6LEY9L0RBVEEgKC4qKS9pLmV4ZWModCk7aWYoIUYpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIGRhdGEiKTtjb25zdCBVPUZbMV07cmV0dXJue2JvZHk6bixoZWFkZXI6e2NvdW50OmgsZGF0YTpVLGZpZWxkczpyLGhlaWdodDp6LHBvaW50czp3LHNpemU6dSx0eXBlOmEsdmVyc2lvbjpjLHdpZHRoOnB9fX1mdW5jdGlvbiBOKG8pe2NvbnN0IHQ9e307cmV0dXJuIG8uZmllbGRzLnJlZHVjZSgoe29mZnNldHM6bixzaXplOmV9LGMsaSk9PntsZXQgcj1lO3JldHVybiBjPT09IngiJiYobi54PXIpLGM9PT0ieSImJihuLnk9ciksYz09PSJ6IiYmKG4uej1yKSxjPT09InJnYiImJihuLnJnYj1yKSxjPT09InJnYmEiJiYobi5yZ2JhPXIpLGM9PT0iaW50ZW5zaXR5IiYmKG4uaW50ZW5zaXR5PXIpLG8uZGF0YT09PSJhc2NpaSI/cis9MTpvLmRhdGE9PT0iYmluYXJ5Ij9yKz1vLnNpemVbaV0qby5jb3VudFtpXTpvLmRhdGE9PT0iYmluYXJ5X2NvbXByZXNzZWQiJiYocis9by5zaXplW2ldKm8uY291bnRbaV0qby5wb2ludHMpLHtvZmZzZXRzOm4sc2l6ZTpyfX0se29mZnNldHM6dCxzaXplOjB9KX1mdW5jdGlvbiBEKG8pe2NvbnN0e2hlYWRlcjp0LGJvZHk6bn09ayhvKSx7b2Zmc2V0czplLHNpemU6Y309Tih0KTtsZXQgaTtlLnghPT12b2lkIDAmJmUueSE9PXZvaWQgMCYmZS56IT09dm9pZCAwJiYoaT1uZXcgRmxvYXQzMkFycmF5KHQucG9pbnRzKjMpKTtsZXQgcjsoZS5yZ2IhPT12b2lkIDB8fGUucmdiYSE9PXZvaWQgMCkmJihyPW5ldyBGbG9hdDMyQXJyYXkodC5wb2ludHMqNCkpO2xldCBmO2lmKGUuaW50ZW5zaXR5IT09dm9pZCAwJiYoZj1uZXcgRmxvYXQzMkFycmF5KHQucG9pbnRzKSksdC5kYXRhPT09ImFzY2lpIilTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLm5ldyBVaW50OEFycmF5KG4pKS5zcGxpdChgCmApLmZvckVhY2goKGEsZCk9Pntjb25zdCB5PWEuc3BsaXQoIiAiKTtpZihpIT09dm9pZCAwJiYoaVtkKjMrMF09cGFyc2VGbG9hdCh5W2UueHx8MF0pLGlbZCozKzFdPXBhcnNlRmxvYXQoeVtlLnl8fDBdKSxpW2QqMysyXT1wYXJzZUZsb2F0KHlbZS56fHwwXSkpLHIhPT12b2lkIDApe2NvbnN0IGg9bmV3IEludDMyQXJyYXkoW3BhcnNlSW50KHlbZS5yZ2J8fGUucmdiYXx8MF0sMTApXSksZz1uZXcgRGF0YVZpZXcoaC5idWZmZXIsMCk7cltkKjMrMF09Zy5nZXRVaW50OCgyKS8yNTUscltkKjMrMV09Zy5nZXRVaW50OCgxKS8yNTUscltkKjMrMl09Zy5nZXRVaW50OCgwKS8yNTV9ZiE9PXZvaWQgMCYmKGZbZF09cGFyc2VGbG9hdCh5W2UuaW50ZW5zaXR5fHwwXSkpfSk7ZWxzZSBpZih0LmRhdGE9PT0iYmluYXJ5Iil7Y29uc3QgdT1uZXcgRGF0YVZpZXcobik7QygwLHQucG9pbnRzKS5mb3JFYWNoKHM9Pntjb25zdCBhPWMqcztpZihpIT09dm9pZCAwJiYoaVtzKjMrMF09dS5nZXRGbG9hdDMyKGErKGUueHx8MCksQSksaVtzKjMrMV09dS5nZXRGbG9hdDMyKGErKGUueXx8MCksQSksaVtzKjMrMl09dS5nZXRGbG9hdDMyKGErKGUuenx8MCksQSkpLHIhPT12b2lkIDApe2NvbnN0IGQ9YSsoZS5yZ2J8fGUucmdiYXx8MCk7ZCsyPD11LmJ5dGVMZW5ndGgmJihyW3MqNCswXT11LmdldFVpbnQ4KGQrMikvMjU1LHJbcyo0KzFdPXUuZ2V0VWludDgoZCsxKS8yNTUscltzKjQrMl09dS5nZXRVaW50OChkKzApLzI1NSxyW3MqNCszXT0xKX1mIT09dm9pZCAwJiYoZltzXT11LmdldEZsb2F0MzIoYSsoZS5pbnRlbnNpdHl8fDApLEEpKX0pfWVsc2UgaWYodC5kYXRhPT09ImJpbmFyeV9jb21wcmVzc2VkIil7Y29uc3QgdT1WKG4pLHM9bmV3IERhdGFWaWV3KHUpO0MoMCx0LnBvaW50cykuZm9yRWFjaChhPT57aWYoaSE9PXZvaWQgMCYmKGlbYSozKzBdPXMuZ2V0RmxvYXQzMigoZS54fHwwKSthKjQsQSksaVthKjMrMV09cy5nZXRGbG9hdDMyKChlLnl8fDApK2EqNCxBKSxpW2EqMysyXT1zLmdldEZsb2F0MzIoKGUuenx8MCkrYSo0LEEpKSxyIT09dm9pZCAwKXtjb25zdCBkPShlLnJnYnx8ZS5yZ2JhfHwwKSthKjQ7ZCsyPD1zLmJ5dGVMZW5ndGgmJihyW2EqNCswXT1zLmdldFVpbnQ4KGQrMikvMjU1LHJbYSo0KzFdPXMuZ2V0VWludDgoZCsxKS8yNTUsclthKjQrMl09cy5nZXRVaW50OChkKzApLzI1NSxyW2EqNCszXT0xKX1mIT09dm9pZCAwJiYoZlthXT1zLmdldEZsb2F0MzIoKGUuaW50ZW5zaXR5fHwwKSthKjQsQSkpfSl9cmV0dXJue2NvbG9yczpyLGhlYWRlcjp0LGludGVuc2l0eTpmLHBvc2l0aW9uczppfX1mdW5jdGlvbiBYKG8pe3JldHVybiBEKEgobykpfWNvbnN0IFo9bmV3IF8oe2NhcGFjaXR5OjFlMyx0aW1lb3V0OjEqUy5taW51dGV9KTtvbm1lc3NhZ2U9YXN5bmMgbz0+e2NvbnN0e3VybDp0LGlkOm4scG9pbnRDbG91ZDplfT1vLmRhdGE7aWYodCl7Y29uc3QgYz1aLmdldCh0LGFzeW5jKCk9PkQoYXdhaXQgZmV0Y2godCx7bW9kZToiY29ycyJ9KS50aGVuKHI9PnIuYXJyYXlCdWZmZXIoKSkpKTtjJiZwb3N0TWVzc2FnZSh7dXJsOnQscGNkOmN9KX1pZihuJiZlKXtjb25zdCBjPVgoZSk7cG9zdE1lc3NhZ2Uoe2lkOm4scGNkOmN9KX19fSkoKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9UGNkTG9hZGVyV29ya2VyLWVhYWMwYjMxLmpzLm1hcAo=",blob$1=typeof window<"u"&&window.Blob&&new Blob([atob(encodedJs$1)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$1(){let s;try{if(s=blob$1&&(window.URL||window.webkitURL).createObjectURL(blob$1),!s)throw"";return new Worker(s)}catch{return new Worker("data:application/javascript;base64,"+encodedJs$1)}finally{s&&(window.URL||window.webkitURL).revokeObjectURL(s)}}const encodedJs="dmFyIGw9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBnPShjLG4sbyk9Pm4gaW4gYz9sKGMsbix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pOmNbbl09bzt2YXIgcj0oYyxuLG8pPT4oZyhjLHR5cGVvZiBuIT0ic3ltYm9sIj9uKyIiOm4sbyksbyk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IHU9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07ZnVuY3Rpb24geChoKXt9Y2xhc3MgbXtjb25zdHJ1Y3Rvcih7Y2FwYWNpdHk6ZSx0aW1lb3V0OnN9PXt9KXtyKHRoaXMsImVudHJpZXMiLG5ldyBNYXApO3IodGhpcywibWV0YWRhdGEiLG5ldyBNYXApO3IodGhpcywiY2FwYWNpdHkiKTtyKHRoaXMsInRpbWVvdXQiKTt0aGlzLmNhcGFjaXR5PWV8fDFlNCx0aGlzLnRpbWVvdXQ9c3x8dS5taW51dGV9Z2V0KGUscyl7Y29uc3QgYT10aGlzLmtleVRvQ2FjaGVLZXkoZSksaT10aGlzLmVudHJpZXMuZ2V0KGEpLHQ9dGhpcy5tZXRhZGF0YS5nZXQoYSk7cmV0dXJuKGk9PT12b2lkIDB8fHQmJih0PT1udWxsP3ZvaWQgMDp0LmV4cGlyYXRpb24uZ2V0VGltZSgpKTxEYXRlLm5vdygpKSYmISh0IT1udWxsJiZ0LmdlbmVyYXRpbmcpJiZzJiZ0aGlzLmdlbmVyYXRlKGUscygpKSxpPT09dm9pZCAwJiZ0JiZ0Lmxhc3RWYWx1ZSE9PXZvaWQgMD90Lmxhc3RWYWx1ZTppfXNldChlLHMpe2NvbnN0IGE9dGhpcy5rZXlUb0NhY2hlS2V5KGUpO3RoaXMubWV0YWRhdGEuc2V0KGEse2dlbmVyYXRpbmc6ITEsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCksbGFzdFZhbHVlOnN9KSx0aGlzLmVudHJpZXMuc2V0KGEscyksdGhpcy5tZXRhZGF0YS5zaXplPnRoaXMuY2FwYWNpdHkmJnRoaXMuZGVsZXRlT2xkZXN0RW50cnkoKX1jbGVhcigpe3RoaXMuZW50cmllcy5jbGVhcigpLFsuLi50aGlzLm1ldGFkYXRhLnZhbHVlcygpXS5mb3JFYWNoKGU9PmUuZ2VuZXJhdGluZz0hMSl9Y2xlYXJLZXkoZSl7dGhpcy5tZXRhZGF0YS5kZWxldGUoZSksdGhpcy5lbnRyaWVzLmRlbGV0ZShlKX1rZXlUb0NhY2hlS2V5KGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShlKX1kZWxldGVPbGRlc3RFbnRyeSgpe2lmKHRoaXMubWV0YWRhdGEuc2l6ZTwxKXJldHVybjtjb25zdFtlXT1bLi4udGhpcy5tZXRhZGF0YS5lbnRyaWVzKCldLnJlZHVjZSgoW3MsYV0sW2ksdF0pPT50LmV4cGlyYXRpb24uZ2V0VGltZSgpPGEuZXhwaXJhdGlvbi5nZXRUaW1lKCk/W2ksdF06W3MsYV0pO3RoaXMuY2xlYXJLZXkoZSl9Z2VuZXJhdGUoZSxzKXtjb25zdCBhPXRoaXMua2V5VG9DYWNoZUtleShlKSxpPXRoaXMubWV0YWRhdGEuZ2V0KGEpfHx7fTt0aGlzLm1ldGFkYXRhLnNldChhLHsuLi5pLGdlbmVyYXRpbmc6ITAsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCl9KSxzZXRUaW1lb3V0KCgpPT57cy50aGVuKHQ9Pntjb25zdCBkPXRoaXMubWV0YWRhdGEuZ2V0KGEpOyEoZCE9bnVsbCYmZC5nZW5lcmF0aW5nKXx8dGhpcy5zZXQoZSx0KX0pfSwwKX19Y29uc3QgeT1uZXcgbSh7Y2FwYWNpdHk6MWUzLHRpbWVvdXQ6MSp1Lm1pbnV0ZX0pO29ubWVzc2FnZT1hc3luYyBoPT57Y29uc3R7dXJsOmV9PWguZGF0YTtpZihlKXtjb25zdCBzPXkuZ2V0KGUsYXN5bmMoKT0+YXdhaXQgZmV0Y2goZSx7bW9kZToiY29ycyJ9KS50aGVuKGk9PmkuanNvbigpKSk7cyYmcG9zdE1lc3NhZ2Uoe3VybDplLHJlc3BvbnNlOnN9KX19fSkoKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF0YUZldGNoV29ya2VyLTBhMTY4OTMzLmpzLm1hcAo=",blob=typeof window<"u"&&window.Blob&&new Blob([atob(encodedJs)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper(){let s;try{if(s=blob&&(window.URL||window.webkitURL).createObjectURL(blob),!s)throw"";return new Worker(s)}catch{return new Worker("data:application/javascript;base64,"+encodedJs)}finally{s&&(window.URL||window.webkitURL).revokeObjectURL(s)}}const PCD_WORKER_POOL_SIZE=5,DATA_FETCH_WORKER_POOL_SIZE=10;class WorkerPoolService{static getPcdWorkerPool(){if(!Array.isArray(this.pcdWorkerPool)||!this.pcdWorkerPool.length)for(let o=0;o{if(Array.from(this.subscriberLoaders.keys()).length>0){const et=[],tt=this.generateTelemetryFilter(),nt=this.queryStore.query(tt);if(!nt||nt==="too much data")return;nt.forEach(ot=>{et.push(ot.deviceId)});const rt=Array.from(new Set(et)),it=[];rt.forEach(ot=>{const st=this.subscriberLoaders.get(ot);st&&st.forEach(at=>{it.push(at(nt))})}),(await Promise.all(it)).forEach(ot=>{if(ot.data){const st=this.subscriberDistributorsLoaders.get(ot.deviceId);if(st){const at=st.get(ot.sourceId);at&&at.forEach(lt=>{lt(ot.data)})}}})}setTimeout(()=>o(),0)};setTimeout(()=>o(),0)}setTime(o){o!=="live"&&(this.time=o),this.timeChangeListeners.forEach(et=>et(o))}getTime(){return this.time}getTimeMs(){return this.time==="live"?new Date().getTime():this.time.getTime()}getAvailablePCDWorker(){const o=WorkerPoolService.getPcdWorkerPool();for(let et=0;et{const nt=this.subscriberSources.get(tt);nt&&Array.from(nt?.values()).forEach(rt=>{rt.sourceType==="telemetry"&&et.push(rt.streamName)})}),{deviceIds:o,names:et,start:subDays(new Date,20).toISOString(),end:new Date().toISOString(),latestOnly:!0}}async sendRtcMessage(o,et){await this.createRealtimeConnection(o);const tt=this.mapRealtimeConnections.get(o);tt&&tt!=="loading"&&tt&&tt.sendRealtimeMessage(et,{channelLabel:"stream.reliable"})}async createRealtimeConnection(o,et=signaling_pb.SessionType.TELEOP){const tt=this.mapRealtimeConnections.get(o);if(tt===void 0){this.mapRealtimeConnections.set(o,"loading");const nt=o.startsWith("http");console.log("Creating {} realtime connection",nt?"peer":"cloud");let rt;nt?rt=new PeerDevice(o):rt=await Fleet.getDevice(o),await rt.startRealtimeConnection(et),debug&&rt.addRealtimeListener((it,ot)=>{console.log("received message from peer",it,ot)}),this.mapRealtimeConnections.set(o,rt)}else tt==="loading"&&await new Promise(nt=>{const rt=setInterval(()=>{const it=this.mapRealtimeConnections.get(o);it&&it!=="loading"&&(clearInterval(rt),nt())},100)})}addRemovableTelemetrySubscription(o,et,tt,nt){let rt=this.subscriberLoaders.get(o);rt||(rt=new Map,this.subscriberLoaders.set(o,rt)),rt.get(et.id)||rt.set(et.id,tt);let it=this.subscriberDistributorsLoaders.get(o);it||(it=new Map,this.subscriberDistributorsLoaders.set(o,it));const ot=it.get(et.id);ot?ot.push(nt):it.set(et.id,[nt]);let st=this.subscriberSources.get(o);return st||(st=new Map,this.subscriberSources.set(o,st)),st.set(et.id,et),()=>{const at=this.subscriberLoaders.get(o);at&&at.delete(et.id);const lt=this.subscriberDistributorsLoaders.get(o);if(lt){const dt=lt.get(et.id);if(dt){const ht=dt.indexOf(nt);ht>-1&&dt.splice(ht,1)}}const ut=this.subscriberSources.get(o);ut&&ut.delete(et.id)}}createH264Drawer(){return new H264BytestreamCanvasDrawer(()=>new WorkerWrapper$2,()=>{},()=>{})}async sendCommand(o,et,tt){const nt=this.mapRealtimeConnections.get(o);if(nt==="loading"||nt===void 0)throw new Error("Device is not ready or doesnt exist");await nt.sendCommand(et,tt)}async sendRealtimePose(o,et,tt){const nt=distExports.createRtcStreamMessage({entityId:o,streamName:et,streamType:"pose"},{pose:tt},"vision");await this.sendRtcMessage(o,nt)}async sendRealtimeBoolean(o,et,tt){const nt=distExports.createRtcStreamMessage({entityId:o,streamName:et,streamType:"boolean"},{boolean:tt});await this.sendRtcMessage(o,nt)}async sendRealtimeBitset(o,et,tt){const nt=distExports.createRtcStreamMessage({entityId:o,streamName:et,streamType:"bitset"},{bitset:{bits:tt.keys.map((rt,it)=>({key:rt,value:tt.values[it]}))}});await this.sendRtcMessage(o,nt)}async getUrdfs(o){const et=await(await Fleet.getDevice(o)).getConfiguration();return!et.urdfFiles||et.urdfFiles.length===0?[]:[await Fleet.getFileUrl(et.urdfFiles[0])]}async getTelemetryStreams(o){throw new Error("Not implemented")}async getTeleopRosStreams(o){throw new Error("Not implemented")}async getHardwareStreams(o){throw new Error("Not implemented")}addInteraction(o){throw new Error("Method not implemented.")}removeInteraction(o){throw new Error("Method not implemented.")}getInteractions(){throw new Error("Method not implemented.")}addInteractionsChangedListener(o){throw new Error("Method not implemented.")}addInteractionListener(o){throw new Error("Method not implemented.")}getRealtimeButtons(o){throw new Error("Method not implemented.")}async getLatestTransformTrees(o){throw new Error("Not implemented")}async getLatestLocations(){return[{streamName:"spotLocation",location:{latitude:45.4661989,longitude:-122.5782375}}]}async getDeviceContexts(){return[]}async getDeviceContextName(o){throw new Error("Not implemented")}async getTelemetryStreamType(o,et){throw new Error("Not implemented")}async getStatistics(){return{rtcDevices:[]}}subscribeDataSourceStateChange(o,et,tt){return()=>{}}async fetchImage(o){const et=new Image;return et.src=o,et.setAttribute("crossOrigin",""),await new Promise(tt=>{et.onload=tt}),et}}class LiveUniverseData extends BasicUniverseDataConnector{constructor(){super()}subscribeToPath(o,et,tt){throw new Error("Method not implemented.")}subscribeToImage(o,et,tt){throw new Error("Method not implemented.")}subcribeToVideo(o,et,tt){throw new Error("Method not implemented.")}subscribeToBitset(o,et,tt){if(et.sourceType==="realtime"){const nt=(rt,it)=>{if(it.payload.bitset){const ot=it.payload.bitset,st={keys:[],values:[]};ot.bits.forEach(at=>{st.keys.push(at.key),st.values.push(at.value)}),tt(st)}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}throw new Error("Telemetry bitset not implemented")}subscribeToOdometry(o,et,tt,nt){if(et.sourceType==="realtime"){const rt=(it,ot)=>{if(ot.payload.odometry){const st=ot.payload.odometry;tt({worldToLocal:st.worldToLocal,pose:{translation:{x:st.pose.translation.x,y:st.pose.translation.y,z:st.pose.translation.z},rotation:{x:st.pose.rotation.x,y:st.pose.rotation.y,z:st.pose.rotation.z,w:st.pose.rotation.w}},covariance:[]})}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,rt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,rt)}}if(et.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(o,et,async rt=>{let it,ot;for(let st=0;st{it.payload.pose&&tt(it.payload.pose)};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}throw new Error("unexpected")}subscribeToNumeric(o,et,tt){if(et.sourceType==="realtime"){const nt=async(rt,it)=>{it.payload.numeric&&tt([[Date.now(),it.payload.numeric.value]])};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}return()=>{}}subscribeToNumericSet(o,et,tt){if(et.sourceType==="telemetry"){let nt;const rt=setInterval(async()=>{nt||(nt=await Fleet.getDevice(o));const it=new Date,ot=new Date(it.getTime()-15*1e3),st=await nt.getTelemetry(et.streamName,ot,it);if(st.length>0){const at=st[0].points;tt(at)}},1e3);return()=>{clearInterval(rt)}}return()=>{}}async subscribeToRealtimeMessages(o,et,tt){await this.createRealtimeConnection(o,signaling_pb.SessionType.OBSERVE);const nt=this.mapRealtimeConnections.get(o);nt&&nt!=="loading"&&(nt.startListeningToRealtimeDataStream({name:et}),nt.addRealtimeListener((rt,it)=>{it.header.stream.streamName===et&&tt(rt,it)}))}async unsubscribeToRealtimeMessages(o,et,tt){const nt=this.mapRealtimeConnections.get(o);nt&&nt!=="loading"&&(nt.stopListeningToRealtimeDataStream({name:et}),nt.removeRealtimeListener(tt))}subscribeToJson(o,et,tt){if(et.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt,it;for(let ot=0;otot.json())),{deviceId:o,sourceId:et.id,data:it}},tt);if(et.sourceType==="realtime"){const nt=async(rt,it)=>{it.payload.jsonString&&tt(JSON.parse(it.payload.jsonString.value))};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}return()=>{}}subscribeToText(o,et,tt){return et.sourceType==="telemetry"?this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt,it;for(let ot=0;otot.text())),{deviceId:o,sourceId:et.id,data:it}},tt):()=>{}}subscribeToPointCloud(o,et,tt){const nt=this.getAvailablePCDWorker();if(!nt)throw new Error("No available pointcloud worker");if(et.sourceType==="telemetry"&&et.streamType!=="localization")return this.addRemovableTelemetrySubscription(o,et,async rt=>{let it,ot;for(let st=0;st{nt.postMessage({url:st}),nt.onmessage=lt=>{lt.data.url===st&&at(lt.data.pcd)}})}return{deviceId:o,sourceId:et.id,data:{worldToLocal:it?.worldToLocal,pcd:ot}}},tt);if(et.sourceType==="telemetry"&&et.streamType==="localization")return this.addRemovableTelemetrySubscription(o,et,async rt=>{let it,ot;for(let st=0;st{nt.postMessage({url:st}),nt.onmessage=lt=>{lt.data.url===st&&at(lt.data.pcd)}})}return{deviceId:o,sourceId:et.id,data:{worldToLocal:it&&it!=null&&it.pointClouds&&it!=null&&it.pointClouds[0]?it.pointClouds[0].worldToLocal:void 0,pcd:ot}}},tt);if(et.sourceType==="realtime"){const rt=async(it,ot)=>{var st;if(ot.payload.pointCloud){const at=Math.random(),lt=await new Promise(ut=>{nt.postMessage({id:at,pointCloud:defined$2(ot.payload.pointCloud).data}),nt.onmessage=dt=>{dt.data.id===at&&ut(dt.data.pcd)}});tt({worldToLocal:(st=ot.payload.pointCloud)==null?void 0:st.world_to_local,pcd:lt})}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,rt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,rt)}}return()=>{}}subscribeToGeometry(o,et,tt){throw new Error("type error in realtime sdk")}subscribeToJointState(o,et,tt){if(et.sourceType==="realtime"){const nt=(rt,it)=>{it.payload.jointState&&tt(it.payload.jointState)};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}return()=>{}}subscribeToGridMap(o,et,tt){if(et.sourceType==="realtime"){const nt=(rt,it)=>{if(it.payload.jsonString){const ot=JSON.parse(it.payload.jsonString.value);tt({width:ot.info.width,height:ot.info.height,worldToLocal:{translation:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0,w:1}},resolution:ot.info.resolution,origin:{translation:ot.info.origin.position,rotation:ot.info.origin.orientation},data:ot.data,alpha:ot.data.map(()=>255)})}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}else if(et.sourceType==="telemetry"&&et.streamType==="localization")return this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt,it;for(let ot=0;ot{st.payload.h264VideoFrame&&(nt.receiveEncodedFrame(st.payload.h264VideoFrame),nt&&nt.canvas&&nt.canvas.width>0&&nt.canvas.height>0&&tt(nt.canvas))};return this.subscribeToRealtimeMessages(o,et.rosTopicName,it),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,it)}}if(et.sourceType==="hardware"){const it=(ot,st)=>{st.payload.h264VideoFrame&&(nt.receiveEncodedFrame(st.payload.h264VideoFrame),nt&&nt.canvas&&nt.canvas.width>0&&nt.canvas.height>0&&tt(nt.canvas))};return this.subscribeToRealtimeMessages(o,et.rtcStreamName,it),()=>{this.unsubscribeToRealtimeMessages(o,et.rtcStreamName,it)}}return()=>{nt.stop()}}subscribeToTransformTree(o,et,tt){if(et.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt;for(let it=0;it{if(ot==="too much data"||ot===void 0){tt(NoData);return}const st=this.getNearestPoint(ot),at=st[1],lt=st[0];if(lt!==rt){if(rt=lt,at.url){const ut=await fetch(at.url).then(dt=>dt.json());ut.path&<>=rt&&tt(ut.path);return}else if(at.path&<>=rt){tt(at.path);return}}});return()=>{this.releaseDataFetchWorker(nt),it()}}onTimeChange(o){o==="live"?this.liveIntervalHandle=setInterval(()=>{this.findDataForTime(new Date)},300):(this.liveIntervalHandle&&clearInterval(this.liveIntervalHandle),this.findDataForTime(o))}findDataForTime(o){this.timeFinders.forEach(et=>{et(o)})}addFinder(o,et,tt,nt,rt){const it=ot=>{const st=rt?addYears(ot,-1):addSeconds(ot,-60),at=rt?addMilliseconds(ot,1):addSeconds(ot,5),lt=this.queryStore.moduleQuery({deviceIds:[et]},tt,nt,st,at,rt);if(lt===void 0){o(void 0);return}if(lt==="too much data"){o("too much data");return}if(lt.length===0){o(void 0);return}const ut=lt.reduce((dt,ht)=>dt.concat(ht.points),[]);if(!ut||ut.length===0){o(void 0);return}if(rt){const dt=ut[ut.length-1][0],ht=ut.filter(ct=>ct[0]>addSeconds(dt,-15).getTime());o(ht);return}o(ut)};return this.timeFinders.push(it),it}getNearestPoint(o,et=this.time){const tt=et==="live"?addMilliseconds(new Date,1):this.time;let nt=o[0][0],rt=o[0][1];return o.forEach(it=>{const ot=it[0],st=it[1];Math.abs(ot-tt.getTime())et!==o)}subscribeTelemetry(o,et,tt,nt){if(et.sourceType!=="telemetry")throw new Error("Invalid source type");const rt=this.addFinder(nt,o,et.streamName,tt,et.latestDataPoint||!1);return()=>{this.removeFinder(rt)}}subscribeToPointCloud(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const nt=this.getAvailablePCDWorker();if(!nt)throw new Error("No available pointcloud worker");const rt=this.getAvailableDataFetchWorker();if(!rt)throw new Error("No available data fetch worker");let it=()=>{},ot=()=>{};return et.streamType==="point cloud"?it=this.subscribeTelemetry(o,et,"point cloud",async st=>{if(st==="too much data"||st===void 0){tt(NoData);return}const at=this.getNearestPoint(st)[1];if(typeof at=="string")tt(JSON.parse(at));else{const{url:lt}=at;nt.postMessage({url:lt}),nt.onmessage=ut=>{ut.data.url===lt&&tt({worldToLocal:at.worldToLocal,pcd:ut.data.pcd})}}}):et.streamType==="localization"&&(ot=this.subscribeTelemetry(o,et,"localization",async st=>{if(st==="too much data"||st===void 0){tt(NoData);return}let at=this.getNearestPoint(st)[1];at.url&&(rt.postMessage({url:at.url}),rt.onmessage=lt=>{if(at=lt.data.response,at.pointClouds){const{url:ut,worldToLocal:dt}=at.pointClouds[0];nt.postMessage({url:ut}),nt.onmessage=ht=>{ht.data.url===ut&&tt({worldToLocal:dt,pcd:ht.data.pcd})}}})})),()=>{this.releasePCDWorker(nt),this.releaseDataFetchWorker(rt),it(),ot()}}subscribeToOdometry(o,et,tt,nt=0){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const rt=this.getAvailableDataFetchWorker();if(!rt)throw new Error("No available data fetch worker");const it=this.subscribeTelemetry(o,et,"localization",async ot=>{if(ot==="too much data"||ot===void 0){tt(NoData);return}const st=this.getNearestPoint(ot);let at;if(st[1].url)try{at=(await(await fetch(st[1].url)).json()).odometry}catch(lt){throw console.error("Failed to fetch odometry data:",lt),lt}else at=st[1].odometry;if(nt){const lt=ot.filter(ut=>ut[0]<=st[0]&&ut[0]>=st[0]-nt*1e3).map(async ut=>{var dt,ht;if(ut[1].url)try{const ct=await(await fetch(ut[1].url)).json();return[ut[0],(dt=ct.odometry)==null?void 0:dt.pose]}catch(ct){throw console.error("Failed to fetch trail odometry data:",ct),ct}return[ut[0],(ht=ut[1].odometry)==null?void 0:ht.pose]});try{const ut=await Promise.all(lt);tt({worldToLocal:at.worldToLocal,pose:at.pose,trail:ut,covariance:[]});return}catch(ut){throw console.error("Failed to process trail data:",ut),ut}}tt({worldToLocal:at.worldToLocal,pose:at.pose,covariance:[]})});return()=>{this.releaseDataFetchWorker(rt),it()}}subscribeToPose(o,et,tt){throw new Error("Method not implemented for telemetry universe connector.")}subscribeToGeometry(o,et,tt){if(et.sourceType==="telemetry"){const nt=this.getAvailableDataFetchWorker();if(!nt)throw new Error("No available data fetch worker");const rt=this.subscribeTelemetry(o,et,"json",async it=>{if(it==="too much data"||it===void 0){tt(NoData);return}let ot=this.getNearestPoint(it)[1];ot.startsWith("http")?(nt.postMessage({url:ot}),nt.onmessage=st=>{ot=JSON.stringify(st.data.response),tt(JSON.parse(ot))}):tt(JSON.parse(ot))});return()=>{this.releaseDataFetchWorker(nt),rt()}}else throw new Error("Realtime geometry note supported")}subscribeToJointState(o,et,tt){return this.subscribeToJson(o,et,tt)}subscribeToGridMap(o,et,tt){const nt={};if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const rt=this.getAvailableDataFetchWorker();if(!rt)throw new Error("No available data fetch worker");const it=this.subscribeTelemetry(o,et,"localization",async ot=>{if(ot==="too much data"||ot===void 0){tt(NoData);return}const st=this.getNearestPoint(ot)[1];if(st.url){if(nt[st.url]){tt(nt[st.url]);return}rt.postMessage({url:st.url}),rt.onmessage=async at=>{const lt=at.data.response.map;if(lt){const ut={width:lt.width,height:lt.height,worldToLocal:lt.worldToLocal,resolution:lt.resolution,origin:lt.origin,url:lt.url};nt[st.url]=JSON.parse(JSON.stringify(ut)),tt(ut)}}}});return()=>{this.releaseDataFetchWorker(rt),it()}}subscribeToVideo(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"video",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}const rt=this.getNearestPoint(nt)[1],{url:it}=rt,ot=this.videoCache.get(it,async()=>new Promise(st=>{const at=document.createElement("video");at.src=it,at.onload=()=>{}}));if(ot){const st=document.createElement("canvas");st.width=ot.videoWidth,st.height=ot.videoHeight;const at=st.getContext("2d");at&&at.drawImage(ot,0,0),tt(st)}})}subscribeToTransformTree(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"transform tree",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(this.getNearestPoint(nt)[1])})}subscribeToLocation(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const nt=this.subscribeToJson(o,et,tt),rt=this.subscribeTelemetry(o,et,"location",async it=>{if(it==="too much data"||it===void 0){tt(NoData);return}const ot=this.getNearestPoint(it)[1];tt(ot)});return()=>{nt(),rt()}}subscribeToJson(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"json",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}let rt=this.getNearestPoint(nt)[1];rt.startsWith("http")&&(rt=await(await fetch(rt)).text()),tt(JSON.parse(rt))})}subscribeToText(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"text",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(this.getNearestPoint(nt)[1])})}subscribeToNumeric(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"numeric",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(nt)})}subscribeToNumericSet(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"numeric set",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(nt)})}subscribeToImage(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"image",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}const rt=this.getNearestPoint(nt)[1].url,it=new Image;it.src=rt,it.onload=()=>{const ot=document.createElement("canvas");ot.width=it.width,ot.height=it.height;const st=ot.getContext("2d");st&&(st.drawImage(it,0,0),tt(ot))}})}}distExports.RtcClient;distExports.RtcClientV1;distExports.RtcSignalingClient;distExports.createRtcStreamMessage;const SidebarContent=styled.div` + `,nt=[1.16438,0,1.59603,-.87079,1.16438,-.39176,-.81297,.52959,1.16438,2.01723,0,-1.08139,0,0,0,1],rt=o.createShader(o.VERTEX_SHADER);if(!rt)throw new Error("Failed to create vertex shader");o.shaderSource(rt,et),o.compileShader(rt);const it=o.createShader(o.FRAGMENT_SHADER);if(!it)throw new Error("Failed to create fragment shader");o.shaderSource(it,tt),o.compileShader(it);const ot=o.createProgram();if(!ot)throw new Error("Failed to create webgl program");o.attachShader(ot,rt),o.attachShader(ot,it),o.linkProgram(ot),o.useProgram(ot);const st=o.getUniformLocation(ot,"YUV2RGB");return o.uniformMatrix4fv(st,!1,nt),ot}initBuffers(){const{gl:o,program:et}=this,tt=o.createBuffer();o.bindBuffer(o.ARRAY_BUFFER,tt),o.bufferData(o.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),o.STATIC_DRAW);const nt=o.getAttribLocation(et,"vertexPos");o.enableVertexAttribArray(nt),o.vertexAttribPointer(nt,2,o.FLOAT,!1,0,0);const rt=o.createBuffer();if(!rt)throw new Error("Failed to create WebGL buffer");o.bindBuffer(o.ARRAY_BUFFER,rt),o.bufferData(o.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),o.STATIC_DRAW);const it=o.getAttribLocation(et,"texturePos");return o.enableVertexAttribArray(it),o.vertexAttribPointer(it,2,o.FLOAT,!1,0,0),{texturePosBuffer:rt}}initTextures(){const{gl:o,program:et}=this,tt=this.initTexture(),nt=o.getUniformLocation(et,"yuvSampler");return o.uniform1i(nt,0),{textureRef:tt}}initTexture(){const{gl:o}=this,et=o.createTexture();if(!et)throw new Error("Failed to initialize texture");return o.bindTexture(o.TEXTURE_2D,et),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.bindTexture(o.TEXTURE_2D,null),et}}const decoderNotWorkingThreshold=duration$1$1.second*2.5,warnPerformanceThreshold=duration$1$1.second/3,noSignalThreshold=duration$1$1.second*2,maxQueueSize=5,maxDropRatio=30/25,numRetries=5,hardwareIncompatibleErrorCode=1282;class H264BytestreamCanvasDrawer{constructor(o,et,tt,nt,rt){__publicField(this,"_waitingForDecoder",!0),__publicField(this,"_noSignal",!0),__publicField(this,"_lostSignal",!1),__publicField(this,"_overWaitingThreshold",!1),__publicField(this,"_retries",0),__publicField(this,"_webglYUVSupported"),__publicField(this,"lastDecodedFrameTime"),__publicField(this,"lastReceivedFrameTime"),__publicField(this,"lastNoSignalTime",new Date().getTime()),__publicField(this,"moduleStartTime",Date.now()),__publicField(this,"moduleCreateTime",Date.now()),__publicField(this,"timesRestarted",0),__publicField(this,"canvas"),__publicField(this,"decoder"),__publicField(this,"yuvCanvas"),__publicField(this,"webglContext"),__publicField(this,"frameQueue",[]),__publicField(this,"minFrameSize",1/0),__publicField(this,"maxFrameSize",0),__publicField(this,"decoderQueue",[]),__publicField(this,"decoderQueueLocked",!1),__publicField(this,"decodeNextFrameAttempted",!1),__publicField(this,"numFramesDecoded",0),__publicField(this,"numFramesReceived",0),__publicField(this,"hasReceivedKeyframe",!1),__publicField(this,"medianFrameSize",0),__publicField(this,"currentFrameIndex"),__publicField(this,"frameCheckpointMap",new Map),__publicField(this,"lastDrawnFrameTime"),__publicField(this,"minJitter"),__publicField(this,"maxJitter"),__publicField(this,"start",()=>{const{canvas:it}=this;if(!it)return;const ot=it.getContext("webgl");this.webglContext=ot||void 0,this.lastDecodedFrameTime=void 0,this.lastReceivedFrameTime=void 0,this.hasReceivedKeyframe=!1,this.currentFrameIndex=void 0,!(!this.canvas||!this.webglContext)&&(this.yuvCanvas||(this.yuvCanvas=new YUVCanvas(this.webglContext)),this.moduleStartTime=Date.now())}),__publicField(this,"stop",()=>{var it;(it=this.decoder)==null||it.release(),this.webglContext=void 0,this.decoderQueueLocked=!1}),__publicField(this,"reset",()=>{this.retries=0,this.restart()}),__publicField(this,"notifyWarningTextChanged",()=>{var it;(it=this.onWarningTextChanged)==null||it.call(this,this.getWarningText())}),__publicField(this,"restart",()=>{console.info("Restarting decoder"),console.info("BytestreamPlayer restarting",__spreadProps(__spreadValues({},this.trackInfo),{Restart:this.timesRestarted})),this.frameQueue=[],this.decoderQueue=[],this.stop(),this.decoder=new H264Decoder(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),this.start(),this.retries++,this.timesRestarted++}),__publicField(this,"onTrackTick",()=>{if(this.numFramesDecoded===0){if(this.lastDecodedFrameTime===void 0){const at=Date.now();console.info("BytestreamPlayer waiting for video",__spreadProps(__spreadValues({},this.trackInfo),{"Time Waited":at-this.moduleCreateTime}))}return}this.numFramesReceived/this.numFramesDecoded>maxDropRatio&&this.warnPerformanceProblems(),this.numFramesReceived=0,this.numFramesDecoded=0;const it=Array.from(this.frameCheckpointMap.entries()).reduce((at,[lt,ut])=>{var dt;return!this.currentFrameIndex||lt>this.currentFrameIndex-60||ut==="FrameDrawn"||(at[ut]=((dt=at[ut])!=null?dt:0)+1,this.frameCheckpointMap.delete(lt)),at},{});Object.keys(it).map(at=>{console.info("BytestreamPlayer Frame Dropped",__spreadProps(__spreadValues({},this.trackInfo),{"Num Dropped":it[at],"Frame State":at}))});const{minJitter:ot,maxJitter:st}=this;ot&&st&&(console.info("BytestreamPlayer Jitter",__spreadProps(__spreadValues({},this.trackInfo),{minJitter:ot,maxJitter:st})),this.minJitter=void 0,this.maxJitter=void 0)}),__publicField(this,"onTick",()=>{var it;const{lastReceivedFrameTime:ot,lastDecodedFrameTime:st,moduleStartTime:at,noSignal:lt,retries:ut}=this,dt=new Date().getTime();lt&&(this.lastNoSignalTime=dt),this.overWaitingThreshold=dt-at>noSignalThreshold;const ht=dt-at>decoderNotWorkingThreshold;if(!st){ot&&ht&&utnoSignalThreshold&&ctwarnPerformanceThreshold&&this.warnPerformanceProblems(),ct>noSignalThreshold&&(this.lostSignal=!0)}this.overWaitingThreshold&&(this.waitingForDecoder||this.noSignal||this.lostSignal)&&((it=this.onCanvasDrawerWarning)==null||it.call(this,"ShouldDisableControl"))}),__publicField(this,"receiveEncodedFrame",it=>{if(!it)return;const ot=it.index;if(ot&&this.frameCheckpointMap.set(ot,"FrameReceived"),!(!it||!this.canvas||!this.webglContext)){if(this.isKeyframe(it),!this.hasReceivedKeyframe)return console.info("Dropping frame because no keyframe detected"),!1;this.lastReceivedFrameTime===void 0&&console.debug("Received first frame on bytestream player",__spreadValues({},this.trackInfo)),this.checkOrder(it),this.numFramesReceived++,this.lastReceivedFrameTime=Date.now(),this.lostSignal&&this.restart(),this.noSignal=!1,this.lostSignal=!1,this.frameQueue.push(it),ot&&this.frameCheckpointMap.set(ot,"FrameQueued"),this.frameQueue.length>maxQueueSize&&(this.frameQueue=this.frameQueue.filter(st=>this.isKeyframe(st))),this.frameQueue.length>maxQueueSize&&(this.frameQueue=[],this.decoderQueue=[]),this.decodeNextFrame()}}),__publicField(this,"onDecoderError",it=>{this.frameQueue=[],this.decoderQueue=[],this.hasReceivedKeyframe=!1,console.info("BytestreamPlayer decode error",__spreadProps(__spreadValues({},this.trackInfo),{"Frame Index":it}))}),__publicField(this,"onReceiveDecodedFrame",it=>{var ot,st;const{canvas:at,yuvCanvas:lt,decoderQueue:ut}=this,{timestamp:dt,yuv:ht,height:ct,width:pt,index:ft}=it;this.frameCheckpointMap.set(ft,"FrameDecoded"),this.numFramesDecoded++;const gt=Date.now();if(this.lastDecodedFrameTime===void 0&&console.info("BytestreamPlayer started video",__spreadProps(__spreadValues({},this.trackInfo),{"Time Until Video":gt-this.moduleCreateTime})),this.lastDecodedFrameTime=gt,this.waitingForDecoder=!1,this.decoderQueue=ut.filter(Ft=>gt-Ftduration$1$1.second||!lt||!at||ct===0||pt===0)return;ct!==at.height&&(at.height=ct,lt.height=ct),pt!==at.width&&(at.width=pt,lt.width=pt);const yt=lt.draw(ht),Ut=Date.now();if(this.lastDrawnFrameTime){const Ft=Ut-this.lastDrawnFrameTime;this.minJitter=Math.min(Ft,(ot=this.minJitter)!=null?ot:Number.MAX_SAFE_INTEGER),this.maxJitter=Math.max(Ft,(st=this.maxJitter)!=null?st:0)}this.lastDrawnFrameTime=Ut,this.frameCheckpointMap.set(ft,"FrameDrawn"),yt===0&&(this.webglYUVSupported=!0),yt===hardwareIncompatibleErrorCode&&(this.webglYUVSupported=!1),this.frameQueue.length>0&&this.decodeNextFrame()}),this.workerFactory=o,this.onWebglYUVSupportedChanged=et,this.onWarningTextChanged=tt,this.onCanvasDrawerWarning=nt,this.trackInfo=rt,this.decoder=new H264Decoder(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),setInterval(this.onTick,duration$1$1.millisecond*200),setInterval(this.onTrackTick,duration$1$1.second*5)}get waitingForDecoder(){return this._waitingForDecoder}set waitingForDecoder(o){this._waitingForDecoder=o,this.notifyWarningTextChanged()}get noSignal(){return this._noSignal}set noSignal(o){this._noSignal=o,this.notifyWarningTextChanged()}get lostSignal(){return this._lostSignal}set lostSignal(o){this._lostSignal=o,this.notifyWarningTextChanged()}get overWaitingThreshold(){return this._overWaitingThreshold}set overWaitingThreshold(o){this._overWaitingThreshold=o,this.notifyWarningTextChanged()}get retries(){return this._retries}set retries(o){this._retries=o,this.notifyWarningTextChanged()}get webglYUVSupported(){return this._webglYUVSupported}set webglYUVSupported(o){var et;this._webglYUVSupported=o,(et=this.onWebglYUVSupportedChanged)==null||et.call(this,o),this.notifyWarningTextChanged()}setCanvas(o){this.canvas=o}getWarningText(){var o;const{waitingForDecoder:et,noSignal:tt,overWaitingThreshold:nt,lostSignal:rt,retries:it,webglYUVSupported:ot}=this,st=ot===!1,at=et?it===numRetries?"Decoder failed to start":"Starting decoder":void 0,lt=st?"Hardware decoding not supported on this device":void 0;return(o=lt??(rt?"Lost signal":tt?nt?"No signal":"Waiting for signal":void 0))!=null?o:at}decodeNextFrame(){if(this.decoderQueueLocked&&(this.decodeNextFrameAttempted=!0),this.decoderQueueLocked=!0,this.decoderQueue.length>maxQueueSize){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const o=this.frameQueue.shift();if(!o){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const et=Date.now();this.frameCheckpointMap.set(o.index,"FrameSentToDecoder"),this.decoder.post(et,o.frame_data,o.flags,o.index),this.decoderQueue.push(et),this.decoderQueueLocked=!1,this.decodeNextFrameAttempted&&(this.decodeNextFrameAttempted=!1,this.decodeNextFrame())}warnPerformanceProblems(){var o;this.lastDecodedFrameTime&&this.overWaitingThreshold&&!this.lostSignal&&!this.noSignal&&((o=this.onCanvasDrawerWarning)==null||o.call(this,"ShouldDegradeVideo"))}checkOrder(o){if(this.currentFrameIndex!==void 0&&o.indexDate.now()?!1:nt>this.medianFrameSize?(this.hasReceivedKeyframe=!0,!0):!1}}const encodedJs$2="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbihTKXt0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShTKTpTKCl9KShmdW5jdGlvbigpe2NvbnN0IEo9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07dmFyIHk9e30sRj17fSxhPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBHPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7ZnVuY3Rpb24gaChBKXtsZXQgST1BLmxlbmd0aDtBW0EubGVuZ3RoLTJdPT09Ij0iP0ktPTI6QVtBLmxlbmd0aC0xXT09PSI9IiYmSS0tO2NvbnN0IGc9SS80KjN8MCxCPW5ldyBVaW50OEFycmF5KGcpO2ZvcihsZXQgUT0wLEM9MDtRPGc7USs9Myl7Y29uc3QgRD1HLmluZGV4T2YoQVtDKytdKSxFPUcuaW5kZXhPZihBW0MrK10pO2lmKEJbUV09RDw8MnxFPj40LEM9PT1JKWJyZWFrO2NvbnN0IHc9Ry5pbmRleE9mKEFbQysrXXx8Ij0iKTtpZihCW1ErMV09KEUmMTUpPDw0fHc+PjIsQz09PUkpYnJlYWs7Y29uc3Qgbz1HLmluZGV4T2YoQVtDKytdfHwiPSIpO0JbUSsyXT0odyYzKTw8NnxvfXJldHVybiBCfWEuZGVjb2RlPWgsT2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IEw9IkFHRnpiUUVBQUFBQmx3RVRZQUovZndGL1lBUi9mMzkvQVg5Z0FuOS9BR0FEZjM5L0FYOWdBWDhBWUFsL2YzOS9mMzkvZjM4QVlBRi9BWDlnQkg5L2YzOEFZQVovZjM5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUFOL2YzOEFZQVYvZjM5L2Z3Ri9ZQUFBWUFWL2YzOS9md0JnQm45L2YzOS9md0JnQ245L2YzOS9mMzkvZjM4QVlBQUJmMkFIZjM5L2YzOS9md0YvWUFoL2YzOS9mMzkvZndGL0FqQURCR2d5TmpRR2JXVnRZM0I1QUFNRWFESTJOQVp5WlhOcGVtVUFCZ1JvTWpZMEJtMWxiVzl5ZVFJQmdBS0FnQUlEWTJJQUFBUUFBUU1LQVFZQUJRTUZCZ2NBQndZQUF3NERCd2NGQWdBQ0F3UUFCUVVGQlFvRUFnUUpBUWNBQXdZR0FnSUJCZ1FEQWdJQkN3RUJBd01MRFFJQkFBQUNDUWtKRHdJRkJRQUJDZ0FTQ3hFSUNBY0lDQWNFQVFRSUNBWUJFQWdBQVFZSkFYOEJRYkRFd0FJTEJ5WUVCbTFoYkd4dll3QUtDV2d5TmpSaGJHeHZZd0JnQm1SbFkyOWtaUUJoQkdsdWFYUUFZZ3IycFFWaXdBSUJBbjhnQUJBUElnSkJmMHdFUUNBQVFRRVFDeG9nQVVFQU5nSUFRUUFQQ3dKQUFrQWdBa0dBZ0lDQUJFOEVRQ0FBUVFNUUMwRi9SZ1JBUVFFUEN5QUJJQUpCSFhaQkFYRkJBV28yQWdBTUFRc2dBa0dBZ0lDQUFrOEVRQ0FBUVFVUUMwRi9SZ1JBUVFFUEN5QUJJQUpCRzNaQkEzRkJBMm8yQWdBTUFRc2dBa0dBZ0lDQUFVOEVRQ0FBUVFjUUMwRi9SZ1JBUVFFUEN5QUJJQUpCR1haQkIzRkJCMm8yQWdBTUFRc2dBaEF2SWdOQkJHb2lBa0VnUmdSQUlBRkJBRFlDQUNBQVFTQVFDeHBCQVNFQ0lBQkJBUkFEUVFGSERRSWdBQkFQSVFNZ0FFRWdFQXRCZjBZTkFpQURRUUZMRFFJZ0EwRUJhd1JBSUFGQmZ6WUNBQXdDQ3lBQlFYODJBZ0JCQVE4TElBQWdBMEVGYWhBTEdpQUFJQUlRQXlJQVFYOUdCRUJCQVE4TElBRWdBRUYvSUFKMFFYOXphallDQUF0QkFDRUNDeUFDQzRnQ0FRZC9JQUFvQWdRaEJBSkFJQUFvQWd4QkEzUWlCeUFBS0FJUUlnaHJJZ0pCSUU0RVFDQUVLQUFBSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUVESUFBb0FnZ2lBa1VOQVNBRElBSjBJQVF0QUFSQkNDQUNhM1p5SVFNTUFRc2dBa0VCU0FSQURBRUxJQVF0QUFBZ0FDZ0NDQ0lGUVJocUlnWjBJUU1nQWlBRmFrRjRhaUlDUVFGSURRQURRQ0FFTFFBQklBWkJlR29pQm5RZ0EzSWhBeUFDUVFoS0lRVWdCRUVCYWlFRUlBSkJlR29oQWlBRkRRQUxDeUFBSUFFZ0NHb2lCRFlDRUNBQUlBUkJCM0UyQWdoQmZ5RUNJQVFnQjAwRWZ5QUFJQUFvQWdBZ0JFRURkbW8yQWdRZ0EwRWdJQUZyZGdWQmZ3c0xxZzBCQjM4Q1FDQUFSUTBBSUFCQmVHb2lBeUFBUVh4cUtBSUFJZ0ZCZUhFaUFHb2hCUUpBSUFGQkFYRU5BQ0FCUVFOeFJRMEJJQU1nQXlnQ0FDSUNheUlEUWNUQUFDZ0NBQ0lFU1EwQklBQWdBbW9oQUNBRFFjakFBQ2dDQUVjRVFDQUNRZjhCVFFSQUlBTW9BZ2dpQkNBQ1FRTjJJZ0pCQTNSQjNNQUFha2NhSUFRZ0F5Z0NEQ0lCUmdSQVFiVEFBRUcwd0FBb0FnQkJmaUFDZDNFMkFnQU1Bd3NnQkNBQk5nSU1JQUVnQkRZQ0NBd0NDeUFES0FJWUlRWUNRQ0FESUFNb0Fnd2lBVWNFUUNBRUlBTW9BZ2dpQWswRVFDQUNLQUlNR2dzZ0FpQUJOZ0lNSUFFZ0FqWUNDQXdCQ3dKQUlBTkJGR29pQWlnQ0FDSUVEUUFnQTBFUWFpSUNLQUlBSWdRTkFFRUFJUUVNQVFzRFFDQUNJUWNnQkNJQlFSUnFJZ0lvQWdBaUJBMEFJQUZCRUdvaEFpQUJLQUlRSWdRTkFBc2dCMEVBTmdJQUN5QUdSUTBCQWtBZ0F5QURLQUljSWdKQkFuUkI1TUlBYWlJRUtBSUFSZ1JBSUFRZ0FUWUNBQ0FCRFFGQnVNQUFRYmpBQUNnQ0FFRitJQUozY1RZQ0FBd0RDeUFHUVJCQkZDQUdLQUlRSUFOR0cyb2dBVFlDQUNBQlJRMENDeUFCSUFZMkFoZ2dBeWdDRUNJQ0JFQWdBU0FDTmdJUUlBSWdBVFlDR0FzZ0F5Z0NGQ0lDUlEwQklBRWdBallDRkNBQ0lBRTJBaGdNQVFzZ0JTZ0NCQ0lCUVFOeFFRTkhEUUJCdk1BQUlBQTJBZ0FnQlNBQlFYNXhOZ0lFSUFNZ0FFRUJjallDQkNBQUlBTnFJQUEyQWdBUEN5QUZJQU5ORFFBZ0JTZ0NCQ0lCUVFGeFJRMEFBa0FnQVVFQ2NVVUVRQ0FGUWN6QUFDZ0NBRVlFUUVITXdBQWdBellDQUVIQXdBQkJ3TUFBS0FJQUlBQnFJZ0EyQWdBZ0F5QUFRUUZ5TmdJRUlBTkJ5TUFBS0FJQVJ3MERRYnpBQUVFQU5nSUFRY2pBQUVFQU5nSUFEd3NnQlVISXdBQW9BZ0JHQkVCQnlNQUFJQU0yQWdCQnZNQUFRYnpBQUNnQ0FDQUFhaUlBTmdJQUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFDUUNBQlFmOEJUUVJBSUFVb0Fnd2hBaUFGS0FJSUlnUWdBVUVEZGlJQlFRTjBRZHpBQUdvaUIwY0VRRUhFd0FBb0FnQWFDeUFDSUFSR0JFQkJ0TUFBUWJUQUFDZ0NBRUYrSUFGM2NUWUNBQXdDQ3lBQ0lBZEhCRUJCeE1BQUtBSUFHZ3NnQkNBQ05nSU1JQUlnQkRZQ0NBd0JDeUFGS0FJWUlRWUNRQ0FGSUFVb0Fnd2lBVWNFUUVIRXdBQW9BZ0FnQlNnQ0NDSUNUUVJBSUFJb0Fnd2FDeUFDSUFFMkFnd2dBU0FDTmdJSURBRUxBa0FnQlVFVWFpSUNLQUlBSWdRTkFDQUZRUkJxSWdJb0FnQWlCQTBBUVFBaEFRd0JDd05BSUFJaEJ5QUVJZ0ZCRkdvaUFpZ0NBQ0lFRFFBZ0FVRVFhaUVDSUFFb0FoQWlCQTBBQ3lBSFFRQTJBZ0FMSUFaRkRRQUNRQ0FGSUFVb0Fod2lBa0VDZEVIa3dnQnFJZ1FvQWdCR0JFQWdCQ0FCTmdJQUlBRU5BVUc0d0FCQnVNQUFLQUlBUVg0Z0FuZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ0lFUUNBQklBSTJBaEFnQWlBQk5nSVlDeUFGS0FJVUlnSkZEUUFnQVNBQ05nSVVJQUlnQVRZQ0dBc2dBeUFBUVFGeU5nSUVJQUFnQTJvZ0FEWUNBQ0FEUWNqQUFDZ0NBRWNOQVVHOHdBQWdBRFlDQUE4TElBVWdBVUYrY1RZQ0JDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFDeUFBUWY4QlRRUkFJQUJCQTNZaUFVRURkRUhjd0FCcUlRQUNmMEcwd0FBb0FnQWlBa0VCSUFGMElnRnhSUVJBUWJUQUFDQUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBaUFBSUFNMkFnZ2dBaUFETmdJTUlBTWdBRFlDRENBRElBSTJBZ2dQQ3lBRFFnQTNBaEFnQXdKL1FRQWdBRUVJZGlJQlJRMEFHa0VmSUFCQi8vLy9CMHNOQUJvZ0FTQUJRWUQrUDJwQkVIWkJDSEVpQVhRaUFpQUNRWURnSDJwQkVIWkJCSEVpQW5RaUJDQUVRWUNBRDJwQkVIWkJBbkVpQkhSQkQzWWdBU0FDY2lBRWNtc2lBVUVCZENBQUlBRkJGV3AyUVFGeGNrRWNhZ3NpQWpZQ0hDQUNRUUowUWVUQ0FHb2hBUUpBQWtBQ1FFRzR3QUFvQWdBaUJFRUJJQUowSWdkeFJRUkFRYmpBQUNBRUlBZHlOZ0lBSUFFZ0F6WUNBQ0FESUFFMkFoZ01BUXNnQUVFQVFSa2dBa0VCZG1zZ0FrRWZSaHQwSVFJZ0FTZ0NBQ0VCQTBBZ0FTSUVLQUlFUVhoeElBQkdEUUlnQWtFZGRpRUJJQUpCQVhRaEFpQUVJQUZCQkhGcUlnZEJFR29vQWdBaUFRMEFDeUFISUFNMkFoQWdBeUFFTmdJWUN5QURJQU0yQWd3Z0F5QUROZ0lJREFFTElBUW9BZ2dpQUNBRE5nSU1JQVFnQXpZQ0NDQURRUUEyQWhnZ0F5QUVOZ0lNSUFNZ0FEWUNDQXRCMU1BQVFkVEFBQ2dDQUVGL2FpSUFOZ0lBSUFBTkFFSDh3d0FoQXdOQUlBTW9BZ0FpQUVFSWFpRURJQUFOQUF0QjFNQUFRWDgyQWdBTEMzUUJBbjhqQUVFUWF5SUNKQUFnQWtFQU5nSU1JQUFnQWtFTWFoQUNJUUFDZnlBQ0tBSU1JZ05CZjBZRVFFRUJJQUJGRFFFYUlBRkJnSUNBZ0hnMkFnQkJBQXdCQzBFQklBQU5BQm9nQVNBRFFRRnFRUUYySWdGQkFDQUJheUFEUVFGeEd6WUNBRUVBQ3lFQUlBSkJFR29rQUNBQUM4Y0xBUlIvSUFGQm9EMXFMUUFBUVF4c0lnWkIxRHhxS0FJQUlRVWdCa0hRUEdvb0FnQWdBVUdRUEdvdEFBQWlCM1FoQkNBQ1JRUkFJQUFnQUNnQ0FDQUViRFlDQUFzZ0JTQUhkQ0VCQWtBQ1FDQURRWnovQTNFRVFDQUFJQVpCMkR4cUtBSUFJQWQwSWdNZ0FDZ0NQR3cyQWp3Z0FDQUFLQUk0SUFGc05nSTRRUUVoQWlBQUlBQW9BaXdnQkd3aUJ5QUFLQUlNSUFSc0lnVnFJZ2tnQUNnQ0lDQUJiQ0lLSUFBb0FqUWdBV3dpRDBFQmRXb2lFR3NpQmpZQ0xDQUFLQUlvSVFnZ0FDQUZJQWRySWdVZ0NrRUJkU0FQYXlJS2F5SUhOZ0lvSUFBb0FpUWhEaUFBSUFVZ0Ntb2lCVFlDSkNBQUlBQW9BaHdnQVd3aUR5QUFLQUlJSUFGc0lndHFJaE1nQUNnQ0VDQURiQ0lSSUFBb0FqQWdBMndpREVFQmRXb2lGV3NpQ2pZQ0hDQUFLQUlZSVEwZ0FDQUxJQTlySWdzZ0VVRUJkU0FNYXlJUmF5SVBOZ0lZSUFBb0FoUWhEQ0FBSUFzZ0VXb2lDellDRkNBQUlBUWdER3dpQkNBQUtBSUFJZ3hxSWhRZ0FDZ0NCQ0FCYkNJU0lBRWdEV3dpRFVFQmRXb2lGbXNpRVRZQ0RDQUFJQXdnQkdzaUJDQVNRUUYxSUExcklnMXJJZ3cyQWdnZ0FDQUVJQTFxSWcwMkFnUWdBQ0FCSUE1c0lnUWdBQ2dDT0NJT2F5SVNJQU1nQ0d3aUNFRUJkU0FBS0FJOEloZHJJZ05ySWdFMkFqZ2dBQ0FESUJKcUlnTTJBalFnQUNBRUlBNXFJZzRnRjBFQmRTQUlhaUlJYXlJRU5nSThJQUFnRkNBV2FpSVVJQWtnRUdvaUVHdEJJR29pRWlBSUlBNXFJZ2tnRXlBVmFpSUlRUUYxSWc1cmFrRUdkU0lUTmdJZ0lBQWdFaUFPSUFscmFrRUdkU0lPTmdJUUlBQWdFQ0FVYWtFZ2FpSVFJQWxCQVhVZ0NHb2lDV3RCQm5VaUNEWUNNQ0FBSUFrZ0VHcEJCblVpQ1RZQ0FDQUpRWUFFYWlBT1FZQUVhbkpCL3dkTERRSWdDRUdBQkdvZ0UwR0FCR3B5UWY4SFN3MENJQUFnQlNBTmFrRWdhaUlKSUFOQkFYVWdDMm9pRUd0QkJuVWlDRFlDTkNBQUlBMGdCV3RCSUdvaUJTQURJQXRCQVhVaUMydHFRUVoxSWcwMkFpUWdBQ0FGSUFzZ0EydHFRUVoxSWdNMkFoUWdBQ0FKSUJCcVFRWjFJZ1UyQWdRZ0JVR0FCR29nQTBHQUJHcHlRZjhIU3cwQ0lBaEJnQVJxSUExQmdBUnFja0gvQjBzTkFpQUFJQWNnREdwQklHb2lBeUFCUVFGMUlBOXFJZ1ZyUVFaMUlnczJBamdnQUNBTUlBZHJRU0JxSWdjZ0FTQVBRUUYxSWc5cmFrRUdkU0lNTmdJb0lBQWdCeUFQSUFGcmFrRUdkU0lCTmdJWUlBQWdBeUFGYWtFR2RTSUROZ0lJSUFOQmdBUnFJQUZCZ0FScWNrSC9CMHNOQWlBTFFZQUVhaUFNUVlBRWFuSkIvd2RMRFFJZ0FDQUdJQkZxUVNCcUlnRWdCRUVCZFNBS2FpSURhMEVHZFNJSE5nSThJQUFnRVNBR2EwRWdhaUlHSUFRZ0NrRUJkU0lGYTJwQkJuVWlDallDTENBQUlBWWdCU0FFYTJwQkJuVWlCRFlDSENBQUlBRWdBMnBCQm5VaUFEWUNEQ0FBUVlBRWFpQUVRWUFFYW5KQi93ZExEUUlnQjBHQUJHb2dDa0dBQkdweVFmOEhUUTBCREFJTElBTkI0Z0J4UlFSQVFRRWhBaUFBS0FJQVFTQnFRUVoxSWdGQmdBUnFRZjhIU3cwQ0lBQWdBVFlDT0NBQUlBRTJBandnQUNBQk5nSTBJQUFnQVRZQ01DQUFJQUUyQWl3Z0FDQUJOZ0lvSUFBZ0FUWUNKQ0FBSUFFMkFpQWdBQ0FCTmdJY0lBQWdBVFlDR0NBQUlBRTJBaFFnQUNBQk5nSVFJQUFnQVRZQ0RDQUFJQUUyQWdnZ0FDQUJOZ0lFSUFBZ0FUWUNBQXdCQzBFQklRSWdBQ0FBS0FJRUlBRnNJZ2NnQUNnQ0dDQUJiQ0lHUVFGMWFpSURJQUFvQWdBaUJTQUFLQUlVSUFSc0lnUnFJZ3BxUVNCcVFRWjFJZ0UyQWpBZ0FDQUtJQU5yUVNCcVFRWjFJZ00yQWd3Z0FDQUZJQVJySWdVZ0JpQUhRUUYxSWdkcmFrRWdha0VHZFNJRU5nSUlJQUFnQnlBR2F5QUZha0VnYWtFR2RTSUdOZ0lFSUFBZ0FUWUNBQ0FBSUFFMkFpQWdBQ0FHTmdJMElBQWdBVFlDRUNBQUlBWTJBaVFnQUNBRU5nSTRJQUFnQmpZQ0ZDQUFJQVEyQWlnZ0FDQUROZ0k4SUFBZ0JEWUNHQ0FBSUFNMkFpd2dBQ0FETmdJY0lBTkJnQVJxSUFGQmdBUnFJQVJCZ0FScUlBWkJnQVJxY25KeVFmOEhTdzBCQzBFQUlRSUxJQUlMOHdJQ0FuOEJmZ0pBSUFKRkRRQWdBQ0FDYWlJRFFYOXFJQUU2QUFBZ0FDQUJPZ0FBSUFKQkEwa05BQ0FEUVg1cUlBRTZBQUFnQUNBQk9nQUJJQU5CZldvZ0FUb0FBQ0FBSUFFNkFBSWdBa0VIU1EwQUlBTkJmR29nQVRvQUFDQUFJQUU2QUFNZ0FrRUpTUTBBSUFCQkFDQUFhMEVEY1NJRWFpSURJQUZCL3dGeFFZR0NoQWhzSWdFMkFnQWdBeUFDSUFSclFYeHhJZ1JxSWdKQmZHb2dBVFlDQUNBRVFRbEpEUUFnQXlBQk5nSUlJQU1nQVRZQ0JDQUNRWGhxSUFFMkFnQWdBa0YwYWlBQk5nSUFJQVJCR1VrTkFDQURJQUUyQWhnZ0F5QUJOZ0lVSUFNZ0FUWUNFQ0FESUFFMkFnd2dBa0Z3YWlBQk5nSUFJQUpCYkdvZ0FUWUNBQ0FDUVdocUlBRTJBZ0FnQWtGa2FpQUJOZ0lBSUFRZ0EwRUVjVUVZY2lJRWF5SUNRU0JKRFFBZ0FhMGlCVUlnaGlBRmhDRUZJQU1nQkdvaEFRTkFJQUVnQlRjREdDQUJJQVUzQXhBZ0FTQUZOd01JSUFFZ0JUY0RBQ0FCUVNCcUlRRWdBa0ZnYWlJQ1FSOUxEUUFMQ3lBQUMvSURBUU4vSUFFb0FnQWlBMEgvLy84SFJ3UkFJQUVvQWdRaEJDQUFJQUlnQWtFRGNTQUNRUkJKSWdJYlFRSjBJZ1ZCOENscUtBSUFRUkJCQ0NBQ0d5SUNiR29nQlVHd0tXb29BZ0JxSWdBZ0F5QUFMUUFBYWtHd0xtb3RBQUE2QUFBZ0FTZ0NDQ0VESUFBZ0JDQUFMUUFCYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VFSUFBZ0F5QUFMUUFDYWtHd0xtb3RBQUE2QUFJZ0FDQUVJQUF0QUFOcVFiQXVhaTBBQURvQUF5QUJLQUlVSVFNZ0FDQUNhaUlBSUFFb0FoQWdBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BaGdoQkNBQUlBTWdBQzBBQVdwQnNDNXFMUUFBT2dBQklBRW9BaHdoQXlBQUlBUWdBQzBBQW1wQnNDNXFMUUFBT2dBQ0lBQWdBeUFBTFFBRGFrR3dMbW90QUFBNkFBTWdBU2dDSkNFRElBQWdBbW9pQUNBQktBSWdJQUF0QUFCcVFiQXVhaTBBQURvQUFDQUJLQUlvSVFRZ0FDQURJQUF0QUFGcVFiQXVhaTBBQURvQUFTQUJLQUlzSVFNZ0FDQUVJQUF0QUFKcVFiQXVhaTBBQURvQUFpQUFJQU1nQUMwQUEycEJzQzVxTFFBQU9nQURJQUVvQWpRaEF5QUFJQUpxSWdBZ0FTZ0NNQ0FBTFFBQWFrR3dMbW90QUFBNkFBQWdBU2dDT0NFQ0lBQWdBeUFBTFFBQmFrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQWdBaUFBTFFBQ2FrR3dMbW90QUFBNkFBSWdBQ0FCSUFBdEFBTnFRYkF1YWkwQUFEb0FBd3NMMHhBQkRIOGpBRUdBQVdzaUNpUUFJQUFRRHlFRVFRRWhCUUpBQWtBQ2Z5QUNRUUZOQkVBZ0JFRUFTQTBDSUFSQkdYWkIvZ0J4UVlBSWFpQUVRWUNBZ09BQVR3MEJHaUFFUVJWMlFmNFBjVUhBQ0dvZ0JFR0FnSUFJVHcwQkdpQUVRUkYyUWY3L0FYRkJrQWxxSUFSQmdJQ0FBVThOQVJvZ0JFRVFka0VCZEVHUUNtb01BUXNnQWtFRFRRUkFJQVJCZjB3RVFFRUNRYUlRSUFSQmdJQ0FnQVJ4R3lFRkRBTUxJQVJCR1haQi9nQnhRZEFLYWlBRVFZQ0FnSUFCVHcwQkdpQUVRUloyUWY0SGNVR1FDMm9nQkVHQWdJQVFUdzBCR2lBRVFSRjJRZjcvQVhGQjBBdHFEQUVMSUFKQkIwMEVRQ0FFUVJwMklnSkJlR3BCT0VrRVFDQUNRUUYwUWRBTmFnd0NDeUFFUVJWMlFmNFBjVUhRRG1vTUFRc2dCRUVaZGtIK0FIRkIwQkJxSUFKQkVFME5BQm9nQkVFZGRpSUNCRUFnQWtFQmRFSFFFV29NQVFzZ0JFRVhka0grQTNGQjRCRnFDeThCQUNJRkRRQkJBU0VMREFFTFFRRWhDeUFGUVF0Mklna2dBMHNOQUVFZ0lBVkJIM0VpQm1zaEFnSkFJQWxGQkVBTUFRc2dCQ0FHZENFRUFrQWdCVUVGZGtFL2NTSU1SUVJBREFFTElBSWdERWtFUUNBQUlBWVFDMEYvUmcwRElBQVFEeUVFUVNBaEFnc2dCQ0FNZENFR1FRRWdERUYvYW5RaEJ5QUVRU0FnREd0MklRUURRQ0FLUVVCcklBaEJBblJxUVg5QkFTQUVJQWR4R3pZQ0FDQUlRUUZxSVFnZ0IwRUJkaUlIRFFBTElBSWdER3NoQWlBR0lRUUxJQWdnQ1VrRVFDQU1RUU5KSWc4Z0JVSC9yd0ZMY1NFRkEwQWdBa0VQVFFSQUlBQkJJQ0FDYXhBTFFYOUdCRUFNQlFzZ0FCQVBJUVJCSUNFQ0MwRUFJUVlDUUFKQUFuOENRQ0FFUVFCSURRQkJBU0VHSUFSQi8vLy8vd05MRFFCQkFpRUdJQVJCLy8vLy93RkxEUUJCQXlFR0lBUkIvLy8vL3dCTERRQkJCQ0VHSUFSQi8vLy9QMHNOQUVFRklRWWdCRUgvLy84ZlN3MEFRUVloQmlBRVFmLy8vdzlMRFFCQkJ5RUdJQVJCLy8vL0Iwc05BRUVJSVFZZ0JFSC8vLzhEU3cwQVFRa2hCaUFFUWYvLy93RkxEUUJCQ2lFR0lBUkIvLy8vQUVzTkFFRUxJUVlnQkVILy96OUxEUUJCRENFR0lBUkIvLzhmU3cwQVFRMGhCaUFFUWYvL0Qwc05BQUovQWtBZ0JFSC8vd2ROQkVBZ0JFR0FnSHh4UVlDQUJFWU5BUXdLQ3lBRlFRUWdCUnNoQmlBRVFROTBJUVJCRGlFSElBSkJjV29NQVFzZ0JVRUJJQVViSVFVZ0JFRVFkQ0VFUVF3aEJrRVBJUWNnQWtGd2Fnc2hBaUFISUFWMElRY2dCVVVNQVFzZ0JpQUZkQ0VIUVFFaERpQUNJQVpCQVdvaUJtc2hBaUFFSUFaMElRUWdCVVVOQVNBRklRWkJBQXNoRGlBQ0lBWlBCSDhnQkFVZ0FFRWdJQUpyRUF0QmYwWUVRQXdIQzBFZ0lRSWdBQkFQQ3lFTklBSWdCbXNoQWlBTklBWjBJUVFnRFVFZ0lBWnJkaUFIYWlFSERBRUxRUUFoQlFzZ0NrRkFheUFJUVFKMGFrRUFJQWRCQW1vZ0J5QUlJQXhHR3lBSElBOGJJZzFCQW1wQkFYWWlCbXNnQmlBTlFRRnhHellDQUVFQklBVWdEaHNpQlNBRlFRWkpJQVpCQXlBRlFYOXFkRXB4YWlFRklBaEJBV29pQ0NBSlJ3MEFDd3RCQUNFSEFrQWdDU0FEVHdSQVFRQWhDQXdCQ3dKQUlBSkJDRXNFUUNBQ0lRVU1BUXRCSUNFRklBQkJJQ0FDYXhBTFFYOUdEUU1nQUJBUElRUUxBa0FDUUFKL0FrQWdBMEVFUndSQUlBbEJmMm9pQWtFTlN3MERBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBa0VCYXc0TkFBRUNBd1FGQmdjSUNRb0xEQTRMSUFSQkduWkI0QkpxREE0TElBUkJHblpCb0JOcURBMExJQVJCRzNaQjRCTnFEQXdMSUFSQkczWkJnQlJxREFzTElBUkJHblpCb0JScURBb0xJQVJCR25aQjRCUnFEQWtMSUFSQkduWkJvQlZxREFnTElBUkJHblpCNEJWcURBY0xJQVJCRzNaQm9CWnFEQVlMSUFSQkhIWkJ3QlpxREFVTElBUkJISFpCMEJacURBUUxJQVJCSFhaQjRCWnFEQU1MSUFSQkhuWkI2QlpxREFJTElBUkJBRWdFUUVFQklRSU1CQXRCRVNFQ0lBbEJBMFlOQTBFU0lRSWdCRUgvLy8vL0Ewc05BMEVpSVFJZ0NVRUNSZzBEUVNOQk15QUVRZi8vLy84QlN4c2hBZ3dEQ3lBRVFSdDJRYUFTYWlBRVFSZDJRY0FTYWlBRVFmLy8vLzhBU3hzTExRQUFJZ0lOQVF3RUMwRVJRUUVnQkVFQVNCc2hBZ3NnQWtFRWRpRUlJQVVnQWtFUGNTSURheUVDSUFRZ0EzUWhCQXNnQ1VGL2FpSURCRUFEUUFKL0lBZ0VRQ0FDUVFwTkJFQWdBRUVnSUFKckVBdEJmMFlFUUF3SEN5QUFFQThoQkVFZ0lRSUxBa0FDZndKQUlBaEJmMm9pQlVFRlRRUkFBa0FDUUFKQUFrQUNRQ0FGUVFGckRnVUFBUUlEQkFZTElBUkJIblpCN2hacURBWUxJQVJCSG5aQjhoWnFEQVVMSUFSQkhYWkI5aFpxREFRTElBUkJIWFpCL2hacURBTUxJQVJCSFhaQmhoZHFEQUlMQW45Qjh3QWdCRUVaZGtId0FIRnJJQVJCZ0lDQWdBSlBEUUFhUWZRQUlBUkIvLy8vL3dCTERRQWFRWVVCSUFSQi8vLy9QMHNOQUJwQmxnRWdCRUgvLy84ZlN3MEFHa0duQVNBRVFmLy8vdzlMRFFBYVFiZ0JJQVJCLy8vL0Iwc05BQnBCeVFFZ0JFSC8vLzhEU3cwQUdrSGFBU0FFUWYvLy93RkxEUUFhUVFCQjZ3RWdCRUdBZ0lBQlNSc0xJZ1ZCQkhZZ0NFME5BZ3dJQ3lBRVFSOTJRZXdXYWdzdEFBQWhCUXNnQlVVRVFBd0dDeUFLSUFkQkFuUnFJQVZCQkhZaUJrRUJhallDQUNBQ0lBVkJEM0VpQldzaEFpQUVJQVYwSVFRZ0NDQUdhd3dCQ3lBS0lBZEJBblJxUVFFMkFnQkJBQXNoQ0NBSFFRRnFJZ2NnQTBjTkFBc2dBU0FJUVFKMGFpQUtRVUJySUFOQkFuUnFLQUlBTmdJQUlBbEJmbW9oQlVFQklBaDBJUWNEUUNBQklBb2dCU0lEUVFKMElnVnFLQUlBSUFocUlnaEJBblJxSUFwQlFHc2dCV29vQWdBMkFnQWdBMEYvYWlFRlFRRWdDSFFnQjNJaEJ5QUREUUFMREFFTElBRWdDRUVDZEdvZ0NrRkFheUFEUVFKMGFpZ0NBRFlDQUVFQklBaDBJUWNMSUFCQklDQUNheEFMRFFBZ0IwRVFkQ0FKUVFSMGNpRUxDeUFLUVlBQmFpUUFJQXNMelM0QkMzOGpBRUVRYXlJTEpBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCdE1BQUtBSUFJZ1pCRUNBQVFRdHFRWGh4SUFCQkMwa2JJZ1ZCQTNZaUFIWWlBVUVEY1FSQUlBRkJmM05CQVhFZ0FHb2lBa0VEZENJRVFlVEFBR29vQWdBaUFVRUlhaUVBQWtBZ0FTZ0NDQ0lESUFSQjNNQUFhaUlFUmdSQVFiVEFBQ0FHUVg0Z0FuZHhOZ0lBREFFTFFjVEFBQ2dDQUJvZ0F5QUVOZ0lNSUFRZ0F6WUNDQXNnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1EQXNnQlVHOHdBQW9BZ0FpQ0UwTkFTQUJCRUFDUUVFQ0lBQjBJZ0pCQUNBQ2EzSWdBU0FBZEhFaUFFRUFJQUJyY1VGL2FpSUFJQUJCREhaQkVIRWlBSFlpQVVFRmRrRUljU0lDSUFCeUlBRWdBbllpQUVFQ2RrRUVjU0lCY2lBQUlBRjJJZ0JCQVhaQkFuRWlBWElnQUNBQmRpSUFRUUYyUVFGeElnRnlJQUFnQVhacUlnSkJBM1FpQTBIa3dBQnFLQUlBSWdFb0FnZ2lBQ0FEUWR6QUFHb2lBMFlFUUVHMHdBQWdCa0YrSUFKM2NTSUdOZ0lBREFFTFFjVEFBQ2dDQUJvZ0FDQUROZ0lNSUFNZ0FEWUNDQXNnQVVFSWFpRUFJQUVnQlVFRGNqWUNCQ0FCSUFWcUlnY2dBa0VEZENJQ0lBVnJJZ05CQVhJMkFnUWdBU0FDYWlBRE5nSUFJQWdFUUNBSVFRTjJJZ1JCQTNSQjNNQUFhaUVCUWNqQUFDZ0NBQ0VDQW44Z0JrRUJJQVIwSWdSeFJRUkFRYlRBQUNBRUlBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEJDQUJJQUkyQWdnZ0JDQUNOZ0lNSUFJZ0FUWUNEQ0FDSUFRMkFnZ0xRY2pBQUNBSE5nSUFRYnpBQUNBRE5nSUFEQXdMUWJqQUFDZ0NBQ0lLUlEwQklBcEJBQ0FLYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQWlBQWNpQUJJQUoySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJZ0VvQWdSQmVIRWdCV3NoQXlBQklRSURRQUpBSUFJb0FoQWlBRVVFUUNBQ0tBSVVJZ0JGRFFFTElBQW9BZ1JCZUhFZ0JXc2lBaUFESUFJZ0Ewa2lBaHNoQXlBQUlBRWdBaHNoQVNBQUlRSU1BUXNMSUFFb0FoZ2hDU0FCSUFFb0Fnd2lCRWNFUUVIRXdBQW9BZ0FnQVNnQ0NDSUFUUVJBSUFBb0Fnd2FDeUFBSUFRMkFnd2dCQ0FBTmdJSURBc0xJQUZCRkdvaUFpZ0NBQ0lBUlFSQUlBRW9BaEFpQUVVTkF5QUJRUkJxSVFJTEEwQWdBaUVISUFBaUJFRVVhaUlDS0FJQUlnQU5BQ0FFUVJCcUlRSWdCQ2dDRUNJQURRQUxJQWRCQURZQ0FBd0tDMEYvSVFVZ0FFRy9mMHNOQUNBQVFRdHFJZ0JCZUhFaEJVRzR3QUFvQWdBaUIwVU5BRUVBSUFWcklRSUNRQUpBQWtBQ2YwRUFJQUJCQ0hZaUFFVU5BQnBCSHlBRlFmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnTWdBMEdBZ0E5cVFSQjJRUUp4SWdOMFFROTJJQUFnQVhJZ0EzSnJJZ0JCQVhRZ0JTQUFRUlZxZGtFQmNYSkJIR29MSWdoQkFuUkI1TUlBYWlnQ0FDSURSUVJBUVFBaEFBd0JDeUFGUVFCQkdTQUlRUUYyYXlBSVFSOUdHM1FoQVVFQUlRQURRQUpBSUFNb0FnUkJlSEVnQldzaUJpQUNUdzBBSUFNaEJDQUdJZ0lOQUVFQUlRSWdBeUVBREFNTElBQWdBeWdDRkNJR0lBWWdBeUFCUVIxMlFRUnhhaWdDRUNJRFJoc2dBQ0FHR3lFQUlBRWdBMEVBUjNRaEFTQUREUUFMQ3lBQUlBUnlSUVJBUVFJZ0NIUWlBRUVBSUFCcmNpQUhjU0lBUlEwRElBQkJBQ0FBYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQXlBQWNpQUJJQU4ySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJRElBSkpJUUVnQXlBQ0lBRWJJUUlnQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBQ1FiekFBQ2dDQUNBRmEwOE5BQ0FFS0FJWUlRZ2dCQ0FFS0FJTUlnRkhCRUJCeE1BQUtBSUFJQVFvQWdnaUFFMEVRQ0FBS0FJTUdnc2dBQ0FCTmdJTUlBRWdBRFlDQ0F3SkN5QUVRUlJxSWdNb0FnQWlBRVVFUUNBRUtBSVFJZ0JGRFFNZ0JFRVFhaUVEQ3dOQUlBTWhCaUFBSWdGQkZHb2lBeWdDQUNJQURRQWdBVUVRYWlFRElBRW9BaEFpQUEwQUN5QUdRUUEyQWdBTUNBdEJ2TUFBS0FJQUlnRWdCVThFUUVISXdBQW9BZ0FoQUFKQUlBRWdCV3NpQWtFUVR3UkFRYnpBQUNBQ05nSUFRY2pBQUNBQUlBVnFJZ00yQWdBZ0F5QUNRUUZ5TmdJRUlBQWdBV29nQWpZQ0FDQUFJQVZCQTNJMkFnUU1BUXRCeU1BQVFRQTJBZ0JCdk1BQVFRQTJBZ0FnQUNBQlFRTnlOZ0lFSUFBZ0FXb2lBU0FCS0FJRVFRRnlOZ0lFQ3lBQVFRaHFJUUFNQ2d0QndNQUFLQUlBSWdFZ0JVc0VRRUhBd0FBZ0FTQUZheUlCTmdJQVFjekFBRUhNd0FBb0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQW9MUVFBaEFDQUZRUzlxSWdRQ2YwR014QUFvQWdBRVFFR1V4QUFvQWdBTUFRdEJtTVFBUW44M0FnQkJrTVFBUW9DZ2dJQ0FnQVEzQWdCQmpNUUFJQXRCREdwQmNIRkIyS3JWcWdWek5nSUFRYURFQUVFQU5nSUFRZkREQUVFQU5nSUFRWUFnQ3lJQ2FpSUdRUUFnQW1zaUIzRWlBaUFGVFEwSlFlekRBQ2dDQUNJREJFQkI1TU1BS0FJQUlnZ2dBbW9pQ1NBSVRRMEtJQWtnQTBzTkNndEI4TU1BTFFBQVFRUnhEUVFDUUFKQVFjekFBQ2dDQUNJREJFQkI5TU1BSVFBRFFDQUFLQUlBSWdnZ0EwMEVRQ0FJSUFBb0FnUnFJQU5MRFFNTElBQW9BZ2dpQUEwQUN3dEJBQkFUSWdGQmYwWU5CU0FDSVFaQmtNUUFLQUlBSWdCQmYyb2lBeUFCY1FSQUlBSWdBV3NnQVNBRGFrRUFJQUJyY1dvaEJnc2dCaUFGVFEwRklBWkIvdi8vL3dkTERRVkI3TU1BS0FJQUlnQUVRRUhrd3dBb0FnQWlBeUFHYWlJSElBTk5EUVlnQnlBQVN3MEdDeUFHRUJNaUFDQUJSdzBCREFjTElBWWdBV3NnQjNFaUJrSCsvLy8vQjBzTkJDQUdFQk1pQVNBQUtBSUFJQUFvQWdScVJnMERJQUVoQUFzQ1FDQUZRVEJxSUFaTkRRQWdBRUYvUmcwQVFaVEVBQ2dDQUNJQklBUWdCbXRxUVFBZ0FXdHhJZ0ZCL3YvLy93ZExCRUFnQUNFQkRBY0xJQUVRRTBGL1J3UkFJQUVnQm1vaEJpQUFJUUVNQnd0QkFDQUdheEFUR2d3RUN5QUFJZ0ZCZjBjTkJRd0RDMEVBSVFRTUJ3dEJBQ0VCREFVTElBRkJmMGNOQWd0QjhNTUFRZkREQUNnQ0FFRUVjallDQUFzZ0FrSCsvLy8vQjBzTkFTQUNFQk1pQVVFQUVCTWlBRThOQVNBQlFYOUdEUUVnQUVGL1JnMEJJQUFnQVdzaUJpQUZRU2hxVFEwQkMwSGt3d0JCNU1NQUtBSUFJQVpxSWdBMkFnQWdBRUhvd3dBb0FnQkxCRUJCNk1NQUlBQTJBZ0FMQWtBQ1FBSkFRY3pBQUNnQ0FDSURCRUJCOU1NQUlRQURRQ0FCSUFBb0FnQWlBaUFBS0FJRUlnUnFSZzBDSUFBb0FnZ2lBQTBBQ3d3Q0MwSEV3QUFvQWdBaUFFRUFJQUVnQUU4YlJRUkFRY1RBQUNBQk5nSUFDMEVBSVFCQitNTUFJQVkyQWdCQjlNTUFJQUUyQWdCQjFNQUFRWDgyQWdCQjJNQUFRWXpFQUNnQ0FEWUNBRUdBeEFCQkFEWUNBQU5BSUFCQkEzUWlBa0hrd0FCcUlBSkIzTUFBYWlJRE5nSUFJQUpCNk1BQWFpQUROZ0lBSUFCQkFXb2lBRUVnUncwQUMwSEF3QUFnQmtGWWFpSUFRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlDYXlJRE5nSUFRY3pBQUNBQklBSnFJZ0kyQWdBZ0FpQURRUUZ5TmdJRUlBQWdBV3BCS0RZQ0JFSFF3QUJCbk1RQUtBSUFOZ0lBREFJTElBQXRBQXhCQ0hFTkFDQUJJQU5ORFFBZ0FpQURTdzBBSUFBZ0JDQUdhallDQkVITXdBQWdBMEY0SUFOclFRZHhRUUFnQTBFSWFrRUhjUnNpQUdvaUFUWUNBRUhBd0FCQndNQUFLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRZERBQUVHY3hBQW9BZ0EyQWdBTUFRc2dBVUhFd0FBb0FnQWlCRWtFUUVIRXdBQWdBVFlDQUNBQklRUUxJQUVnQm1vaEFrSDB3d0FoQUFKQUFrQUNRQUpBQWtBQ1FBTkFJQUlnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEI5TU1BSVFBRFFDQUFLQUlBSWdJZ0EwMEVRQ0FDSUFBb0FnUnFJZ1FnQTBzTkF3c2dBQ2dDQ0NFQURBQUFDd0FMSUFBZ0FUWUNBQ0FBSUFBb0FnUWdCbW8yQWdRZ0FVRjRJQUZyUVFkeFFRQWdBVUVJYWtFSGNSdHFJZ2tnQlVFRGNqWUNCQ0FDUVhnZ0FtdEJCM0ZCQUNBQ1FRaHFRUWR4RzJvaUFTQUpheUFGYXlFQUlBVWdDV29oQnlBQklBTkdCRUJCek1BQUlBYzJBZ0JCd01BQVFjREFBQ2dDQUNBQWFpSUFOZ0lBSUFjZ0FFRUJjallDQkF3REN5QUJRY2pBQUNnQ0FFWUVRRUhJd0FBZ0J6WUNBRUc4d0FCQnZNQUFLQUlBSUFCcUlnQTJBZ0FnQnlBQVFRRnlOZ0lFSUFBZ0Iyb2dBRFlDQUF3REN5QUJLQUlFSWdKQkEzRkJBVVlFUUNBQ1FYaHhJUW9DUUNBQ1FmOEJUUVJBSUFFb0FnZ2lBeUFDUVFOMklnUkJBM1JCM01BQWFrY2FJQU1nQVNnQ0RDSUNSZ1JBUWJUQUFFRzB3QUFvQWdCQmZpQUVkM0UyQWdBTUFnc2dBeUFDTmdJTUlBSWdBellDQ0F3QkN5QUJLQUlZSVFnQ1FDQUJJQUVvQWd3aUJrY0VRQ0FFSUFFb0FnZ2lBazBFUUNBQ0tBSU1HZ3NnQWlBR05nSU1JQVlnQWpZQ0NBd0JDd0pBSUFGQkZHb2lBeWdDQUNJRkRRQWdBVUVRYWlJREtBSUFJZ1VOQUVFQUlRWU1BUXNEUUNBRElRSWdCU0lHUVJScUlnTW9BZ0FpQlEwQUlBWkJFR29oQXlBR0tBSVFJZ1VOQUFzZ0FrRUFOZ0lBQ3lBSVJRMEFBa0FnQVNBQktBSWNJZ0pCQW5SQjVNSUFhaUlES0FJQVJnUkFJQU1nQmpZQ0FDQUdEUUZCdU1BQVFiakFBQ2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQUZHRzJvZ0JqWUNBQ0FHUlEwQkN5QUdJQWcyQWhnZ0FTZ0NFQ0lDQkVBZ0JpQUNOZ0lRSUFJZ0JqWUNHQXNnQVNnQ0ZDSUNSUTBBSUFZZ0FqWUNGQ0FDSUFZMkFoZ0xJQUVnQ21vaEFTQUFJQXBxSVFBTElBRWdBU2dDQkVGK2NUWUNCQ0FISUFCQkFYSTJBZ1FnQUNBSGFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVFRGRpSUJRUU4wUWR6QUFHb2hBQUovUWJUQUFDZ0NBQ0lDUVFFZ0FYUWlBWEZGQkVCQnRNQUFJQUVnQW5JMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0J6WUNDQ0FCSUFjMkFnd2dCeUFBTmdJTUlBY2dBVFlDQ0F3REN5QUhBbjlCQUNBQVFRaDJJZ0ZGRFFBYVFSOGdBRUgvLy84SFN3MEFHaUFCSUFGQmdQNC9ha0VRZGtFSWNTSUJkQ0lDSUFKQmdPQWZha0VRZGtFRWNTSUNkQ0lESUFOQmdJQVBha0VRZGtFQ2NTSURkRUVQZGlBQklBSnlJQU55YXlJQlFRRjBJQUFnQVVFVmFuWkJBWEZ5UVJ4cUN5SUJOZ0ljSUFkQ0FEY0NFQ0FCUVFKMFFlVENBR29oQWdKQVFiakFBQ2dDQUNJRFFRRWdBWFFpQkhGRkJFQkJ1TUFBSUFNZ0JISTJBZ0FnQWlBSE5nSUFEQUVMSUFCQkFFRVpJQUZCQVhacklBRkJIMFliZENFRElBSW9BZ0FoQVFOQUlBRWlBaWdDQkVGNGNTQUFSZzBESUFOQkhYWWhBU0FEUVFGMElRTWdBaUFCUVFSeGFpSUVLQUlRSWdFTkFBc2dCQ0FITmdJUUN5QUhJQUkyQWhnZ0J5QUhOZ0lNSUFjZ0J6WUNDQXdDQzBIQXdBQWdCa0ZZYWlJQVFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEd5SUNheUlITmdJQVFjekFBQ0FCSUFKcUlnSTJBZ0FnQWlBSFFRRnlOZ0lFSUFBZ0FXcEJLRFlDQkVIUXdBQkJuTVFBS0FJQU5nSUFJQU1nQkVFbklBUnJRUWR4UVFBZ0JFRlpha0VIY1J0cVFWRnFJZ0FnQUNBRFFSQnFTUnNpQWtFYk5nSUVJQUpCL01NQUtRSUFOd0lRSUFKQjlNTUFLUUlBTndJSVFmekRBQ0FDUVFocU5nSUFRZmpEQUNBR05nSUFRZlREQUNBQk5nSUFRWURFQUVFQU5nSUFJQUpCR0dvaEFBTkFJQUJCQnpZQ0JDQUFRUWhxSVFFZ0FFRUVhaUVBSUFRZ0FVc05BQXNnQWlBRFJnMERJQUlnQWlnQ0JFRitjVFlDQkNBRElBSWdBMnNpQkVFQmNqWUNCQ0FDSUFRMkFnQWdCRUgvQVUwRVFDQUVRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQVFMSUFOQ0FEY0NFQ0FEQW45QkFDQUVRUWgySWdCRkRRQWFRUjhnQkVILy8vOEhTdzBBR2lBQUlBQkJnUDQvYWtFUWRrRUljU0lBZENJQklBRkJnT0FmYWtFUWRrRUVjU0lCZENJQ0lBSkJnSUFQYWtFUWRrRUNjU0lDZEVFUGRpQUFJQUZ5SUFKeWF5SUFRUUYwSUFRZ0FFRVZhblpCQVhGeVFSeHFDeUlBTmdJY0lBQkJBblJCNU1JQWFpRUJBa0JCdU1BQUtBSUFJZ0pCQVNBQWRDSUdjVVVFUUVHNHdBQWdBaUFHY2pZQ0FDQUJJQU0yQWdBZ0F5QUJOZ0lZREFFTElBUkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQUVvQWdBaEFRTkFJQUVpQWlnQ0JFRjRjU0FFUmcwRUlBQkJIWFloQVNBQVFRRjBJUUFnQWlBQlFRUnhhaUlHS0FJUUlnRU5BQXNnQmlBRE5nSVFJQU1nQWpZQ0dBc2dBeUFETmdJTUlBTWdBellDQ0F3REN5QUNLQUlJSWdBZ0J6WUNEQ0FDSUFjMkFnZ2dCMEVBTmdJWUlBY2dBallDRENBSElBQTJBZ2dMSUFsQkNHb2hBQXdGQ3lBQ0tBSUlJZ0FnQXpZQ0RDQUNJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FqWUNEQ0FESUFBMkFnZ0xRY0RBQUNnQ0FDSUFJQVZORFFCQndNQUFJQUFnQldzaUFUWUNBRUhNd0FCQnpNQUFLQUlBSWdBZ0JXb2lBallDQUNBQ0lBRkJBWEkyQWdRZ0FDQUZRUU55TmdJRUlBQkJDR29oQUF3REMwR3d3QUJCTURZQ0FFRUFJUUFNQWdzQ1FDQUlSUTBBQWtBZ0JDZ0NIQ0lBUVFKMFFlVENBR29pQXlnQ0FDQUVSZ1JBSUFNZ0FUWUNBQ0FCRFFGQnVNQUFJQWRCZmlBQWQzRWlCellDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQVJHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQWcyQWhnZ0JDZ0NFQ0lBQkVBZ0FTQUFOZ0lRSUFBZ0FUWUNHQXNnQkNnQ0ZDSUFSUTBBSUFFZ0FEWUNGQ0FBSUFFMkFoZ0xBa0FnQWtFUFRRUkFJQVFnQWlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnTWdBa0VCY2pZQ0JDQUNJQU5xSUFJMkFnQWdBa0gvQVUwRVFDQUNRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQUVMSUFNQ2YwRUFJQUpCQ0hZaUFFVU5BQnBCSHlBQ1FmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnVWdCVUdBZ0E5cVFSQjJRUUp4SWdWMFFROTJJQUFnQVhJZ0JYSnJJZ0JCQVhRZ0FpQUFRUlZxZGtFQmNYSkJIR29MSWdBMkFod2dBMElBTndJUUlBQkJBblJCNU1JQWFpRUJBa0FDUUNBSFFRRWdBSFFpQlhGRkJFQkJ1TUFBSUFVZ0IzSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBRW9BZ0FoQlFOQUlBVWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCU0FBUVFGMElRQWdBU0FGUVFSeGFpSUdLQUlRSWdVTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUFsRkRRQUNRQ0FCS0FJY0lnQkJBblJCNU1JQWFpSUNLQUlBSUFGR0JFQWdBaUFFTmdJQUlBUU5BVUc0d0FBZ0NrRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0JVRURjallDQkNBQklBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQ0FSQUlBaEJBM1lpQlVFRGRFSGN3QUJxSVFCQnlNQUFLQUlBSVFJQ2YwRUJJQVYwSWdVZ0JuRkZCRUJCdE1BQUlBVWdCbkkyQWdBZ0FBd0JDeUFBS0FJSUN5RUZJQUFnQWpZQ0NDQUZJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0JUWUNDQXRCeU1BQUlBUTJBZ0JCdk1BQUlBTTJBZ0FMSUFGQkNHb2hBQXNnQzBFUWFpUUFJQUFMUkFFQmZ5QUFJQUFvQWhBZ0FXb2lBVFlDRUNBQUlBRkJCM0UyQWdoQmZ5RUNJQUVnQUNnQ0RFRURkRTBFZnlBQUlBQW9BZ0FnQVVFRGRtbzJBZ1JCQUFWQmZ3c0w1UWNCQ0g4Z0FDQUVRUUFnQm1zZ0FpQUNJQVpxUVFCSUd5SUNJQUlnQkVvYklnSnFJQUFnQWtFQVNoc2lDU0FGUVFBZ0Iyc2dBeUFESUFkcVFRQklHeUlBSUFBZ0JVb2JJZ0FnQkd4cUlBa2dBRUVBU2hzaEF5QUhRUUFnQUdzZ0FFRWZkWEVpQ1dzZ0FDQUhhaUlBSUFWcklneEJBQ0FBSUFWS0d5SVBheUVMSUFaQkFDQUNheUlPSUFKQkgzVnhJZzFySUFJZ0Jtb2lBQ0FFYTBFQUlBQWdCRW9pQlJzaUNtc2hBQUpBSUFKQkFFZ2dCWElpRUVVRVFDQUpCRUFEUUNBQklBTWdBQkFWSUFocUlRRWdDVUYvYWlJSkRRQUxDeUFMUlEwQkEwQWdBU0FESUFBUUZTQUlhaUVCSUFNZ0JHb2hBeUFMUVg5cUlnc05BQXNNQVFzQ1FDQUpSUTBBSUExRkJFQURRQ0FBSVFjZ0FTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQVNBSWFpRUJJQWxCZjJvaUNRMEFEQUlBQ3dBTElBRWdEbW9oQmdOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0JpRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQmlBSWFpRUdJQUVnQ0dvaEFTQUpRWDlxSWdrTkFBc0xJQXRGRFFBZ0RVVUVRQU5BSUFBaEJ5QUJJUUlnQXlFRklBQUVRQU5BSUFJZ0JTMEFBRG9BQUNBQ1FRRnFJUUlnQlVFQmFpRUZJQWRCZjJvaUJ3MEFDd3NnQ2dSQUlBSWdCVUYvYWkwQUFDQUtFQWNhQ3lBQklBaHFJUUVnQXlBRWFpRURJQXRCZjJvaUN3MEFEQUlBQ3dBTElBRWdEbW9oQ1FOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0NTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQ0NBSmFpRUpJQUVnQ0dvaEFTQURJQVJxSVFNZ0MwRi9haUlMRFFBTEN3SkFJQTlGRFFBZ0F5QUVheUVESUJCRkJFQURRQ0FCSUFNZ0FCQVZJQWhxSVFFZ0RFRi9haUlNRFFBTUFnQUxBQXNnRFVVRVFBTkFJQU1oQWlBQklRVWdBQ0VISUFBRVFBTkFJQVVnQWkwQUFEb0FBQ0FGUVFGcUlRVWdBa0VCYWlFQ0lBZEJmMm9pQncwQUN3c2dDZ1JBSUFVZ0FrRi9haTBBQUNBS0VBY2FDeUFCSUFocUlRRWdERUYvYWlJTURRQU1BZ0FMQUFzZ0FTQU9haUVKQTBBZ0FTQURMUUFBSUEwUUJ5RUJJQUFoQnlBSklRSWdBeUVGSUFBRVFBTkFJQUlnQlMwQUFEb0FBQ0FDUVFGcUlRSWdCVUVCYWlFRklBZEJmMm9pQncwQUN3c2dDZ1JBSUFJZ0JVRi9haTBBQUNBS0VBY2FDeUFJSUFscUlRa2dBU0FJYWlFQklBeEJmMm9pREEwQUN3c0w5QUlCQTM4Z0FVRURkRUh3Tm1vaUF5Z0NBQ0VGSUFNdEFBUWhBeUFCUVFOMFFiQTFhaUlCTFFBRUlRUUNRQ0FCS0FJQVFRUkdCRUFnQWlBRVFRRjBhaTRCQUNFQklBVkJCRVlFUUNBQklBSWdBMEVCZEdvdUFRQnFRUUZxUVFGMUR3c0NmeUFBS0FMTUFTSUNCRUFnQUNnQ0JDQUNLQUlFUmd3QkMwRUFDMFVOQVNBQklBQW9Bc3dCSUFOQkFYUnFMZ0VjYWtFQmFrRUJkUThMSUFWQkJFWUVRQ0FDSUFOQkFYUnFMZ0VBSVFFQ2Z5QUFLQUxJQVNJQ0JFQWdBQ2dDQkNBQ0tBSUVSZ3dCQzBFQUMwVU5BU0FCSUFBb0FzZ0JJQVJCQVhScUxnRWNha0VCYWtFQmRROExBbjhDZnlBQUtBTElBU0lCQkVBZ0FDZ0NCQ0FCS0FJRVJnd0JDMEVBQzBVRVFFRUFJUUpCQUF3QkMwRUJJUUlnQUNnQ3lBRWdCRUVCZEdvdUFSd0xJUUVDZnlBQUtBTE1BU0lFQkVBZ0FDZ0NCQ0FFS0FJRVJnd0JDMEVBQzBVTkFDQUFLQUxNQVNBRFFRRjBhaTRCSENFQUlBSkZCRUFnQUE4TElBQWdBV3BCQVdwQkFYVWhBUXNnQVF1SkJ3RUhmeUFESUFWcUlnMGdBUzRCQUNJTVFRSjFhaUVESUFRZ0Jtb2lEaUFCTGdFQ0lnOUJBblZxSVFRZ0FpZ0NDRUVFZENFSklBSW9BZ1JCQkhRaENpQUFJQVpCQkhScUlBVnFJUXNDUUNBTVFRTnhRUVIwSUE5QkEzRkJBblJ5UWRBN2FpZ0NBQ0lNUVE1TkJFQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnREVFQmF3NE9BUUlEQkFVR0J3Z0pDZ3NNRFE0QUN5QUNLQUlBSUFzZ0F5QUVJQW9nQ1NBSElBaEJFQkFNREE4TElBSW9BZ0FnQ3lBRElBUkJmbW9nQ2lBSklBY2dDRUVBRUNRTURnc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJRUVjTURRc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJUVFFUUpBd01DeUFDS0FJQUlBc2dBMEYrYWlBRUlBb2dDU0FISUFoQkFCQWpEQXNMSUFJb0FnQWdDeUFEUVg1cUlBUkJmbW9nQ2lBSklBY2dDRUVBRUJvTUNnc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRQVFJUXdKQ3lBQ0tBSUFJQXNnQTBGK2FpQUVRWDVxSUFvZ0NTQUhJQWhCQWhBYURBZ0xJQUlvQWdBZ0N5QURRWDVxSUFRZ0NpQUpJQWNnQ0JCR0RBY0xJQUlvQWdBZ0N5QURRWDVxSUFSQmZtb2dDaUFKSUFjZ0NFRUFFQ0lNQmdzZ0FpZ0NBQ0FMSUFOQmZtb2dCRUYrYWlBS0lBa2dCeUFJRUVVTUJRc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRRVFJZ3dFQ3lBQ0tBSUFJQXNnQTBGK2FpQUVJQW9nQ1NBSElBaEJBUkFqREFNTElBSW9BZ0FnQ3lBRFFYNXFJQVJCZm1vZ0NpQUpJQWNnQ0VFQkVCb01BZ3NnQWlnQ0FDQUxJQU5CZm1vZ0JFRithaUFLSUFrZ0J5QUlRUUVRSVF3QkN5QUNLQUlBSUFzZ0EwRithaUFFUVg1cUlBb2dDU0FISUFoQkF4QWFDeUFOUVFGMklBRXVBUUFpQ1VFRGRXb2hBeUFPUVFGMklBRXVBUUlpQVVFRGRXb2hCQ0FDS0FJQUlBSW9BZ1FpQ2lBQ0tBSUlJZ3RzUVFoMGFpRUNJQUFnQmtFQ2RFRjRjV29nQlVFQmRtcEJnQUpxSVFVZ0NFRUJkaUVHSUFkQkFYWWhCeUFCUVFkeElRZ2dDMEVEZENFQUlBcEJBM1FoQVFKQUlBbEJCM0VpQ1VVTkFDQUlSUTBBSUFJZ0JTQURJQVFnQVNBQUlBa2dDQ0FISUFZUVNBOExJQWtFUUNBQ0lBVWdBeUFFSUFFZ0FDQUpJQWNnQmhCTER3c2dDQVJBSUFJZ0JTQURJQVFnQVNBQUlBZ2dCeUFHRUVvUEN5QUNJQVVnQXlBRUlBRWdBQ0FISUFaQkNCQU1JQUlnQUNBQmJHb2dCVUZBYXlBRElBUWdBU0FBSUFjZ0JrRUlFQXdMeHdFQkJIOGdBQ2dDQkNFQ0FrQWdBQ2dDREVFRGRDQUFLQUlRYXlJRFFTQk9CRUFnQWlnQUFDSUJRUmgwSUFGQkNIUkJnSUQ4QjNGeUlBRkJDSFpCZ1A0RGNTQUJRUmgyY25JaEFTQUFLQUlJSWdCRkRRRWdBU0FBZENBQ0xRQUVRUWdnQUd0MmNnOExJQU5CQVVnRVFFRUFEd3NnQWkwQUFDQUFLQUlJSWdCQkdHb2lCSFFoQVNBQUlBTnFRWGhxSWdCQkFVZ05BQU5BSUFJdEFBRWdCRUY0YWlJRWRDQUJjaUVCSUFCQkNFb2hBeUFDUVFGcUlRSWdBRUY0YWlFQUlBTU5BQXNMSUFFTGpBUUJCMzhDUUNBQVFYOXFJZ2d0QUFBaUJTQUFMUUFBSWdacklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJRVR3MEFJQUJCZm1vdEFBQWlCQ0FGYXlJSElBZEJIM1VpQjJvZ0IzTWdBaWdDQ0NJSlR3MEFJQUF0QUFFaUJ5QUdheUlLSUFwQkgzVWlDbW9nQ25NZ0NVOE5BQ0FCUVFOTkJFQWdDQ0FGSUFFZ0FpZ0NBR3BCZjJvdEFBQWlDRUYvY3lJSklBaEJBV29pQ0NBR0lBVnJRUUowSUFkcklBUnFRUVJxUVFOMUlnVWdCU0FJU2hzZ0JTQUpTQnNpQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFGYTBHd0xtb3RBQUE2QUFBTUFRc2dDQ0FGSUFkcUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFBZ0JpQUhRUUYwYWlBRWFrRUNha0VDZGpvQUFBc0NRQ0FBSUFOcUlnQkJmMm9pQnkwQUFDSURJQUF0QUFBaUJXc2lCaUFHUVI5MUlnWnFJQVp6SUFJb0FnUlBEUUFnQUVGK2FpMEFBQ0lHSUFOcklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJSUlnaFBEUUFnQUMwQUFTSUVJQVZySWdrZ0NVRWZkU0lKYWlBSmN5QUlUdzBBSUFGQkEwMEVRQ0FISUFFZ0FpZ0NBR3BCZjJvdEFBQWlBVUYvY3lJQ0lBRkJBV29pQnlBRklBTnJRUUowSUFScklBWnFRUVJxUVFOMUlnRWdBU0FIU2hzZ0FTQUNTQnNpQVNBRGFrR3dMbW90QUFBNkFBQWdBQ0FGSUFGclFiQXVhaTBBQURvQUFBOExJQWNnQXlBRWFpQUdRUUYwYWtFQ2FrRUNkam9BQUNBQUlBVWdCRUVCZEdvZ0JtcEJBbXBCQW5ZNkFBQUxDMGNBQWtBZ0FVRUVUUVJBQWtBQ1FBSkFBa0FnQVVFQmF3NEVBUUlEQlFBTElBQW9Bc2dCRHdzZ0FDZ0N6QUVQQ3lBQUtBTFFBUThMSUFBb0F0UUJEd3RCQUNFQUN5QUFDNlVEQVF0L1FRQWdBMnNpQzBFQmRDRUVJQUVnQWlnQ0FHcEJmMm90QUFBaUFVRUJhaUVKSUFGQmYzTWhDZ0pBSUFBZ0Eyc2lCeTBBQUNJRklBQXRBQUFpQm1zaUFTQUJRUjkxSWdGcUlBRnpJQUlvQWdRaUFVOE5BQ0FBSUFScUxRQUFJZzBnQldzaUNDQUlRUjkxSWdocUlBaHpJQUlvQWdnaUNFOE5BQ0FBSUFOcUxRQUFJZzRnQm1zaURDQU1RUjkxSWd4cUlBeHpJQWhQRFFBZ0J5QUtJQWtnQmlBRmEwRUNkQ0FPYXlBTmFrRUVha0VEZFNJQklBRWdDVW9iSUFFZ0NrZ2JJZ0VnQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFCYTBHd0xtb3RBQUE2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJBV29pQlNBTGFpSUxMUUFBSWdZZ0FDMEFBU0lBYXlJSElBZEJIM1VpQjJvZ0IzTWdBVThOQUNBRUlBVnFMUUFBSWdFZ0Jtc2lCQ0FFUVI5MUlnUnFJQVJ6SUFJb0FnZ2lBazhOQUNBRElBVnFMUUFBSWdNZ0FHc2lCQ0FFUVI5MUlnUnFJQVJ6SUFKUERRQWdDeUFLSUFrZ0FDQUdhMEVDZENBRGF5QUJha0VFYWtFRGRTSUJJQUVnQ1VvYklBRWdDa2diSWdFZ0JtcEJzQzVxTFFBQU9nQUFJQVVnQUNBQmEwR3dMbW90QUFBNkFBQUxDMFFCQW44L0FDRUJBa0JCc01RQUtBSUFJZ0lnQUVFRGFrRjhjV29pQUNBQlFSQjBUUTBBSUFBUUFRMEFRYkRBQUVFd05nSUFRWDhQQzBHd3hBQWdBRFlDQUNBQ0N6UUJBWDhDUUNBQlFSQkxEUUFnQUNnQ0JDQUJRUUowYWlnQ0FDSUFSUTBBSUFBb0FoUkJBa2tOQUNBQUtBSUFJUUlMSUFJTGdnUUJBMzhnQWtHQUJFOEVRQ0FBSUFFZ0FoQUFHaUFBRHdzZ0FDQUNhaUVEQWtBZ0FDQUJjMEVEY1VVRVFBSkFJQUpCQVVnRVFDQUFJUUlNQVFzZ0FFRURjVVVFUUNBQUlRSU1BUXNnQUNFQ0EwQWdBaUFCTFFBQU9nQUFJQUZCQVdvaEFTQUNRUUZxSWdJZ0EwOE5BU0FDUVFOeERRQUxDd0pBSUFOQmZIRWlCRUhBQUVrTkFDQUNJQVJCUUdvaUJVc05BQU5BSUFJZ0FTZ0NBRFlDQUNBQ0lBRW9BZ1EyQWdRZ0FpQUJLQUlJTmdJSUlBSWdBU2dDRERZQ0RDQUNJQUVvQWhBMkFoQWdBaUFCS0FJVU5nSVVJQUlnQVNnQ0dEWUNHQ0FDSUFFb0FodzJBaHdnQWlBQktBSWdOZ0lnSUFJZ0FTZ0NKRFlDSkNBQ0lBRW9BaWcyQWlnZ0FpQUJLQUlzTmdJc0lBSWdBU2dDTURZQ01DQUNJQUVvQWpRMkFqUWdBaUFCS0FJNE5nSTRJQUlnQVNnQ1BEWUNQQ0FCUVVCcklRRWdBa0ZBYXlJQ0lBVk5EUUFMQ3lBQ0lBUlBEUUVEUUNBQ0lBRW9BZ0EyQWdBZ0FVRUVhaUVCSUFKQkJHb2lBaUFFU1EwQUN3d0JDeUFEUVFSSkJFQWdBQ0VDREFFTElBTkJmR29pQkNBQVNRUkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FpQUJMUUFCT2dBQklBSWdBUzBBQWpvQUFpQUNJQUV0QUFNNkFBTWdBVUVFYWlFQklBSkJCR29pQWlBRVRRMEFDd3NnQWlBRFNRUkFBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSWdBMGNOQUFzTElBQUx3UmdCSUg4akFFSFFBMnNpQmlRQUlBRW9BZ2doRkNBQklBRW9BZ1FpQ2lBQ2JDSWFJQU5xRUIwZ0FTZ0NBQ0VKSUFCQkFEWUNDQ0FBUWlnM0FoUWdBRUlBTndJTUlBQkJCallDQUNBRFFRUjBJUWNDUUFKQUFrQWdCRUYrYWlJRVFRVkxEUUFDUUNBRVFRRnJEZ1FCQVFFQkFBc01BUXNnQmtFQU5nSU1JQVlnRkRZQ0dDQUdJQW8yQWhRZ0JpQUZOZ0lRSUFVRVFDQUdRZEFBYWlBR1FReHFJQVpCRUdvZ0J5QUNRUVIwUVFCQkFFRVFRUkFRRGd3Q0N3c2dCa0hRQUdwQkFFR0FBeEFIR2lBSklCcEJDSFJxSUFkcUlRd2dCa0lBTndOSUlBWkJRR3RDQURjREFDQUdRZ0EzQXpnZ0JrSUFOd013SUFaQ0FEY0RLQ0FHUWdBM0F5QWdCa0lBTndNWUlBWkNBRGNERUVFQUlRa0NmMEVBSUFKRkRRQWFRUUFnQUVFQUlBcHJRZGdCYkdvb0FzUUJSUTBBR2lBR0lBd2dDa0VFZEdzaUJDMEFCU0FFTFFBRWFpQUVMUUFHYWlBRUxRQUhhaUlYSUFRdEFBTWdCQzBBQWlBRUxRQUJJQVF0QUFCcWFtb2lGbW9pQlNBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSWFtcHFJaEpySUFRdEFBOGdCQzBBRGlBRUxRQU5JQVF0QUF4cWFtb2lFMnNpQ0RZQ0ZDQUdJQVVnRW1vZ0Uyb2lDVFlDRUVFQkN5RUZBbjhDUUNBQ0lCUkJmMnBIQkVBZ0FDQUtRZGdCYkdvb0FzUUJEUUVMSUFVTUFRc2dCaUFNSUFwQkNIUnFJZ0l0QUFVZ0FpMEFCR29nQWkwQUJtb2dBaTBBQjJvaUhpQUNMUUFESUFJdEFBSWdBaTBBQVNBQ0xRQUFhbXBxSWg5cUlnUWdBaTBBQ3lBQ0xRQUtJQUl0QUFrZ0FpMEFDR3BxYWlJWWF5QUNMUUFQSUFJdEFBNGdBaTBBRFNBQ0xRQU1hbXBxSWhscklBaHFJZ2cyQWhRZ0JpQUVJQmhxSUFscUlCbHFJZ2syQWhCQkFTRVFJQVZCQVdvTElRZEJBQ0VFQW44Q1FDQURSUTBBSUFCQmJHb29BZ0JGRFFBZ0JpQU1RWDlxSWdJZ0NrRUdkQ0lPYWlJRUlBcEJCSFFpQzJvdEFBQWdCQzBBQUdvZ0JDQUtRUVYwSWc5cUxRQUFhaUFFSUFwQk1Hd2lEV290QUFCcUloc2dBaUFOYWkwQUFDQUNJQTlxTFFBQUlBSWdDMm90QUFBZ0FpMEFBR3BxYWlJY2FpSVJJQVFnRG1vaUFpQUxhaTBBQUNBQ0xRQUFhaUFDSUE5cUxRQUFhaUFDSUExcUxRQUFhaUlWYXlBQ0lBNXFJZ0lnQzJvdEFBQWdBaTBBQUdvZ0FpQVBhaTBBQUdvZ0FpQU5haTBBQUdvaUQyc2lCRFlDSUNBR0lCRWdGV29nQ1dvZ0Qyb2lDVFlDRUNBSFFRRnFJUXRCQVF3QkN5QUhJUXRCQUFzaEFnSkFBa0FDUUFKQUFrQUNRQ0FESUFwQmYycEhCRUFnQUNnQ25BTU5BUXRCQUNFT0lBSkJBRWNoRVNBSERRRU1BZ3NnQmlBRUlBeEJFR29pQkNBS1FRWjBJaDFxSWdBZ0NrRUVkQ0lOYWkwQUFDQUFMUUFBYWlBQUlBcEJCWFFpRG1vdEFBQnFJQUFnQ2tFd2JDSVJhaTBBQUdvaUlDQUVJQkZxTFFBQUlBUWdEbW90QUFBZ0JDQU5haTBBQUNBTUxRQVFhbXBxSWlGcUlpSWdBQ0FkYWlJQUlBMXFMUUFBSUFBdEFBQnFJQUFnRG1vdEFBQnFJQUFnRVdvdEFBQnFJZ3hySUFBZ0hXb2lBQ0FOYWkwQUFDQUFMUUFBYWlBQUlBNXFMUUFBYWlBQUlCRnFMUUFBYWlJTmEyb2lCRFlDSUNBR0lBd2dJbW9nQ1dvZ0RXb2lDVFlDRUNBQ1FRQkhJUkZCQVNFT0lBSkJBV29oQUNBTFFRRnFJUXNDUUNBSERRQWdBa1VOQUNBR0lCc2dIR29nRldvZ0Qyb2dJV3NnSUdzZ0RHc2dEV3RCQlhVaUNEWUNGQXdEQ3lBSFJRMENJQUFoQWdzZ0JpQUlJQWRCQTJwMUlnZzJBaFFMQWtBZ0VFVU5BQ0FGUlEwQUlBSU5BQ0FHSUJZZ0Yyb2dFbW9nRTJvZ0dXc2dHR3NnSG1zZ0gydEJCWFVpQkRZQ0lFRUJJUkJCQVNFTkRBTUxJQkJCQUVjaEVDQUZRUUJISVEwZ0FrVU5BZ3dCQ3lBUVFRQkhJUkFnQlVFQVJ5RU5JQUFoQWdzZ0JpQUVJQUpCQTJwMUlnUTJBaUFMSUFZQ2Z5QUxRWDlxSWdCQkFrMEVRQUpBQWtBQ1FDQUFRUUZyRGdJQkFnQUxJQWxCQkhZTUF3c2dDVUVGZGd3Q0N5QUpRUlZzUVFwMURBRUxJQWxCQm5ZTElnQTJBaEFDUUNBRUlBaHlSUVJBSUFZZ0FEWUNTQ0FHSUFBMkFrd2dCaUFBTmdKRUlBWWdBRFlDUUNBR0lBQTJBandnQmlBQU5nSTRJQVlnQURZQ05DQUdJQUEyQWpBZ0JpQUFOZ0lzSUFZZ0FEWUNLQ0FHSUFBMkFpUWdCaUFBTmdJZ0lBWWdBRFlDSENBR0lBQTJBaGdnQmlBQU5nSVVEQUVMSUFZZ0FDQUlhaUlGSUFSck5nSkFJQVlnQlNBRVFRRjFJZ0pyTmdJd0lBWWdBaUFGYWpZQ0lDQUdJQVFnQldvMkFoQWdCaUFBSUFocklnVWdCR3MyQWt3Z0JpQUZJQUpyTmdJOElBWWdBaUFGYWpZQ0xDQUdJQVFnQldvMkFod2dCaUFBSUFoQkFYVWlCMm9pQlNBRWF6WUNSQ0FHSUFVZ0FtczJBalFnQmlBQ0lBVnFOZ0lrSUFZZ0JDQUZhallDRkNBR0lBQWdCMnNpQUNBRWF6WUNTQ0FHSUFBZ0FtczJBamdnQmlBQUlBSnFOZ0lvSUFZZ0FDQUVhallDR0FzZ0JrSFFBR29oQ0NBR1FSQnFJUUJCQUNFRUEwQWdDQ0FBSUFSQkRIRnFLQUlBSWdKQi93RWdBa0gvQVVnYklnSkJBQ0FDUVFCS0d6b0FBQ0FBSUFCQkVHb2dCRUVCYWlJRVFUOXhHeUVBSUFoQkFXb2hDQ0FFUVlBQ1J3MEFDeUFCS0FJQUlBb2dGR3dpQUVFSWRHb2dHa0VHZEdvZ0EwRURkR29oQXlBS1FRUjBJUXdnQ2tFR2RDRWFJQUJCQm5RaEhVRUFJQXBCQTNRaUMyc2hJQ0FHUWRBQ2FpRWhJQVpCUUdzaElrRUFJUVVEUUNBR1FnQTNBMGdnSWtJQU53TUFJQVpDQURjRE9DQUdRZ0EzQXpBZ0JrSUFOd01vSUFaQ0FEY0RJQ0FHUWdBM0F4Z2dCa0lBTndNUVFRQWhDRUVBSVFSQkFDRUpJQTBFUUNBR0lBTWdJR29pQUMwQUF5QUFMUUFDYWlJWElBQXRBQUVnQUMwQUFHb2lGbW9pQWlBQUxRQUZJQUF0QUFScUloSnJJQUF0QUFjZ0FDMEFCbW9pRTJzaUNEWUNGQ0FHSUFJZ0Vtb2dFMm9pQkRZQ0VFRUJJUWtMSUJBRVFDQUdJQU1nR21vaUFDMEFBeUFBTFFBQ2FpSWVJQUF0QUFFZ0FDMEFBR29pSDJvaUFpQUFMUUFGSUFBdEFBUnFJaGhySUFBdEFBY2dBQzBBQm1vaUdXc2dDR29pQ0RZQ0ZDQUdJQUlnR0dvZ0JHb2dHV29pQkRZQ0VDQUpRUUZxSVFrTFFRQWhBQUovSUJGRkJFQWdDU0VIUVFBTUFRc2dCaUFEUVg5cUlnQWdER29pQWlBTGFpMEFBQ0FDTFFBQWFpSWJJQUFnQzJvdEFBQWdBQzBBQUdvaUhHb2lCeUFDSUF4cUlnQWdDMm90QUFBZ0FDMEFBR29pRldzZ0FDQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlnOXJJZ0EyQWlBZ0JpQUhJQlZxSUFScUlBOXFJZ1EyQWhBZ0NVRUJhaUVIUVFFTElRSUNRQ0FHQW44Q1FBSkFBa0FnRGtVRVFDQUpEUUVNQWdzZ0JpQUFJQU5CQ0dvaUNpQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlpTWdDaUFMYWkwQUFDQURMUUFJYWlJa2FpSWxJQUFnREdvaUFDQUxhaTBBQUNBQUxRQUFhaUlLYXlBQUlBeHFJZ0FnQzJvdEFBQWdBQzBBQUdvaUZHdHFJZ0EyQWlBZ0JpQUtJQ1ZxSUFScUlCUnFJZ1EyQWhBZ0FrRUJhaUVDSUFkQkFXb2hCeUFSUVFGeklBbEJBRWR5UlFSQUlBWWdHeUFjYWlBVmFpQVBhaUFrYXlBamF5QUtheUFVYTBFRWRTSUlOZ0lVREFNTElBbEZEUUlMSUFZZ0NDQUpRUUpxZFNJSU5nSVVDeUFXSUJkcUlCSnFJQk5xSUJscklCaHJJQjVySUI5clFRUjFJQkFnRFNBQ1JYRnhRUUZHRFFFYUlBSkZEUUlMSUFBZ0FrRUNhblVMSWdBMkFpQUxJQVlDZnlBSFFYOXFJZ0pCQWswRVFBSkFBa0FDUUNBQ1FRRnJEZ0lCQWdBTElBUkJBM1lNQXdzZ0JFRUVkZ3dDQ3lBRVFSVnNRUWwyREFFTElBUkJCWFlMSWdRMkFoQUNRQ0FBSUFoeVJRUkFJQVlnQkRZQ1NDQUdJQVEyQWt3Z0JpQUVOZ0pFSUFZZ0JEWUNRQ0FHSUFRMkFqd2dCaUFFTmdJNElBWWdCRFlDTkNBR0lBUTJBakFnQmlBRU5nSXNJQVlnQkRZQ0tDQUdJQVEyQWlRZ0JpQUVOZ0lnSUFZZ0JEWUNIQ0FHSUFRMkFoZ2dCaUFFTmdJVURBRUxJQVlnQkNBSWFpSUhJQUJyTmdKQUlBWWdCeUFBUVFGMUlnSnJOZ0l3SUFZZ0FpQUhhallDSUNBR0lBQWdCMm8yQWhBZ0JpQUVJQWhySWdjZ0FHczJBa3dnQmlBSElBSnJOZ0k4SUFZZ0FpQUhhallDTENBR0lBQWdCMm8yQWh3Z0JpQUVJQWhCQVhVaUNXb2lCeUFBYXpZQ1JDQUdJQWNnQW1zMkFqUWdCaUFDSUFkcU5nSWtJQVlnQUNBSGFqWUNGQ0FHSUFRZ0NXc2lCQ0FBYXpZQ1NDQUdJQVFnQW1zMkFqZ2dCaUFDSUFScU5nSW9JQVlnQUNBRWFqWUNHQXNnSVNBRlFRWjBhaUVJUVFBaEFDQUdRUkJxSVFRRFFDQUlJQVFnQUVFQmRFRU1jV29vQWdBaUFrSC9BU0FDUWY4QlNCc2lBa0VBSUFKQkFFb2JPZ0FBSUFRZ0JFRVFhaUFBUVFGcUlnQkJEM0ViSVFRZ0NFRUJhaUVJSUFCQndBQkhEUUFMSUFNZ0hXb2hBeUFGUVFGcUlnVkJBa2NOQUFzTElBRWdCa0hRQUdvUUd5QUdRZEFEYWlRQUN6WUFJQUlFUUNBQUlBRVFBZzhMUVFFaEFpQUJJQUJCQVJBRElnQTJBZ0FnQUVGL1J3Ui9JQUVnQUVFQmN6WUNBRUVBQlVFQkN3dk1Bd0VTZnlBRFFRRjBJUThnQTBGOWJDRVFRUUFnQTJzaUVVRUJkQ0VTSUFFZ0FpZ0NBR3BCZjJvdEFBQWlCMEVCYWlFVFFRQWdCMnNoQ2tFRUlRRURRQUpBSUFBZ0VXb2lGQzBBQUNJRklBQXRBQUFpQ0dzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdSUERRQWdBQ0FTYWlJTExRQUFJZ3dnQldzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdnaUJrOE5BQ0FBSUFOcUloVXRBQUFpRFNBSWF5SUVJQVJCSDNVaUJHb2dCSE1nQms4TkFDQUhJUVFnQUNBUWFpMEFBQ0lKSUFWcklnNGdEa0VmZFNJT2FpQU9jeUFHU1FSQUlBc2dEQ0FLSUFjZ0JTQUlha0VCYWtFQmRpQU1RUUYwYXlBSmFrRUJkU0lFSUFRZ0Iwb2JJQVFnQ2tnYmFqb0FBQ0FDS0FJSUlRWWdFeUVFQ3lBVUlBVUNmeUFBSUE5cUxRQUFJZ3NnQ0dzaUNTQUpRUjkxSWdscUlBbHpJQVpKQkVBZ0ZTQU5JQW9nQnlBRklBaHFRUUZxUVFGMklBMUJBWFJySUF0cVFRRjFJZ1lnQmlBSFNoc2dCaUFLU0J0cU9nQUFJQVJCQVdvaEJBdEJBQ0FFYXlJR0N5QUVJQWdnQld0QkFuUWdEV3NnREdwQkJHcEJBM1VpQlNBRklBUktHeUFGSUFaSUd5SUVha0d3TG1vdEFBQTZBQUFnQUNBSUlBUnJRYkF1YWkwQUFEb0FBQXNnQUVFQmFpRUFJQUZCZjJvaUFRMEFDd3Y3QmdFT2Z5QUNLQUlJSVFvZ0FpZ0NCQ0VQQWtBZ0FVRUVUd1JBSUE5QkFuWkJBbW9oRUVFRUlRSURRQUpBSUFCQmYyb2lCUzBBQUNJSElBQXRBQUFpQ0dzaUFTQUJRUjkxSWdGcUlBRnpJZzBnRDA4TkFDQUFRWDVxSWc0dEFBQWlBU0FIYXlJRUlBUkJIM1VpQkdvZ0JITWdDazhOQUNBQUxRQUJJZ2tnQ0dzaUJDQUVRUjkxSWdScUlBUnpJQXBQRFFBQ1FDQU5JQkJKQkVBZ0FDMEFBaUVMQW44Z0FFRjlhaUlOTFFBQUlnUWdCMnNpQmlBR1FSOTFJZ1pxSUFaeklBcEpCRUJCQXlFR0lBVWdDU0FISUFocUlBRnFJZ1ZCQVhScUlBUnFRUVJxUVFOMk9nQUFJQTRnQkNBRmFrRUNha0VDZGpvQUFDQUVRUU5zSVE0Z0JVRUVhaUVNSUFCQmZHb3RBQUFNQVFzZ0J5QUphaUVNUVFJaERrRUNJUVlnQlNFTklBRUxJUVFnRFNBTUlBNXFJQVJCQVhScUlBWjJPZ0FBSUFzZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFwUERRRWdBQ0FISUFscUlBaHFJZ1VnQzJwQkFtcEJBblk2QUFFZ0FDQUZJQXRCQTJ4cUlBQXRBQU5CQVhScVFRUnFRUU4yT2dBQ0lBQWdBU0FGUVFGMGFpQUxha0VFYWtFRGRqb0FBQXdDQ3lBRklBY2dDV29nQVVFQmRHcEJBbXBCQW5ZNkFBQUxJQUFnQVNBSWFpQUpRUUYwYWtFQ2FrRUNkam9BQUFzZ0FDQURhaUVBSUFKQmYyb2lBZzBBQ3d3QkN5QUJJQUlvQWdCcVFYOXFMUUFBSWdWQkFXb2hEVUVBSUFWcklRaEJCQ0VDQTBBQ1FDQUFRWDlxSWc0dEFBQWlCQ0FBTFFBQUlnZHJJZ0VnQVVFZmRTSUJhaUFCY3lBUFR3MEFJQUJCZm1vaURDMEFBQ0lKSUFScklnRWdBVUVmZFNJQmFpQUJjeUFLVHcwQUlBQXRBQUVpQ3lBSGF5SUJJQUZCSDNVaUFXb2dBWE1nQ2s4TkFDQUFMUUFDSVFZZ0JTRUJJQUJCZldvdEFBQWlFQ0FFYXlJUklCRkJIM1VpRVdvZ0VYTWdDa2tFUUNBTUlBa2dDQ0FGSUFRZ0IycEJBV3BCQVhZZ0NVRUJkR3NnRUdwQkFYVWlBU0FCSUFWS0d5QUJJQWhJRzJvNkFBQWdEU0VCQ3lBT0lBUUNmeUFHSUFkcklnd2dERUVmZFNJTWFpQU1jeUFLU1FSQUlBQWdDeUFJSUFVZ0JDQUhha0VCYWtFQmRpQUxRUUYwYXlBR2FrRUJkU0lHSUFZZ0JVb2JJQVlnQ0VnYmFqb0FBU0FCUVFGcUlRRUxRUUFnQVdzaUJnc2dBU0FKSUF0cklBY2dCR3RCQW5ScVFRUnFRUU4xSWdRZ0JDQUJTaHNnQkNBR1NCc2lBV3BCc0M1cUxRQUFPZ0FBSUFBZ0J5QUJhMEd3TG1vdEFBQTZBQUFMSUFBZ0Eyb2hBQ0FDUVg5cUlnSU5BQXNMQzlvSEFRMS9Jd0JCd0FOckloRWtBQ0FHUVFWcUlRa0NRQUpBSUFKQkFFZ05BQ0FEUVFCSURRQWdBaUFKYWlBRVN3MEFJQU1nQjJwQkJXb2dCVXNOQUNBRUlRa2dBeUVLREFFTElBQWdFU0FDSUFNZ0JDQUZJQWtnQjBFRmFpQUpFQXdnRVNFQVFRQWhBZ3NDUUNBSFJRMEFJQUFnQ1NBS2JDQUNhbW9oRTBFUUlBWnJJUlFDUUNBR1FRSjJJaElFUUNBSklBWnJJUlVnRXlBSklBaEJBWFpCQVhGQkFuSnNha0VGYWlFQ0lBY2hCQU5BSUFKQmYyb3RBQUFoQUNBQ1FYNXFMUUFBSVFNZ0FrRjlhaTBBQUNFRklBSkJmR290QUFBaEN5QUNRWHRxTFFBQUlRMGdFaUVQQTBBZ0FTQUNMUUFBSWdvZ0RTQUFJQXRxSWd4cklBTWdCV3BCRkd4cUlBeEJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQUFnQVNBQ0xRQUJJZ3dnQ3lBQUlBTnFRUlJzYWlBRklBcHFJZ3RySUF0QkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBRWdBU0FDTFFBQ0loQWdCU0FBSUFwcVFSUnNhaUFESUF4cUlnVnJJQVZCQW5ScmFrRVFha0VGZFVHd0xtb3RBQUE2QUFJZ0FTQUNMUUFESWc0Z0F5QUtJQXhxUVJSc2FpQUFJQkJxSWdOcklBTkJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQU1nQVVFRWFpRUJJQUpCQkdvaEFpQUFJUTBnQ2lFTElBd2hCU0FRSVFNZ0RpRUFJQTlCZjJvaUR3MEFDeUFCSUJScUlRRWdBaUFWYWlFQ0lBUkJmMm9pQkEwQUN3d0JDeUFIUVg5cUlCUnNJQVpySUFGcVFSQnFJUUVMSUFkQkFuWWlCRVVOQUVIQUFDQUdheUVRSUFsQkFYUWhDaUFKUVFKMElBWnJJUXRCQUNBSmF5SU1RUUYwSVJJZ0FTQUhRUVIwYXlFQ0lBa2dFMm9nQ0VFQmNXcEJBbW9pQUNBSlFRVnNhaUVCQTBBZ0JpSURCRUFEUUNBQ0lBQWdDbW90QUFBaUJTQUJJQXBxTFFBQUlBRWdDV290QUFBaURpQUJJQkpxTFFBQUlnZHFJZ2hySUFoQkFuUnJhaUFCTFFBQUlnMGdBU0FNYWkwQUFDSUlha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQUl0QURCcVFRRnFRUUYyT2dBd0lBSWdBQ0FKYWkwQUFDSVBJQTRnQnlBSWFrRVViR29nQlNBTmFpSU9heUFPUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFDQnFRUUZxUVFGMk9nQWdJQUlnQUMwQUFDSU9JQTBnQlNBSGFrRVViR29nQ0NBUGFpSU5heUFOUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFCQnFRUUZxUVFGMk9nQVFJQUlnQUNBTWFpMEFBQ0FJSUFVZ0QycEJGR3hxSUFjZ0Rtb2lCV3NnQlVFQ2RHdHFRUkJxUVFWMVFiQXVhaTBBQUNBQ0xRQUFha0VCYWtFQmRqb0FBQ0FBUVFGcUlRQWdBa0VCYWlFQ0lBRkJBV29oQVNBRFFYOXFJZ01OQUFzTElBSWdFR29oQWlBQklBdHFJUUVnQUNBTGFpRUFJQVJCZjJvaUJBMEFDd3NnRVVIQUEyb2tBQXUxQlFFRWZ5QUFLQUlVSVFNZ0FDZ0NFQ0VFSUFBb0FnUWhCU0FBS0FJTUlnSWdBU2tDQURjQ0FDQUNJQUVwQWdnM0FnZ2dBaUFGUVFSMElnQnFJZ0lnQVNrQ0VEY0NBQ0FDSUFFcEFoZzNBZ2dnQUNBQ2FpSUNJQUVwQWlBM0FnQWdBaUFCS1FJb053SUlJQUFnQW1vaUFpQUJLUUl3TndJQUlBSWdBU2tDT0RjQ0NDQUFJQUpxSWdJZ0FTa0NRRGNDQUNBQ0lBRXBBa2czQWdnZ0FDQUNhaUlDSUFFcEFsQTNBZ0FnQWlBQktRSllOd0lJSUFBZ0Ftb2lBaUFCS1FKZ053SUFJQUlnQVNrQ2FEY0NDQ0FBSUFKcUlnSWdBU2tDY0RjQ0FDQUNJQUVwQW5nM0FnZ2dBQ0FDYWlJQ0lBRXBBb0FCTndJQUlBSWdBU2tDaUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcEFCTndJQUlBSWdBU2tDbUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcUFCTndJQUlBSWdBU2tDcUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBckFCTndJQUlBSWdBU2tDdUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBc0FCTndJQUlBSWdBU2tDeUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdEFCTndJQUlBSWdBU2tDMkFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdUFCTndJQUlBSWdBU2tDNkFFM0FnZ2dBQ0FDYWlJQUlBRXBBdkFCTndJQUlBQWdBU2tDK0FFM0FnZ2dCQ0FCS1FLQUFqY0NBQ0FFSUFWQkEzUWlBR29pQkNBQktRS0lBamNDQUNBQUlBUnFJZ1FnQVNrQ2tBSTNBZ0FnQUNBRWFpSUVJQUVwQXBnQ053SUFJQUFnQkdvaUJDQUJLUUtnQWpjQ0FDQUFJQVJxSWdRZ0FTa0NxQUkzQWdBZ0FDQUVhaUlFSUFFcEFyQUNOd0lBSUFBZ0JHb2dBU2tDdUFJM0FnQWdBeUFCS1FMQUFqY0NBQ0FBSUFOcUlnTWdBU2tDeUFJM0FnQWdBQ0FEYWlJRElBRXBBdEFDTndJQUlBQWdBMm9pQXlBQktRTFlBamNDQUNBQUlBTnFJZ01nQVNrQzRBSTNBZ0FnQUNBRGFpSURJQUVwQXVnQ053SUFJQUFnQTJvaUF5QUJLUUx3QWpjQ0FDQUFJQU5xSUFFcEF2Z0NOd0lBQytnQ0FRVi9Ba0FnQUNBQkVBSWlBdzBBUVFFaEF5QUJJQUVvQWdCQkFXb2lBallDQUNBQ1FTQkxEUUFnQUVFRUVBTWlBa0YvUmcwQUlBRWdBallDQkNBQVFRUVFBeUlDUVg5R0RRQWdBU0FDTmdJSUlBRW9BZ0FFUUFOQUlBQWdBU0FGUVFKMGFpSUNJZ1JCREdvUUFpSUREUUpCQVNFRElBUW9BZ3dpQmtGL1JnMENJQVFnQmtFQmFpSUROZ0lNSUFRZ0F5QUJLQUlFUVFacWREWUNEQ0FBSUFKQmpBRnFFQUlpQXcwQ1FRRWhBeUFDS0FLTUFTSUVRWDlHRFFJZ0FpQUVRUUZxSWdRMkFvd0JJQUlnQkNBQktBSUlRUVJxZERZQ2pBRWdBRUVCRUFNaUJFRi9SZzBDSUFJZ0JFRUJSallDakFJZ0JVRUJhaUlGSUFFb0FnQkpEUUFMQ3lBQVFRVVFBeUlDUVg5R0RRQWdBU0FDUVFGcU5nS01BeUFBUVFVUUF5SUNRWDlHRFFBZ0FTQUNRUUZxTmdLUUF5QUFRUVVRQXlJQ1FYOUdEUUFnQVNBQ1FRRnFOZ0tVQXlBQVFRVVFBeUlBUVg5R0RRQWdBU0FBTmdLWUEwRUFJUU1MSUFNTFd3RURmeUFBSUFBb0FnQWlCQ0FCSUFBb0FnUWlBbkFpQTBFRWRHb2dBU0FEYXlJQlFRaDBhallDRENBQUlBUWdBaUFBS0FJSWJDSUNRUWgwYWlBQlFRWjBhaUFEUVFOMGFpSUJOZ0lRSUFBZ0FTQUNRUVowYWpZQ0ZBdFZBUUovSUFFZ0FrRUJhaUlESUFNZ0FVa2JJUU1nQUNBQ1FRSjBhaWdDQUNFRUEwQUNRQ0FDUVFGcUlnSWdBVThFUUNBRElRSU1BUXNnQUNBQ1FRSjBhaWdDQUNBRVJ3MEJDd3RCQUNBQ0lBRWdBa1liQ3ljQUlBQkJDQ0FBS0FJSUlnQnJFQU5CZjBZRVFBOExRUUFnQUd0QkFuUkJ6RDlxS0FJQUdndDZBUUovSXdCQklHc2lBaVFBSUFJZ0FDZ0NFRFlDRUNBQ0lBQXBBZ2czQXdnZ0FpQUFLUUlBTndNQUFrQWdBaUFDUVJ4cUVBSWlBQTBBSUFJZ0FrRWNhaEFDSWdBTkFDQUNJQUpCSEdvUUFpSUFEUUJCQVNFQUlBSW9BaHdpQTBIL0FVc05BQ0FCSUFNMkFnQkJBQ0VBQ3lBQ1FTQnFKQUFnQUF2bkJ3RVNmeU1BUVlBT2F5SU1KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQTBFQVNBMEFJQUlnQ1dvZ0JFc05BQ0FESUFkcVFRVnFJQVZMRFFBZ0F5RUtEQUVMSUFBZ0RFSEFDbW9nQWlBRElBUWdCU0FKSUFkQkJXb2dDUkFNSUF4QndBcHFJUUFnQ1NFRVFRQWhBZ3NDUUNBSFFRSjJJaFJGRFFBZ0NVVU5BQ0FFUVFGMElSVkJBQ0FFYXlJV1FRRjBJUm9nQkVFQ2RDQUdhMEY3YWlFWElBQWdCQ0FLYkNBQ2Ftb2dCR29pQUNBRVFRVnNhaUVDSUF3Z0NVRUNkQ0lRYWlFRElBbEJBM1FoRFVFQUlBbHJRUUowSVE0Z0NVRURiRUVDZENFUEEwQWdDU0VGQTBBZ0F5QU5haUFBSUJWcUxRQUFJaEVnQWlBVmFpMEFBQ0FDSUFScUxRQUFJZ3NnQWlBYWFpMEFBQ0lTYWlJS2F5QUtRUUowYTJvZ0FpMEFBQ0lZSUFJZ0Ztb3RBQUFpRTJwQkZHeHFOZ0lBSUFNZ0VHb2dBQ0FFYWkwQUFDSVpJQXNnRWlBVGFrRVViR29nRVNBWWFpSUtheUFLUVFKMGEybzJBZ0FnQXlBQUxRQUFJZ3NnR0NBUklCSnFRUlJzYWlBVElCbHFJZ3BySUFwQkFuUnJhallDQUNBRElBNXFJQUFnRm1vdEFBQWdFeUFSSUJscVFSUnNhaUFMSUJKcUlncHJJQXBCQW5ScmFqWUNBQ0FBUVFGcUlRQWdBMEVFYWlFRElBSkJBV29oQWlBRlFYOXFJZ1VOQUFzZ0FpQVhhaUVDSUFBZ0Yyb2hBQ0FESUE5cUlRTWdGRUYvYWlJVURRQUxDeUFIQkVCQkVDQUdheUVRSUFaQkFuWWhDaUFNSUFoQkFuUnFRUWhxSVFBZ0RFRVVhaUVDQTBBZ0NnUkFJQUpCYkdvb0FnQWhCQ0FDUVhCcUtBSUFJUThnQWtGMGFpZ0NBQ0VOSUFKQmVHb29BZ0FoQlNBQ1FYeHFLQUlBSVFNZ0NpRUpBMEFnQVNBQ0tBSUFJZzRnQkNBRElBOXFJZ1JySUFVZ0RXcEJGR3hxSUFSQkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQUlBQW9BZ0JCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlvQWdRaUN5QVBJQU1nQldwQkZHeHFJQTBnRG1vaUJHc2dCRUVDZEd0cVFZQUVha0VLZFVHd0xtb3RBQUFnQUNnQ0JFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FCSUFFZ0FpZ0NDQ0lJSUEwZ0F5QU9ha0VVYkdvZ0JTQUxhaUlFYXlBRVFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlJUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBSWdBU0FDS0FJTUlnWWdCU0FMSUE1cVFSUnNhaUFESUFocUlnUnJJQVJCQW5ScmFrR0FCR3BCQ25WQnNDNXFMUUFBSUFBb0FneEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQXlBQlFRUnFJUUVnQUVFUWFpRUFJQUpCRUdvaEFpQURJUVFnRGlFUElBc2hEU0FJSVFVZ0JpRURJQWxCZjJvaUNRMEFDd3NnQVNBUWFpRUJJQUJCRkdvaEFDQUNRUlJxSVFJZ0IwRi9haUlIRFFBTEN5QU1RWUFPYWlRQUM5RUhBUXgvSXdCQmdBNXJJZzhrQUNBR1FRVnFJUWtDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSmFpQUVTdzBBSUFkQkJXb2lEaUFEYWlBRlN3MEFJQVFoQ1NBRElRb01BUXNnQUNBUFFjQUthaUFDSUFNZ0JDQUZJQWtnQjBFRmFpSU9JQWtRRENBUFFjQUthaUVBUVFBaEFnc0NRQ0FPUlEwQUlBWkJBbllpRWtVTkFDQUpJQVpySVJNZ0FDQUpJQXBzSUFKcWFrRUZhaUVDSUE4aEFBTkFJQUpCZjJvdEFBQWhDU0FDUVg1cUxRQUFJUU1nQWtGOWFpMEFBQ0VGSUFKQmZHb3RBQUFoQ2lBQ1FYdHFMUUFBSVF3Z0VpRU5BMEFnQUNBQ0xRQUFJZ1FnRENBSklBcHFJZ3RySUFNZ0JXcEJGR3hxSUF0QkFuUnJhallDQUNBQUlBSXRBQUVpQ3lBRElBbHFRUlJzSUFwcUlBUWdCV29pQ21zZ0NrRUNkR3RxTmdJRUlBQWdBaTBBQWlJUUlBUWdDV3BCRkd3Z0JXb2dBeUFMYWlJRmF5QUZRUUowYTJvMkFnZ2dBQ0FDTFFBREloUWdCQ0FMYWtFVWJDQURhaUFKSUJCcUlnTnJJQU5CQW5ScmFqWUNEQ0FBUVJCcUlRQWdBa0VFYWlFQ0lBa2hEQ0FFSVFvZ0N5RUZJQkFoQXlBVUlRa2dEVUYvYWlJTkRRQUxJQUlnRTJvaEFpQU9RWDlxSWc0TkFBc0xJQWRCQW5ZaUJ3UkFRY0FBSUFacklSUWdEeUFHUVFKMElnUnFJZ2tnQmtFVWJHb2hBaUFKSUFoQkFtb2dCbXhCQW5ScUlRQWdCa0VEYkVFQ2RDRUZRUUFnQm1zaURrRURkQ0VUSUFaQkEzUWhDQU5BSUFZaEF5QUdCRUFEUUNBQklBZ2dDV29vQWdBaUNpQUNJQWhxS0FJQUlBSWdCR29vQWdBaUVTQUNJQk5xS0FJQUlndHFJZ3hySUF4QkFuUnJhaUFDS0FJQUlnMGdBaUFPUVFKMEloQnFLQUlBSWd4cVFSUnNha0dBQkdwQkNuVkJzQzVxTFFBQUlBQWdDR29vQWdCQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FNQ0FCSUFRZ0NXb29BZ0FpRWlBUklBc2dER3BCRkd4cUlBb2dEV29pRVdzZ0VVRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQWdBQ0FFYWlnQ0FFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FnSUFFZ0NTZ0NBQ0lSSUEwZ0NpQUxha0VVYkdvZ0RDQVNhaUlOYXlBTlFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFCQWdBU0FKSUJCcUtBSUFJQXdnQ2lBU2FrRVViR29nQ3lBUmFpSUtheUFLUVFKMGEycEJnQVJxUVFwMVFiQXVhaTBBQUNBQUlCQnFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBQWdBRUVFYWlFQUlBbEJCR29oQ1NBQlFRRnFJUUVnQWtFRWFpRUNJQU5CZjJvaUF3MEFDd3NnQVNBVWFpRUJJQUFnQldvaEFDQUNJQVZxSVFJZ0JTQUphaUVKSUFkQmYyb2lCdzBBQ3dzZ0QwR0FEbW9rQUF1MEJnRUpmeU1BUWNBRGF5SU5KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQXlBSGFpQUZTdzBBSUFOQkFFZ05BQ0FDSUFscUlBUkxEUUFnQkNFSklBTWhDZ3dCQ3lBQUlBMGdBaUFESUFRZ0JTQUpJQWNnQ1JBTUlBMGhBRUVBSVFJTElBY0VRRUVRSUFacklSQWdDU0FHYXlFUklBWkJBblloRHlBQUlBa2dDbXdnQW1wcVFRVnFJUWtEUUFKQUlBOUZEUUFnQ1VGL2FpMEFBQ0VDSUFsQmZtb3RBQUFoQmlBSlFYMXFMUUFBSVFNZ0NVRjhhaTBBQUNFRklBbEJlMm90QUFBaENpQVBJZ0FoQ3lBSUJFQURRQ0FCSUFZZ0NTMEFBQ0lFSUFvZ0FpQUZhaUlLYXlBRElBWnFRUlJzYWlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlnQ1MwQUFTSUxJQVVnQWlBR2FrRVViR29nQXlBRWFpSUZheUFGUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQVNBQklBUWdDUzBBQWlJTUlBTWdBaUFFYWtFVWJHb2dCaUFMYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBaUFCSUFzZ0NTMEFBeUlPSUFZZ0JDQUxha0VVYkdvZ0FpQU1haUlEYXlBRFFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUF5QUJRUVJxSVFFZ0NVRUVhaUVKSUFJaENpQUVJUVVnQ3lFRElBd2hCaUFPSVFJZ0FFRi9haUlBRFFBTUFnQUxBQXNEUUNBQklBTWdDUzBBQUNJQUlBb2dBaUFGYWlJRWF5QURJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBQ0FCSUFZZ0NTMEFBU0lFSUFVZ0FpQUdha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFTQUJJQUlnQ1MwQUFpSU1JQU1nQUNBQ2FrRVViR29nQkNBR2FpSURheUFEUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQWlBQklBQWdDUzBBQXlJT0lBWWdBQ0FFYWtFVWJHb2dBaUFNYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBeUFCUVFScUlRRWdDVUVFYWlFSklBSWhDaUFBSVFVZ0JDRURJQXdoQmlBT0lRSWdDMEYvYWlJTERRQUxDeUFCSUJCcUlRRWdDU0FSYWlFSklBZEJmMm9pQncwQUN3c2dEVUhBQTJva0FBdkdCQUVMZnlNQVFjQURheUlOSkFBQ1FBSkFJQUpCQUVnTkFDQURRUUJJRFFBZ0FpQUdhaUFFU3cwQUlBTWdCMnBCQldvZ0JVc05BQ0FESVFrTUFRc2dBQ0FOSUFJZ0F5QUVJQVVnQmlBSFFRVnFJQVlRRENBTklRQWdCaUVFUVFBaEFnc2dCMEVDZGlJUUJFQkJ3QUFnQm1zaEVpQUVRUUYwSVFVZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVRJQUFnQkNBSmJDQUNhbW9nQkdvaUFDQUVRUVZzYWlFQ0lBQWdCQ0FJUVFKcWJHb2hCd05BSUFZaEF5QUdCRUFEUUNBQklBQWdCV290QUFBaUNDQUNJQVZxTFFBQUlBSWdCR290QUFBaUNpQUNJQk5xTFFBQUlnbHFJZ3RySUF0QkFuUnJhaUFDTFFBQUlnd2dBaUFQYWkwQUFDSUxha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQVVnQjJvdEFBQnFRUUZxUVFGMk9nQXdJQUVnQUNBRWFpMEFBQ0lSSUFvZ0NTQUxha0VVYkdvZ0NDQU1haUlLYXlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQUlBUWdCMm90QUFCcVFRRnFRUUYyT2dBZ0lBRWdBQzBBQUNJS0lBd2dDQ0FKYWtFVWJHb2dDeUFSYWlJTWF5QU1RUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFJQWN0QUFCcVFRRnFRUUYyT2dBUUlBRWdBQ0FQYWkwQUFDQUxJQWdnRVdwQkZHeHFJQWtnQ21vaUNHc2dDRUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBQ0FISUE5cUxRQUFha0VCYWtFQmRqb0FBQ0FIUVFGcUlRY2dBRUVCYWlFQUlBRkJBV29oQVNBQ1FRRnFJUUlnQTBGL2FpSUREUUFMQ3lBQklCSnFJUUVnQnlBT2FpRUhJQUlnRG1vaEFpQUFJQTVxSVFBZ0VFRi9haUlRRFFBTEN5QU5RY0FEYWlRQUM0OEhBUXgvSUFFb0FnZ2hDeUFCS0FJRUlRWUNRQUpBQWtBZ0FrRUZTdzBBSUFKQkFXc09CQUFBQUFBQkN5QUFLQUs0R2cwQURBRUxJQUJCeEFscUlRUURRQ0FFSUFNUUZDRUhJQU5CRGtzTkFTQURRUUZxSVFNZ0IwVU5BQXNMQWtBQ1FBSkFBa0FnQUNnQ21Ba2lDQVJBSUFBb0Fyd0pJUXBCQUNFRFFRQWhCQU5BSUFvZ0EwSFlBV3hxS0FMRUFVVUVRRUVBSUFSQkFXb2lCQ0FFSUFaR0lnVWJJUVFnQlNBSmFpRUpJQU5CQVdvaUF5QUlTUTBCQ3dzZ0F5QUlSdzBCQ3dKQUFrQWdBa0YrYWlJQ1FRVkxEUUFDUUNBQ1FRRnJEZ1FCQVFFQkFBc2dCMFVOQVNBQUtBSzRHa1VOQVF3REN5QUhEUUlMSUFFb0FnQkJnQUVnQmlBTGJFR0FBMndRQnhvTUFnc2dBQ2dDdkFrZ0JpQUpiRUhZQVd4cUlRZ2dCQVJBSUFRaEF3TkFJQWdnQTBGL2FpSURRZGdCYkdvaUNpQUJJQWtnQXlBQ0lBY1FGaUFLUVFFMkFzUUJJQUFnQUNnQ3RBbEJBV28yQXJRSklBTU5BQXNMSUFSQkFXb2lBeUFHU1FSQUEwQWdDQ0FEUWRnQmJHb2lCQ2dDeEFGRkJFQWdCQ0FCSUFrZ0F5QUNJQWNRRmlBRVFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpDeUFEUVFGcUlnTWdCa2NOQUFzTEFrQWdDVVVOQUNBR1JRMEFRUUFoQlNBSlFYOXFJZ3dnQm13aERTQU1SUVJBQTBBZ0FDZ0N2QWtnRFVIWUFXeHFJQVZCMkFGc2FpSUVJQUZCQUNBRklBSWdCeEFXSUFSQkFUWUN4QUVnQUNBQUtBSzBDVUVCYWpZQ3RBa2dCVUVCYWlJRklBWkhEUUFNQWdBTEFBc2dDVUYrYWlFSVFRQWdCbXRCMkFGc0lRNERRQ0FBS0FLOENTQU5RZGdCYkdvZ0JVSFlBV3hxSWdNZ0FTQU1JQVVnQWlBSEVCWWdBMEVCTmdMRUFTQUFJQUFvQXJRSlFRRnFOZ0swQ1NBSUlRUURRQ0FESUE1cUlnTWdBU0FFSWdvZ0JTQUNJQWNRRmlBRFFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpJQVJCZjJvaEJDQUtEUUFMSUFWQkFXb2lCU0FHUncwQUN3c2dDVUVCYWlJRklBdFBEUUlnQmtVTkFnTkFJQUFvQXJ3SklBVWdCbXhCMkFGc2FpRUlRUUFoQXdOQUlBZ2dBMEhZQVd4cUlnUW9Bc1FCUlFSQUlBUWdBU0FGSUFNZ0FpQUhFQllnQkVFQk5nTEVBU0FBSUFBb0FyUUpRUUZxTmdLMENRc2dBMEVCYWlJRElBWkhEUUFMSUFWQkFXb2lCU0FMUncwQUN3d0NDeUFCS0FJQUlBY2dCaUFMYkVHQUEyd1FGUm9MSUFBZ0FDZ0NtQWtpQVRZQ3RBa2dBVVVOQUNBQUtBSzhDU0VBUVFBaEF3TkFJQUFnQTBIWUFXeHFRUUUyQWdnZ0EwRUJhaUlESUFGSERRQUxDd3MyQVFKL0lBQW9BaWdpQWdSQUEwQWdBQ2dDQkNBQlFRSjBhaUFBS0FJQUlBRkJLR3hxTmdJQUlBRkJBV29pQVNBQ1J3MEFDd3NMOXdRQ0RIOEJma0VISVFVakFFRWdheUlJSVF3RFFDQUZJQUZKQkVBZ0FFRUFJQVZyUVNoc2FpRUtJQVVoQmdOQUlBQWdCa0VvYkdvaUFpZ0NDQ0VKSUFJcEFnQWhEaUFJSUFJcEFndzNBeGdnQWlnQ0dDRU5JQUlvQWhRaEN5QU1JQUlvQWlRMkFoQWdDQ0FDS1FJY053TUlBa0FnQmlJRElBVkpEUUFDUUNBTFJRUkFBMEFnQ2lBRFFTaHNJZ0pxSWdRb0FoUU5BaUFOUlEwQ0lBUW9BaGdOQWlBQUlBSnFJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3lBTFFYOXFRUUZOQkVBRFFBSi9Ba0FnQ2lBRFFTaHNJZ0pxSWdRb0FoUWlCMFVOQUNBSFFYOXFRUUZMRFFBZ0JDZ0NDQ0lISUFsS0RRUWdBQ0FDYWlJRUlBY2dDVWdOQVJvZ0JDRUNEQVVMSUFBZ0Ftb0xJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3dOQUlBb2dBMEVvYkNJQ2FpSUVLQUlVSWdjRVFDQUhRWDlxUVFKSkRRSWdCQ2dDQ0NBSlRBMENDeUFBSUFKcUlnUWdBQ0FESUFWcklnTkJLR3hxSWdJcEFnQTNBZ0FnQkNBQ0tRSWdOd0lnSUFRZ0Fpa0NHRGNDR0NBRUlBSXBBaEEzQWhBZ0JDQUNLUUlJTndJSUlBTWdCVThOQUFzTUFRc2dBQ0FEUVNoc2FpRUNDeUFDSUE0M0FnQWdBQ0FEUVNoc2FpSURJQWsyQWdnZ0NDa0RHQ0VPSUFNZ0RUWUNHQ0FESUFzMkFoUWdBeUFPTndJTUlBTWdDQ2tEQ0RjQ0hDQURJQXdvQWhBMkFpUWdCa0VCYWlJR0lBRkhEUUFMQ3lBRlFRRjJJZ1VOQUFzTHJRVUJBWDhDUUNBQUtBSUFJZ0VvQWhSRkRRQWdBVUVBTmdJVUlBRW9BaGdOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ1BFVU5BQ0FCUVFBMkFqd2dBVUZBYXlnQ0FBMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUprUlEwQUlBRkJBRFlDWkNBQktBSm9EUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQW93QlJRMEFJQUZCQURZQ2pBRWdBU2dDa0FFTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0N0QUZGRFFBZ0FVRUFOZ0swQVNBQktBSzRBUTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMY0FVVU5BQ0FCUVFBMkF0d0JJQUVvQXVBQkRRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9Bb1FDUlEwQUlBRkJBRFlDaEFJZ0FTZ0NpQUlOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ3JBSkZEUUFnQVVFQU5nS3NBaUFCS0FLd0FnMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUxVQWtVTkFDQUJRUUEyQXRRQ0lBRW9BdGdDRFFBZ0FDQUFLQUlzUVg5cU5nSXNDd0pBSUFFb0F2d0NSUTBBSUFGQkFEWUMvQUlnQVNnQ2dBTU5BQ0FBSUFBb0FpeEJmMm8yQWl3TEFrQWdBU2dDcEFORkRRQWdBVUVBTmdLa0F5QUJLQUtvQXcwQUlBQWdBQ2dDTEVGL2FqWUNMQXNDUUNBQktBTE1BMFVOQUNBQlFRQTJBc3dESUFFb0F0QUREUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQXZRRFJRMEFJQUZCQURZQzlBTWdBU2dDK0FNTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0NuQVJGRFFBZ0FVRUFOZ0tjQkNBQktBS2dCQTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMRUJFVU5BQ0FCUVFBMkFzUUVJQUVvQXNnRURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9BdXdFUlEwQUlBRkJBRFlDN0FRZ0FTZ0M4QVFOQUNBQUlBQW9BaXhCZjJvMkFpd0xBMEFnQUJCZVJRMEFDeUFBUVFBMkFqQWdBRUwvL3dNM0FpUUwzUTRCQ1g4Z0FpZ0NBQ0FBS0FJSUlnSW9BZ0JHQkVBZ0FFRUFOZ0kwSUFBb0FqZ2lDMFVoRFFKQUlBRkZCRUFnQWlBRE5nSU1JQUpCQURZQ0ZDQUNJQTAyQWhnZ0FpQUVOZ0lRSUFJZ0F6WUNDQ0FMRFFFZ0FDQUFLQUlzUVFGcU5nSXNEQUVMSUFVRVFDQUFRZ0EzQWhBZ0FCQW9Ba0FnQVNnQ0FFVUVRQ0FBS0FJNFJRMEJDeUFBUWdBM0FoQUxJQUFvQWdnaUFrRURRUUlnQVNnQ0JDSUJHellDRkNBQVFRQkIvLzhESUFFYk5nSWtJQUlnRFRZQ0dDQUNRUUEyQWhBZ0FrSUFOd0lJSUFCQ2dZQ0FnQkEzQWlnTUFRc0NRQUpBQWtBZ0FTZ0NDQVJBUVFBaEN3TkFJQUVnQzBFVWJHb2lDQ2dDRENJQ1FRWkxEUUlDUUFKQUFrQUNRQUpBQWtBQ1FDQUNRUUZyRGdZQUFRSURCQVVKQ3lBQUtBSVlJZ2xGRFFnZ0F5QUlLQUlRYXlFTUlBQW9BZ0FoQ2tFQUlRZ0RRQUpBSUFvZ0NFRW9iR29pQWlnQ0ZFRi9ha0VCVFFSQUlBSW9BZ2dnREVZTkFRc2dDRUVCYWlJSUlBbEhEUUVNQ2dzTElBaEJBRWdOQ0NBQ1FRQTJBaFFnQUNBQUtBSW9RWDlxTmdJb0lBSW9BaGdOQlNBQUlBQW9BaXhCZjJvMkFpd2dDMEVCYWlFTERBWUxJQUFvQWhnaUNVVU5CeUFJS0FJVUlRd2dBQ2dDQUNFS1FRQWhDQU5BQWtBZ0NpQUlRU2hzYWlJQ0tBSVVRUU5HQkVBZ0FpZ0NDQ0FNUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdKQ3dzZ0NFRUFTQTBISUFKQkFEWUNGQ0FBSUFBb0FpaEJmMm8yQWlnZ0FpZ0NHQTBFSUFBZ0FDZ0NMRUYvYWpZQ0xDQUxRUUZxSVFzTUJRc2dBQ2dDSkNJQ1FmLy9BMFlOQmlBQ0lBZ29BaGdpREVrTkJpQUFLQUlZSWdsRkRRWWdDQ2dDRUNFT0lBQW9BZ0FoQ2tFQUlRSURRQUpBQWtBZ0NpQUNRU2hzYWlJSUtBSVVRUU5IRFFBZ0NDZ0NDQ0FNUncwQUlBaEJBRFlDRkNBQUlBQW9BaWhCZjJvMkFpZ2dDQ2dDR0EwQklBQWdBQ2dDTEVGL2FqWUNMQXdCQ3lBQ1FRRnFJZ0lnQ1VjTkFRc0xJQWxCQVNBSlFRRkxHeUVKSUFNZ0Rtc2hEa0VBSVFnRFFBSkFJQW9nQ0VFb2JHb2lBaWdDRkNJUFFYOXFRUUZOQkVBZ0FpZ0NDQ0FPUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdJQ3dzZ0NFRUFTQTBHSUE5QkFra05CaUFDUVFNMkFoUWdBaUFNTmdJSUlBdEJBV29oQ3d3RUN5QUFJQWdvQWh3aUNUWUNKQ0FBS0FJWUlneEZEUUlnQUNnQ0FDRUtRUUFoQWlBSlFmLy9BMFlFUUFOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDRUVBTmdJVUlBQWdBQ2dDS0VGL2FqWUNLQ0FJS0FJWURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQ1FRRnFJZ0lnREVjTkFBd0VBQXNBQ3dOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDQ2dDQ0NBSlRRMEFJQWhCQURZQ0ZDQUFJQUFvQWloQmYybzJBaWdnQ0NnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FrRUJhaUlDSUF4SERRQUxEQUlMSUFBUUtDQUFRUUUyQWpSQkFDRURJQXRCQVdvaEN3d0NDeUFBS0FJa0lnSkIvLzhEUmcwRElBSWdDQ2dDR0NJTVNRMERJQUFvQWhnaUNrVU5BeUFBS0FJQUlRaEJBQ0VDQWtBRFFBSkFJQWdnQWtFb2JHb2lDU2dDRkVFRFJ3MEFJQWtvQWdnZ0RFY05BQ0FKUVFBMkFoUWdBQ0FBS0FJb1FYOXFJZ2cyQWlnZ0NTZ0NHQTBDSUFBZ0FDZ0NMRUYvYWpZQ0xBd0NDeUFDUVFGcUlnSWdDa2NOQUFzZ0FDZ0NLQ0VJQ3lBSUlBcFBEUU1nQUNnQ0NDSUNRUU0yQWhRZ0FpQUVOZ0lRSUFJZ0REWUNDQ0FDSUFNMkFnd2dBaUFBS0FJNFJUWUNHRUVCSVJBZ0FDQUlRUUZxTmdJb0lBQWdBQ2dDTEVFQmFqWUNMQXNnQzBFQmFpRUxEQUFBQ3dBTFFRQWhBaUFBS0FJb0lna2dBQ2dDR0NJTFNRMEJJQWxGQkVCQkFDRUpEQUlMSUFBb0FnQWhERUYvSVFFRFFDQU1JQUpCS0d4cUlnb29BaFJCZjJwQkFVMEVRQ0FLS0FJSUlnb2dDQ0FCUVg5R0lBb2dDRWh5SWdvYklRZ2dBaUFCSUFvYklRRUxJQUpCQVdvaUFpQUpSdzBBQ3lBQlFRQklEUUVnRENBQlFTaHNhaUlCUVFBMkFoUWdBQ0FKUVg5cUlnazJBaWdnQVNnQ0dBMEJJQUFnQUNnQ0xFRi9hallDTEF3QkN5QVFEUUVnQUNnQ0dDRUxJQUFvQWlnaENRc2dDU0FMVHcwQklBQW9BZ2dpQVNBTk5nSVlJQUZCQWpZQ0ZDQUJJQVEyQWhBZ0FTQUROZ0lJSUFFZ0F6WUNEQ0FBSUFsQkFXbzJBaWdnQUNBQUtBSXNRUUZxTmdJc0N3c2dBQ2dDQ0NJQklBYzJBaUFnQVNBR05nSWNJQUVnQlRZQ0pBSkFJQUFvQWpoRkJFQWdBQ2dDTENJSklBQW9BaHdpQTAwTkFTQUFLQUlBSVFRRFFFSC8vLy8vQnlFRlFRQWhCa0VBSVFJRFFDQUVJQUpCS0d4cUlnRW9BaGdFUUNBQklBWWdBU2dDRUNJQklBVklJZ2NiSVFZZ0FTQUZJQWNiSVFVTElBSkJBV29pQWlBRFRRMEFDd0pBSUFaRkRRQWdBQ2dDRENBQUtBSVFJZ0pCQkhScUlnRWdCaWdDQURZQ0FDQUJJQVlvQWlRMkFnd2dBU0FHS0FJY05nSUVJQUVnQmlnQ0lEWUNDQ0FBSUFKQkFXbzJBaEFnQmtFQU5nSVlJQVlvQWhRTkFDQUFJQWxCZjJvaUNUWUNMQXNnQ1NBRFN3MEFDd3dCQ3lBQktBSUFJUUlnQUNnQ0RDQUFLQUlRSWdOQkJIUnFJZ0VnQlRZQ0RDQUJJQUkyQWdBZ0FTQUhOZ0lJSUFFZ0JqWUNCQ0FBSUFOQkFXbzJBaEFnQUNnQ0hDRURDeUFBS0FJQUlBTkJBV29RSndzTDFBc0NBbjhCZmlNQVFaQUJheUlFSkFBZ0JFRUFOZ0lNQWtBQ1FBSkFJQUFvQXBBYVJRMEFJQUFvQXBRYUlBRkhEUUFnQkNBQVFhUWFhaWtDQURjREdDQUFLUUtjR2lFR0lBUkJBRFlDR0NBRUlBWTNBeEFnQkVFQU5nSWdJQVFnQmo0Q0ZDQURJQUFvQXBnYU5nSUFEQUVMUVFNaEJTQUJJQUlnQkVFUWFpQURFR01OQVNBQUlBUXBBeEEzQXB3YUlBQkJyQnBxSUFRb0FpQTJBZ0FnQUVHa0dtb2dCQ2tER0RjQ0FDQURLQUlBSVFJZ0FDQUJOZ0tVR2lBQUlBSTJBcGdhQzBFQUlRVWdBRUVBTmdLUUdpQUVRUkJxSUFSQmlBRnFFRThFUUVFRElRVU1BUXNnQkNnQ2lBRkJmMnBCQzBzTkFDQUVRUkJxSUFSQmlBRnFJQUFnQkVFTWFoQXlJZ0VFUUVFRUlRVWdBVUh3L3dOR0RRRkJBeUVGREFFTEFrQWdCQ2dDREFSQUFrQWdBQ2dDb0FsRkRRQWdBQ2dDRUVVTkFFRURJUVVnQUNnQ3RCb05Bd0pBSUFBb0FxUUpSUVJBSUFCQnhBbHFJZ0lpQVNBQktBSUFJQUVvQWh4QktHeHFJZ0UyQWdnZ0FDQUJLQUlBTmdLNENpQUNFQ1lnQUNBQVFiZ0tha0VBRUNVTUFRc2dBQ0FBUWJnS2FpQUFRZHdLYWlnQ0FCQWxDeUFEUVFBMkFnQWdBRUVBTmdLY0NTQUFRUUUyQXBBYURBSUxJQUJCQURZQ25Ba2dBRUVBTmdLa0NRc2dCQ2dDaUFGQmYyb2lBVUVIU3cwQkFrQUNRQUpBSUFGQkFXc09Cd1FFQkFJRUFBRUNDeUFFUVJCcUlBUkJLR29RUXdSQUlBUW9BbEFRQkNBRVFRQTJBbEFnQkNnQ2ZCQUVJQVJCQURZQ2ZFRURJUVVNQkFzZ0FDQUVRU2hxRURjTUF3c2dCRUVRYWlBRVFTaHFFRXdFUUNBRUtBSThFQVFnQkVFQU5nSThJQVFvQWtBUUJDQUVRUUEyQWtBZ0JDZ0NSQkFFSUFSQkFEWUNSQ0FFS0FKVUVBUWdCRUVBTmdKVVFRTWhCUXdEQ3lBQUlBUkJLR29RTmd3Q0N5QUFLQUtjQ1EwQklBQkJBVFlDb0FrQ1FDQUFLQUtrQ1EwQUlBQkNBRGNDdEFrZ0JFRVFhaUFFUVNocUVDQWFJQUFvQWdnaEFTQUFJQVFvQWlnZ0JDZ0NpQUZCQlVZUU5TSUNCRUFnQUVLQWdvQ0FnQVEzQWdRZ0FFRUFOZ0swR2lBQVFnQTNBZ3hCQlVFRUlBSkIvLzhEUmhzaEJRd0RDeUFCSUFBb0FnaEdEUUFnQUNnQ0VDRUJJQVJCQVRZQ0NDQUFLQUlBSWdKQkgwMEVRQ0FBSUFKQkFuUnFLQUlVSVFVTElBTkJBRFlDQUNBQVFRRTJBcEFhQWtBQ1FBSkFJQVFvQW9nQlFRVkhEUUFnQkVFSWFpQUVRUkJxSUFFZ0FDZ0NEQkE0SUFRb0FnaHlEUUFnQlVVTkFDQUFRZndKYWlnQ0FBMEFJQVVvQWpRZ0FTZ0NORWNOQUNBRktBSTRJQUVvQWpoSERRQWdCU2dDV0NBQktBSllSZzBCQ3lBQVFZQUtha0VBTmdJQURBRUxJQUJCeEFscUVGa0xJQUFnQUNnQ0NEWUNBRUVDSVFVTUFnc2dBQ2dDdEJvRVFFRURJUVVNQWdzZ0JFRVFhaUFBUWJRU2FpSUNJQUFvQWhBZ0FDZ0NEQ0FFUVlnQmFoQStCRUJCQXlFRkRBSUxJQUFvQXFRSlJRUkFBa0FnQkNnQ2lBRkJCVVlOQUNBQVFjUUphaUFBUWNBU2FpZ0NBQ0FFS0FLTUFVRUFSeUFBS0FJUUtBSXdFRnBGRFFCQkF5RUZEQU1MSUFCQnhBbHFJZ0VnQVNnQ0FDQUJLQUljUVNoc2FpSUJOZ0lJSUFBZ0FTZ0NBRFlDdUFvTElBQkIyQXBxSUFKQjNBY1FGU0VCSUFCQkFUWUNwQWtnQUNBRUtRT0lBVGNDMEFvZ0FDZ0NsQWtnQUNnQ0RDQUFRWmdMYWlnQ0FDQUFLQUlRSWdJb0FqUWdBaWdDT0JBL0lBQkJ4QWxxSWdJUUppQUNJQUJCbkF0cUlBQkI1QXBxS0FJQUlBQkJoQXRxS0FJQUVGOEVRRUVESVFVTUFnc2dCRUVRYWlBQUlBQkJ1QXBxSUFFUVFRUkFJQUFnQUNnQzJBb1FRRUVESVFVTUFnc2dBQkF6UlEwQklBQkJBVFlDbkFrTElBQkJ1QXBxSWdFZ0FDZ0N2QWtRU1NBQUVEUWdBRUdFQ21vZ0FDZ0NFQ0FBUWRnS2FpQUFRZEFLYWhCTklRSUNRQ0FBS0FLa0NVVU5BQ0FBUWNRSmFpRURJQUJCMUFwcUtBSUFCRUFnQXlBQVFld01haUFCSUFCQjVBcHFLQUlBSUFJZ0FDZ0MwQXBCQlVZZ0FDZ0N1QWtnQUNnQ3RBa1FLUXdCQ3lBRFFRQWdBU0FBUWVRS2FpZ0NBQ0FDSUFBb0F0QUtRUVZHSUFBb0FyZ0pJQUFvQXJRSkVDa0xJQUJDQURjQ29BbEJBU0VGQ3lBRVFaQUJhaVFBSUFVTHFBd0JDMzhDUUNBQlFRUlBCRUJCQUNBRGF5SU5RUUYwSVFvQ1FDQUFJQU5ySWdVdEFBQWlCaUFBTFFBQUlnaHJJZ0VnQVVFZmRTSUJhaUFCY3lBQ0tBSUVJZ0ZQRFFBZ0FDQUthaTBBQUNJSElBWnJJZ1FnQkVFZmRTSUVhaUFFY3lBQ0tBSUlJZ3hQRFFBZ0FDQURhaTBBQUNJRUlBaHJJZ3NnQzBFZmRTSUxhaUFMY3lBTVR3MEFJQVVnQkNBR2FpQUhRUUYwYWtFQ2FrRUNkam9BQUNBQUlBZ2dCRUVCZEdvZ0IycEJBbXBCQW5ZNkFBQWdBaWdDQkNFQkN3SkFJQUJCQVdvaUJpQU5haUlNTFFBQUlnZ2dBQzBBQVNJSGF5SUVJQVJCSDNVaUJHb2dCSE1nQVU4TkFDQUdJQXBxTFFBQUlnUWdDR3NpQlNBRlFSOTFJZ1ZxSUFWeklBSW9BZ2dpQzA4TkFDQURJQVpxTFFBQUlnVWdCMnNpQ1NBSlFSOTFJZ2xxSUFseklBdFBEUUFnRENBRklBaHFJQVJCQVhScVFRSnFRUUoyT2dBQUlBWWdCeUFGUVFGMGFpQUVha0VDYWtFQ2Rqb0FBQ0FDS0FJRUlRRUxBa0FnQUVFQ2FpSUdJQTFxSWd3dEFBQWlDQ0FBTFFBQ0lnZHJJZ1FnQkVFZmRTSUVhaUFFY3lBQlR3MEFJQVlnQ21vdEFBQWlCQ0FJYXlJRklBVkJIM1VpQldvZ0JYTWdBaWdDQ0NJTFR3MEFJQU1nQm1vdEFBQWlCU0FIYXlJSklBbEJIM1VpQ1dvZ0NYTWdDMDhOQUNBTUlBVWdDR29nQkVFQmRHcEJBbXBCQW5ZNkFBQWdCaUFISUFWQkFYUnFJQVJxUVFKcVFRSjJPZ0FBSUFJb0FnUWhBUXNDUUNBQVFRTnFJZ1lnRFdvaURDMEFBQ0lJSUFBdEFBTWlCMnNpQkNBRVFSOTFJZ1JxSUFSeklBRlBEUUFnQmlBS2FpMEFBQ0lFSUFocklnVWdCVUVmZFNJRmFpQUZjeUFDS0FJSUlndFBEUUFnQXlBR2FpMEFBQ0lGSUFkcklna2dDVUVmZFNJSmFpQUpjeUFMVHcwQUlBd2dCU0FJYWlBRVFRRjBha0VDYWtFQ2Rqb0FBQ0FHSUFjZ0JVRUJkR29nQkdwQkFtcEJBblk2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJCR29pQmlBTmFpSU1MUUFBSWdnZ0FDMEFCQ0lIYXlJRUlBUkJIM1VpQkdvZ0JITWdBVThOQUNBR0lBcHFMUUFBSWdRZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFJb0FnZ2lDMDhOQUNBRElBWnFMUUFBSWdVZ0Iyc2lDU0FKUVI5MUlnbHFJQWx6SUF0UERRQWdEQ0FGSUFocUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFZZ0J5QUZRUUYwYWlBRWFrRUNha0VDZGpvQUFDQUNLQUlFSVFFTEFrQWdBRUVGYWlJR0lBMXFJZ3d0QUFBaUNDQUFMUUFGSWdkcklnUWdCRUVmZFNJRWFpQUVjeUFCVHcwQUlBWWdDbW90QUFBaUJDQUlheUlGSUFWQkgzVWlCV29nQlhNZ0FpZ0NDQ0lMVHcwQUlBTWdCbW90QUFBaUJTQUhheUlKSUFsQkgzVWlDV29nQ1hNZ0MwOE5BQ0FNSUFVZ0NHb2dCRUVCZEdwQkFtcEJBblk2QUFBZ0JpQUhJQVZCQVhScUlBUnFRUUpxUVFKMk9nQUFJQUlvQWdRaEFRc0NRQ0FBUVFacUlnWWdEV29pREMwQUFDSUlJQUF0QUFZaUIyc2lCQ0FFUVI5MUlnUnFJQVJ6SUFGUERRQWdCaUFLYWkwQUFDSUVJQWhySWdVZ0JVRWZkU0lGYWlBRmN5QUNLQUlJSWd0UERRQWdBeUFHYWkwQUFDSUZJQWRySWdrZ0NVRWZkU0lKYWlBSmN5QUxUdzBBSUF3Z0JTQUlhaUFFUVFGMGFrRUNha0VDZGpvQUFDQUdJQWNnQlVFQmRHb2dCR3BCQW1wQkFuWTZBQUFnQWlnQ0JDRUJDeUFOSUFCQkIyb2lEV29pQ0MwQUFDSUdJQUF0QUFjaUFHc2lCeUFIUVI5MUlnZHFJQWR6SUFGUERRRWdDaUFOYWkwQUFDSUJJQVpySWdvZ0NrRWZkU0lLYWlBS2N5QUNLQUlJSWdwUERRRWdBeUFOYWkwQUFDSUNJQUJySWdNZ0EwRWZkU0lEYWlBRGN5QUtUdzBCSUFnZ0FpQUdhaUFCUVFGMGFrRUNha0VDZGpvQUFDQU5JQUFnQWtFQmRHb2dBV3BCQW1wQkFuWTZBQUFQQzBFQUlBTnJJZ2RCQVhRaEJDQUJJQUlvQWdCcVFYOXFMUUFBSWdGQkFXb2hCaUFCUVg5eklRaEJDQ0VCQTBBQ1FDQUFJQWRxSWdVdEFBQWlDaUFBTFFBQUlnMXJJZ3dnREVFZmRTSU1haUFNY3lBQ0tBSUVUdzBBSUFBZ0JHb3RBQUFpRENBS2F5SUxJQXRCSDNVaUMyb2dDM01nQWlnQ0NDSUxUdzBBSUFBZ0Eyb3RBQUFpQ1NBTmF5SU9JQTVCSDNVaURtb2dEbk1nQzA4TkFDQUZJQW9nQ0NBR0lBMGdDbXRCQW5RZ0NXc2dER3BCQkdwQkEzVWlDaUFLSUFaS0d5QUtJQWhJR3lJS2FrR3dMbW90QUFBNkFBQWdBQ0FOSUFwclFiQXVhaTBBQURvQUFBc2dBRUVCYWlFQUlBRkJmMm9pQVEwQUN3c0w2Z2dCQW44Z0FVRUFRYmdIRUFjaEFrRUJJUUVDUUFKQUlBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBZ0FDUUNBRFFRRkhEUUFnQUVFSUVBTWlBMEYvUmcwQklBSWdBellDQkNBRFFmOEJSdzBBSUFCQkVCQURJZ05CZjBZTkFTQUNJQU0yQWdnZ0FFRVFFQU1pQTBGL1JnMEJJQUlnQXpZQ0RBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDRUNBRFFRRkdCRUFnQUVFQkVBTWlBMEYvUmcwQklBSWdBMEVCUmpZQ0ZBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDR0FKQUFrQWdBMEVCUmdSQUlBQkJBeEFESWdOQmYwWU5BeUFDSUFNMkFod2dBRUVCRUFNaUEwRi9SZzBESUFJZ0EwRUJSallDSUNBQVFRRVFBeUlEUVg5R0RRTWdBaUFEUVFGR05nSWtJQU5CQVVjTkFTQUFRUWdRQXlJRFFYOUdEUU1nQWlBRE5nSW9JQUJCQ0JBRElnTkJmMFlOQXlBQ0lBTTJBaXdnQUVFSUVBTWlBMEYvUncwQ0RBTUxJQUpCQlRZQ0hBc2dBa0tDZ0lDQUlEY0NLRUVDSVFNTElBSWdBellDTUNBQVFRRVFBeUlEUVg5R0RRQWdBaUFEUVFGR05nSTBBa0FnQTBFQlJ3MEFJQUFnQWtFNGFoQUNJZ0VOQVNBQ0tBSTRRUVZMRFFJZ0FDQUNRVHhxRUFJaUFRMEJJQUlvQWp4QkJVME5BQXdDQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDUUNBRFFRRkdCRUFnQUJBUElRRWdBRUVnRUFzaEF5QUJSUTBDSUFOQmYwWU5BaUFDSUFFMkFrUWdBQkFQSVFFZ0FFRWdFQXNoQXlBQlJRMENJQU5CZjBZTkFpQUNJQUUyQWtoQkFTRUJJQUJCQVJBRElnTkJmMFlOQVNBQ0lBTkJBVVkyQWt3TElBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBbEFDUUNBRFFRRkdCRUFnQUNBQ1FkUUFhaEFjSWdGRkRRRU1BZ3NnQWtFQk5nSlVJQUpDbUlDQWdJQUROd0xvQXlBQ1FwaUFnSUNBQXpjQzRBTWdBa0dCa0txSkFUWUM0QUVnQWtHQmtLcUpBVFlDWUF0QkFTRUJJQUJCQVJBRElnTkJmMFlOQUNBQ0lBTkJBVVkyQXZBREFrQWdBMEVCUmdSQUlBQWdBa0gwQTJvUUhDSUJSUTBCREFJTElBSkJBVFlDOUFNZ0FrS1lnSUNBZ0FNM0FvZ0hJQUpDbUlDQWdJQUROd0tBQnlBQ1FZRzR1UElBTmdLQUJTQUNRWUc0dVBJQU5nS0FCQXNDUUNBQ0tBSlFSUVJBSUFJb0F2QURSUTBCQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBCSUFJZ0EwRUJSallDa0FjTFFRRWhBU0FBUVFFUUF5SURRWDlHRFFBZ0FpQURRUUZHTmdLVUJ5QUFRUUVRQXlJRFFYOUdEUUFnQWlBRFFRRkdOZ0tZQndKQUlBTkJBVVlFUUNBQVFRRVFBeUlEUVg5R0RRSWdBaUFEUVFGR05nS2NCeUFBSUFKQm9BZHFFQUlpQVEwQ0lBSW9BcUFIUVJCTERRTWdBQ0FDUWFRSGFoQUNJZ0VOQWlBQ0tBS2tCMEVRU3cwRElBQWdBa0dvQjJvUUFpSUJEUUlnQWlnQ3FBZEJFRXNOQXlBQUlBSkJyQWRxRUFJaUFRMENRUUVoQVNBQ0tBS3NCMEVRU3cwQ0lBQWdBa0d3QjJvUUFpSUJEUUlnQUNBQ1FiUUhhaEFDSWdGRkRRRU1BZ3NnQWtFUU5nSzBCeUFDUXBDQWdJQ0FBamNDckFjZ0FrS0JnSUNBZ0FJM0FxUUhJQUpDZ1lDQWdDQTNBcHdIQzBFQUlRRUxJQUVQQzBFQkMwMEJBbjhqQUVFUWF5SURKQUJCQVNFRUFrQWdBQ0FEUVF4cUVBSU5BQ0FES0FJTUlnQkJMMHNOQUNBQlFkQS9RWURBQUNBQ0d5QUFhaTBBQURZQ0FFRUFJUVFMSUFOQkVHb2tBQ0FFQ3o0QkFuOENRQ0FBS0FJTVFRTjBJQUFvQWhCcklnRkZCRUFNQVF0QkFTRUNJQUZCQ0VzTkFFRUJJQUZCZjJwMElBQVFEMEVnSUFGcmRrY1BDeUFDQ3pJQkFuOENRRUdBZ0lEQUFDSUJJQUJ4RFFBRFFDQUNRUUZxSVFJZ0FVRUJkaUlCUlEwQklBQWdBWEZGRFFBTEN5QUNDNG9DQVFkL0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRUNRUUVoQXlBQlFRWlBCRUJCQUNFRElBSWdBVUdRUEdvdEFBQkJmMnAwSVFJTElBQWdBQ2dDQUNJQklBQW9BZ2dpQkdzaUJTQUFLQUlFSWdZZ0FDZ0NEQ0lIYXlJSWF5QUNiQ0FEZFRZQ0RDQUFJQVVnQ0dvZ0Ftd2dBM1UyQWdnZ0FDQUJJQVJxSWdFZ0JpQUhhaUlFYXlBQ2JDQURkVFlDQkNBQUlBRWdCR29nQW13Z0EzVTJBZ0FnQUNBQUtBSWNJZ0VnQUNnQ0ZDSUVhaUlGSUFBb0FoZ2lCaUFBS0FJUUlnZHFJZ2hxSUFKc0lBTjFOZ0lRSUFBZ0JDQUJheUlCSUFjZ0Jtc2lCR29nQW13Z0EzVTJBaGdnQUNBSUlBVnJJQUpzSUFOMU5nSVVJQUFnQkNBQmF5QUNiQ0FEZFRZQ0hBdlBDQUVVZnlBQUlBQW9BaXdpQWlBQUtBSU1JZ1pxSWdVZ0FDZ0NOQ0lFSUFBb0FpQWlFR29pQ21zaUVUWUNMQ0FBS0FJb0lRTWdBQ0FHSUFKcklnY2dFQ0FFYXlJRWF5SUdOZ0lvSUFBb0FpUWhBaUFBSUFRZ0Iyb2lCRFlDSkNBQUlBVWdDbW9pQlRZQ0lDQUFJQUFvQWh3aUNpQUFLQUlJSWdkcUlnZ2dBQ2dDTUNJTUlBQW9BaEFpQ1dvaUMyc2lFRFlDSENBQUtBSVlJUThnQUNBSElBcHJJZ2NnQ1NBTWF5SU1heUlLTmdJWUlBQW9BaFFoQ1NBQUlBY2dER29pQnpZQ0ZDQUFJQWdnQzJvaUNEWUNFQ0FBSUFrZ0FDZ0NBQ0lMYWlJU0lBOGdBQ2dDQkNJTmFpSU9heUlNTmdJTUlBQWdDeUFKYXlJSklBMGdEMnNpQzJzaUR6WUNDQ0FBSUFrZ0Myb2lDVFlDQkNBQUlBNGdFbW9pQ3pZQ0FDQUFJQUlnQUNnQ09DSU5haUlUSUFNZ0FDZ0NQQ0lPYWlJVWF5SVNOZ0k4SUFBZ0FpQU5heUlDSUFNZ0Rtc2lBMnNpRFRZQ09DQUFJQUlnQTJvaURqWUNOQ0FBSUJNZ0ZHb2lFellDTUNBQlFaQThhaTBBQUNFQ0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRURJQUZCREU4RVFDQUFJQU1nQWtGK2FuUWlBU0FGSUF0cUlnTWdDQ0FUYWlJQ2EydzJBakFnQUNBTElBVnJJZ1VnQ0NBVGF5SUlheUFCYkRZQ0lDQUFJQVVnQ0dvZ0FXdzJBaEFnQUNBQ0lBTnFJQUZzTmdJQUlBQWdCQ0FKYWlJRElBY2dEbW9pQW1zZ0FXdzJBalFnQUNBSklBUnJJZ1FnQnlBT2F5SUZheUFCYkRZQ0pDQUFJQVFnQldvZ0FXdzJBaFFnQUNBQ0lBTnFJQUZzTmdJRUlBQWdCaUFQYWlJRElBb2dEV29pQW1zZ0FXdzJBamdnQUNBUElBWnJJZ1lnQ2lBTmF5SUVheUFCYkRZQ0tDQUFJQVFnQm1vZ0FXdzJBaGdnQUNBQ0lBTnFJQUZzTmdJSUlBQWdEQ0FSYXlJRElCQWdFbXNpQW1zZ0FXdzJBaXdnQUNBQ0lBTnFJQUZzTmdJY0lBQWdFQ0FTYWlJRElBd2dFV29pQW1vZ0FXdzJBZ3dnQUNBQ0lBTnJJQUZzTmdJOER3c2dBRUVCUVFJZ0FVRjZha0VHU1JzaUFTQUZJQXRxSWhRZ0NDQVRhaUlWYXlBRGJHcEJBaUFDYXlJQ2RUWUNNQ0FBSUFzZ0JXc2lCU0FJSUJOcklnaHJJQU5zSUFGcUlBSjFOZ0lnSUFBZ0JTQUlhaUFEYkNBQmFpQUNkVFlDRUNBQUlCUWdGV29nQTJ3Z0FXb2dBblUyQWdBZ0FDQUVJQWxxSWdVZ0J5QU9haUlJYXlBRGJDQUJhaUFDZFRZQ05DQUFJQWtnQkdzaUJDQUhJQTVySWdkcklBTnNJQUZxSUFKMU5nSWtJQUFnQkNBSGFpQURiQ0FCYWlBQ2RUWUNGQ0FBSUFVZ0NHb2dBMndnQVdvZ0FuVTJBZ1FnQUNBR0lBOXFJZ1FnQ2lBTmFpSUZheUFEYkNBQmFpQUNkVFlDT0NBQUlBOGdCbXNpQmlBS0lBMXJJZ3BySUFOc0lBRnFJQUoxTmdJb0lBQWdCaUFLYWlBRGJDQUJhaUFDZFRZQ0dDQUFJQVFnQldvZ0Eyd2dBV29nQW5VMkFnZ2dBQ0FNSUJGcklnWWdFQ0FTYXlJRWF5QURiQ0FCYWlBQ2RUWUNMQ0FBSUFRZ0Jtb2dBMndnQVdvZ0FuVTJBaHdnQUNBUUlCSnFJZ1lnRENBUmFpSVJhaUFEYkNBQmFpQUNkVFlDRENBQUlCRWdCbXNnQTJ3Z0FXb2dBblUyQWp3THZRVUJCbjhqQUVFZ2F5SUZKQUFnQTBFQU5nSUFBa0FnQVNnQ0FDSUdRUkpMRFFCQkFTQUdkQ0lHUWNEZkgzRkZCRUFnQmtFaWNVVU5BU0FDUWJRS2FpZ0NBQVJBSUFOQkFUWUNBQ0FDUVFBMkFyUUtDeUFBSUFWQkhHb1FJQ0lFRFFGQjhQOERJUVFnQWlBRktBSWNRUUowYWlnQ2xBRWlDRVVOQVNBQ0lBZ29BZ1FpQmtFQ2RHb29BaFFpQjBVTkFRSkFJQUlvQWdnaUNVRWdSZzBBSUFZZ0NVWU5BQ0FCS0FJQVFRVkhEUUlMQWtBZ0FrR1lDbW9vQWdBaUJDQUJLQUlFSWdaR0RRQWdCRUVBSUFZYkRRQWdBMEVCTmdJQUN5QUJLQUlBSVFRQ1FBSkFJQUlvQXBRS1FRVkdCRUFnQkVFRlJ3MEJEQUlMSUFSQkJVY05BUXNnQTBFQk5nSUFDMEVCSVFRZ0FDQUhLQUlNSUFWQkdHb1FQUTBCSUFVb0FoZ2lCaUFDUVp3S2FpZ0NBRWNFUUNBQ0lBWTJBcHdLSUFOQkFUWUNBQXNnQVNnQ0FFRUZSZ1JBSUFBZ0J5Z0NEQ0FGUVJScUVEd05BZ0pBSUFJb0FwUUtRUVZIQkVBZ0JTZ0NGQ0VFREFFTElBSkJvQXBxS0FJQUlnUWdCU2dDRkNJR1JnMEFJQU5CQVRZQ0FDQUdJUVFMSUFKQm9BcHFJQVEyQWdBTEFrQWdCeWdDRUNJRVFRRkxEUUFnQkVFQmF3UkFRUUVoQkNBQUlBY2dBU2dDQUNBRlFRaHFFRHNOQXlBRktBSUlJZ1FnQWtHa0Ntb29BZ0JIQkVBZ0FpQUVOZ0trQ2lBRFFRRTJBZ0FMSUFnb0FnaEZEUUVnQUNBSElBRW9BZ0FnQlVFUWFoQTZJZ1FOQXlBRktBSVFJZ0FnQWtHb0Ntb29BZ0JHRFFFZ0FpQUFOZ0tvQ2lBRFFRRTJBZ0FNQVFzZ0J5Z0NHQTBBSUFBZ0J5QUJLQUlBSUFnb0FnZ2dCVUVJYWhBNUlnUU5BaUFGS0FJSUlnQWdBa0dzQ21vb0FnQkhCRUFnQWlBQU5nS3NDaUFEUVFFMkFnQUxJQWdvQWdoRkRRQWdCU2dDRENJQUlBSkJzQXBxS0FJQVJnMEFJQUlnQURZQ3NBb2dBMEVCTmdJQUN5QUNJQUVwQWdBM0FwUUtRUUFoQkF3QkN5QURRUUUyQWdBTElBVkJJR29rQUNBRUMzOEJBMzhDUUFKQUFrQWdBRUg4Q21vb0FnQUVRQ0FBS0FLWUNTSUREUUZCQVE4TFFRRWhBU0FBUWF3SmFpZ0NBQ0FBS0FLWUNVY05BUXdDQ3lBQUtBSzhDU0VCUVFBaEFBTkFJQUlnQVNBQVFkZ0JiR29vQXNRQlFRQkhhaUVDSUFCQkFXb2lBQ0FEUncwQUMwRUJJUUVnQWlBRFJnMEJDMEVBSVFFTElBRUxTZ0VEZnlBQVFnQTNBcWdKSUFBb0FwZ0pJZ0VFUUNBQUtBSzhDU0VDUVFBaEFBTkFJQUlnQUVIWUFXeHFJZ05CQURZQ3hBRWdBMEVBTmdJRUlBQkJBV29pQUNBQlJ3MEFDd3NMZ3dZQkRIOUJBU0VHQWtBZ0FDQUJRUUowYWlnQ2xBRWlCRVVOQUNBQUlBUW9BZ1FpQ1VFQ2RHb2lDa0VVYWlnQ0FDSURSUTBBQWtBZ0JDZ0NEQ0lGUVFKSkRRQWdBeWdDTkNJSElBTW9BamhzSVFnQ1FDQUVLQUlRSWdOQkFrc05BQUpBQWtBQ1FDQURRUUZyRGdJREFBRUxJQVZCZjJvaEN5QUVLQUljSVF3Z0JDZ0NHQ0VOUVFBaEF3d0JDeUFFS0FJVUlRZEJBQ0VEQTBBZ0J5QURRUUowYWlnQ0FDQUlUUVJBSUFVZ0EwRUJhaUlEUncwQkRBUUxDMEVCRHdzRFFDQU5JQU5CQW5RaUJXb29BZ0FpRGlBRklBeHFLQUlBSWdWTERRTWdCU0FJVHcwRElBNGdCM0FnQlNBSGNFMEVRQ0FEUVFGcUlnTWdDMFlOQXd3QkN3dEJBUThMSUFOQmZXcEJBazBFUUNBRUtBSWtJQWhORFFFTUFnc2dBMEVHUncwQUlBUW9BaWdnQ0VrTkFRc0NRQ0FBS0FJRUlnTkJnQUpHQkVBZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQW9BclFhQkVBZ0FFRUFOZ0swR2lBQUtBSzhDUkFFSUFCQkFEWUN2QWtnQUNnQ2xBa1FCQ0FBSUFBb0FwZ0pJZ0ZCMkFGc0lnUVFDaUlDTmdLOENTQUFJQUZCQW5RUUNpSUROZ0tVQ1VILy93TWhCaUFDUlEwQ0lBTkZEUUlnQWtFQUlBUVFCeUFBS0FJUUtBSTBJQUVRVGlBQUtBSVFJUUZCQVNFQ0FrQWdBQ2dDd0FrTkFDQUJLQUlRUVFKR0RRQUNRQ0FCS0FKUVJRMEFJQUVvQWxRaUJDZ0NtQWRGRFFBZ0JDZ0NzQWRGRFFFTFFRQWhBZ3NnQUVIRUNXb2dBU2dDT0NBQktBSTBiQ0FCS0FKWUlBRW9BaXdnQVNnQ0RDQUNFRndpQmtVTkFRd0NDeUFCSUFOR0RRQWdBQ2dDQ0NBSlJ3UkFJQUpGRFFJZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQWdCRFlDRENBQUlBRTJBZ1FMUVFBaEJnc2dCZ3UyQVFFRGZ3SkFJQUFnQVNnQ0FDSURRUUowYWlJQ0tBS1VBU0lFUlFSQUlBSkJ5QUFRQ2lJQU5nS1VBU0FBRFFFUEN3SkFJQU1nQUNnQ0JFY05BQ0FCS0FJRUlBQW9BZ2hHRFFBZ0FFR0JBallDQkFzZ0JDZ0NGQkFFSUFJb0FwUUJRUUEyQWhRZ0FpZ0NsQUVvQWhnUUJDQUNLQUtVQVVFQU5nSVlJQUlvQXBRQktBSWNFQVFnQWlnQ2xBRkJBRFlDSENBQ0tBS1VBU2dDTEJBRUlBSW9BcFFCUVFBMkFpd0xJQUlvQXBRQklBRkJ5QUFRRlJvTDFnRUJBMzhDUUNBQUlBRW9BZ2dpQTBFQ2RHb2lBaWdDRkNJRVJRUkFJQUpCM0FBUUNpSUFOZ0lVSUFBTkFROExJQUFvQWdnZ0EwWUVRQ0FCSUFBb0FoQVFRZ1JBSUFJb0FoUW9BaWdRQkNBQ0tBSVVRUUEyQWlnZ0FpZ0NGQ2dDVkJBRUlBSW9BaFJCQURZQ1ZDQUFRUUEyQWhBZ0FFR0JBallDQkNBQVFpRTNBZ2dNQWdzZ0FTZ0NLQkFFSUFGQkFEWUNLQ0FCS0FKVUVBUWdBVUVBTmdKVUR3c2dCQ2dDS0JBRUlBSW9BaFJCQURZQ0tDQUNLQUlVS0FKVUVBUWdBaWdDRkVFQU5nSlVDeUFDS0FJVUlBRkIzQUFRRlJvTDBnSUJBMzhqQUVFZ2F5SUVKQUFnQkNBQktBSVFOZ0lRSUFRZ0FTa0NDRGNEQ0NBRUlBRXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUJEUUFnQkNBRVFSeHFFQUlpQVEwQUlBUWdCRUVjYWhBQ0lnRU5BQ0FDS0FJTUlRWkJBQ0VCQTBBZ0FTSUZRUUZxSVFFZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQVF3QkN5QUVJQVJCSEdvUUFpSUJEUUFDUUNBQ0tBSVFJZ0VFZnlBQkJTQUNLQUlVSVFaQkFDRUJBMEFnQVNJRlFRRnFJUUVnQmlBRmRnMEFDeUFFSUFWQmYyb1FBMEYvUmdSQVFRRWhBUXdEQ3lBREtBSUlCRUFnQkNBRVFSaHFFQVVpQVEwREN5QUNLQUlRQzBFQlJ3MEFJQUlvQWhnTkFDQUVJQVJCR0dvUUJTSUJEUUVnQXlnQ0NFVU5BQ0FFSUFSQkdHb1FCU0lCRFFFTElBTW9Ba1FFUUNBRUlBUkJIR29RQWlJQkRRRUxJQUFnQkVFQkVBTWlBRFlDQUNBQVFYOUdJUUVMSUFSQklHb2tBQ0FCQzhZQkFRSi9Jd0JCSUdzaUJTUUFJQVVnQUNnQ0VEWUNFQ0FGSUFBcEFnZzNBd2dnQlNBQUtRSUFOd01BQWtBZ0JTQUZRUnhxRUFJaUFBMEFJQVVnQlVFY2FoQUNJZ0FOQUNBRklBVkJIR29RQWlJQURRQWdBU2dDRENFR1FRQWhBQU5BSUFBaUFVRUJhaUVBSUFZZ0FYWU5BQXNnQlNBQlFYOXFFQU5CZjBZRVFFRUJJUUFNQVFzZ0FrRUZSZ1JBSUFVZ0JVRWNhaEFDSWdBTkFRc2dCU0FFRUFVaUFBMEFJQU1FUUNBRklBUkJCR29RQlNJQURRRUxRUUFoQUFzZ0JVRWdhaVFBSUFBTDRRRUJBMzhqQUVFZ2F5SUVKQUFnQkNBQUtBSVFOZ0lRSUFRZ0FDa0NDRGNEQ0NBRUlBQXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUFEUUFnQkNBRVFSeHFFQUlpQUEwQUlBUWdCRUVjYWhBQ0lnQU5BQ0FCS0FJTUlRWkJBQ0VBQTBBZ0FDSUZRUUZxSVFBZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUNRUVZHQkVBZ0JDQUVRUnhxRUFJaUFBMEJDeUFCS0FJVUlRSkJBQ0VBQTBBZ0FDSUJRUUZxSVFBZ0FpQUJkZzBBQ3lBRUlBRkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUVJQU1RQlNFQUN5QUVRU0JxSkFBZ0FBdm1BUUVEZnlNQVFTQnJJZ1FrQUNBRUlBQW9BaEEyQWhBZ0JDQUFLUUlJTndNSUlBUWdBQ2tDQURjREFBSkFJQVFnQkVFY2FoQUNJZ0FOQUNBRUlBUkJIR29RQWlJQURRQWdCQ0FFUVJ4cUVBSWlBQTBBSUFFb0Fnd2hCa0VBSVFBRFFDQUFJZ1ZCQVdvaEFDQUdJQVYyRFFBTElBUWdCVUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQUpCQlVZRVFDQUVJQVJCSEdvUUFpSUFEUUVMSUFFb0FoUWhBa0VBSVFBRFFDQUFJZ0ZCQVdvaEFDQUNJQUYyRFFBTElBUWdBVUYvYWhBRElnQkJmMFlFUUVFQklRQU1BUXNnQXlBQU5nSUFRUUFoQUFzZ0JFRWdhaVFBSUFBTGtnRUJBbjhqQUVFZ2F5SURKQUFnQXlBQUtBSVFOZ0lRSUFNZ0FDa0NBRGNEQUNBRElBQXBBZ2czQXdnQ1FDQURJQU5CSEdvUUFpSUFEUUFnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BRUVBSVFBRFFDQUFJZ1JCQVdvaEFDQUJJQVIyRFFBTElBTWdCRUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQU1nQWhBQ0lRQUxJQU5CSUdva0FDQUFDNWNCQVFKL0l3QkJJR3NpQXlRQUlBTWdBQ2dDRURZQ0VDQURJQUFwQWdnM0F3Z2dBeUFBS1FJQU53TUFBa0FnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BQ0FESUFOQkhHb1FBaUlBRFFCQkFDRUFBMEFnQUNJRVFRRnFJUUFnQVNBRWRnMEFDeUFESUFSQmYyb1FBeUlBUVg5R0JFQkJBU0VBREFFTElBSWdBRFlDQUVFQUlRQUxJQU5CSUdva0FDQUFDNjhPQVFwL0l3QkJFR3NpQlNRQUlBRkJBRUhjQnhBSElRY2dBaWdDTkNFR0lBSW9BamdoQ0FKQUlBQWdCVUVFYWhBQ0lnRU5BQ0FISUFVb0FnUWlBVFlDQUNBQklBWWdDR3dpQzA4RVFFRUJJUUVNQVFzZ0FDQUZRUVJxRUFJaUFRMEFJQWNnQlNnQ0JDSUdOZ0lFSUFaQkIwc0VRRUVCSVFFTUFRdEJBU0VCQWtBQ1FDQUdRUUZyRGdjQ0FRSUNBQUlCQUFzZ0JDZ0NBRUVGUmdSQURBSUxJQUlvQWl3TkFBd0JDeUFBSUFWQkJHb1FBaUlCRFFBZ0J5QUZLQUlFSWdZMkFnaEJBU0VCSUFZZ0F5Z0NBRWNOQUNBQ0tBSU1JUWhCQUNFQkEwQWdBU0lHUVFGcUlRRWdDQ0FHZGcwQUMwRUJJUUVnQUNBR1FYOXFFQU1pQmtGL1JnMEFJQVpCQUNBRUtBSUFJZ2hCQlVZYkRRQWdCeUFHTmdJTUlBaEJCVVlFUUNBQUlBVkJCR29RQWlJQkRRRWdCeUFGS0FJRUlnWTJBaEJCQVNFQklBWkIvLzhEU3cwQkN3SkFJQUlvQWhBaUFRUi9JQUVGSUFJb0FoUWhDRUVBSVFFRFFDQUJJZ1pCQVdvaEFTQUlJQVoyRFFBTElBQWdCa0YvYWhBRElnRkJmMFlFUUVFQklRRU1Bd3NnQnlBQk5nSVVJQU1vQWdnRVFDQUFJQVVRQlNJQkRRTWdCeUFGS0FJQU5nSVlDeUFFS0FJQVFRVkdCRUJCQVNFQklBY29BaFFpQmlBQ0tBSVVRUUYyU3cwRElBWkJBQ0FIS0FJWUlnaEJIM1VnQ0hGclJ3MERDeUFDS0FJUUMwRUJSdzBBSUFJb0FoZ05BQ0FBSUFVUUJTSUJEUUVnQnlBRktBSUFOZ0ljSUFNb0FnZ0VRQ0FBSUFVUUJTSUJEUUlnQnlBRktBSUFOZ0lnQ3lBRUtBSUFRUVZIRFFCQkFTRUJJQWNvQWh3aUJpQUhLQUlnSUFZZ0FpZ0NJR3BxSWdnZ0JpQUlTQnNOQVFzZ0F5Z0NSQVJBSUFBZ0JVRUVhaEFDSWdFTkFTQUhJQVVvQWdRaUJqWUNKRUVCSVFFZ0JrSC9BRXNOQVFzQ1FDQUhLQUlFSWdGQkJVc05BQUpBSUFGQkFXc09CQUVCQVFFQUMwRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDS0FKQUlBWUVRQ0FBSUFWQkJHb1FBaUlCRFFOQkFTRUJJQVVvQWdRaUJrRVBTdzBESUFaQkFXb2hCZ3dCQ3lBREtBSXdJZ1pCRUVzTkFnc2dCeUFHTmdJc0lBY29BZ1FoQVFzQ1FDQUJRUVZMRFFBQ1FDQUJRUUZyRGdRQkFRRUJBQXNnQWlnQ0RDRUpJQWNvQWl3aENrRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDUkNBR1JRMEFRUUFoQVFOQUlBRWlCaUFLU3dSQVFRRWhBUXdEQ3lBQUlBVkJDR29RQWlJQkRRSWdCU2dDQ0NJQlFRTkxCRUJCQVNFQkRBTUxJQWNnQmtFTWJHb2lDQ0FCTmdKSUFrQWdBVUVCVFFSQUlBQWdCVUVNYWhBQ0lnRU5CQ0FGS0FJTUlnRWdDVThFUUVFQklRRU1CUXNnQ0NBQlFRRnFOZ0pNREFFTElBRkJBa2NOQUNBQUlBVkJER29RQWlJQkRRTWdDQ0FGS0FJTU5nSlFDeUFHUVFGcUlRRWdCU2dDQ0VFRFJ3MEFDMEVCSVFFZ0JrVU5BUXNDUUNBRUtBSUVSUTBBSUFRb0FnQWhCQ0FDS0FJc0lRbEJBU0VCSUFCQkFSQURJUUlnQkVFRlJnUkFJQUpCZjBZTkFpQUhJQUkyQXBRQ0lBQkJBUkFESWdKQmYwWU5BaUFISUFJMkFwZ0NJQWtOQVNBQ1JRMEJEQUlMSUFKQmYwWU5BU0FISUFJMkFwd0NJQUpGRFFBZ0NVRUJkRUVEYWlFT1FRQWhCa0VBSVFwQkFDRUVBMEFnQmlBT1JnUkFRUUVoQVF3REN5QUFJQVZCQ0dvUUFpSUJEUUlnQlNnQ0NDSUNRUVpMQkVCQkFTRUJEQU1MSUFjZ0JrRVViR29pQ0NBQ05nS2dBZ0ovSUFKQkFuSkJBMFlFUUNBQUlBVkJER29RQWlJQkRRUWdDQ0FGS0FJTVFRRnFOZ0trQWlBRktBSUlJUUlMSUFKQkFrWUxCRUFnQUNBRlFReHFFQUlpQVEwRElBZ2dCU2dDRERZQ3FBSWdCU2dDQ0NFQ0N3SkFJQUpCZldvaUFVRURTdzBBQWtBZ0FVRUJhdzRDQVFFQUN5QUFJQVZCREdvUUFpSUJEUU1nQ0NBRktBSU1OZ0tzQWlBRktBSUlJUUlMSUFKQkJFWUVRQ0FBSUFWQkRHb1FBaUlCRFFNZ0JTZ0NEQ0lCSUFsTEJFQkJBU0VCREFRTElBZ2dBVUYvYWtILy93TWdBUnMyQXJBQ0lBcEJBV29oQ2lBRktBSUlJUUlMSUFaQkFXb2hCaUFNSUFKQkJrWnFJUXdnQkNBQ1FRVkdhaUVFSUEwZ0FrRi9ha0VEU1dvaERTQUNEUUFMUVFFaEFTQUVJQXB5SUF4eVFRRkxEUUVnQkVVTkFDQU5EUUVMSUFBZ0JSQUZJZ0VOQUNBSElBVW9BZ0FpQVRZQ01DQUZJQUVnQXlnQ05Hb2lBallDQUVFQklRRWdBa0V6U3cwQUFrQWdBeWdDUEVVTkFDQUFJQVZCQkdvUUFpSUJEUUVnQnlBRktBSUVJZ0kyQWpSQkFTRUJJQUpCQWtzTkFTQUNRUUZHRFFBZ0FDQUZFQVVpQVEwQlFRRWhBU0FGS0FJQUlnSkJCbXBCREVzTkFTQUhJQUpCQVhRMkFqZ2dBQ0FGRUFVaUFRMEJRUUVoQVNBRktBSUFJZ0pCQm1wQkRFc05BU0FISUFKQkFYUTJBandMQWtBZ0F5Z0NERUVDU1EwQUlBTW9BaEJCZldwQkFrc05BRUVDUVFFZ0N5QUxJQU1vQWlRaUFXNGlBaUFCYkdzYklBSnFJUVJCQUNFQ0EwQWdCQ0FDSWdGQkFXb2lBbllOQUFzZ0JTQUFJQUlnQVNBRVFYOGdBWFJCZjNOeEd4QURJZ0EyQWdSQkFTRUJJQUJCZjBZTkFTQUhJQUEyQWtBZ0FDQUxJQU1vQWlRaUFHcEJmMm9nQUc1TERRRUxRUUFoQVFzZ0JVRVFhaVFBSUFFTHdRa0JEWDhnQXlBRWJDRUZJQUVvQWd3aUNVRUJSZ1JBSUFCQkFDQUZRUUowRUFjYUR3c0NRQUpBQWtBQ1FDQUJLQUlRSWdaQmZXcEJBazBFUUNBQktBSWtJQUpzSWdJZ0JTQUNJQVZKR3lFTElBWkJmbkZCQkVjTkFTQUZJQXRySUFzZ0FTZ0NJQnNoQndzQ1FBSkFBa0FnQmtFRlRRUkFJQVpCQVdzT0JRWUZCQU1DQVFzZ0JVVU5CaUFCS0FJc0lRSkJBQ0VCQTBBZ0FDQUJRUUowSWdOcUlBSWdBMm9vQWdBMkFnQWdBVUVCYWlJQklBVkhEUUFMREFZTEFrQWdDUVJBSUFFb0FoUWhBa0VBSVFZTUFRc2dCVVVOQmdOQURBQUFDd0FMQTBCQkFDRUVJQVlnQlU4TkJnTkFRUUFoQndKQUlBSWdCRUVDZEdvaUF5Z0NBQ0lCUlEwQUlBRWhCeUFGSUFaTkRRQkJBQ0VCUVFBZ0JTQUdheUlISUFjZ0JVc2JJUWdEUUNBQUlBRWdCbXBCQW5ScUlBUTJBZ0FnQVVFQmFpSUJJQU1vQWdBaUIwOE5BU0FCSUFoSERRQUxDeUFFUVFGcUlnUWdDVWxCQUNBR0lBZHFJZ1lnQlVrYkRRQUxJQVlnQlVrTkFBc01CUXNnQTBVTkJDQUVSUTBFUVFFZ0FTZ0NJQ0lKYXlFSVFRQWhCVUVBSVFJRFFFRUFJUUVnQlNFR0EwQWdBQ0FCSUFOc0lBSnFRUUowYWlBSklBZ2dCaUFIU1JzMkFnQWdCa0VCYWlFR0lBRkJBV29pQVNBRVJ3MEFDeUFFSUFWcUlRVWdBa0VCYWlJQ0lBTkhEUUFMREFRTElBVkZEUU5CQVNBQktBSWdJZ0pySVFOQkFDRUJBMEFnQUNBQlFRSjBhaUFDSUFNZ0FTQUhTUnMyQWdBZ0FVRUJhaUlCSUFWSERRQUxEQU1MSUFFb0FpQWhBaUFGQkVCQkFDRUJBMEFnQUNBQlFRSjBha0VCTmdJQUlBRkJBV29pQVNBRlJ3MEFDd3NnQzBVTkFpQURRWDlxSVE4Z0JFRi9haUVRSUFKQmYyb2hCa0VCSUFKQkFYUWlBV3NoQlNBQlFYOXFJUWtnQkNBQ2EwRUJkaUlLSVF3Z0F5QUNhMEVCZGlJTklRUWdDaUVJSUEwaEFVRUFJUWNEUUNBQUlBTWdDR3dnQVdwQkFuUnFJZzRvQWdBaUVVRUJSZ1JBSUE1QkFEWUNBQXNnRVVFQlJpRU9Ba0FDUUNBR1FYOUhEUUFnQVNBRVJ3MEFRUUFoQmlBSklRSWdCRUVCSUFSQkFVb2JRWDlxSWdFaEJBd0JDd0pBSUFaQkFVY05BQ0FCSUExSERRQkJBQ0VHSUFVaEFpQU5RUUZxSWdFZ0R5QUJJQTlJR3lJQklRME1BUXNDUUNBQ1FYOUhEUUFnQ0NBTVJ3MEFRUUFoQWlBRklRWWdERUVCSUF4QkFVb2JRWDlxSWdnaERBd0JDd0pBSUFKQkFVY05BQ0FJSUFwSERRQkJBQ0VDSUFraEJpQUtRUUZxSWdnZ0VDQUlJQkJJR3lJSUlRb01BUXNnQWlBSWFpRUlJQUVnQm1vaEFRc2dCeUFPYWlJSElBdEpEUUFMREFJTElBRW9BaHdoQnlBQktBSVlJUWdnQlFSQUlBbEJmMm9oQWtFQUlRRURRQ0FBSUFGQkFuUnFJQUkyQWdBZ0FVRUJhaUlCSUFWSERRQUxJQUpGRFFJTElBbEJmbW9oQVFOQUFrQWdDQ0FCSWdSQkFuUWlBV29vQWdBaUJpQURiaUlDSUFFZ0Iyb29BZ0FpQVNBRGJpSUZTdzBBSUFZZ0FpQURiR3NpQmlBQklBTWdCV3hySWdsTEJFQURRQ0FDUVFGcUlnSWdCVTBOQUF3Q0FBc0FDd05BSUFJZ0Eyd2hDaUFHSVFFRFFDQUFJQUVnQ21wQkFuUnFJQVEyQWdBZ0FVRUJhaUlCSUFsTkRRQUxJQUpCQVdvaUFpQUZUUTBBQ3dzZ0JFRi9haUVCSUFRTkFBc01BUXNnQlVVTkFFRUFJUUVEUUNBQUlBRkJBblJxSUFFZ0EyNGlBaUFKYkVFQmRpQUJJQUlnQTJ4cmFpQUpjRFlDQUNBQlFRRnFJZ0VnQlVjTkFBc0xDOFFCQVFWL0lBQW9BcWdKSVFRQ1FDQUFRYkFKYWlnQ0FDSUNSUTBBSUFKQmYyb2lBaUFCVFFSQUlBSWhBUXdCQ3lBQUtBSzhDU0VGQTBBQ1FDQUZJQUpCMkFGc2FpZ0NCQ0FFUncwQUlBTkJBV29pQXlBQUtBSVFLQUkwSWdaQkNpQUdRUXBMRzBrTkFDQUNJUUVNQWdzZ0FrRi9haUlDSUFGTERRQUxDd05BQWtBZ0FDZ0N2QWtnQVVIWUFXeHFJZ0lvQWdRZ0JFY05BQ0FDS0FMRUFTSURSUTBBSUFJZ0EwRi9hallDeEFFZ0FDZ0NsQWtnQUNnQ21Ba2dBUkFlSWdFTkFRc0xDNzBFQWd0L0FYNGpBRUhBQTJzaUJTUUFJQU1vQWdBaEJ5QUJLQUt3R2lFSUlBVkJBRFlDRENBQlFiQUpha0VBTmdJQUlBRWdBU2dDcUFsQkFXbzJBcWdKSUFVZ0F5Z0NNQ0FCS0FJTUtBSTBhallDQ0NBQlFjUUphaUVOSUFoQkRHb2hEZ0pBQTBBZ0FTZ0N2QWtoQkFKQUlBTW9BaVFOQUNBRUlBZEIyQUZzYWlnQ3hBRkZEUUJCQVNFRURBSUxJQU1wQWpRaER5QURLQUk4SVFzZ0FTZ0NxQWtoRENBRUlBZEIyQUZzSWdacUlnUWdBU2dDRENnQ09EWUNHQ0FFSUFzMkFoQWdCQ0FQTndJSUlBUWdERFlDQkFKQUlBTW9BZ1FpQkVFQ1JnMEFJQWtOQUNBRVFRZEdEUUFnQUNBRlFReHFFQUlpQkEwQ0lBVW9BZ3dpQkNBQktBS1lDU0FIYTBzRVFFRUJJUVFNQXdzZ0JFVUVRRUVBSVFrTUFRc2dEa0VBUWFRQkVBY2FJQWhCQURZQ0FFRUJJUWtMQWtBZ0JTZ0NEQ0lFQkVBZ0JTQUVRWDlxTmdJTURBRUxRUUFoQ1NBQUlBZ2dBU2dDdkFrZ0Jtb2dBeWdDQkNBREtBSXNFRkVpQkEwQ0N5QUJLQUs4Q1NBR2FpQUlJQUlnRFNBRlFRaHFJQWNnQVNnQ0RDZ0NRQ0FGUVJCcUVGQWlCQTBCSUFFb0Fyd0pJQVpxS0FMRUFTRUxJQUFRTGlFRUlBVW9BZ3doQmdKQUlBTW9BZ1JCZm1vaURFRUZTdzBBQWtBZ0RFRUJhdzRFQVFFQkFRQUxJQUVnQnpZQ3NBa0xJQVFnQm5JaEJrRUJJUVFnQVNnQ2xBa2dBU2dDbUFrZ0J4QWVJZ2RGUVFBZ0Joc05BU0FLSUF0QkFVWnFJUW9nQmcwQUN5QUJRYXdKYWlnQ0FDQUthaUlBSUFFb0FwZ0pTdzBBSUFFZ0FEWUNyQWxCQUNFRUN5QUZRY0FEYWlRQUlBUUw1Z0lCQjM5QkFTRUNBa0FnQUNnQ0FDQUJLQUlBUncwQUlBQW9BZ1FnQVNnQ0JFY05BQ0FBS0FJTUlBRW9BZ3hIRFFBZ0FDZ0NFQ0lESUFFb0FoQkhEUUFnQUNnQ0xDQUJLQUlzUncwQUlBQW9BakFnQVNnQ01FY05BQ0FBS0FJMElBRW9BalJIRFFBZ0FDZ0NPQ0FCS0FJNFJ3MEFJQUFvQWp3aUJTQUJLQUk4UncwQUlBQW9BbEFnQVNnQ1VFY05BQUpBSUFOQkFVc05BQ0FEUVFGclJRUkFJQUFvQWhnZ0FTZ0NHRWNOQWlBQUtBSWNJQUVvQWh4SERRSWdBQ2dDSUNBQktBSWdSdzBDSUFBb0FpUWlCQ0FCS0FJa1J3MENJQVJGRFFFZ0FTZ0NLQ0VHSUFBb0FpZ2hCMEVBSVFNRFFDQUhJQU5CQW5RaUNHb29BZ0FnQmlBSWFpZ0NBRWNOQXlBRUlBTkJBV29pQTBjTkFBc01BUXNnQUNnQ0ZDQUJLQUlVUncwQkN5QUZCRUFnQUNnQ1FDQUJLQUpBUncwQklBQW9Ba1FnQVNnQ1JFY05BU0FBS0FKSUlBRW9Ba2hIRFFFZ0FDZ0NUQ0FCS0FKTVJ3MEJDMEVBSVFJTElBSUwvd2tCQm44akFFRVFheUlFSkFBZ0FVRUFRZHdBRUFjaEF3SkFJQUJCQ0JBRElnRkJmMFlFUUVFQklRRU1BUXNnQXlBQk5nSUFJQUJCQVJBREdpQUFRUUVRQXhvZ0FFRUJFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUZFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUlFQU1pQVVGL1JnUkFRUUVoQVF3QkN5QURJQUUyQWdRZ0FDQURRUWhxRUFJaUFRMEFJQU1vQWdoQkgwc0VRRUVCSVFFTUFRc2dBQ0FFUVF4cUVBSWlBUTBBUVFFaEFTQUVLQUlNSWdKQkRFc05BQ0FEUVFFZ0FrRUVhblEyQWd3Z0FDQUVRUXhxRUFJaUFRMEFRUUVoQVNBRUtBSU1JZ0pCQWtzTkFDQURJQUkyQWhBQ1FDQUNRUUZMRFFBZ0FrRUJhd1JBSUFBZ0JFRU1haEFDSWdFTkFrRUJJUUVnQkNnQ0RDSUNRUXhMRFFJZ0EwRUJJQUpCQkdwME5nSVVEQUVMSUFCQkFSQURJZ0pCZjBZTkFTQURJQUpCQVVZMkFoZ2dBQ0FEUVJ4cUVBVWlBUTBCSUFBZ0EwRWdhaEFGSWdFTkFTQUFJQU5CSkdvUUFpSUJEUUZCQVNFQklBTW9BaVFpQWtIL0FVc05BU0FDQkVBZ0F5QUNRUUowRUFvaUFUWUNLQ0FCUlFSQVFmLy9BeUVCREFNTElBQWdBUkFGSWdFTkFrRUJJUUlEUUNBQ0lBTW9BaVJQRFFJZ0FrRUNkQ0VCSUFKQkFXb2hBaUFBSUFFZ0F5Z0NLR29RQlNJQlJRMEFDd3dDQ3lBRFFRQTJBaWdMSUFBZ0EwRXNhaEFDSWdFTkFFRUJJUUVnQXlnQ0xFRVFTdzBBSUFCQkFSQURJZ0pCZjBZTkFDQURJQUpCQVVZMkFqQWdBQ0FFUVF4cUVBSWlBUTBBSUFNZ0JDZ0NERUVCYWpZQ05DQUFJQVJCREdvUUFpSUJEUUJCQVNFQklBTWdCQ2dDREVFQmFqWUNPQ0FBUVFFUUEwRUJha0VDU1EwQUlBQkJBUkFEUVg5R0RRQWdBRUVCRUFNaUFrRi9SZzBBSUFNZ0FrRUJSaUlCTmdJOEFrQWdBVVVFUUNBREtBSTRJUVVnQXlnQ05DRUdEQUVMSUFBZ0EwRkFheEFDSWdFTkFTQUFJQU5CeEFCcUVBSWlBUTBCSUFBZ0EwSElBR29RQWlJQkRRRWdBQ0FEUWN3QWFoQUNJZ0VOQVVFQklRRWdBeWdDUUNBREtBSkVRWDl6SUFNb0FqUWlCa0VEZEdwS0RRRWdBeWdDU0NBREtBSk1RWDl6SUFNb0FqZ2lCVUVEZEdwS0RRRUxBa0FDUUFKQUFrQWdBeWdDQkVGMmFpSUhRU2xMRFFCQjR3QWhBVUdBcEFraEFnSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQjBFQmF3NHBBQUVCQ3dzTEN3c0xBUUlEQ3dzTEN3c0xDd01FQlFzTEN3c0xDd3NHQmdjTEN3c0xDd3NMQ0FrS0MwR01BeUVCUVlDTUZTRUNEQWtMUVl3RElRRkJnTmczSVFJTUNBdEJtQVloQVVHQXNPOEFJUUlNQnd0QjFBd2hBVUdBN0wwQklRSU1CZ3RCa0J3aEFVR0E4S1VESVFJTUJRdEJnQ2doQVVHQWdPQURJUUlNQkF0QmdNQUFJUUZCZ0lDQUJpRUNEQU1MUVlERUFDRUJRWUNBc0FZaEFnd0NDMEhBckFFaEFVR0F3SnNVSVFJTUFRdEJnS0FDSVFGQmdJRGdJU0VDQ3lBQklBVWdCbXdpQVU4TkFRc2dCRUgvLy8vL0J6WUNEQ0FES0FJc0lRSU1BUXNnQkNBQ0lBRkJnQU5zYmlJQlFSQWdBVUVRU1JzaUFUWUNEQ0FES0FJc0lnSWdBVTBOQVFzZ0JDQUNOZ0lNSUFJaEFRc2dBeUFCTmdKWVFRRWhBU0FBUVFFUUF5SUNRWDlHRFFBZ0F5QUNRUUZHTmdKUUFrQWdBa0VCUncwQUlBTkJ1QWNRQ2lJQk5nSlVJQUZGQkVCQi8vOERJUUVNQWdzZ0FDQUJFQ3dpQVEwQklBTW9BbFFpQWlnQ21BZEZEUUJCQVNFQklBSW9BckFISUFJb0FyUUhJZ0pMRFFFZ0FpQURLQUlzU1EwQklBSWdBeWdDV0VzTkFTQURJQUpCQVNBQ0d6WUNXQXNnQUJBZlFRQWhBUXNnQkVFUWFpUUFJQUVMalFRQkRuOGdBUUovQWtBZ0FDOEJJQ0lIRFFBZ0FDOEJIQTBBUVFBTUFRdEJBZ3MyQWlBZ0FRSi9Ba0FnQUM4QklpSUNEUUFnQUM4QkhnMEFRUUFNQVF0QkFnczJBaWdnQVFKL0FrQWdBQzhCS0NJRERRQWdBQzhCSkEwQVFRQU1BUXRCQWdzMkFqQWdBUUovQWtBZ0FDOEJLaUlJRFFBZ0FDOEJKZzBBUVFBTUFRdEJBZ3MyQWpnZ0FTQUhJQUF2QVN3aUNYSkJBRWRCQVhRMkFrQWdBU0FDSUFBdkFTNGlCSEpCQUVkQkFYUTJBa2dnQVNBRElBQXZBVFFpQlhKQkFFZEJBWFEyQWxBZ0FTQUlJQUF2QVRZaUNuSkJBRWRCQVhRMkFsZ2dBU0FBTHdFd0lnMGdDWEpCQUVkQkFYUTJBbUFnQVNBQUx3RXlJZ3NnQkhKQkFFZEJBWFEyQW1nZ0FTQUFMd0U0SWd3Z0JYSkJBRWRCQVhRMkFuQWdBU0FBTHdFNklnNGdDbkpCQUVkQkFYUTJBbmhCQWlFR0lBRWdBQzhCSGlJUEJIOUJBZ1VnQUM4QkhFRUFSMEVCZEFzMkFnd2dBU0FQSUFBdkFTUWlCbkpCQUVkQkFYUTJBaFFnQUM4QkppRUFJQUVnRENBT2NrRUFSMEVCZERZQ2ZDQUJJQXNnREhKQkFFZEJBWFEyQW5RZ0FTQUxJQTF5UVFCSFFRRjBOZ0pzSUFFZ0JTQUtja0VBUjBFQmREWUNYQ0FCSUFRZ0JYSkJBRWRCQVhRMkFsUWdBU0FFSUFseVFRQkhRUUYwTmdKTUlBRWdBeUFJY2tFQVIwRUJkRFlDUENBQklBSWdBM0pCQUVkQkFYUTJBalFnQVNBQ0lBZHlRUUJIUVFGME5nSXNJQUVnQUNBR2NrRUFSMEVCZERZQ0hBdk1CZ0VMZnlNQVFZQU9heUlPSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0NHb2dCRXNOQUNBSFFRVnFJZ29nQTJvZ0JVc05BQ0FFSVFnZ0F5RUpEQUVMSUFBZ0RrSEFDbW9nQWlBRElBUWdCU0FJSUFkQkJXb2lDaUFJRUF3Z0RrSEFDbW9oQUVFQUlRSUxBa0FnQ2tVTkFDQUdRUUoySWhCRkRRQWdDQ0FHYXlFUklBQWdDQ0FKYkNBQ2FtcEJCV29oQWlBT0lRQURRQ0FDUVg5cUxRQUFJUWdnQWtGK2FpMEFBQ0VESUFKQmZXb3RBQUFoQlNBQ1FYeHFMUUFBSVFRZ0FrRjdhaTBBQUNFTUlCQWhEUU5BSUFBZ0FpMEFBQ0lKSUF3Z0JDQUlhaUlMYXlBRElBVnFRUlJzYWlBTFFRSjBhMm8yQWdBZ0FDQUNMUUFCSWdzZ0F5QUlha0VVYkNBRWFpQUZJQWxxSWdScklBUkJBblJyYWpZQ0JDQUFJQUl0QUFJaUR5QUlJQWxxUVJSc0lBVnFJQU1nQzJvaUJHc2dCRUVDZEd0cU5nSUlJQUFnQWkwQUF5SVNJQWtnQzJwQkZHd2dBMm9nQ0NBUGFpSURheUFEUVFKMGEybzJBZ3dnQUVFUWFpRUFJQUpCQkdvaEFpQUlJUXdnQ1NFRUlBc2hCU0FQSVFNZ0VpRUlJQTFCZjJvaURRMEFDeUFDSUJGcUlRSWdDa0YvYWlJS0RRQUxDd0pBSUFkQkFuWWlCMFVOQUNBR1JRMEFRY0FBSUFacklROGdEaUFHUVFKMGFpSUlJQVpCRkd4cUlRSkJBQ0FHYXlJUVFRTjBJUklnQmtFRGRDRUpJQVpCQTJ4QkFuUWhDd05BSUFZaEJBTkFJQUVnQ0NBSmFpZ0NBQ0lBSUFJZ0NXb29BZ0FnQWlBR1FRSjBJZzFxS0FJQUlnb2dBaUFTYWlnQ0FDSURhaUlGYXlBRlFRSjBhMm9nQWlnQ0FDSU1JQUlnRUVFQ2RDSVJhaWdDQUNJRmFrRVViR3BCZ0FScVFRcDFRYkF1YWkwQUFEb0FNQ0FCSUFnZ0RXb29BZ0FpRFNBS0lBTWdCV3BCRkd4cUlBQWdER29pQ21zZ0NrRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQTZBQ0FnQVNBSUtBSUFJZ29nRENBQUlBTnFRUlJzYWlBRklBMXFJZ3hySUF4QkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQU9nQVFJQUVnQ0NBUmFpZ0NBQ0FGSUFBZ0RXcEJGR3hxSUFNZ0Ntb2lBR3NnQUVFQ2RHdHFRWUFFYWtFS2RVR3dMbW90QUFBNkFBQWdDRUVFYWlFSUlBRkJBV29oQVNBQ1FRUnFJUUlnQkVGL2FpSUVEUUFMSUFFZ0Qyb2hBU0FDSUF0cUlRSWdDQ0FMYWlFSUlBZEJmMm9pQncwQUN3c2dEa0dBRG1va0FBdmxBd0VKZnlNQVFjQURheUlLSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0F5QUhhaUFGU3cwQUlBTkJBRWdOQUNBQ0lBaHFJQVJMRFFBZ0JDRUlJQU1oQ1F3QkN5QUFJQW9nQWlBRElBUWdCU0FJSUFjZ0NCQU1JQW9oQUVFQUlRSUxBa0FnQjBVTkFDQUdRUUoySWcxRkRRQkJFQ0FHYXlFT0lBZ2dCbXNoRHlBQUlBZ2dDV3dnQW1wcVFRVnFJUUlEUUNBQ1FYOXFMUUFBSVFnZ0FrRithaTBBQUNFR0lBSkJmV290QUFBaEFDQUNRWHhxTFFBQUlRVWdBa0Y3YWkwQUFDRUpJQTBoQ3dOQUlBRWdBaTBBQUNJRElBa2dCU0FJYWlJRWF5QUFJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FBSUFFZ0FpMEFBU0lFSUFVZ0JpQUlha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQU9nQUJJQUVnQWkwQUFpSU1JQUFnQXlBSWFrRVViR29nQkNBR2FpSUFheUFBUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBT2dBQ0lBRWdBaTBBQXlJUUlBWWdBeUFFYWtFVWJHb2dDQ0FNYWlJQWF5QUFRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FESUFGQkJHb2hBU0FDUVFScUlRSWdDQ0VKSUFNaEJTQUVJUUFnRENFR0lCQWhDQ0FMUVg5cUlnc05BQXNnQVNBT2FpRUJJQUlnRDJvaEFpQUhRWDlxSWdjTkFBc0xJQXBCd0FOcUpBQUw5UU1CQzM4akFFSEFBMnNpQ3lRQUFrQUNRQ0FDUVFCSURRQWdBMEVBU0EwQUlBSWdCbW9nQkVzTkFDQURJQWRxUVFWcUlBVkxEUUFnQXlFSURBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFZZ0IwRUZhaUFHRUF3Z0N5RUFJQVloQkVFQUlRSUxBa0FnQjBFQ2RpSU1SUTBBSUFaRkRRQkJ3QUFnQm1zaEVTQUVRUUYwSVEwZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVNJQUFnQkNBSWJDQUNhbW9nQkdvaUJ5QUVRUVZzYWlFQ0EwQWdCaUVBQTBBZ0FTQUhJQTFxTFFBQUlnTWdBaUFOYWkwQUFDQUNJQVJxTFFBQUlna2dBaUFTYWkwQUFDSUZhaUlJYXlBSVFRSjBhMm9nQWkwQUFDSUtJQUlnRDJvdEFBQWlDR3BCRkd4cVFSQnFRUVYxUWJBdWFpMEFBRG9BTUNBQklBUWdCMm90QUFBaUVDQUpJQVVnQ0dwQkZHeHFJQU1nQ21vaUNXc2dDVUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBRG9BSUNBQklBY3RBQUFpQ1NBS0lBTWdCV3BCRkd4cUlBZ2dFR29pQ21zZ0NrRUNkR3RxUVJCcVFRVjFRYkF1YWkwQUFEb0FFQ0FCSUFjZ0Qyb3RBQUFnQ0NBRElCQnFRUlJzYWlBRklBbHFJZ05ySUFOQkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBQWdCMEVCYWlFSElBRkJBV29oQVNBQ1FRRnFJUUlnQUVGL2FpSUFEUUFMSUFFZ0VXb2hBU0FDSUE1cUlRSWdCeUFPYWlFSElBeEJmMm9pREEwQUN3c2dDMEhBQTJva0FBdXFCZ0VOZnlNQVFiQUJheUlSSkFBZ0NFRUJhaUVLQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0Ntb2dCRXNOQUNBRElBbHFRUUZxSUFWTERRQWdCU0VNSUFRaENpQURJUThNQVFzZ0FDQVJJQUlnQXlBRUlBVWdDaUFKUVFGcUlnd2dDaEFNSUFBZ0JDQUZiR29nRVNBS0lBeHNhaUFDSUFNZ0JDQUZJQW9nRENBS0VBd2dFU0VBUVFBaEFnc0NRQ0FKUVFGMklnVkZEUUFnQ0VFQmRpSUVSUTBBUVJBZ0NHc2hFMEVJSUFkcklRdEJDQ0FHYXlFTklBcEJBWFFpRGlBSWF5RVVJQUFnQW1vaUZpQUtJQTlzYWlFQ0lBRWhBQ0FGSVJVRFFDQUNJQTVxTFFBQUlBZHNJQXNnQWlBS2FpMEFBQ0lEYkdvaENDQURJQWRzSUFzZ0FpMEFBR3hxSVFrZ0JDRURBMEFnQWtFQmFpSVFJQTVxTFFBQUlSSWdBQ0FKSUExc0lBb2dFR290QUFBaUNTQUhiQ0FMSUFJdEFBRnNhaUlRSUFac2FrRWdha0VHZGpvQUFDQUFJQWdnRFd3Z0J5QVNiQ0FKSUF0c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ0NBQ0xRQUNJUWtnQWtFQ2FpSUNJQTVxTFFBQUlSSWdBQ0FOSUJCc0lBSWdDbW90QUFBaUVDQUhiQ0FKSUF0c2FpSUpJQVpzYWtFZ2FrRUdkam9BQVNBQUlBZ2dEV3dnQnlBU2JDQUxJQkJzYWlJSUlBWnNha0VnYWtFR2Rqb0FDU0FBUVFKcUlRQWdBMEYvYWlJRERRQUxJQUlnRkdvaEFpQUFJQk5xSVFBZ0ZVRi9haUlWRFFBTElBRkJRR3NoQUNBV0lBd2dEMm9nQ214cUlRSURRQ0FDSUE1cUxRQUFJQWRzSUFzZ0FpQUthaTBBQUNJQmJHb2hDQ0FCSUFkc0lBc2dBaTBBQUd4cUlRa2dCQ0VEQTBBZ0FrRUJhaUlCSUE1cUxRQUFJUXdnQUNBSklBMXNJQUVnQ21vdEFBQWlBU0FIYkNBTElBSXRBQUZzYWlJSklBWnNha0VnYWtFR2Rqb0FBQ0FBSUFnZ0RXd2dCeUFNYkNBQklBdHNhaUlCSUFac2FrRWdha0VHZGpvQUNDQUNMUUFDSVFnZ0FrRUNhaUlDSUE1cUxRQUFJUXdnQUNBSklBMXNJQUlnQ21vdEFBQWlEeUFIYkNBSUlBdHNhaUlKSUFac2FrRWdha0VHZGpvQUFTQUFJQUVnRFd3Z0J5QU1iQ0FMSUE5c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ1NBQVFRSnFJUUFnQTBGL2FpSUREUUFMSUFJZ0ZHb2hBaUFBSUJOcUlRQWdCVUYvYWlJRkRRQUxDeUFSUWJBQmFpUUFDLzlFQVVGL0l3QkJzQUZySWdNa0FDQUFLQUlJSWdRRVFDQUFLQUlFSWg5QkEzUWhGaUFFSUI5c0lnUkJCblFoT3lBRVFRaDBJVHdnSDBFR2RDRTlJQjlCTUd3aFBpQWZRUVYwSVNVZ0gwRlFiQ0VyUVFBZ0gwRUVkQ0lhYXlJb1FRSjBJVDhnS0VFQmRDRXNJQU5CR0dvaElpQURRUXh5SVNNRFFBSkFJQUVvQWdnaUNVRUJSZzBBQWtBQ1FBSkFBa0FnQVNnQ3lBRWlBa1VFUUVFQklRWU1BUXRCQlNFR0lBbEJBa2NOQUVFRlFRRWdBU2dDQkNJSklBSW9BZ1JHR3lFR0lBRW9Bc3dCSWdRTkFVRUFJUVFNQXdzZ0FTZ0N6QUVpQkVVRVFFRUFJUVFNQXdzZ0NVRUNSdzBCSUFFb0FnUWhDUXNnQ1NBRUtBSUVSdzBCQ3lBR1FRSnlJUVlMQW44Z0JrRUNjU0l0QkVBQ1FDQUJLQUlBUVFWTkJFQWdCQ2dDQUVFR1NRMEJDeUFEUVFRMkFrQWdBMEVFTmdKSUlBTkJCRFlDT0NBRFFRUTJBakJCQVF3Q0MwRUNJUTlCQWlFSkFrQWdBUzhCSEEwQUlBUXZBVEFOQUVFQklRa2dBU2dDZENBRUtBSjhSdzBBSUFFdUFZUUJJQVF1QWF3QmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBRUxnR3VBV3NpQ1NBSlFSOTFJZ2xxSUFselFRTkxJUWtMSUFNZ0NUWUNNQUpBSUFFdkFSNE5BQ0FFTHdFeURRQkJBU0VQSUFFb0FuUWdCQ2dDZkVjTkFDQUJMZ0dJQVNBRUxnR3dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmlnRWdCQzRCc2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWpoQkFpRUZRUUloQ2dKQUlBRXZBU1FOQUNBRUx3RTREUUJCQVNFS0lBRW9BbmdnQkNnQ2dBRkhEUUFnQVM0QmxBRWdCQzRCdkFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBWllCSUFRdUFiNEJheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSkFBa0FnQVM4QkpnMEFJQVF2QVRvTkFFRUJJUVVnQVNnQ2VDQUVLQUtBQVVjTkFDQUJMZ0dZQVNBRUxnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0Qm1nRWdCQzRCd2dGcklnUWdCRUVmZFNJRWFpQUVjMEVEU3lFRkN5QURJQVUyQWtnZ0NTQVBjaUFLY2lBRmNrRUFSd3dCQ3lBRFFRQTJBa0FnQTBFQU5nSklJQU5CQURZQ09DQURRUUEyQWpCQkFBc2hDUUpBQWtBQ1FBSkFJQVpCQkhFaUxnUkFBa0FnQVNnQ0FDSUdRUVZOQkVBZ0FpZ0NBRUVHU1EwQkN5QURRUVEyQW5RZ0EwRUVOZ0tVQVNBRFFRUTJBbFFnQTBFRU5nSTBRUUVoQ1F3Q0MwRUNJUTlCQWlFRUFrQWdBUzhCSEEwQUlBSXZBU1lOQUVFQklRUWdBU2dDZENBQ0tBSjRSdzBBSUFFdUFZUUJJQUl1QVpnQmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBQ0xnR2FBV3NpQkNBRVFSOTFJZ1JxSUFSelFRTkxJUVFMSUFNZ0JEWUNOQUpBSUFFdkFTQU5BQ0FDTHdFcURRQkJBU0VQSUFFb0FuUWdBaWdDZUVjTkFDQUJMZ0dNQVNBQ0xnR2dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmpnRWdBaTRCb2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWxSQkFpRUZRUUloQ2dKQUlBRXZBU3dOQUNBQ0x3RTJEUUJCQVNFS0lBRW9BbndnQWlnQ2dBRkhEUUFnQVM0QnBBRWdBaTRCdUFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBYVlCSUFJdUFib0JheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSjBBa0FnQVM4Qk1BMEFJQUl2QVRvTkFFRUJJUVVnQVNnQ2ZDQUNLQUtBQVVjTkFDQUJMZ0dzQVNBQ0xnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0QnJnRWdBaTRCd2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFRkN5QURJQVUyQXBRQklBbEZEUUpCQVNFSkRBTUxJQU5CQURZQ2RDQURRUUEyQXBRQklBTkJBRFlDVkNBRFFRQTJBalFnQVNnQ0FDRUdDeUFHUVFaSkRRRWdBMEVETmdLZ0FTQURRb09BZ0lBd053S2tBU0FEUVFNMkFwQUJJQU5CQXpZQ2NDQURRUU0yQXF3QklBTkNnNENBZ0RBM0E1Z0JJQU5DZzRDQWdEQTNBNGdCSUFOQ2c0Q0FnREEzQTRBQklBTkNnNENBZ0RBM0EzZ2dBMEtEZ0lDQU1EY0RhQ0FEUW9PQWdJQXdOd05nSUFOQ2c0Q0FnREEzQTFnZ0EwS0RnSUNBTURjQ1RDQURRUU0yQWtRZ0EwRUROZ0k4REFJTElBUWdEM0lnQ25JZ0JYSkJBRWNoQ1FzQ1FBSi9JQVpCQTAwRVFDQUdRUUowUVl3MWFpZ0NBQXdCQzBFRUMwRUJSZ1JBSUFFZ0EwRXdhaEJFSUFNb0Fxd0JJUWNnQXlnQ3BBRWhEaUFES0FLY0FTRVFJQU1vQW93QklSa2dBeWdDaEFFaEJpQURLQUo4SVJjZ0F5Z0NiQ0VJSUFNb0FtUWhCQ0FES0FKY0lSUWdBeWdDVENFTUlBTW9Ba1FoQWlBREtBSThJUkVnQXlnQ3FBRWhIQ0FES0FLZ0FTRW1JQU1vQXBnQklRMGdBeWdDa0FFaEhTQURLQUtJQVNFU0lBTW9Bb0FCSVJVZ0F5Z0NlQ0ViSUFNb0FuQWhFeUFES0FKb0lRb2dBeWdDWUNFUElBTW9BbGdoQlNBREtBSlFJU2NNQVFzZ0F3Si9Ba0FnQXdKL0FrQUNRQ0FCS0FJQVFYNXFJZ1JCQVUwRVFDQUVRUUZyQkVBZ0F3Si9Ba0FnQVM4QklDSUVEUUFnQVM4QkhBMEFRUUFNQVF0QkFnc2lKellDVUNBREFuOENRQ0FCTHdFaUlnY05BQ0FCTHdFZURRQkJBQXdCQzBFQ0N5SUZOZ0pZSUFNQ2Z3SkFJQUV2QVNnaUJnMEFJQUV2QVNRTkFFRUFEQUVMUVFJTElnODJBbUFnQXdKL0FrQWdBUzhCS2lJT0RRQWdBUzhCSmcwQVFRQU1BUXRCQWdzaUNqWUNhQ0FEQW44Q1FDQUJMd0V3SWg0TkFDQUJMd0VzRFFCQkFBd0JDMEVDQ3lJZE5nS1FBU0FEQW44Q1FDQUJMd0V5SWhBTkFDQUJMd0V1RFFCQkFBd0JDMEVDQ3lJTk5nS1lBU0FEQW44Q1FDQUJMd0U0SWdzTkFDQUJMd0UwRFFCQkFBd0JDMEVDQ3lJbU5nS2dBU0FEQW44Q1FDQUJMd0U2SWhnTkFDQUJMd0UyRFFCQkFBd0JDMEVDQ3lJY05nS29BVUVDSVJ0QkFpRVRBa0FnQkNBQkx3RXNJaGR5RFFCQkFTRVRJQUV1QWFRQklBRXVBWXdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQkxnR21BU0FCTGdHT0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdBU2dDZkNBQktBSjBSeUVUQ3lBRElCTTJBbkFDUUNBSElBRXZBUzRpSUhJTkFFRUJJUnNnQVM0QnFBRWdBUzRCa0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRXVBYW9CSUFFdUFaSUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FCS0FKOElBRW9BblJISVJzTElBTWdHellDZUVFQ0lSSkJBaUVWQWtBZ0JpQUJMd0UwSWhseURRQkJBU0VWSUFFdUFiUUJJQUV1QVp3QmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJMZ0cyQVNBQkxnR2VBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEZRc2dBeUFWTmdLQUFRSkFJQTRnQVM4Qk5pSWhjZzBBUVFFaEVpQUJMZ0c0QVNBQkxnR2dBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVM0QnVnRWdBUzRCb2dGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9Bb0FCSUFFb0FuaEhJUklMSUFNZ0VqWUNpQUVnQVM4QkhnMENJQUV2QVJ3RVFFRUNJUkVnQTBFQ05nSThJQUV2QVNRaUNBMEdRUUFoREVFQURBY0xRUUFoRVNBRFFRQTJBanhCQUNFTVFRQWdBUzhCSkNJSVJRMEdHZ3dGQ3lBREFuOENRQ0FCTHdFZ0lnSU5BQ0FCTHdFY0RRQkJBQXdCQzBFQ0N5SW5OZ0pRSUFNQ2Z3SkFJQUV2QVNJaUJnMEFJQUV2QVI0TkFFRUFEQUVMUVFJTElnVTJBbGdnQXdKL0FrQWdBUzhCS0NJT0RRQWdBUzhCSkEwQVFRQU1BUXRCQWdzaUR6WUNZQ0FEQW44Q1FDQUJMd0VxSWdnTkFDQUJMd0VtRFFCQkFBd0JDMEVDQ3lJS05nSm9JQU1nQWlBQkx3RXNJaGR5UVFCSFFRRjBJaE0yQW5BZ0F5QUdJQUV2QVM0aUMzSkJBRWRCQVhRaUd6WUNlQ0FESUE0Z0FTOEJOQ0llY2tFQVIwRUJkQ0lWTmdLQUFTQURJQWdnQVM4Qk5pSVpja0VBUjBFQmRDSVNOZ0tJQVNBRElBRXZBVEFpRUNBWGNrRUFSMEVCZENJZE5nS1FBU0FESUFFdkFUSWlJQ0FMY2tFQVIwRUJkQ0lOTmdLWUFTQURJQUV2QVRnaUlTQWVja0VBUjBFQmRDSW1OZ0tnQVNBRElBRXZBVG9pQnlBWmNrRUFSMEVCZENJY05nS29BU0FEQW44Q1FDQUJMd0VlSWlRTkFDQUJMd0VjRFFCQkFBd0JDMEVDQ3lJUk5nSThJQUV2QVNZRVFDQUJMd0VrSVJnTUF3c2dBUzhCSkNJWURRSkJBQ0VZUVFBTUF3c2dBUzRCaGdFaEZDQUJMZ0dPQVNFRVFRSWhCU0FEQW45QkFpQUJMd0VjSWhFZ0FTOEJJQ0l2Y2cwQUdrRUJJQUV1QVl3QklBRXVBWVFCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUJvZ0JDQVVheUlHSUFaQkgzVWlCbW9nQm5OQkEwc0xJaWMyQWxBZ0FTNEJpZ0VoQ0NBQkxnR1NBU0VHQWtBZ0FTOEJIaUl3SUFFdkFTSWlFSElOQUVFQklRVWdBUzRCa0FFZ0FTNEJpQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUFZZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6UVFOTElRVUxJQU1nQlRZQ1dDQUJMZ0dXQVNFTUlBRXVBWjRCSVFkQkFpRUtJQU1DZjBFQ0lBRXZBU1FpTVNBQkx3RW9JaGR5RFFBYVFRRWdBUzRCbkFFZ0FTNEJsQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBR2lBSElBeHJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3c2lEellDWUNBQkxnR2FBU0V5SUFFdUFhSUJJUXNDUUNBQkx3RW1Ja0FnQVM4QktpSXpjZzBBUVFFaENpQUJMZ0dnQVNBQkxnR1lBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQ3lBeWF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzaENnc2dBeUFLTmdKb0lBRXVBYVlCSVI1QkFpRWJRUUloRXdKQUlDOGdBUzhCTENJMGNnMEFRUUVoRXlBQkxnR2tBU0FCTGdHTUFXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdIaUFFYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQktBSjhJQUVvQW5SSElSTUxJQU1nRXpZQ2NDQUJMZ0dxQVNFT0FrQWdFQ0FCTHdFdUloaHlEUUJCQVNFYklBRXVBYWdCSUFFdUFaQUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FPSUFacklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9BbndnQVNnQ2RFY2hHd3NnQXlBYk5nSjRJQUV1QWJZQklSbEJBaUVTUVFJaEZRSkFJQmNnQVM4Qk5DSWdjZzBBUVFFaEZTQUJMZ0cwQVNBQkxnR2NBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnR1NBSGF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJLQUtBQVNBQktBSjRSeUVWQ3lBRElCVTJBb0FCSUFFdUFib0JJU0VDUUNBeklBRXZBVFlpTlhJTkFFRUJJUklnQVM0QnVBRWdBUzRCb0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlDRWdDMnNpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEVnc2dBeUFTTmdLSUFTQUJMZ0d1QVNFMlFRSWhEU0FEQW45QkFpQTBJQUV2QVRBaVFYSU5BQnBCQVNBQkxnR3NBU0FCTGdHa0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWFJRFlnSG1zaUFpQUNRUjkxSWdKcUlBSnpRUU5MQ3lJZE5nS1FBU0FCTGdHeUFTRWtBa0FnR0NBQkx3RXlJamR5RFFCQkFTRU5JQUV1QWJBQklBRXVBYWdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBa0lBNXJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN5RU5DeUFESUEwMkFwZ0JJQUV1QWI0QklTbEJBaUVjSUFNQ2YwRUNJQ0FnQVM4Qk9DSTRjZzBBR2tFQklBRXVBYndCSUFFdUFiUUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQm9nS1NBWmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTElpWTJBcUFCSUFFdUFjSUJJVGtDUUNBMUlBRXZBVG9pUW5JTkFFRUJJUndnQVM0QndBRWdBUzRCdUFGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlEa2dJV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxJUndMSUFNZ0hEWUNxQUZCQWlFQ0lBTUNmMEVDSUJFZ01ISU5BQnBCQVNBQkxnR0lBU0FCTGdHRUFXc2lFU0FSUVI5MUloRnFJQkZ6UVFOTERRQWFJQWdnRkdzaUZDQVVRUjkxSWhScUlCUnpRUU5MQ3lJUk5nSThBa0FnTUNBeGNnMEFRUUVoQWlBQkxnR1VBU0FCTGdHSUFXc2lGQ0FVUVI5MUloUnFJQlJ6UVFOTERRQWdEQ0FJYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBQktBSjRJQUVvQW5SSElRSUxJQU1nQWpZQ1JFRUNJUlFnQXdKL1FRSWdNU0JBY2cwQUdrRUJJQUV1QVpnQklBRXVBWlFCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUJvZ01pQU1heUlJSUFoQkgzVWlDR29nQ0hOQkEwc0xJZ3cyQWt3Q1FDQVFJQzl5RFFCQkFTRVVJQUV1QVpBQklBRXVBWXdCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBR0lBUnJJZ1FnQkVFZmRTSUVhaUFFYzBFRFN5RVVDeUFESUJRMkFseEJBaUVJUVFJaEJBSkFJQkFnRjNJTkFFRUJJUVFnQVM0Qm5BRWdBUzRCa0FGckloQWdFRUVmZFNJUWFpQVFjMEVEU3cwQUlBY2dCbXNpQmlBR1FSOTFJZ1pxSUFaelFRTkxEUUFnQVNnQ2VDQUJLQUowUnlFRUN5QURJQVEyQW1RQ1FDQVhJRE55RFFCQkFTRUlJQUV1QWFBQklBRXVBWndCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUNBTElBZHJJZ1lnQmtFZmRTSUdhaUFHYzBFRFN5RUlDeUFESUFnMkFteEJBaUVHSUFNQ2YwRUNJQmdnTkhJTkFCcEJBU0FCTGdHb0FTQUJMZ0drQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBYUlBNGdIbXNpQnlBSFFSOTFJZ2RxSUFkelFRTkxDeUlYTmdKOEFrQWdHQ0FnY2cwQVFRRWhCaUFCTGdHMEFTQUJMZ0dvQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBZ0dTQU9heUlISUFkQkgzVWlCMm9nQjNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQlFRSWhFQ0FEQW45QkFpQWdJRFZ5RFFBYVFRRWdBUzRCdUFFZ0FTNEJ0QUZySWdjZ0IwRWZkU0lIYWlBSGMwRURTdzBBR2lBaElCbHJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN3c2lHVFlDakFFQ1FDQTNJRUZ5RFFCQkFTRVFJQUV1QWJBQklBRXVBYXdCYXlJSElBZEJIM1VpQjJvZ0IzTkJBMHNOQUNBa0lEWnJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN5RVFDeUFESUJBMkFwd0JRUUloQjBFQ0lRNENRQ0EzSURoeURRQkJBU0VPSUFFdUFid0JJQUV1QWJBQmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQXBJQ1JySWdzZ0MwRWZkU0lMYWlBTGMwRURTdzBBSUFFb0FvQUJJQUVvQW54SElRNExJQU1nRGpZQ3BBRUNRQ0E0SUVKeURRQkJBU0VISUFFdUFjQUJJQUV1QWJ3QmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQTVJQ2xySWdjZ0IwRWZkU0lIYWlBSGMwRURTeUVIQ3lBRElBYzJBcXdCREFVTFFRSWhFU0FEUVFJMkFqd2dBUzhCSkNFSURBSUxRUUlMSWd3MkFreEJBaUVFSUFOQkFpQUlRUUJIUVFGMElBNGJJZ2cyQW13Z0EwRUNJQVpCQUVkQkFYUWdBaHNpRkRZQ1hDQURJQWNnSVhKQkFFZEJBWFFpQnpZQ3JBRWdBeUFRSUNCeVFRQkhRUUYwSWhBMkFwd0JJQU1nR1NBZWNrRUFSMEVCZENJWk5nS01BU0FESUFzZ0YzSkJBRWRCQVhRaUZ6WUNmRUVDSVFJQ1FDQVlJQ1J5RFFCQkFTRUNJQUV1QVpRQklBRXVBWWdCYXlJWUlCaEJIM1VpR0dvZ0dITkJBMHNOQUNBQkxnR1dBU0FCTGdHS0FXc2lHQ0FZUVI5MUloaHFJQmh6UVFOTERRQWdBU2dDZUNBQktBSjBSeUVDQ3lBRElBSTJBa1FDUUNBR0lBNXlEUUJCQVNFRUlBRXVBWndCSUFFdUFaQUJheUlHSUFaQkgzVWlCbW9nQm5OQkEwc05BQ0FCTGdHZUFTQUJMZ0dTQVdzaUJpQUdRUjkxSWdacUlBWnpRUU5MRFFBZ0FTZ0NlQ0FCS0FKMFJ5RUVDeUFESUFRMkFtUkJBaUVPUVFJaEJnSkFJQXNnSG5JTkFFRUJJUVlnQVM0QnRBRWdBUzRCcUFGcklnc2dDMEVmZFNJTGFpQUxjMEVEU3cwQUlBRXVBYllCSUFFdUFhb0JheUlMSUF0QkgzVWlDMm9nQzNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQkFrQWdJQ0FoY2cwQVFRRWhEaUFCTGdHOEFTQUJMZ0d3QVdzaUN5QUxRUjkxSWd0cUlBdHpRUU5MRFFBZ0FTNEJ2Z0VnQVM0QnNnRnJJZ3NnQzBFZmRTSUxhaUFMYzBFRFN3MEFJQUVvQW9BQklBRW9BbnhISVE0TElBTWdEallDcEFFTUFnc2dDQ0VNUVFJTElnSTJBa1FnQXlBQkx3RW1JQXhCLy84RGNYSkJBRWRCQVhRaUREWUNUQ0FEQW44Q1FDQUhSUVJBSUFRRVFFRUNJUlFnQTBFQ05nSmNJQVlOQWtFQURBTUxRUUFoRkNBRFFRQTJBbHhCQUNBR1JRMENHZ3dCQzBFQ0lSUWdBMEVDTmdKY0MwRUNDeUlFTmdKa0lBTkJBaUFPUVFCSFFRRjBJQVliSWdnMkFtd2dBd0ovQWtBZ0lFVUVRQ0FYQkVCQkFpRVhJQU5CQWpZQ2ZDQVpEUUpCQUF3REMwRUFJUmNnQTBFQU5nSjhRUUFnR1VVTkFob01BUXRCQWlFWElBTkJBallDZkF0QkFnc2lCallDaEFFZ0F5QUxJQmh5UVFCSFFRRjBJZ2MyQXF3QklBTWdDeUFRY2tFQVIwRUJkQ0lPTmdLa0FTQURRUUlnRUVFQVIwRUJkQ0FlR3lJUU5nS2NBU0FESUJrZ0lYSkJBRWRCQVhRaUdUWUNqQUVMSUFrZ0ozSWdCWElnRDNJZ0NuSWdFM0lnRzNJZ0ZYSWdFbklnSFhJZ0RYSWdKbklnSEhJZ0VYSWdBbklnREhJZ0ZISWdCSElnQ0hJZ0YzSWdCbklnR1hJZ0VISWdEbklnQjNKRkRRRUxJQUVvQWd3aENTQURJQUVvQWhBaUJTQUJLQUlVSWdScUlnWkJNeUFHUVROSUd5SUdRUUFnQmtFQVNodEIwQmRxTFFBQUlnWTJBaUFnQXlBRUlBbHFJZ0pCTXlBQ1FUTklHeUlDUVFBZ0FrRUFTaHNpQ0VHUUYyb3RBQUFpQWpZQ0hDQURJQWhCQTJ4QmtCaHFJZ2cyQWhnQ1FDQXRSUTBBSUFRZ0FTZ0N6QUVvQWhRaUIwY0VRQ0FESUFRZ0IycEJBV3BCQVhZaUJ5QUZhaUlOUVRNZ0RVRXpTQnNpRFVFQUlBMUJBRW9iUWRBWGFpMEFBRFlDQ0NBRElBY2dDV29pQjBFeklBZEJNMGdiSWdkQkFDQUhRUUJLR3lJSFFaQVhhaTBBQURZQ0JDQURJQWRCQTJ4QmtCaHFOZ0lBREFFTElBTWdCallDQ0NBRElBSTJBZ1FnQXlBSU5nSUFDd0pBSUM1RkRRQWdCQ0FCS0FMSUFTZ0NGQ0lIUndSQUlBTWdCQ0FIYWtFQmFrRUJkaUlFSUFWcUlnVkJNeUFGUVROSUd5SUZRUUFnQlVFQVNodEIwQmRxTFFBQU5nSVVJQU1nQkNBSmFpSUVRVE1nQkVFelNCc2lCRUVBSUFSQkFFb2JJZ1JCa0JkcUxRQUFOZ0lRSUFNZ0JFRURiRUdRR0dvMkFnd01BUXNnQXlBR05nSVVJQU1nQWpZQ0VDQURJQWcyQWd3TElBQW9BZ0FnSHlBNmJDSVVRUWgwYWlBcVFRUjBhaUVKUVFBaEFrRURJUVFnQTBFd2FpRUdBMEFnQmlnQ0JDSUZCRUFnQ1NBRklDTWdHaEFaQ3lBR0tBSU1JZ1VFUUNBSlFRUnFJQVVnSWlBYUVCa0xJQVlvQWhRaUJRUkFJQWxCQ0dvZ0JTQWlJQm9RR1FzZ0JpZ0NIQ0lGQkVBZ0NVRU1haUFGSUNJZ0doQVpDeUFFSVFnQ1FBSkFBa0FnQmlnQ0FDSUVJQVlvQWdnaUQwY05BQ0FFSUFZb0FoQkhEUUFnQkNBR0tBSVlSdzBBSUFSRkRRSWdBeUFDUVF4c2FpSUZLQUlJSVF3Z0JTZ0NCQ0ViSUFSQkJFa05BU0FiUVFKMlFRSnFJUkJCRUNFUElBa2hCQU5BQWtBZ0JDQW9haUlDTFFBQUlnb2dCQzBBQUNJT2F5SUZJQVZCSDNVaUJXb2dCWE1pQnlBYlR3MEFJQVFnTEdvaUVTMEFBQ0lGSUFwcklnMGdEVUVmZFNJTmFpQU5jeUFNVHcwQUlBUWdHbW9pSEMwQUFDSVNJQTVySWcwZ0RVRWZkU0lOYWlBTmN5QU1UdzBBQWtBZ0J5QVFTUVJBSUFRZ0pXb2lGeTBBQUNFVkFuOGdCQ0FyYWlJTkxRQUFJaE1nQ21zaUJ5QUhRUjkxSWdkcUlBZHpJQXhKQkVCQkF5RWRJQUlnRWlBS0lBNXFJQVZxSWdKQkFYUnFJQk5xUVFScVFRTjJPZ0FBSUJFZ0FpQVRha0VDYWtFQ2Rqb0FBQ0FDUVFScUlSRWdCQ0EvYWkwQUFDRUhJQk5CQTJ3TUFRc2dDaUFTYWlFUklBVWhCMEVDSVIwZ0FpRU5RUUlMSVFJZ0RTQUNJQkZxSUFkQkFYUnFJQjEyT2dBQUlCVWdEbXNpQWlBQ1FSOTFJZ0pxSUFKeklBeFBEUUVnQkNBRklBb2dFbW9nRG1vaUFrRUJkR29nRldwQkJHcEJBM1k2QUFBZ0hDQUNJQlZxUVFKcVFRSjJPZ0FBSUJjZ0FpQVZRUU5zYWlBRUlENXFMUUFBUVFGMGFrRUVha0VEZGpvQUFBd0NDeUFDSUFvZ0Vtb2dCVUVCZEdwQkFtcEJBblk2QUFBTElBUWdCU0FPYWlBU1FRRjBha0VDYWtFQ2Rqb0FBQXNnQkVFQmFpRUVJQTlCZjJvaUR3MEFDd3dDQ3dKL0lBUUVRQ0FKSUFRZ0F5QUNRUXhzYWlBYUVCZ2dCaWdDQ0NFUEN5QVBDd1JBSUFsQkJHb2dEeUFESUFKQkRHeHFJQm9RR0FzZ0JpZ0NFQ0lFQkVBZ0NVRUlhaUFFSUFNZ0FrRU1iR29nR2hBWUN5QUdLQUlZSWdSRkRRRWdDVUVNYWlBRUlBTWdBa0VNYkdvZ0doQVlEQUVMSUFRZ0JTZ0NBR3BCZjJvdEFBQWlBa0VCYWlFSFFRQWdBbXNoRGtFUUlROGdDU0VFQTBBQ1FDQUVJQ2hxSWhNdEFBQWlEU0FFTFFBQUlncHJJZ1VnQlVFZmRTSUZhaUFGY3lBYlR3MEFJQVFnTEdvaUVTMEFBQ0lTSUExcklnVWdCVUVmZFNJRmFpQUZjeUFNVHcwQUlBUWdHbW9pRUMwQUFDSVZJQXBySWdVZ0JVRWZkU0lGYWlBRmN5QU1UdzBBSUFJaEJTQUVJQ3RxTFFBQUlod2dEV3NpSFNBZFFSOTFJaDFxSUIxeklBeEpCRUFnRVNBU0lBNGdBaUFLSUExcVFRRnFRUUYySUJKQkFYUnJJQnhxUVFGMUlnVWdCU0FDU2hzZ0JTQU9TQnRxT2dBQUlBY2hCUXNnRXlBTkFuOGdCQ0FsYWkwQUFDSVRJQXBySWhFZ0VVRWZkU0lSYWlBUmN5QU1TUVJBSUJBZ0ZTQU9JQUlnQ2lBTmFrRUJha0VCZGlBVlFRRjBheUFUYWtFQmRTSVRJQk1nQWtvYklCTWdEa2diYWpvQUFDQUZRUUZxSVFVTFFRQWdCV3NpRXdzZ0JTQVNJQlZySUFvZ0RXdEJBblJxUVFScVFRTjFJaElnRWlBRlNoc2dFaUFUU0JzaUJXcEJzQzVxTFFBQU9nQUFJQVFnQ2lBRmEwR3dMbW90QUFBNkFBQUxJQVJCQVdvaEJDQVBRWDlxSWc4TkFBc0xJQWhCZjJvaEJDQUdRU0JxSVFZZ0NTQTlhaUVKUVFJaEFpQUlEUUFMSUFFb0Fnd2hCQ0FESUFFb0FoQWlCU0FCS0FJVUlnWWdBU2dDR0NJQ2FpSUpRVE1nQ1VFelNCc2lDVUVBSUFsQkFFb2JRUUowUWVBOWFpZ0NBQ0lKYWlJSVFUTWdDRUV6U0JzaUNFRUFJQWhCQUVvYlFkQVhhaTBBQUNJSU5nSWdJQU1nQkNBSmFpSUhRVE1nQjBFelNCc2lCMEVBSUFkQkFFb2JJZzFCa0JkcUxRQUFJZ2MyQWh3Z0F5QU5RUU5zUVpBWWFpSU5OZ0lZQWtBZ0xVVU5BQ0FHSUFFb0Fzd0JLQUlVSWd4SEJFQWdBeUFKSUFJZ0RHb2lERUV6SUF4Qk0wZ2JJZ3hCQUNBTVFRQktHMEVDZEVIZ1BXb29BZ0JxUVFGcVFRRjJJZ3dnQldvaUQwRXpJQTlCTTBnYklnOUJBQ0FQUVFCS0cwSFFGMm90QUFBMkFnZ2dBeUFFSUF4cUlneEJNeUFNUVROSUd5SU1RUUFnREVFQVNoc2lERUdRRjJvdEFBQTJBZ1FnQXlBTVFRTnNRWkFZYWpZQ0FBd0JDeUFESUFnMkFnZ2dBeUFITmdJRUlBTWdEVFlDQUFzQ1FDQXVSUTBBSUFZZ0FTZ0N5QUVvQWhRaURFY0VRQ0FESUFVZ0NTQUNJQXhxSWdaQk15QUdRVE5JR3lJR1FRQWdCa0VBU2h0QkFuUkI0RDFxS0FJQWFrRUJha0VCZGlJSmFpSUZRVE1nQlVFelNCc2lCVUVBSUFWQkFFb2JRZEFYYWkwQUFEWUNGQ0FESUFRZ0NXb2lCRUV6SUFSQk0wZ2JJZ1JCQUNBRVFRQktHeUlFUVpBWGFpMEFBRFlDRUNBRElBUkJBMnhCa0JocU5nSU1EQUVMSUFNZ0NEWUNGQ0FESUFjMkFoQWdBeUFOTmdJTUN5QUFLQUlBSUR4cUlCUkJCblJxSUNwQkEzUnFJZ2tnTzJvaEJFRUFJUW9nQTBFd2FpRUdRUUFoQWdOQUlBWW9BZ1FpQlFSQUlBa2dCU0FqSUJZUUVDQUVJQVlvQWdRZ0l5QVdFQkFMSUFZb0FpUWlCUVJBSUFrZ0dtb2dCU0FqSUJZUUVDQUVJQnBxSUFZb0FpUWdJeUFXRUJBTElBWW9BaFFpQlFSQUlBbEJCR29nQlNBaUlCWVFFQ0FFUVFScUlBWW9BaFFnSWlBV0VCQUxJQVlvQWpRaUJRUkFJQWtnR21wQkJHb2dCU0FpSUJZUUVDQUVJQnBxUVFScUlBWW9BalFnSWlBV0VCQUxJQUloQlFKQUFrQWdCaWdDQUNJQ0lBWW9BZ2dpRDBjTkFDQUNJQVlvQWhCSERRQWdBaUFHS0FJWVJ3MEFJQUpGRFFFZ0NTQUNJQU1nQ2tFTWJHb2lBaUFXRUNzZ0JDQUdLQUlBSUFJZ0ZoQXJEQUVMQW44Z0FnUkFJQWtnQWlBRElBcEJER3hxSWdJZ0ZoQVNJQVFnQmlnQ0FDQUNJQllRRWlBR0tBSUlJUThMSUE4TEJFQWdDVUVDYWlBUElBTWdDa0VNYkdvaUFpQVdFQklnQkVFQ2FpQUdLQUlJSUFJZ0ZoQVNDeUFHS0FJUUlnSUVRQ0FKUVFScUlBSWdBeUFLUVF4c2FpSUNJQllRRWlBRVFRUnFJQVlvQWhBZ0FpQVdFQklMSUFZb0FoZ2lBa1VOQUNBSlFRWnFJQUlnQXlBS1FReHNhaUlDSUJZUUVpQUVRUVpxSUFZb0FoZ2dBaUFXRUJJTElBUWdKV29oQkNBSklDVnFJUWtnQmtGQWF5RUdRUUVoQWtFQ0lRb2dCVVVOQUFzTFFRQWdLa0VCYWlJRUlBUWdIMFlpQkJzaEtpQUJRZGdCYWlFQklBUWdPbW9pT2lBQUtBSUlTUTBBQ3dzZ0EwR3dBV29rQUF1Q0JRRUtmeU1BUVpBQmF5SUxKQUFDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSGFpQUVTdzBBSUFNZ0NHcEJBV29nQlVzTkFDQUZJUXdnQXlFT0RBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFjZ0NFRUJhaUlNSUFjUURDQUFJQVFnQld4cUlBc2dCeUFNYkdvZ0FpQURJQVFnQlNBSElBd2dCeEFNSUFzaEFDQUhJUVJCQUNFQ0N3SkFJQWhCQVhZaUJVVU5BQ0FIUVFGMklnTkZEUUJCRUNBSGF5RVFRUWdnQm1zaENTQUVRUUYwSWcwZ0Iyc2hFU0FBSUFKcUloSWdCQ0FPYkdvaEJ5QUJJUUlnQlNFSUEwQWdBeUVBQTBBZ0J5QU5haTBBQUNFS0lBSWdDU0FITFFBQWJDQUVJQWRxTFFBQUlnOGdCbXhxUVFOMFFTQnFRUVoyT2dBQUlBSWdDU0FQYkNBR0lBcHNha0VEZEVFZ2FrRUdkam9BQ0NBSFFRRnFJZ29nRFdvdEFBQWhEeUFDSUFrZ0J5MEFBV3dnQkNBS2FpMEFBQ0lLSUFac2FrRURkRUVnYWtFR2Rqb0FBU0FDSUFrZ0Ntd2dCaUFQYkdwQkEzUkJJR3BCQm5ZNkFBa2dBa0VDYWlFQ0lBZEJBbW9oQnlBQVFYOXFJZ0FOQUFzZ0J5QVJhaUVISUFJZ0VHb2hBaUFJUVg5cUlnZ05BQXNnQVVGQWF5RUNJQklnRENBT2FpQUViR29oQndOQUlBTWhBQU5BSUFjZ0RXb3RBQUFoQVNBQ0lBa2dCeTBBQUd3Z0JDQUhhaTBBQUNJSUlBWnNha0VEZEVFZ2FrRUdkam9BQUNBQ0lBZ2dDV3dnQVNBR2JHcEJBM1JCSUdwQkJuWTZBQWdnQjBFQmFpSUJJQTFxTFFBQUlRZ2dBaUFKSUFjdEFBRnNJQUVnQkdvdEFBQWlBU0FHYkdwQkEzUkJJR3BCQm5ZNkFBRWdBaUFCSUFsc0lBWWdDR3hxUVFOMFFTQnFRUVoyT2dBSklBSkJBbW9oQWlBSFFRSnFJUWNnQUVGL2FpSUFEUUFMSUFjZ0VXb2hCeUFDSUJCcUlRSWdCVUYvYWlJRkRRQUxDeUFMUVpBQmFpUUFDLzBFQVF0L0l3QkJrQUZySWd3a0FDQUhRUUZxSVFrQ1FBSkFJQUpCQUVnTkFDQURJQWhxSUFWTERRQWdBMEVBU0EwQUlBSWdDV29nQkVzTkFDQUVJUWtnQXlFTERBRUxJQUFnRENBQ0lBTWdCQ0FGSUFrZ0NDQUpFQXdnQUNBRUlBVnNhaUFNSUFnZ0NXeHFJQUlnQXlBRUlBVWdDU0FJSUFrUURDQU1JUUFnQ0NFRlFRQWhBZ3NDUUNBSVFRRjJJZ2hGRFFBZ0IwRUJkaUlFUlEwQVFSQWdCMnNoRGtFSUlBWnJJUW9nQ1VFQmRDQUhheUVQSUFBZ0Ftb2lFU0FKSUF0c2FpRUNJQUVoQXlBSUlRQURRQ0FFSVFjRFFDQUNRUUZxSUFscUxRQUFJUkFnQWlBSmFpMEFBQ0VOSUFNZ0FpMEFBU0lTSUFac0lBb2dBaTBBQUd4cVFRTjBRU0JxUVFaMk9nQUFJQU1nQmlBUWJDQUtJQTFzYWtFRGRFRWdha0VHZGpvQUNDQUNMUUFDSVEwZ0FrRUNhaUlDSUFscUxRQUFJUk1nQXlBR0lBMXNJQW9nRW14cVFRTjBRU0JxUVFaMk9nQUJJQU1nQmlBVGJDQUtJQkJzYWtFRGRFRWdha0VHZGpvQUNTQURRUUpxSVFNZ0IwRi9haUlIRFFBTElBSWdEMm9oQWlBRElBNXFJUU1nQUVGL2FpSUFEUUFMSUFGQlFHc2hBeUFSSUFVZ0Myb2dDV3hxSVFJRFFDQUVJUWNEUUNBQ1FRRnFJQWxxTFFBQUlRQWdBaUFKYWkwQUFDRUJJQU1nQWkwQUFTSUZJQVpzSUFvZ0FpMEFBR3hxUVFOMFFTQnFRUVoyT2dBQUlBTWdBQ0FHYkNBQklBcHNha0VEZEVFZ2FrRUdkam9BQ0NBQ0xRQUNJUUVnQWtFQ2FpSUNJQWxxTFFBQUlRc2dBeUFCSUFac0lBVWdDbXhxUVFOMFFTQnFRUVoyT2dBQklBTWdCaUFMYkNBQUlBcHNha0VEZEVFZ2FrRUdkam9BQ1NBRFFRSnFJUU1nQjBGL2FpSUhEUUFMSUFJZ0Qyb2hBaUFESUE1cUlRTWdDRUYvYWlJSURRQUxDeUFNUVpBQmFpUUFDN2tIQVFWL0l3QkJFR3NpQkNRQUFrQWdBQ0FCUVFCQnlBQVFCeUlERUFJaUFRMEFRUUVoQVNBREtBSUFRZjhCU3cwQUlBQWdBMEVFYWhBQ0lnRU5BRUVCSVFFZ0F5Z0NCRUVmU3cwQUlBQkJBUkFERFFBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNDQ0FBSUFSQkRHb1FBaUlCRFFBZ0F5QUVLQUlNUVFGcUlnRTJBZ3dnQVVFSVN3UkFRUUVoQVF3QkN3SkFJQUZCQWtrTkFDQUFJQU5CRUdvUUFpSUJEUUVnQXlnQ0VDSUJRUVpMSWdJRVFFRUJJUUVNQWdzZ0FnMEFBa0FDUUFKQUFrQWdBVUVCYXc0R0JBRUNBZ0lEQUFzZ0F5QURLQUlNSWdGQkFuUVFDaUlDTmdJVUlBSkZCRUJCLy84RElRRU1CUXNnQVVVTkEwRUFJUUlEUUNBQUlBUkJER29RQWlJQkRRVWdBeWdDRkNBQ1FRSjBhaUFFS0FJTVFRRnFOZ0lBSUFKQkFXb2lBaUFES0FJTVNRMEFDd3dEQ3lBRElBTW9BZ3dpQWtFQ2RFRjhhaUlCRUFvaUJUWUNHQ0FESUFFUUNpSUdOZ0ljUWYvL0F5RUJJQVZGRFFNZ0JrVU5BeUFDUVFGR0RRSkJBQ0VDQTBBZ0FDQUVRUXhxRUFJaUFRMEVJQUpCQW5RaUJTQURLQUlZYWlBRUtBSU1OZ0lBSUFBZ0JFRU1haEFDSWdFTkJDQURLQUljSUFWcUlBUW9BZ3cyQWdBZ0FrRUJhaUlDSUFNb0FneEJmMnBKRFFBTERBSUxRUUVoQVNBQVFRRVFBeUlDUVg5R0RRSWdBeUFDUVFGR05nSWdJQUFnQkVFTWFoQUNJZ0VOQWlBRElBUW9BZ3hCQVdvMkFpUU1BUXNnQUNBRVFReHFFQUlpQVEwQklBTWdCQ2dDREVFQmFpSUJOZ0lvSUFNZ0FVRUNkQkFLSWdJMkFpd2dBa1VFUUVILy93TWhBUXdDQ3lBQlJRMEFJQU1vQWd4QkFuUkJyRHRxS0FJQUlRWkJBQ0VDQTBBZ0FDQUdFQU1oQlNBREtBSXNJQUpCQW5ScUlBVTJBZ0JCQVNFQklBVWdBeWdDREU4TkFpQUNRUUZxSWdJZ0F5Z0NLRWtOQUFzTElBQWdCRUVNYWhBQ0lnRU5BRUVCSVFFZ0JDZ0NEQ0lDUVI5TERRQWdBeUFDUVFGcU5nSXdJQUFnQkVFTWFoQUNJZ0VOQUVFQklRRWdCQ2dDREVFZlN3MEFJQUJCQVJBREJFQU1BUXNnQUVFQ0VBTkJBa3NFUUF3QkN5QUFJQVJCQ0dvUUJTSUJEUUFnQkNnQ0NFRWFhaUlCUVROTEJFQkJBU0VCREFFTElBTWdBVFlDTkNBQUlBUkJDR29RQlNJQkRRQWdCQ2dDQ0VFYWFrRXpTd1JBUVFFaEFRd0JDeUFBSUFSQkNHb1FCU0lCRFFCQkFTRUJJQVFvQWdnaUFrRU1ha0VZU3cwQUlBTWdBallDT0NBQVFRRVFBeUlDUVg5R0RRQWdBeUFDUVFGR05nSThJQUJCQVJBRElnSkJmMFlOQUNBRElBSkJBVVkyQWtBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNSQ0FBRUI5QkFDRUJDeUFFUVJCcUpBQWdBUXZxQlFFSmZ3SkFJQUlvQXB3Q1JRUkFEQUVMUVFFaEJnTkFBa0FDUUNBQ0lBVkJGR3hxS0FLZ0FpSUVRUVZMRFFBZ0JFRUJhdzRGQUFBQUFBTUJDeUFGUVFGcUlRVU1BUXNMSUFRaEJnc0Nmd0pBSUFFb0FoQWlCRUVCVFFSQUlBUkJBV3NFUUNBREtBSUFRUVZHQkVBZ0FFSUFOd0lBSUFJb0FoUWhCVUVBSVFRTUF3c2dBQ2dDQUNJRUlBSW9BaFFpQlUwTkFpQUVJQVZySUFFb0FoUWlCMEVCZGtrTkFpQUFLQUlFSUFkcURBTUxRUUFoQlFKL1FRQWdBeWdDQUVFRlJnMEFHaUFBS0FJTUlnY2dBQ2dDQ0NBQ0tBSU1UUTBBR2lBQktBSU1JQWRxQ3lFSFFRQWhCQUovSUFFb0FpUWlDQVJBSUFJb0Fnd2dCMm9oQlFzZ0JTQURLQUlFSWdwRklBVkJBRWR4YXlJSkN3UkFJQWxCZjJvaUF5QURJQWh1SWdzZ0NHeHJJUU1MSUFnRVFDQUJLQUlvSVF4QkFDRUZBMEFnRENBRlFRSjBhaWdDQUNBRWFpRUVJQVZCQVdvaUJTQUlSdzBBQ3dzQ1FDQUpSUVJBUVFBaEJBd0JDeUFFSUF0c0lRUWdBU2dDS0NFSVFRQWhCUU5BSUFnZ0JVRUNkR29vQWdBZ0JHb2hCQ0FGUVFGcUlnVWdBMDBOQUFzTElBcEZCRUFnQVNnQ0hDQUVhaUVFQ3lBR1JRUkFJQUlvQWlBaEF5QUJLQUlnSVFFZ0FpZ0NIQ0VHSUFBZ0J6WUNEQ0FBSUFJb0FndzJBZ2dnQmlBQklBTnFJZ0JCSDNVZ0FIRWdCR3BxRHdzZ0FFSUFOd0lJUVFBUEMwRUFJUVZCQUNFRUlBTW9BZ0JCQlVjRVFDQUFLQUlNSVFVZ0FDZ0NDQ0FDS0FJTUlnUkxCRUFnQVNnQ0RDQUZhaUVGQ3lBRUlBVnFRUUYwSUFNb0FnUkZheUVFQ3lBR1JRUkFJQUFnQlRZQ0RDQUFJQUlvQWd3MkFnZ2dCQThMSUFCQ0FEY0NDRUVBRHdzQ1FDQUZJQVJORFFBZ0JTQUVheUFCS0FJVUlnRkJBWFpORFFBZ0FDZ0NCQ0FCYXd3QkN5QUFLQUlFQ3lFRUlBTW9BZ1JGQkVBZ0JDQUZhaUFDS0FJWUlnQkJIM1VnQUhGcUR3c2dBQ0FFTmdJRUlBSW9BaGdoQVNBR0JFQWdBRUVBTmdJRUlBQkJBQ0FCYXlBQlFSOTFjVFlDQUVFQUR3c2dBQ0FGTmdJQUlBUWdCV29nQVVFZmRTQUJjV29MdkFFQkNIOGdBZ1JBSUFGQmYyb2hCMEVBSUFGclFkZ0JiQ0VJUVFFZ0FXdEIyQUZzSVFrZ0FVRi9jMEhZQVd3aENnTkFJQUFnQmtIWUFXeHFJZ01nQTBHb2ZtcEJBQ0FFR3pZQ3lBRWdBd0ovSUFWRkJFQWdBMEVBTmdMTUFVRUFEQUVMSUFNZ0F5QUlhallDekFFZ0F5QUpha0VBSUFRZ0Iwa2JDellDMEFFZ0F5QURJQXBxUVFBZ0JCdEJBQ0FGR3pZQzFBRkJBQ0FFUVFGcUlnTWdBU0FEUmlJREd5RUVJQU1nQldvaEJTQUdRUUZxSWdZZ0FrY05BQXNMQzNjQkFuOUJBU0VDQWtBZ0FFRUJFQU5CZjBZTkFDQUJJQUJCQWhBRE5nSUVJQUVnQUVFRkVBTWlBRFlDQUNBQVFYNXFRUU5KRFFBQ1FDQUFRUXhMRFFCQkFTQUFkQ0lEUWNBOGNVVUVRQ0FEUWFBRGNVVU5BU0FBUVFaR0RRSWdBU2dDQkEwQkRBSUxJQUVvQWdRTkFRdEJBQ0VDQ3lBQ0M1SVRBUVovSUFBZ0FTZ0NBQ0lOTmdJQUlBQWdBQ2dDeEFGQkFXbzJBc1FCSUFJZ0JSQWRBa0FDUUFKQUFrQUNRQ0FOUVI5R0JFQWdBRUVBTmdJVUlBQW9Bc1FCUVFGTERRRWdBRUVjYWlFSklBRkJ5QUpxSVFSQkZ5RUJJQWNoQUFOQUlBbEJFRHNCQUNBQUlBUW9BZ0E2QUFBZ0FDQUVLQUlFT2dBQklBQWdCQ2dDQ0RvQUFpQUFJQVFvQWd3NkFBTWdBQ0FFS0FJUU9nQUVJQUFnQkNnQ0ZEb0FCU0FBSUFRb0FoZzZBQVlnQUNBRUtBSWNPZ0FISUFBZ0JDZ0NJRG9BQ0NBQUlBUW9BaVE2QUFrZ0FDQUVLQUlvT2dBS0lBQWdCQ2dDTERvQUN5QUFJQVFvQWpBNkFBd2dBQ0FFS0FJME9nQU5JQUFnQkNnQ09Eb0FEaUFBSUFRb0FqdzZBQThnQVNJRFFYOXFJUUVnQ1VFQ2FpRUpJQUJCRUdvaEFDQUVRVUJySVFRZ0F3MEFDeUFDSUFjUUd3d0VDeUFBUVJ4cUlRa2dEUVJBSUFrZ0FTa0NrQUkzQWdBZ0NTQUJLUUcrQWpjQkxpQUpJQUVwQXJnQ053SW9JQWtnQVNrQ3NBSTNBaUFnQ1NBQktRS29BamNDR0NBSklBRXBBcUFDTndJUUlBa2dBU2tDbUFJM0FnZ2dCQ2dDQUNFS0FrQWdBU2dDQ0NJTFJRMEFJQVFnQ2lBTGFpSUtOZ0lBSUFRZ0NrRi9UQVIvSUFwQk5Hb0ZJQXBCTkVnTkFTQUtRVXhxQ3lJS05nSUFDeUFBSUFvMkFoUWdBVUhJRDJvaERDQUJRY2dDYWlFRUFrQUNRQ0FBS0FJQVFRWk5CRUFnQ1M4QkFFVU5BVUVCSVFnZ0JDQUtRUUFnRENnQ0FCQUdSUTBDREFnTElBQXZBVXdFUUNBQlFjZ09haUFLRURFTFFiQTBJUXBCRHlFSUEwQWdDQ0VMSUFRZ0FTQUtLQUlBUVFKMGFrSElEbW9vQWdBaUNEWUNBQUpBQWtBZ0NFVUVRQ0FKTHdFQVJRMEJDMEVCSVFnZ0JDQUFLQUlVUVFFZ0RDZ0NBQkFHUlEwQkRBb0xJQVJCLy8vL0J6WUNBQXNnQ2tFRWFpRUtJQXRCZjJvaENDQU1RUVJxSVF3Z0NVRUNhaUVKSUFSQlFHc2hCQ0FMRFFBTERBUUxJQVJCLy8vL0J6WUNBQXNnQVVHSUEyb2hCQUpBSUFBdkFSNEVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSE1EMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJ5QU5xSVFRQ1FDQUFMd0VnQkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCMEE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUVlnRWFpRUVBa0FnQUM4QklnUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFkUVBhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVSElCR29oQkFKQUlBQXZBU1FFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUhZRDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCaUFWcUlRUUNRQ0FBTHdFbUJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQjNBOXFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFjZ0ZhaUVFQWtBZ0FDOEJLQVJBUVFFaENDQUVJQUFvQWhSQkFDQUJRZUFQYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJQm1vaEJBSkFJQUF2QVNvRVFFRUJJUWdnQkNBQUtBSVVRUUFnQVVIa0Qyb29BZ0FRQmtVTkFRd0hDeUFFUWYvLy93YzJBZ0FMSUFGQnlBWnFJUVFDUUNBQUx3RXNCRUJCQVNFSUlBUWdBQ2dDRkVFQUlBRkI2QTlxS0FJQUVBWkZEUUVNQndzZ0JFSC8vLzhITmdJQUN5QUJRWWdIYWlFRUFrQWdBQzhCTGdSQVFRRWhDQ0FFSUFBb0FoUkJBQ0FCUWV3UGFpZ0NBQkFHUlEwQkRBY0xJQVJCLy8vL0J6WUNBQXNnQVVISUIyb2hCQUpBSUFBdkFUQUVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSHdEMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJpQWhxSVFRQ1FDQUFMd0V5QkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCOUE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUWNnSWFpRUVBa0FnQUM4Qk5BUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFmZ1BhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVR0lDV29oQkFKQUlBQXZBVFlFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUg4RDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCeUFscUlRUUNRQ0FBTHdFNEJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQmdCQnFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFZZ0thaUVFQWtBZ0FDOEJPZ1JBUVFFaENDQUVJQUFvQWhSQkFDQUJRWVFRYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJRUdvaERDQUJRY2dLYWlFRURBSUxJQWxDQURjQ0FDQUpRZ0EzQVM0Z0NVSUFOd0lvSUFsQ0FEY0NJQ0FKUWdBM0FoZ2dDVUlBTndJUUlBbENBRGNDQ0NBQUlBUW9BZ0EyQWhRTUFnc2dBRUtRZ01DQWdJS0FDRGNCSENBQVFwQ0F3SUNBZ29BSU53RkVJQUJDa0lEQWdJQ0NnQWczQVR3Z0FFS1FnTUNBZ0lLQUNEY0JOQ0FBUXBDQXdJQ0Fnb0FJTndFc0lBQkNrSURBZ0lDQ2dBZzNBU1JCQUE4TElBQW9BaGdnQUNnQ0ZHb2lDMEV6SUF0Qk0wZ2JJZ3RCQUNBTFFRQktHMEVDZEVIZ1BXb29BZ0FoQ1FKQUlBQXZBVTVGQkVBZ0FDOEJVRVVOQVFzZ0FVR0lEMm9nQ1JBd0N5QUVJQUZCaUE5cUtBSUFJZ3MyQWdBQ1FBSkFJQXRGQkVBZ0FDOEJQRVVOQVF0QkFTRUlJQVFnQ1VFQklBd29BZ0FRQmtVTkFRd0VDeUFFUWYvLy93YzJBZ0FMSUFRZ0FTZ0NqQThpQ3pZQ1FDQUVRVUJySVFvQ1FBSkFJQXRGQkVBZ0FDOEJQa1VOQVF0QkFTRUlJQW9nQ1VFQklBd29BZ1FRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NrQThpQ3pZQ2dBRWdCRUdBQVdvaENnSkFBa0FnQzBVRVFDQUFRVUJyTHdFQVJRMEJDMEVCSVFnZ0NpQUpRUUVnRENnQ0NCQUdSUTBCREFRTElBcEIvLy8vQnpZQ0FBc2dCQ0FCS0FLVUR5SUxOZ0xBQVNBRVFjQUJhaUVLQWtBQ1FDQUxSUVJBSUFBdkFVSkZEUUVMUVFFaENDQUtJQWxCQVNBTUtBSU1FQVpGRFFFTUJBc2dDa0gvLy84SE5nSUFDeUFFSUFFb0FwZ1BJZ3MyQW9BQ0lBUkJnQUpxSVFvQ1FBSkFJQXRGQkVBZ0FDOEJSRVVOQVF0QkFTRUlJQW9nQ1VFQklBd29BaEFRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NuQThpQ3pZQ3dBSWdCRUhBQW1vaENnSkFBa0FnQzBVRVFDQUFMd0ZHUlEwQkMwRUJJUWdnQ2lBSlFRRWdEQ2dDRkJBR1JRMEJEQVFMSUFwQi8vLy9CellDQUFzZ0JDQUJLQUtnRHlJTE5nS0FBeUFFUVlBRGFpRUtBa0FDUUNBTFJRUkFJQUF2QVVoRkRRRUxRUUVoQ0NBS0lBbEJBU0FNS0FJWUVBWkZEUUVNQkFzZ0NrSC8vLzhITmdJQUN5QUVJQUVvQXFRUElnczJBc0FESUFSQndBTnFJUVFDUUFKQUlBdEZCRUFnQUM4QlNrVU5BUXRCQVNFSUlBUWdDVUVCSUF3b0Fod1FCa1VOQVF3RUN5QUVRZi8vL3djMkFnQUxJQTFCQmtrTkFDQUFJQUVnQWlBRklBWWdCeEJXSWdoRkRRRU1BZ3NnQUNBQklBTWdCU0FDSUFjUVZ5SUlEUUVMUVFBaENBc2dDQXVXSFFFSGZ5TUFRUkJySWdja0FDQUJRUUJCcUJBUUJ5RUZJQUFnQjBFRWFoQUNJUUVnQnlnQ0JDRUlBa0FDUUFKQUlBTkJmbW9pQTBFRlN3MEFBa0FnQTBFQmF3NEVBUUVCQVFBTFFRRWhBeUFCRFFJZ0NFRUdhaUlHUVI5TkRRRU1BZ3RCQVNFRElBRU5BU0FJUVFGcUlnWkJIMHNOQVFzZ0JTQUdOZ0lBQWtBZ0JrRWZSZ1JBQTBBZ0FDZ0NDQVJBSUFCQkFSQURSUTBCREFRTEN5QUZRY2dDYWlFR0EwQWdCeUFBUVFnUUF5SUJOZ0lFSUFGQmYwWU5BeUFHSUFFMkFnQWdCa0VFYWlFR0lBbEJBV29pQ1VHQUEwY05BQXNNQVF0QkFpQUdRUVpISUFaQkJra2JJUW9DUUFKQUlBWkJCRWtOQUNBR1FRVkxEUUFnQUNBSFFReHFFQUlOQVNBSEtBSU1JZ0ZCQTBzTkFTQUZJQUUyQXJBQklBQWdCMEVNYWhBQ0RRRWdCeWdDRENJQlFRTkxEUUVnQlNBQk5nSzBBU0FBSUFkQkRHb1FBZzBCSUFjb0Fnd2lBVUVEU3cwQklBVWdBVFlDdUFFZ0FDQUhRUXhxRUFJTkFTQUhLQUlNSWdGQkEwc05BU0FGSUFFMkFyd0JBa0FnQkVFQ1NRMEFJQVpCQlVZTkFDQUFJQWRCREdvZ0JFRUNTeUlCRUJjTkFpQUhLQUlNSWdnZ0JFOE5BaUFGSUFnMkFzQUJJQUFnQjBFTWFpQUJFQmNOQWlBSEtBSU1JZ2dnQkU4TkFpQUZJQWcyQXNRQklBQWdCMEVNYWlBQkVCY05BaUFIS0FJTUlnZ2dCRThOQWlBRklBZzJBc2dCSUFBZ0IwRU1haUFCRUJjTkFpQUhLQUlNSWdFZ0JFOE5BaUFGSUFFMkFzd0JDeUFISUFVb0FyQUJJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93SFFBU0FBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dIU0FTQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVlnQVEwQUN5QUhJQVVvQXJRQklnRkJBazBFZnlBQlFRSjBRZkEwYWlnQ0FBVkJBd3MyQWd4QkFDRUdBMEFnQUNBSFFRaHFFQVVpQXcwQ0lBVWdCa0VDZEdvaUFTQUhLQUlJT3dIZ0FTQUFJQWRCQ0dvUUJTSUREUUlnQVNBSEtBSUlPd0hpQVNBSElBY29BZ3dpQVVGL2FqWUNEQ0FHUVFGcUlRWWdBUTBBQ3lBSElBVW9BcmdCSWdGQkFrMEVmeUFCUVFKMFFmQTBhaWdDQUFWQkF3czJBZ3hCQUNFR0EwQWdBQ0FIUVFocUVBVWlBdzBDSUFVZ0JrRUNkR29pQVNBSEtBSUlPd0h3QVNBQUlBZEJDR29RQlNJRERRSWdBU0FIS0FJSU93SHlBU0FISUFjb0Fnd2lBVUYvYWpZQ0RDQUdRUUZxSVFZZ0FRMEFDeUFISUFVb0Fyd0JJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93R0FBaUFBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dHQ0FpQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVpCQUNFRElBRU5BQXNNQVF0QkFDRURJQXBCQWtzTkFBSkFBbjhDUUFKQUFrQWdDa0VCYXc0Q0JBRUFDeUFIUVFBMkFnZ2dCU0FBRUE4aUFVRWZkallDRENBQlFRQk9EUUVnQVVFQmRDRUdRUUFNQWdzZ0JFRUNUd1JBUVFNaEFTQUdRUU5OQkVBZ0JrRUNkRUg4Tkdvb0FnQWhBUXNnQkVFQ1N5RUxRUUVoQXdOQUlBQWdCMEVNYWlBTEVCY05CU0FIS0FJTUlnZ2dCRThOQlNBRklBbEJBblJxSUFnMkFwQUJJQUVpQ0VGL2FpRUJJQWxCQVdvaENTQUlEUUFMQzBFRElRTWdCa0VEVFFSQUlBWkJBblJCL0RScUtBSUFJUU1MUVFBaEJnTkFJQU1oQVNBQUlBZEJDR29RQlNJRERRUWdCU0FHUVFKMGFpSUVJQWNvQWdnN0FhQUJJQUFnQjBFSWFoQUZJZ01OQkNBRUlBY29BZ2c3QWFJQklBRkJmMm9oQXlBR1FRRnFJUVlnQVEwQUMwRUFJUU1NQXdzZ0JTQUJRUngyTmdKTUlBRkJCSFFoQmtFQkN5RURJQVVnQmtFZmRqWUNFQ0FGSUFaQkFFZ0VmeUFHUVFGMEJTQUZJQVpCSEhZMkFsQWdBMEVCYWlFRElBWkJCSFFMSWdGQkgzWTJBaFFnQlNBQlFRQklCSDhnQVVFQmRBVWdCU0FCUVJ4Mk5nSlVJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0lZSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNXQ0FEUVFGcUlRTWdBVUVFZEFzaUFVRWZkallDSENBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBbHdnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWlBZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pnSUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJa0lBVWdBVUVBU0FSL0lBRkJBWFFGSUFVZ0FVRWNkallDWkNBRFFRRnFJUU1nQVVFRWRBc2lBVUVmZGpZQ0tDQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pvSUFOQkFXb2hBeUFCUVFSMEN5RUdBa0FnQUNBRFFRTnNRUWhxRUF0QmYwWU5BQ0FIUVFFMkFnZ2dCU0FBRUE4aUFVRWZkallDTEFKL0lBRkJBRWdFUUNBQlFRRjBJUVpCQUF3QkN5QUZJQUZCSEhZMkFtd2dBVUVFZENFR1FRRUxJUU1nQlNBR1FSOTJOZ0l3SUFVZ0JrRUFTQVIvSUFaQkFYUUZJQVVnQmtFY2RqWUNjQ0FEUVFGcUlRTWdCa0VFZEFzaUFVRWZkallDTkNBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBblFnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWpnZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0o0SUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJOElBVkJRR3NnQVVFQVNBUi9JQUZCQVhRRklBVWdBVUVjZGpZQ2ZDQURRUUZxSVFNZ0FVRUVkQXNpQVVFZmRqWUNBQ0FGSUFGQkFFZ0VmeUFCUVFGMEJTQUZJQUZCSEhZMkFvQUJJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0pFSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNoQUVnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWtnZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNpQUVnQTBFQmFpRURJQUZCQkhRTElRWWdBQ0FEUVFOc1FRaHFFQXRCZjBZTkFDQUhJQVkyQWd3Z0IwRUNOZ0lJREFFTElBY2dCallDREVFQklRTU1BUXRCQVNFRElBQWdCMEVNYWhBQ0RRQWdCeWdDRENJQlFRTkxEUUFnQlNBQk5nS01BVUVBSVFNTElBTU5BUUpBSUFwQkFVY0VRQ0FBSUFkQkJHb2dDa1VRTFNJRERRTWdCU0FIS0FJRUlnRTJBZ1FnQVVVTkFnd0JDeUFGSUFVb0FnQWlBVUY1YWlJRFFRSjBRWEJ4SWdSQlVHb2dCQ0FEUVF0TEcwRVBRUUFnQVVFU1N4dHlOZ0lFQzBFQklRTWdBQ0FIUVF4cUVBVU5BU0FIS0FJTUlnRkJHbXBCTTBzTkFTQUZJQUUyQWdnZ0JVR1FBbW9oQ0NBRktBSUVJUVFDUUFKQUlBVW9BZ0JCQjBrRVFFRUFJUWxCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FJSUFsQkFuUnFRYmdOYWlBQUlBZ2dDVUVHZEdwQk9Hb2dBaUFKSUFnUURVRVFFQWtpQTBFUWRqWUNBQ0FEUVE5eERRUWdDQ0FKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FJSUFsQkFYSWlCa0VDZEdwQnVBMXFJQUFnQ0NBR1FRWjBha0U0YWlBQ0lBWWdDQkFOUVJBUUNTSURRUkIyTmdJQUlBTkJEM0VOQkNBSUlBWkJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBZ2dDVUVDY2lJR1FRSjBha0c0RFdvZ0FDQUlJQVpCQm5ScVFUaHFJQUlnQmlBSUVBMUJFQkFKSWdOQkVIWTJBZ0FnQTBFUGNRMEVJQWdnQmtFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQ0NBSlFRTnlJZ1pCQW5ScVFiZ05haUFBSUFnZ0JrRUdkR3BCT0dvZ0FpQUdJQWdRRFVFUUVBa2lBMEVRZGpZQ0FDQURRUTl4RFFRZ0JTQUdRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc01BUXRCQUNFSklBQWdCVUhJRG1vZ0FrRUFJQWdRRFVFUUVBa2lBMEVQY1EwQklBVWdBMEVFZGtIL0FYRTdBY0FDSUFWQmtBSnFJUVpCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FHSUFsQkFuUnFRYmdOYWlBQUlBWWdDVUVHZEdwQlBHb2dBaUFKSUFnUURVRVBFQWtpQTBFUGRqWUNBQ0FEUVE5eERRTWdCaUFKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FHSUFsQkFYSWlDa0VDZEdwQnVBMXFJQUFnQmlBS1FRWjBha0U4YWlBQ0lBb2dDQkFOUVE4UUNTSURRUTkyTmdJQUlBTkJEM0VOQXlBR0lBcEJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBWWdDVUVDY2lJS1FRSjBha0c0RFdvZ0FDQUdJQXBCQm5ScVFUeHFJQUlnQ2lBSUVBMUJEeEFKSWdOQkQzWTJBZ0FnQTBFUGNRMERJQVlnQ2tFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQmlBSlFRTnlJZ3BCQW5ScVFiZ05haUFBSUFZZ0NrRUdkR3BCUEdvZ0FpQUtJQWdRRFVFUEVBa2lBMEVQZGpZQ0FDQURRUTl4RFFNZ0JTQUtRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc0xJQVJCQTNFRVFDQUFJQVZCaUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIQ0FpQUFJQVZCbUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIRUFndEJBQ0VESUFSQkFuRkZEUUFnQUNBRlFjd0thaUFDUVJBZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCaUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzQUlnQUNBRlFZd0xhaUFDUVJFZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCakJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzZ0lnQUNBRlFjd0xhaUFDUVJJZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCa0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0QUlnQUNBRlFZd01haUFDUVJNZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0Z0lnQUNBRlFjd01haUFDUVJRZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1QUlnQUNBRlFZd05haUFDUVJVZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbkJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1Z0lnQUNBRlFjd05haUFDUVJZZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCb0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2QUlnQUNBRlFZd09haUFDUVJjZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCcEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2Z0lMSUFBZ0FDZ0NDQ0FBS0FJRUlBQW9BZ0JyUVFOMGFqWUNFQ0FERFFFTFFRQWhBd3NnQjBFUWFpUUFJQU1McFJRQkRIOENmeUFBS0FMSUFTSUhCRUFnQUNnQ0JDQUhLQUlFUmd3QkMwRUFDeUVLQWtBZ0JrVU5BQ0FLUlEwQVFRQWdDa0VDSUFBb0FzZ0JLQUlBSWdkQkJrY2dCMEVHU1J0QkFrWWJJUW9MQW44Z0FDZ0N6QUVpQndSQUlBQW9BZ1FnQnlnQ0JFWU1BUXRCQUFzaEJ3SkFJQVpGRFFBZ0IwVU5BRUVBSUFkQkFpQUFLQUxNQVNnQ0FDSUhRUVpISUFkQkJra2JRUUpHR3lFSEN3Si9JQUFvQXRRQklna0VRQ0FBS0FJRUlBa29BZ1JHREFFTFFRQUxJUWtDUUNBR1JRMEFJQWxGRFFCQkFpQUFLQUxVQVNnQ0FDSUFRUVpISUFCQkJra2JRUUpISVFrTElBcEJBRWNnQjBFQVIzRWlEU0FKUVFCSGNTRU9JQVZCQWtzaEQwRVFJUXNEUUFKQUlBOUZCRUFDUUFKQUFrQWdCVUVCYXc0Q0FRSUFDeUFCQW44Z0RRUkFJQVF0QUFNZ0JDMEFBaUFFTFFBQklBUXRBQUFnQXkwQUJDQURMUUFESUFNdEFBRWdBeTBBQW1wcWFtcHFhbXBCQkdwQkEzWWhCaUFETFFBSUlBTXRBQWNnQXkwQUJTQURMUUFHYW1wcVFRSnFRUUoyREFFTElBY0VRQ0FETFFBRUlBTXRBQU1nQXkwQUFTQURMUUFDYW1wcVFRSnFRUUoySVFZZ0F5MEFDQ0FETFFBSElBTXRBQVVnQXkwQUJtcHFha0VDYWtFQ2Rnd0JDeUFLUlFSQVFZQUJJUVpCZ0FFTUFRc2dCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYWtFQ2FrRUNkaUlHQzBIL0FYRkJnWUtFQ0d3aUFEWUFIQ0FCSUFaQi93RnhRWUdDaEFoc0lnWTJBQmdnQVNBQU5nQVVJQUVnQmpZQUVDQUJJQUEyQUF3Z0FTQUdOZ0FJSUFFZ0FEWUFCQ0FCSUFZMkFBQUNmeUFLQkVBZ0JDMEFCeUFFTFFBR0lBUXRBQVVnQkMwQUJHcHFhaUlHUVFKcVFRSjJJZ0FnQjBVTkFSb2dBeTBBQ0NBRExRQUhJQU10QUFZZ0JpQURMUUFGYW1wcWFrRUVha0VEZGd3QkN5QUhSUVJBUVlBQklRQkJnQUVNQVFzZ0F5MEFCQ0FETFFBRElBTXRBQUVnQXkwQUFtcHFha0VDYWtFQ2RpRUFJQU10QUFnZ0F5MEFCeUFETFFBRklBTXRBQVpxYW1wQkFtcEJBbllMSVFZZ0FTQUFRZjhCY1VHQmdvUUliQ0lBTmdBZ0lBRWdCa0gvQVhGQmdZS0VDR3dpQmpZQVBDQUJJQUEyQURnZ0FTQUdOZ0EwSUFFZ0FEWUFNQ0FCSUFZMkFDd2dBU0FBTmdBb0lBRWdCallBSkF3REN5QUtSUVJBUVFFUEN5QUJJQVF0QUFBNkFBQWdBU0FFTFFBQU9nQUJJQUVnQkMwQUFEb0FBaUFCSUFRdEFBQTZBQU1nQVNBRUxRQUFPZ0FFSUFFZ0JDMEFBRG9BQlNBQklBUXRBQUE2QUFZZ0FTQUVMUUFBT2dBSElBRWdCQzBBQVRvQUNDQUJJQVF0QUFFNkFBa2dBU0FFTFFBQk9nQUtJQUVnQkMwQUFUb0FDeUFCSUFRdEFBRTZBQXdnQVNBRUxRQUJPZ0FOSUFFZ0JDMEFBVG9BRGlBQklBUXRBQUU2QUE4Z0FTQUVMUUFDT2dBUUlBRWdCQzBBQWpvQUVTQUJJQVF0QUFJNkFCSWdBU0FFTFFBQ09nQVRJQUVnQkMwQUFqb0FGQ0FCSUFRdEFBSTZBQlVnQVNBRUxRQUNPZ0FXSUFFZ0JDMEFBam9BRnlBQklBUXRBQU02QUJnZ0FTQUVMUUFET2dBWklBRWdCQzBBQXpvQUdpQUJJQVF0QUFNNkFCc2dBU0FFTFFBRE9nQWNJQUVnQkMwQUF6b0FIU0FCSUFRdEFBTTZBQjRnQVNBRUxRQURPZ0FmSUFFZ0JDMEFCRG9BSUNBQklBUXRBQVE2QUNFZ0FTQUVMUUFFT2dBaUlBRWdCQzBBQkRvQUl5QUJJQVF0QUFRNkFDUWdBU0FFTFFBRU9nQWxJQUVnQkMwQUJEb0FKaUFCSUFRdEFBUTZBQ2NnQVNBRUxRQUZPZ0FvSUFFZ0JDMEFCVG9BS1NBQklBUXRBQVU2QUNvZ0FTQUVMUUFGT2dBcklBRWdCQzBBQlRvQUxDQUJJQVF0QUFVNkFDMGdBU0FFTFFBRk9nQXVJQUVnQkMwQUJUb0FMeUFCSUFRdEFBWTZBREFnQVNBRUxRQUdPZ0F4SUFFZ0JDMEFCam9BTWlBQklBUXRBQVk2QURNZ0FTQUVMUUFHT2dBMElBRWdCQzBBQmpvQU5TQUJJQVF0QUFZNkFEWWdBU0FFTFFBR09nQTNJQUVnQkMwQUJ6b0FPQ0FCSUFRdEFBYzZBRGtnQVNBRUxRQUhPZ0E2SUFFZ0JDMEFCem9BT3lBQklBUXRBQWM2QUR3Z0FTQUVMUUFIT2dBOUlBRWdCQzBBQnpvQVBpQUJJQVF0QUFjNkFEOE1BZ3NnQjBVRVFFRUJEd3NnQVNBRExRQUJPZ0FBSUFFZ0F5MEFBVG9BQ0NBQklBTXRBQUU2QUJBZ0FTQURMUUFCT2dBWUlBRWdBeTBBQVRvQUlDQUJJQU10QUFFNkFDZ2dBU0FETFFBQk9nQXdJQUVnQXkwQUFUb0FPQ0FCSUFNdEFBSTZBQUVnQVNBRExRQUNPZ0FKSUFFZ0F5MEFBam9BRVNBQklBTXRBQUk2QUJrZ0FTQURMUUFDT2dBaElBRWdBeTBBQWpvQUtTQUJJQU10QUFJNkFERWdBU0FETFFBQ09nQTVJQUVnQXkwQUF6b0FBaUFCSUFNdEFBTTZBQW9nQVNBRExRQURPZ0FTSUFFZ0F5MEFBem9BR2lBQklBTXRBQU02QUNJZ0FTQURMUUFET2dBcUlBRWdBeTBBQXpvQU1pQUJJQU10QUFNNkFEb2dBU0FETFFBRU9nQURJQUVnQXkwQUJEb0FDeUFCSUFNdEFBUTZBQk1nQVNBRExRQUVPZ0FiSUFFZ0F5MEFCRG9BSXlBQklBTXRBQVE2QUNzZ0FTQURMUUFFT2dBeklBRWdBeTBBQkRvQU95QUJJQU10QUFVNkFBUWdBU0FETFFBRk9nQU1JQUVnQXkwQUJUb0FGQ0FCSUFNdEFBVTZBQndnQVNBRExRQUZPZ0FrSUFFZ0F5MEFCVG9BTENBQklBTXRBQVU2QURRZ0FTQURMUUFGT2dBOElBRWdBeTBBQmpvQUJTQUJJQU10QUFZNkFBMGdBU0FETFFBR09nQVZJQUVnQXkwQUJqb0FIU0FCSUFNdEFBWTZBQ1VnQVNBRExRQUdPZ0F0SUFFZ0F5MEFCam9BTlNBQklBTXRBQVk2QUQwZ0FTQURMUUFIT2dBR0lBRWdBeTBBQnpvQURpQUJJQU10QUFjNkFCWWdBU0FETFFBSE9nQWVJQUVnQXkwQUJ6b0FKaUFCSUFNdEFBYzZBQzRnQVNBRExRQUhPZ0EySUFFZ0F5MEFCem9BUGlBQklBTXRBQWc2QUFjZ0FTQURMUUFJT2dBUElBRWdBeTBBQ0RvQUZ5QUJJQU10QUFnNkFCOGdBU0FETFFBSU9nQW5JQUVnQXkwQUNEb0FMeUFCSUFNdEFBZzZBRGNnQVNBRExRQUlPZ0EvREFFTElBNUZCRUJCQVE4TElBTXRBQVVnQXkwQUEyc2dBeTBBQmlBRExRQUNhMEVCZEdvZ0F5MEFCeUFETFFBQmEwRURiR29nQXkwQUNDSUFJQU10QUFBaUNXdEJBblJxUVJGc1FSQnFRUVYxSWdaQmZXd2hFQ0FBSUFRdEFBY2lER3BCQkhRZ0JDMEFCQ0FFTFFBQ2F5QU1JQWxyUVFKMGFpQUVMUUFGSUFRdEFBRnJRUUYwYWlBRUxRQUdJQVF0QUFCclFRTnNha0VSYkVFUWFrRUZkU0lSUVgxc2FrRVFhaUVKUVFnaERDQUJJUUFEUUNBQUlBa2dFR29pQ0VFRmRVR3dMbW90QUFBNkFBQWdBQ0FHSUFocUlnaEJCWFZCc0M1cUxRQUFPZ0FCSUFBZ0JpQUlhaUlJUVFWMVFiQXVhaTBBQURvQUFpQUFJQVlnQ0dvaUNFRUZkVUd3TG1vdEFBQTZBQU1nQUNBR0lBaHFJZ2hCQlhWQnNDNXFMUUFBT2dBRUlBQWdCaUFJYWlJSVFRVjFRYkF1YWkwQUFEb0FCU0FBSUFZZ0NHb2lDRUVGZFVHd0xtb3RBQUE2QUFZZ0FDQUdJQWhxUVFWMVFiQXVhaTBBQURvQUJ5QUpJQkZxSVFrZ0FFRUlhaUVBSUF4QmYyb2lEQTBBQ3dzZ0FTQUNJQXNRQ0NBQklBSkJRR3NnQzBFQmNoQUlJQUVnQWtHQUFXb2dDMEVDY2hBSUlBRWdBa0hBQVdvZ0MwRURjaEFJSUFKQmdBSnFJUUlnQkVFSWFpRUVJQU5CQ1dvaEF5QUJRVUJySVFFZ0MwRUVhaUVMSUJKQkFXb2lFa0VDUncwQUMwRUFDNkVWQWhoL0FuNENmd05BQW44Z0FDSUlJQlpCQTNSQnNEVnFLUUlBSWg2bkVCRWlDU0lHQkVBZ0NDZ0NCQ0FHS0FJRVJnd0JDMEVBQ3lFTkFrQWdCVVVOQUNBTlJRMEFRUUFnRFVFQ0lBa29BZ0FpQmtFR1J5QUdRUVpKRzBFQ1Joc2hEUXNDZnlBSUlCWkJBM1JCOERacUtRSUFJaCtuRUJFaUJ5SUdCRUFnQ0NnQ0JDQUdLQUlFUmd3QkMwRUFDeUVQQWtBZ0JVVU5BQ0FQUlEwQVFRQWdEMEVDSUFjb0FnQWlCa0VHUnlBR1FRWkpHMEVDUmhzaER3dEJBaUVNSUExQkFFY2dEMEVBUjNFaUVrRUJSZ1JBUVFJaEJnSi9RUUlnQ1NnQ0FDSUxRUVpISUF0QkJra2JSUVJBSUFrZ0hrSWdpS2RCL3dGeGFpMEFVaUVHQ3lBR0N3Si9RUUlnQnlnQ0FDSUpRUVpISUFsQkJra2JSUVJBSUFjZ0gwSWdpS2RCL3dGeGFpMEFVaUVNQ3lBTUN5QUdJQXhKR3lFTUN5QUNJQlpCQW5RaUNXb2lCaWdDREVVRVFDQUdLQUpNSWdZZ0JpQU1UMm9oREFzZ0NDQVdhaUFNT2dCU0FuOGdDQ0FXUVFOMFFiQTRhaWdDQUJBUklnWWlCd1JBSUFnb0FnUWdCeWdDQkVZTUFRdEJBQXNoRGdKQUlBVkZEUUFnRGtVTkFFRUFJQTVCQWlBR0tBSUFJZ1pCQmtjZ0JrRUdTUnRCQWtZYklRNExBbjhnQUNBV1FRTjBRZkE1YWlnQ0FCQVJJZ2dpQmdSQUlBQW9BZ1FnQmlnQ0JFWU1BUXRCQUFzaEVRSkFJQVZGRFFBZ0VVVU5BRUVBSUJGQkFpQUlLQUlBSWdoQkJrY2dDRUVHU1J0QkFrWWJJUkVMSUFsQjhDbHFLQUlBSVJjZ0NVR3dLV29vQWdBaEdBSi9RWVVLSUJaMlFRRnhJaHdFUUNBWFFRTnFJUWNnQkNBWGFpSUlRUUpxSVFZZ0NFRUJhaUVMSUFRTUFRc2dGMEVFZENBWWFpSUlRUzlxSVFjZ0FTQUlhaUlJUVI5cUlRWWdDRUVQYWlFTElBaEJmMm9oQ0NBQkN5RUpJQWNnQ1dvdEFBQWhDaUFHTFFBQUlSQWdDeTBBQUNFVElBZ3RBQUFoRkFKQVFUTWdGblpCQVhFRVFDQURJQmhxSWdjdEFBZ2hHeUFITFFBSElSa2dCeTBBQmlFVklBY3RBQVVoR2lBSExRQUVJUVlnQnkwQUF5RUxJQWN0QUFJaENTQUhMUUFCSVFnTUFRc2dBU0FYUVg5cUloMUJCSFFnR0dwcUlnY3RBQUFoQ0NBSExRQUhJUnNnQnkwQUJpRVpJQWN0QUFVaEZTQUhMUUFFSVJvZ0J5MEFBeUVHSUFjdEFBSWhDeUFITFFBQklRa2dIQVJBSUFRZ0hXb2hCd3dCQ3lBSFFYOXFJUWNMQWtBZ0RFRUhUUVJBSUFjdEFBQWhCd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQWdERUVCYXc0SEFRSURCQVVHQndBTElBOUZCRUJCQVE4TElBaEIvd0Z4SUF0Qi93RnhRUkIwSUFaQkdIUnljaUFKUWY4QmNVRUlkSEloRlNBSUlnd2hEU0FKSWc0aEVpQUxJZzhoQ2lBR0loRWhCd3dJQ3lBTlJRUkFRUUVQQ3lBS1FZR0NoQWhzSVJVZ0VFR0Jnb1FJYkNJTlFSaDJJUWNnRFVFUWRpRUtJQTFCQ0hZaEVpQVRRWUdDaEFoc0lneEJHSFloRVNBTVFSQjJJUThnREVFSWRpRU9JQlJCZ1lLRUNHd2lDRUVZZGlFR0lBaEJFSFloQ3lBSVFRaDJJUWtNQndzQ2Z5QVRJQlJxSUFwcUlCQnFJQVpCL3dGeGFpQUxRZjhCY1dvZ0NVSC9BWEZxSUFoQi93Rnhha0VFYWtFRGRpQVNEUUFhSUJNZ0ZHb2dDbW9nRUdwQkFtcEJBbllnRFEwQUdrR0FBU0FQUlEwQUdpQUdRZjhCY1NBTFFmOEJjV29nQ1VIL0FYRnFJQWhCL3dGeGFrRUNha0VDZGdzaUNFR0Jnb1FJYkNFVklBZ2lDU0lMSWdZaURDSU9JZzhpRVNJTkloSWlDaUVIREFZTElBOUZCRUJCQVE4TElBWkIvd0Z4SWcxQkFtb2lFU0FWSUFZZ0RodEIvd0Z4SWdkcUlCb2dCaUFPRzBIL0FYRWlDa0VCZEdwQkFuWWlEeUFaSUFZZ0RodEIvd0Z4SWd3Z0d5QUdJQTRiUWY4QmNTSUdRUU5zYWtFV2RFR0FnSUFFYWtHQWdJQjRjWElnQ2lBTWFpQUhRUUYwYWtFQ2FpSVFRUVowUVlEK0EzRnlJQVlnQjJvZ0RFRUJkR3BCQW1vaUJrRU9kRUdBZ1B3SGNYSWhGU0FHUVFKMklRY2dDMEgvQVhFaUJrRUNhaUlMSUFoQi93RnhhaUFKUWY4QmNTSUpRUUYwYWtFQ2RpRUlJQWtnRVdvZ0JrRUJkR3BCQW5ZaUNTRU1JQW9nQzJvZ0RVRUJkR3BCQW5ZaUN5RU9JQXNoRFNBUElnWWhFaUFRUVFKMkloRWhDZ3dGQzBFQklCRkZJQkpCQVhOeURRWWFJQlFnRTBFQmRHb2dFR3BCQW1vaURrRUdkRUdBL2dOeElBb2dFMEVDYWlJUGFpQVFRUUYwYWtFQ2RuSWdDRUgvQVhFaUNrRUNhaUlNSUJScUlBZEJBWFJxUVFKMklnaEJHSFJ5SUE4Z0ZFRUJkR29nQjJvaUVFRU9kRUdBZ1B3SGNYSWhGU0FKUWY4QmNTSVJRUUpxSWdrZ0JrSC9BWEZxSUF0Qi93RnhJZ3RCQVhScVFRSjJJUVlnRGtFQ2RpRU5JQWtnQ2tFQmRHb2dCMnBCQW5ZaUNTRVBJQkZCQVhRZ0Myb2dER3BCQW5ZaUN5RVJJQkJCQW5ZaURDRVNJQWdpRGlFS0lBa2hCd3dFQzBFQklCRkZJQkpCQVhOeURRVWFJQWhCL3dGeElncEJBbW9pRGlBTFFmOEJjU0lJSUFsQi93RnhJZ3RCQVhScWFrRUNkaUlQUVJoMElCUWdFMEVCZEdvZ0VHcEJBbXBCQW5aeUlBNGdGR29nQjBFQmRHb2lDVUVHZEVHQS9nTnhjaUFMUVFKcUlnNGdDa0VCZEdvZ0Iyb2lEVUVPZEVHQWdQd0hjWEloRlNBSVFRRnFJaEFnQmtIL0FYRWlER3BCQVhZaEJpQU1JQTVxSUFoQkFYUnFRUUoySVJFZ0NVRUNkaUVNSUExQkFuWWhEaUFUSUJSQkFYUnFJQWRxUVFKcVFRSjJJUTBnQnlBS2FrRUJha0VCZGlJSUlSSWdDaUFMYWtFQmFrRUJkaUlKSVFvZ0N5QVFha0VCZGlJTElRY01Bd3RCQVNBUlJTQVNRUUZ6Y2cwRUdpQVRRUUpxSWc0Z0Ntb2dFRUVCZEdwQkJuUkJnUDREY1NBUUlCTnFRUUZxSWc5QkQzUkJnSUQ4QjNFZ0ZFRUNhaUlNSUJOQkFYUnFJQkJxUVFKMkloSkJHSFJ5SUFvZ0VHcEJBV3BCQVhaeWNpRVZJQWhCL3dGeElnZ2dDMEgvQVhGcUlBbEIvd0Z4SWdsQkFYUnFRUUpxUVFKMklRWWdDU0FJUVFGMGFpQUhha0VDYWtFQ2RpRUxJQTlCQVhZaERTQUlJQXhxSUFkQkFYUnFRUUoySWhFaENTQVVRUUZxSWdvZ0IycEJBWFlpQ0NFUElBb2dFMnBCQVhZaURDRUtJQTRnRkVFQmRHb2dCMnBCQW5ZaURpRUhEQUlMSUE5RkJFQkJBUThMSUJvZ0JpQU9HMEgvQVhFaUNpQVpJQVlnRGh0Qi93RnhhaUFWSUFZZ0RodEIvd0Z4SWdkQkFYUnFRUlowSUF0Qi93RnhJZ3RCQW1vaURDQUthaUFHUWY4QmNTSUdRUUYwYWlJUFFRWjBja0dBZ0lBRWFrR0Evb040Y1NBR1FRSnFJZzBnQ1VIL0FYRWlDV29nQzBFQmRHcEJBbllpRG5JZ0J5QU5haUFLUVFGMGFpSU5RUTUwUVlDQS9BZHhjaUVWSUFjZ0NtcEJBV3BCQVhZaEJ5QU5RUUoySVJFZ0NTQUlRZjhCY1NJTmFrRUJha0VCZGlFSUlBOUJBblloRHlBTUlBMXFJQWxCQVhScVFRSjJJUXdnQ1NBTGFrRUJha0VCZGlJSklRMGdCa0VCYWlJR0lBdHFRUUYySWdzaEVpQUdJQXBxUVFGMklnWWhDZ3dCQ3lBTlJRUkFRUUVQQ3lBS1FRaDBJQXB5SUFwQkVIUnlJQXBCR0hSeUlSVWdFRUVDYWlJSElCUnFJQk5CQVhScVFRSjJJUWtnRTBFQmFpSUdJQlJxUVFGMklRZ2dCaUFRYWtFQmRpSUxJUXdnQ2lBVGFpQVFRUUYwYWtFQ2FrRUNkaUlHSVE0Z0NpQVFha0VCYWtFQmRpSVBJUTBnQnlBS1FRTnNha0VDZGlJUklSSWdDaUVIQ3lBQklCZEJCSFFnR0dwcUloQWdGVFlDTUNBUUlBMUIvd0Z4SUJKQi93RnhRUWgwY2lBS1FmOEJjVUVRZEhJZ0IwRVlkSEkyQWlBZ0VDQU1RZjhCY1NBT1FmOEJjVUVJZEhJZ0QwSC9BWEZCRUhSeUlCRkJHSFJ5TmdJUUlCQWdDRUgvQVhFZ0NVSC9BWEZCQ0hSeUlBdEIvd0Z4UVJCMGNpQUdRUmgwY2pZQ0FDQUJJQUlnRmtFR2RHcEJ5QUpxSUJZUUNDQVdRUUZxSWhaQkVFY05BQXRCQUFzTHhSSUJFSDhDZnlBQUtBTElBU0lIQkVBZ0FDZ0NCQ0FIS0FJRVJnd0JDMEVBQ3lFSEFrQWdCVVVOQUNBSFJRMEFRUUFnQjBFQ0lBQW9Bc2dCS0FJQUlnZEJCa2NnQjBFR1NSdEJBa1liSVFjTEFuOGdBQ2dDekFFaUNBUkFJQUFvQWdRZ0NDZ0NCRVlNQVF0QkFBc2hDQUpBSUFWRkRRQWdDRVVOQUVFQUlBaEJBaUFBS0FMTUFTZ0NBQ0lJUVFaSElBaEJCa2tiUVFKR0d5RUlDd0ovSUFBb0F0UUJJZ2tFUUNBQUtBSUVJQWtvQWdSR0RBRUxRUUFMSVFrQ1FDQUZSUTBBSUFsRkRRQkJBaUFBS0FMVUFTZ0NBQ0lGUVFaSElBVkJCa2tiUVFKSElRa0xBa0FDUUNBQUtBSUFRUUZxUVFOeElnQkJBazBFUUFKQUFrQUNRQ0FBUVFGckRnSUJBZ0FMSUFoRkJFQkJBUThMUVFBaEJTQUJJUUFEUUNBQUlBTXRBQUU2QUFBZ0FDQURMUUFDT2dBQklBQWdBeTBBQXpvQUFpQUFJQU10QUFRNkFBTWdBQ0FETFFBRk9nQUVJQUFnQXkwQUJqb0FCU0FBSUFNdEFBYzZBQVlnQUNBRExRQUlPZ0FISUFBZ0F5MEFDVG9BQ0NBQUlBTXRBQW82QUFrZ0FDQURMUUFMT2dBS0lBQWdBeTBBRERvQUN5QUFJQU10QUEwNkFBd2dBQ0FETFFBT09nQU5JQUFnQXkwQUR6b0FEaUFBSUFNdEFCQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3REN5QUhSUVJBUVFFUEMwRUFJUVVnQVNFQUEwQWdBQ0FFSUFWcUlnTXRBQUE2QUFBZ0FDQURMUUFBT2dBQklBQWdBeTBBQURvQUFpQUFJQU10QUFBNkFBTWdBQ0FETFFBQU9nQUVJQUFnQXkwQUFEb0FCU0FBSUFNdEFBQTZBQVlnQUNBRExRQUFPZ0FISUFBZ0F5MEFBRG9BQ0NBQUlBTXRBQUE2QUFrZ0FDQURMUUFBT2dBS0lBQWdBeTBBQURvQUN5QUFJQU10QUFBNkFBd2dBQ0FETFFBQU9nQU5JQUFnQXkwQUFEb0FEaUFBSUFNdEFBQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3Q0N5QUJBbjhDUUNBSFJRMEFJQWhGRFFBZ0JDMEFEeUFETFFBUUlBUXRBQTRnQXkwQUR5QUVMUUFOSUFNdEFBNGdCQzBBRENBRExRQU5JQVF0QUFzZ0F5MEFEQ0FFTFFBS0lBTXRBQXNnQkMwQUNTQURMUUFLSUFRdEFBZ2dBeTBBQ1NBRUxRQUhJQU10QUFnZ0JDMEFCaUFETFFBSElBUXRBQVVnQXkwQUJpQUVMUUFFSUFNdEFBVWdCQzBBQXlBRExRQUVJQVF0QUFJZ0F5MEFBeUFFTFFBQklBTXRBQUlnQXkwQUFTQUVMUUFBYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFrRVFha0VGZGd3QkN5QUhCRUFnQkMwQUR5QUVMUUFPSUFRdEFBMGdCQzBBRENBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSUlBUXRBQWNnQkMwQUJpQUVMUUFGSUFRdEFBUWdCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYW1wcWFtcHFhbXBxYW1wcWFrRUlha0VFZGd3QkMwR0FBU0FJUlEwQUdpQURMUUFRSUFNdEFBOGdBeTBBRGlBRExRQU5JQU10QUF3Z0F5MEFDeUFETFFBS0lBTXRBQWtnQXkwQUNDQURMUUFISUFNdEFBWWdBeTBBQlNBRExRQUVJQU10QUFNZ0F5MEFBU0FETFFBQ2FtcHFhbXBxYW1wcWFtcHFhbXBxUVFocVFRUjJDMEdBQWhBSEdnd0JDMEVCSVFBZ0IwVU5BU0FJUlEwQklBbEZEUUVnQkMwQUNDQUVMUUFHYXlBRUxRQVBJZ0FnQXkwQUFDSUZhMEVEZEdvZ0JDMEFDU0FFTFFBRmEwRUJkR29nQkMwQUNpQUVMUUFFYTBFRGJHb2dCQzBBQ3lBRUxRQURhMEVDZEdvZ0JDMEFEQ0FFTFFBQ2EwRUZiR29nQkMwQURTQUVMUUFCYTBFR2JHb2dCQzBBRGlBRUxRQUFhMEVIYkdwQkJXeEJJR3BCQm5VaEJ5QURMUUFKSUFNdEFBZHJJQU10QUFvZ0F5MEFCbXRCQVhScUlBTXRBQXNnQXkwQUJXdEJBMnhxSUFNdEFBd2dBeTBBQkd0QkFuUnFJQU10QUEwZ0F5MEFBMnRCQld4cUlBTXRBQTRnQXkwQUFtdEJCbXhxSUFNdEFBOGdBeTBBQVd0QkIyeHFJQU10QUJBaUF5QUZhMEVEZEdwQkJXeEJJR3BCQm5VaUJFRURkQ0VJSUFSQkIyd2hDU0FFUVFac0lRb2dCRUVGYkNFTElBUkJBMndoRENBRVFYMXNJUTBnQkVGN2JDRU9JQVJCZW13aER5QUVRWGxzSVJCQkFDQUVRUUYwSWhGcklSSkJBQ0FFUVFKMEloTnJJUlFnQUNBRGFrRUVkRUVRYWlFVlFRQWhCUU5BSUFFZ0JVRUVkQ0lBYWlBVklBVkJlV29nQjJ4cUlnTWdFR3BCQlhVaUJrSC9BU0FHUWY4QlNCc2lCa0VBSUFaQkFFb2JPZ0FBSUFFZ0FFRUJjbW9nQXlBUGFrRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFKeWFpQURJQTVxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJBM0pxSUFNZ0ZHcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFRWNtb2dBeUFOYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUVZ5YWlBRElCSnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkJuSnFJQU1nQkd0QkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVIY21vZ0EwRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFoeWFpQURJQVJxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJDWEpxSUFNZ0VXcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFS2Ntb2dBeUFNYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUXR5YWlBRElCTnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkRISnFJQU1nQzJwQkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVOY21vZ0F5QUtha0VGZFNJR1FmOEJJQVpCL3dGSUd5SUdRUUFnQmtFQVNoczZBQUFnQVNBQVFRNXlhaUFESUFscVFRVjFJZ1pCL3dFZ0JrSC9BVWdiSWdaQkFDQUdRUUJLR3pvQUFDQUJJQUJCRDNKcUlBTWdDR3BCQlhVaUFFSC9BU0FBUWY4QlNCc2lBRUVBSUFCQkFFb2JPZ0FBSUFWQkFXb2lCVUVRUncwQUN3dEJBQ0VBSUFFZ0FrRUFFQWdnQVNBQ1FVQnJRUUVRQ0NBQklBSkJnQUZxUVFJUUNDQUJJQUpCd0FGcVFRTVFDQ0FCSUFKQmdBSnFRUVFRQ0NBQklBSkJ3QUpxUVFVUUNDQUJJQUpCZ0FOcVFRWVFDQ0FCSUFKQndBTnFRUWNRQ0NBQklBSkJnQVJxUVFnUUNDQUJJQUpCd0FScVFRa1FDQ0FCSUFKQmdBVnFRUW9RQ0NBQklBSkJ3QVZxUVFzUUNDQUJJQUpCZ0FacVFRd1FDQ0FCSUFKQndBWnFRUTBRQ0NBQklBSkJnQWRxUVE0UUNDQUJJQUpCd0FkcVFROFFDQXNnQUF1N0NBRUhmd0pBSUFORkRRQWdBQ2dDQUNBRElBQW9BZ1FpQlc0aUNDQUZiQ0lFUVFoMGFpQURJQVJySWdkQkJIUnFJUVlnQlVFRWRDRUVJQUFvQWdnaENTQUZJQU5MSWdwRkJFQWdBU0FHSUFSQkFYSnJJZ010QUFBNkFBQWdBU0FETFFBQk9nQUJJQUVnQXkwQUFqb0FBaUFCSUFNdEFBTTZBQU1nQVNBRExRQUVPZ0FFSUFFZ0F5MEFCVG9BQlNBQklBTXRBQVk2QUFZZ0FTQURMUUFIT2dBSElBRWdBeTBBQ0RvQUNDQUJJQU10QUFrNkFBa2dBU0FETFFBS09nQUtJQUVnQXkwQUN6b0FDeUFCSUFNdEFBdzZBQXdnQVNBRExRQU5PZ0FOSUFFZ0F5MEFEam9BRGlBQklBTXRBQTg2QUE4Z0FTQURMUUFRT2dBUUlBRWdBeTBBRVRvQUVTQUJJQU10QUJJNkFCSWdBU0FETFFBVE9nQVRJQUVnQXkwQUZEb0FGQ0FCUVJWcUlRRUxJQWNFUUNBQ0lBWkJmMm9pQXkwQUFEb0FBQ0FDSUFNZ0JHb2lBeTBBQURvQUFTQUNJQU1nQkdvaUF5MEFBRG9BQWlBQ0lBTWdCR29pQXkwQUFEb0FBeUFDSUFNZ0JHb2lBeTBBQURvQUJDQUNJQU1nQkdvaUF5MEFBRG9BQlNBQ0lBTWdCR29pQXkwQUFEb0FCaUFDSUFNZ0JHb2lBeTBBQURvQUJ5QUNJQU1nQkdvaUF5MEFBRG9BQ0NBQ0lBTWdCR29pQXkwQUFEb0FDU0FDSUFNZ0JHb2lBeTBBQURvQUNpQUNJQU1nQkdvaUF5MEFBRG9BQ3lBQ0lBTWdCR29pQXkwQUFEb0FEQ0FDSUFNZ0JHb2lBeTBBQURvQURTQUNJQU1nQkdvaUF5MEFBRG9BRGlBQ0lBTWdCR290QUFBNkFBOGdBa0VRYWlFQ0N5QUFLQUlBSUFVZ0NXd2lCRUVJZEdvZ0NDQUZRUU4wSWdCc1FRTjBhaUFIUVFOMGFpRUdJQUJCK1AvLy93ZHhJUUFnQ2tVRVFDQUJJQVlnQUVFQmNtc2lBeTBBQURvQUFDQUJJQU10QUFFNkFBRWdBU0FETFFBQ09nQUNJQUVnQXkwQUF6b0FBeUFCSUFNdEFBUTZBQVFnQVNBRExRQUZPZ0FGSUFFZ0F5MEFCam9BQmlBQklBTXRBQWM2QUFjZ0FTQURRUWhxSWdNdEFBQTZBQWdnQVNBRVFRWjBJQU5xSWdOQmVHb3RBQUE2QUFrZ0FTQURRWGxxTFFBQU9nQUtJQUVnQTBGNmFpMEFBRG9BQ3lBQklBTkJlMm90QUFBNkFBd2dBU0FEUVh4cUxRQUFPZ0FOSUFFZ0EwRjlhaTBBQURvQURpQUJJQU5CZm1vdEFBQTZBQThnQVNBRFFYOXFMUUFBT2dBUUlBRWdBeTBBQURvQUVRc2dCMFVOQUNBQ0lBWkJmMm9pQVMwQUFEb0FBQ0FDSUFBZ0FXb2lBUzBBQURvQUFTQUNJQUFnQVdvaUFTMEFBRG9BQWlBQ0lBQWdBV29pQVMwQUFEb0FBeUFDSUFBZ0FXb2lBUzBBQURvQUJDQUNJQUFnQVdvaUFTMEFBRG9BQlNBQ0lBQWdBV29pQVMwQUFEb0FCaUFDSUFBZ0FXb2lBUzBBQURvQUJ5QUNJQUFnQVdvZ0JDQUZhMEVHZEdvaUFTMEFBRG9BQ0NBQ0lBQWdBV29pQVMwQUFEb0FDU0FDSUFBZ0FXb2lBUzBBQURvQUNpQUNJQUFnQVdvaUFTMEFBRG9BQ3lBQ0lBQWdBV29pQVMwQUFEb0FEQ0FDSUFBZ0FXb2lBUzBBQURvQURTQUNJQUFnQVdvaUFTMEFBRG9BRGlBQ0lBQWdBV290QUFBNkFBOExDNjhCQVFGL0l3QkIwQUJySWdZa0FDQUNJQVpCSUdvZ0JpQURFRlVDUUFKQVFRSWdBQ2dDQUNJRFFRWkhJQU5CQmtrYlFRRkdCRUFnQUNBRklBRkJ5QUpxSUFaQklHb2dCaUFFRUZRaUEwVU5BUXdDQ3lBQUlBVWdBU0FHUVNCcUlBWWdCQkJUSWdNTkFRc2dBQ0FGUVlBQ2FpQUJRY2dLYWlBR1FUVnFJQVpCRUdvZ0FTZ0NqQUVnQkJCU0lnTU5BRUVBSVFNZ0FDZ0N4QUZCQVVzTkFDQUNJQVVRR3dzZ0JrSFFBR29rQUNBREM2TXFBU1IvSXdCQklHc2lFQ1FBSUJBZ0JDZ0NCQ0lJTmdJTUlCQWdCQ2dDQ0RZQ0VDQURJQWh1SWdaQkJIUWhGQ0FESUFZZ0NHeHJRUVIwSVJVQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFBb0FnQWlCa0VEVFFSQUFrQUNRQUpBSUFaQkFtc09BZ0VDQUFzZ0FTZ0NrQUVoRXlBQUtBSUVJUTVCZnlFUEFuOGdBQ2dDeUFFaUNVVUVRRUVBSVFoQmZ3d0JDMEVBSVFoQmZ5QUpLQUlFSUE1SERRQWFRUUVoRWtGL0lBa29BZ0JCQlVzTkFCb2dDU2dDbUFFaUNFRVFkaUVISUFrb0FtZ0xJUTBnQUNnQ3pBRWlDVVVOQ0NBSktBSUVJQTVIRFFoQkFTRVdJQWtvQWdCQkJVc05DQ0FKS0FLc0FTSVJRUkIySVFvZ0NTZ0NiQ0VQREFnTElBRW9BcEFCSVJNZ0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhDMEYvSVFjQ1FDQUFLQUxNQVNJR1JRMEFJQXNnQmlnQ0JFY0VRQXdCQzBFQklSSWdCaWdDQUVFRlN3MEFJQVlvQXF3QklnbEJFSFloQ2lBR0tBSnNJUWNMSUFjZ0UwWUVRQ0FLSVFjZ0NTRUdEQWNMUVg4aER3SkFBa0FDUUNBQUtBTElBU0lJUlFSQVFRQWhCd3dCQzBFQUlRY2dDQ2dDQkNBTFJnMEJDMEVBSVFZTUFRdEJBU0VYSUFnb0FnQkJCVXNFUUVFQUlRWU1BUXNnQ0NnQ21BRWlCa0VRZGlFSElBZ29BbWdoRHdzQ1FBSkFJQUFvQXRBQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVTBOQVF3R0N3SkFJQUFvQXRRQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVXNOQmlBSUtBSndJUllnQ0NnQ3dBRWhDQXdIQzBFQUlRaEJmeUVXSUJJTkJpQVhSUTBHREFjTElBZ29BbXdoRmlBSUtBS3NBU0VJREFVTElBRW9BcEFCSVE4Z0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhCa0YvSVFjQ1FDQUFLQUxJQVNJS1JRUkFRUUFoQ0F3QkMwRUFJUWdnQmlBS0tBSUVSd1JBREFFTFFRRWhFU0FLS0FJQVFRVkxEUUFnQ2lnQ21BRWlDVUVRZGlFSUlBb29BbWdoQndzZ0J5QVBSZzBCQW44Q2Z3SkFBa0FnQUNnQ3pBRWlCMFVOQUNBSEtBSUVJQVpIRFFBZ0J5Z0NBRUVGU3cwQklBY29BbkFoRVNBSEtBSzhBU0VLSUFjb0Ftd2hFaUFIS0FLc0FTSUdRUkIyREFNTEFrQWdBQ2dDMUFFaUIwVU5BQ0FIS0FJRUlBWkhEUUJCQUNFR1FYOGhFaUFIS0FJQVFRVkxCRUJCZnlFUlFRQU1Bd3NnQnlnQ2NDRVJJQWNvQXNBQkRBSUxJQkVOQkF0QmZ5RVJRWDhoRWtFQUlRWkJBQXNoQ2tFQUN5RUhJQThnRWtZaUN5QVBJQkZHYWtFQlJ3UkFJQWNnQ0NBSFFSQjBRUkIxSWdzZ0NFRVFkRUVRZFNJT1NpSUlHeUlISUE0Z0N5QU9JQXNnRGtnYklBZ2JJZ2dnQ2tFUWRTSUxJQWdnQzBvYklBZEJFSFJCRUhVZ0MwZ2JJUWNnQmlBSklBWkJFSFJCRUhVaUN5QUpRUkIwUVJCMUlnbEtJZ1liSWdoQi8vOERjU0FKSUFzZ0NTQUxJQWxJR3lBR0d5SUdJQXBCRUhSQkVIVWlDU0FHSUFsS0d5QUlRUkIwUVJCMUlBbElHeUVHREFNTElBc05BaUFLUVJCMklRY2dDaUVHREFJTFFRRWhHeUFBUVlRQmFpRWNBMEFDZnlBQklCMUJBblFpSG1vaUlDSWtLQUt3QVNJR1FRSk5CRUFnQmtFQ2RFR2NOV29vQWdBTUFRdEJCQXNoSWlBQUlCNXFJZ1lnSUNnQ3dBRTJBbVFnQmlBQ0lDQW9Bc0FCRUJRaUJqWUNkQ0FHUlEwSUlDSUVRQ0FjSUIxQkJIUWlIMm9pSlNFbUlCd2dIMEVNY21vaUowRUNhaUVvSUJ3Z0gwRUljbW9pS1NFUklCd2dIMEVFY21vaUZpRVRRUUFoQmdOQUlBRWdIMm9nQmtFQ2RHb2lDQzhCMGdFaER5QUlMd0hRQVNFT0lDQW9Bc0FCSVNGQmZ5RVhBbjhnQUNBZFFRZDBJQ1FvQXJBQklpTkJCWFJxSUFaQkEzUnFJaHBCc0JscUtBSUFFQkVpQ1VVRVFFRUFJUXhCQUNFSVFRQWhDa0YvREFFTFFRQWhERUVBSVFoQkFDRUtRWDhnQ1NnQ0JDQUFLQUlFUncwQUdrRUJJUXBCZnlBSktBSUFRUVZMRFFBYUlBa2dHa0cwR1dvdEFBQWlCMEVDZEdvb0FvUUJJZ2hCRUhZaERDQUpJQWRCL0FGeGFpZ0NaQXNoRFFKQUFrQUNRQ0FBSUJwQnNCMXFLQUlBRUJFaUdFVUVRRUVBSVFrTUFRdEJBQ0VKSUJnb0FnUWdBQ2dDQkVZTkFRdEJBQ0VTUVFBaEN3d0JDMEVCSVFzZ0dDZ0NBRUVGU3dSQVFRQWhFZ3dCQ3lBWUlCcEJ0QjFxTFFBQUlnZEJBblJxS0FLRUFTSVNRUkIySVFrZ0dDQUhRZndCY1dvb0FtUWhGd3NDUUFKQUFrQUNRQUpBSUFBZ0drR3dJV29vQWdBUUVTSVpSUTBBSUJrb0FnUWdBQ2dDQkVjTkFDQVpLQUlBUVFWTkRRRU1BZ3NDUUNBQUlCcEJzQ1ZxS0FJQUVCRWlHVVVOQUNBWktBSUVJQUFvQWdSSERRQWdHU2dDQUVFRlN3MENJQmtnR2tHMEpXb3RBQUFpQjBIOEFYRnFLQUprSVJnZ0dTQUhRUUowYWlnQ2hBRWhCd3dEQzBFQUlRZEJmeUVZSUFwRkRRSWdDdzBDREFNTElCa2dHa0cwSVdvdEFBQWlCMEg4QVhGcUtBSmtJUmdnR1NBSFFRSjBhaWdDaEFFaEJ3d0JDMEVBSVFkQmZ5RVlDeUFYSUNGR0lnb2dEU0FoUmlJTGFpQVlJQ0ZHYWtFQlJ3UkFJQWtnRENBSlFSQjBRUkIxSWdzZ0RFRVFkRUVRZFNJTVNpSUpHeUlLSUF3Z0N5QU1JQXNnREVnYklBa2JJZ2tnQjBFUWRTSUxJQWtnQzBvYklBcEJFSFJCRUhVZ0MwZ2JJUXdnRWlBSUlCSkJFSFJCRUhVaUNpQUlRUkIwUVJCMUlndEtJZ2diSWdsQi8vOERjU0FMSUFvZ0N5QUtJQXRJR3lBSUd5SUlJQWRCRUhSQkVIVWlCeUFJSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVJREFFTElBZ2dFaUFMR3lFSUlBd2dDU0FMR3lFTUlBc05BQ0FLRFFBZ0IwRVFkaUVNSUFjaENBc2dDQ0FPYWlJS1FSQjBRUkIxUVlCQWEwSC8vd0JMRFFvZ0RDQVBhaUlKUVJCMFFSQjFRWUFRYWtIL0gwc05DaUFqUVFOTkJFQUNmd0pBQWtBQ1FBSkFJQ05CQVdzT0F3RUNBd0FMSUNVZ0Nqc0JBQ0FtSUFrN0FRSWdGaUFLT3dFQUlCTWdDVHNCQWlBcElBbzdBUUFnRVNBSk93RUNJQ2NnQ2pzQkFDQW9EQU1MSUJ3Z0JrRUJkQ0FlYWtFQ2RDSUhhaUlJSUFrN0FRSWdDQ0FLT3dFQUlCd2dCMEVFY21vaUNDQUtPd0VBSUFoQkFtb01BZ3NnQUNBR0lCNXFRUUowYWlJSUlBbzdBWXdCSUFnZ0NUc0JoZ0VnQ0NBS093R0VBU0FJUVk0QmFnd0JDeUFBSUFZZ0htcEJBblJxSWdnZ0Nqc0JoQUVnQ0VHR0FXb0xJQWs3QVFBTElBWkJBV29pQmlBaVJ3MEFDd3NnSFVFQmFpSWRRUVJIRFFBTFFRQWhEQU5BSUJBZ0FDQU1RUUowSWdKcUtBSjBOZ0lJSUF4QkFVdEJBM1FoQ1NBTVFRTjBRUWh4SVFjQ1FDQUJJQUpxS0FLd0FTSUNRUUpOQkVBQ1FBSkFBa0FnQWtFQmF3NENBUUlBQ3lBRklBQWdERUVFZEdwQmhBRnFJQkJCQ0dvZ0ZTQVVJQWNnQ1VFSVFRZ1FEZ3dEQ3lBRklBQWdERUVFZEdvaUFrR0VBV29nRUVFSWFpQVZJQlFnQnlBSlFRaEJCQkFPSUFVZ0FrR01BV29nRUVFSWFpQVZJQlFnQnlBSlFRUnlRUWhCQkJBT0RBSUxJQVVnQUNBTVFRUjBhaUlDUVlRQmFpQVFRUWhxSUJVZ0ZDQUhJQWxCQkVFSUVBNGdCU0FDUVlnQmFpQVFRUWhxSUJVZ0ZDQUhRUVJ5SUFsQkJFRUlFQTRNQVFzZ0JTQUFJQXhCQkhScUlnaEJoQUZxSUJCQkNHb2dGU0FVSUFjZ0NVRUVRUVFRRGlBRklBaEJpQUZxSUJCQkNHb2dGU0FVSUFkQkJISWlCaUFKUVFSQkJCQU9JQVVnQ0VHTUFXb2dFRUVJYWlBVklCUWdCeUFKUVFSeUlnSkJCRUVFRUE0Z0JTQUlRWkFCYWlBUVFRaHFJQlVnRkNBR0lBSkJCRUVFRUE0TElBeEJBV29pREVFRVJ3MEFDd3dHQ3lBSUlRY2dDU0VHQzBFQklSc2dCaUFNYWlJSVFSQjBRUkIxUVlCQWEwSC8vd0JMRFFVZ0J5QU5haUlHUVJCMFFSQjFRWUFRYWtIL0gwc05CU0FDSUE4UUZDSUhSUTBGSUFBZ0Jqc0JzZ0VnQUNBSU93R3dBU0FBSUFjMkFuUWdBQ0FQTmdKa0lBQWdCellDZkNBQUlBODJBbXdnQUNBQUtBS3dBU0lHTmdLc0FTQUFJQVkyQXFnQklBQWdCallDcEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FCS0FLVUFTRU9JQUV2QWFZQklRd2dBUzhCcEFFaEN5QUFLQUlFSVFrQ1FBSkFJQUFvQXRBQklnZEZEUUFnQnlnQ0JDQUpSdzBBUVFFaEVTQUhLQUlBUVFWTEJFQkJmeUVJUVFBaEJ3d0NDeUFIS0FKc0lRZ2dCeWdDckFFaEJ3d0JDMEYvSVFoQkFDRUhJQUFvQXN3QklncEZCRUJCQUNFUkRBRUxJQWtnQ2lnQ0JFY0VRRUVBSVJFTUFRdEJBU0VSSUFvb0FnQkJCVXNOQUNBS0tBSnNJUWdnQ2lnQ3NBRWhCd3NDUUNBSUlBNUdSUVJBSUFaQkVIWWhDQUovQWtBQ1FDQUFLQUxNQVNJTlJRMEFJQTBvQWdRZ0NVY05BQ0FOS0FJQVFRVkxEUUVnRFNnQ3ZBRWlFVUVRZGlFS0lBMG9BbkFNQWdzZ0VVVU5Bd3RCQUNFUlFRQWhDa0YvQ3lFTklBNGdEMFlpQ1NBTklBNUdha0VCUndSQUlBb2dDQ0FLUVJCMFFSQjFJZzBnQ0VFUWRFRVFkVW9pQ0JzaUNTQUdRUkIxSWdvZ0RTQUtJQW9nRFVvYklBZ2JJZ2dnQjBFUWRTSUtJQWdnQ2tvYklBbEJFSFJCRUhVZ0NrZ2JJUWdnRVNBR0lCRkJFSFJCRUhVaUNpQUdRUkIwUVJCMUlnMUtJZ1liSWdsQi8vOERjU0FOSUFvZ0RTQU5JQXBLR3lBR0d5SUdJQWRCRUhSQkVIVWlCeUFHSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVHREFJTElBa05BU0FOSUE1R0JFQWdFVUgvL3dOeElBcEJFSFJ5SVFZZ0NpRUlEQUlMQ3lBSFFSQjJJUWdnQnlFR0N5QUdJQXRxSWdkQkVIUkJFSFZCZ0VCclFmLy9BRXNOQlNBSUlBeHFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MEZJQUlnRGhBVUlnSkZEUVVnQUNBR093SENBU0FBSUFjN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKNElBQWdEallDY0NBQUlBNDJBbWdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0tnQVNBQUlBWTJBcHdCSUFBZ0JqWUNtQUVnQUVHVUFXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVJUVJBUURpQVFJQUFvQW5nMkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFoQkFFRUlRUkFRRGd3RUMwRUFJUWhCZnlFV0N5QVBJQk5HSWdzZ0V5QVdSbXBCQVVjRVFDQUtJQWNnQ2tFUWRFRVFkU0lMSUFkQkVIUkJFSFVpRGtvaUJ4c2lDaUFPSUFzZ0RpQUxJQTVJR3lBSEd5SUhJQWhCRUhVaUN5QUhJQXRLR3lBS1FSQjBRUkIxSUF0SUd5RUhJQWtnQmlBSlFSQjBRUkIxSWdvZ0JrRVFkRUVRZFNJTFNpSUdHeUlKUWYvL0EzRWdDeUFLSUFzZ0NpQUxTQnNnQmhzaUJpQUlRUkIwUVJCMUlnZ2dCaUFJU2hzZ0NVRVFkRUVRZFNBSVNCc2hCZ3dCQ3lBTERRQWdDRUVRZGlFSElBZ2hCZ3RCQVNFYklBWWdER29pQ0VFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0RXb2lCa0VRZEVFUWRVR0FFR3BCL3g5TERRSWdBaUFURUJRaUIwVU5BaUFBSUFZN0FhSUJJQUFnQ0RzQm9BRWdBQ0FITmdKMElBQWdFellDWkNBQUlBYzJBbmdnQUNBVE5nSm9JQUFnQUNnQ29BRWlEellDbkFFZ0FDQVBOZ0tZQVNBQUlBODJBcFFCSUFBZ0R6WUNrQUVnQUNBUE5nS01BU0FBSUE4MkFvZ0JJQUFnRHpZQ2hBRWdBU2dDbEFFaERpQUJMd0dtQVNFTklBRXZBYVFCSVF3Q2Z3SkFBa0FDUUNBQUtBTElBU0lHQkVBZ0JpZ0NCQ0FBS0FJRVJnUkFJQVlvQWdCQkJVMEVRQ0FHS0FLNEFTSUxRUkIySVFjZ0JpZ0NjQ0FPUncwRUlBc2hDUXdEQzBGL0lSSkJBQ0VKUVFBaEIwRUFJUXRCQUNFS0lBNUJmMFlOQWd3RUMwRi9JUkpCQUNFSlFRQWhCMEVBSVF0QkFDRUtJQTVCZjBZTkFRd0RDMEYvSVJKQkFDRUpRUUFoQjBFQUlRdEJBQ0VLSUE1QmYwY05BZ3NnQ1VILy93TnhJQWRCRUhSeURBSUxJQVlvQW1naEVpQUdLQUtnQVNFS0lBY2hDUXNnRDBFUWRpRUlJQTRnRTBZaUJpQU9JQkpHYWtFQlJ3UkFJQWdnQ1NBSlFSQjBRUkIxSWdrZ0NFRVFkRUVRZFVnaUJ4c2lDQ0FKSUE5QkVIVWlCaUFKSUFZZ0NVZ2JJQWNiSWdZZ0NrRVFkU0lISUFZZ0Iwb2JJQWhCRUhSQkVIVWdCMGdiSVFjZ0R5QUxJQXRCRUhSQkVIVWlDeUFQUVJCMFFSQjFJZ2xJSWdZYklnaEIvLzhEY1NBTElBa2dDeUFKSUF0SUd5QUdHeUlHSUFwQkVIUkJFSFVpQ1NBR0lBbEtHeUFJUVJCMFFSQjFJQWxJR3d3QkN5QUlJQXBCRUhZZ0Joc2hCeUFQSUFvZ0Joc0xJQXhxSWdoQkVIUkJFSFZCZ0VCclFmLy9BRXNOQWlBSElBMXFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MENJQUlnRGhBVUlnSkZEUUlnQUNBR093SENBU0FBSUFnN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKOElBQWdEallDY0NBQUlBNDJBbXdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0t3QVNBQUlBWTJBcXdCSUFBZ0JqWUNxQUVnQUVHa0FXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVRUVFnUURpQVFJQUFvQW53MkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFCQkNFRVFRUWdRRGd3QkN3SkFJQVpGQkVBZ0VrVUVRRUVBSVFrTUFnc2dGa1VFUUVFQUlRa01BZ3NnQ0VILy93TnhJQWRCRUhSeUlBMXlSUVJBUVFBaENRd0NDMEVBSVFrZ0VVSC8vd054SUFwQkVIUnlJQTl5UlEwQkN5QUJMd0dpQVNFTElBRXZBYUFCSVFrQ1FBSkFBa0FDUUFKQUlBQW9BdEFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVME5BUXdDQ3dKQUlBQW9BdFFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVc05BaUFHS0FKd0lSY2dCaWdDd0FFaERBd0RDMEYvSVJjZ0VrVU5BaUFXRFFJTUF3c2dCaWdDYkNFWElBWW9BcXdCSVF3TUFRdEJmeUVYQ3lBUElCTkdJZ1lnRFNBVFJpSU5haUFUSUJkR2FrRUJSd1JBSUFvZ0J5QUtRUkIwUVJCMUlnb2dCMEVRZEVFUWRTSU5TaUlHR3lJSElBMGdDaUFOSUFvZ0RVZ2JJQVliSWdZZ0RFRVFkU0lLSUFZZ0Nrb2JJQWRCRUhSQkVIVWdDa2diSVFjZ0VTQUlJQkZCRUhSQkVIVWlDaUFJUVJCMFFSQjFJZzFLSWdZYklnaEIvLzhEY1NBTklBb2dEU0FLSUExSUd5QUdHeUlHSUF4QkVIUkJFSFVpQ2lBR0lBcEtHeUFJUVJCMFFSQjFJQXBJR3lFSURBRUxJQWdnRVNBTkd5RUlJQWNnQ2lBTkd5RUhJQTBOQUNBR0RRQWdERUVRZGlFSElBd2hDQXRCQVNFYklBZ2dDV29pREVFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0Myb2lDVUVRZEVFUWRVR0FFR3BCL3g5TERRSUxJQUlnRXhBVUlnSkZCRUJCQVNFYkRBSUxJQUFnQ1RzQndnRWdBQ0FNT3dIQUFTQUFJQUkyQW5RZ0FDQVROZ0prSUFBZ0FqWUNnQUVnQUNBQ05nSjhJQUFnQWpZQ2VDQUFJQk0yQW5BZ0FDQVROZ0pzSUFBZ0V6WUNhQ0FBSUFBb0FzQUJJZ1kyQXJ3QklBQWdCallDdUFFZ0FDQUdOZ0swQVNBQUlBWTJBckFCSUFBZ0JqWUNyQUVnQUNBR05nS29BU0FBSUFZMkFxUUJJQUFnQmpZQ29BRWdBQ0FHTmdLY0FTQUFJQVkyQXBnQklBQWdCallDbEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FRSUFJMkFnZ2dCU0FBUVlRQmFpQVFRUWhxSUJVZ0ZFRUFRUUJCRUVFUUVBNExRUUFoR3lBQUtBTEVBVUVCU3cwQUlBQW9BZ0FFUUNBRUlBTWdCU0FCUWNnQ2FoQllEQUVMSUFRZ0JSQWJDeUFRUVNCcUpBQWdHd3VUQ3dFUGZ5QUFLQUlBSWhFZ0FTQUJJQUFvQWdRaUNuQWlBV3NpQkVFSWRHb2dBVUVFZEdvaEJTQUtRUVIwSVFzZ0FDZ0NDQ0FLYkNJQVFRWjBJUVlnQVVFRGRDRUpJQUJCQ0hRaERDQUVRUVowSVJJZ0NrRUNkRUg4Ly8vL0EzRkJBblFoRUFOQUlBVWdEa0VDZENJQVFmQXBhaWdDQUNJQklBdHNhaUFBUWJBcGFpZ0NBQ0lBYWlFRUlBSWdBVUVFZEdvZ0FHb2hBQUpBSUFNZ0RrRUdkR29pQVNnQ0FDSUhRZi8vL3dkSEJFQWdBU2dDQkNFSUlBQXRBQUVoRFNBRUlBY2dBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BZ2doQnlBQUxRQUNJUThnQkNBSUlBMXFRYkF1YWkwQUFEb0FBU0FCS0FJTUlRZ2dBQzBBQXlFTklBUWdCeUFQYWtHd0xtb3RBQUE2QUFJZ0JDQUlJQTFxUWJBdWFpMEFBRG9BQXlBQktBSVVJUWNnQUMwQUVTRUlJQVFnQzJvaUJDQUJLQUlRSUFBdEFCQnFRYkF1YWkwQUFEb0FBQ0FCS0FJWUlRMGdBQzBBRWlFUElBUWdCeUFJYWtHd0xtb3RBQUE2QUFFZ0FTZ0NIQ0VISUFBdEFCTWhDQ0FFSUEwZ0QycEJzQzVxTFFBQU9nQUNJQVFnQnlBSWFrR3dMbW90QUFBNkFBTWdBU2dDSkNFSElBQXRBQ0VoQ0NBRUlBdHFJZ1FnQVNnQ0lDQUFMUUFnYWtHd0xtb3RBQUE2QUFBZ0FTZ0NLQ0VOSUFBdEFDSWhEeUFFSUFjZ0NHcEJzQzVxTFFBQU9nQUJJQUVvQWl3aEJ5QUFMUUFqSVFnZ0JDQU5JQTlxUWJBdWFpMEFBRG9BQWlBRUlBY2dDR3BCc0M1cUxRQUFPZ0FESUFFb0FqUWhCeUFBTFFBeElRZ2dCQ0FMYWlJRUlBRW9BakFnQUMwQU1HcEJzQzVxTFFBQU9nQUFJQUVvQWpnaERTQUFMUUF5SVE4Z0JDQUhJQWhxUWJBdWFpMEFBRG9BQVNBQktBSThJUUVnQUMwQU15RUFJQVFnRFNBUGFrR3dMbW90QUFBNkFBSWdCQ0FBSUFGcVFiQXVhaTBBQURvQUF3d0JDeUFBS0FJUUlRRWdCQ0FBS0FJQU5nSUFJQVFnRUdvaUJDQUJOZ0lBSUFBb0FqQWhBU0FFSUJCcUlnUWdBQ2dDSURZQ0FDQUVJQkJxSUFFMkFnQUxJQTVCQVdvaURrRVFSdzBBQ3lBTUlCRnFJQkpxSUFscUloQWdCbW9oRVNBS1FRTjBRZmovLy84SGNTSUxRUUoyUVFKMElRNUJFQ0VLQTBBZ0NrRUNkRUVNY1NJQVFmQXBhaWdDQUNJQklBdHNJQUJCc0NscUtBSUFJZ0JxSUJFZ0VDQUtRUk5MSWdVYmFpRUVJQUpCd0FKQmdBSWdCUnRxSUFGQkEzUWdBR3BxSVFBQ1FDQURJQXBCQm5ScUlnRW9BZ0FpQlVILy8vOEhSd1JBSUFFb0FnUWhCaUFBTFFBQklRa2dCQ0FGSUFBdEFBQnFRYkF1YWkwQUFEb0FBQ0FCS0FJSUlRVWdBQzBBQWlFTUlBUWdCaUFKYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VHSUFBdEFBTWhDU0FFSUFVZ0RHcEJzQzVxTFFBQU9nQUNJQVFnQmlBSmFrR3dMbW90QUFBNkFBTWdBU2dDRkNFRklBQXRBQWtoQmlBRUlBdHFJZ1FnQVNnQ0VDQUFMUUFJYWtHd0xtb3RBQUE2QUFBZ0FTZ0NHQ0VKSUFBdEFBb2hEQ0FFSUFVZ0JtcEJzQzVxTFFBQU9nQUJJQUVvQWh3aEJTQUFMUUFMSVFZZ0JDQUpJQXhxUWJBdWFpMEFBRG9BQWlBRUlBVWdCbXBCc0M1cUxRQUFPZ0FESUFFb0FpUWhCU0FBTFFBUklRWWdCQ0FMYWlJRUlBRW9BaUFnQUMwQUVHcEJzQzVxTFFBQU9nQUFJQUVvQWlnaENTQUFMUUFTSVF3Z0JDQUZJQVpxUWJBdWFpMEFBRG9BQVNBQktBSXNJUVVnQUMwQUV5RUdJQVFnQ1NBTWFrR3dMbW90QUFBNkFBSWdCQ0FGSUFacVFiQXVhaTBBQURvQUF5QUJLQUkwSVFVZ0FDMEFHU0VHSUFRZ0Myb2lCQ0FCS0FJd0lBQXRBQmhxUWJBdWFpMEFBRG9BQUNBQktBSTRJUWtnQUMwQUdpRU1JQVFnQlNBR2FrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQXRBQnNoQUNBRUlBa2dER3BCc0M1cUxRQUFPZ0FDSUFRZ0FDQUJha0d3TG1vdEFBQTZBQU1NQVFzZ0FDZ0NDQ0VCSUFRZ0FDZ0NBRFlDQUNBRUlBNXFJZ1FnQVRZQ0FDQUFLQUlZSVFFZ0JDQU9haUlFSUFBb0FoQTJBZ0FnQkNBT2FpQUJOZ0lBQ3lBS1FRRnFJZ3BCR0VjTkFBc0w1Z0VCQjM4Q1FDQUFLQUlBSWdWRkRRQWdBRUVCTmdJOElBQW9BamdOQUNBQUtBSWNJUVpCLy8vLy93Y2hBZ05BQTBBZ0JTQURRU2hzYWlJRUtBSVlCRUFnQkNBQklBUW9BaEFpQkNBQ1NDSUhHeUVCSUFRZ0FpQUhHeUVDQ3lBRFFRRnFJZ01nQmswTkFDQUJSUTBDSUFBb0Fnd2dBQ2dDRUNJRFFRUjBhaUlDSUFFb0FnQTJBZ0FnQWlBQktBSWtOZ0lNSUFJZ0FTZ0NIRFlDQkNBQ0lBRW9BaUEyQWdnZ0FDQURRUUZxTmdJUVFRQWhBeUFCUVFBMkFoZ2dBU2dDRkNFRVFRQWhBVUgvLy8vL0J5RUNJQVFOQUFzZ0FDQUFLQUlzUVg5cU5nSXNEQUFBQ3dBTEM5d0dBUXAvSUFCQ0FEY0NFQUpBQWtBQ1FDQURSUTBBQWtBQ1FDQUJJQUFvQWpBaUEwY0VRQ0FEUVFGcUlBQW9BaUFpQkhBaUNTQUJSZzBCSUFBb0FnQWdBQ2dDSEVFb2JHb29BZ0FoQ3dOQUFrQUNRQ0FBS0FJb0lnY0VRQ0FBS0FJQUlRaEJBQ0VEQTBBZ0NDQURRU2hzYWlJRktBSVVRWDlxUVFGTkJFQWdCU0FGS0FJTUlnVWdCRUVBSUFVZ0NVc2JhellDQ0FzZ0EwRUJhaUlESUFkSERRQUxJQWNnQUNnQ0dFa05Ba0YvSVFWQkFDRURRUUFoQkFOQUlBZ2dBMEVvYkdvaUJpZ0NGRUYvYWtFQlRRUkFJQVlvQWdnaUJpQUVJQVZCZjBZZ0JpQUVTSElpQmhzaEJDQURJQVVnQmhzaEJRc2dBMEVCYWlJRElBZEhEUUFMSUFWQkFFNE5BVUVCRHd0QkFDRUhJQUFvQWhnTkFVRUJEd3NnQ0NBRlFTaHNhaUlEUVFBMkFoUWdBQ0FIUVg5cUlnYzJBaWdnQXlnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FDZ0NMQ0lGSUFBb0Fod2lDRThFUUNBQUtBSTREUVlnQUNnQ0FDRU1BMEJCQUNFRVFmLy8vLzhISVFaQkFDRURBMEFnRENBRFFTaHNhaUlLS0FJWUJFQWdDaUFFSUFvb0FoQWlDaUFHU0NJTkd5RUVJQW9nQmlBTkd5RUdDeUFEUVFGcUlnTWdDRTBOQUFzQ1FDQUVSUTBBSUFBb0Fnd2dBQ2dDRUNJR1FRUjBhaUlESUFRb0FnQTJBZ0FnQXlBRUtBSWtOZ0lNSUFNZ0JDZ0NIRFlDQkNBRElBUW9BaUEyQWdnZ0FDQUdRUUZxTmdJUUlBUkJBRFlDR0NBRUtBSVVEUUFnQUNBRlFYOXFJZ1UyQWl3TElBVWdDRThOQUFzTElBQW9BZ0FpQkNBSVFTaHNhaUlESUFrMkFnd2dBMEtBZ0lDQUVEY0NFQ0FEUVFBMkFoZ2dBeUFKTmdJSUlBQWdCMEVCYWpZQ0tDQUFJQVZCQVdvMkFpd2dCQ0FJUVFGcUVDY2dDVUVCYWlBQUtBSWdJZ1J3SWdrZ0FVY05BQXNDUUNBQUtBSVFJZ2xGRFFBZ0FDZ0NBQ0lGSUFBb0Fod2lCRUVvYkdvaUNDZ0NBQ0VISUFBb0Fnd2hCa0VBSVFNRFFDQUhJQVlnQTBFRWRHb29BZ0JIQkVBZ0NTQURRUUZxSWdOSERRRU1BZ3NMSUFSRkRRQkJBQ0VEQTBBZ0N5QUZJQU5CS0d4cUlna29BZ0JIQkVBZ0JDQURRUUZxSWdOSERRRU1BZ3NMSUFrZ0J6WUNBQ0FJSUFzMkFnQUxJQUlOQlNBQUtBSXdJUU1NQWdzZ0FrRUFSdzhMSUFJTkF3c2dBU0FEUmcwQUlBQWdBU0FBS0FJZ0lnQnFRWDlxSUFCd05nSXdDMEVBRHdzRFFBd0FBQXNBQ3lBQUlBRTJBakJCQUF0MUFRTi9Ba0FnQUNnQ0FDSUJSUTBBSUFBb0FoeEJmMFlOQUFOQUlBRWdBa0VvYkNJRGFpZ0NCQkFFSUFBb0FnQWlBU0FEYWtFQU5nSUVJQUpCQVdvaUFpQUFLQUljUVFGcVNRMEFDd3NnQVJBRUlBQkJBRFlDQUNBQUtBSUVFQVFnQUVFQU5nSUVJQUFvQWd3UUJDQUFRUUEyQWd3TGd3RUJBMzhDUUNBQUtBSUFJZ1pGRFFBZ0FDZ0NIRUYvUmcwQUEwQWdCaUFIUVNoc0lnaHFLQUlFRUFRZ0FDZ0NBQ0lHSUFocVFRQTJBZ1FnQjBFQmFpSUhJQUFvQWh4QkFXcEpEUUFMQ3lBR0VBUWdBRUVBTmdJQUlBQW9BZ1FRQkNBQVFRQTJBZ1FnQUNnQ0RCQUVJQUJCQURZQ0RDQUFJQUVnQWlBRElBUWdCUkJkQzRBQ0FRSi9JQUFnQlRZQ09DQUFJQVEyQWlBZ0FFTC8vd00zQWlRZ0FFSUFOd0lzSUFBZ0EwRUJJQU5CQVVzYklnTTJBaGdnQUNBRElBSWdCUnNpQWpZQ0hDQUFRYWdGRUFvaUF6WUNBRUgvL3dNaEJBSkFJQU5GRFFCQkFDRUZJQU5CQUVHb0JSQUhJUVlnQWtGL1J3UkFJQUZCZ0FOc1FTOXlJUVZCQUNFREEwQWdCaUFEUVNoc2FpSUhJQVVRQ2lJQk5nSUVJQUZGRFFJZ0J5QUJRUUFnQVd0QkQzRnFOZ0lBSUFNZ0Fra2hBU0FEUVFGcUlRTWdBUTBBQ3lBQ1FRUjBRUkJxSVFVTElBQkJ4QUFRQ2lJQk5nSUVJQUFnQlJBS0lnSTJBZ3dnQWtVTkFDQUJSUTBBUVFBaEJDQUJRUUJCeEFBUUJ4b2dBRUlBTndJUUN5QUVDOU1CQVFkL1FRRWhBUUpBSUFBb0FqZ05BQ0FBS0FJY0lRVWdBQ2dDQUNFR1FmLy8vLzhISVFOQkFDRUJBMEFnQmlBQlFTaHNhaUlFS0FJWUJFQWdCQ0FDSUFRb0FoQWlCQ0FEU0NJSEd5RUNJQVFnQXlBSEd5RURDeUFCUVFGcUlnRWdCVTBOQUFzZ0FrVUVRRUVCRHdzZ0FDZ0NEQ0FBS0FJUUlnTkJCSFJxSWdFZ0FpZ0NBRFlDQUNBQklBSW9BaVEyQWd3Z0FTQUNLQUljTmdJRUlBRWdBaWdDSURZQ0NDQUFJQU5CQVdvMkFoQkJBQ0VCSUFKQkFEWUNHQ0FDS0FJVURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQkMvVUVBUWgvSUFBb0FpZ2lCQVJBSUFBb0FnQWhCd05BSUFjZ0JVRW9iR29pQmlnQ0ZFRi9ha0VCVFFSQUlBWWdCaWdDRENJSUlBSkxCSDhnQ0NBQUtBSWdhd1VnQ0FzMkFnZ0xJQVZCQVdvaUJTQUVSdzBBQ3d0QkFDRUVBa0FnQVNnQ0FFVU5BQ0FCS0FJRUlnVkJBa3NOQUVFQUlRY2dBaUVHQTBBQ1FBSkFBa0FnQlVFQ1J3UkFJQUVnQjBFTWJHb29BZ2doQkFKQUlBVkZCRUFnQmlBRWF5SUdRWDlLRFFFZ0FDZ0NJQ0FHYWlFR0RBRUxJQVFnQm1vaUJrRUFJQUFvQWlBaUJTQUdJQVZJRzJzaEJnc2dCaUVKSUFZZ0Frc0VRQ0FHSUFBb0FpQnJJUWtMSUFBb0FoZ2lDa1VFUUVFQkR3c2dBQ2dDQUNFSVFRQWhCUU5BSUFnZ0JVRW9iR29pQkNnQ0ZDSUxRWDlxUVFGTkJFQWdCQ2dDQ0NBSlJnMERDMEVCSVFRZ0JVRUJhaUlGSUFwSERRQUxEQVVMUVFFaEJDQUFLQUlZSWdsRkRRUWdBU0FIUVF4c2FpZ0NEQ0VLSUFBb0FnQWhDRUVBSVFVRFFDQUlJQVZCS0d4cUlnUW9BaFJCQTBZRVFDQUVLQUlJSUFwR0RRTUxRUUVoQkNBRlFRRnFJZ1VnQ1VjTkFBc01CQXNnQlVFQVNBUkFRUUVQQzBFQklRUWdDMEVCU3cwQkRBTUxRUUVoQkNBRlFRQklEUUlMSUFjZ0F5SUVTUVJBQTBBZ0FDZ0NCQ0lKSUFSQkFuUnFJQWtnQkVGL2FpSUVRUUowYWlnQ0FEWUNBQ0FFSUFkTERRQUxJQUFvQWdBaENBc2dBQ2dDQkNBSFFRSjBhaUFJSUFWQktHd2lDV28yQWdBZ0IwRUJhaUlISVFRZ0J5SUZJQU5OQkVBRFFDQUFLQUlFSWdnZ0JVRUNkR29vQWdBaUNpQUFLQUlBSUFscVJ3UkFJQWdnQkVFQ2RHb2dDallDQUNBRVFRRnFJUVFMSUFWQkFXb2lCU0FEVFEwQUN3dEJBQ0VFSUFFZ0IwRU1iR29vQWdRaUJVRURTUTBBQ3dzZ0JBc0hBRUhFR2hBS0M3Y0JBUUovSXdCQkVHc2lCaVFBSUFaQkFEWUNEQ0FBSUFFZ0FpQUdRUXhxRUNvaUIwRjljVVVFUUFOQUlBQWdBU0FHS0FJTUlnZHFJZ0VnQWlBSGF5SUNJQVpCREdvUUtpSUhRWDF4UlEwQUN3c2dCMEVCUmdSQUlBUWdBQ2dDRUNJQktBSTBRUVIwTmdJQUlBVWdBU2dDT0VFRWREWUNBQ0FESUFCQnhBbHFJZ0FvQWhRaUFTQUFLQUlRU1FSL0lBQWdBVUVCYWpZQ0ZDQUFLQUlNSUFGQkJIUnFCVUVBQ3lnQ0FEWUNBQXNnQmtFUWFpUUFJQWNMU1FFQmZ5QUFRUUJCeEJvUUJ5SUNRYlFLYWtFQk5nSUFJQUpDZ0lLQWdJQUVOd0lFSUFCQndCQVFDaUlDTmdLd0dpQUNSUVJBUVFFUEN5QUJCRUFnQUVFQk5nTEFDUXRCQUF1NkJBRUpmd0pBQWtBZ0FVRUVTUTBBSUFBdEFBQU5BQ0FBTFFBQkRRQWdBQzBBQWlJSFFRRkxEUUJCQXlFRUlBQkJBMm9oQlVFQ0lRaEJmU0VNQWtBRFFDQUZJUVlDZnlBSVFRRnFJQWRCL3dGeElnVkZEUUFhUVFBaEJ5QUZRUUZHUVFBZ0NFRUJTeHNOQWtFQUN5RUlJQVJCZjNNaERDQUdRUUZxSVFVZ0JpMEFBQ0VISUFSQkFXb2lCQ0FCUncwQUN5QURJQUUyQWdCQkFROExJQVFoQ2tFQUlRaEJBQ0VGQTBCQkFTQUlJQWNnQmkwQUFDSUxSV29pQ1VFQ1Joc2dDQ0FMUVFOR0d5RUlJQXBCQVdvaENnSkFJQXRCQVVjTkFDQUpRUUpKRFFBZ0FpQUtJQXhxSUFsQmYzTnFJZ0UyQWd4QkFDQUpRWDFxSWdZZ0JpQUpTeHNoQnd3REMwRUFJQWtnQ3hzaEIwRUJJQVVnQ1VFQ1N4c2dCU0FMR3lFRklBWkJBV29oQmlBQklBcEhEUUFMSUFJZ0FTQU1haUFIYXlJQk5nSU1EQUVMSUFJZ0FUWUNERUVCSVFoQkFDRUhDeUFDUVFBMkFoQWdBa0VBTmdJSUlBSWdBQ0FFYWlJQU5nSUVJQUlnQURZQ0FDQURJQVFnQjJvZ0FXbzJBZ0JCQVNFREFrQWdCUTBBUVFBaEF5QUlSUTBBSUFJQ2Z5QUNLQUlNSWdGRkJFQWdBQ0VFUVFBTUFRc2dBQ0VFUVFBaEJnTkFJQUZCZjJvaEFTQUVMUUFBSVFVQ2Z3SkFJQVpCQWtjTkFDQUZRUU5HQkVBZ0FVVUVRRUVCRHdzZ0JDMEFBVUVEU3dSQVFRRVBDMEVBSVFZZ0JFRUJhZ3dDQ3lBRlFRTlBEUUJCQVE4TElBQWdCVG9BQUVFQUlBWkJBV29nQlJzaEJpQUFRUUZxSVFBZ0JFRUJhZ3NoQkNBQkRRQUxJQUlvQWd3TElBQWdCR3RxTmdJTUN5QURDd3Z0TWhrQVFZWUlDOG9GWmlBbUVBWUlaUmhsR0VNUVF4QkRFRU1RUXhCREVFTVFReEFpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNBQUFBQUFBQUFBQWFrQktNQ29vQ2lCcE9HazRTU2hKS0NrZ0tTQUpHQWtZYURCb01HZ3dhREJJSUVnZ1NDQklJQ2dZS0Jnb0dDZ1lDQkFJRUFnUUNCQm5LR2NvWnlobktHY29aeWhuS0djb1J4aEhHRWNZUnhoSEdFY1lSeGhIR0c1Z1RsZ3VVQTVRYmxoT1VDNUlEa2dOUUExQVRVaE5TQzFBTFVBTk9BMDRiVkJ0VUUxQVRVQXRPQzA0RFRBTk1HdElhMGhyU0d0SWEwaHJTR3RJYTBoTE9FczRTemhMT0VzNFN6aExPRXM0S3pBck1Dc3dLekFyTUNzd0t6QXJNQXNvQ3lnTEtBc29DeWdMS0Fzb0N5Z0FBQUFBTDJndmFCQ0FVSUF3Z0JCNGNJQlFlREI0RUhCd2VGQndNSEFRYUc5d2IzQlBhRTlvTDJBdllBOWdEMkJ2YUc5b1QyQlBZQzlZTDFnUFdBOVlBQUFBQUFBQUFBQm1PRVlnSmlBR0VHWXdSaGdtR0FZSVpTaGxLQ1VRSlJCa0lHUWdaQ0JrSUdRWVpCaGtHR1FZUXhCREVFTVFReEJERUVNUVF4QkRFQUFBQUFBQUFBQUFhVWhKT0NrNENUQUlLQWdvU0RCSU1DZ3dLREFJSUFnZ1owQm5RR2RBWjBCSEtFY29SeWhIS0Njb0p5Z25LQ2NvQnhnSEdBY1lCeGdBQUFBQWJYaHRlRzZBVG9BdWdBNkFMbmdPZUU1NExuQk5jRTF3RFhBTmNHMXdiWEJOYUUxb0xXZ3RhQTFvRFdodGFHMW9UV0JOWUMxZ0xXQU5ZQTFnREZnTVdBeFlERmhNV0V4WVRGaE1XQ3hZTEZnc1dDeFlERkFNVUF4UURGQnNZR3hnYkdCc1lFeFFURkJNVUV4UUxGQXNVQ3hRTEZBTVNBeElERWdNU0d0WWExaHJXR3RZYTFocldHdFlhMWhMU0V0SVMwaExTRXRJUzBoTFNFdElLMGdyU0N0SUswZ3JTQ3RJSzBnclNBdEFDMEFMUUF0QUMwQUxRQXRBQzBCclVHdFFhMUJyVUd0UWExQnJVR3RRUzBCTFFFdEFTMEJMUUV0QVMwQkxRQ3RBSzBBclFDdEFLMEFyUUN0QUswQUxPQXM0Q3pnTE9BczRDemdMT0FzNEFFSGdEUXV1Q1FZWVJqZ21PQVlRWmtoR01DWXdCZ2dsS0NVb1JTaEZLQ1VnSlNCRklFVWdKUmdsR0dWQVpVQkZHRVVZSlJBbEVHUTRaRGhrT0dRNFpEQmtNR1F3WkRCa0tHUW9aQ2hrS0dRZ1pDQmtJR1FnWkJoa0dHUVlaQmhFRUVRUVJCQkVFQ1FJSkFna0NDUUlCQUFFQUFRQUJBQUFBQXFBYW9CS2dDcUFDbmhxZUVwNEtuZ0tjR3B3U25BcWNBcG9LV2dwYUFsZ0NXQkphRWxvS1dBcFlBbFlDVmhwYUdsb1NXQkpZQ2xZS1ZnSlVBbFFhR0JvWUdoZ2FHQklXRWhZU0ZoSVdDaFFLRkFvVUNoUUNFZ0lTQWhJQ0Vob1dHaFlhRmhvV0VoUVNGQklVRWhRS0Vnb1NDaElLRWdJUUFoQUNFQUlRQWM0QnpnSE9BYzRCemdIT0FjNEJ6Z0hNQWN3QnpBSE1BY3dCekFITUFjd1IwaEhTRWRJUjBoSFNFZElSMGhIU0Fjb0J5Z0hLQWNvQnlnSEtBY29CeWhuVUdkUVoxQm5VR2RRWjFCblVHZFFSMEJIUUVkQVIwQkhRRWRBUjBCSFFDZEFKMEFuUUNkQUowQW5RQ2RBSjBBSElBY2dCeUFISUFjZ0J5QUhJQWNnQmdnbUNBQUFCZ0FHRUNZUVJoQUFBQVlZSmhoR0dHWVlCaUFtSUVZZ1ppQUdLQ1lvUmlobUtBWXdKakJHTUdZd0JqZ21PRVk0WmpnR1FDWkFSa0JtUUFaSUpraEdTR1pJQmxBbVVFWlFabEFHV0NaWVJsaG1XQVpnSm1CR1lHWmdCbWdtYUVab1ptZ0djQ1p3Um5CbWNBWjRKbmhHZUdaNEJvQW1nRWFBWm9BQUFFTVFBZ0FDQUNFSUlRZ2hDQ0VJWnlCbklFZ2dLQ0JIR0VjWUp4Z25HQVlnQmlBR0lBWWdCaGdHR0FZWUJoZ0dFQVlRQmhBR0VHWVlaaGhtR0dZWUpoQW1FQ1lRSmhBR0NBWUlCZ2dHQ0FBQVpWVkVSRFEwSXlNakl4TVRFeE1CQVFFQkFRRUJBUUVCQVFFQkFRRUJBUG5wMmNqSXVMaW5wNmVubDVlWGw0YUdob2FHaG9hR2RuWjJkbloyZG5ibTFzYTJwYVdWbFlTRWhJUjBkSFIwWkdSa1pGUlVWRlJEUTBORFEwTkRRek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEV3TURBd01EQXdNRDFyYkZ4YVdsbFpXRWhJU0VWRlJVVkVSRVJFUUVCQVFFYzNOemMzTnpjM05qWTJOalkyTmpZek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEU4VzFwUVdVbEhSME5EUWtKSU9EZzROalkyTmpVMU5UVTBORFEwTVRFeE1UdFpXa3BJU0VKQ1FVRkFRRWMzTnpjMk5qWTJOVFUxTlRRME5EUXpNek16T21CaFVWaElTRWhKT1RrNU9UazVPVGMzTnpjM056YzNOalkyTmpZMk5qWTFOVFUxTlRVMU5UUTBORFEwTkRRME16TXpNek16TXpNeU1qSXlNakl5TWpsZ1lWRlhSMGRIU0RnNE9EZzRPRGcyTmpZMk5qWTJOalEwTkRRME5EUTBNek16TXpNek16TXlNakl5TWpJeU1qVWxKU1VsSlNVbEpTVWxKU1VsSlNVb1lHSlNVVUZCUVVjM056YzNOemMzTmpZMk5qWTJOall6TXpNek16TXpNelVsSlNVbEpTVWxKU1VsSlNVbEpTVWtKQ1FrSkNRa0pDUWtKQ1FrSkNRa0lXQm5WMUpDUWtKRk5UVTFOVFUxTlRZbUppWW1KaVltSmlZbUppWW1KaVlrSkNRa0pDUWtKQ1FrSkNRa0pDUWtJeU1qSXlNakl5TWpJeU1qSXlNakl5RlFWa1pDTWpJeU5TVWxKU1VsSlNVa0pDUWtKQ1FrSkNNakl5TWpJeU1qSUVGQ01qTXpOVFUwRkJRVUZCUVVGQkJCUkRReUlpSWlJeE1URXhNVEV4TVFNVE1qSWhJU0VoQWhJaElSRUJJaElCQVRJaUVnSkRNeUlpRWhJQ0FsTkRNeU1TRWdJQ0V5TkRNMk5UQWdJQVFhQVhDeVFFQkFVR0J3Z0pDZ3dORHhFVUZoa2NJQ1FvTFRJNFAwZFFXbVZ4ZjVDaXRzdmkvLzhBUWVBWEN5UUNBZ0lEQXdNREJBUUVCZ1lIQndnSUNRa0tDZ3NMREF3TkRRNE9EdzhRRUJFUkVoSUFRY1VZQzRRQkFRQUFBUUFBQVFBQUFRQUJBUUFCQVFFQkFRRUJBUUVCQVFFQkFRRUJBZ0VCQWdFQkFnRUJBZ0VDQXdFQ0F3SUNBd0lDQkFJREJBSURCQU1EQlFNRUJnTUVCZ1FGQndRRkNBUUdDUVVIQ2dZSUN3WUlEUWNLRGdnTEVBa01FZ29ORkFzUEZ3MFJHUUFBQUFBQUFBQUFCUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVIVUdRc1ZCUUFBQUFBQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUVIMEdRc1ZCUUFBQUFRQUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVHVUdnc0ZCUUFBQUFRQVFhUWFDNlVCQndBQUFBUUFBQUFDQUFBQUJBQUFBQUVBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUFRQUFBQVFBQUFBREFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFCQUFBQUJBQUFBQVFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBRUFBQUFFQUFBQUJBQUFBQVFBQUFBREFBQUFCQUFBQUFZQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FFSFVHd3NWRFFBQUFBQUFBQUFQQUFBQS93QUFBQUFBQUFEL0FFSDBHd3NWRFFBQUFBUUFBQUFJQUFBQS93QUFBQUFBQUFEL0FFR1VIQXUxQ3cwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBSkFBQUFCQUFBQUFzQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQWtBQUFBRUFBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUNRQUFBQVFBQUFBTUFBQUFCQUFBQUFzQUFBQUVBQUFBRGdBQUFBRUFBQUFLQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBb0FBQUFFQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ2dBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUtBQUFBQVFBQUFBc0FBQUFFQUFBQUFBQUFBQVFBQUFBQkFBQUFBUUFBQUE0QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEZ0FBQUFRQUFBQUVBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQUVBQUFBT0FBQUFBUUFBQUE4QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFRQUFBQTRBQUFBQkFBQUFEd0FBQUFRQUFBQUVBQUFBQkFBQUFBVUFBQUFFQUFBQUFnQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFDQUFBQUJBQUFBQWdBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUVBQUFBQWdBQUFBUUFBQUFEQUFBQUJBQUFBQWdBQUFBRUFBQUFDUUFBQUFRQUFBQUdBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFZQUFBQUVBQUFBREFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFCZ0FBQUFRQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUFCQUFBQUFjQUFBQUVBQUFBREFBQUFBUUFBQUFOQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFCQUFBQURnQUFBUDhBQUFBRUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBRUFBQUFMQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFCQUFBQURnQUFBQVFBQUFBQkFBQUEvd0FBQUFRQUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFJQUFBQUtBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFBUUFBQUE4QUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEd0FBQUFJQUFBQUtBQUFBQkFBQUFBVUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQVlBQUFEL0FBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFBRUFBQUFDUUFBQVA4QUFBQU1BQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQWdBQUFQOEFBQUFJQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQUhBQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFjQUFBRC9BQUFBQWdBQUFBUUFBQUFOQUFBQS93QUFBQWdBQUFBREFBQUFEd0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQU1BQUFBUEFBQUFBQUFBQUFVQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUF3QUFBQThBQUFBQkFBQUFDZ0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFEQUFBQUR3QUFBQUVBQUFBS0FBQUFBQUFBQUFVQUFBQUVBQUFBQUFBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFFQUFBQUFRQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ3dBQUFBRUFBQUFPQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QkIxQ2NMRlFjQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QkI5Q2NMRlFjQUFBQUVBQUFBQWdBQUFQOEFBQUFBQUFBQS93QkJsQ2dMMlFFSEFBQUFCQUFBQUFJQUFBQUFBQUFBRFFBQUFBUUFBQUFJQUFBQUJBQUFBQU1BQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBSkFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBTUFBQUFFQUFBQUJnQUFBQVFBQUFBSkFBQUFCQUFBQUF3QUFBQUFBQUFBQkFBQUFBQUFBQUFFQUFBQUNBQUFBQXdBQUFBSUFBQUFEQUFBQUFBQUFBQUVBQUFBQUFBQUFBUUFBQUFJQUFBQURBQUFBQWdBQUFBTUFFSDRLUXNGQkFBQUFBUUFRWWdxQ3lVRUFBQUFCQUFBQUFnQUFBQUlBQUFBREFBQUFBd0FBQUFJQUFBQUNBQUFBQXdBQUFBTUFFR3hMZ3ZJQmdFQ0F3UUZCZ2NJQ1FvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEhoOGdJU0lqSkNVbUp5Z3BLaXNzTFM0dk1ERXlNelExTmpjNE9UbzdQRDArUDBCQlFrTkVSVVpIU0VsS1MweE5UazlRVVZKVFZGVldWMWhaV2x0Y1hWNWZZR0ZpWTJSbFptZG9hV3ByYkcxdWIzQnhjbk4wZFhaM2VIbDZlM3g5Zm4rQWdZS0RoSVdHaDRpSmlvdU1qWTZQa0pHU2s1U1ZscGVZbVpxYm5KMmVuNkNob3FPa3BhYW5xS21xcTZ5dHJxK3dzYkt6dExXMnQ3aTV1cnU4dmI2L3dNSEN3OFRGeHNmSXljckx6TTNPejlEUjB0UFUxZGJYMk5uYTI5emQzdC9nNGVMajVPWG01K2pwNnV2czdlN3Y4UEh5OC9UMTl2ZjQrZnI3L1AzKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUVBQUFBRUFBQUFCUUFBQUFJQUFBQURBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQXdBQUFBTkFBQUFDZ0FBQUFzQUFBQU9BQUFBRHdBQUFBQUFBQUFCQUFBQUFRQkJoRFVMSVFFQUFBQUJBQUFBQVFBQUFBRUFBQUFDQUFBQUFnQUFBQUVBQUFBQ0FBQUFBZ0JCdERVTEJRVUFBQUFFQUVIRU5RdkpCZ2NBQUFBRUFBQUFBZ0FBQUFRQUFBQUJBQUFBQkFBQUFBUUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUFBQUFBQUEwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQUFRQUFBQU1BQUFBQkFBQUFBc0FBQUFFQUFBQURnQUFBQUFBQUFBUkFBQUFCQUFBQUJBQUFBQUFBQUFBRXdBQUFBUUFBQUFTQUFBQUFBQUFBQlVBQUFBRUFBQUFGQUFBQUFBQUFBQVhBQUFBQkFBQUFCWUFBQUFCQUFBQUNnQUFBQUVBQUFBTEFBQUFCQUFBQUFBQUFBQUVBQUFBQVFBQUFBRUFBQUFPQUFBQUFRQUFBQThBQUFBRUFBQUFCQUFBQUFRQUFBQUZBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBQVFBQUFBSUFBQUFCQUFBQUFrQUFBQUVBQUFBQmdBQUFBUUFBQUFIQUFBQUJBQUFBQXdBQUFBRUFBQUFEUUFBQUFFQUFBQVNBQUFBQVFBQUFCTUFBQUFFQUFBQUVBQUFBQVFBQUFBUkFBQUFBUUFBQUJZQUFBQUJBQUFBRndBQUFBUUFBQUFVQUFBQUJBQUFBQlVBQUFBQkFBQUFDd0FBQUFFQUFBQU9BQUFBQkFBQUFBRUFBQUQvQUFBQUJBQUFBQUVBQUFBUEFBQUFBZ0FBQUFvQUFBQUVBQUFBQlFBQUFQOEFBQUFBQUFBQUJBQUFBQU1BQUFBRUFBQUFCZ0FBQUFRQUFBQUpBQUFBL3dBQUFBd0FBQUFFQUFBQUJ3QUFBUDhBQUFBQ0FBQUFCQUFBQUEwQUFBRC9BQUFBQ0FBQUFBRUFBQUFUQUFBQUFnQUFBQklBQUFBRUFBQUFFUUFBQVA4QUFBQVFBQUFBQVFBQUFCY0FBQUFDQUFBQUZnQUFBQVFBQUFBVkFBQUEvd0FBQUJRQUFBQURBQUFBRHdBQUFBRUFBQUFLQUFBQUFBQUFBQVVBQUFBRUFBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBQUVBQUFBQWdBQUFBQUFBQUFOQUFBQUJBQUFBQWdBQUFBRUFBQUFBd0FBQUFRQUFBQUdBQUFBQkFBQUFBa0FBQUFFQUFBQURBQUFBQU1BQUFBVEFBQUFBUUFBQUJJQUFBQUFBQUFBRVFBQUFBUUFBQUFRQUFBQUF3QUFBQmNBQUFBQkFBQUFGZ0FBQUFBQUFBQVZBQUFBQkFBQUFCUUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQURBQUFBQXdBQUFBQUFBQUFCQUFBQUFnQUFBQU1BQUFBRUFBQUFCUUFBQUFZQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QVFaWThDeTRCQVFFQkFRRUNBZ0lDQWdJREF3TURBd01FQkFRRUJBUUZCUVVGQlFVR0JnWUdCZ1lIQndjSEJ3Y0lDQWdJQUVIUVBBdEZDZ0FBQUEwQUFBQVFBQUFBQ3dBQUFBNEFBQUFTQUFBQURRQUFBQkFBQUFBVUFBQUFEZ0FBQUJJQUFBQVhBQUFBRUFBQUFCUUFBQUFaQUFBQUVnQUFBQmNBQUFBZEFFR2hQUXN6QVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURBRUhrUFF2TUFnRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhRQUFBQjRBQUFBZkFBQUFJQUFBQUNBQUFBQWhBQUFBSWdBQUFDSUFBQUFqQUFBQUl3QUFBQ1FBQUFBa0FBQUFKUUFBQUNVQUFBQWxBQUFBSmdBQUFDWUFBQUFtQUFBQUp3QUFBQ2NBQUFBbkFBQUFKd0FBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFMeDhQQUJjYkhSNEhDdzBPSnlzdExoQURCUW9NRXhVYUhDTWxLaXdCQWdRSUVSSVVHQVlKRmhrZ0lTSWtLQ1lwQUJBQkFnUUlJQU1GQ2d3UEx3Y0xEUTRHQ1I4akpTb3NJU0lrS0NjckxTNFJFaFFZRXhVYUhCY2JIUjRXR1NZcEFMQXRCRzVoYldVQjZ3TmtBQVp0WlcxamNIa0JCbkpsYzJsNlpRSUNaaklEQW1ZekJBRm1CUUptTlFZQ1pqWUhBbVkzQ0FKbU9Ba0NaamtLQVdVTEEyWXhNUXdEWmpFeURRTm1NVE1PQTJZeE5BOERaakUxRUFObU1UWVJBMll4TnhJRFpqRTRFd05tTVRrVUEyWXlNQlVEWmpJeEZnTm1NaklYQTJZeU14Z0RaakkwR1FObU1qVWFBMll5TmhzRFpqSTNIQU5tTWpnZEEyWXlPUjREWmpNd0h3Tm1NekVnQTJZek1pRURaak16SWdObU16UWpBMll6TlNRRFpqTTJKUU5tTXpjbUEyWXpPQ2NEWmpNNUtBTm1OREFwQTJZME1Tb0RaalF5S3dObU5ETXNBMlkwTkMwRFpqUTFMZ05tTkRZdkEyWTBOekFEWmpRNE1RTm1ORGt5QTJZMU1ETURaalV4TkFObU5USTFBMlkxTXpZRFpqVTBOd05tTlRVNEEyWTFOamtEWmpVM09nTm1OVGc3QTJZMU9Ud0Raall3UFFObU5qRStBMlkyTWo4RFpqWXpRQU5tTmpSQkEyWTJOVUlEWmpZMlF3Tm1OamRFQTJZMk9FVURaalk1UmdObU56QkhBMlkzTVVnRFpqY3lTUU5tTnpOS0EyWTNORXNEWmpjMVRBTm1OelpOQTJZM04wNERaamM0VHdObU56bFFBMlk0TUZFRFpqZ3hVZ05tT0RKVEEyWTRNMVFEWmpnMFZRTm1PRFZXQTJZNE5sY0RaamczV0FObU9EaFpBMlk0T1ZvRFpqa3dXd05tT1RGY0EyWTVNbDBEWmprelhnTm1PVFJmQTJZNU5XQUJhV0VCWjJJQlpHTUVaakV3TVFLNktXUUFBd0FBQVFBQ0FBRUJBQUFDQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1EQ1FBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FRSUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNGQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1HR0FBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFV0Eyd3lNaGNEYkRJekJ3WUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVSUJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlFrUUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlFvTUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVMQXdBQ2NEQUJBbkF4QWdKc01nd1JBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRFFZQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05BVUNiRFVPRUFBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVQQlFBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEVBc0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQVJBZ0FDY0RBQkFuQXhFZzhBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkJNREFBSndNQUVDYkRFQ0Ftd3lGQU1BQW5Bd0FRSndNUUlDYkRJVkJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlJZbUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2NEUUZBbkExQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlJBRGJERTJFUU5zTVRjU0Eyd3hPQk1EYkRFNUZBTnNNakFWQTJ3eU1SWURiREl5RndOc01qTVlBMnd5TkJrRGJESTFHZ05zTWpZYkEyd3lOeHdEYkRJNEhRTnNNamtlQTJ3ek1COERiRE14SUFOc016SWhBMnd6TXlJRGJETTBJd05zTXpVa0Eyd3pOaVVEYkRNM0Z3TUFBbkF3QVFKd01RSUNjRElZRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFWkVnQUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0doWUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhHd1lBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVWNCd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlkQlFBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEhnVUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQjhCQUFKd01DQUVBQUp3TUFFQ2NERUNBbXd5QXdKc015RWJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVGQU5zTWpBVkEyd3lNUllEYkRJeUZ3TnNNak1ZQTJ3eU5Ca0RiREkxR2dOc01qWWlGUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0l4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE55UVVBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVKUThBQW5Bd0FRSndNUUlDY0RJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNZREFBSndNQUVDYkRFQ0Ftd3lKdzhBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNnQ0FBSndNQUVDYkRFcEVRQUNjREFCQW5BeEFnSndNZ01DY0RNRUFuQTBCUUp3TlFZQ2NEWUhBbkEzQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaW9IQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmlzUEFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUXNCQUFDY0RBQkFuQXhBZ0pzTWdNQ2JETXRCUUFDY0RBQkFuQXhBZ0p3TWdNQ2JETUVBbXcwTGdNQUFuQXdBUUpzTVFJQ2JESXZBd0FDY0RBQkFtd3hBZ0pzTWpBSkFBSndNQUVDY0RFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NE1SWUFBbkF3QVFKd01RSUNiRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhNZ29BQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NU13UUFBbkF3QVFKc01RSUNiRElEQW13ek5BUUFBbkF3QVFKc01RSUNiRElEQW13ek5ROEFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hORFlGQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRM0JRQUNjREFCQW5BeEFnSnNNZ01DYkRNRUFtdzBPQWNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyT1FjQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNiRFVHQW13Mk9nY0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJPd2NBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyUEFVQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05EMEZBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFErRHdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMFB4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE4wQUhBQUp3TUFFQ2NERUNBbXd5QXdKc013UUNiRFFGQW13MUJnSnNOa0VRQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVUlKQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0UXdnQUFuQXdBUUp3TVFJQ2JESURBbXd6QkFKc05BVUNiRFVHQW13MkJ3SnNOMFFRQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVVVUQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0p3TmdjQ2NEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9FWVJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFtdzRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyUnhNQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW5BMkJ3SndOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRTQmNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NjRGdKQW5BNUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkE4RGJERTFFQU5zTVRZUkEyd3hOeElEYkRFNEV3TnNNVGtVQTJ3eU1CVURiREl4RmdOc01qSkpRd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0ZRTnNNakVXQTJ3eU1oY0RiREl6R0FOc01qUVpBMnd5TlJvRGJESTJHd05zTWpjY0Eyd3lPQjBEYkRJNUhnTnNNekFmQTJ3ek1TQURiRE15SVFOc016TWlBMnd6TkNNRGJETTFKQU5zTXpZbEEyd3pOeVlEYkRNNEp3TnNNemtvQTJ3ME1Da0RiRFF4S2dOc05ESXJBMncwTXl3RGJEUTBMUU5zTkRVdUEydzBOaThEYkRRM01BTnNORGd4QTJ3ME9USURiRFV3TXdOc05URTBBMncxTWpVRGJEVXpOZ05zTlRRM0EydzFOVGdEYkRVMk9RTnNOVGM2QTJ3MU9Ec0RiRFU1UEFOc05qQTlBMncyTVQ0RGJEWXlQd05zTmpOQUEydzJORUVEYkRZMVFnTnNOalpLRXdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UaExGQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPVXdIQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmswTkFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1rNExBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFFGQW13MUJnSnNOZ2NDYkRjSUFtdzRDUUpzT1FvRGJERXdUd1FBQW5Bd0FRSndNUUlDYkRJREFtd3pVQTRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTlJEQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeFVoTUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0VXlBQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW13MkJ3SnNOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRFd05zTVRrVUEyd3lNQlVEYkRJeEZnTnNNaklYQTJ3eU14Z0RiREkwR1FOc01qVWFBMnd5TmhzRGJESTNIQU5zTWpnZEEyd3lPUjREYkRNd0h3TnNNekZVRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpGVkN3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1GWUhBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSnNObGNxQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9CTURiREU1RkFOc01qQVZBMnd5TVJZRGJESXlGd05zTWpNWUEyd3lOQmtEYkRJMUdnTnNNalliQTJ3eU54d0RiREk0SFFOc01qa2VBMnd6TUI4RGJETXhJQU5zTXpJaEEyd3pNeUlEYkRNMEl3TnNNelVrQTJ3ek5pVURiRE0zSmdOc016Z25BMnd6T1NnRGJEUXdLUU5zTkRGWUV3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0VnTnNNVGhaQ0FBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNXZzRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTmJCQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETmNDUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNiRFlIQW13M0NBSnNPRjBJQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEZGVDQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M1h3d0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVdBQVlRZ0FBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FtdzJCd0pzTjJJREFBSndNQUVDY0RFQ0Ftd3lZdzBBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5IixVPWE7Ri5oMjY0TW9kdWxlPW5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoVS5kZWNvZGUoTCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBZPUYscT1BPT4oSSxnLEIpPT57QS5IRUFQVTguY29weVdpdGhpbihJLGcsZytCKX07ZnVuY3Rpb24gSyhBLEkpe2NvbnN0IGc9QSVJO3JldHVybiBnPjA/QStJLWc6QX1jb25zdCBIPUE9Pkk9Pntjb25zdCBnPUEuSEVBUFU4Lmxlbmd0aCxCPTY1NTM2LFE9MjE0NzQ4MzY0ODtpZihJPlEpcmV0dXJuITE7Y29uc3QgQz0xNjc3NzIxNjtmb3IobGV0IEQ9MTtEPD00O0QqPTIpe2xldCBFPWcqKDErLjIvRCk7RT1NYXRoLm1pbihFLEkrMTAwNjYzMjk2KTtjb25zdCB3PU1hdGgubWluKFEsSyhNYXRoLm1heChDLEksRSksQikpO3RyeXtjb25zdHttZW1vcnk6b309QTtvLmdyb3cody1vLmJ1ZmZlci5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpO2NvbnN0e2J1ZmZlcjpOfT1vO3JldHVybiBBLkhFQVA4PW5ldyBJbnQ4QXJyYXkoTiksQS5IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoTiksQS5IRUFQMzI9bmV3IEludDMyQXJyYXkoTiksITB9Y2F0Y2h7fX1yZXR1cm4hMX0sUj02NTUzNixjPTUyNTE3OTIsZD04NzUyLHQ9MTY3NzcyMTY7Y2xhc3MgaXtjb25zdHJ1Y3Rvcigpe3RoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLHRoaXMucGljPW5ldyBVaW50OEFycmF5KDApO2NvbnN0IEk9bmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7aW5pdGlhbDp0L1IsbWF4aW11bToyMTQ3NDgzNjQ4L1J9KSxnPXttZW1vcnk6SSxIRUFQODpuZXcgSW50OEFycmF5KEkuYnVmZmVyKSxIRUFQVTg6bmV3IFVpbnQ4QXJyYXkoSS5idWZmZXIpLEhFQVAzMjpuZXcgSW50MzJBcnJheShJLmJ1ZmZlcil9O2cuSEVBUDMyW2Q+PjJdPWM7Y29uc3R7ZXhwb3J0czpCfT1uZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UoWS5oMjY0TW9kdWxlLHtoMjY0OnttZW1vcnk6SSxtZW1jcHk6cShnKSxyZXNpemU6SChnKX19KTt0aGlzLm1lbW9yeT1nLHRoaXMuYXNtPUIsdGhpcy5wU3RvcmFnZT1CLmgyNjRhbGxvYygpLHRoaXMucFdpZHRoPUIubWFsbG9jKDQpLHRoaXMucEhlaWdodD1CLm1hbGxvYyg0KSx0aGlzLnBQaWN0dXJlPUIubWFsbG9jKDQpLHRoaXMuZGVjQnVmZmVyPUIubWFsbG9jKDEwMjQqMTAyNCksQi5pbml0KHRoaXMucFN0b3JhZ2UsMCl9ZGVjb2RlKEkpe2NvbnN0e21lbW9yeTpnLGFzbTpCfT10aGlzO2cuSEVBUFU4LnNldChJLHRoaXMuZGVjQnVmZmVyKTtjb25zdCBRPUIuZGVjb2RlKHRoaXMucFN0b3JhZ2UsdGhpcy5kZWNCdWZmZXIsSS5ieXRlTGVuZ3RoLHRoaXMucFBpY3R1cmUsdGhpcy5wV2lkdGgsdGhpcy5wSGVpZ2h0KTtpZihRPT09aS5QSUNfUkRZKXtjb25zdCBDPXRoaXMud2lkdGg9Zy5IRUFQMzJbdGhpcy5wV2lkdGg+Pj4yXSxEPXRoaXMuaGVpZ2h0PWcuSEVBUDMyW3RoaXMucEhlaWdodD4+PjJdLEU9Zy5IRUFQMzJbdGhpcy5wUGljdHVyZT4+Ml0sdz1DKkQqMy8yO3RoaXMucGljPWcuSEVBUFU4LnN1YmFycmF5KEUsRSt3KX1yZXR1cm4gUX19dmFyIGI9eS5IMjY0RGVjb2Rlcj1pO2kuUkRZPTAsaS5QSUNfUkRZPTEsaS5IRFJTX1JEWT0yLGkuRVJST1I9MyxpLlBBUkFNX1NFVF9FUlJPUj00LGkuTUVNQUxMT0NfRVJST1I9NTtmdW5jdGlvbiB4KEEpe3JldHVybiBVaW50OEFycmF5LmZyb20oYXRvYihBKSxJPT5JLmNoYXJDb2RlQXQoMCkpfWNvbnN0IHM9c2VsZixrPW5ldyBiLG09Si5zZWNvbmQvNTthZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixBPT57Y29uc3R7dGltZXN0YW1wOkksZmxhZ3M6ZyxpbmRleDpCfT1BLmRhdGEsUT1EYXRlLm5vdygpLUk7aWYoUT5tJiZnIT09Myl7TShgRnJhbWUgaXMgJHtRfW1zIGxhdGUsIGRyb3BwaW5nYCxCKTtyZXR1cm59Y29uc3QgQz14KEEuZGF0YS5lbmNvZGVkRnJhbWUpLEQ9ay5kZWNvZGUoQyk7dHJ5e2lmKEQhPT0xKXtNKGBmYWlsZWQgdG8gZGVjb2RlIGZyYW1lLCBzdGF0dXM6ICR7bihEKX1gLEIsQyk7cmV0dXJufWNvbnN0e3BpYzpFLGhlaWdodDp3LHdpZHRoOm99PWs7aWYoRS5sZW5ndGg9PT0wfHx3PT09MHx8bz09PTApe00oImRlY29kZWQgZnJhbWUgaGFzIG5vIGRhdGEiLEIsQyk7cmV0dXJufWNvbnN0IE49bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KEUpO3MucG9zdE1lc3NhZ2Uoe3RpbWVzdGFtcDpBLmRhdGEudGltZXN0YW1wLHl1djpOLGhlaWdodDp3LHdpZHRoOm8saW5kZXg6Qn0pfWNhdGNoKEUpe00oRSxCKX19KTtmdW5jdGlvbiBNKEEsSSxnKXtzLnBvc3RNZXNzYWdlKHtlcnJvcjpgaDI2NCBkZWNvZGVyIHdvcmtlcjogJHtBfWAsaW5kZXg6SX0pfWZ1bmN0aW9uIG4oQSl7c3dpdGNoKEEpe2Nhc2UgMDpyZXR1cm4iUkRZIjtjYXNlIDE6cmV0dXJuIlBJQ19SRFkiO2Nhc2UgMjpyZXR1cm4iSERSU19SRFkiO2Nhc2UgMzpyZXR1cm4iRVJST1IiO2Nhc2UgNDpyZXR1cm4iUEFSQU1fU0VUX0VSUk9SIjtjYXNlIDU6cmV0dXJuIk1FTUFMTE9DX0VSUk9SIjtkZWZhdWx0OnJldHVybiBBLnRvU3RyaW5nKCl9fX0pfSkoKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9dWktc2RrLXJlYWx0aW1lLXBsYXllci1jb3JlLXdvcmtlci51bWQtNjhhNmUxNmEuanMubWFwCg==",blob$2=typeof window<"u"&&window.Blob&&new Blob([atob(encodedJs$2)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$2(){let s;try{if(s=blob$2&&(window.URL||window.webkitURL).createObjectURL(blob$2),!s)throw"";return new Worker(s)}catch{return new Worker("data:application/javascript;base64,"+encodedJs$2)}finally{s&&(window.URL||window.webkitURL).revokeObjectURL(s)}}const millisecond$3=1,second$3=1e3,minute$3=60*second$3,hour$3=60*minute$3,day$3=24*hour$3,week$3=7*day$3,month$3=30*day$3,year$3=365*day$3,duration$3={millisecond:millisecond$3,second:second$3,minute:minute$3,hour:hour$3,day:day$3,week:week$3,month:month$3,year:year$3};function filterDataByTime(s,o,et){const tt=o.getTime(),nt=et.getTime();return s.map(rt=>({...rt,points:rt.points.filter(([it])=>it>=tt&&itrt.length>0)}function filterDataByType(s,o){return s.filter(et=>et.type===o)}class StoreCache{constructor({capacity:o,timeout:et}={}){he(this,"entries",new Map),he(this,"metadata",new Map),he(this,"capacity"),he(this,"timeout"),this.capacity=o||1e4,this.timeout=et||duration$3.minute}get(o,et){const tt=this.keyToCacheKey(o),nt=this.entries.get(tt),rt=this.metadata.get(tt);return(nt===void 0||rt&&rt?.expiration.getTime()this.capacity&&this.deleteOldestEntry()}clear(){this.entries.clear(),[...this.metadata.values()].forEach(o=>o.generating=!1)}clearKey(o){this.metadata.delete(o),this.entries.delete(o)}keyToCacheKey(o){return JSON.stringify(o)}deleteOldestEntry(){if(this.metadata.size<1)return;const[o]=[...this.metadata.entries()].reduce(([et,tt],[nt,rt])=>rt.expiration.getTime(){et.then(rt=>{const it=this.metadata.get(tt);!(it!=null&&it.generating)||this.set(o,rt)})},0)}}function roundToNearestSecond(s){return new Date(Math.round(s.getTime()/1e3)*1e3)}class QueryStore{constructor(){he(this,"queryStoreCache",new StoreCache({capacity:1e4,timeout:20*duration$3.second})),he(this,"liveQueryStoreCache",new StoreCache({capacity:1e4,timeout:1*duration$3.second}))}moduleQuery(o,et,tt,nt,rt,it=!1){const ot={...o,names:[et],types:[tt],start:nt.toISOString(),end:rt.toISOString(),latestOnly:it},st=this.query(ot);return st===void 0||st==="too much data"?st:filterDataByType(st,tt)}query(o){const et=new Date(o.end)>addSeconds(new Date,-20),tt=startOfMinute(new Date(o.start)).toISOString(),nt=o.latestOnly?addSeconds(roundToNearestSecond(new Date(o.end)),5).toISOString():addMinutes(roundToNearestMinutes(new Date(o.end)),1).toISOString();let rt;return et?rt=this.liveQueryCache({...o,start:tt,end:nt}):rt=this.queryCache({...o,start:tt,end:nt}),!rt||rt==="too much data"||o.latestOnly?rt:filterDataByTime(rt,new Date(tt),new Date(nt))}queryCache(o){return this.queryStoreCache.get(o,async()=>{try{return await Fleet.queryTelemetry(o)}catch(et){throw et}})}liveQueryCache(o){return this.liveQueryStoreCache.get(o,async()=>{try{return await Fleet.queryTelemetry(o)}catch(et){throw et}})}}const debug=new URLSearchParams(window.location.search).get("debug")==="true";class BasicUniverseDataConnector{constructor(){he(this,"subscriberSources",new Map),he(this,"subscriberLoaders",new Map),he(this,"subscriberDistributorsLoaders",new Map),he(this,"mapRealtimeConnections",new Map),he(this,"lastQueriedHistoricTime"),he(this,"time"),he(this,"timeChangeListeners",[]),he(this,"queryStore",new QueryStore),this.time="live";const o=async()=>{if(Array.from(this.subscriberLoaders.keys()).length>0){const et=[],tt=this.generateTelemetryFilter(),nt=this.queryStore.query(tt);if(!nt||nt==="too much data")return;nt.forEach(ot=>{et.push(ot.deviceId)});const rt=Array.from(new Set(et)),it=[];rt.forEach(ot=>{const st=this.subscriberLoaders.get(ot);st&&st.forEach(at=>{it.push(at(nt))})}),(await Promise.all(it)).forEach(ot=>{if(ot.data){const st=this.subscriberDistributorsLoaders.get(ot.deviceId);if(st){const at=st.get(ot.sourceId);at&&at.forEach(lt=>{lt(ot.data)})}}})}setTimeout(()=>o(),0)};setTimeout(()=>o(),0)}setTime(o){o!=="live"&&(this.time=o),this.timeChangeListeners.forEach(et=>et(o))}getTime(){return this.time}getTimeMs(){return this.time==="live"?new Date().getTime():this.time.getTime()}generateTelemetryFilter(){const o=Array.from(this.subscriberSources.keys()),et=[];return o.forEach(tt=>{const nt=this.subscriberSources.get(tt);nt&&Array.from(nt?.values()).forEach(rt=>{rt.sourceType==="telemetry"&&et.push(rt.streamName)})}),{deviceIds:o,names:et,start:subDays(new Date,20).toISOString(),end:new Date().toISOString(),latestOnly:!0}}async sendRtcMessage(o,et){await this.createRealtimeConnection(o);const tt=this.mapRealtimeConnections.get(o);tt&&tt!=="loading"&&tt&&tt.sendRealtimeMessage(et,{channelLabel:"stream.reliable"})}async createRealtimeConnection(o,et=signaling_pb.SessionType.TELEOP){const tt=this.mapRealtimeConnections.get(o);if(tt===void 0){this.mapRealtimeConnections.set(o,"loading");const nt=o.startsWith("http");console.log("Creating {} realtime connection",nt?"peer":"cloud");let rt;nt?rt=new PeerDevice(o):rt=await Fleet.getDevice(o),await rt.startRealtimeConnection(et),debug&&rt.addRealtimeListener((it,ot)=>{console.log("received message from peer",it,ot)}),this.mapRealtimeConnections.set(o,rt)}else tt==="loading"&&await new Promise(nt=>{const rt=setInterval(()=>{const it=this.mapRealtimeConnections.get(o);it&&it!=="loading"&&(clearInterval(rt),nt())},100)})}addRemovableTelemetrySubscription(o,et,tt,nt){let rt=this.subscriberLoaders.get(o);rt||(rt=new Map,this.subscriberLoaders.set(o,rt)),rt.get(et.id)||rt.set(et.id,tt);let it=this.subscriberDistributorsLoaders.get(o);it||(it=new Map,this.subscriberDistributorsLoaders.set(o,it));const ot=it.get(et.id);ot?ot.push(nt):it.set(et.id,[nt]);let st=this.subscriberSources.get(o);return st||(st=new Map,this.subscriberSources.set(o,st)),st.set(et.id,et),()=>{const at=this.subscriberLoaders.get(o);at&&at.delete(et.id);const lt=this.subscriberDistributorsLoaders.get(o);if(lt){const dt=lt.get(et.id);if(dt){const ht=dt.indexOf(nt);ht>-1&&dt.splice(ht,1)}}const ut=this.subscriberSources.get(o);ut&&ut.delete(et.id)}}createH264Drawer(){return new H264BytestreamCanvasDrawer(()=>new WorkerWrapper$2,()=>{},()=>{})}async sendCommand(o,et,tt){const nt=this.mapRealtimeConnections.get(o);if(nt==="loading"||nt===void 0)throw new Error("Device is not ready or doesnt exist");await nt.sendCommand(et,tt)}async sendRealtimePose(o,et,tt){const nt=distExports.createRtcStreamMessage({entityId:o,streamName:et,streamType:"pose"},{pose:tt},"vision");await this.sendRtcMessage(o,nt)}async sendRealtimeBoolean(o,et,tt){const nt=distExports.createRtcStreamMessage({entityId:o,streamName:et,streamType:"boolean"},{boolean:tt});await this.sendRtcMessage(o,nt)}async sendRealtimeBitset(o,et,tt){const nt=distExports.createRtcStreamMessage({entityId:o,streamName:et,streamType:"bitset"},{bitset:{bits:tt.keys.map((rt,it)=>({key:rt,value:tt.values[it]}))}});await this.sendRtcMessage(o,nt)}async getUrdfs(o){const et=await(await Fleet.getDevice(o)).getConfiguration();return!et.urdfFiles||et.urdfFiles.length===0?[]:[await Fleet.getFileUrl(et.urdfFiles[0])]}async getTelemetryStreams(o){throw new Error("Not implemented")}async getTeleopRosStreams(o){throw new Error("Not implemented")}async getHardwareStreams(o){throw new Error("Not implemented")}addInteraction(o){throw new Error("Method not implemented.")}removeInteraction(o){throw new Error("Method not implemented.")}getInteractions(){throw new Error("Method not implemented.")}addInteractionsChangedListener(o){throw new Error("Method not implemented.")}addInteractionListener(o){throw new Error("Method not implemented.")}getRealtimeButtons(o){throw new Error("Method not implemented.")}async getLatestTransformTrees(o){throw new Error("Not implemented")}async getLatestLocations(){return[{streamName:"spotLocation",location:{latitude:45.4661989,longitude:-122.5782375}}]}async getDeviceContexts(){return[]}async getDeviceContextName(o){throw new Error("Not implemented")}async getTelemetryStreamType(o,et){throw new Error("Not implemented")}async getStatistics(){return{rtcDevices:[]}}subscribeDataSourceStateChange(o,et,tt){return()=>{}}async fetchImage(o){const et=new Image;return et.src=o,et.setAttribute("crossOrigin",""),await new Promise(tt=>{et.onload=tt}),et}}class LiveUniverseData extends BasicUniverseDataConnector{constructor(){super()}subscribeToPath(o,et,tt){throw new Error("Method not implemented.")}subscribeToImage(o,et,tt){throw new Error("Method not implemented.")}subcribeToVideo(o,et,tt){throw new Error("Method not implemented.")}subscribeToBitset(o,et,tt){if(et.sourceType==="realtime"){const nt=(rt,it)=>{if(it.payload.bitset){const ot=it.payload.bitset,st={keys:[],values:[]};ot.bits.forEach(at=>{st.keys.push(at.key),st.values.push(at.value)}),tt(st)}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}throw new Error("Telemetry bitset not implemented")}subscribeToOdometry(o,et,tt,nt){if(et.sourceType==="realtime"){const rt=(it,ot)=>{if(ot.payload.odometry){const st=ot.payload.odometry;tt({worldToLocal:st.worldToLocal,pose:{translation:{x:st.pose.translation.x,y:st.pose.translation.y,z:st.pose.translation.z},rotation:{x:st.pose.rotation.x,y:st.pose.rotation.y,z:st.pose.rotation.z,w:st.pose.rotation.w}},covariance:[]})}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,rt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,rt)}}if(et.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(o,et,async rt=>{let it,ot;for(let st=0;st{it.payload.pose&&tt(it.payload.pose)};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}throw new Error("unexpected")}subscribeToNumeric(o,et,tt){if(et.sourceType==="realtime"){const nt=async(rt,it)=>{it.payload.numeric&&tt([[Date.now(),it.payload.numeric.value]])};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}return()=>{}}subscribeToNumericSet(o,et,tt){if(et.sourceType==="telemetry"){let nt;const rt=setInterval(async()=>{nt||(nt=await Fleet.getDevice(o));const it=new Date,ot=new Date(it.getTime()-15*1e3),st=await nt.getTelemetry(et.streamName,ot,it);if(st.length>0){const at=st[0].points;tt(at)}},1e3);return()=>{clearInterval(rt)}}return()=>{}}async subscribeToRealtimeMessages(o,et,tt){await this.createRealtimeConnection(o,signaling_pb.SessionType.OBSERVE);const nt=this.mapRealtimeConnections.get(o);nt&&nt!=="loading"&&(nt.startListeningToRealtimeDataStream({name:et}),nt.addRealtimeListener((rt,it)=>{it.header.stream.streamName===et&&tt(rt,it)}))}async unsubscribeToRealtimeMessages(o,et,tt){const nt=this.mapRealtimeConnections.get(o);nt&&nt!=="loading"&&(nt.stopListeningToRealtimeDataStream({name:et}),nt.removeRealtimeListener(tt))}subscribeToJson(o,et,tt){if(et.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt,it;for(let ot=0;otot.json())),{deviceId:o,sourceId:et.id,data:it}},tt);if(et.sourceType==="realtime"){const nt=async(rt,it)=>{it.payload.jsonString&&tt(JSON.parse(it.payload.jsonString.value))};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}return()=>{}}subscribeToText(o,et,tt){return et.sourceType==="telemetry"?this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt,it;for(let ot=0;otot.text())),{deviceId:o,sourceId:et.id,data:it}},tt):()=>{}}subscribeToPointCloud(o,et,tt){const nt=new Worker(new URL("/assets/PcdLoaderWorker-eaac0b31.js",self.location),{name:"liveuniverseDataPCD"});if(et.sourceType==="telemetry"&&et.streamType!=="localization")return this.addRemovableTelemetrySubscription(o,et,async rt=>{let it,ot;for(let st=0;st{nt.postMessage({url:st}),nt.onmessage=lt=>{lt.data.url===st&&at(lt.data.pcd)}})}return{deviceId:o,sourceId:et.id,data:{worldToLocal:it?.worldToLocal,pcd:ot}}},tt);if(et.sourceType==="telemetry"&&et.streamType==="localization")return this.addRemovableTelemetrySubscription(o,et,async rt=>{let it,ot;for(let st=0;st{nt.postMessage({url:st}),nt.onmessage=lt=>{lt.data.url===st&&at(lt.data.pcd)}})}return{deviceId:o,sourceId:et.id,data:{worldToLocal:it&&it!=null&&it.pointClouds&&it!=null&&it.pointClouds[0]?it.pointClouds[0].worldToLocal:void 0,pcd:ot}}},tt);if(et.sourceType==="realtime"){const rt=async(it,ot)=>{var st;if(ot.payload.pointCloud){const at=Math.random(),lt=await new Promise(ut=>{nt.postMessage({id:at,pointCloud:defined$2(ot.payload.pointCloud).data}),nt.onmessage=dt=>{dt.data.id===at&&ut(dt.data.pcd)}});tt({worldToLocal:(st=ot.payload.pointCloud)==null?void 0:st.world_to_local,pcd:lt})}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,rt),()=>{nt.terminate(),this.unsubscribeToRealtimeMessages(o,et.rosTopicName,rt)}}return()=>{}}subscribeToGeometry(o,et,tt){throw new Error("type error in realtime sdk")}subscribeToJointState(o,et,tt){if(et.sourceType==="realtime"){const nt=(rt,it)=>{it.payload.jointState&&tt(it.payload.jointState)};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}return()=>{}}subscribeToGridMap(o,et,tt){if(et.sourceType==="realtime"){const nt=(rt,it)=>{if(it.payload.jsonString){const ot=JSON.parse(it.payload.jsonString.value);tt({width:ot.info.width,height:ot.info.height,worldToLocal:{translation:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0,w:1}},resolution:ot.info.resolution,origin:{translation:ot.info.origin.position,rotation:ot.info.origin.orientation},data:ot.data,alpha:ot.data.map(()=>255)})}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}else if(et.sourceType==="telemetry"&&et.streamType==="localization")return this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt,it;for(let ot=0;ot{st.payload.h264VideoFrame&&(nt.receiveEncodedFrame(st.payload.h264VideoFrame),nt&&nt.canvas&&nt.canvas.width>0&&nt.canvas.height>0&&tt(nt.canvas))};return this.subscribeToRealtimeMessages(o,et.rosTopicName,it),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,it)}}if(et.sourceType==="hardware"){const it=(ot,st)=>{st.payload.h264VideoFrame&&(nt.receiveEncodedFrame(st.payload.h264VideoFrame),nt&&nt.canvas&&nt.canvas.width>0&&nt.canvas.height>0&&tt(nt.canvas))};return this.subscribeToRealtimeMessages(o,et.rtcStreamName,it),()=>{this.unsubscribeToRealtimeMessages(o,et.rtcStreamName,it)}}return()=>{nt.stop()}}subscribeToTransformTree(o,et,tt){if(et.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt;for(let it=0;it{if(ot==="too much data"||ot===void 0){tt(NoData);return}const st=this.getNearestPoint(ot),at=st[1],lt=st[0];if(lt!==rt){if(rt=lt,at.url){const ut=await fetch(at.url).then(dt=>dt.json());ut.path&<>=rt&&tt(ut.path);return}else if(at.path&<>=rt){tt(at.path);return}}});return()=>{nt.terminate(),it()}}onTimeChange(o){o==="live"?this.liveIntervalHandle=setInterval(()=>{this.findDataForTime(new Date)},300):(this.liveIntervalHandle&&clearInterval(this.liveIntervalHandle),this.findDataForTime(o))}findDataForTime(o){this.timeFinders.forEach(et=>{et(o)})}addFinder(o,et,tt,nt,rt){const it=ot=>{const st=rt?addYears(ot,-1):addSeconds(ot,-60),at=rt?addMilliseconds(ot,1):addSeconds(ot,5),lt=this.queryStore.moduleQuery({deviceIds:[et]},tt,nt,st,at,rt);if(lt===void 0){o(void 0);return}if(lt==="too much data"){o("too much data");return}if(lt.length===0){o(void 0);return}const ut=lt.reduce((dt,ht)=>dt.concat(ht.points),[]);if(!ut||ut.length===0){o(void 0);return}if(rt){const dt=ut[ut.length-1][0],ht=ut.filter(ct=>ct[0]>addSeconds(dt,-15).getTime());o(ht);return}o(ut)};return this.timeFinders.push(it),it}getNearestPoint(o,et=this.time){const tt=et==="live"?addMilliseconds(new Date,1):this.time;let nt=o[0][0],rt=o[0][1];return o.forEach(it=>{const ot=it[0],st=it[1];Math.abs(ot-tt.getTime())et!==o)}subscribeTelemetry(o,et,tt,nt){if(et.sourceType!=="telemetry")throw new Error("Invalid source type");const rt=this.addFinder(nt,o,et.streamName,tt,et.latestDataPoint||!1);return()=>{this.removeFinder(rt)}}subscribeToPointCloud(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const nt=new WorkerWrapper,rt=new WorkerWrapper$1;let it=()=>{},ot=()=>{};return et.streamType==="point cloud"?it=this.subscribeTelemetry(o,et,"point cloud",async st=>{if(st==="too much data"||st===void 0){tt(NoData);return}const at=this.getNearestPoint(st)[1];if(typeof at=="string")tt(JSON.parse(at));else{const{url:lt}=at;nt.postMessage({url:lt}),nt.onmessage=ut=>{ut.data.url===lt&&tt({worldToLocal:at.worldToLocal,pcd:ut.data.pcd})}}}):et.streamType==="localization"&&(ot=this.subscribeTelemetry(o,et,"localization",async st=>{if(st==="too much data"||st===void 0){tt(NoData);return}let at=this.getNearestPoint(st)[1];at.url&&(rt.postMessage({url:at.url}),rt.onmessage=lt=>{if(at=lt.data.response,at.pointClouds){const{url:ut,worldToLocal:dt}=at.pointClouds[0];nt.postMessage({url:ut}),nt.onmessage=ht=>{ht.data.url===ut&&tt({worldToLocal:dt,pcd:ht.data.pcd})}}})})),()=>{nt.terminate(),rt.terminate(),it(),ot()}}subscribeToOdometry(o,et,tt,nt=0){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const rt=new WorkerWrapper$1,it=this.subscribeTelemetry(o,et,"localization",async ot=>{if(ot==="too much data"||ot===void 0){tt(NoData);return}const st=this.getNearestPoint(ot);let at;if(st[1].url)try{at=(await(await fetch(st[1].url)).json()).odometry}catch(lt){throw console.error("Failed to fetch odometry data:",lt),lt}else at=st[1].odometry;if(nt){const lt=ot.filter(ut=>ut[0]<=st[0]&&ut[0]>=st[0]-nt*1e3).map(async ut=>{var dt,ht;if(ut[1].url)try{const ct=await(await fetch(ut[1].url)).json();return[ut[0],(dt=ct.odometry)==null?void 0:dt.pose]}catch(ct){throw console.error("Failed to fetch trail odometry data:",ct),ct}return[ut[0],(ht=ut[1].odometry)==null?void 0:ht.pose]});try{const ut=await Promise.all(lt);tt({worldToLocal:at.worldToLocal,pose:at.pose,trail:ut,covariance:[]});return}catch(ut){throw console.error("Failed to process trail data:",ut),ut}}tt({worldToLocal:at.worldToLocal,pose:at.pose,covariance:[]})});return()=>{rt.terminate(),it()}}subscribeToPose(o,et,tt){throw new Error("Method not implemented for telemetry universe connector.")}subscribeToGeometry(o,et,tt){if(et.sourceType==="telemetry"){const nt=new WorkerWrapper$1,rt=this.subscribeTelemetry(o,et,"json",async it=>{if(it==="too much data"||it===void 0){tt(NoData);return}let ot=this.getNearestPoint(it)[1];ot.startsWith("http")?(nt.postMessage({url:ot}),nt.onmessage=st=>{ot=JSON.stringify(st.data.response),tt(JSON.parse(ot))}):tt(JSON.parse(ot))});return()=>{nt.terminate(),rt()}}else throw new Error("Realtime geometry note supported")}subscribeToJointState(o,et,tt){return this.subscribeToJson(o,et,tt)}subscribeToGridMap(o,et,tt){const nt={};if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const rt=new WorkerWrapper$1,it=this.subscribeTelemetry(o,et,"localization",async ot=>{if(ot==="too much data"||ot===void 0){tt(NoData);return}const st=this.getNearestPoint(ot)[1];if(st.url){if(nt[st.url]){tt(nt[st.url]);return}rt.postMessage({url:st.url}),rt.onmessage=async at=>{const lt=at.data.response.map;if(lt){const ut={width:lt.width,height:lt.height,worldToLocal:lt.worldToLocal,resolution:lt.resolution,origin:lt.origin,url:lt.url};nt[st.url]=JSON.parse(JSON.stringify(ut)),tt(ut)}}}});return()=>{rt.terminate(),it()}}subscribeToVideo(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"video",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}const rt=this.getNearestPoint(nt)[1],{url:it}=rt,ot=this.videoCache.get(it,async()=>new Promise(st=>{const at=document.createElement("video");at.src=it,at.onload=()=>{}}));if(ot){const st=document.createElement("canvas");st.width=ot.videoWidth,st.height=ot.videoHeight;const at=st.getContext("2d");at&&at.drawImage(ot,0,0),tt(st)}})}subscribeToTransformTree(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"transform tree",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(this.getNearestPoint(nt)[1])})}subscribeToLocation(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const nt=this.subscribeToJson(o,et,tt),rt=this.subscribeTelemetry(o,et,"location",async it=>{if(it==="too much data"||it===void 0){tt(NoData);return}const ot=this.getNearestPoint(it)[1];tt(ot)});return()=>{nt(),rt()}}subscribeToJson(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"json",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}let rt=this.getNearestPoint(nt)[1];rt.startsWith("http")&&(rt=await(await fetch(rt)).text()),tt(JSON.parse(rt))})}subscribeToText(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"text",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(this.getNearestPoint(nt)[1])})}subscribeToNumeric(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"numeric",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(nt)})}subscribeToNumericSet(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"numeric set",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(nt)})}subscribeToImage(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"image",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}const rt=this.getNearestPoint(nt)[1].url,it=new Image;it.src=rt,it.onload=()=>{const ot=document.createElement("canvas");ot.width=it.width,ot.height=it.height;const st=ot.getContext("2d");st&&(st.drawImage(it,0,0),tt(ot))}})}}distExports.RtcClient;distExports.RtcClientV1;distExports.RtcSignalingClient;distExports.createRtcStreamMessage;const SidebarContent=styled.div` margin-top: 40px; width: 100%; `,ToggleButton=styled.div` @@ -5071,7 +5071,7 @@ overflow: hidden; } `,enableEditMode=window.location.search.includes("editFeature=true"),ZoomControls=s=>{const{zoomIn:o,zoomOut:et,recenter:tt,stopZoom:nt,toggleEditMode:rt}=s;return jsxs$2(Controls$1,{children:[jsxs$2(ControlGroup$1,{children:[jsx$2("button",{type:"button",onMouseDown:o,onMouseUp:nt,children:jsx$2(Icon,{name:"plus"})}),jsx$2("button",{type:"button",onMouseDown:et,onMouseUp:nt,children:jsx$2(Icon,{name:"minus"})})]}),jsx$2(ControlGroup$1,{onClick:tt,children:jsx$2("button",{type:"button",children:jsx$2(Icon,{name:"recenter"})})}),enableEditMode&&jsx$2(ControlGroup$1,{onClick:rt,children:jsx$2("button",{type:"button",children:jsx$2(Icon,{name:"edit",sx:s.isEditing?{stroke:FormantColors.primary}:{}})})})]})},ControlsContext=React$1.createContext({});function useControlsContext(){return React$1.useContext(ControlsContext)}function useControlsContextStates(){const[s,o]=React$1.useState([]),[et,tt]=React$1.useState({isWaypointPanelVisible:!1,isWaypointEditing:!1,selectedWaypoint:null,commandName:void 0,hasPath:!0,hasWaypointsPath:!0,hasPointCloud:!1,pointSize:1.4}),nt=React$1.useRef({waypoints:[]}),rt=React$1.useCallback(it=>tt(ot=>({...ot,...it})),[]);return{waypoints:s,setWaypoints:o,state:et,updateState:rt,store:nt.current}}const isOrthographic=s=>s&&s.isOrthographicCamera,compareBox3=(s,o)=>{const tt=Math.abs(s.min.x-o.min.x),nt=Math.abs(s.min.y-o.min.y),rt=Math.abs(s.max.x-s.min.x-(o.max.x-o.min.x)),it=Math.abs(s.max.y-s.min.y-(o.max.y-o.min.y));return tt<=.1&&nt<=.1&&rt<=.1&&it<=.1},TAU=Math.PI*2,getAbsoluteAngle=(s,o)=>{const et=s-o;return MathUtils.euclideanModulo(et+Math.PI,TAU)-Math.PI},context$1=reactExports.createContext(null);function Bounds({children:s,damping:o=6,fit:et,clip:tt,observe:nt,margin:rt=1.2,eps:it=.01,onFit:ot,debug:st=!1}){const at=reactExports.useRef(null),{camera:lt,invalidate:ut,size:dt,scene:ht,get:ct}=useThree(),pt=reactExports.useRef(null),ft=reactExports.useRef(ot);ft.current=ot;const[gt]=reactExports.useState(()=>({animating:!1,focus:new Vector3,camera:new Vector3,zoom:1})),[yt]=reactExports.useState(()=>({focus:new Vector3,camera:new Vector3,zoom:1})),[Ut]=reactExports.useState(()=>new Box3),Ft=reactExports.useRef(st?Ut:null);useHelper(Ft,Box3Helper,"cyan");const[mt,vt]=reactExports.useState(10),At=reactExports.useMemo(()=>{function Tt(){const Bt=Ut.getSize(new Vector3),xt=Ut.getCenter(new Vector3),Ct=Math.max(Bt.x,Bt.y,Bt.z),kt=isOrthographic(lt)?Ct*4:Ct*rt/(2*Math.tan(Math.PI*lt.fov/180)),Nt=isOrthographic(lt)?Ct*4:kt/lt.aspect,Ot=Math.max(kt,Nt);return{box:Ut,size:Bt,center:xt,distance:Ot}}return{getSize:Tt,refresh(){const Bt=Ut.clone();if(at.current&&at.current.children.length>0){const xt=at.current.children[0],Ct=xt.children.find(Ot=>Ot.userData.name?.startsWith("Maps"))||new Group,kt=xt.children.find(Ot=>Ot.userData.name?.startsWith("Device"))||new Group;Ct.updateWorldMatrix(!0,!0),kt.updateWorldMatrix(!0,!0);const Nt=new Box3;[...Ct.children,...kt.children].forEach(Ot=>{if(Ot.name!=="axis"&&Ot.visible&&!Ot.children.map(Dt=>Dt.name).includes("waypoints-plane")){const Dt=new Box3;Dt.setFromObject(Ot),Nt.union(Dt)}}),Nt.expandByVector(new Vector3(rt,rt,0)),Ut.copy(Nt)}return Ut.isEmpty()&&Ut.setFromCenterAndSize(new Vector3,new Vector3(1,1,0)),compareBox3(Ut,Bt)||At.clip().fit(),this},clip(){const Bt=Tt(),xt=ct().controls;return vt(Bt.distance),xt&&(xt.maxDistance=Bt.distance*2,xt.minDistance=.5),lt.far=Math.max(Bt.distance*100,100),lt.updateProjectionMatrix(),ut(),this},to({position:Bt,target:xt}){gt.camera.copy(lt.position);const{center:Ct}=Tt();return yt.camera.set(...Bt),xt?yt.focus.set(...xt):yt.focus.copy(Ct),o?gt.animating=!0:lt.position.set(...Bt),this},fit(Bt){const xt=ct().controls;if(xt){const Ct=new Box3;Ct.copy(Ut),Bt&&!Bt.isEmpty()&&Ct.copy(Bt);const kt=Ct.getCenter(new Vector3),{distance:Nt}=Tt();xt.moveTo?.(kt.x,kt.y,Nt,!0),xt.setTarget?.(kt.x,kt.y,0,!0),xt.rotate?.(getAbsoluteAngle(0,xt.azimuthAngle||0),-getAbsoluteAngle(-Math.PI,xt.polarAngle||0),!0),xt.fitToBox?.(Ct,!0,{cover:!1,paddingTop:.3,paddingBottom:.3,paddingLeft:.3,paddingRight:.3}).then(()=>{Bt||xt.saveState?.()})}return this}}},[Ut,lt,rt,o,ut]),Lt=()=>{const Tt=new Box3,Bt=new Box3;Tt.copy(Ut),At.refresh(),Bt.copy(Ut),compareBox3(Tt,Bt)||At.clip().fit()},Rt=(Tt,Bt=!1)=>{const Ct=at.current.getObjectByName(Tt),kt=new Box3;Ct&&(kt.expandByObject(Ct),Bt&&(pt.current=Ct?.id,kt.setFromCenterAndSize(kt.getCenter(new Vector3),new Vector3(10,10,0))),At.fit(kt))};useFrame(({controls:Tt})=>{if(pt.current){const xt=at.current.getObjectById(pt.current);if(xt&&Tt){const Ct=Tt,kt=xt.rotation.z;Ct.azimuthAngle=3*Math.PI/2+kt,Ct.moveTo?.(xt.position.x,xt.position.y,0,!0)}}});const St=reactExports.useRef(0);return reactExports.useLayoutEffect(()=>{(nt||St.current++===0)&&(ut(),setTimeout(()=>{Lt()},25))},[dt,tt,et,nt,lt,mt]),reactExports.useEffect(()=>(ht.addEventListener("updateBounds",()=>{At.refresh()}),ht.addEventListener("recenter",()=>{At.fit()}),ht.addEventListener("lookAtTargetId",Tt=>{Rt(Tt.message,Tt.isDevice)}),ht.addEventListener("stopTracking",()=>{pt.current&&(pt.current=null)}),()=>{ht.removeEventListener("updateBounds",At.refresh()),ht.removeEventListener("recenter",()=>{At.fit()}),ht.removeEventListener("stopTracking",()=>{pt.current&&(pt.current=null)}),ht.removeEventListener("lookAtTargetId",Tt=>{Rt(Tt.message)})}),[]),reactExports.useEffect(()=>{const Tt=setTimeout(()=>{Lt()},5e3);return()=>clearTimeout(Tt)},[At]),jsx$2(Fragment$2,{children:jsx$2("group",{ref:at,children:jsx$2(context$1.Provider,{value:At,children:s})})})}function useBounds(){return reactExports.useContext(context$1)}var es={},computeDestinationPoint$1={},getLatitude$1={},constants={};Object.defineProperty(constants,"__esModule",{value:!0});constants.areaConversion=constants.timeConversion=constants.distanceConversion=constants.altitudeKeys=constants.latitudeKeys=constants.longitudeKeys=constants.MAXLON=constants.MINLON=constants.MAXLAT=constants.MINLAT=constants.earthRadius=constants.sexagesimalPattern=void 0;var sexagesimalPattern=/^([0-9]{1,3})°\s*([0-9]{1,3}(?:\.(?:[0-9]{1,}))?)['′]\s*(([0-9]{1,3}(\.([0-9]{1,}))?)["″]\s*)?([NEOSW]?)$/;constants.sexagesimalPattern=sexagesimalPattern;var earthRadius=6378137;constants.earthRadius=earthRadius;var MINLAT=-90;constants.MINLAT=MINLAT;var MAXLAT=90;constants.MAXLAT=MAXLAT;var MINLON=-180;constants.MINLON=MINLON;var MAXLON=180;constants.MAXLON=MAXLON;var longitudeKeys=["lng","lon","longitude",0];constants.longitudeKeys=longitudeKeys;var latitudeKeys=["lat","latitude",1];constants.latitudeKeys=latitudeKeys;var altitudeKeys=["alt","altitude","elevation","elev",2];constants.altitudeKeys=altitudeKeys;var distanceConversion={m:1,km:.001,cm:100,mm:1e3,mi:1/1609.344,sm:1/1852.216,ft:100/30.48,in:100/2.54,yd:1/.9144};constants.distanceConversion=distanceConversion;var timeConversion={m:60,h:3600,d:86400};constants.timeConversion=timeConversion;var areaConversion={m2:1,km2:1e-6,ha:1e-4,a:.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};constants.areaConversion=areaConversion;areaConversion.sqm=areaConversion.m2;areaConversion.sqkm=areaConversion.km2;areaConversion.sqft=areaConversion.ft2;areaConversion.sqyd=areaConversion.yd2;areaConversion.sqin=areaConversion.in2;var getCoordinateKey$1={};Object.defineProperty(getCoordinateKey$1,"__esModule",{value:!0});getCoordinateKey$1.default=void 0;var getCoordinateKey=function s(o,et){return et.reduce(function(tt,nt){if(typeof o>"u"||o===null)throw new Error("'".concat(o,"' is no valid coordinate."));return Object.prototype.hasOwnProperty.call(o,nt)&&typeof nt<"u"&&typeof tt>"u"?(tt=nt,nt):tt},void 0)},_default$D=getCoordinateKey;getCoordinateKey$1.default=_default$D;var toDecimal$1={},isDecimal$1={};Object.defineProperty(isDecimal$1,"__esModule",{value:!0});isDecimal$1.default=void 0;var isDecimal=function s(o){var et=o.toString().trim();return isNaN(parseFloat(et))?!1:parseFloat(et)===Number(et)},_default$C=isDecimal;isDecimal$1.default=_default$C;var isSexagesimal$1={};Object.defineProperty(isSexagesimal$1,"__esModule",{value:!0});isSexagesimal$1.default=void 0;var _constants$e=constants,isSexagesimal=function s(o){return _constants$e.sexagesimalPattern.test(o.toString().trim())},_default$B=isSexagesimal;isSexagesimal$1.default=_default$B;var sexagesimalToDecimal$1={};Object.defineProperty(sexagesimalToDecimal$1,"__esModule",{value:!0});sexagesimalToDecimal$1.default=void 0;var _constants$d=constants,sexagesimalToDecimal=function s(o){var et=new RegExp(_constants$d.sexagesimalPattern).exec(o.toString().trim());if(typeof et>"u"||et===null)throw new Error("Given value is not in sexagesimal format");var tt=Number(et[2])/60||0,nt=Number(et[4])/3600||0,rt=parseFloat(et[1])+tt+nt;return["S","W"].includes(et[7])?-rt:rt},_default$A=sexagesimalToDecimal;sexagesimalToDecimal$1.default=_default$A;var isValidCoordinate$1={},getCoordinateKeys$1={};Object.defineProperty(getCoordinateKeys$1,"__esModule",{value:!0});getCoordinateKeys$1.default=void 0;var _constants$c=constants,_getCoordinateKey$2=_interopRequireDefault$q(getCoordinateKey$1);function _interopRequireDefault$q(s){return s&&s.__esModule?s:{default:s}}function ownKeys$1(s,o){var et=Object.keys(s);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(s);o&&(tt=tt.filter(function(nt){return Object.getOwnPropertyDescriptor(s,nt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$1(s){for(var o=1;o1&&arguments[1]!==void 0?arguments[1]:{longitude:_constants$c.longitudeKeys,latitude:_constants$c.latitudeKeys,altitude:_constants$c.altitudeKeys},tt=(0,_getCoordinateKey$2.default)(o,et.longitude),nt=(0,_getCoordinateKey$2.default)(o,et.latitude),rt=(0,_getCoordinateKey$2.default)(o,et.altitude);return _objectSpread$1({latitude:nt,longitude:tt},rt?{altitude:rt}:{})},_default$z=getCoordinateKeys;getCoordinateKeys$1.default=_default$z;var isValidLatitude$1={};Object.defineProperty(isValidLatitude$1,"__esModule",{value:!0});isValidLatitude$1.default=void 0;var _isDecimal$2=_interopRequireDefault$p(isDecimal$1),_isSexagesimal$2=_interopRequireDefault$p(isSexagesimal$1),_sexagesimalToDecimal$2=_interopRequireDefault$p(sexagesimalToDecimal$1),_constants$b=constants;function _interopRequireDefault$p(s){return s&&s.__esModule?s:{default:s}}var isValidLatitude=function s(o){return(0,_isDecimal$2.default)(o)?!(parseFloat(o)>_constants$b.MAXLAT||o<_constants$b.MINLAT):(0,_isSexagesimal$2.default)(o)?s((0,_sexagesimalToDecimal$2.default)(o)):!1},_default$y=isValidLatitude;isValidLatitude$1.default=_default$y;var isValidLongitude$1={};Object.defineProperty(isValidLongitude$1,"__esModule",{value:!0});isValidLongitude$1.default=void 0;var _isDecimal$1=_interopRequireDefault$o(isDecimal$1),_isSexagesimal$1=_interopRequireDefault$o(isSexagesimal$1),_sexagesimalToDecimal$1=_interopRequireDefault$o(sexagesimalToDecimal$1),_constants$a=constants;function _interopRequireDefault$o(s){return s&&s.__esModule?s:{default:s}}var isValidLongitude=function s(o){return(0,_isDecimal$1.default)(o)?!(parseFloat(o)>_constants$a.MAXLON||o<_constants$a.MINLON):(0,_isSexagesimal$1.default)(o)?s((0,_sexagesimalToDecimal$1.default)(o)):!1},_default$x=isValidLongitude;isValidLongitude$1.default=_default$x;Object.defineProperty(isValidCoordinate$1,"__esModule",{value:!0});isValidCoordinate$1.default=void 0;var _getCoordinateKeys2=_interopRequireDefault$n(getCoordinateKeys$1),_isValidLatitude=_interopRequireDefault$n(isValidLatitude$1),_isValidLongitude=_interopRequireDefault$n(isValidLongitude$1);function _interopRequireDefault$n(s){return s&&s.__esModule?s:{default:s}}var isValidCoordinate=function s(o){var et=(0,_getCoordinateKeys2.default)(o),tt=et.latitude,nt=et.longitude;if(Array.isArray(o)&&o.length>=2)return(0,_isValidLongitude.default)(o[0])&&(0,_isValidLatitude.default)(o[1]);if(typeof tt>"u"||typeof nt>"u")return!1;var rt=o[nt],it=o[tt];return!(typeof it>"u"||typeof rt>"u"||(0,_isValidLatitude.default)(it)===!1||(0,_isValidLongitude.default)(rt)===!1)},_default$w=isValidCoordinate;isValidCoordinate$1.default=_default$w;Object.defineProperty(toDecimal$1,"__esModule",{value:!0});toDecimal$1.default=void 0;var _isDecimal=_interopRequireDefault$m(isDecimal$1),_isSexagesimal=_interopRequireDefault$m(isSexagesimal$1),_sexagesimalToDecimal=_interopRequireDefault$m(sexagesimalToDecimal$1),_isValidCoordinate=_interopRequireDefault$m(isValidCoordinate$1),_getCoordinateKeys=_interopRequireDefault$m(getCoordinateKeys$1);function _interopRequireDefault$m(s){return s&&s.__esModule?s:{default:s}}function ownKeys(s,o){var et=Object.keys(s);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(s);o&&(tt=tt.filter(function(nt){return Object.getOwnPropertyDescriptor(s,nt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread(s){for(var o=1;o"u"||tt===null)){var nt=o[tt];return et===!0?nt:(0,_toDecimal$1.default)(nt)}},_default$u=getLatitude;getLatitude$1.default=_default$u;var getLongitude$1={};Object.defineProperty(getLongitude$1,"__esModule",{value:!0});getLongitude$1.default=void 0;var _constants$8=constants,_getCoordinateKey=_interopRequireDefault$k(getCoordinateKey$1),_toDecimal=_interopRequireDefault$k(toDecimal$1);function _interopRequireDefault$k(s){return s&&s.__esModule?s:{default:s}}var getLongitude=function s(o,et){var tt=(0,_getCoordinateKey.default)(o,_constants$8.longitudeKeys);if(!(typeof tt>"u"||tt===null)){var nt=o[tt];return et===!0?nt:(0,_toDecimal.default)(nt)}},_default$t=getLongitude;getLongitude$1.default=_default$t;var toRad$1={};Object.defineProperty(toRad$1,"__esModule",{value:!0});toRad$1.default=void 0;var toRad=function s(o){return o*Math.PI/180},_default$s=toRad;toRad$1.default=_default$s;var toDeg$1={};Object.defineProperty(toDeg$1,"__esModule",{value:!0});toDeg$1.default=void 0;var toDeg=function s(o){return o*180/Math.PI},_default$r=toDeg;toDeg$1.default=_default$r;Object.defineProperty(computeDestinationPoint$1,"__esModule",{value:!0});computeDestinationPoint$1.default=void 0;var _getLatitude$9=_interopRequireDefault$j(getLatitude$1),_getLongitude$9=_interopRequireDefault$j(getLongitude$1),_toRad$7=_interopRequireDefault$j(toRad$1),_toDeg$4=_interopRequireDefault$j(toDeg$1),_constants$7=constants;function _interopRequireDefault$j(s){return s&&s.__esModule?s:{default:s}}var computeDestinationPoint=function s(o,et,tt){var nt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:6371e3,rt=(0,_getLatitude$9.default)(o),it=(0,_getLongitude$9.default)(o),ot=et/nt,st=(0,_toRad$7.default)(tt),at=(0,_toRad$7.default)(rt),lt=(0,_toRad$7.default)(it),ut=Math.asin(Math.sin(at)*Math.cos(ot)+Math.cos(at)*Math.sin(ot)*Math.cos(st)),dt=lt+Math.atan2(Math.sin(st)*Math.sin(ot)*Math.cos(at),Math.cos(ot)-Math.sin(at)*Math.sin(ut)),ht=(0,_toDeg$4.default)(dt);return(ht<_constants$7.MINLON||ht>_constants$7.MAXLON)&&(dt=(dt+3*Math.PI)%(2*Math.PI)-Math.PI,ht=(0,_toDeg$4.default)(dt)),{latitude:(0,_toDeg$4.default)(ut),longitude:ht}},_default$q=computeDestinationPoint;computeDestinationPoint$1.default=_default$q;var convertArea$1={};Object.defineProperty(convertArea$1,"__esModule",{value:!0});convertArea$1.default=void 0;var _constants$6=constants,convertArea=function s(o){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",tt=_constants$6.areaConversion[et];if(tt)return o*tt;throw new Error("Invalid unit used for area conversion.")},_default$p=convertArea;convertArea$1.default=_default$p;var convertDistance$1={};Object.defineProperty(convertDistance$1,"__esModule",{value:!0});convertDistance$1.default=void 0;var _constants$5=constants,convertDistance=function s(o){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",tt=_constants$5.distanceConversion[et];if(tt)return o*tt;throw new Error("Invalid unit used for distance conversion.")},_default$o=convertDistance;convertDistance$1.default=_default$o;var convertSpeed$1={};Object.defineProperty(convertSpeed$1,"__esModule",{value:!0});convertSpeed$1.default=void 0;var _constants$4=constants,convertSpeed=function s(o){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"kmh";switch(et){case"kmh":return o*_constants$4.timeConversion.h*_constants$4.distanceConversion.km;case"mph":return o*_constants$4.timeConversion.h*_constants$4.distanceConversion.mi;default:return o}},_default$n=convertSpeed;convertSpeed$1.default=_default$n;var decimalToSexagesimal={};Object.defineProperty(decimalToSexagesimal,"__esModule",{value:!0});decimalToSexagesimal.default=void 0;function _slicedToArray$1(s,o){return _arrayWithHoles$1(s)||_iterableToArrayLimit$1(s,o)||_unsupportedIterableToArray$1(s,o)||_nonIterableRest$1()}function _nonIterableRest$1(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$1(s,o){if(s){if(typeof s=="string")return _arrayLikeToArray$1(s,o);var et=Object.prototype.toString.call(s).slice(8,-1);if(et==="Object"&&s.constructor&&(et=s.constructor.name),et==="Map"||et==="Set")return Array.from(s);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$1(s,o)}}function _arrayLikeToArray$1(s,o){(o==null||o>s.length)&&(o=s.length);for(var et=0,tt=new Array(o);et"u"||!(Symbol.iterator in Object(s)))){var et=[],tt=!0,nt=!1,rt=void 0;try{for(var it=s[Symbol.iterator](),ot;!(tt=(ot=it.next()).done)&&(et.push(ot.value),!(o&&et.length===o));tt=!0);}catch(st){nt=!0,rt=st}finally{try{!tt&&it.return!=null&&it.return()}finally{if(nt)throw rt}}return et}}function _arrayWithHoles$1(s){if(Array.isArray(s))return s}var imprecise=function s(o){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4,tt=Math.pow(10,et);return Math.round(o*tt)/tt},decimal2sexagesimalNext=function s(o){var et=o.toString().split("."),tt=_slicedToArray$1(et,2),nt=tt[0],rt=tt[1],it=Math.abs(Number(nt)),ot=+("0."+(rt||0))*60,st=ot.toString().split("."),at=Math.floor(ot),lt=imprecise(+("0."+(st[1]||0))*60).toString(),ut=lt.split("."),dt=_slicedToArray$1(ut,2),ht=dt[0],ct=dt[1],pt=ct===void 0?"0":ct;return it+"° "+at.toString().padStart(2,"0")+"' "+ht.padStart(2,"0")+"."+pt.padEnd(1,"0")+'"'},_default$m=decimal2sexagesimalNext;decimalToSexagesimal.default=_default$m;var findNearest$1={},orderByDistance$1={},getDistance$2={},robustAcos$1={};Object.defineProperty(robustAcos$1,"__esModule",{value:!0});robustAcos$1.default=void 0;var robustAcos=function s(o){return o>1?1:o<-1?-1:o},_default$l=robustAcos;robustAcos$1.default=_default$l;Object.defineProperty(getDistance$2,"__esModule",{value:!0});getDistance$2.default=void 0;var _getLatitude$8=_interopRequireDefault$i(getLatitude$1),_getLongitude$8=_interopRequireDefault$i(getLongitude$1),_toRad$6=_interopRequireDefault$i(toRad$1),_robustAcos$1=_interopRequireDefault$i(robustAcos$1),_constants$3=constants;function _interopRequireDefault$i(s){return s&&s.__esModule?s:{default:s}}var getDistance$1=function s(o,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;tt=typeof tt<"u"&&!isNaN(tt)?tt:1;var nt=(0,_getLatitude$8.default)(o),rt=(0,_getLongitude$8.default)(o),it=(0,_getLatitude$8.default)(et),ot=(0,_getLongitude$8.default)(et),st=Math.acos((0,_robustAcos$1.default)(Math.sin((0,_toRad$6.default)(it))*Math.sin((0,_toRad$6.default)(nt))+Math.cos((0,_toRad$6.default)(it))*Math.cos((0,_toRad$6.default)(nt))*Math.cos((0,_toRad$6.default)(rt)-(0,_toRad$6.default)(ot))))*_constants$3.earthRadius;return Math.round(st/tt)*tt},_default$k=getDistance$1;getDistance$2.default=_default$k;Object.defineProperty(orderByDistance$1,"__esModule",{value:!0});orderByDistance$1.default=void 0;var _getDistance$5=_interopRequireDefault$h(getDistance$2);function _interopRequireDefault$h(s){return s&&s.__esModule?s:{default:s}}var orderByDistance=function s(o,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_getDistance$5.default;return tt=typeof tt=="function"?tt:_getDistance$5.default,et.slice().sort(function(nt,rt){return tt(o,nt)-tt(o,rt)})},_default$j=orderByDistance;orderByDistance$1.default=_default$j;Object.defineProperty(findNearest$1,"__esModule",{value:!0});findNearest$1.default=void 0;var _orderByDistance=_interopRequireDefault$g(orderByDistance$1);function _interopRequireDefault$g(s){return s&&s.__esModule?s:{default:s}}var findNearest=function s(o,et){return(0,_orderByDistance.default)(o,et)[0]},_default$i=findNearest;findNearest$1.default=_default$i;var getAreaOfPolygon$1={};Object.defineProperty(getAreaOfPolygon$1,"__esModule",{value:!0});getAreaOfPolygon$1.default=void 0;var _toRad$5=_interopRequireDefault$f(toRad$1),_getLatitude$7=_interopRequireDefault$f(getLatitude$1),_getLongitude$7=_interopRequireDefault$f(getLongitude$1),_constants$2=constants;function _interopRequireDefault$f(s){return s&&s.__esModule?s:{default:s}}var getAreaOfPolygon=function s(o){var et=0;if(o.length>2){for(var tt,nt,rt,it=0;itut&&atdt&&(pt-=Math.PI*2)}else st=Math.max(st,ut),at=Math.min(at,lt),ct=ht,pt=dt;return[{latitude:(0,_toDeg$3.default)(st),longitude:(0,_toDeg$3.default)(ct)},{latitude:(0,_toDeg$3.default)(at),longitude:(0,_toDeg$3.default)(pt)}]},_default$f=getBoundsOfDistance;getBoundsOfDistance$1.default=_default$f;var getCenter$1={};Object.defineProperty(getCenter$1,"__esModule",{value:!0});getCenter$1.default=void 0;var _getLatitude$4=_interopRequireDefault$c(getLatitude$1),_getLongitude$4=_interopRequireDefault$c(getLongitude$1),_toRad$3=_interopRequireDefault$c(toRad$1),_toDeg$2=_interopRequireDefault$c(toDeg$1);function _interopRequireDefault$c(s){return s&&s.__esModule?s:{default:s}}var getCenter=function s(o){if(Array.isArray(o)===!1||o.length===0)return!1;var et=o.length,tt=o.reduce(function(ot,st){var at=(0,_toRad$3.default)((0,_getLatitude$4.default)(st)),lt=(0,_toRad$3.default)((0,_getLongitude$4.default)(st));return{X:ot.X+Math.cos(at)*Math.cos(lt),Y:ot.Y+Math.cos(at)*Math.sin(lt),Z:ot.Z+Math.sin(at)}},{X:0,Y:0,Z:0}),nt=tt.X/et,rt=tt.Y/et,it=tt.Z/et;return{longitude:(0,_toDeg$2.default)(Math.atan2(rt,nt)),latitude:(0,_toDeg$2.default)(Math.atan2(it,Math.sqrt(nt*nt+rt*rt)))}},_default$e=getCenter;getCenter$1.default=_default$e;var getCenterOfBounds$1={};Object.defineProperty(getCenterOfBounds$1,"__esModule",{value:!0});getCenterOfBounds$1.default=void 0;var _getBounds=_interopRequireDefault$b(getBounds$1);function _interopRequireDefault$b(s){return s&&s.__esModule?s:{default:s}}var getCenterOfBounds=function s(o){var et=(0,_getBounds.default)(o),tt=et.minLat+(et.maxLat-et.minLat)/2,nt=et.minLng+(et.maxLng-et.minLng)/2;return{latitude:parseFloat(tt.toFixed(6)),longitude:parseFloat(nt.toFixed(6))}},_default$d=getCenterOfBounds;getCenterOfBounds$1.default=_default$d;var getCompassDirection$1={},getRhumbLineBearing$1={};Object.defineProperty(getRhumbLineBearing$1,"__esModule",{value:!0});getRhumbLineBearing$1.default=void 0;var _getLatitude$3=_interopRequireDefault$a(getLatitude$1),_getLongitude$3=_interopRequireDefault$a(getLongitude$1),_toRad$2=_interopRequireDefault$a(toRad$1),_toDeg$1=_interopRequireDefault$a(toDeg$1);function _interopRequireDefault$a(s){return s&&s.__esModule?s:{default:s}}var getRhumbLineBearing=function s(o,et){var tt=(0,_toRad$2.default)((0,_getLongitude$3.default)(et))-(0,_toRad$2.default)((0,_getLongitude$3.default)(o)),nt=Math.log(Math.tan((0,_toRad$2.default)((0,_getLatitude$3.default)(et))/2+Math.PI/4)/Math.tan((0,_toRad$2.default)((0,_getLatitude$3.default)(o))/2+Math.PI/4));return Math.abs(tt)>Math.PI&&(tt>0?tt=(Math.PI*2-tt)*-1:tt=Math.PI*2+tt),((0,_toDeg$1.default)(Math.atan2(tt,nt))+360)%360},_default$c=getRhumbLineBearing;getRhumbLineBearing$1.default=_default$c;Object.defineProperty(getCompassDirection$1,"__esModule",{value:!0});getCompassDirection$1.default=void 0;var _getRhumbLineBearing=_interopRequireDefault$9(getRhumbLineBearing$1);function _interopRequireDefault$9(s){return s&&s.__esModule?s:{default:s}}var getCompassDirection=function s(o,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_getRhumbLineBearing.default,nt=typeof tt=="function"?tt(o,et):(0,_getRhumbLineBearing.default)(o,et);if(isNaN(nt))throw new Error("Could not calculate bearing for given points. Check your bearing function");switch(Math.round(nt/22.5)){case 1:return"NNE";case 2:return"NE";case 3:return"ENE";case 4:return"E";case 5:return"ESE";case 6:return"SE";case 7:return"SSE";case 8:return"S";case 9:return"SSW";case 10:return"SW";case 11:return"WSW";case 12:return"W";case 13:return"WNW";case 14:return"NW";case 15:return"NNW";default:return"N"}},_default$b=getCompassDirection;getCompassDirection$1.default=_default$b;var getDistanceFromLine$1={};Object.defineProperty(getDistanceFromLine$1,"__esModule",{value:!0});getDistanceFromLine$1.default=void 0;var _getDistance$4=_interopRequireDefault$8(getDistance$2),_robustAcos=_interopRequireDefault$8(robustAcos$1);function _interopRequireDefault$8(s){return s&&s.__esModule?s:{default:s}}var getDistanceFromLine=function s(o,et,tt){var nt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,rt=(0,_getDistance$4.default)(et,o,nt),it=(0,_getDistance$4.default)(o,tt,nt),ot=(0,_getDistance$4.default)(et,tt,nt),st=Math.acos((0,_robustAcos.default)((rt*rt+ot*ot-it*it)/(2*rt*ot))),at=Math.acos((0,_robustAcos.default)((it*it+ot*ot-rt*rt)/(2*it*ot)));return st>Math.PI/2?rt:at>Math.PI/2?it:Math.sin(st)*rt},_default$a=getDistanceFromLine;getDistanceFromLine$1.default=_default$a;var getGreatCircleBearing$1={};Object.defineProperty(getGreatCircleBearing$1,"__esModule",{value:!0});getGreatCircleBearing$1.default=void 0;var _getLatitude$2=_interopRequireDefault$7(getLatitude$1),_getLongitude$2=_interopRequireDefault$7(getLongitude$1),_toRad$1=_interopRequireDefault$7(toRad$1),_toDeg=_interopRequireDefault$7(toDeg$1);function _interopRequireDefault$7(s){return s&&s.__esModule?s:{default:s}}var getGreatCircleBearing=function s(o,et){var tt=(0,_getLatitude$2.default)(et),nt=(0,_getLongitude$2.default)(et),rt=(0,_getLatitude$2.default)(o),it=(0,_getLongitude$2.default)(o),ot=((0,_toDeg.default)(Math.atan2(Math.sin((0,_toRad$1.default)(nt)-(0,_toRad$1.default)(it))*Math.cos((0,_toRad$1.default)(tt)),Math.cos((0,_toRad$1.default)(rt))*Math.sin((0,_toRad$1.default)(tt))-Math.sin((0,_toRad$1.default)(rt))*Math.cos((0,_toRad$1.default)(tt))*Math.cos((0,_toRad$1.default)(nt)-(0,_toRad$1.default)(it))))+360)%360;return ot},_default$9=getGreatCircleBearing;getGreatCircleBearing$1.default=_default$9;var getPathLength$1={};Object.defineProperty(getPathLength$1,"__esModule",{value:!0});getPathLength$1.default=void 0;var _getDistance$3=_interopRequireDefault$6(getDistance$2);function _interopRequireDefault$6(s){return s&&s.__esModule?s:{default:s}}function _typeof(s){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof=function(et){return typeof et}:_typeof=function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof(s)}var getPathLength=function s(o){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:_getDistance$3.default;return o.reduce(function(tt,nt){return _typeof(tt)==="object"&&tt.last!==null&&(tt.distance+=et(nt,tt.last)),tt.last=nt,tt},{last:null,distance:0}).distance},_default$8=getPathLength;getPathLength$1.default=_default$8;var getPreciseDistance={};Object.defineProperty(getPreciseDistance,"__esModule",{value:!0});getPreciseDistance.default=void 0;var _getLatitude$1=_interopRequireDefault$5(getLatitude$1),_getLongitude$1=_interopRequireDefault$5(getLongitude$1),_toRad=_interopRequireDefault$5(toRad$1),_constants=constants;function _interopRequireDefault$5(s){return s&&s.__esModule?s:{default:s}}var getDistance=function s(o,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;tt=typeof tt<"u"&&!isNaN(tt)?tt:1;var nt=(0,_getLatitude$1.default)(o),rt=(0,_getLongitude$1.default)(o),it=(0,_getLatitude$1.default)(et),ot=(0,_getLongitude$1.default)(et),st=6356752314245e-6,at=1/298.257223563,lt=(0,_toRad.default)(ot-rt),ut,dt,ht,ct,pt,ft,gt=Math.atan((1-at)*Math.tan((0,_toRad.default)(parseFloat(nt)))),yt=Math.atan((1-at)*Math.tan((0,_toRad.default)(parseFloat(it)))),Ut=Math.sin(gt),Ft=Math.cos(gt),mt=Math.sin(yt),vt=Math.cos(yt),At=lt,Lt,Rt=100;do{var St=Math.sin(At),Tt=Math.cos(At);if(ft=Math.sqrt(vt*St*(vt*St)+(Ft*mt-Ut*vt*Tt)*(Ft*mt-Ut*vt*Tt)),ft===0)return 0;ut=Ut*mt+Ft*vt*Tt,dt=Math.atan2(ft,ut),ht=Ft*vt*St/ft,ct=1-ht*ht,pt=ut-2*Ut*mt/ct,isNaN(pt)&&(pt=0);var Bt=at/16*ct*(4+at*(4-3*ct));Lt=At,At=lt+(1-Bt)*at*ht*(dt+Bt*ft*(pt+Bt*ut*(-1+2*pt*pt)))}while(Math.abs(At-Lt)>1e-12&&--Rt>0);if(Rt===0)return NaN;var xt=ct*(_constants.earthRadius*_constants.earthRadius-st*st)/(st*st),Ct=1+xt/16384*(4096+xt*(-768+xt*(320-175*xt))),kt=xt/1024*(256+xt*(-128+xt*(74-47*xt))),Nt=kt*ft*(pt+kt/4*(ut*(-1+2*pt*pt)-kt/6*pt*(-3+4*ft*ft)*(-3+4*pt*pt))),Ot=st*Ct*(dt-Nt);return Math.round(Ot/tt)*tt},_default$7=getDistance;getPreciseDistance.default=_default$7;var getRoughCompassDirection$1={};Object.defineProperty(getRoughCompassDirection$1,"__esModule",{value:!0});getRoughCompassDirection$1.default=void 0;var getRoughCompassDirection=function s(o){if(/^(NNE|NE|NNW|N)$/.test(o))return"N";if(/^(ENE|E|ESE|SE)$/.test(o))return"E";if(/^(SSE|S|SSW|SW)$/.test(o))return"S";if(/^(WSW|W|WNW|NW)$/.test(o))return"W"},_default$6=getRoughCompassDirection;getRoughCompassDirection$1.default=_default$6;var getSpeed$1={};Object.defineProperty(getSpeed$1,"__esModule",{value:!0});getSpeed$1.default=void 0;var _getDistance$2=_interopRequireDefault$4(getDistance$2);function _interopRequireDefault$4(s){return s&&s.__esModule?s:{default:s}}var getSpeed=function s(o,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_getDistance$2.default,nt=tt(o,et),rt=Number(et.time)-Number(o.time),it=nt/rt*1e3;return it},_default$5=getSpeed;getSpeed$1.default=_default$5;var isPointInLine$1={};Object.defineProperty(isPointInLine$1,"__esModule",{value:!0});isPointInLine$1.default=void 0;var _getDistance$1=_interopRequireDefault$3(getDistance$2);function _interopRequireDefault$3(s){return s&&s.__esModule?s:{default:s}}var isPointInLine=function s(o,et,tt){return(0,_getDistance$1.default)(et,o)+(0,_getDistance$1.default)(o,tt)===(0,_getDistance$1.default)(et,tt)},_default$4=isPointInLine;isPointInLine$1.default=_default$4;var isPointInPolygon$1={};Object.defineProperty(isPointInPolygon$1,"__esModule",{value:!0});isPointInPolygon$1.default=void 0;var _getLatitude=_interopRequireDefault$2(getLatitude$1),_getLongitude=_interopRequireDefault$2(getLongitude$1);function _interopRequireDefault$2(s){return s&&s.__esModule?s:{default:s}}var isPointInPolygon=function s(o,et){for(var tt=!1,nt=et.length,rt=-1,it=nt-1;++rts.length)&&(o=s.length);for(var et=0,tt=new Array(o);et"u"||!(Symbol.iterator in Object(s)))){var et=[],tt=!0,nt=!1,rt=void 0;try{for(var it=s[Symbol.iterator](),ot;!(tt=(ot=it.next()).done)&&(et.push(ot.value),!(o&&et.length===o));tt=!0);}catch(st){nt=!0,rt=st}finally{try{!tt&&it.return!=null&&it.return()}finally{if(nt)throw rt}}return et}}function _arrayWithHoles(s){if(Array.isArray(s))return s}var wktToPolygon=function s(o){if(!o.startsWith("POLYGON"))throw new Error("Invalid wkt.");var et=o.slice(o.indexOf("(")+2,o.indexOf(")")).split(", "),tt=et.map(function(nt){var rt=nt.split(" "),it=_slicedToArray(rt,2),ot=it[0],st=it[1];return{longitude:parseFloat(ot),latitude:parseFloat(st)}});return tt},_default=wktToPolygon;wktToPolygon$1.default=_default;(function(s){Object.defineProperty(s,"__esModule",{value:!0});var o={computeDestinationPoint:!0,convertArea:!0,convertDistance:!0,convertSpeed:!0,decimalToSexagesimal:!0,findNearest:!0,getAreaOfPolygon:!0,getBounds:!0,getBoundsOfDistance:!0,getCenter:!0,getCenterOfBounds:!0,getCompassDirection:!0,getCoordinateKey:!0,getCoordinateKeys:!0,getDistance:!0,getDistanceFromLine:!0,getGreatCircleBearing:!0,getLatitude:!0,getLongitude:!0,getPathLength:!0,getPreciseDistance:!0,getRhumbLineBearing:!0,getRoughCompassDirection:!0,getSpeed:!0,isDecimal:!0,isPointInLine:!0,isPointInPolygon:!0,isPointNearLine:!0,isPointWithinRadius:!0,isSexagesimal:!0,isValidCoordinate:!0,isValidLatitude:!0,isValidLongitude:!0,orderByDistance:!0,sexagesimalToDecimal:!0,toDecimal:!0,toRad:!0,toDeg:!0,wktToPolygon:!0};Object.defineProperty(s,"computeDestinationPoint",{enumerable:!0,get:function(){return et.default}}),Object.defineProperty(s,"convertArea",{enumerable:!0,get:function(){return tt.default}}),Object.defineProperty(s,"convertDistance",{enumerable:!0,get:function(){return nt.default}}),Object.defineProperty(s,"convertSpeed",{enumerable:!0,get:function(){return rt.default}}),Object.defineProperty(s,"decimalToSexagesimal",{enumerable:!0,get:function(){return it.default}}),Object.defineProperty(s,"findNearest",{enumerable:!0,get:function(){return ot.default}}),Object.defineProperty(s,"getAreaOfPolygon",{enumerable:!0,get:function(){return st.default}}),Object.defineProperty(s,"getBounds",{enumerable:!0,get:function(){return at.default}}),Object.defineProperty(s,"getBoundsOfDistance",{enumerable:!0,get:function(){return lt.default}}),Object.defineProperty(s,"getCenter",{enumerable:!0,get:function(){return ut.default}}),Object.defineProperty(s,"getCenterOfBounds",{enumerable:!0,get:function(){return dt.default}}),Object.defineProperty(s,"getCompassDirection",{enumerable:!0,get:function(){return ht.default}}),Object.defineProperty(s,"getCoordinateKey",{enumerable:!0,get:function(){return ct.default}}),Object.defineProperty(s,"getCoordinateKeys",{enumerable:!0,get:function(){return pt.default}}),Object.defineProperty(s,"getDistance",{enumerable:!0,get:function(){return ft.default}}),Object.defineProperty(s,"getDistanceFromLine",{enumerable:!0,get:function(){return gt.default}}),Object.defineProperty(s,"getGreatCircleBearing",{enumerable:!0,get:function(){return yt.default}}),Object.defineProperty(s,"getLatitude",{enumerable:!0,get:function(){return Ut.default}}),Object.defineProperty(s,"getLongitude",{enumerable:!0,get:function(){return Ft.default}}),Object.defineProperty(s,"getPathLength",{enumerable:!0,get:function(){return mt.default}}),Object.defineProperty(s,"getPreciseDistance",{enumerable:!0,get:function(){return vt.default}}),Object.defineProperty(s,"getRhumbLineBearing",{enumerable:!0,get:function(){return At.default}}),Object.defineProperty(s,"getRoughCompassDirection",{enumerable:!0,get:function(){return Lt.default}}),Object.defineProperty(s,"getSpeed",{enumerable:!0,get:function(){return Rt.default}}),Object.defineProperty(s,"isDecimal",{enumerable:!0,get:function(){return St.default}}),Object.defineProperty(s,"isPointInLine",{enumerable:!0,get:function(){return Tt.default}}),Object.defineProperty(s,"isPointInPolygon",{enumerable:!0,get:function(){return Bt.default}}),Object.defineProperty(s,"isPointNearLine",{enumerable:!0,get:function(){return xt.default}}),Object.defineProperty(s,"isPointWithinRadius",{enumerable:!0,get:function(){return Ct.default}}),Object.defineProperty(s,"isSexagesimal",{enumerable:!0,get:function(){return kt.default}}),Object.defineProperty(s,"isValidCoordinate",{enumerable:!0,get:function(){return Nt.default}}),Object.defineProperty(s,"isValidLatitude",{enumerable:!0,get:function(){return Ot.default}}),Object.defineProperty(s,"isValidLongitude",{enumerable:!0,get:function(){return Wt.default}}),Object.defineProperty(s,"orderByDistance",{enumerable:!0,get:function(){return Dt.default}}),Object.defineProperty(s,"sexagesimalToDecimal",{enumerable:!0,get:function(){return Et.default}}),Object.defineProperty(s,"toDecimal",{enumerable:!0,get:function(){return Pt.default}}),Object.defineProperty(s,"toRad",{enumerable:!0,get:function(){return zt.default}}),Object.defineProperty(s,"toDeg",{enumerable:!0,get:function(){return en.default}}),Object.defineProperty(s,"wktToPolygon",{enumerable:!0,get:function(){return Kt.default}});var et=Zt(computeDestinationPoint$1),tt=Zt(convertArea$1),nt=Zt(convertDistance$1),rt=Zt(convertSpeed$1),it=Zt(decimalToSexagesimal),ot=Zt(findNearest$1),st=Zt(getAreaOfPolygon$1),at=Zt(getBounds$1),lt=Zt(getBoundsOfDistance$1),ut=Zt(getCenter$1),dt=Zt(getCenterOfBounds$1),ht=Zt(getCompassDirection$1),ct=Zt(getCoordinateKey$1),pt=Zt(getCoordinateKeys$1),ft=Zt(getDistance$2),gt=Zt(getDistanceFromLine$1),yt=Zt(getGreatCircleBearing$1),Ut=Zt(getLatitude$1),Ft=Zt(getLongitude$1),mt=Zt(getPathLength$1),vt=Zt(getPreciseDistance),At=Zt(getRhumbLineBearing$1),Lt=Zt(getRoughCompassDirection$1),Rt=Zt(getSpeed$1),St=Zt(isDecimal$1),Tt=Zt(isPointInLine$1),Bt=Zt(isPointInPolygon$1),xt=Zt(isPointNearLine$1),Ct=Zt(isPointWithinRadius$1),kt=Zt(isSexagesimal$1),Nt=Zt(isValidCoordinate$1),Ot=Zt(isValidLatitude$1),Wt=Zt(isValidLongitude$1),Dt=Zt(orderByDistance$1),Et=Zt(sexagesimalToDecimal$1),Pt=Zt(toDecimal$1),zt=Zt(toRad$1),en=Zt(toDeg$1),Kt=Zt(wktToPolygon$1),nn=constants;Object.keys(nn).forEach(function(jt){jt==="default"||jt==="__esModule"||Object.prototype.hasOwnProperty.call(o,jt)||Object.defineProperty(s,jt,{enumerable:!0,get:function(){return nn[jt]}})});function Zt(jt){return jt&&jt.__esModule?jt:{default:jt}}})(es);class EmptyUniverseData{subscribeToBitset(o,et,tt){throw new Error("Method not implemented.")}subscribeToPath(o,et,tt){throw new Error("Method not implemented.")}addInteraction(o){throw new Error("Method not implemented.")}removeInteraction(o){throw new Error("Method not implemented.")}clearWorkerPool(){throw new Error("Method not implemented.")}getInteractions(){throw new Error("Method not implemented.")}addInteractionsChangedListener(o){throw new Error("Method not implemented.")}addInteractionListener(o){throw new Error("Method not implemented.")}setTime(o){throw new Error("Method not implemented.")}getTime(){throw new Error("Method not implemented.")}getTimeMs(){throw new Error("Method not implemented.")}getLatestTransformTrees(o){throw new Error("Method not implemented.")}getLatestLocations(o){throw new Error("Method not implemented.")}getDeviceContexts(){throw new Error("Method not implemented.")}getDeviceContextName(o){throw new Error("Method not implemented.")}getTelemetryStreamType(o,et){throw new Error("Method not implemented.")}getTelemetryStreams(o){throw new Error("Method not implemented.")}getTeleopRosStreams(o){throw new Error("Method not implemented.")}getUrdfs(o){throw new Error("Method not implemented.")}getHardwareStreams(o){throw new Error("Method not implemented.")}subscribeToPointCloud(o,et,tt){throw new Error("Method not implemented.")}subscribeToOdometry(o,et,tt){throw new Error("Method not implemented.")}subscribeToPose(o,et,tt){throw new Error("Method not implemented.")}subscribeToGeometry(o,et,tt){throw new Error("Method not implemented.")}subscribeToJointState(o,et,tt){throw new Error("Method not implemented.")}subscribeToGridMap(o,et,tt){throw new Error("Method not implemented.")}subscribeToVideo(o,et,tt){throw new Error("Method not implemented.")}subscribeToTransformTree(o,et,tt){throw new Error("Method not implemented.")}subscribeToLocation(o,et,tt){throw new Error("Method not implemented.")}subscribeToJson(o,et,tt){throw new Error("Method not implemented.")}subscribeToText(o,et,tt){throw new Error("Method not implemented.")}subscribeToNumeric(o,et,tt){throw new Error("Method not implemented.")}subscribeToNumericSet(o,et,tt){throw new Error("Method not implemented.")}getStatistics(){throw new Error("Method not implemented.")}subscribeDataSourceStateChange(o,et,tt){throw new Error("Method not implemented.")}subscribeToImage(o,et,tt){throw new Error("Method not implemented.")}sendRealtimePose(o,et,tt){throw new Error("Method not implemented.")}sendRealtimeBoolean(o,et,tt){throw new Error("Method not implemented.")}sendRealtimeBitset(o,et,tt){throw new Error("Method not implemented.")}sendCommand(o,et,tt){throw new Error("Method not implemented.")}}const UniverseDataContext=React$1.createContext([new EmptyUniverseData,new EmptyUniverseData]);class PositioningBuilder{static fixed(o,et,tt){return{type:"cartesian",x:o,y:et,z:tt}}static odometry(o,et,tt,nt){return{type:"odometry",stream:o,rtcStream:et,useLatestDataPoint:tt,useWorldToLocalTransform:nt}}static gps(o,et){return{type:"gps",stream:o,relativeToLatitude:et.lat,relativeToLongitude:et.long}}static tranformTree(o,et){return{type:"transform tree",stream:o,end:et}}}const LayerContext=React$1.createContext(null);class DataSourceBuilder{static telemetry(o,et,tt){return{id:v4(),sourceType:"telemetry",streamName:o,streamType:et,latestDataPoint:tt}}static realtime(o,et){return{id:v4(),sourceType:"realtime",rosTopicName:o,rosTopicType:et}}static hardware(o){return{id:v4(),sourceType:"hardware",rtcStreamName:o}}}var md5$1={exports:{}};/** +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray(s,o){if(s){if(typeof s=="string")return _arrayLikeToArray(s,o);var et=Object.prototype.toString.call(s).slice(8,-1);if(et==="Object"&&s.constructor&&(et=s.constructor.name),et==="Map"||et==="Set")return Array.from(s);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray(s,o)}}function _arrayLikeToArray(s,o){(o==null||o>s.length)&&(o=s.length);for(var et=0,tt=new Array(o);et"u"||!(Symbol.iterator in Object(s)))){var et=[],tt=!0,nt=!1,rt=void 0;try{for(var it=s[Symbol.iterator](),ot;!(tt=(ot=it.next()).done)&&(et.push(ot.value),!(o&&et.length===o));tt=!0);}catch(st){nt=!0,rt=st}finally{try{!tt&&it.return!=null&&it.return()}finally{if(nt)throw rt}}return et}}function _arrayWithHoles(s){if(Array.isArray(s))return s}var wktToPolygon=function s(o){if(!o.startsWith("POLYGON"))throw new Error("Invalid wkt.");var et=o.slice(o.indexOf("(")+2,o.indexOf(")")).split(", "),tt=et.map(function(nt){var rt=nt.split(" "),it=_slicedToArray(rt,2),ot=it[0],st=it[1];return{longitude:parseFloat(ot),latitude:parseFloat(st)}});return tt},_default=wktToPolygon;wktToPolygon$1.default=_default;(function(s){Object.defineProperty(s,"__esModule",{value:!0});var o={computeDestinationPoint:!0,convertArea:!0,convertDistance:!0,convertSpeed:!0,decimalToSexagesimal:!0,findNearest:!0,getAreaOfPolygon:!0,getBounds:!0,getBoundsOfDistance:!0,getCenter:!0,getCenterOfBounds:!0,getCompassDirection:!0,getCoordinateKey:!0,getCoordinateKeys:!0,getDistance:!0,getDistanceFromLine:!0,getGreatCircleBearing:!0,getLatitude:!0,getLongitude:!0,getPathLength:!0,getPreciseDistance:!0,getRhumbLineBearing:!0,getRoughCompassDirection:!0,getSpeed:!0,isDecimal:!0,isPointInLine:!0,isPointInPolygon:!0,isPointNearLine:!0,isPointWithinRadius:!0,isSexagesimal:!0,isValidCoordinate:!0,isValidLatitude:!0,isValidLongitude:!0,orderByDistance:!0,sexagesimalToDecimal:!0,toDecimal:!0,toRad:!0,toDeg:!0,wktToPolygon:!0};Object.defineProperty(s,"computeDestinationPoint",{enumerable:!0,get:function(){return et.default}}),Object.defineProperty(s,"convertArea",{enumerable:!0,get:function(){return tt.default}}),Object.defineProperty(s,"convertDistance",{enumerable:!0,get:function(){return nt.default}}),Object.defineProperty(s,"convertSpeed",{enumerable:!0,get:function(){return rt.default}}),Object.defineProperty(s,"decimalToSexagesimal",{enumerable:!0,get:function(){return it.default}}),Object.defineProperty(s,"findNearest",{enumerable:!0,get:function(){return ot.default}}),Object.defineProperty(s,"getAreaOfPolygon",{enumerable:!0,get:function(){return st.default}}),Object.defineProperty(s,"getBounds",{enumerable:!0,get:function(){return at.default}}),Object.defineProperty(s,"getBoundsOfDistance",{enumerable:!0,get:function(){return lt.default}}),Object.defineProperty(s,"getCenter",{enumerable:!0,get:function(){return ut.default}}),Object.defineProperty(s,"getCenterOfBounds",{enumerable:!0,get:function(){return dt.default}}),Object.defineProperty(s,"getCompassDirection",{enumerable:!0,get:function(){return ht.default}}),Object.defineProperty(s,"getCoordinateKey",{enumerable:!0,get:function(){return ct.default}}),Object.defineProperty(s,"getCoordinateKeys",{enumerable:!0,get:function(){return pt.default}}),Object.defineProperty(s,"getDistance",{enumerable:!0,get:function(){return ft.default}}),Object.defineProperty(s,"getDistanceFromLine",{enumerable:!0,get:function(){return gt.default}}),Object.defineProperty(s,"getGreatCircleBearing",{enumerable:!0,get:function(){return yt.default}}),Object.defineProperty(s,"getLatitude",{enumerable:!0,get:function(){return Ut.default}}),Object.defineProperty(s,"getLongitude",{enumerable:!0,get:function(){return Ft.default}}),Object.defineProperty(s,"getPathLength",{enumerable:!0,get:function(){return mt.default}}),Object.defineProperty(s,"getPreciseDistance",{enumerable:!0,get:function(){return vt.default}}),Object.defineProperty(s,"getRhumbLineBearing",{enumerable:!0,get:function(){return At.default}}),Object.defineProperty(s,"getRoughCompassDirection",{enumerable:!0,get:function(){return Lt.default}}),Object.defineProperty(s,"getSpeed",{enumerable:!0,get:function(){return Rt.default}}),Object.defineProperty(s,"isDecimal",{enumerable:!0,get:function(){return St.default}}),Object.defineProperty(s,"isPointInLine",{enumerable:!0,get:function(){return Tt.default}}),Object.defineProperty(s,"isPointInPolygon",{enumerable:!0,get:function(){return Bt.default}}),Object.defineProperty(s,"isPointNearLine",{enumerable:!0,get:function(){return xt.default}}),Object.defineProperty(s,"isPointWithinRadius",{enumerable:!0,get:function(){return Ct.default}}),Object.defineProperty(s,"isSexagesimal",{enumerable:!0,get:function(){return kt.default}}),Object.defineProperty(s,"isValidCoordinate",{enumerable:!0,get:function(){return Nt.default}}),Object.defineProperty(s,"isValidLatitude",{enumerable:!0,get:function(){return Ot.default}}),Object.defineProperty(s,"isValidLongitude",{enumerable:!0,get:function(){return Jt.default}}),Object.defineProperty(s,"orderByDistance",{enumerable:!0,get:function(){return Dt.default}}),Object.defineProperty(s,"sexagesimalToDecimal",{enumerable:!0,get:function(){return Et.default}}),Object.defineProperty(s,"toDecimal",{enumerable:!0,get:function(){return Pt.default}}),Object.defineProperty(s,"toRad",{enumerable:!0,get:function(){return zt.default}}),Object.defineProperty(s,"toDeg",{enumerable:!0,get:function(){return en.default}}),Object.defineProperty(s,"wktToPolygon",{enumerable:!0,get:function(){return Kt.default}});var et=Zt(computeDestinationPoint$1),tt=Zt(convertArea$1),nt=Zt(convertDistance$1),rt=Zt(convertSpeed$1),it=Zt(decimalToSexagesimal),ot=Zt(findNearest$1),st=Zt(getAreaOfPolygon$1),at=Zt(getBounds$1),lt=Zt(getBoundsOfDistance$1),ut=Zt(getCenter$1),dt=Zt(getCenterOfBounds$1),ht=Zt(getCompassDirection$1),ct=Zt(getCoordinateKey$1),pt=Zt(getCoordinateKeys$1),ft=Zt(getDistance$2),gt=Zt(getDistanceFromLine$1),yt=Zt(getGreatCircleBearing$1),Ut=Zt(getLatitude$1),Ft=Zt(getLongitude$1),mt=Zt(getPathLength$1),vt=Zt(getPreciseDistance),At=Zt(getRhumbLineBearing$1),Lt=Zt(getRoughCompassDirection$1),Rt=Zt(getSpeed$1),St=Zt(isDecimal$1),Tt=Zt(isPointInLine$1),Bt=Zt(isPointInPolygon$1),xt=Zt(isPointNearLine$1),Ct=Zt(isPointWithinRadius$1),kt=Zt(isSexagesimal$1),Nt=Zt(isValidCoordinate$1),Ot=Zt(isValidLatitude$1),Jt=Zt(isValidLongitude$1),Dt=Zt(orderByDistance$1),Et=Zt(sexagesimalToDecimal$1),Pt=Zt(toDecimal$1),zt=Zt(toRad$1),en=Zt(toDeg$1),Kt=Zt(wktToPolygon$1),nn=constants;Object.keys(nn).forEach(function(jt){jt==="default"||jt==="__esModule"||Object.prototype.hasOwnProperty.call(o,jt)||Object.defineProperty(s,jt,{enumerable:!0,get:function(){return nn[jt]}})});function Zt(jt){return jt&&jt.__esModule?jt:{default:jt}}})(es);class EmptyUniverseData{subscribeToBitset(o,et,tt){throw new Error("Method not implemented.")}subscribeToPath(o,et,tt){throw new Error("Method not implemented.")}addInteraction(o){throw new Error("Method not implemented.")}removeInteraction(o){throw new Error("Method not implemented.")}clearWorkerPool(){throw new Error("Method not implemented.")}getInteractions(){throw new Error("Method not implemented.")}addInteractionsChangedListener(o){throw new Error("Method not implemented.")}addInteractionListener(o){throw new Error("Method not implemented.")}setTime(o){throw new Error("Method not implemented.")}getTime(){throw new Error("Method not implemented.")}getTimeMs(){throw new Error("Method not implemented.")}getLatestTransformTrees(o){throw new Error("Method not implemented.")}getLatestLocations(o){throw new Error("Method not implemented.")}getDeviceContexts(){throw new Error("Method not implemented.")}getDeviceContextName(o){throw new Error("Method not implemented.")}getTelemetryStreamType(o,et){throw new Error("Method not implemented.")}getTelemetryStreams(o){throw new Error("Method not implemented.")}getTeleopRosStreams(o){throw new Error("Method not implemented.")}getUrdfs(o){throw new Error("Method not implemented.")}getHardwareStreams(o){throw new Error("Method not implemented.")}subscribeToPointCloud(o,et,tt){throw new Error("Method not implemented.")}subscribeToOdometry(o,et,tt){throw new Error("Method not implemented.")}subscribeToPose(o,et,tt){throw new Error("Method not implemented.")}subscribeToGeometry(o,et,tt){throw new Error("Method not implemented.")}subscribeToJointState(o,et,tt){throw new Error("Method not implemented.")}subscribeToGridMap(o,et,tt){throw new Error("Method not implemented.")}subscribeToVideo(o,et,tt){throw new Error("Method not implemented.")}subscribeToTransformTree(o,et,tt){throw new Error("Method not implemented.")}subscribeToLocation(o,et,tt){throw new Error("Method not implemented.")}subscribeToJson(o,et,tt){throw new Error("Method not implemented.")}subscribeToText(o,et,tt){throw new Error("Method not implemented.")}subscribeToNumeric(o,et,tt){throw new Error("Method not implemented.")}subscribeToNumericSet(o,et,tt){throw new Error("Method not implemented.")}getStatistics(){throw new Error("Method not implemented.")}subscribeDataSourceStateChange(o,et,tt){throw new Error("Method not implemented.")}subscribeToImage(o,et,tt){throw new Error("Method not implemented.")}sendRealtimePose(o,et,tt){throw new Error("Method not implemented.")}sendRealtimeBoolean(o,et,tt){throw new Error("Method not implemented.")}sendRealtimeBitset(o,et,tt){throw new Error("Method not implemented.")}sendCommand(o,et,tt){throw new Error("Method not implemented.")}}const UniverseDataContext=React$1.createContext([new EmptyUniverseData,new EmptyUniverseData]);class PositioningBuilder{static fixed(o,et,tt){return{type:"cartesian",x:o,y:et,z:tt}}static odometry(o,et,tt,nt){return{type:"odometry",stream:o,rtcStream:et,useLatestDataPoint:tt,useWorldToLocalTransform:nt}}static gps(o,et){return{type:"gps",stream:o,relativeToLatitude:et.lat,relativeToLongitude:et.long}}static tranformTree(o,et){return{type:"transform tree",stream:o,end:et}}}const LayerContext=React$1.createContext(null);class DataSourceBuilder{static telemetry(o,et,tt){return{id:v4(),sourceType:"telemetry",streamName:o,streamType:et,latestDataPoint:tt}}static realtime(o,et){return{id:v4(),sourceType:"realtime",rosTopicName:o,rosTopicType:et}}static hardware(o){return{id:v4(),sourceType:"hardware",rtcStreamName:o}}}var md5$1={exports:{}};/** * [js-md5]{@link https://github.com/emn178/js-md5} * * @namespace md5 @@ -5086,7 +5086,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho * @author Chen, Yi-Cyuan [emn178@gmail.com] * @copyright Chen, Yi-Cyuan 2014-2017 * @license MIT - */(function(module){(function(){var root=typeof window=="object"?window:{},NODE_JS=!root.JS_SHA1_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;NODE_JS&&(root=commonjsGlobal$2);var COMMON_JS=!root.JS_SHA1_NO_COMMON_JS&&!0&&module.exports,HEX_CHARS="0123456789abcdef".split(""),EXTRA=[-2147483648,8388608,32768,128],SHIFT=[24,16,8,0],OUTPUT_TYPES=["hex","array","digest","arrayBuffer"],blocks=[],createOutputMethod=function(s){return function(o){return new Sha1(!0).update(o)[s]()}},createMethod=function(){var s=createOutputMethod("hex");NODE_JS&&(s=nodeWrap(s)),s.create=function(){return new Sha1},s.update=function(tt){return s.create().update(tt)};for(var o=0;o>2]|=s[tt]<>2]|=et<>2]|=(192|et>>6)<>2]|=(128|et&63)<=57344?(it[nt>>2]|=(224|et>>12)<>2]|=(128|et>>6&63)<>2]|=(128|et&63)<>2]|=(240|et>>18)<>2]|=(128|et>>12&63)<>2]|=(128|et>>6&63)<>2]|=(128|et&63)<=64?(this.block=it[16],this.start=nt-64,this.hash(),this.hashed=!0):this.start=nt}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha1.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var s=this.blocks,o=this.lastByteIndex;s[16]=this.block,s[o>>2]|=EXTRA[o&3],this.block=s[16],o>=56&&(this.hashed||this.hash(),s[0]=this.block,s[16]=s[1]=s[2]=s[3]=s[4]=s[5]=s[6]=s[7]=s[8]=s[9]=s[10]=s[11]=s[12]=s[13]=s[14]=s[15]=0),s[14]=this.hBytes<<3|this.bytes>>>29,s[15]=this.bytes<<3,this.hash()}},Sha1.prototype.hash=function(){var s=this.h0,o=this.h1,et=this.h2,tt=this.h3,nt=this.h4,rt,it,ot,st=this.blocks;for(it=16;it<80;++it)ot=st[it-3]^st[it-8]^st[it-14]^st[it-16],st[it]=ot<<1|ot>>>31;for(it=0;it<20;it+=5)rt=o&et|~o&tt,ot=s<<5|s>>>27,nt=ot+rt+nt+1518500249+st[it]<<0,o=o<<30|o>>>2,rt=s&o|~s&et,ot=nt<<5|nt>>>27,tt=ot+rt+tt+1518500249+st[it+1]<<0,s=s<<30|s>>>2,rt=nt&s|~nt&o,ot=tt<<5|tt>>>27,et=ot+rt+et+1518500249+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt&nt|~tt&s,ot=et<<5|et>>>27,o=ot+rt+o+1518500249+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et&tt|~et&nt,ot=o<<5|o>>>27,s=ot+rt+s+1518500249+st[it+4]<<0,et=et<<30|et>>>2;for(;it<40;it+=5)rt=o^et^tt,ot=s<<5|s>>>27,nt=ot+rt+nt+1859775393+st[it]<<0,o=o<<30|o>>>2,rt=s^o^et,ot=nt<<5|nt>>>27,tt=ot+rt+tt+1859775393+st[it+1]<<0,s=s<<30|s>>>2,rt=nt^s^o,ot=tt<<5|tt>>>27,et=ot+rt+et+1859775393+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt^nt^s,ot=et<<5|et>>>27,o=ot+rt+o+1859775393+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et^tt^nt,ot=o<<5|o>>>27,s=ot+rt+s+1859775393+st[it+4]<<0,et=et<<30|et>>>2;for(;it<60;it+=5)rt=o&et|o&tt|et&tt,ot=s<<5|s>>>27,nt=ot+rt+nt-1894007588+st[it]<<0,o=o<<30|o>>>2,rt=s&o|s&et|o&et,ot=nt<<5|nt>>>27,tt=ot+rt+tt-1894007588+st[it+1]<<0,s=s<<30|s>>>2,rt=nt&s|nt&o|s&o,ot=tt<<5|tt>>>27,et=ot+rt+et-1894007588+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt&nt|tt&s|nt&s,ot=et<<5|et>>>27,o=ot+rt+o-1894007588+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et&tt|et&nt|tt&nt,ot=o<<5|o>>>27,s=ot+rt+s-1894007588+st[it+4]<<0,et=et<<30|et>>>2;for(;it<80;it+=5)rt=o^et^tt,ot=s<<5|s>>>27,nt=ot+rt+nt-899497514+st[it]<<0,o=o<<30|o>>>2,rt=s^o^et,ot=nt<<5|nt>>>27,tt=ot+rt+tt-899497514+st[it+1]<<0,s=s<<30|s>>>2,rt=nt^s^o,ot=tt<<5|tt>>>27,et=ot+rt+et-899497514+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt^nt^s,ot=et<<5|et>>>27,o=ot+rt+o-899497514+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et^tt^nt,ot=o<<5|o>>>27,s=ot+rt+s-899497514+st[it+4]<<0,et=et<<30|et>>>2;this.h0=this.h0+s<<0,this.h1=this.h1+o<<0,this.h2=this.h2+et<<0,this.h3=this.h3+tt<<0,this.h4=this.h4+nt<<0},Sha1.prototype.hex=function(){this.finalize();var s=this.h0,o=this.h1,et=this.h2,tt=this.h3,nt=this.h4;return HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15]+HEX_CHARS[et>>28&15]+HEX_CHARS[et>>24&15]+HEX_CHARS[et>>20&15]+HEX_CHARS[et>>16&15]+HEX_CHARS[et>>12&15]+HEX_CHARS[et>>8&15]+HEX_CHARS[et>>4&15]+HEX_CHARS[et&15]+HEX_CHARS[tt>>28&15]+HEX_CHARS[tt>>24&15]+HEX_CHARS[tt>>20&15]+HEX_CHARS[tt>>16&15]+HEX_CHARS[tt>>12&15]+HEX_CHARS[tt>>8&15]+HEX_CHARS[tt>>4&15]+HEX_CHARS[tt&15]+HEX_CHARS[nt>>28&15]+HEX_CHARS[nt>>24&15]+HEX_CHARS[nt>>20&15]+HEX_CHARS[nt>>16&15]+HEX_CHARS[nt>>12&15]+HEX_CHARS[nt>>8&15]+HEX_CHARS[nt>>4&15]+HEX_CHARS[nt&15]},Sha1.prototype.toString=Sha1.prototype.hex,Sha1.prototype.digest=function(){this.finalize();var s=this.h0,o=this.h1,et=this.h2,tt=this.h3,nt=this.h4;return[s>>24&255,s>>16&255,s>>8&255,s&255,o>>24&255,o>>16&255,o>>8&255,o&255,et>>24&255,et>>16&255,et>>8&255,et&255,tt>>24&255,tt>>16&255,tt>>8&255,tt&255,nt>>24&255,nt>>16&255,nt>>8&255,nt&255]},Sha1.prototype.array=Sha1.prototype.digest,Sha1.prototype.arrayBuffer=function(){this.finalize();var s=new ArrayBuffer(20),o=new DataView(s);return o.setUint32(0,this.h0),o.setUint32(4,this.h1),o.setUint32(8,this.h2),o.setUint32(12,this.h3),o.setUint32(16,this.h4),s};var exports=createMethod();COMMON_JS?module.exports=exports:root.sha1=exports})()})(sha1$1);var sha1Exports=sha1$1.exports,md5=md5Exports,sha1=sha1Exports,HEX_DIGITS="0123456789abcdef".split(""),UUID_LENGTH=36,UUID_REGEXP=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i,HEX_TO_BYTE_MAP=function(){for(var s={},o=0;o<256;o++){var et=o.toString(16);s[et.length===1?"0"+et:et]=o}return s}(),uint8ToHex=function(s){var o=s>>4,et=s-(o<<4);return HEX_DIGITS[o]+HEX_DIGITS[et]},uint8ArrayToHex=function(s){for(var o="",et=0;etnew Vector3(nt,rt,it),tt=({x:nt,y:rt,z:it,w:ot})=>new Quaternion(nt,rt,it,ot);return new Matrix4().multiply(new Matrix4().setPosition(et(s))).multiply(new Matrix4().makeRotationFromQuaternion(tt(o)))}class PathGeometry extends BufferGeometry{constructor(o,et,tt=200){super();const nt=tt*10,rt=4,it=nt+1,ot=rt+1,st=nt*rt*2,at=it*ot,lt=new Uint32Array(st*3),ut=new Float32Array(at*3);var dt=new CatmullRomCurve3(o);const ht=dt.getPoints(nt);let ct=0;for(var pt=0;pt(s.STATIC="Static",s.DYNAMIC="Dynamic",s))(PathType||{}),PROPERTY_TYPE=(s=>(s.FLOAT="Float",s.INTEGER="Integer",s.BOOLEAN="Boolean",s.STRING="String",s.ENUM="Enum",s.MEATADATA="Metadata",s))(PROPERTY_TYPE||{}),SENDING_STATUS=(s=>(s.NONE="not sent yet",s.WAITING="waiting",s.SUCCESS="sucess",s.FAIL="fail",s))(SENDING_STATUS||{});extend({PathGeometry});const Path=({points:s,color:o="#0000ff",pathOpacity:et=50,pathWidth:tt=.25,pathType:nt=PathType.STATIC,pathFlatten:rt=!1,renderOrder:it=0})=>{const ot=reactExports.useRef(null);reactExports.useEffect(()=>{if(!ot.current)return;const at=ot.current;at.matrixAutoUpdate=!1},[]);const st=rt?s.map(at=>at.setZ(0)):s;return jsx$2("group",{ref:ot,children:s.length>1&&jsx$2(Fragment$2,{children:nt===PathType.STATIC?jsxs$2("mesh",{renderOrder:it,children:[jsx$2("pathGeometry",{args:[st,tt,s.length]}),jsx$2("meshBasicMaterial",{transparent:!0,opacity:et/100,color:o,side:DoubleSide,depthWrite:!1})]}):jsx$2(Line,{points:st,lineWidth:18,color:o,worldUnits:!1,renderOrder:it})})})},millisecond$1=1,second$1=1e3,minute$1=60*second$1,hour$1=60*minute$1,day$1=24*hour$1,week$1=7*day$1,month$1=30*day$1,year$1=365*day$1,duration$1={millisecond:millisecond$1,second:second$1,minute:minute$1,hour:hour$1,day:day$1,week:week$1,month:month$1,year:year$1};function findPathToName(s,o,et){const tt=et||[];for(let nt=0;nt0){const it=findPathToName(rt,o,[...tt,nt]);if(it.length>0)return it}}return[]}function buildTransformList(s,o,et){const tt=et||[],nt=o.shift();if(nt===void 0)return tt;const rt=s[nt],it=defined$1(rt.transform).translation,{rotation:ot}=defined$1(rt.transform);return tt.push({pos:new Vector3(it.x,it.y,it.z),rotation:new Quaternion(ot.x,ot.y,ot.z,ot.w)}),rt.children?buildTransformList(rt.children,o,tt):tt}function DataVisualizationLayer(s){const[o,et]=reactExports.useState(),[tt,nt]=reactExports.useState(void 0),[rt,it]=reactExports.useContext(UniverseDataContext),{register:ot,layers:st,debug:at}=reactExports.useContext(UIDataContext),lt=reactExports.useContext(LayerContext);let ut;lt&&(ut=lt.deviceId);const{children:dt,positioning:ht,visible:ct,name:pt,id:ft,treePath:gt,type:yt,iconUrl:Ut,trailEnabled:Ft,trailFlatten:mt,trailOpacity:vt,trailSeconds:At=15,trailType:Lt,trailWidth:Rt}=s,[St,Tt]=reactExports.useState([]),Bt=reactExports.useRef(null),xt=reactExports.useRef(at?new Box3:null),Ct=reactExports.useRef("yellow");return useHelper(xt,Box3Helper,Ct.current),reactExports.useEffect(()=>{const kt=ft||getUuidByString(JSON.stringify({name:pt,type:yt,treePath:gt})),Nt=ot(pt||"Layer",kt,yt||LayerType.OTHER,Ut,gt,ct);nt(Nt)},[]),reactExports.useEffect(()=>{const kt=ht||PositioningBuilder.fixed(0,0,0);if(Bt.current){const Nt=Bt.current;if(o&&(o(),et(void 0)),kt.type==="cartesian"){const{x:Ot,y:Wt,z:Dt}=kt;Nt.position.set(Ot,Wt,Dt)}else if(kt.type==="gps"){const Ot=rt.subscribeToLocation(defined$1(ut,"gps positioning requires a device id"),DataSourceBuilder.telemetry(kt.stream,"location"),Wt=>{if(typeof Wt=="symbol")return;const Dt=Wt,Et={longitude:Dt.longitude,latitude:Dt.latitude},Pt={longitude:kt.relativeToLongitude,latitude:Dt.latitude};let zt=es.getDistance(Et,Pt,1e-6);const en={longitude:Dt.longitude,latitude:Dt.latitude},Kt={longitude:Dt.longitude,latitude:kt.relativeToLatitude};let nn=es.getDistance(en,Kt,1e-6);Dt.latitudeOt)}else if(kt.type==="odometry"){let Ot,Wt;if(kt.rtcStream)Ot=DataSourceBuilder.realtime(kt.rtcStream,"json"),Wt="rtc";else if(kt.stream)Ot=DataSourceBuilder.telemetry(kt.stream,void 0,kt.useLatestDataPoint||!1),Wt="telemetry";else throw new Error("invalid odometry positioning stream type");const Dt=(Wt==="rtc"?it:rt).subscribeToOdometry(defined$1(ut,"odometry positioning requires a device id"),Ot,Et=>{if(typeof Et=="symbol")return;const Pt=Et,zt=Pt.pose.translation,en=Pt.pose.rotation;if(Pt.trail&&Ft){const Kt=Pt.trail.map(nn=>[nn[0],new Vector3(nn[1].translation.x,nn[1].translation.y,nn[1].translation.z)]);Tt(Kt)}else if(Ft){const Kt=[rt.getTimeMs(),new Vector3(zt.x,zt.y,zt.z)];Tt(nn=>[...nn.filter(Zt=>rt.getTimeMs()-Zt[0]Dt)}else if(kt.type==="transform tree"){const Ot=rt.subscribeToTransformTree(defined$1(ut,"transform tree positioning requires a device id"),DataSourceBuilder.telemetry(kt.stream,"transform tree"),Wt=>{if(typeof Wt=="symbol")return;fetch(defined$1(Wt.url)).then(Et=>Et.json()).then(Et=>{const Pt=findPathToName([Et],defined$1(kt.end)),Kt=buildTransformList([Et],Pt).map(nn=>new Matrix4().compose(new Vector3(nn.pos.x,nn.pos.y,nn.pos.z),nn.rotation,new Vector3(1,1,1))).reduce((nn,Zt)=>nn.multiply(Zt),new Matrix4);Nt.matrix=Kt,Nt.matrixAutoUpdate=!1}).catch(Et=>{throw Et})});et(()=>Ot)}}return()=>{o&&(o(),et(void 0))}},[Bt,ht,tt]),useFrame(()=>{if(Bt.current&&at){const kt=xt.current,Nt=Bt.current;kt.setFromObject(Nt)}}),reactExports.useEffect(()=>{tt&&Bt.current&&nt({...tt,visible:Bt.current.visible})},[Bt.current?.visible]),jsxs$2(Fragment$2,{children:[jsx$2("group",{ref:Bt,visible:tt?tt.visible:!0,name:tt?tt.id:"",userData:{name:tt?.name},children:dt}),tt&&tt.visible&&jsx$2(Path,{points:St.map(kt=>kt[1]),color:FormantColors.blue,pathOpacity:vt,pathWidth:Rt,pathType:Lt,pathFlatten:mt,renderOrder:2})]})}const EmptyLayer=s=>{const{children:o,name:et,id:tt,treePath:nt,type:rt}=s;return jsx$2(DataVisualizationLayer,{...s,type:LayerType.CONTAINER,children:o})};function mergeGeometries(s,o=!1){const et=s[0].index!==null,tt=new Set(Object.keys(s[0].attributes)),nt=new Set(Object.keys(s[0].morphAttributes)),rt={},it={},ot=s[0].morphTargetsRelative,st=new BufferGeometry;let at=0;for(let lt=0;lt{let tt=this.geometry.get(et.ns);tt===void 0&&(tt=new Map,this.geometry.set(et.ns,tt));const{action:nt,type:rt}=et,it=nt===2,ot=nt===3;if(ot)this.geometry=new Map;else{et.id===void 0&&(et.id=0),reifyVector3(et.pose.position),reifyQuaternion(et.pose.orientation),reifyVector3(et.scale),reifyColor(et.color),et.points&&et.points.forEach(lt=>{reifyVector3(lt)});const at={0:"arrow",1:"cube",2:"sphere",3:"cylinder",4:"line_strip",5:"line_list",6:"cube_list",7:"sphere_list",8:"points",9:"text",10:"mesh_resource",11:"triangle_list"}[rt];if(at==="mesh_resource"){console.warn("Mesh resource markers are not supported");return}if(at&&!ot){const lt={id:`${et.ns}_${et.id}`,type:at,position:et.pose.position,rotation:et.pose.orientation,scale:et.scale,color:et.color,dirty:!0};et.points&&(lt.points=et.points),et.text&&(lt.text=et.text),et.colors&&(lt.colors=et.colors),tt.set(et.id,lt),it&&tt.delete(et.id)}}})}getAllGeometry(){const o=[];return this.geometry.forEach(et=>{et.forEach(tt=>{o.push(tt)})}),o}}const MINIMUM_TIME_DIFFERENCE=12*duration$1.hour;function InstancedGeometry({instances:s,allowTransparency:o}){const et=reactExports.useRef(null),tt=reactExports.useRef(new Box3),nt=s[0].type,rt=reactExports.useRef(new Map),it=reactExports.useMemo(()=>new Object3D,[]);return reactExports.useLayoutEffect(()=>{et.current&&(tt.current.setFromCenterAndSize(new Vector3(s[0].position.x,s[0].position.y,s[0].position.z),new Vector3(.1,.1,.1)),et.current&&(s.forEach((ot,st)=>{const{position:at,rotation:lt,scale:ut,color:dt}=ot,ht=getUuidByString(`${ot.id}-${at.x}${at.y}${at.z}${lt.x}${lt.y}${lt.z}${lt.w}${ut.x}${ut.y}${ut.z}`);let ct=rt.current.get(ht);ct||(it.position.set(at.x,at.y,at.z),it.quaternion.set(lt.x,lt.y,lt.z,lt.w),it.scale.set(ut.x,ut.y,ut.z),tt.current.expandByPoint(it.position),it.updateMatrix(),ct=it.matrix.clone(),rt.current.set(ht,it.matrix.clone())),et.current.setMatrixAt(st,ct),et.current.setColorAt(st,new Color$2(dt.r,dt.g,dt.b))}),et.current.up=new Vector3(0,0,1),et.current.instanceMatrix.needsUpdate=!0,et.current.instanceColor&&(et.current.instanceColor.needsUpdate=!0)))},[et,s]),o?jsxs$2("group",{children:[s&&nt==="sphere"?s.map(ot=>jsx$2(Sphere,{args:[.5,32,16],scale:[ot.scale.x,ot.scale.y,ot.scale.z],position:[ot.position.x,ot.position.y,ot.position.z],quaternion:[ot.rotation.x,ot.rotation.y,ot.rotation.z,ot.rotation.w],children:jsx$2("meshLambertMaterial",{attach:"material",color:[ot.color.r,ot.color.g,ot.color.b],opacity:ot.color.a,transparent:ot.color.a<1})},ot.id)):null,s&&nt==="cube"?s.map(ot=>jsx$2(Box,{args:[.9,.9,.9],scale:[ot.scale.x,ot.scale.y,ot.scale.z],position:[ot.position.x,ot.position.y,ot.position.z],quaternion:[ot.rotation.x,ot.rotation.y,ot.rotation.z,ot.rotation.w],children:jsx$2("meshLambertMaterial",{attach:"material",color:[ot.color.r,ot.color.g,ot.color.b],opacity:ot.color.a,transparent:ot.color.a<1})},ot.id)):null]}):jsxs$2(Fragment$2,{children:[jsxs$2("instancedMesh",{ref:et,args:[null,null,s.length],up:new Vector3(0,0,1),children:[nt==="sphere"?jsx$2("sphereGeometry",{attach:"geometry",args:[.5,32,16]}):null,nt==="cube"?jsx$2("boxGeometry",{attach:"geometry",args:[.9,.9,.9]}):null,jsx$2("meshLambertMaterial",{attach:"material"})]}),jsx$2("box3Helper",{args:[tt.current],visible:!1})]})}function InstancedGeometryFromList({instances:s}){if(!s.points)return null;const o=reactExports.useRef(null),et=reactExports.useRef(new Box3),tt=s.type,nt=reactExports.useRef(new Map),rt=reactExports.useMemo(()=>new Object3D,[]);return reactExports.useLayoutEffect(()=>{if(s.points!==void 0&&o.current){et.current.setFromCenterAndSize(new Vector3(s.position.x,s.position.y,s.position.z),new Vector3(.1,.1,.1));const it=s.points,ot=s.position,st=s.colors,at=s.scale;it.map((lt,ut)=>{const dt=getUuidByString(`${ut}-${lt.x}${lt.y}${lt.z}`);let ht=nt.current.get(dt);ht||(rt.position.set(ot.x+lt.x,ot.y+lt.y,ot.z+lt.z),rt.scale.set(at.x,at.y,at.z),rt.updateMatrix(),ht=rt.matrix.clone(),nt.current.set(dt,rt.matrix.clone())),et.current.expandByPoint(rt.position),o.current&&(o.current.up=new Vector3(0,0,1),o.current.setMatrixAt(ut,ht),st&&st[ut]?o.current.setColorAt(ut,new Color$2(st[ut].r,st[ut].g,st[ut].b)):o.current.setColorAt(ut,new Color$2(s.color.r,s.color.g,s.color.b)))}),o.current&&(o.current.instanceMatrix.needsUpdate=!0,o.current.instanceColor&&(o.current.instanceColor.needsUpdate=!0))}},[o,s]),jsxs$2(Fragment$2,{children:[jsxs$2("instancedMesh",{ref:o,args:[null,null,s.points.length],up:new Vector3(0,0,1),children:[tt==="sphere_list"?jsx$2("sphereGeometry",{attach:"geometry",args:[.5,32,16]}):null,tt==="cube_list"?jsx$2("boxGeometry",{attach:"geometry",args:[.9,.9,.9]}):null,jsx$2("meshLambertMaterial",{attach:"material"})]}),jsx$2("box3Helper",{args:[et.current],visible:!1})]})}function GeometryLayer(s){const{children:o,dataSource:et,allowTransparency:tt}=s,nt=reactExports.useRef(new GeometryWorld),rt=reactExports.useRef(!1),it=useBounds(),ot=reactExports.useRef(new Map),st=reactExports.useRef(new Object3D),[at,lt]=reactExports.useContext(UniverseDataContext),ut=reactExports.useRef(at.getTimeMs()),dt=reactExports.useContext(LayerContext),[ht,ct]=reactExports.useState([]),[pt,ft]=reactExports.useState([]),[gt,yt]=reactExports.useState([]),[Ut,Ft]=reactExports.useState([]),mt=Tt=>{Tt.forEach(Bt=>{const xt=ot.current.get(Bt);xt&&(st.current.remove(xt),ot.current.delete(Bt))})},vt=Tt=>{const Bt="Arial",Ct=Tt.text,kt=`30px ${Bt}`,Nt=document.createElement("canvas"),Ot=definedAndNotNull$1(Nt.getContext("2d"));Ot.font=kt;const Dt=Ot.measureText(Ct).width,Et=30;Nt.width=Dt,Nt.height=Et,Ot.fillStyle="#2d3855",Ot.fillRect(0,0,Dt,Et),Ot.font=kt,Ot.fillStyle="#bac4e2",Ot.fillText(Ct,0,30);const Pt=new Texture(Nt);return Pt.needsUpdate=!0,{spriteMaterial:new SpriteMaterial({map:Pt}),textHeight:Et,textWidth:Dt}},At=(Tt,Bt)=>{if(Tt.points.length<2)Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.scale.set(Tt.scale.x,Tt.scale.z,Tt.scale.y),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w);else{const xt=new Vector3(Tt.points[0].x,Tt.points[0].y,Tt.points[0].z),Ct=new Vector3(Tt.points[1].x,Tt.points[1].y,Tt.points[1].z),kt=new Vector3().subVectors(Ct,xt),Nt=kt.length(),Ot=kt.normalize();Bt.position.set(xt.x,xt.y,xt.z),Bt.scale.set(1,Nt,1),Bt.quaternion.setFromUnitVectors(new Vector3(0,1,0),Ot)}},Lt=Tt=>{if(Tt.type==="line_list"||Tt.type==="line_strip"){const Bt=new LineBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a,linewidth:1}),xt=new BufferGeometry().setFromPoints(Tt.points),Ct=Tt.type==="line_list"?new LineSegments(xt,Bt):new Line$1(xt,Bt);Tt.colors&&(Ct.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(kt=>[kt.r,kt.g,kt.b]).flat(),3)),Ct.material.vertexColors=!0),Ct.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Ct.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(Ct),ot.current.set(Tt.id,Ct)}else if(Tt.type==="text"){const{spriteMaterial:Bt,textHeight:xt,textWidth:Ct}=vt(Tt),kt=new Sprite(Bt),Nt=1;kt.scale.set(1/Nt,xt/Ct/Nt,1/Nt),kt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),st.current.add(kt),ot.current.set(Tt.id,kt)}else if(Tt.type==="arrow"){const Bt=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),xt=Tt.points.length<2?.01:Tt.scale.x,Ct=Tt.points.length<2?.05:Tt.scale.y,kt=Tt.points.length<2&&Tt.scale.z?.1:Tt.scale.z,Nt=new CylinderGeometry(xt,xt,.5,8,1,!1),Ot=new ConeGeometry(Ct,kt,8,1,!1);Ot.translate(0,.25,0);const Wt=mergeGeometries([Nt,Ot]),Dt=new Mesh(Wt,Bt);At(Tt,Dt),st.current.add(Dt),ot.current.set(Tt.id,Dt)}else if(Tt.type==="cylinder"){const Bt=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),xt=new CylinderGeometry(.1,.1,Tt.scale.z,8,1,!1),Ct=new Mesh(xt,Bt);Ct.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Ct.scale.set(Tt.scale.x,1,Tt.scale.y),Ct.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(Ct),ot.current.set(Tt.id,Ct)}else if(Tt.type==="points"){const Bt=Tt.points.map(Nt=>new Vector3(Nt.x,Nt.y,Nt.z)),xt=new PointsMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a,size:Tt.scale.x/10}),Ct=new BufferGeometry().setFromPoints(Bt),kt=new Points(Ct,xt);Tt.colors&&(kt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(Nt=>[Nt.r,Nt.g,Nt.b]).flat(),3)),kt.material.vertexColors=!0),kt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),kt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(kt),ot.current.set(Tt.id,kt)}else if(Tt.type==="triangle_list"){const Bt=Tt.points.map(Nt=>new Vector3(Nt.x,Nt.y,Nt.z)),xt=new MeshBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),Ct=new BufferGeometry().setFromPoints(Bt),kt=new Mesh(Ct,xt);Tt.colors&&(kt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(Nt=>[Nt.r,Nt.g,Nt.b,Nt.r,Nt.g,Nt.b,Nt.r,Nt.g,Nt.b]).flat(),3)),kt.material.vertexColors=!0),kt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),kt.scale.set(Tt.scale.x,Tt.scale.z,Tt.scale.y),kt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(kt),ot.current.set(Tt.id,kt)}},Rt=(Tt,Bt)=>{if(Tt.type==="line_list"||Tt.type==="line_strip")Bt.geometry.setFromPoints(Tt.points),Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new LineBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a});else if(Tt.type==="text"){const{spriteMaterial:xt}=vt(Tt);Bt.material=xt}else Tt.type==="arrow"&&Bt instanceof Mesh?(At(Tt,Bt),Bt.material=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a})):Tt.type==="cylinder"?(Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.scale.set(Tt.scale.x,Tt.scale.z,Tt.scale.y),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a})):Tt.type==="points"?(Bt.geometry.setFromPoints(Tt.points),Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new PointsMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a,size:Tt.scale.x/10}),Tt.colors&&(Bt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(xt=>[xt.r,xt.g,xt.b]).flat(),3)),Bt.material.vertexColors=!0)):Tt.type==="triangle_list"&&(Bt.geometry.setFromPoints(Tt.points),Bt.scale.set(Tt.scale.x,Tt.scale.y,Tt.scale.z),Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new MeshBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),Tt.colors&&(Bt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(xt=>[xt.r,xt.g,xt.b,xt.r,xt.g,xt.b,xt.r,xt.g,xt.b]).flat(),3)),Bt.material.vertexColors=!0))},St=Tt=>{Tt.forEach(Bt=>{if(Bt.dirty){const xt=ot.current.get(Bt.id);xt?Rt(Bt,xt):Lt(Bt),Bt.dirty=!1}})};return reactExports.useEffect(()=>{const Tt=at.subscribeToGeometry(definedAndNotNull$1(dt,"geometry layer requires device context").deviceId,et,Bt=>{if(typeof Bt=="symbol")return;rt.current||(rt.current=!0);const xt=Bt,Ct=at.getTimeMs();Math.abs(Ct-ut.current)>MINIMUM_TIME_DIFFERENCE&&(nt.current.deleteAll(),mt([...ot.current.keys()])),ut.current=Ct,nt.current.processMarkers(xt);const kt=nt.current.getAllGeometry(),Nt=kt.filter(Et=>Et.type==="cube"),Ot=kt.filter(Et=>Et.type==="cube_list"),Wt=kt.filter(Et=>Et.type==="sphere_list"),Dt=kt.filter(Et=>Et.type==="sphere");reactExports.startTransition(()=>{St(kt.filter(en=>en.type!=="cube"&&en.type!=="cube_list"&&en.type!=="sphere"&&en.type!=="sphere_list"));const Et=[...ot.current.keys()],Pt=new Set(kt.map(en=>en.id)),zt=Et.filter(en=>!Pt.has(en));mt(zt),ct(Nt),ft(Dt),yt(Ot),Ft(Wt)})});return()=>{Tt()}},[]),reactExports.useEffect(()=>{it.refresh()},[rt.current]),jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:[jsxs$2("group",{children:[jsx$2("primitive",{object:st.current}),ht.length>0?jsx$2(InstancedGeometry,{instances:ht,allowTransparency:tt}):null,pt.length>0?jsx$2(InstancedGeometry,{instances:pt,allowTransparency:tt}):null,gt.map(Tt=>jsx$2(InstancedGeometryFromList,{instances:Tt},Tt.id)),Ut.map(Tt=>jsx$2(InstancedGeometryFromList,{instances:Tt},Tt.id))]}),o]})}function Axis(){return jsxs$2(Fragment$2,{children:[jsx$2(Line,{points:[-1e3,0,0,1e3,0,0],color:FormantColors.red,opacity:.4,lineWidth:.8,transparent:!0,depthTest:!0,fog:!0}),jsx$2(Line,{points:[0,-1e3,0,0,1e3,0],color:FormantColors.green,opacity:.4,lineWidth:.8,depthTest:!0,fog:!0,transparent:!0}),jsx$2(Line,{points:[0,0,-1e3,0,0,1e3],color:FormantColors.blue,opacity:.4,lineWidth:.8,depthTest:!0,fog:!0,transparent:!0})]})}function roundRect(s,o,et,tt,nt,rt,it){s.fillStyle=it,s.beginPath(),s.moveTo(o+rt,et),s.lineTo(o+tt-rt,et),s.quadraticCurveTo(o+tt,et,o+tt,et+rt),s.lineTo(o+tt,et+nt-rt),s.quadraticCurveTo(o+tt,et+nt,o+tt-rt,et+nt),s.lineTo(o+rt,et+nt),s.quadraticCurveTo(o,et+nt,o,et+nt-rt),s.lineTo(o,et+rt),s.quadraticCurveTo(o,et,o+rt,et),s.closePath(),s.fill()}class Label extends Group{constructor(o,et=!0){super(),this.sizeAttenuate=et,this.currentText=o,this.update(),this.scale.set(.6,.6,.6)}sprite;texture;material;currentText;update(){this.sprite&&(this.dispose(),this.remove(this.sprite),this.sprite=void 0);const o="Inter",et=30,tt=this.currentText,nt=`${et}px ${o}`,rt=document.createElement("canvas"),it=definedAndNotNull$1(rt.getContext("2d"));it.font=nt;const st=it.measureText(tt).width,at=et*1.5,lt=20;rt.width=st+lt,rt.height=at+lt,it.globalAlpha=.5,roundRect(it,0,0,st+lt,at+lt,20,"#2B334D20"),it.globalAlpha=1,it.font=nt,it.fillStyle="#bac4e2",it.fillText(tt,0+10,et+10);const ut=new Texture(rt);this.texture=ut,ut.needsUpdate=!0;const dt=new SpriteMaterial({map:ut,depthTest:!1,sizeAttenuation:this.sizeAttenuate,transparent:!0});this.material=dt;const ht=new Sprite(dt),ct=(this.sizeAttenuate?.002:.001)*rt.width;ht.scale.set(ct,(at+lt)/(st+lt)*ct,ct),this.add(ht),this.sprite=ht,this.renderOrder=100}get text(){return this.currentText}set text(o){this.currentText!==o&&(this.currentText=o,this.update())}dispose(){this.texture&&(this.texture.dispose(),this.texture=void 0),this.material&&(this.material.dispose(),this.material=void 0)}}class AxisLabels extends Group{labelRadius=1;constructor(o){super();const et=new Label("x",!1);et.position.set(this.labelRadius,0,0),this.add(et);const tt=new Label("y",!1);if(tt.position.set(0,this.labelRadius,0),this.add(tt),!o){const nt=new Label("z",!1);nt.position.set(0,0,this.labelRadius),this.add(nt)}}}const range=(s,o)=>o<=s?[]:new Array(o-s).fill(0).map((et,tt)=>tt+s);function PolarGrid({majorCircleColor:s=new Color$2(3029076),minorCircleColor:o=new Color$2(3555424)}){const et=[];return range(-1,2).forEach((tt,nt)=>{range(nt===0?1:3,21).forEach(it=>{const ot=it===10,st=Math.pow(10,tt)*it;et.push(jsx$2(Line,{points:generatePoints(st,36),color:ot?o:s,lineWidth:ot?.7:.5,opacity:.5,dashed:!1,depthTest:!0},`line-${tt}-${it}`))})}),jsx$2("group",{renderOrder:1,children:et})}function generatePoints(s,o){return[...new EllipseCurve(0,0,s,s,0,2*Math.PI,!1,0).getPoints(o).map(nt=>new Vector3(nt.x,nt.y,0))]}function GroundLayer(s){const{children:o,flatAxis:et}=s,tt=reactExports.useMemo(()=>new AxisLabels(et||!1),[]),nt=reactExports.useMemo(()=>jsx$2(PolarGrid,{}),[]);return jsx$2("group",{name:"axis",renderOrder:1,children:jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:[jsx$2(Axis,{}),jsx$2("primitive",{object:tt}),nt,o]})})}async function loadTexture(s){const o=new Texture,tt=await(await fetch(s)).blob(),nt=new Image;return nt.src=URL.createObjectURL(tt),await new Promise((rt,it)=>{nt.onload=()=>{rt(!0)},nt.onerror=()=>{it(!1)}}),o.image=nt,URL.revokeObjectURL(nt.src),o.needsUpdate=!0,o}const getBoundingCoordinatesFromCenter=(s,o,et)=>{const tt={north:0,east:90,south:180,west:270},nt=6371e3,rt=et?[et[1]/(nt*Math.PI/180),et[0]/(nt*Math.PI/180*Math.cos(s[1]*Math.PI/180))]:[0,0],it=[s[0]+rt[1],s[1]+rt[0]],ot=es.computeDestinationPoint(it,o,tt.north,nt).latitude.toFixed(9),st=es.computeDestinationPoint(it,o,tt.south,nt).latitude.toFixed(9),at=es.computeDestinationPoint(it,o,tt.east,nt).longitude.toFixed(9),lt=es.computeDestinationPoint(it,o,tt.west,nt).longitude.toFixed(9);return{maxLatitude:ot,minLatitude:st,maxLongitude:at,minLongitude:lt}},getGridCoordinates=(s,o)=>{const et=Math.floor(s/o),tt=-(s/2)+o/2,nt=-(s/2)+o/2,rt=[];for(let it=0;it>2]|=s[tt]<>2]|=et<>2]|=(192|et>>6)<>2]|=(128|et&63)<=57344?(it[nt>>2]|=(224|et>>12)<>2]|=(128|et>>6&63)<>2]|=(128|et&63)<>2]|=(240|et>>18)<>2]|=(128|et>>12&63)<>2]|=(128|et>>6&63)<>2]|=(128|et&63)<=64?(this.block=it[16],this.start=nt-64,this.hash(),this.hashed=!0):this.start=nt}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha1.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var s=this.blocks,o=this.lastByteIndex;s[16]=this.block,s[o>>2]|=EXTRA[o&3],this.block=s[16],o>=56&&(this.hashed||this.hash(),s[0]=this.block,s[16]=s[1]=s[2]=s[3]=s[4]=s[5]=s[6]=s[7]=s[8]=s[9]=s[10]=s[11]=s[12]=s[13]=s[14]=s[15]=0),s[14]=this.hBytes<<3|this.bytes>>>29,s[15]=this.bytes<<3,this.hash()}},Sha1.prototype.hash=function(){var s=this.h0,o=this.h1,et=this.h2,tt=this.h3,nt=this.h4,rt,it,ot,st=this.blocks;for(it=16;it<80;++it)ot=st[it-3]^st[it-8]^st[it-14]^st[it-16],st[it]=ot<<1|ot>>>31;for(it=0;it<20;it+=5)rt=o&et|~o&tt,ot=s<<5|s>>>27,nt=ot+rt+nt+1518500249+st[it]<<0,o=o<<30|o>>>2,rt=s&o|~s&et,ot=nt<<5|nt>>>27,tt=ot+rt+tt+1518500249+st[it+1]<<0,s=s<<30|s>>>2,rt=nt&s|~nt&o,ot=tt<<5|tt>>>27,et=ot+rt+et+1518500249+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt&nt|~tt&s,ot=et<<5|et>>>27,o=ot+rt+o+1518500249+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et&tt|~et&nt,ot=o<<5|o>>>27,s=ot+rt+s+1518500249+st[it+4]<<0,et=et<<30|et>>>2;for(;it<40;it+=5)rt=o^et^tt,ot=s<<5|s>>>27,nt=ot+rt+nt+1859775393+st[it]<<0,o=o<<30|o>>>2,rt=s^o^et,ot=nt<<5|nt>>>27,tt=ot+rt+tt+1859775393+st[it+1]<<0,s=s<<30|s>>>2,rt=nt^s^o,ot=tt<<5|tt>>>27,et=ot+rt+et+1859775393+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt^nt^s,ot=et<<5|et>>>27,o=ot+rt+o+1859775393+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et^tt^nt,ot=o<<5|o>>>27,s=ot+rt+s+1859775393+st[it+4]<<0,et=et<<30|et>>>2;for(;it<60;it+=5)rt=o&et|o&tt|et&tt,ot=s<<5|s>>>27,nt=ot+rt+nt-1894007588+st[it]<<0,o=o<<30|o>>>2,rt=s&o|s&et|o&et,ot=nt<<5|nt>>>27,tt=ot+rt+tt-1894007588+st[it+1]<<0,s=s<<30|s>>>2,rt=nt&s|nt&o|s&o,ot=tt<<5|tt>>>27,et=ot+rt+et-1894007588+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt&nt|tt&s|nt&s,ot=et<<5|et>>>27,o=ot+rt+o-1894007588+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et&tt|et&nt|tt&nt,ot=o<<5|o>>>27,s=ot+rt+s-1894007588+st[it+4]<<0,et=et<<30|et>>>2;for(;it<80;it+=5)rt=o^et^tt,ot=s<<5|s>>>27,nt=ot+rt+nt-899497514+st[it]<<0,o=o<<30|o>>>2,rt=s^o^et,ot=nt<<5|nt>>>27,tt=ot+rt+tt-899497514+st[it+1]<<0,s=s<<30|s>>>2,rt=nt^s^o,ot=tt<<5|tt>>>27,et=ot+rt+et-899497514+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt^nt^s,ot=et<<5|et>>>27,o=ot+rt+o-899497514+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et^tt^nt,ot=o<<5|o>>>27,s=ot+rt+s-899497514+st[it+4]<<0,et=et<<30|et>>>2;this.h0=this.h0+s<<0,this.h1=this.h1+o<<0,this.h2=this.h2+et<<0,this.h3=this.h3+tt<<0,this.h4=this.h4+nt<<0},Sha1.prototype.hex=function(){this.finalize();var s=this.h0,o=this.h1,et=this.h2,tt=this.h3,nt=this.h4;return HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15]+HEX_CHARS[et>>28&15]+HEX_CHARS[et>>24&15]+HEX_CHARS[et>>20&15]+HEX_CHARS[et>>16&15]+HEX_CHARS[et>>12&15]+HEX_CHARS[et>>8&15]+HEX_CHARS[et>>4&15]+HEX_CHARS[et&15]+HEX_CHARS[tt>>28&15]+HEX_CHARS[tt>>24&15]+HEX_CHARS[tt>>20&15]+HEX_CHARS[tt>>16&15]+HEX_CHARS[tt>>12&15]+HEX_CHARS[tt>>8&15]+HEX_CHARS[tt>>4&15]+HEX_CHARS[tt&15]+HEX_CHARS[nt>>28&15]+HEX_CHARS[nt>>24&15]+HEX_CHARS[nt>>20&15]+HEX_CHARS[nt>>16&15]+HEX_CHARS[nt>>12&15]+HEX_CHARS[nt>>8&15]+HEX_CHARS[nt>>4&15]+HEX_CHARS[nt&15]},Sha1.prototype.toString=Sha1.prototype.hex,Sha1.prototype.digest=function(){this.finalize();var s=this.h0,o=this.h1,et=this.h2,tt=this.h3,nt=this.h4;return[s>>24&255,s>>16&255,s>>8&255,s&255,o>>24&255,o>>16&255,o>>8&255,o&255,et>>24&255,et>>16&255,et>>8&255,et&255,tt>>24&255,tt>>16&255,tt>>8&255,tt&255,nt>>24&255,nt>>16&255,nt>>8&255,nt&255]},Sha1.prototype.array=Sha1.prototype.digest,Sha1.prototype.arrayBuffer=function(){this.finalize();var s=new ArrayBuffer(20),o=new DataView(s);return o.setUint32(0,this.h0),o.setUint32(4,this.h1),o.setUint32(8,this.h2),o.setUint32(12,this.h3),o.setUint32(16,this.h4),s};var exports=createMethod();COMMON_JS?module.exports=exports:root.sha1=exports})()})(sha1$1);var sha1Exports=sha1$1.exports,md5=md5Exports,sha1=sha1Exports,HEX_DIGITS="0123456789abcdef".split(""),UUID_LENGTH=36,UUID_REGEXP=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i,HEX_TO_BYTE_MAP=function(){for(var s={},o=0;o<256;o++){var et=o.toString(16);s[et.length===1?"0"+et:et]=o}return s}(),uint8ToHex=function(s){var o=s>>4,et=s-(o<<4);return HEX_DIGITS[o]+HEX_DIGITS[et]},uint8ArrayToHex=function(s){for(var o="",et=0;etnew Vector3(nt,rt,it),tt=({x:nt,y:rt,z:it,w:ot})=>new Quaternion(nt,rt,it,ot);return new Matrix4().multiply(new Matrix4().setPosition(et(s))).multiply(new Matrix4().makeRotationFromQuaternion(tt(o)))}class PathGeometry extends BufferGeometry{constructor(o,et,tt=200){super();const nt=tt*10,rt=4,it=nt+1,ot=rt+1,st=nt*rt*2,at=it*ot,lt=new Uint32Array(st*3),ut=new Float32Array(at*3);var dt=new CatmullRomCurve3(o);const ht=dt.getPoints(nt);let ct=0;for(var pt=0;pt(s.STATIC="Static",s.DYNAMIC="Dynamic",s))(PathType||{}),PROPERTY_TYPE=(s=>(s.FLOAT="Float",s.INTEGER="Integer",s.BOOLEAN="Boolean",s.STRING="String",s.ENUM="Enum",s.MEATADATA="Metadata",s))(PROPERTY_TYPE||{}),SENDING_STATUS=(s=>(s.NONE="not sent yet",s.WAITING="waiting",s.SUCCESS="sucess",s.FAIL="fail",s))(SENDING_STATUS||{});extend({PathGeometry});const Path=({points:s,color:o="#0000ff",pathOpacity:et=50,pathWidth:tt=.25,pathType:nt=PathType.STATIC,pathFlatten:rt=!1,renderOrder:it=0})=>{const ot=reactExports.useRef(null);reactExports.useEffect(()=>{if(!ot.current)return;const at=ot.current;at.matrixAutoUpdate=!1},[]);const st=rt?s.map(at=>at.setZ(0)):s;return jsx$2("group",{ref:ot,children:s.length>1&&jsx$2(Fragment$2,{children:nt===PathType.STATIC?jsxs$2("mesh",{renderOrder:it,children:[jsx$2("pathGeometry",{args:[st,tt,s.length]}),jsx$2("meshBasicMaterial",{transparent:!0,opacity:et/100,color:o,side:DoubleSide,depthWrite:!1})]}):jsx$2(Line,{points:st,lineWidth:18,color:o,worldUnits:!1,renderOrder:it})})})},millisecond$1=1,second$1=1e3,minute$1=60*second$1,hour$1=60*minute$1,day$1=24*hour$1,week$1=7*day$1,month$1=30*day$1,year$1=365*day$1,duration$1={millisecond:millisecond$1,second:second$1,minute:minute$1,hour:hour$1,day:day$1,week:week$1,month:month$1,year:year$1};function findPathToName(s,o,et){const tt=et||[];for(let nt=0;nt0){const it=findPathToName(rt,o,[...tt,nt]);if(it.length>0)return it}}return[]}function buildTransformList(s,o,et){const tt=et||[],nt=o.shift();if(nt===void 0)return tt;const rt=s[nt],it=defined$1(rt.transform).translation,{rotation:ot}=defined$1(rt.transform);return tt.push({pos:new Vector3(it.x,it.y,it.z),rotation:new Quaternion(ot.x,ot.y,ot.z,ot.w)}),rt.children?buildTransformList(rt.children,o,tt):tt}function DataVisualizationLayer(s){const[o,et]=reactExports.useState(),[tt,nt]=reactExports.useState(void 0),[rt,it]=reactExports.useContext(UniverseDataContext),{register:ot,layers:st,debug:at}=reactExports.useContext(UIDataContext),lt=reactExports.useContext(LayerContext);let ut;lt&&(ut=lt.deviceId);const{children:dt,positioning:ht,visible:ct,name:pt,id:ft,treePath:gt,type:yt,iconUrl:Ut,trailEnabled:Ft,trailFlatten:mt,trailOpacity:vt,trailSeconds:At=15,trailType:Lt,trailWidth:Rt}=s,[St,Tt]=reactExports.useState([]),Bt=reactExports.useRef(null),xt=reactExports.useRef(at?new Box3:null),Ct=reactExports.useRef("yellow");return useHelper(xt,Box3Helper,Ct.current),reactExports.useEffect(()=>{const kt=ft||getUuidByString(JSON.stringify({name:pt,type:yt,treePath:gt})),Nt=ot(pt||"Layer",kt,yt||LayerType.OTHER,Ut,gt,ct);nt(Nt)},[]),reactExports.useEffect(()=>{const kt=ht||PositioningBuilder.fixed(0,0,0);if(Bt.current){const Nt=Bt.current;if(o&&(o(),et(void 0)),kt.type==="cartesian"){const{x:Ot,y:Jt,z:Dt}=kt;Nt.position.set(Ot,Jt,Dt)}else if(kt.type==="gps"){const Ot=rt.subscribeToLocation(defined$1(ut,"gps positioning requires a device id"),DataSourceBuilder.telemetry(kt.stream,"location"),Jt=>{if(typeof Jt=="symbol")return;const Dt=Jt,Et={longitude:Dt.longitude,latitude:Dt.latitude},Pt={longitude:kt.relativeToLongitude,latitude:Dt.latitude};let zt=es.getDistance(Et,Pt,1e-6);const en={longitude:Dt.longitude,latitude:Dt.latitude},Kt={longitude:Dt.longitude,latitude:kt.relativeToLatitude};let nn=es.getDistance(en,Kt,1e-6);Dt.latitudeOt)}else if(kt.type==="odometry"){let Ot,Jt;if(kt.rtcStream)Ot=DataSourceBuilder.realtime(kt.rtcStream,"json"),Jt="rtc";else if(kt.stream)Ot=DataSourceBuilder.telemetry(kt.stream,void 0,kt.useLatestDataPoint||!1),Jt="telemetry";else throw new Error("invalid odometry positioning stream type");const Dt=(Jt==="rtc"?it:rt).subscribeToOdometry(defined$1(ut,"odometry positioning requires a device id"),Ot,Et=>{if(typeof Et=="symbol")return;const Pt=Et,zt=Pt.pose.translation,en=Pt.pose.rotation;if(Pt.trail&&Ft){const Kt=Pt.trail.map(nn=>[nn[0],new Vector3(nn[1].translation.x,nn[1].translation.y,nn[1].translation.z)]);Tt(Kt)}else if(Ft){const Kt=[rt.getTimeMs(),new Vector3(zt.x,zt.y,zt.z)];Tt(nn=>[...nn.filter(Zt=>rt.getTimeMs()-Zt[0]Dt)}else if(kt.type==="transform tree"){const Ot=rt.subscribeToTransformTree(defined$1(ut,"transform tree positioning requires a device id"),DataSourceBuilder.telemetry(kt.stream,"transform tree"),Jt=>{if(typeof Jt=="symbol")return;fetch(defined$1(Jt.url)).then(Et=>Et.json()).then(Et=>{const Pt=findPathToName([Et],defined$1(kt.end)),Kt=buildTransformList([Et],Pt).map(nn=>new Matrix4().compose(new Vector3(nn.pos.x,nn.pos.y,nn.pos.z),nn.rotation,new Vector3(1,1,1))).reduce((nn,Zt)=>nn.multiply(Zt),new Matrix4);Nt.matrix=Kt,Nt.matrixAutoUpdate=!1}).catch(Et=>{throw Et})});et(()=>Ot)}}return()=>{o&&(o(),et(void 0))}},[Bt,ht,tt]),useFrame(()=>{if(Bt.current&&at){const kt=xt.current,Nt=Bt.current;kt.setFromObject(Nt)}}),reactExports.useEffect(()=>{tt&&Bt.current&&nt({...tt,visible:Bt.current.visible})},[Bt.current?.visible]),jsxs$2(Fragment$2,{children:[jsx$2("group",{ref:Bt,visible:tt?tt.visible:!0,name:tt?tt.id:"",userData:{name:tt?.name},children:dt}),tt&&tt.visible&&jsx$2(Path,{points:St.map(kt=>kt[1]),color:FormantColors.blue,pathOpacity:vt,pathWidth:Rt,pathType:Lt,pathFlatten:mt,renderOrder:2})]})}const EmptyLayer=s=>{const{children:o,name:et,id:tt,treePath:nt,type:rt}=s;return jsx$2(DataVisualizationLayer,{...s,type:LayerType.CONTAINER,children:o})};function mergeGeometries(s,o=!1){const et=s[0].index!==null,tt=new Set(Object.keys(s[0].attributes)),nt=new Set(Object.keys(s[0].morphAttributes)),rt={},it={},ot=s[0].morphTargetsRelative,st=new BufferGeometry;let at=0;for(let lt=0;lt{let tt=this.geometry.get(et.ns);tt===void 0&&(tt=new Map,this.geometry.set(et.ns,tt));const{action:nt,type:rt}=et,it=nt===2,ot=nt===3;if(ot)this.geometry=new Map;else{et.id===void 0&&(et.id=0),reifyVector3(et.pose.position),reifyQuaternion(et.pose.orientation),reifyVector3(et.scale),reifyColor(et.color),et.points&&et.points.forEach(lt=>{reifyVector3(lt)});const at={0:"arrow",1:"cube",2:"sphere",3:"cylinder",4:"line_strip",5:"line_list",6:"cube_list",7:"sphere_list",8:"points",9:"text",10:"mesh_resource",11:"triangle_list"}[rt];if(at==="mesh_resource"){console.warn("Mesh resource markers are not supported");return}if(at&&!ot){const lt={id:`${et.ns}_${et.id}`,type:at,position:et.pose.position,rotation:et.pose.orientation,scale:et.scale,color:et.color,dirty:!0};et.points&&(lt.points=et.points),et.text&&(lt.text=et.text),et.colors&&(lt.colors=et.colors),tt.set(et.id,lt),it&&tt.delete(et.id)}}})}getAllGeometry(){const o=[];return this.geometry.forEach(et=>{et.forEach(tt=>{o.push(tt)})}),o}}const MINIMUM_TIME_DIFFERENCE=12*duration$1.hour;function InstancedGeometry({instances:s,allowTransparency:o}){const et=reactExports.useRef(null),tt=reactExports.useRef(new Box3),nt=s[0].type,rt=reactExports.useRef(new Map),it=reactExports.useMemo(()=>new Object3D,[]);return reactExports.useLayoutEffect(()=>{et.current&&(tt.current.setFromCenterAndSize(new Vector3(s[0].position.x,s[0].position.y,s[0].position.z),new Vector3(.1,.1,.1)),et.current&&(s.forEach((ot,st)=>{const{position:at,rotation:lt,scale:ut,color:dt}=ot,ht=getUuidByString(`${ot.id}-${at.x}${at.y}${at.z}${lt.x}${lt.y}${lt.z}${lt.w}${ut.x}${ut.y}${ut.z}`);let ct=rt.current.get(ht);ct||(it.position.set(at.x,at.y,at.z),it.quaternion.set(lt.x,lt.y,lt.z,lt.w),it.scale.set(ut.x,ut.y,ut.z),tt.current.expandByPoint(it.position),it.updateMatrix(),ct=it.matrix.clone(),rt.current.set(ht,it.matrix.clone())),et.current.setMatrixAt(st,ct),et.current.setColorAt(st,new Color$2(dt.r,dt.g,dt.b))}),et.current.up=new Vector3(0,0,1),et.current.instanceMatrix.needsUpdate=!0,et.current.instanceColor&&(et.current.instanceColor.needsUpdate=!0)))},[et,s]),o?jsxs$2("group",{children:[s&&nt==="sphere"?s.map(ot=>jsx$2(Sphere,{args:[.5,32,16],scale:[ot.scale.x,ot.scale.y,ot.scale.z],position:[ot.position.x,ot.position.y,ot.position.z],quaternion:[ot.rotation.x,ot.rotation.y,ot.rotation.z,ot.rotation.w],children:jsx$2("meshLambertMaterial",{attach:"material",color:[ot.color.r,ot.color.g,ot.color.b],opacity:ot.color.a,transparent:ot.color.a<1})},ot.id)):null,s&&nt==="cube"?s.map(ot=>jsx$2(Box,{args:[.9,.9,.9],scale:[ot.scale.x,ot.scale.y,ot.scale.z],position:[ot.position.x,ot.position.y,ot.position.z],quaternion:[ot.rotation.x,ot.rotation.y,ot.rotation.z,ot.rotation.w],children:jsx$2("meshLambertMaterial",{attach:"material",color:[ot.color.r,ot.color.g,ot.color.b],opacity:ot.color.a,transparent:ot.color.a<1})},ot.id)):null]}):jsxs$2(Fragment$2,{children:[jsxs$2("instancedMesh",{ref:et,args:[null,null,s.length],up:new Vector3(0,0,1),children:[nt==="sphere"?jsx$2("sphereGeometry",{attach:"geometry",args:[.5,32,16]}):null,nt==="cube"?jsx$2("boxGeometry",{attach:"geometry",args:[.9,.9,.9]}):null,jsx$2("meshLambertMaterial",{attach:"material"})]}),jsx$2("box3Helper",{args:[tt.current],visible:!1})]})}function InstancedGeometryFromList({instances:s}){if(!s.points)return null;const o=reactExports.useRef(null),et=reactExports.useRef(new Box3),tt=s.type,nt=reactExports.useRef(new Map),rt=reactExports.useMemo(()=>new Object3D,[]);return reactExports.useLayoutEffect(()=>{if(s.points!==void 0&&o.current){et.current.setFromCenterAndSize(new Vector3(s.position.x,s.position.y,s.position.z),new Vector3(.1,.1,.1));const it=s.points,ot=s.position,st=s.colors,at=s.scale;it.map((lt,ut)=>{const dt=getUuidByString(`${ut}-${lt.x}${lt.y}${lt.z}`);let ht=nt.current.get(dt);ht||(rt.position.set(ot.x+lt.x,ot.y+lt.y,ot.z+lt.z),rt.scale.set(at.x,at.y,at.z),rt.updateMatrix(),ht=rt.matrix.clone(),nt.current.set(dt,rt.matrix.clone())),et.current.expandByPoint(rt.position),o.current&&(o.current.up=new Vector3(0,0,1),o.current.setMatrixAt(ut,ht),st&&st[ut]?o.current.setColorAt(ut,new Color$2(st[ut].r,st[ut].g,st[ut].b)):o.current.setColorAt(ut,new Color$2(s.color.r,s.color.g,s.color.b)))}),o.current&&(o.current.instanceMatrix.needsUpdate=!0,o.current.instanceColor&&(o.current.instanceColor.needsUpdate=!0))}},[o,s]),jsxs$2(Fragment$2,{children:[jsxs$2("instancedMesh",{ref:o,args:[null,null,s.points.length],up:new Vector3(0,0,1),children:[tt==="sphere_list"?jsx$2("sphereGeometry",{attach:"geometry",args:[.5,32,16]}):null,tt==="cube_list"?jsx$2("boxGeometry",{attach:"geometry",args:[.9,.9,.9]}):null,jsx$2("meshLambertMaterial",{attach:"material"})]}),jsx$2("box3Helper",{args:[et.current],visible:!1})]})}function GeometryLayer(s){const{children:o,dataSource:et,allowTransparency:tt}=s,nt=reactExports.useRef(new GeometryWorld),rt=reactExports.useRef(!1),it=useBounds(),ot=reactExports.useRef(new Map),st=reactExports.useRef(new Object3D),[at,lt]=reactExports.useContext(UniverseDataContext),ut=reactExports.useRef(at.getTimeMs()),dt=reactExports.useContext(LayerContext),[ht,ct]=reactExports.useState([]),[pt,ft]=reactExports.useState([]),[gt,yt]=reactExports.useState([]),[Ut,Ft]=reactExports.useState([]),mt=Tt=>{Tt.forEach(Bt=>{const xt=ot.current.get(Bt);xt&&(st.current.remove(xt),ot.current.delete(Bt))})},vt=Tt=>{const Bt="Arial",Ct=Tt.text,kt=`30px ${Bt}`,Nt=document.createElement("canvas"),Ot=definedAndNotNull$1(Nt.getContext("2d"));Ot.font=kt;const Dt=Ot.measureText(Ct).width,Et=30;Nt.width=Dt,Nt.height=Et,Ot.fillStyle="#2d3855",Ot.fillRect(0,0,Dt,Et),Ot.font=kt,Ot.fillStyle="#bac4e2",Ot.fillText(Ct,0,30);const Pt=new Texture(Nt);return Pt.needsUpdate=!0,{spriteMaterial:new SpriteMaterial({map:Pt}),textHeight:Et,textWidth:Dt}},At=(Tt,Bt)=>{if(Tt.points.length<2)Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.scale.set(Tt.scale.x,Tt.scale.z,Tt.scale.y),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w);else{const xt=new Vector3(Tt.points[0].x,Tt.points[0].y,Tt.points[0].z),Ct=new Vector3(Tt.points[1].x,Tt.points[1].y,Tt.points[1].z),kt=new Vector3().subVectors(Ct,xt),Nt=kt.length(),Ot=kt.normalize();Bt.position.set(xt.x,xt.y,xt.z),Bt.scale.set(1,Nt,1),Bt.quaternion.setFromUnitVectors(new Vector3(0,1,0),Ot)}},Lt=Tt=>{if(Tt.type==="line_list"||Tt.type==="line_strip"){const Bt=new LineBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a,linewidth:1}),xt=new BufferGeometry().setFromPoints(Tt.points),Ct=Tt.type==="line_list"?new LineSegments(xt,Bt):new Line$1(xt,Bt);Tt.colors&&(Ct.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(kt=>[kt.r,kt.g,kt.b]).flat(),3)),Ct.material.vertexColors=!0),Ct.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Ct.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(Ct),ot.current.set(Tt.id,Ct)}else if(Tt.type==="text"){const{spriteMaterial:Bt,textHeight:xt,textWidth:Ct}=vt(Tt),kt=new Sprite(Bt),Nt=1;kt.scale.set(1/Nt,xt/Ct/Nt,1/Nt),kt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),st.current.add(kt),ot.current.set(Tt.id,kt)}else if(Tt.type==="arrow"){const Bt=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),xt=Tt.points.length<2?.01:Tt.scale.x,Ct=Tt.points.length<2?.05:Tt.scale.y,kt=Tt.points.length<2&&Tt.scale.z?.1:Tt.scale.z,Nt=new CylinderGeometry(xt,xt,.5,8,1,!1),Ot=new ConeGeometry(Ct,kt,8,1,!1);Ot.translate(0,.25,0);const Jt=mergeGeometries([Nt,Ot]),Dt=new Mesh(Jt,Bt);At(Tt,Dt),st.current.add(Dt),ot.current.set(Tt.id,Dt)}else if(Tt.type==="cylinder"){const Bt=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),xt=new CylinderGeometry(.1,.1,Tt.scale.z,8,1,!1),Ct=new Mesh(xt,Bt);Ct.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Ct.scale.set(Tt.scale.x,1,Tt.scale.y),Ct.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(Ct),ot.current.set(Tt.id,Ct)}else if(Tt.type==="points"){const Bt=Tt.points.map(Nt=>new Vector3(Nt.x,Nt.y,Nt.z)),xt=new PointsMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a,size:Tt.scale.x/10}),Ct=new BufferGeometry().setFromPoints(Bt),kt=new Points(Ct,xt);Tt.colors&&(kt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(Nt=>[Nt.r,Nt.g,Nt.b]).flat(),3)),kt.material.vertexColors=!0),kt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),kt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(kt),ot.current.set(Tt.id,kt)}else if(Tt.type==="triangle_list"){const Bt=Tt.points.map(Nt=>new Vector3(Nt.x,Nt.y,Nt.z)),xt=new MeshBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),Ct=new BufferGeometry().setFromPoints(Bt),kt=new Mesh(Ct,xt);Tt.colors&&(kt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(Nt=>[Nt.r,Nt.g,Nt.b,Nt.r,Nt.g,Nt.b,Nt.r,Nt.g,Nt.b]).flat(),3)),kt.material.vertexColors=!0),kt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),kt.scale.set(Tt.scale.x,Tt.scale.z,Tt.scale.y),kt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(kt),ot.current.set(Tt.id,kt)}},Rt=(Tt,Bt)=>{if(Tt.type==="line_list"||Tt.type==="line_strip")Bt.geometry.setFromPoints(Tt.points),Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new LineBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a});else if(Tt.type==="text"){const{spriteMaterial:xt}=vt(Tt);Bt.material=xt}else Tt.type==="arrow"&&Bt instanceof Mesh?(At(Tt,Bt),Bt.material=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a})):Tt.type==="cylinder"?(Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.scale.set(Tt.scale.x,Tt.scale.z,Tt.scale.y),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a})):Tt.type==="points"?(Bt.geometry.setFromPoints(Tt.points),Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new PointsMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a,size:Tt.scale.x/10}),Tt.colors&&(Bt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(xt=>[xt.r,xt.g,xt.b]).flat(),3)),Bt.material.vertexColors=!0)):Tt.type==="triangle_list"&&(Bt.geometry.setFromPoints(Tt.points),Bt.scale.set(Tt.scale.x,Tt.scale.y,Tt.scale.z),Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new MeshBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),Tt.colors&&(Bt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(xt=>[xt.r,xt.g,xt.b,xt.r,xt.g,xt.b,xt.r,xt.g,xt.b]).flat(),3)),Bt.material.vertexColors=!0))},St=Tt=>{Tt.forEach(Bt=>{if(Bt.dirty){const xt=ot.current.get(Bt.id);xt?Rt(Bt,xt):Lt(Bt),Bt.dirty=!1}})};return reactExports.useEffect(()=>{const Tt=at.subscribeToGeometry(definedAndNotNull$1(dt,"geometry layer requires device context").deviceId,et,Bt=>{if(typeof Bt=="symbol")return;rt.current||(rt.current=!0);const xt=Bt,Ct=at.getTimeMs();Math.abs(Ct-ut.current)>MINIMUM_TIME_DIFFERENCE&&(nt.current.deleteAll(),mt([...ot.current.keys()])),ut.current=Ct,nt.current.processMarkers(xt);const kt=nt.current.getAllGeometry(),Nt=kt.filter(Et=>Et.type==="cube"),Ot=kt.filter(Et=>Et.type==="cube_list"),Jt=kt.filter(Et=>Et.type==="sphere_list"),Dt=kt.filter(Et=>Et.type==="sphere");reactExports.startTransition(()=>{St(kt.filter(en=>en.type!=="cube"&&en.type!=="cube_list"&&en.type!=="sphere"&&en.type!=="sphere_list"));const Et=[...ot.current.keys()],Pt=new Set(kt.map(en=>en.id)),zt=Et.filter(en=>!Pt.has(en));mt(zt),ct(Nt),ft(Dt),yt(Ot),Ft(Jt)})});return()=>{Tt()}},[]),reactExports.useEffect(()=>{it.refresh()},[rt.current]),jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:[jsxs$2("group",{children:[jsx$2("primitive",{object:st.current}),ht.length>0?jsx$2(InstancedGeometry,{instances:ht,allowTransparency:tt}):null,pt.length>0?jsx$2(InstancedGeometry,{instances:pt,allowTransparency:tt}):null,gt.map(Tt=>jsx$2(InstancedGeometryFromList,{instances:Tt},Tt.id)),Ut.map(Tt=>jsx$2(InstancedGeometryFromList,{instances:Tt},Tt.id))]}),o]})}function Axis(){return jsxs$2(Fragment$2,{children:[jsx$2(Line,{points:[-1e3,0,0,1e3,0,0],color:FormantColors.red,opacity:.4,lineWidth:.8,transparent:!0,depthTest:!0,fog:!0}),jsx$2(Line,{points:[0,-1e3,0,0,1e3,0],color:FormantColors.green,opacity:.4,lineWidth:.8,depthTest:!0,fog:!0,transparent:!0}),jsx$2(Line,{points:[0,0,-1e3,0,0,1e3],color:FormantColors.blue,opacity:.4,lineWidth:.8,depthTest:!0,fog:!0,transparent:!0})]})}function roundRect(s,o,et,tt,nt,rt,it){s.fillStyle=it,s.beginPath(),s.moveTo(o+rt,et),s.lineTo(o+tt-rt,et),s.quadraticCurveTo(o+tt,et,o+tt,et+rt),s.lineTo(o+tt,et+nt-rt),s.quadraticCurveTo(o+tt,et+nt,o+tt-rt,et+nt),s.lineTo(o+rt,et+nt),s.quadraticCurveTo(o,et+nt,o,et+nt-rt),s.lineTo(o,et+rt),s.quadraticCurveTo(o,et,o+rt,et),s.closePath(),s.fill()}class Label extends Group{constructor(o,et=!0){super(),this.sizeAttenuate=et,this.currentText=o,this.update(),this.scale.set(.6,.6,.6)}sprite;texture;material;currentText;update(){this.sprite&&(this.dispose(),this.remove(this.sprite),this.sprite=void 0);const o="Inter",et=30,tt=this.currentText,nt=`${et}px ${o}`,rt=document.createElement("canvas"),it=definedAndNotNull$1(rt.getContext("2d"));it.font=nt;const st=it.measureText(tt).width,at=et*1.5,lt=20;rt.width=st+lt,rt.height=at+lt,it.globalAlpha=.5,roundRect(it,0,0,st+lt,at+lt,20,"#2B334D20"),it.globalAlpha=1,it.font=nt,it.fillStyle="#bac4e2",it.fillText(tt,0+10,et+10);const ut=new Texture(rt);this.texture=ut,ut.needsUpdate=!0;const dt=new SpriteMaterial({map:ut,depthTest:!1,sizeAttenuation:this.sizeAttenuate,transparent:!0});this.material=dt;const ht=new Sprite(dt),ct=(this.sizeAttenuate?.002:.001)*rt.width;ht.scale.set(ct,(at+lt)/(st+lt)*ct,ct),this.add(ht),this.sprite=ht,this.renderOrder=100}get text(){return this.currentText}set text(o){this.currentText!==o&&(this.currentText=o,this.update())}dispose(){this.texture&&(this.texture.dispose(),this.texture=void 0),this.material&&(this.material.dispose(),this.material=void 0)}}class AxisLabels extends Group{labelRadius=1;constructor(o){super();const et=new Label("x",!1);et.position.set(this.labelRadius,0,0),this.add(et);const tt=new Label("y",!1);if(tt.position.set(0,this.labelRadius,0),this.add(tt),!o){const nt=new Label("z",!1);nt.position.set(0,0,this.labelRadius),this.add(nt)}}}const range=(s,o)=>o<=s?[]:new Array(o-s).fill(0).map((et,tt)=>tt+s);function PolarGrid({majorCircleColor:s=new Color$2(3029076),minorCircleColor:o=new Color$2(3555424)}){const et=[];return range(-1,2).forEach((tt,nt)=>{range(nt===0?1:3,21).forEach(it=>{const ot=it===10,st=Math.pow(10,tt)*it;et.push(jsx$2(Line,{points:generatePoints(st,36),color:ot?o:s,lineWidth:ot?.7:.5,opacity:.5,dashed:!1,depthTest:!0},`line-${tt}-${it}`))})}),jsx$2("group",{renderOrder:1,children:et})}function generatePoints(s,o){return[...new EllipseCurve(0,0,s,s,0,2*Math.PI,!1,0).getPoints(o).map(nt=>new Vector3(nt.x,nt.y,0))]}function GroundLayer(s){const{children:o,flatAxis:et}=s,tt=reactExports.useMemo(()=>new AxisLabels(et||!1),[]),nt=reactExports.useMemo(()=>jsx$2(PolarGrid,{}),[]);return jsx$2("group",{name:"axis",renderOrder:1,children:jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:[jsx$2(Axis,{}),jsx$2("primitive",{object:tt}),nt,o]})})}async function loadTexture(s){const o=new Texture,tt=await(await fetch(s)).blob(),nt=new Image;return nt.src=URL.createObjectURL(tt),await new Promise((rt,it)=>{nt.onload=()=>{rt(!0)},nt.onerror=()=>{it(!1)}}),o.image=nt,URL.revokeObjectURL(nt.src),o.needsUpdate=!0,o}const getBoundingCoordinatesFromCenter=(s,o,et)=>{const tt={north:0,east:90,south:180,west:270},nt=6371e3,rt=et?[et[1]/(nt*Math.PI/180),et[0]/(nt*Math.PI/180*Math.cos(s[1]*Math.PI/180))]:[0,0],it=[s[0]+rt[1],s[1]+rt[0]],ot=es.computeDestinationPoint(it,o,tt.north,nt).latitude.toFixed(9),st=es.computeDestinationPoint(it,o,tt.south,nt).latitude.toFixed(9),at=es.computeDestinationPoint(it,o,tt.east,nt).longitude.toFixed(9),lt=es.computeDestinationPoint(it,o,tt.west,nt).longitude.toFixed(9);return{maxLatitude:ot,minLatitude:st,maxLongitude:at,minLongitude:lt}},getGridCoordinates=(s,o)=>{const et=Math.floor(s/o),tt=-(s/2)+o/2,nt=-(s/2)+o/2,rt=[];for(let it=0;it{(async()=>{if(lt===void 0)return;ft&&ft.refresh().clip().fit();const Bt=lt,xt={username:"mapbox",styleId:mapStyles[rt],width:1280,height:1280,bearing:0,accessToken:URL_SCOPED_TOKEN},Ct=100,kt=(Wt,Dt,Et)=>{const{username:Pt,styleId:zt,accessToken:en}=xt,{minLatitude:Kt,maxLatitude:nn,minLongitude:Zt,maxLongitude:jt}=getBoundingCoordinatesFromCenter(Bt,Et?Ct:et/2,Et?[Et[0],Et[1]]:void 0);return`https://api.mapbox.com/styles/v1/${Pt}/${zt}/static/[${Zt},${Kt},${jt},${nn}]/${Wt}x${Wt}${Dt?"@2x":""}?logo=false&access_token=${en}`},Nt=[160,320,640,1280],Ot=[];Promise.all(Nt.map(async(Wt,Dt)=>{const Et=await loadTexture(kt(Wt,Dt===Nt.length-1));Ot[Dt]=Et,Ut([...Ot])})),await Promise.all(ct.map(async(Wt,Dt)=>{const Et=await loadTexture(kt(1280,!0,Wt));return Et.colorSpace=SRGBColorSpace$1,Et.magFilter=NearestFilter,Et.minFilter=NearestFilter,dt.current[Dt].map=Et,dt.current[Dt].color=new Color$2("#FFFFFF"),dt.current[Dt].needsUpdate=!0,dt.current[Dt].depthWrite=!1,Et})).then(()=>{vt(!0)})})()},[lt]),reactExports.useEffect(()=>{(async()=>{let Bt;if(o){const kt=ot.subscribeToLocation(defined$1(at?.deviceId),o,Nt=>{if(typeof Nt=="symbol")return;const Ot=Nt;(lt===void 0||lt&<[0]!==Ot.longitude&<[1]!==Ot.latitude)&&ut(Wt=>Wt!==void 0&&Wt[0]===Ot.longitude&&Wt[1]===Ot.latitude?Wt:(vt(!1),[Ot.longitude,Ot.latitude]))});Lt(()=>kt)}else Bt=[Number(nt),Number(tt)],ut(Bt);const xt=getGridCoordinates(Math.ceil(et/200)*200,200);pt(xt),dt.current=xt.map((kt,Nt)=>new MeshBasicMaterial({map:null}));const Ct=new PlaneGeometry(200,200);ht.current=xt.map((kt,Nt)=>jsx$2("mesh",{position:kt,geometry:Ct,children:jsx$2("meshBasicMaterial",{ref:Ot=>dt.current[Nt]=Ot})},JSON.stringify(kt)))})()},[]),useFrame(({clock:Bt})=>{if(Ft.current&&!mt){const xt=Ft.current;xt.uniforms.time.value=Bt.elapsedTime}});const{layers:St}=reactExports.useContext(UIDataContext),Tt=St.find(Bt=>Bt.id===s.id);return Rt.current=Tt?.visible??!0,reactExports.useEffect(()=>{ft.refresh()},[Rt.current]),jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/map.svg",children:[jsx$2("group",{visible:mt,position:[0,0,-.015],children:ht.current}),jsxs$2("mesh",{ref:gt,visible:!mt,position:[0,0,-.015],children:[jsx$2("planeGeometry",{attach:"geometry",args:[et,et]}),yt.length>0?jsx$2("meshStandardMaterial",{map:yt[yt.length-1],depthWrite:!1}):jsx$2("colorShiftMaterial",{ref:Ft})]}),it]})}class MarkerMaterial extends ShaderMaterial{constructor(){super(),this.uniforms={uTime:{value:0}},this.vertexShader=` + `);extend({ColorShiftMaterial});function MapLayer(s){const{dataSource:o,size:et,latitude:tt,longitude:nt,mapType:rt}=s,{children:it}=s,[ot,st]=reactExports.useContext(UniverseDataContext),at=reactExports.useContext(LayerContext),[lt,ut]=reactExports.useState(void 0),dt=reactExports.useRef([]),ht=reactExports.useRef([]),[ct,pt]=reactExports.useState([]),ft=useBounds(),gt=reactExports.useRef(null),[yt,Ut]=reactExports.useState([]),Ft=reactExports.useRef(null),[mt,vt]=reactExports.useState(!1),[At,Lt]=reactExports.useState(null),Rt=reactExports.useRef(!0);reactExports.useEffect(()=>{(async()=>{if(lt===void 0)return;ft&&ft.refresh().clip().fit();const Bt=lt,xt={username:"mapbox",styleId:mapStyles[rt],width:1280,height:1280,bearing:0,accessToken:URL_SCOPED_TOKEN},Ct=100,kt=(Jt,Dt,Et)=>{const{username:Pt,styleId:zt,accessToken:en}=xt,{minLatitude:Kt,maxLatitude:nn,minLongitude:Zt,maxLongitude:jt}=getBoundingCoordinatesFromCenter(Bt,Et?Ct:et/2,Et?[Et[0],Et[1]]:void 0);return`https://api.mapbox.com/styles/v1/${Pt}/${zt}/static/[${Zt},${Kt},${jt},${nn}]/${Jt}x${Jt}${Dt?"@2x":""}?logo=false&access_token=${en}`},Nt=[160,320,640,1280],Ot=[];Promise.all(Nt.map(async(Jt,Dt)=>{const Et=await loadTexture(kt(Jt,Dt===Nt.length-1));Ot[Dt]=Et,Ut([...Ot])})),await Promise.all(ct.map(async(Jt,Dt)=>{const Et=await loadTexture(kt(1280,!0,Jt));return Et.colorSpace=SRGBColorSpace$1,Et.magFilter=NearestFilter,Et.minFilter=NearestFilter,dt.current[Dt].map=Et,dt.current[Dt].color=new Color$2("#FFFFFF"),dt.current[Dt].needsUpdate=!0,dt.current[Dt].depthWrite=!1,Et})).then(()=>{vt(!0)})})()},[lt]),reactExports.useEffect(()=>{(async()=>{let Bt;if(o){const kt=ot.subscribeToLocation(defined$1(at?.deviceId),o,Nt=>{if(typeof Nt=="symbol")return;const Ot=Nt;(lt===void 0||lt&<[0]!==Ot.longitude&<[1]!==Ot.latitude)&&ut(Jt=>Jt!==void 0&&Jt[0]===Ot.longitude&&Jt[1]===Ot.latitude?Jt:(vt(!1),[Ot.longitude,Ot.latitude]))});Lt(()=>kt)}else Bt=[Number(nt),Number(tt)],ut(Bt);const xt=getGridCoordinates(Math.ceil(et/200)*200,200);pt(xt),dt.current=xt.map((kt,Nt)=>new MeshBasicMaterial({map:null}));const Ct=new PlaneGeometry(200,200);ht.current=xt.map((kt,Nt)=>jsx$2("mesh",{position:kt,geometry:Ct,children:jsx$2("meshBasicMaterial",{ref:Ot=>dt.current[Nt]=Ot})},JSON.stringify(kt)))})()},[]),useFrame(({clock:Bt})=>{if(Ft.current&&!mt){const xt=Ft.current;xt.uniforms.time.value=Bt.elapsedTime}});const{layers:St}=reactExports.useContext(UIDataContext),Tt=St.find(Bt=>Bt.id===s.id);return Rt.current=Tt?.visible??!0,reactExports.useEffect(()=>{ft.refresh()},[Rt.current]),jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/map.svg",children:[jsx$2("group",{visible:mt,position:[0,0,-.015],children:ht.current}),jsxs$2("mesh",{ref:gt,visible:!mt,position:[0,0,-.015],children:[jsx$2("planeGeometry",{attach:"geometry",args:[et,et]}),yt.length>0?jsx$2("meshStandardMaterial",{map:yt[yt.length-1],depthWrite:!1}):jsx$2("colorShiftMaterial",{ref:Ft})]}),it]})}class MarkerMaterial extends ShaderMaterial{constructor(){super(),this.uniforms={uTime:{value:0}},this.vertexShader=` varying vec3 vNormal; varying vec2 vUv; @@ -5187,7 +5187,7 @@ void main() { vec3 color = mix(mappedColor, occupiedColor, smoothstep(0.0, 1.0, occupancy)); gl_FragColor = vec4(color, map.a); } -`,createGridMaterial=()=>new ShaderMaterial({blending:CustomBlending,depthTest:!0,depthWrite:!0,uniforms:{mapTexture:{value:new Texture}},vertexShader:vertexShader$1,fragmentShader:fragmentShader$1,side:DoubleSide}),createMesh=s=>{const o=new Mesh(new PlaneGeometry(1,1),s);return o.visible=!1,o.up=new Vector3(0,0,1),o},OccupancyGridLayer=s=>{const{dataSource:o}=s,[et,tt]=reactExports.useState(!1),[nt,rt]=reactExports.useState(void 0),[it,ot]=reactExports.useContext(UniverseDataContext),st=reactExports.useContext(LayerContext),at=useBounds(),lt=reactExports.useRef(createGridMaterial()).current,ut=reactExports.useRef(createMesh(lt)).current,dt=reactExports.useRef(ut),ht=reactExports.useRef(!0);reactExports.useEffect(()=>{nt&&new TextureLoader().load(nt,gt=>{gt.generateMipmaps=!1,gt.wrapS=ClampToEdgeWrapping,gt.wrapT=ClampToEdgeWrapping,gt.minFilter=LinearFilter,gt.magFilter=NearestFilter,lt.uniforms.mapTexture.value=gt,lt.needsUpdate=!0,ut.visible||(tt(!0),dt.current.visible=!0)})},[nt]),reactExports.useEffect(()=>{if(!st||!o)return;const{deviceId:ft}=st;o.streamType="localization";const gt=it.subscribeToGridMap(ft,o,yt=>{if(typeof yt=="symbol")return;const{origin:Ut,width:Ft,height:mt,resolution:vt,data:At,worldToLocal:Lt,alpha:Rt,url:St}=yt,Tt=dt.current;Tt.matrixAutoUpdate=!1;const Bt={translation:{x:Ut.translation.x+Ft*vt/2,y:Ut.translation.y+mt*vt/2,z:Ut.translation.z-.01},rotation:{x:Ut.rotation.x,y:Ut.rotation.y,z:Ut.rotation.z,w:Ut.rotation.w}},xt=transformMatrix(Bt).multiply(new Matrix4().makeScale(Ft*vt,mt*vt,1));if(Lt&&xt.multiply(transformMatrix(Lt)),Tt.matrix.copy(xt),Tt.updateMatrixWorld(!0),St){rt(St);return}if(!At)return;const Ct=Ft*mt,kt=new Uint8Array(4*Ct);for(let Wt=0;Wt{gt()}},[st,it]);const{layers:ct}=reactExports.useContext(UIDataContext),pt=ct.find(ft=>ft.id===s.id);return ht.current=pt?.visible??!0,reactExports.useEffect(()=>{at.refresh()},[ht.current,et]),jsx$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:et&&jsx$2(Fragment$2,{children:jsx$2("primitive",{object:dt.current,renderOrder:7})})})},PathLayer=s=>{const{dataSource:o,pathOpacity:et=50,pathWidth:tt=.25,pathType:nt=PathType.STATIC,flatten:rt=!1}=s;useControlsContext();const[it,ot]=reactExports.useContext(UniverseDataContext),st=reactExports.useContext(LayerContext),[at,lt]=reactExports.useState([]),ut=reactExports.useRef(null);return reactExports.useEffect(()=>{if(!st)return;const{deviceId:dt}=st;if(!o)return;o.streamType="localization";const ht=it.subscribeToPath(dt,o,ct=>{if(typeof ct=="symbol")return;const{poses:pt,worldToLocal:ft}=ct;if(lt(pt.map(yt=>new Vector3(yt.translation.x,yt.translation.y,yt.translation.z))),!ut.current)return;const gt=ut.current;gt.matrixAutoUpdate=!1,gt.matrix.copy(transformMatrix(ft))});return()=>{ht()}},[st,it,lt]),jsx$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:jsx$2(Path,{points:at,color:FormantColors.mithril,pathOpacity:et,pathWidth:tt,pathType:nt,pathFlatten:rt,renderOrder:0})})},Container=styled.div` +`,createGridMaterial=()=>new ShaderMaterial({blending:CustomBlending,depthTest:!0,depthWrite:!0,uniforms:{mapTexture:{value:new Texture}},vertexShader:vertexShader$1,fragmentShader:fragmentShader$1,side:DoubleSide}),createMesh=s=>{const o=new Mesh(new PlaneGeometry(1,1),s);return o.visible=!1,o.up=new Vector3(0,0,1),o},OccupancyGridLayer=s=>{const{dataSource:o}=s,[et,tt]=reactExports.useState(!1),[nt,rt]=reactExports.useState(void 0),[it,ot]=reactExports.useContext(UniverseDataContext),st=reactExports.useContext(LayerContext),at=useBounds(),lt=reactExports.useRef(createGridMaterial()).current,ut=reactExports.useRef(createMesh(lt)).current,dt=reactExports.useRef(ut),ht=reactExports.useRef(!0);reactExports.useEffect(()=>{nt&&new TextureLoader().load(nt,gt=>{gt.generateMipmaps=!1,gt.wrapS=ClampToEdgeWrapping,gt.wrapT=ClampToEdgeWrapping,gt.minFilter=LinearFilter,gt.magFilter=NearestFilter,lt.uniforms.mapTexture.value=gt,lt.needsUpdate=!0,ut.visible||(tt(!0),dt.current.visible=!0)})},[nt]),reactExports.useEffect(()=>{if(!st||!o)return;const{deviceId:ft}=st;o.streamType="localization";const gt=it.subscribeToGridMap(ft,o,yt=>{if(typeof yt=="symbol")return;const{origin:Ut,width:Ft,height:mt,resolution:vt,data:At,worldToLocal:Lt,alpha:Rt,url:St}=yt,Tt=dt.current;Tt.matrixAutoUpdate=!1;const Bt={translation:{x:Ut.translation.x+Ft*vt/2,y:Ut.translation.y+mt*vt/2,z:Ut.translation.z-.01},rotation:{x:Ut.rotation.x,y:Ut.rotation.y,z:Ut.rotation.z,w:Ut.rotation.w}},xt=transformMatrix(Bt).multiply(new Matrix4().makeScale(Ft*vt,mt*vt,1));if(Lt&&xt.multiply(transformMatrix(Lt)),Tt.matrix.copy(xt),Tt.updateMatrixWorld(!0),St){rt(St);return}if(!At)return;const Ct=Ft*mt,kt=new Uint8Array(4*Ct);for(let Jt=0;Jt{gt()}},[st,it]);const{layers:ct}=reactExports.useContext(UIDataContext),pt=ct.find(ft=>ft.id===s.id);return ht.current=pt?.visible??!0,reactExports.useEffect(()=>{at.refresh()},[ht.current,et]),jsx$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:et&&jsx$2(Fragment$2,{children:jsx$2("primitive",{object:dt.current,renderOrder:7})})})},PathLayer=s=>{const{dataSource:o,pathOpacity:et=50,pathWidth:tt=.25,pathType:nt=PathType.STATIC,flatten:rt=!1}=s;useControlsContext();const[it,ot]=reactExports.useContext(UniverseDataContext),st=reactExports.useContext(LayerContext),[at,lt]=reactExports.useState([]),ut=reactExports.useRef(null);return reactExports.useEffect(()=>{if(!st)return;const{deviceId:dt}=st;if(!o)return;o.streamType="localization";const ht=it.subscribeToPath(dt,o,ct=>{if(typeof ct=="symbol")return;const{poses:pt,worldToLocal:ft}=ct;if(lt(pt.map(yt=>new Vector3(yt.translation.x,yt.translation.y,yt.translation.z))),!ut.current)return;const gt=ut.current;gt.matrixAutoUpdate=!1,gt.matrix.copy(transformMatrix(ft))});return()=>{ht()}},[st,it,lt]),jsx$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:jsx$2(Path,{points:at,color:FormantColors.mithril,pathOpacity:et,pathWidth:tt,pathType:nt,pathFlatten:rt,renderOrder:0})})},Container=styled.div` position: absolute; top: 0px; left: 0px; @@ -5512,7 +5512,7 @@ void main() { cursor: pointer; pointer-events: all; } -`;function ToggleIcon({controlsStates:s,hasPathLayer:o}){const{state:{hasPointCloud:et,hasPath:tt,hasWaypointsPath:nt,isWaypointPanelVisible:rt},updateState:it}=s;return jsx$2(ToggleIconContainer,{hasPointCloud:et,children:rt?jsxs$2(Fragment$2,{children:[jsx$2("div",{onClick:()=>{it({hasWaypointsPath:!nt})},children:nt?jsx$2(WaypointsPathToggleIcon,{}):jsx$2(PathEyeIcon,{})}),o&&jsx$2("div",{onClick:()=>{it({hasPath:!tt})},children:tt?jsx$2(PathToggleIcon,{}):jsx$2(PathEyeIcon,{})})]}):jsx$2("div",{onClick:()=>{it({isWaypointPanelVisible:!rt,isWaypointEditing:!rt,hasPath:!0,hasWaypointsPath:!0})},children:jsx$2(WaypointToggleIcon,{})})})}const Modal=({content:s,subContent:o,buttons:et,handler1:tt,handler2:nt})=>jsxs$2(ModalContainer,{children:[jsxs$2("div",{children:[s[0]," ",jsx$2("b",{children:s[1]})," ?"]}),o&&jsx$2("p",{children:o}),jsxs$2("div",{children:[jsx$2(Button$1,{variant:"contained",onClick:()=>tt&&tt(),children:et[0]}),jsx$2(Button$1,{onClick:()=>nt&&nt(),children:et[1]})]})]}),millisecond=1,second=1e3,minute=60*second,hour=60*minute,day=24*hour,week=7*day,month=30*day,year=365*day,duration={millisecond,second,minute,hour,day,week,month,year};class ConnectionError extends Error{constructor(o,et,tt){super(`Connection failure: ${o.message}`),this.cause=o,this.url=et,this.retryable=tt}}const delay=s=>new Promise(o=>setTimeout(o,s||0));function isErrorType(s,o,et=()=>!0){return s instanceof o&&et(s)}function narrowError(s,o,et=()=>!0){if(isErrorType(s,o,et))return s;throw s}function isObject$1(s){return!!s&&(typeof s=="object"||typeof s=="function")}const blacklist=["password","secret","token","key","buffer"];function redact(s,o=new Set){return o.has(s)?"[ RECURSIVE ]":isObject$1(s)?(o.add(s),Object.keys(s).reduce((et,tt)=>(et[tt]=blacklist.some(nt=>tt.toLowerCase().includes(nt.toLowerCase()))?"[ REDACTED ]":redact(s[tt],o),et),{})):s}class ResponseError extends Error{constructor(o,et,tt,nt,rt={},it){super(`Unexpected response (${tt}) for ${o} ${et}: ${JSON.stringify(it?redact([...it.entries()].reduce((ot,[st,at])=>(ot[st]=at,ot),{})):{})} -- ${JSON.stringify(redact(nt))}`),this.method=o,this.url=et,this.statusCode=tt,this.body=nt,this.validationErrors=rt,this.headers=it}}class ResponseHeadersError extends Error{constructor(o,et){super(`Invalid headers (${JSON.stringify(o)}) for response: ${et.message}`),this.validationErrors=o,this.responseError=et}}var browserPonyfill={exports:{}};(function(s,o){var et=typeof self<"u"?self:commonjsGlobal$2,tt=function(){function rt(){this.fetch=!1,this.DOMException=et.DOMException}return rt.prototype=et,new rt}();(function(rt){(function(it){var ot={searchParams:"URLSearchParams"in rt,iterable:"Symbol"in rt&&"iterator"in Symbol,blob:"FileReader"in rt&&"Blob"in rt&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in rt,arrayBuffer:"ArrayBuffer"in rt};function st(Ct){return Ct&&DataView.prototype.isPrototypeOf(Ct)}if(ot.arrayBuffer)var at=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],lt=ArrayBuffer.isView||function(Ct){return Ct&&at.indexOf(Object.prototype.toString.call(Ct))>-1};function ut(Ct){if(typeof Ct!="string"&&(Ct=String(Ct)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(Ct))throw new TypeError("Invalid character in header field name");return Ct.toLowerCase()}function dt(Ct){return typeof Ct!="string"&&(Ct=String(Ct)),Ct}function ht(Ct){var kt={next:function(){var Nt=Ct.shift();return{done:Nt===void 0,value:Nt}}};return ot.iterable&&(kt[Symbol.iterator]=function(){return kt}),kt}function ct(Ct){this.map={},Ct instanceof ct?Ct.forEach(function(kt,Nt){this.append(Nt,kt)},this):Array.isArray(Ct)?Ct.forEach(function(kt){this.append(kt[0],kt[1])},this):Ct&&Object.getOwnPropertyNames(Ct).forEach(function(kt){this.append(kt,Ct[kt])},this)}ct.prototype.append=function(Ct,kt){Ct=ut(Ct),kt=dt(kt);var Nt=this.map[Ct];this.map[Ct]=Nt?Nt+", "+kt:kt},ct.prototype.delete=function(Ct){delete this.map[ut(Ct)]},ct.prototype.get=function(Ct){return Ct=ut(Ct),this.has(Ct)?this.map[Ct]:null},ct.prototype.has=function(Ct){return this.map.hasOwnProperty(ut(Ct))},ct.prototype.set=function(Ct,kt){this.map[ut(Ct)]=dt(kt)},ct.prototype.forEach=function(Ct,kt){for(var Nt in this.map)this.map.hasOwnProperty(Nt)&&Ct.call(kt,this.map[Nt],Nt,this)},ct.prototype.keys=function(){var Ct=[];return this.forEach(function(kt,Nt){Ct.push(Nt)}),ht(Ct)},ct.prototype.values=function(){var Ct=[];return this.forEach(function(kt){Ct.push(kt)}),ht(Ct)},ct.prototype.entries=function(){var Ct=[];return this.forEach(function(kt,Nt){Ct.push([Nt,kt])}),ht(Ct)},ot.iterable&&(ct.prototype[Symbol.iterator]=ct.prototype.entries);function pt(Ct){if(Ct.bodyUsed)return Promise.reject(new TypeError("Already read"));Ct.bodyUsed=!0}function ft(Ct){return new Promise(function(kt,Nt){Ct.onload=function(){kt(Ct.result)},Ct.onerror=function(){Nt(Ct.error)}})}function gt(Ct){var kt=new FileReader,Nt=ft(kt);return kt.readAsArrayBuffer(Ct),Nt}function yt(Ct){var kt=new FileReader,Nt=ft(kt);return kt.readAsText(Ct),Nt}function Ut(Ct){for(var kt=new Uint8Array(Ct),Nt=new Array(kt.length),Ot=0;Ot-1?kt:Ct}function Lt(Ct,kt){kt=kt||{};var Nt=kt.body;if(Ct instanceof Lt){if(Ct.bodyUsed)throw new TypeError("Already read");this.url=Ct.url,this.credentials=Ct.credentials,kt.headers||(this.headers=new ct(Ct.headers)),this.method=Ct.method,this.mode=Ct.mode,this.signal=Ct.signal,!Nt&&Ct._bodyInit!=null&&(Nt=Ct._bodyInit,Ct.bodyUsed=!0)}else this.url=String(Ct);if(this.credentials=kt.credentials||this.credentials||"same-origin",(kt.headers||!this.headers)&&(this.headers=new ct(kt.headers)),this.method=At(kt.method||this.method||"GET"),this.mode=kt.mode||this.mode||null,this.signal=kt.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Nt)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(Nt)}Lt.prototype.clone=function(){return new Lt(this,{body:this._bodyInit})};function Rt(Ct){var kt=new FormData;return Ct.trim().split("&").forEach(function(Nt){if(Nt){var Ot=Nt.split("="),Wt=Ot.shift().replace(/\+/g," "),Dt=Ot.join("=").replace(/\+/g," ");kt.append(decodeURIComponent(Wt),decodeURIComponent(Dt))}}),kt}function St(Ct){var kt=new ct,Nt=Ct.replace(/\r?\n[\t ]+/g," ");return Nt.split(/\r?\n/).forEach(function(Ot){var Wt=Ot.split(":"),Dt=Wt.shift().trim();if(Dt){var Et=Wt.join(":").trim();kt.append(Dt,Et)}}),kt}mt.call(Lt.prototype);function Tt(Ct,kt){kt||(kt={}),this.type="default",this.status=kt.status===void 0?200:kt.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in kt?kt.statusText:"OK",this.headers=new ct(kt.headers),this.url=kt.url||"",this._initBody(Ct)}mt.call(Tt.prototype),Tt.prototype.clone=function(){return new Tt(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new ct(this.headers),url:this.url})},Tt.error=function(){var Ct=new Tt(null,{status:0,statusText:""});return Ct.type="error",Ct};var Bt=[301,302,303,307,308];Tt.redirect=function(Ct,kt){if(Bt.indexOf(kt)===-1)throw new RangeError("Invalid status code");return new Tt(null,{status:kt,headers:{location:Ct}})},it.DOMException=rt.DOMException;try{new it.DOMException}catch{it.DOMException=function(kt,Nt){this.message=kt,this.name=Nt;var Ot=Error(kt);this.stack=Ot.stack},it.DOMException.prototype=Object.create(Error.prototype),it.DOMException.prototype.constructor=it.DOMException}function xt(Ct,kt){return new Promise(function(Nt,Ot){var Wt=new Lt(Ct,kt);if(Wt.signal&&Wt.signal.aborted)return Ot(new it.DOMException("Aborted","AbortError"));var Dt=new XMLHttpRequest;function Et(){Dt.abort()}Dt.onload=function(){var Pt={status:Dt.status,statusText:Dt.statusText,headers:St(Dt.getAllResponseHeaders()||"")};Pt.url="responseURL"in Dt?Dt.responseURL:Pt.headers.get("X-Request-URL");var zt="response"in Dt?Dt.response:Dt.responseText;Nt(new Tt(zt,Pt))},Dt.onerror=function(){Ot(new TypeError("Network request failed"))},Dt.ontimeout=function(){Ot(new TypeError("Network request failed"))},Dt.onabort=function(){Ot(new it.DOMException("Aborted","AbortError"))},Dt.open(Wt.method,Wt.url,!0),Wt.credentials==="include"?Dt.withCredentials=!0:Wt.credentials==="omit"&&(Dt.withCredentials=!1),"responseType"in Dt&&ot.blob&&(Dt.responseType="blob"),Wt.headers.forEach(function(Pt,zt){Dt.setRequestHeader(zt,Pt)}),Wt.signal&&(Wt.signal.addEventListener("abort",Et),Dt.onreadystatechange=function(){Dt.readyState===4&&Wt.signal.removeEventListener("abort",Et)}),Dt.send(typeof Wt._bodyInit>"u"?null:Wt._bodyInit)})}return xt.polyfill=!0,rt.fetch||(rt.fetch=xt,rt.Headers=ct,rt.Request=Lt,rt.Response=Tt),it.Headers=ct,it.Request=Lt,it.Response=Tt,it.fetch=xt,Object.defineProperty(it,"__esModule",{value:!0}),it})({})})(tt),tt.fetch.ponyfill=!0,delete tt.fetch.polyfill;var nt=tt;o=nt.fetch,o.default=nt.fetch,o.fetch=nt.fetch,o.Headers=nt.Headers,o.Request=nt.Request,o.Response=nt.Response,s.exports=o})(browserPonyfill,browserPonyfill.exports);var browserPonyfillExports=browserPonyfill.exports;const crossFetch=getDefaultExportFromCjs$1(browserPonyfillExports),idempotentMethods=new Set(["GET","HEAD","PUT","QUERY","DELETE","OPTIONS","TRACE"]);class BaseClient{constructor(o,et={}){if(this.endpoint=o,this.validateHeaders=tt=>et.validateHeaders?et.validateHeaders(tt):{},this.verbose=et.verbose!==!1,et.retries!==void 0&&!(et.retries>=0))throw new Error("retries must be positive or zero");if(this.configuredRetries=et.retries,et.timeoutMs!==void 0&&!(et.timeoutMs>0))throw new Error("timeoutMs must be positive");if(this.timeoutMs=et.timeoutMs,et.maxBackoffDelayMs!==void 0&&!(et.maxBackoffDelayMs>0))throw new Error("maxBackoffDelayMs must be positive");this.maxBackoffDelayMs=et.maxBackoffDelayMs||30*duration.second}static retries=8;static waitForConnectivity=async()=>{};static onResponseError=async()=>{};validateHeaders;verbose;configuredRetries;timeoutMs;maxBackoffDelayMs;getRetries(){return this.configuredRetries!==void 0?this.configuredRetries:this.getConstructor().retries}getHeaders(){return{}}async fetch(o,et={}){return(await this.fetchVerbose(o,et)).body}async fetchVerbose(o,et={}){let tt=100*duration.millisecond,nt=0;const rt=this.timeoutMs!==void 0?new Date().getTime()+this.timeoutMs:void 0,it=rt?()=>Math.max(rt-new Date().getTime(),0):void 0;for(;;)try{return await this.doFetch(o,et,it)}catch(ot){const st=narrowError(ot,ConnectionError);if(it?.()===0||nt===this.getRetries()||!st.retryable)throw st;nt++,tt=Math.min(...it?[it()]:[],tt*(2+(Math.random()-.5)*.1),this.maxBackoffDelayMs),await delay(tt),this.verbose&&console.warn(`Connection failure, retrying. Error: ${ot.cause.message}`,{url:ot.url,error:ot.cause,attempt:nt})}}async doFetch(o,et,tt){const{token:nt,json:rt,allowUnsafeRetries:it,...ot}=et,st=(ot.method||"GET").toUpperCase(),at=this.endpoint!==void 0?`${this.endpoint}${o?`/${o}`:""}`:o,lt=new AbortController;let ut;if(tt){const dt=tt();dt>0?ut=setTimeout(()=>{lt.abort()},dt):lt.abort()}try{let dt;await Promise.race([this.getConstructor().waitForConnectivity(),new Promise(Ut=>{dt=setTimeout(Ut,tt?Math.min(duration.minute,tt()):duration.minute)})]),dt&&clearTimeout(dt);const ht=await crossFetch(at,{...ot,headers:{...rt!==!1?{"Content-Type":"application/json"}:{},...this.getHeaders(),...ot.headers||{},...nt!==void 0?{Authorization:`Bearer ${nt}`}:{},"app-id":"formant/admin-api"},signal:lt.signal}),ct=ht.headers.get("content-type")||"",pt=ct&&ct.startsWith("application/json"),ft=pt?await ht.json():await ht.text(),gt=()=>new ResponseError(st,at,ht.status,ft,ft&&ft.validationErrors||{},ht.headers);if(!ht.ok)throw this.verbose&&console.warn("Response error",{method:st,url:at,statusCode:ht.status}),gt();const yt=this.validateHeaders(ht.headers);if(Object.keys(yt).length!==0)throw new ResponseHeadersError(yt,gt());if(ht.status===204)return{body:void 0,headers:ht.headers};if(rt&&!pt)throw new Error(`Response is not JSON: ${JSON.stringify(ft)}`);return{body:ft,headers:ht.headers}}catch(dt){const ht=it||idempotentMethods.has(st);if(dt.message==="Network request failed")throw new ConnectionError(dt,at,ht);if(dt.type==="system"&&["EAI_AGAIN","ECONNREFUSED","EHOSTUNREACH","ENOTFOUND"].find(gt=>gt===dt.code))throw new ConnectionError(dt,at,!0);if(dt.type==="system"&&["ETIMEDOUT","ECONNRESET","ESOCKETTIMEDOUT","EPIPE"].find(gt=>gt===dt.code))throw new ConnectionError(dt,at,ht);if(dt.name==="AbortError")throw new ConnectionError(dt,at,ht);const ct=narrowError(dt,ResponseError),{statusCode:pt}=ct;if(pt===408||pt===429||pt===502||pt===503||pt===504)throw this.verbose&&!ht&&console.warn("Potentially unsafe retry"),new ConnectionError(dt,at,!0);const ft=this.validateHeaders(ct.headers);throw Object.keys(ft).length!==0?new ResponseHeadersError(ft,ct):(await this.getConstructor().onResponseError(ct),dt)}finally{ut&&clearTimeout(ut)}}getConstructor(){return Object.getPrototypeOf(this).constructor}}class UploadPartClient extends BaseClient{constructor(){super(void 0,{retries:3,timeoutMs:10*duration.second})}async upload(o,et){const nt=(await this.fetchVerbose(o,{method:"PUT",body:et,json:!1})).headers.get("etag");if(!nt)throw new Error(`Invalid ETag from upload part response: ${nt}`);return nt}}const invalidHeadersValidation={"app-id":["app-id must match formant/*"]};class FormantBaseClient extends BaseClient{constructor(o,et={}){super(o,{validateHeaders:tt=>`${tt.get("app-id")}`.startsWith("formant/")?{}:invalidHeadersValidation,...et}),this.endpoint=o}static headers={};getHeaders(){return{...FormantBaseClient.headers}}}var shams=function s(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var o={},et=Symbol("test"),tt=Object(et);if(typeof et=="string"||Object.prototype.toString.call(et)!=="[object Symbol]"||Object.prototype.toString.call(tt)!=="[object Symbol]")return!1;var nt=42;o[et]=nt;for(et in o)return!1;if(typeof Object.keys=="function"&&Object.keys(o).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(o).length!==0)return!1;var rt=Object.getOwnPropertySymbols(o);if(rt.length!==1||rt[0]!==et||!Object.prototype.propertyIsEnumerable.call(o,et))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var it=Object.getOwnPropertyDescriptor(o,et);if(it.value!==nt||it.enumerable!==!0)return!1}return!0},origSymbol=typeof Symbol<"u"&&Symbol,hasSymbolSham=shams,hasSymbols$1=function s(){return typeof origSymbol!="function"||typeof Symbol!="function"||typeof origSymbol("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:hasSymbolSham()},test={foo:{}},$Object=Object,hasProto$1=function s(){return{__proto__:test}.foo===test.foo&&!({__proto__:null}instanceof $Object)},ERROR_MESSAGE="Function.prototype.bind called on incompatible ",toStr$1=Object.prototype.toString,max=Math.max,funcType="[object Function]",concatty=function s(o,et){for(var tt=[],nt=0;nt"u"||!getProto?undefined$1:getProto(Uint8Array),INTRINSICS={"%AggregateError%":typeof AggregateError>"u"?undefined$1:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?undefined$1:ArrayBuffer,"%ArrayIteratorPrototype%":hasSymbols&&getProto?getProto([][Symbol.iterator]()):undefined$1,"%AsyncFromSyncIteratorPrototype%":undefined$1,"%AsyncFunction%":needsEval,"%AsyncGenerator%":needsEval,"%AsyncGeneratorFunction%":needsEval,"%AsyncIteratorPrototype%":needsEval,"%Atomics%":typeof Atomics>"u"?undefined$1:Atomics,"%BigInt%":typeof BigInt>"u"?undefined$1:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?undefined$1:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?undefined$1:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?undefined$1:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?undefined$1:Float32Array,"%Float64Array%":typeof Float64Array>"u"?undefined$1:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?undefined$1:FinalizationRegistry,"%Function%":$Function,"%GeneratorFunction%":needsEval,"%Int8Array%":typeof Int8Array>"u"?undefined$1:Int8Array,"%Int16Array%":typeof Int16Array>"u"?undefined$1:Int16Array,"%Int32Array%":typeof Int32Array>"u"?undefined$1:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":hasSymbols&&getProto?getProto(getProto([][Symbol.iterator]())):undefined$1,"%JSON%":typeof JSON=="object"?JSON:undefined$1,"%Map%":typeof Map>"u"?undefined$1:Map,"%MapIteratorPrototype%":typeof Map>"u"||!hasSymbols||!getProto?undefined$1:getProto(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?undefined$1:Promise,"%Proxy%":typeof Proxy>"u"?undefined$1:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?undefined$1:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?undefined$1:Set,"%SetIteratorPrototype%":typeof Set>"u"||!hasSymbols||!getProto?undefined$1:getProto(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?undefined$1:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":hasSymbols&&getProto?getProto(""[Symbol.iterator]()):undefined$1,"%Symbol%":hasSymbols?Symbol:undefined$1,"%SyntaxError%":$SyntaxError$1,"%ThrowTypeError%":ThrowTypeError,"%TypedArray%":TypedArray,"%TypeError%":$TypeError$3,"%Uint8Array%":typeof Uint8Array>"u"?undefined$1:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?undefined$1:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?undefined$1:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?undefined$1:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?undefined$1:WeakMap,"%WeakRef%":typeof WeakRef>"u"?undefined$1:WeakRef,"%WeakSet%":typeof WeakSet>"u"?undefined$1:WeakSet};if(getProto)try{null.error}catch(s){var errorProto=getProto(getProto(s));INTRINSICS["%Error.prototype%"]=errorProto}var doEval=function s(o){var et;if(o==="%AsyncFunction%")et=getEvalledConstructor("async function () {}");else if(o==="%GeneratorFunction%")et=getEvalledConstructor("function* () {}");else if(o==="%AsyncGeneratorFunction%")et=getEvalledConstructor("async function* () {}");else if(o==="%AsyncGenerator%"){var tt=s("%AsyncGeneratorFunction%");tt&&(et=tt.prototype)}else if(o==="%AsyncIteratorPrototype%"){var nt=s("%AsyncGenerator%");nt&&getProto&&(et=getProto(nt.prototype))}return INTRINSICS[o]=et,et},LEGACY_ALIASES={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bind=functionBind,hasOwn$1=hasown,$concat$1=bind.call(Function.call,Array.prototype.concat),$spliceApply=bind.call(Function.apply,Array.prototype.splice),$replace$1=bind.call(Function.call,String.prototype.replace),$strSlice=bind.call(Function.call,String.prototype.slice),$exec=bind.call(Function.call,RegExp.prototype.exec),rePropName=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=function s(o){var et=$strSlice(o,0,1),tt=$strSlice(o,-1);if(et==="%"&&tt!=="%")throw new $SyntaxError$1("invalid intrinsic syntax, expected closing `%`");if(tt==="%"&&et!=="%")throw new $SyntaxError$1("invalid intrinsic syntax, expected opening `%`");var nt=[];return $replace$1(o,rePropName,function(rt,it,ot,st){nt[nt.length]=ot?$replace$1(st,reEscapeChar,"$1"):it||rt}),nt},getBaseIntrinsic=function s(o,et){var tt=o,nt;if(hasOwn$1(LEGACY_ALIASES,tt)&&(nt=LEGACY_ALIASES[tt],tt="%"+nt[0]+"%"),hasOwn$1(INTRINSICS,tt)){var rt=INTRINSICS[tt];if(rt===needsEval&&(rt=doEval(tt)),typeof rt>"u"&&!et)throw new $TypeError$3("intrinsic "+o+" exists, but is not available. Please file an issue!");return{alias:nt,name:tt,value:rt}}throw new $SyntaxError$1("intrinsic "+o+" does not exist!")},getIntrinsic=function s(o,et){if(typeof o!="string"||o.length===0)throw new $TypeError$3("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof et!="boolean")throw new $TypeError$3('"allowMissing" argument must be a boolean');if($exec(/^%?[^%]*%?$/,o)===null)throw new $SyntaxError$1("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var tt=stringToPath(o),nt=tt.length>0?tt[0]:"",rt=getBaseIntrinsic("%"+nt+"%",et),it=rt.name,ot=rt.value,st=!1,at=rt.alias;at&&(nt=at[0],$spliceApply(tt,$concat$1([0,1],at)));for(var lt=1,ut=!0;lt=tt.length){var pt=$gOPD$1(ot,dt);ut=!!pt,ut&&"get"in pt&&!("originalValue"in pt.get)?ot=pt.get:ot=ot[dt]}else ut=hasOwn$1(ot,dt),ot=ot[dt];ut&&!st&&(INTRINSICS[it]=ot)}}return ot},callBind$1={exports:{}},GetIntrinsic$5=getIntrinsic,$defineProperty$1=GetIntrinsic$5("%Object.defineProperty%",!0),hasPropertyDescriptors$1=function s(){if($defineProperty$1)try{return $defineProperty$1({},"a",{value:1}),!0}catch{return!1}return!1};hasPropertyDescriptors$1.hasArrayLengthDefineBug=function s(){if(!hasPropertyDescriptors$1())return null;try{return $defineProperty$1([],"length",{value:1}).length!==1}catch{return!0}};var hasPropertyDescriptors_1=hasPropertyDescriptors$1,GetIntrinsic$4=getIntrinsic,$gOPD=GetIntrinsic$4("%Object.getOwnPropertyDescriptor%",!0);if($gOPD)try{$gOPD([],"length")}catch{$gOPD=null}var gopd$1=$gOPD,hasPropertyDescriptors=hasPropertyDescriptors_1(),GetIntrinsic$3=getIntrinsic,$defineProperty=hasPropertyDescriptors&&GetIntrinsic$3("%Object.defineProperty%",!0);if($defineProperty)try{$defineProperty({},"a",{value:1})}catch{$defineProperty=!1}var $SyntaxError=GetIntrinsic$3("%SyntaxError%"),$TypeError$2=GetIntrinsic$3("%TypeError%"),gopd=gopd$1,defineDataProperty=function s(o,et,tt){if(!o||typeof o!="object"&&typeof o!="function")throw new $TypeError$2("`obj` must be an object or a function`");if(typeof et!="string"&&typeof et!="symbol")throw new $TypeError$2("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new $TypeError$2("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new $TypeError$2("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new $TypeError$2("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new $TypeError$2("`loose`, if provided, must be a boolean");var nt=arguments.length>3?arguments[3]:null,rt=arguments.length>4?arguments[4]:null,it=arguments.length>5?arguments[5]:null,ot=arguments.length>6?arguments[6]:!1,st=!!gopd&&gopd(o,et);if($defineProperty)$defineProperty(o,et,{configurable:it===null&&st?st.configurable:!it,enumerable:nt===null&&st?st.enumerable:!nt,value:tt,writable:rt===null&&st?st.writable:!rt});else if(ot||!nt&&!rt&&!it)o[et]=tt;else throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},GetIntrinsic$2=getIntrinsic,define=defineDataProperty,hasDescriptors=hasPropertyDescriptors_1(),gOPD=gopd$1,$TypeError$1=GetIntrinsic$2("%TypeError%"),$floor$1=GetIntrinsic$2("%Math.floor%"),setFunctionLength=function s(o,et){if(typeof o!="function")throw new $TypeError$1("`fn` is not a function");if(typeof et!="number"||et<0||et>4294967295||$floor$1(et)!==et)throw new $TypeError$1("`length` must be a positive 32-bit integer");var tt=arguments.length>2&&!!arguments[2],nt=!0,rt=!0;if("length"in o&&gOPD){var it=gOPD(o,"length");it&&!it.configurable&&(nt=!1),it&&!it.writable&&(rt=!1)}return(nt||rt||!tt)&&(hasDescriptors?define(o,"length",et,!0,!0):define(o,"length",et)),o};(function(s){var o=functionBind,et=getIntrinsic,tt=setFunctionLength,nt=et("%TypeError%"),rt=et("%Function.prototype.apply%"),it=et("%Function.prototype.call%"),ot=et("%Reflect.apply%",!0)||o.call(it,rt),st=et("%Object.defineProperty%",!0),at=et("%Math.max%");if(st)try{st({},"a",{value:1})}catch{st=null}s.exports=function(dt){if(typeof dt!="function")throw new nt("a function is required");var ht=ot(o,it,arguments);return tt(ht,1+at(0,dt.length-(arguments.length-1)),!0)};var lt=function(){return ot(o,rt,arguments)};st?st(s.exports,"apply",{value:lt}):s.exports.apply=lt})(callBind$1);var callBindExports=callBind$1.exports,GetIntrinsic$1=getIntrinsic,callBind=callBindExports,$indexOf=callBind(GetIntrinsic$1("String.prototype.indexOf")),callBound$1=function s(o,et){var tt=GetIntrinsic$1(o,!!et);return typeof tt=="function"&&$indexOf(o,".prototype.")>-1?callBind(tt):tt};const __viteBrowserExternal={},__viteBrowserExternal$1=Object.freeze(Object.defineProperty({__proto__:null,default:__viteBrowserExternal},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(__viteBrowserExternal$1);var hasMap=typeof Map=="function"&&Map.prototype,mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mapSize=hasMap&&mapSizeDescriptor&&typeof mapSizeDescriptor.get=="function"?mapSizeDescriptor.get:null,mapForEach=hasMap&&Map.prototype.forEach,hasSet=typeof Set=="function"&&Set.prototype,setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,setSize=hasSet&&setSizeDescriptor&&typeof setSizeDescriptor.get=="function"?setSizeDescriptor.get:null,setForEach=hasSet&&Set.prototype.forEach,hasWeakMap=typeof WeakMap=="function"&&WeakMap.prototype,weakMapHas=hasWeakMap?WeakMap.prototype.has:null,hasWeakSet=typeof WeakSet=="function"&&WeakSet.prototype,weakSetHas=hasWeakSet?WeakSet.prototype.has:null,hasWeakRef=typeof WeakRef=="function"&&WeakRef.prototype,weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null,booleanValueOf=Boolean.prototype.valueOf,objectToString$1=Object.prototype.toString,functionToString=Function.prototype.toString,$match=String.prototype.match,$slice=String.prototype.slice,$replace=String.prototype.replace,$toUpperCase=String.prototype.toUpperCase,$toLowerCase=String.prototype.toLowerCase,$test=RegExp.prototype.test,$concat=Array.prototype.concat,$join=Array.prototype.join,$arrSlice=Array.prototype.slice,$floor=Math.floor,bigIntValueOf=typeof BigInt=="function"?BigInt.prototype.valueOf:null,gOPS=Object.getOwnPropertySymbols,symToString=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,hasShammedSymbols=typeof Symbol=="function"&&typeof Symbol.iterator=="object",toStringTag=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===hasShammedSymbols||"symbol")?Symbol.toStringTag:null,isEnumerable=Object.prototype.propertyIsEnumerable,gPO=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(s){return s.__proto__}:null);function addNumericSeparator(s,o){if(s===1/0||s===-1/0||s!==s||s&&s>-1e3&&s<1e3||$test.call(/e/,o))return o;var et=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof s=="number"){var tt=s<0?-$floor(-s):$floor(s);if(tt!==s){var nt=String(tt),rt=$slice.call(o,nt.length+1);return $replace.call(nt,et,"$&_")+"."+$replace.call($replace.call(rt,/([0-9]{3})/g,"$&_"),/_$/,"")}}return $replace.call(o,et,"$&_")}var utilInspect=require$$0,inspectCustom=utilInspect.custom,inspectSymbol=isSymbol$1(inspectCustom)?inspectCustom:null,objectInspect=function s(o,et,tt,nt){var rt=et||{};if(has$3(rt,"quoteStyle")&&rt.quoteStyle!=="single"&&rt.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has$3(rt,"maxStringLength")&&(typeof rt.maxStringLength=="number"?rt.maxStringLength<0&&rt.maxStringLength!==1/0:rt.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var it=has$3(rt,"customInspect")?rt.customInspect:!0;if(typeof it!="boolean"&&it!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has$3(rt,"indent")&&rt.indent!==null&&rt.indent!==" "&&!(parseInt(rt.indent,10)===rt.indent&&rt.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(has$3(rt,"numericSeparator")&&typeof rt.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var ot=rt.numericSeparator;if(typeof o>"u")return"undefined";if(o===null)return"null";if(typeof o=="boolean")return o?"true":"false";if(typeof o=="string")return inspectString(o,rt);if(typeof o=="number"){if(o===0)return 1/0/o>0?"0":"-0";var st=String(o);return ot?addNumericSeparator(o,st):st}if(typeof o=="bigint"){var at=String(o)+"n";return ot?addNumericSeparator(o,at):at}var lt=typeof rt.depth>"u"?5:rt.depth;if(typeof tt>"u"&&(tt=0),tt>=lt&<>0&&typeof o=="object")return isArray$3(o)?"[Array]":"[Object]";var ut=getIndent(rt,tt);if(typeof nt>"u")nt=[];else if(indexOf(nt,o)>=0)return"[Circular]";function dt(xt,Ct,kt){if(Ct&&(nt=$arrSlice.call(nt),nt.push(Ct)),kt){var Nt={depth:rt.depth};return has$3(rt,"quoteStyle")&&(Nt.quoteStyle=rt.quoteStyle),s(xt,Nt,tt+1,nt)}return s(xt,rt,tt+1,nt)}if(typeof o=="function"&&!isRegExp$1(o)){var ht=nameOf(o),ct=arrObjKeys(o,dt);return"[Function"+(ht?": "+ht:" (anonymous)")+"]"+(ct.length>0?" { "+$join.call(ct,", ")+" }":"")}if(isSymbol$1(o)){var pt=hasShammedSymbols?$replace.call(String(o),/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(o);return typeof o=="object"&&!hasShammedSymbols?markBoxed(pt):pt}if(isElement(o)){for(var ft="<"+$toLowerCase.call(String(o.nodeName)),gt=o.attributes||[],yt=0;yt",ft}if(isArray$3(o)){if(o.length===0)return"[]";var Ut=arrObjKeys(o,dt);return ut&&!singleLineValues(Ut)?"["+indentedJoin(Ut,ut)+"]":"[ "+$join.call(Ut,", ")+" ]"}if(isError(o)){var Ft=arrObjKeys(o,dt);return!("cause"in Error.prototype)&&"cause"in o&&!isEnumerable.call(o,"cause")?"{ ["+String(o)+"] "+$join.call($concat.call("[cause]: "+dt(o.cause),Ft),", ")+" }":Ft.length===0?"["+String(o)+"]":"{ ["+String(o)+"] "+$join.call(Ft,", ")+" }"}if(typeof o=="object"&&it){if(inspectSymbol&&typeof o[inspectSymbol]=="function"&&utilInspect)return utilInspect(o,{depth:lt-tt});if(it!=="symbol"&&typeof o.inspect=="function")return o.inspect()}if(isMap(o)){var mt=[];return mapForEach&&mapForEach.call(o,function(xt,Ct){mt.push(dt(Ct,o,!0)+" => "+dt(xt,o))}),collectionOf("Map",mapSize.call(o),mt,ut)}if(isSet(o)){var vt=[];return setForEach&&setForEach.call(o,function(xt){vt.push(dt(xt,o))}),collectionOf("Set",setSize.call(o),vt,ut)}if(isWeakMap(o))return weakCollectionOf("WeakMap");if(isWeakSet(o))return weakCollectionOf("WeakSet");if(isWeakRef(o))return weakCollectionOf("WeakRef");if(isNumber(o))return markBoxed(dt(Number(o)));if(isBigInt(o))return markBoxed(dt(bigIntValueOf.call(o)));if(isBoolean(o))return markBoxed(booleanValueOf.call(o));if(isString(o))return markBoxed(dt(String(o)));if(typeof window<"u"&&o===window)return"{ [object Window] }";if(o===commonjsGlobal$2)return"{ [object globalThis] }";if(!isDate(o)&&!isRegExp$1(o)){var At=arrObjKeys(o,dt),Lt=gPO?gPO(o)===Object.prototype:o instanceof Object||o.constructor===Object,Rt=o instanceof Object?"":"null prototype",St=!Lt&&toStringTag&&Object(o)===o&&toStringTag in o?$slice.call(toStr(o),8,-1):Rt?"Object":"",Tt=Lt||typeof o.constructor!="function"?"":o.constructor.name?o.constructor.name+" ":"",Bt=Tt+(St||Rt?"["+$join.call($concat.call([],St||[],Rt||[]),": ")+"] ":"");return At.length===0?Bt+"{}":ut?Bt+"{"+indentedJoin(At,ut)+"}":Bt+"{ "+$join.call(At,", ")+" }"}return String(o)};function wrapQuotes(s,o,et){var tt=(et.quoteStyle||o)==="double"?'"':"'";return tt+s+tt}function quote(s){return $replace.call(String(s),/"/g,""")}function isArray$3(s){return toStr(s)==="[object Array]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isDate(s){return toStr(s)==="[object Date]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isRegExp$1(s){return toStr(s)==="[object RegExp]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isError(s){return toStr(s)==="[object Error]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isString(s){return toStr(s)==="[object String]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isNumber(s){return toStr(s)==="[object Number]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isBoolean(s){return toStr(s)==="[object Boolean]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isSymbol$1(s){if(hasShammedSymbols)return s&&typeof s=="object"&&s instanceof Symbol;if(typeof s=="symbol")return!0;if(!s||typeof s!="object"||!symToString)return!1;try{return symToString.call(s),!0}catch{}return!1}function isBigInt(s){if(!s||typeof s!="object"||!bigIntValueOf)return!1;try{return bigIntValueOf.call(s),!0}catch{}return!1}var hasOwn=Object.prototype.hasOwnProperty||function(s){return s in this};function has$3(s,o){return hasOwn.call(s,o)}function toStr(s){return objectToString$1.call(s)}function nameOf(s){if(s.name)return s.name;var o=$match.call(functionToString.call(s),/^function\s*([\w$]+)/);return o?o[1]:null}function indexOf(s,o){if(s.indexOf)return s.indexOf(o);for(var et=0,tt=s.length;eto.maxStringLength){var et=s.length-o.maxStringLength,tt="... "+et+" more character"+(et>1?"s":"");return inspectString($slice.call(s,0,o.maxStringLength),o)+tt}var nt=$replace.call($replace.call(s,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,lowbyte);return wrapQuotes(nt,"single",o)}function lowbyte(s){var o=s.charCodeAt(0),et={8:"b",9:"t",10:"n",12:"f",13:"r"}[o];return et?"\\"+et:"\\x"+(o<16?"0":"")+$toUpperCase.call(o.toString(16))}function markBoxed(s){return"Object("+s+")"}function weakCollectionOf(s){return s+" { ? }"}function collectionOf(s,o,et,tt){var nt=tt?indentedJoin(et,tt):$join.call(et,", ");return s+" ("+o+") {"+nt+"}"}function singleLineValues(s){for(var o=0;o{it({hasWaypointsPath:!nt})},children:nt?jsx$2(WaypointsPathToggleIcon,{}):jsx$2(PathEyeIcon,{})}),o&&jsx$2("div",{onClick:()=>{it({hasPath:!tt})},children:tt?jsx$2(PathToggleIcon,{}):jsx$2(PathEyeIcon,{})})]}):jsx$2("div",{onClick:()=>{it({isWaypointPanelVisible:!rt,isWaypointEditing:!rt,hasPath:!0,hasWaypointsPath:!0})},children:jsx$2(WaypointToggleIcon,{})})})}const Modal=({content:s,subContent:o,buttons:et,handler1:tt,handler2:nt})=>jsxs$2(ModalContainer,{children:[jsxs$2("div",{children:[s[0]," ",jsx$2("b",{children:s[1]})," ?"]}),o&&jsx$2("p",{children:o}),jsxs$2("div",{children:[jsx$2(Button$1,{variant:"contained",onClick:()=>tt&&tt(),children:et[0]}),jsx$2(Button$1,{onClick:()=>nt&&nt(),children:et[1]})]})]}),millisecond=1,second=1e3,minute=60*second,hour=60*minute,day=24*hour,week=7*day,month=30*day,year=365*day,duration={millisecond,second,minute,hour,day,week,month,year};class ConnectionError extends Error{constructor(o,et,tt){super(`Connection failure: ${o.message}`),this.cause=o,this.url=et,this.retryable=tt}}const delay=s=>new Promise(o=>setTimeout(o,s||0));function isErrorType(s,o,et=()=>!0){return s instanceof o&&et(s)}function narrowError(s,o,et=()=>!0){if(isErrorType(s,o,et))return s;throw s}function isObject$1(s){return!!s&&(typeof s=="object"||typeof s=="function")}const blacklist=["password","secret","token","key","buffer"];function redact(s,o=new Set){return o.has(s)?"[ RECURSIVE ]":isObject$1(s)?(o.add(s),Object.keys(s).reduce((et,tt)=>(et[tt]=blacklist.some(nt=>tt.toLowerCase().includes(nt.toLowerCase()))?"[ REDACTED ]":redact(s[tt],o),et),{})):s}class ResponseError extends Error{constructor(o,et,tt,nt,rt={},it){super(`Unexpected response (${tt}) for ${o} ${et}: ${JSON.stringify(it?redact([...it.entries()].reduce((ot,[st,at])=>(ot[st]=at,ot),{})):{})} -- ${JSON.stringify(redact(nt))}`),this.method=o,this.url=et,this.statusCode=tt,this.body=nt,this.validationErrors=rt,this.headers=it}}class ResponseHeadersError extends Error{constructor(o,et){super(`Invalid headers (${JSON.stringify(o)}) for response: ${et.message}`),this.validationErrors=o,this.responseError=et}}var browserPonyfill={exports:{}};(function(s,o){var et=typeof self<"u"?self:commonjsGlobal$2,tt=function(){function rt(){this.fetch=!1,this.DOMException=et.DOMException}return rt.prototype=et,new rt}();(function(rt){(function(it){var ot={searchParams:"URLSearchParams"in rt,iterable:"Symbol"in rt&&"iterator"in Symbol,blob:"FileReader"in rt&&"Blob"in rt&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in rt,arrayBuffer:"ArrayBuffer"in rt};function st(Ct){return Ct&&DataView.prototype.isPrototypeOf(Ct)}if(ot.arrayBuffer)var at=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],lt=ArrayBuffer.isView||function(Ct){return Ct&&at.indexOf(Object.prototype.toString.call(Ct))>-1};function ut(Ct){if(typeof Ct!="string"&&(Ct=String(Ct)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(Ct))throw new TypeError("Invalid character in header field name");return Ct.toLowerCase()}function dt(Ct){return typeof Ct!="string"&&(Ct=String(Ct)),Ct}function ht(Ct){var kt={next:function(){var Nt=Ct.shift();return{done:Nt===void 0,value:Nt}}};return ot.iterable&&(kt[Symbol.iterator]=function(){return kt}),kt}function ct(Ct){this.map={},Ct instanceof ct?Ct.forEach(function(kt,Nt){this.append(Nt,kt)},this):Array.isArray(Ct)?Ct.forEach(function(kt){this.append(kt[0],kt[1])},this):Ct&&Object.getOwnPropertyNames(Ct).forEach(function(kt){this.append(kt,Ct[kt])},this)}ct.prototype.append=function(Ct,kt){Ct=ut(Ct),kt=dt(kt);var Nt=this.map[Ct];this.map[Ct]=Nt?Nt+", "+kt:kt},ct.prototype.delete=function(Ct){delete this.map[ut(Ct)]},ct.prototype.get=function(Ct){return Ct=ut(Ct),this.has(Ct)?this.map[Ct]:null},ct.prototype.has=function(Ct){return this.map.hasOwnProperty(ut(Ct))},ct.prototype.set=function(Ct,kt){this.map[ut(Ct)]=dt(kt)},ct.prototype.forEach=function(Ct,kt){for(var Nt in this.map)this.map.hasOwnProperty(Nt)&&Ct.call(kt,this.map[Nt],Nt,this)},ct.prototype.keys=function(){var Ct=[];return this.forEach(function(kt,Nt){Ct.push(Nt)}),ht(Ct)},ct.prototype.values=function(){var Ct=[];return this.forEach(function(kt){Ct.push(kt)}),ht(Ct)},ct.prototype.entries=function(){var Ct=[];return this.forEach(function(kt,Nt){Ct.push([Nt,kt])}),ht(Ct)},ot.iterable&&(ct.prototype[Symbol.iterator]=ct.prototype.entries);function pt(Ct){if(Ct.bodyUsed)return Promise.reject(new TypeError("Already read"));Ct.bodyUsed=!0}function ft(Ct){return new Promise(function(kt,Nt){Ct.onload=function(){kt(Ct.result)},Ct.onerror=function(){Nt(Ct.error)}})}function gt(Ct){var kt=new FileReader,Nt=ft(kt);return kt.readAsArrayBuffer(Ct),Nt}function yt(Ct){var kt=new FileReader,Nt=ft(kt);return kt.readAsText(Ct),Nt}function Ut(Ct){for(var kt=new Uint8Array(Ct),Nt=new Array(kt.length),Ot=0;Ot-1?kt:Ct}function Lt(Ct,kt){kt=kt||{};var Nt=kt.body;if(Ct instanceof Lt){if(Ct.bodyUsed)throw new TypeError("Already read");this.url=Ct.url,this.credentials=Ct.credentials,kt.headers||(this.headers=new ct(Ct.headers)),this.method=Ct.method,this.mode=Ct.mode,this.signal=Ct.signal,!Nt&&Ct._bodyInit!=null&&(Nt=Ct._bodyInit,Ct.bodyUsed=!0)}else this.url=String(Ct);if(this.credentials=kt.credentials||this.credentials||"same-origin",(kt.headers||!this.headers)&&(this.headers=new ct(kt.headers)),this.method=At(kt.method||this.method||"GET"),this.mode=kt.mode||this.mode||null,this.signal=kt.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Nt)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(Nt)}Lt.prototype.clone=function(){return new Lt(this,{body:this._bodyInit})};function Rt(Ct){var kt=new FormData;return Ct.trim().split("&").forEach(function(Nt){if(Nt){var Ot=Nt.split("="),Jt=Ot.shift().replace(/\+/g," "),Dt=Ot.join("=").replace(/\+/g," ");kt.append(decodeURIComponent(Jt),decodeURIComponent(Dt))}}),kt}function St(Ct){var kt=new ct,Nt=Ct.replace(/\r?\n[\t ]+/g," ");return Nt.split(/\r?\n/).forEach(function(Ot){var Jt=Ot.split(":"),Dt=Jt.shift().trim();if(Dt){var Et=Jt.join(":").trim();kt.append(Dt,Et)}}),kt}mt.call(Lt.prototype);function Tt(Ct,kt){kt||(kt={}),this.type="default",this.status=kt.status===void 0?200:kt.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in kt?kt.statusText:"OK",this.headers=new ct(kt.headers),this.url=kt.url||"",this._initBody(Ct)}mt.call(Tt.prototype),Tt.prototype.clone=function(){return new Tt(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new ct(this.headers),url:this.url})},Tt.error=function(){var Ct=new Tt(null,{status:0,statusText:""});return Ct.type="error",Ct};var Bt=[301,302,303,307,308];Tt.redirect=function(Ct,kt){if(Bt.indexOf(kt)===-1)throw new RangeError("Invalid status code");return new Tt(null,{status:kt,headers:{location:Ct}})},it.DOMException=rt.DOMException;try{new it.DOMException}catch{it.DOMException=function(kt,Nt){this.message=kt,this.name=Nt;var Ot=Error(kt);this.stack=Ot.stack},it.DOMException.prototype=Object.create(Error.prototype),it.DOMException.prototype.constructor=it.DOMException}function xt(Ct,kt){return new Promise(function(Nt,Ot){var Jt=new Lt(Ct,kt);if(Jt.signal&&Jt.signal.aborted)return Ot(new it.DOMException("Aborted","AbortError"));var Dt=new XMLHttpRequest;function Et(){Dt.abort()}Dt.onload=function(){var Pt={status:Dt.status,statusText:Dt.statusText,headers:St(Dt.getAllResponseHeaders()||"")};Pt.url="responseURL"in Dt?Dt.responseURL:Pt.headers.get("X-Request-URL");var zt="response"in Dt?Dt.response:Dt.responseText;Nt(new Tt(zt,Pt))},Dt.onerror=function(){Ot(new TypeError("Network request failed"))},Dt.ontimeout=function(){Ot(new TypeError("Network request failed"))},Dt.onabort=function(){Ot(new it.DOMException("Aborted","AbortError"))},Dt.open(Jt.method,Jt.url,!0),Jt.credentials==="include"?Dt.withCredentials=!0:Jt.credentials==="omit"&&(Dt.withCredentials=!1),"responseType"in Dt&&ot.blob&&(Dt.responseType="blob"),Jt.headers.forEach(function(Pt,zt){Dt.setRequestHeader(zt,Pt)}),Jt.signal&&(Jt.signal.addEventListener("abort",Et),Dt.onreadystatechange=function(){Dt.readyState===4&&Jt.signal.removeEventListener("abort",Et)}),Dt.send(typeof Jt._bodyInit>"u"?null:Jt._bodyInit)})}return xt.polyfill=!0,rt.fetch||(rt.fetch=xt,rt.Headers=ct,rt.Request=Lt,rt.Response=Tt),it.Headers=ct,it.Request=Lt,it.Response=Tt,it.fetch=xt,Object.defineProperty(it,"__esModule",{value:!0}),it})({})})(tt),tt.fetch.ponyfill=!0,delete tt.fetch.polyfill;var nt=tt;o=nt.fetch,o.default=nt.fetch,o.fetch=nt.fetch,o.Headers=nt.Headers,o.Request=nt.Request,o.Response=nt.Response,s.exports=o})(browserPonyfill,browserPonyfill.exports);var browserPonyfillExports=browserPonyfill.exports;const crossFetch=getDefaultExportFromCjs$1(browserPonyfillExports),idempotentMethods=new Set(["GET","HEAD","PUT","QUERY","DELETE","OPTIONS","TRACE"]);class BaseClient{constructor(o,et={}){if(this.endpoint=o,this.validateHeaders=tt=>et.validateHeaders?et.validateHeaders(tt):{},this.verbose=et.verbose!==!1,et.retries!==void 0&&!(et.retries>=0))throw new Error("retries must be positive or zero");if(this.configuredRetries=et.retries,et.timeoutMs!==void 0&&!(et.timeoutMs>0))throw new Error("timeoutMs must be positive");if(this.timeoutMs=et.timeoutMs,et.maxBackoffDelayMs!==void 0&&!(et.maxBackoffDelayMs>0))throw new Error("maxBackoffDelayMs must be positive");this.maxBackoffDelayMs=et.maxBackoffDelayMs||30*duration.second}static retries=8;static waitForConnectivity=async()=>{};static onResponseError=async()=>{};validateHeaders;verbose;configuredRetries;timeoutMs;maxBackoffDelayMs;getRetries(){return this.configuredRetries!==void 0?this.configuredRetries:this.getConstructor().retries}getHeaders(){return{}}async fetch(o,et={}){return(await this.fetchVerbose(o,et)).body}async fetchVerbose(o,et={}){let tt=100*duration.millisecond,nt=0;const rt=this.timeoutMs!==void 0?new Date().getTime()+this.timeoutMs:void 0,it=rt?()=>Math.max(rt-new Date().getTime(),0):void 0;for(;;)try{return await this.doFetch(o,et,it)}catch(ot){const st=narrowError(ot,ConnectionError);if(it?.()===0||nt===this.getRetries()||!st.retryable)throw st;nt++,tt=Math.min(...it?[it()]:[],tt*(2+(Math.random()-.5)*.1),this.maxBackoffDelayMs),await delay(tt),this.verbose&&console.warn(`Connection failure, retrying. Error: ${ot.cause.message}`,{url:ot.url,error:ot.cause,attempt:nt})}}async doFetch(o,et,tt){const{token:nt,json:rt,allowUnsafeRetries:it,...ot}=et,st=(ot.method||"GET").toUpperCase(),at=this.endpoint!==void 0?`${this.endpoint}${o?`/${o}`:""}`:o,lt=new AbortController;let ut;if(tt){const dt=tt();dt>0?ut=setTimeout(()=>{lt.abort()},dt):lt.abort()}try{let dt;await Promise.race([this.getConstructor().waitForConnectivity(),new Promise(Ut=>{dt=setTimeout(Ut,tt?Math.min(duration.minute,tt()):duration.minute)})]),dt&&clearTimeout(dt);const ht=await crossFetch(at,{...ot,headers:{...rt!==!1?{"Content-Type":"application/json"}:{},...this.getHeaders(),...ot.headers||{},...nt!==void 0?{Authorization:`Bearer ${nt}`}:{},"app-id":"formant/admin-api"},signal:lt.signal}),ct=ht.headers.get("content-type")||"",pt=ct&&ct.startsWith("application/json"),ft=pt?await ht.json():await ht.text(),gt=()=>new ResponseError(st,at,ht.status,ft,ft&&ft.validationErrors||{},ht.headers);if(!ht.ok)throw this.verbose&&console.warn("Response error",{method:st,url:at,statusCode:ht.status}),gt();const yt=this.validateHeaders(ht.headers);if(Object.keys(yt).length!==0)throw new ResponseHeadersError(yt,gt());if(ht.status===204)return{body:void 0,headers:ht.headers};if(rt&&!pt)throw new Error(`Response is not JSON: ${JSON.stringify(ft)}`);return{body:ft,headers:ht.headers}}catch(dt){const ht=it||idempotentMethods.has(st);if(dt.message==="Network request failed")throw new ConnectionError(dt,at,ht);if(dt.type==="system"&&["EAI_AGAIN","ECONNREFUSED","EHOSTUNREACH","ENOTFOUND"].find(gt=>gt===dt.code))throw new ConnectionError(dt,at,!0);if(dt.type==="system"&&["ETIMEDOUT","ECONNRESET","ESOCKETTIMEDOUT","EPIPE"].find(gt=>gt===dt.code))throw new ConnectionError(dt,at,ht);if(dt.name==="AbortError")throw new ConnectionError(dt,at,ht);const ct=narrowError(dt,ResponseError),{statusCode:pt}=ct;if(pt===408||pt===429||pt===502||pt===503||pt===504)throw this.verbose&&!ht&&console.warn("Potentially unsafe retry"),new ConnectionError(dt,at,!0);const ft=this.validateHeaders(ct.headers);throw Object.keys(ft).length!==0?new ResponseHeadersError(ft,ct):(await this.getConstructor().onResponseError(ct),dt)}finally{ut&&clearTimeout(ut)}}getConstructor(){return Object.getPrototypeOf(this).constructor}}class UploadPartClient extends BaseClient{constructor(){super(void 0,{retries:3,timeoutMs:10*duration.second})}async upload(o,et){const nt=(await this.fetchVerbose(o,{method:"PUT",body:et,json:!1})).headers.get("etag");if(!nt)throw new Error(`Invalid ETag from upload part response: ${nt}`);return nt}}const invalidHeadersValidation={"app-id":["app-id must match formant/*"]};class FormantBaseClient extends BaseClient{constructor(o,et={}){super(o,{validateHeaders:tt=>`${tt.get("app-id")}`.startsWith("formant/")?{}:invalidHeadersValidation,...et}),this.endpoint=o}static headers={};getHeaders(){return{...FormantBaseClient.headers}}}var shams=function s(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var o={},et=Symbol("test"),tt=Object(et);if(typeof et=="string"||Object.prototype.toString.call(et)!=="[object Symbol]"||Object.prototype.toString.call(tt)!=="[object Symbol]")return!1;var nt=42;o[et]=nt;for(et in o)return!1;if(typeof Object.keys=="function"&&Object.keys(o).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(o).length!==0)return!1;var rt=Object.getOwnPropertySymbols(o);if(rt.length!==1||rt[0]!==et||!Object.prototype.propertyIsEnumerable.call(o,et))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var it=Object.getOwnPropertyDescriptor(o,et);if(it.value!==nt||it.enumerable!==!0)return!1}return!0},origSymbol=typeof Symbol<"u"&&Symbol,hasSymbolSham=shams,hasSymbols$1=function s(){return typeof origSymbol!="function"||typeof Symbol!="function"||typeof origSymbol("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:hasSymbolSham()},test={foo:{}},$Object=Object,hasProto$1=function s(){return{__proto__:test}.foo===test.foo&&!({__proto__:null}instanceof $Object)},ERROR_MESSAGE="Function.prototype.bind called on incompatible ",toStr$1=Object.prototype.toString,max=Math.max,funcType="[object Function]",concatty=function s(o,et){for(var tt=[],nt=0;nt"u"||!getProto?undefined$1:getProto(Uint8Array),INTRINSICS={"%AggregateError%":typeof AggregateError>"u"?undefined$1:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?undefined$1:ArrayBuffer,"%ArrayIteratorPrototype%":hasSymbols&&getProto?getProto([][Symbol.iterator]()):undefined$1,"%AsyncFromSyncIteratorPrototype%":undefined$1,"%AsyncFunction%":needsEval,"%AsyncGenerator%":needsEval,"%AsyncGeneratorFunction%":needsEval,"%AsyncIteratorPrototype%":needsEval,"%Atomics%":typeof Atomics>"u"?undefined$1:Atomics,"%BigInt%":typeof BigInt>"u"?undefined$1:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?undefined$1:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?undefined$1:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?undefined$1:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?undefined$1:Float32Array,"%Float64Array%":typeof Float64Array>"u"?undefined$1:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?undefined$1:FinalizationRegistry,"%Function%":$Function,"%GeneratorFunction%":needsEval,"%Int8Array%":typeof Int8Array>"u"?undefined$1:Int8Array,"%Int16Array%":typeof Int16Array>"u"?undefined$1:Int16Array,"%Int32Array%":typeof Int32Array>"u"?undefined$1:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":hasSymbols&&getProto?getProto(getProto([][Symbol.iterator]())):undefined$1,"%JSON%":typeof JSON=="object"?JSON:undefined$1,"%Map%":typeof Map>"u"?undefined$1:Map,"%MapIteratorPrototype%":typeof Map>"u"||!hasSymbols||!getProto?undefined$1:getProto(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?undefined$1:Promise,"%Proxy%":typeof Proxy>"u"?undefined$1:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?undefined$1:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?undefined$1:Set,"%SetIteratorPrototype%":typeof Set>"u"||!hasSymbols||!getProto?undefined$1:getProto(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?undefined$1:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":hasSymbols&&getProto?getProto(""[Symbol.iterator]()):undefined$1,"%Symbol%":hasSymbols?Symbol:undefined$1,"%SyntaxError%":$SyntaxError$1,"%ThrowTypeError%":ThrowTypeError,"%TypedArray%":TypedArray,"%TypeError%":$TypeError$3,"%Uint8Array%":typeof Uint8Array>"u"?undefined$1:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?undefined$1:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?undefined$1:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?undefined$1:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?undefined$1:WeakMap,"%WeakRef%":typeof WeakRef>"u"?undefined$1:WeakRef,"%WeakSet%":typeof WeakSet>"u"?undefined$1:WeakSet};if(getProto)try{null.error}catch(s){var errorProto=getProto(getProto(s));INTRINSICS["%Error.prototype%"]=errorProto}var doEval=function s(o){var et;if(o==="%AsyncFunction%")et=getEvalledConstructor("async function () {}");else if(o==="%GeneratorFunction%")et=getEvalledConstructor("function* () {}");else if(o==="%AsyncGeneratorFunction%")et=getEvalledConstructor("async function* () {}");else if(o==="%AsyncGenerator%"){var tt=s("%AsyncGeneratorFunction%");tt&&(et=tt.prototype)}else if(o==="%AsyncIteratorPrototype%"){var nt=s("%AsyncGenerator%");nt&&getProto&&(et=getProto(nt.prototype))}return INTRINSICS[o]=et,et},LEGACY_ALIASES={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bind=functionBind,hasOwn$1=hasown,$concat$1=bind.call(Function.call,Array.prototype.concat),$spliceApply=bind.call(Function.apply,Array.prototype.splice),$replace$1=bind.call(Function.call,String.prototype.replace),$strSlice=bind.call(Function.call,String.prototype.slice),$exec=bind.call(Function.call,RegExp.prototype.exec),rePropName=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=function s(o){var et=$strSlice(o,0,1),tt=$strSlice(o,-1);if(et==="%"&&tt!=="%")throw new $SyntaxError$1("invalid intrinsic syntax, expected closing `%`");if(tt==="%"&&et!=="%")throw new $SyntaxError$1("invalid intrinsic syntax, expected opening `%`");var nt=[];return $replace$1(o,rePropName,function(rt,it,ot,st){nt[nt.length]=ot?$replace$1(st,reEscapeChar,"$1"):it||rt}),nt},getBaseIntrinsic=function s(o,et){var tt=o,nt;if(hasOwn$1(LEGACY_ALIASES,tt)&&(nt=LEGACY_ALIASES[tt],tt="%"+nt[0]+"%"),hasOwn$1(INTRINSICS,tt)){var rt=INTRINSICS[tt];if(rt===needsEval&&(rt=doEval(tt)),typeof rt>"u"&&!et)throw new $TypeError$3("intrinsic "+o+" exists, but is not available. Please file an issue!");return{alias:nt,name:tt,value:rt}}throw new $SyntaxError$1("intrinsic "+o+" does not exist!")},getIntrinsic=function s(o,et){if(typeof o!="string"||o.length===0)throw new $TypeError$3("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof et!="boolean")throw new $TypeError$3('"allowMissing" argument must be a boolean');if($exec(/^%?[^%]*%?$/,o)===null)throw new $SyntaxError$1("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var tt=stringToPath(o),nt=tt.length>0?tt[0]:"",rt=getBaseIntrinsic("%"+nt+"%",et),it=rt.name,ot=rt.value,st=!1,at=rt.alias;at&&(nt=at[0],$spliceApply(tt,$concat$1([0,1],at)));for(var lt=1,ut=!0;lt=tt.length){var pt=$gOPD$1(ot,dt);ut=!!pt,ut&&"get"in pt&&!("originalValue"in pt.get)?ot=pt.get:ot=ot[dt]}else ut=hasOwn$1(ot,dt),ot=ot[dt];ut&&!st&&(INTRINSICS[it]=ot)}}return ot},callBind$1={exports:{}},GetIntrinsic$5=getIntrinsic,$defineProperty$1=GetIntrinsic$5("%Object.defineProperty%",!0),hasPropertyDescriptors$1=function s(){if($defineProperty$1)try{return $defineProperty$1({},"a",{value:1}),!0}catch{return!1}return!1};hasPropertyDescriptors$1.hasArrayLengthDefineBug=function s(){if(!hasPropertyDescriptors$1())return null;try{return $defineProperty$1([],"length",{value:1}).length!==1}catch{return!0}};var hasPropertyDescriptors_1=hasPropertyDescriptors$1,GetIntrinsic$4=getIntrinsic,$gOPD=GetIntrinsic$4("%Object.getOwnPropertyDescriptor%",!0);if($gOPD)try{$gOPD([],"length")}catch{$gOPD=null}var gopd$1=$gOPD,hasPropertyDescriptors=hasPropertyDescriptors_1(),GetIntrinsic$3=getIntrinsic,$defineProperty=hasPropertyDescriptors&&GetIntrinsic$3("%Object.defineProperty%",!0);if($defineProperty)try{$defineProperty({},"a",{value:1})}catch{$defineProperty=!1}var $SyntaxError=GetIntrinsic$3("%SyntaxError%"),$TypeError$2=GetIntrinsic$3("%TypeError%"),gopd=gopd$1,defineDataProperty=function s(o,et,tt){if(!o||typeof o!="object"&&typeof o!="function")throw new $TypeError$2("`obj` must be an object or a function`");if(typeof et!="string"&&typeof et!="symbol")throw new $TypeError$2("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new $TypeError$2("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new $TypeError$2("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new $TypeError$2("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new $TypeError$2("`loose`, if provided, must be a boolean");var nt=arguments.length>3?arguments[3]:null,rt=arguments.length>4?arguments[4]:null,it=arguments.length>5?arguments[5]:null,ot=arguments.length>6?arguments[6]:!1,st=!!gopd&&gopd(o,et);if($defineProperty)$defineProperty(o,et,{configurable:it===null&&st?st.configurable:!it,enumerable:nt===null&&st?st.enumerable:!nt,value:tt,writable:rt===null&&st?st.writable:!rt});else if(ot||!nt&&!rt&&!it)o[et]=tt;else throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},GetIntrinsic$2=getIntrinsic,define=defineDataProperty,hasDescriptors=hasPropertyDescriptors_1(),gOPD=gopd$1,$TypeError$1=GetIntrinsic$2("%TypeError%"),$floor$1=GetIntrinsic$2("%Math.floor%"),setFunctionLength=function s(o,et){if(typeof o!="function")throw new $TypeError$1("`fn` is not a function");if(typeof et!="number"||et<0||et>4294967295||$floor$1(et)!==et)throw new $TypeError$1("`length` must be a positive 32-bit integer");var tt=arguments.length>2&&!!arguments[2],nt=!0,rt=!0;if("length"in o&&gOPD){var it=gOPD(o,"length");it&&!it.configurable&&(nt=!1),it&&!it.writable&&(rt=!1)}return(nt||rt||!tt)&&(hasDescriptors?define(o,"length",et,!0,!0):define(o,"length",et)),o};(function(s){var o=functionBind,et=getIntrinsic,tt=setFunctionLength,nt=et("%TypeError%"),rt=et("%Function.prototype.apply%"),it=et("%Function.prototype.call%"),ot=et("%Reflect.apply%",!0)||o.call(it,rt),st=et("%Object.defineProperty%",!0),at=et("%Math.max%");if(st)try{st({},"a",{value:1})}catch{st=null}s.exports=function(dt){if(typeof dt!="function")throw new nt("a function is required");var ht=ot(o,it,arguments);return tt(ht,1+at(0,dt.length-(arguments.length-1)),!0)};var lt=function(){return ot(o,rt,arguments)};st?st(s.exports,"apply",{value:lt}):s.exports.apply=lt})(callBind$1);var callBindExports=callBind$1.exports,GetIntrinsic$1=getIntrinsic,callBind=callBindExports,$indexOf=callBind(GetIntrinsic$1("String.prototype.indexOf")),callBound$1=function s(o,et){var tt=GetIntrinsic$1(o,!!et);return typeof tt=="function"&&$indexOf(o,".prototype.")>-1?callBind(tt):tt};const __viteBrowserExternal={},__viteBrowserExternal$1=Object.freeze(Object.defineProperty({__proto__:null,default:__viteBrowserExternal},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(__viteBrowserExternal$1);var hasMap=typeof Map=="function"&&Map.prototype,mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mapSize=hasMap&&mapSizeDescriptor&&typeof mapSizeDescriptor.get=="function"?mapSizeDescriptor.get:null,mapForEach=hasMap&&Map.prototype.forEach,hasSet=typeof Set=="function"&&Set.prototype,setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,setSize=hasSet&&setSizeDescriptor&&typeof setSizeDescriptor.get=="function"?setSizeDescriptor.get:null,setForEach=hasSet&&Set.prototype.forEach,hasWeakMap=typeof WeakMap=="function"&&WeakMap.prototype,weakMapHas=hasWeakMap?WeakMap.prototype.has:null,hasWeakSet=typeof WeakSet=="function"&&WeakSet.prototype,weakSetHas=hasWeakSet?WeakSet.prototype.has:null,hasWeakRef=typeof WeakRef=="function"&&WeakRef.prototype,weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null,booleanValueOf=Boolean.prototype.valueOf,objectToString$1=Object.prototype.toString,functionToString=Function.prototype.toString,$match=String.prototype.match,$slice=String.prototype.slice,$replace=String.prototype.replace,$toUpperCase=String.prototype.toUpperCase,$toLowerCase=String.prototype.toLowerCase,$test=RegExp.prototype.test,$concat=Array.prototype.concat,$join=Array.prototype.join,$arrSlice=Array.prototype.slice,$floor=Math.floor,bigIntValueOf=typeof BigInt=="function"?BigInt.prototype.valueOf:null,gOPS=Object.getOwnPropertySymbols,symToString=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,hasShammedSymbols=typeof Symbol=="function"&&typeof Symbol.iterator=="object",toStringTag=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===hasShammedSymbols||"symbol")?Symbol.toStringTag:null,isEnumerable=Object.prototype.propertyIsEnumerable,gPO=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(s){return s.__proto__}:null);function addNumericSeparator(s,o){if(s===1/0||s===-1/0||s!==s||s&&s>-1e3&&s<1e3||$test.call(/e/,o))return o;var et=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof s=="number"){var tt=s<0?-$floor(-s):$floor(s);if(tt!==s){var nt=String(tt),rt=$slice.call(o,nt.length+1);return $replace.call(nt,et,"$&_")+"."+$replace.call($replace.call(rt,/([0-9]{3})/g,"$&_"),/_$/,"")}}return $replace.call(o,et,"$&_")}var utilInspect=require$$0,inspectCustom=utilInspect.custom,inspectSymbol=isSymbol$1(inspectCustom)?inspectCustom:null,objectInspect=function s(o,et,tt,nt){var rt=et||{};if(has$3(rt,"quoteStyle")&&rt.quoteStyle!=="single"&&rt.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has$3(rt,"maxStringLength")&&(typeof rt.maxStringLength=="number"?rt.maxStringLength<0&&rt.maxStringLength!==1/0:rt.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var it=has$3(rt,"customInspect")?rt.customInspect:!0;if(typeof it!="boolean"&&it!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has$3(rt,"indent")&&rt.indent!==null&&rt.indent!==" "&&!(parseInt(rt.indent,10)===rt.indent&&rt.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(has$3(rt,"numericSeparator")&&typeof rt.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var ot=rt.numericSeparator;if(typeof o>"u")return"undefined";if(o===null)return"null";if(typeof o=="boolean")return o?"true":"false";if(typeof o=="string")return inspectString(o,rt);if(typeof o=="number"){if(o===0)return 1/0/o>0?"0":"-0";var st=String(o);return ot?addNumericSeparator(o,st):st}if(typeof o=="bigint"){var at=String(o)+"n";return ot?addNumericSeparator(o,at):at}var lt=typeof rt.depth>"u"?5:rt.depth;if(typeof tt>"u"&&(tt=0),tt>=lt&<>0&&typeof o=="object")return isArray$3(o)?"[Array]":"[Object]";var ut=getIndent(rt,tt);if(typeof nt>"u")nt=[];else if(indexOf(nt,o)>=0)return"[Circular]";function dt(xt,Ct,kt){if(Ct&&(nt=$arrSlice.call(nt),nt.push(Ct)),kt){var Nt={depth:rt.depth};return has$3(rt,"quoteStyle")&&(Nt.quoteStyle=rt.quoteStyle),s(xt,Nt,tt+1,nt)}return s(xt,rt,tt+1,nt)}if(typeof o=="function"&&!isRegExp$1(o)){var ht=nameOf(o),ct=arrObjKeys(o,dt);return"[Function"+(ht?": "+ht:" (anonymous)")+"]"+(ct.length>0?" { "+$join.call(ct,", ")+" }":"")}if(isSymbol$1(o)){var pt=hasShammedSymbols?$replace.call(String(o),/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(o);return typeof o=="object"&&!hasShammedSymbols?markBoxed(pt):pt}if(isElement(o)){for(var ft="<"+$toLowerCase.call(String(o.nodeName)),gt=o.attributes||[],yt=0;yt",ft}if(isArray$3(o)){if(o.length===0)return"[]";var Ut=arrObjKeys(o,dt);return ut&&!singleLineValues(Ut)?"["+indentedJoin(Ut,ut)+"]":"[ "+$join.call(Ut,", ")+" ]"}if(isError(o)){var Ft=arrObjKeys(o,dt);return!("cause"in Error.prototype)&&"cause"in o&&!isEnumerable.call(o,"cause")?"{ ["+String(o)+"] "+$join.call($concat.call("[cause]: "+dt(o.cause),Ft),", ")+" }":Ft.length===0?"["+String(o)+"]":"{ ["+String(o)+"] "+$join.call(Ft,", ")+" }"}if(typeof o=="object"&&it){if(inspectSymbol&&typeof o[inspectSymbol]=="function"&&utilInspect)return utilInspect(o,{depth:lt-tt});if(it!=="symbol"&&typeof o.inspect=="function")return o.inspect()}if(isMap(o)){var mt=[];return mapForEach&&mapForEach.call(o,function(xt,Ct){mt.push(dt(Ct,o,!0)+" => "+dt(xt,o))}),collectionOf("Map",mapSize.call(o),mt,ut)}if(isSet(o)){var vt=[];return setForEach&&setForEach.call(o,function(xt){vt.push(dt(xt,o))}),collectionOf("Set",setSize.call(o),vt,ut)}if(isWeakMap(o))return weakCollectionOf("WeakMap");if(isWeakSet(o))return weakCollectionOf("WeakSet");if(isWeakRef(o))return weakCollectionOf("WeakRef");if(isNumber(o))return markBoxed(dt(Number(o)));if(isBigInt(o))return markBoxed(dt(bigIntValueOf.call(o)));if(isBoolean(o))return markBoxed(booleanValueOf.call(o));if(isString(o))return markBoxed(dt(String(o)));if(typeof window<"u"&&o===window)return"{ [object Window] }";if(o===commonjsGlobal$2)return"{ [object globalThis] }";if(!isDate(o)&&!isRegExp$1(o)){var At=arrObjKeys(o,dt),Lt=gPO?gPO(o)===Object.prototype:o instanceof Object||o.constructor===Object,Rt=o instanceof Object?"":"null prototype",St=!Lt&&toStringTag&&Object(o)===o&&toStringTag in o?$slice.call(toStr(o),8,-1):Rt?"Object":"",Tt=Lt||typeof o.constructor!="function"?"":o.constructor.name?o.constructor.name+" ":"",Bt=Tt+(St||Rt?"["+$join.call($concat.call([],St||[],Rt||[]),": ")+"] ":"");return At.length===0?Bt+"{}":ut?Bt+"{"+indentedJoin(At,ut)+"}":Bt+"{ "+$join.call(At,", ")+" }"}return String(o)};function wrapQuotes(s,o,et){var tt=(et.quoteStyle||o)==="double"?'"':"'";return tt+s+tt}function quote(s){return $replace.call(String(s),/"/g,""")}function isArray$3(s){return toStr(s)==="[object Array]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isDate(s){return toStr(s)==="[object Date]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isRegExp$1(s){return toStr(s)==="[object RegExp]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isError(s){return toStr(s)==="[object Error]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isString(s){return toStr(s)==="[object String]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isNumber(s){return toStr(s)==="[object Number]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isBoolean(s){return toStr(s)==="[object Boolean]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isSymbol$1(s){if(hasShammedSymbols)return s&&typeof s=="object"&&s instanceof Symbol;if(typeof s=="symbol")return!0;if(!s||typeof s!="object"||!symToString)return!1;try{return symToString.call(s),!0}catch{}return!1}function isBigInt(s){if(!s||typeof s!="object"||!bigIntValueOf)return!1;try{return bigIntValueOf.call(s),!0}catch{}return!1}var hasOwn=Object.prototype.hasOwnProperty||function(s){return s in this};function has$3(s,o){return hasOwn.call(s,o)}function toStr(s){return objectToString$1.call(s)}function nameOf(s){if(s.name)return s.name;var o=$match.call(functionToString.call(s),/^function\s*([\w$]+)/);return o?o[1]:null}function indexOf(s,o){if(s.indexOf)return s.indexOf(o);for(var et=0,tt=s.length;eto.maxStringLength){var et=s.length-o.maxStringLength,tt="... "+et+" more character"+(et>1?"s":"");return inspectString($slice.call(s,0,o.maxStringLength),o)+tt}var nt=$replace.call($replace.call(s,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,lowbyte);return wrapQuotes(nt,"single",o)}function lowbyte(s){var o=s.charCodeAt(0),et={8:"b",9:"t",10:"n",12:"f",13:"r"}[o];return et?"\\"+et:"\\x"+(o<16?"0":"")+$toUpperCase.call(o.toString(16))}function markBoxed(s){return"Object("+s+")"}function weakCollectionOf(s){return s+" { ? }"}function collectionOf(s,o,et,tt){var nt=tt?indentedJoin(et,tt):$join.call(et,", ");return s+" ("+o+") {"+nt+"}"}function singleLineValues(s){for(var o=0;o=0)return!1;return!0}function getIndent(s,o){var et;if(s.indent===" ")et=" ";else if(typeof s.indent=="number"&&s.indent>0)et=$join.call(Array(s.indent+1)," ");else return null;return{base:et,prev:$join.call(Array(o+1),et)}}function indentedJoin(s,o){if(s.length===0)return"";var et=` `+o.prev+o.base;return et+$join.call(s,","+et)+` `+o.prev}function arrObjKeys(s,o){var et=isArray$3(s),tt=[];if(et){tt.length=s.length;for(var nt=0;nt1;){var et=o.pop(),tt=et.obj[et.prop];if(isArray$2(tt)){for(var nt=[],rt=0;rt=48&&at<=57||at>=65&&at<=90||at>=97&&at<=122||rt===formats$2.RFC1738&&(at===40||at===41)){ot+=it.charAt(st);continue}if(at<128){ot=ot+hexTable[at];continue}if(at<2048){ot=ot+(hexTable[192|at>>6]+hexTable[128|at&63]);continue}if(at<55296||at>=57344){ot=ot+(hexTable[224|at>>12]+hexTable[128|at>>6&63]+hexTable[128|at&63]);continue}st+=1,at=65536+((at&1023)<<10|it.charCodeAt(st)&1023),ot+=hexTable[240|at>>18]+hexTable[128|at>>12&63]+hexTable[128|at>>6&63]+hexTable[128|at&63]}return ot},compact=function s(o){for(var et=[{obj:{o},prop:"o"}],tt=[],nt=0;nt"u"&&(Ut=0)}if(typeof st=="function"?gt=st(et,gt):gt instanceof Date?gt=ut(gt):tt==="comma"&&isArray$1(gt)&&(gt=utils$1.maybeMap(gt,function(Nt){return Nt instanceof Date?ut(Nt):Nt})),gt===null){if(rt)return ot&&!ct?ot(et,defaults$1.encoder,pt,"key",dt):et;gt=""}if(isNonNullishPrimitive(gt)||utils$1.isBuffer(gt)){if(ot){var vt=ct?et:ot(et,defaults$1.encoder,pt,"key",dt);return[ht(vt)+"="+ht(ot(gt,defaults$1.encoder,pt,"value",dt))]}return[ht(et)+"="+ht(String(gt))]}var At=[];if(typeof gt>"u")return At;var Lt;if(tt==="comma"&&isArray$1(gt))ct&&ot&&(gt=utils$1.maybeMap(gt,ot)),Lt=[{value:gt.length>0?gt.join(",")||null:void 0}];else if(isArray$1(st))Lt=st;else{var Rt=Object.keys(gt);Lt=at?Rt.sort(at):Rt}for(var St=nt&&isArray$1(gt)&>.length===1?et+"[]":et,Tt=0;Tt"u"?defaults$1.allowDots:!!o.allowDots,charset:et,charsetSentinel:typeof o.charsetSentinel=="boolean"?o.charsetSentinel:defaults$1.charsetSentinel,delimiter:typeof o.delimiter>"u"?defaults$1.delimiter:o.delimiter,encode:typeof o.encode=="boolean"?o.encode:defaults$1.encode,encoder:typeof o.encoder=="function"?o.encoder:defaults$1.encoder,encodeValuesOnly:typeof o.encodeValuesOnly=="boolean"?o.encodeValuesOnly:defaults$1.encodeValuesOnly,filter:rt,format:tt,formatter:nt,serializeDate:typeof o.serializeDate=="function"?o.serializeDate:defaults$1.serializeDate,skipNulls:typeof o.skipNulls=="boolean"?o.skipNulls:defaults$1.skipNulls,sort:typeof o.sort=="function"?o.sort:null,strictNullHandling:typeof o.strictNullHandling=="boolean"?o.strictNullHandling:defaults$1.strictNullHandling}},stringify_1=function(s,o){var et=s,tt=normalizeStringifyOptions(o),nt,rt;typeof tt.filter=="function"?(rt=tt.filter,et=rt("",et)):isArray$1(tt.filter)&&(rt=tt.filter,nt=rt);var it=[];if(typeof et!="object"||et===null)return"";var ot;o&&o.arrayFormat in arrayPrefixGenerators?ot=o.arrayFormat:o&&"indices"in o?ot=o.indices?"indices":"repeat":ot="indices";var st=arrayPrefixGenerators[ot];if(o&&"commaRoundTrip"in o&&typeof o.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var at=st==="comma"&&o&&o.commaRoundTrip;nt||(nt=Object.keys(et)),tt.sort&&nt.sort(tt.sort);for(var lt=getSideChannel(),ut=0;ut0?ct+ht:""},utils=utils$2,has=Object.prototype.hasOwnProperty,isArray=Array.isArray,defaults={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:utils.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},interpretNumericEntities=function(s){return s.replace(/&#(\d+);/g,function(o,et){return String.fromCharCode(parseInt(et,10))})},parseArrayValue=function(s,o){return s&&typeof s=="string"&&o.comma&&s.indexOf(",")>-1?s.split(","):s},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function s(o,et){var tt={__proto__:null},nt=et.ignoreQueryPrefix?o.replace(/^\?/,""):o,rt=et.parameterLimit===1/0?void 0:et.parameterLimit,it=nt.split(et.delimiter,rt),ot=-1,st,at=et.charset;if(et.charsetSentinel)for(st=0;st-1&&(ct=isArray(ct)?[ct]:ct),has.call(tt,ht)?tt[ht]=utils.combine(tt[ht],ct):tt[ht]=ct}return tt},parseObject=function(s,o,et,tt){for(var nt=tt?o:parseArrayValue(o,et),rt=s.length-1;rt>=0;--rt){var it,ot=s[rt];if(ot==="[]"&&et.parseArrays)it=[].concat(nt);else{it=et.plainObjects?Object.create(null):{};var st=ot.charAt(0)==="["&&ot.charAt(ot.length-1)==="]"?ot.slice(1,-1):ot,at=parseInt(st,10);!et.parseArrays&&st===""?it={0:nt}:!isNaN(at)&&ot!==st&&String(at)===st&&at>=0&&et.parseArrays&&at<=et.arrayLimit?(it=[],it[at]=nt):st!=="__proto__"&&(it[st]=nt)}nt=it}return nt},parseKeys=function s(o,et,tt,nt){if(o){var rt=tt.allowDots?o.replace(/\.([^.[]+)/g,"[$1]"):o,it=/(\[[^[\]]*])/,ot=/(\[[^[\]]*])/g,st=tt.depth>0&&it.exec(rt),at=st?rt.slice(0,st.index):rt,lt=[];if(at){if(!tt.plainObjects&&has.call(Object.prototype,at)&&!tt.allowPrototypes)return;lt.push(at)}for(var ut=0;tt.depth>0&&(st=ot.exec(rt))!==null&&ut"u"?defaults.charset:o.charset;return{allowDots:typeof o.allowDots>"u"?defaults.allowDots:!!o.allowDots,allowPrototypes:typeof o.allowPrototypes=="boolean"?o.allowPrototypes:defaults.allowPrototypes,allowSparse:typeof o.allowSparse=="boolean"?o.allowSparse:defaults.allowSparse,arrayLimit:typeof o.arrayLimit=="number"?o.arrayLimit:defaults.arrayLimit,charset:et,charsetSentinel:typeof o.charsetSentinel=="boolean"?o.charsetSentinel:defaults.charsetSentinel,comma:typeof o.comma=="boolean"?o.comma:defaults.comma,decoder:typeof o.decoder=="function"?o.decoder:defaults.decoder,delimiter:typeof o.delimiter=="string"||utils.isRegExp(o.delimiter)?o.delimiter:defaults.delimiter,depth:typeof o.depth=="number"||o.depth===!1?+o.depth:defaults.depth,ignoreQueryPrefix:o.ignoreQueryPrefix===!0,interpretNumericEntities:typeof o.interpretNumericEntities=="boolean"?o.interpretNumericEntities:defaults.interpretNumericEntities,parameterLimit:typeof o.parameterLimit=="number"?o.parameterLimit:defaults.parameterLimit,parseArrays:o.parseArrays!==!1,plainObjects:typeof o.plainObjects=="boolean"?o.plainObjects:defaults.plainObjects,strictNullHandling:typeof o.strictNullHandling=="boolean"?o.strictNullHandling:defaults.strictNullHandling}},parse$1=function(s,o){var et=normalizeParseOptions(o);if(s===""||s===null||typeof s>"u")return et.plainObjects?Object.create(null):{};for(var tt=typeof s=="string"?parseValues(s,et):s,nt=et.plainObjects?Object.create(null):{},rt=Object.keys(tt),it=0;itnt.statusCode===404)}}}class FileClient extends BaseModelClient{uploadPartClient=new UploadPartClient;constructor(o){super(o,"files")}async uploadFile(o,et){const tt={fileName:et.name,fileSize:et.size},{fileId:nt,partSize:rt,partUrls:it,uploadId:ot}=await this.fetch("files/begin-upload",{token:o,method:"POST",body:JSON.stringify(tt)}),st=[];for(let lt=0;lt{const et=window.location.href.includes("dev=true"),tt=new FileClient(`https://api${et?"-dev":""}.formant.io/v1/admin`),nt=new Blob([JSON.stringify(o)],{type:"application/json"}),rt=new File([nt],`waypoints-${v1()}.json`);return await tt.uploadFile(s,rt)},TextInput=reactExports.forwardRef(({label:s,onChange:o,onEnter:et,value:tt,min:nt,max:rt,type:it=PROPERTY_TYPE.STRING},ot)=>{const st=React$1.useRef(null);return jsxs$2(TextInputContainer,{ref:st,children:[jsx$2("label",{children:s}),jsx$2("input",{ref:ot,value:tt,placeholder:"Edit",onChange:at=>{const lt=st.current.childNodes[1];if(it===PROPERTY_TYPE.FLOAT){const ut=lt.value.replace(/[^0-9.-]/g,"");lt.value=(parseFloat(ut)>rt?rt:parseFloat(ut)rt?rt:parseInt(ut){at.key==="Enter"&&et&&et()},onBlur:()=>et&&et()})]})}),getTaregt=s=>s.current,DropdownInput=reactExports.forwardRef(({label:s,content:o,onChange:et},tt)=>jsxs$2(DropdownContainer,{children:[jsx$2("label",{children:s}),jsx$2("select",{ref:tt,onChange:nt=>{et&&et(nt)},children:o.map((nt,rt)=>jsx$2("option",{value:rt,children:nt},rt))})]})),BooleanToggle=reactExports.forwardRef(({label:s,value:o=!1,onChange:et},tt)=>{const[nt,rt]=React$1.useState(o);return tt.current=ot=>rt(ot),jsxs$2(BooleanToggleContainer,{children:[jsx$2("label",{children:s}),jsxs$2("div",{onClick:()=>{rt(ot=>!ot),et&&et(!nt)},children:[jsx$2("div",{children:nt?"On":"Off"}),jsx$2("div",{children:nt?jsx$2(BooleanToggleTrueIcon,{}):jsx$2(BooleanToggleFalseIcon,{})})]})]})}),PropertyPanel=({waypointProperties:s,controlsStates:o})=>{const{waypoints:et,state:{selectedWaypoint:tt,isWaypointEditing:nt},updateState:rt,store:it,setWaypoints:ot}=o,[st,at]=reactExports.useState(!1),lt=[];for(let gt=0;gt{const gt=[];return s.forEach((yt,Ut)=>{const{propertyType:Ft}=yt;if(Ft===PROPERTY_TYPE.STRING)gt.push(jsx$2(TextInput,{ref:lt[Ut],label:yt.propertyName,onChange:mt=>{tt!==null&&(it.waypoints[tt][yt.propertyName]=mt.target.value)}},Ut));else if(Ft===PROPERTY_TYPE.INTEGER||Ft===PROPERTY_TYPE.FLOAT)gt.push(jsx$2(TextInput,{ref:lt[Ut],label:yt.propertyName,min:yt.min,max:yt.max,type:Ft===PROPERTY_TYPE.INTEGER?Ft:PROPERTY_TYPE.FLOAT,onChange:mt=>{tt!==null&&(it.waypoints[tt][yt.propertyName]=mt.target.value)}},Ut));else if(Ft===PROPERTY_TYPE.BOOLEAN)gt.push(jsx$2(BooleanToggle,{ref:lt[Ut],label:yt.propertyName,onChange:mt=>{tt!==null&&(it.waypoints[tt][yt.propertyName]=mt)}},Ut));else if(Ft===PROPERTY_TYPE.ENUM&&yt.enumLists){const{enumLists:mt}=yt,vt=mt.map(At=>At.enumList);gt.push(jsx$2(DropdownInput,{ref:lt[Ut],label:yt.propertyName,content:vt,onChange:At=>{if(tt===null)return;const Lt=parseInt(At.target.value);it.waypoints[tt][yt.propertyName]=[Lt,vt[Lt]]}},Ut))}}),gt},pt=()=>{if(tt===null)return;ot(yt=>yt.filter((Ut,Ft)=>Ft!==tt));const{waypoints:gt}=it;it.waypoints=gt.filter((yt,Ut)=>Ut!==tt),tt>0?rt({selectedWaypoint:tt-1}):gt.length>1?rt({selectedWaypoint:gt.length-2}):rt({selectedWaypoint:null})},ft=gt=>{if(tt!==null){let yt=parseFloat(getTaregt(gt==="x"?dt:ht).value);yt=isNaN(yt)?0:yt;const Ut=[...et];gt==="x"?Ut[tt].translation.x=yt:Ut[tt].translation.y=yt,ot(Ut),it.waypoints[tt]}};return reactExports.useEffect(()=>{const gt=yt=>{yt.key==="Delete"&&at(!0)};return window.addEventListener("keydown",gt),()=>window.removeEventListener("keydown",gt)},[]),reactExports.useEffect(()=>{if(!nt||et.length===0)return;if(tt===null){ut.current.value="",dt.current.value="",ht.current.value="",s.length>0&&s.forEach(({propertyType:At},Lt)=>{At===PROPERTY_TYPE.STRING||At===PROPERTY_TYPE.INTEGER?lt[Lt].current.value="":lt[Lt].current.value="0"});return}const{pose:gt}=it.waypoints[tt],{x:yt,y:Ut,z:Ft,w:mt}=gt.rotation,vt=new Euler().setFromQuaternion(new Quaternion(yt,Ut,Ft,mt));ut.current.value=MathUtils.radToDeg(vt.z).toFixed(2),dt.current.value=gt.translation.x.toFixed(2),ht.current.value=gt.translation.y.toFixed(2),s.length>0&&s.forEach((At,Lt)=>{if(At.propertyType===PROPERTY_TYPE.STRING){const Rt=it.waypoints[tt][At.propertyName];lt[Lt].current.value=Rt||At.stringDefault||"",it.waypoints[tt][At.propertyName]=lt[Lt].current.value}else if(At.propertyType===PROPERTY_TYPE.INTEGER){const Rt=it.waypoints[tt][At.propertyName];lt[Lt].current.value=Rt||(At.integerDefault!==void 0?At.integerDefault:At.min>0?At.min:0),it.waypoints[tt][At.propertyName]=lt[Lt].current.value}else if(At.propertyType===PROPERTY_TYPE.FLOAT){const Rt=it.waypoints[tt][At.propertyName];lt[Lt].current.value=Rt||(At.floatDefault!==void 0?At.floatDefault:At.min>0?At.min:0),it.waypoints[tt][At.propertyName]=lt[Lt].current.value}else if(At.propertyType===PROPERTY_TYPE.BOOLEAN){const Rt=it.waypoints[tt][At.propertyName],St=Rt!==void 0?Rt:At.booleanDefault!==void 0?At.booleanDefault:!1;it.waypoints[tt][At.propertyName]=St,lt[Lt].current(Rt)}else if(At.propertyType===PROPERTY_TYPE.ENUM){const{enumDefault:Rt,enumLists:St}=At;if(!St)return;const Tt=it.waypoints[tt][At.propertyName],Bt=[0,St[0].enumList];Tt?(Bt[0]=Tt[0],Bt[1]=Tt[1]):Rt!==void 0&&(Bt[0]=St.map(xt=>xt.enumList).indexOf(Rt),Bt[1]=Rt,Bt[0]===-1&&(Bt[0]=0,Bt[1]=St[0].enumList)),it.waypoints[tt][At.propertyName]=Bt,lt[Lt].current.value=Bt[0].toString()}})},[tt,et]),jsxs$2(Fragment$2,{children:[jsx$2(PanelContainer,{children:et.length>0?jsxs$2(Fragment$2,{children:[jsx$2(Typography$1,{children:"HEADING"}),jsx$2(TextInput,{ref:ut,label:"Orientation",type:PROPERTY_TYPE.FLOAT,onEnter:()=>{if(tt===null)return;let gt=parseFloat(getTaregt(ut).value);gt=isNaN(gt)?0:gt;const yt=new Euler(0,0,MathUtils.degToRad(gt)),{x:Ut,y:Ft,z:mt,w:vt}=new Quaternion().setFromEuler(yt),At=[...et];At[tt].rotation={x:Ut,y:Ft,z:mt,w:vt},ot(At),it.waypoints[tt].pose.rotation={x:Ut,y:Ft,z:mt,w:vt}}}),jsx$2(Typography$1,{marginTop:"20px",children:"POSITION"}),jsx$2(TextInput,{ref:dt,label:"X-axis",type:PROPERTY_TYPE.FLOAT,onEnter:()=>ft("x")}),jsx$2(TextInput,{ref:ht,label:"Y-axis",type:PROPERTY_TYPE.FLOAT,onEnter:()=>ft("y")}),s.length>0&&jsx$2(Typography$1,{marginTop:"20px",children:"PROPERTIES"}),ct(),jsx$2(Button$1,{variant:"contained",onClick:()=>{et.length!==0&&at(!0)},children:"Delete"})]}):jsx$2("p",{className:"description",children:'"Click Shift + Left click on the scene to drop a pin"'})}),st&&jsx$2(Modal,{content:["Delete","waypoint"],buttons:["CANCEL","DELETE"],handler1:()=>at(!1),handler2:()=>{at(!1),pt()}})]})},LoadingBar=({isWaypointPanelVisible:s,sending:o,setSending:et})=>{const tt=React$1.useRef(),[nt,rt]=React$1.useState(!1);return reactExports.useEffect(()=>(o===SENDING_STATUS.SUCCESS?tt.current=window.setTimeout(()=>{rt(!1)},4e3):clearTimeout(tt.current),()=>{tt.current&&clearTimeout(tt.current)}),[o]),reactExports.useEffect(()=>{rt(o!==SENDING_STATUS.NONE)},[o]),reactExports.useEffect(()=>{!s&&rt(s)},[s]),jsx$2(Fragment$2,{children:nt&&jsxs$2(LoadingBarContainer,{sending:o,children:[jsx$2("div",{}),jsx$2("p",{children:o===SENDING_STATUS.WAITING?"Sending waypoints to device":o===SENDING_STATUS.SUCCESS?"SUCCESS":"FAIL"}),o===SENDING_STATUS.FAIL&&jsx$2("span",{onClick:it=>{rt(!1),et(SENDING_STATUS.NONE)},children:jsx$2(CLoseIcon,{})})]})})},devMode=!window.location.href.includes("module"),MissionPlanning=({controlsStates:s,config:o})=>{const{waypoints:et,state:{isWaypointPanelVisible:tt,commandName:nt},updateState:rt,store:it,setWaypoints:ot}=s,[st,at]=reactExports.useState(!1),[lt,ut]=reactExports.useState(SENDING_STATUS.NONE),dt=o.missionPlanning&&o.missionPlanning.length>0?o.missionPlanning[0].waypointProperties||[]:[],ht=o.visualizations.map(gt=>gt.visualizationType).includes("Path"),ct=async()=>{if(!nt)return;const{waypoints:gt}=it;if(ut(SENDING_STATUS.WAITING),rt({isWaypointEditing:!1}),devMode)setTimeout(()=>{const yt=Math.random()>.5;ut(yt?SENDING_STATUS.SUCCESS:SENDING_STATUS.FAIL),rt({isWaypointEditing:!yt,hasPath:yt})},2e3);else{const yt=await Fleet.getCurrentDevice(),Ut=await upload(Authentication.token,{waypoints:gt}),Ft=await(await yt.sendCommand(nt,Ut.toString())).json(),mt=window.setInterval(async()=>{const vt=await(await yt.getCommand(Ft.id)).json();vt.success===!0&&(clearInterval(mt),ut(SENDING_STATUS.SUCCESS),rt({isWaypointEditing:!1})),vt.success===!1&&(clearInterval(mt),ut(SENDING_STATUS.FAIL),rt({isWaypointEditing:!0}))},2e3)}},pt=lt===SENDING_STATUS.WAITING,ft=et.length===0||lt===SENDING_STATUS.WAITING;return jsxs$2(Container,{children:[jsx$2(LoadingBar,{sending:lt,setSending:ut,isWaypointPanelVisible:tt}),jsx$2(ToggleIcon,{controlsStates:s,hasPathLayer:ht}),tt&&jsx$2(Fragment$2,{children:lt!==SENDING_STATUS.SUCCESS?jsxs$2(Fragment$2,{children:[jsx$2(PropertyPanel,{waypointProperties:dt,controlsStates:s}),st&&jsx$2(Modal,{content:["Are you sure you want to cancel","planning"],subContent:"This action will delete all your progress and you will need to start over",buttons:["BACK","CANCEL"],handler1:()=>at(!1),handler2:()=>{at(!1),rt({isWaypointPanelVisible:!1,isWaypointEditing:!1,hasPath:!0}),ot([]),it.waypoints=[]}}),jsxs$2(ControlButtonGroup,{disableBtn1:pt,disableBtn2:ft,children:[jsx$2(Button$1,{variant:"contained",onClick:()=>at(!0),disabled:pt,children:"Cancel"}),jsx$2(Button$1,{variant:"contained",onClick:()=>{et.length!==0&<!==SENDING_STATUS.WAITING&&ct()},disabled:ft,children:"Send Path"})]})]}):jsxs$2(ControlButtonGroup,{large:!0,children:[jsx$2(Button$1,{variant:"contained",onClick:()=>{rt({isWaypointEditing:!0,isWaypointPanelVisible:!0,hasWaypointsPath:!0}),ut(SENDING_STATUS.NONE)},children:"Edit"}),jsx$2(Button$1,{variant:"contained",onClick:()=>{rt({isWaypointPanelVisible:!1,hasPath:!0}),ut(SENDING_STATUS.NONE),ot([]),it.waypoints=[]},children:"Complete Planning"})]})})]})},Controls=styled.div` @@ -5722,7 +5722,7 @@ void main() { void main() { gl_FragColor = vec4(vColor, 1) * texture2D(pointCloudTexture, gl_PointCoord); - }`,PointCloudLayer=s=>{const{dataSource:o,useColors:et}=s,[tt,nt]=reactExports.useContext(UniverseDataContext),rt=reactExports.useContext(LayerContext),{state:{pointSize:it},updateState:ot}=useControlsContext(),[st,at]=reactExports.useState(null),lt=useLoader(TextureLoader,"./point-circle.png"),ut=reactExports.useRef(new ShaderMaterial({blendEquation:MaxEquation,blending:CustomBlending,depthTest:!0,depthWrite:!1,vertexShader,fragmentShader,uniforms:{pointCloudTexture:{value:lt},pointScale:{value:1},radius:{value:1},intensityMin:{value:0},intensityMax:{value:0},formantColors:{value:et?0:1},density:{value:1}},transparent:!0,vertexColors:!0})),dt=reactExports.useRef(new Points(new BufferGeometry,ut.current));reactExports.useEffect(()=>{ut.current&&(ut.current.uniforms.pointScale.value=it)},[it]),reactExports.useEffect(()=>{if(!rt)return;const{deviceId:pt}=rt;ot({hasPointCloud:!0});const ft=dt.current;if(ft.up=new Vector3(0,0,1),ft.frustumCulled=!1,o){const gt=(o.sourceType==="realtime"?nt:tt).subscribeToPointCloud(pt,o,yt=>{typeof yt!="symbol"&&at(yt)});return()=>{gt()}}},[rt,tt,nt,o]);const ht=()=>{const pt=st?.pcd?.positions?.reduce((gt,yt)=>(gt=(gt<<5)-gt+yt,gt|0),0),ft=st?.pcd?.colors?.reduce((gt,yt)=>(gt=(gt<<5)-gt+yt,gt|0),0);return pt+ft},ct=pt=>{if(st&&dt.current.userData.hash!==pt){const{positions:ft,colors:gt}=defined$1(st.pcd),yt={translation:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0,w:1}},Ut=st.worldToLocal?st.worldToLocal:yt,Ft=dt.current,mt=Ft.geometry;if(Ft.userData={hash:pt},ft&&ft.length>0){mt.setAttribute("position",new BufferAttribute(new Float32Array(ft),3)),mt.setAttribute("color",new BufferAttribute(new Float32Array(gt),4));let vt=0,At=0;if(gt!==void 0&>.length>0)for(let Ct=0;Ct50?50:Rt,Tt=4/3*Math.PI*Math.pow(St,3),Bt=Math.pow(Lt/(Tt||1),.3333);Ft.matrixAutoUpdate=!1,Ft.matrix.copy(transformMatrix(Ut));const xt=Ft.material;xt.uniforms.intensityMin.value=vt,xt.uniforms.intensityMax.value=At,xt.uniforms.radius.value=Rt,xt.uniforms.density.value=Bt,xt.needsUpdate=!0}}};if(st){const pt=ht();ct(pt)}return jsx$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:jsx$2("primitive",{object:dt.current})})},context=reactExports.createContext(null),vec1=new Vector3,vec2=new Vector3,calculateOffset=(s,o,et,tt)=>{const nt=o.dot(o),rt=o.dot(s)-o.dot(et),it=o.dot(tt);return it===0?-rt/nt:(vec1.copy(tt).multiplyScalar(nt/it).sub(o),vec2.copy(tt).multiplyScalar(rt/it).add(et).sub(s),-vec1.dot(vec2)/vec1.dot(vec1))},upV=new Vector3(0,1,0),offsetMatrix$1=new Matrix4,AxisArrow=({direction:s,axis:o})=>{const{translation:et,translationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context),gt=useThree(Ot=>Ot.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(0),[vt,At]=reactExports.useState(!1),Lt=reactExports.useCallback(Ot=>{nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`,yt.current.style.display="block"),Ot.stopPropagation();const Wt=new Matrix4().extractRotation(Ut.current.matrixWorld),Dt=Ot.point.clone(),Et=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Pt=s.clone().applyMatrix4(Wt).normalize();Ft.current={clickPoint:Dt,dir:Pt},mt.current=et.current[o],ht({component:"Arrow",axis:o,origin:Et,directions:[Pt]}),gt&&(gt.enabled=!1),Ot.target.setPointerCapture(Ot.pointerId)},[nt,s,gt,ht,et,o]),Rt=reactExports.useCallback(Ot=>{if(Ot.stopPropagation(),vt||At(!0),Ft.current){const{clickPoint:Wt,dir:Dt}=Ft.current,[Et,Pt]=tt?.[o]||[void 0,void 0];let zt=calculateOffset(Wt,Dt,Ot.ray.origin,Ot.ray.direction);Et!==void 0&&(zt=Math.max(zt,Et-mt.current)),Pt!==void 0&&(zt=Math.min(zt,Pt-mt.current)),et.current[o]=mt.current+zt,nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`),offsetMatrix$1.makeTranslation(Dt.x*zt,Dt.y*zt,Dt.z*zt),ct(offsetMatrix$1)}},[nt,ct,vt,et,tt,o]),St=reactExports.useCallback(Ot=>{nt&&(yt.current.style.display="none"),Ot.stopPropagation(),Ft.current=null,pt(),gt&&(gt.enabled=!0),Ot.target.releasePointerCapture(Ot.pointerId)},[nt,gt,pt]),Tt=reactExports.useCallback(Ot=>{Ot.stopPropagation(),At(!1)},[]),{cylinderLength:Bt,coneWidth:xt,coneLength:Ct,matrixL:kt}=reactExports.useMemo(()=>{const Ot=at?st/ot*1.6:ot/20,Wt=at?.2:ot/5,Dt=at?1-Wt:ot-Wt,Et=new Quaternion().setFromUnitVectors(upV,s.clone().normalize()),Pt=new Matrix4().makeRotationFromQuaternion(Et);return{cylinderLength:Dt,coneWidth:Ot,coneLength:Wt,matrixL:Pt}},[s,ot,st,at]),Nt=vt?ut:lt[o];return jsx$2("group",{ref:Ut,children:jsxs$2("group",{matrix:kt,matrixAutoUpdate:!1,onPointerDown:Lt,onPointerMove:Rt,onPointerUp:St,onPointerOut:Tt,children:[nt&&jsx$2(Html,{position:[0,-Ct,0],children:jsx$2("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})}),jsx$2("mesh",{visible:!1,position:[0,(Bt+Ct)/2,0],userData:ft,children:jsx$2("cylinderGeometry",{args:[xt*1.4,xt*1.4,Bt+Ct,8,1]})}),jsx$2(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:[0,0,0,0,Bt,0],lineWidth:st,color:Nt,opacity:dt,polygonOffset:!0,renderOrder:1,polygonOffsetFactor:-10}),jsxs$2("mesh",{raycast:()=>null,position:[0,Bt+Ct/2,0],renderOrder:500,children:[jsx$2("coneGeometry",{args:[.15,Ct,24,1]}),jsx$2("meshBasicMaterial",{transparent:!0,depthTest:it,color:Nt,opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10})]})]})})},decomposeIntoBasis=(s,o,et)=>{const tt=Math.abs(s.x)>=Math.abs(s.y)&&Math.abs(s.x)>=Math.abs(s.z)?0:Math.abs(s.y)>=Math.abs(s.x)&&Math.abs(s.y)>=Math.abs(s.z)?1:2,nt=[0,1,2].sort((ct,pt)=>Math.abs(o.getComponent(pt))-Math.abs(o.getComponent(ct))),rt=tt===nt[0]?nt[1]:nt[0],it=s.getComponent(tt),ot=s.getComponent(rt),st=o.getComponent(tt),at=o.getComponent(rt),lt=et.getComponent(tt),dt=(et.getComponent(rt)-lt*(ot/it))/(at-st*(ot/it));return[(lt-dt*st)/it,dt]},ray$1=new Ray$1,intersection$1=new Vector3,offsetMatrix=new Matrix4,PlaneSlider=({dir1:s,dir2:o,axis:et})=>{const{translation:tt,translationLimits:nt,annotations:rt,annotationsClass:it,depthTest:ot,scale:st,lineWidth:at,fixed:lt,axisColors:ut,hoveredColor:dt,opacity:ht,onDragStart:ct,onDrag:pt,onDragEnd:ft,userData:gt}=reactExports.useContext(context),yt=useThree(Wt=>Wt.controls),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(null),vt=reactExports.useRef(0),At=reactExports.useRef(0),[Lt,Rt]=reactExports.useState(!1),St=reactExports.useCallback(Wt=>{rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`,Ut.current.style.display="block"),Wt.stopPropagation();const Dt=Wt.point.clone(),Et=new Vector3().setFromMatrixPosition(Ft.current.matrixWorld),Pt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,0).normalize(),zt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,1).normalize(),en=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,2).normalize(),Kt=new Plane().setFromNormalAndCoplanarPoint(en,Et);mt.current={clickPoint:Dt,e1:Pt,e2:zt,plane:Kt},vt.current=tt.current[(et+1)%3],At.current=tt.current[(et+2)%3],ct({component:"Slider",axis:et,origin:Et,directions:[Pt,zt,en]}),yt&&(yt.enabled=!1),Wt.target.setPointerCapture(Wt.pointerId)},[rt,yt,ct,et]),Tt=reactExports.useCallback(Wt=>{if(Wt.stopPropagation(),Lt||Rt(!0),mt.current){const{clickPoint:Dt,e1:Et,e2:Pt,plane:zt}=mt.current,[en,Kt]=nt?.[(et+1)%3]||[void 0,void 0],[nn,Zt]=nt?.[(et+2)%3]||[void 0,void 0];ray$1.copy(Wt.ray),ray$1.intersectPlane(zt,intersection$1),ray$1.direction.negate(),ray$1.intersectPlane(zt,intersection$1),intersection$1.sub(Dt);let[jt,Vt]=decomposeIntoBasis(Et,Pt,intersection$1);en!==void 0&&(jt=Math.max(jt,en-vt.current)),Kt!==void 0&&(jt=Math.min(jt,Kt-vt.current)),nn!==void 0&&(Vt=Math.max(Vt,nn-At.current)),Zt!==void 0&&(Vt=Math.min(Vt,Zt-At.current)),tt.current[(et+1)%3]=vt.current+jt,tt.current[(et+2)%3]=At.current+Vt,rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`),offsetMatrix.makeTranslation(jt*Et.x+Vt*Pt.x,jt*Et.y+Vt*Pt.y,jt*Et.z+Vt*Pt.z),pt(offsetMatrix)}},[rt,pt,Lt,tt,nt,et]),Bt=reactExports.useCallback(Wt=>{rt&&(Ut.current.style.display="none"),Wt.stopPropagation(),mt.current=null,ft(),yt&&(yt.enabled=!0),Wt.target.releasePointerCapture(Wt.pointerId)},[rt,yt,ft]),xt=reactExports.useCallback(Wt=>{Wt.stopPropagation(),Rt(!1)},[]),Ct=reactExports.useMemo(()=>{const Wt=s.clone().normalize(),Dt=o.clone().normalize();return new Matrix4().makeBasis(Wt,Dt,Wt.clone().cross(Dt))},[s,o]),kt=lt?1/7:st/7,Nt=lt?.225:st*.225,Ot=Lt?dt:"#BAC4E2";return reactExports.useMemo(()=>[new Vector3(0,0,0),new Vector3(0,Nt,0),new Vector3(Nt,Nt,0),new Vector3(Nt,0,0),new Vector3(0,0,0)],[Nt]),jsxs$2("group",{ref:Ft,matrix:Ct,matrixAutoUpdate:!1,children:[rt&&jsx$2(Html,{position:[0,0,0],children:jsx$2("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:it,ref:Ut})}),jsxs$2("group",{position:[kt*1.7,kt*1.7,0],children:[jsxs$2("mesh",{visible:!0,onPointerDown:St,onPointerMove:Tt,onPointerUp:Bt,onPointerOut:xt,scale:Nt,userData:gt,children:[jsx$2("planeGeometry",{}),jsx$2("meshBasicMaterial",{transparent:!0,depthTest:ot,color:Ot,polygonOffset:!0,polygonOffsetFactor:-10,side:DoubleSide})]}),jsxs$2("mesh",{scale:Nt,children:[jsx$2("boxGeometry",{args:[1,1,.3]}),jsx$2("meshBasicMaterial",{transparent:!0,depthTest:ot,color:Ot,polygonOffset:!0,polygonOffsetFactor:-10,side:DoubleSide})]})]})]})};var NAN=0/0,symbolTag="[object Symbol]",reTrim=/^\s+|\s+$/g,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt,objectProto=Object.prototype,objectToString=objectProto.toString;function baseClamp(s,o,et){return s===s&&(et!==void 0&&(s=s<=et?s:et),o!==void 0&&(s=s>=o?s:o)),s}function isObject(s){var o=typeof s;return!!s&&(o=="object"||o=="function")}function isObjectLike(s){return!!s&&typeof s=="object"}function isSymbol(s){return typeof s=="symbol"||isObjectLike(s)&&objectToString.call(s)==symbolTag}function toNumber(s){if(typeof s=="number")return s;if(isSymbol(s))return NAN;if(isObject(s)){var o=typeof s.valueOf=="function"?s.valueOf():s;s=isObject(o)?o+"":o}if(typeof s!="string")return s===0?s:+s;s=s.replace(reTrim,"");var et=reIsBinary.test(s);return et||reIsOctal.test(s)?freeParseInt(s.slice(2),et?2:8):reIsBadHex.test(s)?NAN:+s}function clamp(s,o,et){return et===void 0&&(et=o,o=void 0),et!==void 0&&(et=toNumber(et),et=et===et?et:0),o!==void 0&&(o=toNumber(o),o=o===o?o:0),baseClamp(toNumber(s),o,et)}var lodash_clamp=clamp;const clamp$1=getDefaultExportFromCjs$1(lodash_clamp),clickDir=new Vector3,intersectionDir=new Vector3,toDegrees=s=>s*180/Math.PI,toRadians=s=>s*Math.PI/180,calculateAngle=(s,o,et,tt,nt)=>{clickDir.copy(s).sub(et),intersectionDir.copy(o).sub(et);const rt=tt.dot(tt),it=nt.dot(nt),ot=clickDir.dot(tt)/rt,st=clickDir.dot(nt)/it,at=intersectionDir.dot(tt)/rt,lt=intersectionDir.dot(nt)/it,ut=Math.atan2(st,ot);return Math.atan2(lt,at)-ut},fmod=(s,o)=>{let et=Math.floor(s/o);return et=et<0?et+1:et,s-et*o},minimizeAngle=s=>{let o=fmod(s,2*Math.PI);return Math.abs(o)<1e-6?0:(o<0&&(o+=2*Math.PI),o)},rotMatrix=new Matrix4,posNew=new Vector3,ray=new Ray$1,intersection=new Vector3,AxisRotator=({dir1:s,dir2:o,axis:et})=>{const{rotationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context),gt=useThree(Nt=>Nt.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(0),mt=reactExports.useRef(0),vt=reactExports.useRef(null),[At,Lt]=reactExports.useState(!1),Rt=reactExports.useCallback(Nt=>{nt&&(yt.current.innerText=`${toDegrees(mt.current).toFixed(0)}º`,yt.current.style.display="block"),Nt.stopPropagation();const Ot=Nt.point.clone(),Wt=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Dt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,0).normalize(),Et=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,1).normalize(),Pt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,2).normalize(),zt=new Plane().setFromNormalAndCoplanarPoint(Pt,Wt);vt.current={clickPoint:Ot,origin:Wt,e1:Dt,e2:Et,normal:Pt,plane:zt},ht({component:"Rotator",axis:et,origin:Wt,directions:[Dt,Et,Pt]}),gt&&(gt.enabled=!1),Nt.target.setPointerCapture(Nt.pointerId)},[nt,gt,ht,et]),St=reactExports.useCallback(Nt=>{if(Nt.stopPropagation(),At||Lt(!0),vt.current){const{clickPoint:Ot,origin:Wt,e1:Dt,e2:Et,normal:Pt,plane:zt}=vt.current,[en,Kt]=tt?.[et]||[void 0,void 0];ray.copy(Nt.ray),ray.intersectPlane(zt,intersection),ray.direction.negate(),ray.intersectPlane(zt,intersection);let nn=calculateAngle(Ot,intersection,Wt,Dt,Et),Zt=toDegrees(nn);Nt.shiftKey&&(Zt=Math.round(Zt/10)*10,nn=toRadians(Zt)),en!==void 0&&Kt!==void 0&&Kt-en<2*Math.PI?(nn=minimizeAngle(nn),nn=nn>Math.PI?nn-2*Math.PI:nn,nn=clamp$1(nn,en-Ft.current,Kt-Ft.current),mt.current=Ft.current+nn):(mt.current=minimizeAngle(Ft.current+nn),mt.current=mt.current>Math.PI?mt.current-2*Math.PI:mt.current),nt&&(Zt=toDegrees(mt.current),yt.current.innerText=`${Zt.toFixed(0)}º`),rotMatrix.makeRotationAxis(Pt,nn),posNew.copy(Wt).applyMatrix4(rotMatrix).sub(Wt).negate(),rotMatrix.setPosition(posNew),ct(rotMatrix)}},[nt,ct,At,tt,et]),Tt=reactExports.useCallback(Nt=>{nt&&(yt.current.style.display="none"),Nt.stopPropagation(),Ft.current=mt.current,vt.current=null,pt(),gt&&(gt.enabled=!0),Nt.target.releasePointerCapture(Nt.pointerId)},[nt,gt,pt]),Bt=reactExports.useCallback(Nt=>{Nt.stopPropagation(),Lt(!1)},[]),xt=reactExports.useMemo(()=>{const Nt=s.clone().normalize(),Ot=o.clone().normalize();return new Matrix4().makeBasis(Nt,Ot,Nt.clone().cross(Ot))},[s,o]),Ct=at?.65:ot*.65,kt=reactExports.useMemo(()=>{const Ot=[];for(let Wt=0;Wt<=32;Wt++){const Dt=Wt*(Math.PI/2)/32;Ot.push(new Vector3(Math.cos(Dt)*Ct,Math.sin(Dt)*Ct,0))}return Ot},[Ct]);return jsxs$2("group",{ref:Ut,onPointerDown:Rt,onPointerMove:St,onPointerUp:Tt,onPointerOut:Bt,matrix:xt,matrixAutoUpdate:!1,children:[nt&&jsx$2(Html,{position:[Ct,Ct,0],children:jsx$2("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})}),jsx$2(Line,{points:kt,lineWidth:st*4,visible:!1,userData:ft}),jsx$2(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:kt,lineWidth:st,color:At?ut:lt[et],opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10})]})},tV0=new Vector3,tV1=new Vector3,tV2=new Vector3,getPoint2=(s,o,et)=>{const tt=et.width/2,nt=et.height/2;o.updateMatrixWorld(!1);const rt=s.project(o);return rt.x=rt.x*tt+tt,rt.y=-(rt.y*nt)+nt,rt},getPoint3=(s,o,et,tt=1)=>{const nt=tV0.set(s.x/et.width*2-1,-(s.y/et.height)*2+1,tt);return nt.unproject(o),nt},calculateScaleFactor=(s,o,et,tt)=>{const nt=getPoint2(tV2.copy(s),et,tt);let rt=0;for(let it=0;it<2;++it){const ot=tV1.copy(nt).setComponent(it,nt.getComponent(it)+o),st=getPoint3(ot,et,tt,ot.z);rt=Math.max(rt,s.distanceTo(st))}return rt},mL0=new Matrix4,mW0=new Matrix4,mP=new Matrix4,mPInv=new Matrix4,mW=new Matrix4,mL=new Matrix4,mL0Inv=new Matrix4,mdL=new Matrix4,bb=new Box3,bbObj=new Box3,vCenter=new Vector3,vSize=new Vector3,vAnchorOffset=new Vector3,vPosition=new Vector3,xDir=new Vector3(1,0,0),yDir=new Vector3(0,1,0),zDir=new Vector3(0,0,1),PivotControls=reactExports.forwardRef(({matrix:s,onDragStart:o,onDrag:et,onDragEnd:tt,autoTransform:nt=!0,anchor:rt,disableAxes:it=!1,disableSliders:ot=!1,disableRotations:st=!1,activeAxes:at=[!0,!0,!0],offset:lt=[0,0,0],rotation:ut=[0,0,0],scale:dt=1,lineWidth:ht=4,fixed:ct=!1,translationLimits:pt,rotationLimits:ft,depthTest:gt=!0,axisColors:yt=["#ff2060","#20df80","#2080ff"],hoveredColor:Ut="#ffff40",annotations:Ft=!1,annotationsClass:mt,opacity:vt=1,visible:At=!0,userData:Lt,children:Rt,...St},Tt)=>{const Bt=useThree(Et=>Et.invalidate),xt=reactExports.useRef(null),Ct=reactExports.useRef(null),kt=reactExports.useRef(null),Nt=reactExports.useRef(null),Ot=reactExports.useRef([0,0,0]);reactExports.useLayoutEffect(()=>{rt&&(Nt.current.updateWorldMatrix(!0,!0),mPInv.copy(Nt.current.matrixWorld).invert(),bb.makeEmpty(),Nt.current.traverse(Et=>{Et.geometry&&(Et.geometry.boundingBox||Et.geometry.computeBoundingBox(),mL.copy(Et.matrixWorld).premultiply(mPInv),bbObj.copy(Et.geometry.boundingBox),bbObj.applyMatrix4(mL),bb.union(bbObj))}),vCenter.copy(bb.max).add(bb.min).multiplyScalar(.5),vSize.copy(bb.max).sub(bb.min).multiplyScalar(.5),vAnchorOffset.copy(vSize).multiply(new Vector3(...rt)).add(vCenter),vPosition.set(...lt).add(vAnchorOffset),kt.current.position.copy(vPosition),Bt())});const Wt=reactExports.useMemo(()=>({onDragStart:Et=>{mL0.copy(Ct.current.matrix),mW0.copy(Ct.current.matrixWorld),o&&o(Et),Bt()},onDrag:Et=>{mP.copy(xt.current.matrixWorld),mPInv.copy(mP).invert(),mW.copy(mW0).premultiply(Et),mL.copy(mW).premultiply(mPInv),mL0Inv.copy(mL0).invert(),mdL.copy(mL).multiply(mL0Inv),nt&&Ct.current.matrix.copy(mL),et&&et(mL,mdL,mW,Et),Bt()},onDragEnd:()=>{tt&&tt(),Bt()},translation:Ot,translationLimits:pt,rotationLimits:ft,axisColors:yt,hoveredColor:Ut,opacity:vt,scale:dt,lineWidth:ht,fixed:ct,depthTest:gt,userData:Lt,annotations:Ft,annotationsClass:mt}),[o,et,tt,Ot,pt,ft,gt,dt,ht,ct,...yt,Ut,vt,Lt,nt,Ft,mt]),Dt=new Vector3;return useFrame(Et=>{if(ct){const Pt=calculateScaleFactor(kt.current.getWorldPosition(Dt),dt,Et.camera,Et.size);kt.current&&(kt.current?.scale.x!==Pt||kt.current?.scale.y!==Pt||kt.current?.scale.z!==Pt)&&(kt.current.scale.setScalar(Pt),Et.invalidate())}}),reactExports.useImperativeHandle(Tt,()=>Ct.current,[]),reactExports.useLayoutEffect(()=>{s&&s instanceof Matrix4&&(Ct.current.matrix=s)},[s]),jsx$2(context.Provider,{value:Wt,children:jsx$2("group",{ref:xt,children:jsxs$2("group",{ref:Ct,matrix:s,matrixAutoUpdate:!1,...St,children:[jsxs$2("group",{visible:At,ref:kt,position:lt,rotation:ut,children:[!it&&at[0]&&jsx$2(AxisArrow,{axis:0,direction:xDir}),!it&&at[1]&&jsx$2(AxisArrow,{axis:1,direction:yDir}),!it&&at[2]&&jsx$2(AxisArrow,{axis:2,direction:zDir}),!ot&&at[0]&&at[1]&&jsx$2(PlaneSlider,{axis:2,dir1:xDir,dir2:yDir}),!ot&&at[0]&&at[2]&&jsx$2(PlaneSlider,{axis:1,dir1:zDir,dir2:xDir}),!ot&&at[2]&&at[1]&&jsx$2(PlaneSlider,{axis:0,dir1:yDir,dir2:zDir}),!st&&at[0]&&at[1]&&jsx$2(AxisRotator,{axis:2,dir1:xDir,dir2:yDir}),!st&&at[0]&&at[2]&&jsx$2(AxisRotator,{axis:1,dir1:zDir,dir2:xDir}),!st&&at[2]&&at[1]&&jsx$2(AxisRotator,{axis:0,dir1:yDir,dir2:zDir})]}),jsx$2("group",{ref:Nt,children:Rt})]})})})});class CircleMaterial extends ShaderMaterial{constructor(o,et){super(),this.uniforms={color1:{value:new Color$2(o)},color2:{value:new Color$2(et)}},this.vertexShader=` + }`,PointCloudLayer=s=>{const{dataSource:o,useColors:et}=s,[tt,nt]=reactExports.useContext(UniverseDataContext),rt=reactExports.useContext(LayerContext),{state:{pointSize:it},updateState:ot}=useControlsContext(),[st,at]=reactExports.useState(null),lt=useLoader(TextureLoader,"./point-circle.png"),ut=reactExports.useRef(new ShaderMaterial({blendEquation:MaxEquation,blending:CustomBlending,depthTest:!0,depthWrite:!1,vertexShader,fragmentShader,uniforms:{pointCloudTexture:{value:lt},pointScale:{value:1},radius:{value:1},intensityMin:{value:0},intensityMax:{value:0},formantColors:{value:et?0:1},density:{value:1}},transparent:!0,vertexColors:!0})),dt=reactExports.useRef(new Points(new BufferGeometry,ut.current));reactExports.useEffect(()=>{ut.current&&(ut.current.uniforms.pointScale.value=it)},[it]),reactExports.useEffect(()=>{if(!rt)return;const{deviceId:pt}=rt;ot({hasPointCloud:!0});const ft=dt.current;if(ft.up=new Vector3(0,0,1),ft.frustumCulled=!1,o){const gt=(o.sourceType==="realtime"?nt:tt).subscribeToPointCloud(pt,o,yt=>{typeof yt!="symbol"&&at(yt)});return()=>{gt()}}},[rt,tt,nt,o]);const ht=()=>{const pt=st?.pcd?.positions?.reduce((gt,yt)=>(gt=(gt<<5)-gt+yt,gt|0),0),ft=st?.pcd?.colors?.reduce((gt,yt)=>(gt=(gt<<5)-gt+yt,gt|0),0);return pt+ft},ct=pt=>{if(st&&dt.current.userData.hash!==pt){const{positions:ft,colors:gt}=defined$1(st.pcd),yt={translation:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0,w:1}},Ut=st.worldToLocal?st.worldToLocal:yt,Ft=dt.current,mt=Ft.geometry;if(Ft.userData={hash:pt},ft&&ft.length>0){mt.setAttribute("position",new BufferAttribute(new Float32Array(ft),3)),mt.setAttribute("color",new BufferAttribute(new Float32Array(gt),4));let vt=0,At=0;if(gt!==void 0&>.length>0)for(let Ct=0;Ct50?50:Rt,Tt=4/3*Math.PI*Math.pow(St,3),Bt=Math.pow(Lt/(Tt||1),.3333);Ft.matrixAutoUpdate=!1,Ft.matrix.copy(transformMatrix(Ut));const xt=Ft.material;xt.uniforms.intensityMin.value=vt,xt.uniforms.intensityMax.value=At,xt.uniforms.radius.value=Rt,xt.uniforms.density.value=Bt,xt.needsUpdate=!0}}};if(st){const pt=ht();ct(pt)}return jsx$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:jsx$2("primitive",{object:dt.current})})},context=reactExports.createContext(null),vec1=new Vector3,vec2=new Vector3,calculateOffset=(s,o,et,tt)=>{const nt=o.dot(o),rt=o.dot(s)-o.dot(et),it=o.dot(tt);return it===0?-rt/nt:(vec1.copy(tt).multiplyScalar(nt/it).sub(o),vec2.copy(tt).multiplyScalar(rt/it).add(et).sub(s),-vec1.dot(vec2)/vec1.dot(vec1))},upV=new Vector3(0,1,0),offsetMatrix$1=new Matrix4,AxisArrow=({direction:s,axis:o})=>{const{translation:et,translationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context),gt=useThree(Ot=>Ot.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(0),[vt,At]=reactExports.useState(!1),Lt=reactExports.useCallback(Ot=>{nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`,yt.current.style.display="block"),Ot.stopPropagation();const Jt=new Matrix4().extractRotation(Ut.current.matrixWorld),Dt=Ot.point.clone(),Et=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Pt=s.clone().applyMatrix4(Jt).normalize();Ft.current={clickPoint:Dt,dir:Pt},mt.current=et.current[o],ht({component:"Arrow",axis:o,origin:Et,directions:[Pt]}),gt&&(gt.enabled=!1),Ot.target.setPointerCapture(Ot.pointerId)},[nt,s,gt,ht,et,o]),Rt=reactExports.useCallback(Ot=>{if(Ot.stopPropagation(),vt||At(!0),Ft.current){const{clickPoint:Jt,dir:Dt}=Ft.current,[Et,Pt]=tt?.[o]||[void 0,void 0];let zt=calculateOffset(Jt,Dt,Ot.ray.origin,Ot.ray.direction);Et!==void 0&&(zt=Math.max(zt,Et-mt.current)),Pt!==void 0&&(zt=Math.min(zt,Pt-mt.current)),et.current[o]=mt.current+zt,nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`),offsetMatrix$1.makeTranslation(Dt.x*zt,Dt.y*zt,Dt.z*zt),ct(offsetMatrix$1)}},[nt,ct,vt,et,tt,o]),St=reactExports.useCallback(Ot=>{nt&&(yt.current.style.display="none"),Ot.stopPropagation(),Ft.current=null,pt(),gt&&(gt.enabled=!0),Ot.target.releasePointerCapture(Ot.pointerId)},[nt,gt,pt]),Tt=reactExports.useCallback(Ot=>{Ot.stopPropagation(),At(!1)},[]),{cylinderLength:Bt,coneWidth:xt,coneLength:Ct,matrixL:kt}=reactExports.useMemo(()=>{const Ot=at?st/ot*1.6:ot/20,Jt=at?.2:ot/5,Dt=at?1-Jt:ot-Jt,Et=new Quaternion().setFromUnitVectors(upV,s.clone().normalize()),Pt=new Matrix4().makeRotationFromQuaternion(Et);return{cylinderLength:Dt,coneWidth:Ot,coneLength:Jt,matrixL:Pt}},[s,ot,st,at]),Nt=vt?ut:lt[o];return jsx$2("group",{ref:Ut,children:jsxs$2("group",{matrix:kt,matrixAutoUpdate:!1,onPointerDown:Lt,onPointerMove:Rt,onPointerUp:St,onPointerOut:Tt,children:[nt&&jsx$2(Html,{position:[0,-Ct,0],children:jsx$2("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})}),jsx$2("mesh",{visible:!1,position:[0,(Bt+Ct)/2,0],userData:ft,children:jsx$2("cylinderGeometry",{args:[xt*1.4,xt*1.4,Bt+Ct,8,1]})}),jsx$2(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:[0,0,0,0,Bt,0],lineWidth:st,color:Nt,opacity:dt,polygonOffset:!0,renderOrder:1,polygonOffsetFactor:-10}),jsxs$2("mesh",{raycast:()=>null,position:[0,Bt+Ct/2,0],renderOrder:500,children:[jsx$2("coneGeometry",{args:[.15,Ct,24,1]}),jsx$2("meshBasicMaterial",{transparent:!0,depthTest:it,color:Nt,opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10})]})]})})},decomposeIntoBasis=(s,o,et)=>{const tt=Math.abs(s.x)>=Math.abs(s.y)&&Math.abs(s.x)>=Math.abs(s.z)?0:Math.abs(s.y)>=Math.abs(s.x)&&Math.abs(s.y)>=Math.abs(s.z)?1:2,nt=[0,1,2].sort((ct,pt)=>Math.abs(o.getComponent(pt))-Math.abs(o.getComponent(ct))),rt=tt===nt[0]?nt[1]:nt[0],it=s.getComponent(tt),ot=s.getComponent(rt),st=o.getComponent(tt),at=o.getComponent(rt),lt=et.getComponent(tt),dt=(et.getComponent(rt)-lt*(ot/it))/(at-st*(ot/it));return[(lt-dt*st)/it,dt]},ray$1=new Ray$1,intersection$1=new Vector3,offsetMatrix=new Matrix4,PlaneSlider=({dir1:s,dir2:o,axis:et})=>{const{translation:tt,translationLimits:nt,annotations:rt,annotationsClass:it,depthTest:ot,scale:st,lineWidth:at,fixed:lt,axisColors:ut,hoveredColor:dt,opacity:ht,onDragStart:ct,onDrag:pt,onDragEnd:ft,userData:gt}=reactExports.useContext(context),yt=useThree(Jt=>Jt.controls),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(null),vt=reactExports.useRef(0),At=reactExports.useRef(0),[Lt,Rt]=reactExports.useState(!1),St=reactExports.useCallback(Jt=>{rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`,Ut.current.style.display="block"),Jt.stopPropagation();const Dt=Jt.point.clone(),Et=new Vector3().setFromMatrixPosition(Ft.current.matrixWorld),Pt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,0).normalize(),zt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,1).normalize(),en=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,2).normalize(),Kt=new Plane().setFromNormalAndCoplanarPoint(en,Et);mt.current={clickPoint:Dt,e1:Pt,e2:zt,plane:Kt},vt.current=tt.current[(et+1)%3],At.current=tt.current[(et+2)%3],ct({component:"Slider",axis:et,origin:Et,directions:[Pt,zt,en]}),yt&&(yt.enabled=!1),Jt.target.setPointerCapture(Jt.pointerId)},[rt,yt,ct,et]),Tt=reactExports.useCallback(Jt=>{if(Jt.stopPropagation(),Lt||Rt(!0),mt.current){const{clickPoint:Dt,e1:Et,e2:Pt,plane:zt}=mt.current,[en,Kt]=nt?.[(et+1)%3]||[void 0,void 0],[nn,Zt]=nt?.[(et+2)%3]||[void 0,void 0];ray$1.copy(Jt.ray),ray$1.intersectPlane(zt,intersection$1),ray$1.direction.negate(),ray$1.intersectPlane(zt,intersection$1),intersection$1.sub(Dt);let[jt,Vt]=decomposeIntoBasis(Et,Pt,intersection$1);en!==void 0&&(jt=Math.max(jt,en-vt.current)),Kt!==void 0&&(jt=Math.min(jt,Kt-vt.current)),nn!==void 0&&(Vt=Math.max(Vt,nn-At.current)),Zt!==void 0&&(Vt=Math.min(Vt,Zt-At.current)),tt.current[(et+1)%3]=vt.current+jt,tt.current[(et+2)%3]=At.current+Vt,rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`),offsetMatrix.makeTranslation(jt*Et.x+Vt*Pt.x,jt*Et.y+Vt*Pt.y,jt*Et.z+Vt*Pt.z),pt(offsetMatrix)}},[rt,pt,Lt,tt,nt,et]),Bt=reactExports.useCallback(Jt=>{rt&&(Ut.current.style.display="none"),Jt.stopPropagation(),mt.current=null,ft(),yt&&(yt.enabled=!0),Jt.target.releasePointerCapture(Jt.pointerId)},[rt,yt,ft]),xt=reactExports.useCallback(Jt=>{Jt.stopPropagation(),Rt(!1)},[]),Ct=reactExports.useMemo(()=>{const Jt=s.clone().normalize(),Dt=o.clone().normalize();return new Matrix4().makeBasis(Jt,Dt,Jt.clone().cross(Dt))},[s,o]),kt=lt?1/7:st/7,Nt=lt?.225:st*.225,Ot=Lt?dt:"#BAC4E2";return reactExports.useMemo(()=>[new Vector3(0,0,0),new Vector3(0,Nt,0),new Vector3(Nt,Nt,0),new Vector3(Nt,0,0),new Vector3(0,0,0)],[Nt]),jsxs$2("group",{ref:Ft,matrix:Ct,matrixAutoUpdate:!1,children:[rt&&jsx$2(Html,{position:[0,0,0],children:jsx$2("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:it,ref:Ut})}),jsxs$2("group",{position:[kt*1.7,kt*1.7,0],children:[jsxs$2("mesh",{visible:!0,onPointerDown:St,onPointerMove:Tt,onPointerUp:Bt,onPointerOut:xt,scale:Nt,userData:gt,children:[jsx$2("planeGeometry",{}),jsx$2("meshBasicMaterial",{transparent:!0,depthTest:ot,color:Ot,polygonOffset:!0,polygonOffsetFactor:-10,side:DoubleSide})]}),jsxs$2("mesh",{scale:Nt,children:[jsx$2("boxGeometry",{args:[1,1,.3]}),jsx$2("meshBasicMaterial",{transparent:!0,depthTest:ot,color:Ot,polygonOffset:!0,polygonOffsetFactor:-10,side:DoubleSide})]})]})]})};var NAN=0/0,symbolTag="[object Symbol]",reTrim=/^\s+|\s+$/g,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt,objectProto=Object.prototype,objectToString=objectProto.toString;function baseClamp(s,o,et){return s===s&&(et!==void 0&&(s=s<=et?s:et),o!==void 0&&(s=s>=o?s:o)),s}function isObject(s){var o=typeof s;return!!s&&(o=="object"||o=="function")}function isObjectLike(s){return!!s&&typeof s=="object"}function isSymbol(s){return typeof s=="symbol"||isObjectLike(s)&&objectToString.call(s)==symbolTag}function toNumber(s){if(typeof s=="number")return s;if(isSymbol(s))return NAN;if(isObject(s)){var o=typeof s.valueOf=="function"?s.valueOf():s;s=isObject(o)?o+"":o}if(typeof s!="string")return s===0?s:+s;s=s.replace(reTrim,"");var et=reIsBinary.test(s);return et||reIsOctal.test(s)?freeParseInt(s.slice(2),et?2:8):reIsBadHex.test(s)?NAN:+s}function clamp(s,o,et){return et===void 0&&(et=o,o=void 0),et!==void 0&&(et=toNumber(et),et=et===et?et:0),o!==void 0&&(o=toNumber(o),o=o===o?o:0),baseClamp(toNumber(s),o,et)}var lodash_clamp=clamp;const clamp$1=getDefaultExportFromCjs$1(lodash_clamp),clickDir=new Vector3,intersectionDir=new Vector3,toDegrees=s=>s*180/Math.PI,toRadians=s=>s*Math.PI/180,calculateAngle=(s,o,et,tt,nt)=>{clickDir.copy(s).sub(et),intersectionDir.copy(o).sub(et);const rt=tt.dot(tt),it=nt.dot(nt),ot=clickDir.dot(tt)/rt,st=clickDir.dot(nt)/it,at=intersectionDir.dot(tt)/rt,lt=intersectionDir.dot(nt)/it,ut=Math.atan2(st,ot);return Math.atan2(lt,at)-ut},fmod=(s,o)=>{let et=Math.floor(s/o);return et=et<0?et+1:et,s-et*o},minimizeAngle=s=>{let o=fmod(s,2*Math.PI);return Math.abs(o)<1e-6?0:(o<0&&(o+=2*Math.PI),o)},rotMatrix=new Matrix4,posNew=new Vector3,ray=new Ray$1,intersection=new Vector3,AxisRotator=({dir1:s,dir2:o,axis:et})=>{const{rotationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context),gt=useThree(Nt=>Nt.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(0),mt=reactExports.useRef(0),vt=reactExports.useRef(null),[At,Lt]=reactExports.useState(!1),Rt=reactExports.useCallback(Nt=>{nt&&(yt.current.innerText=`${toDegrees(mt.current).toFixed(0)}º`,yt.current.style.display="block"),Nt.stopPropagation();const Ot=Nt.point.clone(),Jt=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Dt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,0).normalize(),Et=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,1).normalize(),Pt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,2).normalize(),zt=new Plane().setFromNormalAndCoplanarPoint(Pt,Jt);vt.current={clickPoint:Ot,origin:Jt,e1:Dt,e2:Et,normal:Pt,plane:zt},ht({component:"Rotator",axis:et,origin:Jt,directions:[Dt,Et,Pt]}),gt&&(gt.enabled=!1),Nt.target.setPointerCapture(Nt.pointerId)},[nt,gt,ht,et]),St=reactExports.useCallback(Nt=>{if(Nt.stopPropagation(),At||Lt(!0),vt.current){const{clickPoint:Ot,origin:Jt,e1:Dt,e2:Et,normal:Pt,plane:zt}=vt.current,[en,Kt]=tt?.[et]||[void 0,void 0];ray.copy(Nt.ray),ray.intersectPlane(zt,intersection),ray.direction.negate(),ray.intersectPlane(zt,intersection);let nn=calculateAngle(Ot,intersection,Jt,Dt,Et),Zt=toDegrees(nn);Nt.shiftKey&&(Zt=Math.round(Zt/10)*10,nn=toRadians(Zt)),en!==void 0&&Kt!==void 0&&Kt-en<2*Math.PI?(nn=minimizeAngle(nn),nn=nn>Math.PI?nn-2*Math.PI:nn,nn=clamp$1(nn,en-Ft.current,Kt-Ft.current),mt.current=Ft.current+nn):(mt.current=minimizeAngle(Ft.current+nn),mt.current=mt.current>Math.PI?mt.current-2*Math.PI:mt.current),nt&&(Zt=toDegrees(mt.current),yt.current.innerText=`${Zt.toFixed(0)}º`),rotMatrix.makeRotationAxis(Pt,nn),posNew.copy(Jt).applyMatrix4(rotMatrix).sub(Jt).negate(),rotMatrix.setPosition(posNew),ct(rotMatrix)}},[nt,ct,At,tt,et]),Tt=reactExports.useCallback(Nt=>{nt&&(yt.current.style.display="none"),Nt.stopPropagation(),Ft.current=mt.current,vt.current=null,pt(),gt&&(gt.enabled=!0),Nt.target.releasePointerCapture(Nt.pointerId)},[nt,gt,pt]),Bt=reactExports.useCallback(Nt=>{Nt.stopPropagation(),Lt(!1)},[]),xt=reactExports.useMemo(()=>{const Nt=s.clone().normalize(),Ot=o.clone().normalize();return new Matrix4().makeBasis(Nt,Ot,Nt.clone().cross(Ot))},[s,o]),Ct=at?.65:ot*.65,kt=reactExports.useMemo(()=>{const Ot=[];for(let Jt=0;Jt<=32;Jt++){const Dt=Jt*(Math.PI/2)/32;Ot.push(new Vector3(Math.cos(Dt)*Ct,Math.sin(Dt)*Ct,0))}return Ot},[Ct]);return jsxs$2("group",{ref:Ut,onPointerDown:Rt,onPointerMove:St,onPointerUp:Tt,onPointerOut:Bt,matrix:xt,matrixAutoUpdate:!1,children:[nt&&jsx$2(Html,{position:[Ct,Ct,0],children:jsx$2("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})}),jsx$2(Line,{points:kt,lineWidth:st*4,visible:!1,userData:ft}),jsx$2(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:kt,lineWidth:st,color:At?ut:lt[et],opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10})]})},tV0=new Vector3,tV1=new Vector3,tV2=new Vector3,getPoint2=(s,o,et)=>{const tt=et.width/2,nt=et.height/2;o.updateMatrixWorld(!1);const rt=s.project(o);return rt.x=rt.x*tt+tt,rt.y=-(rt.y*nt)+nt,rt},getPoint3=(s,o,et,tt=1)=>{const nt=tV0.set(s.x/et.width*2-1,-(s.y/et.height)*2+1,tt);return nt.unproject(o),nt},calculateScaleFactor=(s,o,et,tt)=>{const nt=getPoint2(tV2.copy(s),et,tt);let rt=0;for(let it=0;it<2;++it){const ot=tV1.copy(nt).setComponent(it,nt.getComponent(it)+o),st=getPoint3(ot,et,tt,ot.z);rt=Math.max(rt,s.distanceTo(st))}return rt},mL0=new Matrix4,mW0=new Matrix4,mP=new Matrix4,mPInv=new Matrix4,mW=new Matrix4,mL=new Matrix4,mL0Inv=new Matrix4,mdL=new Matrix4,bb=new Box3,bbObj=new Box3,vCenter=new Vector3,vSize=new Vector3,vAnchorOffset=new Vector3,vPosition=new Vector3,xDir=new Vector3(1,0,0),yDir=new Vector3(0,1,0),zDir=new Vector3(0,0,1),PivotControls=reactExports.forwardRef(({matrix:s,onDragStart:o,onDrag:et,onDragEnd:tt,autoTransform:nt=!0,anchor:rt,disableAxes:it=!1,disableSliders:ot=!1,disableRotations:st=!1,activeAxes:at=[!0,!0,!0],offset:lt=[0,0,0],rotation:ut=[0,0,0],scale:dt=1,lineWidth:ht=4,fixed:ct=!1,translationLimits:pt,rotationLimits:ft,depthTest:gt=!0,axisColors:yt=["#ff2060","#20df80","#2080ff"],hoveredColor:Ut="#ffff40",annotations:Ft=!1,annotationsClass:mt,opacity:vt=1,visible:At=!0,userData:Lt,children:Rt,...St},Tt)=>{const Bt=useThree(Et=>Et.invalidate),xt=reactExports.useRef(null),Ct=reactExports.useRef(null),kt=reactExports.useRef(null),Nt=reactExports.useRef(null),Ot=reactExports.useRef([0,0,0]);reactExports.useLayoutEffect(()=>{rt&&(Nt.current.updateWorldMatrix(!0,!0),mPInv.copy(Nt.current.matrixWorld).invert(),bb.makeEmpty(),Nt.current.traverse(Et=>{Et.geometry&&(Et.geometry.boundingBox||Et.geometry.computeBoundingBox(),mL.copy(Et.matrixWorld).premultiply(mPInv),bbObj.copy(Et.geometry.boundingBox),bbObj.applyMatrix4(mL),bb.union(bbObj))}),vCenter.copy(bb.max).add(bb.min).multiplyScalar(.5),vSize.copy(bb.max).sub(bb.min).multiplyScalar(.5),vAnchorOffset.copy(vSize).multiply(new Vector3(...rt)).add(vCenter),vPosition.set(...lt).add(vAnchorOffset),kt.current.position.copy(vPosition),Bt())});const Jt=reactExports.useMemo(()=>({onDragStart:Et=>{mL0.copy(Ct.current.matrix),mW0.copy(Ct.current.matrixWorld),o&&o(Et),Bt()},onDrag:Et=>{mP.copy(xt.current.matrixWorld),mPInv.copy(mP).invert(),mW.copy(mW0).premultiply(Et),mL.copy(mW).premultiply(mPInv),mL0Inv.copy(mL0).invert(),mdL.copy(mL).multiply(mL0Inv),nt&&Ct.current.matrix.copy(mL),et&&et(mL,mdL,mW,Et),Bt()},onDragEnd:()=>{tt&&tt(),Bt()},translation:Ot,translationLimits:pt,rotationLimits:ft,axisColors:yt,hoveredColor:Ut,opacity:vt,scale:dt,lineWidth:ht,fixed:ct,depthTest:gt,userData:Lt,annotations:Ft,annotationsClass:mt}),[o,et,tt,Ot,pt,ft,gt,dt,ht,ct,...yt,Ut,vt,Lt,nt,Ft,mt]),Dt=new Vector3;return useFrame(Et=>{if(ct){const Pt=calculateScaleFactor(kt.current.getWorldPosition(Dt),dt,Et.camera,Et.size);kt.current&&(kt.current?.scale.x!==Pt||kt.current?.scale.y!==Pt||kt.current?.scale.z!==Pt)&&(kt.current.scale.setScalar(Pt),Et.invalidate())}}),reactExports.useImperativeHandle(Tt,()=>Ct.current,[]),reactExports.useLayoutEffect(()=>{s&&s instanceof Matrix4&&(Ct.current.matrix=s)},[s]),jsx$2(context.Provider,{value:Jt,children:jsx$2("group",{ref:xt,children:jsxs$2("group",{ref:Ct,matrix:s,matrixAutoUpdate:!1,...St,children:[jsxs$2("group",{visible:At,ref:kt,position:lt,rotation:ut,children:[!it&&at[0]&&jsx$2(AxisArrow,{axis:0,direction:xDir}),!it&&at[1]&&jsx$2(AxisArrow,{axis:1,direction:yDir}),!it&&at[2]&&jsx$2(AxisArrow,{axis:2,direction:zDir}),!ot&&at[0]&&at[1]&&jsx$2(PlaneSlider,{axis:2,dir1:xDir,dir2:yDir}),!ot&&at[0]&&at[2]&&jsx$2(PlaneSlider,{axis:1,dir1:zDir,dir2:xDir}),!ot&&at[2]&&at[1]&&jsx$2(PlaneSlider,{axis:0,dir1:yDir,dir2:zDir}),!st&&at[0]&&at[1]&&jsx$2(AxisRotator,{axis:2,dir1:xDir,dir2:yDir}),!st&&at[0]&&at[2]&&jsx$2(AxisRotator,{axis:1,dir1:zDir,dir2:xDir}),!st&&at[2]&&at[1]&&jsx$2(AxisRotator,{axis:0,dir1:yDir,dir2:zDir})]}),jsx$2("group",{ref:Nt,children:Rt})]})})})});class CircleMaterial extends ShaderMaterial{constructor(o,et){super(),this.uniforms={color1:{value:new Color$2(o)},color2:{value:new Color$2(et)}},this.vertexShader=` varying vec3 vNormal; varying vec2 vUv; varying vec3 vPosition; @@ -5762,8 +5762,8 @@ Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/js JSZip uses the library pako released under the MIT license : https://github.com/nodeca/pako/blob/main/LICENSE -*/(function(s,o){(function(et){s.exports=et()})(function(){return function et(tt,nt,rt){function it(at,lt){if(!nt[at]){if(!tt[at]){var ut=typeof commonjsRequire=="function"&&commonjsRequire;if(!lt&&ut)return ut(at,!0);if(ot)return ot(at,!0);var dt=new Error("Cannot find module '"+at+"'");throw dt.code="MODULE_NOT_FOUND",dt}var ht=nt[at]={exports:{}};tt[at][0].call(ht.exports,function(ct){var pt=tt[at][1][ct];return it(pt||ct)},ht,ht.exports,et,tt,nt,rt)}return nt[at].exports}for(var ot=typeof commonjsRequire=="function"&&commonjsRequire,st=0;st>2,ht=(3&at)<<4|lt>>4,ct=1>6:64,pt=2>4,lt=(15&dt)<<4|(ht=ot.indexOf(st.charAt(pt++)))>>2,ut=(3&ht)<<6|(ct=ot.indexOf(st.charAt(pt++))),yt[ft++]=at,ht!==64&&(yt[ft++]=lt),ct!==64&&(yt[ft++]=ut);return yt}},{"./support":30,"./utils":32}],2:[function(et,tt,nt){var rt=et("./external"),it=et("./stream/DataWorker"),ot=et("./stream/Crc32Probe"),st=et("./stream/DataLengthProbe");function at(lt,ut,dt,ht,ct){this.compressedSize=lt,this.uncompressedSize=ut,this.crc32=dt,this.compression=ht,this.compressedContent=ct}at.prototype={getContentWorker:function(){var lt=new it(rt.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new st("data_length")),ut=this;return lt.on("end",function(){if(this.streamInfo.data_length!==ut.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),lt},getCompressedWorker:function(){return new it(rt.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},at.createWorkerFrom=function(lt,ut,dt){return lt.pipe(new ot).pipe(new st("uncompressedSize")).pipe(ut.compressWorker(dt)).pipe(new st("compressedSize")).withStreamInfo("compression",ut)},tt.exports=at},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(et,tt,nt){var rt=et("./stream/GenericWorker");nt.STORE={magic:"\0\0",compressWorker:function(){return new rt("STORE compression")},uncompressWorker:function(){return new rt("STORE decompression")}},nt.DEFLATE=et("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(et,tt,nt){var rt=et("./utils"),it=function(){for(var ot,st=[],at=0;at<256;at++){ot=at;for(var lt=0;lt<8;lt++)ot=1&ot?3988292384^ot>>>1:ot>>>1;st[at]=ot}return st}();tt.exports=function(ot,st){return ot!==void 0&&ot.length?rt.getTypeOf(ot)!=="string"?function(at,lt,ut,dt){var ht=it,ct=dt+ut;at^=-1;for(var pt=dt;pt>>8^ht[255&(at^lt[pt])];return-1^at}(0|st,ot,ot.length,0):function(at,lt,ut,dt){var ht=it,ct=dt+ut;at^=-1;for(var pt=dt;pt>>8^ht[255&(at^lt.charCodeAt(pt))];return-1^at}(0|st,ot,ot.length,0):0}},{"./utils":32}],5:[function(et,tt,nt){nt.base64=!1,nt.binary=!1,nt.dir=!1,nt.createFolders=!0,nt.date=null,nt.compression=null,nt.compressionOptions=null,nt.comment=null,nt.unixPermissions=null,nt.dosPermissions=null},{}],6:[function(et,tt,nt){var rt=null;rt=typeof Promise<"u"?Promise:et("lie"),tt.exports={Promise:rt}},{lie:37}],7:[function(et,tt,nt){var rt=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",it=et("pako"),ot=et("./utils"),st=et("./stream/GenericWorker"),at=rt?"uint8array":"array";function lt(ut,dt){st.call(this,"FlateWorker/"+ut),this._pako=null,this._pakoAction=ut,this._pakoOptions=dt,this.meta={}}nt.magic="\b\0",ot.inherits(lt,st),lt.prototype.processChunk=function(ut){this.meta=ut.meta,this._pako===null&&this._createPako(),this._pako.push(ot.transformTo(at,ut.data),!1)},lt.prototype.flush=function(){st.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},lt.prototype.cleanUp=function(){st.prototype.cleanUp.call(this),this._pako=null},lt.prototype._createPako=function(){this._pako=new it[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var ut=this;this._pako.onData=function(dt){ut.push({data:dt,meta:ut.meta})}},nt.compressWorker=function(ut){return new lt("Deflate",ut)},nt.uncompressWorker=function(){return new lt("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(et,tt,nt){function rt(ht,ct){var pt,ft="";for(pt=0;pt>>=8;return ft}function it(ht,ct,pt,ft,gt,yt){var Ut,Ft,mt=ht.file,vt=ht.compression,At=yt!==at.utf8encode,Lt=ot.transformTo("string",yt(mt.name)),Rt=ot.transformTo("string",at.utf8encode(mt.name)),St=mt.comment,Tt=ot.transformTo("string",yt(St)),Bt=ot.transformTo("string",at.utf8encode(St)),xt=Rt.length!==mt.name.length,Ct=Bt.length!==St.length,kt="",Nt="",Ot="",Wt=mt.dir,Dt=mt.date,Et={crc32:0,compressedSize:0,uncompressedSize:0};ct&&!pt||(Et.crc32=ht.crc32,Et.compressedSize=ht.compressedSize,Et.uncompressedSize=ht.uncompressedSize);var Pt=0;ct&&(Pt|=8),At||!xt&&!Ct||(Pt|=2048);var zt=0,en=0;Wt&&(zt|=16),gt==="UNIX"?(en=798,zt|=function(nn,Zt){var jt=nn;return nn||(jt=Zt?16893:33204),(65535&jt)<<16}(mt.unixPermissions,Wt)):(en=20,zt|=function(nn){return 63&(nn||0)}(mt.dosPermissions)),Ut=Dt.getUTCHours(),Ut<<=6,Ut|=Dt.getUTCMinutes(),Ut<<=5,Ut|=Dt.getUTCSeconds()/2,Ft=Dt.getUTCFullYear()-1980,Ft<<=4,Ft|=Dt.getUTCMonth()+1,Ft<<=5,Ft|=Dt.getUTCDate(),xt&&(Nt=rt(1,1)+rt(lt(Lt),4)+Rt,kt+="up"+rt(Nt.length,2)+Nt),Ct&&(Ot=rt(1,1)+rt(lt(Tt),4)+Bt,kt+="uc"+rt(Ot.length,2)+Ot);var Kt="";return Kt+=` -\0`,Kt+=rt(Pt,2),Kt+=vt.magic,Kt+=rt(Ut,2),Kt+=rt(Ft,2),Kt+=rt(Et.crc32,4),Kt+=rt(Et.compressedSize,4),Kt+=rt(Et.uncompressedSize,4),Kt+=rt(Lt.length,2),Kt+=rt(kt.length,2),{fileRecord:ut.LOCAL_FILE_HEADER+Kt+Lt+kt,dirRecord:ut.CENTRAL_FILE_HEADER+rt(en,2)+Kt+rt(Tt.length,2)+"\0\0\0\0"+rt(zt,4)+rt(ft,4)+Lt+kt+Tt}}var ot=et("../utils"),st=et("../stream/GenericWorker"),at=et("../utf8"),lt=et("../crc32"),ut=et("../signature");function dt(ht,ct,pt,ft){st.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=ct,this.zipPlatform=pt,this.encodeFileName=ft,this.streamFiles=ht,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}ot.inherits(dt,st),dt.prototype.push=function(ht){var ct=ht.meta.percent||0,pt=this.entriesCount,ft=this._sources.length;this.accumulate?this.contentBuffer.push(ht):(this.bytesWritten+=ht.data.length,st.prototype.push.call(this,{data:ht.data,meta:{currentFile:this.currentFile,percent:pt?(ct+100*(pt-ft-1))/pt:100}}))},dt.prototype.openedSource=function(ht){this.currentSourceOffset=this.bytesWritten,this.currentFile=ht.file.name;var ct=this.streamFiles&&!ht.file.dir;if(ct){var pt=it(ht,ct,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:pt.fileRecord,meta:{percent:0}})}else this.accumulate=!0},dt.prototype.closedSource=function(ht){this.accumulate=!1;var ct=this.streamFiles&&!ht.file.dir,pt=it(ht,ct,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(pt.dirRecord),ct)this.push({data:function(ft){return ut.DATA_DESCRIPTOR+rt(ft.crc32,4)+rt(ft.compressedSize,4)+rt(ft.uncompressedSize,4)}(ht),meta:{percent:100}});else for(this.push({data:pt.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},dt.prototype.flush=function(){for(var ht=this.bytesWritten,ct=0;ct=this.index;st--)at=(at<<8)+this.byteAt(st);return this.index+=ot,at},readString:function(ot){return rt.transformTo("string",this.readData(ot))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var ot=this.readInt(4);return new Date(Date.UTC(1980+(ot>>25&127),(ot>>21&15)-1,ot>>16&31,ot>>11&31,ot>>5&63,(31&ot)<<1))}},tt.exports=it},{"../utils":32}],19:[function(et,tt,nt){var rt=et("./Uint8ArrayReader");function it(ot){rt.call(this,ot)}et("../utils").inherits(it,rt),it.prototype.readData=function(ot){this.checkOffset(ot);var st=this.data.slice(this.zero+this.index,this.zero+this.index+ot);return this.index+=ot,st},tt.exports=it},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(et,tt,nt){var rt=et("./DataReader");function it(ot){rt.call(this,ot)}et("../utils").inherits(it,rt),it.prototype.byteAt=function(ot){return this.data.charCodeAt(this.zero+ot)},it.prototype.lastIndexOfSignature=function(ot){return this.data.lastIndexOf(ot)-this.zero},it.prototype.readAndCheckSignature=function(ot){return ot===this.readData(4)},it.prototype.readData=function(ot){this.checkOffset(ot);var st=this.data.slice(this.zero+this.index,this.zero+this.index+ot);return this.index+=ot,st},tt.exports=it},{"../utils":32,"./DataReader":18}],21:[function(et,tt,nt){var rt=et("./ArrayReader");function it(ot){rt.call(this,ot)}et("../utils").inherits(it,rt),it.prototype.readData=function(ot){if(this.checkOffset(ot),ot===0)return new Uint8Array(0);var st=this.data.subarray(this.zero+this.index,this.zero+this.index+ot);return this.index+=ot,st},tt.exports=it},{"../utils":32,"./ArrayReader":17}],22:[function(et,tt,nt){var rt=et("../utils"),it=et("../support"),ot=et("./ArrayReader"),st=et("./StringReader"),at=et("./NodeBufferReader"),lt=et("./Uint8ArrayReader");tt.exports=function(ut){var dt=rt.getTypeOf(ut);return rt.checkSupport(dt),dt!=="string"||it.uint8array?dt==="nodebuffer"?new at(ut):it.uint8array?new lt(rt.transformTo("uint8array",ut)):new ot(rt.transformTo("array",ut)):new st(ut)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(et,tt,nt){nt.LOCAL_FILE_HEADER="PK",nt.CENTRAL_FILE_HEADER="PK",nt.CENTRAL_DIRECTORY_END="PK",nt.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",nt.ZIP64_CENTRAL_DIRECTORY_END="PK",nt.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(et,tt,nt){var rt=et("./GenericWorker"),it=et("../utils");function ot(st){rt.call(this,"ConvertWorker to "+st),this.destType=st}it.inherits(ot,rt),ot.prototype.processChunk=function(st){this.push({data:it.transformTo(this.destType,st.data),meta:st.meta})},tt.exports=ot},{"../utils":32,"./GenericWorker":28}],25:[function(et,tt,nt){var rt=et("./GenericWorker"),it=et("../crc32");function ot(){rt.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}et("../utils").inherits(ot,rt),ot.prototype.processChunk=function(st){this.streamInfo.crc32=it(st.data,this.streamInfo.crc32||0),this.push(st)},tt.exports=ot},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(et,tt,nt){var rt=et("../utils"),it=et("./GenericWorker");function ot(st){it.call(this,"DataLengthProbe for "+st),this.propName=st,this.withStreamInfo(st,0)}rt.inherits(ot,it),ot.prototype.processChunk=function(st){if(st){var at=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=at+st.data.length}it.prototype.processChunk.call(this,st)},tt.exports=ot},{"../utils":32,"./GenericWorker":28}],27:[function(et,tt,nt){var rt=et("../utils"),it=et("./GenericWorker");function ot(st){it.call(this,"DataWorker");var at=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,st.then(function(lt){at.dataIsReady=!0,at.data=lt,at.max=lt&<.length||0,at.type=rt.getTypeOf(lt),at.isPaused||at._tickAndRepeat()},function(lt){at.error(lt)})}rt.inherits(ot,it),ot.prototype.cleanUp=function(){it.prototype.cleanUp.call(this),this.data=null},ot.prototype.resume=function(){return!!it.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,rt.delay(this._tickAndRepeat,[],this)),!0)},ot.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(rt.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},ot.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var st=null,at=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":st=this.data.substring(this.index,at);break;case"uint8array":st=this.data.subarray(this.index,at);break;case"array":case"nodebuffer":st=this.data.slice(this.index,at)}return this.index=at,this.push({data:st,meta:{percent:this.max?this.index/this.max*100:0}})},tt.exports=ot},{"../utils":32,"./GenericWorker":28}],28:[function(et,tt,nt){function rt(it){this.name=it||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}rt.prototype={push:function(it){this.emit("data",it)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(it){this.emit("error",it)}return!0},error:function(it){return!this.isFinished&&(this.isPaused?this.generatedError=it:(this.isFinished=!0,this.emit("error",it),this.previous&&this.previous.error(it),this.cleanUp()),!0)},on:function(it,ot){return this._listeners[it].push(ot),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(it,ot){if(this._listeners[it])for(var st=0;st "+it:it}},tt.exports=rt},{}],29:[function(et,tt,nt){var rt=et("../utils"),it=et("./ConvertWorker"),ot=et("./GenericWorker"),st=et("../base64"),at=et("../support"),lt=et("../external"),ut=null;if(at.nodestream)try{ut=et("../nodejs/NodejsStreamOutputAdapter")}catch{}function dt(ct,pt){return new lt.Promise(function(ft,gt){var yt=[],Ut=ct._internalType,Ft=ct._outputType,mt=ct._mimeType;ct.on("data",function(vt,At){yt.push(vt),pt&&pt(At)}).on("error",function(vt){yt=[],gt(vt)}).on("end",function(){try{var vt=function(At,Lt,Rt){switch(At){case"blob":return rt.newBlob(rt.transformTo("arraybuffer",Lt),Rt);case"base64":return st.encode(Lt);default:return rt.transformTo(At,Lt)}}(Ft,function(At,Lt){var Rt,St=0,Tt=null,Bt=0;for(Rt=0;Rt"u")nt.blob=!1;else{var rt=new ArrayBuffer(0);try{nt.blob=new Blob([rt],{type:"application/zip"}).size===0}catch{try{var it=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);it.append(rt),nt.blob=it.getBlob("application/zip").size===0}catch{nt.blob=!1}}}try{nt.nodestream=!!et("readable-stream").Readable}catch{nt.nodestream=!1}},{"readable-stream":16}],31:[function(et,tt,nt){for(var rt=et("./utils"),it=et("./support"),ot=et("./nodejsUtils"),st=et("./stream/GenericWorker"),at=new Array(256),lt=0;lt<256;lt++)at[lt]=252<=lt?6:248<=lt?5:240<=lt?4:224<=lt?3:192<=lt?2:1;at[254]=at[254]=1;function ut(){st.call(this,"utf-8 decode"),this.leftOver=null}function dt(){st.call(this,"utf-8 encode")}nt.utf8encode=function(ht){return it.nodebuffer?ot.newBufferFrom(ht,"utf-8"):function(ct){var pt,ft,gt,yt,Ut,Ft=ct.length,mt=0;for(yt=0;yt>>6:(ft<65536?pt[Ut++]=224|ft>>>12:(pt[Ut++]=240|ft>>>18,pt[Ut++]=128|ft>>>12&63),pt[Ut++]=128|ft>>>6&63),pt[Ut++]=128|63&ft);return pt}(ht)},nt.utf8decode=function(ht){return it.nodebuffer?rt.transformTo("nodebuffer",ht).toString("utf-8"):function(ct){var pt,ft,gt,yt,Ut=ct.length,Ft=new Array(2*Ut);for(pt=ft=0;pt>10&1023,Ft[ft++]=56320|1023>)}return Ft.length!==ft&&(Ft.subarray?Ft=Ft.subarray(0,ft):Ft.length=ft),rt.applyFromCharCode(Ft)}(ht=rt.transformTo(it.uint8array?"uint8array":"array",ht))},rt.inherits(ut,st),ut.prototype.processChunk=function(ht){var ct=rt.transformTo(it.uint8array?"uint8array":"array",ht.data);if(this.leftOver&&this.leftOver.length){if(it.uint8array){var pt=ct;(ct=new Uint8Array(pt.length+this.leftOver.length)).set(this.leftOver,0),ct.set(pt,this.leftOver.length)}else ct=this.leftOver.concat(ct);this.leftOver=null}var ft=function(yt,Ut){var Ft;for((Ut=Ut||yt.length)>yt.length&&(Ut=yt.length),Ft=Ut-1;0<=Ft&&(192&yt[Ft])==128;)Ft--;return Ft<0||Ft===0?Ut:Ft+at[yt[Ft]]>Ut?Ft:Ut}(ct),gt=ct;ft!==ct.length&&(it.uint8array?(gt=ct.subarray(0,ft),this.leftOver=ct.subarray(ft,ct.length)):(gt=ct.slice(0,ft),this.leftOver=ct.slice(ft,ct.length))),this.push({data:nt.utf8decode(gt),meta:ht.meta})},ut.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:nt.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},nt.Utf8DecodeWorker=ut,rt.inherits(dt,st),dt.prototype.processChunk=function(ht){this.push({data:nt.utf8encode(ht.data),meta:ht.meta})},nt.Utf8EncodeWorker=dt},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(et,tt,nt){var rt=et("./support"),it=et("./base64"),ot=et("./nodejsUtils"),st=et("./external");function at(pt){return pt}function lt(pt,ft){for(var gt=0;gt>8;this.dir=!!(16&this.externalFileAttributes),ht==0&&(this.dosPermissions=63&this.externalFileAttributes),ht==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var ht=rt(this.extraFields[1].value);this.uncompressedSize===it.MAX_VALUE_32BITS&&(this.uncompressedSize=ht.readInt(8)),this.compressedSize===it.MAX_VALUE_32BITS&&(this.compressedSize=ht.readInt(8)),this.localHeaderOffset===it.MAX_VALUE_32BITS&&(this.localHeaderOffset=ht.readInt(8)),this.diskNumberStart===it.MAX_VALUE_32BITS&&(this.diskNumberStart=ht.readInt(4))}},readExtraFields:function(ht){var ct,pt,ft,gt=ht.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});ht.index+4>>6:(ht<65536?dt[ft++]=224|ht>>>12:(dt[ft++]=240|ht>>>18,dt[ft++]=128|ht>>>12&63),dt[ft++]=128|ht>>>6&63),dt[ft++]=128|63&ht);return dt},nt.buf2binstring=function(ut){return lt(ut,ut.length)},nt.binstring2buf=function(ut){for(var dt=new rt.Buf8(ut.length),ht=0,ct=dt.length;ht>10&1023,yt[ct++]=56320|1023&pt)}return lt(yt,ct)},nt.utf8border=function(ut,dt){var ht;for((dt=dt||ut.length)>ut.length&&(dt=ut.length),ht=dt-1;0<=ht&&(192&ut[ht])==128;)ht--;return ht<0||ht===0?dt:ht+st[ut[ht]]>dt?ht:dt}},{"./common":41}],43:[function(et,tt,nt){tt.exports=function(rt,it,ot,st){for(var at=65535&rt|0,lt=rt>>>16&65535|0,ut=0;ot!==0;){for(ot-=ut=2e3>>1:it>>>1;ot[st]=it}return ot}();tt.exports=function(it,ot,st,at){var lt=rt,ut=at+st;it^=-1;for(var dt=at;dt>>8^lt[255&(it^ot[dt])];return-1^it}},{}],46:[function(et,tt,nt){var rt,it=et("../utils/common"),ot=et("./trees"),st=et("./adler32"),at=et("./crc32"),lt=et("./messages"),ut=0,dt=4,ht=0,ct=-2,pt=-1,ft=4,gt=2,yt=8,Ut=9,Ft=286,mt=30,vt=19,At=2*Ft+1,Lt=15,Rt=3,St=258,Tt=St+Rt+1,Bt=42,xt=113,Ct=1,kt=2,Nt=3,Ot=4;function Wt(Xt,dn){return Xt.msg=lt[dn],dn}function Dt(Xt){return(Xt<<1)-(4Xt.avail_out&&(_n=Xt.avail_out),_n!==0&&(it.arraySet(Xt.output,dn.pending_buf,dn.pending_out,_n,Xt.next_out),Xt.next_out+=_n,dn.pending_out+=_n,Xt.total_out+=_n,Xt.avail_out-=_n,dn.pending-=_n,dn.pending===0&&(dn.pending_out=0))}function zt(Xt,dn){ot._tr_flush_block(Xt,0<=Xt.block_start?Xt.block_start:-1,Xt.strstart-Xt.block_start,dn),Xt.block_start=Xt.strstart,Pt(Xt.strm)}function en(Xt,dn){Xt.pending_buf[Xt.pending++]=dn}function Kt(Xt,dn){Xt.pending_buf[Xt.pending++]=dn>>>8&255,Xt.pending_buf[Xt.pending++]=255&dn}function nn(Xt,dn){var _n,Fn,Un=Xt.max_chain_length,On=Xt.strstart,gn=Xt.prev_length,hn=Xt.nice_match,wn=Xt.strstart>Xt.w_size-Tt?Xt.strstart-(Xt.w_size-Tt):0,Zn=Xt.window,Pn=Xt.w_mask,$n=Xt.prev,Tr=Xt.strstart+St,Qr=Zn[On+gn-1],_r=Zn[On+gn];Xt.prev_length>=Xt.good_match&&(Un>>=2),hn>Xt.lookahead&&(hn=Xt.lookahead);do if(Zn[(_n=dn)+gn]===_r&&Zn[_n+gn-1]===Qr&&Zn[_n]===Zn[On]&&Zn[++_n]===Zn[On+1]){On+=2,_n++;do;while(Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Onwn&&--Un!=0);return gn<=Xt.lookahead?gn:Xt.lookahead}function Zt(Xt){var dn,_n,Fn,Un,On,gn,hn,wn,Zn,Pn,$n=Xt.w_size;do{if(Un=Xt.window_size-Xt.lookahead-Xt.strstart,Xt.strstart>=$n+($n-Tt)){for(it.arraySet(Xt.window,Xt.window,$n,$n,0),Xt.match_start-=$n,Xt.strstart-=$n,Xt.block_start-=$n,dn=_n=Xt.hash_size;Fn=Xt.head[--dn],Xt.head[dn]=$n<=Fn?Fn-$n:0,--_n;);for(dn=_n=$n;Fn=Xt.prev[--dn],Xt.prev[dn]=$n<=Fn?Fn-$n:0,--_n;);Un+=$n}if(Xt.strm.avail_in===0)break;if(gn=Xt.strm,hn=Xt.window,wn=Xt.strstart+Xt.lookahead,Zn=Un,Pn=void 0,Pn=gn.avail_in,Zn=Rt)for(On=Xt.strstart-Xt.insert,Xt.ins_h=Xt.window[On],Xt.ins_h=(Xt.ins_h<=Rt&&(Xt.ins_h=(Xt.ins_h<=Rt)if(Fn=ot._tr_tally(Xt,Xt.strstart-Xt.match_start,Xt.match_length-Rt),Xt.lookahead-=Xt.match_length,Xt.match_length<=Xt.max_lazy_match&&Xt.lookahead>=Rt){for(Xt.match_length--;Xt.strstart++,Xt.ins_h=(Xt.ins_h<=Rt&&(Xt.ins_h=(Xt.ins_h<=Rt&&Xt.match_length<=Xt.prev_length){for(Un=Xt.strstart+Xt.lookahead-Rt,Fn=ot._tr_tally(Xt,Xt.strstart-1-Xt.prev_match,Xt.prev_length-Rt),Xt.lookahead-=Xt.prev_length-1,Xt.prev_length-=2;++Xt.strstart<=Un&&(Xt.ins_h=(Xt.ins_h<Xt.pending_buf_size-5&&(_n=Xt.pending_buf_size-5);;){if(Xt.lookahead<=1){if(Zt(Xt),Xt.lookahead===0&&dn===ut)return Ct;if(Xt.lookahead===0)break}Xt.strstart+=Xt.lookahead,Xt.lookahead=0;var Fn=Xt.block_start+_n;if((Xt.strstart===0||Xt.strstart>=Fn)&&(Xt.lookahead=Xt.strstart-Fn,Xt.strstart=Fn,zt(Xt,!1),Xt.strm.avail_out===0)||Xt.strstart-Xt.block_start>=Xt.w_size-Tt&&(zt(Xt,!1),Xt.strm.avail_out===0))return Ct}return Xt.insert=0,dn===dt?(zt(Xt,!0),Xt.strm.avail_out===0?Nt:Ot):(Xt.strstart>Xt.block_start&&(zt(Xt,!1),Xt.strm.avail_out),Ct)}),new It(4,4,8,4,jt),new It(4,5,16,8,jt),new It(4,6,32,32,jt),new It(4,4,16,16,Vt),new It(8,16,32,32,Vt),new It(8,16,128,128,Vt),new It(8,32,128,256,Vt),new It(32,128,258,1024,Vt),new It(32,258,258,4096,Vt)],nt.deflateInit=function(Xt,dn){return on(Xt,dn,yt,15,8,0)},nt.deflateInit2=on,nt.deflateReset=qt,nt.deflateResetKeep=Ht,nt.deflateSetHeader=function(Xt,dn){return Xt&&Xt.state?Xt.state.wrap!==2?ct:(Xt.state.gzhead=dn,ht):ct},nt.deflate=function(Xt,dn){var _n,Fn,Un,On;if(!Xt||!Xt.state||5>8&255),en(Fn,Fn.gzhead.time>>16&255),en(Fn,Fn.gzhead.time>>24&255),en(Fn,Fn.level===9?2:2<=Fn.strategy||Fn.level<2?4:0),en(Fn,255&Fn.gzhead.os),Fn.gzhead.extra&&Fn.gzhead.extra.length&&(en(Fn,255&Fn.gzhead.extra.length),en(Fn,Fn.gzhead.extra.length>>8&255)),Fn.gzhead.hcrc&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending,0)),Fn.gzindex=0,Fn.status=69):(en(Fn,0),en(Fn,0),en(Fn,0),en(Fn,0),en(Fn,0),en(Fn,Fn.level===9?2:2<=Fn.strategy||Fn.level<2?4:0),en(Fn,3),Fn.status=xt);else{var gn=yt+(Fn.w_bits-8<<4)<<8;gn|=(2<=Fn.strategy||Fn.level<2?0:Fn.level<6?1:Fn.level===6?2:3)<<6,Fn.strstart!==0&&(gn|=32),gn+=31-gn%31,Fn.status=xt,Kt(Fn,gn),Fn.strstart!==0&&(Kt(Fn,Xt.adler>>>16),Kt(Fn,65535&Xt.adler)),Xt.adler=1}if(Fn.status===69)if(Fn.gzhead.extra){for(Un=Fn.pending;Fn.gzindex<(65535&Fn.gzhead.extra.length)&&(Fn.pending!==Fn.pending_buf_size||(Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Pt(Xt),Un=Fn.pending,Fn.pending!==Fn.pending_buf_size));)en(Fn,255&Fn.gzhead.extra[Fn.gzindex]),Fn.gzindex++;Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Fn.gzindex===Fn.gzhead.extra.length&&(Fn.gzindex=0,Fn.status=73)}else Fn.status=73;if(Fn.status===73)if(Fn.gzhead.name){Un=Fn.pending;do{if(Fn.pending===Fn.pending_buf_size&&(Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Pt(Xt),Un=Fn.pending,Fn.pending===Fn.pending_buf_size)){On=1;break}On=Fn.gzindexUn&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),On===0&&(Fn.gzindex=0,Fn.status=91)}else Fn.status=91;if(Fn.status===91)if(Fn.gzhead.comment){Un=Fn.pending;do{if(Fn.pending===Fn.pending_buf_size&&(Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Pt(Xt),Un=Fn.pending,Fn.pending===Fn.pending_buf_size)){On=1;break}On=Fn.gzindexUn&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),On===0&&(Fn.status=103)}else Fn.status=103;if(Fn.status===103&&(Fn.gzhead.hcrc?(Fn.pending+2>Fn.pending_buf_size&&Pt(Xt),Fn.pending+2<=Fn.pending_buf_size&&(en(Fn,255&Xt.adler),en(Fn,Xt.adler>>8&255),Xt.adler=0,Fn.status=xt)):Fn.status=xt),Fn.pending!==0){if(Pt(Xt),Xt.avail_out===0)return Fn.last_flush=-1,ht}else if(Xt.avail_in===0&&Dt(dn)<=Dt(_n)&&dn!==dt)return Wt(Xt,-5);if(Fn.status===666&&Xt.avail_in!==0)return Wt(Xt,-5);if(Xt.avail_in!==0||Fn.lookahead!==0||dn!==ut&&Fn.status!==666){var hn=Fn.strategy===2?function(wn,Zn){for(var Pn;;){if(wn.lookahead===0&&(Zt(wn),wn.lookahead===0)){if(Zn===ut)return Ct;break}if(wn.match_length=0,Pn=ot._tr_tally(wn,0,wn.window[wn.strstart]),wn.lookahead--,wn.strstart++,Pn&&(zt(wn,!1),wn.strm.avail_out===0))return Ct}return wn.insert=0,Zn===dt?(zt(wn,!0),wn.strm.avail_out===0?Nt:Ot):wn.last_lit&&(zt(wn,!1),wn.strm.avail_out===0)?Ct:kt}(Fn,dn):Fn.strategy===3?function(wn,Zn){for(var Pn,$n,Tr,Qr,_r=wn.window;;){if(wn.lookahead<=St){if(Zt(wn),wn.lookahead<=St&&Zn===ut)return Ct;if(wn.lookahead===0)break}if(wn.match_length=0,wn.lookahead>=Rt&&0wn.lookahead&&(wn.match_length=wn.lookahead)}if(wn.match_length>=Rt?(Pn=ot._tr_tally(wn,1,wn.match_length-Rt),wn.lookahead-=wn.match_length,wn.strstart+=wn.match_length,wn.match_length=0):(Pn=ot._tr_tally(wn,0,wn.window[wn.strstart]),wn.lookahead--,wn.strstart++),Pn&&(zt(wn,!1),wn.strm.avail_out===0))return Ct}return wn.insert=0,Zn===dt?(zt(wn,!0),wn.strm.avail_out===0?Nt:Ot):wn.last_lit&&(zt(wn,!1),wn.strm.avail_out===0)?Ct:kt}(Fn,dn):rt[Fn.level].func(Fn,dn);if(hn!==Nt&&hn!==Ot||(Fn.status=666),hn===Ct||hn===Nt)return Xt.avail_out===0&&(Fn.last_flush=-1),ht;if(hn===kt&&(dn===1?ot._tr_align(Fn):dn!==5&&(ot._tr_stored_block(Fn,0,0,!1),dn===3&&(Et(Fn.head),Fn.lookahead===0&&(Fn.strstart=0,Fn.block_start=0,Fn.insert=0))),Pt(Xt),Xt.avail_out===0))return Fn.last_flush=-1,ht}return dn!==dt?ht:Fn.wrap<=0?1:(Fn.wrap===2?(en(Fn,255&Xt.adler),en(Fn,Xt.adler>>8&255),en(Fn,Xt.adler>>16&255),en(Fn,Xt.adler>>24&255),en(Fn,255&Xt.total_in),en(Fn,Xt.total_in>>8&255),en(Fn,Xt.total_in>>16&255),en(Fn,Xt.total_in>>24&255)):(Kt(Fn,Xt.adler>>>16),Kt(Fn,65535&Xt.adler)),Pt(Xt),0=_n.w_size&&(On===0&&(Et(_n.head),_n.strstart=0,_n.block_start=0,_n.insert=0),Zn=new it.Buf8(_n.w_size),it.arraySet(Zn,dn,Pn-_n.w_size,_n.w_size,0),dn=Zn,Pn=_n.w_size),gn=Xt.avail_in,hn=Xt.next_in,wn=Xt.input,Xt.avail_in=Pn,Xt.next_in=0,Xt.input=dn,Zt(_n);_n.lookahead>=Rt;){for(Fn=_n.strstart,Un=_n.lookahead-(Rt-1);_n.ins_h=(_n.ins_h<<_n.hash_shift^_n.window[Fn+Rt-1])&_n.hash_mask,_n.prev[Fn&_n.w_mask]=_n.head[_n.ins_h],_n.head[_n.ins_h]=Fn,Fn++,--Un;);_n.strstart=Fn,_n.lookahead=Rt-1,Zt(_n)}return _n.strstart+=_n.lookahead,_n.block_start=_n.strstart,_n.insert=_n.lookahead,_n.lookahead=0,_n.match_length=_n.prev_length=Rt-1,_n.match_available=0,Xt.next_in=hn,Xt.input=wn,Xt.avail_in=gn,_n.wrap=On,ht},nt.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(et,tt,nt){tt.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(et,tt,nt){tt.exports=function(rt,it){var ot,st,at,lt,ut,dt,ht,ct,pt,ft,gt,yt,Ut,Ft,mt,vt,At,Lt,Rt,St,Tt,Bt,xt,Ct,kt;ot=rt.state,st=rt.next_in,Ct=rt.input,at=st+(rt.avail_in-5),lt=rt.next_out,kt=rt.output,ut=lt-(it-rt.avail_out),dt=lt+(rt.avail_out-257),ht=ot.dmax,ct=ot.wsize,pt=ot.whave,ft=ot.wnext,gt=ot.window,yt=ot.hold,Ut=ot.bits,Ft=ot.lencode,mt=ot.distcode,vt=(1<>>=Rt=Lt>>>24,Ut-=Rt,(Rt=Lt>>>16&255)===0)kt[lt++]=65535≪else{if(!(16&Rt)){if(!(64&Rt)){Lt=Ft[(65535&Lt)+(yt&(1<>>=Rt,Ut-=Rt),Ut<15&&(yt+=Ct[st++]<>>=Rt=Lt>>>24,Ut-=Rt,!(16&(Rt=Lt>>>16&255))){if(!(64&Rt)){Lt=mt[(65535&Lt)+(yt&(1<>>=Rt,Ut-=Rt,(Rt=lt-ut)>3,yt&=(1<<(Ut-=St<<3))-1,rt.next_in=st,rt.next_out=lt,rt.avail_in=st>>24&255)+(Bt>>>8&65280)+((65280&Bt)<<8)+((255&Bt)<<24)}function yt(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new rt.Buf16(320),this.work=new rt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Ut(Bt){var xt;return Bt&&Bt.state?(xt=Bt.state,Bt.total_in=Bt.total_out=xt.total=0,Bt.msg="",xt.wrap&&(Bt.adler=1&xt.wrap),xt.mode=ct,xt.last=0,xt.havedict=0,xt.dmax=32768,xt.head=null,xt.hold=0,xt.bits=0,xt.lencode=xt.lendyn=new rt.Buf32(pt),xt.distcode=xt.distdyn=new rt.Buf32(ft),xt.sane=1,xt.back=-1,dt):ht}function Ft(Bt){var xt;return Bt&&Bt.state?((xt=Bt.state).wsize=0,xt.whave=0,xt.wnext=0,Ut(Bt)):ht}function mt(Bt,xt){var Ct,kt;return Bt&&Bt.state?(kt=Bt.state,xt<0?(Ct=0,xt=-xt):(Ct=1+(xt>>4),xt<48&&(xt&=15)),xt&&(xt<8||15=Ot.wsize?(rt.arraySet(Ot.window,xt,Ct-Ot.wsize,Ot.wsize,0),Ot.wnext=0,Ot.whave=Ot.wsize):(kt<(Nt=Ot.wsize-Ot.wnext)&&(Nt=kt),rt.arraySet(Ot.window,xt,Ct-kt,Nt,Ot.wnext),(kt-=Nt)?(rt.arraySet(Ot.window,xt,Ct-kt,kt,0),Ot.wnext=kt,Ot.whave=Ot.wsize):(Ot.wnext+=Nt,Ot.wnext===Ot.wsize&&(Ot.wnext=0),Ot.whave>>8&255,Ct.check=ot(Ct.check,On,2,0),zt=Pt=0,Ct.mode=2;break}if(Ct.flags=0,Ct.head&&(Ct.head.done=!1),!(1&Ct.wrap)||(((255&Pt)<<8)+(Pt>>8))%31){Bt.msg="incorrect header check",Ct.mode=30;break}if((15&Pt)!=8){Bt.msg="unknown compression method",Ct.mode=30;break}if(zt-=4,Xt=8+(15&(Pt>>>=4)),Ct.wbits===0)Ct.wbits=Xt;else if(Xt>Ct.wbits){Bt.msg="invalid window size",Ct.mode=30;break}Ct.dmax=1<>8&1),512&Ct.flags&&(On[0]=255&Pt,On[1]=Pt>>>8&255,Ct.check=ot(Ct.check,On,2,0)),zt=Pt=0,Ct.mode=3;case 3:for(;zt<32;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>8&255,On[2]=Pt>>>16&255,On[3]=Pt>>>24&255,Ct.check=ot(Ct.check,On,4,0)),zt=Pt=0,Ct.mode=4;case 4:for(;zt<16;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>8),512&Ct.flags&&(On[0]=255&Pt,On[1]=Pt>>>8&255,Ct.check=ot(Ct.check,On,2,0)),zt=Pt=0,Ct.mode=5;case 5:if(1024&Ct.flags){for(;zt<16;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>8&255,Ct.check=ot(Ct.check,On,2,0)),zt=Pt=0}else Ct.head&&(Ct.head.extra=null);Ct.mode=6;case 6:if(1024&Ct.flags&&(Dt<(nn=Ct.length)&&(nn=Dt),nn&&(Ct.head&&(Xt=Ct.head.extra_len-Ct.length,Ct.head.extra||(Ct.head.extra=new Array(Ct.head.extra_len)),rt.arraySet(Ct.head.extra,kt,Ot,nn,Xt)),512&Ct.flags&&(Ct.check=ot(Ct.check,kt,nn,Ot)),Dt-=nn,Ot+=nn,Ct.length-=nn),Ct.length))break e;Ct.length=0,Ct.mode=7;case 7:if(2048&Ct.flags){if(Dt===0)break e;for(nn=0;Xt=kt[Ot+nn++],Ct.head&&Xt&&Ct.length<65536&&(Ct.head.name+=String.fromCharCode(Xt)),Xt&&nn>9&1,Ct.head.done=!0),Bt.adler=Ct.check=0,Ct.mode=12;break;case 10:for(;zt<32;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=7&zt,zt-=7&zt,Ct.mode=27;break}for(;zt<3;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=1)){case 0:Ct.mode=14;break;case 1:if(St(Ct),Ct.mode=20,xt!==6)break;Pt>>>=2,zt-=2;break e;case 2:Ct.mode=17;break;case 3:Bt.msg="invalid block type",Ct.mode=30}Pt>>>=2,zt-=2;break;case 14:for(Pt>>>=7&zt,zt-=7&zt;zt<32;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>16^65535)){Bt.msg="invalid stored block lengths",Ct.mode=30;break}if(Ct.length=65535&Pt,zt=Pt=0,Ct.mode=15,xt===6)break e;case 15:Ct.mode=16;case 16:if(nn=Ct.length){if(Dt>>=5,zt-=5,Ct.ndist=1+(31&Pt),Pt>>>=5,zt-=5,Ct.ncode=4+(15&Pt),Pt>>>=4,zt-=4,286>>=3,zt-=3}for(;Ct.have<19;)Ct.lens[gn[Ct.have++]]=0;if(Ct.lencode=Ct.lendyn,Ct.lenbits=7,_n={bits:Ct.lenbits},dn=at(0,Ct.lens,0,19,Ct.lencode,0,Ct.work,_n),Ct.lenbits=_n.bits,dn){Bt.msg="invalid code lengths set",Ct.mode=30;break}Ct.have=0,Ct.mode=19;case 19:for(;Ct.have>>16&255,$t=65535&Un,!((Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=Vt,zt-=Vt,Ct.lens[Ct.have++]=$t;else{if($t===16){for(Fn=Vt+2;zt>>=Vt,zt-=Vt,Ct.have===0){Bt.msg="invalid bit length repeat",Ct.mode=30;break}Xt=Ct.lens[Ct.have-1],nn=3+(3&Pt),Pt>>>=2,zt-=2}else if($t===17){for(Fn=Vt+3;zt>>=Vt)),Pt>>>=3,zt-=3}else{for(Fn=Vt+7;zt>>=Vt)),Pt>>>=7,zt-=7}if(Ct.have+nn>Ct.nlen+Ct.ndist){Bt.msg="invalid bit length repeat",Ct.mode=30;break}for(;nn--;)Ct.lens[Ct.have++]=Xt}}if(Ct.mode===30)break;if(Ct.lens[256]===0){Bt.msg="invalid code -- missing end-of-block",Ct.mode=30;break}if(Ct.lenbits=9,_n={bits:Ct.lenbits},dn=at(lt,Ct.lens,0,Ct.nlen,Ct.lencode,0,Ct.work,_n),Ct.lenbits=_n.bits,dn){Bt.msg="invalid literal/lengths set",Ct.mode=30;break}if(Ct.distbits=6,Ct.distcode=Ct.distdyn,_n={bits:Ct.distbits},dn=at(ut,Ct.lens,Ct.nlen,Ct.ndist,Ct.distcode,0,Ct.work,_n),Ct.distbits=_n.bits,dn){Bt.msg="invalid distances set",Ct.mode=30;break}if(Ct.mode=20,xt===6)break e;case 20:Ct.mode=21;case 21:if(6<=Dt&&258<=Et){Bt.next_out=Wt,Bt.avail_out=Et,Bt.next_in=Ot,Bt.avail_in=Dt,Ct.hold=Pt,Ct.bits=zt,st(Bt,Kt),Wt=Bt.next_out,Nt=Bt.output,Et=Bt.avail_out,Ot=Bt.next_in,kt=Bt.input,Dt=Bt.avail_in,Pt=Ct.hold,zt=Ct.bits,Ct.mode===12&&(Ct.back=-1);break}for(Ct.back=0;It=(Un=Ct.lencode[Pt&(1<>>16&255,$t=65535&Un,!((Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>Ht)])>>>16&255,$t=65535&Un,!(Ht+(Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=Ht,zt-=Ht,Ct.back+=Ht}if(Pt>>>=Vt,zt-=Vt,Ct.back+=Vt,Ct.length=$t,It===0){Ct.mode=26;break}if(32&It){Ct.back=-1,Ct.mode=12;break}if(64&It){Bt.msg="invalid literal/length code",Ct.mode=30;break}Ct.extra=15&It,Ct.mode=22;case 22:if(Ct.extra){for(Fn=Ct.extra;zt>>=Ct.extra,zt-=Ct.extra,Ct.back+=Ct.extra}Ct.was=Ct.length,Ct.mode=23;case 23:for(;It=(Un=Ct.distcode[Pt&(1<>>16&255,$t=65535&Un,!((Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>Ht)])>>>16&255,$t=65535&Un,!(Ht+(Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=Ht,zt-=Ht,Ct.back+=Ht}if(Pt>>>=Vt,zt-=Vt,Ct.back+=Vt,64&It){Bt.msg="invalid distance code",Ct.mode=30;break}Ct.offset=$t,Ct.extra=15&It,Ct.mode=24;case 24:if(Ct.extra){for(Fn=Ct.extra;zt>>=Ct.extra,zt-=Ct.extra,Ct.back+=Ct.extra}if(Ct.offset>Ct.dmax){Bt.msg="invalid distance too far back",Ct.mode=30;break}Ct.mode=25;case 25:if(Et===0)break e;if(nn=Kt-Et,Ct.offset>nn){if((nn=Ct.offset-nn)>Ct.whave&&Ct.sane){Bt.msg="invalid distance too far back",Ct.mode=30;break}Zt=nn>Ct.wnext?(nn-=Ct.wnext,Ct.wsize-nn):Ct.wnext-nn,nn>Ct.length&&(nn=Ct.length),jt=Ct.window}else jt=Nt,Zt=Wt-Ct.offset,nn=Ct.length;for(EtAt?(Rt=Zt[jt+ft[xt]],zt[en+ft[xt]]):(Rt=96,0),yt=1<>Wt)+(Ut-=yt)]=Lt<<24|Rt<<16|St|0,Ut!==0;);for(yt=1<>=1;if(yt!==0?(Pt&=yt-1,Pt+=yt):Pt=0,xt++,--Kt[Bt]==0){if(Bt===kt)break;Bt=ut[dt+ft[xt]]}if(Nt>>7)]}function en(Un,On){Un.pending_buf[Un.pending++]=255&On,Un.pending_buf[Un.pending++]=On>>>8&255}function Kt(Un,On,gn){Un.bi_valid>gt-gn?(Un.bi_buf|=On<>gt-Un.bi_valid,Un.bi_valid+=gn-gt):(Un.bi_buf|=On<>>=1,gn<<=1,0<--On;);return gn>>>1}function jt(Un,On,gn){var hn,wn,Zn=new Array(ft+1),Pn=0;for(hn=1;hn<=ft;hn++)Zn[hn]=Pn=Pn+gn[hn-1]<<1;for(wn=0;wn<=On;wn++){var $n=Un[2*wn+1];$n!==0&&(Un[2*wn]=Zt(Zn[$n]++,$n))}}function Vt(Un){var On;for(On=0;On>1;1<=gn;gn--)Ht(Un,Zn,gn);for(wn=Tr;gn=Un.heap[1],Un.heap[1]=Un.heap[Un.heap_len--],Ht(Un,Zn,1),hn=Un.heap[1],Un.heap[--Un.heap_max]=gn,Un.heap[--Un.heap_max]=hn,Zn[2*wn]=Zn[2*gn]+Zn[2*hn],Un.depth[wn]=(Un.depth[gn]>=Un.depth[hn]?Un.depth[gn]:Un.depth[hn])+1,Zn[2*gn+1]=Zn[2*hn+1]=wn,Un.heap[1]=wn++,Ht(Un,Zn,1),2<=Un.heap_len;);Un.heap[--Un.heap_max]=Un.heap[1],function(_r,Ir){var Wr,qr,Uo,eo,Yr,_o,ro=Ir.dyn_tree,Fo=Ir.max_code,kn=Ir.stat_desc.static_tree,un=Ir.stat_desc.has_stree,pn=Ir.stat_desc.extra_bits,Qn=Ir.stat_desc.extra_base,Wn=Ir.stat_desc.max_length,jn=0;for(eo=0;eo<=ft;eo++)_r.bl_count[eo]=0;for(ro[2*_r.heap[_r.heap_max]+1]=0,Wr=_r.heap_max+1;Wr>=7;wn>>=1)if(1&Qr&&$n.dyn_ltree[2*Tr]!==0)return it;if($n.dyn_ltree[18]!==0||$n.dyn_ltree[20]!==0||$n.dyn_ltree[26]!==0)return ot;for(Tr=32;Tr>>3,(Zn=Un.static_len+3+7>>>3)<=wn&&(wn=Zn)):wn=Zn=gn+5,gn+4<=wn&&On!==-1?Fn(Un,On,gn,hn):Un.strategy===4||Zn===wn?(Kt(Un,2+(hn?1:0),3),qt(Un,Tt,Bt)):(Kt(Un,4+(hn?1:0),3),function($n,Tr,Qr,_r){var Ir;for(Kt($n,Tr-257,5),Kt($n,Qr-1,5),Kt($n,_r-4,4),Ir=0;Ir<_r;Ir++)Kt($n,$n.bl_tree[2*St[Ir]+1],3);dn($n,$n.dyn_ltree,Tr-1),dn($n,$n.dyn_dtree,Qr-1)}(Un,Un.l_desc.max_code+1,Un.d_desc.max_code+1,Pn+1),qt(Un,Un.dyn_ltree,Un.dyn_dtree)),Vt(Un),hn&&It(Un)},nt._tr_tally=function(Un,On,gn){return Un.pending_buf[Un.d_buf+2*Un.last_lit]=On>>>8&255,Un.pending_buf[Un.d_buf+2*Un.last_lit+1]=255&On,Un.pending_buf[Un.l_buf+Un.last_lit]=255&gn,Un.last_lit++,On===0?Un.dyn_ltree[2*gn]++:(Un.matches++,On--,Un.dyn_ltree[2*(Ct[gn]+ut+1)]++,Un.dyn_dtree[2*zt(On)]++),Un.last_lit===Un.lit_bufsize-1},nt._tr_align=function(Un){Kt(Un,2,3),nn(Un,Ut,Tt),function(On){On.bi_valid===16?(en(On,On.bi_buf),On.bi_buf=0,On.bi_valid=0):8<=On.bi_valid&&(On.pending_buf[On.pending++]=255&On.bi_buf,On.bi_buf>>=8,On.bi_valid-=8)}(Un)}},{"../utils/common":41}],53:[function(et,tt,nt){tt.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(et,tt,nt){(function(rt){(function(it,ot){if(!it.setImmediate){var st,at,lt,ut,dt=1,ht={},ct=!1,pt=it.document,ft=Object.getPrototypeOf&&Object.getPrototypeOf(it);ft=ft&&ft.setTimeout?ft:it,st={}.toString.call(it.process)==="[object process]"?function(Ft){process.nextTick(function(){yt(Ft)})}:function(){if(it.postMessage&&!it.importScripts){var Ft=!0,mt=it.onmessage;return it.onmessage=function(){Ft=!1},it.postMessage("","*"),it.onmessage=mt,Ft}}()?(ut="setImmediate$"+Math.random()+"$",it.addEventListener?it.addEventListener("message",Ut,!1):it.attachEvent("onmessage",Ut),function(Ft){it.postMessage(ut+Ft,"*")}):it.MessageChannel?((lt=new MessageChannel).port1.onmessage=function(Ft){yt(Ft.data)},function(Ft){lt.port2.postMessage(Ft)}):pt&&"onreadystatechange"in pt.createElement("script")?(at=pt.documentElement,function(Ft){var mt=pt.createElement("script");mt.onreadystatechange=function(){yt(Ft),mt.onreadystatechange=null,at.removeChild(mt),mt=null},at.appendChild(mt)}):function(Ft){setTimeout(yt,0,Ft)},ft.setImmediate=function(Ft){typeof Ft!="function"&&(Ft=new Function(""+Ft));for(var mt=new Array(arguments.length-1),vt=0;vt"u"?rt===void 0?this:rt:self)}).call(this,typeof commonjsGlobal$2<"u"?commonjsGlobal$2:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(jszip_min);var jszip_minExports=jszip_min.exports;const JSZip=getDefaultExportFromCjs$1(jszip_minExports);class STLLoader extends Loader{constructor(o){super(o)}load(o,et,tt,nt){const rt=this,it=new FileLoader(this.manager);it.setPath(this.path),it.setResponseType("arraybuffer"),it.setRequestHeader(this.requestHeader),it.setWithCredentials(this.withCredentials),it.load(o,function(ot){try{et(rt.parse(ot))}catch(st){nt?nt(st):console.error(st),rt.manager.itemError(o)}},tt,nt)}parse(o){function et(at){const lt=new DataView(at),ut=32/8*3+32/8*3*3+16/8,dt=lt.getUint32(80,!0);if(80+32/8+dt*ut===lt.byteLength)return!0;const ct=[115,111,108,105,100];for(let pt=0;pt<5;pt++)if(tt(ct,lt,pt))return!1;return!0}function tt(at,lt,ut){for(let dt=0,ht=at.length;dt>5&31)/31,ct=(Nt>>10&31)/31)}for(let Nt=1;Nt<=3;Nt++){const Ot=Bt+Nt*12,Wt=Tt*3*3+(Nt-1)*3;Lt[Wt]=lt.getFloat32(Ot,!0),Lt[Wt+1]=lt.getFloat32(Ot+4,!0),Lt[Wt+2]=lt.getFloat32(Ot+8,!0),Rt[Wt]=xt,Rt[Wt+1]=Ct,Rt[Wt+2]=kt,pt&&(St.set(dt,ht,ct).convertSRGBToLinear(),ft[Wt]=St.r,ft[Wt+1]=St.g,ft[Wt+2]=St.b)}}return At.setAttribute("position",new BufferAttribute(Lt,3)),At.setAttribute("normal",new BufferAttribute(Rt,3)),pt&&(At.setAttribute("color",new BufferAttribute(ft,3)),At.hasColors=!0,At.alpha=Ft),At}function rt(at){const lt=new BufferGeometry,ut=/solid([\s\S]*?)endsolid/g,dt=/facet([\s\S]*?)endfacet/g,ht=/solid\s(.+)/;let ct=0;const pt=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,ft=new RegExp("vertex"+pt+pt+pt,"g"),gt=new RegExp("normal"+pt+pt+pt,"g"),yt=[],Ut=[],Ft=[],mt=new Vector3;let vt,At=0,Lt=0,Rt=0;for(;(vt=ut.exec(at))!==null;){Lt=Rt;const St=vt[0],Tt=(vt=ht.exec(St))!==null?vt[1]:"";for(Ft.push(Tt);(vt=dt.exec(St))!==null;){let Ct=0,kt=0;const Nt=vt[0];for(;(vt=gt.exec(Nt))!==null;)mt.x=parseFloat(vt[1]),mt.y=parseFloat(vt[2]),mt.z=parseFloat(vt[3]),kt++;for(;(vt=ft.exec(Nt))!==null;)yt.push(parseFloat(vt[1]),parseFloat(vt[2]),parseFloat(vt[3])),Ut.push(mt.x,mt.y,mt.z),Ct++,Rt++;kt!==1&&console.error("THREE.STLLoader: Something isn't right with the normal of face number "+ct),Ct!==3&&console.error("THREE.STLLoader: Something isn't right with the vertices of face number "+ct),ct++}const Bt=Lt,xt=Rt-Lt;lt.userData.groupNames=Ft,lt.addGroup(Bt,xt,At),At++}return lt.setAttribute("position",new Float32BufferAttribute(yt,3)),lt.setAttribute("normal",new Float32BufferAttribute(Ut,3)),lt}function it(at){return typeof at!="string"?new TextDecoder().decode(at):at}function ot(at){if(typeof at=="string"){const lt=new Uint8Array(at.length);for(let ut=0;ut256||Nt.colormap_size!==24||Nt.colormap_type!==1)throw new Error("THREE.TGALoader: Invalid type colormap data for indexed type.");break;case ht:case ct:case ft:case gt:if(Nt.colormap_type)throw new Error("THREE.TGALoader: Invalid type colormap data for colormap type.");break;case ut:throw new Error("THREE.TGALoader: No data.");default:throw new Error("THREE.TGALoader: Invalid type "+Nt.image_type)}if(Nt.width<=0||Nt.height<=0)throw new Error("THREE.TGALoader: Invalid image size.");if(Nt.pixel_size!==8&&Nt.pixel_size!==16&&Nt.pixel_size!==24&&Nt.pixel_size!==32)throw new Error("THREE.TGALoader: Invalid pixel size "+Nt.pixel_size)}function tt(Nt,Ot,Wt,Dt,Et){let Pt,zt;const en=Wt.pixel_size>>3,Kt=Wt.width*Wt.height*en;if(Ot&&(zt=Et.subarray(Dt,Dt+=Wt.colormap_length*(Wt.colormap_size>>3))),Nt){Pt=new Uint8Array(Kt);let nn,Zt,jt,Vt=0;const It=new Uint8Array(en);for(;Vt>7,Nt[(Zt+Vt*jt)*4+1]=(Kt&992)>>2,Nt[(Zt+Vt*jt)*4+2]=(Kt&31)<<3,Nt[(Zt+Vt*jt)*4+3]=Kt&32768?0:255;return Nt}function it(Nt,Ot,Wt,Dt,Et,Pt,zt,en){let Kt=0,nn,Zt;const jt=St.width;for(Zt=Ot;Zt!==Dt;Zt+=Wt)for(nn=Et;nn!==zt;nn+=Pt,Kt+=3)Nt[(nn+jt*Zt)*4+3]=255,Nt[(nn+jt*Zt)*4+2]=en[Kt+0],Nt[(nn+jt*Zt)*4+1]=en[Kt+1],Nt[(nn+jt*Zt)*4+0]=en[Kt+2];return Nt}function ot(Nt,Ot,Wt,Dt,Et,Pt,zt,en){let Kt=0,nn,Zt;const jt=St.width;for(Zt=Ot;Zt!==Dt;Zt+=Wt)for(nn=Et;nn!==zt;nn+=Pt,Kt+=4)Nt[(nn+jt*Zt)*4+2]=en[Kt+0],Nt[(nn+jt*Zt)*4+1]=en[Kt+1],Nt[(nn+jt*Zt)*4+0]=en[Kt+2],Nt[(nn+jt*Zt)*4+3]=en[Kt+3];return Nt}function st(Nt,Ot,Wt,Dt,Et,Pt,zt,en){let Kt,nn=0,Zt,jt;const Vt=St.width;for(jt=Ot;jt!==Dt;jt+=Wt)for(Zt=Et;Zt!==zt;Zt+=Pt,nn++)Kt=en[nn],Nt[(Zt+Vt*jt)*4+0]=Kt,Nt[(Zt+Vt*jt)*4+1]=Kt,Nt[(Zt+Vt*jt)*4+2]=Kt,Nt[(Zt+Vt*jt)*4+3]=255;return Nt}function at(Nt,Ot,Wt,Dt,Et,Pt,zt,en){let Kt=0,nn,Zt;const jt=St.width;for(Zt=Ot;Zt!==Dt;Zt+=Wt)for(nn=Et;nn!==zt;nn+=Pt,Kt+=2)Nt[(nn+jt*Zt)*4+0]=en[Kt+0],Nt[(nn+jt*Zt)*4+1]=en[Kt+0],Nt[(nn+jt*Zt)*4+2]=en[Kt+0],Nt[(nn+jt*Zt)*4+3]=en[Kt+1];return Nt}function lt(Nt,Ot,Wt,Dt,Et){let Pt,zt,en,Kt,nn,Zt;switch((St.flags&yt)>>Ut){default:case vt:Pt=0,en=1,nn=Ot,zt=0,Kt=1,Zt=Wt;break;case Ft:Pt=0,en=1,nn=Ot,zt=Wt-1,Kt=-1,Zt=-1;break;case At:Pt=Ot-1,en=-1,nn=-1,zt=0,Kt=1,Zt=Wt;break;case mt:Pt=Ot-1,en=-1,nn=-1,zt=Wt-1,Kt=-1,Zt=-1;break}if(xt)switch(St.pixel_size){case 8:st(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;case 16:at(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;default:throw new Error("THREE.TGALoader: Format not supported.")}else switch(St.pixel_size){case 8:nt(Nt,zt,Kt,Zt,Pt,en,nn,Dt,Et);break;case 16:rt(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;case 24:it(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;case 32:ot(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;default:throw new Error("THREE.TGALoader: Format not supported.")}return Nt}const ut=0,dt=1,ht=2,ct=3,pt=9,ft=10,gt=11,yt=48,Ut=4,Ft=0,mt=1,vt=2,At=3;if(o.length<19)throw new Error("THREE.TGALoader: Not enough data to contain header.");let Lt=0;const Rt=new Uint8Array(o),St={id_length:Rt[Lt++],colormap_type:Rt[Lt++],image_type:Rt[Lt++],colormap_index:Rt[Lt++]|Rt[Lt++]<<8,colormap_length:Rt[Lt++]|Rt[Lt++]<<8,colormap_size:Rt[Lt++],origin:[Rt[Lt++]|Rt[Lt++]<<8,Rt[Lt++]|Rt[Lt++]<<8],width:Rt[Lt++]|Rt[Lt++]<<8,height:Rt[Lt++]|Rt[Lt++]<<8,pixel_size:Rt[Lt++],flags:Rt[Lt++]};if(et(St),St.id_length+Lt>o.length)throw new Error("THREE.TGALoader: No data.");Lt+=St.id_length;let Tt=!1,Bt=!1,xt=!1;switch(St.image_type){case pt:Tt=!0,Bt=!0;break;case dt:Bt=!0;break;case ft:Tt=!0;break;case ht:break;case gt:Tt=!0,xt=!0;break;case ct:xt=!0;break}const Ct=new Uint8Array(St.width*St.height*4),kt=tt(Tt,Bt,St,Lt,Rt);return lt(Ct,St.width,St.height,kt.pixel_data,kt.palettes),{data:Ct,width:St.width,height:St.height,flipY:!0,generateMipmaps:!0,minFilter:LinearMipmapLinearFilter}}}class ColladaLoader extends Loader{load(o,et,tt,nt){const rt=this,it=rt.path===""?LoaderUtils.extractUrlBase(o):rt.path,ot=new FileLoader(rt.manager);ot.setPath(rt.path),ot.setRequestHeader(rt.requestHeader),ot.setWithCredentials(rt.withCredentials),ot.load(o,function(st){try{et(rt.parse(st,it))}catch(at){nt?nt(at):console.error(at),rt.manager.itemError(o)}},tt,nt)}parse(o,et){function tt(Tn,En){const Dn=[],Mn=Tn.childNodes;for(let Jn=0,Vr=Mn.length;Jn0&&En.push(new VectorKeyframeTrack(Mn+".position",Jn,Vr)),Cr.length>0&&En.push(new QuaternionKeyframeTrack(Mn+".quaternion",Jn,Cr)),an.length>0&&En.push(new VectorKeyframeTrack(Mn+".scale",Jn,an)),En}function Tt(Tn,En,Dn){let Mn,Jn=!0,Vr,Cr;for(Vr=0,Cr=Tn.length;Vr=0;){const Mn=Tn[En];if(Mn.value[Dn]!==null)return Mn;En--}return null}function Ct(Tn,En,Dn){for(;En>>0)+2);switch(Dn=Dn.toLowerCase(),Dn){case"tga":En=Sl;break;default:En=Zs}return En}function Qr(Tn){const En=Pn(Tn.url),Dn=En.profile.technique;let Mn;switch(Dn.type){case"phong":case"blinn":Mn=new MeshPhongMaterial;break;case"lambert":Mn=new MeshLambertMaterial;break;default:Mn=new MeshBasicMaterial;break}Mn.name=Tn.name||"";function Jn(bn,Vn=null){const zn=En.profile.samplers[bn.id];let Hn=null;if(zn!==void 0){const ir=En.profile.surfaces[zn.source];Hn=Vt(ir.init_from)}else console.warn("THREE.ColladaLoader: Undefined sampler. Access image directly (see #12530)."),Hn=Vt(bn.id);if(Hn!==null){const ir=Tr(Hn);if(ir!==void 0){const Yn=ir.load(Hn),or=bn.extra;if(or!==void 0&&or.technique!==void 0&&at(or.technique)===!1){const Mr=or.technique;Yn.wrapS=Mr.wrapU?RepeatWrapping:ClampToEdgeWrapping,Yn.wrapT=Mr.wrapV?RepeatWrapping:ClampToEdgeWrapping,Yn.offset.set(Mr.offsetU||0,Mr.offsetV||0),Yn.repeat.set(Mr.repeatU||1,Mr.repeatV||1)}else Yn.wrapS=RepeatWrapping,Yn.wrapT=RepeatWrapping;return Vn!==null&&(Yn.colorSpace=Vn),Yn}else return console.warn("THREE.ColladaLoader: Loader for texture %s not found.",Hn),null}else return console.warn("THREE.ColladaLoader: Couldn't create texture with ID:",bn.id),null}const Vr=Dn.parameters;for(const bn in Vr){const Vn=Vr[bn];switch(bn){case"diffuse":Vn.color&&Mn.color.fromArray(Vn.color),Vn.texture&&(Mn.map=Jn(Vn.texture,SRGBColorSpace$1));break;case"specular":Vn.color&&Mn.specular&&Mn.specular.fromArray(Vn.color),Vn.texture&&(Mn.specularMap=Jn(Vn.texture));break;case"bump":Vn.texture&&(Mn.normalMap=Jn(Vn.texture));break;case"ambient":Vn.texture&&(Mn.lightMap=Jn(Vn.texture,SRGBColorSpace$1));break;case"shininess":Vn.float&&Mn.shininess&&(Mn.shininess=Vn.float);break;case"emission":Vn.color&&Mn.emissive&&Mn.emissive.fromArray(Vn.color),Vn.texture&&(Mn.emissiveMap=Jn(Vn.texture,SRGBColorSpace$1));break}}Mn.color.convertSRGBToLinear(),Mn.specular&&Mn.specular.convertSRGBToLinear(),Mn.emissive&&Mn.emissive.convertSRGBToLinear();let Cr=Vr.transparent,an=Vr.transparency;if(an===void 0&&Cr&&(an={float:1}),Cr===void 0&&an&&(Cr={opaque:"A_ONE",data:{color:[1,1,1,1]}}),Cr&&an)if(Cr.data.texture)Mn.transparent=!0;else{const bn=Cr.data.color;switch(Cr.opaque){case"A_ONE":Mn.opacity=bn[3]*an.float;break;case"RGB_ZERO":Mn.opacity=1-bn[0]*an.float;break;case"A_ZERO":Mn.opacity=1-bn[3]*an.float;break;case"RGB_ONE":Mn.opacity=bn[0]*an.float;break;default:console.warn('THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.',Cr.opaque)}Mn.opacity<1&&(Mn.transparent=!0)}if(Dn.extra!==void 0&&Dn.extra.technique!==void 0){const bn=Dn.extra.technique;for(const Vn in bn){const zn=bn[Vn];switch(Vn){case"double_sided":Mn.side=zn===1?DoubleSide:FrontSide;break;case"bump":Mn.normalMap=Jn(zn.texture),Mn.normalScale=new Vector2(1,1);break}}}return Mn}function _r(Tn){return pt(vo.materials[Tn],Qr)}function Ir(Tn){const En={name:Tn.getAttribute("name")};for(let Dn=0,Mn=Tn.childNodes.length;Dn0?Cr+bn:Cr;En.inputs[Vn]={id:Vr,offset:an},En.stride=Math.max(En.stride,an+1),Cr==="TEXCOORD"&&(En.hasUV=!0);break;case"vcount":En.vcount=it(Jn.textContent);break;case"p":En.p=it(Jn.textContent);break}}return En}function Fr(Tn){const En={};for(let Dn=0;Dn0&&En0&&Hn.setAttribute("position",new Float32BufferAttribute(Jn.array,Jn.stride)),Vr.array.length>0&&Hn.setAttribute("normal",new Float32BufferAttribute(Vr.array,Vr.stride)),bn.array.length>0&&Hn.setAttribute("color",new Float32BufferAttribute(bn.array,bn.stride)),Cr.array.length>0&&Hn.setAttribute("uv",new Float32BufferAttribute(Cr.array,Cr.stride)),an.array.length>0&&Hn.setAttribute("uv1",new Float32BufferAttribute(an.array,an.stride)),Vn.array.length>0&&Hn.setAttribute("skinIndex",new Float32BufferAttribute(Vn.array,Vn.stride)),zn.array.length>0&&Hn.setAttribute("skinWeight",new Float32BufferAttribute(zn.array,zn.stride)),Mn.data=Hn,Mn.type=Tn[0].type,Mn.materialKeys=ir,Mn}function ar(Tn,En,Dn,Mn,Jn=!1){const Vr=Tn.p,Cr=Tn.stride,an=Tn.vcount;function bn(Hn){let ir=Vr[Hn+Dn]*zn;const Yn=ir+zn;for(;ir4)for(let Mr=1,Jr=or-2;Mr<=Jr;Mr++){const Hr=Hn+Cr*0,co=Hn+Cr*Mr,_i=Hn+Cr*(Mr+1);bn(Hr),bn(co),bn(_i)}Hn+=Cr*or}}else for(let Hn=0,ir=Vr.length;Hn=En.limits.max&&(En.static=!0),En.middlePosition=(En.limits.min+En.limits.max)/2,En}function gr(Tn){const En={sid:Tn.getAttribute("sid"),name:Tn.getAttribute("name")||"",attachments:[],transforms:[]};for(let Dn=0;DnYn.limits.max||Hn>2,ht=(3&at)<<4|lt>>4,ct=1>6:64,pt=2>4,lt=(15&dt)<<4|(ht=ot.indexOf(st.charAt(pt++)))>>2,ut=(3&ht)<<6|(ct=ot.indexOf(st.charAt(pt++))),yt[ft++]=at,ht!==64&&(yt[ft++]=lt),ct!==64&&(yt[ft++]=ut);return yt}},{"./support":30,"./utils":32}],2:[function(et,tt,nt){var rt=et("./external"),it=et("./stream/DataWorker"),ot=et("./stream/Crc32Probe"),st=et("./stream/DataLengthProbe");function at(lt,ut,dt,ht,ct){this.compressedSize=lt,this.uncompressedSize=ut,this.crc32=dt,this.compression=ht,this.compressedContent=ct}at.prototype={getContentWorker:function(){var lt=new it(rt.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new st("data_length")),ut=this;return lt.on("end",function(){if(this.streamInfo.data_length!==ut.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),lt},getCompressedWorker:function(){return new it(rt.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},at.createWorkerFrom=function(lt,ut,dt){return lt.pipe(new ot).pipe(new st("uncompressedSize")).pipe(ut.compressWorker(dt)).pipe(new st("compressedSize")).withStreamInfo("compression",ut)},tt.exports=at},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(et,tt,nt){var rt=et("./stream/GenericWorker");nt.STORE={magic:"\0\0",compressWorker:function(){return new rt("STORE compression")},uncompressWorker:function(){return new rt("STORE decompression")}},nt.DEFLATE=et("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(et,tt,nt){var rt=et("./utils"),it=function(){for(var ot,st=[],at=0;at<256;at++){ot=at;for(var lt=0;lt<8;lt++)ot=1&ot?3988292384^ot>>>1:ot>>>1;st[at]=ot}return st}();tt.exports=function(ot,st){return ot!==void 0&&ot.length?rt.getTypeOf(ot)!=="string"?function(at,lt,ut,dt){var ht=it,ct=dt+ut;at^=-1;for(var pt=dt;pt>>8^ht[255&(at^lt[pt])];return-1^at}(0|st,ot,ot.length,0):function(at,lt,ut,dt){var ht=it,ct=dt+ut;at^=-1;for(var pt=dt;pt>>8^ht[255&(at^lt.charCodeAt(pt))];return-1^at}(0|st,ot,ot.length,0):0}},{"./utils":32}],5:[function(et,tt,nt){nt.base64=!1,nt.binary=!1,nt.dir=!1,nt.createFolders=!0,nt.date=null,nt.compression=null,nt.compressionOptions=null,nt.comment=null,nt.unixPermissions=null,nt.dosPermissions=null},{}],6:[function(et,tt,nt){var rt=null;rt=typeof Promise<"u"?Promise:et("lie"),tt.exports={Promise:rt}},{lie:37}],7:[function(et,tt,nt){var rt=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",it=et("pako"),ot=et("./utils"),st=et("./stream/GenericWorker"),at=rt?"uint8array":"array";function lt(ut,dt){st.call(this,"FlateWorker/"+ut),this._pako=null,this._pakoAction=ut,this._pakoOptions=dt,this.meta={}}nt.magic="\b\0",ot.inherits(lt,st),lt.prototype.processChunk=function(ut){this.meta=ut.meta,this._pako===null&&this._createPako(),this._pako.push(ot.transformTo(at,ut.data),!1)},lt.prototype.flush=function(){st.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},lt.prototype.cleanUp=function(){st.prototype.cleanUp.call(this),this._pako=null},lt.prototype._createPako=function(){this._pako=new it[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var ut=this;this._pako.onData=function(dt){ut.push({data:dt,meta:ut.meta})}},nt.compressWorker=function(ut){return new lt("Deflate",ut)},nt.uncompressWorker=function(){return new lt("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(et,tt,nt){function rt(ht,ct){var pt,ft="";for(pt=0;pt>>=8;return ft}function it(ht,ct,pt,ft,gt,yt){var Ut,Ft,mt=ht.file,vt=ht.compression,At=yt!==at.utf8encode,Lt=ot.transformTo("string",yt(mt.name)),Rt=ot.transformTo("string",at.utf8encode(mt.name)),St=mt.comment,Tt=ot.transformTo("string",yt(St)),Bt=ot.transformTo("string",at.utf8encode(St)),xt=Rt.length!==mt.name.length,Ct=Bt.length!==St.length,kt="",Nt="",Ot="",Jt=mt.dir,Dt=mt.date,Et={crc32:0,compressedSize:0,uncompressedSize:0};ct&&!pt||(Et.crc32=ht.crc32,Et.compressedSize=ht.compressedSize,Et.uncompressedSize=ht.uncompressedSize);var Pt=0;ct&&(Pt|=8),At||!xt&&!Ct||(Pt|=2048);var zt=0,en=0;Jt&&(zt|=16),gt==="UNIX"?(en=798,zt|=function(nn,Zt){var jt=nn;return nn||(jt=Zt?16893:33204),(65535&jt)<<16}(mt.unixPermissions,Jt)):(en=20,zt|=function(nn){return 63&(nn||0)}(mt.dosPermissions)),Ut=Dt.getUTCHours(),Ut<<=6,Ut|=Dt.getUTCMinutes(),Ut<<=5,Ut|=Dt.getUTCSeconds()/2,Ft=Dt.getUTCFullYear()-1980,Ft<<=4,Ft|=Dt.getUTCMonth()+1,Ft<<=5,Ft|=Dt.getUTCDate(),xt&&(Nt=rt(1,1)+rt(lt(Lt),4)+Rt,kt+="up"+rt(Nt.length,2)+Nt),Ct&&(Ot=rt(1,1)+rt(lt(Tt),4)+Bt,kt+="uc"+rt(Ot.length,2)+Ot);var Kt="";return Kt+=` +\0`,Kt+=rt(Pt,2),Kt+=vt.magic,Kt+=rt(Ut,2),Kt+=rt(Ft,2),Kt+=rt(Et.crc32,4),Kt+=rt(Et.compressedSize,4),Kt+=rt(Et.uncompressedSize,4),Kt+=rt(Lt.length,2),Kt+=rt(kt.length,2),{fileRecord:ut.LOCAL_FILE_HEADER+Kt+Lt+kt,dirRecord:ut.CENTRAL_FILE_HEADER+rt(en,2)+Kt+rt(Tt.length,2)+"\0\0\0\0"+rt(zt,4)+rt(ft,4)+Lt+kt+Tt}}var ot=et("../utils"),st=et("../stream/GenericWorker"),at=et("../utf8"),lt=et("../crc32"),ut=et("../signature");function dt(ht,ct,pt,ft){st.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=ct,this.zipPlatform=pt,this.encodeFileName=ft,this.streamFiles=ht,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}ot.inherits(dt,st),dt.prototype.push=function(ht){var ct=ht.meta.percent||0,pt=this.entriesCount,ft=this._sources.length;this.accumulate?this.contentBuffer.push(ht):(this.bytesWritten+=ht.data.length,st.prototype.push.call(this,{data:ht.data,meta:{currentFile:this.currentFile,percent:pt?(ct+100*(pt-ft-1))/pt:100}}))},dt.prototype.openedSource=function(ht){this.currentSourceOffset=this.bytesWritten,this.currentFile=ht.file.name;var ct=this.streamFiles&&!ht.file.dir;if(ct){var pt=it(ht,ct,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:pt.fileRecord,meta:{percent:0}})}else this.accumulate=!0},dt.prototype.closedSource=function(ht){this.accumulate=!1;var ct=this.streamFiles&&!ht.file.dir,pt=it(ht,ct,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(pt.dirRecord),ct)this.push({data:function(ft){return ut.DATA_DESCRIPTOR+rt(ft.crc32,4)+rt(ft.compressedSize,4)+rt(ft.uncompressedSize,4)}(ht),meta:{percent:100}});else for(this.push({data:pt.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},dt.prototype.flush=function(){for(var ht=this.bytesWritten,ct=0;ct=this.index;st--)at=(at<<8)+this.byteAt(st);return this.index+=ot,at},readString:function(ot){return rt.transformTo("string",this.readData(ot))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var ot=this.readInt(4);return new Date(Date.UTC(1980+(ot>>25&127),(ot>>21&15)-1,ot>>16&31,ot>>11&31,ot>>5&63,(31&ot)<<1))}},tt.exports=it},{"../utils":32}],19:[function(et,tt,nt){var rt=et("./Uint8ArrayReader");function it(ot){rt.call(this,ot)}et("../utils").inherits(it,rt),it.prototype.readData=function(ot){this.checkOffset(ot);var st=this.data.slice(this.zero+this.index,this.zero+this.index+ot);return this.index+=ot,st},tt.exports=it},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(et,tt,nt){var rt=et("./DataReader");function it(ot){rt.call(this,ot)}et("../utils").inherits(it,rt),it.prototype.byteAt=function(ot){return this.data.charCodeAt(this.zero+ot)},it.prototype.lastIndexOfSignature=function(ot){return this.data.lastIndexOf(ot)-this.zero},it.prototype.readAndCheckSignature=function(ot){return ot===this.readData(4)},it.prototype.readData=function(ot){this.checkOffset(ot);var st=this.data.slice(this.zero+this.index,this.zero+this.index+ot);return this.index+=ot,st},tt.exports=it},{"../utils":32,"./DataReader":18}],21:[function(et,tt,nt){var rt=et("./ArrayReader");function it(ot){rt.call(this,ot)}et("../utils").inherits(it,rt),it.prototype.readData=function(ot){if(this.checkOffset(ot),ot===0)return new Uint8Array(0);var st=this.data.subarray(this.zero+this.index,this.zero+this.index+ot);return this.index+=ot,st},tt.exports=it},{"../utils":32,"./ArrayReader":17}],22:[function(et,tt,nt){var rt=et("../utils"),it=et("../support"),ot=et("./ArrayReader"),st=et("./StringReader"),at=et("./NodeBufferReader"),lt=et("./Uint8ArrayReader");tt.exports=function(ut){var dt=rt.getTypeOf(ut);return rt.checkSupport(dt),dt!=="string"||it.uint8array?dt==="nodebuffer"?new at(ut):it.uint8array?new lt(rt.transformTo("uint8array",ut)):new ot(rt.transformTo("array",ut)):new st(ut)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(et,tt,nt){nt.LOCAL_FILE_HEADER="PK",nt.CENTRAL_FILE_HEADER="PK",nt.CENTRAL_DIRECTORY_END="PK",nt.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",nt.ZIP64_CENTRAL_DIRECTORY_END="PK",nt.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(et,tt,nt){var rt=et("./GenericWorker"),it=et("../utils");function ot(st){rt.call(this,"ConvertWorker to "+st),this.destType=st}it.inherits(ot,rt),ot.prototype.processChunk=function(st){this.push({data:it.transformTo(this.destType,st.data),meta:st.meta})},tt.exports=ot},{"../utils":32,"./GenericWorker":28}],25:[function(et,tt,nt){var rt=et("./GenericWorker"),it=et("../crc32");function ot(){rt.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}et("../utils").inherits(ot,rt),ot.prototype.processChunk=function(st){this.streamInfo.crc32=it(st.data,this.streamInfo.crc32||0),this.push(st)},tt.exports=ot},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(et,tt,nt){var rt=et("../utils"),it=et("./GenericWorker");function ot(st){it.call(this,"DataLengthProbe for "+st),this.propName=st,this.withStreamInfo(st,0)}rt.inherits(ot,it),ot.prototype.processChunk=function(st){if(st){var at=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=at+st.data.length}it.prototype.processChunk.call(this,st)},tt.exports=ot},{"../utils":32,"./GenericWorker":28}],27:[function(et,tt,nt){var rt=et("../utils"),it=et("./GenericWorker");function ot(st){it.call(this,"DataWorker");var at=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,st.then(function(lt){at.dataIsReady=!0,at.data=lt,at.max=lt&<.length||0,at.type=rt.getTypeOf(lt),at.isPaused||at._tickAndRepeat()},function(lt){at.error(lt)})}rt.inherits(ot,it),ot.prototype.cleanUp=function(){it.prototype.cleanUp.call(this),this.data=null},ot.prototype.resume=function(){return!!it.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,rt.delay(this._tickAndRepeat,[],this)),!0)},ot.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(rt.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},ot.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var st=null,at=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":st=this.data.substring(this.index,at);break;case"uint8array":st=this.data.subarray(this.index,at);break;case"array":case"nodebuffer":st=this.data.slice(this.index,at)}return this.index=at,this.push({data:st,meta:{percent:this.max?this.index/this.max*100:0}})},tt.exports=ot},{"../utils":32,"./GenericWorker":28}],28:[function(et,tt,nt){function rt(it){this.name=it||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}rt.prototype={push:function(it){this.emit("data",it)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(it){this.emit("error",it)}return!0},error:function(it){return!this.isFinished&&(this.isPaused?this.generatedError=it:(this.isFinished=!0,this.emit("error",it),this.previous&&this.previous.error(it),this.cleanUp()),!0)},on:function(it,ot){return this._listeners[it].push(ot),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(it,ot){if(this._listeners[it])for(var st=0;st "+it:it}},tt.exports=rt},{}],29:[function(et,tt,nt){var rt=et("../utils"),it=et("./ConvertWorker"),ot=et("./GenericWorker"),st=et("../base64"),at=et("../support"),lt=et("../external"),ut=null;if(at.nodestream)try{ut=et("../nodejs/NodejsStreamOutputAdapter")}catch{}function dt(ct,pt){return new lt.Promise(function(ft,gt){var yt=[],Ut=ct._internalType,Ft=ct._outputType,mt=ct._mimeType;ct.on("data",function(vt,At){yt.push(vt),pt&&pt(At)}).on("error",function(vt){yt=[],gt(vt)}).on("end",function(){try{var vt=function(At,Lt,Rt){switch(At){case"blob":return rt.newBlob(rt.transformTo("arraybuffer",Lt),Rt);case"base64":return st.encode(Lt);default:return rt.transformTo(At,Lt)}}(Ft,function(At,Lt){var Rt,St=0,Tt=null,Bt=0;for(Rt=0;Rt"u")nt.blob=!1;else{var rt=new ArrayBuffer(0);try{nt.blob=new Blob([rt],{type:"application/zip"}).size===0}catch{try{var it=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);it.append(rt),nt.blob=it.getBlob("application/zip").size===0}catch{nt.blob=!1}}}try{nt.nodestream=!!et("readable-stream").Readable}catch{nt.nodestream=!1}},{"readable-stream":16}],31:[function(et,tt,nt){for(var rt=et("./utils"),it=et("./support"),ot=et("./nodejsUtils"),st=et("./stream/GenericWorker"),at=new Array(256),lt=0;lt<256;lt++)at[lt]=252<=lt?6:248<=lt?5:240<=lt?4:224<=lt?3:192<=lt?2:1;at[254]=at[254]=1;function ut(){st.call(this,"utf-8 decode"),this.leftOver=null}function dt(){st.call(this,"utf-8 encode")}nt.utf8encode=function(ht){return it.nodebuffer?ot.newBufferFrom(ht,"utf-8"):function(ct){var pt,ft,gt,yt,Ut,Ft=ct.length,mt=0;for(yt=0;yt>>6:(ft<65536?pt[Ut++]=224|ft>>>12:(pt[Ut++]=240|ft>>>18,pt[Ut++]=128|ft>>>12&63),pt[Ut++]=128|ft>>>6&63),pt[Ut++]=128|63&ft);return pt}(ht)},nt.utf8decode=function(ht){return it.nodebuffer?rt.transformTo("nodebuffer",ht).toString("utf-8"):function(ct){var pt,ft,gt,yt,Ut=ct.length,Ft=new Array(2*Ut);for(pt=ft=0;pt>10&1023,Ft[ft++]=56320|1023>)}return Ft.length!==ft&&(Ft.subarray?Ft=Ft.subarray(0,ft):Ft.length=ft),rt.applyFromCharCode(Ft)}(ht=rt.transformTo(it.uint8array?"uint8array":"array",ht))},rt.inherits(ut,st),ut.prototype.processChunk=function(ht){var ct=rt.transformTo(it.uint8array?"uint8array":"array",ht.data);if(this.leftOver&&this.leftOver.length){if(it.uint8array){var pt=ct;(ct=new Uint8Array(pt.length+this.leftOver.length)).set(this.leftOver,0),ct.set(pt,this.leftOver.length)}else ct=this.leftOver.concat(ct);this.leftOver=null}var ft=function(yt,Ut){var Ft;for((Ut=Ut||yt.length)>yt.length&&(Ut=yt.length),Ft=Ut-1;0<=Ft&&(192&yt[Ft])==128;)Ft--;return Ft<0||Ft===0?Ut:Ft+at[yt[Ft]]>Ut?Ft:Ut}(ct),gt=ct;ft!==ct.length&&(it.uint8array?(gt=ct.subarray(0,ft),this.leftOver=ct.subarray(ft,ct.length)):(gt=ct.slice(0,ft),this.leftOver=ct.slice(ft,ct.length))),this.push({data:nt.utf8decode(gt),meta:ht.meta})},ut.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:nt.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},nt.Utf8DecodeWorker=ut,rt.inherits(dt,st),dt.prototype.processChunk=function(ht){this.push({data:nt.utf8encode(ht.data),meta:ht.meta})},nt.Utf8EncodeWorker=dt},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(et,tt,nt){var rt=et("./support"),it=et("./base64"),ot=et("./nodejsUtils"),st=et("./external");function at(pt){return pt}function lt(pt,ft){for(var gt=0;gt>8;this.dir=!!(16&this.externalFileAttributes),ht==0&&(this.dosPermissions=63&this.externalFileAttributes),ht==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var ht=rt(this.extraFields[1].value);this.uncompressedSize===it.MAX_VALUE_32BITS&&(this.uncompressedSize=ht.readInt(8)),this.compressedSize===it.MAX_VALUE_32BITS&&(this.compressedSize=ht.readInt(8)),this.localHeaderOffset===it.MAX_VALUE_32BITS&&(this.localHeaderOffset=ht.readInt(8)),this.diskNumberStart===it.MAX_VALUE_32BITS&&(this.diskNumberStart=ht.readInt(4))}},readExtraFields:function(ht){var ct,pt,ft,gt=ht.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});ht.index+4>>6:(ht<65536?dt[ft++]=224|ht>>>12:(dt[ft++]=240|ht>>>18,dt[ft++]=128|ht>>>12&63),dt[ft++]=128|ht>>>6&63),dt[ft++]=128|63&ht);return dt},nt.buf2binstring=function(ut){return lt(ut,ut.length)},nt.binstring2buf=function(ut){for(var dt=new rt.Buf8(ut.length),ht=0,ct=dt.length;ht>10&1023,yt[ct++]=56320|1023&pt)}return lt(yt,ct)},nt.utf8border=function(ut,dt){var ht;for((dt=dt||ut.length)>ut.length&&(dt=ut.length),ht=dt-1;0<=ht&&(192&ut[ht])==128;)ht--;return ht<0||ht===0?dt:ht+st[ut[ht]]>dt?ht:dt}},{"./common":41}],43:[function(et,tt,nt){tt.exports=function(rt,it,ot,st){for(var at=65535&rt|0,lt=rt>>>16&65535|0,ut=0;ot!==0;){for(ot-=ut=2e3>>1:it>>>1;ot[st]=it}return ot}();tt.exports=function(it,ot,st,at){var lt=rt,ut=at+st;it^=-1;for(var dt=at;dt>>8^lt[255&(it^ot[dt])];return-1^it}},{}],46:[function(et,tt,nt){var rt,it=et("../utils/common"),ot=et("./trees"),st=et("./adler32"),at=et("./crc32"),lt=et("./messages"),ut=0,dt=4,ht=0,ct=-2,pt=-1,ft=4,gt=2,yt=8,Ut=9,Ft=286,mt=30,vt=19,At=2*Ft+1,Lt=15,Rt=3,St=258,Tt=St+Rt+1,Bt=42,xt=113,Ct=1,kt=2,Nt=3,Ot=4;function Jt(Xt,dn){return Xt.msg=lt[dn],dn}function Dt(Xt){return(Xt<<1)-(4Xt.avail_out&&(_n=Xt.avail_out),_n!==0&&(it.arraySet(Xt.output,dn.pending_buf,dn.pending_out,_n,Xt.next_out),Xt.next_out+=_n,dn.pending_out+=_n,Xt.total_out+=_n,Xt.avail_out-=_n,dn.pending-=_n,dn.pending===0&&(dn.pending_out=0))}function zt(Xt,dn){ot._tr_flush_block(Xt,0<=Xt.block_start?Xt.block_start:-1,Xt.strstart-Xt.block_start,dn),Xt.block_start=Xt.strstart,Pt(Xt.strm)}function en(Xt,dn){Xt.pending_buf[Xt.pending++]=dn}function Kt(Xt,dn){Xt.pending_buf[Xt.pending++]=dn>>>8&255,Xt.pending_buf[Xt.pending++]=255&dn}function nn(Xt,dn){var _n,Fn,Un=Xt.max_chain_length,On=Xt.strstart,gn=Xt.prev_length,hn=Xt.nice_match,wn=Xt.strstart>Xt.w_size-Tt?Xt.strstart-(Xt.w_size-Tt):0,Zn=Xt.window,Pn=Xt.w_mask,$n=Xt.prev,Tr=Xt.strstart+St,Qr=Zn[On+gn-1],_r=Zn[On+gn];Xt.prev_length>=Xt.good_match&&(Un>>=2),hn>Xt.lookahead&&(hn=Xt.lookahead);do if(Zn[(_n=dn)+gn]===_r&&Zn[_n+gn-1]===Qr&&Zn[_n]===Zn[On]&&Zn[++_n]===Zn[On+1]){On+=2,_n++;do;while(Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Onwn&&--Un!=0);return gn<=Xt.lookahead?gn:Xt.lookahead}function Zt(Xt){var dn,_n,Fn,Un,On,gn,hn,wn,Zn,Pn,$n=Xt.w_size;do{if(Un=Xt.window_size-Xt.lookahead-Xt.strstart,Xt.strstart>=$n+($n-Tt)){for(it.arraySet(Xt.window,Xt.window,$n,$n,0),Xt.match_start-=$n,Xt.strstart-=$n,Xt.block_start-=$n,dn=_n=Xt.hash_size;Fn=Xt.head[--dn],Xt.head[dn]=$n<=Fn?Fn-$n:0,--_n;);for(dn=_n=$n;Fn=Xt.prev[--dn],Xt.prev[dn]=$n<=Fn?Fn-$n:0,--_n;);Un+=$n}if(Xt.strm.avail_in===0)break;if(gn=Xt.strm,hn=Xt.window,wn=Xt.strstart+Xt.lookahead,Zn=Un,Pn=void 0,Pn=gn.avail_in,Zn=Rt)for(On=Xt.strstart-Xt.insert,Xt.ins_h=Xt.window[On],Xt.ins_h=(Xt.ins_h<=Rt&&(Xt.ins_h=(Xt.ins_h<=Rt)if(Fn=ot._tr_tally(Xt,Xt.strstart-Xt.match_start,Xt.match_length-Rt),Xt.lookahead-=Xt.match_length,Xt.match_length<=Xt.max_lazy_match&&Xt.lookahead>=Rt){for(Xt.match_length--;Xt.strstart++,Xt.ins_h=(Xt.ins_h<=Rt&&(Xt.ins_h=(Xt.ins_h<=Rt&&Xt.match_length<=Xt.prev_length){for(Un=Xt.strstart+Xt.lookahead-Rt,Fn=ot._tr_tally(Xt,Xt.strstart-1-Xt.prev_match,Xt.prev_length-Rt),Xt.lookahead-=Xt.prev_length-1,Xt.prev_length-=2;++Xt.strstart<=Un&&(Xt.ins_h=(Xt.ins_h<Xt.pending_buf_size-5&&(_n=Xt.pending_buf_size-5);;){if(Xt.lookahead<=1){if(Zt(Xt),Xt.lookahead===0&&dn===ut)return Ct;if(Xt.lookahead===0)break}Xt.strstart+=Xt.lookahead,Xt.lookahead=0;var Fn=Xt.block_start+_n;if((Xt.strstart===0||Xt.strstart>=Fn)&&(Xt.lookahead=Xt.strstart-Fn,Xt.strstart=Fn,zt(Xt,!1),Xt.strm.avail_out===0)||Xt.strstart-Xt.block_start>=Xt.w_size-Tt&&(zt(Xt,!1),Xt.strm.avail_out===0))return Ct}return Xt.insert=0,dn===dt?(zt(Xt,!0),Xt.strm.avail_out===0?Nt:Ot):(Xt.strstart>Xt.block_start&&(zt(Xt,!1),Xt.strm.avail_out),Ct)}),new It(4,4,8,4,jt),new It(4,5,16,8,jt),new It(4,6,32,32,jt),new It(4,4,16,16,Vt),new It(8,16,32,32,Vt),new It(8,16,128,128,Vt),new It(8,32,128,256,Vt),new It(32,128,258,1024,Vt),new It(32,258,258,4096,Vt)],nt.deflateInit=function(Xt,dn){return on(Xt,dn,yt,15,8,0)},nt.deflateInit2=on,nt.deflateReset=qt,nt.deflateResetKeep=Ht,nt.deflateSetHeader=function(Xt,dn){return Xt&&Xt.state?Xt.state.wrap!==2?ct:(Xt.state.gzhead=dn,ht):ct},nt.deflate=function(Xt,dn){var _n,Fn,Un,On;if(!Xt||!Xt.state||5>8&255),en(Fn,Fn.gzhead.time>>16&255),en(Fn,Fn.gzhead.time>>24&255),en(Fn,Fn.level===9?2:2<=Fn.strategy||Fn.level<2?4:0),en(Fn,255&Fn.gzhead.os),Fn.gzhead.extra&&Fn.gzhead.extra.length&&(en(Fn,255&Fn.gzhead.extra.length),en(Fn,Fn.gzhead.extra.length>>8&255)),Fn.gzhead.hcrc&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending,0)),Fn.gzindex=0,Fn.status=69):(en(Fn,0),en(Fn,0),en(Fn,0),en(Fn,0),en(Fn,0),en(Fn,Fn.level===9?2:2<=Fn.strategy||Fn.level<2?4:0),en(Fn,3),Fn.status=xt);else{var gn=yt+(Fn.w_bits-8<<4)<<8;gn|=(2<=Fn.strategy||Fn.level<2?0:Fn.level<6?1:Fn.level===6?2:3)<<6,Fn.strstart!==0&&(gn|=32),gn+=31-gn%31,Fn.status=xt,Kt(Fn,gn),Fn.strstart!==0&&(Kt(Fn,Xt.adler>>>16),Kt(Fn,65535&Xt.adler)),Xt.adler=1}if(Fn.status===69)if(Fn.gzhead.extra){for(Un=Fn.pending;Fn.gzindex<(65535&Fn.gzhead.extra.length)&&(Fn.pending!==Fn.pending_buf_size||(Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Pt(Xt),Un=Fn.pending,Fn.pending!==Fn.pending_buf_size));)en(Fn,255&Fn.gzhead.extra[Fn.gzindex]),Fn.gzindex++;Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Fn.gzindex===Fn.gzhead.extra.length&&(Fn.gzindex=0,Fn.status=73)}else Fn.status=73;if(Fn.status===73)if(Fn.gzhead.name){Un=Fn.pending;do{if(Fn.pending===Fn.pending_buf_size&&(Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Pt(Xt),Un=Fn.pending,Fn.pending===Fn.pending_buf_size)){On=1;break}On=Fn.gzindexUn&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),On===0&&(Fn.gzindex=0,Fn.status=91)}else Fn.status=91;if(Fn.status===91)if(Fn.gzhead.comment){Un=Fn.pending;do{if(Fn.pending===Fn.pending_buf_size&&(Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Pt(Xt),Un=Fn.pending,Fn.pending===Fn.pending_buf_size)){On=1;break}On=Fn.gzindexUn&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),On===0&&(Fn.status=103)}else Fn.status=103;if(Fn.status===103&&(Fn.gzhead.hcrc?(Fn.pending+2>Fn.pending_buf_size&&Pt(Xt),Fn.pending+2<=Fn.pending_buf_size&&(en(Fn,255&Xt.adler),en(Fn,Xt.adler>>8&255),Xt.adler=0,Fn.status=xt)):Fn.status=xt),Fn.pending!==0){if(Pt(Xt),Xt.avail_out===0)return Fn.last_flush=-1,ht}else if(Xt.avail_in===0&&Dt(dn)<=Dt(_n)&&dn!==dt)return Jt(Xt,-5);if(Fn.status===666&&Xt.avail_in!==0)return Jt(Xt,-5);if(Xt.avail_in!==0||Fn.lookahead!==0||dn!==ut&&Fn.status!==666){var hn=Fn.strategy===2?function(wn,Zn){for(var Pn;;){if(wn.lookahead===0&&(Zt(wn),wn.lookahead===0)){if(Zn===ut)return Ct;break}if(wn.match_length=0,Pn=ot._tr_tally(wn,0,wn.window[wn.strstart]),wn.lookahead--,wn.strstart++,Pn&&(zt(wn,!1),wn.strm.avail_out===0))return Ct}return wn.insert=0,Zn===dt?(zt(wn,!0),wn.strm.avail_out===0?Nt:Ot):wn.last_lit&&(zt(wn,!1),wn.strm.avail_out===0)?Ct:kt}(Fn,dn):Fn.strategy===3?function(wn,Zn){for(var Pn,$n,Tr,Qr,_r=wn.window;;){if(wn.lookahead<=St){if(Zt(wn),wn.lookahead<=St&&Zn===ut)return Ct;if(wn.lookahead===0)break}if(wn.match_length=0,wn.lookahead>=Rt&&0wn.lookahead&&(wn.match_length=wn.lookahead)}if(wn.match_length>=Rt?(Pn=ot._tr_tally(wn,1,wn.match_length-Rt),wn.lookahead-=wn.match_length,wn.strstart+=wn.match_length,wn.match_length=0):(Pn=ot._tr_tally(wn,0,wn.window[wn.strstart]),wn.lookahead--,wn.strstart++),Pn&&(zt(wn,!1),wn.strm.avail_out===0))return Ct}return wn.insert=0,Zn===dt?(zt(wn,!0),wn.strm.avail_out===0?Nt:Ot):wn.last_lit&&(zt(wn,!1),wn.strm.avail_out===0)?Ct:kt}(Fn,dn):rt[Fn.level].func(Fn,dn);if(hn!==Nt&&hn!==Ot||(Fn.status=666),hn===Ct||hn===Nt)return Xt.avail_out===0&&(Fn.last_flush=-1),ht;if(hn===kt&&(dn===1?ot._tr_align(Fn):dn!==5&&(ot._tr_stored_block(Fn,0,0,!1),dn===3&&(Et(Fn.head),Fn.lookahead===0&&(Fn.strstart=0,Fn.block_start=0,Fn.insert=0))),Pt(Xt),Xt.avail_out===0))return Fn.last_flush=-1,ht}return dn!==dt?ht:Fn.wrap<=0?1:(Fn.wrap===2?(en(Fn,255&Xt.adler),en(Fn,Xt.adler>>8&255),en(Fn,Xt.adler>>16&255),en(Fn,Xt.adler>>24&255),en(Fn,255&Xt.total_in),en(Fn,Xt.total_in>>8&255),en(Fn,Xt.total_in>>16&255),en(Fn,Xt.total_in>>24&255)):(Kt(Fn,Xt.adler>>>16),Kt(Fn,65535&Xt.adler)),Pt(Xt),0=_n.w_size&&(On===0&&(Et(_n.head),_n.strstart=0,_n.block_start=0,_n.insert=0),Zn=new it.Buf8(_n.w_size),it.arraySet(Zn,dn,Pn-_n.w_size,_n.w_size,0),dn=Zn,Pn=_n.w_size),gn=Xt.avail_in,hn=Xt.next_in,wn=Xt.input,Xt.avail_in=Pn,Xt.next_in=0,Xt.input=dn,Zt(_n);_n.lookahead>=Rt;){for(Fn=_n.strstart,Un=_n.lookahead-(Rt-1);_n.ins_h=(_n.ins_h<<_n.hash_shift^_n.window[Fn+Rt-1])&_n.hash_mask,_n.prev[Fn&_n.w_mask]=_n.head[_n.ins_h],_n.head[_n.ins_h]=Fn,Fn++,--Un;);_n.strstart=Fn,_n.lookahead=Rt-1,Zt(_n)}return _n.strstart+=_n.lookahead,_n.block_start=_n.strstart,_n.insert=_n.lookahead,_n.lookahead=0,_n.match_length=_n.prev_length=Rt-1,_n.match_available=0,Xt.next_in=hn,Xt.input=wn,Xt.avail_in=gn,_n.wrap=On,ht},nt.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(et,tt,nt){tt.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(et,tt,nt){tt.exports=function(rt,it){var ot,st,at,lt,ut,dt,ht,ct,pt,ft,gt,yt,Ut,Ft,mt,vt,At,Lt,Rt,St,Tt,Bt,xt,Ct,kt;ot=rt.state,st=rt.next_in,Ct=rt.input,at=st+(rt.avail_in-5),lt=rt.next_out,kt=rt.output,ut=lt-(it-rt.avail_out),dt=lt+(rt.avail_out-257),ht=ot.dmax,ct=ot.wsize,pt=ot.whave,ft=ot.wnext,gt=ot.window,yt=ot.hold,Ut=ot.bits,Ft=ot.lencode,mt=ot.distcode,vt=(1<>>=Rt=Lt>>>24,Ut-=Rt,(Rt=Lt>>>16&255)===0)kt[lt++]=65535≪else{if(!(16&Rt)){if(!(64&Rt)){Lt=Ft[(65535&Lt)+(yt&(1<>>=Rt,Ut-=Rt),Ut<15&&(yt+=Ct[st++]<>>=Rt=Lt>>>24,Ut-=Rt,!(16&(Rt=Lt>>>16&255))){if(!(64&Rt)){Lt=mt[(65535&Lt)+(yt&(1<>>=Rt,Ut-=Rt,(Rt=lt-ut)>3,yt&=(1<<(Ut-=St<<3))-1,rt.next_in=st,rt.next_out=lt,rt.avail_in=st>>24&255)+(Bt>>>8&65280)+((65280&Bt)<<8)+((255&Bt)<<24)}function yt(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new rt.Buf16(320),this.work=new rt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Ut(Bt){var xt;return Bt&&Bt.state?(xt=Bt.state,Bt.total_in=Bt.total_out=xt.total=0,Bt.msg="",xt.wrap&&(Bt.adler=1&xt.wrap),xt.mode=ct,xt.last=0,xt.havedict=0,xt.dmax=32768,xt.head=null,xt.hold=0,xt.bits=0,xt.lencode=xt.lendyn=new rt.Buf32(pt),xt.distcode=xt.distdyn=new rt.Buf32(ft),xt.sane=1,xt.back=-1,dt):ht}function Ft(Bt){var xt;return Bt&&Bt.state?((xt=Bt.state).wsize=0,xt.whave=0,xt.wnext=0,Ut(Bt)):ht}function mt(Bt,xt){var Ct,kt;return Bt&&Bt.state?(kt=Bt.state,xt<0?(Ct=0,xt=-xt):(Ct=1+(xt>>4),xt<48&&(xt&=15)),xt&&(xt<8||15=Ot.wsize?(rt.arraySet(Ot.window,xt,Ct-Ot.wsize,Ot.wsize,0),Ot.wnext=0,Ot.whave=Ot.wsize):(kt<(Nt=Ot.wsize-Ot.wnext)&&(Nt=kt),rt.arraySet(Ot.window,xt,Ct-kt,Nt,Ot.wnext),(kt-=Nt)?(rt.arraySet(Ot.window,xt,Ct-kt,kt,0),Ot.wnext=kt,Ot.whave=Ot.wsize):(Ot.wnext+=Nt,Ot.wnext===Ot.wsize&&(Ot.wnext=0),Ot.whave>>8&255,Ct.check=ot(Ct.check,On,2,0),zt=Pt=0,Ct.mode=2;break}if(Ct.flags=0,Ct.head&&(Ct.head.done=!1),!(1&Ct.wrap)||(((255&Pt)<<8)+(Pt>>8))%31){Bt.msg="incorrect header check",Ct.mode=30;break}if((15&Pt)!=8){Bt.msg="unknown compression method",Ct.mode=30;break}if(zt-=4,Xt=8+(15&(Pt>>>=4)),Ct.wbits===0)Ct.wbits=Xt;else if(Xt>Ct.wbits){Bt.msg="invalid window size",Ct.mode=30;break}Ct.dmax=1<>8&1),512&Ct.flags&&(On[0]=255&Pt,On[1]=Pt>>>8&255,Ct.check=ot(Ct.check,On,2,0)),zt=Pt=0,Ct.mode=3;case 3:for(;zt<32;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>8&255,On[2]=Pt>>>16&255,On[3]=Pt>>>24&255,Ct.check=ot(Ct.check,On,4,0)),zt=Pt=0,Ct.mode=4;case 4:for(;zt<16;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>8),512&Ct.flags&&(On[0]=255&Pt,On[1]=Pt>>>8&255,Ct.check=ot(Ct.check,On,2,0)),zt=Pt=0,Ct.mode=5;case 5:if(1024&Ct.flags){for(;zt<16;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>8&255,Ct.check=ot(Ct.check,On,2,0)),zt=Pt=0}else Ct.head&&(Ct.head.extra=null);Ct.mode=6;case 6:if(1024&Ct.flags&&(Dt<(nn=Ct.length)&&(nn=Dt),nn&&(Ct.head&&(Xt=Ct.head.extra_len-Ct.length,Ct.head.extra||(Ct.head.extra=new Array(Ct.head.extra_len)),rt.arraySet(Ct.head.extra,kt,Ot,nn,Xt)),512&Ct.flags&&(Ct.check=ot(Ct.check,kt,nn,Ot)),Dt-=nn,Ot+=nn,Ct.length-=nn),Ct.length))break e;Ct.length=0,Ct.mode=7;case 7:if(2048&Ct.flags){if(Dt===0)break e;for(nn=0;Xt=kt[Ot+nn++],Ct.head&&Xt&&Ct.length<65536&&(Ct.head.name+=String.fromCharCode(Xt)),Xt&&nn>9&1,Ct.head.done=!0),Bt.adler=Ct.check=0,Ct.mode=12;break;case 10:for(;zt<32;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=7&zt,zt-=7&zt,Ct.mode=27;break}for(;zt<3;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=1)){case 0:Ct.mode=14;break;case 1:if(St(Ct),Ct.mode=20,xt!==6)break;Pt>>>=2,zt-=2;break e;case 2:Ct.mode=17;break;case 3:Bt.msg="invalid block type",Ct.mode=30}Pt>>>=2,zt-=2;break;case 14:for(Pt>>>=7&zt,zt-=7&zt;zt<32;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>16^65535)){Bt.msg="invalid stored block lengths",Ct.mode=30;break}if(Ct.length=65535&Pt,zt=Pt=0,Ct.mode=15,xt===6)break e;case 15:Ct.mode=16;case 16:if(nn=Ct.length){if(Dt>>=5,zt-=5,Ct.ndist=1+(31&Pt),Pt>>>=5,zt-=5,Ct.ncode=4+(15&Pt),Pt>>>=4,zt-=4,286>>=3,zt-=3}for(;Ct.have<19;)Ct.lens[gn[Ct.have++]]=0;if(Ct.lencode=Ct.lendyn,Ct.lenbits=7,_n={bits:Ct.lenbits},dn=at(0,Ct.lens,0,19,Ct.lencode,0,Ct.work,_n),Ct.lenbits=_n.bits,dn){Bt.msg="invalid code lengths set",Ct.mode=30;break}Ct.have=0,Ct.mode=19;case 19:for(;Ct.have>>16&255,$t=65535&Un,!((Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=Vt,zt-=Vt,Ct.lens[Ct.have++]=$t;else{if($t===16){for(Fn=Vt+2;zt>>=Vt,zt-=Vt,Ct.have===0){Bt.msg="invalid bit length repeat",Ct.mode=30;break}Xt=Ct.lens[Ct.have-1],nn=3+(3&Pt),Pt>>>=2,zt-=2}else if($t===17){for(Fn=Vt+3;zt>>=Vt)),Pt>>>=3,zt-=3}else{for(Fn=Vt+7;zt>>=Vt)),Pt>>>=7,zt-=7}if(Ct.have+nn>Ct.nlen+Ct.ndist){Bt.msg="invalid bit length repeat",Ct.mode=30;break}for(;nn--;)Ct.lens[Ct.have++]=Xt}}if(Ct.mode===30)break;if(Ct.lens[256]===0){Bt.msg="invalid code -- missing end-of-block",Ct.mode=30;break}if(Ct.lenbits=9,_n={bits:Ct.lenbits},dn=at(lt,Ct.lens,0,Ct.nlen,Ct.lencode,0,Ct.work,_n),Ct.lenbits=_n.bits,dn){Bt.msg="invalid literal/lengths set",Ct.mode=30;break}if(Ct.distbits=6,Ct.distcode=Ct.distdyn,_n={bits:Ct.distbits},dn=at(ut,Ct.lens,Ct.nlen,Ct.ndist,Ct.distcode,0,Ct.work,_n),Ct.distbits=_n.bits,dn){Bt.msg="invalid distances set",Ct.mode=30;break}if(Ct.mode=20,xt===6)break e;case 20:Ct.mode=21;case 21:if(6<=Dt&&258<=Et){Bt.next_out=Jt,Bt.avail_out=Et,Bt.next_in=Ot,Bt.avail_in=Dt,Ct.hold=Pt,Ct.bits=zt,st(Bt,Kt),Jt=Bt.next_out,Nt=Bt.output,Et=Bt.avail_out,Ot=Bt.next_in,kt=Bt.input,Dt=Bt.avail_in,Pt=Ct.hold,zt=Ct.bits,Ct.mode===12&&(Ct.back=-1);break}for(Ct.back=0;It=(Un=Ct.lencode[Pt&(1<>>16&255,$t=65535&Un,!((Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>Ht)])>>>16&255,$t=65535&Un,!(Ht+(Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=Ht,zt-=Ht,Ct.back+=Ht}if(Pt>>>=Vt,zt-=Vt,Ct.back+=Vt,Ct.length=$t,It===0){Ct.mode=26;break}if(32&It){Ct.back=-1,Ct.mode=12;break}if(64&It){Bt.msg="invalid literal/length code",Ct.mode=30;break}Ct.extra=15&It,Ct.mode=22;case 22:if(Ct.extra){for(Fn=Ct.extra;zt>>=Ct.extra,zt-=Ct.extra,Ct.back+=Ct.extra}Ct.was=Ct.length,Ct.mode=23;case 23:for(;It=(Un=Ct.distcode[Pt&(1<>>16&255,$t=65535&Un,!((Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>Ht)])>>>16&255,$t=65535&Un,!(Ht+(Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=Ht,zt-=Ht,Ct.back+=Ht}if(Pt>>>=Vt,zt-=Vt,Ct.back+=Vt,64&It){Bt.msg="invalid distance code",Ct.mode=30;break}Ct.offset=$t,Ct.extra=15&It,Ct.mode=24;case 24:if(Ct.extra){for(Fn=Ct.extra;zt>>=Ct.extra,zt-=Ct.extra,Ct.back+=Ct.extra}if(Ct.offset>Ct.dmax){Bt.msg="invalid distance too far back",Ct.mode=30;break}Ct.mode=25;case 25:if(Et===0)break e;if(nn=Kt-Et,Ct.offset>nn){if((nn=Ct.offset-nn)>Ct.whave&&Ct.sane){Bt.msg="invalid distance too far back",Ct.mode=30;break}Zt=nn>Ct.wnext?(nn-=Ct.wnext,Ct.wsize-nn):Ct.wnext-nn,nn>Ct.length&&(nn=Ct.length),jt=Ct.window}else jt=Nt,Zt=Jt-Ct.offset,nn=Ct.length;for(EtAt?(Rt=Zt[jt+ft[xt]],zt[en+ft[xt]]):(Rt=96,0),yt=1<>Jt)+(Ut-=yt)]=Lt<<24|Rt<<16|St|0,Ut!==0;);for(yt=1<>=1;if(yt!==0?(Pt&=yt-1,Pt+=yt):Pt=0,xt++,--Kt[Bt]==0){if(Bt===kt)break;Bt=ut[dt+ft[xt]]}if(Nt>>7)]}function en(Un,On){Un.pending_buf[Un.pending++]=255&On,Un.pending_buf[Un.pending++]=On>>>8&255}function Kt(Un,On,gn){Un.bi_valid>gt-gn?(Un.bi_buf|=On<>gt-Un.bi_valid,Un.bi_valid+=gn-gt):(Un.bi_buf|=On<>>=1,gn<<=1,0<--On;);return gn>>>1}function jt(Un,On,gn){var hn,wn,Zn=new Array(ft+1),Pn=0;for(hn=1;hn<=ft;hn++)Zn[hn]=Pn=Pn+gn[hn-1]<<1;for(wn=0;wn<=On;wn++){var $n=Un[2*wn+1];$n!==0&&(Un[2*wn]=Zt(Zn[$n]++,$n))}}function Vt(Un){var On;for(On=0;On>1;1<=gn;gn--)Ht(Un,Zn,gn);for(wn=Tr;gn=Un.heap[1],Un.heap[1]=Un.heap[Un.heap_len--],Ht(Un,Zn,1),hn=Un.heap[1],Un.heap[--Un.heap_max]=gn,Un.heap[--Un.heap_max]=hn,Zn[2*wn]=Zn[2*gn]+Zn[2*hn],Un.depth[wn]=(Un.depth[gn]>=Un.depth[hn]?Un.depth[gn]:Un.depth[hn])+1,Zn[2*gn+1]=Zn[2*hn+1]=wn,Un.heap[1]=wn++,Ht(Un,Zn,1),2<=Un.heap_len;);Un.heap[--Un.heap_max]=Un.heap[1],function(_r,Ir){var Jr,qr,Uo,eo,Yr,_o,ro=Ir.dyn_tree,Fo=Ir.max_code,kn=Ir.stat_desc.static_tree,un=Ir.stat_desc.has_stree,pn=Ir.stat_desc.extra_bits,Qn=Ir.stat_desc.extra_base,Jn=Ir.stat_desc.max_length,jn=0;for(eo=0;eo<=ft;eo++)_r.bl_count[eo]=0;for(ro[2*_r.heap[_r.heap_max]+1]=0,Jr=_r.heap_max+1;Jr>=7;wn>>=1)if(1&Qr&&$n.dyn_ltree[2*Tr]!==0)return it;if($n.dyn_ltree[18]!==0||$n.dyn_ltree[20]!==0||$n.dyn_ltree[26]!==0)return ot;for(Tr=32;Tr>>3,(Zn=Un.static_len+3+7>>>3)<=wn&&(wn=Zn)):wn=Zn=gn+5,gn+4<=wn&&On!==-1?Fn(Un,On,gn,hn):Un.strategy===4||Zn===wn?(Kt(Un,2+(hn?1:0),3),qt(Un,Tt,Bt)):(Kt(Un,4+(hn?1:0),3),function($n,Tr,Qr,_r){var Ir;for(Kt($n,Tr-257,5),Kt($n,Qr-1,5),Kt($n,_r-4,4),Ir=0;Ir<_r;Ir++)Kt($n,$n.bl_tree[2*St[Ir]+1],3);dn($n,$n.dyn_ltree,Tr-1),dn($n,$n.dyn_dtree,Qr-1)}(Un,Un.l_desc.max_code+1,Un.d_desc.max_code+1,Pn+1),qt(Un,Un.dyn_ltree,Un.dyn_dtree)),Vt(Un),hn&&It(Un)},nt._tr_tally=function(Un,On,gn){return Un.pending_buf[Un.d_buf+2*Un.last_lit]=On>>>8&255,Un.pending_buf[Un.d_buf+2*Un.last_lit+1]=255&On,Un.pending_buf[Un.l_buf+Un.last_lit]=255&gn,Un.last_lit++,On===0?Un.dyn_ltree[2*gn]++:(Un.matches++,On--,Un.dyn_ltree[2*(Ct[gn]+ut+1)]++,Un.dyn_dtree[2*zt(On)]++),Un.last_lit===Un.lit_bufsize-1},nt._tr_align=function(Un){Kt(Un,2,3),nn(Un,Ut,Tt),function(On){On.bi_valid===16?(en(On,On.bi_buf),On.bi_buf=0,On.bi_valid=0):8<=On.bi_valid&&(On.pending_buf[On.pending++]=255&On.bi_buf,On.bi_buf>>=8,On.bi_valid-=8)}(Un)}},{"../utils/common":41}],53:[function(et,tt,nt){tt.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(et,tt,nt){(function(rt){(function(it,ot){if(!it.setImmediate){var st,at,lt,ut,dt=1,ht={},ct=!1,pt=it.document,ft=Object.getPrototypeOf&&Object.getPrototypeOf(it);ft=ft&&ft.setTimeout?ft:it,st={}.toString.call(it.process)==="[object process]"?function(Ft){process.nextTick(function(){yt(Ft)})}:function(){if(it.postMessage&&!it.importScripts){var Ft=!0,mt=it.onmessage;return it.onmessage=function(){Ft=!1},it.postMessage("","*"),it.onmessage=mt,Ft}}()?(ut="setImmediate$"+Math.random()+"$",it.addEventListener?it.addEventListener("message",Ut,!1):it.attachEvent("onmessage",Ut),function(Ft){it.postMessage(ut+Ft,"*")}):it.MessageChannel?((lt=new MessageChannel).port1.onmessage=function(Ft){yt(Ft.data)},function(Ft){lt.port2.postMessage(Ft)}):pt&&"onreadystatechange"in pt.createElement("script")?(at=pt.documentElement,function(Ft){var mt=pt.createElement("script");mt.onreadystatechange=function(){yt(Ft),mt.onreadystatechange=null,at.removeChild(mt),mt=null},at.appendChild(mt)}):function(Ft){setTimeout(yt,0,Ft)},ft.setImmediate=function(Ft){typeof Ft!="function"&&(Ft=new Function(""+Ft));for(var mt=new Array(arguments.length-1),vt=0;vt"u"?rt===void 0?this:rt:self)}).call(this,typeof commonjsGlobal$2<"u"?commonjsGlobal$2:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(jszip_min);var jszip_minExports=jszip_min.exports;const JSZip=getDefaultExportFromCjs$1(jszip_minExports);class STLLoader extends Loader{constructor(o){super(o)}load(o,et,tt,nt){const rt=this,it=new FileLoader(this.manager);it.setPath(this.path),it.setResponseType("arraybuffer"),it.setRequestHeader(this.requestHeader),it.setWithCredentials(this.withCredentials),it.load(o,function(ot){try{et(rt.parse(ot))}catch(st){nt?nt(st):console.error(st),rt.manager.itemError(o)}},tt,nt)}parse(o){function et(at){const lt=new DataView(at),ut=32/8*3+32/8*3*3+16/8,dt=lt.getUint32(80,!0);if(80+32/8+dt*ut===lt.byteLength)return!0;const ct=[115,111,108,105,100];for(let pt=0;pt<5;pt++)if(tt(ct,lt,pt))return!1;return!0}function tt(at,lt,ut){for(let dt=0,ht=at.length;dt>5&31)/31,ct=(Nt>>10&31)/31)}for(let Nt=1;Nt<=3;Nt++){const Ot=Bt+Nt*12,Jt=Tt*3*3+(Nt-1)*3;Lt[Jt]=lt.getFloat32(Ot,!0),Lt[Jt+1]=lt.getFloat32(Ot+4,!0),Lt[Jt+2]=lt.getFloat32(Ot+8,!0),Rt[Jt]=xt,Rt[Jt+1]=Ct,Rt[Jt+2]=kt,pt&&(St.set(dt,ht,ct).convertSRGBToLinear(),ft[Jt]=St.r,ft[Jt+1]=St.g,ft[Jt+2]=St.b)}}return At.setAttribute("position",new BufferAttribute(Lt,3)),At.setAttribute("normal",new BufferAttribute(Rt,3)),pt&&(At.setAttribute("color",new BufferAttribute(ft,3)),At.hasColors=!0,At.alpha=Ft),At}function rt(at){const lt=new BufferGeometry,ut=/solid([\s\S]*?)endsolid/g,dt=/facet([\s\S]*?)endfacet/g,ht=/solid\s(.+)/;let ct=0;const pt=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,ft=new RegExp("vertex"+pt+pt+pt,"g"),gt=new RegExp("normal"+pt+pt+pt,"g"),yt=[],Ut=[],Ft=[],mt=new Vector3;let vt,At=0,Lt=0,Rt=0;for(;(vt=ut.exec(at))!==null;){Lt=Rt;const St=vt[0],Tt=(vt=ht.exec(St))!==null?vt[1]:"";for(Ft.push(Tt);(vt=dt.exec(St))!==null;){let Ct=0,kt=0;const Nt=vt[0];for(;(vt=gt.exec(Nt))!==null;)mt.x=parseFloat(vt[1]),mt.y=parseFloat(vt[2]),mt.z=parseFloat(vt[3]),kt++;for(;(vt=ft.exec(Nt))!==null;)yt.push(parseFloat(vt[1]),parseFloat(vt[2]),parseFloat(vt[3])),Ut.push(mt.x,mt.y,mt.z),Ct++,Rt++;kt!==1&&console.error("THREE.STLLoader: Something isn't right with the normal of face number "+ct),Ct!==3&&console.error("THREE.STLLoader: Something isn't right with the vertices of face number "+ct),ct++}const Bt=Lt,xt=Rt-Lt;lt.userData.groupNames=Ft,lt.addGroup(Bt,xt,At),At++}return lt.setAttribute("position",new Float32BufferAttribute(yt,3)),lt.setAttribute("normal",new Float32BufferAttribute(Ut,3)),lt}function it(at){return typeof at!="string"?new TextDecoder().decode(at):at}function ot(at){if(typeof at=="string"){const lt=new Uint8Array(at.length);for(let ut=0;ut256||Nt.colormap_size!==24||Nt.colormap_type!==1)throw new Error("THREE.TGALoader: Invalid type colormap data for indexed type.");break;case ht:case ct:case ft:case gt:if(Nt.colormap_type)throw new Error("THREE.TGALoader: Invalid type colormap data for colormap type.");break;case ut:throw new Error("THREE.TGALoader: No data.");default:throw new Error("THREE.TGALoader: Invalid type "+Nt.image_type)}if(Nt.width<=0||Nt.height<=0)throw new Error("THREE.TGALoader: Invalid image size.");if(Nt.pixel_size!==8&&Nt.pixel_size!==16&&Nt.pixel_size!==24&&Nt.pixel_size!==32)throw new Error("THREE.TGALoader: Invalid pixel size "+Nt.pixel_size)}function tt(Nt,Ot,Jt,Dt,Et){let Pt,zt;const en=Jt.pixel_size>>3,Kt=Jt.width*Jt.height*en;if(Ot&&(zt=Et.subarray(Dt,Dt+=Jt.colormap_length*(Jt.colormap_size>>3))),Nt){Pt=new Uint8Array(Kt);let nn,Zt,jt,Vt=0;const It=new Uint8Array(en);for(;Vt>7,Nt[(Zt+Vt*jt)*4+1]=(Kt&992)>>2,Nt[(Zt+Vt*jt)*4+2]=(Kt&31)<<3,Nt[(Zt+Vt*jt)*4+3]=Kt&32768?0:255;return Nt}function it(Nt,Ot,Jt,Dt,Et,Pt,zt,en){let Kt=0,nn,Zt;const jt=St.width;for(Zt=Ot;Zt!==Dt;Zt+=Jt)for(nn=Et;nn!==zt;nn+=Pt,Kt+=3)Nt[(nn+jt*Zt)*4+3]=255,Nt[(nn+jt*Zt)*4+2]=en[Kt+0],Nt[(nn+jt*Zt)*4+1]=en[Kt+1],Nt[(nn+jt*Zt)*4+0]=en[Kt+2];return Nt}function ot(Nt,Ot,Jt,Dt,Et,Pt,zt,en){let Kt=0,nn,Zt;const jt=St.width;for(Zt=Ot;Zt!==Dt;Zt+=Jt)for(nn=Et;nn!==zt;nn+=Pt,Kt+=4)Nt[(nn+jt*Zt)*4+2]=en[Kt+0],Nt[(nn+jt*Zt)*4+1]=en[Kt+1],Nt[(nn+jt*Zt)*4+0]=en[Kt+2],Nt[(nn+jt*Zt)*4+3]=en[Kt+3];return Nt}function st(Nt,Ot,Jt,Dt,Et,Pt,zt,en){let Kt,nn=0,Zt,jt;const Vt=St.width;for(jt=Ot;jt!==Dt;jt+=Jt)for(Zt=Et;Zt!==zt;Zt+=Pt,nn++)Kt=en[nn],Nt[(Zt+Vt*jt)*4+0]=Kt,Nt[(Zt+Vt*jt)*4+1]=Kt,Nt[(Zt+Vt*jt)*4+2]=Kt,Nt[(Zt+Vt*jt)*4+3]=255;return Nt}function at(Nt,Ot,Jt,Dt,Et,Pt,zt,en){let Kt=0,nn,Zt;const jt=St.width;for(Zt=Ot;Zt!==Dt;Zt+=Jt)for(nn=Et;nn!==zt;nn+=Pt,Kt+=2)Nt[(nn+jt*Zt)*4+0]=en[Kt+0],Nt[(nn+jt*Zt)*4+1]=en[Kt+0],Nt[(nn+jt*Zt)*4+2]=en[Kt+0],Nt[(nn+jt*Zt)*4+3]=en[Kt+1];return Nt}function lt(Nt,Ot,Jt,Dt,Et){let Pt,zt,en,Kt,nn,Zt;switch((St.flags&yt)>>Ut){default:case vt:Pt=0,en=1,nn=Ot,zt=0,Kt=1,Zt=Jt;break;case Ft:Pt=0,en=1,nn=Ot,zt=Jt-1,Kt=-1,Zt=-1;break;case At:Pt=Ot-1,en=-1,nn=-1,zt=0,Kt=1,Zt=Jt;break;case mt:Pt=Ot-1,en=-1,nn=-1,zt=Jt-1,Kt=-1,Zt=-1;break}if(xt)switch(St.pixel_size){case 8:st(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;case 16:at(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;default:throw new Error("THREE.TGALoader: Format not supported.")}else switch(St.pixel_size){case 8:nt(Nt,zt,Kt,Zt,Pt,en,nn,Dt,Et);break;case 16:rt(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;case 24:it(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;case 32:ot(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;default:throw new Error("THREE.TGALoader: Format not supported.")}return Nt}const ut=0,dt=1,ht=2,ct=3,pt=9,ft=10,gt=11,yt=48,Ut=4,Ft=0,mt=1,vt=2,At=3;if(o.length<19)throw new Error("THREE.TGALoader: Not enough data to contain header.");let Lt=0;const Rt=new Uint8Array(o),St={id_length:Rt[Lt++],colormap_type:Rt[Lt++],image_type:Rt[Lt++],colormap_index:Rt[Lt++]|Rt[Lt++]<<8,colormap_length:Rt[Lt++]|Rt[Lt++]<<8,colormap_size:Rt[Lt++],origin:[Rt[Lt++]|Rt[Lt++]<<8,Rt[Lt++]|Rt[Lt++]<<8],width:Rt[Lt++]|Rt[Lt++]<<8,height:Rt[Lt++]|Rt[Lt++]<<8,pixel_size:Rt[Lt++],flags:Rt[Lt++]};if(et(St),St.id_length+Lt>o.length)throw new Error("THREE.TGALoader: No data.");Lt+=St.id_length;let Tt=!1,Bt=!1,xt=!1;switch(St.image_type){case pt:Tt=!0,Bt=!0;break;case dt:Bt=!0;break;case ft:Tt=!0;break;case ht:break;case gt:Tt=!0,xt=!0;break;case ct:xt=!0;break}const Ct=new Uint8Array(St.width*St.height*4),kt=tt(Tt,Bt,St,Lt,Rt);return lt(Ct,St.width,St.height,kt.pixel_data,kt.palettes),{data:Ct,width:St.width,height:St.height,flipY:!0,generateMipmaps:!0,minFilter:LinearMipmapLinearFilter}}}class ColladaLoader extends Loader{load(o,et,tt,nt){const rt=this,it=rt.path===""?LoaderUtils.extractUrlBase(o):rt.path,ot=new FileLoader(rt.manager);ot.setPath(rt.path),ot.setRequestHeader(rt.requestHeader),ot.setWithCredentials(rt.withCredentials),ot.load(o,function(st){try{et(rt.parse(st,it))}catch(at){nt?nt(at):console.error(at),rt.manager.itemError(o)}},tt,nt)}parse(o,et){function tt(Tn,En){const Dn=[],Mn=Tn.childNodes;for(let Wn=0,Vr=Mn.length;Wn0&&En.push(new VectorKeyframeTrack(Mn+".position",Wn,Vr)),Cr.length>0&&En.push(new QuaternionKeyframeTrack(Mn+".quaternion",Wn,Cr)),an.length>0&&En.push(new VectorKeyframeTrack(Mn+".scale",Wn,an)),En}function Tt(Tn,En,Dn){let Mn,Wn=!0,Vr,Cr;for(Vr=0,Cr=Tn.length;Vr=0;){const Mn=Tn[En];if(Mn.value[Dn]!==null)return Mn;En--}return null}function Ct(Tn,En,Dn){for(;En>>0)+2);switch(Dn=Dn.toLowerCase(),Dn){case"tga":En=Sl;break;default:En=Zs}return En}function Qr(Tn){const En=Pn(Tn.url),Dn=En.profile.technique;let Mn;switch(Dn.type){case"phong":case"blinn":Mn=new MeshPhongMaterial;break;case"lambert":Mn=new MeshLambertMaterial;break;default:Mn=new MeshBasicMaterial;break}Mn.name=Tn.name||"";function Wn(bn,Vn=null){const zn=En.profile.samplers[bn.id];let Hn=null;if(zn!==void 0){const ir=En.profile.surfaces[zn.source];Hn=Vt(ir.init_from)}else console.warn("THREE.ColladaLoader: Undefined sampler. Access image directly (see #12530)."),Hn=Vt(bn.id);if(Hn!==null){const ir=Tr(Hn);if(ir!==void 0){const Yn=ir.load(Hn),or=bn.extra;if(or!==void 0&&or.technique!==void 0&&at(or.technique)===!1){const Mr=or.technique;Yn.wrapS=Mr.wrapU?RepeatWrapping:ClampToEdgeWrapping,Yn.wrapT=Mr.wrapV?RepeatWrapping:ClampToEdgeWrapping,Yn.offset.set(Mr.offsetU||0,Mr.offsetV||0),Yn.repeat.set(Mr.repeatU||1,Mr.repeatV||1)}else Yn.wrapS=RepeatWrapping,Yn.wrapT=RepeatWrapping;return Vn!==null&&(Yn.colorSpace=Vn),Yn}else return console.warn("THREE.ColladaLoader: Loader for texture %s not found.",Hn),null}else return console.warn("THREE.ColladaLoader: Couldn't create texture with ID:",bn.id),null}const Vr=Dn.parameters;for(const bn in Vr){const Vn=Vr[bn];switch(bn){case"diffuse":Vn.color&&Mn.color.fromArray(Vn.color),Vn.texture&&(Mn.map=Wn(Vn.texture,SRGBColorSpace$1));break;case"specular":Vn.color&&Mn.specular&&Mn.specular.fromArray(Vn.color),Vn.texture&&(Mn.specularMap=Wn(Vn.texture));break;case"bump":Vn.texture&&(Mn.normalMap=Wn(Vn.texture));break;case"ambient":Vn.texture&&(Mn.lightMap=Wn(Vn.texture,SRGBColorSpace$1));break;case"shininess":Vn.float&&Mn.shininess&&(Mn.shininess=Vn.float);break;case"emission":Vn.color&&Mn.emissive&&Mn.emissive.fromArray(Vn.color),Vn.texture&&(Mn.emissiveMap=Wn(Vn.texture,SRGBColorSpace$1));break}}Mn.color.convertSRGBToLinear(),Mn.specular&&Mn.specular.convertSRGBToLinear(),Mn.emissive&&Mn.emissive.convertSRGBToLinear();let Cr=Vr.transparent,an=Vr.transparency;if(an===void 0&&Cr&&(an={float:1}),Cr===void 0&&an&&(Cr={opaque:"A_ONE",data:{color:[1,1,1,1]}}),Cr&&an)if(Cr.data.texture)Mn.transparent=!0;else{const bn=Cr.data.color;switch(Cr.opaque){case"A_ONE":Mn.opacity=bn[3]*an.float;break;case"RGB_ZERO":Mn.opacity=1-bn[0]*an.float;break;case"A_ZERO":Mn.opacity=1-bn[3]*an.float;break;case"RGB_ONE":Mn.opacity=bn[0]*an.float;break;default:console.warn('THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.',Cr.opaque)}Mn.opacity<1&&(Mn.transparent=!0)}if(Dn.extra!==void 0&&Dn.extra.technique!==void 0){const bn=Dn.extra.technique;for(const Vn in bn){const zn=bn[Vn];switch(Vn){case"double_sided":Mn.side=zn===1?DoubleSide:FrontSide;break;case"bump":Mn.normalMap=Wn(zn.texture),Mn.normalScale=new Vector2(1,1);break}}}return Mn}function _r(Tn){return pt(vo.materials[Tn],Qr)}function Ir(Tn){const En={name:Tn.getAttribute("name")};for(let Dn=0,Mn=Tn.childNodes.length;Dn0?Cr+bn:Cr;En.inputs[Vn]={id:Vr,offset:an},En.stride=Math.max(En.stride,an+1),Cr==="TEXCOORD"&&(En.hasUV=!0);break;case"vcount":En.vcount=it(Wn.textContent);break;case"p":En.p=it(Wn.textContent);break}}return En}function Fr(Tn){const En={};for(let Dn=0;Dn0&&En0&&Hn.setAttribute("position",new Float32BufferAttribute(Wn.array,Wn.stride)),Vr.array.length>0&&Hn.setAttribute("normal",new Float32BufferAttribute(Vr.array,Vr.stride)),bn.array.length>0&&Hn.setAttribute("color",new Float32BufferAttribute(bn.array,bn.stride)),Cr.array.length>0&&Hn.setAttribute("uv",new Float32BufferAttribute(Cr.array,Cr.stride)),an.array.length>0&&Hn.setAttribute("uv1",new Float32BufferAttribute(an.array,an.stride)),Vn.array.length>0&&Hn.setAttribute("skinIndex",new Float32BufferAttribute(Vn.array,Vn.stride)),zn.array.length>0&&Hn.setAttribute("skinWeight",new Float32BufferAttribute(zn.array,zn.stride)),Mn.data=Hn,Mn.type=Tn[0].type,Mn.materialKeys=ir,Mn}function ar(Tn,En,Dn,Mn,Wn=!1){const Vr=Tn.p,Cr=Tn.stride,an=Tn.vcount;function bn(Hn){let ir=Vr[Hn+Dn]*zn;const Yn=ir+zn;for(;ir4)for(let Mr=1,Wr=or-2;Mr<=Wr;Mr++){const Hr=Hn+Cr*0,co=Hn+Cr*Mr,_i=Hn+Cr*(Mr+1);bn(Hr),bn(co),bn(_i)}Hn+=Cr*or}}else for(let Hn=0,ir=Vr.length;Hn=En.limits.max&&(En.static=!0),En.middlePosition=(En.limits.min+En.limits.max)/2,En}function gr(Tn){const En={sid:Tn.getAttribute("sid"),name:Tn.getAttribute("name")||"",attachments:[],transforms:[]};for(let Dn=0;DnYn.limits.max||HnparseFloat(tt)),(!this.origPosition||!this.origQuaternion)&&(this.origPosition=this.position.clone(),this.origQuaternion=this.quaternion.clone());let et=!1;switch(this.mimicJoints.forEach(tt=>{et=tt.updateFromMimickedJoint(...o)||et}),this.jointType){case"fixed":return et;case"continuous":case"revolute":{let tt=o[0];return tt==null||tt===this.jointValue[0]?et:(!this.ignoreLimits&&this.jointType==="revolute"&&(tt=Math.min(this.limit.upper,tt),tt=Math.max(this.limit.lower,tt)),this.quaternion.setFromAxisAngle(this.axis,tt).premultiply(this.origQuaternion),this.jointValue[0]!==tt?(this.jointValue[0]=tt,this.matrixWorldNeedsUpdate=!0,!0):et)}case"prismatic":{let tt=o[0];return tt==null||tt===this.jointValue[0]?et:(this.ignoreLimits||(tt=Math.min(this.limit.upper,tt),tt=Math.max(this.limit.lower,tt)),this.position.copy(this.origPosition),_tempAxis.copy(this.axis).applyEuler(this.rotation),this.position.addScaledVector(_tempAxis,tt),this.jointValue[0]!==tt?(this.jointValue[0]=tt,this.matrixWorldNeedsUpdate=!0,!0):et)}case"floating":case"planar":console.warn(`'${this.jointType}' joint not yet supported`)}return et}}class URDFMimicJoint extends URDFJoint{constructor(...o){super(...o),this.type="URDFMimicJoint",this.mimicJoint=null,this.offset=0,this.multiplier=1}updateFromMimickedJoint(...o){const et=o.map(tt=>tt*this.multiplier+this.offset);return super.setJointValue(...et)}copy(o,et){return super.copy(o,et),this.mimicJoint=o.mimicJoint,this.offset=o.offset,this.multiplier=o.multiplier,this}}class URDFRobot extends URDFLink{constructor(...o){super(...o),this.isURDFRobot=!0,this.urdfNode=null,this.urdfRobotNode=null,this.robotName=null,this.links=null,this.joints=null,this.colliders=null,this.visual=null,this.frames=null}copy(o,et){return super.copy(o,et),this.urdfRobotNode=o.urdfRobotNode,this.robotName=o.robotName,this.links={},this.joints={},this.colliders={},this.visual={},this.traverse(tt=>{tt.isURDFJoint&&tt.urdfName in o.joints&&(this.joints[tt.urdfName]=tt),tt.isURDFLink&&tt.urdfName in o.links&&(this.links[tt.urdfName]=tt),tt.isURDFCollider&&tt.urdfName in o.colliders&&(this.colliders[tt.urdfName]=tt),tt.isURDFVisual&&tt.urdfName in o.visual&&(this.visual[tt.urdfName]=tt)}),this.frames={...this.colliders,...this.visual,...this.links,...this.joints},this}getFrame(o){return this.frames[o]}setJointValue(o,...et){const tt=this.joints[o];return tt?tt.setJointValue(...et):!1}setJointValues(o){let et=!1;for(const tt in o){const nt=o[tt];Array.isArray(nt)?et=this.setJointValue(tt,...nt)||et:et=this.setJointValue(tt,nt)||et}return et}}const tempQuaternion=new Quaternion,tempEuler=new Euler;function processTuple(s){return s?s.trim().split(/\s+/g).map(o=>parseFloat(o)):[0,0,0]}function applyRotation(s,o,et=!1){et||s.rotation.set(0,0,0),tempEuler.set(o[0],o[1],o[2],"ZYX"),tempQuaternion.setFromEuler(tempEuler),tempQuaternion.multiply(s.quaternion),s.quaternion.copy(tempQuaternion)}class URDFLoader{constructor(o){this.manager=o||DefaultLoadingManager,this.loadMeshCb=this.defaultMeshLoader.bind(this),this.parseVisual=!0,this.parseCollision=!1,this.packages="",this.workingPath="",this.fetchOptions={}}loadAsync(o){return new Promise((et,tt)=>{this.load(o,et,null,tt)})}load(o,et,tt,nt){const rt=this.manager,it=LoaderUtils.extractUrlBase(o),ot=this.manager.resolveURL(o);rt.itemStart(ot),fetch(ot,this.fetchOptions).then(st=>{if(st.ok)return tt&&tt(null),st.text();throw new Error(`URDFLoader: Failed to load url '${ot}' with error code ${st.status} : ${st.statusText}.`)}).then(st=>{this.workingPath===""&&(this.workingPath=it);const at=this.parse(st);et(at),rt.itemEnd(ot)}).catch(st=>{nt?nt(st):console.error("URDFLoader: Error loading file.",st),rt.itemError(ot),rt.itemEnd(ot)})}parse(o){const et=this.packages,tt=this.loadMeshCb,nt=this.parseVisual,rt=this.parseCollision,it=this.workingPath,ot=this.manager,st={},at={},lt={};function ut(yt){if(!/^package:\/\//.test(yt))return it?it+yt:yt;const[Ut,Ft]=yt.replace(/^package:\/\//,"").split(/\/(.+)/);if(typeof et=="string")return et.endsWith(Ut)?et+"/"+Ft:et+"/"+Ut+"/"+Ft;if(et instanceof Function)return et(Ut)+"/"+Ft;if(typeof et=="object")return Ut in et?et[Ut]+"/"+Ft:(console.error(`URDFLoader : ${Ut} not found in provided package list.`),null)}function dt(yt){let Ut;yt instanceof Document?Ut=[...yt.children]:yt instanceof Element?Ut=[yt]:Ut=[...new DOMParser().parseFromString(yt,"text/xml").children];const Ft=Ut.filter(mt=>mt.nodeName==="robot").pop();return ht(Ft)}function ht(yt){const Ut=[...yt.children],Ft=Ut.filter(Tt=>Tt.nodeName.toLowerCase()==="link"),mt=Ut.filter(Tt=>Tt.nodeName.toLowerCase()==="joint"),vt=Ut.filter(Tt=>Tt.nodeName.toLowerCase()==="material"),At=new URDFRobot;At.robotName=yt.getAttribute("name"),At.urdfRobotNode=yt,vt.forEach(Tt=>{const Bt=Tt.getAttribute("name");lt[Bt]=ft(Tt)});const Lt={},Rt={};Ft.forEach(Tt=>{const Bt=Tt.getAttribute("name"),xt=yt.querySelector(`child[link="${Bt}"]`)===null;st[Bt]=pt(Tt,Lt,Rt,xt?At:null)}),mt.forEach(Tt=>{const Bt=Tt.getAttribute("name");at[Bt]=ct(Tt)}),At.joints=at,At.links=st,At.colliders=Rt,At.visual=Lt;const St=Object.values(at);return St.forEach(Tt=>{Tt instanceof URDFMimicJoint&&at[Tt.mimicJoint].mimicJoints.push(Tt)}),St.forEach(Tt=>{const Bt=new Set,xt=Ct=>{if(Bt.has(Ct))throw new Error("URDFLoader: Detected an infinite loop of mimic joints.");Bt.add(Ct),Ct.mimicJoints.forEach(kt=>{xt(kt)})};xt(Tt)}),At.frames={...Rt,...Lt,...st,...at},At}function ct(yt){const Ut=[...yt.children],Ft=yt.getAttribute("type");let mt;const vt=Ut.find(Bt=>Bt.nodeName.toLowerCase()==="mimic");vt?(mt=new URDFMimicJoint,mt.mimicJoint=vt.getAttribute("joint"),mt.multiplier=parseFloat(vt.getAttribute("multiplier")||1),mt.offset=parseFloat(vt.getAttribute("offset")||0)):mt=new URDFJoint,mt.urdfNode=yt,mt.name=yt.getAttribute("name"),mt.urdfName=mt.name,mt.jointType=Ft;let At=null,Lt=null,Rt=[0,0,0],St=[0,0,0];Ut.forEach(Bt=>{const xt=Bt.nodeName.toLowerCase();xt==="origin"?(Rt=processTuple(Bt.getAttribute("xyz")),St=processTuple(Bt.getAttribute("rpy"))):xt==="child"?Lt=st[Bt.getAttribute("link")]:xt==="parent"?At=st[Bt.getAttribute("link")]:xt==="limit"&&(mt.limit.lower=parseFloat(Bt.getAttribute("lower")||mt.limit.lower),mt.limit.upper=parseFloat(Bt.getAttribute("upper")||mt.limit.upper))}),At.add(mt),mt.add(Lt),applyRotation(mt,St),mt.position.set(Rt[0],Rt[1],Rt[2]);const Tt=Ut.filter(Bt=>Bt.nodeName.toLowerCase()==="axis")[0];if(Tt){const Bt=Tt.getAttribute("xyz").split(/\s+/g).map(xt=>parseFloat(xt));mt.axis=new Vector3(Bt[0],Bt[1],Bt[2]),mt.axis.normalize()}return mt}function pt(yt,Ut,Ft,mt=null){mt===null&&(mt=new URDFLink);const vt=[...yt.children];return mt.name=yt.getAttribute("name"),mt.urdfName=mt.name,mt.urdfNode=yt,nt&&vt.filter(Lt=>Lt.nodeName.toLowerCase()==="visual").forEach(Lt=>{const Rt=gt(Lt,lt);if(mt.add(Rt),Lt.hasAttribute("name")){const St=Lt.getAttribute("name");Rt.name=St,Rt.urdfName=St,Ut[St]=Rt}}),rt&&vt.filter(Lt=>Lt.nodeName.toLowerCase()==="collision").forEach(Lt=>{const Rt=gt(Lt);if(mt.add(Rt),Lt.hasAttribute("name")){const St=Lt.getAttribute("name");Rt.name=St,Rt.urdfName=St,Ft[St]=Rt}}),mt}function ft(yt){const Ut=[...yt.children],Ft=new MeshPhongMaterial;return Ft.name=yt.getAttribute("name")||"",Ut.forEach(mt=>{const vt=mt.nodeName.toLowerCase();if(vt==="color"){const At=mt.getAttribute("rgba").split(/\s/g).map(Lt=>parseFloat(Lt));Ft.color.setRGB(At[0],At[1],At[2]),Ft.opacity=At[3],Ft.transparent=At[3]<1,Ft.depthWrite=!Ft.transparent}else if(vt==="texture"){const At=mt.getAttribute("filename");if(At){const Lt=new TextureLoader(ot),Rt=ut(At);Ft.map=Lt.load(Rt),Ft.map.colorSpace=SRGBColorSpace$1}}}),Ft}function gt(yt,Ut={}){const Ft=yt.nodeName.toLowerCase()==="collision",mt=[...yt.children];let vt=null;const At=mt.filter(Rt=>Rt.nodeName.toLowerCase()==="material")[0];if(At){const Rt=At.getAttribute("name");Rt&&Rt in Ut?vt=Ut[Rt]:vt=ft(At)}else vt=new MeshPhongMaterial;const Lt=Ft?new URDFCollider:new URDFVisual;return Lt.urdfNode=yt,mt.forEach(Rt=>{const St=Rt.nodeName.toLowerCase();if(St==="geometry"){const Tt=Rt.children[0].nodeName.toLowerCase();if(Tt==="mesh"){const Bt=Rt.children[0].getAttribute("filename"),xt=ut(Bt);if(xt!==null){const Ct=Rt.children[0].getAttribute("scale");if(Ct){const kt=processTuple(Ct);Lt.scale.set(kt[0],kt[1],kt[2])}tt(xt,ot,(kt,Nt)=>{Nt?console.error("URDFLoader: Error loading mesh.",Nt):kt&&(kt instanceof Mesh&&(kt.material=vt),kt.position.set(0,0,0),kt.quaternion.identity(),Lt.add(kt))})}}else if(Tt==="box"){const Bt=new Mesh;Bt.geometry=new BoxGeometry(1,1,1),Bt.material=vt;const xt=processTuple(Rt.children[0].getAttribute("size"));Bt.scale.set(xt[0],xt[1],xt[2]),Lt.add(Bt)}else if(Tt==="sphere"){const Bt=new Mesh;Bt.geometry=new SphereGeometry(1,30,30),Bt.material=vt;const xt=parseFloat(Rt.children[0].getAttribute("radius"))||0;Bt.scale.set(xt,xt,xt),Lt.add(Bt)}else if(Tt==="cylinder"){const Bt=new Mesh;Bt.geometry=new CylinderGeometry(1,1,1,30),Bt.material=vt;const xt=parseFloat(Rt.children[0].getAttribute("radius"))||0,Ct=parseFloat(Rt.children[0].getAttribute("length"))||0;Bt.scale.set(xt,Ct,xt),Bt.rotation.set(Math.PI/2,0,0),Lt.add(Bt)}}else if(St==="origin"){const Tt=processTuple(Rt.getAttribute("xyz")),Bt=processTuple(Rt.getAttribute("rpy"));Lt.position.set(Tt[0],Tt[1],Tt[2]),Lt.rotation.set(0,0,0),applyRotation(Lt,Bt)}}),Lt}return dt(o)}defaultMeshLoader(o,et,tt){/\.stl$/i.test(o)?new STLLoader(et).load(o,rt=>{const it=new Mesh(rt,new MeshPhongMaterial);tt(it)}):/\.dae$/i.test(o)?new ColladaLoader(et).load(o,rt=>tt(rt.scene)):console.warn(`URDFLoader: Could not load model at ${o}. No loader available`)}}class Urdf extends Group{constructor(o,et,tt){super(),this.configuration=et,this.onLoaded=tt;const nt=new LoadingManager,rt=new URDFLoader(nt);this.configuration?.ghosted&&(this.color=new Color$2("lightgrey"),this.opacity=.25,this.transparent=!0),this.configuration?.endEffectorOnly&&(this.color=new Color$2("green"),this.opacity=.005,this.transparent=!0);const{opacity:it,transparent:ot}=this;let{color:st}=this;rt.loadMeshCb=(at,lt,ut)=>{new ColladaLoader(lt).load(at,ht=>{ht.scene.children=ht.scene.children.filter(ct=>!ct.type.endsWith("Light")),ht.scene.traverse(ct=>{if(ct instanceof Mesh){if(this.meshs.push(ct),ct.geometry.computeVertexNormals(),!this.configuration?.ghosted&&!this.configuration?.endEffectorOnly){let pt;Array.isArray(ct.material)?[pt]=ct.material:pt=ct.material,(pt instanceof MeshPhongMaterial||pt instanceof MeshStandardMaterial||pt instanceof MeshLambertMaterial||pt instanceof MeshBasicMaterial)&&(st=pt.color)}ct.material=new MeshPhongMaterial({color:st,opacity:it,transparent:ot})}}),ut(ht.scene)})},rt.load(o,this.onLoad)}robot;meshs=[];opacity=1;transparent=!1;color=new Color$2("white");static urdfMap={};static getUrdf(o,et,tt,nt){const rt=`${JSON.stringify(et)}.${o}`;return Urdf.urdfMap[rt]===void 0?tt?(Urdf.urdfMap[rt]=new Urdf(tt,et,nt),{urdf:Urdf.urdfMap[rt],loaded:!1}):{urdf:void 0,loaded:!1}:{urdf:Urdf.urdfMap[rt],loaded:!0}}onLoad=o=>{if(this.robot=o,this.configuration?.endEffectorOnly)if(this.configuration.endEffectorLink){const et=this.robot.links[this.configuration.endEffectorLink];this.add(et)}else console.warn("URDF configured for endEffectorOnly but endEffectorLink not provided");else this.add(this.robot);this.onLoaded?.()};setColor=o=>{const{opacity:et,transparent:tt}=this;this.meshs.forEach(nt=>{nt.material=new MeshPhongMaterial({opacity:et,transparent:tt,color:o})})};set worldToLocalTransform(o){o?this.matrix.copy(transformMatrix(o)):this.matrix.identity()}set jointState(o){const{robot:et}=this;if(!et)return;const{name:tt}=o;Object.keys(et.joints).forEach(nt=>{const rt=et.joints[nt],it=tt.indexOf(nt),ot=o.effort?.[it]??0,st=o.position?.[it]??0,at=o.velocity?.[it]??0;rt.setJointValue(st,ot,at)})}getLink=o=>o?this.robot?.links[o]:void 0}async function loadURDFIntoBlob(s){const o=await fetch(s).then(rt=>rt.arrayBuffer()),et=await JSZip.loadAsync(o);et.remove("__MACOSX"),et.remove(".DS_Store");const tt=Object.keys(et.files).find(rt=>rt.toLowerCase().endsWith("urdf")),nt=tt?.split("/")[0]+"/";if(tt){let rt=await et.files[tt].async("string");const it=Object.keys(et.files).filter(at=>at.endsWith("png")&&at!==tt),ot={};await Promise.all(it.map(async at=>{const lt=et.files[at],ut=await et.files[lt.name].async("arraybuffer");ot[at]=URL.createObjectURL(new Blob([ut],{type:"image/png"}))}));const st=Object.keys(et.files).filter(at=>!at.endsWith(".png")&&at!==tt&&!at.startsWith("__MACOSX")&&!at.endsWith(".DS_Store"));return await Promise.all(st.map(async at=>{const lt=et.files[at];if(!lt.dir){let ut=await et.files[lt.name].async("string");it.forEach(ht=>{const ct=ht.split("/"),pt=ct[ct.length-1];ut=ut.replace(new RegExp(pt,"g"),ot[ht].replace(`blob:${window.location.origin}/`,""))});const dt=URL.createObjectURL(new Blob([ut],{type:"text/plain"})).replace(`blob:${window.location.origin}/`,"");rt=rt.replace(new RegExp(`package://${at}`,"g"),dt),rt=rt.replace(new RegExp(at,"g"),dt),rt=rt.replace(new RegExp(at.replace(nt,""),"g"),dt)}})),URL.createObjectURL(new Blob([rt],{type:"text/plain"}))}return!1}function URDFLayer(s){const{children:o,jointStatesDataSource:et,realtimeJointStateDataSource:tt}=s,[nt,rt]=reactExports.useContext(UniverseDataContext),it=reactExports.useContext(LayerContext),[ot,st]=reactExports.useState(!1),[at,lt]=reactExports.useState(void 0);return reactExports.useEffect(()=>{if(!it)return;const{deviceId:ut}=it;let dt;return tt&&at?dt=rt.subscribeToJointState(ut,tt,ht=>{if(typeof ht=="symbol")return;const ct=ht;at&&(at.jointState=ct)}):et&&at&&(dt=nt.subscribeToJointState(ut,et,ht=>{if(typeof ht=="symbol")return;const ct=ht;at&&(at.jointState=ct)})),at||nt.getUrdfs(ut).then(ht=>{if(ht.length===0){console.warn("No URDFs found for device");return}loadURDFIntoBlob(ht[0]).then(ct=>{if(ct!==!1){const pt=new Urdf(ct,{ghosted:!1},()=>{st(!0)});lt(pt)}}).catch(ct=>{throw ct})}).catch(ht=>{throw ht}),()=>{dt&&dt()}},[it,nt,at]),jsxs$2(DataVisualizationLayer,{...s,type:LayerType.TRACKABLE,iconUrl:"icons/3d_object.svg",trailEnabled:s.trailEnabled,trailSeconds:s.trailSeconds,trailOpacity:s.trailOpacity,trailWidth:s.trailWidth,trailType:s.trailType,trailFlatten:s.trailFlatten,children:[at&&ot&&jsx$2("primitive",{object:at}),o]})}function ImageLayer(s){const{children:o,fileId:et,width:tt,height:nt}=s,[rt,it]=reactExports.useState(""),ot=useTexture(rt||"./transparent.png");return reactExports.useEffect(()=>{(async()=>{const st=await Fleet.getFileUrl(et);it(st)})()},[et]),jsx$2("group",{name:"axis",renderOrder:1,children:jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:[jsxs$2("mesh",{children:[jsx$2("planeGeometry",{args:[tt,nt]}),jsx$2("meshBasicMaterial",{map:ot,transparent:!0})]}),o]})})}function GLTFLayer(s){const{children:o,fileId:et,scale:tt}=s,[nt,rt]=reactExports.useState("./empty.glb"),{scene:it}=useGLTF(nt);return reactExports.useEffect(()=>{(async()=>{const ot=await Fleet.getFileUrl(et);rt(ot)})()},[et]),jsx$2("group",{name:"axis",renderOrder:1,children:jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:[jsx$2("group",{scale:[tt,tt,tt],rotation:[Math.PI/2,0,0],children:jsx$2("primitive",{object:it})}),o]})})}const isValidURL=s=>/^(https?:\/\/)?[\w.-]+(?:\.[\w.-]+)+[/\S*]*$/.test(s),handleFetchJsonDatapoint=async s=>{if(s.length===0)return[];const o=s.length/1e3,et=[];for(let tt=0;ttfetch(ut[1])))).map(ut=>ut.status==="fulfilled"?ut.value:null).filter(ut=>ut!==null).map(ut=>ut?.json()),at=await Promise.all(st),lt=it.map((ut,dt)=>[ut[0],at[dt].pose.pose.position]);et.push(lt)}return et.flat()},queryAnalytics=async(s,o,et,tt)=>{const nt=` diff --git a/dist/index.html b/dist/index.html index cacbb5c..d044ec8 100644 --- a/dist/index.html +++ b/dist/index.html @@ -31,7 +31,7 @@ left: 50px !important; } - +
diff --git a/package.json b/package.json index bb0f779..47b02be 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@formant/3d-viewer-module", "private": true, - "version": "0.170.5", + "version": "0.170.6", "type": "module", "scripts": { "clean": "rm -rf node_modules", @@ -14,7 +14,7 @@ }, "dependencies": { "@dimforge/rapier3d": "^0.11.1", - "@formant/data-sdk": "^1.60.0", + "@formant/data-sdk": "^1.61.0", "@formant/ui-sdk": "0.0.45", "@formant/universe-core": "0.0.17", "@react-three/drei": "^9.107.0", diff --git a/public/VERSION b/public/VERSION index dac09d3..735624a 100644 --- a/public/VERSION +++ b/public/VERSION @@ -1 +1 @@ -0.170.5 +0.170.6 diff --git a/versions/stage/VERSION b/versions/stage/VERSION index dac09d3..735624a 100644 --- a/versions/stage/VERSION +++ b/versions/stage/VERSION @@ -1 +1 @@ -0.170.5 +0.170.6 diff --git a/versions/stage/assets/index-ee6f87b7.js b/versions/stage/assets/index-3f3ea195.js similarity index 96% rename from versions/stage/assets/index-ee6f87b7.js rename to versions/stage/assets/index-3f3ea195.js index 13acdcf..733239d 100644 --- a/versions/stage/assets/index-ee6f87b7.js +++ b/versions/stage/assets/index-3f3ea195.js @@ -22,7 +22,7 @@ function _mergeNamespaces(s,o){for(var et=0;et>>1,zt=Wt[Pt];if(0>>1;Ptnt(nn,Et))Ztnt(jt,nn)?(Wt[Pt]=jt,Wt[Zt]=Et,Pt=Zt):(Wt[Pt]=nn,Wt[Kt]=Et,Pt=Kt);else if(Ztnt(jt,Et))Wt[Pt]=jt,Wt[Zt]=Et,Pt=Zt;else break e}}return Dt}function nt(Wt,Dt){var Et=Wt.sortIndex-Dt.sortIndex;return Et!==0?Et:Wt.id-Dt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var rt=performance;s.unstable_now=function(){return rt.now()}}else{var it=Date,ot=it.now();s.unstable_now=function(){return it.now()-ot}}var st=[],at=[],lt=1,ut=null,dt=3,ht=!1,ct=!1,pt=!1,ft=typeof setTimeout=="function"?setTimeout:null,gt=typeof clearTimeout=="function"?clearTimeout:null,yt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Ut(Wt){for(var Dt=et(at);Dt!==null;){if(Dt.callback===null)tt(at);else if(Dt.startTime<=Wt)tt(at),Dt.sortIndex=Dt.expirationTime,o(st,Dt);else break;Dt=et(at)}}function Ft(Wt){if(pt=!1,Ut(Wt),!ct)if(et(st)!==null)ct=!0,Nt(mt);else{var Dt=et(at);Dt!==null&&Ot(Ft,Dt.startTime-Wt)}}function mt(Wt,Dt){ct=!1,pt&&(pt=!1,gt(Lt),Lt=-1),ht=!0;var Et=dt;try{for(Ut(Dt),ut=et(st);ut!==null&&(!(ut.expirationTime>Dt)||Wt&&!Tt());){var Pt=ut.callback;if(typeof Pt=="function"){ut.callback=null,dt=ut.priorityLevel;var zt=Pt(ut.expirationTime<=Dt);Dt=s.unstable_now(),typeof zt=="function"?ut.callback=zt:ut===et(st)&&tt(st),Ut(Dt)}else tt(st);ut=et(st)}if(ut!==null)var en=!0;else{var Kt=et(at);Kt!==null&&Ot(Ft,Kt.startTime-Dt),en=!1}return en}finally{ut=null,dt=Et,ht=!1}}var vt=!1,At=null,Lt=-1,Rt=5,St=-1;function Tt(){return!(s.unstable_now()-StWt||125Pt?(Wt.sortIndex=Et,o(at,Wt),et(st)===null&&Wt===et(at)&&(pt?(gt(Lt),Lt=-1):pt=!0,Ot(Ft,Et-Pt))):(Wt.sortIndex=zt,o(st,Wt),ct||ht||(ct=!0,Nt(mt))),Wt},s.unstable_shouldYield=Tt,s.unstable_wrapCallback=function(Wt){var Dt=dt;return function(){var Et=dt;dt=Dt;try{return Wt.apply(this,arguments)}finally{dt=Et}}}})(scheduler_production_min$1);scheduler$1.exports=scheduler_production_min$1;var schedulerExports$1=scheduler$1.exports;/** + */(function(s){function o(Jt,Dt){var Et=Jt.length;Jt.push(Dt);e:for(;0>>1,zt=Jt[Pt];if(0>>1;Ptnt(nn,Et))Ztnt(jt,nn)?(Jt[Pt]=jt,Jt[Zt]=Et,Pt=Zt):(Jt[Pt]=nn,Jt[Kt]=Et,Pt=Kt);else if(Ztnt(jt,Et))Jt[Pt]=jt,Jt[Zt]=Et,Pt=Zt;else break e}}return Dt}function nt(Jt,Dt){var Et=Jt.sortIndex-Dt.sortIndex;return Et!==0?Et:Jt.id-Dt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var rt=performance;s.unstable_now=function(){return rt.now()}}else{var it=Date,ot=it.now();s.unstable_now=function(){return it.now()-ot}}var st=[],at=[],lt=1,ut=null,dt=3,ht=!1,ct=!1,pt=!1,ft=typeof setTimeout=="function"?setTimeout:null,gt=typeof clearTimeout=="function"?clearTimeout:null,yt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Ut(Jt){for(var Dt=et(at);Dt!==null;){if(Dt.callback===null)tt(at);else if(Dt.startTime<=Jt)tt(at),Dt.sortIndex=Dt.expirationTime,o(st,Dt);else break;Dt=et(at)}}function Ft(Jt){if(pt=!1,Ut(Jt),!ct)if(et(st)!==null)ct=!0,Nt(mt);else{var Dt=et(at);Dt!==null&&Ot(Ft,Dt.startTime-Jt)}}function mt(Jt,Dt){ct=!1,pt&&(pt=!1,gt(Lt),Lt=-1),ht=!0;var Et=dt;try{for(Ut(Dt),ut=et(st);ut!==null&&(!(ut.expirationTime>Dt)||Jt&&!Tt());){var Pt=ut.callback;if(typeof Pt=="function"){ut.callback=null,dt=ut.priorityLevel;var zt=Pt(ut.expirationTime<=Dt);Dt=s.unstable_now(),typeof zt=="function"?ut.callback=zt:ut===et(st)&&tt(st),Ut(Dt)}else tt(st);ut=et(st)}if(ut!==null)var en=!0;else{var Kt=et(at);Kt!==null&&Ot(Ft,Kt.startTime-Dt),en=!1}return en}finally{ut=null,dt=Et,ht=!1}}var vt=!1,At=null,Lt=-1,Rt=5,St=-1;function Tt(){return!(s.unstable_now()-StJt||125Pt?(Jt.sortIndex=Et,o(at,Jt),et(st)===null&&Jt===et(at)&&(pt?(gt(Lt),Lt=-1):pt=!0,Ot(Ft,Et-Pt))):(Jt.sortIndex=zt,o(st,Jt),ct||ht||(ct=!0,Nt(mt))),Jt},s.unstable_shouldYield=Tt,s.unstable_wrapCallback=function(Jt){var Dt=dt;return function(){var Et=dt;dt=Dt;try{return Jt.apply(this,arguments)}finally{dt=Et}}}})(scheduler_production_min$1);scheduler$1.exports=scheduler_production_min$1;var schedulerExports$1=scheduler$1.exports;/** * @license React * react-dom.production.min.js * @@ -41,7 +41,7 @@ Error generating stack: `+rt.message+` * @license * Copyright 2010-2024 Three.js Authors * SPDX-License-Identifier: MIT - */const REVISION="165",MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},CullFaceNone=0,CullFaceBack=1,CullFaceFront=2,CullFaceFrontBack=3,BasicShadowMap=0,PCFShadowMap=1,PCFSoftShadowMap=2,VSMShadowMap=3,FrontSide=0,BackSide=1,DoubleSide=2,NoBlending=0,NormalBlending=1,AdditiveBlending=2,SubtractiveBlending=3,MultiplyBlending=4,CustomBlending=5,AddEquation=100,SubtractEquation=101,ReverseSubtractEquation=102,MinEquation=103,MaxEquation=104,ZeroFactor=200,OneFactor=201,SrcColorFactor=202,OneMinusSrcColorFactor=203,SrcAlphaFactor=204,OneMinusSrcAlphaFactor=205,DstAlphaFactor=206,OneMinusDstAlphaFactor=207,DstColorFactor=208,OneMinusDstColorFactor=209,SrcAlphaSaturateFactor=210,ConstantColorFactor=211,OneMinusConstantColorFactor=212,ConstantAlphaFactor=213,OneMinusConstantAlphaFactor=214,NeverDepth=0,AlwaysDepth=1,LessDepth=2,LessEqualDepth=3,EqualDepth=4,GreaterEqualDepth=5,GreaterDepth=6,NotEqualDepth=7,MultiplyOperation=0,MixOperation=1,AddOperation=2,NoToneMapping=0,LinearToneMapping=1,ReinhardToneMapping=2,CineonToneMapping=3,ACESFilmicToneMapping=4,CustomToneMapping=5,AgXToneMapping=6,NeutralToneMapping=7,AttachedBindMode="attached",DetachedBindMode="detached",UVMapping=300,CubeReflectionMapping=301,CubeRefractionMapping=302,EquirectangularReflectionMapping=303,EquirectangularRefractionMapping=304,CubeUVReflectionMapping=306,RepeatWrapping=1e3,ClampToEdgeWrapping=1001,MirroredRepeatWrapping=1002,NearestFilter=1003,NearestMipmapNearestFilter=1004,NearestMipMapNearestFilter=1004,NearestMipmapLinearFilter=1005,NearestMipMapLinearFilter=1005,LinearFilter=1006,LinearMipmapNearestFilter=1007,LinearMipMapNearestFilter=1007,LinearMipmapLinearFilter=1008,LinearMipMapLinearFilter=1008,UnsignedByteType=1009,ByteType=1010,ShortType=1011,UnsignedShortType=1012,IntType=1013,UnsignedIntType=1014,FloatType=1015,HalfFloatType=1016,UnsignedShort4444Type=1017,UnsignedShort5551Type=1018,UnsignedInt248Type=1020,UnsignedInt5999Type=35902,AlphaFormat=1021,RGBFormat=1022,RGBAFormat=1023,LuminanceFormat=1024,LuminanceAlphaFormat=1025,DepthFormat=1026,DepthStencilFormat=1027,RedFormat=1028,RedIntegerFormat=1029,RGFormat=1030,RGIntegerFormat=1031,RGBAIntegerFormat=1033,RGB_S3TC_DXT1_Format=33776,RGBA_S3TC_DXT1_Format=33777,RGBA_S3TC_DXT3_Format=33778,RGBA_S3TC_DXT5_Format=33779,RGB_PVRTC_4BPPV1_Format=35840,RGB_PVRTC_2BPPV1_Format=35841,RGBA_PVRTC_4BPPV1_Format=35842,RGBA_PVRTC_2BPPV1_Format=35843,RGB_ETC1_Format=36196,RGB_ETC2_Format=37492,RGBA_ETC2_EAC_Format=37496,RGBA_ASTC_4x4_Format=37808,RGBA_ASTC_5x4_Format=37809,RGBA_ASTC_5x5_Format=37810,RGBA_ASTC_6x5_Format=37811,RGBA_ASTC_6x6_Format=37812,RGBA_ASTC_8x5_Format=37813,RGBA_ASTC_8x6_Format=37814,RGBA_ASTC_8x8_Format=37815,RGBA_ASTC_10x5_Format=37816,RGBA_ASTC_10x6_Format=37817,RGBA_ASTC_10x8_Format=37818,RGBA_ASTC_10x10_Format=37819,RGBA_ASTC_12x10_Format=37820,RGBA_ASTC_12x12_Format=37821,RGBA_BPTC_Format=36492,RGB_BPTC_SIGNED_Format=36494,RGB_BPTC_UNSIGNED_Format=36495,RED_RGTC1_Format=36283,SIGNED_RED_RGTC1_Format=36284,RED_GREEN_RGTC2_Format=36285,SIGNED_RED_GREEN_RGTC2_Format=36286,LoopOnce=2200,LoopRepeat=2201,LoopPingPong=2202,InterpolateDiscrete=2300,InterpolateLinear=2301,InterpolateSmooth=2302,ZeroCurvatureEnding=2400,ZeroSlopeEnding=2401,WrapAroundEnding=2402,NormalAnimationBlendMode=2500,AdditiveAnimationBlendMode=2501,TrianglesDrawMode=0,TriangleStripDrawMode=1,TriangleFanDrawMode=2,BasicDepthPacking=3200,RGBADepthPacking=3201,TangentSpaceNormalMap=0,ObjectSpaceNormalMap=1,NoColorSpace="",SRGBColorSpace$1="srgb",LinearSRGBColorSpace$1="srgb-linear",DisplayP3ColorSpace="display-p3",LinearDisplayP3ColorSpace="display-p3-linear",LinearTransfer="linear",SRGBTransfer="srgb",Rec709Primaries="rec709",P3Primaries="p3",ZeroStencilOp=0,KeepStencilOp=7680,ReplaceStencilOp=7681,IncrementStencilOp=7682,DecrementStencilOp=7683,IncrementWrapStencilOp=34055,DecrementWrapStencilOp=34056,InvertStencilOp=5386,NeverStencilFunc=512,LessStencilFunc=513,EqualStencilFunc=514,LessEqualStencilFunc=515,GreaterStencilFunc=516,NotEqualStencilFunc=517,GreaterEqualStencilFunc=518,AlwaysStencilFunc=519,NeverCompare=512,LessCompare=513,EqualCompare=514,LessEqualCompare=515,GreaterCompare=516,NotEqualCompare=517,GreaterEqualCompare=518,AlwaysCompare=519,StaticDrawUsage=35044,DynamicDrawUsage=35048,StreamDrawUsage=35040,StaticReadUsage=35045,DynamicReadUsage=35049,StreamReadUsage=35041,StaticCopyUsage=35046,DynamicCopyUsage=35050,StreamCopyUsage=35042,GLSL1="100",GLSL3="300 es",WebGLCoordinateSystem=2e3,WebGPUCoordinateSystem=2001;let EventDispatcher$1=class{addEventListener(o,et){this._listeners===void 0&&(this._listeners={});const tt=this._listeners;tt[o]===void 0&&(tt[o]=[]),tt[o].indexOf(et)===-1&&tt[o].push(et)}hasEventListener(o,et){if(this._listeners===void 0)return!1;const tt=this._listeners;return tt[o]!==void 0&&tt[o].indexOf(et)!==-1}removeEventListener(o,et){if(this._listeners===void 0)return;const nt=this._listeners[o];if(nt!==void 0){const rt=nt.indexOf(et);rt!==-1&&nt.splice(rt,1)}}dispatchEvent(o){if(this._listeners===void 0)return;const tt=this._listeners[o.type];if(tt!==void 0){o.target=this;const nt=tt.slice(0);for(let rt=0,it=nt.length;rt>8&255]+_lut[s>>16&255]+_lut[s>>24&255]+"-"+_lut[o&255]+_lut[o>>8&255]+"-"+_lut[o>>16&15|64]+_lut[o>>24&255]+"-"+_lut[et&63|128]+_lut[et>>8&255]+"-"+_lut[et>>16&255]+_lut[et>>24&255]+_lut[tt&255]+_lut[tt>>8&255]+_lut[tt>>16&255]+_lut[tt>>24&255]).toLowerCase()}function clamp$4(s,o,et){return Math.max(o,Math.min(et,s))}function euclideanModulo(s,o){return(s%o+o)%o}function mapLinear(s,o,et,tt,nt){return tt+(s-o)*(nt-tt)/(et-o)}function inverseLerp(s,o,et){return s!==o?(et-s)/(o-s):0}function lerp(s,o,et){return(1-et)*s+et*o}function damp(s,o,et,tt){return lerp(s,o,1-Math.exp(-et*tt))}function pingpong(s,o=1){return o-Math.abs(euclideanModulo(s,o*2)-o)}function smoothstep(s,o,et){return s<=o?0:s>=et?1:(s=(s-o)/(et-o),s*s*(3-2*s))}function smootherstep(s,o,et){return s<=o?0:s>=et?1:(s=(s-o)/(et-o),s*s*s*(s*(s*6-15)+10))}function randInt(s,o){return s+Math.floor(Math.random()*(o-s+1))}function randFloat(s,o){return s+Math.random()*(o-s)}function randFloatSpread(s){return s*(.5-Math.random())}function seededRandom(s){s!==void 0&&(_seed=s);let o=_seed+=1831565813;return o=Math.imul(o^o>>>15,o|1),o^=o+Math.imul(o^o>>>7,o|61),((o^o>>>14)>>>0)/4294967296}function degToRad(s){return s*DEG2RAD$1}function radToDeg(s){return s*RAD2DEG}function isPowerOfTwo(s){return(s&s-1)===0&&s!==0}function ceilPowerOfTwo(s){return Math.pow(2,Math.ceil(Math.log(s)/Math.LN2))}function floorPowerOfTwo(s){return Math.pow(2,Math.floor(Math.log(s)/Math.LN2))}function setQuaternionFromProperEuler(s,o,et,tt,nt){const rt=Math.cos,it=Math.sin,ot=rt(et/2),st=it(et/2),at=rt((o+tt)/2),lt=it((o+tt)/2),ut=rt((o-tt)/2),dt=it((o-tt)/2),ht=rt((tt-o)/2),ct=it((tt-o)/2);switch(nt){case"XYX":s.set(ot*lt,st*ut,st*dt,ot*at);break;case"YZY":s.set(st*dt,ot*lt,st*ut,ot*at);break;case"ZXZ":s.set(st*ut,st*dt,ot*lt,ot*at);break;case"XZX":s.set(ot*lt,st*ct,st*ht,ot*at);break;case"YXY":s.set(st*ht,ot*lt,st*ct,ot*at);break;case"ZYZ":s.set(st*ct,st*ht,ot*lt,ot*at);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+nt)}}function denormalize(s,o){switch(o.constructor){case Float32Array:return s;case Uint32Array:return s/4294967295;case Uint16Array:return s/65535;case Uint8Array:return s/255;case Int32Array:return Math.max(s/2147483647,-1);case Int16Array:return Math.max(s/32767,-1);case Int8Array:return Math.max(s/127,-1);default:throw new Error("Invalid component type.")}}function normalize(s,o){switch(o.constructor){case Float32Array:return s;case Uint32Array:return Math.round(s*4294967295);case Uint16Array:return Math.round(s*65535);case Uint8Array:return Math.round(s*255);case Int32Array:return Math.round(s*2147483647);case Int16Array:return Math.round(s*32767);case Int8Array:return Math.round(s*127);default:throw new Error("Invalid component type.")}}const MathUtils={DEG2RAD:DEG2RAD$1,RAD2DEG,generateUUID,clamp:clamp$4,euclideanModulo,mapLinear,inverseLerp,lerp,damp,pingpong,smoothstep,smootherstep,randInt,randFloat,randFloatSpread,seededRandom,degToRad,radToDeg,isPowerOfTwo,ceilPowerOfTwo,floorPowerOfTwo,setQuaternionFromProperEuler,normalize,denormalize};class Vector2{constructor(o=0,et=0){Vector2.prototype.isVector2=!0,this.x=o,this.y=et}get width(){return this.x}set width(o){this.x=o}get height(){return this.y}set height(o){this.y=o}set(o,et){return this.x=o,this.y=et,this}setScalar(o){return this.x=o,this.y=o,this}setX(o){return this.x=o,this}setY(o){return this.y=o,this}setComponent(o,et){switch(o){case 0:this.x=et;break;case 1:this.y=et;break;default:throw new Error("index is out of range: "+o)}return this}getComponent(o){switch(o){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+o)}}clone(){return new this.constructor(this.x,this.y)}copy(o){return this.x=o.x,this.y=o.y,this}add(o){return this.x+=o.x,this.y+=o.y,this}addScalar(o){return this.x+=o,this.y+=o,this}addVectors(o,et){return this.x=o.x+et.x,this.y=o.y+et.y,this}addScaledVector(o,et){return this.x+=o.x*et,this.y+=o.y*et,this}sub(o){return this.x-=o.x,this.y-=o.y,this}subScalar(o){return this.x-=o,this.y-=o,this}subVectors(o,et){return this.x=o.x-et.x,this.y=o.y-et.y,this}multiply(o){return this.x*=o.x,this.y*=o.y,this}multiplyScalar(o){return this.x*=o,this.y*=o,this}divide(o){return this.x/=o.x,this.y/=o.y,this}divideScalar(o){return this.multiplyScalar(1/o)}applyMatrix3(o){const et=this.x,tt=this.y,nt=o.elements;return this.x=nt[0]*et+nt[3]*tt+nt[6],this.y=nt[1]*et+nt[4]*tt+nt[7],this}min(o){return this.x=Math.min(this.x,o.x),this.y=Math.min(this.y,o.y),this}max(o){return this.x=Math.max(this.x,o.x),this.y=Math.max(this.y,o.y),this}clamp(o,et){return this.x=Math.max(o.x,Math.min(et.x,this.x)),this.y=Math.max(o.y,Math.min(et.y,this.y)),this}clampScalar(o,et){return this.x=Math.max(o,Math.min(et,this.x)),this.y=Math.max(o,Math.min(et,this.y)),this}clampLength(o,et){const tt=this.length();return this.divideScalar(tt||1).multiplyScalar(Math.max(o,Math.min(et,tt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(o){return this.x*o.x+this.y*o.y}cross(o){return this.x*o.y-this.y*o.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(o){const et=Math.sqrt(this.lengthSq()*o.lengthSq());if(et===0)return Math.PI/2;const tt=this.dot(o)/et;return Math.acos(clamp$4(tt,-1,1))}distanceTo(o){return Math.sqrt(this.distanceToSquared(o))}distanceToSquared(o){const et=this.x-o.x,tt=this.y-o.y;return et*et+tt*tt}manhattanDistanceTo(o){return Math.abs(this.x-o.x)+Math.abs(this.y-o.y)}setLength(o){return this.normalize().multiplyScalar(o)}lerp(o,et){return this.x+=(o.x-this.x)*et,this.y+=(o.y-this.y)*et,this}lerpVectors(o,et,tt){return this.x=o.x+(et.x-o.x)*tt,this.y=o.y+(et.y-o.y)*tt,this}equals(o){return o.x===this.x&&o.y===this.y}fromArray(o,et=0){return this.x=o[et],this.y=o[et+1],this}toArray(o=[],et=0){return o[et]=this.x,o[et+1]=this.y,o}fromBufferAttribute(o,et){return this.x=o.getX(et),this.y=o.getY(et),this}rotateAround(o,et){const tt=Math.cos(et),nt=Math.sin(et),rt=this.x-o.x,it=this.y-o.y;return this.x=rt*tt-it*nt+o.x,this.y=rt*nt+it*tt+o.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Matrix3{constructor(o,et,tt,nt,rt,it,ot,st,at){Matrix3.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],o!==void 0&&this.set(o,et,tt,nt,rt,it,ot,st,at)}set(o,et,tt,nt,rt,it,ot,st,at){const lt=this.elements;return lt[0]=o,lt[1]=nt,lt[2]=ot,lt[3]=et,lt[4]=rt,lt[5]=st,lt[6]=tt,lt[7]=it,lt[8]=at,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(o){const et=this.elements,tt=o.elements;return et[0]=tt[0],et[1]=tt[1],et[2]=tt[2],et[3]=tt[3],et[4]=tt[4],et[5]=tt[5],et[6]=tt[6],et[7]=tt[7],et[8]=tt[8],this}extractBasis(o,et,tt){return o.setFromMatrix3Column(this,0),et.setFromMatrix3Column(this,1),tt.setFromMatrix3Column(this,2),this}setFromMatrix4(o){const et=o.elements;return this.set(et[0],et[4],et[8],et[1],et[5],et[9],et[2],et[6],et[10]),this}multiply(o){return this.multiplyMatrices(this,o)}premultiply(o){return this.multiplyMatrices(o,this)}multiplyMatrices(o,et){const tt=o.elements,nt=et.elements,rt=this.elements,it=tt[0],ot=tt[3],st=tt[6],at=tt[1],lt=tt[4],ut=tt[7],dt=tt[2],ht=tt[5],ct=tt[8],pt=nt[0],ft=nt[3],gt=nt[6],yt=nt[1],Ut=nt[4],Ft=nt[7],mt=nt[2],vt=nt[5],At=nt[8];return rt[0]=it*pt+ot*yt+st*mt,rt[3]=it*ft+ot*Ut+st*vt,rt[6]=it*gt+ot*Ft+st*At,rt[1]=at*pt+lt*yt+ut*mt,rt[4]=at*ft+lt*Ut+ut*vt,rt[7]=at*gt+lt*Ft+ut*At,rt[2]=dt*pt+ht*yt+ct*mt,rt[5]=dt*ft+ht*Ut+ct*vt,rt[8]=dt*gt+ht*Ft+ct*At,this}multiplyScalar(o){const et=this.elements;return et[0]*=o,et[3]*=o,et[6]*=o,et[1]*=o,et[4]*=o,et[7]*=o,et[2]*=o,et[5]*=o,et[8]*=o,this}determinant(){const o=this.elements,et=o[0],tt=o[1],nt=o[2],rt=o[3],it=o[4],ot=o[5],st=o[6],at=o[7],lt=o[8];return et*it*lt-et*ot*at-tt*rt*lt+tt*ot*st+nt*rt*at-nt*it*st}invert(){const o=this.elements,et=o[0],tt=o[1],nt=o[2],rt=o[3],it=o[4],ot=o[5],st=o[6],at=o[7],lt=o[8],ut=lt*it-ot*at,dt=ot*st-lt*rt,ht=at*rt-it*st,ct=et*ut+tt*dt+nt*ht;if(ct===0)return this.set(0,0,0,0,0,0,0,0,0);const pt=1/ct;return o[0]=ut*pt,o[1]=(nt*at-lt*tt)*pt,o[2]=(ot*tt-nt*it)*pt,o[3]=dt*pt,o[4]=(lt*et-nt*st)*pt,o[5]=(nt*rt-ot*et)*pt,o[6]=ht*pt,o[7]=(tt*st-at*et)*pt,o[8]=(it*et-tt*rt)*pt,this}transpose(){let o;const et=this.elements;return o=et[1],et[1]=et[3],et[3]=o,o=et[2],et[2]=et[6],et[6]=o,o=et[5],et[5]=et[7],et[7]=o,this}getNormalMatrix(o){return this.setFromMatrix4(o).invert().transpose()}transposeIntoArray(o){const et=this.elements;return o[0]=et[0],o[1]=et[3],o[2]=et[6],o[3]=et[1],o[4]=et[4],o[5]=et[7],o[6]=et[2],o[7]=et[5],o[8]=et[8],this}setUvTransform(o,et,tt,nt,rt,it,ot){const st=Math.cos(rt),at=Math.sin(rt);return this.set(tt*st,tt*at,-tt*(st*it+at*ot)+it+o,-nt*at,nt*st,-nt*(-at*it+st*ot)+ot+et,0,0,1),this}scale(o,et){return this.premultiply(_m3.makeScale(o,et)),this}rotate(o){return this.premultiply(_m3.makeRotation(-o)),this}translate(o,et){return this.premultiply(_m3.makeTranslation(o,et)),this}makeTranslation(o,et){return o.isVector2?this.set(1,0,o.x,0,1,o.y,0,0,1):this.set(1,0,o,0,1,et,0,0,1),this}makeRotation(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(et,-tt,0,tt,et,0,0,0,1),this}makeScale(o,et){return this.set(o,0,0,0,et,0,0,0,1),this}equals(o){const et=this.elements,tt=o.elements;for(let nt=0;nt<9;nt++)if(et[nt]!==tt[nt])return!1;return!0}fromArray(o,et=0){for(let tt=0;tt<9;tt++)this.elements[tt]=o[tt+et];return this}toArray(o=[],et=0){const tt=this.elements;return o[et]=tt[0],o[et+1]=tt[1],o[et+2]=tt[2],o[et+3]=tt[3],o[et+4]=tt[4],o[et+5]=tt[5],o[et+6]=tt[6],o[et+7]=tt[7],o[et+8]=tt[8],o}clone(){return new this.constructor().fromArray(this.elements)}}const _m3=new Matrix3;function arrayNeedsUint32(s){for(let o=s.length-1;o>=0;--o)if(s[o]>=65535)return!0;return!1}const TYPED_ARRAYS={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function getTypedArray(s,o){return new TYPED_ARRAYS[s](o)}function createElementNS(s){return document.createElementNS("http://www.w3.org/1999/xhtml",s)}function createCanvasElement(){const s=createElementNS("canvas");return s.style.display="block",s}const _cache={};function warnOnce(s){s in _cache||(_cache[s]=!0,console.warn(s))}function probeAsync(s,o,et){return new Promise(function(tt,nt){function rt(){switch(s.clientWaitSync(o,s.SYNC_FLUSH_COMMANDS_BIT,0)){case s.WAIT_FAILED:nt();break;case s.TIMEOUT_EXPIRED:setTimeout(rt,et);break;default:tt()}}setTimeout(rt,et)})}const LINEAR_SRGB_TO_LINEAR_DISPLAY_P3=new Matrix3().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),LINEAR_DISPLAY_P3_TO_LINEAR_SRGB=new Matrix3().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),COLOR_SPACES={[LinearSRGBColorSpace$1]:{transfer:LinearTransfer,primaries:Rec709Primaries,toReference:s=>s,fromReference:s=>s},[SRGBColorSpace$1]:{transfer:SRGBTransfer,primaries:Rec709Primaries,toReference:s=>s.convertSRGBToLinear(),fromReference:s=>s.convertLinearToSRGB()},[LinearDisplayP3ColorSpace]:{transfer:LinearTransfer,primaries:P3Primaries,toReference:s=>s.applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),fromReference:s=>s.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3)},[DisplayP3ColorSpace]:{transfer:SRGBTransfer,primaries:P3Primaries,toReference:s=>s.convertSRGBToLinear().applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),fromReference:s=>s.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3).convertLinearToSRGB()}},SUPPORTED_WORKING_COLOR_SPACES=new Set([LinearSRGBColorSpace$1,LinearDisplayP3ColorSpace]),ColorManagement={enabled:!0,_workingColorSpace:LinearSRGBColorSpace$1,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(s){if(!SUPPORTED_WORKING_COLOR_SPACES.has(s))throw new Error(`Unsupported working color space, "${s}".`);this._workingColorSpace=s},convert:function(s,o,et){if(this.enabled===!1||o===et||!o||!et)return s;const tt=COLOR_SPACES[o].toReference,nt=COLOR_SPACES[et].fromReference;return nt(tt(s))},fromWorkingColorSpace:function(s,o){return this.convert(s,this._workingColorSpace,o)},toWorkingColorSpace:function(s,o){return this.convert(s,o,this._workingColorSpace)},getPrimaries:function(s){return COLOR_SPACES[s].primaries},getTransfer:function(s){return s===NoColorSpace?LinearTransfer:COLOR_SPACES[s].transfer}};function SRGBToLinear(s){return s<.04045?s*.0773993808:Math.pow(s*.9478672986+.0521327014,2.4)}function LinearToSRGB(s){return s<.0031308?s*12.92:1.055*Math.pow(s,.41666)-.055}let _canvas;class ImageUtils{static getDataURL(o){if(/^data:/i.test(o.src)||typeof HTMLCanvasElement>"u")return o.src;let et;if(o instanceof HTMLCanvasElement)et=o;else{_canvas===void 0&&(_canvas=createElementNS("canvas")),_canvas.width=o.width,_canvas.height=o.height;const tt=_canvas.getContext("2d");o instanceof ImageData?tt.putImageData(o,0,0):tt.drawImage(o,0,0,o.width,o.height),et=_canvas}return et.width>2048||et.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",o),et.toDataURL("image/jpeg",.6)):et.toDataURL("image/png")}static sRGBToLinear(o){if(typeof HTMLImageElement<"u"&&o instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&o instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&o instanceof ImageBitmap){const et=createElementNS("canvas");et.width=o.width,et.height=o.height;const tt=et.getContext("2d");tt.drawImage(o,0,0,o.width,o.height);const nt=tt.getImageData(0,0,o.width,o.height),rt=nt.data;for(let it=0;it0&&(tt.userData=this.userData),et||(o.textures[this.uuid]=tt),tt}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(o){if(this.mapping!==UVMapping)return o;if(o.applyMatrix3(this.matrix),o.x<0||o.x>1)switch(this.wrapS){case RepeatWrapping:o.x=o.x-Math.floor(o.x);break;case ClampToEdgeWrapping:o.x=o.x<0?0:1;break;case MirroredRepeatWrapping:Math.abs(Math.floor(o.x)%2)===1?o.x=Math.ceil(o.x)-o.x:o.x=o.x-Math.floor(o.x);break}if(o.y<0||o.y>1)switch(this.wrapT){case RepeatWrapping:o.y=o.y-Math.floor(o.y);break;case ClampToEdgeWrapping:o.y=o.y<0?0:1;break;case MirroredRepeatWrapping:Math.abs(Math.floor(o.y)%2)===1?o.y=Math.ceil(o.y)-o.y:o.y=o.y-Math.floor(o.y);break}return this.flipY&&(o.y=1-o.y),o}set needsUpdate(o){o===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(o){o===!0&&this.pmremVersion++}}Texture.DEFAULT_IMAGE=null;Texture.DEFAULT_MAPPING=UVMapping;Texture.DEFAULT_ANISOTROPY=1;class Vector4{constructor(o=0,et=0,tt=0,nt=1){Vector4.prototype.isVector4=!0,this.x=o,this.y=et,this.z=tt,this.w=nt}get width(){return this.z}set width(o){this.z=o}get height(){return this.w}set height(o){this.w=o}set(o,et,tt,nt){return this.x=o,this.y=et,this.z=tt,this.w=nt,this}setScalar(o){return this.x=o,this.y=o,this.z=o,this.w=o,this}setX(o){return this.x=o,this}setY(o){return this.y=o,this}setZ(o){return this.z=o,this}setW(o){return this.w=o,this}setComponent(o,et){switch(o){case 0:this.x=et;break;case 1:this.y=et;break;case 2:this.z=et;break;case 3:this.w=et;break;default:throw new Error("index is out of range: "+o)}return this}getComponent(o){switch(o){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+o)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(o){return this.x=o.x,this.y=o.y,this.z=o.z,this.w=o.w!==void 0?o.w:1,this}add(o){return this.x+=o.x,this.y+=o.y,this.z+=o.z,this.w+=o.w,this}addScalar(o){return this.x+=o,this.y+=o,this.z+=o,this.w+=o,this}addVectors(o,et){return this.x=o.x+et.x,this.y=o.y+et.y,this.z=o.z+et.z,this.w=o.w+et.w,this}addScaledVector(o,et){return this.x+=o.x*et,this.y+=o.y*et,this.z+=o.z*et,this.w+=o.w*et,this}sub(o){return this.x-=o.x,this.y-=o.y,this.z-=o.z,this.w-=o.w,this}subScalar(o){return this.x-=o,this.y-=o,this.z-=o,this.w-=o,this}subVectors(o,et){return this.x=o.x-et.x,this.y=o.y-et.y,this.z=o.z-et.z,this.w=o.w-et.w,this}multiply(o){return this.x*=o.x,this.y*=o.y,this.z*=o.z,this.w*=o.w,this}multiplyScalar(o){return this.x*=o,this.y*=o,this.z*=o,this.w*=o,this}applyMatrix4(o){const et=this.x,tt=this.y,nt=this.z,rt=this.w,it=o.elements;return this.x=it[0]*et+it[4]*tt+it[8]*nt+it[12]*rt,this.y=it[1]*et+it[5]*tt+it[9]*nt+it[13]*rt,this.z=it[2]*et+it[6]*tt+it[10]*nt+it[14]*rt,this.w=it[3]*et+it[7]*tt+it[11]*nt+it[15]*rt,this}divideScalar(o){return this.multiplyScalar(1/o)}setAxisAngleFromQuaternion(o){this.w=2*Math.acos(o.w);const et=Math.sqrt(1-o.w*o.w);return et<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=o.x/et,this.y=o.y/et,this.z=o.z/et),this}setAxisAngleFromRotationMatrix(o){let et,tt,nt,rt;const st=o.elements,at=st[0],lt=st[4],ut=st[8],dt=st[1],ht=st[5],ct=st[9],pt=st[2],ft=st[6],gt=st[10];if(Math.abs(lt-dt)<.01&&Math.abs(ut-pt)<.01&&Math.abs(ct-ft)<.01){if(Math.abs(lt+dt)<.1&&Math.abs(ut+pt)<.1&&Math.abs(ct+ft)<.1&&Math.abs(at+ht+gt-3)<.1)return this.set(1,0,0,0),this;et=Math.PI;const Ut=(at+1)/2,Ft=(ht+1)/2,mt=(gt+1)/2,vt=(lt+dt)/4,At=(ut+pt)/4,Lt=(ct+ft)/4;return Ut>Ft&&Ut>mt?Ut<.01?(tt=0,nt=.707106781,rt=.707106781):(tt=Math.sqrt(Ut),nt=vt/tt,rt=At/tt):Ft>mt?Ft<.01?(tt=.707106781,nt=0,rt=.707106781):(nt=Math.sqrt(Ft),tt=vt/nt,rt=Lt/nt):mt<.01?(tt=.707106781,nt=.707106781,rt=0):(rt=Math.sqrt(mt),tt=At/rt,nt=Lt/rt),this.set(tt,nt,rt,et),this}let yt=Math.sqrt((ft-ct)*(ft-ct)+(ut-pt)*(ut-pt)+(dt-lt)*(dt-lt));return Math.abs(yt)<.001&&(yt=1),this.x=(ft-ct)/yt,this.y=(ut-pt)/yt,this.z=(dt-lt)/yt,this.w=Math.acos((at+ht+gt-1)/2),this}min(o){return this.x=Math.min(this.x,o.x),this.y=Math.min(this.y,o.y),this.z=Math.min(this.z,o.z),this.w=Math.min(this.w,o.w),this}max(o){return this.x=Math.max(this.x,o.x),this.y=Math.max(this.y,o.y),this.z=Math.max(this.z,o.z),this.w=Math.max(this.w,o.w),this}clamp(o,et){return this.x=Math.max(o.x,Math.min(et.x,this.x)),this.y=Math.max(o.y,Math.min(et.y,this.y)),this.z=Math.max(o.z,Math.min(et.z,this.z)),this.w=Math.max(o.w,Math.min(et.w,this.w)),this}clampScalar(o,et){return this.x=Math.max(o,Math.min(et,this.x)),this.y=Math.max(o,Math.min(et,this.y)),this.z=Math.max(o,Math.min(et,this.z)),this.w=Math.max(o,Math.min(et,this.w)),this}clampLength(o,et){const tt=this.length();return this.divideScalar(tt||1).multiplyScalar(Math.max(o,Math.min(et,tt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(o){return this.x*o.x+this.y*o.y+this.z*o.z+this.w*o.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(o){return this.normalize().multiplyScalar(o)}lerp(o,et){return this.x+=(o.x-this.x)*et,this.y+=(o.y-this.y)*et,this.z+=(o.z-this.z)*et,this.w+=(o.w-this.w)*et,this}lerpVectors(o,et,tt){return this.x=o.x+(et.x-o.x)*tt,this.y=o.y+(et.y-o.y)*tt,this.z=o.z+(et.z-o.z)*tt,this.w=o.w+(et.w-o.w)*tt,this}equals(o){return o.x===this.x&&o.y===this.y&&o.z===this.z&&o.w===this.w}fromArray(o,et=0){return this.x=o[et],this.y=o[et+1],this.z=o[et+2],this.w=o[et+3],this}toArray(o=[],et=0){return o[et]=this.x,o[et+1]=this.y,o[et+2]=this.z,o[et+3]=this.w,o}fromBufferAttribute(o,et){return this.x=o.getX(et),this.y=o.getY(et),this.z=o.getZ(et),this.w=o.getW(et),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class RenderTarget extends EventDispatcher$1{constructor(o=1,et=1,tt={}){super(),this.isRenderTarget=!0,this.width=o,this.height=et,this.depth=1,this.scissor=new Vector4(0,0,o,et),this.scissorTest=!1,this.viewport=new Vector4(0,0,o,et);const nt={width:o,height:et,depth:1};tt=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:LinearFilter,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},tt);const rt=new Texture(nt,tt.mapping,tt.wrapS,tt.wrapT,tt.magFilter,tt.minFilter,tt.format,tt.type,tt.anisotropy,tt.colorSpace);rt.flipY=!1,rt.generateMipmaps=tt.generateMipmaps,rt.internalFormat=tt.internalFormat,this.textures=[];const it=tt.count;for(let ot=0;ot=0?1:-1,Ut=1-gt*gt;if(Ut>Number.EPSILON){const mt=Math.sqrt(Ut),vt=Math.atan2(mt,gt*yt);ft=Math.sin(ft*vt)/mt,ot=Math.sin(ot*vt)/mt}const Ft=ot*yt;if(st=st*ft+dt*Ft,at=at*ft+ht*Ft,lt=lt*ft+ct*Ft,ut=ut*ft+pt*Ft,ft===1-ot){const mt=1/Math.sqrt(st*st+at*at+lt*lt+ut*ut);st*=mt,at*=mt,lt*=mt,ut*=mt}}o[et]=st,o[et+1]=at,o[et+2]=lt,o[et+3]=ut}static multiplyQuaternionsFlat(o,et,tt,nt,rt,it){const ot=tt[nt],st=tt[nt+1],at=tt[nt+2],lt=tt[nt+3],ut=rt[it],dt=rt[it+1],ht=rt[it+2],ct=rt[it+3];return o[et]=ot*ct+lt*ut+st*ht-at*dt,o[et+1]=st*ct+lt*dt+at*ut-ot*ht,o[et+2]=at*ct+lt*ht+ot*dt-st*ut,o[et+3]=lt*ct-ot*ut-st*dt-at*ht,o}get x(){return this._x}set x(o){this._x=o,this._onChangeCallback()}get y(){return this._y}set y(o){this._y=o,this._onChangeCallback()}get z(){return this._z}set z(o){this._z=o,this._onChangeCallback()}get w(){return this._w}set w(o){this._w=o,this._onChangeCallback()}set(o,et,tt,nt){return this._x=o,this._y=et,this._z=tt,this._w=nt,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(o){return this._x=o.x,this._y=o.y,this._z=o.z,this._w=o.w,this._onChangeCallback(),this}setFromEuler(o,et=!0){const tt=o._x,nt=o._y,rt=o._z,it=o._order,ot=Math.cos,st=Math.sin,at=ot(tt/2),lt=ot(nt/2),ut=ot(rt/2),dt=st(tt/2),ht=st(nt/2),ct=st(rt/2);switch(it){case"XYZ":this._x=dt*lt*ut+at*ht*ct,this._y=at*ht*ut-dt*lt*ct,this._z=at*lt*ct+dt*ht*ut,this._w=at*lt*ut-dt*ht*ct;break;case"YXZ":this._x=dt*lt*ut+at*ht*ct,this._y=at*ht*ut-dt*lt*ct,this._z=at*lt*ct-dt*ht*ut,this._w=at*lt*ut+dt*ht*ct;break;case"ZXY":this._x=dt*lt*ut-at*ht*ct,this._y=at*ht*ut+dt*lt*ct,this._z=at*lt*ct+dt*ht*ut,this._w=at*lt*ut-dt*ht*ct;break;case"ZYX":this._x=dt*lt*ut-at*ht*ct,this._y=at*ht*ut+dt*lt*ct,this._z=at*lt*ct-dt*ht*ut,this._w=at*lt*ut+dt*ht*ct;break;case"YZX":this._x=dt*lt*ut+at*ht*ct,this._y=at*ht*ut+dt*lt*ct,this._z=at*lt*ct-dt*ht*ut,this._w=at*lt*ut-dt*ht*ct;break;case"XZY":this._x=dt*lt*ut-at*ht*ct,this._y=at*ht*ut-dt*lt*ct,this._z=at*lt*ct+dt*ht*ut,this._w=at*lt*ut+dt*ht*ct;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+it)}return et===!0&&this._onChangeCallback(),this}setFromAxisAngle(o,et){const tt=et/2,nt=Math.sin(tt);return this._x=o.x*nt,this._y=o.y*nt,this._z=o.z*nt,this._w=Math.cos(tt),this._onChangeCallback(),this}setFromRotationMatrix(o){const et=o.elements,tt=et[0],nt=et[4],rt=et[8],it=et[1],ot=et[5],st=et[9],at=et[2],lt=et[6],ut=et[10],dt=tt+ot+ut;if(dt>0){const ht=.5/Math.sqrt(dt+1);this._w=.25/ht,this._x=(lt-st)*ht,this._y=(rt-at)*ht,this._z=(it-nt)*ht}else if(tt>ot&&tt>ut){const ht=2*Math.sqrt(1+tt-ot-ut);this._w=(lt-st)/ht,this._x=.25*ht,this._y=(nt+it)/ht,this._z=(rt+at)/ht}else if(ot>ut){const ht=2*Math.sqrt(1+ot-tt-ut);this._w=(rt-at)/ht,this._x=(nt+it)/ht,this._y=.25*ht,this._z=(st+lt)/ht}else{const ht=2*Math.sqrt(1+ut-tt-ot);this._w=(it-nt)/ht,this._x=(rt+at)/ht,this._y=(st+lt)/ht,this._z=.25*ht}return this._onChangeCallback(),this}setFromUnitVectors(o,et){let tt=o.dot(et)+1;return ttMath.abs(o.z)?(this._x=-o.y,this._y=o.x,this._z=0,this._w=tt):(this._x=0,this._y=-o.z,this._z=o.y,this._w=tt)):(this._x=o.y*et.z-o.z*et.y,this._y=o.z*et.x-o.x*et.z,this._z=o.x*et.y-o.y*et.x,this._w=tt),this.normalize()}angleTo(o){return 2*Math.acos(Math.abs(clamp$4(this.dot(o),-1,1)))}rotateTowards(o,et){const tt=this.angleTo(o);if(tt===0)return this;const nt=Math.min(1,et/tt);return this.slerp(o,nt),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(o){return this._x*o._x+this._y*o._y+this._z*o._z+this._w*o._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let o=this.length();return o===0?(this._x=0,this._y=0,this._z=0,this._w=1):(o=1/o,this._x=this._x*o,this._y=this._y*o,this._z=this._z*o,this._w=this._w*o),this._onChangeCallback(),this}multiply(o){return this.multiplyQuaternions(this,o)}premultiply(o){return this.multiplyQuaternions(o,this)}multiplyQuaternions(o,et){const tt=o._x,nt=o._y,rt=o._z,it=o._w,ot=et._x,st=et._y,at=et._z,lt=et._w;return this._x=tt*lt+it*ot+nt*at-rt*st,this._y=nt*lt+it*st+rt*ot-tt*at,this._z=rt*lt+it*at+tt*st-nt*ot,this._w=it*lt-tt*ot-nt*st-rt*at,this._onChangeCallback(),this}slerp(o,et){if(et===0)return this;if(et===1)return this.copy(o);const tt=this._x,nt=this._y,rt=this._z,it=this._w;let ot=it*o._w+tt*o._x+nt*o._y+rt*o._z;if(ot<0?(this._w=-o._w,this._x=-o._x,this._y=-o._y,this._z=-o._z,ot=-ot):this.copy(o),ot>=1)return this._w=it,this._x=tt,this._y=nt,this._z=rt,this;const st=1-ot*ot;if(st<=Number.EPSILON){const ht=1-et;return this._w=ht*it+et*this._w,this._x=ht*tt+et*this._x,this._y=ht*nt+et*this._y,this._z=ht*rt+et*this._z,this.normalize(),this}const at=Math.sqrt(st),lt=Math.atan2(at,ot),ut=Math.sin((1-et)*lt)/at,dt=Math.sin(et*lt)/at;return this._w=it*ut+this._w*dt,this._x=tt*ut+this._x*dt,this._y=nt*ut+this._y*dt,this._z=rt*ut+this._z*dt,this._onChangeCallback(),this}slerpQuaternions(o,et,tt){return this.copy(o).slerp(et,tt)}random(){const o=2*Math.PI*Math.random(),et=2*Math.PI*Math.random(),tt=Math.random(),nt=Math.sqrt(1-tt),rt=Math.sqrt(tt);return this.set(nt*Math.sin(o),nt*Math.cos(o),rt*Math.sin(et),rt*Math.cos(et))}equals(o){return o._x===this._x&&o._y===this._y&&o._z===this._z&&o._w===this._w}fromArray(o,et=0){return this._x=o[et],this._y=o[et+1],this._z=o[et+2],this._w=o[et+3],this._onChangeCallback(),this}toArray(o=[],et=0){return o[et]=this._x,o[et+1]=this._y,o[et+2]=this._z,o[et+3]=this._w,o}fromBufferAttribute(o,et){return this._x=o.getX(et),this._y=o.getY(et),this._z=o.getZ(et),this._w=o.getW(et),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(o){return this._onChangeCallback=o,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Vector3{constructor(o=0,et=0,tt=0){Vector3.prototype.isVector3=!0,this.x=o,this.y=et,this.z=tt}set(o,et,tt){return tt===void 0&&(tt=this.z),this.x=o,this.y=et,this.z=tt,this}setScalar(o){return this.x=o,this.y=o,this.z=o,this}setX(o){return this.x=o,this}setY(o){return this.y=o,this}setZ(o){return this.z=o,this}setComponent(o,et){switch(o){case 0:this.x=et;break;case 1:this.y=et;break;case 2:this.z=et;break;default:throw new Error("index is out of range: "+o)}return this}getComponent(o){switch(o){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+o)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(o){return this.x=o.x,this.y=o.y,this.z=o.z,this}add(o){return this.x+=o.x,this.y+=o.y,this.z+=o.z,this}addScalar(o){return this.x+=o,this.y+=o,this.z+=o,this}addVectors(o,et){return this.x=o.x+et.x,this.y=o.y+et.y,this.z=o.z+et.z,this}addScaledVector(o,et){return this.x+=o.x*et,this.y+=o.y*et,this.z+=o.z*et,this}sub(o){return this.x-=o.x,this.y-=o.y,this.z-=o.z,this}subScalar(o){return this.x-=o,this.y-=o,this.z-=o,this}subVectors(o,et){return this.x=o.x-et.x,this.y=o.y-et.y,this.z=o.z-et.z,this}multiply(o){return this.x*=o.x,this.y*=o.y,this.z*=o.z,this}multiplyScalar(o){return this.x*=o,this.y*=o,this.z*=o,this}multiplyVectors(o,et){return this.x=o.x*et.x,this.y=o.y*et.y,this.z=o.z*et.z,this}applyEuler(o){return this.applyQuaternion(_quaternion$4.setFromEuler(o))}applyAxisAngle(o,et){return this.applyQuaternion(_quaternion$4.setFromAxisAngle(o,et))}applyMatrix3(o){const et=this.x,tt=this.y,nt=this.z,rt=o.elements;return this.x=rt[0]*et+rt[3]*tt+rt[6]*nt,this.y=rt[1]*et+rt[4]*tt+rt[7]*nt,this.z=rt[2]*et+rt[5]*tt+rt[8]*nt,this}applyNormalMatrix(o){return this.applyMatrix3(o).normalize()}applyMatrix4(o){const et=this.x,tt=this.y,nt=this.z,rt=o.elements,it=1/(rt[3]*et+rt[7]*tt+rt[11]*nt+rt[15]);return this.x=(rt[0]*et+rt[4]*tt+rt[8]*nt+rt[12])*it,this.y=(rt[1]*et+rt[5]*tt+rt[9]*nt+rt[13])*it,this.z=(rt[2]*et+rt[6]*tt+rt[10]*nt+rt[14])*it,this}applyQuaternion(o){const et=this.x,tt=this.y,nt=this.z,rt=o.x,it=o.y,ot=o.z,st=o.w,at=2*(it*nt-ot*tt),lt=2*(ot*et-rt*nt),ut=2*(rt*tt-it*et);return this.x=et+st*at+it*ut-ot*lt,this.y=tt+st*lt+ot*at-rt*ut,this.z=nt+st*ut+rt*lt-it*at,this}project(o){return this.applyMatrix4(o.matrixWorldInverse).applyMatrix4(o.projectionMatrix)}unproject(o){return this.applyMatrix4(o.projectionMatrixInverse).applyMatrix4(o.matrixWorld)}transformDirection(o){const et=this.x,tt=this.y,nt=this.z,rt=o.elements;return this.x=rt[0]*et+rt[4]*tt+rt[8]*nt,this.y=rt[1]*et+rt[5]*tt+rt[9]*nt,this.z=rt[2]*et+rt[6]*tt+rt[10]*nt,this.normalize()}divide(o){return this.x/=o.x,this.y/=o.y,this.z/=o.z,this}divideScalar(o){return this.multiplyScalar(1/o)}min(o){return this.x=Math.min(this.x,o.x),this.y=Math.min(this.y,o.y),this.z=Math.min(this.z,o.z),this}max(o){return this.x=Math.max(this.x,o.x),this.y=Math.max(this.y,o.y),this.z=Math.max(this.z,o.z),this}clamp(o,et){return this.x=Math.max(o.x,Math.min(et.x,this.x)),this.y=Math.max(o.y,Math.min(et.y,this.y)),this.z=Math.max(o.z,Math.min(et.z,this.z)),this}clampScalar(o,et){return this.x=Math.max(o,Math.min(et,this.x)),this.y=Math.max(o,Math.min(et,this.y)),this.z=Math.max(o,Math.min(et,this.z)),this}clampLength(o,et){const tt=this.length();return this.divideScalar(tt||1).multiplyScalar(Math.max(o,Math.min(et,tt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(o){return this.x*o.x+this.y*o.y+this.z*o.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(o){return this.normalize().multiplyScalar(o)}lerp(o,et){return this.x+=(o.x-this.x)*et,this.y+=(o.y-this.y)*et,this.z+=(o.z-this.z)*et,this}lerpVectors(o,et,tt){return this.x=o.x+(et.x-o.x)*tt,this.y=o.y+(et.y-o.y)*tt,this.z=o.z+(et.z-o.z)*tt,this}cross(o){return this.crossVectors(this,o)}crossVectors(o,et){const tt=o.x,nt=o.y,rt=o.z,it=et.x,ot=et.y,st=et.z;return this.x=nt*st-rt*ot,this.y=rt*it-tt*st,this.z=tt*ot-nt*it,this}projectOnVector(o){const et=o.lengthSq();if(et===0)return this.set(0,0,0);const tt=o.dot(this)/et;return this.copy(o).multiplyScalar(tt)}projectOnPlane(o){return _vector$c.copy(this).projectOnVector(o),this.sub(_vector$c)}reflect(o){return this.sub(_vector$c.copy(o).multiplyScalar(2*this.dot(o)))}angleTo(o){const et=Math.sqrt(this.lengthSq()*o.lengthSq());if(et===0)return Math.PI/2;const tt=this.dot(o)/et;return Math.acos(clamp$4(tt,-1,1))}distanceTo(o){return Math.sqrt(this.distanceToSquared(o))}distanceToSquared(o){const et=this.x-o.x,tt=this.y-o.y,nt=this.z-o.z;return et*et+tt*tt+nt*nt}manhattanDistanceTo(o){return Math.abs(this.x-o.x)+Math.abs(this.y-o.y)+Math.abs(this.z-o.z)}setFromSpherical(o){return this.setFromSphericalCoords(o.radius,o.phi,o.theta)}setFromSphericalCoords(o,et,tt){const nt=Math.sin(et)*o;return this.x=nt*Math.sin(tt),this.y=Math.cos(et)*o,this.z=nt*Math.cos(tt),this}setFromCylindrical(o){return this.setFromCylindricalCoords(o.radius,o.theta,o.y)}setFromCylindricalCoords(o,et,tt){return this.x=o*Math.sin(et),this.y=tt,this.z=o*Math.cos(et),this}setFromMatrixPosition(o){const et=o.elements;return this.x=et[12],this.y=et[13],this.z=et[14],this}setFromMatrixScale(o){const et=this.setFromMatrixColumn(o,0).length(),tt=this.setFromMatrixColumn(o,1).length(),nt=this.setFromMatrixColumn(o,2).length();return this.x=et,this.y=tt,this.z=nt,this}setFromMatrixColumn(o,et){return this.fromArray(o.elements,et*4)}setFromMatrix3Column(o,et){return this.fromArray(o.elements,et*3)}setFromEuler(o){return this.x=o._x,this.y=o._y,this.z=o._z,this}setFromColor(o){return this.x=o.r,this.y=o.g,this.z=o.b,this}equals(o){return o.x===this.x&&o.y===this.y&&o.z===this.z}fromArray(o,et=0){return this.x=o[et],this.y=o[et+1],this.z=o[et+2],this}toArray(o=[],et=0){return o[et]=this.x,o[et+1]=this.y,o[et+2]=this.z,o}fromBufferAttribute(o,et){return this.x=o.getX(et),this.y=o.getY(et),this.z=o.getZ(et),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const o=Math.random()*Math.PI*2,et=Math.random()*2-1,tt=Math.sqrt(1-et*et);return this.x=tt*Math.cos(o),this.y=et,this.z=tt*Math.sin(o),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const _vector$c=new Vector3,_quaternion$4=new Quaternion;class Box3{constructor(o=new Vector3(1/0,1/0,1/0),et=new Vector3(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=o,this.max=et}set(o,et){return this.min.copy(o),this.max.copy(et),this}setFromArray(o){this.makeEmpty();for(let et=0,tt=o.length;etthis.max.x||o.ythis.max.y||o.zthis.max.z)}containsBox(o){return this.min.x<=o.min.x&&o.max.x<=this.max.x&&this.min.y<=o.min.y&&o.max.y<=this.max.y&&this.min.z<=o.min.z&&o.max.z<=this.max.z}getParameter(o,et){return et.set((o.x-this.min.x)/(this.max.x-this.min.x),(o.y-this.min.y)/(this.max.y-this.min.y),(o.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(o){return!(o.max.xthis.max.x||o.max.ythis.max.y||o.max.zthis.max.z)}intersectsSphere(o){return this.clampPoint(o.center,_vector$b),_vector$b.distanceToSquared(o.center)<=o.radius*o.radius}intersectsPlane(o){let et,tt;return o.normal.x>0?(et=o.normal.x*this.min.x,tt=o.normal.x*this.max.x):(et=o.normal.x*this.max.x,tt=o.normal.x*this.min.x),o.normal.y>0?(et+=o.normal.y*this.min.y,tt+=o.normal.y*this.max.y):(et+=o.normal.y*this.max.y,tt+=o.normal.y*this.min.y),o.normal.z>0?(et+=o.normal.z*this.min.z,tt+=o.normal.z*this.max.z):(et+=o.normal.z*this.max.z,tt+=o.normal.z*this.min.z),et<=-o.constant&&tt>=-o.constant}intersectsTriangle(o){if(this.isEmpty())return!1;this.getCenter(_center),_extents.subVectors(this.max,_center),_v0$2.subVectors(o.a,_center),_v1$7.subVectors(o.b,_center),_v2$4.subVectors(o.c,_center),_f0.subVectors(_v1$7,_v0$2),_f1.subVectors(_v2$4,_v1$7),_f2.subVectors(_v0$2,_v2$4);let et=[0,-_f0.z,_f0.y,0,-_f1.z,_f1.y,0,-_f2.z,_f2.y,_f0.z,0,-_f0.x,_f1.z,0,-_f1.x,_f2.z,0,-_f2.x,-_f0.y,_f0.x,0,-_f1.y,_f1.x,0,-_f2.y,_f2.x,0];return!satForAxes(et,_v0$2,_v1$7,_v2$4,_extents)||(et=[1,0,0,0,1,0,0,0,1],!satForAxes(et,_v0$2,_v1$7,_v2$4,_extents))?!1:(_triangleNormal.crossVectors(_f0,_f1),et=[_triangleNormal.x,_triangleNormal.y,_triangleNormal.z],satForAxes(et,_v0$2,_v1$7,_v2$4,_extents))}clampPoint(o,et){return et.copy(o).clamp(this.min,this.max)}distanceToPoint(o){return this.clampPoint(o,_vector$b).distanceTo(o)}getBoundingSphere(o){return this.isEmpty()?o.makeEmpty():(this.getCenter(o.center),o.radius=this.getSize(_vector$b).length()*.5),o}intersect(o){return this.min.max(o.min),this.max.min(o.max),this.isEmpty()&&this.makeEmpty(),this}union(o){return this.min.min(o.min),this.max.max(o.max),this}applyMatrix4(o){return this.isEmpty()?this:(_points[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(o),_points[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(o),_points[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(o),_points[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(o),_points[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(o),_points[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(o),_points[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(o),_points[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(o),this.setFromPoints(_points),this)}translate(o){return this.min.add(o),this.max.add(o),this}equals(o){return o.min.equals(this.min)&&o.max.equals(this.max)}}const _points=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3],_vector$b=new Vector3,_box$4=new Box3,_v0$2=new Vector3,_v1$7=new Vector3,_v2$4=new Vector3,_f0=new Vector3,_f1=new Vector3,_f2=new Vector3,_center=new Vector3,_extents=new Vector3,_triangleNormal=new Vector3,_testAxis=new Vector3;function satForAxes(s,o,et,tt,nt){for(let rt=0,it=s.length-3;rt<=it;rt+=3){_testAxis.fromArray(s,rt);const ot=nt.x*Math.abs(_testAxis.x)+nt.y*Math.abs(_testAxis.y)+nt.z*Math.abs(_testAxis.z),st=o.dot(_testAxis),at=et.dot(_testAxis),lt=tt.dot(_testAxis);if(Math.max(-Math.max(st,at,lt),Math.min(st,at,lt))>ot)return!1}return!0}const _box$3=new Box3,_v1$6=new Vector3,_v2$3=new Vector3;let Sphere$1=class{constructor(o=new Vector3,et=-1){this.isSphere=!0,this.center=o,this.radius=et}set(o,et){return this.center.copy(o),this.radius=et,this}setFromPoints(o,et){const tt=this.center;et!==void 0?tt.copy(et):_box$3.setFromPoints(o).getCenter(tt);let nt=0;for(let rt=0,it=o.length;rtthis.radius*this.radius&&(et.sub(this.center).normalize(),et.multiplyScalar(this.radius).add(this.center)),et}getBoundingBox(o){return this.isEmpty()?(o.makeEmpty(),o):(o.set(this.center,this.center),o.expandByScalar(this.radius),o)}applyMatrix4(o){return this.center.applyMatrix4(o),this.radius=this.radius*o.getMaxScaleOnAxis(),this}translate(o){return this.center.add(o),this}expandByPoint(o){if(this.isEmpty())return this.center.copy(o),this.radius=0,this;_v1$6.subVectors(o,this.center);const et=_v1$6.lengthSq();if(et>this.radius*this.radius){const tt=Math.sqrt(et),nt=(tt-this.radius)*.5;this.center.addScaledVector(_v1$6,nt/tt),this.radius+=nt}return this}union(o){return o.isEmpty()?this:this.isEmpty()?(this.copy(o),this):(this.center.equals(o.center)===!0?this.radius=Math.max(this.radius,o.radius):(_v2$3.subVectors(o.center,this.center).setLength(o.radius),this.expandByPoint(_v1$6.copy(o.center).add(_v2$3)),this.expandByPoint(_v1$6.copy(o.center).sub(_v2$3))),this)}equals(o){return o.center.equals(this.center)&&o.radius===this.radius}clone(){return new this.constructor().copy(this)}};const _vector$a=new Vector3,_segCenter=new Vector3,_segDir=new Vector3,_diff=new Vector3,_edge1=new Vector3,_edge2=new Vector3,_normal$1=new Vector3;let Ray$1=class{constructor(o=new Vector3,et=new Vector3(0,0,-1)){this.origin=o,this.direction=et}set(o,et){return this.origin.copy(o),this.direction.copy(et),this}copy(o){return this.origin.copy(o.origin),this.direction.copy(o.direction),this}at(o,et){return et.copy(this.origin).addScaledVector(this.direction,o)}lookAt(o){return this.direction.copy(o).sub(this.origin).normalize(),this}recast(o){return this.origin.copy(this.at(o,_vector$a)),this}closestPointToPoint(o,et){et.subVectors(o,this.origin);const tt=et.dot(this.direction);return tt<0?et.copy(this.origin):et.copy(this.origin).addScaledVector(this.direction,tt)}distanceToPoint(o){return Math.sqrt(this.distanceSqToPoint(o))}distanceSqToPoint(o){const et=_vector$a.subVectors(o,this.origin).dot(this.direction);return et<0?this.origin.distanceToSquared(o):(_vector$a.copy(this.origin).addScaledVector(this.direction,et),_vector$a.distanceToSquared(o))}distanceSqToSegment(o,et,tt,nt){_segCenter.copy(o).add(et).multiplyScalar(.5),_segDir.copy(et).sub(o).normalize(),_diff.copy(this.origin).sub(_segCenter);const rt=o.distanceTo(et)*.5,it=-this.direction.dot(_segDir),ot=_diff.dot(this.direction),st=-_diff.dot(_segDir),at=_diff.lengthSq(),lt=Math.abs(1-it*it);let ut,dt,ht,ct;if(lt>0)if(ut=it*st-ot,dt=it*ot-st,ct=rt*lt,ut>=0)if(dt>=-ct)if(dt<=ct){const pt=1/lt;ut*=pt,dt*=pt,ht=ut*(ut+it*dt+2*ot)+dt*(it*ut+dt+2*st)+at}else dt=rt,ut=Math.max(0,-(it*dt+ot)),ht=-ut*ut+dt*(dt+2*st)+at;else dt=-rt,ut=Math.max(0,-(it*dt+ot)),ht=-ut*ut+dt*(dt+2*st)+at;else dt<=-ct?(ut=Math.max(0,-(-it*rt+ot)),dt=ut>0?-rt:Math.min(Math.max(-rt,-st),rt),ht=-ut*ut+dt*(dt+2*st)+at):dt<=ct?(ut=0,dt=Math.min(Math.max(-rt,-st),rt),ht=dt*(dt+2*st)+at):(ut=Math.max(0,-(it*rt+ot)),dt=ut>0?rt:Math.min(Math.max(-rt,-st),rt),ht=-ut*ut+dt*(dt+2*st)+at);else dt=it>0?-rt:rt,ut=Math.max(0,-(it*dt+ot)),ht=-ut*ut+dt*(dt+2*st)+at;return tt&&tt.copy(this.origin).addScaledVector(this.direction,ut),nt&&nt.copy(_segCenter).addScaledVector(_segDir,dt),ht}intersectSphere(o,et){_vector$a.subVectors(o.center,this.origin);const tt=_vector$a.dot(this.direction),nt=_vector$a.dot(_vector$a)-tt*tt,rt=o.radius*o.radius;if(nt>rt)return null;const it=Math.sqrt(rt-nt),ot=tt-it,st=tt+it;return st<0?null:ot<0?this.at(st,et):this.at(ot,et)}intersectsSphere(o){return this.distanceSqToPoint(o.center)<=o.radius*o.radius}distanceToPlane(o){const et=o.normal.dot(this.direction);if(et===0)return o.distanceToPoint(this.origin)===0?0:null;const tt=-(this.origin.dot(o.normal)+o.constant)/et;return tt>=0?tt:null}intersectPlane(o,et){const tt=this.distanceToPlane(o);return tt===null?null:this.at(tt,et)}intersectsPlane(o){const et=o.distanceToPoint(this.origin);return et===0||o.normal.dot(this.direction)*et<0}intersectBox(o,et){let tt,nt,rt,it,ot,st;const at=1/this.direction.x,lt=1/this.direction.y,ut=1/this.direction.z,dt=this.origin;return at>=0?(tt=(o.min.x-dt.x)*at,nt=(o.max.x-dt.x)*at):(tt=(o.max.x-dt.x)*at,nt=(o.min.x-dt.x)*at),lt>=0?(rt=(o.min.y-dt.y)*lt,it=(o.max.y-dt.y)*lt):(rt=(o.max.y-dt.y)*lt,it=(o.min.y-dt.y)*lt),tt>it||rt>nt||((rt>tt||isNaN(tt))&&(tt=rt),(it=0?(ot=(o.min.z-dt.z)*ut,st=(o.max.z-dt.z)*ut):(ot=(o.max.z-dt.z)*ut,st=(o.min.z-dt.z)*ut),tt>st||ot>nt)||((ot>tt||tt!==tt)&&(tt=ot),(st=0?tt:nt,et)}intersectsBox(o){return this.intersectBox(o,_vector$a)!==null}intersectTriangle(o,et,tt,nt,rt){_edge1.subVectors(et,o),_edge2.subVectors(tt,o),_normal$1.crossVectors(_edge1,_edge2);let it=this.direction.dot(_normal$1),ot;if(it>0){if(nt)return null;ot=1}else if(it<0)ot=-1,it=-it;else return null;_diff.subVectors(this.origin,o);const st=ot*this.direction.dot(_edge2.crossVectors(_diff,_edge2));if(st<0)return null;const at=ot*this.direction.dot(_edge1.cross(_diff));if(at<0||st+at>it)return null;const lt=-ot*_diff.dot(_normal$1);return lt<0?null:this.at(lt/it,rt)}applyMatrix4(o){return this.origin.applyMatrix4(o),this.direction.transformDirection(o),this}equals(o){return o.origin.equals(this.origin)&&o.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}};class Matrix4{constructor(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct,pt,ft){Matrix4.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],o!==void 0&&this.set(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct,pt,ft)}set(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct,pt,ft){const gt=this.elements;return gt[0]=o,gt[4]=et,gt[8]=tt,gt[12]=nt,gt[1]=rt,gt[5]=it,gt[9]=ot,gt[13]=st,gt[2]=at,gt[6]=lt,gt[10]=ut,gt[14]=dt,gt[3]=ht,gt[7]=ct,gt[11]=pt,gt[15]=ft,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Matrix4().fromArray(this.elements)}copy(o){const et=this.elements,tt=o.elements;return et[0]=tt[0],et[1]=tt[1],et[2]=tt[2],et[3]=tt[3],et[4]=tt[4],et[5]=tt[5],et[6]=tt[6],et[7]=tt[7],et[8]=tt[8],et[9]=tt[9],et[10]=tt[10],et[11]=tt[11],et[12]=tt[12],et[13]=tt[13],et[14]=tt[14],et[15]=tt[15],this}copyPosition(o){const et=this.elements,tt=o.elements;return et[12]=tt[12],et[13]=tt[13],et[14]=tt[14],this}setFromMatrix3(o){const et=o.elements;return this.set(et[0],et[3],et[6],0,et[1],et[4],et[7],0,et[2],et[5],et[8],0,0,0,0,1),this}extractBasis(o,et,tt){return o.setFromMatrixColumn(this,0),et.setFromMatrixColumn(this,1),tt.setFromMatrixColumn(this,2),this}makeBasis(o,et,tt){return this.set(o.x,et.x,tt.x,0,o.y,et.y,tt.y,0,o.z,et.z,tt.z,0,0,0,0,1),this}extractRotation(o){const et=this.elements,tt=o.elements,nt=1/_v1$5.setFromMatrixColumn(o,0).length(),rt=1/_v1$5.setFromMatrixColumn(o,1).length(),it=1/_v1$5.setFromMatrixColumn(o,2).length();return et[0]=tt[0]*nt,et[1]=tt[1]*nt,et[2]=tt[2]*nt,et[3]=0,et[4]=tt[4]*rt,et[5]=tt[5]*rt,et[6]=tt[6]*rt,et[7]=0,et[8]=tt[8]*it,et[9]=tt[9]*it,et[10]=tt[10]*it,et[11]=0,et[12]=0,et[13]=0,et[14]=0,et[15]=1,this}makeRotationFromEuler(o){const et=this.elements,tt=o.x,nt=o.y,rt=o.z,it=Math.cos(tt),ot=Math.sin(tt),st=Math.cos(nt),at=Math.sin(nt),lt=Math.cos(rt),ut=Math.sin(rt);if(o.order==="XYZ"){const dt=it*lt,ht=it*ut,ct=ot*lt,pt=ot*ut;et[0]=st*lt,et[4]=-st*ut,et[8]=at,et[1]=ht+ct*at,et[5]=dt-pt*at,et[9]=-ot*st,et[2]=pt-dt*at,et[6]=ct+ht*at,et[10]=it*st}else if(o.order==="YXZ"){const dt=st*lt,ht=st*ut,ct=at*lt,pt=at*ut;et[0]=dt+pt*ot,et[4]=ct*ot-ht,et[8]=it*at,et[1]=it*ut,et[5]=it*lt,et[9]=-ot,et[2]=ht*ot-ct,et[6]=pt+dt*ot,et[10]=it*st}else if(o.order==="ZXY"){const dt=st*lt,ht=st*ut,ct=at*lt,pt=at*ut;et[0]=dt-pt*ot,et[4]=-it*ut,et[8]=ct+ht*ot,et[1]=ht+ct*ot,et[5]=it*lt,et[9]=pt-dt*ot,et[2]=-it*at,et[6]=ot,et[10]=it*st}else if(o.order==="ZYX"){const dt=it*lt,ht=it*ut,ct=ot*lt,pt=ot*ut;et[0]=st*lt,et[4]=ct*at-ht,et[8]=dt*at+pt,et[1]=st*ut,et[5]=pt*at+dt,et[9]=ht*at-ct,et[2]=-at,et[6]=ot*st,et[10]=it*st}else if(o.order==="YZX"){const dt=it*st,ht=it*at,ct=ot*st,pt=ot*at;et[0]=st*lt,et[4]=pt-dt*ut,et[8]=ct*ut+ht,et[1]=ut,et[5]=it*lt,et[9]=-ot*lt,et[2]=-at*lt,et[6]=ht*ut+ct,et[10]=dt-pt*ut}else if(o.order==="XZY"){const dt=it*st,ht=it*at,ct=ot*st,pt=ot*at;et[0]=st*lt,et[4]=-ut,et[8]=at*lt,et[1]=dt*ut+pt,et[5]=it*lt,et[9]=ht*ut-ct,et[2]=ct*ut-ht,et[6]=ot*lt,et[10]=pt*ut+dt}return et[3]=0,et[7]=0,et[11]=0,et[12]=0,et[13]=0,et[14]=0,et[15]=1,this}makeRotationFromQuaternion(o){return this.compose(_zero,o,_one)}lookAt(o,et,tt){const nt=this.elements;return _z.subVectors(o,et),_z.lengthSq()===0&&(_z.z=1),_z.normalize(),_x.crossVectors(tt,_z),_x.lengthSq()===0&&(Math.abs(tt.z)===1?_z.x+=1e-4:_z.z+=1e-4,_z.normalize(),_x.crossVectors(tt,_z)),_x.normalize(),_y.crossVectors(_z,_x),nt[0]=_x.x,nt[4]=_y.x,nt[8]=_z.x,nt[1]=_x.y,nt[5]=_y.y,nt[9]=_z.y,nt[2]=_x.z,nt[6]=_y.z,nt[10]=_z.z,this}multiply(o){return this.multiplyMatrices(this,o)}premultiply(o){return this.multiplyMatrices(o,this)}multiplyMatrices(o,et){const tt=o.elements,nt=et.elements,rt=this.elements,it=tt[0],ot=tt[4],st=tt[8],at=tt[12],lt=tt[1],ut=tt[5],dt=tt[9],ht=tt[13],ct=tt[2],pt=tt[6],ft=tt[10],gt=tt[14],yt=tt[3],Ut=tt[7],Ft=tt[11],mt=tt[15],vt=nt[0],At=nt[4],Lt=nt[8],Rt=nt[12],St=nt[1],Tt=nt[5],Bt=nt[9],xt=nt[13],Ct=nt[2],kt=nt[6],Nt=nt[10],Ot=nt[14],Wt=nt[3],Dt=nt[7],Et=nt[11],Pt=nt[15];return rt[0]=it*vt+ot*St+st*Ct+at*Wt,rt[4]=it*At+ot*Tt+st*kt+at*Dt,rt[8]=it*Lt+ot*Bt+st*Nt+at*Et,rt[12]=it*Rt+ot*xt+st*Ot+at*Pt,rt[1]=lt*vt+ut*St+dt*Ct+ht*Wt,rt[5]=lt*At+ut*Tt+dt*kt+ht*Dt,rt[9]=lt*Lt+ut*Bt+dt*Nt+ht*Et,rt[13]=lt*Rt+ut*xt+dt*Ot+ht*Pt,rt[2]=ct*vt+pt*St+ft*Ct+gt*Wt,rt[6]=ct*At+pt*Tt+ft*kt+gt*Dt,rt[10]=ct*Lt+pt*Bt+ft*Nt+gt*Et,rt[14]=ct*Rt+pt*xt+ft*Ot+gt*Pt,rt[3]=yt*vt+Ut*St+Ft*Ct+mt*Wt,rt[7]=yt*At+Ut*Tt+Ft*kt+mt*Dt,rt[11]=yt*Lt+Ut*Bt+Ft*Nt+mt*Et,rt[15]=yt*Rt+Ut*xt+Ft*Ot+mt*Pt,this}multiplyScalar(o){const et=this.elements;return et[0]*=o,et[4]*=o,et[8]*=o,et[12]*=o,et[1]*=o,et[5]*=o,et[9]*=o,et[13]*=o,et[2]*=o,et[6]*=o,et[10]*=o,et[14]*=o,et[3]*=o,et[7]*=o,et[11]*=o,et[15]*=o,this}determinant(){const o=this.elements,et=o[0],tt=o[4],nt=o[8],rt=o[12],it=o[1],ot=o[5],st=o[9],at=o[13],lt=o[2],ut=o[6],dt=o[10],ht=o[14],ct=o[3],pt=o[7],ft=o[11],gt=o[15];return ct*(+rt*st*ut-nt*at*ut-rt*ot*dt+tt*at*dt+nt*ot*ht-tt*st*ht)+pt*(+et*st*ht-et*at*dt+rt*it*dt-nt*it*ht+nt*at*lt-rt*st*lt)+ft*(+et*at*ut-et*ot*ht-rt*it*ut+tt*it*ht+rt*ot*lt-tt*at*lt)+gt*(-nt*ot*lt-et*st*ut+et*ot*dt+nt*it*ut-tt*it*dt+tt*st*lt)}transpose(){const o=this.elements;let et;return et=o[1],o[1]=o[4],o[4]=et,et=o[2],o[2]=o[8],o[8]=et,et=o[6],o[6]=o[9],o[9]=et,et=o[3],o[3]=o[12],o[12]=et,et=o[7],o[7]=o[13],o[13]=et,et=o[11],o[11]=o[14],o[14]=et,this}setPosition(o,et,tt){const nt=this.elements;return o.isVector3?(nt[12]=o.x,nt[13]=o.y,nt[14]=o.z):(nt[12]=o,nt[13]=et,nt[14]=tt),this}invert(){const o=this.elements,et=o[0],tt=o[1],nt=o[2],rt=o[3],it=o[4],ot=o[5],st=o[6],at=o[7],lt=o[8],ut=o[9],dt=o[10],ht=o[11],ct=o[12],pt=o[13],ft=o[14],gt=o[15],yt=ut*ft*at-pt*dt*at+pt*st*ht-ot*ft*ht-ut*st*gt+ot*dt*gt,Ut=ct*dt*at-lt*ft*at-ct*st*ht+it*ft*ht+lt*st*gt-it*dt*gt,Ft=lt*pt*at-ct*ut*at+ct*ot*ht-it*pt*ht-lt*ot*gt+it*ut*gt,mt=ct*ut*st-lt*pt*st-ct*ot*dt+it*pt*dt+lt*ot*ft-it*ut*ft,vt=et*yt+tt*Ut+nt*Ft+rt*mt;if(vt===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const At=1/vt;return o[0]=yt*At,o[1]=(pt*dt*rt-ut*ft*rt-pt*nt*ht+tt*ft*ht+ut*nt*gt-tt*dt*gt)*At,o[2]=(ot*ft*rt-pt*st*rt+pt*nt*at-tt*ft*at-ot*nt*gt+tt*st*gt)*At,o[3]=(ut*st*rt-ot*dt*rt-ut*nt*at+tt*dt*at+ot*nt*ht-tt*st*ht)*At,o[4]=Ut*At,o[5]=(lt*ft*rt-ct*dt*rt+ct*nt*ht-et*ft*ht-lt*nt*gt+et*dt*gt)*At,o[6]=(ct*st*rt-it*ft*rt-ct*nt*at+et*ft*at+it*nt*gt-et*st*gt)*At,o[7]=(it*dt*rt-lt*st*rt+lt*nt*at-et*dt*at-it*nt*ht+et*st*ht)*At,o[8]=Ft*At,o[9]=(ct*ut*rt-lt*pt*rt-ct*tt*ht+et*pt*ht+lt*tt*gt-et*ut*gt)*At,o[10]=(it*pt*rt-ct*ot*rt+ct*tt*at-et*pt*at-it*tt*gt+et*ot*gt)*At,o[11]=(lt*ot*rt-it*ut*rt-lt*tt*at+et*ut*at+it*tt*ht-et*ot*ht)*At,o[12]=mt*At,o[13]=(lt*pt*nt-ct*ut*nt+ct*tt*dt-et*pt*dt-lt*tt*ft+et*ut*ft)*At,o[14]=(ct*ot*nt-it*pt*nt-ct*tt*st+et*pt*st+it*tt*ft-et*ot*ft)*At,o[15]=(it*ut*nt-lt*ot*nt+lt*tt*st-et*ut*st-it*tt*dt+et*ot*dt)*At,this}scale(o){const et=this.elements,tt=o.x,nt=o.y,rt=o.z;return et[0]*=tt,et[4]*=nt,et[8]*=rt,et[1]*=tt,et[5]*=nt,et[9]*=rt,et[2]*=tt,et[6]*=nt,et[10]*=rt,et[3]*=tt,et[7]*=nt,et[11]*=rt,this}getMaxScaleOnAxis(){const o=this.elements,et=o[0]*o[0]+o[1]*o[1]+o[2]*o[2],tt=o[4]*o[4]+o[5]*o[5]+o[6]*o[6],nt=o[8]*o[8]+o[9]*o[9]+o[10]*o[10];return Math.sqrt(Math.max(et,tt,nt))}makeTranslation(o,et,tt){return o.isVector3?this.set(1,0,0,o.x,0,1,0,o.y,0,0,1,o.z,0,0,0,1):this.set(1,0,0,o,0,1,0,et,0,0,1,tt,0,0,0,1),this}makeRotationX(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(1,0,0,0,0,et,-tt,0,0,tt,et,0,0,0,0,1),this}makeRotationY(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(et,0,tt,0,0,1,0,0,-tt,0,et,0,0,0,0,1),this}makeRotationZ(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(et,-tt,0,0,tt,et,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(o,et){const tt=Math.cos(et),nt=Math.sin(et),rt=1-tt,it=o.x,ot=o.y,st=o.z,at=rt*it,lt=rt*ot;return this.set(at*it+tt,at*ot-nt*st,at*st+nt*ot,0,at*ot+nt*st,lt*ot+tt,lt*st-nt*it,0,at*st-nt*ot,lt*st+nt*it,rt*st*st+tt,0,0,0,0,1),this}makeScale(o,et,tt){return this.set(o,0,0,0,0,et,0,0,0,0,tt,0,0,0,0,1),this}makeShear(o,et,tt,nt,rt,it){return this.set(1,tt,rt,0,o,1,it,0,et,nt,1,0,0,0,0,1),this}compose(o,et,tt){const nt=this.elements,rt=et._x,it=et._y,ot=et._z,st=et._w,at=rt+rt,lt=it+it,ut=ot+ot,dt=rt*at,ht=rt*lt,ct=rt*ut,pt=it*lt,ft=it*ut,gt=ot*ut,yt=st*at,Ut=st*lt,Ft=st*ut,mt=tt.x,vt=tt.y,At=tt.z;return nt[0]=(1-(pt+gt))*mt,nt[1]=(ht+Ft)*mt,nt[2]=(ct-Ut)*mt,nt[3]=0,nt[4]=(ht-Ft)*vt,nt[5]=(1-(dt+gt))*vt,nt[6]=(ft+yt)*vt,nt[7]=0,nt[8]=(ct+Ut)*At,nt[9]=(ft-yt)*At,nt[10]=(1-(dt+pt))*At,nt[11]=0,nt[12]=o.x,nt[13]=o.y,nt[14]=o.z,nt[15]=1,this}decompose(o,et,tt){const nt=this.elements;let rt=_v1$5.set(nt[0],nt[1],nt[2]).length();const it=_v1$5.set(nt[4],nt[5],nt[6]).length(),ot=_v1$5.set(nt[8],nt[9],nt[10]).length();this.determinant()<0&&(rt=-rt),o.x=nt[12],o.y=nt[13],o.z=nt[14],_m1$4.copy(this);const at=1/rt,lt=1/it,ut=1/ot;return _m1$4.elements[0]*=at,_m1$4.elements[1]*=at,_m1$4.elements[2]*=at,_m1$4.elements[4]*=lt,_m1$4.elements[5]*=lt,_m1$4.elements[6]*=lt,_m1$4.elements[8]*=ut,_m1$4.elements[9]*=ut,_m1$4.elements[10]*=ut,et.setFromRotationMatrix(_m1$4),tt.x=rt,tt.y=it,tt.z=ot,this}makePerspective(o,et,tt,nt,rt,it,ot=WebGLCoordinateSystem){const st=this.elements,at=2*rt/(et-o),lt=2*rt/(tt-nt),ut=(et+o)/(et-o),dt=(tt+nt)/(tt-nt);let ht,ct;if(ot===WebGLCoordinateSystem)ht=-(it+rt)/(it-rt),ct=-2*it*rt/(it-rt);else if(ot===WebGPUCoordinateSystem)ht=-it/(it-rt),ct=-it*rt/(it-rt);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+ot);return st[0]=at,st[4]=0,st[8]=ut,st[12]=0,st[1]=0,st[5]=lt,st[9]=dt,st[13]=0,st[2]=0,st[6]=0,st[10]=ht,st[14]=ct,st[3]=0,st[7]=0,st[11]=-1,st[15]=0,this}makeOrthographic(o,et,tt,nt,rt,it,ot=WebGLCoordinateSystem){const st=this.elements,at=1/(et-o),lt=1/(tt-nt),ut=1/(it-rt),dt=(et+o)*at,ht=(tt+nt)*lt;let ct,pt;if(ot===WebGLCoordinateSystem)ct=(it+rt)*ut,pt=-2*ut;else if(ot===WebGPUCoordinateSystem)ct=rt*ut,pt=-1*ut;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+ot);return st[0]=2*at,st[4]=0,st[8]=0,st[12]=-dt,st[1]=0,st[5]=2*lt,st[9]=0,st[13]=-ht,st[2]=0,st[6]=0,st[10]=pt,st[14]=-ct,st[3]=0,st[7]=0,st[11]=0,st[15]=1,this}equals(o){const et=this.elements,tt=o.elements;for(let nt=0;nt<16;nt++)if(et[nt]!==tt[nt])return!1;return!0}fromArray(o,et=0){for(let tt=0;tt<16;tt++)this.elements[tt]=o[tt+et];return this}toArray(o=[],et=0){const tt=this.elements;return o[et]=tt[0],o[et+1]=tt[1],o[et+2]=tt[2],o[et+3]=tt[3],o[et+4]=tt[4],o[et+5]=tt[5],o[et+6]=tt[6],o[et+7]=tt[7],o[et+8]=tt[8],o[et+9]=tt[9],o[et+10]=tt[10],o[et+11]=tt[11],o[et+12]=tt[12],o[et+13]=tt[13],o[et+14]=tt[14],o[et+15]=tt[15],o}}const _v1$5=new Vector3,_m1$4=new Matrix4,_zero=new Vector3(0,0,0),_one=new Vector3(1,1,1),_x=new Vector3,_y=new Vector3,_z=new Vector3,_matrix$2=new Matrix4,_quaternion$3=new Quaternion;class Euler{constructor(o=0,et=0,tt=0,nt=Euler.DEFAULT_ORDER){this.isEuler=!0,this._x=o,this._y=et,this._z=tt,this._order=nt}get x(){return this._x}set x(o){this._x=o,this._onChangeCallback()}get y(){return this._y}set y(o){this._y=o,this._onChangeCallback()}get z(){return this._z}set z(o){this._z=o,this._onChangeCallback()}get order(){return this._order}set order(o){this._order=o,this._onChangeCallback()}set(o,et,tt,nt=this._order){return this._x=o,this._y=et,this._z=tt,this._order=nt,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(o){return this._x=o._x,this._y=o._y,this._z=o._z,this._order=o._order,this._onChangeCallback(),this}setFromRotationMatrix(o,et=this._order,tt=!0){const nt=o.elements,rt=nt[0],it=nt[4],ot=nt[8],st=nt[1],at=nt[5],lt=nt[9],ut=nt[2],dt=nt[6],ht=nt[10];switch(et){case"XYZ":this._y=Math.asin(clamp$4(ot,-1,1)),Math.abs(ot)<.9999999?(this._x=Math.atan2(-lt,ht),this._z=Math.atan2(-it,rt)):(this._x=Math.atan2(dt,at),this._z=0);break;case"YXZ":this._x=Math.asin(-clamp$4(lt,-1,1)),Math.abs(lt)<.9999999?(this._y=Math.atan2(ot,ht),this._z=Math.atan2(st,at)):(this._y=Math.atan2(-ut,rt),this._z=0);break;case"ZXY":this._x=Math.asin(clamp$4(dt,-1,1)),Math.abs(dt)<.9999999?(this._y=Math.atan2(-ut,ht),this._z=Math.atan2(-it,at)):(this._y=0,this._z=Math.atan2(st,rt));break;case"ZYX":this._y=Math.asin(-clamp$4(ut,-1,1)),Math.abs(ut)<.9999999?(this._x=Math.atan2(dt,ht),this._z=Math.atan2(st,rt)):(this._x=0,this._z=Math.atan2(-it,at));break;case"YZX":this._z=Math.asin(clamp$4(st,-1,1)),Math.abs(st)<.9999999?(this._x=Math.atan2(-lt,at),this._y=Math.atan2(-ut,rt)):(this._x=0,this._y=Math.atan2(ot,ht));break;case"XZY":this._z=Math.asin(-clamp$4(it,-1,1)),Math.abs(it)<.9999999?(this._x=Math.atan2(dt,at),this._y=Math.atan2(ot,rt)):(this._x=Math.atan2(-lt,ht),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+et)}return this._order=et,tt===!0&&this._onChangeCallback(),this}setFromQuaternion(o,et,tt){return _matrix$2.makeRotationFromQuaternion(o),this.setFromRotationMatrix(_matrix$2,et,tt)}setFromVector3(o,et=this._order){return this.set(o.x,o.y,o.z,et)}reorder(o){return _quaternion$3.setFromEuler(this),this.setFromQuaternion(_quaternion$3,o)}equals(o){return o._x===this._x&&o._y===this._y&&o._z===this._z&&o._order===this._order}fromArray(o){return this._x=o[0],this._y=o[1],this._z=o[2],o[3]!==void 0&&(this._order=o[3]),this._onChangeCallback(),this}toArray(o=[],et=0){return o[et]=this._x,o[et+1]=this._y,o[et+2]=this._z,o[et+3]=this._order,o}_onChange(o){return this._onChangeCallback=o,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Euler.DEFAULT_ORDER="XYZ";class Layers{constructor(){this.mask=1}set(o){this.mask=(1<>>0}enable(o){this.mask|=1<1){for(let et=0;et1){for(let tt=0;tt0&&(nt.userData=this.userData),nt.layers=this.layers.mask,nt.matrix=this.matrix.toArray(),nt.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(nt.matrixAutoUpdate=!1),this.isInstancedMesh&&(nt.type="InstancedMesh",nt.count=this.count,nt.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(nt.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(nt.type="BatchedMesh",nt.perObjectFrustumCulled=this.perObjectFrustumCulled,nt.sortObjects=this.sortObjects,nt.drawRanges=this._drawRanges,nt.reservedRanges=this._reservedRanges,nt.visibility=this._visibility,nt.active=this._active,nt.bounds=this._bounds.map(ot=>({boxInitialized:ot.boxInitialized,boxMin:ot.box.min.toArray(),boxMax:ot.box.max.toArray(),sphereInitialized:ot.sphereInitialized,sphereRadius:ot.sphere.radius,sphereCenter:ot.sphere.center.toArray()})),nt.maxGeometryCount=this._maxGeometryCount,nt.maxVertexCount=this._maxVertexCount,nt.maxIndexCount=this._maxIndexCount,nt.geometryInitialized=this._geometryInitialized,nt.geometryCount=this._geometryCount,nt.matricesTexture=this._matricesTexture.toJSON(o),this._colorsTexture!==null&&(nt.colorsTexture=this._colorsTexture.toJSON(o)),this.boundingSphere!==null&&(nt.boundingSphere={center:nt.boundingSphere.center.toArray(),radius:nt.boundingSphere.radius}),this.boundingBox!==null&&(nt.boundingBox={min:nt.boundingBox.min.toArray(),max:nt.boundingBox.max.toArray()}));function rt(ot,st){return ot[st.uuid]===void 0&&(ot[st.uuid]=st.toJSON(o)),st.uuid}if(this.isScene)this.background&&(this.background.isColor?nt.background=this.background.toJSON():this.background.isTexture&&(nt.background=this.background.toJSON(o).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(nt.environment=this.environment.toJSON(o).uuid);else if(this.isMesh||this.isLine||this.isPoints){nt.geometry=rt(o.geometries,this.geometry);const ot=this.geometry.parameters;if(ot!==void 0&&ot.shapes!==void 0){const st=ot.shapes;if(Array.isArray(st))for(let at=0,lt=st.length;at0){nt.children=[];for(let ot=0;ot0){nt.animations=[];for(let ot=0;ot0&&(tt.geometries=ot),st.length>0&&(tt.materials=st),at.length>0&&(tt.textures=at),lt.length>0&&(tt.images=lt),ut.length>0&&(tt.shapes=ut),dt.length>0&&(tt.skeletons=dt),ht.length>0&&(tt.animations=ht),ct.length>0&&(tt.nodes=ct)}return tt.object=nt,tt;function it(ot){const st=[];for(const at in ot){const lt=ot[at];delete lt.metadata,st.push(lt)}return st}}clone(o){return new this.constructor().copy(this,o)}copy(o,et=!0){if(this.name=o.name,this.up.copy(o.up),this.position.copy(o.position),this.rotation.order=o.rotation.order,this.quaternion.copy(o.quaternion),this.scale.copy(o.scale),this.matrix.copy(o.matrix),this.matrixWorld.copy(o.matrixWorld),this.matrixAutoUpdate=o.matrixAutoUpdate,this.matrixWorldAutoUpdate=o.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=o.matrixWorldNeedsUpdate,this.layers.mask=o.layers.mask,this.visible=o.visible,this.castShadow=o.castShadow,this.receiveShadow=o.receiveShadow,this.frustumCulled=o.frustumCulled,this.renderOrder=o.renderOrder,this.animations=o.animations.slice(),this.userData=JSON.parse(JSON.stringify(o.userData)),et===!0)for(let tt=0;tt0?nt.multiplyScalar(1/Math.sqrt(rt)):nt.set(0,0,0)}static getBarycoord(o,et,tt,nt,rt){_v0$1.subVectors(nt,et),_v1$3.subVectors(tt,et),_v2$2.subVectors(o,et);const it=_v0$1.dot(_v0$1),ot=_v0$1.dot(_v1$3),st=_v0$1.dot(_v2$2),at=_v1$3.dot(_v1$3),lt=_v1$3.dot(_v2$2),ut=it*at-ot*ot;if(ut===0)return rt.set(0,0,0),null;const dt=1/ut,ht=(at*st-ot*lt)*dt,ct=(it*lt-ot*st)*dt;return rt.set(1-ht-ct,ct,ht)}static containsPoint(o,et,tt,nt){return this.getBarycoord(o,et,tt,nt,_v3$2)===null?!1:_v3$2.x>=0&&_v3$2.y>=0&&_v3$2.x+_v3$2.y<=1}static getInterpolation(o,et,tt,nt,rt,it,ot,st){return this.getBarycoord(o,et,tt,nt,_v3$2)===null?(st.x=0,st.y=0,"z"in st&&(st.z=0),"w"in st&&(st.w=0),null):(st.setScalar(0),st.addScaledVector(rt,_v3$2.x),st.addScaledVector(it,_v3$2.y),st.addScaledVector(ot,_v3$2.z),st)}static isFrontFacing(o,et,tt,nt){return _v0$1.subVectors(tt,et),_v1$3.subVectors(o,et),_v0$1.cross(_v1$3).dot(nt)<0}set(o,et,tt){return this.a.copy(o),this.b.copy(et),this.c.copy(tt),this}setFromPointsAndIndices(o,et,tt,nt){return this.a.copy(o[et]),this.b.copy(o[tt]),this.c.copy(o[nt]),this}setFromAttributeAndIndices(o,et,tt,nt){return this.a.fromBufferAttribute(o,et),this.b.fromBufferAttribute(o,tt),this.c.fromBufferAttribute(o,nt),this}clone(){return new this.constructor().copy(this)}copy(o){return this.a.copy(o.a),this.b.copy(o.b),this.c.copy(o.c),this}getArea(){return _v0$1.subVectors(this.c,this.b),_v1$3.subVectors(this.a,this.b),_v0$1.cross(_v1$3).length()*.5}getMidpoint(o){return o.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(o){return Triangle.getNormal(this.a,this.b,this.c,o)}getPlane(o){return o.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(o,et){return Triangle.getBarycoord(o,this.a,this.b,this.c,et)}getInterpolation(o,et,tt,nt,rt){return Triangle.getInterpolation(o,this.a,this.b,this.c,et,tt,nt,rt)}containsPoint(o){return Triangle.containsPoint(o,this.a,this.b,this.c)}isFrontFacing(o){return Triangle.isFrontFacing(this.a,this.b,this.c,o)}intersectsBox(o){return o.intersectsTriangle(this)}closestPointToPoint(o,et){const tt=this.a,nt=this.b,rt=this.c;let it,ot;_vab.subVectors(nt,tt),_vac.subVectors(rt,tt),_vap.subVectors(o,tt);const st=_vab.dot(_vap),at=_vac.dot(_vap);if(st<=0&&at<=0)return et.copy(tt);_vbp.subVectors(o,nt);const lt=_vab.dot(_vbp),ut=_vac.dot(_vbp);if(lt>=0&&ut<=lt)return et.copy(nt);const dt=st*ut-lt*at;if(dt<=0&&st>=0&<<=0)return it=st/(st-lt),et.copy(tt).addScaledVector(_vab,it);_vcp.subVectors(o,rt);const ht=_vab.dot(_vcp),ct=_vac.dot(_vcp);if(ct>=0&&ht<=ct)return et.copy(rt);const pt=ht*at-st*ct;if(pt<=0&&at>=0&&ct<=0)return ot=at/(at-ct),et.copy(tt).addScaledVector(_vac,ot);const ft=lt*ct-ht*ut;if(ft<=0&&ut-lt>=0&&ht-ct>=0)return _vbc.subVectors(rt,nt),ot=(ut-lt)/(ut-lt+(ht-ct)),et.copy(nt).addScaledVector(_vbc,ot);const gt=1/(ft+pt+dt);return it=pt*gt,ot=dt*gt,et.copy(tt).addScaledVector(_vab,it).addScaledVector(_vac,ot)}equals(o){return o.a.equals(this.a)&&o.b.equals(this.b)&&o.c.equals(this.c)}}const _colorKeywords={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},_hslA={h:0,s:0,l:0},_hslB={h:0,s:0,l:0};function hue2rgb(s,o,et){return et<0&&(et+=1),et>1&&(et-=1),et<1/6?s+(o-s)*6*et:et<1/2?o:et<2/3?s+(o-s)*6*(2/3-et):s}let Color$2=class{constructor(o,et,tt){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(o,et,tt)}set(o,et,tt){if(et===void 0&&tt===void 0){const nt=o;nt&&nt.isColor?this.copy(nt):typeof nt=="number"?this.setHex(nt):typeof nt=="string"&&this.setStyle(nt)}else this.setRGB(o,et,tt);return this}setScalar(o){return this.r=o,this.g=o,this.b=o,this}setHex(o,et=SRGBColorSpace$1){return o=Math.floor(o),this.r=(o>>16&255)/255,this.g=(o>>8&255)/255,this.b=(o&255)/255,ColorManagement.toWorkingColorSpace(this,et),this}setRGB(o,et,tt,nt=ColorManagement.workingColorSpace){return this.r=o,this.g=et,this.b=tt,ColorManagement.toWorkingColorSpace(this,nt),this}setHSL(o,et,tt,nt=ColorManagement.workingColorSpace){if(o=euclideanModulo(o,1),et=clamp$4(et,0,1),tt=clamp$4(tt,0,1),et===0)this.r=this.g=this.b=tt;else{const rt=tt<=.5?tt*(1+et):tt+et-tt*et,it=2*tt-rt;this.r=hue2rgb(it,rt,o+1/3),this.g=hue2rgb(it,rt,o),this.b=hue2rgb(it,rt,o-1/3)}return ColorManagement.toWorkingColorSpace(this,nt),this}setStyle(o,et=SRGBColorSpace$1){function tt(rt){rt!==void 0&&parseFloat(rt)<1&&console.warn("THREE.Color: Alpha component of "+o+" will be ignored.")}let nt;if(nt=/^(\w+)\(([^\)]*)\)/.exec(o)){let rt;const it=nt[1],ot=nt[2];switch(it){case"rgb":case"rgba":if(rt=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ot))return tt(rt[4]),this.setRGB(Math.min(255,parseInt(rt[1],10))/255,Math.min(255,parseInt(rt[2],10))/255,Math.min(255,parseInt(rt[3],10))/255,et);if(rt=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ot))return tt(rt[4]),this.setRGB(Math.min(100,parseInt(rt[1],10))/100,Math.min(100,parseInt(rt[2],10))/100,Math.min(100,parseInt(rt[3],10))/100,et);break;case"hsl":case"hsla":if(rt=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ot))return tt(rt[4]),this.setHSL(parseFloat(rt[1])/360,parseFloat(rt[2])/100,parseFloat(rt[3])/100,et);break;default:console.warn("THREE.Color: Unknown color model "+o)}}else if(nt=/^\#([A-Fa-f\d]+)$/.exec(o)){const rt=nt[1],it=rt.length;if(it===3)return this.setRGB(parseInt(rt.charAt(0),16)/15,parseInt(rt.charAt(1),16)/15,parseInt(rt.charAt(2),16)/15,et);if(it===6)return this.setHex(parseInt(rt,16),et);console.warn("THREE.Color: Invalid hex color "+o)}else if(o&&o.length>0)return this.setColorName(o,et);return this}setColorName(o,et=SRGBColorSpace$1){const tt=_colorKeywords[o.toLowerCase()];return tt!==void 0?this.setHex(tt,et):console.warn("THREE.Color: Unknown color "+o),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(o){return this.r=o.r,this.g=o.g,this.b=o.b,this}copySRGBToLinear(o){return this.r=SRGBToLinear(o.r),this.g=SRGBToLinear(o.g),this.b=SRGBToLinear(o.b),this}copyLinearToSRGB(o){return this.r=LinearToSRGB(o.r),this.g=LinearToSRGB(o.g),this.b=LinearToSRGB(o.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(o=SRGBColorSpace$1){return ColorManagement.fromWorkingColorSpace(_color.copy(this),o),Math.round(clamp$4(_color.r*255,0,255))*65536+Math.round(clamp$4(_color.g*255,0,255))*256+Math.round(clamp$4(_color.b*255,0,255))}getHexString(o=SRGBColorSpace$1){return("000000"+this.getHex(o).toString(16)).slice(-6)}getHSL(o,et=ColorManagement.workingColorSpace){ColorManagement.fromWorkingColorSpace(_color.copy(this),et);const tt=_color.r,nt=_color.g,rt=_color.b,it=Math.max(tt,nt,rt),ot=Math.min(tt,nt,rt);let st,at;const lt=(ot+it)/2;if(ot===it)st=0,at=0;else{const ut=it-ot;switch(at=lt<=.5?ut/(it+ot):ut/(2-it-ot),it){case tt:st=(nt-rt)/ut+(nt0!=o>0&&this.version++,this._alphaTest=o}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(o){if(o!==void 0)for(const et in o){const tt=o[et];if(tt===void 0){console.warn(`THREE.Material: parameter '${et}' has value of undefined.`);continue}const nt=this[et];if(nt===void 0){console.warn(`THREE.Material: '${et}' is not a property of THREE.${this.type}.`);continue}nt&&nt.isColor?nt.set(tt):nt&&nt.isVector3&&tt&&tt.isVector3?nt.copy(tt):this[et]=tt}}toJSON(o){const et=o===void 0||typeof o=="string";et&&(o={textures:{},images:{}});const tt={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};tt.uuid=this.uuid,tt.type=this.type,this.name!==""&&(tt.name=this.name),this.color&&this.color.isColor&&(tt.color=this.color.getHex()),this.roughness!==void 0&&(tt.roughness=this.roughness),this.metalness!==void 0&&(tt.metalness=this.metalness),this.sheen!==void 0&&(tt.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(tt.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(tt.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(tt.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(tt.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(tt.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(tt.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(tt.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(tt.shininess=this.shininess),this.clearcoat!==void 0&&(tt.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(tt.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(tt.clearcoatMap=this.clearcoatMap.toJSON(o).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(tt.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(o).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(tt.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(o).uuid,tt.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.dispersion!==void 0&&(tt.dispersion=this.dispersion),this.iridescence!==void 0&&(tt.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(tt.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(tt.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(tt.iridescenceMap=this.iridescenceMap.toJSON(o).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(tt.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(o).uuid),this.anisotropy!==void 0&&(tt.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(tt.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(tt.anisotropyMap=this.anisotropyMap.toJSON(o).uuid),this.map&&this.map.isTexture&&(tt.map=this.map.toJSON(o).uuid),this.matcap&&this.matcap.isTexture&&(tt.matcap=this.matcap.toJSON(o).uuid),this.alphaMap&&this.alphaMap.isTexture&&(tt.alphaMap=this.alphaMap.toJSON(o).uuid),this.lightMap&&this.lightMap.isTexture&&(tt.lightMap=this.lightMap.toJSON(o).uuid,tt.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(tt.aoMap=this.aoMap.toJSON(o).uuid,tt.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(tt.bumpMap=this.bumpMap.toJSON(o).uuid,tt.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(tt.normalMap=this.normalMap.toJSON(o).uuid,tt.normalMapType=this.normalMapType,tt.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(tt.displacementMap=this.displacementMap.toJSON(o).uuid,tt.displacementScale=this.displacementScale,tt.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(tt.roughnessMap=this.roughnessMap.toJSON(o).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(tt.metalnessMap=this.metalnessMap.toJSON(o).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(tt.emissiveMap=this.emissiveMap.toJSON(o).uuid),this.specularMap&&this.specularMap.isTexture&&(tt.specularMap=this.specularMap.toJSON(o).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(tt.specularIntensityMap=this.specularIntensityMap.toJSON(o).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(tt.specularColorMap=this.specularColorMap.toJSON(o).uuid),this.envMap&&this.envMap.isTexture&&(tt.envMap=this.envMap.toJSON(o).uuid,this.combine!==void 0&&(tt.combine=this.combine)),this.envMapRotation!==void 0&&(tt.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(tt.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(tt.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(tt.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(tt.gradientMap=this.gradientMap.toJSON(o).uuid),this.transmission!==void 0&&(tt.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(tt.transmissionMap=this.transmissionMap.toJSON(o).uuid),this.thickness!==void 0&&(tt.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(tt.thicknessMap=this.thicknessMap.toJSON(o).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(tt.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(tt.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(tt.size=this.size),this.shadowSide!==null&&(tt.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(tt.sizeAttenuation=this.sizeAttenuation),this.blending!==NormalBlending&&(tt.blending=this.blending),this.side!==FrontSide&&(tt.side=this.side),this.vertexColors===!0&&(tt.vertexColors=!0),this.opacity<1&&(tt.opacity=this.opacity),this.transparent===!0&&(tt.transparent=!0),this.blendSrc!==SrcAlphaFactor&&(tt.blendSrc=this.blendSrc),this.blendDst!==OneMinusSrcAlphaFactor&&(tt.blendDst=this.blendDst),this.blendEquation!==AddEquation&&(tt.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(tt.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(tt.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(tt.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(tt.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(tt.blendAlpha=this.blendAlpha),this.depthFunc!==LessEqualDepth&&(tt.depthFunc=this.depthFunc),this.depthTest===!1&&(tt.depthTest=this.depthTest),this.depthWrite===!1&&(tt.depthWrite=this.depthWrite),this.colorWrite===!1&&(tt.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(tt.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==AlwaysStencilFunc&&(tt.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(tt.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(tt.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==KeepStencilOp&&(tt.stencilFail=this.stencilFail),this.stencilZFail!==KeepStencilOp&&(tt.stencilZFail=this.stencilZFail),this.stencilZPass!==KeepStencilOp&&(tt.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(tt.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(tt.rotation=this.rotation),this.polygonOffset===!0&&(tt.polygonOffset=!0),this.polygonOffsetFactor!==0&&(tt.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(tt.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(tt.linewidth=this.linewidth),this.dashSize!==void 0&&(tt.dashSize=this.dashSize),this.gapSize!==void 0&&(tt.gapSize=this.gapSize),this.scale!==void 0&&(tt.scale=this.scale),this.dithering===!0&&(tt.dithering=!0),this.alphaTest>0&&(tt.alphaTest=this.alphaTest),this.alphaHash===!0&&(tt.alphaHash=!0),this.alphaToCoverage===!0&&(tt.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(tt.premultipliedAlpha=!0),this.forceSinglePass===!0&&(tt.forceSinglePass=!0),this.wireframe===!0&&(tt.wireframe=!0),this.wireframeLinewidth>1&&(tt.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(tt.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(tt.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(tt.flatShading=!0),this.visible===!1&&(tt.visible=!1),this.toneMapped===!1&&(tt.toneMapped=!1),this.fog===!1&&(tt.fog=!1),Object.keys(this.userData).length>0&&(tt.userData=this.userData);function nt(rt){const it=[];for(const ot in rt){const st=rt[ot];delete st.metadata,it.push(st)}return it}if(et){const rt=nt(o.textures),it=nt(o.images);rt.length>0&&(tt.textures=rt),it.length>0&&(tt.images=it)}return tt}clone(){return new this.constructor().copy(this)}copy(o){this.name=o.name,this.blending=o.blending,this.side=o.side,this.vertexColors=o.vertexColors,this.opacity=o.opacity,this.transparent=o.transparent,this.blendSrc=o.blendSrc,this.blendDst=o.blendDst,this.blendEquation=o.blendEquation,this.blendSrcAlpha=o.blendSrcAlpha,this.blendDstAlpha=o.blendDstAlpha,this.blendEquationAlpha=o.blendEquationAlpha,this.blendColor.copy(o.blendColor),this.blendAlpha=o.blendAlpha,this.depthFunc=o.depthFunc,this.depthTest=o.depthTest,this.depthWrite=o.depthWrite,this.stencilWriteMask=o.stencilWriteMask,this.stencilFunc=o.stencilFunc,this.stencilRef=o.stencilRef,this.stencilFuncMask=o.stencilFuncMask,this.stencilFail=o.stencilFail,this.stencilZFail=o.stencilZFail,this.stencilZPass=o.stencilZPass,this.stencilWrite=o.stencilWrite;const et=o.clippingPlanes;let tt=null;if(et!==null){const nt=et.length;tt=new Array(nt);for(let rt=0;rt!==nt;++rt)tt[rt]=et[rt].clone()}return this.clippingPlanes=tt,this.clipIntersection=o.clipIntersection,this.clipShadows=o.clipShadows,this.shadowSide=o.shadowSide,this.colorWrite=o.colorWrite,this.precision=o.precision,this.polygonOffset=o.polygonOffset,this.polygonOffsetFactor=o.polygonOffsetFactor,this.polygonOffsetUnits=o.polygonOffsetUnits,this.dithering=o.dithering,this.alphaTest=o.alphaTest,this.alphaHash=o.alphaHash,this.alphaToCoverage=o.alphaToCoverage,this.premultipliedAlpha=o.premultipliedAlpha,this.forceSinglePass=o.forceSinglePass,this.visible=o.visible,this.toneMapped=o.toneMapped,this.userData=JSON.parse(JSON.stringify(o.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(o){o===!0&&this.version++}}class MeshBasicMaterial extends Material{constructor(o){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Color$2(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.map=o.map,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.specularMap=o.specularMap,this.alphaMap=o.alphaMap,this.envMap=o.envMap,this.envMapRotation.copy(o.envMapRotation),this.combine=o.combine,this.reflectivity=o.reflectivity,this.refractionRatio=o.refractionRatio,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.fog=o.fog,this}}const _tables=_generateTables();function _generateTables(){const s=new ArrayBuffer(4),o=new Float32Array(s),et=new Uint32Array(s),tt=new Uint32Array(512),nt=new Uint32Array(512);for(let st=0;st<256;++st){const at=st-127;at<-27?(tt[st]=0,tt[st|256]=32768,nt[st]=24,nt[st|256]=24):at<-14?(tt[st]=1024>>-at-14,tt[st|256]=1024>>-at-14|32768,nt[st]=-at-1,nt[st|256]=-at-1):at<=15?(tt[st]=at+15<<10,tt[st|256]=at+15<<10|32768,nt[st]=13,nt[st|256]=13):at<128?(tt[st]=31744,tt[st|256]=64512,nt[st]=24,nt[st|256]=24):(tt[st]=31744,tt[st|256]=64512,nt[st]=13,nt[st|256]=13)}const rt=new Uint32Array(2048),it=new Uint32Array(64),ot=new Uint32Array(64);for(let st=1;st<1024;++st){let at=st<<13,lt=0;for(;!(at&8388608);)at<<=1,lt-=8388608;at&=-8388609,lt+=947912704,rt[st]=at|lt}for(let st=1024;st<2048;++st)rt[st]=939524096+(st-1024<<13);for(let st=1;st<31;++st)it[st]=st<<23;it[31]=1199570944,it[32]=2147483648;for(let st=33;st<63;++st)it[st]=2147483648+(st-32<<23);it[63]=3347054592;for(let st=1;st<64;++st)st!==32&&(ot[st]=1024);return{floatView:o,uint32View:et,baseTable:tt,shiftTable:nt,mantissaTable:rt,exponentTable:it,offsetTable:ot}}function toHalfFloat(s){Math.abs(s)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),s=clamp$4(s,-65504,65504),_tables.floatView[0]=s;const o=_tables.uint32View[0],et=o>>23&511;return _tables.baseTable[et]+((o&8388607)>>_tables.shiftTable[et])}function fromHalfFloat(s){const o=s>>10;return _tables.uint32View[0]=_tables.mantissaTable[_tables.offsetTable[o]+(s&1023)]+_tables.exponentTable[o],_tables.floatView[0]}const DataUtils={toHalfFloat,fromHalfFloat},_vector$9=new Vector3,_vector2$1=new Vector2;class BufferAttribute{constructor(o,et,tt=!1){if(Array.isArray(o))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=o,this.itemSize=et,this.count=o!==void 0?o.length/et:0,this.normalized=tt,this.usage=StaticDrawUsage,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=FloatType,this.version=0}onUploadCallback(){}set needsUpdate(o){o===!0&&this.version++}get updateRange(){return warnOnce("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(o){return this.usage=o,this}addUpdateRange(o,et){this.updateRanges.push({start:o,count:et})}clearUpdateRanges(){this.updateRanges.length=0}copy(o){return this.name=o.name,this.array=new o.array.constructor(o.array),this.itemSize=o.itemSize,this.count=o.count,this.normalized=o.normalized,this.usage=o.usage,this.gpuType=o.gpuType,this}copyAt(o,et,tt){o*=this.itemSize,tt*=et.itemSize;for(let nt=0,rt=this.itemSize;nt0&&(o.userData=this.userData),this.parameters!==void 0){const st=this.parameters;for(const at in st)st[at]!==void 0&&(o[at]=st[at]);return o}o.data={attributes:{}};const et=this.index;et!==null&&(o.data.index={type:et.array.constructor.name,array:Array.prototype.slice.call(et.array)});const tt=this.attributes;for(const st in tt){const at=tt[st];o.data.attributes[st]=at.toJSON(o.data)}const nt={};let rt=!1;for(const st in this.morphAttributes){const at=this.morphAttributes[st],lt=[];for(let ut=0,dt=at.length;ut0&&(nt[st]=lt,rt=!0)}rt&&(o.data.morphAttributes=nt,o.data.morphTargetsRelative=this.morphTargetsRelative);const it=this.groups;it.length>0&&(o.data.groups=JSON.parse(JSON.stringify(it)));const ot=this.boundingSphere;return ot!==null&&(o.data.boundingSphere={center:ot.center.toArray(),radius:ot.radius}),o}clone(){return new this.constructor().copy(this)}copy(o){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const et={};this.name=o.name;const tt=o.index;tt!==null&&this.setIndex(tt.clone(et));const nt=o.attributes;for(const at in nt){const lt=nt[at];this.setAttribute(at,lt.clone(et))}const rt=o.morphAttributes;for(const at in rt){const lt=[],ut=rt[at];for(let dt=0,ht=ut.length;dt0){const nt=et[tt[0]];if(nt!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let rt=0,it=nt.length;rt(o.far-o.near)**2))&&(_inverseMatrix$3.copy(rt).invert(),_ray$3.copy(o.ray).applyMatrix4(_inverseMatrix$3),!(tt.boundingBox!==null&&_ray$3.intersectsBox(tt.boundingBox)===!1)&&this._computeIntersections(o,et,_ray$3)))}_computeIntersections(o,et,tt){let nt;const rt=this.geometry,it=this.material,ot=rt.index,st=rt.attributes.position,at=rt.attributes.uv,lt=rt.attributes.uv1,ut=rt.attributes.normal,dt=rt.groups,ht=rt.drawRange;if(ot!==null)if(Array.isArray(it))for(let ct=0,pt=dt.length;ctet.far?null:{distance:at,point:_intersectionPointWorld.clone(),object:s}}function checkGeometryIntersection(s,o,et,tt,nt,rt,it,ot,st,at){s.getVertexPosition(ot,_vA$1),s.getVertexPosition(st,_vB$1),s.getVertexPosition(at,_vC$1);const lt=checkIntersection$1(s,o,et,tt,_vA$1,_vB$1,_vC$1,_intersectionPoint);if(lt){nt&&(_uvA$1.fromBufferAttribute(nt,ot),_uvB$1.fromBufferAttribute(nt,st),_uvC$1.fromBufferAttribute(nt,at),lt.uv=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_uvA$1,_uvB$1,_uvC$1,new Vector2)),rt&&(_uvA$1.fromBufferAttribute(rt,ot),_uvB$1.fromBufferAttribute(rt,st),_uvC$1.fromBufferAttribute(rt,at),lt.uv1=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_uvA$1,_uvB$1,_uvC$1,new Vector2)),it&&(_normalA.fromBufferAttribute(it,ot),_normalB.fromBufferAttribute(it,st),_normalC.fromBufferAttribute(it,at),lt.normal=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_normalA,_normalB,_normalC,new Vector3),lt.normal.dot(tt.direction)>0&<.normal.multiplyScalar(-1));const ut={a:ot,b:st,c:at,normal:new Vector3,materialIndex:0};Triangle.getNormal(_vA$1,_vB$1,_vC$1,ut.normal),lt.face=ut}return lt}class BoxGeometry extends BufferGeometry{constructor(o=1,et=1,tt=1,nt=1,rt=1,it=1){super(),this.type="BoxGeometry",this.parameters={width:o,height:et,depth:tt,widthSegments:nt,heightSegments:rt,depthSegments:it};const ot=this;nt=Math.floor(nt),rt=Math.floor(rt),it=Math.floor(it);const st=[],at=[],lt=[],ut=[];let dt=0,ht=0;ct("z","y","x",-1,-1,tt,et,o,it,rt,0),ct("z","y","x",1,-1,tt,et,-o,it,rt,1),ct("x","z","y",1,1,o,tt,et,nt,it,2),ct("x","z","y",1,-1,o,tt,-et,nt,it,3),ct("x","y","z",1,-1,o,et,tt,nt,rt,4),ct("x","y","z",-1,-1,o,et,-tt,nt,rt,5),this.setIndex(st),this.setAttribute("position",new Float32BufferAttribute(at,3)),this.setAttribute("normal",new Float32BufferAttribute(lt,3)),this.setAttribute("uv",new Float32BufferAttribute(ut,2));function ct(pt,ft,gt,yt,Ut,Ft,mt,vt,At,Lt,Rt){const St=Ft/At,Tt=mt/Lt,Bt=Ft/2,xt=mt/2,Ct=vt/2,kt=At+1,Nt=Lt+1;let Ot=0,Wt=0;const Dt=new Vector3;for(let Et=0;Et0?1:-1,lt.push(Dt.x,Dt.y,Dt.z),ut.push(zt/At),ut.push(1-Et/Lt),Ot+=1}}for(let Et=0;Et>8&255]+_lut[s>>16&255]+_lut[s>>24&255]+"-"+_lut[o&255]+_lut[o>>8&255]+"-"+_lut[o>>16&15|64]+_lut[o>>24&255]+"-"+_lut[et&63|128]+_lut[et>>8&255]+"-"+_lut[et>>16&255]+_lut[et>>24&255]+_lut[tt&255]+_lut[tt>>8&255]+_lut[tt>>16&255]+_lut[tt>>24&255]).toLowerCase()}function clamp$4(s,o,et){return Math.max(o,Math.min(et,s))}function euclideanModulo(s,o){return(s%o+o)%o}function mapLinear(s,o,et,tt,nt){return tt+(s-o)*(nt-tt)/(et-o)}function inverseLerp(s,o,et){return s!==o?(et-s)/(o-s):0}function lerp(s,o,et){return(1-et)*s+et*o}function damp(s,o,et,tt){return lerp(s,o,1-Math.exp(-et*tt))}function pingpong(s,o=1){return o-Math.abs(euclideanModulo(s,o*2)-o)}function smoothstep(s,o,et){return s<=o?0:s>=et?1:(s=(s-o)/(et-o),s*s*(3-2*s))}function smootherstep(s,o,et){return s<=o?0:s>=et?1:(s=(s-o)/(et-o),s*s*s*(s*(s*6-15)+10))}function randInt(s,o){return s+Math.floor(Math.random()*(o-s+1))}function randFloat(s,o){return s+Math.random()*(o-s)}function randFloatSpread(s){return s*(.5-Math.random())}function seededRandom(s){s!==void 0&&(_seed=s);let o=_seed+=1831565813;return o=Math.imul(o^o>>>15,o|1),o^=o+Math.imul(o^o>>>7,o|61),((o^o>>>14)>>>0)/4294967296}function degToRad(s){return s*DEG2RAD$1}function radToDeg(s){return s*RAD2DEG}function isPowerOfTwo(s){return(s&s-1)===0&&s!==0}function ceilPowerOfTwo(s){return Math.pow(2,Math.ceil(Math.log(s)/Math.LN2))}function floorPowerOfTwo(s){return Math.pow(2,Math.floor(Math.log(s)/Math.LN2))}function setQuaternionFromProperEuler(s,o,et,tt,nt){const rt=Math.cos,it=Math.sin,ot=rt(et/2),st=it(et/2),at=rt((o+tt)/2),lt=it((o+tt)/2),ut=rt((o-tt)/2),dt=it((o-tt)/2),ht=rt((tt-o)/2),ct=it((tt-o)/2);switch(nt){case"XYX":s.set(ot*lt,st*ut,st*dt,ot*at);break;case"YZY":s.set(st*dt,ot*lt,st*ut,ot*at);break;case"ZXZ":s.set(st*ut,st*dt,ot*lt,ot*at);break;case"XZX":s.set(ot*lt,st*ct,st*ht,ot*at);break;case"YXY":s.set(st*ht,ot*lt,st*ct,ot*at);break;case"ZYZ":s.set(st*ct,st*ht,ot*lt,ot*at);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+nt)}}function denormalize(s,o){switch(o.constructor){case Float32Array:return s;case Uint32Array:return s/4294967295;case Uint16Array:return s/65535;case Uint8Array:return s/255;case Int32Array:return Math.max(s/2147483647,-1);case Int16Array:return Math.max(s/32767,-1);case Int8Array:return Math.max(s/127,-1);default:throw new Error("Invalid component type.")}}function normalize(s,o){switch(o.constructor){case Float32Array:return s;case Uint32Array:return Math.round(s*4294967295);case Uint16Array:return Math.round(s*65535);case Uint8Array:return Math.round(s*255);case Int32Array:return Math.round(s*2147483647);case Int16Array:return Math.round(s*32767);case Int8Array:return Math.round(s*127);default:throw new Error("Invalid component type.")}}const MathUtils={DEG2RAD:DEG2RAD$1,RAD2DEG,generateUUID,clamp:clamp$4,euclideanModulo,mapLinear,inverseLerp,lerp,damp,pingpong,smoothstep,smootherstep,randInt,randFloat,randFloatSpread,seededRandom,degToRad,radToDeg,isPowerOfTwo,ceilPowerOfTwo,floorPowerOfTwo,setQuaternionFromProperEuler,normalize,denormalize};class Vector2{constructor(o=0,et=0){Vector2.prototype.isVector2=!0,this.x=o,this.y=et}get width(){return this.x}set width(o){this.x=o}get height(){return this.y}set height(o){this.y=o}set(o,et){return this.x=o,this.y=et,this}setScalar(o){return this.x=o,this.y=o,this}setX(o){return this.x=o,this}setY(o){return this.y=o,this}setComponent(o,et){switch(o){case 0:this.x=et;break;case 1:this.y=et;break;default:throw new Error("index is out of range: "+o)}return this}getComponent(o){switch(o){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+o)}}clone(){return new this.constructor(this.x,this.y)}copy(o){return this.x=o.x,this.y=o.y,this}add(o){return this.x+=o.x,this.y+=o.y,this}addScalar(o){return this.x+=o,this.y+=o,this}addVectors(o,et){return this.x=o.x+et.x,this.y=o.y+et.y,this}addScaledVector(o,et){return this.x+=o.x*et,this.y+=o.y*et,this}sub(o){return this.x-=o.x,this.y-=o.y,this}subScalar(o){return this.x-=o,this.y-=o,this}subVectors(o,et){return this.x=o.x-et.x,this.y=o.y-et.y,this}multiply(o){return this.x*=o.x,this.y*=o.y,this}multiplyScalar(o){return this.x*=o,this.y*=o,this}divide(o){return this.x/=o.x,this.y/=o.y,this}divideScalar(o){return this.multiplyScalar(1/o)}applyMatrix3(o){const et=this.x,tt=this.y,nt=o.elements;return this.x=nt[0]*et+nt[3]*tt+nt[6],this.y=nt[1]*et+nt[4]*tt+nt[7],this}min(o){return this.x=Math.min(this.x,o.x),this.y=Math.min(this.y,o.y),this}max(o){return this.x=Math.max(this.x,o.x),this.y=Math.max(this.y,o.y),this}clamp(o,et){return this.x=Math.max(o.x,Math.min(et.x,this.x)),this.y=Math.max(o.y,Math.min(et.y,this.y)),this}clampScalar(o,et){return this.x=Math.max(o,Math.min(et,this.x)),this.y=Math.max(o,Math.min(et,this.y)),this}clampLength(o,et){const tt=this.length();return this.divideScalar(tt||1).multiplyScalar(Math.max(o,Math.min(et,tt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(o){return this.x*o.x+this.y*o.y}cross(o){return this.x*o.y-this.y*o.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(o){const et=Math.sqrt(this.lengthSq()*o.lengthSq());if(et===0)return Math.PI/2;const tt=this.dot(o)/et;return Math.acos(clamp$4(tt,-1,1))}distanceTo(o){return Math.sqrt(this.distanceToSquared(o))}distanceToSquared(o){const et=this.x-o.x,tt=this.y-o.y;return et*et+tt*tt}manhattanDistanceTo(o){return Math.abs(this.x-o.x)+Math.abs(this.y-o.y)}setLength(o){return this.normalize().multiplyScalar(o)}lerp(o,et){return this.x+=(o.x-this.x)*et,this.y+=(o.y-this.y)*et,this}lerpVectors(o,et,tt){return this.x=o.x+(et.x-o.x)*tt,this.y=o.y+(et.y-o.y)*tt,this}equals(o){return o.x===this.x&&o.y===this.y}fromArray(o,et=0){return this.x=o[et],this.y=o[et+1],this}toArray(o=[],et=0){return o[et]=this.x,o[et+1]=this.y,o}fromBufferAttribute(o,et){return this.x=o.getX(et),this.y=o.getY(et),this}rotateAround(o,et){const tt=Math.cos(et),nt=Math.sin(et),rt=this.x-o.x,it=this.y-o.y;return this.x=rt*tt-it*nt+o.x,this.y=rt*nt+it*tt+o.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Matrix3{constructor(o,et,tt,nt,rt,it,ot,st,at){Matrix3.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],o!==void 0&&this.set(o,et,tt,nt,rt,it,ot,st,at)}set(o,et,tt,nt,rt,it,ot,st,at){const lt=this.elements;return lt[0]=o,lt[1]=nt,lt[2]=ot,lt[3]=et,lt[4]=rt,lt[5]=st,lt[6]=tt,lt[7]=it,lt[8]=at,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(o){const et=this.elements,tt=o.elements;return et[0]=tt[0],et[1]=tt[1],et[2]=tt[2],et[3]=tt[3],et[4]=tt[4],et[5]=tt[5],et[6]=tt[6],et[7]=tt[7],et[8]=tt[8],this}extractBasis(o,et,tt){return o.setFromMatrix3Column(this,0),et.setFromMatrix3Column(this,1),tt.setFromMatrix3Column(this,2),this}setFromMatrix4(o){const et=o.elements;return this.set(et[0],et[4],et[8],et[1],et[5],et[9],et[2],et[6],et[10]),this}multiply(o){return this.multiplyMatrices(this,o)}premultiply(o){return this.multiplyMatrices(o,this)}multiplyMatrices(o,et){const tt=o.elements,nt=et.elements,rt=this.elements,it=tt[0],ot=tt[3],st=tt[6],at=tt[1],lt=tt[4],ut=tt[7],dt=tt[2],ht=tt[5],ct=tt[8],pt=nt[0],ft=nt[3],gt=nt[6],yt=nt[1],Ut=nt[4],Ft=nt[7],mt=nt[2],vt=nt[5],At=nt[8];return rt[0]=it*pt+ot*yt+st*mt,rt[3]=it*ft+ot*Ut+st*vt,rt[6]=it*gt+ot*Ft+st*At,rt[1]=at*pt+lt*yt+ut*mt,rt[4]=at*ft+lt*Ut+ut*vt,rt[7]=at*gt+lt*Ft+ut*At,rt[2]=dt*pt+ht*yt+ct*mt,rt[5]=dt*ft+ht*Ut+ct*vt,rt[8]=dt*gt+ht*Ft+ct*At,this}multiplyScalar(o){const et=this.elements;return et[0]*=o,et[3]*=o,et[6]*=o,et[1]*=o,et[4]*=o,et[7]*=o,et[2]*=o,et[5]*=o,et[8]*=o,this}determinant(){const o=this.elements,et=o[0],tt=o[1],nt=o[2],rt=o[3],it=o[4],ot=o[5],st=o[6],at=o[7],lt=o[8];return et*it*lt-et*ot*at-tt*rt*lt+tt*ot*st+nt*rt*at-nt*it*st}invert(){const o=this.elements,et=o[0],tt=o[1],nt=o[2],rt=o[3],it=o[4],ot=o[5],st=o[6],at=o[7],lt=o[8],ut=lt*it-ot*at,dt=ot*st-lt*rt,ht=at*rt-it*st,ct=et*ut+tt*dt+nt*ht;if(ct===0)return this.set(0,0,0,0,0,0,0,0,0);const pt=1/ct;return o[0]=ut*pt,o[1]=(nt*at-lt*tt)*pt,o[2]=(ot*tt-nt*it)*pt,o[3]=dt*pt,o[4]=(lt*et-nt*st)*pt,o[5]=(nt*rt-ot*et)*pt,o[6]=ht*pt,o[7]=(tt*st-at*et)*pt,o[8]=(it*et-tt*rt)*pt,this}transpose(){let o;const et=this.elements;return o=et[1],et[1]=et[3],et[3]=o,o=et[2],et[2]=et[6],et[6]=o,o=et[5],et[5]=et[7],et[7]=o,this}getNormalMatrix(o){return this.setFromMatrix4(o).invert().transpose()}transposeIntoArray(o){const et=this.elements;return o[0]=et[0],o[1]=et[3],o[2]=et[6],o[3]=et[1],o[4]=et[4],o[5]=et[7],o[6]=et[2],o[7]=et[5],o[8]=et[8],this}setUvTransform(o,et,tt,nt,rt,it,ot){const st=Math.cos(rt),at=Math.sin(rt);return this.set(tt*st,tt*at,-tt*(st*it+at*ot)+it+o,-nt*at,nt*st,-nt*(-at*it+st*ot)+ot+et,0,0,1),this}scale(o,et){return this.premultiply(_m3.makeScale(o,et)),this}rotate(o){return this.premultiply(_m3.makeRotation(-o)),this}translate(o,et){return this.premultiply(_m3.makeTranslation(o,et)),this}makeTranslation(o,et){return o.isVector2?this.set(1,0,o.x,0,1,o.y,0,0,1):this.set(1,0,o,0,1,et,0,0,1),this}makeRotation(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(et,-tt,0,tt,et,0,0,0,1),this}makeScale(o,et){return this.set(o,0,0,0,et,0,0,0,1),this}equals(o){const et=this.elements,tt=o.elements;for(let nt=0;nt<9;nt++)if(et[nt]!==tt[nt])return!1;return!0}fromArray(o,et=0){for(let tt=0;tt<9;tt++)this.elements[tt]=o[tt+et];return this}toArray(o=[],et=0){const tt=this.elements;return o[et]=tt[0],o[et+1]=tt[1],o[et+2]=tt[2],o[et+3]=tt[3],o[et+4]=tt[4],o[et+5]=tt[5],o[et+6]=tt[6],o[et+7]=tt[7],o[et+8]=tt[8],o}clone(){return new this.constructor().fromArray(this.elements)}}const _m3=new Matrix3;function arrayNeedsUint32(s){for(let o=s.length-1;o>=0;--o)if(s[o]>=65535)return!0;return!1}const TYPED_ARRAYS={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function getTypedArray(s,o){return new TYPED_ARRAYS[s](o)}function createElementNS(s){return document.createElementNS("http://www.w3.org/1999/xhtml",s)}function createCanvasElement(){const s=createElementNS("canvas");return s.style.display="block",s}const _cache={};function warnOnce(s){s in _cache||(_cache[s]=!0,console.warn(s))}function probeAsync(s,o,et){return new Promise(function(tt,nt){function rt(){switch(s.clientWaitSync(o,s.SYNC_FLUSH_COMMANDS_BIT,0)){case s.WAIT_FAILED:nt();break;case s.TIMEOUT_EXPIRED:setTimeout(rt,et);break;default:tt()}}setTimeout(rt,et)})}const LINEAR_SRGB_TO_LINEAR_DISPLAY_P3=new Matrix3().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),LINEAR_DISPLAY_P3_TO_LINEAR_SRGB=new Matrix3().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),COLOR_SPACES={[LinearSRGBColorSpace$1]:{transfer:LinearTransfer,primaries:Rec709Primaries,toReference:s=>s,fromReference:s=>s},[SRGBColorSpace$1]:{transfer:SRGBTransfer,primaries:Rec709Primaries,toReference:s=>s.convertSRGBToLinear(),fromReference:s=>s.convertLinearToSRGB()},[LinearDisplayP3ColorSpace]:{transfer:LinearTransfer,primaries:P3Primaries,toReference:s=>s.applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),fromReference:s=>s.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3)},[DisplayP3ColorSpace]:{transfer:SRGBTransfer,primaries:P3Primaries,toReference:s=>s.convertSRGBToLinear().applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),fromReference:s=>s.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3).convertLinearToSRGB()}},SUPPORTED_WORKING_COLOR_SPACES=new Set([LinearSRGBColorSpace$1,LinearDisplayP3ColorSpace]),ColorManagement={enabled:!0,_workingColorSpace:LinearSRGBColorSpace$1,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(s){if(!SUPPORTED_WORKING_COLOR_SPACES.has(s))throw new Error(`Unsupported working color space, "${s}".`);this._workingColorSpace=s},convert:function(s,o,et){if(this.enabled===!1||o===et||!o||!et)return s;const tt=COLOR_SPACES[o].toReference,nt=COLOR_SPACES[et].fromReference;return nt(tt(s))},fromWorkingColorSpace:function(s,o){return this.convert(s,this._workingColorSpace,o)},toWorkingColorSpace:function(s,o){return this.convert(s,o,this._workingColorSpace)},getPrimaries:function(s){return COLOR_SPACES[s].primaries},getTransfer:function(s){return s===NoColorSpace?LinearTransfer:COLOR_SPACES[s].transfer}};function SRGBToLinear(s){return s<.04045?s*.0773993808:Math.pow(s*.9478672986+.0521327014,2.4)}function LinearToSRGB(s){return s<.0031308?s*12.92:1.055*Math.pow(s,.41666)-.055}let _canvas;class ImageUtils{static getDataURL(o){if(/^data:/i.test(o.src)||typeof HTMLCanvasElement>"u")return o.src;let et;if(o instanceof HTMLCanvasElement)et=o;else{_canvas===void 0&&(_canvas=createElementNS("canvas")),_canvas.width=o.width,_canvas.height=o.height;const tt=_canvas.getContext("2d");o instanceof ImageData?tt.putImageData(o,0,0):tt.drawImage(o,0,0,o.width,o.height),et=_canvas}return et.width>2048||et.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",o),et.toDataURL("image/jpeg",.6)):et.toDataURL("image/png")}static sRGBToLinear(o){if(typeof HTMLImageElement<"u"&&o instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&o instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&o instanceof ImageBitmap){const et=createElementNS("canvas");et.width=o.width,et.height=o.height;const tt=et.getContext("2d");tt.drawImage(o,0,0,o.width,o.height);const nt=tt.getImageData(0,0,o.width,o.height),rt=nt.data;for(let it=0;it0&&(tt.userData=this.userData),et||(o.textures[this.uuid]=tt),tt}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(o){if(this.mapping!==UVMapping)return o;if(o.applyMatrix3(this.matrix),o.x<0||o.x>1)switch(this.wrapS){case RepeatWrapping:o.x=o.x-Math.floor(o.x);break;case ClampToEdgeWrapping:o.x=o.x<0?0:1;break;case MirroredRepeatWrapping:Math.abs(Math.floor(o.x)%2)===1?o.x=Math.ceil(o.x)-o.x:o.x=o.x-Math.floor(o.x);break}if(o.y<0||o.y>1)switch(this.wrapT){case RepeatWrapping:o.y=o.y-Math.floor(o.y);break;case ClampToEdgeWrapping:o.y=o.y<0?0:1;break;case MirroredRepeatWrapping:Math.abs(Math.floor(o.y)%2)===1?o.y=Math.ceil(o.y)-o.y:o.y=o.y-Math.floor(o.y);break}return this.flipY&&(o.y=1-o.y),o}set needsUpdate(o){o===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(o){o===!0&&this.pmremVersion++}}Texture.DEFAULT_IMAGE=null;Texture.DEFAULT_MAPPING=UVMapping;Texture.DEFAULT_ANISOTROPY=1;class Vector4{constructor(o=0,et=0,tt=0,nt=1){Vector4.prototype.isVector4=!0,this.x=o,this.y=et,this.z=tt,this.w=nt}get width(){return this.z}set width(o){this.z=o}get height(){return this.w}set height(o){this.w=o}set(o,et,tt,nt){return this.x=o,this.y=et,this.z=tt,this.w=nt,this}setScalar(o){return this.x=o,this.y=o,this.z=o,this.w=o,this}setX(o){return this.x=o,this}setY(o){return this.y=o,this}setZ(o){return this.z=o,this}setW(o){return this.w=o,this}setComponent(o,et){switch(o){case 0:this.x=et;break;case 1:this.y=et;break;case 2:this.z=et;break;case 3:this.w=et;break;default:throw new Error("index is out of range: "+o)}return this}getComponent(o){switch(o){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+o)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(o){return this.x=o.x,this.y=o.y,this.z=o.z,this.w=o.w!==void 0?o.w:1,this}add(o){return this.x+=o.x,this.y+=o.y,this.z+=o.z,this.w+=o.w,this}addScalar(o){return this.x+=o,this.y+=o,this.z+=o,this.w+=o,this}addVectors(o,et){return this.x=o.x+et.x,this.y=o.y+et.y,this.z=o.z+et.z,this.w=o.w+et.w,this}addScaledVector(o,et){return this.x+=o.x*et,this.y+=o.y*et,this.z+=o.z*et,this.w+=o.w*et,this}sub(o){return this.x-=o.x,this.y-=o.y,this.z-=o.z,this.w-=o.w,this}subScalar(o){return this.x-=o,this.y-=o,this.z-=o,this.w-=o,this}subVectors(o,et){return this.x=o.x-et.x,this.y=o.y-et.y,this.z=o.z-et.z,this.w=o.w-et.w,this}multiply(o){return this.x*=o.x,this.y*=o.y,this.z*=o.z,this.w*=o.w,this}multiplyScalar(o){return this.x*=o,this.y*=o,this.z*=o,this.w*=o,this}applyMatrix4(o){const et=this.x,tt=this.y,nt=this.z,rt=this.w,it=o.elements;return this.x=it[0]*et+it[4]*tt+it[8]*nt+it[12]*rt,this.y=it[1]*et+it[5]*tt+it[9]*nt+it[13]*rt,this.z=it[2]*et+it[6]*tt+it[10]*nt+it[14]*rt,this.w=it[3]*et+it[7]*tt+it[11]*nt+it[15]*rt,this}divideScalar(o){return this.multiplyScalar(1/o)}setAxisAngleFromQuaternion(o){this.w=2*Math.acos(o.w);const et=Math.sqrt(1-o.w*o.w);return et<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=o.x/et,this.y=o.y/et,this.z=o.z/et),this}setAxisAngleFromRotationMatrix(o){let et,tt,nt,rt;const st=o.elements,at=st[0],lt=st[4],ut=st[8],dt=st[1],ht=st[5],ct=st[9],pt=st[2],ft=st[6],gt=st[10];if(Math.abs(lt-dt)<.01&&Math.abs(ut-pt)<.01&&Math.abs(ct-ft)<.01){if(Math.abs(lt+dt)<.1&&Math.abs(ut+pt)<.1&&Math.abs(ct+ft)<.1&&Math.abs(at+ht+gt-3)<.1)return this.set(1,0,0,0),this;et=Math.PI;const Ut=(at+1)/2,Ft=(ht+1)/2,mt=(gt+1)/2,vt=(lt+dt)/4,At=(ut+pt)/4,Lt=(ct+ft)/4;return Ut>Ft&&Ut>mt?Ut<.01?(tt=0,nt=.707106781,rt=.707106781):(tt=Math.sqrt(Ut),nt=vt/tt,rt=At/tt):Ft>mt?Ft<.01?(tt=.707106781,nt=0,rt=.707106781):(nt=Math.sqrt(Ft),tt=vt/nt,rt=Lt/nt):mt<.01?(tt=.707106781,nt=.707106781,rt=0):(rt=Math.sqrt(mt),tt=At/rt,nt=Lt/rt),this.set(tt,nt,rt,et),this}let yt=Math.sqrt((ft-ct)*(ft-ct)+(ut-pt)*(ut-pt)+(dt-lt)*(dt-lt));return Math.abs(yt)<.001&&(yt=1),this.x=(ft-ct)/yt,this.y=(ut-pt)/yt,this.z=(dt-lt)/yt,this.w=Math.acos((at+ht+gt-1)/2),this}min(o){return this.x=Math.min(this.x,o.x),this.y=Math.min(this.y,o.y),this.z=Math.min(this.z,o.z),this.w=Math.min(this.w,o.w),this}max(o){return this.x=Math.max(this.x,o.x),this.y=Math.max(this.y,o.y),this.z=Math.max(this.z,o.z),this.w=Math.max(this.w,o.w),this}clamp(o,et){return this.x=Math.max(o.x,Math.min(et.x,this.x)),this.y=Math.max(o.y,Math.min(et.y,this.y)),this.z=Math.max(o.z,Math.min(et.z,this.z)),this.w=Math.max(o.w,Math.min(et.w,this.w)),this}clampScalar(o,et){return this.x=Math.max(o,Math.min(et,this.x)),this.y=Math.max(o,Math.min(et,this.y)),this.z=Math.max(o,Math.min(et,this.z)),this.w=Math.max(o,Math.min(et,this.w)),this}clampLength(o,et){const tt=this.length();return this.divideScalar(tt||1).multiplyScalar(Math.max(o,Math.min(et,tt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(o){return this.x*o.x+this.y*o.y+this.z*o.z+this.w*o.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(o){return this.normalize().multiplyScalar(o)}lerp(o,et){return this.x+=(o.x-this.x)*et,this.y+=(o.y-this.y)*et,this.z+=(o.z-this.z)*et,this.w+=(o.w-this.w)*et,this}lerpVectors(o,et,tt){return this.x=o.x+(et.x-o.x)*tt,this.y=o.y+(et.y-o.y)*tt,this.z=o.z+(et.z-o.z)*tt,this.w=o.w+(et.w-o.w)*tt,this}equals(o){return o.x===this.x&&o.y===this.y&&o.z===this.z&&o.w===this.w}fromArray(o,et=0){return this.x=o[et],this.y=o[et+1],this.z=o[et+2],this.w=o[et+3],this}toArray(o=[],et=0){return o[et]=this.x,o[et+1]=this.y,o[et+2]=this.z,o[et+3]=this.w,o}fromBufferAttribute(o,et){return this.x=o.getX(et),this.y=o.getY(et),this.z=o.getZ(et),this.w=o.getW(et),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class RenderTarget extends EventDispatcher$1{constructor(o=1,et=1,tt={}){super(),this.isRenderTarget=!0,this.width=o,this.height=et,this.depth=1,this.scissor=new Vector4(0,0,o,et),this.scissorTest=!1,this.viewport=new Vector4(0,0,o,et);const nt={width:o,height:et,depth:1};tt=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:LinearFilter,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},tt);const rt=new Texture(nt,tt.mapping,tt.wrapS,tt.wrapT,tt.magFilter,tt.minFilter,tt.format,tt.type,tt.anisotropy,tt.colorSpace);rt.flipY=!1,rt.generateMipmaps=tt.generateMipmaps,rt.internalFormat=tt.internalFormat,this.textures=[];const it=tt.count;for(let ot=0;ot=0?1:-1,Ut=1-gt*gt;if(Ut>Number.EPSILON){const mt=Math.sqrt(Ut),vt=Math.atan2(mt,gt*yt);ft=Math.sin(ft*vt)/mt,ot=Math.sin(ot*vt)/mt}const Ft=ot*yt;if(st=st*ft+dt*Ft,at=at*ft+ht*Ft,lt=lt*ft+ct*Ft,ut=ut*ft+pt*Ft,ft===1-ot){const mt=1/Math.sqrt(st*st+at*at+lt*lt+ut*ut);st*=mt,at*=mt,lt*=mt,ut*=mt}}o[et]=st,o[et+1]=at,o[et+2]=lt,o[et+3]=ut}static multiplyQuaternionsFlat(o,et,tt,nt,rt,it){const ot=tt[nt],st=tt[nt+1],at=tt[nt+2],lt=tt[nt+3],ut=rt[it],dt=rt[it+1],ht=rt[it+2],ct=rt[it+3];return o[et]=ot*ct+lt*ut+st*ht-at*dt,o[et+1]=st*ct+lt*dt+at*ut-ot*ht,o[et+2]=at*ct+lt*ht+ot*dt-st*ut,o[et+3]=lt*ct-ot*ut-st*dt-at*ht,o}get x(){return this._x}set x(o){this._x=o,this._onChangeCallback()}get y(){return this._y}set y(o){this._y=o,this._onChangeCallback()}get z(){return this._z}set z(o){this._z=o,this._onChangeCallback()}get w(){return this._w}set w(o){this._w=o,this._onChangeCallback()}set(o,et,tt,nt){return this._x=o,this._y=et,this._z=tt,this._w=nt,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(o){return this._x=o.x,this._y=o.y,this._z=o.z,this._w=o.w,this._onChangeCallback(),this}setFromEuler(o,et=!0){const tt=o._x,nt=o._y,rt=o._z,it=o._order,ot=Math.cos,st=Math.sin,at=ot(tt/2),lt=ot(nt/2),ut=ot(rt/2),dt=st(tt/2),ht=st(nt/2),ct=st(rt/2);switch(it){case"XYZ":this._x=dt*lt*ut+at*ht*ct,this._y=at*ht*ut-dt*lt*ct,this._z=at*lt*ct+dt*ht*ut,this._w=at*lt*ut-dt*ht*ct;break;case"YXZ":this._x=dt*lt*ut+at*ht*ct,this._y=at*ht*ut-dt*lt*ct,this._z=at*lt*ct-dt*ht*ut,this._w=at*lt*ut+dt*ht*ct;break;case"ZXY":this._x=dt*lt*ut-at*ht*ct,this._y=at*ht*ut+dt*lt*ct,this._z=at*lt*ct+dt*ht*ut,this._w=at*lt*ut-dt*ht*ct;break;case"ZYX":this._x=dt*lt*ut-at*ht*ct,this._y=at*ht*ut+dt*lt*ct,this._z=at*lt*ct-dt*ht*ut,this._w=at*lt*ut+dt*ht*ct;break;case"YZX":this._x=dt*lt*ut+at*ht*ct,this._y=at*ht*ut+dt*lt*ct,this._z=at*lt*ct-dt*ht*ut,this._w=at*lt*ut-dt*ht*ct;break;case"XZY":this._x=dt*lt*ut-at*ht*ct,this._y=at*ht*ut-dt*lt*ct,this._z=at*lt*ct+dt*ht*ut,this._w=at*lt*ut+dt*ht*ct;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+it)}return et===!0&&this._onChangeCallback(),this}setFromAxisAngle(o,et){const tt=et/2,nt=Math.sin(tt);return this._x=o.x*nt,this._y=o.y*nt,this._z=o.z*nt,this._w=Math.cos(tt),this._onChangeCallback(),this}setFromRotationMatrix(o){const et=o.elements,tt=et[0],nt=et[4],rt=et[8],it=et[1],ot=et[5],st=et[9],at=et[2],lt=et[6],ut=et[10],dt=tt+ot+ut;if(dt>0){const ht=.5/Math.sqrt(dt+1);this._w=.25/ht,this._x=(lt-st)*ht,this._y=(rt-at)*ht,this._z=(it-nt)*ht}else if(tt>ot&&tt>ut){const ht=2*Math.sqrt(1+tt-ot-ut);this._w=(lt-st)/ht,this._x=.25*ht,this._y=(nt+it)/ht,this._z=(rt+at)/ht}else if(ot>ut){const ht=2*Math.sqrt(1+ot-tt-ut);this._w=(rt-at)/ht,this._x=(nt+it)/ht,this._y=.25*ht,this._z=(st+lt)/ht}else{const ht=2*Math.sqrt(1+ut-tt-ot);this._w=(it-nt)/ht,this._x=(rt+at)/ht,this._y=(st+lt)/ht,this._z=.25*ht}return this._onChangeCallback(),this}setFromUnitVectors(o,et){let tt=o.dot(et)+1;return ttMath.abs(o.z)?(this._x=-o.y,this._y=o.x,this._z=0,this._w=tt):(this._x=0,this._y=-o.z,this._z=o.y,this._w=tt)):(this._x=o.y*et.z-o.z*et.y,this._y=o.z*et.x-o.x*et.z,this._z=o.x*et.y-o.y*et.x,this._w=tt),this.normalize()}angleTo(o){return 2*Math.acos(Math.abs(clamp$4(this.dot(o),-1,1)))}rotateTowards(o,et){const tt=this.angleTo(o);if(tt===0)return this;const nt=Math.min(1,et/tt);return this.slerp(o,nt),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(o){return this._x*o._x+this._y*o._y+this._z*o._z+this._w*o._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let o=this.length();return o===0?(this._x=0,this._y=0,this._z=0,this._w=1):(o=1/o,this._x=this._x*o,this._y=this._y*o,this._z=this._z*o,this._w=this._w*o),this._onChangeCallback(),this}multiply(o){return this.multiplyQuaternions(this,o)}premultiply(o){return this.multiplyQuaternions(o,this)}multiplyQuaternions(o,et){const tt=o._x,nt=o._y,rt=o._z,it=o._w,ot=et._x,st=et._y,at=et._z,lt=et._w;return this._x=tt*lt+it*ot+nt*at-rt*st,this._y=nt*lt+it*st+rt*ot-tt*at,this._z=rt*lt+it*at+tt*st-nt*ot,this._w=it*lt-tt*ot-nt*st-rt*at,this._onChangeCallback(),this}slerp(o,et){if(et===0)return this;if(et===1)return this.copy(o);const tt=this._x,nt=this._y,rt=this._z,it=this._w;let ot=it*o._w+tt*o._x+nt*o._y+rt*o._z;if(ot<0?(this._w=-o._w,this._x=-o._x,this._y=-o._y,this._z=-o._z,ot=-ot):this.copy(o),ot>=1)return this._w=it,this._x=tt,this._y=nt,this._z=rt,this;const st=1-ot*ot;if(st<=Number.EPSILON){const ht=1-et;return this._w=ht*it+et*this._w,this._x=ht*tt+et*this._x,this._y=ht*nt+et*this._y,this._z=ht*rt+et*this._z,this.normalize(),this}const at=Math.sqrt(st),lt=Math.atan2(at,ot),ut=Math.sin((1-et)*lt)/at,dt=Math.sin(et*lt)/at;return this._w=it*ut+this._w*dt,this._x=tt*ut+this._x*dt,this._y=nt*ut+this._y*dt,this._z=rt*ut+this._z*dt,this._onChangeCallback(),this}slerpQuaternions(o,et,tt){return this.copy(o).slerp(et,tt)}random(){const o=2*Math.PI*Math.random(),et=2*Math.PI*Math.random(),tt=Math.random(),nt=Math.sqrt(1-tt),rt=Math.sqrt(tt);return this.set(nt*Math.sin(o),nt*Math.cos(o),rt*Math.sin(et),rt*Math.cos(et))}equals(o){return o._x===this._x&&o._y===this._y&&o._z===this._z&&o._w===this._w}fromArray(o,et=0){return this._x=o[et],this._y=o[et+1],this._z=o[et+2],this._w=o[et+3],this._onChangeCallback(),this}toArray(o=[],et=0){return o[et]=this._x,o[et+1]=this._y,o[et+2]=this._z,o[et+3]=this._w,o}fromBufferAttribute(o,et){return this._x=o.getX(et),this._y=o.getY(et),this._z=o.getZ(et),this._w=o.getW(et),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(o){return this._onChangeCallback=o,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Vector3{constructor(o=0,et=0,tt=0){Vector3.prototype.isVector3=!0,this.x=o,this.y=et,this.z=tt}set(o,et,tt){return tt===void 0&&(tt=this.z),this.x=o,this.y=et,this.z=tt,this}setScalar(o){return this.x=o,this.y=o,this.z=o,this}setX(o){return this.x=o,this}setY(o){return this.y=o,this}setZ(o){return this.z=o,this}setComponent(o,et){switch(o){case 0:this.x=et;break;case 1:this.y=et;break;case 2:this.z=et;break;default:throw new Error("index is out of range: "+o)}return this}getComponent(o){switch(o){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+o)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(o){return this.x=o.x,this.y=o.y,this.z=o.z,this}add(o){return this.x+=o.x,this.y+=o.y,this.z+=o.z,this}addScalar(o){return this.x+=o,this.y+=o,this.z+=o,this}addVectors(o,et){return this.x=o.x+et.x,this.y=o.y+et.y,this.z=o.z+et.z,this}addScaledVector(o,et){return this.x+=o.x*et,this.y+=o.y*et,this.z+=o.z*et,this}sub(o){return this.x-=o.x,this.y-=o.y,this.z-=o.z,this}subScalar(o){return this.x-=o,this.y-=o,this.z-=o,this}subVectors(o,et){return this.x=o.x-et.x,this.y=o.y-et.y,this.z=o.z-et.z,this}multiply(o){return this.x*=o.x,this.y*=o.y,this.z*=o.z,this}multiplyScalar(o){return this.x*=o,this.y*=o,this.z*=o,this}multiplyVectors(o,et){return this.x=o.x*et.x,this.y=o.y*et.y,this.z=o.z*et.z,this}applyEuler(o){return this.applyQuaternion(_quaternion$4.setFromEuler(o))}applyAxisAngle(o,et){return this.applyQuaternion(_quaternion$4.setFromAxisAngle(o,et))}applyMatrix3(o){const et=this.x,tt=this.y,nt=this.z,rt=o.elements;return this.x=rt[0]*et+rt[3]*tt+rt[6]*nt,this.y=rt[1]*et+rt[4]*tt+rt[7]*nt,this.z=rt[2]*et+rt[5]*tt+rt[8]*nt,this}applyNormalMatrix(o){return this.applyMatrix3(o).normalize()}applyMatrix4(o){const et=this.x,tt=this.y,nt=this.z,rt=o.elements,it=1/(rt[3]*et+rt[7]*tt+rt[11]*nt+rt[15]);return this.x=(rt[0]*et+rt[4]*tt+rt[8]*nt+rt[12])*it,this.y=(rt[1]*et+rt[5]*tt+rt[9]*nt+rt[13])*it,this.z=(rt[2]*et+rt[6]*tt+rt[10]*nt+rt[14])*it,this}applyQuaternion(o){const et=this.x,tt=this.y,nt=this.z,rt=o.x,it=o.y,ot=o.z,st=o.w,at=2*(it*nt-ot*tt),lt=2*(ot*et-rt*nt),ut=2*(rt*tt-it*et);return this.x=et+st*at+it*ut-ot*lt,this.y=tt+st*lt+ot*at-rt*ut,this.z=nt+st*ut+rt*lt-it*at,this}project(o){return this.applyMatrix4(o.matrixWorldInverse).applyMatrix4(o.projectionMatrix)}unproject(o){return this.applyMatrix4(o.projectionMatrixInverse).applyMatrix4(o.matrixWorld)}transformDirection(o){const et=this.x,tt=this.y,nt=this.z,rt=o.elements;return this.x=rt[0]*et+rt[4]*tt+rt[8]*nt,this.y=rt[1]*et+rt[5]*tt+rt[9]*nt,this.z=rt[2]*et+rt[6]*tt+rt[10]*nt,this.normalize()}divide(o){return this.x/=o.x,this.y/=o.y,this.z/=o.z,this}divideScalar(o){return this.multiplyScalar(1/o)}min(o){return this.x=Math.min(this.x,o.x),this.y=Math.min(this.y,o.y),this.z=Math.min(this.z,o.z),this}max(o){return this.x=Math.max(this.x,o.x),this.y=Math.max(this.y,o.y),this.z=Math.max(this.z,o.z),this}clamp(o,et){return this.x=Math.max(o.x,Math.min(et.x,this.x)),this.y=Math.max(o.y,Math.min(et.y,this.y)),this.z=Math.max(o.z,Math.min(et.z,this.z)),this}clampScalar(o,et){return this.x=Math.max(o,Math.min(et,this.x)),this.y=Math.max(o,Math.min(et,this.y)),this.z=Math.max(o,Math.min(et,this.z)),this}clampLength(o,et){const tt=this.length();return this.divideScalar(tt||1).multiplyScalar(Math.max(o,Math.min(et,tt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(o){return this.x*o.x+this.y*o.y+this.z*o.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(o){return this.normalize().multiplyScalar(o)}lerp(o,et){return this.x+=(o.x-this.x)*et,this.y+=(o.y-this.y)*et,this.z+=(o.z-this.z)*et,this}lerpVectors(o,et,tt){return this.x=o.x+(et.x-o.x)*tt,this.y=o.y+(et.y-o.y)*tt,this.z=o.z+(et.z-o.z)*tt,this}cross(o){return this.crossVectors(this,o)}crossVectors(o,et){const tt=o.x,nt=o.y,rt=o.z,it=et.x,ot=et.y,st=et.z;return this.x=nt*st-rt*ot,this.y=rt*it-tt*st,this.z=tt*ot-nt*it,this}projectOnVector(o){const et=o.lengthSq();if(et===0)return this.set(0,0,0);const tt=o.dot(this)/et;return this.copy(o).multiplyScalar(tt)}projectOnPlane(o){return _vector$c.copy(this).projectOnVector(o),this.sub(_vector$c)}reflect(o){return this.sub(_vector$c.copy(o).multiplyScalar(2*this.dot(o)))}angleTo(o){const et=Math.sqrt(this.lengthSq()*o.lengthSq());if(et===0)return Math.PI/2;const tt=this.dot(o)/et;return Math.acos(clamp$4(tt,-1,1))}distanceTo(o){return Math.sqrt(this.distanceToSquared(o))}distanceToSquared(o){const et=this.x-o.x,tt=this.y-o.y,nt=this.z-o.z;return et*et+tt*tt+nt*nt}manhattanDistanceTo(o){return Math.abs(this.x-o.x)+Math.abs(this.y-o.y)+Math.abs(this.z-o.z)}setFromSpherical(o){return this.setFromSphericalCoords(o.radius,o.phi,o.theta)}setFromSphericalCoords(o,et,tt){const nt=Math.sin(et)*o;return this.x=nt*Math.sin(tt),this.y=Math.cos(et)*o,this.z=nt*Math.cos(tt),this}setFromCylindrical(o){return this.setFromCylindricalCoords(o.radius,o.theta,o.y)}setFromCylindricalCoords(o,et,tt){return this.x=o*Math.sin(et),this.y=tt,this.z=o*Math.cos(et),this}setFromMatrixPosition(o){const et=o.elements;return this.x=et[12],this.y=et[13],this.z=et[14],this}setFromMatrixScale(o){const et=this.setFromMatrixColumn(o,0).length(),tt=this.setFromMatrixColumn(o,1).length(),nt=this.setFromMatrixColumn(o,2).length();return this.x=et,this.y=tt,this.z=nt,this}setFromMatrixColumn(o,et){return this.fromArray(o.elements,et*4)}setFromMatrix3Column(o,et){return this.fromArray(o.elements,et*3)}setFromEuler(o){return this.x=o._x,this.y=o._y,this.z=o._z,this}setFromColor(o){return this.x=o.r,this.y=o.g,this.z=o.b,this}equals(o){return o.x===this.x&&o.y===this.y&&o.z===this.z}fromArray(o,et=0){return this.x=o[et],this.y=o[et+1],this.z=o[et+2],this}toArray(o=[],et=0){return o[et]=this.x,o[et+1]=this.y,o[et+2]=this.z,o}fromBufferAttribute(o,et){return this.x=o.getX(et),this.y=o.getY(et),this.z=o.getZ(et),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const o=Math.random()*Math.PI*2,et=Math.random()*2-1,tt=Math.sqrt(1-et*et);return this.x=tt*Math.cos(o),this.y=et,this.z=tt*Math.sin(o),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const _vector$c=new Vector3,_quaternion$4=new Quaternion;class Box3{constructor(o=new Vector3(1/0,1/0,1/0),et=new Vector3(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=o,this.max=et}set(o,et){return this.min.copy(o),this.max.copy(et),this}setFromArray(o){this.makeEmpty();for(let et=0,tt=o.length;etthis.max.x||o.ythis.max.y||o.zthis.max.z)}containsBox(o){return this.min.x<=o.min.x&&o.max.x<=this.max.x&&this.min.y<=o.min.y&&o.max.y<=this.max.y&&this.min.z<=o.min.z&&o.max.z<=this.max.z}getParameter(o,et){return et.set((o.x-this.min.x)/(this.max.x-this.min.x),(o.y-this.min.y)/(this.max.y-this.min.y),(o.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(o){return!(o.max.xthis.max.x||o.max.ythis.max.y||o.max.zthis.max.z)}intersectsSphere(o){return this.clampPoint(o.center,_vector$b),_vector$b.distanceToSquared(o.center)<=o.radius*o.radius}intersectsPlane(o){let et,tt;return o.normal.x>0?(et=o.normal.x*this.min.x,tt=o.normal.x*this.max.x):(et=o.normal.x*this.max.x,tt=o.normal.x*this.min.x),o.normal.y>0?(et+=o.normal.y*this.min.y,tt+=o.normal.y*this.max.y):(et+=o.normal.y*this.max.y,tt+=o.normal.y*this.min.y),o.normal.z>0?(et+=o.normal.z*this.min.z,tt+=o.normal.z*this.max.z):(et+=o.normal.z*this.max.z,tt+=o.normal.z*this.min.z),et<=-o.constant&&tt>=-o.constant}intersectsTriangle(o){if(this.isEmpty())return!1;this.getCenter(_center),_extents.subVectors(this.max,_center),_v0$2.subVectors(o.a,_center),_v1$7.subVectors(o.b,_center),_v2$4.subVectors(o.c,_center),_f0.subVectors(_v1$7,_v0$2),_f1.subVectors(_v2$4,_v1$7),_f2.subVectors(_v0$2,_v2$4);let et=[0,-_f0.z,_f0.y,0,-_f1.z,_f1.y,0,-_f2.z,_f2.y,_f0.z,0,-_f0.x,_f1.z,0,-_f1.x,_f2.z,0,-_f2.x,-_f0.y,_f0.x,0,-_f1.y,_f1.x,0,-_f2.y,_f2.x,0];return!satForAxes(et,_v0$2,_v1$7,_v2$4,_extents)||(et=[1,0,0,0,1,0,0,0,1],!satForAxes(et,_v0$2,_v1$7,_v2$4,_extents))?!1:(_triangleNormal.crossVectors(_f0,_f1),et=[_triangleNormal.x,_triangleNormal.y,_triangleNormal.z],satForAxes(et,_v0$2,_v1$7,_v2$4,_extents))}clampPoint(o,et){return et.copy(o).clamp(this.min,this.max)}distanceToPoint(o){return this.clampPoint(o,_vector$b).distanceTo(o)}getBoundingSphere(o){return this.isEmpty()?o.makeEmpty():(this.getCenter(o.center),o.radius=this.getSize(_vector$b).length()*.5),o}intersect(o){return this.min.max(o.min),this.max.min(o.max),this.isEmpty()&&this.makeEmpty(),this}union(o){return this.min.min(o.min),this.max.max(o.max),this}applyMatrix4(o){return this.isEmpty()?this:(_points[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(o),_points[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(o),_points[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(o),_points[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(o),_points[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(o),_points[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(o),_points[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(o),_points[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(o),this.setFromPoints(_points),this)}translate(o){return this.min.add(o),this.max.add(o),this}equals(o){return o.min.equals(this.min)&&o.max.equals(this.max)}}const _points=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3],_vector$b=new Vector3,_box$4=new Box3,_v0$2=new Vector3,_v1$7=new Vector3,_v2$4=new Vector3,_f0=new Vector3,_f1=new Vector3,_f2=new Vector3,_center=new Vector3,_extents=new Vector3,_triangleNormal=new Vector3,_testAxis=new Vector3;function satForAxes(s,o,et,tt,nt){for(let rt=0,it=s.length-3;rt<=it;rt+=3){_testAxis.fromArray(s,rt);const ot=nt.x*Math.abs(_testAxis.x)+nt.y*Math.abs(_testAxis.y)+nt.z*Math.abs(_testAxis.z),st=o.dot(_testAxis),at=et.dot(_testAxis),lt=tt.dot(_testAxis);if(Math.max(-Math.max(st,at,lt),Math.min(st,at,lt))>ot)return!1}return!0}const _box$3=new Box3,_v1$6=new Vector3,_v2$3=new Vector3;let Sphere$1=class{constructor(o=new Vector3,et=-1){this.isSphere=!0,this.center=o,this.radius=et}set(o,et){return this.center.copy(o),this.radius=et,this}setFromPoints(o,et){const tt=this.center;et!==void 0?tt.copy(et):_box$3.setFromPoints(o).getCenter(tt);let nt=0;for(let rt=0,it=o.length;rtthis.radius*this.radius&&(et.sub(this.center).normalize(),et.multiplyScalar(this.radius).add(this.center)),et}getBoundingBox(o){return this.isEmpty()?(o.makeEmpty(),o):(o.set(this.center,this.center),o.expandByScalar(this.radius),o)}applyMatrix4(o){return this.center.applyMatrix4(o),this.radius=this.radius*o.getMaxScaleOnAxis(),this}translate(o){return this.center.add(o),this}expandByPoint(o){if(this.isEmpty())return this.center.copy(o),this.radius=0,this;_v1$6.subVectors(o,this.center);const et=_v1$6.lengthSq();if(et>this.radius*this.radius){const tt=Math.sqrt(et),nt=(tt-this.radius)*.5;this.center.addScaledVector(_v1$6,nt/tt),this.radius+=nt}return this}union(o){return o.isEmpty()?this:this.isEmpty()?(this.copy(o),this):(this.center.equals(o.center)===!0?this.radius=Math.max(this.radius,o.radius):(_v2$3.subVectors(o.center,this.center).setLength(o.radius),this.expandByPoint(_v1$6.copy(o.center).add(_v2$3)),this.expandByPoint(_v1$6.copy(o.center).sub(_v2$3))),this)}equals(o){return o.center.equals(this.center)&&o.radius===this.radius}clone(){return new this.constructor().copy(this)}};const _vector$a=new Vector3,_segCenter=new Vector3,_segDir=new Vector3,_diff=new Vector3,_edge1=new Vector3,_edge2=new Vector3,_normal$1=new Vector3;let Ray$1=class{constructor(o=new Vector3,et=new Vector3(0,0,-1)){this.origin=o,this.direction=et}set(o,et){return this.origin.copy(o),this.direction.copy(et),this}copy(o){return this.origin.copy(o.origin),this.direction.copy(o.direction),this}at(o,et){return et.copy(this.origin).addScaledVector(this.direction,o)}lookAt(o){return this.direction.copy(o).sub(this.origin).normalize(),this}recast(o){return this.origin.copy(this.at(o,_vector$a)),this}closestPointToPoint(o,et){et.subVectors(o,this.origin);const tt=et.dot(this.direction);return tt<0?et.copy(this.origin):et.copy(this.origin).addScaledVector(this.direction,tt)}distanceToPoint(o){return Math.sqrt(this.distanceSqToPoint(o))}distanceSqToPoint(o){const et=_vector$a.subVectors(o,this.origin).dot(this.direction);return et<0?this.origin.distanceToSquared(o):(_vector$a.copy(this.origin).addScaledVector(this.direction,et),_vector$a.distanceToSquared(o))}distanceSqToSegment(o,et,tt,nt){_segCenter.copy(o).add(et).multiplyScalar(.5),_segDir.copy(et).sub(o).normalize(),_diff.copy(this.origin).sub(_segCenter);const rt=o.distanceTo(et)*.5,it=-this.direction.dot(_segDir),ot=_diff.dot(this.direction),st=-_diff.dot(_segDir),at=_diff.lengthSq(),lt=Math.abs(1-it*it);let ut,dt,ht,ct;if(lt>0)if(ut=it*st-ot,dt=it*ot-st,ct=rt*lt,ut>=0)if(dt>=-ct)if(dt<=ct){const pt=1/lt;ut*=pt,dt*=pt,ht=ut*(ut+it*dt+2*ot)+dt*(it*ut+dt+2*st)+at}else dt=rt,ut=Math.max(0,-(it*dt+ot)),ht=-ut*ut+dt*(dt+2*st)+at;else dt=-rt,ut=Math.max(0,-(it*dt+ot)),ht=-ut*ut+dt*(dt+2*st)+at;else dt<=-ct?(ut=Math.max(0,-(-it*rt+ot)),dt=ut>0?-rt:Math.min(Math.max(-rt,-st),rt),ht=-ut*ut+dt*(dt+2*st)+at):dt<=ct?(ut=0,dt=Math.min(Math.max(-rt,-st),rt),ht=dt*(dt+2*st)+at):(ut=Math.max(0,-(it*rt+ot)),dt=ut>0?rt:Math.min(Math.max(-rt,-st),rt),ht=-ut*ut+dt*(dt+2*st)+at);else dt=it>0?-rt:rt,ut=Math.max(0,-(it*dt+ot)),ht=-ut*ut+dt*(dt+2*st)+at;return tt&&tt.copy(this.origin).addScaledVector(this.direction,ut),nt&&nt.copy(_segCenter).addScaledVector(_segDir,dt),ht}intersectSphere(o,et){_vector$a.subVectors(o.center,this.origin);const tt=_vector$a.dot(this.direction),nt=_vector$a.dot(_vector$a)-tt*tt,rt=o.radius*o.radius;if(nt>rt)return null;const it=Math.sqrt(rt-nt),ot=tt-it,st=tt+it;return st<0?null:ot<0?this.at(st,et):this.at(ot,et)}intersectsSphere(o){return this.distanceSqToPoint(o.center)<=o.radius*o.radius}distanceToPlane(o){const et=o.normal.dot(this.direction);if(et===0)return o.distanceToPoint(this.origin)===0?0:null;const tt=-(this.origin.dot(o.normal)+o.constant)/et;return tt>=0?tt:null}intersectPlane(o,et){const tt=this.distanceToPlane(o);return tt===null?null:this.at(tt,et)}intersectsPlane(o){const et=o.distanceToPoint(this.origin);return et===0||o.normal.dot(this.direction)*et<0}intersectBox(o,et){let tt,nt,rt,it,ot,st;const at=1/this.direction.x,lt=1/this.direction.y,ut=1/this.direction.z,dt=this.origin;return at>=0?(tt=(o.min.x-dt.x)*at,nt=(o.max.x-dt.x)*at):(tt=(o.max.x-dt.x)*at,nt=(o.min.x-dt.x)*at),lt>=0?(rt=(o.min.y-dt.y)*lt,it=(o.max.y-dt.y)*lt):(rt=(o.max.y-dt.y)*lt,it=(o.min.y-dt.y)*lt),tt>it||rt>nt||((rt>tt||isNaN(tt))&&(tt=rt),(it=0?(ot=(o.min.z-dt.z)*ut,st=(o.max.z-dt.z)*ut):(ot=(o.max.z-dt.z)*ut,st=(o.min.z-dt.z)*ut),tt>st||ot>nt)||((ot>tt||tt!==tt)&&(tt=ot),(st=0?tt:nt,et)}intersectsBox(o){return this.intersectBox(o,_vector$a)!==null}intersectTriangle(o,et,tt,nt,rt){_edge1.subVectors(et,o),_edge2.subVectors(tt,o),_normal$1.crossVectors(_edge1,_edge2);let it=this.direction.dot(_normal$1),ot;if(it>0){if(nt)return null;ot=1}else if(it<0)ot=-1,it=-it;else return null;_diff.subVectors(this.origin,o);const st=ot*this.direction.dot(_edge2.crossVectors(_diff,_edge2));if(st<0)return null;const at=ot*this.direction.dot(_edge1.cross(_diff));if(at<0||st+at>it)return null;const lt=-ot*_diff.dot(_normal$1);return lt<0?null:this.at(lt/it,rt)}applyMatrix4(o){return this.origin.applyMatrix4(o),this.direction.transformDirection(o),this}equals(o){return o.origin.equals(this.origin)&&o.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}};class Matrix4{constructor(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct,pt,ft){Matrix4.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],o!==void 0&&this.set(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct,pt,ft)}set(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct,pt,ft){const gt=this.elements;return gt[0]=o,gt[4]=et,gt[8]=tt,gt[12]=nt,gt[1]=rt,gt[5]=it,gt[9]=ot,gt[13]=st,gt[2]=at,gt[6]=lt,gt[10]=ut,gt[14]=dt,gt[3]=ht,gt[7]=ct,gt[11]=pt,gt[15]=ft,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Matrix4().fromArray(this.elements)}copy(o){const et=this.elements,tt=o.elements;return et[0]=tt[0],et[1]=tt[1],et[2]=tt[2],et[3]=tt[3],et[4]=tt[4],et[5]=tt[5],et[6]=tt[6],et[7]=tt[7],et[8]=tt[8],et[9]=tt[9],et[10]=tt[10],et[11]=tt[11],et[12]=tt[12],et[13]=tt[13],et[14]=tt[14],et[15]=tt[15],this}copyPosition(o){const et=this.elements,tt=o.elements;return et[12]=tt[12],et[13]=tt[13],et[14]=tt[14],this}setFromMatrix3(o){const et=o.elements;return this.set(et[0],et[3],et[6],0,et[1],et[4],et[7],0,et[2],et[5],et[8],0,0,0,0,1),this}extractBasis(o,et,tt){return o.setFromMatrixColumn(this,0),et.setFromMatrixColumn(this,1),tt.setFromMatrixColumn(this,2),this}makeBasis(o,et,tt){return this.set(o.x,et.x,tt.x,0,o.y,et.y,tt.y,0,o.z,et.z,tt.z,0,0,0,0,1),this}extractRotation(o){const et=this.elements,tt=o.elements,nt=1/_v1$5.setFromMatrixColumn(o,0).length(),rt=1/_v1$5.setFromMatrixColumn(o,1).length(),it=1/_v1$5.setFromMatrixColumn(o,2).length();return et[0]=tt[0]*nt,et[1]=tt[1]*nt,et[2]=tt[2]*nt,et[3]=0,et[4]=tt[4]*rt,et[5]=tt[5]*rt,et[6]=tt[6]*rt,et[7]=0,et[8]=tt[8]*it,et[9]=tt[9]*it,et[10]=tt[10]*it,et[11]=0,et[12]=0,et[13]=0,et[14]=0,et[15]=1,this}makeRotationFromEuler(o){const et=this.elements,tt=o.x,nt=o.y,rt=o.z,it=Math.cos(tt),ot=Math.sin(tt),st=Math.cos(nt),at=Math.sin(nt),lt=Math.cos(rt),ut=Math.sin(rt);if(o.order==="XYZ"){const dt=it*lt,ht=it*ut,ct=ot*lt,pt=ot*ut;et[0]=st*lt,et[4]=-st*ut,et[8]=at,et[1]=ht+ct*at,et[5]=dt-pt*at,et[9]=-ot*st,et[2]=pt-dt*at,et[6]=ct+ht*at,et[10]=it*st}else if(o.order==="YXZ"){const dt=st*lt,ht=st*ut,ct=at*lt,pt=at*ut;et[0]=dt+pt*ot,et[4]=ct*ot-ht,et[8]=it*at,et[1]=it*ut,et[5]=it*lt,et[9]=-ot,et[2]=ht*ot-ct,et[6]=pt+dt*ot,et[10]=it*st}else if(o.order==="ZXY"){const dt=st*lt,ht=st*ut,ct=at*lt,pt=at*ut;et[0]=dt-pt*ot,et[4]=-it*ut,et[8]=ct+ht*ot,et[1]=ht+ct*ot,et[5]=it*lt,et[9]=pt-dt*ot,et[2]=-it*at,et[6]=ot,et[10]=it*st}else if(o.order==="ZYX"){const dt=it*lt,ht=it*ut,ct=ot*lt,pt=ot*ut;et[0]=st*lt,et[4]=ct*at-ht,et[8]=dt*at+pt,et[1]=st*ut,et[5]=pt*at+dt,et[9]=ht*at-ct,et[2]=-at,et[6]=ot*st,et[10]=it*st}else if(o.order==="YZX"){const dt=it*st,ht=it*at,ct=ot*st,pt=ot*at;et[0]=st*lt,et[4]=pt-dt*ut,et[8]=ct*ut+ht,et[1]=ut,et[5]=it*lt,et[9]=-ot*lt,et[2]=-at*lt,et[6]=ht*ut+ct,et[10]=dt-pt*ut}else if(o.order==="XZY"){const dt=it*st,ht=it*at,ct=ot*st,pt=ot*at;et[0]=st*lt,et[4]=-ut,et[8]=at*lt,et[1]=dt*ut+pt,et[5]=it*lt,et[9]=ht*ut-ct,et[2]=ct*ut-ht,et[6]=ot*lt,et[10]=pt*ut+dt}return et[3]=0,et[7]=0,et[11]=0,et[12]=0,et[13]=0,et[14]=0,et[15]=1,this}makeRotationFromQuaternion(o){return this.compose(_zero,o,_one)}lookAt(o,et,tt){const nt=this.elements;return _z.subVectors(o,et),_z.lengthSq()===0&&(_z.z=1),_z.normalize(),_x.crossVectors(tt,_z),_x.lengthSq()===0&&(Math.abs(tt.z)===1?_z.x+=1e-4:_z.z+=1e-4,_z.normalize(),_x.crossVectors(tt,_z)),_x.normalize(),_y.crossVectors(_z,_x),nt[0]=_x.x,nt[4]=_y.x,nt[8]=_z.x,nt[1]=_x.y,nt[5]=_y.y,nt[9]=_z.y,nt[2]=_x.z,nt[6]=_y.z,nt[10]=_z.z,this}multiply(o){return this.multiplyMatrices(this,o)}premultiply(o){return this.multiplyMatrices(o,this)}multiplyMatrices(o,et){const tt=o.elements,nt=et.elements,rt=this.elements,it=tt[0],ot=tt[4],st=tt[8],at=tt[12],lt=tt[1],ut=tt[5],dt=tt[9],ht=tt[13],ct=tt[2],pt=tt[6],ft=tt[10],gt=tt[14],yt=tt[3],Ut=tt[7],Ft=tt[11],mt=tt[15],vt=nt[0],At=nt[4],Lt=nt[8],Rt=nt[12],St=nt[1],Tt=nt[5],Bt=nt[9],xt=nt[13],Ct=nt[2],kt=nt[6],Nt=nt[10],Ot=nt[14],Jt=nt[3],Dt=nt[7],Et=nt[11],Pt=nt[15];return rt[0]=it*vt+ot*St+st*Ct+at*Jt,rt[4]=it*At+ot*Tt+st*kt+at*Dt,rt[8]=it*Lt+ot*Bt+st*Nt+at*Et,rt[12]=it*Rt+ot*xt+st*Ot+at*Pt,rt[1]=lt*vt+ut*St+dt*Ct+ht*Jt,rt[5]=lt*At+ut*Tt+dt*kt+ht*Dt,rt[9]=lt*Lt+ut*Bt+dt*Nt+ht*Et,rt[13]=lt*Rt+ut*xt+dt*Ot+ht*Pt,rt[2]=ct*vt+pt*St+ft*Ct+gt*Jt,rt[6]=ct*At+pt*Tt+ft*kt+gt*Dt,rt[10]=ct*Lt+pt*Bt+ft*Nt+gt*Et,rt[14]=ct*Rt+pt*xt+ft*Ot+gt*Pt,rt[3]=yt*vt+Ut*St+Ft*Ct+mt*Jt,rt[7]=yt*At+Ut*Tt+Ft*kt+mt*Dt,rt[11]=yt*Lt+Ut*Bt+Ft*Nt+mt*Et,rt[15]=yt*Rt+Ut*xt+Ft*Ot+mt*Pt,this}multiplyScalar(o){const et=this.elements;return et[0]*=o,et[4]*=o,et[8]*=o,et[12]*=o,et[1]*=o,et[5]*=o,et[9]*=o,et[13]*=o,et[2]*=o,et[6]*=o,et[10]*=o,et[14]*=o,et[3]*=o,et[7]*=o,et[11]*=o,et[15]*=o,this}determinant(){const o=this.elements,et=o[0],tt=o[4],nt=o[8],rt=o[12],it=o[1],ot=o[5],st=o[9],at=o[13],lt=o[2],ut=o[6],dt=o[10],ht=o[14],ct=o[3],pt=o[7],ft=o[11],gt=o[15];return ct*(+rt*st*ut-nt*at*ut-rt*ot*dt+tt*at*dt+nt*ot*ht-tt*st*ht)+pt*(+et*st*ht-et*at*dt+rt*it*dt-nt*it*ht+nt*at*lt-rt*st*lt)+ft*(+et*at*ut-et*ot*ht-rt*it*ut+tt*it*ht+rt*ot*lt-tt*at*lt)+gt*(-nt*ot*lt-et*st*ut+et*ot*dt+nt*it*ut-tt*it*dt+tt*st*lt)}transpose(){const o=this.elements;let et;return et=o[1],o[1]=o[4],o[4]=et,et=o[2],o[2]=o[8],o[8]=et,et=o[6],o[6]=o[9],o[9]=et,et=o[3],o[3]=o[12],o[12]=et,et=o[7],o[7]=o[13],o[13]=et,et=o[11],o[11]=o[14],o[14]=et,this}setPosition(o,et,tt){const nt=this.elements;return o.isVector3?(nt[12]=o.x,nt[13]=o.y,nt[14]=o.z):(nt[12]=o,nt[13]=et,nt[14]=tt),this}invert(){const o=this.elements,et=o[0],tt=o[1],nt=o[2],rt=o[3],it=o[4],ot=o[5],st=o[6],at=o[7],lt=o[8],ut=o[9],dt=o[10],ht=o[11],ct=o[12],pt=o[13],ft=o[14],gt=o[15],yt=ut*ft*at-pt*dt*at+pt*st*ht-ot*ft*ht-ut*st*gt+ot*dt*gt,Ut=ct*dt*at-lt*ft*at-ct*st*ht+it*ft*ht+lt*st*gt-it*dt*gt,Ft=lt*pt*at-ct*ut*at+ct*ot*ht-it*pt*ht-lt*ot*gt+it*ut*gt,mt=ct*ut*st-lt*pt*st-ct*ot*dt+it*pt*dt+lt*ot*ft-it*ut*ft,vt=et*yt+tt*Ut+nt*Ft+rt*mt;if(vt===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const At=1/vt;return o[0]=yt*At,o[1]=(pt*dt*rt-ut*ft*rt-pt*nt*ht+tt*ft*ht+ut*nt*gt-tt*dt*gt)*At,o[2]=(ot*ft*rt-pt*st*rt+pt*nt*at-tt*ft*at-ot*nt*gt+tt*st*gt)*At,o[3]=(ut*st*rt-ot*dt*rt-ut*nt*at+tt*dt*at+ot*nt*ht-tt*st*ht)*At,o[4]=Ut*At,o[5]=(lt*ft*rt-ct*dt*rt+ct*nt*ht-et*ft*ht-lt*nt*gt+et*dt*gt)*At,o[6]=(ct*st*rt-it*ft*rt-ct*nt*at+et*ft*at+it*nt*gt-et*st*gt)*At,o[7]=(it*dt*rt-lt*st*rt+lt*nt*at-et*dt*at-it*nt*ht+et*st*ht)*At,o[8]=Ft*At,o[9]=(ct*ut*rt-lt*pt*rt-ct*tt*ht+et*pt*ht+lt*tt*gt-et*ut*gt)*At,o[10]=(it*pt*rt-ct*ot*rt+ct*tt*at-et*pt*at-it*tt*gt+et*ot*gt)*At,o[11]=(lt*ot*rt-it*ut*rt-lt*tt*at+et*ut*at+it*tt*ht-et*ot*ht)*At,o[12]=mt*At,o[13]=(lt*pt*nt-ct*ut*nt+ct*tt*dt-et*pt*dt-lt*tt*ft+et*ut*ft)*At,o[14]=(ct*ot*nt-it*pt*nt-ct*tt*st+et*pt*st+it*tt*ft-et*ot*ft)*At,o[15]=(it*ut*nt-lt*ot*nt+lt*tt*st-et*ut*st-it*tt*dt+et*ot*dt)*At,this}scale(o){const et=this.elements,tt=o.x,nt=o.y,rt=o.z;return et[0]*=tt,et[4]*=nt,et[8]*=rt,et[1]*=tt,et[5]*=nt,et[9]*=rt,et[2]*=tt,et[6]*=nt,et[10]*=rt,et[3]*=tt,et[7]*=nt,et[11]*=rt,this}getMaxScaleOnAxis(){const o=this.elements,et=o[0]*o[0]+o[1]*o[1]+o[2]*o[2],tt=o[4]*o[4]+o[5]*o[5]+o[6]*o[6],nt=o[8]*o[8]+o[9]*o[9]+o[10]*o[10];return Math.sqrt(Math.max(et,tt,nt))}makeTranslation(o,et,tt){return o.isVector3?this.set(1,0,0,o.x,0,1,0,o.y,0,0,1,o.z,0,0,0,1):this.set(1,0,0,o,0,1,0,et,0,0,1,tt,0,0,0,1),this}makeRotationX(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(1,0,0,0,0,et,-tt,0,0,tt,et,0,0,0,0,1),this}makeRotationY(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(et,0,tt,0,0,1,0,0,-tt,0,et,0,0,0,0,1),this}makeRotationZ(o){const et=Math.cos(o),tt=Math.sin(o);return this.set(et,-tt,0,0,tt,et,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(o,et){const tt=Math.cos(et),nt=Math.sin(et),rt=1-tt,it=o.x,ot=o.y,st=o.z,at=rt*it,lt=rt*ot;return this.set(at*it+tt,at*ot-nt*st,at*st+nt*ot,0,at*ot+nt*st,lt*ot+tt,lt*st-nt*it,0,at*st-nt*ot,lt*st+nt*it,rt*st*st+tt,0,0,0,0,1),this}makeScale(o,et,tt){return this.set(o,0,0,0,0,et,0,0,0,0,tt,0,0,0,0,1),this}makeShear(o,et,tt,nt,rt,it){return this.set(1,tt,rt,0,o,1,it,0,et,nt,1,0,0,0,0,1),this}compose(o,et,tt){const nt=this.elements,rt=et._x,it=et._y,ot=et._z,st=et._w,at=rt+rt,lt=it+it,ut=ot+ot,dt=rt*at,ht=rt*lt,ct=rt*ut,pt=it*lt,ft=it*ut,gt=ot*ut,yt=st*at,Ut=st*lt,Ft=st*ut,mt=tt.x,vt=tt.y,At=tt.z;return nt[0]=(1-(pt+gt))*mt,nt[1]=(ht+Ft)*mt,nt[2]=(ct-Ut)*mt,nt[3]=0,nt[4]=(ht-Ft)*vt,nt[5]=(1-(dt+gt))*vt,nt[6]=(ft+yt)*vt,nt[7]=0,nt[8]=(ct+Ut)*At,nt[9]=(ft-yt)*At,nt[10]=(1-(dt+pt))*At,nt[11]=0,nt[12]=o.x,nt[13]=o.y,nt[14]=o.z,nt[15]=1,this}decompose(o,et,tt){const nt=this.elements;let rt=_v1$5.set(nt[0],nt[1],nt[2]).length();const it=_v1$5.set(nt[4],nt[5],nt[6]).length(),ot=_v1$5.set(nt[8],nt[9],nt[10]).length();this.determinant()<0&&(rt=-rt),o.x=nt[12],o.y=nt[13],o.z=nt[14],_m1$4.copy(this);const at=1/rt,lt=1/it,ut=1/ot;return _m1$4.elements[0]*=at,_m1$4.elements[1]*=at,_m1$4.elements[2]*=at,_m1$4.elements[4]*=lt,_m1$4.elements[5]*=lt,_m1$4.elements[6]*=lt,_m1$4.elements[8]*=ut,_m1$4.elements[9]*=ut,_m1$4.elements[10]*=ut,et.setFromRotationMatrix(_m1$4),tt.x=rt,tt.y=it,tt.z=ot,this}makePerspective(o,et,tt,nt,rt,it,ot=WebGLCoordinateSystem){const st=this.elements,at=2*rt/(et-o),lt=2*rt/(tt-nt),ut=(et+o)/(et-o),dt=(tt+nt)/(tt-nt);let ht,ct;if(ot===WebGLCoordinateSystem)ht=-(it+rt)/(it-rt),ct=-2*it*rt/(it-rt);else if(ot===WebGPUCoordinateSystem)ht=-it/(it-rt),ct=-it*rt/(it-rt);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+ot);return st[0]=at,st[4]=0,st[8]=ut,st[12]=0,st[1]=0,st[5]=lt,st[9]=dt,st[13]=0,st[2]=0,st[6]=0,st[10]=ht,st[14]=ct,st[3]=0,st[7]=0,st[11]=-1,st[15]=0,this}makeOrthographic(o,et,tt,nt,rt,it,ot=WebGLCoordinateSystem){const st=this.elements,at=1/(et-o),lt=1/(tt-nt),ut=1/(it-rt),dt=(et+o)*at,ht=(tt+nt)*lt;let ct,pt;if(ot===WebGLCoordinateSystem)ct=(it+rt)*ut,pt=-2*ut;else if(ot===WebGPUCoordinateSystem)ct=rt*ut,pt=-1*ut;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+ot);return st[0]=2*at,st[4]=0,st[8]=0,st[12]=-dt,st[1]=0,st[5]=2*lt,st[9]=0,st[13]=-ht,st[2]=0,st[6]=0,st[10]=pt,st[14]=-ct,st[3]=0,st[7]=0,st[11]=0,st[15]=1,this}equals(o){const et=this.elements,tt=o.elements;for(let nt=0;nt<16;nt++)if(et[nt]!==tt[nt])return!1;return!0}fromArray(o,et=0){for(let tt=0;tt<16;tt++)this.elements[tt]=o[tt+et];return this}toArray(o=[],et=0){const tt=this.elements;return o[et]=tt[0],o[et+1]=tt[1],o[et+2]=tt[2],o[et+3]=tt[3],o[et+4]=tt[4],o[et+5]=tt[5],o[et+6]=tt[6],o[et+7]=tt[7],o[et+8]=tt[8],o[et+9]=tt[9],o[et+10]=tt[10],o[et+11]=tt[11],o[et+12]=tt[12],o[et+13]=tt[13],o[et+14]=tt[14],o[et+15]=tt[15],o}}const _v1$5=new Vector3,_m1$4=new Matrix4,_zero=new Vector3(0,0,0),_one=new Vector3(1,1,1),_x=new Vector3,_y=new Vector3,_z=new Vector3,_matrix$2=new Matrix4,_quaternion$3=new Quaternion;class Euler{constructor(o=0,et=0,tt=0,nt=Euler.DEFAULT_ORDER){this.isEuler=!0,this._x=o,this._y=et,this._z=tt,this._order=nt}get x(){return this._x}set x(o){this._x=o,this._onChangeCallback()}get y(){return this._y}set y(o){this._y=o,this._onChangeCallback()}get z(){return this._z}set z(o){this._z=o,this._onChangeCallback()}get order(){return this._order}set order(o){this._order=o,this._onChangeCallback()}set(o,et,tt,nt=this._order){return this._x=o,this._y=et,this._z=tt,this._order=nt,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(o){return this._x=o._x,this._y=o._y,this._z=o._z,this._order=o._order,this._onChangeCallback(),this}setFromRotationMatrix(o,et=this._order,tt=!0){const nt=o.elements,rt=nt[0],it=nt[4],ot=nt[8],st=nt[1],at=nt[5],lt=nt[9],ut=nt[2],dt=nt[6],ht=nt[10];switch(et){case"XYZ":this._y=Math.asin(clamp$4(ot,-1,1)),Math.abs(ot)<.9999999?(this._x=Math.atan2(-lt,ht),this._z=Math.atan2(-it,rt)):(this._x=Math.atan2(dt,at),this._z=0);break;case"YXZ":this._x=Math.asin(-clamp$4(lt,-1,1)),Math.abs(lt)<.9999999?(this._y=Math.atan2(ot,ht),this._z=Math.atan2(st,at)):(this._y=Math.atan2(-ut,rt),this._z=0);break;case"ZXY":this._x=Math.asin(clamp$4(dt,-1,1)),Math.abs(dt)<.9999999?(this._y=Math.atan2(-ut,ht),this._z=Math.atan2(-it,at)):(this._y=0,this._z=Math.atan2(st,rt));break;case"ZYX":this._y=Math.asin(-clamp$4(ut,-1,1)),Math.abs(ut)<.9999999?(this._x=Math.atan2(dt,ht),this._z=Math.atan2(st,rt)):(this._x=0,this._z=Math.atan2(-it,at));break;case"YZX":this._z=Math.asin(clamp$4(st,-1,1)),Math.abs(st)<.9999999?(this._x=Math.atan2(-lt,at),this._y=Math.atan2(-ut,rt)):(this._x=0,this._y=Math.atan2(ot,ht));break;case"XZY":this._z=Math.asin(-clamp$4(it,-1,1)),Math.abs(it)<.9999999?(this._x=Math.atan2(dt,at),this._y=Math.atan2(ot,rt)):(this._x=Math.atan2(-lt,ht),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+et)}return this._order=et,tt===!0&&this._onChangeCallback(),this}setFromQuaternion(o,et,tt){return _matrix$2.makeRotationFromQuaternion(o),this.setFromRotationMatrix(_matrix$2,et,tt)}setFromVector3(o,et=this._order){return this.set(o.x,o.y,o.z,et)}reorder(o){return _quaternion$3.setFromEuler(this),this.setFromQuaternion(_quaternion$3,o)}equals(o){return o._x===this._x&&o._y===this._y&&o._z===this._z&&o._order===this._order}fromArray(o){return this._x=o[0],this._y=o[1],this._z=o[2],o[3]!==void 0&&(this._order=o[3]),this._onChangeCallback(),this}toArray(o=[],et=0){return o[et]=this._x,o[et+1]=this._y,o[et+2]=this._z,o[et+3]=this._order,o}_onChange(o){return this._onChangeCallback=o,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Euler.DEFAULT_ORDER="XYZ";class Layers{constructor(){this.mask=1}set(o){this.mask=(1<>>0}enable(o){this.mask|=1<1){for(let et=0;et1){for(let tt=0;tt0&&(nt.userData=this.userData),nt.layers=this.layers.mask,nt.matrix=this.matrix.toArray(),nt.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(nt.matrixAutoUpdate=!1),this.isInstancedMesh&&(nt.type="InstancedMesh",nt.count=this.count,nt.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(nt.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(nt.type="BatchedMesh",nt.perObjectFrustumCulled=this.perObjectFrustumCulled,nt.sortObjects=this.sortObjects,nt.drawRanges=this._drawRanges,nt.reservedRanges=this._reservedRanges,nt.visibility=this._visibility,nt.active=this._active,nt.bounds=this._bounds.map(ot=>({boxInitialized:ot.boxInitialized,boxMin:ot.box.min.toArray(),boxMax:ot.box.max.toArray(),sphereInitialized:ot.sphereInitialized,sphereRadius:ot.sphere.radius,sphereCenter:ot.sphere.center.toArray()})),nt.maxGeometryCount=this._maxGeometryCount,nt.maxVertexCount=this._maxVertexCount,nt.maxIndexCount=this._maxIndexCount,nt.geometryInitialized=this._geometryInitialized,nt.geometryCount=this._geometryCount,nt.matricesTexture=this._matricesTexture.toJSON(o),this._colorsTexture!==null&&(nt.colorsTexture=this._colorsTexture.toJSON(o)),this.boundingSphere!==null&&(nt.boundingSphere={center:nt.boundingSphere.center.toArray(),radius:nt.boundingSphere.radius}),this.boundingBox!==null&&(nt.boundingBox={min:nt.boundingBox.min.toArray(),max:nt.boundingBox.max.toArray()}));function rt(ot,st){return ot[st.uuid]===void 0&&(ot[st.uuid]=st.toJSON(o)),st.uuid}if(this.isScene)this.background&&(this.background.isColor?nt.background=this.background.toJSON():this.background.isTexture&&(nt.background=this.background.toJSON(o).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(nt.environment=this.environment.toJSON(o).uuid);else if(this.isMesh||this.isLine||this.isPoints){nt.geometry=rt(o.geometries,this.geometry);const ot=this.geometry.parameters;if(ot!==void 0&&ot.shapes!==void 0){const st=ot.shapes;if(Array.isArray(st))for(let at=0,lt=st.length;at0){nt.children=[];for(let ot=0;ot0){nt.animations=[];for(let ot=0;ot0&&(tt.geometries=ot),st.length>0&&(tt.materials=st),at.length>0&&(tt.textures=at),lt.length>0&&(tt.images=lt),ut.length>0&&(tt.shapes=ut),dt.length>0&&(tt.skeletons=dt),ht.length>0&&(tt.animations=ht),ct.length>0&&(tt.nodes=ct)}return tt.object=nt,tt;function it(ot){const st=[];for(const at in ot){const lt=ot[at];delete lt.metadata,st.push(lt)}return st}}clone(o){return new this.constructor().copy(this,o)}copy(o,et=!0){if(this.name=o.name,this.up.copy(o.up),this.position.copy(o.position),this.rotation.order=o.rotation.order,this.quaternion.copy(o.quaternion),this.scale.copy(o.scale),this.matrix.copy(o.matrix),this.matrixWorld.copy(o.matrixWorld),this.matrixAutoUpdate=o.matrixAutoUpdate,this.matrixWorldAutoUpdate=o.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=o.matrixWorldNeedsUpdate,this.layers.mask=o.layers.mask,this.visible=o.visible,this.castShadow=o.castShadow,this.receiveShadow=o.receiveShadow,this.frustumCulled=o.frustumCulled,this.renderOrder=o.renderOrder,this.animations=o.animations.slice(),this.userData=JSON.parse(JSON.stringify(o.userData)),et===!0)for(let tt=0;tt0?nt.multiplyScalar(1/Math.sqrt(rt)):nt.set(0,0,0)}static getBarycoord(o,et,tt,nt,rt){_v0$1.subVectors(nt,et),_v1$3.subVectors(tt,et),_v2$2.subVectors(o,et);const it=_v0$1.dot(_v0$1),ot=_v0$1.dot(_v1$3),st=_v0$1.dot(_v2$2),at=_v1$3.dot(_v1$3),lt=_v1$3.dot(_v2$2),ut=it*at-ot*ot;if(ut===0)return rt.set(0,0,0),null;const dt=1/ut,ht=(at*st-ot*lt)*dt,ct=(it*lt-ot*st)*dt;return rt.set(1-ht-ct,ct,ht)}static containsPoint(o,et,tt,nt){return this.getBarycoord(o,et,tt,nt,_v3$2)===null?!1:_v3$2.x>=0&&_v3$2.y>=0&&_v3$2.x+_v3$2.y<=1}static getInterpolation(o,et,tt,nt,rt,it,ot,st){return this.getBarycoord(o,et,tt,nt,_v3$2)===null?(st.x=0,st.y=0,"z"in st&&(st.z=0),"w"in st&&(st.w=0),null):(st.setScalar(0),st.addScaledVector(rt,_v3$2.x),st.addScaledVector(it,_v3$2.y),st.addScaledVector(ot,_v3$2.z),st)}static isFrontFacing(o,et,tt,nt){return _v0$1.subVectors(tt,et),_v1$3.subVectors(o,et),_v0$1.cross(_v1$3).dot(nt)<0}set(o,et,tt){return this.a.copy(o),this.b.copy(et),this.c.copy(tt),this}setFromPointsAndIndices(o,et,tt,nt){return this.a.copy(o[et]),this.b.copy(o[tt]),this.c.copy(o[nt]),this}setFromAttributeAndIndices(o,et,tt,nt){return this.a.fromBufferAttribute(o,et),this.b.fromBufferAttribute(o,tt),this.c.fromBufferAttribute(o,nt),this}clone(){return new this.constructor().copy(this)}copy(o){return this.a.copy(o.a),this.b.copy(o.b),this.c.copy(o.c),this}getArea(){return _v0$1.subVectors(this.c,this.b),_v1$3.subVectors(this.a,this.b),_v0$1.cross(_v1$3).length()*.5}getMidpoint(o){return o.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(o){return Triangle.getNormal(this.a,this.b,this.c,o)}getPlane(o){return o.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(o,et){return Triangle.getBarycoord(o,this.a,this.b,this.c,et)}getInterpolation(o,et,tt,nt,rt){return Triangle.getInterpolation(o,this.a,this.b,this.c,et,tt,nt,rt)}containsPoint(o){return Triangle.containsPoint(o,this.a,this.b,this.c)}isFrontFacing(o){return Triangle.isFrontFacing(this.a,this.b,this.c,o)}intersectsBox(o){return o.intersectsTriangle(this)}closestPointToPoint(o,et){const tt=this.a,nt=this.b,rt=this.c;let it,ot;_vab.subVectors(nt,tt),_vac.subVectors(rt,tt),_vap.subVectors(o,tt);const st=_vab.dot(_vap),at=_vac.dot(_vap);if(st<=0&&at<=0)return et.copy(tt);_vbp.subVectors(o,nt);const lt=_vab.dot(_vbp),ut=_vac.dot(_vbp);if(lt>=0&&ut<=lt)return et.copy(nt);const dt=st*ut-lt*at;if(dt<=0&&st>=0&<<=0)return it=st/(st-lt),et.copy(tt).addScaledVector(_vab,it);_vcp.subVectors(o,rt);const ht=_vab.dot(_vcp),ct=_vac.dot(_vcp);if(ct>=0&&ht<=ct)return et.copy(rt);const pt=ht*at-st*ct;if(pt<=0&&at>=0&&ct<=0)return ot=at/(at-ct),et.copy(tt).addScaledVector(_vac,ot);const ft=lt*ct-ht*ut;if(ft<=0&&ut-lt>=0&&ht-ct>=0)return _vbc.subVectors(rt,nt),ot=(ut-lt)/(ut-lt+(ht-ct)),et.copy(nt).addScaledVector(_vbc,ot);const gt=1/(ft+pt+dt);return it=pt*gt,ot=dt*gt,et.copy(tt).addScaledVector(_vab,it).addScaledVector(_vac,ot)}equals(o){return o.a.equals(this.a)&&o.b.equals(this.b)&&o.c.equals(this.c)}}const _colorKeywords={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},_hslA={h:0,s:0,l:0},_hslB={h:0,s:0,l:0};function hue2rgb(s,o,et){return et<0&&(et+=1),et>1&&(et-=1),et<1/6?s+(o-s)*6*et:et<1/2?o:et<2/3?s+(o-s)*6*(2/3-et):s}let Color$2=class{constructor(o,et,tt){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(o,et,tt)}set(o,et,tt){if(et===void 0&&tt===void 0){const nt=o;nt&&nt.isColor?this.copy(nt):typeof nt=="number"?this.setHex(nt):typeof nt=="string"&&this.setStyle(nt)}else this.setRGB(o,et,tt);return this}setScalar(o){return this.r=o,this.g=o,this.b=o,this}setHex(o,et=SRGBColorSpace$1){return o=Math.floor(o),this.r=(o>>16&255)/255,this.g=(o>>8&255)/255,this.b=(o&255)/255,ColorManagement.toWorkingColorSpace(this,et),this}setRGB(o,et,tt,nt=ColorManagement.workingColorSpace){return this.r=o,this.g=et,this.b=tt,ColorManagement.toWorkingColorSpace(this,nt),this}setHSL(o,et,tt,nt=ColorManagement.workingColorSpace){if(o=euclideanModulo(o,1),et=clamp$4(et,0,1),tt=clamp$4(tt,0,1),et===0)this.r=this.g=this.b=tt;else{const rt=tt<=.5?tt*(1+et):tt+et-tt*et,it=2*tt-rt;this.r=hue2rgb(it,rt,o+1/3),this.g=hue2rgb(it,rt,o),this.b=hue2rgb(it,rt,o-1/3)}return ColorManagement.toWorkingColorSpace(this,nt),this}setStyle(o,et=SRGBColorSpace$1){function tt(rt){rt!==void 0&&parseFloat(rt)<1&&console.warn("THREE.Color: Alpha component of "+o+" will be ignored.")}let nt;if(nt=/^(\w+)\(([^\)]*)\)/.exec(o)){let rt;const it=nt[1],ot=nt[2];switch(it){case"rgb":case"rgba":if(rt=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ot))return tt(rt[4]),this.setRGB(Math.min(255,parseInt(rt[1],10))/255,Math.min(255,parseInt(rt[2],10))/255,Math.min(255,parseInt(rt[3],10))/255,et);if(rt=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ot))return tt(rt[4]),this.setRGB(Math.min(100,parseInt(rt[1],10))/100,Math.min(100,parseInt(rt[2],10))/100,Math.min(100,parseInt(rt[3],10))/100,et);break;case"hsl":case"hsla":if(rt=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ot))return tt(rt[4]),this.setHSL(parseFloat(rt[1])/360,parseFloat(rt[2])/100,parseFloat(rt[3])/100,et);break;default:console.warn("THREE.Color: Unknown color model "+o)}}else if(nt=/^\#([A-Fa-f\d]+)$/.exec(o)){const rt=nt[1],it=rt.length;if(it===3)return this.setRGB(parseInt(rt.charAt(0),16)/15,parseInt(rt.charAt(1),16)/15,parseInt(rt.charAt(2),16)/15,et);if(it===6)return this.setHex(parseInt(rt,16),et);console.warn("THREE.Color: Invalid hex color "+o)}else if(o&&o.length>0)return this.setColorName(o,et);return this}setColorName(o,et=SRGBColorSpace$1){const tt=_colorKeywords[o.toLowerCase()];return tt!==void 0?this.setHex(tt,et):console.warn("THREE.Color: Unknown color "+o),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(o){return this.r=o.r,this.g=o.g,this.b=o.b,this}copySRGBToLinear(o){return this.r=SRGBToLinear(o.r),this.g=SRGBToLinear(o.g),this.b=SRGBToLinear(o.b),this}copyLinearToSRGB(o){return this.r=LinearToSRGB(o.r),this.g=LinearToSRGB(o.g),this.b=LinearToSRGB(o.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(o=SRGBColorSpace$1){return ColorManagement.fromWorkingColorSpace(_color.copy(this),o),Math.round(clamp$4(_color.r*255,0,255))*65536+Math.round(clamp$4(_color.g*255,0,255))*256+Math.round(clamp$4(_color.b*255,0,255))}getHexString(o=SRGBColorSpace$1){return("000000"+this.getHex(o).toString(16)).slice(-6)}getHSL(o,et=ColorManagement.workingColorSpace){ColorManagement.fromWorkingColorSpace(_color.copy(this),et);const tt=_color.r,nt=_color.g,rt=_color.b,it=Math.max(tt,nt,rt),ot=Math.min(tt,nt,rt);let st,at;const lt=(ot+it)/2;if(ot===it)st=0,at=0;else{const ut=it-ot;switch(at=lt<=.5?ut/(it+ot):ut/(2-it-ot),it){case tt:st=(nt-rt)/ut+(nt0!=o>0&&this.version++,this._alphaTest=o}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(o){if(o!==void 0)for(const et in o){const tt=o[et];if(tt===void 0){console.warn(`THREE.Material: parameter '${et}' has value of undefined.`);continue}const nt=this[et];if(nt===void 0){console.warn(`THREE.Material: '${et}' is not a property of THREE.${this.type}.`);continue}nt&&nt.isColor?nt.set(tt):nt&&nt.isVector3&&tt&&tt.isVector3?nt.copy(tt):this[et]=tt}}toJSON(o){const et=o===void 0||typeof o=="string";et&&(o={textures:{},images:{}});const tt={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};tt.uuid=this.uuid,tt.type=this.type,this.name!==""&&(tt.name=this.name),this.color&&this.color.isColor&&(tt.color=this.color.getHex()),this.roughness!==void 0&&(tt.roughness=this.roughness),this.metalness!==void 0&&(tt.metalness=this.metalness),this.sheen!==void 0&&(tt.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(tt.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(tt.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(tt.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(tt.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(tt.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(tt.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(tt.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(tt.shininess=this.shininess),this.clearcoat!==void 0&&(tt.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(tt.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(tt.clearcoatMap=this.clearcoatMap.toJSON(o).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(tt.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(o).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(tt.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(o).uuid,tt.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.dispersion!==void 0&&(tt.dispersion=this.dispersion),this.iridescence!==void 0&&(tt.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(tt.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(tt.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(tt.iridescenceMap=this.iridescenceMap.toJSON(o).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(tt.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(o).uuid),this.anisotropy!==void 0&&(tt.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(tt.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(tt.anisotropyMap=this.anisotropyMap.toJSON(o).uuid),this.map&&this.map.isTexture&&(tt.map=this.map.toJSON(o).uuid),this.matcap&&this.matcap.isTexture&&(tt.matcap=this.matcap.toJSON(o).uuid),this.alphaMap&&this.alphaMap.isTexture&&(tt.alphaMap=this.alphaMap.toJSON(o).uuid),this.lightMap&&this.lightMap.isTexture&&(tt.lightMap=this.lightMap.toJSON(o).uuid,tt.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(tt.aoMap=this.aoMap.toJSON(o).uuid,tt.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(tt.bumpMap=this.bumpMap.toJSON(o).uuid,tt.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(tt.normalMap=this.normalMap.toJSON(o).uuid,tt.normalMapType=this.normalMapType,tt.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(tt.displacementMap=this.displacementMap.toJSON(o).uuid,tt.displacementScale=this.displacementScale,tt.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(tt.roughnessMap=this.roughnessMap.toJSON(o).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(tt.metalnessMap=this.metalnessMap.toJSON(o).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(tt.emissiveMap=this.emissiveMap.toJSON(o).uuid),this.specularMap&&this.specularMap.isTexture&&(tt.specularMap=this.specularMap.toJSON(o).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(tt.specularIntensityMap=this.specularIntensityMap.toJSON(o).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(tt.specularColorMap=this.specularColorMap.toJSON(o).uuid),this.envMap&&this.envMap.isTexture&&(tt.envMap=this.envMap.toJSON(o).uuid,this.combine!==void 0&&(tt.combine=this.combine)),this.envMapRotation!==void 0&&(tt.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(tt.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(tt.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(tt.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(tt.gradientMap=this.gradientMap.toJSON(o).uuid),this.transmission!==void 0&&(tt.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(tt.transmissionMap=this.transmissionMap.toJSON(o).uuid),this.thickness!==void 0&&(tt.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(tt.thicknessMap=this.thicknessMap.toJSON(o).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(tt.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(tt.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(tt.size=this.size),this.shadowSide!==null&&(tt.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(tt.sizeAttenuation=this.sizeAttenuation),this.blending!==NormalBlending&&(tt.blending=this.blending),this.side!==FrontSide&&(tt.side=this.side),this.vertexColors===!0&&(tt.vertexColors=!0),this.opacity<1&&(tt.opacity=this.opacity),this.transparent===!0&&(tt.transparent=!0),this.blendSrc!==SrcAlphaFactor&&(tt.blendSrc=this.blendSrc),this.blendDst!==OneMinusSrcAlphaFactor&&(tt.blendDst=this.blendDst),this.blendEquation!==AddEquation&&(tt.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(tt.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(tt.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(tt.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(tt.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(tt.blendAlpha=this.blendAlpha),this.depthFunc!==LessEqualDepth&&(tt.depthFunc=this.depthFunc),this.depthTest===!1&&(tt.depthTest=this.depthTest),this.depthWrite===!1&&(tt.depthWrite=this.depthWrite),this.colorWrite===!1&&(tt.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(tt.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==AlwaysStencilFunc&&(tt.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(tt.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(tt.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==KeepStencilOp&&(tt.stencilFail=this.stencilFail),this.stencilZFail!==KeepStencilOp&&(tt.stencilZFail=this.stencilZFail),this.stencilZPass!==KeepStencilOp&&(tt.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(tt.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(tt.rotation=this.rotation),this.polygonOffset===!0&&(tt.polygonOffset=!0),this.polygonOffsetFactor!==0&&(tt.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(tt.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(tt.linewidth=this.linewidth),this.dashSize!==void 0&&(tt.dashSize=this.dashSize),this.gapSize!==void 0&&(tt.gapSize=this.gapSize),this.scale!==void 0&&(tt.scale=this.scale),this.dithering===!0&&(tt.dithering=!0),this.alphaTest>0&&(tt.alphaTest=this.alphaTest),this.alphaHash===!0&&(tt.alphaHash=!0),this.alphaToCoverage===!0&&(tt.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(tt.premultipliedAlpha=!0),this.forceSinglePass===!0&&(tt.forceSinglePass=!0),this.wireframe===!0&&(tt.wireframe=!0),this.wireframeLinewidth>1&&(tt.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(tt.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(tt.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(tt.flatShading=!0),this.visible===!1&&(tt.visible=!1),this.toneMapped===!1&&(tt.toneMapped=!1),this.fog===!1&&(tt.fog=!1),Object.keys(this.userData).length>0&&(tt.userData=this.userData);function nt(rt){const it=[];for(const ot in rt){const st=rt[ot];delete st.metadata,it.push(st)}return it}if(et){const rt=nt(o.textures),it=nt(o.images);rt.length>0&&(tt.textures=rt),it.length>0&&(tt.images=it)}return tt}clone(){return new this.constructor().copy(this)}copy(o){this.name=o.name,this.blending=o.blending,this.side=o.side,this.vertexColors=o.vertexColors,this.opacity=o.opacity,this.transparent=o.transparent,this.blendSrc=o.blendSrc,this.blendDst=o.blendDst,this.blendEquation=o.blendEquation,this.blendSrcAlpha=o.blendSrcAlpha,this.blendDstAlpha=o.blendDstAlpha,this.blendEquationAlpha=o.blendEquationAlpha,this.blendColor.copy(o.blendColor),this.blendAlpha=o.blendAlpha,this.depthFunc=o.depthFunc,this.depthTest=o.depthTest,this.depthWrite=o.depthWrite,this.stencilWriteMask=o.stencilWriteMask,this.stencilFunc=o.stencilFunc,this.stencilRef=o.stencilRef,this.stencilFuncMask=o.stencilFuncMask,this.stencilFail=o.stencilFail,this.stencilZFail=o.stencilZFail,this.stencilZPass=o.stencilZPass,this.stencilWrite=o.stencilWrite;const et=o.clippingPlanes;let tt=null;if(et!==null){const nt=et.length;tt=new Array(nt);for(let rt=0;rt!==nt;++rt)tt[rt]=et[rt].clone()}return this.clippingPlanes=tt,this.clipIntersection=o.clipIntersection,this.clipShadows=o.clipShadows,this.shadowSide=o.shadowSide,this.colorWrite=o.colorWrite,this.precision=o.precision,this.polygonOffset=o.polygonOffset,this.polygonOffsetFactor=o.polygonOffsetFactor,this.polygonOffsetUnits=o.polygonOffsetUnits,this.dithering=o.dithering,this.alphaTest=o.alphaTest,this.alphaHash=o.alphaHash,this.alphaToCoverage=o.alphaToCoverage,this.premultipliedAlpha=o.premultipliedAlpha,this.forceSinglePass=o.forceSinglePass,this.visible=o.visible,this.toneMapped=o.toneMapped,this.userData=JSON.parse(JSON.stringify(o.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(o){o===!0&&this.version++}}class MeshBasicMaterial extends Material{constructor(o){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Color$2(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.map=o.map,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.specularMap=o.specularMap,this.alphaMap=o.alphaMap,this.envMap=o.envMap,this.envMapRotation.copy(o.envMapRotation),this.combine=o.combine,this.reflectivity=o.reflectivity,this.refractionRatio=o.refractionRatio,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.fog=o.fog,this}}const _tables=_generateTables();function _generateTables(){const s=new ArrayBuffer(4),o=new Float32Array(s),et=new Uint32Array(s),tt=new Uint32Array(512),nt=new Uint32Array(512);for(let st=0;st<256;++st){const at=st-127;at<-27?(tt[st]=0,tt[st|256]=32768,nt[st]=24,nt[st|256]=24):at<-14?(tt[st]=1024>>-at-14,tt[st|256]=1024>>-at-14|32768,nt[st]=-at-1,nt[st|256]=-at-1):at<=15?(tt[st]=at+15<<10,tt[st|256]=at+15<<10|32768,nt[st]=13,nt[st|256]=13):at<128?(tt[st]=31744,tt[st|256]=64512,nt[st]=24,nt[st|256]=24):(tt[st]=31744,tt[st|256]=64512,nt[st]=13,nt[st|256]=13)}const rt=new Uint32Array(2048),it=new Uint32Array(64),ot=new Uint32Array(64);for(let st=1;st<1024;++st){let at=st<<13,lt=0;for(;!(at&8388608);)at<<=1,lt-=8388608;at&=-8388609,lt+=947912704,rt[st]=at|lt}for(let st=1024;st<2048;++st)rt[st]=939524096+(st-1024<<13);for(let st=1;st<31;++st)it[st]=st<<23;it[31]=1199570944,it[32]=2147483648;for(let st=33;st<63;++st)it[st]=2147483648+(st-32<<23);it[63]=3347054592;for(let st=1;st<64;++st)st!==32&&(ot[st]=1024);return{floatView:o,uint32View:et,baseTable:tt,shiftTable:nt,mantissaTable:rt,exponentTable:it,offsetTable:ot}}function toHalfFloat(s){Math.abs(s)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),s=clamp$4(s,-65504,65504),_tables.floatView[0]=s;const o=_tables.uint32View[0],et=o>>23&511;return _tables.baseTable[et]+((o&8388607)>>_tables.shiftTable[et])}function fromHalfFloat(s){const o=s>>10;return _tables.uint32View[0]=_tables.mantissaTable[_tables.offsetTable[o]+(s&1023)]+_tables.exponentTable[o],_tables.floatView[0]}const DataUtils={toHalfFloat,fromHalfFloat},_vector$9=new Vector3,_vector2$1=new Vector2;class BufferAttribute{constructor(o,et,tt=!1){if(Array.isArray(o))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=o,this.itemSize=et,this.count=o!==void 0?o.length/et:0,this.normalized=tt,this.usage=StaticDrawUsage,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=FloatType,this.version=0}onUploadCallback(){}set needsUpdate(o){o===!0&&this.version++}get updateRange(){return warnOnce("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(o){return this.usage=o,this}addUpdateRange(o,et){this.updateRanges.push({start:o,count:et})}clearUpdateRanges(){this.updateRanges.length=0}copy(o){return this.name=o.name,this.array=new o.array.constructor(o.array),this.itemSize=o.itemSize,this.count=o.count,this.normalized=o.normalized,this.usage=o.usage,this.gpuType=o.gpuType,this}copyAt(o,et,tt){o*=this.itemSize,tt*=et.itemSize;for(let nt=0,rt=this.itemSize;nt0&&(o.userData=this.userData),this.parameters!==void 0){const st=this.parameters;for(const at in st)st[at]!==void 0&&(o[at]=st[at]);return o}o.data={attributes:{}};const et=this.index;et!==null&&(o.data.index={type:et.array.constructor.name,array:Array.prototype.slice.call(et.array)});const tt=this.attributes;for(const st in tt){const at=tt[st];o.data.attributes[st]=at.toJSON(o.data)}const nt={};let rt=!1;for(const st in this.morphAttributes){const at=this.morphAttributes[st],lt=[];for(let ut=0,dt=at.length;ut0&&(nt[st]=lt,rt=!0)}rt&&(o.data.morphAttributes=nt,o.data.morphTargetsRelative=this.morphTargetsRelative);const it=this.groups;it.length>0&&(o.data.groups=JSON.parse(JSON.stringify(it)));const ot=this.boundingSphere;return ot!==null&&(o.data.boundingSphere={center:ot.center.toArray(),radius:ot.radius}),o}clone(){return new this.constructor().copy(this)}copy(o){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const et={};this.name=o.name;const tt=o.index;tt!==null&&this.setIndex(tt.clone(et));const nt=o.attributes;for(const at in nt){const lt=nt[at];this.setAttribute(at,lt.clone(et))}const rt=o.morphAttributes;for(const at in rt){const lt=[],ut=rt[at];for(let dt=0,ht=ut.length;dt0){const nt=et[tt[0]];if(nt!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let rt=0,it=nt.length;rt(o.far-o.near)**2))&&(_inverseMatrix$3.copy(rt).invert(),_ray$3.copy(o.ray).applyMatrix4(_inverseMatrix$3),!(tt.boundingBox!==null&&_ray$3.intersectsBox(tt.boundingBox)===!1)&&this._computeIntersections(o,et,_ray$3)))}_computeIntersections(o,et,tt){let nt;const rt=this.geometry,it=this.material,ot=rt.index,st=rt.attributes.position,at=rt.attributes.uv,lt=rt.attributes.uv1,ut=rt.attributes.normal,dt=rt.groups,ht=rt.drawRange;if(ot!==null)if(Array.isArray(it))for(let ct=0,pt=dt.length;ctet.far?null:{distance:at,point:_intersectionPointWorld.clone(),object:s}}function checkGeometryIntersection(s,o,et,tt,nt,rt,it,ot,st,at){s.getVertexPosition(ot,_vA$1),s.getVertexPosition(st,_vB$1),s.getVertexPosition(at,_vC$1);const lt=checkIntersection$1(s,o,et,tt,_vA$1,_vB$1,_vC$1,_intersectionPoint);if(lt){nt&&(_uvA$1.fromBufferAttribute(nt,ot),_uvB$1.fromBufferAttribute(nt,st),_uvC$1.fromBufferAttribute(nt,at),lt.uv=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_uvA$1,_uvB$1,_uvC$1,new Vector2)),rt&&(_uvA$1.fromBufferAttribute(rt,ot),_uvB$1.fromBufferAttribute(rt,st),_uvC$1.fromBufferAttribute(rt,at),lt.uv1=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_uvA$1,_uvB$1,_uvC$1,new Vector2)),it&&(_normalA.fromBufferAttribute(it,ot),_normalB.fromBufferAttribute(it,st),_normalC.fromBufferAttribute(it,at),lt.normal=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_normalA,_normalB,_normalC,new Vector3),lt.normal.dot(tt.direction)>0&<.normal.multiplyScalar(-1));const ut={a:ot,b:st,c:at,normal:new Vector3,materialIndex:0};Triangle.getNormal(_vA$1,_vB$1,_vC$1,ut.normal),lt.face=ut}return lt}class BoxGeometry extends BufferGeometry{constructor(o=1,et=1,tt=1,nt=1,rt=1,it=1){super(),this.type="BoxGeometry",this.parameters={width:o,height:et,depth:tt,widthSegments:nt,heightSegments:rt,depthSegments:it};const ot=this;nt=Math.floor(nt),rt=Math.floor(rt),it=Math.floor(it);const st=[],at=[],lt=[],ut=[];let dt=0,ht=0;ct("z","y","x",-1,-1,tt,et,o,it,rt,0),ct("z","y","x",1,-1,tt,et,-o,it,rt,1),ct("x","z","y",1,1,o,tt,et,nt,it,2),ct("x","z","y",1,-1,o,tt,-et,nt,it,3),ct("x","y","z",1,-1,o,et,tt,nt,rt,4),ct("x","y","z",-1,-1,o,et,-tt,nt,rt,5),this.setIndex(st),this.setAttribute("position",new Float32BufferAttribute(at,3)),this.setAttribute("normal",new Float32BufferAttribute(lt,3)),this.setAttribute("uv",new Float32BufferAttribute(ut,2));function ct(pt,ft,gt,yt,Ut,Ft,mt,vt,At,Lt,Rt){const St=Ft/At,Tt=mt/Lt,Bt=Ft/2,xt=mt/2,Ct=vt/2,kt=At+1,Nt=Lt+1;let Ot=0,Jt=0;const Dt=new Vector3;for(let Et=0;Et0?1:-1,lt.push(Dt.x,Dt.y,Dt.z),ut.push(zt/At),ut.push(1-Et/Lt),Ot+=1}}for(let Et=0;Et #include #include -}`,ShaderChunk={alphahash_fragment,alphahash_pars_fragment,alphamap_fragment,alphamap_pars_fragment,alphatest_fragment,alphatest_pars_fragment,aomap_fragment,aomap_pars_fragment,batching_pars_vertex,batching_vertex,begin_vertex,beginnormal_vertex,bsdfs,iridescence_fragment,bumpmap_pars_fragment,clipping_planes_fragment,clipping_planes_pars_fragment,clipping_planes_pars_vertex,clipping_planes_vertex,color_fragment,color_pars_fragment,color_pars_vertex,color_vertex,common:common$4,cube_uv_reflection_fragment,defaultnormal_vertex,displacementmap_pars_vertex,displacementmap_vertex,emissivemap_fragment,emissivemap_pars_fragment,colorspace_fragment,colorspace_pars_fragment,envmap_fragment,envmap_common_pars_fragment,envmap_pars_fragment,envmap_pars_vertex,envmap_physical_pars_fragment,envmap_vertex,fog_vertex,fog_pars_vertex,fog_fragment,fog_pars_fragment,gradientmap_pars_fragment,lightmap_pars_fragment,lights_lambert_fragment,lights_lambert_pars_fragment,lights_pars_begin,lights_toon_fragment,lights_toon_pars_fragment,lights_phong_fragment,lights_phong_pars_fragment,lights_physical_fragment,lights_physical_pars_fragment,lights_fragment_begin,lights_fragment_maps,lights_fragment_end,logdepthbuf_fragment,logdepthbuf_pars_fragment,logdepthbuf_pars_vertex,logdepthbuf_vertex,map_fragment,map_pars_fragment,map_particle_fragment,map_particle_pars_fragment,metalnessmap_fragment,metalnessmap_pars_fragment,morphinstance_vertex,morphcolor_vertex,morphnormal_vertex,morphtarget_pars_vertex,morphtarget_vertex,normal_fragment_begin,normal_fragment_maps,normal_pars_fragment,normal_pars_vertex,normal_vertex,normalmap_pars_fragment,clearcoat_normal_fragment_begin,clearcoat_normal_fragment_maps,clearcoat_pars_fragment,iridescence_pars_fragment,opaque_fragment,packing,premultiplied_alpha_fragment,project_vertex,dithering_fragment,dithering_pars_fragment,roughnessmap_fragment,roughnessmap_pars_fragment,shadowmap_pars_fragment,shadowmap_pars_vertex,shadowmap_vertex,shadowmask_pars_fragment,skinbase_vertex,skinning_pars_vertex,skinning_vertex,skinnormal_vertex,specularmap_fragment,specularmap_pars_fragment,tonemapping_fragment,tonemapping_pars_fragment,transmission_fragment,transmission_pars_fragment,uv_pars_fragment,uv_pars_vertex,uv_vertex,worldpos_vertex,background_vert:vertex$h,background_frag:fragment$h,backgroundCube_vert:vertex$g,backgroundCube_frag:fragment$g,cube_vert:vertex$f,cube_frag:fragment$f,depth_vert:vertex$e,depth_frag:fragment$e,distanceRGBA_vert:vertex$d,distanceRGBA_frag:fragment$d,equirect_vert:vertex$c,equirect_frag:fragment$c,linedashed_vert:vertex$b,linedashed_frag:fragment$b,meshbasic_vert:vertex$a,meshbasic_frag:fragment$a,meshlambert_vert:vertex$9,meshlambert_frag:fragment$9,meshmatcap_vert:vertex$8,meshmatcap_frag:fragment$8,meshnormal_vert:vertex$7,meshnormal_frag:fragment$7,meshphong_vert:vertex$6,meshphong_frag:fragment$6,meshphysical_vert:vertex$5,meshphysical_frag:fragment$5,meshtoon_vert:vertex$4,meshtoon_frag:fragment$4,points_vert:vertex$3,points_frag:fragment$3,shadow_vert:vertex$2,shadow_frag:fragment$2,sprite_vert:vertex$1,sprite_frag:fragment$1},UniformsLib={common:{diffuse:{value:new Color$2(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Matrix3}},envmap:{envMap:{value:null},envMapRotation:{value:new Matrix3},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Matrix3}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Matrix3}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Matrix3},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Matrix3},normalScale:{value:new Vector2(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Matrix3},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Matrix3}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Matrix3}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Matrix3}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Color$2(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Color$2(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0},uvTransform:{value:new Matrix3}},sprite:{diffuse:{value:new Color$2(16777215)},opacity:{value:1},center:{value:new Vector2(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}}},ShaderLib={basic:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.fog]),vertexShader:ShaderChunk.meshbasic_vert,fragmentShader:ShaderChunk.meshbasic_frag},lambert:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)}}]),vertexShader:ShaderChunk.meshlambert_vert,fragmentShader:ShaderChunk.meshlambert_frag},phong:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)},specular:{value:new Color$2(1118481)},shininess:{value:30}}]),vertexShader:ShaderChunk.meshphong_vert,fragmentShader:ShaderChunk.meshphong_frag},standard:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.roughnessmap,UniformsLib.metalnessmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag},toon:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.gradientmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)}}]),vertexShader:ShaderChunk.meshtoon_vert,fragmentShader:ShaderChunk.meshtoon_frag},matcap:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,{matcap:{value:null}}]),vertexShader:ShaderChunk.meshmatcap_vert,fragmentShader:ShaderChunk.meshmatcap_frag},points:{uniforms:mergeUniforms([UniformsLib.points,UniformsLib.fog]),vertexShader:ShaderChunk.points_vert,fragmentShader:ShaderChunk.points_frag},dashed:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:ShaderChunk.linedashed_vert,fragmentShader:ShaderChunk.linedashed_frag},depth:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap]),vertexShader:ShaderChunk.depth_vert,fragmentShader:ShaderChunk.depth_frag},normal:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,{opacity:{value:1}}]),vertexShader:ShaderChunk.meshnormal_vert,fragmentShader:ShaderChunk.meshnormal_frag},sprite:{uniforms:mergeUniforms([UniformsLib.sprite,UniformsLib.fog]),vertexShader:ShaderChunk.sprite_vert,fragmentShader:ShaderChunk.sprite_frag},background:{uniforms:{uvTransform:{value:new Matrix3},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:ShaderChunk.background_vert,fragmentShader:ShaderChunk.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Matrix3}},vertexShader:ShaderChunk.backgroundCube_vert,fragmentShader:ShaderChunk.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:ShaderChunk.cube_vert,fragmentShader:ShaderChunk.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:ShaderChunk.equirect_vert,fragmentShader:ShaderChunk.equirect_frag},distanceRGBA:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap,{referencePosition:{value:new Vector3},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:ShaderChunk.distanceRGBA_vert,fragmentShader:ShaderChunk.distanceRGBA_frag},shadow:{uniforms:mergeUniforms([UniformsLib.lights,UniformsLib.fog,{color:{value:new Color$2(0)},opacity:{value:1}}]),vertexShader:ShaderChunk.shadow_vert,fragmentShader:ShaderChunk.shadow_frag}};ShaderLib.physical={uniforms:mergeUniforms([ShaderLib.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Matrix3},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Matrix3},clearcoatNormalScale:{value:new Vector2(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Matrix3},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Matrix3},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Matrix3},sheen:{value:0},sheenColor:{value:new Color$2(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Matrix3},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Matrix3},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Matrix3},transmissionSamplerSize:{value:new Vector2},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Matrix3},attenuationDistance:{value:0},attenuationColor:{value:new Color$2(0)},specularColor:{value:new Color$2(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Matrix3},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Matrix3},anisotropyVector:{value:new Vector2},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Matrix3}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag};const _rgb={r:0,b:0,g:0},_e1$1=new Euler,_m1$1=new Matrix4;function WebGLBackground(s,o,et,tt,nt,rt,it){const ot=new Color$2(0);let st=rt===!0?0:1,at,lt,ut=null,dt=0,ht=null;function ct(yt){let Ut=yt.isScene===!0?yt.background:null;return Ut&&Ut.isTexture&&(Ut=(yt.backgroundBlurriness>0?et:o).get(Ut)),Ut}function pt(yt){let Ut=!1;const Ft=ct(yt);Ft===null?gt(ot,st):Ft&&Ft.isColor&&(gt(Ft,1),Ut=!0);const mt=s.xr.getEnvironmentBlendMode();mt==="additive"?tt.buffers.color.setClear(0,0,0,1,it):mt==="alpha-blend"&&tt.buffers.color.setClear(0,0,0,0,it),(s.autoClear||Ut)&&(tt.buffers.depth.setTest(!0),tt.buffers.depth.setMask(!0),tt.buffers.color.setMask(!0),s.clear(s.autoClearColor,s.autoClearDepth,s.autoClearStencil))}function ft(yt,Ut){const Ft=ct(Ut);Ft&&(Ft.isCubeTexture||Ft.mapping===CubeUVReflectionMapping)?(lt===void 0&&(lt=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:"BackgroundCubeMaterial",uniforms:cloneUniforms(ShaderLib.backgroundCube.uniforms),vertexShader:ShaderLib.backgroundCube.vertexShader,fragmentShader:ShaderLib.backgroundCube.fragmentShader,side:BackSide,depthTest:!1,depthWrite:!1,fog:!1})),lt.geometry.deleteAttribute("normal"),lt.geometry.deleteAttribute("uv"),lt.onBeforeRender=function(mt,vt,At){this.matrixWorld.copyPosition(At.matrixWorld)},Object.defineProperty(lt.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),nt.update(lt)),_e1$1.copy(Ut.backgroundRotation),_e1$1.x*=-1,_e1$1.y*=-1,_e1$1.z*=-1,Ft.isCubeTexture&&Ft.isRenderTargetTexture===!1&&(_e1$1.y*=-1,_e1$1.z*=-1),lt.material.uniforms.envMap.value=Ft,lt.material.uniforms.flipEnvMap.value=Ft.isCubeTexture&&Ft.isRenderTargetTexture===!1?-1:1,lt.material.uniforms.backgroundBlurriness.value=Ut.backgroundBlurriness,lt.material.uniforms.backgroundIntensity.value=Ut.backgroundIntensity,lt.material.uniforms.backgroundRotation.value.setFromMatrix4(_m1$1.makeRotationFromEuler(_e1$1)),lt.material.toneMapped=ColorManagement.getTransfer(Ft.colorSpace)!==SRGBTransfer,(ut!==Ft||dt!==Ft.version||ht!==s.toneMapping)&&(lt.material.needsUpdate=!0,ut=Ft,dt=Ft.version,ht=s.toneMapping),lt.layers.enableAll(),yt.unshift(lt,lt.geometry,lt.material,0,0,null)):Ft&&Ft.isTexture&&(at===void 0&&(at=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:"BackgroundMaterial",uniforms:cloneUniforms(ShaderLib.background.uniforms),vertexShader:ShaderLib.background.vertexShader,fragmentShader:ShaderLib.background.fragmentShader,side:FrontSide,depthTest:!1,depthWrite:!1,fog:!1})),at.geometry.deleteAttribute("normal"),Object.defineProperty(at.material,"map",{get:function(){return this.uniforms.t2D.value}}),nt.update(at)),at.material.uniforms.t2D.value=Ft,at.material.uniforms.backgroundIntensity.value=Ut.backgroundIntensity,at.material.toneMapped=ColorManagement.getTransfer(Ft.colorSpace)!==SRGBTransfer,Ft.matrixAutoUpdate===!0&&Ft.updateMatrix(),at.material.uniforms.uvTransform.value.copy(Ft.matrix),(ut!==Ft||dt!==Ft.version||ht!==s.toneMapping)&&(at.material.needsUpdate=!0,ut=Ft,dt=Ft.version,ht=s.toneMapping),at.layers.enableAll(),yt.unshift(at,at.geometry,at.material,0,0,null))}function gt(yt,Ut){yt.getRGB(_rgb,getUnlitUniformColorSpace(s)),tt.buffers.color.setClear(_rgb.r,_rgb.g,_rgb.b,Ut,it)}return{getClearColor:function(){return ot},setClearColor:function(yt,Ut=1){ot.set(yt),st=Ut,gt(ot,st)},getClearAlpha:function(){return st},setClearAlpha:function(yt){st=yt,gt(ot,st)},render:pt,addToRenderList:ft}}function WebGLBindingStates(s,o){const et=s.getParameter(s.MAX_VERTEX_ATTRIBS),tt={},nt=dt(null);let rt=nt,it=!1;function ot(St,Tt,Bt,xt,Ct){let kt=!1;const Nt=ut(xt,Bt,Tt);rt!==Nt&&(rt=Nt,at(rt.object)),kt=ht(St,xt,Bt,Ct),kt&&ct(St,xt,Bt,Ct),Ct!==null&&o.update(Ct,s.ELEMENT_ARRAY_BUFFER),(kt||it)&&(it=!1,Ft(St,Tt,Bt,xt),Ct!==null&&s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,o.get(Ct).buffer))}function st(){return s.createVertexArray()}function at(St){return s.bindVertexArray(St)}function lt(St){return s.deleteVertexArray(St)}function ut(St,Tt,Bt){const xt=Bt.wireframe===!0;let Ct=tt[St.id];Ct===void 0&&(Ct={},tt[St.id]=Ct);let kt=Ct[Tt.id];kt===void 0&&(kt={},Ct[Tt.id]=kt);let Nt=kt[xt];return Nt===void 0&&(Nt=dt(st()),kt[xt]=Nt),Nt}function dt(St){const Tt=[],Bt=[],xt=[];for(let Ct=0;Ct=0){const Et=Ct[Wt];let Pt=kt[Wt];if(Pt===void 0&&(Wt==="instanceMatrix"&&St.instanceMatrix&&(Pt=St.instanceMatrix),Wt==="instanceColor"&&St.instanceColor&&(Pt=St.instanceColor)),Et===void 0||Et.attribute!==Pt||Pt&&Et.data!==Pt.data)return!0;Nt++}return rt.attributesNum!==Nt||rt.index!==xt}function ct(St,Tt,Bt,xt){const Ct={},kt=Tt.attributes;let Nt=0;const Ot=Bt.getAttributes();for(const Wt in Ot)if(Ot[Wt].location>=0){let Et=kt[Wt];Et===void 0&&(Wt==="instanceMatrix"&&St.instanceMatrix&&(Et=St.instanceMatrix),Wt==="instanceColor"&&St.instanceColor&&(Et=St.instanceColor));const Pt={};Pt.attribute=Et,Et&&Et.data&&(Pt.data=Et.data),Ct[Wt]=Pt,Nt++}rt.attributes=Ct,rt.attributesNum=Nt,rt.index=xt}function pt(){const St=rt.newAttributes;for(let Tt=0,Bt=St.length;Tt=0){let Dt=Ct[Ot];if(Dt===void 0&&(Ot==="instanceMatrix"&&St.instanceMatrix&&(Dt=St.instanceMatrix),Ot==="instanceColor"&&St.instanceColor&&(Dt=St.instanceColor)),Dt!==void 0){const Et=Dt.normalized,Pt=Dt.itemSize,zt=o.get(Dt);if(zt===void 0)continue;const en=zt.buffer,Kt=zt.type,nn=zt.bytesPerElement,Zt=Kt===s.INT||Kt===s.UNSIGNED_INT||Dt.gpuType===IntType;if(Dt.isInterleavedBufferAttribute){const jt=Dt.data,Vt=jt.stride,It=Dt.offset;if(jt.isInstancedInterleavedBuffer){for(let $t=0;$t0&&s.getShaderPrecisionFormat(s.FRAGMENT_SHADER,s.HIGH_FLOAT).precision>0)return"highp";vt="mediump"}return vt==="mediump"&&s.getShaderPrecisionFormat(s.VERTEX_SHADER,s.MEDIUM_FLOAT).precision>0&&s.getShaderPrecisionFormat(s.FRAGMENT_SHADER,s.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let at=et.precision!==void 0?et.precision:"highp";const lt=st(at);lt!==at&&(console.warn("THREE.WebGLRenderer:",at,"not supported, using",lt,"instead."),at=lt);const ut=et.logarithmicDepthBuffer===!0,dt=s.getParameter(s.MAX_TEXTURE_IMAGE_UNITS),ht=s.getParameter(s.MAX_VERTEX_TEXTURE_IMAGE_UNITS),ct=s.getParameter(s.MAX_TEXTURE_SIZE),pt=s.getParameter(s.MAX_CUBE_MAP_TEXTURE_SIZE),ft=s.getParameter(s.MAX_VERTEX_ATTRIBS),gt=s.getParameter(s.MAX_VERTEX_UNIFORM_VECTORS),yt=s.getParameter(s.MAX_VARYING_VECTORS),Ut=s.getParameter(s.MAX_FRAGMENT_UNIFORM_VECTORS),Ft=ht>0,mt=s.getParameter(s.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:rt,getMaxPrecision:st,textureFormatReadable:it,textureTypeReadable:ot,precision:at,logarithmicDepthBuffer:ut,maxTextures:dt,maxVertexTextures:ht,maxTextureSize:ct,maxCubemapSize:pt,maxAttributes:ft,maxVertexUniforms:gt,maxVaryings:yt,maxFragmentUniforms:Ut,vertexTextures:Ft,maxSamples:mt}}function WebGLClipping(s){const o=this;let et=null,tt=0,nt=!1,rt=!1;const it=new Plane,ot=new Matrix3,st={value:null,needsUpdate:!1};this.uniform=st,this.numPlanes=0,this.numIntersection=0,this.init=function(ut,dt){const ht=ut.length!==0||dt||tt!==0||nt;return nt=dt,tt=ut.length,ht},this.beginShadows=function(){rt=!0,lt(null)},this.endShadows=function(){rt=!1},this.setGlobalState=function(ut,dt){et=lt(ut,dt,0)},this.setState=function(ut,dt,ht){const ct=ut.clippingPlanes,pt=ut.clipIntersection,ft=ut.clipShadows,gt=s.get(ut);if(!nt||ct===null||ct.length===0||rt&&!ft)rt?lt(null):at();else{const yt=rt?0:tt,Ut=yt*4;let Ft=gt.clippingState||null;st.value=Ft,Ft=lt(ct,dt,Ut,ht);for(let mt=0;mt!==Ut;++mt)Ft[mt]=et[mt];gt.clippingState=Ft,this.numIntersection=pt?this.numPlanes:0,this.numPlanes+=yt}};function at(){st.value!==et&&(st.value=et,st.needsUpdate=tt>0),o.numPlanes=tt,o.numIntersection=0}function lt(ut,dt,ht,ct){const pt=ut!==null?ut.length:0;let ft=null;if(pt!==0){if(ft=st.value,ct!==!0||ft===null){const gt=ht+pt*4,yt=dt.matrixWorldInverse;ot.getNormalMatrix(yt),(ft===null||ft.length0){const at=new WebGLCubeRenderTarget(st.height);return at.fromEquirectangularTexture(s,it),o.set(it,at),it.addEventListener("dispose",nt),et(at.texture,it.mapping)}else return null}}return it}function nt(it){const ot=it.target;ot.removeEventListener("dispose",nt);const st=o.get(ot);st!==void 0&&(o.delete(ot),st.dispose())}function rt(){o=new WeakMap}return{get:tt,dispose:rt}}class OrthographicCamera extends Camera{constructor(o=-1,et=1,tt=1,nt=-1,rt=.1,it=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=o,this.right=et,this.top=tt,this.bottom=nt,this.near=rt,this.far=it,this.updateProjectionMatrix()}copy(o,et){return super.copy(o,et),this.left=o.left,this.right=o.right,this.top=o.top,this.bottom=o.bottom,this.near=o.near,this.far=o.far,this.zoom=o.zoom,this.view=o.view===null?null:Object.assign({},o.view),this}setViewOffset(o,et,tt,nt,rt,it){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=o,this.view.fullHeight=et,this.view.offsetX=tt,this.view.offsetY=nt,this.view.width=rt,this.view.height=it,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const o=(this.right-this.left)/(2*this.zoom),et=(this.top-this.bottom)/(2*this.zoom),tt=(this.right+this.left)/2,nt=(this.top+this.bottom)/2;let rt=tt-o,it=tt+o,ot=nt+et,st=nt-et;if(this.view!==null&&this.view.enabled){const at=(this.right-this.left)/this.view.fullWidth/this.zoom,lt=(this.top-this.bottom)/this.view.fullHeight/this.zoom;rt+=at*this.view.offsetX,it=rt+at*this.view.width,ot-=lt*this.view.offsetY,st=ot-lt*this.view.height}this.projectionMatrix.makeOrthographic(rt,it,ot,st,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(o){const et=super.toJSON(o);return et.object.zoom=this.zoom,et.object.left=this.left,et.object.right=this.right,et.object.top=this.top,et.object.bottom=this.bottom,et.object.near=this.near,et.object.far=this.far,this.view!==null&&(et.object.view=Object.assign({},this.view)),et}}const LOD_MIN=4,EXTRA_LOD_SIGMA=[.125,.215,.35,.446,.526,.582],MAX_SAMPLES=20,_flatCamera=new OrthographicCamera,_clearColor=new Color$2;let _oldTarget=null,_oldActiveCubeFace=0,_oldActiveMipmapLevel=0,_oldXrEnabled=!1;const PHI=(1+Math.sqrt(5))/2,INV_PHI=1/PHI,_axisDirections=[new Vector3(-PHI,INV_PHI,0),new Vector3(PHI,INV_PHI,0),new Vector3(-INV_PHI,0,PHI),new Vector3(INV_PHI,0,PHI),new Vector3(0,PHI,-INV_PHI),new Vector3(0,PHI,INV_PHI),new Vector3(-1,1,-1),new Vector3(1,1,-1),new Vector3(-1,1,1),new Vector3(1,1,1)];class PMREMGenerator{constructor(o){this._renderer=o,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(o,et=0,tt=.1,nt=100){_oldTarget=this._renderer.getRenderTarget(),_oldActiveCubeFace=this._renderer.getActiveCubeFace(),_oldActiveMipmapLevel=this._renderer.getActiveMipmapLevel(),_oldXrEnabled=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const rt=this._allocateTargets();return rt.depthBuffer=!0,this._sceneToCubeUV(o,tt,nt,rt),et>0&&this._blur(rt,0,0,et),this._applyPMREM(rt),this._cleanup(rt),rt}fromEquirectangular(o,et=null){return this._fromTexture(o,et)}fromCubemap(o,et=null){return this._fromTexture(o,et)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=_getCubemapMaterial(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=_getEquirectMaterial(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(o){this._lodMax=Math.floor(Math.log2(o)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let o=0;o2?Ut:0,Ut,Ut),lt.setRenderTarget(nt),pt&<.render(ct,ot),lt.render(o,ot)}ct.geometry.dispose(),ct.material.dispose(),lt.toneMapping=dt,lt.autoClear=ut,o.background=ft}_textureToCubeUV(o,et){const tt=this._renderer,nt=o.mapping===CubeReflectionMapping||o.mapping===CubeRefractionMapping;nt?(this._cubemapMaterial===null&&(this._cubemapMaterial=_getCubemapMaterial()),this._cubemapMaterial.uniforms.flipEnvMap.value=o.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=_getEquirectMaterial());const rt=nt?this._cubemapMaterial:this._equirectMaterial,it=new Mesh(this._lodPlanes[0],rt),ot=rt.uniforms;ot.envMap.value=o;const st=this._cubeSize;_setViewport(et,0,0,3*st,2*st),tt.setRenderTarget(et),tt.render(it,_flatCamera)}_applyPMREM(o){const et=this._renderer,tt=et.autoClear;et.autoClear=!1;const nt=this._lodPlanes.length;for(let rt=1;rtMAX_SAMPLES&&console.warn(`sigmaRadians, ${rt}, is too large and will clip, as it requested ${ft} samples when the maximum is set to ${MAX_SAMPLES}`);const gt=[];let yt=0;for(let At=0;AtUt-LOD_MIN?nt-Ut+LOD_MIN:0),vt=4*(this._cubeSize-Ft);_setViewport(et,mt,vt,3*Ft,2*Ft),st.setRenderTarget(et),st.render(ut,_flatCamera)}}function _createPlanes(s){const o=[],et=[],tt=[];let nt=s;const rt=s-LOD_MIN+1+EXTRA_LOD_SIGMA.length;for(let it=0;its-LOD_MIN?st=EXTRA_LOD_SIGMA[it-s+LOD_MIN-1]:it===0&&(st=0),tt.push(st);const at=1/(ot-2),lt=-at,ut=1+at,dt=[lt,lt,ut,lt,ut,ut,lt,lt,ut,ut,lt,ut],ht=6,ct=6,pt=3,ft=2,gt=1,yt=new Float32Array(pt*ct*ht),Ut=new Float32Array(ft*ct*ht),Ft=new Float32Array(gt*ct*ht);for(let vt=0;vt2?0:-1,Rt=[At,Lt,0,At+2/3,Lt,0,At+2/3,Lt+1,0,At,Lt,0,At+2/3,Lt+1,0,At,Lt+1,0];yt.set(Rt,pt*ct*vt),Ut.set(dt,ft*ct*vt);const St=[vt,vt,vt,vt,vt,vt];Ft.set(St,gt*ct*vt)}const mt=new BufferGeometry;mt.setAttribute("position",new BufferAttribute(yt,pt)),mt.setAttribute("uv",new BufferAttribute(Ut,ft)),mt.setAttribute("faceIndex",new BufferAttribute(Ft,gt)),o.push(mt),nt>LOD_MIN&&nt--}return{lodPlanes:o,sizeLods:et,sigmas:tt}}function _createRenderTarget(s,o,et){const tt=new WebGLRenderTarget(s,o,et);return tt.texture.mapping=CubeUVReflectionMapping,tt.texture.name="PMREM.cubeUv",tt.scissorTest=!0,tt}function _setViewport(s,o,et,tt,nt){s.viewport.set(o,et,tt,nt),s.scissor.set(o,et,tt,nt)}function _getBlurShader(s,o,et){const tt=new Float32Array(MAX_SAMPLES),nt=new Vector3(0,1,0);return new ShaderMaterial({name:"SphericalGaussianBlur",defines:{n:MAX_SAMPLES,CUBEUV_TEXEL_WIDTH:1/o,CUBEUV_TEXEL_HEIGHT:1/et,CUBEUV_MAX_MIP:`${s}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:tt},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:nt}},vertexShader:_getCommonVertexShader(),fragmentShader:` +}`,ShaderChunk={alphahash_fragment,alphahash_pars_fragment,alphamap_fragment,alphamap_pars_fragment,alphatest_fragment,alphatest_pars_fragment,aomap_fragment,aomap_pars_fragment,batching_pars_vertex,batching_vertex,begin_vertex,beginnormal_vertex,bsdfs,iridescence_fragment,bumpmap_pars_fragment,clipping_planes_fragment,clipping_planes_pars_fragment,clipping_planes_pars_vertex,clipping_planes_vertex,color_fragment,color_pars_fragment,color_pars_vertex,color_vertex,common:common$4,cube_uv_reflection_fragment,defaultnormal_vertex,displacementmap_pars_vertex,displacementmap_vertex,emissivemap_fragment,emissivemap_pars_fragment,colorspace_fragment,colorspace_pars_fragment,envmap_fragment,envmap_common_pars_fragment,envmap_pars_fragment,envmap_pars_vertex,envmap_physical_pars_fragment,envmap_vertex,fog_vertex,fog_pars_vertex,fog_fragment,fog_pars_fragment,gradientmap_pars_fragment,lightmap_pars_fragment,lights_lambert_fragment,lights_lambert_pars_fragment,lights_pars_begin,lights_toon_fragment,lights_toon_pars_fragment,lights_phong_fragment,lights_phong_pars_fragment,lights_physical_fragment,lights_physical_pars_fragment,lights_fragment_begin,lights_fragment_maps,lights_fragment_end,logdepthbuf_fragment,logdepthbuf_pars_fragment,logdepthbuf_pars_vertex,logdepthbuf_vertex,map_fragment,map_pars_fragment,map_particle_fragment,map_particle_pars_fragment,metalnessmap_fragment,metalnessmap_pars_fragment,morphinstance_vertex,morphcolor_vertex,morphnormal_vertex,morphtarget_pars_vertex,morphtarget_vertex,normal_fragment_begin,normal_fragment_maps,normal_pars_fragment,normal_pars_vertex,normal_vertex,normalmap_pars_fragment,clearcoat_normal_fragment_begin,clearcoat_normal_fragment_maps,clearcoat_pars_fragment,iridescence_pars_fragment,opaque_fragment,packing,premultiplied_alpha_fragment,project_vertex,dithering_fragment,dithering_pars_fragment,roughnessmap_fragment,roughnessmap_pars_fragment,shadowmap_pars_fragment,shadowmap_pars_vertex,shadowmap_vertex,shadowmask_pars_fragment,skinbase_vertex,skinning_pars_vertex,skinning_vertex,skinnormal_vertex,specularmap_fragment,specularmap_pars_fragment,tonemapping_fragment,tonemapping_pars_fragment,transmission_fragment,transmission_pars_fragment,uv_pars_fragment,uv_pars_vertex,uv_vertex,worldpos_vertex,background_vert:vertex$h,background_frag:fragment$h,backgroundCube_vert:vertex$g,backgroundCube_frag:fragment$g,cube_vert:vertex$f,cube_frag:fragment$f,depth_vert:vertex$e,depth_frag:fragment$e,distanceRGBA_vert:vertex$d,distanceRGBA_frag:fragment$d,equirect_vert:vertex$c,equirect_frag:fragment$c,linedashed_vert:vertex$b,linedashed_frag:fragment$b,meshbasic_vert:vertex$a,meshbasic_frag:fragment$a,meshlambert_vert:vertex$9,meshlambert_frag:fragment$9,meshmatcap_vert:vertex$8,meshmatcap_frag:fragment$8,meshnormal_vert:vertex$7,meshnormal_frag:fragment$7,meshphong_vert:vertex$6,meshphong_frag:fragment$6,meshphysical_vert:vertex$5,meshphysical_frag:fragment$5,meshtoon_vert:vertex$4,meshtoon_frag:fragment$4,points_vert:vertex$3,points_frag:fragment$3,shadow_vert:vertex$2,shadow_frag:fragment$2,sprite_vert:vertex$1,sprite_frag:fragment$1},UniformsLib={common:{diffuse:{value:new Color$2(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Matrix3}},envmap:{envMap:{value:null},envMapRotation:{value:new Matrix3},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Matrix3}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Matrix3}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Matrix3},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Matrix3},normalScale:{value:new Vector2(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Matrix3},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Matrix3}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Matrix3}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Matrix3}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Color$2(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Color$2(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0},uvTransform:{value:new Matrix3}},sprite:{diffuse:{value:new Color$2(16777215)},opacity:{value:1},center:{value:new Vector2(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}}},ShaderLib={basic:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.fog]),vertexShader:ShaderChunk.meshbasic_vert,fragmentShader:ShaderChunk.meshbasic_frag},lambert:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)}}]),vertexShader:ShaderChunk.meshlambert_vert,fragmentShader:ShaderChunk.meshlambert_frag},phong:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)},specular:{value:new Color$2(1118481)},shininess:{value:30}}]),vertexShader:ShaderChunk.meshphong_vert,fragmentShader:ShaderChunk.meshphong_frag},standard:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.roughnessmap,UniformsLib.metalnessmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag},toon:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.gradientmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$2(0)}}]),vertexShader:ShaderChunk.meshtoon_vert,fragmentShader:ShaderChunk.meshtoon_frag},matcap:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,{matcap:{value:null}}]),vertexShader:ShaderChunk.meshmatcap_vert,fragmentShader:ShaderChunk.meshmatcap_frag},points:{uniforms:mergeUniforms([UniformsLib.points,UniformsLib.fog]),vertexShader:ShaderChunk.points_vert,fragmentShader:ShaderChunk.points_frag},dashed:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:ShaderChunk.linedashed_vert,fragmentShader:ShaderChunk.linedashed_frag},depth:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap]),vertexShader:ShaderChunk.depth_vert,fragmentShader:ShaderChunk.depth_frag},normal:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,{opacity:{value:1}}]),vertexShader:ShaderChunk.meshnormal_vert,fragmentShader:ShaderChunk.meshnormal_frag},sprite:{uniforms:mergeUniforms([UniformsLib.sprite,UniformsLib.fog]),vertexShader:ShaderChunk.sprite_vert,fragmentShader:ShaderChunk.sprite_frag},background:{uniforms:{uvTransform:{value:new Matrix3},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:ShaderChunk.background_vert,fragmentShader:ShaderChunk.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Matrix3}},vertexShader:ShaderChunk.backgroundCube_vert,fragmentShader:ShaderChunk.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:ShaderChunk.cube_vert,fragmentShader:ShaderChunk.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:ShaderChunk.equirect_vert,fragmentShader:ShaderChunk.equirect_frag},distanceRGBA:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap,{referencePosition:{value:new Vector3},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:ShaderChunk.distanceRGBA_vert,fragmentShader:ShaderChunk.distanceRGBA_frag},shadow:{uniforms:mergeUniforms([UniformsLib.lights,UniformsLib.fog,{color:{value:new Color$2(0)},opacity:{value:1}}]),vertexShader:ShaderChunk.shadow_vert,fragmentShader:ShaderChunk.shadow_frag}};ShaderLib.physical={uniforms:mergeUniforms([ShaderLib.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Matrix3},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Matrix3},clearcoatNormalScale:{value:new Vector2(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Matrix3},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Matrix3},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Matrix3},sheen:{value:0},sheenColor:{value:new Color$2(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Matrix3},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Matrix3},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Matrix3},transmissionSamplerSize:{value:new Vector2},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Matrix3},attenuationDistance:{value:0},attenuationColor:{value:new Color$2(0)},specularColor:{value:new Color$2(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Matrix3},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Matrix3},anisotropyVector:{value:new Vector2},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Matrix3}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag};const _rgb={r:0,b:0,g:0},_e1$1=new Euler,_m1$1=new Matrix4;function WebGLBackground(s,o,et,tt,nt,rt,it){const ot=new Color$2(0);let st=rt===!0?0:1,at,lt,ut=null,dt=0,ht=null;function ct(yt){let Ut=yt.isScene===!0?yt.background:null;return Ut&&Ut.isTexture&&(Ut=(yt.backgroundBlurriness>0?et:o).get(Ut)),Ut}function pt(yt){let Ut=!1;const Ft=ct(yt);Ft===null?gt(ot,st):Ft&&Ft.isColor&&(gt(Ft,1),Ut=!0);const mt=s.xr.getEnvironmentBlendMode();mt==="additive"?tt.buffers.color.setClear(0,0,0,1,it):mt==="alpha-blend"&&tt.buffers.color.setClear(0,0,0,0,it),(s.autoClear||Ut)&&(tt.buffers.depth.setTest(!0),tt.buffers.depth.setMask(!0),tt.buffers.color.setMask(!0),s.clear(s.autoClearColor,s.autoClearDepth,s.autoClearStencil))}function ft(yt,Ut){const Ft=ct(Ut);Ft&&(Ft.isCubeTexture||Ft.mapping===CubeUVReflectionMapping)?(lt===void 0&&(lt=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:"BackgroundCubeMaterial",uniforms:cloneUniforms(ShaderLib.backgroundCube.uniforms),vertexShader:ShaderLib.backgroundCube.vertexShader,fragmentShader:ShaderLib.backgroundCube.fragmentShader,side:BackSide,depthTest:!1,depthWrite:!1,fog:!1})),lt.geometry.deleteAttribute("normal"),lt.geometry.deleteAttribute("uv"),lt.onBeforeRender=function(mt,vt,At){this.matrixWorld.copyPosition(At.matrixWorld)},Object.defineProperty(lt.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),nt.update(lt)),_e1$1.copy(Ut.backgroundRotation),_e1$1.x*=-1,_e1$1.y*=-1,_e1$1.z*=-1,Ft.isCubeTexture&&Ft.isRenderTargetTexture===!1&&(_e1$1.y*=-1,_e1$1.z*=-1),lt.material.uniforms.envMap.value=Ft,lt.material.uniforms.flipEnvMap.value=Ft.isCubeTexture&&Ft.isRenderTargetTexture===!1?-1:1,lt.material.uniforms.backgroundBlurriness.value=Ut.backgroundBlurriness,lt.material.uniforms.backgroundIntensity.value=Ut.backgroundIntensity,lt.material.uniforms.backgroundRotation.value.setFromMatrix4(_m1$1.makeRotationFromEuler(_e1$1)),lt.material.toneMapped=ColorManagement.getTransfer(Ft.colorSpace)!==SRGBTransfer,(ut!==Ft||dt!==Ft.version||ht!==s.toneMapping)&&(lt.material.needsUpdate=!0,ut=Ft,dt=Ft.version,ht=s.toneMapping),lt.layers.enableAll(),yt.unshift(lt,lt.geometry,lt.material,0,0,null)):Ft&&Ft.isTexture&&(at===void 0&&(at=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:"BackgroundMaterial",uniforms:cloneUniforms(ShaderLib.background.uniforms),vertexShader:ShaderLib.background.vertexShader,fragmentShader:ShaderLib.background.fragmentShader,side:FrontSide,depthTest:!1,depthWrite:!1,fog:!1})),at.geometry.deleteAttribute("normal"),Object.defineProperty(at.material,"map",{get:function(){return this.uniforms.t2D.value}}),nt.update(at)),at.material.uniforms.t2D.value=Ft,at.material.uniforms.backgroundIntensity.value=Ut.backgroundIntensity,at.material.toneMapped=ColorManagement.getTransfer(Ft.colorSpace)!==SRGBTransfer,Ft.matrixAutoUpdate===!0&&Ft.updateMatrix(),at.material.uniforms.uvTransform.value.copy(Ft.matrix),(ut!==Ft||dt!==Ft.version||ht!==s.toneMapping)&&(at.material.needsUpdate=!0,ut=Ft,dt=Ft.version,ht=s.toneMapping),at.layers.enableAll(),yt.unshift(at,at.geometry,at.material,0,0,null))}function gt(yt,Ut){yt.getRGB(_rgb,getUnlitUniformColorSpace(s)),tt.buffers.color.setClear(_rgb.r,_rgb.g,_rgb.b,Ut,it)}return{getClearColor:function(){return ot},setClearColor:function(yt,Ut=1){ot.set(yt),st=Ut,gt(ot,st)},getClearAlpha:function(){return st},setClearAlpha:function(yt){st=yt,gt(ot,st)},render:pt,addToRenderList:ft}}function WebGLBindingStates(s,o){const et=s.getParameter(s.MAX_VERTEX_ATTRIBS),tt={},nt=dt(null);let rt=nt,it=!1;function ot(St,Tt,Bt,xt,Ct){let kt=!1;const Nt=ut(xt,Bt,Tt);rt!==Nt&&(rt=Nt,at(rt.object)),kt=ht(St,xt,Bt,Ct),kt&&ct(St,xt,Bt,Ct),Ct!==null&&o.update(Ct,s.ELEMENT_ARRAY_BUFFER),(kt||it)&&(it=!1,Ft(St,Tt,Bt,xt),Ct!==null&&s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,o.get(Ct).buffer))}function st(){return s.createVertexArray()}function at(St){return s.bindVertexArray(St)}function lt(St){return s.deleteVertexArray(St)}function ut(St,Tt,Bt){const xt=Bt.wireframe===!0;let Ct=tt[St.id];Ct===void 0&&(Ct={},tt[St.id]=Ct);let kt=Ct[Tt.id];kt===void 0&&(kt={},Ct[Tt.id]=kt);let Nt=kt[xt];return Nt===void 0&&(Nt=dt(st()),kt[xt]=Nt),Nt}function dt(St){const Tt=[],Bt=[],xt=[];for(let Ct=0;Ct=0){const Et=Ct[Jt];let Pt=kt[Jt];if(Pt===void 0&&(Jt==="instanceMatrix"&&St.instanceMatrix&&(Pt=St.instanceMatrix),Jt==="instanceColor"&&St.instanceColor&&(Pt=St.instanceColor)),Et===void 0||Et.attribute!==Pt||Pt&&Et.data!==Pt.data)return!0;Nt++}return rt.attributesNum!==Nt||rt.index!==xt}function ct(St,Tt,Bt,xt){const Ct={},kt=Tt.attributes;let Nt=0;const Ot=Bt.getAttributes();for(const Jt in Ot)if(Ot[Jt].location>=0){let Et=kt[Jt];Et===void 0&&(Jt==="instanceMatrix"&&St.instanceMatrix&&(Et=St.instanceMatrix),Jt==="instanceColor"&&St.instanceColor&&(Et=St.instanceColor));const Pt={};Pt.attribute=Et,Et&&Et.data&&(Pt.data=Et.data),Ct[Jt]=Pt,Nt++}rt.attributes=Ct,rt.attributesNum=Nt,rt.index=xt}function pt(){const St=rt.newAttributes;for(let Tt=0,Bt=St.length;Tt=0){let Dt=Ct[Ot];if(Dt===void 0&&(Ot==="instanceMatrix"&&St.instanceMatrix&&(Dt=St.instanceMatrix),Ot==="instanceColor"&&St.instanceColor&&(Dt=St.instanceColor)),Dt!==void 0){const Et=Dt.normalized,Pt=Dt.itemSize,zt=o.get(Dt);if(zt===void 0)continue;const en=zt.buffer,Kt=zt.type,nn=zt.bytesPerElement,Zt=Kt===s.INT||Kt===s.UNSIGNED_INT||Dt.gpuType===IntType;if(Dt.isInterleavedBufferAttribute){const jt=Dt.data,Vt=jt.stride,It=Dt.offset;if(jt.isInstancedInterleavedBuffer){for(let $t=0;$t0&&s.getShaderPrecisionFormat(s.FRAGMENT_SHADER,s.HIGH_FLOAT).precision>0)return"highp";vt="mediump"}return vt==="mediump"&&s.getShaderPrecisionFormat(s.VERTEX_SHADER,s.MEDIUM_FLOAT).precision>0&&s.getShaderPrecisionFormat(s.FRAGMENT_SHADER,s.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let at=et.precision!==void 0?et.precision:"highp";const lt=st(at);lt!==at&&(console.warn("THREE.WebGLRenderer:",at,"not supported, using",lt,"instead."),at=lt);const ut=et.logarithmicDepthBuffer===!0,dt=s.getParameter(s.MAX_TEXTURE_IMAGE_UNITS),ht=s.getParameter(s.MAX_VERTEX_TEXTURE_IMAGE_UNITS),ct=s.getParameter(s.MAX_TEXTURE_SIZE),pt=s.getParameter(s.MAX_CUBE_MAP_TEXTURE_SIZE),ft=s.getParameter(s.MAX_VERTEX_ATTRIBS),gt=s.getParameter(s.MAX_VERTEX_UNIFORM_VECTORS),yt=s.getParameter(s.MAX_VARYING_VECTORS),Ut=s.getParameter(s.MAX_FRAGMENT_UNIFORM_VECTORS),Ft=ht>0,mt=s.getParameter(s.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:rt,getMaxPrecision:st,textureFormatReadable:it,textureTypeReadable:ot,precision:at,logarithmicDepthBuffer:ut,maxTextures:dt,maxVertexTextures:ht,maxTextureSize:ct,maxCubemapSize:pt,maxAttributes:ft,maxVertexUniforms:gt,maxVaryings:yt,maxFragmentUniforms:Ut,vertexTextures:Ft,maxSamples:mt}}function WebGLClipping(s){const o=this;let et=null,tt=0,nt=!1,rt=!1;const it=new Plane,ot=new Matrix3,st={value:null,needsUpdate:!1};this.uniform=st,this.numPlanes=0,this.numIntersection=0,this.init=function(ut,dt){const ht=ut.length!==0||dt||tt!==0||nt;return nt=dt,tt=ut.length,ht},this.beginShadows=function(){rt=!0,lt(null)},this.endShadows=function(){rt=!1},this.setGlobalState=function(ut,dt){et=lt(ut,dt,0)},this.setState=function(ut,dt,ht){const ct=ut.clippingPlanes,pt=ut.clipIntersection,ft=ut.clipShadows,gt=s.get(ut);if(!nt||ct===null||ct.length===0||rt&&!ft)rt?lt(null):at();else{const yt=rt?0:tt,Ut=yt*4;let Ft=gt.clippingState||null;st.value=Ft,Ft=lt(ct,dt,Ut,ht);for(let mt=0;mt!==Ut;++mt)Ft[mt]=et[mt];gt.clippingState=Ft,this.numIntersection=pt?this.numPlanes:0,this.numPlanes+=yt}};function at(){st.value!==et&&(st.value=et,st.needsUpdate=tt>0),o.numPlanes=tt,o.numIntersection=0}function lt(ut,dt,ht,ct){const pt=ut!==null?ut.length:0;let ft=null;if(pt!==0){if(ft=st.value,ct!==!0||ft===null){const gt=ht+pt*4,yt=dt.matrixWorldInverse;ot.getNormalMatrix(yt),(ft===null||ft.length0){const at=new WebGLCubeRenderTarget(st.height);return at.fromEquirectangularTexture(s,it),o.set(it,at),it.addEventListener("dispose",nt),et(at.texture,it.mapping)}else return null}}return it}function nt(it){const ot=it.target;ot.removeEventListener("dispose",nt);const st=o.get(ot);st!==void 0&&(o.delete(ot),st.dispose())}function rt(){o=new WeakMap}return{get:tt,dispose:rt}}class OrthographicCamera extends Camera{constructor(o=-1,et=1,tt=1,nt=-1,rt=.1,it=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=o,this.right=et,this.top=tt,this.bottom=nt,this.near=rt,this.far=it,this.updateProjectionMatrix()}copy(o,et){return super.copy(o,et),this.left=o.left,this.right=o.right,this.top=o.top,this.bottom=o.bottom,this.near=o.near,this.far=o.far,this.zoom=o.zoom,this.view=o.view===null?null:Object.assign({},o.view),this}setViewOffset(o,et,tt,nt,rt,it){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=o,this.view.fullHeight=et,this.view.offsetX=tt,this.view.offsetY=nt,this.view.width=rt,this.view.height=it,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const o=(this.right-this.left)/(2*this.zoom),et=(this.top-this.bottom)/(2*this.zoom),tt=(this.right+this.left)/2,nt=(this.top+this.bottom)/2;let rt=tt-o,it=tt+o,ot=nt+et,st=nt-et;if(this.view!==null&&this.view.enabled){const at=(this.right-this.left)/this.view.fullWidth/this.zoom,lt=(this.top-this.bottom)/this.view.fullHeight/this.zoom;rt+=at*this.view.offsetX,it=rt+at*this.view.width,ot-=lt*this.view.offsetY,st=ot-lt*this.view.height}this.projectionMatrix.makeOrthographic(rt,it,ot,st,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(o){const et=super.toJSON(o);return et.object.zoom=this.zoom,et.object.left=this.left,et.object.right=this.right,et.object.top=this.top,et.object.bottom=this.bottom,et.object.near=this.near,et.object.far=this.far,this.view!==null&&(et.object.view=Object.assign({},this.view)),et}}const LOD_MIN=4,EXTRA_LOD_SIGMA=[.125,.215,.35,.446,.526,.582],MAX_SAMPLES=20,_flatCamera=new OrthographicCamera,_clearColor=new Color$2;let _oldTarget=null,_oldActiveCubeFace=0,_oldActiveMipmapLevel=0,_oldXrEnabled=!1;const PHI=(1+Math.sqrt(5))/2,INV_PHI=1/PHI,_axisDirections=[new Vector3(-PHI,INV_PHI,0),new Vector3(PHI,INV_PHI,0),new Vector3(-INV_PHI,0,PHI),new Vector3(INV_PHI,0,PHI),new Vector3(0,PHI,-INV_PHI),new Vector3(0,PHI,INV_PHI),new Vector3(-1,1,-1),new Vector3(1,1,-1),new Vector3(-1,1,1),new Vector3(1,1,1)];class PMREMGenerator{constructor(o){this._renderer=o,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(o,et=0,tt=.1,nt=100){_oldTarget=this._renderer.getRenderTarget(),_oldActiveCubeFace=this._renderer.getActiveCubeFace(),_oldActiveMipmapLevel=this._renderer.getActiveMipmapLevel(),_oldXrEnabled=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const rt=this._allocateTargets();return rt.depthBuffer=!0,this._sceneToCubeUV(o,tt,nt,rt),et>0&&this._blur(rt,0,0,et),this._applyPMREM(rt),this._cleanup(rt),rt}fromEquirectangular(o,et=null){return this._fromTexture(o,et)}fromCubemap(o,et=null){return this._fromTexture(o,et)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=_getCubemapMaterial(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=_getEquirectMaterial(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(o){this._lodMax=Math.floor(Math.log2(o)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let o=0;o2?Ut:0,Ut,Ut),lt.setRenderTarget(nt),pt&<.render(ct,ot),lt.render(o,ot)}ct.geometry.dispose(),ct.material.dispose(),lt.toneMapping=dt,lt.autoClear=ut,o.background=ft}_textureToCubeUV(o,et){const tt=this._renderer,nt=o.mapping===CubeReflectionMapping||o.mapping===CubeRefractionMapping;nt?(this._cubemapMaterial===null&&(this._cubemapMaterial=_getCubemapMaterial()),this._cubemapMaterial.uniforms.flipEnvMap.value=o.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=_getEquirectMaterial());const rt=nt?this._cubemapMaterial:this._equirectMaterial,it=new Mesh(this._lodPlanes[0],rt),ot=rt.uniforms;ot.envMap.value=o;const st=this._cubeSize;_setViewport(et,0,0,3*st,2*st),tt.setRenderTarget(et),tt.render(it,_flatCamera)}_applyPMREM(o){const et=this._renderer,tt=et.autoClear;et.autoClear=!1;const nt=this._lodPlanes.length;for(let rt=1;rtMAX_SAMPLES&&console.warn(`sigmaRadians, ${rt}, is too large and will clip, as it requested ${ft} samples when the maximum is set to ${MAX_SAMPLES}`);const gt=[];let yt=0;for(let At=0;AtUt-LOD_MIN?nt-Ut+LOD_MIN:0),vt=4*(this._cubeSize-Ft);_setViewport(et,mt,vt,3*Ft,2*Ft),st.setRenderTarget(et),st.render(ut,_flatCamera)}}function _createPlanes(s){const o=[],et=[],tt=[];let nt=s;const rt=s-LOD_MIN+1+EXTRA_LOD_SIGMA.length;for(let it=0;its-LOD_MIN?st=EXTRA_LOD_SIGMA[it-s+LOD_MIN-1]:it===0&&(st=0),tt.push(st);const at=1/(ot-2),lt=-at,ut=1+at,dt=[lt,lt,ut,lt,ut,ut,lt,lt,ut,ut,lt,ut],ht=6,ct=6,pt=3,ft=2,gt=1,yt=new Float32Array(pt*ct*ht),Ut=new Float32Array(ft*ct*ht),Ft=new Float32Array(gt*ct*ht);for(let vt=0;vt2?0:-1,Rt=[At,Lt,0,At+2/3,Lt,0,At+2/3,Lt+1,0,At,Lt,0,At+2/3,Lt+1,0,At,Lt+1,0];yt.set(Rt,pt*ct*vt),Ut.set(dt,ft*ct*vt);const St=[vt,vt,vt,vt,vt,vt];Ft.set(St,gt*ct*vt)}const mt=new BufferGeometry;mt.setAttribute("position",new BufferAttribute(yt,pt)),mt.setAttribute("uv",new BufferAttribute(Ut,ft)),mt.setAttribute("faceIndex",new BufferAttribute(Ft,gt)),o.push(mt),nt>LOD_MIN&&nt--}return{lodPlanes:o,sizeLods:et,sigmas:tt}}function _createRenderTarget(s,o,et){const tt=new WebGLRenderTarget(s,o,et);return tt.texture.mapping=CubeUVReflectionMapping,tt.texture.name="PMREM.cubeUv",tt.scissorTest=!0,tt}function _setViewport(s,o,et,tt,nt){s.viewport.set(o,et,tt,nt),s.scissor.set(o,et,tt,nt)}function _getBlurShader(s,o,et){const tt=new Float32Array(MAX_SAMPLES),nt=new Vector3(0,1,0);return new ShaderMaterial({name:"SphericalGaussianBlur",defines:{n:MAX_SAMPLES,CUBEUV_TEXEL_WIDTH:1/o,CUBEUV_TEXEL_HEIGHT:1/et,CUBEUV_MAX_MIP:`${s}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:tt},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:nt}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; @@ -3779,14 +3779,14 @@ void main() { `)+` `+ft,gt=["#define varying in",et.glslVersion===GLSL3?"":"layout(location = 0) out highp vec4 pc_fragColor;",et.glslVersion===GLSL3?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` `)+` -`+gt);const Ut=yt+ft+it,Ft=yt+gt+ot,mt=WebGLShader(nt,nt.VERTEX_SHADER,Ut),vt=WebGLShader(nt,nt.FRAGMENT_SHADER,Ft);nt.attachShader(pt,mt),nt.attachShader(pt,vt),et.index0AttributeName!==void 0?nt.bindAttribLocation(pt,0,et.index0AttributeName):et.morphTargets===!0&&nt.bindAttribLocation(pt,0,"position"),nt.linkProgram(pt);function At(Tt){if(s.debug.checkShaderErrors){const Bt=nt.getProgramInfoLog(pt).trim(),xt=nt.getShaderInfoLog(mt).trim(),Ct=nt.getShaderInfoLog(vt).trim();let kt=!0,Nt=!0;if(nt.getProgramParameter(pt,nt.LINK_STATUS)===!1)if(kt=!1,typeof s.debug.onShaderError=="function")s.debug.onShaderError(nt,pt,mt,vt);else{const Ot=getShaderErrors(nt,mt,"vertex"),Wt=getShaderErrors(nt,vt,"fragment");console.error("THREE.WebGLProgram: Shader Error "+nt.getError()+" - VALIDATE_STATUS "+nt.getProgramParameter(pt,nt.VALIDATE_STATUS)+` +`+gt);const Ut=yt+ft+it,Ft=yt+gt+ot,mt=WebGLShader(nt,nt.VERTEX_SHADER,Ut),vt=WebGLShader(nt,nt.FRAGMENT_SHADER,Ft);nt.attachShader(pt,mt),nt.attachShader(pt,vt),et.index0AttributeName!==void 0?nt.bindAttribLocation(pt,0,et.index0AttributeName):et.morphTargets===!0&&nt.bindAttribLocation(pt,0,"position"),nt.linkProgram(pt);function At(Tt){if(s.debug.checkShaderErrors){const Bt=nt.getProgramInfoLog(pt).trim(),xt=nt.getShaderInfoLog(mt).trim(),Ct=nt.getShaderInfoLog(vt).trim();let kt=!0,Nt=!0;if(nt.getProgramParameter(pt,nt.LINK_STATUS)===!1)if(kt=!1,typeof s.debug.onShaderError=="function")s.debug.onShaderError(nt,pt,mt,vt);else{const Ot=getShaderErrors(nt,mt,"vertex"),Jt=getShaderErrors(nt,vt,"fragment");console.error("THREE.WebGLProgram: Shader Error "+nt.getError()+" - VALIDATE_STATUS "+nt.getProgramParameter(pt,nt.VALIDATE_STATUS)+` Material Name: `+Tt.name+` Material Type: `+Tt.type+` Program Info Log: `+Bt+` `+Ot+` -`+Wt)}else Bt!==""?console.warn("THREE.WebGLProgram: Program Info Log:",Bt):(xt===""||Ct==="")&&(Nt=!1);Nt&&(Tt.diagnostics={runnable:kt,programLog:Bt,vertexShader:{log:xt,prefix:ft},fragmentShader:{log:Ct,prefix:gt}})}nt.deleteShader(mt),nt.deleteShader(vt),Lt=new WebGLUniforms(nt,pt),Rt=fetchAttributeLocations(nt,pt)}let Lt;this.getUniforms=function(){return Lt===void 0&&At(this),Lt};let Rt;this.getAttributes=function(){return Rt===void 0&&At(this),Rt};let St=et.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return St===!1&&(St=nt.getProgramParameter(pt,COMPLETION_STATUS_KHR)),St},this.destroy=function(){tt.releaseStatesOfProgram(this),nt.deleteProgram(pt),this.program=void 0},this.type=et.shaderType,this.name=et.shaderName,this.id=programIdCount++,this.cacheKey=o,this.usedTimes=1,this.program=pt,this.vertexShader=mt,this.fragmentShader=vt,this}let _id$1=0;class WebGLShaderCache{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(o){const et=o.vertexShader,tt=o.fragmentShader,nt=this._getShaderStage(et),rt=this._getShaderStage(tt),it=this._getShaderCacheForMaterial(o);return it.has(nt)===!1&&(it.add(nt),nt.usedTimes++),it.has(rt)===!1&&(it.add(rt),rt.usedTimes++),this}remove(o){const et=this.materialCache.get(o);for(const tt of et)tt.usedTimes--,tt.usedTimes===0&&this.shaderCache.delete(tt.code);return this.materialCache.delete(o),this}getVertexShaderID(o){return this._getShaderStage(o.vertexShader).id}getFragmentShaderID(o){return this._getShaderStage(o.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(o){const et=this.materialCache;let tt=et.get(o);return tt===void 0&&(tt=new Set,et.set(o,tt)),tt}_getShaderStage(o){const et=this.shaderCache;let tt=et.get(o);return tt===void 0&&(tt=new WebGLShaderStage(o),et.set(o,tt)),tt}}class WebGLShaderStage{constructor(o){this.id=_id$1++,this.code=o,this.usedTimes=0}}function WebGLPrograms(s,o,et,tt,nt,rt,it){const ot=new Layers,st=new WebGLShaderCache,at=new Set,lt=[],ut=nt.logarithmicDepthBuffer,dt=nt.vertexTextures;let ht=nt.precision;const ct={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function pt(Rt){return at.add(Rt),Rt===0?"uv":`uv${Rt}`}function ft(Rt,St,Tt,Bt,xt){const Ct=Bt.fog,kt=xt.geometry,Nt=Rt.isMeshStandardMaterial?Bt.environment:null,Ot=(Rt.isMeshStandardMaterial?et:o).get(Rt.envMap||Nt),Wt=Ot&&Ot.mapping===CubeUVReflectionMapping?Ot.image.height:null,Dt=ct[Rt.type];Rt.precision!==null&&(ht=nt.getMaxPrecision(Rt.precision),ht!==Rt.precision&&console.warn("THREE.WebGLProgram.getParameters:",Rt.precision,"not supported, using",ht,"instead."));const Et=kt.morphAttributes.position||kt.morphAttributes.normal||kt.morphAttributes.color,Pt=Et!==void 0?Et.length:0;let zt=0;kt.morphAttributes.position!==void 0&&(zt=1),kt.morphAttributes.normal!==void 0&&(zt=2),kt.morphAttributes.color!==void 0&&(zt=3);let en,Kt,nn,Zt;if(Dt){const tr=ShaderLib[Dt];en=tr.vertexShader,Kt=tr.fragmentShader}else en=Rt.vertexShader,Kt=Rt.fragmentShader,st.update(Rt),nn=st.getVertexShaderID(Rt),Zt=st.getFragmentShaderID(Rt);const jt=s.getRenderTarget(),Vt=xt.isInstancedMesh===!0,It=xt.isBatchedMesh===!0,$t=!!Rt.map,Ht=!!Rt.matcap,qt=!!Ot,on=!!Rt.aoMap,Xt=!!Rt.lightMap,dn=!!Rt.bumpMap,_n=!!Rt.normalMap,Fn=!!Rt.displacementMap,Un=!!Rt.emissiveMap,On=!!Rt.metalnessMap,gn=!!Rt.roughnessMap,hn=Rt.anisotropy>0,wn=Rt.clearcoat>0,Zn=Rt.dispersion>0,Pn=Rt.iridescence>0,$n=Rt.sheen>0,Tr=Rt.transmission>0,Qr=hn&&!!Rt.anisotropyMap,_r=wn&&!!Rt.clearcoatMap,Ir=wn&&!!Rt.clearcoatNormalMap,Wr=wn&&!!Rt.clearcoatRoughnessMap,qr=Pn&&!!Rt.iridescenceMap,Uo=Pn&&!!Rt.iridescenceThicknessMap,eo=$n&&!!Rt.sheenColorMap,Yr=$n&&!!Rt.sheenRoughnessMap,_o=!!Rt.specularMap,ro=!!Rt.specularColorMap,Fo=!!Rt.specularIntensityMap,kn=Tr&&!!Rt.transmissionMap,un=Tr&&!!Rt.thicknessMap,pn=!!Rt.gradientMap,Qn=!!Rt.alphaMap,Wn=Rt.alphaTest>0,jn=!!Rt.alphaHash,Fr=!!Rt.extensions;let Er=NoToneMapping;Rt.toneMapped&&(jt===null||jt.isXRRenderTarget===!0)&&(Er=s.toneMapping);const wr={shaderID:Dt,shaderType:Rt.type,shaderName:Rt.name,vertexShader:en,fragmentShader:Kt,defines:Rt.defines,customVertexShaderID:nn,customFragmentShaderID:Zt,isRawShaderMaterial:Rt.isRawShaderMaterial===!0,glslVersion:Rt.glslVersion,precision:ht,batching:It,batchingColor:It&&xt._colorsTexture!==null,instancing:Vt,instancingColor:Vt&&xt.instanceColor!==null,instancingMorph:Vt&&xt.morphTexture!==null,supportsVertexTextures:dt,outputColorSpace:jt===null?s.outputColorSpace:jt.isXRRenderTarget===!0?jt.texture.colorSpace:LinearSRGBColorSpace$1,alphaToCoverage:!!Rt.alphaToCoverage,map:$t,matcap:Ht,envMap:qt,envMapMode:qt&&Ot.mapping,envMapCubeUVHeight:Wt,aoMap:on,lightMap:Xt,bumpMap:dn,normalMap:_n,displacementMap:dt&&Fn,emissiveMap:Un,normalMapObjectSpace:_n&&Rt.normalMapType===ObjectSpaceNormalMap,normalMapTangentSpace:_n&&Rt.normalMapType===TangentSpaceNormalMap,metalnessMap:On,roughnessMap:gn,anisotropy:hn,anisotropyMap:Qr,clearcoat:wn,clearcoatMap:_r,clearcoatNormalMap:Ir,clearcoatRoughnessMap:Wr,dispersion:Zn,iridescence:Pn,iridescenceMap:qr,iridescenceThicknessMap:Uo,sheen:$n,sheenColorMap:eo,sheenRoughnessMap:Yr,specularMap:_o,specularColorMap:ro,specularIntensityMap:Fo,transmission:Tr,transmissionMap:kn,thicknessMap:un,gradientMap:pn,opaque:Rt.transparent===!1&&Rt.blending===NormalBlending&&Rt.alphaToCoverage===!1,alphaMap:Qn,alphaTest:Wn,alphaHash:jn,combine:Rt.combine,mapUv:$t&&pt(Rt.map.channel),aoMapUv:on&&pt(Rt.aoMap.channel),lightMapUv:Xt&&pt(Rt.lightMap.channel),bumpMapUv:dn&&pt(Rt.bumpMap.channel),normalMapUv:_n&&pt(Rt.normalMap.channel),displacementMapUv:Fn&&pt(Rt.displacementMap.channel),emissiveMapUv:Un&&pt(Rt.emissiveMap.channel),metalnessMapUv:On&&pt(Rt.metalnessMap.channel),roughnessMapUv:gn&&pt(Rt.roughnessMap.channel),anisotropyMapUv:Qr&&pt(Rt.anisotropyMap.channel),clearcoatMapUv:_r&&pt(Rt.clearcoatMap.channel),clearcoatNormalMapUv:Ir&&pt(Rt.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Wr&&pt(Rt.clearcoatRoughnessMap.channel),iridescenceMapUv:qr&&pt(Rt.iridescenceMap.channel),iridescenceThicknessMapUv:Uo&&pt(Rt.iridescenceThicknessMap.channel),sheenColorMapUv:eo&&pt(Rt.sheenColorMap.channel),sheenRoughnessMapUv:Yr&&pt(Rt.sheenRoughnessMap.channel),specularMapUv:_o&&pt(Rt.specularMap.channel),specularColorMapUv:ro&&pt(Rt.specularColorMap.channel),specularIntensityMapUv:Fo&&pt(Rt.specularIntensityMap.channel),transmissionMapUv:kn&&pt(Rt.transmissionMap.channel),thicknessMapUv:un&&pt(Rt.thicknessMap.channel),alphaMapUv:Qn&&pt(Rt.alphaMap.channel),vertexTangents:!!kt.attributes.tangent&&(_n||hn),vertexColors:Rt.vertexColors,vertexAlphas:Rt.vertexColors===!0&&!!kt.attributes.color&&kt.attributes.color.itemSize===4,pointsUvs:xt.isPoints===!0&&!!kt.attributes.uv&&($t||Qn),fog:!!Ct,useFog:Rt.fog===!0,fogExp2:!!Ct&&Ct.isFogExp2,flatShading:Rt.flatShading===!0,sizeAttenuation:Rt.sizeAttenuation===!0,logarithmicDepthBuffer:ut,skinning:xt.isSkinnedMesh===!0,morphTargets:kt.morphAttributes.position!==void 0,morphNormals:kt.morphAttributes.normal!==void 0,morphColors:kt.morphAttributes.color!==void 0,morphTargetsCount:Pt,morphTextureStride:zt,numDirLights:St.directional.length,numPointLights:St.point.length,numSpotLights:St.spot.length,numSpotLightMaps:St.spotLightMap.length,numRectAreaLights:St.rectArea.length,numHemiLights:St.hemi.length,numDirLightShadows:St.directionalShadowMap.length,numPointLightShadows:St.pointShadowMap.length,numSpotLightShadows:St.spotShadowMap.length,numSpotLightShadowsWithMaps:St.numSpotLightShadowsWithMaps,numLightProbes:St.numLightProbes,numClippingPlanes:it.numPlanes,numClipIntersection:it.numIntersection,dithering:Rt.dithering,shadowMapEnabled:s.shadowMap.enabled&&Tt.length>0,shadowMapType:s.shadowMap.type,toneMapping:Er,decodeVideoTexture:$t&&Rt.map.isVideoTexture===!0&&ColorManagement.getTransfer(Rt.map.colorSpace)===SRGBTransfer,premultipliedAlpha:Rt.premultipliedAlpha,doubleSided:Rt.side===DoubleSide,flipSided:Rt.side===BackSide,useDepthPacking:Rt.depthPacking>=0,depthPacking:Rt.depthPacking||0,index0AttributeName:Rt.index0AttributeName,extensionClipCullDistance:Fr&&Rt.extensions.clipCullDistance===!0&&tt.has("WEBGL_clip_cull_distance"),extensionMultiDraw:Fr&&Rt.extensions.multiDraw===!0&&tt.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:tt.has("KHR_parallel_shader_compile"),customProgramCacheKey:Rt.customProgramCacheKey()};return wr.vertexUv1s=at.has(1),wr.vertexUv2s=at.has(2),wr.vertexUv3s=at.has(3),at.clear(),wr}function gt(Rt){const St=[];if(Rt.shaderID?St.push(Rt.shaderID):(St.push(Rt.customVertexShaderID),St.push(Rt.customFragmentShaderID)),Rt.defines!==void 0)for(const Tt in Rt.defines)St.push(Tt),St.push(Rt.defines[Tt]);return Rt.isRawShaderMaterial===!1&&(yt(St,Rt),Ut(St,Rt),St.push(s.outputColorSpace)),St.push(Rt.customProgramCacheKey),St.join()}function yt(Rt,St){Rt.push(St.precision),Rt.push(St.outputColorSpace),Rt.push(St.envMapMode),Rt.push(St.envMapCubeUVHeight),Rt.push(St.mapUv),Rt.push(St.alphaMapUv),Rt.push(St.lightMapUv),Rt.push(St.aoMapUv),Rt.push(St.bumpMapUv),Rt.push(St.normalMapUv),Rt.push(St.displacementMapUv),Rt.push(St.emissiveMapUv),Rt.push(St.metalnessMapUv),Rt.push(St.roughnessMapUv),Rt.push(St.anisotropyMapUv),Rt.push(St.clearcoatMapUv),Rt.push(St.clearcoatNormalMapUv),Rt.push(St.clearcoatRoughnessMapUv),Rt.push(St.iridescenceMapUv),Rt.push(St.iridescenceThicknessMapUv),Rt.push(St.sheenColorMapUv),Rt.push(St.sheenRoughnessMapUv),Rt.push(St.specularMapUv),Rt.push(St.specularColorMapUv),Rt.push(St.specularIntensityMapUv),Rt.push(St.transmissionMapUv),Rt.push(St.thicknessMapUv),Rt.push(St.combine),Rt.push(St.fogExp2),Rt.push(St.sizeAttenuation),Rt.push(St.morphTargetsCount),Rt.push(St.morphAttributeCount),Rt.push(St.numDirLights),Rt.push(St.numPointLights),Rt.push(St.numSpotLights),Rt.push(St.numSpotLightMaps),Rt.push(St.numHemiLights),Rt.push(St.numRectAreaLights),Rt.push(St.numDirLightShadows),Rt.push(St.numPointLightShadows),Rt.push(St.numSpotLightShadows),Rt.push(St.numSpotLightShadowsWithMaps),Rt.push(St.numLightProbes),Rt.push(St.shadowMapType),Rt.push(St.toneMapping),Rt.push(St.numClippingPlanes),Rt.push(St.numClipIntersection),Rt.push(St.depthPacking)}function Ut(Rt,St){ot.disableAll(),St.supportsVertexTextures&&ot.enable(0),St.instancing&&ot.enable(1),St.instancingColor&&ot.enable(2),St.instancingMorph&&ot.enable(3),St.matcap&&ot.enable(4),St.envMap&&ot.enable(5),St.normalMapObjectSpace&&ot.enable(6),St.normalMapTangentSpace&&ot.enable(7),St.clearcoat&&ot.enable(8),St.iridescence&&ot.enable(9),St.alphaTest&&ot.enable(10),St.vertexColors&&ot.enable(11),St.vertexAlphas&&ot.enable(12),St.vertexUv1s&&ot.enable(13),St.vertexUv2s&&ot.enable(14),St.vertexUv3s&&ot.enable(15),St.vertexTangents&&ot.enable(16),St.anisotropy&&ot.enable(17),St.alphaHash&&ot.enable(18),St.batching&&ot.enable(19),St.dispersion&&ot.enable(20),St.batchingColor&&ot.enable(21),Rt.push(ot.mask),ot.disableAll(),St.fog&&ot.enable(0),St.useFog&&ot.enable(1),St.flatShading&&ot.enable(2),St.logarithmicDepthBuffer&&ot.enable(3),St.skinning&&ot.enable(4),St.morphTargets&&ot.enable(5),St.morphNormals&&ot.enable(6),St.morphColors&&ot.enable(7),St.premultipliedAlpha&&ot.enable(8),St.shadowMapEnabled&&ot.enable(9),St.doubleSided&&ot.enable(10),St.flipSided&&ot.enable(11),St.useDepthPacking&&ot.enable(12),St.dithering&&ot.enable(13),St.transmission&&ot.enable(14),St.sheen&&ot.enable(15),St.opaque&&ot.enable(16),St.pointsUvs&&ot.enable(17),St.decodeVideoTexture&&ot.enable(18),St.alphaToCoverage&&ot.enable(19),Rt.push(ot.mask)}function Ft(Rt){const St=ct[Rt.type];let Tt;if(St){const Bt=ShaderLib[St];Tt=UniformsUtils.clone(Bt.uniforms)}else Tt=Rt.uniforms;return Tt}function mt(Rt,St){let Tt;for(let Bt=0,xt=lt.length;Bt0?tt.push(gt):ht.transparent===!0?nt.push(gt):et.push(gt)}function st(ut,dt,ht,ct,pt,ft){const gt=it(ut,dt,ht,ct,pt,ft);ht.transmission>0?tt.unshift(gt):ht.transparent===!0?nt.unshift(gt):et.unshift(gt)}function at(ut,dt){et.length>1&&et.sort(ut||painterSortStable),tt.length>1&&tt.sort(dt||reversePainterSortStable),nt.length>1&&nt.sort(dt||reversePainterSortStable)}function lt(){for(let ut=o,dt=s.length;ut=rt.length?(it=new WebGLRenderList,rt.push(it)):it=rt[nt],it}function et(){s=new WeakMap}return{get:o,dispose:et}}function UniformsCache(){const s={};return{get:function(o){if(s[o.id]!==void 0)return s[o.id];let et;switch(o.type){case"DirectionalLight":et={direction:new Vector3,color:new Color$2};break;case"SpotLight":et={position:new Vector3,direction:new Vector3,color:new Color$2,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":et={position:new Vector3,color:new Color$2,distance:0,decay:0};break;case"HemisphereLight":et={direction:new Vector3,skyColor:new Color$2,groundColor:new Color$2};break;case"RectAreaLight":et={color:new Color$2,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3};break}return s[o.id]=et,et}}}function ShadowUniformsCache(){const s={};return{get:function(o){if(s[o.id]!==void 0)return s[o.id];let et;switch(o.type){case"DirectionalLight":et={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"SpotLight":et={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"PointLight":et={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1e3};break}return s[o.id]=et,et}}}let nextVersion=0;function shadowCastingAndTexturingLightsFirst(s,o){return(o.castShadow?2:0)-(s.castShadow?2:0)+(o.map?1:0)-(s.map?1:0)}function WebGLLights(s){const o=new UniformsCache,et=ShadowUniformsCache(),tt={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let at=0;at<9;at++)tt.probe.push(new Vector3);const nt=new Vector3,rt=new Matrix4,it=new Matrix4;function ot(at){let lt=0,ut=0,dt=0;for(let Rt=0;Rt<9;Rt++)tt.probe[Rt].set(0,0,0);let ht=0,ct=0,pt=0,ft=0,gt=0,yt=0,Ut=0,Ft=0,mt=0,vt=0,At=0;at.sort(shadowCastingAndTexturingLightsFirst);for(let Rt=0,St=at.length;Rt0&&(s.has("OES_texture_float_linear")===!0?(tt.rectAreaLTC1=UniformsLib.LTC_FLOAT_1,tt.rectAreaLTC2=UniformsLib.LTC_FLOAT_2):(tt.rectAreaLTC1=UniformsLib.LTC_HALF_1,tt.rectAreaLTC2=UniformsLib.LTC_HALF_2)),tt.ambient[0]=lt,tt.ambient[1]=ut,tt.ambient[2]=dt;const Lt=tt.hash;(Lt.directionalLength!==ht||Lt.pointLength!==ct||Lt.spotLength!==pt||Lt.rectAreaLength!==ft||Lt.hemiLength!==gt||Lt.numDirectionalShadows!==yt||Lt.numPointShadows!==Ut||Lt.numSpotShadows!==Ft||Lt.numSpotMaps!==mt||Lt.numLightProbes!==At)&&(tt.directional.length=ht,tt.spot.length=pt,tt.rectArea.length=ft,tt.point.length=ct,tt.hemi.length=gt,tt.directionalShadow.length=yt,tt.directionalShadowMap.length=yt,tt.pointShadow.length=Ut,tt.pointShadowMap.length=Ut,tt.spotShadow.length=Ft,tt.spotShadowMap.length=Ft,tt.directionalShadowMatrix.length=yt,tt.pointShadowMatrix.length=Ut,tt.spotLightMatrix.length=Ft+mt-vt,tt.spotLightMap.length=mt,tt.numSpotLightShadowsWithMaps=vt,tt.numLightProbes=At,Lt.directionalLength=ht,Lt.pointLength=ct,Lt.spotLength=pt,Lt.rectAreaLength=ft,Lt.hemiLength=gt,Lt.numDirectionalShadows=yt,Lt.numPointShadows=Ut,Lt.numSpotShadows=Ft,Lt.numSpotMaps=mt,Lt.numLightProbes=At,tt.version=nextVersion++)}function st(at,lt){let ut=0,dt=0,ht=0,ct=0,pt=0;const ft=lt.matrixWorldInverse;for(let gt=0,yt=at.length;gt=it.length?(ot=new WebGLRenderState(s),it.push(ot)):ot=it[rt],ot}function tt(){o=new WeakMap}return{get:et,dispose:tt}}class MeshDepthMaterial extends Material{constructor(o){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=BasicDepthPacking,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(o)}copy(o){return super.copy(o),this.depthPacking=o.depthPacking,this.map=o.map,this.alphaMap=o.alphaMap,this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this}}class MeshDistanceMaterial extends Material{constructor(o){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(o)}copy(o){return super.copy(o),this.map=o.map,this.alphaMap=o.alphaMap,this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this}}const vertex=`void main() { +`+Jt)}else Bt!==""?console.warn("THREE.WebGLProgram: Program Info Log:",Bt):(xt===""||Ct==="")&&(Nt=!1);Nt&&(Tt.diagnostics={runnable:kt,programLog:Bt,vertexShader:{log:xt,prefix:ft},fragmentShader:{log:Ct,prefix:gt}})}nt.deleteShader(mt),nt.deleteShader(vt),Lt=new WebGLUniforms(nt,pt),Rt=fetchAttributeLocations(nt,pt)}let Lt;this.getUniforms=function(){return Lt===void 0&&At(this),Lt};let Rt;this.getAttributes=function(){return Rt===void 0&&At(this),Rt};let St=et.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return St===!1&&(St=nt.getProgramParameter(pt,COMPLETION_STATUS_KHR)),St},this.destroy=function(){tt.releaseStatesOfProgram(this),nt.deleteProgram(pt),this.program=void 0},this.type=et.shaderType,this.name=et.shaderName,this.id=programIdCount++,this.cacheKey=o,this.usedTimes=1,this.program=pt,this.vertexShader=mt,this.fragmentShader=vt,this}let _id$1=0;class WebGLShaderCache{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(o){const et=o.vertexShader,tt=o.fragmentShader,nt=this._getShaderStage(et),rt=this._getShaderStage(tt),it=this._getShaderCacheForMaterial(o);return it.has(nt)===!1&&(it.add(nt),nt.usedTimes++),it.has(rt)===!1&&(it.add(rt),rt.usedTimes++),this}remove(o){const et=this.materialCache.get(o);for(const tt of et)tt.usedTimes--,tt.usedTimes===0&&this.shaderCache.delete(tt.code);return this.materialCache.delete(o),this}getVertexShaderID(o){return this._getShaderStage(o.vertexShader).id}getFragmentShaderID(o){return this._getShaderStage(o.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(o){const et=this.materialCache;let tt=et.get(o);return tt===void 0&&(tt=new Set,et.set(o,tt)),tt}_getShaderStage(o){const et=this.shaderCache;let tt=et.get(o);return tt===void 0&&(tt=new WebGLShaderStage(o),et.set(o,tt)),tt}}class WebGLShaderStage{constructor(o){this.id=_id$1++,this.code=o,this.usedTimes=0}}function WebGLPrograms(s,o,et,tt,nt,rt,it){const ot=new Layers,st=new WebGLShaderCache,at=new Set,lt=[],ut=nt.logarithmicDepthBuffer,dt=nt.vertexTextures;let ht=nt.precision;const ct={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function pt(Rt){return at.add(Rt),Rt===0?"uv":`uv${Rt}`}function ft(Rt,St,Tt,Bt,xt){const Ct=Bt.fog,kt=xt.geometry,Nt=Rt.isMeshStandardMaterial?Bt.environment:null,Ot=(Rt.isMeshStandardMaterial?et:o).get(Rt.envMap||Nt),Jt=Ot&&Ot.mapping===CubeUVReflectionMapping?Ot.image.height:null,Dt=ct[Rt.type];Rt.precision!==null&&(ht=nt.getMaxPrecision(Rt.precision),ht!==Rt.precision&&console.warn("THREE.WebGLProgram.getParameters:",Rt.precision,"not supported, using",ht,"instead."));const Et=kt.morphAttributes.position||kt.morphAttributes.normal||kt.morphAttributes.color,Pt=Et!==void 0?Et.length:0;let zt=0;kt.morphAttributes.position!==void 0&&(zt=1),kt.morphAttributes.normal!==void 0&&(zt=2),kt.morphAttributes.color!==void 0&&(zt=3);let en,Kt,nn,Zt;if(Dt){const tr=ShaderLib[Dt];en=tr.vertexShader,Kt=tr.fragmentShader}else en=Rt.vertexShader,Kt=Rt.fragmentShader,st.update(Rt),nn=st.getVertexShaderID(Rt),Zt=st.getFragmentShaderID(Rt);const jt=s.getRenderTarget(),Vt=xt.isInstancedMesh===!0,It=xt.isBatchedMesh===!0,$t=!!Rt.map,Ht=!!Rt.matcap,qt=!!Ot,on=!!Rt.aoMap,Xt=!!Rt.lightMap,dn=!!Rt.bumpMap,_n=!!Rt.normalMap,Fn=!!Rt.displacementMap,Un=!!Rt.emissiveMap,On=!!Rt.metalnessMap,gn=!!Rt.roughnessMap,hn=Rt.anisotropy>0,wn=Rt.clearcoat>0,Zn=Rt.dispersion>0,Pn=Rt.iridescence>0,$n=Rt.sheen>0,Tr=Rt.transmission>0,Qr=hn&&!!Rt.anisotropyMap,_r=wn&&!!Rt.clearcoatMap,Ir=wn&&!!Rt.clearcoatNormalMap,Jr=wn&&!!Rt.clearcoatRoughnessMap,qr=Pn&&!!Rt.iridescenceMap,Uo=Pn&&!!Rt.iridescenceThicknessMap,eo=$n&&!!Rt.sheenColorMap,Yr=$n&&!!Rt.sheenRoughnessMap,_o=!!Rt.specularMap,ro=!!Rt.specularColorMap,Fo=!!Rt.specularIntensityMap,kn=Tr&&!!Rt.transmissionMap,un=Tr&&!!Rt.thicknessMap,pn=!!Rt.gradientMap,Qn=!!Rt.alphaMap,Jn=Rt.alphaTest>0,jn=!!Rt.alphaHash,Fr=!!Rt.extensions;let Er=NoToneMapping;Rt.toneMapped&&(jt===null||jt.isXRRenderTarget===!0)&&(Er=s.toneMapping);const wr={shaderID:Dt,shaderType:Rt.type,shaderName:Rt.name,vertexShader:en,fragmentShader:Kt,defines:Rt.defines,customVertexShaderID:nn,customFragmentShaderID:Zt,isRawShaderMaterial:Rt.isRawShaderMaterial===!0,glslVersion:Rt.glslVersion,precision:ht,batching:It,batchingColor:It&&xt._colorsTexture!==null,instancing:Vt,instancingColor:Vt&&xt.instanceColor!==null,instancingMorph:Vt&&xt.morphTexture!==null,supportsVertexTextures:dt,outputColorSpace:jt===null?s.outputColorSpace:jt.isXRRenderTarget===!0?jt.texture.colorSpace:LinearSRGBColorSpace$1,alphaToCoverage:!!Rt.alphaToCoverage,map:$t,matcap:Ht,envMap:qt,envMapMode:qt&&Ot.mapping,envMapCubeUVHeight:Jt,aoMap:on,lightMap:Xt,bumpMap:dn,normalMap:_n,displacementMap:dt&&Fn,emissiveMap:Un,normalMapObjectSpace:_n&&Rt.normalMapType===ObjectSpaceNormalMap,normalMapTangentSpace:_n&&Rt.normalMapType===TangentSpaceNormalMap,metalnessMap:On,roughnessMap:gn,anisotropy:hn,anisotropyMap:Qr,clearcoat:wn,clearcoatMap:_r,clearcoatNormalMap:Ir,clearcoatRoughnessMap:Jr,dispersion:Zn,iridescence:Pn,iridescenceMap:qr,iridescenceThicknessMap:Uo,sheen:$n,sheenColorMap:eo,sheenRoughnessMap:Yr,specularMap:_o,specularColorMap:ro,specularIntensityMap:Fo,transmission:Tr,transmissionMap:kn,thicknessMap:un,gradientMap:pn,opaque:Rt.transparent===!1&&Rt.blending===NormalBlending&&Rt.alphaToCoverage===!1,alphaMap:Qn,alphaTest:Jn,alphaHash:jn,combine:Rt.combine,mapUv:$t&&pt(Rt.map.channel),aoMapUv:on&&pt(Rt.aoMap.channel),lightMapUv:Xt&&pt(Rt.lightMap.channel),bumpMapUv:dn&&pt(Rt.bumpMap.channel),normalMapUv:_n&&pt(Rt.normalMap.channel),displacementMapUv:Fn&&pt(Rt.displacementMap.channel),emissiveMapUv:Un&&pt(Rt.emissiveMap.channel),metalnessMapUv:On&&pt(Rt.metalnessMap.channel),roughnessMapUv:gn&&pt(Rt.roughnessMap.channel),anisotropyMapUv:Qr&&pt(Rt.anisotropyMap.channel),clearcoatMapUv:_r&&pt(Rt.clearcoatMap.channel),clearcoatNormalMapUv:Ir&&pt(Rt.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Jr&&pt(Rt.clearcoatRoughnessMap.channel),iridescenceMapUv:qr&&pt(Rt.iridescenceMap.channel),iridescenceThicknessMapUv:Uo&&pt(Rt.iridescenceThicknessMap.channel),sheenColorMapUv:eo&&pt(Rt.sheenColorMap.channel),sheenRoughnessMapUv:Yr&&pt(Rt.sheenRoughnessMap.channel),specularMapUv:_o&&pt(Rt.specularMap.channel),specularColorMapUv:ro&&pt(Rt.specularColorMap.channel),specularIntensityMapUv:Fo&&pt(Rt.specularIntensityMap.channel),transmissionMapUv:kn&&pt(Rt.transmissionMap.channel),thicknessMapUv:un&&pt(Rt.thicknessMap.channel),alphaMapUv:Qn&&pt(Rt.alphaMap.channel),vertexTangents:!!kt.attributes.tangent&&(_n||hn),vertexColors:Rt.vertexColors,vertexAlphas:Rt.vertexColors===!0&&!!kt.attributes.color&&kt.attributes.color.itemSize===4,pointsUvs:xt.isPoints===!0&&!!kt.attributes.uv&&($t||Qn),fog:!!Ct,useFog:Rt.fog===!0,fogExp2:!!Ct&&Ct.isFogExp2,flatShading:Rt.flatShading===!0,sizeAttenuation:Rt.sizeAttenuation===!0,logarithmicDepthBuffer:ut,skinning:xt.isSkinnedMesh===!0,morphTargets:kt.morphAttributes.position!==void 0,morphNormals:kt.morphAttributes.normal!==void 0,morphColors:kt.morphAttributes.color!==void 0,morphTargetsCount:Pt,morphTextureStride:zt,numDirLights:St.directional.length,numPointLights:St.point.length,numSpotLights:St.spot.length,numSpotLightMaps:St.spotLightMap.length,numRectAreaLights:St.rectArea.length,numHemiLights:St.hemi.length,numDirLightShadows:St.directionalShadowMap.length,numPointLightShadows:St.pointShadowMap.length,numSpotLightShadows:St.spotShadowMap.length,numSpotLightShadowsWithMaps:St.numSpotLightShadowsWithMaps,numLightProbes:St.numLightProbes,numClippingPlanes:it.numPlanes,numClipIntersection:it.numIntersection,dithering:Rt.dithering,shadowMapEnabled:s.shadowMap.enabled&&Tt.length>0,shadowMapType:s.shadowMap.type,toneMapping:Er,decodeVideoTexture:$t&&Rt.map.isVideoTexture===!0&&ColorManagement.getTransfer(Rt.map.colorSpace)===SRGBTransfer,premultipliedAlpha:Rt.premultipliedAlpha,doubleSided:Rt.side===DoubleSide,flipSided:Rt.side===BackSide,useDepthPacking:Rt.depthPacking>=0,depthPacking:Rt.depthPacking||0,index0AttributeName:Rt.index0AttributeName,extensionClipCullDistance:Fr&&Rt.extensions.clipCullDistance===!0&&tt.has("WEBGL_clip_cull_distance"),extensionMultiDraw:Fr&&Rt.extensions.multiDraw===!0&&tt.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:tt.has("KHR_parallel_shader_compile"),customProgramCacheKey:Rt.customProgramCacheKey()};return wr.vertexUv1s=at.has(1),wr.vertexUv2s=at.has(2),wr.vertexUv3s=at.has(3),at.clear(),wr}function gt(Rt){const St=[];if(Rt.shaderID?St.push(Rt.shaderID):(St.push(Rt.customVertexShaderID),St.push(Rt.customFragmentShaderID)),Rt.defines!==void 0)for(const Tt in Rt.defines)St.push(Tt),St.push(Rt.defines[Tt]);return Rt.isRawShaderMaterial===!1&&(yt(St,Rt),Ut(St,Rt),St.push(s.outputColorSpace)),St.push(Rt.customProgramCacheKey),St.join()}function yt(Rt,St){Rt.push(St.precision),Rt.push(St.outputColorSpace),Rt.push(St.envMapMode),Rt.push(St.envMapCubeUVHeight),Rt.push(St.mapUv),Rt.push(St.alphaMapUv),Rt.push(St.lightMapUv),Rt.push(St.aoMapUv),Rt.push(St.bumpMapUv),Rt.push(St.normalMapUv),Rt.push(St.displacementMapUv),Rt.push(St.emissiveMapUv),Rt.push(St.metalnessMapUv),Rt.push(St.roughnessMapUv),Rt.push(St.anisotropyMapUv),Rt.push(St.clearcoatMapUv),Rt.push(St.clearcoatNormalMapUv),Rt.push(St.clearcoatRoughnessMapUv),Rt.push(St.iridescenceMapUv),Rt.push(St.iridescenceThicknessMapUv),Rt.push(St.sheenColorMapUv),Rt.push(St.sheenRoughnessMapUv),Rt.push(St.specularMapUv),Rt.push(St.specularColorMapUv),Rt.push(St.specularIntensityMapUv),Rt.push(St.transmissionMapUv),Rt.push(St.thicknessMapUv),Rt.push(St.combine),Rt.push(St.fogExp2),Rt.push(St.sizeAttenuation),Rt.push(St.morphTargetsCount),Rt.push(St.morphAttributeCount),Rt.push(St.numDirLights),Rt.push(St.numPointLights),Rt.push(St.numSpotLights),Rt.push(St.numSpotLightMaps),Rt.push(St.numHemiLights),Rt.push(St.numRectAreaLights),Rt.push(St.numDirLightShadows),Rt.push(St.numPointLightShadows),Rt.push(St.numSpotLightShadows),Rt.push(St.numSpotLightShadowsWithMaps),Rt.push(St.numLightProbes),Rt.push(St.shadowMapType),Rt.push(St.toneMapping),Rt.push(St.numClippingPlanes),Rt.push(St.numClipIntersection),Rt.push(St.depthPacking)}function Ut(Rt,St){ot.disableAll(),St.supportsVertexTextures&&ot.enable(0),St.instancing&&ot.enable(1),St.instancingColor&&ot.enable(2),St.instancingMorph&&ot.enable(3),St.matcap&&ot.enable(4),St.envMap&&ot.enable(5),St.normalMapObjectSpace&&ot.enable(6),St.normalMapTangentSpace&&ot.enable(7),St.clearcoat&&ot.enable(8),St.iridescence&&ot.enable(9),St.alphaTest&&ot.enable(10),St.vertexColors&&ot.enable(11),St.vertexAlphas&&ot.enable(12),St.vertexUv1s&&ot.enable(13),St.vertexUv2s&&ot.enable(14),St.vertexUv3s&&ot.enable(15),St.vertexTangents&&ot.enable(16),St.anisotropy&&ot.enable(17),St.alphaHash&&ot.enable(18),St.batching&&ot.enable(19),St.dispersion&&ot.enable(20),St.batchingColor&&ot.enable(21),Rt.push(ot.mask),ot.disableAll(),St.fog&&ot.enable(0),St.useFog&&ot.enable(1),St.flatShading&&ot.enable(2),St.logarithmicDepthBuffer&&ot.enable(3),St.skinning&&ot.enable(4),St.morphTargets&&ot.enable(5),St.morphNormals&&ot.enable(6),St.morphColors&&ot.enable(7),St.premultipliedAlpha&&ot.enable(8),St.shadowMapEnabled&&ot.enable(9),St.doubleSided&&ot.enable(10),St.flipSided&&ot.enable(11),St.useDepthPacking&&ot.enable(12),St.dithering&&ot.enable(13),St.transmission&&ot.enable(14),St.sheen&&ot.enable(15),St.opaque&&ot.enable(16),St.pointsUvs&&ot.enable(17),St.decodeVideoTexture&&ot.enable(18),St.alphaToCoverage&&ot.enable(19),Rt.push(ot.mask)}function Ft(Rt){const St=ct[Rt.type];let Tt;if(St){const Bt=ShaderLib[St];Tt=UniformsUtils.clone(Bt.uniforms)}else Tt=Rt.uniforms;return Tt}function mt(Rt,St){let Tt;for(let Bt=0,xt=lt.length;Bt0?tt.push(gt):ht.transparent===!0?nt.push(gt):et.push(gt)}function st(ut,dt,ht,ct,pt,ft){const gt=it(ut,dt,ht,ct,pt,ft);ht.transmission>0?tt.unshift(gt):ht.transparent===!0?nt.unshift(gt):et.unshift(gt)}function at(ut,dt){et.length>1&&et.sort(ut||painterSortStable),tt.length>1&&tt.sort(dt||reversePainterSortStable),nt.length>1&&nt.sort(dt||reversePainterSortStable)}function lt(){for(let ut=o,dt=s.length;ut=rt.length?(it=new WebGLRenderList,rt.push(it)):it=rt[nt],it}function et(){s=new WeakMap}return{get:o,dispose:et}}function UniformsCache(){const s={};return{get:function(o){if(s[o.id]!==void 0)return s[o.id];let et;switch(o.type){case"DirectionalLight":et={direction:new Vector3,color:new Color$2};break;case"SpotLight":et={position:new Vector3,direction:new Vector3,color:new Color$2,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":et={position:new Vector3,color:new Color$2,distance:0,decay:0};break;case"HemisphereLight":et={direction:new Vector3,skyColor:new Color$2,groundColor:new Color$2};break;case"RectAreaLight":et={color:new Color$2,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3};break}return s[o.id]=et,et}}}function ShadowUniformsCache(){const s={};return{get:function(o){if(s[o.id]!==void 0)return s[o.id];let et;switch(o.type){case"DirectionalLight":et={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"SpotLight":et={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"PointLight":et={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1e3};break}return s[o.id]=et,et}}}let nextVersion=0;function shadowCastingAndTexturingLightsFirst(s,o){return(o.castShadow?2:0)-(s.castShadow?2:0)+(o.map?1:0)-(s.map?1:0)}function WebGLLights(s){const o=new UniformsCache,et=ShadowUniformsCache(),tt={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let at=0;at<9;at++)tt.probe.push(new Vector3);const nt=new Vector3,rt=new Matrix4,it=new Matrix4;function ot(at){let lt=0,ut=0,dt=0;for(let Rt=0;Rt<9;Rt++)tt.probe[Rt].set(0,0,0);let ht=0,ct=0,pt=0,ft=0,gt=0,yt=0,Ut=0,Ft=0,mt=0,vt=0,At=0;at.sort(shadowCastingAndTexturingLightsFirst);for(let Rt=0,St=at.length;Rt0&&(s.has("OES_texture_float_linear")===!0?(tt.rectAreaLTC1=UniformsLib.LTC_FLOAT_1,tt.rectAreaLTC2=UniformsLib.LTC_FLOAT_2):(tt.rectAreaLTC1=UniformsLib.LTC_HALF_1,tt.rectAreaLTC2=UniformsLib.LTC_HALF_2)),tt.ambient[0]=lt,tt.ambient[1]=ut,tt.ambient[2]=dt;const Lt=tt.hash;(Lt.directionalLength!==ht||Lt.pointLength!==ct||Lt.spotLength!==pt||Lt.rectAreaLength!==ft||Lt.hemiLength!==gt||Lt.numDirectionalShadows!==yt||Lt.numPointShadows!==Ut||Lt.numSpotShadows!==Ft||Lt.numSpotMaps!==mt||Lt.numLightProbes!==At)&&(tt.directional.length=ht,tt.spot.length=pt,tt.rectArea.length=ft,tt.point.length=ct,tt.hemi.length=gt,tt.directionalShadow.length=yt,tt.directionalShadowMap.length=yt,tt.pointShadow.length=Ut,tt.pointShadowMap.length=Ut,tt.spotShadow.length=Ft,tt.spotShadowMap.length=Ft,tt.directionalShadowMatrix.length=yt,tt.pointShadowMatrix.length=Ut,tt.spotLightMatrix.length=Ft+mt-vt,tt.spotLightMap.length=mt,tt.numSpotLightShadowsWithMaps=vt,tt.numLightProbes=At,Lt.directionalLength=ht,Lt.pointLength=ct,Lt.spotLength=pt,Lt.rectAreaLength=ft,Lt.hemiLength=gt,Lt.numDirectionalShadows=yt,Lt.numPointShadows=Ut,Lt.numSpotShadows=Ft,Lt.numSpotMaps=mt,Lt.numLightProbes=At,tt.version=nextVersion++)}function st(at,lt){let ut=0,dt=0,ht=0,ct=0,pt=0;const ft=lt.matrixWorldInverse;for(let gt=0,yt=at.length;gt=it.length?(ot=new WebGLRenderState(s),it.push(ot)):ot=it[rt],ot}function tt(){o=new WeakMap}return{get:et,dispose:tt}}class MeshDepthMaterial extends Material{constructor(o){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=BasicDepthPacking,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(o)}copy(o){return super.copy(o),this.depthPacking=o.depthPacking,this.map=o.map,this.alphaMap=o.alphaMap,this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this}}class MeshDistanceMaterial extends Material{constructor(o){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(o)}copy(o){return super.copy(o),this.map=o.map,this.alphaMap=o.alphaMap,this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this}}const vertex=`void main() { gl_Position = vec4( position, 1.0 ); }`,fragment=`uniform sampler2D shadow_pass; uniform vec2 resolution; @@ -3814,7 +3814,7 @@ void main() { squared_mean = squared_mean / samples; float std_dev = sqrt( squared_mean - mean * mean ); gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); -}`;function WebGLShadowMap(s,o,et){let tt=new Frustum;const nt=new Vector2,rt=new Vector2,it=new Vector4,ot=new MeshDepthMaterial({depthPacking:RGBADepthPacking}),st=new MeshDistanceMaterial,at={},lt=et.maxTextureSize,ut={[FrontSide]:BackSide,[BackSide]:FrontSide,[DoubleSide]:DoubleSide},dt=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:vertex,fragmentShader:fragment}),ht=dt.clone();ht.defines.HORIZONTAL_PASS=1;const ct=new BufferGeometry;ct.setAttribute("position",new BufferAttribute(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const pt=new Mesh(ct,dt),ft=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=PCFShadowMap;let gt=this.type;this.render=function(vt,At,Lt){if(ft.enabled===!1||ft.autoUpdate===!1&&ft.needsUpdate===!1||vt.length===0)return;const Rt=s.getRenderTarget(),St=s.getActiveCubeFace(),Tt=s.getActiveMipmapLevel(),Bt=s.state;Bt.setBlending(NoBlending),Bt.buffers.color.setClear(1,1,1,1),Bt.buffers.depth.setTest(!0),Bt.setScissorTest(!1);const xt=gt!==VSMShadowMap&&this.type===VSMShadowMap,Ct=gt===VSMShadowMap&&this.type!==VSMShadowMap;for(let kt=0,Nt=vt.length;ktlt||nt.y>lt)&&(nt.x>lt&&(rt.x=Math.floor(lt/Dt.x),nt.x=rt.x*Dt.x,Wt.mapSize.x=rt.x),nt.y>lt&&(rt.y=Math.floor(lt/Dt.y),nt.y=rt.y*Dt.y,Wt.mapSize.y=rt.y)),Wt.map===null||xt===!0||Ct===!0){const Pt=this.type!==VSMShadowMap?{minFilter:NearestFilter,magFilter:NearestFilter}:{};Wt.map!==null&&Wt.map.dispose(),Wt.map=new WebGLRenderTarget(nt.x,nt.y,Pt),Wt.map.texture.name=Ot.name+".shadowMap",Wt.camera.updateProjectionMatrix()}s.setRenderTarget(Wt.map),s.clear();const Et=Wt.getViewportCount();for(let Pt=0;Pt0||At.map&&At.alphaTest>0){const Bt=St.uuid,xt=At.uuid;let Ct=at[Bt];Ct===void 0&&(Ct={},at[Bt]=Ct);let kt=Ct[xt];kt===void 0&&(kt=St.clone(),Ct[xt]=kt,At.addEventListener("dispose",mt)),St=kt}if(St.visible=At.visible,St.wireframe=At.wireframe,Rt===VSMShadowMap?St.side=At.shadowSide!==null?At.shadowSide:At.side:St.side=At.shadowSide!==null?At.shadowSide:ut[At.side],St.alphaMap=At.alphaMap,St.alphaTest=At.alphaTest,St.map=At.map,St.clipShadows=At.clipShadows,St.clippingPlanes=At.clippingPlanes,St.clipIntersection=At.clipIntersection,St.displacementMap=At.displacementMap,St.displacementScale=At.displacementScale,St.displacementBias=At.displacementBias,St.wireframeLinewidth=At.wireframeLinewidth,St.linewidth=At.linewidth,Lt.isPointLight===!0&&St.isMeshDistanceMaterial===!0){const Bt=s.properties.get(St);Bt.light=Lt}return St}function Ft(vt,At,Lt,Rt,St){if(vt.visible===!1)return;if(vt.layers.test(At.layers)&&(vt.isMesh||vt.isLine||vt.isPoints)&&(vt.castShadow||vt.receiveShadow&&St===VSMShadowMap)&&(!vt.frustumCulled||tt.intersectsObject(vt))){vt.modelViewMatrix.multiplyMatrices(Lt.matrixWorldInverse,vt.matrixWorld);const xt=o.update(vt),Ct=vt.material;if(Array.isArray(Ct)){const kt=xt.groups;for(let Nt=0,Ot=kt.length;Nt=1):Ot.indexOf("OpenGL ES")!==-1&&(Nt=parseFloat(/^OpenGL ES (\d)/.exec(Ot)[1]),kt=Nt>=2);let Wt=null,Dt={};const Et=s.getParameter(s.SCISSOR_BOX),Pt=s.getParameter(s.VIEWPORT),zt=new Vector4().fromArray(Et),en=new Vector4().fromArray(Pt);function Kt(kn,un,pn,Qn){const Wn=new Uint8Array(4),jn=s.createTexture();s.bindTexture(kn,jn),s.texParameteri(kn,s.TEXTURE_MIN_FILTER,s.NEAREST),s.texParameteri(kn,s.TEXTURE_MAG_FILTER,s.NEAREST);for(let Fr=0;Fr"u"?!1:/OculusBrowser/g.test(navigator.userAgent),at=new Vector2,lt=new WeakMap;let ut;const dt=new WeakMap;let ht=!1;try{ht=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function ct(gn,hn){return ht?new OffscreenCanvas(gn,hn):createElementNS("canvas")}function pt(gn,hn,wn){let Zn=1;const Pn=On(gn);if((Pn.width>wn||Pn.height>wn)&&(Zn=wn/Math.max(Pn.width,Pn.height)),Zn<1)if(typeof HTMLImageElement<"u"&&gn instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&gn instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&gn instanceof ImageBitmap||typeof VideoFrame<"u"&&gn instanceof VideoFrame){const $n=Math.floor(Zn*Pn.width),Tr=Math.floor(Zn*Pn.height);ut===void 0&&(ut=ct($n,Tr));const Qr=hn?ct($n,Tr):ut;return Qr.width=$n,Qr.height=Tr,Qr.getContext("2d").drawImage(gn,0,0,$n,Tr),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+Pn.width+"x"+Pn.height+") to ("+$n+"x"+Tr+")."),Qr}else return"data"in gn&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+Pn.width+"x"+Pn.height+")."),gn;return gn}function ft(gn){return gn.generateMipmaps&&gn.minFilter!==NearestFilter&&gn.minFilter!==LinearFilter}function gt(gn){s.generateMipmap(gn)}function yt(gn,hn,wn,Zn,Pn=!1){if(gn!==null){if(s[gn]!==void 0)return s[gn];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+gn+"'")}let $n=hn;if(hn===s.RED&&(wn===s.FLOAT&&($n=s.R32F),wn===s.HALF_FLOAT&&($n=s.R16F),wn===s.UNSIGNED_BYTE&&($n=s.R8)),hn===s.RED_INTEGER&&(wn===s.UNSIGNED_BYTE&&($n=s.R8UI),wn===s.UNSIGNED_SHORT&&($n=s.R16UI),wn===s.UNSIGNED_INT&&($n=s.R32UI),wn===s.BYTE&&($n=s.R8I),wn===s.SHORT&&($n=s.R16I),wn===s.INT&&($n=s.R32I)),hn===s.RG&&(wn===s.FLOAT&&($n=s.RG32F),wn===s.HALF_FLOAT&&($n=s.RG16F),wn===s.UNSIGNED_BYTE&&($n=s.RG8)),hn===s.RG_INTEGER&&(wn===s.UNSIGNED_BYTE&&($n=s.RG8UI),wn===s.UNSIGNED_SHORT&&($n=s.RG16UI),wn===s.UNSIGNED_INT&&($n=s.RG32UI),wn===s.BYTE&&($n=s.RG8I),wn===s.SHORT&&($n=s.RG16I),wn===s.INT&&($n=s.RG32I)),hn===s.RGB&&wn===s.UNSIGNED_INT_5_9_9_9_REV&&($n=s.RGB9_E5),hn===s.RGBA){const Tr=Pn?LinearTransfer:ColorManagement.getTransfer(Zn);wn===s.FLOAT&&($n=s.RGBA32F),wn===s.HALF_FLOAT&&($n=s.RGBA16F),wn===s.UNSIGNED_BYTE&&($n=Tr===SRGBTransfer?s.SRGB8_ALPHA8:s.RGBA8),wn===s.UNSIGNED_SHORT_4_4_4_4&&($n=s.RGBA4),wn===s.UNSIGNED_SHORT_5_5_5_1&&($n=s.RGB5_A1)}return($n===s.R16F||$n===s.R32F||$n===s.RG16F||$n===s.RG32F||$n===s.RGBA16F||$n===s.RGBA32F)&&o.get("EXT_color_buffer_float"),$n}function Ut(gn,hn){let wn;return gn?hn===null||hn===UnsignedIntType||hn===UnsignedInt248Type?wn=s.DEPTH24_STENCIL8:hn===FloatType?wn=s.DEPTH32F_STENCIL8:hn===UnsignedShortType&&(wn=s.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):hn===null||hn===UnsignedIntType||hn===UnsignedInt248Type?wn=s.DEPTH_COMPONENT24:hn===FloatType?wn=s.DEPTH_COMPONENT32F:hn===UnsignedShortType&&(wn=s.DEPTH_COMPONENT16),wn}function Ft(gn,hn){return ft(gn)===!0||gn.isFramebufferTexture&&gn.minFilter!==NearestFilter&&gn.minFilter!==LinearFilter?Math.log2(Math.max(hn.width,hn.height))+1:gn.mipmaps!==void 0&&gn.mipmaps.length>0?gn.mipmaps.length:gn.isCompressedTexture&&Array.isArray(gn.image)?hn.mipmaps.length:1}function mt(gn){const hn=gn.target;hn.removeEventListener("dispose",mt),At(hn),hn.isVideoTexture&<.delete(hn)}function vt(gn){const hn=gn.target;hn.removeEventListener("dispose",vt),Rt(hn)}function At(gn){const hn=tt.get(gn);if(hn.__webglInit===void 0)return;const wn=gn.source,Zn=dt.get(wn);if(Zn){const Pn=Zn[hn.__cacheKey];Pn.usedTimes--,Pn.usedTimes===0&&Lt(gn),Object.keys(Zn).length===0&&dt.delete(wn)}tt.remove(gn)}function Lt(gn){const hn=tt.get(gn);s.deleteTexture(hn.__webglTexture);const wn=gn.source,Zn=dt.get(wn);delete Zn[hn.__cacheKey],it.memory.textures--}function Rt(gn){const hn=tt.get(gn);if(gn.depthTexture&&gn.depthTexture.dispose(),gn.isWebGLCubeRenderTarget)for(let Zn=0;Zn<6;Zn++){if(Array.isArray(hn.__webglFramebuffer[Zn]))for(let Pn=0;Pn=nt.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+gn+" texture units while this GPU supports only "+nt.maxTextures),St+=1,gn}function xt(gn){const hn=[];return hn.push(gn.wrapS),hn.push(gn.wrapT),hn.push(gn.wrapR||0),hn.push(gn.magFilter),hn.push(gn.minFilter),hn.push(gn.anisotropy),hn.push(gn.internalFormat),hn.push(gn.format),hn.push(gn.type),hn.push(gn.generateMipmaps),hn.push(gn.premultiplyAlpha),hn.push(gn.flipY),hn.push(gn.unpackAlignment),hn.push(gn.colorSpace),hn.join()}function Ct(gn,hn){const wn=tt.get(gn);if(gn.isVideoTexture&&Fn(gn),gn.isRenderTargetTexture===!1&&gn.version>0&&wn.__version!==gn.version){const Zn=gn.image;if(Zn===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Zn.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{en(wn,gn,hn);return}}et.bindTexture(s.TEXTURE_2D,wn.__webglTexture,s.TEXTURE0+hn)}function kt(gn,hn){const wn=tt.get(gn);if(gn.version>0&&wn.__version!==gn.version){en(wn,gn,hn);return}et.bindTexture(s.TEXTURE_2D_ARRAY,wn.__webglTexture,s.TEXTURE0+hn)}function Nt(gn,hn){const wn=tt.get(gn);if(gn.version>0&&wn.__version!==gn.version){en(wn,gn,hn);return}et.bindTexture(s.TEXTURE_3D,wn.__webglTexture,s.TEXTURE0+hn)}function Ot(gn,hn){const wn=tt.get(gn);if(gn.version>0&&wn.__version!==gn.version){Kt(wn,gn,hn);return}et.bindTexture(s.TEXTURE_CUBE_MAP,wn.__webglTexture,s.TEXTURE0+hn)}const Wt={[RepeatWrapping]:s.REPEAT,[ClampToEdgeWrapping]:s.CLAMP_TO_EDGE,[MirroredRepeatWrapping]:s.MIRRORED_REPEAT},Dt={[NearestFilter]:s.NEAREST,[NearestMipmapNearestFilter]:s.NEAREST_MIPMAP_NEAREST,[NearestMipmapLinearFilter]:s.NEAREST_MIPMAP_LINEAR,[LinearFilter]:s.LINEAR,[LinearMipmapNearestFilter]:s.LINEAR_MIPMAP_NEAREST,[LinearMipmapLinearFilter]:s.LINEAR_MIPMAP_LINEAR},Et={[NeverCompare]:s.NEVER,[AlwaysCompare]:s.ALWAYS,[LessCompare]:s.LESS,[LessEqualCompare]:s.LEQUAL,[EqualCompare]:s.EQUAL,[GreaterEqualCompare]:s.GEQUAL,[GreaterCompare]:s.GREATER,[NotEqualCompare]:s.NOTEQUAL};function Pt(gn,hn){if(hn.type===FloatType&&o.has("OES_texture_float_linear")===!1&&(hn.magFilter===LinearFilter||hn.magFilter===LinearMipmapNearestFilter||hn.magFilter===NearestMipmapLinearFilter||hn.magFilter===LinearMipmapLinearFilter||hn.minFilter===LinearFilter||hn.minFilter===LinearMipmapNearestFilter||hn.minFilter===NearestMipmapLinearFilter||hn.minFilter===LinearMipmapLinearFilter)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),s.texParameteri(gn,s.TEXTURE_WRAP_S,Wt[hn.wrapS]),s.texParameteri(gn,s.TEXTURE_WRAP_T,Wt[hn.wrapT]),(gn===s.TEXTURE_3D||gn===s.TEXTURE_2D_ARRAY)&&s.texParameteri(gn,s.TEXTURE_WRAP_R,Wt[hn.wrapR]),s.texParameteri(gn,s.TEXTURE_MAG_FILTER,Dt[hn.magFilter]),s.texParameteri(gn,s.TEXTURE_MIN_FILTER,Dt[hn.minFilter]),hn.compareFunction&&(s.texParameteri(gn,s.TEXTURE_COMPARE_MODE,s.COMPARE_REF_TO_TEXTURE),s.texParameteri(gn,s.TEXTURE_COMPARE_FUNC,Et[hn.compareFunction])),o.has("EXT_texture_filter_anisotropic")===!0){if(hn.magFilter===NearestFilter||hn.minFilter!==NearestMipmapLinearFilter&&hn.minFilter!==LinearMipmapLinearFilter||hn.type===FloatType&&o.has("OES_texture_float_linear")===!1)return;if(hn.anisotropy>1||tt.get(hn).__currentAnisotropy){const wn=o.get("EXT_texture_filter_anisotropic");s.texParameterf(gn,wn.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(hn.anisotropy,nt.getMaxAnisotropy())),tt.get(hn).__currentAnisotropy=hn.anisotropy}}}function zt(gn,hn){let wn=!1;gn.__webglInit===void 0&&(gn.__webglInit=!0,hn.addEventListener("dispose",mt));const Zn=hn.source;let Pn=dt.get(Zn);Pn===void 0&&(Pn={},dt.set(Zn,Pn));const $n=xt(hn);if($n!==gn.__cacheKey){Pn[$n]===void 0&&(Pn[$n]={texture:s.createTexture(),usedTimes:0},it.memory.textures++,wn=!0),Pn[$n].usedTimes++;const Tr=Pn[gn.__cacheKey];Tr!==void 0&&(Pn[gn.__cacheKey].usedTimes--,Tr.usedTimes===0&&Lt(hn)),gn.__cacheKey=$n,gn.__webglTexture=Pn[$n].texture}return wn}function en(gn,hn,wn){let Zn=s.TEXTURE_2D;(hn.isDataArrayTexture||hn.isCompressedArrayTexture)&&(Zn=s.TEXTURE_2D_ARRAY),hn.isData3DTexture&&(Zn=s.TEXTURE_3D);const Pn=zt(gn,hn),$n=hn.source;et.bindTexture(Zn,gn.__webglTexture,s.TEXTURE0+wn);const Tr=tt.get($n);if($n.version!==Tr.__version||Pn===!0){et.activeTexture(s.TEXTURE0+wn);const Qr=ColorManagement.getPrimaries(ColorManagement.workingColorSpace),_r=hn.colorSpace===NoColorSpace?null:ColorManagement.getPrimaries(hn.colorSpace),Ir=hn.colorSpace===NoColorSpace||Qr===_r?s.NONE:s.BROWSER_DEFAULT_WEBGL;s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,hn.flipY),s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,hn.premultiplyAlpha),s.pixelStorei(s.UNPACK_ALIGNMENT,hn.unpackAlignment),s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,Ir);let Wr=pt(hn.image,!1,nt.maxTextureSize);Wr=Un(hn,Wr);const qr=rt.convert(hn.format,hn.colorSpace),Uo=rt.convert(hn.type);let eo=yt(hn.internalFormat,qr,Uo,hn.colorSpace,hn.isVideoTexture);Pt(Zn,hn);let Yr;const _o=hn.mipmaps,ro=hn.isVideoTexture!==!0,Fo=Tr.__version===void 0||Pn===!0,kn=$n.dataReady,un=Ft(hn,Wr);if(hn.isDepthTexture)eo=Ut(hn.format===DepthStencilFormat,hn.type),Fo&&(ro?et.texStorage2D(s.TEXTURE_2D,1,eo,Wr.width,Wr.height):et.texImage2D(s.TEXTURE_2D,0,eo,Wr.width,Wr.height,0,qr,Uo,null));else if(hn.isDataTexture)if(_o.length>0){ro&&Fo&&et.texStorage2D(s.TEXTURE_2D,un,eo,_o[0].width,_o[0].height);for(let pn=0,Qn=_o.length;pn0){for(const Wn of hn.layerUpdates){const jn=Yr.width*Yr.height;et.compressedTexSubImage3D(s.TEXTURE_2D_ARRAY,pn,0,0,Wn,Yr.width,Yr.height,1,qr,Yr.data.slice(jn*Wn,jn*(Wn+1)),0,0)}hn.clearLayerUpdates()}else et.compressedTexSubImage3D(s.TEXTURE_2D_ARRAY,pn,0,0,0,Yr.width,Yr.height,Wr.depth,qr,Yr.data,0,0)}else et.compressedTexImage3D(s.TEXTURE_2D_ARRAY,pn,eo,Yr.width,Yr.height,Wr.depth,0,Yr.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else ro?kn&&et.texSubImage3D(s.TEXTURE_2D_ARRAY,pn,0,0,0,Yr.width,Yr.height,Wr.depth,qr,Uo,Yr.data):et.texImage3D(s.TEXTURE_2D_ARRAY,pn,eo,Yr.width,Yr.height,Wr.depth,0,qr,Uo,Yr.data)}else{ro&&Fo&&et.texStorage2D(s.TEXTURE_2D,un,eo,_o[0].width,_o[0].height);for(let pn=0,Qn=_o.length;pn0){let pn;switch(Uo){case s.UNSIGNED_BYTE:switch(qr){case s.ALPHA:pn=1;break;case s.LUMINANCE:pn=1;break;case s.LUMINANCE_ALPHA:pn=2;break;case s.RGB:pn=3;break;case s.RGBA:pn=4;break;default:throw new Error(`Unknown texel size for format ${qr}.`)}break;case s.UNSIGNED_SHORT_4_4_4_4:case s.UNSIGNED_SHORT_5_5_5_1:case s.UNSIGNED_SHORT_5_6_5:pn=1;break;default:throw new Error(`Unknown texel size for type ${Uo}.`)}const Qn=Wr.width*Wr.height*pn;for(const Wn of hn.layerUpdates)et.texSubImage3D(s.TEXTURE_2D_ARRAY,0,0,0,Wn,Wr.width,Wr.height,1,qr,Uo,Wr.data.slice(Qn*Wn,Qn*(Wn+1)));hn.clearLayerUpdates()}else et.texSubImage3D(s.TEXTURE_2D_ARRAY,0,0,0,0,Wr.width,Wr.height,Wr.depth,qr,Uo,Wr.data)}else et.texImage3D(s.TEXTURE_2D_ARRAY,0,eo,Wr.width,Wr.height,Wr.depth,0,qr,Uo,Wr.data);else if(hn.isData3DTexture)ro?(Fo&&et.texStorage3D(s.TEXTURE_3D,un,eo,Wr.width,Wr.height,Wr.depth),kn&&et.texSubImage3D(s.TEXTURE_3D,0,0,0,0,Wr.width,Wr.height,Wr.depth,qr,Uo,Wr.data)):et.texImage3D(s.TEXTURE_3D,0,eo,Wr.width,Wr.height,Wr.depth,0,qr,Uo,Wr.data);else if(hn.isFramebufferTexture){if(Fo)if(ro)et.texStorage2D(s.TEXTURE_2D,un,eo,Wr.width,Wr.height);else{let pn=Wr.width,Qn=Wr.height;for(let Wn=0;Wn>=1,Qn>>=1}}else if(_o.length>0){if(ro&&Fo){const pn=On(_o[0]);et.texStorage2D(s.TEXTURE_2D,un,eo,pn.width,pn.height)}for(let pn=0,Qn=_o.length;pn0&&un++;const Qn=On(qr[0]);et.texStorage2D(s.TEXTURE_CUBE_MAP,un,_o,Qn.width,Qn.height)}for(let Qn=0;Qn<6;Qn++)if(Wr){ro?kn&&et.texSubImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+Qn,0,0,0,qr[Qn].width,qr[Qn].height,eo,Yr,qr[Qn].data):et.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+Qn,0,_o,qr[Qn].width,qr[Qn].height,0,eo,Yr,qr[Qn].data);for(let Wn=0;Wn>$n),qr=Math.max(1,hn.height>>$n);Pn===s.TEXTURE_3D||Pn===s.TEXTURE_2D_ARRAY?et.texImage3D(Pn,$n,_r,Wr,qr,hn.depth,0,Tr,Qr,null):et.texImage2D(Pn,$n,_r,Wr,qr,0,Tr,Qr,null)}et.bindFramebuffer(s.FRAMEBUFFER,gn),_n(hn)?ot.framebufferTexture2DMultisampleEXT(s.FRAMEBUFFER,Zn,Pn,tt.get(wn).__webglTexture,0,dn(hn)):(Pn===s.TEXTURE_2D||Pn>=s.TEXTURE_CUBE_MAP_POSITIVE_X&&Pn<=s.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&s.framebufferTexture2D(s.FRAMEBUFFER,Zn,Pn,tt.get(wn).__webglTexture,$n),et.bindFramebuffer(s.FRAMEBUFFER,null)}function Zt(gn,hn,wn){if(s.bindRenderbuffer(s.RENDERBUFFER,gn),hn.depthBuffer){const Zn=hn.depthTexture,Pn=Zn&&Zn.isDepthTexture?Zn.type:null,$n=Ut(hn.stencilBuffer,Pn),Tr=hn.stencilBuffer?s.DEPTH_STENCIL_ATTACHMENT:s.DEPTH_ATTACHMENT,Qr=dn(hn);_n(hn)?ot.renderbufferStorageMultisampleEXT(s.RENDERBUFFER,Qr,$n,hn.width,hn.height):wn?s.renderbufferStorageMultisample(s.RENDERBUFFER,Qr,$n,hn.width,hn.height):s.renderbufferStorage(s.RENDERBUFFER,$n,hn.width,hn.height),s.framebufferRenderbuffer(s.FRAMEBUFFER,Tr,s.RENDERBUFFER,gn)}else{const Zn=hn.textures;for(let Pn=0;Pn1;if(Tr||(Zn.__webglTexture===void 0&&(Zn.__webglTexture=s.createTexture()),Zn.__version=hn.version,it.memory.textures++),$n){wn.__webglFramebuffer=[];for(let Qr=0;Qr<6;Qr++)if(hn.mipmaps&&hn.mipmaps.length>0){wn.__webglFramebuffer[Qr]=[];for(let _r=0;_r0){wn.__webglFramebuffer=[];for(let Qr=0;Qr0&&_n(gn)===!1){wn.__webglMultisampledFramebuffer=s.createFramebuffer(),wn.__webglColorRenderbuffer=[],et.bindFramebuffer(s.FRAMEBUFFER,wn.__webglMultisampledFramebuffer);for(let Qr=0;Qr0)for(let _r=0;_r0)for(let _r=0;_r0){if(_n(gn)===!1){const hn=gn.textures,wn=gn.width,Zn=gn.height;let Pn=s.COLOR_BUFFER_BIT;const $n=gn.stencilBuffer?s.DEPTH_STENCIL_ATTACHMENT:s.DEPTH_ATTACHMENT,Tr=tt.get(gn),Qr=hn.length>1;if(Qr)for(let _r=0;_r0&&o.has("WEBGL_multisampled_render_to_texture")===!0&&hn.__useRenderToTexture!==!1}function Fn(gn){const hn=it.render.frame;lt.get(gn)!==hn&&(lt.set(gn,hn),gn.update())}function Un(gn,hn){const wn=gn.colorSpace,Zn=gn.format,Pn=gn.type;return gn.isCompressedTexture===!0||gn.isVideoTexture===!0||wn!==LinearSRGBColorSpace$1&&wn!==NoColorSpace&&(ColorManagement.getTransfer(wn)===SRGBTransfer?(Zn!==RGBAFormat||Pn!==UnsignedByteType)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",wn)),hn}function On(gn){return typeof HTMLImageElement<"u"&&gn instanceof HTMLImageElement?(at.width=gn.naturalWidth||gn.width,at.height=gn.naturalHeight||gn.height):typeof VideoFrame<"u"&&gn instanceof VideoFrame?(at.width=gn.displayWidth,at.height=gn.displayHeight):(at.width=gn.width,at.height=gn.height),at}this.allocateTextureUnit=Bt,this.resetTextureUnits=Tt,this.setTexture2D=Ct,this.setTexture2DArray=kt,this.setTexture3D=Nt,this.setTextureCube=Ot,this.rebindTextures=It,this.setupRenderTarget=$t,this.updateRenderTargetMipmap=Ht,this.updateMultisampleRenderTarget=Xt,this.setupDepthRenderbuffer=Vt,this.setupFrameBufferTexture=nn,this.useMultisampledRTT=_n}function WebGLUtils(s,o){function et(tt,nt=NoColorSpace){let rt;const it=ColorManagement.getTransfer(nt);if(tt===UnsignedByteType)return s.UNSIGNED_BYTE;if(tt===UnsignedShort4444Type)return s.UNSIGNED_SHORT_4_4_4_4;if(tt===UnsignedShort5551Type)return s.UNSIGNED_SHORT_5_5_5_1;if(tt===UnsignedInt5999Type)return s.UNSIGNED_INT_5_9_9_9_REV;if(tt===ByteType)return s.BYTE;if(tt===ShortType)return s.SHORT;if(tt===UnsignedShortType)return s.UNSIGNED_SHORT;if(tt===IntType)return s.INT;if(tt===UnsignedIntType)return s.UNSIGNED_INT;if(tt===FloatType)return s.FLOAT;if(tt===HalfFloatType)return s.HALF_FLOAT;if(tt===AlphaFormat)return s.ALPHA;if(tt===RGBFormat)return s.RGB;if(tt===RGBAFormat)return s.RGBA;if(tt===LuminanceFormat)return s.LUMINANCE;if(tt===LuminanceAlphaFormat)return s.LUMINANCE_ALPHA;if(tt===DepthFormat)return s.DEPTH_COMPONENT;if(tt===DepthStencilFormat)return s.DEPTH_STENCIL;if(tt===RedFormat)return s.RED;if(tt===RedIntegerFormat)return s.RED_INTEGER;if(tt===RGFormat)return s.RG;if(tt===RGIntegerFormat)return s.RG_INTEGER;if(tt===RGBAIntegerFormat)return s.RGBA_INTEGER;if(tt===RGB_S3TC_DXT1_Format||tt===RGBA_S3TC_DXT1_Format||tt===RGBA_S3TC_DXT3_Format||tt===RGBA_S3TC_DXT5_Format)if(it===SRGBTransfer)if(rt=o.get("WEBGL_compressed_texture_s3tc_srgb"),rt!==null){if(tt===RGB_S3TC_DXT1_Format)return rt.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT1_Format)return rt.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT3_Format)return rt.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(tt===RGBA_S3TC_DXT5_Format)return rt.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(rt=o.get("WEBGL_compressed_texture_s3tc"),rt!==null){if(tt===RGB_S3TC_DXT1_Format)return rt.COMPRESSED_RGB_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT1_Format)return rt.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT3_Format)return rt.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(tt===RGBA_S3TC_DXT5_Format)return rt.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(tt===RGB_PVRTC_4BPPV1_Format||tt===RGB_PVRTC_2BPPV1_Format||tt===RGBA_PVRTC_4BPPV1_Format||tt===RGBA_PVRTC_2BPPV1_Format)if(rt=o.get("WEBGL_compressed_texture_pvrtc"),rt!==null){if(tt===RGB_PVRTC_4BPPV1_Format)return rt.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(tt===RGB_PVRTC_2BPPV1_Format)return rt.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(tt===RGBA_PVRTC_4BPPV1_Format)return rt.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(tt===RGBA_PVRTC_2BPPV1_Format)return rt.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(tt===RGB_ETC1_Format||tt===RGB_ETC2_Format||tt===RGBA_ETC2_EAC_Format)if(rt=o.get("WEBGL_compressed_texture_etc"),rt!==null){if(tt===RGB_ETC1_Format||tt===RGB_ETC2_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ETC2:rt.COMPRESSED_RGB8_ETC2;if(tt===RGBA_ETC2_EAC_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:rt.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(tt===RGBA_ASTC_4x4_Format||tt===RGBA_ASTC_5x4_Format||tt===RGBA_ASTC_5x5_Format||tt===RGBA_ASTC_6x5_Format||tt===RGBA_ASTC_6x6_Format||tt===RGBA_ASTC_8x5_Format||tt===RGBA_ASTC_8x6_Format||tt===RGBA_ASTC_8x8_Format||tt===RGBA_ASTC_10x5_Format||tt===RGBA_ASTC_10x6_Format||tt===RGBA_ASTC_10x8_Format||tt===RGBA_ASTC_10x10_Format||tt===RGBA_ASTC_12x10_Format||tt===RGBA_ASTC_12x12_Format)if(rt=o.get("WEBGL_compressed_texture_astc"),rt!==null){if(tt===RGBA_ASTC_4x4_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:rt.COMPRESSED_RGBA_ASTC_4x4_KHR;if(tt===RGBA_ASTC_5x4_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:rt.COMPRESSED_RGBA_ASTC_5x4_KHR;if(tt===RGBA_ASTC_5x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:rt.COMPRESSED_RGBA_ASTC_5x5_KHR;if(tt===RGBA_ASTC_6x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:rt.COMPRESSED_RGBA_ASTC_6x5_KHR;if(tt===RGBA_ASTC_6x6_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:rt.COMPRESSED_RGBA_ASTC_6x6_KHR;if(tt===RGBA_ASTC_8x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:rt.COMPRESSED_RGBA_ASTC_8x5_KHR;if(tt===RGBA_ASTC_8x6_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:rt.COMPRESSED_RGBA_ASTC_8x6_KHR;if(tt===RGBA_ASTC_8x8_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:rt.COMPRESSED_RGBA_ASTC_8x8_KHR;if(tt===RGBA_ASTC_10x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:rt.COMPRESSED_RGBA_ASTC_10x5_KHR;if(tt===RGBA_ASTC_10x6_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:rt.COMPRESSED_RGBA_ASTC_10x6_KHR;if(tt===RGBA_ASTC_10x8_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:rt.COMPRESSED_RGBA_ASTC_10x8_KHR;if(tt===RGBA_ASTC_10x10_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:rt.COMPRESSED_RGBA_ASTC_10x10_KHR;if(tt===RGBA_ASTC_12x10_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:rt.COMPRESSED_RGBA_ASTC_12x10_KHR;if(tt===RGBA_ASTC_12x12_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:rt.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(tt===RGBA_BPTC_Format||tt===RGB_BPTC_SIGNED_Format||tt===RGB_BPTC_UNSIGNED_Format)if(rt=o.get("EXT_texture_compression_bptc"),rt!==null){if(tt===RGBA_BPTC_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:rt.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(tt===RGB_BPTC_SIGNED_Format)return rt.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(tt===RGB_BPTC_UNSIGNED_Format)return rt.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(tt===RED_RGTC1_Format||tt===SIGNED_RED_RGTC1_Format||tt===RED_GREEN_RGTC2_Format||tt===SIGNED_RED_GREEN_RGTC2_Format)if(rt=o.get("EXT_texture_compression_rgtc"),rt!==null){if(tt===RGBA_BPTC_Format)return rt.COMPRESSED_RED_RGTC1_EXT;if(tt===SIGNED_RED_RGTC1_Format)return rt.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(tt===RED_GREEN_RGTC2_Format)return rt.COMPRESSED_RED_GREEN_RGTC2_EXT;if(tt===SIGNED_RED_GREEN_RGTC2_Format)return rt.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return tt===UnsignedInt248Type?s.UNSIGNED_INT_24_8:s[tt]!==void 0?s[tt]:null}return{convert:et}}class ArrayCamera extends PerspectiveCamera$1{constructor(o=[]){super(),this.isArrayCamera=!0,this.cameras=o}}class Group extends Object3D{constructor(){super(),this.isGroup=!0,this.type="Group"}}const _moveEvent={type:"move"};class WebXRController{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Vector3),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Vector3),this._grip}dispatchEvent(o){return this._targetRay!==null&&this._targetRay.dispatchEvent(o),this._grip!==null&&this._grip.dispatchEvent(o),this._hand!==null&&this._hand.dispatchEvent(o),this}connect(o){if(o&&o.hand){const et=this._hand;if(et)for(const tt of o.hand.values())this._getHandJoint(et,tt)}return this.dispatchEvent({type:"connected",data:o}),this}disconnect(o){return this.dispatchEvent({type:"disconnected",data:o}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(o,et,tt){let nt=null,rt=null,it=null;const ot=this._targetRay,st=this._grip,at=this._hand;if(o&&et.session.visibilityState!=="visible-blurred"){if(at&&o.hand){it=!0;for(const pt of o.hand.values()){const ft=et.getJointPose(pt,tt),gt=this._getHandJoint(at,pt);ft!==null&&(gt.matrix.fromArray(ft.transform.matrix),gt.matrix.decompose(gt.position,gt.rotation,gt.scale),gt.matrixWorldNeedsUpdate=!0,gt.jointRadius=ft.radius),gt.visible=ft!==null}const lt=at.joints["index-finger-tip"],ut=at.joints["thumb-tip"],dt=lt.position.distanceTo(ut.position),ht=.02,ct=.005;at.inputState.pinching&&dt>ht+ct?(at.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:o.handedness,target:this})):!at.inputState.pinching&&dt<=ht-ct&&(at.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:o.handedness,target:this}))}else st!==null&&o.gripSpace&&(rt=et.getPose(o.gripSpace,tt),rt!==null&&(st.matrix.fromArray(rt.transform.matrix),st.matrix.decompose(st.position,st.rotation,st.scale),st.matrixWorldNeedsUpdate=!0,rt.linearVelocity?(st.hasLinearVelocity=!0,st.linearVelocity.copy(rt.linearVelocity)):st.hasLinearVelocity=!1,rt.angularVelocity?(st.hasAngularVelocity=!0,st.angularVelocity.copy(rt.angularVelocity)):st.hasAngularVelocity=!1));ot!==null&&(nt=et.getPose(o.targetRaySpace,tt),nt===null&&rt!==null&&(nt=rt),nt!==null&&(ot.matrix.fromArray(nt.transform.matrix),ot.matrix.decompose(ot.position,ot.rotation,ot.scale),ot.matrixWorldNeedsUpdate=!0,nt.linearVelocity?(ot.hasLinearVelocity=!0,ot.linearVelocity.copy(nt.linearVelocity)):ot.hasLinearVelocity=!1,nt.angularVelocity?(ot.hasAngularVelocity=!0,ot.angularVelocity.copy(nt.angularVelocity)):ot.hasAngularVelocity=!1,this.dispatchEvent(_moveEvent)))}return ot!==null&&(ot.visible=nt!==null),st!==null&&(st.visible=rt!==null),at!==null&&(at.visible=it!==null),this}_getHandJoint(o,et){if(o.joints[et.jointName]===void 0){const tt=new Group;tt.matrixAutoUpdate=!1,tt.visible=!1,o.joints[et.jointName]=tt,o.add(tt)}return o.joints[et.jointName]}}const _occlusion_vertex=` +}`;function WebGLShadowMap(s,o,et){let tt=new Frustum;const nt=new Vector2,rt=new Vector2,it=new Vector4,ot=new MeshDepthMaterial({depthPacking:RGBADepthPacking}),st=new MeshDistanceMaterial,at={},lt=et.maxTextureSize,ut={[FrontSide]:BackSide,[BackSide]:FrontSide,[DoubleSide]:DoubleSide},dt=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:vertex,fragmentShader:fragment}),ht=dt.clone();ht.defines.HORIZONTAL_PASS=1;const ct=new BufferGeometry;ct.setAttribute("position",new BufferAttribute(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const pt=new Mesh(ct,dt),ft=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=PCFShadowMap;let gt=this.type;this.render=function(vt,At,Lt){if(ft.enabled===!1||ft.autoUpdate===!1&&ft.needsUpdate===!1||vt.length===0)return;const Rt=s.getRenderTarget(),St=s.getActiveCubeFace(),Tt=s.getActiveMipmapLevel(),Bt=s.state;Bt.setBlending(NoBlending),Bt.buffers.color.setClear(1,1,1,1),Bt.buffers.depth.setTest(!0),Bt.setScissorTest(!1);const xt=gt!==VSMShadowMap&&this.type===VSMShadowMap,Ct=gt===VSMShadowMap&&this.type!==VSMShadowMap;for(let kt=0,Nt=vt.length;ktlt||nt.y>lt)&&(nt.x>lt&&(rt.x=Math.floor(lt/Dt.x),nt.x=rt.x*Dt.x,Jt.mapSize.x=rt.x),nt.y>lt&&(rt.y=Math.floor(lt/Dt.y),nt.y=rt.y*Dt.y,Jt.mapSize.y=rt.y)),Jt.map===null||xt===!0||Ct===!0){const Pt=this.type!==VSMShadowMap?{minFilter:NearestFilter,magFilter:NearestFilter}:{};Jt.map!==null&&Jt.map.dispose(),Jt.map=new WebGLRenderTarget(nt.x,nt.y,Pt),Jt.map.texture.name=Ot.name+".shadowMap",Jt.camera.updateProjectionMatrix()}s.setRenderTarget(Jt.map),s.clear();const Et=Jt.getViewportCount();for(let Pt=0;Pt0||At.map&&At.alphaTest>0){const Bt=St.uuid,xt=At.uuid;let Ct=at[Bt];Ct===void 0&&(Ct={},at[Bt]=Ct);let kt=Ct[xt];kt===void 0&&(kt=St.clone(),Ct[xt]=kt,At.addEventListener("dispose",mt)),St=kt}if(St.visible=At.visible,St.wireframe=At.wireframe,Rt===VSMShadowMap?St.side=At.shadowSide!==null?At.shadowSide:At.side:St.side=At.shadowSide!==null?At.shadowSide:ut[At.side],St.alphaMap=At.alphaMap,St.alphaTest=At.alphaTest,St.map=At.map,St.clipShadows=At.clipShadows,St.clippingPlanes=At.clippingPlanes,St.clipIntersection=At.clipIntersection,St.displacementMap=At.displacementMap,St.displacementScale=At.displacementScale,St.displacementBias=At.displacementBias,St.wireframeLinewidth=At.wireframeLinewidth,St.linewidth=At.linewidth,Lt.isPointLight===!0&&St.isMeshDistanceMaterial===!0){const Bt=s.properties.get(St);Bt.light=Lt}return St}function Ft(vt,At,Lt,Rt,St){if(vt.visible===!1)return;if(vt.layers.test(At.layers)&&(vt.isMesh||vt.isLine||vt.isPoints)&&(vt.castShadow||vt.receiveShadow&&St===VSMShadowMap)&&(!vt.frustumCulled||tt.intersectsObject(vt))){vt.modelViewMatrix.multiplyMatrices(Lt.matrixWorldInverse,vt.matrixWorld);const xt=o.update(vt),Ct=vt.material;if(Array.isArray(Ct)){const kt=xt.groups;for(let Nt=0,Ot=kt.length;Nt=1):Ot.indexOf("OpenGL ES")!==-1&&(Nt=parseFloat(/^OpenGL ES (\d)/.exec(Ot)[1]),kt=Nt>=2);let Jt=null,Dt={};const Et=s.getParameter(s.SCISSOR_BOX),Pt=s.getParameter(s.VIEWPORT),zt=new Vector4().fromArray(Et),en=new Vector4().fromArray(Pt);function Kt(kn,un,pn,Qn){const Jn=new Uint8Array(4),jn=s.createTexture();s.bindTexture(kn,jn),s.texParameteri(kn,s.TEXTURE_MIN_FILTER,s.NEAREST),s.texParameteri(kn,s.TEXTURE_MAG_FILTER,s.NEAREST);for(let Fr=0;Fr"u"?!1:/OculusBrowser/g.test(navigator.userAgent),at=new Vector2,lt=new WeakMap;let ut;const dt=new WeakMap;let ht=!1;try{ht=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function ct(gn,hn){return ht?new OffscreenCanvas(gn,hn):createElementNS("canvas")}function pt(gn,hn,wn){let Zn=1;const Pn=On(gn);if((Pn.width>wn||Pn.height>wn)&&(Zn=wn/Math.max(Pn.width,Pn.height)),Zn<1)if(typeof HTMLImageElement<"u"&&gn instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&gn instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&gn instanceof ImageBitmap||typeof VideoFrame<"u"&&gn instanceof VideoFrame){const $n=Math.floor(Zn*Pn.width),Tr=Math.floor(Zn*Pn.height);ut===void 0&&(ut=ct($n,Tr));const Qr=hn?ct($n,Tr):ut;return Qr.width=$n,Qr.height=Tr,Qr.getContext("2d").drawImage(gn,0,0,$n,Tr),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+Pn.width+"x"+Pn.height+") to ("+$n+"x"+Tr+")."),Qr}else return"data"in gn&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+Pn.width+"x"+Pn.height+")."),gn;return gn}function ft(gn){return gn.generateMipmaps&&gn.minFilter!==NearestFilter&&gn.minFilter!==LinearFilter}function gt(gn){s.generateMipmap(gn)}function yt(gn,hn,wn,Zn,Pn=!1){if(gn!==null){if(s[gn]!==void 0)return s[gn];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+gn+"'")}let $n=hn;if(hn===s.RED&&(wn===s.FLOAT&&($n=s.R32F),wn===s.HALF_FLOAT&&($n=s.R16F),wn===s.UNSIGNED_BYTE&&($n=s.R8)),hn===s.RED_INTEGER&&(wn===s.UNSIGNED_BYTE&&($n=s.R8UI),wn===s.UNSIGNED_SHORT&&($n=s.R16UI),wn===s.UNSIGNED_INT&&($n=s.R32UI),wn===s.BYTE&&($n=s.R8I),wn===s.SHORT&&($n=s.R16I),wn===s.INT&&($n=s.R32I)),hn===s.RG&&(wn===s.FLOAT&&($n=s.RG32F),wn===s.HALF_FLOAT&&($n=s.RG16F),wn===s.UNSIGNED_BYTE&&($n=s.RG8)),hn===s.RG_INTEGER&&(wn===s.UNSIGNED_BYTE&&($n=s.RG8UI),wn===s.UNSIGNED_SHORT&&($n=s.RG16UI),wn===s.UNSIGNED_INT&&($n=s.RG32UI),wn===s.BYTE&&($n=s.RG8I),wn===s.SHORT&&($n=s.RG16I),wn===s.INT&&($n=s.RG32I)),hn===s.RGB&&wn===s.UNSIGNED_INT_5_9_9_9_REV&&($n=s.RGB9_E5),hn===s.RGBA){const Tr=Pn?LinearTransfer:ColorManagement.getTransfer(Zn);wn===s.FLOAT&&($n=s.RGBA32F),wn===s.HALF_FLOAT&&($n=s.RGBA16F),wn===s.UNSIGNED_BYTE&&($n=Tr===SRGBTransfer?s.SRGB8_ALPHA8:s.RGBA8),wn===s.UNSIGNED_SHORT_4_4_4_4&&($n=s.RGBA4),wn===s.UNSIGNED_SHORT_5_5_5_1&&($n=s.RGB5_A1)}return($n===s.R16F||$n===s.R32F||$n===s.RG16F||$n===s.RG32F||$n===s.RGBA16F||$n===s.RGBA32F)&&o.get("EXT_color_buffer_float"),$n}function Ut(gn,hn){let wn;return gn?hn===null||hn===UnsignedIntType||hn===UnsignedInt248Type?wn=s.DEPTH24_STENCIL8:hn===FloatType?wn=s.DEPTH32F_STENCIL8:hn===UnsignedShortType&&(wn=s.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):hn===null||hn===UnsignedIntType||hn===UnsignedInt248Type?wn=s.DEPTH_COMPONENT24:hn===FloatType?wn=s.DEPTH_COMPONENT32F:hn===UnsignedShortType&&(wn=s.DEPTH_COMPONENT16),wn}function Ft(gn,hn){return ft(gn)===!0||gn.isFramebufferTexture&&gn.minFilter!==NearestFilter&&gn.minFilter!==LinearFilter?Math.log2(Math.max(hn.width,hn.height))+1:gn.mipmaps!==void 0&&gn.mipmaps.length>0?gn.mipmaps.length:gn.isCompressedTexture&&Array.isArray(gn.image)?hn.mipmaps.length:1}function mt(gn){const hn=gn.target;hn.removeEventListener("dispose",mt),At(hn),hn.isVideoTexture&<.delete(hn)}function vt(gn){const hn=gn.target;hn.removeEventListener("dispose",vt),Rt(hn)}function At(gn){const hn=tt.get(gn);if(hn.__webglInit===void 0)return;const wn=gn.source,Zn=dt.get(wn);if(Zn){const Pn=Zn[hn.__cacheKey];Pn.usedTimes--,Pn.usedTimes===0&&Lt(gn),Object.keys(Zn).length===0&&dt.delete(wn)}tt.remove(gn)}function Lt(gn){const hn=tt.get(gn);s.deleteTexture(hn.__webglTexture);const wn=gn.source,Zn=dt.get(wn);delete Zn[hn.__cacheKey],it.memory.textures--}function Rt(gn){const hn=tt.get(gn);if(gn.depthTexture&&gn.depthTexture.dispose(),gn.isWebGLCubeRenderTarget)for(let Zn=0;Zn<6;Zn++){if(Array.isArray(hn.__webglFramebuffer[Zn]))for(let Pn=0;Pn=nt.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+gn+" texture units while this GPU supports only "+nt.maxTextures),St+=1,gn}function xt(gn){const hn=[];return hn.push(gn.wrapS),hn.push(gn.wrapT),hn.push(gn.wrapR||0),hn.push(gn.magFilter),hn.push(gn.minFilter),hn.push(gn.anisotropy),hn.push(gn.internalFormat),hn.push(gn.format),hn.push(gn.type),hn.push(gn.generateMipmaps),hn.push(gn.premultiplyAlpha),hn.push(gn.flipY),hn.push(gn.unpackAlignment),hn.push(gn.colorSpace),hn.join()}function Ct(gn,hn){const wn=tt.get(gn);if(gn.isVideoTexture&&Fn(gn),gn.isRenderTargetTexture===!1&&gn.version>0&&wn.__version!==gn.version){const Zn=gn.image;if(Zn===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Zn.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{en(wn,gn,hn);return}}et.bindTexture(s.TEXTURE_2D,wn.__webglTexture,s.TEXTURE0+hn)}function kt(gn,hn){const wn=tt.get(gn);if(gn.version>0&&wn.__version!==gn.version){en(wn,gn,hn);return}et.bindTexture(s.TEXTURE_2D_ARRAY,wn.__webglTexture,s.TEXTURE0+hn)}function Nt(gn,hn){const wn=tt.get(gn);if(gn.version>0&&wn.__version!==gn.version){en(wn,gn,hn);return}et.bindTexture(s.TEXTURE_3D,wn.__webglTexture,s.TEXTURE0+hn)}function Ot(gn,hn){const wn=tt.get(gn);if(gn.version>0&&wn.__version!==gn.version){Kt(wn,gn,hn);return}et.bindTexture(s.TEXTURE_CUBE_MAP,wn.__webglTexture,s.TEXTURE0+hn)}const Jt={[RepeatWrapping]:s.REPEAT,[ClampToEdgeWrapping]:s.CLAMP_TO_EDGE,[MirroredRepeatWrapping]:s.MIRRORED_REPEAT},Dt={[NearestFilter]:s.NEAREST,[NearestMipmapNearestFilter]:s.NEAREST_MIPMAP_NEAREST,[NearestMipmapLinearFilter]:s.NEAREST_MIPMAP_LINEAR,[LinearFilter]:s.LINEAR,[LinearMipmapNearestFilter]:s.LINEAR_MIPMAP_NEAREST,[LinearMipmapLinearFilter]:s.LINEAR_MIPMAP_LINEAR},Et={[NeverCompare]:s.NEVER,[AlwaysCompare]:s.ALWAYS,[LessCompare]:s.LESS,[LessEqualCompare]:s.LEQUAL,[EqualCompare]:s.EQUAL,[GreaterEqualCompare]:s.GEQUAL,[GreaterCompare]:s.GREATER,[NotEqualCompare]:s.NOTEQUAL};function Pt(gn,hn){if(hn.type===FloatType&&o.has("OES_texture_float_linear")===!1&&(hn.magFilter===LinearFilter||hn.magFilter===LinearMipmapNearestFilter||hn.magFilter===NearestMipmapLinearFilter||hn.magFilter===LinearMipmapLinearFilter||hn.minFilter===LinearFilter||hn.minFilter===LinearMipmapNearestFilter||hn.minFilter===NearestMipmapLinearFilter||hn.minFilter===LinearMipmapLinearFilter)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),s.texParameteri(gn,s.TEXTURE_WRAP_S,Jt[hn.wrapS]),s.texParameteri(gn,s.TEXTURE_WRAP_T,Jt[hn.wrapT]),(gn===s.TEXTURE_3D||gn===s.TEXTURE_2D_ARRAY)&&s.texParameteri(gn,s.TEXTURE_WRAP_R,Jt[hn.wrapR]),s.texParameteri(gn,s.TEXTURE_MAG_FILTER,Dt[hn.magFilter]),s.texParameteri(gn,s.TEXTURE_MIN_FILTER,Dt[hn.minFilter]),hn.compareFunction&&(s.texParameteri(gn,s.TEXTURE_COMPARE_MODE,s.COMPARE_REF_TO_TEXTURE),s.texParameteri(gn,s.TEXTURE_COMPARE_FUNC,Et[hn.compareFunction])),o.has("EXT_texture_filter_anisotropic")===!0){if(hn.magFilter===NearestFilter||hn.minFilter!==NearestMipmapLinearFilter&&hn.minFilter!==LinearMipmapLinearFilter||hn.type===FloatType&&o.has("OES_texture_float_linear")===!1)return;if(hn.anisotropy>1||tt.get(hn).__currentAnisotropy){const wn=o.get("EXT_texture_filter_anisotropic");s.texParameterf(gn,wn.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(hn.anisotropy,nt.getMaxAnisotropy())),tt.get(hn).__currentAnisotropy=hn.anisotropy}}}function zt(gn,hn){let wn=!1;gn.__webglInit===void 0&&(gn.__webglInit=!0,hn.addEventListener("dispose",mt));const Zn=hn.source;let Pn=dt.get(Zn);Pn===void 0&&(Pn={},dt.set(Zn,Pn));const $n=xt(hn);if($n!==gn.__cacheKey){Pn[$n]===void 0&&(Pn[$n]={texture:s.createTexture(),usedTimes:0},it.memory.textures++,wn=!0),Pn[$n].usedTimes++;const Tr=Pn[gn.__cacheKey];Tr!==void 0&&(Pn[gn.__cacheKey].usedTimes--,Tr.usedTimes===0&&Lt(hn)),gn.__cacheKey=$n,gn.__webglTexture=Pn[$n].texture}return wn}function en(gn,hn,wn){let Zn=s.TEXTURE_2D;(hn.isDataArrayTexture||hn.isCompressedArrayTexture)&&(Zn=s.TEXTURE_2D_ARRAY),hn.isData3DTexture&&(Zn=s.TEXTURE_3D);const Pn=zt(gn,hn),$n=hn.source;et.bindTexture(Zn,gn.__webglTexture,s.TEXTURE0+wn);const Tr=tt.get($n);if($n.version!==Tr.__version||Pn===!0){et.activeTexture(s.TEXTURE0+wn);const Qr=ColorManagement.getPrimaries(ColorManagement.workingColorSpace),_r=hn.colorSpace===NoColorSpace?null:ColorManagement.getPrimaries(hn.colorSpace),Ir=hn.colorSpace===NoColorSpace||Qr===_r?s.NONE:s.BROWSER_DEFAULT_WEBGL;s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,hn.flipY),s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,hn.premultiplyAlpha),s.pixelStorei(s.UNPACK_ALIGNMENT,hn.unpackAlignment),s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,Ir);let Jr=pt(hn.image,!1,nt.maxTextureSize);Jr=Un(hn,Jr);const qr=rt.convert(hn.format,hn.colorSpace),Uo=rt.convert(hn.type);let eo=yt(hn.internalFormat,qr,Uo,hn.colorSpace,hn.isVideoTexture);Pt(Zn,hn);let Yr;const _o=hn.mipmaps,ro=hn.isVideoTexture!==!0,Fo=Tr.__version===void 0||Pn===!0,kn=$n.dataReady,un=Ft(hn,Jr);if(hn.isDepthTexture)eo=Ut(hn.format===DepthStencilFormat,hn.type),Fo&&(ro?et.texStorage2D(s.TEXTURE_2D,1,eo,Jr.width,Jr.height):et.texImage2D(s.TEXTURE_2D,0,eo,Jr.width,Jr.height,0,qr,Uo,null));else if(hn.isDataTexture)if(_o.length>0){ro&&Fo&&et.texStorage2D(s.TEXTURE_2D,un,eo,_o[0].width,_o[0].height);for(let pn=0,Qn=_o.length;pn0){for(const Jn of hn.layerUpdates){const jn=Yr.width*Yr.height;et.compressedTexSubImage3D(s.TEXTURE_2D_ARRAY,pn,0,0,Jn,Yr.width,Yr.height,1,qr,Yr.data.slice(jn*Jn,jn*(Jn+1)),0,0)}hn.clearLayerUpdates()}else et.compressedTexSubImage3D(s.TEXTURE_2D_ARRAY,pn,0,0,0,Yr.width,Yr.height,Jr.depth,qr,Yr.data,0,0)}else et.compressedTexImage3D(s.TEXTURE_2D_ARRAY,pn,eo,Yr.width,Yr.height,Jr.depth,0,Yr.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else ro?kn&&et.texSubImage3D(s.TEXTURE_2D_ARRAY,pn,0,0,0,Yr.width,Yr.height,Jr.depth,qr,Uo,Yr.data):et.texImage3D(s.TEXTURE_2D_ARRAY,pn,eo,Yr.width,Yr.height,Jr.depth,0,qr,Uo,Yr.data)}else{ro&&Fo&&et.texStorage2D(s.TEXTURE_2D,un,eo,_o[0].width,_o[0].height);for(let pn=0,Qn=_o.length;pn0){let pn;switch(Uo){case s.UNSIGNED_BYTE:switch(qr){case s.ALPHA:pn=1;break;case s.LUMINANCE:pn=1;break;case s.LUMINANCE_ALPHA:pn=2;break;case s.RGB:pn=3;break;case s.RGBA:pn=4;break;default:throw new Error(`Unknown texel size for format ${qr}.`)}break;case s.UNSIGNED_SHORT_4_4_4_4:case s.UNSIGNED_SHORT_5_5_5_1:case s.UNSIGNED_SHORT_5_6_5:pn=1;break;default:throw new Error(`Unknown texel size for type ${Uo}.`)}const Qn=Jr.width*Jr.height*pn;for(const Jn of hn.layerUpdates)et.texSubImage3D(s.TEXTURE_2D_ARRAY,0,0,0,Jn,Jr.width,Jr.height,1,qr,Uo,Jr.data.slice(Qn*Jn,Qn*(Jn+1)));hn.clearLayerUpdates()}else et.texSubImage3D(s.TEXTURE_2D_ARRAY,0,0,0,0,Jr.width,Jr.height,Jr.depth,qr,Uo,Jr.data)}else et.texImage3D(s.TEXTURE_2D_ARRAY,0,eo,Jr.width,Jr.height,Jr.depth,0,qr,Uo,Jr.data);else if(hn.isData3DTexture)ro?(Fo&&et.texStorage3D(s.TEXTURE_3D,un,eo,Jr.width,Jr.height,Jr.depth),kn&&et.texSubImage3D(s.TEXTURE_3D,0,0,0,0,Jr.width,Jr.height,Jr.depth,qr,Uo,Jr.data)):et.texImage3D(s.TEXTURE_3D,0,eo,Jr.width,Jr.height,Jr.depth,0,qr,Uo,Jr.data);else if(hn.isFramebufferTexture){if(Fo)if(ro)et.texStorage2D(s.TEXTURE_2D,un,eo,Jr.width,Jr.height);else{let pn=Jr.width,Qn=Jr.height;for(let Jn=0;Jn>=1,Qn>>=1}}else if(_o.length>0){if(ro&&Fo){const pn=On(_o[0]);et.texStorage2D(s.TEXTURE_2D,un,eo,pn.width,pn.height)}for(let pn=0,Qn=_o.length;pn0&&un++;const Qn=On(qr[0]);et.texStorage2D(s.TEXTURE_CUBE_MAP,un,_o,Qn.width,Qn.height)}for(let Qn=0;Qn<6;Qn++)if(Jr){ro?kn&&et.texSubImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+Qn,0,0,0,qr[Qn].width,qr[Qn].height,eo,Yr,qr[Qn].data):et.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+Qn,0,_o,qr[Qn].width,qr[Qn].height,0,eo,Yr,qr[Qn].data);for(let Jn=0;Jn>$n),qr=Math.max(1,hn.height>>$n);Pn===s.TEXTURE_3D||Pn===s.TEXTURE_2D_ARRAY?et.texImage3D(Pn,$n,_r,Jr,qr,hn.depth,0,Tr,Qr,null):et.texImage2D(Pn,$n,_r,Jr,qr,0,Tr,Qr,null)}et.bindFramebuffer(s.FRAMEBUFFER,gn),_n(hn)?ot.framebufferTexture2DMultisampleEXT(s.FRAMEBUFFER,Zn,Pn,tt.get(wn).__webglTexture,0,dn(hn)):(Pn===s.TEXTURE_2D||Pn>=s.TEXTURE_CUBE_MAP_POSITIVE_X&&Pn<=s.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&s.framebufferTexture2D(s.FRAMEBUFFER,Zn,Pn,tt.get(wn).__webglTexture,$n),et.bindFramebuffer(s.FRAMEBUFFER,null)}function Zt(gn,hn,wn){if(s.bindRenderbuffer(s.RENDERBUFFER,gn),hn.depthBuffer){const Zn=hn.depthTexture,Pn=Zn&&Zn.isDepthTexture?Zn.type:null,$n=Ut(hn.stencilBuffer,Pn),Tr=hn.stencilBuffer?s.DEPTH_STENCIL_ATTACHMENT:s.DEPTH_ATTACHMENT,Qr=dn(hn);_n(hn)?ot.renderbufferStorageMultisampleEXT(s.RENDERBUFFER,Qr,$n,hn.width,hn.height):wn?s.renderbufferStorageMultisample(s.RENDERBUFFER,Qr,$n,hn.width,hn.height):s.renderbufferStorage(s.RENDERBUFFER,$n,hn.width,hn.height),s.framebufferRenderbuffer(s.FRAMEBUFFER,Tr,s.RENDERBUFFER,gn)}else{const Zn=hn.textures;for(let Pn=0;Pn1;if(Tr||(Zn.__webglTexture===void 0&&(Zn.__webglTexture=s.createTexture()),Zn.__version=hn.version,it.memory.textures++),$n){wn.__webglFramebuffer=[];for(let Qr=0;Qr<6;Qr++)if(hn.mipmaps&&hn.mipmaps.length>0){wn.__webglFramebuffer[Qr]=[];for(let _r=0;_r0){wn.__webglFramebuffer=[];for(let Qr=0;Qr0&&_n(gn)===!1){wn.__webglMultisampledFramebuffer=s.createFramebuffer(),wn.__webglColorRenderbuffer=[],et.bindFramebuffer(s.FRAMEBUFFER,wn.__webglMultisampledFramebuffer);for(let Qr=0;Qr0)for(let _r=0;_r0)for(let _r=0;_r0){if(_n(gn)===!1){const hn=gn.textures,wn=gn.width,Zn=gn.height;let Pn=s.COLOR_BUFFER_BIT;const $n=gn.stencilBuffer?s.DEPTH_STENCIL_ATTACHMENT:s.DEPTH_ATTACHMENT,Tr=tt.get(gn),Qr=hn.length>1;if(Qr)for(let _r=0;_r0&&o.has("WEBGL_multisampled_render_to_texture")===!0&&hn.__useRenderToTexture!==!1}function Fn(gn){const hn=it.render.frame;lt.get(gn)!==hn&&(lt.set(gn,hn),gn.update())}function Un(gn,hn){const wn=gn.colorSpace,Zn=gn.format,Pn=gn.type;return gn.isCompressedTexture===!0||gn.isVideoTexture===!0||wn!==LinearSRGBColorSpace$1&&wn!==NoColorSpace&&(ColorManagement.getTransfer(wn)===SRGBTransfer?(Zn!==RGBAFormat||Pn!==UnsignedByteType)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",wn)),hn}function On(gn){return typeof HTMLImageElement<"u"&&gn instanceof HTMLImageElement?(at.width=gn.naturalWidth||gn.width,at.height=gn.naturalHeight||gn.height):typeof VideoFrame<"u"&&gn instanceof VideoFrame?(at.width=gn.displayWidth,at.height=gn.displayHeight):(at.width=gn.width,at.height=gn.height),at}this.allocateTextureUnit=Bt,this.resetTextureUnits=Tt,this.setTexture2D=Ct,this.setTexture2DArray=kt,this.setTexture3D=Nt,this.setTextureCube=Ot,this.rebindTextures=It,this.setupRenderTarget=$t,this.updateRenderTargetMipmap=Ht,this.updateMultisampleRenderTarget=Xt,this.setupDepthRenderbuffer=Vt,this.setupFrameBufferTexture=nn,this.useMultisampledRTT=_n}function WebGLUtils(s,o){function et(tt,nt=NoColorSpace){let rt;const it=ColorManagement.getTransfer(nt);if(tt===UnsignedByteType)return s.UNSIGNED_BYTE;if(tt===UnsignedShort4444Type)return s.UNSIGNED_SHORT_4_4_4_4;if(tt===UnsignedShort5551Type)return s.UNSIGNED_SHORT_5_5_5_1;if(tt===UnsignedInt5999Type)return s.UNSIGNED_INT_5_9_9_9_REV;if(tt===ByteType)return s.BYTE;if(tt===ShortType)return s.SHORT;if(tt===UnsignedShortType)return s.UNSIGNED_SHORT;if(tt===IntType)return s.INT;if(tt===UnsignedIntType)return s.UNSIGNED_INT;if(tt===FloatType)return s.FLOAT;if(tt===HalfFloatType)return s.HALF_FLOAT;if(tt===AlphaFormat)return s.ALPHA;if(tt===RGBFormat)return s.RGB;if(tt===RGBAFormat)return s.RGBA;if(tt===LuminanceFormat)return s.LUMINANCE;if(tt===LuminanceAlphaFormat)return s.LUMINANCE_ALPHA;if(tt===DepthFormat)return s.DEPTH_COMPONENT;if(tt===DepthStencilFormat)return s.DEPTH_STENCIL;if(tt===RedFormat)return s.RED;if(tt===RedIntegerFormat)return s.RED_INTEGER;if(tt===RGFormat)return s.RG;if(tt===RGIntegerFormat)return s.RG_INTEGER;if(tt===RGBAIntegerFormat)return s.RGBA_INTEGER;if(tt===RGB_S3TC_DXT1_Format||tt===RGBA_S3TC_DXT1_Format||tt===RGBA_S3TC_DXT3_Format||tt===RGBA_S3TC_DXT5_Format)if(it===SRGBTransfer)if(rt=o.get("WEBGL_compressed_texture_s3tc_srgb"),rt!==null){if(tt===RGB_S3TC_DXT1_Format)return rt.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT1_Format)return rt.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT3_Format)return rt.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(tt===RGBA_S3TC_DXT5_Format)return rt.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(rt=o.get("WEBGL_compressed_texture_s3tc"),rt!==null){if(tt===RGB_S3TC_DXT1_Format)return rt.COMPRESSED_RGB_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT1_Format)return rt.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(tt===RGBA_S3TC_DXT3_Format)return rt.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(tt===RGBA_S3TC_DXT5_Format)return rt.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(tt===RGB_PVRTC_4BPPV1_Format||tt===RGB_PVRTC_2BPPV1_Format||tt===RGBA_PVRTC_4BPPV1_Format||tt===RGBA_PVRTC_2BPPV1_Format)if(rt=o.get("WEBGL_compressed_texture_pvrtc"),rt!==null){if(tt===RGB_PVRTC_4BPPV1_Format)return rt.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(tt===RGB_PVRTC_2BPPV1_Format)return rt.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(tt===RGBA_PVRTC_4BPPV1_Format)return rt.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(tt===RGBA_PVRTC_2BPPV1_Format)return rt.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(tt===RGB_ETC1_Format||tt===RGB_ETC2_Format||tt===RGBA_ETC2_EAC_Format)if(rt=o.get("WEBGL_compressed_texture_etc"),rt!==null){if(tt===RGB_ETC1_Format||tt===RGB_ETC2_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ETC2:rt.COMPRESSED_RGB8_ETC2;if(tt===RGBA_ETC2_EAC_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:rt.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(tt===RGBA_ASTC_4x4_Format||tt===RGBA_ASTC_5x4_Format||tt===RGBA_ASTC_5x5_Format||tt===RGBA_ASTC_6x5_Format||tt===RGBA_ASTC_6x6_Format||tt===RGBA_ASTC_8x5_Format||tt===RGBA_ASTC_8x6_Format||tt===RGBA_ASTC_8x8_Format||tt===RGBA_ASTC_10x5_Format||tt===RGBA_ASTC_10x6_Format||tt===RGBA_ASTC_10x8_Format||tt===RGBA_ASTC_10x10_Format||tt===RGBA_ASTC_12x10_Format||tt===RGBA_ASTC_12x12_Format)if(rt=o.get("WEBGL_compressed_texture_astc"),rt!==null){if(tt===RGBA_ASTC_4x4_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:rt.COMPRESSED_RGBA_ASTC_4x4_KHR;if(tt===RGBA_ASTC_5x4_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:rt.COMPRESSED_RGBA_ASTC_5x4_KHR;if(tt===RGBA_ASTC_5x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:rt.COMPRESSED_RGBA_ASTC_5x5_KHR;if(tt===RGBA_ASTC_6x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:rt.COMPRESSED_RGBA_ASTC_6x5_KHR;if(tt===RGBA_ASTC_6x6_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:rt.COMPRESSED_RGBA_ASTC_6x6_KHR;if(tt===RGBA_ASTC_8x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:rt.COMPRESSED_RGBA_ASTC_8x5_KHR;if(tt===RGBA_ASTC_8x6_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:rt.COMPRESSED_RGBA_ASTC_8x6_KHR;if(tt===RGBA_ASTC_8x8_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:rt.COMPRESSED_RGBA_ASTC_8x8_KHR;if(tt===RGBA_ASTC_10x5_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:rt.COMPRESSED_RGBA_ASTC_10x5_KHR;if(tt===RGBA_ASTC_10x6_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:rt.COMPRESSED_RGBA_ASTC_10x6_KHR;if(tt===RGBA_ASTC_10x8_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:rt.COMPRESSED_RGBA_ASTC_10x8_KHR;if(tt===RGBA_ASTC_10x10_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:rt.COMPRESSED_RGBA_ASTC_10x10_KHR;if(tt===RGBA_ASTC_12x10_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:rt.COMPRESSED_RGBA_ASTC_12x10_KHR;if(tt===RGBA_ASTC_12x12_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:rt.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(tt===RGBA_BPTC_Format||tt===RGB_BPTC_SIGNED_Format||tt===RGB_BPTC_UNSIGNED_Format)if(rt=o.get("EXT_texture_compression_bptc"),rt!==null){if(tt===RGBA_BPTC_Format)return it===SRGBTransfer?rt.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:rt.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(tt===RGB_BPTC_SIGNED_Format)return rt.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(tt===RGB_BPTC_UNSIGNED_Format)return rt.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(tt===RED_RGTC1_Format||tt===SIGNED_RED_RGTC1_Format||tt===RED_GREEN_RGTC2_Format||tt===SIGNED_RED_GREEN_RGTC2_Format)if(rt=o.get("EXT_texture_compression_rgtc"),rt!==null){if(tt===RGBA_BPTC_Format)return rt.COMPRESSED_RED_RGTC1_EXT;if(tt===SIGNED_RED_RGTC1_Format)return rt.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(tt===RED_GREEN_RGTC2_Format)return rt.COMPRESSED_RED_GREEN_RGTC2_EXT;if(tt===SIGNED_RED_GREEN_RGTC2_Format)return rt.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return tt===UnsignedInt248Type?s.UNSIGNED_INT_24_8:s[tt]!==void 0?s[tt]:null}return{convert:et}}class ArrayCamera extends PerspectiveCamera$1{constructor(o=[]){super(),this.isArrayCamera=!0,this.cameras=o}}class Group extends Object3D{constructor(){super(),this.isGroup=!0,this.type="Group"}}const _moveEvent={type:"move"};class WebXRController{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Vector3),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Vector3),this._grip}dispatchEvent(o){return this._targetRay!==null&&this._targetRay.dispatchEvent(o),this._grip!==null&&this._grip.dispatchEvent(o),this._hand!==null&&this._hand.dispatchEvent(o),this}connect(o){if(o&&o.hand){const et=this._hand;if(et)for(const tt of o.hand.values())this._getHandJoint(et,tt)}return this.dispatchEvent({type:"connected",data:o}),this}disconnect(o){return this.dispatchEvent({type:"disconnected",data:o}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(o,et,tt){let nt=null,rt=null,it=null;const ot=this._targetRay,st=this._grip,at=this._hand;if(o&&et.session.visibilityState!=="visible-blurred"){if(at&&o.hand){it=!0;for(const pt of o.hand.values()){const ft=et.getJointPose(pt,tt),gt=this._getHandJoint(at,pt);ft!==null&&(gt.matrix.fromArray(ft.transform.matrix),gt.matrix.decompose(gt.position,gt.rotation,gt.scale),gt.matrixWorldNeedsUpdate=!0,gt.jointRadius=ft.radius),gt.visible=ft!==null}const lt=at.joints["index-finger-tip"],ut=at.joints["thumb-tip"],dt=lt.position.distanceTo(ut.position),ht=.02,ct=.005;at.inputState.pinching&&dt>ht+ct?(at.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:o.handedness,target:this})):!at.inputState.pinching&&dt<=ht-ct&&(at.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:o.handedness,target:this}))}else st!==null&&o.gripSpace&&(rt=et.getPose(o.gripSpace,tt),rt!==null&&(st.matrix.fromArray(rt.transform.matrix),st.matrix.decompose(st.position,st.rotation,st.scale),st.matrixWorldNeedsUpdate=!0,rt.linearVelocity?(st.hasLinearVelocity=!0,st.linearVelocity.copy(rt.linearVelocity)):st.hasLinearVelocity=!1,rt.angularVelocity?(st.hasAngularVelocity=!0,st.angularVelocity.copy(rt.angularVelocity)):st.hasAngularVelocity=!1));ot!==null&&(nt=et.getPose(o.targetRaySpace,tt),nt===null&&rt!==null&&(nt=rt),nt!==null&&(ot.matrix.fromArray(nt.transform.matrix),ot.matrix.decompose(ot.position,ot.rotation,ot.scale),ot.matrixWorldNeedsUpdate=!0,nt.linearVelocity?(ot.hasLinearVelocity=!0,ot.linearVelocity.copy(nt.linearVelocity)):ot.hasLinearVelocity=!1,nt.angularVelocity?(ot.hasAngularVelocity=!0,ot.angularVelocity.copy(nt.angularVelocity)):ot.hasAngularVelocity=!1,this.dispatchEvent(_moveEvent)))}return ot!==null&&(ot.visible=nt!==null),st!==null&&(st.visible=rt!==null),at!==null&&(at.visible=it!==null),this}_getHandJoint(o,et){if(o.joints[et.jointName]===void 0){const tt=new Group;tt.matrixAutoUpdate=!1,tt.visible=!1,o.joints[et.jointName]=tt,o.add(tt)}return o.joints[et.jointName]}}const _occlusion_vertex=` void main() { gl_Position = vec4( position, 1.0 ); @@ -3838,7 +3838,7 @@ void main() { } -}`;class WebXRDepthSensing{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(o,et,tt){if(this.texture===null){const nt=new Texture,rt=o.properties.get(nt);rt.__webglTexture=et.texture,(et.depthNear!=tt.depthNear||et.depthFar!=tt.depthFar)&&(this.depthNear=et.depthNear,this.depthFar=et.depthFar),this.texture=nt}}getMesh(o){if(this.texture!==null&&this.mesh===null){const et=o.cameras[0].viewport,tt=new ShaderMaterial({vertexShader:_occlusion_vertex,fragmentShader:_occlusion_fragment,uniforms:{depthColor:{value:this.texture},depthWidth:{value:et.z},depthHeight:{value:et.w}}});this.mesh=new Mesh(new PlaneGeometry(20,20),tt)}return this.mesh}reset(){this.texture=null,this.mesh=null}}class WebXRManager extends EventDispatcher$1{constructor(o,et){super();const tt=this;let nt=null,rt=1,it=null,ot="local-floor",st=1,at=null,lt=null,ut=null,dt=null,ht=null,ct=null;const pt=new WebXRDepthSensing,ft=et.getContextAttributes();let gt=null,yt=null;const Ut=[],Ft=[],mt=new Vector2;let vt=null;const At=new PerspectiveCamera$1;At.layers.enable(1),At.viewport=new Vector4;const Lt=new PerspectiveCamera$1;Lt.layers.enable(2),Lt.viewport=new Vector4;const Rt=[At,Lt],St=new ArrayCamera;St.layers.enable(1),St.layers.enable(2);let Tt=null,Bt=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Kt){let nn=Ut[Kt];return nn===void 0&&(nn=new WebXRController,Ut[Kt]=nn),nn.getTargetRaySpace()},this.getControllerGrip=function(Kt){let nn=Ut[Kt];return nn===void 0&&(nn=new WebXRController,Ut[Kt]=nn),nn.getGripSpace()},this.getHand=function(Kt){let nn=Ut[Kt];return nn===void 0&&(nn=new WebXRController,Ut[Kt]=nn),nn.getHandSpace()};function xt(Kt){const nn=Ft.indexOf(Kt.inputSource);if(nn===-1)return;const Zt=Ut[nn];Zt!==void 0&&(Zt.update(Kt.inputSource,Kt.frame,at||it),Zt.dispatchEvent({type:Kt.type,data:Kt.inputSource}))}function Ct(){nt.removeEventListener("select",xt),nt.removeEventListener("selectstart",xt),nt.removeEventListener("selectend",xt),nt.removeEventListener("squeeze",xt),nt.removeEventListener("squeezestart",xt),nt.removeEventListener("squeezeend",xt),nt.removeEventListener("end",Ct),nt.removeEventListener("inputsourceschange",kt);for(let Kt=0;Kt=0&&(Ft[jt]=null,Ut[jt].disconnect(Zt))}for(let nn=0;nn=Ft.length){Ft.push(Zt),jt=It;break}else if(Ft[It]===null){Ft[It]=Zt,jt=It;break}if(jt===-1)break}const Vt=Ut[jt];Vt&&Vt.connect(Zt)}}const Nt=new Vector3,Ot=new Vector3;function Wt(Kt,nn,Zt){Nt.setFromMatrixPosition(nn.matrixWorld),Ot.setFromMatrixPosition(Zt.matrixWorld);const jt=Nt.distanceTo(Ot),Vt=nn.projectionMatrix.elements,It=Zt.projectionMatrix.elements,$t=Vt[14]/(Vt[10]-1),Ht=Vt[14]/(Vt[10]+1),qt=(Vt[9]+1)/Vt[5],on=(Vt[9]-1)/Vt[5],Xt=(Vt[8]-1)/Vt[0],dn=(It[8]+1)/It[0],_n=$t*Xt,Fn=$t*dn,Un=jt/(-Xt+dn),On=Un*-Xt;nn.matrixWorld.decompose(Kt.position,Kt.quaternion,Kt.scale),Kt.translateX(On),Kt.translateZ(Un),Kt.matrixWorld.compose(Kt.position,Kt.quaternion,Kt.scale),Kt.matrixWorldInverse.copy(Kt.matrixWorld).invert();const gn=$t+Un,hn=Ht+Un,wn=_n-On,Zn=Fn+(jt-On),Pn=qt*Ht/hn*gn,$n=on*Ht/hn*gn;Kt.projectionMatrix.makePerspective(wn,Zn,Pn,$n,gn,hn),Kt.projectionMatrixInverse.copy(Kt.projectionMatrix).invert()}function Dt(Kt,nn){nn===null?Kt.matrixWorld.copy(Kt.matrix):Kt.matrixWorld.multiplyMatrices(nn.matrixWorld,Kt.matrix),Kt.matrixWorldInverse.copy(Kt.matrixWorld).invert()}this.updateCamera=function(Kt){if(nt===null)return;pt.texture!==null&&(Kt.near=pt.depthNear,Kt.far=pt.depthFar),St.near=Lt.near=At.near=Kt.near,St.far=Lt.far=At.far=Kt.far,(Tt!==St.near||Bt!==St.far)&&(nt.updateRenderState({depthNear:St.near,depthFar:St.far}),Tt=St.near,Bt=St.far,At.near=Tt,At.far=Bt,Lt.near=Tt,Lt.far=Bt,At.updateProjectionMatrix(),Lt.updateProjectionMatrix(),Kt.updateProjectionMatrix());const nn=Kt.parent,Zt=St.cameras;Dt(St,nn);for(let jt=0;jt0&&(ft.alphaTest.value=gt.alphaTest);const yt=o.get(gt),Ut=yt.envMap,Ft=yt.envMapRotation;Ut&&(ft.envMap.value=Ut,_e1.copy(Ft),_e1.x*=-1,_e1.y*=-1,_e1.z*=-1,Ut.isCubeTexture&&Ut.isRenderTargetTexture===!1&&(_e1.y*=-1,_e1.z*=-1),ft.envMapRotation.value.setFromMatrix4(_m1.makeRotationFromEuler(_e1)),ft.flipEnvMap.value=Ut.isCubeTexture&&Ut.isRenderTargetTexture===!1?-1:1,ft.reflectivity.value=gt.reflectivity,ft.ior.value=gt.ior,ft.refractionRatio.value=gt.refractionRatio),gt.lightMap&&(ft.lightMap.value=gt.lightMap,ft.lightMapIntensity.value=gt.lightMapIntensity,et(gt.lightMap,ft.lightMapTransform)),gt.aoMap&&(ft.aoMap.value=gt.aoMap,ft.aoMapIntensity.value=gt.aoMapIntensity,et(gt.aoMap,ft.aoMapTransform))}function it(ft,gt){ft.diffuse.value.copy(gt.color),ft.opacity.value=gt.opacity,gt.map&&(ft.map.value=gt.map,et(gt.map,ft.mapTransform))}function ot(ft,gt){ft.dashSize.value=gt.dashSize,ft.totalSize.value=gt.dashSize+gt.gapSize,ft.scale.value=gt.scale}function st(ft,gt,yt,Ut){ft.diffuse.value.copy(gt.color),ft.opacity.value=gt.opacity,ft.size.value=gt.size*yt,ft.scale.value=Ut*.5,gt.map&&(ft.map.value=gt.map,et(gt.map,ft.uvTransform)),gt.alphaMap&&(ft.alphaMap.value=gt.alphaMap,et(gt.alphaMap,ft.alphaMapTransform)),gt.alphaTest>0&&(ft.alphaTest.value=gt.alphaTest)}function at(ft,gt){ft.diffuse.value.copy(gt.color),ft.opacity.value=gt.opacity,ft.rotation.value=gt.rotation,gt.map&&(ft.map.value=gt.map,et(gt.map,ft.mapTransform)),gt.alphaMap&&(ft.alphaMap.value=gt.alphaMap,et(gt.alphaMap,ft.alphaMapTransform)),gt.alphaTest>0&&(ft.alphaTest.value=gt.alphaTest)}function lt(ft,gt){ft.specular.value.copy(gt.specular),ft.shininess.value=Math.max(gt.shininess,1e-4)}function ut(ft,gt){gt.gradientMap&&(ft.gradientMap.value=gt.gradientMap)}function dt(ft,gt){ft.metalness.value=gt.metalness,gt.metalnessMap&&(ft.metalnessMap.value=gt.metalnessMap,et(gt.metalnessMap,ft.metalnessMapTransform)),ft.roughness.value=gt.roughness,gt.roughnessMap&&(ft.roughnessMap.value=gt.roughnessMap,et(gt.roughnessMap,ft.roughnessMapTransform)),gt.envMap&&(ft.envMapIntensity.value=gt.envMapIntensity)}function ht(ft,gt,yt){ft.ior.value=gt.ior,gt.sheen>0&&(ft.sheenColor.value.copy(gt.sheenColor).multiplyScalar(gt.sheen),ft.sheenRoughness.value=gt.sheenRoughness,gt.sheenColorMap&&(ft.sheenColorMap.value=gt.sheenColorMap,et(gt.sheenColorMap,ft.sheenColorMapTransform)),gt.sheenRoughnessMap&&(ft.sheenRoughnessMap.value=gt.sheenRoughnessMap,et(gt.sheenRoughnessMap,ft.sheenRoughnessMapTransform))),gt.clearcoat>0&&(ft.clearcoat.value=gt.clearcoat,ft.clearcoatRoughness.value=gt.clearcoatRoughness,gt.clearcoatMap&&(ft.clearcoatMap.value=gt.clearcoatMap,et(gt.clearcoatMap,ft.clearcoatMapTransform)),gt.clearcoatRoughnessMap&&(ft.clearcoatRoughnessMap.value=gt.clearcoatRoughnessMap,et(gt.clearcoatRoughnessMap,ft.clearcoatRoughnessMapTransform)),gt.clearcoatNormalMap&&(ft.clearcoatNormalMap.value=gt.clearcoatNormalMap,et(gt.clearcoatNormalMap,ft.clearcoatNormalMapTransform),ft.clearcoatNormalScale.value.copy(gt.clearcoatNormalScale),gt.side===BackSide&&ft.clearcoatNormalScale.value.negate())),gt.dispersion>0&&(ft.dispersion.value=gt.dispersion),gt.iridescence>0&&(ft.iridescence.value=gt.iridescence,ft.iridescenceIOR.value=gt.iridescenceIOR,ft.iridescenceThicknessMinimum.value=gt.iridescenceThicknessRange[0],ft.iridescenceThicknessMaximum.value=gt.iridescenceThicknessRange[1],gt.iridescenceMap&&(ft.iridescenceMap.value=gt.iridescenceMap,et(gt.iridescenceMap,ft.iridescenceMapTransform)),gt.iridescenceThicknessMap&&(ft.iridescenceThicknessMap.value=gt.iridescenceThicknessMap,et(gt.iridescenceThicknessMap,ft.iridescenceThicknessMapTransform))),gt.transmission>0&&(ft.transmission.value=gt.transmission,ft.transmissionSamplerMap.value=yt.texture,ft.transmissionSamplerSize.value.set(yt.width,yt.height),gt.transmissionMap&&(ft.transmissionMap.value=gt.transmissionMap,et(gt.transmissionMap,ft.transmissionMapTransform)),ft.thickness.value=gt.thickness,gt.thicknessMap&&(ft.thicknessMap.value=gt.thicknessMap,et(gt.thicknessMap,ft.thicknessMapTransform)),ft.attenuationDistance.value=gt.attenuationDistance,ft.attenuationColor.value.copy(gt.attenuationColor)),gt.anisotropy>0&&(ft.anisotropyVector.value.set(gt.anisotropy*Math.cos(gt.anisotropyRotation),gt.anisotropy*Math.sin(gt.anisotropyRotation)),gt.anisotropyMap&&(ft.anisotropyMap.value=gt.anisotropyMap,et(gt.anisotropyMap,ft.anisotropyMapTransform))),ft.specularIntensity.value=gt.specularIntensity,ft.specularColor.value.copy(gt.specularColor),gt.specularColorMap&&(ft.specularColorMap.value=gt.specularColorMap,et(gt.specularColorMap,ft.specularColorMapTransform)),gt.specularIntensityMap&&(ft.specularIntensityMap.value=gt.specularIntensityMap,et(gt.specularIntensityMap,ft.specularIntensityMapTransform))}function ct(ft,gt){gt.matcap&&(ft.matcap.value=gt.matcap)}function pt(ft,gt){const yt=o.get(gt).light;ft.referencePosition.value.setFromMatrixPosition(yt.matrixWorld),ft.nearDistance.value=yt.shadow.camera.near,ft.farDistance.value=yt.shadow.camera.far}return{refreshFogUniforms:tt,refreshMaterialUniforms:nt}}function WebGLUniformsGroups(s,o,et,tt){let nt={},rt={},it=[];const ot=s.getParameter(s.MAX_UNIFORM_BUFFER_BINDINGS);function st(yt,Ut){const Ft=Ut.program;tt.uniformBlockBinding(yt,Ft)}function at(yt,Ut){let Ft=nt[yt.id];Ft===void 0&&(ct(yt),Ft=lt(yt),nt[yt.id]=Ft,yt.addEventListener("dispose",ft));const mt=Ut.program;tt.updateUBOMapping(yt,mt);const vt=o.render.frame;rt[yt.id]!==vt&&(dt(yt),rt[yt.id]=vt)}function lt(yt){const Ut=ut();yt.__bindingPointIndex=Ut;const Ft=s.createBuffer(),mt=yt.__size,vt=yt.usage;return s.bindBuffer(s.UNIFORM_BUFFER,Ft),s.bufferData(s.UNIFORM_BUFFER,mt,vt),s.bindBuffer(s.UNIFORM_BUFFER,null),s.bindBufferBase(s.UNIFORM_BUFFER,Ut,Ft),Ft}function ut(){for(let yt=0;yt0&&(Ft+=mt-vt),yt.__size=Ft,yt.__cache={},this}function pt(yt){const Ut={boundary:0,storage:0};return typeof yt=="number"||typeof yt=="boolean"?(Ut.boundary=4,Ut.storage=4):yt.isVector2?(Ut.boundary=8,Ut.storage=8):yt.isVector3||yt.isColor?(Ut.boundary=16,Ut.storage=12):yt.isVector4?(Ut.boundary=16,Ut.storage=16):yt.isMatrix3?(Ut.boundary=48,Ut.storage=48):yt.isMatrix4?(Ut.boundary=64,Ut.storage=64):yt.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",yt),Ut}function ft(yt){const Ut=yt.target;Ut.removeEventListener("dispose",ft);const Ft=it.indexOf(Ut.__bindingPointIndex);it.splice(Ft,1),s.deleteBuffer(nt[Ut.id]),delete nt[Ut.id],delete rt[Ut.id]}function gt(){for(const yt in nt)s.deleteBuffer(nt[yt]);it=[],nt={},rt={}}return{bind:st,update:at,dispose:gt}}class WebGLRenderer{constructor(o={}){const{canvas:et=createCanvasElement(),context:tt=null,depth:nt=!0,stencil:rt=!1,alpha:it=!1,antialias:ot=!1,premultipliedAlpha:st=!0,preserveDrawingBuffer:at=!1,powerPreference:lt="default",failIfMajorPerformanceCaveat:ut=!1}=o;this.isWebGLRenderer=!0;let dt;if(tt!==null){if(typeof WebGLRenderingContext<"u"&&tt instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");dt=tt.getContextAttributes().alpha}else dt=it;const ht=new Uint32Array(4),ct=new Int32Array(4);let pt=null,ft=null;const gt=[],yt=[];this.domElement=et,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=SRGBColorSpace$1,this.toneMapping=NoToneMapping,this.toneMappingExposure=1;const Ut=this;let Ft=!1,mt=0,vt=0,At=null,Lt=-1,Rt=null;const St=new Vector4,Tt=new Vector4;let Bt=null;const xt=new Color$2(0);let Ct=0,kt=et.width,Nt=et.height,Ot=1,Wt=null,Dt=null;const Et=new Vector4(0,0,kt,Nt),Pt=new Vector4(0,0,kt,Nt);let zt=!1;const en=new Frustum;let Kt=!1,nn=!1;const Zt=new Matrix4,jt=new Vector3,Vt={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let It=!1;function $t(){return At===null?Ot:1}let Ht=tt;function qt(Nn,rr){return et.getContext(Nn,rr)}try{const Nn={alpha:!0,depth:nt,stencil:rt,antialias:ot,premultipliedAlpha:st,preserveDrawingBuffer:at,powerPreference:lt,failIfMajorPerformanceCaveat:ut};if("setAttribute"in et&&et.setAttribute("data-engine",`three.js r${REVISION}`),et.addEventListener("webglcontextlost",un,!1),et.addEventListener("webglcontextrestored",pn,!1),et.addEventListener("webglcontextcreationerror",Qn,!1),Ht===null){const rr="webgl2";if(Ht=qt(rr,Nn),Ht===null)throw qt(rr)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(Nn){throw console.error("THREE.WebGLRenderer: "+Nn.message),Nn}let on,Xt,dn,_n,Fn,Un,On,gn,hn,wn,Zn,Pn,$n,Tr,Qr,_r,Ir,Wr,qr,Uo,eo,Yr,_o,ro;function Fo(){on=new WebGLExtensions(Ht),on.init(),Yr=new WebGLUtils(Ht,on),Xt=new WebGLCapabilities(Ht,on,o,Yr),dn=new WebGLState(Ht),_n=new WebGLInfo(Ht),Fn=new WebGLProperties,Un=new WebGLTextures(Ht,on,dn,Fn,Xt,Yr,_n),On=new WebGLCubeMaps(Ut),gn=new WebGLCubeUVMaps(Ut),hn=new WebGLAttributes(Ht),_o=new WebGLBindingStates(Ht,hn),wn=new WebGLGeometries(Ht,hn,_n,_o),Zn=new WebGLObjects(Ht,wn,hn,_n),qr=new WebGLMorphtargets(Ht,Xt,Un),_r=new WebGLClipping(Fn),Pn=new WebGLPrograms(Ut,On,gn,on,Xt,_o,_r),$n=new WebGLMaterials(Ut,Fn),Tr=new WebGLRenderLists,Qr=new WebGLRenderStates(on),Wr=new WebGLBackground(Ut,On,gn,dn,Zn,dt,st),Ir=new WebGLShadowMap(Ut,Zn,Xt),ro=new WebGLUniformsGroups(Ht,_n,Xt,dn),Uo=new WebGLBufferRenderer(Ht,on,_n),eo=new WebGLIndexedBufferRenderer(Ht,on,_n),_n.programs=Pn.programs,Ut.capabilities=Xt,Ut.extensions=on,Ut.properties=Fn,Ut.renderLists=Tr,Ut.shadowMap=Ir,Ut.state=dn,Ut.info=_n}Fo();const kn=new WebXRManager(Ut,Ht);this.xr=kn,this.getContext=function(){return Ht},this.getContextAttributes=function(){return Ht.getContextAttributes()},this.forceContextLoss=function(){const Nn=on.get("WEBGL_lose_context");Nn&&Nn.loseContext()},this.forceContextRestore=function(){const Nn=on.get("WEBGL_lose_context");Nn&&Nn.restoreContext()},this.getPixelRatio=function(){return Ot},this.setPixelRatio=function(Nn){Nn!==void 0&&(Ot=Nn,this.setSize(kt,Nt,!1))},this.getSize=function(Nn){return Nn.set(kt,Nt)},this.setSize=function(Nn,rr,Rr=!0){if(kn.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}kt=Nn,Nt=rr,et.width=Math.floor(Nn*Ot),et.height=Math.floor(rr*Ot),Rr===!0&&(et.style.width=Nn+"px",et.style.height=rr+"px"),this.setViewport(0,0,Nn,rr)},this.getDrawingBufferSize=function(Nn){return Nn.set(kt*Ot,Nt*Ot).floor()},this.setDrawingBufferSize=function(Nn,rr,Rr){kt=Nn,Nt=rr,Ot=Rr,et.width=Math.floor(Nn*Rr),et.height=Math.floor(rr*Rr),this.setViewport(0,0,Nn,rr)},this.getCurrentViewport=function(Nn){return Nn.copy(St)},this.getViewport=function(Nn){return Nn.copy(Et)},this.setViewport=function(Nn,rr,Rr,vr){Nn.isVector4?Et.set(Nn.x,Nn.y,Nn.z,Nn.w):Et.set(Nn,rr,Rr,vr),dn.viewport(St.copy(Et).multiplyScalar(Ot).round())},this.getScissor=function(Nn){return Nn.copy(Pt)},this.setScissor=function(Nn,rr,Rr,vr){Nn.isVector4?Pt.set(Nn.x,Nn.y,Nn.z,Nn.w):Pt.set(Nn,rr,Rr,vr),dn.scissor(Tt.copy(Pt).multiplyScalar(Ot).round())},this.getScissorTest=function(){return zt},this.setScissorTest=function(Nn){dn.setScissorTest(zt=Nn)},this.setOpaqueSort=function(Nn){Wt=Nn},this.setTransparentSort=function(Nn){Dt=Nn},this.getClearColor=function(Nn){return Nn.copy(Wr.getClearColor())},this.setClearColor=function(){Wr.setClearColor.apply(Wr,arguments)},this.getClearAlpha=function(){return Wr.getClearAlpha()},this.setClearAlpha=function(){Wr.setClearAlpha.apply(Wr,arguments)},this.clear=function(Nn=!0,rr=!0,Rr=!0){let vr=0;if(Nn){let fr=!1;if(At!==null){const zr=At.texture.format;fr=zr===RGBAIntegerFormat||zr===RGIntegerFormat||zr===RedIntegerFormat}if(fr){const zr=At.texture.type,Gr=zr===UnsignedByteType||zr===UnsignedIntType||zr===UnsignedShortType||zr===UnsignedInt248Type||zr===UnsignedShort4444Type||zr===UnsignedShort5551Type,Pr=Wr.getClearColor(),oo=Wr.getClearAlpha(),ao=Pr.r,mo=Pr.g,lo=Pr.b;Gr?(ht[0]=ao,ht[1]=mo,ht[2]=lo,ht[3]=oo,Ht.clearBufferuiv(Ht.COLOR,0,ht)):(ct[0]=ao,ct[1]=mo,ct[2]=lo,ct[3]=oo,Ht.clearBufferiv(Ht.COLOR,0,ct))}else vr|=Ht.COLOR_BUFFER_BIT}rr&&(vr|=Ht.DEPTH_BUFFER_BIT),Rr&&(vr|=Ht.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),Ht.clear(vr)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){et.removeEventListener("webglcontextlost",un,!1),et.removeEventListener("webglcontextrestored",pn,!1),et.removeEventListener("webglcontextcreationerror",Qn,!1),Tr.dispose(),Qr.dispose(),Fn.dispose(),On.dispose(),gn.dispose(),Zn.dispose(),_o.dispose(),ro.dispose(),Pn.dispose(),kn.dispose(),kn.removeEventListener("sessionstart",ar),kn.removeEventListener("sessionend",hr),cn.stop()};function un(Nn){Nn.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),Ft=!0}function pn(){console.log("THREE.WebGLRenderer: Context Restored."),Ft=!1;const Nn=_n.autoReset,rr=Ir.enabled,Rr=Ir.autoUpdate,vr=Ir.needsUpdate,fr=Ir.type;Fo(),_n.autoReset=Nn,Ir.enabled=rr,Ir.autoUpdate=Rr,Ir.needsUpdate=vr,Ir.type=fr}function Qn(Nn){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",Nn.statusMessage)}function Wn(Nn){const rr=Nn.target;rr.removeEventListener("dispose",Wn),jn(rr)}function jn(Nn){Fr(Nn),Fn.remove(Nn)}function Fr(Nn){const rr=Fn.get(Nn).programs;rr!==void 0&&(rr.forEach(function(Rr){Pn.releaseProgram(Rr)}),Nn.isShaderMaterial&&Pn.releaseShaderCache(Nn))}this.renderBufferDirect=function(Nn,rr,Rr,vr,fr,zr){rr===null&&(rr=Vt);const Gr=fr.isMesh&&fr.matrixWorld.determinant()<0,Pr=nr(Nn,rr,Rr,vr,fr);dn.setMaterial(vr,Gr);let oo=Rr.index,ao=1;if(vr.wireframe===!0){if(oo=wn.getWireframeAttribute(Rr),oo===void 0)return;ao=2}const mo=Rr.drawRange,lo=Rr.attributes.position;let To=mo.start*ao,Jo=(mo.start+mo.count)*ao;zr!==null&&(To=Math.max(To,zr.start*ao),Jo=Math.min(Jo,(zr.start+zr.count)*ao)),oo!==null?(To=Math.max(To,0),Jo=Math.min(Jo,oo.count)):lo!=null&&(To=Math.max(To,0),Jo=Math.min(Jo,lo.count));const Go=Jo-To;if(Go<0||Go===1/0)return;_o.setup(fr,vr,Pr,Rr,oo);let cs,So=Uo;if(oo!==null&&(cs=hn.get(oo),So=eo,So.setIndex(cs)),fr.isMesh)vr.wireframe===!0?(dn.setLineWidth(vr.wireframeLinewidth*$t()),So.setMode(Ht.LINES)):So.setMode(Ht.TRIANGLES);else if(fr.isLine){let so=vr.linewidth;so===void 0&&(so=1),dn.setLineWidth(so*$t()),fr.isLineSegments?So.setMode(Ht.LINES):fr.isLineLoop?So.setMode(Ht.LINE_LOOP):So.setMode(Ht.LINE_STRIP)}else fr.isPoints?So.setMode(Ht.POINTS):fr.isSprite&&So.setMode(Ht.TRIANGLES);if(fr.isBatchedMesh)fr._multiDrawInstances!==null?So.renderMultiDrawInstances(fr._multiDrawStarts,fr._multiDrawCounts,fr._multiDrawCount,fr._multiDrawInstances):So.renderMultiDraw(fr._multiDrawStarts,fr._multiDrawCounts,fr._multiDrawCount);else if(fr.isInstancedMesh)So.renderInstances(To,Go,fr.count);else if(Rr.isInstancedBufferGeometry){const so=Rr._maxInstanceCount!==void 0?Rr._maxInstanceCount:1/0,Bo=Math.min(Rr.instanceCount,so);So.renderInstances(To,Go,Bo)}else So.render(To,Go)};function Er(Nn,rr,Rr){Nn.transparent===!0&&Nn.side===DoubleSide&&Nn.forceSinglePass===!1?(Nn.side=BackSide,Nn.needsUpdate=!0,gr(Nn,rr,Rr),Nn.side=FrontSide,Nn.needsUpdate=!0,gr(Nn,rr,Rr),Nn.side=DoubleSide):gr(Nn,rr,Rr)}this.compile=function(Nn,rr,Rr=null){Rr===null&&(Rr=Nn),ft=Qr.get(Rr),ft.init(rr),yt.push(ft),Rr.traverseVisible(function(fr){fr.isLight&&fr.layers.test(rr.layers)&&(ft.pushLight(fr),fr.castShadow&&ft.pushShadow(fr))}),Nn!==Rr&&Nn.traverseVisible(function(fr){fr.isLight&&fr.layers.test(rr.layers)&&(ft.pushLight(fr),fr.castShadow&&ft.pushShadow(fr))}),ft.setupLights();const vr=new Set;return Nn.traverse(function(fr){const zr=fr.material;if(zr)if(Array.isArray(zr))for(let Gr=0;Gr{function zr(){if(vr.forEach(function(Gr){Fn.get(Gr).currentProgram.isReady()&&vr.delete(Gr)}),vr.size===0){fr(Nn);return}setTimeout(zr,10)}on.get("KHR_parallel_shader_compile")!==null?zr():setTimeout(zr,10)})};let wr=null;function tr(Nn){wr&&wr(Nn)}function ar(){cn.stop()}function hr(){cn.start()}const cn=new WebGLAnimation;cn.setAnimationLoop(tr),typeof self<"u"&&cn.setContext(self),this.setAnimationLoop=function(Nn){wr=Nn,kn.setAnimationLoop(Nn),Nn===null?cn.stop():cn.start()},kn.addEventListener("sessionstart",ar),kn.addEventListener("sessionend",hr),this.render=function(Nn,rr){if(rr!==void 0&&rr.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(Ft===!0)return;if(Nn.matrixWorldAutoUpdate===!0&&Nn.updateMatrixWorld(),rr.parent===null&&rr.matrixWorldAutoUpdate===!0&&rr.updateMatrixWorld(),kn.enabled===!0&&kn.isPresenting===!0&&(kn.cameraAutoUpdate===!0&&kn.updateCamera(rr),rr=kn.getCamera()),Nn.isScene===!0&&Nn.onBeforeRender(Ut,Nn,rr,At),ft=Qr.get(Nn,yt.length),ft.init(rr),yt.push(ft),Zt.multiplyMatrices(rr.projectionMatrix,rr.matrixWorldInverse),en.setFromProjectionMatrix(Zt),nn=this.localClippingEnabled,Kt=_r.init(this.clippingPlanes,nn),pt=Tr.get(Nn,gt.length),pt.init(),gt.push(pt),kn.enabled===!0&&kn.isPresenting===!0){const zr=Ut.xr.getDepthSensingMesh();zr!==null&&mn(zr,rr,-1/0,Ut.sortObjects)}mn(Nn,rr,0,Ut.sortObjects),pt.finish(),Ut.sortObjects===!0&&pt.sort(Wt,Dt),It=kn.enabled===!1||kn.isPresenting===!1||kn.hasDepthSensing()===!1,It&&Wr.addToRenderList(pt,Nn),this.info.render.frame++,Kt===!0&&_r.beginShadows();const Rr=ft.state.shadowsArray;Ir.render(Rr,Nn,rr),Kt===!0&&_r.endShadows(),this.info.autoReset===!0&&this.info.reset();const vr=pt.opaque,fr=pt.transmissive;if(ft.setupLights(),rr.isArrayCamera){const zr=rr.cameras;if(fr.length>0)for(let Gr=0,Pr=zr.length;Gr0&&Gn(vr,fr,Nn,rr),It&&Wr.render(Nn),xn(pt,Nn,rr);At!==null&&(Un.updateMultisampleRenderTarget(At),Un.updateRenderTargetMipmap(At)),Nn.isScene===!0&&Nn.onAfterRender(Ut,Nn,rr),_o.resetDefaultState(),Lt=-1,Rt=null,yt.pop(),yt.length>0?(ft=yt[yt.length-1],Kt===!0&&_r.setGlobalState(Ut.clippingPlanes,ft.state.camera)):ft=null,gt.pop(),gt.length>0?pt=gt[gt.length-1]:pt=null};function mn(Nn,rr,Rr,vr){if(Nn.visible===!1)return;if(Nn.layers.test(rr.layers)){if(Nn.isGroup)Rr=Nn.renderOrder;else if(Nn.isLOD)Nn.autoUpdate===!0&&Nn.update(rr);else if(Nn.isLight)ft.pushLight(Nn),Nn.castShadow&&ft.pushShadow(Nn);else if(Nn.isSprite){if(!Nn.frustumCulled||en.intersectsSprite(Nn)){vr&&jt.setFromMatrixPosition(Nn.matrixWorld).applyMatrix4(Zt);const Gr=Zn.update(Nn),Pr=Nn.material;Pr.visible&&pt.push(Nn,Gr,Pr,Rr,jt.z,null)}}else if((Nn.isMesh||Nn.isLine||Nn.isPoints)&&(!Nn.frustumCulled||en.intersectsObject(Nn))){const Gr=Zn.update(Nn),Pr=Nn.material;if(vr&&(Nn.boundingSphere!==void 0?(Nn.boundingSphere===null&&Nn.computeBoundingSphere(),jt.copy(Nn.boundingSphere.center)):(Gr.boundingSphere===null&&Gr.computeBoundingSphere(),jt.copy(Gr.boundingSphere.center)),jt.applyMatrix4(Nn.matrixWorld).applyMatrix4(Zt)),Array.isArray(Pr)){const oo=Gr.groups;for(let ao=0,mo=oo.length;ao0&&er(fr,rr,Rr),zr.length>0&&er(zr,rr,Rr),Gr.length>0&&er(Gr,rr,Rr),dn.buffers.depth.setTest(!0),dn.buffers.depth.setMask(!0),dn.buffers.color.setMask(!0),dn.setPolygonOffset(!1)}function Gn(Nn,rr,Rr,vr){if((Rr.isScene===!0?Rr.overrideMaterial:null)!==null)return;ft.state.transmissionRenderTarget[vr.id]===void 0&&(ft.state.transmissionRenderTarget[vr.id]=new WebGLRenderTarget(1,1,{generateMipmaps:!0,type:on.has("EXT_color_buffer_half_float")||on.has("EXT_color_buffer_float")?HalfFloatType:UnsignedByteType,minFilter:LinearMipmapLinearFilter,samples:4,stencilBuffer:rt,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:ColorManagement.workingColorSpace}));const zr=ft.state.transmissionRenderTarget[vr.id],Gr=vr.viewport||St;zr.setSize(Gr.z,Gr.w);const Pr=Ut.getRenderTarget();Ut.setRenderTarget(zr),Ut.getClearColor(xt),Ct=Ut.getClearAlpha(),Ct<1&&Ut.setClearColor(16777215,.5),It?Wr.render(Rr):Ut.clear();const oo=Ut.toneMapping;Ut.toneMapping=NoToneMapping;const ao=vr.viewport;if(vr.viewport!==void 0&&(vr.viewport=void 0),ft.setupLightsView(vr),Kt===!0&&_r.setGlobalState(Ut.clippingPlanes,vr),er(Nn,Rr,vr),Un.updateMultisampleRenderTarget(zr),Un.updateRenderTargetMipmap(zr),on.has("WEBGL_multisampled_render_to_texture")===!1){let mo=!1;for(let lo=0,To=rr.length;lo0),lo=!!Rr.morphAttributes.position,To=!!Rr.morphAttributes.normal,Jo=!!Rr.morphAttributes.color;let Go=NoToneMapping;vr.toneMapped&&(At===null||At.isXRRenderTarget===!0)&&(Go=Ut.toneMapping);const cs=Rr.morphAttributes.position||Rr.morphAttributes.normal||Rr.morphAttributes.color,So=cs!==void 0?cs.length:0,so=Fn.get(vr),Bo=ft.state.lights;if(Kt===!0&&(nn===!0||Nn!==Rt)){const No=Nn===Rt&&vr.id===Lt;_r.setState(vr,Nn,No)}let Io=!1;vr.version===so.__version?(so.needsLights&&so.lightsStateVersion!==Bo.state.version||so.outputColorSpace!==Pr||fr.isBatchedMesh&&so.batching===!1||!fr.isBatchedMesh&&so.batching===!0||fr.isBatchedMesh&&so.batchingColor===!0&&fr.colorTexture===null||fr.isBatchedMesh&&so.batchingColor===!1&&fr.colorTexture!==null||fr.isInstancedMesh&&so.instancing===!1||!fr.isInstancedMesh&&so.instancing===!0||fr.isSkinnedMesh&&so.skinning===!1||!fr.isSkinnedMesh&&so.skinning===!0||fr.isInstancedMesh&&so.instancingColor===!0&&fr.instanceColor===null||fr.isInstancedMesh&&so.instancingColor===!1&&fr.instanceColor!==null||fr.isInstancedMesh&&so.instancingMorph===!0&&fr.morphTexture===null||fr.isInstancedMesh&&so.instancingMorph===!1&&fr.morphTexture!==null||so.envMap!==oo||vr.fog===!0&&so.fog!==zr||so.numClippingPlanes!==void 0&&(so.numClippingPlanes!==_r.numPlanes||so.numIntersection!==_r.numIntersection)||so.vertexAlphas!==ao||so.vertexTangents!==mo||so.morphTargets!==lo||so.morphNormals!==To||so.morphColors!==Jo||so.toneMapping!==Go||so.morphTargetsCount!==So)&&(Io=!0):(Io=!0,so.__version=vr.version);let ns=so.currentProgram;Io===!0&&(ns=gr(vr,rr,fr));let ps=!1,gs=!1,bs=!1;const Lo=ns.getUniforms(),Qs=so.uniforms;if(dn.useProgram(ns.program)&&(ps=!0,gs=!0,bs=!0),vr.id!==Lt&&(Lt=vr.id,gs=!0),ps||Rt!==Nn){Lo.setValue(Ht,"projectionMatrix",Nn.projectionMatrix),Lo.setValue(Ht,"viewMatrix",Nn.matrixWorldInverse);const No=Lo.map.cameraPosition;No!==void 0&&No.setValue(Ht,jt.setFromMatrixPosition(Nn.matrixWorld)),Xt.logarithmicDepthBuffer&&Lo.setValue(Ht,"logDepthBufFC",2/(Math.log(Nn.far+1)/Math.LN2)),(vr.isMeshPhongMaterial||vr.isMeshToonMaterial||vr.isMeshLambertMaterial||vr.isMeshBasicMaterial||vr.isMeshStandardMaterial||vr.isShaderMaterial)&&Lo.setValue(Ht,"isOrthographic",Nn.isOrthographicCamera===!0),Rt!==Nn&&(Rt=Nn,gs=!0,bs=!0)}if(fr.isSkinnedMesh){Lo.setOptional(Ht,fr,"bindMatrix"),Lo.setOptional(Ht,fr,"bindMatrixInverse");const No=fr.skeleton;No&&(No.boneTexture===null&&No.computeBoneTexture(),Lo.setValue(Ht,"boneTexture",No.boneTexture,Un))}fr.isBatchedMesh&&(Lo.setOptional(Ht,fr,"batchingTexture"),Lo.setValue(Ht,"batchingTexture",fr._matricesTexture,Un),Lo.setOptional(Ht,fr,"batchingColorTexture"),fr._colorsTexture!==null&&Lo.setValue(Ht,"batchingColorTexture",fr._colorsTexture,Un));const Ps=Rr.morphAttributes;if((Ps.position!==void 0||Ps.normal!==void 0||Ps.color!==void 0)&&qr.update(fr,Rr,ns),(gs||so.receiveShadow!==fr.receiveShadow)&&(so.receiveShadow=fr.receiveShadow,Lo.setValue(Ht,"receiveShadow",fr.receiveShadow)),vr.isMeshGouraudMaterial&&vr.envMap!==null&&(Qs.envMap.value=oo,Qs.flipEnvMap.value=oo.isCubeTexture&&oo.isRenderTargetTexture===!1?-1:1),vr.isMeshStandardMaterial&&vr.envMap===null&&rr.environment!==null&&(Qs.envMapIntensity.value=rr.environmentIntensity),gs&&(Lo.setValue(Ht,"toneMappingExposure",Ut.toneMappingExposure),so.needsLights&&Kr(Qs,bs),zr&&vr.fog===!0&&$n.refreshFogUniforms(Qs,zr),$n.refreshMaterialUniforms(Qs,vr,Ot,Nt,ft.state.transmissionRenderTarget[Nn.id]),WebGLUniforms.upload(Ht,br(so),Qs,Un)),vr.isShaderMaterial&&vr.uniformsNeedUpdate===!0&&(WebGLUniforms.upload(Ht,br(so),Qs,Un),vr.uniformsNeedUpdate=!1),vr.isSpriteMaterial&&Lo.setValue(Ht,"center",fr.center),Lo.setValue(Ht,"modelViewMatrix",fr.modelViewMatrix),Lo.setValue(Ht,"normalMatrix",fr.normalMatrix),Lo.setValue(Ht,"modelMatrix",fr.matrixWorld),vr.isShaderMaterial||vr.isRawShaderMaterial){const No=vr.uniformsGroups;for(let ys=0,Ns=No.length;ys0&&Un.useMultisampledRTT(Nn)===!1?fr=Fn.get(Nn).__webglMultisampledFramebuffer:Array.isArray(mo)?fr=mo[Rr]:fr=mo,St.copy(Nn.viewport),Tt.copy(Nn.scissor),Bt=Nn.scissorTest}else St.copy(Et).multiplyScalar(Ot).floor(),Tt.copy(Pt).multiplyScalar(Ot).floor(),Bt=zt;if(dn.bindFramebuffer(Ht.FRAMEBUFFER,fr)&&vr&&dn.drawBuffers(Nn,fr),dn.viewport(St),dn.scissor(Tt),dn.setScissorTest(Bt),zr){const oo=Fn.get(Nn.texture);Ht.framebufferTexture2D(Ht.FRAMEBUFFER,Ht.COLOR_ATTACHMENT0,Ht.TEXTURE_CUBE_MAP_POSITIVE_X+rr,oo.__webglTexture,Rr)}else if(Gr){const oo=Fn.get(Nn.texture),ao=rr||0;Ht.framebufferTextureLayer(Ht.FRAMEBUFFER,Ht.COLOR_ATTACHMENT0,oo.__webglTexture,Rr||0,ao)}Lt=-1},this.readRenderTargetPixels=function(Nn,rr,Rr,vr,fr,zr,Gr){if(!(Nn&&Nn.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Pr=Fn.get(Nn).__webglFramebuffer;if(Nn.isWebGLCubeRenderTarget&&Gr!==void 0&&(Pr=Pr[Gr]),Pr){dn.bindFramebuffer(Ht.FRAMEBUFFER,Pr);try{const oo=Nn.texture,ao=oo.format,mo=oo.type;if(!Xt.textureFormatReadable(ao)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!Xt.textureTypeReadable(mo)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}rr>=0&&rr<=Nn.width-vr&&Rr>=0&&Rr<=Nn.height-fr&&Ht.readPixels(rr,Rr,vr,fr,Yr.convert(ao),Yr.convert(mo),zr)}finally{const oo=At!==null?Fn.get(At).__webglFramebuffer:null;dn.bindFramebuffer(Ht.FRAMEBUFFER,oo)}}},this.readRenderTargetPixelsAsync=async function(Nn,rr,Rr,vr,fr,zr,Gr){if(!(Nn&&Nn.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Pr=Fn.get(Nn).__webglFramebuffer;if(Nn.isWebGLCubeRenderTarget&&Gr!==void 0&&(Pr=Pr[Gr]),Pr){dn.bindFramebuffer(Ht.FRAMEBUFFER,Pr);try{const oo=Nn.texture,ao=oo.format,mo=oo.type;if(!Xt.textureFormatReadable(ao))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!Xt.textureTypeReadable(mo))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(rr>=0&&rr<=Nn.width-vr&&Rr>=0&&Rr<=Nn.height-fr){const lo=Ht.createBuffer();Ht.bindBuffer(Ht.PIXEL_PACK_BUFFER,lo),Ht.bufferData(Ht.PIXEL_PACK_BUFFER,zr.byteLength,Ht.STREAM_READ),Ht.readPixels(rr,Rr,vr,fr,Yr.convert(ao),Yr.convert(mo),0),Ht.flush();const To=Ht.fenceSync(Ht.SYNC_GPU_COMMANDS_COMPLETE,0);await probeAsync(Ht,To,4);try{Ht.bindBuffer(Ht.PIXEL_PACK_BUFFER,lo),Ht.getBufferSubData(Ht.PIXEL_PACK_BUFFER,0,zr)}finally{Ht.deleteBuffer(lo),Ht.deleteSync(To)}return zr}}finally{const oo=At!==null?Fn.get(At).__webglFramebuffer:null;dn.bindFramebuffer(Ht.FRAMEBUFFER,oo)}}},this.copyFramebufferToTexture=function(Nn,rr=null,Rr=0){Nn.isTexture!==!0&&(console.warn("WebGLRenderer: copyFramebufferToTexture function signature has changed."),rr=arguments[0]||null,Nn=arguments[1]);const vr=Math.pow(2,-Rr),fr=Math.floor(Nn.image.width*vr),zr=Math.floor(Nn.image.height*vr),Gr=rr!==null?rr.x:0,Pr=rr!==null?rr.y:0;Un.setTexture2D(Nn,0),Ht.copyTexSubImage2D(Ht.TEXTURE_2D,Rr,0,0,Gr,Pr,fr,zr),dn.unbindTexture()},this.copyTextureToTexture=function(Nn,rr,Rr=null,vr=null,fr=0){Nn.isTexture!==!0&&(console.warn("WebGLRenderer: copyTextureToTexture function signature has changed."),vr=arguments[0]||null,Nn=arguments[1],rr=arguments[2],fr=arguments[3]||0,Rr=null);let zr,Gr,Pr,oo,ao,mo;Rr!==null?(zr=Rr.max.x-Rr.min.x,Gr=Rr.max.y-Rr.min.y,Pr=Rr.min.x,oo=Rr.min.y):(zr=Nn.image.width,Gr=Nn.image.height,Pr=0,oo=0),vr!==null?(ao=vr.x,mo=vr.y):(ao=0,mo=0);const lo=Yr.convert(rr.format),To=Yr.convert(rr.type);Un.setTexture2D(rr,0),Ht.pixelStorei(Ht.UNPACK_FLIP_Y_WEBGL,rr.flipY),Ht.pixelStorei(Ht.UNPACK_PREMULTIPLY_ALPHA_WEBGL,rr.premultiplyAlpha),Ht.pixelStorei(Ht.UNPACK_ALIGNMENT,rr.unpackAlignment);const Jo=Ht.getParameter(Ht.UNPACK_ROW_LENGTH),Go=Ht.getParameter(Ht.UNPACK_IMAGE_HEIGHT),cs=Ht.getParameter(Ht.UNPACK_SKIP_PIXELS),So=Ht.getParameter(Ht.UNPACK_SKIP_ROWS),so=Ht.getParameter(Ht.UNPACK_SKIP_IMAGES),Bo=Nn.isCompressedTexture?Nn.mipmaps[fr]:Nn.image;Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Bo.width),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Bo.height),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,Pr),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,oo),Nn.isDataTexture?Ht.texSubImage2D(Ht.TEXTURE_2D,fr,ao,mo,zr,Gr,lo,To,Bo.data):Nn.isCompressedTexture?Ht.compressedTexSubImage2D(Ht.TEXTURE_2D,fr,ao,mo,Bo.width,Bo.height,lo,Bo.data):Ht.texSubImage2D(Ht.TEXTURE_2D,fr,ao,mo,lo,To,Bo),Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Jo),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Go),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,cs),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,So),Ht.pixelStorei(Ht.UNPACK_SKIP_IMAGES,so),fr===0&&rr.generateMipmaps&&Ht.generateMipmap(Ht.TEXTURE_2D),dn.unbindTexture()},this.copyTextureToTexture3D=function(Nn,rr,Rr=null,vr=null,fr=0){Nn.isTexture!==!0&&(console.warn("WebGLRenderer: copyTextureToTexture3D function signature has changed."),Rr=arguments[0]||null,vr=arguments[1]||null,Nn=arguments[2],rr=arguments[3],fr=arguments[4]||0);let zr,Gr,Pr,oo,ao,mo,lo,To,Jo;const Go=Nn.isCompressedTexture?Nn.mipmaps[fr]:Nn.image;Rr!==null?(zr=Rr.max.x-Rr.min.x,Gr=Rr.max.y-Rr.min.y,Pr=Rr.max.z-Rr.min.z,oo=Rr.min.x,ao=Rr.min.y,mo=Rr.min.z):(zr=Go.width,Gr=Go.height,Pr=Go.depth,oo=0,ao=0,mo=0),vr!==null?(lo=vr.x,To=vr.y,Jo=vr.z):(lo=0,To=0,Jo=0);const cs=Yr.convert(rr.format),So=Yr.convert(rr.type);let so;if(rr.isData3DTexture)Un.setTexture3D(rr,0),so=Ht.TEXTURE_3D;else if(rr.isDataArrayTexture||rr.isCompressedArrayTexture)Un.setTexture2DArray(rr,0),so=Ht.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}Ht.pixelStorei(Ht.UNPACK_FLIP_Y_WEBGL,rr.flipY),Ht.pixelStorei(Ht.UNPACK_PREMULTIPLY_ALPHA_WEBGL,rr.premultiplyAlpha),Ht.pixelStorei(Ht.UNPACK_ALIGNMENT,rr.unpackAlignment);const Bo=Ht.getParameter(Ht.UNPACK_ROW_LENGTH),Io=Ht.getParameter(Ht.UNPACK_IMAGE_HEIGHT),ns=Ht.getParameter(Ht.UNPACK_SKIP_PIXELS),ps=Ht.getParameter(Ht.UNPACK_SKIP_ROWS),gs=Ht.getParameter(Ht.UNPACK_SKIP_IMAGES);Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Go.width),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Go.height),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,oo),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,ao),Ht.pixelStorei(Ht.UNPACK_SKIP_IMAGES,mo),Nn.isDataTexture||Nn.isData3DTexture?Ht.texSubImage3D(so,fr,lo,To,Jo,zr,Gr,Pr,cs,So,Go.data):rr.isCompressedArrayTexture?Ht.compressedTexSubImage3D(so,fr,lo,To,Jo,zr,Gr,Pr,cs,Go.data):Ht.texSubImage3D(so,fr,lo,To,Jo,zr,Gr,Pr,cs,So,Go),Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Bo),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Io),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,ns),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,ps),Ht.pixelStorei(Ht.UNPACK_SKIP_IMAGES,gs),fr===0&&rr.generateMipmaps&&Ht.generateMipmap(so),dn.unbindTexture()},this.initRenderTarget=function(Nn){Fn.get(Nn).__webglFramebuffer===void 0&&Un.setupRenderTarget(Nn)},this.initTexture=function(Nn){Nn.isCubeTexture?Un.setTextureCube(Nn,0):Nn.isData3DTexture?Un.setTexture3D(Nn,0):Nn.isDataArrayTexture||Nn.isCompressedArrayTexture?Un.setTexture2DArray(Nn,0):Un.setTexture2D(Nn,0),dn.unbindTexture()},this.resetState=function(){mt=0,vt=0,At=null,dn.reset(),_o.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return WebGLCoordinateSystem}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(o){this._outputColorSpace=o;const et=this.getContext();et.drawingBufferColorSpace=o===DisplayP3ColorSpace?"display-p3":"srgb",et.unpackColorSpace=ColorManagement.workingColorSpace===LinearDisplayP3ColorSpace?"display-p3":"srgb"}}class FogExp2{constructor(o,et=25e-5){this.isFogExp2=!0,this.name="",this.color=new Color$2(o),this.density=et}clone(){return new FogExp2(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Fog{constructor(o,et=1,tt=1e3){this.isFog=!0,this.name="",this.color=new Color$2(o),this.near=et,this.far=tt}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Scene extends Object3D{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Euler,this.environmentIntensity=1,this.environmentRotation=new Euler,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(o,et){return super.copy(o,et),o.background!==null&&(this.background=o.background.clone()),o.environment!==null&&(this.environment=o.environment.clone()),o.fog!==null&&(this.fog=o.fog.clone()),this.backgroundBlurriness=o.backgroundBlurriness,this.backgroundIntensity=o.backgroundIntensity,this.backgroundRotation.copy(o.backgroundRotation),this.environmentIntensity=o.environmentIntensity,this.environmentRotation.copy(o.environmentRotation),o.overrideMaterial!==null&&(this.overrideMaterial=o.overrideMaterial.clone()),this.matrixAutoUpdate=o.matrixAutoUpdate,this}toJSON(o){const et=super.toJSON(o);return this.fog!==null&&(et.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(et.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(et.object.backgroundIntensity=this.backgroundIntensity),et.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(et.object.environmentIntensity=this.environmentIntensity),et.object.environmentRotation=this.environmentRotation.toArray(),et}}class InterleavedBuffer{constructor(o,et){this.isInterleavedBuffer=!0,this.array=o,this.stride=et,this.count=o!==void 0?o.length/et:0,this.usage=StaticDrawUsage,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=generateUUID()}onUploadCallback(){}set needsUpdate(o){o===!0&&this.version++}get updateRange(){return warnOnce("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(o){return this.usage=o,this}addUpdateRange(o,et){this.updateRanges.push({start:o,count:et})}clearUpdateRanges(){this.updateRanges.length=0}copy(o){return this.array=new o.array.constructor(o.array),this.count=o.count,this.stride=o.stride,this.usage=o.usage,this}copyAt(o,et,tt){o*=this.stride,tt*=et.stride;for(let nt=0,rt=this.stride;nto.far||et.push({distance:st,point:_intersectPoint.clone(),uv:Triangle.getInterpolation(_intersectPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2),face:null,object:this})}copy(o,et){return super.copy(o,et),o.center!==void 0&&this.center.copy(o.center),this.material=o.material,this}}function transformVertex(s,o,et,tt,nt,rt){_alignedPosition.subVectors(s,et).addScalar(.5).multiply(tt),nt!==void 0?(_rotatedPosition.x=rt*_alignedPosition.x-nt*_alignedPosition.y,_rotatedPosition.y=nt*_alignedPosition.x+rt*_alignedPosition.y):_rotatedPosition.copy(_alignedPosition),s.copy(o),s.x+=_rotatedPosition.x,s.y+=_rotatedPosition.y,s.applyMatrix4(_viewWorldMatrix)}const _v1$2=new Vector3,_v2$1=new Vector3;class LOD extends Object3D{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(o){super.copy(o,!1);const et=o.levels;for(let tt=0,nt=et.length;tt0){let tt,nt;for(tt=1,nt=et.length;tt0){_v1$2.setFromMatrixPosition(this.matrixWorld);const nt=o.ray.origin.distanceTo(_v1$2);this.getObjectForDistance(nt).raycast(o,et)}}update(o){const et=this.levels;if(et.length>1){_v1$2.setFromMatrixPosition(o.matrixWorld),_v2$1.setFromMatrixPosition(this.matrixWorld);const tt=_v1$2.distanceTo(_v2$1)/o.zoom;et[0].object.visible=!0;let nt,rt;for(nt=1,rt=et.length;nt=it)et[nt-1].object.visible=!1,et[nt].object.visible=!0;else break}for(this._currentLevel=nt-1;nt=tt.length&&tt.push({start:-1,count:-1,z:-1});const rt=tt[this.index];nt.push(rt),this.index++,rt.start=o.start,rt.count=o.count,rt.z=et}reset(){this.list.length=0,this.index=0}}const ID_ATTR_NAME="batchId",_matrix$1=new Matrix4,_invMatrixWorld=new Matrix4,_identityMatrix$2=new Matrix4,_whiteColor=new Color$2(1,1,1),_projScreenMatrix$2=new Matrix4,_frustum=new Frustum,_box$1$1=new Box3,_sphere$2=new Sphere$1,_vector$5=new Vector3,_forward=new Vector3,_temp=new Vector3,_renderList=new MultiDrawRenderList,_mesh=new Mesh,_batchIntersects=[];function copyAttributeData(s,o,et=0){const tt=o.itemSize;if(s.isInterleavedBufferAttribute||s.array.constructor!==o.array.constructor){const nt=s.count;for(let rt=0;rt65536?new Uint32Array(rt):new Uint16Array(rt);et.setIndex(new BufferAttribute(ot,1))}const it=nt>65536?new Uint32Array(tt):new Uint16Array(tt);et.setAttribute(ID_ATTR_NAME,new BufferAttribute(it,1)),this._geometryInitialized=!0}}_validateGeometry(o){if(o.getAttribute(ID_ATTR_NAME))throw new Error(`BatchedMesh: Geometry cannot use attribute "${ID_ATTR_NAME}"`);const et=this.geometry;if(!!o.getIndex()!=!!et.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const tt in et.attributes){if(tt===ID_ATTR_NAME)continue;if(!o.hasAttribute(tt))throw new Error(`BatchedMesh: Added geometry missing "${tt}". All geometries must have consistent attributes.`);const nt=o.getAttribute(tt),rt=et.getAttribute(tt);if(nt.itemSize!==rt.itemSize||nt.normalized!==rt.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(o){return this.customSort=o,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Box3);const o=this._geometryCount,et=this.boundingBox,tt=this._active;et.makeEmpty();for(let nt=0;nt=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const nt={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let rt=null;const it=this._reservedRanges,ot=this._drawRanges,st=this._bounds;this._geometryCount!==0&&(rt=it[it.length-1]),et===-1?nt.vertexCount=o.getAttribute("position").count:nt.vertexCount=et,rt===null?nt.vertexStart=0:nt.vertexStart=rt.vertexStart+rt.vertexCount;const at=o.getIndex(),lt=at!==null;if(lt&&(tt===-1?nt.indexCount=at.count:nt.indexCount=tt,rt===null?nt.indexStart=0:nt.indexStart=rt.indexStart+rt.indexCount),nt.indexStart!==-1&&nt.indexStart+nt.indexCount>this._maxIndexCount||nt.vertexStart+nt.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const ut=this._visibility,dt=this._active,ht=this._matricesTexture,ct=this._matricesTexture.image.data,pt=this._colorsTexture;ut.push(!0),dt.push(!0);const ft=this._geometryCount;this._geometryCount++,_identityMatrix$2.toArray(ct,ft*16),ht.needsUpdate=!0,pt!==null&&(_whiteColor.toArray(pt.image.data,ft*4),pt.needsUpdate=!0),it.push(nt),ot.push({start:lt?nt.indexStart:nt.vertexStart,count:-1}),st.push({boxInitialized:!1,box:new Box3,sphereInitialized:!1,sphere:new Sphere$1});const gt=this.geometry.getAttribute(ID_ATTR_NAME);for(let yt=0;yt=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(et);const tt=this.geometry,nt=tt.getIndex()!==null,rt=tt.getIndex(),it=et.getIndex(),ot=this._reservedRanges[o];if(nt&&it.count>ot.indexCount||et.attributes.position.count>ot.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const st=ot.vertexStart,at=ot.vertexCount;for(const ht in tt.attributes){if(ht===ID_ATTR_NAME)continue;const ct=et.getAttribute(ht),pt=tt.getAttribute(ht);copyAttributeData(ct,pt,st);const ft=ct.itemSize;for(let gt=ct.count,yt=at;gt=et.length||et[o]===!1?this:(et[o]=!1,this._visibilityChanged=!0,this)}getInstanceCountAt(o){return this._multiDrawInstances===null?null:this._multiDrawInstances[o]}setInstanceCountAt(o,et){return this._multiDrawInstances===null&&(this._multiDrawInstances=new Int32Array(this._maxGeometryCount).fill(1)),this._multiDrawInstances[o]=et,o}getBoundingBoxAt(o,et){if(this._active[o]===!1)return null;const nt=this._bounds[o],rt=nt.box,it=this.geometry;if(nt.boxInitialized===!1){rt.makeEmpty();const ot=it.index,st=it.attributes.position,at=this._drawRanges[o];for(let lt=at.start,ut=at.start+at.count;lt=it||tt[o]===!1?this:(et.toArray(rt,o*16),nt.needsUpdate=!0,this)}getMatrixAt(o,et){const tt=this._active,nt=this._matricesTexture.image.data,rt=this._geometryCount;return o>=rt||tt[o]===!1?null:et.fromArray(nt,o*16)}setColorAt(o,et){this._colorsTexture===null&&this._initColorsTexture();const tt=this._active,nt=this._colorsTexture,rt=this._colorsTexture.image.data,it=this._geometryCount;return o>=it||tt[o]===!1?this:(et.toArray(rt,o*4),nt.needsUpdate=!0,this)}getColorAt(o,et){const tt=this._active,nt=this._colorsTexture.image.data,rt=this._geometryCount;return o>=rt||tt[o]===!1?null:et.fromArray(nt,o*4)}setVisibleAt(o,et){const tt=this._visibility,nt=this._active,rt=this._geometryCount;return o>=rt||nt[o]===!1||tt[o]===et?this:(tt[o]=et,this._visibilityChanged=!0,this)}getVisibleAt(o){const et=this._visibility,tt=this._active,nt=this._geometryCount;return o>=nt||tt[o]===!1?!1:et[o]}raycast(o,et){const tt=this._visibility,nt=this._active,rt=this._drawRanges,it=this._geometryCount,ot=this.matrixWorld,st=this.geometry;_mesh.material=this.material,_mesh.geometry.index=st.index,_mesh.geometry.attributes=st.attributes,_mesh.geometry.boundingBox===null&&(_mesh.geometry.boundingBox=new Box3),_mesh.geometry.boundingSphere===null&&(_mesh.geometry.boundingSphere=new Sphere$1);for(let at=0;at({...et})),this._reservedRanges=o._reservedRanges.map(et=>({...et})),this._visibility=o._visibility.slice(),this._active=o._active.slice(),this._bounds=o._bounds.map(et=>({boxInitialized:et.boxInitialized,box:et.box.clone(),sphereInitialized:et.sphereInitialized,sphere:et.sphere.clone()})),this._maxGeometryCount=o._maxGeometryCount,this._maxVertexCount=o._maxVertexCount,this._maxIndexCount=o._maxIndexCount,this._geometryInitialized=o._geometryInitialized,this._geometryCount=o._geometryCount,this._multiDrawCounts=o._multiDrawCounts.slice(),this._multiDrawStarts=o._multiDrawStarts.slice(),this._matricesTexture=o._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this._colorsTexture!==null&&(this._colorsTexture=o._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.slice()),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null),this}onBeforeRender(o,et,tt,nt,rt){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const it=nt.getIndex(),ot=it===null?1:it.array.BYTES_PER_ELEMENT,st=this._active,at=this._visibility,lt=this._multiDrawStarts,ut=this._multiDrawCounts,dt=this._drawRanges,ht=this.perObjectFrustumCulled;ht&&(_projScreenMatrix$2.multiplyMatrices(tt.projectionMatrix,tt.matrixWorldInverse).multiply(this.matrixWorld),_frustum.setFromProjectionMatrix(_projScreenMatrix$2,o.coordinateSystem));let ct=0;if(this.sortObjects){_invMatrixWorld.copy(this.matrixWorld).invert(),_vector$5.setFromMatrixPosition(tt.matrixWorld).applyMatrix4(_invMatrixWorld),_forward.set(0,0,-1).transformDirection(tt.matrixWorld).transformDirection(_invMatrixWorld);for(let gt=0,yt=at.length;gt0){const nt=et[tt[0]];if(nt!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let rt=0,it=nt.length;rttt)return;_intersectPointOnRay.applyMatrix4(s.matrixWorld);const st=o.ray.origin.distanceTo(_intersectPointOnRay);if(!(sto.far))return{distance:st,point:_intersectPointOnSegment.clone().applyMatrix4(s.matrixWorld),index:nt,face:null,faceIndex:null,object:s}}const _start$1=new Vector3,_end$1=new Vector3;class LineSegments extends Line$1{constructor(o,et){super(o,et),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const o=this.geometry;if(o.index===null){const et=o.attributes.position,tt=[];for(let nt=0,rt=et.count;nt0){const nt=et[tt[0]];if(nt!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let rt=0,it=nt.length;rtnt.far)return;rt.push({distance:at,distanceToRay:Math.sqrt(ot),point:st,index:o,face:null,object:it})}}class VideoTexture extends Texture{constructor(o,et,tt,nt,rt,it,ot,st,at){super(o,et,tt,nt,rt,it,ot,st,at),this.isVideoTexture=!0,this.minFilter=it!==void 0?it:LinearFilter,this.magFilter=rt!==void 0?rt:LinearFilter,this.generateMipmaps=!1;const lt=this;function ut(){lt.needsUpdate=!0,o.requestVideoFrameCallback(ut)}"requestVideoFrameCallback"in o&&o.requestVideoFrameCallback(ut)}clone(){return new this.constructor(this.image).copy(this)}update(){const o=this.image;"requestVideoFrameCallback"in o===!1&&o.readyState>=o.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class FramebufferTexture extends Texture{constructor(o,et){super({width:o,height:et}),this.isFramebufferTexture=!0,this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.generateMipmaps=!1,this.needsUpdate=!0}}class CompressedTexture extends Texture{constructor(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt){super(null,it,ot,st,at,lt,nt,rt,ut,dt),this.isCompressedTexture=!0,this.image={width:et,height:tt},this.mipmaps=o,this.flipY=!1,this.generateMipmaps=!1}}class CompressedArrayTexture extends CompressedTexture{constructor(o,et,tt,nt,rt,it){super(o,et,tt,rt,it),this.isCompressedArrayTexture=!0,this.image.depth=nt,this.wrapR=ClampToEdgeWrapping,this.layerUpdates=new Set}addLayerUpdates(o){this.layerUpdates.add(o)}clearLayerUpdates(){this.layerUpdates.clear()}}class CompressedCubeTexture extends CompressedTexture{constructor(o,et,tt){super(void 0,o[0].width,o[0].height,et,tt,CubeReflectionMapping),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=o}}class CanvasTexture extends Texture{constructor(o,et,tt,nt,rt,it,ot,st,at){super(o,et,tt,nt,rt,it,ot,st,at),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Curve{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(o,et){const tt=this.getUtoTmapping(o);return this.getPoint(tt,et)}getPoints(o=5){const et=[];for(let tt=0;tt<=o;tt++)et.push(this.getPoint(tt/o));return et}getSpacedPoints(o=5){const et=[];for(let tt=0;tt<=o;tt++)et.push(this.getPointAt(tt/o));return et}getLength(){const o=this.getLengths();return o[o.length-1]}getLengths(o=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===o+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const et=[];let tt,nt=this.getPoint(0),rt=0;et.push(0);for(let it=1;it<=o;it++)tt=this.getPoint(it/o),rt+=tt.distanceTo(nt),et.push(rt),nt=tt;return this.cacheArcLengths=et,et}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(o,et){const tt=this.getLengths();let nt=0;const rt=tt.length;let it;et?it=et:it=o*tt[rt-1];let ot=0,st=rt-1,at;for(;ot<=st;)if(nt=Math.floor(ot+(st-ot)/2),at=tt[nt]-it,at<0)ot=nt+1;else if(at>0)st=nt-1;else{st=nt;break}if(nt=st,tt[nt]===it)return nt/(rt-1);const lt=tt[nt],dt=tt[nt+1]-lt,ht=(it-lt)/dt;return(nt+ht)/(rt-1)}getTangent(o,et){let nt=o-1e-4,rt=o+1e-4;nt<0&&(nt=0),rt>1&&(rt=1);const it=this.getPoint(nt),ot=this.getPoint(rt),st=et||(it.isVector2?new Vector2:new Vector3);return st.copy(ot).sub(it).normalize(),st}getTangentAt(o,et){const tt=this.getUtoTmapping(o);return this.getTangent(tt,et)}computeFrenetFrames(o,et){const tt=new Vector3,nt=[],rt=[],it=[],ot=new Vector3,st=new Matrix4;for(let ht=0;ht<=o;ht++){const ct=ht/o;nt[ht]=this.getTangentAt(ct,new Vector3)}rt[0]=new Vector3,it[0]=new Vector3;let at=Number.MAX_VALUE;const lt=Math.abs(nt[0].x),ut=Math.abs(nt[0].y),dt=Math.abs(nt[0].z);lt<=at&&(at=lt,tt.set(1,0,0)),ut<=at&&(at=ut,tt.set(0,1,0)),dt<=at&&tt.set(0,0,1),ot.crossVectors(nt[0],tt).normalize(),rt[0].crossVectors(nt[0],ot),it[0].crossVectors(nt[0],rt[0]);for(let ht=1;ht<=o;ht++){if(rt[ht]=rt[ht-1].clone(),it[ht]=it[ht-1].clone(),ot.crossVectors(nt[ht-1],nt[ht]),ot.length()>Number.EPSILON){ot.normalize();const ct=Math.acos(clamp$4(nt[ht-1].dot(nt[ht]),-1,1));rt[ht].applyMatrix4(st.makeRotationAxis(ot,ct))}it[ht].crossVectors(nt[ht],rt[ht])}if(et===!0){let ht=Math.acos(clamp$4(rt[0].dot(rt[o]),-1,1));ht/=o,nt[0].dot(ot.crossVectors(rt[0],rt[o]))>0&&(ht=-ht);for(let ct=1;ct<=o;ct++)rt[ct].applyMatrix4(st.makeRotationAxis(nt[ct],ht*ct)),it[ct].crossVectors(nt[ct],rt[ct])}return{tangents:nt,normals:rt,binormals:it}}clone(){return new this.constructor().copy(this)}copy(o){return this.arcLengthDivisions=o.arcLengthDivisions,this}toJSON(){const o={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return o.arcLengthDivisions=this.arcLengthDivisions,o.type=this.type,o}fromJSON(o){return this.arcLengthDivisions=o.arcLengthDivisions,this}}class EllipseCurve extends Curve{constructor(o=0,et=0,tt=1,nt=1,rt=0,it=Math.PI*2,ot=!1,st=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=o,this.aY=et,this.xRadius=tt,this.yRadius=nt,this.aStartAngle=rt,this.aEndAngle=it,this.aClockwise=ot,this.aRotation=st}getPoint(o,et=new Vector2){const tt=et,nt=Math.PI*2;let rt=this.aEndAngle-this.aStartAngle;const it=Math.abs(rt)nt;)rt-=nt;rt0?0:(Math.floor(Math.abs(ot)/rt)+1)*rt:st===0&&ot===rt-1&&(ot=rt-2,st=1);let at,lt;this.closed||ot>0?at=nt[(ot-1)%rt]:(tmp.subVectors(nt[0],nt[1]).add(nt[0]),at=tmp);const ut=nt[ot%rt],dt=nt[(ot+1)%rt];if(this.closed||ot+2nt.length-2?nt.length-1:it+1],ut=nt[it>nt.length-3?nt.length-1:it+2];return tt.set(CatmullRom(ot,st.x,at.x,lt.x,ut.x),CatmullRom(ot,st.y,at.y,lt.y,ut.y)),tt}copy(o){super.copy(o),this.points=[];for(let et=0,tt=o.points.length;et=tt){const it=nt[rt]-tt,ot=this.curves[rt],st=ot.getLength(),at=st===0?0:1-it/st;return ot.getPointAt(at,et)}rt++}return null}getLength(){const o=this.getCurveLengths();return o[o.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const o=[];let et=0;for(let tt=0,nt=this.curves.length;tt1&&!et[et.length-1].equals(et[0])&&et.push(et[0]),et}copy(o){super.copy(o),this.curves=[];for(let et=0,tt=o.curves.length;et0){const ut=at.getPoint(0);ut.equals(this.currentPoint)||this.lineTo(ut.x,ut.y)}this.curves.push(at);const lt=at.getPoint(1);return this.currentPoint.copy(lt),this}copy(o){return super.copy(o),this.currentPoint.copy(o.currentPoint),this}toJSON(){const o=super.toJSON();return o.currentPoint=this.currentPoint.toArray(),o}fromJSON(o){return super.fromJSON(o),this.currentPoint.fromArray(o.currentPoint),this}};class LatheGeometry extends BufferGeometry{constructor(o=[new Vector2(0,-.5),new Vector2(.5,0),new Vector2(0,.5)],et=12,tt=0,nt=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:o,segments:et,phiStart:tt,phiLength:nt},et=Math.floor(et),nt=clamp$4(nt,0,Math.PI*2);const rt=[],it=[],ot=[],st=[],at=[],lt=1/et,ut=new Vector3,dt=new Vector2,ht=new Vector3,ct=new Vector3,pt=new Vector3;let ft=0,gt=0;for(let yt=0;yt<=o.length-1;yt++)switch(yt){case 0:ft=o[yt+1].x-o[yt].x,gt=o[yt+1].y-o[yt].y,ht.x=gt*1,ht.y=-ft,ht.z=gt*0,pt.copy(ht),ht.normalize(),st.push(ht.x,ht.y,ht.z);break;case o.length-1:st.push(pt.x,pt.y,pt.z);break;default:ft=o[yt+1].x-o[yt].x,gt=o[yt+1].y-o[yt].y,ht.x=gt*1,ht.y=-ft,ht.z=gt*0,ct.copy(ht),ht.x+=pt.x,ht.y+=pt.y,ht.z+=pt.z,ht.normalize(),st.push(ht.x,ht.y,ht.z),pt.copy(ct)}for(let yt=0;yt<=et;yt++){const Ut=tt+yt*lt*nt,Ft=Math.sin(Ut),mt=Math.cos(Ut);for(let vt=0;vt<=o.length-1;vt++){ut.x=o[vt].x*Ft,ut.y=o[vt].y,ut.z=o[vt].x*mt,it.push(ut.x,ut.y,ut.z),dt.x=yt/et,dt.y=vt/(o.length-1),ot.push(dt.x,dt.y);const At=st[3*vt+0]*Ft,Lt=st[3*vt+1],Rt=st[3*vt+0]*mt;at.push(At,Lt,Rt)}}for(let yt=0;yt0&&Ut(!0),et>0&&Ut(!1)),this.setIndex(lt),this.setAttribute("position",new Float32BufferAttribute(ut,3)),this.setAttribute("normal",new Float32BufferAttribute(dt,3)),this.setAttribute("uv",new Float32BufferAttribute(ht,2));function yt(){const Ft=new Vector3,mt=new Vector3;let vt=0;const At=(et-o)/tt;for(let Lt=0;Lt<=rt;Lt++){const Rt=[],St=Lt/rt,Tt=St*(et-o)+o;for(let Bt=0;Bt<=nt;Bt++){const xt=Bt/nt,Ct=xt*st+ot,kt=Math.sin(Ct),Nt=Math.cos(Ct);mt.x=Tt*kt,mt.y=-St*tt+ft,mt.z=Tt*Nt,ut.push(mt.x,mt.y,mt.z),Ft.set(kt,At,Nt).normalize(),dt.push(Ft.x,Ft.y,Ft.z),ht.push(xt,1-St),Rt.push(ct++)}pt.push(Rt)}for(let Lt=0;Lt.9&&At<.1&&(Ut<.2&&(it[yt+0]+=1),Ft<.2&&(it[yt+2]+=1),mt<.2&&(it[yt+4]+=1))}}function dt(yt){rt.push(yt.x,yt.y,yt.z)}function ht(yt,Ut){const Ft=yt*3;Ut.x=o[Ft+0],Ut.y=o[Ft+1],Ut.z=o[Ft+2]}function ct(){const yt=new Vector3,Ut=new Vector3,Ft=new Vector3,mt=new Vector3,vt=new Vector2,At=new Vector2,Lt=new Vector2;for(let Rt=0,St=0;Rt80*et){ot=at=s[0],st=lt=s[1];for(let ct=et;ctat&&(at=ut),dt>lt&&(lt=dt);ht=Math.max(at-ot,lt-st),ht=ht!==0?32767/ht:0}return earcutLinked(rt,it,et,ot,st,ht,0),it}};function linkedList(s,o,et,tt,nt){let rt,it;if(nt===signedArea(s,o,et,tt)>0)for(rt=o;rt=o;rt-=tt)it=insertNode(rt,s[rt],s[rt+1],it);return it&&equals(it,it.next)&&(removeNode(it),it=it.next),it}function filterPoints(s,o){if(!s)return s;o||(o=s);let et=s,tt;do if(tt=!1,!et.steiner&&(equals(et,et.next)||area(et.prev,et,et.next)===0)){if(removeNode(et),et=o=et.prev,et===et.next)break;tt=!0}else et=et.next;while(tt||et!==o);return o}function earcutLinked(s,o,et,tt,nt,rt,it){if(!s)return;!it&&rt&&indexCurve(s,tt,nt,rt);let ot=s,st,at;for(;s.prev!==s.next;){if(st=s.prev,at=s.next,rt?isEarHashed(s,tt,nt,rt):isEar(s)){o.push(st.i/et|0),o.push(s.i/et|0),o.push(at.i/et|0),removeNode(s),s=at.next,ot=at.next;continue}if(s=at,s===ot){it?it===1?(s=cureLocalIntersections(filterPoints(s),o,et),earcutLinked(s,o,et,tt,nt,rt,2)):it===2&&splitEarcut(s,o,et,tt,nt,rt):earcutLinked(filterPoints(s),o,et,tt,nt,rt,1);break}}}function isEar(s){const o=s.prev,et=s,tt=s.next;if(area(o,et,tt)>=0)return!1;const nt=o.x,rt=et.x,it=tt.x,ot=o.y,st=et.y,at=tt.y,lt=ntrt?nt>it?nt:it:rt>it?rt:it,ht=ot>st?ot>at?ot:at:st>at?st:at;let ct=tt.next;for(;ct!==o;){if(ct.x>=lt&&ct.x<=dt&&ct.y>=ut&&ct.y<=ht&&pointInTriangle(nt,ot,rt,st,it,at,ct.x,ct.y)&&area(ct.prev,ct,ct.next)>=0)return!1;ct=ct.next}return!0}function isEarHashed(s,o,et,tt){const nt=s.prev,rt=s,it=s.next;if(area(nt,rt,it)>=0)return!1;const ot=nt.x,st=rt.x,at=it.x,lt=nt.y,ut=rt.y,dt=it.y,ht=otst?ot>at?ot:at:st>at?st:at,ft=lt>ut?lt>dt?lt:dt:ut>dt?ut:dt,gt=zOrder(ht,ct,o,et,tt),yt=zOrder(pt,ft,o,et,tt);let Ut=s.prevZ,Ft=s.nextZ;for(;Ut&&Ut.z>=gt&&Ft&&Ft.z<=yt;){if(Ut.x>=ht&&Ut.x<=pt&&Ut.y>=ct&&Ut.y<=ft&&Ut!==nt&&Ut!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ut.x,Ut.y)&&area(Ut.prev,Ut,Ut.next)>=0||(Ut=Ut.prevZ,Ft.x>=ht&&Ft.x<=pt&&Ft.y>=ct&&Ft.y<=ft&&Ft!==nt&&Ft!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ft.x,Ft.y)&&area(Ft.prev,Ft,Ft.next)>=0))return!1;Ft=Ft.nextZ}for(;Ut&&Ut.z>=gt;){if(Ut.x>=ht&&Ut.x<=pt&&Ut.y>=ct&&Ut.y<=ft&&Ut!==nt&&Ut!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ut.x,Ut.y)&&area(Ut.prev,Ut,Ut.next)>=0)return!1;Ut=Ut.prevZ}for(;Ft&&Ft.z<=yt;){if(Ft.x>=ht&&Ft.x<=pt&&Ft.y>=ct&&Ft.y<=ft&&Ft!==nt&&Ft!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ft.x,Ft.y)&&area(Ft.prev,Ft,Ft.next)>=0)return!1;Ft=Ft.nextZ}return!0}function cureLocalIntersections(s,o,et){let tt=s;do{const nt=tt.prev,rt=tt.next.next;!equals(nt,rt)&&intersects(nt,tt,tt.next,rt)&&locallyInside(nt,rt)&&locallyInside(rt,nt)&&(o.push(nt.i/et|0),o.push(tt.i/et|0),o.push(rt.i/et|0),removeNode(tt),removeNode(tt.next),tt=s=rt),tt=tt.next}while(tt!==s);return filterPoints(tt)}function splitEarcut(s,o,et,tt,nt,rt){let it=s;do{let ot=it.next.next;for(;ot!==it.prev;){if(it.i!==ot.i&&isValidDiagonal(it,ot)){let st=splitPolygon(it,ot);it=filterPoints(it,it.next),st=filterPoints(st,st.next),earcutLinked(it,o,et,tt,nt,rt,0),earcutLinked(st,o,et,tt,nt,rt,0);return}ot=ot.next}it=it.next}while(it!==s)}function eliminateHoles(s,o,et,tt){const nt=[];let rt,it,ot,st,at;for(rt=0,it=o.length;rt=et.next.y&&et.next.y!==et.y){const dt=et.x+(it-et.y)*(et.next.x-et.x)/(et.next.y-et.y);if(dt<=rt&&dt>tt&&(tt=dt,nt=et.x=et.x&&et.x>=st&&rt!==et.x&&pointInTriangle(itnt.x||et.x===nt.x&§orContainsSector(nt,et)))&&(nt=et,lt=ut)),et=et.next;while(et!==ot);return nt}function sectorContainsSector(s,o){return area(s.prev,s,o.prev)<0&&area(o.next,s,s.next)<0}function indexCurve(s,o,et,tt){let nt=s;do nt.z===0&&(nt.z=zOrder(nt.x,nt.y,o,et,tt)),nt.prevZ=nt.prev,nt.nextZ=nt.next,nt=nt.next;while(nt!==s);nt.prevZ.nextZ=null,nt.prevZ=null,sortLinked(nt)}function sortLinked(s){let o,et,tt,nt,rt,it,ot,st,at=1;do{for(et=s,s=null,rt=null,it=0;et;){for(it++,tt=et,ot=0,o=0;o0||st>0&&tt;)ot!==0&&(st===0||!tt||et.z<=tt.z)?(nt=et,et=et.nextZ,ot--):(nt=tt,tt=tt.nextZ,st--),rt?rt.nextZ=nt:s=nt,nt.prevZ=rt,rt=nt;et=tt}rt.nextZ=null,at*=2}while(it>1);return s}function zOrder(s,o,et,tt,nt){return s=(s-et)*nt|0,o=(o-tt)*nt|0,s=(s|s<<8)&16711935,s=(s|s<<4)&252645135,s=(s|s<<2)&858993459,s=(s|s<<1)&1431655765,o=(o|o<<8)&16711935,o=(o|o<<4)&252645135,o=(o|o<<2)&858993459,o=(o|o<<1)&1431655765,s|o<<1}function getLeftmost(s){let o=s,et=s;do(o.x=(s-it)*(rt-ot)&&(s-it)*(tt-ot)>=(et-it)*(o-ot)&&(et-it)*(rt-ot)>=(nt-it)*(tt-ot)}function isValidDiagonal(s,o){return s.next.i!==o.i&&s.prev.i!==o.i&&!intersectsPolygon(s,o)&&(locallyInside(s,o)&&locallyInside(o,s)&&middleInside(s,o)&&(area(s.prev,s,o.prev)||area(s,o.prev,o))||equals(s,o)&&area(s.prev,s,s.next)>0&&area(o.prev,o,o.next)>0)}function area(s,o,et){return(o.y-s.y)*(et.x-o.x)-(o.x-s.x)*(et.y-o.y)}function equals(s,o){return s.x===o.x&&s.y===o.y}function intersects(s,o,et,tt){const nt=sign$1(area(s,o,et)),rt=sign$1(area(s,o,tt)),it=sign$1(area(et,tt,s)),ot=sign$1(area(et,tt,o));return!!(nt!==rt&&it!==ot||nt===0&&onSegment(s,et,o)||rt===0&&onSegment(s,tt,o)||it===0&&onSegment(et,s,tt)||ot===0&&onSegment(et,o,tt))}function onSegment(s,o,et){return o.x<=Math.max(s.x,et.x)&&o.x>=Math.min(s.x,et.x)&&o.y<=Math.max(s.y,et.y)&&o.y>=Math.min(s.y,et.y)}function sign$1(s){return s>0?1:s<0?-1:0}function intersectsPolygon(s,o){let et=s;do{if(et.i!==s.i&&et.next.i!==s.i&&et.i!==o.i&&et.next.i!==o.i&&intersects(et,et.next,s,o))return!0;et=et.next}while(et!==s);return!1}function locallyInside(s,o){return area(s.prev,s,s.next)<0?area(s,o,s.next)>=0&&area(s,s.prev,o)>=0:area(s,o,s.prev)<0||area(s,s.next,o)<0}function middleInside(s,o){let et=s,tt=!1;const nt=(s.x+o.x)/2,rt=(s.y+o.y)/2;do et.y>rt!=et.next.y>rt&&et.next.y!==et.y&&nt<(et.next.x-et.x)*(rt-et.y)/(et.next.y-et.y)+et.x&&(tt=!tt),et=et.next;while(et!==s);return tt}function splitPolygon(s,o){const et=new Node$1(s.i,s.x,s.y),tt=new Node$1(o.i,o.x,o.y),nt=s.next,rt=o.prev;return s.next=o,o.prev=s,et.next=nt,nt.prev=et,tt.next=et,et.prev=tt,rt.next=tt,tt.prev=rt,tt}function insertNode(s,o,et,tt){const nt=new Node$1(s,o,et);return tt?(nt.next=tt.next,nt.prev=tt,tt.next.prev=nt,tt.next=nt):(nt.prev=nt,nt.next=nt),nt}function removeNode(s){s.next.prev=s.prev,s.prev.next=s.next,s.prevZ&&(s.prevZ.nextZ=s.nextZ),s.nextZ&&(s.nextZ.prevZ=s.prevZ)}function Node$1(s,o,et){this.i=s,this.x=o,this.y=et,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function signedArea(s,o,et,tt){let nt=0;for(let rt=o,it=et-tt;rt2&&s[o-1].equals(s[0])&&s.pop()}function addContour(s,o){for(let et=0;etNumber.EPSILON){const Pn=Math.sqrt(wn),$n=Math.sqrt(gn*gn+hn*hn),Tr=on.x-On/Pn,Qr=on.y+Un/Pn,_r=Xt.x-hn/$n,Ir=Xt.y+gn/$n,Wr=((_r-Tr)*hn-(Ir-Qr)*gn)/(Un*hn-On*gn);dn=Tr+Un*Wr-qt.x,_n=Qr+On*Wr-qt.y;const qr=dn*dn+_n*_n;if(qr<=2)return new Vector2(dn,_n);Fn=Math.sqrt(qr/2)}else{let Pn=!1;Un>Number.EPSILON?gn>Number.EPSILON&&(Pn=!0):Un<-Number.EPSILON?gn<-Number.EPSILON&&(Pn=!0):Math.sign(On)===Math.sign(hn)&&(Pn=!0),Pn?(dn=-On,_n=Un,Fn=Math.sqrt(wn)):(dn=Un,_n=On,Fn=Math.sqrt(wn/2))}return new Vector2(dn/Fn,_n/Fn)}const Dt=[];for(let qt=0,on=Ct.length,Xt=on-1,dn=qt+1;qt=0;qt--){const on=qt/ft,Xt=ht*Math.cos(on*Math.PI/2),dn=ct*Math.sin(on*Math.PI/2)+pt;for(let _n=0,Fn=Ct.length;_n=0;){const dn=Xt;let _n=Xt-1;_n<0&&(_n=qt.length-1);for(let Fn=0,Un=lt+ft*2;Fn0)&&ht.push(Ut,Ft,vt),(gt!==tt-1||st0!=o>0&&this.version++,this._anisotropy=o}get clearcoat(){return this._clearcoat}set clearcoat(o){this._clearcoat>0!=o>0&&this.version++,this._clearcoat=o}get iridescence(){return this._iridescence}set iridescence(o){this._iridescence>0!=o>0&&this.version++,this._iridescence=o}get dispersion(){return this._dispersion}set dispersion(o){this._dispersion>0!=o>0&&this.version++,this._dispersion=o}get sheen(){return this._sheen}set sheen(o){this._sheen>0!=o>0&&this.version++,this._sheen=o}get transmission(){return this._transmission}set transmission(o){this._transmission>0!=o>0&&this.version++,this._transmission=o}copy(o){return super.copy(o),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=o.anisotropy,this.anisotropyRotation=o.anisotropyRotation,this.anisotropyMap=o.anisotropyMap,this.clearcoat=o.clearcoat,this.clearcoatMap=o.clearcoatMap,this.clearcoatRoughness=o.clearcoatRoughness,this.clearcoatRoughnessMap=o.clearcoatRoughnessMap,this.clearcoatNormalMap=o.clearcoatNormalMap,this.clearcoatNormalScale.copy(o.clearcoatNormalScale),this.dispersion=o.dispersion,this.ior=o.ior,this.iridescence=o.iridescence,this.iridescenceMap=o.iridescenceMap,this.iridescenceIOR=o.iridescenceIOR,this.iridescenceThicknessRange=[...o.iridescenceThicknessRange],this.iridescenceThicknessMap=o.iridescenceThicknessMap,this.sheen=o.sheen,this.sheenColor.copy(o.sheenColor),this.sheenColorMap=o.sheenColorMap,this.sheenRoughness=o.sheenRoughness,this.sheenRoughnessMap=o.sheenRoughnessMap,this.transmission=o.transmission,this.transmissionMap=o.transmissionMap,this.thickness=o.thickness,this.thicknessMap=o.thicknessMap,this.attenuationDistance=o.attenuationDistance,this.attenuationColor.copy(o.attenuationColor),this.specularIntensity=o.specularIntensity,this.specularIntensityMap=o.specularIntensityMap,this.specularColor.copy(o.specularColor),this.specularColorMap=o.specularColorMap,this}}class MeshPhongMaterial extends Material{constructor(o){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Color$2(16777215),this.specular=new Color$2(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$2(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.specular.copy(o.specular),this.shininess=o.shininess,this.map=o.map,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.emissive.copy(o.emissive),this.emissiveMap=o.emissiveMap,this.emissiveIntensity=o.emissiveIntensity,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.specularMap=o.specularMap,this.alphaMap=o.alphaMap,this.envMap=o.envMap,this.envMapRotation.copy(o.envMapRotation),this.combine=o.combine,this.reflectivity=o.reflectivity,this.refractionRatio=o.refractionRatio,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.flatShading=o.flatShading,this.fog=o.fog,this}}class MeshToonMaterial extends Material{constructor(o){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Color$2(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$2(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.map=o.map,this.gradientMap=o.gradientMap,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.emissive.copy(o.emissive),this.emissiveMap=o.emissiveMap,this.emissiveIntensity=o.emissiveIntensity,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.alphaMap=o.alphaMap,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.fog=o.fog,this}}class MeshNormalMaterial extends Material{constructor(o){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(o)}copy(o){return super.copy(o),this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.flatShading=o.flatShading,this}}class MeshLambertMaterial extends Material{constructor(o){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Color$2(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$2(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.map=o.map,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.emissive.copy(o.emissive),this.emissiveMap=o.emissiveMap,this.emissiveIntensity=o.emissiveIntensity,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.specularMap=o.specularMap,this.alphaMap=o.alphaMap,this.envMap=o.envMap,this.envMapRotation.copy(o.envMapRotation),this.combine=o.combine,this.reflectivity=o.reflectivity,this.refractionRatio=o.refractionRatio,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.flatShading=o.flatShading,this.fog=o.fog,this}}class MeshMatcapMaterial extends Material{constructor(o){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Color$2(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.defines={MATCAP:""},this.color.copy(o.color),this.matcap=o.matcap,this.map=o.map,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.alphaMap=o.alphaMap,this.flatShading=o.flatShading,this.fog=o.fog,this}}class LineDashedMaterial extends LineBasicMaterial{constructor(o){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(o)}copy(o){return super.copy(o),this.scale=o.scale,this.dashSize=o.dashSize,this.gapSize=o.gapSize,this}}function convertArray(s,o,et){return!s||!et&&s.constructor===o?s:typeof o.BYTES_PER_ELEMENT=="number"?new o(s):Array.prototype.slice.call(s)}function isTypedArray(s){return ArrayBuffer.isView(s)&&!(s instanceof DataView)}function getKeyframeOrder(s){function o(nt,rt){return s[nt]-s[rt]}const et=s.length,tt=new Array(et);for(let nt=0;nt!==et;++nt)tt[nt]=nt;return tt.sort(o),tt}function sortedArray(s,o,et){const tt=s.length,nt=new s.constructor(tt);for(let rt=0,it=0;it!==tt;++rt){const ot=et[rt]*o;for(let st=0;st!==o;++st)nt[it++]=s[ot+st]}return nt}function flattenJSON(s,o,et,tt){let nt=1,rt=s[0];for(;rt!==void 0&&rt[tt]===void 0;)rt=s[nt++];if(rt===void 0)return;let it=rt[tt];if(it!==void 0)if(Array.isArray(it))do it=rt[tt],it!==void 0&&(o.push(rt.time),et.push.apply(et,it)),rt=s[nt++];while(rt!==void 0);else if(it.toArray!==void 0)do it=rt[tt],it!==void 0&&(o.push(rt.time),it.toArray(et,et.length)),rt=s[nt++];while(rt!==void 0);else do it=rt[tt],it!==void 0&&(o.push(rt.time),et.push(it)),rt=s[nt++];while(rt!==void 0)}function subclip(s,o,et,tt,nt=30){const rt=s.clone();rt.name=o;const it=[];for(let st=0;st=tt)){ut.push(at.times[ht]);for(let pt=0;ptrt.tracks[st].times[0]&&(ot=rt.tracks[st].times[0]);for(let st=0;st=ot.times[ct]){const gt=ct*ut+lt,yt=gt+ut-lt;pt=ot.values.slice(gt,yt)}else{const gt=ot.createInterpolant(),yt=lt,Ut=ut-lt;gt.evaluate(rt),pt=gt.resultBuffer.slice(yt,Ut)}st==="quaternion"&&new Quaternion().fromArray(pt).normalize().conjugate().toArray(pt);const ft=at.times.length;for(let gt=0;gt=rt)){const ot=et[1];o=rt)break t}it=tt,tt=0;break n}break e}for(;tt>>1;oet;)--it;if(++it,rt!==0||it!==nt){rt>=it&&(it=Math.max(it,1),rt=it-1);const ot=this.getValueSize();this.times=tt.slice(rt,it),this.values=this.values.slice(rt*ot,it*ot)}return this}validate(){let o=!0;const et=this.getValueSize();et-Math.floor(et)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),o=!1);const tt=this.times,nt=this.values,rt=tt.length;rt===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),o=!1);let it=null;for(let ot=0;ot!==rt;ot++){const st=tt[ot];if(typeof st=="number"&&isNaN(st)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,ot,st),o=!1;break}if(it!==null&&it>st){console.error("THREE.KeyframeTrack: Out of order keys.",this,ot,st,it),o=!1;break}it=st}if(nt!==void 0&&isTypedArray(nt))for(let ot=0,st=nt.length;ot!==st;++ot){const at=nt[ot];if(isNaN(at)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,ot,at),o=!1;break}}return o}optimize(){const o=this.times.slice(),et=this.values.slice(),tt=this.getValueSize(),nt=this.getInterpolation()===InterpolateSmooth,rt=o.length-1;let it=1;for(let ot=1;ot0){o[it]=o[rt];for(let ot=rt*tt,st=it*tt,at=0;at!==tt;++at)et[st+at]=et[ot+at];++it}return it!==o.length?(this.times=o.slice(0,it),this.values=et.slice(0,it*tt)):(this.times=o,this.values=et),this}clone(){const o=this.times.slice(),et=this.values.slice(),tt=this.constructor,nt=new tt(this.name,o,et);return nt.createInterpolant=this.createInterpolant,nt}}KeyframeTrack.prototype.TimeBufferType=Float32Array;KeyframeTrack.prototype.ValueBufferType=Float32Array;KeyframeTrack.prototype.DefaultInterpolation=InterpolateLinear;class BooleanKeyframeTrack extends KeyframeTrack{constructor(o,et,tt){super(o,et,tt)}}BooleanKeyframeTrack.prototype.ValueTypeName="bool";BooleanKeyframeTrack.prototype.ValueBufferType=Array;BooleanKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class ColorKeyframeTrack extends KeyframeTrack{}ColorKeyframeTrack.prototype.ValueTypeName="color";class NumberKeyframeTrack extends KeyframeTrack{}NumberKeyframeTrack.prototype.ValueTypeName="number";class QuaternionLinearInterpolant extends Interpolant{constructor(o,et,tt,nt){super(o,et,tt,nt)}interpolate_(o,et,tt,nt){const rt=this.resultBuffer,it=this.sampleValues,ot=this.valueSize,st=(tt-et)/(nt-et);let at=o*ot;for(let lt=at+ot;at!==lt;at+=4)Quaternion.slerpFlat(rt,0,it,at-ot,it,at,st);return rt}}class QuaternionKeyframeTrack extends KeyframeTrack{InterpolantFactoryMethodLinear(o){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),o)}}QuaternionKeyframeTrack.prototype.ValueTypeName="quaternion";QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class StringKeyframeTrack extends KeyframeTrack{constructor(o,et,tt){super(o,et,tt)}}StringKeyframeTrack.prototype.ValueTypeName="string";StringKeyframeTrack.prototype.ValueBufferType=Array;StringKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class VectorKeyframeTrack extends KeyframeTrack{}VectorKeyframeTrack.prototype.ValueTypeName="vector";class AnimationClip{constructor(o="",et=-1,tt=[],nt=NormalAnimationBlendMode){this.name=o,this.tracks=tt,this.duration=et,this.blendMode=nt,this.uuid=generateUUID(),this.duration<0&&this.resetDuration()}static parse(o){const et=[],tt=o.tracks,nt=1/(o.fps||1);for(let it=0,ot=tt.length;it!==ot;++it)et.push(parseKeyframeTrack(tt[it]).scale(nt));const rt=new this(o.name,o.duration,et,o.blendMode);return rt.uuid=o.uuid,rt}static toJSON(o){const et=[],tt=o.tracks,nt={name:o.name,duration:o.duration,tracks:et,uuid:o.uuid,blendMode:o.blendMode};for(let rt=0,it=tt.length;rt!==it;++rt)et.push(KeyframeTrack.toJSON(tt[rt]));return nt}static CreateFromMorphTargetSequence(o,et,tt,nt){const rt=et.length,it=[];for(let ot=0;ot1){const ut=lt[1];let dt=nt[ut];dt||(nt[ut]=dt=[]),dt.push(at)}}const it=[];for(const ot in nt)it.push(this.CreateFromMorphTargetSequence(ot,nt[ot],et,tt));return it}static parseAnimation(o,et){if(!o)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const tt=function(ut,dt,ht,ct,pt){if(ht.length!==0){const ft=[],gt=[];flattenJSON(ht,ft,gt,ct),ft.length!==0&&pt.push(new ut(dt,ft,gt))}},nt=[],rt=o.name||"default",it=o.fps||30,ot=o.blendMode;let st=o.length||-1;const at=o.hierarchy||[];for(let ut=0;ut{et&&et(rt),this.manager.itemEnd(o)},0),rt;if(loading[o]!==void 0){loading[o].push({onLoad:et,onProgress:tt,onError:nt});return}loading[o]=[],loading[o].push({onLoad:et,onProgress:tt,onError:nt});const it=new Request(o,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),ot=this.mimeType,st=this.responseType;fetch(it).then(at=>{if(at.status===200||at.status===0){if(at.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||at.body===void 0||at.body.getReader===void 0)return at;const lt=loading[o],ut=at.body.getReader(),dt=at.headers.get("X-File-Size")||at.headers.get("Content-Length"),ht=dt?parseInt(dt):0,ct=ht!==0;let pt=0;const ft=new ReadableStream({start(gt){yt();function yt(){ut.read().then(({done:Ut,value:Ft})=>{if(Ut)gt.close();else{pt+=Ft.byteLength;const mt=new ProgressEvent("progress",{lengthComputable:ct,loaded:pt,total:ht});for(let vt=0,At=lt.length;vt{gt.error(Ut)})}}});return new Response(ft)}else throw new HttpError(`fetch for "${at.url}" responded with ${at.status}: ${at.statusText}`,at)}).then(at=>{switch(st){case"arraybuffer":return at.arrayBuffer();case"blob":return at.blob();case"document":return at.text().then(lt=>new DOMParser().parseFromString(lt,ot));case"json":return at.json();default:if(ot===void 0)return at.text();{const ut=/charset="?([^;"\s]*)"?/i.exec(ot),dt=ut&&ut[1]?ut[1].toLowerCase():void 0,ht=new TextDecoder(dt);return at.arrayBuffer().then(ct=>ht.decode(ct))}}}).then(at=>{Cache.add(o,at);const lt=loading[o];delete loading[o];for(let ut=0,dt=lt.length;ut{const lt=loading[o];if(lt===void 0)throw this.manager.itemError(o),at;delete loading[o];for(let ut=0,dt=lt.length;ut{this.manager.itemEnd(o)}),this.manager.itemStart(o)}setResponseType(o){return this.responseType=o,this}setMimeType(o){return this.mimeType=o,this}}class AnimationLoader extends Loader{constructor(o){super(o)}load(o,et,tt,nt){const rt=this,it=new FileLoader(this.manager);it.setPath(this.path),it.setRequestHeader(this.requestHeader),it.setWithCredentials(this.withCredentials),it.load(o,function(ot){try{et(rt.parse(JSON.parse(ot)))}catch(st){nt?nt(st):console.error(st),rt.manager.itemError(o)}},tt,nt)}parse(o){const et=[];for(let tt=0;tt0:nt.vertexColors=o.vertexColors),o.uniforms!==void 0)for(const rt in o.uniforms){const it=o.uniforms[rt];switch(nt.uniforms[rt]={},it.type){case"t":nt.uniforms[rt].value=tt(it.value);break;case"c":nt.uniforms[rt].value=new Color$2().setHex(it.value);break;case"v2":nt.uniforms[rt].value=new Vector2().fromArray(it.value);break;case"v3":nt.uniforms[rt].value=new Vector3().fromArray(it.value);break;case"v4":nt.uniforms[rt].value=new Vector4().fromArray(it.value);break;case"m3":nt.uniforms[rt].value=new Matrix3().fromArray(it.value);break;case"m4":nt.uniforms[rt].value=new Matrix4().fromArray(it.value);break;default:nt.uniforms[rt].value=it.value}}if(o.defines!==void 0&&(nt.defines=o.defines),o.vertexShader!==void 0&&(nt.vertexShader=o.vertexShader),o.fragmentShader!==void 0&&(nt.fragmentShader=o.fragmentShader),o.glslVersion!==void 0&&(nt.glslVersion=o.glslVersion),o.extensions!==void 0)for(const rt in o.extensions)nt.extensions[rt]=o.extensions[rt];if(o.lights!==void 0&&(nt.lights=o.lights),o.clipping!==void 0&&(nt.clipping=o.clipping),o.size!==void 0&&(nt.size=o.size),o.sizeAttenuation!==void 0&&(nt.sizeAttenuation=o.sizeAttenuation),o.map!==void 0&&(nt.map=tt(o.map)),o.matcap!==void 0&&(nt.matcap=tt(o.matcap)),o.alphaMap!==void 0&&(nt.alphaMap=tt(o.alphaMap)),o.bumpMap!==void 0&&(nt.bumpMap=tt(o.bumpMap)),o.bumpScale!==void 0&&(nt.bumpScale=o.bumpScale),o.normalMap!==void 0&&(nt.normalMap=tt(o.normalMap)),o.normalMapType!==void 0&&(nt.normalMapType=o.normalMapType),o.normalScale!==void 0){let rt=o.normalScale;Array.isArray(rt)===!1&&(rt=[rt,rt]),nt.normalScale=new Vector2().fromArray(rt)}return o.displacementMap!==void 0&&(nt.displacementMap=tt(o.displacementMap)),o.displacementScale!==void 0&&(nt.displacementScale=o.displacementScale),o.displacementBias!==void 0&&(nt.displacementBias=o.displacementBias),o.roughnessMap!==void 0&&(nt.roughnessMap=tt(o.roughnessMap)),o.metalnessMap!==void 0&&(nt.metalnessMap=tt(o.metalnessMap)),o.emissiveMap!==void 0&&(nt.emissiveMap=tt(o.emissiveMap)),o.emissiveIntensity!==void 0&&(nt.emissiveIntensity=o.emissiveIntensity),o.specularMap!==void 0&&(nt.specularMap=tt(o.specularMap)),o.specularIntensityMap!==void 0&&(nt.specularIntensityMap=tt(o.specularIntensityMap)),o.specularColorMap!==void 0&&(nt.specularColorMap=tt(o.specularColorMap)),o.envMap!==void 0&&(nt.envMap=tt(o.envMap)),o.envMapRotation!==void 0&&nt.envMapRotation.fromArray(o.envMapRotation),o.envMapIntensity!==void 0&&(nt.envMapIntensity=o.envMapIntensity),o.reflectivity!==void 0&&(nt.reflectivity=o.reflectivity),o.refractionRatio!==void 0&&(nt.refractionRatio=o.refractionRatio),o.lightMap!==void 0&&(nt.lightMap=tt(o.lightMap)),o.lightMapIntensity!==void 0&&(nt.lightMapIntensity=o.lightMapIntensity),o.aoMap!==void 0&&(nt.aoMap=tt(o.aoMap)),o.aoMapIntensity!==void 0&&(nt.aoMapIntensity=o.aoMapIntensity),o.gradientMap!==void 0&&(nt.gradientMap=tt(o.gradientMap)),o.clearcoatMap!==void 0&&(nt.clearcoatMap=tt(o.clearcoatMap)),o.clearcoatRoughnessMap!==void 0&&(nt.clearcoatRoughnessMap=tt(o.clearcoatRoughnessMap)),o.clearcoatNormalMap!==void 0&&(nt.clearcoatNormalMap=tt(o.clearcoatNormalMap)),o.clearcoatNormalScale!==void 0&&(nt.clearcoatNormalScale=new Vector2().fromArray(o.clearcoatNormalScale)),o.iridescenceMap!==void 0&&(nt.iridescenceMap=tt(o.iridescenceMap)),o.iridescenceThicknessMap!==void 0&&(nt.iridescenceThicknessMap=tt(o.iridescenceThicknessMap)),o.transmissionMap!==void 0&&(nt.transmissionMap=tt(o.transmissionMap)),o.thicknessMap!==void 0&&(nt.thicknessMap=tt(o.thicknessMap)),o.anisotropyMap!==void 0&&(nt.anisotropyMap=tt(o.anisotropyMap)),o.sheenColorMap!==void 0&&(nt.sheenColorMap=tt(o.sheenColorMap)),o.sheenRoughnessMap!==void 0&&(nt.sheenRoughnessMap=tt(o.sheenRoughnessMap)),nt}setTextures(o){return this.textures=o,this}static createMaterialFromType(o){const et={ShadowMaterial,SpriteMaterial,RawShaderMaterial,ShaderMaterial,PointsMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshPhongMaterial,MeshToonMaterial,MeshNormalMaterial,MeshLambertMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshBasicMaterial,MeshMatcapMaterial,LineDashedMaterial,LineBasicMaterial,Material};return new et[o]}}class LoaderUtils{static decodeText(o){if(console.warn("THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead."),typeof TextDecoder<"u")return new TextDecoder().decode(o);let et="";for(let tt=0,nt=o.length;tt0){const st=new LoadingManager(et);rt=new ImageLoader(st),rt.setCrossOrigin(this.crossOrigin);for(let at=0,lt=o.length;at0){nt=new ImageLoader(this.manager),nt.setCrossOrigin(this.crossOrigin);for(let it=0,ot=o.length;it{const ft=new Box3;ft.min.fromArray(pt.boxMin),ft.max.fromArray(pt.boxMax);const gt=new Sphere$1;return gt.radius=pt.sphereRadius,gt.center.fromArray(pt.sphereCenter),{boxInitialized:pt.boxInitialized,box:ft,sphereInitialized:pt.sphereInitialized,sphere:gt}}),it._maxGeometryCount=o.maxGeometryCount,it._maxVertexCount=o.maxVertexCount,it._maxIndexCount=o.maxIndexCount,it._geometryInitialized=o.geometryInitialized,it._geometryCount=o.geometryCount,it._matricesTexture=at(o.matricesTexture.uuid),o.colorsTexture!==void 0&&(it._colorsTexture=at(o.colorsTexture.uuid));break;case"LOD":it=new LOD;break;case"Line":it=new Line$1(ot(o.geometry),st(o.material));break;case"LineLoop":it=new LineLoop(ot(o.geometry),st(o.material));break;case"LineSegments":it=new LineSegments(ot(o.geometry),st(o.material));break;case"PointCloud":case"Points":it=new Points(ot(o.geometry),st(o.material));break;case"Sprite":it=new Sprite(st(o.material));break;case"Group":it=new Group;break;case"Bone":it=new Bone;break;default:it=new Object3D}if(it.uuid=o.uuid,o.name!==void 0&&(it.name=o.name),o.matrix!==void 0?(it.matrix.fromArray(o.matrix),o.matrixAutoUpdate!==void 0&&(it.matrixAutoUpdate=o.matrixAutoUpdate),it.matrixAutoUpdate&&it.matrix.decompose(it.position,it.quaternion,it.scale)):(o.position!==void 0&&it.position.fromArray(o.position),o.rotation!==void 0&&it.rotation.fromArray(o.rotation),o.quaternion!==void 0&&it.quaternion.fromArray(o.quaternion),o.scale!==void 0&&it.scale.fromArray(o.scale)),o.up!==void 0&&it.up.fromArray(o.up),o.castShadow!==void 0&&(it.castShadow=o.castShadow),o.receiveShadow!==void 0&&(it.receiveShadow=o.receiveShadow),o.shadow&&(o.shadow.bias!==void 0&&(it.shadow.bias=o.shadow.bias),o.shadow.normalBias!==void 0&&(it.shadow.normalBias=o.shadow.normalBias),o.shadow.radius!==void 0&&(it.shadow.radius=o.shadow.radius),o.shadow.mapSize!==void 0&&it.shadow.mapSize.fromArray(o.shadow.mapSize),o.shadow.camera!==void 0&&(it.shadow.camera=this.parseObject(o.shadow.camera))),o.visible!==void 0&&(it.visible=o.visible),o.frustumCulled!==void 0&&(it.frustumCulled=o.frustumCulled),o.renderOrder!==void 0&&(it.renderOrder=o.renderOrder),o.userData!==void 0&&(it.userData=o.userData),o.layers!==void 0&&(it.layers.mask=o.layers),o.children!==void 0){const dt=o.children;for(let ht=0;ht"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(o){return this.options=o,this}load(o,et,tt,nt){o===void 0&&(o=""),this.path!==void 0&&(o=this.path+o),o=this.manager.resolveURL(o);const rt=this,it=Cache.get(o);if(it!==void 0){if(rt.manager.itemStart(o),it.then){it.then(at=>{et&&et(at),rt.manager.itemEnd(o)}).catch(at=>{nt&&nt(at)});return}return setTimeout(function(){et&&et(it),rt.manager.itemEnd(o)},0),it}const ot={};ot.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",ot.headers=this.requestHeader;const st=fetch(o,ot).then(function(at){return at.blob()}).then(function(at){return createImageBitmap(at,Object.assign(rt.options,{colorSpaceConversion:"none"}))}).then(function(at){return Cache.add(o,at),et&&et(at),rt.manager.itemEnd(o),at}).catch(function(at){nt&&nt(at),Cache.remove(o),rt.manager.itemError(o),rt.manager.itemEnd(o)});Cache.add(o,st),rt.manager.itemStart(o)}}let _context;class AudioContext{static getContext(){return _context===void 0&&(_context=new(window.AudioContext||window.webkitAudioContext)),_context}static setContext(o){_context=o}}class AudioLoader extends Loader{constructor(o){super(o)}load(o,et,tt,nt){const rt=this,it=new FileLoader(this.manager);it.setResponseType("arraybuffer"),it.setPath(this.path),it.setRequestHeader(this.requestHeader),it.setWithCredentials(this.withCredentials),it.load(o,function(st){try{const at=st.slice(0);AudioContext.getContext().decodeAudioData(at,function(ut){et(ut)}).catch(ot)}catch(at){ot(at)}},tt,nt);function ot(st){nt?nt(st):console.error(st),rt.manager.itemError(o)}}}const _eyeRight=new Matrix4,_eyeLeft=new Matrix4,_projectionMatrix=new Matrix4;class StereoCamera{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new PerspectiveCamera$1,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new PerspectiveCamera$1,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(o){const et=this._cache;if(et.focus!==o.focus||et.fov!==o.fov||et.aspect!==o.aspect*this.aspect||et.near!==o.near||et.far!==o.far||et.zoom!==o.zoom||et.eyeSep!==this.eyeSep){et.focus=o.focus,et.fov=o.fov,et.aspect=o.aspect*this.aspect,et.near=o.near,et.far=o.far,et.zoom=o.zoom,et.eyeSep=this.eyeSep,_projectionMatrix.copy(o.projectionMatrix);const nt=et.eyeSep/2,rt=nt*et.near/et.focus,it=et.near*Math.tan(DEG2RAD$1*et.fov*.5)/et.zoom;let ot,st;_eyeLeft.elements[12]=-nt,_eyeRight.elements[12]=nt,ot=-it*et.aspect+rt,st=it*et.aspect+rt,_projectionMatrix.elements[0]=2*et.near/(st-ot),_projectionMatrix.elements[8]=(st+ot)/(st-ot),this.cameraL.projectionMatrix.copy(_projectionMatrix),ot=-it*et.aspect-rt,st=it*et.aspect-rt,_projectionMatrix.elements[0]=2*et.near/(st-ot),_projectionMatrix.elements[8]=(st+ot)/(st-ot),this.cameraR.projectionMatrix.copy(_projectionMatrix)}this.cameraL.matrixWorld.copy(o.matrixWorld).multiply(_eyeLeft),this.cameraR.matrixWorld.copy(o.matrixWorld).multiply(_eyeRight)}}class Clock{constructor(o=!0){this.autoStart=o,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let o=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const et=now();o=(et-this.oldTime)/1e3,this.oldTime=et,this.elapsedTime+=o}return o}}function now(){return(typeof performance>"u"?Date:performance).now()}const _position$1=new Vector3,_quaternion$1=new Quaternion,_scale$1=new Vector3,_orientation$1=new Vector3;class AudioListener extends Object3D{constructor(){super(),this.type="AudioListener",this.context=AudioContext.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Clock}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(o){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=o,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(o){return this.gain.gain.setTargetAtTime(o,this.context.currentTime,.01),this}updateMatrixWorld(o){super.updateMatrixWorld(o);const et=this.context.listener,tt=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(_position$1,_quaternion$1,_scale$1),_orientation$1.set(0,0,-1).applyQuaternion(_quaternion$1),et.positionX){const nt=this.context.currentTime+this.timeDelta;et.positionX.linearRampToValueAtTime(_position$1.x,nt),et.positionY.linearRampToValueAtTime(_position$1.y,nt),et.positionZ.linearRampToValueAtTime(_position$1.z,nt),et.forwardX.linearRampToValueAtTime(_orientation$1.x,nt),et.forwardY.linearRampToValueAtTime(_orientation$1.y,nt),et.forwardZ.linearRampToValueAtTime(_orientation$1.z,nt),et.upX.linearRampToValueAtTime(tt.x,nt),et.upY.linearRampToValueAtTime(tt.y,nt),et.upZ.linearRampToValueAtTime(tt.z,nt)}else et.setPosition(_position$1.x,_position$1.y,_position$1.z),et.setOrientation(_orientation$1.x,_orientation$1.y,_orientation$1.z,tt.x,tt.y,tt.z)}}class Audio extends Object3D{constructor(o){super(),this.type="Audio",this.listener=o,this.context=o.context,this.gain=this.context.createGain(),this.gain.connect(o.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(o){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=o,this.connect(),this}setMediaElementSource(o){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(o),this.connect(),this}setMediaStreamSource(o){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(o),this.connect(),this}setBuffer(o){return this.buffer=o,this.sourceType="buffer",this.autoplay&&this.play(),this}play(o=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+o;const et=this.context.createBufferSource();return et.buffer=this.buffer,et.loop=this.loop,et.loopStart=this.loopStart,et.loopEnd=this.loopEnd,et.onended=this.onEnded.bind(this),et.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=et,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let o=1,et=this.filters.length;o0){this.source.disconnect(this.filters[0]);for(let o=1,et=this.filters.length;o0&&this._mixBufferRegionAdditive(tt,nt,this._addIndex*et,1,et);for(let st=et,at=et+et;st!==at;++st)if(tt[st]!==tt[st+et]){ot.setValue(tt,nt);break}}saveOriginalState(){const o=this.binding,et=this.buffer,tt=this.valueSize,nt=tt*this._origIndex;o.getValue(et,nt);for(let rt=tt,it=nt;rt!==it;++rt)et[rt]=et[nt+rt%tt];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const o=this.valueSize*3;this.binding.setValue(this.buffer,o)}_setAdditiveIdentityNumeric(){const o=this._addIndex*this.valueSize,et=o+this.valueSize;for(let tt=o;tt=.5)for(let it=0;it!==rt;++it)o[et+it]=o[tt+it]}_slerp(o,et,tt,nt){Quaternion.slerpFlat(o,et,o,et,o,tt,nt)}_slerpAdditive(o,et,tt,nt,rt){const it=this._workIndex*rt;Quaternion.multiplyQuaternionsFlat(o,it,o,et,o,tt),Quaternion.slerpFlat(o,et,o,et,o,it,nt)}_lerp(o,et,tt,nt,rt){const it=1-nt;for(let ot=0;ot!==rt;++ot){const st=et+ot;o[st]=o[st]*it+o[tt+ot]*nt}}_lerpAdditive(o,et,tt,nt,rt){for(let it=0;it!==rt;++it){const ot=et+it;o[ot]=o[ot]+o[tt+it]*nt}}}const _RESERVED_CHARS_RE="\\[\\]\\.:\\/",_reservedRe=new RegExp("["+_RESERVED_CHARS_RE+"]","g"),_wordChar="[^"+_RESERVED_CHARS_RE+"]",_wordCharOrDot="[^"+_RESERVED_CHARS_RE.replace("\\.","")+"]",_directoryRe=/((?:WC+[\/:])*)/.source.replace("WC",_wordChar),_nodeRe=/(WCOD+)?/.source.replace("WCOD",_wordCharOrDot),_objectRe=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",_wordChar),_propertyRe=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",_wordChar),_trackRe=new RegExp("^"+_directoryRe+_nodeRe+_objectRe+_propertyRe+"$"),_supportedObjectNames=["material","materials","bones","map"];class Composite{constructor(o,et,tt){const nt=tt||PropertyBinding.parseTrackName(et);this._targetGroup=o,this._bindings=o.subscribe_(et,nt)}getValue(o,et){this.bind();const tt=this._targetGroup.nCachedObjects_,nt=this._bindings[tt];nt!==void 0&&nt.getValue(o,et)}setValue(o,et){const tt=this._bindings;for(let nt=this._targetGroup.nCachedObjects_,rt=tt.length;nt!==rt;++nt)tt[nt].setValue(o,et)}bind(){const o=this._bindings;for(let et=this._targetGroup.nCachedObjects_,tt=o.length;et!==tt;++et)o[et].bind()}unbind(){const o=this._bindings;for(let et=this._targetGroup.nCachedObjects_,tt=o.length;et!==tt;++et)o[et].unbind()}}class PropertyBinding{constructor(o,et,tt){this.path=et,this.parsedPath=tt||PropertyBinding.parseTrackName(et),this.node=PropertyBinding.findNode(o,this.parsedPath.nodeName),this.rootNode=o,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(o,et,tt){return o&&o.isAnimationObjectGroup?new PropertyBinding.Composite(o,et,tt):new PropertyBinding(o,et,tt)}static sanitizeNodeName(o){return o.replace(/\s/g,"_").replace(_reservedRe,"")}static parseTrackName(o){const et=_trackRe.exec(o);if(et===null)throw new Error("PropertyBinding: Cannot parse trackName: "+o);const tt={nodeName:et[2],objectName:et[3],objectIndex:et[4],propertyName:et[5],propertyIndex:et[6]},nt=tt.nodeName&&tt.nodeName.lastIndexOf(".");if(nt!==void 0&&nt!==-1){const rt=tt.nodeName.substring(nt+1);_supportedObjectNames.indexOf(rt)!==-1&&(tt.nodeName=tt.nodeName.substring(0,nt),tt.objectName=rt)}if(tt.propertyName===null||tt.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+o);return tt}static findNode(o,et){if(et===void 0||et===""||et==="."||et===-1||et===o.name||et===o.uuid)return o;if(o.skeleton){const tt=o.skeleton.getBoneByName(et);if(tt!==void 0)return tt}if(o.children){const tt=function(rt){for(let it=0;it=rt){const ut=rt++,dt=o[ut];et[dt.uuid]=lt,o[lt]=dt,et[at]=ut,o[ut]=st;for(let ht=0,ct=nt;ht!==ct;++ht){const pt=tt[ht],ft=pt[ut],gt=pt[lt];pt[lt]=ft,pt[ut]=gt}}}this.nCachedObjects_=rt}uncache(){const o=this._objects,et=this._indicesByUUID,tt=this._bindings,nt=tt.length;let rt=this.nCachedObjects_,it=o.length;for(let ot=0,st=arguments.length;ot!==st;++ot){const at=arguments[ot],lt=at.uuid,ut=et[lt];if(ut!==void 0)if(delete et[lt],ut0&&(et[ht.uuid]=ut),o[ut]=ht,o.pop();for(let ct=0,pt=nt;ct!==pt;++ct){const ft=tt[ct];ft[ut]=ft[dt],ft.pop()}}}this.nCachedObjects_=rt}subscribe_(o,et){const tt=this._bindingsIndicesByPath;let nt=tt[o];const rt=this._bindings;if(nt!==void 0)return rt[nt];const it=this._paths,ot=this._parsedPaths,st=this._objects,at=st.length,lt=this.nCachedObjects_,ut=new Array(at);nt=rt.length,tt[o]=nt,it.push(o),ot.push(et),rt.push(ut);for(let dt=lt,ht=st.length;dt!==ht;++dt){const ct=st[dt];ut[dt]=new PropertyBinding(ct,o,et)}return ut}unsubscribe_(o){const et=this._bindingsIndicesByPath,tt=et[o];if(tt!==void 0){const nt=this._paths,rt=this._parsedPaths,it=this._bindings,ot=it.length-1,st=it[ot],at=o[ot];et[at]=tt,it[tt]=st,it.pop(),rt[tt]=rt[ot],rt.pop(),nt[tt]=nt[ot],nt.pop()}}}class AnimationAction{constructor(o,et,tt=null,nt=et.blendMode){this._mixer=o,this._clip=et,this._localRoot=tt,this.blendMode=nt;const rt=et.tracks,it=rt.length,ot=new Array(it),st={endingStart:ZeroCurvatureEnding,endingEnd:ZeroCurvatureEnding};for(let at=0;at!==it;++at){const lt=rt[at].createInterpolant(null);ot[at]=lt,lt.settings=st}this._interpolantSettings=st,this._interpolants=ot,this._propertyBindings=new Array(it),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=LoopRepeat,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(o){return this._startTime=o,this}setLoop(o,et){return this.loop=o,this.repetitions=et,this}setEffectiveWeight(o){return this.weight=o,this._effectiveWeight=this.enabled?o:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(o){return this._scheduleFading(o,0,1)}fadeOut(o){return this._scheduleFading(o,1,0)}crossFadeFrom(o,et,tt){if(o.fadeOut(et),this.fadeIn(et),tt){const nt=this._clip.duration,rt=o._clip.duration,it=rt/nt,ot=nt/rt;o.warp(1,it,et),this.warp(ot,1,et)}return this}crossFadeTo(o,et,tt){return o.crossFadeFrom(this,et,tt)}stopFading(){const o=this._weightInterpolant;return o!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(o)),this}setEffectiveTimeScale(o){return this.timeScale=o,this._effectiveTimeScale=this.paused?0:o,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(o){return this.timeScale=this._clip.duration/o,this.stopWarping()}syncWith(o){return this.time=o.time,this.timeScale=o.timeScale,this.stopWarping()}halt(o){return this.warp(this._effectiveTimeScale,0,o)}warp(o,et,tt){const nt=this._mixer,rt=nt.time,it=this.timeScale;let ot=this._timeScaleInterpolant;ot===null&&(ot=nt._lendControlInterpolant(),this._timeScaleInterpolant=ot);const st=ot.parameterPositions,at=ot.sampleValues;return st[0]=rt,st[1]=rt+tt,at[0]=o/it,at[1]=et/it,this}stopWarping(){const o=this._timeScaleInterpolant;return o!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(o)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(o,et,tt,nt){if(!this.enabled){this._updateWeight(o);return}const rt=this._startTime;if(rt!==null){const st=(o-rt)*tt;st<0||tt===0?et=0:(this._startTime=null,et=tt*st)}et*=this._updateTimeScale(o);const it=this._updateTime(et),ot=this._updateWeight(o);if(ot>0){const st=this._interpolants,at=this._propertyBindings;switch(this.blendMode){case AdditiveAnimationBlendMode:for(let lt=0,ut=st.length;lt!==ut;++lt)st[lt].evaluate(it),at[lt].accumulateAdditive(ot);break;case NormalAnimationBlendMode:default:for(let lt=0,ut=st.length;lt!==ut;++lt)st[lt].evaluate(it),at[lt].accumulate(nt,ot)}}}_updateWeight(o){let et=0;if(this.enabled){et=this.weight;const tt=this._weightInterpolant;if(tt!==null){const nt=tt.evaluate(o)[0];et*=nt,o>tt.parameterPositions[1]&&(this.stopFading(),nt===0&&(this.enabled=!1))}}return this._effectiveWeight=et,et}_updateTimeScale(o){let et=0;if(!this.paused){et=this.timeScale;const tt=this._timeScaleInterpolant;if(tt!==null){const nt=tt.evaluate(o)[0];et*=nt,o>tt.parameterPositions[1]&&(this.stopWarping(),et===0?this.paused=!0:this.timeScale=et)}}return this._effectiveTimeScale=et,et}_updateTime(o){const et=this._clip.duration,tt=this.loop;let nt=this.time+o,rt=this._loopCount;const it=tt===LoopPingPong;if(o===0)return rt===-1?nt:it&&(rt&1)===1?et-nt:nt;if(tt===LoopOnce){rt===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(nt>=et)nt=et;else if(nt<0)nt=0;else{this.time=nt;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=nt,this._mixer.dispatchEvent({type:"finished",action:this,direction:o<0?-1:1})}}else{if(rt===-1&&(o>=0?(rt=0,this._setEndings(!0,this.repetitions===0,it)):this._setEndings(this.repetitions===0,!0,it)),nt>=et||nt<0){const ot=Math.floor(nt/et);nt-=et*ot,rt+=Math.abs(ot);const st=this.repetitions-rt;if(st<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,nt=o>0?et:0,this.time=nt,this._mixer.dispatchEvent({type:"finished",action:this,direction:o>0?1:-1});else{if(st===1){const at=o<0;this._setEndings(at,!at,it)}else this._setEndings(!1,!1,it);this._loopCount=rt,this.time=nt,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:ot})}}else this.time=nt;if(it&&(rt&1)===1)return et-nt}return nt}_setEndings(o,et,tt){const nt=this._interpolantSettings;tt?(nt.endingStart=ZeroSlopeEnding,nt.endingEnd=ZeroSlopeEnding):(o?nt.endingStart=this.zeroSlopeAtStart?ZeroSlopeEnding:ZeroCurvatureEnding:nt.endingStart=WrapAroundEnding,et?nt.endingEnd=this.zeroSlopeAtEnd?ZeroSlopeEnding:ZeroCurvatureEnding:nt.endingEnd=WrapAroundEnding)}_scheduleFading(o,et,tt){const nt=this._mixer,rt=nt.time;let it=this._weightInterpolant;it===null&&(it=nt._lendControlInterpolant(),this._weightInterpolant=it);const ot=it.parameterPositions,st=it.sampleValues;return ot[0]=rt,st[0]=et,ot[1]=rt+o,st[1]=tt,this}}const _controlInterpolantsResultBuffer=new Float32Array(1);class AnimationMixer extends EventDispatcher$1{constructor(o){super(),this._root=o,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(o,et){const tt=o._localRoot||this._root,nt=o._clip.tracks,rt=nt.length,it=o._propertyBindings,ot=o._interpolants,st=tt.uuid,at=this._bindingsByRootAndName;let lt=at[st];lt===void 0&&(lt={},at[st]=lt);for(let ut=0;ut!==rt;++ut){const dt=nt[ut],ht=dt.name;let ct=lt[ht];if(ct!==void 0)++ct.referenceCount,it[ut]=ct;else{if(ct=it[ut],ct!==void 0){ct._cacheIndex===null&&(++ct.referenceCount,this._addInactiveBinding(ct,st,ht));continue}const pt=et&&et._propertyBindings[ut].binding.parsedPath;ct=new PropertyMixer(PropertyBinding.create(tt,ht,pt),dt.ValueTypeName,dt.getValueSize()),++ct.referenceCount,this._addInactiveBinding(ct,st,ht),it[ut]=ct}ot[ut].resultBuffer=ct.buffer}}_activateAction(o){if(!this._isActiveAction(o)){if(o._cacheIndex===null){const tt=(o._localRoot||this._root).uuid,nt=o._clip.uuid,rt=this._actionsByClip[nt];this._bindAction(o,rt&&rt.knownActions[0]),this._addInactiveAction(o,nt,tt)}const et=o._propertyBindings;for(let tt=0,nt=et.length;tt!==nt;++tt){const rt=et[tt];rt.useCount++===0&&(this._lendBinding(rt),rt.saveOriginalState())}this._lendAction(o)}}_deactivateAction(o){if(this._isActiveAction(o)){const et=o._propertyBindings;for(let tt=0,nt=et.length;tt!==nt;++tt){const rt=et[tt];--rt.useCount===0&&(rt.restoreOriginalState(),this._takeBackBinding(rt))}this._takeBackAction(o)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const o=this;this.stats={actions:{get total(){return o._actions.length},get inUse(){return o._nActiveActions}},bindings:{get total(){return o._bindings.length},get inUse(){return o._nActiveBindings}},controlInterpolants:{get total(){return o._controlInterpolants.length},get inUse(){return o._nActiveControlInterpolants}}}}_isActiveAction(o){const et=o._cacheIndex;return et!==null&&et=0;--tt)o[tt].stop();return this}update(o){o*=this.timeScale;const et=this._actions,tt=this._nActiveActions,nt=this.time+=o,rt=Math.sign(o),it=this._accuIndex^=1;for(let at=0;at!==tt;++at)et[at]._update(nt,o,rt,it);const ot=this._bindings,st=this._nActiveBindings;for(let at=0;at!==st;++at)ot[at].apply(it);return this}setTime(o){this.time=0;for(let et=0;etthis.max.x||o.ythis.max.y)}containsBox(o){return this.min.x<=o.min.x&&o.max.x<=this.max.x&&this.min.y<=o.min.y&&o.max.y<=this.max.y}getParameter(o,et){return et.set((o.x-this.min.x)/(this.max.x-this.min.x),(o.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(o){return!(o.max.xthis.max.x||o.max.ythis.max.y)}clampPoint(o,et){return et.copy(o).clamp(this.min,this.max)}distanceToPoint(o){return this.clampPoint(o,_vector$4).distanceTo(o)}intersect(o){return this.min.max(o.min),this.max.min(o.max),this.isEmpty()&&this.makeEmpty(),this}union(o){return this.min.min(o.min),this.max.max(o.max),this}translate(o){return this.min.add(o),this.max.add(o),this}equals(o){return o.min.equals(this.min)&&o.max.equals(this.max)}}const _startP=new Vector3,_startEnd=new Vector3;class Line3{constructor(o=new Vector3,et=new Vector3){this.start=o,this.end=et}set(o,et){return this.start.copy(o),this.end.copy(et),this}copy(o){return this.start.copy(o.start),this.end.copy(o.end),this}getCenter(o){return o.addVectors(this.start,this.end).multiplyScalar(.5)}delta(o){return o.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(o,et){return this.delta(et).multiplyScalar(o).add(this.start)}closestPointToPointParameter(o,et){_startP.subVectors(o,this.start),_startEnd.subVectors(this.end,this.start);const tt=_startEnd.dot(_startEnd);let rt=_startEnd.dot(_startP)/tt;return et&&(rt=clamp$4(rt,0,1)),rt}closestPointToPoint(o,et,tt){const nt=this.closestPointToPointParameter(o,et);return this.delta(tt).multiplyScalar(nt).add(this.start)}applyMatrix4(o){return this.start.applyMatrix4(o),this.end.applyMatrix4(o),this}equals(o){return o.start.equals(this.start)&&o.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const _vector$3=new Vector3;class SpotLightHelper extends Object3D{constructor(o,et){super(),this.light=o,this.matrixAutoUpdate=!1,this.color=et,this.type="SpotLightHelper";const tt=new BufferGeometry,nt=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let it=0,ot=1,st=32;it1)for(let ut=0;ut.99999)this.quaternion.set(0,0,0,1);else if(o.y<-.99999)this.quaternion.set(1,0,0,0);else{_axis.set(o.z,0,-o.x).normalize();const et=Math.acos(o.y);this.quaternion.setFromAxisAngle(_axis,et)}}setLength(o,et=o*.2,tt=et*.2){this.line.scale.set(1,Math.max(1e-4,o-et),1),this.line.updateMatrix(),this.cone.scale.set(tt,et,tt),this.cone.position.y=o,this.cone.updateMatrix()}setColor(o){this.line.material.color.set(o),this.cone.material.color.set(o)}copy(o){return super.copy(o,!1),this.line.copy(o.line),this.cone.copy(o.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class AxesHelper extends LineSegments{constructor(o=1){const et=[0,0,0,o,0,0,0,0,0,0,o,0,0,0,0,0,0,o],tt=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],nt=new BufferGeometry;nt.setAttribute("position",new Float32BufferAttribute(et,3)),nt.setAttribute("color",new Float32BufferAttribute(tt,3));const rt=new LineBasicMaterial({vertexColors:!0,toneMapped:!1});super(nt,rt),this.type="AxesHelper"}setColors(o,et,tt){const nt=new Color$2,rt=this.geometry.attributes.color.array;return nt.set(o),nt.toArray(rt,0),nt.toArray(rt,3),nt.set(et),nt.toArray(rt,6),nt.toArray(rt,9),nt.set(tt),nt.toArray(rt,12),nt.toArray(rt,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class ShapePath{constructor(){this.type="ShapePath",this.color=new Color$2,this.subPaths=[],this.currentPath=null}moveTo(o,et){return this.currentPath=new Path$1,this.subPaths.push(this.currentPath),this.currentPath.moveTo(o,et),this}lineTo(o,et){return this.currentPath.lineTo(o,et),this}quadraticCurveTo(o,et,tt,nt){return this.currentPath.quadraticCurveTo(o,et,tt,nt),this}bezierCurveTo(o,et,tt,nt,rt,it){return this.currentPath.bezierCurveTo(o,et,tt,nt,rt,it),this}splineThru(o){return this.currentPath.splineThru(o),this}toShapes(o){function et(gt){const yt=[];for(let Ut=0,Ft=gt.length;UtNumber.EPSILON){if(St<0&&(At=yt[vt],Rt=-Rt,Lt=yt[mt],St=-St),gt.yLt.y)continue;if(gt.y===At.y){if(gt.x===At.x)return!0}else{const Tt=St*(gt.x-At.x)-Rt*(gt.y-At.y);if(Tt===0)return!0;if(Tt<0)continue;Ft=!Ft}}else{if(gt.y!==At.y)continue;if(Lt.x<=gt.x&>.x<=At.x||At.x<=gt.x&>.x<=Lt.x)return!0}}return Ft}const nt=ShapeUtils.isClockWise,rt=this.subPaths;if(rt.length===0)return[];let it,ot,st;const at=[];if(rt.length===1)return ot=rt[0],st=new Shape,st.curves=ot.curves,at.push(st),at;let lt=!nt(rt[0].getPoints());lt=o?!lt:lt;const ut=[],dt=[];let ht=[],ct=0,pt;dt[ct]=void 0,ht[ct]=[];for(let gt=0,yt=rt.length;gt1){let gt=!1,yt=0;for(let Ut=0,Ft=dt.length;Ut0&>===!1&&(ht=ut)}let ft;for(let gt=0,yt=dt.length;gt=0&&(Ft[jt]=null,Ut[jt].disconnect(Zt))}for(let nn=0;nn=Ft.length){Ft.push(Zt),jt=It;break}else if(Ft[It]===null){Ft[It]=Zt,jt=It;break}if(jt===-1)break}const Vt=Ut[jt];Vt&&Vt.connect(Zt)}}const Nt=new Vector3,Ot=new Vector3;function Jt(Kt,nn,Zt){Nt.setFromMatrixPosition(nn.matrixWorld),Ot.setFromMatrixPosition(Zt.matrixWorld);const jt=Nt.distanceTo(Ot),Vt=nn.projectionMatrix.elements,It=Zt.projectionMatrix.elements,$t=Vt[14]/(Vt[10]-1),Ht=Vt[14]/(Vt[10]+1),qt=(Vt[9]+1)/Vt[5],on=(Vt[9]-1)/Vt[5],Xt=(Vt[8]-1)/Vt[0],dn=(It[8]+1)/It[0],_n=$t*Xt,Fn=$t*dn,Un=jt/(-Xt+dn),On=Un*-Xt;nn.matrixWorld.decompose(Kt.position,Kt.quaternion,Kt.scale),Kt.translateX(On),Kt.translateZ(Un),Kt.matrixWorld.compose(Kt.position,Kt.quaternion,Kt.scale),Kt.matrixWorldInverse.copy(Kt.matrixWorld).invert();const gn=$t+Un,hn=Ht+Un,wn=_n-On,Zn=Fn+(jt-On),Pn=qt*Ht/hn*gn,$n=on*Ht/hn*gn;Kt.projectionMatrix.makePerspective(wn,Zn,Pn,$n,gn,hn),Kt.projectionMatrixInverse.copy(Kt.projectionMatrix).invert()}function Dt(Kt,nn){nn===null?Kt.matrixWorld.copy(Kt.matrix):Kt.matrixWorld.multiplyMatrices(nn.matrixWorld,Kt.matrix),Kt.matrixWorldInverse.copy(Kt.matrixWorld).invert()}this.updateCamera=function(Kt){if(nt===null)return;pt.texture!==null&&(Kt.near=pt.depthNear,Kt.far=pt.depthFar),St.near=Lt.near=At.near=Kt.near,St.far=Lt.far=At.far=Kt.far,(Tt!==St.near||Bt!==St.far)&&(nt.updateRenderState({depthNear:St.near,depthFar:St.far}),Tt=St.near,Bt=St.far,At.near=Tt,At.far=Bt,Lt.near=Tt,Lt.far=Bt,At.updateProjectionMatrix(),Lt.updateProjectionMatrix(),Kt.updateProjectionMatrix());const nn=Kt.parent,Zt=St.cameras;Dt(St,nn);for(let jt=0;jt0&&(ft.alphaTest.value=gt.alphaTest);const yt=o.get(gt),Ut=yt.envMap,Ft=yt.envMapRotation;Ut&&(ft.envMap.value=Ut,_e1.copy(Ft),_e1.x*=-1,_e1.y*=-1,_e1.z*=-1,Ut.isCubeTexture&&Ut.isRenderTargetTexture===!1&&(_e1.y*=-1,_e1.z*=-1),ft.envMapRotation.value.setFromMatrix4(_m1.makeRotationFromEuler(_e1)),ft.flipEnvMap.value=Ut.isCubeTexture&&Ut.isRenderTargetTexture===!1?-1:1,ft.reflectivity.value=gt.reflectivity,ft.ior.value=gt.ior,ft.refractionRatio.value=gt.refractionRatio),gt.lightMap&&(ft.lightMap.value=gt.lightMap,ft.lightMapIntensity.value=gt.lightMapIntensity,et(gt.lightMap,ft.lightMapTransform)),gt.aoMap&&(ft.aoMap.value=gt.aoMap,ft.aoMapIntensity.value=gt.aoMapIntensity,et(gt.aoMap,ft.aoMapTransform))}function it(ft,gt){ft.diffuse.value.copy(gt.color),ft.opacity.value=gt.opacity,gt.map&&(ft.map.value=gt.map,et(gt.map,ft.mapTransform))}function ot(ft,gt){ft.dashSize.value=gt.dashSize,ft.totalSize.value=gt.dashSize+gt.gapSize,ft.scale.value=gt.scale}function st(ft,gt,yt,Ut){ft.diffuse.value.copy(gt.color),ft.opacity.value=gt.opacity,ft.size.value=gt.size*yt,ft.scale.value=Ut*.5,gt.map&&(ft.map.value=gt.map,et(gt.map,ft.uvTransform)),gt.alphaMap&&(ft.alphaMap.value=gt.alphaMap,et(gt.alphaMap,ft.alphaMapTransform)),gt.alphaTest>0&&(ft.alphaTest.value=gt.alphaTest)}function at(ft,gt){ft.diffuse.value.copy(gt.color),ft.opacity.value=gt.opacity,ft.rotation.value=gt.rotation,gt.map&&(ft.map.value=gt.map,et(gt.map,ft.mapTransform)),gt.alphaMap&&(ft.alphaMap.value=gt.alphaMap,et(gt.alphaMap,ft.alphaMapTransform)),gt.alphaTest>0&&(ft.alphaTest.value=gt.alphaTest)}function lt(ft,gt){ft.specular.value.copy(gt.specular),ft.shininess.value=Math.max(gt.shininess,1e-4)}function ut(ft,gt){gt.gradientMap&&(ft.gradientMap.value=gt.gradientMap)}function dt(ft,gt){ft.metalness.value=gt.metalness,gt.metalnessMap&&(ft.metalnessMap.value=gt.metalnessMap,et(gt.metalnessMap,ft.metalnessMapTransform)),ft.roughness.value=gt.roughness,gt.roughnessMap&&(ft.roughnessMap.value=gt.roughnessMap,et(gt.roughnessMap,ft.roughnessMapTransform)),gt.envMap&&(ft.envMapIntensity.value=gt.envMapIntensity)}function ht(ft,gt,yt){ft.ior.value=gt.ior,gt.sheen>0&&(ft.sheenColor.value.copy(gt.sheenColor).multiplyScalar(gt.sheen),ft.sheenRoughness.value=gt.sheenRoughness,gt.sheenColorMap&&(ft.sheenColorMap.value=gt.sheenColorMap,et(gt.sheenColorMap,ft.sheenColorMapTransform)),gt.sheenRoughnessMap&&(ft.sheenRoughnessMap.value=gt.sheenRoughnessMap,et(gt.sheenRoughnessMap,ft.sheenRoughnessMapTransform))),gt.clearcoat>0&&(ft.clearcoat.value=gt.clearcoat,ft.clearcoatRoughness.value=gt.clearcoatRoughness,gt.clearcoatMap&&(ft.clearcoatMap.value=gt.clearcoatMap,et(gt.clearcoatMap,ft.clearcoatMapTransform)),gt.clearcoatRoughnessMap&&(ft.clearcoatRoughnessMap.value=gt.clearcoatRoughnessMap,et(gt.clearcoatRoughnessMap,ft.clearcoatRoughnessMapTransform)),gt.clearcoatNormalMap&&(ft.clearcoatNormalMap.value=gt.clearcoatNormalMap,et(gt.clearcoatNormalMap,ft.clearcoatNormalMapTransform),ft.clearcoatNormalScale.value.copy(gt.clearcoatNormalScale),gt.side===BackSide&&ft.clearcoatNormalScale.value.negate())),gt.dispersion>0&&(ft.dispersion.value=gt.dispersion),gt.iridescence>0&&(ft.iridescence.value=gt.iridescence,ft.iridescenceIOR.value=gt.iridescenceIOR,ft.iridescenceThicknessMinimum.value=gt.iridescenceThicknessRange[0],ft.iridescenceThicknessMaximum.value=gt.iridescenceThicknessRange[1],gt.iridescenceMap&&(ft.iridescenceMap.value=gt.iridescenceMap,et(gt.iridescenceMap,ft.iridescenceMapTransform)),gt.iridescenceThicknessMap&&(ft.iridescenceThicknessMap.value=gt.iridescenceThicknessMap,et(gt.iridescenceThicknessMap,ft.iridescenceThicknessMapTransform))),gt.transmission>0&&(ft.transmission.value=gt.transmission,ft.transmissionSamplerMap.value=yt.texture,ft.transmissionSamplerSize.value.set(yt.width,yt.height),gt.transmissionMap&&(ft.transmissionMap.value=gt.transmissionMap,et(gt.transmissionMap,ft.transmissionMapTransform)),ft.thickness.value=gt.thickness,gt.thicknessMap&&(ft.thicknessMap.value=gt.thicknessMap,et(gt.thicknessMap,ft.thicknessMapTransform)),ft.attenuationDistance.value=gt.attenuationDistance,ft.attenuationColor.value.copy(gt.attenuationColor)),gt.anisotropy>0&&(ft.anisotropyVector.value.set(gt.anisotropy*Math.cos(gt.anisotropyRotation),gt.anisotropy*Math.sin(gt.anisotropyRotation)),gt.anisotropyMap&&(ft.anisotropyMap.value=gt.anisotropyMap,et(gt.anisotropyMap,ft.anisotropyMapTransform))),ft.specularIntensity.value=gt.specularIntensity,ft.specularColor.value.copy(gt.specularColor),gt.specularColorMap&&(ft.specularColorMap.value=gt.specularColorMap,et(gt.specularColorMap,ft.specularColorMapTransform)),gt.specularIntensityMap&&(ft.specularIntensityMap.value=gt.specularIntensityMap,et(gt.specularIntensityMap,ft.specularIntensityMapTransform))}function ct(ft,gt){gt.matcap&&(ft.matcap.value=gt.matcap)}function pt(ft,gt){const yt=o.get(gt).light;ft.referencePosition.value.setFromMatrixPosition(yt.matrixWorld),ft.nearDistance.value=yt.shadow.camera.near,ft.farDistance.value=yt.shadow.camera.far}return{refreshFogUniforms:tt,refreshMaterialUniforms:nt}}function WebGLUniformsGroups(s,o,et,tt){let nt={},rt={},it=[];const ot=s.getParameter(s.MAX_UNIFORM_BUFFER_BINDINGS);function st(yt,Ut){const Ft=Ut.program;tt.uniformBlockBinding(yt,Ft)}function at(yt,Ut){let Ft=nt[yt.id];Ft===void 0&&(ct(yt),Ft=lt(yt),nt[yt.id]=Ft,yt.addEventListener("dispose",ft));const mt=Ut.program;tt.updateUBOMapping(yt,mt);const vt=o.render.frame;rt[yt.id]!==vt&&(dt(yt),rt[yt.id]=vt)}function lt(yt){const Ut=ut();yt.__bindingPointIndex=Ut;const Ft=s.createBuffer(),mt=yt.__size,vt=yt.usage;return s.bindBuffer(s.UNIFORM_BUFFER,Ft),s.bufferData(s.UNIFORM_BUFFER,mt,vt),s.bindBuffer(s.UNIFORM_BUFFER,null),s.bindBufferBase(s.UNIFORM_BUFFER,Ut,Ft),Ft}function ut(){for(let yt=0;yt0&&(Ft+=mt-vt),yt.__size=Ft,yt.__cache={},this}function pt(yt){const Ut={boundary:0,storage:0};return typeof yt=="number"||typeof yt=="boolean"?(Ut.boundary=4,Ut.storage=4):yt.isVector2?(Ut.boundary=8,Ut.storage=8):yt.isVector3||yt.isColor?(Ut.boundary=16,Ut.storage=12):yt.isVector4?(Ut.boundary=16,Ut.storage=16):yt.isMatrix3?(Ut.boundary=48,Ut.storage=48):yt.isMatrix4?(Ut.boundary=64,Ut.storage=64):yt.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",yt),Ut}function ft(yt){const Ut=yt.target;Ut.removeEventListener("dispose",ft);const Ft=it.indexOf(Ut.__bindingPointIndex);it.splice(Ft,1),s.deleteBuffer(nt[Ut.id]),delete nt[Ut.id],delete rt[Ut.id]}function gt(){for(const yt in nt)s.deleteBuffer(nt[yt]);it=[],nt={},rt={}}return{bind:st,update:at,dispose:gt}}class WebGLRenderer{constructor(o={}){const{canvas:et=createCanvasElement(),context:tt=null,depth:nt=!0,stencil:rt=!1,alpha:it=!1,antialias:ot=!1,premultipliedAlpha:st=!0,preserveDrawingBuffer:at=!1,powerPreference:lt="default",failIfMajorPerformanceCaveat:ut=!1}=o;this.isWebGLRenderer=!0;let dt;if(tt!==null){if(typeof WebGLRenderingContext<"u"&&tt instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");dt=tt.getContextAttributes().alpha}else dt=it;const ht=new Uint32Array(4),ct=new Int32Array(4);let pt=null,ft=null;const gt=[],yt=[];this.domElement=et,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=SRGBColorSpace$1,this.toneMapping=NoToneMapping,this.toneMappingExposure=1;const Ut=this;let Ft=!1,mt=0,vt=0,At=null,Lt=-1,Rt=null;const St=new Vector4,Tt=new Vector4;let Bt=null;const xt=new Color$2(0);let Ct=0,kt=et.width,Nt=et.height,Ot=1,Jt=null,Dt=null;const Et=new Vector4(0,0,kt,Nt),Pt=new Vector4(0,0,kt,Nt);let zt=!1;const en=new Frustum;let Kt=!1,nn=!1;const Zt=new Matrix4,jt=new Vector3,Vt={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let It=!1;function $t(){return At===null?Ot:1}let Ht=tt;function qt(Nn,rr){return et.getContext(Nn,rr)}try{const Nn={alpha:!0,depth:nt,stencil:rt,antialias:ot,premultipliedAlpha:st,preserveDrawingBuffer:at,powerPreference:lt,failIfMajorPerformanceCaveat:ut};if("setAttribute"in et&&et.setAttribute("data-engine",`three.js r${REVISION}`),et.addEventListener("webglcontextlost",un,!1),et.addEventListener("webglcontextrestored",pn,!1),et.addEventListener("webglcontextcreationerror",Qn,!1),Ht===null){const rr="webgl2";if(Ht=qt(rr,Nn),Ht===null)throw qt(rr)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(Nn){throw console.error("THREE.WebGLRenderer: "+Nn.message),Nn}let on,Xt,dn,_n,Fn,Un,On,gn,hn,wn,Zn,Pn,$n,Tr,Qr,_r,Ir,Jr,qr,Uo,eo,Yr,_o,ro;function Fo(){on=new WebGLExtensions(Ht),on.init(),Yr=new WebGLUtils(Ht,on),Xt=new WebGLCapabilities(Ht,on,o,Yr),dn=new WebGLState(Ht),_n=new WebGLInfo(Ht),Fn=new WebGLProperties,Un=new WebGLTextures(Ht,on,dn,Fn,Xt,Yr,_n),On=new WebGLCubeMaps(Ut),gn=new WebGLCubeUVMaps(Ut),hn=new WebGLAttributes(Ht),_o=new WebGLBindingStates(Ht,hn),wn=new WebGLGeometries(Ht,hn,_n,_o),Zn=new WebGLObjects(Ht,wn,hn,_n),qr=new WebGLMorphtargets(Ht,Xt,Un),_r=new WebGLClipping(Fn),Pn=new WebGLPrograms(Ut,On,gn,on,Xt,_o,_r),$n=new WebGLMaterials(Ut,Fn),Tr=new WebGLRenderLists,Qr=new WebGLRenderStates(on),Jr=new WebGLBackground(Ut,On,gn,dn,Zn,dt,st),Ir=new WebGLShadowMap(Ut,Zn,Xt),ro=new WebGLUniformsGroups(Ht,_n,Xt,dn),Uo=new WebGLBufferRenderer(Ht,on,_n),eo=new WebGLIndexedBufferRenderer(Ht,on,_n),_n.programs=Pn.programs,Ut.capabilities=Xt,Ut.extensions=on,Ut.properties=Fn,Ut.renderLists=Tr,Ut.shadowMap=Ir,Ut.state=dn,Ut.info=_n}Fo();const kn=new WebXRManager(Ut,Ht);this.xr=kn,this.getContext=function(){return Ht},this.getContextAttributes=function(){return Ht.getContextAttributes()},this.forceContextLoss=function(){const Nn=on.get("WEBGL_lose_context");Nn&&Nn.loseContext()},this.forceContextRestore=function(){const Nn=on.get("WEBGL_lose_context");Nn&&Nn.restoreContext()},this.getPixelRatio=function(){return Ot},this.setPixelRatio=function(Nn){Nn!==void 0&&(Ot=Nn,this.setSize(kt,Nt,!1))},this.getSize=function(Nn){return Nn.set(kt,Nt)},this.setSize=function(Nn,rr,Rr=!0){if(kn.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}kt=Nn,Nt=rr,et.width=Math.floor(Nn*Ot),et.height=Math.floor(rr*Ot),Rr===!0&&(et.style.width=Nn+"px",et.style.height=rr+"px"),this.setViewport(0,0,Nn,rr)},this.getDrawingBufferSize=function(Nn){return Nn.set(kt*Ot,Nt*Ot).floor()},this.setDrawingBufferSize=function(Nn,rr,Rr){kt=Nn,Nt=rr,Ot=Rr,et.width=Math.floor(Nn*Rr),et.height=Math.floor(rr*Rr),this.setViewport(0,0,Nn,rr)},this.getCurrentViewport=function(Nn){return Nn.copy(St)},this.getViewport=function(Nn){return Nn.copy(Et)},this.setViewport=function(Nn,rr,Rr,vr){Nn.isVector4?Et.set(Nn.x,Nn.y,Nn.z,Nn.w):Et.set(Nn,rr,Rr,vr),dn.viewport(St.copy(Et).multiplyScalar(Ot).round())},this.getScissor=function(Nn){return Nn.copy(Pt)},this.setScissor=function(Nn,rr,Rr,vr){Nn.isVector4?Pt.set(Nn.x,Nn.y,Nn.z,Nn.w):Pt.set(Nn,rr,Rr,vr),dn.scissor(Tt.copy(Pt).multiplyScalar(Ot).round())},this.getScissorTest=function(){return zt},this.setScissorTest=function(Nn){dn.setScissorTest(zt=Nn)},this.setOpaqueSort=function(Nn){Jt=Nn},this.setTransparentSort=function(Nn){Dt=Nn},this.getClearColor=function(Nn){return Nn.copy(Jr.getClearColor())},this.setClearColor=function(){Jr.setClearColor.apply(Jr,arguments)},this.getClearAlpha=function(){return Jr.getClearAlpha()},this.setClearAlpha=function(){Jr.setClearAlpha.apply(Jr,arguments)},this.clear=function(Nn=!0,rr=!0,Rr=!0){let vr=0;if(Nn){let fr=!1;if(At!==null){const zr=At.texture.format;fr=zr===RGBAIntegerFormat||zr===RGIntegerFormat||zr===RedIntegerFormat}if(fr){const zr=At.texture.type,Gr=zr===UnsignedByteType||zr===UnsignedIntType||zr===UnsignedShortType||zr===UnsignedInt248Type||zr===UnsignedShort4444Type||zr===UnsignedShort5551Type,Pr=Jr.getClearColor(),oo=Jr.getClearAlpha(),ao=Pr.r,mo=Pr.g,lo=Pr.b;Gr?(ht[0]=ao,ht[1]=mo,ht[2]=lo,ht[3]=oo,Ht.clearBufferuiv(Ht.COLOR,0,ht)):(ct[0]=ao,ct[1]=mo,ct[2]=lo,ct[3]=oo,Ht.clearBufferiv(Ht.COLOR,0,ct))}else vr|=Ht.COLOR_BUFFER_BIT}rr&&(vr|=Ht.DEPTH_BUFFER_BIT),Rr&&(vr|=Ht.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),Ht.clear(vr)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){et.removeEventListener("webglcontextlost",un,!1),et.removeEventListener("webglcontextrestored",pn,!1),et.removeEventListener("webglcontextcreationerror",Qn,!1),Tr.dispose(),Qr.dispose(),Fn.dispose(),On.dispose(),gn.dispose(),Zn.dispose(),_o.dispose(),ro.dispose(),Pn.dispose(),kn.dispose(),kn.removeEventListener("sessionstart",ar),kn.removeEventListener("sessionend",hr),cn.stop()};function un(Nn){Nn.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),Ft=!0}function pn(){console.log("THREE.WebGLRenderer: Context Restored."),Ft=!1;const Nn=_n.autoReset,rr=Ir.enabled,Rr=Ir.autoUpdate,vr=Ir.needsUpdate,fr=Ir.type;Fo(),_n.autoReset=Nn,Ir.enabled=rr,Ir.autoUpdate=Rr,Ir.needsUpdate=vr,Ir.type=fr}function Qn(Nn){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",Nn.statusMessage)}function Jn(Nn){const rr=Nn.target;rr.removeEventListener("dispose",Jn),jn(rr)}function jn(Nn){Fr(Nn),Fn.remove(Nn)}function Fr(Nn){const rr=Fn.get(Nn).programs;rr!==void 0&&(rr.forEach(function(Rr){Pn.releaseProgram(Rr)}),Nn.isShaderMaterial&&Pn.releaseShaderCache(Nn))}this.renderBufferDirect=function(Nn,rr,Rr,vr,fr,zr){rr===null&&(rr=Vt);const Gr=fr.isMesh&&fr.matrixWorld.determinant()<0,Pr=nr(Nn,rr,Rr,vr,fr);dn.setMaterial(vr,Gr);let oo=Rr.index,ao=1;if(vr.wireframe===!0){if(oo=wn.getWireframeAttribute(Rr),oo===void 0)return;ao=2}const mo=Rr.drawRange,lo=Rr.attributes.position;let To=mo.start*ao,Wo=(mo.start+mo.count)*ao;zr!==null&&(To=Math.max(To,zr.start*ao),Wo=Math.min(Wo,(zr.start+zr.count)*ao)),oo!==null?(To=Math.max(To,0),Wo=Math.min(Wo,oo.count)):lo!=null&&(To=Math.max(To,0),Wo=Math.min(Wo,lo.count));const Go=Wo-To;if(Go<0||Go===1/0)return;_o.setup(fr,vr,Pr,Rr,oo);let cs,So=Uo;if(oo!==null&&(cs=hn.get(oo),So=eo,So.setIndex(cs)),fr.isMesh)vr.wireframe===!0?(dn.setLineWidth(vr.wireframeLinewidth*$t()),So.setMode(Ht.LINES)):So.setMode(Ht.TRIANGLES);else if(fr.isLine){let so=vr.linewidth;so===void 0&&(so=1),dn.setLineWidth(so*$t()),fr.isLineSegments?So.setMode(Ht.LINES):fr.isLineLoop?So.setMode(Ht.LINE_LOOP):So.setMode(Ht.LINE_STRIP)}else fr.isPoints?So.setMode(Ht.POINTS):fr.isSprite&&So.setMode(Ht.TRIANGLES);if(fr.isBatchedMesh)fr._multiDrawInstances!==null?So.renderMultiDrawInstances(fr._multiDrawStarts,fr._multiDrawCounts,fr._multiDrawCount,fr._multiDrawInstances):So.renderMultiDraw(fr._multiDrawStarts,fr._multiDrawCounts,fr._multiDrawCount);else if(fr.isInstancedMesh)So.renderInstances(To,Go,fr.count);else if(Rr.isInstancedBufferGeometry){const so=Rr._maxInstanceCount!==void 0?Rr._maxInstanceCount:1/0,Bo=Math.min(Rr.instanceCount,so);So.renderInstances(To,Go,Bo)}else So.render(To,Go)};function Er(Nn,rr,Rr){Nn.transparent===!0&&Nn.side===DoubleSide&&Nn.forceSinglePass===!1?(Nn.side=BackSide,Nn.needsUpdate=!0,gr(Nn,rr,Rr),Nn.side=FrontSide,Nn.needsUpdate=!0,gr(Nn,rr,Rr),Nn.side=DoubleSide):gr(Nn,rr,Rr)}this.compile=function(Nn,rr,Rr=null){Rr===null&&(Rr=Nn),ft=Qr.get(Rr),ft.init(rr),yt.push(ft),Rr.traverseVisible(function(fr){fr.isLight&&fr.layers.test(rr.layers)&&(ft.pushLight(fr),fr.castShadow&&ft.pushShadow(fr))}),Nn!==Rr&&Nn.traverseVisible(function(fr){fr.isLight&&fr.layers.test(rr.layers)&&(ft.pushLight(fr),fr.castShadow&&ft.pushShadow(fr))}),ft.setupLights();const vr=new Set;return Nn.traverse(function(fr){const zr=fr.material;if(zr)if(Array.isArray(zr))for(let Gr=0;Gr{function zr(){if(vr.forEach(function(Gr){Fn.get(Gr).currentProgram.isReady()&&vr.delete(Gr)}),vr.size===0){fr(Nn);return}setTimeout(zr,10)}on.get("KHR_parallel_shader_compile")!==null?zr():setTimeout(zr,10)})};let wr=null;function tr(Nn){wr&&wr(Nn)}function ar(){cn.stop()}function hr(){cn.start()}const cn=new WebGLAnimation;cn.setAnimationLoop(tr),typeof self<"u"&&cn.setContext(self),this.setAnimationLoop=function(Nn){wr=Nn,kn.setAnimationLoop(Nn),Nn===null?cn.stop():cn.start()},kn.addEventListener("sessionstart",ar),kn.addEventListener("sessionend",hr),this.render=function(Nn,rr){if(rr!==void 0&&rr.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(Ft===!0)return;if(Nn.matrixWorldAutoUpdate===!0&&Nn.updateMatrixWorld(),rr.parent===null&&rr.matrixWorldAutoUpdate===!0&&rr.updateMatrixWorld(),kn.enabled===!0&&kn.isPresenting===!0&&(kn.cameraAutoUpdate===!0&&kn.updateCamera(rr),rr=kn.getCamera()),Nn.isScene===!0&&Nn.onBeforeRender(Ut,Nn,rr,At),ft=Qr.get(Nn,yt.length),ft.init(rr),yt.push(ft),Zt.multiplyMatrices(rr.projectionMatrix,rr.matrixWorldInverse),en.setFromProjectionMatrix(Zt),nn=this.localClippingEnabled,Kt=_r.init(this.clippingPlanes,nn),pt=Tr.get(Nn,gt.length),pt.init(),gt.push(pt),kn.enabled===!0&&kn.isPresenting===!0){const zr=Ut.xr.getDepthSensingMesh();zr!==null&&mn(zr,rr,-1/0,Ut.sortObjects)}mn(Nn,rr,0,Ut.sortObjects),pt.finish(),Ut.sortObjects===!0&&pt.sort(Jt,Dt),It=kn.enabled===!1||kn.isPresenting===!1||kn.hasDepthSensing()===!1,It&&Jr.addToRenderList(pt,Nn),this.info.render.frame++,Kt===!0&&_r.beginShadows();const Rr=ft.state.shadowsArray;Ir.render(Rr,Nn,rr),Kt===!0&&_r.endShadows(),this.info.autoReset===!0&&this.info.reset();const vr=pt.opaque,fr=pt.transmissive;if(ft.setupLights(),rr.isArrayCamera){const zr=rr.cameras;if(fr.length>0)for(let Gr=0,Pr=zr.length;Gr0&&Gn(vr,fr,Nn,rr),It&&Jr.render(Nn),xn(pt,Nn,rr);At!==null&&(Un.updateMultisampleRenderTarget(At),Un.updateRenderTargetMipmap(At)),Nn.isScene===!0&&Nn.onAfterRender(Ut,Nn,rr),_o.resetDefaultState(),Lt=-1,Rt=null,yt.pop(),yt.length>0?(ft=yt[yt.length-1],Kt===!0&&_r.setGlobalState(Ut.clippingPlanes,ft.state.camera)):ft=null,gt.pop(),gt.length>0?pt=gt[gt.length-1]:pt=null};function mn(Nn,rr,Rr,vr){if(Nn.visible===!1)return;if(Nn.layers.test(rr.layers)){if(Nn.isGroup)Rr=Nn.renderOrder;else if(Nn.isLOD)Nn.autoUpdate===!0&&Nn.update(rr);else if(Nn.isLight)ft.pushLight(Nn),Nn.castShadow&&ft.pushShadow(Nn);else if(Nn.isSprite){if(!Nn.frustumCulled||en.intersectsSprite(Nn)){vr&&jt.setFromMatrixPosition(Nn.matrixWorld).applyMatrix4(Zt);const Gr=Zn.update(Nn),Pr=Nn.material;Pr.visible&&pt.push(Nn,Gr,Pr,Rr,jt.z,null)}}else if((Nn.isMesh||Nn.isLine||Nn.isPoints)&&(!Nn.frustumCulled||en.intersectsObject(Nn))){const Gr=Zn.update(Nn),Pr=Nn.material;if(vr&&(Nn.boundingSphere!==void 0?(Nn.boundingSphere===null&&Nn.computeBoundingSphere(),jt.copy(Nn.boundingSphere.center)):(Gr.boundingSphere===null&&Gr.computeBoundingSphere(),jt.copy(Gr.boundingSphere.center)),jt.applyMatrix4(Nn.matrixWorld).applyMatrix4(Zt)),Array.isArray(Pr)){const oo=Gr.groups;for(let ao=0,mo=oo.length;ao0&&er(fr,rr,Rr),zr.length>0&&er(zr,rr,Rr),Gr.length>0&&er(Gr,rr,Rr),dn.buffers.depth.setTest(!0),dn.buffers.depth.setMask(!0),dn.buffers.color.setMask(!0),dn.setPolygonOffset(!1)}function Gn(Nn,rr,Rr,vr){if((Rr.isScene===!0?Rr.overrideMaterial:null)!==null)return;ft.state.transmissionRenderTarget[vr.id]===void 0&&(ft.state.transmissionRenderTarget[vr.id]=new WebGLRenderTarget(1,1,{generateMipmaps:!0,type:on.has("EXT_color_buffer_half_float")||on.has("EXT_color_buffer_float")?HalfFloatType:UnsignedByteType,minFilter:LinearMipmapLinearFilter,samples:4,stencilBuffer:rt,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:ColorManagement.workingColorSpace}));const zr=ft.state.transmissionRenderTarget[vr.id],Gr=vr.viewport||St;zr.setSize(Gr.z,Gr.w);const Pr=Ut.getRenderTarget();Ut.setRenderTarget(zr),Ut.getClearColor(xt),Ct=Ut.getClearAlpha(),Ct<1&&Ut.setClearColor(16777215,.5),It?Jr.render(Rr):Ut.clear();const oo=Ut.toneMapping;Ut.toneMapping=NoToneMapping;const ao=vr.viewport;if(vr.viewport!==void 0&&(vr.viewport=void 0),ft.setupLightsView(vr),Kt===!0&&_r.setGlobalState(Ut.clippingPlanes,vr),er(Nn,Rr,vr),Un.updateMultisampleRenderTarget(zr),Un.updateRenderTargetMipmap(zr),on.has("WEBGL_multisampled_render_to_texture")===!1){let mo=!1;for(let lo=0,To=rr.length;lo0),lo=!!Rr.morphAttributes.position,To=!!Rr.morphAttributes.normal,Wo=!!Rr.morphAttributes.color;let Go=NoToneMapping;vr.toneMapped&&(At===null||At.isXRRenderTarget===!0)&&(Go=Ut.toneMapping);const cs=Rr.morphAttributes.position||Rr.morphAttributes.normal||Rr.morphAttributes.color,So=cs!==void 0?cs.length:0,so=Fn.get(vr),Bo=ft.state.lights;if(Kt===!0&&(nn===!0||Nn!==Rt)){const No=Nn===Rt&&vr.id===Lt;_r.setState(vr,Nn,No)}let Io=!1;vr.version===so.__version?(so.needsLights&&so.lightsStateVersion!==Bo.state.version||so.outputColorSpace!==Pr||fr.isBatchedMesh&&so.batching===!1||!fr.isBatchedMesh&&so.batching===!0||fr.isBatchedMesh&&so.batchingColor===!0&&fr.colorTexture===null||fr.isBatchedMesh&&so.batchingColor===!1&&fr.colorTexture!==null||fr.isInstancedMesh&&so.instancing===!1||!fr.isInstancedMesh&&so.instancing===!0||fr.isSkinnedMesh&&so.skinning===!1||!fr.isSkinnedMesh&&so.skinning===!0||fr.isInstancedMesh&&so.instancingColor===!0&&fr.instanceColor===null||fr.isInstancedMesh&&so.instancingColor===!1&&fr.instanceColor!==null||fr.isInstancedMesh&&so.instancingMorph===!0&&fr.morphTexture===null||fr.isInstancedMesh&&so.instancingMorph===!1&&fr.morphTexture!==null||so.envMap!==oo||vr.fog===!0&&so.fog!==zr||so.numClippingPlanes!==void 0&&(so.numClippingPlanes!==_r.numPlanes||so.numIntersection!==_r.numIntersection)||so.vertexAlphas!==ao||so.vertexTangents!==mo||so.morphTargets!==lo||so.morphNormals!==To||so.morphColors!==Wo||so.toneMapping!==Go||so.morphTargetsCount!==So)&&(Io=!0):(Io=!0,so.__version=vr.version);let ns=so.currentProgram;Io===!0&&(ns=gr(vr,rr,fr));let ps=!1,gs=!1,bs=!1;const Lo=ns.getUniforms(),Qs=so.uniforms;if(dn.useProgram(ns.program)&&(ps=!0,gs=!0,bs=!0),vr.id!==Lt&&(Lt=vr.id,gs=!0),ps||Rt!==Nn){Lo.setValue(Ht,"projectionMatrix",Nn.projectionMatrix),Lo.setValue(Ht,"viewMatrix",Nn.matrixWorldInverse);const No=Lo.map.cameraPosition;No!==void 0&&No.setValue(Ht,jt.setFromMatrixPosition(Nn.matrixWorld)),Xt.logarithmicDepthBuffer&&Lo.setValue(Ht,"logDepthBufFC",2/(Math.log(Nn.far+1)/Math.LN2)),(vr.isMeshPhongMaterial||vr.isMeshToonMaterial||vr.isMeshLambertMaterial||vr.isMeshBasicMaterial||vr.isMeshStandardMaterial||vr.isShaderMaterial)&&Lo.setValue(Ht,"isOrthographic",Nn.isOrthographicCamera===!0),Rt!==Nn&&(Rt=Nn,gs=!0,bs=!0)}if(fr.isSkinnedMesh){Lo.setOptional(Ht,fr,"bindMatrix"),Lo.setOptional(Ht,fr,"bindMatrixInverse");const No=fr.skeleton;No&&(No.boneTexture===null&&No.computeBoneTexture(),Lo.setValue(Ht,"boneTexture",No.boneTexture,Un))}fr.isBatchedMesh&&(Lo.setOptional(Ht,fr,"batchingTexture"),Lo.setValue(Ht,"batchingTexture",fr._matricesTexture,Un),Lo.setOptional(Ht,fr,"batchingColorTexture"),fr._colorsTexture!==null&&Lo.setValue(Ht,"batchingColorTexture",fr._colorsTexture,Un));const Ps=Rr.morphAttributes;if((Ps.position!==void 0||Ps.normal!==void 0||Ps.color!==void 0)&&qr.update(fr,Rr,ns),(gs||so.receiveShadow!==fr.receiveShadow)&&(so.receiveShadow=fr.receiveShadow,Lo.setValue(Ht,"receiveShadow",fr.receiveShadow)),vr.isMeshGouraudMaterial&&vr.envMap!==null&&(Qs.envMap.value=oo,Qs.flipEnvMap.value=oo.isCubeTexture&&oo.isRenderTargetTexture===!1?-1:1),vr.isMeshStandardMaterial&&vr.envMap===null&&rr.environment!==null&&(Qs.envMapIntensity.value=rr.environmentIntensity),gs&&(Lo.setValue(Ht,"toneMappingExposure",Ut.toneMappingExposure),so.needsLights&&Kr(Qs,bs),zr&&vr.fog===!0&&$n.refreshFogUniforms(Qs,zr),$n.refreshMaterialUniforms(Qs,vr,Ot,Nt,ft.state.transmissionRenderTarget[Nn.id]),WebGLUniforms.upload(Ht,br(so),Qs,Un)),vr.isShaderMaterial&&vr.uniformsNeedUpdate===!0&&(WebGLUniforms.upload(Ht,br(so),Qs,Un),vr.uniformsNeedUpdate=!1),vr.isSpriteMaterial&&Lo.setValue(Ht,"center",fr.center),Lo.setValue(Ht,"modelViewMatrix",fr.modelViewMatrix),Lo.setValue(Ht,"normalMatrix",fr.normalMatrix),Lo.setValue(Ht,"modelMatrix",fr.matrixWorld),vr.isShaderMaterial||vr.isRawShaderMaterial){const No=vr.uniformsGroups;for(let ys=0,Ns=No.length;ys0&&Un.useMultisampledRTT(Nn)===!1?fr=Fn.get(Nn).__webglMultisampledFramebuffer:Array.isArray(mo)?fr=mo[Rr]:fr=mo,St.copy(Nn.viewport),Tt.copy(Nn.scissor),Bt=Nn.scissorTest}else St.copy(Et).multiplyScalar(Ot).floor(),Tt.copy(Pt).multiplyScalar(Ot).floor(),Bt=zt;if(dn.bindFramebuffer(Ht.FRAMEBUFFER,fr)&&vr&&dn.drawBuffers(Nn,fr),dn.viewport(St),dn.scissor(Tt),dn.setScissorTest(Bt),zr){const oo=Fn.get(Nn.texture);Ht.framebufferTexture2D(Ht.FRAMEBUFFER,Ht.COLOR_ATTACHMENT0,Ht.TEXTURE_CUBE_MAP_POSITIVE_X+rr,oo.__webglTexture,Rr)}else if(Gr){const oo=Fn.get(Nn.texture),ao=rr||0;Ht.framebufferTextureLayer(Ht.FRAMEBUFFER,Ht.COLOR_ATTACHMENT0,oo.__webglTexture,Rr||0,ao)}Lt=-1},this.readRenderTargetPixels=function(Nn,rr,Rr,vr,fr,zr,Gr){if(!(Nn&&Nn.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Pr=Fn.get(Nn).__webglFramebuffer;if(Nn.isWebGLCubeRenderTarget&&Gr!==void 0&&(Pr=Pr[Gr]),Pr){dn.bindFramebuffer(Ht.FRAMEBUFFER,Pr);try{const oo=Nn.texture,ao=oo.format,mo=oo.type;if(!Xt.textureFormatReadable(ao)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!Xt.textureTypeReadable(mo)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}rr>=0&&rr<=Nn.width-vr&&Rr>=0&&Rr<=Nn.height-fr&&Ht.readPixels(rr,Rr,vr,fr,Yr.convert(ao),Yr.convert(mo),zr)}finally{const oo=At!==null?Fn.get(At).__webglFramebuffer:null;dn.bindFramebuffer(Ht.FRAMEBUFFER,oo)}}},this.readRenderTargetPixelsAsync=async function(Nn,rr,Rr,vr,fr,zr,Gr){if(!(Nn&&Nn.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Pr=Fn.get(Nn).__webglFramebuffer;if(Nn.isWebGLCubeRenderTarget&&Gr!==void 0&&(Pr=Pr[Gr]),Pr){dn.bindFramebuffer(Ht.FRAMEBUFFER,Pr);try{const oo=Nn.texture,ao=oo.format,mo=oo.type;if(!Xt.textureFormatReadable(ao))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!Xt.textureTypeReadable(mo))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(rr>=0&&rr<=Nn.width-vr&&Rr>=0&&Rr<=Nn.height-fr){const lo=Ht.createBuffer();Ht.bindBuffer(Ht.PIXEL_PACK_BUFFER,lo),Ht.bufferData(Ht.PIXEL_PACK_BUFFER,zr.byteLength,Ht.STREAM_READ),Ht.readPixels(rr,Rr,vr,fr,Yr.convert(ao),Yr.convert(mo),0),Ht.flush();const To=Ht.fenceSync(Ht.SYNC_GPU_COMMANDS_COMPLETE,0);await probeAsync(Ht,To,4);try{Ht.bindBuffer(Ht.PIXEL_PACK_BUFFER,lo),Ht.getBufferSubData(Ht.PIXEL_PACK_BUFFER,0,zr)}finally{Ht.deleteBuffer(lo),Ht.deleteSync(To)}return zr}}finally{const oo=At!==null?Fn.get(At).__webglFramebuffer:null;dn.bindFramebuffer(Ht.FRAMEBUFFER,oo)}}},this.copyFramebufferToTexture=function(Nn,rr=null,Rr=0){Nn.isTexture!==!0&&(console.warn("WebGLRenderer: copyFramebufferToTexture function signature has changed."),rr=arguments[0]||null,Nn=arguments[1]);const vr=Math.pow(2,-Rr),fr=Math.floor(Nn.image.width*vr),zr=Math.floor(Nn.image.height*vr),Gr=rr!==null?rr.x:0,Pr=rr!==null?rr.y:0;Un.setTexture2D(Nn,0),Ht.copyTexSubImage2D(Ht.TEXTURE_2D,Rr,0,0,Gr,Pr,fr,zr),dn.unbindTexture()},this.copyTextureToTexture=function(Nn,rr,Rr=null,vr=null,fr=0){Nn.isTexture!==!0&&(console.warn("WebGLRenderer: copyTextureToTexture function signature has changed."),vr=arguments[0]||null,Nn=arguments[1],rr=arguments[2],fr=arguments[3]||0,Rr=null);let zr,Gr,Pr,oo,ao,mo;Rr!==null?(zr=Rr.max.x-Rr.min.x,Gr=Rr.max.y-Rr.min.y,Pr=Rr.min.x,oo=Rr.min.y):(zr=Nn.image.width,Gr=Nn.image.height,Pr=0,oo=0),vr!==null?(ao=vr.x,mo=vr.y):(ao=0,mo=0);const lo=Yr.convert(rr.format),To=Yr.convert(rr.type);Un.setTexture2D(rr,0),Ht.pixelStorei(Ht.UNPACK_FLIP_Y_WEBGL,rr.flipY),Ht.pixelStorei(Ht.UNPACK_PREMULTIPLY_ALPHA_WEBGL,rr.premultiplyAlpha),Ht.pixelStorei(Ht.UNPACK_ALIGNMENT,rr.unpackAlignment);const Wo=Ht.getParameter(Ht.UNPACK_ROW_LENGTH),Go=Ht.getParameter(Ht.UNPACK_IMAGE_HEIGHT),cs=Ht.getParameter(Ht.UNPACK_SKIP_PIXELS),So=Ht.getParameter(Ht.UNPACK_SKIP_ROWS),so=Ht.getParameter(Ht.UNPACK_SKIP_IMAGES),Bo=Nn.isCompressedTexture?Nn.mipmaps[fr]:Nn.image;Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Bo.width),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Bo.height),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,Pr),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,oo),Nn.isDataTexture?Ht.texSubImage2D(Ht.TEXTURE_2D,fr,ao,mo,zr,Gr,lo,To,Bo.data):Nn.isCompressedTexture?Ht.compressedTexSubImage2D(Ht.TEXTURE_2D,fr,ao,mo,Bo.width,Bo.height,lo,Bo.data):Ht.texSubImage2D(Ht.TEXTURE_2D,fr,ao,mo,lo,To,Bo),Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Wo),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Go),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,cs),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,So),Ht.pixelStorei(Ht.UNPACK_SKIP_IMAGES,so),fr===0&&rr.generateMipmaps&&Ht.generateMipmap(Ht.TEXTURE_2D),dn.unbindTexture()},this.copyTextureToTexture3D=function(Nn,rr,Rr=null,vr=null,fr=0){Nn.isTexture!==!0&&(console.warn("WebGLRenderer: copyTextureToTexture3D function signature has changed."),Rr=arguments[0]||null,vr=arguments[1]||null,Nn=arguments[2],rr=arguments[3],fr=arguments[4]||0);let zr,Gr,Pr,oo,ao,mo,lo,To,Wo;const Go=Nn.isCompressedTexture?Nn.mipmaps[fr]:Nn.image;Rr!==null?(zr=Rr.max.x-Rr.min.x,Gr=Rr.max.y-Rr.min.y,Pr=Rr.max.z-Rr.min.z,oo=Rr.min.x,ao=Rr.min.y,mo=Rr.min.z):(zr=Go.width,Gr=Go.height,Pr=Go.depth,oo=0,ao=0,mo=0),vr!==null?(lo=vr.x,To=vr.y,Wo=vr.z):(lo=0,To=0,Wo=0);const cs=Yr.convert(rr.format),So=Yr.convert(rr.type);let so;if(rr.isData3DTexture)Un.setTexture3D(rr,0),so=Ht.TEXTURE_3D;else if(rr.isDataArrayTexture||rr.isCompressedArrayTexture)Un.setTexture2DArray(rr,0),so=Ht.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}Ht.pixelStorei(Ht.UNPACK_FLIP_Y_WEBGL,rr.flipY),Ht.pixelStorei(Ht.UNPACK_PREMULTIPLY_ALPHA_WEBGL,rr.premultiplyAlpha),Ht.pixelStorei(Ht.UNPACK_ALIGNMENT,rr.unpackAlignment);const Bo=Ht.getParameter(Ht.UNPACK_ROW_LENGTH),Io=Ht.getParameter(Ht.UNPACK_IMAGE_HEIGHT),ns=Ht.getParameter(Ht.UNPACK_SKIP_PIXELS),ps=Ht.getParameter(Ht.UNPACK_SKIP_ROWS),gs=Ht.getParameter(Ht.UNPACK_SKIP_IMAGES);Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Go.width),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Go.height),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,oo),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,ao),Ht.pixelStorei(Ht.UNPACK_SKIP_IMAGES,mo),Nn.isDataTexture||Nn.isData3DTexture?Ht.texSubImage3D(so,fr,lo,To,Wo,zr,Gr,Pr,cs,So,Go.data):rr.isCompressedArrayTexture?Ht.compressedTexSubImage3D(so,fr,lo,To,Wo,zr,Gr,Pr,cs,Go.data):Ht.texSubImage3D(so,fr,lo,To,Wo,zr,Gr,Pr,cs,So,Go),Ht.pixelStorei(Ht.UNPACK_ROW_LENGTH,Bo),Ht.pixelStorei(Ht.UNPACK_IMAGE_HEIGHT,Io),Ht.pixelStorei(Ht.UNPACK_SKIP_PIXELS,ns),Ht.pixelStorei(Ht.UNPACK_SKIP_ROWS,ps),Ht.pixelStorei(Ht.UNPACK_SKIP_IMAGES,gs),fr===0&&rr.generateMipmaps&&Ht.generateMipmap(so),dn.unbindTexture()},this.initRenderTarget=function(Nn){Fn.get(Nn).__webglFramebuffer===void 0&&Un.setupRenderTarget(Nn)},this.initTexture=function(Nn){Nn.isCubeTexture?Un.setTextureCube(Nn,0):Nn.isData3DTexture?Un.setTexture3D(Nn,0):Nn.isDataArrayTexture||Nn.isCompressedArrayTexture?Un.setTexture2DArray(Nn,0):Un.setTexture2D(Nn,0),dn.unbindTexture()},this.resetState=function(){mt=0,vt=0,At=null,dn.reset(),_o.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return WebGLCoordinateSystem}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(o){this._outputColorSpace=o;const et=this.getContext();et.drawingBufferColorSpace=o===DisplayP3ColorSpace?"display-p3":"srgb",et.unpackColorSpace=ColorManagement.workingColorSpace===LinearDisplayP3ColorSpace?"display-p3":"srgb"}}class FogExp2{constructor(o,et=25e-5){this.isFogExp2=!0,this.name="",this.color=new Color$2(o),this.density=et}clone(){return new FogExp2(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Fog{constructor(o,et=1,tt=1e3){this.isFog=!0,this.name="",this.color=new Color$2(o),this.near=et,this.far=tt}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Scene extends Object3D{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Euler,this.environmentIntensity=1,this.environmentRotation=new Euler,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(o,et){return super.copy(o,et),o.background!==null&&(this.background=o.background.clone()),o.environment!==null&&(this.environment=o.environment.clone()),o.fog!==null&&(this.fog=o.fog.clone()),this.backgroundBlurriness=o.backgroundBlurriness,this.backgroundIntensity=o.backgroundIntensity,this.backgroundRotation.copy(o.backgroundRotation),this.environmentIntensity=o.environmentIntensity,this.environmentRotation.copy(o.environmentRotation),o.overrideMaterial!==null&&(this.overrideMaterial=o.overrideMaterial.clone()),this.matrixAutoUpdate=o.matrixAutoUpdate,this}toJSON(o){const et=super.toJSON(o);return this.fog!==null&&(et.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(et.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(et.object.backgroundIntensity=this.backgroundIntensity),et.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(et.object.environmentIntensity=this.environmentIntensity),et.object.environmentRotation=this.environmentRotation.toArray(),et}}class InterleavedBuffer{constructor(o,et){this.isInterleavedBuffer=!0,this.array=o,this.stride=et,this.count=o!==void 0?o.length/et:0,this.usage=StaticDrawUsage,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=generateUUID()}onUploadCallback(){}set needsUpdate(o){o===!0&&this.version++}get updateRange(){return warnOnce("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(o){return this.usage=o,this}addUpdateRange(o,et){this.updateRanges.push({start:o,count:et})}clearUpdateRanges(){this.updateRanges.length=0}copy(o){return this.array=new o.array.constructor(o.array),this.count=o.count,this.stride=o.stride,this.usage=o.usage,this}copyAt(o,et,tt){o*=this.stride,tt*=et.stride;for(let nt=0,rt=this.stride;nto.far||et.push({distance:st,point:_intersectPoint.clone(),uv:Triangle.getInterpolation(_intersectPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2),face:null,object:this})}copy(o,et){return super.copy(o,et),o.center!==void 0&&this.center.copy(o.center),this.material=o.material,this}}function transformVertex(s,o,et,tt,nt,rt){_alignedPosition.subVectors(s,et).addScalar(.5).multiply(tt),nt!==void 0?(_rotatedPosition.x=rt*_alignedPosition.x-nt*_alignedPosition.y,_rotatedPosition.y=nt*_alignedPosition.x+rt*_alignedPosition.y):_rotatedPosition.copy(_alignedPosition),s.copy(o),s.x+=_rotatedPosition.x,s.y+=_rotatedPosition.y,s.applyMatrix4(_viewWorldMatrix)}const _v1$2=new Vector3,_v2$1=new Vector3;class LOD extends Object3D{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(o){super.copy(o,!1);const et=o.levels;for(let tt=0,nt=et.length;tt0){let tt,nt;for(tt=1,nt=et.length;tt0){_v1$2.setFromMatrixPosition(this.matrixWorld);const nt=o.ray.origin.distanceTo(_v1$2);this.getObjectForDistance(nt).raycast(o,et)}}update(o){const et=this.levels;if(et.length>1){_v1$2.setFromMatrixPosition(o.matrixWorld),_v2$1.setFromMatrixPosition(this.matrixWorld);const tt=_v1$2.distanceTo(_v2$1)/o.zoom;et[0].object.visible=!0;let nt,rt;for(nt=1,rt=et.length;nt=it)et[nt-1].object.visible=!1,et[nt].object.visible=!0;else break}for(this._currentLevel=nt-1;nt=tt.length&&tt.push({start:-1,count:-1,z:-1});const rt=tt[this.index];nt.push(rt),this.index++,rt.start=o.start,rt.count=o.count,rt.z=et}reset(){this.list.length=0,this.index=0}}const ID_ATTR_NAME="batchId",_matrix$1=new Matrix4,_invMatrixWorld=new Matrix4,_identityMatrix$2=new Matrix4,_whiteColor=new Color$2(1,1,1),_projScreenMatrix$2=new Matrix4,_frustum=new Frustum,_box$1$1=new Box3,_sphere$2=new Sphere$1,_vector$5=new Vector3,_forward=new Vector3,_temp=new Vector3,_renderList=new MultiDrawRenderList,_mesh=new Mesh,_batchIntersects=[];function copyAttributeData(s,o,et=0){const tt=o.itemSize;if(s.isInterleavedBufferAttribute||s.array.constructor!==o.array.constructor){const nt=s.count;for(let rt=0;rt65536?new Uint32Array(rt):new Uint16Array(rt);et.setIndex(new BufferAttribute(ot,1))}const it=nt>65536?new Uint32Array(tt):new Uint16Array(tt);et.setAttribute(ID_ATTR_NAME,new BufferAttribute(it,1)),this._geometryInitialized=!0}}_validateGeometry(o){if(o.getAttribute(ID_ATTR_NAME))throw new Error(`BatchedMesh: Geometry cannot use attribute "${ID_ATTR_NAME}"`);const et=this.geometry;if(!!o.getIndex()!=!!et.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const tt in et.attributes){if(tt===ID_ATTR_NAME)continue;if(!o.hasAttribute(tt))throw new Error(`BatchedMesh: Added geometry missing "${tt}". All geometries must have consistent attributes.`);const nt=o.getAttribute(tt),rt=et.getAttribute(tt);if(nt.itemSize!==rt.itemSize||nt.normalized!==rt.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(o){return this.customSort=o,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Box3);const o=this._geometryCount,et=this.boundingBox,tt=this._active;et.makeEmpty();for(let nt=0;nt=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const nt={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let rt=null;const it=this._reservedRanges,ot=this._drawRanges,st=this._bounds;this._geometryCount!==0&&(rt=it[it.length-1]),et===-1?nt.vertexCount=o.getAttribute("position").count:nt.vertexCount=et,rt===null?nt.vertexStart=0:nt.vertexStart=rt.vertexStart+rt.vertexCount;const at=o.getIndex(),lt=at!==null;if(lt&&(tt===-1?nt.indexCount=at.count:nt.indexCount=tt,rt===null?nt.indexStart=0:nt.indexStart=rt.indexStart+rt.indexCount),nt.indexStart!==-1&&nt.indexStart+nt.indexCount>this._maxIndexCount||nt.vertexStart+nt.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const ut=this._visibility,dt=this._active,ht=this._matricesTexture,ct=this._matricesTexture.image.data,pt=this._colorsTexture;ut.push(!0),dt.push(!0);const ft=this._geometryCount;this._geometryCount++,_identityMatrix$2.toArray(ct,ft*16),ht.needsUpdate=!0,pt!==null&&(_whiteColor.toArray(pt.image.data,ft*4),pt.needsUpdate=!0),it.push(nt),ot.push({start:lt?nt.indexStart:nt.vertexStart,count:-1}),st.push({boxInitialized:!1,box:new Box3,sphereInitialized:!1,sphere:new Sphere$1});const gt=this.geometry.getAttribute(ID_ATTR_NAME);for(let yt=0;yt=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(et);const tt=this.geometry,nt=tt.getIndex()!==null,rt=tt.getIndex(),it=et.getIndex(),ot=this._reservedRanges[o];if(nt&&it.count>ot.indexCount||et.attributes.position.count>ot.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const st=ot.vertexStart,at=ot.vertexCount;for(const ht in tt.attributes){if(ht===ID_ATTR_NAME)continue;const ct=et.getAttribute(ht),pt=tt.getAttribute(ht);copyAttributeData(ct,pt,st);const ft=ct.itemSize;for(let gt=ct.count,yt=at;gt=et.length||et[o]===!1?this:(et[o]=!1,this._visibilityChanged=!0,this)}getInstanceCountAt(o){return this._multiDrawInstances===null?null:this._multiDrawInstances[o]}setInstanceCountAt(o,et){return this._multiDrawInstances===null&&(this._multiDrawInstances=new Int32Array(this._maxGeometryCount).fill(1)),this._multiDrawInstances[o]=et,o}getBoundingBoxAt(o,et){if(this._active[o]===!1)return null;const nt=this._bounds[o],rt=nt.box,it=this.geometry;if(nt.boxInitialized===!1){rt.makeEmpty();const ot=it.index,st=it.attributes.position,at=this._drawRanges[o];for(let lt=at.start,ut=at.start+at.count;lt=it||tt[o]===!1?this:(et.toArray(rt,o*16),nt.needsUpdate=!0,this)}getMatrixAt(o,et){const tt=this._active,nt=this._matricesTexture.image.data,rt=this._geometryCount;return o>=rt||tt[o]===!1?null:et.fromArray(nt,o*16)}setColorAt(o,et){this._colorsTexture===null&&this._initColorsTexture();const tt=this._active,nt=this._colorsTexture,rt=this._colorsTexture.image.data,it=this._geometryCount;return o>=it||tt[o]===!1?this:(et.toArray(rt,o*4),nt.needsUpdate=!0,this)}getColorAt(o,et){const tt=this._active,nt=this._colorsTexture.image.data,rt=this._geometryCount;return o>=rt||tt[o]===!1?null:et.fromArray(nt,o*4)}setVisibleAt(o,et){const tt=this._visibility,nt=this._active,rt=this._geometryCount;return o>=rt||nt[o]===!1||tt[o]===et?this:(tt[o]=et,this._visibilityChanged=!0,this)}getVisibleAt(o){const et=this._visibility,tt=this._active,nt=this._geometryCount;return o>=nt||tt[o]===!1?!1:et[o]}raycast(o,et){const tt=this._visibility,nt=this._active,rt=this._drawRanges,it=this._geometryCount,ot=this.matrixWorld,st=this.geometry;_mesh.material=this.material,_mesh.geometry.index=st.index,_mesh.geometry.attributes=st.attributes,_mesh.geometry.boundingBox===null&&(_mesh.geometry.boundingBox=new Box3),_mesh.geometry.boundingSphere===null&&(_mesh.geometry.boundingSphere=new Sphere$1);for(let at=0;at({...et})),this._reservedRanges=o._reservedRanges.map(et=>({...et})),this._visibility=o._visibility.slice(),this._active=o._active.slice(),this._bounds=o._bounds.map(et=>({boxInitialized:et.boxInitialized,box:et.box.clone(),sphereInitialized:et.sphereInitialized,sphere:et.sphere.clone()})),this._maxGeometryCount=o._maxGeometryCount,this._maxVertexCount=o._maxVertexCount,this._maxIndexCount=o._maxIndexCount,this._geometryInitialized=o._geometryInitialized,this._geometryCount=o._geometryCount,this._multiDrawCounts=o._multiDrawCounts.slice(),this._multiDrawStarts=o._multiDrawStarts.slice(),this._matricesTexture=o._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this._colorsTexture!==null&&(this._colorsTexture=o._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.slice()),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null),this}onBeforeRender(o,et,tt,nt,rt){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const it=nt.getIndex(),ot=it===null?1:it.array.BYTES_PER_ELEMENT,st=this._active,at=this._visibility,lt=this._multiDrawStarts,ut=this._multiDrawCounts,dt=this._drawRanges,ht=this.perObjectFrustumCulled;ht&&(_projScreenMatrix$2.multiplyMatrices(tt.projectionMatrix,tt.matrixWorldInverse).multiply(this.matrixWorld),_frustum.setFromProjectionMatrix(_projScreenMatrix$2,o.coordinateSystem));let ct=0;if(this.sortObjects){_invMatrixWorld.copy(this.matrixWorld).invert(),_vector$5.setFromMatrixPosition(tt.matrixWorld).applyMatrix4(_invMatrixWorld),_forward.set(0,0,-1).transformDirection(tt.matrixWorld).transformDirection(_invMatrixWorld);for(let gt=0,yt=at.length;gt0){const nt=et[tt[0]];if(nt!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let rt=0,it=nt.length;rttt)return;_intersectPointOnRay.applyMatrix4(s.matrixWorld);const st=o.ray.origin.distanceTo(_intersectPointOnRay);if(!(sto.far))return{distance:st,point:_intersectPointOnSegment.clone().applyMatrix4(s.matrixWorld),index:nt,face:null,faceIndex:null,object:s}}const _start$1=new Vector3,_end$1=new Vector3;class LineSegments extends Line$1{constructor(o,et){super(o,et),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const o=this.geometry;if(o.index===null){const et=o.attributes.position,tt=[];for(let nt=0,rt=et.count;nt0){const nt=et[tt[0]];if(nt!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let rt=0,it=nt.length;rtnt.far)return;rt.push({distance:at,distanceToRay:Math.sqrt(ot),point:st,index:o,face:null,object:it})}}class VideoTexture extends Texture{constructor(o,et,tt,nt,rt,it,ot,st,at){super(o,et,tt,nt,rt,it,ot,st,at),this.isVideoTexture=!0,this.minFilter=it!==void 0?it:LinearFilter,this.magFilter=rt!==void 0?rt:LinearFilter,this.generateMipmaps=!1;const lt=this;function ut(){lt.needsUpdate=!0,o.requestVideoFrameCallback(ut)}"requestVideoFrameCallback"in o&&o.requestVideoFrameCallback(ut)}clone(){return new this.constructor(this.image).copy(this)}update(){const o=this.image;"requestVideoFrameCallback"in o===!1&&o.readyState>=o.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class FramebufferTexture extends Texture{constructor(o,et){super({width:o,height:et}),this.isFramebufferTexture=!0,this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.generateMipmaps=!1,this.needsUpdate=!0}}class CompressedTexture extends Texture{constructor(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt){super(null,it,ot,st,at,lt,nt,rt,ut,dt),this.isCompressedTexture=!0,this.image={width:et,height:tt},this.mipmaps=o,this.flipY=!1,this.generateMipmaps=!1}}class CompressedArrayTexture extends CompressedTexture{constructor(o,et,tt,nt,rt,it){super(o,et,tt,rt,it),this.isCompressedArrayTexture=!0,this.image.depth=nt,this.wrapR=ClampToEdgeWrapping,this.layerUpdates=new Set}addLayerUpdates(o){this.layerUpdates.add(o)}clearLayerUpdates(){this.layerUpdates.clear()}}class CompressedCubeTexture extends CompressedTexture{constructor(o,et,tt){super(void 0,o[0].width,o[0].height,et,tt,CubeReflectionMapping),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=o}}class CanvasTexture extends Texture{constructor(o,et,tt,nt,rt,it,ot,st,at){super(o,et,tt,nt,rt,it,ot,st,at),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Curve{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(o,et){const tt=this.getUtoTmapping(o);return this.getPoint(tt,et)}getPoints(o=5){const et=[];for(let tt=0;tt<=o;tt++)et.push(this.getPoint(tt/o));return et}getSpacedPoints(o=5){const et=[];for(let tt=0;tt<=o;tt++)et.push(this.getPointAt(tt/o));return et}getLength(){const o=this.getLengths();return o[o.length-1]}getLengths(o=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===o+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const et=[];let tt,nt=this.getPoint(0),rt=0;et.push(0);for(let it=1;it<=o;it++)tt=this.getPoint(it/o),rt+=tt.distanceTo(nt),et.push(rt),nt=tt;return this.cacheArcLengths=et,et}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(o,et){const tt=this.getLengths();let nt=0;const rt=tt.length;let it;et?it=et:it=o*tt[rt-1];let ot=0,st=rt-1,at;for(;ot<=st;)if(nt=Math.floor(ot+(st-ot)/2),at=tt[nt]-it,at<0)ot=nt+1;else if(at>0)st=nt-1;else{st=nt;break}if(nt=st,tt[nt]===it)return nt/(rt-1);const lt=tt[nt],dt=tt[nt+1]-lt,ht=(it-lt)/dt;return(nt+ht)/(rt-1)}getTangent(o,et){let nt=o-1e-4,rt=o+1e-4;nt<0&&(nt=0),rt>1&&(rt=1);const it=this.getPoint(nt),ot=this.getPoint(rt),st=et||(it.isVector2?new Vector2:new Vector3);return st.copy(ot).sub(it).normalize(),st}getTangentAt(o,et){const tt=this.getUtoTmapping(o);return this.getTangent(tt,et)}computeFrenetFrames(o,et){const tt=new Vector3,nt=[],rt=[],it=[],ot=new Vector3,st=new Matrix4;for(let ht=0;ht<=o;ht++){const ct=ht/o;nt[ht]=this.getTangentAt(ct,new Vector3)}rt[0]=new Vector3,it[0]=new Vector3;let at=Number.MAX_VALUE;const lt=Math.abs(nt[0].x),ut=Math.abs(nt[0].y),dt=Math.abs(nt[0].z);lt<=at&&(at=lt,tt.set(1,0,0)),ut<=at&&(at=ut,tt.set(0,1,0)),dt<=at&&tt.set(0,0,1),ot.crossVectors(nt[0],tt).normalize(),rt[0].crossVectors(nt[0],ot),it[0].crossVectors(nt[0],rt[0]);for(let ht=1;ht<=o;ht++){if(rt[ht]=rt[ht-1].clone(),it[ht]=it[ht-1].clone(),ot.crossVectors(nt[ht-1],nt[ht]),ot.length()>Number.EPSILON){ot.normalize();const ct=Math.acos(clamp$4(nt[ht-1].dot(nt[ht]),-1,1));rt[ht].applyMatrix4(st.makeRotationAxis(ot,ct))}it[ht].crossVectors(nt[ht],rt[ht])}if(et===!0){let ht=Math.acos(clamp$4(rt[0].dot(rt[o]),-1,1));ht/=o,nt[0].dot(ot.crossVectors(rt[0],rt[o]))>0&&(ht=-ht);for(let ct=1;ct<=o;ct++)rt[ct].applyMatrix4(st.makeRotationAxis(nt[ct],ht*ct)),it[ct].crossVectors(nt[ct],rt[ct])}return{tangents:nt,normals:rt,binormals:it}}clone(){return new this.constructor().copy(this)}copy(o){return this.arcLengthDivisions=o.arcLengthDivisions,this}toJSON(){const o={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return o.arcLengthDivisions=this.arcLengthDivisions,o.type=this.type,o}fromJSON(o){return this.arcLengthDivisions=o.arcLengthDivisions,this}}class EllipseCurve extends Curve{constructor(o=0,et=0,tt=1,nt=1,rt=0,it=Math.PI*2,ot=!1,st=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=o,this.aY=et,this.xRadius=tt,this.yRadius=nt,this.aStartAngle=rt,this.aEndAngle=it,this.aClockwise=ot,this.aRotation=st}getPoint(o,et=new Vector2){const tt=et,nt=Math.PI*2;let rt=this.aEndAngle-this.aStartAngle;const it=Math.abs(rt)nt;)rt-=nt;rt0?0:(Math.floor(Math.abs(ot)/rt)+1)*rt:st===0&&ot===rt-1&&(ot=rt-2,st=1);let at,lt;this.closed||ot>0?at=nt[(ot-1)%rt]:(tmp.subVectors(nt[0],nt[1]).add(nt[0]),at=tmp);const ut=nt[ot%rt],dt=nt[(ot+1)%rt];if(this.closed||ot+2nt.length-2?nt.length-1:it+1],ut=nt[it>nt.length-3?nt.length-1:it+2];return tt.set(CatmullRom(ot,st.x,at.x,lt.x,ut.x),CatmullRom(ot,st.y,at.y,lt.y,ut.y)),tt}copy(o){super.copy(o),this.points=[];for(let et=0,tt=o.points.length;et=tt){const it=nt[rt]-tt,ot=this.curves[rt],st=ot.getLength(),at=st===0?0:1-it/st;return ot.getPointAt(at,et)}rt++}return null}getLength(){const o=this.getCurveLengths();return o[o.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const o=[];let et=0;for(let tt=0,nt=this.curves.length;tt1&&!et[et.length-1].equals(et[0])&&et.push(et[0]),et}copy(o){super.copy(o),this.curves=[];for(let et=0,tt=o.curves.length;et0){const ut=at.getPoint(0);ut.equals(this.currentPoint)||this.lineTo(ut.x,ut.y)}this.curves.push(at);const lt=at.getPoint(1);return this.currentPoint.copy(lt),this}copy(o){return super.copy(o),this.currentPoint.copy(o.currentPoint),this}toJSON(){const o=super.toJSON();return o.currentPoint=this.currentPoint.toArray(),o}fromJSON(o){return super.fromJSON(o),this.currentPoint.fromArray(o.currentPoint),this}};class LatheGeometry extends BufferGeometry{constructor(o=[new Vector2(0,-.5),new Vector2(.5,0),new Vector2(0,.5)],et=12,tt=0,nt=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:o,segments:et,phiStart:tt,phiLength:nt},et=Math.floor(et),nt=clamp$4(nt,0,Math.PI*2);const rt=[],it=[],ot=[],st=[],at=[],lt=1/et,ut=new Vector3,dt=new Vector2,ht=new Vector3,ct=new Vector3,pt=new Vector3;let ft=0,gt=0;for(let yt=0;yt<=o.length-1;yt++)switch(yt){case 0:ft=o[yt+1].x-o[yt].x,gt=o[yt+1].y-o[yt].y,ht.x=gt*1,ht.y=-ft,ht.z=gt*0,pt.copy(ht),ht.normalize(),st.push(ht.x,ht.y,ht.z);break;case o.length-1:st.push(pt.x,pt.y,pt.z);break;default:ft=o[yt+1].x-o[yt].x,gt=o[yt+1].y-o[yt].y,ht.x=gt*1,ht.y=-ft,ht.z=gt*0,ct.copy(ht),ht.x+=pt.x,ht.y+=pt.y,ht.z+=pt.z,ht.normalize(),st.push(ht.x,ht.y,ht.z),pt.copy(ct)}for(let yt=0;yt<=et;yt++){const Ut=tt+yt*lt*nt,Ft=Math.sin(Ut),mt=Math.cos(Ut);for(let vt=0;vt<=o.length-1;vt++){ut.x=o[vt].x*Ft,ut.y=o[vt].y,ut.z=o[vt].x*mt,it.push(ut.x,ut.y,ut.z),dt.x=yt/et,dt.y=vt/(o.length-1),ot.push(dt.x,dt.y);const At=st[3*vt+0]*Ft,Lt=st[3*vt+1],Rt=st[3*vt+0]*mt;at.push(At,Lt,Rt)}}for(let yt=0;yt0&&Ut(!0),et>0&&Ut(!1)),this.setIndex(lt),this.setAttribute("position",new Float32BufferAttribute(ut,3)),this.setAttribute("normal",new Float32BufferAttribute(dt,3)),this.setAttribute("uv",new Float32BufferAttribute(ht,2));function yt(){const Ft=new Vector3,mt=new Vector3;let vt=0;const At=(et-o)/tt;for(let Lt=0;Lt<=rt;Lt++){const Rt=[],St=Lt/rt,Tt=St*(et-o)+o;for(let Bt=0;Bt<=nt;Bt++){const xt=Bt/nt,Ct=xt*st+ot,kt=Math.sin(Ct),Nt=Math.cos(Ct);mt.x=Tt*kt,mt.y=-St*tt+ft,mt.z=Tt*Nt,ut.push(mt.x,mt.y,mt.z),Ft.set(kt,At,Nt).normalize(),dt.push(Ft.x,Ft.y,Ft.z),ht.push(xt,1-St),Rt.push(ct++)}pt.push(Rt)}for(let Lt=0;Lt.9&&At<.1&&(Ut<.2&&(it[yt+0]+=1),Ft<.2&&(it[yt+2]+=1),mt<.2&&(it[yt+4]+=1))}}function dt(yt){rt.push(yt.x,yt.y,yt.z)}function ht(yt,Ut){const Ft=yt*3;Ut.x=o[Ft+0],Ut.y=o[Ft+1],Ut.z=o[Ft+2]}function ct(){const yt=new Vector3,Ut=new Vector3,Ft=new Vector3,mt=new Vector3,vt=new Vector2,At=new Vector2,Lt=new Vector2;for(let Rt=0,St=0;Rt80*et){ot=at=s[0],st=lt=s[1];for(let ct=et;ctat&&(at=ut),dt>lt&&(lt=dt);ht=Math.max(at-ot,lt-st),ht=ht!==0?32767/ht:0}return earcutLinked(rt,it,et,ot,st,ht,0),it}};function linkedList(s,o,et,tt,nt){let rt,it;if(nt===signedArea(s,o,et,tt)>0)for(rt=o;rt=o;rt-=tt)it=insertNode(rt,s[rt],s[rt+1],it);return it&&equals(it,it.next)&&(removeNode(it),it=it.next),it}function filterPoints(s,o){if(!s)return s;o||(o=s);let et=s,tt;do if(tt=!1,!et.steiner&&(equals(et,et.next)||area(et.prev,et,et.next)===0)){if(removeNode(et),et=o=et.prev,et===et.next)break;tt=!0}else et=et.next;while(tt||et!==o);return o}function earcutLinked(s,o,et,tt,nt,rt,it){if(!s)return;!it&&rt&&indexCurve(s,tt,nt,rt);let ot=s,st,at;for(;s.prev!==s.next;){if(st=s.prev,at=s.next,rt?isEarHashed(s,tt,nt,rt):isEar(s)){o.push(st.i/et|0),o.push(s.i/et|0),o.push(at.i/et|0),removeNode(s),s=at.next,ot=at.next;continue}if(s=at,s===ot){it?it===1?(s=cureLocalIntersections(filterPoints(s),o,et),earcutLinked(s,o,et,tt,nt,rt,2)):it===2&&splitEarcut(s,o,et,tt,nt,rt):earcutLinked(filterPoints(s),o,et,tt,nt,rt,1);break}}}function isEar(s){const o=s.prev,et=s,tt=s.next;if(area(o,et,tt)>=0)return!1;const nt=o.x,rt=et.x,it=tt.x,ot=o.y,st=et.y,at=tt.y,lt=ntrt?nt>it?nt:it:rt>it?rt:it,ht=ot>st?ot>at?ot:at:st>at?st:at;let ct=tt.next;for(;ct!==o;){if(ct.x>=lt&&ct.x<=dt&&ct.y>=ut&&ct.y<=ht&&pointInTriangle(nt,ot,rt,st,it,at,ct.x,ct.y)&&area(ct.prev,ct,ct.next)>=0)return!1;ct=ct.next}return!0}function isEarHashed(s,o,et,tt){const nt=s.prev,rt=s,it=s.next;if(area(nt,rt,it)>=0)return!1;const ot=nt.x,st=rt.x,at=it.x,lt=nt.y,ut=rt.y,dt=it.y,ht=otst?ot>at?ot:at:st>at?st:at,ft=lt>ut?lt>dt?lt:dt:ut>dt?ut:dt,gt=zOrder(ht,ct,o,et,tt),yt=zOrder(pt,ft,o,et,tt);let Ut=s.prevZ,Ft=s.nextZ;for(;Ut&&Ut.z>=gt&&Ft&&Ft.z<=yt;){if(Ut.x>=ht&&Ut.x<=pt&&Ut.y>=ct&&Ut.y<=ft&&Ut!==nt&&Ut!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ut.x,Ut.y)&&area(Ut.prev,Ut,Ut.next)>=0||(Ut=Ut.prevZ,Ft.x>=ht&&Ft.x<=pt&&Ft.y>=ct&&Ft.y<=ft&&Ft!==nt&&Ft!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ft.x,Ft.y)&&area(Ft.prev,Ft,Ft.next)>=0))return!1;Ft=Ft.nextZ}for(;Ut&&Ut.z>=gt;){if(Ut.x>=ht&&Ut.x<=pt&&Ut.y>=ct&&Ut.y<=ft&&Ut!==nt&&Ut!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ut.x,Ut.y)&&area(Ut.prev,Ut,Ut.next)>=0)return!1;Ut=Ut.prevZ}for(;Ft&&Ft.z<=yt;){if(Ft.x>=ht&&Ft.x<=pt&&Ft.y>=ct&&Ft.y<=ft&&Ft!==nt&&Ft!==it&&pointInTriangle(ot,lt,st,ut,at,dt,Ft.x,Ft.y)&&area(Ft.prev,Ft,Ft.next)>=0)return!1;Ft=Ft.nextZ}return!0}function cureLocalIntersections(s,o,et){let tt=s;do{const nt=tt.prev,rt=tt.next.next;!equals(nt,rt)&&intersects(nt,tt,tt.next,rt)&&locallyInside(nt,rt)&&locallyInside(rt,nt)&&(o.push(nt.i/et|0),o.push(tt.i/et|0),o.push(rt.i/et|0),removeNode(tt),removeNode(tt.next),tt=s=rt),tt=tt.next}while(tt!==s);return filterPoints(tt)}function splitEarcut(s,o,et,tt,nt,rt){let it=s;do{let ot=it.next.next;for(;ot!==it.prev;){if(it.i!==ot.i&&isValidDiagonal(it,ot)){let st=splitPolygon(it,ot);it=filterPoints(it,it.next),st=filterPoints(st,st.next),earcutLinked(it,o,et,tt,nt,rt,0),earcutLinked(st,o,et,tt,nt,rt,0);return}ot=ot.next}it=it.next}while(it!==s)}function eliminateHoles(s,o,et,tt){const nt=[];let rt,it,ot,st,at;for(rt=0,it=o.length;rt=et.next.y&&et.next.y!==et.y){const dt=et.x+(it-et.y)*(et.next.x-et.x)/(et.next.y-et.y);if(dt<=rt&&dt>tt&&(tt=dt,nt=et.x=et.x&&et.x>=st&&rt!==et.x&&pointInTriangle(itnt.x||et.x===nt.x&§orContainsSector(nt,et)))&&(nt=et,lt=ut)),et=et.next;while(et!==ot);return nt}function sectorContainsSector(s,o){return area(s.prev,s,o.prev)<0&&area(o.next,s,s.next)<0}function indexCurve(s,o,et,tt){let nt=s;do nt.z===0&&(nt.z=zOrder(nt.x,nt.y,o,et,tt)),nt.prevZ=nt.prev,nt.nextZ=nt.next,nt=nt.next;while(nt!==s);nt.prevZ.nextZ=null,nt.prevZ=null,sortLinked(nt)}function sortLinked(s){let o,et,tt,nt,rt,it,ot,st,at=1;do{for(et=s,s=null,rt=null,it=0;et;){for(it++,tt=et,ot=0,o=0;o0||st>0&&tt;)ot!==0&&(st===0||!tt||et.z<=tt.z)?(nt=et,et=et.nextZ,ot--):(nt=tt,tt=tt.nextZ,st--),rt?rt.nextZ=nt:s=nt,nt.prevZ=rt,rt=nt;et=tt}rt.nextZ=null,at*=2}while(it>1);return s}function zOrder(s,o,et,tt,nt){return s=(s-et)*nt|0,o=(o-tt)*nt|0,s=(s|s<<8)&16711935,s=(s|s<<4)&252645135,s=(s|s<<2)&858993459,s=(s|s<<1)&1431655765,o=(o|o<<8)&16711935,o=(o|o<<4)&252645135,o=(o|o<<2)&858993459,o=(o|o<<1)&1431655765,s|o<<1}function getLeftmost(s){let o=s,et=s;do(o.x=(s-it)*(rt-ot)&&(s-it)*(tt-ot)>=(et-it)*(o-ot)&&(et-it)*(rt-ot)>=(nt-it)*(tt-ot)}function isValidDiagonal(s,o){return s.next.i!==o.i&&s.prev.i!==o.i&&!intersectsPolygon(s,o)&&(locallyInside(s,o)&&locallyInside(o,s)&&middleInside(s,o)&&(area(s.prev,s,o.prev)||area(s,o.prev,o))||equals(s,o)&&area(s.prev,s,s.next)>0&&area(o.prev,o,o.next)>0)}function area(s,o,et){return(o.y-s.y)*(et.x-o.x)-(o.x-s.x)*(et.y-o.y)}function equals(s,o){return s.x===o.x&&s.y===o.y}function intersects(s,o,et,tt){const nt=sign$1(area(s,o,et)),rt=sign$1(area(s,o,tt)),it=sign$1(area(et,tt,s)),ot=sign$1(area(et,tt,o));return!!(nt!==rt&&it!==ot||nt===0&&onSegment(s,et,o)||rt===0&&onSegment(s,tt,o)||it===0&&onSegment(et,s,tt)||ot===0&&onSegment(et,o,tt))}function onSegment(s,o,et){return o.x<=Math.max(s.x,et.x)&&o.x>=Math.min(s.x,et.x)&&o.y<=Math.max(s.y,et.y)&&o.y>=Math.min(s.y,et.y)}function sign$1(s){return s>0?1:s<0?-1:0}function intersectsPolygon(s,o){let et=s;do{if(et.i!==s.i&&et.next.i!==s.i&&et.i!==o.i&&et.next.i!==o.i&&intersects(et,et.next,s,o))return!0;et=et.next}while(et!==s);return!1}function locallyInside(s,o){return area(s.prev,s,s.next)<0?area(s,o,s.next)>=0&&area(s,s.prev,o)>=0:area(s,o,s.prev)<0||area(s,s.next,o)<0}function middleInside(s,o){let et=s,tt=!1;const nt=(s.x+o.x)/2,rt=(s.y+o.y)/2;do et.y>rt!=et.next.y>rt&&et.next.y!==et.y&&nt<(et.next.x-et.x)*(rt-et.y)/(et.next.y-et.y)+et.x&&(tt=!tt),et=et.next;while(et!==s);return tt}function splitPolygon(s,o){const et=new Node$1(s.i,s.x,s.y),tt=new Node$1(o.i,o.x,o.y),nt=s.next,rt=o.prev;return s.next=o,o.prev=s,et.next=nt,nt.prev=et,tt.next=et,et.prev=tt,rt.next=tt,tt.prev=rt,tt}function insertNode(s,o,et,tt){const nt=new Node$1(s,o,et);return tt?(nt.next=tt.next,nt.prev=tt,tt.next.prev=nt,tt.next=nt):(nt.prev=nt,nt.next=nt),nt}function removeNode(s){s.next.prev=s.prev,s.prev.next=s.next,s.prevZ&&(s.prevZ.nextZ=s.nextZ),s.nextZ&&(s.nextZ.prevZ=s.prevZ)}function Node$1(s,o,et){this.i=s,this.x=o,this.y=et,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function signedArea(s,o,et,tt){let nt=0;for(let rt=o,it=et-tt;rt2&&s[o-1].equals(s[0])&&s.pop()}function addContour(s,o){for(let et=0;etNumber.EPSILON){const Pn=Math.sqrt(wn),$n=Math.sqrt(gn*gn+hn*hn),Tr=on.x-On/Pn,Qr=on.y+Un/Pn,_r=Xt.x-hn/$n,Ir=Xt.y+gn/$n,Jr=((_r-Tr)*hn-(Ir-Qr)*gn)/(Un*hn-On*gn);dn=Tr+Un*Jr-qt.x,_n=Qr+On*Jr-qt.y;const qr=dn*dn+_n*_n;if(qr<=2)return new Vector2(dn,_n);Fn=Math.sqrt(qr/2)}else{let Pn=!1;Un>Number.EPSILON?gn>Number.EPSILON&&(Pn=!0):Un<-Number.EPSILON?gn<-Number.EPSILON&&(Pn=!0):Math.sign(On)===Math.sign(hn)&&(Pn=!0),Pn?(dn=-On,_n=Un,Fn=Math.sqrt(wn)):(dn=Un,_n=On,Fn=Math.sqrt(wn/2))}return new Vector2(dn/Fn,_n/Fn)}const Dt=[];for(let qt=0,on=Ct.length,Xt=on-1,dn=qt+1;qt=0;qt--){const on=qt/ft,Xt=ht*Math.cos(on*Math.PI/2),dn=ct*Math.sin(on*Math.PI/2)+pt;for(let _n=0,Fn=Ct.length;_n=0;){const dn=Xt;let _n=Xt-1;_n<0&&(_n=qt.length-1);for(let Fn=0,Un=lt+ft*2;Fn0)&&ht.push(Ut,Ft,vt),(gt!==tt-1||st0!=o>0&&this.version++,this._anisotropy=o}get clearcoat(){return this._clearcoat}set clearcoat(o){this._clearcoat>0!=o>0&&this.version++,this._clearcoat=o}get iridescence(){return this._iridescence}set iridescence(o){this._iridescence>0!=o>0&&this.version++,this._iridescence=o}get dispersion(){return this._dispersion}set dispersion(o){this._dispersion>0!=o>0&&this.version++,this._dispersion=o}get sheen(){return this._sheen}set sheen(o){this._sheen>0!=o>0&&this.version++,this._sheen=o}get transmission(){return this._transmission}set transmission(o){this._transmission>0!=o>0&&this.version++,this._transmission=o}copy(o){return super.copy(o),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=o.anisotropy,this.anisotropyRotation=o.anisotropyRotation,this.anisotropyMap=o.anisotropyMap,this.clearcoat=o.clearcoat,this.clearcoatMap=o.clearcoatMap,this.clearcoatRoughness=o.clearcoatRoughness,this.clearcoatRoughnessMap=o.clearcoatRoughnessMap,this.clearcoatNormalMap=o.clearcoatNormalMap,this.clearcoatNormalScale.copy(o.clearcoatNormalScale),this.dispersion=o.dispersion,this.ior=o.ior,this.iridescence=o.iridescence,this.iridescenceMap=o.iridescenceMap,this.iridescenceIOR=o.iridescenceIOR,this.iridescenceThicknessRange=[...o.iridescenceThicknessRange],this.iridescenceThicknessMap=o.iridescenceThicknessMap,this.sheen=o.sheen,this.sheenColor.copy(o.sheenColor),this.sheenColorMap=o.sheenColorMap,this.sheenRoughness=o.sheenRoughness,this.sheenRoughnessMap=o.sheenRoughnessMap,this.transmission=o.transmission,this.transmissionMap=o.transmissionMap,this.thickness=o.thickness,this.thicknessMap=o.thicknessMap,this.attenuationDistance=o.attenuationDistance,this.attenuationColor.copy(o.attenuationColor),this.specularIntensity=o.specularIntensity,this.specularIntensityMap=o.specularIntensityMap,this.specularColor.copy(o.specularColor),this.specularColorMap=o.specularColorMap,this}}class MeshPhongMaterial extends Material{constructor(o){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Color$2(16777215),this.specular=new Color$2(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$2(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.specular.copy(o.specular),this.shininess=o.shininess,this.map=o.map,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.emissive.copy(o.emissive),this.emissiveMap=o.emissiveMap,this.emissiveIntensity=o.emissiveIntensity,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.specularMap=o.specularMap,this.alphaMap=o.alphaMap,this.envMap=o.envMap,this.envMapRotation.copy(o.envMapRotation),this.combine=o.combine,this.reflectivity=o.reflectivity,this.refractionRatio=o.refractionRatio,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.flatShading=o.flatShading,this.fog=o.fog,this}}class MeshToonMaterial extends Material{constructor(o){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Color$2(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$2(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.map=o.map,this.gradientMap=o.gradientMap,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.emissive.copy(o.emissive),this.emissiveMap=o.emissiveMap,this.emissiveIntensity=o.emissiveIntensity,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.alphaMap=o.alphaMap,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.fog=o.fog,this}}class MeshNormalMaterial extends Material{constructor(o){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(o)}copy(o){return super.copy(o),this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.flatShading=o.flatShading,this}}class MeshLambertMaterial extends Material{constructor(o){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Color$2(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$2(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.color.copy(o.color),this.map=o.map,this.lightMap=o.lightMap,this.lightMapIntensity=o.lightMapIntensity,this.aoMap=o.aoMap,this.aoMapIntensity=o.aoMapIntensity,this.emissive.copy(o.emissive),this.emissiveMap=o.emissiveMap,this.emissiveIntensity=o.emissiveIntensity,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.specularMap=o.specularMap,this.alphaMap=o.alphaMap,this.envMap=o.envMap,this.envMapRotation.copy(o.envMapRotation),this.combine=o.combine,this.reflectivity=o.reflectivity,this.refractionRatio=o.refractionRatio,this.wireframe=o.wireframe,this.wireframeLinewidth=o.wireframeLinewidth,this.wireframeLinecap=o.wireframeLinecap,this.wireframeLinejoin=o.wireframeLinejoin,this.flatShading=o.flatShading,this.fog=o.fog,this}}class MeshMatcapMaterial extends Material{constructor(o){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Color$2(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(o)}copy(o){return super.copy(o),this.defines={MATCAP:""},this.color.copy(o.color),this.matcap=o.matcap,this.map=o.map,this.bumpMap=o.bumpMap,this.bumpScale=o.bumpScale,this.normalMap=o.normalMap,this.normalMapType=o.normalMapType,this.normalScale.copy(o.normalScale),this.displacementMap=o.displacementMap,this.displacementScale=o.displacementScale,this.displacementBias=o.displacementBias,this.alphaMap=o.alphaMap,this.flatShading=o.flatShading,this.fog=o.fog,this}}class LineDashedMaterial extends LineBasicMaterial{constructor(o){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(o)}copy(o){return super.copy(o),this.scale=o.scale,this.dashSize=o.dashSize,this.gapSize=o.gapSize,this}}function convertArray(s,o,et){return!s||!et&&s.constructor===o?s:typeof o.BYTES_PER_ELEMENT=="number"?new o(s):Array.prototype.slice.call(s)}function isTypedArray(s){return ArrayBuffer.isView(s)&&!(s instanceof DataView)}function getKeyframeOrder(s){function o(nt,rt){return s[nt]-s[rt]}const et=s.length,tt=new Array(et);for(let nt=0;nt!==et;++nt)tt[nt]=nt;return tt.sort(o),tt}function sortedArray(s,o,et){const tt=s.length,nt=new s.constructor(tt);for(let rt=0,it=0;it!==tt;++rt){const ot=et[rt]*o;for(let st=0;st!==o;++st)nt[it++]=s[ot+st]}return nt}function flattenJSON(s,o,et,tt){let nt=1,rt=s[0];for(;rt!==void 0&&rt[tt]===void 0;)rt=s[nt++];if(rt===void 0)return;let it=rt[tt];if(it!==void 0)if(Array.isArray(it))do it=rt[tt],it!==void 0&&(o.push(rt.time),et.push.apply(et,it)),rt=s[nt++];while(rt!==void 0);else if(it.toArray!==void 0)do it=rt[tt],it!==void 0&&(o.push(rt.time),it.toArray(et,et.length)),rt=s[nt++];while(rt!==void 0);else do it=rt[tt],it!==void 0&&(o.push(rt.time),et.push(it)),rt=s[nt++];while(rt!==void 0)}function subclip(s,o,et,tt,nt=30){const rt=s.clone();rt.name=o;const it=[];for(let st=0;st=tt)){ut.push(at.times[ht]);for(let pt=0;ptrt.tracks[st].times[0]&&(ot=rt.tracks[st].times[0]);for(let st=0;st=ot.times[ct]){const gt=ct*ut+lt,yt=gt+ut-lt;pt=ot.values.slice(gt,yt)}else{const gt=ot.createInterpolant(),yt=lt,Ut=ut-lt;gt.evaluate(rt),pt=gt.resultBuffer.slice(yt,Ut)}st==="quaternion"&&new Quaternion().fromArray(pt).normalize().conjugate().toArray(pt);const ft=at.times.length;for(let gt=0;gt=rt)){const ot=et[1];o=rt)break t}it=tt,tt=0;break n}break e}for(;tt>>1;oet;)--it;if(++it,rt!==0||it!==nt){rt>=it&&(it=Math.max(it,1),rt=it-1);const ot=this.getValueSize();this.times=tt.slice(rt,it),this.values=this.values.slice(rt*ot,it*ot)}return this}validate(){let o=!0;const et=this.getValueSize();et-Math.floor(et)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),o=!1);const tt=this.times,nt=this.values,rt=tt.length;rt===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),o=!1);let it=null;for(let ot=0;ot!==rt;ot++){const st=tt[ot];if(typeof st=="number"&&isNaN(st)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,ot,st),o=!1;break}if(it!==null&&it>st){console.error("THREE.KeyframeTrack: Out of order keys.",this,ot,st,it),o=!1;break}it=st}if(nt!==void 0&&isTypedArray(nt))for(let ot=0,st=nt.length;ot!==st;++ot){const at=nt[ot];if(isNaN(at)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,ot,at),o=!1;break}}return o}optimize(){const o=this.times.slice(),et=this.values.slice(),tt=this.getValueSize(),nt=this.getInterpolation()===InterpolateSmooth,rt=o.length-1;let it=1;for(let ot=1;ot0){o[it]=o[rt];for(let ot=rt*tt,st=it*tt,at=0;at!==tt;++at)et[st+at]=et[ot+at];++it}return it!==o.length?(this.times=o.slice(0,it),this.values=et.slice(0,it*tt)):(this.times=o,this.values=et),this}clone(){const o=this.times.slice(),et=this.values.slice(),tt=this.constructor,nt=new tt(this.name,o,et);return nt.createInterpolant=this.createInterpolant,nt}}KeyframeTrack.prototype.TimeBufferType=Float32Array;KeyframeTrack.prototype.ValueBufferType=Float32Array;KeyframeTrack.prototype.DefaultInterpolation=InterpolateLinear;class BooleanKeyframeTrack extends KeyframeTrack{constructor(o,et,tt){super(o,et,tt)}}BooleanKeyframeTrack.prototype.ValueTypeName="bool";BooleanKeyframeTrack.prototype.ValueBufferType=Array;BooleanKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class ColorKeyframeTrack extends KeyframeTrack{}ColorKeyframeTrack.prototype.ValueTypeName="color";class NumberKeyframeTrack extends KeyframeTrack{}NumberKeyframeTrack.prototype.ValueTypeName="number";class QuaternionLinearInterpolant extends Interpolant{constructor(o,et,tt,nt){super(o,et,tt,nt)}interpolate_(o,et,tt,nt){const rt=this.resultBuffer,it=this.sampleValues,ot=this.valueSize,st=(tt-et)/(nt-et);let at=o*ot;for(let lt=at+ot;at!==lt;at+=4)Quaternion.slerpFlat(rt,0,it,at-ot,it,at,st);return rt}}class QuaternionKeyframeTrack extends KeyframeTrack{InterpolantFactoryMethodLinear(o){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),o)}}QuaternionKeyframeTrack.prototype.ValueTypeName="quaternion";QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class StringKeyframeTrack extends KeyframeTrack{constructor(o,et,tt){super(o,et,tt)}}StringKeyframeTrack.prototype.ValueTypeName="string";StringKeyframeTrack.prototype.ValueBufferType=Array;StringKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class VectorKeyframeTrack extends KeyframeTrack{}VectorKeyframeTrack.prototype.ValueTypeName="vector";class AnimationClip{constructor(o="",et=-1,tt=[],nt=NormalAnimationBlendMode){this.name=o,this.tracks=tt,this.duration=et,this.blendMode=nt,this.uuid=generateUUID(),this.duration<0&&this.resetDuration()}static parse(o){const et=[],tt=o.tracks,nt=1/(o.fps||1);for(let it=0,ot=tt.length;it!==ot;++it)et.push(parseKeyframeTrack(tt[it]).scale(nt));const rt=new this(o.name,o.duration,et,o.blendMode);return rt.uuid=o.uuid,rt}static toJSON(o){const et=[],tt=o.tracks,nt={name:o.name,duration:o.duration,tracks:et,uuid:o.uuid,blendMode:o.blendMode};for(let rt=0,it=tt.length;rt!==it;++rt)et.push(KeyframeTrack.toJSON(tt[rt]));return nt}static CreateFromMorphTargetSequence(o,et,tt,nt){const rt=et.length,it=[];for(let ot=0;ot1){const ut=lt[1];let dt=nt[ut];dt||(nt[ut]=dt=[]),dt.push(at)}}const it=[];for(const ot in nt)it.push(this.CreateFromMorphTargetSequence(ot,nt[ot],et,tt));return it}static parseAnimation(o,et){if(!o)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const tt=function(ut,dt,ht,ct,pt){if(ht.length!==0){const ft=[],gt=[];flattenJSON(ht,ft,gt,ct),ft.length!==0&&pt.push(new ut(dt,ft,gt))}},nt=[],rt=o.name||"default",it=o.fps||30,ot=o.blendMode;let st=o.length||-1;const at=o.hierarchy||[];for(let ut=0;ut{et&&et(rt),this.manager.itemEnd(o)},0),rt;if(loading[o]!==void 0){loading[o].push({onLoad:et,onProgress:tt,onError:nt});return}loading[o]=[],loading[o].push({onLoad:et,onProgress:tt,onError:nt});const it=new Request(o,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),ot=this.mimeType,st=this.responseType;fetch(it).then(at=>{if(at.status===200||at.status===0){if(at.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||at.body===void 0||at.body.getReader===void 0)return at;const lt=loading[o],ut=at.body.getReader(),dt=at.headers.get("X-File-Size")||at.headers.get("Content-Length"),ht=dt?parseInt(dt):0,ct=ht!==0;let pt=0;const ft=new ReadableStream({start(gt){yt();function yt(){ut.read().then(({done:Ut,value:Ft})=>{if(Ut)gt.close();else{pt+=Ft.byteLength;const mt=new ProgressEvent("progress",{lengthComputable:ct,loaded:pt,total:ht});for(let vt=0,At=lt.length;vt{gt.error(Ut)})}}});return new Response(ft)}else throw new HttpError(`fetch for "${at.url}" responded with ${at.status}: ${at.statusText}`,at)}).then(at=>{switch(st){case"arraybuffer":return at.arrayBuffer();case"blob":return at.blob();case"document":return at.text().then(lt=>new DOMParser().parseFromString(lt,ot));case"json":return at.json();default:if(ot===void 0)return at.text();{const ut=/charset="?([^;"\s]*)"?/i.exec(ot),dt=ut&&ut[1]?ut[1].toLowerCase():void 0,ht=new TextDecoder(dt);return at.arrayBuffer().then(ct=>ht.decode(ct))}}}).then(at=>{Cache.add(o,at);const lt=loading[o];delete loading[o];for(let ut=0,dt=lt.length;ut{const lt=loading[o];if(lt===void 0)throw this.manager.itemError(o),at;delete loading[o];for(let ut=0,dt=lt.length;ut{this.manager.itemEnd(o)}),this.manager.itemStart(o)}setResponseType(o){return this.responseType=o,this}setMimeType(o){return this.mimeType=o,this}}class AnimationLoader extends Loader{constructor(o){super(o)}load(o,et,tt,nt){const rt=this,it=new FileLoader(this.manager);it.setPath(this.path),it.setRequestHeader(this.requestHeader),it.setWithCredentials(this.withCredentials),it.load(o,function(ot){try{et(rt.parse(JSON.parse(ot)))}catch(st){nt?nt(st):console.error(st),rt.manager.itemError(o)}},tt,nt)}parse(o){const et=[];for(let tt=0;tt0:nt.vertexColors=o.vertexColors),o.uniforms!==void 0)for(const rt in o.uniforms){const it=o.uniforms[rt];switch(nt.uniforms[rt]={},it.type){case"t":nt.uniforms[rt].value=tt(it.value);break;case"c":nt.uniforms[rt].value=new Color$2().setHex(it.value);break;case"v2":nt.uniforms[rt].value=new Vector2().fromArray(it.value);break;case"v3":nt.uniforms[rt].value=new Vector3().fromArray(it.value);break;case"v4":nt.uniforms[rt].value=new Vector4().fromArray(it.value);break;case"m3":nt.uniforms[rt].value=new Matrix3().fromArray(it.value);break;case"m4":nt.uniforms[rt].value=new Matrix4().fromArray(it.value);break;default:nt.uniforms[rt].value=it.value}}if(o.defines!==void 0&&(nt.defines=o.defines),o.vertexShader!==void 0&&(nt.vertexShader=o.vertexShader),o.fragmentShader!==void 0&&(nt.fragmentShader=o.fragmentShader),o.glslVersion!==void 0&&(nt.glslVersion=o.glslVersion),o.extensions!==void 0)for(const rt in o.extensions)nt.extensions[rt]=o.extensions[rt];if(o.lights!==void 0&&(nt.lights=o.lights),o.clipping!==void 0&&(nt.clipping=o.clipping),o.size!==void 0&&(nt.size=o.size),o.sizeAttenuation!==void 0&&(nt.sizeAttenuation=o.sizeAttenuation),o.map!==void 0&&(nt.map=tt(o.map)),o.matcap!==void 0&&(nt.matcap=tt(o.matcap)),o.alphaMap!==void 0&&(nt.alphaMap=tt(o.alphaMap)),o.bumpMap!==void 0&&(nt.bumpMap=tt(o.bumpMap)),o.bumpScale!==void 0&&(nt.bumpScale=o.bumpScale),o.normalMap!==void 0&&(nt.normalMap=tt(o.normalMap)),o.normalMapType!==void 0&&(nt.normalMapType=o.normalMapType),o.normalScale!==void 0){let rt=o.normalScale;Array.isArray(rt)===!1&&(rt=[rt,rt]),nt.normalScale=new Vector2().fromArray(rt)}return o.displacementMap!==void 0&&(nt.displacementMap=tt(o.displacementMap)),o.displacementScale!==void 0&&(nt.displacementScale=o.displacementScale),o.displacementBias!==void 0&&(nt.displacementBias=o.displacementBias),o.roughnessMap!==void 0&&(nt.roughnessMap=tt(o.roughnessMap)),o.metalnessMap!==void 0&&(nt.metalnessMap=tt(o.metalnessMap)),o.emissiveMap!==void 0&&(nt.emissiveMap=tt(o.emissiveMap)),o.emissiveIntensity!==void 0&&(nt.emissiveIntensity=o.emissiveIntensity),o.specularMap!==void 0&&(nt.specularMap=tt(o.specularMap)),o.specularIntensityMap!==void 0&&(nt.specularIntensityMap=tt(o.specularIntensityMap)),o.specularColorMap!==void 0&&(nt.specularColorMap=tt(o.specularColorMap)),o.envMap!==void 0&&(nt.envMap=tt(o.envMap)),o.envMapRotation!==void 0&&nt.envMapRotation.fromArray(o.envMapRotation),o.envMapIntensity!==void 0&&(nt.envMapIntensity=o.envMapIntensity),o.reflectivity!==void 0&&(nt.reflectivity=o.reflectivity),o.refractionRatio!==void 0&&(nt.refractionRatio=o.refractionRatio),o.lightMap!==void 0&&(nt.lightMap=tt(o.lightMap)),o.lightMapIntensity!==void 0&&(nt.lightMapIntensity=o.lightMapIntensity),o.aoMap!==void 0&&(nt.aoMap=tt(o.aoMap)),o.aoMapIntensity!==void 0&&(nt.aoMapIntensity=o.aoMapIntensity),o.gradientMap!==void 0&&(nt.gradientMap=tt(o.gradientMap)),o.clearcoatMap!==void 0&&(nt.clearcoatMap=tt(o.clearcoatMap)),o.clearcoatRoughnessMap!==void 0&&(nt.clearcoatRoughnessMap=tt(o.clearcoatRoughnessMap)),o.clearcoatNormalMap!==void 0&&(nt.clearcoatNormalMap=tt(o.clearcoatNormalMap)),o.clearcoatNormalScale!==void 0&&(nt.clearcoatNormalScale=new Vector2().fromArray(o.clearcoatNormalScale)),o.iridescenceMap!==void 0&&(nt.iridescenceMap=tt(o.iridescenceMap)),o.iridescenceThicknessMap!==void 0&&(nt.iridescenceThicknessMap=tt(o.iridescenceThicknessMap)),o.transmissionMap!==void 0&&(nt.transmissionMap=tt(o.transmissionMap)),o.thicknessMap!==void 0&&(nt.thicknessMap=tt(o.thicknessMap)),o.anisotropyMap!==void 0&&(nt.anisotropyMap=tt(o.anisotropyMap)),o.sheenColorMap!==void 0&&(nt.sheenColorMap=tt(o.sheenColorMap)),o.sheenRoughnessMap!==void 0&&(nt.sheenRoughnessMap=tt(o.sheenRoughnessMap)),nt}setTextures(o){return this.textures=o,this}static createMaterialFromType(o){const et={ShadowMaterial,SpriteMaterial,RawShaderMaterial,ShaderMaterial,PointsMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshPhongMaterial,MeshToonMaterial,MeshNormalMaterial,MeshLambertMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshBasicMaterial,MeshMatcapMaterial,LineDashedMaterial,LineBasicMaterial,Material};return new et[o]}}class LoaderUtils{static decodeText(o){if(console.warn("THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead."),typeof TextDecoder<"u")return new TextDecoder().decode(o);let et="";for(let tt=0,nt=o.length;tt0){const st=new LoadingManager(et);rt=new ImageLoader(st),rt.setCrossOrigin(this.crossOrigin);for(let at=0,lt=o.length;at0){nt=new ImageLoader(this.manager),nt.setCrossOrigin(this.crossOrigin);for(let it=0,ot=o.length;it{const ft=new Box3;ft.min.fromArray(pt.boxMin),ft.max.fromArray(pt.boxMax);const gt=new Sphere$1;return gt.radius=pt.sphereRadius,gt.center.fromArray(pt.sphereCenter),{boxInitialized:pt.boxInitialized,box:ft,sphereInitialized:pt.sphereInitialized,sphere:gt}}),it._maxGeometryCount=o.maxGeometryCount,it._maxVertexCount=o.maxVertexCount,it._maxIndexCount=o.maxIndexCount,it._geometryInitialized=o.geometryInitialized,it._geometryCount=o.geometryCount,it._matricesTexture=at(o.matricesTexture.uuid),o.colorsTexture!==void 0&&(it._colorsTexture=at(o.colorsTexture.uuid));break;case"LOD":it=new LOD;break;case"Line":it=new Line$1(ot(o.geometry),st(o.material));break;case"LineLoop":it=new LineLoop(ot(o.geometry),st(o.material));break;case"LineSegments":it=new LineSegments(ot(o.geometry),st(o.material));break;case"PointCloud":case"Points":it=new Points(ot(o.geometry),st(o.material));break;case"Sprite":it=new Sprite(st(o.material));break;case"Group":it=new Group;break;case"Bone":it=new Bone;break;default:it=new Object3D}if(it.uuid=o.uuid,o.name!==void 0&&(it.name=o.name),o.matrix!==void 0?(it.matrix.fromArray(o.matrix),o.matrixAutoUpdate!==void 0&&(it.matrixAutoUpdate=o.matrixAutoUpdate),it.matrixAutoUpdate&&it.matrix.decompose(it.position,it.quaternion,it.scale)):(o.position!==void 0&&it.position.fromArray(o.position),o.rotation!==void 0&&it.rotation.fromArray(o.rotation),o.quaternion!==void 0&&it.quaternion.fromArray(o.quaternion),o.scale!==void 0&&it.scale.fromArray(o.scale)),o.up!==void 0&&it.up.fromArray(o.up),o.castShadow!==void 0&&(it.castShadow=o.castShadow),o.receiveShadow!==void 0&&(it.receiveShadow=o.receiveShadow),o.shadow&&(o.shadow.bias!==void 0&&(it.shadow.bias=o.shadow.bias),o.shadow.normalBias!==void 0&&(it.shadow.normalBias=o.shadow.normalBias),o.shadow.radius!==void 0&&(it.shadow.radius=o.shadow.radius),o.shadow.mapSize!==void 0&&it.shadow.mapSize.fromArray(o.shadow.mapSize),o.shadow.camera!==void 0&&(it.shadow.camera=this.parseObject(o.shadow.camera))),o.visible!==void 0&&(it.visible=o.visible),o.frustumCulled!==void 0&&(it.frustumCulled=o.frustumCulled),o.renderOrder!==void 0&&(it.renderOrder=o.renderOrder),o.userData!==void 0&&(it.userData=o.userData),o.layers!==void 0&&(it.layers.mask=o.layers),o.children!==void 0){const dt=o.children;for(let ht=0;ht"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(o){return this.options=o,this}load(o,et,tt,nt){o===void 0&&(o=""),this.path!==void 0&&(o=this.path+o),o=this.manager.resolveURL(o);const rt=this,it=Cache.get(o);if(it!==void 0){if(rt.manager.itemStart(o),it.then){it.then(at=>{et&&et(at),rt.manager.itemEnd(o)}).catch(at=>{nt&&nt(at)});return}return setTimeout(function(){et&&et(it),rt.manager.itemEnd(o)},0),it}const ot={};ot.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",ot.headers=this.requestHeader;const st=fetch(o,ot).then(function(at){return at.blob()}).then(function(at){return createImageBitmap(at,Object.assign(rt.options,{colorSpaceConversion:"none"}))}).then(function(at){return Cache.add(o,at),et&&et(at),rt.manager.itemEnd(o),at}).catch(function(at){nt&&nt(at),Cache.remove(o),rt.manager.itemError(o),rt.manager.itemEnd(o)});Cache.add(o,st),rt.manager.itemStart(o)}}let _context;class AudioContext{static getContext(){return _context===void 0&&(_context=new(window.AudioContext||window.webkitAudioContext)),_context}static setContext(o){_context=o}}class AudioLoader extends Loader{constructor(o){super(o)}load(o,et,tt,nt){const rt=this,it=new FileLoader(this.manager);it.setResponseType("arraybuffer"),it.setPath(this.path),it.setRequestHeader(this.requestHeader),it.setWithCredentials(this.withCredentials),it.load(o,function(st){try{const at=st.slice(0);AudioContext.getContext().decodeAudioData(at,function(ut){et(ut)}).catch(ot)}catch(at){ot(at)}},tt,nt);function ot(st){nt?nt(st):console.error(st),rt.manager.itemError(o)}}}const _eyeRight=new Matrix4,_eyeLeft=new Matrix4,_projectionMatrix=new Matrix4;class StereoCamera{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new PerspectiveCamera$1,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new PerspectiveCamera$1,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(o){const et=this._cache;if(et.focus!==o.focus||et.fov!==o.fov||et.aspect!==o.aspect*this.aspect||et.near!==o.near||et.far!==o.far||et.zoom!==o.zoom||et.eyeSep!==this.eyeSep){et.focus=o.focus,et.fov=o.fov,et.aspect=o.aspect*this.aspect,et.near=o.near,et.far=o.far,et.zoom=o.zoom,et.eyeSep=this.eyeSep,_projectionMatrix.copy(o.projectionMatrix);const nt=et.eyeSep/2,rt=nt*et.near/et.focus,it=et.near*Math.tan(DEG2RAD$1*et.fov*.5)/et.zoom;let ot,st;_eyeLeft.elements[12]=-nt,_eyeRight.elements[12]=nt,ot=-it*et.aspect+rt,st=it*et.aspect+rt,_projectionMatrix.elements[0]=2*et.near/(st-ot),_projectionMatrix.elements[8]=(st+ot)/(st-ot),this.cameraL.projectionMatrix.copy(_projectionMatrix),ot=-it*et.aspect-rt,st=it*et.aspect-rt,_projectionMatrix.elements[0]=2*et.near/(st-ot),_projectionMatrix.elements[8]=(st+ot)/(st-ot),this.cameraR.projectionMatrix.copy(_projectionMatrix)}this.cameraL.matrixWorld.copy(o.matrixWorld).multiply(_eyeLeft),this.cameraR.matrixWorld.copy(o.matrixWorld).multiply(_eyeRight)}}class Clock{constructor(o=!0){this.autoStart=o,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let o=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const et=now();o=(et-this.oldTime)/1e3,this.oldTime=et,this.elapsedTime+=o}return o}}function now(){return(typeof performance>"u"?Date:performance).now()}const _position$1=new Vector3,_quaternion$1=new Quaternion,_scale$1=new Vector3,_orientation$1=new Vector3;class AudioListener extends Object3D{constructor(){super(),this.type="AudioListener",this.context=AudioContext.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Clock}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(o){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=o,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(o){return this.gain.gain.setTargetAtTime(o,this.context.currentTime,.01),this}updateMatrixWorld(o){super.updateMatrixWorld(o);const et=this.context.listener,tt=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(_position$1,_quaternion$1,_scale$1),_orientation$1.set(0,0,-1).applyQuaternion(_quaternion$1),et.positionX){const nt=this.context.currentTime+this.timeDelta;et.positionX.linearRampToValueAtTime(_position$1.x,nt),et.positionY.linearRampToValueAtTime(_position$1.y,nt),et.positionZ.linearRampToValueAtTime(_position$1.z,nt),et.forwardX.linearRampToValueAtTime(_orientation$1.x,nt),et.forwardY.linearRampToValueAtTime(_orientation$1.y,nt),et.forwardZ.linearRampToValueAtTime(_orientation$1.z,nt),et.upX.linearRampToValueAtTime(tt.x,nt),et.upY.linearRampToValueAtTime(tt.y,nt),et.upZ.linearRampToValueAtTime(tt.z,nt)}else et.setPosition(_position$1.x,_position$1.y,_position$1.z),et.setOrientation(_orientation$1.x,_orientation$1.y,_orientation$1.z,tt.x,tt.y,tt.z)}}class Audio extends Object3D{constructor(o){super(),this.type="Audio",this.listener=o,this.context=o.context,this.gain=this.context.createGain(),this.gain.connect(o.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(o){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=o,this.connect(),this}setMediaElementSource(o){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(o),this.connect(),this}setMediaStreamSource(o){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(o),this.connect(),this}setBuffer(o){return this.buffer=o,this.sourceType="buffer",this.autoplay&&this.play(),this}play(o=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+o;const et=this.context.createBufferSource();return et.buffer=this.buffer,et.loop=this.loop,et.loopStart=this.loopStart,et.loopEnd=this.loopEnd,et.onended=this.onEnded.bind(this),et.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=et,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let o=1,et=this.filters.length;o0){this.source.disconnect(this.filters[0]);for(let o=1,et=this.filters.length;o0&&this._mixBufferRegionAdditive(tt,nt,this._addIndex*et,1,et);for(let st=et,at=et+et;st!==at;++st)if(tt[st]!==tt[st+et]){ot.setValue(tt,nt);break}}saveOriginalState(){const o=this.binding,et=this.buffer,tt=this.valueSize,nt=tt*this._origIndex;o.getValue(et,nt);for(let rt=tt,it=nt;rt!==it;++rt)et[rt]=et[nt+rt%tt];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const o=this.valueSize*3;this.binding.setValue(this.buffer,o)}_setAdditiveIdentityNumeric(){const o=this._addIndex*this.valueSize,et=o+this.valueSize;for(let tt=o;tt=.5)for(let it=0;it!==rt;++it)o[et+it]=o[tt+it]}_slerp(o,et,tt,nt){Quaternion.slerpFlat(o,et,o,et,o,tt,nt)}_slerpAdditive(o,et,tt,nt,rt){const it=this._workIndex*rt;Quaternion.multiplyQuaternionsFlat(o,it,o,et,o,tt),Quaternion.slerpFlat(o,et,o,et,o,it,nt)}_lerp(o,et,tt,nt,rt){const it=1-nt;for(let ot=0;ot!==rt;++ot){const st=et+ot;o[st]=o[st]*it+o[tt+ot]*nt}}_lerpAdditive(o,et,tt,nt,rt){for(let it=0;it!==rt;++it){const ot=et+it;o[ot]=o[ot]+o[tt+it]*nt}}}const _RESERVED_CHARS_RE="\\[\\]\\.:\\/",_reservedRe=new RegExp("["+_RESERVED_CHARS_RE+"]","g"),_wordChar="[^"+_RESERVED_CHARS_RE+"]",_wordCharOrDot="[^"+_RESERVED_CHARS_RE.replace("\\.","")+"]",_directoryRe=/((?:WC+[\/:])*)/.source.replace("WC",_wordChar),_nodeRe=/(WCOD+)?/.source.replace("WCOD",_wordCharOrDot),_objectRe=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",_wordChar),_propertyRe=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",_wordChar),_trackRe=new RegExp("^"+_directoryRe+_nodeRe+_objectRe+_propertyRe+"$"),_supportedObjectNames=["material","materials","bones","map"];class Composite{constructor(o,et,tt){const nt=tt||PropertyBinding.parseTrackName(et);this._targetGroup=o,this._bindings=o.subscribe_(et,nt)}getValue(o,et){this.bind();const tt=this._targetGroup.nCachedObjects_,nt=this._bindings[tt];nt!==void 0&&nt.getValue(o,et)}setValue(o,et){const tt=this._bindings;for(let nt=this._targetGroup.nCachedObjects_,rt=tt.length;nt!==rt;++nt)tt[nt].setValue(o,et)}bind(){const o=this._bindings;for(let et=this._targetGroup.nCachedObjects_,tt=o.length;et!==tt;++et)o[et].bind()}unbind(){const o=this._bindings;for(let et=this._targetGroup.nCachedObjects_,tt=o.length;et!==tt;++et)o[et].unbind()}}class PropertyBinding{constructor(o,et,tt){this.path=et,this.parsedPath=tt||PropertyBinding.parseTrackName(et),this.node=PropertyBinding.findNode(o,this.parsedPath.nodeName),this.rootNode=o,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(o,et,tt){return o&&o.isAnimationObjectGroup?new PropertyBinding.Composite(o,et,tt):new PropertyBinding(o,et,tt)}static sanitizeNodeName(o){return o.replace(/\s/g,"_").replace(_reservedRe,"")}static parseTrackName(o){const et=_trackRe.exec(o);if(et===null)throw new Error("PropertyBinding: Cannot parse trackName: "+o);const tt={nodeName:et[2],objectName:et[3],objectIndex:et[4],propertyName:et[5],propertyIndex:et[6]},nt=tt.nodeName&&tt.nodeName.lastIndexOf(".");if(nt!==void 0&&nt!==-1){const rt=tt.nodeName.substring(nt+1);_supportedObjectNames.indexOf(rt)!==-1&&(tt.nodeName=tt.nodeName.substring(0,nt),tt.objectName=rt)}if(tt.propertyName===null||tt.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+o);return tt}static findNode(o,et){if(et===void 0||et===""||et==="."||et===-1||et===o.name||et===o.uuid)return o;if(o.skeleton){const tt=o.skeleton.getBoneByName(et);if(tt!==void 0)return tt}if(o.children){const tt=function(rt){for(let it=0;it=rt){const ut=rt++,dt=o[ut];et[dt.uuid]=lt,o[lt]=dt,et[at]=ut,o[ut]=st;for(let ht=0,ct=nt;ht!==ct;++ht){const pt=tt[ht],ft=pt[ut],gt=pt[lt];pt[lt]=ft,pt[ut]=gt}}}this.nCachedObjects_=rt}uncache(){const o=this._objects,et=this._indicesByUUID,tt=this._bindings,nt=tt.length;let rt=this.nCachedObjects_,it=o.length;for(let ot=0,st=arguments.length;ot!==st;++ot){const at=arguments[ot],lt=at.uuid,ut=et[lt];if(ut!==void 0)if(delete et[lt],ut0&&(et[ht.uuid]=ut),o[ut]=ht,o.pop();for(let ct=0,pt=nt;ct!==pt;++ct){const ft=tt[ct];ft[ut]=ft[dt],ft.pop()}}}this.nCachedObjects_=rt}subscribe_(o,et){const tt=this._bindingsIndicesByPath;let nt=tt[o];const rt=this._bindings;if(nt!==void 0)return rt[nt];const it=this._paths,ot=this._parsedPaths,st=this._objects,at=st.length,lt=this.nCachedObjects_,ut=new Array(at);nt=rt.length,tt[o]=nt,it.push(o),ot.push(et),rt.push(ut);for(let dt=lt,ht=st.length;dt!==ht;++dt){const ct=st[dt];ut[dt]=new PropertyBinding(ct,o,et)}return ut}unsubscribe_(o){const et=this._bindingsIndicesByPath,tt=et[o];if(tt!==void 0){const nt=this._paths,rt=this._parsedPaths,it=this._bindings,ot=it.length-1,st=it[ot],at=o[ot];et[at]=tt,it[tt]=st,it.pop(),rt[tt]=rt[ot],rt.pop(),nt[tt]=nt[ot],nt.pop()}}}class AnimationAction{constructor(o,et,tt=null,nt=et.blendMode){this._mixer=o,this._clip=et,this._localRoot=tt,this.blendMode=nt;const rt=et.tracks,it=rt.length,ot=new Array(it),st={endingStart:ZeroCurvatureEnding,endingEnd:ZeroCurvatureEnding};for(let at=0;at!==it;++at){const lt=rt[at].createInterpolant(null);ot[at]=lt,lt.settings=st}this._interpolantSettings=st,this._interpolants=ot,this._propertyBindings=new Array(it),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=LoopRepeat,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(o){return this._startTime=o,this}setLoop(o,et){return this.loop=o,this.repetitions=et,this}setEffectiveWeight(o){return this.weight=o,this._effectiveWeight=this.enabled?o:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(o){return this._scheduleFading(o,0,1)}fadeOut(o){return this._scheduleFading(o,1,0)}crossFadeFrom(o,et,tt){if(o.fadeOut(et),this.fadeIn(et),tt){const nt=this._clip.duration,rt=o._clip.duration,it=rt/nt,ot=nt/rt;o.warp(1,it,et),this.warp(ot,1,et)}return this}crossFadeTo(o,et,tt){return o.crossFadeFrom(this,et,tt)}stopFading(){const o=this._weightInterpolant;return o!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(o)),this}setEffectiveTimeScale(o){return this.timeScale=o,this._effectiveTimeScale=this.paused?0:o,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(o){return this.timeScale=this._clip.duration/o,this.stopWarping()}syncWith(o){return this.time=o.time,this.timeScale=o.timeScale,this.stopWarping()}halt(o){return this.warp(this._effectiveTimeScale,0,o)}warp(o,et,tt){const nt=this._mixer,rt=nt.time,it=this.timeScale;let ot=this._timeScaleInterpolant;ot===null&&(ot=nt._lendControlInterpolant(),this._timeScaleInterpolant=ot);const st=ot.parameterPositions,at=ot.sampleValues;return st[0]=rt,st[1]=rt+tt,at[0]=o/it,at[1]=et/it,this}stopWarping(){const o=this._timeScaleInterpolant;return o!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(o)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(o,et,tt,nt){if(!this.enabled){this._updateWeight(o);return}const rt=this._startTime;if(rt!==null){const st=(o-rt)*tt;st<0||tt===0?et=0:(this._startTime=null,et=tt*st)}et*=this._updateTimeScale(o);const it=this._updateTime(et),ot=this._updateWeight(o);if(ot>0){const st=this._interpolants,at=this._propertyBindings;switch(this.blendMode){case AdditiveAnimationBlendMode:for(let lt=0,ut=st.length;lt!==ut;++lt)st[lt].evaluate(it),at[lt].accumulateAdditive(ot);break;case NormalAnimationBlendMode:default:for(let lt=0,ut=st.length;lt!==ut;++lt)st[lt].evaluate(it),at[lt].accumulate(nt,ot)}}}_updateWeight(o){let et=0;if(this.enabled){et=this.weight;const tt=this._weightInterpolant;if(tt!==null){const nt=tt.evaluate(o)[0];et*=nt,o>tt.parameterPositions[1]&&(this.stopFading(),nt===0&&(this.enabled=!1))}}return this._effectiveWeight=et,et}_updateTimeScale(o){let et=0;if(!this.paused){et=this.timeScale;const tt=this._timeScaleInterpolant;if(tt!==null){const nt=tt.evaluate(o)[0];et*=nt,o>tt.parameterPositions[1]&&(this.stopWarping(),et===0?this.paused=!0:this.timeScale=et)}}return this._effectiveTimeScale=et,et}_updateTime(o){const et=this._clip.duration,tt=this.loop;let nt=this.time+o,rt=this._loopCount;const it=tt===LoopPingPong;if(o===0)return rt===-1?nt:it&&(rt&1)===1?et-nt:nt;if(tt===LoopOnce){rt===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(nt>=et)nt=et;else if(nt<0)nt=0;else{this.time=nt;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=nt,this._mixer.dispatchEvent({type:"finished",action:this,direction:o<0?-1:1})}}else{if(rt===-1&&(o>=0?(rt=0,this._setEndings(!0,this.repetitions===0,it)):this._setEndings(this.repetitions===0,!0,it)),nt>=et||nt<0){const ot=Math.floor(nt/et);nt-=et*ot,rt+=Math.abs(ot);const st=this.repetitions-rt;if(st<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,nt=o>0?et:0,this.time=nt,this._mixer.dispatchEvent({type:"finished",action:this,direction:o>0?1:-1});else{if(st===1){const at=o<0;this._setEndings(at,!at,it)}else this._setEndings(!1,!1,it);this._loopCount=rt,this.time=nt,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:ot})}}else this.time=nt;if(it&&(rt&1)===1)return et-nt}return nt}_setEndings(o,et,tt){const nt=this._interpolantSettings;tt?(nt.endingStart=ZeroSlopeEnding,nt.endingEnd=ZeroSlopeEnding):(o?nt.endingStart=this.zeroSlopeAtStart?ZeroSlopeEnding:ZeroCurvatureEnding:nt.endingStart=WrapAroundEnding,et?nt.endingEnd=this.zeroSlopeAtEnd?ZeroSlopeEnding:ZeroCurvatureEnding:nt.endingEnd=WrapAroundEnding)}_scheduleFading(o,et,tt){const nt=this._mixer,rt=nt.time;let it=this._weightInterpolant;it===null&&(it=nt._lendControlInterpolant(),this._weightInterpolant=it);const ot=it.parameterPositions,st=it.sampleValues;return ot[0]=rt,st[0]=et,ot[1]=rt+o,st[1]=tt,this}}const _controlInterpolantsResultBuffer=new Float32Array(1);class AnimationMixer extends EventDispatcher$1{constructor(o){super(),this._root=o,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(o,et){const tt=o._localRoot||this._root,nt=o._clip.tracks,rt=nt.length,it=o._propertyBindings,ot=o._interpolants,st=tt.uuid,at=this._bindingsByRootAndName;let lt=at[st];lt===void 0&&(lt={},at[st]=lt);for(let ut=0;ut!==rt;++ut){const dt=nt[ut],ht=dt.name;let ct=lt[ht];if(ct!==void 0)++ct.referenceCount,it[ut]=ct;else{if(ct=it[ut],ct!==void 0){ct._cacheIndex===null&&(++ct.referenceCount,this._addInactiveBinding(ct,st,ht));continue}const pt=et&&et._propertyBindings[ut].binding.parsedPath;ct=new PropertyMixer(PropertyBinding.create(tt,ht,pt),dt.ValueTypeName,dt.getValueSize()),++ct.referenceCount,this._addInactiveBinding(ct,st,ht),it[ut]=ct}ot[ut].resultBuffer=ct.buffer}}_activateAction(o){if(!this._isActiveAction(o)){if(o._cacheIndex===null){const tt=(o._localRoot||this._root).uuid,nt=o._clip.uuid,rt=this._actionsByClip[nt];this._bindAction(o,rt&&rt.knownActions[0]),this._addInactiveAction(o,nt,tt)}const et=o._propertyBindings;for(let tt=0,nt=et.length;tt!==nt;++tt){const rt=et[tt];rt.useCount++===0&&(this._lendBinding(rt),rt.saveOriginalState())}this._lendAction(o)}}_deactivateAction(o){if(this._isActiveAction(o)){const et=o._propertyBindings;for(let tt=0,nt=et.length;tt!==nt;++tt){const rt=et[tt];--rt.useCount===0&&(rt.restoreOriginalState(),this._takeBackBinding(rt))}this._takeBackAction(o)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const o=this;this.stats={actions:{get total(){return o._actions.length},get inUse(){return o._nActiveActions}},bindings:{get total(){return o._bindings.length},get inUse(){return o._nActiveBindings}},controlInterpolants:{get total(){return o._controlInterpolants.length},get inUse(){return o._nActiveControlInterpolants}}}}_isActiveAction(o){const et=o._cacheIndex;return et!==null&&et=0;--tt)o[tt].stop();return this}update(o){o*=this.timeScale;const et=this._actions,tt=this._nActiveActions,nt=this.time+=o,rt=Math.sign(o),it=this._accuIndex^=1;for(let at=0;at!==tt;++at)et[at]._update(nt,o,rt,it);const ot=this._bindings,st=this._nActiveBindings;for(let at=0;at!==st;++at)ot[at].apply(it);return this}setTime(o){this.time=0;for(let et=0;etthis.max.x||o.ythis.max.y)}containsBox(o){return this.min.x<=o.min.x&&o.max.x<=this.max.x&&this.min.y<=o.min.y&&o.max.y<=this.max.y}getParameter(o,et){return et.set((o.x-this.min.x)/(this.max.x-this.min.x),(o.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(o){return!(o.max.xthis.max.x||o.max.ythis.max.y)}clampPoint(o,et){return et.copy(o).clamp(this.min,this.max)}distanceToPoint(o){return this.clampPoint(o,_vector$4).distanceTo(o)}intersect(o){return this.min.max(o.min),this.max.min(o.max),this.isEmpty()&&this.makeEmpty(),this}union(o){return this.min.min(o.min),this.max.max(o.max),this}translate(o){return this.min.add(o),this.max.add(o),this}equals(o){return o.min.equals(this.min)&&o.max.equals(this.max)}}const _startP=new Vector3,_startEnd=new Vector3;class Line3{constructor(o=new Vector3,et=new Vector3){this.start=o,this.end=et}set(o,et){return this.start.copy(o),this.end.copy(et),this}copy(o){return this.start.copy(o.start),this.end.copy(o.end),this}getCenter(o){return o.addVectors(this.start,this.end).multiplyScalar(.5)}delta(o){return o.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(o,et){return this.delta(et).multiplyScalar(o).add(this.start)}closestPointToPointParameter(o,et){_startP.subVectors(o,this.start),_startEnd.subVectors(this.end,this.start);const tt=_startEnd.dot(_startEnd);let rt=_startEnd.dot(_startP)/tt;return et&&(rt=clamp$4(rt,0,1)),rt}closestPointToPoint(o,et,tt){const nt=this.closestPointToPointParameter(o,et);return this.delta(tt).multiplyScalar(nt).add(this.start)}applyMatrix4(o){return this.start.applyMatrix4(o),this.end.applyMatrix4(o),this}equals(o){return o.start.equals(this.start)&&o.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const _vector$3=new Vector3;class SpotLightHelper extends Object3D{constructor(o,et){super(),this.light=o,this.matrixAutoUpdate=!1,this.color=et,this.type="SpotLightHelper";const tt=new BufferGeometry,nt=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let it=0,ot=1,st=32;it1)for(let ut=0;ut.99999)this.quaternion.set(0,0,0,1);else if(o.y<-.99999)this.quaternion.set(1,0,0,0);else{_axis.set(o.z,0,-o.x).normalize();const et=Math.acos(o.y);this.quaternion.setFromAxisAngle(_axis,et)}}setLength(o,et=o*.2,tt=et*.2){this.line.scale.set(1,Math.max(1e-4,o-et),1),this.line.updateMatrix(),this.cone.scale.set(tt,et,tt),this.cone.position.y=o,this.cone.updateMatrix()}setColor(o){this.line.material.color.set(o),this.cone.material.color.set(o)}copy(o){return super.copy(o,!1),this.line.copy(o.line),this.cone.copy(o.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class AxesHelper extends LineSegments{constructor(o=1){const et=[0,0,0,o,0,0,0,0,0,0,o,0,0,0,0,0,0,o],tt=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],nt=new BufferGeometry;nt.setAttribute("position",new Float32BufferAttribute(et,3)),nt.setAttribute("color",new Float32BufferAttribute(tt,3));const rt=new LineBasicMaterial({vertexColors:!0,toneMapped:!1});super(nt,rt),this.type="AxesHelper"}setColors(o,et,tt){const nt=new Color$2,rt=this.geometry.attributes.color.array;return nt.set(o),nt.toArray(rt,0),nt.toArray(rt,3),nt.set(et),nt.toArray(rt,6),nt.toArray(rt,9),nt.set(tt),nt.toArray(rt,12),nt.toArray(rt,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class ShapePath{constructor(){this.type="ShapePath",this.color=new Color$2,this.subPaths=[],this.currentPath=null}moveTo(o,et){return this.currentPath=new Path$1,this.subPaths.push(this.currentPath),this.currentPath.moveTo(o,et),this}lineTo(o,et){return this.currentPath.lineTo(o,et),this}quadraticCurveTo(o,et,tt,nt){return this.currentPath.quadraticCurveTo(o,et,tt,nt),this}bezierCurveTo(o,et,tt,nt,rt,it){return this.currentPath.bezierCurveTo(o,et,tt,nt,rt,it),this}splineThru(o){return this.currentPath.splineThru(o),this}toShapes(o){function et(gt){const yt=[];for(let Ut=0,Ft=gt.length;UtNumber.EPSILON){if(St<0&&(At=yt[vt],Rt=-Rt,Lt=yt[mt],St=-St),gt.yLt.y)continue;if(gt.y===At.y){if(gt.x===At.x)return!0}else{const Tt=St*(gt.x-At.x)-Rt*(gt.y-At.y);if(Tt===0)return!0;if(Tt<0)continue;Ft=!Ft}}else{if(gt.y!==At.y)continue;if(Lt.x<=gt.x&>.x<=At.x||At.x<=gt.x&>.x<=Lt.x)return!0}}return Ft}const nt=ShapeUtils.isClockWise,rt=this.subPaths;if(rt.length===0)return[];let it,ot,st;const at=[];if(rt.length===1)return ot=rt[0],st=new Shape,st.curves=ot.curves,at.push(st),at;let lt=!nt(rt[0].getPoints());lt=o?!lt:lt;const ut=[],dt=[];let ht=[],ct=0,pt;dt[ct]=void 0,ht[ct]=[];for(let gt=0,yt=rt.length;gt1){let gt=!1,yt=0;for(let Ut=0,Ft=dt.length;Ut0&>===!1&&(ht=ut)}let ft;for(let gt=0,yt=dt.length;gt>>1,zt=Wt[Pt];if(0>>1;Ptnt(nn,Et))Ztnt(jt,nn)?(Wt[Pt]=jt,Wt[Zt]=Et,Pt=Zt):(Wt[Pt]=nn,Wt[Kt]=Et,Pt=Kt);else if(Ztnt(jt,Et))Wt[Pt]=jt,Wt[Zt]=Et,Pt=Zt;else break e}}return Dt}function nt(Wt,Dt){var Et=Wt.sortIndex-Dt.sortIndex;return Et!==0?Et:Wt.id-Dt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var rt=performance;s.unstable_now=function(){return rt.now()}}else{var it=Date,ot=it.now();s.unstable_now=function(){return it.now()-ot}}var st=[],at=[],lt=1,ut=null,dt=3,ht=!1,ct=!1,pt=!1,ft=typeof setTimeout=="function"?setTimeout:null,gt=typeof clearTimeout=="function"?clearTimeout:null,yt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Ut(Wt){for(var Dt=et(at);Dt!==null;){if(Dt.callback===null)tt(at);else if(Dt.startTime<=Wt)tt(at),Dt.sortIndex=Dt.expirationTime,o(st,Dt);else break;Dt=et(at)}}function Ft(Wt){if(pt=!1,Ut(Wt),!ct)if(et(st)!==null)ct=!0,Nt(mt);else{var Dt=et(at);Dt!==null&&Ot(Ft,Dt.startTime-Wt)}}function mt(Wt,Dt){ct=!1,pt&&(pt=!1,gt(Lt),Lt=-1),ht=!0;var Et=dt;try{for(Ut(Dt),ut=et(st);ut!==null&&(!(ut.expirationTime>Dt)||Wt&&!Tt());){var Pt=ut.callback;if(typeof Pt=="function"){ut.callback=null,dt=ut.priorityLevel;var zt=Pt(ut.expirationTime<=Dt);Dt=s.unstable_now(),typeof zt=="function"?ut.callback=zt:ut===et(st)&&tt(st),Ut(Dt)}else tt(st);ut=et(st)}if(ut!==null)var en=!0;else{var Kt=et(at);Kt!==null&&Ot(Ft,Kt.startTime-Dt),en=!1}return en}finally{ut=null,dt=Et,ht=!1}}var vt=!1,At=null,Lt=-1,Rt=5,St=-1;function Tt(){return!(s.unstable_now()-StWt||125Pt?(Wt.sortIndex=Et,o(at,Wt),et(st)===null&&Wt===et(at)&&(pt?(gt(Lt),Lt=-1):pt=!0,Ot(Ft,Et-Pt))):(Wt.sortIndex=zt,o(st,Wt),ct||ht||(ct=!0,Nt(mt))),Wt},s.unstable_shouldYield=Tt,s.unstable_wrapCallback=function(Wt){var Dt=dt;return function(){var Et=dt;dt=Dt;try{return Wt.apply(this,arguments)}finally{dt=Et}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;var schedulerExports=scheduler.exports;/** + */(function(s){function o(Jt,Dt){var Et=Jt.length;Jt.push(Dt);e:for(;0>>1,zt=Jt[Pt];if(0>>1;Ptnt(nn,Et))Ztnt(jt,nn)?(Jt[Pt]=jt,Jt[Zt]=Et,Pt=Zt):(Jt[Pt]=nn,Jt[Kt]=Et,Pt=Kt);else if(Ztnt(jt,Et))Jt[Pt]=jt,Jt[Zt]=Et,Pt=Zt;else break e}}return Dt}function nt(Jt,Dt){var Et=Jt.sortIndex-Dt.sortIndex;return Et!==0?Et:Jt.id-Dt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var rt=performance;s.unstable_now=function(){return rt.now()}}else{var it=Date,ot=it.now();s.unstable_now=function(){return it.now()-ot}}var st=[],at=[],lt=1,ut=null,dt=3,ht=!1,ct=!1,pt=!1,ft=typeof setTimeout=="function"?setTimeout:null,gt=typeof clearTimeout=="function"?clearTimeout:null,yt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Ut(Jt){for(var Dt=et(at);Dt!==null;){if(Dt.callback===null)tt(at);else if(Dt.startTime<=Jt)tt(at),Dt.sortIndex=Dt.expirationTime,o(st,Dt);else break;Dt=et(at)}}function Ft(Jt){if(pt=!1,Ut(Jt),!ct)if(et(st)!==null)ct=!0,Nt(mt);else{var Dt=et(at);Dt!==null&&Ot(Ft,Dt.startTime-Jt)}}function mt(Jt,Dt){ct=!1,pt&&(pt=!1,gt(Lt),Lt=-1),ht=!0;var Et=dt;try{for(Ut(Dt),ut=et(st);ut!==null&&(!(ut.expirationTime>Dt)||Jt&&!Tt());){var Pt=ut.callback;if(typeof Pt=="function"){ut.callback=null,dt=ut.priorityLevel;var zt=Pt(ut.expirationTime<=Dt);Dt=s.unstable_now(),typeof zt=="function"?ut.callback=zt:ut===et(st)&&tt(st),Ut(Dt)}else tt(st);ut=et(st)}if(ut!==null)var en=!0;else{var Kt=et(at);Kt!==null&&Ot(Ft,Kt.startTime-Dt),en=!1}return en}finally{ut=null,dt=Et,ht=!1}}var vt=!1,At=null,Lt=-1,Rt=5,St=-1;function Tt(){return!(s.unstable_now()-StJt||125Pt?(Jt.sortIndex=Et,o(at,Jt),et(st)===null&&Jt===et(at)&&(pt?(gt(Lt),Lt=-1):pt=!0,Ot(Ft,Et-Pt))):(Jt.sortIndex=zt,o(st,Jt),ct||ht||(ct=!0,Nt(mt))),Jt},s.unstable_shouldYield=Tt,s.unstable_wrapCallback=function(Jt){var Dt=dt;return function(){var Et=dt;dt=Dt;try{return Jt.apply(this,arguments)}finally{dt=Et}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;var schedulerExports=scheduler.exports;/** * @license React * react-reconciler.production.min.js * @@ -3862,17 +3862,17 @@ void main() { * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var reactReconciler_production_min=function(o){var et={},tt=reactExports,nt=schedulerExports,rt=Object.assign;function it(wt){for(var Mt="https://reactjs.org/docs/error-decoder.html?invariant="+wt,Gt=1;Gtpr||ln[Xn]!==yn[pr]){var Or=` -`+ln[Xn].replace(" at new "," at ");return wt.displayName&&Or.includes("")&&(Or=Or.replace("",wt.displayName)),Or}while(1<=Xn&&0<=pr);break}}}finally{lo=!1,Error.prepareStackTrace=Gt}return(wt=wt?wt.displayName||wt.name:"")?mo(wt):""}var Jo=Object.prototype.hasOwnProperty,Go=[],cs=-1;function So(wt){return{current:wt}}function so(wt){0>cs||(wt.current=Go[cs],Go[cs]=null,cs--)}function Bo(wt,Mt){cs++,Go[cs]=wt.current,wt.current=Mt}var Io={},ns=So(Io),ps=So(!1),gs=Io;function bs(wt,Mt){var Gt=wt.type.contextTypes;if(!Gt)return Io;var rn=wt.stateNode;if(rn&&rn.__reactInternalMemoizedUnmaskedChildContext===Mt)return rn.__reactInternalMemoizedMaskedChildContext;var ln={},yn;for(yn in Gt)ln[yn]=Mt[yn];return rn&&(wt=wt.stateNode,wt.__reactInternalMemoizedUnmaskedChildContext=Mt,wt.__reactInternalMemoizedMaskedChildContext=ln),ln}function Lo(wt){return wt=wt.childContextTypes,wt!=null}function Qs(){so(ps),so(ns)}function Ps(wt,Mt,Gt){if(ns.current!==Io)throw Error(it(168));Bo(ns,Mt),Bo(ps,Gt)}function No(wt,Mt,Gt){var rn=wt.stateNode;if(Mt=Mt.childContextTypes,typeof rn.getChildContext!="function")return Gt;rn=rn.getChildContext();for(var ln in rn)if(!(ln in Mt))throw Error(it(108,Lt(wt)||"Unknown",ln));return rt({},Gt,rn)}function ys(wt){return wt=(wt=wt.stateNode)&&wt.__reactInternalMemoizedMergedChildContext||Io,gs=ns.current,Bo(ns,wt),Bo(ps,ps.current),!0}function Ns(wt,Mt,Gt){var rn=wt.stateNode;if(!rn)throw Error(it(169));Gt?(wt=No(wt,Mt,gs),rn.__reactInternalMemoizedMergedChildContext=wt,so(ps),so(ns),Bo(ns,wt)):so(ps),Bo(ps,Gt)}var fs=Math.clz32?Math.clz32:As,Zs=Math.log,Sl=Math.LN2;function As(wt){return wt>>>=0,wt===0?32:31-(Zs(wt)/Sl|0)|0}var ks=64,js=4194304;function Xs(wt){switch(wt&-wt){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return wt&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return wt&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return wt}}function vo(wt,Mt){var Gt=wt.pendingLanes;if(Gt===0)return 0;var rn=0,ln=wt.suspendedLanes,yn=wt.pingedLanes,Xn=Gt&268435455;if(Xn!==0){var pr=Xn&~ln;pr!==0?rn=Xs(pr):(yn&=Xn,yn!==0&&(rn=Xs(yn)))}else Xn=Gt&~ln,Xn!==0?rn=Xs(Xn):yn!==0&&(rn=Xs(yn));if(rn===0)return 0;if(Mt!==0&&Mt!==rn&&!(Mt&ln)&&(ln=rn&-rn,yn=Mt&-Mt,ln>=yn||ln===16&&(yn&4194240)!==0))return Mt;if(rn&4&&(rn|=Gt&16),Mt=wt.entangledLanes,Mt!==0)for(wt=wt.entanglements,Mt&=rn;0Gt;Gt++)Mt.push(wt);return Mt}function Mn(wt,Mt,Gt){wt.pendingLanes|=Mt,Mt!==536870912&&(wt.suspendedLanes=0,wt.pingedLanes=0),wt=wt.eventTimes,Mt=31-fs(Mt),wt[Mt]=Gt}function Jn(wt,Mt){var Gt=wt.pendingLanes&~Mt;wt.pendingLanes=Mt,wt.suspendedLanes=0,wt.pingedLanes=0,wt.expiredLanes&=Mt,wt.mutableReadLanes&=Mt,wt.entangledLanes&=Mt,Mt=wt.entanglements;var rn=wt.eventTimes;for(wt=wt.expirationTimes;0>=Xn,ln-=Xn,Bu=1<<32-fs(Mt)+ln|Gt<Xo?(Vs=jo,jo=null):Vs=jo.sibling;var ss=wo(xr,jo,Dr[Xo],fo);if(ss===null){jo===null&&(jo=Vs);break}wt&&jo&&ss.alternate===null&&Mt(xr,jo),yr=yn(ss,yr,Xo),Yo===null?Qo=ss:Yo.sibling=ss,Yo=ss,jo=Vs}if(Xo===Dr.length)return Gt(xr,jo),Us&&vu(xr,Xo),Qo;if(jo===null){for(;XoXo?(Vs=jo,jo=null):Vs=jo.sibling;var yu=wo(xr,jo,ss.value,fo);if(yu===null){jo===null&&(jo=Vs);break}wt&&jo&&yu.alternate===null&&Mt(xr,jo),yr=yn(yu,yr,Xo),Yo===null?Qo=yu:Yo.sibling=yu,Yo=yu,jo=Vs}if(ss.done)return Gt(xr,jo),Us&&vu(xr,Xo),Qo;if(jo===null){for(;!ss.done;Xo++,ss=Dr.next())ss=Zo(xr,ss.value,fo),ss!==null&&(yr=yn(ss,yr,Xo),Yo===null?Qo=ss:Yo.sibling=ss,Yo=ss);return Us&&vu(xr,Xo),Qo}for(jo=rn(xr,jo);!ss.done;Xo++,ss=Dr.next())ss=ds(jo,xr,Xo,ss.value,fo),ss!==null&&(wt&&ss.alternate!==null&&jo.delete(ss.key===null?Xo:ss.key),yr=yn(ss,yr,Xo),Yo===null?Qo=ss:Yo.sibling=ss,Yo=ss);return wt&&jo.forEach(function(A0){return Mt(xr,A0)}),Us&&vu(xr,Xo),Qo}function Ol(xr,yr,Dr,fo){if(typeof Dr=="object"&&Dr!==null&&Dr.type===lt&&Dr.key===null&&(Dr=Dr.props.children),typeof Dr=="object"&&Dr!==null){switch(Dr.$$typeof){case st:e:{for(var Qo=Dr.key,Yo=yr;Yo!==null;){if(Yo.key===Qo){if(Qo=Dr.type,Qo===lt){if(Yo.tag===7){Gt(xr,Yo.sibling),yr=ln(Yo,Dr.props.children),yr.return=xr,xr=yr;break e}}else if(Yo.elementType===Qo||typeof Qo=="object"&&Qo!==null&&Qo.$$typeof===Ut&&Op(Qo)===Yo.type){Gt(xr,Yo.sibling),yr=ln(Yo,Dr.props),yr.ref=hp(xr,Yo,Dr),yr.return=xr,xr=yr;break e}Gt(xr,Yo);break}else Mt(xr,Yo);Yo=Yo.sibling}Dr.type===lt?(yr=ju(Dr.props.children,xr.mode,fo,Dr.key),yr.return=xr,xr=yr):(fo=M0(Dr.type,Dr.key,Dr.props,null,xr.mode,fo),fo.ref=hp(xr,yr,Dr),fo.return=xr,xr=fo)}return Xn(xr);case at:e:{for(Yo=Dr.key;yr!==null;){if(yr.key===Yo)if(yr.tag===4&&yr.stateNode.containerInfo===Dr.containerInfo&&yr.stateNode.implementation===Dr.implementation){Gt(xr,yr.sibling),yr=ln(yr,Dr.children||[]),yr.return=xr,xr=yr;break e}else{Gt(xr,yr);break}else Mt(xr,yr);yr=yr.sibling}yr=Zl(Dr,xr.mode,fo),yr.return=xr,xr=yr}return Xn(xr);case Ut:return Yo=Dr._init,Ol(xr,yr,Yo(Dr._payload),fo)}if(kt(Dr))return bo(xr,yr,Dr,fo);if(vt(Dr))return yl(xr,yr,Dr,fo);tu(xr,Dr)}return typeof Dr=="string"&&Dr!==""||typeof Dr=="number"?(Dr=""+Dr,yr!==null&&yr.tag===6?(Gt(xr,yr.sibling),yr=ln(yr,Dr),yr.return=xr,xr=yr):(Gt(xr,yr),yr=Fl(Dr,xr.mode,fo),yr.return=xr,xr=yr),Xn(xr)):Gt(xr,yr)}return Ol}var pp=V1(!0),M1=V1(!1),du={},vs=So(du),fp=So(du),gp=So(du);function hu(wt){if(wt===du)throw Error(it(174));return wt}function Z0(wt,Mt){Bo(gp,Mt),Bo(fp,wt),Bo(vs,du),wt=Ot(Mt),so(vs),Bo(vs,wt)}function mp(){so(vs),so(fp),so(gp)}function N1(wt){var Mt=hu(gp.current),Gt=hu(vs.current);Mt=Wt(Gt,wt.type,Mt),Gt!==Mt&&(Bo(fp,wt),Bo(vs,Mt))}function Vu(wt){fp.current===wt&&(so(vs),so(fp))}var dr=So(0);function Lr(wt){for(var Mt=wt;Mt!==null;){if(Mt.tag===13){var Gt=Mt.memoizedState;if(Gt!==null&&(Gt=Gt.dehydrated,Gt===null||Gn(Gt)||er(Gt)))return Mt}else if(Mt.tag===19&&Mt.memoizedProps.revealOrder!==void 0){if(Mt.flags&128)return Mt}else if(Mt.child!==null){Mt.child.return=Mt,Mt=Mt.child;continue}if(Mt===wt)break;for(;Mt.sibling===null;){if(Mt.return===null||Mt.return===wt)return null;Mt=Mt.return}Mt.sibling.return=Mt.return,Mt=Mt.sibling}return null}var Nr=[];function go(){for(var wt=0;wtGt?Gt:4,wt(!0);var rn=zo.transition;zo.transition={};try{wt(!1),Mt()}finally{Cr=Gt,zo.transition=rn}}function O1(){return xl().memoizedState}function Ws(wt,Mt,Gt){var rn=Uu(wt);Gt={lane:rn,action:Gt,hasEagerState:!1,eagerState:null,next:null},W1(wt)?J1(Mt,Gt):(Y0(wt,Mt,Gt),Gt=xa(),wt=Ll(wt,rn,Gt),wt!==null&&I1(wt,Mt,rn))}function na(wt,Mt,Gt){var rn=Uu(wt),ln={lane:rn,action:Gt,hasEagerState:!1,eagerState:null,next:null};if(W1(wt))J1(Mt,ln);else{Y0(wt,Mt,ln);var yn=wt.alternate;if(wt.lanes===0&&(yn===null||yn.lanes===0)&&(yn=Mt.lastRenderedReducer,yn!==null))try{var Xn=Mt.lastRenderedState,pr=yn(Xn,Gt);if(ln.hasEagerState=!0,ln.eagerState=pr,vn(pr,Xn))return}catch{}finally{}Gt=xa(),wt=Ll(wt,rn,Gt),wt!==null&&I1(wt,Mt,rn)}}function W1(wt){var Mt=wt.alternate;return wt===ko||Mt!==null&&Mt===ko}function J1(wt,Mt){Mu=_l=!0;var Gt=wt.pending;Gt===null?Mt.next=Mt:(Mt.next=Gt.next,Gt.next=Mt),wt.pending=Mt}function Y0(wt,Mt,Gt){Cs!==null&&wt.mode&1&&!(Ho&2)?(wt=Mt.interleaved,wt===null?(Gt.next=Gt,uu===null?uu=[Mt]:uu.push(Mt)):(Gt.next=wt.next,wt.next=Gt),Mt.interleaved=Gt):(wt=Mt.pending,wt===null?Gt.next=Gt:(Gt.next=wt.next,wt.next=Gt),Mt.pending=Gt)}function I1(wt,Mt,Gt){if(Gt&4194240){var rn=Mt.lanes;rn&=wt.pendingLanes,Gt|=rn,Mt.lanes=Gt,Vr(wt,Gt)}}var Rp={readContext:Rs,useCallback:Os,useContext:Os,useEffect:Os,useImperativeHandle:Os,useInsertionEffect:Os,useLayoutEffect:Os,useMemo:Os,useReducer:Os,useRef:Os,useState:Os,useDebugValue:Os,useDeferredValue:Os,useTransition:Os,useMutableSource:Os,useSyncExternalStore:Os,useId:Os,unstable_isNewReconciler:!1},$p={readContext:Rs,useCallback:function(wt,Mt){return pu().memoizedState=[wt,Mt===void 0?null:Mt],wt},useContext:Rs,useEffect:yp,useImperativeHandle:function(wt,Mt,Gt){return Gt=Gt!=null?Gt.concat([wt]):null,Au(4194308,4,Zp.bind(null,Mt,wt),Gt)},useLayoutEffect:function(wt,Mt){return Au(4194308,4,wt,Mt)},useInsertionEffect:function(wt,Mt){return Au(4,2,wt,Mt)},useMemo:function(wt,Mt){var Gt=pu();return Mt=Mt===void 0?null:Mt,wt=wt(),Gt.memoizedState=[wt,Mt],wt},useReducer:function(wt,Mt,Gt){var rn=pu();return Mt=Gt!==void 0?Gt(Mt):Mt,rn.memoizedState=rn.baseState=Mt,wt={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:wt,lastRenderedState:Mt},rn.queue=wt,wt=wt.dispatch=Ws.bind(null,ko,wt),[rn.memoizedState,wt]},useRef:function(wt){var Mt=pu();return wt={current:wt},Mt.memoizedState=wt},useState:m0,useDebugValue:zp,useDeferredValue:function(wt){var Mt=m0(wt),Gt=Mt[0],rn=Mt[1];return yp(function(){var ln=zo.transition;zo.transition={};try{rn(wt)}finally{zo.transition=ln}},[wt]),Gt},useTransition:function(){var wt=m0(!1),Mt=wt[0];return wt=T2.bind(null,wt[1]),pu().memoizedState=wt,[Mt,wt]},useMutableSource:function(){},useSyncExternalStore:function(wt,Mt,Gt){var rn=ko,ln=pu();if(Us){if(Gt===void 0)throw Error(it(407));Gt=Gt()}else{if(Gt=Mt(),Cs===null)throw Error(it(349));Ss&30||Ip(rn,Mt,Gt)}ln.memoizedState=Gt;var yn={value:Gt,getSnapshot:Mt};return ln.queue=yn,yp(Lp.bind(null,rn,yn,wt),[wt]),rn.flags|=2048,Nu(9,z0.bind(null,rn,yn,Gt,Mt),void 0,null),Gt},useId:function(){var wt=pu(),Mt=Cs.identifierPrefix;if(Us){var Gt=_c,rn=Bu;Gt=(rn&~(1<<32-fs(rn)-1)).toString(32)+Gt,Mt=":"+Mt+"R"+Gt,Gt=Wp++,0")&&(Or=Or.replace("",wt.displayName)),Or}while(1<=Xn&&0<=pr);break}}}finally{lo=!1,Error.prepareStackTrace=Gt}return(wt=wt?wt.displayName||wt.name:"")?mo(wt):""}var Wo=Object.prototype.hasOwnProperty,Go=[],cs=-1;function So(wt){return{current:wt}}function so(wt){0>cs||(wt.current=Go[cs],Go[cs]=null,cs--)}function Bo(wt,Mt){cs++,Go[cs]=wt.current,wt.current=Mt}var Io={},ns=So(Io),ps=So(!1),gs=Io;function bs(wt,Mt){var Gt=wt.type.contextTypes;if(!Gt)return Io;var rn=wt.stateNode;if(rn&&rn.__reactInternalMemoizedUnmaskedChildContext===Mt)return rn.__reactInternalMemoizedMaskedChildContext;var ln={},yn;for(yn in Gt)ln[yn]=Mt[yn];return rn&&(wt=wt.stateNode,wt.__reactInternalMemoizedUnmaskedChildContext=Mt,wt.__reactInternalMemoizedMaskedChildContext=ln),ln}function Lo(wt){return wt=wt.childContextTypes,wt!=null}function Qs(){so(ps),so(ns)}function Ps(wt,Mt,Gt){if(ns.current!==Io)throw Error(it(168));Bo(ns,Mt),Bo(ps,Gt)}function No(wt,Mt,Gt){var rn=wt.stateNode;if(Mt=Mt.childContextTypes,typeof rn.getChildContext!="function")return Gt;rn=rn.getChildContext();for(var ln in rn)if(!(ln in Mt))throw Error(it(108,Lt(wt)||"Unknown",ln));return rt({},Gt,rn)}function ys(wt){return wt=(wt=wt.stateNode)&&wt.__reactInternalMemoizedMergedChildContext||Io,gs=ns.current,Bo(ns,wt),Bo(ps,ps.current),!0}function Ns(wt,Mt,Gt){var rn=wt.stateNode;if(!rn)throw Error(it(169));Gt?(wt=No(wt,Mt,gs),rn.__reactInternalMemoizedMergedChildContext=wt,so(ps),so(ns),Bo(ns,wt)):so(ps),Bo(ps,Gt)}var fs=Math.clz32?Math.clz32:As,Zs=Math.log,Sl=Math.LN2;function As(wt){return wt>>>=0,wt===0?32:31-(Zs(wt)/Sl|0)|0}var ks=64,js=4194304;function Xs(wt){switch(wt&-wt){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return wt&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return wt&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return wt}}function vo(wt,Mt){var Gt=wt.pendingLanes;if(Gt===0)return 0;var rn=0,ln=wt.suspendedLanes,yn=wt.pingedLanes,Xn=Gt&268435455;if(Xn!==0){var pr=Xn&~ln;pr!==0?rn=Xs(pr):(yn&=Xn,yn!==0&&(rn=Xs(yn)))}else Xn=Gt&~ln,Xn!==0?rn=Xs(Xn):yn!==0&&(rn=Xs(yn));if(rn===0)return 0;if(Mt!==0&&Mt!==rn&&!(Mt&ln)&&(ln=rn&-rn,yn=Mt&-Mt,ln>=yn||ln===16&&(yn&4194240)!==0))return Mt;if(rn&4&&(rn|=Gt&16),Mt=wt.entangledLanes,Mt!==0)for(wt=wt.entanglements,Mt&=rn;0Gt;Gt++)Mt.push(wt);return Mt}function Mn(wt,Mt,Gt){wt.pendingLanes|=Mt,Mt!==536870912&&(wt.suspendedLanes=0,wt.pingedLanes=0),wt=wt.eventTimes,Mt=31-fs(Mt),wt[Mt]=Gt}function Wn(wt,Mt){var Gt=wt.pendingLanes&~Mt;wt.pendingLanes=Mt,wt.suspendedLanes=0,wt.pingedLanes=0,wt.expiredLanes&=Mt,wt.mutableReadLanes&=Mt,wt.entangledLanes&=Mt,Mt=wt.entanglements;var rn=wt.eventTimes;for(wt=wt.expirationTimes;0>=Xn,ln-=Xn,Bu=1<<32-fs(Mt)+ln|Gt<Xo?(Vs=jo,jo=null):Vs=jo.sibling;var ss=wo(xr,jo,Dr[Xo],fo);if(ss===null){jo===null&&(jo=Vs);break}wt&&jo&&ss.alternate===null&&Mt(xr,jo),yr=yn(ss,yr,Xo),Yo===null?Qo=ss:Yo.sibling=ss,Yo=ss,jo=Vs}if(Xo===Dr.length)return Gt(xr,jo),Us&&vu(xr,Xo),Qo;if(jo===null){for(;XoXo?(Vs=jo,jo=null):Vs=jo.sibling;var yu=wo(xr,jo,ss.value,fo);if(yu===null){jo===null&&(jo=Vs);break}wt&&jo&&yu.alternate===null&&Mt(xr,jo),yr=yn(yu,yr,Xo),Yo===null?Qo=yu:Yo.sibling=yu,Yo=yu,jo=Vs}if(ss.done)return Gt(xr,jo),Us&&vu(xr,Xo),Qo;if(jo===null){for(;!ss.done;Xo++,ss=Dr.next())ss=Zo(xr,ss.value,fo),ss!==null&&(yr=yn(ss,yr,Xo),Yo===null?Qo=ss:Yo.sibling=ss,Yo=ss);return Us&&vu(xr,Xo),Qo}for(jo=rn(xr,jo);!ss.done;Xo++,ss=Dr.next())ss=ds(jo,xr,Xo,ss.value,fo),ss!==null&&(wt&&ss.alternate!==null&&jo.delete(ss.key===null?Xo:ss.key),yr=yn(ss,yr,Xo),Yo===null?Qo=ss:Yo.sibling=ss,Yo=ss);return wt&&jo.forEach(function(A0){return Mt(xr,A0)}),Us&&vu(xr,Xo),Qo}function Ol(xr,yr,Dr,fo){if(typeof Dr=="object"&&Dr!==null&&Dr.type===lt&&Dr.key===null&&(Dr=Dr.props.children),typeof Dr=="object"&&Dr!==null){switch(Dr.$$typeof){case st:e:{for(var Qo=Dr.key,Yo=yr;Yo!==null;){if(Yo.key===Qo){if(Qo=Dr.type,Qo===lt){if(Yo.tag===7){Gt(xr,Yo.sibling),yr=ln(Yo,Dr.props.children),yr.return=xr,xr=yr;break e}}else if(Yo.elementType===Qo||typeof Qo=="object"&&Qo!==null&&Qo.$$typeof===Ut&&Op(Qo)===Yo.type){Gt(xr,Yo.sibling),yr=ln(Yo,Dr.props),yr.ref=hp(xr,Yo,Dr),yr.return=xr,xr=yr;break e}Gt(xr,Yo);break}else Mt(xr,Yo);Yo=Yo.sibling}Dr.type===lt?(yr=ju(Dr.props.children,xr.mode,fo,Dr.key),yr.return=xr,xr=yr):(fo=M0(Dr.type,Dr.key,Dr.props,null,xr.mode,fo),fo.ref=hp(xr,yr,Dr),fo.return=xr,xr=fo)}return Xn(xr);case at:e:{for(Yo=Dr.key;yr!==null;){if(yr.key===Yo)if(yr.tag===4&&yr.stateNode.containerInfo===Dr.containerInfo&&yr.stateNode.implementation===Dr.implementation){Gt(xr,yr.sibling),yr=ln(yr,Dr.children||[]),yr.return=xr,xr=yr;break e}else{Gt(xr,yr);break}else Mt(xr,yr);yr=yr.sibling}yr=Zl(Dr,xr.mode,fo),yr.return=xr,xr=yr}return Xn(xr);case Ut:return Yo=Dr._init,Ol(xr,yr,Yo(Dr._payload),fo)}if(kt(Dr))return bo(xr,yr,Dr,fo);if(vt(Dr))return yl(xr,yr,Dr,fo);tu(xr,Dr)}return typeof Dr=="string"&&Dr!==""||typeof Dr=="number"?(Dr=""+Dr,yr!==null&&yr.tag===6?(Gt(xr,yr.sibling),yr=ln(yr,Dr),yr.return=xr,xr=yr):(Gt(xr,yr),yr=Fl(Dr,xr.mode,fo),yr.return=xr,xr=yr),Xn(xr)):Gt(xr,yr)}return Ol}var pp=V1(!0),M1=V1(!1),du={},vs=So(du),fp=So(du),gp=So(du);function hu(wt){if(wt===du)throw Error(it(174));return wt}function Z0(wt,Mt){Bo(gp,Mt),Bo(fp,wt),Bo(vs,du),wt=Ot(Mt),so(vs),Bo(vs,wt)}function mp(){so(vs),so(fp),so(gp)}function N1(wt){var Mt=hu(gp.current),Gt=hu(vs.current);Mt=Jt(Gt,wt.type,Mt),Gt!==Mt&&(Bo(fp,wt),Bo(vs,Mt))}function Vu(wt){fp.current===wt&&(so(vs),so(fp))}var dr=So(0);function Lr(wt){for(var Mt=wt;Mt!==null;){if(Mt.tag===13){var Gt=Mt.memoizedState;if(Gt!==null&&(Gt=Gt.dehydrated,Gt===null||Gn(Gt)||er(Gt)))return Mt}else if(Mt.tag===19&&Mt.memoizedProps.revealOrder!==void 0){if(Mt.flags&128)return Mt}else if(Mt.child!==null){Mt.child.return=Mt,Mt=Mt.child;continue}if(Mt===wt)break;for(;Mt.sibling===null;){if(Mt.return===null||Mt.return===wt)return null;Mt=Mt.return}Mt.sibling.return=Mt.return,Mt=Mt.sibling}return null}var Nr=[];function go(){for(var wt=0;wtGt?Gt:4,wt(!0);var rn=zo.transition;zo.transition={};try{wt(!1),Mt()}finally{Cr=Gt,zo.transition=rn}}function O1(){return xl().memoizedState}function Js(wt,Mt,Gt){var rn=Uu(wt);Gt={lane:rn,action:Gt,hasEagerState:!1,eagerState:null,next:null},J1(wt)?W1(Mt,Gt):(Y0(wt,Mt,Gt),Gt=xa(),wt=Ll(wt,rn,Gt),wt!==null&&I1(wt,Mt,rn))}function na(wt,Mt,Gt){var rn=Uu(wt),ln={lane:rn,action:Gt,hasEagerState:!1,eagerState:null,next:null};if(J1(wt))W1(Mt,ln);else{Y0(wt,Mt,ln);var yn=wt.alternate;if(wt.lanes===0&&(yn===null||yn.lanes===0)&&(yn=Mt.lastRenderedReducer,yn!==null))try{var Xn=Mt.lastRenderedState,pr=yn(Xn,Gt);if(ln.hasEagerState=!0,ln.eagerState=pr,vn(pr,Xn))return}catch{}finally{}Gt=xa(),wt=Ll(wt,rn,Gt),wt!==null&&I1(wt,Mt,rn)}}function J1(wt){var Mt=wt.alternate;return wt===ko||Mt!==null&&Mt===ko}function W1(wt,Mt){Mu=_l=!0;var Gt=wt.pending;Gt===null?Mt.next=Mt:(Mt.next=Gt.next,Gt.next=Mt),wt.pending=Mt}function Y0(wt,Mt,Gt){Cs!==null&&wt.mode&1&&!(Ho&2)?(wt=Mt.interleaved,wt===null?(Gt.next=Gt,uu===null?uu=[Mt]:uu.push(Mt)):(Gt.next=wt.next,wt.next=Gt),Mt.interleaved=Gt):(wt=Mt.pending,wt===null?Gt.next=Gt:(Gt.next=wt.next,wt.next=Gt),Mt.pending=Gt)}function I1(wt,Mt,Gt){if(Gt&4194240){var rn=Mt.lanes;rn&=wt.pendingLanes,Gt|=rn,Mt.lanes=Gt,Vr(wt,Gt)}}var Rp={readContext:Rs,useCallback:Os,useContext:Os,useEffect:Os,useImperativeHandle:Os,useInsertionEffect:Os,useLayoutEffect:Os,useMemo:Os,useReducer:Os,useRef:Os,useState:Os,useDebugValue:Os,useDeferredValue:Os,useTransition:Os,useMutableSource:Os,useSyncExternalStore:Os,useId:Os,unstable_isNewReconciler:!1},$p={readContext:Rs,useCallback:function(wt,Mt){return pu().memoizedState=[wt,Mt===void 0?null:Mt],wt},useContext:Rs,useEffect:yp,useImperativeHandle:function(wt,Mt,Gt){return Gt=Gt!=null?Gt.concat([wt]):null,Au(4194308,4,Zp.bind(null,Mt,wt),Gt)},useLayoutEffect:function(wt,Mt){return Au(4194308,4,wt,Mt)},useInsertionEffect:function(wt,Mt){return Au(4,2,wt,Mt)},useMemo:function(wt,Mt){var Gt=pu();return Mt=Mt===void 0?null:Mt,wt=wt(),Gt.memoizedState=[wt,Mt],wt},useReducer:function(wt,Mt,Gt){var rn=pu();return Mt=Gt!==void 0?Gt(Mt):Mt,rn.memoizedState=rn.baseState=Mt,wt={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:wt,lastRenderedState:Mt},rn.queue=wt,wt=wt.dispatch=Js.bind(null,ko,wt),[rn.memoizedState,wt]},useRef:function(wt){var Mt=pu();return wt={current:wt},Mt.memoizedState=wt},useState:m0,useDebugValue:zp,useDeferredValue:function(wt){var Mt=m0(wt),Gt=Mt[0],rn=Mt[1];return yp(function(){var ln=zo.transition;zo.transition={};try{rn(wt)}finally{zo.transition=ln}},[wt]),Gt},useTransition:function(){var wt=m0(!1),Mt=wt[0];return wt=T2.bind(null,wt[1]),pu().memoizedState=wt,[Mt,wt]},useMutableSource:function(){},useSyncExternalStore:function(wt,Mt,Gt){var rn=ko,ln=pu();if(Us){if(Gt===void 0)throw Error(it(407));Gt=Gt()}else{if(Gt=Mt(),Cs===null)throw Error(it(349));Ss&30||Ip(rn,Mt,Gt)}ln.memoizedState=Gt;var yn={value:Gt,getSnapshot:Mt};return ln.queue=yn,yp(Lp.bind(null,rn,yn,wt),[wt]),rn.flags|=2048,Nu(9,z0.bind(null,rn,yn,Gt,Mt),void 0,null),Gt},useId:function(){var wt=pu(),Mt=Cs.identifierPrefix;if(Us){var Gt=_c,rn=Bu;Gt=(rn&~(1<<32-fs(rn)-1)).toString(32)+Gt,Mt=":"+Mt+"R"+Gt,Gt=Jp++,0_f&&(Mt.flags|=128,rn=!0,ga(ln,!1),Mt.lanes=4194304)}else{if(!rn)if(wt=Lr(yn),wt!==null){if(Mt.flags|=128,rn=!0,wt=wt.updateQueue,wt!==null&&(Mt.updateQueue=wt,Mt.flags|=4),ga(ln,!0),ln.tail===null&&ln.tailMode==="hidden"&&!yn.alternate&&!Us)return Mo(Mt),null}else 2*ir()-ln.renderingStartTime>_f&&Gt!==1073741824&&(Mt.flags|=128,rn=!0,ga(ln,!1),Mt.lanes=4194304);ln.isBackwards?(yn.sibling=Mt.child,Mt.child=yn):(wt=ln.last,wt!==null?wt.sibling=yn:Mt.child=yn,ln.last=yn)}return ln.tail!==null?(Mt=ln.tail,ln.rendering=Mt,ln.tail=Mt.sibling,ln.renderingStartTime=ir(),Mt.sibling=null,wt=dr.current,Bo(dr,rn?wt&1|2:wt&1),Mt):(Mo(Mt),null);case 22:case 23:return f1(),rn=Mt.memoizedState!==null,wt!==null&&wt.memoizedState!==null!==rn&&(Mt.flags|=8192),rn&&Mt.mode&1?Al&1073741824&&(Mo(Mt),Ht&&Mt.subtreeFlags&6&&(Mt.flags|=8192)):Mo(Mt),null;case 24:return null;case 25:return null}throw Error(it(156,Mt.tag))}var C2=ot.ReactCurrentOwner,Vl=!1;function _s(wt,Mt,Gt,rn){Mt.child=wt===null?M1(Mt,null,Gt,rn):pp(Mt,wt.child,Gt,rn)}function z1(wt,Mt,Gt,rn,ln){Gt=Gt.render;var yn=Mt.ref;return $u(Mt,ln),rn=us(wt,Mt,Gt,rn,yn,ln),Gt=j0(),wt!==null&&!Vl?(Mt.updateQueue=wt.updateQueue,Mt.flags&=-2053,wt.lanes&=~ln,Js(wt,Mt,ln)):(Us&&Gt&&p0(Mt),Mt.flags|=1,_s(wt,Mt,rn,ln),Mt.child)}function $1(wt,Mt,Gt,rn,ln){if(wt===null){var yn=Gt.type;return typeof yn=="function"&&!R1(yn)&&yn.defaultProps===void 0&&Gt.compare===null&&Gt.defaultProps===void 0?(Mt.tag=15,Mt.type=yn,G1(wt,Mt,yn,rn,ln)):(wt=M0(Gt.type,null,rn,Mt,Mt.mode,ln),wt.ref=Mt.ref,wt.return=Mt,Mt.child=wt)}if(yn=wt.child,!(wt.lanes&ln)){var Xn=yn.memoizedProps;if(Gt=Gt.compare,Gt=Gt!==null?Gt:no,Gt(Xn,rn)&&wt.ref===Mt.ref)return Js(wt,Mt,ln)}return Mt.flags|=1,wt=Tu(yn,rn),wt.ref=Mt.ref,wt.return=Mt,Mt.child=wt}function G1(wt,Mt,Gt,rn,ln){if(wt!==null&&no(wt.memoizedProps,rn)&&wt.ref===Mt.ref)if(Vl=!1,(wt.lanes&ln)!==0)wt.flags&131072&&(Vl=!0);else return Mt.lanes=wt.lanes,Js(wt,Mt,ln);return nu(wt,Mt,Gt,rn,ln)}function H1(wt,Mt,Gt){var rn=Mt.pendingProps,ln=rn.children,yn=wt!==null?wt.memoizedState:null;if(rn.mode==="hidden")if(!(Mt.mode&1))Mt.memoizedState={baseLanes:0,cachePool:null},Bo(_p,Al),Al|=Gt;else if(Gt&1073741824)Mt.memoizedState={baseLanes:0,cachePool:null},rn=yn!==null?yn.baseLanes:Gt,Bo(_p,Al),Al|=rn;else return wt=yn!==null?yn.baseLanes|Gt:Gt,Mt.lanes=Mt.childLanes=1073741824,Mt.memoizedState={baseLanes:wt,cachePool:null},Mt.updateQueue=null,Bo(_p,Al),Al|=wt,null;else yn!==null?(rn=yn.baseLanes|Gt,Mt.memoizedState=null):rn=Gt,Bo(_p,Al),Al|=rn;return _s(wt,Mt,ln,Gt),Mt.child}function Y1(wt,Mt){var Gt=Mt.ref;(wt===null&&Gt!==null||wt!==null&&wt.ref!==Gt)&&(Mt.flags|=512,Mt.flags|=2097152)}function nu(wt,Mt,Gt,rn,ln){var yn=Lo(Gt)?gs:ns.current;return yn=bs(Mt,yn),$u(Mt,ln),Gt=us(wt,Mt,Gt,rn,yn,ln),rn=j0(),wt!==null&&!Vl?(Mt.updateQueue=wt.updateQueue,Mt.flags&=-2053,wt.lanes&=~ln,Js(wt,Mt,ln)):(Us&&rn&&p0(Mt),Mt.flags|=1,_s(wt,Mt,Gt,ln),Mt.child)}function X1(wt,Mt,Gt,rn,ln){if(Lo(Gt)){var yn=!0;ys(Mt)}else yn=!1;if($u(Mt,ln),Mt.stateNode===null)wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),T1(Mt,Gt,rn),lp(Mt,Gt,rn,ln),rn=!0;else if(wt===null){var Xn=Mt.stateNode,pr=Mt.memoizedProps;Xn.props=pr;var Or=Xn.context,io=Gt.contextType;typeof io=="object"&&io!==null?io=Rs(io):(io=Lo(Gt)?gs:ns.current,io=bs(Mt,io));var yo=Gt.getDerivedStateFromProps,Zo=typeof yo=="function"||typeof Xn.getSnapshotBeforeUpdate=="function";Zo||typeof Xn.UNSAFE_componentWillReceiveProps!="function"&&typeof Xn.componentWillReceiveProps!="function"||(pr!==rn||Or!==io)&&I0(Mt,Xn,rn,io),Ds=!1;var wo=Mt.memoizedState;Xn.state=wo,Xl(Mt,rn,Xn,ln),Or=Mt.memoizedState,pr!==rn||wo!==Or||ps.current||Ds?(typeof yo=="function"&&(Mp(Mt,Gt,yo,rn),Or=Mt.memoizedState),(pr=Ds||E1(Mt,Gt,pr,rn,wo,Or,io))?(Zo||typeof Xn.UNSAFE_componentWillMount!="function"&&typeof Xn.componentWillMount!="function"||(typeof Xn.componentWillMount=="function"&&Xn.componentWillMount(),typeof Xn.UNSAFE_componentWillMount=="function"&&Xn.UNSAFE_componentWillMount()),typeof Xn.componentDidMount=="function"&&(Mt.flags|=4194308)):(typeof Xn.componentDidMount=="function"&&(Mt.flags|=4194308),Mt.memoizedProps=rn,Mt.memoizedState=Or),Xn.props=rn,Xn.state=Or,Xn.context=io,rn=pr):(typeof Xn.componentDidMount=="function"&&(Mt.flags|=4194308),rn=!1)}else{Xn=Mt.stateNode,J0(wt,Mt),pr=Mt.memoizedProps,io=Mt.type===Mt.elementType?pr:Co(Mt.type,pr),Xn.props=io,Zo=Mt.pendingProps,wo=Xn.context,Or=Gt.contextType,typeof Or=="object"&&Or!==null?Or=Rs(Or):(Or=Lo(Gt)?gs:ns.current,Or=bs(Mt,Or));var ds=Gt.getDerivedStateFromProps;(yo=typeof ds=="function"||typeof Xn.getSnapshotBeforeUpdate=="function")||typeof Xn.UNSAFE_componentWillReceiveProps!="function"&&typeof Xn.componentWillReceiveProps!="function"||(pr!==Zo||wo!==Or)&&I0(Mt,Xn,rn,Or),Ds=!1,wo=Mt.memoizedState,Xn.state=wo,Xl(Mt,rn,Xn,ln);var bo=Mt.memoizedState;pr!==Zo||wo!==bo||ps.current||Ds?(typeof ds=="function"&&(Mp(Mt,Gt,ds,rn),bo=Mt.memoizedState),(io=Ds||E1(Mt,Gt,io,rn,wo,bo,Or)||!1)?(yo||typeof Xn.UNSAFE_componentWillUpdate!="function"&&typeof Xn.componentWillUpdate!="function"||(typeof Xn.componentWillUpdate=="function"&&Xn.componentWillUpdate(rn,bo,Or),typeof Xn.UNSAFE_componentWillUpdate=="function"&&Xn.UNSAFE_componentWillUpdate(rn,bo,Or)),typeof Xn.componentDidUpdate=="function"&&(Mt.flags|=4),typeof Xn.getSnapshotBeforeUpdate=="function"&&(Mt.flags|=1024)):(typeof Xn.componentDidUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=4),typeof Xn.getSnapshotBeforeUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=1024),Mt.memoizedProps=rn,Mt.memoizedState=bo),Xn.props=rn,Xn.state=bo,Xn.context=Or,rn=io):(typeof Xn.componentDidUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=4),typeof Xn.getSnapshotBeforeUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=1024),rn=!1)}return K0(wt,Mt,Gt,rn,yn,ln)}function K0(wt,Mt,Gt,rn,ln,yn){Y1(wt,Mt);var Xn=(Mt.flags&128)!==0;if(!rn&&!Xn)return ln&&Ns(Mt,Gt,!1),Js(wt,Mt,yn);rn=Mt.stateNode,C2.current=Mt;var pr=Xn&&typeof Gt.getDerivedStateFromError!="function"?null:rn.render();return Mt.flags|=1,wt!==null&&Xn?(Mt.child=pp(Mt,wt.child,null,yn),Mt.child=pp(Mt,null,pr,yn)):_s(wt,Mt,pr,yn),Mt.memoizedState=rn.state,ln&&Ns(Mt,Gt,!0),Mt.child}function K1(wt){var Mt=wt.stateNode;Mt.pendingContext?Ps(wt,Mt.pendingContext,Mt.pendingContext!==Mt.context):Mt.context&&Ps(wt,Mt.context,!1),Z0(wt,Mt.containerInfo)}function q1(wt,Mt,Gt,rn,ln){return dp(),Dp(ln),Mt.flags|=256,_s(wt,Mt,Gt,rn),Mt.child}var F0={dehydrated:null,treeContext:null,retryLane:0};function Il(wt){return{baseLanes:wt,cachePool:null}}function _g(wt,Mt,Gt){var rn=Mt.pendingProps,ln=dr.current,yn=!1,Xn=(Mt.flags&128)!==0,pr;if((pr=Xn)||(pr=wt!==null&&wt.memoizedState===null?!1:(ln&2)!==0),pr?(yn=!0,Mt.flags&=-129):(wt===null||wt.memoizedState!==null)&&(ln|=1),Bo(dr,ln&1),wt===null)return P0(Mt),wt=Mt.memoizedState,wt!==null&&(wt=wt.dehydrated,wt!==null)?(Mt.mode&1?er(wt)?Mt.lanes=8:Mt.lanes=1073741824:Mt.lanes=1,null):(ln=rn.children,wt=rn.fallback,yn?(rn=Mt.mode,yn=Mt.child,ln={mode:"hidden",children:ln},!(rn&1)&&yn!==null?(yn.childLanes=0,yn.pendingProps=ln):yn=i0(ln,rn,0,null),wt=ju(wt,rn,Gt,null),yn.return=Mt,wt.return=Mt,yn.sibling=wt,Mt.child=yn,Mt.child.memoizedState=Il(Gt),Mt.memoizedState=F0,wt):q0(Mt,ln));if(ln=wt.memoizedState,ln!==null){if(pr=ln.dehydrated,pr!==null){if(Xn)return Mt.flags&256?(Mt.flags&=-257,y0(wt,Mt,Gt,Error(it(422)))):Mt.memoizedState!==null?(Mt.child=wt.child,Mt.flags|=128,null):(yn=rn.fallback,ln=Mt.mode,rn=i0({mode:"visible",children:rn.children},ln,0,null),yn=ju(yn,ln,Gt,null),yn.flags|=2,rn.return=Mt,yn.return=Mt,rn.sibling=yn,Mt.child=rn,Mt.mode&1&&pp(Mt,wt.child,null,Gt),Mt.child.memoizedState=Il(Gt),Mt.memoizedState=F0,yn);if(!(Mt.mode&1))Mt=y0(wt,Mt,Gt,null);else if(er(pr))Mt=y0(wt,Mt,Gt,Error(it(419)));else if(rn=(Gt&wt.childLanes)!==0,Vl||rn){if(rn=Cs,rn!==null){switch(Gt&-Gt){case 4:yn=2;break;case 16:yn=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:yn=32;break;case 536870912:yn=268435456;break;default:yn=0}rn=yn&(rn.suspendedLanes|Gt)?0:yn,rn!==0&&rn!==ln.retryLane&&(ln.retryLane=rn,Ll(wt,rn,-1))}C0(),Mt=y0(wt,Mt,Gt,Error(it(421)))}else Gn(pr)?(Mt.flags|=128,Mt.child=wt.child,Mt=Zu.bind(null,wt),cr(pr,Mt),Mt=null):(Gt=ln.treeContext,on&&(Hs=nr(pr),Ql=Mt,Us=!0,eu=null,up=!1,Gt!==null&&(El[Tl++]=Bu,El[Tl++]=_c,El[Tl++]=xu,Bu=Gt.id,_c=Gt.overflow,xu=Mt)),Mt=q0(Mt,Mt.pendingProps.children),Mt.flags|=4096);return Mt}return yn?(rn=t2(wt,Mt,rn.children,rn.fallback,Gt),yn=Mt.child,ln=wt.child.memoizedState,yn.memoizedState=ln===null?Il(Gt):{baseLanes:ln.baseLanes|Gt,cachePool:null},yn.childLanes=wt.childLanes&~Gt,Mt.memoizedState=F0,rn):(Gt=e2(wt,Mt,rn.children,Gt),Mt.memoizedState=null,Gt)}return yn?(rn=t2(wt,Mt,rn.children,rn.fallback,Gt),yn=Mt.child,ln=wt.child.memoizedState,yn.memoizedState=ln===null?Il(Gt):{baseLanes:ln.baseLanes|Gt,cachePool:null},yn.childLanes=wt.childLanes&~Gt,Mt.memoizedState=F0,rn):(Gt=e2(wt,Mt,rn.children,Gt),Mt.memoizedState=null,Gt)}function q0(wt,Mt){return Mt=i0({mode:"visible",children:Mt},wt.mode,0,null),Mt.return=wt,wt.child=Mt}function e2(wt,Mt,Gt,rn){var ln=wt.child;return wt=ln.sibling,Gt=Tu(ln,{mode:"visible",children:Gt}),!(Mt.mode&1)&&(Gt.lanes=rn),Gt.return=Mt,Gt.sibling=null,wt!==null&&(rn=Mt.deletions,rn===null?(Mt.deletions=[wt],Mt.flags|=16):rn.push(wt)),Mt.child=Gt}function t2(wt,Mt,Gt,rn,ln){var yn=Mt.mode;wt=wt.child;var Xn=wt.sibling,pr={mode:"hidden",children:Gt};return!(yn&1)&&Mt.child!==wt?(Gt=Mt.child,Gt.childLanes=0,Gt.pendingProps=pr,Mt.deletions=null):(Gt=Tu(wt,pr),Gt.subtreeFlags=wt.subtreeFlags&14680064),Xn!==null?rn=Tu(Xn,rn):(rn=ju(rn,yn,ln,null),rn.flags|=2),rn.return=Mt,Gt.return=Mt,Gt.sibling=rn,Mt.child=Gt,rn}function y0(wt,Mt,Gt,rn){return rn!==null&&Dp(rn),pp(Mt,wt.child,null,Gt),wt=q0(Mt,Mt.pendingProps.children),wt.flags|=2,Mt.memoizedState=null,wt}function ku(wt,Mt,Gt){wt.lanes|=Mt;var rn=wt.alternate;rn!==null&&(rn.lanes|=Mt),u0(wt.return,Mt,Gt)}function e1(wt,Mt,Gt,rn,ln){var yn=wt.memoizedState;yn===null?wt.memoizedState={isBackwards:Mt,rendering:null,renderingStartTime:0,last:rn,tail:Gt,tailMode:ln}:(yn.isBackwards=Mt,yn.rendering=null,yn.renderingStartTime=0,yn.last=rn,yn.tail=Gt,yn.tailMode=ln)}function n2(wt,Mt,Gt){var rn=Mt.pendingProps,ln=rn.revealOrder,yn=rn.tail;if(_s(wt,Mt,rn.children,Gt),rn=dr.current,rn&2)rn=rn&1|2,Mt.flags|=128;else{if(wt!==null&&wt.flags&128)e:for(wt=Mt.child;wt!==null;){if(wt.tag===13)wt.memoizedState!==null&&ku(wt,Gt,Mt);else if(wt.tag===19)ku(wt,Gt,Mt);else if(wt.child!==null){wt.child.return=wt,wt=wt.child;continue}if(wt===Mt)break e;for(;wt.sibling===null;){if(wt.return===null||wt.return===Mt)break e;wt=wt.return}wt.sibling.return=wt.return,wt=wt.sibling}rn&=1}if(Bo(dr,rn),!(Mt.mode&1))Mt.memoizedState=null;else switch(ln){case"forwards":for(Gt=Mt.child,ln=null;Gt!==null;)wt=Gt.alternate,wt!==null&&Lr(wt)===null&&(ln=Gt),Gt=Gt.sibling;Gt=ln,Gt===null?(ln=Mt.child,Mt.child=null):(ln=Gt.sibling,Gt.sibling=null),e1(Mt,!1,ln,Gt,yn);break;case"backwards":for(Gt=null,ln=Mt.child,Mt.child=null;ln!==null;){if(wt=ln.alternate,wt!==null&&Lr(wt)===null){Mt.child=ln;break}wt=ln.sibling,ln.sibling=Gt,Gt=ln,ln=wt}e1(Mt,!0,Gt,null,yn);break;case"together":e1(Mt,!1,null,null,void 0);break;default:Mt.memoizedState=null}return Mt.child}function Js(wt,Mt,Gt){if(wt!==null&&(Mt.dependencies=wt.dependencies),Tp|=Mt.lanes,!(Gt&Mt.childLanes))return null;if(wt!==null&&Mt.child!==wt.child)throw Error(it(153));if(Mt.child!==null){for(wt=Mt.child,Gt=Tu(wt,wt.pendingProps),Mt.child=Gt,Gt.return=Mt;wt.sibling!==null;)wt=wt.sibling,Gt=Gt.sibling=Tu(wt,wt.pendingProps),Gt.return=Mt;Gt.sibling=null}return Mt.child}function x2(wt,Mt,Gt){switch(Mt.tag){case 3:K1(Mt),dp();break;case 5:N1(Mt);break;case 1:Lo(Mt.type)&&ys(Mt);break;case 4:Z0(Mt,Mt.stateNode.containerInfo);break;case 10:Ks(Mt,Mt.type._context,Mt.memoizedProps.value);break;case 13:var rn=Mt.memoizedState;if(rn!==null)return rn.dehydrated!==null?(Bo(dr,dr.current&1),Mt.flags|=128,null):Gt&Mt.child.childLanes?_g(wt,Mt,Gt):(Bo(dr,dr.current&1),wt=Js(wt,Mt,Gt),wt!==null?wt.sibling:null);Bo(dr,dr.current&1);break;case 19:if(rn=(Gt&Mt.childLanes)!==0,wt.flags&128){if(rn)return n2(wt,Mt,Gt);Mt.flags|=128}var ln=Mt.memoizedState;if(ln!==null&&(ln.rendering=null,ln.tail=null,ln.lastEffect=null),Bo(dr,dr.current),rn)break;return null;case 22:case 23:return Mt.lanes=0,H1(wt,Mt,Gt)}return Js(wt,Mt,Gt)}function V2(wt,Mt){switch(Bl(Mt),Mt.tag){case 1:return Lo(Mt.type)&&Qs(),wt=Mt.flags,wt&65536?(Mt.flags=wt&-65537|128,Mt):null;case 3:return mp(),so(ps),so(ns),go(),wt=Mt.flags,wt&65536&&!(wt&128)?(Mt.flags=wt&-65537|128,Mt):null;case 5:return Vu(Mt),null;case 13:if(so(dr),wt=Mt.memoizedState,wt!==null&&wt.dehydrated!==null){if(Mt.alternate===null)throw Error(it(340));dp()}return wt=Mt.flags,wt&65536?(Mt.flags=wt&-65537|128,Mt):null;case 19:return so(dr),null;case 4:return mp(),null;case 10:return c0(Mt.type._context),null;case 22:case 23:return f1(),null;case 24:return null;default:return null}}var R0=!1,qu=!1,M2=typeof WeakSet=="function"?WeakSet:Set,uo=null;function Yp(wt,Mt){var Gt=wt.ref;if(Gt!==null)if(typeof Gt=="function")try{Gt(null)}catch(rn){Ul(wt,Mt,rn)}else Gt.current=null}function t1(wt,Mt,Gt){try{Gt()}catch(rn){Ul(wt,Mt,rn)}}var r2=!1;function n1(wt,Mt){for(Dt(wt.containerInfo),uo=Mt;uo!==null;)if(wt=uo,Mt=wt.child,(wt.subtreeFlags&1028)!==0&&Mt!==null)Mt.return=wt,uo=Mt;else for(;uo!==null;){wt=uo;try{var Gt=wt.alternate;if(wt.flags&1024)switch(wt.tag){case 0:case 11:case 15:break;case 1:if(Gt!==null){var rn=Gt.memoizedProps,ln=Gt.memoizedState,yn=wt.stateNode,Xn=yn.getSnapshotBeforeUpdate(wt.elementType===wt.type?rn:Co(wt.type,rn),ln);yn.__reactInternalSnapshotBeforeUpdate=Xn}break;case 3:Ht&&Wn(wt.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(it(163))}}catch(pr){Ul(wt,wt.return,pr)}if(Mt=wt.sibling,Mt!==null){Mt.return=wt.return,uo=Mt;break}uo=wt.return}return Gt=r2,r2=!1,Gt}function ru(wt,Mt,Gt){var rn=Mt.updateQueue;if(rn=rn!==null?rn.lastEffect:null,rn!==null){var ln=rn=rn.next;do{if((ln.tag&wt)===wt){var yn=ln.destroy;ln.destroy=void 0,yn!==void 0&&t1(Mt,Gt,yn)}ln=ln.next}while(ln!==rn)}}function Du(wt,Mt){if(Mt=Mt.updateQueue,Mt=Mt!==null?Mt.lastEffect:null,Mt!==null){var Gt=Mt=Mt.next;do{if((Gt.tag&wt)===wt){var rn=Gt.create;Gt.destroy=rn()}Gt=Gt.next}while(Gt!==Mt)}}function r1(wt){var Mt=wt.ref;if(Mt!==null){var Gt=wt.stateNode;switch(wt.tag){case 5:wt=Nt(Gt);break;default:wt=Gt}typeof Mt=="function"?Mt(wt):Mt.current=wt}}function i1(wt,Mt,Gt){if(co&&typeof co.onCommitFiberUnmount=="function")try{co.onCommitFiberUnmount(Hr,Mt)}catch{}switch(Mt.tag){case 0:case 11:case 14:case 15:if(wt=Mt.updateQueue,wt!==null&&(wt=wt.lastEffect,wt!==null)){var rn=wt=wt.next;do{var ln=rn,yn=ln.destroy;ln=ln.tag,yn!==void 0&&(ln&2||ln&4)&&t1(Mt,Gt,yn),rn=rn.next}while(rn!==wt)}break;case 1:if(Yp(Mt,Gt),wt=Mt.stateNode,typeof wt.componentWillUnmount=="function")try{wt.props=Mt.memoizedProps,wt.state=Mt.memoizedState,wt.componentWillUnmount()}catch(Xn){Ul(Mt,Gt,Xn)}break;case 5:Yp(Mt,Gt);break;case 4:Ht?s1(wt,Mt,Gt):qt&&qt&&(Mt=Mt.stateNode.containerInfo,Gt=Fr(Mt),tr(Mt,Gt))}}function i2(wt,Mt,Gt){for(var rn=Mt;;)if(i1(wt,rn,Gt),rn.child===null||Ht&&rn.tag===4){if(rn===Mt)break;for(;rn.sibling===null;){if(rn.return===null||rn.return===Mt)return;rn=rn.return}rn.sibling.return=rn.return,rn=rn.sibling}else rn.child.return=rn,rn=rn.child}function mu(wt){var Mt=wt.alternate;Mt!==null&&(wt.alternate=null,mu(Mt)),wt.child=null,wt.deletions=null,wt.sibling=null,wt.tag===5&&(Mt=wt.stateNode,Mt!==null&&Fn(Mt)),wt.stateNode=null,wt.return=null,wt.dependencies=null,wt.memoizedProps=null,wt.memoizedState=null,wt.pendingProps=null,wt.stateNode=null,wt.updateQueue=null}function S0(wt){return wt.tag===5||wt.tag===3||wt.tag===4}function Ou(wt){e:for(;;){for(;wt.sibling===null;){if(wt.return===null||S0(wt.return))return null;wt=wt.return}for(wt.sibling.return=wt.return,wt=wt.sibling;wt.tag!==5&&wt.tag!==6&&wt.tag!==18;){if(wt.flags&2||wt.child===null||wt.tag===4)continue e;wt.child.return=wt,wt=wt.child}if(!(wt.flags&2))return wt.stateNode}}function Ml(wt){if(Ht){e:{for(var Mt=wt.return;Mt!==null;){if(S0(Mt))break e;Mt=Mt.return}throw Error(it(160))}var Gt=Mt;switch(Gt.tag){case 5:Mt=Gt.stateNode,Gt.flags&32&&(Fo(Mt),Gt.flags&=-33),Gt=Ou(wt),B0(wt,Gt,Mt);break;case 3:case 4:Mt=Gt.stateNode.containerInfo,Gt=Ou(wt),o1(wt,Gt,Mt);break;default:throw Error(it(161))}}}function o1(wt,Mt,Gt){var rn=wt.tag;if(rn===5||rn===6)wt=wt.stateNode,Mt?Yr(Gt,wt,Mt):Ir(Gt,wt);else if(rn!==4&&(wt=wt.child,wt!==null))for(o1(wt,Mt,Gt),wt=wt.sibling;wt!==null;)o1(wt,Mt,Gt),wt=wt.sibling}function B0(wt,Mt,Gt){var rn=wt.tag;if(rn===5||rn===6)wt=wt.stateNode,Mt?eo(Gt,wt,Mt):_r(Gt,wt);else if(rn!==4&&(wt=wt.child,wt!==null))for(B0(wt,Mt,Gt),wt=wt.sibling;wt!==null;)B0(wt,Mt,Gt),wt=wt.sibling}function s1(wt,Mt,Gt){for(var rn=Mt,ln=!1,yn,Xn;;){if(!ln){ln=rn.return;e:for(;;){if(ln===null)throw Error(it(160));switch(yn=ln.stateNode,ln.tag){case 5:Xn=!1;break e;case 3:yn=yn.containerInfo,Xn=!0;break e;case 4:yn=yn.containerInfo,Xn=!0;break e}ln=ln.return}ln=!0}if(rn.tag===5||rn.tag===6)i2(wt,rn,Gt),Xn?ro(yn,rn.stateNode):_o(yn,rn.stateNode);else if(rn.tag===18)Xn?zr(yn,rn.stateNode):fr(yn,rn.stateNode);else if(rn.tag===4){if(rn.child!==null){yn=rn.stateNode.containerInfo,Xn=!0,rn.child.return=rn,rn=rn.child;continue}}else if(i1(wt,rn,Gt),rn.child!==null){rn.child.return=rn,rn=rn.child;continue}if(rn===Mt)break;for(;rn.sibling===null;){if(rn.return===null||rn.return===Mt)return;rn=rn.return,rn.tag===4&&(ln=!1)}rn.sibling.return=rn.return,rn=rn.sibling}}function _d(wt,Mt){if(Ht){switch(Mt.tag){case 0:case 11:case 14:case 15:ru(3,Mt,Mt.return),Du(3,Mt),ru(5,Mt,Mt.return);return;case 1:return;case 5:var Gt=Mt.stateNode;if(Gt!=null){var rn=Mt.memoizedProps;wt=wt!==null?wt.memoizedProps:rn;var ln=Mt.type,yn=Mt.updateQueue;Mt.updateQueue=null,yn!==null&&Uo(Gt,yn,ln,wt,rn,Mt)}return;case 6:if(Mt.stateNode===null)throw Error(it(162));Gt=Mt.memoizedProps,Wr(Mt.stateNode,wt!==null?wt.memoizedProps:Gt,Gt);return;case 3:on&&wt!==null&&wt.memoizedState.isDehydrated&&Rr(Mt.stateNode.containerInfo);return;case 12:return;case 13:iu(Mt);return;case 19:iu(Mt);return;case 17:return}throw Error(it(163))}switch(Mt.tag){case 0:case 11:case 14:case 15:ru(3,Mt,Mt.return),Du(3,Mt),ru(5,Mt,Mt.return);return;case 12:return;case 13:iu(Mt);return;case 19:iu(Mt);return;case 3:on&&wt!==null&&wt.memoizedState.isDehydrated&&Rr(Mt.stateNode.containerInfo);break;case 22:case 23:return}e:if(qt){switch(Mt.tag){case 1:case 5:case 6:break e;case 3:case 4:Mt=Mt.stateNode,tr(Mt.containerInfo,Mt.pendingChildren);break e}throw Error(it(163))}}function iu(wt){var Mt=wt.updateQueue;if(Mt!==null){wt.updateQueue=null;var Gt=wt.stateNode;Gt===null&&(Gt=wt.stateNode=new M2),Mt.forEach(function(rn){var ln=p2.bind(null,wt,rn);Gt.has(rn)||(Gt.add(rn),rn.then(ln,ln))})}}function o2(wt,Mt){for(uo=Mt;uo!==null;){Mt=uo;var Gt=Mt.deletions;if(Gt!==null)for(var rn=0;rn";case Kp:return":has("+(qp(wt)||"")+")";case Nl:return'[role="'+wt.value+'"]';case _h:return'"'+wt.value+'"';case bp:return'[data-testname="'+wt.value+'"]';default:throw Error(it(365))}}function a2(wt,Mt){var Gt=[];wt=[wt,0];for(var rn=0;rnln&&(ln=Xn),rn&=~yn}if(rn=ln,rn=ir()-rn,rn=(120>rn?120:480>rn?480:1080>rn?1080:1920>rn?1920:3e3>rn?3e3:4320>rn?4320:1960*A2(rn/1960))-rn,10wt?16:wt,Eu===null)var rn=!1;else{if(wt=Eu,Eu=null,t0=0,Ho&6)throw Error(it(331));var ln=Ho;for(Ho|=4,uo=wt.current;uo!==null;){var yn=uo,Xn=yn.child;if(uo.flags&16){var pr=yn.deletions;if(pr!==null){for(var Or=0;Orir()-d1?Fu(wt,0):u1|=Gt),Vo(wt,Mt)}function d2(wt,Mt){Mt===0&&(wt.mode&1?(Mt=js,js<<=1,!(js&130023424)&&(js=4194304)):Mt=1);var Gt=xa();wt=xp(wt,Mt),wt!==null&&(Mn(wt,Mt,Gt),Vo(wt,Gt))}function Zu(wt){var Mt=wt.memoizedState,Gt=0;Mt!==null&&(Gt=Mt.retryLane),d2(wt,Gt)}function p2(wt,Mt){var Gt=0;switch(wt.tag){case 13:var rn=wt.stateNode,ln=wt.memoizedState;ln!==null&&(Gt=ln.retryLane);break;case 19:rn=wt.stateNode;break;default:throw Error(it(314))}rn!==null&&rn.delete(Mt),d2(wt,Gt)}var y1;y1=function(wt,Mt,Gt){if(wt!==null)if(wt.memoizedProps!==Mt.pendingProps||ps.current)Vl=!0;else{if(!(wt.lanes&Gt)&&!(Mt.flags&128))return Vl=!1,x2(wt,Mt,Gt);Vl=!!(wt.flags&131072)}else Vl=!1,Us&&Mt.flags&1048576&&w1(Mt,Ap,Mt.index);switch(Mt.lanes=0,Mt.tag){case 2:var rn=Mt.type;wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),wt=Mt.pendingProps;var ln=bs(Mt,ns.current);$u(Mt,Gt),ln=us(null,Mt,rn,wt,ln,Gt);var yn=j0();return Mt.flags|=1,typeof ln=="object"&&ln!==null&&typeof ln.render=="function"&&ln.$$typeof===void 0?(Mt.tag=1,Mt.memoizedState=null,Mt.updateQueue=null,Lo(rn)?(yn=!0,ys(Mt)):yn=!1,Mt.memoizedState=ln.state!==null&&ln.state!==void 0?ln.state:null,W0(Mt),ln.updater=h0,Mt.stateNode=ln,ln._reactInternals=Mt,lp(Mt,rn,wt,Gt),Mt=K0(null,Mt,rn,!0,yn,Gt)):(Mt.tag=0,Us&&yn&&p0(Mt),_s(null,Mt,ln,Gt),Mt=Mt.child),Mt;case 16:rn=Mt.elementType;e:{switch(wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),wt=Mt.pendingProps,ln=rn._init,rn=ln(rn._payload),Mt.type=rn,ln=Mt.tag=f2(rn),wt=Co(rn,wt),ln){case 0:Mt=nu(null,Mt,rn,wt,Gt);break e;case 1:Mt=X1(null,Mt,rn,wt,Gt);break e;case 11:Mt=z1(null,Mt,rn,wt,Gt);break e;case 14:Mt=$1(null,Mt,rn,Co(rn.type,wt),Gt);break e}throw Error(it(306,rn,""))}return Mt;case 0:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),nu(wt,Mt,rn,ln,Gt);case 1:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),X1(wt,Mt,rn,ln,Gt);case 3:e:{if(K1(Mt),wt===null)throw Error(it(387));rn=Mt.pendingProps,yn=Mt.memoizedState,ln=yn.element,J0(wt,Mt),Xl(Mt,rn,null,Gt);var Xn=Mt.memoizedState;if(rn=Xn.element,on&&yn.isDehydrated)if(yn={element:rn,isDehydrated:!1,cache:Xn.cache,transitions:Xn.transitions},Mt.updateQueue.baseState=yn,Mt.memoizedState=yn,Mt.flags&256){ln=Error(it(423)),Mt=q1(wt,Mt,rn,Gt,ln);break e}else if(rn!==ln){ln=Error(it(424)),Mt=q1(wt,Mt,rn,Gt,ln);break e}else for(on&&(Hs=ur(Mt.stateNode.containerInfo),Ql=Mt,Us=!0,eu=null,up=!1),Gt=M1(Mt,null,rn,Gt),Mt.child=Gt;Gt;)Gt.flags=Gt.flags&-3|4096,Gt=Gt.sibling;else{if(dp(),rn===ln){Mt=Js(wt,Mt,Gt);break e}_s(wt,Mt,rn,Gt)}Mt=Mt.child}return Mt;case 5:return N1(Mt),wt===null&&P0(Mt),rn=Mt.type,ln=Mt.pendingProps,yn=wt!==null?wt.memoizedProps:null,Xn=ln.children,nn(rn,ln)?Xn=null:yn!==null&&nn(rn,yn)&&(Mt.flags|=32),Y1(wt,Mt),_s(wt,Mt,Xn,Gt),Mt.child;case 6:return wt===null&&P0(Mt),null;case 13:return _g(wt,Mt,Gt);case 4:return Z0(Mt,Mt.stateNode.containerInfo),rn=Mt.pendingProps,wt===null?Mt.child=pp(Mt,null,rn,Gt):_s(wt,Mt,rn,Gt),Mt.child;case 11:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),z1(wt,Mt,rn,ln,Gt);case 7:return _s(wt,Mt,Mt.pendingProps,Gt),Mt.child;case 8:return _s(wt,Mt,Mt.pendingProps.children,Gt),Mt.child;case 12:return _s(wt,Mt,Mt.pendingProps.children,Gt),Mt.child;case 10:e:{if(rn=Mt.type._context,ln=Mt.pendingProps,yn=Mt.memoizedProps,Xn=ln.value,Ks(Mt,rn,Xn),yn!==null)if(vn(yn.value,Xn)){if(yn.children===ln.children&&!ps.current){Mt=Js(wt,Mt,Gt);break e}}else for(yn=Mt.child,yn!==null&&(yn.return=Mt);yn!==null;){var pr=yn.dependencies;if(pr!==null){Xn=yn.child;for(var Or=pr.firstContext;Or!==null;){if(Or.context===rn){if(yn.tag===1){Or=qs(-1,Gt&-Gt),Or.tag=2;var io=yn.updateQueue;if(io!==null){io=io.shared;var yo=io.pending;yo===null?Or.next=Or:(Or.next=yo.next,yo.next=Or),io.pending=Or}}yn.lanes|=Gt,Or=yn.alternate,Or!==null&&(Or.lanes|=Gt),u0(yn.return,Gt,Mt),pr.lanes|=Gt;break}Or=Or.next}}else if(yn.tag===10)Xn=yn.type===Mt.type?null:yn.child;else if(yn.tag===18){if(Xn=yn.return,Xn===null)throw Error(it(341));Xn.lanes|=Gt,pr=Xn.alternate,pr!==null&&(pr.lanes|=Gt),u0(Xn,Gt,Mt),Xn=yn.sibling}else Xn=yn.child;if(Xn!==null)Xn.return=yn;else for(Xn=yn;Xn!==null;){if(Xn===Mt){Xn=null;break}if(yn=Xn.sibling,yn!==null){yn.return=Xn.return,Xn=yn;break}Xn=Xn.return}yn=Xn}_s(wt,Mt,ln.children,Gt),Mt=Mt.child}return Mt;case 9:return ln=Mt.type,rn=Mt.pendingProps.children,$u(Mt,Gt),ln=Rs(ln),rn=rn(ln),Mt.flags|=1,_s(wt,Mt,rn,Gt),Mt.child;case 14:return rn=Mt.type,ln=Co(rn,Mt.pendingProps),ln=Co(rn.type,ln),$1(wt,Mt,rn,ln,Gt);case 15:return G1(wt,Mt,Mt.type,Mt.pendingProps,Gt);case 17:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),Mt.tag=1,Lo(rn)?(wt=!0,ys(Mt)):wt=!1,$u(Mt,Gt),T1(Mt,rn,ln),lp(Mt,rn,ln,Gt),K0(null,Mt,rn,!0,wt,Gt);case 19:return n2(wt,Mt,Gt);case 22:return H1(wt,Mt,Gt)}throw Error(it(156,Mt.tag))};function V0(wt,Mt){return bn(wt,Mt)}function k2(wt,Mt,Gt,rn){this.tag=wt,this.key=Gt,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=Mt,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=rn,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pl(wt,Mt,Gt,rn){return new k2(wt,Mt,Gt,rn)}function R1(wt){return wt=wt.prototype,!(!wt||!wt.isReactComponent)}function f2(wt){if(typeof wt=="function")return R1(wt)?1:0;if(wt!=null){if(wt=wt.$$typeof,wt===pt)return 11;if(wt===yt)return 14}return 2}function Tu(wt,Mt){var Gt=wt.alternate;return Gt===null?(Gt=Pl(wt.tag,Mt,wt.key,wt.mode),Gt.elementType=wt.elementType,Gt.type=wt.type,Gt.stateNode=wt.stateNode,Gt.alternate=wt,wt.alternate=Gt):(Gt.pendingProps=Mt,Gt.type=wt.type,Gt.flags=0,Gt.subtreeFlags=0,Gt.deletions=null),Gt.flags=wt.flags&14680064,Gt.childLanes=wt.childLanes,Gt.lanes=wt.lanes,Gt.child=wt.child,Gt.memoizedProps=wt.memoizedProps,Gt.memoizedState=wt.memoizedState,Gt.updateQueue=wt.updateQueue,Mt=wt.dependencies,Gt.dependencies=Mt===null?null:{lanes:Mt.lanes,firstContext:Mt.firstContext},Gt.sibling=wt.sibling,Gt.index=wt.index,Gt.ref=wt.ref,Gt}function M0(wt,Mt,Gt,rn,ln,yn){var Xn=2;if(rn=wt,typeof wt=="function")R1(wt)&&(Xn=1);else if(typeof wt=="string")Xn=5;else e:switch(wt){case lt:return ju(Gt.children,ln,yn,Mt);case ut:Xn=8,ln|=8;break;case dt:return wt=Pl(12,Gt,Mt,ln|2),wt.elementType=dt,wt.lanes=yn,wt;case ft:return wt=Pl(13,Gt,Mt,ln),wt.elementType=ft,wt.lanes=yn,wt;case gt:return wt=Pl(19,Gt,Mt,ln),wt.elementType=gt,wt.lanes=yn,wt;case Ft:return i0(Gt,ln,yn,Mt);default:if(typeof wt=="object"&&wt!==null)switch(wt.$$typeof){case ht:Xn=10;break e;case ct:Xn=9;break e;case pt:Xn=11;break e;case yt:Xn=14;break e;case Ut:Xn=16,rn=null;break e}throw Error(it(130,wt==null?wt:typeof wt,""))}return Mt=Pl(Xn,Gt,Mt,ln),Mt.elementType=wt,Mt.type=rn,Mt.lanes=yn,Mt}function ju(wt,Mt,Gt,rn){return wt=Pl(7,wt,rn,Mt),wt.lanes=Gt,wt}function i0(wt,Mt,Gt,rn){return wt=Pl(22,wt,rn,Mt),wt.elementType=Ft,wt.lanes=Gt,wt.stateNode={},wt}function Fl(wt,Mt,Gt){return wt=Pl(6,wt,null,Mt),wt.lanes=Gt,wt}function Zl(wt,Mt,Gt){return Mt=Pl(4,wt.children!==null?wt.children:[],wt.key,Mt),Mt.lanes=Gt,Mt.stateNode={containerInfo:wt.containerInfo,pendingChildren:null,implementation:wt.implementation},Mt}function D2(wt,Mt,Gt,rn,ln){this.tag=Mt,this.containerInfo=wt,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=It,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Dn(0),this.expirationTimes=Dn(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Dn(0),this.identifierPrefix=rn,this.onRecoverableError=ln,on&&(this.mutableSourceEagerHydrationData=null)}function g2(wt,Mt,Gt,rn,ln,yn,Xn,pr,Or){return wt=new D2(wt,Mt,Gt,pr,Or),Mt===1?(Mt=1,yn===!0&&(Mt|=8)):Mt=0,yn=Pl(3,null,null,Mt),wt.current=yn,yn.stateNode=wt,yn.memoizedState={element:rn,isDehydrated:Gt,cache:null,transitions:null},W0(yn),wt}function o0(wt){if(!wt)return Io;wt=wt._reactInternals;e:{if(Rt(wt)!==wt||wt.tag!==1)throw Error(it(170));var Mt=wt;do{switch(Mt.tag){case 3:Mt=Mt.stateNode.context;break e;case 1:if(Lo(Mt.type)){Mt=Mt.stateNode.__reactInternalMemoizedMergedChildContext;break e}}Mt=Mt.return}while(Mt!==null);throw Error(it(171))}if(wt.tag===1){var Gt=wt.type;if(Lo(Gt))return No(wt,Gt,Mt)}return Mt}function np(wt){var Mt=wt._reactInternals;if(Mt===void 0)throw typeof wt.render=="function"?Error(it(188)):(wt=Object.keys(wt).join(","),Error(it(268,wt)));return wt=Bt(Mt),wt===null?null:wt.stateNode}function S1(wt,Mt){if(wt=wt.memoizedState,wt!==null&&wt.dehydrated!==null){var Gt=wt.retryLane;wt.retryLane=Gt!==0&&Gt=io&&yn>=Zo&&ln<=yo&&Xn<=wo){wt.splice(Mt,1);break}else if(rn!==io||Gt.width!==Or.width||woXn){if(!(yn!==Zo||Gt.height!==Or.height||yoln)){io>rn&&(Or.width+=io-rn,Or.x=rn),yoyn&&(Or.height+=Zo-yn,Or.y=yn),woGt&&(Gt=Xn)),Xn_f&&(Mt.flags|=128,rn=!0,ga(ln,!1),Mt.lanes=4194304)}else{if(!rn)if(wt=Lr(yn),wt!==null){if(Mt.flags|=128,rn=!0,wt=wt.updateQueue,wt!==null&&(Mt.updateQueue=wt,Mt.flags|=4),ga(ln,!0),ln.tail===null&&ln.tailMode==="hidden"&&!yn.alternate&&!Us)return Mo(Mt),null}else 2*ir()-ln.renderingStartTime>_f&&Gt!==1073741824&&(Mt.flags|=128,rn=!0,ga(ln,!1),Mt.lanes=4194304);ln.isBackwards?(yn.sibling=Mt.child,Mt.child=yn):(wt=ln.last,wt!==null?wt.sibling=yn:Mt.child=yn,ln.last=yn)}return ln.tail!==null?(Mt=ln.tail,ln.rendering=Mt,ln.tail=Mt.sibling,ln.renderingStartTime=ir(),Mt.sibling=null,wt=dr.current,Bo(dr,rn?wt&1|2:wt&1),Mt):(Mo(Mt),null);case 22:case 23:return f1(),rn=Mt.memoizedState!==null,wt!==null&&wt.memoizedState!==null!==rn&&(Mt.flags|=8192),rn&&Mt.mode&1?Al&1073741824&&(Mo(Mt),Ht&&Mt.subtreeFlags&6&&(Mt.flags|=8192)):Mo(Mt),null;case 24:return null;case 25:return null}throw Error(it(156,Mt.tag))}var C2=ot.ReactCurrentOwner,Vl=!1;function _s(wt,Mt,Gt,rn){Mt.child=wt===null?M1(Mt,null,Gt,rn):pp(Mt,wt.child,Gt,rn)}function z1(wt,Mt,Gt,rn,ln){Gt=Gt.render;var yn=Mt.ref;return $u(Mt,ln),rn=us(wt,Mt,Gt,rn,yn,ln),Gt=j0(),wt!==null&&!Vl?(Mt.updateQueue=wt.updateQueue,Mt.flags&=-2053,wt.lanes&=~ln,Ws(wt,Mt,ln)):(Us&&Gt&&p0(Mt),Mt.flags|=1,_s(wt,Mt,rn,ln),Mt.child)}function $1(wt,Mt,Gt,rn,ln){if(wt===null){var yn=Gt.type;return typeof yn=="function"&&!R1(yn)&&yn.defaultProps===void 0&&Gt.compare===null&&Gt.defaultProps===void 0?(Mt.tag=15,Mt.type=yn,G1(wt,Mt,yn,rn,ln)):(wt=M0(Gt.type,null,rn,Mt,Mt.mode,ln),wt.ref=Mt.ref,wt.return=Mt,Mt.child=wt)}if(yn=wt.child,!(wt.lanes&ln)){var Xn=yn.memoizedProps;if(Gt=Gt.compare,Gt=Gt!==null?Gt:no,Gt(Xn,rn)&&wt.ref===Mt.ref)return Ws(wt,Mt,ln)}return Mt.flags|=1,wt=Tu(yn,rn),wt.ref=Mt.ref,wt.return=Mt,Mt.child=wt}function G1(wt,Mt,Gt,rn,ln){if(wt!==null&&no(wt.memoizedProps,rn)&&wt.ref===Mt.ref)if(Vl=!1,(wt.lanes&ln)!==0)wt.flags&131072&&(Vl=!0);else return Mt.lanes=wt.lanes,Ws(wt,Mt,ln);return nu(wt,Mt,Gt,rn,ln)}function H1(wt,Mt,Gt){var rn=Mt.pendingProps,ln=rn.children,yn=wt!==null?wt.memoizedState:null;if(rn.mode==="hidden")if(!(Mt.mode&1))Mt.memoizedState={baseLanes:0,cachePool:null},Bo(_p,Al),Al|=Gt;else if(Gt&1073741824)Mt.memoizedState={baseLanes:0,cachePool:null},rn=yn!==null?yn.baseLanes:Gt,Bo(_p,Al),Al|=rn;else return wt=yn!==null?yn.baseLanes|Gt:Gt,Mt.lanes=Mt.childLanes=1073741824,Mt.memoizedState={baseLanes:wt,cachePool:null},Mt.updateQueue=null,Bo(_p,Al),Al|=wt,null;else yn!==null?(rn=yn.baseLanes|Gt,Mt.memoizedState=null):rn=Gt,Bo(_p,Al),Al|=rn;return _s(wt,Mt,ln,Gt),Mt.child}function Y1(wt,Mt){var Gt=Mt.ref;(wt===null&&Gt!==null||wt!==null&&wt.ref!==Gt)&&(Mt.flags|=512,Mt.flags|=2097152)}function nu(wt,Mt,Gt,rn,ln){var yn=Lo(Gt)?gs:ns.current;return yn=bs(Mt,yn),$u(Mt,ln),Gt=us(wt,Mt,Gt,rn,yn,ln),rn=j0(),wt!==null&&!Vl?(Mt.updateQueue=wt.updateQueue,Mt.flags&=-2053,wt.lanes&=~ln,Ws(wt,Mt,ln)):(Us&&rn&&p0(Mt),Mt.flags|=1,_s(wt,Mt,Gt,ln),Mt.child)}function X1(wt,Mt,Gt,rn,ln){if(Lo(Gt)){var yn=!0;ys(Mt)}else yn=!1;if($u(Mt,ln),Mt.stateNode===null)wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),T1(Mt,Gt,rn),lp(Mt,Gt,rn,ln),rn=!0;else if(wt===null){var Xn=Mt.stateNode,pr=Mt.memoizedProps;Xn.props=pr;var Or=Xn.context,io=Gt.contextType;typeof io=="object"&&io!==null?io=Rs(io):(io=Lo(Gt)?gs:ns.current,io=bs(Mt,io));var yo=Gt.getDerivedStateFromProps,Zo=typeof yo=="function"||typeof Xn.getSnapshotBeforeUpdate=="function";Zo||typeof Xn.UNSAFE_componentWillReceiveProps!="function"&&typeof Xn.componentWillReceiveProps!="function"||(pr!==rn||Or!==io)&&I0(Mt,Xn,rn,io),Ds=!1;var wo=Mt.memoizedState;Xn.state=wo,Xl(Mt,rn,Xn,ln),Or=Mt.memoizedState,pr!==rn||wo!==Or||ps.current||Ds?(typeof yo=="function"&&(Mp(Mt,Gt,yo,rn),Or=Mt.memoizedState),(pr=Ds||E1(Mt,Gt,pr,rn,wo,Or,io))?(Zo||typeof Xn.UNSAFE_componentWillMount!="function"&&typeof Xn.componentWillMount!="function"||(typeof Xn.componentWillMount=="function"&&Xn.componentWillMount(),typeof Xn.UNSAFE_componentWillMount=="function"&&Xn.UNSAFE_componentWillMount()),typeof Xn.componentDidMount=="function"&&(Mt.flags|=4194308)):(typeof Xn.componentDidMount=="function"&&(Mt.flags|=4194308),Mt.memoizedProps=rn,Mt.memoizedState=Or),Xn.props=rn,Xn.state=Or,Xn.context=io,rn=pr):(typeof Xn.componentDidMount=="function"&&(Mt.flags|=4194308),rn=!1)}else{Xn=Mt.stateNode,W0(wt,Mt),pr=Mt.memoizedProps,io=Mt.type===Mt.elementType?pr:Co(Mt.type,pr),Xn.props=io,Zo=Mt.pendingProps,wo=Xn.context,Or=Gt.contextType,typeof Or=="object"&&Or!==null?Or=Rs(Or):(Or=Lo(Gt)?gs:ns.current,Or=bs(Mt,Or));var ds=Gt.getDerivedStateFromProps;(yo=typeof ds=="function"||typeof Xn.getSnapshotBeforeUpdate=="function")||typeof Xn.UNSAFE_componentWillReceiveProps!="function"&&typeof Xn.componentWillReceiveProps!="function"||(pr!==Zo||wo!==Or)&&I0(Mt,Xn,rn,Or),Ds=!1,wo=Mt.memoizedState,Xn.state=wo,Xl(Mt,rn,Xn,ln);var bo=Mt.memoizedState;pr!==Zo||wo!==bo||ps.current||Ds?(typeof ds=="function"&&(Mp(Mt,Gt,ds,rn),bo=Mt.memoizedState),(io=Ds||E1(Mt,Gt,io,rn,wo,bo,Or)||!1)?(yo||typeof Xn.UNSAFE_componentWillUpdate!="function"&&typeof Xn.componentWillUpdate!="function"||(typeof Xn.componentWillUpdate=="function"&&Xn.componentWillUpdate(rn,bo,Or),typeof Xn.UNSAFE_componentWillUpdate=="function"&&Xn.UNSAFE_componentWillUpdate(rn,bo,Or)),typeof Xn.componentDidUpdate=="function"&&(Mt.flags|=4),typeof Xn.getSnapshotBeforeUpdate=="function"&&(Mt.flags|=1024)):(typeof Xn.componentDidUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=4),typeof Xn.getSnapshotBeforeUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=1024),Mt.memoizedProps=rn,Mt.memoizedState=bo),Xn.props=rn,Xn.state=bo,Xn.context=Or,rn=io):(typeof Xn.componentDidUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=4),typeof Xn.getSnapshotBeforeUpdate!="function"||pr===wt.memoizedProps&&wo===wt.memoizedState||(Mt.flags|=1024),rn=!1)}return K0(wt,Mt,Gt,rn,yn,ln)}function K0(wt,Mt,Gt,rn,ln,yn){Y1(wt,Mt);var Xn=(Mt.flags&128)!==0;if(!rn&&!Xn)return ln&&Ns(Mt,Gt,!1),Ws(wt,Mt,yn);rn=Mt.stateNode,C2.current=Mt;var pr=Xn&&typeof Gt.getDerivedStateFromError!="function"?null:rn.render();return Mt.flags|=1,wt!==null&&Xn?(Mt.child=pp(Mt,wt.child,null,yn),Mt.child=pp(Mt,null,pr,yn)):_s(wt,Mt,pr,yn),Mt.memoizedState=rn.state,ln&&Ns(Mt,Gt,!0),Mt.child}function K1(wt){var Mt=wt.stateNode;Mt.pendingContext?Ps(wt,Mt.pendingContext,Mt.pendingContext!==Mt.context):Mt.context&&Ps(wt,Mt.context,!1),Z0(wt,Mt.containerInfo)}function q1(wt,Mt,Gt,rn,ln){return dp(),Dp(ln),Mt.flags|=256,_s(wt,Mt,Gt,rn),Mt.child}var F0={dehydrated:null,treeContext:null,retryLane:0};function Il(wt){return{baseLanes:wt,cachePool:null}}function _g(wt,Mt,Gt){var rn=Mt.pendingProps,ln=dr.current,yn=!1,Xn=(Mt.flags&128)!==0,pr;if((pr=Xn)||(pr=wt!==null&&wt.memoizedState===null?!1:(ln&2)!==0),pr?(yn=!0,Mt.flags&=-129):(wt===null||wt.memoizedState!==null)&&(ln|=1),Bo(dr,ln&1),wt===null)return P0(Mt),wt=Mt.memoizedState,wt!==null&&(wt=wt.dehydrated,wt!==null)?(Mt.mode&1?er(wt)?Mt.lanes=8:Mt.lanes=1073741824:Mt.lanes=1,null):(ln=rn.children,wt=rn.fallback,yn?(rn=Mt.mode,yn=Mt.child,ln={mode:"hidden",children:ln},!(rn&1)&&yn!==null?(yn.childLanes=0,yn.pendingProps=ln):yn=i0(ln,rn,0,null),wt=ju(wt,rn,Gt,null),yn.return=Mt,wt.return=Mt,yn.sibling=wt,Mt.child=yn,Mt.child.memoizedState=Il(Gt),Mt.memoizedState=F0,wt):q0(Mt,ln));if(ln=wt.memoizedState,ln!==null){if(pr=ln.dehydrated,pr!==null){if(Xn)return Mt.flags&256?(Mt.flags&=-257,y0(wt,Mt,Gt,Error(it(422)))):Mt.memoizedState!==null?(Mt.child=wt.child,Mt.flags|=128,null):(yn=rn.fallback,ln=Mt.mode,rn=i0({mode:"visible",children:rn.children},ln,0,null),yn=ju(yn,ln,Gt,null),yn.flags|=2,rn.return=Mt,yn.return=Mt,rn.sibling=yn,Mt.child=rn,Mt.mode&1&&pp(Mt,wt.child,null,Gt),Mt.child.memoizedState=Il(Gt),Mt.memoizedState=F0,yn);if(!(Mt.mode&1))Mt=y0(wt,Mt,Gt,null);else if(er(pr))Mt=y0(wt,Mt,Gt,Error(it(419)));else if(rn=(Gt&wt.childLanes)!==0,Vl||rn){if(rn=Cs,rn!==null){switch(Gt&-Gt){case 4:yn=2;break;case 16:yn=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:yn=32;break;case 536870912:yn=268435456;break;default:yn=0}rn=yn&(rn.suspendedLanes|Gt)?0:yn,rn!==0&&rn!==ln.retryLane&&(ln.retryLane=rn,Ll(wt,rn,-1))}C0(),Mt=y0(wt,Mt,Gt,Error(it(421)))}else Gn(pr)?(Mt.flags|=128,Mt.child=wt.child,Mt=Zu.bind(null,wt),cr(pr,Mt),Mt=null):(Gt=ln.treeContext,on&&(Hs=nr(pr),Ql=Mt,Us=!0,eu=null,up=!1,Gt!==null&&(El[Tl++]=Bu,El[Tl++]=_c,El[Tl++]=xu,Bu=Gt.id,_c=Gt.overflow,xu=Mt)),Mt=q0(Mt,Mt.pendingProps.children),Mt.flags|=4096);return Mt}return yn?(rn=t2(wt,Mt,rn.children,rn.fallback,Gt),yn=Mt.child,ln=wt.child.memoizedState,yn.memoizedState=ln===null?Il(Gt):{baseLanes:ln.baseLanes|Gt,cachePool:null},yn.childLanes=wt.childLanes&~Gt,Mt.memoizedState=F0,rn):(Gt=e2(wt,Mt,rn.children,Gt),Mt.memoizedState=null,Gt)}return yn?(rn=t2(wt,Mt,rn.children,rn.fallback,Gt),yn=Mt.child,ln=wt.child.memoizedState,yn.memoizedState=ln===null?Il(Gt):{baseLanes:ln.baseLanes|Gt,cachePool:null},yn.childLanes=wt.childLanes&~Gt,Mt.memoizedState=F0,rn):(Gt=e2(wt,Mt,rn.children,Gt),Mt.memoizedState=null,Gt)}function q0(wt,Mt){return Mt=i0({mode:"visible",children:Mt},wt.mode,0,null),Mt.return=wt,wt.child=Mt}function e2(wt,Mt,Gt,rn){var ln=wt.child;return wt=ln.sibling,Gt=Tu(ln,{mode:"visible",children:Gt}),!(Mt.mode&1)&&(Gt.lanes=rn),Gt.return=Mt,Gt.sibling=null,wt!==null&&(rn=Mt.deletions,rn===null?(Mt.deletions=[wt],Mt.flags|=16):rn.push(wt)),Mt.child=Gt}function t2(wt,Mt,Gt,rn,ln){var yn=Mt.mode;wt=wt.child;var Xn=wt.sibling,pr={mode:"hidden",children:Gt};return!(yn&1)&&Mt.child!==wt?(Gt=Mt.child,Gt.childLanes=0,Gt.pendingProps=pr,Mt.deletions=null):(Gt=Tu(wt,pr),Gt.subtreeFlags=wt.subtreeFlags&14680064),Xn!==null?rn=Tu(Xn,rn):(rn=ju(rn,yn,ln,null),rn.flags|=2),rn.return=Mt,Gt.return=Mt,Gt.sibling=rn,Mt.child=Gt,rn}function y0(wt,Mt,Gt,rn){return rn!==null&&Dp(rn),pp(Mt,wt.child,null,Gt),wt=q0(Mt,Mt.pendingProps.children),wt.flags|=2,Mt.memoizedState=null,wt}function ku(wt,Mt,Gt){wt.lanes|=Mt;var rn=wt.alternate;rn!==null&&(rn.lanes|=Mt),u0(wt.return,Mt,Gt)}function e1(wt,Mt,Gt,rn,ln){var yn=wt.memoizedState;yn===null?wt.memoizedState={isBackwards:Mt,rendering:null,renderingStartTime:0,last:rn,tail:Gt,tailMode:ln}:(yn.isBackwards=Mt,yn.rendering=null,yn.renderingStartTime=0,yn.last=rn,yn.tail=Gt,yn.tailMode=ln)}function n2(wt,Mt,Gt){var rn=Mt.pendingProps,ln=rn.revealOrder,yn=rn.tail;if(_s(wt,Mt,rn.children,Gt),rn=dr.current,rn&2)rn=rn&1|2,Mt.flags|=128;else{if(wt!==null&&wt.flags&128)e:for(wt=Mt.child;wt!==null;){if(wt.tag===13)wt.memoizedState!==null&&ku(wt,Gt,Mt);else if(wt.tag===19)ku(wt,Gt,Mt);else if(wt.child!==null){wt.child.return=wt,wt=wt.child;continue}if(wt===Mt)break e;for(;wt.sibling===null;){if(wt.return===null||wt.return===Mt)break e;wt=wt.return}wt.sibling.return=wt.return,wt=wt.sibling}rn&=1}if(Bo(dr,rn),!(Mt.mode&1))Mt.memoizedState=null;else switch(ln){case"forwards":for(Gt=Mt.child,ln=null;Gt!==null;)wt=Gt.alternate,wt!==null&&Lr(wt)===null&&(ln=Gt),Gt=Gt.sibling;Gt=ln,Gt===null?(ln=Mt.child,Mt.child=null):(ln=Gt.sibling,Gt.sibling=null),e1(Mt,!1,ln,Gt,yn);break;case"backwards":for(Gt=null,ln=Mt.child,Mt.child=null;ln!==null;){if(wt=ln.alternate,wt!==null&&Lr(wt)===null){Mt.child=ln;break}wt=ln.sibling,ln.sibling=Gt,Gt=ln,ln=wt}e1(Mt,!0,Gt,null,yn);break;case"together":e1(Mt,!1,null,null,void 0);break;default:Mt.memoizedState=null}return Mt.child}function Ws(wt,Mt,Gt){if(wt!==null&&(Mt.dependencies=wt.dependencies),Tp|=Mt.lanes,!(Gt&Mt.childLanes))return null;if(wt!==null&&Mt.child!==wt.child)throw Error(it(153));if(Mt.child!==null){for(wt=Mt.child,Gt=Tu(wt,wt.pendingProps),Mt.child=Gt,Gt.return=Mt;wt.sibling!==null;)wt=wt.sibling,Gt=Gt.sibling=Tu(wt,wt.pendingProps),Gt.return=Mt;Gt.sibling=null}return Mt.child}function x2(wt,Mt,Gt){switch(Mt.tag){case 3:K1(Mt),dp();break;case 5:N1(Mt);break;case 1:Lo(Mt.type)&&ys(Mt);break;case 4:Z0(Mt,Mt.stateNode.containerInfo);break;case 10:Ks(Mt,Mt.type._context,Mt.memoizedProps.value);break;case 13:var rn=Mt.memoizedState;if(rn!==null)return rn.dehydrated!==null?(Bo(dr,dr.current&1),Mt.flags|=128,null):Gt&Mt.child.childLanes?_g(wt,Mt,Gt):(Bo(dr,dr.current&1),wt=Ws(wt,Mt,Gt),wt!==null?wt.sibling:null);Bo(dr,dr.current&1);break;case 19:if(rn=(Gt&Mt.childLanes)!==0,wt.flags&128){if(rn)return n2(wt,Mt,Gt);Mt.flags|=128}var ln=Mt.memoizedState;if(ln!==null&&(ln.rendering=null,ln.tail=null,ln.lastEffect=null),Bo(dr,dr.current),rn)break;return null;case 22:case 23:return Mt.lanes=0,H1(wt,Mt,Gt)}return Ws(wt,Mt,Gt)}function V2(wt,Mt){switch(Bl(Mt),Mt.tag){case 1:return Lo(Mt.type)&&Qs(),wt=Mt.flags,wt&65536?(Mt.flags=wt&-65537|128,Mt):null;case 3:return mp(),so(ps),so(ns),go(),wt=Mt.flags,wt&65536&&!(wt&128)?(Mt.flags=wt&-65537|128,Mt):null;case 5:return Vu(Mt),null;case 13:if(so(dr),wt=Mt.memoizedState,wt!==null&&wt.dehydrated!==null){if(Mt.alternate===null)throw Error(it(340));dp()}return wt=Mt.flags,wt&65536?(Mt.flags=wt&-65537|128,Mt):null;case 19:return so(dr),null;case 4:return mp(),null;case 10:return c0(Mt.type._context),null;case 22:case 23:return f1(),null;case 24:return null;default:return null}}var R0=!1,qu=!1,M2=typeof WeakSet=="function"?WeakSet:Set,uo=null;function Yp(wt,Mt){var Gt=wt.ref;if(Gt!==null)if(typeof Gt=="function")try{Gt(null)}catch(rn){Ul(wt,Mt,rn)}else Gt.current=null}function t1(wt,Mt,Gt){try{Gt()}catch(rn){Ul(wt,Mt,rn)}}var r2=!1;function n1(wt,Mt){for(Dt(wt.containerInfo),uo=Mt;uo!==null;)if(wt=uo,Mt=wt.child,(wt.subtreeFlags&1028)!==0&&Mt!==null)Mt.return=wt,uo=Mt;else for(;uo!==null;){wt=uo;try{var Gt=wt.alternate;if(wt.flags&1024)switch(wt.tag){case 0:case 11:case 15:break;case 1:if(Gt!==null){var rn=Gt.memoizedProps,ln=Gt.memoizedState,yn=wt.stateNode,Xn=yn.getSnapshotBeforeUpdate(wt.elementType===wt.type?rn:Co(wt.type,rn),ln);yn.__reactInternalSnapshotBeforeUpdate=Xn}break;case 3:Ht&&Jn(wt.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(it(163))}}catch(pr){Ul(wt,wt.return,pr)}if(Mt=wt.sibling,Mt!==null){Mt.return=wt.return,uo=Mt;break}uo=wt.return}return Gt=r2,r2=!1,Gt}function ru(wt,Mt,Gt){var rn=Mt.updateQueue;if(rn=rn!==null?rn.lastEffect:null,rn!==null){var ln=rn=rn.next;do{if((ln.tag&wt)===wt){var yn=ln.destroy;ln.destroy=void 0,yn!==void 0&&t1(Mt,Gt,yn)}ln=ln.next}while(ln!==rn)}}function Du(wt,Mt){if(Mt=Mt.updateQueue,Mt=Mt!==null?Mt.lastEffect:null,Mt!==null){var Gt=Mt=Mt.next;do{if((Gt.tag&wt)===wt){var rn=Gt.create;Gt.destroy=rn()}Gt=Gt.next}while(Gt!==Mt)}}function r1(wt){var Mt=wt.ref;if(Mt!==null){var Gt=wt.stateNode;switch(wt.tag){case 5:wt=Nt(Gt);break;default:wt=Gt}typeof Mt=="function"?Mt(wt):Mt.current=wt}}function i1(wt,Mt,Gt){if(co&&typeof co.onCommitFiberUnmount=="function")try{co.onCommitFiberUnmount(Hr,Mt)}catch{}switch(Mt.tag){case 0:case 11:case 14:case 15:if(wt=Mt.updateQueue,wt!==null&&(wt=wt.lastEffect,wt!==null)){var rn=wt=wt.next;do{var ln=rn,yn=ln.destroy;ln=ln.tag,yn!==void 0&&(ln&2||ln&4)&&t1(Mt,Gt,yn),rn=rn.next}while(rn!==wt)}break;case 1:if(Yp(Mt,Gt),wt=Mt.stateNode,typeof wt.componentWillUnmount=="function")try{wt.props=Mt.memoizedProps,wt.state=Mt.memoizedState,wt.componentWillUnmount()}catch(Xn){Ul(Mt,Gt,Xn)}break;case 5:Yp(Mt,Gt);break;case 4:Ht?s1(wt,Mt,Gt):qt&&qt&&(Mt=Mt.stateNode.containerInfo,Gt=Fr(Mt),tr(Mt,Gt))}}function i2(wt,Mt,Gt){for(var rn=Mt;;)if(i1(wt,rn,Gt),rn.child===null||Ht&&rn.tag===4){if(rn===Mt)break;for(;rn.sibling===null;){if(rn.return===null||rn.return===Mt)return;rn=rn.return}rn.sibling.return=rn.return,rn=rn.sibling}else rn.child.return=rn,rn=rn.child}function mu(wt){var Mt=wt.alternate;Mt!==null&&(wt.alternate=null,mu(Mt)),wt.child=null,wt.deletions=null,wt.sibling=null,wt.tag===5&&(Mt=wt.stateNode,Mt!==null&&Fn(Mt)),wt.stateNode=null,wt.return=null,wt.dependencies=null,wt.memoizedProps=null,wt.memoizedState=null,wt.pendingProps=null,wt.stateNode=null,wt.updateQueue=null}function S0(wt){return wt.tag===5||wt.tag===3||wt.tag===4}function Ou(wt){e:for(;;){for(;wt.sibling===null;){if(wt.return===null||S0(wt.return))return null;wt=wt.return}for(wt.sibling.return=wt.return,wt=wt.sibling;wt.tag!==5&&wt.tag!==6&&wt.tag!==18;){if(wt.flags&2||wt.child===null||wt.tag===4)continue e;wt.child.return=wt,wt=wt.child}if(!(wt.flags&2))return wt.stateNode}}function Ml(wt){if(Ht){e:{for(var Mt=wt.return;Mt!==null;){if(S0(Mt))break e;Mt=Mt.return}throw Error(it(160))}var Gt=Mt;switch(Gt.tag){case 5:Mt=Gt.stateNode,Gt.flags&32&&(Fo(Mt),Gt.flags&=-33),Gt=Ou(wt),B0(wt,Gt,Mt);break;case 3:case 4:Mt=Gt.stateNode.containerInfo,Gt=Ou(wt),o1(wt,Gt,Mt);break;default:throw Error(it(161))}}}function o1(wt,Mt,Gt){var rn=wt.tag;if(rn===5||rn===6)wt=wt.stateNode,Mt?Yr(Gt,wt,Mt):Ir(Gt,wt);else if(rn!==4&&(wt=wt.child,wt!==null))for(o1(wt,Mt,Gt),wt=wt.sibling;wt!==null;)o1(wt,Mt,Gt),wt=wt.sibling}function B0(wt,Mt,Gt){var rn=wt.tag;if(rn===5||rn===6)wt=wt.stateNode,Mt?eo(Gt,wt,Mt):_r(Gt,wt);else if(rn!==4&&(wt=wt.child,wt!==null))for(B0(wt,Mt,Gt),wt=wt.sibling;wt!==null;)B0(wt,Mt,Gt),wt=wt.sibling}function s1(wt,Mt,Gt){for(var rn=Mt,ln=!1,yn,Xn;;){if(!ln){ln=rn.return;e:for(;;){if(ln===null)throw Error(it(160));switch(yn=ln.stateNode,ln.tag){case 5:Xn=!1;break e;case 3:yn=yn.containerInfo,Xn=!0;break e;case 4:yn=yn.containerInfo,Xn=!0;break e}ln=ln.return}ln=!0}if(rn.tag===5||rn.tag===6)i2(wt,rn,Gt),Xn?ro(yn,rn.stateNode):_o(yn,rn.stateNode);else if(rn.tag===18)Xn?zr(yn,rn.stateNode):fr(yn,rn.stateNode);else if(rn.tag===4){if(rn.child!==null){yn=rn.stateNode.containerInfo,Xn=!0,rn.child.return=rn,rn=rn.child;continue}}else if(i1(wt,rn,Gt),rn.child!==null){rn.child.return=rn,rn=rn.child;continue}if(rn===Mt)break;for(;rn.sibling===null;){if(rn.return===null||rn.return===Mt)return;rn=rn.return,rn.tag===4&&(ln=!1)}rn.sibling.return=rn.return,rn=rn.sibling}}function _d(wt,Mt){if(Ht){switch(Mt.tag){case 0:case 11:case 14:case 15:ru(3,Mt,Mt.return),Du(3,Mt),ru(5,Mt,Mt.return);return;case 1:return;case 5:var Gt=Mt.stateNode;if(Gt!=null){var rn=Mt.memoizedProps;wt=wt!==null?wt.memoizedProps:rn;var ln=Mt.type,yn=Mt.updateQueue;Mt.updateQueue=null,yn!==null&&Uo(Gt,yn,ln,wt,rn,Mt)}return;case 6:if(Mt.stateNode===null)throw Error(it(162));Gt=Mt.memoizedProps,Jr(Mt.stateNode,wt!==null?wt.memoizedProps:Gt,Gt);return;case 3:on&&wt!==null&&wt.memoizedState.isDehydrated&&Rr(Mt.stateNode.containerInfo);return;case 12:return;case 13:iu(Mt);return;case 19:iu(Mt);return;case 17:return}throw Error(it(163))}switch(Mt.tag){case 0:case 11:case 14:case 15:ru(3,Mt,Mt.return),Du(3,Mt),ru(5,Mt,Mt.return);return;case 12:return;case 13:iu(Mt);return;case 19:iu(Mt);return;case 3:on&&wt!==null&&wt.memoizedState.isDehydrated&&Rr(Mt.stateNode.containerInfo);break;case 22:case 23:return}e:if(qt){switch(Mt.tag){case 1:case 5:case 6:break e;case 3:case 4:Mt=Mt.stateNode,tr(Mt.containerInfo,Mt.pendingChildren);break e}throw Error(it(163))}}function iu(wt){var Mt=wt.updateQueue;if(Mt!==null){wt.updateQueue=null;var Gt=wt.stateNode;Gt===null&&(Gt=wt.stateNode=new M2),Mt.forEach(function(rn){var ln=p2.bind(null,wt,rn);Gt.has(rn)||(Gt.add(rn),rn.then(ln,ln))})}}function o2(wt,Mt){for(uo=Mt;uo!==null;){Mt=uo;var Gt=Mt.deletions;if(Gt!==null)for(var rn=0;rn";case Kp:return":has("+(qp(wt)||"")+")";case Nl:return'[role="'+wt.value+'"]';case _h:return'"'+wt.value+'"';case bp:return'[data-testname="'+wt.value+'"]';default:throw Error(it(365))}}function a2(wt,Mt){var Gt=[];wt=[wt,0];for(var rn=0;rnln&&(ln=Xn),rn&=~yn}if(rn=ln,rn=ir()-rn,rn=(120>rn?120:480>rn?480:1080>rn?1080:1920>rn?1920:3e3>rn?3e3:4320>rn?4320:1960*A2(rn/1960))-rn,10wt?16:wt,Eu===null)var rn=!1;else{if(wt=Eu,Eu=null,t0=0,Ho&6)throw Error(it(331));var ln=Ho;for(Ho|=4,uo=wt.current;uo!==null;){var yn=uo,Xn=yn.child;if(uo.flags&16){var pr=yn.deletions;if(pr!==null){for(var Or=0;Orir()-d1?Fu(wt,0):u1|=Gt),Vo(wt,Mt)}function d2(wt,Mt){Mt===0&&(wt.mode&1?(Mt=js,js<<=1,!(js&130023424)&&(js=4194304)):Mt=1);var Gt=xa();wt=xp(wt,Mt),wt!==null&&(Mn(wt,Mt,Gt),Vo(wt,Gt))}function Zu(wt){var Mt=wt.memoizedState,Gt=0;Mt!==null&&(Gt=Mt.retryLane),d2(wt,Gt)}function p2(wt,Mt){var Gt=0;switch(wt.tag){case 13:var rn=wt.stateNode,ln=wt.memoizedState;ln!==null&&(Gt=ln.retryLane);break;case 19:rn=wt.stateNode;break;default:throw Error(it(314))}rn!==null&&rn.delete(Mt),d2(wt,Gt)}var y1;y1=function(wt,Mt,Gt){if(wt!==null)if(wt.memoizedProps!==Mt.pendingProps||ps.current)Vl=!0;else{if(!(wt.lanes&Gt)&&!(Mt.flags&128))return Vl=!1,x2(wt,Mt,Gt);Vl=!!(wt.flags&131072)}else Vl=!1,Us&&Mt.flags&1048576&&w1(Mt,Ap,Mt.index);switch(Mt.lanes=0,Mt.tag){case 2:var rn=Mt.type;wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),wt=Mt.pendingProps;var ln=bs(Mt,ns.current);$u(Mt,Gt),ln=us(null,Mt,rn,wt,ln,Gt);var yn=j0();return Mt.flags|=1,typeof ln=="object"&&ln!==null&&typeof ln.render=="function"&&ln.$$typeof===void 0?(Mt.tag=1,Mt.memoizedState=null,Mt.updateQueue=null,Lo(rn)?(yn=!0,ys(Mt)):yn=!1,Mt.memoizedState=ln.state!==null&&ln.state!==void 0?ln.state:null,J0(Mt),ln.updater=h0,Mt.stateNode=ln,ln._reactInternals=Mt,lp(Mt,rn,wt,Gt),Mt=K0(null,Mt,rn,!0,yn,Gt)):(Mt.tag=0,Us&&yn&&p0(Mt),_s(null,Mt,ln,Gt),Mt=Mt.child),Mt;case 16:rn=Mt.elementType;e:{switch(wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),wt=Mt.pendingProps,ln=rn._init,rn=ln(rn._payload),Mt.type=rn,ln=Mt.tag=f2(rn),wt=Co(rn,wt),ln){case 0:Mt=nu(null,Mt,rn,wt,Gt);break e;case 1:Mt=X1(null,Mt,rn,wt,Gt);break e;case 11:Mt=z1(null,Mt,rn,wt,Gt);break e;case 14:Mt=$1(null,Mt,rn,Co(rn.type,wt),Gt);break e}throw Error(it(306,rn,""))}return Mt;case 0:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),nu(wt,Mt,rn,ln,Gt);case 1:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),X1(wt,Mt,rn,ln,Gt);case 3:e:{if(K1(Mt),wt===null)throw Error(it(387));rn=Mt.pendingProps,yn=Mt.memoizedState,ln=yn.element,W0(wt,Mt),Xl(Mt,rn,null,Gt);var Xn=Mt.memoizedState;if(rn=Xn.element,on&&yn.isDehydrated)if(yn={element:rn,isDehydrated:!1,cache:Xn.cache,transitions:Xn.transitions},Mt.updateQueue.baseState=yn,Mt.memoizedState=yn,Mt.flags&256){ln=Error(it(423)),Mt=q1(wt,Mt,rn,Gt,ln);break e}else if(rn!==ln){ln=Error(it(424)),Mt=q1(wt,Mt,rn,Gt,ln);break e}else for(on&&(Hs=ur(Mt.stateNode.containerInfo),Ql=Mt,Us=!0,eu=null,up=!1),Gt=M1(Mt,null,rn,Gt),Mt.child=Gt;Gt;)Gt.flags=Gt.flags&-3|4096,Gt=Gt.sibling;else{if(dp(),rn===ln){Mt=Ws(wt,Mt,Gt);break e}_s(wt,Mt,rn,Gt)}Mt=Mt.child}return Mt;case 5:return N1(Mt),wt===null&&P0(Mt),rn=Mt.type,ln=Mt.pendingProps,yn=wt!==null?wt.memoizedProps:null,Xn=ln.children,nn(rn,ln)?Xn=null:yn!==null&&nn(rn,yn)&&(Mt.flags|=32),Y1(wt,Mt),_s(wt,Mt,Xn,Gt),Mt.child;case 6:return wt===null&&P0(Mt),null;case 13:return _g(wt,Mt,Gt);case 4:return Z0(Mt,Mt.stateNode.containerInfo),rn=Mt.pendingProps,wt===null?Mt.child=pp(Mt,null,rn,Gt):_s(wt,Mt,rn,Gt),Mt.child;case 11:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),z1(wt,Mt,rn,ln,Gt);case 7:return _s(wt,Mt,Mt.pendingProps,Gt),Mt.child;case 8:return _s(wt,Mt,Mt.pendingProps.children,Gt),Mt.child;case 12:return _s(wt,Mt,Mt.pendingProps.children,Gt),Mt.child;case 10:e:{if(rn=Mt.type._context,ln=Mt.pendingProps,yn=Mt.memoizedProps,Xn=ln.value,Ks(Mt,rn,Xn),yn!==null)if(vn(yn.value,Xn)){if(yn.children===ln.children&&!ps.current){Mt=Ws(wt,Mt,Gt);break e}}else for(yn=Mt.child,yn!==null&&(yn.return=Mt);yn!==null;){var pr=yn.dependencies;if(pr!==null){Xn=yn.child;for(var Or=pr.firstContext;Or!==null;){if(Or.context===rn){if(yn.tag===1){Or=qs(-1,Gt&-Gt),Or.tag=2;var io=yn.updateQueue;if(io!==null){io=io.shared;var yo=io.pending;yo===null?Or.next=Or:(Or.next=yo.next,yo.next=Or),io.pending=Or}}yn.lanes|=Gt,Or=yn.alternate,Or!==null&&(Or.lanes|=Gt),u0(yn.return,Gt,Mt),pr.lanes|=Gt;break}Or=Or.next}}else if(yn.tag===10)Xn=yn.type===Mt.type?null:yn.child;else if(yn.tag===18){if(Xn=yn.return,Xn===null)throw Error(it(341));Xn.lanes|=Gt,pr=Xn.alternate,pr!==null&&(pr.lanes|=Gt),u0(Xn,Gt,Mt),Xn=yn.sibling}else Xn=yn.child;if(Xn!==null)Xn.return=yn;else for(Xn=yn;Xn!==null;){if(Xn===Mt){Xn=null;break}if(yn=Xn.sibling,yn!==null){yn.return=Xn.return,Xn=yn;break}Xn=Xn.return}yn=Xn}_s(wt,Mt,ln.children,Gt),Mt=Mt.child}return Mt;case 9:return ln=Mt.type,rn=Mt.pendingProps.children,$u(Mt,Gt),ln=Rs(ln),rn=rn(ln),Mt.flags|=1,_s(wt,Mt,rn,Gt),Mt.child;case 14:return rn=Mt.type,ln=Co(rn,Mt.pendingProps),ln=Co(rn.type,ln),$1(wt,Mt,rn,ln,Gt);case 15:return G1(wt,Mt,Mt.type,Mt.pendingProps,Gt);case 17:return rn=Mt.type,ln=Mt.pendingProps,ln=Mt.elementType===rn?ln:Co(rn,ln),wt!==null&&(wt.alternate=null,Mt.alternate=null,Mt.flags|=2),Mt.tag=1,Lo(rn)?(wt=!0,ys(Mt)):wt=!1,$u(Mt,Gt),T1(Mt,rn,ln),lp(Mt,rn,ln,Gt),K0(null,Mt,rn,!0,wt,Gt);case 19:return n2(wt,Mt,Gt);case 22:return H1(wt,Mt,Gt)}throw Error(it(156,Mt.tag))};function V0(wt,Mt){return bn(wt,Mt)}function k2(wt,Mt,Gt,rn){this.tag=wt,this.key=Gt,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=Mt,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=rn,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pl(wt,Mt,Gt,rn){return new k2(wt,Mt,Gt,rn)}function R1(wt){return wt=wt.prototype,!(!wt||!wt.isReactComponent)}function f2(wt){if(typeof wt=="function")return R1(wt)?1:0;if(wt!=null){if(wt=wt.$$typeof,wt===pt)return 11;if(wt===yt)return 14}return 2}function Tu(wt,Mt){var Gt=wt.alternate;return Gt===null?(Gt=Pl(wt.tag,Mt,wt.key,wt.mode),Gt.elementType=wt.elementType,Gt.type=wt.type,Gt.stateNode=wt.stateNode,Gt.alternate=wt,wt.alternate=Gt):(Gt.pendingProps=Mt,Gt.type=wt.type,Gt.flags=0,Gt.subtreeFlags=0,Gt.deletions=null),Gt.flags=wt.flags&14680064,Gt.childLanes=wt.childLanes,Gt.lanes=wt.lanes,Gt.child=wt.child,Gt.memoizedProps=wt.memoizedProps,Gt.memoizedState=wt.memoizedState,Gt.updateQueue=wt.updateQueue,Mt=wt.dependencies,Gt.dependencies=Mt===null?null:{lanes:Mt.lanes,firstContext:Mt.firstContext},Gt.sibling=wt.sibling,Gt.index=wt.index,Gt.ref=wt.ref,Gt}function M0(wt,Mt,Gt,rn,ln,yn){var Xn=2;if(rn=wt,typeof wt=="function")R1(wt)&&(Xn=1);else if(typeof wt=="string")Xn=5;else e:switch(wt){case lt:return ju(Gt.children,ln,yn,Mt);case ut:Xn=8,ln|=8;break;case dt:return wt=Pl(12,Gt,Mt,ln|2),wt.elementType=dt,wt.lanes=yn,wt;case ft:return wt=Pl(13,Gt,Mt,ln),wt.elementType=ft,wt.lanes=yn,wt;case gt:return wt=Pl(19,Gt,Mt,ln),wt.elementType=gt,wt.lanes=yn,wt;case Ft:return i0(Gt,ln,yn,Mt);default:if(typeof wt=="object"&&wt!==null)switch(wt.$$typeof){case ht:Xn=10;break e;case ct:Xn=9;break e;case pt:Xn=11;break e;case yt:Xn=14;break e;case Ut:Xn=16,rn=null;break e}throw Error(it(130,wt==null?wt:typeof wt,""))}return Mt=Pl(Xn,Gt,Mt,ln),Mt.elementType=wt,Mt.type=rn,Mt.lanes=yn,Mt}function ju(wt,Mt,Gt,rn){return wt=Pl(7,wt,rn,Mt),wt.lanes=Gt,wt}function i0(wt,Mt,Gt,rn){return wt=Pl(22,wt,rn,Mt),wt.elementType=Ft,wt.lanes=Gt,wt.stateNode={},wt}function Fl(wt,Mt,Gt){return wt=Pl(6,wt,null,Mt),wt.lanes=Gt,wt}function Zl(wt,Mt,Gt){return Mt=Pl(4,wt.children!==null?wt.children:[],wt.key,Mt),Mt.lanes=Gt,Mt.stateNode={containerInfo:wt.containerInfo,pendingChildren:null,implementation:wt.implementation},Mt}function D2(wt,Mt,Gt,rn,ln){this.tag=Mt,this.containerInfo=wt,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=It,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Dn(0),this.expirationTimes=Dn(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Dn(0),this.identifierPrefix=rn,this.onRecoverableError=ln,on&&(this.mutableSourceEagerHydrationData=null)}function g2(wt,Mt,Gt,rn,ln,yn,Xn,pr,Or){return wt=new D2(wt,Mt,Gt,pr,Or),Mt===1?(Mt=1,yn===!0&&(Mt|=8)):Mt=0,yn=Pl(3,null,null,Mt),wt.current=yn,yn.stateNode=wt,yn.memoizedState={element:rn,isDehydrated:Gt,cache:null,transitions:null},J0(yn),wt}function o0(wt){if(!wt)return Io;wt=wt._reactInternals;e:{if(Rt(wt)!==wt||wt.tag!==1)throw Error(it(170));var Mt=wt;do{switch(Mt.tag){case 3:Mt=Mt.stateNode.context;break e;case 1:if(Lo(Mt.type)){Mt=Mt.stateNode.__reactInternalMemoizedMergedChildContext;break e}}Mt=Mt.return}while(Mt!==null);throw Error(it(171))}if(wt.tag===1){var Gt=wt.type;if(Lo(Gt))return No(wt,Gt,Mt)}return Mt}function np(wt){var Mt=wt._reactInternals;if(Mt===void 0)throw typeof wt.render=="function"?Error(it(188)):(wt=Object.keys(wt).join(","),Error(it(268,wt)));return wt=Bt(Mt),wt===null?null:wt.stateNode}function S1(wt,Mt){if(wt=wt.memoizedState,wt!==null&&wt.dehydrated!==null){var Gt=wt.retryLane;wt.retryLane=Gt!==0&&Gt=io&&yn>=Zo&&ln<=yo&&Xn<=wo){wt.splice(Mt,1);break}else if(rn!==io||Gt.width!==Or.width||woXn){if(!(yn!==Zo||Gt.height!==Or.height||yoln)){io>rn&&(Or.width+=io-rn,Or.x=rn),yoyn&&(Or.height+=Zo-yn,Or.y=yn),woGt&&(Gt=Xn)),Xn ")+` No matching component was found for: - `)+wt.join(" > ")}return null},et.getPublicRootInstance=function(wt){if(wt=wt.current,!wt.child)return null;switch(wt.child.tag){case 5:return Nt(wt.child.stateNode);default:return wt.child.stateNode}},et.injectIntoDevTools=function(wt){if(wt={bundleType:wt.bundleType,version:wt.version,rendererPackageName:wt.rendererPackageName,rendererConfig:wt.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ot.ReactCurrentDispatcher,findHostInstanceByFiber:O2,findFiberByHostInstance:wt.findFiberByHostInstance||m2,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")wt=!1;else{var Mt=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(Mt.isDisabled||!Mt.supportsFiber)wt=!0;else{try{Hr=Mt.inject(wt),co=Mt}catch{}wt=!!Mt.checkDCE}}return wt},et.isAlreadyRendering=function(){return!1},et.observeVisibleRects=function(wt,Mt,Gt,rn){if(!gn)throw Error(it(363));wt=l1(wt,Mt);var ln=Qr(wt,Gt,rn).disconnect;return{disconnect:function(){ln()}}},et.registerMutableSourceForHydration=function(wt,Mt){var Gt=Mt._getVersion;Gt=Gt(Mt._source),wt.mutableSourceEagerHydrationData==null?wt.mutableSourceEagerHydrationData=[Mt,Gt]:wt.mutableSourceEagerHydrationData.push(Mt,Gt)},et.runWithPriority=function(wt,Mt){var Gt=Cr;try{return Cr=wt,Mt()}finally{Cr=Gt}},et.shouldError=function(){return null},et.shouldSuspend=function(){return!1},et.updateContainer=function(wt,Mt,Gt,rn){var ln=Mt.current,yn=xa(),Xn=Uu(ln);return Gt=o0(Gt),Mt.context===null?Mt.context=Gt:Mt.pendingContext=Gt,Mt=qs(yn,Xn),Mt.payload={element:wt},rn=rn===void 0?null:rn,rn!==null&&(Mt.callback=rn),Yl(ln,Mt),wt=Ll(ln,Xn,yn),wt!==null&&ap(wt,ln,Xn),Xn},et};reactReconciler.exports=reactReconciler_production_min;var reactReconcilerExports=reactReconciler.exports;const Reconciler=getDefaultExportFromCjs$1(reactReconcilerExports),isPromise=s=>typeof s=="object"&&typeof s.then=="function",globalCache=[];function shallowEqualArrays(s,o,et=(tt,nt)=>tt===nt){if(s===o)return!0;if(!s||!o)return!1;const tt=s.length;if(o.length!==tt)return!1;for(let nt=0;nt0&&(rt.timeout&&clearTimeout(rt.timeout),rt.timeout=setTimeout(rt.remove,tt.lifespan)),rt.response;if(!et)throw rt.promise}const nt={keys:o,equal:tt.equal,remove:()=>{const rt=globalCache.indexOf(nt);rt!==-1&&globalCache.splice(rt,1)},promise:(isPromise(s)?s:s(...o)).then(rt=>{nt.response=rt,tt.lifespan&&tt.lifespan>0&&(nt.timeout=setTimeout(nt.remove,tt.lifespan))}).catch(rt=>nt.error=rt)};if(globalCache.push(nt),!et)throw nt.promise}const suspend=(s,o,et)=>query$4(s,o,!1,et),preload=(s,o,et)=>void query$4(s,o,!0,et),clear=s=>{if(s===void 0||s.length===0)globalCache.splice(0,globalCache.length);else{const o=globalCache.find(et=>shallowEqualArrays(s,et.keys,et.equal));o&&o.remove()}},catalogue={},extend=s=>void Object.assign(catalogue,s);function createRenderer(s,o){function et(lt,{args:ut=[],attach:dt,...ht},ct){let pt=`${lt[0].toUpperCase()}${lt.slice(1)}`,ft;if(lt==="primitive"){if(ht.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const gt=ht.object;ft=prepare$1(gt,{type:lt,root:ct,attach:dt,primitive:!0})}else{const gt=catalogue[pt];if(!gt)throw new Error(`R3F: ${pt} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(ut))throw new Error("R3F: The args prop must be an array!");ft=prepare$1(new gt(...ut),{type:lt,root:ct,attach:dt,memoizedProps:{args:ut}})}return ft.__r3f.attach===void 0&&(ft instanceof BufferGeometry?ft.__r3f.attach="geometry":ft instanceof Material&&(ft.__r3f.attach="material")),pt!=="inject"&&applyProps$1(ft,ht),ft}function tt(lt,ut){let dt=!1;if(ut){var ht,ct;(ht=ut.__r3f)!=null&&ht.attach?attach(lt,ut,ut.__r3f.attach):ut.isObject3D&<.isObject3D&&(lt.add(ut),dt=!0),dt||(ct=lt.__r3f)==null||ct.objects.push(ut),ut.__r3f||prepare$1(ut,{}),ut.__r3f.parent=lt,updateInstance(ut),invalidateInstance(ut)}}function nt(lt,ut,dt){let ht=!1;if(ut){var ct,pt;if((ct=ut.__r3f)!=null&&ct.attach)attach(lt,ut,ut.__r3f.attach);else if(ut.isObject3D&<.isObject3D){ut.parent=lt,ut.dispatchEvent({type:"added"}),lt.dispatchEvent({type:"childadded",child:ut});const ft=lt.children.filter(yt=>yt!==ut),gt=ft.indexOf(dt);lt.children=[...ft.slice(0,gt),ut,...ft.slice(gt)],ht=!0}ht||(pt=lt.__r3f)==null||pt.objects.push(ut),ut.__r3f||prepare$1(ut,{}),ut.__r3f.parent=lt,updateInstance(ut),invalidateInstance(ut)}}function rt(lt,ut,dt=!1){lt&&[...lt].forEach(ht=>it(ut,ht,dt))}function it(lt,ut,dt){if(ut){var ht,ct,pt;if(ut.__r3f&&(ut.__r3f.parent=null),(ht=lt.__r3f)!=null&&ht.objects&&(lt.__r3f.objects=lt.__r3f.objects.filter(Ft=>Ft!==ut)),(ct=ut.__r3f)!=null&&ct.attach)detach(lt,ut,ut.__r3f.attach);else if(ut.isObject3D&<.isObject3D){var ft;lt.remove(ut),(ft=ut.__r3f)!=null&&ft.root&&removeInteractivity(findInitialRoot(ut),ut)}const yt=(pt=ut.__r3f)==null?void 0:pt.primitive,Ut=!yt&&(dt===void 0?ut.dispose!==null:dt);if(!yt){var gt;rt((gt=ut.__r3f)==null?void 0:gt.objects,ut,Ut),rt(ut.children,ut,Ut)}if(delete ut.__r3f,Ut&&ut.dispose&&ut.type!=="Scene"){const Ft=()=>{try{ut.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?schedulerExports.unstable_scheduleCallback(schedulerExports.unstable_IdlePriority,Ft):Ft()}invalidateInstance(lt)}}function ot(lt,ut,dt,ht){var ct;const pt=(ct=lt.__r3f)==null?void 0:ct.parent;if(!pt)return;const ft=et(ut,dt,lt.__r3f.root);if(lt.children){for(const gt of lt.children)gt.__r3f&&tt(ft,gt);lt.children=lt.children.filter(gt=>!gt.__r3f)}lt.__r3f.objects.forEach(gt=>tt(ft,gt)),lt.__r3f.objects=[],lt.__r3f.autoRemovedBeforeAppend||it(pt,lt),ft.parent&&(ft.__r3f.autoRemovedBeforeAppend=!0),tt(pt,ft),ft.raycast&&ft.__r3f.eventCount&&findInitialRoot(ft).getState().internal.interaction.push(ft),[ht,ht.alternate].forEach(gt=>{gt!==null&&(gt.stateNode=ft,gt.ref&&(typeof gt.ref=="function"?gt.ref(ft):gt.ref.current=ft))})}const st=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:Reconciler({createInstance:et,removeChild:it,appendChild:tt,appendInitialChild:tt,insertBefore:nt,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(lt,ut)=>{if(!ut)return;const dt=lt.getState().scene;dt.__r3f&&(dt.__r3f.root=lt,tt(dt,ut))},removeChildFromContainer:(lt,ut)=>{ut&&it(lt.getState().scene,ut)},insertInContainerBefore:(lt,ut,dt)=>{if(!ut||!dt)return;const ht=lt.getState().scene;ht.__r3f&&nt(ht,ut,dt)},getRootHostContext:()=>null,getChildHostContext:lt=>lt,finalizeInitialChildren(lt){var ut;return!!((ut=lt?.__r3f)!=null?ut:{}).handlers},prepareUpdate(lt,ut,dt,ht){var ct;if(((ct=lt?.__r3f)!=null?ct:{}).primitive&&ht.object&&ht.object!==lt)return[!0];{const{args:ft=[],children:gt,...yt}=ht,{args:Ut=[],children:Ft,...mt}=dt;if(!Array.isArray(ft))throw new Error("R3F: the args prop must be an array!");if(ft.some((At,Lt)=>At!==Ut[Lt]))return[!0];const vt=diffProps(lt,yt,mt,!0);return vt.changes.length?[!1,vt]:null}},commitUpdate(lt,[ut,dt],ht,ct,pt,ft){ut?ot(lt,ht,pt,ft):applyProps$1(lt,dt)},commitMount(lt,ut,dt,ht){var ct;const pt=(ct=lt.__r3f)!=null?ct:{};lt.raycast&&pt.handlers&&pt.eventCount&&findInitialRoot(lt).getState().internal.interaction.push(lt)},getPublicInstance:lt=>lt,prepareForCommit:()=>null,preparePortalMount:lt=>prepare$1(lt.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(lt){var ut;const{attach:dt,parent:ht}=(ut=lt.__r3f)!=null?ut:{};dt&&ht&&detach(ht,lt,dt),lt.isObject3D&&(lt.visible=!1),invalidateInstance(lt)},unhideInstance(lt,ut){var dt;const{attach:ht,parent:ct}=(dt=lt.__r3f)!=null?dt:{};ht&&ct&&attach(ct,lt,ht),(lt.isObject3D&&ut.visible==null||ut.visible)&&(lt.visible=!0),invalidateInstance(lt)},createTextInstance:st,hideTextInstance:st,unhideTextInstance:st,getCurrentEventPriority:()=>o?o():constantsExports.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&is.fun(performance.now)?performance.now:is.fun(Date.now)?Date.now:()=>0,scheduleTimeout:is.fun(setTimeout)?setTimeout:void 0,cancelTimeout:is.fun(clearTimeout)?clearTimeout:void 0}),applyProps:applyProps$1}}var _window$document,_window$navigator;const hasColorSpace=s=>"colorSpace"in s||"outputColorSpace"in s,getColorManagement=()=>{var s;return(s=catalogue.ColorManagement)!=null?s:null},isOrthographicCamera$1=s=>s&&s.isOrthographicCamera,isRef=s=>s&&s.hasOwnProperty("current"),useIsomorphicLayoutEffect$1=typeof window<"u"&&((_window$document=window.document)!=null&&_window$document.createElement||((_window$navigator=window.navigator)==null?void 0:_window$navigator.product)==="ReactNative")?reactExports.useLayoutEffect:reactExports.useEffect;function useMutableCallback(s){const o=reactExports.useRef(s);return useIsomorphicLayoutEffect$1(()=>void(o.current=s),[s]),o}function Block({set:s}){return useIsomorphicLayoutEffect$1(()=>(s(new Promise(()=>null)),()=>s(!1)),[s]),null}class ErrorBoundary extends reactExports.Component{constructor(...o){super(...o),this.state={error:!1}}componentDidCatch(o){this.props.set(o)}render(){return this.state.error?null:this.props.children}}ErrorBoundary.getDerivedStateFromError=()=>({error:!0});const DEFAULT="__default",DEFAULTS=new Map,isDiffSet=s=>s&&!!s.memoized&&!!s.changes;function calculateDpr(s){var o;const et=typeof window<"u"?(o=window.devicePixelRatio)!=null?o:2:1;return Array.isArray(s)?Math.min(Math.max(s[0],et),s[1]):s}const getRootState=s=>{var o;return(o=s.__r3f)==null?void 0:o.root.getState()};function findInitialRoot(s){let o=s.__r3f.root;for(;o.getState().previousRoot;)o=o.getState().previousRoot;return o}const is={obj:s=>s===Object(s)&&!is.arr(s)&&typeof s!="function",fun:s=>typeof s=="function",str:s=>typeof s=="string",num:s=>typeof s=="number",boo:s=>typeof s=="boolean",und:s=>s===void 0,arr:s=>Array.isArray(s),equ(s,o,{arrays:et="shallow",objects:tt="reference",strict:nt=!0}={}){if(typeof s!=typeof o||!!s!=!!o)return!1;if(is.str(s)||is.num(s)||is.boo(s))return s===o;const rt=is.obj(s);if(rt&&tt==="reference")return s===o;const it=is.arr(s);if(it&&et==="reference")return s===o;if((it||rt)&&s===o)return!0;let ot;for(ot in s)if(!(ot in o))return!1;if(rt&&et==="shallow"&&tt==="shallow"){for(ot in nt?o:s)if(!is.equ(s[ot],o[ot],{strict:nt,objects:"reference"}))return!1}else for(ot in nt?o:s)if(s[ot]!==o[ot])return!1;if(is.und(ot)){if(it&&s.length===0&&o.length===0||rt&&Object.keys(s).length===0&&Object.keys(o).length===0)return!0;if(s!==o)return!1}return!0}};function buildGraph(s){const o={nodes:{},materials:{}};return s&&s.traverse(et=>{et.name&&(o.nodes[et.name]=et),et.material&&!o.materials[et.material.name]&&(o.materials[et.material.name]=et.material)}),o}function dispose(s){s.dispose&&s.type!=="Scene"&&s.dispose();for(const o in s)o.dispose==null||o.dispose(),delete s[o]}function prepare$1(s,o){const et=s;return et.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...o},s}function resolve$1(s,o){let et=s;if(o.includes("-")){const tt=o.split("-"),nt=tt.pop();return et=tt.reduce((rt,it)=>rt[it],s),{target:et,key:nt}}else return{target:et,key:o}}const INDEX_REGEX=/-\d+$/;function attach(s,o,et){if(is.str(et)){if(INDEX_REGEX.test(et)){const rt=et.replace(INDEX_REGEX,""),{target:it,key:ot}=resolve$1(s,rt);Array.isArray(it[ot])||(it[ot]=[])}const{target:tt,key:nt}=resolve$1(s,et);o.__r3f.previousAttach=tt[nt],tt[nt]=o}else o.__r3f.previousAttach=et(s,o)}function detach(s,o,et){var tt,nt;if(is.str(et)){const{target:rt,key:it}=resolve$1(s,et),ot=o.__r3f.previousAttach;ot===void 0?delete rt[it]:rt[it]=ot}else(tt=o.__r3f)==null||tt.previousAttach==null||tt.previousAttach(s,o);(nt=o.__r3f)==null||delete nt.previousAttach}function diffProps(s,{children:o,key:et,ref:tt,...nt},{children:rt,key:it,ref:ot,...st}={},at=!1){const lt=s.__r3f,ut=Object.entries(nt),dt=[];if(at){const ct=Object.keys(st);for(let pt=0;pt{var ft;if((ft=s.__r3f)!=null&&ft.primitive&&ct==="object"||is.equ(pt,st[ct]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(ct))return dt.push([ct,pt,!0,[]]);let gt=[];ct.includes("-")&&(gt=ct.split("-")),dt.push([ct,pt,!1,gt]);for(const yt in nt){const Ut=nt[yt];yt.startsWith(`${ct}-`)&&dt.push([yt,Ut,!1,yt.split("-")])}});const ht={...nt};return lt!=null&<.memoizedProps&<!=null&<.memoizedProps.args&&(ht.args=lt.memoizedProps.args),lt!=null&<.memoizedProps&<!=null&<.memoizedProps.attach&&(ht.attach=lt.memoizedProps.attach),{memoized:ht,changes:dt}}const __DEV__=typeof process<"u"&&!1;function applyProps$1(s,o){var et;const tt=s.__r3f,nt=tt?.root,rt=nt==null||nt.getState==null?void 0:nt.getState(),{memoized:it,changes:ot}=isDiffSet(o)?o:diffProps(s,o),st=tt?.eventCount;s.__r3f&&(s.__r3f.memoizedProps=it);for(let lt=0;ltgt[yt],s),!(ft&&ft.set))){const[gt,...yt]=ct.reverse();pt=yt.reverse().reduce((Ut,Ft)=>Ut[Ft],s),ut=gt}if(dt===DEFAULT+"remove")if(pt.constructor){let gt=DEFAULTS.get(pt.constructor);gt||(gt=new pt.constructor,DEFAULTS.set(pt.constructor,gt)),dt=gt[ut]}else dt=0;if(ht&&tt)dt?tt.handlers[ut]=dt:delete tt.handlers[ut],tt.eventCount=Object.keys(tt.handlers).length;else if(ft&&ft.set&&(ft.copy||ft instanceof Layers)){if(Array.isArray(dt))ft.fromArray?ft.fromArray(dt):ft.set(...dt);else if(ft.copy&&dt&&dt.constructor&&(__DEV__?ft.constructor.name===dt.constructor.name:ft.constructor===dt.constructor))ft.copy(dt);else if(dt!==void 0){const gt=ft instanceof Color$2;!gt&&ft.setScalar?ft.setScalar(dt):ft instanceof Layers&&dt instanceof Layers?ft.mask=dt.mask:ft.set(dt),!getColorManagement()&&rt&&!rt.linear&>&&ft.convertSRGBToLinear()}}else if(pt[ut]=dt,pt[ut]instanceof Texture&&pt[ut].format===RGBAFormat&&pt[ut].type===UnsignedByteType&&rt){const gt=pt[ut];hasColorSpace(gt)&&hasColorSpace(rt.gl)?gt.colorSpace=rt.gl.outputColorSpace:gt.encoding=rt.gl.outputEncoding}invalidateInstance(s)}if(tt&&tt.parent&&s.raycast&&st!==tt.eventCount){const lt=findInitialRoot(s).getState().internal,ut=lt.interaction.indexOf(s);ut>-1&<.interaction.splice(ut,1),tt.eventCount&<.interaction.push(s)}return!(ot.length===1&&ot[0][0]==="onUpdate")&&ot.length&&(et=s.__r3f)!=null&&et.parent&&updateInstance(s),s}function invalidateInstance(s){var o,et;const tt=(o=s.__r3f)==null||(et=o.root)==null||et.getState==null?void 0:et.getState();tt&&tt.internal.frames===0&&tt.invalidate()}function updateInstance(s){s.onUpdate==null||s.onUpdate(s)}function updateCamera(s,o){s.manual||(isOrthographicCamera$1(s)?(s.left=o.width/-2,s.right=o.width/2,s.top=o.height/2,s.bottom=o.height/-2):s.aspect=o.width/o.height,s.updateProjectionMatrix(),s.updateMatrixWorld())}function makeId(s){return(s.eventObject||s.object).uuid+"/"+s.index+s.instanceId}function getEventPriority(){var s;const o=typeof self<"u"&&self||typeof window<"u"&&window;if(!o)return constantsExports.DefaultEventPriority;switch((s=o.event)==null?void 0:s.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return constantsExports.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return constantsExports.ContinuousEventPriority;default:return constantsExports.DefaultEventPriority}}function releaseInternalPointerCapture(s,o,et,tt){const nt=et.get(o);nt&&(et.delete(o),et.size===0&&(s.delete(tt),nt.target.releasePointerCapture(tt)))}function removeInteractivity(s,o){const{internal:et}=s.getState();et.interaction=et.interaction.filter(tt=>tt!==o),et.initialHits=et.initialHits.filter(tt=>tt!==o),et.hovered.forEach((tt,nt)=>{(tt.eventObject===o||tt.object===o)&&et.hovered.delete(nt)}),et.capturedMap.forEach((tt,nt)=>{releaseInternalPointerCapture(et.capturedMap,o,tt,nt)})}function createEvents(s){function o(st){const{internal:at}=s.getState(),lt=st.offsetX-at.initialClick[0],ut=st.offsetY-at.initialClick[1];return Math.round(Math.sqrt(lt*lt+ut*ut))}function et(st){return st.filter(at=>["Move","Over","Enter","Out","Leave"].some(lt=>{var ut;return(ut=at.__r3f)==null?void 0:ut.handlers["onPointer"+lt]}))}function tt(st,at){const lt=s.getState(),ut=new Set,dt=[],ht=at?at(lt.internal.interaction):lt.internal.interaction;for(let gt=0;gt{const Ut=getRootState(gt.object),Ft=getRootState(yt.object);return!Ut||!Ft?gt.distance-yt.distance:Ft.events.priority-Ut.events.priority||gt.distance-yt.distance}).filter(gt=>{const yt=makeId(gt);return ut.has(yt)?!1:(ut.add(yt),!0)});lt.events.filter&&(pt=lt.events.filter(pt,lt));for(const gt of pt){let yt=gt.object;for(;yt;){var ft;(ft=yt.__r3f)!=null&&ft.eventCount&&dt.push({...gt,eventObject:yt}),yt=yt.parent}}if("pointerId"in st&<.internal.capturedMap.has(st.pointerId))for(let gt of lt.internal.capturedMap.get(st.pointerId).values())ut.has(makeId(gt.intersection))||dt.push(gt.intersection);return dt}function nt(st,at,lt,ut){const dt=s.getState();if(st.length){const ht={stopped:!1};for(const ct of st){const pt=getRootState(ct.object)||dt,{raycaster:ft,pointer:gt,camera:yt,internal:Ut}=pt,Ft=new Vector3(gt.x,gt.y,0).unproject(yt),mt=St=>{var Tt,Bt;return(Tt=(Bt=Ut.capturedMap.get(St))==null?void 0:Bt.has(ct.eventObject))!=null?Tt:!1},vt=St=>{const Tt={intersection:ct,target:at.target};Ut.capturedMap.has(St)?Ut.capturedMap.get(St).set(ct.eventObject,Tt):Ut.capturedMap.set(St,new Map([[ct.eventObject,Tt]])),at.target.setPointerCapture(St)},At=St=>{const Tt=Ut.capturedMap.get(St);Tt&&releaseInternalPointerCapture(Ut.capturedMap,ct.eventObject,Tt,St)};let Lt={};for(let St in at){let Tt=at[St];typeof Tt!="function"&&(Lt[St]=Tt)}let Rt={...ct,...Lt,pointer:gt,intersections:st,stopped:ht.stopped,delta:lt,unprojectedPoint:Ft,ray:ft.ray,camera:yt,stopPropagation(){const St="pointerId"in at&&Ut.capturedMap.get(at.pointerId);if((!St||St.has(ct.eventObject))&&(Rt.stopped=ht.stopped=!0,Ut.hovered.size&&Array.from(Ut.hovered.values()).find(Tt=>Tt.eventObject===ct.eventObject))){const Tt=st.slice(0,st.indexOf(ct));rt([...Tt,ct])}},target:{hasPointerCapture:mt,setPointerCapture:vt,releasePointerCapture:At},currentTarget:{hasPointerCapture:mt,setPointerCapture:vt,releasePointerCapture:At},nativeEvent:at};if(ut(Rt),ht.stopped===!0)break}}return st}function rt(st){const{internal:at}=s.getState();for(const lt of at.hovered.values())if(!st.length||!st.find(ut=>ut.object===lt.object&&ut.index===lt.index&&ut.instanceId===lt.instanceId)){const dt=lt.eventObject.__r3f,ht=dt?.handlers;if(at.hovered.delete(makeId(lt)),dt!=null&&dt.eventCount){const ct={...lt,intersections:st};ht.onPointerOut==null||ht.onPointerOut(ct),ht.onPointerLeave==null||ht.onPointerLeave(ct)}}}function it(st,at){for(let lt=0;ltrt([]);case"onLostPointerCapture":return at=>{const{internal:lt}=s.getState();"pointerId"in at&<.capturedMap.has(at.pointerId)&&requestAnimationFrame(()=>{lt.capturedMap.has(at.pointerId)&&(lt.capturedMap.delete(at.pointerId),rt([]))})}}return function(lt){const{onPointerMissed:ut,internal:dt}=s.getState();dt.lastEvent.current=lt;const ht=st==="onPointerMove",ct=st==="onClick"||st==="onContextMenu"||st==="onDoubleClick",ft=tt(lt,ht?et:void 0),gt=ct?o(lt):0;st==="onPointerDown"&&(dt.initialClick=[lt.offsetX,lt.offsetY],dt.initialHits=ft.map(Ut=>Ut.eventObject)),ct&&!ft.length&><=2&&(it(lt,dt.interaction),ut&&ut(lt)),ht&&rt(ft);function yt(Ut){const Ft=Ut.eventObject,mt=Ft.__r3f,vt=mt?.handlers;if(mt!=null&&mt.eventCount)if(ht){if(vt.onPointerOver||vt.onPointerEnter||vt.onPointerOut||vt.onPointerLeave){const At=makeId(Ut),Lt=dt.hovered.get(At);Lt?Lt.stopped&&Ut.stopPropagation():(dt.hovered.set(At,Ut),vt.onPointerOver==null||vt.onPointerOver(Ut),vt.onPointerEnter==null||vt.onPointerEnter(Ut))}vt.onPointerMove==null||vt.onPointerMove(Ut)}else{const At=vt[st];At?(!ct||dt.initialHits.includes(Ft))&&(it(lt,dt.interaction.filter(Lt=>!dt.initialHits.includes(Lt))),At(Ut)):ct&&dt.initialHits.includes(Ft)&&it(lt,dt.interaction.filter(Lt=>!dt.initialHits.includes(Lt)))}}nt(ft,lt,gt,yt)}}return{handlePointer:ot}}const privateKeys=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],isRenderer=s=>!!(s!=null&&s.render),context$3=reactExports.createContext(null),createStore=(s,o)=>{const et=create$1((ot,st)=>{const at=new Vector3,lt=new Vector3,ut=new Vector3;function dt(gt=st().camera,yt=lt,Ut=st().size){const{width:Ft,height:mt,top:vt,left:At}=Ut,Lt=Ft/mt;yt instanceof Vector3?ut.copy(yt):ut.set(...yt);const Rt=gt.getWorldPosition(at).distanceTo(ut);if(isOrthographicCamera$1(gt))return{width:Ft/gt.zoom,height:mt/gt.zoom,top:vt,left:At,factor:1,distance:Rt,aspect:Lt};{const St=gt.fov*Math.PI/180,Tt=2*Math.tan(St/2)*Rt,Bt=Tt*(Ft/mt);return{width:Bt,height:Tt,top:vt,left:At,factor:Ft/Bt,distance:Rt,aspect:Lt}}}let ht;const ct=gt=>ot(yt=>({performance:{...yt.performance,current:gt}})),pt=new Vector2;return{set:ot,get:st,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(gt=1)=>s(st(),gt),advance:(gt,yt)=>o(gt,yt,st()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new Clock,pointer:pt,mouse:pt,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const gt=st();ht&&clearTimeout(ht),gt.performance.current!==gt.performance.min&&ct(gt.performance.min),ht=setTimeout(()=>ct(st().performance.max),gt.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:dt},setEvents:gt=>ot(yt=>({...yt,events:{...yt.events,...gt}})),setSize:(gt,yt,Ut,Ft,mt)=>{const vt=st().camera,At={width:gt,height:yt,top:Ft||0,left:mt||0,updateStyle:Ut};ot(Lt=>({size:At,viewport:{...Lt.viewport,...dt(vt,lt,At)}}))},setDpr:gt=>ot(yt=>{const Ut=calculateDpr(gt);return{viewport:{...yt.viewport,dpr:Ut,initialDpr:yt.viewport.initialDpr||Ut}}}),setFrameloop:(gt="always")=>{const yt=st().clock;yt.stop(),yt.elapsedTime=0,gt!=="never"&&(yt.start(),yt.elapsedTime=0),ot(()=>({frameloop:gt}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:reactExports.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(gt,yt,Ut)=>{const Ft=st().internal;return Ft.priority=Ft.priority+(yt>0?1:0),Ft.subscribers.push({ref:gt,priority:yt,store:Ut}),Ft.subscribers=Ft.subscribers.sort((mt,vt)=>mt.priority-vt.priority),()=>{const mt=st().internal;mt!=null&&mt.subscribers&&(mt.priority=mt.priority-(yt>0?1:0),mt.subscribers=mt.subscribers.filter(vt=>vt.ref!==gt))}}}}}),tt=et.getState();let nt=tt.size,rt=tt.viewport.dpr,it=tt.camera;return et.subscribe(()=>{const{camera:ot,size:st,viewport:at,gl:lt,set:ut}=et.getState();if(st.width!==nt.width||st.height!==nt.height||at.dpr!==rt){var dt;nt=st,rt=at.dpr,updateCamera(ot,st),lt.setPixelRatio(at.dpr);const ht=(dt=st.updateStyle)!=null?dt:typeof HTMLCanvasElement<"u"&<.domElement instanceof HTMLCanvasElement;lt.setSize(st.width,st.height,ht)}ot!==it&&(it=ot,ut(ht=>({viewport:{...ht.viewport,...ht.viewport.getCurrentViewport(ot)}})))}),et.subscribe(ot=>s(ot)),et};function createSubs(s,o){const et={callback:s};return o.add(et),()=>void o.delete(et)}let i$2,globalEffects=new Set,globalAfterEffects=new Set,globalTailEffects=new Set;const addEffect=s=>createSubs(s,globalEffects),addAfterEffect=s=>createSubs(s,globalAfterEffects);function run(s,o){if(s.size)for(const{callback:et}of s.values())et(o)}function flushGlobalEffects(s,o){switch(s){case"before":return run(globalEffects,o);case"after":return run(globalAfterEffects,o);case"tail":return run(globalTailEffects,o)}}let subscribers,subscription;function render$1(s,o,et){let tt=o.clock.getDelta();for(o.frameloop==="never"&&typeof s=="number"&&(tt=s-o.clock.elapsedTime,o.clock.oldTime=o.clock.elapsedTime,o.clock.elapsedTime=s),subscribers=o.internal.subscribers,i$2=0;i$20)&&!((lt=rt.gl.xr)!=null&<.isPresenting)&&(tt+=render$1(at,rt))}if(et=!1,flushGlobalEffects("after",at),tt===0)return flushGlobalEffects("tail",at),o=!1,cancelAnimationFrame(nt)}function ot(at,lt=1){var ut;if(!at)return s.forEach(dt=>ot(dt.store.getState(),lt));(ut=at.gl.xr)!=null&&ut.isPresenting||!at.internal.active||at.frameloop==="never"||(lt>1?at.internal.frames=Math.min(60,at.internal.frames+lt):et?at.internal.frames=2:at.internal.frames=1,o||(o=!0,requestAnimationFrame(it)))}function st(at,lt=!0,ut,dt){if(lt&&flushGlobalEffects("before",at),ut)render$1(at,ut,dt);else for(const ht of s.values())render$1(at,ht.store.getState());lt&&flushGlobalEffects("after",at)}return{loop:it,invalidate:ot,advance:st}}function useInstanceHandle(s){const o=reactExports.useRef(null);return useIsomorphicLayoutEffect$1(()=>void(o.current=s.current.__r3f),[s]),o}function useStore(){const s=reactExports.useContext(context$3);if(!s)throw new Error("R3F: Hooks can only be used within the Canvas component!");return s}function useThree(s=et=>et,o){return useStore()(s,o)}function useFrame(s,o=0){const et=useStore(),tt=et.getState().internal.subscribe,nt=useMutableCallback(s);return useIsomorphicLayoutEffect$1(()=>tt(nt,o,et),[o,tt,et]),null}const memoizedLoaders=new WeakMap;function loadingFn(s,o){return function(et,...tt){let nt=memoizedLoaders.get(et);return nt||(nt=new et,memoizedLoaders.set(et,nt)),s&&s(nt),Promise.all(tt.map(rt=>new Promise((it,ot)=>nt.load(rt,st=>{st.scene&&Object.assign(st,buildGraph(st.scene)),it(st)},o,st=>ot(new Error(`Could not load ${rt}: ${st?.message}`))))))}}function useLoader(s,o,et,tt){const nt=Array.isArray(o)?o:[o],rt=suspend(loadingFn(et,tt),[s,...nt],{equal:is.equ});return Array.isArray(o)?rt:rt[0]}useLoader.preload=function(s,o,et){const tt=Array.isArray(o)?o:[o];return preload(loadingFn(et),[s,...tt])};useLoader.clear=function(s,o){const et=Array.isArray(o)?o:[o];return clear([s,...et])};const roots=new Map,{invalidate,advance}=createLoop(roots),{reconciler,applyProps}=createRenderer(roots,getEventPriority),shallowLoose={objects:"shallow",strict:!1},createRendererInstance=(s,o)=>{const et=typeof s=="function"?s(o):s;return isRenderer(et)?et:new WebGLRenderer({powerPreference:"high-performance",canvas:o,antialias:!0,alpha:!0,...s})};function computeInitialSize(s,o){const et=typeof HTMLCanvasElement<"u"&&s instanceof HTMLCanvasElement;if(o){const{width:tt,height:nt,top:rt,left:it,updateStyle:ot=et}=o;return{width:tt,height:nt,top:rt,left:it,updateStyle:ot}}else if(typeof HTMLCanvasElement<"u"&&s instanceof HTMLCanvasElement&&s.parentElement){const{width:tt,height:nt,top:rt,left:it}=s.parentElement.getBoundingClientRect();return{width:tt,height:nt,top:rt,left:it,updateStyle:et}}else if(typeof OffscreenCanvas<"u"&&s instanceof OffscreenCanvas)return{width:s.width,height:s.height,top:0,left:0,updateStyle:et};return{width:0,height:0,top:0,left:0}}function createRoot(s){const o=roots.get(s),et=o?.fiber,tt=o?.store;o&&console.warn("R3F.createRoot should only be called once!");const nt=typeof reportError=="function"?reportError:console.error,rt=tt||createStore(invalidate,advance),it=et||reconciler.createContainer(rt,constantsExports.ConcurrentRoot,null,!1,null,"",nt,null);o||roots.set(s,{fiber:it,store:rt});let ot,st=!1,at;return{configure(lt={}){let{gl:ut,size:dt,scene:ht,events:ct,onCreated:pt,shadows:ft=!1,linear:gt=!1,flat:yt=!1,legacy:Ut=!1,orthographic:Ft=!1,frameloop:mt="always",dpr:vt=[1,2],performance:At,raycaster:Lt,camera:Rt,onPointerMissed:St}=lt,Tt=rt.getState(),Bt=Tt.gl;Tt.gl||Tt.set({gl:Bt=createRendererInstance(ut,s)});let xt=Tt.raycaster;xt||Tt.set({raycaster:xt=new Raycaster});const{params:Ct,...kt}=Lt||{};if(is.equ(kt,xt,shallowLoose)||applyProps(xt,{...kt}),is.equ(Ct,xt.params,shallowLoose)||applyProps(xt,{params:{...xt.params,...Ct}}),!Tt.camera||Tt.camera===at&&!is.equ(at,Rt,shallowLoose)){at=Rt;const Et=Rt instanceof Camera,Pt=Et?Rt:Ft?new OrthographicCamera(0,0,0,0,.1,1e3):new PerspectiveCamera$1(75,0,.1,1e3);Et||(Pt.position.z=5,Rt&&(applyProps(Pt,Rt),("aspect"in Rt||"left"in Rt||"right"in Rt||"bottom"in Rt||"top"in Rt)&&(Pt.manual=!0,Pt.updateProjectionMatrix())),!Tt.camera&&!(Rt!=null&&Rt.rotation)&&Pt.lookAt(0,0,0)),Tt.set({camera:Pt}),xt.camera=Pt}if(!Tt.scene){let Et;ht instanceof Scene?Et=ht:(Et=new Scene,ht&&applyProps(Et,ht)),Tt.set({scene:prepare$1(Et)})}if(!Tt.xr){var Nt;const Et=(en,Kt)=>{const nn=rt.getState();nn.frameloop!=="never"&&advance(en,!0,nn,Kt)},Pt=()=>{const en=rt.getState();en.gl.xr.enabled=en.gl.xr.isPresenting,en.gl.xr.setAnimationLoop(en.gl.xr.isPresenting?Et:null),en.gl.xr.isPresenting||invalidate(en)},zt={connect(){const en=rt.getState().gl;en.xr.addEventListener("sessionstart",Pt),en.xr.addEventListener("sessionend",Pt)},disconnect(){const en=rt.getState().gl;en.xr.removeEventListener("sessionstart",Pt),en.xr.removeEventListener("sessionend",Pt)}};typeof((Nt=Bt.xr)==null?void 0:Nt.addEventListener)=="function"&&zt.connect(),Tt.set({xr:zt})}if(Bt.shadowMap){const Et=Bt.shadowMap.enabled,Pt=Bt.shadowMap.type;if(Bt.shadowMap.enabled=!!ft,is.boo(ft))Bt.shadowMap.type=PCFSoftShadowMap;else if(is.str(ft)){var Ot;const zt={basic:BasicShadowMap,percentage:PCFShadowMap,soft:PCFSoftShadowMap,variance:VSMShadowMap};Bt.shadowMap.type=(Ot=zt[ft])!=null?Ot:PCFSoftShadowMap}else is.obj(ft)&&Object.assign(Bt.shadowMap,ft);(Et!==Bt.shadowMap.enabled||Pt!==Bt.shadowMap.type)&&(Bt.shadowMap.needsUpdate=!0)}const Wt=getColorManagement();Wt&&("enabled"in Wt?Wt.enabled=!Ut:"legacyMode"in Wt&&(Wt.legacyMode=Ut)),st||applyProps(Bt,{outputEncoding:gt?3e3:3001,toneMapping:yt?NoToneMapping:ACESFilmicToneMapping}),Tt.legacy!==Ut&&Tt.set(()=>({legacy:Ut})),Tt.linear!==gt&&Tt.set(()=>({linear:gt})),Tt.flat!==yt&&Tt.set(()=>({flat:yt})),ut&&!is.fun(ut)&&!isRenderer(ut)&&!is.equ(ut,Bt,shallowLoose)&&applyProps(Bt,ut),ct&&!Tt.events.handlers&&Tt.set({events:ct(rt)});const Dt=computeInitialSize(s,dt);return is.equ(Dt,Tt.size,shallowLoose)||Tt.setSize(Dt.width,Dt.height,Dt.updateStyle,Dt.top,Dt.left),vt&&Tt.viewport.dpr!==calculateDpr(vt)&&Tt.setDpr(vt),Tt.frameloop!==mt&&Tt.setFrameloop(mt),Tt.onPointerMissed||Tt.set({onPointerMissed:St}),At&&!is.equ(At,Tt.performance,shallowLoose)&&Tt.set(Et=>({performance:{...Et.performance,...At}})),ot=pt,st=!0,this},render(lt){return st||this.configure(),reconciler.updateContainer(jsx$2(Provider,{store:rt,children:lt,onCreated:ot,rootElement:s}),it,null,()=>{}),rt},unmount(){unmountComponentAtNode(s)}}}function Provider({store:s,children:o,onCreated:et,rootElement:tt}){return useIsomorphicLayoutEffect$1(()=>{const nt=s.getState();nt.set(rt=>({internal:{...rt.internal,active:!0}})),et&&et(nt),s.getState().events.connected||nt.events.connect==null||nt.events.connect(tt)},[]),jsx$2(context$3.Provider,{value:s,children:o})}function unmountComponentAtNode(s,o){const et=roots.get(s),tt=et?.fiber;if(tt){const nt=et?.store.getState();nt&&(nt.internal.active=!1),reconciler.updateContainer(null,tt,null,()=>{nt&&setTimeout(()=>{try{var rt,it,ot,st;nt.events.disconnect==null||nt.events.disconnect(),(rt=nt.gl)==null||(it=rt.renderLists)==null||it.dispose==null||it.dispose(),(ot=nt.gl)==null||ot.forceContextLoss==null||ot.forceContextLoss(),(st=nt.gl)!=null&&st.xr&&nt.xr.disconnect(),dispose(nt),roots.delete(s),o&&o(s)}catch{}},500)})}}function createPortal(s,o,et){return jsx$2(Portal,{children:s,container:o,state:et},o.uuid)}function Portal({state:s={},children:o,container:et}){const{events:tt,size:nt,...rt}=s,it=useStore(),[ot]=reactExports.useState(()=>new Raycaster),[st]=reactExports.useState(()=>new Vector2),at=reactExports.useCallback((ut,dt)=>{const ht={...ut};Object.keys(ut).forEach(pt=>{(privateKeys.includes(pt)||ut[pt]!==dt[pt]&&dt[pt])&&delete ht[pt]});let ct;if(dt&&nt){const pt=dt.camera;ct=ut.viewport.getCurrentViewport(pt,new Vector3,nt),pt!==ut.camera&&updateCamera(pt,nt)}return{...ht,scene:et,raycaster:ot,pointer:st,mouse:st,previousRoot:it,events:{...ut.events,...dt?.events,...tt},size:{...ut.size,...nt},viewport:{...ut.viewport,...ct},...rt}},[s]),[lt]=reactExports.useState(()=>{const ut=it.getState();return create$1((ht,ct)=>({...ut,scene:et,raycaster:ot,pointer:st,mouse:st,previousRoot:it,events:{...ut.events,...tt},size:{...ut.size,...nt},...rt,set:ht,get:ct,setEvents:pt=>ht(ft=>({...ft,events:{...ft.events,...pt}}))}))});return reactExports.useEffect(()=>{const ut=it.subscribe(dt=>lt.setState(ht=>at(dt,ht)));return()=>{ut()}},[at]),reactExports.useEffect(()=>{lt.setState(ut=>at(it.getState(),ut))},[at]),reactExports.useEffect(()=>()=>{lt.destroy()},[]),jsx$2(Fragment$2,{children:reconciler.createPortal(jsx$2(context$3.Provider,{value:lt,children:o}),lt,null)})}reconciler.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:reactExports.version});function debounce(s,o,et){var tt,nt,rt,it,ot;o==null&&(o=100);function st(){var lt=Date.now()-it;lt=0?tt=setTimeout(st,o-lt):(tt=null,et||(ot=s.apply(rt,nt),rt=nt=null))}var at=function(){rt=this,nt=arguments,it=Date.now();var lt=et&&!tt;return tt||(tt=setTimeout(st,o)),lt&&(ot=s.apply(rt,nt),rt=nt=null),ot};return at.clear=function(){tt&&(clearTimeout(tt),tt=null)},at.flush=function(){tt&&(ot=s.apply(rt,nt),rt=nt=null,clearTimeout(tt),tt=null)},at}debounce.debounce=debounce;var debounce_1=debounce;const createDebounce=getDefaultExportFromCjs$1(debounce_1);function useMeasure(s){let{debounce:o,scroll:et,polyfill:tt,offsetSize:nt}=s===void 0?{debounce:0,scroll:!1,offsetSize:!1}:s;const rt=tt||(typeof window>"u"?class{}:window.ResizeObserver);if(!rt)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[it,ot]=reactExports.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),st=reactExports.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:it}),at=o?typeof o=="number"?o:o.scroll:null,lt=o?typeof o=="number"?o:o.resize:null,ut=reactExports.useRef(!1);reactExports.useEffect(()=>(ut.current=!0,()=>void(ut.current=!1)));const[dt,ht,ct]=reactExports.useMemo(()=>{const yt=()=>{if(!st.current.element)return;const{left:Ut,top:Ft,width:mt,height:vt,bottom:At,right:Lt,x:Rt,y:St}=st.current.element.getBoundingClientRect(),Tt={left:Ut,top:Ft,width:mt,height:vt,bottom:At,right:Lt,x:Rt,y:St};st.current.element instanceof HTMLElement&&nt&&(Tt.height=st.current.element.offsetHeight,Tt.width=st.current.element.offsetWidth),Object.freeze(Tt),ut.current&&!areBoundsEqual(st.current.lastBounds,Tt)&&ot(st.current.lastBounds=Tt)};return[yt,lt?createDebounce(yt,lt):yt,at?createDebounce(yt,at):yt]},[ot,nt,at,lt]);function pt(){st.current.scrollContainers&&(st.current.scrollContainers.forEach(yt=>yt.removeEventListener("scroll",ct,!0)),st.current.scrollContainers=null),st.current.resizeObserver&&(st.current.resizeObserver.disconnect(),st.current.resizeObserver=null)}function ft(){st.current.element&&(st.current.resizeObserver=new rt(ct),st.current.resizeObserver.observe(st.current.element),et&&st.current.scrollContainers&&st.current.scrollContainers.forEach(yt=>yt.addEventListener("scroll",ct,{capture:!0,passive:!0})))}const gt=yt=>{!yt||yt===st.current.element||(pt(),st.current.element=yt,st.current.scrollContainers=findScrollContainers(yt),ft())};return useOnWindowScroll(ct,!!et),useOnWindowResize(ht),reactExports.useEffect(()=>{pt(),ft()},[et,ct,ht]),reactExports.useEffect(()=>pt,[]),[gt,it,dt]}function useOnWindowResize(s){reactExports.useEffect(()=>{const o=s;return window.addEventListener("resize",o),()=>void window.removeEventListener("resize",o)},[s])}function useOnWindowScroll(s,o){reactExports.useEffect(()=>{if(o){const et=s;return window.addEventListener("scroll",et,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",et,!0)}},[s,o])}function findScrollContainers(s){const o=[];if(!s||s===document.body)return o;const{overflow:et,overflowX:tt,overflowY:nt}=window.getComputedStyle(s);return[et,tt,nt].some(rt=>rt==="auto"||rt==="scroll")&&o.push(s),[...o,...findScrollContainers(s.parentElement)]}const keys=["x","y","top","bottom","left","right","width","height"],areBoundsEqual=(s,o)=>keys.every(et=>s[et]===o[et]);var __defProp$4=Object.defineProperty,__defProps$2=Object.defineProperties,__getOwnPropDescs$2=Object.getOwnPropertyDescriptors,__getOwnPropSymbols$2=Object.getOwnPropertySymbols,__hasOwnProp$2=Object.prototype.hasOwnProperty,__propIsEnum$2=Object.prototype.propertyIsEnumerable,__defNormalProp$4=(s,o,et)=>o in s?__defProp$4(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,__spreadValues$2=(s,o)=>{for(var et in o||(o={}))__hasOwnProp$2.call(o,et)&&__defNormalProp$4(s,et,o[et]);if(__getOwnPropSymbols$2)for(var et of __getOwnPropSymbols$2(o))__propIsEnum$2.call(o,et)&&__defNormalProp$4(s,et,o[et]);return s},__spreadProps$2=(s,o)=>__defProps$2(s,__getOwnPropDescs$2(o));function traverseFiber(s,o,et){if(!s)return;if(et(s)===!0)return s;let tt=o?s.return:s.child;for(;tt;){const nt=traverseFiber(tt,o,et);if(nt)return nt;tt=o?null:tt.sibling}}function wrapContext(s){try{return Object.defineProperties(s,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return s}}const FiberContext=wrapContext(reactExports.createContext(null));class FiberProvider extends reactExports.Component{render(){return reactExports.createElement(FiberContext.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner,ReactCurrentDispatcher}=reactExports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function useFiber(){const s=reactExports.useContext(FiberContext);if(s===null)throw new Error("its-fine: useFiber must be called within a !");const o=reactExports.useId();return reactExports.useMemo(()=>{for(const tt of[ReactCurrentOwner?.current,s,s?.alternate]){if(!tt)continue;const nt=traverseFiber(tt,!1,rt=>{let it=rt.memoizedState;for(;it;){if(it.memoizedState===o)return!0;it=it.next}});if(nt)return nt}},[s,o])}function useContextMap(){var s,o;const et=useFiber(),[tt]=reactExports.useState(()=>new Map);tt.clear();let nt=et;for(;nt;){const rt=(s=nt.type)==null?void 0:s._context;rt&&rt!==FiberContext&&!tt.has(rt)&&tt.set(rt,(o=ReactCurrentDispatcher?.current)==null?void 0:o.readContext(wrapContext(rt))),nt=nt.return}return tt}function useContextBridge(){const s=useContextMap();return reactExports.useMemo(()=>Array.from(s.keys()).reduce((o,et)=>tt=>reactExports.createElement(o,null,reactExports.createElement(et.Provider,__spreadProps$2(__spreadValues$2({},tt),{value:s.get(et)}))),o=>reactExports.createElement(FiberProvider,__spreadValues$2({},o))),[s])}const DOM_EVENTS={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function createPointerEvents(s){const{handlePointer:o}=createEvents(s);return{priority:1,enabled:!0,compute(et,tt,nt){tt.pointer.set(et.offsetX/tt.size.width*2-1,-(et.offsetY/tt.size.height)*2+1),tt.raycaster.setFromCamera(tt.pointer,tt.camera)},connected:void 0,handlers:Object.keys(DOM_EVENTS).reduce((et,tt)=>({...et,[tt]:o(tt)}),{}),update:()=>{var et;const{events:tt,internal:nt}=s.getState();(et=nt.lastEvent)!=null&&et.current&&tt.handlers&&tt.handlers.onPointerMove(nt.lastEvent.current)},connect:et=>{var tt;const{set:nt,events:rt}=s.getState();rt.disconnect==null||rt.disconnect(),nt(it=>({events:{...it.events,connected:et}})),Object.entries((tt=rt.handlers)!=null?tt:[]).forEach(([it,ot])=>{const[st,at]=DOM_EVENTS[it];et.addEventListener(st,ot,{passive:at})})},disconnect:()=>{const{set:et,events:tt}=s.getState();if(tt.connected){var nt;Object.entries((nt=tt.handlers)!=null?nt:[]).forEach(([rt,it])=>{if(tt&&tt.connected instanceof HTMLElement){const[ot]=DOM_EVENTS[rt];tt.connected.removeEventListener(ot,it)}}),et(rt=>({events:{...rt.events,connected:void 0}}))}}}}const CanvasImpl=reactExports.forwardRef(function({children:o,fallback:et,resize:tt,style:nt,gl:rt,events:it=createPointerEvents,eventSource:ot,eventPrefix:st,shadows:at,linear:lt,flat:ut,legacy:dt,orthographic:ht,frameloop:ct,dpr:pt,performance:ft,raycaster:gt,camera:yt,scene:Ut,onPointerMissed:Ft,onCreated:mt,...vt},At){reactExports.useMemo(()=>extend(THREE$1),[]);const Lt=useContextBridge(),[Rt,St]=useMeasure({scroll:!0,debounce:{scroll:50,resize:0},...tt}),Tt=reactExports.useRef(null),Bt=reactExports.useRef(null);reactExports.useImperativeHandle(At,()=>Tt.current);const xt=useMutableCallback(Ft),[Ct,kt]=reactExports.useState(!1),[Nt,Ot]=reactExports.useState(!1);if(Ct)throw Ct;if(Nt)throw Nt;const Wt=reactExports.useRef(null);return useIsomorphicLayoutEffect$1(()=>{const Et=Tt.current;St.width>0&&St.height>0&&Et&&(Wt.current||(Wt.current=createRoot(Et)),Wt.current.configure({gl:rt,events:it,shadows:at,linear:lt,flat:ut,legacy:dt,orthographic:ht,frameloop:ct,dpr:pt,performance:ft,raycaster:gt,camera:yt,scene:Ut,size:St,onPointerMissed:(...Pt)=>xt.current==null?void 0:xt.current(...Pt),onCreated:Pt=>{Pt.events.connect==null||Pt.events.connect(ot?isRef(ot)?ot.current:ot:Bt.current),st&&Pt.setEvents({compute:(zt,en)=>{const Kt=zt[st+"X"],nn=zt[st+"Y"];en.pointer.set(Kt/en.size.width*2-1,-(nn/en.size.height)*2+1),en.raycaster.setFromCamera(en.pointer,en.camera)}}),mt?.(Pt)}}),Wt.current.render(jsx$2(Lt,{children:jsx$2(ErrorBoundary,{set:Ot,children:jsx$2(reactExports.Suspense,{fallback:jsx$2(Block,{set:kt}),children:o})})})))}),reactExports.useEffect(()=>{const Et=Tt.current;if(Et)return()=>unmountComponentAtNode(Et)},[]),jsx$2("div",{ref:Bt,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:ot?"none":"auto",...nt},...vt,children:jsx$2("div",{ref:Rt,style:{width:"100%",height:"100%"},children:jsx$2("canvas",{ref:Tt,style:{display:"block"},children:et})})})}),Canvas=reactExports.forwardRef(function(o,et){return jsx$2(FiberProvider,{children:jsx$2(CanvasImpl,{...o,ref:et})})});function _extends$2(){return _extends$2=Object.assign?Object.assign.bind():function(s){for(var o=1;oMath.PI/2}function isObjectVisible(s,o,et,tt){const nt=v1$1.setFromMatrixPosition(s.matrixWorld),rt=nt.clone();rt.project(o),v4$1.set(rt.x,rt.y),et.setFromCamera(v4$1,o);const it=et.intersectObjects(tt,!0);if(it.length){const ot=it[0].distance;return nt.distanceTo(et.ray.origin)Math.abs(s)<1e-10?0:s;function getCSSMatrix(s,o,et=""){let tt="matrix3d(";for(let nt=0;nt!==16;nt++)tt+=epsilon(o[nt]*s.elements[nt])+(nt!==15?",":")");return et+tt}const getCameraCSSMatrix=(s=>o=>getCSSMatrix(o,s))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),getObjectCSSMatrix=(s=>(o,et)=>getCSSMatrix(o,s(et),"translate(-50%,-50%)"))(s=>[1/s,1/s,1/s,1,-1/s,-1/s,-1/s,-1,1/s,1/s,1/s,1,1,1,1,1]);function isRefObject(s){return s&&typeof s=="object"&&"current"in s}const Html=reactExports.forwardRef(({children:s,eps:o=.001,style:et,className:tt,prepend:nt,center:rt,fullscreen:it,portal:ot,distanceFactor:st,sprite:at=!1,transform:lt=!1,occlude:ut,onOcclude:dt,castShadow:ht,receiveShadow:ct,material:pt,geometry:ft,zIndexRange:gt=[16777271,0],calculatePosition:yt=defaultCalculatePosition,as:Ut="div",wrapperClass:Ft,pointerEvents:mt="auto",...vt},At)=>{const{gl:Lt,camera:Rt,scene:St,size:Tt,raycaster:Bt,events:xt,viewport:Ct}=useThree(),[kt]=reactExports.useState(()=>document.createElement(Ut)),Nt=reactExports.useRef(),Ot=reactExports.useRef(null),Wt=reactExports.useRef(0),Dt=reactExports.useRef([0,0]),Et=reactExports.useRef(null),Pt=reactExports.useRef(null),zt=ot?.current||xt.connected||Lt.domElement.parentNode,en=reactExports.useRef(null),Kt=reactExports.useRef(!1),nn=reactExports.useMemo(()=>ut&&ut!=="blending"||Array.isArray(ut)&&ut.length&&isRefObject(ut[0]),[ut]);reactExports.useLayoutEffect(()=>{const $t=Lt.domElement;ut&&ut==="blending"?($t.style.zIndex=`${Math.floor(gt[0]/2)}`,$t.style.position="absolute",$t.style.pointerEvents="none"):($t.style.zIndex=null,$t.style.position=null,$t.style.pointerEvents=null)},[ut]),reactExports.useLayoutEffect(()=>{if(Ot.current){const $t=Nt.current=createRoot$1(kt);if(St.updateMatrixWorld(),lt)kt.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const Ht=yt(Ot.current,Rt,Tt);kt.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${Ht[0]}px,${Ht[1]}px,0);transform-origin:0 0;`}return zt&&(nt?zt.prepend(kt):zt.appendChild(kt)),()=>{zt&&zt.removeChild(kt),$t.unmount()}}},[zt,lt]),reactExports.useLayoutEffect(()=>{Ft&&(kt.className=Ft)},[Ft]);const Zt=reactExports.useMemo(()=>lt?{position:"absolute",top:0,left:0,width:Tt.width,height:Tt.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:rt?"translate3d(-50%,-50%,0)":"none",...it&&{top:-Tt.height/2,left:-Tt.width/2,width:Tt.width,height:Tt.height},...et},[et,rt,it,Tt,lt]),jt=reactExports.useMemo(()=>({position:"absolute",pointerEvents:mt}),[mt]);reactExports.useLayoutEffect(()=>{if(Kt.current=!1,lt){var $t;($t=Nt.current)==null||$t.render(reactExports.createElement("div",{ref:Et,style:Zt},reactExports.createElement("div",{ref:Pt,style:jt},reactExports.createElement("div",{ref:At,className:tt,style:et,children:s}))))}else{var Ht;(Ht=Nt.current)==null||Ht.render(reactExports.createElement("div",{ref:At,style:Zt,className:tt,children:s}))}});const Vt=reactExports.useRef(!0);useFrame($t=>{if(Ot.current){Rt.updateMatrixWorld(),Ot.current.updateWorldMatrix(!0,!1);const Ht=lt?Dt.current:yt(Ot.current,Rt,Tt);if(lt||Math.abs(Wt.current-Rt.zoom)>o||Math.abs(Dt.current[0]-Ht[0])>o||Math.abs(Dt.current[1]-Ht[1])>o){const qt=isObjectBehindCamera(Ot.current,Rt);let on=!1;nn&&(Array.isArray(ut)?on=ut.map(Fn=>Fn.current):ut!=="blending"&&(on=[St]));const Xt=Vt.current;if(on){const Fn=isObjectVisible(Ot.current,Rt,Bt,on);Vt.current=Fn&&!qt}else Vt.current=!qt;Xt!==Vt.current&&(dt?dt(!Vt.current):kt.style.display=Vt.current?"block":"none");const dn=Math.floor(gt[0]/2),_n=ut?nn?[gt[0],dn]:[dn-1,0]:gt;if(kt.style.zIndex=`${objectZIndex(Ot.current,Rt,_n)}`,lt){const[Fn,Un]=[Tt.width/2,Tt.height/2],On=Rt.projectionMatrix.elements[5]*Un,{isOrthographicCamera:gn,top:hn,left:wn,bottom:Zn,right:Pn}=Rt,$n=getCameraCSSMatrix(Rt.matrixWorldInverse),Tr=gn?`scale(${On})translate(${epsilon(-(Pn+wn)/2)}px,${epsilon((hn+Zn)/2)}px)`:`translateZ(${On}px)`;let Qr=Ot.current.matrixWorld;at&&(Qr=Rt.matrixWorldInverse.clone().transpose().copyPosition(Qr).scale(Ot.current.scale),Qr.elements[3]=Qr.elements[7]=Qr.elements[11]=0,Qr.elements[15]=1),kt.style.width=Tt.width+"px",kt.style.height=Tt.height+"px",kt.style.perspective=gn?"":`${On}px`,Et.current&&Pt.current&&(Et.current.style.transform=`${Tr}${$n}translate(${Fn}px,${Un}px)`,Pt.current.style.transform=getObjectCSSMatrix(Qr,1/((st||10)/400)))}else{const Fn=st===void 0?1:objectScale(Ot.current,Rt)*st;kt.style.transform=`translate3d(${Ht[0]}px,${Ht[1]}px,0) scale(${Fn})`}Dt.current=Ht,Wt.current=Rt.zoom}}if(!nn&&en.current&&!Kt.current)if(lt){if(Et.current){const Ht=Et.current.children[0];if(Ht!=null&&Ht.clientWidth&&Ht!=null&&Ht.clientHeight){const{isOrthographicCamera:qt}=Rt;if(qt||ft)vt.scale&&(Array.isArray(vt.scale)?vt.scale instanceof Vector3?en.current.scale.copy(vt.scale.clone().divideScalar(1)):en.current.scale.set(1/vt.scale[0],1/vt.scale[1],1/vt.scale[2]):en.current.scale.setScalar(1/vt.scale));else{const on=(st||10)/400,Xt=Ht.clientWidth*on,dn=Ht.clientHeight*on;en.current.scale.set(Xt,dn,1)}Kt.current=!0}}}else{const Ht=kt.children[0];if(Ht!=null&&Ht.clientWidth&&Ht!=null&&Ht.clientHeight){const qt=1/Ct.factor,on=Ht.clientWidth*qt,Xt=Ht.clientHeight*qt;en.current.scale.set(on,Xt,1),Kt.current=!0}en.current.lookAt($t.camera.position)}});const It=reactExports.useMemo(()=>({vertexShader:lt?void 0:` + `)+wt.join(" > ")}return null},et.getPublicRootInstance=function(wt){if(wt=wt.current,!wt.child)return null;switch(wt.child.tag){case 5:return Nt(wt.child.stateNode);default:return wt.child.stateNode}},et.injectIntoDevTools=function(wt){if(wt={bundleType:wt.bundleType,version:wt.version,rendererPackageName:wt.rendererPackageName,rendererConfig:wt.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ot.ReactCurrentDispatcher,findHostInstanceByFiber:O2,findFiberByHostInstance:wt.findFiberByHostInstance||m2,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")wt=!1;else{var Mt=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(Mt.isDisabled||!Mt.supportsFiber)wt=!0;else{try{Hr=Mt.inject(wt),co=Mt}catch{}wt=!!Mt.checkDCE}}return wt},et.isAlreadyRendering=function(){return!1},et.observeVisibleRects=function(wt,Mt,Gt,rn){if(!gn)throw Error(it(363));wt=l1(wt,Mt);var ln=Qr(wt,Gt,rn).disconnect;return{disconnect:function(){ln()}}},et.registerMutableSourceForHydration=function(wt,Mt){var Gt=Mt._getVersion;Gt=Gt(Mt._source),wt.mutableSourceEagerHydrationData==null?wt.mutableSourceEagerHydrationData=[Mt,Gt]:wt.mutableSourceEagerHydrationData.push(Mt,Gt)},et.runWithPriority=function(wt,Mt){var Gt=Cr;try{return Cr=wt,Mt()}finally{Cr=Gt}},et.shouldError=function(){return null},et.shouldSuspend=function(){return!1},et.updateContainer=function(wt,Mt,Gt,rn){var ln=Mt.current,yn=xa(),Xn=Uu(ln);return Gt=o0(Gt),Mt.context===null?Mt.context=Gt:Mt.pendingContext=Gt,Mt=qs(yn,Xn),Mt.payload={element:wt},rn=rn===void 0?null:rn,rn!==null&&(Mt.callback=rn),Yl(ln,Mt),wt=Ll(ln,Xn,yn),wt!==null&&ap(wt,ln,Xn),Xn},et};reactReconciler.exports=reactReconciler_production_min;var reactReconcilerExports=reactReconciler.exports;const Reconciler=getDefaultExportFromCjs$1(reactReconcilerExports),isPromise=s=>typeof s=="object"&&typeof s.then=="function",globalCache=[];function shallowEqualArrays(s,o,et=(tt,nt)=>tt===nt){if(s===o)return!0;if(!s||!o)return!1;const tt=s.length;if(o.length!==tt)return!1;for(let nt=0;nt0&&(rt.timeout&&clearTimeout(rt.timeout),rt.timeout=setTimeout(rt.remove,tt.lifespan)),rt.response;if(!et)throw rt.promise}const nt={keys:o,equal:tt.equal,remove:()=>{const rt=globalCache.indexOf(nt);rt!==-1&&globalCache.splice(rt,1)},promise:(isPromise(s)?s:s(...o)).then(rt=>{nt.response=rt,tt.lifespan&&tt.lifespan>0&&(nt.timeout=setTimeout(nt.remove,tt.lifespan))}).catch(rt=>nt.error=rt)};if(globalCache.push(nt),!et)throw nt.promise}const suspend=(s,o,et)=>query$4(s,o,!1,et),preload=(s,o,et)=>void query$4(s,o,!0,et),clear=s=>{if(s===void 0||s.length===0)globalCache.splice(0,globalCache.length);else{const o=globalCache.find(et=>shallowEqualArrays(s,et.keys,et.equal));o&&o.remove()}},catalogue={},extend=s=>void Object.assign(catalogue,s);function createRenderer(s,o){function et(lt,{args:ut=[],attach:dt,...ht},ct){let pt=`${lt[0].toUpperCase()}${lt.slice(1)}`,ft;if(lt==="primitive"){if(ht.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const gt=ht.object;ft=prepare$1(gt,{type:lt,root:ct,attach:dt,primitive:!0})}else{const gt=catalogue[pt];if(!gt)throw new Error(`R3F: ${pt} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(ut))throw new Error("R3F: The args prop must be an array!");ft=prepare$1(new gt(...ut),{type:lt,root:ct,attach:dt,memoizedProps:{args:ut}})}return ft.__r3f.attach===void 0&&(ft instanceof BufferGeometry?ft.__r3f.attach="geometry":ft instanceof Material&&(ft.__r3f.attach="material")),pt!=="inject"&&applyProps$1(ft,ht),ft}function tt(lt,ut){let dt=!1;if(ut){var ht,ct;(ht=ut.__r3f)!=null&&ht.attach?attach(lt,ut,ut.__r3f.attach):ut.isObject3D&<.isObject3D&&(lt.add(ut),dt=!0),dt||(ct=lt.__r3f)==null||ct.objects.push(ut),ut.__r3f||prepare$1(ut,{}),ut.__r3f.parent=lt,updateInstance(ut),invalidateInstance(ut)}}function nt(lt,ut,dt){let ht=!1;if(ut){var ct,pt;if((ct=ut.__r3f)!=null&&ct.attach)attach(lt,ut,ut.__r3f.attach);else if(ut.isObject3D&<.isObject3D){ut.parent=lt,ut.dispatchEvent({type:"added"}),lt.dispatchEvent({type:"childadded",child:ut});const ft=lt.children.filter(yt=>yt!==ut),gt=ft.indexOf(dt);lt.children=[...ft.slice(0,gt),ut,...ft.slice(gt)],ht=!0}ht||(pt=lt.__r3f)==null||pt.objects.push(ut),ut.__r3f||prepare$1(ut,{}),ut.__r3f.parent=lt,updateInstance(ut),invalidateInstance(ut)}}function rt(lt,ut,dt=!1){lt&&[...lt].forEach(ht=>it(ut,ht,dt))}function it(lt,ut,dt){if(ut){var ht,ct,pt;if(ut.__r3f&&(ut.__r3f.parent=null),(ht=lt.__r3f)!=null&&ht.objects&&(lt.__r3f.objects=lt.__r3f.objects.filter(Ft=>Ft!==ut)),(ct=ut.__r3f)!=null&&ct.attach)detach(lt,ut,ut.__r3f.attach);else if(ut.isObject3D&<.isObject3D){var ft;lt.remove(ut),(ft=ut.__r3f)!=null&&ft.root&&removeInteractivity(findInitialRoot(ut),ut)}const yt=(pt=ut.__r3f)==null?void 0:pt.primitive,Ut=!yt&&(dt===void 0?ut.dispose!==null:dt);if(!yt){var gt;rt((gt=ut.__r3f)==null?void 0:gt.objects,ut,Ut),rt(ut.children,ut,Ut)}if(delete ut.__r3f,Ut&&ut.dispose&&ut.type!=="Scene"){const Ft=()=>{try{ut.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT>"u"?schedulerExports.unstable_scheduleCallback(schedulerExports.unstable_IdlePriority,Ft):Ft()}invalidateInstance(lt)}}function ot(lt,ut,dt,ht){var ct;const pt=(ct=lt.__r3f)==null?void 0:ct.parent;if(!pt)return;const ft=et(ut,dt,lt.__r3f.root);if(lt.children){for(const gt of lt.children)gt.__r3f&&tt(ft,gt);lt.children=lt.children.filter(gt=>!gt.__r3f)}lt.__r3f.objects.forEach(gt=>tt(ft,gt)),lt.__r3f.objects=[],lt.__r3f.autoRemovedBeforeAppend||it(pt,lt),ft.parent&&(ft.__r3f.autoRemovedBeforeAppend=!0),tt(pt,ft),ft.raycast&&ft.__r3f.eventCount&&findInitialRoot(ft).getState().internal.interaction.push(ft),[ht,ht.alternate].forEach(gt=>{gt!==null&&(gt.stateNode=ft,gt.ref&&(typeof gt.ref=="function"?gt.ref(ft):gt.ref.current=ft))})}const st=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:Reconciler({createInstance:et,removeChild:it,appendChild:tt,appendInitialChild:tt,insertBefore:nt,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(lt,ut)=>{if(!ut)return;const dt=lt.getState().scene;dt.__r3f&&(dt.__r3f.root=lt,tt(dt,ut))},removeChildFromContainer:(lt,ut)=>{ut&&it(lt.getState().scene,ut)},insertInContainerBefore:(lt,ut,dt)=>{if(!ut||!dt)return;const ht=lt.getState().scene;ht.__r3f&&nt(ht,ut,dt)},getRootHostContext:()=>null,getChildHostContext:lt=>lt,finalizeInitialChildren(lt){var ut;return!!((ut=lt?.__r3f)!=null?ut:{}).handlers},prepareUpdate(lt,ut,dt,ht){var ct;if(((ct=lt?.__r3f)!=null?ct:{}).primitive&&ht.object&&ht.object!==lt)return[!0];{const{args:ft=[],children:gt,...yt}=ht,{args:Ut=[],children:Ft,...mt}=dt;if(!Array.isArray(ft))throw new Error("R3F: the args prop must be an array!");if(ft.some((At,Lt)=>At!==Ut[Lt]))return[!0];const vt=diffProps(lt,yt,mt,!0);return vt.changes.length?[!1,vt]:null}},commitUpdate(lt,[ut,dt],ht,ct,pt,ft){ut?ot(lt,ht,pt,ft):applyProps$1(lt,dt)},commitMount(lt,ut,dt,ht){var ct;const pt=(ct=lt.__r3f)!=null?ct:{};lt.raycast&&pt.handlers&&pt.eventCount&&findInitialRoot(lt).getState().internal.interaction.push(lt)},getPublicInstance:lt=>lt,prepareForCommit:()=>null,preparePortalMount:lt=>prepare$1(lt.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(lt){var ut;const{attach:dt,parent:ht}=(ut=lt.__r3f)!=null?ut:{};dt&&ht&&detach(ht,lt,dt),lt.isObject3D&&(lt.visible=!1),invalidateInstance(lt)},unhideInstance(lt,ut){var dt;const{attach:ht,parent:ct}=(dt=lt.__r3f)!=null?dt:{};ht&&ct&&attach(ct,lt,ht),(lt.isObject3D&&ut.visible==null||ut.visible)&&(lt.visible=!0),invalidateInstance(lt)},createTextInstance:st,hideTextInstance:st,unhideTextInstance:st,getCurrentEventPriority:()=>o?o():constantsExports.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&is.fun(performance.now)?performance.now:is.fun(Date.now)?Date.now:()=>0,scheduleTimeout:is.fun(setTimeout)?setTimeout:void 0,cancelTimeout:is.fun(clearTimeout)?clearTimeout:void 0}),applyProps:applyProps$1}}var _window$document,_window$navigator;const hasColorSpace=s=>"colorSpace"in s||"outputColorSpace"in s,getColorManagement=()=>{var s;return(s=catalogue.ColorManagement)!=null?s:null},isOrthographicCamera$1=s=>s&&s.isOrthographicCamera,isRef=s=>s&&s.hasOwnProperty("current"),useIsomorphicLayoutEffect$1=typeof window<"u"&&((_window$document=window.document)!=null&&_window$document.createElement||((_window$navigator=window.navigator)==null?void 0:_window$navigator.product)==="ReactNative")?reactExports.useLayoutEffect:reactExports.useEffect;function useMutableCallback(s){const o=reactExports.useRef(s);return useIsomorphicLayoutEffect$1(()=>void(o.current=s),[s]),o}function Block({set:s}){return useIsomorphicLayoutEffect$1(()=>(s(new Promise(()=>null)),()=>s(!1)),[s]),null}class ErrorBoundary extends reactExports.Component{constructor(...o){super(...o),this.state={error:!1}}componentDidCatch(o){this.props.set(o)}render(){return this.state.error?null:this.props.children}}ErrorBoundary.getDerivedStateFromError=()=>({error:!0});const DEFAULT="__default",DEFAULTS=new Map,isDiffSet=s=>s&&!!s.memoized&&!!s.changes;function calculateDpr(s){var o;const et=typeof window<"u"?(o=window.devicePixelRatio)!=null?o:2:1;return Array.isArray(s)?Math.min(Math.max(s[0],et),s[1]):s}const getRootState=s=>{var o;return(o=s.__r3f)==null?void 0:o.root.getState()};function findInitialRoot(s){let o=s.__r3f.root;for(;o.getState().previousRoot;)o=o.getState().previousRoot;return o}const is={obj:s=>s===Object(s)&&!is.arr(s)&&typeof s!="function",fun:s=>typeof s=="function",str:s=>typeof s=="string",num:s=>typeof s=="number",boo:s=>typeof s=="boolean",und:s=>s===void 0,arr:s=>Array.isArray(s),equ(s,o,{arrays:et="shallow",objects:tt="reference",strict:nt=!0}={}){if(typeof s!=typeof o||!!s!=!!o)return!1;if(is.str(s)||is.num(s)||is.boo(s))return s===o;const rt=is.obj(s);if(rt&&tt==="reference")return s===o;const it=is.arr(s);if(it&&et==="reference")return s===o;if((it||rt)&&s===o)return!0;let ot;for(ot in s)if(!(ot in o))return!1;if(rt&&et==="shallow"&&tt==="shallow"){for(ot in nt?o:s)if(!is.equ(s[ot],o[ot],{strict:nt,objects:"reference"}))return!1}else for(ot in nt?o:s)if(s[ot]!==o[ot])return!1;if(is.und(ot)){if(it&&s.length===0&&o.length===0||rt&&Object.keys(s).length===0&&Object.keys(o).length===0)return!0;if(s!==o)return!1}return!0}};function buildGraph(s){const o={nodes:{},materials:{}};return s&&s.traverse(et=>{et.name&&(o.nodes[et.name]=et),et.material&&!o.materials[et.material.name]&&(o.materials[et.material.name]=et.material)}),o}function dispose(s){s.dispose&&s.type!=="Scene"&&s.dispose();for(const o in s)o.dispose==null||o.dispose(),delete s[o]}function prepare$1(s,o){const et=s;return et.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...o},s}function resolve$1(s,o){let et=s;if(o.includes("-")){const tt=o.split("-"),nt=tt.pop();return et=tt.reduce((rt,it)=>rt[it],s),{target:et,key:nt}}else return{target:et,key:o}}const INDEX_REGEX=/-\d+$/;function attach(s,o,et){if(is.str(et)){if(INDEX_REGEX.test(et)){const rt=et.replace(INDEX_REGEX,""),{target:it,key:ot}=resolve$1(s,rt);Array.isArray(it[ot])||(it[ot]=[])}const{target:tt,key:nt}=resolve$1(s,et);o.__r3f.previousAttach=tt[nt],tt[nt]=o}else o.__r3f.previousAttach=et(s,o)}function detach(s,o,et){var tt,nt;if(is.str(et)){const{target:rt,key:it}=resolve$1(s,et),ot=o.__r3f.previousAttach;ot===void 0?delete rt[it]:rt[it]=ot}else(tt=o.__r3f)==null||tt.previousAttach==null||tt.previousAttach(s,o);(nt=o.__r3f)==null||delete nt.previousAttach}function diffProps(s,{children:o,key:et,ref:tt,...nt},{children:rt,key:it,ref:ot,...st}={},at=!1){const lt=s.__r3f,ut=Object.entries(nt),dt=[];if(at){const ct=Object.keys(st);for(let pt=0;pt{var ft;if((ft=s.__r3f)!=null&&ft.primitive&&ct==="object"||is.equ(pt,st[ct]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(ct))return dt.push([ct,pt,!0,[]]);let gt=[];ct.includes("-")&&(gt=ct.split("-")),dt.push([ct,pt,!1,gt]);for(const yt in nt){const Ut=nt[yt];yt.startsWith(`${ct}-`)&&dt.push([yt,Ut,!1,yt.split("-")])}});const ht={...nt};return lt!=null&<.memoizedProps&<!=null&<.memoizedProps.args&&(ht.args=lt.memoizedProps.args),lt!=null&<.memoizedProps&<!=null&<.memoizedProps.attach&&(ht.attach=lt.memoizedProps.attach),{memoized:ht,changes:dt}}const __DEV__=typeof process<"u"&&!1;function applyProps$1(s,o){var et;const tt=s.__r3f,nt=tt?.root,rt=nt==null||nt.getState==null?void 0:nt.getState(),{memoized:it,changes:ot}=isDiffSet(o)?o:diffProps(s,o),st=tt?.eventCount;s.__r3f&&(s.__r3f.memoizedProps=it);for(let lt=0;ltgt[yt],s),!(ft&&ft.set))){const[gt,...yt]=ct.reverse();pt=yt.reverse().reduce((Ut,Ft)=>Ut[Ft],s),ut=gt}if(dt===DEFAULT+"remove")if(pt.constructor){let gt=DEFAULTS.get(pt.constructor);gt||(gt=new pt.constructor,DEFAULTS.set(pt.constructor,gt)),dt=gt[ut]}else dt=0;if(ht&&tt)dt?tt.handlers[ut]=dt:delete tt.handlers[ut],tt.eventCount=Object.keys(tt.handlers).length;else if(ft&&ft.set&&(ft.copy||ft instanceof Layers)){if(Array.isArray(dt))ft.fromArray?ft.fromArray(dt):ft.set(...dt);else if(ft.copy&&dt&&dt.constructor&&(__DEV__?ft.constructor.name===dt.constructor.name:ft.constructor===dt.constructor))ft.copy(dt);else if(dt!==void 0){const gt=ft instanceof Color$2;!gt&&ft.setScalar?ft.setScalar(dt):ft instanceof Layers&&dt instanceof Layers?ft.mask=dt.mask:ft.set(dt),!getColorManagement()&&rt&&!rt.linear&>&&ft.convertSRGBToLinear()}}else if(pt[ut]=dt,pt[ut]instanceof Texture&&pt[ut].format===RGBAFormat&&pt[ut].type===UnsignedByteType&&rt){const gt=pt[ut];hasColorSpace(gt)&&hasColorSpace(rt.gl)?gt.colorSpace=rt.gl.outputColorSpace:gt.encoding=rt.gl.outputEncoding}invalidateInstance(s)}if(tt&&tt.parent&&s.raycast&&st!==tt.eventCount){const lt=findInitialRoot(s).getState().internal,ut=lt.interaction.indexOf(s);ut>-1&<.interaction.splice(ut,1),tt.eventCount&<.interaction.push(s)}return!(ot.length===1&&ot[0][0]==="onUpdate")&&ot.length&&(et=s.__r3f)!=null&&et.parent&&updateInstance(s),s}function invalidateInstance(s){var o,et;const tt=(o=s.__r3f)==null||(et=o.root)==null||et.getState==null?void 0:et.getState();tt&&tt.internal.frames===0&&tt.invalidate()}function updateInstance(s){s.onUpdate==null||s.onUpdate(s)}function updateCamera(s,o){s.manual||(isOrthographicCamera$1(s)?(s.left=o.width/-2,s.right=o.width/2,s.top=o.height/2,s.bottom=o.height/-2):s.aspect=o.width/o.height,s.updateProjectionMatrix(),s.updateMatrixWorld())}function makeId(s){return(s.eventObject||s.object).uuid+"/"+s.index+s.instanceId}function getEventPriority(){var s;const o=typeof self<"u"&&self||typeof window<"u"&&window;if(!o)return constantsExports.DefaultEventPriority;switch((s=o.event)==null?void 0:s.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return constantsExports.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return constantsExports.ContinuousEventPriority;default:return constantsExports.DefaultEventPriority}}function releaseInternalPointerCapture(s,o,et,tt){const nt=et.get(o);nt&&(et.delete(o),et.size===0&&(s.delete(tt),nt.target.releasePointerCapture(tt)))}function removeInteractivity(s,o){const{internal:et}=s.getState();et.interaction=et.interaction.filter(tt=>tt!==o),et.initialHits=et.initialHits.filter(tt=>tt!==o),et.hovered.forEach((tt,nt)=>{(tt.eventObject===o||tt.object===o)&&et.hovered.delete(nt)}),et.capturedMap.forEach((tt,nt)=>{releaseInternalPointerCapture(et.capturedMap,o,tt,nt)})}function createEvents(s){function o(st){const{internal:at}=s.getState(),lt=st.offsetX-at.initialClick[0],ut=st.offsetY-at.initialClick[1];return Math.round(Math.sqrt(lt*lt+ut*ut))}function et(st){return st.filter(at=>["Move","Over","Enter","Out","Leave"].some(lt=>{var ut;return(ut=at.__r3f)==null?void 0:ut.handlers["onPointer"+lt]}))}function tt(st,at){const lt=s.getState(),ut=new Set,dt=[],ht=at?at(lt.internal.interaction):lt.internal.interaction;for(let gt=0;gt{const Ut=getRootState(gt.object),Ft=getRootState(yt.object);return!Ut||!Ft?gt.distance-yt.distance:Ft.events.priority-Ut.events.priority||gt.distance-yt.distance}).filter(gt=>{const yt=makeId(gt);return ut.has(yt)?!1:(ut.add(yt),!0)});lt.events.filter&&(pt=lt.events.filter(pt,lt));for(const gt of pt){let yt=gt.object;for(;yt;){var ft;(ft=yt.__r3f)!=null&&ft.eventCount&&dt.push({...gt,eventObject:yt}),yt=yt.parent}}if("pointerId"in st&<.internal.capturedMap.has(st.pointerId))for(let gt of lt.internal.capturedMap.get(st.pointerId).values())ut.has(makeId(gt.intersection))||dt.push(gt.intersection);return dt}function nt(st,at,lt,ut){const dt=s.getState();if(st.length){const ht={stopped:!1};for(const ct of st){const pt=getRootState(ct.object)||dt,{raycaster:ft,pointer:gt,camera:yt,internal:Ut}=pt,Ft=new Vector3(gt.x,gt.y,0).unproject(yt),mt=St=>{var Tt,Bt;return(Tt=(Bt=Ut.capturedMap.get(St))==null?void 0:Bt.has(ct.eventObject))!=null?Tt:!1},vt=St=>{const Tt={intersection:ct,target:at.target};Ut.capturedMap.has(St)?Ut.capturedMap.get(St).set(ct.eventObject,Tt):Ut.capturedMap.set(St,new Map([[ct.eventObject,Tt]])),at.target.setPointerCapture(St)},At=St=>{const Tt=Ut.capturedMap.get(St);Tt&&releaseInternalPointerCapture(Ut.capturedMap,ct.eventObject,Tt,St)};let Lt={};for(let St in at){let Tt=at[St];typeof Tt!="function"&&(Lt[St]=Tt)}let Rt={...ct,...Lt,pointer:gt,intersections:st,stopped:ht.stopped,delta:lt,unprojectedPoint:Ft,ray:ft.ray,camera:yt,stopPropagation(){const St="pointerId"in at&&Ut.capturedMap.get(at.pointerId);if((!St||St.has(ct.eventObject))&&(Rt.stopped=ht.stopped=!0,Ut.hovered.size&&Array.from(Ut.hovered.values()).find(Tt=>Tt.eventObject===ct.eventObject))){const Tt=st.slice(0,st.indexOf(ct));rt([...Tt,ct])}},target:{hasPointerCapture:mt,setPointerCapture:vt,releasePointerCapture:At},currentTarget:{hasPointerCapture:mt,setPointerCapture:vt,releasePointerCapture:At},nativeEvent:at};if(ut(Rt),ht.stopped===!0)break}}return st}function rt(st){const{internal:at}=s.getState();for(const lt of at.hovered.values())if(!st.length||!st.find(ut=>ut.object===lt.object&&ut.index===lt.index&&ut.instanceId===lt.instanceId)){const dt=lt.eventObject.__r3f,ht=dt?.handlers;if(at.hovered.delete(makeId(lt)),dt!=null&&dt.eventCount){const ct={...lt,intersections:st};ht.onPointerOut==null||ht.onPointerOut(ct),ht.onPointerLeave==null||ht.onPointerLeave(ct)}}}function it(st,at){for(let lt=0;ltrt([]);case"onLostPointerCapture":return at=>{const{internal:lt}=s.getState();"pointerId"in at&<.capturedMap.has(at.pointerId)&&requestAnimationFrame(()=>{lt.capturedMap.has(at.pointerId)&&(lt.capturedMap.delete(at.pointerId),rt([]))})}}return function(lt){const{onPointerMissed:ut,internal:dt}=s.getState();dt.lastEvent.current=lt;const ht=st==="onPointerMove",ct=st==="onClick"||st==="onContextMenu"||st==="onDoubleClick",ft=tt(lt,ht?et:void 0),gt=ct?o(lt):0;st==="onPointerDown"&&(dt.initialClick=[lt.offsetX,lt.offsetY],dt.initialHits=ft.map(Ut=>Ut.eventObject)),ct&&!ft.length&><=2&&(it(lt,dt.interaction),ut&&ut(lt)),ht&&rt(ft);function yt(Ut){const Ft=Ut.eventObject,mt=Ft.__r3f,vt=mt?.handlers;if(mt!=null&&mt.eventCount)if(ht){if(vt.onPointerOver||vt.onPointerEnter||vt.onPointerOut||vt.onPointerLeave){const At=makeId(Ut),Lt=dt.hovered.get(At);Lt?Lt.stopped&&Ut.stopPropagation():(dt.hovered.set(At,Ut),vt.onPointerOver==null||vt.onPointerOver(Ut),vt.onPointerEnter==null||vt.onPointerEnter(Ut))}vt.onPointerMove==null||vt.onPointerMove(Ut)}else{const At=vt[st];At?(!ct||dt.initialHits.includes(Ft))&&(it(lt,dt.interaction.filter(Lt=>!dt.initialHits.includes(Lt))),At(Ut)):ct&&dt.initialHits.includes(Ft)&&it(lt,dt.interaction.filter(Lt=>!dt.initialHits.includes(Lt)))}}nt(ft,lt,gt,yt)}}return{handlePointer:ot}}const privateKeys=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],isRenderer=s=>!!(s!=null&&s.render),context$3=reactExports.createContext(null),createStore=(s,o)=>{const et=create$1((ot,st)=>{const at=new Vector3,lt=new Vector3,ut=new Vector3;function dt(gt=st().camera,yt=lt,Ut=st().size){const{width:Ft,height:mt,top:vt,left:At}=Ut,Lt=Ft/mt;yt instanceof Vector3?ut.copy(yt):ut.set(...yt);const Rt=gt.getWorldPosition(at).distanceTo(ut);if(isOrthographicCamera$1(gt))return{width:Ft/gt.zoom,height:mt/gt.zoom,top:vt,left:At,factor:1,distance:Rt,aspect:Lt};{const St=gt.fov*Math.PI/180,Tt=2*Math.tan(St/2)*Rt,Bt=Tt*(Ft/mt);return{width:Bt,height:Tt,top:vt,left:At,factor:Ft/Bt,distance:Rt,aspect:Lt}}}let ht;const ct=gt=>ot(yt=>({performance:{...yt.performance,current:gt}})),pt=new Vector2;return{set:ot,get:st,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(gt=1)=>s(st(),gt),advance:(gt,yt)=>o(gt,yt,st()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new Clock,pointer:pt,mouse:pt,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const gt=st();ht&&clearTimeout(ht),gt.performance.current!==gt.performance.min&&ct(gt.performance.min),ht=setTimeout(()=>ct(st().performance.max),gt.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:dt},setEvents:gt=>ot(yt=>({...yt,events:{...yt.events,...gt}})),setSize:(gt,yt,Ut,Ft,mt)=>{const vt=st().camera,At={width:gt,height:yt,top:Ft||0,left:mt||0,updateStyle:Ut};ot(Lt=>({size:At,viewport:{...Lt.viewport,...dt(vt,lt,At)}}))},setDpr:gt=>ot(yt=>{const Ut=calculateDpr(gt);return{viewport:{...yt.viewport,dpr:Ut,initialDpr:yt.viewport.initialDpr||Ut}}}),setFrameloop:(gt="always")=>{const yt=st().clock;yt.stop(),yt.elapsedTime=0,gt!=="never"&&(yt.start(),yt.elapsedTime=0),ot(()=>({frameloop:gt}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:reactExports.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(gt,yt,Ut)=>{const Ft=st().internal;return Ft.priority=Ft.priority+(yt>0?1:0),Ft.subscribers.push({ref:gt,priority:yt,store:Ut}),Ft.subscribers=Ft.subscribers.sort((mt,vt)=>mt.priority-vt.priority),()=>{const mt=st().internal;mt!=null&&mt.subscribers&&(mt.priority=mt.priority-(yt>0?1:0),mt.subscribers=mt.subscribers.filter(vt=>vt.ref!==gt))}}}}}),tt=et.getState();let nt=tt.size,rt=tt.viewport.dpr,it=tt.camera;return et.subscribe(()=>{const{camera:ot,size:st,viewport:at,gl:lt,set:ut}=et.getState();if(st.width!==nt.width||st.height!==nt.height||at.dpr!==rt){var dt;nt=st,rt=at.dpr,updateCamera(ot,st),lt.setPixelRatio(at.dpr);const ht=(dt=st.updateStyle)!=null?dt:typeof HTMLCanvasElement<"u"&<.domElement instanceof HTMLCanvasElement;lt.setSize(st.width,st.height,ht)}ot!==it&&(it=ot,ut(ht=>({viewport:{...ht.viewport,...ht.viewport.getCurrentViewport(ot)}})))}),et.subscribe(ot=>s(ot)),et};function createSubs(s,o){const et={callback:s};return o.add(et),()=>void o.delete(et)}let i$2,globalEffects=new Set,globalAfterEffects=new Set,globalTailEffects=new Set;const addEffect=s=>createSubs(s,globalEffects),addAfterEffect=s=>createSubs(s,globalAfterEffects);function run(s,o){if(s.size)for(const{callback:et}of s.values())et(o)}function flushGlobalEffects(s,o){switch(s){case"before":return run(globalEffects,o);case"after":return run(globalAfterEffects,o);case"tail":return run(globalTailEffects,o)}}let subscribers,subscription;function render$1(s,o,et){let tt=o.clock.getDelta();for(o.frameloop==="never"&&typeof s=="number"&&(tt=s-o.clock.elapsedTime,o.clock.oldTime=o.clock.elapsedTime,o.clock.elapsedTime=s),subscribers=o.internal.subscribers,i$2=0;i$20)&&!((lt=rt.gl.xr)!=null&<.isPresenting)&&(tt+=render$1(at,rt))}if(et=!1,flushGlobalEffects("after",at),tt===0)return flushGlobalEffects("tail",at),o=!1,cancelAnimationFrame(nt)}function ot(at,lt=1){var ut;if(!at)return s.forEach(dt=>ot(dt.store.getState(),lt));(ut=at.gl.xr)!=null&&ut.isPresenting||!at.internal.active||at.frameloop==="never"||(lt>1?at.internal.frames=Math.min(60,at.internal.frames+lt):et?at.internal.frames=2:at.internal.frames=1,o||(o=!0,requestAnimationFrame(it)))}function st(at,lt=!0,ut,dt){if(lt&&flushGlobalEffects("before",at),ut)render$1(at,ut,dt);else for(const ht of s.values())render$1(at,ht.store.getState());lt&&flushGlobalEffects("after",at)}return{loop:it,invalidate:ot,advance:st}}function useInstanceHandle(s){const o=reactExports.useRef(null);return useIsomorphicLayoutEffect$1(()=>void(o.current=s.current.__r3f),[s]),o}function useStore(){const s=reactExports.useContext(context$3);if(!s)throw new Error("R3F: Hooks can only be used within the Canvas component!");return s}function useThree(s=et=>et,o){return useStore()(s,o)}function useFrame(s,o=0){const et=useStore(),tt=et.getState().internal.subscribe,nt=useMutableCallback(s);return useIsomorphicLayoutEffect$1(()=>tt(nt,o,et),[o,tt,et]),null}const memoizedLoaders=new WeakMap;function loadingFn(s,o){return function(et,...tt){let nt=memoizedLoaders.get(et);return nt||(nt=new et,memoizedLoaders.set(et,nt)),s&&s(nt),Promise.all(tt.map(rt=>new Promise((it,ot)=>nt.load(rt,st=>{st.scene&&Object.assign(st,buildGraph(st.scene)),it(st)},o,st=>ot(new Error(`Could not load ${rt}: ${st?.message}`))))))}}function useLoader(s,o,et,tt){const nt=Array.isArray(o)?o:[o],rt=suspend(loadingFn(et,tt),[s,...nt],{equal:is.equ});return Array.isArray(o)?rt:rt[0]}useLoader.preload=function(s,o,et){const tt=Array.isArray(o)?o:[o];return preload(loadingFn(et),[s,...tt])};useLoader.clear=function(s,o){const et=Array.isArray(o)?o:[o];return clear([s,...et])};const roots=new Map,{invalidate,advance}=createLoop(roots),{reconciler,applyProps}=createRenderer(roots,getEventPriority),shallowLoose={objects:"shallow",strict:!1},createRendererInstance=(s,o)=>{const et=typeof s=="function"?s(o):s;return isRenderer(et)?et:new WebGLRenderer({powerPreference:"high-performance",canvas:o,antialias:!0,alpha:!0,...s})};function computeInitialSize(s,o){const et=typeof HTMLCanvasElement<"u"&&s instanceof HTMLCanvasElement;if(o){const{width:tt,height:nt,top:rt,left:it,updateStyle:ot=et}=o;return{width:tt,height:nt,top:rt,left:it,updateStyle:ot}}else if(typeof HTMLCanvasElement<"u"&&s instanceof HTMLCanvasElement&&s.parentElement){const{width:tt,height:nt,top:rt,left:it}=s.parentElement.getBoundingClientRect();return{width:tt,height:nt,top:rt,left:it,updateStyle:et}}else if(typeof OffscreenCanvas<"u"&&s instanceof OffscreenCanvas)return{width:s.width,height:s.height,top:0,left:0,updateStyle:et};return{width:0,height:0,top:0,left:0}}function createRoot(s){const o=roots.get(s),et=o?.fiber,tt=o?.store;o&&console.warn("R3F.createRoot should only be called once!");const nt=typeof reportError=="function"?reportError:console.error,rt=tt||createStore(invalidate,advance),it=et||reconciler.createContainer(rt,constantsExports.ConcurrentRoot,null,!1,null,"",nt,null);o||roots.set(s,{fiber:it,store:rt});let ot,st=!1,at;return{configure(lt={}){let{gl:ut,size:dt,scene:ht,events:ct,onCreated:pt,shadows:ft=!1,linear:gt=!1,flat:yt=!1,legacy:Ut=!1,orthographic:Ft=!1,frameloop:mt="always",dpr:vt=[1,2],performance:At,raycaster:Lt,camera:Rt,onPointerMissed:St}=lt,Tt=rt.getState(),Bt=Tt.gl;Tt.gl||Tt.set({gl:Bt=createRendererInstance(ut,s)});let xt=Tt.raycaster;xt||Tt.set({raycaster:xt=new Raycaster});const{params:Ct,...kt}=Lt||{};if(is.equ(kt,xt,shallowLoose)||applyProps(xt,{...kt}),is.equ(Ct,xt.params,shallowLoose)||applyProps(xt,{params:{...xt.params,...Ct}}),!Tt.camera||Tt.camera===at&&!is.equ(at,Rt,shallowLoose)){at=Rt;const Et=Rt instanceof Camera,Pt=Et?Rt:Ft?new OrthographicCamera(0,0,0,0,.1,1e3):new PerspectiveCamera$1(75,0,.1,1e3);Et||(Pt.position.z=5,Rt&&(applyProps(Pt,Rt),("aspect"in Rt||"left"in Rt||"right"in Rt||"bottom"in Rt||"top"in Rt)&&(Pt.manual=!0,Pt.updateProjectionMatrix())),!Tt.camera&&!(Rt!=null&&Rt.rotation)&&Pt.lookAt(0,0,0)),Tt.set({camera:Pt}),xt.camera=Pt}if(!Tt.scene){let Et;ht instanceof Scene?Et=ht:(Et=new Scene,ht&&applyProps(Et,ht)),Tt.set({scene:prepare$1(Et)})}if(!Tt.xr){var Nt;const Et=(en,Kt)=>{const nn=rt.getState();nn.frameloop!=="never"&&advance(en,!0,nn,Kt)},Pt=()=>{const en=rt.getState();en.gl.xr.enabled=en.gl.xr.isPresenting,en.gl.xr.setAnimationLoop(en.gl.xr.isPresenting?Et:null),en.gl.xr.isPresenting||invalidate(en)},zt={connect(){const en=rt.getState().gl;en.xr.addEventListener("sessionstart",Pt),en.xr.addEventListener("sessionend",Pt)},disconnect(){const en=rt.getState().gl;en.xr.removeEventListener("sessionstart",Pt),en.xr.removeEventListener("sessionend",Pt)}};typeof((Nt=Bt.xr)==null?void 0:Nt.addEventListener)=="function"&&zt.connect(),Tt.set({xr:zt})}if(Bt.shadowMap){const Et=Bt.shadowMap.enabled,Pt=Bt.shadowMap.type;if(Bt.shadowMap.enabled=!!ft,is.boo(ft))Bt.shadowMap.type=PCFSoftShadowMap;else if(is.str(ft)){var Ot;const zt={basic:BasicShadowMap,percentage:PCFShadowMap,soft:PCFSoftShadowMap,variance:VSMShadowMap};Bt.shadowMap.type=(Ot=zt[ft])!=null?Ot:PCFSoftShadowMap}else is.obj(ft)&&Object.assign(Bt.shadowMap,ft);(Et!==Bt.shadowMap.enabled||Pt!==Bt.shadowMap.type)&&(Bt.shadowMap.needsUpdate=!0)}const Jt=getColorManagement();Jt&&("enabled"in Jt?Jt.enabled=!Ut:"legacyMode"in Jt&&(Jt.legacyMode=Ut)),st||applyProps(Bt,{outputEncoding:gt?3e3:3001,toneMapping:yt?NoToneMapping:ACESFilmicToneMapping}),Tt.legacy!==Ut&&Tt.set(()=>({legacy:Ut})),Tt.linear!==gt&&Tt.set(()=>({linear:gt})),Tt.flat!==yt&&Tt.set(()=>({flat:yt})),ut&&!is.fun(ut)&&!isRenderer(ut)&&!is.equ(ut,Bt,shallowLoose)&&applyProps(Bt,ut),ct&&!Tt.events.handlers&&Tt.set({events:ct(rt)});const Dt=computeInitialSize(s,dt);return is.equ(Dt,Tt.size,shallowLoose)||Tt.setSize(Dt.width,Dt.height,Dt.updateStyle,Dt.top,Dt.left),vt&&Tt.viewport.dpr!==calculateDpr(vt)&&Tt.setDpr(vt),Tt.frameloop!==mt&&Tt.setFrameloop(mt),Tt.onPointerMissed||Tt.set({onPointerMissed:St}),At&&!is.equ(At,Tt.performance,shallowLoose)&&Tt.set(Et=>({performance:{...Et.performance,...At}})),ot=pt,st=!0,this},render(lt){return st||this.configure(),reconciler.updateContainer(jsx$2(Provider,{store:rt,children:lt,onCreated:ot,rootElement:s}),it,null,()=>{}),rt},unmount(){unmountComponentAtNode(s)}}}function Provider({store:s,children:o,onCreated:et,rootElement:tt}){return useIsomorphicLayoutEffect$1(()=>{const nt=s.getState();nt.set(rt=>({internal:{...rt.internal,active:!0}})),et&&et(nt),s.getState().events.connected||nt.events.connect==null||nt.events.connect(tt)},[]),jsx$2(context$3.Provider,{value:s,children:o})}function unmountComponentAtNode(s,o){const et=roots.get(s),tt=et?.fiber;if(tt){const nt=et?.store.getState();nt&&(nt.internal.active=!1),reconciler.updateContainer(null,tt,null,()=>{nt&&setTimeout(()=>{try{var rt,it,ot,st;nt.events.disconnect==null||nt.events.disconnect(),(rt=nt.gl)==null||(it=rt.renderLists)==null||it.dispose==null||it.dispose(),(ot=nt.gl)==null||ot.forceContextLoss==null||ot.forceContextLoss(),(st=nt.gl)!=null&&st.xr&&nt.xr.disconnect(),dispose(nt),roots.delete(s),o&&o(s)}catch{}},500)})}}function createPortal(s,o,et){return jsx$2(Portal,{children:s,container:o,state:et},o.uuid)}function Portal({state:s={},children:o,container:et}){const{events:tt,size:nt,...rt}=s,it=useStore(),[ot]=reactExports.useState(()=>new Raycaster),[st]=reactExports.useState(()=>new Vector2),at=reactExports.useCallback((ut,dt)=>{const ht={...ut};Object.keys(ut).forEach(pt=>{(privateKeys.includes(pt)||ut[pt]!==dt[pt]&&dt[pt])&&delete ht[pt]});let ct;if(dt&&nt){const pt=dt.camera;ct=ut.viewport.getCurrentViewport(pt,new Vector3,nt),pt!==ut.camera&&updateCamera(pt,nt)}return{...ht,scene:et,raycaster:ot,pointer:st,mouse:st,previousRoot:it,events:{...ut.events,...dt?.events,...tt},size:{...ut.size,...nt},viewport:{...ut.viewport,...ct},...rt}},[s]),[lt]=reactExports.useState(()=>{const ut=it.getState();return create$1((ht,ct)=>({...ut,scene:et,raycaster:ot,pointer:st,mouse:st,previousRoot:it,events:{...ut.events,...tt},size:{...ut.size,...nt},...rt,set:ht,get:ct,setEvents:pt=>ht(ft=>({...ft,events:{...ft.events,...pt}}))}))});return reactExports.useEffect(()=>{const ut=it.subscribe(dt=>lt.setState(ht=>at(dt,ht)));return()=>{ut()}},[at]),reactExports.useEffect(()=>{lt.setState(ut=>at(it.getState(),ut))},[at]),reactExports.useEffect(()=>()=>{lt.destroy()},[]),jsx$2(Fragment$2,{children:reconciler.createPortal(jsx$2(context$3.Provider,{value:lt,children:o}),lt,null)})}reconciler.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:reactExports.version});function debounce(s,o,et){var tt,nt,rt,it,ot;o==null&&(o=100);function st(){var lt=Date.now()-it;lt=0?tt=setTimeout(st,o-lt):(tt=null,et||(ot=s.apply(rt,nt),rt=nt=null))}var at=function(){rt=this,nt=arguments,it=Date.now();var lt=et&&!tt;return tt||(tt=setTimeout(st,o)),lt&&(ot=s.apply(rt,nt),rt=nt=null),ot};return at.clear=function(){tt&&(clearTimeout(tt),tt=null)},at.flush=function(){tt&&(ot=s.apply(rt,nt),rt=nt=null,clearTimeout(tt),tt=null)},at}debounce.debounce=debounce;var debounce_1=debounce;const createDebounce=getDefaultExportFromCjs$1(debounce_1);function useMeasure(s){let{debounce:o,scroll:et,polyfill:tt,offsetSize:nt}=s===void 0?{debounce:0,scroll:!1,offsetSize:!1}:s;const rt=tt||(typeof window>"u"?class{}:window.ResizeObserver);if(!rt)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[it,ot]=reactExports.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),st=reactExports.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:it}),at=o?typeof o=="number"?o:o.scroll:null,lt=o?typeof o=="number"?o:o.resize:null,ut=reactExports.useRef(!1);reactExports.useEffect(()=>(ut.current=!0,()=>void(ut.current=!1)));const[dt,ht,ct]=reactExports.useMemo(()=>{const yt=()=>{if(!st.current.element)return;const{left:Ut,top:Ft,width:mt,height:vt,bottom:At,right:Lt,x:Rt,y:St}=st.current.element.getBoundingClientRect(),Tt={left:Ut,top:Ft,width:mt,height:vt,bottom:At,right:Lt,x:Rt,y:St};st.current.element instanceof HTMLElement&&nt&&(Tt.height=st.current.element.offsetHeight,Tt.width=st.current.element.offsetWidth),Object.freeze(Tt),ut.current&&!areBoundsEqual(st.current.lastBounds,Tt)&&ot(st.current.lastBounds=Tt)};return[yt,lt?createDebounce(yt,lt):yt,at?createDebounce(yt,at):yt]},[ot,nt,at,lt]);function pt(){st.current.scrollContainers&&(st.current.scrollContainers.forEach(yt=>yt.removeEventListener("scroll",ct,!0)),st.current.scrollContainers=null),st.current.resizeObserver&&(st.current.resizeObserver.disconnect(),st.current.resizeObserver=null)}function ft(){st.current.element&&(st.current.resizeObserver=new rt(ct),st.current.resizeObserver.observe(st.current.element),et&&st.current.scrollContainers&&st.current.scrollContainers.forEach(yt=>yt.addEventListener("scroll",ct,{capture:!0,passive:!0})))}const gt=yt=>{!yt||yt===st.current.element||(pt(),st.current.element=yt,st.current.scrollContainers=findScrollContainers(yt),ft())};return useOnWindowScroll(ct,!!et),useOnWindowResize(ht),reactExports.useEffect(()=>{pt(),ft()},[et,ct,ht]),reactExports.useEffect(()=>pt,[]),[gt,it,dt]}function useOnWindowResize(s){reactExports.useEffect(()=>{const o=s;return window.addEventListener("resize",o),()=>void window.removeEventListener("resize",o)},[s])}function useOnWindowScroll(s,o){reactExports.useEffect(()=>{if(o){const et=s;return window.addEventListener("scroll",et,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",et,!0)}},[s,o])}function findScrollContainers(s){const o=[];if(!s||s===document.body)return o;const{overflow:et,overflowX:tt,overflowY:nt}=window.getComputedStyle(s);return[et,tt,nt].some(rt=>rt==="auto"||rt==="scroll")&&o.push(s),[...o,...findScrollContainers(s.parentElement)]}const keys=["x","y","top","bottom","left","right","width","height"],areBoundsEqual=(s,o)=>keys.every(et=>s[et]===o[et]);var __defProp$4=Object.defineProperty,__defProps$2=Object.defineProperties,__getOwnPropDescs$2=Object.getOwnPropertyDescriptors,__getOwnPropSymbols$2=Object.getOwnPropertySymbols,__hasOwnProp$2=Object.prototype.hasOwnProperty,__propIsEnum$2=Object.prototype.propertyIsEnumerable,__defNormalProp$4=(s,o,et)=>o in s?__defProp$4(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,__spreadValues$2=(s,o)=>{for(var et in o||(o={}))__hasOwnProp$2.call(o,et)&&__defNormalProp$4(s,et,o[et]);if(__getOwnPropSymbols$2)for(var et of __getOwnPropSymbols$2(o))__propIsEnum$2.call(o,et)&&__defNormalProp$4(s,et,o[et]);return s},__spreadProps$2=(s,o)=>__defProps$2(s,__getOwnPropDescs$2(o));function traverseFiber(s,o,et){if(!s)return;if(et(s)===!0)return s;let tt=o?s.return:s.child;for(;tt;){const nt=traverseFiber(tt,o,et);if(nt)return nt;tt=o?null:tt.sibling}}function wrapContext(s){try{return Object.defineProperties(s,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return s}}const FiberContext=wrapContext(reactExports.createContext(null));class FiberProvider extends reactExports.Component{render(){return reactExports.createElement(FiberContext.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner,ReactCurrentDispatcher}=reactExports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function useFiber(){const s=reactExports.useContext(FiberContext);if(s===null)throw new Error("its-fine: useFiber must be called within a !");const o=reactExports.useId();return reactExports.useMemo(()=>{for(const tt of[ReactCurrentOwner?.current,s,s?.alternate]){if(!tt)continue;const nt=traverseFiber(tt,!1,rt=>{let it=rt.memoizedState;for(;it;){if(it.memoizedState===o)return!0;it=it.next}});if(nt)return nt}},[s,o])}function useContextMap(){var s,o;const et=useFiber(),[tt]=reactExports.useState(()=>new Map);tt.clear();let nt=et;for(;nt;){const rt=(s=nt.type)==null?void 0:s._context;rt&&rt!==FiberContext&&!tt.has(rt)&&tt.set(rt,(o=ReactCurrentDispatcher?.current)==null?void 0:o.readContext(wrapContext(rt))),nt=nt.return}return tt}function useContextBridge(){const s=useContextMap();return reactExports.useMemo(()=>Array.from(s.keys()).reduce((o,et)=>tt=>reactExports.createElement(o,null,reactExports.createElement(et.Provider,__spreadProps$2(__spreadValues$2({},tt),{value:s.get(et)}))),o=>reactExports.createElement(FiberProvider,__spreadValues$2({},o))),[s])}const DOM_EVENTS={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function createPointerEvents(s){const{handlePointer:o}=createEvents(s);return{priority:1,enabled:!0,compute(et,tt,nt){tt.pointer.set(et.offsetX/tt.size.width*2-1,-(et.offsetY/tt.size.height)*2+1),tt.raycaster.setFromCamera(tt.pointer,tt.camera)},connected:void 0,handlers:Object.keys(DOM_EVENTS).reduce((et,tt)=>({...et,[tt]:o(tt)}),{}),update:()=>{var et;const{events:tt,internal:nt}=s.getState();(et=nt.lastEvent)!=null&&et.current&&tt.handlers&&tt.handlers.onPointerMove(nt.lastEvent.current)},connect:et=>{var tt;const{set:nt,events:rt}=s.getState();rt.disconnect==null||rt.disconnect(),nt(it=>({events:{...it.events,connected:et}})),Object.entries((tt=rt.handlers)!=null?tt:[]).forEach(([it,ot])=>{const[st,at]=DOM_EVENTS[it];et.addEventListener(st,ot,{passive:at})})},disconnect:()=>{const{set:et,events:tt}=s.getState();if(tt.connected){var nt;Object.entries((nt=tt.handlers)!=null?nt:[]).forEach(([rt,it])=>{if(tt&&tt.connected instanceof HTMLElement){const[ot]=DOM_EVENTS[rt];tt.connected.removeEventListener(ot,it)}}),et(rt=>({events:{...rt.events,connected:void 0}}))}}}}const CanvasImpl=reactExports.forwardRef(function({children:o,fallback:et,resize:tt,style:nt,gl:rt,events:it=createPointerEvents,eventSource:ot,eventPrefix:st,shadows:at,linear:lt,flat:ut,legacy:dt,orthographic:ht,frameloop:ct,dpr:pt,performance:ft,raycaster:gt,camera:yt,scene:Ut,onPointerMissed:Ft,onCreated:mt,...vt},At){reactExports.useMemo(()=>extend(THREE$1),[]);const Lt=useContextBridge(),[Rt,St]=useMeasure({scroll:!0,debounce:{scroll:50,resize:0},...tt}),Tt=reactExports.useRef(null),Bt=reactExports.useRef(null);reactExports.useImperativeHandle(At,()=>Tt.current);const xt=useMutableCallback(Ft),[Ct,kt]=reactExports.useState(!1),[Nt,Ot]=reactExports.useState(!1);if(Ct)throw Ct;if(Nt)throw Nt;const Jt=reactExports.useRef(null);return useIsomorphicLayoutEffect$1(()=>{const Et=Tt.current;St.width>0&&St.height>0&&Et&&(Jt.current||(Jt.current=createRoot(Et)),Jt.current.configure({gl:rt,events:it,shadows:at,linear:lt,flat:ut,legacy:dt,orthographic:ht,frameloop:ct,dpr:pt,performance:ft,raycaster:gt,camera:yt,scene:Ut,size:St,onPointerMissed:(...Pt)=>xt.current==null?void 0:xt.current(...Pt),onCreated:Pt=>{Pt.events.connect==null||Pt.events.connect(ot?isRef(ot)?ot.current:ot:Bt.current),st&&Pt.setEvents({compute:(zt,en)=>{const Kt=zt[st+"X"],nn=zt[st+"Y"];en.pointer.set(Kt/en.size.width*2-1,-(nn/en.size.height)*2+1),en.raycaster.setFromCamera(en.pointer,en.camera)}}),mt?.(Pt)}}),Jt.current.render(jsx$2(Lt,{children:jsx$2(ErrorBoundary,{set:Ot,children:jsx$2(reactExports.Suspense,{fallback:jsx$2(Block,{set:kt}),children:o})})})))}),reactExports.useEffect(()=>{const Et=Tt.current;if(Et)return()=>unmountComponentAtNode(Et)},[]),jsx$2("div",{ref:Bt,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:ot?"none":"auto",...nt},...vt,children:jsx$2("div",{ref:Rt,style:{width:"100%",height:"100%"},children:jsx$2("canvas",{ref:Tt,style:{display:"block"},children:et})})})}),Canvas=reactExports.forwardRef(function(o,et){return jsx$2(FiberProvider,{children:jsx$2(CanvasImpl,{...o,ref:et})})});function _extends$2(){return _extends$2=Object.assign?Object.assign.bind():function(s){for(var o=1;oMath.PI/2}function isObjectVisible(s,o,et,tt){const nt=v1$1.setFromMatrixPosition(s.matrixWorld),rt=nt.clone();rt.project(o),v4$1.set(rt.x,rt.y),et.setFromCamera(v4$1,o);const it=et.intersectObjects(tt,!0);if(it.length){const ot=it[0].distance;return nt.distanceTo(et.ray.origin)Math.abs(s)<1e-10?0:s;function getCSSMatrix(s,o,et=""){let tt="matrix3d(";for(let nt=0;nt!==16;nt++)tt+=epsilon(o[nt]*s.elements[nt])+(nt!==15?",":")");return et+tt}const getCameraCSSMatrix=(s=>o=>getCSSMatrix(o,s))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),getObjectCSSMatrix=(s=>(o,et)=>getCSSMatrix(o,s(et),"translate(-50%,-50%)"))(s=>[1/s,1/s,1/s,1,-1/s,-1/s,-1/s,-1,1/s,1/s,1/s,1,1,1,1,1]);function isRefObject(s){return s&&typeof s=="object"&&"current"in s}const Html=reactExports.forwardRef(({children:s,eps:o=.001,style:et,className:tt,prepend:nt,center:rt,fullscreen:it,portal:ot,distanceFactor:st,sprite:at=!1,transform:lt=!1,occlude:ut,onOcclude:dt,castShadow:ht,receiveShadow:ct,material:pt,geometry:ft,zIndexRange:gt=[16777271,0],calculatePosition:yt=defaultCalculatePosition,as:Ut="div",wrapperClass:Ft,pointerEvents:mt="auto",...vt},At)=>{const{gl:Lt,camera:Rt,scene:St,size:Tt,raycaster:Bt,events:xt,viewport:Ct}=useThree(),[kt]=reactExports.useState(()=>document.createElement(Ut)),Nt=reactExports.useRef(),Ot=reactExports.useRef(null),Jt=reactExports.useRef(0),Dt=reactExports.useRef([0,0]),Et=reactExports.useRef(null),Pt=reactExports.useRef(null),zt=ot?.current||xt.connected||Lt.domElement.parentNode,en=reactExports.useRef(null),Kt=reactExports.useRef(!1),nn=reactExports.useMemo(()=>ut&&ut!=="blending"||Array.isArray(ut)&&ut.length&&isRefObject(ut[0]),[ut]);reactExports.useLayoutEffect(()=>{const $t=Lt.domElement;ut&&ut==="blending"?($t.style.zIndex=`${Math.floor(gt[0]/2)}`,$t.style.position="absolute",$t.style.pointerEvents="none"):($t.style.zIndex=null,$t.style.position=null,$t.style.pointerEvents=null)},[ut]),reactExports.useLayoutEffect(()=>{if(Ot.current){const $t=Nt.current=createRoot$1(kt);if(St.updateMatrixWorld(),lt)kt.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const Ht=yt(Ot.current,Rt,Tt);kt.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${Ht[0]}px,${Ht[1]}px,0);transform-origin:0 0;`}return zt&&(nt?zt.prepend(kt):zt.appendChild(kt)),()=>{zt&&zt.removeChild(kt),$t.unmount()}}},[zt,lt]),reactExports.useLayoutEffect(()=>{Ft&&(kt.className=Ft)},[Ft]);const Zt=reactExports.useMemo(()=>lt?{position:"absolute",top:0,left:0,width:Tt.width,height:Tt.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:rt?"translate3d(-50%,-50%,0)":"none",...it&&{top:-Tt.height/2,left:-Tt.width/2,width:Tt.width,height:Tt.height},...et},[et,rt,it,Tt,lt]),jt=reactExports.useMemo(()=>({position:"absolute",pointerEvents:mt}),[mt]);reactExports.useLayoutEffect(()=>{if(Kt.current=!1,lt){var $t;($t=Nt.current)==null||$t.render(reactExports.createElement("div",{ref:Et,style:Zt},reactExports.createElement("div",{ref:Pt,style:jt},reactExports.createElement("div",{ref:At,className:tt,style:et,children:s}))))}else{var Ht;(Ht=Nt.current)==null||Ht.render(reactExports.createElement("div",{ref:At,style:Zt,className:tt,children:s}))}});const Vt=reactExports.useRef(!0);useFrame($t=>{if(Ot.current){Rt.updateMatrixWorld(),Ot.current.updateWorldMatrix(!0,!1);const Ht=lt?Dt.current:yt(Ot.current,Rt,Tt);if(lt||Math.abs(Jt.current-Rt.zoom)>o||Math.abs(Dt.current[0]-Ht[0])>o||Math.abs(Dt.current[1]-Ht[1])>o){const qt=isObjectBehindCamera(Ot.current,Rt);let on=!1;nn&&(Array.isArray(ut)?on=ut.map(Fn=>Fn.current):ut!=="blending"&&(on=[St]));const Xt=Vt.current;if(on){const Fn=isObjectVisible(Ot.current,Rt,Bt,on);Vt.current=Fn&&!qt}else Vt.current=!qt;Xt!==Vt.current&&(dt?dt(!Vt.current):kt.style.display=Vt.current?"block":"none");const dn=Math.floor(gt[0]/2),_n=ut?nn?[gt[0],dn]:[dn-1,0]:gt;if(kt.style.zIndex=`${objectZIndex(Ot.current,Rt,_n)}`,lt){const[Fn,Un]=[Tt.width/2,Tt.height/2],On=Rt.projectionMatrix.elements[5]*Un,{isOrthographicCamera:gn,top:hn,left:wn,bottom:Zn,right:Pn}=Rt,$n=getCameraCSSMatrix(Rt.matrixWorldInverse),Tr=gn?`scale(${On})translate(${epsilon(-(Pn+wn)/2)}px,${epsilon((hn+Zn)/2)}px)`:`translateZ(${On}px)`;let Qr=Ot.current.matrixWorld;at&&(Qr=Rt.matrixWorldInverse.clone().transpose().copyPosition(Qr).scale(Ot.current.scale),Qr.elements[3]=Qr.elements[7]=Qr.elements[11]=0,Qr.elements[15]=1),kt.style.width=Tt.width+"px",kt.style.height=Tt.height+"px",kt.style.perspective=gn?"":`${On}px`,Et.current&&Pt.current&&(Et.current.style.transform=`${Tr}${$n}translate(${Fn}px,${Un}px)`,Pt.current.style.transform=getObjectCSSMatrix(Qr,1/((st||10)/400)))}else{const Fn=st===void 0?1:objectScale(Ot.current,Rt)*st;kt.style.transform=`translate3d(${Ht[0]}px,${Ht[1]}px,0) scale(${Fn})`}Dt.current=Ht,Jt.current=Rt.zoom}}if(!nn&&en.current&&!Kt.current)if(lt){if(Et.current){const Ht=Et.current.children[0];if(Ht!=null&&Ht.clientWidth&&Ht!=null&&Ht.clientHeight){const{isOrthographicCamera:qt}=Rt;if(qt||ft)vt.scale&&(Array.isArray(vt.scale)?vt.scale instanceof Vector3?en.current.scale.copy(vt.scale.clone().divideScalar(1)):en.current.scale.set(1/vt.scale[0],1/vt.scale[1],1/vt.scale[2]):en.current.scale.setScalar(1/vt.scale));else{const on=(st||10)/400,Xt=Ht.clientWidth*on,dn=Ht.clientHeight*on;en.current.scale.set(Xt,dn,1)}Kt.current=!0}}}else{const Ht=kt.children[0];if(Ht!=null&&Ht.clientWidth&&Ht!=null&&Ht.clientHeight){const qt=1/Ct.factor,on=Ht.clientWidth*qt,Xt=Ht.clientHeight*qt;en.current.scale.set(on,Xt,1),Kt.current=!0}en.current.lookAt($t.camera.position)}});const It=reactExports.useMemo(()=>({vertexShader:lt?void 0:` /* This shader is from the THREE's SpriteMaterial. We need to turn the backing plane into a Sprite @@ -4323,7 +4323,7 @@ No matching component was found for: * https://github.com/yomotsu/camera-controls * (c) 2017 @yomotsu * Released under the MIT License. - */const MOUSE_BUTTON={LEFT:1,RIGHT:2,MIDDLE:4},ACTION=Object.freeze({NONE:0,ROTATE:1,TRUCK:2,OFFSET:4,DOLLY:8,ZOOM:16,TOUCH_ROTATE:32,TOUCH_TRUCK:64,TOUCH_OFFSET:128,TOUCH_DOLLY:256,TOUCH_ZOOM:512,TOUCH_DOLLY_TRUCK:1024,TOUCH_DOLLY_OFFSET:2048,TOUCH_DOLLY_ROTATE:4096,TOUCH_ZOOM_TRUCK:8192,TOUCH_ZOOM_OFFSET:16384,TOUCH_ZOOM_ROTATE:32768}),DOLLY_DIRECTION={NONE:0,IN:1,OUT:-1};function isPerspectiveCamera(s){return s.isPerspectiveCamera}function isOrthographicCamera(s){return s.isOrthographicCamera}const PI_2=Math.PI*2,PI_HALF=Math.PI/2,EPSILON$1=1e-5,DEG2RAD=Math.PI/180;function clamp$3(s,o,et){return Math.max(o,Math.min(et,s))}function approxZero(s,o=EPSILON$1){return Math.abs(s)0==ht>lt&&(ht=lt,et.value=(ht-lt)/rt),ht}function smoothDampVec3(s,o,et,tt,nt=1/0,rt,it){tt=Math.max(1e-4,tt);const ot=2/tt,st=ot*rt,at=1/(1+st+.48*st*st+.235*st*st*st);let lt=o.x,ut=o.y,dt=o.z,ht=s.x-lt,ct=s.y-ut,pt=s.z-dt;const ft=lt,gt=ut,yt=dt,Ut=nt*tt,Ft=Ut*Ut,mt=ht*ht+ct*ct+pt*pt;if(mt>Ft){const kt=Math.sqrt(mt);ht=ht/kt*Ut,ct=ct/kt*Ut,pt=pt/kt*Ut}lt=s.x-ht,ut=s.y-ct,dt=s.z-pt;const vt=(et.x+ot*ht)*rt,At=(et.y+ot*ct)*rt,Lt=(et.z+ot*pt)*rt;et.x=(et.x-ot*vt)*at,et.y=(et.y-ot*At)*at,et.z=(et.z-ot*Lt)*at,it.x=lt+(ht+vt)*at,it.y=ut+(ct+At)*at,it.z=dt+(pt+Lt)*at;const Rt=ft-s.x,St=gt-s.y,Tt=yt-s.z,Bt=it.x-ft,xt=it.y-gt,Ct=it.z-yt;return Rt*Bt+St*xt+Tt*Ct>0&&(it.x=ft,it.y=gt,it.z=yt,et.x=(it.x-ft)/rt,et.y=(it.y-gt)/rt,et.z=(it.z-yt)/rt),it}function extractClientCoordFromEvent(s,o){o.set(0,0),s.forEach(et=>{o.x+=et.clientX,o.y+=et.clientY}),o.x/=s.length,o.y/=s.length}function notSupportedInOrthographicCamera(s,o){return isOrthographicCamera(s)?(console.warn(`${o} is not supported in OrthographicCamera`),!0):!1}class EventDispatcher{constructor(){this._listeners={}}addEventListener(o,et){const tt=this._listeners;tt[o]===void 0&&(tt[o]=[]),tt[o].indexOf(et)===-1&&tt[o].push(et)}hasEventListener(o,et){const tt=this._listeners;return tt[o]!==void 0&&tt[o].indexOf(et)!==-1}removeEventListener(o,et){const nt=this._listeners[o];if(nt!==void 0){const rt=nt.indexOf(et);rt!==-1&&nt.splice(rt,1)}}removeAllEventListeners(o){if(!o){this._listeners={};return}Array.isArray(this._listeners[o])&&(this._listeners[o].length=0)}dispatchEvent(o){const tt=this._listeners[o.type];if(tt!==void 0){o.target=this;const nt=tt.slice(0);for(let rt=0,it=nt.length;rt{},this._enabled=!0,this._state=ACTION.NONE,this._viewport=null,this._changedDolly=0,this._changedZoom=0,this._hasRested=!0,this._boundaryEnclosesCamera=!1,this._needsUpdate=!0,this._updatedLastTime=!1,this._elementRect=new DOMRect,this._isDragging=!1,this._dragNeedsUpdate=!0,this._activePointers=[],this._lockedPointer=null,this._interactiveArea=new DOMRect(0,0,1,1),this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._isUserControllingOffset=!1,this._isUserControllingZoom=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._thetaVelocity={value:0},this._phiVelocity={value:0},this._radiusVelocity={value:0},this._targetVelocity=new THREE.Vector3,this._focalOffsetVelocity=new THREE.Vector3,this._zoomVelocity={value:0},this._truckInternal=(Ft,mt,vt)=>{let At,Lt;if(isPerspectiveCamera(this._camera)){const Rt=_v3A.copy(this._camera.position).sub(this._target),St=this._camera.getEffectiveFOV()*DEG2RAD,Tt=Rt.length()*Math.tan(St*.5);At=this.truckSpeed*Ft*Tt/this._elementRect.height,Lt=this.truckSpeed*mt*Tt/this._elementRect.height}else if(isOrthographicCamera(this._camera)){const Rt=this._camera;At=Ft*(Rt.right-Rt.left)/Rt.zoom/this._elementRect.width,Lt=mt*(Rt.top-Rt.bottom)/Rt.zoom/this._elementRect.height}else return;this.verticalDragToForward?(vt?this.setFocalOffset(this._focalOffsetEnd.x+At,this._focalOffsetEnd.y,this._focalOffsetEnd.z,!0):this.truck(At,0,!0),this.forward(-Lt,!0)):vt?this.setFocalOffset(this._focalOffsetEnd.x+At,this._focalOffsetEnd.y+Lt,this._focalOffsetEnd.z,!0):this.truck(At,Lt,!0)},this._rotateInternal=(Ft,mt)=>{const vt=PI_2*this.azimuthRotateSpeed*Ft/this._elementRect.height,At=PI_2*this.polarRotateSpeed*mt/this._elementRect.height;this.rotate(vt,At,!0)},this._dollyInternal=(Ft,mt,vt)=>{const At=Math.pow(.95,-Ft*this.dollySpeed),Lt=this._sphericalEnd.radius,Rt=this._sphericalEnd.radius*At,St=clamp$3(Rt,this.minDistance,this.maxDistance),Tt=St-Rt;this.infinityDolly&&this.dollyToCursor?this._dollyToNoClamp(Rt,!0):this.infinityDolly&&!this.dollyToCursor?(this.dollyInFixed(Tt,!0),this._dollyToNoClamp(St,!0)):this._dollyToNoClamp(St,!0),this.dollyToCursor&&(this._changedDolly+=(this.infinityDolly?Rt:St)-Lt,this._dollyControlCoord.set(mt,vt)),this._lastDollyDirection=Math.sign(-Ft)},this._zoomInternal=(Ft,mt,vt)=>{const At=Math.pow(.95,Ft*this.dollySpeed),Lt=this._zoom,Rt=this._zoom*At;this.zoomTo(Rt,!0),this.dollyToCursor&&(this._changedZoom+=Rt-Lt,this._dollyControlCoord.set(mt,vt))},typeof THREE>"u"&&console.error("camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information."),this._camera=o,this._yAxisUpSpace=new THREE.Quaternion().setFromUnitVectors(this._camera.up,_AXIS_Y),this._yAxisUpSpaceInverse=this._yAxisUpSpace.clone().invert(),this._state=ACTION.NONE,this._target=new THREE.Vector3,this._targetEnd=this._target.clone(),this._focalOffset=new THREE.Vector3,this._focalOffsetEnd=this._focalOffset.clone(),this._spherical=new THREE.Spherical().setFromVector3(_v3A.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace)),this._sphericalEnd=this._spherical.clone(),this._lastDistance=this._spherical.radius,this._zoom=this._camera.zoom,this._zoomEnd=this._zoom,this._lastZoom=this._zoom,this._nearPlaneCorners=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3],this._updateNearPlaneCorners(),this._boundary=new THREE.Box3(new THREE.Vector3(-1/0,-1/0,-1/0),new THREE.Vector3(1/0,1/0,1/0)),this._cameraUp0=this._camera.up.clone(),this._target0=this._target.clone(),this._position0=this._camera.position.clone(),this._zoom0=this._zoom,this._focalOffset0=this._focalOffset.clone(),this._dollyControlCoord=new THREE.Vector2,this.mouseButtons={left:ACTION.ROTATE,middle:ACTION.DOLLY,right:ACTION.TRUCK,wheel:isPerspectiveCamera(this._camera)?ACTION.DOLLY:isOrthographicCamera(this._camera)?ACTION.ZOOM:ACTION.NONE},this.touches={one:ACTION.TOUCH_ROTATE,two:isPerspectiveCamera(this._camera)?ACTION.TOUCH_DOLLY_TRUCK:isOrthographicCamera(this._camera)?ACTION.TOUCH_ZOOM_TRUCK:ACTION.NONE,three:ACTION.TOUCH_TRUCK};const tt=new THREE.Vector2,nt=new THREE.Vector2,rt=new THREE.Vector2,it=Ft=>{if(!this._enabled||!this._domElement)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const At=this._domElement.getBoundingClientRect(),Lt=Ft.clientX/At.width,Rt=Ft.clientY/At.height;if(Ltthis._interactiveArea.right||Rtthis._interactiveArea.bottom)return}const mt=Ft.pointerType!=="mouse"?null:(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE?MOUSE_BUTTON.MIDDLE:(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT?MOUSE_BUTTON.RIGHT:null;if(mt!==null){const At=this._findPointerByMouseButton(mt);At&&this._disposePointer(At)}if((Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT&&this._lockedPointer)return;const vt={pointerId:Ft.pointerId,clientX:Ft.clientX,clientY:Ft.clientY,deltaX:0,deltaY:0,mouseButton:mt};this._activePointers.push(vt),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.addEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.addEventListener("pointerup",lt),this._isDragging=!0,pt(Ft)},ot=Ft=>{if(!this._enabled||!this._domElement||this._lockedPointer)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const At=this._domElement.getBoundingClientRect(),Lt=Ft.clientX/At.width,Rt=Ft.clientY/At.height;if(Ltthis._interactiveArea.right||Rtthis._interactiveArea.bottom)return}const mt=(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE?MOUSE_BUTTON.MIDDLE:(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT?MOUSE_BUTTON.RIGHT:null;if(mt!==null){const At=this._findPointerByMouseButton(mt);At&&this._disposePointer(At)}const vt={pointerId:1,clientX:Ft.clientX,clientY:Ft.clientY,deltaX:0,deltaY:0,mouseButton:(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.MIDDLE:(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.RIGHT:null};this._activePointers.push(vt),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("mouseup",ut),this._domElement.ownerDocument.addEventListener("mousemove",at),this._domElement.ownerDocument.addEventListener("mouseup",ut),this._isDragging=!0,pt(Ft)},st=Ft=>{Ft.cancelable&&Ft.preventDefault();const mt=Ft.pointerId,vt=this._lockedPointer||this._findPointerById(mt);if(vt){if(vt.clientX=Ft.clientX,vt.clientY=Ft.clientY,vt.deltaX=Ft.movementX,vt.deltaY=Ft.movementY,this._state=0,Ft.pointerType==="touch")switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else(!this._isDragging&&this._lockedPointer||this._isDragging&&(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT)&&(this._state=this._state|this.mouseButtons.left),this._isDragging&&(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),this._isDragging&&(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right);ft()}},at=Ft=>{const mt=this._lockedPointer||this._findPointerById(1);mt&&(mt.clientX=Ft.clientX,mt.clientY=Ft.clientY,mt.deltaX=Ft.movementX,mt.deltaY=Ft.movementY,this._state=0,(this._lockedPointer||(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT)&&(this._state=this._state|this.mouseButtons.left),(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right),ft())},lt=Ft=>{const mt=this._findPointerById(Ft.pointerId);if(!(mt&&mt===this._lockedPointer)){if(mt&&this._disposePointer(mt),Ft.pointerType==="touch")switch(this._activePointers.length){case 0:this._state=ACTION.NONE;break;case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else this._state=ACTION.NONE;gt()}},ut=()=>{const Ft=this._findPointerById(1);Ft&&Ft===this._lockedPointer||(Ft&&this._disposePointer(Ft),this._state=ACTION.NONE,gt())};let dt=-1;const ht=Ft=>{if(!this._domElement||!this._enabled||this.mouseButtons.wheel===ACTION.NONE)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const Rt=this._domElement.getBoundingClientRect(),St=Ft.clientX/Rt.width,Tt=Ft.clientY/Rt.height;if(Stthis._interactiveArea.right||Ttthis._interactiveArea.bottom)return}if(Ft.preventDefault(),this.dollyToCursor||this.mouseButtons.wheel===ACTION.ROTATE||this.mouseButtons.wheel===ACTION.TRUCK){const Rt=performance.now();dt-Rt<1e3&&this._getClientRect(this._elementRect),dt=Rt}const mt=isMac?-1:-3,vt=Ft.deltaMode===1?Ft.deltaY/mt:Ft.deltaY/(mt*10),At=this.dollyToCursor?(Ft.clientX-this._elementRect.x)/this._elementRect.width*2-1:0,Lt=this.dollyToCursor?(Ft.clientY-this._elementRect.y)/this._elementRect.height*-2+1:0;switch(this.mouseButtons.wheel){case ACTION.ROTATE:{this._rotateInternal(Ft.deltaX,Ft.deltaY),this._isUserControllingRotate=!0;break}case ACTION.TRUCK:{this._truckInternal(Ft.deltaX,Ft.deltaY,!1),this._isUserControllingTruck=!0;break}case ACTION.OFFSET:{this._truckInternal(Ft.deltaX,Ft.deltaY,!0),this._isUserControllingOffset=!0;break}case ACTION.DOLLY:{this._dollyInternal(-vt,At,Lt),this._isUserControllingDolly=!0;break}case ACTION.ZOOM:{this._zoomInternal(-vt,At,Lt),this._isUserControllingZoom=!0;break}}this.dispatchEvent({type:"control"})},ct=Ft=>{if(!(!this._domElement||!this._enabled)){if(this.mouseButtons.right===sm.ACTION.NONE){const mt=Ft instanceof PointerEvent?Ft.pointerId:(Ft instanceof MouseEvent,0),vt=this._findPointerById(mt);vt&&this._disposePointer(vt),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("mouseup",ut);return}Ft.preventDefault()}},pt=Ft=>{if(!this._enabled)return;if(extractClientCoordFromEvent(this._activePointers,_v2),this._getClientRect(this._elementRect),tt.copy(_v2),nt.copy(_v2),this._activePointers.length>=2){const vt=_v2.x-this._activePointers[1].clientX,At=_v2.y-this._activePointers[1].clientY,Lt=Math.sqrt(vt*vt+At*At);rt.set(0,Lt);const Rt=(this._activePointers[0].clientX+this._activePointers[1].clientX)*.5,St=(this._activePointers[0].clientY+this._activePointers[1].clientY)*.5;nt.set(Rt,St)}if(this._state=0,!Ft)this._lockedPointer&&(this._state=this._state|this.mouseButtons.left);else if("pointerType"in Ft&&Ft.pointerType==="touch")switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else!this._lockedPointer&&(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT&&(this._state=this._state|this.mouseButtons.left),(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right);((this._state&ACTION.ROTATE)===ACTION.ROTATE||(this._state&ACTION.TOUCH_ROTATE)===ACTION.TOUCH_ROTATE||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._sphericalEnd.theta=this._spherical.theta,this._sphericalEnd.phi=this._spherical.phi,this._thetaVelocity.value=0,this._phiVelocity.value=0),((this._state&ACTION.TRUCK)===ACTION.TRUCK||(this._state&ACTION.TOUCH_TRUCK)===ACTION.TOUCH_TRUCK||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK)&&(this._targetEnd.copy(this._target),this._targetVelocity.set(0,0,0)),((this._state&ACTION.DOLLY)===ACTION.DOLLY||(this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE)&&(this._sphericalEnd.radius=this._spherical.radius,this._radiusVelocity.value=0),((this._state&ACTION.ZOOM)===ACTION.ZOOM||(this._state&ACTION.TOUCH_ZOOM)===ACTION.TOUCH_ZOOM||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._zoomEnd=this._zoom,this._zoomVelocity.value=0),((this._state&ACTION.OFFSET)===ACTION.OFFSET||(this._state&ACTION.TOUCH_OFFSET)===ACTION.TOUCH_OFFSET||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET)&&(this._focalOffsetEnd.copy(this._focalOffset),this._focalOffsetVelocity.set(0,0,0)),this.dispatchEvent({type:"controlstart"})},ft=()=>{if(!this._enabled||!this._dragNeedsUpdate)return;this._dragNeedsUpdate=!1,extractClientCoordFromEvent(this._activePointers,_v2);const mt=this._domElement&&document.pointerLockElement===this._domElement?this._lockedPointer||this._activePointers[0]:null,vt=mt?-mt.deltaX:nt.x-_v2.x,At=mt?-mt.deltaY:nt.y-_v2.y;if(nt.copy(_v2),((this._state&ACTION.ROTATE)===ACTION.ROTATE||(this._state&ACTION.TOUCH_ROTATE)===ACTION.TOUCH_ROTATE||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._rotateInternal(vt,At),this._isUserControllingRotate=!0),(this._state&ACTION.DOLLY)===ACTION.DOLLY||(this._state&ACTION.ZOOM)===ACTION.ZOOM){const Lt=this.dollyToCursor?(tt.x-this._elementRect.x)/this._elementRect.width*2-1:0,Rt=this.dollyToCursor?(tt.y-this._elementRect.y)/this._elementRect.height*-2+1:0,St=this.dollyDragInverted?-1:1;(this._state&ACTION.DOLLY)===ACTION.DOLLY?(this._dollyInternal(St*At*TOUCH_DOLLY_FACTOR,Lt,Rt),this._isUserControllingDolly=!0):(this._zoomInternal(St*At*TOUCH_DOLLY_FACTOR,Lt,Rt),this._isUserControllingZoom=!0)}if((this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_ZOOM)===ACTION.TOUCH_ZOOM||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE){const Lt=_v2.x-this._activePointers[1].clientX,Rt=_v2.y-this._activePointers[1].clientY,St=Math.sqrt(Lt*Lt+Rt*Rt),Tt=rt.y-St;rt.set(0,St);const Bt=this.dollyToCursor?(nt.x-this._elementRect.x)/this._elementRect.width*2-1:0,xt=this.dollyToCursor?(nt.y-this._elementRect.y)/this._elementRect.height*-2+1:0;(this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET?(this._dollyInternal(Tt*TOUCH_DOLLY_FACTOR,Bt,xt),this._isUserControllingDolly=!0):(this._zoomInternal(Tt*TOUCH_DOLLY_FACTOR,Bt,xt),this._isUserControllingZoom=!0)}((this._state&ACTION.TRUCK)===ACTION.TRUCK||(this._state&ACTION.TOUCH_TRUCK)===ACTION.TOUCH_TRUCK||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK)&&(this._truckInternal(vt,At,!1),this._isUserControllingTruck=!0),((this._state&ACTION.OFFSET)===ACTION.OFFSET||(this._state&ACTION.TOUCH_OFFSET)===ACTION.TOUCH_OFFSET||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET)&&(this._truckInternal(vt,At,!0),this._isUserControllingOffset=!0),this.dispatchEvent({type:"control"})},gt=()=>{extractClientCoordFromEvent(this._activePointers,_v2),nt.copy(_v2),this._dragNeedsUpdate=!1,(this._activePointers.length===0||this._activePointers.length===1&&this._activePointers[0]===this._lockedPointer)&&(this._isDragging=!1),this._activePointers.length===0&&this._domElement&&(this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.removeEventListener("mouseup",ut),this.dispatchEvent({type:"controlend"}))};this.lockPointer=()=>{!this._enabled||!this._domElement||(this.cancel(),this._lockedPointer={pointerId:-1,clientX:0,clientY:0,deltaX:0,deltaY:0,mouseButton:null},this._activePointers.push(this._lockedPointer),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.requestPointerLock(),this._domElement.ownerDocument.addEventListener("pointerlockchange",yt),this._domElement.ownerDocument.addEventListener("pointerlockerror",Ut),this._domElement.ownerDocument.addEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.addEventListener("pointerup",lt),pt())},this.unlockPointer=()=>{this._lockedPointer!==null&&(this._disposePointer(this._lockedPointer),this._lockedPointer=null),document.exitPointerLock(),this.cancel(),this._domElement&&(this._domElement.ownerDocument.removeEventListener("pointerlockchange",yt),this._domElement.ownerDocument.removeEventListener("pointerlockerror",Ut))};const yt=()=>{this._domElement&&this._domElement.ownerDocument.pointerLockElement===this._domElement||this.unlockPointer()},Ut=()=>{this.unlockPointer()};this._addAllEventListeners=Ft=>{this._domElement=Ft,this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none",this._domElement.addEventListener("pointerdown",it),isPointerEventsNotSupported&&this._domElement.addEventListener("mousedown",ot),this._domElement.addEventListener("pointercancel",lt),this._domElement.addEventListener("wheel",ht,{passive:!1}),this._domElement.addEventListener("contextmenu",ct)},this._removeAllEventListeners=()=>{this._domElement&&(this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect="",this._domElement.removeEventListener("pointerdown",it),this._domElement.removeEventListener("mousedown",ot),this._domElement.removeEventListener("pointercancel",lt),this._domElement.removeEventListener("wheel",ht,{passive:!1}),this._domElement.removeEventListener("contextmenu",ct),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.removeEventListener("mouseup",ut),this._domElement.ownerDocument.removeEventListener("pointerlockchange",yt),this._domElement.ownerDocument.removeEventListener("pointerlockerror",Ut))},this.cancel=()=>{this._state!==ACTION.NONE&&(this._state=ACTION.NONE,this._activePointers.length=0,gt())},et&&this.connect(et),this.update(0)}get camera(){return this._camera}set camera(o){this._camera=o,this.updateCameraUp(),this._camera.updateProjectionMatrix(),this._updateNearPlaneCorners(),this._needsUpdate=!0}get enabled(){return this._enabled}set enabled(o){this._enabled=o,this._domElement&&(o?(this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none"):(this.cancel(),this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect=""))}get active(){return!this._hasRested}get currentAction(){return this._state}get distance(){return this._spherical.radius}set distance(o){this._spherical.radius===o&&this._sphericalEnd.radius===o||(this._spherical.radius=o,this._sphericalEnd.radius=o,this._needsUpdate=!0)}get azimuthAngle(){return this._spherical.theta}set azimuthAngle(o){this._spherical.theta===o&&this._sphericalEnd.theta===o||(this._spherical.theta=o,this._sphericalEnd.theta=o,this._needsUpdate=!0)}get polarAngle(){return this._spherical.phi}set polarAngle(o){this._spherical.phi===o&&this._sphericalEnd.phi===o||(this._spherical.phi=o,this._sphericalEnd.phi=o,this._needsUpdate=!0)}get boundaryEnclosesCamera(){return this._boundaryEnclosesCamera}set boundaryEnclosesCamera(o){this._boundaryEnclosesCamera=o,this._needsUpdate=!0}set interactiveArea(o){this._interactiveArea.width=clamp$3(o.width,0,1),this._interactiveArea.height=clamp$3(o.height,0,1),this._interactiveArea.x=clamp$3(o.x,0,1-this._interactiveArea.width),this._interactiveArea.y=clamp$3(o.y,0,1-this._interactiveArea.height)}addEventListener(o,et){super.addEventListener(o,et)}removeEventListener(o,et){super.removeEventListener(o,et)}rotate(o,et,tt=!1){return this.rotateTo(this._sphericalEnd.theta+o,this._sphericalEnd.phi+et,tt)}rotateAzimuthTo(o,et=!1){return this.rotateTo(o,this._sphericalEnd.phi,et)}rotatePolarTo(o,et=!1){return this.rotateTo(this._sphericalEnd.theta,o,et)}rotateTo(o,et,tt=!1){this._isUserControllingRotate=!1;const nt=clamp$3(o,this.minAzimuthAngle,this.maxAzimuthAngle),rt=clamp$3(et,this.minPolarAngle,this.maxPolarAngle);this._sphericalEnd.theta=nt,this._sphericalEnd.phi=rt,this._sphericalEnd.makeSafe(),this._needsUpdate=!0,tt||(this._spherical.theta=this._sphericalEnd.theta,this._spherical.phi=this._sphericalEnd.phi);const it=!tt||approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold);return this._createOnRestPromise(it)}dolly(o,et=!1){return this.dollyTo(this._sphericalEnd.radius-o,et)}dollyTo(o,et=!1){return this._isUserControllingDolly=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0,this._dollyToNoClamp(clamp$3(o,this.minDistance,this.maxDistance),et)}_dollyToNoClamp(o,et=!1){const tt=this._sphericalEnd.radius;if(this.colliderMeshes.length>=1){const it=this._collisionTest(),ot=approxEquals(it,this._spherical.radius);if(!(tt>o)&&ot)return Promise.resolve();this._sphericalEnd.radius=Math.min(o,it)}else this._sphericalEnd.radius=o;this._needsUpdate=!0,et||(this._spherical.radius=this._sphericalEnd.radius);const rt=!et||approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(rt)}dollyInFixed(o,et=!1){this._targetEnd.add(this._getCameraDirection(_cameraDirection).multiplyScalar(o)),et||this._target.copy(this._targetEnd);const tt=!et||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(tt)}zoom(o,et=!1){return this.zoomTo(this._zoomEnd+o,et)}zoomTo(o,et=!1){this._isUserControllingZoom=!1,this._zoomEnd=clamp$3(o,this.minZoom,this.maxZoom),this._needsUpdate=!0,et||(this._zoom=this._zoomEnd);const tt=!et||approxEquals(this._zoom,this._zoomEnd,this.restThreshold);return this._changedZoom=0,this._createOnRestPromise(tt)}pan(o,et,tt=!1){return console.warn("`pan` has been renamed to `truck`"),this.truck(o,et,tt)}truck(o,et,tt=!1){this._camera.updateMatrix(),_xColumn.setFromMatrixColumn(this._camera.matrix,0),_yColumn.setFromMatrixColumn(this._camera.matrix,1),_xColumn.multiplyScalar(o),_yColumn.multiplyScalar(-et);const nt=_v3A.copy(_xColumn).add(_yColumn),rt=_v3B.copy(this._targetEnd).add(nt);return this.moveTo(rt.x,rt.y,rt.z,tt)}forward(o,et=!1){_v3A.setFromMatrixColumn(this._camera.matrix,0),_v3A.crossVectors(this._camera.up,_v3A),_v3A.multiplyScalar(o);const tt=_v3B.copy(this._targetEnd).add(_v3A);return this.moveTo(tt.x,tt.y,tt.z,et)}elevate(o,et=!1){return _v3A.copy(this._camera.up).multiplyScalar(o),this.moveTo(this._targetEnd.x+_v3A.x,this._targetEnd.y+_v3A.y,this._targetEnd.z+_v3A.z,et)}moveTo(o,et,tt,nt=!1){this._isUserControllingTruck=!1;const rt=_v3A.set(o,et,tt).sub(this._targetEnd);this._encloseToBoundary(this._targetEnd,rt,this.boundaryFriction),this._needsUpdate=!0,nt||this._target.copy(this._targetEnd);const it=!nt||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(it)}lookInDirectionOf(o,et,tt,nt=!1){const ot=_v3A.set(o,et,tt).sub(this._targetEnd).normalize().multiplyScalar(-this._sphericalEnd.radius);return this.setPosition(ot.x,ot.y,ot.z,nt)}fitToBox(o,et,{cover:tt=!1,paddingLeft:nt=0,paddingRight:rt=0,paddingBottom:it=0,paddingTop:ot=0}={}){const st=[],at=o.isBox3?_box3A.copy(o):_box3A.setFromObject(o);at.isEmpty()&&(console.warn("camera-controls: fitTo() cannot be used with an empty box. Aborting"),Promise.resolve());const lt=roundToStep(this._sphericalEnd.theta,PI_HALF),ut=roundToStep(this._sphericalEnd.phi,PI_HALF);st.push(this.rotateTo(lt,ut,et));const dt=_v3A.setFromSpherical(this._sphericalEnd).normalize(),ht=_quaternionA.setFromUnitVectors(dt,_AXIS_Z),ct=approxEquals(Math.abs(dt.y),1);ct&&ht.multiply(_quaternionB.setFromAxisAngle(_AXIS_Y,lt)),ht.multiply(this._yAxisUpSpaceInverse);const pt=_box3B.makeEmpty();_v3B.copy(at.min).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.min).setX(at.max.x).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.min).setY(at.max.y).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).setZ(at.min.z).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.min).setZ(at.max.z).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).setY(at.min.y).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).setX(at.min.x).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).applyQuaternion(ht),pt.expandByPoint(_v3B),pt.min.x-=nt,pt.min.y-=it,pt.max.x+=rt,pt.max.y+=ot,ht.setFromUnitVectors(_AXIS_Z,dt),ct&&ht.premultiply(_quaternionB.invert()),ht.premultiply(this._yAxisUpSpace);const ft=pt.getSize(_v3A),gt=pt.getCenter(_v3B).applyQuaternion(ht);if(isPerspectiveCamera(this._camera)){const yt=this.getDistanceToFitBox(ft.x,ft.y,ft.z,tt);st.push(this.moveTo(gt.x,gt.y,gt.z,et)),st.push(this.dollyTo(yt,et)),st.push(this.setFocalOffset(0,0,0,et))}else if(isOrthographicCamera(this._camera)){const yt=this._camera,Ut=yt.right-yt.left,Ft=yt.top-yt.bottom,mt=tt?Math.max(Ut/ft.x,Ft/ft.y):Math.min(Ut/ft.x,Ft/ft.y);st.push(this.moveTo(gt.x,gt.y,gt.z,et)),st.push(this.zoomTo(mt,et)),st.push(this.setFocalOffset(0,0,0,et))}return Promise.all(st)}fitToSphere(o,et){const tt=[],rt=o instanceof THREE.Sphere?_sphere.copy(o):sm.createBoundingSphere(o,_sphere);if(tt.push(this.moveTo(rt.center.x,rt.center.y,rt.center.z,et)),isPerspectiveCamera(this._camera)){const it=this.getDistanceToFitSphere(rt.radius);tt.push(this.dollyTo(it,et))}else if(isOrthographicCamera(this._camera)){const it=this._camera.right-this._camera.left,ot=this._camera.top-this._camera.bottom,st=2*rt.radius,at=Math.min(it/st,ot/st);tt.push(this.zoomTo(at,et))}return tt.push(this.setFocalOffset(0,0,0,et)),Promise.all(tt)}setLookAt(o,et,tt,nt,rt,it,ot=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0;const st=_v3B.set(nt,rt,it),at=_v3A.set(o,et,tt);this._targetEnd.copy(st),this._sphericalEnd.setFromVector3(at.sub(st).applyQuaternion(this._yAxisUpSpace)),this.normalizeRotations(),this._needsUpdate=!0,ot||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));const lt=!ot||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold)&&approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(lt)}lerpLookAt(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0;const pt=_v3A.set(nt,rt,it),ft=_v3B.set(o,et,tt);_sphericalA.setFromVector3(ft.sub(pt).applyQuaternion(this._yAxisUpSpace));const gt=_v3C.set(lt,ut,dt),yt=_v3B.set(ot,st,at);_sphericalB.setFromVector3(yt.sub(gt).applyQuaternion(this._yAxisUpSpace)),this._targetEnd.copy(pt.lerp(gt,ht));const Ut=_sphericalB.theta-_sphericalA.theta,Ft=_sphericalB.phi-_sphericalA.phi,mt=_sphericalB.radius-_sphericalA.radius;this._sphericalEnd.set(_sphericalA.radius+mt*ht,_sphericalA.phi+Ft*ht,_sphericalA.theta+Ut*ht),this.normalizeRotations(),this._needsUpdate=!0,ct||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));const vt=!ct||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold)&&approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(vt)}setPosition(o,et,tt,nt=!1){return this.setLookAt(o,et,tt,this._targetEnd.x,this._targetEnd.y,this._targetEnd.z,nt)}setTarget(o,et,tt,nt=!1){const rt=this.getPosition(_v3A),it=this.setLookAt(rt.x,rt.y,rt.z,o,et,tt,nt);return this._sphericalEnd.phi=clamp$3(this._sphericalEnd.phi,this.minPolarAngle,this.maxPolarAngle),it}setFocalOffset(o,et,tt,nt=!1){this._isUserControllingOffset=!1,this._focalOffsetEnd.set(o,et,tt),this._needsUpdate=!0,nt||this._focalOffset.copy(this._focalOffsetEnd);const rt=!nt||approxEquals(this._focalOffset.x,this._focalOffsetEnd.x,this.restThreshold)&&approxEquals(this._focalOffset.y,this._focalOffsetEnd.y,this.restThreshold)&&approxEquals(this._focalOffset.z,this._focalOffsetEnd.z,this.restThreshold);return this._createOnRestPromise(rt)}setOrbitPoint(o,et,tt){this._camera.updateMatrixWorld(),_xColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,0),_yColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,1),_zColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,2);const nt=_v3A.set(o,et,tt),rt=nt.distanceTo(this._camera.position),it=nt.sub(this._camera.position);_xColumn.multiplyScalar(it.x),_yColumn.multiplyScalar(it.y),_zColumn.multiplyScalar(it.z),_v3A.copy(_xColumn).add(_yColumn).add(_zColumn),_v3A.z=_v3A.z+rt,this.dollyTo(rt,!1),this.setFocalOffset(-_v3A.x,_v3A.y,-_v3A.z,!1),this.moveTo(o,et,tt,!1)}setBoundary(o){if(!o){this._boundary.min.set(-1/0,-1/0,-1/0),this._boundary.max.set(1/0,1/0,1/0),this._needsUpdate=!0;return}this._boundary.copy(o),this._boundary.clampPoint(this._targetEnd,this._targetEnd),this._needsUpdate=!0}setViewport(o,et,tt,nt){if(o===null){this._viewport=null;return}this._viewport=this._viewport||new THREE.Vector4,typeof o=="number"?this._viewport.set(o,et,tt,nt):this._viewport.copy(o)}getDistanceToFitBox(o,et,tt,nt=!1){if(notSupportedInOrthographicCamera(this._camera,"getDistanceToFitBox"))return this._spherical.radius;const rt=o/et,it=this._camera.getEffectiveFOV()*DEG2RAD,ot=this._camera.aspect;return((nt?rt>ot:rtet.pointerId===o)}_findPointerByMouseButton(o){return this._activePointers.find(et=>et.mouseButton===o)}_disposePointer(o){this._activePointers.splice(this._activePointers.indexOf(o),1)}_encloseToBoundary(o,et,tt){const nt=et.lengthSq();if(nt===0)return o;const rt=_v3B.copy(et).add(o),ot=this._boundary.clampPoint(rt,_v3C).sub(rt),st=ot.lengthSq();if(st===0)return o.add(et);if(st===nt)return o;if(tt===0)return o.add(et).add(ot);{const at=1+tt*st/et.dot(ot);return o.add(_v3B.copy(et).multiplyScalar(at)).add(ot.multiplyScalar(1-tt))}}_updateNearPlaneCorners(){if(isPerspectiveCamera(this._camera)){const o=this._camera,et=o.near,tt=o.getEffectiveFOV()*DEG2RAD,nt=Math.tan(tt*.5)*et,rt=nt*o.aspect;this._nearPlaneCorners[0].set(-rt,-nt,0),this._nearPlaneCorners[1].set(rt,-nt,0),this._nearPlaneCorners[2].set(rt,nt,0),this._nearPlaneCorners[3].set(-rt,nt,0)}else if(isOrthographicCamera(this._camera)){const o=this._camera,et=1/o.zoom,tt=o.left*et,nt=o.right*et,rt=o.top*et,it=o.bottom*et;this._nearPlaneCorners[0].set(tt,rt,0),this._nearPlaneCorners[1].set(nt,rt,0),this._nearPlaneCorners[2].set(nt,it,0),this._nearPlaneCorners[3].set(tt,it,0)}}_collisionTest(){let o=1/0;if(!(this.colliderMeshes.length>=1)||notSupportedInOrthographicCamera(this._camera,"_collisionTest"))return o;const tt=this._getTargetDirection(_cameraDirection);_rotationMatrix.lookAt(_ORIGIN,tt,this._camera.up);for(let nt=0;nt<4;nt++){const rt=_v3B.copy(this._nearPlaneCorners[nt]);rt.applyMatrix4(_rotationMatrix);const it=_v3C.addVectors(this._target,rt);_raycaster.set(it,tt),_raycaster.far=this._spherical.radius+1;const ot=_raycaster.intersectObjects(this.colliderMeshes);ot.length!==0&&ot[0].distance{const tt=()=>{this.removeEventListener("rest",tt),et()};this.addEventListener("rest",tt)}))}_addAllEventListeners(o){}_removeAllEventListeners(){}get dampingFactor(){return console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead."),0}set dampingFactor(o){console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead.")}get draggingDampingFactor(){return console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead."),0}set draggingDampingFactor(o){console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.")}static createBoundingSphere(o,et=new THREE.Sphere){const tt=et,nt=tt.center;_box3A.makeEmpty(),o.traverseVisible(it=>{it.isMesh&&_box3A.expandByObject(it)}),_box3A.getCenter(nt);let rt=0;return o.traverseVisible(it=>{if(!it.isMesh)return;const ot=it,st=ot.geometry.clone();st.applyMatrix4(ot.matrixWorld);const lt=st.attributes.position;for(let ut=0,dt=lt.count;ut{reactExports.useMemo(()=>{const mt={Box3,MathUtils:{clamp:MathUtils.clamp},Matrix4,Quaternion,Raycaster,Sphere:Sphere$1,Spherical,Vector2,Vector3,Vector4};CameraControls$1.install({THREE:mt}),extend({CameraControlsImpl:CameraControls$1})},[]);const{camera:et,domElement:tt,makeDefault:nt,onStart:rt,onEnd:it,onChange:ot,regress:st,...at}=s,lt=useThree(mt=>mt.camera),ut=useThree(mt=>mt.gl),dt=useThree(mt=>mt.invalidate),ht=useThree(mt=>mt.events),ct=useThree(mt=>mt.setEvents),pt=useThree(mt=>mt.set),ft=useThree(mt=>mt.get),gt=useThree(mt=>mt.performance),yt=et||lt,Ut=tt||ht.connected||ut.domElement,Ft=reactExports.useMemo(()=>new CameraControls$1(yt),[yt]);return useFrame((mt,vt)=>{Ft.enabled&&Ft.update(vt)},-1),reactExports.useEffect(()=>(Ft.connect(Ut),()=>void Ft.disconnect()),[Ut,Ft]),reactExports.useEffect(()=>{const mt=Lt=>{dt(),st&>.regress(),ot&&ot(Lt)},vt=Lt=>{rt&&rt(Lt)},At=Lt=>{it&&it(Lt)};return Ft.addEventListener("update",mt),Ft.addEventListener("controlstart",vt),Ft.addEventListener("controlend",At),Ft.addEventListener("control",mt),Ft.addEventListener("transitionstart",mt),Ft.addEventListener("wake",mt),()=>{Ft.removeEventListener("update",mt),Ft.removeEventListener("controlstart",vt),Ft.removeEventListener("controlend",At),Ft.removeEventListener("control",mt),Ft.removeEventListener("transitionstart",mt),Ft.removeEventListener("wake",mt)}},[Ft,rt,it,dt,ct,st,ot]),reactExports.useEffect(()=>{if(nt){const mt=ft().controls;return pt({controls:Ft}),()=>pt({controls:mt})}},[nt,Ft]),reactExports.createElement("primitive",_extends$2({ref:o,object:Ft},at))});function useHelper(s,o,...et){const tt=reactExports.useRef(),nt=useThree(rt=>rt.scene);return reactExports.useLayoutEffect(()=>{let rt;if(s&&s!=null&&s.current&&o&&(tt.current=rt=new o(s.current,...et)),rt)return rt.traverse(it=>it.raycast=()=>null),nt.add(rt),()=>{tt.current=void 0,nt.remove(rt),rt.dispose==null||rt.dispose()}},[nt,o,s,...et]),useFrame(()=>{var rt;return void((rt=tt.current)==null||rt.update==null?void 0:rt.update())}),tt}var stats_min={exports:{}};(function(s,o){(function(et,tt){s.exports=tt()})(commonjsGlobal$2,function(){var et=function(){function tt(ht){return it.appendChild(ht.dom),ht}function nt(ht){for(var ct=0;ctst+1e3&&(lt.update(1e3*at/(ht-st),100),st=ht,at=0,dt)){var ct=performance.memory;dt.update(ct.usedJSHeapSize/1048576,ct.jsHeapSizeLimit/1048576)}return ht},update:function(){ot=this.end()},domElement:it,setMode:nt}};return et.Panel=function(tt,nt,rt){var it=1/0,ot=0,st=Math.round,at=st(window.devicePixelRatio||1),lt=80*at,ut=48*at,dt=3*at,ht=2*at,ct=3*at,pt=15*at,ft=74*at,gt=30*at,yt=document.createElement("canvas");yt.width=lt,yt.height=ut,yt.style.cssText="width:80px;height:48px";var Ut=yt.getContext("2d");return Ut.font="bold "+9*at+"px Helvetica,Arial,sans-serif",Ut.textBaseline="top",Ut.fillStyle=rt,Ut.fillRect(0,0,lt,ut),Ut.fillStyle=nt,Ut.fillText(tt,dt,ht),Ut.fillRect(ct,pt,ft,gt),Ut.fillStyle=rt,Ut.globalAlpha=.9,Ut.fillRect(ct,pt,ft,gt),{dom:yt,update:function(Ft,mt){it=Math.min(it,Ft),ot=Math.max(ot,Ft),Ut.fillStyle=rt,Ut.globalAlpha=1,Ut.fillRect(0,0,lt,pt),Ut.fillStyle=nt,Ut.fillText(st(Ft)+" "+tt+" ("+st(it)+"-"+st(ot)+")",dt,ht),Ut.drawImage(yt,ct+at,pt,ft-at,gt,ct,pt,ft-at,gt),Ut.fillRect(ct+ft-at,pt,at,gt),Ut.fillStyle=rt,Ut.globalAlpha=.9,Ut.fillRect(ct+ft-at,pt,at,st((1-Ft/mt)*gt))}}},et})})(stats_min);var stats_minExports=stats_min.exports;const StatsImpl=getDefaultExportFromCjs$1(stats_minExports);function call$1(s,o){typeof s=="function"?s(o):s!=null&&(s.current=o)}function useEffectfulState(s,o=[],et){const[tt,nt]=reactExports.useState();return reactExports.useLayoutEffect(()=>{const rt=s();return nt(rt),call$1(et,rt),()=>call$1(et,null)},o),tt}function Stats({showPanel:s=0,className:o,parent:et}){const tt=useEffectfulState(()=>new StatsImpl,[]);return reactExports.useEffect(()=>{if(tt){const nt=et&&et.current||document.body;tt.showPanel(s),nt?.appendChild(tt.dom);const rt=(o??"").split(" ").filter(st=>st);rt.length&&tt.dom.classList.add(...rt);const it=addEffect(()=>tt.begin()),ot=addAfterEffect(()=>tt.end());return()=>{rt.length&&tt.dom.classList.remove(...rt),nt?.removeChild(tt.dom),it(),ot()}}},[et,tt,o,s]),null}function create(s,o){const et=s+"Geometry";return reactExports.forwardRef(({args:tt,children:nt,...rt},it)=>{const ot=reactExports.useRef(null);return reactExports.useImperativeHandle(it,()=>ot.current),reactExports.useLayoutEffect(()=>void o?.(ot.current)),reactExports.createElement("mesh",_extends$2({ref:ot},rt),reactExports.createElement(et,{attach:"geometry",args:tt}),nt)})}const Box=create("box"),Sphere=create("sphere");let getRandomValues;const rnds8=new Uint8Array(16);function rng(){if(!getRandomValues&&(getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!getRandomValues))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}const byteToHex=[];for(let s=0;s<256;++s)byteToHex.push((s+256).toString(16).slice(1));function unsafeStringify(s,o=0){return byteToHex[s[o+0]]+byteToHex[s[o+1]]+byteToHex[s[o+2]]+byteToHex[s[o+3]]+"-"+byteToHex[s[o+4]]+byteToHex[s[o+5]]+"-"+byteToHex[s[o+6]]+byteToHex[s[o+7]]+"-"+byteToHex[s[o+8]]+byteToHex[s[o+9]]+"-"+byteToHex[s[o+10]]+byteToHex[s[o+11]]+byteToHex[s[o+12]]+byteToHex[s[o+13]]+byteToHex[s[o+14]]+byteToHex[s[o+15]]}let _nodeId,_clockseq,_lastMSecs=0,_lastNSecs=0;function v1(s,o,et){let tt=o&&et||0;const nt=o||new Array(16);s=s||{};let rt=s.node||_nodeId,it=s.clockseq!==void 0?s.clockseq:_clockseq;if(rt==null||it==null){const dt=s.random||(s.rng||rng)();rt==null&&(rt=_nodeId=[dt[0]|1,dt[1],dt[2],dt[3],dt[4],dt[5]]),it==null&&(it=_clockseq=(dt[6]<<8|dt[7])&16383)}let ot=s.msecs!==void 0?s.msecs:Date.now(),st=s.nsecs!==void 0?s.nsecs:_lastNSecs+1;const at=ot-_lastMSecs+(st-_lastNSecs)/1e4;if(at<0&&s.clockseq===void 0&&(it=it+1&16383),(at<0||ot>_lastMSecs)&&s.nsecs===void 0&&(st=0),st>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=ot,_lastNSecs=st,_clockseq=it,ot+=122192928e5;const lt=((ot&268435455)*1e4+st)%4294967296;nt[tt++]=lt>>>24&255,nt[tt++]=lt>>>16&255,nt[tt++]=lt>>>8&255,nt[tt++]=lt&255;const ut=ot/4294967296*1e4&268435455;nt[tt++]=ut>>>8&255,nt[tt++]=ut&255,nt[tt++]=ut>>>24&15|16,nt[tt++]=ut>>>16&255,nt[tt++]=it>>>8|128,nt[tt++]=it&255;for(let dt=0;dt<6;++dt)nt[tt+dt]=rt[dt];return o||unsafeStringify(nt)}const randomUUID=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),native={randomUUID};function v4(s,o,et){if(native.randomUUID&&!o&&!s)return native.randomUUID();s=s||{};const tt=s.random||(s.rng||rng)();if(tt[6]=tt[6]&15|64,tt[8]=tt[8]&63|128,o){et=et||0;for(let nt=0;nt<16;++nt)o[et+nt]=tt[nt];return o}return unsafeStringify(tt)}const context$2=reactExports.createContext(null),vec1$2=new Vector3,vec2$2=new Vector3,calculateOffset$2=(s,o,et,tt)=>{const nt=o.dot(o),rt=o.dot(s)-o.dot(et),it=o.dot(tt);return it===0?-rt/nt:(vec1$2.copy(tt).multiplyScalar(nt/it).sub(o),vec2$2.copy(tt).multiplyScalar(rt/it).add(et).sub(s),-vec1$2.dot(vec2$2)/vec1$2.dot(vec1$2))},upV$2=new Vector3(0,1,0),offsetMatrix$3=new Matrix4,AxisArrow$1=({direction:s,axis:o})=>{const{translation:et,translationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context$2),gt=useThree(Ot=>Ot.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(0),[vt,At]=reactExports.useState(!1),Lt=reactExports.useCallback(Ot=>{nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`,yt.current.style.display="block"),Ot.stopPropagation();const Wt=new Matrix4().extractRotation(Ut.current.matrixWorld),Dt=Ot.point.clone(),Et=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Pt=s.clone().applyMatrix4(Wt).normalize();Ft.current={clickPoint:Dt,dir:Pt},mt.current=et.current[o],ht({component:"Arrow",axis:o,origin:Et,directions:[Pt]}),gt&&(gt.enabled=!1),Ot.target.setPointerCapture(Ot.pointerId)},[nt,s,gt,ht,et,o]),Rt=reactExports.useCallback(Ot=>{if(Ot.stopPropagation(),vt||At(!0),Ft.current){const{clickPoint:Wt,dir:Dt}=Ft.current,[Et,Pt]=tt?.[o]||[void 0,void 0];let zt=calculateOffset$2(Wt,Dt,Ot.ray.origin,Ot.ray.direction);Et!==void 0&&(zt=Math.max(zt,Et-mt.current)),Pt!==void 0&&(zt=Math.min(zt,Pt-mt.current)),et.current[o]=mt.current+zt,nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`),offsetMatrix$3.makeTranslation(Dt.x*zt,Dt.y*zt,Dt.z*zt),ct(offsetMatrix$3)}},[nt,ct,vt,et,tt,o]),St=reactExports.useCallback(Ot=>{nt&&(yt.current.style.display="none"),Ot.stopPropagation(),Ft.current=null,pt(),gt&&(gt.enabled=!0),Ot.target.releasePointerCapture(Ot.pointerId)},[nt,gt,pt]),Tt=reactExports.useCallback(Ot=>{Ot.stopPropagation(),At(!1)},[]),{cylinderLength:Bt,coneWidth:xt,coneLength:Ct,matrixL:kt}=reactExports.useMemo(()=>{const Ot=at?st/ot*1.6:ot/20,Wt=at?.2:ot/5,Dt=at?1-Wt:ot-Wt,Et=new Quaternion().setFromUnitVectors(upV$2,s.clone().normalize()),Pt=new Matrix4().makeRotationFromQuaternion(Et);return{cylinderLength:Dt,coneWidth:Ot,coneLength:Wt,matrixL:Pt}},[s,ot,st,at]),Nt=vt?ut:lt[o];return reactExports.createElement("group",{ref:Ut},reactExports.createElement("group",{matrix:kt,matrixAutoUpdate:!1,onPointerDown:Lt,onPointerMove:Rt,onPointerUp:St,onPointerOut:Tt},nt&&reactExports.createElement(Html,{position:[0,-Ct,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})),reactExports.createElement("mesh",{visible:!1,position:[0,(Bt+Ct)/2,0],userData:ft},reactExports.createElement("cylinderGeometry",{args:[xt*1.4,xt*1.4,Bt+Ct,8,1]})),reactExports.createElement(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:[0,0,0,0,Bt,0],lineWidth:st,side:DoubleSide,color:Nt,opacity:dt,polygonOffset:!0,renderOrder:1,polygonOffsetFactor:-10,fog:!1}),reactExports.createElement("mesh",{raycast:()=>null,position:[0,Bt+Ct/2,0],renderOrder:500},reactExports.createElement("coneGeometry",{args:[xt,Ct,24,1]}),reactExports.createElement("meshBasicMaterial",{transparent:!0,depthTest:it,color:Nt,opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))))},clickDir$1=new Vector3,intersectionDir$1=new Vector3,toDegrees$2=s=>s*180/Math.PI,toRadians$2=s=>s*Math.PI/180,calculateAngle$1=(s,o,et,tt,nt)=>{clickDir$1.copy(s).sub(et),intersectionDir$1.copy(o).sub(et);const rt=tt.dot(tt),it=nt.dot(nt),ot=clickDir$1.dot(tt)/rt,st=clickDir$1.dot(nt)/it,at=intersectionDir$1.dot(tt)/rt,lt=intersectionDir$1.dot(nt)/it,ut=Math.atan2(st,ot);return Math.atan2(lt,at)-ut},fmod$1=(s,o)=>{let et=Math.floor(s/o);return et=et<0?et+1:et,s-et*o},minimizeAngle$1=s=>{let o=fmod$1(s,2*Math.PI);return Math.abs(o)<1e-6?0:(o<0&&(o+=2*Math.PI),o)},rotMatrix$1=new Matrix4,posNew$1=new Vector3,ray$3=new Ray$1,intersection$3=new Vector3,AxisRotator$1=({dir1:s,dir2:o,axis:et})=>{const{rotationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context$2),gt=useThree(Nt=>Nt.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(0),mt=reactExports.useRef(0),vt=reactExports.useRef(null),[At,Lt]=reactExports.useState(!1),Rt=reactExports.useCallback(Nt=>{nt&&(yt.current.innerText=`${toDegrees$2(mt.current).toFixed(0)}º`,yt.current.style.display="block"),Nt.stopPropagation();const Ot=Nt.point.clone(),Wt=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Dt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,0).normalize(),Et=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,1).normalize(),Pt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,2).normalize(),zt=new Plane().setFromNormalAndCoplanarPoint(Pt,Wt);vt.current={clickPoint:Ot,origin:Wt,e1:Dt,e2:Et,normal:Pt,plane:zt},ht({component:"Rotator",axis:et,origin:Wt,directions:[Dt,Et,Pt]}),gt&&(gt.enabled=!1),Nt.target.setPointerCapture(Nt.pointerId)},[nt,gt,ht,et]),St=reactExports.useCallback(Nt=>{if(Nt.stopPropagation(),At||Lt(!0),vt.current){const{clickPoint:Ot,origin:Wt,e1:Dt,e2:Et,normal:Pt,plane:zt}=vt.current,[en,Kt]=tt?.[et]||[void 0,void 0];ray$3.copy(Nt.ray),ray$3.intersectPlane(zt,intersection$3),ray$3.direction.negate(),ray$3.intersectPlane(zt,intersection$3);let nn=calculateAngle$1(Ot,intersection$3,Wt,Dt,Et),Zt=toDegrees$2(nn);Nt.shiftKey&&(Zt=Math.round(Zt/10)*10,nn=toRadians$2(Zt)),en!==void 0&&Kt!==void 0&&Kt-en<2*Math.PI?(nn=minimizeAngle$1(nn),nn=nn>Math.PI?nn-2*Math.PI:nn,nn=MathUtils.clamp(nn,en-Ft.current,Kt-Ft.current),mt.current=Ft.current+nn):(mt.current=minimizeAngle$1(Ft.current+nn),mt.current=mt.current>Math.PI?mt.current-2*Math.PI:mt.current),nt&&(Zt=toDegrees$2(mt.current),yt.current.innerText=`${Zt.toFixed(0)}º`),rotMatrix$1.makeRotationAxis(Pt,nn),posNew$1.copy(Wt).applyMatrix4(rotMatrix$1).sub(Wt).negate(),rotMatrix$1.setPosition(posNew$1),ct(rotMatrix$1)}},[nt,ct,At,tt,et]),Tt=reactExports.useCallback(Nt=>{nt&&(yt.current.style.display="none"),Nt.stopPropagation(),Ft.current=mt.current,vt.current=null,pt(),gt&&(gt.enabled=!0),Nt.target.releasePointerCapture(Nt.pointerId)},[nt,gt,pt]),Bt=reactExports.useCallback(Nt=>{Nt.stopPropagation(),Lt(!1)},[]),xt=reactExports.useMemo(()=>{const Nt=s.clone().normalize(),Ot=o.clone().normalize();return new Matrix4().makeBasis(Nt,Ot,Nt.clone().cross(Ot))},[s,o]),Ct=at?.65:ot*.65,kt=reactExports.useMemo(()=>{const Ot=[];for(let Wt=0;Wt<=32;Wt++){const Dt=Wt*(Math.PI/2)/32;Ot.push(new Vector3(Math.cos(Dt)*Ct,Math.sin(Dt)*Ct,0))}return Ot},[Ct]);return reactExports.createElement("group",{ref:Ut,onPointerDown:Rt,onPointerMove:St,onPointerUp:Tt,onPointerOut:Bt,matrix:xt,matrixAutoUpdate:!1},nt&&reactExports.createElement(Html,{position:[Ct,Ct,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})),reactExports.createElement(Line,{points:kt,lineWidth:st*4,visible:!1,userData:ft}),reactExports.createElement(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:kt,lineWidth:st,side:DoubleSide,color:At?ut:lt[et],opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))},decomposeIntoBasis$1=(s,o,et)=>{const tt=Math.abs(s.x)>=Math.abs(s.y)&&Math.abs(s.x)>=Math.abs(s.z)?0:Math.abs(s.y)>=Math.abs(s.x)&&Math.abs(s.y)>=Math.abs(s.z)?1:2,nt=[0,1,2].sort((ct,pt)=>Math.abs(o.getComponent(pt))-Math.abs(o.getComponent(ct))),rt=tt===nt[0]?nt[1]:nt[0],it=s.getComponent(tt),ot=s.getComponent(rt),st=o.getComponent(tt),at=o.getComponent(rt),lt=et.getComponent(tt),dt=(et.getComponent(rt)-lt*(ot/it))/(at-st*(ot/it));return[(lt-dt*st)/it,dt]},ray$2=new Ray$1,intersection$2=new Vector3,offsetMatrix$2=new Matrix4,PlaneSlider$1=({dir1:s,dir2:o,axis:et})=>{const{translation:tt,translationLimits:nt,annotations:rt,annotationsClass:it,depthTest:ot,scale:st,lineWidth:at,fixed:lt,axisColors:ut,hoveredColor:dt,opacity:ht,onDragStart:ct,onDrag:pt,onDragEnd:ft,userData:gt}=reactExports.useContext(context$2),yt=useThree(Dt=>Dt.controls),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(null),vt=reactExports.useRef(0),At=reactExports.useRef(0),[Lt,Rt]=reactExports.useState(!1),St=reactExports.useCallback(Dt=>{rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`,Ut.current.style.display="block"),Dt.stopPropagation();const Et=Dt.point.clone(),Pt=new Vector3().setFromMatrixPosition(Ft.current.matrixWorld),zt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,0).normalize(),en=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,1).normalize(),Kt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,2).normalize(),nn=new Plane().setFromNormalAndCoplanarPoint(Kt,Pt);mt.current={clickPoint:Et,e1:zt,e2:en,plane:nn},vt.current=tt.current[(et+1)%3],At.current=tt.current[(et+2)%3],ct({component:"Slider",axis:et,origin:Pt,directions:[zt,en,Kt]}),yt&&(yt.enabled=!1),Dt.target.setPointerCapture(Dt.pointerId)},[rt,yt,ct,et]),Tt=reactExports.useCallback(Dt=>{if(Dt.stopPropagation(),Lt||Rt(!0),mt.current){const{clickPoint:Et,e1:Pt,e2:zt,plane:en}=mt.current,[Kt,nn]=nt?.[(et+1)%3]||[void 0,void 0],[Zt,jt]=nt?.[(et+2)%3]||[void 0,void 0];ray$2.copy(Dt.ray),ray$2.intersectPlane(en,intersection$2),ray$2.direction.negate(),ray$2.intersectPlane(en,intersection$2),intersection$2.sub(Et);let[Vt,It]=decomposeIntoBasis$1(Pt,zt,intersection$2);Kt!==void 0&&(Vt=Math.max(Vt,Kt-vt.current)),nn!==void 0&&(Vt=Math.min(Vt,nn-vt.current)),Zt!==void 0&&(It=Math.max(It,Zt-At.current)),jt!==void 0&&(It=Math.min(It,jt-At.current)),tt.current[(et+1)%3]=vt.current+Vt,tt.current[(et+2)%3]=At.current+It,rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`),offsetMatrix$2.makeTranslation(Vt*Pt.x+It*zt.x,Vt*Pt.y+It*zt.y,Vt*Pt.z+It*zt.z),pt(offsetMatrix$2)}},[rt,pt,Lt,tt,nt,et]),Bt=reactExports.useCallback(Dt=>{rt&&(Ut.current.style.display="none"),Dt.stopPropagation(),mt.current=null,ft(),yt&&(yt.enabled=!0),Dt.target.releasePointerCapture(Dt.pointerId)},[rt,yt,ft]),xt=reactExports.useCallback(Dt=>{Dt.stopPropagation(),Rt(!1)},[]),Ct=reactExports.useMemo(()=>{const Dt=s.clone().normalize(),Et=o.clone().normalize();return new Matrix4().makeBasis(Dt,Et,Dt.clone().cross(Et))},[s,o]),kt=lt?1/7:st/7,Nt=lt?.225:st*.225,Ot=Lt?dt:ut[et],Wt=reactExports.useMemo(()=>[new Vector3(0,0,0),new Vector3(0,Nt,0),new Vector3(Nt,Nt,0),new Vector3(Nt,0,0),new Vector3(0,0,0)],[Nt]);return reactExports.createElement("group",{ref:Ft,matrix:Ct,matrixAutoUpdate:!1},rt&&reactExports.createElement(Html,{position:[0,0,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:it,ref:Ut})),reactExports.createElement("group",{position:[kt*1.7,kt*1.7,0]},reactExports.createElement("mesh",{visible:!0,onPointerDown:St,onPointerMove:Tt,onPointerUp:Bt,onPointerOut:xt,scale:Nt,userData:gt},reactExports.createElement("planeGeometry",null),reactExports.createElement("meshBasicMaterial",{transparent:!0,depthTest:ot,color:Ot,polygonOffset:!0,polygonOffsetFactor:-10,side:DoubleSide,fog:!1})),reactExports.createElement(Line,{position:[-Nt/2,-Nt/2,0],transparent:!0,depthTest:ot,points:Wt,lineWidth:at,color:Ot,opacity:ht,polygonOffset:!0,polygonOffsetFactor:-10,userData:gt,fog:!1})))},vec1$1=new Vector3,vec2$1=new Vector3,calculateOffset$1=(s,o,et,tt)=>{const nt=o.dot(o),rt=o.dot(s)-o.dot(et),it=o.dot(tt);return it===0?-rt/nt:(vec1$1.copy(tt).multiplyScalar(nt/it).sub(o),vec2$1.copy(tt).multiplyScalar(rt/it).add(et).sub(s),-vec1$1.dot(vec2$1)/vec1$1.dot(vec1$1))},upV$1=new Vector3(0,1,0),scaleV=new Vector3,scaleMatrix=new Matrix4,ScalingSphere=({direction:s,axis:o})=>{const{scaleLimits:et,annotations:tt,annotationsClass:nt,depthTest:rt,scale:it,lineWidth:ot,fixed:st,axisColors:at,hoveredColor:lt,opacity:ut,onDragStart:dt,onDrag:ht,onDragEnd:ct,userData:pt}=reactExports.useContext(context$2),ft=useThree(Wt=>Wt.size),gt=useThree(Wt=>Wt.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(1),vt=reactExports.useRef(1),At=reactExports.useRef(null),[Lt,Rt]=reactExports.useState(!1),St=st?1.2:1.2*it,Tt=reactExports.useCallback(Wt=>{tt&&(yt.current.innerText=`${vt.current.toFixed(2)}`,yt.current.style.display="block"),Wt.stopPropagation();const Dt=new Matrix4().extractRotation(Ut.current.matrixWorld),Et=Wt.point.clone(),Pt=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),zt=s.clone().applyMatrix4(Dt).normalize(),en=Ut.current.matrixWorld.clone(),Kt=en.clone().invert(),nn=st?1/calculateScaleFactor$1(Ut.current.getWorldPosition(vec1$1),it,Wt.camera,ft):1;At.current={clickPoint:Et,dir:zt,mPLG:en,mPLGInv:Kt,offsetMultiplier:nn},dt({component:"Sphere",axis:o,origin:Pt,directions:[zt]}),gt&&(gt.enabled=!1),Wt.target.setPointerCapture(Wt.pointerId)},[tt,gt,s,dt,o,st,it,ft]),Bt=reactExports.useCallback(Wt=>{if(Wt.stopPropagation(),Lt||Rt(!0),At.current){const{clickPoint:Dt,dir:Et,mPLG:Pt,mPLGInv:zt,offsetMultiplier:en}=At.current,[Kt,nn]=et?.[o]||[1e-5,void 0],jt=calculateOffset$1(Dt,Et,Wt.ray.origin,Wt.ray.direction)*en,Vt=st?jt:jt/it;let It=Math.pow(2,Vt*.2);Wt.shiftKey&&(It=Math.round(It*10)/10),It=Math.max(It,Kt/mt.current),nn!==void 0&&(It=Math.min(It,nn/mt.current)),vt.current=mt.current*It,Ft.current.position.set(0,St+jt,0),tt&&(yt.current.innerText=`${vt.current.toFixed(2)}`),scaleV.set(1,1,1),scaleV.setComponent(o,It),scaleMatrix.makeScale(scaleV.x,scaleV.y,scaleV.z).premultiply(Pt).multiply(zt),ht(scaleMatrix)}},[tt,St,ht,Lt,et,o]),xt=reactExports.useCallback(Wt=>{tt&&(yt.current.style.display="none"),Wt.stopPropagation(),mt.current=vt.current,At.current=null,Ft.current.position.set(0,St,0),ct(),gt&&(gt.enabled=!0),Wt.target.releasePointerCapture(Wt.pointerId)},[tt,gt,ct,St]),Ct=reactExports.useCallback(Wt=>{Wt.stopPropagation(),Rt(!1)},[]),{radius:kt,matrixL:Nt}=reactExports.useMemo(()=>{const Wt=st?ot/it*1.8:it/22.5,Dt=new Quaternion().setFromUnitVectors(upV$1,s.clone().normalize()),Et=new Matrix4().makeRotationFromQuaternion(Dt);return{radius:Wt,matrixL:Et}},[s,it,ot,st]),Ot=Lt?lt:at[o];return reactExports.createElement("group",{ref:Ut},reactExports.createElement("group",{matrix:Nt,matrixAutoUpdate:!1,onPointerDown:Tt,onPointerMove:Bt,onPointerUp:xt,onPointerOut:Ct},tt&&reactExports.createElement(Html,{position:[0,St/2,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:nt,ref:yt})),reactExports.createElement("mesh",{ref:Ft,position:[0,St,0],renderOrder:500,userData:pt},reactExports.createElement("sphereGeometry",{args:[kt,12,12]}),reactExports.createElement("meshBasicMaterial",{transparent:!0,depthTest:rt,color:Ot,opacity:ut,polygonOffset:!0,polygonOffsetFactor:-10}))))},mL0$1=new Matrix4,mW0$1=new Matrix4,mP$1=new Matrix4,mPInv$1=new Matrix4,mW$1=new Matrix4,mL$1=new Matrix4,mL0Inv$1=new Matrix4,mdL$1=new Matrix4,mG=new Matrix4,bb$1=new Box3,bbObj$1=new Box3,vCenter$1=new Vector3,vSize$1=new Vector3,vAnchorOffset$1=new Vector3,vPosition$1=new Vector3,vScale=new Vector3,xDir$1=new Vector3(1,0,0),yDir$1=new Vector3(0,1,0),zDir$1=new Vector3(0,0,1),PivotControls$1=reactExports.forwardRef(({matrix:s,onDragStart:o,onDrag:et,onDragEnd:tt,autoTransform:nt=!0,anchor:rt,disableAxes:it=!1,disableSliders:ot=!1,disableRotations:st=!1,disableScaling:at=!1,activeAxes:lt=[!0,!0,!0],offset:ut=[0,0,0],rotation:dt=[0,0,0],scale:ht=1,lineWidth:ct=4,fixed:pt=!1,translationLimits:ft,rotationLimits:gt,scaleLimits:yt,depthTest:Ut=!0,axisColors:Ft=["#ff2060","#20df80","#2080ff"],hoveredColor:mt="#ffff40",annotations:vt=!1,annotationsClass:At,opacity:Lt=1,visible:Rt=!0,userData:St,children:Tt,...Bt},xt)=>{const Ct=useThree(Kt=>Kt.invalidate),kt=reactExports.useRef(null),Nt=reactExports.useRef(null),Ot=reactExports.useRef(null),Wt=reactExports.useRef(null),Dt=reactExports.useRef([0,0,0]),Et=reactExports.useRef(new Vector3(1,1,1)),Pt=reactExports.useRef(new Vector3(1,1,1));reactExports.useLayoutEffect(()=>{rt&&(Wt.current.updateWorldMatrix(!0,!0),mPInv$1.copy(Wt.current.matrixWorld).invert(),bb$1.makeEmpty(),Wt.current.traverse(Kt=>{Kt.geometry&&(Kt.geometry.boundingBox||Kt.geometry.computeBoundingBox(),mL$1.copy(Kt.matrixWorld).premultiply(mPInv$1),bbObj$1.copy(Kt.geometry.boundingBox),bbObj$1.applyMatrix4(mL$1),bb$1.union(bbObj$1))}),vCenter$1.copy(bb$1.max).add(bb$1.min).multiplyScalar(.5),vSize$1.copy(bb$1.max).sub(bb$1.min).multiplyScalar(.5),vAnchorOffset$1.copy(vSize$1).multiply(new Vector3(...rt)).add(vCenter$1),vPosition$1.set(...ut).add(vAnchorOffset$1),Ot.current.position.copy(vPosition$1),Ct())});const zt=reactExports.useMemo(()=>({onDragStart:Kt=>{mL0$1.copy(Nt.current.matrix),mW0$1.copy(Nt.current.matrixWorld),o&&o(Kt),Ct()},onDrag:Kt=>{mP$1.copy(kt.current.matrixWorld),mPInv$1.copy(mP$1).invert(),mW$1.copy(mW0$1).premultiply(Kt),mL$1.copy(mW$1).premultiply(mPInv$1),mL0Inv$1.copy(mL0$1).invert(),mdL$1.copy(mL$1).multiply(mL0Inv$1),nt&&Nt.current.matrix.copy(mL$1),et&&et(mL$1,mdL$1,mW$1,Kt),Ct()},onDragEnd:()=>{tt&&tt(),Ct()},translation:Dt,translationLimits:ft,rotationLimits:gt,axisColors:Ft,hoveredColor:mt,opacity:Lt,scale:ht,lineWidth:ct,fixed:pt,depthTest:Ut,userData:St,annotations:vt,annotationsClass:At}),[o,et,tt,Dt,ft,gt,yt,Ut,ht,ct,pt,...Ft,mt,Lt,St,nt,vt,At]),en=new Vector3;return useFrame(Kt=>{if(pt){const nn=calculateScaleFactor$1(Ot.current.getWorldPosition(en),ht,Kt.camera,Kt.size);Et.current.setScalar(nn)}s&&s instanceof Matrix4&&(Nt.current.matrix=s),Nt.current.updateWorldMatrix(!0,!0),mG.makeRotationFromEuler(Ot.current.rotation).setPosition(Ot.current.position).premultiply(Nt.current.matrixWorld),Pt.current.setFromMatrixScale(mG),vScale.copy(Et.current).divide(Pt.current),(Math.abs(Ot.current.scale.x-vScale.x)>1e-4||Math.abs(Ot.current.scale.y-vScale.y)>1e-4||Math.abs(Ot.current.scale.z-vScale.z)>1e-4)&&(Ot.current.scale.copy(vScale),Kt.invalidate())}),reactExports.useImperativeHandle(xt,()=>Nt.current,[]),reactExports.createElement(context$2.Provider,{value:zt},reactExports.createElement("group",{ref:kt},reactExports.createElement("group",_extends$2({ref:Nt,matrix:s,matrixAutoUpdate:!1},Bt),reactExports.createElement("group",{visible:Rt,ref:Ot,position:ut,rotation:dt},!it&<[0]&&reactExports.createElement(AxisArrow$1,{axis:0,direction:xDir$1}),!it&<[1]&&reactExports.createElement(AxisArrow$1,{axis:1,direction:yDir$1}),!it&<[2]&&reactExports.createElement(AxisArrow$1,{axis:2,direction:zDir$1}),!ot&<[0]&<[1]&&reactExports.createElement(PlaneSlider$1,{axis:2,dir1:xDir$1,dir2:yDir$1}),!ot&<[0]&<[2]&&reactExports.createElement(PlaneSlider$1,{axis:1,dir1:zDir$1,dir2:xDir$1}),!ot&<[2]&<[1]&&reactExports.createElement(PlaneSlider$1,{axis:0,dir1:yDir$1,dir2:zDir$1}),!st&<[0]&<[1]&&reactExports.createElement(AxisRotator$1,{axis:2,dir1:xDir$1,dir2:yDir$1}),!st&<[0]&<[2]&&reactExports.createElement(AxisRotator$1,{axis:1,dir1:zDir$1,dir2:xDir$1}),!st&<[2]&<[1]&&reactExports.createElement(AxisRotator$1,{axis:0,dir1:yDir$1,dir2:zDir$1}),!at&<[0]&&reactExports.createElement(ScalingSphere,{axis:0,direction:xDir$1}),!at&<[1]&&reactExports.createElement(ScalingSphere,{axis:1,direction:yDir$1}),!at&<[2]&&reactExports.createElement(ScalingSphere,{axis:2,direction:zDir$1})),reactExports.createElement("group",{ref:Wt},Tt))))}),FormantColors={flagship:"#1C1E2D",silver:"#BAC4E2",white:"white",module:"#2D3855",steel01:"#282f45",steel02:"#3b4668",steel03:"#657197",red:"#EA719D",green:"#2EC495",blue:"#20A0FF",gradient01:["#FF72CC","#00E4FF"],mapColor:"#0b1224",occupiedColor:"#4f5f96",primary:"#729fda",critical:"#FF72CC",dark:"#0a0b10",offwhite:"#f8f9fc",blueice:"#f0f7fe",royalBlue:"#20a0ff",royalBluedark:"#256faf",greendark:"#2d8376",mint:"#64d7d4",mintdark:"#4a8d98",purple:"#a961e4",purpledark:"#564a94",reddark:"#7f5072",orange:"#f89973",orangedark:"#94645f",yellow:"#f9c36e",yellowdark:"#9a8261",rhenium:"#797DDB",mithril:"#76A7DC"};/** + */const MOUSE_BUTTON={LEFT:1,RIGHT:2,MIDDLE:4},ACTION=Object.freeze({NONE:0,ROTATE:1,TRUCK:2,OFFSET:4,DOLLY:8,ZOOM:16,TOUCH_ROTATE:32,TOUCH_TRUCK:64,TOUCH_OFFSET:128,TOUCH_DOLLY:256,TOUCH_ZOOM:512,TOUCH_DOLLY_TRUCK:1024,TOUCH_DOLLY_OFFSET:2048,TOUCH_DOLLY_ROTATE:4096,TOUCH_ZOOM_TRUCK:8192,TOUCH_ZOOM_OFFSET:16384,TOUCH_ZOOM_ROTATE:32768}),DOLLY_DIRECTION={NONE:0,IN:1,OUT:-1};function isPerspectiveCamera(s){return s.isPerspectiveCamera}function isOrthographicCamera(s){return s.isOrthographicCamera}const PI_2=Math.PI*2,PI_HALF=Math.PI/2,EPSILON$1=1e-5,DEG2RAD=Math.PI/180;function clamp$3(s,o,et){return Math.max(o,Math.min(et,s))}function approxZero(s,o=EPSILON$1){return Math.abs(s)0==ht>lt&&(ht=lt,et.value=(ht-lt)/rt),ht}function smoothDampVec3(s,o,et,tt,nt=1/0,rt,it){tt=Math.max(1e-4,tt);const ot=2/tt,st=ot*rt,at=1/(1+st+.48*st*st+.235*st*st*st);let lt=o.x,ut=o.y,dt=o.z,ht=s.x-lt,ct=s.y-ut,pt=s.z-dt;const ft=lt,gt=ut,yt=dt,Ut=nt*tt,Ft=Ut*Ut,mt=ht*ht+ct*ct+pt*pt;if(mt>Ft){const kt=Math.sqrt(mt);ht=ht/kt*Ut,ct=ct/kt*Ut,pt=pt/kt*Ut}lt=s.x-ht,ut=s.y-ct,dt=s.z-pt;const vt=(et.x+ot*ht)*rt,At=(et.y+ot*ct)*rt,Lt=(et.z+ot*pt)*rt;et.x=(et.x-ot*vt)*at,et.y=(et.y-ot*At)*at,et.z=(et.z-ot*Lt)*at,it.x=lt+(ht+vt)*at,it.y=ut+(ct+At)*at,it.z=dt+(pt+Lt)*at;const Rt=ft-s.x,St=gt-s.y,Tt=yt-s.z,Bt=it.x-ft,xt=it.y-gt,Ct=it.z-yt;return Rt*Bt+St*xt+Tt*Ct>0&&(it.x=ft,it.y=gt,it.z=yt,et.x=(it.x-ft)/rt,et.y=(it.y-gt)/rt,et.z=(it.z-yt)/rt),it}function extractClientCoordFromEvent(s,o){o.set(0,0),s.forEach(et=>{o.x+=et.clientX,o.y+=et.clientY}),o.x/=s.length,o.y/=s.length}function notSupportedInOrthographicCamera(s,o){return isOrthographicCamera(s)?(console.warn(`${o} is not supported in OrthographicCamera`),!0):!1}class EventDispatcher{constructor(){this._listeners={}}addEventListener(o,et){const tt=this._listeners;tt[o]===void 0&&(tt[o]=[]),tt[o].indexOf(et)===-1&&tt[o].push(et)}hasEventListener(o,et){const tt=this._listeners;return tt[o]!==void 0&&tt[o].indexOf(et)!==-1}removeEventListener(o,et){const nt=this._listeners[o];if(nt!==void 0){const rt=nt.indexOf(et);rt!==-1&&nt.splice(rt,1)}}removeAllEventListeners(o){if(!o){this._listeners={};return}Array.isArray(this._listeners[o])&&(this._listeners[o].length=0)}dispatchEvent(o){const tt=this._listeners[o.type];if(tt!==void 0){o.target=this;const nt=tt.slice(0);for(let rt=0,it=nt.length;rt{},this._enabled=!0,this._state=ACTION.NONE,this._viewport=null,this._changedDolly=0,this._changedZoom=0,this._hasRested=!0,this._boundaryEnclosesCamera=!1,this._needsUpdate=!0,this._updatedLastTime=!1,this._elementRect=new DOMRect,this._isDragging=!1,this._dragNeedsUpdate=!0,this._activePointers=[],this._lockedPointer=null,this._interactiveArea=new DOMRect(0,0,1,1),this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._isUserControllingOffset=!1,this._isUserControllingZoom=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._thetaVelocity={value:0},this._phiVelocity={value:0},this._radiusVelocity={value:0},this._targetVelocity=new THREE.Vector3,this._focalOffsetVelocity=new THREE.Vector3,this._zoomVelocity={value:0},this._truckInternal=(Ft,mt,vt)=>{let At,Lt;if(isPerspectiveCamera(this._camera)){const Rt=_v3A.copy(this._camera.position).sub(this._target),St=this._camera.getEffectiveFOV()*DEG2RAD,Tt=Rt.length()*Math.tan(St*.5);At=this.truckSpeed*Ft*Tt/this._elementRect.height,Lt=this.truckSpeed*mt*Tt/this._elementRect.height}else if(isOrthographicCamera(this._camera)){const Rt=this._camera;At=Ft*(Rt.right-Rt.left)/Rt.zoom/this._elementRect.width,Lt=mt*(Rt.top-Rt.bottom)/Rt.zoom/this._elementRect.height}else return;this.verticalDragToForward?(vt?this.setFocalOffset(this._focalOffsetEnd.x+At,this._focalOffsetEnd.y,this._focalOffsetEnd.z,!0):this.truck(At,0,!0),this.forward(-Lt,!0)):vt?this.setFocalOffset(this._focalOffsetEnd.x+At,this._focalOffsetEnd.y+Lt,this._focalOffsetEnd.z,!0):this.truck(At,Lt,!0)},this._rotateInternal=(Ft,mt)=>{const vt=PI_2*this.azimuthRotateSpeed*Ft/this._elementRect.height,At=PI_2*this.polarRotateSpeed*mt/this._elementRect.height;this.rotate(vt,At,!0)},this._dollyInternal=(Ft,mt,vt)=>{const At=Math.pow(.95,-Ft*this.dollySpeed),Lt=this._sphericalEnd.radius,Rt=this._sphericalEnd.radius*At,St=clamp$3(Rt,this.minDistance,this.maxDistance),Tt=St-Rt;this.infinityDolly&&this.dollyToCursor?this._dollyToNoClamp(Rt,!0):this.infinityDolly&&!this.dollyToCursor?(this.dollyInFixed(Tt,!0),this._dollyToNoClamp(St,!0)):this._dollyToNoClamp(St,!0),this.dollyToCursor&&(this._changedDolly+=(this.infinityDolly?Rt:St)-Lt,this._dollyControlCoord.set(mt,vt)),this._lastDollyDirection=Math.sign(-Ft)},this._zoomInternal=(Ft,mt,vt)=>{const At=Math.pow(.95,Ft*this.dollySpeed),Lt=this._zoom,Rt=this._zoom*At;this.zoomTo(Rt,!0),this.dollyToCursor&&(this._changedZoom+=Rt-Lt,this._dollyControlCoord.set(mt,vt))},typeof THREE>"u"&&console.error("camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information."),this._camera=o,this._yAxisUpSpace=new THREE.Quaternion().setFromUnitVectors(this._camera.up,_AXIS_Y),this._yAxisUpSpaceInverse=this._yAxisUpSpace.clone().invert(),this._state=ACTION.NONE,this._target=new THREE.Vector3,this._targetEnd=this._target.clone(),this._focalOffset=new THREE.Vector3,this._focalOffsetEnd=this._focalOffset.clone(),this._spherical=new THREE.Spherical().setFromVector3(_v3A.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace)),this._sphericalEnd=this._spherical.clone(),this._lastDistance=this._spherical.radius,this._zoom=this._camera.zoom,this._zoomEnd=this._zoom,this._lastZoom=this._zoom,this._nearPlaneCorners=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3],this._updateNearPlaneCorners(),this._boundary=new THREE.Box3(new THREE.Vector3(-1/0,-1/0,-1/0),new THREE.Vector3(1/0,1/0,1/0)),this._cameraUp0=this._camera.up.clone(),this._target0=this._target.clone(),this._position0=this._camera.position.clone(),this._zoom0=this._zoom,this._focalOffset0=this._focalOffset.clone(),this._dollyControlCoord=new THREE.Vector2,this.mouseButtons={left:ACTION.ROTATE,middle:ACTION.DOLLY,right:ACTION.TRUCK,wheel:isPerspectiveCamera(this._camera)?ACTION.DOLLY:isOrthographicCamera(this._camera)?ACTION.ZOOM:ACTION.NONE},this.touches={one:ACTION.TOUCH_ROTATE,two:isPerspectiveCamera(this._camera)?ACTION.TOUCH_DOLLY_TRUCK:isOrthographicCamera(this._camera)?ACTION.TOUCH_ZOOM_TRUCK:ACTION.NONE,three:ACTION.TOUCH_TRUCK};const tt=new THREE.Vector2,nt=new THREE.Vector2,rt=new THREE.Vector2,it=Ft=>{if(!this._enabled||!this._domElement)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const At=this._domElement.getBoundingClientRect(),Lt=Ft.clientX/At.width,Rt=Ft.clientY/At.height;if(Ltthis._interactiveArea.right||Rtthis._interactiveArea.bottom)return}const mt=Ft.pointerType!=="mouse"?null:(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE?MOUSE_BUTTON.MIDDLE:(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT?MOUSE_BUTTON.RIGHT:null;if(mt!==null){const At=this._findPointerByMouseButton(mt);At&&this._disposePointer(At)}if((Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT&&this._lockedPointer)return;const vt={pointerId:Ft.pointerId,clientX:Ft.clientX,clientY:Ft.clientY,deltaX:0,deltaY:0,mouseButton:mt};this._activePointers.push(vt),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.addEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.addEventListener("pointerup",lt),this._isDragging=!0,pt(Ft)},ot=Ft=>{if(!this._enabled||!this._domElement||this._lockedPointer)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const At=this._domElement.getBoundingClientRect(),Lt=Ft.clientX/At.width,Rt=Ft.clientY/At.height;if(Ltthis._interactiveArea.right||Rtthis._interactiveArea.bottom)return}const mt=(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE?MOUSE_BUTTON.MIDDLE:(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT?MOUSE_BUTTON.RIGHT:null;if(mt!==null){const At=this._findPointerByMouseButton(mt);At&&this._disposePointer(At)}const vt={pointerId:1,clientX:Ft.clientX,clientY:Ft.clientY,deltaX:0,deltaY:0,mouseButton:(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.MIDDLE:(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.RIGHT:null};this._activePointers.push(vt),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("mouseup",ut),this._domElement.ownerDocument.addEventListener("mousemove",at),this._domElement.ownerDocument.addEventListener("mouseup",ut),this._isDragging=!0,pt(Ft)},st=Ft=>{Ft.cancelable&&Ft.preventDefault();const mt=Ft.pointerId,vt=this._lockedPointer||this._findPointerById(mt);if(vt){if(vt.clientX=Ft.clientX,vt.clientY=Ft.clientY,vt.deltaX=Ft.movementX,vt.deltaY=Ft.movementY,this._state=0,Ft.pointerType==="touch")switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else(!this._isDragging&&this._lockedPointer||this._isDragging&&(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT)&&(this._state=this._state|this.mouseButtons.left),this._isDragging&&(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),this._isDragging&&(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right);ft()}},at=Ft=>{const mt=this._lockedPointer||this._findPointerById(1);mt&&(mt.clientX=Ft.clientX,mt.clientY=Ft.clientY,mt.deltaX=Ft.movementX,mt.deltaY=Ft.movementY,this._state=0,(this._lockedPointer||(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT)&&(this._state=this._state|this.mouseButtons.left),(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right),ft())},lt=Ft=>{const mt=this._findPointerById(Ft.pointerId);if(!(mt&&mt===this._lockedPointer)){if(mt&&this._disposePointer(mt),Ft.pointerType==="touch")switch(this._activePointers.length){case 0:this._state=ACTION.NONE;break;case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else this._state=ACTION.NONE;gt()}},ut=()=>{const Ft=this._findPointerById(1);Ft&&Ft===this._lockedPointer||(Ft&&this._disposePointer(Ft),this._state=ACTION.NONE,gt())};let dt=-1;const ht=Ft=>{if(!this._domElement||!this._enabled||this.mouseButtons.wheel===ACTION.NONE)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const Rt=this._domElement.getBoundingClientRect(),St=Ft.clientX/Rt.width,Tt=Ft.clientY/Rt.height;if(Stthis._interactiveArea.right||Ttthis._interactiveArea.bottom)return}if(Ft.preventDefault(),this.dollyToCursor||this.mouseButtons.wheel===ACTION.ROTATE||this.mouseButtons.wheel===ACTION.TRUCK){const Rt=performance.now();dt-Rt<1e3&&this._getClientRect(this._elementRect),dt=Rt}const mt=isMac?-1:-3,vt=Ft.deltaMode===1?Ft.deltaY/mt:Ft.deltaY/(mt*10),At=this.dollyToCursor?(Ft.clientX-this._elementRect.x)/this._elementRect.width*2-1:0,Lt=this.dollyToCursor?(Ft.clientY-this._elementRect.y)/this._elementRect.height*-2+1:0;switch(this.mouseButtons.wheel){case ACTION.ROTATE:{this._rotateInternal(Ft.deltaX,Ft.deltaY),this._isUserControllingRotate=!0;break}case ACTION.TRUCK:{this._truckInternal(Ft.deltaX,Ft.deltaY,!1),this._isUserControllingTruck=!0;break}case ACTION.OFFSET:{this._truckInternal(Ft.deltaX,Ft.deltaY,!0),this._isUserControllingOffset=!0;break}case ACTION.DOLLY:{this._dollyInternal(-vt,At,Lt),this._isUserControllingDolly=!0;break}case ACTION.ZOOM:{this._zoomInternal(-vt,At,Lt),this._isUserControllingZoom=!0;break}}this.dispatchEvent({type:"control"})},ct=Ft=>{if(!(!this._domElement||!this._enabled)){if(this.mouseButtons.right===sm.ACTION.NONE){const mt=Ft instanceof PointerEvent?Ft.pointerId:(Ft instanceof MouseEvent,0),vt=this._findPointerById(mt);vt&&this._disposePointer(vt),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("mouseup",ut);return}Ft.preventDefault()}},pt=Ft=>{if(!this._enabled)return;if(extractClientCoordFromEvent(this._activePointers,_v2),this._getClientRect(this._elementRect),tt.copy(_v2),nt.copy(_v2),this._activePointers.length>=2){const vt=_v2.x-this._activePointers[1].clientX,At=_v2.y-this._activePointers[1].clientY,Lt=Math.sqrt(vt*vt+At*At);rt.set(0,Lt);const Rt=(this._activePointers[0].clientX+this._activePointers[1].clientX)*.5,St=(this._activePointers[0].clientY+this._activePointers[1].clientY)*.5;nt.set(Rt,St)}if(this._state=0,!Ft)this._lockedPointer&&(this._state=this._state|this.mouseButtons.left);else if("pointerType"in Ft&&Ft.pointerType==="touch")switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else!this._lockedPointer&&(Ft.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT&&(this._state=this._state|this.mouseButtons.left),(Ft.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(Ft.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right);((this._state&ACTION.ROTATE)===ACTION.ROTATE||(this._state&ACTION.TOUCH_ROTATE)===ACTION.TOUCH_ROTATE||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._sphericalEnd.theta=this._spherical.theta,this._sphericalEnd.phi=this._spherical.phi,this._thetaVelocity.value=0,this._phiVelocity.value=0),((this._state&ACTION.TRUCK)===ACTION.TRUCK||(this._state&ACTION.TOUCH_TRUCK)===ACTION.TOUCH_TRUCK||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK)&&(this._targetEnd.copy(this._target),this._targetVelocity.set(0,0,0)),((this._state&ACTION.DOLLY)===ACTION.DOLLY||(this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE)&&(this._sphericalEnd.radius=this._spherical.radius,this._radiusVelocity.value=0),((this._state&ACTION.ZOOM)===ACTION.ZOOM||(this._state&ACTION.TOUCH_ZOOM)===ACTION.TOUCH_ZOOM||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._zoomEnd=this._zoom,this._zoomVelocity.value=0),((this._state&ACTION.OFFSET)===ACTION.OFFSET||(this._state&ACTION.TOUCH_OFFSET)===ACTION.TOUCH_OFFSET||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET)&&(this._focalOffsetEnd.copy(this._focalOffset),this._focalOffsetVelocity.set(0,0,0)),this.dispatchEvent({type:"controlstart"})},ft=()=>{if(!this._enabled||!this._dragNeedsUpdate)return;this._dragNeedsUpdate=!1,extractClientCoordFromEvent(this._activePointers,_v2);const mt=this._domElement&&document.pointerLockElement===this._domElement?this._lockedPointer||this._activePointers[0]:null,vt=mt?-mt.deltaX:nt.x-_v2.x,At=mt?-mt.deltaY:nt.y-_v2.y;if(nt.copy(_v2),((this._state&ACTION.ROTATE)===ACTION.ROTATE||(this._state&ACTION.TOUCH_ROTATE)===ACTION.TOUCH_ROTATE||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._rotateInternal(vt,At),this._isUserControllingRotate=!0),(this._state&ACTION.DOLLY)===ACTION.DOLLY||(this._state&ACTION.ZOOM)===ACTION.ZOOM){const Lt=this.dollyToCursor?(tt.x-this._elementRect.x)/this._elementRect.width*2-1:0,Rt=this.dollyToCursor?(tt.y-this._elementRect.y)/this._elementRect.height*-2+1:0,St=this.dollyDragInverted?-1:1;(this._state&ACTION.DOLLY)===ACTION.DOLLY?(this._dollyInternal(St*At*TOUCH_DOLLY_FACTOR,Lt,Rt),this._isUserControllingDolly=!0):(this._zoomInternal(St*At*TOUCH_DOLLY_FACTOR,Lt,Rt),this._isUserControllingZoom=!0)}if((this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_ZOOM)===ACTION.TOUCH_ZOOM||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE){const Lt=_v2.x-this._activePointers[1].clientX,Rt=_v2.y-this._activePointers[1].clientY,St=Math.sqrt(Lt*Lt+Rt*Rt),Tt=rt.y-St;rt.set(0,St);const Bt=this.dollyToCursor?(nt.x-this._elementRect.x)/this._elementRect.width*2-1:0,xt=this.dollyToCursor?(nt.y-this._elementRect.y)/this._elementRect.height*-2+1:0;(this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET?(this._dollyInternal(Tt*TOUCH_DOLLY_FACTOR,Bt,xt),this._isUserControllingDolly=!0):(this._zoomInternal(Tt*TOUCH_DOLLY_FACTOR,Bt,xt),this._isUserControllingZoom=!0)}((this._state&ACTION.TRUCK)===ACTION.TRUCK||(this._state&ACTION.TOUCH_TRUCK)===ACTION.TOUCH_TRUCK||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK)&&(this._truckInternal(vt,At,!1),this._isUserControllingTruck=!0),((this._state&ACTION.OFFSET)===ACTION.OFFSET||(this._state&ACTION.TOUCH_OFFSET)===ACTION.TOUCH_OFFSET||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET)&&(this._truckInternal(vt,At,!0),this._isUserControllingOffset=!0),this.dispatchEvent({type:"control"})},gt=()=>{extractClientCoordFromEvent(this._activePointers,_v2),nt.copy(_v2),this._dragNeedsUpdate=!1,(this._activePointers.length===0||this._activePointers.length===1&&this._activePointers[0]===this._lockedPointer)&&(this._isDragging=!1),this._activePointers.length===0&&this._domElement&&(this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.removeEventListener("mouseup",ut),this.dispatchEvent({type:"controlend"}))};this.lockPointer=()=>{!this._enabled||!this._domElement||(this.cancel(),this._lockedPointer={pointerId:-1,clientX:0,clientY:0,deltaX:0,deltaY:0,mouseButton:null},this._activePointers.push(this._lockedPointer),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.requestPointerLock(),this._domElement.ownerDocument.addEventListener("pointerlockchange",yt),this._domElement.ownerDocument.addEventListener("pointerlockerror",Ut),this._domElement.ownerDocument.addEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.addEventListener("pointerup",lt),pt())},this.unlockPointer=()=>{this._lockedPointer!==null&&(this._disposePointer(this._lockedPointer),this._lockedPointer=null),document.exitPointerLock(),this.cancel(),this._domElement&&(this._domElement.ownerDocument.removeEventListener("pointerlockchange",yt),this._domElement.ownerDocument.removeEventListener("pointerlockerror",Ut))};const yt=()=>{this._domElement&&this._domElement.ownerDocument.pointerLockElement===this._domElement||this.unlockPointer()},Ut=()=>{this.unlockPointer()};this._addAllEventListeners=Ft=>{this._domElement=Ft,this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none",this._domElement.addEventListener("pointerdown",it),isPointerEventsNotSupported&&this._domElement.addEventListener("mousedown",ot),this._domElement.addEventListener("pointercancel",lt),this._domElement.addEventListener("wheel",ht,{passive:!1}),this._domElement.addEventListener("contextmenu",ct)},this._removeAllEventListeners=()=>{this._domElement&&(this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect="",this._domElement.removeEventListener("pointerdown",it),this._domElement.removeEventListener("mousedown",ot),this._domElement.removeEventListener("pointercancel",lt),this._domElement.removeEventListener("wheel",ht,{passive:!1}),this._domElement.removeEventListener("contextmenu",ct),this._domElement.ownerDocument.removeEventListener("pointermove",st,{passive:!1}),this._domElement.ownerDocument.removeEventListener("mousemove",at),this._domElement.ownerDocument.removeEventListener("pointerup",lt),this._domElement.ownerDocument.removeEventListener("mouseup",ut),this._domElement.ownerDocument.removeEventListener("pointerlockchange",yt),this._domElement.ownerDocument.removeEventListener("pointerlockerror",Ut))},this.cancel=()=>{this._state!==ACTION.NONE&&(this._state=ACTION.NONE,this._activePointers.length=0,gt())},et&&this.connect(et),this.update(0)}get camera(){return this._camera}set camera(o){this._camera=o,this.updateCameraUp(),this._camera.updateProjectionMatrix(),this._updateNearPlaneCorners(),this._needsUpdate=!0}get enabled(){return this._enabled}set enabled(o){this._enabled=o,this._domElement&&(o?(this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none"):(this.cancel(),this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect=""))}get active(){return!this._hasRested}get currentAction(){return this._state}get distance(){return this._spherical.radius}set distance(o){this._spherical.radius===o&&this._sphericalEnd.radius===o||(this._spherical.radius=o,this._sphericalEnd.radius=o,this._needsUpdate=!0)}get azimuthAngle(){return this._spherical.theta}set azimuthAngle(o){this._spherical.theta===o&&this._sphericalEnd.theta===o||(this._spherical.theta=o,this._sphericalEnd.theta=o,this._needsUpdate=!0)}get polarAngle(){return this._spherical.phi}set polarAngle(o){this._spherical.phi===o&&this._sphericalEnd.phi===o||(this._spherical.phi=o,this._sphericalEnd.phi=o,this._needsUpdate=!0)}get boundaryEnclosesCamera(){return this._boundaryEnclosesCamera}set boundaryEnclosesCamera(o){this._boundaryEnclosesCamera=o,this._needsUpdate=!0}set interactiveArea(o){this._interactiveArea.width=clamp$3(o.width,0,1),this._interactiveArea.height=clamp$3(o.height,0,1),this._interactiveArea.x=clamp$3(o.x,0,1-this._interactiveArea.width),this._interactiveArea.y=clamp$3(o.y,0,1-this._interactiveArea.height)}addEventListener(o,et){super.addEventListener(o,et)}removeEventListener(o,et){super.removeEventListener(o,et)}rotate(o,et,tt=!1){return this.rotateTo(this._sphericalEnd.theta+o,this._sphericalEnd.phi+et,tt)}rotateAzimuthTo(o,et=!1){return this.rotateTo(o,this._sphericalEnd.phi,et)}rotatePolarTo(o,et=!1){return this.rotateTo(this._sphericalEnd.theta,o,et)}rotateTo(o,et,tt=!1){this._isUserControllingRotate=!1;const nt=clamp$3(o,this.minAzimuthAngle,this.maxAzimuthAngle),rt=clamp$3(et,this.minPolarAngle,this.maxPolarAngle);this._sphericalEnd.theta=nt,this._sphericalEnd.phi=rt,this._sphericalEnd.makeSafe(),this._needsUpdate=!0,tt||(this._spherical.theta=this._sphericalEnd.theta,this._spherical.phi=this._sphericalEnd.phi);const it=!tt||approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold);return this._createOnRestPromise(it)}dolly(o,et=!1){return this.dollyTo(this._sphericalEnd.radius-o,et)}dollyTo(o,et=!1){return this._isUserControllingDolly=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0,this._dollyToNoClamp(clamp$3(o,this.minDistance,this.maxDistance),et)}_dollyToNoClamp(o,et=!1){const tt=this._sphericalEnd.radius;if(this.colliderMeshes.length>=1){const it=this._collisionTest(),ot=approxEquals(it,this._spherical.radius);if(!(tt>o)&&ot)return Promise.resolve();this._sphericalEnd.radius=Math.min(o,it)}else this._sphericalEnd.radius=o;this._needsUpdate=!0,et||(this._spherical.radius=this._sphericalEnd.radius);const rt=!et||approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(rt)}dollyInFixed(o,et=!1){this._targetEnd.add(this._getCameraDirection(_cameraDirection).multiplyScalar(o)),et||this._target.copy(this._targetEnd);const tt=!et||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(tt)}zoom(o,et=!1){return this.zoomTo(this._zoomEnd+o,et)}zoomTo(o,et=!1){this._isUserControllingZoom=!1,this._zoomEnd=clamp$3(o,this.minZoom,this.maxZoom),this._needsUpdate=!0,et||(this._zoom=this._zoomEnd);const tt=!et||approxEquals(this._zoom,this._zoomEnd,this.restThreshold);return this._changedZoom=0,this._createOnRestPromise(tt)}pan(o,et,tt=!1){return console.warn("`pan` has been renamed to `truck`"),this.truck(o,et,tt)}truck(o,et,tt=!1){this._camera.updateMatrix(),_xColumn.setFromMatrixColumn(this._camera.matrix,0),_yColumn.setFromMatrixColumn(this._camera.matrix,1),_xColumn.multiplyScalar(o),_yColumn.multiplyScalar(-et);const nt=_v3A.copy(_xColumn).add(_yColumn),rt=_v3B.copy(this._targetEnd).add(nt);return this.moveTo(rt.x,rt.y,rt.z,tt)}forward(o,et=!1){_v3A.setFromMatrixColumn(this._camera.matrix,0),_v3A.crossVectors(this._camera.up,_v3A),_v3A.multiplyScalar(o);const tt=_v3B.copy(this._targetEnd).add(_v3A);return this.moveTo(tt.x,tt.y,tt.z,et)}elevate(o,et=!1){return _v3A.copy(this._camera.up).multiplyScalar(o),this.moveTo(this._targetEnd.x+_v3A.x,this._targetEnd.y+_v3A.y,this._targetEnd.z+_v3A.z,et)}moveTo(o,et,tt,nt=!1){this._isUserControllingTruck=!1;const rt=_v3A.set(o,et,tt).sub(this._targetEnd);this._encloseToBoundary(this._targetEnd,rt,this.boundaryFriction),this._needsUpdate=!0,nt||this._target.copy(this._targetEnd);const it=!nt||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(it)}lookInDirectionOf(o,et,tt,nt=!1){const ot=_v3A.set(o,et,tt).sub(this._targetEnd).normalize().multiplyScalar(-this._sphericalEnd.radius);return this.setPosition(ot.x,ot.y,ot.z,nt)}fitToBox(o,et,{cover:tt=!1,paddingLeft:nt=0,paddingRight:rt=0,paddingBottom:it=0,paddingTop:ot=0}={}){const st=[],at=o.isBox3?_box3A.copy(o):_box3A.setFromObject(o);at.isEmpty()&&(console.warn("camera-controls: fitTo() cannot be used with an empty box. Aborting"),Promise.resolve());const lt=roundToStep(this._sphericalEnd.theta,PI_HALF),ut=roundToStep(this._sphericalEnd.phi,PI_HALF);st.push(this.rotateTo(lt,ut,et));const dt=_v3A.setFromSpherical(this._sphericalEnd).normalize(),ht=_quaternionA.setFromUnitVectors(dt,_AXIS_Z),ct=approxEquals(Math.abs(dt.y),1);ct&&ht.multiply(_quaternionB.setFromAxisAngle(_AXIS_Y,lt)),ht.multiply(this._yAxisUpSpaceInverse);const pt=_box3B.makeEmpty();_v3B.copy(at.min).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.min).setX(at.max.x).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.min).setY(at.max.y).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).setZ(at.min.z).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.min).setZ(at.max.z).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).setY(at.min.y).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).setX(at.min.x).applyQuaternion(ht),pt.expandByPoint(_v3B),_v3B.copy(at.max).applyQuaternion(ht),pt.expandByPoint(_v3B),pt.min.x-=nt,pt.min.y-=it,pt.max.x+=rt,pt.max.y+=ot,ht.setFromUnitVectors(_AXIS_Z,dt),ct&&ht.premultiply(_quaternionB.invert()),ht.premultiply(this._yAxisUpSpace);const ft=pt.getSize(_v3A),gt=pt.getCenter(_v3B).applyQuaternion(ht);if(isPerspectiveCamera(this._camera)){const yt=this.getDistanceToFitBox(ft.x,ft.y,ft.z,tt);st.push(this.moveTo(gt.x,gt.y,gt.z,et)),st.push(this.dollyTo(yt,et)),st.push(this.setFocalOffset(0,0,0,et))}else if(isOrthographicCamera(this._camera)){const yt=this._camera,Ut=yt.right-yt.left,Ft=yt.top-yt.bottom,mt=tt?Math.max(Ut/ft.x,Ft/ft.y):Math.min(Ut/ft.x,Ft/ft.y);st.push(this.moveTo(gt.x,gt.y,gt.z,et)),st.push(this.zoomTo(mt,et)),st.push(this.setFocalOffset(0,0,0,et))}return Promise.all(st)}fitToSphere(o,et){const tt=[],rt=o instanceof THREE.Sphere?_sphere.copy(o):sm.createBoundingSphere(o,_sphere);if(tt.push(this.moveTo(rt.center.x,rt.center.y,rt.center.z,et)),isPerspectiveCamera(this._camera)){const it=this.getDistanceToFitSphere(rt.radius);tt.push(this.dollyTo(it,et))}else if(isOrthographicCamera(this._camera)){const it=this._camera.right-this._camera.left,ot=this._camera.top-this._camera.bottom,st=2*rt.radius,at=Math.min(it/st,ot/st);tt.push(this.zoomTo(at,et))}return tt.push(this.setFocalOffset(0,0,0,et)),Promise.all(tt)}setLookAt(o,et,tt,nt,rt,it,ot=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0;const st=_v3B.set(nt,rt,it),at=_v3A.set(o,et,tt);this._targetEnd.copy(st),this._sphericalEnd.setFromVector3(at.sub(st).applyQuaternion(this._yAxisUpSpace)),this.normalizeRotations(),this._needsUpdate=!0,ot||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));const lt=!ot||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold)&&approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(lt)}lerpLookAt(o,et,tt,nt,rt,it,ot,st,at,lt,ut,dt,ht,ct=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0;const pt=_v3A.set(nt,rt,it),ft=_v3B.set(o,et,tt);_sphericalA.setFromVector3(ft.sub(pt).applyQuaternion(this._yAxisUpSpace));const gt=_v3C.set(lt,ut,dt),yt=_v3B.set(ot,st,at);_sphericalB.setFromVector3(yt.sub(gt).applyQuaternion(this._yAxisUpSpace)),this._targetEnd.copy(pt.lerp(gt,ht));const Ut=_sphericalB.theta-_sphericalA.theta,Ft=_sphericalB.phi-_sphericalA.phi,mt=_sphericalB.radius-_sphericalA.radius;this._sphericalEnd.set(_sphericalA.radius+mt*ht,_sphericalA.phi+Ft*ht,_sphericalA.theta+Ut*ht),this.normalizeRotations(),this._needsUpdate=!0,ct||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));const vt=!ct||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold)&&approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(vt)}setPosition(o,et,tt,nt=!1){return this.setLookAt(o,et,tt,this._targetEnd.x,this._targetEnd.y,this._targetEnd.z,nt)}setTarget(o,et,tt,nt=!1){const rt=this.getPosition(_v3A),it=this.setLookAt(rt.x,rt.y,rt.z,o,et,tt,nt);return this._sphericalEnd.phi=clamp$3(this._sphericalEnd.phi,this.minPolarAngle,this.maxPolarAngle),it}setFocalOffset(o,et,tt,nt=!1){this._isUserControllingOffset=!1,this._focalOffsetEnd.set(o,et,tt),this._needsUpdate=!0,nt||this._focalOffset.copy(this._focalOffsetEnd);const rt=!nt||approxEquals(this._focalOffset.x,this._focalOffsetEnd.x,this.restThreshold)&&approxEquals(this._focalOffset.y,this._focalOffsetEnd.y,this.restThreshold)&&approxEquals(this._focalOffset.z,this._focalOffsetEnd.z,this.restThreshold);return this._createOnRestPromise(rt)}setOrbitPoint(o,et,tt){this._camera.updateMatrixWorld(),_xColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,0),_yColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,1),_zColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,2);const nt=_v3A.set(o,et,tt),rt=nt.distanceTo(this._camera.position),it=nt.sub(this._camera.position);_xColumn.multiplyScalar(it.x),_yColumn.multiplyScalar(it.y),_zColumn.multiplyScalar(it.z),_v3A.copy(_xColumn).add(_yColumn).add(_zColumn),_v3A.z=_v3A.z+rt,this.dollyTo(rt,!1),this.setFocalOffset(-_v3A.x,_v3A.y,-_v3A.z,!1),this.moveTo(o,et,tt,!1)}setBoundary(o){if(!o){this._boundary.min.set(-1/0,-1/0,-1/0),this._boundary.max.set(1/0,1/0,1/0),this._needsUpdate=!0;return}this._boundary.copy(o),this._boundary.clampPoint(this._targetEnd,this._targetEnd),this._needsUpdate=!0}setViewport(o,et,tt,nt){if(o===null){this._viewport=null;return}this._viewport=this._viewport||new THREE.Vector4,typeof o=="number"?this._viewport.set(o,et,tt,nt):this._viewport.copy(o)}getDistanceToFitBox(o,et,tt,nt=!1){if(notSupportedInOrthographicCamera(this._camera,"getDistanceToFitBox"))return this._spherical.radius;const rt=o/et,it=this._camera.getEffectiveFOV()*DEG2RAD,ot=this._camera.aspect;return((nt?rt>ot:rtet.pointerId===o)}_findPointerByMouseButton(o){return this._activePointers.find(et=>et.mouseButton===o)}_disposePointer(o){this._activePointers.splice(this._activePointers.indexOf(o),1)}_encloseToBoundary(o,et,tt){const nt=et.lengthSq();if(nt===0)return o;const rt=_v3B.copy(et).add(o),ot=this._boundary.clampPoint(rt,_v3C).sub(rt),st=ot.lengthSq();if(st===0)return o.add(et);if(st===nt)return o;if(tt===0)return o.add(et).add(ot);{const at=1+tt*st/et.dot(ot);return o.add(_v3B.copy(et).multiplyScalar(at)).add(ot.multiplyScalar(1-tt))}}_updateNearPlaneCorners(){if(isPerspectiveCamera(this._camera)){const o=this._camera,et=o.near,tt=o.getEffectiveFOV()*DEG2RAD,nt=Math.tan(tt*.5)*et,rt=nt*o.aspect;this._nearPlaneCorners[0].set(-rt,-nt,0),this._nearPlaneCorners[1].set(rt,-nt,0),this._nearPlaneCorners[2].set(rt,nt,0),this._nearPlaneCorners[3].set(-rt,nt,0)}else if(isOrthographicCamera(this._camera)){const o=this._camera,et=1/o.zoom,tt=o.left*et,nt=o.right*et,rt=o.top*et,it=o.bottom*et;this._nearPlaneCorners[0].set(tt,rt,0),this._nearPlaneCorners[1].set(nt,rt,0),this._nearPlaneCorners[2].set(nt,it,0),this._nearPlaneCorners[3].set(tt,it,0)}}_collisionTest(){let o=1/0;if(!(this.colliderMeshes.length>=1)||notSupportedInOrthographicCamera(this._camera,"_collisionTest"))return o;const tt=this._getTargetDirection(_cameraDirection);_rotationMatrix.lookAt(_ORIGIN,tt,this._camera.up);for(let nt=0;nt<4;nt++){const rt=_v3B.copy(this._nearPlaneCorners[nt]);rt.applyMatrix4(_rotationMatrix);const it=_v3C.addVectors(this._target,rt);_raycaster.set(it,tt),_raycaster.far=this._spherical.radius+1;const ot=_raycaster.intersectObjects(this.colliderMeshes);ot.length!==0&&ot[0].distance{const tt=()=>{this.removeEventListener("rest",tt),et()};this.addEventListener("rest",tt)}))}_addAllEventListeners(o){}_removeAllEventListeners(){}get dampingFactor(){return console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead."),0}set dampingFactor(o){console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead.")}get draggingDampingFactor(){return console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead."),0}set draggingDampingFactor(o){console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.")}static createBoundingSphere(o,et=new THREE.Sphere){const tt=et,nt=tt.center;_box3A.makeEmpty(),o.traverseVisible(it=>{it.isMesh&&_box3A.expandByObject(it)}),_box3A.getCenter(nt);let rt=0;return o.traverseVisible(it=>{if(!it.isMesh)return;const ot=it,st=ot.geometry.clone();st.applyMatrix4(ot.matrixWorld);const lt=st.attributes.position;for(let ut=0,dt=lt.count;ut{reactExports.useMemo(()=>{const mt={Box3,MathUtils:{clamp:MathUtils.clamp},Matrix4,Quaternion,Raycaster,Sphere:Sphere$1,Spherical,Vector2,Vector3,Vector4};CameraControls$1.install({THREE:mt}),extend({CameraControlsImpl:CameraControls$1})},[]);const{camera:et,domElement:tt,makeDefault:nt,onStart:rt,onEnd:it,onChange:ot,regress:st,...at}=s,lt=useThree(mt=>mt.camera),ut=useThree(mt=>mt.gl),dt=useThree(mt=>mt.invalidate),ht=useThree(mt=>mt.events),ct=useThree(mt=>mt.setEvents),pt=useThree(mt=>mt.set),ft=useThree(mt=>mt.get),gt=useThree(mt=>mt.performance),yt=et||lt,Ut=tt||ht.connected||ut.domElement,Ft=reactExports.useMemo(()=>new CameraControls$1(yt),[yt]);return useFrame((mt,vt)=>{Ft.enabled&&Ft.update(vt)},-1),reactExports.useEffect(()=>(Ft.connect(Ut),()=>void Ft.disconnect()),[Ut,Ft]),reactExports.useEffect(()=>{const mt=Lt=>{dt(),st&>.regress(),ot&&ot(Lt)},vt=Lt=>{rt&&rt(Lt)},At=Lt=>{it&&it(Lt)};return Ft.addEventListener("update",mt),Ft.addEventListener("controlstart",vt),Ft.addEventListener("controlend",At),Ft.addEventListener("control",mt),Ft.addEventListener("transitionstart",mt),Ft.addEventListener("wake",mt),()=>{Ft.removeEventListener("update",mt),Ft.removeEventListener("controlstart",vt),Ft.removeEventListener("controlend",At),Ft.removeEventListener("control",mt),Ft.removeEventListener("transitionstart",mt),Ft.removeEventListener("wake",mt)}},[Ft,rt,it,dt,ct,st,ot]),reactExports.useEffect(()=>{if(nt){const mt=ft().controls;return pt({controls:Ft}),()=>pt({controls:mt})}},[nt,Ft]),reactExports.createElement("primitive",_extends$2({ref:o,object:Ft},at))});function useHelper(s,o,...et){const tt=reactExports.useRef(),nt=useThree(rt=>rt.scene);return reactExports.useLayoutEffect(()=>{let rt;if(s&&s!=null&&s.current&&o&&(tt.current=rt=new o(s.current,...et)),rt)return rt.traverse(it=>it.raycast=()=>null),nt.add(rt),()=>{tt.current=void 0,nt.remove(rt),rt.dispose==null||rt.dispose()}},[nt,o,s,...et]),useFrame(()=>{var rt;return void((rt=tt.current)==null||rt.update==null?void 0:rt.update())}),tt}var stats_min={exports:{}};(function(s,o){(function(et,tt){s.exports=tt()})(commonjsGlobal$2,function(){var et=function(){function tt(ht){return it.appendChild(ht.dom),ht}function nt(ht){for(var ct=0;ctst+1e3&&(lt.update(1e3*at/(ht-st),100),st=ht,at=0,dt)){var ct=performance.memory;dt.update(ct.usedJSHeapSize/1048576,ct.jsHeapSizeLimit/1048576)}return ht},update:function(){ot=this.end()},domElement:it,setMode:nt}};return et.Panel=function(tt,nt,rt){var it=1/0,ot=0,st=Math.round,at=st(window.devicePixelRatio||1),lt=80*at,ut=48*at,dt=3*at,ht=2*at,ct=3*at,pt=15*at,ft=74*at,gt=30*at,yt=document.createElement("canvas");yt.width=lt,yt.height=ut,yt.style.cssText="width:80px;height:48px";var Ut=yt.getContext("2d");return Ut.font="bold "+9*at+"px Helvetica,Arial,sans-serif",Ut.textBaseline="top",Ut.fillStyle=rt,Ut.fillRect(0,0,lt,ut),Ut.fillStyle=nt,Ut.fillText(tt,dt,ht),Ut.fillRect(ct,pt,ft,gt),Ut.fillStyle=rt,Ut.globalAlpha=.9,Ut.fillRect(ct,pt,ft,gt),{dom:yt,update:function(Ft,mt){it=Math.min(it,Ft),ot=Math.max(ot,Ft),Ut.fillStyle=rt,Ut.globalAlpha=1,Ut.fillRect(0,0,lt,pt),Ut.fillStyle=nt,Ut.fillText(st(Ft)+" "+tt+" ("+st(it)+"-"+st(ot)+")",dt,ht),Ut.drawImage(yt,ct+at,pt,ft-at,gt,ct,pt,ft-at,gt),Ut.fillRect(ct+ft-at,pt,at,gt),Ut.fillStyle=rt,Ut.globalAlpha=.9,Ut.fillRect(ct+ft-at,pt,at,st((1-Ft/mt)*gt))}}},et})})(stats_min);var stats_minExports=stats_min.exports;const StatsImpl=getDefaultExportFromCjs$1(stats_minExports);function call$1(s,o){typeof s=="function"?s(o):s!=null&&(s.current=o)}function useEffectfulState(s,o=[],et){const[tt,nt]=reactExports.useState();return reactExports.useLayoutEffect(()=>{const rt=s();return nt(rt),call$1(et,rt),()=>call$1(et,null)},o),tt}function Stats({showPanel:s=0,className:o,parent:et}){const tt=useEffectfulState(()=>new StatsImpl,[]);return reactExports.useEffect(()=>{if(tt){const nt=et&&et.current||document.body;tt.showPanel(s),nt?.appendChild(tt.dom);const rt=(o??"").split(" ").filter(st=>st);rt.length&&tt.dom.classList.add(...rt);const it=addEffect(()=>tt.begin()),ot=addAfterEffect(()=>tt.end());return()=>{rt.length&&tt.dom.classList.remove(...rt),nt?.removeChild(tt.dom),it(),ot()}}},[et,tt,o,s]),null}function create(s,o){const et=s+"Geometry";return reactExports.forwardRef(({args:tt,children:nt,...rt},it)=>{const ot=reactExports.useRef(null);return reactExports.useImperativeHandle(it,()=>ot.current),reactExports.useLayoutEffect(()=>void o?.(ot.current)),reactExports.createElement("mesh",_extends$2({ref:ot},rt),reactExports.createElement(et,{attach:"geometry",args:tt}),nt)})}const Box=create("box"),Sphere=create("sphere");let getRandomValues;const rnds8=new Uint8Array(16);function rng(){if(!getRandomValues&&(getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!getRandomValues))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}const byteToHex=[];for(let s=0;s<256;++s)byteToHex.push((s+256).toString(16).slice(1));function unsafeStringify(s,o=0){return byteToHex[s[o+0]]+byteToHex[s[o+1]]+byteToHex[s[o+2]]+byteToHex[s[o+3]]+"-"+byteToHex[s[o+4]]+byteToHex[s[o+5]]+"-"+byteToHex[s[o+6]]+byteToHex[s[o+7]]+"-"+byteToHex[s[o+8]]+byteToHex[s[o+9]]+"-"+byteToHex[s[o+10]]+byteToHex[s[o+11]]+byteToHex[s[o+12]]+byteToHex[s[o+13]]+byteToHex[s[o+14]]+byteToHex[s[o+15]]}let _nodeId,_clockseq,_lastMSecs=0,_lastNSecs=0;function v1(s,o,et){let tt=o&&et||0;const nt=o||new Array(16);s=s||{};let rt=s.node||_nodeId,it=s.clockseq!==void 0?s.clockseq:_clockseq;if(rt==null||it==null){const dt=s.random||(s.rng||rng)();rt==null&&(rt=_nodeId=[dt[0]|1,dt[1],dt[2],dt[3],dt[4],dt[5]]),it==null&&(it=_clockseq=(dt[6]<<8|dt[7])&16383)}let ot=s.msecs!==void 0?s.msecs:Date.now(),st=s.nsecs!==void 0?s.nsecs:_lastNSecs+1;const at=ot-_lastMSecs+(st-_lastNSecs)/1e4;if(at<0&&s.clockseq===void 0&&(it=it+1&16383),(at<0||ot>_lastMSecs)&&s.nsecs===void 0&&(st=0),st>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=ot,_lastNSecs=st,_clockseq=it,ot+=122192928e5;const lt=((ot&268435455)*1e4+st)%4294967296;nt[tt++]=lt>>>24&255,nt[tt++]=lt>>>16&255,nt[tt++]=lt>>>8&255,nt[tt++]=lt&255;const ut=ot/4294967296*1e4&268435455;nt[tt++]=ut>>>8&255,nt[tt++]=ut&255,nt[tt++]=ut>>>24&15|16,nt[tt++]=ut>>>16&255,nt[tt++]=it>>>8|128,nt[tt++]=it&255;for(let dt=0;dt<6;++dt)nt[tt+dt]=rt[dt];return o||unsafeStringify(nt)}const randomUUID=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),native={randomUUID};function v4(s,o,et){if(native.randomUUID&&!o&&!s)return native.randomUUID();s=s||{};const tt=s.random||(s.rng||rng)();if(tt[6]=tt[6]&15|64,tt[8]=tt[8]&63|128,o){et=et||0;for(let nt=0;nt<16;++nt)o[et+nt]=tt[nt];return o}return unsafeStringify(tt)}const context$2=reactExports.createContext(null),vec1$2=new Vector3,vec2$2=new Vector3,calculateOffset$2=(s,o,et,tt)=>{const nt=o.dot(o),rt=o.dot(s)-o.dot(et),it=o.dot(tt);return it===0?-rt/nt:(vec1$2.copy(tt).multiplyScalar(nt/it).sub(o),vec2$2.copy(tt).multiplyScalar(rt/it).add(et).sub(s),-vec1$2.dot(vec2$2)/vec1$2.dot(vec1$2))},upV$2=new Vector3(0,1,0),offsetMatrix$3=new Matrix4,AxisArrow$1=({direction:s,axis:o})=>{const{translation:et,translationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context$2),gt=useThree(Ot=>Ot.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(0),[vt,At]=reactExports.useState(!1),Lt=reactExports.useCallback(Ot=>{nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`,yt.current.style.display="block"),Ot.stopPropagation();const Jt=new Matrix4().extractRotation(Ut.current.matrixWorld),Dt=Ot.point.clone(),Et=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Pt=s.clone().applyMatrix4(Jt).normalize();Ft.current={clickPoint:Dt,dir:Pt},mt.current=et.current[o],ht({component:"Arrow",axis:o,origin:Et,directions:[Pt]}),gt&&(gt.enabled=!1),Ot.target.setPointerCapture(Ot.pointerId)},[nt,s,gt,ht,et,o]),Rt=reactExports.useCallback(Ot=>{if(Ot.stopPropagation(),vt||At(!0),Ft.current){const{clickPoint:Jt,dir:Dt}=Ft.current,[Et,Pt]=tt?.[o]||[void 0,void 0];let zt=calculateOffset$2(Jt,Dt,Ot.ray.origin,Ot.ray.direction);Et!==void 0&&(zt=Math.max(zt,Et-mt.current)),Pt!==void 0&&(zt=Math.min(zt,Pt-mt.current)),et.current[o]=mt.current+zt,nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`),offsetMatrix$3.makeTranslation(Dt.x*zt,Dt.y*zt,Dt.z*zt),ct(offsetMatrix$3)}},[nt,ct,vt,et,tt,o]),St=reactExports.useCallback(Ot=>{nt&&(yt.current.style.display="none"),Ot.stopPropagation(),Ft.current=null,pt(),gt&&(gt.enabled=!0),Ot.target.releasePointerCapture(Ot.pointerId)},[nt,gt,pt]),Tt=reactExports.useCallback(Ot=>{Ot.stopPropagation(),At(!1)},[]),{cylinderLength:Bt,coneWidth:xt,coneLength:Ct,matrixL:kt}=reactExports.useMemo(()=>{const Ot=at?st/ot*1.6:ot/20,Jt=at?.2:ot/5,Dt=at?1-Jt:ot-Jt,Et=new Quaternion().setFromUnitVectors(upV$2,s.clone().normalize()),Pt=new Matrix4().makeRotationFromQuaternion(Et);return{cylinderLength:Dt,coneWidth:Ot,coneLength:Jt,matrixL:Pt}},[s,ot,st,at]),Nt=vt?ut:lt[o];return reactExports.createElement("group",{ref:Ut},reactExports.createElement("group",{matrix:kt,matrixAutoUpdate:!1,onPointerDown:Lt,onPointerMove:Rt,onPointerUp:St,onPointerOut:Tt},nt&&reactExports.createElement(Html,{position:[0,-Ct,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})),reactExports.createElement("mesh",{visible:!1,position:[0,(Bt+Ct)/2,0],userData:ft},reactExports.createElement("cylinderGeometry",{args:[xt*1.4,xt*1.4,Bt+Ct,8,1]})),reactExports.createElement(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:[0,0,0,0,Bt,0],lineWidth:st,side:DoubleSide,color:Nt,opacity:dt,polygonOffset:!0,renderOrder:1,polygonOffsetFactor:-10,fog:!1}),reactExports.createElement("mesh",{raycast:()=>null,position:[0,Bt+Ct/2,0],renderOrder:500},reactExports.createElement("coneGeometry",{args:[xt,Ct,24,1]}),reactExports.createElement("meshBasicMaterial",{transparent:!0,depthTest:it,color:Nt,opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))))},clickDir$1=new Vector3,intersectionDir$1=new Vector3,toDegrees$2=s=>s*180/Math.PI,toRadians$2=s=>s*Math.PI/180,calculateAngle$1=(s,o,et,tt,nt)=>{clickDir$1.copy(s).sub(et),intersectionDir$1.copy(o).sub(et);const rt=tt.dot(tt),it=nt.dot(nt),ot=clickDir$1.dot(tt)/rt,st=clickDir$1.dot(nt)/it,at=intersectionDir$1.dot(tt)/rt,lt=intersectionDir$1.dot(nt)/it,ut=Math.atan2(st,ot);return Math.atan2(lt,at)-ut},fmod$1=(s,o)=>{let et=Math.floor(s/o);return et=et<0?et+1:et,s-et*o},minimizeAngle$1=s=>{let o=fmod$1(s,2*Math.PI);return Math.abs(o)<1e-6?0:(o<0&&(o+=2*Math.PI),o)},rotMatrix$1=new Matrix4,posNew$1=new Vector3,ray$3=new Ray$1,intersection$3=new Vector3,AxisRotator$1=({dir1:s,dir2:o,axis:et})=>{const{rotationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context$2),gt=useThree(Nt=>Nt.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(0),mt=reactExports.useRef(0),vt=reactExports.useRef(null),[At,Lt]=reactExports.useState(!1),Rt=reactExports.useCallback(Nt=>{nt&&(yt.current.innerText=`${toDegrees$2(mt.current).toFixed(0)}º`,yt.current.style.display="block"),Nt.stopPropagation();const Ot=Nt.point.clone(),Jt=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Dt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,0).normalize(),Et=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,1).normalize(),Pt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,2).normalize(),zt=new Plane().setFromNormalAndCoplanarPoint(Pt,Jt);vt.current={clickPoint:Ot,origin:Jt,e1:Dt,e2:Et,normal:Pt,plane:zt},ht({component:"Rotator",axis:et,origin:Jt,directions:[Dt,Et,Pt]}),gt&&(gt.enabled=!1),Nt.target.setPointerCapture(Nt.pointerId)},[nt,gt,ht,et]),St=reactExports.useCallback(Nt=>{if(Nt.stopPropagation(),At||Lt(!0),vt.current){const{clickPoint:Ot,origin:Jt,e1:Dt,e2:Et,normal:Pt,plane:zt}=vt.current,[en,Kt]=tt?.[et]||[void 0,void 0];ray$3.copy(Nt.ray),ray$3.intersectPlane(zt,intersection$3),ray$3.direction.negate(),ray$3.intersectPlane(zt,intersection$3);let nn=calculateAngle$1(Ot,intersection$3,Jt,Dt,Et),Zt=toDegrees$2(nn);Nt.shiftKey&&(Zt=Math.round(Zt/10)*10,nn=toRadians$2(Zt)),en!==void 0&&Kt!==void 0&&Kt-en<2*Math.PI?(nn=minimizeAngle$1(nn),nn=nn>Math.PI?nn-2*Math.PI:nn,nn=MathUtils.clamp(nn,en-Ft.current,Kt-Ft.current),mt.current=Ft.current+nn):(mt.current=minimizeAngle$1(Ft.current+nn),mt.current=mt.current>Math.PI?mt.current-2*Math.PI:mt.current),nt&&(Zt=toDegrees$2(mt.current),yt.current.innerText=`${Zt.toFixed(0)}º`),rotMatrix$1.makeRotationAxis(Pt,nn),posNew$1.copy(Jt).applyMatrix4(rotMatrix$1).sub(Jt).negate(),rotMatrix$1.setPosition(posNew$1),ct(rotMatrix$1)}},[nt,ct,At,tt,et]),Tt=reactExports.useCallback(Nt=>{nt&&(yt.current.style.display="none"),Nt.stopPropagation(),Ft.current=mt.current,vt.current=null,pt(),gt&&(gt.enabled=!0),Nt.target.releasePointerCapture(Nt.pointerId)},[nt,gt,pt]),Bt=reactExports.useCallback(Nt=>{Nt.stopPropagation(),Lt(!1)},[]),xt=reactExports.useMemo(()=>{const Nt=s.clone().normalize(),Ot=o.clone().normalize();return new Matrix4().makeBasis(Nt,Ot,Nt.clone().cross(Ot))},[s,o]),Ct=at?.65:ot*.65,kt=reactExports.useMemo(()=>{const Ot=[];for(let Jt=0;Jt<=32;Jt++){const Dt=Jt*(Math.PI/2)/32;Ot.push(new Vector3(Math.cos(Dt)*Ct,Math.sin(Dt)*Ct,0))}return Ot},[Ct]);return reactExports.createElement("group",{ref:Ut,onPointerDown:Rt,onPointerMove:St,onPointerUp:Tt,onPointerOut:Bt,matrix:xt,matrixAutoUpdate:!1},nt&&reactExports.createElement(Html,{position:[Ct,Ct,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})),reactExports.createElement(Line,{points:kt,lineWidth:st*4,visible:!1,userData:ft}),reactExports.createElement(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:kt,lineWidth:st,side:DoubleSide,color:At?ut:lt[et],opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))},decomposeIntoBasis$1=(s,o,et)=>{const tt=Math.abs(s.x)>=Math.abs(s.y)&&Math.abs(s.x)>=Math.abs(s.z)?0:Math.abs(s.y)>=Math.abs(s.x)&&Math.abs(s.y)>=Math.abs(s.z)?1:2,nt=[0,1,2].sort((ct,pt)=>Math.abs(o.getComponent(pt))-Math.abs(o.getComponent(ct))),rt=tt===nt[0]?nt[1]:nt[0],it=s.getComponent(tt),ot=s.getComponent(rt),st=o.getComponent(tt),at=o.getComponent(rt),lt=et.getComponent(tt),dt=(et.getComponent(rt)-lt*(ot/it))/(at-st*(ot/it));return[(lt-dt*st)/it,dt]},ray$2=new Ray$1,intersection$2=new Vector3,offsetMatrix$2=new Matrix4,PlaneSlider$1=({dir1:s,dir2:o,axis:et})=>{const{translation:tt,translationLimits:nt,annotations:rt,annotationsClass:it,depthTest:ot,scale:st,lineWidth:at,fixed:lt,axisColors:ut,hoveredColor:dt,opacity:ht,onDragStart:ct,onDrag:pt,onDragEnd:ft,userData:gt}=reactExports.useContext(context$2),yt=useThree(Dt=>Dt.controls),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(null),vt=reactExports.useRef(0),At=reactExports.useRef(0),[Lt,Rt]=reactExports.useState(!1),St=reactExports.useCallback(Dt=>{rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`,Ut.current.style.display="block"),Dt.stopPropagation();const Et=Dt.point.clone(),Pt=new Vector3().setFromMatrixPosition(Ft.current.matrixWorld),zt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,0).normalize(),en=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,1).normalize(),Kt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,2).normalize(),nn=new Plane().setFromNormalAndCoplanarPoint(Kt,Pt);mt.current={clickPoint:Et,e1:zt,e2:en,plane:nn},vt.current=tt.current[(et+1)%3],At.current=tt.current[(et+2)%3],ct({component:"Slider",axis:et,origin:Pt,directions:[zt,en,Kt]}),yt&&(yt.enabled=!1),Dt.target.setPointerCapture(Dt.pointerId)},[rt,yt,ct,et]),Tt=reactExports.useCallback(Dt=>{if(Dt.stopPropagation(),Lt||Rt(!0),mt.current){const{clickPoint:Et,e1:Pt,e2:zt,plane:en}=mt.current,[Kt,nn]=nt?.[(et+1)%3]||[void 0,void 0],[Zt,jt]=nt?.[(et+2)%3]||[void 0,void 0];ray$2.copy(Dt.ray),ray$2.intersectPlane(en,intersection$2),ray$2.direction.negate(),ray$2.intersectPlane(en,intersection$2),intersection$2.sub(Et);let[Vt,It]=decomposeIntoBasis$1(Pt,zt,intersection$2);Kt!==void 0&&(Vt=Math.max(Vt,Kt-vt.current)),nn!==void 0&&(Vt=Math.min(Vt,nn-vt.current)),Zt!==void 0&&(It=Math.max(It,Zt-At.current)),jt!==void 0&&(It=Math.min(It,jt-At.current)),tt.current[(et+1)%3]=vt.current+Vt,tt.current[(et+2)%3]=At.current+It,rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`),offsetMatrix$2.makeTranslation(Vt*Pt.x+It*zt.x,Vt*Pt.y+It*zt.y,Vt*Pt.z+It*zt.z),pt(offsetMatrix$2)}},[rt,pt,Lt,tt,nt,et]),Bt=reactExports.useCallback(Dt=>{rt&&(Ut.current.style.display="none"),Dt.stopPropagation(),mt.current=null,ft(),yt&&(yt.enabled=!0),Dt.target.releasePointerCapture(Dt.pointerId)},[rt,yt,ft]),xt=reactExports.useCallback(Dt=>{Dt.stopPropagation(),Rt(!1)},[]),Ct=reactExports.useMemo(()=>{const Dt=s.clone().normalize(),Et=o.clone().normalize();return new Matrix4().makeBasis(Dt,Et,Dt.clone().cross(Et))},[s,o]),kt=lt?1/7:st/7,Nt=lt?.225:st*.225,Ot=Lt?dt:ut[et],Jt=reactExports.useMemo(()=>[new Vector3(0,0,0),new Vector3(0,Nt,0),new Vector3(Nt,Nt,0),new Vector3(Nt,0,0),new Vector3(0,0,0)],[Nt]);return reactExports.createElement("group",{ref:Ft,matrix:Ct,matrixAutoUpdate:!1},rt&&reactExports.createElement(Html,{position:[0,0,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:it,ref:Ut})),reactExports.createElement("group",{position:[kt*1.7,kt*1.7,0]},reactExports.createElement("mesh",{visible:!0,onPointerDown:St,onPointerMove:Tt,onPointerUp:Bt,onPointerOut:xt,scale:Nt,userData:gt},reactExports.createElement("planeGeometry",null),reactExports.createElement("meshBasicMaterial",{transparent:!0,depthTest:ot,color:Ot,polygonOffset:!0,polygonOffsetFactor:-10,side:DoubleSide,fog:!1})),reactExports.createElement(Line,{position:[-Nt/2,-Nt/2,0],transparent:!0,depthTest:ot,points:Jt,lineWidth:at,color:Ot,opacity:ht,polygonOffset:!0,polygonOffsetFactor:-10,userData:gt,fog:!1})))},vec1$1=new Vector3,vec2$1=new Vector3,calculateOffset$1=(s,o,et,tt)=>{const nt=o.dot(o),rt=o.dot(s)-o.dot(et),it=o.dot(tt);return it===0?-rt/nt:(vec1$1.copy(tt).multiplyScalar(nt/it).sub(o),vec2$1.copy(tt).multiplyScalar(rt/it).add(et).sub(s),-vec1$1.dot(vec2$1)/vec1$1.dot(vec1$1))},upV$1=new Vector3(0,1,0),scaleV=new Vector3,scaleMatrix=new Matrix4,ScalingSphere=({direction:s,axis:o})=>{const{scaleLimits:et,annotations:tt,annotationsClass:nt,depthTest:rt,scale:it,lineWidth:ot,fixed:st,axisColors:at,hoveredColor:lt,opacity:ut,onDragStart:dt,onDrag:ht,onDragEnd:ct,userData:pt}=reactExports.useContext(context$2),ft=useThree(Jt=>Jt.size),gt=useThree(Jt=>Jt.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(1),vt=reactExports.useRef(1),At=reactExports.useRef(null),[Lt,Rt]=reactExports.useState(!1),St=st?1.2:1.2*it,Tt=reactExports.useCallback(Jt=>{tt&&(yt.current.innerText=`${vt.current.toFixed(2)}`,yt.current.style.display="block"),Jt.stopPropagation();const Dt=new Matrix4().extractRotation(Ut.current.matrixWorld),Et=Jt.point.clone(),Pt=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),zt=s.clone().applyMatrix4(Dt).normalize(),en=Ut.current.matrixWorld.clone(),Kt=en.clone().invert(),nn=st?1/calculateScaleFactor$1(Ut.current.getWorldPosition(vec1$1),it,Jt.camera,ft):1;At.current={clickPoint:Et,dir:zt,mPLG:en,mPLGInv:Kt,offsetMultiplier:nn},dt({component:"Sphere",axis:o,origin:Pt,directions:[zt]}),gt&&(gt.enabled=!1),Jt.target.setPointerCapture(Jt.pointerId)},[tt,gt,s,dt,o,st,it,ft]),Bt=reactExports.useCallback(Jt=>{if(Jt.stopPropagation(),Lt||Rt(!0),At.current){const{clickPoint:Dt,dir:Et,mPLG:Pt,mPLGInv:zt,offsetMultiplier:en}=At.current,[Kt,nn]=et?.[o]||[1e-5,void 0],jt=calculateOffset$1(Dt,Et,Jt.ray.origin,Jt.ray.direction)*en,Vt=st?jt:jt/it;let It=Math.pow(2,Vt*.2);Jt.shiftKey&&(It=Math.round(It*10)/10),It=Math.max(It,Kt/mt.current),nn!==void 0&&(It=Math.min(It,nn/mt.current)),vt.current=mt.current*It,Ft.current.position.set(0,St+jt,0),tt&&(yt.current.innerText=`${vt.current.toFixed(2)}`),scaleV.set(1,1,1),scaleV.setComponent(o,It),scaleMatrix.makeScale(scaleV.x,scaleV.y,scaleV.z).premultiply(Pt).multiply(zt),ht(scaleMatrix)}},[tt,St,ht,Lt,et,o]),xt=reactExports.useCallback(Jt=>{tt&&(yt.current.style.display="none"),Jt.stopPropagation(),mt.current=vt.current,At.current=null,Ft.current.position.set(0,St,0),ct(),gt&&(gt.enabled=!0),Jt.target.releasePointerCapture(Jt.pointerId)},[tt,gt,ct,St]),Ct=reactExports.useCallback(Jt=>{Jt.stopPropagation(),Rt(!1)},[]),{radius:kt,matrixL:Nt}=reactExports.useMemo(()=>{const Jt=st?ot/it*1.8:it/22.5,Dt=new Quaternion().setFromUnitVectors(upV$1,s.clone().normalize()),Et=new Matrix4().makeRotationFromQuaternion(Dt);return{radius:Jt,matrixL:Et}},[s,it,ot,st]),Ot=Lt?lt:at[o];return reactExports.createElement("group",{ref:Ut},reactExports.createElement("group",{matrix:Nt,matrixAutoUpdate:!1,onPointerDown:Tt,onPointerMove:Bt,onPointerUp:xt,onPointerOut:Ct},tt&&reactExports.createElement(Html,{position:[0,St/2,0]},reactExports.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:nt,ref:yt})),reactExports.createElement("mesh",{ref:Ft,position:[0,St,0],renderOrder:500,userData:pt},reactExports.createElement("sphereGeometry",{args:[kt,12,12]}),reactExports.createElement("meshBasicMaterial",{transparent:!0,depthTest:rt,color:Ot,opacity:ut,polygonOffset:!0,polygonOffsetFactor:-10}))))},mL0$1=new Matrix4,mW0$1=new Matrix4,mP$1=new Matrix4,mPInv$1=new Matrix4,mW$1=new Matrix4,mL$1=new Matrix4,mL0Inv$1=new Matrix4,mdL$1=new Matrix4,mG=new Matrix4,bb$1=new Box3,bbObj$1=new Box3,vCenter$1=new Vector3,vSize$1=new Vector3,vAnchorOffset$1=new Vector3,vPosition$1=new Vector3,vScale=new Vector3,xDir$1=new Vector3(1,0,0),yDir$1=new Vector3(0,1,0),zDir$1=new Vector3(0,0,1),PivotControls$1=reactExports.forwardRef(({matrix:s,onDragStart:o,onDrag:et,onDragEnd:tt,autoTransform:nt=!0,anchor:rt,disableAxes:it=!1,disableSliders:ot=!1,disableRotations:st=!1,disableScaling:at=!1,activeAxes:lt=[!0,!0,!0],offset:ut=[0,0,0],rotation:dt=[0,0,0],scale:ht=1,lineWidth:ct=4,fixed:pt=!1,translationLimits:ft,rotationLimits:gt,scaleLimits:yt,depthTest:Ut=!0,axisColors:Ft=["#ff2060","#20df80","#2080ff"],hoveredColor:mt="#ffff40",annotations:vt=!1,annotationsClass:At,opacity:Lt=1,visible:Rt=!0,userData:St,children:Tt,...Bt},xt)=>{const Ct=useThree(Kt=>Kt.invalidate),kt=reactExports.useRef(null),Nt=reactExports.useRef(null),Ot=reactExports.useRef(null),Jt=reactExports.useRef(null),Dt=reactExports.useRef([0,0,0]),Et=reactExports.useRef(new Vector3(1,1,1)),Pt=reactExports.useRef(new Vector3(1,1,1));reactExports.useLayoutEffect(()=>{rt&&(Jt.current.updateWorldMatrix(!0,!0),mPInv$1.copy(Jt.current.matrixWorld).invert(),bb$1.makeEmpty(),Jt.current.traverse(Kt=>{Kt.geometry&&(Kt.geometry.boundingBox||Kt.geometry.computeBoundingBox(),mL$1.copy(Kt.matrixWorld).premultiply(mPInv$1),bbObj$1.copy(Kt.geometry.boundingBox),bbObj$1.applyMatrix4(mL$1),bb$1.union(bbObj$1))}),vCenter$1.copy(bb$1.max).add(bb$1.min).multiplyScalar(.5),vSize$1.copy(bb$1.max).sub(bb$1.min).multiplyScalar(.5),vAnchorOffset$1.copy(vSize$1).multiply(new Vector3(...rt)).add(vCenter$1),vPosition$1.set(...ut).add(vAnchorOffset$1),Ot.current.position.copy(vPosition$1),Ct())});const zt=reactExports.useMemo(()=>({onDragStart:Kt=>{mL0$1.copy(Nt.current.matrix),mW0$1.copy(Nt.current.matrixWorld),o&&o(Kt),Ct()},onDrag:Kt=>{mP$1.copy(kt.current.matrixWorld),mPInv$1.copy(mP$1).invert(),mW$1.copy(mW0$1).premultiply(Kt),mL$1.copy(mW$1).premultiply(mPInv$1),mL0Inv$1.copy(mL0$1).invert(),mdL$1.copy(mL$1).multiply(mL0Inv$1),nt&&Nt.current.matrix.copy(mL$1),et&&et(mL$1,mdL$1,mW$1,Kt),Ct()},onDragEnd:()=>{tt&&tt(),Ct()},translation:Dt,translationLimits:ft,rotationLimits:gt,axisColors:Ft,hoveredColor:mt,opacity:Lt,scale:ht,lineWidth:ct,fixed:pt,depthTest:Ut,userData:St,annotations:vt,annotationsClass:At}),[o,et,tt,Dt,ft,gt,yt,Ut,ht,ct,pt,...Ft,mt,Lt,St,nt,vt,At]),en=new Vector3;return useFrame(Kt=>{if(pt){const nn=calculateScaleFactor$1(Ot.current.getWorldPosition(en),ht,Kt.camera,Kt.size);Et.current.setScalar(nn)}s&&s instanceof Matrix4&&(Nt.current.matrix=s),Nt.current.updateWorldMatrix(!0,!0),mG.makeRotationFromEuler(Ot.current.rotation).setPosition(Ot.current.position).premultiply(Nt.current.matrixWorld),Pt.current.setFromMatrixScale(mG),vScale.copy(Et.current).divide(Pt.current),(Math.abs(Ot.current.scale.x-vScale.x)>1e-4||Math.abs(Ot.current.scale.y-vScale.y)>1e-4||Math.abs(Ot.current.scale.z-vScale.z)>1e-4)&&(Ot.current.scale.copy(vScale),Kt.invalidate())}),reactExports.useImperativeHandle(xt,()=>Nt.current,[]),reactExports.createElement(context$2.Provider,{value:zt},reactExports.createElement("group",{ref:kt},reactExports.createElement("group",_extends$2({ref:Nt,matrix:s,matrixAutoUpdate:!1},Bt),reactExports.createElement("group",{visible:Rt,ref:Ot,position:ut,rotation:dt},!it&<[0]&&reactExports.createElement(AxisArrow$1,{axis:0,direction:xDir$1}),!it&<[1]&&reactExports.createElement(AxisArrow$1,{axis:1,direction:yDir$1}),!it&<[2]&&reactExports.createElement(AxisArrow$1,{axis:2,direction:zDir$1}),!ot&<[0]&<[1]&&reactExports.createElement(PlaneSlider$1,{axis:2,dir1:xDir$1,dir2:yDir$1}),!ot&<[0]&<[2]&&reactExports.createElement(PlaneSlider$1,{axis:1,dir1:zDir$1,dir2:xDir$1}),!ot&<[2]&<[1]&&reactExports.createElement(PlaneSlider$1,{axis:0,dir1:yDir$1,dir2:zDir$1}),!st&<[0]&<[1]&&reactExports.createElement(AxisRotator$1,{axis:2,dir1:xDir$1,dir2:yDir$1}),!st&<[0]&<[2]&&reactExports.createElement(AxisRotator$1,{axis:1,dir1:zDir$1,dir2:xDir$1}),!st&<[2]&<[1]&&reactExports.createElement(AxisRotator$1,{axis:0,dir1:yDir$1,dir2:zDir$1}),!at&<[0]&&reactExports.createElement(ScalingSphere,{axis:0,direction:xDir$1}),!at&<[1]&&reactExports.createElement(ScalingSphere,{axis:1,direction:yDir$1}),!at&<[2]&&reactExports.createElement(ScalingSphere,{axis:2,direction:zDir$1})),reactExports.createElement("group",{ref:Jt},Tt))))}),FormantColors={flagship:"#1C1E2D",silver:"#BAC4E2",white:"white",module:"#2D3855",steel01:"#282f45",steel02:"#3b4668",steel03:"#657197",red:"#EA719D",green:"#2EC495",blue:"#20A0FF",gradient01:["#FF72CC","#00E4FF"],mapColor:"#0b1224",occupiedColor:"#4f5f96",primary:"#729fda",critical:"#FF72CC",dark:"#0a0b10",offwhite:"#f8f9fc",blueice:"#f0f7fe",royalBlue:"#20a0ff",royalBluedark:"#256faf",greendark:"#2d8376",mint:"#64d7d4",mintdark:"#4a8d98",purple:"#a961e4",purpledark:"#564a94",reddark:"#7f5072",orange:"#f89973",orangedark:"#94645f",yellow:"#f9c36e",yellowdark:"#9a8261",rhenium:"#797DDB",mithril:"#76A7DC"};/** * postprocessing v6.35.5 build Sat Jun 01 2024 * https://github.com/pmndrs/postprocessing * Copyright 2015-2024 Raoul van Rüschen @@ -4566,7 +4566,7 @@ return orthographicDepthToViewZ(depth,cameraNear,cameraFar); animation-iteration-count: infinite; animation-delay: 200ms; } -`),touchRippleClasses$1.rippleVisible,enterKeyframe,DURATION,({theme:s})=>s.transitions.easing.easeInOut,touchRippleClasses$1.ripplePulsate,({theme:s})=>s.transitions.duration.shorter,touchRippleClasses$1.child,touchRippleClasses$1.childLeaving,exitKeyframe,DURATION,({theme:s})=>s.transitions.easing.easeInOut,touchRippleClasses$1.childPulsate,pulsateKeyframe,({theme:s})=>s.transitions.easing.easeInOut),TouchRipple=reactExports.forwardRef(function(o,et){const tt=useThemeProps({props:o,name:"MuiTouchRipple"}),{center:nt=!1,classes:rt={},className:it}=tt,ot=_objectWithoutPropertiesLoose$2(tt,_excluded$b),[st,at]=reactExports.useState([]),lt=reactExports.useRef(0),ut=reactExports.useRef(null);reactExports.useEffect(()=>{ut.current&&(ut.current(),ut.current=null)},[st]);const dt=reactExports.useRef(!1),ht=reactExports.useRef(0),ct=reactExports.useRef(null),pt=reactExports.useRef(null);reactExports.useEffect(()=>()=>{ht.current&&clearTimeout(ht.current)},[]);const ft=reactExports.useCallback(Ft=>{const{pulsate:mt,rippleX:vt,rippleY:At,rippleSize:Lt,cb:Rt}=Ft;at(St=>[...St,jsx$2(TouchRippleRipple,{classes:{ripple:clsx(rt.ripple,touchRippleClasses$1.ripple),rippleVisible:clsx(rt.rippleVisible,touchRippleClasses$1.rippleVisible),ripplePulsate:clsx(rt.ripplePulsate,touchRippleClasses$1.ripplePulsate),child:clsx(rt.child,touchRippleClasses$1.child),childLeaving:clsx(rt.childLeaving,touchRippleClasses$1.childLeaving),childPulsate:clsx(rt.childPulsate,touchRippleClasses$1.childPulsate)},timeout:DURATION,pulsate:mt,rippleX:vt,rippleY:At,rippleSize:Lt},lt.current)]),lt.current+=1,ut.current=Rt},[rt]),gt=reactExports.useCallback((Ft={},mt={},vt=()=>{})=>{const{pulsate:At=!1,center:Lt=nt||mt.pulsate,fakeElement:Rt=!1}=mt;if(Ft?.type==="mousedown"&&dt.current){dt.current=!1;return}Ft?.type==="touchstart"&&(dt.current=!0);const St=Rt?null:pt.current,Tt=St?St.getBoundingClientRect():{width:0,height:0,left:0,top:0};let Bt,xt,Ct;if(Lt||Ft===void 0||Ft.clientX===0&&Ft.clientY===0||!Ft.clientX&&!Ft.touches)Bt=Math.round(Tt.width/2),xt=Math.round(Tt.height/2);else{const{clientX:kt,clientY:Nt}=Ft.touches&&Ft.touches.length>0?Ft.touches[0]:Ft;Bt=Math.round(kt-Tt.left),xt=Math.round(Nt-Tt.top)}if(Lt)Ct=Math.sqrt((2*Tt.width**2+Tt.height**2)/3),Ct%2===0&&(Ct+=1);else{const kt=Math.max(Math.abs((St?St.clientWidth:0)-Bt),Bt)*2+2,Nt=Math.max(Math.abs((St?St.clientHeight:0)-xt),xt)*2+2;Ct=Math.sqrt(kt**2+Nt**2)}Ft!=null&&Ft.touches?ct.current===null&&(ct.current=()=>{ft({pulsate:At,rippleX:Bt,rippleY:xt,rippleSize:Ct,cb:vt})},ht.current=setTimeout(()=>{ct.current&&(ct.current(),ct.current=null)},DELAY_RIPPLE)):ft({pulsate:At,rippleX:Bt,rippleY:xt,rippleSize:Ct,cb:vt})},[nt,ft]),yt=reactExports.useCallback(()=>{gt({},{pulsate:!0})},[gt]),Ut=reactExports.useCallback((Ft,mt)=>{if(clearTimeout(ht.current),Ft?.type==="touchend"&&ct.current){ct.current(),ct.current=null,ht.current=setTimeout(()=>{Ut(Ft,mt)});return}ct.current=null,at(vt=>vt.length>0?vt.slice(1):vt),ut.current=mt},[]);return reactExports.useImperativeHandle(et,()=>({pulsate:yt,start:gt,stop:Ut}),[yt,gt,Ut]),jsx$2(TouchRippleRoot,_extends$2({className:clsx(touchRippleClasses$1.root,rt.root,it),ref:pt},ot,{children:jsx$2(TransitionGroup$1,{component:null,exit:!0,children:st})}))}),TouchRipple$1=TouchRipple;function getButtonBaseUtilityClass(s){return generateUtilityClass$1("MuiButtonBase",s)}const buttonBaseClasses=generateUtilityClasses$1("MuiButtonBase",["root","disabled","focusVisible"]),buttonBaseClasses$1=buttonBaseClasses,_excluded$a=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],useUtilityClasses$2=s=>{const{disabled:o,focusVisible:et,focusVisibleClassName:tt,classes:nt}=s,it=composeClasses({root:["root",o&&"disabled",et&&"focusVisible"]},getButtonBaseUtilityClass,nt);return et&&tt&&(it.root+=` ${tt}`),it},ButtonBaseRoot=styled$4("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(s,o)=>o.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${buttonBaseClasses$1.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),ButtonBase=reactExports.forwardRef(function(o,et){const tt=useThemeProps({props:o,name:"MuiButtonBase"}),{action:nt,centerRipple:rt=!1,children:it,className:ot,component:st="button",disabled:at=!1,disableRipple:lt=!1,disableTouchRipple:ut=!1,focusRipple:dt=!1,LinkComponent:ht="a",onBlur:ct,onClick:pt,onContextMenu:ft,onDragLeave:gt,onFocus:yt,onFocusVisible:Ut,onKeyDown:Ft,onKeyUp:mt,onMouseDown:vt,onMouseLeave:At,onMouseUp:Lt,onTouchEnd:Rt,onTouchMove:St,onTouchStart:Tt,tabIndex:Bt=0,TouchRippleProps:xt,touchRippleRef:Ct,type:kt}=tt,Nt=_objectWithoutPropertiesLoose$2(tt,_excluded$a),Ot=reactExports.useRef(null),Wt=reactExports.useRef(null),Dt=useForkRef(Wt,Ct),{isFocusVisibleRef:Et,onFocus:Pt,onBlur:zt,ref:en}=useIsFocusVisible(),[Kt,nn]=reactExports.useState(!1);at&&Kt&&nn(!1),reactExports.useImperativeHandle(nt,()=>({focusVisible:()=>{nn(!0),Ot.current.focus()}}),[]);const[Zt,jt]=reactExports.useState(!1);reactExports.useEffect(()=>{jt(!0)},[]);const Vt=Zt&&!lt&&!at;reactExports.useEffect(()=>{Kt&&dt&&!lt&&Zt&&Wt.current.pulsate()},[lt,dt,Kt,Zt]);function It(Ir,Wr,qr=ut){return useEventCallback(Uo=>(Wr&&Wr(Uo),!qr&&Wt.current&&Wt.current[Ir](Uo),!0))}const $t=It("start",vt),Ht=It("stop",ft),qt=It("stop",gt),on=It("stop",Lt),Xt=It("stop",Ir=>{Kt&&Ir.preventDefault(),At&&At(Ir)}),dn=It("start",Tt),_n=It("stop",Rt),Fn=It("stop",St),Un=It("stop",Ir=>{zt(Ir),Et.current===!1&&nn(!1),ct&&ct(Ir)},!1),On=useEventCallback(Ir=>{Ot.current||(Ot.current=Ir.currentTarget),Pt(Ir),Et.current===!0&&(nn(!0),Ut&&Ut(Ir)),yt&&yt(Ir)}),gn=()=>{const Ir=Ot.current;return st&&st!=="button"&&!(Ir.tagName==="A"&&Ir.href)},hn=reactExports.useRef(!1),wn=useEventCallback(Ir=>{dt&&!hn.current&&Kt&&Wt.current&&Ir.key===" "&&(hn.current=!0,Wt.current.stop(Ir,()=>{Wt.current.start(Ir)})),Ir.target===Ir.currentTarget&&gn()&&Ir.key===" "&&Ir.preventDefault(),Ft&&Ft(Ir),Ir.target===Ir.currentTarget&&gn()&&Ir.key==="Enter"&&!at&&(Ir.preventDefault(),pt&&pt(Ir))}),Zn=useEventCallback(Ir=>{dt&&Ir.key===" "&&Wt.current&&Kt&&!Ir.defaultPrevented&&(hn.current=!1,Wt.current.stop(Ir,()=>{Wt.current.pulsate(Ir)})),mt&&mt(Ir),pt&&Ir.target===Ir.currentTarget&&gn()&&Ir.key===" "&&!Ir.defaultPrevented&&pt(Ir)});let Pn=st;Pn==="button"&&(Nt.href||Nt.to)&&(Pn=ht);const $n={};Pn==="button"?($n.type=kt===void 0?"button":kt,$n.disabled=at):(!Nt.href&&!Nt.to&&($n.role="button"),at&&($n["aria-disabled"]=at));const Tr=useForkRef(et,en,Ot),Qr=_extends$2({},tt,{centerRipple:rt,component:st,disabled:at,disableRipple:lt,disableTouchRipple:ut,focusRipple:dt,tabIndex:Bt,focusVisible:Kt}),_r=useUtilityClasses$2(Qr);return jsxs$2(ButtonBaseRoot,_extends$2({as:Pn,className:clsx(_r.root,ot),ownerState:Qr,onBlur:Un,onClick:pt,onContextMenu:Ht,onFocus:On,onKeyDown:wn,onKeyUp:Zn,onMouseDown:$t,onMouseLeave:Xt,onMouseUp:on,onDragLeave:qt,onTouchEnd:_n,onTouchMove:Fn,onTouchStart:dn,ref:Tr,tabIndex:at?-1:Bt,type:kt},$n,Nt,{children:[it,Vt?jsx$2(TouchRipple$1,_extends$2({ref:Dt,center:rt},xt)):null]}))}),ButtonBase$1=ButtonBase;function getTypographyUtilityClass(s){return generateUtilityClass$1("MuiTypography",s)}generateUtilityClasses$1("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const _excluded$9=["align","className","component","gutterBottom","noWrap","paragraph","variant","variantMapping"],useUtilityClasses$1=s=>{const{align:o,gutterBottom:et,noWrap:tt,paragraph:nt,variant:rt,classes:it}=s,ot={root:["root",rt,s.align!=="inherit"&&`align${capitalize(o)}`,et&&"gutterBottom",tt&&"noWrap",nt&&"paragraph"]};return composeClasses(ot,getTypographyUtilityClass,it)},TypographyRoot=styled$4("span",{name:"MuiTypography",slot:"Root",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.root,et.variant&&o[et.variant],et.align!=="inherit"&&o[`align${capitalize(et.align)}`],et.noWrap&&o.noWrap,et.gutterBottom&&o.gutterBottom,et.paragraph&&o.paragraph]}})(({theme:s,ownerState:o})=>_extends$2({margin:0},o.variant==="inherit"&&{font:"inherit"},o.variant!=="inherit"&&s.typography[o.variant],o.align!=="inherit"&&{textAlign:o.align},o.noWrap&&{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},o.gutterBottom&&{marginBottom:"0.35em"},o.paragraph&&{marginBottom:16})),defaultVariantMapping={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},colorTransformations={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},transformDeprecatedColors=s=>colorTransformations[s]||s,Typography=reactExports.forwardRef(function(o,et){const tt=useThemeProps({props:o,name:"MuiTypography"}),nt=transformDeprecatedColors(tt.color),rt=extendSxProp(_extends$2({},tt,{color:nt})),{align:it="inherit",className:ot,component:st,gutterBottom:at=!1,noWrap:lt=!1,paragraph:ut=!1,variant:dt="body1",variantMapping:ht=defaultVariantMapping}=rt,ct=_objectWithoutPropertiesLoose$2(rt,_excluded$9),pt=_extends$2({},rt,{align:it,color:nt,className:ot,component:st,gutterBottom:at,noWrap:lt,paragraph:ut,variant:dt,variantMapping:ht}),ft=st||(ut?"p":ht[dt]||defaultVariantMapping[dt])||"span",gt=useUtilityClasses$1(pt);return jsx$2(TypographyRoot,_extends$2({as:ft,ref:et,ownerState:pt,className:clsx(gt.root,ot)},ct))}),Typography$1=Typography;function getButtonUtilityClass(s){return generateUtilityClass$1("MuiButton",s)}const buttonClasses=generateUtilityClasses$1("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),buttonClasses$1=buttonClasses,ButtonGroupContext=reactExports.createContext({}),ButtonGroupContext$1=ButtonGroupContext,ButtonGroupButtonContext=reactExports.createContext(void 0),ButtonGroupButtonContext$1=ButtonGroupButtonContext,_excluded=["children","color","component","className","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"],useUtilityClasses=s=>{const{color:o,disableElevation:et,fullWidth:tt,size:nt,variant:rt,classes:it}=s,ot={root:["root",rt,`${rt}${capitalize(o)}`,`size${capitalize(nt)}`,`${rt}Size${capitalize(nt)}`,o==="inherit"&&"colorInherit",et&&"disableElevation",tt&&"fullWidth"],label:["label"],startIcon:["startIcon",`iconSize${capitalize(nt)}`],endIcon:["endIcon",`iconSize${capitalize(nt)}`]},st=composeClasses(ot,getButtonUtilityClass,it);return _extends$2({},it,st)},commonIconStyles=s=>_extends$2({},s.size==="small"&&{"& > *:nth-of-type(1)":{fontSize:18}},s.size==="medium"&&{"& > *:nth-of-type(1)":{fontSize:20}},s.size==="large"&&{"& > *:nth-of-type(1)":{fontSize:22}}),ButtonRoot=styled$4(ButtonBase$1,{shouldForwardProp:s=>rootShouldForwardProp$1(s)||s==="classes",name:"MuiButton",slot:"Root",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.root,o[et.variant],o[`${et.variant}${capitalize(et.color)}`],o[`size${capitalize(et.size)}`],o[`${et.variant}Size${capitalize(et.size)}`],et.color==="inherit"&&o.colorInherit,et.disableElevation&&o.disableElevation,et.fullWidth&&o.fullWidth]}})(({theme:s,ownerState:o})=>{var et,tt;const nt=s.palette.mode==="light"?s.palette.grey[300]:s.palette.grey[800],rt=s.palette.mode==="light"?s.palette.grey.A100:s.palette.grey[700];return _extends$2({},s.typography.button,{minWidth:64,padding:"6px 16px",borderRadius:(s.vars||s).shape.borderRadius,transition:s.transitions.create(["background-color","box-shadow","border-color","color"],{duration:s.transitions.duration.short}),"&:hover":_extends$2({textDecoration:"none",backgroundColor:s.vars?`rgba(${s.vars.palette.text.primaryChannel} / ${s.vars.palette.action.hoverOpacity})`:alpha$1(s.palette.text.primary,s.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},o.variant==="text"&&o.color!=="inherit"&&{backgroundColor:s.vars?`rgba(${s.vars.palette[o.color].mainChannel} / ${s.vars.palette.action.hoverOpacity})`:alpha$1(s.palette[o.color].main,s.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},o.variant==="outlined"&&o.color!=="inherit"&&{border:`1px solid ${(s.vars||s).palette[o.color].main}`,backgroundColor:s.vars?`rgba(${s.vars.palette[o.color].mainChannel} / ${s.vars.palette.action.hoverOpacity})`:alpha$1(s.palette[o.color].main,s.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},o.variant==="contained"&&{backgroundColor:s.vars?s.vars.palette.Button.inheritContainedHoverBg:rt,boxShadow:(s.vars||s).shadows[4],"@media (hover: none)":{boxShadow:(s.vars||s).shadows[2],backgroundColor:(s.vars||s).palette.grey[300]}},o.variant==="contained"&&o.color!=="inherit"&&{backgroundColor:(s.vars||s).palette[o.color].dark,"@media (hover: none)":{backgroundColor:(s.vars||s).palette[o.color].main}}),"&:active":_extends$2({},o.variant==="contained"&&{boxShadow:(s.vars||s).shadows[8]}),[`&.${buttonClasses$1.focusVisible}`]:_extends$2({},o.variant==="contained"&&{boxShadow:(s.vars||s).shadows[6]}),[`&.${buttonClasses$1.disabled}`]:_extends$2({color:(s.vars||s).palette.action.disabled},o.variant==="outlined"&&{border:`1px solid ${(s.vars||s).palette.action.disabledBackground}`},o.variant==="contained"&&{color:(s.vars||s).palette.action.disabled,boxShadow:(s.vars||s).shadows[0],backgroundColor:(s.vars||s).palette.action.disabledBackground})},o.variant==="text"&&{padding:"6px 8px"},o.variant==="text"&&o.color!=="inherit"&&{color:(s.vars||s).palette[o.color].main},o.variant==="outlined"&&{padding:"5px 15px",border:"1px solid currentColor"},o.variant==="outlined"&&o.color!=="inherit"&&{color:(s.vars||s).palette[o.color].main,border:s.vars?`1px solid rgba(${s.vars.palette[o.color].mainChannel} / 0.5)`:`1px solid ${alpha$1(s.palette[o.color].main,.5)}`},o.variant==="contained"&&{color:s.vars?s.vars.palette.text.primary:(et=(tt=s.palette).getContrastText)==null?void 0:et.call(tt,s.palette.grey[300]),backgroundColor:s.vars?s.vars.palette.Button.inheritContainedBg:nt,boxShadow:(s.vars||s).shadows[2]},o.variant==="contained"&&o.color!=="inherit"&&{color:(s.vars||s).palette[o.color].contrastText,backgroundColor:(s.vars||s).palette[o.color].main},o.color==="inherit"&&{color:"inherit",borderColor:"currentColor"},o.size==="small"&&o.variant==="text"&&{padding:"4px 5px",fontSize:s.typography.pxToRem(13)},o.size==="large"&&o.variant==="text"&&{padding:"8px 11px",fontSize:s.typography.pxToRem(15)},o.size==="small"&&o.variant==="outlined"&&{padding:"3px 9px",fontSize:s.typography.pxToRem(13)},o.size==="large"&&o.variant==="outlined"&&{padding:"7px 21px",fontSize:s.typography.pxToRem(15)},o.size==="small"&&o.variant==="contained"&&{padding:"4px 10px",fontSize:s.typography.pxToRem(13)},o.size==="large"&&o.variant==="contained"&&{padding:"8px 22px",fontSize:s.typography.pxToRem(15)},o.fullWidth&&{width:"100%"})},({ownerState:s})=>s.disableElevation&&{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${buttonClasses$1.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${buttonClasses$1.disabled}`]:{boxShadow:"none"}}),ButtonStartIcon=styled$4("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.startIcon,o[`iconSize${capitalize(et.size)}`]]}})(({ownerState:s})=>_extends$2({display:"inherit",marginRight:8,marginLeft:-4},s.size==="small"&&{marginLeft:-2},commonIconStyles(s))),ButtonEndIcon=styled$4("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.endIcon,o[`iconSize${capitalize(et.size)}`]]}})(({ownerState:s})=>_extends$2({display:"inherit",marginRight:-4,marginLeft:8},s.size==="small"&&{marginRight:-2},commonIconStyles(s))),Button=reactExports.forwardRef(function(o,et){const tt=reactExports.useContext(ButtonGroupContext$1),nt=reactExports.useContext(ButtonGroupButtonContext$1),rt=resolveProps(tt,o),it=useThemeProps({props:rt,name:"MuiButton"}),{children:ot,color:st="primary",component:at="button",className:lt,disabled:ut=!1,disableElevation:dt=!1,disableFocusRipple:ht=!1,endIcon:ct,focusVisibleClassName:pt,fullWidth:ft=!1,size:gt="medium",startIcon:yt,type:Ut,variant:Ft="text"}=it,mt=_objectWithoutPropertiesLoose$2(it,_excluded),vt=_extends$2({},it,{color:st,component:at,disabled:ut,disableElevation:dt,disableFocusRipple:ht,fullWidth:ft,size:gt,type:Ut,variant:Ft}),At=useUtilityClasses(vt),Lt=yt&&jsx$2(ButtonStartIcon,{className:At.startIcon,ownerState:vt,children:yt}),Rt=ct&&jsx$2(ButtonEndIcon,{className:At.endIcon,ownerState:vt,children:ct}),St=nt||"";return jsxs$2(ButtonRoot,_extends$2({ownerState:vt,className:clsx(tt.className,At.root,lt,St),component:at,disabled:ut,focusRipple:!ht,focusVisibleClassName:clsx(At.focusVisible,pt),ref:et,type:Ut},mt,{classes:At,children:[Lt,ot,Rt]}))}),Button$1=Button;var classnames$1={exports:{}};/*! +`),touchRippleClasses$1.rippleVisible,enterKeyframe,DURATION,({theme:s})=>s.transitions.easing.easeInOut,touchRippleClasses$1.ripplePulsate,({theme:s})=>s.transitions.duration.shorter,touchRippleClasses$1.child,touchRippleClasses$1.childLeaving,exitKeyframe,DURATION,({theme:s})=>s.transitions.easing.easeInOut,touchRippleClasses$1.childPulsate,pulsateKeyframe,({theme:s})=>s.transitions.easing.easeInOut),TouchRipple=reactExports.forwardRef(function(o,et){const tt=useThemeProps({props:o,name:"MuiTouchRipple"}),{center:nt=!1,classes:rt={},className:it}=tt,ot=_objectWithoutPropertiesLoose$2(tt,_excluded$b),[st,at]=reactExports.useState([]),lt=reactExports.useRef(0),ut=reactExports.useRef(null);reactExports.useEffect(()=>{ut.current&&(ut.current(),ut.current=null)},[st]);const dt=reactExports.useRef(!1),ht=reactExports.useRef(0),ct=reactExports.useRef(null),pt=reactExports.useRef(null);reactExports.useEffect(()=>()=>{ht.current&&clearTimeout(ht.current)},[]);const ft=reactExports.useCallback(Ft=>{const{pulsate:mt,rippleX:vt,rippleY:At,rippleSize:Lt,cb:Rt}=Ft;at(St=>[...St,jsx$2(TouchRippleRipple,{classes:{ripple:clsx(rt.ripple,touchRippleClasses$1.ripple),rippleVisible:clsx(rt.rippleVisible,touchRippleClasses$1.rippleVisible),ripplePulsate:clsx(rt.ripplePulsate,touchRippleClasses$1.ripplePulsate),child:clsx(rt.child,touchRippleClasses$1.child),childLeaving:clsx(rt.childLeaving,touchRippleClasses$1.childLeaving),childPulsate:clsx(rt.childPulsate,touchRippleClasses$1.childPulsate)},timeout:DURATION,pulsate:mt,rippleX:vt,rippleY:At,rippleSize:Lt},lt.current)]),lt.current+=1,ut.current=Rt},[rt]),gt=reactExports.useCallback((Ft={},mt={},vt=()=>{})=>{const{pulsate:At=!1,center:Lt=nt||mt.pulsate,fakeElement:Rt=!1}=mt;if(Ft?.type==="mousedown"&&dt.current){dt.current=!1;return}Ft?.type==="touchstart"&&(dt.current=!0);const St=Rt?null:pt.current,Tt=St?St.getBoundingClientRect():{width:0,height:0,left:0,top:0};let Bt,xt,Ct;if(Lt||Ft===void 0||Ft.clientX===0&&Ft.clientY===0||!Ft.clientX&&!Ft.touches)Bt=Math.round(Tt.width/2),xt=Math.round(Tt.height/2);else{const{clientX:kt,clientY:Nt}=Ft.touches&&Ft.touches.length>0?Ft.touches[0]:Ft;Bt=Math.round(kt-Tt.left),xt=Math.round(Nt-Tt.top)}if(Lt)Ct=Math.sqrt((2*Tt.width**2+Tt.height**2)/3),Ct%2===0&&(Ct+=1);else{const kt=Math.max(Math.abs((St?St.clientWidth:0)-Bt),Bt)*2+2,Nt=Math.max(Math.abs((St?St.clientHeight:0)-xt),xt)*2+2;Ct=Math.sqrt(kt**2+Nt**2)}Ft!=null&&Ft.touches?ct.current===null&&(ct.current=()=>{ft({pulsate:At,rippleX:Bt,rippleY:xt,rippleSize:Ct,cb:vt})},ht.current=setTimeout(()=>{ct.current&&(ct.current(),ct.current=null)},DELAY_RIPPLE)):ft({pulsate:At,rippleX:Bt,rippleY:xt,rippleSize:Ct,cb:vt})},[nt,ft]),yt=reactExports.useCallback(()=>{gt({},{pulsate:!0})},[gt]),Ut=reactExports.useCallback((Ft,mt)=>{if(clearTimeout(ht.current),Ft?.type==="touchend"&&ct.current){ct.current(),ct.current=null,ht.current=setTimeout(()=>{Ut(Ft,mt)});return}ct.current=null,at(vt=>vt.length>0?vt.slice(1):vt),ut.current=mt},[]);return reactExports.useImperativeHandle(et,()=>({pulsate:yt,start:gt,stop:Ut}),[yt,gt,Ut]),jsx$2(TouchRippleRoot,_extends$2({className:clsx(touchRippleClasses$1.root,rt.root,it),ref:pt},ot,{children:jsx$2(TransitionGroup$1,{component:null,exit:!0,children:st})}))}),TouchRipple$1=TouchRipple;function getButtonBaseUtilityClass(s){return generateUtilityClass$1("MuiButtonBase",s)}const buttonBaseClasses=generateUtilityClasses$1("MuiButtonBase",["root","disabled","focusVisible"]),buttonBaseClasses$1=buttonBaseClasses,_excluded$a=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],useUtilityClasses$2=s=>{const{disabled:o,focusVisible:et,focusVisibleClassName:tt,classes:nt}=s,it=composeClasses({root:["root",o&&"disabled",et&&"focusVisible"]},getButtonBaseUtilityClass,nt);return et&&tt&&(it.root+=` ${tt}`),it},ButtonBaseRoot=styled$4("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(s,o)=>o.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${buttonBaseClasses$1.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),ButtonBase=reactExports.forwardRef(function(o,et){const tt=useThemeProps({props:o,name:"MuiButtonBase"}),{action:nt,centerRipple:rt=!1,children:it,className:ot,component:st="button",disabled:at=!1,disableRipple:lt=!1,disableTouchRipple:ut=!1,focusRipple:dt=!1,LinkComponent:ht="a",onBlur:ct,onClick:pt,onContextMenu:ft,onDragLeave:gt,onFocus:yt,onFocusVisible:Ut,onKeyDown:Ft,onKeyUp:mt,onMouseDown:vt,onMouseLeave:At,onMouseUp:Lt,onTouchEnd:Rt,onTouchMove:St,onTouchStart:Tt,tabIndex:Bt=0,TouchRippleProps:xt,touchRippleRef:Ct,type:kt}=tt,Nt=_objectWithoutPropertiesLoose$2(tt,_excluded$a),Ot=reactExports.useRef(null),Jt=reactExports.useRef(null),Dt=useForkRef(Jt,Ct),{isFocusVisibleRef:Et,onFocus:Pt,onBlur:zt,ref:en}=useIsFocusVisible(),[Kt,nn]=reactExports.useState(!1);at&&Kt&&nn(!1),reactExports.useImperativeHandle(nt,()=>({focusVisible:()=>{nn(!0),Ot.current.focus()}}),[]);const[Zt,jt]=reactExports.useState(!1);reactExports.useEffect(()=>{jt(!0)},[]);const Vt=Zt&&!lt&&!at;reactExports.useEffect(()=>{Kt&&dt&&!lt&&Zt&&Jt.current.pulsate()},[lt,dt,Kt,Zt]);function It(Ir,Jr,qr=ut){return useEventCallback(Uo=>(Jr&&Jr(Uo),!qr&&Jt.current&&Jt.current[Ir](Uo),!0))}const $t=It("start",vt),Ht=It("stop",ft),qt=It("stop",gt),on=It("stop",Lt),Xt=It("stop",Ir=>{Kt&&Ir.preventDefault(),At&&At(Ir)}),dn=It("start",Tt),_n=It("stop",Rt),Fn=It("stop",St),Un=It("stop",Ir=>{zt(Ir),Et.current===!1&&nn(!1),ct&&ct(Ir)},!1),On=useEventCallback(Ir=>{Ot.current||(Ot.current=Ir.currentTarget),Pt(Ir),Et.current===!0&&(nn(!0),Ut&&Ut(Ir)),yt&&yt(Ir)}),gn=()=>{const Ir=Ot.current;return st&&st!=="button"&&!(Ir.tagName==="A"&&Ir.href)},hn=reactExports.useRef(!1),wn=useEventCallback(Ir=>{dt&&!hn.current&&Kt&&Jt.current&&Ir.key===" "&&(hn.current=!0,Jt.current.stop(Ir,()=>{Jt.current.start(Ir)})),Ir.target===Ir.currentTarget&&gn()&&Ir.key===" "&&Ir.preventDefault(),Ft&&Ft(Ir),Ir.target===Ir.currentTarget&&gn()&&Ir.key==="Enter"&&!at&&(Ir.preventDefault(),pt&&pt(Ir))}),Zn=useEventCallback(Ir=>{dt&&Ir.key===" "&&Jt.current&&Kt&&!Ir.defaultPrevented&&(hn.current=!1,Jt.current.stop(Ir,()=>{Jt.current.pulsate(Ir)})),mt&&mt(Ir),pt&&Ir.target===Ir.currentTarget&&gn()&&Ir.key===" "&&!Ir.defaultPrevented&&pt(Ir)});let Pn=st;Pn==="button"&&(Nt.href||Nt.to)&&(Pn=ht);const $n={};Pn==="button"?($n.type=kt===void 0?"button":kt,$n.disabled=at):(!Nt.href&&!Nt.to&&($n.role="button"),at&&($n["aria-disabled"]=at));const Tr=useForkRef(et,en,Ot),Qr=_extends$2({},tt,{centerRipple:rt,component:st,disabled:at,disableRipple:lt,disableTouchRipple:ut,focusRipple:dt,tabIndex:Bt,focusVisible:Kt}),_r=useUtilityClasses$2(Qr);return jsxs$2(ButtonBaseRoot,_extends$2({as:Pn,className:clsx(_r.root,ot),ownerState:Qr,onBlur:Un,onClick:pt,onContextMenu:Ht,onFocus:On,onKeyDown:wn,onKeyUp:Zn,onMouseDown:$t,onMouseLeave:Xt,onMouseUp:on,onDragLeave:qt,onTouchEnd:_n,onTouchMove:Fn,onTouchStart:dn,ref:Tr,tabIndex:at?-1:Bt,type:kt},$n,Nt,{children:[it,Vt?jsx$2(TouchRipple$1,_extends$2({ref:Dt,center:rt},xt)):null]}))}),ButtonBase$1=ButtonBase;function getTypographyUtilityClass(s){return generateUtilityClass$1("MuiTypography",s)}generateUtilityClasses$1("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const _excluded$9=["align","className","component","gutterBottom","noWrap","paragraph","variant","variantMapping"],useUtilityClasses$1=s=>{const{align:o,gutterBottom:et,noWrap:tt,paragraph:nt,variant:rt,classes:it}=s,ot={root:["root",rt,s.align!=="inherit"&&`align${capitalize(o)}`,et&&"gutterBottom",tt&&"noWrap",nt&&"paragraph"]};return composeClasses(ot,getTypographyUtilityClass,it)},TypographyRoot=styled$4("span",{name:"MuiTypography",slot:"Root",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.root,et.variant&&o[et.variant],et.align!=="inherit"&&o[`align${capitalize(et.align)}`],et.noWrap&&o.noWrap,et.gutterBottom&&o.gutterBottom,et.paragraph&&o.paragraph]}})(({theme:s,ownerState:o})=>_extends$2({margin:0},o.variant==="inherit"&&{font:"inherit"},o.variant!=="inherit"&&s.typography[o.variant],o.align!=="inherit"&&{textAlign:o.align},o.noWrap&&{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},o.gutterBottom&&{marginBottom:"0.35em"},o.paragraph&&{marginBottom:16})),defaultVariantMapping={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},colorTransformations={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},transformDeprecatedColors=s=>colorTransformations[s]||s,Typography=reactExports.forwardRef(function(o,et){const tt=useThemeProps({props:o,name:"MuiTypography"}),nt=transformDeprecatedColors(tt.color),rt=extendSxProp(_extends$2({},tt,{color:nt})),{align:it="inherit",className:ot,component:st,gutterBottom:at=!1,noWrap:lt=!1,paragraph:ut=!1,variant:dt="body1",variantMapping:ht=defaultVariantMapping}=rt,ct=_objectWithoutPropertiesLoose$2(rt,_excluded$9),pt=_extends$2({},rt,{align:it,color:nt,className:ot,component:st,gutterBottom:at,noWrap:lt,paragraph:ut,variant:dt,variantMapping:ht}),ft=st||(ut?"p":ht[dt]||defaultVariantMapping[dt])||"span",gt=useUtilityClasses$1(pt);return jsx$2(TypographyRoot,_extends$2({as:ft,ref:et,ownerState:pt,className:clsx(gt.root,ot)},ct))}),Typography$1=Typography;function getButtonUtilityClass(s){return generateUtilityClass$1("MuiButton",s)}const buttonClasses=generateUtilityClasses$1("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),buttonClasses$1=buttonClasses,ButtonGroupContext=reactExports.createContext({}),ButtonGroupContext$1=ButtonGroupContext,ButtonGroupButtonContext=reactExports.createContext(void 0),ButtonGroupButtonContext$1=ButtonGroupButtonContext,_excluded=["children","color","component","className","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"],useUtilityClasses=s=>{const{color:o,disableElevation:et,fullWidth:tt,size:nt,variant:rt,classes:it}=s,ot={root:["root",rt,`${rt}${capitalize(o)}`,`size${capitalize(nt)}`,`${rt}Size${capitalize(nt)}`,o==="inherit"&&"colorInherit",et&&"disableElevation",tt&&"fullWidth"],label:["label"],startIcon:["startIcon",`iconSize${capitalize(nt)}`],endIcon:["endIcon",`iconSize${capitalize(nt)}`]},st=composeClasses(ot,getButtonUtilityClass,it);return _extends$2({},it,st)},commonIconStyles=s=>_extends$2({},s.size==="small"&&{"& > *:nth-of-type(1)":{fontSize:18}},s.size==="medium"&&{"& > *:nth-of-type(1)":{fontSize:20}},s.size==="large"&&{"& > *:nth-of-type(1)":{fontSize:22}}),ButtonRoot=styled$4(ButtonBase$1,{shouldForwardProp:s=>rootShouldForwardProp$1(s)||s==="classes",name:"MuiButton",slot:"Root",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.root,o[et.variant],o[`${et.variant}${capitalize(et.color)}`],o[`size${capitalize(et.size)}`],o[`${et.variant}Size${capitalize(et.size)}`],et.color==="inherit"&&o.colorInherit,et.disableElevation&&o.disableElevation,et.fullWidth&&o.fullWidth]}})(({theme:s,ownerState:o})=>{var et,tt;const nt=s.palette.mode==="light"?s.palette.grey[300]:s.palette.grey[800],rt=s.palette.mode==="light"?s.palette.grey.A100:s.palette.grey[700];return _extends$2({},s.typography.button,{minWidth:64,padding:"6px 16px",borderRadius:(s.vars||s).shape.borderRadius,transition:s.transitions.create(["background-color","box-shadow","border-color","color"],{duration:s.transitions.duration.short}),"&:hover":_extends$2({textDecoration:"none",backgroundColor:s.vars?`rgba(${s.vars.palette.text.primaryChannel} / ${s.vars.palette.action.hoverOpacity})`:alpha$1(s.palette.text.primary,s.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},o.variant==="text"&&o.color!=="inherit"&&{backgroundColor:s.vars?`rgba(${s.vars.palette[o.color].mainChannel} / ${s.vars.palette.action.hoverOpacity})`:alpha$1(s.palette[o.color].main,s.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},o.variant==="outlined"&&o.color!=="inherit"&&{border:`1px solid ${(s.vars||s).palette[o.color].main}`,backgroundColor:s.vars?`rgba(${s.vars.palette[o.color].mainChannel} / ${s.vars.palette.action.hoverOpacity})`:alpha$1(s.palette[o.color].main,s.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},o.variant==="contained"&&{backgroundColor:s.vars?s.vars.palette.Button.inheritContainedHoverBg:rt,boxShadow:(s.vars||s).shadows[4],"@media (hover: none)":{boxShadow:(s.vars||s).shadows[2],backgroundColor:(s.vars||s).palette.grey[300]}},o.variant==="contained"&&o.color!=="inherit"&&{backgroundColor:(s.vars||s).palette[o.color].dark,"@media (hover: none)":{backgroundColor:(s.vars||s).palette[o.color].main}}),"&:active":_extends$2({},o.variant==="contained"&&{boxShadow:(s.vars||s).shadows[8]}),[`&.${buttonClasses$1.focusVisible}`]:_extends$2({},o.variant==="contained"&&{boxShadow:(s.vars||s).shadows[6]}),[`&.${buttonClasses$1.disabled}`]:_extends$2({color:(s.vars||s).palette.action.disabled},o.variant==="outlined"&&{border:`1px solid ${(s.vars||s).palette.action.disabledBackground}`},o.variant==="contained"&&{color:(s.vars||s).palette.action.disabled,boxShadow:(s.vars||s).shadows[0],backgroundColor:(s.vars||s).palette.action.disabledBackground})},o.variant==="text"&&{padding:"6px 8px"},o.variant==="text"&&o.color!=="inherit"&&{color:(s.vars||s).palette[o.color].main},o.variant==="outlined"&&{padding:"5px 15px",border:"1px solid currentColor"},o.variant==="outlined"&&o.color!=="inherit"&&{color:(s.vars||s).palette[o.color].main,border:s.vars?`1px solid rgba(${s.vars.palette[o.color].mainChannel} / 0.5)`:`1px solid ${alpha$1(s.palette[o.color].main,.5)}`},o.variant==="contained"&&{color:s.vars?s.vars.palette.text.primary:(et=(tt=s.palette).getContrastText)==null?void 0:et.call(tt,s.palette.grey[300]),backgroundColor:s.vars?s.vars.palette.Button.inheritContainedBg:nt,boxShadow:(s.vars||s).shadows[2]},o.variant==="contained"&&o.color!=="inherit"&&{color:(s.vars||s).palette[o.color].contrastText,backgroundColor:(s.vars||s).palette[o.color].main},o.color==="inherit"&&{color:"inherit",borderColor:"currentColor"},o.size==="small"&&o.variant==="text"&&{padding:"4px 5px",fontSize:s.typography.pxToRem(13)},o.size==="large"&&o.variant==="text"&&{padding:"8px 11px",fontSize:s.typography.pxToRem(15)},o.size==="small"&&o.variant==="outlined"&&{padding:"3px 9px",fontSize:s.typography.pxToRem(13)},o.size==="large"&&o.variant==="outlined"&&{padding:"7px 21px",fontSize:s.typography.pxToRem(15)},o.size==="small"&&o.variant==="contained"&&{padding:"4px 10px",fontSize:s.typography.pxToRem(13)},o.size==="large"&&o.variant==="contained"&&{padding:"8px 22px",fontSize:s.typography.pxToRem(15)},o.fullWidth&&{width:"100%"})},({ownerState:s})=>s.disableElevation&&{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${buttonClasses$1.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${buttonClasses$1.disabled}`]:{boxShadow:"none"}}),ButtonStartIcon=styled$4("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.startIcon,o[`iconSize${capitalize(et.size)}`]]}})(({ownerState:s})=>_extends$2({display:"inherit",marginRight:8,marginLeft:-4},s.size==="small"&&{marginLeft:-2},commonIconStyles(s))),ButtonEndIcon=styled$4("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(s,o)=>{const{ownerState:et}=s;return[o.endIcon,o[`iconSize${capitalize(et.size)}`]]}})(({ownerState:s})=>_extends$2({display:"inherit",marginRight:-4,marginLeft:8},s.size==="small"&&{marginRight:-2},commonIconStyles(s))),Button=reactExports.forwardRef(function(o,et){const tt=reactExports.useContext(ButtonGroupContext$1),nt=reactExports.useContext(ButtonGroupButtonContext$1),rt=resolveProps(tt,o),it=useThemeProps({props:rt,name:"MuiButton"}),{children:ot,color:st="primary",component:at="button",className:lt,disabled:ut=!1,disableElevation:dt=!1,disableFocusRipple:ht=!1,endIcon:ct,focusVisibleClassName:pt,fullWidth:ft=!1,size:gt="medium",startIcon:yt,type:Ut,variant:Ft="text"}=it,mt=_objectWithoutPropertiesLoose$2(it,_excluded),vt=_extends$2({},it,{color:st,component:at,disabled:ut,disableElevation:dt,disableFocusRipple:ht,fullWidth:ft,size:gt,type:Ut,variant:Ft}),At=useUtilityClasses(vt),Lt=yt&&jsx$2(ButtonStartIcon,{className:At.startIcon,ownerState:vt,children:yt}),Rt=ct&&jsx$2(ButtonEndIcon,{className:At.endIcon,ownerState:vt,children:ct}),St=nt||"";return jsxs$2(ButtonRoot,_extends$2({ownerState:vt,className:clsx(tt.className,At.root,lt,St),component:at,disabled:ut,focusRipple:!ht,focusVisibleClassName:clsx(At.focusVisible,pt),ref:et,type:Ut},mt,{classes:At,children:[Lt,ot,Rt]}))}),Button$1=Button;var classnames$1={exports:{}};/*! Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames @@ -4589,31 +4589,31 @@ return orthographicDepthToViewZ(depth,cameraNear,cameraFar); * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */function styled$2(s,o){return newStyled(s,o)}function merge$2(s,o){return o?deepmerge(s,o,{clone:!1}):s}const values={xs:0,sm:600,md:900,lg:1200,xl:1536},defaultBreakpoints={keys:["xs","sm","md","lg","xl"],up:s=>`@media (min-width:${values[s]}px)`};function handleBreakpoints(s,o,et){const tt=s.theme||{};if(Array.isArray(o)){const nt=tt.breakpoints||defaultBreakpoints;return o.reduce((rt,it,ot)=>(rt[nt.up(nt.keys[ot])]=et(o[ot]),rt),{})}if(typeof o=="object"){const nt=tt.breakpoints||defaultBreakpoints;return Object.keys(o).reduce((rt,it)=>{if(Object.keys(nt.values||values).indexOf(it)!==-1){const ot=nt.up(it);rt[ot]=et(o[it],it)}else{const ot=it;rt[ot]=o[ot]}return rt},{})}return et(o)}function createEmptyBreakpointObject(s={}){var o;return(s==null||(o=s.keys)==null?void 0:o.reduce((et,tt)=>{const nt=s.up(tt);return et[nt]={},et},{}))||{}}function removeUnusedBreakpoints(s,o){return s.reduce((et,tt)=>{const nt=et[tt];return(!nt||Object.keys(nt).length===0)&&delete et[tt],et},o)}function getPath(s,o){return!o||typeof o!="string"?null:o.split(".").reduce((et,tt)=>et&&et[tt]?et[tt]:null,s)}function getValue$1(s,o,et,tt=et){let nt;return typeof s=="function"?nt=s(et):Array.isArray(s)?nt=s[et]||tt:nt=getPath(s,et)||tt,o&&(nt=o(nt)),nt}function style$1(s){const{prop:o,cssProperty:et=s.prop,themeKey:tt,transform:nt}=s,rt=it=>{if(it[o]==null)return null;const ot=it[o],st=it.theme,at=getPath(st,tt)||{};return handleBreakpoints(it,ot,lt=>{let ut=getValue$1(at,nt,lt);return lt===ut&&typeof lt=="string"&&(ut=getValue$1(at,nt,`${o}${lt==="default"?"":capitalize(lt)}`,lt)),et===!1?ut:{[et]:ut}})};return rt.propTypes={},rt.filterProps=[o],rt}function compose(...s){const o=s.reduce((tt,nt)=>(nt.filterProps.forEach(rt=>{tt[rt]=nt}),tt),{}),et=tt=>Object.keys(tt).reduce((nt,rt)=>o[rt]?merge$2(nt,o[rt](tt)):nt,{});return et.propTypes={},et.filterProps=s.reduce((tt,nt)=>tt.concat(nt.filterProps),[]),et}function memoize$1(s){const o={};return et=>(o[et]===void 0&&(o[et]=s(et)),o[et])}const properties={m:"margin",p:"padding"},directions={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},aliases={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},getCssProperties=memoize$1(s=>{if(s.length>2)if(aliases[s])s=aliases[s];else return[s];const[o,et]=s.split(""),tt=properties[o],nt=directions[et]||"";return Array.isArray(nt)?nt.map(rt=>tt+rt):[tt+nt]}),marginKeys=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],paddingKeys=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],spacingKeys=[...marginKeys,...paddingKeys];function createUnaryUnit(s,o,et,tt){const nt=getPath(s,o)||et;return typeof nt=="number"?rt=>typeof rt=="string"?rt:nt*rt:Array.isArray(nt)?rt=>typeof rt=="string"?rt:nt[rt]:typeof nt=="function"?nt:()=>{}}function createUnarySpacing(s){return createUnaryUnit(s,"spacing",8)}function getValue(s,o){if(typeof o=="string"||o==null)return o;const et=Math.abs(o),tt=s(et);return o>=0?tt:typeof tt=="number"?-tt:`-${tt}`}function getStyleFromPropValue(s,o){return et=>s.reduce((tt,nt)=>(tt[nt]=getValue(o,et),tt),{})}function resolveCssProperty(s,o,et,tt){if(o.indexOf(et)===-1)return null;const nt=getCssProperties(et),rt=getStyleFromPropValue(nt,tt),it=s[et];return handleBreakpoints(s,it,rt)}function style(s,o){const et=createUnarySpacing(s.theme);return Object.keys(s).map(tt=>resolveCssProperty(s,o,tt,et)).reduce(merge$2,{})}function spacing$1(s){return style(s,spacingKeys)}spacing$1.propTypes={};spacing$1.filterProps=spacingKeys;function getBorder(s){return typeof s!="number"?s:`${s}px solid`}const border$1=style$1({prop:"border",themeKey:"borders",transform:getBorder}),borderTop=style$1({prop:"borderTop",themeKey:"borders",transform:getBorder}),borderRight=style$1({prop:"borderRight",themeKey:"borders",transform:getBorder}),borderBottom=style$1({prop:"borderBottom",themeKey:"borders",transform:getBorder}),borderLeft=style$1({prop:"borderLeft",themeKey:"borders",transform:getBorder}),borderColor=style$1({prop:"borderColor",themeKey:"palette"}),borderTopColor=style$1({prop:"borderTopColor",themeKey:"palette"}),borderRightColor=style$1({prop:"borderRightColor",themeKey:"palette"}),borderBottomColor=style$1({prop:"borderBottomColor",themeKey:"palette"}),borderLeftColor=style$1({prop:"borderLeftColor",themeKey:"palette"}),borderRadius=s=>{if(s.borderRadius!==void 0&&s.borderRadius!==null){const o=createUnaryUnit(s.theme,"shape.borderRadius",4),et=tt=>({borderRadius:getValue(o,tt)});return handleBreakpoints(s,s.borderRadius,et)}return null};borderRadius.propTypes={};borderRadius.filterProps=["borderRadius"];const borders=compose(border$1,borderTop,borderRight,borderBottom,borderLeft,borderColor,borderTopColor,borderRightColor,borderBottomColor,borderLeftColor,borderRadius),borders$1=borders,displayPrint=style$1({prop:"displayPrint",cssProperty:!1,transform:s=>({"@media print":{display:s}})}),displayRaw=style$1({prop:"display"}),overflow=style$1({prop:"overflow"}),textOverflow=style$1({prop:"textOverflow"}),visibility=style$1({prop:"visibility"}),whiteSpace=style$1({prop:"whiteSpace"}),display=compose(displayPrint,displayRaw,overflow,textOverflow,visibility,whiteSpace),flexBasis=style$1({prop:"flexBasis"}),flexDirection=style$1({prop:"flexDirection"}),flexWrap=style$1({prop:"flexWrap"}),justifyContent=style$1({prop:"justifyContent"}),alignItems=style$1({prop:"alignItems"}),alignContent=style$1({prop:"alignContent"}),order=style$1({prop:"order"}),flex=style$1({prop:"flex"}),flexGrow=style$1({prop:"flexGrow"}),flexShrink=style$1({prop:"flexShrink"}),alignSelf=style$1({prop:"alignSelf"}),justifyItems=style$1({prop:"justifyItems"}),justifySelf=style$1({prop:"justifySelf"}),flexbox=compose(flexBasis,flexDirection,flexWrap,justifyContent,alignItems,alignContent,order,flex,flexGrow,flexShrink,alignSelf,justifyItems,justifySelf),flexbox$1=flexbox,gap=s=>{if(s.gap!==void 0&&s.gap!==null){const o=createUnaryUnit(s.theme,"spacing",8),et=tt=>({gap:getValue(o,tt)});return handleBreakpoints(s,s.gap,et)}return null};gap.propTypes={};gap.filterProps=["gap"];const columnGap=s=>{if(s.columnGap!==void 0&&s.columnGap!==null){const o=createUnaryUnit(s.theme,"spacing",8),et=tt=>({columnGap:getValue(o,tt)});return handleBreakpoints(s,s.columnGap,et)}return null};columnGap.propTypes={};columnGap.filterProps=["columnGap"];const rowGap=s=>{if(s.rowGap!==void 0&&s.rowGap!==null){const o=createUnaryUnit(s.theme,"spacing",8),et=tt=>({rowGap:getValue(o,tt)});return handleBreakpoints(s,s.rowGap,et)}return null};rowGap.propTypes={};rowGap.filterProps=["rowGap"];const gridColumn=style$1({prop:"gridColumn"}),gridRow=style$1({prop:"gridRow"}),gridAutoFlow=style$1({prop:"gridAutoFlow"}),gridAutoColumns=style$1({prop:"gridAutoColumns"}),gridAutoRows=style$1({prop:"gridAutoRows"}),gridTemplateColumns=style$1({prop:"gridTemplateColumns"}),gridTemplateRows=style$1({prop:"gridTemplateRows"}),gridTemplateAreas=style$1({prop:"gridTemplateAreas"}),gridArea=style$1({prop:"gridArea"}),grid=compose(gap,columnGap,rowGap,gridColumn,gridRow,gridAutoFlow,gridAutoColumns,gridAutoRows,gridTemplateColumns,gridTemplateRows,gridTemplateAreas,gridArea),grid$1=grid,color$1=style$1({prop:"color",themeKey:"palette"}),bgcolor=style$1({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette"}),backgroundColor=style$1({prop:"backgroundColor",themeKey:"palette"}),palette=compose(color$1,bgcolor,backgroundColor),palette$1=palette,position=style$1({prop:"position"}),zIndex$2=style$1({prop:"zIndex",themeKey:"zIndex"}),top$1=style$1({prop:"top"}),right$1=style$1({prop:"right"}),bottom$1=style$1({prop:"bottom"}),left$1=style$1({prop:"left"}),positions$1=compose(position,zIndex$2,top$1,right$1,bottom$1,left$1),boxShadow=style$1({prop:"boxShadow",themeKey:"shadows"}),shadows$2=boxShadow;function transform(s){return s<=1&&s!==0?`${s*100}%`:s}const width=style$1({prop:"width",transform}),maxWidth=s=>{if(s.maxWidth!==void 0&&s.maxWidth!==null){const o=et=>{var tt,nt,rt;return{maxWidth:((tt=s.theme)==null||(nt=tt.breakpoints)==null||(rt=nt.values)==null?void 0:rt[et])||values[et]||transform(et)}};return handleBreakpoints(s,s.maxWidth,o)}return null};maxWidth.filterProps=["maxWidth"];const minWidth=style$1({prop:"minWidth",transform}),height=style$1({prop:"height",transform}),maxHeight=style$1({prop:"maxHeight",transform}),minHeight=style$1({prop:"minHeight",transform});style$1({prop:"size",cssProperty:"width",transform});style$1({prop:"size",cssProperty:"height",transform});const boxSizing=style$1({prop:"boxSizing"}),sizing=compose(width,maxWidth,minWidth,height,maxHeight,minHeight,boxSizing),sizing$1=sizing,fontFamily=style$1({prop:"fontFamily",themeKey:"typography"}),fontSize=style$1({prop:"fontSize",themeKey:"typography"}),fontStyle=style$1({prop:"fontStyle",themeKey:"typography"}),fontWeight=style$1({prop:"fontWeight",themeKey:"typography"}),letterSpacing=style$1({prop:"letterSpacing"}),textTransform=style$1({prop:"textTransform"}),lineHeight=style$1({prop:"lineHeight"}),textAlign=style$1({prop:"textAlign"}),typographyVariant=style$1({prop:"typography",cssProperty:!1,themeKey:"typography"}),typography=compose(typographyVariant,fontFamily,fontSize,fontStyle,fontWeight,letterSpacing,lineHeight,textAlign,textTransform),typography$1=typography,filterPropsMapping={borders:borders$1.filterProps,display:display.filterProps,flexbox:flexbox$1.filterProps,grid:grid$1.filterProps,positions:positions$1.filterProps,palette:palette$1.filterProps,shadows:shadows$2.filterProps,sizing:sizing$1.filterProps,spacing:spacing$1.filterProps,typography:typography$1.filterProps},styleFunctionMapping={borders:borders$1,display,flexbox:flexbox$1,grid:grid$1,positions:positions$1,palette:palette$1,shadows:shadows$2,sizing:sizing$1,spacing:spacing$1,typography:typography$1};Object.keys(filterPropsMapping).reduce((s,o)=>(filterPropsMapping[o].forEach(et=>{s[et]=styleFunctionMapping[o]}),s),{});function objectsHaveSameKeys(...s){const o=s.reduce((tt,nt)=>tt.concat(Object.keys(nt)),[]),et=new Set(o);return s.every(tt=>et.size===Object.keys(tt).length)}function callIfFn(s,o){return typeof s=="function"?s(o):s}function unstable_createStyleFunctionSx(s=styleFunctionMapping){const o=Object.keys(s).reduce((nt,rt)=>(s[rt].filterProps.forEach(it=>{nt[it]=s[rt]}),nt),{});function et(nt,rt,it){const ot={[nt]:rt,theme:it},st=o[nt];return st?st(ot):{[nt]:rt}}function tt(nt){const{sx:rt,theme:it={}}=nt||{};if(!rt)return null;function ot(st){let at=st;if(typeof st=="function")at=st(it);else if(typeof st!="object")return st;if(!at)return null;const lt=createEmptyBreakpointObject(it.breakpoints),ut=Object.keys(lt);let dt=lt;return Object.keys(at).forEach(ht=>{const ct=callIfFn(at[ht],it);if(ct!=null)if(typeof ct=="object")if(o[ht])dt=merge$2(dt,et(ht,ct,it));else{const pt=handleBreakpoints({theme:it},ct,ft=>({[ht]:ft}));objectsHaveSameKeys(pt,ct)?dt[ht]=tt({sx:ct,theme:it}):dt=merge$2(dt,pt)}else dt=merge$2(dt,et(ht,ct,it))}),removeUnusedBreakpoints(ut,dt)}return Array.isArray(rt)?rt.map(ot):ot(rt)}return tt}const styleFunctionSx=unstable_createStyleFunctionSx();styleFunctionSx.filterProps=["sx"];const defaultStyleFunctionSx=styleFunctionSx,_excluded$8=["values","unit","step"],sortBreakpointsValues=s=>{const o=Object.keys(s).map(et=>({key:et,val:s[et]}))||[];return o.sort((et,tt)=>et.val-tt.val),o.reduce((et,tt)=>_extends$1({},et,{[tt.key]:tt.val}),{})};function createBreakpoints(s){const{values:o={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:et="px",step:tt=5}=s,nt=_objectWithoutPropertiesLoose$1(s,_excluded$8),rt=sortBreakpointsValues(o),it=Object.keys(rt);function ot(dt){return`@media (min-width:${typeof o[dt]=="number"?o[dt]:dt}${et})`}function st(dt){return`@media (max-width:${(typeof o[dt]=="number"?o[dt]:dt)-tt/100}${et})`}function at(dt,ht){const ct=it.indexOf(ht);return`@media (min-width:${typeof o[dt]=="number"?o[dt]:dt}${et}) and (max-width:${(ct!==-1&&typeof o[it[ct]]=="number"?o[it[ct]]:ht)-tt/100}${et})`}function lt(dt){return it.indexOf(dt)+1(tt.length===0?[1]:tt).map(nt=>{const rt=o(nt);return typeof rt=="number"?`${rt}px`:rt}).join(" ");return et.mui=!0,et}const _excluded$7=["breakpoints","palette","spacing","shape"];function createTheme$1(s={},...o){const{breakpoints:et={},palette:tt={},spacing:nt,shape:rt={}}=s,it=_objectWithoutPropertiesLoose$1(s,_excluded$7),ot=createBreakpoints(et),st=createSpacing(nt);let at=deepmerge({breakpoints:ot,direction:"ltr",components:{},palette:_extends$1({mode:"light"},tt),spacing:st,shape:_extends$1({},shape$1,rt)},it);return at=o.reduce((lt,ut)=>deepmerge(lt,ut),at),at}createTheme$1();const _excluded$6=["variant"];function isEmpty$1(s){return s.length===0}function propsToClassKey(s){const{variant:o}=s,et=_objectWithoutPropertiesLoose$1(s,_excluded$6);let tt=o||"";return Object.keys(et).sort().forEach(nt=>{nt==="color"?tt+=isEmpty$1(tt)?s[nt]:capitalize(s[nt]):tt+=`${isEmpty$1(tt)?nt:capitalize(nt)}${capitalize(s[nt].toString())}`}),tt}const _excluded$5=["name","slot","skipVariantsResolver","skipSx","overridesResolver"],_excluded2=["theme"],_excluded3=["theme"];function isEmpty(s){return Object.keys(s).length===0}const getStyleOverrides=(s,o)=>o.components&&o.components[s]&&o.components[s].styleOverrides?o.components[s].styleOverrides:null,getVariantStyles=(s,o)=>{let et=[];o&&o.components&&o.components[s]&&o.components[s].variants&&(et=o.components[s].variants);const tt={};return et.forEach(nt=>{const rt=propsToClassKey(nt.props);tt[rt]=nt.style}),tt},variantsResolver=(s,o,et,tt)=>{var nt,rt;const{ownerState:it={}}=s,ot=[],st=et==null||(nt=et.components)==null||(rt=nt[tt])==null?void 0:rt.variants;return st&&st.forEach(at=>{let lt=!0;Object.keys(at.props).forEach(ut=>{it[ut]!==at.props[ut]&&s[ut]!==at.props[ut]&&(lt=!1)}),lt&&ot.push(o[propsToClassKey(at.props)])}),ot};function shouldForwardProp(s){return s!=="ownerState"&&s!=="theme"&&s!=="sx"&&s!=="as"}const systemDefaultTheme=createTheme$1();function createStyled$1(s={}){const{defaultTheme:o=systemDefaultTheme,rootShouldForwardProp:et=shouldForwardProp,slotShouldForwardProp:tt=shouldForwardProp,styleFunctionSx:nt=defaultStyleFunctionSx}=s;return(rt,it={})=>{const{name:ot,slot:st,skipVariantsResolver:at,skipSx:lt,overridesResolver:ut}=it,dt=_objectWithoutPropertiesLoose$1(it,_excluded$5),ht=at!==void 0?at:st&&st!=="Root"||!1,ct=lt||!1;let pt,ft=shouldForwardProp;st==="Root"?ft=et:st&&(ft=tt);const gt=styled$2(rt,_extends$1({shouldForwardProp:ft,label:pt},dt)),yt=(Ut,...Ft)=>{const mt=Ft?Ft.map(Rt=>typeof Rt=="function"&&Rt.__emotion_real!==Rt?St=>{let{theme:Tt}=St,Bt=_objectWithoutPropertiesLoose$1(St,_excluded2);return Rt(_extends$1({theme:isEmpty(Tt)?o:Tt},Bt))}:Rt):[];let vt=Ut;ot&&ut&&mt.push(Rt=>{const St=isEmpty(Rt.theme)?o:Rt.theme,Tt=getStyleOverrides(ot,St);if(Tt){const Bt={};return Object.entries(Tt).forEach(([xt,Ct])=>{Bt[xt]=typeof Ct=="function"?Ct(Rt):Ct}),ut(Rt,Bt)}return null}),ot&&!ht&&mt.push(Rt=>{const St=isEmpty(Rt.theme)?o:Rt.theme;return variantsResolver(Rt,getVariantStyles(ot,St),St,ot)}),ct||mt.push(Rt=>{const St=isEmpty(Rt.theme)?o:Rt.theme;return nt(_extends$1({},Rt,{theme:St}))});const At=mt.length-Ft.length;if(Array.isArray(Ut)&&At>0){const Rt=new Array(At).fill("");vt=[...Ut,...Rt],vt.raw=[...Ut.raw,...Rt]}else typeof Ut=="function"&&Ut.__emotion_real!==Ut&&(vt=Rt=>{let{theme:St}=Rt,Tt=_objectWithoutPropertiesLoose$1(Rt,_excluded3);return Ut(_extends$1({theme:isEmpty(St)?o:St},Tt))});return gt(vt,...mt)};return gt.withConfig&&(yt.withConfig=gt.withConfig),yt}}function clamp$1$1(s,o=0,et=1){return Math.min(Math.max(o,s),et)}function hexToRgb(s){s=s.slice(1);const o=new RegExp(`.{1,${s.length>=6?2:1}}`,"g");let et=s.match(o);return et&&et[0].length===1&&(et=et.map(tt=>tt+tt)),et?`rgb${et.length===4?"a":""}(${et.map((tt,nt)=>nt<3?parseInt(tt,16):Math.round(parseInt(tt,16)/255*1e3)/1e3).join(", ")})`:""}function decomposeColor(s){if(s.type)return s;if(s.charAt(0)==="#")return decomposeColor(hexToRgb(s));const o=s.indexOf("("),et=s.substring(0,o);if(["rgb","rgba","hsl","hsla","color"].indexOf(et)===-1)throw new Error(formatMuiErrorMessage(9,s));let tt=s.substring(o+1,s.length-1),nt;if(et==="color"){if(tt=tt.split(" "),nt=tt.shift(),tt.length===4&&tt[3].charAt(0)==="/"&&(tt[3]=tt[3].slice(1)),["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(nt)===-1)throw new Error(formatMuiErrorMessage(10,nt))}else tt=tt.split(",");return tt=tt.map(rt=>parseFloat(rt)),{type:et,values:tt,colorSpace:nt}}function recomposeColor(s){const{type:o,colorSpace:et}=s;let{values:tt}=s;return o.indexOf("rgb")!==-1?tt=tt.map((nt,rt)=>rt<3?parseInt(nt,10):nt):o.indexOf("hsl")!==-1&&(tt[1]=`${tt[1]}%`,tt[2]=`${tt[2]}%`),o.indexOf("color")!==-1?tt=`${et} ${tt.join(" ")}`:tt=`${tt.join(", ")}`,`${o}(${tt})`}function hslToRgb(s){s=decomposeColor(s);const{values:o}=s,et=o[0],tt=o[1]/100,nt=o[2]/100,rt=tt*Math.min(nt,1-nt),it=(at,lt=(at+et/30)%12)=>nt-rt*Math.max(Math.min(lt-3,9-lt,1),-1);let ot="rgb";const st=[Math.round(it(0)*255),Math.round(it(8)*255),Math.round(it(4)*255)];return s.type==="hsla"&&(ot+="a",st.push(o[3])),recomposeColor({type:ot,values:st})}function getLuminance(s){s=decomposeColor(s);let o=s.type==="hsl"?decomposeColor(hslToRgb(s)).values:s.values;return o=o.map(et=>(s.type!=="color"&&(et/=255),et<=.03928?et/12.92:((et+.055)/1.055)**2.4)),Number((.2126*o[0]+.7152*o[1]+.0722*o[2]).toFixed(3))}function getContrastRatio(s,o){const et=getLuminance(s),tt=getLuminance(o);return(Math.max(et,tt)+.05)/(Math.min(et,tt)+.05)}function darken(s,o){if(s=decomposeColor(s),o=clamp$1$1(o),s.type.indexOf("hsl")!==-1)s.values[2]*=1-o;else if(s.type.indexOf("rgb")!==-1||s.type.indexOf("color")!==-1)for(let et=0;et<3;et+=1)s.values[et]*=1-o;return recomposeColor(s)}function lighten(s,o){if(s=decomposeColor(s),o=clamp$1$1(o),s.type.indexOf("hsl")!==-1)s.values[2]+=(100-s.values[2])*o;else if(s.type.indexOf("rgb")!==-1)for(let et=0;et<3;et+=1)s.values[et]+=(255-s.values[et])*o;else if(s.type.indexOf("color")!==-1)for(let et=0;et<3;et+=1)s.values[et]+=(1-s.values[et])*o;return recomposeColor(s)}function createMixins(s,o,et){return _extends$1({toolbar:{minHeight:56,[`${s.up("xs")} and (orientation: landscape)`]:{minHeight:48},[s.up("sm")]:{minHeight:64}}},et)}const common$1={black:"#000",white:"#fff"},common$1$1=common$1,grey={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},grey$1=grey,purple={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},purple$1=purple,red={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},red$1=red,orange={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},orange$1=orange,blue={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},blue$1=blue,lightBlue={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},lightBlue$1=lightBlue,green={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},green$1=green,_excluded$4=["mode","contrastThreshold","tonalOffset"],light={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:common$1$1.white,default:common$1$1.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},dark={text:{primary:common$1$1.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:common$1$1.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function addLightOrDark(s,o,et,tt){const nt=tt.light||tt,rt=tt.dark||tt*1.5;s[o]||(s.hasOwnProperty(et)?s[o]=s[et]:o==="light"?s.light=lighten(s.main,nt):o==="dark"&&(s.dark=darken(s.main,rt)))}function getDefaultPrimary(s="light"){return s==="dark"?{main:blue$1[200],light:blue$1[50],dark:blue$1[400]}:{main:blue$1[700],light:blue$1[400],dark:blue$1[800]}}function getDefaultSecondary(s="light"){return s==="dark"?{main:purple$1[200],light:purple$1[50],dark:purple$1[400]}:{main:purple$1[500],light:purple$1[300],dark:purple$1[700]}}function getDefaultError(s="light"){return s==="dark"?{main:red$1[500],light:red$1[300],dark:red$1[700]}:{main:red$1[700],light:red$1[400],dark:red$1[800]}}function getDefaultInfo(s="light"){return s==="dark"?{main:lightBlue$1[400],light:lightBlue$1[300],dark:lightBlue$1[700]}:{main:lightBlue$1[700],light:lightBlue$1[500],dark:lightBlue$1[900]}}function getDefaultSuccess(s="light"){return s==="dark"?{main:green$1[400],light:green$1[300],dark:green$1[700]}:{main:green$1[800],light:green$1[500],dark:green$1[900]}}function getDefaultWarning(s="light"){return s==="dark"?{main:orange$1[400],light:orange$1[300],dark:orange$1[700]}:{main:"#ed6c02",light:orange$1[500],dark:orange$1[900]}}function createPalette(s){const{mode:o="light",contrastThreshold:et=3,tonalOffset:tt=.2}=s,nt=_objectWithoutPropertiesLoose$1(s,_excluded$4),rt=s.primary||getDefaultPrimary(o),it=s.secondary||getDefaultSecondary(o),ot=s.error||getDefaultError(o),st=s.info||getDefaultInfo(o),at=s.success||getDefaultSuccess(o),lt=s.warning||getDefaultWarning(o);function ut(ct){return getContrastRatio(ct,dark.text.primary)>=et?dark.text.primary:light.text.primary}const dt=({color:ct,name:pt,mainShade:ft=500,lightShade:gt=300,darkShade:yt=700})=>{if(ct=_extends$1({},ct),!ct.main&&ct[ft]&&(ct.main=ct[ft]),!ct.hasOwnProperty("main"))throw new Error(formatMuiErrorMessage(11,pt?` (${pt})`:"",ft));if(typeof ct.main!="string")throw new Error(formatMuiErrorMessage(12,pt?` (${pt})`:"",JSON.stringify(ct.main)));return addLightOrDark(ct,"light",gt,tt),addLightOrDark(ct,"dark",yt,tt),ct.contrastText||(ct.contrastText=ut(ct.main)),ct},ht={dark,light};return deepmerge(_extends$1({common:common$1$1,mode:o,primary:dt({color:rt,name:"primary"}),secondary:dt({color:it,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:dt({color:ot,name:"error"}),warning:dt({color:lt,name:"warning"}),info:dt({color:st,name:"info"}),success:dt({color:at,name:"success"}),grey:grey$1,contrastThreshold:et,getContrastText:ut,augmentColor:dt,tonalOffset:tt},ht[o]),nt)}const _excluded$3=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];function round$1(s){return Math.round(s*1e5)/1e5}const caseAllCaps={textTransform:"uppercase"},defaultFontFamily='"Roboto", "Helvetica", "Arial", sans-serif';function createTypography(s,o){const et=typeof o=="function"?o(s):o,{fontFamily:tt=defaultFontFamily,fontSize:nt=14,fontWeightLight:rt=300,fontWeightRegular:it=400,fontWeightMedium:ot=500,fontWeightBold:st=700,htmlFontSize:at=16,allVariants:lt,pxToRem:ut}=et,dt=_objectWithoutPropertiesLoose$1(et,_excluded$3),ht=nt/14,ct=ut||(gt=>`${gt/at*ht}rem`),pt=(gt,yt,Ut,Ft,mt)=>_extends$1({fontFamily:tt,fontWeight:gt,fontSize:ct(yt),lineHeight:Ut},tt===defaultFontFamily?{letterSpacing:`${round$1(Ft/yt)}em`}:{},mt,lt),ft={h1:pt(rt,96,1.167,-1.5),h2:pt(rt,60,1.2,-.5),h3:pt(it,48,1.167,0),h4:pt(it,34,1.235,.25),h5:pt(it,24,1.334,0),h6:pt(ot,20,1.6,.15),subtitle1:pt(it,16,1.75,.15),subtitle2:pt(ot,14,1.57,.1),body1:pt(it,16,1.5,.15),body2:pt(it,14,1.43,.15),button:pt(ot,14,1.75,.4,caseAllCaps),caption:pt(it,12,1.66,.4),overline:pt(it,12,2.66,1,caseAllCaps)};return deepmerge(_extends$1({htmlFontSize:at,pxToRem:ct,fontFamily:tt,fontSize:nt,fontWeightLight:rt,fontWeightRegular:it,fontWeightMedium:ot,fontWeightBold:st},ft),dt,{clone:!1})}const shadowKeyUmbraOpacity=.2,shadowKeyPenumbraOpacity=.14,shadowAmbientShadowOpacity=.12;function createShadow(...s){return[`${s[0]}px ${s[1]}px ${s[2]}px ${s[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`,`${s[4]}px ${s[5]}px ${s[6]}px ${s[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`,`${s[8]}px ${s[9]}px ${s[10]}px ${s[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(",")}const shadows=["none",createShadow(0,2,1,-1,0,1,1,0,0,1,3,0),createShadow(0,3,1,-2,0,2,2,0,0,1,5,0),createShadow(0,3,3,-2,0,3,4,0,0,1,8,0),createShadow(0,2,4,-1,0,4,5,0,0,1,10,0),createShadow(0,3,5,-1,0,5,8,0,0,1,14,0),createShadow(0,3,5,-1,0,6,10,0,0,1,18,0),createShadow(0,4,5,-2,0,7,10,1,0,2,16,1),createShadow(0,5,5,-3,0,8,10,1,0,3,14,2),createShadow(0,5,6,-3,0,9,12,1,0,3,16,2),createShadow(0,6,6,-3,0,10,14,1,0,4,18,3),createShadow(0,6,7,-4,0,11,15,1,0,4,20,3),createShadow(0,7,8,-4,0,12,17,2,0,5,22,4),createShadow(0,7,8,-4,0,13,19,2,0,5,24,4),createShadow(0,7,9,-4,0,14,21,2,0,5,26,4),createShadow(0,8,9,-5,0,15,22,2,0,6,28,5),createShadow(0,8,10,-5,0,16,24,2,0,6,30,5),createShadow(0,8,11,-5,0,17,26,2,0,6,32,5),createShadow(0,9,11,-5,0,18,28,2,0,7,34,6),createShadow(0,9,12,-6,0,19,29,2,0,7,36,6),createShadow(0,10,13,-6,0,20,31,3,0,8,38,7),createShadow(0,10,13,-6,0,21,33,3,0,8,40,7),createShadow(0,10,14,-6,0,22,35,3,0,8,42,7),createShadow(0,11,14,-7,0,23,36,3,0,9,44,8),createShadow(0,11,15,-7,0,24,38,3,0,9,46,8)],shadows$1=shadows,_excluded$2=["duration","easing","delay"],easing={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},duration$4={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function formatMs(s){return`${Math.round(s)}ms`}function getAutoHeightDuration(s){if(!s)return 0;const o=s/36;return Math.round((4+15*o**.25+o/5)*10)}function createTransitions(s){const o=_extends$1({},easing,s.easing),et=_extends$1({},duration$4,s.duration);return _extends$1({getAutoHeightDuration,create:(tt=["all"],nt={})=>{const{duration:rt=et.standard,easing:it=o.easeInOut,delay:ot=0}=nt;return _objectWithoutPropertiesLoose$1(nt,_excluded$2),(Array.isArray(tt)?tt:[tt]).map(st=>`${st} ${typeof rt=="string"?rt:formatMs(rt)} ${it} ${typeof ot=="string"?ot:formatMs(ot)}`).join(",")}},s,{easing:o,duration:et})}const zIndex={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},zIndex$1=zIndex,_excluded$1=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function createTheme(s={},...o){const{mixins:et={},palette:tt={},transitions:nt={},typography:rt={}}=s,it=_objectWithoutPropertiesLoose$1(s,_excluded$1),ot=createPalette(tt),st=createTheme$1(s);let at=deepmerge(st,{mixins:createMixins(st.breakpoints,st.spacing,et),palette:ot,shadows:shadows$1.slice(),typography:createTypography(ot,rt),transitions:createTransitions(nt),zIndex:_extends$1({},zIndex$1)});return at=deepmerge(at,it),at=o.reduce((lt,ut)=>deepmerge(lt,ut),at),at}const defaultTheme$1=createTheme(),defaultTheme$2=defaultTheme$1,rootShouldForwardProp=s=>shouldForwardProp(s)&&s!=="classes",styled$1=createStyled$1({defaultTheme:defaultTheme$2,rootShouldForwardProp}),styled$1$1=styled$1,html=(s,o)=>_extends$1({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%"},o&&{colorScheme:s.palette.mode}),body=s=>_extends$1({color:s.palette.text.primary},s.typography.body1,{backgroundColor:s.palette.background.default,"@media print":{backgroundColor:s.palette.common.white}});generateUtilityClasses("MuiScopedCssBaseline",["root"]);styled$1$1("div",{name:"MuiScopedCssBaseline",slot:"Root",overridesResolver:(s,o)=>o.root})(({theme:s,ownerState:o})=>_extends$1({},html(s,o.enableColorScheme),body(s),{"& *, & *::before, & *::after":{boxSizing:"inherit"},"& strong, & b":{fontWeight:s.typography.fontWeightBold}}));const baseTheme=createTheme$2({typography:{fontFamily:"'Moderat', 'Inter', 'Source Sans Pro', sans-serif",h1:{fontStyle:"normal",fontWeight:"normal",fontSize:"2rem",lineHeight:"2.5rem",letterSpacing:0},h2:{fontStyle:"normal",fontWeight:"normal",fontSize:"1.5rem",lineHeight:"2.125rem",letterSpacing:"0.069rem",fontFeatureSettings:'"zero" on'},h3:{fontStyle:"normal",fontWeight:500,fontSize:"1.125rem",lineHeight:"1.688rem",letterSpacing:"0.069rem"},h4:{fontStyle:"normal",fontWeight:700,fontSize:"0.813rem",lineHeight:"1.375rem",letterSpacing:"0.069rem",textTransform:"uppercase"},h5:{fontStyle:"normal",fontWeight:700,fontSize:"0.813rem",lineHeight:"1.125rem",letterSpacing:"0.038rem",textTransform:"uppercase"},h6:{fontStyle:"normal",fontWeight:"normal",fontSize:"0.625rem",lineHeight:"0.938rem",letterSpacing:"0.063rem"},body1:{fontStyle:"normal",fontWeight:"normal",fontSize:"1rem",lineHeight:"1.688rem",letterSpacing:"0.063rem",fontFeatureSettings:'"zero" on'},body2:{fontStyle:"normal",fontWeight:"normal",fontSize:"1rem",lineHeight:"1.688rem",letterSpacing:"0.063rem",fontFeatureSettings:'"zero" on',fontVariantNumeric:"tabular-nums"},button:{fontWeight:500,fontSize:"0.875rem",lineHeight:"1.05rem",letterSpacing:"0.053.rem",textTransform:"uppercase"}}}),lightPalette={palette:{mode:"light",success:{main:"#34dea9",dark:"#2d8376"},info:{main:"#297ceb",dark:"#256faf",light:"#3BABFF"},error:{main:"#fd76a7",dark:"#7f5072"},warning:{main:"#ffb179",dark:"#94645f"},primary:{main:"#657197",light:"#BAC4E2",dark:"#3B4668"},secondary:{main:"#3babff",dark:"#76a7dc"},background:{default:"#FFFFFF",paper:"#F1F3F9"},common:{black:"#ffffff",white:"#000000"}}},darkPalette={palette:{mode:"dark",primary:{main:"#657197",dark:"#3B4668",light:"#BAC4E2",contrastText:"#ffffff"},secondary:{main:"#18d2ff",light:"#18d2ff",dark:"#256faf"},background:{default:"#2d3855",paper:"#2d3855"},common:{black:"#000000",white:"#ffffff"},text:{primary:"#bac4e2"},error:{main:"#ea719d",dark:"#7F5072"},warning:{main:"#a961e4",dark:"#564A94"},info:{main:"#20a0ff",dark:"#256FAF"},success:{main:"#2ec495",dark:"#2D8376"}}};function createComponents(s){const o={components:{MuiCssBaseline:{styleOverrides:{body:{"&::-webkit-scrollbar, & *::-webkit-scrollbar":{background:"transparent",width:"0.5rem",height:"0.5rem"},"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb":{background:s.palette.primary.light,borderRadius:"0.25rem"},"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover":{backgroundColor:s.palette.primary.light},"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner":{backgroundColor:s.palette.primary.light}}}},MuiLink:{styleOverrides:{root:{color:s.palette.secondary.main}}},MuiDialogActions:{styleOverrides:{root:{padding:baseTheme.spacing(3)}}},MuiInputLabel:{styleOverrides:{root:{color:s.palette.primary.light,"&.Mui-focused":{color:s.palette.secondary.main}},outlined:{borderRadius:4,padding:"0.125rem 0.375rem","&.Mui-focused":{backgroundColor:"#2d3855"}}}},MuiFilledInput:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,borderTop:"1px solid transparent",":before":{borderBottom:`1px dotted ${s.palette.primary.light}`},"&.Mui-focused":{background:s.palette.common.black,border:`1px solid ${s.palette.secondary.main}`,borderBottom:"none",borderTop:`1px solid ${s.palette.secondary.main}`},":after":{borderBottom:`1px solid ${s.palette.secondary.main}`}}}},MuiOutlinedInput:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,borderBottomLeftRadius:0,borderBottomRightRadius:0,borderBottom:`1px dotted ${s.palette.primary.light}`,"&.Mui-focused":{border:`1px solid ${s.palette.secondary.main}`,backgroundColor:s.palette.common.black}},notchedOutline:{border:"transparent"},input:{"&:-webkit-autofill":{"-webkit-box-shadow":`0 0 0 100px ${s.palette.primary.dark} inset`,"-webkit-text-fill-color":s.palette.primary.light}}}},MuiFormHelperText:{styleOverrides:{root:{color:s.palette.error.main}}},MuiTooltip:{styleOverrides:{tooltip:{backgroundColor:"rgba(0, 0, 0, 0.87)",color:"white",padding:baseTheme.spacing(1.2)}}},MuiDialogTitle:{styleOverrides:{root:{color:s.palette.common.white,fontStyle:"normal",fontWeight:500,...baseTheme.typography.h3}}},MuiDialogContentText:{styleOverrides:{root:{color:s.palette.primary.light}}},MuiButtonBase:{defaultProps:{disableRipple:!0}},MuiButton:{styleOverrides:{root:{willChange:"background-color , color , border-color , box-shadow",transition:"background-color 200ms ease-in-out 0ms , color 200ms ease-in-out 0ms , border-color 200ms ease-in-out 0ms , box-shadow 200ms ease-in-out 0ms",borderRadius:40,boxShadow:`0 0 0 0rem ${s.palette.primary.main}`,"&.Mui-disabled":{color:s.palette.primary.main}},sizeSmall:{height:"1.25rem",fontWeight:500,fontSize:"0.688rem",lineHeight:"0.825rem",letterSpacing:"0.047rem"},sizeMedium:{height:"1.813rem",fontWeight:500},sizeLarge:{height:"2.563rem",fontWeight:500,fontSize:"0.875rem",lineHeight:"1.05rem",letterSpacing:"0.053rem"},containedPrimary:{background:s.palette.primary.light,color:s.palette.common.black,"@media(hover: hover)":{"&:hover":{boxShadow:`0 0 0 0.4rem ${s.palette.primary.light}`,background:s.palette.primary.light}}},containedSecondary:{color:s.palette.common.black,"@media(hover: hover)":{"&:hover":{boxShadow:`0 0 0 0.4rem ${s.palette.secondary.main}`,background:s.palette.secondary.main}}},outlinedPrimary:{color:s.palette.primary.light}}},MuiDialog:{styleOverrides:{paper:{background:s.palette.background.paper}}},MuiNativeSelect:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,borderTop:"1px solid transparent"},icon:{color:s.palette.primary.light}}},MuiSelect:{styleOverrides:{icon:{color:s.palette.primary.light}}},MuiSnackbarContent:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,color:s.palette.primary.light}}},MuiSwitch:{styleOverrides:{switchBase:{"&.Mui-checked+.MuiSwitch-track":{backgroundColor:s.palette.common.black},"&.Mui-checked .MuiSwitch-thumb":{backgroundColor:s.palette.secondary.main}},thumb:{backgroundColor:s.palette.primary.light},track:{backgroundColor:s.palette.common.black}}}}};return createTheme$2(s,o)}createComponents(createTheme$2(baseTheme,darkPalette));createComponents(createTheme$2(baseTheme,lightPalette));function toInteger$1(s){if(s===null||s===!0||s===!1)return NaN;var o=Number(s);return isNaN(o)?o:o<0?Math.ceil(o):Math.floor(o)}function requiredArgs$1(s,o){if(o.length1?"s":"")+" required, but only "+o.length+" present")}function _typeof$1$1(s){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$1$1=function(o){return typeof o}:_typeof$1$1=function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof$1$1(s)}function toDate$1(s){requiredArgs$1(1,arguments);var o=Object.prototype.toString.call(s);return s instanceof Date||_typeof$1$1(s)==="object"&&o==="[object Date]"?new Date(s.getTime()):typeof s=="number"||o==="[object Number]"?new Date(s):((typeof s=="string"||o==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function addDays$1(s,o){requiredArgs$1(2,arguments);var et=toDate$1(s),tt=toInteger$1(o);return isNaN(tt)?new Date(NaN):(tt&&et.setDate(et.getDate()+tt),et)}function addMonths$1(s,o){requiredArgs$1(2,arguments);var et=toDate$1(s),tt=toInteger$1(o);if(isNaN(tt))return new Date(NaN);if(!tt)return et;var nt=et.getDate(),rt=new Date(et.getTime());rt.setMonth(et.getMonth()+tt+1,0);var it=rt.getDate();return nt>=it?rt:(et.setFullYear(rt.getFullYear(),rt.getMonth(),nt),et)}function addMilliseconds$1(s,o){requiredArgs$1(2,arguments);var et=toDate$1(s).getTime(),tt=toInteger$1(o);return new Date(et+tt)}var MILLISECONDS_IN_HOUR$1=36e5;function addHours$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addMilliseconds$1(s,et*MILLISECONDS_IN_HOUR$1)}var defaultOptions$1={};function getDefaultOptions$1(){return defaultOptions$1}function startOfWeek$1(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs$1(1,arguments);var lt=getDefaultOptions$1(),ut=toInteger$1((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate$1(s),ht=dt.getDay(),ct=(ht=it)throw new RangeError("Invalid interval");var ot=[],st=tt,at=Number((et=o?.step)!==null&&et!==void 0?et:1);if(at<1||isNaN(at))throw new RangeError("`options.step` must be a number equal to or greater than 1");for(;st.getTime()<=it;)ot.push(toDate$1(st)),st=addMinutes$1(st,at);return ot}function eachMonthOfInterval$1(s){requiredArgs$1(1,arguments);var o=s||{},et=toDate$1(o.start),tt=toDate$1(o.end),nt=tt.getTime(),rt=[];if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var it=et;for(it.setHours(0,0,0,0),it.setDate(1);it.getTime()<=nt;)rt.push(toDate$1(it)),it.setMonth(it.getMonth()+1);return rt}function startOfQuarter$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s),et=o.getMonth(),tt=et-et%3;return o.setMonth(tt,1),o.setHours(0,0,0,0),o}function eachQuarterOfInterval$1(s){requiredArgs$1(1,arguments);var o=s||{},et=toDate$1(o.start),tt=toDate$1(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=startOfQuarter$1(et),it=startOfQuarter$1(tt);nt=it.getTime();for(var ot=[],st=rt;st.getTime()<=nt;)ot.push(toDate$1(st)),st=addQuarters$1(st,1);return ot}function eachWeekOfInterval$1(s,o){requiredArgs$1(1,arguments);var et=s||{},tt=toDate$1(et.start),nt=toDate$1(et.end),rt=nt.getTime();if(!(tt.getTime()<=rt))throw new RangeError("Invalid interval");var it=startOfWeek$1(tt,o),ot=startOfWeek$1(nt,o);it.setHours(15),ot.setHours(15),rt=ot.getTime();for(var st=[],at=it;at.getTime()<=rt;)at.setHours(0),st.push(toDate$1(at)),at=addWeeks$1(at,1),at.setHours(15);return st}function startOfMonth$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s);return o.setDate(1),o.setHours(0,0,0,0),o}function endOfYear$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s),et=o.getFullYear();return o.setFullYear(et+1,0,0),o.setHours(23,59,59,999),o}function startOfYear$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s),et=new Date(0);return et.setFullYear(o.getFullYear(),0,1),et.setHours(0,0,0,0),et}function eachYearOfInterval$1(s){requiredArgs$1(1,arguments);var o=s||{},et=toDate$1(o.start),tt=toDate$1(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=[],it=et;for(it.setHours(0,0,0,0),it.setMonth(0,1);it.getTime()<=nt;)rt.push(toDate$1(it)),it.setFullYear(it.getFullYear()+1);return rt}function endOfHour$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s);return o.setMinutes(59,59,999),o}function endOfWeek$1(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs$1(1,arguments);var lt=getDefaultOptions$1(),ut=toInteger$1((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate$1(s),ht=dt.getDay(),ct=(ht=1&&ht<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var ct=new Date(0);ct.setFullYear(ut+1,0,ht),ct.setHours(0,0,0,0);var pt=startOfWeek$1(ct,o),ft=new Date(0);ft.setFullYear(ut,0,ht),ft.setHours(0,0,0,0);var gt=startOfWeek$1(ft,o);return lt.getTime()>=pt.getTime()?ut+1:lt.getTime()>=gt.getTime()?ut:ut-1}function startOfWeekYear$1(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs$1(1,arguments);var lt=getDefaultOptions$1(),ut=toInteger$1((et=(tt=(nt=(rt=o?.firstWeekContainsDate)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.firstWeekContainsDate)!==null&&nt!==void 0?nt:lt.firstWeekContainsDate)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.firstWeekContainsDate)!==null&&et!==void 0?et:1),dt=getWeekYear$1(s,o),ht=new Date(0);ht.setFullYear(dt,0,ut),ht.setHours(0,0,0,0);var ct=startOfWeek$1(ht,o);return ct}var MILLISECONDS_IN_WEEK$1=6048e5;function getWeek$1(s,o){requiredArgs$1(1,arguments);var et=toDate$1(s),tt=startOfWeek$1(et,o).getTime()-startOfWeekYear$1(et,o).getTime();return Math.round(tt/MILLISECONDS_IN_WEEK$1)+1}function getYear$1(s){return requiredArgs$1(1,arguments),toDate$1(s).getFullYear()}function startOfHour$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s);return o.setMinutes(0,0,0),o}function subDays$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addDays$1(s,-et)}function roundToNearestMinutes$1(s,o){var et;if(arguments.length<1)throw new TypeError("1 argument required, but only none provided present");var tt=toInteger$1((et=o?.nearestTo)!==null&&et!==void 0?et:1);if(tt<1||tt>30)throw new RangeError("`options.nearestTo` must be between 1 and 30");var nt=toDate$1(s),rt=nt.getSeconds(),it=nt.getMinutes()+rt/60,ot=getRoundingMethod$1(o?.roundingMethod),st=ot(it/tt)*tt,at=it%tt,lt=Math.round(at/tt)*tt;return new Date(nt.getFullYear(),nt.getMonth(),nt.getDate(),nt.getHours(),st+lt)}function subMonths$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addMonths$1(s,-et)}function subHours$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addHours$1(s,-et)}function subMinutes$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addMinutes$1(s,-et)}function subQuarters$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addQuarters$1(s,-et)}function subWeeks$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addWeeks$1(s,-et)}function subYears$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addYears$1(s,-et)}var __defProp$1=Object.defineProperty,__defNormalProp$1=(s,o,et)=>o in s?__defProp$1(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,__publicField$1=(s,o,et)=>(__defNormalProp$1(s,typeof o!="symbol"?o+"":o,et),et),dist$1={exports:{}};/*! For license information please see index.js.LICENSE.txt */(function(module,exports){(function(s,o){module.exports=o()})(window,function(){return function(s){function o(at){for(var lt,ut,dt=at[0],ht=at[1],ct=0,pt=[];ct1?"s":"")+" required, but only "+$t.length+" present")}function ut(It){if(It===null||It===!0||It===!1)return NaN;var $t=Number(It);return isNaN($t)?$t:$t<0?Math.ceil($t):Math.floor($t)}var dt={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},ht=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,ct=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,pt=/^([+-])(\d{2})(?::?(\d{2}))?$/;function ft(It){var $t,Ht={},qt=It.split(dt.dateTimeDelimiter);if(qt.length>2)return Ht;if(/:/.test(qt[0])?$t=qt[0]:(Ht.date=qt[0],$t=qt[1],dt.timeZoneDelimiter.test(Ht.date)&&(Ht.date=It.split(dt.timeZoneDelimiter)[0],$t=It.substr(Ht.date.length,It.length))),$t){var on=dt.timezone.exec($t);on?(Ht.time=$t.replace(on[1],""),Ht.timezone=on[1]):Ht.time=$t}return Ht}function gt(It,$t){var Ht=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+$t)+"})|(\\d{2}|[+-]\\d{"+(2+$t)+"})$)"),qt=It.match(Ht);if(!qt)return{year:NaN,restDateString:""};var on=qt[1]?parseInt(qt[1]):null,Xt=qt[2]?parseInt(qt[2]):null;return{year:Xt===null?on:100*Xt,restDateString:It.slice((qt[1]||qt[2]).length)}}function yt(It,$t){if($t===null)return new Date(NaN);var Ht=It.match(ht);if(!Ht)return new Date(NaN);var qt=!!Ht[4],on=Ut(Ht[1]),Xt=Ut(Ht[2])-1,dn=Ut(Ht[3]),_n=Ut(Ht[4]),Fn=Ut(Ht[5])-1;if(qt)return function(On,gn,hn){return gn>=1&&gn<=53&&hn>=0&&hn<=6}(0,_n,Fn)?function(On,gn,hn){var wn=new Date(0);wn.setUTCFullYear(On,0,4);var Zn=wn.getUTCDay()||7,Pn=7*(gn-1)+hn+1-Zn;return wn.setUTCDate(wn.getUTCDate()+Pn),wn}($t,_n,Fn):new Date(NaN);var Un=new Date(0);return function(On,gn,hn){return gn>=0&&gn<=11&&hn>=1&&hn<=(At[gn]||(Lt(On)?29:28))}($t,Xt,dn)&&function(On,gn){return gn>=1&&gn<=(Lt(On)?366:365)}($t,on)?(Un.setUTCFullYear($t,Xt,Math.max(on,dn)),Un):new Date(NaN)}function Ut(It){return It?parseInt(It):1}function Ft(It){var $t=It.match(ct);if(!$t)return NaN;var Ht=mt($t[1]),qt=mt($t[2]),on=mt($t[3]);return function(Xt,dn,_n){return Xt===24?dn===0&&_n===0:_n>=0&&_n<60&&dn>=0&&dn<60&&Xt>=0&&Xt<25}(Ht,qt,on)?36e5*Ht+6e4*qt+1e3*on:NaN}function mt(It){return It&&parseFloat(It.replace(",","."))||0}function vt(It){if(It==="Z")return 0;var $t=It.match(pt);if(!$t)return 0;var Ht=$t[1]==="+"?-1:1,qt=parseInt($t[2]),on=$t[3]&&parseInt($t[3])||0;return function(Xt,dn){return dn>=0&&dn<=59}(0,on)?Ht*(36e5*qt+6e4*on):NaN}var At=[31,null,31,30,31,30,31,31,30,31,30,31];function Lt(It){return It%400==0||It%4==0&&It%100!=0}function Rt(It){return lt(1,arguments),It instanceof Date||typeof It=="object"&&Object.prototype.toString.call(It)==="[object Date]"}function St(It){lt(1,arguments);var $t=Object.prototype.toString.call(It);return It instanceof Date||typeof It=="object"&&$t==="[object Date]"?new Date(It.getTime()):typeof It=="number"||$t==="[object Number]"?new Date(It):(typeof It!="string"&&$t!=="[object String]"||typeof console>"u"||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function Tt(It){const $t=function(Ht,qt){var on;lt(1,arguments);var Xt=ut((on=qt?.additionalDigits)!==null&&on!==void 0?on:2);if(Xt!==2&&Xt!==1&&Xt!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(typeof Ht!="string"&&Object.prototype.toString.call(Ht)!=="[object String]")return new Date(NaN);var dn,_n=ft(Ht);if(_n.date){var Fn=gt(_n.date,Xt);dn=yt(Fn.restDateString,Fn.year)}if(!dn||isNaN(dn.getTime()))return new Date(NaN);var Un,On=dn.getTime(),gn=0;if(_n.time&&(gn=Ft(_n.time),isNaN(gn)))return new Date(NaN);if(!_n.timezone){var hn=new Date(On+gn),wn=new Date(0);return wn.setFullYear(hn.getUTCFullYear(),hn.getUTCMonth(),hn.getUTCDate()),wn.setHours(hn.getUTCHours(),hn.getUTCMinutes(),hn.getUTCSeconds(),hn.getUTCMilliseconds()),wn}return Un=vt(_n.timezone),isNaN(Un)?new Date(NaN):new Date(On+gn+Un)}(It);if(!function(Ht){if(lt(1,arguments),!Rt(Ht)&&typeof Ht!="number")return!1;var qt=St(Ht);return!isNaN(Number(qt))}($t))throw new Error(`Invalid ISO 8601 date string (${It})`);return $t}var Bt=et(4),xt=et(34);function Ct(It){return nt()(It,{cycles:!0})}var kt=function(It,$t){var Ht={};for(var qt in It)Object.prototype.hasOwnProperty.call(It,qt)&&$t.indexOf(qt)<0&&(Ht[qt]=It[qt]);if(It!=null&&typeof Object.getOwnPropertySymbols=="function"){var on=0;for(qt=Object.getOwnPropertySymbols(It);on$t.redacted!==!1?Object(xt.a)(_n):_n;if(!It.stack)return{message:Ct(Ht(It))};const{name:qt,message:on,stack:Xt}=It,dn=kt(It,["name","message","stack"]);return{name:qt,message:on!==void 0?on:Ct(Ht(It)),stack:Xt,meta:dn&&Object.keys(dn).length===0?void 0:Ht(dn)}}function Ot(It,$t={}){const{message:Ht,stack:qt,meta:on}=Nt(It,$t);return`${qt||Ht||""}${on&&Object.keys(on).length>0?` -- ${Ct(on)}`:""}`}var Wt=et(39),Dt=et(103),Et=et.n(Dt),Pt=function(It,$t,Ht,qt){return new(Ht||(Ht=Promise))(function(on,Xt){function dn(Un){try{Fn(qt.next(Un))}catch(On){Xt(On)}}function _n(Un){try{Fn(qt.throw(Un))}catch(On){Xt(On)}}function Fn(Un){var On;Un.done?on(Un.value):(On=Un.value,On instanceof Ht?On:new Ht(function(gn){gn(On)})).then(dn,_n)}Fn((qt=qt.apply(It,$t||[])).next())})},zt=function(It,$t){var Ht={};for(var qt in It)Object.prototype.hasOwnProperty.call(It,qt)&&$t.indexOf(qt)<0&&(Ht[qt]=It[qt]);if(It!=null&&typeof Object.getOwnPropertySymbols=="function"){var on=0;for(qt=Object.getOwnPropertySymbols(It);on{var{timestamp:$t,level:Ht,message:qt,error:on}=It,Xt=Kt(It,["timestamp","level","message","error"]);const dn=Object.assign(Object.assign({timestamp:$t?Tt($t).getTime():new Date().getTime(),level:Ht.toUpperCase(),message:qt},on?{error:Nt(on)}:{}),{meta:Object.assign(Object.assign({},nn),Xt)});return nt()(dn,{cycles:!0})}):ot.format.printf(It=>{var{timestamp:$t,level:Ht,message:qt,error:on}=It,Xt=Kt(It,["timestamp","level","message","error"]);let dn=`${$t||new Date().toISOString()} ${Ht.toUpperCase()}: ${qt} `;return Object.keys(Xt).length>0&&(dn+=nt()(Xt,{cycles:!0})),on&&(dn+=` -${Ot(on)}`),dn}),jt=Object(ot.createLogger)({level:Bt.f});if(Bt.g&&jt.add(new ot.transports.Console({format:Zt,level:"debug"})),Bt.d&&jt.add(new en(Bt.d,nn)),Bt.h){const It=it.resolve(rt.tmpdir(),`silly-${Bt.a}.log`);jt.debug("Logging silly logs to file",{filename:It}),jt.add(new ot.transports.File({filename:It,maxsize:1*at,maxFiles:10,format:ot.format.combine((Vt="silly",Object(ot.format)($t=>$t.level===Vt&&$t)()),Zt),level:"silly"}))}var Vt},function(s,o,et){et.d(o,"a",function(){return tt});const tt={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:2592e6,year:31536e6}},function(s,o){var et,tt,nt=s.exports={};function rt(){throw new Error("setTimeout has not been defined")}function it(){throw new Error("clearTimeout has not been defined")}function ot(ft){if(et===setTimeout)return setTimeout(ft,0);if((et===rt||!et)&&setTimeout)return et=setTimeout,setTimeout(ft,0);try{return et(ft,0)}catch{try{return et.call(null,ft,0)}catch{return et.call(this,ft,0)}}}(function(){try{et=typeof setTimeout=="function"?setTimeout:rt}catch{et=rt}try{tt=typeof clearTimeout=="function"?clearTimeout:it}catch{tt=it}})();var st,at=[],lt=!1,ut=-1;function dt(){lt&&st&&(lt=!1,st.length?at=st.concat(at):ut=-1,at.length&&ht())}function ht(){if(!lt){var ft=ot(dt);lt=!0;for(var gt=at.length;gt;){for(st=at,at=[];++ut1)for(var yt=1;yt=ot())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ot().toString(16)+" bytes");return 0|Vt}function pt(Vt,It){if(at.isBuffer(Vt))return Vt.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(Vt)||Vt instanceof ArrayBuffer))return Vt.byteLength;typeof Vt!="string"&&(Vt=""+Vt);var $t=Vt.length;if($t===0)return 0;for(var Ht=!1;;)switch(It){case"ascii":case"latin1":case"binary":return $t;case"utf8":case"utf-8":case void 0:return nn(Vt).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*$t;case"hex":return $t>>>1;case"base64":return Zt(Vt).length;default:if(Ht)return nn(Vt).length;It=(""+It).toLowerCase(),Ht=!0}}function ft(Vt,It,$t){var Ht=!1;if((It===void 0||It<0)&&(It=0),It>this.length||(($t===void 0||$t>this.length)&&($t=this.length),$t<=0)||($t>>>=0)<=(It>>>=0))return"";for(Vt||(Vt="utf8");;)switch(Vt){case"hex":return Ct(this,It,$t);case"utf8":case"utf-8":return Tt(this,It,$t);case"ascii":return Bt(this,It,$t);case"latin1":case"binary":return xt(this,It,$t);case"base64":return St(this,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return kt(this,It,$t);default:if(Ht)throw new TypeError("Unknown encoding: "+Vt);Vt=(Vt+"").toLowerCase(),Ht=!0}}function gt(Vt,It,$t){var Ht=Vt[It];Vt[It]=Vt[$t],Vt[$t]=Ht}function yt(Vt,It,$t,Ht,qt){if(Vt.length===0)return-1;if(typeof $t=="string"?(Ht=$t,$t=0):$t>2147483647?$t=2147483647:$t<-2147483648&&($t=-2147483648),$t=+$t,isNaN($t)&&($t=qt?0:Vt.length-1),$t<0&&($t=Vt.length+$t),$t>=Vt.length){if(qt)return-1;$t=Vt.length-1}else if($t<0){if(!qt)return-1;$t=0}if(typeof It=="string"&&(It=at.from(It,Ht)),at.isBuffer(It))return It.length===0?-1:Ut(Vt,It,$t,Ht,qt);if(typeof It=="number")return It&=255,at.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?qt?Uint8Array.prototype.indexOf.call(Vt,It,$t):Uint8Array.prototype.lastIndexOf.call(Vt,It,$t):Ut(Vt,[It],$t,Ht,qt);throw new TypeError("val must be string, number or Buffer")}function Ut(Vt,It,$t,Ht,qt){var on,Xt=1,dn=Vt.length,_n=It.length;if(Ht!==void 0&&((Ht=String(Ht).toLowerCase())==="ucs2"||Ht==="ucs-2"||Ht==="utf16le"||Ht==="utf-16le")){if(Vt.length<2||It.length<2)return-1;Xt=2,dn/=2,_n/=2,$t/=2}function Fn(hn,wn){return Xt===1?hn[wn]:hn.readUInt16BE(wn*Xt)}if(qt){var Un=-1;for(on=$t;ondn&&($t=dn-_n),on=$t;on>=0;on--){for(var On=!0,gn=0;gn<_n;gn++)if(Fn(Vt,on+gn)!==Fn(It,gn)){On=!1;break}if(On)return on}return-1}function Ft(Vt,It,$t,Ht){$t=Number($t)||0;var qt=Vt.length-$t;Ht?(Ht=Number(Ht))>qt&&(Ht=qt):Ht=qt;var on=It.length;if(on%2!=0)throw new TypeError("Invalid hex string");Ht>on/2&&(Ht=on/2);for(var Xt=0;Xt>8,_n=Xt%256,Fn.push(_n),Fn.push(dn);return Fn}(It,Vt.length-$t),Vt,$t,Ht)}function St(Vt,It,$t){return It===0&&$t===Vt.length?nt.fromByteArray(Vt):nt.fromByteArray(Vt.slice(It,$t))}function Tt(Vt,It,$t){$t=Math.min(Vt.length,$t);for(var Ht=[],qt=It;qt<$t;){var on,Xt,dn,_n,Fn=Vt[qt],Un=null,On=Fn>239?4:Fn>223?3:Fn>191?2:1;if(qt+On<=$t)switch(On){case 1:Fn<128&&(Un=Fn);break;case 2:(192&(on=Vt[qt+1]))==128&&(_n=(31&Fn)<<6|63&on)>127&&(Un=_n);break;case 3:on=Vt[qt+1],Xt=Vt[qt+2],(192&on)==128&&(192&Xt)==128&&(_n=(15&Fn)<<12|(63&on)<<6|63&Xt)>2047&&(_n<55296||_n>57343)&&(Un=_n);break;case 4:on=Vt[qt+1],Xt=Vt[qt+2],dn=Vt[qt+3],(192&on)==128&&(192&Xt)==128&&(192&dn)==128&&(_n=(15&Fn)<<18|(63&on)<<12|(63&Xt)<<6|63&dn)>65535&&_n<1114112&&(Un=_n)}Un===null?(Un=65533,On=1):Un>65535&&(Un-=65536,Ht.push(Un>>>10&1023|55296),Un=56320|1023&Un),Ht.push(Un),qt+=On}return function(gn){var hn=gn.length;if(hn<=4096)return String.fromCharCode.apply(String,gn);for(var wn="",Zn=0;Zn0&&(Vt=this.toString("hex",0,It).match(/.{2}/g).join(" "),this.length>It&&(Vt+=" ... ")),""},at.prototype.compare=function(Vt,It,$t,Ht,qt){if(!at.isBuffer(Vt))throw new TypeError("Argument must be a Buffer");if(It===void 0&&(It=0),$t===void 0&&($t=Vt?Vt.length:0),Ht===void 0&&(Ht=0),qt===void 0&&(qt=this.length),It<0||$t>Vt.length||Ht<0||qt>this.length)throw new RangeError("out of range index");if(Ht>=qt&&It>=$t)return 0;if(Ht>=qt)return-1;if(It>=$t)return 1;if(this===Vt)return 0;for(var on=(qt>>>=0)-(Ht>>>=0),Xt=($t>>>=0)-(It>>>=0),dn=Math.min(on,Xt),_n=this.slice(Ht,qt),Fn=Vt.slice(It,$t),Un=0;Unqt)&&($t=qt),Vt.length>0&&($t<0||It<0)||It>this.length)throw new RangeError("Attempt to write outside buffer bounds");Ht||(Ht="utf8");for(var on=!1;;)switch(Ht){case"hex":return Ft(this,Vt,It,$t);case"utf8":case"utf-8":return mt(this,Vt,It,$t);case"ascii":return vt(this,Vt,It,$t);case"latin1":case"binary":return At(this,Vt,It,$t);case"base64":return Lt(this,Vt,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Rt(this,Vt,It,$t);default:if(on)throw new TypeError("Unknown encoding: "+Ht);Ht=(""+Ht).toLowerCase(),on=!0}},at.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Bt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(127&Vt[qt]);return Ht}function xt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(Vt[qt]);return Ht}function Ct(Vt,It,$t){var Ht=Vt.length;(!It||It<0)&&(It=0),(!$t||$t<0||$t>Ht)&&($t=Ht);for(var qt="",on=It;on<$t;++on)qt+=Kt(Vt[on]);return qt}function kt(Vt,It,$t){for(var Ht=Vt.slice(It,$t),qt="",on=0;on$t)throw new RangeError("Trying to access beyond buffer length")}function Ot(Vt,It,$t,Ht,qt,on){if(!at.isBuffer(Vt))throw new TypeError('"buffer" argument must be a Buffer instance');if(It>qt||ItVt.length)throw new RangeError("Index out of range")}function Wt(Vt,It,$t,Ht){It<0&&(It=65535+It+1);for(var qt=0,on=Math.min(Vt.length-$t,2);qt>>8*(Ht?qt:1-qt)}function Dt(Vt,It,$t,Ht){It<0&&(It=4294967295+It+1);for(var qt=0,on=Math.min(Vt.length-$t,4);qt>>8*(Ht?qt:3-qt)&255}function Et(Vt,It,$t,Ht,qt,on){if($t+Ht>Vt.length)throw new RangeError("Index out of range");if($t<0)throw new RangeError("Index out of range")}function Pt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,4),rt.write(Vt,It,$t,Ht,23,4),$t+4}function zt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,8),rt.write(Vt,It,$t,Ht,52,8),$t+8}at.prototype.slice=function(Vt,It){var $t,Ht=this.length;if((Vt=~~Vt)<0?(Vt+=Ht)<0&&(Vt=0):Vt>Ht&&(Vt=Ht),(It=It===void 0?Ht:~~It)<0?(It+=Ht)<0&&(It=0):It>Ht&&(It=Ht),It0&&(qt*=256);)Ht+=this[Vt+--It]*qt;return Ht},at.prototype.readUInt8=function(Vt,It){return It||Nt(Vt,1,this.length),this[Vt]},at.prototype.readUInt16LE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]|this[Vt+1]<<8},at.prototype.readUInt16BE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]<<8|this[Vt+1]},at.prototype.readUInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),(this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16)+16777216*this[Vt+3]},at.prototype.readUInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),16777216*this[Vt]+(this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3])},at.prototype.readIntLE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=this[Vt],qt=1,on=0;++on=(qt*=128)&&(Ht-=Math.pow(2,8*It)),Ht},at.prototype.readIntBE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=It,qt=1,on=this[Vt+--Ht];Ht>0&&(qt*=256);)on+=this[Vt+--Ht]*qt;return on>=(qt*=128)&&(on-=Math.pow(2,8*It)),on},at.prototype.readInt8=function(Vt,It){return It||Nt(Vt,1,this.length),128&this[Vt]?-1*(255-this[Vt]+1):this[Vt]},at.prototype.readInt16LE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt]|this[Vt+1]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt16BE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt+1]|this[Vt]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16|this[Vt+3]<<24},at.prototype.readInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]<<24|this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3]},at.prototype.readFloatLE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!0,23,4)},at.prototype.readFloatBE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!1,23,4)},at.prototype.readDoubleLE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!0,52,8)},at.prototype.readDoubleBE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!1,52,8)},at.prototype.writeUIntLE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=1,on=0;for(this[It]=255&Vt;++on<$t&&(qt*=256);)this[It+on]=Vt/qt&255;return It+$t},at.prototype.writeUIntBE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=$t-1,on=1;for(this[It+qt]=255&Vt;--qt>=0&&(on*=256);)this[It+qt]=Vt/on&255;return It+$t},at.prototype.writeUInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,255,0),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),this[It]=255&Vt,It+1},at.prototype.writeUInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Wt(this,Vt,It,!0),It+2},at.prototype.writeUInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Wt(this,Vt,It,!1),It+2},at.prototype.writeUInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It+3]=Vt>>>24,this[It+2]=Vt>>>16,this[It+1]=Vt>>>8,this[It]=255&Vt):Dt(this,Vt,It,!0),It+4},at.prototype.writeUInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeIntLE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=0,Xt=1,dn=0;for(this[It]=255&Vt;++on<$t&&(Xt*=256);)Vt<0&&dn===0&&this[It+on-1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeIntBE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=$t-1,Xt=1,dn=0;for(this[It+on]=255&Vt;--on>=0&&(Xt*=256);)Vt<0&&dn===0&&this[It+on+1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,127,-128),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),Vt<0&&(Vt=255+Vt+1),this[It]=255&Vt,It+1},at.prototype.writeInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Wt(this,Vt,It,!0),It+2},at.prototype.writeInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Wt(this,Vt,It,!1),It+2},at.prototype.writeInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8,this[It+2]=Vt>>>16,this[It+3]=Vt>>>24):Dt(this,Vt,It,!0),It+4},at.prototype.writeInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),Vt<0&&(Vt=4294967295+Vt+1),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeFloatLE=function(Vt,It,$t){return Pt(this,Vt,It,!0,$t)},at.prototype.writeFloatBE=function(Vt,It,$t){return Pt(this,Vt,It,!1,$t)},at.prototype.writeDoubleLE=function(Vt,It,$t){return zt(this,Vt,It,!0,$t)},at.prototype.writeDoubleBE=function(Vt,It,$t){return zt(this,Vt,It,!1,$t)},at.prototype.copy=function(Vt,It,$t,Ht){if($t||($t=0),Ht||Ht===0||(Ht=this.length),It>=Vt.length&&(It=Vt.length),It||(It=0),Ht>0&&Ht<$t&&(Ht=$t),Ht===$t||Vt.length===0||this.length===0)return 0;if(It<0)throw new RangeError("targetStart out of bounds");if($t<0||$t>=this.length)throw new RangeError("sourceStart out of bounds");if(Ht<0)throw new RangeError("sourceEnd out of bounds");Ht>this.length&&(Ht=this.length),Vt.length-It=0;--qt)Vt[qt+It]=this[qt+$t];else if(on<1e3||!at.TYPED_ARRAY_SUPPORT)for(qt=0;qt>>=0,$t=$t===void 0?this.length:$t>>>0,Vt||(Vt=0),typeof Vt=="number")for(on=It;on<$t;++on)this[on]=Vt;else{var Xt=at.isBuffer(Vt)?Vt:nn(new at(Vt,Ht).toString()),dn=Xt.length;for(on=0;on<$t-It;++on)this[on+It]=Xt[on%dn]}return this};var en=/[^+\/0-9A-Za-z-_]/g;function Kt(Vt){return Vt<16?"0"+Vt.toString(16):Vt.toString(16)}function nn(Vt,It){var $t;It=It||1/0;for(var Ht=Vt.length,qt=null,on=[],Xt=0;Xt55295&&$t<57344){if(!qt){if($t>56319){(It-=3)>-1&&on.push(239,191,189);continue}if(Xt+1===Ht){(It-=3)>-1&&on.push(239,191,189);continue}qt=$t;continue}if($t<56320){(It-=3)>-1&&on.push(239,191,189),qt=$t;continue}$t=65536+(qt-55296<<10|$t-56320)}else qt&&(It-=3)>-1&&on.push(239,191,189);if(qt=null,$t<128){if((It-=1)<0)break;on.push($t)}else if($t<2048){if((It-=2)<0)break;on.push($t>>6|192,63&$t|128)}else if($t<65536){if((It-=3)<0)break;on.push($t>>12|224,$t>>6&63|128,63&$t|128)}else{if(!($t<1114112))throw new Error("Invalid code point");if((It-=4)<0)break;on.push($t>>18|240,$t>>12&63|128,$t>>6&63|128,63&$t|128)}}return on}function Zt(Vt){return nt.toByteArray(function(It){if((It=function($t){return $t.trim?$t.trim():$t.replace(/^\s+|\s+$/g,"")}(It).replace(en,"")).length<2)return"";for(;It.length%4!=0;)It+="=";return It}(Vt))}function jt(Vt,It,$t,Ht){for(var qt=0;qt=It.length||qt>=Vt.length);++qt)It[qt+$t]=Vt[qt];return qt}}).call(this,et(6))},function(s,o){var et;et=function(){return this}();try{et=et||new Function("return this")()}catch{typeof window=="object"&&(et=window)}s.exports=et},function(s,o){typeof Object.create=="function"?s.exports=function(et,tt){tt&&(et.super_=tt,et.prototype=Object.create(tt.prototype,{constructor:{value:et,enumerable:!1,writable:!0,configurable:!0}}))}:s.exports=function(et,tt){if(tt){et.super_=tt;var nt=function(){};nt.prototype=tt.prototype,et.prototype=new nt,et.prototype.constructor=et}}},function(s,o,et){et.d(o,"a",function(){return tt});const tt=nt=>new Promise(rt=>setTimeout(rt,nt||0))},function(s,o,et){var tt=et(99),nt=tt,rt=Function("return this")(),it=et(98);nt.object.extend(proto,it),nt.exportSymbol("proto.v1.signaling.api.CreatePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.CreatePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.Peer",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.SessionType",null,rt),nt.exportSymbol("proto.v1.signaling.api.Signal",null,rt),proto.v1.signaling.api.Peer=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.Peer.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.Peer,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Peer.displayName="proto.v1.signaling.api.Peer"),proto.v1.signaling.api.Signal=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.Signal,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Signal.displayName="proto.v1.signaling.api.Signal"),proto.v1.signaling.api.GetHealthRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthRequest.displayName="proto.v1.signaling.api.GetHealthRequest"),proto.v1.signaling.api.GetHealthResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthResponse.displayName="proto.v1.signaling.api.GetHealthResponse"),proto.v1.signaling.api.CreatePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerRequest.displayName="proto.v1.signaling.api.CreatePeerRequest"),proto.v1.signaling.api.CreatePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerResponse.displayName="proto.v1.signaling.api.CreatePeerResponse"),proto.v1.signaling.api.DeletePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerRequest.displayName="proto.v1.signaling.api.DeletePeerRequest"),proto.v1.signaling.api.DeletePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerResponse.displayName="proto.v1.signaling.api.DeletePeerResponse"),proto.v1.signaling.api.RefreshPeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerRequest.displayName="proto.v1.signaling.api.RefreshPeerRequest"),proto.v1.signaling.api.RefreshPeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerResponse.displayName="proto.v1.signaling.api.RefreshPeerResponse"),proto.v1.signaling.api.GetPeersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetPeersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersRequest.displayName="proto.v1.signaling.api.GetPeersRequest"),proto.v1.signaling.api.GetPeersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.GetPeersResponse.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.GetPeersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersResponse.displayName="proto.v1.signaling.api.GetPeersResponse"),proto.v1.signaling.api.GetIceServersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersRequest.displayName="proto.v1.signaling.api.GetIceServersRequest"),proto.v1.signaling.api.GetIceServersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersResponse.displayName="proto.v1.signaling.api.GetIceServersResponse"),proto.v1.signaling.api.SendSignalRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalRequest.displayName="proto.v1.signaling.api.SendSignalRequest"),proto.v1.signaling.api.SendSignalResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalResponse.displayName="proto.v1.signaling.api.SendSignalResponse"),proto.v1.signaling.api.ReceiveSignalStreamRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.displayName="proto.v1.signaling.api.ReceiveSignalStreamRequest"),proto.v1.signaling.api.ReceiveSignalStreamResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.displayName="proto.v1.signaling.api.ReceiveSignalStreamResponse"),proto.v1.signaling.api.Peer.repeatedFields_=[5],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Peer.prototype.toObject=function(ot){return proto.v1.signaling.api.Peer.toObject(ot,this)},proto.v1.signaling.api.Peer.toObject=function(ot,st){var at,lt={peerId:tt.Message.getFieldWithDefault(st,1,""),organizationId:tt.Message.getFieldWithDefault(st,2,""),userId:(at=st.getUserId())&&it.StringValue.toObject(ot,at),deviceId:(at=st.getDeviceId())&&it.StringValue.toObject(ot,at),sessionIdsList:(at=tt.Message.getRepeatedField(st,5))==null?void 0:at,peerCreatedTimestamp:(at=st.getPeerCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Peer.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Peer;return proto.v1.signaling.api.Peer.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Peer.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;case 2:at=st.readString(),ot.setOrganizationId(at);break;case 3:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setUserId(at);break;case 4:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setDeviceId(at);break;case 5:at=st.readString(),ot.addSessionIds(at);break;case 6:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setPeerCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Peer.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Peer.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Peer.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getPeerId()).length>0&&st.writeString(1,at),(at=ot.getOrganizationId()).length>0&&st.writeString(2,at),(at=ot.getUserId())!=null&&st.writeMessage(3,at,it.StringValue.serializeBinaryToWriter),(at=ot.getDeviceId())!=null&&st.writeMessage(4,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionIdsList()).length>0&&st.writeRepeatedString(5,at),(at=ot.getPeerCreatedTimestamp())!=null&&st.writeMessage(6,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.Peer.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.Peer.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},proto.v1.signaling.api.Peer.prototype.getOrganizationId=function(){return tt.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.Peer.prototype.setOrganizationId=function(ot){return tt.Message.setProto3StringField(this,2,ot)},proto.v1.signaling.api.Peer.prototype.getUserId=function(){return tt.Message.getWrapperField(this,it.StringValue,3)},proto.v1.signaling.api.Peer.prototype.setUserId=function(ot){return tt.Message.setWrapperField(this,3,ot)},proto.v1.signaling.api.Peer.prototype.clearUserId=function(){return this.setUserId(void 0)},proto.v1.signaling.api.Peer.prototype.hasUserId=function(){return tt.Message.getField(this,3)!=null},proto.v1.signaling.api.Peer.prototype.getDeviceId=function(){return tt.Message.getWrapperField(this,it.StringValue,4)},proto.v1.signaling.api.Peer.prototype.setDeviceId=function(ot){return tt.Message.setWrapperField(this,4,ot)},proto.v1.signaling.api.Peer.prototype.clearDeviceId=function(){return this.setDeviceId(void 0)},proto.v1.signaling.api.Peer.prototype.hasDeviceId=function(){return tt.Message.getField(this,4)!=null},proto.v1.signaling.api.Peer.prototype.getSessionIdsList=function(){return tt.Message.getRepeatedField(this,5)},proto.v1.signaling.api.Peer.prototype.setSessionIdsList=function(ot){return tt.Message.setField(this,5,ot||[])},proto.v1.signaling.api.Peer.prototype.addSessionIds=function(ot,st){return tt.Message.addToRepeatedField(this,5,ot,st)},proto.v1.signaling.api.Peer.prototype.clearSessionIdsList=function(){return this.setSessionIdsList([])},proto.v1.signaling.api.Peer.prototype.getPeerCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,6)},proto.v1.signaling.api.Peer.prototype.setPeerCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,6,ot)},proto.v1.signaling.api.Peer.prototype.clearPeerCreatedTimestamp=function(){return this.setPeerCreatedTimestamp(void 0)},proto.v1.signaling.api.Peer.prototype.hasPeerCreatedTimestamp=function(){return tt.Message.getField(this,6)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Signal.prototype.toObject=function(ot){return proto.v1.signaling.api.Signal.toObject(ot,this)},proto.v1.signaling.api.Signal.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at),senderId:tt.Message.getFieldWithDefault(st,3,""),receiverId:tt.Message.getFieldWithDefault(st,4,""),payload:tt.Message.getFieldWithDefault(st,5,""),iceServers:tt.Message.getFieldWithDefault(st,6,""),iceTransportPolicy:tt.Message.getFieldWithDefault(st,7,""),sessionType:tt.Message.getFieldWithDefault(st,8,0)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Signal.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Signal;return proto.v1.signaling.api.Signal.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Signal.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;case 3:at=st.readString(),ot.setSenderId(at);break;case 4:at=st.readString(),ot.setReceiverId(at);break;case 5:at=st.readString(),ot.setPayload(at);break;case 6:at=st.readString(),ot.setIceServers(at);break;case 7:at=st.readString(),ot.setIceTransportPolicy(at);break;case 8:at=st.readEnum(),ot.setSessionType(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Signal.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Signal.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Signal.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter),(at=ot.getSenderId()).length>0&&st.writeString(3,at),(at=ot.getReceiverId()).length>0&&st.writeString(4,at),(at=ot.getPayload()).length>0&&st.writeString(5,at),(at=ot.getIceServers()).length>0&&st.writeString(6,at),(at=ot.getIceTransportPolicy()).length>0&&st.writeString(7,at),(at=ot.getSessionType())!==0&&st.writeEnum(8,at)},proto.v1.signaling.api.Signal.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.Signal.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.Signal.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.Signal.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},proto.v1.signaling.api.Signal.prototype.getSenderId=function(){return tt.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.Signal.prototype.setSenderId=function(ot){return tt.Message.setProto3StringField(this,3,ot)},proto.v1.signaling.api.Signal.prototype.getReceiverId=function(){return tt.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.Signal.prototype.setReceiverId=function(ot){return tt.Message.setProto3StringField(this,4,ot)},proto.v1.signaling.api.Signal.prototype.getPayload=function(){return tt.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.Signal.prototype.setPayload=function(ot){return tt.Message.setProto3StringField(this,5,ot)},proto.v1.signaling.api.Signal.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,6,"")},proto.v1.signaling.api.Signal.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,6,ot)},proto.v1.signaling.api.Signal.prototype.getIceTransportPolicy=function(){return tt.Message.getFieldWithDefault(this,7,"")},proto.v1.signaling.api.Signal.prototype.setIceTransportPolicy=function(ot){return tt.Message.setProto3StringField(this,7,ot)},proto.v1.signaling.api.Signal.prototype.getSessionType=function(){return tt.Message.getFieldWithDefault(this,8,0)},proto.v1.signaling.api.Signal.prototype.setSessionType=function(ot){return tt.Message.setProto3EnumField(this,8,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthRequest.toObject(ot,this)},proto.v1.signaling.api.GetHealthRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthRequest;return proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetHealthRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthResponse.toObject(ot,this)},proto.v1.signaling.api.GetHealthResponse.toObject=function(ot,st){var at={version:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthResponse;return proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setVersion(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetHealthResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getVersion()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetHealthResponse.prototype.getVersion=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetHealthResponse.prototype.setVersion=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerRequest.toObject(ot,this)},proto.v1.signaling.api.CreatePeerRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.CreatePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerRequest;return proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.CreatePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerResponse.toObject(ot,this)},proto.v1.signaling.api.CreatePeerResponse.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.CreatePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerResponse;return proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.CreatePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.CreatePeerResponse.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.CreatePeerResponse.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.CreatePeerResponse.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.CreatePeerResponse.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerRequest.toObject(ot,this)},proto.v1.signaling.api.DeletePeerRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerRequest;return proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.DeletePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.DeletePeerRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.DeletePeerRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerResponse.toObject(ot,this)},proto.v1.signaling.api.DeletePeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerResponse;return proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.DeletePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerRequest.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerRequest.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.RefreshPeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerRequest;return proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.RefreshPeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.RefreshPeerRequest.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.RefreshPeerRequest.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.RefreshPeerRequest.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.RefreshPeerRequest.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerResponse.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.RefreshPeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerResponse;return proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.RefreshPeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersRequest.toObject(ot,this)},proto.v1.signaling.api.GetPeersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersRequest;return proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetPeersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter=function(ot,st){},proto.v1.signaling.api.GetPeersResponse.repeatedFields_=[1],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersResponse.toObject(ot,this)},proto.v1.signaling.api.GetPeersResponse.toObject=function(ot,st){var at={peersList:tt.Message.toObjectList(st.getPeersList(),proto.v1.signaling.api.Peer.toObject,ot)};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersResponse;return proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.addPeers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetPeersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeersList()).length>0&&st.writeRepeatedMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.GetPeersResponse.prototype.getPeersList=function(){return tt.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.GetPeersResponse.prototype.setPeersList=function(ot){return tt.Message.setRepeatedWrapperField(this,1,ot)},proto.v1.signaling.api.GetPeersResponse.prototype.addPeers=function(ot,st){return tt.Message.addToRepeatedWrapperField(this,1,ot,proto.v1.signaling.api.Peer,st)},proto.v1.signaling.api.GetPeersResponse.prototype.clearPeersList=function(){return this.setPeersList([])},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersRequest.toObject(ot,this)},proto.v1.signaling.api.GetIceServersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersRequest;return proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetIceServersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersResponse.toObject(ot,this)},proto.v1.signaling.api.GetIceServersResponse.toObject=function(ot,st){var at={iceServers:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersResponse;return proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setIceServers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetIceServersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getIceServers()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetIceServersResponse.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetIceServersResponse.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalRequest.toObject(ot,this)},proto.v1.signaling.api.SendSignalRequest.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalRequest;return proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalRequest.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.SendSignalRequest.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalRequest.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.SendSignalRequest.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalResponse.toObject(ot,this)},proto.v1.signaling.api.SendSignalResponse.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalResponse;return proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamRequest;return proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamResponse;return proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SessionType={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3},nt.object.extend(o,proto.v1.signaling.api)},function(s,o,et){function tt(nt,rt,it=()=>!0){if(nt instanceof rt&&it(nt))return nt;throw nt}et.d(o,"a",function(){return tt})},function(s,o,et){et.d(o,"a",function(){return nt});var tt=et(34);class nt extends Error{constructor(it,ot,st,at,lt={},ut){super(`Unexpected response (${st}) for ${it} ${ot}: ${JSON.stringify(ut?Object(tt.a)([...ut.entries()].reduce((dt,[ht,ct])=>(dt[ht]=ct,dt),{})):{})} -- ${JSON.stringify(Object(tt.a)(at))}`),this.method=it,this.url=ot,this.statusCode=st,this.body=at,this.validationErrors=lt,this.headers=ut}}},function(s,o,et){function tt(dt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ht){return typeof ht}:function(ht){return ht&&typeof Symbol=="function"&&ht.constructor===Symbol&&ht!==Symbol.prototype?"symbol":typeof ht})(dt)}function nt(dt,ht){return!ht||tt(ht)!=="object"&&typeof ht!="function"?rt(dt):ht}function rt(dt){if(dt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return dt}function it(dt){var ht=typeof Map=="function"?new Map:void 0;return(it=function(ct){if(ct===null||(pt=ct,Function.toString.call(pt).indexOf("[native code]")===-1))return ct;var pt;if(typeof ct!="function")throw new TypeError("Super expression must either be null or a function");if(ht!==void 0){if(ht.has(ct))return ht.get(ct);ht.set(ct,ft)}function ft(){return ot(ct,arguments,lt(this).constructor)}return ft.prototype=Object.create(ct.prototype,{constructor:{value:ft,enumerable:!1,writable:!0,configurable:!0}}),at(ft,ct)})(dt)}function ot(dt,ht,ct){return(ot=st()?Reflect.construct:function(pt,ft,gt){var yt=[null];yt.push.apply(yt,ft);var Ut=new(Function.bind.apply(pt,yt));return gt&&at(Ut,gt.prototype),Ut}).apply(null,arguments)}function st(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function at(dt,ht){return(at=Object.setPrototypeOf||function(ct,pt){return ct.__proto__=pt,ct})(dt,ht)}function lt(dt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(ht){return ht.__proto__||Object.getPrototypeOf(ht)})(dt)}var ut=function(dt){(function(gt,yt){if(typeof yt!="function"&&yt!==null)throw new TypeError("Super expression must either be null or a function");gt.prototype=Object.create(yt&&yt.prototype,{constructor:{value:gt,writable:!0,configurable:!0}}),yt&&at(gt,yt)})(ft,dt);var ht,ct,pt=(ht=ft,ct=st(),function(){var gt,yt=lt(ht);if(ct){var Ut=lt(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return nt(this,gt)});function ft(gt){var yt;return function(Ut,Ft){if(!(Ut instanceof Ft))throw new TypeError("Cannot call a class as a function")}(this,ft),yt=pt.call(this,`Format functions must be synchronous taking a two arguments: (info, opts) + */function styled$2(s,o){return newStyled(s,o)}function merge$2(s,o){return o?deepmerge(s,o,{clone:!1}):s}const values={xs:0,sm:600,md:900,lg:1200,xl:1536},defaultBreakpoints={keys:["xs","sm","md","lg","xl"],up:s=>`@media (min-width:${values[s]}px)`};function handleBreakpoints(s,o,et){const tt=s.theme||{};if(Array.isArray(o)){const nt=tt.breakpoints||defaultBreakpoints;return o.reduce((rt,it,ot)=>(rt[nt.up(nt.keys[ot])]=et(o[ot]),rt),{})}if(typeof o=="object"){const nt=tt.breakpoints||defaultBreakpoints;return Object.keys(o).reduce((rt,it)=>{if(Object.keys(nt.values||values).indexOf(it)!==-1){const ot=nt.up(it);rt[ot]=et(o[it],it)}else{const ot=it;rt[ot]=o[ot]}return rt},{})}return et(o)}function createEmptyBreakpointObject(s={}){var o;return(s==null||(o=s.keys)==null?void 0:o.reduce((et,tt)=>{const nt=s.up(tt);return et[nt]={},et},{}))||{}}function removeUnusedBreakpoints(s,o){return s.reduce((et,tt)=>{const nt=et[tt];return(!nt||Object.keys(nt).length===0)&&delete et[tt],et},o)}function getPath(s,o){return!o||typeof o!="string"?null:o.split(".").reduce((et,tt)=>et&&et[tt]?et[tt]:null,s)}function getValue$1(s,o,et,tt=et){let nt;return typeof s=="function"?nt=s(et):Array.isArray(s)?nt=s[et]||tt:nt=getPath(s,et)||tt,o&&(nt=o(nt)),nt}function style$1(s){const{prop:o,cssProperty:et=s.prop,themeKey:tt,transform:nt}=s,rt=it=>{if(it[o]==null)return null;const ot=it[o],st=it.theme,at=getPath(st,tt)||{};return handleBreakpoints(it,ot,lt=>{let ut=getValue$1(at,nt,lt);return lt===ut&&typeof lt=="string"&&(ut=getValue$1(at,nt,`${o}${lt==="default"?"":capitalize(lt)}`,lt)),et===!1?ut:{[et]:ut}})};return rt.propTypes={},rt.filterProps=[o],rt}function compose(...s){const o=s.reduce((tt,nt)=>(nt.filterProps.forEach(rt=>{tt[rt]=nt}),tt),{}),et=tt=>Object.keys(tt).reduce((nt,rt)=>o[rt]?merge$2(nt,o[rt](tt)):nt,{});return et.propTypes={},et.filterProps=s.reduce((tt,nt)=>tt.concat(nt.filterProps),[]),et}function memoize$1(s){const o={};return et=>(o[et]===void 0&&(o[et]=s(et)),o[et])}const properties={m:"margin",p:"padding"},directions={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},aliases={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},getCssProperties=memoize$1(s=>{if(s.length>2)if(aliases[s])s=aliases[s];else return[s];const[o,et]=s.split(""),tt=properties[o],nt=directions[et]||"";return Array.isArray(nt)?nt.map(rt=>tt+rt):[tt+nt]}),marginKeys=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],paddingKeys=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],spacingKeys=[...marginKeys,...paddingKeys];function createUnaryUnit(s,o,et,tt){const nt=getPath(s,o)||et;return typeof nt=="number"?rt=>typeof rt=="string"?rt:nt*rt:Array.isArray(nt)?rt=>typeof rt=="string"?rt:nt[rt]:typeof nt=="function"?nt:()=>{}}function createUnarySpacing(s){return createUnaryUnit(s,"spacing",8)}function getValue(s,o){if(typeof o=="string"||o==null)return o;const et=Math.abs(o),tt=s(et);return o>=0?tt:typeof tt=="number"?-tt:`-${tt}`}function getStyleFromPropValue(s,o){return et=>s.reduce((tt,nt)=>(tt[nt]=getValue(o,et),tt),{})}function resolveCssProperty(s,o,et,tt){if(o.indexOf(et)===-1)return null;const nt=getCssProperties(et),rt=getStyleFromPropValue(nt,tt),it=s[et];return handleBreakpoints(s,it,rt)}function style(s,o){const et=createUnarySpacing(s.theme);return Object.keys(s).map(tt=>resolveCssProperty(s,o,tt,et)).reduce(merge$2,{})}function spacing$1(s){return style(s,spacingKeys)}spacing$1.propTypes={};spacing$1.filterProps=spacingKeys;function getBorder(s){return typeof s!="number"?s:`${s}px solid`}const border$1=style$1({prop:"border",themeKey:"borders",transform:getBorder}),borderTop=style$1({prop:"borderTop",themeKey:"borders",transform:getBorder}),borderRight=style$1({prop:"borderRight",themeKey:"borders",transform:getBorder}),borderBottom=style$1({prop:"borderBottom",themeKey:"borders",transform:getBorder}),borderLeft=style$1({prop:"borderLeft",themeKey:"borders",transform:getBorder}),borderColor=style$1({prop:"borderColor",themeKey:"palette"}),borderTopColor=style$1({prop:"borderTopColor",themeKey:"palette"}),borderRightColor=style$1({prop:"borderRightColor",themeKey:"palette"}),borderBottomColor=style$1({prop:"borderBottomColor",themeKey:"palette"}),borderLeftColor=style$1({prop:"borderLeftColor",themeKey:"palette"}),borderRadius=s=>{if(s.borderRadius!==void 0&&s.borderRadius!==null){const o=createUnaryUnit(s.theme,"shape.borderRadius",4),et=tt=>({borderRadius:getValue(o,tt)});return handleBreakpoints(s,s.borderRadius,et)}return null};borderRadius.propTypes={};borderRadius.filterProps=["borderRadius"];const borders=compose(border$1,borderTop,borderRight,borderBottom,borderLeft,borderColor,borderTopColor,borderRightColor,borderBottomColor,borderLeftColor,borderRadius),borders$1=borders,displayPrint=style$1({prop:"displayPrint",cssProperty:!1,transform:s=>({"@media print":{display:s}})}),displayRaw=style$1({prop:"display"}),overflow=style$1({prop:"overflow"}),textOverflow=style$1({prop:"textOverflow"}),visibility=style$1({prop:"visibility"}),whiteSpace=style$1({prop:"whiteSpace"}),display=compose(displayPrint,displayRaw,overflow,textOverflow,visibility,whiteSpace),flexBasis=style$1({prop:"flexBasis"}),flexDirection=style$1({prop:"flexDirection"}),flexWrap=style$1({prop:"flexWrap"}),justifyContent=style$1({prop:"justifyContent"}),alignItems=style$1({prop:"alignItems"}),alignContent=style$1({prop:"alignContent"}),order=style$1({prop:"order"}),flex=style$1({prop:"flex"}),flexGrow=style$1({prop:"flexGrow"}),flexShrink=style$1({prop:"flexShrink"}),alignSelf=style$1({prop:"alignSelf"}),justifyItems=style$1({prop:"justifyItems"}),justifySelf=style$1({prop:"justifySelf"}),flexbox=compose(flexBasis,flexDirection,flexWrap,justifyContent,alignItems,alignContent,order,flex,flexGrow,flexShrink,alignSelf,justifyItems,justifySelf),flexbox$1=flexbox,gap=s=>{if(s.gap!==void 0&&s.gap!==null){const o=createUnaryUnit(s.theme,"spacing",8),et=tt=>({gap:getValue(o,tt)});return handleBreakpoints(s,s.gap,et)}return null};gap.propTypes={};gap.filterProps=["gap"];const columnGap=s=>{if(s.columnGap!==void 0&&s.columnGap!==null){const o=createUnaryUnit(s.theme,"spacing",8),et=tt=>({columnGap:getValue(o,tt)});return handleBreakpoints(s,s.columnGap,et)}return null};columnGap.propTypes={};columnGap.filterProps=["columnGap"];const rowGap=s=>{if(s.rowGap!==void 0&&s.rowGap!==null){const o=createUnaryUnit(s.theme,"spacing",8),et=tt=>({rowGap:getValue(o,tt)});return handleBreakpoints(s,s.rowGap,et)}return null};rowGap.propTypes={};rowGap.filterProps=["rowGap"];const gridColumn=style$1({prop:"gridColumn"}),gridRow=style$1({prop:"gridRow"}),gridAutoFlow=style$1({prop:"gridAutoFlow"}),gridAutoColumns=style$1({prop:"gridAutoColumns"}),gridAutoRows=style$1({prop:"gridAutoRows"}),gridTemplateColumns=style$1({prop:"gridTemplateColumns"}),gridTemplateRows=style$1({prop:"gridTemplateRows"}),gridTemplateAreas=style$1({prop:"gridTemplateAreas"}),gridArea=style$1({prop:"gridArea"}),grid=compose(gap,columnGap,rowGap,gridColumn,gridRow,gridAutoFlow,gridAutoColumns,gridAutoRows,gridTemplateColumns,gridTemplateRows,gridTemplateAreas,gridArea),grid$1=grid,color$1=style$1({prop:"color",themeKey:"palette"}),bgcolor=style$1({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette"}),backgroundColor=style$1({prop:"backgroundColor",themeKey:"palette"}),palette=compose(color$1,bgcolor,backgroundColor),palette$1=palette,position=style$1({prop:"position"}),zIndex$2=style$1({prop:"zIndex",themeKey:"zIndex"}),top$1=style$1({prop:"top"}),right$1=style$1({prop:"right"}),bottom$1=style$1({prop:"bottom"}),left$1=style$1({prop:"left"}),positions$1=compose(position,zIndex$2,top$1,right$1,bottom$1,left$1),boxShadow=style$1({prop:"boxShadow",themeKey:"shadows"}),shadows$2=boxShadow;function transform(s){return s<=1&&s!==0?`${s*100}%`:s}const width=style$1({prop:"width",transform}),maxWidth=s=>{if(s.maxWidth!==void 0&&s.maxWidth!==null){const o=et=>{var tt,nt,rt;return{maxWidth:((tt=s.theme)==null||(nt=tt.breakpoints)==null||(rt=nt.values)==null?void 0:rt[et])||values[et]||transform(et)}};return handleBreakpoints(s,s.maxWidth,o)}return null};maxWidth.filterProps=["maxWidth"];const minWidth=style$1({prop:"minWidth",transform}),height=style$1({prop:"height",transform}),maxHeight=style$1({prop:"maxHeight",transform}),minHeight=style$1({prop:"minHeight",transform});style$1({prop:"size",cssProperty:"width",transform});style$1({prop:"size",cssProperty:"height",transform});const boxSizing=style$1({prop:"boxSizing"}),sizing=compose(width,maxWidth,minWidth,height,maxHeight,minHeight,boxSizing),sizing$1=sizing,fontFamily=style$1({prop:"fontFamily",themeKey:"typography"}),fontSize=style$1({prop:"fontSize",themeKey:"typography"}),fontStyle=style$1({prop:"fontStyle",themeKey:"typography"}),fontWeight=style$1({prop:"fontWeight",themeKey:"typography"}),letterSpacing=style$1({prop:"letterSpacing"}),textTransform=style$1({prop:"textTransform"}),lineHeight=style$1({prop:"lineHeight"}),textAlign=style$1({prop:"textAlign"}),typographyVariant=style$1({prop:"typography",cssProperty:!1,themeKey:"typography"}),typography=compose(typographyVariant,fontFamily,fontSize,fontStyle,fontWeight,letterSpacing,lineHeight,textAlign,textTransform),typography$1=typography,filterPropsMapping={borders:borders$1.filterProps,display:display.filterProps,flexbox:flexbox$1.filterProps,grid:grid$1.filterProps,positions:positions$1.filterProps,palette:palette$1.filterProps,shadows:shadows$2.filterProps,sizing:sizing$1.filterProps,spacing:spacing$1.filterProps,typography:typography$1.filterProps},styleFunctionMapping={borders:borders$1,display,flexbox:flexbox$1,grid:grid$1,positions:positions$1,palette:palette$1,shadows:shadows$2,sizing:sizing$1,spacing:spacing$1,typography:typography$1};Object.keys(filterPropsMapping).reduce((s,o)=>(filterPropsMapping[o].forEach(et=>{s[et]=styleFunctionMapping[o]}),s),{});function objectsHaveSameKeys(...s){const o=s.reduce((tt,nt)=>tt.concat(Object.keys(nt)),[]),et=new Set(o);return s.every(tt=>et.size===Object.keys(tt).length)}function callIfFn(s,o){return typeof s=="function"?s(o):s}function unstable_createStyleFunctionSx(s=styleFunctionMapping){const o=Object.keys(s).reduce((nt,rt)=>(s[rt].filterProps.forEach(it=>{nt[it]=s[rt]}),nt),{});function et(nt,rt,it){const ot={[nt]:rt,theme:it},st=o[nt];return st?st(ot):{[nt]:rt}}function tt(nt){const{sx:rt,theme:it={}}=nt||{};if(!rt)return null;function ot(st){let at=st;if(typeof st=="function")at=st(it);else if(typeof st!="object")return st;if(!at)return null;const lt=createEmptyBreakpointObject(it.breakpoints),ut=Object.keys(lt);let dt=lt;return Object.keys(at).forEach(ht=>{const ct=callIfFn(at[ht],it);if(ct!=null)if(typeof ct=="object")if(o[ht])dt=merge$2(dt,et(ht,ct,it));else{const pt=handleBreakpoints({theme:it},ct,ft=>({[ht]:ft}));objectsHaveSameKeys(pt,ct)?dt[ht]=tt({sx:ct,theme:it}):dt=merge$2(dt,pt)}else dt=merge$2(dt,et(ht,ct,it))}),removeUnusedBreakpoints(ut,dt)}return Array.isArray(rt)?rt.map(ot):ot(rt)}return tt}const styleFunctionSx=unstable_createStyleFunctionSx();styleFunctionSx.filterProps=["sx"];const defaultStyleFunctionSx=styleFunctionSx,_excluded$8=["values","unit","step"],sortBreakpointsValues=s=>{const o=Object.keys(s).map(et=>({key:et,val:s[et]}))||[];return o.sort((et,tt)=>et.val-tt.val),o.reduce((et,tt)=>_extends$1({},et,{[tt.key]:tt.val}),{})};function createBreakpoints(s){const{values:o={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:et="px",step:tt=5}=s,nt=_objectWithoutPropertiesLoose$1(s,_excluded$8),rt=sortBreakpointsValues(o),it=Object.keys(rt);function ot(dt){return`@media (min-width:${typeof o[dt]=="number"?o[dt]:dt}${et})`}function st(dt){return`@media (max-width:${(typeof o[dt]=="number"?o[dt]:dt)-tt/100}${et})`}function at(dt,ht){const ct=it.indexOf(ht);return`@media (min-width:${typeof o[dt]=="number"?o[dt]:dt}${et}) and (max-width:${(ct!==-1&&typeof o[it[ct]]=="number"?o[it[ct]]:ht)-tt/100}${et})`}function lt(dt){return it.indexOf(dt)+1(tt.length===0?[1]:tt).map(nt=>{const rt=o(nt);return typeof rt=="number"?`${rt}px`:rt}).join(" ");return et.mui=!0,et}const _excluded$7=["breakpoints","palette","spacing","shape"];function createTheme$1(s={},...o){const{breakpoints:et={},palette:tt={},spacing:nt,shape:rt={}}=s,it=_objectWithoutPropertiesLoose$1(s,_excluded$7),ot=createBreakpoints(et),st=createSpacing(nt);let at=deepmerge({breakpoints:ot,direction:"ltr",components:{},palette:_extends$1({mode:"light"},tt),spacing:st,shape:_extends$1({},shape$1,rt)},it);return at=o.reduce((lt,ut)=>deepmerge(lt,ut),at),at}createTheme$1();const _excluded$6=["variant"];function isEmpty$1(s){return s.length===0}function propsToClassKey(s){const{variant:o}=s,et=_objectWithoutPropertiesLoose$1(s,_excluded$6);let tt=o||"";return Object.keys(et).sort().forEach(nt=>{nt==="color"?tt+=isEmpty$1(tt)?s[nt]:capitalize(s[nt]):tt+=`${isEmpty$1(tt)?nt:capitalize(nt)}${capitalize(s[nt].toString())}`}),tt}const _excluded$5=["name","slot","skipVariantsResolver","skipSx","overridesResolver"],_excluded2=["theme"],_excluded3=["theme"];function isEmpty(s){return Object.keys(s).length===0}const getStyleOverrides=(s,o)=>o.components&&o.components[s]&&o.components[s].styleOverrides?o.components[s].styleOverrides:null,getVariantStyles=(s,o)=>{let et=[];o&&o.components&&o.components[s]&&o.components[s].variants&&(et=o.components[s].variants);const tt={};return et.forEach(nt=>{const rt=propsToClassKey(nt.props);tt[rt]=nt.style}),tt},variantsResolver=(s,o,et,tt)=>{var nt,rt;const{ownerState:it={}}=s,ot=[],st=et==null||(nt=et.components)==null||(rt=nt[tt])==null?void 0:rt.variants;return st&&st.forEach(at=>{let lt=!0;Object.keys(at.props).forEach(ut=>{it[ut]!==at.props[ut]&&s[ut]!==at.props[ut]&&(lt=!1)}),lt&&ot.push(o[propsToClassKey(at.props)])}),ot};function shouldForwardProp(s){return s!=="ownerState"&&s!=="theme"&&s!=="sx"&&s!=="as"}const systemDefaultTheme=createTheme$1();function createStyled$1(s={}){const{defaultTheme:o=systemDefaultTheme,rootShouldForwardProp:et=shouldForwardProp,slotShouldForwardProp:tt=shouldForwardProp,styleFunctionSx:nt=defaultStyleFunctionSx}=s;return(rt,it={})=>{const{name:ot,slot:st,skipVariantsResolver:at,skipSx:lt,overridesResolver:ut}=it,dt=_objectWithoutPropertiesLoose$1(it,_excluded$5),ht=at!==void 0?at:st&&st!=="Root"||!1,ct=lt||!1;let pt,ft=shouldForwardProp;st==="Root"?ft=et:st&&(ft=tt);const gt=styled$2(rt,_extends$1({shouldForwardProp:ft,label:pt},dt)),yt=(Ut,...Ft)=>{const mt=Ft?Ft.map(Rt=>typeof Rt=="function"&&Rt.__emotion_real!==Rt?St=>{let{theme:Tt}=St,Bt=_objectWithoutPropertiesLoose$1(St,_excluded2);return Rt(_extends$1({theme:isEmpty(Tt)?o:Tt},Bt))}:Rt):[];let vt=Ut;ot&&ut&&mt.push(Rt=>{const St=isEmpty(Rt.theme)?o:Rt.theme,Tt=getStyleOverrides(ot,St);if(Tt){const Bt={};return Object.entries(Tt).forEach(([xt,Ct])=>{Bt[xt]=typeof Ct=="function"?Ct(Rt):Ct}),ut(Rt,Bt)}return null}),ot&&!ht&&mt.push(Rt=>{const St=isEmpty(Rt.theme)?o:Rt.theme;return variantsResolver(Rt,getVariantStyles(ot,St),St,ot)}),ct||mt.push(Rt=>{const St=isEmpty(Rt.theme)?o:Rt.theme;return nt(_extends$1({},Rt,{theme:St}))});const At=mt.length-Ft.length;if(Array.isArray(Ut)&&At>0){const Rt=new Array(At).fill("");vt=[...Ut,...Rt],vt.raw=[...Ut.raw,...Rt]}else typeof Ut=="function"&&Ut.__emotion_real!==Ut&&(vt=Rt=>{let{theme:St}=Rt,Tt=_objectWithoutPropertiesLoose$1(Rt,_excluded3);return Ut(_extends$1({theme:isEmpty(St)?o:St},Tt))});return gt(vt,...mt)};return gt.withConfig&&(yt.withConfig=gt.withConfig),yt}}function clamp$1$1(s,o=0,et=1){return Math.min(Math.max(o,s),et)}function hexToRgb(s){s=s.slice(1);const o=new RegExp(`.{1,${s.length>=6?2:1}}`,"g");let et=s.match(o);return et&&et[0].length===1&&(et=et.map(tt=>tt+tt)),et?`rgb${et.length===4?"a":""}(${et.map((tt,nt)=>nt<3?parseInt(tt,16):Math.round(parseInt(tt,16)/255*1e3)/1e3).join(", ")})`:""}function decomposeColor(s){if(s.type)return s;if(s.charAt(0)==="#")return decomposeColor(hexToRgb(s));const o=s.indexOf("("),et=s.substring(0,o);if(["rgb","rgba","hsl","hsla","color"].indexOf(et)===-1)throw new Error(formatMuiErrorMessage(9,s));let tt=s.substring(o+1,s.length-1),nt;if(et==="color"){if(tt=tt.split(" "),nt=tt.shift(),tt.length===4&&tt[3].charAt(0)==="/"&&(tt[3]=tt[3].slice(1)),["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(nt)===-1)throw new Error(formatMuiErrorMessage(10,nt))}else tt=tt.split(",");return tt=tt.map(rt=>parseFloat(rt)),{type:et,values:tt,colorSpace:nt}}function recomposeColor(s){const{type:o,colorSpace:et}=s;let{values:tt}=s;return o.indexOf("rgb")!==-1?tt=tt.map((nt,rt)=>rt<3?parseInt(nt,10):nt):o.indexOf("hsl")!==-1&&(tt[1]=`${tt[1]}%`,tt[2]=`${tt[2]}%`),o.indexOf("color")!==-1?tt=`${et} ${tt.join(" ")}`:tt=`${tt.join(", ")}`,`${o}(${tt})`}function hslToRgb(s){s=decomposeColor(s);const{values:o}=s,et=o[0],tt=o[1]/100,nt=o[2]/100,rt=tt*Math.min(nt,1-nt),it=(at,lt=(at+et/30)%12)=>nt-rt*Math.max(Math.min(lt-3,9-lt,1),-1);let ot="rgb";const st=[Math.round(it(0)*255),Math.round(it(8)*255),Math.round(it(4)*255)];return s.type==="hsla"&&(ot+="a",st.push(o[3])),recomposeColor({type:ot,values:st})}function getLuminance(s){s=decomposeColor(s);let o=s.type==="hsl"?decomposeColor(hslToRgb(s)).values:s.values;return o=o.map(et=>(s.type!=="color"&&(et/=255),et<=.03928?et/12.92:((et+.055)/1.055)**2.4)),Number((.2126*o[0]+.7152*o[1]+.0722*o[2]).toFixed(3))}function getContrastRatio(s,o){const et=getLuminance(s),tt=getLuminance(o);return(Math.max(et,tt)+.05)/(Math.min(et,tt)+.05)}function darken(s,o){if(s=decomposeColor(s),o=clamp$1$1(o),s.type.indexOf("hsl")!==-1)s.values[2]*=1-o;else if(s.type.indexOf("rgb")!==-1||s.type.indexOf("color")!==-1)for(let et=0;et<3;et+=1)s.values[et]*=1-o;return recomposeColor(s)}function lighten(s,o){if(s=decomposeColor(s),o=clamp$1$1(o),s.type.indexOf("hsl")!==-1)s.values[2]+=(100-s.values[2])*o;else if(s.type.indexOf("rgb")!==-1)for(let et=0;et<3;et+=1)s.values[et]+=(255-s.values[et])*o;else if(s.type.indexOf("color")!==-1)for(let et=0;et<3;et+=1)s.values[et]+=(1-s.values[et])*o;return recomposeColor(s)}function createMixins(s,o,et){return _extends$1({toolbar:{minHeight:56,[`${s.up("xs")} and (orientation: landscape)`]:{minHeight:48},[s.up("sm")]:{minHeight:64}}},et)}const common$1={black:"#000",white:"#fff"},common$1$1=common$1,grey={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},grey$1=grey,purple={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},purple$1=purple,red={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},red$1=red,orange={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},orange$1=orange,blue={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},blue$1=blue,lightBlue={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},lightBlue$1=lightBlue,green={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},green$1=green,_excluded$4=["mode","contrastThreshold","tonalOffset"],light={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:common$1$1.white,default:common$1$1.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},dark={text:{primary:common$1$1.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:common$1$1.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function addLightOrDark(s,o,et,tt){const nt=tt.light||tt,rt=tt.dark||tt*1.5;s[o]||(s.hasOwnProperty(et)?s[o]=s[et]:o==="light"?s.light=lighten(s.main,nt):o==="dark"&&(s.dark=darken(s.main,rt)))}function getDefaultPrimary(s="light"){return s==="dark"?{main:blue$1[200],light:blue$1[50],dark:blue$1[400]}:{main:blue$1[700],light:blue$1[400],dark:blue$1[800]}}function getDefaultSecondary(s="light"){return s==="dark"?{main:purple$1[200],light:purple$1[50],dark:purple$1[400]}:{main:purple$1[500],light:purple$1[300],dark:purple$1[700]}}function getDefaultError(s="light"){return s==="dark"?{main:red$1[500],light:red$1[300],dark:red$1[700]}:{main:red$1[700],light:red$1[400],dark:red$1[800]}}function getDefaultInfo(s="light"){return s==="dark"?{main:lightBlue$1[400],light:lightBlue$1[300],dark:lightBlue$1[700]}:{main:lightBlue$1[700],light:lightBlue$1[500],dark:lightBlue$1[900]}}function getDefaultSuccess(s="light"){return s==="dark"?{main:green$1[400],light:green$1[300],dark:green$1[700]}:{main:green$1[800],light:green$1[500],dark:green$1[900]}}function getDefaultWarning(s="light"){return s==="dark"?{main:orange$1[400],light:orange$1[300],dark:orange$1[700]}:{main:"#ed6c02",light:orange$1[500],dark:orange$1[900]}}function createPalette(s){const{mode:o="light",contrastThreshold:et=3,tonalOffset:tt=.2}=s,nt=_objectWithoutPropertiesLoose$1(s,_excluded$4),rt=s.primary||getDefaultPrimary(o),it=s.secondary||getDefaultSecondary(o),ot=s.error||getDefaultError(o),st=s.info||getDefaultInfo(o),at=s.success||getDefaultSuccess(o),lt=s.warning||getDefaultWarning(o);function ut(ct){return getContrastRatio(ct,dark.text.primary)>=et?dark.text.primary:light.text.primary}const dt=({color:ct,name:pt,mainShade:ft=500,lightShade:gt=300,darkShade:yt=700})=>{if(ct=_extends$1({},ct),!ct.main&&ct[ft]&&(ct.main=ct[ft]),!ct.hasOwnProperty("main"))throw new Error(formatMuiErrorMessage(11,pt?` (${pt})`:"",ft));if(typeof ct.main!="string")throw new Error(formatMuiErrorMessage(12,pt?` (${pt})`:"",JSON.stringify(ct.main)));return addLightOrDark(ct,"light",gt,tt),addLightOrDark(ct,"dark",yt,tt),ct.contrastText||(ct.contrastText=ut(ct.main)),ct},ht={dark,light};return deepmerge(_extends$1({common:common$1$1,mode:o,primary:dt({color:rt,name:"primary"}),secondary:dt({color:it,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:dt({color:ot,name:"error"}),warning:dt({color:lt,name:"warning"}),info:dt({color:st,name:"info"}),success:dt({color:at,name:"success"}),grey:grey$1,contrastThreshold:et,getContrastText:ut,augmentColor:dt,tonalOffset:tt},ht[o]),nt)}const _excluded$3=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];function round$1(s){return Math.round(s*1e5)/1e5}const caseAllCaps={textTransform:"uppercase"},defaultFontFamily='"Roboto", "Helvetica", "Arial", sans-serif';function createTypography(s,o){const et=typeof o=="function"?o(s):o,{fontFamily:tt=defaultFontFamily,fontSize:nt=14,fontWeightLight:rt=300,fontWeightRegular:it=400,fontWeightMedium:ot=500,fontWeightBold:st=700,htmlFontSize:at=16,allVariants:lt,pxToRem:ut}=et,dt=_objectWithoutPropertiesLoose$1(et,_excluded$3),ht=nt/14,ct=ut||(gt=>`${gt/at*ht}rem`),pt=(gt,yt,Ut,Ft,mt)=>_extends$1({fontFamily:tt,fontWeight:gt,fontSize:ct(yt),lineHeight:Ut},tt===defaultFontFamily?{letterSpacing:`${round$1(Ft/yt)}em`}:{},mt,lt),ft={h1:pt(rt,96,1.167,-1.5),h2:pt(rt,60,1.2,-.5),h3:pt(it,48,1.167,0),h4:pt(it,34,1.235,.25),h5:pt(it,24,1.334,0),h6:pt(ot,20,1.6,.15),subtitle1:pt(it,16,1.75,.15),subtitle2:pt(ot,14,1.57,.1),body1:pt(it,16,1.5,.15),body2:pt(it,14,1.43,.15),button:pt(ot,14,1.75,.4,caseAllCaps),caption:pt(it,12,1.66,.4),overline:pt(it,12,2.66,1,caseAllCaps)};return deepmerge(_extends$1({htmlFontSize:at,pxToRem:ct,fontFamily:tt,fontSize:nt,fontWeightLight:rt,fontWeightRegular:it,fontWeightMedium:ot,fontWeightBold:st},ft),dt,{clone:!1})}const shadowKeyUmbraOpacity=.2,shadowKeyPenumbraOpacity=.14,shadowAmbientShadowOpacity=.12;function createShadow(...s){return[`${s[0]}px ${s[1]}px ${s[2]}px ${s[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`,`${s[4]}px ${s[5]}px ${s[6]}px ${s[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`,`${s[8]}px ${s[9]}px ${s[10]}px ${s[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(",")}const shadows=["none",createShadow(0,2,1,-1,0,1,1,0,0,1,3,0),createShadow(0,3,1,-2,0,2,2,0,0,1,5,0),createShadow(0,3,3,-2,0,3,4,0,0,1,8,0),createShadow(0,2,4,-1,0,4,5,0,0,1,10,0),createShadow(0,3,5,-1,0,5,8,0,0,1,14,0),createShadow(0,3,5,-1,0,6,10,0,0,1,18,0),createShadow(0,4,5,-2,0,7,10,1,0,2,16,1),createShadow(0,5,5,-3,0,8,10,1,0,3,14,2),createShadow(0,5,6,-3,0,9,12,1,0,3,16,2),createShadow(0,6,6,-3,0,10,14,1,0,4,18,3),createShadow(0,6,7,-4,0,11,15,1,0,4,20,3),createShadow(0,7,8,-4,0,12,17,2,0,5,22,4),createShadow(0,7,8,-4,0,13,19,2,0,5,24,4),createShadow(0,7,9,-4,0,14,21,2,0,5,26,4),createShadow(0,8,9,-5,0,15,22,2,0,6,28,5),createShadow(0,8,10,-5,0,16,24,2,0,6,30,5),createShadow(0,8,11,-5,0,17,26,2,0,6,32,5),createShadow(0,9,11,-5,0,18,28,2,0,7,34,6),createShadow(0,9,12,-6,0,19,29,2,0,7,36,6),createShadow(0,10,13,-6,0,20,31,3,0,8,38,7),createShadow(0,10,13,-6,0,21,33,3,0,8,40,7),createShadow(0,10,14,-6,0,22,35,3,0,8,42,7),createShadow(0,11,14,-7,0,23,36,3,0,9,44,8),createShadow(0,11,15,-7,0,24,38,3,0,9,46,8)],shadows$1=shadows,_excluded$2=["duration","easing","delay"],easing={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},duration$4={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function formatMs(s){return`${Math.round(s)}ms`}function getAutoHeightDuration(s){if(!s)return 0;const o=s/36;return Math.round((4+15*o**.25+o/5)*10)}function createTransitions(s){const o=_extends$1({},easing,s.easing),et=_extends$1({},duration$4,s.duration);return _extends$1({getAutoHeightDuration,create:(tt=["all"],nt={})=>{const{duration:rt=et.standard,easing:it=o.easeInOut,delay:ot=0}=nt;return _objectWithoutPropertiesLoose$1(nt,_excluded$2),(Array.isArray(tt)?tt:[tt]).map(st=>`${st} ${typeof rt=="string"?rt:formatMs(rt)} ${it} ${typeof ot=="string"?ot:formatMs(ot)}`).join(",")}},s,{easing:o,duration:et})}const zIndex={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},zIndex$1=zIndex,_excluded$1=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function createTheme(s={},...o){const{mixins:et={},palette:tt={},transitions:nt={},typography:rt={}}=s,it=_objectWithoutPropertiesLoose$1(s,_excluded$1),ot=createPalette(tt),st=createTheme$1(s);let at=deepmerge(st,{mixins:createMixins(st.breakpoints,st.spacing,et),palette:ot,shadows:shadows$1.slice(),typography:createTypography(ot,rt),transitions:createTransitions(nt),zIndex:_extends$1({},zIndex$1)});return at=deepmerge(at,it),at=o.reduce((lt,ut)=>deepmerge(lt,ut),at),at}const defaultTheme$1=createTheme(),defaultTheme$2=defaultTheme$1,rootShouldForwardProp=s=>shouldForwardProp(s)&&s!=="classes",styled$1=createStyled$1({defaultTheme:defaultTheme$2,rootShouldForwardProp}),styled$1$1=styled$1,html=(s,o)=>_extends$1({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%"},o&&{colorScheme:s.palette.mode}),body=s=>_extends$1({color:s.palette.text.primary},s.typography.body1,{backgroundColor:s.palette.background.default,"@media print":{backgroundColor:s.palette.common.white}});generateUtilityClasses("MuiScopedCssBaseline",["root"]);styled$1$1("div",{name:"MuiScopedCssBaseline",slot:"Root",overridesResolver:(s,o)=>o.root})(({theme:s,ownerState:o})=>_extends$1({},html(s,o.enableColorScheme),body(s),{"& *, & *::before, & *::after":{boxSizing:"inherit"},"& strong, & b":{fontWeight:s.typography.fontWeightBold}}));const baseTheme=createTheme$2({typography:{fontFamily:"'Moderat', 'Inter', 'Source Sans Pro', sans-serif",h1:{fontStyle:"normal",fontWeight:"normal",fontSize:"2rem",lineHeight:"2.5rem",letterSpacing:0},h2:{fontStyle:"normal",fontWeight:"normal",fontSize:"1.5rem",lineHeight:"2.125rem",letterSpacing:"0.069rem",fontFeatureSettings:'"zero" on'},h3:{fontStyle:"normal",fontWeight:500,fontSize:"1.125rem",lineHeight:"1.688rem",letterSpacing:"0.069rem"},h4:{fontStyle:"normal",fontWeight:700,fontSize:"0.813rem",lineHeight:"1.375rem",letterSpacing:"0.069rem",textTransform:"uppercase"},h5:{fontStyle:"normal",fontWeight:700,fontSize:"0.813rem",lineHeight:"1.125rem",letterSpacing:"0.038rem",textTransform:"uppercase"},h6:{fontStyle:"normal",fontWeight:"normal",fontSize:"0.625rem",lineHeight:"0.938rem",letterSpacing:"0.063rem"},body1:{fontStyle:"normal",fontWeight:"normal",fontSize:"1rem",lineHeight:"1.688rem",letterSpacing:"0.063rem",fontFeatureSettings:'"zero" on'},body2:{fontStyle:"normal",fontWeight:"normal",fontSize:"1rem",lineHeight:"1.688rem",letterSpacing:"0.063rem",fontFeatureSettings:'"zero" on',fontVariantNumeric:"tabular-nums"},button:{fontWeight:500,fontSize:"0.875rem",lineHeight:"1.05rem",letterSpacing:"0.053.rem",textTransform:"uppercase"}}}),lightPalette={palette:{mode:"light",success:{main:"#34dea9",dark:"#2d8376"},info:{main:"#297ceb",dark:"#256faf",light:"#3BABFF"},error:{main:"#fd76a7",dark:"#7f5072"},warning:{main:"#ffb179",dark:"#94645f"},primary:{main:"#657197",light:"#BAC4E2",dark:"#3B4668"},secondary:{main:"#3babff",dark:"#76a7dc"},background:{default:"#FFFFFF",paper:"#F1F3F9"},common:{black:"#ffffff",white:"#000000"}}},darkPalette={palette:{mode:"dark",primary:{main:"#657197",dark:"#3B4668",light:"#BAC4E2",contrastText:"#ffffff"},secondary:{main:"#18d2ff",light:"#18d2ff",dark:"#256faf"},background:{default:"#2d3855",paper:"#2d3855"},common:{black:"#000000",white:"#ffffff"},text:{primary:"#bac4e2"},error:{main:"#ea719d",dark:"#7F5072"},warning:{main:"#a961e4",dark:"#564A94"},info:{main:"#20a0ff",dark:"#256FAF"},success:{main:"#2ec495",dark:"#2D8376"}}};function createComponents(s){const o={components:{MuiCssBaseline:{styleOverrides:{body:{"&::-webkit-scrollbar, & *::-webkit-scrollbar":{background:"transparent",width:"0.5rem",height:"0.5rem"},"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb":{background:s.palette.primary.light,borderRadius:"0.25rem"},"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover":{backgroundColor:s.palette.primary.light},"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner":{backgroundColor:s.palette.primary.light}}}},MuiLink:{styleOverrides:{root:{color:s.palette.secondary.main}}},MuiDialogActions:{styleOverrides:{root:{padding:baseTheme.spacing(3)}}},MuiInputLabel:{styleOverrides:{root:{color:s.palette.primary.light,"&.Mui-focused":{color:s.palette.secondary.main}},outlined:{borderRadius:4,padding:"0.125rem 0.375rem","&.Mui-focused":{backgroundColor:"#2d3855"}}}},MuiFilledInput:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,borderTop:"1px solid transparent",":before":{borderBottom:`1px dotted ${s.palette.primary.light}`},"&.Mui-focused":{background:s.palette.common.black,border:`1px solid ${s.palette.secondary.main}`,borderBottom:"none",borderTop:`1px solid ${s.palette.secondary.main}`},":after":{borderBottom:`1px solid ${s.palette.secondary.main}`}}}},MuiOutlinedInput:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,borderBottomLeftRadius:0,borderBottomRightRadius:0,borderBottom:`1px dotted ${s.palette.primary.light}`,"&.Mui-focused":{border:`1px solid ${s.palette.secondary.main}`,backgroundColor:s.palette.common.black}},notchedOutline:{border:"transparent"},input:{"&:-webkit-autofill":{"-webkit-box-shadow":`0 0 0 100px ${s.palette.primary.dark} inset`,"-webkit-text-fill-color":s.palette.primary.light}}}},MuiFormHelperText:{styleOverrides:{root:{color:s.palette.error.main}}},MuiTooltip:{styleOverrides:{tooltip:{backgroundColor:"rgba(0, 0, 0, 0.87)",color:"white",padding:baseTheme.spacing(1.2)}}},MuiDialogTitle:{styleOverrides:{root:{color:s.palette.common.white,fontStyle:"normal",fontWeight:500,...baseTheme.typography.h3}}},MuiDialogContentText:{styleOverrides:{root:{color:s.palette.primary.light}}},MuiButtonBase:{defaultProps:{disableRipple:!0}},MuiButton:{styleOverrides:{root:{willChange:"background-color , color , border-color , box-shadow",transition:"background-color 200ms ease-in-out 0ms , color 200ms ease-in-out 0ms , border-color 200ms ease-in-out 0ms , box-shadow 200ms ease-in-out 0ms",borderRadius:40,boxShadow:`0 0 0 0rem ${s.palette.primary.main}`,"&.Mui-disabled":{color:s.palette.primary.main}},sizeSmall:{height:"1.25rem",fontWeight:500,fontSize:"0.688rem",lineHeight:"0.825rem",letterSpacing:"0.047rem"},sizeMedium:{height:"1.813rem",fontWeight:500},sizeLarge:{height:"2.563rem",fontWeight:500,fontSize:"0.875rem",lineHeight:"1.05rem",letterSpacing:"0.053rem"},containedPrimary:{background:s.palette.primary.light,color:s.palette.common.black,"@media(hover: hover)":{"&:hover":{boxShadow:`0 0 0 0.4rem ${s.palette.primary.light}`,background:s.palette.primary.light}}},containedSecondary:{color:s.palette.common.black,"@media(hover: hover)":{"&:hover":{boxShadow:`0 0 0 0.4rem ${s.palette.secondary.main}`,background:s.palette.secondary.main}}},outlinedPrimary:{color:s.palette.primary.light}}},MuiDialog:{styleOverrides:{paper:{background:s.palette.background.paper}}},MuiNativeSelect:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,borderTop:"1px solid transparent"},icon:{color:s.palette.primary.light}}},MuiSelect:{styleOverrides:{icon:{color:s.palette.primary.light}}},MuiSnackbarContent:{styleOverrides:{root:{backgroundColor:s.palette.primary.dark,color:s.palette.primary.light}}},MuiSwitch:{styleOverrides:{switchBase:{"&.Mui-checked+.MuiSwitch-track":{backgroundColor:s.palette.common.black},"&.Mui-checked .MuiSwitch-thumb":{backgroundColor:s.palette.secondary.main}},thumb:{backgroundColor:s.palette.primary.light},track:{backgroundColor:s.palette.common.black}}}}};return createTheme$2(s,o)}createComponents(createTheme$2(baseTheme,darkPalette));createComponents(createTheme$2(baseTheme,lightPalette));function toInteger$1(s){if(s===null||s===!0||s===!1)return NaN;var o=Number(s);return isNaN(o)?o:o<0?Math.ceil(o):Math.floor(o)}function requiredArgs$1(s,o){if(o.length1?"s":"")+" required, but only "+o.length+" present")}function _typeof$1$1(s){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$1$1=function(o){return typeof o}:_typeof$1$1=function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof$1$1(s)}function toDate$1(s){requiredArgs$1(1,arguments);var o=Object.prototype.toString.call(s);return s instanceof Date||_typeof$1$1(s)==="object"&&o==="[object Date]"?new Date(s.getTime()):typeof s=="number"||o==="[object Number]"?new Date(s):((typeof s=="string"||o==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function addDays$1(s,o){requiredArgs$1(2,arguments);var et=toDate$1(s),tt=toInteger$1(o);return isNaN(tt)?new Date(NaN):(tt&&et.setDate(et.getDate()+tt),et)}function addMonths$1(s,o){requiredArgs$1(2,arguments);var et=toDate$1(s),tt=toInteger$1(o);if(isNaN(tt))return new Date(NaN);if(!tt)return et;var nt=et.getDate(),rt=new Date(et.getTime());rt.setMonth(et.getMonth()+tt+1,0);var it=rt.getDate();return nt>=it?rt:(et.setFullYear(rt.getFullYear(),rt.getMonth(),nt),et)}function addMilliseconds$1(s,o){requiredArgs$1(2,arguments);var et=toDate$1(s).getTime(),tt=toInteger$1(o);return new Date(et+tt)}var MILLISECONDS_IN_HOUR$1=36e5;function addHours$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addMilliseconds$1(s,et*MILLISECONDS_IN_HOUR$1)}var defaultOptions$1={};function getDefaultOptions$1(){return defaultOptions$1}function startOfWeek$1(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs$1(1,arguments);var lt=getDefaultOptions$1(),ut=toInteger$1((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate$1(s),ht=dt.getDay(),ct=(ht=it)throw new RangeError("Invalid interval");var ot=[],st=tt,at=Number((et=o?.step)!==null&&et!==void 0?et:1);if(at<1||isNaN(at))throw new RangeError("`options.step` must be a number equal to or greater than 1");for(;st.getTime()<=it;)ot.push(toDate$1(st)),st=addMinutes$1(st,at);return ot}function eachMonthOfInterval$1(s){requiredArgs$1(1,arguments);var o=s||{},et=toDate$1(o.start),tt=toDate$1(o.end),nt=tt.getTime(),rt=[];if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var it=et;for(it.setHours(0,0,0,0),it.setDate(1);it.getTime()<=nt;)rt.push(toDate$1(it)),it.setMonth(it.getMonth()+1);return rt}function startOfQuarter$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s),et=o.getMonth(),tt=et-et%3;return o.setMonth(tt,1),o.setHours(0,0,0,0),o}function eachQuarterOfInterval$1(s){requiredArgs$1(1,arguments);var o=s||{},et=toDate$1(o.start),tt=toDate$1(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=startOfQuarter$1(et),it=startOfQuarter$1(tt);nt=it.getTime();for(var ot=[],st=rt;st.getTime()<=nt;)ot.push(toDate$1(st)),st=addQuarters$1(st,1);return ot}function eachWeekOfInterval$1(s,o){requiredArgs$1(1,arguments);var et=s||{},tt=toDate$1(et.start),nt=toDate$1(et.end),rt=nt.getTime();if(!(tt.getTime()<=rt))throw new RangeError("Invalid interval");var it=startOfWeek$1(tt,o),ot=startOfWeek$1(nt,o);it.setHours(15),ot.setHours(15),rt=ot.getTime();for(var st=[],at=it;at.getTime()<=rt;)at.setHours(0),st.push(toDate$1(at)),at=addWeeks$1(at,1),at.setHours(15);return st}function startOfMonth$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s);return o.setDate(1),o.setHours(0,0,0,0),o}function endOfYear$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s),et=o.getFullYear();return o.setFullYear(et+1,0,0),o.setHours(23,59,59,999),o}function startOfYear$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s),et=new Date(0);return et.setFullYear(o.getFullYear(),0,1),et.setHours(0,0,0,0),et}function eachYearOfInterval$1(s){requiredArgs$1(1,arguments);var o=s||{},et=toDate$1(o.start),tt=toDate$1(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=[],it=et;for(it.setHours(0,0,0,0),it.setMonth(0,1);it.getTime()<=nt;)rt.push(toDate$1(it)),it.setFullYear(it.getFullYear()+1);return rt}function endOfHour$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s);return o.setMinutes(59,59,999),o}function endOfWeek$1(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs$1(1,arguments);var lt=getDefaultOptions$1(),ut=toInteger$1((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate$1(s),ht=dt.getDay(),ct=(ht=1&&ht<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var ct=new Date(0);ct.setFullYear(ut+1,0,ht),ct.setHours(0,0,0,0);var pt=startOfWeek$1(ct,o),ft=new Date(0);ft.setFullYear(ut,0,ht),ft.setHours(0,0,0,0);var gt=startOfWeek$1(ft,o);return lt.getTime()>=pt.getTime()?ut+1:lt.getTime()>=gt.getTime()?ut:ut-1}function startOfWeekYear$1(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs$1(1,arguments);var lt=getDefaultOptions$1(),ut=toInteger$1((et=(tt=(nt=(rt=o?.firstWeekContainsDate)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.firstWeekContainsDate)!==null&&nt!==void 0?nt:lt.firstWeekContainsDate)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.firstWeekContainsDate)!==null&&et!==void 0?et:1),dt=getWeekYear$1(s,o),ht=new Date(0);ht.setFullYear(dt,0,ut),ht.setHours(0,0,0,0);var ct=startOfWeek$1(ht,o);return ct}var MILLISECONDS_IN_WEEK$1=6048e5;function getWeek$1(s,o){requiredArgs$1(1,arguments);var et=toDate$1(s),tt=startOfWeek$1(et,o).getTime()-startOfWeekYear$1(et,o).getTime();return Math.round(tt/MILLISECONDS_IN_WEEK$1)+1}function getYear$1(s){return requiredArgs$1(1,arguments),toDate$1(s).getFullYear()}function startOfHour$1(s){requiredArgs$1(1,arguments);var o=toDate$1(s);return o.setMinutes(0,0,0),o}function subDays$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addDays$1(s,-et)}function roundToNearestMinutes$1(s,o){var et;if(arguments.length<1)throw new TypeError("1 argument required, but only none provided present");var tt=toInteger$1((et=o?.nearestTo)!==null&&et!==void 0?et:1);if(tt<1||tt>30)throw new RangeError("`options.nearestTo` must be between 1 and 30");var nt=toDate$1(s),rt=nt.getSeconds(),it=nt.getMinutes()+rt/60,ot=getRoundingMethod$1(o?.roundingMethod),st=ot(it/tt)*tt,at=it%tt,lt=Math.round(at/tt)*tt;return new Date(nt.getFullYear(),nt.getMonth(),nt.getDate(),nt.getHours(),st+lt)}function subMonths$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addMonths$1(s,-et)}function subHours$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addHours$1(s,-et)}function subMinutes$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addMinutes$1(s,-et)}function subQuarters$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addQuarters$1(s,-et)}function subWeeks$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addWeeks$1(s,-et)}function subYears$1(s,o){requiredArgs$1(2,arguments);var et=toInteger$1(o);return addYears$1(s,-et)}var __defProp$1=Object.defineProperty,__defNormalProp$1=(s,o,et)=>o in s?__defProp$1(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,__publicField$1=(s,o,et)=>(__defNormalProp$1(s,typeof o!="symbol"?o+"":o,et),et),dist$1={exports:{}};/*! For license information please see index.js.LICENSE.txt */(function(module,exports){(function(s,o){module.exports=o()})(window,function(){return function(s){function o(at){for(var lt,ut,dt=at[0],ht=at[1],ct=0,pt=[];ct1?"s":"")+" required, but only "+$t.length+" present")}function ut(It){if(It===null||It===!0||It===!1)return NaN;var $t=Number(It);return isNaN($t)?$t:$t<0?Math.ceil($t):Math.floor($t)}var dt={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},ht=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,ct=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,pt=/^([+-])(\d{2})(?::?(\d{2}))?$/;function ft(It){var $t,Ht={},qt=It.split(dt.dateTimeDelimiter);if(qt.length>2)return Ht;if(/:/.test(qt[0])?$t=qt[0]:(Ht.date=qt[0],$t=qt[1],dt.timeZoneDelimiter.test(Ht.date)&&(Ht.date=It.split(dt.timeZoneDelimiter)[0],$t=It.substr(Ht.date.length,It.length))),$t){var on=dt.timezone.exec($t);on?(Ht.time=$t.replace(on[1],""),Ht.timezone=on[1]):Ht.time=$t}return Ht}function gt(It,$t){var Ht=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+$t)+"})|(\\d{2}|[+-]\\d{"+(2+$t)+"})$)"),qt=It.match(Ht);if(!qt)return{year:NaN,restDateString:""};var on=qt[1]?parseInt(qt[1]):null,Xt=qt[2]?parseInt(qt[2]):null;return{year:Xt===null?on:100*Xt,restDateString:It.slice((qt[1]||qt[2]).length)}}function yt(It,$t){if($t===null)return new Date(NaN);var Ht=It.match(ht);if(!Ht)return new Date(NaN);var qt=!!Ht[4],on=Ut(Ht[1]),Xt=Ut(Ht[2])-1,dn=Ut(Ht[3]),_n=Ut(Ht[4]),Fn=Ut(Ht[5])-1;if(qt)return function(On,gn,hn){return gn>=1&&gn<=53&&hn>=0&&hn<=6}(0,_n,Fn)?function(On,gn,hn){var wn=new Date(0);wn.setUTCFullYear(On,0,4);var Zn=wn.getUTCDay()||7,Pn=7*(gn-1)+hn+1-Zn;return wn.setUTCDate(wn.getUTCDate()+Pn),wn}($t,_n,Fn):new Date(NaN);var Un=new Date(0);return function(On,gn,hn){return gn>=0&&gn<=11&&hn>=1&&hn<=(At[gn]||(Lt(On)?29:28))}($t,Xt,dn)&&function(On,gn){return gn>=1&&gn<=(Lt(On)?366:365)}($t,on)?(Un.setUTCFullYear($t,Xt,Math.max(on,dn)),Un):new Date(NaN)}function Ut(It){return It?parseInt(It):1}function Ft(It){var $t=It.match(ct);if(!$t)return NaN;var Ht=mt($t[1]),qt=mt($t[2]),on=mt($t[3]);return function(Xt,dn,_n){return Xt===24?dn===0&&_n===0:_n>=0&&_n<60&&dn>=0&&dn<60&&Xt>=0&&Xt<25}(Ht,qt,on)?36e5*Ht+6e4*qt+1e3*on:NaN}function mt(It){return It&&parseFloat(It.replace(",","."))||0}function vt(It){if(It==="Z")return 0;var $t=It.match(pt);if(!$t)return 0;var Ht=$t[1]==="+"?-1:1,qt=parseInt($t[2]),on=$t[3]&&parseInt($t[3])||0;return function(Xt,dn){return dn>=0&&dn<=59}(0,on)?Ht*(36e5*qt+6e4*on):NaN}var At=[31,null,31,30,31,30,31,31,30,31,30,31];function Lt(It){return It%400==0||It%4==0&&It%100!=0}function Rt(It){return lt(1,arguments),It instanceof Date||typeof It=="object"&&Object.prototype.toString.call(It)==="[object Date]"}function St(It){lt(1,arguments);var $t=Object.prototype.toString.call(It);return It instanceof Date||typeof It=="object"&&$t==="[object Date]"?new Date(It.getTime()):typeof It=="number"||$t==="[object Number]"?new Date(It):(typeof It!="string"&&$t!=="[object String]"||typeof console>"u"||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function Tt(It){const $t=function(Ht,qt){var on;lt(1,arguments);var Xt=ut((on=qt?.additionalDigits)!==null&&on!==void 0?on:2);if(Xt!==2&&Xt!==1&&Xt!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(typeof Ht!="string"&&Object.prototype.toString.call(Ht)!=="[object String]")return new Date(NaN);var dn,_n=ft(Ht);if(_n.date){var Fn=gt(_n.date,Xt);dn=yt(Fn.restDateString,Fn.year)}if(!dn||isNaN(dn.getTime()))return new Date(NaN);var Un,On=dn.getTime(),gn=0;if(_n.time&&(gn=Ft(_n.time),isNaN(gn)))return new Date(NaN);if(!_n.timezone){var hn=new Date(On+gn),wn=new Date(0);return wn.setFullYear(hn.getUTCFullYear(),hn.getUTCMonth(),hn.getUTCDate()),wn.setHours(hn.getUTCHours(),hn.getUTCMinutes(),hn.getUTCSeconds(),hn.getUTCMilliseconds()),wn}return Un=vt(_n.timezone),isNaN(Un)?new Date(NaN):new Date(On+gn+Un)}(It);if(!function(Ht){if(lt(1,arguments),!Rt(Ht)&&typeof Ht!="number")return!1;var qt=St(Ht);return!isNaN(Number(qt))}($t))throw new Error(`Invalid ISO 8601 date string (${It})`);return $t}var Bt=et(4),xt=et(34);function Ct(It){return nt()(It,{cycles:!0})}var kt=function(It,$t){var Ht={};for(var qt in It)Object.prototype.hasOwnProperty.call(It,qt)&&$t.indexOf(qt)<0&&(Ht[qt]=It[qt]);if(It!=null&&typeof Object.getOwnPropertySymbols=="function"){var on=0;for(qt=Object.getOwnPropertySymbols(It);on$t.redacted!==!1?Object(xt.a)(_n):_n;if(!It.stack)return{message:Ct(Ht(It))};const{name:qt,message:on,stack:Xt}=It,dn=kt(It,["name","message","stack"]);return{name:qt,message:on!==void 0?on:Ct(Ht(It)),stack:Xt,meta:dn&&Object.keys(dn).length===0?void 0:Ht(dn)}}function Ot(It,$t={}){const{message:Ht,stack:qt,meta:on}=Nt(It,$t);return`${qt||Ht||""}${on&&Object.keys(on).length>0?` -- ${Ct(on)}`:""}`}var Jt=et(39),Dt=et(103),Et=et.n(Dt),Pt=function(It,$t,Ht,qt){return new(Ht||(Ht=Promise))(function(on,Xt){function dn(Un){try{Fn(qt.next(Un))}catch(On){Xt(On)}}function _n(Un){try{Fn(qt.throw(Un))}catch(On){Xt(On)}}function Fn(Un){var On;Un.done?on(Un.value):(On=Un.value,On instanceof Ht?On:new Ht(function(gn){gn(On)})).then(dn,_n)}Fn((qt=qt.apply(It,$t||[])).next())})},zt=function(It,$t){var Ht={};for(var qt in It)Object.prototype.hasOwnProperty.call(It,qt)&&$t.indexOf(qt)<0&&(Ht[qt]=It[qt]);if(It!=null&&typeof Object.getOwnPropertySymbols=="function"){var on=0;for(qt=Object.getOwnPropertySymbols(It);on{var{timestamp:$t,level:Ht,message:qt,error:on}=It,Xt=Kt(It,["timestamp","level","message","error"]);const dn=Object.assign(Object.assign({timestamp:$t?Tt($t).getTime():new Date().getTime(),level:Ht.toUpperCase(),message:qt},on?{error:Nt(on)}:{}),{meta:Object.assign(Object.assign({},nn),Xt)});return nt()(dn,{cycles:!0})}):ot.format.printf(It=>{var{timestamp:$t,level:Ht,message:qt,error:on}=It,Xt=Kt(It,["timestamp","level","message","error"]);let dn=`${$t||new Date().toISOString()} ${Ht.toUpperCase()}: ${qt} `;return Object.keys(Xt).length>0&&(dn+=nt()(Xt,{cycles:!0})),on&&(dn+=` +${Ot(on)}`),dn}),jt=Object(ot.createLogger)({level:Bt.f});if(Bt.g&&jt.add(new ot.transports.Console({format:Zt,level:"debug"})),Bt.d&&jt.add(new en(Bt.d,nn)),Bt.h){const It=it.resolve(rt.tmpdir(),`silly-${Bt.a}.log`);jt.debug("Logging silly logs to file",{filename:It}),jt.add(new ot.transports.File({filename:It,maxsize:1*at,maxFiles:10,format:ot.format.combine((Vt="silly",Object(ot.format)($t=>$t.level===Vt&&$t)()),Zt),level:"silly"}))}var Vt},function(s,o,et){et.d(o,"a",function(){return tt});const tt={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:2592e6,year:31536e6}},function(s,o){var et,tt,nt=s.exports={};function rt(){throw new Error("setTimeout has not been defined")}function it(){throw new Error("clearTimeout has not been defined")}function ot(ft){if(et===setTimeout)return setTimeout(ft,0);if((et===rt||!et)&&setTimeout)return et=setTimeout,setTimeout(ft,0);try{return et(ft,0)}catch{try{return et.call(null,ft,0)}catch{return et.call(this,ft,0)}}}(function(){try{et=typeof setTimeout=="function"?setTimeout:rt}catch{et=rt}try{tt=typeof clearTimeout=="function"?clearTimeout:it}catch{tt=it}})();var st,at=[],lt=!1,ut=-1;function dt(){lt&&st&&(lt=!1,st.length?at=st.concat(at):ut=-1,at.length&&ht())}function ht(){if(!lt){var ft=ot(dt);lt=!0;for(var gt=at.length;gt;){for(st=at,at=[];++ut1)for(var yt=1;yt=ot())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ot().toString(16)+" bytes");return 0|Vt}function pt(Vt,It){if(at.isBuffer(Vt))return Vt.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(Vt)||Vt instanceof ArrayBuffer))return Vt.byteLength;typeof Vt!="string"&&(Vt=""+Vt);var $t=Vt.length;if($t===0)return 0;for(var Ht=!1;;)switch(It){case"ascii":case"latin1":case"binary":return $t;case"utf8":case"utf-8":case void 0:return nn(Vt).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*$t;case"hex":return $t>>>1;case"base64":return Zt(Vt).length;default:if(Ht)return nn(Vt).length;It=(""+It).toLowerCase(),Ht=!0}}function ft(Vt,It,$t){var Ht=!1;if((It===void 0||It<0)&&(It=0),It>this.length||(($t===void 0||$t>this.length)&&($t=this.length),$t<=0)||($t>>>=0)<=(It>>>=0))return"";for(Vt||(Vt="utf8");;)switch(Vt){case"hex":return Ct(this,It,$t);case"utf8":case"utf-8":return Tt(this,It,$t);case"ascii":return Bt(this,It,$t);case"latin1":case"binary":return xt(this,It,$t);case"base64":return St(this,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return kt(this,It,$t);default:if(Ht)throw new TypeError("Unknown encoding: "+Vt);Vt=(Vt+"").toLowerCase(),Ht=!0}}function gt(Vt,It,$t){var Ht=Vt[It];Vt[It]=Vt[$t],Vt[$t]=Ht}function yt(Vt,It,$t,Ht,qt){if(Vt.length===0)return-1;if(typeof $t=="string"?(Ht=$t,$t=0):$t>2147483647?$t=2147483647:$t<-2147483648&&($t=-2147483648),$t=+$t,isNaN($t)&&($t=qt?0:Vt.length-1),$t<0&&($t=Vt.length+$t),$t>=Vt.length){if(qt)return-1;$t=Vt.length-1}else if($t<0){if(!qt)return-1;$t=0}if(typeof It=="string"&&(It=at.from(It,Ht)),at.isBuffer(It))return It.length===0?-1:Ut(Vt,It,$t,Ht,qt);if(typeof It=="number")return It&=255,at.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?qt?Uint8Array.prototype.indexOf.call(Vt,It,$t):Uint8Array.prototype.lastIndexOf.call(Vt,It,$t):Ut(Vt,[It],$t,Ht,qt);throw new TypeError("val must be string, number or Buffer")}function Ut(Vt,It,$t,Ht,qt){var on,Xt=1,dn=Vt.length,_n=It.length;if(Ht!==void 0&&((Ht=String(Ht).toLowerCase())==="ucs2"||Ht==="ucs-2"||Ht==="utf16le"||Ht==="utf-16le")){if(Vt.length<2||It.length<2)return-1;Xt=2,dn/=2,_n/=2,$t/=2}function Fn(hn,wn){return Xt===1?hn[wn]:hn.readUInt16BE(wn*Xt)}if(qt){var Un=-1;for(on=$t;ondn&&($t=dn-_n),on=$t;on>=0;on--){for(var On=!0,gn=0;gn<_n;gn++)if(Fn(Vt,on+gn)!==Fn(It,gn)){On=!1;break}if(On)return on}return-1}function Ft(Vt,It,$t,Ht){$t=Number($t)||0;var qt=Vt.length-$t;Ht?(Ht=Number(Ht))>qt&&(Ht=qt):Ht=qt;var on=It.length;if(on%2!=0)throw new TypeError("Invalid hex string");Ht>on/2&&(Ht=on/2);for(var Xt=0;Xt>8,_n=Xt%256,Fn.push(_n),Fn.push(dn);return Fn}(It,Vt.length-$t),Vt,$t,Ht)}function St(Vt,It,$t){return It===0&&$t===Vt.length?nt.fromByteArray(Vt):nt.fromByteArray(Vt.slice(It,$t))}function Tt(Vt,It,$t){$t=Math.min(Vt.length,$t);for(var Ht=[],qt=It;qt<$t;){var on,Xt,dn,_n,Fn=Vt[qt],Un=null,On=Fn>239?4:Fn>223?3:Fn>191?2:1;if(qt+On<=$t)switch(On){case 1:Fn<128&&(Un=Fn);break;case 2:(192&(on=Vt[qt+1]))==128&&(_n=(31&Fn)<<6|63&on)>127&&(Un=_n);break;case 3:on=Vt[qt+1],Xt=Vt[qt+2],(192&on)==128&&(192&Xt)==128&&(_n=(15&Fn)<<12|(63&on)<<6|63&Xt)>2047&&(_n<55296||_n>57343)&&(Un=_n);break;case 4:on=Vt[qt+1],Xt=Vt[qt+2],dn=Vt[qt+3],(192&on)==128&&(192&Xt)==128&&(192&dn)==128&&(_n=(15&Fn)<<18|(63&on)<<12|(63&Xt)<<6|63&dn)>65535&&_n<1114112&&(Un=_n)}Un===null?(Un=65533,On=1):Un>65535&&(Un-=65536,Ht.push(Un>>>10&1023|55296),Un=56320|1023&Un),Ht.push(Un),qt+=On}return function(gn){var hn=gn.length;if(hn<=4096)return String.fromCharCode.apply(String,gn);for(var wn="",Zn=0;Zn0&&(Vt=this.toString("hex",0,It).match(/.{2}/g).join(" "),this.length>It&&(Vt+=" ... ")),""},at.prototype.compare=function(Vt,It,$t,Ht,qt){if(!at.isBuffer(Vt))throw new TypeError("Argument must be a Buffer");if(It===void 0&&(It=0),$t===void 0&&($t=Vt?Vt.length:0),Ht===void 0&&(Ht=0),qt===void 0&&(qt=this.length),It<0||$t>Vt.length||Ht<0||qt>this.length)throw new RangeError("out of range index");if(Ht>=qt&&It>=$t)return 0;if(Ht>=qt)return-1;if(It>=$t)return 1;if(this===Vt)return 0;for(var on=(qt>>>=0)-(Ht>>>=0),Xt=($t>>>=0)-(It>>>=0),dn=Math.min(on,Xt),_n=this.slice(Ht,qt),Fn=Vt.slice(It,$t),Un=0;Unqt)&&($t=qt),Vt.length>0&&($t<0||It<0)||It>this.length)throw new RangeError("Attempt to write outside buffer bounds");Ht||(Ht="utf8");for(var on=!1;;)switch(Ht){case"hex":return Ft(this,Vt,It,$t);case"utf8":case"utf-8":return mt(this,Vt,It,$t);case"ascii":return vt(this,Vt,It,$t);case"latin1":case"binary":return At(this,Vt,It,$t);case"base64":return Lt(this,Vt,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Rt(this,Vt,It,$t);default:if(on)throw new TypeError("Unknown encoding: "+Ht);Ht=(""+Ht).toLowerCase(),on=!0}},at.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Bt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(127&Vt[qt]);return Ht}function xt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(Vt[qt]);return Ht}function Ct(Vt,It,$t){var Ht=Vt.length;(!It||It<0)&&(It=0),(!$t||$t<0||$t>Ht)&&($t=Ht);for(var qt="",on=It;on<$t;++on)qt+=Kt(Vt[on]);return qt}function kt(Vt,It,$t){for(var Ht=Vt.slice(It,$t),qt="",on=0;on$t)throw new RangeError("Trying to access beyond buffer length")}function Ot(Vt,It,$t,Ht,qt,on){if(!at.isBuffer(Vt))throw new TypeError('"buffer" argument must be a Buffer instance');if(It>qt||ItVt.length)throw new RangeError("Index out of range")}function Jt(Vt,It,$t,Ht){It<0&&(It=65535+It+1);for(var qt=0,on=Math.min(Vt.length-$t,2);qt>>8*(Ht?qt:1-qt)}function Dt(Vt,It,$t,Ht){It<0&&(It=4294967295+It+1);for(var qt=0,on=Math.min(Vt.length-$t,4);qt>>8*(Ht?qt:3-qt)&255}function Et(Vt,It,$t,Ht,qt,on){if($t+Ht>Vt.length)throw new RangeError("Index out of range");if($t<0)throw new RangeError("Index out of range")}function Pt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,4),rt.write(Vt,It,$t,Ht,23,4),$t+4}function zt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,8),rt.write(Vt,It,$t,Ht,52,8),$t+8}at.prototype.slice=function(Vt,It){var $t,Ht=this.length;if((Vt=~~Vt)<0?(Vt+=Ht)<0&&(Vt=0):Vt>Ht&&(Vt=Ht),(It=It===void 0?Ht:~~It)<0?(It+=Ht)<0&&(It=0):It>Ht&&(It=Ht),It0&&(qt*=256);)Ht+=this[Vt+--It]*qt;return Ht},at.prototype.readUInt8=function(Vt,It){return It||Nt(Vt,1,this.length),this[Vt]},at.prototype.readUInt16LE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]|this[Vt+1]<<8},at.prototype.readUInt16BE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]<<8|this[Vt+1]},at.prototype.readUInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),(this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16)+16777216*this[Vt+3]},at.prototype.readUInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),16777216*this[Vt]+(this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3])},at.prototype.readIntLE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=this[Vt],qt=1,on=0;++on=(qt*=128)&&(Ht-=Math.pow(2,8*It)),Ht},at.prototype.readIntBE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=It,qt=1,on=this[Vt+--Ht];Ht>0&&(qt*=256);)on+=this[Vt+--Ht]*qt;return on>=(qt*=128)&&(on-=Math.pow(2,8*It)),on},at.prototype.readInt8=function(Vt,It){return It||Nt(Vt,1,this.length),128&this[Vt]?-1*(255-this[Vt]+1):this[Vt]},at.prototype.readInt16LE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt]|this[Vt+1]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt16BE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt+1]|this[Vt]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16|this[Vt+3]<<24},at.prototype.readInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]<<24|this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3]},at.prototype.readFloatLE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!0,23,4)},at.prototype.readFloatBE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!1,23,4)},at.prototype.readDoubleLE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!0,52,8)},at.prototype.readDoubleBE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!1,52,8)},at.prototype.writeUIntLE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=1,on=0;for(this[It]=255&Vt;++on<$t&&(qt*=256);)this[It+on]=Vt/qt&255;return It+$t},at.prototype.writeUIntBE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=$t-1,on=1;for(this[It+qt]=255&Vt;--qt>=0&&(on*=256);)this[It+qt]=Vt/on&255;return It+$t},at.prototype.writeUInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,255,0),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),this[It]=255&Vt,It+1},at.prototype.writeUInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Jt(this,Vt,It,!0),It+2},at.prototype.writeUInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Jt(this,Vt,It,!1),It+2},at.prototype.writeUInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It+3]=Vt>>>24,this[It+2]=Vt>>>16,this[It+1]=Vt>>>8,this[It]=255&Vt):Dt(this,Vt,It,!0),It+4},at.prototype.writeUInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeIntLE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=0,Xt=1,dn=0;for(this[It]=255&Vt;++on<$t&&(Xt*=256);)Vt<0&&dn===0&&this[It+on-1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeIntBE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=$t-1,Xt=1,dn=0;for(this[It+on]=255&Vt;--on>=0&&(Xt*=256);)Vt<0&&dn===0&&this[It+on+1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,127,-128),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),Vt<0&&(Vt=255+Vt+1),this[It]=255&Vt,It+1},at.prototype.writeInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Jt(this,Vt,It,!0),It+2},at.prototype.writeInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Jt(this,Vt,It,!1),It+2},at.prototype.writeInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8,this[It+2]=Vt>>>16,this[It+3]=Vt>>>24):Dt(this,Vt,It,!0),It+4},at.prototype.writeInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),Vt<0&&(Vt=4294967295+Vt+1),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeFloatLE=function(Vt,It,$t){return Pt(this,Vt,It,!0,$t)},at.prototype.writeFloatBE=function(Vt,It,$t){return Pt(this,Vt,It,!1,$t)},at.prototype.writeDoubleLE=function(Vt,It,$t){return zt(this,Vt,It,!0,$t)},at.prototype.writeDoubleBE=function(Vt,It,$t){return zt(this,Vt,It,!1,$t)},at.prototype.copy=function(Vt,It,$t,Ht){if($t||($t=0),Ht||Ht===0||(Ht=this.length),It>=Vt.length&&(It=Vt.length),It||(It=0),Ht>0&&Ht<$t&&(Ht=$t),Ht===$t||Vt.length===0||this.length===0)return 0;if(It<0)throw new RangeError("targetStart out of bounds");if($t<0||$t>=this.length)throw new RangeError("sourceStart out of bounds");if(Ht<0)throw new RangeError("sourceEnd out of bounds");Ht>this.length&&(Ht=this.length),Vt.length-It=0;--qt)Vt[qt+It]=this[qt+$t];else if(on<1e3||!at.TYPED_ARRAY_SUPPORT)for(qt=0;qt>>=0,$t=$t===void 0?this.length:$t>>>0,Vt||(Vt=0),typeof Vt=="number")for(on=It;on<$t;++on)this[on]=Vt;else{var Xt=at.isBuffer(Vt)?Vt:nn(new at(Vt,Ht).toString()),dn=Xt.length;for(on=0;on<$t-It;++on)this[on+It]=Xt[on%dn]}return this};var en=/[^+\/0-9A-Za-z-_]/g;function Kt(Vt){return Vt<16?"0"+Vt.toString(16):Vt.toString(16)}function nn(Vt,It){var $t;It=It||1/0;for(var Ht=Vt.length,qt=null,on=[],Xt=0;Xt55295&&$t<57344){if(!qt){if($t>56319){(It-=3)>-1&&on.push(239,191,189);continue}if(Xt+1===Ht){(It-=3)>-1&&on.push(239,191,189);continue}qt=$t;continue}if($t<56320){(It-=3)>-1&&on.push(239,191,189),qt=$t;continue}$t=65536+(qt-55296<<10|$t-56320)}else qt&&(It-=3)>-1&&on.push(239,191,189);if(qt=null,$t<128){if((It-=1)<0)break;on.push($t)}else if($t<2048){if((It-=2)<0)break;on.push($t>>6|192,63&$t|128)}else if($t<65536){if((It-=3)<0)break;on.push($t>>12|224,$t>>6&63|128,63&$t|128)}else{if(!($t<1114112))throw new Error("Invalid code point");if((It-=4)<0)break;on.push($t>>18|240,$t>>12&63|128,$t>>6&63|128,63&$t|128)}}return on}function Zt(Vt){return nt.toByteArray(function(It){if((It=function($t){return $t.trim?$t.trim():$t.replace(/^\s+|\s+$/g,"")}(It).replace(en,"")).length<2)return"";for(;It.length%4!=0;)It+="=";return It}(Vt))}function jt(Vt,It,$t,Ht){for(var qt=0;qt=It.length||qt>=Vt.length);++qt)It[qt+$t]=Vt[qt];return qt}}).call(this,et(6))},function(s,o){var et;et=function(){return this}();try{et=et||new Function("return this")()}catch{typeof window=="object"&&(et=window)}s.exports=et},function(s,o){typeof Object.create=="function"?s.exports=function(et,tt){tt&&(et.super_=tt,et.prototype=Object.create(tt.prototype,{constructor:{value:et,enumerable:!1,writable:!0,configurable:!0}}))}:s.exports=function(et,tt){if(tt){et.super_=tt;var nt=function(){};nt.prototype=tt.prototype,et.prototype=new nt,et.prototype.constructor=et}}},function(s,o,et){et.d(o,"a",function(){return tt});const tt=nt=>new Promise(rt=>setTimeout(rt,nt||0))},function(s,o,et){var tt=et(99),nt=tt,rt=Function("return this")(),it=et(98);nt.object.extend(proto,it),nt.exportSymbol("proto.v1.signaling.api.CreatePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.CreatePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.Peer",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.SessionType",null,rt),nt.exportSymbol("proto.v1.signaling.api.Signal",null,rt),proto.v1.signaling.api.Peer=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.Peer.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.Peer,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Peer.displayName="proto.v1.signaling.api.Peer"),proto.v1.signaling.api.Signal=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.Signal,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Signal.displayName="proto.v1.signaling.api.Signal"),proto.v1.signaling.api.GetHealthRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthRequest.displayName="proto.v1.signaling.api.GetHealthRequest"),proto.v1.signaling.api.GetHealthResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthResponse.displayName="proto.v1.signaling.api.GetHealthResponse"),proto.v1.signaling.api.CreatePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerRequest.displayName="proto.v1.signaling.api.CreatePeerRequest"),proto.v1.signaling.api.CreatePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerResponse.displayName="proto.v1.signaling.api.CreatePeerResponse"),proto.v1.signaling.api.DeletePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerRequest.displayName="proto.v1.signaling.api.DeletePeerRequest"),proto.v1.signaling.api.DeletePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerResponse.displayName="proto.v1.signaling.api.DeletePeerResponse"),proto.v1.signaling.api.RefreshPeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerRequest.displayName="proto.v1.signaling.api.RefreshPeerRequest"),proto.v1.signaling.api.RefreshPeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerResponse.displayName="proto.v1.signaling.api.RefreshPeerResponse"),proto.v1.signaling.api.GetPeersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetPeersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersRequest.displayName="proto.v1.signaling.api.GetPeersRequest"),proto.v1.signaling.api.GetPeersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.GetPeersResponse.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.GetPeersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersResponse.displayName="proto.v1.signaling.api.GetPeersResponse"),proto.v1.signaling.api.GetIceServersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersRequest.displayName="proto.v1.signaling.api.GetIceServersRequest"),proto.v1.signaling.api.GetIceServersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersResponse.displayName="proto.v1.signaling.api.GetIceServersResponse"),proto.v1.signaling.api.SendSignalRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalRequest.displayName="proto.v1.signaling.api.SendSignalRequest"),proto.v1.signaling.api.SendSignalResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalResponse.displayName="proto.v1.signaling.api.SendSignalResponse"),proto.v1.signaling.api.ReceiveSignalStreamRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.displayName="proto.v1.signaling.api.ReceiveSignalStreamRequest"),proto.v1.signaling.api.ReceiveSignalStreamResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.displayName="proto.v1.signaling.api.ReceiveSignalStreamResponse"),proto.v1.signaling.api.Peer.repeatedFields_=[5],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Peer.prototype.toObject=function(ot){return proto.v1.signaling.api.Peer.toObject(ot,this)},proto.v1.signaling.api.Peer.toObject=function(ot,st){var at,lt={peerId:tt.Message.getFieldWithDefault(st,1,""),organizationId:tt.Message.getFieldWithDefault(st,2,""),userId:(at=st.getUserId())&&it.StringValue.toObject(ot,at),deviceId:(at=st.getDeviceId())&&it.StringValue.toObject(ot,at),sessionIdsList:(at=tt.Message.getRepeatedField(st,5))==null?void 0:at,peerCreatedTimestamp:(at=st.getPeerCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Peer.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Peer;return proto.v1.signaling.api.Peer.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Peer.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;case 2:at=st.readString(),ot.setOrganizationId(at);break;case 3:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setUserId(at);break;case 4:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setDeviceId(at);break;case 5:at=st.readString(),ot.addSessionIds(at);break;case 6:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setPeerCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Peer.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Peer.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Peer.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getPeerId()).length>0&&st.writeString(1,at),(at=ot.getOrganizationId()).length>0&&st.writeString(2,at),(at=ot.getUserId())!=null&&st.writeMessage(3,at,it.StringValue.serializeBinaryToWriter),(at=ot.getDeviceId())!=null&&st.writeMessage(4,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionIdsList()).length>0&&st.writeRepeatedString(5,at),(at=ot.getPeerCreatedTimestamp())!=null&&st.writeMessage(6,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.Peer.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.Peer.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},proto.v1.signaling.api.Peer.prototype.getOrganizationId=function(){return tt.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.Peer.prototype.setOrganizationId=function(ot){return tt.Message.setProto3StringField(this,2,ot)},proto.v1.signaling.api.Peer.prototype.getUserId=function(){return tt.Message.getWrapperField(this,it.StringValue,3)},proto.v1.signaling.api.Peer.prototype.setUserId=function(ot){return tt.Message.setWrapperField(this,3,ot)},proto.v1.signaling.api.Peer.prototype.clearUserId=function(){return this.setUserId(void 0)},proto.v1.signaling.api.Peer.prototype.hasUserId=function(){return tt.Message.getField(this,3)!=null},proto.v1.signaling.api.Peer.prototype.getDeviceId=function(){return tt.Message.getWrapperField(this,it.StringValue,4)},proto.v1.signaling.api.Peer.prototype.setDeviceId=function(ot){return tt.Message.setWrapperField(this,4,ot)},proto.v1.signaling.api.Peer.prototype.clearDeviceId=function(){return this.setDeviceId(void 0)},proto.v1.signaling.api.Peer.prototype.hasDeviceId=function(){return tt.Message.getField(this,4)!=null},proto.v1.signaling.api.Peer.prototype.getSessionIdsList=function(){return tt.Message.getRepeatedField(this,5)},proto.v1.signaling.api.Peer.prototype.setSessionIdsList=function(ot){return tt.Message.setField(this,5,ot||[])},proto.v1.signaling.api.Peer.prototype.addSessionIds=function(ot,st){return tt.Message.addToRepeatedField(this,5,ot,st)},proto.v1.signaling.api.Peer.prototype.clearSessionIdsList=function(){return this.setSessionIdsList([])},proto.v1.signaling.api.Peer.prototype.getPeerCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,6)},proto.v1.signaling.api.Peer.prototype.setPeerCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,6,ot)},proto.v1.signaling.api.Peer.prototype.clearPeerCreatedTimestamp=function(){return this.setPeerCreatedTimestamp(void 0)},proto.v1.signaling.api.Peer.prototype.hasPeerCreatedTimestamp=function(){return tt.Message.getField(this,6)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Signal.prototype.toObject=function(ot){return proto.v1.signaling.api.Signal.toObject(ot,this)},proto.v1.signaling.api.Signal.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at),senderId:tt.Message.getFieldWithDefault(st,3,""),receiverId:tt.Message.getFieldWithDefault(st,4,""),payload:tt.Message.getFieldWithDefault(st,5,""),iceServers:tt.Message.getFieldWithDefault(st,6,""),iceTransportPolicy:tt.Message.getFieldWithDefault(st,7,""),sessionType:tt.Message.getFieldWithDefault(st,8,0)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Signal.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Signal;return proto.v1.signaling.api.Signal.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Signal.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;case 3:at=st.readString(),ot.setSenderId(at);break;case 4:at=st.readString(),ot.setReceiverId(at);break;case 5:at=st.readString(),ot.setPayload(at);break;case 6:at=st.readString(),ot.setIceServers(at);break;case 7:at=st.readString(),ot.setIceTransportPolicy(at);break;case 8:at=st.readEnum(),ot.setSessionType(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Signal.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Signal.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Signal.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter),(at=ot.getSenderId()).length>0&&st.writeString(3,at),(at=ot.getReceiverId()).length>0&&st.writeString(4,at),(at=ot.getPayload()).length>0&&st.writeString(5,at),(at=ot.getIceServers()).length>0&&st.writeString(6,at),(at=ot.getIceTransportPolicy()).length>0&&st.writeString(7,at),(at=ot.getSessionType())!==0&&st.writeEnum(8,at)},proto.v1.signaling.api.Signal.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.Signal.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.Signal.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.Signal.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},proto.v1.signaling.api.Signal.prototype.getSenderId=function(){return tt.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.Signal.prototype.setSenderId=function(ot){return tt.Message.setProto3StringField(this,3,ot)},proto.v1.signaling.api.Signal.prototype.getReceiverId=function(){return tt.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.Signal.prototype.setReceiverId=function(ot){return tt.Message.setProto3StringField(this,4,ot)},proto.v1.signaling.api.Signal.prototype.getPayload=function(){return tt.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.Signal.prototype.setPayload=function(ot){return tt.Message.setProto3StringField(this,5,ot)},proto.v1.signaling.api.Signal.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,6,"")},proto.v1.signaling.api.Signal.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,6,ot)},proto.v1.signaling.api.Signal.prototype.getIceTransportPolicy=function(){return tt.Message.getFieldWithDefault(this,7,"")},proto.v1.signaling.api.Signal.prototype.setIceTransportPolicy=function(ot){return tt.Message.setProto3StringField(this,7,ot)},proto.v1.signaling.api.Signal.prototype.getSessionType=function(){return tt.Message.getFieldWithDefault(this,8,0)},proto.v1.signaling.api.Signal.prototype.setSessionType=function(ot){return tt.Message.setProto3EnumField(this,8,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthRequest.toObject(ot,this)},proto.v1.signaling.api.GetHealthRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthRequest;return proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetHealthRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthResponse.toObject(ot,this)},proto.v1.signaling.api.GetHealthResponse.toObject=function(ot,st){var at={version:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthResponse;return proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setVersion(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetHealthResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getVersion()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetHealthResponse.prototype.getVersion=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetHealthResponse.prototype.setVersion=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerRequest.toObject(ot,this)},proto.v1.signaling.api.CreatePeerRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.CreatePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerRequest;return proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.CreatePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerResponse.toObject(ot,this)},proto.v1.signaling.api.CreatePeerResponse.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.CreatePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerResponse;return proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.CreatePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.CreatePeerResponse.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.CreatePeerResponse.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.CreatePeerResponse.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.CreatePeerResponse.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerRequest.toObject(ot,this)},proto.v1.signaling.api.DeletePeerRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerRequest;return proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.DeletePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.DeletePeerRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.DeletePeerRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerResponse.toObject(ot,this)},proto.v1.signaling.api.DeletePeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerResponse;return proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.DeletePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerRequest.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerRequest.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.RefreshPeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerRequest;return proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.RefreshPeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.RefreshPeerRequest.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.RefreshPeerRequest.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.RefreshPeerRequest.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.RefreshPeerRequest.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerResponse.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.RefreshPeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerResponse;return proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.RefreshPeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersRequest.toObject(ot,this)},proto.v1.signaling.api.GetPeersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersRequest;return proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetPeersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter=function(ot,st){},proto.v1.signaling.api.GetPeersResponse.repeatedFields_=[1],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersResponse.toObject(ot,this)},proto.v1.signaling.api.GetPeersResponse.toObject=function(ot,st){var at={peersList:tt.Message.toObjectList(st.getPeersList(),proto.v1.signaling.api.Peer.toObject,ot)};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersResponse;return proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.addPeers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetPeersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeersList()).length>0&&st.writeRepeatedMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.GetPeersResponse.prototype.getPeersList=function(){return tt.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.GetPeersResponse.prototype.setPeersList=function(ot){return tt.Message.setRepeatedWrapperField(this,1,ot)},proto.v1.signaling.api.GetPeersResponse.prototype.addPeers=function(ot,st){return tt.Message.addToRepeatedWrapperField(this,1,ot,proto.v1.signaling.api.Peer,st)},proto.v1.signaling.api.GetPeersResponse.prototype.clearPeersList=function(){return this.setPeersList([])},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersRequest.toObject(ot,this)},proto.v1.signaling.api.GetIceServersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersRequest;return proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetIceServersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersResponse.toObject(ot,this)},proto.v1.signaling.api.GetIceServersResponse.toObject=function(ot,st){var at={iceServers:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersResponse;return proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setIceServers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetIceServersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getIceServers()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetIceServersResponse.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetIceServersResponse.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalRequest.toObject(ot,this)},proto.v1.signaling.api.SendSignalRequest.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalRequest;return proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalRequest.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.SendSignalRequest.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalRequest.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.SendSignalRequest.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalResponse.toObject(ot,this)},proto.v1.signaling.api.SendSignalResponse.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalResponse;return proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamRequest;return proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamResponse;return proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SessionType={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3},nt.object.extend(o,proto.v1.signaling.api)},function(s,o,et){function tt(nt,rt,it=()=>!0){if(nt instanceof rt&&it(nt))return nt;throw nt}et.d(o,"a",function(){return tt})},function(s,o,et){et.d(o,"a",function(){return nt});var tt=et(34);class nt extends Error{constructor(it,ot,st,at,lt={},ut){super(`Unexpected response (${st}) for ${it} ${ot}: ${JSON.stringify(ut?Object(tt.a)([...ut.entries()].reduce((dt,[ht,ct])=>(dt[ht]=ct,dt),{})):{})} -- ${JSON.stringify(Object(tt.a)(at))}`),this.method=it,this.url=ot,this.statusCode=st,this.body=at,this.validationErrors=lt,this.headers=ut}}},function(s,o,et){function tt(dt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ht){return typeof ht}:function(ht){return ht&&typeof Symbol=="function"&&ht.constructor===Symbol&&ht!==Symbol.prototype?"symbol":typeof ht})(dt)}function nt(dt,ht){return!ht||tt(ht)!=="object"&&typeof ht!="function"?rt(dt):ht}function rt(dt){if(dt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return dt}function it(dt){var ht=typeof Map=="function"?new Map:void 0;return(it=function(ct){if(ct===null||(pt=ct,Function.toString.call(pt).indexOf("[native code]")===-1))return ct;var pt;if(typeof ct!="function")throw new TypeError("Super expression must either be null or a function");if(ht!==void 0){if(ht.has(ct))return ht.get(ct);ht.set(ct,ft)}function ft(){return ot(ct,arguments,lt(this).constructor)}return ft.prototype=Object.create(ct.prototype,{constructor:{value:ft,enumerable:!1,writable:!0,configurable:!0}}),at(ft,ct)})(dt)}function ot(dt,ht,ct){return(ot=st()?Reflect.construct:function(pt,ft,gt){var yt=[null];yt.push.apply(yt,ft);var Ut=new(Function.bind.apply(pt,yt));return gt&&at(Ut,gt.prototype),Ut}).apply(null,arguments)}function st(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function at(dt,ht){return(at=Object.setPrototypeOf||function(ct,pt){return ct.__proto__=pt,ct})(dt,ht)}function lt(dt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(ht){return ht.__proto__||Object.getPrototypeOf(ht)})(dt)}var ut=function(dt){(function(gt,yt){if(typeof yt!="function"&&yt!==null)throw new TypeError("Super expression must either be null or a function");gt.prototype=Object.create(yt&&yt.prototype,{constructor:{value:gt,writable:!0,configurable:!0}}),yt&&at(gt,yt)})(ft,dt);var ht,ct,pt=(ht=ft,ct=st(),function(){var gt,yt=lt(ht);if(ct){var Ut=lt(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return nt(this,gt)});function ft(gt){var yt;return function(Ut,Ft){if(!(Ut instanceof Ft))throw new TypeError("Cannot call a class as a function")}(this,ft),yt=pt.call(this,`Format functions must be synchronous taking a two arguments: (info, opts) Found: `.concat(gt.toString().split(` `)[0],` -`)),Error.captureStackTrace(rt(yt),ft),yt}return ft}(it(Error));s.exports=function(dt){if(dt.length>2)throw new ut(dt);function ht(){var pt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.options=pt}function ct(pt){return new ht(pt)}return ht.prototype.transform=dt,ct.Format=ht,ct}},function(s,o,et){(function(tt){var nt=Object.getOwnPropertyDescriptors||function(Nt){for(var Ot=Object.keys(Nt),Wt={},Dt=0;Dt=Et)return en;switch(en){case"%s":return String(Dt[Wt++]);case"%d":return Number(Dt[Wt++]);case"%j":try{return JSON.stringify(Dt[Wt++])}catch{return"[Circular]"}default:return en}}),zt=Dt[Wt];Wt=3&&(Wt.depth=arguments[2]),arguments.length>=4&&(Wt.colors=arguments[3]),pt(Ot)?Wt.showHidden=Ot:Ot&&o._extend(Wt,Ot),Ut(Wt.showHidden)&&(Wt.showHidden=!1),Ut(Wt.depth)&&(Wt.depth=2),Ut(Wt.colors)&&(Wt.colors=!1),Ut(Wt.customInspect)&&(Wt.customInspect=!0),Wt.colors&&(Wt.stylize=at),ut(Wt,Nt,Wt.depth)}function at(Nt,Ot){var Wt=st.styles[Ot];return Wt?"\x1B["+st.colors[Wt][0]+"m"+Nt+"\x1B["+st.colors[Wt][1]+"m":Nt}function lt(Nt,Ot){return Nt}function ut(Nt,Ot,Wt){if(Nt.customInspect&&Ot&&Lt(Ot.inspect)&&Ot.inspect!==o.inspect&&(!Ot.constructor||Ot.constructor.prototype!==Ot)){var Dt=Ot.inspect(Wt,Nt);return yt(Dt)||(Dt=ut(Nt,Dt,Wt)),Dt}var Et=function(Vt,It){if(Ut(It))return Vt.stylize("undefined","undefined");if(yt(It)){var $t="'"+JSON.stringify(It).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return Vt.stylize($t,"string")}if(gt(It))return Vt.stylize(""+It,"number");if(pt(It))return Vt.stylize(""+It,"boolean");if(ft(It))return Vt.stylize("null","null")}(Nt,Ot);if(Et)return Et;var Pt=Object.keys(Ot),zt=function(Vt){var It={};return Vt.forEach(function($t,Ht){It[$t]=!0}),It}(Pt);if(Nt.showHidden&&(Pt=Object.getOwnPropertyNames(Ot)),At(Ot)&&(Pt.indexOf("message")>=0||Pt.indexOf("description")>=0))return dt(Ot);if(Pt.length===0){if(Lt(Ot)){var en=Ot.name?": "+Ot.name:"";return Nt.stylize("[Function"+en+"]","special")}if(Ft(Ot))return Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp");if(vt(Ot))return Nt.stylize(Date.prototype.toString.call(Ot),"date");if(At(Ot))return dt(Ot)}var Kt,nn="",Zt=!1,jt=["{","}"];return ct(Ot)&&(Zt=!0,jt=["[","]"]),Lt(Ot)&&(nn=" [Function"+(Ot.name?": "+Ot.name:"")+"]"),Ft(Ot)&&(nn=" "+RegExp.prototype.toString.call(Ot)),vt(Ot)&&(nn=" "+Date.prototype.toUTCString.call(Ot)),At(Ot)&&(nn=" "+dt(Ot)),Pt.length!==0||Zt&&Ot.length!=0?Wt<0?Ft(Ot)?Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp"):Nt.stylize("[Object]","special"):(Nt.seen.push(Ot),Kt=Zt?function(Vt,It,$t,Ht,qt){for(var on=[],Xt=0,dn=It.length;Xt2)throw new ut(dt);function ht(){var pt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.options=pt}function ct(pt){return new ht(pt)}return ht.prototype.transform=dt,ct.Format=ht,ct}},function(s,o,et){(function(tt){var nt=Object.getOwnPropertyDescriptors||function(Nt){for(var Ot=Object.keys(Nt),Jt={},Dt=0;Dt=Et)return en;switch(en){case"%s":return String(Dt[Jt++]);case"%d":return Number(Dt[Jt++]);case"%j":try{return JSON.stringify(Dt[Jt++])}catch{return"[Circular]"}default:return en}}),zt=Dt[Jt];Jt=3&&(Jt.depth=arguments[2]),arguments.length>=4&&(Jt.colors=arguments[3]),pt(Ot)?Jt.showHidden=Ot:Ot&&o._extend(Jt,Ot),Ut(Jt.showHidden)&&(Jt.showHidden=!1),Ut(Jt.depth)&&(Jt.depth=2),Ut(Jt.colors)&&(Jt.colors=!1),Ut(Jt.customInspect)&&(Jt.customInspect=!0),Jt.colors&&(Jt.stylize=at),ut(Jt,Nt,Jt.depth)}function at(Nt,Ot){var Jt=st.styles[Ot];return Jt?"\x1B["+st.colors[Jt][0]+"m"+Nt+"\x1B["+st.colors[Jt][1]+"m":Nt}function lt(Nt,Ot){return Nt}function ut(Nt,Ot,Jt){if(Nt.customInspect&&Ot&&Lt(Ot.inspect)&&Ot.inspect!==o.inspect&&(!Ot.constructor||Ot.constructor.prototype!==Ot)){var Dt=Ot.inspect(Jt,Nt);return yt(Dt)||(Dt=ut(Nt,Dt,Jt)),Dt}var Et=function(Vt,It){if(Ut(It))return Vt.stylize("undefined","undefined");if(yt(It)){var $t="'"+JSON.stringify(It).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return Vt.stylize($t,"string")}if(gt(It))return Vt.stylize(""+It,"number");if(pt(It))return Vt.stylize(""+It,"boolean");if(ft(It))return Vt.stylize("null","null")}(Nt,Ot);if(Et)return Et;var Pt=Object.keys(Ot),zt=function(Vt){var It={};return Vt.forEach(function($t,Ht){It[$t]=!0}),It}(Pt);if(Nt.showHidden&&(Pt=Object.getOwnPropertyNames(Ot)),At(Ot)&&(Pt.indexOf("message")>=0||Pt.indexOf("description")>=0))return dt(Ot);if(Pt.length===0){if(Lt(Ot)){var en=Ot.name?": "+Ot.name:"";return Nt.stylize("[Function"+en+"]","special")}if(Ft(Ot))return Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp");if(vt(Ot))return Nt.stylize(Date.prototype.toString.call(Ot),"date");if(At(Ot))return dt(Ot)}var Kt,nn="",Zt=!1,jt=["{","}"];return ct(Ot)&&(Zt=!0,jt=["[","]"]),Lt(Ot)&&(nn=" [Function"+(Ot.name?": "+Ot.name:"")+"]"),Ft(Ot)&&(nn=" "+RegExp.prototype.toString.call(Ot)),vt(Ot)&&(nn=" "+Date.prototype.toUTCString.call(Ot)),At(Ot)&&(nn=" "+dt(Ot)),Pt.length!==0||Zt&&Ot.length!=0?Jt<0?Ft(Ot)?Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp"):Nt.stylize("[Object]","special"):(Nt.seen.push(Ot),Kt=Zt?function(Vt,It,$t,Ht,qt){for(var on=[],Xt=0,dn=It.length;Xt=0,Ht+qt.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?$t[0]+(It===""?"":It+` `)+" "+Vt.join(`, - `)+" "+$t[1]:$t[0]+It+" "+Vt.join(", ")+" "+$t[1]}(Kt,nn,jt)):jt[0]+nn+jt[1]}function dt(Nt){return"["+Error.prototype.toString.call(Nt)+"]"}function ht(Nt,Ot,Wt,Dt,Et,Pt){var zt,en,Kt;if((Kt=Object.getOwnPropertyDescriptor(Ot,Et)||{value:Ot[Et]}).get?en=Kt.set?Nt.stylize("[Getter/Setter]","special"):Nt.stylize("[Getter]","special"):Kt.set&&(en=Nt.stylize("[Setter]","special")),xt(Dt,Et)||(zt="["+Et+"]"),en||(Nt.seen.indexOf(Kt.value)<0?(en=ft(Wt)?ut(Nt,Kt.value,null):ut(Nt,Kt.value,Wt-1)).indexOf(` + `)+" "+$t[1]:$t[0]+It+" "+Vt.join(", ")+" "+$t[1]}(Kt,nn,jt)):jt[0]+nn+jt[1]}function dt(Nt){return"["+Error.prototype.toString.call(Nt)+"]"}function ht(Nt,Ot,Jt,Dt,Et,Pt){var zt,en,Kt;if((Kt=Object.getOwnPropertyDescriptor(Ot,Et)||{value:Ot[Et]}).get?en=Kt.set?Nt.stylize("[Getter/Setter]","special"):Nt.stylize("[Getter]","special"):Kt.set&&(en=Nt.stylize("[Setter]","special")),xt(Dt,Et)||(zt="["+Et+"]"),en||(Nt.seen.indexOf(Kt.value)<0?(en=ft(Jt)?ut(Nt,Kt.value,null):ut(Nt,Kt.value,Jt-1)).indexOf(` `)>-1&&(en=Pt?en.split(` `).map(function(nn){return" "+nn}).join(` `).substr(2):` `+en.split(` `).map(function(nn){return" "+nn}).join(` -`)):en=Nt.stylize("[Circular]","special")),Ut(zt)){if(Pt&&Et.match(/^\d+$/))return en;(zt=JSON.stringify(""+Et)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(zt=zt.substr(1,zt.length-2),zt=Nt.stylize(zt,"name")):(zt=zt.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),zt=Nt.stylize(zt,"string"))}return zt+": "+en}function ct(Nt){return Array.isArray(Nt)}function pt(Nt){return typeof Nt=="boolean"}function ft(Nt){return Nt===null}function gt(Nt){return typeof Nt=="number"}function yt(Nt){return typeof Nt=="string"}function Ut(Nt){return Nt===void 0}function Ft(Nt){return mt(Nt)&&Rt(Nt)==="[object RegExp]"}function mt(Nt){return typeof Nt=="object"&&Nt!==null}function vt(Nt){return mt(Nt)&&Rt(Nt)==="[object Date]"}function At(Nt){return mt(Nt)&&(Rt(Nt)==="[object Error]"||Nt instanceof Error)}function Lt(Nt){return typeof Nt=="function"}function Rt(Nt){return Object.prototype.toString.call(Nt)}function St(Nt){return Nt<10?"0"+Nt.toString(10):Nt.toString(10)}o.debuglog=function(Nt){if(Ut(it)&&(it=tt.env.NODE_DEBUG||""),Nt=Nt.toUpperCase(),!ot[Nt])if(new RegExp("\\b"+Nt+"\\b","i").test(it)){var Ot=tt.pid;ot[Nt]=function(){var Wt=o.format.apply(o,arguments);console.error("%s %d: %s",Nt,Ot,Wt)}}else ot[Nt]=function(){};return ot[Nt]},o.inspect=st,st.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},st.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},o.isArray=ct,o.isBoolean=pt,o.isNull=ft,o.isNullOrUndefined=function(Nt){return Nt==null},o.isNumber=gt,o.isString=yt,o.isSymbol=function(Nt){return typeof Nt=="symbol"},o.isUndefined=Ut,o.isRegExp=Ft,o.isObject=mt,o.isDate=vt,o.isError=At,o.isFunction=Lt,o.isPrimitive=function(Nt){return Nt===null||typeof Nt=="boolean"||typeof Nt=="number"||typeof Nt=="string"||typeof Nt=="symbol"||Nt===void 0},o.isBuffer=et(107);var Tt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Bt(){var Nt=new Date,Ot=[St(Nt.getHours()),St(Nt.getMinutes()),St(Nt.getSeconds())].join(":");return[Nt.getDate(),Tt[Nt.getMonth()],Ot].join(" ")}function xt(Nt,Ot){return Object.prototype.hasOwnProperty.call(Nt,Ot)}o.log=function(){console.log("%s - %s",Bt(),o.format.apply(o,arguments))},o.inherits=et(108),o._extend=function(Nt,Ot){if(!Ot||!mt(Ot))return Nt;for(var Wt=Object.keys(Ot),Dt=Wt.length;Dt--;)Nt[Wt[Dt]]=Ot[Wt[Dt]];return Nt};var Ct=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;function kt(Nt,Ot){if(!Nt){var Wt=new Error("Promise was rejected with a falsy value");Wt.reason=Nt,Nt=Wt}return Ot(Nt)}o.promisify=function(Nt){if(typeof Nt!="function")throw new TypeError('The "original" argument must be of type Function');if(Ct&&Nt[Ct]){var Ot;if(typeof(Ot=Nt[Ct])!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(Ot,Ct,{value:Ot,enumerable:!1,writable:!1,configurable:!0}),Ot}function Ot(){for(var Wt,Dt,Et=new Promise(function(en,Kt){Wt=en,Dt=Kt}),Pt=[],zt=0;zt=0&&(ot._idleTimeoutId=setTimeout(function(){ot._onTimeout&&ot._onTimeout()},st))},et(141),o.setImmediate=typeof self<"u"&&self.setImmediate||tt!==void 0&&tt.setImmediate||this&&this.setImmediate,o.clearImmediate=typeof self<"u"&&self.clearImmediate||tt!==void 0&&tt.clearImmediate||this&&this.clearImmediate}).call(this,et(6))},function(s,o,et){(function(tt){tt===void 0||!tt.version||tt.version.indexOf("v0.")===0||tt.version.indexOf("v1.")===0&&tt.version.indexOf("v1.8.")!==0?s.exports={nextTick:function(nt,rt,it,ot){if(typeof nt!="function")throw new TypeError('"callback" argument must be a function');var st,at,lt=arguments.length;switch(lt){case 0:case 1:return tt.nextTick(nt);case 2:return tt.nextTick(function(){nt.call(null,rt)});case 3:return tt.nextTick(function(){nt.call(null,rt,it)});case 4:return tt.nextTick(function(){nt.call(null,rt,it,ot)});default:for(st=new Array(lt-1),at=0;at0&&arguments[0]!==void 0?arguments[0]:{};nt.call(this,{objectMode:!0,highWaterMark:st.highWaterMark}),this.format=st.format,this.level=st.level,this.handleExceptions=st.handleExceptions,this.handleRejections=st.handleRejections,this.silent=st.silent,st.log&&(this.log=st.log),st.logv&&(this.logv=st.logv),st.close&&(this.close=st.close),this.once("pipe",function(at){ot.levels=at.levels,ot.parent=at}),this.once("unpipe",function(at){at===ot.parent&&(ot.parent=null,ot.close&&ot.close())})};tt.inherits(it,nt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);var lt=this.level||this.parent&&this.parent.level;if(!lt||this.levels[lt]>=this.levels[ot[rt]]){if(ot&&!this.format)return this.log(ot,at);var ut=void 0,dt=void 0;try{dt=this.format.transform(Object.assign({},ot),this.format.options)}catch(ht){ut=ht}if(ut||!dt){if(at(),ut)throw ut;return}return this.log(dt,at)}return at(null)},it.prototype._writev=function(ot,st){if(this.logv){var at=ot.filter(this._accept,this);return at.length?this.logv(at,st):st(null)}for(var lt=0;lt=this.levels[st[rt]])||!this.handleExceptions&&st.exception===!0)},it.prototype._nop=function(){},s.exports.LegacyTransportStream=et(148)},function(s,o,et){var tt,nt=typeof Reflect=="object"?Reflect:null,rt=nt&&typeof nt.apply=="function"?nt.apply:function(ft,gt,yt){return Function.prototype.apply.call(ft,gt,yt)};tt=nt&&typeof nt.ownKeys=="function"?nt.ownKeys:Object.getOwnPropertySymbols?function(ft){return Object.getOwnPropertyNames(ft).concat(Object.getOwnPropertySymbols(ft))}:function(ft){return Object.getOwnPropertyNames(ft)};var it=Number.isNaN||function(ft){return ft!=ft};function ot(){ot.init.call(this)}s.exports=ot,ot.EventEmitter=ot,ot.prototype._events=void 0,ot.prototype._eventsCount=0,ot.prototype._maxListeners=void 0;var st=10;function at(ft){return ft._maxListeners===void 0?ot.defaultMaxListeners:ft._maxListeners}function lt(ft,gt,yt,Ut){var Ft,mt,vt,At;if(typeof yt!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof yt);if((mt=ft._events)===void 0?(mt=ft._events=Object.create(null),ft._eventsCount=0):(mt.newListener!==void 0&&(ft.emit("newListener",gt,yt.listener?yt.listener:yt),mt=ft._events),vt=mt[gt]),vt===void 0)vt=mt[gt]=yt,++ft._eventsCount;else if(typeof vt=="function"?vt=mt[gt]=Ut?[yt,vt]:[vt,yt]:Ut?vt.unshift(yt):vt.push(yt),(Ft=at(ft))>0&&vt.length>Ft&&!vt.warned){vt.warned=!0;var Lt=new Error("Possible EventEmitter memory leak detected. "+vt.length+" "+String(gt)+" listeners added. Use emitter.setMaxListeners() to increase limit");Lt.name="MaxListenersExceededWarning",Lt.emitter=ft,Lt.type=gt,Lt.count=vt.length,At=Lt,console&&console.warn&&console.warn(At)}return ft}function ut(){for(var ft=[],gt=0;gt0&&(mt=gt[0]),mt instanceof Error)throw mt;var vt=new Error("Unhandled error."+(mt?" ("+mt.message+")":""));throw vt.context=mt,vt}var At=Ft[ft];if(At===void 0)return!1;if(typeof At=="function")rt(At,this,gt);else{var Lt=At.length,Rt=pt(At,Lt);for(yt=0;yt=0;mt--)if(yt[mt]===gt||yt[mt].listener===gt){vt=yt[mt].listener,Ft=mt;break}if(Ft<0)return this;Ft===0?yt.shift():function(At,Lt){for(;Lt+1=0;Ut--)this.removeListener(ft,gt[Ut]);return this},ot.prototype.listeners=function(ft){return ht(this,ft,!0)},ot.prototype.rawListeners=function(ft){return ht(this,ft,!1)},ot.listenerCount=function(ft,gt){return typeof ft.listenerCount=="function"?ft.listenerCount(gt):ct.call(ft,gt)},ot.prototype.listenerCount=ct,ot.prototype.eventNames=function(){return this._eventsCount>0?tt(this._events):[]}},function(s,o,et){var tt=et(147).Buffer,nt=tt.isEncoding||function(ct){switch((ct=""+ct)&&ct.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function rt(ct){var pt;switch(this.encoding=function(ft){var gt=function(yt){if(!yt)return"utf8";for(var Ut;;)switch(yt){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return yt;default:if(Ut)return;yt=(""+yt).toLowerCase(),Ut=!0}}(ft);if(typeof gt!="string"&&(tt.isEncoding===nt||!nt(ft)))throw new Error("Unknown encoding: "+ft);return gt||ft}(ct),this.encoding){case"utf16le":this.text=st,this.end=at,pt=4;break;case"utf8":this.fillLast=ot,pt=4;break;case"base64":this.text=lt,this.end=ut,pt=3;break;default:return this.write=dt,void(this.end=ht)}this.lastNeed=0,this.lastTotal=0,this.lastChar=tt.allocUnsafe(pt)}function it(ct){return ct<=127?0:ct>>5==6?2:ct>>4==14?3:ct>>3==30?4:ct>>6==2?-1:-2}function ot(ct){var pt=this.lastTotal-this.lastNeed,ft=function(gt,yt,Ut){if((192&yt[0])!=128)return gt.lastNeed=0,"�";if(gt.lastNeed>1&&yt.length>1){if((192&yt[1])!=128)return gt.lastNeed=1,"�";if(gt.lastNeed>2&&yt.length>2&&(192&yt[2])!=128)return gt.lastNeed=2,"�"}}(this,ct);return ft!==void 0?ft:this.lastNeed<=ct.length?(ct.copy(this.lastChar,pt,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(ct.copy(this.lastChar,pt,0,ct.length),void(this.lastNeed-=ct.length))}function st(ct,pt){if((ct.length-pt)%2==0){var ft=ct.toString("utf16le",pt);if(ft){var gt=ft.charCodeAt(ft.length-1);if(gt>=55296&><=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1],ft.slice(0,-1)}return ft}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=ct[ct.length-1],ct.toString("utf16le",pt,ct.length-1)}function at(ct){var pt=ct&&ct.length?this.write(ct):"";if(this.lastNeed){var ft=this.lastTotal-this.lastNeed;return pt+this.lastChar.toString("utf16le",0,ft)}return pt}function lt(ct,pt){var ft=(ct.length-pt)%3;return ft===0?ct.toString("base64",pt):(this.lastNeed=3-ft,this.lastTotal=3,ft===1?this.lastChar[0]=ct[ct.length-1]:(this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1]),ct.toString("base64",pt,ct.length-ft))}function ut(ct){var pt=ct&&ct.length?this.write(ct):"";return this.lastNeed?pt+this.lastChar.toString("base64",0,3-this.lastNeed):pt}function dt(ct){return ct.toString(this.encoding)}function ht(ct){return ct&&ct.length?this.write(ct):""}o.StringDecoder=rt,rt.prototype.write=function(ct){if(ct.length===0)return"";var pt,ft;if(this.lastNeed){if((pt=this.fillLast(ct))===void 0)return"";ft=this.lastNeed,this.lastNeed=0}else ft=0;return ft=0?(vt>0&&(yt.lastNeed=vt-1),vt):--mt=0?(vt>0&&(yt.lastNeed=vt-2),vt):--mt=0?(vt>0&&(vt===2?vt=0:yt.lastNeed=vt-3),vt):0}(this,ct,pt);if(!this.lastNeed)return ct.toString("utf8",pt);this.lastTotal=ft;var gt=ct.length-(ft-this.lastNeed);return ct.copy(this.lastChar,0,gt),ct.toString("utf8",pt,gt)},rt.prototype.fillLast=function(ct){if(this.lastNeed<=ct.length)return ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,ct.length),this.lastNeed-=ct.length}},function(s,o,et){var tt=et(16),nt=Object.keys||function(ct){var pt=[];for(var ft in ct)pt.push(ft);return pt};s.exports=ut;var rt=et(17);rt.inherits=et(7);var it=et(69),ot=et(48);rt.inherits(ut,it);for(var st=nt(ot.prototype),at=0;at(Vn=Vn||0)&&(Vn=Math.max(Vn+Hn,0));Vnbn?1:0}e:{var Zt=lt.navigator;if(Zt){var jt=Zt.userAgent;if(jt){zt=jt;break e}}zt=""}var Vt="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function It(an){var bn=1;an=an.split(":");for(var Vn=[];0parseFloat(On)){Ht=String(hn);break e}}Ht=On}var wn,Zn={};function Pn(an){return function(bn,Vn){var zn=Zn;return Object.prototype.hasOwnProperty.call(zn,bn)?zn[bn]:zn[bn]=Vn(bn)}(an,function(){for(var bn=0,Vn=en(String(Ht)).split("."),zn=en(String(an)).split("."),Hn=Math.max(Vn.length,zn.length),ir=0;bn==0&&ir=an.keyCode)&&(an.keyCode=-1)}catch{}};var ro="closure_listenable_"+(1e6*Math.random()|0),Fo=0;function kn(an,bn,Vn,zn,Hn){this.listener=an,this.proxy=null,this.src=bn,this.type=Vn,this.capture=!!zn,this.A=Hn,this.key=++Fo,this.s=this.v=!1}function un(an){an.s=!0,an.listener=null,an.proxy=null,an.src=null,an.A=null}function pn(an){this.src=an,this.a={},this.b=0}function Qn(an,bn){var Vn=bn.type;if(Vn in an.a){var zn,Hn=an.a[Vn],ir=Pt(Hn,bn);(zn=0<=ir)&&Array.prototype.splice.call(Hn,ir,1),zn&&(un(bn),an.a[Vn].length==0&&(delete an.a[Vn],an.b--))}}function Wn(an,bn,Vn,zn){for(var Hn=0;HnVn.keyCode||Vn.returnValue!=null)){e:{var Hn=!1;if(Vn.keyCode==0)try{Vn.keyCode=-1;break e}catch{Hn=!0}(Hn||Vn.returnValue==null)&&(Vn.returnValue=!0)}for(Vn=[],Hn=bn.a;Hn;Hn=Hn.parentNode)Vn.push(Hn);for(an=an.type,Hn=Vn.length-1;0<=Hn;Hn--){bn.a=Vn[Hn];var ir=hr(Vn[Hn],an,!0,bn);zn=zn&&ir}for(Hn=0;Hn>>0);function er(an){return ht(an)=="function"?an:(an[Gn]||(an[Gn]=function(bn){return an.handleEvent(bn)}),an[Gn])}function cr(){Qr.call(this),this.f=new pn(this),this.N=this}function gr(an,bn){an=an.N;var Vn=bn.type||bn;if(typeof bn=="string")bn=new eo(bn,an);else if(bn instanceof eo)bn.target=bn.target||an;else{var zn=bn;(function(Hn,ir){for(var Yn,or,Mr=1;Mr=vr(this).value)for(ht(bn)=="function"&&(bn=bn()),an=new nr(an,String(bn),this.f),Vn&&(an.a=Vn),Vn=this;Vn;)Vn=Vn.a};var fr,zr={},Gr=null;function Pr(an,bn){an&&an.log(Rr,bn,void 0)}function oo(){}function ao(an){var bn;return(bn=an.a)||(bn={},To(an)&&(bn[0]=!0,bn[1]=!0),bn=an.a=bn),bn}function mo(){}function lo(an){return(an=To(an))?new ActiveXObject(an):new XMLHttpRequest}function To(an){if(!an.b&&typeof XMLHttpRequest>"u"&&typeof ActiveXObject<"u"){for(var bn=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],Vn=0;VnYn?null:typeof ir=="string"?ir.charAt(Yn):ir[Yn]}((Vn=new Jo(an.headers)).f()),Hn=lt.FormData&&bn instanceof lt.FormData;!(0<=Pt(bs,"POST"))||zn||Hn||Vn.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),Vn.forEach(function(ir,Yn){this.a.setRequestHeader(Yn,ir)},an),an.j&&(an.a.responseType=an.j),"withCredentials"in an.a&&an.a.withCredentials!==an.H&&(an.a.withCredentials=an.H);try{fs(an),0>4),co!=64&&(Yn(Hr<<4&240|co>>2),_i!=64&&Yn(co<<6&192|_i))}}(an,function(ir){zn[Hn++]=ir}),zn.subarray(0,Hn)}function vo(){if(!js){js={};for(var an="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),bn=["+/=","+/","-_=","-_.","-_"],Vn=0;5>Vn;Vn++){var zn=an.concat(bn[Vn].split(""));ks[Vn]=zn;for(var Hn=0;Hn=0&&(ot._idleTimeoutId=setTimeout(function(){ot._onTimeout&&ot._onTimeout()},st))},et(141),o.setImmediate=typeof self<"u"&&self.setImmediate||tt!==void 0&&tt.setImmediate||this&&this.setImmediate,o.clearImmediate=typeof self<"u"&&self.clearImmediate||tt!==void 0&&tt.clearImmediate||this&&this.clearImmediate}).call(this,et(6))},function(s,o,et){(function(tt){tt===void 0||!tt.version||tt.version.indexOf("v0.")===0||tt.version.indexOf("v1.")===0&&tt.version.indexOf("v1.8.")!==0?s.exports={nextTick:function(nt,rt,it,ot){if(typeof nt!="function")throw new TypeError('"callback" argument must be a function');var st,at,lt=arguments.length;switch(lt){case 0:case 1:return tt.nextTick(nt);case 2:return tt.nextTick(function(){nt.call(null,rt)});case 3:return tt.nextTick(function(){nt.call(null,rt,it)});case 4:return tt.nextTick(function(){nt.call(null,rt,it,ot)});default:for(st=new Array(lt-1),at=0;at0&&arguments[0]!==void 0?arguments[0]:{};nt.call(this,{objectMode:!0,highWaterMark:st.highWaterMark}),this.format=st.format,this.level=st.level,this.handleExceptions=st.handleExceptions,this.handleRejections=st.handleRejections,this.silent=st.silent,st.log&&(this.log=st.log),st.logv&&(this.logv=st.logv),st.close&&(this.close=st.close),this.once("pipe",function(at){ot.levels=at.levels,ot.parent=at}),this.once("unpipe",function(at){at===ot.parent&&(ot.parent=null,ot.close&&ot.close())})};tt.inherits(it,nt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);var lt=this.level||this.parent&&this.parent.level;if(!lt||this.levels[lt]>=this.levels[ot[rt]]){if(ot&&!this.format)return this.log(ot,at);var ut=void 0,dt=void 0;try{dt=this.format.transform(Object.assign({},ot),this.format.options)}catch(ht){ut=ht}if(ut||!dt){if(at(),ut)throw ut;return}return this.log(dt,at)}return at(null)},it.prototype._writev=function(ot,st){if(this.logv){var at=ot.filter(this._accept,this);return at.length?this.logv(at,st):st(null)}for(var lt=0;lt=this.levels[st[rt]])||!this.handleExceptions&&st.exception===!0)},it.prototype._nop=function(){},s.exports.LegacyTransportStream=et(148)},function(s,o,et){var tt,nt=typeof Reflect=="object"?Reflect:null,rt=nt&&typeof nt.apply=="function"?nt.apply:function(ft,gt,yt){return Function.prototype.apply.call(ft,gt,yt)};tt=nt&&typeof nt.ownKeys=="function"?nt.ownKeys:Object.getOwnPropertySymbols?function(ft){return Object.getOwnPropertyNames(ft).concat(Object.getOwnPropertySymbols(ft))}:function(ft){return Object.getOwnPropertyNames(ft)};var it=Number.isNaN||function(ft){return ft!=ft};function ot(){ot.init.call(this)}s.exports=ot,ot.EventEmitter=ot,ot.prototype._events=void 0,ot.prototype._eventsCount=0,ot.prototype._maxListeners=void 0;var st=10;function at(ft){return ft._maxListeners===void 0?ot.defaultMaxListeners:ft._maxListeners}function lt(ft,gt,yt,Ut){var Ft,mt,vt,At;if(typeof yt!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof yt);if((mt=ft._events)===void 0?(mt=ft._events=Object.create(null),ft._eventsCount=0):(mt.newListener!==void 0&&(ft.emit("newListener",gt,yt.listener?yt.listener:yt),mt=ft._events),vt=mt[gt]),vt===void 0)vt=mt[gt]=yt,++ft._eventsCount;else if(typeof vt=="function"?vt=mt[gt]=Ut?[yt,vt]:[vt,yt]:Ut?vt.unshift(yt):vt.push(yt),(Ft=at(ft))>0&&vt.length>Ft&&!vt.warned){vt.warned=!0;var Lt=new Error("Possible EventEmitter memory leak detected. "+vt.length+" "+String(gt)+" listeners added. Use emitter.setMaxListeners() to increase limit");Lt.name="MaxListenersExceededWarning",Lt.emitter=ft,Lt.type=gt,Lt.count=vt.length,At=Lt,console&&console.warn&&console.warn(At)}return ft}function ut(){for(var ft=[],gt=0;gt0&&(mt=gt[0]),mt instanceof Error)throw mt;var vt=new Error("Unhandled error."+(mt?" ("+mt.message+")":""));throw vt.context=mt,vt}var At=Ft[ft];if(At===void 0)return!1;if(typeof At=="function")rt(At,this,gt);else{var Lt=At.length,Rt=pt(At,Lt);for(yt=0;yt=0;mt--)if(yt[mt]===gt||yt[mt].listener===gt){vt=yt[mt].listener,Ft=mt;break}if(Ft<0)return this;Ft===0?yt.shift():function(At,Lt){for(;Lt+1=0;Ut--)this.removeListener(ft,gt[Ut]);return this},ot.prototype.listeners=function(ft){return ht(this,ft,!0)},ot.prototype.rawListeners=function(ft){return ht(this,ft,!1)},ot.listenerCount=function(ft,gt){return typeof ft.listenerCount=="function"?ft.listenerCount(gt):ct.call(ft,gt)},ot.prototype.listenerCount=ct,ot.prototype.eventNames=function(){return this._eventsCount>0?tt(this._events):[]}},function(s,o,et){var tt=et(147).Buffer,nt=tt.isEncoding||function(ct){switch((ct=""+ct)&&ct.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function rt(ct){var pt;switch(this.encoding=function(ft){var gt=function(yt){if(!yt)return"utf8";for(var Ut;;)switch(yt){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return yt;default:if(Ut)return;yt=(""+yt).toLowerCase(),Ut=!0}}(ft);if(typeof gt!="string"&&(tt.isEncoding===nt||!nt(ft)))throw new Error("Unknown encoding: "+ft);return gt||ft}(ct),this.encoding){case"utf16le":this.text=st,this.end=at,pt=4;break;case"utf8":this.fillLast=ot,pt=4;break;case"base64":this.text=lt,this.end=ut,pt=3;break;default:return this.write=dt,void(this.end=ht)}this.lastNeed=0,this.lastTotal=0,this.lastChar=tt.allocUnsafe(pt)}function it(ct){return ct<=127?0:ct>>5==6?2:ct>>4==14?3:ct>>3==30?4:ct>>6==2?-1:-2}function ot(ct){var pt=this.lastTotal-this.lastNeed,ft=function(gt,yt,Ut){if((192&yt[0])!=128)return gt.lastNeed=0,"�";if(gt.lastNeed>1&&yt.length>1){if((192&yt[1])!=128)return gt.lastNeed=1,"�";if(gt.lastNeed>2&&yt.length>2&&(192&yt[2])!=128)return gt.lastNeed=2,"�"}}(this,ct);return ft!==void 0?ft:this.lastNeed<=ct.length?(ct.copy(this.lastChar,pt,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(ct.copy(this.lastChar,pt,0,ct.length),void(this.lastNeed-=ct.length))}function st(ct,pt){if((ct.length-pt)%2==0){var ft=ct.toString("utf16le",pt);if(ft){var gt=ft.charCodeAt(ft.length-1);if(gt>=55296&><=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1],ft.slice(0,-1)}return ft}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=ct[ct.length-1],ct.toString("utf16le",pt,ct.length-1)}function at(ct){var pt=ct&&ct.length?this.write(ct):"";if(this.lastNeed){var ft=this.lastTotal-this.lastNeed;return pt+this.lastChar.toString("utf16le",0,ft)}return pt}function lt(ct,pt){var ft=(ct.length-pt)%3;return ft===0?ct.toString("base64",pt):(this.lastNeed=3-ft,this.lastTotal=3,ft===1?this.lastChar[0]=ct[ct.length-1]:(this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1]),ct.toString("base64",pt,ct.length-ft))}function ut(ct){var pt=ct&&ct.length?this.write(ct):"";return this.lastNeed?pt+this.lastChar.toString("base64",0,3-this.lastNeed):pt}function dt(ct){return ct.toString(this.encoding)}function ht(ct){return ct&&ct.length?this.write(ct):""}o.StringDecoder=rt,rt.prototype.write=function(ct){if(ct.length===0)return"";var pt,ft;if(this.lastNeed){if((pt=this.fillLast(ct))===void 0)return"";ft=this.lastNeed,this.lastNeed=0}else ft=0;return ft=0?(vt>0&&(yt.lastNeed=vt-1),vt):--mt=0?(vt>0&&(yt.lastNeed=vt-2),vt):--mt=0?(vt>0&&(vt===2?vt=0:yt.lastNeed=vt-3),vt):0}(this,ct,pt);if(!this.lastNeed)return ct.toString("utf8",pt);this.lastTotal=ft;var gt=ct.length-(ft-this.lastNeed);return ct.copy(this.lastChar,0,gt),ct.toString("utf8",pt,gt)},rt.prototype.fillLast=function(ct){if(this.lastNeed<=ct.length)return ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,ct.length),this.lastNeed-=ct.length}},function(s,o,et){var tt=et(16),nt=Object.keys||function(ct){var pt=[];for(var ft in ct)pt.push(ft);return pt};s.exports=ut;var rt=et(17);rt.inherits=et(7);var it=et(69),ot=et(48);rt.inherits(ut,it);for(var st=nt(ot.prototype),at=0;at(Vn=Vn||0)&&(Vn=Math.max(Vn+Hn,0));Vnbn?1:0}e:{var Zt=lt.navigator;if(Zt){var jt=Zt.userAgent;if(jt){zt=jt;break e}}zt=""}var Vt="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function It(an){var bn=1;an=an.split(":");for(var Vn=[];0parseFloat(On)){Ht=String(hn);break e}}Ht=On}var wn,Zn={};function Pn(an){return function(bn,Vn){var zn=Zn;return Object.prototype.hasOwnProperty.call(zn,bn)?zn[bn]:zn[bn]=Vn(bn)}(an,function(){for(var bn=0,Vn=en(String(Ht)).split("."),zn=en(String(an)).split("."),Hn=Math.max(Vn.length,zn.length),ir=0;bn==0&&ir=an.keyCode)&&(an.keyCode=-1)}catch{}};var ro="closure_listenable_"+(1e6*Math.random()|0),Fo=0;function kn(an,bn,Vn,zn,Hn){this.listener=an,this.proxy=null,this.src=bn,this.type=Vn,this.capture=!!zn,this.A=Hn,this.key=++Fo,this.s=this.v=!1}function un(an){an.s=!0,an.listener=null,an.proxy=null,an.src=null,an.A=null}function pn(an){this.src=an,this.a={},this.b=0}function Qn(an,bn){var Vn=bn.type;if(Vn in an.a){var zn,Hn=an.a[Vn],ir=Pt(Hn,bn);(zn=0<=ir)&&Array.prototype.splice.call(Hn,ir,1),zn&&(un(bn),an.a[Vn].length==0&&(delete an.a[Vn],an.b--))}}function Jn(an,bn,Vn,zn){for(var Hn=0;HnVn.keyCode||Vn.returnValue!=null)){e:{var Hn=!1;if(Vn.keyCode==0)try{Vn.keyCode=-1;break e}catch{Hn=!0}(Hn||Vn.returnValue==null)&&(Vn.returnValue=!0)}for(Vn=[],Hn=bn.a;Hn;Hn=Hn.parentNode)Vn.push(Hn);for(an=an.type,Hn=Vn.length-1;0<=Hn;Hn--){bn.a=Vn[Hn];var ir=hr(Vn[Hn],an,!0,bn);zn=zn&&ir}for(Hn=0;Hn>>0);function er(an){return ht(an)=="function"?an:(an[Gn]||(an[Gn]=function(bn){return an.handleEvent(bn)}),an[Gn])}function cr(){Qr.call(this),this.f=new pn(this),this.N=this}function gr(an,bn){an=an.N;var Vn=bn.type||bn;if(typeof bn=="string")bn=new eo(bn,an);else if(bn instanceof eo)bn.target=bn.target||an;else{var zn=bn;(function(Hn,ir){for(var Yn,or,Mr=1;Mr=vr(this).value)for(ht(bn)=="function"&&(bn=bn()),an=new nr(an,String(bn),this.f),Vn&&(an.a=Vn),Vn=this;Vn;)Vn=Vn.a};var fr,zr={},Gr=null;function Pr(an,bn){an&&an.log(Rr,bn,void 0)}function oo(){}function ao(an){var bn;return(bn=an.a)||(bn={},To(an)&&(bn[0]=!0,bn[1]=!0),bn=an.a=bn),bn}function mo(){}function lo(an){return(an=To(an))?new ActiveXObject(an):new XMLHttpRequest}function To(an){if(!an.b&&typeof XMLHttpRequest>"u"&&typeof ActiveXObject<"u"){for(var bn=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],Vn=0;VnYn?null:typeof ir=="string"?ir.charAt(Yn):ir[Yn]}((Vn=new Wo(an.headers)).f()),Hn=lt.FormData&&bn instanceof lt.FormData;!(0<=Pt(bs,"POST"))||zn||Hn||Vn.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),Vn.forEach(function(ir,Yn){this.a.setRequestHeader(Yn,ir)},an),an.j&&(an.a.responseType=an.j),"withCredentials"in an.a&&an.a.withCredentials!==an.H&&(an.a.withCredentials=an.H);try{fs(an),0>4),co!=64&&(Yn(Hr<<4&240|co>>2),_i!=64&&Yn(co<<6&192|_i))}}(an,function(ir){zn[Hn++]=ir}),zn.subarray(0,Hn)}function vo(){if(!js){js={};for(var an="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),bn=["+/=","+/","-_=","-_.","-_"],Vn=0;5>Vn;Vn++){var zn=an.concat(bn[Vn].split(""));ks[Vn]=zn;for(var Hn=0;Hn2*or.c&&Go(or)),1/0===Yn&&(Yn=0),0(Yn=Hn.indexOf("#"))&&(Yn=Hn.length),0>(or=Hn.indexOf("?"))||or>Yn?(or=Yn,Mr=""):Mr=Hn.substring(or+1,Yn),Yn=(Hn=[Hn.substr(0,or),Mr,Hn.substr(Yn)])[1],Hn[1]=Hr?Yn?Yn+"&"+Hr:Hr:Yn,Hn=Hn[0]+(Hn[1]?"?"+Hn[1]:"")+Hn[2])):Hn.a("$httpHeaders",Yn))}for(zn=(bn=(0,zn.a)(bn.getRequestMessage())).length,Hr=[0,0,0,0],Yn=new Uint8Array(5+zn),or=3;0<=or;or--)Hr[or]=zn%256,zn>>>=8;if(Yn.set(new Uint8Array(Hr),1),Yn.set(bn,5),bn=Yn,an.a=="text"){var co;for(an=bn,co===void 0&&(co=0),vo(),co=ks[co],bn=[],zn=0;zn>2,Jr=(3&Jr)<<4|_i>>4,_i=(15&_i)<<2|(Mr=(Yn=zn+2>6,Mr&=63,Yn||(Mr=64,Hr||(_i=64)),bn.push(co[or],co[Jr],co[_i]||"",co[Mr]||"")}bn=bn.join("")}else an.a=="binary"&&(Vn.j="arraybuffer");return Lo(Vn,Hn,bn),ir}function Vr(an,bn,Vn){var zn=null,Hn=!1;an.on("data",function(ir){zn=ir}),an.on("error",function(ir){ir.code==0||Hn||(Hn=!0,bn(ir,null))}),an.on("status",function(ir){ir.code==0||Hn?Vn&&bn(null,null,ir):(Hn=!0,bn({code:ir.code,message:ir.details,metadata:ir.metadata},null))}),Vn&&an.on("metadata",function(ir){bn(null,null,null,ir)}),an.on("end",function(){Hn||(zn==null?bn({code:2,message:"Incomplete response"}):bn(null,zn)),Vn&&bn(null,null)})}function Cr(an,bn){var Vn=an;return bn.forEach(function(zn){var Hn=Vn;Vn=function(ir){return zn.intercept(ir,Hn)}}),Vn}Tn.prototype.on=function(an,bn){return an=="data"?this.b.push(bn):an=="status"?this.h.push(bn):an=="metadata"?this.g.push(bn):an=="end"?this.c.push(bn):an=="error"&&this.f.push(bn),this},Tn.prototype.removeListener=function(an,bn){return an=="data"?En(this.b,bn):an=="status"?En(this.h,bn):an=="metadata"?En(this.g,bn):an=="end"?En(this.c,bn):an=="error"&&En(this.f,bn),this},Tn.prototype.cancel=function(){this.j=!0,this.a.abort()},Tn.prototype.cancel=Tn.prototype.cancel,Tn.prototype.removeListener=Tn.prototype.removeListener,Tn.prototype.on=Tn.prototype.on,Mn.prototype.P=function(an,bn,Vn,zn,Hn){var ir=this;zn=Lt(an,bn,"unary",zn);var Yn=an.substr(0,an.length-zn.name.length);return Vr(an=Cr(function(or){return Jn(ir,or,Yn)},this.b).call(this,At(zn,bn,Vn)),Hn,!1),new Rt(an)},Mn.prototype.M=function(an,bn,Vn,zn){var Hn=this;zn=Lt(an,bn,"unary",zn);var ir=an.substr(0,an.length-zn.name.length);return Cr(function(Yn){return new Promise(function(or,Mr){var Jr,Hr,co;Vr(Jn(Hn,Yn,ir),function(_i,sn,vn,In){_i?Mr(_i):sn?co=sn:vn?Hr=vn:In?Jr=In:(_i=Yn.getMethodDescriptor(),or(new mt(co,_i,sn=(sn=Jr)===void 0?{}:sn,Hr===void 0?null:Hr)))},!0)})},this.g).call(this,At(zn,bn,Vn)).then(function(Yn){return Yn.getResponseMessage()})},Mn.prototype.unaryCall=function(an,bn,Vn,zn){return this.M(an,bn,Vn,zn)},Mn.prototype.R=function(an,bn,Vn,zn){var Hn=this;zn=Lt(an,bn,"server_streaming",zn);var ir=an.substr(0,an.length-zn.name.length);return Cr(function(Yn){return Jn(Hn,Yn,ir)},this.b).call(this,At(zn,bn,Vn))},Mn.prototype.serverStreaming=Mn.prototype.R,Mn.prototype.unaryCall=Mn.prototype.unaryCall,Mn.prototype.thenableCall=Mn.prototype.M,Mn.prototype.rpcCall=Mn.prototype.P,s.exports.AbstractClientBase={MethodInfo:function(an,bn,Vn,zn,Hn){this.name=zn,this.b=Hn,this.f=an,this.a=bn,this.c=Vn}},s.exports.GrpcWebClientBase=Mn,s.exports.StatusCode={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,UNAUTHENTICATED:16,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15},s.exports.MethodDescriptor=vt,s.exports.MethodType={UNARY:"unary",SERVER_STREAMING:"server_streaming"}}).call(this,et(6))},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.isAsyncIterable=o.isAsyncGenerator=o.isAsync=void 0;var tt,nt=et(152),rt=(tt=nt)&&tt.__esModule?tt:{default:tt};function it(ot){return ot[Symbol.toStringTag]==="AsyncFunction"}o.default=function(ot){if(typeof ot!="function")throw new Error("expected a function");return it(ot)?(0,rt.default)(ot):ot},o.isAsync=it,o.isAsyncGenerator=function(ot){return ot[Symbol.toStringTag]==="AsyncGenerator"},o.isAsyncIterable=function(ot){return typeof ot[Symbol.asyncIterator]=="function"}},function(s,o,et){var tt={};function nt(it,ot,st){st||(st=Error);var at=function(lt){var ut,dt;function ht(ct,pt,ft){return lt.call(this,function(gt,yt,Ut){return typeof ot=="string"?ot:ot(gt,yt,Ut)}(ct,pt,ft))||this}return dt=lt,(ut=ht).prototype=Object.create(dt.prototype),ut.prototype.constructor=ut,ut.__proto__=dt,ht}(st);at.prototype.name=st.name,at.prototype.code=it,tt[it]=at}function rt(it,ot){if(Array.isArray(it)){var st=it.length;return it=it.map(function(at){return String(at)}),st>2?"one of ".concat(ot," ").concat(it.slice(0,st-1).join(", "),", or ")+it[st-1]:st===2?"one of ".concat(ot," ").concat(it[0]," or ").concat(it[1]):"of ".concat(ot," ").concat(it[0])}return"of ".concat(ot," ").concat(String(it))}nt("ERR_INVALID_OPT_VALUE",function(it,ot){return'The value "'+ot+'" is invalid for option "'+it+'"'},TypeError),nt("ERR_INVALID_ARG_TYPE",function(it,ot,st){var at,lt,ut;if(typeof ot=="string"&&(lt="not ",ot.substr(0,lt.length)===lt)?(at="must not be",ot=ot.replace(/^not /,"")):at="must be",function(ht,ct,pt){return(pt===void 0||pt>ht.length)&&(pt=ht.length),ht.substring(pt-ct.length,pt)===ct}(it," argument"))ut="The ".concat(it," ").concat(at," ").concat(rt(ot,"type"));else{var dt=function(ht,ct,pt){return typeof pt!="number"&&(pt=0),!(pt+ct.length>ht.length)&&ht.indexOf(ct,pt)!==-1}(it,".")?"property":"argument";ut='The "'.concat(it,'" ').concat(dt," ").concat(at," ").concat(rt(ot,"type"))}return ut+=". Received type ".concat(typeof st)},TypeError),nt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),nt("ERR_METHOD_NOT_IMPLEMENTED",function(it){return"The "+it+" method is not implemented"}),nt("ERR_STREAM_PREMATURE_CLOSE","Premature close"),nt("ERR_STREAM_DESTROYED",function(it){return"Cannot call "+it+" after a stream was destroyed"}),nt("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),nt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),nt("ERR_STREAM_WRITE_AFTER_END","write after end"),nt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),nt("ERR_UNKNOWN_ENCODING",function(it){return"Unknown encoding: "+it},TypeError),nt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),s.exports.codes=tt},function(s,o,et){(function(tt){var nt=Object.keys||function(ht){var ct=[];for(var pt in ht)ct.push(pt);return ct};s.exports=lt;var rt=et(77),it=et(81);et(7)(lt,rt);for(var ot=nt(it.prototype),st=0;st`${lt.get("app-id")}`.startsWith("formant/")?{}:rt},at)),this.endpoint=st}getHeaders(){return Object.assign(Object.assign({},it.headers),{"App-ID":`formant/${nt.a}`,"App-Version":nt.j})}}it.headers={}},function(s,o,et){et(227),s.exports={encode:tt=>new TextEncoder().encode(tt),decode:tt=>new TextDecoder().decode(tt)}},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt,nt=tt.length){if(!nt)throw new Error("arity is undefined");return function(...rt){return typeof rt[nt-1]=="function"?tt.apply(this,rt):new Promise((it,ot)=>{rt[nt-1]=(st,...at)=>{if(st)return ot(st);it(at.length>1?at:at[0])},tt.apply(this,rt)})}},s.exports=o.default},function(s,o,et){(o=s.exports=et(69)).Stream=o,o.Readable=o,o.Writable=et(48),o.Duplex=et(23),o.Transform=et(72),o.PassThrough=et(165)},function(s,o,et){(o=s.exports=et(77)).Stream=o,o.Readable=o,o.Writable=et(81),o.Duplex=et(27),o.Transform=et(82),o.PassThrough=et(184),o.finished=et(49),o.pipeline=et(185)},function(s,o,et){s.exports=function(tt){return tt}},function(s,o,et){et.d(o,"a",function(){return nt});const tt=["password","secret","token","key","buffer"];function nt(rt,it=new Set){return it.has(rt)?"[ RECURSIVE ]":!(ot=rt)||typeof ot!="object"&&typeof ot!="function"?rt:(it.add(rt),Object.keys(rt).reduce((st,at)=>(st[at]=tt.some(lt=>at.toLowerCase().includes(lt.toLowerCase()))?"[ REDACTED ]":nt(rt[at],it),st),{}));var ot}},function(s,o){s.exports=tt,tt.default=tt,tt.stable=rt,tt.stableStringify=rt;var et=[];function tt(it,ot,st){(function ut(dt,ht,ct,pt){var ft;if(typeof dt=="object"&&dt!==null){for(ft=0;ftot?1:0}function rt(it,ot,st){for(var at=function dt(ht,ct,pt,ft){var gt;if(typeof ht=="object"&&ht!==null){for(gt=0;gtFt.validateHeaders?Ft.validateHeaders(mt):{},this.verbose=Ft.verbose!==!1,Ft.retries!==void 0&&!(Ft.retries>=0))throw new Error("retries must be positive or zero");if(this.configuredRetries=Ft.retries,Ft.timeoutMs!==void 0&&!(Ft.timeoutMs>0))throw new Error("timeoutMs must be positive");if(this.timeoutMs=Ft.timeoutMs,Ft.maxBackoffDelayMs!==void 0&&!(Ft.maxBackoffDelayMs>0))throw new Error("maxBackoffDelayMs must be positive");this.maxBackoffDelayMs=Ft.maxBackoffDelayMs||30*tt.a.second}getRetries(){return this.configuredRetries!==void 0?this.configuredRetries:this.getConstructor().retries}getHeaders(){return{}}fetch(Ut,Ft={}){return ct(this,void 0,void 0,function*(){return(yield this.fetchVerbose(Ut,Ft)).body})}fetchVerbose(Ut,Ft={}){return ct(this,void 0,void 0,function*(){let mt=100*tt.a.millisecond,vt=0;const At=this.timeoutMs!==void 0?new Date().getTime()+this.timeoutMs:void 0,Lt=At?()=>Math.max(At-new Date().getTime(),0):void 0;for(;;)try{return yield this.doFetch(Ut,Ft,Lt)}catch(Rt){const St=Object(ut.a)(Rt,st);if(Lt?.()===0||vt===this.getRetries()||!St.retryable)throw St;vt++,mt=Math.min(...Lt?[Lt()]:[],mt*(2+.1*(Math.random()-.5)),this.maxBackoffDelayMs),yield Object(at.a)(mt),this.verbose&<.a.warn(`Connection failure, retrying. Error: ${Rt.cause.message}`,{url:Rt.url,error:Rt.cause,attempt:vt})}})}doFetch(Ut,Ft,mt){return ct(this,void 0,void 0,function*(){const{token:vt,json:At,allowUnsafeRetries:Lt}=Ft,Rt=pt(Ft,["token","json","allowUnsafeRetries"]),St=(Rt.method||"GET").toUpperCase(),Tt=this.endpoint!==void 0?`${this.endpoint}${Ut?`/${Ut}`:""}`:Ut,Bt=new rt.a;let xt;if(mt){const Ct=mt();Ct>0?xt=setTimeout(()=>{Bt.abort()},Ct):Bt.abort()}try{let Ct;yield Promise.race([this.getConstructor().waitForConnectivity(),new Promise(Pt=>{Ct=setTimeout(Pt,mt?Math.min(tt.a.minute,mt()):tt.a.minute)})]),Ct&&clearTimeout(Ct);const kt=yield ot()(Tt,Object.assign(Object.assign({},Rt),{headers:Object.assign(Object.assign(Object.assign(Object.assign({},At!==!1?{"Content-Type":"application/json"}:{}),this.getHeaders()),Rt.headers||{}),vt!==void 0?{Authorization:`Bearer ${vt}`}:{}),signal:Bt.signal})),Nt=kt.headers.get("content-type")||"",Ot=Nt&&Nt.startsWith("application/json"),Wt=Ot?yield kt.json():yield kt.text(),Dt=()=>new dt.a(St,Tt,kt.status,Wt,Wt&&Wt.validationErrors||{},kt.headers);if(!kt.ok)throw this.verbose&<.a[kt.status>=500?"warn":"info"]("Response error",{method:St,url:Tt,statusCode:kt.status}),Dt();const Et=this.validateHeaders(kt.headers);if(Object.keys(Et).length!==0)throw new ht(Et,Dt());if(kt.status===204)return{body:void 0,headers:kt.headers};if(At&&!Ot)throw new Error(`Response is not JSON: ${JSON.stringify(Wt)}`);return{body:Wt,headers:kt.headers}}catch(Ct){const kt=Lt||ft.has(St);if(Ct.message==="Network request failed")throw new st(Ct,Tt,kt);if(Ct.type==="system"&&["EAI_AGAIN","ECONNREFUSED","EHOSTUNREACH","ENOTFOUND"].find(Dt=>Dt===Ct.code))throw new st(Ct,Tt,!0);if(Ct.type==="system"&&["ETIMEDOUT","ECONNRESET","ESOCKETTIMEDOUT","EPIPE"].find(Dt=>Dt===Ct.code))throw new st(Ct,Tt,kt);if(Ct.name==="AbortError")throw new st(Ct,Tt,kt);const Nt=Object(ut.a)(Ct,dt.a),{statusCode:Ot}=Nt;if(Ot===408||Ot===429||Ot===502||Ot===503||Ot===504)throw this.verbose&&!kt&<.a.warn("Potentially unsafe retry"),new st(Ct,Tt,!0);const Wt=this.validateHeaders(Nt.headers);throw Object.keys(Wt).length!==0?new ht(Wt,Nt):(yield this.getConstructor().onResponseError(Nt),Ct)}finally{xt&&clearTimeout(xt)}})}getConstructor(){return Object.getPrototypeOf(this).constructor}}gt.retries=8,gt.waitForConnectivity=()=>ct(void 0,void 0,void 0,function*(){}),gt.onResponseError=()=>ct(void 0,void 0,void 0,function*(){})},function(s,o,et){function tt(ut,dt){if(!(ut instanceof dt))throw new TypeError("Cannot call a class as a function")}function nt(ut,dt){for(var ht=0;ht0&&arguments[0]!==void 0?arguments[0]:{};tt(this,ut),pt.colors&&this.addColors(pt.colors),this.options=pt}var dt,ht,ct;return dt=ut,ct=[{key:"addColors",value:function(pt){var ft=Object.keys(pt).reduce(function(gt,yt){return gt[yt]=at.test(pt[yt])?pt[yt].split(at):pt[yt],gt},{});return ut.allColors=Object.assign({},ut.allColors||{},ft),ut.allColors}}],(ht=[{key:"addColors",value:function(pt){return ut.addColors(pt)}},{key:"colorize",value:function(pt,ft,gt){if(gt===void 0&&(gt=ft),!Array.isArray(ut.allColors[pt]))return rt[ut.allColors[pt]](gt);for(var yt=0,Ut=ut.allColors[pt].length;yt=0&&tt.length%1==0},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default={},s.exports=o.default},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){(function(tt,nt,rt){var it=et(16);function ot(St){var Tt=this;this.next=null,this.entry=null,this.finish=function(){(function(Bt,xt,Ct){var kt=Bt.entry;for(Bt.entry=null;kt;){var Nt=kt.callback;xt.pendingcb--,Nt(Ct),kt=kt.next}xt.corkedRequestsFree?xt.corkedRequestsFree.next=Bt:xt.corkedRequestsFree=Bt})(Tt,St)}}s.exports=Ut;var st,at=!tt.browser&&["v0.10","v0.9."].indexOf(tt.version.slice(0,5))>-1?nt:it.nextTick;Ut.WritableState=yt;var lt=et(17);lt.inherits=et(7);var ut={deprecate:et(43)},dt=et(70),ht=et(47).Buffer,ct=rt.Uint8Array||function(){},pt,ft=et(71);function gt(){}function yt(St,Tt){st=st||et(23),St=St||{};var Bt=Tt instanceof st;this.objectMode=!!St.objectMode,Bt&&(this.objectMode=this.objectMode||!!St.writableObjectMode);var xt=St.highWaterMark,Ct=St.writableHighWaterMark,kt=this.objectMode?16:16384;this.highWaterMark=xt||xt===0?xt:Bt&&(Ct||Ct===0)?Ct:kt,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Nt=St.decodeStrings===!1;this.decodeStrings=!Nt,this.defaultEncoding=St.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Ot){(function(Wt,Dt){var Et=Wt._writableState,Pt=Et.sync,zt=Et.writecb;if(function(Kt){Kt.writing=!1,Kt.writecb=null,Kt.length-=Kt.writelen,Kt.writelen=0}(Et),Dt)(function(Kt,nn,Zt,jt,Vt){--nn.pendingcb,Zt?(it.nextTick(Vt,jt),it.nextTick(Rt,Kt,nn),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt)):(Vt(jt),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt),Rt(Kt,nn))})(Wt,Et,Pt,Dt,zt);else{var en=At(Et);en||Et.corked||Et.bufferProcessing||!Et.bufferedRequest||vt(Wt,Et),Pt?at(mt,Wt,Et,en,zt):mt(Wt,Et,en,zt)}})(Tt,Ot)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new ot(this)}function Ut(St){if(st=st||et(23),!(pt.call(Ut,this)||this instanceof st))return new Ut(St);this._writableState=new yt(St,this),this.writable=!0,St&&(typeof St.write=="function"&&(this._write=St.write),typeof St.writev=="function"&&(this._writev=St.writev),typeof St.destroy=="function"&&(this._destroy=St.destroy),typeof St.final=="function"&&(this._final=St.final)),dt.call(this)}function Ft(St,Tt,Bt,xt,Ct,kt,Nt){Tt.writelen=xt,Tt.writecb=Nt,Tt.writing=!0,Tt.sync=!0,Bt?St._writev(Ct,Tt.onwrite):St._write(Ct,kt,Tt.onwrite),Tt.sync=!1}function mt(St,Tt,Bt,xt){Bt||function(Ct,kt){kt.length===0&&kt.needDrain&&(kt.needDrain=!1,Ct.emit("drain"))}(St,Tt),Tt.pendingcb--,xt(),Rt(St,Tt)}function vt(St,Tt){Tt.bufferProcessing=!0;var Bt=Tt.bufferedRequest;if(St._writev&&Bt&&Bt.next){var xt=Tt.bufferedRequestCount,Ct=new Array(xt),kt=Tt.corkedRequestsFree;kt.entry=Bt;for(var Nt=0,Ot=!0;Bt;)Ct[Nt]=Bt,Bt.isBuf||(Ot=!1),Bt=Bt.next,Nt+=1;Ct.allBuffers=Ot,Ft(St,Tt,!0,Tt.length,Ct,"",kt.finish),Tt.pendingcb++,Tt.lastBufferedRequest=null,kt.next?(Tt.corkedRequestsFree=kt.next,kt.next=null):Tt.corkedRequestsFree=new ot(Tt),Tt.bufferedRequestCount=0}else{for(;Bt;){var Wt=Bt.chunk,Dt=Bt.encoding,Et=Bt.callback;if(Ft(St,Tt,!1,Tt.objectMode?1:Wt.length,Wt,Dt,Et),Bt=Bt.next,Tt.bufferedRequestCount--,Tt.writing)break}Bt===null&&(Tt.lastBufferedRequest=null)}Tt.bufferedRequest=Bt,Tt.bufferProcessing=!1}function At(St){return St.ending&&St.length===0&&St.bufferedRequest===null&&!St.finished&&!St.writing}function Lt(St,Tt){St._final(function(Bt){Tt.pendingcb--,Bt&&St.emit("error",Bt),Tt.prefinished=!0,St.emit("prefinish"),Rt(St,Tt)})}function Rt(St,Tt){var Bt=At(Tt);return Bt&&(function(xt,Ct){Ct.prefinished||Ct.finalCalled||(typeof xt._final=="function"?(Ct.pendingcb++,Ct.finalCalled=!0,it.nextTick(Lt,xt,Ct)):(Ct.prefinished=!0,xt.emit("prefinish")))}(St,Tt),Tt.pendingcb===0&&(Tt.finished=!0,St.emit("finish"))),Bt}lt.inherits(Ut,dt),yt.prototype.getBuffer=function(){for(var St=this.bufferedRequest,Tt=[];St;)Tt.push(St),St=St.next;return Tt},function(){try{Object.defineProperty(yt.prototype,"buffer",{get:ut.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(pt=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ut,Symbol.hasInstance,{value:function(St){return!!pt.call(this,St)||this===Ut&&St&&St._writableState instanceof yt}})):pt=function(St){return St instanceof this},Ut.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Ut.prototype.write=function(St,Tt,Bt){var xt,Ct=this._writableState,kt=!1,Nt=!Ct.objectMode&&(xt=St,ht.isBuffer(xt)||xt instanceof ct);return Nt&&!ht.isBuffer(St)&&(St=function(Ot){return ht.from(Ot)}(St)),typeof Tt=="function"&&(Bt=Tt,Tt=null),Nt?Tt="buffer":Tt||(Tt=Ct.defaultEncoding),typeof Bt!="function"&&(Bt=gt),Ct.ended?function(Ot,Wt){var Dt=new Error("write after end");Ot.emit("error",Dt),it.nextTick(Wt,Dt)}(this,Bt):(Nt||function(Ot,Wt,Dt,Et){var Pt=!0,zt=!1;return Dt===null?zt=new TypeError("May not write null values to stream"):typeof Dt=="string"||Dt===void 0||Wt.objectMode||(zt=new TypeError("Invalid non-string/buffer chunk")),zt&&(Ot.emit("error",zt),it.nextTick(Et,zt),Pt=!1),Pt}(this,Ct,St,Bt))&&(Ct.pendingcb++,kt=function(Ot,Wt,Dt,Et,Pt,zt){if(!Dt){var en=function(jt,Vt,It){return jt.objectMode||jt.decodeStrings===!1||typeof Vt!="string"||(Vt=ht.from(Vt,It)),Vt}(Wt,Et,Pt);Et!==en&&(Dt=!0,Pt="buffer",Et=en)}var Kt=Wt.objectMode?1:Et.length;Wt.length+=Kt;var nn=Wt.length-1))throw new TypeError("Unknown encoding: "+St);return this._writableState.defaultEncoding=St,this},Object.defineProperty(Ut.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Ut.prototype._write=function(St,Tt,Bt){Bt(new Error("_write() is not implemented"))},Ut.prototype._writev=null,Ut.prototype.end=function(St,Tt,Bt){var xt=this._writableState;typeof St=="function"?(Bt=St,St=null,Tt=null):typeof Tt=="function"&&(Bt=Tt,Tt=null),St!=null&&this.write(St,Tt),xt.corked&&(xt.corked=1,this.uncork()),xt.ending||xt.finished||function(Ct,kt,Nt){kt.ending=!0,Rt(Ct,kt),Nt&&(kt.finished?it.nextTick(Nt):Ct.once("finish",Nt)),kt.ended=!0,Ct.writable=!1}(this,xt,Bt)},Object.defineProperty(Ut.prototype,"destroyed",{get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(St){this._writableState&&(this._writableState.destroyed=St)}}),Ut.prototype.destroy=ft.destroy,Ut.prototype._undestroy=ft.undestroy,Ut.prototype._destroy=function(St,Tt){this.end(),Tt(St)}}).call(this,et(2),et(15).setImmediate,et(6))},function(s,o,et){var tt=et(26).codes.ERR_STREAM_PREMATURE_CLOSE;function nt(){}s.exports=function rt(it,ot,st){if(typeof ot=="function")return rt(it,null,ot);ot||(ot={}),st=function(Ut){var Ft=!1;return function(){if(!Ft){Ft=!0;for(var mt=arguments.length,vt=new Array(mt),At=0;At=0;lt--){var ut=ot[lt];ut==="."?ot.splice(lt,1):ut===".."?(ot.splice(lt,1),at++):at&&(ot.splice(lt,1),at--)}if(st)for(;at--;at)ot.unshift("..");return ot}function rt(ot,st){if(ot.filter)return ot.filter(st);for(var at=[],lt=0;lt=-1&&!st;at--){var lt=at>=0?arguments[at]:tt.cwd();if(typeof lt!="string")throw new TypeError("Arguments to path.resolve must be strings");lt&&(ot=lt+"/"+ot,st=lt.charAt(0)==="/")}return(st?"/":"")+(ot=nt(rt(ot.split("/"),function(ut){return!!ut}),!st).join("/"))||"."},o.normalize=function(ot){var st=o.isAbsolute(ot),at=it(ot,-1)==="/";return(ot=nt(rt(ot.split("/"),function(lt){return!!lt}),!st).join("/"))||st||(ot="."),ot&&at&&(ot+="/"),(st?"/":"")+ot},o.isAbsolute=function(ot){return ot.charAt(0)==="/"},o.join=function(){var ot=Array.prototype.slice.call(arguments,0);return o.normalize(rt(ot,function(st,at){if(typeof st!="string")throw new TypeError("Arguments to path.join must be strings");return st}).join("/"))},o.relative=function(ot,st){function at(ft){for(var gt=0;gt=0&&ft[yt]==="";yt--);return gt>yt?[]:ft.slice(gt,yt-gt+1)}ot=o.resolve(ot).substr(1),st=o.resolve(st).substr(1);for(var lt=at(ot.split("/")),ut=at(st.split("/")),dt=Math.min(lt.length,ut.length),ht=dt,ct=0;ct=1;--dt)if((st=ot.charCodeAt(dt))===47){if(!ut){lt=dt;break}}else ut=!1;return lt===-1?at?"/":".":at&<===1?"/":ot.slice(0,lt)},o.basename=function(ot,st){var at=function(lt){typeof lt!="string"&&(lt+="");var ut,dt=0,ht=-1,ct=!0;for(ut=lt.length-1;ut>=0;--ut)if(lt.charCodeAt(ut)===47){if(!ct){dt=ut+1;break}}else ht===-1&&(ct=!1,ht=ut+1);return ht===-1?"":lt.slice(dt,ht)}(ot);return st&&at.substr(-1*st.length)===st&&(at=at.substr(0,at.length-st.length)),at},o.extname=function(ot){typeof ot!="string"&&(ot+="");for(var st=-1,at=0,lt=-1,ut=!0,dt=0,ht=ot.length-1;ht>=0;--ht){var ct=ot.charCodeAt(ht);if(ct!==47)lt===-1&&(ut=!1,lt=ht+1),ct===46?st===-1?st=ht:dt!==1&&(dt=1):st!==-1&&(dt=-1);else if(!ut){at=ht+1;break}}return st===-1||lt===-1||dt===0||dt===1&&st===lt-1&&st===at+1?"":ot.slice(st,lt)};var it="ab".substr(-1)==="b"?function(ot,st,at){return ot.substr(st,at)}:function(ot,st,at){return st<0&&(st=ot.length+st),ot.substr(st,at)}}).call(this,et(2))},,function(s,o,et){var tt=o.format=et(12);o.levels=et(105),Object.defineProperty(tt,"align",{value:et(122)}),Object.defineProperty(tt,"cli",{value:et(123)}),Object.defineProperty(tt,"combine",{value:et(124)}),Object.defineProperty(tt,"colorize",{value:et(41)}),Object.defineProperty(tt,"json",{value:et(125)}),Object.defineProperty(tt,"label",{value:et(128)}),Object.defineProperty(tt,"logstash",{value:et(129)}),Object.defineProperty(tt,"metadata",{value:et(130)}),Object.defineProperty(tt,"padLevels",{value:et(60)}),Object.defineProperty(tt,"prettyPrint",{value:et(131)}),Object.defineProperty(tt,"printf",{value:et(132)}),Object.defineProperty(tt,"simple",{value:et(133)}),Object.defineProperty(tt,"splat",{value:et(134)}),Object.defineProperty(tt,"timestamp",{value:et(135)}),Object.defineProperty(tt,"uncolorize",{value:et(137)})},function(s,o,et){var tt=et(106);s.exports=tt},function(s,o,et){function tt(dt){return function(ht){if(Array.isArray(ht))return nt(ht)}(dt)||function(ht){if(typeof Symbol<"u"&&Symbol.iterator in Object(ht))return Array.from(ht)}(dt)||function(ht,ct){if(ht){if(typeof ht=="string")return nt(ht,ct);var pt=Object.prototype.toString.call(ht).slice(8,-1);if(pt==="Object"&&ht.constructor&&(pt=ht.constructor.name),pt==="Map"||pt==="Set")return Array.from(ht);if(pt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(pt))return nt(ht,ct)}}(dt)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +`);for(var Wr=0;Wr2*or.c&&Go(or)),1/0===Yn&&(Yn=0),0(Yn=Hn.indexOf("#"))&&(Yn=Hn.length),0>(or=Hn.indexOf("?"))||or>Yn?(or=Yn,Mr=""):Mr=Hn.substring(or+1,Yn),Yn=(Hn=[Hn.substr(0,or),Mr,Hn.substr(Yn)])[1],Hn[1]=Hr?Yn?Yn+"&"+Hr:Hr:Yn,Hn=Hn[0]+(Hn[1]?"?"+Hn[1]:"")+Hn[2])):Hn.a("$httpHeaders",Yn))}for(zn=(bn=(0,zn.a)(bn.getRequestMessage())).length,Hr=[0,0,0,0],Yn=new Uint8Array(5+zn),or=3;0<=or;or--)Hr[or]=zn%256,zn>>>=8;if(Yn.set(new Uint8Array(Hr),1),Yn.set(bn,5),bn=Yn,an.a=="text"){var co;for(an=bn,co===void 0&&(co=0),vo(),co=ks[co],bn=[],zn=0;zn>2,Wr=(3&Wr)<<4|_i>>4,_i=(15&_i)<<2|(Mr=(Yn=zn+2>6,Mr&=63,Yn||(Mr=64,Hr||(_i=64)),bn.push(co[or],co[Wr],co[_i]||"",co[Mr]||"")}bn=bn.join("")}else an.a=="binary"&&(Vn.j="arraybuffer");return Lo(Vn,Hn,bn),ir}function Vr(an,bn,Vn){var zn=null,Hn=!1;an.on("data",function(ir){zn=ir}),an.on("error",function(ir){ir.code==0||Hn||(Hn=!0,bn(ir,null))}),an.on("status",function(ir){ir.code==0||Hn?Vn&&bn(null,null,ir):(Hn=!0,bn({code:ir.code,message:ir.details,metadata:ir.metadata},null))}),Vn&&an.on("metadata",function(ir){bn(null,null,null,ir)}),an.on("end",function(){Hn||(zn==null?bn({code:2,message:"Incomplete response"}):bn(null,zn)),Vn&&bn(null,null)})}function Cr(an,bn){var Vn=an;return bn.forEach(function(zn){var Hn=Vn;Vn=function(ir){return zn.intercept(ir,Hn)}}),Vn}Tn.prototype.on=function(an,bn){return an=="data"?this.b.push(bn):an=="status"?this.h.push(bn):an=="metadata"?this.g.push(bn):an=="end"?this.c.push(bn):an=="error"&&this.f.push(bn),this},Tn.prototype.removeListener=function(an,bn){return an=="data"?En(this.b,bn):an=="status"?En(this.h,bn):an=="metadata"?En(this.g,bn):an=="end"?En(this.c,bn):an=="error"&&En(this.f,bn),this},Tn.prototype.cancel=function(){this.j=!0,this.a.abort()},Tn.prototype.cancel=Tn.prototype.cancel,Tn.prototype.removeListener=Tn.prototype.removeListener,Tn.prototype.on=Tn.prototype.on,Mn.prototype.P=function(an,bn,Vn,zn,Hn){var ir=this;zn=Lt(an,bn,"unary",zn);var Yn=an.substr(0,an.length-zn.name.length);return Vr(an=Cr(function(or){return Wn(ir,or,Yn)},this.b).call(this,At(zn,bn,Vn)),Hn,!1),new Rt(an)},Mn.prototype.M=function(an,bn,Vn,zn){var Hn=this;zn=Lt(an,bn,"unary",zn);var ir=an.substr(0,an.length-zn.name.length);return Cr(function(Yn){return new Promise(function(or,Mr){var Wr,Hr,co;Vr(Wn(Hn,Yn,ir),function(_i,sn,vn,In){_i?Mr(_i):sn?co=sn:vn?Hr=vn:In?Wr=In:(_i=Yn.getMethodDescriptor(),or(new mt(co,_i,sn=(sn=Wr)===void 0?{}:sn,Hr===void 0?null:Hr)))},!0)})},this.g).call(this,At(zn,bn,Vn)).then(function(Yn){return Yn.getResponseMessage()})},Mn.prototype.unaryCall=function(an,bn,Vn,zn){return this.M(an,bn,Vn,zn)},Mn.prototype.R=function(an,bn,Vn,zn){var Hn=this;zn=Lt(an,bn,"server_streaming",zn);var ir=an.substr(0,an.length-zn.name.length);return Cr(function(Yn){return Wn(Hn,Yn,ir)},this.b).call(this,At(zn,bn,Vn))},Mn.prototype.serverStreaming=Mn.prototype.R,Mn.prototype.unaryCall=Mn.prototype.unaryCall,Mn.prototype.thenableCall=Mn.prototype.M,Mn.prototype.rpcCall=Mn.prototype.P,s.exports.AbstractClientBase={MethodInfo:function(an,bn,Vn,zn,Hn){this.name=zn,this.b=Hn,this.f=an,this.a=bn,this.c=Vn}},s.exports.GrpcWebClientBase=Mn,s.exports.StatusCode={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,UNAUTHENTICATED:16,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15},s.exports.MethodDescriptor=vt,s.exports.MethodType={UNARY:"unary",SERVER_STREAMING:"server_streaming"}}).call(this,et(6))},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.isAsyncIterable=o.isAsyncGenerator=o.isAsync=void 0;var tt,nt=et(152),rt=(tt=nt)&&tt.__esModule?tt:{default:tt};function it(ot){return ot[Symbol.toStringTag]==="AsyncFunction"}o.default=function(ot){if(typeof ot!="function")throw new Error("expected a function");return it(ot)?(0,rt.default)(ot):ot},o.isAsync=it,o.isAsyncGenerator=function(ot){return ot[Symbol.toStringTag]==="AsyncGenerator"},o.isAsyncIterable=function(ot){return typeof ot[Symbol.asyncIterator]=="function"}},function(s,o,et){var tt={};function nt(it,ot,st){st||(st=Error);var at=function(lt){var ut,dt;function ht(ct,pt,ft){return lt.call(this,function(gt,yt,Ut){return typeof ot=="string"?ot:ot(gt,yt,Ut)}(ct,pt,ft))||this}return dt=lt,(ut=ht).prototype=Object.create(dt.prototype),ut.prototype.constructor=ut,ut.__proto__=dt,ht}(st);at.prototype.name=st.name,at.prototype.code=it,tt[it]=at}function rt(it,ot){if(Array.isArray(it)){var st=it.length;return it=it.map(function(at){return String(at)}),st>2?"one of ".concat(ot," ").concat(it.slice(0,st-1).join(", "),", or ")+it[st-1]:st===2?"one of ".concat(ot," ").concat(it[0]," or ").concat(it[1]):"of ".concat(ot," ").concat(it[0])}return"of ".concat(ot," ").concat(String(it))}nt("ERR_INVALID_OPT_VALUE",function(it,ot){return'The value "'+ot+'" is invalid for option "'+it+'"'},TypeError),nt("ERR_INVALID_ARG_TYPE",function(it,ot,st){var at,lt,ut;if(typeof ot=="string"&&(lt="not ",ot.substr(0,lt.length)===lt)?(at="must not be",ot=ot.replace(/^not /,"")):at="must be",function(ht,ct,pt){return(pt===void 0||pt>ht.length)&&(pt=ht.length),ht.substring(pt-ct.length,pt)===ct}(it," argument"))ut="The ".concat(it," ").concat(at," ").concat(rt(ot,"type"));else{var dt=function(ht,ct,pt){return typeof pt!="number"&&(pt=0),!(pt+ct.length>ht.length)&&ht.indexOf(ct,pt)!==-1}(it,".")?"property":"argument";ut='The "'.concat(it,'" ').concat(dt," ").concat(at," ").concat(rt(ot,"type"))}return ut+=". Received type ".concat(typeof st)},TypeError),nt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),nt("ERR_METHOD_NOT_IMPLEMENTED",function(it){return"The "+it+" method is not implemented"}),nt("ERR_STREAM_PREMATURE_CLOSE","Premature close"),nt("ERR_STREAM_DESTROYED",function(it){return"Cannot call "+it+" after a stream was destroyed"}),nt("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),nt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),nt("ERR_STREAM_WRITE_AFTER_END","write after end"),nt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),nt("ERR_UNKNOWN_ENCODING",function(it){return"Unknown encoding: "+it},TypeError),nt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),s.exports.codes=tt},function(s,o,et){(function(tt){var nt=Object.keys||function(ht){var ct=[];for(var pt in ht)ct.push(pt);return ct};s.exports=lt;var rt=et(77),it=et(81);et(7)(lt,rt);for(var ot=nt(it.prototype),st=0;st`${lt.get("app-id")}`.startsWith("formant/")?{}:rt},at)),this.endpoint=st}getHeaders(){return Object.assign(Object.assign({},it.headers),{"App-ID":`formant/${nt.a}`,"App-Version":nt.j})}}it.headers={}},function(s,o,et){et(227),s.exports={encode:tt=>new TextEncoder().encode(tt),decode:tt=>new TextDecoder().decode(tt)}},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt,nt=tt.length){if(!nt)throw new Error("arity is undefined");return function(...rt){return typeof rt[nt-1]=="function"?tt.apply(this,rt):new Promise((it,ot)=>{rt[nt-1]=(st,...at)=>{if(st)return ot(st);it(at.length>1?at:at[0])},tt.apply(this,rt)})}},s.exports=o.default},function(s,o,et){(o=s.exports=et(69)).Stream=o,o.Readable=o,o.Writable=et(48),o.Duplex=et(23),o.Transform=et(72),o.PassThrough=et(165)},function(s,o,et){(o=s.exports=et(77)).Stream=o,o.Readable=o,o.Writable=et(81),o.Duplex=et(27),o.Transform=et(82),o.PassThrough=et(184),o.finished=et(49),o.pipeline=et(185)},function(s,o,et){s.exports=function(tt){return tt}},function(s,o,et){et.d(o,"a",function(){return nt});const tt=["password","secret","token","key","buffer"];function nt(rt,it=new Set){return it.has(rt)?"[ RECURSIVE ]":!(ot=rt)||typeof ot!="object"&&typeof ot!="function"?rt:(it.add(rt),Object.keys(rt).reduce((st,at)=>(st[at]=tt.some(lt=>at.toLowerCase().includes(lt.toLowerCase()))?"[ REDACTED ]":nt(rt[at],it),st),{}));var ot}},function(s,o){s.exports=tt,tt.default=tt,tt.stable=rt,tt.stableStringify=rt;var et=[];function tt(it,ot,st){(function ut(dt,ht,ct,pt){var ft;if(typeof dt=="object"&&dt!==null){for(ft=0;ftot?1:0}function rt(it,ot,st){for(var at=function dt(ht,ct,pt,ft){var gt;if(typeof ht=="object"&&ht!==null){for(gt=0;gtFt.validateHeaders?Ft.validateHeaders(mt):{},this.verbose=Ft.verbose!==!1,Ft.retries!==void 0&&!(Ft.retries>=0))throw new Error("retries must be positive or zero");if(this.configuredRetries=Ft.retries,Ft.timeoutMs!==void 0&&!(Ft.timeoutMs>0))throw new Error("timeoutMs must be positive");if(this.timeoutMs=Ft.timeoutMs,Ft.maxBackoffDelayMs!==void 0&&!(Ft.maxBackoffDelayMs>0))throw new Error("maxBackoffDelayMs must be positive");this.maxBackoffDelayMs=Ft.maxBackoffDelayMs||30*tt.a.second}getRetries(){return this.configuredRetries!==void 0?this.configuredRetries:this.getConstructor().retries}getHeaders(){return{}}fetch(Ut,Ft={}){return ct(this,void 0,void 0,function*(){return(yield this.fetchVerbose(Ut,Ft)).body})}fetchVerbose(Ut,Ft={}){return ct(this,void 0,void 0,function*(){let mt=100*tt.a.millisecond,vt=0;const At=this.timeoutMs!==void 0?new Date().getTime()+this.timeoutMs:void 0,Lt=At?()=>Math.max(At-new Date().getTime(),0):void 0;for(;;)try{return yield this.doFetch(Ut,Ft,Lt)}catch(Rt){const St=Object(ut.a)(Rt,st);if(Lt?.()===0||vt===this.getRetries()||!St.retryable)throw St;vt++,mt=Math.min(...Lt?[Lt()]:[],mt*(2+.1*(Math.random()-.5)),this.maxBackoffDelayMs),yield Object(at.a)(mt),this.verbose&<.a.warn(`Connection failure, retrying. Error: ${Rt.cause.message}`,{url:Rt.url,error:Rt.cause,attempt:vt})}})}doFetch(Ut,Ft,mt){return ct(this,void 0,void 0,function*(){const{token:vt,json:At,allowUnsafeRetries:Lt}=Ft,Rt=pt(Ft,["token","json","allowUnsafeRetries"]),St=(Rt.method||"GET").toUpperCase(),Tt=this.endpoint!==void 0?`${this.endpoint}${Ut?`/${Ut}`:""}`:Ut,Bt=new rt.a;let xt;if(mt){const Ct=mt();Ct>0?xt=setTimeout(()=>{Bt.abort()},Ct):Bt.abort()}try{let Ct;yield Promise.race([this.getConstructor().waitForConnectivity(),new Promise(Pt=>{Ct=setTimeout(Pt,mt?Math.min(tt.a.minute,mt()):tt.a.minute)})]),Ct&&clearTimeout(Ct);const kt=yield ot()(Tt,Object.assign(Object.assign({},Rt),{headers:Object.assign(Object.assign(Object.assign(Object.assign({},At!==!1?{"Content-Type":"application/json"}:{}),this.getHeaders()),Rt.headers||{}),vt!==void 0?{Authorization:`Bearer ${vt}`}:{}),signal:Bt.signal})),Nt=kt.headers.get("content-type")||"",Ot=Nt&&Nt.startsWith("application/json"),Jt=Ot?yield kt.json():yield kt.text(),Dt=()=>new dt.a(St,Tt,kt.status,Jt,Jt&&Jt.validationErrors||{},kt.headers);if(!kt.ok)throw this.verbose&<.a[kt.status>=500?"warn":"info"]("Response error",{method:St,url:Tt,statusCode:kt.status}),Dt();const Et=this.validateHeaders(kt.headers);if(Object.keys(Et).length!==0)throw new ht(Et,Dt());if(kt.status===204)return{body:void 0,headers:kt.headers};if(At&&!Ot)throw new Error(`Response is not JSON: ${JSON.stringify(Jt)}`);return{body:Jt,headers:kt.headers}}catch(Ct){const kt=Lt||ft.has(St);if(Ct.message==="Network request failed")throw new st(Ct,Tt,kt);if(Ct.type==="system"&&["EAI_AGAIN","ECONNREFUSED","EHOSTUNREACH","ENOTFOUND"].find(Dt=>Dt===Ct.code))throw new st(Ct,Tt,!0);if(Ct.type==="system"&&["ETIMEDOUT","ECONNRESET","ESOCKETTIMEDOUT","EPIPE"].find(Dt=>Dt===Ct.code))throw new st(Ct,Tt,kt);if(Ct.name==="AbortError")throw new st(Ct,Tt,kt);const Nt=Object(ut.a)(Ct,dt.a),{statusCode:Ot}=Nt;if(Ot===408||Ot===429||Ot===502||Ot===503||Ot===504)throw this.verbose&&!kt&<.a.warn("Potentially unsafe retry"),new st(Ct,Tt,!0);const Jt=this.validateHeaders(Nt.headers);throw Object.keys(Jt).length!==0?new ht(Jt,Nt):(yield this.getConstructor().onResponseError(Nt),Ct)}finally{xt&&clearTimeout(xt)}})}getConstructor(){return Object.getPrototypeOf(this).constructor}}gt.retries=8,gt.waitForConnectivity=()=>ct(void 0,void 0,void 0,function*(){}),gt.onResponseError=()=>ct(void 0,void 0,void 0,function*(){})},function(s,o,et){function tt(ut,dt){if(!(ut instanceof dt))throw new TypeError("Cannot call a class as a function")}function nt(ut,dt){for(var ht=0;ht0&&arguments[0]!==void 0?arguments[0]:{};tt(this,ut),pt.colors&&this.addColors(pt.colors),this.options=pt}var dt,ht,ct;return dt=ut,ct=[{key:"addColors",value:function(pt){var ft=Object.keys(pt).reduce(function(gt,yt){return gt[yt]=at.test(pt[yt])?pt[yt].split(at):pt[yt],gt},{});return ut.allColors=Object.assign({},ut.allColors||{},ft),ut.allColors}}],(ht=[{key:"addColors",value:function(pt){return ut.addColors(pt)}},{key:"colorize",value:function(pt,ft,gt){if(gt===void 0&&(gt=ft),!Array.isArray(ut.allColors[pt]))return rt[ut.allColors[pt]](gt);for(var yt=0,Ut=ut.allColors[pt].length;yt=0&&tt.length%1==0},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default={},s.exports=o.default},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){(function(tt,nt,rt){var it=et(16);function ot(St){var Tt=this;this.next=null,this.entry=null,this.finish=function(){(function(Bt,xt,Ct){var kt=Bt.entry;for(Bt.entry=null;kt;){var Nt=kt.callback;xt.pendingcb--,Nt(Ct),kt=kt.next}xt.corkedRequestsFree?xt.corkedRequestsFree.next=Bt:xt.corkedRequestsFree=Bt})(Tt,St)}}s.exports=Ut;var st,at=!tt.browser&&["v0.10","v0.9."].indexOf(tt.version.slice(0,5))>-1?nt:it.nextTick;Ut.WritableState=yt;var lt=et(17);lt.inherits=et(7);var ut={deprecate:et(43)},dt=et(70),ht=et(47).Buffer,ct=rt.Uint8Array||function(){},pt,ft=et(71);function gt(){}function yt(St,Tt){st=st||et(23),St=St||{};var Bt=Tt instanceof st;this.objectMode=!!St.objectMode,Bt&&(this.objectMode=this.objectMode||!!St.writableObjectMode);var xt=St.highWaterMark,Ct=St.writableHighWaterMark,kt=this.objectMode?16:16384;this.highWaterMark=xt||xt===0?xt:Bt&&(Ct||Ct===0)?Ct:kt,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Nt=St.decodeStrings===!1;this.decodeStrings=!Nt,this.defaultEncoding=St.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Ot){(function(Jt,Dt){var Et=Jt._writableState,Pt=Et.sync,zt=Et.writecb;if(function(Kt){Kt.writing=!1,Kt.writecb=null,Kt.length-=Kt.writelen,Kt.writelen=0}(Et),Dt)(function(Kt,nn,Zt,jt,Vt){--nn.pendingcb,Zt?(it.nextTick(Vt,jt),it.nextTick(Rt,Kt,nn),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt)):(Vt(jt),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt),Rt(Kt,nn))})(Jt,Et,Pt,Dt,zt);else{var en=At(Et);en||Et.corked||Et.bufferProcessing||!Et.bufferedRequest||vt(Jt,Et),Pt?at(mt,Jt,Et,en,zt):mt(Jt,Et,en,zt)}})(Tt,Ot)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new ot(this)}function Ut(St){if(st=st||et(23),!(pt.call(Ut,this)||this instanceof st))return new Ut(St);this._writableState=new yt(St,this),this.writable=!0,St&&(typeof St.write=="function"&&(this._write=St.write),typeof St.writev=="function"&&(this._writev=St.writev),typeof St.destroy=="function"&&(this._destroy=St.destroy),typeof St.final=="function"&&(this._final=St.final)),dt.call(this)}function Ft(St,Tt,Bt,xt,Ct,kt,Nt){Tt.writelen=xt,Tt.writecb=Nt,Tt.writing=!0,Tt.sync=!0,Bt?St._writev(Ct,Tt.onwrite):St._write(Ct,kt,Tt.onwrite),Tt.sync=!1}function mt(St,Tt,Bt,xt){Bt||function(Ct,kt){kt.length===0&&kt.needDrain&&(kt.needDrain=!1,Ct.emit("drain"))}(St,Tt),Tt.pendingcb--,xt(),Rt(St,Tt)}function vt(St,Tt){Tt.bufferProcessing=!0;var Bt=Tt.bufferedRequest;if(St._writev&&Bt&&Bt.next){var xt=Tt.bufferedRequestCount,Ct=new Array(xt),kt=Tt.corkedRequestsFree;kt.entry=Bt;for(var Nt=0,Ot=!0;Bt;)Ct[Nt]=Bt,Bt.isBuf||(Ot=!1),Bt=Bt.next,Nt+=1;Ct.allBuffers=Ot,Ft(St,Tt,!0,Tt.length,Ct,"",kt.finish),Tt.pendingcb++,Tt.lastBufferedRequest=null,kt.next?(Tt.corkedRequestsFree=kt.next,kt.next=null):Tt.corkedRequestsFree=new ot(Tt),Tt.bufferedRequestCount=0}else{for(;Bt;){var Jt=Bt.chunk,Dt=Bt.encoding,Et=Bt.callback;if(Ft(St,Tt,!1,Tt.objectMode?1:Jt.length,Jt,Dt,Et),Bt=Bt.next,Tt.bufferedRequestCount--,Tt.writing)break}Bt===null&&(Tt.lastBufferedRequest=null)}Tt.bufferedRequest=Bt,Tt.bufferProcessing=!1}function At(St){return St.ending&&St.length===0&&St.bufferedRequest===null&&!St.finished&&!St.writing}function Lt(St,Tt){St._final(function(Bt){Tt.pendingcb--,Bt&&St.emit("error",Bt),Tt.prefinished=!0,St.emit("prefinish"),Rt(St,Tt)})}function Rt(St,Tt){var Bt=At(Tt);return Bt&&(function(xt,Ct){Ct.prefinished||Ct.finalCalled||(typeof xt._final=="function"?(Ct.pendingcb++,Ct.finalCalled=!0,it.nextTick(Lt,xt,Ct)):(Ct.prefinished=!0,xt.emit("prefinish")))}(St,Tt),Tt.pendingcb===0&&(Tt.finished=!0,St.emit("finish"))),Bt}lt.inherits(Ut,dt),yt.prototype.getBuffer=function(){for(var St=this.bufferedRequest,Tt=[];St;)Tt.push(St),St=St.next;return Tt},function(){try{Object.defineProperty(yt.prototype,"buffer",{get:ut.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(pt=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ut,Symbol.hasInstance,{value:function(St){return!!pt.call(this,St)||this===Ut&&St&&St._writableState instanceof yt}})):pt=function(St){return St instanceof this},Ut.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Ut.prototype.write=function(St,Tt,Bt){var xt,Ct=this._writableState,kt=!1,Nt=!Ct.objectMode&&(xt=St,ht.isBuffer(xt)||xt instanceof ct);return Nt&&!ht.isBuffer(St)&&(St=function(Ot){return ht.from(Ot)}(St)),typeof Tt=="function"&&(Bt=Tt,Tt=null),Nt?Tt="buffer":Tt||(Tt=Ct.defaultEncoding),typeof Bt!="function"&&(Bt=gt),Ct.ended?function(Ot,Jt){var Dt=new Error("write after end");Ot.emit("error",Dt),it.nextTick(Jt,Dt)}(this,Bt):(Nt||function(Ot,Jt,Dt,Et){var Pt=!0,zt=!1;return Dt===null?zt=new TypeError("May not write null values to stream"):typeof Dt=="string"||Dt===void 0||Jt.objectMode||(zt=new TypeError("Invalid non-string/buffer chunk")),zt&&(Ot.emit("error",zt),it.nextTick(Et,zt),Pt=!1),Pt}(this,Ct,St,Bt))&&(Ct.pendingcb++,kt=function(Ot,Jt,Dt,Et,Pt,zt){if(!Dt){var en=function(jt,Vt,It){return jt.objectMode||jt.decodeStrings===!1||typeof Vt!="string"||(Vt=ht.from(Vt,It)),Vt}(Jt,Et,Pt);Et!==en&&(Dt=!0,Pt="buffer",Et=en)}var Kt=Jt.objectMode?1:Et.length;Jt.length+=Kt;var nn=Jt.length-1))throw new TypeError("Unknown encoding: "+St);return this._writableState.defaultEncoding=St,this},Object.defineProperty(Ut.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Ut.prototype._write=function(St,Tt,Bt){Bt(new Error("_write() is not implemented"))},Ut.prototype._writev=null,Ut.prototype.end=function(St,Tt,Bt){var xt=this._writableState;typeof St=="function"?(Bt=St,St=null,Tt=null):typeof Tt=="function"&&(Bt=Tt,Tt=null),St!=null&&this.write(St,Tt),xt.corked&&(xt.corked=1,this.uncork()),xt.ending||xt.finished||function(Ct,kt,Nt){kt.ending=!0,Rt(Ct,kt),Nt&&(kt.finished?it.nextTick(Nt):Ct.once("finish",Nt)),kt.ended=!0,Ct.writable=!1}(this,xt,Bt)},Object.defineProperty(Ut.prototype,"destroyed",{get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(St){this._writableState&&(this._writableState.destroyed=St)}}),Ut.prototype.destroy=ft.destroy,Ut.prototype._undestroy=ft.undestroy,Ut.prototype._destroy=function(St,Tt){this.end(),Tt(St)}}).call(this,et(2),et(15).setImmediate,et(6))},function(s,o,et){var tt=et(26).codes.ERR_STREAM_PREMATURE_CLOSE;function nt(){}s.exports=function rt(it,ot,st){if(typeof ot=="function")return rt(it,null,ot);ot||(ot={}),st=function(Ut){var Ft=!1;return function(){if(!Ft){Ft=!0;for(var mt=arguments.length,vt=new Array(mt),At=0;At=0;lt--){var ut=ot[lt];ut==="."?ot.splice(lt,1):ut===".."?(ot.splice(lt,1),at++):at&&(ot.splice(lt,1),at--)}if(st)for(;at--;at)ot.unshift("..");return ot}function rt(ot,st){if(ot.filter)return ot.filter(st);for(var at=[],lt=0;lt=-1&&!st;at--){var lt=at>=0?arguments[at]:tt.cwd();if(typeof lt!="string")throw new TypeError("Arguments to path.resolve must be strings");lt&&(ot=lt+"/"+ot,st=lt.charAt(0)==="/")}return(st?"/":"")+(ot=nt(rt(ot.split("/"),function(ut){return!!ut}),!st).join("/"))||"."},o.normalize=function(ot){var st=o.isAbsolute(ot),at=it(ot,-1)==="/";return(ot=nt(rt(ot.split("/"),function(lt){return!!lt}),!st).join("/"))||st||(ot="."),ot&&at&&(ot+="/"),(st?"/":"")+ot},o.isAbsolute=function(ot){return ot.charAt(0)==="/"},o.join=function(){var ot=Array.prototype.slice.call(arguments,0);return o.normalize(rt(ot,function(st,at){if(typeof st!="string")throw new TypeError("Arguments to path.join must be strings");return st}).join("/"))},o.relative=function(ot,st){function at(ft){for(var gt=0;gt=0&&ft[yt]==="";yt--);return gt>yt?[]:ft.slice(gt,yt-gt+1)}ot=o.resolve(ot).substr(1),st=o.resolve(st).substr(1);for(var lt=at(ot.split("/")),ut=at(st.split("/")),dt=Math.min(lt.length,ut.length),ht=dt,ct=0;ct=1;--dt)if((st=ot.charCodeAt(dt))===47){if(!ut){lt=dt;break}}else ut=!1;return lt===-1?at?"/":".":at&<===1?"/":ot.slice(0,lt)},o.basename=function(ot,st){var at=function(lt){typeof lt!="string"&&(lt+="");var ut,dt=0,ht=-1,ct=!0;for(ut=lt.length-1;ut>=0;--ut)if(lt.charCodeAt(ut)===47){if(!ct){dt=ut+1;break}}else ht===-1&&(ct=!1,ht=ut+1);return ht===-1?"":lt.slice(dt,ht)}(ot);return st&&at.substr(-1*st.length)===st&&(at=at.substr(0,at.length-st.length)),at},o.extname=function(ot){typeof ot!="string"&&(ot+="");for(var st=-1,at=0,lt=-1,ut=!0,dt=0,ht=ot.length-1;ht>=0;--ht){var ct=ot.charCodeAt(ht);if(ct!==47)lt===-1&&(ut=!1,lt=ht+1),ct===46?st===-1?st=ht:dt!==1&&(dt=1):st!==-1&&(dt=-1);else if(!ut){at=ht+1;break}}return st===-1||lt===-1||dt===0||dt===1&&st===lt-1&&st===at+1?"":ot.slice(st,lt)};var it="ab".substr(-1)==="b"?function(ot,st,at){return ot.substr(st,at)}:function(ot,st,at){return st<0&&(st=ot.length+st),ot.substr(st,at)}}).call(this,et(2))},,function(s,o,et){var tt=o.format=et(12);o.levels=et(105),Object.defineProperty(tt,"align",{value:et(122)}),Object.defineProperty(tt,"cli",{value:et(123)}),Object.defineProperty(tt,"combine",{value:et(124)}),Object.defineProperty(tt,"colorize",{value:et(41)}),Object.defineProperty(tt,"json",{value:et(125)}),Object.defineProperty(tt,"label",{value:et(128)}),Object.defineProperty(tt,"logstash",{value:et(129)}),Object.defineProperty(tt,"metadata",{value:et(130)}),Object.defineProperty(tt,"padLevels",{value:et(60)}),Object.defineProperty(tt,"prettyPrint",{value:et(131)}),Object.defineProperty(tt,"printf",{value:et(132)}),Object.defineProperty(tt,"simple",{value:et(133)}),Object.defineProperty(tt,"splat",{value:et(134)}),Object.defineProperty(tt,"timestamp",{value:et(135)}),Object.defineProperty(tt,"uncolorize",{value:et(137)})},function(s,o,et){var tt=et(106);s.exports=tt},function(s,o,et){function tt(dt){return function(ht){if(Array.isArray(ht))return nt(ht)}(dt)||function(ht){if(typeof Symbol<"u"&&Symbol.iterator in Object(ht))return Array.from(ht)}(dt)||function(ht,ct){if(ht){if(typeof ht=="string")return nt(ht,ct);var pt=Object.prototype.toString.call(ht).slice(8,-1);if(pt==="Object"&&ht.constructor&&(pt=ht.constructor.name),pt==="Map"||pt==="Set")return Array.from(ht);if(pt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(pt))return nt(ht,ct)}}(dt)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function nt(dt,ht){(ht==null||ht>dt.length)&&(ht=dt.length);for(var ct=0,pt=new Array(ht);ct0&&arguments[0]!==void 0?arguments[0]:{levels:st.npm.levels};rt(this,dt),this.paddings=dt.paddingForLevels(ft.levels,ft.filler),this.options=ft}var ht,ct,pt;return ht=dt,pt=[{key:"getLongestLevel",value:function(ft){var gt=Object.keys(ft).map(function(yt){return yt.length});return Math.max.apply(Math,tt(gt))}},{key:"paddingForLevel",value:function(ft,gt,yt){var Ut=yt+1-ft.length,Ft=Math.floor(Ut/gt.length);return"".concat(gt).concat(gt.repeat(Ft)).slice(0,Ut)}},{key:"paddingForLevels",value:function(ft){var gt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:" ",yt=dt.getLongestLevel(ft);return Object.keys(ft).reduce(function(Ut,Ft){return Ut[Ft]=dt.paddingForLevel(Ft,gt,yt),Ut},{})}}],(ct=[{key:"transform",value:function(ft,gt){return ft.message="".concat(this.paddings[ft[at]]).concat(ft.message),ft[lt]&&(ft[lt]="".concat(this.paddings[ft[at]]).concat(ft[lt])),ft}}])&&it(ht.prototype,ct),pt&&it(ht,pt),dt}();s.exports=function(dt){return new ut(dt)},s.exports.Padder=s.exports.Format=ut},function(s,o,et){var tt=et(13).format;o.warn={deprecated:function(nt){return function(){throw new Error(tt("{ %s } was removed in winston@3.0.0.",nt))}},useFormat:function(nt){return function(){throw new Error([tt("{ %s } was removed in winston@3.0.0.",nt),"Use a custom winston.format = winston.format(function) instead."].join(` `))}},forFunctions:function(nt,rt,it){it.forEach(function(ot){nt[ot]=o.warn[rt](ot)})},moved:function(nt,rt,it){function ot(){return function(){throw new Error([tt("winston.%s was moved in winston@3.0.0.",it),tt("Use a winston.%s instead.",rt)].join(` -`))}}Object.defineProperty(nt,it,{get:ot,set:ot})},forProperties:function(nt,rt,it){it.forEach(function(ot){var st=o.warn[rt](ot);Object.defineProperty(nt,ot,{get:st,set:st})})}}},function(s,o,et){(function(tt,nt,rt){var it=et(16);function ot(St){var Tt=this;this.next=null,this.entry=null,this.finish=function(){(function(Bt,xt,Ct){var kt=Bt.entry;for(Bt.entry=null;kt;){var Nt=kt.callback;xt.pendingcb--,Nt(Ct),kt=kt.next}xt.corkedRequestsFree?xt.corkedRequestsFree.next=Bt:xt.corkedRequestsFree=Bt})(Tt,St)}}s.exports=Ut;var st,at=!tt.browser&&["v0.10","v0.9."].indexOf(tt.version.slice(0,5))>-1?nt:it.nextTick;Ut.WritableState=yt;var lt=Object.create(et(17));lt.inherits=et(7);var ut={deprecate:et(43)},dt=et(63),ht=et(44).Buffer,ct=rt.Uint8Array||function(){},pt,ft=et(64);function gt(){}function yt(St,Tt){st=st||et(36),St=St||{};var Bt=Tt instanceof st;this.objectMode=!!St.objectMode,Bt&&(this.objectMode=this.objectMode||!!St.writableObjectMode);var xt=St.highWaterMark,Ct=St.writableHighWaterMark,kt=this.objectMode?16:16384;this.highWaterMark=xt||xt===0?xt:Bt&&(Ct||Ct===0)?Ct:kt,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Nt=St.decodeStrings===!1;this.decodeStrings=!Nt,this.defaultEncoding=St.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Ot){(function(Wt,Dt){var Et=Wt._writableState,Pt=Et.sync,zt=Et.writecb;if(function(Kt){Kt.writing=!1,Kt.writecb=null,Kt.length-=Kt.writelen,Kt.writelen=0}(Et),Dt)(function(Kt,nn,Zt,jt,Vt){--nn.pendingcb,Zt?(it.nextTick(Vt,jt),it.nextTick(Rt,Kt,nn),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt)):(Vt(jt),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt),Rt(Kt,nn))})(Wt,Et,Pt,Dt,zt);else{var en=At(Et);en||Et.corked||Et.bufferProcessing||!Et.bufferedRequest||vt(Wt,Et),Pt?at(mt,Wt,Et,en,zt):mt(Wt,Et,en,zt)}})(Tt,Ot)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new ot(this)}function Ut(St){if(st=st||et(36),!(pt.call(Ut,this)||this instanceof st))return new Ut(St);this._writableState=new yt(St,this),this.writable=!0,St&&(typeof St.write=="function"&&(this._write=St.write),typeof St.writev=="function"&&(this._writev=St.writev),typeof St.destroy=="function"&&(this._destroy=St.destroy),typeof St.final=="function"&&(this._final=St.final)),dt.call(this)}function Ft(St,Tt,Bt,xt,Ct,kt,Nt){Tt.writelen=xt,Tt.writecb=Nt,Tt.writing=!0,Tt.sync=!0,Bt?St._writev(Ct,Tt.onwrite):St._write(Ct,kt,Tt.onwrite),Tt.sync=!1}function mt(St,Tt,Bt,xt){Bt||function(Ct,kt){kt.length===0&&kt.needDrain&&(kt.needDrain=!1,Ct.emit("drain"))}(St,Tt),Tt.pendingcb--,xt(),Rt(St,Tt)}function vt(St,Tt){Tt.bufferProcessing=!0;var Bt=Tt.bufferedRequest;if(St._writev&&Bt&&Bt.next){var xt=Tt.bufferedRequestCount,Ct=new Array(xt),kt=Tt.corkedRequestsFree;kt.entry=Bt;for(var Nt=0,Ot=!0;Bt;)Ct[Nt]=Bt,Bt.isBuf||(Ot=!1),Bt=Bt.next,Nt+=1;Ct.allBuffers=Ot,Ft(St,Tt,!0,Tt.length,Ct,"",kt.finish),Tt.pendingcb++,Tt.lastBufferedRequest=null,kt.next?(Tt.corkedRequestsFree=kt.next,kt.next=null):Tt.corkedRequestsFree=new ot(Tt),Tt.bufferedRequestCount=0}else{for(;Bt;){var Wt=Bt.chunk,Dt=Bt.encoding,Et=Bt.callback;if(Ft(St,Tt,!1,Tt.objectMode?1:Wt.length,Wt,Dt,Et),Bt=Bt.next,Tt.bufferedRequestCount--,Tt.writing)break}Bt===null&&(Tt.lastBufferedRequest=null)}Tt.bufferedRequest=Bt,Tt.bufferProcessing=!1}function At(St){return St.ending&&St.length===0&&St.bufferedRequest===null&&!St.finished&&!St.writing}function Lt(St,Tt){St._final(function(Bt){Tt.pendingcb--,Bt&&St.emit("error",Bt),Tt.prefinished=!0,St.emit("prefinish"),Rt(St,Tt)})}function Rt(St,Tt){var Bt=At(Tt);return Bt&&(function(xt,Ct){Ct.prefinished||Ct.finalCalled||(typeof xt._final=="function"?(Ct.pendingcb++,Ct.finalCalled=!0,it.nextTick(Lt,xt,Ct)):(Ct.prefinished=!0,xt.emit("prefinish")))}(St,Tt),Tt.pendingcb===0&&(Tt.finished=!0,St.emit("finish"))),Bt}lt.inherits(Ut,dt),yt.prototype.getBuffer=function(){for(var St=this.bufferedRequest,Tt=[];St;)Tt.push(St),St=St.next;return Tt},function(){try{Object.defineProperty(yt.prototype,"buffer",{get:ut.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(pt=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ut,Symbol.hasInstance,{value:function(St){return!!pt.call(this,St)||this===Ut&&St&&St._writableState instanceof yt}})):pt=function(St){return St instanceof this},Ut.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Ut.prototype.write=function(St,Tt,Bt){var xt,Ct=this._writableState,kt=!1,Nt=!Ct.objectMode&&(xt=St,ht.isBuffer(xt)||xt instanceof ct);return Nt&&!ht.isBuffer(St)&&(St=function(Ot){return ht.from(Ot)}(St)),typeof Tt=="function"&&(Bt=Tt,Tt=null),Nt?Tt="buffer":Tt||(Tt=Ct.defaultEncoding),typeof Bt!="function"&&(Bt=gt),Ct.ended?function(Ot,Wt){var Dt=new Error("write after end");Ot.emit("error",Dt),it.nextTick(Wt,Dt)}(this,Bt):(Nt||function(Ot,Wt,Dt,Et){var Pt=!0,zt=!1;return Dt===null?zt=new TypeError("May not write null values to stream"):typeof Dt=="string"||Dt===void 0||Wt.objectMode||(zt=new TypeError("Invalid non-string/buffer chunk")),zt&&(Ot.emit("error",zt),it.nextTick(Et,zt),Pt=!1),Pt}(this,Ct,St,Bt))&&(Ct.pendingcb++,kt=function(Ot,Wt,Dt,Et,Pt,zt){if(!Dt){var en=function(jt,Vt,It){return jt.objectMode||jt.decodeStrings===!1||typeof Vt!="string"||(Vt=ht.from(Vt,It)),Vt}(Wt,Et,Pt);Et!==en&&(Dt=!0,Pt="buffer",Et=en)}var Kt=Wt.objectMode?1:Et.length;Wt.length+=Kt;var nn=Wt.length-1))throw new TypeError("Unknown encoding: "+St);return this._writableState.defaultEncoding=St,this},Object.defineProperty(Ut.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Ut.prototype._write=function(St,Tt,Bt){Bt(new Error("_write() is not implemented"))},Ut.prototype._writev=null,Ut.prototype.end=function(St,Tt,Bt){var xt=this._writableState;typeof St=="function"?(Bt=St,St=null,Tt=null):typeof Tt=="function"&&(Bt=Tt,Tt=null),St!=null&&this.write(St,Tt),xt.corked&&(xt.corked=1,this.uncork()),xt.ending||xt.finished||function(Ct,kt,Nt){kt.ending=!0,Rt(Ct,kt),Nt&&(kt.finished?it.nextTick(Nt):Ct.once("finish",Nt)),kt.ended=!0,Ct.writable=!1}(this,xt,Bt)},Object.defineProperty(Ut.prototype,"destroyed",{get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(St){this._writableState&&(this._writableState.destroyed=St)}}),Ut.prototype.destroy=ft.destroy,Ut.prototype._undestroy=ft.undestroy,Ut.prototype._destroy=function(St,Tt){this.end(),Tt(St)}}).call(this,et(2),et(15).setImmediate,et(6))},function(s,o,et){s.exports=et(21).EventEmitter},function(s,o,et){var tt=et(16);function nt(rt,it){rt.emit("error",it)}s.exports={destroy:function(rt,it){var ot=this,st=this._readableState&&this._readableState.destroyed,at=this._writableState&&this._writableState.destroyed;return st||at?(it?it(rt):!rt||this._writableState&&this._writableState.errorEmitted||tt.nextTick(nt,this,rt),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(rt||null,function(lt){!it&<?(tt.nextTick(nt,ot,lt),ot._writableState&&(ot._writableState.errorEmitted=!0)):it&&it(lt)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(s,o){},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(156)),nt=it(et(25)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)(function(ot,st,at,lt){return(0,tt.default)(st)(ot,(0,nt.default)(at),lt)},4),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){function nt(...rt){if(tt!==null){var it=tt;tt=null,it.apply(this,rt)}}return Object.assign(nt,tt),nt},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){if(tt===null)throw new Error("Callback was already called.");var rt=tt;tt=null,rt.apply(this,nt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){var rt=et(16);s.exports=Ft;var it,ot=et(42);Ft.ReadableState=Ut,et(21).EventEmitter;var st=function(Dt,Et){return Dt.listeners(Et).length},at=et(70),lt=et(47).Buffer,ut=tt.Uint8Array||function(){},dt=et(17);dt.inherits=et(7);var ht=et(162),ct=void 0;ct=ht&&ht.debuglog?ht.debuglog("stream"):function(){};var pt,ft=et(163),gt=et(71);dt.inherits(Ft,at);var yt=["error","close","destroy","pause","resume"];function Ut(Dt,Et){Dt=Dt||{};var Pt=Et instanceof(it=it||et(23));this.objectMode=!!Dt.objectMode,Pt&&(this.objectMode=this.objectMode||!!Dt.readableObjectMode);var zt=Dt.highWaterMark,en=Dt.readableHighWaterMark,Kt=this.objectMode?16:16384;this.highWaterMark=zt||zt===0?zt:Pt&&(en||en===0)?en:Kt,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new ft,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=Dt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Dt.encoding&&(pt||(pt=et(22).StringDecoder),this.decoder=new pt(Dt.encoding),this.encoding=Dt.encoding)}function Ft(Dt){if(it=it||et(23),!(this instanceof Ft))return new Ft(Dt);this._readableState=new Ut(Dt,this),this.readable=!0,Dt&&(typeof Dt.read=="function"&&(this._read=Dt.read),typeof Dt.destroy=="function"&&(this._destroy=Dt.destroy)),at.call(this)}function mt(Dt,Et,Pt,zt,en){var Kt,nn=Dt._readableState;return Et===null?(nn.reading=!1,function(Zt,jt){if(!jt.ended){if(jt.decoder){var Vt=jt.decoder.end();Vt&&Vt.length&&(jt.buffer.push(Vt),jt.length+=jt.objectMode?1:Vt.length)}jt.ended=!0,Lt(Zt)}}(Dt,nn)):(en||(Kt=function(Zt,jt){var Vt;It=jt,lt.isBuffer(It)||It instanceof ut||typeof jt=="string"||jt===void 0||Zt.objectMode||(Vt=new TypeError("Invalid non-string/buffer chunk"));var It;return Vt}(nn,Et)),Kt?Dt.emit("error",Kt):nn.objectMode||Et&&Et.length>0?(typeof Et=="string"||nn.objectMode||Object.getPrototypeOf(Et)===lt.prototype||(Et=function(Zt){return lt.from(Zt)}(Et)),zt?nn.endEmitted?Dt.emit("error",new Error("stream.unshift() after end event")):vt(Dt,nn,Et,!0):nn.ended?Dt.emit("error",new Error("stream.push() after EOF")):(nn.reading=!1,nn.decoder&&!Pt?(Et=nn.decoder.write(Et),nn.objectMode||Et.length!==0?vt(Dt,nn,Et,!1):St(Dt,nn)):vt(Dt,nn,Et,!1))):zt||(nn.reading=!1)),function(Zt){return!Zt.ended&&(Zt.needReadable||Zt.lengthEt.highWaterMark&&(Et.highWaterMark=function(Pt){return Pt>=8388608?Pt=8388608:(Pt--,Pt|=Pt>>>1,Pt|=Pt>>>2,Pt|=Pt>>>4,Pt|=Pt>>>8,Pt|=Pt>>>16,Pt++),Pt}(Dt)),Dt<=Et.length?Dt:Et.ended?Et.length:(Et.needReadable=!0,0))}function Lt(Dt){var Et=Dt._readableState;Et.needReadable=!1,Et.emittedReadable||(ct("emitReadable",Et.flowing),Et.emittedReadable=!0,Et.sync?rt.nextTick(Rt,Dt):Rt(Dt))}function Rt(Dt){ct("emit readable"),Dt.emit("readable"),Ct(Dt)}function St(Dt,Et){Et.readingMore||(Et.readingMore=!0,rt.nextTick(Tt,Dt,Et))}function Tt(Dt,Et){for(var Pt=Et.length;!Et.reading&&!Et.flowing&&!Et.ended&&Et.length=Et.length?(Pt=Et.decoder?Et.buffer.join(""):Et.buffer.length===1?Et.buffer.head.data:Et.buffer.concat(Et.length),Et.buffer.clear()):Pt=function(zt,en,Kt){var nn;return ztHt.length?Ht.length:Zt;if(qt===Ht.length?$t+=Ht:$t+=Ht.slice(0,Zt),(Zt-=qt)===0){qt===Ht.length?(++It,Vt.next?jt.head=Vt.next:jt.head=jt.tail=null):(jt.head=Vt,Vt.data=Ht.slice(qt));break}++It}return jt.length-=It,$t}(zt,en):function(Zt,jt){var Vt=lt.allocUnsafe(Zt),It=jt.head,$t=1;for(It.data.copy(Vt),Zt-=It.data.length;It=It.next;){var Ht=It.data,qt=Zt>Ht.length?Ht.length:Zt;if(Ht.copy(Vt,Vt.length-Zt,0,qt),(Zt-=qt)===0){qt===Ht.length?(++$t,It.next?jt.head=It.next:jt.head=jt.tail=null):(jt.head=It,It.data=Ht.slice(qt));break}++$t}return jt.length-=$t,Vt}(zt,en),nn}(Dt,Et.buffer,Et.decoder),Pt);var Pt}function Nt(Dt){var Et=Dt._readableState;if(Et.length>0)throw new Error('"endReadable()" called on non-empty stream');Et.endEmitted||(Et.ended=!0,rt.nextTick(Ot,Et,Dt))}function Ot(Dt,Et){Dt.endEmitted||Dt.length!==0||(Dt.endEmitted=!0,Et.readable=!1,Et.emit("end"))}function Wt(Dt,Et){for(var Pt=0,zt=Dt.length;Pt=Et.highWaterMark||Et.ended))return ct("read: emitReadable",Et.length,Et.ended),Et.length===0&&Et.ended?Nt(this):Lt(this),null;if((Dt=At(Dt,Et))===0&&Et.ended)return Et.length===0&&Nt(this),null;var zt,en=Et.needReadable;return ct("need readable",en),(Et.length===0||Et.length-Dt0?kt(Dt,Et):null)===null?(Et.needReadable=!0,Dt=0):Et.length-=Dt,Et.length===0&&(Et.ended||(Et.needReadable=!0),Pt!==Dt&&Et.ended&&Nt(this)),zt!==null&&this.emit("data",zt),zt},Ft.prototype._read=function(Dt){this.emit("error",new Error("_read() is not implemented"))},Ft.prototype.pipe=function(Dt,Et){var Pt=this,zt=this._readableState;switch(zt.pipesCount){case 0:zt.pipes=Dt;break;case 1:zt.pipes=[zt.pipes,Dt];break;default:zt.pipes.push(Dt)}zt.pipesCount+=1,ct("pipe count=%d opts=%j",zt.pipesCount,Et);var en=(!Et||Et.end!==!1)&&Dt!==nt.stdout&&Dt!==nt.stderr?nn:on;function Kt(Xt,dn){ct("onunpipe"),Xt===Pt&&dn&&dn.hasUnpiped===!1&&(dn.hasUnpiped=!0,ct("cleanup"),Dt.removeListener("close",Ht),Dt.removeListener("finish",qt),Dt.removeListener("drain",Zt),Dt.removeListener("error",$t),Dt.removeListener("unpipe",Kt),Pt.removeListener("end",nn),Pt.removeListener("end",on),Pt.removeListener("data",It),jt=!0,!zt.awaitDrain||Dt._writableState&&!Dt._writableState.needDrain||Zt())}function nn(){ct("onend"),Dt.end()}zt.endEmitted?rt.nextTick(en):Pt.once("end",en),Dt.on("unpipe",Kt);var Zt=function(Xt){return function(){var dn=Xt._readableState;ct("pipeOnDrain",dn.awaitDrain),dn.awaitDrain&&dn.awaitDrain--,dn.awaitDrain===0&&st(Xt,"data")&&(dn.flowing=!0,Ct(Xt))}}(Pt);Dt.on("drain",Zt);var jt=!1,Vt=!1;function It(Xt){ct("ondata"),Vt=!1,Dt.write(Xt)!==!1||Vt||((zt.pipesCount===1&&zt.pipes===Dt||zt.pipesCount>1&&Wt(zt.pipes,Dt)!==-1)&&!jt&&(ct("false write response, pause",Pt._readableState.awaitDrain),Pt._readableState.awaitDrain++,Vt=!0),Pt.pause())}function $t(Xt){ct("onerror",Xt),on(),Dt.removeListener("error",$t),st(Dt,"error")===0&&Dt.emit("error",Xt)}function Ht(){Dt.removeListener("finish",qt),on()}function qt(){ct("onfinish"),Dt.removeListener("close",Ht),on()}function on(){ct("unpipe"),Pt.unpipe(Dt)}return Pt.on("data",It),function(Xt,dn,_n){if(typeof Xt.prependListener=="function")return Xt.prependListener(dn,_n);Xt._events&&Xt._events[dn]?ot(Xt._events[dn])?Xt._events[dn].unshift(_n):Xt._events[dn]=[_n,Xt._events[dn]]:Xt.on(dn,_n)}(Dt,"error",$t),Dt.once("close",Ht),Dt.once("finish",qt),Dt.emit("pipe",Pt),zt.flowing||(ct("pipe resume"),Pt.resume()),Dt},Ft.prototype.unpipe=function(Dt){var Et=this._readableState,Pt={hasUnpiped:!1};if(Et.pipesCount===0)return this;if(Et.pipesCount===1)return Dt&&Dt!==Et.pipes||(Dt||(Dt=Et.pipes),Et.pipes=null,Et.pipesCount=0,Et.flowing=!1,Dt&&Dt.emit("unpipe",this,Pt)),this;if(!Dt){var zt=Et.pipes,en=Et.pipesCount;Et.pipes=null,Et.pipesCount=0,Et.flowing=!1;for(var Kt=0;Kt=0;Pt--)if(zt[Pt]!==en[Pt])return!1;for(Pt=zt.length-1;Pt>=0;Pt--)if(Et=zt[Pt],!Ft(Ct[Et],kt[Et],Nt,Ot))return!1;return!0}(Rt,St,Tt,Bt))}return Tt?Rt===St:Rt==St}function mt(Rt){return Object.prototype.toString.call(Rt)=="[object Arguments]"}function vt(Rt,St){if(!Rt||!St)return!1;if(Object.prototype.toString.call(St)=="[object RegExp]")return St.test(Rt);try{if(Rt instanceof St)return!0}catch{}return!Error.isPrototypeOf(St)&&St.call({},Rt)===!0}function At(Rt,St,Tt,Bt){var xt;if(typeof St!="function")throw new TypeError('"block" argument must be a function');typeof Tt=="string"&&(Bt=Tt,Tt=null),xt=function(Nt){var Ot;try{Nt()}catch(Wt){Ot=Wt}return Ot}(St),Bt=(Tt&&Tt.name?" ("+Tt.name+").":".")+(Bt?" "+Bt:"."),Rt&&!xt&&yt(xt,Tt,"Missing expected exception"+Bt);var Ct=typeof Bt=="string",kt=!Rt&&xt&&!Tt;if((!Rt&&ot.isError(xt)&&Ct&&vt(xt,Tt)||kt)&&yt(xt,Tt,"Got unwanted exception"+Bt),Rt&&xt&&Tt&&!vt(xt,Tt)||!Rt&&xt)throw xt}ht.AssertionError=function(Rt){this.name="AssertionError",this.actual=Rt.actual,this.expected=Rt.expected,this.operator=Rt.operator,Rt.message?(this.message=Rt.message,this.generatedMessage=!1):(this.message=function(Nt){return ft(gt(Nt.actual),128)+" "+Nt.operator+" "+ft(gt(Nt.expected),128)}(this),this.generatedMessage=!0);var St=Rt.stackStartFunction||yt;if(Error.captureStackTrace)Error.captureStackTrace(this,St);else{var Tt=new Error;if(Tt.stack){var Bt=Tt.stack,xt=pt(St),Ct=Bt.indexOf(` +`))}}Object.defineProperty(nt,it,{get:ot,set:ot})},forProperties:function(nt,rt,it){it.forEach(function(ot){var st=o.warn[rt](ot);Object.defineProperty(nt,ot,{get:st,set:st})})}}},function(s,o,et){(function(tt,nt,rt){var it=et(16);function ot(St){var Tt=this;this.next=null,this.entry=null,this.finish=function(){(function(Bt,xt,Ct){var kt=Bt.entry;for(Bt.entry=null;kt;){var Nt=kt.callback;xt.pendingcb--,Nt(Ct),kt=kt.next}xt.corkedRequestsFree?xt.corkedRequestsFree.next=Bt:xt.corkedRequestsFree=Bt})(Tt,St)}}s.exports=Ut;var st,at=!tt.browser&&["v0.10","v0.9."].indexOf(tt.version.slice(0,5))>-1?nt:it.nextTick;Ut.WritableState=yt;var lt=Object.create(et(17));lt.inherits=et(7);var ut={deprecate:et(43)},dt=et(63),ht=et(44).Buffer,ct=rt.Uint8Array||function(){},pt,ft=et(64);function gt(){}function yt(St,Tt){st=st||et(36),St=St||{};var Bt=Tt instanceof st;this.objectMode=!!St.objectMode,Bt&&(this.objectMode=this.objectMode||!!St.writableObjectMode);var xt=St.highWaterMark,Ct=St.writableHighWaterMark,kt=this.objectMode?16:16384;this.highWaterMark=xt||xt===0?xt:Bt&&(Ct||Ct===0)?Ct:kt,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Nt=St.decodeStrings===!1;this.decodeStrings=!Nt,this.defaultEncoding=St.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Ot){(function(Jt,Dt){var Et=Jt._writableState,Pt=Et.sync,zt=Et.writecb;if(function(Kt){Kt.writing=!1,Kt.writecb=null,Kt.length-=Kt.writelen,Kt.writelen=0}(Et),Dt)(function(Kt,nn,Zt,jt,Vt){--nn.pendingcb,Zt?(it.nextTick(Vt,jt),it.nextTick(Rt,Kt,nn),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt)):(Vt(jt),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt),Rt(Kt,nn))})(Jt,Et,Pt,Dt,zt);else{var en=At(Et);en||Et.corked||Et.bufferProcessing||!Et.bufferedRequest||vt(Jt,Et),Pt?at(mt,Jt,Et,en,zt):mt(Jt,Et,en,zt)}})(Tt,Ot)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new ot(this)}function Ut(St){if(st=st||et(36),!(pt.call(Ut,this)||this instanceof st))return new Ut(St);this._writableState=new yt(St,this),this.writable=!0,St&&(typeof St.write=="function"&&(this._write=St.write),typeof St.writev=="function"&&(this._writev=St.writev),typeof St.destroy=="function"&&(this._destroy=St.destroy),typeof St.final=="function"&&(this._final=St.final)),dt.call(this)}function Ft(St,Tt,Bt,xt,Ct,kt,Nt){Tt.writelen=xt,Tt.writecb=Nt,Tt.writing=!0,Tt.sync=!0,Bt?St._writev(Ct,Tt.onwrite):St._write(Ct,kt,Tt.onwrite),Tt.sync=!1}function mt(St,Tt,Bt,xt){Bt||function(Ct,kt){kt.length===0&&kt.needDrain&&(kt.needDrain=!1,Ct.emit("drain"))}(St,Tt),Tt.pendingcb--,xt(),Rt(St,Tt)}function vt(St,Tt){Tt.bufferProcessing=!0;var Bt=Tt.bufferedRequest;if(St._writev&&Bt&&Bt.next){var xt=Tt.bufferedRequestCount,Ct=new Array(xt),kt=Tt.corkedRequestsFree;kt.entry=Bt;for(var Nt=0,Ot=!0;Bt;)Ct[Nt]=Bt,Bt.isBuf||(Ot=!1),Bt=Bt.next,Nt+=1;Ct.allBuffers=Ot,Ft(St,Tt,!0,Tt.length,Ct,"",kt.finish),Tt.pendingcb++,Tt.lastBufferedRequest=null,kt.next?(Tt.corkedRequestsFree=kt.next,kt.next=null):Tt.corkedRequestsFree=new ot(Tt),Tt.bufferedRequestCount=0}else{for(;Bt;){var Jt=Bt.chunk,Dt=Bt.encoding,Et=Bt.callback;if(Ft(St,Tt,!1,Tt.objectMode?1:Jt.length,Jt,Dt,Et),Bt=Bt.next,Tt.bufferedRequestCount--,Tt.writing)break}Bt===null&&(Tt.lastBufferedRequest=null)}Tt.bufferedRequest=Bt,Tt.bufferProcessing=!1}function At(St){return St.ending&&St.length===0&&St.bufferedRequest===null&&!St.finished&&!St.writing}function Lt(St,Tt){St._final(function(Bt){Tt.pendingcb--,Bt&&St.emit("error",Bt),Tt.prefinished=!0,St.emit("prefinish"),Rt(St,Tt)})}function Rt(St,Tt){var Bt=At(Tt);return Bt&&(function(xt,Ct){Ct.prefinished||Ct.finalCalled||(typeof xt._final=="function"?(Ct.pendingcb++,Ct.finalCalled=!0,it.nextTick(Lt,xt,Ct)):(Ct.prefinished=!0,xt.emit("prefinish")))}(St,Tt),Tt.pendingcb===0&&(Tt.finished=!0,St.emit("finish"))),Bt}lt.inherits(Ut,dt),yt.prototype.getBuffer=function(){for(var St=this.bufferedRequest,Tt=[];St;)Tt.push(St),St=St.next;return Tt},function(){try{Object.defineProperty(yt.prototype,"buffer",{get:ut.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(pt=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ut,Symbol.hasInstance,{value:function(St){return!!pt.call(this,St)||this===Ut&&St&&St._writableState instanceof yt}})):pt=function(St){return St instanceof this},Ut.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Ut.prototype.write=function(St,Tt,Bt){var xt,Ct=this._writableState,kt=!1,Nt=!Ct.objectMode&&(xt=St,ht.isBuffer(xt)||xt instanceof ct);return Nt&&!ht.isBuffer(St)&&(St=function(Ot){return ht.from(Ot)}(St)),typeof Tt=="function"&&(Bt=Tt,Tt=null),Nt?Tt="buffer":Tt||(Tt=Ct.defaultEncoding),typeof Bt!="function"&&(Bt=gt),Ct.ended?function(Ot,Jt){var Dt=new Error("write after end");Ot.emit("error",Dt),it.nextTick(Jt,Dt)}(this,Bt):(Nt||function(Ot,Jt,Dt,Et){var Pt=!0,zt=!1;return Dt===null?zt=new TypeError("May not write null values to stream"):typeof Dt=="string"||Dt===void 0||Jt.objectMode||(zt=new TypeError("Invalid non-string/buffer chunk")),zt&&(Ot.emit("error",zt),it.nextTick(Et,zt),Pt=!1),Pt}(this,Ct,St,Bt))&&(Ct.pendingcb++,kt=function(Ot,Jt,Dt,Et,Pt,zt){if(!Dt){var en=function(jt,Vt,It){return jt.objectMode||jt.decodeStrings===!1||typeof Vt!="string"||(Vt=ht.from(Vt,It)),Vt}(Jt,Et,Pt);Et!==en&&(Dt=!0,Pt="buffer",Et=en)}var Kt=Jt.objectMode?1:Et.length;Jt.length+=Kt;var nn=Jt.length-1))throw new TypeError("Unknown encoding: "+St);return this._writableState.defaultEncoding=St,this},Object.defineProperty(Ut.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Ut.prototype._write=function(St,Tt,Bt){Bt(new Error("_write() is not implemented"))},Ut.prototype._writev=null,Ut.prototype.end=function(St,Tt,Bt){var xt=this._writableState;typeof St=="function"?(Bt=St,St=null,Tt=null):typeof Tt=="function"&&(Bt=Tt,Tt=null),St!=null&&this.write(St,Tt),xt.corked&&(xt.corked=1,this.uncork()),xt.ending||xt.finished||function(Ct,kt,Nt){kt.ending=!0,Rt(Ct,kt),Nt&&(kt.finished?it.nextTick(Nt):Ct.once("finish",Nt)),kt.ended=!0,Ct.writable=!1}(this,xt,Bt)},Object.defineProperty(Ut.prototype,"destroyed",{get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(St){this._writableState&&(this._writableState.destroyed=St)}}),Ut.prototype.destroy=ft.destroy,Ut.prototype._undestroy=ft.undestroy,Ut.prototype._destroy=function(St,Tt){this.end(),Tt(St)}}).call(this,et(2),et(15).setImmediate,et(6))},function(s,o,et){s.exports=et(21).EventEmitter},function(s,o,et){var tt=et(16);function nt(rt,it){rt.emit("error",it)}s.exports={destroy:function(rt,it){var ot=this,st=this._readableState&&this._readableState.destroyed,at=this._writableState&&this._writableState.destroyed;return st||at?(it?it(rt):!rt||this._writableState&&this._writableState.errorEmitted||tt.nextTick(nt,this,rt),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(rt||null,function(lt){!it&<?(tt.nextTick(nt,ot,lt),ot._writableState&&(ot._writableState.errorEmitted=!0)):it&&it(lt)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(s,o){},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(156)),nt=it(et(25)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)(function(ot,st,at,lt){return(0,tt.default)(st)(ot,(0,nt.default)(at),lt)},4),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){function nt(...rt){if(tt!==null){var it=tt;tt=null,it.apply(this,rt)}}return Object.assign(nt,tt),nt},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){if(tt===null)throw new Error("Callback was already called.");var rt=tt;tt=null,rt.apply(this,nt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){var rt=et(16);s.exports=Ft;var it,ot=et(42);Ft.ReadableState=Ut,et(21).EventEmitter;var st=function(Dt,Et){return Dt.listeners(Et).length},at=et(70),lt=et(47).Buffer,ut=tt.Uint8Array||function(){},dt=et(17);dt.inherits=et(7);var ht=et(162),ct=void 0;ct=ht&&ht.debuglog?ht.debuglog("stream"):function(){};var pt,ft=et(163),gt=et(71);dt.inherits(Ft,at);var yt=["error","close","destroy","pause","resume"];function Ut(Dt,Et){Dt=Dt||{};var Pt=Et instanceof(it=it||et(23));this.objectMode=!!Dt.objectMode,Pt&&(this.objectMode=this.objectMode||!!Dt.readableObjectMode);var zt=Dt.highWaterMark,en=Dt.readableHighWaterMark,Kt=this.objectMode?16:16384;this.highWaterMark=zt||zt===0?zt:Pt&&(en||en===0)?en:Kt,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new ft,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=Dt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Dt.encoding&&(pt||(pt=et(22).StringDecoder),this.decoder=new pt(Dt.encoding),this.encoding=Dt.encoding)}function Ft(Dt){if(it=it||et(23),!(this instanceof Ft))return new Ft(Dt);this._readableState=new Ut(Dt,this),this.readable=!0,Dt&&(typeof Dt.read=="function"&&(this._read=Dt.read),typeof Dt.destroy=="function"&&(this._destroy=Dt.destroy)),at.call(this)}function mt(Dt,Et,Pt,zt,en){var Kt,nn=Dt._readableState;return Et===null?(nn.reading=!1,function(Zt,jt){if(!jt.ended){if(jt.decoder){var Vt=jt.decoder.end();Vt&&Vt.length&&(jt.buffer.push(Vt),jt.length+=jt.objectMode?1:Vt.length)}jt.ended=!0,Lt(Zt)}}(Dt,nn)):(en||(Kt=function(Zt,jt){var Vt;It=jt,lt.isBuffer(It)||It instanceof ut||typeof jt=="string"||jt===void 0||Zt.objectMode||(Vt=new TypeError("Invalid non-string/buffer chunk"));var It;return Vt}(nn,Et)),Kt?Dt.emit("error",Kt):nn.objectMode||Et&&Et.length>0?(typeof Et=="string"||nn.objectMode||Object.getPrototypeOf(Et)===lt.prototype||(Et=function(Zt){return lt.from(Zt)}(Et)),zt?nn.endEmitted?Dt.emit("error",new Error("stream.unshift() after end event")):vt(Dt,nn,Et,!0):nn.ended?Dt.emit("error",new Error("stream.push() after EOF")):(nn.reading=!1,nn.decoder&&!Pt?(Et=nn.decoder.write(Et),nn.objectMode||Et.length!==0?vt(Dt,nn,Et,!1):St(Dt,nn)):vt(Dt,nn,Et,!1))):zt||(nn.reading=!1)),function(Zt){return!Zt.ended&&(Zt.needReadable||Zt.lengthEt.highWaterMark&&(Et.highWaterMark=function(Pt){return Pt>=8388608?Pt=8388608:(Pt--,Pt|=Pt>>>1,Pt|=Pt>>>2,Pt|=Pt>>>4,Pt|=Pt>>>8,Pt|=Pt>>>16,Pt++),Pt}(Dt)),Dt<=Et.length?Dt:Et.ended?Et.length:(Et.needReadable=!0,0))}function Lt(Dt){var Et=Dt._readableState;Et.needReadable=!1,Et.emittedReadable||(ct("emitReadable",Et.flowing),Et.emittedReadable=!0,Et.sync?rt.nextTick(Rt,Dt):Rt(Dt))}function Rt(Dt){ct("emit readable"),Dt.emit("readable"),Ct(Dt)}function St(Dt,Et){Et.readingMore||(Et.readingMore=!0,rt.nextTick(Tt,Dt,Et))}function Tt(Dt,Et){for(var Pt=Et.length;!Et.reading&&!Et.flowing&&!Et.ended&&Et.length=Et.length?(Pt=Et.decoder?Et.buffer.join(""):Et.buffer.length===1?Et.buffer.head.data:Et.buffer.concat(Et.length),Et.buffer.clear()):Pt=function(zt,en,Kt){var nn;return ztHt.length?Ht.length:Zt;if(qt===Ht.length?$t+=Ht:$t+=Ht.slice(0,Zt),(Zt-=qt)===0){qt===Ht.length?(++It,Vt.next?jt.head=Vt.next:jt.head=jt.tail=null):(jt.head=Vt,Vt.data=Ht.slice(qt));break}++It}return jt.length-=It,$t}(zt,en):function(Zt,jt){var Vt=lt.allocUnsafe(Zt),It=jt.head,$t=1;for(It.data.copy(Vt),Zt-=It.data.length;It=It.next;){var Ht=It.data,qt=Zt>Ht.length?Ht.length:Zt;if(Ht.copy(Vt,Vt.length-Zt,0,qt),(Zt-=qt)===0){qt===Ht.length?(++$t,It.next?jt.head=It.next:jt.head=jt.tail=null):(jt.head=It,It.data=Ht.slice(qt));break}++$t}return jt.length-=$t,Vt}(zt,en),nn}(Dt,Et.buffer,Et.decoder),Pt);var Pt}function Nt(Dt){var Et=Dt._readableState;if(Et.length>0)throw new Error('"endReadable()" called on non-empty stream');Et.endEmitted||(Et.ended=!0,rt.nextTick(Ot,Et,Dt))}function Ot(Dt,Et){Dt.endEmitted||Dt.length!==0||(Dt.endEmitted=!0,Et.readable=!1,Et.emit("end"))}function Jt(Dt,Et){for(var Pt=0,zt=Dt.length;Pt=Et.highWaterMark||Et.ended))return ct("read: emitReadable",Et.length,Et.ended),Et.length===0&&Et.ended?Nt(this):Lt(this),null;if((Dt=At(Dt,Et))===0&&Et.ended)return Et.length===0&&Nt(this),null;var zt,en=Et.needReadable;return ct("need readable",en),(Et.length===0||Et.length-Dt0?kt(Dt,Et):null)===null?(Et.needReadable=!0,Dt=0):Et.length-=Dt,Et.length===0&&(Et.ended||(Et.needReadable=!0),Pt!==Dt&&Et.ended&&Nt(this)),zt!==null&&this.emit("data",zt),zt},Ft.prototype._read=function(Dt){this.emit("error",new Error("_read() is not implemented"))},Ft.prototype.pipe=function(Dt,Et){var Pt=this,zt=this._readableState;switch(zt.pipesCount){case 0:zt.pipes=Dt;break;case 1:zt.pipes=[zt.pipes,Dt];break;default:zt.pipes.push(Dt)}zt.pipesCount+=1,ct("pipe count=%d opts=%j",zt.pipesCount,Et);var en=(!Et||Et.end!==!1)&&Dt!==nt.stdout&&Dt!==nt.stderr?nn:on;function Kt(Xt,dn){ct("onunpipe"),Xt===Pt&&dn&&dn.hasUnpiped===!1&&(dn.hasUnpiped=!0,ct("cleanup"),Dt.removeListener("close",Ht),Dt.removeListener("finish",qt),Dt.removeListener("drain",Zt),Dt.removeListener("error",$t),Dt.removeListener("unpipe",Kt),Pt.removeListener("end",nn),Pt.removeListener("end",on),Pt.removeListener("data",It),jt=!0,!zt.awaitDrain||Dt._writableState&&!Dt._writableState.needDrain||Zt())}function nn(){ct("onend"),Dt.end()}zt.endEmitted?rt.nextTick(en):Pt.once("end",en),Dt.on("unpipe",Kt);var Zt=function(Xt){return function(){var dn=Xt._readableState;ct("pipeOnDrain",dn.awaitDrain),dn.awaitDrain&&dn.awaitDrain--,dn.awaitDrain===0&&st(Xt,"data")&&(dn.flowing=!0,Ct(Xt))}}(Pt);Dt.on("drain",Zt);var jt=!1,Vt=!1;function It(Xt){ct("ondata"),Vt=!1,Dt.write(Xt)!==!1||Vt||((zt.pipesCount===1&&zt.pipes===Dt||zt.pipesCount>1&&Jt(zt.pipes,Dt)!==-1)&&!jt&&(ct("false write response, pause",Pt._readableState.awaitDrain),Pt._readableState.awaitDrain++,Vt=!0),Pt.pause())}function $t(Xt){ct("onerror",Xt),on(),Dt.removeListener("error",$t),st(Dt,"error")===0&&Dt.emit("error",Xt)}function Ht(){Dt.removeListener("finish",qt),on()}function qt(){ct("onfinish"),Dt.removeListener("close",Ht),on()}function on(){ct("unpipe"),Pt.unpipe(Dt)}return Pt.on("data",It),function(Xt,dn,_n){if(typeof Xt.prependListener=="function")return Xt.prependListener(dn,_n);Xt._events&&Xt._events[dn]?ot(Xt._events[dn])?Xt._events[dn].unshift(_n):Xt._events[dn]=[_n,Xt._events[dn]]:Xt.on(dn,_n)}(Dt,"error",$t),Dt.once("close",Ht),Dt.once("finish",qt),Dt.emit("pipe",Pt),zt.flowing||(ct("pipe resume"),Pt.resume()),Dt},Ft.prototype.unpipe=function(Dt){var Et=this._readableState,Pt={hasUnpiped:!1};if(Et.pipesCount===0)return this;if(Et.pipesCount===1)return Dt&&Dt!==Et.pipes||(Dt||(Dt=Et.pipes),Et.pipes=null,Et.pipesCount=0,Et.flowing=!1,Dt&&Dt.emit("unpipe",this,Pt)),this;if(!Dt){var zt=Et.pipes,en=Et.pipesCount;Et.pipes=null,Et.pipesCount=0,Et.flowing=!1;for(var Kt=0;Kt=0;Pt--)if(zt[Pt]!==en[Pt])return!1;for(Pt=zt.length-1;Pt>=0;Pt--)if(Et=zt[Pt],!Ft(Ct[Et],kt[Et],Nt,Ot))return!1;return!0}(Rt,St,Tt,Bt))}return Tt?Rt===St:Rt==St}function mt(Rt){return Object.prototype.toString.call(Rt)=="[object Arguments]"}function vt(Rt,St){if(!Rt||!St)return!1;if(Object.prototype.toString.call(St)=="[object RegExp]")return St.test(Rt);try{if(Rt instanceof St)return!0}catch{}return!Error.isPrototypeOf(St)&&St.call({},Rt)===!0}function At(Rt,St,Tt,Bt){var xt;if(typeof St!="function")throw new TypeError('"block" argument must be a function');typeof Tt=="string"&&(Bt=Tt,Tt=null),xt=function(Nt){var Ot;try{Nt()}catch(Jt){Ot=Jt}return Ot}(St),Bt=(Tt&&Tt.name?" ("+Tt.name+").":".")+(Bt?" "+Bt:"."),Rt&&!xt&&yt(xt,Tt,"Missing expected exception"+Bt);var Ct=typeof Bt=="string",kt=!Rt&&xt&&!Tt;if((!Rt&&ot.isError(xt)&&Ct&&vt(xt,Tt)||kt)&&yt(xt,Tt,"Got unwanted exception"+Bt),Rt&&xt&&Tt&&!vt(xt,Tt)||!Rt&&xt)throw xt}ht.AssertionError=function(Rt){this.name="AssertionError",this.actual=Rt.actual,this.expected=Rt.expected,this.operator=Rt.operator,Rt.message?(this.message=Rt.message,this.generatedMessage=!1):(this.message=function(Nt){return ft(gt(Nt.actual),128)+" "+Nt.operator+" "+ft(gt(Nt.expected),128)}(this),this.generatedMessage=!0);var St=Rt.stackStartFunction||yt;if(Error.captureStackTrace)Error.captureStackTrace(this,St);else{var Tt=new Error;if(Tt.stack){var Bt=Tt.stack,xt=pt(St),Ct=Bt.indexOf(` `+xt);if(Ct>=0){var kt=Bt.indexOf(` -`,Ct+1);Bt=Bt.substring(kt+1)}this.stack=Bt}}},ot.inherits(ht.AssertionError,Error),ht.fail=yt,ht.ok=Ut,ht.equal=function(Rt,St,Tt){Rt!=St&&yt(Rt,St,Tt,"==",ht.equal)},ht.notEqual=function(Rt,St,Tt){Rt==St&&yt(Rt,St,Tt,"!=",ht.notEqual)},ht.deepEqual=function(Rt,St,Tt){Ft(Rt,St,!1)||yt(Rt,St,Tt,"deepEqual",ht.deepEqual)},ht.deepStrictEqual=function(Rt,St,Tt){Ft(Rt,St,!0)||yt(Rt,St,Tt,"deepStrictEqual",ht.deepStrictEqual)},ht.notDeepEqual=function(Rt,St,Tt){Ft(Rt,St,!1)&&yt(Rt,St,Tt,"notDeepEqual",ht.notDeepEqual)},ht.notDeepStrictEqual=function Rt(St,Tt,Bt){Ft(St,Tt,!0)&&yt(St,Tt,Bt,"notDeepStrictEqual",Rt)},ht.strictEqual=function(Rt,St,Tt){Rt!==St&&yt(Rt,St,Tt,"===",ht.strictEqual)},ht.notStrictEqual=function(Rt,St,Tt){Rt===St&&yt(Rt,St,Tt,"!==",ht.notStrictEqual)},ht.throws=function(Rt,St,Tt){At(!0,Rt,St,Tt)},ht.doesNotThrow=function(Rt,St,Tt){At(!1,Rt,St,Tt)},ht.ifError=function(Rt){if(Rt)throw Rt},ht.strict=nt(function Rt(St,Tt){St||yt(St,!0,Tt,"==",Rt)},ht,{equal:ht.strictEqual,deepEqual:ht.deepStrictEqual,notEqual:ht.notStrictEqual,notDeepEqual:ht.notDeepStrictEqual}),ht.strict.strict=ht.strict;var Lt=Object.keys||function(Rt){var St=[];for(var Tt in Rt)st.call(Rt,Tt)&&St.push(Tt);return St}}).call(this,et(6))},function(s,o,et){s.exports=function(tt,nt,rt,it){for(var ot=65535&tt|0,st=tt>>>16&65535|0,at=0;rt!==0;){rt-=at=rt>2e3?2e3:rt;do st=st+(ot=ot+nt[it++]|0)|0;while(--at);ot%=65521,st%=65521}return ot|st<<16|0}},function(s,o,et){var tt=function(){for(var nt,rt=[],it=0;it<256;it++){nt=it;for(var ot=0;ot<8;ot++)nt=1&nt?3988292384^nt>>>1:nt>>>1;rt[it]=nt}return rt}();s.exports=function(nt,rt,it,ot){var st=tt,at=ot+it;nt^=-1;for(var lt=ot;lt>>8^st[255&(nt^rt[lt])];return-1^nt}},function(s,o,et){(function(tt,nt){var rt;s.exports=St,St.ReadableState=Rt,et(21).EventEmitter;var it=function(Zt,jt){return Zt.listeners(jt).length},ot=et(78),st=et(5).Buffer,at=tt.Uint8Array||function(){},lt,ut=et(179);lt=ut&&ut.debuglog?ut.debuglog("stream"):function(){};var dt,ht,ct,pt=et(180),ft=et(79),gt=et(80).getHighWaterMark,yt=et(26).codes,Ut=yt.ERR_INVALID_ARG_TYPE,Ft=yt.ERR_STREAM_PUSH_AFTER_EOF,mt=yt.ERR_METHOD_NOT_IMPLEMENTED,vt=yt.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;et(7)(St,ot);var At=ft.errorOrDestroy,Lt=["error","close","destroy","pause","resume"];function Rt(Zt,jt,Vt){rt=rt||et(27),Zt=Zt||{},typeof Vt!="boolean"&&(Vt=jt instanceof rt),this.objectMode=!!Zt.objectMode,Vt&&(this.objectMode=this.objectMode||!!Zt.readableObjectMode),this.highWaterMark=gt(this,Zt,"readableHighWaterMark",Vt),this.buffer=new pt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=Zt.emitClose!==!1,this.autoDestroy=!!Zt.autoDestroy,this.destroyed=!1,this.defaultEncoding=Zt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Zt.encoding&&(dt||(dt=et(22).StringDecoder),this.decoder=new dt(Zt.encoding),this.encoding=Zt.encoding)}function St(Zt){if(rt=rt||et(27),!(this instanceof St))return new St(Zt);var jt=this instanceof rt;this._readableState=new Rt(Zt,this,jt),this.readable=!0,Zt&&(typeof Zt.read=="function"&&(this._read=Zt.read),typeof Zt.destroy=="function"&&(this._destroy=Zt.destroy)),ot.call(this)}function Tt(Zt,jt,Vt,It,$t){lt("readableAddChunk",jt);var Ht,qt=Zt._readableState;if(jt===null)qt.reading=!1,function(on,Xt){if(lt("onEofChunk"),!Xt.ended){if(Xt.decoder){var dn=Xt.decoder.end();dn&&dn.length&&(Xt.buffer.push(dn),Xt.length+=Xt.objectMode?1:dn.length)}Xt.ended=!0,Xt.sync?Ct(on):(Xt.needReadable=!1,Xt.emittedReadable||(Xt.emittedReadable=!0,kt(on)))}}(Zt,qt);else if($t||(Ht=function(on,Xt){var dn;_n=Xt,st.isBuffer(_n)||_n instanceof at||typeof Xt=="string"||Xt===void 0||on.objectMode||(dn=new Ut("chunk",["string","Buffer","Uint8Array"],Xt));var _n;return dn}(qt,jt)),Ht)At(Zt,Ht);else if(qt.objectMode||jt&&jt.length>0)if(typeof jt=="string"||qt.objectMode||Object.getPrototypeOf(jt)===st.prototype||(jt=function(on){return st.from(on)}(jt)),It)qt.endEmitted?At(Zt,new vt):Bt(Zt,qt,jt,!0);else if(qt.ended)At(Zt,new Ft);else{if(qt.destroyed)return!1;qt.reading=!1,qt.decoder&&!Vt?(jt=qt.decoder.write(jt),qt.objectMode||jt.length!==0?Bt(Zt,qt,jt,!1):Nt(Zt,qt)):Bt(Zt,qt,jt,!1)}else It||(qt.reading=!1,Nt(Zt,qt));return!qt.ended&&(qt.lengthjt.highWaterMark&&(jt.highWaterMark=function(Vt){return Vt>=1073741824?Vt=1073741824:(Vt--,Vt|=Vt>>>1,Vt|=Vt>>>2,Vt|=Vt>>>4,Vt|=Vt>>>8,Vt|=Vt>>>16,Vt++),Vt}(Zt)),Zt<=jt.length?Zt:jt.ended?jt.length:(jt.needReadable=!0,0))}function Ct(Zt){var jt=Zt._readableState;lt("emitReadable",jt.needReadable,jt.emittedReadable),jt.needReadable=!1,jt.emittedReadable||(lt("emitReadable",jt.flowing),jt.emittedReadable=!0,nt.nextTick(kt,Zt))}function kt(Zt){var jt=Zt._readableState;lt("emitReadable_",jt.destroyed,jt.length,jt.ended),jt.destroyed||!jt.length&&!jt.ended||(Zt.emit("readable"),jt.emittedReadable=!1),jt.needReadable=!jt.flowing&&!jt.ended&&jt.length<=jt.highWaterMark,Pt(Zt)}function Nt(Zt,jt){jt.readingMore||(jt.readingMore=!0,nt.nextTick(Ot,Zt,jt))}function Ot(Zt,jt){for(;!jt.reading&&!jt.ended&&(jt.length0,jt.resumeScheduled&&!jt.paused?jt.flowing=!0:Zt.listenerCount("data")>0&&Zt.resume()}function Dt(Zt){lt("readable nexttick read 0"),Zt.read(0)}function Et(Zt,jt){lt("resume",jt.reading),jt.reading||Zt.read(0),jt.resumeScheduled=!1,Zt.emit("resume"),Pt(Zt),jt.flowing&&!jt.reading&&Zt.read(0)}function Pt(Zt){var jt=Zt._readableState;for(lt("flow",jt.flowing);jt.flowing&&Zt.read()!==null;);}function zt(Zt,jt){return jt.length===0?null:(jt.objectMode?Vt=jt.buffer.shift():!Zt||Zt>=jt.length?(Vt=jt.decoder?jt.buffer.join(""):jt.buffer.length===1?jt.buffer.first():jt.buffer.concat(jt.length),jt.buffer.clear()):Vt=jt.buffer.consume(Zt,jt.decoder),Vt);var Vt}function en(Zt){var jt=Zt._readableState;lt("endReadable",jt.endEmitted),jt.endEmitted||(jt.ended=!0,nt.nextTick(Kt,jt,Zt))}function Kt(Zt,jt){if(lt("endReadableNT",Zt.endEmitted,Zt.length),!Zt.endEmitted&&Zt.length===0&&(Zt.endEmitted=!0,jt.readable=!1,jt.emit("end"),Zt.autoDestroy)){var Vt=jt._writableState;(!Vt||Vt.autoDestroy&&Vt.finished)&&jt.destroy()}}function nn(Zt,jt){for(var Vt=0,It=Zt.length;Vt=jt.highWaterMark:jt.length>0)||jt.ended))return lt("read: emitReadable",jt.length,jt.ended),jt.length===0&&jt.ended?en(this):Ct(this),null;if((Zt=xt(Zt,jt))===0&&jt.ended)return jt.length===0&&en(this),null;var It,$t=jt.needReadable;return lt("need readable",$t),(jt.length===0||jt.length-Zt0?zt(Zt,jt):null)===null?(jt.needReadable=jt.length<=jt.highWaterMark,Zt=0):(jt.length-=Zt,jt.awaitDrain=0),jt.length===0&&(jt.ended||(jt.needReadable=!0),Vt!==Zt&&jt.ended&&en(this)),It!==null&&this.emit("data",It),It},St.prototype._read=function(Zt){At(this,new mt("_read()"))},St.prototype.pipe=function(Zt,jt){var Vt=this,It=this._readableState;switch(It.pipesCount){case 0:It.pipes=Zt;break;case 1:It.pipes=[It.pipes,Zt];break;default:It.pipes.push(Zt)}It.pipesCount+=1,lt("pipe count=%d opts=%j",It.pipesCount,jt);var $t=(!jt||jt.end!==!1)&&Zt!==nt.stdout&&Zt!==nt.stderr?qt:On;function Ht(gn,hn){lt("onunpipe"),gn===Vt&&hn&&hn.hasUnpiped===!1&&(hn.hasUnpiped=!0,lt("cleanup"),Zt.removeListener("close",Fn),Zt.removeListener("finish",Un),Zt.removeListener("drain",on),Zt.removeListener("error",_n),Zt.removeListener("unpipe",Ht),Vt.removeListener("end",qt),Vt.removeListener("end",On),Vt.removeListener("data",dn),Xt=!0,!It.awaitDrain||Zt._writableState&&!Zt._writableState.needDrain||on())}function qt(){lt("onend"),Zt.end()}It.endEmitted?nt.nextTick($t):Vt.once("end",$t),Zt.on("unpipe",Ht);var on=function(gn){return function(){var hn=gn._readableState;lt("pipeOnDrain",hn.awaitDrain),hn.awaitDrain&&hn.awaitDrain--,hn.awaitDrain===0&&it(gn,"data")&&(hn.flowing=!0,Pt(gn))}}(Vt);Zt.on("drain",on);var Xt=!1;function dn(gn){lt("ondata");var hn=Zt.write(gn);lt("dest.write",hn),hn===!1&&((It.pipesCount===1&&It.pipes===Zt||It.pipesCount>1&&nn(It.pipes,Zt)!==-1)&&!Xt&&(lt("false write response, pause",It.awaitDrain),It.awaitDrain++),Vt.pause())}function _n(gn){lt("onerror",gn),On(),Zt.removeListener("error",_n),it(Zt,"error")===0&&At(Zt,gn)}function Fn(){Zt.removeListener("finish",Un),On()}function Un(){lt("onfinish"),Zt.removeListener("close",Fn),On()}function On(){lt("unpipe"),Vt.unpipe(Zt)}return Vt.on("data",dn),function(gn,hn,wn){if(typeof gn.prependListener=="function")return gn.prependListener(hn,wn);gn._events&&gn._events[hn]?Array.isArray(gn._events[hn])?gn._events[hn].unshift(wn):gn._events[hn]=[wn,gn._events[hn]]:gn.on(hn,wn)}(Zt,"error",_n),Zt.once("close",Fn),Zt.once("finish",Un),Zt.emit("pipe",Vt),It.flowing||(lt("pipe resume"),Vt.resume()),Zt},St.prototype.unpipe=function(Zt){var jt=this._readableState,Vt={hasUnpiped:!1};if(jt.pipesCount===0)return this;if(jt.pipesCount===1)return Zt&&Zt!==jt.pipes||(Zt||(Zt=jt.pipes),jt.pipes=null,jt.pipesCount=0,jt.flowing=!1,Zt&&Zt.emit("unpipe",this,Vt)),this;if(!Zt){var It=jt.pipes,$t=jt.pipesCount;jt.pipes=null,jt.pipesCount=0,jt.flowing=!1;for(var Ht=0;Ht<$t;Ht++)It[Ht].emit("unpipe",this,{hasUnpiped:!1});return this}var qt=nn(jt.pipes,Zt);return qt===-1||(jt.pipes.splice(qt,1),jt.pipesCount-=1,jt.pipesCount===1&&(jt.pipes=jt.pipes[0]),Zt.emit("unpipe",this,Vt)),this},St.prototype.on=function(Zt,jt){var Vt=ot.prototype.on.call(this,Zt,jt),It=this._readableState;return Zt==="data"?(It.readableListening=this.listenerCount("readable")>0,It.flowing!==!1&&this.resume()):Zt==="readable"&&(It.endEmitted||It.readableListening||(It.readableListening=It.needReadable=!0,It.flowing=!1,It.emittedReadable=!1,lt("on readable",It.length,It.reading),It.length?Ct(this):It.reading||nt.nextTick(Dt,this))),Vt},St.prototype.addListener=St.prototype.on,St.prototype.removeListener=function(Zt,jt){var Vt=ot.prototype.removeListener.call(this,Zt,jt);return Zt==="readable"&&nt.nextTick(Wt,this),Vt},St.prototype.removeAllListeners=function(Zt){var jt=ot.prototype.removeAllListeners.apply(this,arguments);return Zt!=="readable"&&Zt!==void 0||nt.nextTick(Wt,this),jt},St.prototype.resume=function(){var Zt=this._readableState;return Zt.flowing||(lt("resume"),Zt.flowing=!Zt.readableListening,function(jt,Vt){Vt.resumeScheduled||(Vt.resumeScheduled=!0,nt.nextTick(Et,jt,Vt))}(this,Zt)),Zt.paused=!1,this},St.prototype.pause=function(){return lt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(lt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},St.prototype.wrap=function(Zt){var jt=this,Vt=this._readableState,It=!1;for(var $t in Zt.on("end",function(){if(lt("wrapped end"),Vt.decoder&&!Vt.ended){var qt=Vt.decoder.end();qt&&qt.length&&jt.push(qt)}jt.push(null)}),Zt.on("data",function(qt){lt("wrapped data"),Vt.decoder&&(qt=Vt.decoder.write(qt)),Vt.objectMode&&qt==null||(Vt.objectMode||qt&&qt.length)&&(jt.push(qt)||(It=!0,Zt.pause()))}),Zt)this[$t]===void 0&&typeof Zt[$t]=="function"&&(this[$t]=function(qt){return function(){return Zt[qt].apply(Zt,arguments)}}($t));for(var Ht=0;Ht-1))throw new vt(Ot);return this._writableState.defaultEncoding=Ot,this},Object.defineProperty(St.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(St.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),St.prototype._write=function(Ot,Wt,Dt){Dt(new ft("_write()"))},St.prototype._writev=null,St.prototype.end=function(Ot,Wt,Dt){var Et=this._writableState;return typeof Ot=="function"?(Dt=Ot,Ot=null,Wt=null):typeof Wt=="function"&&(Dt=Wt,Wt=null),Ot!=null&&this.write(Ot,Wt),Et.corked&&(Et.corked=1,this.uncork()),Et.ending||function(Pt,zt,en){zt.ending=!0,Nt(Pt,zt),en&&(zt.finished?nt.nextTick(en):Pt.once("finish",en)),zt.ended=!0,Pt.writable=!1}(this,Et,Dt),this},Object.defineProperty(St.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(St.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(Ot){this._writableState&&(this._writableState.destroyed=Ot)}}),St.prototype.destroy=dt.destroy,St.prototype._undestroy=dt.undestroy,St.prototype._destroy=function(Ot,Wt){Wt(Ot)}}).call(this,et(6),et(2))},function(s,o,et){s.exports=lt;var tt=et(26).codes,nt=tt.ERR_METHOD_NOT_IMPLEMENTED,rt=tt.ERR_MULTIPLE_CALLBACK,it=tt.ERR_TRANSFORM_ALREADY_TRANSFORMING,ot=tt.ERR_TRANSFORM_WITH_LENGTH_0,st=et(27);function at(ht,ct){var pt=this._transformState;pt.transforming=!1;var ft=pt.writecb;if(ft===null)return this.emit("error",new rt);pt.writechunk=null,pt.writecb=null,ct!=null&&this.push(ct),ft(ht);var gt=this._readableState;gt.reading=!1,(gt.needReadable||gt.lengthut._pos){var ct=ht.substr(ut._pos);if(ut._charset==="x-user-defined"){for(var pt=new nt(ct.length),ft=0;ftut._pos&&(ut.push(new nt(new Uint8Array(gt.result.slice(ut._pos)))),ut._pos=gt.result.byteLength)},gt.onload=function(){ut.push(null)},gt.readAsArrayBuffer(ht)}ut._xhr.readyState===at.DONE&&ut._mode!=="ms-stream"&&ut.push(null)}}).call(this,et(2),et(5).Buffer,et(6))},function(s,o,et){var tt=et(194),nt=et(196);function rt(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}o.parse=Ut,o.resolve=function(Ft,mt){return Ut(Ft,!1,!0).resolve(mt)},o.resolveObject=function(Ft,mt){return Ft?Ut(Ft,!1,!0).resolveObject(mt):mt},o.format=function(Ft){return nt.isString(Ft)&&(Ft=Ut(Ft)),Ft instanceof rt?Ft.format():rt.prototype.format.call(Ft)},o.Url=rt;var it=/^([a-z0-9.+-]+:)/i,ot=/:[0-9]*$/,st=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,at=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` -`," "]),lt=["'"].concat(at),ut=["%","/","?",";","#"].concat(lt),dt=["/","?","#"],ht=/^[+a-z0-9A-Z_-]{0,63}$/,ct=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,pt={javascript:!0,"javascript:":!0},ft={javascript:!0,"javascript:":!0},gt={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},yt=et(197);function Ut(Ft,mt,vt){if(Ft&&nt.isObject(Ft)&&Ft instanceof rt)return Ft;var At=new rt;return At.parse(Ft,mt,vt),At}rt.prototype.parse=function(Ft,mt,vt){if(!nt.isString(Ft))throw new TypeError("Parameter 'url' must be a string, not "+typeof Ft);var At=Ft.indexOf("?"),Lt=At!==-1&&At127?Kt+="x":Kt+=en[nn];if(!Kt.match(ht)){var jt=Pt.slice(0,Wt),Vt=Pt.slice(Wt+1),It=en.match(ct);It&&(jt.push(It[1]),Vt.unshift(It[2])),Vt.length&&(St="/"+Vt.join(".")+St),this.hostname=jt.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),Et||(this.hostname=tt.toASCII(this.hostname));var $t=this.port?":"+this.port:"",Ht=this.hostname||"";this.host=Ht+$t,this.href+=this.host,Et&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),St[0]!=="/"&&(St="/"+St))}if(!pt[xt])for(Wt=0,zt=lt.length;Wt0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),vt.search=Ft.search,vt.query=Ft.query,nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.href=vt.format(),vt;if(!en.length)return vt.pathname=null,vt.search?vt.path="/"+vt.search:vt.path=null,vt.href=vt.format(),vt;for(var nn=en.slice(-1)[0],Zt=(vt.host||Ft.host||en.length>1)&&(nn==="."||nn==="..")||nn==="",jt=0,Vt=en.length;Vt>=0;Vt--)(nn=en[Vt])==="."?en.splice(Vt,1):nn===".."?(en.splice(Vt,1),jt++):jt&&(en.splice(Vt,1),jt--);if(!Pt&&!zt)for(;jt--;jt)en.unshift("..");!Pt||en[0]===""||en[0]&&en[0].charAt(0)==="/"||en.unshift(""),Zt&&en.join("/").substr(-1)!=="/"&&en.push("");var It,$t=en[0]===""||en[0]&&en[0].charAt(0)==="/";return Kt&&(vt.hostname=vt.host=$t?"":en.length?en.shift():"",(It=!!(vt.host&&vt.host.indexOf("@")>0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),(Pt=Pt||vt.host&&en.length)&&!$t&&en.unshift(""),en.length?vt.pathname=en.join("/"):(vt.pathname=null,vt.path=null),nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.auth=Ft.auth||vt.auth,vt.slashes=vt.slashes||Ft.slashes,vt.href=vt.format(),vt},rt.prototype.parseHost=function(){var Ft=this.host,mt=ot.exec(Ft);mt&&((mt=mt[0])!==":"&&(this.port=mt.substr(1)),Ft=Ft.substr(0,Ft.length-mt.length)),Ft&&(this.hostname=Ft)}},function(s,o,et){const tt=nt=>nt!==null&&typeof nt=="object"&&typeof nt.pipe=="function";tt.writable=nt=>tt(nt)&&nt.writable!==!1&&typeof nt._write=="function"&&typeof nt._writableState=="object",tt.readable=nt=>tt(nt)&&nt.readable!==!1&&typeof nt._read=="function"&&typeof nt._readableState=="object",tt.duplex=nt=>tt.writable(nt)&&tt.readable(nt),tt.transform=nt=>tt.duplex(nt)&&typeof nt._transform=="function"&&typeof nt._transformState=="object",s.exports=tt},function(s,o,et){function tt(pt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ft){return typeof ft}:function(ft){return ft&&typeof Symbol=="function"&&ft.constructor===Symbol&&ft!==Symbol.prototype?"symbol":typeof ft})(pt)}function nt(pt,ft){if(!(pt instanceof ft))throw new TypeError("Cannot call a class as a function")}function rt(pt,ft){if(typeof ft!="function"&&ft!==null)throw new TypeError("Super expression must either be null or a function");pt.prototype=Object.create(ft&&ft.prototype,{constructor:{value:pt,writable:!0,configurable:!0}}),ft&&it(pt,ft)}function it(pt,ft){return(it=Object.setPrototypeOf||function(gt,yt){return gt.__proto__=yt,gt})(pt,ft)}function ot(pt){var ft=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var gt,yt=at(pt);if(ft){var Ut=at(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return st(this,gt)}}function st(pt,ft){return!ft||tt(ft)!=="object"&&typeof ft!="function"?function(gt){if(gt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return gt}(pt):ft}function at(pt){return(at=Object.setPrototypeOf?Object.getPrototypeOf:function(ft){return ft.__proto__||Object.getPrototypeOf(ft)})(pt)}var lt=et(3).LEVEL,ut=et(50),dt=et(202),ht=et(38)("winston:create-logger");function ct(pt){return"is"+pt.charAt(0).toUpperCase()+pt.slice(1)+"Enabled"}s.exports=function(){var pt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};pt.levels=pt.levels||ut.npm.levels;var ft=function(yt){rt(Ft,yt);var Ut=ot(Ft);function Ft(mt){return nt(this,Ft),Ut.call(this,mt)}return Ft}(dt),gt=new ft(pt);return Object.keys(pt.levels).forEach(function(yt){ht('Define prototype method for "%s"',yt),yt!=="log"?(ft.prototype[yt]=function(){for(var Ut=this||gt,Ft=arguments.length,mt=new Array(Ft),vt=0;vt>>16&65535|0,at=0;rt!==0;){rt-=at=rt>2e3?2e3:rt;do st=st+(ot=ot+nt[it++]|0)|0;while(--at);ot%=65521,st%=65521}return ot|st<<16|0}},function(s,o,et){var tt=function(){for(var nt,rt=[],it=0;it<256;it++){nt=it;for(var ot=0;ot<8;ot++)nt=1&nt?3988292384^nt>>>1:nt>>>1;rt[it]=nt}return rt}();s.exports=function(nt,rt,it,ot){var st=tt,at=ot+it;nt^=-1;for(var lt=ot;lt>>8^st[255&(nt^rt[lt])];return-1^nt}},function(s,o,et){(function(tt,nt){var rt;s.exports=St,St.ReadableState=Rt,et(21).EventEmitter;var it=function(Zt,jt){return Zt.listeners(jt).length},ot=et(78),st=et(5).Buffer,at=tt.Uint8Array||function(){},lt,ut=et(179);lt=ut&&ut.debuglog?ut.debuglog("stream"):function(){};var dt,ht,ct,pt=et(180),ft=et(79),gt=et(80).getHighWaterMark,yt=et(26).codes,Ut=yt.ERR_INVALID_ARG_TYPE,Ft=yt.ERR_STREAM_PUSH_AFTER_EOF,mt=yt.ERR_METHOD_NOT_IMPLEMENTED,vt=yt.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;et(7)(St,ot);var At=ft.errorOrDestroy,Lt=["error","close","destroy","pause","resume"];function Rt(Zt,jt,Vt){rt=rt||et(27),Zt=Zt||{},typeof Vt!="boolean"&&(Vt=jt instanceof rt),this.objectMode=!!Zt.objectMode,Vt&&(this.objectMode=this.objectMode||!!Zt.readableObjectMode),this.highWaterMark=gt(this,Zt,"readableHighWaterMark",Vt),this.buffer=new pt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=Zt.emitClose!==!1,this.autoDestroy=!!Zt.autoDestroy,this.destroyed=!1,this.defaultEncoding=Zt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Zt.encoding&&(dt||(dt=et(22).StringDecoder),this.decoder=new dt(Zt.encoding),this.encoding=Zt.encoding)}function St(Zt){if(rt=rt||et(27),!(this instanceof St))return new St(Zt);var jt=this instanceof rt;this._readableState=new Rt(Zt,this,jt),this.readable=!0,Zt&&(typeof Zt.read=="function"&&(this._read=Zt.read),typeof Zt.destroy=="function"&&(this._destroy=Zt.destroy)),ot.call(this)}function Tt(Zt,jt,Vt,It,$t){lt("readableAddChunk",jt);var Ht,qt=Zt._readableState;if(jt===null)qt.reading=!1,function(on,Xt){if(lt("onEofChunk"),!Xt.ended){if(Xt.decoder){var dn=Xt.decoder.end();dn&&dn.length&&(Xt.buffer.push(dn),Xt.length+=Xt.objectMode?1:dn.length)}Xt.ended=!0,Xt.sync?Ct(on):(Xt.needReadable=!1,Xt.emittedReadable||(Xt.emittedReadable=!0,kt(on)))}}(Zt,qt);else if($t||(Ht=function(on,Xt){var dn;_n=Xt,st.isBuffer(_n)||_n instanceof at||typeof Xt=="string"||Xt===void 0||on.objectMode||(dn=new Ut("chunk",["string","Buffer","Uint8Array"],Xt));var _n;return dn}(qt,jt)),Ht)At(Zt,Ht);else if(qt.objectMode||jt&&jt.length>0)if(typeof jt=="string"||qt.objectMode||Object.getPrototypeOf(jt)===st.prototype||(jt=function(on){return st.from(on)}(jt)),It)qt.endEmitted?At(Zt,new vt):Bt(Zt,qt,jt,!0);else if(qt.ended)At(Zt,new Ft);else{if(qt.destroyed)return!1;qt.reading=!1,qt.decoder&&!Vt?(jt=qt.decoder.write(jt),qt.objectMode||jt.length!==0?Bt(Zt,qt,jt,!1):Nt(Zt,qt)):Bt(Zt,qt,jt,!1)}else It||(qt.reading=!1,Nt(Zt,qt));return!qt.ended&&(qt.lengthjt.highWaterMark&&(jt.highWaterMark=function(Vt){return Vt>=1073741824?Vt=1073741824:(Vt--,Vt|=Vt>>>1,Vt|=Vt>>>2,Vt|=Vt>>>4,Vt|=Vt>>>8,Vt|=Vt>>>16,Vt++),Vt}(Zt)),Zt<=jt.length?Zt:jt.ended?jt.length:(jt.needReadable=!0,0))}function Ct(Zt){var jt=Zt._readableState;lt("emitReadable",jt.needReadable,jt.emittedReadable),jt.needReadable=!1,jt.emittedReadable||(lt("emitReadable",jt.flowing),jt.emittedReadable=!0,nt.nextTick(kt,Zt))}function kt(Zt){var jt=Zt._readableState;lt("emitReadable_",jt.destroyed,jt.length,jt.ended),jt.destroyed||!jt.length&&!jt.ended||(Zt.emit("readable"),jt.emittedReadable=!1),jt.needReadable=!jt.flowing&&!jt.ended&&jt.length<=jt.highWaterMark,Pt(Zt)}function Nt(Zt,jt){jt.readingMore||(jt.readingMore=!0,nt.nextTick(Ot,Zt,jt))}function Ot(Zt,jt){for(;!jt.reading&&!jt.ended&&(jt.length0,jt.resumeScheduled&&!jt.paused?jt.flowing=!0:Zt.listenerCount("data")>0&&Zt.resume()}function Dt(Zt){lt("readable nexttick read 0"),Zt.read(0)}function Et(Zt,jt){lt("resume",jt.reading),jt.reading||Zt.read(0),jt.resumeScheduled=!1,Zt.emit("resume"),Pt(Zt),jt.flowing&&!jt.reading&&Zt.read(0)}function Pt(Zt){var jt=Zt._readableState;for(lt("flow",jt.flowing);jt.flowing&&Zt.read()!==null;);}function zt(Zt,jt){return jt.length===0?null:(jt.objectMode?Vt=jt.buffer.shift():!Zt||Zt>=jt.length?(Vt=jt.decoder?jt.buffer.join(""):jt.buffer.length===1?jt.buffer.first():jt.buffer.concat(jt.length),jt.buffer.clear()):Vt=jt.buffer.consume(Zt,jt.decoder),Vt);var Vt}function en(Zt){var jt=Zt._readableState;lt("endReadable",jt.endEmitted),jt.endEmitted||(jt.ended=!0,nt.nextTick(Kt,jt,Zt))}function Kt(Zt,jt){if(lt("endReadableNT",Zt.endEmitted,Zt.length),!Zt.endEmitted&&Zt.length===0&&(Zt.endEmitted=!0,jt.readable=!1,jt.emit("end"),Zt.autoDestroy)){var Vt=jt._writableState;(!Vt||Vt.autoDestroy&&Vt.finished)&&jt.destroy()}}function nn(Zt,jt){for(var Vt=0,It=Zt.length;Vt=jt.highWaterMark:jt.length>0)||jt.ended))return lt("read: emitReadable",jt.length,jt.ended),jt.length===0&&jt.ended?en(this):Ct(this),null;if((Zt=xt(Zt,jt))===0&&jt.ended)return jt.length===0&&en(this),null;var It,$t=jt.needReadable;return lt("need readable",$t),(jt.length===0||jt.length-Zt0?zt(Zt,jt):null)===null?(jt.needReadable=jt.length<=jt.highWaterMark,Zt=0):(jt.length-=Zt,jt.awaitDrain=0),jt.length===0&&(jt.ended||(jt.needReadable=!0),Vt!==Zt&&jt.ended&&en(this)),It!==null&&this.emit("data",It),It},St.prototype._read=function(Zt){At(this,new mt("_read()"))},St.prototype.pipe=function(Zt,jt){var Vt=this,It=this._readableState;switch(It.pipesCount){case 0:It.pipes=Zt;break;case 1:It.pipes=[It.pipes,Zt];break;default:It.pipes.push(Zt)}It.pipesCount+=1,lt("pipe count=%d opts=%j",It.pipesCount,jt);var $t=(!jt||jt.end!==!1)&&Zt!==nt.stdout&&Zt!==nt.stderr?qt:On;function Ht(gn,hn){lt("onunpipe"),gn===Vt&&hn&&hn.hasUnpiped===!1&&(hn.hasUnpiped=!0,lt("cleanup"),Zt.removeListener("close",Fn),Zt.removeListener("finish",Un),Zt.removeListener("drain",on),Zt.removeListener("error",_n),Zt.removeListener("unpipe",Ht),Vt.removeListener("end",qt),Vt.removeListener("end",On),Vt.removeListener("data",dn),Xt=!0,!It.awaitDrain||Zt._writableState&&!Zt._writableState.needDrain||on())}function qt(){lt("onend"),Zt.end()}It.endEmitted?nt.nextTick($t):Vt.once("end",$t),Zt.on("unpipe",Ht);var on=function(gn){return function(){var hn=gn._readableState;lt("pipeOnDrain",hn.awaitDrain),hn.awaitDrain&&hn.awaitDrain--,hn.awaitDrain===0&&it(gn,"data")&&(hn.flowing=!0,Pt(gn))}}(Vt);Zt.on("drain",on);var Xt=!1;function dn(gn){lt("ondata");var hn=Zt.write(gn);lt("dest.write",hn),hn===!1&&((It.pipesCount===1&&It.pipes===Zt||It.pipesCount>1&&nn(It.pipes,Zt)!==-1)&&!Xt&&(lt("false write response, pause",It.awaitDrain),It.awaitDrain++),Vt.pause())}function _n(gn){lt("onerror",gn),On(),Zt.removeListener("error",_n),it(Zt,"error")===0&&At(Zt,gn)}function Fn(){Zt.removeListener("finish",Un),On()}function Un(){lt("onfinish"),Zt.removeListener("close",Fn),On()}function On(){lt("unpipe"),Vt.unpipe(Zt)}return Vt.on("data",dn),function(gn,hn,wn){if(typeof gn.prependListener=="function")return gn.prependListener(hn,wn);gn._events&&gn._events[hn]?Array.isArray(gn._events[hn])?gn._events[hn].unshift(wn):gn._events[hn]=[wn,gn._events[hn]]:gn.on(hn,wn)}(Zt,"error",_n),Zt.once("close",Fn),Zt.once("finish",Un),Zt.emit("pipe",Vt),It.flowing||(lt("pipe resume"),Vt.resume()),Zt},St.prototype.unpipe=function(Zt){var jt=this._readableState,Vt={hasUnpiped:!1};if(jt.pipesCount===0)return this;if(jt.pipesCount===1)return Zt&&Zt!==jt.pipes||(Zt||(Zt=jt.pipes),jt.pipes=null,jt.pipesCount=0,jt.flowing=!1,Zt&&Zt.emit("unpipe",this,Vt)),this;if(!Zt){var It=jt.pipes,$t=jt.pipesCount;jt.pipes=null,jt.pipesCount=0,jt.flowing=!1;for(var Ht=0;Ht<$t;Ht++)It[Ht].emit("unpipe",this,{hasUnpiped:!1});return this}var qt=nn(jt.pipes,Zt);return qt===-1||(jt.pipes.splice(qt,1),jt.pipesCount-=1,jt.pipesCount===1&&(jt.pipes=jt.pipes[0]),Zt.emit("unpipe",this,Vt)),this},St.prototype.on=function(Zt,jt){var Vt=ot.prototype.on.call(this,Zt,jt),It=this._readableState;return Zt==="data"?(It.readableListening=this.listenerCount("readable")>0,It.flowing!==!1&&this.resume()):Zt==="readable"&&(It.endEmitted||It.readableListening||(It.readableListening=It.needReadable=!0,It.flowing=!1,It.emittedReadable=!1,lt("on readable",It.length,It.reading),It.length?Ct(this):It.reading||nt.nextTick(Dt,this))),Vt},St.prototype.addListener=St.prototype.on,St.prototype.removeListener=function(Zt,jt){var Vt=ot.prototype.removeListener.call(this,Zt,jt);return Zt==="readable"&&nt.nextTick(Jt,this),Vt},St.prototype.removeAllListeners=function(Zt){var jt=ot.prototype.removeAllListeners.apply(this,arguments);return Zt!=="readable"&&Zt!==void 0||nt.nextTick(Jt,this),jt},St.prototype.resume=function(){var Zt=this._readableState;return Zt.flowing||(lt("resume"),Zt.flowing=!Zt.readableListening,function(jt,Vt){Vt.resumeScheduled||(Vt.resumeScheduled=!0,nt.nextTick(Et,jt,Vt))}(this,Zt)),Zt.paused=!1,this},St.prototype.pause=function(){return lt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(lt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},St.prototype.wrap=function(Zt){var jt=this,Vt=this._readableState,It=!1;for(var $t in Zt.on("end",function(){if(lt("wrapped end"),Vt.decoder&&!Vt.ended){var qt=Vt.decoder.end();qt&&qt.length&&jt.push(qt)}jt.push(null)}),Zt.on("data",function(qt){lt("wrapped data"),Vt.decoder&&(qt=Vt.decoder.write(qt)),Vt.objectMode&&qt==null||(Vt.objectMode||qt&&qt.length)&&(jt.push(qt)||(It=!0,Zt.pause()))}),Zt)this[$t]===void 0&&typeof Zt[$t]=="function"&&(this[$t]=function(qt){return function(){return Zt[qt].apply(Zt,arguments)}}($t));for(var Ht=0;Ht-1))throw new vt(Ot);return this._writableState.defaultEncoding=Ot,this},Object.defineProperty(St.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(St.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),St.prototype._write=function(Ot,Jt,Dt){Dt(new ft("_write()"))},St.prototype._writev=null,St.prototype.end=function(Ot,Jt,Dt){var Et=this._writableState;return typeof Ot=="function"?(Dt=Ot,Ot=null,Jt=null):typeof Jt=="function"&&(Dt=Jt,Jt=null),Ot!=null&&this.write(Ot,Jt),Et.corked&&(Et.corked=1,this.uncork()),Et.ending||function(Pt,zt,en){zt.ending=!0,Nt(Pt,zt),en&&(zt.finished?nt.nextTick(en):Pt.once("finish",en)),zt.ended=!0,Pt.writable=!1}(this,Et,Dt),this},Object.defineProperty(St.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(St.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(Ot){this._writableState&&(this._writableState.destroyed=Ot)}}),St.prototype.destroy=dt.destroy,St.prototype._undestroy=dt.undestroy,St.prototype._destroy=function(Ot,Jt){Jt(Ot)}}).call(this,et(6),et(2))},function(s,o,et){s.exports=lt;var tt=et(26).codes,nt=tt.ERR_METHOD_NOT_IMPLEMENTED,rt=tt.ERR_MULTIPLE_CALLBACK,it=tt.ERR_TRANSFORM_ALREADY_TRANSFORMING,ot=tt.ERR_TRANSFORM_WITH_LENGTH_0,st=et(27);function at(ht,ct){var pt=this._transformState;pt.transforming=!1;var ft=pt.writecb;if(ft===null)return this.emit("error",new rt);pt.writechunk=null,pt.writecb=null,ct!=null&&this.push(ct),ft(ht);var gt=this._readableState;gt.reading=!1,(gt.needReadable||gt.lengthut._pos){var ct=ht.substr(ut._pos);if(ut._charset==="x-user-defined"){for(var pt=new nt(ct.length),ft=0;ftut._pos&&(ut.push(new nt(new Uint8Array(gt.result.slice(ut._pos)))),ut._pos=gt.result.byteLength)},gt.onload=function(){ut.push(null)},gt.readAsArrayBuffer(ht)}ut._xhr.readyState===at.DONE&&ut._mode!=="ms-stream"&&ut.push(null)}}).call(this,et(2),et(5).Buffer,et(6))},function(s,o,et){var tt=et(194),nt=et(196);function rt(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}o.parse=Ut,o.resolve=function(Ft,mt){return Ut(Ft,!1,!0).resolve(mt)},o.resolveObject=function(Ft,mt){return Ft?Ut(Ft,!1,!0).resolveObject(mt):mt},o.format=function(Ft){return nt.isString(Ft)&&(Ft=Ut(Ft)),Ft instanceof rt?Ft.format():rt.prototype.format.call(Ft)},o.Url=rt;var it=/^([a-z0-9.+-]+:)/i,ot=/:[0-9]*$/,st=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,at=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` +`," "]),lt=["'"].concat(at),ut=["%","/","?",";","#"].concat(lt),dt=["/","?","#"],ht=/^[+a-z0-9A-Z_-]{0,63}$/,ct=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,pt={javascript:!0,"javascript:":!0},ft={javascript:!0,"javascript:":!0},gt={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},yt=et(197);function Ut(Ft,mt,vt){if(Ft&&nt.isObject(Ft)&&Ft instanceof rt)return Ft;var At=new rt;return At.parse(Ft,mt,vt),At}rt.prototype.parse=function(Ft,mt,vt){if(!nt.isString(Ft))throw new TypeError("Parameter 'url' must be a string, not "+typeof Ft);var At=Ft.indexOf("?"),Lt=At!==-1&&At127?Kt+="x":Kt+=en[nn];if(!Kt.match(ht)){var jt=Pt.slice(0,Jt),Vt=Pt.slice(Jt+1),It=en.match(ct);It&&(jt.push(It[1]),Vt.unshift(It[2])),Vt.length&&(St="/"+Vt.join(".")+St),this.hostname=jt.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),Et||(this.hostname=tt.toASCII(this.hostname));var $t=this.port?":"+this.port:"",Ht=this.hostname||"";this.host=Ht+$t,this.href+=this.host,Et&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),St[0]!=="/"&&(St="/"+St))}if(!pt[xt])for(Jt=0,zt=lt.length;Jt0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),vt.search=Ft.search,vt.query=Ft.query,nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.href=vt.format(),vt;if(!en.length)return vt.pathname=null,vt.search?vt.path="/"+vt.search:vt.path=null,vt.href=vt.format(),vt;for(var nn=en.slice(-1)[0],Zt=(vt.host||Ft.host||en.length>1)&&(nn==="."||nn==="..")||nn==="",jt=0,Vt=en.length;Vt>=0;Vt--)(nn=en[Vt])==="."?en.splice(Vt,1):nn===".."?(en.splice(Vt,1),jt++):jt&&(en.splice(Vt,1),jt--);if(!Pt&&!zt)for(;jt--;jt)en.unshift("..");!Pt||en[0]===""||en[0]&&en[0].charAt(0)==="/"||en.unshift(""),Zt&&en.join("/").substr(-1)!=="/"&&en.push("");var It,$t=en[0]===""||en[0]&&en[0].charAt(0)==="/";return Kt&&(vt.hostname=vt.host=$t?"":en.length?en.shift():"",(It=!!(vt.host&&vt.host.indexOf("@")>0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),(Pt=Pt||vt.host&&en.length)&&!$t&&en.unshift(""),en.length?vt.pathname=en.join("/"):(vt.pathname=null,vt.path=null),nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.auth=Ft.auth||vt.auth,vt.slashes=vt.slashes||Ft.slashes,vt.href=vt.format(),vt},rt.prototype.parseHost=function(){var Ft=this.host,mt=ot.exec(Ft);mt&&((mt=mt[0])!==":"&&(this.port=mt.substr(1)),Ft=Ft.substr(0,Ft.length-mt.length)),Ft&&(this.hostname=Ft)}},function(s,o,et){const tt=nt=>nt!==null&&typeof nt=="object"&&typeof nt.pipe=="function";tt.writable=nt=>tt(nt)&&nt.writable!==!1&&typeof nt._write=="function"&&typeof nt._writableState=="object",tt.readable=nt=>tt(nt)&&nt.readable!==!1&&typeof nt._read=="function"&&typeof nt._readableState=="object",tt.duplex=nt=>tt.writable(nt)&&tt.readable(nt),tt.transform=nt=>tt.duplex(nt)&&typeof nt._transform=="function"&&typeof nt._transformState=="object",s.exports=tt},function(s,o,et){function tt(pt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ft){return typeof ft}:function(ft){return ft&&typeof Symbol=="function"&&ft.constructor===Symbol&&ft!==Symbol.prototype?"symbol":typeof ft})(pt)}function nt(pt,ft){if(!(pt instanceof ft))throw new TypeError("Cannot call a class as a function")}function rt(pt,ft){if(typeof ft!="function"&&ft!==null)throw new TypeError("Super expression must either be null or a function");pt.prototype=Object.create(ft&&ft.prototype,{constructor:{value:pt,writable:!0,configurable:!0}}),ft&&it(pt,ft)}function it(pt,ft){return(it=Object.setPrototypeOf||function(gt,yt){return gt.__proto__=yt,gt})(pt,ft)}function ot(pt){var ft=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var gt,yt=at(pt);if(ft){var Ut=at(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return st(this,gt)}}function st(pt,ft){return!ft||tt(ft)!=="object"&&typeof ft!="function"?function(gt){if(gt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return gt}(pt):ft}function at(pt){return(at=Object.setPrototypeOf?Object.getPrototypeOf:function(ft){return ft.__proto__||Object.getPrototypeOf(ft)})(pt)}var lt=et(3).LEVEL,ut=et(50),dt=et(202),ht=et(38)("winston:create-logger");function ct(pt){return"is"+pt.charAt(0).toUpperCase()+pt.slice(1)+"Enabled"}s.exports=function(){var pt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};pt.levels=pt.levels||ut.npm.levels;var ft=function(yt){rt(Ft,yt);var Ut=ot(Ft);function Ft(mt){return nt(this,Ft),Ut.call(this,mt)}return Ft}(dt),gt=new ft(pt);return Object.keys(pt.levels).forEach(function(yt){ht('Define prototype method for "%s"',yt),yt!=="log"?(ft.prototype[yt]=function(){for(var Ut=this||gt,Ft=arguments.length,mt=new Array(Ft),vt=0;vt0){ot=at.substr(0,ht),st=at.substr(ht+1);var ct=ot.indexOf(".Module");ct>0&&(at=at.substr(ct+1),ot=ot.substr(0,ct))}lt=null}st&&(lt=ot,ut=st),st===""&&(ut=null,at=null);var pt={fileName:it[2]||null,lineNumber:parseInt(it[3],10)||null,functionName:at,typeName:lt,methodName:ut,columnNumber:parseInt(it[4],10)||null,native:dt};return nt._createParsedCallSite(pt)}}).filter(function(rt){return!!rt})},["this","typeName","functionName","methodName","fileName","lineNumber","columnNumber","function","evalOrigin"].forEach(function(tt){et.prototype[tt]=null,et.prototype["get"+tt[0].toUpperCase()+tt.substr(1)]=function(){return this[tt]}}),["topLevel","eval","native","constructor"].forEach(function(tt){et.prototype[tt]=!1,et.prototype["is"+tt[0].toUpperCase()+tt.substr(1)]=function(){return this[tt]}}),o._createParsedCallSite=function(tt){return new et(tt)}},function(s,o,et){function tt(lt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ut){return typeof ut}:function(ut){return ut&&typeof Symbol=="function"&&ut.constructor===Symbol&&ut!==Symbol.prototype?"symbol":typeof ut})(lt)}function nt(lt,ut){for(var dt=0;dt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var dt,ht=st(lt);if(ut){var ct=st(this).constructor;dt=Reflect.construct(ht,arguments,ct)}else dt=ht.apply(this,arguments);return ot(this,dt)}}function ot(lt,ut){return!ut||tt(ut)!=="object"&&typeof ut!="function"?function(dt){if(dt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return dt}(lt):ut}function st(lt){return(st=Object.setPrototypeOf?Object.getPrototypeOf:function(ut){return ut.__proto__||Object.getPrototypeOf(ut)})(lt)}var at=et(32).Writable;s.exports=function(lt){(function(pt,ft){if(typeof ft!="function"&&ft!==null)throw new TypeError("Super expression must either be null or a function");pt.prototype=Object.create(ft&&ft.prototype,{constructor:{value:pt,writable:!0,configurable:!0}}),ft&&rt(pt,ft)})(ct,lt);var ut,dt,ht=it(ct);function ct(pt){var ft;if(function(gt,yt){if(!(gt instanceof yt))throw new TypeError("Cannot call a class as a function")}(this,ct),ft=ht.call(this,{objectMode:!0}),!pt)throw new Error("ExceptionStream requires a TransportStream instance.");return ft.handleExceptions=!0,ft.transport=pt,ft}return ut=ct,(dt=[{key:"_write",value:function(pt,ft,gt){return pt.exception?this.transport.log(pt,gt):(gt(),!0)}}])&&nt(ut.prototype,dt),ct}(at)},function(s,o,et){(function(tt){function nt(ut,dt){for(var ht=0;ht0&&ot.writeString(1,st)},proto.google.protobuf.StringValue.prototype.getValue=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.google.protobuf.StringValue.prototype.setValue=function(it){return tt.Message.setProto3StringField(this,1,it)},tt.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.BytesValue.prototype.toObject=function(it){return proto.google.protobuf.BytesValue.toObject(it,this)},proto.google.protobuf.BytesValue.toObject=function(it,ot){var st={value:ot.getValue_asB64()};return it&&(st.$jspbMessageInstance=ot),st}),proto.google.protobuf.BytesValue.deserializeBinary=function(it){var ot=new tt.BinaryReader(it),st=new proto.google.protobuf.BytesValue;return proto.google.protobuf.BytesValue.deserializeBinaryFromReader(st,ot)},proto.google.protobuf.BytesValue.deserializeBinaryFromReader=function(it,ot){for(;ot.nextField()&&!ot.isEndGroup();)switch(ot.getFieldNumber()){case 1:var st=ot.readBytes();it.setValue(st);break;default:ot.skipField()}return it},proto.google.protobuf.BytesValue.prototype.serializeBinary=function(){var it=new tt.BinaryWriter;return proto.google.protobuf.BytesValue.serializeBinaryToWriter(this,it),it.getResultBuffer()},proto.google.protobuf.BytesValue.serializeBinaryToWriter=function(it,ot){var st;(st=it.getValue_asU8()).length>0&&ot.writeBytes(1,st)},proto.google.protobuf.BytesValue.prototype.getValue=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.google.protobuf.BytesValue.prototype.getValue_asB64=function(){return tt.Message.bytesAsB64(this.getValue())},proto.google.protobuf.BytesValue.prototype.getValue_asU8=function(){return tt.Message.bytesAsU8(this.getValue())},proto.google.protobuf.BytesValue.prototype.setValue=function(it){return tt.Message.setProto3BytesField(this,1,it)},nt.object.extend(o,proto.google.protobuf)},function(module,exports,__webpack_require__){(function(global,Buffer){var $jscomp=$jscomp||{};$jscomp.scope={},$jscomp.findInternal=function(s,o,et){s instanceof String&&(s=String(s));for(var tt=s.length,nt=0;nt=nt}},"es6","es3"),$jscomp.polyfill("Array.prototype.find",function(s){return s||function(o,et){return $jscomp.findInternal(this,o,et).v}},"es6","es3"),$jscomp.polyfill("String.prototype.startsWith",function(s){return s||function(o,et){var tt=$jscomp.checkStringArgs(this,o,"startsWith");o+="";var nt=tt.length,rt=o.length;et=Math.max(0,Math.min(0|et,tt.length));for(var it=0;it=rt}},"es6","es3"),$jscomp.polyfill("String.prototype.repeat",function(s){return s||function(o){var et=$jscomp.checkStringArgs(this,null,"repeat");if(0>o||1342177279>>=1)&&(et+=et);return tt}},"es6","es3");var COMPILED=!0,goog=goog||{};goog.global=this||self,goog.isDef=function(s){return s!==void 0},goog.isString=function(s){return typeof s=="string"},goog.isBoolean=function(s){return typeof s=="boolean"},goog.isNumber=function(s){return typeof s=="number"},goog.exportPath_=function(s,o,et){s=s.split("."),et=et||goog.global,s[0]in et||et.execScript===void 0||et.execScript("var "+s[0]);for(var tt;s.length&&(tt=s.shift());)!s.length&&goog.isDef(o)?et[tt]=o:et=et[tt]&&et[tt]!==Object.prototype[tt]?et[tt]:et[tt]={}},goog.define=function(s,o){return o},goog.FEATURESET_YEAR=2012,goog.DEBUG=!0,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.STRICT_MODE_COMPATIBLE=!1,goog.DISALLOW_TEST_ONLY_CODE=!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(s){if(goog.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");goog.constructNamespace_(s)},goog.constructNamespace_=function(s,o){goog.exportPath_(s,o)},goog.getScriptNonce=function(s){return s&&s!=goog.global?goog.getScriptNonce_(s.document):(goog.cspNonce_===null&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document)),goog.cspNonce_)},goog.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/,goog.cspNonce_=null,goog.getScriptNonce_=function(s){return(s=s.querySelector&&s.querySelector("script[nonce]"))&&(s=s.nonce||s.getAttribute("nonce"))&&goog.NONCE_PATTERN_.test(s)?s:""},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(s){if(!goog.isString(s)||!s||s.search(goog.VALID_MODULE_RE_)==-1)throw Error("Invalid module identifier");if(!goog.isInGoogModuleLoader_())throw Error("Module "+s+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");goog.moduleLoaderState_.moduleName=s},goog.module.get=function(s){return goog.module.getInternal_(s)},goog.module.getInternal_=function(s){return null},goog.ModuleType={ES6:"es6",GOOG:"goog"},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()},goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG},goog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var s=goog.global.$jscomp;return!!s&&typeof s.getCurrentModulePath=="function"&&!!s.getCurrentModulePath()},goog.module.declareLegacyNamespace=function(){goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.declareModuleId=function(s){if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=s;else{var o=goog.global.$jscomp;if(!o||typeof o.getCurrentModulePath!="function")throw Error('Module with namespace "'+s+'" has been loaded incorrectly.');o=o.require(o.getCurrentModulePath()),goog.loadedModules_[s]={exports:o,type:goog.ModuleType.ES6,moduleId:s}}},goog.setTestOnly=function(s){if(goog.DISALLOW_TEST_ONLY_CODE)throw s=s||"",Error("Importing test-only code into non-debug environment"+(s?": "+s:"."))},goog.forwardDeclare=function(s){},goog.getObjectByName=function(s,o){s=s.split("."),o=o||goog.global;for(var et=0;et>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(s){var o=goog.typeOf(s);if(o=="object"||o=="array"){if(typeof s.clone=="function")return s.clone();for(var et in o=o=="array"?[]:{},s)o[et]=goog.cloneObject(s[et]);return o}return s},goog.bindNative_=function(s,o,et){return s.call.apply(s.bind,arguments)},goog.bindJs_=function(s,o,et){if(!s)throw Error();if(2"u"||!TrustedTypes.createPolicy)return o;try{o=TrustedTypes.createPolicy(s,{createHTML:goog.identity_,createScript:goog.identity_,createScriptURL:goog.identity_,createURL:goog.identity_})}catch(et){goog.logToConsole_(et.message)}return o},goog.TRUSTED_TYPES_POLICY_=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#base"):null;var jspb={BinaryConstants:{},ConstBinaryMessage:function(){},BinaryMessage:function(){}};jspb.BinaryConstants.FieldType={INVALID:-1,DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18,FHASH64:30,VHASH64:31},jspb.BinaryConstants.WireType={INVALID:-1,VARINT:0,FIXED64:1,DELIMITED:2,START_GROUP:3,END_GROUP:4,FIXED32:5},jspb.BinaryConstants.FieldTypeToWireType=function(s){var o=jspb.BinaryConstants.FieldType,et=jspb.BinaryConstants.WireType;switch(s){case o.INT32:case o.INT64:case o.UINT32:case o.UINT64:case o.SINT32:case o.SINT64:case o.BOOL:case o.ENUM:case o.VHASH64:return et.VARINT;case o.DOUBLE:case o.FIXED64:case o.SFIXED64:case o.FHASH64:return et.FIXED64;case o.STRING:case o.MESSAGE:case o.BYTES:return et.DELIMITED;case o.FLOAT:case o.FIXED32:case o.SFIXED32:return et.FIXED32;default:return et.INVALID}},jspb.BinaryConstants.INVALID_FIELD_NUMBER=-1,jspb.BinaryConstants.FLOAT32_EPS=1401298464324817e-60,jspb.BinaryConstants.FLOAT32_MIN=11754943508222875e-54,jspb.BinaryConstants.FLOAT32_MAX=34028234663852886e22,jspb.BinaryConstants.FLOAT64_EPS=5e-324,jspb.BinaryConstants.FLOAT64_MIN=22250738585072014e-324,jspb.BinaryConstants.FLOAT64_MAX=17976931348623157e292,jspb.BinaryConstants.TWO_TO_20=1048576,jspb.BinaryConstants.TWO_TO_23=8388608,jspb.BinaryConstants.TWO_TO_31=2147483648,jspb.BinaryConstants.TWO_TO_32=4294967296,jspb.BinaryConstants.TWO_TO_52=4503599627370496,jspb.BinaryConstants.TWO_TO_63=9223372036854776e3,jspb.BinaryConstants.TWO_TO_64=18446744073709552e3,jspb.BinaryConstants.ZERO_HASH="\0\0\0\0\0\0\0\0",goog.dom={},goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12},goog.debug={},goog.debug.Error=function(s){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var o=Error().stack;o&&(this.stack=o)}s&&(this.message=String(s)),this.reportErrorToServer=!0},goog.inherits(goog.debug.Error,Error),goog.debug.Error.prototype.name="CustomError",goog.asserts={},goog.asserts.ENABLE_ASSERTS=goog.DEBUG,goog.asserts.AssertionError=function(s,o){goog.debug.Error.call(this,goog.asserts.subs_(s,o)),this.messagePattern=s},goog.inherits(goog.asserts.AssertionError,goog.debug.Error),goog.asserts.AssertionError.prototype.name="AssertionError",goog.asserts.DEFAULT_ERROR_HANDLER=function(s){throw s},goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER,goog.asserts.subs_=function(s,o){for(var et="",tt=(s=s.split("%s")).length-1,nt=0;ntet?Math.max(0,s.length+et):et,goog.isString(s))return goog.isString(o)&&o.length==1?s.indexOf(o,et):-1;for(;et(et=et??s.length-1)&&(et=Math.max(0,s.length+et)),goog.isString(s))return goog.isString(o)&&o.length==1?s.lastIndexOf(o,et):-1;for(;0<=et;et--)if(et in s&&s[et]===o)return et;return-1},goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(s,o,et){goog.asserts.assert(s.length!=null),Array.prototype.forEach.call(s,o,et)}:function(s,o,et){for(var tt=s.length,nt=goog.isString(s)?s.split(""):s,rt=0;rt(o=goog.array.findIndex(s,o,et))?null:goog.isString(s)?s.charAt(o):s[o]},goog.array.findIndex=function(s,o,et){for(var tt=s.length,nt=goog.isString(s)?s.split(""):s,rt=0;rt(o=goog.array.findIndexRight(s,o,et))?null:goog.isString(s)?s.charAt(o):s[o]},goog.array.findIndexRight=function(s,o,et){var tt=s.length,nt=goog.isString(s)?s.split(""):s;for(--tt;0<=tt;tt--)if(tt in nt&&o.call(et,nt[tt],tt,s))return tt;return-1},goog.array.contains=function(s,o){return 0<=goog.array.indexOf(s,o)},goog.array.isEmpty=function(s){return s.length==0},goog.array.clear=function(s){if(!goog.isArray(s))for(var o=s.length-1;0<=o;o--)delete s[o];s.length=0},goog.array.insert=function(s,o){goog.array.contains(s,o)||s.push(o)},goog.array.insertAt=function(s,o,et){goog.array.splice(s,et,0,o)},goog.array.insertArrayAt=function(s,o,et){goog.partial(goog.array.splice,s,et,0).apply(null,o)},goog.array.insertBefore=function(s,o,et){var tt;arguments.length==2||0>(tt=goog.array.indexOf(s,et))?s.push(o):goog.array.insertAt(s,o,tt)},goog.array.remove=function(s,o){var et;return(et=0<=(o=goog.array.indexOf(s,o)))&&goog.array.removeAt(s,o),et},goog.array.removeLast=function(s,o){return 0<=(o=goog.array.lastIndexOf(s,o))&&(goog.array.removeAt(s,o),!0)},goog.array.removeAt=function(s,o){return goog.asserts.assert(s.length!=null),Array.prototype.splice.call(s,o,1).length==1},goog.array.removeIf=function(s,o,et){return 0<=(o=goog.array.findIndex(s,o,et))&&(goog.array.removeAt(s,o),!0)},goog.array.removeAllIf=function(s,o,et){var tt=0;return goog.array.forEachRight(s,function(nt,rt){o.call(et,nt,rt,s)&&goog.array.removeAt(s,rt)&&tt++}),tt},goog.array.concat=function(s){return Array.prototype.concat.apply([],arguments)},goog.array.join=function(s){return Array.prototype.concat.apply([],arguments)},goog.array.toArray=function(s){var o=s.length;if(0=arguments.length?Array.prototype.slice.call(s,o):Array.prototype.slice.call(s,o,et)},goog.array.removeDuplicates=function(s,o,et){o=o||s;var tt=function(st){return goog.isObject(st)?"o"+goog.getUid(st):(typeof st).charAt(0)+st};et=et||tt,tt={};for(var nt=0,rt=0;rt>1,at=et?o.call(nt,s[st],st,s):o(tt,s[st]);0o?1:s(et=goog.array.binarySearch(s,o,et))&&(goog.array.insertAt(s,o,-(et+1)),!0)},goog.array.binaryRemove=function(s,o,et){return 0<=(o=goog.array.binarySearch(s,o,et))&&goog.array.removeAt(s,o)},goog.array.bucket=function(s,o,et){for(var tt={},nt=0;nt(et=et||1)*(rt-nt))return[];if(0rt;s+=et)tt.push(s);return tt},goog.array.repeat=function(s,o){for(var et=[],tt=0;tto&&Array.prototype.push.apply(s,s.splice(0,-o))),s},goog.array.moveItem=function(s,o,et){goog.asserts.assert(0<=o&&o>=8),o[et++]=nt}return o},goog.crypt.byteArrayToString=function(s){if(8192>=s.length)return String.fromCharCode.apply(null,s);for(var o="",et=0;etnt?o[et++]=nt:(2048>nt?o[et++]=nt>>6|192:((64512&nt)==55296&&tt+1>18|240,o[et++]=nt>>12&63|128):o[et++]=nt>>12|224,o[et++]=nt>>6&63|128),o[et++]=63&nt|128)}return o},goog.crypt.utf8ByteArrayToString=function(s){for(var o=[],et=0,tt=0;etnt)o[tt++]=String.fromCharCode(nt);else if(191nt){var rt=s[et++];o[tt++]=String.fromCharCode((31&nt)<<6|63&rt)}else if(239nt){rt=s[et++];var it=s[et++];nt=((7&nt)<<18|(63&rt)<<12|(63&it)<<6|63&s[et++])-65536,o[tt++]=String.fromCharCode(55296+(nt>>10)),o[tt++]=String.fromCharCode(56320+(1023&nt))}else rt=s[et++],it=s[et++],o[tt++]=String.fromCharCode((15&nt)<<12|(63&rt)<<6|63&it)}return o.join("")},goog.crypt.xorByteArray=function(s,o){goog.asserts.assert(s.length==o.length,"XOR array lengths must match");for(var et=[],tt=0;tt":"
")},goog.string.internal.htmlEscape=function(s,o){if(o)s=s.replace(goog.string.internal.AMP_RE_,"&").replace(goog.string.internal.LT_RE_,"<").replace(goog.string.internal.GT_RE_,">").replace(goog.string.internal.QUOT_RE_,""").replace(goog.string.internal.SINGLE_QUOTE_RE_,"'").replace(goog.string.internal.NULL_RE_,"�");else{if(!goog.string.internal.ALL_RE_.test(s))return s;s.indexOf("&")!=-1&&(s=s.replace(goog.string.internal.AMP_RE_,"&")),s.indexOf("<")!=-1&&(s=s.replace(goog.string.internal.LT_RE_,"<")),s.indexOf(">")!=-1&&(s=s.replace(goog.string.internal.GT_RE_,">")),s.indexOf('"')!=-1&&(s=s.replace(goog.string.internal.QUOT_RE_,""")),s.indexOf("'")!=-1&&(s=s.replace(goog.string.internal.SINGLE_QUOTE_RE_,"'")),s.indexOf("\0")!=-1&&(s=s.replace(goog.string.internal.NULL_RE_,"�"))}return s},goog.string.internal.AMP_RE_=/&/g,goog.string.internal.LT_RE_=//g,goog.string.internal.QUOT_RE_=/"/g,goog.string.internal.SINGLE_QUOTE_RE_=/'/g,goog.string.internal.NULL_RE_=/\x00/g,goog.string.internal.ALL_RE_=/[\x00&<>"']/,goog.string.internal.whitespaceEscape=function(s,o){return goog.string.internal.newLineToBr(s.replace(/ /g,"  "),o)},goog.string.internal.contains=function(s,o){return s.indexOf(o)!=-1},goog.string.internal.caseInsensitiveContains=function(s,o){return goog.string.internal.contains(s.toLowerCase(),o.toLowerCase())},goog.string.internal.compareVersions=function(s,o){var et=0;s=goog.string.internal.trim(String(s)).split("."),o=goog.string.internal.trim(String(o)).split(".");for(var tt=Math.max(s.length,o.length),nt=0;et==0&&nto?1:0},goog.string.TypedString=function(){},goog.string.Const=function(s,o){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_=s===goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_&&o||"",this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_},goog.string.Const.prototype.implementsGoogStringTypedString=!0,goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_},goog.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"},goog.string.Const.unwrap=function(s){return s instanceof goog.string.Const&&s.constructor===goog.string.Const&&s.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_?s.stringConstValueWithSecurityContract__googStringSecurityPrivate_:(goog.asserts.fail("expected object of type Const, got '"+s+"'"),"type_error:Const")},goog.string.Const.from=function(s){return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_,s)},goog.string.Const.TYPE_MARKER_={},goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_={},goog.string.Const.EMPTY=goog.string.Const.from(""),goog.fs={},goog.fs.url={},goog.fs.url.createObjectUrl=function(s){return goog.fs.url.getUrlObject_().createObjectURL(s)},goog.fs.url.revokeObjectUrl=function(s){goog.fs.url.getUrlObject_().revokeObjectURL(s)},goog.fs.url.getUrlObject_=function(){var s=goog.fs.url.findUrlObject_();if(s!=null)return s;throw Error("This browser doesn't seem to support blob URLs")},goog.fs.url.findUrlObject_=function(){return goog.isDef(goog.global.URL)&&goog.isDef(goog.global.URL.createObjectURL)?goog.global.URL:goog.isDef(goog.global.webkitURL)&&goog.isDef(goog.global.webkitURL.createObjectURL)?goog.global.webkitURL:goog.isDef(goog.global.createObjectURL)?goog.global:null},goog.fs.url.browserSupportsObjectUrls=function(){return goog.fs.url.findUrlObject_()!=null},goog.html={},goog.html.trustedtypes={},goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#html"):null,goog.i18n={},goog.i18n.bidi={},goog.i18n.bidi.FORCE_RTL=!1,goog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||(goog.LOCALE.substring(0,2).toLowerCase()=="ar"||goog.LOCALE.substring(0,2).toLowerCase()=="fa"||goog.LOCALE.substring(0,2).toLowerCase()=="he"||goog.LOCALE.substring(0,2).toLowerCase()=="iw"||goog.LOCALE.substring(0,2).toLowerCase()=="ps"||goog.LOCALE.substring(0,2).toLowerCase()=="sd"||goog.LOCALE.substring(0,2).toLowerCase()=="ug"||goog.LOCALE.substring(0,2).toLowerCase()=="ur"||goog.LOCALE.substring(0,2).toLowerCase()=="yi")&&(goog.LOCALE.length==2||goog.LOCALE.substring(2,3)=="-"||goog.LOCALE.substring(2,3)=="_")||3<=goog.LOCALE.length&&goog.LOCALE.substring(0,3).toLowerCase()=="ckb"&&(goog.LOCALE.length==3||goog.LOCALE.substring(3,4)=="-"||goog.LOCALE.substring(3,4)=="_")||7<=goog.LOCALE.length&&(goog.LOCALE.substring(2,3)=="-"||goog.LOCALE.substring(2,3)=="_")&&(goog.LOCALE.substring(3,7).toLowerCase()=="adlm"||goog.LOCALE.substring(3,7).toLowerCase()=="arab"||goog.LOCALE.substring(3,7).toLowerCase()=="hebr"||goog.LOCALE.substring(3,7).toLowerCase()=="nkoo"||goog.LOCALE.substring(3,7).toLowerCase()=="rohg"||goog.LOCALE.substring(3,7).toLowerCase()=="thaa")||8<=goog.LOCALE.length&&(goog.LOCALE.substring(3,4)=="-"||goog.LOCALE.substring(3,4)=="_")&&(goog.LOCALE.substring(4,8).toLowerCase()=="adlm"||goog.LOCALE.substring(4,8).toLowerCase()=="arab"||goog.LOCALE.substring(4,8).toLowerCase()=="hebr"||goog.LOCALE.substring(4,8).toLowerCase()=="nkoo"||goog.LOCALE.substring(4,8).toLowerCase()=="rohg"||goog.LOCALE.substring(4,8).toLowerCase()=="thaa"),goog.i18n.bidi.Format={LRE:"‪",RLE:"‫",PDF:"‬",LRM:"‎",RLM:"‏"},goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0},goog.i18n.bidi.RIGHT="right",goog.i18n.bidi.LEFT="left",goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT,goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,goog.i18n.bidi.toDir=function(s,o){return typeof s=="number"?0s?goog.i18n.bidi.Dir.RTL:o?null:goog.i18n.bidi.Dir.NEUTRAL:s==null?null:s?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.ltrChars_="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ऀ-῿‎Ⰰ-\uD801\uD804-\uD839\uD83C-\uDBFF豈-﬜︀-﹯﻽-￿",goog.i18n.bidi.rtlChars_="֑-ۯۺ-ࣿ‏\uD802-\uD803\uD83A-\uD83Bיִ-﷿ﹰ-ﻼ",goog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g,goog.i18n.bidi.stripHtmlIfNeeded_=function(s,o){return o?s.replace(goog.i18n.bidi.htmlSkipReg_,""):s},goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.hasAnyRtl=function(s,o){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl,goog.i18n.bidi.hasAnyLtr=function(s,o){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.isRtlChar=function(s){return goog.i18n.bidi.rtlRe_.test(s)},goog.i18n.bidi.isLtrChar=function(s){return goog.i18n.bidi.ltrRe_.test(s)},goog.i18n.bidi.isNeutralChar=function(s){return!goog.i18n.bidi.isLtrChar(s)&&!goog.i18n.bidi.isRtlChar(s)},goog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.startsWithRtl=function(s,o){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl,goog.i18n.bidi.startsWithLtr=function(s,o){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr,goog.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/,goog.i18n.bidi.isNeutralText=function(s,o){return s=goog.i18n.bidi.stripHtmlIfNeeded_(s,o),goog.i18n.bidi.isRequiredLtrRe_.test(s)||!goog.i18n.bidi.hasAnyLtr(s)&&!goog.i18n.bidi.hasAnyRtl(s)},goog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$"),goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$"),goog.i18n.bidi.endsWithLtr=function(s,o){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr,goog.i18n.bidi.endsWithRtl=function(s,o){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl,goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i,goog.i18n.bidi.isRtlLanguage=function(s){return goog.i18n.bidi.rtlLocalesRe_.test(s)},goog.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g,goog.i18n.bidi.guardBracketInText=function(s,o){return o=(o===void 0?goog.i18n.bidi.hasAnyRtl(s):o)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM,s.replace(goog.i18n.bidi.bracketGuardTextRe_,o+"$&"+o)},goog.i18n.bidi.enforceRtlInHtml=function(s){return s.charAt(0)=="<"?s.replace(/<\w+/,"$& dir=rtl"):` `+s+""},goog.i18n.bidi.enforceRtlInText=function(s){return goog.i18n.bidi.Format.RLE+s+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.enforceLtrInHtml=function(s){return s.charAt(0)=="<"?s.replace(/<\w+/,"$& dir=ltr"):` `+s+""},goog.i18n.bidi.enforceLtrInText=function(s){return goog.i18n.bidi.Format.LRE+s+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g,goog.i18n.bidi.leftRe_=/left/gi,goog.i18n.bidi.rightRe_=/right/gi,goog.i18n.bidi.tempRe_=/%%%%/g,goog.i18n.bidi.mirrorCSS=function(s){return s.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)},goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g,goog.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g,goog.i18n.bidi.normalizeHebrewQuote=function(s){return s.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1״").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1׳")},goog.i18n.bidi.wordSeparatorRe_=/\s+/,goog.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/,goog.i18n.bidi.rtlDetectionThreshold_=.4,goog.i18n.bidi.estimateDirection=function(s,o){var et=0,tt=0,nt=!1;for(s=goog.i18n.bidi.stripHtmlIfNeeded_(s,o).split(goog.i18n.bidi.wordSeparatorRe_),o=0;ogoog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.detectRtlDirectionality=function(s,o){return goog.i18n.bidi.estimateDirection(s,o)==goog.i18n.bidi.Dir.RTL},goog.i18n.bidi.setElementDirAndAlign=function(s,o){s&&(o=goog.i18n.bidi.toDir(o))&&(s.style.textAlign=o==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,s.dir=o==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")},goog.i18n.bidi.setElementDirByTextDirectionality=function(s,o){switch(goog.i18n.bidi.estimateDirection(o)){case goog.i18n.bidi.Dir.LTR:s.dir="ltr";break;case goog.i18n.bidi.Dir.RTL:s.dir="rtl";break;default:s.removeAttribute("dir")}},goog.i18n.bidi.DirectionalString=function(){},goog.html.TrustedResourceUrl=function(){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_="",this.trustedURL_=null,this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0,goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString()},goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.html.TrustedResourceUrl.prototype.cloneWithParams=function(s,o){var et=goog.html.TrustedResourceUrl.unwrap(this),tt=(et=goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(et))[3]||"";return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(et[1]+goog.html.TrustedResourceUrl.stringifyParams_("?",et[2]||"",s)+goog.html.TrustedResourceUrl.stringifyParams_("#",tt,o))},goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"}),goog.html.TrustedResourceUrl.unwrap=function(s){return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(s).toString()},goog.html.TrustedResourceUrl.unwrapTrustedScriptURL=function(s){return s instanceof goog.html.TrustedResourceUrl&&s.constructor===goog.html.TrustedResourceUrl&&s.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?s.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_:(goog.asserts.fail("expected object of type TrustedResourceUrl, got '"+s+"' of type "+goog.typeOf(s)),"type_error:TrustedResourceUrl")},goog.html.TrustedResourceUrl.unwrapTrustedURL=function(s){return s.trustedURL_?s.trustedURL_:goog.html.TrustedResourceUrl.unwrap(s)},goog.html.TrustedResourceUrl.format=function(s,o){var et=goog.string.Const.unwrap(s);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(et))throw Error("Invalid TrustedResourceUrl format: "+et);return s=et.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,function(tt,nt){if(!Object.prototype.hasOwnProperty.call(o,nt))throw Error('Found marker, "'+nt+'", in format string, "'+et+'", but no valid label mapping found in args: '+JSON.stringify(o));return(tt=o[nt])instanceof goog.string.Const?goog.string.Const.unwrap(tt):encodeURIComponent(String(tt))}),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g,goog.html.TrustedResourceUrl.BASE_URL_=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i,goog.html.TrustedResourceUrl.URL_PARAM_PARSER_=/^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/,goog.html.TrustedResourceUrl.formatWithParams=function(s,o,et,tt){return goog.html.TrustedResourceUrl.format(s,o).cloneWithParams(et,tt)},goog.html.TrustedResourceUrl.fromConstant=function(s){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(s))},goog.html.TrustedResourceUrl.fromConstants=function(s){for(var o="",et=0;ets.length?"&":"")+encodeURIComponent(tt)+"="+encodeURIComponent(String(it)))}}return o},goog.html.SafeUrl=function(){this.privateDoNotAccessOrElseSafeUrlWrappedValue_="",this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez",goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0,goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()},goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.DEBUG&&(goog.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeUrlWrappedValue_+"}"}),goog.html.SafeUrl.unwrap=function(s){return goog.html.SafeUrl.unwrapTrustedURL(s).toString()},goog.html.SafeUrl.unwrapTrustedURL=function(s){return s instanceof goog.html.SafeUrl&&s.constructor===goog.html.SafeUrl&&s.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?s.privateDoNotAccessOrElseSafeUrlWrappedValue_:(goog.asserts.fail("expected object of type SafeUrl, got '"+s+"' of type "+goog.typeOf(s)),"type_error:SafeUrl")},goog.html.SafeUrl.fromConstant=function(s){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(s))},goog.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-wav|wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime))(?:;\w+=(?:\w+|"[\w;=]+"))*$/i,goog.html.SafeUrl.isSafeMimeType=function(s){return goog.html.SAFE_MIME_TYPE_PATTERN_.test(s)},goog.html.SafeUrl.fromBlob=function(s){return s=goog.html.SAFE_MIME_TYPE_PATTERN_.test(s.type)?goog.fs.url.createObjectUrl(s):goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.DATA_URL_PATTERN_=/^data:([^,]*);base64,[a-z0-9+\/]+=*$/i,goog.html.SafeUrl.fromDataUrl=function(s){var o=(s=s.replace(/(%0A|%0D)/g,"")).match(goog.html.DATA_URL_PATTERN_);return o=o&&goog.html.SAFE_MIME_TYPE_PATTERN_.test(o[1]),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(o?s:goog.html.SafeUrl.INNOCUOUS_STRING)},goog.html.SafeUrl.fromTelUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"tel:")||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SIP_URL_PATTERN_=/^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i,goog.html.SafeUrl.fromSipUrl=function(s){return goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(s))||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.fromFacebookMessengerUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"fb-messenger://share")||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.fromWhatsAppUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"whatsapp://send")||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.fromSmsUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"sms:")&&goog.html.SafeUrl.isSmsUrlBodyValid_(s)||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.isSmsUrlBodyValid_=function(s){var o=s.indexOf("#");if(0+~[\]()=^$|]+$/.test(et))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: "+s);if(!goog.html.SafeStyleSheet.hasBalancedBrackets_(et))throw Error("() and [] in selector must be balanced, got: "+s);return o instanceof goog.html.SafeStyle||(o=goog.html.SafeStyle.create(o)),s=s+"{"+goog.html.SafeStyle.unwrap(o).replace(/.");if(s.toUpperCase()in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error("Tag name <"+s+"> is not allowed for SafeHtml.")},goog.html.SafeHtml.createIframe=function(s,o,et,tt){s&&goog.html.TrustedResourceUrl.unwrap(s);var nt={};return nt.src=s||null,nt.srcdoc=o&&goog.html.SafeHtml.unwrap(o),s=goog.html.SafeHtml.combineAttributes(nt,{sandbox:""},et),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",s,tt)},goog.html.SafeHtml.createSandboxIframe=function(s,o,et,tt){if(!goog.html.SafeHtml.canUseSandboxIframe())throw Error("The browser does not support sandboxed iframes.");var nt={};return nt.src=s?goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(s)):null,nt.srcdoc=o||null,nt.sandbox="",s=goog.html.SafeHtml.combineAttributes(nt,{},et),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",s,tt)},goog.html.SafeHtml.canUseSandboxIframe=function(){return goog.global.HTMLIFrameElement&&"sandbox"in goog.global.HTMLIFrameElement.prototype},goog.html.SafeHtml.createScriptSrc=function(s,o){return goog.html.TrustedResourceUrl.unwrap(s),s=goog.html.SafeHtml.combineAttributes({src:s},{},o),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",s)},goog.html.SafeHtml.createScript=function(s,o){for(var et in o){var tt=et.toLowerCase();if(tt=="language"||tt=="src"||tt=="text"||tt=="type")throw Error('Cannot set "'+tt+'" attribute')}for(et="",s=goog.array.concat(s),tt=0;tt does not allow content."),nt+=">"):(tt=goog.html.SafeHtml.concat(et),nt+=">"+goog.html.SafeHtml.unwrap(tt)+"",tt=tt.getDirection()),(s=o&&o.dir)&&(tt=/^(ltr|rtl|auto)$/i.test(s)?goog.i18n.bidi.Dir.NEUTRAL:null),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(nt,tt)},goog.html.SafeHtml.stringifyAttributes=function(s,o){var et="";if(o)for(var tt in o){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(tt))throw Error('Invalid attribute name "'+tt+'".');var nt=o[tt];goog.isDefAndNotNull(nt)&&(et+=" "+goog.html.SafeHtml.getAttrNameAndValue_(s,tt,nt))}return et},goog.html.SafeHtml.combineAttributes=function(s,o,et){var tt,nt={};for(tt in s)goog.asserts.assert(tt.toLowerCase()==tt,"Must be lower case"),nt[tt]=s[tt];for(tt in o)goog.asserts.assert(tt.toLowerCase()==tt,"Must be lower case"),nt[tt]=o[tt];for(tt in et){var rt=tt.toLowerCase();if(rt in s)throw Error('Cannot override "'+rt+'" attribute, got "'+tt+'" with value "'+et[tt]+'"');rt in o&&delete nt[rt],nt[tt]=et[tt]}return nt},goog.html.SafeHtml.DOCTYPE_HTML=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.EMPTY=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.BR=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("
",goog.i18n.bidi.Dir.NEUTRAL),goog.html.uncheckedconversions={},goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(s,o,et){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(o,et||null)},goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(o)},goog.dom.asserts={},goog.dom.asserts.assertIsLocation=function(s){if(goog.asserts.ENABLE_ASSERTS){var o=goog.dom.asserts.getWindow_(s);o&&(!s||!(s instanceof o.Location)&&s instanceof o.Element)&&goog.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(s))}return s},goog.dom.asserts.assertIsElementType_=function(s,o){if(goog.asserts.ENABLE_ASSERTS){var et=goog.dom.asserts.getWindow_(s);et&&et[o]!==void 0&&(s&&(s instanceof et[o]||!(s instanceof et.Location||s instanceof et.Element))||goog.asserts.fail("Argument is not a %s (or a non-Element, non-Location mock); got: %s",o,goog.dom.asserts.debugStringForType_(s)))}return s},goog.dom.asserts.assertIsHTMLAnchorElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLAnchorElement")},goog.dom.asserts.assertIsHTMLButtonElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLButtonElement")},goog.dom.asserts.assertIsHTMLLinkElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLLinkElement")},goog.dom.asserts.assertIsHTMLImageElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLImageElement")},goog.dom.asserts.assertIsHTMLAudioElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLAudioElement")},goog.dom.asserts.assertIsHTMLVideoElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLVideoElement")},goog.dom.asserts.assertIsHTMLInputElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLInputElement")},goog.dom.asserts.assertIsHTMLTextAreaElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLTextAreaElement")},goog.dom.asserts.assertIsHTMLCanvasElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLCanvasElement")},goog.dom.asserts.assertIsHTMLEmbedElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLEmbedElement")},goog.dom.asserts.assertIsHTMLFormElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLFormElement")},goog.dom.asserts.assertIsHTMLFrameElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLFrameElement")},goog.dom.asserts.assertIsHTMLIFrameElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLIFrameElement")},goog.dom.asserts.assertIsHTMLObjectElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLObjectElement")},goog.dom.asserts.assertIsHTMLScriptElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLScriptElement")},goog.dom.asserts.debugStringForType_=function(s){if(!goog.isObject(s))return s===void 0?"undefined":s===null?"null":typeof s;try{return s.constructor.displayName||s.constructor.name||Object.prototype.toString.call(s)}catch{return""}},goog.dom.asserts.getWindow_=function(s){try{var o=s&&s.ownerDocument,et=o&&(o.defaultView||o.parentWindow);if((et=et||goog.global).Element&&et.Location)return et}catch{}return null},goog.functions={},goog.functions.constant=function(s){return function(){return s}},goog.functions.FALSE=function(){return!1},goog.functions.TRUE=function(){return!0},goog.functions.NULL=function(){return null},goog.functions.identity=function(s,o){return s},goog.functions.error=function(s){return function(){throw Error(s)}},goog.functions.fail=function(s){return function(){throw s}},goog.functions.lock=function(s,o){return o=o||0,function(){return s.apply(this,Array.prototype.slice.call(arguments,0,o))}},goog.functions.nth=function(s){return function(){return arguments[s]}},goog.functions.partialRight=function(s,o){var et=Array.prototype.slice.call(arguments,1);return function(){var tt=Array.prototype.slice.call(arguments);return tt.push.apply(tt,et),s.apply(this,tt)}},goog.functions.withReturnValue=function(s,o){return goog.functions.sequence(s,goog.functions.constant(o))},goog.functions.equalTo=function(s,o){return function(et){return o?s==et:s===et}},goog.functions.compose=function(s,o){var et=arguments,tt=et.length;return function(){var nt;tt&&(nt=et[tt-1].apply(this,arguments));for(var rt=tt-2;0<=rt;rt--)nt=et[rt].call(this,nt);return nt}},goog.functions.sequence=function(s){var o=arguments,et=o.length;return function(){for(var tt,nt=0;nt"u")return!1;var s=document.createElement("div"),o=document.createElement("div");return o.appendChild(document.createElement("div")),s.appendChild(o),!(goog.DEBUG&&!s.firstChild)&&(o=s.firstChild.firstChild,s.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY),!o.parentElement)}),goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(s,o){if(goog.dom.safe.isInnerHtmlCleanupRecursive_())for(;s.lastChild;)s.removeChild(s.lastChild);s.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(o)},goog.dom.safe.setInnerHtml=function(s,o){if(goog.asserts.ENABLE_ASSERTS){var et=s.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[et])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+s.tagName+".")}goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(s,o)},goog.dom.safe.setOuterHtml=function(s,o){s.outerHTML=goog.html.SafeHtml.unwrapTrustedHTML(o)},goog.dom.safe.setFormElementAction=function(s,o){o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),goog.dom.asserts.assertIsHTMLFormElement(s).action=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setButtonFormAction=function(s,o){o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),goog.dom.asserts.assertIsHTMLButtonElement(s).formAction=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setInputFormAction=function(s,o){o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),goog.dom.asserts.assertIsHTMLInputElement(s).formAction=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setStyle=function(s,o){s.style.cssText=goog.html.SafeStyle.unwrap(o)},goog.dom.safe.documentWrite=function(s,o){s.write(goog.html.SafeHtml.unwrapTrustedHTML(o))},goog.dom.safe.setAnchorHref=function(s,o){goog.dom.asserts.assertIsHTMLAnchorElement(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.href=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setImageSrc=function(s,o){if(goog.dom.asserts.assertIsHTMLImageElement(s),!(o instanceof goog.html.SafeUrl)){var et=/^data:image\//i.test(o);o=goog.html.SafeUrl.sanitizeAssertUnchanged(o,et)}s.src=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setAudioSrc=function(s,o){if(goog.dom.asserts.assertIsHTMLAudioElement(s),!(o instanceof goog.html.SafeUrl)){var et=/^data:audio\//i.test(o);o=goog.html.SafeUrl.sanitizeAssertUnchanged(o,et)}s.src=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setVideoSrc=function(s,o){if(goog.dom.asserts.assertIsHTMLVideoElement(s),!(o instanceof goog.html.SafeUrl)){var et=/^data:video\//i.test(o);o=goog.html.SafeUrl.sanitizeAssertUnchanged(o,et)}s.src=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setEmbedSrc=function(s,o){goog.dom.asserts.assertIsHTMLEmbedElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(o)},goog.dom.safe.setFrameSrc=function(s,o){goog.dom.asserts.assertIsHTMLFrameElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedURL(o)},goog.dom.safe.setIframeSrc=function(s,o){goog.dom.asserts.assertIsHTMLIFrameElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedURL(o)},goog.dom.safe.setIframeSrcdoc=function(s,o){goog.dom.asserts.assertIsHTMLIFrameElement(s),s.srcdoc=goog.html.SafeHtml.unwrapTrustedHTML(o)},goog.dom.safe.setLinkHrefAndRel=function(s,o,et){goog.dom.asserts.assertIsHTMLLinkElement(s),s.rel=et,goog.string.internal.caseInsensitiveContains(et,"stylesheet")?(goog.asserts.assert(o instanceof goog.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),s.href=goog.html.TrustedResourceUrl.unwrapTrustedURL(o)):s.href=o instanceof goog.html.TrustedResourceUrl?goog.html.TrustedResourceUrl.unwrapTrustedURL(o):o instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrapTrustedURL(o):goog.html.SafeUrl.unwrapTrustedURL(goog.html.SafeUrl.sanitizeAssertUnchanged(o))},goog.dom.safe.setObjectData=function(s,o){goog.dom.asserts.assertIsHTMLObjectElement(s),s.data=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(o)},goog.dom.safe.setScriptSrc=function(s,o){goog.dom.asserts.assertIsHTMLScriptElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(o),(o=goog.getScriptNonce())&&s.setAttribute("nonce",o)},goog.dom.safe.setScriptContent=function(s,o){goog.dom.asserts.assertIsHTMLScriptElement(s),s.text=goog.html.SafeScript.unwrapTrustedScript(o),(o=goog.getScriptNonce())&&s.setAttribute("nonce",o)},goog.dom.safe.setLocationHref=function(s,o){goog.dom.asserts.assertIsLocation(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.href=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.assignLocation=function(s,o){goog.dom.asserts.assertIsLocation(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.assign(goog.html.SafeUrl.unwrapTrustedURL(o))},goog.dom.safe.replaceLocation=function(s,o){goog.dom.asserts.assertIsLocation(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.replace(goog.html.SafeUrl.unwrapTrustedURL(o))},goog.dom.safe.openInWindow=function(s,o,et,tt,nt){return s=s instanceof goog.html.SafeUrl?s:goog.html.SafeUrl.sanitizeAssertUnchanged(s),(o||goog.global).open(goog.html.SafeUrl.unwrapTrustedURL(s),et?goog.string.Const.unwrap(et):"",tt,nt)},goog.dom.safe.parseFromStringHtml=function(s,o){return goog.dom.safe.parseFromString(s,o,"text/html")},goog.dom.safe.parseFromString=function(s,o,et){return s.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(o),et)},goog.dom.safe.createImageFromBlob=function(s){if(!/^image\/.*/g.test(s.type))throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");var o=goog.global.URL.createObjectURL(s);return(s=new goog.global.Image).onload=function(){goog.global.URL.revokeObjectURL(o)},goog.dom.safe.setImageSrc(s,goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Image blob URL."),o)),s},goog.string.DETECT_DOUBLE_ESCAPING=!1,goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1,goog.string.Unicode={NBSP:" "},goog.string.startsWith=goog.string.internal.startsWith,goog.string.endsWith=goog.string.internal.endsWith,goog.string.caseInsensitiveStartsWith=goog.string.internal.caseInsensitiveStartsWith,goog.string.caseInsensitiveEndsWith=goog.string.internal.caseInsensitiveEndsWith,goog.string.caseInsensitiveEquals=goog.string.internal.caseInsensitiveEquals,goog.string.subs=function(s,o){for(var et=s.split("%s"),tt="",nt=Array.prototype.slice.call(arguments,1);nt.length&&1=s||"€"<=s&&"�">=s},goog.string.stripNewlines=function(s){return s.replace(/(\r\n|\r|\n)+/g," ")},goog.string.canonicalizeNewlines=function(s){return s.replace(/(\r\n|\r|\n)/g,` -`)},goog.string.normalizeWhitespace=function(s){return s.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(s){return s.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(s){return s.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.string.internal.trim,goog.string.trimLeft=function(s){return s.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(s){return s.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare,goog.string.numberAwareCompare_=function(s,o,et){if(s==o)return 0;if(!s)return-1;if(!o)return 1;for(var tt=s.toLowerCase().match(et),nt=o.toLowerCase().match(et),rt=Math.min(tt.length,nt.length),it=0;it",""":'"'},tt=o?o.createElement("div"):goog.global.document.createElement("div");return s.replace(goog.string.HTML_ENTITY_PATTERN_,function(nt,rt){var it=et[nt];return it||(rt.charAt(0)=="#"&&(rt=+("0"+rt.substr(1)),isNaN(rt)||(it=String.fromCharCode(rt))),it||(goog.dom.safe.setInnerHtml(tt,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),nt+" ")),it=tt.firstChild.nodeValue.slice(0,-1)),et[nt]=it)})},goog.string.unescapePureXmlEntities_=function(s){return s.replace(/&([^;]+);/g,function(o,et){switch(et){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:return et.charAt(0)!="#"||(et=+("0"+et.substr(1)),isNaN(et))?o:String.fromCharCode(et)}})},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(s,o){return goog.string.newLineToBr(s.replace(/ /g,"  "),o)},goog.string.preserveSpaces=function(s){return s.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(s,o){for(var et=o.length,tt=0;tto&&(s=s.substring(0,o-3)+"..."),et&&(s=goog.string.htmlEscape(s)),s},goog.string.truncateMiddle=function(s,o,et,tt){if(et&&(s=goog.string.unescapeEntities(s)),tt&&s.length>o){tt>o&&(tt=o);var nt=s.length-tt;s=s.substring(0,o-tt)+"..."+s.substring(nt)}else s.length>o&&(tt=Math.floor(o/2),nt=s.length-tt,s=s.substring(0,tt+o%2)+"..."+s.substring(nt));return et&&(s=goog.string.htmlEscape(s)),s},goog.string.specialEscapeChars_={"\0":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(s){s=String(s);for(var o=['"'],et=0;etnt?tt:goog.string.escapeChar(tt))}return o.push('"'),o.join("")},goog.string.escapeString=function(s){for(var o=[],et=0;eto)var et=s;else 256>o?(et="\\x",(16>o||256o&&(et+="0")),et+=o.toString(16).toUpperCase();return goog.string.jsEscapeCache_[s]=et},goog.string.contains=goog.string.internal.contains,goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains,goog.string.countOf=function(s,o){return s&&o?s.split(o).length-1:0},goog.string.removeAt=function(s,o,et){var tt=s;return 0<=o&&o>>0;return o},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(s){var o=Number(s);return o==0&&goog.string.isEmptyOrWhitespace(s)?NaN:o},goog.string.isLowerCamelCase=function(s){return/^[a-z]+([A-Z][a-z]*)*$/.test(s)},goog.string.isUpperCamelCase=function(s){return/^([A-Z][a-z]*)+$/.test(s)},goog.string.toCamelCase=function(s){return String(s).replace(/\-([a-z])/g,function(o,et){return et.toUpperCase()})},goog.string.toSelectorCase=function(s){return String(s).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(s,o){return o=goog.isString(o)?goog.string.regExpEscape(o):"\\s",s.replace(new RegExp("(^"+(o?"|["+o+"]+":"")+")([a-z])","g"),function(et,tt,nt){return tt+nt.toUpperCase()})},goog.string.capitalize=function(s){return String(s.charAt(0)).toUpperCase()+String(s.substr(1)).toLowerCase()},goog.string.parseInt=function(s){return isFinite(s)&&(s=String(s)),goog.isString(s)?/^\s*-?0x/i.test(s)?parseInt(s,16):parseInt(s,10):NaN},goog.string.splitLimit=function(s,o,et){s=s.split(o);for(var tt=[];0et&&(et=nt)}return et==-1?s:s.slice(et+1)},goog.string.editDistance=function(s,o){var et=[],tt=[];if(s==o)return 0;if(!s.length||!o.length)return Math.max(s.length,o.length);for(var nt=0;ntparseFloat(s)?String(o):s},goog.userAgent.getVersionRegexResult_=function(){var s=goog.userAgent.getUserAgentString();return goog.userAgent.GECKO?/rv:([^\);]+)(\)|;)/.exec(s):goog.userAgent.EDGE?/Edge\/([\d\.]+)/.exec(s):goog.userAgent.IE?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(s):goog.userAgent.WEBKIT?/WebKit\/(\S+)/.exec(s):goog.userAgent.OPERA?/(?:Version)[ \/]?(\S+)/.exec(s):void 0},goog.userAgent.getDocumentMode_=function(){var s=goog.global.document;return s?s.documentMode:void 0},goog.userAgent.VERSION=goog.userAgent.determineVersion_(),goog.userAgent.compare=function(s,o){return goog.string.compareVersions(s,o)},goog.userAgent.isVersionOrHigherCache_={},goog.userAgent.isVersionOrHigher=function(s){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,s,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,s)})},goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher,goog.userAgent.isDocumentModeOrHigher=function(s){return Number(goog.userAgent.DOCUMENT_MODE)>=s},goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher,goog.userAgent.DOCUMENT_MODE=function(){if(goog.global.document&&goog.userAgent.IE)return goog.userAgent.getDocumentMode_()}(),goog.userAgent.product={},goog.userAgent.product.ASSUME_FIREFOX=!1,goog.userAgent.product.ASSUME_IPHONE=!1,goog.userAgent.product.ASSUME_IPAD=!1,goog.userAgent.product.ASSUME_ANDROID=!1,goog.userAgent.product.ASSUME_CHROME=!1,goog.userAgent.product.ASSUME_SAFARI=!1,goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI,goog.userAgent.product.OPERA=goog.userAgent.OPERA,goog.userAgent.product.IE=goog.userAgent.IE,goog.userAgent.product.EDGE=goog.userAgent.EDGE,goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox(),goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()},goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_(),goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser(),goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome(),goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()},goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_(),goog.crypt.base64={},goog.crypt.base64.DEFAULT_ALPHABET_COMMON_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"+/=",goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"-_.",goog.crypt.base64.Alphabet={DEFAULT:0,NO_PADDING:1,WEBSAFE:2,WEBSAFE_DOT_PADDING:3,WEBSAFE_NO_PADDING:4},goog.crypt.base64.paddingChars_="=.",goog.crypt.base64.isPadding_=function(s){return goog.string.contains(goog.crypt.base64.paddingChars_,s)},goog.crypt.base64.byteToCharMaps_={},goog.crypt.base64.charToByteMap_=null,goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA,goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||typeof goog.global.btoa=="function",goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&typeof goog.global.atob=="function",goog.crypt.base64.encodeByteArray=function(s,o){goog.asserts.assert(goog.isArrayLike(s),"encodeByteArray takes an array as a parameter"),o===void 0&&(o=goog.crypt.base64.Alphabet.DEFAULT),goog.crypt.base64.init_(),o=goog.crypt.base64.byteToCharMaps_[o];for(var et=[],tt=0;tt>2;nt=(3&nt)<<4|it>>4,it=(15&it)<<2|st>>6,st&=63,ot||(st=64,rt||(it=64)),et.push(o[at],o[nt],o[it]||"",o[st]||"")}return et.join("")},goog.crypt.base64.encodeString=function(s,o){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!o?goog.global.btoa(s):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(s),o)},goog.crypt.base64.decodeString=function(s,o){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!o)return goog.global.atob(s);var et="";return goog.crypt.base64.decodeStringInternal_(s,function(tt){et+=String.fromCharCode(tt)}),et},goog.crypt.base64.decodeStringToByteArray=function(s,o){var et=[];return goog.crypt.base64.decodeStringInternal_(s,function(tt){et.push(tt)}),et},goog.crypt.base64.decodeStringToUint8Array=function(s){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var o=s.length,et=3*o/4;et%3?et=Math.floor(et):goog.crypt.base64.isPadding_(s[o-1])&&(et=goog.crypt.base64.isPadding_(s[o-2])?et-2:et-1);var tt=new Uint8Array(et),nt=0;return goog.crypt.base64.decodeStringInternal_(s,function(rt){tt[nt++]=rt}),tt.subarray(0,nt)},goog.crypt.base64.decodeStringInternal_=function(s,o){function et(st){for(;tt>4),it!=64&&(o(rt<<4&240|it>>2),ot!=64&&o(it<<6&192|ot))}},goog.crypt.base64.init_=function(){if(!goog.crypt.base64.charToByteMap_){goog.crypt.base64.charToByteMap_={};for(var s=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""),o=["+/=","+/","-_=","-_.","-_"],et=0;5>et;et++){var tt=s.concat(o[et].split(""));goog.crypt.base64.byteToCharMaps_[et]=tt;for(var nt=0;nt>>0;s=Math.floor((s-o)/jspb.BinaryConstants.TWO_TO_32)>>>0,jspb.utils.split64Low=o,jspb.utils.split64High=s},jspb.utils.splitInt64=function(s){var o=0>s,et=(s=Math.abs(s))>>>0;s=Math.floor((s-et)/jspb.BinaryConstants.TWO_TO_32),s>>>=0,o&&(s=~s>>>0,4294967295<(et=1+(~et>>>0))&&(et=0,4294967295<++s&&(s=0))),jspb.utils.split64Low=et,jspb.utils.split64High=s},jspb.utils.splitZigzag64=function(s){var o=0>s;s=2*Math.abs(s),jspb.utils.splitUint64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;o&&(s==0?et==0?et=s=4294967295:(et--,s=4294967295):s--),jspb.utils.split64Low=s,jspb.utils.split64High=et},jspb.utils.splitFloat32=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)0<1/s?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(s))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(s>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|2139095040)>>>0;else if(s>>0;else{var et=Math.floor(Math.log(s)/Math.LN2);s*=Math.pow(2,-et),s=8388607&Math.round(s*jspb.BinaryConstants.TWO_TO_23),jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|et+127<<23|s)>>>0}},jspb.utils.splitFloat64=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)jspb.utils.split64High=0<1/s?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(s))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(s>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(o<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(s>>0,jspb.utils.split64Low=et>>>0}else{var tt=0;if(2<=(et=s))for(;2<=et&&1023>tt;)tt++,et/=2;else for(;1>et&&-1022>>0,jspb.utils.split64High=(o<<31|tt+1023<<20|s)>>>0,jspb.utils.split64Low=et}},jspb.utils.splitHash64=function(s){var o=s.charCodeAt(0),et=s.charCodeAt(1),tt=s.charCodeAt(2),nt=s.charCodeAt(3),rt=s.charCodeAt(4),it=s.charCodeAt(5),ot=s.charCodeAt(6);s=s.charCodeAt(7),jspb.utils.split64Low=o+(et<<8)+(tt<<16)+(nt<<24)>>>0,jspb.utils.split64High=rt+(it<<8)+(ot<<16)+(s<<24)>>>0},jspb.utils.joinUint64=function(s,o){return o*jspb.BinaryConstants.TWO_TO_32+(s>>>0)},jspb.utils.joinInt64=function(s,o){var et=2147483648&o;return et&&(o=~o>>>0,(s=1+~s>>>0)==0&&(o=o+1>>>0)),s=jspb.utils.joinUint64(s,o),et?-s:s},jspb.utils.toZigzag64=function(s,o,et){var tt=o>>31;return et(s<<1^tt,(o<<1|s>>>31)^tt)},jspb.utils.joinZigzag64=function(s,o){return jspb.utils.fromZigzag64(s,o,jspb.utils.joinInt64)},jspb.utils.fromZigzag64=function(s,o,et){var tt=-(1&s);return et((s>>>1|o<<31)^tt,o>>>1^tt)},jspb.utils.joinFloat32=function(s,o){o=2*(s>>31)+1;var et=s>>>23&255;return s&=8388607,et==255?s?NaN:1/0*o:et==0?o*Math.pow(2,-149)*s:o*Math.pow(2,et-150)*(s+Math.pow(2,23))},jspb.utils.joinFloat64=function(s,o){var et=2*(o>>31)+1,tt=o>>>20&2047;return s=jspb.BinaryConstants.TWO_TO_32*(1048575&o)+s,tt==2047?s?NaN:1/0*et:tt==0?et*Math.pow(2,-1074)*s:et*Math.pow(2,tt-1075)*(s+jspb.BinaryConstants.TWO_TO_52)},jspb.utils.joinHash64=function(s,o){return String.fromCharCode(s>>>0&255,s>>>8&255,s>>>16&255,s>>>24&255,o>>>0&255,o>>>8&255,o>>>16&255,o>>>24&255)},jspb.utils.DIGITS="0123456789abcdef".split(""),jspb.utils.ZERO_CHAR_CODE_=48,jspb.utils.A_CHAR_CODE_=97,jspb.utils.joinUnsignedDecimalString=function(s,o){function et(nt,rt){return nt=nt?String(nt):"",rt?"0000000".slice(nt.length)+nt:nt}if(2097151>=o)return""+(jspb.BinaryConstants.TWO_TO_32*o+s);var tt=(s>>>24|o<<8)>>>0&16777215;return s=(16777215&s)+6777216*tt+6710656*(o=o>>16&65535),tt+=8147497*o,o*=2,1e7<=s&&(tt+=Math.floor(s/1e7),s%=1e7),1e7<=tt&&(o+=Math.floor(tt/1e7),tt%=1e7),et(o,0)+et(tt,o)+et(s,1)},jspb.utils.joinSignedDecimalString=function(s,o){var et=2147483648&o;return et&&(o=~o+((s=1+~s>>>0)==0?1:0)>>>0),s=jspb.utils.joinUnsignedDecimalString(s,o),et?"-"+s:s},jspb.utils.hash64ToDecimalString=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinSignedDecimalString(s,et):jspb.utils.joinUnsignedDecimalString(s,et)},jspb.utils.hash64ArrayToDecimalStrings=function(s,o){for(var et=Array(s.length),tt=0;ttot&&(rt!==1||0>>=8}goog.asserts.assert(0rt;rt++)tt[rt]=255&~tt[rt]}(),o(1,1)),goog.crypt.byteArrayToString(tt)},jspb.utils.splitDecimalString=function(s){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(s))},jspb.utils.toHexDigit_=function(s){return String.fromCharCode(10>s?jspb.utils.ZERO_CHAR_CODE_+s:jspb.utils.A_CHAR_CODE_-10+s)},jspb.utils.fromHexCharCode_=function(s){return s>=jspb.utils.A_CHAR_CODE_?s-jspb.utils.A_CHAR_CODE_+10:s-jspb.utils.ZERO_CHAR_CODE_},jspb.utils.hash64ToHexString=function(s){var o=Array(18);o[0]="0",o[1]="x";for(var et=0;8>et;et++){var tt=s.charCodeAt(7-et);o[2*et+2]=jspb.utils.toHexDigit_(tt>>4),o[2*et+3]=jspb.utils.toHexDigit_(15&tt)}return o.join("")},jspb.utils.hexStringToHash64=function(s){s=s.toLowerCase(),goog.asserts.assert(s.length==18),goog.asserts.assert(s[0]=="0"),goog.asserts.assert(s[1]=="x");for(var o="",et=0;8>et;et++){var tt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+2)),nt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+3));o=String.fromCharCode(16*tt+nt)+o}return o},jspb.utils.hash64ToNumber=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinInt64(s,et):jspb.utils.joinUint64(s,et)},jspb.utils.numberToHash64=function(s){return jspb.utils.splitInt64(s),jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.utils.countVarints=function(s,o,et){for(var tt=0,nt=o;nt>7;return et-o-tt},jspb.utils.countVarintFields=function(s,o,et,tt){var nt=0;if(128>(tt=8*tt+jspb.BinaryConstants.WireType.VARINT))for(;o>=7}if(s[o++]!=rt)break;for(nt++;128&(rt=s[o++]););}return nt},jspb.utils.countFixedFields_=function(s,o,et,tt,nt){var rt=0;if(128>tt)for(;o>=7}if(s[o++]!=it)break;rt++,o+=nt}return rt},jspb.utils.countFixed32Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED32,4)},jspb.utils.countFixed64Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED64,8)},jspb.utils.countDelimitedFields=function(s,o,et,tt){var nt=0;for(tt=8*tt+jspb.BinaryConstants.WireType.DELIMITED;o>=7}if(s[o++]!=rt)break;nt++;for(var it=0,ot=1;it+=(127&(rt=s[o++]))*ot,ot*=128,(128&rt)!=0;);o+=it}return nt},jspb.utils.debugBytesToTextFormat=function(s){var o='"';if(s){s=jspb.utils.byteSourceToUint8Array(s);for(var et=0;ets[et]&&(o+="0"),o+=s[et].toString(16)}return o+'"'},jspb.utils.debugScalarToTextFormat=function(s){return typeof s=="string"?goog.string.quote(s):s.toString()},jspb.utils.stringToByteArray=function(s){for(var o=new Uint8Array(s.length),et=0;etjspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)},jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)},jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1},jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_},jspb.BinaryDecoder.prototype.setBlock=function(s,o,et){this.bytes_=jspb.utils.byteSourceToUint8Array(s),this.start_=o!==void 0?o:0,this.end_=et!==void 0?this.start_+et:this.bytes_.length,this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_},jspb.BinaryDecoder.prototype.setEnd=function(s){this.end_=s},jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_},jspb.BinaryDecoder.prototype.setCursor=function(s){this.cursor_=s},jspb.BinaryDecoder.prototype.advance=function(s){this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_)},jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_},jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_},jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_},jspb.BinaryDecoder.prototype.readSplitVarint64=function(s){for(var o=128,et=0,tt=0,nt=0;4>nt&&128<=o;nt++)et|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt;if(128<=o&&(et|=(127&(o=this.bytes_[this.cursor_++]))<<28,tt|=(127&o)>>4),128<=o)for(nt=0;5>nt&&128<=o;nt++)tt|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt+3;if(128>o)return s(et>>>0,tt>>>0);goog.asserts.fail("Failed to read varint, encoding is invalid."),this.error_=!0},jspb.BinaryDecoder.prototype.readSplitZigzagVarint64=function(s){return this.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryDecoder.prototype.readSplitFixed64=function(s){var o=this.bytes_,et=this.cursor_;this.cursor_+=8;for(var tt=0,nt=0,rt=et+7;rt>=et;rt--)tt=tt<<8|o[rt],nt=nt<<8|o[rt+4];return s(tt,nt)},jspb.BinaryDecoder.prototype.skipVarint=function(){for(;128&this.bytes_[this.cursor_];)this.cursor_++;this.cursor_++},jspb.BinaryDecoder.prototype.unskipVarint=function(s){for(;128>>=7;this.cursor_--},jspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var s=this.bytes_,o=s[this.cursor_+0],et=127&o;return 128>o?(this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+1]))<<7,128>o?(this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+2]))<<14,128>o?(this.cursor_+=3,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+3]))<<21,128>o?(this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(15&(o=s[this.cursor_+4]))<<28,128>o?(this.cursor_+=5,goog.asserts.assert(this.cursor_<=this.end_),et>>>0):(this.cursor_+=5,128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&goog.asserts.assert(!1),goog.asserts.assert(this.cursor_<=this.end_),et)))))},jspb.BinaryDecoder.prototype.readSignedVarint32=jspb.BinaryDecoder.prototype.readUnsignedVarint32,jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()},jspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()},jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var s=this.readUnsignedVarint32();return s>>>1^-(1&s)},jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinUint64)},jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString)},jspb.BinaryDecoder.prototype.readSignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinInt64)},jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){return this.readSplitVarint64(jspb.utils.joinZigzag64)},jspb.BinaryDecoder.prototype.readZigzagVarintHash64=function(){return this.readSplitZigzagVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readUint8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s},jspb.BinaryDecoder.prototype.readUint16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8},jspb.BinaryDecoder.prototype.readUint32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8|et<<16|tt<<24)>>>0},jspb.BinaryDecoder.prototype.readUint64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUint64(s,o)},jspb.BinaryDecoder.prototype.readUint64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUnsignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readInt8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s<<24>>24},jspb.BinaryDecoder.prototype.readInt16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8)<<16>>16},jspb.BinaryDecoder.prototype.readInt32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8|et<<16|tt<<24},jspb.BinaryDecoder.prototype.readInt64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinInt64(s,o)},jspb.BinaryDecoder.prototype.readInt64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinSignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readFloat=function(){var s=this.readUint32();return jspb.utils.joinFloat32(s,0)},jspb.BinaryDecoder.prototype.readDouble=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinFloat64(s,o)},jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]},jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()},jspb.BinaryDecoder.prototype.readString=function(s){var o=this.bytes_,et=this.cursor_;s=et+s;for(var tt=[],nt="";etrt)tt.push(rt);else{if(192>rt)continue;if(224>rt){var it=o[et++];tt.push((31&rt)<<6|63&it)}else if(240>rt){it=o[et++];var ot=o[et++];tt.push((15&rt)<<12|(63&it)<<6|63&ot)}else 248>rt&&(rt=(7&rt)<<18|(63&(it=o[et++]))<<12|(63&(ot=o[et++]))<<6|63&o[et++],rt-=65536,tt.push(55296+(rt>>10&1023),56320+(1023&rt)))}8192<=tt.length&&(nt+=String.fromCharCode.apply(null,tt),tt.length=0)}return nt+=goog.crypt.byteArrayToString(tt),this.cursor_=et,nt},jspb.BinaryDecoder.prototype.readStringWithLength=function(){var s=this.readUnsignedVarint32();return this.readString(s)},jspb.BinaryDecoder.prototype.readBytes=function(s){if(0>s||this.cursor_+s>this.bytes_.length)return this.error_=!0,goog.asserts.fail("Invalid byte length!"),new Uint8Array(0);var o=this.bytes_.subarray(this.cursor_,this.cursor_+s);return this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_),o},jspb.BinaryDecoder.prototype.readVarintHash64=function(){return this.readSplitVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readFixedHash64=function(){var s=this.bytes_,o=this.cursor_,et=s[o+0],tt=s[o+1],nt=s[o+2],rt=s[o+3],it=s[o+4],ot=s[o+5],st=s[o+6];return s=s[o+7],this.cursor_+=8,String.fromCharCode(et,tt,nt,rt,it,ot,st,s)},jspb.BinaryReader=function(s,o,et){this.decoder_=jspb.BinaryDecoder.alloc(s,o,et),this.fieldCursor_=this.decoder_.getCursor(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null},jspb.BinaryReader.instanceCache_=[],jspb.BinaryReader.alloc=function(s,o,et){if(jspb.BinaryReader.instanceCache_.length){var tt=jspb.BinaryReader.instanceCache_.pop();return s&&tt.decoder_.setBlock(s,o,et),tt}return new jspb.BinaryReader(s,o,et)},jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc,jspb.BinaryReader.prototype.free=function(){this.decoder_.clear(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null,100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)},jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_},jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()},jspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()},jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_},jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_},jspb.BinaryReader.prototype.isDelimited=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED},jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP},jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()},jspb.BinaryReader.prototype.setBlock=function(s,o,et){this.decoder_.setBlock(s,o,et),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.advance=function(s){this.decoder_.advance(s)},jspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return goog.asserts.fail("Decoder hit an error"),!1;this.fieldCursor_=this.decoder_.getCursor();var s=this.decoder_.readUnsignedVarint32(),o=s>>>3;return(s&=7)!=jspb.BinaryConstants.WireType.VARINT&&s!=jspb.BinaryConstants.WireType.FIXED32&&s!=jspb.BinaryConstants.WireType.FIXED64&&s!=jspb.BinaryConstants.WireType.DELIMITED&&s!=jspb.BinaryConstants.WireType.START_GROUP&&s!=jspb.BinaryConstants.WireType.END_GROUP?(goog.asserts.fail("Invalid wire type: %s (at position %s)",s,this.fieldCursor_),this.error_=!0,!1):(this.nextField_=o,this.nextWireType_=s,!0)},jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)},jspb.BinaryReader.prototype.skipMatchingFields=function(){var s=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==s;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()},jspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(goog.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()},jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)goog.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField();else{var s=this.decoder_.readUnsignedVarint32();this.decoder_.advance(s)}},jspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(goog.asserts.fail("Invalid wire type for skipFixed32Field"),this.skipField()):this.decoder_.advance(4)},jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(goog.asserts.fail("Invalid wire type for skipFixed64Field"),this.skipField()):this.decoder_.advance(8)},jspb.BinaryReader.prototype.skipGroup=function(){for(var s=this.nextField_;;){if(!this.nextField()){goog.asserts.fail("Unmatched start-group tag: stream EOF"),this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP){this.nextField_!=s&&(goog.asserts.fail("Unmatched end-group tag"),this.error_=!0);break}this.skipField()}},jspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:goog.asserts.fail("Invalid wire encoding for field.")}},jspb.BinaryReader.prototype.registerReadCallback=function(s,o){this.readCallbacks_===null&&(this.readCallbacks_={}),goog.asserts.assert(!this.readCallbacks_[s]),this.readCallbacks_[s]=o},jspb.BinaryReader.prototype.runReadCallback=function(s){return goog.asserts.assert(this.readCallbacks_!==null),s=this.readCallbacks_[s],goog.asserts.assert(s),s(this)},jspb.BinaryReader.prototype.readAny=function(s){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(s);var o=jspb.BinaryConstants.FieldType;switch(s){case o.DOUBLE:return this.readDouble();case o.FLOAT:return this.readFloat();case o.INT64:return this.readInt64();case o.UINT64:return this.readUint64();case o.INT32:return this.readInt32();case o.FIXED64:return this.readFixed64();case o.FIXED32:return this.readFixed32();case o.BOOL:return this.readBool();case o.STRING:return this.readString();case o.GROUP:goog.asserts.fail("Group field type not supported in readAny()");case o.MESSAGE:goog.asserts.fail("Message field type not supported in readAny()");case o.BYTES:return this.readBytes();case o.UINT32:return this.readUint32();case o.ENUM:return this.readEnum();case o.SFIXED32:return this.readSfixed32();case o.SFIXED64:return this.readSfixed64();case o.SINT32:return this.readSint32();case o.SINT64:return this.readSint64();case o.FHASH64:return this.readFixedHash64();case o.VHASH64:return this.readVarintHash64();default:goog.asserts.fail("Invalid field type in readAny()")}return 0},jspb.BinaryReader.prototype.readMessage=function(s,o){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var et=this.decoder_.getEnd(),tt=this.decoder_.readUnsignedVarint32();tt=this.decoder_.getCursor()+tt,this.decoder_.setEnd(tt),o(s,this),this.decoder_.setCursor(tt),this.decoder_.setEnd(et)},jspb.BinaryReader.prototype.readGroup=function(s,o,et){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP),goog.asserts.assert(this.nextField_==s),et(o,this),this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(goog.asserts.fail("Group submessage did not end with an END_GROUP tag"),this.error_=!0)},jspb.BinaryReader.prototype.getFieldDecoder=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32(),o=this.decoder_.getCursor(),et=o+s;return s=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),o,s),this.decoder_.setCursor(et),s},jspb.BinaryReader.prototype.readInt32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32()},jspb.BinaryReader.prototype.readInt32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32String()},jspb.BinaryReader.prototype.readInt64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readInt64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64String()},jspb.BinaryReader.prototype.readUint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readUint32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32String()},jspb.BinaryReader.prototype.readUint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64()},jspb.BinaryReader.prototype.readUint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64String()},jspb.BinaryReader.prototype.readSint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint32()},jspb.BinaryReader.prototype.readSint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64()},jspb.BinaryReader.prototype.readSint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64String()},jspb.BinaryReader.prototype.readFixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readUint32()},jspb.BinaryReader.prototype.readFixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64()},jspb.BinaryReader.prototype.readFixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64String()},jspb.BinaryReader.prototype.readSfixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32()},jspb.BinaryReader.prototype.readSfixed32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32().toString()},jspb.BinaryReader.prototype.readSfixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64()},jspb.BinaryReader.prototype.readSfixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64String()},jspb.BinaryReader.prototype.readFloat=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readFloat()},jspb.BinaryReader.prototype.readDouble=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readDouble()},jspb.BinaryReader.prototype.readBool=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),!!this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readEnum=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readString=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(s)},jspb.BinaryReader.prototype.readBytes=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(s)},jspb.BinaryReader.prototype.readVarintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readVarintHash64()},jspb.BinaryReader.prototype.readSintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarintHash64()},jspb.BinaryReader.prototype.readSplitVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(s)},jspb.BinaryReader.prototype.readSplitZigzagVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryReader.prototype.readFixedHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readFixedHash64()},jspb.BinaryReader.prototype.readSplitFixed64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readSplitFixed64(s)},jspb.BinaryReader.prototype.readPackedField_=function(s){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var o=this.decoder_.readUnsignedVarint32();o=this.decoder_.getCursor()+o;for(var et=[];this.decoder_.getCursor()o.length?et.length:o.length;for(s.getJsPbMessageId()&&(tt[0]=s.getJsPbMessageId(),nt=1);nt>>1|(1&this.hi)<<31)>>>0,this.hi>>>1>>>0)},jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)},jspb.arith.UInt64.prototype.msb=function(){return!!(2147483648&this.hi)},jspb.arith.UInt64.prototype.lsb=function(){return!!(1&this.lo)},jspb.arith.UInt64.prototype.zero=function(){return this.lo==0&&this.hi==0},jspb.arith.UInt64.prototype.add=function(s){return new jspb.arith.UInt64((this.lo+s.lo&4294967295)>>>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.UInt64.prototype.sub=function(s){return new jspb.arith.UInt64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.UInt64.mul32x32=function(s,o){var et=65535&s,tt=65535&o,nt=o>>>16;for(o=et*tt+65536*(et*nt&65535)+65536*((s>>>=16)*tt&65535),et=s*nt+(et*nt>>>16)+(s*tt>>>16);4294967296<=o;)o-=4294967296,et+=1;return new jspb.arith.UInt64(o>>>0,et>>>0)},jspb.arith.UInt64.prototype.mul=function(s){var o=jspb.arith.UInt64.mul32x32(this.lo,s);return(s=jspb.arith.UInt64.mul32x32(this.hi,s)).hi=s.lo,s.lo=0,o.add(s)},jspb.arith.UInt64.prototype.div=function(s){if(s==0)return[];var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(this.lo,this.hi);s=new jspb.arith.UInt64(s,0);for(var tt=new jspb.arith.UInt64(1,0);!s.msb();)s=s.leftShift(),tt=tt.leftShift();for(;!tt.zero();)0>=s.cmp(et)&&(o=o.add(tt),et=et.sub(s)),s=s.rightShift(),tt=tt.rightShift();return[o,et]},jspb.arith.UInt64.prototype.toString=function(){for(var s="",o=this;!o.zero();){var et=(o=o.div(10))[0];s=o[1].lo+s,o=et}return s==""&&(s="0"),s},jspb.arith.UInt64.fromString=function(s){for(var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(0,0),tt=0;tts[tt]||"9">>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.sub=function(s){return new jspb.arith.Int64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)},jspb.arith.Int64.prototype.toString=function(){var s=(2147483648&this.hi)!=0,o=new jspb.arith.UInt64(this.lo,this.hi);return s&&(o=new jspb.arith.UInt64(0,0).sub(o)),(s?"-":"")+o.toString()},jspb.arith.Int64.fromString=function(s){var o=0>>7|o<<25)>>>0,o>>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSplitFixed64=function(s,o){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(o==Math.floor(o)),goog.asserts.assert(0<=s&&s>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSignedVarint32=function(s){if(goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&so;o++)this.buffer_.push(127&s|128),s>>=7;this.buffer_.push(1)}},jspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_31&&s>31)>>>0)},jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s>>0,tt>>>0)})},jspb.BinaryEncoder.prototype.writeUint8=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&256>s),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeUint16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&65536>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeUint32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeUint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&ss),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeInt16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(-32768<=s&&32768>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeInt32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeInt64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_63&&+s=-jspb.BinaryConstants.FLOAT32_MAX&&s<=jspb.BinaryConstants.FLOAT32_MAX),jspb.utils.splitFloat32(s),this.writeUint32(jspb.utils.split64Low)},jspb.BinaryEncoder.prototype.writeDouble=function(s){goog.asserts.assert(1/0===s||-1/0===s||isNaN(s)||s>=-jspb.BinaryConstants.FLOAT64_MAX&&s<=jspb.BinaryConstants.FLOAT64_MAX),jspb.utils.splitFloat64(s),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeBool=function(s){goog.asserts.assert(typeof s=="boolean"||typeof s=="number"),this.buffer_.push(s?1:0)},jspb.BinaryEncoder.prototype.writeEnum=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&stt)this.buffer_.push(tt);else if(2048>tt)this.buffer_.push(tt>>6|192),this.buffer_.push(63&tt|128);else if(65536>tt)if(55296<=tt&&56319>=tt&&et+1=nt&&(tt=1024*(tt-55296)+nt-56320+65536,this.buffer_.push(tt>>18|240),this.buffer_.push(tt>>12&63|128),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128),et++)}else this.buffer_.push(tt>>12|224),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128)}return this.buffer_.length-o},jspb.BinaryWriter=function(){this.blocks_=[],this.totalLength_=0,this.encoder_=new jspb.BinaryEncoder,this.bookmarks_=[]},jspb.BinaryWriter.prototype.appendUint8Array_=function(s){var o=this.encoder_.end();this.blocks_.push(o),this.blocks_.push(s),this.totalLength_+=o.length+s.length},jspb.BinaryWriter.prototype.beginDelimited_=function(s){return this.writeFieldHeader_(s,jspb.BinaryConstants.WireType.DELIMITED),s=this.encoder_.end(),this.blocks_.push(s),this.totalLength_+=s.length,s.push(this.totalLength_),s},jspb.BinaryWriter.prototype.endDelimited_=function(s){var o=s.pop();for(o=this.totalLength_+this.encoder_.length()-o,goog.asserts.assert(0<=o);127>>=7,this.totalLength_++;s.push(o),this.totalLength_++},jspb.BinaryWriter.prototype.writeSerializedMessage=function(s,o,et){this.appendUint8Array_(s.subarray(o,et))},jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(s,o,et){s!=null&&o!=null&&et!=null&&this.writeSerializedMessage(s,o,et)},jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[],this.encoder_.end(),this.totalLength_=0,this.bookmarks_=[]},jspb.BinaryWriter.prototype.getResultBuffer=function(){goog.asserts.assert(this.bookmarks_.length==0);for(var s=new Uint8Array(this.totalLength_+this.encoder_.length()),o=this.blocks_,et=o.length,tt=0,nt=0;nt=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o>>0,rt>>>0)})},jspb.BinaryWriter.prototype.writeRepeatedInt32=function(s,o){if(o!=null)for(var et=0;et>>0,ot>>>0)});this.endDelimited_(s)}},jspb.BinaryWriter.prototype.writePackedInt64String=function(s,o){if(o!=null&&o.length){s=this.beginDelimited_(s);for(var et=0;et-1};function dt(Tt){if(typeof Tt!="string"&&(Tt=String(Tt)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(Tt))throw new TypeError("Invalid character in header field name");return Tt.toLowerCase()}function ht(Tt){return typeof Tt!="string"&&(Tt=String(Tt)),Tt}function ct(Tt){var Bt={next:function(){var xt=Tt.shift();return{done:xt===void 0,value:xt}}};return it&&(Bt[Symbol.iterator]=function(){return Bt}),Bt}function pt(Tt){this.map={},Tt instanceof pt?Tt.forEach(function(Bt,xt){this.append(xt,Bt)},this):Array.isArray(Tt)?Tt.forEach(function(Bt){this.append(Bt[0],Bt[1])},this):Tt&&Object.getOwnPropertyNames(Tt).forEach(function(Bt){this.append(Bt,Tt[Bt])},this)}function ft(Tt){if(Tt.bodyUsed)return Promise.reject(new TypeError("Already read"));Tt.bodyUsed=!0}function gt(Tt){return new Promise(function(Bt,xt){Tt.onload=function(){Bt(Tt.result)},Tt.onerror=function(){xt(Tt.error)}})}function yt(Tt){var Bt=new FileReader,xt=gt(Bt);return Bt.readAsArrayBuffer(Tt),xt}function Ut(Tt){if(Tt.slice)return Tt.slice(0);var Bt=new Uint8Array(Tt.byteLength);return Bt.set(new Uint8Array(Tt)),Bt.buffer}function Ft(){return this.bodyUsed=!1,this._initBody=function(Tt){var Bt;this._bodyInit=Tt,Tt?typeof Tt=="string"?this._bodyText=Tt:ot&&Blob.prototype.isPrototypeOf(Tt)?this._bodyBlob=Tt:st&&FormData.prototype.isPrototypeOf(Tt)?this._bodyFormData=Tt:rt&&URLSearchParams.prototype.isPrototypeOf(Tt)?this._bodyText=Tt.toString():at&&ot&&(Bt=Tt)&&DataView.prototype.isPrototypeOf(Bt)?(this._bodyArrayBuffer=Ut(Tt.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):at&&(ArrayBuffer.prototype.isPrototypeOf(Tt)||ut(Tt))?this._bodyArrayBuffer=Ut(Tt):this._bodyText=Tt=Object.prototype.toString.call(Tt):this._bodyText="",this.headers.get("content-type")||(typeof Tt=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):rt&&URLSearchParams.prototype.isPrototypeOf(Tt)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},ot&&(this.blob=function(){var Tt=ft(this);if(Tt)return Tt;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?ft(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(yt)}),this.text=function(){var Tt,Bt,xt,Ct=ft(this);if(Ct)return Ct;if(this._bodyBlob)return Tt=this._bodyBlob,Bt=new FileReader,xt=gt(Bt),Bt.readAsText(Tt),xt;if(this._bodyArrayBuffer)return Promise.resolve(function(kt){for(var Nt=new Uint8Array(kt),Ot=new Array(Nt.length),Wt=0;Wt-1?Ct:xt),this.mode=Bt.mode||this.mode||null,this.signal=Bt.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&kt)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(kt)}function At(Tt){var Bt=new FormData;return Tt.trim().split("&").forEach(function(xt){if(xt){var Ct=xt.split("="),kt=Ct.shift().replace(/\+/g," "),Nt=Ct.join("=").replace(/\+/g," ");Bt.append(decodeURIComponent(kt),decodeURIComponent(Nt))}}),Bt}function Lt(Tt,Bt){Bt||(Bt={}),this.type="default",this.status=Bt.status===void 0?200:Bt.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in Bt?Bt.statusText:"OK",this.headers=new pt(Bt.headers),this.url=Bt.url||"",this._initBody(Tt)}vt.prototype.clone=function(){return new vt(this,{body:this._bodyInit})},Ft.call(vt.prototype),Ft.call(Lt.prototype),Lt.prototype.clone=function(){return new Lt(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new pt(this.headers),url:this.url})},Lt.error=function(){var Tt=new Lt(null,{status:0,statusText:""});return Tt.type="error",Tt};var Rt=[301,302,303,307,308];Lt.redirect=function(Tt,Bt){if(Rt.indexOf(Bt)===-1)throw new RangeError("Invalid status code");return new Lt(null,{status:Bt,headers:{location:Tt}})},nt.DOMException=tt.DOMException;try{new nt.DOMException}catch{nt.DOMException=function(Tt,Bt){this.message=Tt,this.name=Bt;var xt=Error(Tt);this.stack=xt.stack},nt.DOMException.prototype=Object.create(Error.prototype),nt.DOMException.prototype.constructor=nt.DOMException}function St(Tt,Bt){return new Promise(function(xt,Ct){var kt=new vt(Tt,Bt);if(kt.signal&&kt.signal.aborted)return Ct(new nt.DOMException("Aborted","AbortError"));var Nt=new XMLHttpRequest;function Ot(){Nt.abort()}Nt.onload=function(){var Wt,Dt,Et={status:Nt.status,statusText:Nt.statusText,headers:(Wt=Nt.getAllResponseHeaders()||"",Dt=new pt,Wt.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(zt){var en=zt.split(":"),Kt=en.shift().trim();if(Kt){var nn=en.join(":").trim();Dt.append(Kt,nn)}}),Dt)};Et.url="responseURL"in Nt?Nt.responseURL:Et.headers.get("X-Request-URL");var Pt="response"in Nt?Nt.response:Nt.responseText;xt(new Lt(Pt,Et))},Nt.onerror=function(){Ct(new TypeError("Network request failed"))},Nt.ontimeout=function(){Ct(new TypeError("Network request failed"))},Nt.onabort=function(){Ct(new nt.DOMException("Aborted","AbortError"))},Nt.open(kt.method,kt.url,!0),kt.credentials==="include"?Nt.withCredentials=!0:kt.credentials==="omit"&&(Nt.withCredentials=!1),"responseType"in Nt&&ot&&(Nt.responseType="blob"),kt.headers.forEach(function(Wt,Dt){Nt.setRequestHeader(Dt,Wt)}),kt.signal&&(kt.signal.addEventListener("abort",Ot),Nt.onreadystatechange=function(){Nt.readyState===4&&kt.signal.removeEventListener("abort",Ot)}),Nt.send(kt._bodyInit===void 0?null:kt._bodyInit)})}St.polyfill=!0,tt.fetch||(tt.fetch=St,tt.Headers=pt,tt.Request=vt,tt.Response=Lt),nt.Headers=pt,nt.Request=vt,nt.Response=Lt,nt.fetch=St})({})})(et),delete et.fetch.polyfill,(o=et.fetch).default=et.fetch,o.fetch=et.fetch,o.Headers=et.Headers,o.Request=et.Request,o.Response=et.Response,s.exports=o},function(s,o,et){(function(tt){const nt=et(211),rt=et(52),it=(ot,st,at)=>({from:it,EnvVarError:et(52),get:function(lt){if(!lt)return ot;if(arguments.length>1)throw new rt("It looks like you passed more than one argument to env.get(). Since env-var@6.0.0 this is no longer supported. To set a default value use env.get(TARGET).default(DEFAULT)");return nt(ot,lt,st||{},at||function(){})},accessors:et(94),logger:et(225)(console.log,ot.NODE_ENV)});s.exports=it(tt.env)}).call(this,et(2))},function(s,o,et){var tt=et(13),nt=et(73),rt=et(3).LEVEL,it=s.exports=function(){var ot=this,st=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};nt.call(this,{objectMode:!0,highWaterMark:st.highWaterMark}),this.format=st.format,this.level=st.level,this.handleExceptions=st.handleExceptions,this.silent=st.silent,st.log&&(this.log=st.log),st.logv&&(this.logv=st.logv),st.close&&(this.close=st.close),this.once("pipe",function(at){ot.levels=at.levels,ot.parent=at}),this.once("unpipe",function(at){at===ot.parent&&(ot.parent=null,ot.close&&ot.close())})};tt.inherits(it,nt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);var lt=this.level||this.parent&&this.parent.level;if(!lt||this.levels[lt]>=this.levels[ot[rt]]){if(ot&&!this.format)return this.log(ot,at);var ut=void 0,dt=void 0;try{dt=this.format.transform(Object.assign({},ot),this.format.options)}catch(ht){ut=ht}if(ut||!dt){if(at(),ut)throw ut;return}return this.log(dt,at)}return at(null)},it.prototype._writev=function(ot,st){if(this.logv){var at=ot.filter(this._accept,this);return at.length?this.logv(at,st):st(null)}for(var lt=0;lt=this.levels[st[rt]])||!this.handleExceptions&&st.exception===!0)},it.prototype._nop=function(){}},function(s,o,et){(function(tt){const nt=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,rt=typeof AbortController=="function"?AbortController:class{constructor(){this.signal=new st}abort(){this.signal.dispatchEvent("abort")}},it=typeof AbortSignal=="function",ot=typeof rt.AbortSignal=="function",st=it?AbortSignal:ot?rt.AbortController:class{constructor(){this.aborted=!1,this._listeners=[]}dispatchEvent(Ft){if(Ft==="abort"){this.aborted=!0;const mt={type:Ft,target:this};this.onabort(mt),this._listeners.forEach(vt=>vt(mt),this)}}onabort(){}addEventListener(Ft,mt){Ft==="abort"&&this._listeners.push(mt)}removeEventListener(Ft,mt){Ft==="abort"&&(this._listeners=this._listeners.filter(vt=>vt!==mt))}},at=new Set,lt=(Ft,mt)=>{const vt=`LRU_CACHE_OPTION_${Ft}`;ht(vt)&&ct(vt,`${Ft} option`,`options.${mt}`,Ut)},ut=(Ft,mt)=>{const vt=`LRU_CACHE_METHOD_${Ft}`;if(ht(vt)){const{prototype:At}=Ut,{get:Lt}=Object.getOwnPropertyDescriptor(At,Ft);ct(vt,`${Ft} method`,`cache.${mt}()`,Lt)}},dt=(...Ft)=>{typeof tt=="object"&&tt&&typeof tt.emitWarning=="function"?tt.emitWarning(...Ft):console.error(...Ft)},ht=Ft=>!at.has(Ft),ct=(Ft,mt,vt,At)=>{at.add(Ft),dt(`The ${mt} is deprecated. Please use ${vt} instead.`,"DeprecationWarning",Ft,At)},pt=Ft=>Ft&&Ft===Math.floor(Ft)&&Ft>0&&isFinite(Ft),ft=Ft=>pt(Ft)?Ft<=Math.pow(2,8)?Uint8Array:Ft<=Math.pow(2,16)?Uint16Array:Ft<=Math.pow(2,32)?Uint32Array:Ft<=Number.MAX_SAFE_INTEGER?gt:null:null;class gt extends Array{constructor(mt){super(mt),this.fill(0)}}class yt{constructor(mt){if(mt===0)return[];const vt=ft(mt);this.heap=new vt(mt),this.length=0}push(mt){this.heap[this.length++]=mt}pop(){return this.heap[--this.length]}}class Ut{constructor(mt={}){const{max:vt=0,ttl:At,ttlResolution:Lt=1,ttlAutopurge:Rt,updateAgeOnGet:St,updateAgeOnHas:Tt,allowStale:Bt,dispose:xt,disposeAfter:Ct,noDisposeOnSet:kt,noUpdateTTL:Nt,maxSize:Ot=0,maxEntrySize:Wt=0,sizeCalculation:Dt,fetchMethod:Et,fetchContext:Pt,noDeleteOnFetchRejection:zt,noDeleteOnStaleGet:en}=mt,{length:Kt,maxAge:nn,stale:Zt}=mt instanceof Ut?{}:mt;if(vt!==0&&!pt(vt))throw new TypeError("max option must be a nonnegative integer");const jt=vt?ft(vt):Array;if(!jt)throw new Error("invalid max value: "+vt);if(this.max=vt,this.maxSize=Ot,this.maxEntrySize=Wt||this.maxSize,this.sizeCalculation=Dt||Kt,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=Et||null,this.fetchMethod&&typeof this.fetchMethod!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=Pt,!this.fetchMethod&&Pt!==void 0)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(vt).fill(null),this.valList=new Array(vt).fill(null),this.next=new jt(vt),this.prev=new jt(vt),this.head=0,this.tail=0,this.free=new yt(vt),this.initialFill=1,this.size=0,typeof xt=="function"&&(this.dispose=xt),typeof Ct=="function"?(this.disposeAfter=Ct,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!kt,this.noUpdateTTL=!!Nt,this.noDeleteOnFetchRejection=!!zt,this.maxEntrySize!==0){if(this.maxSize!==0&&!pt(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!pt(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!Bt||!!Zt,this.noDeleteOnStaleGet=!!en,this.updateAgeOnGet=!!St,this.updateAgeOnHas=!!Tt,this.ttlResolution=pt(Lt)||Lt===0?Lt:1,this.ttlAutopurge=!!Rt,this.ttl=At||nn||0,this.ttl){if(!pt(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(this.max===0&&this.ttl===0&&this.maxSize===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const Vt="LRU_CACHE_UNBOUNDED";ht(Vt)&&(at.add(Vt),dt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Vt,Ut))}Zt&<("stale","allowStale"),nn&<("maxAge","ttl"),Kt&<("length","sizeCalculation")}getRemainingTTL(mt){return this.has(mt,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new gt(this.max),this.starts=new gt(this.max),this.setItemTTL=(At,Lt,Rt=nt.now())=>{if(this.starts[At]=Lt!==0?Rt:0,this.ttls[At]=Lt,Lt!==0&&this.ttlAutopurge){const St=setTimeout(()=>{this.isStale(At)&&this.delete(this.keyList[At])},Lt+1);St.unref&&St.unref()}},this.updateItemAge=At=>{this.starts[At]=this.ttls[At]!==0?nt.now():0};let mt=0;const vt=()=>{const At=nt.now();if(this.ttlResolution>0){mt=At;const Lt=setTimeout(()=>mt=0,this.ttlResolution);Lt.unref&&Lt.unref()}return At};this.getRemainingTTL=At=>{const Lt=this.keyMap.get(At);return Lt===void 0?0:this.ttls[Lt]===0||this.starts[Lt]===0?1/0:this.starts[Lt]+this.ttls[Lt]-(mt||vt())},this.isStale=At=>this.ttls[At]!==0&&this.starts[At]!==0&&(mt||vt())-this.starts[At]>this.ttls[At]}updateItemAge(mt){}setItemTTL(mt,vt,At){}isStale(mt){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new gt(this.max),this.removeItemSize=mt=>{this.calculatedSize-=this.sizes[mt],this.sizes[mt]=0},this.requireSize=(mt,vt,At,Lt)=>{if(!pt(At)){if(!Lt)throw new TypeError("invalid size value (must be positive integer)");if(typeof Lt!="function")throw new TypeError("sizeCalculation must be a function");if(At=Lt(vt,mt),!pt(At))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return At},this.addItemSize=(mt,vt)=>{this.sizes[mt]=vt;const At=this.maxSize-this.sizes[mt];for(;this.calculatedSize>At;)this.evict(!0);this.calculatedSize+=this.sizes[mt]}}removeItemSize(mt){}addItemSize(mt,vt){}requireSize(mt,vt,At,Lt){if(At||Lt)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.tail;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.head);)vt=this.prev[vt]}*rindexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.head;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.tail);)vt=this.next[vt]}isValidIndex(mt){return this.keyMap.get(this.keyList[mt])===mt}*entries(){for(const mt of this.indexes())yield[this.keyList[mt],this.valList[mt]]}*rentries(){for(const mt of this.rindexes())yield[this.keyList[mt],this.valList[mt]]}*keys(){for(const mt of this.indexes())yield this.keyList[mt]}*rkeys(){for(const mt of this.rindexes())yield this.keyList[mt]}*values(){for(const mt of this.indexes())yield this.valList[mt]}*rvalues(){for(const mt of this.rindexes())yield this.valList[mt]}[Symbol.iterator](){return this.entries()}find(mt,vt={}){for(const At of this.indexes())if(mt(this.valList[At],this.keyList[At],this))return this.get(this.keyList[At],vt)}forEach(mt,vt=this){for(const At of this.indexes())mt.call(vt,this.valList[At],this.keyList[At],this)}rforEach(mt,vt=this){for(const At of this.rindexes())mt.call(vt,this.valList[At],this.keyList[At],this)}get prune(){return ut("prune","purgeStale"),this.purgeStale}purgeStale(){let mt=!1;for(const vt of this.rindexes({allowStale:!0}))this.isStale(vt)&&(this.delete(this.keyList[vt]),mt=!0);return mt}dump(){const mt=[];for(const vt of this.indexes({allowStale:!0})){const At=this.keyList[vt],Lt=this.valList[vt],Rt={value:this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt};if(this.ttls){Rt.ttl=this.ttls[vt];const St=nt.now()-this.starts[vt];Rt.start=Math.floor(Date.now()-St)}this.sizes&&(Rt.size=this.sizes[vt]),mt.unshift([At,Rt])}return mt}load(mt){this.clear();for(const[vt,At]of mt){if(At.start){const Lt=Date.now()-At.start;At.start=nt.now()-Lt}this.set(vt,At.value,At)}}dispose(mt,vt,At){}set(mt,vt,{ttl:At=this.ttl,start:Lt,noDisposeOnSet:Rt=this.noDisposeOnSet,size:St=0,sizeCalculation:Tt=this.sizeCalculation,noUpdateTTL:Bt=this.noUpdateTTL}={}){if(St=this.requireSize(mt,vt,St,Tt),this.maxEntrySize&&St>this.maxEntrySize)return this;let xt=this.size===0?void 0:this.keyMap.get(mt);if(xt===void 0)xt=this.newIndex(),this.keyList[xt]=mt,this.valList[xt]=vt,this.keyMap.set(mt,xt),this.next[this.tail]=xt,this.prev[xt]=this.tail,this.tail=xt,this.size++,this.addItemSize(xt,St),Bt=!1;else{const Ct=this.valList[xt];vt!==Ct&&(this.isBackgroundFetch(Ct)?Ct.__abortController.abort():Rt||(this.dispose(Ct,mt,"set"),this.disposeAfter&&this.disposed.push([Ct,mt,"set"])),this.removeItemSize(xt),this.valList[xt]=vt,this.addItemSize(xt,St)),this.moveToTail(xt)}if(At===0||this.ttl!==0||this.ttls||this.initializeTTLTracking(),Bt||this.setItemTTL(xt,At,Lt),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return this.size===0?this.tail:this.size===this.max&&this.max!==0?this.evict(!1):this.free.length!==0?this.free.pop():this.initialFill++}pop(){if(this.size){const mt=this.valList[this.head];return this.evict(!0),mt}}evict(mt){const vt=this.head,At=this.keyList[vt],Lt=this.valList[vt];return this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,At,"evict"),this.disposeAfter&&this.disposed.push([Lt,At,"evict"])),this.removeItemSize(vt),mt&&(this.keyList[vt]=null,this.valList[vt]=null,this.free.push(vt)),this.head=this.next[vt],this.keyMap.delete(At),this.size--,vt}has(mt,{updateAgeOnHas:vt=this.updateAgeOnHas}={}){const At=this.keyMap.get(mt);return At!==void 0&&!this.isStale(At)&&(vt&&this.updateItemAge(At),!0)}peek(mt,{allowStale:vt=this.allowStale}={}){const At=this.keyMap.get(mt);if(At!==void 0&&(vt||!this.isStale(At))){const Lt=this.valList[At];return this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt}}backgroundFetch(mt,vt,At,Lt){const Rt=vt===void 0?void 0:this.valList[vt];if(this.isBackgroundFetch(Rt))return Rt;const St=new rt,Tt={signal:St.signal,options:At,context:Lt},Bt=new Promise(xt=>xt(this.fetchMethod(mt,Rt,Tt))).then(xt=>(St.signal.aborted||this.set(mt,xt,Tt.options),xt),xt=>{if(this.valList[vt]===Bt&&(!At.noDeleteOnFetchRejection||Bt.__staleWhileFetching===void 0?this.delete(mt):this.valList[vt]=Bt.__staleWhileFetching),Bt.__returned===Bt)throw xt});return Bt.__abortController=St,Bt.__staleWhileFetching=Rt,Bt.__returned=null,vt===void 0?(this.set(mt,Bt,Tt.options),vt=this.keyMap.get(mt)):this.valList[vt]=Bt,Bt}isBackgroundFetch(mt){return mt&&typeof mt=="object"&&typeof mt.then=="function"&&Object.prototype.hasOwnProperty.call(mt,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(mt,"__returned")&&(mt.__returned===mt||mt.__returned===null)}async fetch(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet,ttl:Rt=this.ttl,noDisposeOnSet:St=this.noDisposeOnSet,size:Tt=0,sizeCalculation:Bt=this.sizeCalculation,noUpdateTTL:xt=this.noUpdateTTL,noDeleteOnFetchRejection:Ct=this.noDeleteOnFetchRejection,fetchContext:kt=this.fetchContext,forceRefresh:Nt=!1}={}){if(!this.fetchMethod)return this.get(mt,{allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt});const Ot={allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt,ttl:Rt,noDisposeOnSet:St,size:Tt,sizeCalculation:Bt,noUpdateTTL:xt,noDeleteOnFetchRejection:Ct};let Wt=this.keyMap.get(mt);if(Wt===void 0){const Dt=this.backgroundFetch(mt,Wt,Ot,kt);return Dt.__returned=Dt}{const Dt=this.valList[Wt];if(this.isBackgroundFetch(Dt))return vt&&Dt.__staleWhileFetching!==void 0?Dt.__staleWhileFetching:Dt.__returned=Dt;if(!Nt&&!this.isStale(Wt))return this.moveToTail(Wt),At&&this.updateItemAge(Wt),Dt;const Et=this.backgroundFetch(mt,Wt,Ot,kt);return vt&&Et.__staleWhileFetching!==void 0?Et.__staleWhileFetching:Et.__returned=Et}}get(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet}={}){const Rt=this.keyMap.get(mt);if(Rt!==void 0){const St=this.valList[Rt],Tt=this.isBackgroundFetch(St);return this.isStale(Rt)?Tt?vt?St.__staleWhileFetching:void 0:(Lt||this.delete(mt),vt?St:void 0):Tt?void 0:(this.moveToTail(Rt),At&&this.updateItemAge(Rt),St)}}connect(mt,vt){this.prev[vt]=mt,this.next[mt]=vt}moveToTail(mt){mt!==this.tail&&(mt===this.head?this.head=this.next[mt]:this.connect(this.prev[mt],this.next[mt]),this.connect(this.tail,mt),this.tail=mt)}get del(){return ut("del","delete"),this.delete}delete(mt){let vt=!1;if(this.size!==0){const At=this.keyMap.get(mt);if(At!==void 0)if(vt=!0,this.size===1)this.clear();else{this.removeItemSize(At);const Lt=this.valList[At];this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,mt,"delete"),this.disposeAfter&&this.disposed.push([Lt,mt,"delete"])),this.keyMap.delete(mt),this.keyList[At]=null,this.valList[At]=null,At===this.tail?this.tail=this.prev[At]:At===this.head?this.head=this.next[At]:(this.next[this.prev[At]]=this.next[At],this.prev[this.next[At]]=this.prev[At]),this.size--,this.free.push(At)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return vt}clear(){for(const mt of this.rindexes({allowStale:!0})){const vt=this.valList[mt];if(this.isBackgroundFetch(vt))vt.__abortController.abort();else{const At=this.keyList[mt];this.dispose(vt,At,"delete"),this.disposeAfter&&this.disposed.push([vt,At,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return ut("reset","clear"),this.clear}get length(){return((mt,vt)=>{const At=`LRU_CACHE_PROPERTY_${mt}`;if(ht(At)){const{prototype:Lt}=Ut,{get:Rt}=Object.getOwnPropertyDescriptor(Lt,mt);ct(At,`${mt} property`,`cache.${vt}`,Rt)}})("length","size"),this.size}static get AbortController(){return rt}static get AbortSignal(){return st}}s.exports=Ut}).call(this,et(2))},function(s,o,et){var tt=et(41).Colorizer;s.exports=function(nt){return tt.addColors(nt.colors||nt),nt}},function(s,o,et){var tt={};s.exports=tt,tt.themes={};var nt=et(13),rt=tt.styles=et(109),it=Object.defineProperties,ot=new RegExp(/[\r\n]+/g);tt.supportsColor=et(110).supportsColor,tt.enabled===void 0&&(tt.enabled=tt.supportsColor()!==!1),tt.enable=function(){tt.enabled=!0},tt.disable=function(){tt.enabled=!1},tt.stripColors=tt.strip=function(ft){return(""+ft).replace(/\x1B\[\d+m/g,"")},tt.stylize=function(ft,gt){return tt.enabled?rt[gt].open+ft+rt[gt].close:ft+""};var st=/[|\\{}()[\]^$+*?.]/g;function at(ft){var gt=function yt(){return ht.apply(yt,arguments)};return gt._styles=ft,gt.__proto__=dt,gt}var lt,ut=(lt={},rt.grey=rt.gray,Object.keys(rt).forEach(function(ft){rt[ft].closeRe=new RegExp(function(gt){if(typeof gt!="string")throw new TypeError("Expected a string");return gt.replace(st,"\\$&")}(rt[ft].close),"g"),lt[ft]={get:function(){return at(this._styles.concat(ft))}}}),lt),dt=it(function(){},ut);function ht(){var ft=Array.prototype.slice.call(arguments),gt=ft.map(function(vt){return vt!==void 0&&vt.constructor===String?vt:nt.inspect(vt)}).join(" ");if(!tt.enabled||!gt)return gt;for(var yt=gt.indexOf(` +`)},goog.string.normalizeWhitespace=function(s){return s.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(s){return s.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(s){return s.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.string.internal.trim,goog.string.trimLeft=function(s){return s.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(s){return s.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare,goog.string.numberAwareCompare_=function(s,o,et){if(s==o)return 0;if(!s)return-1;if(!o)return 1;for(var tt=s.toLowerCase().match(et),nt=o.toLowerCase().match(et),rt=Math.min(tt.length,nt.length),it=0;it",""":'"'},tt=o?o.createElement("div"):goog.global.document.createElement("div");return s.replace(goog.string.HTML_ENTITY_PATTERN_,function(nt,rt){var it=et[nt];return it||(rt.charAt(0)=="#"&&(rt=+("0"+rt.substr(1)),isNaN(rt)||(it=String.fromCharCode(rt))),it||(goog.dom.safe.setInnerHtml(tt,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),nt+" ")),it=tt.firstChild.nodeValue.slice(0,-1)),et[nt]=it)})},goog.string.unescapePureXmlEntities_=function(s){return s.replace(/&([^;]+);/g,function(o,et){switch(et){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:return et.charAt(0)!="#"||(et=+("0"+et.substr(1)),isNaN(et))?o:String.fromCharCode(et)}})},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(s,o){return goog.string.newLineToBr(s.replace(/ /g,"  "),o)},goog.string.preserveSpaces=function(s){return s.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(s,o){for(var et=o.length,tt=0;tto&&(s=s.substring(0,o-3)+"..."),et&&(s=goog.string.htmlEscape(s)),s},goog.string.truncateMiddle=function(s,o,et,tt){if(et&&(s=goog.string.unescapeEntities(s)),tt&&s.length>o){tt>o&&(tt=o);var nt=s.length-tt;s=s.substring(0,o-tt)+"..."+s.substring(nt)}else s.length>o&&(tt=Math.floor(o/2),nt=s.length-tt,s=s.substring(0,tt+o%2)+"..."+s.substring(nt));return et&&(s=goog.string.htmlEscape(s)),s},goog.string.specialEscapeChars_={"\0":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(s){s=String(s);for(var o=['"'],et=0;etnt?tt:goog.string.escapeChar(tt))}return o.push('"'),o.join("")},goog.string.escapeString=function(s){for(var o=[],et=0;eto)var et=s;else 256>o?(et="\\x",(16>o||256o&&(et+="0")),et+=o.toString(16).toUpperCase();return goog.string.jsEscapeCache_[s]=et},goog.string.contains=goog.string.internal.contains,goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains,goog.string.countOf=function(s,o){return s&&o?s.split(o).length-1:0},goog.string.removeAt=function(s,o,et){var tt=s;return 0<=o&&o>>0;return o},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(s){var o=Number(s);return o==0&&goog.string.isEmptyOrWhitespace(s)?NaN:o},goog.string.isLowerCamelCase=function(s){return/^[a-z]+([A-Z][a-z]*)*$/.test(s)},goog.string.isUpperCamelCase=function(s){return/^([A-Z][a-z]*)+$/.test(s)},goog.string.toCamelCase=function(s){return String(s).replace(/\-([a-z])/g,function(o,et){return et.toUpperCase()})},goog.string.toSelectorCase=function(s){return String(s).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(s,o){return o=goog.isString(o)?goog.string.regExpEscape(o):"\\s",s.replace(new RegExp("(^"+(o?"|["+o+"]+":"")+")([a-z])","g"),function(et,tt,nt){return tt+nt.toUpperCase()})},goog.string.capitalize=function(s){return String(s.charAt(0)).toUpperCase()+String(s.substr(1)).toLowerCase()},goog.string.parseInt=function(s){return isFinite(s)&&(s=String(s)),goog.isString(s)?/^\s*-?0x/i.test(s)?parseInt(s,16):parseInt(s,10):NaN},goog.string.splitLimit=function(s,o,et){s=s.split(o);for(var tt=[];0et&&(et=nt)}return et==-1?s:s.slice(et+1)},goog.string.editDistance=function(s,o){var et=[],tt=[];if(s==o)return 0;if(!s.length||!o.length)return Math.max(s.length,o.length);for(var nt=0;ntparseFloat(s)?String(o):s},goog.userAgent.getVersionRegexResult_=function(){var s=goog.userAgent.getUserAgentString();return goog.userAgent.GECKO?/rv:([^\);]+)(\)|;)/.exec(s):goog.userAgent.EDGE?/Edge\/([\d\.]+)/.exec(s):goog.userAgent.IE?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(s):goog.userAgent.WEBKIT?/WebKit\/(\S+)/.exec(s):goog.userAgent.OPERA?/(?:Version)[ \/]?(\S+)/.exec(s):void 0},goog.userAgent.getDocumentMode_=function(){var s=goog.global.document;return s?s.documentMode:void 0},goog.userAgent.VERSION=goog.userAgent.determineVersion_(),goog.userAgent.compare=function(s,o){return goog.string.compareVersions(s,o)},goog.userAgent.isVersionOrHigherCache_={},goog.userAgent.isVersionOrHigher=function(s){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,s,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,s)})},goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher,goog.userAgent.isDocumentModeOrHigher=function(s){return Number(goog.userAgent.DOCUMENT_MODE)>=s},goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher,goog.userAgent.DOCUMENT_MODE=function(){if(goog.global.document&&goog.userAgent.IE)return goog.userAgent.getDocumentMode_()}(),goog.userAgent.product={},goog.userAgent.product.ASSUME_FIREFOX=!1,goog.userAgent.product.ASSUME_IPHONE=!1,goog.userAgent.product.ASSUME_IPAD=!1,goog.userAgent.product.ASSUME_ANDROID=!1,goog.userAgent.product.ASSUME_CHROME=!1,goog.userAgent.product.ASSUME_SAFARI=!1,goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI,goog.userAgent.product.OPERA=goog.userAgent.OPERA,goog.userAgent.product.IE=goog.userAgent.IE,goog.userAgent.product.EDGE=goog.userAgent.EDGE,goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox(),goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()},goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_(),goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser(),goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome(),goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()},goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_(),goog.crypt.base64={},goog.crypt.base64.DEFAULT_ALPHABET_COMMON_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"+/=",goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"-_.",goog.crypt.base64.Alphabet={DEFAULT:0,NO_PADDING:1,WEBSAFE:2,WEBSAFE_DOT_PADDING:3,WEBSAFE_NO_PADDING:4},goog.crypt.base64.paddingChars_="=.",goog.crypt.base64.isPadding_=function(s){return goog.string.contains(goog.crypt.base64.paddingChars_,s)},goog.crypt.base64.byteToCharMaps_={},goog.crypt.base64.charToByteMap_=null,goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA,goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||typeof goog.global.btoa=="function",goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&typeof goog.global.atob=="function",goog.crypt.base64.encodeByteArray=function(s,o){goog.asserts.assert(goog.isArrayLike(s),"encodeByteArray takes an array as a parameter"),o===void 0&&(o=goog.crypt.base64.Alphabet.DEFAULT),goog.crypt.base64.init_(),o=goog.crypt.base64.byteToCharMaps_[o];for(var et=[],tt=0;tt>2;nt=(3&nt)<<4|it>>4,it=(15&it)<<2|st>>6,st&=63,ot||(st=64,rt||(it=64)),et.push(o[at],o[nt],o[it]||"",o[st]||"")}return et.join("")},goog.crypt.base64.encodeString=function(s,o){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!o?goog.global.btoa(s):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(s),o)},goog.crypt.base64.decodeString=function(s,o){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!o)return goog.global.atob(s);var et="";return goog.crypt.base64.decodeStringInternal_(s,function(tt){et+=String.fromCharCode(tt)}),et},goog.crypt.base64.decodeStringToByteArray=function(s,o){var et=[];return goog.crypt.base64.decodeStringInternal_(s,function(tt){et.push(tt)}),et},goog.crypt.base64.decodeStringToUint8Array=function(s){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var o=s.length,et=3*o/4;et%3?et=Math.floor(et):goog.crypt.base64.isPadding_(s[o-1])&&(et=goog.crypt.base64.isPadding_(s[o-2])?et-2:et-1);var tt=new Uint8Array(et),nt=0;return goog.crypt.base64.decodeStringInternal_(s,function(rt){tt[nt++]=rt}),tt.subarray(0,nt)},goog.crypt.base64.decodeStringInternal_=function(s,o){function et(st){for(;tt>4),it!=64&&(o(rt<<4&240|it>>2),ot!=64&&o(it<<6&192|ot))}},goog.crypt.base64.init_=function(){if(!goog.crypt.base64.charToByteMap_){goog.crypt.base64.charToByteMap_={};for(var s=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""),o=["+/=","+/","-_=","-_.","-_"],et=0;5>et;et++){var tt=s.concat(o[et].split(""));goog.crypt.base64.byteToCharMaps_[et]=tt;for(var nt=0;nt>>0;s=Math.floor((s-o)/jspb.BinaryConstants.TWO_TO_32)>>>0,jspb.utils.split64Low=o,jspb.utils.split64High=s},jspb.utils.splitInt64=function(s){var o=0>s,et=(s=Math.abs(s))>>>0;s=Math.floor((s-et)/jspb.BinaryConstants.TWO_TO_32),s>>>=0,o&&(s=~s>>>0,4294967295<(et=1+(~et>>>0))&&(et=0,4294967295<++s&&(s=0))),jspb.utils.split64Low=et,jspb.utils.split64High=s},jspb.utils.splitZigzag64=function(s){var o=0>s;s=2*Math.abs(s),jspb.utils.splitUint64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;o&&(s==0?et==0?et=s=4294967295:(et--,s=4294967295):s--),jspb.utils.split64Low=s,jspb.utils.split64High=et},jspb.utils.splitFloat32=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)0<1/s?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(s))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(s>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|2139095040)>>>0;else if(s>>0;else{var et=Math.floor(Math.log(s)/Math.LN2);s*=Math.pow(2,-et),s=8388607&Math.round(s*jspb.BinaryConstants.TWO_TO_23),jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|et+127<<23|s)>>>0}},jspb.utils.splitFloat64=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)jspb.utils.split64High=0<1/s?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(s))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(s>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(o<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(s>>0,jspb.utils.split64Low=et>>>0}else{var tt=0;if(2<=(et=s))for(;2<=et&&1023>tt;)tt++,et/=2;else for(;1>et&&-1022>>0,jspb.utils.split64High=(o<<31|tt+1023<<20|s)>>>0,jspb.utils.split64Low=et}},jspb.utils.splitHash64=function(s){var o=s.charCodeAt(0),et=s.charCodeAt(1),tt=s.charCodeAt(2),nt=s.charCodeAt(3),rt=s.charCodeAt(4),it=s.charCodeAt(5),ot=s.charCodeAt(6);s=s.charCodeAt(7),jspb.utils.split64Low=o+(et<<8)+(tt<<16)+(nt<<24)>>>0,jspb.utils.split64High=rt+(it<<8)+(ot<<16)+(s<<24)>>>0},jspb.utils.joinUint64=function(s,o){return o*jspb.BinaryConstants.TWO_TO_32+(s>>>0)},jspb.utils.joinInt64=function(s,o){var et=2147483648&o;return et&&(o=~o>>>0,(s=1+~s>>>0)==0&&(o=o+1>>>0)),s=jspb.utils.joinUint64(s,o),et?-s:s},jspb.utils.toZigzag64=function(s,o,et){var tt=o>>31;return et(s<<1^tt,(o<<1|s>>>31)^tt)},jspb.utils.joinZigzag64=function(s,o){return jspb.utils.fromZigzag64(s,o,jspb.utils.joinInt64)},jspb.utils.fromZigzag64=function(s,o,et){var tt=-(1&s);return et((s>>>1|o<<31)^tt,o>>>1^tt)},jspb.utils.joinFloat32=function(s,o){o=2*(s>>31)+1;var et=s>>>23&255;return s&=8388607,et==255?s?NaN:1/0*o:et==0?o*Math.pow(2,-149)*s:o*Math.pow(2,et-150)*(s+Math.pow(2,23))},jspb.utils.joinFloat64=function(s,o){var et=2*(o>>31)+1,tt=o>>>20&2047;return s=jspb.BinaryConstants.TWO_TO_32*(1048575&o)+s,tt==2047?s?NaN:1/0*et:tt==0?et*Math.pow(2,-1074)*s:et*Math.pow(2,tt-1075)*(s+jspb.BinaryConstants.TWO_TO_52)},jspb.utils.joinHash64=function(s,o){return String.fromCharCode(s>>>0&255,s>>>8&255,s>>>16&255,s>>>24&255,o>>>0&255,o>>>8&255,o>>>16&255,o>>>24&255)},jspb.utils.DIGITS="0123456789abcdef".split(""),jspb.utils.ZERO_CHAR_CODE_=48,jspb.utils.A_CHAR_CODE_=97,jspb.utils.joinUnsignedDecimalString=function(s,o){function et(nt,rt){return nt=nt?String(nt):"",rt?"0000000".slice(nt.length)+nt:nt}if(2097151>=o)return""+(jspb.BinaryConstants.TWO_TO_32*o+s);var tt=(s>>>24|o<<8)>>>0&16777215;return s=(16777215&s)+6777216*tt+6710656*(o=o>>16&65535),tt+=8147497*o,o*=2,1e7<=s&&(tt+=Math.floor(s/1e7),s%=1e7),1e7<=tt&&(o+=Math.floor(tt/1e7),tt%=1e7),et(o,0)+et(tt,o)+et(s,1)},jspb.utils.joinSignedDecimalString=function(s,o){var et=2147483648&o;return et&&(o=~o+((s=1+~s>>>0)==0?1:0)>>>0),s=jspb.utils.joinUnsignedDecimalString(s,o),et?"-"+s:s},jspb.utils.hash64ToDecimalString=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinSignedDecimalString(s,et):jspb.utils.joinUnsignedDecimalString(s,et)},jspb.utils.hash64ArrayToDecimalStrings=function(s,o){for(var et=Array(s.length),tt=0;ttot&&(rt!==1||0>>=8}goog.asserts.assert(0rt;rt++)tt[rt]=255&~tt[rt]}(),o(1,1)),goog.crypt.byteArrayToString(tt)},jspb.utils.splitDecimalString=function(s){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(s))},jspb.utils.toHexDigit_=function(s){return String.fromCharCode(10>s?jspb.utils.ZERO_CHAR_CODE_+s:jspb.utils.A_CHAR_CODE_-10+s)},jspb.utils.fromHexCharCode_=function(s){return s>=jspb.utils.A_CHAR_CODE_?s-jspb.utils.A_CHAR_CODE_+10:s-jspb.utils.ZERO_CHAR_CODE_},jspb.utils.hash64ToHexString=function(s){var o=Array(18);o[0]="0",o[1]="x";for(var et=0;8>et;et++){var tt=s.charCodeAt(7-et);o[2*et+2]=jspb.utils.toHexDigit_(tt>>4),o[2*et+3]=jspb.utils.toHexDigit_(15&tt)}return o.join("")},jspb.utils.hexStringToHash64=function(s){s=s.toLowerCase(),goog.asserts.assert(s.length==18),goog.asserts.assert(s[0]=="0"),goog.asserts.assert(s[1]=="x");for(var o="",et=0;8>et;et++){var tt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+2)),nt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+3));o=String.fromCharCode(16*tt+nt)+o}return o},jspb.utils.hash64ToNumber=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinInt64(s,et):jspb.utils.joinUint64(s,et)},jspb.utils.numberToHash64=function(s){return jspb.utils.splitInt64(s),jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.utils.countVarints=function(s,o,et){for(var tt=0,nt=o;nt>7;return et-o-tt},jspb.utils.countVarintFields=function(s,o,et,tt){var nt=0;if(128>(tt=8*tt+jspb.BinaryConstants.WireType.VARINT))for(;o>=7}if(s[o++]!=rt)break;for(nt++;128&(rt=s[o++]););}return nt},jspb.utils.countFixedFields_=function(s,o,et,tt,nt){var rt=0;if(128>tt)for(;o>=7}if(s[o++]!=it)break;rt++,o+=nt}return rt},jspb.utils.countFixed32Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED32,4)},jspb.utils.countFixed64Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED64,8)},jspb.utils.countDelimitedFields=function(s,o,et,tt){var nt=0;for(tt=8*tt+jspb.BinaryConstants.WireType.DELIMITED;o>=7}if(s[o++]!=rt)break;nt++;for(var it=0,ot=1;it+=(127&(rt=s[o++]))*ot,ot*=128,(128&rt)!=0;);o+=it}return nt},jspb.utils.debugBytesToTextFormat=function(s){var o='"';if(s){s=jspb.utils.byteSourceToUint8Array(s);for(var et=0;ets[et]&&(o+="0"),o+=s[et].toString(16)}return o+'"'},jspb.utils.debugScalarToTextFormat=function(s){return typeof s=="string"?goog.string.quote(s):s.toString()},jspb.utils.stringToByteArray=function(s){for(var o=new Uint8Array(s.length),et=0;etjspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)},jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)},jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1},jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_},jspb.BinaryDecoder.prototype.setBlock=function(s,o,et){this.bytes_=jspb.utils.byteSourceToUint8Array(s),this.start_=o!==void 0?o:0,this.end_=et!==void 0?this.start_+et:this.bytes_.length,this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_},jspb.BinaryDecoder.prototype.setEnd=function(s){this.end_=s},jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_},jspb.BinaryDecoder.prototype.setCursor=function(s){this.cursor_=s},jspb.BinaryDecoder.prototype.advance=function(s){this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_)},jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_},jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_},jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_},jspb.BinaryDecoder.prototype.readSplitVarint64=function(s){for(var o=128,et=0,tt=0,nt=0;4>nt&&128<=o;nt++)et|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt;if(128<=o&&(et|=(127&(o=this.bytes_[this.cursor_++]))<<28,tt|=(127&o)>>4),128<=o)for(nt=0;5>nt&&128<=o;nt++)tt|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt+3;if(128>o)return s(et>>>0,tt>>>0);goog.asserts.fail("Failed to read varint, encoding is invalid."),this.error_=!0},jspb.BinaryDecoder.prototype.readSplitZigzagVarint64=function(s){return this.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryDecoder.prototype.readSplitFixed64=function(s){var o=this.bytes_,et=this.cursor_;this.cursor_+=8;for(var tt=0,nt=0,rt=et+7;rt>=et;rt--)tt=tt<<8|o[rt],nt=nt<<8|o[rt+4];return s(tt,nt)},jspb.BinaryDecoder.prototype.skipVarint=function(){for(;128&this.bytes_[this.cursor_];)this.cursor_++;this.cursor_++},jspb.BinaryDecoder.prototype.unskipVarint=function(s){for(;128>>=7;this.cursor_--},jspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var s=this.bytes_,o=s[this.cursor_+0],et=127&o;return 128>o?(this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+1]))<<7,128>o?(this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+2]))<<14,128>o?(this.cursor_+=3,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+3]))<<21,128>o?(this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(15&(o=s[this.cursor_+4]))<<28,128>o?(this.cursor_+=5,goog.asserts.assert(this.cursor_<=this.end_),et>>>0):(this.cursor_+=5,128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&goog.asserts.assert(!1),goog.asserts.assert(this.cursor_<=this.end_),et)))))},jspb.BinaryDecoder.prototype.readSignedVarint32=jspb.BinaryDecoder.prototype.readUnsignedVarint32,jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()},jspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()},jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var s=this.readUnsignedVarint32();return s>>>1^-(1&s)},jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinUint64)},jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString)},jspb.BinaryDecoder.prototype.readSignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinInt64)},jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){return this.readSplitVarint64(jspb.utils.joinZigzag64)},jspb.BinaryDecoder.prototype.readZigzagVarintHash64=function(){return this.readSplitZigzagVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readUint8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s},jspb.BinaryDecoder.prototype.readUint16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8},jspb.BinaryDecoder.prototype.readUint32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8|et<<16|tt<<24)>>>0},jspb.BinaryDecoder.prototype.readUint64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUint64(s,o)},jspb.BinaryDecoder.prototype.readUint64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUnsignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readInt8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s<<24>>24},jspb.BinaryDecoder.prototype.readInt16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8)<<16>>16},jspb.BinaryDecoder.prototype.readInt32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8|et<<16|tt<<24},jspb.BinaryDecoder.prototype.readInt64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinInt64(s,o)},jspb.BinaryDecoder.prototype.readInt64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinSignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readFloat=function(){var s=this.readUint32();return jspb.utils.joinFloat32(s,0)},jspb.BinaryDecoder.prototype.readDouble=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinFloat64(s,o)},jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]},jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()},jspb.BinaryDecoder.prototype.readString=function(s){var o=this.bytes_,et=this.cursor_;s=et+s;for(var tt=[],nt="";etrt)tt.push(rt);else{if(192>rt)continue;if(224>rt){var it=o[et++];tt.push((31&rt)<<6|63&it)}else if(240>rt){it=o[et++];var ot=o[et++];tt.push((15&rt)<<12|(63&it)<<6|63&ot)}else 248>rt&&(rt=(7&rt)<<18|(63&(it=o[et++]))<<12|(63&(ot=o[et++]))<<6|63&o[et++],rt-=65536,tt.push(55296+(rt>>10&1023),56320+(1023&rt)))}8192<=tt.length&&(nt+=String.fromCharCode.apply(null,tt),tt.length=0)}return nt+=goog.crypt.byteArrayToString(tt),this.cursor_=et,nt},jspb.BinaryDecoder.prototype.readStringWithLength=function(){var s=this.readUnsignedVarint32();return this.readString(s)},jspb.BinaryDecoder.prototype.readBytes=function(s){if(0>s||this.cursor_+s>this.bytes_.length)return this.error_=!0,goog.asserts.fail("Invalid byte length!"),new Uint8Array(0);var o=this.bytes_.subarray(this.cursor_,this.cursor_+s);return this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_),o},jspb.BinaryDecoder.prototype.readVarintHash64=function(){return this.readSplitVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readFixedHash64=function(){var s=this.bytes_,o=this.cursor_,et=s[o+0],tt=s[o+1],nt=s[o+2],rt=s[o+3],it=s[o+4],ot=s[o+5],st=s[o+6];return s=s[o+7],this.cursor_+=8,String.fromCharCode(et,tt,nt,rt,it,ot,st,s)},jspb.BinaryReader=function(s,o,et){this.decoder_=jspb.BinaryDecoder.alloc(s,o,et),this.fieldCursor_=this.decoder_.getCursor(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null},jspb.BinaryReader.instanceCache_=[],jspb.BinaryReader.alloc=function(s,o,et){if(jspb.BinaryReader.instanceCache_.length){var tt=jspb.BinaryReader.instanceCache_.pop();return s&&tt.decoder_.setBlock(s,o,et),tt}return new jspb.BinaryReader(s,o,et)},jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc,jspb.BinaryReader.prototype.free=function(){this.decoder_.clear(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null,100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)},jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_},jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()},jspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()},jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_},jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_},jspb.BinaryReader.prototype.isDelimited=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED},jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP},jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()},jspb.BinaryReader.prototype.setBlock=function(s,o,et){this.decoder_.setBlock(s,o,et),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.advance=function(s){this.decoder_.advance(s)},jspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return goog.asserts.fail("Decoder hit an error"),!1;this.fieldCursor_=this.decoder_.getCursor();var s=this.decoder_.readUnsignedVarint32(),o=s>>>3;return(s&=7)!=jspb.BinaryConstants.WireType.VARINT&&s!=jspb.BinaryConstants.WireType.FIXED32&&s!=jspb.BinaryConstants.WireType.FIXED64&&s!=jspb.BinaryConstants.WireType.DELIMITED&&s!=jspb.BinaryConstants.WireType.START_GROUP&&s!=jspb.BinaryConstants.WireType.END_GROUP?(goog.asserts.fail("Invalid wire type: %s (at position %s)",s,this.fieldCursor_),this.error_=!0,!1):(this.nextField_=o,this.nextWireType_=s,!0)},jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)},jspb.BinaryReader.prototype.skipMatchingFields=function(){var s=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==s;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()},jspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(goog.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()},jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)goog.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField();else{var s=this.decoder_.readUnsignedVarint32();this.decoder_.advance(s)}},jspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(goog.asserts.fail("Invalid wire type for skipFixed32Field"),this.skipField()):this.decoder_.advance(4)},jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(goog.asserts.fail("Invalid wire type for skipFixed64Field"),this.skipField()):this.decoder_.advance(8)},jspb.BinaryReader.prototype.skipGroup=function(){for(var s=this.nextField_;;){if(!this.nextField()){goog.asserts.fail("Unmatched start-group tag: stream EOF"),this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP){this.nextField_!=s&&(goog.asserts.fail("Unmatched end-group tag"),this.error_=!0);break}this.skipField()}},jspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:goog.asserts.fail("Invalid wire encoding for field.")}},jspb.BinaryReader.prototype.registerReadCallback=function(s,o){this.readCallbacks_===null&&(this.readCallbacks_={}),goog.asserts.assert(!this.readCallbacks_[s]),this.readCallbacks_[s]=o},jspb.BinaryReader.prototype.runReadCallback=function(s){return goog.asserts.assert(this.readCallbacks_!==null),s=this.readCallbacks_[s],goog.asserts.assert(s),s(this)},jspb.BinaryReader.prototype.readAny=function(s){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(s);var o=jspb.BinaryConstants.FieldType;switch(s){case o.DOUBLE:return this.readDouble();case o.FLOAT:return this.readFloat();case o.INT64:return this.readInt64();case o.UINT64:return this.readUint64();case o.INT32:return this.readInt32();case o.FIXED64:return this.readFixed64();case o.FIXED32:return this.readFixed32();case o.BOOL:return this.readBool();case o.STRING:return this.readString();case o.GROUP:goog.asserts.fail("Group field type not supported in readAny()");case o.MESSAGE:goog.asserts.fail("Message field type not supported in readAny()");case o.BYTES:return this.readBytes();case o.UINT32:return this.readUint32();case o.ENUM:return this.readEnum();case o.SFIXED32:return this.readSfixed32();case o.SFIXED64:return this.readSfixed64();case o.SINT32:return this.readSint32();case o.SINT64:return this.readSint64();case o.FHASH64:return this.readFixedHash64();case o.VHASH64:return this.readVarintHash64();default:goog.asserts.fail("Invalid field type in readAny()")}return 0},jspb.BinaryReader.prototype.readMessage=function(s,o){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var et=this.decoder_.getEnd(),tt=this.decoder_.readUnsignedVarint32();tt=this.decoder_.getCursor()+tt,this.decoder_.setEnd(tt),o(s,this),this.decoder_.setCursor(tt),this.decoder_.setEnd(et)},jspb.BinaryReader.prototype.readGroup=function(s,o,et){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP),goog.asserts.assert(this.nextField_==s),et(o,this),this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(goog.asserts.fail("Group submessage did not end with an END_GROUP tag"),this.error_=!0)},jspb.BinaryReader.prototype.getFieldDecoder=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32(),o=this.decoder_.getCursor(),et=o+s;return s=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),o,s),this.decoder_.setCursor(et),s},jspb.BinaryReader.prototype.readInt32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32()},jspb.BinaryReader.prototype.readInt32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32String()},jspb.BinaryReader.prototype.readInt64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readInt64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64String()},jspb.BinaryReader.prototype.readUint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readUint32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32String()},jspb.BinaryReader.prototype.readUint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64()},jspb.BinaryReader.prototype.readUint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64String()},jspb.BinaryReader.prototype.readSint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint32()},jspb.BinaryReader.prototype.readSint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64()},jspb.BinaryReader.prototype.readSint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64String()},jspb.BinaryReader.prototype.readFixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readUint32()},jspb.BinaryReader.prototype.readFixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64()},jspb.BinaryReader.prototype.readFixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64String()},jspb.BinaryReader.prototype.readSfixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32()},jspb.BinaryReader.prototype.readSfixed32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32().toString()},jspb.BinaryReader.prototype.readSfixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64()},jspb.BinaryReader.prototype.readSfixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64String()},jspb.BinaryReader.prototype.readFloat=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readFloat()},jspb.BinaryReader.prototype.readDouble=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readDouble()},jspb.BinaryReader.prototype.readBool=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),!!this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readEnum=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readString=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(s)},jspb.BinaryReader.prototype.readBytes=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(s)},jspb.BinaryReader.prototype.readVarintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readVarintHash64()},jspb.BinaryReader.prototype.readSintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarintHash64()},jspb.BinaryReader.prototype.readSplitVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(s)},jspb.BinaryReader.prototype.readSplitZigzagVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryReader.prototype.readFixedHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readFixedHash64()},jspb.BinaryReader.prototype.readSplitFixed64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readSplitFixed64(s)},jspb.BinaryReader.prototype.readPackedField_=function(s){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var o=this.decoder_.readUnsignedVarint32();o=this.decoder_.getCursor()+o;for(var et=[];this.decoder_.getCursor()o.length?et.length:o.length;for(s.getJsPbMessageId()&&(tt[0]=s.getJsPbMessageId(),nt=1);nt>>1|(1&this.hi)<<31)>>>0,this.hi>>>1>>>0)},jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)},jspb.arith.UInt64.prototype.msb=function(){return!!(2147483648&this.hi)},jspb.arith.UInt64.prototype.lsb=function(){return!!(1&this.lo)},jspb.arith.UInt64.prototype.zero=function(){return this.lo==0&&this.hi==0},jspb.arith.UInt64.prototype.add=function(s){return new jspb.arith.UInt64((this.lo+s.lo&4294967295)>>>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.UInt64.prototype.sub=function(s){return new jspb.arith.UInt64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.UInt64.mul32x32=function(s,o){var et=65535&s,tt=65535&o,nt=o>>>16;for(o=et*tt+65536*(et*nt&65535)+65536*((s>>>=16)*tt&65535),et=s*nt+(et*nt>>>16)+(s*tt>>>16);4294967296<=o;)o-=4294967296,et+=1;return new jspb.arith.UInt64(o>>>0,et>>>0)},jspb.arith.UInt64.prototype.mul=function(s){var o=jspb.arith.UInt64.mul32x32(this.lo,s);return(s=jspb.arith.UInt64.mul32x32(this.hi,s)).hi=s.lo,s.lo=0,o.add(s)},jspb.arith.UInt64.prototype.div=function(s){if(s==0)return[];var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(this.lo,this.hi);s=new jspb.arith.UInt64(s,0);for(var tt=new jspb.arith.UInt64(1,0);!s.msb();)s=s.leftShift(),tt=tt.leftShift();for(;!tt.zero();)0>=s.cmp(et)&&(o=o.add(tt),et=et.sub(s)),s=s.rightShift(),tt=tt.rightShift();return[o,et]},jspb.arith.UInt64.prototype.toString=function(){for(var s="",o=this;!o.zero();){var et=(o=o.div(10))[0];s=o[1].lo+s,o=et}return s==""&&(s="0"),s},jspb.arith.UInt64.fromString=function(s){for(var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(0,0),tt=0;tts[tt]||"9">>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.sub=function(s){return new jspb.arith.Int64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)},jspb.arith.Int64.prototype.toString=function(){var s=(2147483648&this.hi)!=0,o=new jspb.arith.UInt64(this.lo,this.hi);return s&&(o=new jspb.arith.UInt64(0,0).sub(o)),(s?"-":"")+o.toString()},jspb.arith.Int64.fromString=function(s){var o=0>>7|o<<25)>>>0,o>>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSplitFixed64=function(s,o){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(o==Math.floor(o)),goog.asserts.assert(0<=s&&s>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSignedVarint32=function(s){if(goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&so;o++)this.buffer_.push(127&s|128),s>>=7;this.buffer_.push(1)}},jspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_31&&s>31)>>>0)},jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s>>0,tt>>>0)})},jspb.BinaryEncoder.prototype.writeUint8=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&256>s),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeUint16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&65536>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeUint32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeUint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&ss),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeInt16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(-32768<=s&&32768>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeInt32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeInt64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_63&&+s=-jspb.BinaryConstants.FLOAT32_MAX&&s<=jspb.BinaryConstants.FLOAT32_MAX),jspb.utils.splitFloat32(s),this.writeUint32(jspb.utils.split64Low)},jspb.BinaryEncoder.prototype.writeDouble=function(s){goog.asserts.assert(1/0===s||-1/0===s||isNaN(s)||s>=-jspb.BinaryConstants.FLOAT64_MAX&&s<=jspb.BinaryConstants.FLOAT64_MAX),jspb.utils.splitFloat64(s),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeBool=function(s){goog.asserts.assert(typeof s=="boolean"||typeof s=="number"),this.buffer_.push(s?1:0)},jspb.BinaryEncoder.prototype.writeEnum=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&stt)this.buffer_.push(tt);else if(2048>tt)this.buffer_.push(tt>>6|192),this.buffer_.push(63&tt|128);else if(65536>tt)if(55296<=tt&&56319>=tt&&et+1=nt&&(tt=1024*(tt-55296)+nt-56320+65536,this.buffer_.push(tt>>18|240),this.buffer_.push(tt>>12&63|128),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128),et++)}else this.buffer_.push(tt>>12|224),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128)}return this.buffer_.length-o},jspb.BinaryWriter=function(){this.blocks_=[],this.totalLength_=0,this.encoder_=new jspb.BinaryEncoder,this.bookmarks_=[]},jspb.BinaryWriter.prototype.appendUint8Array_=function(s){var o=this.encoder_.end();this.blocks_.push(o),this.blocks_.push(s),this.totalLength_+=o.length+s.length},jspb.BinaryWriter.prototype.beginDelimited_=function(s){return this.writeFieldHeader_(s,jspb.BinaryConstants.WireType.DELIMITED),s=this.encoder_.end(),this.blocks_.push(s),this.totalLength_+=s.length,s.push(this.totalLength_),s},jspb.BinaryWriter.prototype.endDelimited_=function(s){var o=s.pop();for(o=this.totalLength_+this.encoder_.length()-o,goog.asserts.assert(0<=o);127>>=7,this.totalLength_++;s.push(o),this.totalLength_++},jspb.BinaryWriter.prototype.writeSerializedMessage=function(s,o,et){this.appendUint8Array_(s.subarray(o,et))},jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(s,o,et){s!=null&&o!=null&&et!=null&&this.writeSerializedMessage(s,o,et)},jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[],this.encoder_.end(),this.totalLength_=0,this.bookmarks_=[]},jspb.BinaryWriter.prototype.getResultBuffer=function(){goog.asserts.assert(this.bookmarks_.length==0);for(var s=new Uint8Array(this.totalLength_+this.encoder_.length()),o=this.blocks_,et=o.length,tt=0,nt=0;nt=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o>>0,rt>>>0)})},jspb.BinaryWriter.prototype.writeRepeatedInt32=function(s,o){if(o!=null)for(var et=0;et>>0,ot>>>0)});this.endDelimited_(s)}},jspb.BinaryWriter.prototype.writePackedInt64String=function(s,o){if(o!=null&&o.length){s=this.beginDelimited_(s);for(var et=0;et-1};function dt(Tt){if(typeof Tt!="string"&&(Tt=String(Tt)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(Tt))throw new TypeError("Invalid character in header field name");return Tt.toLowerCase()}function ht(Tt){return typeof Tt!="string"&&(Tt=String(Tt)),Tt}function ct(Tt){var Bt={next:function(){var xt=Tt.shift();return{done:xt===void 0,value:xt}}};return it&&(Bt[Symbol.iterator]=function(){return Bt}),Bt}function pt(Tt){this.map={},Tt instanceof pt?Tt.forEach(function(Bt,xt){this.append(xt,Bt)},this):Array.isArray(Tt)?Tt.forEach(function(Bt){this.append(Bt[0],Bt[1])},this):Tt&&Object.getOwnPropertyNames(Tt).forEach(function(Bt){this.append(Bt,Tt[Bt])},this)}function ft(Tt){if(Tt.bodyUsed)return Promise.reject(new TypeError("Already read"));Tt.bodyUsed=!0}function gt(Tt){return new Promise(function(Bt,xt){Tt.onload=function(){Bt(Tt.result)},Tt.onerror=function(){xt(Tt.error)}})}function yt(Tt){var Bt=new FileReader,xt=gt(Bt);return Bt.readAsArrayBuffer(Tt),xt}function Ut(Tt){if(Tt.slice)return Tt.slice(0);var Bt=new Uint8Array(Tt.byteLength);return Bt.set(new Uint8Array(Tt)),Bt.buffer}function Ft(){return this.bodyUsed=!1,this._initBody=function(Tt){var Bt;this._bodyInit=Tt,Tt?typeof Tt=="string"?this._bodyText=Tt:ot&&Blob.prototype.isPrototypeOf(Tt)?this._bodyBlob=Tt:st&&FormData.prototype.isPrototypeOf(Tt)?this._bodyFormData=Tt:rt&&URLSearchParams.prototype.isPrototypeOf(Tt)?this._bodyText=Tt.toString():at&&ot&&(Bt=Tt)&&DataView.prototype.isPrototypeOf(Bt)?(this._bodyArrayBuffer=Ut(Tt.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):at&&(ArrayBuffer.prototype.isPrototypeOf(Tt)||ut(Tt))?this._bodyArrayBuffer=Ut(Tt):this._bodyText=Tt=Object.prototype.toString.call(Tt):this._bodyText="",this.headers.get("content-type")||(typeof Tt=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):rt&&URLSearchParams.prototype.isPrototypeOf(Tt)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},ot&&(this.blob=function(){var Tt=ft(this);if(Tt)return Tt;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?ft(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(yt)}),this.text=function(){var Tt,Bt,xt,Ct=ft(this);if(Ct)return Ct;if(this._bodyBlob)return Tt=this._bodyBlob,Bt=new FileReader,xt=gt(Bt),Bt.readAsText(Tt),xt;if(this._bodyArrayBuffer)return Promise.resolve(function(kt){for(var Nt=new Uint8Array(kt),Ot=new Array(Nt.length),Jt=0;Jt-1?Ct:xt),this.mode=Bt.mode||this.mode||null,this.signal=Bt.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&kt)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(kt)}function At(Tt){var Bt=new FormData;return Tt.trim().split("&").forEach(function(xt){if(xt){var Ct=xt.split("="),kt=Ct.shift().replace(/\+/g," "),Nt=Ct.join("=").replace(/\+/g," ");Bt.append(decodeURIComponent(kt),decodeURIComponent(Nt))}}),Bt}function Lt(Tt,Bt){Bt||(Bt={}),this.type="default",this.status=Bt.status===void 0?200:Bt.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in Bt?Bt.statusText:"OK",this.headers=new pt(Bt.headers),this.url=Bt.url||"",this._initBody(Tt)}vt.prototype.clone=function(){return new vt(this,{body:this._bodyInit})},Ft.call(vt.prototype),Ft.call(Lt.prototype),Lt.prototype.clone=function(){return new Lt(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new pt(this.headers),url:this.url})},Lt.error=function(){var Tt=new Lt(null,{status:0,statusText:""});return Tt.type="error",Tt};var Rt=[301,302,303,307,308];Lt.redirect=function(Tt,Bt){if(Rt.indexOf(Bt)===-1)throw new RangeError("Invalid status code");return new Lt(null,{status:Bt,headers:{location:Tt}})},nt.DOMException=tt.DOMException;try{new nt.DOMException}catch{nt.DOMException=function(Tt,Bt){this.message=Tt,this.name=Bt;var xt=Error(Tt);this.stack=xt.stack},nt.DOMException.prototype=Object.create(Error.prototype),nt.DOMException.prototype.constructor=nt.DOMException}function St(Tt,Bt){return new Promise(function(xt,Ct){var kt=new vt(Tt,Bt);if(kt.signal&&kt.signal.aborted)return Ct(new nt.DOMException("Aborted","AbortError"));var Nt=new XMLHttpRequest;function Ot(){Nt.abort()}Nt.onload=function(){var Jt,Dt,Et={status:Nt.status,statusText:Nt.statusText,headers:(Jt=Nt.getAllResponseHeaders()||"",Dt=new pt,Jt.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(zt){var en=zt.split(":"),Kt=en.shift().trim();if(Kt){var nn=en.join(":").trim();Dt.append(Kt,nn)}}),Dt)};Et.url="responseURL"in Nt?Nt.responseURL:Et.headers.get("X-Request-URL");var Pt="response"in Nt?Nt.response:Nt.responseText;xt(new Lt(Pt,Et))},Nt.onerror=function(){Ct(new TypeError("Network request failed"))},Nt.ontimeout=function(){Ct(new TypeError("Network request failed"))},Nt.onabort=function(){Ct(new nt.DOMException("Aborted","AbortError"))},Nt.open(kt.method,kt.url,!0),kt.credentials==="include"?Nt.withCredentials=!0:kt.credentials==="omit"&&(Nt.withCredentials=!1),"responseType"in Nt&&ot&&(Nt.responseType="blob"),kt.headers.forEach(function(Jt,Dt){Nt.setRequestHeader(Dt,Jt)}),kt.signal&&(kt.signal.addEventListener("abort",Ot),Nt.onreadystatechange=function(){Nt.readyState===4&&kt.signal.removeEventListener("abort",Ot)}),Nt.send(kt._bodyInit===void 0?null:kt._bodyInit)})}St.polyfill=!0,tt.fetch||(tt.fetch=St,tt.Headers=pt,tt.Request=vt,tt.Response=Lt),nt.Headers=pt,nt.Request=vt,nt.Response=Lt,nt.fetch=St})({})})(et),delete et.fetch.polyfill,(o=et.fetch).default=et.fetch,o.fetch=et.fetch,o.Headers=et.Headers,o.Request=et.Request,o.Response=et.Response,s.exports=o},function(s,o,et){(function(tt){const nt=et(211),rt=et(52),it=(ot,st,at)=>({from:it,EnvVarError:et(52),get:function(lt){if(!lt)return ot;if(arguments.length>1)throw new rt("It looks like you passed more than one argument to env.get(). Since env-var@6.0.0 this is no longer supported. To set a default value use env.get(TARGET).default(DEFAULT)");return nt(ot,lt,st||{},at||function(){})},accessors:et(94),logger:et(225)(console.log,ot.NODE_ENV)});s.exports=it(tt.env)}).call(this,et(2))},function(s,o,et){var tt=et(13),nt=et(73),rt=et(3).LEVEL,it=s.exports=function(){var ot=this,st=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};nt.call(this,{objectMode:!0,highWaterMark:st.highWaterMark}),this.format=st.format,this.level=st.level,this.handleExceptions=st.handleExceptions,this.silent=st.silent,st.log&&(this.log=st.log),st.logv&&(this.logv=st.logv),st.close&&(this.close=st.close),this.once("pipe",function(at){ot.levels=at.levels,ot.parent=at}),this.once("unpipe",function(at){at===ot.parent&&(ot.parent=null,ot.close&&ot.close())})};tt.inherits(it,nt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);var lt=this.level||this.parent&&this.parent.level;if(!lt||this.levels[lt]>=this.levels[ot[rt]]){if(ot&&!this.format)return this.log(ot,at);var ut=void 0,dt=void 0;try{dt=this.format.transform(Object.assign({},ot),this.format.options)}catch(ht){ut=ht}if(ut||!dt){if(at(),ut)throw ut;return}return this.log(dt,at)}return at(null)},it.prototype._writev=function(ot,st){if(this.logv){var at=ot.filter(this._accept,this);return at.length?this.logv(at,st):st(null)}for(var lt=0;lt=this.levels[st[rt]])||!this.handleExceptions&&st.exception===!0)},it.prototype._nop=function(){}},function(s,o,et){(function(tt){const nt=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,rt=typeof AbortController=="function"?AbortController:class{constructor(){this.signal=new st}abort(){this.signal.dispatchEvent("abort")}},it=typeof AbortSignal=="function",ot=typeof rt.AbortSignal=="function",st=it?AbortSignal:ot?rt.AbortController:class{constructor(){this.aborted=!1,this._listeners=[]}dispatchEvent(Ft){if(Ft==="abort"){this.aborted=!0;const mt={type:Ft,target:this};this.onabort(mt),this._listeners.forEach(vt=>vt(mt),this)}}onabort(){}addEventListener(Ft,mt){Ft==="abort"&&this._listeners.push(mt)}removeEventListener(Ft,mt){Ft==="abort"&&(this._listeners=this._listeners.filter(vt=>vt!==mt))}},at=new Set,lt=(Ft,mt)=>{const vt=`LRU_CACHE_OPTION_${Ft}`;ht(vt)&&ct(vt,`${Ft} option`,`options.${mt}`,Ut)},ut=(Ft,mt)=>{const vt=`LRU_CACHE_METHOD_${Ft}`;if(ht(vt)){const{prototype:At}=Ut,{get:Lt}=Object.getOwnPropertyDescriptor(At,Ft);ct(vt,`${Ft} method`,`cache.${mt}()`,Lt)}},dt=(...Ft)=>{typeof tt=="object"&&tt&&typeof tt.emitWarning=="function"?tt.emitWarning(...Ft):console.error(...Ft)},ht=Ft=>!at.has(Ft),ct=(Ft,mt,vt,At)=>{at.add(Ft),dt(`The ${mt} is deprecated. Please use ${vt} instead.`,"DeprecationWarning",Ft,At)},pt=Ft=>Ft&&Ft===Math.floor(Ft)&&Ft>0&&isFinite(Ft),ft=Ft=>pt(Ft)?Ft<=Math.pow(2,8)?Uint8Array:Ft<=Math.pow(2,16)?Uint16Array:Ft<=Math.pow(2,32)?Uint32Array:Ft<=Number.MAX_SAFE_INTEGER?gt:null:null;class gt extends Array{constructor(mt){super(mt),this.fill(0)}}class yt{constructor(mt){if(mt===0)return[];const vt=ft(mt);this.heap=new vt(mt),this.length=0}push(mt){this.heap[this.length++]=mt}pop(){return this.heap[--this.length]}}class Ut{constructor(mt={}){const{max:vt=0,ttl:At,ttlResolution:Lt=1,ttlAutopurge:Rt,updateAgeOnGet:St,updateAgeOnHas:Tt,allowStale:Bt,dispose:xt,disposeAfter:Ct,noDisposeOnSet:kt,noUpdateTTL:Nt,maxSize:Ot=0,maxEntrySize:Jt=0,sizeCalculation:Dt,fetchMethod:Et,fetchContext:Pt,noDeleteOnFetchRejection:zt,noDeleteOnStaleGet:en}=mt,{length:Kt,maxAge:nn,stale:Zt}=mt instanceof Ut?{}:mt;if(vt!==0&&!pt(vt))throw new TypeError("max option must be a nonnegative integer");const jt=vt?ft(vt):Array;if(!jt)throw new Error("invalid max value: "+vt);if(this.max=vt,this.maxSize=Ot,this.maxEntrySize=Jt||this.maxSize,this.sizeCalculation=Dt||Kt,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=Et||null,this.fetchMethod&&typeof this.fetchMethod!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=Pt,!this.fetchMethod&&Pt!==void 0)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(vt).fill(null),this.valList=new Array(vt).fill(null),this.next=new jt(vt),this.prev=new jt(vt),this.head=0,this.tail=0,this.free=new yt(vt),this.initialFill=1,this.size=0,typeof xt=="function"&&(this.dispose=xt),typeof Ct=="function"?(this.disposeAfter=Ct,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!kt,this.noUpdateTTL=!!Nt,this.noDeleteOnFetchRejection=!!zt,this.maxEntrySize!==0){if(this.maxSize!==0&&!pt(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!pt(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!Bt||!!Zt,this.noDeleteOnStaleGet=!!en,this.updateAgeOnGet=!!St,this.updateAgeOnHas=!!Tt,this.ttlResolution=pt(Lt)||Lt===0?Lt:1,this.ttlAutopurge=!!Rt,this.ttl=At||nn||0,this.ttl){if(!pt(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(this.max===0&&this.ttl===0&&this.maxSize===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const Vt="LRU_CACHE_UNBOUNDED";ht(Vt)&&(at.add(Vt),dt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Vt,Ut))}Zt&<("stale","allowStale"),nn&<("maxAge","ttl"),Kt&<("length","sizeCalculation")}getRemainingTTL(mt){return this.has(mt,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new gt(this.max),this.starts=new gt(this.max),this.setItemTTL=(At,Lt,Rt=nt.now())=>{if(this.starts[At]=Lt!==0?Rt:0,this.ttls[At]=Lt,Lt!==0&&this.ttlAutopurge){const St=setTimeout(()=>{this.isStale(At)&&this.delete(this.keyList[At])},Lt+1);St.unref&&St.unref()}},this.updateItemAge=At=>{this.starts[At]=this.ttls[At]!==0?nt.now():0};let mt=0;const vt=()=>{const At=nt.now();if(this.ttlResolution>0){mt=At;const Lt=setTimeout(()=>mt=0,this.ttlResolution);Lt.unref&&Lt.unref()}return At};this.getRemainingTTL=At=>{const Lt=this.keyMap.get(At);return Lt===void 0?0:this.ttls[Lt]===0||this.starts[Lt]===0?1/0:this.starts[Lt]+this.ttls[Lt]-(mt||vt())},this.isStale=At=>this.ttls[At]!==0&&this.starts[At]!==0&&(mt||vt())-this.starts[At]>this.ttls[At]}updateItemAge(mt){}setItemTTL(mt,vt,At){}isStale(mt){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new gt(this.max),this.removeItemSize=mt=>{this.calculatedSize-=this.sizes[mt],this.sizes[mt]=0},this.requireSize=(mt,vt,At,Lt)=>{if(!pt(At)){if(!Lt)throw new TypeError("invalid size value (must be positive integer)");if(typeof Lt!="function")throw new TypeError("sizeCalculation must be a function");if(At=Lt(vt,mt),!pt(At))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return At},this.addItemSize=(mt,vt)=>{this.sizes[mt]=vt;const At=this.maxSize-this.sizes[mt];for(;this.calculatedSize>At;)this.evict(!0);this.calculatedSize+=this.sizes[mt]}}removeItemSize(mt){}addItemSize(mt,vt){}requireSize(mt,vt,At,Lt){if(At||Lt)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.tail;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.head);)vt=this.prev[vt]}*rindexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.head;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.tail);)vt=this.next[vt]}isValidIndex(mt){return this.keyMap.get(this.keyList[mt])===mt}*entries(){for(const mt of this.indexes())yield[this.keyList[mt],this.valList[mt]]}*rentries(){for(const mt of this.rindexes())yield[this.keyList[mt],this.valList[mt]]}*keys(){for(const mt of this.indexes())yield this.keyList[mt]}*rkeys(){for(const mt of this.rindexes())yield this.keyList[mt]}*values(){for(const mt of this.indexes())yield this.valList[mt]}*rvalues(){for(const mt of this.rindexes())yield this.valList[mt]}[Symbol.iterator](){return this.entries()}find(mt,vt={}){for(const At of this.indexes())if(mt(this.valList[At],this.keyList[At],this))return this.get(this.keyList[At],vt)}forEach(mt,vt=this){for(const At of this.indexes())mt.call(vt,this.valList[At],this.keyList[At],this)}rforEach(mt,vt=this){for(const At of this.rindexes())mt.call(vt,this.valList[At],this.keyList[At],this)}get prune(){return ut("prune","purgeStale"),this.purgeStale}purgeStale(){let mt=!1;for(const vt of this.rindexes({allowStale:!0}))this.isStale(vt)&&(this.delete(this.keyList[vt]),mt=!0);return mt}dump(){const mt=[];for(const vt of this.indexes({allowStale:!0})){const At=this.keyList[vt],Lt=this.valList[vt],Rt={value:this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt};if(this.ttls){Rt.ttl=this.ttls[vt];const St=nt.now()-this.starts[vt];Rt.start=Math.floor(Date.now()-St)}this.sizes&&(Rt.size=this.sizes[vt]),mt.unshift([At,Rt])}return mt}load(mt){this.clear();for(const[vt,At]of mt){if(At.start){const Lt=Date.now()-At.start;At.start=nt.now()-Lt}this.set(vt,At.value,At)}}dispose(mt,vt,At){}set(mt,vt,{ttl:At=this.ttl,start:Lt,noDisposeOnSet:Rt=this.noDisposeOnSet,size:St=0,sizeCalculation:Tt=this.sizeCalculation,noUpdateTTL:Bt=this.noUpdateTTL}={}){if(St=this.requireSize(mt,vt,St,Tt),this.maxEntrySize&&St>this.maxEntrySize)return this;let xt=this.size===0?void 0:this.keyMap.get(mt);if(xt===void 0)xt=this.newIndex(),this.keyList[xt]=mt,this.valList[xt]=vt,this.keyMap.set(mt,xt),this.next[this.tail]=xt,this.prev[xt]=this.tail,this.tail=xt,this.size++,this.addItemSize(xt,St),Bt=!1;else{const Ct=this.valList[xt];vt!==Ct&&(this.isBackgroundFetch(Ct)?Ct.__abortController.abort():Rt||(this.dispose(Ct,mt,"set"),this.disposeAfter&&this.disposed.push([Ct,mt,"set"])),this.removeItemSize(xt),this.valList[xt]=vt,this.addItemSize(xt,St)),this.moveToTail(xt)}if(At===0||this.ttl!==0||this.ttls||this.initializeTTLTracking(),Bt||this.setItemTTL(xt,At,Lt),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return this.size===0?this.tail:this.size===this.max&&this.max!==0?this.evict(!1):this.free.length!==0?this.free.pop():this.initialFill++}pop(){if(this.size){const mt=this.valList[this.head];return this.evict(!0),mt}}evict(mt){const vt=this.head,At=this.keyList[vt],Lt=this.valList[vt];return this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,At,"evict"),this.disposeAfter&&this.disposed.push([Lt,At,"evict"])),this.removeItemSize(vt),mt&&(this.keyList[vt]=null,this.valList[vt]=null,this.free.push(vt)),this.head=this.next[vt],this.keyMap.delete(At),this.size--,vt}has(mt,{updateAgeOnHas:vt=this.updateAgeOnHas}={}){const At=this.keyMap.get(mt);return At!==void 0&&!this.isStale(At)&&(vt&&this.updateItemAge(At),!0)}peek(mt,{allowStale:vt=this.allowStale}={}){const At=this.keyMap.get(mt);if(At!==void 0&&(vt||!this.isStale(At))){const Lt=this.valList[At];return this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt}}backgroundFetch(mt,vt,At,Lt){const Rt=vt===void 0?void 0:this.valList[vt];if(this.isBackgroundFetch(Rt))return Rt;const St=new rt,Tt={signal:St.signal,options:At,context:Lt},Bt=new Promise(xt=>xt(this.fetchMethod(mt,Rt,Tt))).then(xt=>(St.signal.aborted||this.set(mt,xt,Tt.options),xt),xt=>{if(this.valList[vt]===Bt&&(!At.noDeleteOnFetchRejection||Bt.__staleWhileFetching===void 0?this.delete(mt):this.valList[vt]=Bt.__staleWhileFetching),Bt.__returned===Bt)throw xt});return Bt.__abortController=St,Bt.__staleWhileFetching=Rt,Bt.__returned=null,vt===void 0?(this.set(mt,Bt,Tt.options),vt=this.keyMap.get(mt)):this.valList[vt]=Bt,Bt}isBackgroundFetch(mt){return mt&&typeof mt=="object"&&typeof mt.then=="function"&&Object.prototype.hasOwnProperty.call(mt,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(mt,"__returned")&&(mt.__returned===mt||mt.__returned===null)}async fetch(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet,ttl:Rt=this.ttl,noDisposeOnSet:St=this.noDisposeOnSet,size:Tt=0,sizeCalculation:Bt=this.sizeCalculation,noUpdateTTL:xt=this.noUpdateTTL,noDeleteOnFetchRejection:Ct=this.noDeleteOnFetchRejection,fetchContext:kt=this.fetchContext,forceRefresh:Nt=!1}={}){if(!this.fetchMethod)return this.get(mt,{allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt});const Ot={allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt,ttl:Rt,noDisposeOnSet:St,size:Tt,sizeCalculation:Bt,noUpdateTTL:xt,noDeleteOnFetchRejection:Ct};let Jt=this.keyMap.get(mt);if(Jt===void 0){const Dt=this.backgroundFetch(mt,Jt,Ot,kt);return Dt.__returned=Dt}{const Dt=this.valList[Jt];if(this.isBackgroundFetch(Dt))return vt&&Dt.__staleWhileFetching!==void 0?Dt.__staleWhileFetching:Dt.__returned=Dt;if(!Nt&&!this.isStale(Jt))return this.moveToTail(Jt),At&&this.updateItemAge(Jt),Dt;const Et=this.backgroundFetch(mt,Jt,Ot,kt);return vt&&Et.__staleWhileFetching!==void 0?Et.__staleWhileFetching:Et.__returned=Et}}get(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet}={}){const Rt=this.keyMap.get(mt);if(Rt!==void 0){const St=this.valList[Rt],Tt=this.isBackgroundFetch(St);return this.isStale(Rt)?Tt?vt?St.__staleWhileFetching:void 0:(Lt||this.delete(mt),vt?St:void 0):Tt?void 0:(this.moveToTail(Rt),At&&this.updateItemAge(Rt),St)}}connect(mt,vt){this.prev[vt]=mt,this.next[mt]=vt}moveToTail(mt){mt!==this.tail&&(mt===this.head?this.head=this.next[mt]:this.connect(this.prev[mt],this.next[mt]),this.connect(this.tail,mt),this.tail=mt)}get del(){return ut("del","delete"),this.delete}delete(mt){let vt=!1;if(this.size!==0){const At=this.keyMap.get(mt);if(At!==void 0)if(vt=!0,this.size===1)this.clear();else{this.removeItemSize(At);const Lt=this.valList[At];this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,mt,"delete"),this.disposeAfter&&this.disposed.push([Lt,mt,"delete"])),this.keyMap.delete(mt),this.keyList[At]=null,this.valList[At]=null,At===this.tail?this.tail=this.prev[At]:At===this.head?this.head=this.next[At]:(this.next[this.prev[At]]=this.next[At],this.prev[this.next[At]]=this.prev[At]),this.size--,this.free.push(At)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return vt}clear(){for(const mt of this.rindexes({allowStale:!0})){const vt=this.valList[mt];if(this.isBackgroundFetch(vt))vt.__abortController.abort();else{const At=this.keyList[mt];this.dispose(vt,At,"delete"),this.disposeAfter&&this.disposed.push([vt,At,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return ut("reset","clear"),this.clear}get length(){return((mt,vt)=>{const At=`LRU_CACHE_PROPERTY_${mt}`;if(ht(At)){const{prototype:Lt}=Ut,{get:Rt}=Object.getOwnPropertyDescriptor(Lt,mt);ct(At,`${mt} property`,`cache.${vt}`,Rt)}})("length","size"),this.size}static get AbortController(){return rt}static get AbortSignal(){return st}}s.exports=Ut}).call(this,et(2))},function(s,o,et){var tt=et(41).Colorizer;s.exports=function(nt){return tt.addColors(nt.colors||nt),nt}},function(s,o,et){var tt={};s.exports=tt,tt.themes={};var nt=et(13),rt=tt.styles=et(109),it=Object.defineProperties,ot=new RegExp(/[\r\n]+/g);tt.supportsColor=et(110).supportsColor,tt.enabled===void 0&&(tt.enabled=tt.supportsColor()!==!1),tt.enable=function(){tt.enabled=!0},tt.disable=function(){tt.enabled=!1},tt.stripColors=tt.strip=function(ft){return(""+ft).replace(/\x1B\[\d+m/g,"")},tt.stylize=function(ft,gt){return tt.enabled?rt[gt].open+ft+rt[gt].close:ft+""};var st=/[|\\{}()[\]^$+*?.]/g;function at(ft){var gt=function yt(){return ht.apply(yt,arguments)};return gt._styles=ft,gt.__proto__=dt,gt}var lt,ut=(lt={},rt.grey=rt.gray,Object.keys(rt).forEach(function(ft){rt[ft].closeRe=new RegExp(function(gt){if(typeof gt!="string")throw new TypeError("Expected a string");return gt.replace(st,"\\$&")}(rt[ft].close),"g"),lt[ft]={get:function(){return at(this._styles.concat(ft))}}}),lt),dt=it(function(){},ut);function ht(){var ft=Array.prototype.slice.call(arguments),gt=ft.map(function(vt){return vt!==void 0&&vt.constructor===String?vt:nt.inspect(vt)}).join(" ");if(!tt.enabled||!gt)return gt;for(var yt=gt.indexOf(` `)!=-1,Ut=this._styles,Ft=Ut.length;Ft--;){var mt=rt[Ut[Ft]];gt=mt.open+gt.replace(mt.closeRe,mt.open)+mt.close,yt&&(gt=gt.replace(ot,function(vt){return mt.close+vt+mt.open}))}return gt}tt.setTheme=function(ft){if(typeof ft!="string")for(var gt in ft)(function(yt){tt[yt]=function(Ut){if(typeof ft[yt]=="object"){var Ft=Ut;for(var mt in ft[yt])Ft=tt[ft[yt][mt]](Ft);return Ft}return tt[ft[yt]](Ut)}})(gt);else console.log("colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));")};var ct=function(ft,gt){var yt=gt.split("");return(yt=yt.map(ft)).join("")};for(var pt in tt.trap=et(112),tt.zalgo=et(113),tt.maps={},tt.maps.america=et(114)(tt),tt.maps.zebra=et(115)(tt),tt.maps.rainbow=et(116)(tt),tt.maps.random=et(117)(tt),tt.maps)(function(ft){tt[ft]=function(gt){return ct(tt.maps[ft],gt)}})(pt);it(tt,function(){var ft={};return Object.keys(ut).forEach(function(gt){ft[gt]={get:function(){return at([gt])}}}),ft}())},function(s,o){s.exports=function(et){return et&&typeof et=="object"&&typeof et.copy=="function"&&typeof et.fill=="function"&&typeof et.readUInt8=="function"}},function(s,o){typeof Object.create=="function"?s.exports=function(et,tt){et.super_=tt,et.prototype=Object.create(tt.prototype,{constructor:{value:et,enumerable:!1,writable:!0,configurable:!0}})}:s.exports=function(et,tt){et.super_=tt;var nt=function(){};nt.prototype=tt.prototype,et.prototype=new nt,et.prototype.constructor=et}},function(s,o){var et={};s.exports=et;var tt={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(tt).forEach(function(nt){var rt=tt[nt],it=et[nt]=[];it.open="\x1B["+rt[0]+"m",it.close="\x1B["+rt[1]+"m"})},function(s,o,et){(function(tt){var nt=et(18),rt=et(111),it=tt.env,ot=void 0;function st(at){return function(lt){return lt!==0&&{level:lt,hasBasic:!0,has256:lt>=2,has16m:lt>=3}}(function(lt){if(ot===!1)return 0;if(rt("color=16m")||rt("color=full")||rt("color=truecolor"))return 3;if(rt("color=256"))return 2;if(lt&&!lt.isTTY&&ot!==!0)return 0;var ut=ot?1:0;if(tt.platform==="win32"){var dt=nt.release().split(".");return Number(tt.versions.node.split(".")[0])>=8&&Number(dt[0])>=10&&Number(dt[2])>=10586?Number(dt[2])>=14931?3:2:1}return"CI"in it?["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(function(ht){return ht in it})||it.CI_NAME==="codeship"?1:ut:"TEAMCITY_VERSION"in it?/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(it.TEAMCITY_VERSION)?1:0:"TERM_PROGRAM"in it?(parseInt("445".split(".")[0],10),2):/-256(color)?$/i.test("xterm-256color")?2:/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test("xterm-256color")||"COLORTERM"in it?1:ut}(at))}rt("no-color")||rt("no-colors")||rt("color=false")?ot=!1:(rt("color")||rt("colors")||rt("color=true")||rt("color=always"))&&(ot=!0),"FORCE_COLOR"in it&&(ot=it.FORCE_COLOR.length===0||parseInt(it.FORCE_COLOR,10)!==0),s.exports={supportsColor:st,stdout:st(tt.stdout),stderr:st(tt.stderr)}}).call(this,et(2))},function(s,o,et){(function(tt){s.exports=function(nt,rt){var it=(rt=rt||tt.argv).indexOf("--"),ot=/^-{1,2}/.test(nt)?"":"--",st=rt.indexOf(ot+nt);return st!==-1&&(it===-1||st0&&arguments[0]!==void 0?arguments[0]:{};tt(this,ut),ct.levels||(ct.levels=st.npm.levels),this.colorizer=new rt(ct),this.padder=new it(ct),this.options=ct}var dt,ht;return dt=ut,(ht=[{key:"transform",value:function(ct,pt){return this.colorizer.transform(this.padder.transform(ct,pt),pt),ct[at]="".concat(ct.level,":").concat(ct.message),ct}}])&&nt(dt.prototype,ht),ut}();s.exports=function(ut){return new lt(ut)},s.exports.Format=lt},function(s,o,et){var tt=et(12);function nt(it){if(it.every(rt))return function(ot){for(var st=ot,at=0;at1&&arguments[1]!==void 0?arguments[1]:{};return st[rt]=(at.stable?it.stableStringify:it)(st,at.replacer||ot,at.space),st})}).call(this,et(5).Buffer)},function(s,o,et){o.byteLength=function(ut){var dt=at(ut),ht=dt[0],ct=dt[1];return 3*(ht+ct)/4-ct},o.toByteArray=function(ut){for(var dt,ht=at(ut),ct=ht[0],pt=ht[1],ft=new rt(function(Ft,mt,vt){return 3*(mt+vt)/4-vt}(0,ct,pt)),gt=0,yt=pt>0?ct-4:ct,Ut=0;Ut>16&255,ft[gt++]=dt>>8&255,ft[gt++]=255&dt;return pt===2&&(dt=nt[ut.charCodeAt(Ut)]<<2|nt[ut.charCodeAt(Ut+1)]>>4,ft[gt++]=255&dt),pt===1&&(dt=nt[ut.charCodeAt(Ut)]<<10|nt[ut.charCodeAt(Ut+1)]<<4|nt[ut.charCodeAt(Ut+2)]>>2,ft[gt++]=dt>>8&255,ft[gt++]=255&dt),ft},o.fromByteArray=function(ut){for(var dt,ht=ut.length,ct=ht%3,pt=[],ft=0,gt=ht-ct;ftgt?gt:ft+16383));return ct===1?(dt=ut[ht-1],pt.push(tt[dt>>2]+tt[dt<<4&63]+"==")):ct===2&&(dt=(ut[ht-2]<<8)+ut[ht-1],pt.push(tt[dt>>10]+tt[dt>>4&63]+tt[dt<<2&63]+"=")),pt.join("")};for(var tt=[],nt=[],rt=typeof Uint8Array<"u"?Uint8Array:Array,it="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ot=0,st=it.length;ot0)throw new Error("Invalid string. Length must be a multiple of 4");var ht=ut.indexOf("=");return ht===-1&&(ht=dt),[ht,ht===dt?0:4-ht%4]}function lt(ut,dt,ht){for(var ct,pt,ft=[],gt=dt;gt>18&63]+tt[pt>>12&63]+tt[pt>>6&63]+tt[63&pt]);return ft.join("")}nt["-".charCodeAt(0)]=62,nt["_".charCodeAt(0)]=63},function(s,o){o.read=function(et,tt,nt,rt,it){var ot,st,at=8*it-rt-1,lt=(1<>1,dt=-7,ht=nt?it-1:0,ct=nt?-1:1,pt=et[tt+ht];for(ht+=ct,ot=pt&(1<<-dt)-1,pt>>=-dt,dt+=at;dt>0;ot=256*ot+et[tt+ht],ht+=ct,dt-=8);for(st=ot&(1<<-dt)-1,ot>>=-dt,dt+=rt;dt>0;st=256*st+et[tt+ht],ht+=ct,dt-=8);if(ot===0)ot=1-ut;else{if(ot===lt)return st?NaN:1/0*(pt?-1:1);st+=Math.pow(2,rt),ot-=ut}return(pt?-1:1)*st*Math.pow(2,ot-rt)},o.write=function(et,tt,nt,rt,it,ot){var st,at,lt,ut=8*ot-it-1,dt=(1<>1,ct=it===23?Math.pow(2,-24)-Math.pow(2,-77):0,pt=rt?0:ot-1,ft=rt?1:-1,gt=tt<0||tt===0&&1/tt<0?1:0;for(tt=Math.abs(tt),isNaN(tt)||tt===1/0?(at=isNaN(tt)?1:0,st=dt):(st=Math.floor(Math.log(tt)/Math.LN2),tt*(lt=Math.pow(2,-st))<1&&(st--,lt*=2),(tt+=st+ht>=1?ct/lt:ct*Math.pow(2,1-ht))*lt>=2&&(st++,lt/=2),st+ht>=dt?(at=0,st=dt):st+ht>=1?(at=(tt*lt-1)*Math.pow(2,it),st+=ht):(at=tt*Math.pow(2,ht-1)*Math.pow(2,it),st=0));it>=8;et[nt+pt]=255&at,pt+=ft,at/=256,it-=8);for(st=st<0;et[nt+pt]=255&st,pt+=ft,st/=256,ut-=8);et[nt+pt-ft]|=128*gt}},function(s,o,et){var tt=et(12);s.exports=tt(function(nt,rt){return rt.message?(nt.message="[".concat(rt.label,"] ").concat(nt.message),nt):(nt.label=rt.label,nt)})},function(s,o,et){var tt=et(12),nt=et(3).MESSAGE,rt=et(35);s.exports=tt(function(it){var ot={};return it.message&&(ot["@message"]=it.message,delete it.message),it.timestamp&&(ot["@timestamp"]=it.timestamp,delete it.timestamp),ot["@fields"]=it,it[nt]=rt(ot),it})},function(s,o,et){var tt=et(12);function nt(it,ot,st){var at,lt,ut,dt=ot.reduce(function(ct,pt){return ct[pt]=it[pt],delete it[pt],ct},{}),ht=Object.keys(it).reduce(function(ct,pt){return ct[pt]=it[pt],delete it[pt],ct},{});return Object.assign(it,dt,(ut=ht,(lt=st)in(at={})?Object.defineProperty(at,lt,{value:ut,enumerable:!0,configurable:!0,writable:!0}):at[lt]=ut,at)),it}function rt(it,ot,st){return it[st]=ot.reduce(function(at,lt){return at[lt]=it[lt],delete it[lt],at},{}),it}s.exports=tt(function(it){var ot=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},st="metadata";ot.key&&(st=ot.key);var at=[];return ot.fillExcept||ot.fillWith||(at.push("level"),at.push("message")),ot.fillExcept&&(at=ot.fillExcept),at.length>0?nt(it,at,st):ot.fillWith?rt(it,ot.fillWith,st):it})},function(s,o,et){var tt=et(13).inspect,nt=et(12),rt=et(3),it=rt.LEVEL,ot=rt.MESSAGE,st=rt.SPLAT;s.exports=nt(function(at){var lt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ut=Object.assign({},at);return delete ut[it],delete ut[ot],delete ut[st],at[ot]=tt(ut,!1,lt.depth||null,lt.colorize),at})},function(s,o,et){function tt(it,ot){for(var st=0;stut.length)&&(dt=ut.length);for(var ht=0,ct=new Array(dt);ht1?ft.splice(0):ft,Ut=yt.length;if(Ut)for(var Ft=0;Ft1&&arguments[1]!==void 0?arguments[1]:{};return it.format&&(rt.timestamp=typeof it.format=="function"?it.format():tt.format(new Date,it.format)),rt.timestamp||(rt.timestamp=new Date().toISOString()),it.alias&&(rt[it.alias]=rt.timestamp),rt})},function(s,o,et){et.r(o),et.d(o,"assign",function(){return st}),et.d(o,"format",function(){return St}),et.d(o,"parse",function(){return Tt}),et.d(o,"defaultI18n",function(){return dt}),et.d(o,"setGlobalDateI18n",function(){return ct}),et.d(o,"setGlobalDateMasks",function(){return Rt});var tt=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,nt="[^\\s]+",rt=/\[([^]*?)\]/gm;function it(xt,Ct){for(var kt=[],Nt=0,Ot=xt.length;Nt-1?Nt:null}};function st(xt){for(var Ct=[],kt=1;kt3?0:(xt-xt%10!=10?1:0)*xt%10]}},ht=st({},dt),ct=function(xt){return ht=st(ht,xt)},pt=function(xt){return xt.replace(/[|\\{()[^$+*?.-]/g,"\\$&")},ft=function(xt,Ct){for(Ct===void 0&&(Ct=2),xt=String(xt);xt.length0?"-":"+")+ft(100*Math.floor(Math.abs(Ct)/60)+Math.abs(Ct)%60,4)},Z:function(xt){var Ct=xt.getTimezoneOffset();return(Ct>0?"-":"+")+ft(Math.floor(Math.abs(Ct)/60),2)+":"+ft(Math.abs(Ct)%60,2)}},yt=function(xt){return+xt-1},Ut=[null,"[1-9]\\d?"],Ft=[null,nt],mt=["isPm",nt,function(xt,Ct){var kt=xt.toLowerCase();return kt===Ct.amPm[0]?0:kt===Ct.amPm[1]?1:null}],vt=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(xt){var Ct=(xt+"").match(/([+-]|\d\d)/gi);if(Ct){var kt=60*+Ct[1]+parseInt(Ct[2],10);return Ct[0]==="+"?kt:-kt}return 0}],At={D:["day","[1-9]\\d?"],DD:["day","\\d\\d"],Do:["day","[1-9]\\d?"+nt,function(xt){return parseInt(xt,10)}],M:["month","[1-9]\\d?",yt],MM:["month","\\d\\d",yt],YY:["year","\\d\\d",function(xt){var Ct=+(""+new Date().getFullYear()).substr(0,2);return+(""+(+xt>68?Ct-1:Ct)+xt)}],h:["hour","[1-9]\\d?",void 0,"isPm"],hh:["hour","\\d\\d",void 0,"isPm"],H:["hour","[1-9]\\d?"],HH:["hour","\\d\\d"],m:["minute","[1-9]\\d?"],mm:["minute","\\d\\d"],s:["second","[1-9]\\d?"],ss:["second","\\d\\d"],YYYY:["year","\\d{4}"],S:["millisecond","\\d",function(xt){return 100*+xt}],SS:["millisecond","\\d\\d",function(xt){return 10*+xt}],SSS:["millisecond","\\d{3}"],d:Ut,dd:Ut,ddd:Ft,dddd:Ft,MMM:["month",nt,ot("monthNamesShort")],MMMM:["month",nt,ot("monthNames")],a:mt,A:mt,ZZ:vt,Z:vt},Lt={default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},Rt=function(xt){return st(Lt,xt)},St=function(xt,Ct,kt){if(Ct===void 0&&(Ct=Lt.default),kt===void 0&&(kt={}),typeof xt=="number"&&(xt=new Date(xt)),Object.prototype.toString.call(xt)!=="[object Date]"||isNaN(xt.getTime()))throw new Error("Invalid Date pass to format");var Nt=[];Ct=(Ct=Lt[Ct]||Ct).replace(rt,function(Wt,Dt){return Nt.push(Dt),"@@@"});var Ot=st(st({},ht),kt);return(Ct=Ct.replace(tt,function(Wt){return gt[Wt](xt,Ot)})).replace(/@@@/g,function(){return Nt.shift()})};function Tt(xt,Ct,kt){if(kt===void 0&&(kt={}),typeof Ct!="string")throw new Error("Invalid format in fecha parse");if(Ct=Lt[Ct]||Ct,xt.length>1e3)return null;var Nt={year:new Date().getFullYear(),month:0,day:1,hour:0,minute:0,second:0,millisecond:0,isPm:null,timezoneOffset:null},Ot=[],Wt=[],Dt=Ct.replace(rt,function(qt,on){return Wt.push(pt(on)),"@@@"}),Et={},Pt={};Dt=pt(Dt).replace(tt,function(qt){var on=At[qt],Xt=on[0],dn=on[1],_n=on[3];if(Et[Xt])throw new Error("Invalid format. "+Xt+" specified twice in format");return Et[Xt]=!0,_n&&(Pt[_n]=!0),Ot.push(on),"("+dn+")"}),Object.keys(Pt).forEach(function(qt){if(!Et[qt])throw new Error("Invalid format. "+qt+" is required in specified format")}),Dt=Dt.replace(/@@@/g,function(){return Wt.shift()});var zt=xt.match(new RegExp(Dt,"i"));if(!zt)return null;for(var en=st(st({},ht),kt),Kt=1;Kt","maintainers":["Jarrett Cruger ","Chris Alderson ","David Hyde "],"repository":{"type":"git","url":"https://github.com/winstonjs/winston.git"},"keywords":["winston","logger","logging","logs","sysadmin","bunyan","pino","loglevel","tools","json","stream"],"dependencies":{"async":"^3.1.0","@dabh/diagnostics":"^2.0.2","is-stream":"^2.0.0","logform":"^2.2.0","one-time":"^1.0.0","readable-stream":"^3.4.0","stack-trace":"0.0.x","triple-beam":"^1.3.0","winston-transport":"^4.4.0"},"devDependencies":{"@babel/cli":"^7.10.3","@babel/core":"^7.10.3","@babel/preset-env":"^7.10.3","@types/node":"^14.0.13","abstract-winston-transport":"^0.5.1","assume":"^2.2.0","colors":"^1.4.0","cross-spawn-async":"^2.2.5","eslint-config-populist":"^4.2.0","hock":"^1.4.1","mocha":"^8.0.1","nyc":"^15.1.0","rimraf":"^3.0.2","split2":"^3.1.1","std-mocks":"^1.0.1","through2":"^3.0.1","winston-compat":"^0.1.5"},"main":"./lib/winston","browser":"./dist/winston","types":"./index.d.ts","scripts":{"lint":"populist lib/*.js lib/winston/*.js lib/winston/**/*.js","pretest":"npm run lint","test":"nyc --reporter=text --reporter lcov npm run test:mocha","test:mocha":"mocha test/*.test.js test/**/*.test.js --exit","build":"./node_modules/.bin/rimraf dist && babel lib -d dist","prepublishOnly":"npm run build"},"engines":{"node":">= 6.4.0"},"license":"MIT"}')},function(s,o,et){Object.defineProperty(o,"Console",{configurable:!0,enumerable:!0,get:function(){return et(140)}}),Object.defineProperty(o,"File",{configurable:!0,enumerable:!0,get:function(){return et(149)}}),Object.defineProperty(o,"Http",{configurable:!0,enumerable:!0,get:function(){return et(189)}}),Object.defineProperty(o,"Stream",{configurable:!0,enumerable:!0,get:function(){return et(201)}})},function(s,o,et){(function(tt){function nt(ft){return(nt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(gt){return typeof gt}:function(gt){return gt&&typeof Symbol=="function"&>.constructor===Symbol&>!==Symbol.prototype?"symbol":typeof gt})(ft)}function rt(ft,gt){if(!(ft instanceof gt))throw new TypeError("Cannot call a class as a function")}function it(ft,gt){for(var yt=0;yt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var yt,Ut=lt(ft);if(gt){var Ft=lt(this).constructor;yt=Reflect.construct(Ut,arguments,Ft)}else yt=Ut.apply(this,arguments);return at(this,yt)}}function at(ft,gt){return!gt||nt(gt)!=="object"&&typeof gt!="function"?function(yt){if(yt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return yt}(ft):gt}function lt(ft){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(gt){return gt.__proto__||Object.getPrototypeOf(gt)})(ft)}var ut=et(18),dt=et(3),ht=dt.LEVEL,ct=dt.MESSAGE,pt=et(20);s.exports=function(ft){(function(mt,vt){if(typeof vt!="function"&&vt!==null)throw new TypeError("Super expression must either be null or a function");mt.prototype=Object.create(vt&&vt.prototype,{constructor:{value:mt,writable:!0,configurable:!0}}),vt&&ot(mt,vt)})(Ft,ft);var gt,yt,Ut=st(Ft);function Ft(){var mt,vt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return rt(this,Ft),(mt=Ut.call(this,vt)).name=vt.name||"console",mt.stderrLevels=mt._stringArrayToSet(vt.stderrLevels),mt.consoleWarnLevels=mt._stringArrayToSet(vt.consoleWarnLevels),mt.eol=vt.eol||ut.EOL,mt.setMaxListeners(30),mt}return gt=Ft,(yt=[{key:"log",value:function(mt,vt){var At=this;return tt(function(){return At.emit("logged",mt)}),this.stderrLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.error(mt[ct]),void(vt&&vt())):this.consoleWarnLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.warn(mt[ct]),void(vt&&vt())):(console._stdout?console._stdout.write("".concat(mt[ct]).concat(this.eol)):console.log(mt[ct]),void(vt&&vt()))}},{key:"_stringArrayToSet",value:function(mt,vt){if(!mt)return{};if(vt=vt||"Cannot make set from type other than Array of string elements",!Array.isArray(mt))throw new Error(vt);return mt.reduce(function(At,Lt){if(typeof Lt!="string")throw new Error(vt);return At[Lt]=!0,At},{})}}])&&it(gt.prototype,yt),Ft}(pt)}).call(this,et(15).setImmediate)},function(s,o,et){(function(tt,nt){(function(rt,it){if(!rt.setImmediate){var ot,st,at,lt,ut,dt=1,ht={},ct=!1,pt=rt.document,ft=Object.getPrototypeOf&&Object.getPrototypeOf(rt);ft=ft&&ft.setTimeout?ft:rt,{}.toString.call(rt.process)==="[object process]"?ot=function(Ut){nt.nextTick(function(){yt(Ut)})}:function(){if(rt.postMessage&&!rt.importScripts){var Ut=!0,Ft=rt.onmessage;return rt.onmessage=function(){Ut=!1},rt.postMessage("","*"),rt.onmessage=Ft,Ut}}()?(lt="setImmediate$"+Math.random()+"$",ut=function(Ut){Ut.source===rt&&typeof Ut.data=="string"&&Ut.data.indexOf(lt)===0&&yt(+Ut.data.slice(lt.length))},rt.addEventListener?rt.addEventListener("message",ut,!1):rt.attachEvent("onmessage",ut),ot=function(Ut){rt.postMessage(lt+Ut,"*")}):rt.MessageChannel?((at=new MessageChannel).port1.onmessage=function(Ut){yt(Ut.data)},ot=function(Ut){at.port2.postMessage(Ut)}):pt&&"onreadystatechange"in pt.createElement("script")?(st=pt.documentElement,ot=function(Ut){var Ft=pt.createElement("script");Ft.onreadystatechange=function(){yt(Ut),Ft.onreadystatechange=null,st.removeChild(Ft),Ft=null},st.appendChild(Ft)}):ot=function(Ut){setTimeout(yt,0,Ut)},ft.setImmediate=function(Ut){typeof Ut!="function"&&(Ut=new Function(""+Ut));for(var Ft=new Array(arguments.length-1),mt=0;mt"u"?tt===void 0?this:tt:self)}).call(this,et(6),et(2))},function(s,o,et){s.exports=et(62)},function(s,o,et){(function(tt,nt){var rt=et(16);s.exports=Ft;var it,ot=et(42);Ft.ReadableState=Ut,et(21).EventEmitter;var st=function(Dt,Et){return Dt.listeners(Et).length},at=et(63),lt=et(44).Buffer,ut=tt.Uint8Array||function(){},dt=Object.create(et(17));dt.inherits=et(7);var ht=et(144),ct=void 0;ct=ht&&ht.debuglog?ht.debuglog("stream"):function(){};var pt,ft=et(145),gt=et(64);dt.inherits(Ft,at);var yt=["error","close","destroy","pause","resume"];function Ut(Dt,Et){Dt=Dt||{};var Pt=Et instanceof(it=it||et(36));this.objectMode=!!Dt.objectMode,Pt&&(this.objectMode=this.objectMode||!!Dt.readableObjectMode);var zt=Dt.highWaterMark,en=Dt.readableHighWaterMark,Kt=this.objectMode?16:16384;this.highWaterMark=zt||zt===0?zt:Pt&&(en||en===0)?en:Kt,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new ft,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=Dt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Dt.encoding&&(pt||(pt=et(22).StringDecoder),this.decoder=new pt(Dt.encoding),this.encoding=Dt.encoding)}function Ft(Dt){if(it=it||et(36),!(this instanceof Ft))return new Ft(Dt);this._readableState=new Ut(Dt,this),this.readable=!0,Dt&&(typeof Dt.read=="function"&&(this._read=Dt.read),typeof Dt.destroy=="function"&&(this._destroy=Dt.destroy)),at.call(this)}function mt(Dt,Et,Pt,zt,en){var Kt,nn=Dt._readableState;return Et===null?(nn.reading=!1,function(Zt,jt){if(!jt.ended){if(jt.decoder){var Vt=jt.decoder.end();Vt&&Vt.length&&(jt.buffer.push(Vt),jt.length+=jt.objectMode?1:Vt.length)}jt.ended=!0,Lt(Zt)}}(Dt,nn)):(en||(Kt=function(Zt,jt){var Vt;It=jt,lt.isBuffer(It)||It instanceof ut||typeof jt=="string"||jt===void 0||Zt.objectMode||(Vt=new TypeError("Invalid non-string/buffer chunk"));var It;return Vt}(nn,Et)),Kt?Dt.emit("error",Kt):nn.objectMode||Et&&Et.length>0?(typeof Et=="string"||nn.objectMode||Object.getPrototypeOf(Et)===lt.prototype||(Et=function(Zt){return lt.from(Zt)}(Et)),zt?nn.endEmitted?Dt.emit("error",new Error("stream.unshift() after end event")):vt(Dt,nn,Et,!0):nn.ended?Dt.emit("error",new Error("stream.push() after EOF")):(nn.reading=!1,nn.decoder&&!Pt?(Et=nn.decoder.write(Et),nn.objectMode||Et.length!==0?vt(Dt,nn,Et,!1):St(Dt,nn)):vt(Dt,nn,Et,!1))):zt||(nn.reading=!1)),function(Zt){return!Zt.ended&&(Zt.needReadable||Zt.lengthEt.highWaterMark&&(Et.highWaterMark=function(Pt){return Pt>=8388608?Pt=8388608:(Pt--,Pt|=Pt>>>1,Pt|=Pt>>>2,Pt|=Pt>>>4,Pt|=Pt>>>8,Pt|=Pt>>>16,Pt++),Pt}(Dt)),Dt<=Et.length?Dt:Et.ended?Et.length:(Et.needReadable=!0,0))}function Lt(Dt){var Et=Dt._readableState;Et.needReadable=!1,Et.emittedReadable||(ct("emitReadable",Et.flowing),Et.emittedReadable=!0,Et.sync?rt.nextTick(Rt,Dt):Rt(Dt))}function Rt(Dt){ct("emit readable"),Dt.emit("readable"),Ct(Dt)}function St(Dt,Et){Et.readingMore||(Et.readingMore=!0,rt.nextTick(Tt,Dt,Et))}function Tt(Dt,Et){for(var Pt=Et.length;!Et.reading&&!Et.flowing&&!Et.ended&&Et.length=Et.length?(Pt=Et.decoder?Et.buffer.join(""):Et.buffer.length===1?Et.buffer.head.data:Et.buffer.concat(Et.length),Et.buffer.clear()):Pt=function(zt,en,Kt){var nn;return ztHt.length?Ht.length:Zt;if(qt===Ht.length?$t+=Ht:$t+=Ht.slice(0,Zt),(Zt-=qt)===0){qt===Ht.length?(++It,Vt.next?jt.head=Vt.next:jt.head=jt.tail=null):(jt.head=Vt,Vt.data=Ht.slice(qt));break}++It}return jt.length-=It,$t}(zt,en):function(Zt,jt){var Vt=lt.allocUnsafe(Zt),It=jt.head,$t=1;for(It.data.copy(Vt),Zt-=It.data.length;It=It.next;){var Ht=It.data,qt=Zt>Ht.length?Ht.length:Zt;if(Ht.copy(Vt,Vt.length-Zt,0,qt),(Zt-=qt)===0){qt===Ht.length?(++$t,It.next?jt.head=It.next:jt.head=jt.tail=null):(jt.head=It,It.data=Ht.slice(qt));break}++$t}return jt.length-=$t,Vt}(zt,en),nn}(Dt,Et.buffer,Et.decoder),Pt);var Pt}function Nt(Dt){var Et=Dt._readableState;if(Et.length>0)throw new Error('"endReadable()" called on non-empty stream');Et.endEmitted||(Et.ended=!0,rt.nextTick(Ot,Et,Dt))}function Ot(Dt,Et){Dt.endEmitted||Dt.length!==0||(Dt.endEmitted=!0,Et.readable=!1,Et.emit("end"))}function Wt(Dt,Et){for(var Pt=0,zt=Dt.length;Pt=Et.highWaterMark||Et.ended))return ct("read: emitReadable",Et.length,Et.ended),Et.length===0&&Et.ended?Nt(this):Lt(this),null;if((Dt=At(Dt,Et))===0&&Et.ended)return Et.length===0&&Nt(this),null;var zt,en=Et.needReadable;return ct("need readable",en),(Et.length===0||Et.length-Dt0?kt(Dt,Et):null)===null?(Et.needReadable=!0,Dt=0):Et.length-=Dt,Et.length===0&&(Et.ended||(Et.needReadable=!0),Pt!==Dt&&Et.ended&&Nt(this)),zt!==null&&this.emit("data",zt),zt},Ft.prototype._read=function(Dt){this.emit("error",new Error("_read() is not implemented"))},Ft.prototype.pipe=function(Dt,Et){var Pt=this,zt=this._readableState;switch(zt.pipesCount){case 0:zt.pipes=Dt;break;case 1:zt.pipes=[zt.pipes,Dt];break;default:zt.pipes.push(Dt)}zt.pipesCount+=1,ct("pipe count=%d opts=%j",zt.pipesCount,Et);var en=(!Et||Et.end!==!1)&&Dt!==nt.stdout&&Dt!==nt.stderr?nn:on;function Kt(Xt,dn){ct("onunpipe"),Xt===Pt&&dn&&dn.hasUnpiped===!1&&(dn.hasUnpiped=!0,ct("cleanup"),Dt.removeListener("close",Ht),Dt.removeListener("finish",qt),Dt.removeListener("drain",Zt),Dt.removeListener("error",$t),Dt.removeListener("unpipe",Kt),Pt.removeListener("end",nn),Pt.removeListener("end",on),Pt.removeListener("data",It),jt=!0,!zt.awaitDrain||Dt._writableState&&!Dt._writableState.needDrain||Zt())}function nn(){ct("onend"),Dt.end()}zt.endEmitted?rt.nextTick(en):Pt.once("end",en),Dt.on("unpipe",Kt);var Zt=function(Xt){return function(){var dn=Xt._readableState;ct("pipeOnDrain",dn.awaitDrain),dn.awaitDrain&&dn.awaitDrain--,dn.awaitDrain===0&&st(Xt,"data")&&(dn.flowing=!0,Ct(Xt))}}(Pt);Dt.on("drain",Zt);var jt=!1,Vt=!1;function It(Xt){ct("ondata"),Vt=!1,Dt.write(Xt)!==!1||Vt||((zt.pipesCount===1&&zt.pipes===Dt||zt.pipesCount>1&&Wt(zt.pipes,Dt)!==-1)&&!jt&&(ct("false write response, pause",Pt._readableState.awaitDrain),Pt._readableState.awaitDrain++,Vt=!0),Pt.pause())}function $t(Xt){ct("onerror",Xt),on(),Dt.removeListener("error",$t),st(Dt,"error")===0&&Dt.emit("error",Xt)}function Ht(){Dt.removeListener("finish",qt),on()}function qt(){ct("onfinish"),Dt.removeListener("close",Ht),on()}function on(){ct("unpipe"),Pt.unpipe(Dt)}return Pt.on("data",It),function(Xt,dn,_n){if(typeof Xt.prependListener=="function")return Xt.prependListener(dn,_n);Xt._events&&Xt._events[dn]?ot(Xt._events[dn])?Xt._events[dn].unshift(_n):Xt._events[dn]=[_n,Xt._events[dn]]:Xt.on(dn,_n)}(Dt,"error",$t),Dt.once("close",Ht),Dt.once("finish",qt),Dt.emit("pipe",Pt),zt.flowing||(ct("pipe resume"),Pt.resume()),Dt},Ft.prototype.unpipe=function(Dt){var Et=this._readableState,Pt={hasUnpiped:!1};if(Et.pipesCount===0)return this;if(Et.pipesCount===1)return Dt&&Dt!==Et.pipes||(Dt||(Dt=Et.pipes),Et.pipes=null,Et.pipesCount=0,Et.flowing=!1,Dt&&Dt.emit("unpipe",this,Pt)),this;if(!Dt){var zt=Et.pipes,en=Et.pipesCount;Et.pipes=null,Et.pipesCount=0,Et.flowing=!1;for(var Kt=0;Kt0?this.tail.next=ot:this.head=ot,this.tail=ot,++this.length},rt.prototype.unshift=function(it){var ot={data:it,next:this.head};this.length===0&&(this.tail=ot),this.head=ot,++this.length},rt.prototype.shift=function(){if(this.length!==0){var it=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,it}},rt.prototype.clear=function(){this.head=this.tail=null,this.length=0},rt.prototype.join=function(it){if(this.length===0)return"";for(var ot=this.head,st=""+ot.data;ot=ot.next;)st+=it+ot.data;return st},rt.prototype.concat=function(it){if(this.length===0)return tt.alloc(0);if(this.length===1)return this.head.data;for(var ot,st,at,lt=tt.allocUnsafe(it>>>0),ut=this.head,dt=0;ut;)ot=ut.data,st=lt,at=dt,ot.copy(st,at),dt+=ut.data.length,ut=ut.next;return lt},rt}(),nt&&nt.inspect&&nt.inspect.custom&&(s.exports.prototype[nt.inspect.custom]=function(){var rt=nt.inspect({length:this.length});return this.constructor.name+" "+rt})},function(s,o){},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){var tt=et(13),nt=et(3).LEVEL,rt=et(20),it=s.exports=function(){var ot=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");function st(at){this.emit("error",at,this.transport)}this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=st.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(var at=0;at"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var Tt,Bt=dt(Rt);if(St){var xt=dt(this).constructor;Tt=Reflect.construct(Bt,arguments,xt)}else Tt=Bt.apply(this,arguments);return lt(this,Tt)}}function lt(Rt,St){return!St||rt(St)!=="object"&&typeof St!="function"?ut(Rt):St}function ut(Rt){if(Rt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Rt}function dt(Rt){return(dt=Object.setPrototypeOf?Object.getPrototypeOf:function(St){return St.__proto__||Object.getPrototypeOf(St)})(Rt)}var ht=et(65),ct=et(56),pt=et(150),ft=et(160),gt=et(3).MESSAGE,yt=et(32),Ut=yt.Stream,Ft=yt.PassThrough,mt=et(20),vt=et(38)("winston:file"),At=et(18),Lt=et(188);s.exports=function(Rt){(function(Ct,kt){if(typeof kt!="function"&&kt!==null)throw new TypeError("Super expression must either be null or a function");Ct.prototype=Object.create(kt&&kt.prototype,{constructor:{value:Ct,writable:!0,configurable:!0}}),kt&&st(Ct,kt)})(xt,Rt);var St,Tt,Bt=at(xt);function xt(){var Ct,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};function Nt(Ot){for(var Wt=arguments.length,Dt=new Array(Wt>1?Wt-1:0),Et=1;Et1&&arguments[1]!==void 0?arguments[1]:function(){};if(this.silent)return Nt(),!0;if(this._drain)this._stream.once("drain",function(){kt._drain=!1,kt.log(Ct,Nt)});else{if(!this._rotate){var Ot="".concat(Ct[gt]).concat(this.eol),Wt=nt.byteLength(Ot);this._pendingSize+=Wt,this._opening&&!this.rotatedWhileOpening&&this._needsNewFile(this._size+this._pendingSize)&&(this.rotatedWhileOpening=!0);var Dt=this._stream.write(Ot,Et.bind(this));return Dt?Nt():(this._drain=!0,this._stream.once("drain",function(){kt._drain=!1,Nt()})),vt("written",Dt,this._drain),this.finishIfEnding(),Dt}this._stream.once("rotate",function(){kt._rotate=!1,kt.log(Ct,Nt)})}function Et(){var Pt=this;this._size+=Wt,this._pendingSize-=Wt,vt("logged %s %s",this._size,Ot),this.emit("logged",Ct),this._opening||this._needsNewFile()&&(this._rotate=!0,this._endStream(function(){return Pt._rotateFile()}))}}},{key:"query",value:function(Ct,kt){typeof Ct=="function"&&(kt=Ct,Ct={}),Ct=function(zt){return(zt=zt||{}).rows=zt.rows||zt.limit||10,zt.start=zt.start||0,zt.until=zt.until||new Date,rt(zt.until)!=="object"&&(zt.until=new Date(zt.until)),zt.from=zt.from||zt.until-864e5,rt(zt.from)!=="object"&&(zt.from=new Date(zt.from)),zt.order=zt.order||"desc",zt}(Ct);var Nt=ct.join(this.dirname,this.filename),Ot="",Wt=[],Dt=0,Et=ht.createReadStream(Nt,{encoding:"utf8"});function Pt(zt,en){try{var Kt=JSON.parse(zt);(function(nn){if(nn&&rt(nn)==="object"){var Zt=new Date(nn.timestamp);if(!(Ct.from&&ZtCt.until||Ct.level&&Ct.level!==nn.level))return!0}})(Kt)&&function(nn){Ct.rows&&Wt.length>=Ct.rows&&Ct.order!=="desc"?Et.readable&&Et.destroy():(Ct.fields&&(nn=Ct.fields.reduce(function(Zt,jt){return Zt[jt]=nn[jt],Zt},{})),Ct.order==="desc"&&Wt.length>=Ct.rows&&Wt.shift(),Wt.push(nn))}(Kt)}catch(nn){en||Et.emit("error",nn)}}Et.on("error",function(zt){if(Et.readable&&Et.destroy(),kt)return zt.code!=="ENOENT"?kt(zt):kt(null,Wt)}),Et.on("data",function(zt){for(var en=(zt=(Ot+zt).split(/\n+/)).length-1,Kt=0;Kt=Ct.start)&&Pt(zt[Kt]),Dt++;Ot=zt[en]}),Et.on("close",function(){Ot&&Pt(Ot,!0),Ct.order==="desc"&&(Wt=Wt.reverse()),kt&&kt(null,Wt)})}},{key:"stream",value:function(){var Ct=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},kt=ct.join(this.dirname,this.filename),Nt=new Ut,Ot={file:kt,start:Ct.start};return Nt.destroy=Lt(Ot,function(Wt,Dt){if(Wt)return Nt.emit("error",Wt);try{Nt.emit("data",Dt),Dt=JSON.parse(Dt),Nt.emit("log",Dt)}catch(Et){Nt.emit("error",Et)}}),Nt}},{key:"open",value:function(){var Ct=this;this.filename&&(this._opening||(this._opening=!0,this.stat(function(kt,Nt){if(kt)return Ct.emit("error",kt);vt("stat done: %s { size: %s }",Ct.filename,Nt),Ct._size=Nt,Ct._dest=Ct._createStream(Ct._stream),Ct._opening=!1,Ct.once("open",function(){Ct._stream.eventNames().includes("rotate")?Ct._stream.emit("rotate"):Ct._rotate=!1})})))}},{key:"stat",value:function(Ct){var kt=this,Nt=this._getFile(),Ot=ct.join(this.dirname,Nt);ht.stat(Ot,function(Wt,Dt){return Wt&&Wt.code==="ENOENT"?(vt("ENOENT ok",Ot),kt.filename=Nt,Ct(null,0)):Wt?(vt("err ".concat(Wt.code," ").concat(Ot)),Ct(Wt)):!Dt||kt._needsNewFile(Dt.size)?kt._incFile(function(){return kt.stat(Ct)}):(kt.filename=Nt,void Ct(null,Dt.size))})}},{key:"close",value:function(Ct){var kt=this;this._stream&&this._stream.end(function(){Ct&&Ct(),kt.emit("flush"),kt.emit("closed")})}},{key:"_needsNewFile",value:function(Ct){return Ct=Ct||this._size,this.maxsize&&Ct>=this.maxsize}},{key:"_onError",value:function(Ct){this.emit("error",Ct)}},{key:"_setupStream",value:function(Ct){return Ct.on("error",this._onError),Ct}},{key:"_cleanupStream",value:function(Ct){return Ct.removeListener("error",this._onError),Ct}},{key:"_rotateFile",value:function(){var Ct=this;this._incFile(function(){return Ct.open()})}},{key:"_endStream",value:function(){var Ct=this,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){};this._dest?(this._stream.unpipe(this._dest),this._dest.end(function(){Ct._cleanupStream(Ct._dest),kt()})):kt()}},{key:"_createStream",value:function(Ct){var kt=this,Nt=ct.join(this.dirname,this.filename);vt("create stream start",Nt,this.options);var Ot=ht.createWriteStream(Nt,this.options).on("error",function(Dt){return vt(Dt)}).on("close",function(){return vt("close",Ot.path,Ot.bytesWritten)}).on("open",function(){vt("file open ok",Nt),kt.emit("open",Nt),Ct.pipe(Ot),kt.rotatedWhileOpening&&(kt._stream=new Ft,kt._stream.setMaxListeners(30),kt._rotateFile(),kt.rotatedWhileOpening=!1,kt._cleanupStream(Ot),Ct.end())});if(vt("create stream ok",Nt),this.zippedArchive){var Wt=ft.createGzip();return Wt.pipe(Ot),Wt}return Ot}},{key:"_incFile",value:function(Ct){vt("_incFile",this.filename);var kt=ct.extname(this._basename),Nt=ct.basename(this._basename,kt);this.tailable?this._checkMaxFilesTailable(kt,Nt,Ct):(this._created+=1,this._checkMaxFilesIncrementing(kt,Nt,Ct))}},{key:"_getFile",value:function(){var Ct=ct.extname(this._basename),kt=ct.basename(this._basename,Ct),Nt=this.rotationFormat?this.rotationFormat():this._created,Ot=!this.tailable&&this._created?"".concat(kt).concat(Nt).concat(Ct):"".concat(kt).concat(Ct);return this.zippedArchive&&!this.tailable?"".concat(Ot,".gz"):Ot}},{key:"_checkMaxFilesIncrementing",value:function(Ct,kt,Nt){if(!this.maxFiles||this._created1;Et--)Wt.push(function(Pt,zt){var en=this,Kt="".concat(kt).concat(Pt-1).concat(Ct).concat(Dt),nn=ct.join(this.dirname,Kt);ht.exists(nn,function(Zt){if(!Zt)return zt(null);Kt="".concat(kt).concat(Pt).concat(Ct).concat(Dt),ht.rename(nn,ct.join(en.dirname,Kt),zt)})}.bind(this,Et));pt(Wt,function(){ht.rename(ct.join(Ot.dirname,"".concat(kt).concat(Ct)),ct.join(Ot.dirname,"".concat(kt,"1").concat(Ct).concat(Dt)),Nt)})}}},{key:"_createLogDirIfNotExist",value:function(Ct){ht.existsSync(Ct)||ht.mkdirSync(Ct,{recursive:!0})}}])&&ot(St.prototype,Tt),xt}(mt)}).call(this,et(15).setImmediate,et(5).Buffer)},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(it,ot){return(0,tt.default)(nt.default,it,ot)};var tt=rt(et(151)),nt=rt(et(155));function rt(it){return it&&it.__esModule?it:{default:it}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(45)),nt=it(et(25)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)((ot,st,at)=>{var lt=(0,tt.default)(st)?[]:{};ot(st,(ut,dt,ht)=>{(0,nt.default)(ut)((ct,...pt)=>{pt.length<2&&([pt]=pt),lt[dt]=pt,ht(ct)})},ut=>at(ut,lt))},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(at){return(0,rt.isAsync)(at)?function(...lt){const ut=lt.pop();return ot(at.apply(this,lt),ut)}:(0,tt.default)(function(lt,ut){var dt;try{dt=at.apply(this,lt)}catch(ht){return ut(ht)}if(dt&&typeof dt.then=="function")return ot(dt,ut);ut(null,dt)})};var tt=it(et(153)),nt=it(et(154)),rt=et(25);function it(at){return at&&at.__esModule?at:{default:at}}function ot(at,lt){return at.then(ut=>{st(lt,null,ut)},ut=>{st(lt,ut&&ut.message?ut:new Error(ut))})}function st(at,lt,ut){try{at(lt,ut)}catch(dt){(0,nt.default)(ht=>{throw ht},dt)}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){var rt=nt.pop();return tt.call(this,nt,rt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){Object.defineProperty(o,"__esModule",{value:!0}),o.fallback=st,o.wrap=at;var rt,it=o.hasSetImmediate=typeof tt=="function"&&tt,ot=o.hasNextTick=typeof nt=="object"&&typeof nt.nextTick=="function";function st(lt){setTimeout(lt,0)}function at(lt){return(ut,...dt)=>lt(()=>ut(...dt))}rt=it?tt:ot?nt.nextTick:st,o.default=at(rt)}).call(this,et(15).setImmediate,et(2))},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=rt(et(66)),nt=rt(et(30));function rt(it){return it&&it.__esModule?it:{default:it}}o.default=(0,nt.default)(function(it,ot,st){return(0,tt.default)(it,1,ot,st)},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=at(et(67)),nt=at(et(157)),rt=at(et(68)),it=et(25),ot=at(et(159)),st=at(et(46));function at(lt){return lt&<.__esModule?lt:{default:lt}}o.default=lt=>(ut,dt,ht)=>{if(ht=(0,tt.default)(ht),lt<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!ut)return ht(null);if((0,it.isAsyncGenerator)(ut))return(0,ot.default)(ut,lt,dt,ht);if((0,it.isAsyncIterable)(ut))return(0,ot.default)(ut[Symbol.asyncIterator](),lt,dt,ht);var ct=(0,nt.default)(ut),pt=!1,ft=!1,gt=0,yt=!1;function Ut(mt,vt){if(!ft)if(gt-=1,mt)pt=!0,ht(mt);else if(mt===!1)pt=!0,ft=!0;else{if(vt===st.default||pt&><=0)return pt=!0,ht(null);yt||Ft()}}function Ft(){for(yt=!0;gt=ot||dt||lt||(dt=!0,it.next().then(({value:yt,done:Ut})=>{if(!ut&&!lt){if(dt=!1,Ut)return lt=!0,void(ht<=0&&at(null));ht++,st(yt,ct,ft),ct++,pt()}}).catch(gt))}function ft(yt,Ut){if(ht-=1,!ut)return yt?gt(yt):yt===!1?(lt=!0,void(ut=!0)):Ut===rt.default||lt&&ht<=0?(lt=!0,at(null)):void pt()}function gt(yt){ut||(dt=!1,lt=!0,at(yt))}pt()};var tt,nt=et(46),rt=(tt=nt)&&tt.__esModule?tt:{default:tt};s.exports=o.default},function(s,o,et){(function(tt){var nt=et(5).Buffer,rt=et(161).Transform,it=et(169),ot=et(13),st=et(74).ok,at=et(5).kMaxLength,lt="Cannot create final Buffer. It would be larger than 0x"+at.toString(16)+" bytes";it.Z_MIN_WINDOWBITS=8,it.Z_MAX_WINDOWBITS=15,it.Z_DEFAULT_WINDOWBITS=15,it.Z_MIN_CHUNK=64,it.Z_MAX_CHUNK=1/0,it.Z_DEFAULT_CHUNK=16384,it.Z_MIN_MEMLEVEL=1,it.Z_MAX_MEMLEVEL=9,it.Z_DEFAULT_MEMLEVEL=8,it.Z_MIN_LEVEL=-1,it.Z_MAX_LEVEL=9,it.Z_DEFAULT_LEVEL=it.Z_DEFAULT_COMPRESSION;for(var ut=Object.keys(it),dt=0;dt=at?en=new RangeError(lt):zt=nt.concat(Wt,Dt),Wt=[],kt.close(),Ot(en,zt)}kt.on("error",function(zt){kt.removeListener("end",Pt),kt.removeListener("readable",Et),Ot(zt)}),kt.on("end",Pt),kt.end(Nt),Et()}function Ut(kt,Nt){if(typeof Nt=="string"&&(Nt=nt.from(Nt)),!nt.isBuffer(Nt))throw new TypeError("Not a string or buffer");var Ot=kt._finishFlushFlag;return kt._processChunk(Nt,Ot)}function Ft(kt){if(!(this instanceof Ft))return new Ft(kt);Bt.call(this,kt,it.DEFLATE)}function mt(kt){if(!(this instanceof mt))return new mt(kt);Bt.call(this,kt,it.INFLATE)}function vt(kt){if(!(this instanceof vt))return new vt(kt);Bt.call(this,kt,it.GZIP)}function At(kt){if(!(this instanceof At))return new At(kt);Bt.call(this,kt,it.GUNZIP)}function Lt(kt){if(!(this instanceof Lt))return new Lt(kt);Bt.call(this,kt,it.DEFLATERAW)}function Rt(kt){if(!(this instanceof Rt))return new Rt(kt);Bt.call(this,kt,it.INFLATERAW)}function St(kt){if(!(this instanceof St))return new St(kt);Bt.call(this,kt,it.UNZIP)}function Tt(kt){return kt===it.Z_NO_FLUSH||kt===it.Z_PARTIAL_FLUSH||kt===it.Z_SYNC_FLUSH||kt===it.Z_FULL_FLUSH||kt===it.Z_FINISH||kt===it.Z_BLOCK}function Bt(kt,Nt){var Ot=this;if(this._opts=kt=kt||{},this._chunkSize=kt.chunkSize||o.Z_DEFAULT_CHUNK,rt.call(this,kt),kt.flush&&!Tt(kt.flush))throw new Error("Invalid flush flag: "+kt.flush);if(kt.finishFlush&&!Tt(kt.finishFlush))throw new Error("Invalid flush flag: "+kt.finishFlush);if(this._flushFlag=kt.flush||it.Z_NO_FLUSH,this._finishFlushFlag=kt.finishFlush!==void 0?kt.finishFlush:it.Z_FINISH,kt.chunkSize&&(kt.chunkSizeo.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+kt.chunkSize);if(kt.windowBits&&(kt.windowBitso.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+kt.windowBits);if(kt.level&&(kt.levelo.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+kt.level);if(kt.memLevel&&(kt.memLevelo.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+kt.memLevel);if(kt.strategy&&kt.strategy!=o.Z_FILTERED&&kt.strategy!=o.Z_HUFFMAN_ONLY&&kt.strategy!=o.Z_RLE&&kt.strategy!=o.Z_FIXED&&kt.strategy!=o.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+kt.strategy);if(kt.dictionary&&!nt.isBuffer(kt.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._handle=new it.Zlib(Nt);var Wt=this;this._hadError=!1,this._handle.onerror=function(Pt,zt){xt(Wt),Wt._hadError=!0;var en=new Error(Pt);en.errno=zt,en.code=o.codes[zt],Wt.emit("error",en)};var Dt=o.Z_DEFAULT_COMPRESSION;typeof kt.level=="number"&&(Dt=kt.level);var Et=o.Z_DEFAULT_STRATEGY;typeof kt.strategy=="number"&&(Et=kt.strategy),this._handle.init(kt.windowBits||o.Z_DEFAULT_WINDOWBITS,Dt,kt.memLevel||o.Z_DEFAULT_MEMLEVEL,Et,kt.dictionary),this._buffer=nt.allocUnsafe(this._chunkSize),this._offset=0,this._level=Dt,this._strategy=Et,this.once("end",this.close),Object.defineProperty(this,"_closed",{get:function(){return!Ot._handle},configurable:!0,enumerable:!0})}function xt(kt,Nt){Nt&&tt.nextTick(Nt),kt._handle&&(kt._handle.close(),kt._handle=null)}function Ct(kt){kt.emit("close")}Object.defineProperty(o,"codes",{enumerable:!0,value:Object.freeze(ct),writable:!1}),o.Deflate=Ft,o.Inflate=mt,o.Gzip=vt,o.Gunzip=At,o.DeflateRaw=Lt,o.InflateRaw=Rt,o.Unzip=St,o.createDeflate=function(kt){return new Ft(kt)},o.createInflate=function(kt){return new mt(kt)},o.createDeflateRaw=function(kt){return new Lt(kt)},o.createInflateRaw=function(kt){return new Rt(kt)},o.createGzip=function(kt){return new vt(kt)},o.createGunzip=function(kt){return new At(kt)},o.createUnzip=function(kt){return new St(kt)},o.deflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Ft(Nt),kt,Ot)},o.deflateSync=function(kt,Nt){return Ut(new Ft(Nt),kt)},o.gzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new vt(Nt),kt,Ot)},o.gzipSync=function(kt,Nt){return Ut(new vt(Nt),kt)},o.deflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Lt(Nt),kt,Ot)},o.deflateRawSync=function(kt,Nt){return Ut(new Lt(Nt),kt)},o.unzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new St(Nt),kt,Ot)},o.unzipSync=function(kt,Nt){return Ut(new St(Nt),kt)},o.inflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new mt(Nt),kt,Ot)},o.inflateSync=function(kt,Nt){return Ut(new mt(Nt),kt)},o.gunzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new At(Nt),kt,Ot)},o.gunzipSync=function(kt,Nt){return Ut(new At(Nt),kt)},o.inflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Rt(Nt),kt,Ot)},o.inflateRawSync=function(kt,Nt){return Ut(new Rt(Nt),kt)},ot.inherits(Bt,rt),Bt.prototype.params=function(kt,Nt,Ot){if(kto.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+kt);if(Nt!=o.Z_FILTERED&&Nt!=o.Z_HUFFMAN_ONLY&&Nt!=o.Z_RLE&&Nt!=o.Z_FIXED&&Nt!=o.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+Nt);if(this._level!==kt||this._strategy!==Nt){var Wt=this;this.flush(it.Z_SYNC_FLUSH,function(){st(Wt._handle,"zlib binding closed"),Wt._handle.params(kt,Nt),Wt._hadError||(Wt._level=kt,Wt._strategy=Nt,Ot&&Ot())})}else tt.nextTick(Ot)},Bt.prototype.reset=function(){return st(this._handle,"zlib binding closed"),this._handle.reset()},Bt.prototype._flush=function(kt){this._transform(nt.alloc(0),"",kt)},Bt.prototype.flush=function(kt,Nt){var Ot=this,Wt=this._writableState;(typeof kt=="function"||kt===void 0&&!Nt)&&(Nt=kt,kt=it.Z_FULL_FLUSH),Wt.ended?Nt&&tt.nextTick(Nt):Wt.ending?Nt&&this.once("end",Nt):Wt.needDrain?Nt&&this.once("drain",function(){return Ot.flush(kt,Nt)}):(this._flushFlag=kt,this.write(nt.alloc(0),"",Nt))},Bt.prototype.close=function(kt){xt(this,kt),tt.nextTick(Ct,this)},Bt.prototype._transform=function(kt,Nt,Ot){var Wt,Dt=this._writableState,Et=(Dt.ending||Dt.ended)&&(!kt||Dt.length===kt.length);return kt===null||nt.isBuffer(kt)?this._handle?(Et?Wt=this._finishFlushFlag:(Wt=this._flushFlag,kt.length>=Dt.length&&(this._flushFlag=this._opts.flush||it.Z_NO_FLUSH)),void this._processChunk(kt,Wt,Ot)):Ot(new Error("zlib binding closed")):Ot(new Error("invalid input"))},Bt.prototype._processChunk=function(kt,Nt,Ot){var Wt=kt&&kt.length,Dt=this._chunkSize-this._offset,Et=0,Pt=this,zt=typeof Ot=="function";if(!zt){var en,Kt=[],nn=0;this.on("error",function($t){en=$t}),st(this._handle,"zlib binding closed");do var Zt=this._handle.writeSync(Nt,kt,Et,Wt,this._buffer,this._offset,Dt);while(!this._hadError&&It(Zt[0],Zt[1]));if(this._hadError)throw en;if(nn>=at)throw xt(this),new RangeError(lt);var jt=nt.concat(Kt,nn);return xt(this),jt}st(this._handle,"zlib binding closed");var Vt=this._handle.write(Nt,kt,Et,Wt,this._buffer,this._offset,Dt);function It($t,Ht){if(this&&(this.buffer=null,this.callback=null),!Pt._hadError){var qt=Dt-Ht;if(st(qt>=0,"have should not go down"),qt>0){var on=Pt._buffer.slice(Pt._offset,Pt._offset+qt);Pt._offset+=qt,zt?Pt.push(on):(Kt.push(on),nn+=on.length)}if((Ht===0||Pt._offset>=Pt._chunkSize)&&(Dt=Pt._chunkSize,Pt._offset=0,Pt._buffer=nt.allocUnsafe(Pt._chunkSize)),Ht===0){if(Et+=Wt-$t,Wt=$t,!zt)return!0;var Xt=Pt._handle.write(Nt,kt,Et,Wt,Pt._buffer,Pt._offset,Pt._chunkSize);return Xt.callback=It,void(Xt.buffer=kt)}if(!zt)return!1;Ot()}}Vt.buffer=kt,Vt.callback=It},ot.inherits(Ft,Bt),ot.inherits(mt,Bt),ot.inherits(vt,Bt),ot.inherits(At,Bt),ot.inherits(Lt,Bt),ot.inherits(Rt,Bt),ot.inherits(St,Bt)}).call(this,et(2))},function(s,o,et){s.exports=nt;var tt=et(21).EventEmitter;function nt(){tt.call(this)}et(7)(nt,tt),nt.Readable=et(31),nt.Writable=et(73),nt.Duplex=et(166),nt.Transform=et(167),nt.PassThrough=et(168),nt.Stream=nt,nt.prototype.pipe=function(rt,it){var ot=this;function st(pt){rt.writable&&rt.write(pt)===!1&&ot.pause&&ot.pause()}function at(){ot.readable&&ot.resume&&ot.resume()}ot.on("data",st),rt.on("drain",at),rt._isStdio||it&&it.end===!1||(ot.on("end",ut),ot.on("close",dt));var lt=!1;function ut(){lt||(lt=!0,rt.end())}function dt(){lt||(lt=!0,typeof rt.destroy=="function"&&rt.destroy())}function ht(pt){if(ct(),tt.listenerCount(this,"error")===0)throw pt}function ct(){ot.removeListener("data",st),rt.removeListener("drain",at),ot.removeListener("end",ut),ot.removeListener("close",dt),ot.removeListener("error",ht),rt.removeListener("error",ht),ot.removeListener("end",ct),ot.removeListener("close",ct),rt.removeListener("close",ct)}return ot.on("error",ht),rt.on("error",ht),ot.on("end",ct),ot.on("close",ct),rt.on("close",ct),rt.emit("pipe",ot),rt}},function(s,o){},function(s,o,et){var tt=et(47).Buffer,nt=et(164);s.exports=function(){function rt(){(function(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")})(this,rt),this.head=null,this.tail=null,this.length=0}return rt.prototype.push=function(it){var ot={data:it,next:null};this.length>0?this.tail.next=ot:this.head=ot,this.tail=ot,++this.length},rt.prototype.unshift=function(it){var ot={data:it,next:this.head};this.length===0&&(this.tail=ot),this.head=ot,++this.length},rt.prototype.shift=function(){if(this.length!==0){var it=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,it}},rt.prototype.clear=function(){this.head=this.tail=null,this.length=0},rt.prototype.join=function(it){if(this.length===0)return"";for(var ot=this.head,st=""+ot.data;ot=ot.next;)st+=it+ot.data;return st},rt.prototype.concat=function(it){if(this.length===0)return tt.alloc(0);if(this.length===1)return this.head.data;for(var ot,st,at,lt=tt.allocUnsafe(it>>>0),ut=this.head,dt=0;ut;)ot=ut.data,st=lt,at=dt,ot.copy(st,at),dt+=ut.data.length,ut=ut.next;return lt},rt}(),nt&&nt.inspect&&nt.inspect.custom&&(s.exports.prototype[nt.inspect.custom]=function(){var rt=nt.inspect({length:this.length});return this.constructor.name+" "+rt})},function(s,o){},function(s,o,et){s.exports=rt;var tt=et(72),nt=et(17);function rt(it){if(!(this instanceof rt))return new rt(it);tt.call(this,it)}nt.inherits=et(7),nt.inherits(rt,tt),rt.prototype._transform=function(it,ot,st){st(null,it)}},function(s,o,et){s.exports=et(23)},function(s,o,et){s.exports=et(31).Transform},function(s,o,et){s.exports=et(31).PassThrough},function(s,o,et){(function(tt,nt){var rt=et(74),it=et(171),ot=et(172),st=et(175),at=et(178);for(var lt in at)o[lt]=at[lt];o.NONE=0,o.DEFLATE=1,o.INFLATE=2,o.GZIP=3,o.GUNZIP=4,o.DEFLATERAW=5,o.INFLATERAW=6,o.UNZIP=7;function ut(dt){if(typeof dt!="number"||dto.UNZIP)throw new TypeError("Bad argument");this.dictionary=null,this.err=0,this.flush=0,this.init_done=!1,this.level=0,this.memLevel=0,this.mode=dt,this.strategy=0,this.windowBits=0,this.write_in_progress=!1,this.pending_close=!1,this.gzip_id_bytes_read=0}ut.prototype.close=function(){this.write_in_progress?this.pending_close=!0:(this.pending_close=!1,rt(this.init_done,"close before init"),rt(this.mode<=o.UNZIP),this.mode===o.DEFLATE||this.mode===o.GZIP||this.mode===o.DEFLATERAW?ot.deflateEnd(this.strm):this.mode!==o.INFLATE&&this.mode!==o.GUNZIP&&this.mode!==o.INFLATERAW&&this.mode!==o.UNZIP||st.inflateEnd(this.strm),this.mode=o.NONE,this.dictionary=null)},ut.prototype.write=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!0,dt,ht,ct,pt,ft,gt,yt)},ut.prototype.writeSync=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!1,dt,ht,ct,pt,ft,gt,yt)},ut.prototype._write=function(dt,ht,ct,pt,ft,gt,yt,Ut){if(rt.equal(arguments.length,8),rt(this.init_done,"write before init"),rt(this.mode!==o.NONE,"already finalized"),rt.equal(!1,this.write_in_progress,"write already in progress"),rt.equal(!1,this.pending_close,"close is pending"),this.write_in_progress=!0,rt.equal(!1,ht===void 0,"must provide flush value"),this.write_in_progress=!0,ht!==o.Z_NO_FLUSH&&ht!==o.Z_PARTIAL_FLUSH&&ht!==o.Z_SYNC_FLUSH&&ht!==o.Z_FULL_FLUSH&&ht!==o.Z_FINISH&&ht!==o.Z_BLOCK)throw new Error("Invalid flush value");if(ct==null&&(ct=tt.alloc(0),ft=0,pt=0),this.strm.avail_in=ft,this.strm.input=ct,this.strm.next_in=pt,this.strm.avail_out=Ut,this.strm.output=gt,this.strm.next_out=yt,this.flush=ht,!dt)return this._process(),this._checkError()?this._afterSync():void 0;var Ft=this;return nt.nextTick(function(){Ft._process(),Ft._after()}),this},ut.prototype._afterSync=function(){var dt=this.strm.avail_out,ht=this.strm.avail_in;return this.write_in_progress=!1,[ht,dt]},ut.prototype._process=function(){var dt=null;switch(this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflate(this.strm,this.flush);break;case o.UNZIP:switch(this.strm.avail_in>0&&(dt=this.strm.next_in),this.gzip_id_bytes_read){case 0:if(dt===null)break;if(this.strm.input[dt]!==31){this.mode=o.INFLATE;break}if(this.gzip_id_bytes_read=1,dt++,this.strm.avail_in===1)break;case 1:if(dt===null)break;this.strm.input[dt]===139?(this.gzip_id_bytes_read=2,this.mode=o.GUNZIP):this.mode=o.INFLATE;break;default:throw new Error("invalid number of gzip magic number bytes read")}case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:for(this.err=st.inflate(this.strm,this.flush),this.err===o.Z_NEED_DICT&&this.dictionary&&(this.err=st.inflateSetDictionary(this.strm,this.dictionary),this.err===o.Z_OK?this.err=st.inflate(this.strm,this.flush):this.err===o.Z_DATA_ERROR&&(this.err=o.Z_NEED_DICT));this.strm.avail_in>0&&this.mode===o.GUNZIP&&this.err===o.Z_STREAM_END&&this.strm.next_in[0]!==0;)this.reset(),this.err=st.inflate(this.strm,this.flush);break;default:throw new Error("Unknown mode "+this.mode)}},ut.prototype._checkError=function(){switch(this.err){case o.Z_OK:case o.Z_BUF_ERROR:if(this.strm.avail_out!==0&&this.flush===o.Z_FINISH)return this._error("unexpected end of file"),!1;break;case o.Z_STREAM_END:break;case o.Z_NEED_DICT:return this.dictionary==null?this._error("Missing dictionary"):this._error("Bad dictionary"),!1;default:return this._error("Zlib error"),!1}return!0},ut.prototype._after=function(){if(this._checkError()){var dt=this.strm.avail_out,ht=this.strm.avail_in;this.write_in_progress=!1,this.callback(ht,dt),this.pending_close&&this.close()}},ut.prototype._error=function(dt){this.strm.msg&&(dt=this.strm.msg),this.onerror(dt,this.err),this.write_in_progress=!1,this.pending_close&&this.close()},ut.prototype.init=function(dt,ht,ct,pt,ft){rt(arguments.length===4||arguments.length===5,"init(windowBits, level, memLevel, strategy, [dictionary])"),rt(dt>=8&&dt<=15,"invalid windowBits"),rt(ht>=-1&&ht<=9,"invalid compression level"),rt(ct>=1&&ct<=9,"invalid memlevel"),rt(pt===o.Z_FILTERED||pt===o.Z_HUFFMAN_ONLY||pt===o.Z_RLE||pt===o.Z_FIXED||pt===o.Z_DEFAULT_STRATEGY,"invalid strategy"),this._init(ht,dt,ct,pt,ft),this._setDictionary()},ut.prototype.params=function(){throw new Error("deflateParams Not supported")},ut.prototype.reset=function(){this._reset(),this._setDictionary()},ut.prototype._init=function(dt,ht,ct,pt,ft){switch(this.level=dt,this.windowBits=ht,this.memLevel=ct,this.strategy=pt,this.flush=o.Z_NO_FLUSH,this.err=o.Z_OK,this.mode!==o.GZIP&&this.mode!==o.GUNZIP||(this.windowBits+=16),this.mode===o.UNZIP&&(this.windowBits+=32),this.mode!==o.DEFLATERAW&&this.mode!==o.INFLATERAW||(this.windowBits=-1*this.windowBits),this.strm=new it,this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflateInit2(this.strm,this.level,o.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:case o.UNZIP:this.err=st.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}this.err!==o.Z_OK&&this._error("Init error"),this.dictionary=ft,this.write_in_progress=!1,this.init_done=!0},ut.prototype._setDictionary=function(){if(this.dictionary!=null){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:this.err=ot.deflateSetDictionary(this.strm,this.dictionary)}this.err!==o.Z_OK&&this._error("Failed to set dictionary")}},ut.prototype._reset=function(){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:case o.GZIP:this.err=ot.deflateReset(this.strm);break;case o.INFLATE:case o.INFLATERAW:case o.GUNZIP:this.err=st.inflateReset(this.strm)}this.err!==o.Z_OK&&this._error("Failed to reset stream")},o.Zlib=ut}).call(this,et(5).Buffer,et(2))},function(s,o,et){var tt=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable;function it(ot){if(ot==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(ot)}s.exports=function(){try{if(!Object.assign)return!1;var ot=new String("abc");if(ot[5]="de",Object.getOwnPropertyNames(ot)[0]==="5")return!1;for(var st={},at=0;at<10;at++)st["_"+String.fromCharCode(at)]=at;if(Object.getOwnPropertyNames(st).map(function(ut){return st[ut]}).join("")!=="0123456789")return!1;var lt={};return"abcdefghijklmnopqrst".split("").forEach(function(ut){lt[ut]=ut}),Object.keys(Object.assign({},lt)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}()?Object.assign:function(ot,st){for(var at,lt,ut=it(ot),dt=1;dt4?9:0)}function ut(Rt){for(var St=Rt.length;--St>=0;)Rt[St]=0}function dt(Rt){var St=Rt.state,Tt=St.pending;Tt>Rt.avail_out&&(Tt=Rt.avail_out),Tt!==0&&(nt.arraySet(Rt.output,St.pending_buf,St.pending_out,Tt,Rt.next_out),Rt.next_out+=Tt,St.pending_out+=Tt,Rt.total_out+=Tt,Rt.avail_out-=Tt,St.pending-=Tt,St.pending===0&&(St.pending_out=0))}function ht(Rt,St){rt._tr_flush_block(Rt,Rt.block_start>=0?Rt.block_start:-1,Rt.strstart-Rt.block_start,St),Rt.block_start=Rt.strstart,dt(Rt.strm)}function ct(Rt,St){Rt.pending_buf[Rt.pending++]=St}function pt(Rt,St){Rt.pending_buf[Rt.pending++]=St>>>8&255,Rt.pending_buf[Rt.pending++]=255&St}function ft(Rt,St){var Tt,Bt,xt=Rt.max_chain_length,Ct=Rt.strstart,kt=Rt.prev_length,Nt=Rt.nice_match,Ot=Rt.strstart>Rt.w_size-262?Rt.strstart-(Rt.w_size-262):0,Wt=Rt.window,Dt=Rt.w_mask,Et=Rt.prev,Pt=Rt.strstart+258,zt=Wt[Ct+kt-1],en=Wt[Ct+kt];Rt.prev_length>=Rt.good_match&&(xt>>=2),Nt>Rt.lookahead&&(Nt=Rt.lookahead);do if(Wt[(Tt=St)+kt]===en&&Wt[Tt+kt-1]===zt&&Wt[Tt]===Wt[Ct]&&Wt[++Tt]===Wt[Ct+1]){Ct+=2,Tt++;do;while(Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Ctkt){if(Rt.match_start=St,kt=Bt,Bt>=Nt)break;zt=Wt[Ct+kt-1],en=Wt[Ct+kt]}}while((St=Et[St&Dt])>Ot&&--xt!=0);return kt<=Rt.lookahead?kt:Rt.lookahead}function gt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt,Et=Rt.w_size;do{if(xt=Rt.window_size-Rt.lookahead-Rt.strstart,Rt.strstart>=Et+(Et-262)){nt.arraySet(Rt.window,Rt.window,Et,Et,0),Rt.match_start-=Et,Rt.strstart-=Et,Rt.block_start-=Et,St=Tt=Rt.hash_size;do Bt=Rt.head[--St],Rt.head[St]=Bt>=Et?Bt-Et:0;while(--Tt);St=Tt=Et;do Bt=Rt.prev[--St],Rt.prev[St]=Bt>=Et?Bt-Et:0;while(--Tt);xt+=Et}if(Rt.strm.avail_in===0)break;if(kt=Rt.strm,Nt=Rt.window,Ot=Rt.strstart+Rt.lookahead,Wt=xt,Dt=void 0,(Dt=kt.avail_in)>Wt&&(Dt=Wt),Tt=Dt===0?0:(kt.avail_in-=Dt,nt.arraySet(Nt,kt.input,kt.next_in,Dt,Ot),kt.state.wrap===1?kt.adler=it(kt.adler,Nt,Dt,Ot):kt.state.wrap===2&&(kt.adler=ot(kt.adler,Nt,Dt,Ot)),kt.next_in+=Dt,kt.total_in+=Dt,Dt),Rt.lookahead+=Tt,Rt.lookahead+Rt.insert>=3)for(Ct=Rt.strstart-Rt.insert,Rt.ins_h=Rt.window[Ct],Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<=3)if(Bt=rt._tr_tally(Rt,Rt.strstart-Rt.match_start,Rt.match_length-3),Rt.lookahead-=Rt.match_length,Rt.match_length<=Rt.max_lazy_match&&Rt.lookahead>=3){Rt.match_length--;do Rt.strstart++,Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<4096)&&(Rt.match_length=2)),Rt.prev_length>=3&&Rt.match_length<=Rt.prev_length){xt=Rt.strstart+Rt.lookahead-3,Bt=rt._tr_tally(Rt,Rt.strstart-1-Rt.prev_match,Rt.prev_length-3),Rt.lookahead-=Rt.prev_length-1,Rt.prev_length-=2;do++Rt.strstart<=xt&&(Rt.ins_h=(Rt.ins_h<15&&(kt=2,Bt-=16),xt<1||xt>9||Tt!==8||Bt<8||Bt>15||St<0||St>9||Ct<0||Ct>4)return at(Rt,-2);Bt===8&&(Bt=9);var Nt=new mt;return Rt.state=Nt,Nt.strm=Rt,Nt.wrap=kt,Nt.gzhead=null,Nt.w_bits=Bt,Nt.w_size=1<Rt.pending_buf_size-5&&(Tt=Rt.pending_buf_size-5);;){if(Rt.lookahead<=1){if(gt(Rt),Rt.lookahead===0&&St===0)return 1;if(Rt.lookahead===0)break}Rt.strstart+=Rt.lookahead,Rt.lookahead=0;var Bt=Rt.block_start+Tt;if((Rt.strstart===0||Rt.strstart>=Bt)&&(Rt.lookahead=Rt.strstart-Bt,Rt.strstart=Bt,ht(Rt,!1),Rt.strm.avail_out===0)||Rt.strstart-Rt.block_start>=Rt.w_size-262&&(ht(Rt,!1),Rt.strm.avail_out===0))return 1}return Rt.insert=0,St===4?(ht(Rt,!0),Rt.strm.avail_out===0?3:4):(Rt.strstart>Rt.block_start&&(ht(Rt,!1),Rt.strm.avail_out),1)}),new Ft(4,4,8,4,yt),new Ft(4,5,16,8,yt),new Ft(4,6,32,32,yt),new Ft(4,4,16,16,Ut),new Ft(8,16,32,32,Ut),new Ft(8,16,128,128,Ut),new Ft(8,32,128,256,Ut),new Ft(32,128,258,1024,Ut),new Ft(32,258,258,4096,Ut)],o.deflateInit=function(Rt,St){return Lt(Rt,St,8,15,8,0)},o.deflateInit2=Lt,o.deflateReset=At,o.deflateResetKeep=vt,o.deflateSetHeader=function(Rt,St){return Rt&&Rt.state?Rt.state.wrap!==2?-2:(Rt.state.gzhead=St,0):-2},o.deflate=function(Rt,St){var Tt,Bt,xt,Ct;if(!Rt||!Rt.state||St>5||St<0)return Rt?at(Rt,-2):-2;if(Bt=Rt.state,!Rt.output||!Rt.input&&Rt.avail_in!==0||Bt.status===666&&St!==4)return at(Rt,Rt.avail_out===0?-5:-2);if(Bt.strm=Rt,Tt=Bt.last_flush,Bt.last_flush=St,Bt.status===42)if(Bt.wrap===2)Rt.adler=0,ct(Bt,31),ct(Bt,139),ct(Bt,8),Bt.gzhead?(ct(Bt,(Bt.gzhead.text?1:0)+(Bt.gzhead.hcrc?2:0)+(Bt.gzhead.extra?4:0)+(Bt.gzhead.name?8:0)+(Bt.gzhead.comment?16:0)),ct(Bt,255&Bt.gzhead.time),ct(Bt,Bt.gzhead.time>>8&255),ct(Bt,Bt.gzhead.time>>16&255),ct(Bt,Bt.gzhead.time>>24&255),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,255&Bt.gzhead.os),Bt.gzhead.extra&&Bt.gzhead.extra.length&&(ct(Bt,255&Bt.gzhead.extra.length),ct(Bt,Bt.gzhead.extra.length>>8&255)),Bt.gzhead.hcrc&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending,0)),Bt.gzindex=0,Bt.status=69):(ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,3),Bt.status=113);else{var kt=8+(Bt.w_bits-8<<4)<<8;kt|=(Bt.strategy>=2||Bt.level<2?0:Bt.level<6?1:Bt.level===6?2:3)<<6,Bt.strstart!==0&&(kt|=32),kt+=31-kt%31,Bt.status=113,pt(Bt,kt),Bt.strstart!==0&&(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),Rt.adler=1}if(Bt.status===69)if(Bt.gzhead.extra){for(xt=Bt.pending;Bt.gzindex<(65535&Bt.gzhead.extra.length)&&(Bt.pending!==Bt.pending_buf_size||(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending!==Bt.pending_buf_size));)ct(Bt,255&Bt.gzhead.extra[Bt.gzindex]),Bt.gzindex++;Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Bt.gzindex===Bt.gzhead.extra.length&&(Bt.gzindex=0,Bt.status=73)}else Bt.status=73;if(Bt.status===73)if(Bt.gzhead.name){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.gzindex=0,Bt.status=91)}else Bt.status=91;if(Bt.status===91)if(Bt.gzhead.comment){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.status=103)}else Bt.status=103;if(Bt.status===103&&(Bt.gzhead.hcrc?(Bt.pending+2>Bt.pending_buf_size&&dt(Rt),Bt.pending+2<=Bt.pending_buf_size&&(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),Rt.adler=0,Bt.status=113)):Bt.status=113),Bt.pending!==0){if(dt(Rt),Rt.avail_out===0)return Bt.last_flush=-1,0}else if(Rt.avail_in===0&<(St)<=lt(Tt)&&St!==4)return at(Rt,-5);if(Bt.status===666&&Rt.avail_in!==0)return at(Rt,-5);if(Rt.avail_in!==0||Bt.lookahead!==0||St!==0&&Bt.status!==666){var Nt=Bt.strategy===2?function(Ot,Wt){for(var Dt;;){if(Ot.lookahead===0&&(gt(Ot),Ot.lookahead===0)){if(Wt===0)return 1;break}if(Ot.match_length=0,Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++,Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Wt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):Bt.strategy===3?function(Ot,Wt){for(var Dt,Et,Pt,zt,en=Ot.window;;){if(Ot.lookahead<=258){if(gt(Ot),Ot.lookahead<=258&&Wt===0)return 1;if(Ot.lookahead===0)break}if(Ot.match_length=0,Ot.lookahead>=3&&Ot.strstart>0&&(Et=en[Pt=Ot.strstart-1])===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]){zt=Ot.strstart+258;do;while(Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&PtOt.lookahead&&(Ot.match_length=Ot.lookahead)}if(Ot.match_length>=3?(Dt=rt._tr_tally(Ot,1,Ot.match_length-3),Ot.lookahead-=Ot.match_length,Ot.strstart+=Ot.match_length,Ot.match_length=0):(Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++),Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Wt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):tt[Bt.level].func(Bt,St);if(Nt!==3&&Nt!==4||(Bt.status=666),Nt===1||Nt===3)return Rt.avail_out===0&&(Bt.last_flush=-1),0;if(Nt===2&&(St===1?rt._tr_align(Bt):St!==5&&(rt._tr_stored_block(Bt,0,0,!1),St===3&&(ut(Bt.head),Bt.lookahead===0&&(Bt.strstart=0,Bt.block_start=0,Bt.insert=0))),dt(Rt),Rt.avail_out===0))return Bt.last_flush=-1,0}return St!==4?0:Bt.wrap<=0?1:(Bt.wrap===2?(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),ct(Bt,Rt.adler>>16&255),ct(Bt,Rt.adler>>24&255),ct(Bt,255&Rt.total_in),ct(Bt,Rt.total_in>>8&255),ct(Bt,Rt.total_in>>16&255),ct(Bt,Rt.total_in>>24&255)):(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),dt(Rt),Bt.wrap>0&&(Bt.wrap=-Bt.wrap),Bt.pending!==0?0:1)},o.deflateEnd=function(Rt){var St;return Rt&&Rt.state?(St=Rt.state.status)!==42&&St!==69&&St!==73&&St!==91&&St!==103&&St!==113&&St!==666?at(Rt,-2):(Rt.state=null,St===113?at(Rt,-3):0):-2},o.deflateSetDictionary=function(Rt,St){var Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt=St.length;if(!Rt||!Rt.state||(Ct=(Tt=Rt.state).wrap)===2||Ct===1&&Tt.status!==42||Tt.lookahead)return-2;for(Ct===1&&(Rt.adler=it(Rt.adler,St,Dt,0)),Tt.wrap=0,Dt>=Tt.w_size&&(Ct===0&&(ut(Tt.head),Tt.strstart=0,Tt.block_start=0,Tt.insert=0),Wt=new nt.Buf8(Tt.w_size),nt.arraySet(Wt,St,Dt-Tt.w_size,Tt.w_size,0),St=Wt,Dt=Tt.w_size),kt=Rt.avail_in,Nt=Rt.next_in,Ot=Rt.input,Rt.avail_in=Dt,Rt.next_in=0,Rt.input=St,gt(Tt);Tt.lookahead>=3;){Bt=Tt.strstart,xt=Tt.lookahead-2;do Tt.ins_h=(Tt.ins_h<=0;)Et[Pt]=0}var rt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],it=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ot=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],st=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],at=new Array(576);nt(at);var lt=new Array(60);nt(lt);var ut=new Array(512);nt(ut);var dt=new Array(256);nt(dt);var ht=new Array(29);nt(ht);var ct,pt,ft,gt=new Array(30);function yt(Et,Pt,zt,en,Kt){this.static_tree=Et,this.extra_bits=Pt,this.extra_base=zt,this.elems=en,this.max_length=Kt,this.has_stree=Et&&Et.length}function Ut(Et,Pt){this.dyn_tree=Et,this.max_code=0,this.stat_desc=Pt}function Ft(Et){return Et<256?ut[Et]:ut[256+(Et>>>7)]}function mt(Et,Pt){Et.pending_buf[Et.pending++]=255&Pt,Et.pending_buf[Et.pending++]=Pt>>>8&255}function vt(Et,Pt,zt){Et.bi_valid>16-zt?(Et.bi_buf|=Pt<>16-Et.bi_valid,Et.bi_valid+=zt-16):(Et.bi_buf|=Pt<>>=1,zt<<=1;while(--Pt>0);return zt>>>1}function Rt(Et,Pt,zt){var en,Kt,nn=new Array(16),Zt=0;for(en=1;en<=15;en++)nn[en]=Zt=Zt+zt[en-1]<<1;for(Kt=0;Kt<=Pt;Kt++){var jt=Et[2*Kt+1];jt!==0&&(Et[2*Kt]=Lt(nn[jt]++,jt))}}function St(Et){var Pt;for(Pt=0;Pt<286;Pt++)Et.dyn_ltree[2*Pt]=0;for(Pt=0;Pt<30;Pt++)Et.dyn_dtree[2*Pt]=0;for(Pt=0;Pt<19;Pt++)Et.bl_tree[2*Pt]=0;Et.dyn_ltree[512]=1,Et.opt_len=Et.static_len=0,Et.last_lit=Et.matches=0}function Tt(Et){Et.bi_valid>8?mt(Et,Et.bi_buf):Et.bi_valid>0&&(Et.pending_buf[Et.pending++]=Et.bi_buf),Et.bi_buf=0,Et.bi_valid=0}function Bt(Et,Pt,zt,en){var Kt=2*Pt,nn=2*zt;return Et[Kt]>1;zt>=1;zt--)xt(Et,nn,zt);Kt=Vt;do zt=Et.heap[1],Et.heap[1]=Et.heap[Et.heap_len--],xt(Et,nn,1),en=Et.heap[1],Et.heap[--Et.heap_max]=zt,Et.heap[--Et.heap_max]=en,nn[2*Kt]=nn[2*zt]+nn[2*en],Et.depth[Kt]=(Et.depth[zt]>=Et.depth[en]?Et.depth[zt]:Et.depth[en])+1,nn[2*zt+1]=nn[2*en+1]=Kt,Et.heap[1]=Kt++,xt(Et,nn,1);while(Et.heap_len>=2);Et.heap[--Et.heap_max]=Et.heap[1],function($t,Ht){var qt,on,Xt,dn,_n,Fn,Un=Ht.dyn_tree,On=Ht.max_code,gn=Ht.stat_desc.static_tree,hn=Ht.stat_desc.has_stree,wn=Ht.stat_desc.extra_bits,Zn=Ht.stat_desc.extra_base,Pn=Ht.stat_desc.max_length,$n=0;for(dn=0;dn<=15;dn++)$t.bl_count[dn]=0;for(Un[2*$t.heap[$t.heap_max]+1]=0,qt=$t.heap_max+1;qt<573;qt++)(dn=Un[2*Un[2*(on=$t.heap[qt])+1]+1]+1)>Pn&&(dn=Pn,$n++),Un[2*on+1]=dn,on>On||($t.bl_count[dn]++,_n=0,on>=Zn&&(_n=wn[on-Zn]),Fn=Un[2*on],$t.opt_len+=Fn*(dn+_n),hn&&($t.static_len+=Fn*(gn[2*on+1]+_n)));if($n!==0){do{for(dn=Pn-1;$t.bl_count[dn]===0;)dn--;$t.bl_count[dn]--,$t.bl_count[dn+1]+=2,$t.bl_count[Pn]--,$n-=2}while($n>0);for(dn=Pn;dn!==0;dn--)for(on=$t.bl_count[dn];on!==0;)(Xt=$t.heap[--qt])>On||(Un[2*Xt+1]!==dn&&($t.opt_len+=(dn-Un[2*Xt+1])*Un[2*Xt],Un[2*Xt+1]=dn),on--)}}(Et,Pt),Rt(nn,It,Et.bl_count)}function Nt(Et,Pt,zt){var en,Kt,nn=-1,Zt=Pt[1],jt=0,Vt=7,It=4;for(Zt===0&&(Vt=138,It=3),Pt[2*(zt+1)+1]=65535,en=0;en<=zt;en++)Kt=Zt,Zt=Pt[2*(en+1)+1],++jt>=7;Kt<30;Kt++)for(gt[Kt]=nn<<7,Pt=0;Pt<1<0?(Et.strm.data_type===2&&(Et.strm.data_type=function(jt){var Vt,It=4093624447;for(Vt=0;Vt<=31;Vt++,It>>>=1)if(1&It&&jt.dyn_ltree[2*Vt]!==0)return 0;if(jt.dyn_ltree[18]!==0||jt.dyn_ltree[20]!==0||jt.dyn_ltree[26]!==0)return 1;for(Vt=32;Vt<256;Vt++)if(jt.dyn_ltree[2*Vt]!==0)return 1;return 0}(Et)),kt(Et,Et.l_desc),kt(Et,Et.d_desc),Zt=function(jt){var Vt;for(Nt(jt,jt.dyn_ltree,jt.l_desc.max_code),Nt(jt,jt.dyn_dtree,jt.d_desc.max_code),kt(jt,jt.bl_desc),Vt=18;Vt>=3&&jt.bl_tree[2*st[Vt]+1]===0;Vt--);return jt.opt_len+=3*(Vt+1)+5+5+4,Vt}(Et),Kt=Et.opt_len+3+7>>>3,(nn=Et.static_len+3+7>>>3)<=Kt&&(Kt=nn)):Kt=nn=zt+5,zt+4<=Kt&&Pt!==-1?Dt(Et,Pt,zt,en):Et.strategy===4||nn===Kt?(vt(Et,2+(en?1:0),3),Ct(Et,at,lt)):(vt(Et,4+(en?1:0),3),function(jt,Vt,It,$t){var Ht;for(vt(jt,Vt-257,5),vt(jt,It-1,5),vt(jt,$t-4,4),Ht=0;Ht<$t;Ht++)vt(jt,jt.bl_tree[2*st[Ht]+1],3);Ot(jt,jt.dyn_ltree,Vt-1),Ot(jt,jt.dyn_dtree,It-1)}(Et,Et.l_desc.max_code+1,Et.d_desc.max_code+1,Zt+1),Ct(Et,Et.dyn_ltree,Et.dyn_dtree)),St(Et),en&&Tt(Et)},o._tr_tally=function(Et,Pt,zt){return Et.pending_buf[Et.d_buf+2*Et.last_lit]=Pt>>>8&255,Et.pending_buf[Et.d_buf+2*Et.last_lit+1]=255&Pt,Et.pending_buf[Et.l_buf+Et.last_lit]=255&zt,Et.last_lit++,Pt===0?Et.dyn_ltree[2*zt]++:(Et.matches++,Pt--,Et.dyn_ltree[2*(dt[zt]+256+1)]++,Et.dyn_dtree[2*Ft(Pt)]++),Et.last_lit===Et.lit_bufsize-1},o._tr_align=function(Et){vt(Et,2,3),At(Et,256,at),function(Pt){Pt.bi_valid===16?(mt(Pt,Pt.bi_buf),Pt.bi_buf=0,Pt.bi_valid=0):Pt.bi_valid>=8&&(Pt.pending_buf[Pt.pending++]=255&Pt.bi_buf,Pt.bi_buf>>=8,Pt.bi_valid-=8)}(Et)}},function(s,o,et){s.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(s,o,et){var tt=et(37),nt=et(75),rt=et(76),it=et(176),ot=et(177);function st(Ut){return(Ut>>>24&255)+(Ut>>>8&65280)+((65280&Ut)<<8)+((255&Ut)<<24)}function at(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new tt.Buf16(320),this.work=new tt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function lt(Ut){var Ft;return Ut&&Ut.state?(Ft=Ut.state,Ut.total_in=Ut.total_out=Ft.total=0,Ut.msg="",Ft.wrap&&(Ut.adler=1&Ft.wrap),Ft.mode=1,Ft.last=0,Ft.havedict=0,Ft.dmax=32768,Ft.head=null,Ft.hold=0,Ft.bits=0,Ft.lencode=Ft.lendyn=new tt.Buf32(852),Ft.distcode=Ft.distdyn=new tt.Buf32(592),Ft.sane=1,Ft.back=-1,0):-2}function ut(Ut){var Ft;return Ut&&Ut.state?((Ft=Ut.state).wsize=0,Ft.whave=0,Ft.wnext=0,lt(Ut)):-2}function dt(Ut,Ft){var mt,vt;return Ut&&Ut.state?(vt=Ut.state,Ft<0?(mt=0,Ft=-Ft):(mt=1+(Ft>>4),Ft<48&&(Ft&=15)),Ft&&(Ft<8||Ft>15)?-2:(vt.window!==null&&vt.wbits!==Ft&&(vt.window=null),vt.wrap=mt,vt.wbits=Ft,ut(Ut))):-2}function ht(Ut,Ft){var mt,vt;return Ut?(vt=new at,Ut.state=vt,vt.window=null,(mt=dt(Ut,Ft))!==0&&(Ut.state=null),mt):-2}var ct,pt,ft=!0;function gt(Ut){if(ft){var Ft;for(ct=new tt.Buf32(512),pt=new tt.Buf32(32),Ft=0;Ft<144;)Ut.lens[Ft++]=8;for(;Ft<256;)Ut.lens[Ft++]=9;for(;Ft<280;)Ut.lens[Ft++]=7;for(;Ft<288;)Ut.lens[Ft++]=8;for(ot(1,Ut.lens,0,288,ct,0,Ut.work,{bits:9}),Ft=0;Ft<32;)Ut.lens[Ft++]=5;ot(2,Ut.lens,0,32,pt,0,Ut.work,{bits:5}),ft=!1}Ut.lencode=ct,Ut.lenbits=9,Ut.distcode=pt,Ut.distbits=5}function yt(Ut,Ft,mt,vt){var At,Lt=Ut.state;return Lt.window===null&&(Lt.wsize=1<=Lt.wsize?(tt.arraySet(Lt.window,Ft,mt-Lt.wsize,Lt.wsize,0),Lt.wnext=0,Lt.whave=Lt.wsize):((At=Lt.wsize-Lt.wnext)>vt&&(At=vt),tt.arraySet(Lt.window,Ft,mt-vt,At,Lt.wnext),(vt-=At)?(tt.arraySet(Lt.window,Ft,mt-vt,vt,0),Lt.wnext=vt,Lt.whave=Lt.wsize):(Lt.wnext+=At,Lt.wnext===Lt.wsize&&(Lt.wnext=0),Lt.whave>>8&255,mt.check=rt(mt.check,$t,2,0),Bt=0,xt=0,mt.mode=2;break}if(mt.flags=0,mt.head&&(mt.head.done=!1),!(1&mt.wrap)||(((255&Bt)<<8)+(Bt>>8))%31){Ut.msg="incorrect header check",mt.mode=30;break}if((15&Bt)!=8){Ut.msg="unknown compression method",mt.mode=30;break}if(xt-=4,nn=8+(15&(Bt>>>=4)),mt.wbits===0)mt.wbits=nn;else if(nn>mt.wbits){Ut.msg="invalid window size",mt.mode=30;break}mt.dmax=1<>8&1),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=3;case 3:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,$t[2]=Bt>>>16&255,$t[3]=Bt>>>24&255,mt.check=rt(mt.check,$t,4,0)),Bt=0,xt=0,mt.mode=4;case 4:for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>8),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=5;case 5:if(1024&mt.flags){for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0}else mt.head&&(mt.head.extra=null);mt.mode=6;case 6:if(1024&mt.flags&&((Nt=mt.length)>St&&(Nt=St),Nt&&(mt.head&&(nn=mt.head.extra_len-mt.length,mt.head.extra||(mt.head.extra=new Array(mt.head.extra_len)),tt.arraySet(mt.head.extra,vt,Lt,Nt,nn)),512&mt.flags&&(mt.check=rt(mt.check,vt,Nt,Lt)),St-=Nt,Lt+=Nt,mt.length-=Nt),mt.length))break e;mt.length=0,mt.mode=7;case 7:if(2048&mt.flags){if(St===0)break e;Nt=0;do nn=vt[Lt+Nt++],mt.head&&nn&&mt.length<65536&&(mt.head.name+=String.fromCharCode(nn));while(nn&&Nt>9&1,mt.head.done=!0),Ut.adler=mt.check=0,mt.mode=12;break;case 10:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=7&xt,xt-=7&xt,mt.mode=27;break}for(;xt<3;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=1)){case 0:mt.mode=14;break;case 1:if(gt(mt),mt.mode=20,Ft===6){Bt>>>=2,xt-=2;break e}break;case 2:mt.mode=17;break;case 3:Ut.msg="invalid block type",mt.mode=30}Bt>>>=2,xt-=2;break;case 14:for(Bt>>>=7&xt,xt-=7&xt;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>16^65535)){Ut.msg="invalid stored block lengths",mt.mode=30;break}if(mt.length=65535&Bt,Bt=0,xt=0,mt.mode=15,Ft===6)break e;case 15:mt.mode=16;case 16:if(Nt=mt.length){if(Nt>St&&(Nt=St),Nt>Tt&&(Nt=Tt),Nt===0)break e;tt.arraySet(At,vt,Lt,Nt,Rt),St-=Nt,Lt+=Nt,Tt-=Nt,Rt+=Nt,mt.length-=Nt;break}mt.mode=12;break;case 17:for(;xt<14;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=5,xt-=5,mt.ndist=1+(31&Bt),Bt>>>=5,xt-=5,mt.ncode=4+(15&Bt),Bt>>>=4,xt-=4,mt.nlen>286||mt.ndist>30){Ut.msg="too many length or distance symbols",mt.mode=30;break}mt.have=0,mt.mode=18;case 18:for(;mt.have>>=3,xt-=3}for(;mt.have<19;)mt.lens[Ht[mt.have++]]=0;if(mt.lencode=mt.lendyn,mt.lenbits=7,jt={bits:mt.lenbits},Zt=ot(0,mt.lens,0,19,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid code lengths set",mt.mode=30;break}mt.have=0,mt.mode=19;case 19:for(;mt.have>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=Dt,xt-=Dt,mt.lens[mt.have++]=Pt;else{if(Pt===16){for(Vt=Dt+2;xt>>=Dt,xt-=Dt,mt.have===0){Ut.msg="invalid bit length repeat",mt.mode=30;break}nn=mt.lens[mt.have-1],Nt=3+(3&Bt),Bt>>>=2,xt-=2}else if(Pt===17){for(Vt=Dt+3;xt>>=Dt)),Bt>>>=3,xt-=3}else{for(Vt=Dt+7;xt>>=Dt)),Bt>>>=7,xt-=7}if(mt.have+Nt>mt.nlen+mt.ndist){Ut.msg="invalid bit length repeat",mt.mode=30;break}for(;Nt--;)mt.lens[mt.have++]=nn}}if(mt.mode===30)break;if(mt.lens[256]===0){Ut.msg="invalid code -- missing end-of-block",mt.mode=30;break}if(mt.lenbits=9,jt={bits:mt.lenbits},Zt=ot(1,mt.lens,0,mt.nlen,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid literal/lengths set",mt.mode=30;break}if(mt.distbits=6,mt.distcode=mt.distdyn,jt={bits:mt.distbits},Zt=ot(2,mt.lens,mt.nlen,mt.ndist,mt.distcode,0,mt.work,jt),mt.distbits=jt.bits,Zt){Ut.msg="invalid distances set",mt.mode=30;break}if(mt.mode=20,Ft===6)break e;case 20:mt.mode=21;case 21:if(St>=6&&Tt>=258){Ut.next_out=Rt,Ut.avail_out=Tt,Ut.next_in=Lt,Ut.avail_in=St,mt.hold=Bt,mt.bits=xt,it(Ut,kt),Rt=Ut.next_out,At=Ut.output,Tt=Ut.avail_out,Lt=Ut.next_in,vt=Ut.input,St=Ut.avail_in,Bt=mt.hold,xt=mt.bits,mt.mode===12&&(mt.back=-1);break}for(mt.back=0;Et=(It=mt.lencode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,mt.length=Pt,Et===0){mt.mode=26;break}if(32&Et){mt.back=-1,mt.mode=12;break}if(64&Et){Ut.msg="invalid literal/length code",mt.mode=30;break}mt.extra=15&Et,mt.mode=22;case 22:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}mt.was=mt.length,mt.mode=23;case 23:for(;Et=(It=mt.distcode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,64&Et){Ut.msg="invalid distance code",mt.mode=30;break}mt.offset=Pt,mt.extra=15&Et,mt.mode=24;case 24:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}if(mt.offset>mt.dmax){Ut.msg="invalid distance too far back",mt.mode=30;break}mt.mode=25;case 25:if(Tt===0)break e;if(Nt=kt-Tt,mt.offset>Nt){if((Nt=mt.offset-Nt)>mt.whave&&mt.sane){Ut.msg="invalid distance too far back",mt.mode=30;break}Nt>mt.wnext?(Nt-=mt.wnext,Ot=mt.wsize-Nt):Ot=mt.wnext-Nt,Nt>mt.length&&(Nt=mt.length),Wt=mt.window}else Wt=At,Ot=Rt-mt.offset,Nt=mt.length;Nt>Tt&&(Nt=Tt),Tt-=Nt,mt.length-=Nt;do At[Rt++]=Wt[Ot++];while(--Nt);mt.length===0&&(mt.mode=21);break;case 26:if(Tt===0)break e;At[Rt++]=mt.length,Tt--,mt.mode=21;break;case 27:if(mt.wrap){for(;xt<32;){if(St===0)break e;St--,Bt|=vt[Lt++]<>>=At=vt>>>24,gt-=At,(At=vt>>>16&255)===0)xt[st++]=65535&vt;else{if(!(16&At)){if(!(64&At)){vt=yt[(65535&vt)+(ft&(1<>>=At,gt-=At),gt<15&&(ft+=Bt[it++]<>>=At=vt>>>24,gt-=At,!(16&(At=vt>>>16&255))){if(!(64&At)){vt=Ut[(65535&vt)+(ft&(1<ut){tt.msg="invalid distance too far back",rt.mode=30;break e}if(ft>>>=At,gt-=At,Rt>(At=st-at)){if((At=Rt-At)>ht&&rt.sane){tt.msg="invalid distance too far back",rt.mode=30;break e}if(St=0,Tt=pt,ct===0){if(St+=dt-At,At2;)xt[st++]=Tt[St++],xt[st++]=Tt[St++],xt[st++]=Tt[St++],Lt-=3;Lt&&(xt[st++]=Tt[St++],Lt>1&&(xt[st++]=Tt[St++]))}else{St=st-Rt;do xt[st++]=xt[St++],xt[st++]=xt[St++],xt[st++]=xt[St++],Lt-=3;while(Lt>2);Lt&&(xt[st++]=xt[St++],Lt>1&&(xt[st++]=xt[St++]))}break}}break}}while(it>3,ft&=(1<<(gt-=Lt<<3))-1,tt.next_in=it,tt.next_out=st,tt.avail_in=it=1&&zt[xt]===0;xt--);if(Ct>xt&&(Ct=xt),xt===0)return dt[ht++]=20971520,dt[ht++]=20971520,pt.bits=1,0;for(Bt=1;Bt0&&(st===0||xt!==1))return-1;for(en[1]=0,St=1;St<15;St++)en[St+1]=en[St]+zt[St];for(Tt=0;Tt852||st===2&&Wt>592)return 1;for(;;){vt=St-Nt,ct[Tt]mt?(At=Kt[nn+ct[Tt]],Lt=Et[Pt+ct[Tt]]):(At=96,Lt=0),ft=1<>Nt)+(gt-=ft)]=vt<<24|At<<16|Lt|0;while(gt!==0);for(ft=1<>=1;if(ft!==0?(Dt&=ft-1,Dt+=ft):Dt=0,Tt++,--zt[St]==0){if(St===xt)break;St=at[lt+ct[Tt]]}if(St>Ct&&(Dt&Ut)!==yt){for(Nt===0&&(Nt=Ct),Ft+=Bt,Ot=1<<(kt=St-Nt);kt+Nt852||st===2&&Wt>592)return 1;dt[yt=Dt&Ut]=Ct<<24|kt<<16|Ft-ht|0}}return Dt!==0&&(dt[Ft+Dt]=St-Nt<<24|64<<16|0),pt.bits=Ct,0}},function(s,o,et){s.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(s,o){},function(s,o,et){function tt(at,lt){var ut=Object.keys(at);if(Object.getOwnPropertySymbols){var dt=Object.getOwnPropertySymbols(at);lt&&(dt=dt.filter(function(ht){return Object.getOwnPropertyDescriptor(at,ht).enumerable})),ut.push.apply(ut,dt)}return ut}function nt(at,lt,ut){return lt in at?Object.defineProperty(at,lt,{value:ut,enumerable:!0,configurable:!0,writable:!0}):at[lt]=ut,at}function rt(at,lt){for(var ut=0;ut0?this.tail.next=ht:this.head=ht,this.tail=ht,++this.length}},{key:"unshift",value:function(dt){var ht={data:dt,next:this.head};this.length===0&&(this.tail=ht),this.head=ht,++this.length}},{key:"shift",value:function(){if(this.length!==0){var dt=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,dt}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(dt){if(this.length===0)return"";for(var ht=this.head,ct=""+ht.data;ht=ht.next;)ct+=dt+ht.data;return ct}},{key:"concat",value:function(dt){if(this.length===0)return it.alloc(0);for(var ht,ct,pt,ft=it.allocUnsafe(dt>>>0),gt=this.head,yt=0;gt;)ht=gt.data,ct=ft,pt=yt,it.prototype.copy.call(ht,ct,pt),yt+=gt.data.length,gt=gt.next;return ft}},{key:"consume",value:function(dt,ht){var ct;return dtft.length?ft.length:dt;if(gt===ft.length?pt+=ft:pt+=ft.slice(0,dt),(dt-=gt)==0){gt===ft.length?(++ct,ht.next?this.head=ht.next:this.head=this.tail=null):(this.head=ht,ht.data=ft.slice(gt));break}++ct}return this.length-=ct,pt}},{key:"_getBuffer",value:function(dt){var ht=it.allocUnsafe(dt),ct=this.head,pt=1;for(ct.data.copy(ht),dt-=ct.data.length;ct=ct.next;){var ft=ct.data,gt=dt>ft.length?ft.length:dt;if(ft.copy(ht,ht.length-dt,0,gt),(dt-=gt)==0){gt===ft.length?(++pt,ct.next?this.head=ct.next:this.head=this.tail=null):(this.head=ct,ct.data=ft.slice(gt));break}++pt}return this.length-=pt,ht}},{key:st,value:function(dt,ht){return ot(this,function(ct){for(var pt=1;pt0,function(mt){pt||(pt=mt),mt&>.forEach(at),Ft||(gt.forEach(at),ft(pt))})});return ht.reduce(lt)}},function(s,o,et){var tt=et(187)(function nt(rt,it){return(it=it||{}).namespace=rt,it.prod=!0,it.dev=!1,it.force||nt.force?nt.yep(it):nt.nope(it)});s.exports=tt},function(s,o){var et=[],tt=[],nt=function(){};function rt(ct){return!~et.indexOf(ct)&&(et.push(ct),!0)}function it(ct){nt=ct}function ot(ct){for(var pt=[],ft=0;ftst.start)&&(at?at(null,ht):dt.emit("line",ht)),pt++,ht=""),setTimeout(yt,1e3);var mt=ut.write(lt.slice(0,Ft));at||dt.emit("data",mt);for(var vt=(mt=(ht+mt).split(/\n+/)).length-1,At=0;Atst.start)&&(at?at(null,mt[At]):dt.emit("line",mt[At])),pt++;return ht=mt[vt],ct+=Ft,yt()});nt.close(gt,ot)})()}),at?dt.destroy:dt}}).call(this,et(5).Buffer)},function(s,o,et){(function(tt,nt){function rt(Ut){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Ft){return typeof Ft}:function(Ft){return Ft&&typeof Symbol=="function"&&Ft.constructor===Symbol&&Ft!==Symbol.prototype?"symbol":typeof Ft})(Ut)}function it(Ut,Ft){var mt=Object.keys(Ut);if(Object.getOwnPropertySymbols){var vt=Object.getOwnPropertySymbols(Ut);Ft&&(vt=vt.filter(function(At){return Object.getOwnPropertyDescriptor(Ut,At).enumerable})),mt.push.apply(mt,vt)}return mt}function ot(Ut){for(var Ft=1;Ft"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var mt,vt=ct(Ut);if(Ft){var At=ct(this).constructor;mt=Reflect.construct(vt,arguments,At)}else mt=vt.apply(this,arguments);return ht(this,mt)}}function ht(Ut,Ft){return!Ft||rt(Ft)!=="object"&&typeof Ft!="function"?function(mt){if(mt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return mt}(Ut):Ft}function ct(Ut){return(ct=Object.setPrototypeOf?Object.getPrototypeOf:function(Ft){return Ft.__proto__||Object.getPrototypeOf(Ft)})(Ut)}var pt=et(83),ft=et(200),gt=et(32).Stream,yt=et(20);s.exports=function(Ut){(function(Lt,Rt){if(typeof Rt!="function"&&Rt!==null)throw new TypeError("Super expression must either be null or a function");Lt.prototype=Object.create(Rt&&Rt.prototype,{constructor:{value:Lt,writable:!0,configurable:!0}}),Rt&&ut(Lt,Rt)})(At,Ut);var Ft,mt,vt=dt(At);function At(){var Lt,Rt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return at(this,At),(Lt=vt.call(this,Rt)).options=Rt,Lt.name=Rt.name||"http",Lt.ssl=!!Rt.ssl,Lt.host=Rt.host||"localhost",Lt.port=Rt.port,Lt.auth=Rt.auth,Lt.path=Rt.path||"",Lt.agent=Rt.agent,Lt.headers=Rt.headers||{},Lt.headers["content-type"]="application/json",Lt.port||(Lt.port=Lt.ssl?443:80),Lt}return Ft=At,(mt=[{key:"log",value:function(Lt,Rt){var St=this;this._request(Lt,function(Tt,Bt){Bt&&Bt.statusCode!==200&&(Tt=new Error("Invalid HTTP Status Code: ".concat(Bt.statusCode))),Tt?St.emit("warn",Tt):St.emit("logged",Lt)}),Rt&&tt(Rt)}},{key:"query",value:function(Lt,Rt){typeof Lt=="function"&&(Rt=Lt,Lt={}),(Lt={method:"query",params:this.normalizeQuery(Lt)}).params.path&&(Lt.path=Lt.params.path,delete Lt.params.path),Lt.params.auth&&(Lt.auth=Lt.params.auth,delete Lt.params.auth),this._request(Lt,function(St,Tt,Bt){if(Tt&&Tt.statusCode!==200&&(St=new Error("Invalid HTTP Status Code: ".concat(Tt.statusCode))),St)return Rt(St);if(typeof Bt=="string")try{Bt=JSON.parse(Bt)}catch(xt){return Rt(xt)}Rt(null,Bt)})}},{key:"stream",value:function(){var Lt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Rt=new gt;(Lt={method:"stream",params:Lt}).params.path&&(Lt.path=Lt.params.path,delete Lt.params.path),Lt.params.auth&&(Lt.auth=Lt.params.auth,delete Lt.params.auth);var St="",Tt=this._request(Lt);return Rt.destroy=function(){return Tt.destroy()},Tt.on("data",function(Bt){for(var xt=(Bt=(St+Bt).split(/\n+/)).length-1,Ct=0;Ct= 0x80 (not a basic code point)","invalid-input":"Invalid input"},ct=Math.floor,pt=String.fromCharCode;function ft(Rt){throw new RangeError(ht[Rt])}function gt(Rt,St){for(var Tt=Rt.length,Bt=[];Tt--;)Bt[Tt]=St(Rt[Tt]);return Bt}function yt(Rt,St){var Tt=Rt.split("@"),Bt="";return Tt.length>1&&(Bt=Tt[0]+"@",Rt=Tt[1]),Bt+gt((Rt=Rt.replace(dt,".")).split("."),St).join(".")}function Ut(Rt){for(var St,Tt,Bt=[],xt=0,Ct=Rt.length;xt=55296&&St<=56319&&xt65535&&(Tt+=pt((St-=65536)>>>10&1023|55296),St=56320|1023&St),Tt+=pt(St)}).join("")}function mt(Rt,St){return Rt+22+75*(Rt<26)-((St!=0)<<5)}function vt(Rt,St,Tt){var Bt=0;for(Rt=Tt?ct(Rt/700):Rt>>1,Rt+=ct(Rt/St);Rt>455;Bt+=36)Rt=ct(Rt/35);return ct(Bt+36*Rt/(Rt+38))}function At(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt,Et,Pt=[],zt=Rt.length,en=0,Kt=128,nn=72;for((Tt=Rt.lastIndexOf("-"))<0&&(Tt=0),Bt=0;Bt=128&&ft("not-basic"),Pt.push(Rt.charCodeAt(Bt));for(xt=Tt>0?Tt+1:0;xt=zt&&ft("invalid-input"),((Ot=(Et=Rt.charCodeAt(xt++))-48<10?Et-22:Et-65<26?Et-65:Et-97<26?Et-97:36)>=36||Ot>ct((at-en)/kt))&&ft("overflow"),en+=Ot*kt,!(Ot<(Wt=Nt<=nn?1:Nt>=nn+26?26:Nt-nn));Nt+=36)kt>ct(at/(Dt=36-Wt))&&ft("overflow"),kt*=Dt;nn=vt(en-Ct,St=Pt.length+1,Ct==0),ct(en/St)>at-Kt&&ft("overflow"),Kt+=ct(en/St),en%=St,Pt.splice(en++,0,Kt)}return Ft(Pt)}function Lt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt,Et,Pt,zt,en,Kt,nn=[];for(Pt=(Rt=Ut(Rt)).length,St=128,Tt=0,Ct=72,kt=0;kt=St&&Etct((at-Tt)/(zt=Bt+1))&&ft("overflow"),Tt+=(Nt-St)*zt,St=Nt,kt=0;ktat&&ft("overflow"),Et==St){for(Ot=Tt,Wt=36;!(Ot<(Dt=Wt<=Ct?1:Wt>=Ct+26?26:Wt-Ct));Wt+=36)Kt=Ot-Dt,en=36-Dt,nn.push(pt(mt(Dt+Kt%en,0))),Ot=ct(Kt/en);nn.push(pt(mt(Ot,0))),Ct=vt(Tt,zt,Bt==xt),Tt=0,++Bt}++Tt,++St}return nn.join("")}st={version:"1.4.1",ucs2:{decode:Ut,encode:Ft},decode:At,encode:Lt,toASCII:function(Rt){return yt(Rt,function(St){return ut.test(St)?"xn--"+Lt(St):St})},toUnicode:function(Rt){return yt(Rt,function(St){return lt.test(St)?At(St.slice(4).toLowerCase()):St})}},(rt=function(){return st}.call(o,et,o,tt))===void 0||(tt.exports=rt)})()}).call(this,et(195)(s),et(6))},function(s,o){s.exports=function(et){return et.webpackPolyfill||(et.deprecate=function(){},et.paths=[],et.children||(et.children=[]),Object.defineProperty(et,"loaded",{enumerable:!0,get:function(){return et.l}}),Object.defineProperty(et,"id",{enumerable:!0,get:function(){return et.i}}),et.webpackPolyfill=1),et}},function(s,o,et){s.exports={isString:function(tt){return typeof tt=="string"},isObject:function(tt){return typeof tt=="object"&&tt!==null},isNull:function(tt){return tt===null},isNullOrUndefined:function(tt){return tt==null}}},function(s,o,et){o.decode=o.parse=et(198),o.encode=o.stringify=et(199)},function(s,o,et){function tt(rt,it){return Object.prototype.hasOwnProperty.call(rt,it)}s.exports=function(rt,it,ot,st){it=it||"&",ot=ot||"=";var at={};if(typeof rt!="string"||rt.length===0)return at;var lt=/\+/g;rt=rt.split(it);var ut=1e3;st&&typeof st.maxKeys=="number"&&(ut=st.maxKeys);var dt=rt.length;ut>0&&dt>ut&&(dt=ut);for(var ht=0;ht=0?(ct=yt.substr(0,Ut),pt=yt.substr(Ut+1)):(ct=yt,pt=""),ft=decodeURIComponent(ct),gt=decodeURIComponent(pt),tt(at,ft)?nt(at[ft])?at[ft].push(gt):at[ft]=[at[ft],gt]:at[ft]=gt}return at};var nt=Array.isArray||function(rt){return Object.prototype.toString.call(rt)==="[object Array]"}},function(s,o,et){var tt=function(ot){switch(typeof ot){case"string":return ot;case"boolean":return ot?"true":"false";case"number":return isFinite(ot)?ot:"";default:return""}};s.exports=function(ot,st,at,lt){return st=st||"&",at=at||"=",ot===null&&(ot=void 0),typeof ot=="object"?rt(it(ot),function(ut){var dt=encodeURIComponent(tt(ut))+at;return nt(ot[ut])?rt(ot[ut],function(ht){return dt+encodeURIComponent(tt(ht))}).join(st):dt+encodeURIComponent(tt(ot[ut]))}).join(st):lt?encodeURIComponent(tt(lt))+at+encodeURIComponent(tt(ot)):""};var nt=Array.isArray||function(ot){return Object.prototype.toString.call(ot)==="[object Array]"};function rt(ot,st){if(ot.map)return ot.map(st);for(var at=[],lt=0;lt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var gt,yt=lt(pt);if(ft){var Ut=lt(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return at(this,gt)}}function at(pt,ft){return!ft||nt(ft)!=="object"&&typeof ft!="function"?function(gt){if(gt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return gt}(pt):ft}function lt(pt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(ft){return ft.__proto__||Object.getPrototypeOf(ft)})(pt)}var ut=et(87),dt=et(3).MESSAGE,ht=et(18),ct=et(20);s.exports=function(pt){(function(Ft,mt){if(typeof mt!="function"&&mt!==null)throw new TypeError("Super expression must either be null or a function");Ft.prototype=Object.create(mt&&mt.prototype,{constructor:{value:Ft,writable:!0,configurable:!0}}),mt&&ot(Ft,mt)})(Ut,pt);var ft,gt,yt=st(Ut);function Ut(){var Ft,mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(rt(this,Ut),Ft=yt.call(this,mt),!mt.stream||!ut(mt.stream))throw new Error("options.stream is required.");return Ft._stream=mt.stream,Ft._stream.setMaxListeners(1/0),Ft.isObjectMode=mt.stream._writableState.objectMode,Ft.eol=mt.eol||ht.EOL,Ft}return ft=Ut,(gt=[{key:"log",value:function(Ft,mt){var vt=this;if(tt(function(){return vt.emit("logged",Ft)}),this.isObjectMode)return this._stream.write(Ft),void(mt&&mt());this._stream.write("".concat(Ft[dt]).concat(this.eol)),mt&&mt()}}])&&it(ft.prototype,gt),Ut}(ct)}).call(this,et(15).setImmediate)},function(s,o,et){(function(tt){function nt(Bt,xt,Ct){return xt in Bt?Object.defineProperty(Bt,xt,{value:Ct,enumerable:!0,configurable:!0,writable:!0}):Bt[xt]=Ct,Bt}function rt(Bt){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(xt){return typeof xt}:function(xt){return xt&&typeof Symbol=="function"&&xt.constructor===Symbol&&xt!==Symbol.prototype?"symbol":typeof xt})(Bt)}function it(Bt,xt){for(var Ct=0;Ct"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var Ct,kt=lt(Bt);if(xt){var Nt=lt(this).constructor;Ct=Reflect.construct(kt,arguments,Nt)}else Ct=kt.apply(this,arguments);return at(this,Ct)}}function at(Bt,xt){return!xt||rt(xt)!=="object"&&typeof xt!="function"?function(Ct){if(Ct===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ct}(Bt):xt}function lt(Bt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(xt){return xt.__proto__||Object.getPrototypeOf(xt)})(Bt)}var ut=et(32),dt=ut.Stream,ht=ut.Transform,ct=et(51),pt=et(3),ft=pt.LEVEL,gt=pt.SPLAT,yt=et(87),Ut=et(89),Ft=et(93),mt=et(206),vt=et(207),At=et(61).warn,Lt=et(50),Rt=/%[scdjifoO%]/g,St=function(Bt){(function(Ot,Wt){if(typeof Wt!="function"&&Wt!==null)throw new TypeError("Super expression must either be null or a function");Ot.prototype=Object.create(Wt&&Wt.prototype,{constructor:{value:Ot,writable:!0,configurable:!0}}),Wt&&ot(Ot,Wt)})(Nt,Bt);var xt,Ct,kt=st(Nt);function Nt(Ot){var Wt;return function(Dt,Et){if(!(Dt instanceof Et))throw new TypeError("Cannot call a class as a function")}(this,Nt),(Wt=kt.call(this,{objectMode:!0})).configure(Ot),Wt}return xt=Nt,(Ct=[{key:"child",value:function(Ot){var Wt=this;return Object.create(Wt,{write:{value:function(Dt){var Et=Object.assign({},Ot,Dt);Dt instanceof Error&&(Et.stack=Dt.stack,Et.message=Dt.message),Wt.write(Et)}}})}},{key:"configure",value:function(){var Ot=this,Wt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Dt=Wt.silent,Et=Wt.format,Pt=Wt.defaultMeta,zt=Wt.levels,en=Wt.level,Kt=en===void 0?"info":en,nn=Wt.exitOnError,Zt=nn===void 0||nn,jt=Wt.transports,Vt=Wt.colors,It=Wt.emitErrs,$t=Wt.formatters,Ht=Wt.padLevels,qt=Wt.rewriters,on=Wt.stripColors,Xt=Wt.exceptionHandlers,dn=Wt.rejectionHandlers;if(this.transports.length&&this.clear(),this.silent=Dt,this.format=Et||this.format||et(208)(),this.defaultMeta=Pt||null,this.levels=zt||this.levels||Lt.npm.levels,this.level=Kt,this.exceptions=new Ut(this),this.rejections=new Ft(this),this.profilers={},this.exitOnError=Zt,jt&&(jt=Array.isArray(jt)?jt:[jt]).forEach(function(_n){return Ot.add(_n)}),Vt||It||$t||Ht||qt||on)throw new Error(["{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.","Use a custom winston.format(function) instead.","See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md"].join(` -`));Xt&&this.exceptions.handle(Xt),dn&&this.rejections.handle(dn)}},{key:"isLevelEnabled",value:function(Ot){var Wt=this,Dt=Tt(this.levels,Ot);if(Dt===null)return!1;var Et=Tt(this.levels,this.level);return Et!==null&&(this.transports&&this.transports.length!==0?this.transports.findIndex(function(Pt){var zt=Tt(Wt.levels,Pt.level);return zt===null&&(zt=Et),zt>=Dt})!==-1:Et>=Dt)}},{key:"log",value:function(Ot,Wt){for(var Dt,Et,Pt=arguments.length,zt=new Array(Pt>2?Pt-2:0),en=2;en2?new mt({transport:Ot}):Ot;if(!Wt._writableState||!Wt._writableState.objectMode)throw new Error("Transports must WritableStreams in objectMode. Set { objectMode: true }.");return this._onEvent("error",Wt),this._onEvent("warn",Wt),this.pipe(Wt),Ot.handleExceptions&&this.exceptions.handle(),Ot.handleRejections&&this.rejections.handle(),this}},{key:"remove",value:function(Ot){if(!Ot)return this;var Wt=Ot;return(!yt(Ot)||Ot.log.length>2)&&(Wt=this.transports.filter(function(Dt){return Dt.transport===Ot})[0]),Wt&&this.unpipe(Wt),this}},{key:"clear",value:function(){return this.unpipe(),this}},{key:"close",value:function(){return this.clear(),this.emit("close"),this}},{key:"setLevels",value:function(){At.deprecated("setLevels")}},{key:"query",value:function(Ot,Wt){typeof Ot=="function"&&(Wt=Ot,Ot={}),Ot=Ot||{};var Dt={},Et=Object.assign({},Ot.query||{});ct(this.transports.filter(function(Pt){return!!Pt.query}),function(Pt,zt){(function(en,Kt){Ot.query&&typeof en.formatQuery=="function"&&(Ot.query=en.formatQuery(Et)),en.query(Ot,function(nn,Zt){if(nn)return Kt(nn);typeof en.formatResults=="function"&&(Zt=en.formatResults(Zt,Ot.format)),Kt(null,Zt)})})(Pt,function(en,Kt){zt&&((Kt=en||Kt)&&(Dt[Pt.name]=Kt),zt()),zt=null})},function(){return Wt(null,Dt)})}},{key:"stream",value:function(){var Ot=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Wt=new dt,Dt=[];return Wt._streams=Dt,Wt.destroy=function(){for(var Et=Dt.length;Et--;)Dt[Et].destroy()},this.transports.filter(function(Et){return!!Et.stream}).forEach(function(Et){var Pt=Et.stream(Ot);Pt&&(Dt.push(Pt),Pt.on("log",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Wt.emit("log",zt)}),Pt.on("error",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Wt.emit("error",zt)}))}),Wt}},{key:"startTimer",value:function(){return new vt(this)}},{key:"profile",value:function(Ot){var Wt=Date.now();if(this.profilers[Ot]){var Dt=this.profilers[Ot];delete this.profilers[Ot];for(var Et=arguments.length,Pt=new Array(Et>1?Et-1:0),zt=1;zttt(nt,it)},s.exports=o.default},function(s,o,et){var tt=Object.prototype.toString;s.exports=function(nt){if(typeof nt.displayName=="string"&&nt.constructor.name)return nt.displayName;if(typeof nt.name=="string"&&nt.name)return nt.name;if(typeof nt=="object"&&nt.constructor&&typeof nt.constructor.name=="string")return nt.constructor.name;var rt=nt.toString(),it=tt.call(nt).slice(8,-1);return(rt=it==="Function"?rt.substring(rt.indexOf("(")+1,rt.indexOf(")")):it)||"anonymous"}},function(s,o,et){const tt=et(13),{LEVEL:nt}=et(3),rt=et(20),it=s.exports=function(ot={}){if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=function(st){this.emit("error",st,this.transport)}.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(let at=0;atut.length)&&(dt=ut.length);for(var ht=0,ct=new Array(dt);ht1?ft.splice(0):ft,Ut=yt.length;if(Ut)for(var Ft=0;Ft1&&arguments[1]!==void 0?arguments[1]:{};return it.format&&(rt.timestamp=typeof it.format=="function"?it.format():tt.format(new Date,it.format)),rt.timestamp||(rt.timestamp=new Date().toISOString()),it.alias&&(rt[it.alias]=rt.timestamp),rt})},function(s,o,et){et.r(o),et.d(o,"assign",function(){return st}),et.d(o,"format",function(){return St}),et.d(o,"parse",function(){return Tt}),et.d(o,"defaultI18n",function(){return dt}),et.d(o,"setGlobalDateI18n",function(){return ct}),et.d(o,"setGlobalDateMasks",function(){return Rt});var tt=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,nt="[^\\s]+",rt=/\[([^]*?)\]/gm;function it(xt,Ct){for(var kt=[],Nt=0,Ot=xt.length;Nt-1?Nt:null}};function st(xt){for(var Ct=[],kt=1;kt3?0:(xt-xt%10!=10?1:0)*xt%10]}},ht=st({},dt),ct=function(xt){return ht=st(ht,xt)},pt=function(xt){return xt.replace(/[|\\{()[^$+*?.-]/g,"\\$&")},ft=function(xt,Ct){for(Ct===void 0&&(Ct=2),xt=String(xt);xt.length0?"-":"+")+ft(100*Math.floor(Math.abs(Ct)/60)+Math.abs(Ct)%60,4)},Z:function(xt){var Ct=xt.getTimezoneOffset();return(Ct>0?"-":"+")+ft(Math.floor(Math.abs(Ct)/60),2)+":"+ft(Math.abs(Ct)%60,2)}},yt=function(xt){return+xt-1},Ut=[null,"[1-9]\\d?"],Ft=[null,nt],mt=["isPm",nt,function(xt,Ct){var kt=xt.toLowerCase();return kt===Ct.amPm[0]?0:kt===Ct.amPm[1]?1:null}],vt=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(xt){var Ct=(xt+"").match(/([+-]|\d\d)/gi);if(Ct){var kt=60*+Ct[1]+parseInt(Ct[2],10);return Ct[0]==="+"?kt:-kt}return 0}],At={D:["day","[1-9]\\d?"],DD:["day","\\d\\d"],Do:["day","[1-9]\\d?"+nt,function(xt){return parseInt(xt,10)}],M:["month","[1-9]\\d?",yt],MM:["month","\\d\\d",yt],YY:["year","\\d\\d",function(xt){var Ct=+(""+new Date().getFullYear()).substr(0,2);return+(""+(+xt>68?Ct-1:Ct)+xt)}],h:["hour","[1-9]\\d?",void 0,"isPm"],hh:["hour","\\d\\d",void 0,"isPm"],H:["hour","[1-9]\\d?"],HH:["hour","\\d\\d"],m:["minute","[1-9]\\d?"],mm:["minute","\\d\\d"],s:["second","[1-9]\\d?"],ss:["second","\\d\\d"],YYYY:["year","\\d{4}"],S:["millisecond","\\d",function(xt){return 100*+xt}],SS:["millisecond","\\d\\d",function(xt){return 10*+xt}],SSS:["millisecond","\\d{3}"],d:Ut,dd:Ut,ddd:Ft,dddd:Ft,MMM:["month",nt,ot("monthNamesShort")],MMMM:["month",nt,ot("monthNames")],a:mt,A:mt,ZZ:vt,Z:vt},Lt={default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},Rt=function(xt){return st(Lt,xt)},St=function(xt,Ct,kt){if(Ct===void 0&&(Ct=Lt.default),kt===void 0&&(kt={}),typeof xt=="number"&&(xt=new Date(xt)),Object.prototype.toString.call(xt)!=="[object Date]"||isNaN(xt.getTime()))throw new Error("Invalid Date pass to format");var Nt=[];Ct=(Ct=Lt[Ct]||Ct).replace(rt,function(Jt,Dt){return Nt.push(Dt),"@@@"});var Ot=st(st({},ht),kt);return(Ct=Ct.replace(tt,function(Jt){return gt[Jt](xt,Ot)})).replace(/@@@/g,function(){return Nt.shift()})};function Tt(xt,Ct,kt){if(kt===void 0&&(kt={}),typeof Ct!="string")throw new Error("Invalid format in fecha parse");if(Ct=Lt[Ct]||Ct,xt.length>1e3)return null;var Nt={year:new Date().getFullYear(),month:0,day:1,hour:0,minute:0,second:0,millisecond:0,isPm:null,timezoneOffset:null},Ot=[],Jt=[],Dt=Ct.replace(rt,function(qt,on){return Jt.push(pt(on)),"@@@"}),Et={},Pt={};Dt=pt(Dt).replace(tt,function(qt){var on=At[qt],Xt=on[0],dn=on[1],_n=on[3];if(Et[Xt])throw new Error("Invalid format. "+Xt+" specified twice in format");return Et[Xt]=!0,_n&&(Pt[_n]=!0),Ot.push(on),"("+dn+")"}),Object.keys(Pt).forEach(function(qt){if(!Et[qt])throw new Error("Invalid format. "+qt+" is required in specified format")}),Dt=Dt.replace(/@@@/g,function(){return Jt.shift()});var zt=xt.match(new RegExp(Dt,"i"));if(!zt)return null;for(var en=st(st({},ht),kt),Kt=1;Kt","maintainers":["Jarrett Cruger ","Chris Alderson ","David Hyde "],"repository":{"type":"git","url":"https://github.com/winstonjs/winston.git"},"keywords":["winston","logger","logging","logs","sysadmin","bunyan","pino","loglevel","tools","json","stream"],"dependencies":{"async":"^3.1.0","@dabh/diagnostics":"^2.0.2","is-stream":"^2.0.0","logform":"^2.2.0","one-time":"^1.0.0","readable-stream":"^3.4.0","stack-trace":"0.0.x","triple-beam":"^1.3.0","winston-transport":"^4.4.0"},"devDependencies":{"@babel/cli":"^7.10.3","@babel/core":"^7.10.3","@babel/preset-env":"^7.10.3","@types/node":"^14.0.13","abstract-winston-transport":"^0.5.1","assume":"^2.2.0","colors":"^1.4.0","cross-spawn-async":"^2.2.5","eslint-config-populist":"^4.2.0","hock":"^1.4.1","mocha":"^8.0.1","nyc":"^15.1.0","rimraf":"^3.0.2","split2":"^3.1.1","std-mocks":"^1.0.1","through2":"^3.0.1","winston-compat":"^0.1.5"},"main":"./lib/winston","browser":"./dist/winston","types":"./index.d.ts","scripts":{"lint":"populist lib/*.js lib/winston/*.js lib/winston/**/*.js","pretest":"npm run lint","test":"nyc --reporter=text --reporter lcov npm run test:mocha","test:mocha":"mocha test/*.test.js test/**/*.test.js --exit","build":"./node_modules/.bin/rimraf dist && babel lib -d dist","prepublishOnly":"npm run build"},"engines":{"node":">= 6.4.0"},"license":"MIT"}')},function(s,o,et){Object.defineProperty(o,"Console",{configurable:!0,enumerable:!0,get:function(){return et(140)}}),Object.defineProperty(o,"File",{configurable:!0,enumerable:!0,get:function(){return et(149)}}),Object.defineProperty(o,"Http",{configurable:!0,enumerable:!0,get:function(){return et(189)}}),Object.defineProperty(o,"Stream",{configurable:!0,enumerable:!0,get:function(){return et(201)}})},function(s,o,et){(function(tt){function nt(ft){return(nt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(gt){return typeof gt}:function(gt){return gt&&typeof Symbol=="function"&>.constructor===Symbol&>!==Symbol.prototype?"symbol":typeof gt})(ft)}function rt(ft,gt){if(!(ft instanceof gt))throw new TypeError("Cannot call a class as a function")}function it(ft,gt){for(var yt=0;yt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var yt,Ut=lt(ft);if(gt){var Ft=lt(this).constructor;yt=Reflect.construct(Ut,arguments,Ft)}else yt=Ut.apply(this,arguments);return at(this,yt)}}function at(ft,gt){return!gt||nt(gt)!=="object"&&typeof gt!="function"?function(yt){if(yt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return yt}(ft):gt}function lt(ft){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(gt){return gt.__proto__||Object.getPrototypeOf(gt)})(ft)}var ut=et(18),dt=et(3),ht=dt.LEVEL,ct=dt.MESSAGE,pt=et(20);s.exports=function(ft){(function(mt,vt){if(typeof vt!="function"&&vt!==null)throw new TypeError("Super expression must either be null or a function");mt.prototype=Object.create(vt&&vt.prototype,{constructor:{value:mt,writable:!0,configurable:!0}}),vt&&ot(mt,vt)})(Ft,ft);var gt,yt,Ut=st(Ft);function Ft(){var mt,vt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return rt(this,Ft),(mt=Ut.call(this,vt)).name=vt.name||"console",mt.stderrLevels=mt._stringArrayToSet(vt.stderrLevels),mt.consoleWarnLevels=mt._stringArrayToSet(vt.consoleWarnLevels),mt.eol=vt.eol||ut.EOL,mt.setMaxListeners(30),mt}return gt=Ft,(yt=[{key:"log",value:function(mt,vt){var At=this;return tt(function(){return At.emit("logged",mt)}),this.stderrLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.error(mt[ct]),void(vt&&vt())):this.consoleWarnLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.warn(mt[ct]),void(vt&&vt())):(console._stdout?console._stdout.write("".concat(mt[ct]).concat(this.eol)):console.log(mt[ct]),void(vt&&vt()))}},{key:"_stringArrayToSet",value:function(mt,vt){if(!mt)return{};if(vt=vt||"Cannot make set from type other than Array of string elements",!Array.isArray(mt))throw new Error(vt);return mt.reduce(function(At,Lt){if(typeof Lt!="string")throw new Error(vt);return At[Lt]=!0,At},{})}}])&&it(gt.prototype,yt),Ft}(pt)}).call(this,et(15).setImmediate)},function(s,o,et){(function(tt,nt){(function(rt,it){if(!rt.setImmediate){var ot,st,at,lt,ut,dt=1,ht={},ct=!1,pt=rt.document,ft=Object.getPrototypeOf&&Object.getPrototypeOf(rt);ft=ft&&ft.setTimeout?ft:rt,{}.toString.call(rt.process)==="[object process]"?ot=function(Ut){nt.nextTick(function(){yt(Ut)})}:function(){if(rt.postMessage&&!rt.importScripts){var Ut=!0,Ft=rt.onmessage;return rt.onmessage=function(){Ut=!1},rt.postMessage("","*"),rt.onmessage=Ft,Ut}}()?(lt="setImmediate$"+Math.random()+"$",ut=function(Ut){Ut.source===rt&&typeof Ut.data=="string"&&Ut.data.indexOf(lt)===0&&yt(+Ut.data.slice(lt.length))},rt.addEventListener?rt.addEventListener("message",ut,!1):rt.attachEvent("onmessage",ut),ot=function(Ut){rt.postMessage(lt+Ut,"*")}):rt.MessageChannel?((at=new MessageChannel).port1.onmessage=function(Ut){yt(Ut.data)},ot=function(Ut){at.port2.postMessage(Ut)}):pt&&"onreadystatechange"in pt.createElement("script")?(st=pt.documentElement,ot=function(Ut){var Ft=pt.createElement("script");Ft.onreadystatechange=function(){yt(Ut),Ft.onreadystatechange=null,st.removeChild(Ft),Ft=null},st.appendChild(Ft)}):ot=function(Ut){setTimeout(yt,0,Ut)},ft.setImmediate=function(Ut){typeof Ut!="function"&&(Ut=new Function(""+Ut));for(var Ft=new Array(arguments.length-1),mt=0;mt"u"?tt===void 0?this:tt:self)}).call(this,et(6),et(2))},function(s,o,et){s.exports=et(62)},function(s,o,et){(function(tt,nt){var rt=et(16);s.exports=Ft;var it,ot=et(42);Ft.ReadableState=Ut,et(21).EventEmitter;var st=function(Dt,Et){return Dt.listeners(Et).length},at=et(63),lt=et(44).Buffer,ut=tt.Uint8Array||function(){},dt=Object.create(et(17));dt.inherits=et(7);var ht=et(144),ct=void 0;ct=ht&&ht.debuglog?ht.debuglog("stream"):function(){};var pt,ft=et(145),gt=et(64);dt.inherits(Ft,at);var yt=["error","close","destroy","pause","resume"];function Ut(Dt,Et){Dt=Dt||{};var Pt=Et instanceof(it=it||et(36));this.objectMode=!!Dt.objectMode,Pt&&(this.objectMode=this.objectMode||!!Dt.readableObjectMode);var zt=Dt.highWaterMark,en=Dt.readableHighWaterMark,Kt=this.objectMode?16:16384;this.highWaterMark=zt||zt===0?zt:Pt&&(en||en===0)?en:Kt,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new ft,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=Dt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Dt.encoding&&(pt||(pt=et(22).StringDecoder),this.decoder=new pt(Dt.encoding),this.encoding=Dt.encoding)}function Ft(Dt){if(it=it||et(36),!(this instanceof Ft))return new Ft(Dt);this._readableState=new Ut(Dt,this),this.readable=!0,Dt&&(typeof Dt.read=="function"&&(this._read=Dt.read),typeof Dt.destroy=="function"&&(this._destroy=Dt.destroy)),at.call(this)}function mt(Dt,Et,Pt,zt,en){var Kt,nn=Dt._readableState;return Et===null?(nn.reading=!1,function(Zt,jt){if(!jt.ended){if(jt.decoder){var Vt=jt.decoder.end();Vt&&Vt.length&&(jt.buffer.push(Vt),jt.length+=jt.objectMode?1:Vt.length)}jt.ended=!0,Lt(Zt)}}(Dt,nn)):(en||(Kt=function(Zt,jt){var Vt;It=jt,lt.isBuffer(It)||It instanceof ut||typeof jt=="string"||jt===void 0||Zt.objectMode||(Vt=new TypeError("Invalid non-string/buffer chunk"));var It;return Vt}(nn,Et)),Kt?Dt.emit("error",Kt):nn.objectMode||Et&&Et.length>0?(typeof Et=="string"||nn.objectMode||Object.getPrototypeOf(Et)===lt.prototype||(Et=function(Zt){return lt.from(Zt)}(Et)),zt?nn.endEmitted?Dt.emit("error",new Error("stream.unshift() after end event")):vt(Dt,nn,Et,!0):nn.ended?Dt.emit("error",new Error("stream.push() after EOF")):(nn.reading=!1,nn.decoder&&!Pt?(Et=nn.decoder.write(Et),nn.objectMode||Et.length!==0?vt(Dt,nn,Et,!1):St(Dt,nn)):vt(Dt,nn,Et,!1))):zt||(nn.reading=!1)),function(Zt){return!Zt.ended&&(Zt.needReadable||Zt.lengthEt.highWaterMark&&(Et.highWaterMark=function(Pt){return Pt>=8388608?Pt=8388608:(Pt--,Pt|=Pt>>>1,Pt|=Pt>>>2,Pt|=Pt>>>4,Pt|=Pt>>>8,Pt|=Pt>>>16,Pt++),Pt}(Dt)),Dt<=Et.length?Dt:Et.ended?Et.length:(Et.needReadable=!0,0))}function Lt(Dt){var Et=Dt._readableState;Et.needReadable=!1,Et.emittedReadable||(ct("emitReadable",Et.flowing),Et.emittedReadable=!0,Et.sync?rt.nextTick(Rt,Dt):Rt(Dt))}function Rt(Dt){ct("emit readable"),Dt.emit("readable"),Ct(Dt)}function St(Dt,Et){Et.readingMore||(Et.readingMore=!0,rt.nextTick(Tt,Dt,Et))}function Tt(Dt,Et){for(var Pt=Et.length;!Et.reading&&!Et.flowing&&!Et.ended&&Et.length=Et.length?(Pt=Et.decoder?Et.buffer.join(""):Et.buffer.length===1?Et.buffer.head.data:Et.buffer.concat(Et.length),Et.buffer.clear()):Pt=function(zt,en,Kt){var nn;return ztHt.length?Ht.length:Zt;if(qt===Ht.length?$t+=Ht:$t+=Ht.slice(0,Zt),(Zt-=qt)===0){qt===Ht.length?(++It,Vt.next?jt.head=Vt.next:jt.head=jt.tail=null):(jt.head=Vt,Vt.data=Ht.slice(qt));break}++It}return jt.length-=It,$t}(zt,en):function(Zt,jt){var Vt=lt.allocUnsafe(Zt),It=jt.head,$t=1;for(It.data.copy(Vt),Zt-=It.data.length;It=It.next;){var Ht=It.data,qt=Zt>Ht.length?Ht.length:Zt;if(Ht.copy(Vt,Vt.length-Zt,0,qt),(Zt-=qt)===0){qt===Ht.length?(++$t,It.next?jt.head=It.next:jt.head=jt.tail=null):(jt.head=It,It.data=Ht.slice(qt));break}++$t}return jt.length-=$t,Vt}(zt,en),nn}(Dt,Et.buffer,Et.decoder),Pt);var Pt}function Nt(Dt){var Et=Dt._readableState;if(Et.length>0)throw new Error('"endReadable()" called on non-empty stream');Et.endEmitted||(Et.ended=!0,rt.nextTick(Ot,Et,Dt))}function Ot(Dt,Et){Dt.endEmitted||Dt.length!==0||(Dt.endEmitted=!0,Et.readable=!1,Et.emit("end"))}function Jt(Dt,Et){for(var Pt=0,zt=Dt.length;Pt=Et.highWaterMark||Et.ended))return ct("read: emitReadable",Et.length,Et.ended),Et.length===0&&Et.ended?Nt(this):Lt(this),null;if((Dt=At(Dt,Et))===0&&Et.ended)return Et.length===0&&Nt(this),null;var zt,en=Et.needReadable;return ct("need readable",en),(Et.length===0||Et.length-Dt0?kt(Dt,Et):null)===null?(Et.needReadable=!0,Dt=0):Et.length-=Dt,Et.length===0&&(Et.ended||(Et.needReadable=!0),Pt!==Dt&&Et.ended&&Nt(this)),zt!==null&&this.emit("data",zt),zt},Ft.prototype._read=function(Dt){this.emit("error",new Error("_read() is not implemented"))},Ft.prototype.pipe=function(Dt,Et){var Pt=this,zt=this._readableState;switch(zt.pipesCount){case 0:zt.pipes=Dt;break;case 1:zt.pipes=[zt.pipes,Dt];break;default:zt.pipes.push(Dt)}zt.pipesCount+=1,ct("pipe count=%d opts=%j",zt.pipesCount,Et);var en=(!Et||Et.end!==!1)&&Dt!==nt.stdout&&Dt!==nt.stderr?nn:on;function Kt(Xt,dn){ct("onunpipe"),Xt===Pt&&dn&&dn.hasUnpiped===!1&&(dn.hasUnpiped=!0,ct("cleanup"),Dt.removeListener("close",Ht),Dt.removeListener("finish",qt),Dt.removeListener("drain",Zt),Dt.removeListener("error",$t),Dt.removeListener("unpipe",Kt),Pt.removeListener("end",nn),Pt.removeListener("end",on),Pt.removeListener("data",It),jt=!0,!zt.awaitDrain||Dt._writableState&&!Dt._writableState.needDrain||Zt())}function nn(){ct("onend"),Dt.end()}zt.endEmitted?rt.nextTick(en):Pt.once("end",en),Dt.on("unpipe",Kt);var Zt=function(Xt){return function(){var dn=Xt._readableState;ct("pipeOnDrain",dn.awaitDrain),dn.awaitDrain&&dn.awaitDrain--,dn.awaitDrain===0&&st(Xt,"data")&&(dn.flowing=!0,Ct(Xt))}}(Pt);Dt.on("drain",Zt);var jt=!1,Vt=!1;function It(Xt){ct("ondata"),Vt=!1,Dt.write(Xt)!==!1||Vt||((zt.pipesCount===1&&zt.pipes===Dt||zt.pipesCount>1&&Jt(zt.pipes,Dt)!==-1)&&!jt&&(ct("false write response, pause",Pt._readableState.awaitDrain),Pt._readableState.awaitDrain++,Vt=!0),Pt.pause())}function $t(Xt){ct("onerror",Xt),on(),Dt.removeListener("error",$t),st(Dt,"error")===0&&Dt.emit("error",Xt)}function Ht(){Dt.removeListener("finish",qt),on()}function qt(){ct("onfinish"),Dt.removeListener("close",Ht),on()}function on(){ct("unpipe"),Pt.unpipe(Dt)}return Pt.on("data",It),function(Xt,dn,_n){if(typeof Xt.prependListener=="function")return Xt.prependListener(dn,_n);Xt._events&&Xt._events[dn]?ot(Xt._events[dn])?Xt._events[dn].unshift(_n):Xt._events[dn]=[_n,Xt._events[dn]]:Xt.on(dn,_n)}(Dt,"error",$t),Dt.once("close",Ht),Dt.once("finish",qt),Dt.emit("pipe",Pt),zt.flowing||(ct("pipe resume"),Pt.resume()),Dt},Ft.prototype.unpipe=function(Dt){var Et=this._readableState,Pt={hasUnpiped:!1};if(Et.pipesCount===0)return this;if(Et.pipesCount===1)return Dt&&Dt!==Et.pipes||(Dt||(Dt=Et.pipes),Et.pipes=null,Et.pipesCount=0,Et.flowing=!1,Dt&&Dt.emit("unpipe",this,Pt)),this;if(!Dt){var zt=Et.pipes,en=Et.pipesCount;Et.pipes=null,Et.pipesCount=0,Et.flowing=!1;for(var Kt=0;Kt0?this.tail.next=ot:this.head=ot,this.tail=ot,++this.length},rt.prototype.unshift=function(it){var ot={data:it,next:this.head};this.length===0&&(this.tail=ot),this.head=ot,++this.length},rt.prototype.shift=function(){if(this.length!==0){var it=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,it}},rt.prototype.clear=function(){this.head=this.tail=null,this.length=0},rt.prototype.join=function(it){if(this.length===0)return"";for(var ot=this.head,st=""+ot.data;ot=ot.next;)st+=it+ot.data;return st},rt.prototype.concat=function(it){if(this.length===0)return tt.alloc(0);if(this.length===1)return this.head.data;for(var ot,st,at,lt=tt.allocUnsafe(it>>>0),ut=this.head,dt=0;ut;)ot=ut.data,st=lt,at=dt,ot.copy(st,at),dt+=ut.data.length,ut=ut.next;return lt},rt}(),nt&&nt.inspect&&nt.inspect.custom&&(s.exports.prototype[nt.inspect.custom]=function(){var rt=nt.inspect({length:this.length});return this.constructor.name+" "+rt})},function(s,o){},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){var tt=et(13),nt=et(3).LEVEL,rt=et(20),it=s.exports=function(){var ot=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");function st(at){this.emit("error",at,this.transport)}this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=st.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(var at=0;at"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var Tt,Bt=dt(Rt);if(St){var xt=dt(this).constructor;Tt=Reflect.construct(Bt,arguments,xt)}else Tt=Bt.apply(this,arguments);return lt(this,Tt)}}function lt(Rt,St){return!St||rt(St)!=="object"&&typeof St!="function"?ut(Rt):St}function ut(Rt){if(Rt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Rt}function dt(Rt){return(dt=Object.setPrototypeOf?Object.getPrototypeOf:function(St){return St.__proto__||Object.getPrototypeOf(St)})(Rt)}var ht=et(65),ct=et(56),pt=et(150),ft=et(160),gt=et(3).MESSAGE,yt=et(32),Ut=yt.Stream,Ft=yt.PassThrough,mt=et(20),vt=et(38)("winston:file"),At=et(18),Lt=et(188);s.exports=function(Rt){(function(Ct,kt){if(typeof kt!="function"&&kt!==null)throw new TypeError("Super expression must either be null or a function");Ct.prototype=Object.create(kt&&kt.prototype,{constructor:{value:Ct,writable:!0,configurable:!0}}),kt&&st(Ct,kt)})(xt,Rt);var St,Tt,Bt=at(xt);function xt(){var Ct,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};function Nt(Ot){for(var Jt=arguments.length,Dt=new Array(Jt>1?Jt-1:0),Et=1;Et1&&arguments[1]!==void 0?arguments[1]:function(){};if(this.silent)return Nt(),!0;if(this._drain)this._stream.once("drain",function(){kt._drain=!1,kt.log(Ct,Nt)});else{if(!this._rotate){var Ot="".concat(Ct[gt]).concat(this.eol),Jt=nt.byteLength(Ot);this._pendingSize+=Jt,this._opening&&!this.rotatedWhileOpening&&this._needsNewFile(this._size+this._pendingSize)&&(this.rotatedWhileOpening=!0);var Dt=this._stream.write(Ot,Et.bind(this));return Dt?Nt():(this._drain=!0,this._stream.once("drain",function(){kt._drain=!1,Nt()})),vt("written",Dt,this._drain),this.finishIfEnding(),Dt}this._stream.once("rotate",function(){kt._rotate=!1,kt.log(Ct,Nt)})}function Et(){var Pt=this;this._size+=Jt,this._pendingSize-=Jt,vt("logged %s %s",this._size,Ot),this.emit("logged",Ct),this._opening||this._needsNewFile()&&(this._rotate=!0,this._endStream(function(){return Pt._rotateFile()}))}}},{key:"query",value:function(Ct,kt){typeof Ct=="function"&&(kt=Ct,Ct={}),Ct=function(zt){return(zt=zt||{}).rows=zt.rows||zt.limit||10,zt.start=zt.start||0,zt.until=zt.until||new Date,rt(zt.until)!=="object"&&(zt.until=new Date(zt.until)),zt.from=zt.from||zt.until-864e5,rt(zt.from)!=="object"&&(zt.from=new Date(zt.from)),zt.order=zt.order||"desc",zt}(Ct);var Nt=ct.join(this.dirname,this.filename),Ot="",Jt=[],Dt=0,Et=ht.createReadStream(Nt,{encoding:"utf8"});function Pt(zt,en){try{var Kt=JSON.parse(zt);(function(nn){if(nn&&rt(nn)==="object"){var Zt=new Date(nn.timestamp);if(!(Ct.from&&ZtCt.until||Ct.level&&Ct.level!==nn.level))return!0}})(Kt)&&function(nn){Ct.rows&&Jt.length>=Ct.rows&&Ct.order!=="desc"?Et.readable&&Et.destroy():(Ct.fields&&(nn=Ct.fields.reduce(function(Zt,jt){return Zt[jt]=nn[jt],Zt},{})),Ct.order==="desc"&&Jt.length>=Ct.rows&&Jt.shift(),Jt.push(nn))}(Kt)}catch(nn){en||Et.emit("error",nn)}}Et.on("error",function(zt){if(Et.readable&&Et.destroy(),kt)return zt.code!=="ENOENT"?kt(zt):kt(null,Jt)}),Et.on("data",function(zt){for(var en=(zt=(Ot+zt).split(/\n+/)).length-1,Kt=0;Kt=Ct.start)&&Pt(zt[Kt]),Dt++;Ot=zt[en]}),Et.on("close",function(){Ot&&Pt(Ot,!0),Ct.order==="desc"&&(Jt=Jt.reverse()),kt&&kt(null,Jt)})}},{key:"stream",value:function(){var Ct=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},kt=ct.join(this.dirname,this.filename),Nt=new Ut,Ot={file:kt,start:Ct.start};return Nt.destroy=Lt(Ot,function(Jt,Dt){if(Jt)return Nt.emit("error",Jt);try{Nt.emit("data",Dt),Dt=JSON.parse(Dt),Nt.emit("log",Dt)}catch(Et){Nt.emit("error",Et)}}),Nt}},{key:"open",value:function(){var Ct=this;this.filename&&(this._opening||(this._opening=!0,this.stat(function(kt,Nt){if(kt)return Ct.emit("error",kt);vt("stat done: %s { size: %s }",Ct.filename,Nt),Ct._size=Nt,Ct._dest=Ct._createStream(Ct._stream),Ct._opening=!1,Ct.once("open",function(){Ct._stream.eventNames().includes("rotate")?Ct._stream.emit("rotate"):Ct._rotate=!1})})))}},{key:"stat",value:function(Ct){var kt=this,Nt=this._getFile(),Ot=ct.join(this.dirname,Nt);ht.stat(Ot,function(Jt,Dt){return Jt&&Jt.code==="ENOENT"?(vt("ENOENT ok",Ot),kt.filename=Nt,Ct(null,0)):Jt?(vt("err ".concat(Jt.code," ").concat(Ot)),Ct(Jt)):!Dt||kt._needsNewFile(Dt.size)?kt._incFile(function(){return kt.stat(Ct)}):(kt.filename=Nt,void Ct(null,Dt.size))})}},{key:"close",value:function(Ct){var kt=this;this._stream&&this._stream.end(function(){Ct&&Ct(),kt.emit("flush"),kt.emit("closed")})}},{key:"_needsNewFile",value:function(Ct){return Ct=Ct||this._size,this.maxsize&&Ct>=this.maxsize}},{key:"_onError",value:function(Ct){this.emit("error",Ct)}},{key:"_setupStream",value:function(Ct){return Ct.on("error",this._onError),Ct}},{key:"_cleanupStream",value:function(Ct){return Ct.removeListener("error",this._onError),Ct}},{key:"_rotateFile",value:function(){var Ct=this;this._incFile(function(){return Ct.open()})}},{key:"_endStream",value:function(){var Ct=this,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){};this._dest?(this._stream.unpipe(this._dest),this._dest.end(function(){Ct._cleanupStream(Ct._dest),kt()})):kt()}},{key:"_createStream",value:function(Ct){var kt=this,Nt=ct.join(this.dirname,this.filename);vt("create stream start",Nt,this.options);var Ot=ht.createWriteStream(Nt,this.options).on("error",function(Dt){return vt(Dt)}).on("close",function(){return vt("close",Ot.path,Ot.bytesWritten)}).on("open",function(){vt("file open ok",Nt),kt.emit("open",Nt),Ct.pipe(Ot),kt.rotatedWhileOpening&&(kt._stream=new Ft,kt._stream.setMaxListeners(30),kt._rotateFile(),kt.rotatedWhileOpening=!1,kt._cleanupStream(Ot),Ct.end())});if(vt("create stream ok",Nt),this.zippedArchive){var Jt=ft.createGzip();return Jt.pipe(Ot),Jt}return Ot}},{key:"_incFile",value:function(Ct){vt("_incFile",this.filename);var kt=ct.extname(this._basename),Nt=ct.basename(this._basename,kt);this.tailable?this._checkMaxFilesTailable(kt,Nt,Ct):(this._created+=1,this._checkMaxFilesIncrementing(kt,Nt,Ct))}},{key:"_getFile",value:function(){var Ct=ct.extname(this._basename),kt=ct.basename(this._basename,Ct),Nt=this.rotationFormat?this.rotationFormat():this._created,Ot=!this.tailable&&this._created?"".concat(kt).concat(Nt).concat(Ct):"".concat(kt).concat(Ct);return this.zippedArchive&&!this.tailable?"".concat(Ot,".gz"):Ot}},{key:"_checkMaxFilesIncrementing",value:function(Ct,kt,Nt){if(!this.maxFiles||this._created1;Et--)Jt.push(function(Pt,zt){var en=this,Kt="".concat(kt).concat(Pt-1).concat(Ct).concat(Dt),nn=ct.join(this.dirname,Kt);ht.exists(nn,function(Zt){if(!Zt)return zt(null);Kt="".concat(kt).concat(Pt).concat(Ct).concat(Dt),ht.rename(nn,ct.join(en.dirname,Kt),zt)})}.bind(this,Et));pt(Jt,function(){ht.rename(ct.join(Ot.dirname,"".concat(kt).concat(Ct)),ct.join(Ot.dirname,"".concat(kt,"1").concat(Ct).concat(Dt)),Nt)})}}},{key:"_createLogDirIfNotExist",value:function(Ct){ht.existsSync(Ct)||ht.mkdirSync(Ct,{recursive:!0})}}])&&ot(St.prototype,Tt),xt}(mt)}).call(this,et(15).setImmediate,et(5).Buffer)},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(it,ot){return(0,tt.default)(nt.default,it,ot)};var tt=rt(et(151)),nt=rt(et(155));function rt(it){return it&&it.__esModule?it:{default:it}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(45)),nt=it(et(25)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)((ot,st,at)=>{var lt=(0,tt.default)(st)?[]:{};ot(st,(ut,dt,ht)=>{(0,nt.default)(ut)((ct,...pt)=>{pt.length<2&&([pt]=pt),lt[dt]=pt,ht(ct)})},ut=>at(ut,lt))},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(at){return(0,rt.isAsync)(at)?function(...lt){const ut=lt.pop();return ot(at.apply(this,lt),ut)}:(0,tt.default)(function(lt,ut){var dt;try{dt=at.apply(this,lt)}catch(ht){return ut(ht)}if(dt&&typeof dt.then=="function")return ot(dt,ut);ut(null,dt)})};var tt=it(et(153)),nt=it(et(154)),rt=et(25);function it(at){return at&&at.__esModule?at:{default:at}}function ot(at,lt){return at.then(ut=>{st(lt,null,ut)},ut=>{st(lt,ut&&ut.message?ut:new Error(ut))})}function st(at,lt,ut){try{at(lt,ut)}catch(dt){(0,nt.default)(ht=>{throw ht},dt)}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){var rt=nt.pop();return tt.call(this,nt,rt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){Object.defineProperty(o,"__esModule",{value:!0}),o.fallback=st,o.wrap=at;var rt,it=o.hasSetImmediate=typeof tt=="function"&&tt,ot=o.hasNextTick=typeof nt=="object"&&typeof nt.nextTick=="function";function st(lt){setTimeout(lt,0)}function at(lt){return(ut,...dt)=>lt(()=>ut(...dt))}rt=it?tt:ot?nt.nextTick:st,o.default=at(rt)}).call(this,et(15).setImmediate,et(2))},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=rt(et(66)),nt=rt(et(30));function rt(it){return it&&it.__esModule?it:{default:it}}o.default=(0,nt.default)(function(it,ot,st){return(0,tt.default)(it,1,ot,st)},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=at(et(67)),nt=at(et(157)),rt=at(et(68)),it=et(25),ot=at(et(159)),st=at(et(46));function at(lt){return lt&<.__esModule?lt:{default:lt}}o.default=lt=>(ut,dt,ht)=>{if(ht=(0,tt.default)(ht),lt<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!ut)return ht(null);if((0,it.isAsyncGenerator)(ut))return(0,ot.default)(ut,lt,dt,ht);if((0,it.isAsyncIterable)(ut))return(0,ot.default)(ut[Symbol.asyncIterator](),lt,dt,ht);var ct=(0,nt.default)(ut),pt=!1,ft=!1,gt=0,yt=!1;function Ut(mt,vt){if(!ft)if(gt-=1,mt)pt=!0,ht(mt);else if(mt===!1)pt=!0,ft=!0;else{if(vt===st.default||pt&><=0)return pt=!0,ht(null);yt||Ft()}}function Ft(){for(yt=!0;gt=ot||dt||lt||(dt=!0,it.next().then(({value:yt,done:Ut})=>{if(!ut&&!lt){if(dt=!1,Ut)return lt=!0,void(ht<=0&&at(null));ht++,st(yt,ct,ft),ct++,pt()}}).catch(gt))}function ft(yt,Ut){if(ht-=1,!ut)return yt?gt(yt):yt===!1?(lt=!0,void(ut=!0)):Ut===rt.default||lt&&ht<=0?(lt=!0,at(null)):void pt()}function gt(yt){ut||(dt=!1,lt=!0,at(yt))}pt()};var tt,nt=et(46),rt=(tt=nt)&&tt.__esModule?tt:{default:tt};s.exports=o.default},function(s,o,et){(function(tt){var nt=et(5).Buffer,rt=et(161).Transform,it=et(169),ot=et(13),st=et(74).ok,at=et(5).kMaxLength,lt="Cannot create final Buffer. It would be larger than 0x"+at.toString(16)+" bytes";it.Z_MIN_WINDOWBITS=8,it.Z_MAX_WINDOWBITS=15,it.Z_DEFAULT_WINDOWBITS=15,it.Z_MIN_CHUNK=64,it.Z_MAX_CHUNK=1/0,it.Z_DEFAULT_CHUNK=16384,it.Z_MIN_MEMLEVEL=1,it.Z_MAX_MEMLEVEL=9,it.Z_DEFAULT_MEMLEVEL=8,it.Z_MIN_LEVEL=-1,it.Z_MAX_LEVEL=9,it.Z_DEFAULT_LEVEL=it.Z_DEFAULT_COMPRESSION;for(var ut=Object.keys(it),dt=0;dt=at?en=new RangeError(lt):zt=nt.concat(Jt,Dt),Jt=[],kt.close(),Ot(en,zt)}kt.on("error",function(zt){kt.removeListener("end",Pt),kt.removeListener("readable",Et),Ot(zt)}),kt.on("end",Pt),kt.end(Nt),Et()}function Ut(kt,Nt){if(typeof Nt=="string"&&(Nt=nt.from(Nt)),!nt.isBuffer(Nt))throw new TypeError("Not a string or buffer");var Ot=kt._finishFlushFlag;return kt._processChunk(Nt,Ot)}function Ft(kt){if(!(this instanceof Ft))return new Ft(kt);Bt.call(this,kt,it.DEFLATE)}function mt(kt){if(!(this instanceof mt))return new mt(kt);Bt.call(this,kt,it.INFLATE)}function vt(kt){if(!(this instanceof vt))return new vt(kt);Bt.call(this,kt,it.GZIP)}function At(kt){if(!(this instanceof At))return new At(kt);Bt.call(this,kt,it.GUNZIP)}function Lt(kt){if(!(this instanceof Lt))return new Lt(kt);Bt.call(this,kt,it.DEFLATERAW)}function Rt(kt){if(!(this instanceof Rt))return new Rt(kt);Bt.call(this,kt,it.INFLATERAW)}function St(kt){if(!(this instanceof St))return new St(kt);Bt.call(this,kt,it.UNZIP)}function Tt(kt){return kt===it.Z_NO_FLUSH||kt===it.Z_PARTIAL_FLUSH||kt===it.Z_SYNC_FLUSH||kt===it.Z_FULL_FLUSH||kt===it.Z_FINISH||kt===it.Z_BLOCK}function Bt(kt,Nt){var Ot=this;if(this._opts=kt=kt||{},this._chunkSize=kt.chunkSize||o.Z_DEFAULT_CHUNK,rt.call(this,kt),kt.flush&&!Tt(kt.flush))throw new Error("Invalid flush flag: "+kt.flush);if(kt.finishFlush&&!Tt(kt.finishFlush))throw new Error("Invalid flush flag: "+kt.finishFlush);if(this._flushFlag=kt.flush||it.Z_NO_FLUSH,this._finishFlushFlag=kt.finishFlush!==void 0?kt.finishFlush:it.Z_FINISH,kt.chunkSize&&(kt.chunkSizeo.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+kt.chunkSize);if(kt.windowBits&&(kt.windowBitso.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+kt.windowBits);if(kt.level&&(kt.levelo.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+kt.level);if(kt.memLevel&&(kt.memLevelo.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+kt.memLevel);if(kt.strategy&&kt.strategy!=o.Z_FILTERED&&kt.strategy!=o.Z_HUFFMAN_ONLY&&kt.strategy!=o.Z_RLE&&kt.strategy!=o.Z_FIXED&&kt.strategy!=o.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+kt.strategy);if(kt.dictionary&&!nt.isBuffer(kt.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._handle=new it.Zlib(Nt);var Jt=this;this._hadError=!1,this._handle.onerror=function(Pt,zt){xt(Jt),Jt._hadError=!0;var en=new Error(Pt);en.errno=zt,en.code=o.codes[zt],Jt.emit("error",en)};var Dt=o.Z_DEFAULT_COMPRESSION;typeof kt.level=="number"&&(Dt=kt.level);var Et=o.Z_DEFAULT_STRATEGY;typeof kt.strategy=="number"&&(Et=kt.strategy),this._handle.init(kt.windowBits||o.Z_DEFAULT_WINDOWBITS,Dt,kt.memLevel||o.Z_DEFAULT_MEMLEVEL,Et,kt.dictionary),this._buffer=nt.allocUnsafe(this._chunkSize),this._offset=0,this._level=Dt,this._strategy=Et,this.once("end",this.close),Object.defineProperty(this,"_closed",{get:function(){return!Ot._handle},configurable:!0,enumerable:!0})}function xt(kt,Nt){Nt&&tt.nextTick(Nt),kt._handle&&(kt._handle.close(),kt._handle=null)}function Ct(kt){kt.emit("close")}Object.defineProperty(o,"codes",{enumerable:!0,value:Object.freeze(ct),writable:!1}),o.Deflate=Ft,o.Inflate=mt,o.Gzip=vt,o.Gunzip=At,o.DeflateRaw=Lt,o.InflateRaw=Rt,o.Unzip=St,o.createDeflate=function(kt){return new Ft(kt)},o.createInflate=function(kt){return new mt(kt)},o.createDeflateRaw=function(kt){return new Lt(kt)},o.createInflateRaw=function(kt){return new Rt(kt)},o.createGzip=function(kt){return new vt(kt)},o.createGunzip=function(kt){return new At(kt)},o.createUnzip=function(kt){return new St(kt)},o.deflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Ft(Nt),kt,Ot)},o.deflateSync=function(kt,Nt){return Ut(new Ft(Nt),kt)},o.gzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new vt(Nt),kt,Ot)},o.gzipSync=function(kt,Nt){return Ut(new vt(Nt),kt)},o.deflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Lt(Nt),kt,Ot)},o.deflateRawSync=function(kt,Nt){return Ut(new Lt(Nt),kt)},o.unzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new St(Nt),kt,Ot)},o.unzipSync=function(kt,Nt){return Ut(new St(Nt),kt)},o.inflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new mt(Nt),kt,Ot)},o.inflateSync=function(kt,Nt){return Ut(new mt(Nt),kt)},o.gunzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new At(Nt),kt,Ot)},o.gunzipSync=function(kt,Nt){return Ut(new At(Nt),kt)},o.inflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Rt(Nt),kt,Ot)},o.inflateRawSync=function(kt,Nt){return Ut(new Rt(Nt),kt)},ot.inherits(Bt,rt),Bt.prototype.params=function(kt,Nt,Ot){if(kto.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+kt);if(Nt!=o.Z_FILTERED&&Nt!=o.Z_HUFFMAN_ONLY&&Nt!=o.Z_RLE&&Nt!=o.Z_FIXED&&Nt!=o.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+Nt);if(this._level!==kt||this._strategy!==Nt){var Jt=this;this.flush(it.Z_SYNC_FLUSH,function(){st(Jt._handle,"zlib binding closed"),Jt._handle.params(kt,Nt),Jt._hadError||(Jt._level=kt,Jt._strategy=Nt,Ot&&Ot())})}else tt.nextTick(Ot)},Bt.prototype.reset=function(){return st(this._handle,"zlib binding closed"),this._handle.reset()},Bt.prototype._flush=function(kt){this._transform(nt.alloc(0),"",kt)},Bt.prototype.flush=function(kt,Nt){var Ot=this,Jt=this._writableState;(typeof kt=="function"||kt===void 0&&!Nt)&&(Nt=kt,kt=it.Z_FULL_FLUSH),Jt.ended?Nt&&tt.nextTick(Nt):Jt.ending?Nt&&this.once("end",Nt):Jt.needDrain?Nt&&this.once("drain",function(){return Ot.flush(kt,Nt)}):(this._flushFlag=kt,this.write(nt.alloc(0),"",Nt))},Bt.prototype.close=function(kt){xt(this,kt),tt.nextTick(Ct,this)},Bt.prototype._transform=function(kt,Nt,Ot){var Jt,Dt=this._writableState,Et=(Dt.ending||Dt.ended)&&(!kt||Dt.length===kt.length);return kt===null||nt.isBuffer(kt)?this._handle?(Et?Jt=this._finishFlushFlag:(Jt=this._flushFlag,kt.length>=Dt.length&&(this._flushFlag=this._opts.flush||it.Z_NO_FLUSH)),void this._processChunk(kt,Jt,Ot)):Ot(new Error("zlib binding closed")):Ot(new Error("invalid input"))},Bt.prototype._processChunk=function(kt,Nt,Ot){var Jt=kt&&kt.length,Dt=this._chunkSize-this._offset,Et=0,Pt=this,zt=typeof Ot=="function";if(!zt){var en,Kt=[],nn=0;this.on("error",function($t){en=$t}),st(this._handle,"zlib binding closed");do var Zt=this._handle.writeSync(Nt,kt,Et,Jt,this._buffer,this._offset,Dt);while(!this._hadError&&It(Zt[0],Zt[1]));if(this._hadError)throw en;if(nn>=at)throw xt(this),new RangeError(lt);var jt=nt.concat(Kt,nn);return xt(this),jt}st(this._handle,"zlib binding closed");var Vt=this._handle.write(Nt,kt,Et,Jt,this._buffer,this._offset,Dt);function It($t,Ht){if(this&&(this.buffer=null,this.callback=null),!Pt._hadError){var qt=Dt-Ht;if(st(qt>=0,"have should not go down"),qt>0){var on=Pt._buffer.slice(Pt._offset,Pt._offset+qt);Pt._offset+=qt,zt?Pt.push(on):(Kt.push(on),nn+=on.length)}if((Ht===0||Pt._offset>=Pt._chunkSize)&&(Dt=Pt._chunkSize,Pt._offset=0,Pt._buffer=nt.allocUnsafe(Pt._chunkSize)),Ht===0){if(Et+=Jt-$t,Jt=$t,!zt)return!0;var Xt=Pt._handle.write(Nt,kt,Et,Jt,Pt._buffer,Pt._offset,Pt._chunkSize);return Xt.callback=It,void(Xt.buffer=kt)}if(!zt)return!1;Ot()}}Vt.buffer=kt,Vt.callback=It},ot.inherits(Ft,Bt),ot.inherits(mt,Bt),ot.inherits(vt,Bt),ot.inherits(At,Bt),ot.inherits(Lt,Bt),ot.inherits(Rt,Bt),ot.inherits(St,Bt)}).call(this,et(2))},function(s,o,et){s.exports=nt;var tt=et(21).EventEmitter;function nt(){tt.call(this)}et(7)(nt,tt),nt.Readable=et(31),nt.Writable=et(73),nt.Duplex=et(166),nt.Transform=et(167),nt.PassThrough=et(168),nt.Stream=nt,nt.prototype.pipe=function(rt,it){var ot=this;function st(pt){rt.writable&&rt.write(pt)===!1&&ot.pause&&ot.pause()}function at(){ot.readable&&ot.resume&&ot.resume()}ot.on("data",st),rt.on("drain",at),rt._isStdio||it&&it.end===!1||(ot.on("end",ut),ot.on("close",dt));var lt=!1;function ut(){lt||(lt=!0,rt.end())}function dt(){lt||(lt=!0,typeof rt.destroy=="function"&&rt.destroy())}function ht(pt){if(ct(),tt.listenerCount(this,"error")===0)throw pt}function ct(){ot.removeListener("data",st),rt.removeListener("drain",at),ot.removeListener("end",ut),ot.removeListener("close",dt),ot.removeListener("error",ht),rt.removeListener("error",ht),ot.removeListener("end",ct),ot.removeListener("close",ct),rt.removeListener("close",ct)}return ot.on("error",ht),rt.on("error",ht),ot.on("end",ct),ot.on("close",ct),rt.on("close",ct),rt.emit("pipe",ot),rt}},function(s,o){},function(s,o,et){var tt=et(47).Buffer,nt=et(164);s.exports=function(){function rt(){(function(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")})(this,rt),this.head=null,this.tail=null,this.length=0}return rt.prototype.push=function(it){var ot={data:it,next:null};this.length>0?this.tail.next=ot:this.head=ot,this.tail=ot,++this.length},rt.prototype.unshift=function(it){var ot={data:it,next:this.head};this.length===0&&(this.tail=ot),this.head=ot,++this.length},rt.prototype.shift=function(){if(this.length!==0){var it=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,it}},rt.prototype.clear=function(){this.head=this.tail=null,this.length=0},rt.prototype.join=function(it){if(this.length===0)return"";for(var ot=this.head,st=""+ot.data;ot=ot.next;)st+=it+ot.data;return st},rt.prototype.concat=function(it){if(this.length===0)return tt.alloc(0);if(this.length===1)return this.head.data;for(var ot,st,at,lt=tt.allocUnsafe(it>>>0),ut=this.head,dt=0;ut;)ot=ut.data,st=lt,at=dt,ot.copy(st,at),dt+=ut.data.length,ut=ut.next;return lt},rt}(),nt&&nt.inspect&&nt.inspect.custom&&(s.exports.prototype[nt.inspect.custom]=function(){var rt=nt.inspect({length:this.length});return this.constructor.name+" "+rt})},function(s,o){},function(s,o,et){s.exports=rt;var tt=et(72),nt=et(17);function rt(it){if(!(this instanceof rt))return new rt(it);tt.call(this,it)}nt.inherits=et(7),nt.inherits(rt,tt),rt.prototype._transform=function(it,ot,st){st(null,it)}},function(s,o,et){s.exports=et(23)},function(s,o,et){s.exports=et(31).Transform},function(s,o,et){s.exports=et(31).PassThrough},function(s,o,et){(function(tt,nt){var rt=et(74),it=et(171),ot=et(172),st=et(175),at=et(178);for(var lt in at)o[lt]=at[lt];o.NONE=0,o.DEFLATE=1,o.INFLATE=2,o.GZIP=3,o.GUNZIP=4,o.DEFLATERAW=5,o.INFLATERAW=6,o.UNZIP=7;function ut(dt){if(typeof dt!="number"||dto.UNZIP)throw new TypeError("Bad argument");this.dictionary=null,this.err=0,this.flush=0,this.init_done=!1,this.level=0,this.memLevel=0,this.mode=dt,this.strategy=0,this.windowBits=0,this.write_in_progress=!1,this.pending_close=!1,this.gzip_id_bytes_read=0}ut.prototype.close=function(){this.write_in_progress?this.pending_close=!0:(this.pending_close=!1,rt(this.init_done,"close before init"),rt(this.mode<=o.UNZIP),this.mode===o.DEFLATE||this.mode===o.GZIP||this.mode===o.DEFLATERAW?ot.deflateEnd(this.strm):this.mode!==o.INFLATE&&this.mode!==o.GUNZIP&&this.mode!==o.INFLATERAW&&this.mode!==o.UNZIP||st.inflateEnd(this.strm),this.mode=o.NONE,this.dictionary=null)},ut.prototype.write=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!0,dt,ht,ct,pt,ft,gt,yt)},ut.prototype.writeSync=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!1,dt,ht,ct,pt,ft,gt,yt)},ut.prototype._write=function(dt,ht,ct,pt,ft,gt,yt,Ut){if(rt.equal(arguments.length,8),rt(this.init_done,"write before init"),rt(this.mode!==o.NONE,"already finalized"),rt.equal(!1,this.write_in_progress,"write already in progress"),rt.equal(!1,this.pending_close,"close is pending"),this.write_in_progress=!0,rt.equal(!1,ht===void 0,"must provide flush value"),this.write_in_progress=!0,ht!==o.Z_NO_FLUSH&&ht!==o.Z_PARTIAL_FLUSH&&ht!==o.Z_SYNC_FLUSH&&ht!==o.Z_FULL_FLUSH&&ht!==o.Z_FINISH&&ht!==o.Z_BLOCK)throw new Error("Invalid flush value");if(ct==null&&(ct=tt.alloc(0),ft=0,pt=0),this.strm.avail_in=ft,this.strm.input=ct,this.strm.next_in=pt,this.strm.avail_out=Ut,this.strm.output=gt,this.strm.next_out=yt,this.flush=ht,!dt)return this._process(),this._checkError()?this._afterSync():void 0;var Ft=this;return nt.nextTick(function(){Ft._process(),Ft._after()}),this},ut.prototype._afterSync=function(){var dt=this.strm.avail_out,ht=this.strm.avail_in;return this.write_in_progress=!1,[ht,dt]},ut.prototype._process=function(){var dt=null;switch(this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflate(this.strm,this.flush);break;case o.UNZIP:switch(this.strm.avail_in>0&&(dt=this.strm.next_in),this.gzip_id_bytes_read){case 0:if(dt===null)break;if(this.strm.input[dt]!==31){this.mode=o.INFLATE;break}if(this.gzip_id_bytes_read=1,dt++,this.strm.avail_in===1)break;case 1:if(dt===null)break;this.strm.input[dt]===139?(this.gzip_id_bytes_read=2,this.mode=o.GUNZIP):this.mode=o.INFLATE;break;default:throw new Error("invalid number of gzip magic number bytes read")}case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:for(this.err=st.inflate(this.strm,this.flush),this.err===o.Z_NEED_DICT&&this.dictionary&&(this.err=st.inflateSetDictionary(this.strm,this.dictionary),this.err===o.Z_OK?this.err=st.inflate(this.strm,this.flush):this.err===o.Z_DATA_ERROR&&(this.err=o.Z_NEED_DICT));this.strm.avail_in>0&&this.mode===o.GUNZIP&&this.err===o.Z_STREAM_END&&this.strm.next_in[0]!==0;)this.reset(),this.err=st.inflate(this.strm,this.flush);break;default:throw new Error("Unknown mode "+this.mode)}},ut.prototype._checkError=function(){switch(this.err){case o.Z_OK:case o.Z_BUF_ERROR:if(this.strm.avail_out!==0&&this.flush===o.Z_FINISH)return this._error("unexpected end of file"),!1;break;case o.Z_STREAM_END:break;case o.Z_NEED_DICT:return this.dictionary==null?this._error("Missing dictionary"):this._error("Bad dictionary"),!1;default:return this._error("Zlib error"),!1}return!0},ut.prototype._after=function(){if(this._checkError()){var dt=this.strm.avail_out,ht=this.strm.avail_in;this.write_in_progress=!1,this.callback(ht,dt),this.pending_close&&this.close()}},ut.prototype._error=function(dt){this.strm.msg&&(dt=this.strm.msg),this.onerror(dt,this.err),this.write_in_progress=!1,this.pending_close&&this.close()},ut.prototype.init=function(dt,ht,ct,pt,ft){rt(arguments.length===4||arguments.length===5,"init(windowBits, level, memLevel, strategy, [dictionary])"),rt(dt>=8&&dt<=15,"invalid windowBits"),rt(ht>=-1&&ht<=9,"invalid compression level"),rt(ct>=1&&ct<=9,"invalid memlevel"),rt(pt===o.Z_FILTERED||pt===o.Z_HUFFMAN_ONLY||pt===o.Z_RLE||pt===o.Z_FIXED||pt===o.Z_DEFAULT_STRATEGY,"invalid strategy"),this._init(ht,dt,ct,pt,ft),this._setDictionary()},ut.prototype.params=function(){throw new Error("deflateParams Not supported")},ut.prototype.reset=function(){this._reset(),this._setDictionary()},ut.prototype._init=function(dt,ht,ct,pt,ft){switch(this.level=dt,this.windowBits=ht,this.memLevel=ct,this.strategy=pt,this.flush=o.Z_NO_FLUSH,this.err=o.Z_OK,this.mode!==o.GZIP&&this.mode!==o.GUNZIP||(this.windowBits+=16),this.mode===o.UNZIP&&(this.windowBits+=32),this.mode!==o.DEFLATERAW&&this.mode!==o.INFLATERAW||(this.windowBits=-1*this.windowBits),this.strm=new it,this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflateInit2(this.strm,this.level,o.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:case o.UNZIP:this.err=st.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}this.err!==o.Z_OK&&this._error("Init error"),this.dictionary=ft,this.write_in_progress=!1,this.init_done=!0},ut.prototype._setDictionary=function(){if(this.dictionary!=null){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:this.err=ot.deflateSetDictionary(this.strm,this.dictionary)}this.err!==o.Z_OK&&this._error("Failed to set dictionary")}},ut.prototype._reset=function(){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:case o.GZIP:this.err=ot.deflateReset(this.strm);break;case o.INFLATE:case o.INFLATERAW:case o.GUNZIP:this.err=st.inflateReset(this.strm)}this.err!==o.Z_OK&&this._error("Failed to reset stream")},o.Zlib=ut}).call(this,et(5).Buffer,et(2))},function(s,o,et){var tt=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable;function it(ot){if(ot==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(ot)}s.exports=function(){try{if(!Object.assign)return!1;var ot=new String("abc");if(ot[5]="de",Object.getOwnPropertyNames(ot)[0]==="5")return!1;for(var st={},at=0;at<10;at++)st["_"+String.fromCharCode(at)]=at;if(Object.getOwnPropertyNames(st).map(function(ut){return st[ut]}).join("")!=="0123456789")return!1;var lt={};return"abcdefghijklmnopqrst".split("").forEach(function(ut){lt[ut]=ut}),Object.keys(Object.assign({},lt)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}()?Object.assign:function(ot,st){for(var at,lt,ut=it(ot),dt=1;dt4?9:0)}function ut(Rt){for(var St=Rt.length;--St>=0;)Rt[St]=0}function dt(Rt){var St=Rt.state,Tt=St.pending;Tt>Rt.avail_out&&(Tt=Rt.avail_out),Tt!==0&&(nt.arraySet(Rt.output,St.pending_buf,St.pending_out,Tt,Rt.next_out),Rt.next_out+=Tt,St.pending_out+=Tt,Rt.total_out+=Tt,Rt.avail_out-=Tt,St.pending-=Tt,St.pending===0&&(St.pending_out=0))}function ht(Rt,St){rt._tr_flush_block(Rt,Rt.block_start>=0?Rt.block_start:-1,Rt.strstart-Rt.block_start,St),Rt.block_start=Rt.strstart,dt(Rt.strm)}function ct(Rt,St){Rt.pending_buf[Rt.pending++]=St}function pt(Rt,St){Rt.pending_buf[Rt.pending++]=St>>>8&255,Rt.pending_buf[Rt.pending++]=255&St}function ft(Rt,St){var Tt,Bt,xt=Rt.max_chain_length,Ct=Rt.strstart,kt=Rt.prev_length,Nt=Rt.nice_match,Ot=Rt.strstart>Rt.w_size-262?Rt.strstart-(Rt.w_size-262):0,Jt=Rt.window,Dt=Rt.w_mask,Et=Rt.prev,Pt=Rt.strstart+258,zt=Jt[Ct+kt-1],en=Jt[Ct+kt];Rt.prev_length>=Rt.good_match&&(xt>>=2),Nt>Rt.lookahead&&(Nt=Rt.lookahead);do if(Jt[(Tt=St)+kt]===en&&Jt[Tt+kt-1]===zt&&Jt[Tt]===Jt[Ct]&&Jt[++Tt]===Jt[Ct+1]){Ct+=2,Tt++;do;while(Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Ctkt){if(Rt.match_start=St,kt=Bt,Bt>=Nt)break;zt=Jt[Ct+kt-1],en=Jt[Ct+kt]}}while((St=Et[St&Dt])>Ot&&--xt!=0);return kt<=Rt.lookahead?kt:Rt.lookahead}function gt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt,Et=Rt.w_size;do{if(xt=Rt.window_size-Rt.lookahead-Rt.strstart,Rt.strstart>=Et+(Et-262)){nt.arraySet(Rt.window,Rt.window,Et,Et,0),Rt.match_start-=Et,Rt.strstart-=Et,Rt.block_start-=Et,St=Tt=Rt.hash_size;do Bt=Rt.head[--St],Rt.head[St]=Bt>=Et?Bt-Et:0;while(--Tt);St=Tt=Et;do Bt=Rt.prev[--St],Rt.prev[St]=Bt>=Et?Bt-Et:0;while(--Tt);xt+=Et}if(Rt.strm.avail_in===0)break;if(kt=Rt.strm,Nt=Rt.window,Ot=Rt.strstart+Rt.lookahead,Jt=xt,Dt=void 0,(Dt=kt.avail_in)>Jt&&(Dt=Jt),Tt=Dt===0?0:(kt.avail_in-=Dt,nt.arraySet(Nt,kt.input,kt.next_in,Dt,Ot),kt.state.wrap===1?kt.adler=it(kt.adler,Nt,Dt,Ot):kt.state.wrap===2&&(kt.adler=ot(kt.adler,Nt,Dt,Ot)),kt.next_in+=Dt,kt.total_in+=Dt,Dt),Rt.lookahead+=Tt,Rt.lookahead+Rt.insert>=3)for(Ct=Rt.strstart-Rt.insert,Rt.ins_h=Rt.window[Ct],Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<=3)if(Bt=rt._tr_tally(Rt,Rt.strstart-Rt.match_start,Rt.match_length-3),Rt.lookahead-=Rt.match_length,Rt.match_length<=Rt.max_lazy_match&&Rt.lookahead>=3){Rt.match_length--;do Rt.strstart++,Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<4096)&&(Rt.match_length=2)),Rt.prev_length>=3&&Rt.match_length<=Rt.prev_length){xt=Rt.strstart+Rt.lookahead-3,Bt=rt._tr_tally(Rt,Rt.strstart-1-Rt.prev_match,Rt.prev_length-3),Rt.lookahead-=Rt.prev_length-1,Rt.prev_length-=2;do++Rt.strstart<=xt&&(Rt.ins_h=(Rt.ins_h<15&&(kt=2,Bt-=16),xt<1||xt>9||Tt!==8||Bt<8||Bt>15||St<0||St>9||Ct<0||Ct>4)return at(Rt,-2);Bt===8&&(Bt=9);var Nt=new mt;return Rt.state=Nt,Nt.strm=Rt,Nt.wrap=kt,Nt.gzhead=null,Nt.w_bits=Bt,Nt.w_size=1<Rt.pending_buf_size-5&&(Tt=Rt.pending_buf_size-5);;){if(Rt.lookahead<=1){if(gt(Rt),Rt.lookahead===0&&St===0)return 1;if(Rt.lookahead===0)break}Rt.strstart+=Rt.lookahead,Rt.lookahead=0;var Bt=Rt.block_start+Tt;if((Rt.strstart===0||Rt.strstart>=Bt)&&(Rt.lookahead=Rt.strstart-Bt,Rt.strstart=Bt,ht(Rt,!1),Rt.strm.avail_out===0)||Rt.strstart-Rt.block_start>=Rt.w_size-262&&(ht(Rt,!1),Rt.strm.avail_out===0))return 1}return Rt.insert=0,St===4?(ht(Rt,!0),Rt.strm.avail_out===0?3:4):(Rt.strstart>Rt.block_start&&(ht(Rt,!1),Rt.strm.avail_out),1)}),new Ft(4,4,8,4,yt),new Ft(4,5,16,8,yt),new Ft(4,6,32,32,yt),new Ft(4,4,16,16,Ut),new Ft(8,16,32,32,Ut),new Ft(8,16,128,128,Ut),new Ft(8,32,128,256,Ut),new Ft(32,128,258,1024,Ut),new Ft(32,258,258,4096,Ut)],o.deflateInit=function(Rt,St){return Lt(Rt,St,8,15,8,0)},o.deflateInit2=Lt,o.deflateReset=At,o.deflateResetKeep=vt,o.deflateSetHeader=function(Rt,St){return Rt&&Rt.state?Rt.state.wrap!==2?-2:(Rt.state.gzhead=St,0):-2},o.deflate=function(Rt,St){var Tt,Bt,xt,Ct;if(!Rt||!Rt.state||St>5||St<0)return Rt?at(Rt,-2):-2;if(Bt=Rt.state,!Rt.output||!Rt.input&&Rt.avail_in!==0||Bt.status===666&&St!==4)return at(Rt,Rt.avail_out===0?-5:-2);if(Bt.strm=Rt,Tt=Bt.last_flush,Bt.last_flush=St,Bt.status===42)if(Bt.wrap===2)Rt.adler=0,ct(Bt,31),ct(Bt,139),ct(Bt,8),Bt.gzhead?(ct(Bt,(Bt.gzhead.text?1:0)+(Bt.gzhead.hcrc?2:0)+(Bt.gzhead.extra?4:0)+(Bt.gzhead.name?8:0)+(Bt.gzhead.comment?16:0)),ct(Bt,255&Bt.gzhead.time),ct(Bt,Bt.gzhead.time>>8&255),ct(Bt,Bt.gzhead.time>>16&255),ct(Bt,Bt.gzhead.time>>24&255),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,255&Bt.gzhead.os),Bt.gzhead.extra&&Bt.gzhead.extra.length&&(ct(Bt,255&Bt.gzhead.extra.length),ct(Bt,Bt.gzhead.extra.length>>8&255)),Bt.gzhead.hcrc&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending,0)),Bt.gzindex=0,Bt.status=69):(ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,3),Bt.status=113);else{var kt=8+(Bt.w_bits-8<<4)<<8;kt|=(Bt.strategy>=2||Bt.level<2?0:Bt.level<6?1:Bt.level===6?2:3)<<6,Bt.strstart!==0&&(kt|=32),kt+=31-kt%31,Bt.status=113,pt(Bt,kt),Bt.strstart!==0&&(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),Rt.adler=1}if(Bt.status===69)if(Bt.gzhead.extra){for(xt=Bt.pending;Bt.gzindex<(65535&Bt.gzhead.extra.length)&&(Bt.pending!==Bt.pending_buf_size||(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending!==Bt.pending_buf_size));)ct(Bt,255&Bt.gzhead.extra[Bt.gzindex]),Bt.gzindex++;Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Bt.gzindex===Bt.gzhead.extra.length&&(Bt.gzindex=0,Bt.status=73)}else Bt.status=73;if(Bt.status===73)if(Bt.gzhead.name){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.gzindex=0,Bt.status=91)}else Bt.status=91;if(Bt.status===91)if(Bt.gzhead.comment){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.status=103)}else Bt.status=103;if(Bt.status===103&&(Bt.gzhead.hcrc?(Bt.pending+2>Bt.pending_buf_size&&dt(Rt),Bt.pending+2<=Bt.pending_buf_size&&(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),Rt.adler=0,Bt.status=113)):Bt.status=113),Bt.pending!==0){if(dt(Rt),Rt.avail_out===0)return Bt.last_flush=-1,0}else if(Rt.avail_in===0&<(St)<=lt(Tt)&&St!==4)return at(Rt,-5);if(Bt.status===666&&Rt.avail_in!==0)return at(Rt,-5);if(Rt.avail_in!==0||Bt.lookahead!==0||St!==0&&Bt.status!==666){var Nt=Bt.strategy===2?function(Ot,Jt){for(var Dt;;){if(Ot.lookahead===0&&(gt(Ot),Ot.lookahead===0)){if(Jt===0)return 1;break}if(Ot.match_length=0,Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++,Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Jt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):Bt.strategy===3?function(Ot,Jt){for(var Dt,Et,Pt,zt,en=Ot.window;;){if(Ot.lookahead<=258){if(gt(Ot),Ot.lookahead<=258&&Jt===0)return 1;if(Ot.lookahead===0)break}if(Ot.match_length=0,Ot.lookahead>=3&&Ot.strstart>0&&(Et=en[Pt=Ot.strstart-1])===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]){zt=Ot.strstart+258;do;while(Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&PtOt.lookahead&&(Ot.match_length=Ot.lookahead)}if(Ot.match_length>=3?(Dt=rt._tr_tally(Ot,1,Ot.match_length-3),Ot.lookahead-=Ot.match_length,Ot.strstart+=Ot.match_length,Ot.match_length=0):(Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++),Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Jt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):tt[Bt.level].func(Bt,St);if(Nt!==3&&Nt!==4||(Bt.status=666),Nt===1||Nt===3)return Rt.avail_out===0&&(Bt.last_flush=-1),0;if(Nt===2&&(St===1?rt._tr_align(Bt):St!==5&&(rt._tr_stored_block(Bt,0,0,!1),St===3&&(ut(Bt.head),Bt.lookahead===0&&(Bt.strstart=0,Bt.block_start=0,Bt.insert=0))),dt(Rt),Rt.avail_out===0))return Bt.last_flush=-1,0}return St!==4?0:Bt.wrap<=0?1:(Bt.wrap===2?(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),ct(Bt,Rt.adler>>16&255),ct(Bt,Rt.adler>>24&255),ct(Bt,255&Rt.total_in),ct(Bt,Rt.total_in>>8&255),ct(Bt,Rt.total_in>>16&255),ct(Bt,Rt.total_in>>24&255)):(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),dt(Rt),Bt.wrap>0&&(Bt.wrap=-Bt.wrap),Bt.pending!==0?0:1)},o.deflateEnd=function(Rt){var St;return Rt&&Rt.state?(St=Rt.state.status)!==42&&St!==69&&St!==73&&St!==91&&St!==103&&St!==113&&St!==666?at(Rt,-2):(Rt.state=null,St===113?at(Rt,-3):0):-2},o.deflateSetDictionary=function(Rt,St){var Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt=St.length;if(!Rt||!Rt.state||(Ct=(Tt=Rt.state).wrap)===2||Ct===1&&Tt.status!==42||Tt.lookahead)return-2;for(Ct===1&&(Rt.adler=it(Rt.adler,St,Dt,0)),Tt.wrap=0,Dt>=Tt.w_size&&(Ct===0&&(ut(Tt.head),Tt.strstart=0,Tt.block_start=0,Tt.insert=0),Jt=new nt.Buf8(Tt.w_size),nt.arraySet(Jt,St,Dt-Tt.w_size,Tt.w_size,0),St=Jt,Dt=Tt.w_size),kt=Rt.avail_in,Nt=Rt.next_in,Ot=Rt.input,Rt.avail_in=Dt,Rt.next_in=0,Rt.input=St,gt(Tt);Tt.lookahead>=3;){Bt=Tt.strstart,xt=Tt.lookahead-2;do Tt.ins_h=(Tt.ins_h<=0;)Et[Pt]=0}var rt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],it=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ot=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],st=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],at=new Array(576);nt(at);var lt=new Array(60);nt(lt);var ut=new Array(512);nt(ut);var dt=new Array(256);nt(dt);var ht=new Array(29);nt(ht);var ct,pt,ft,gt=new Array(30);function yt(Et,Pt,zt,en,Kt){this.static_tree=Et,this.extra_bits=Pt,this.extra_base=zt,this.elems=en,this.max_length=Kt,this.has_stree=Et&&Et.length}function Ut(Et,Pt){this.dyn_tree=Et,this.max_code=0,this.stat_desc=Pt}function Ft(Et){return Et<256?ut[Et]:ut[256+(Et>>>7)]}function mt(Et,Pt){Et.pending_buf[Et.pending++]=255&Pt,Et.pending_buf[Et.pending++]=Pt>>>8&255}function vt(Et,Pt,zt){Et.bi_valid>16-zt?(Et.bi_buf|=Pt<>16-Et.bi_valid,Et.bi_valid+=zt-16):(Et.bi_buf|=Pt<>>=1,zt<<=1;while(--Pt>0);return zt>>>1}function Rt(Et,Pt,zt){var en,Kt,nn=new Array(16),Zt=0;for(en=1;en<=15;en++)nn[en]=Zt=Zt+zt[en-1]<<1;for(Kt=0;Kt<=Pt;Kt++){var jt=Et[2*Kt+1];jt!==0&&(Et[2*Kt]=Lt(nn[jt]++,jt))}}function St(Et){var Pt;for(Pt=0;Pt<286;Pt++)Et.dyn_ltree[2*Pt]=0;for(Pt=0;Pt<30;Pt++)Et.dyn_dtree[2*Pt]=0;for(Pt=0;Pt<19;Pt++)Et.bl_tree[2*Pt]=0;Et.dyn_ltree[512]=1,Et.opt_len=Et.static_len=0,Et.last_lit=Et.matches=0}function Tt(Et){Et.bi_valid>8?mt(Et,Et.bi_buf):Et.bi_valid>0&&(Et.pending_buf[Et.pending++]=Et.bi_buf),Et.bi_buf=0,Et.bi_valid=0}function Bt(Et,Pt,zt,en){var Kt=2*Pt,nn=2*zt;return Et[Kt]>1;zt>=1;zt--)xt(Et,nn,zt);Kt=Vt;do zt=Et.heap[1],Et.heap[1]=Et.heap[Et.heap_len--],xt(Et,nn,1),en=Et.heap[1],Et.heap[--Et.heap_max]=zt,Et.heap[--Et.heap_max]=en,nn[2*Kt]=nn[2*zt]+nn[2*en],Et.depth[Kt]=(Et.depth[zt]>=Et.depth[en]?Et.depth[zt]:Et.depth[en])+1,nn[2*zt+1]=nn[2*en+1]=Kt,Et.heap[1]=Kt++,xt(Et,nn,1);while(Et.heap_len>=2);Et.heap[--Et.heap_max]=Et.heap[1],function($t,Ht){var qt,on,Xt,dn,_n,Fn,Un=Ht.dyn_tree,On=Ht.max_code,gn=Ht.stat_desc.static_tree,hn=Ht.stat_desc.has_stree,wn=Ht.stat_desc.extra_bits,Zn=Ht.stat_desc.extra_base,Pn=Ht.stat_desc.max_length,$n=0;for(dn=0;dn<=15;dn++)$t.bl_count[dn]=0;for(Un[2*$t.heap[$t.heap_max]+1]=0,qt=$t.heap_max+1;qt<573;qt++)(dn=Un[2*Un[2*(on=$t.heap[qt])+1]+1]+1)>Pn&&(dn=Pn,$n++),Un[2*on+1]=dn,on>On||($t.bl_count[dn]++,_n=0,on>=Zn&&(_n=wn[on-Zn]),Fn=Un[2*on],$t.opt_len+=Fn*(dn+_n),hn&&($t.static_len+=Fn*(gn[2*on+1]+_n)));if($n!==0){do{for(dn=Pn-1;$t.bl_count[dn]===0;)dn--;$t.bl_count[dn]--,$t.bl_count[dn+1]+=2,$t.bl_count[Pn]--,$n-=2}while($n>0);for(dn=Pn;dn!==0;dn--)for(on=$t.bl_count[dn];on!==0;)(Xt=$t.heap[--qt])>On||(Un[2*Xt+1]!==dn&&($t.opt_len+=(dn-Un[2*Xt+1])*Un[2*Xt],Un[2*Xt+1]=dn),on--)}}(Et,Pt),Rt(nn,It,Et.bl_count)}function Nt(Et,Pt,zt){var en,Kt,nn=-1,Zt=Pt[1],jt=0,Vt=7,It=4;for(Zt===0&&(Vt=138,It=3),Pt[2*(zt+1)+1]=65535,en=0;en<=zt;en++)Kt=Zt,Zt=Pt[2*(en+1)+1],++jt>=7;Kt<30;Kt++)for(gt[Kt]=nn<<7,Pt=0;Pt<1<0?(Et.strm.data_type===2&&(Et.strm.data_type=function(jt){var Vt,It=4093624447;for(Vt=0;Vt<=31;Vt++,It>>>=1)if(1&It&&jt.dyn_ltree[2*Vt]!==0)return 0;if(jt.dyn_ltree[18]!==0||jt.dyn_ltree[20]!==0||jt.dyn_ltree[26]!==0)return 1;for(Vt=32;Vt<256;Vt++)if(jt.dyn_ltree[2*Vt]!==0)return 1;return 0}(Et)),kt(Et,Et.l_desc),kt(Et,Et.d_desc),Zt=function(jt){var Vt;for(Nt(jt,jt.dyn_ltree,jt.l_desc.max_code),Nt(jt,jt.dyn_dtree,jt.d_desc.max_code),kt(jt,jt.bl_desc),Vt=18;Vt>=3&&jt.bl_tree[2*st[Vt]+1]===0;Vt--);return jt.opt_len+=3*(Vt+1)+5+5+4,Vt}(Et),Kt=Et.opt_len+3+7>>>3,(nn=Et.static_len+3+7>>>3)<=Kt&&(Kt=nn)):Kt=nn=zt+5,zt+4<=Kt&&Pt!==-1?Dt(Et,Pt,zt,en):Et.strategy===4||nn===Kt?(vt(Et,2+(en?1:0),3),Ct(Et,at,lt)):(vt(Et,4+(en?1:0),3),function(jt,Vt,It,$t){var Ht;for(vt(jt,Vt-257,5),vt(jt,It-1,5),vt(jt,$t-4,4),Ht=0;Ht<$t;Ht++)vt(jt,jt.bl_tree[2*st[Ht]+1],3);Ot(jt,jt.dyn_ltree,Vt-1),Ot(jt,jt.dyn_dtree,It-1)}(Et,Et.l_desc.max_code+1,Et.d_desc.max_code+1,Zt+1),Ct(Et,Et.dyn_ltree,Et.dyn_dtree)),St(Et),en&&Tt(Et)},o._tr_tally=function(Et,Pt,zt){return Et.pending_buf[Et.d_buf+2*Et.last_lit]=Pt>>>8&255,Et.pending_buf[Et.d_buf+2*Et.last_lit+1]=255&Pt,Et.pending_buf[Et.l_buf+Et.last_lit]=255&zt,Et.last_lit++,Pt===0?Et.dyn_ltree[2*zt]++:(Et.matches++,Pt--,Et.dyn_ltree[2*(dt[zt]+256+1)]++,Et.dyn_dtree[2*Ft(Pt)]++),Et.last_lit===Et.lit_bufsize-1},o._tr_align=function(Et){vt(Et,2,3),At(Et,256,at),function(Pt){Pt.bi_valid===16?(mt(Pt,Pt.bi_buf),Pt.bi_buf=0,Pt.bi_valid=0):Pt.bi_valid>=8&&(Pt.pending_buf[Pt.pending++]=255&Pt.bi_buf,Pt.bi_buf>>=8,Pt.bi_valid-=8)}(Et)}},function(s,o,et){s.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(s,o,et){var tt=et(37),nt=et(75),rt=et(76),it=et(176),ot=et(177);function st(Ut){return(Ut>>>24&255)+(Ut>>>8&65280)+((65280&Ut)<<8)+((255&Ut)<<24)}function at(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new tt.Buf16(320),this.work=new tt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function lt(Ut){var Ft;return Ut&&Ut.state?(Ft=Ut.state,Ut.total_in=Ut.total_out=Ft.total=0,Ut.msg="",Ft.wrap&&(Ut.adler=1&Ft.wrap),Ft.mode=1,Ft.last=0,Ft.havedict=0,Ft.dmax=32768,Ft.head=null,Ft.hold=0,Ft.bits=0,Ft.lencode=Ft.lendyn=new tt.Buf32(852),Ft.distcode=Ft.distdyn=new tt.Buf32(592),Ft.sane=1,Ft.back=-1,0):-2}function ut(Ut){var Ft;return Ut&&Ut.state?((Ft=Ut.state).wsize=0,Ft.whave=0,Ft.wnext=0,lt(Ut)):-2}function dt(Ut,Ft){var mt,vt;return Ut&&Ut.state?(vt=Ut.state,Ft<0?(mt=0,Ft=-Ft):(mt=1+(Ft>>4),Ft<48&&(Ft&=15)),Ft&&(Ft<8||Ft>15)?-2:(vt.window!==null&&vt.wbits!==Ft&&(vt.window=null),vt.wrap=mt,vt.wbits=Ft,ut(Ut))):-2}function ht(Ut,Ft){var mt,vt;return Ut?(vt=new at,Ut.state=vt,vt.window=null,(mt=dt(Ut,Ft))!==0&&(Ut.state=null),mt):-2}var ct,pt,ft=!0;function gt(Ut){if(ft){var Ft;for(ct=new tt.Buf32(512),pt=new tt.Buf32(32),Ft=0;Ft<144;)Ut.lens[Ft++]=8;for(;Ft<256;)Ut.lens[Ft++]=9;for(;Ft<280;)Ut.lens[Ft++]=7;for(;Ft<288;)Ut.lens[Ft++]=8;for(ot(1,Ut.lens,0,288,ct,0,Ut.work,{bits:9}),Ft=0;Ft<32;)Ut.lens[Ft++]=5;ot(2,Ut.lens,0,32,pt,0,Ut.work,{bits:5}),ft=!1}Ut.lencode=ct,Ut.lenbits=9,Ut.distcode=pt,Ut.distbits=5}function yt(Ut,Ft,mt,vt){var At,Lt=Ut.state;return Lt.window===null&&(Lt.wsize=1<=Lt.wsize?(tt.arraySet(Lt.window,Ft,mt-Lt.wsize,Lt.wsize,0),Lt.wnext=0,Lt.whave=Lt.wsize):((At=Lt.wsize-Lt.wnext)>vt&&(At=vt),tt.arraySet(Lt.window,Ft,mt-vt,At,Lt.wnext),(vt-=At)?(tt.arraySet(Lt.window,Ft,mt-vt,vt,0),Lt.wnext=vt,Lt.whave=Lt.wsize):(Lt.wnext+=At,Lt.wnext===Lt.wsize&&(Lt.wnext=0),Lt.whave>>8&255,mt.check=rt(mt.check,$t,2,0),Bt=0,xt=0,mt.mode=2;break}if(mt.flags=0,mt.head&&(mt.head.done=!1),!(1&mt.wrap)||(((255&Bt)<<8)+(Bt>>8))%31){Ut.msg="incorrect header check",mt.mode=30;break}if((15&Bt)!=8){Ut.msg="unknown compression method",mt.mode=30;break}if(xt-=4,nn=8+(15&(Bt>>>=4)),mt.wbits===0)mt.wbits=nn;else if(nn>mt.wbits){Ut.msg="invalid window size",mt.mode=30;break}mt.dmax=1<>8&1),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=3;case 3:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,$t[2]=Bt>>>16&255,$t[3]=Bt>>>24&255,mt.check=rt(mt.check,$t,4,0)),Bt=0,xt=0,mt.mode=4;case 4:for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>8),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=5;case 5:if(1024&mt.flags){for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0}else mt.head&&(mt.head.extra=null);mt.mode=6;case 6:if(1024&mt.flags&&((Nt=mt.length)>St&&(Nt=St),Nt&&(mt.head&&(nn=mt.head.extra_len-mt.length,mt.head.extra||(mt.head.extra=new Array(mt.head.extra_len)),tt.arraySet(mt.head.extra,vt,Lt,Nt,nn)),512&mt.flags&&(mt.check=rt(mt.check,vt,Nt,Lt)),St-=Nt,Lt+=Nt,mt.length-=Nt),mt.length))break e;mt.length=0,mt.mode=7;case 7:if(2048&mt.flags){if(St===0)break e;Nt=0;do nn=vt[Lt+Nt++],mt.head&&nn&&mt.length<65536&&(mt.head.name+=String.fromCharCode(nn));while(nn&&Nt>9&1,mt.head.done=!0),Ut.adler=mt.check=0,mt.mode=12;break;case 10:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=7&xt,xt-=7&xt,mt.mode=27;break}for(;xt<3;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=1)){case 0:mt.mode=14;break;case 1:if(gt(mt),mt.mode=20,Ft===6){Bt>>>=2,xt-=2;break e}break;case 2:mt.mode=17;break;case 3:Ut.msg="invalid block type",mt.mode=30}Bt>>>=2,xt-=2;break;case 14:for(Bt>>>=7&xt,xt-=7&xt;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>16^65535)){Ut.msg="invalid stored block lengths",mt.mode=30;break}if(mt.length=65535&Bt,Bt=0,xt=0,mt.mode=15,Ft===6)break e;case 15:mt.mode=16;case 16:if(Nt=mt.length){if(Nt>St&&(Nt=St),Nt>Tt&&(Nt=Tt),Nt===0)break e;tt.arraySet(At,vt,Lt,Nt,Rt),St-=Nt,Lt+=Nt,Tt-=Nt,Rt+=Nt,mt.length-=Nt;break}mt.mode=12;break;case 17:for(;xt<14;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=5,xt-=5,mt.ndist=1+(31&Bt),Bt>>>=5,xt-=5,mt.ncode=4+(15&Bt),Bt>>>=4,xt-=4,mt.nlen>286||mt.ndist>30){Ut.msg="too many length or distance symbols",mt.mode=30;break}mt.have=0,mt.mode=18;case 18:for(;mt.have>>=3,xt-=3}for(;mt.have<19;)mt.lens[Ht[mt.have++]]=0;if(mt.lencode=mt.lendyn,mt.lenbits=7,jt={bits:mt.lenbits},Zt=ot(0,mt.lens,0,19,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid code lengths set",mt.mode=30;break}mt.have=0,mt.mode=19;case 19:for(;mt.have>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=Dt,xt-=Dt,mt.lens[mt.have++]=Pt;else{if(Pt===16){for(Vt=Dt+2;xt>>=Dt,xt-=Dt,mt.have===0){Ut.msg="invalid bit length repeat",mt.mode=30;break}nn=mt.lens[mt.have-1],Nt=3+(3&Bt),Bt>>>=2,xt-=2}else if(Pt===17){for(Vt=Dt+3;xt>>=Dt)),Bt>>>=3,xt-=3}else{for(Vt=Dt+7;xt>>=Dt)),Bt>>>=7,xt-=7}if(mt.have+Nt>mt.nlen+mt.ndist){Ut.msg="invalid bit length repeat",mt.mode=30;break}for(;Nt--;)mt.lens[mt.have++]=nn}}if(mt.mode===30)break;if(mt.lens[256]===0){Ut.msg="invalid code -- missing end-of-block",mt.mode=30;break}if(mt.lenbits=9,jt={bits:mt.lenbits},Zt=ot(1,mt.lens,0,mt.nlen,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid literal/lengths set",mt.mode=30;break}if(mt.distbits=6,mt.distcode=mt.distdyn,jt={bits:mt.distbits},Zt=ot(2,mt.lens,mt.nlen,mt.ndist,mt.distcode,0,mt.work,jt),mt.distbits=jt.bits,Zt){Ut.msg="invalid distances set",mt.mode=30;break}if(mt.mode=20,Ft===6)break e;case 20:mt.mode=21;case 21:if(St>=6&&Tt>=258){Ut.next_out=Rt,Ut.avail_out=Tt,Ut.next_in=Lt,Ut.avail_in=St,mt.hold=Bt,mt.bits=xt,it(Ut,kt),Rt=Ut.next_out,At=Ut.output,Tt=Ut.avail_out,Lt=Ut.next_in,vt=Ut.input,St=Ut.avail_in,Bt=mt.hold,xt=mt.bits,mt.mode===12&&(mt.back=-1);break}for(mt.back=0;Et=(It=mt.lencode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,mt.length=Pt,Et===0){mt.mode=26;break}if(32&Et){mt.back=-1,mt.mode=12;break}if(64&Et){Ut.msg="invalid literal/length code",mt.mode=30;break}mt.extra=15&Et,mt.mode=22;case 22:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}mt.was=mt.length,mt.mode=23;case 23:for(;Et=(It=mt.distcode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,64&Et){Ut.msg="invalid distance code",mt.mode=30;break}mt.offset=Pt,mt.extra=15&Et,mt.mode=24;case 24:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}if(mt.offset>mt.dmax){Ut.msg="invalid distance too far back",mt.mode=30;break}mt.mode=25;case 25:if(Tt===0)break e;if(Nt=kt-Tt,mt.offset>Nt){if((Nt=mt.offset-Nt)>mt.whave&&mt.sane){Ut.msg="invalid distance too far back",mt.mode=30;break}Nt>mt.wnext?(Nt-=mt.wnext,Ot=mt.wsize-Nt):Ot=mt.wnext-Nt,Nt>mt.length&&(Nt=mt.length),Jt=mt.window}else Jt=At,Ot=Rt-mt.offset,Nt=mt.length;Nt>Tt&&(Nt=Tt),Tt-=Nt,mt.length-=Nt;do At[Rt++]=Jt[Ot++];while(--Nt);mt.length===0&&(mt.mode=21);break;case 26:if(Tt===0)break e;At[Rt++]=mt.length,Tt--,mt.mode=21;break;case 27:if(mt.wrap){for(;xt<32;){if(St===0)break e;St--,Bt|=vt[Lt++]<>>=At=vt>>>24,gt-=At,(At=vt>>>16&255)===0)xt[st++]=65535&vt;else{if(!(16&At)){if(!(64&At)){vt=yt[(65535&vt)+(ft&(1<>>=At,gt-=At),gt<15&&(ft+=Bt[it++]<>>=At=vt>>>24,gt-=At,!(16&(At=vt>>>16&255))){if(!(64&At)){vt=Ut[(65535&vt)+(ft&(1<ut){tt.msg="invalid distance too far back",rt.mode=30;break e}if(ft>>>=At,gt-=At,Rt>(At=st-at)){if((At=Rt-At)>ht&&rt.sane){tt.msg="invalid distance too far back",rt.mode=30;break e}if(St=0,Tt=pt,ct===0){if(St+=dt-At,At2;)xt[st++]=Tt[St++],xt[st++]=Tt[St++],xt[st++]=Tt[St++],Lt-=3;Lt&&(xt[st++]=Tt[St++],Lt>1&&(xt[st++]=Tt[St++]))}else{St=st-Rt;do xt[st++]=xt[St++],xt[st++]=xt[St++],xt[st++]=xt[St++],Lt-=3;while(Lt>2);Lt&&(xt[st++]=xt[St++],Lt>1&&(xt[st++]=xt[St++]))}break}}break}}while(it>3,ft&=(1<<(gt-=Lt<<3))-1,tt.next_in=it,tt.next_out=st,tt.avail_in=it=1&&zt[xt]===0;xt--);if(Ct>xt&&(Ct=xt),xt===0)return dt[ht++]=20971520,dt[ht++]=20971520,pt.bits=1,0;for(Bt=1;Bt0&&(st===0||xt!==1))return-1;for(en[1]=0,St=1;St<15;St++)en[St+1]=en[St]+zt[St];for(Tt=0;Tt852||st===2&&Jt>592)return 1;for(;;){vt=St-Nt,ct[Tt]mt?(At=Kt[nn+ct[Tt]],Lt=Et[Pt+ct[Tt]]):(At=96,Lt=0),ft=1<>Nt)+(gt-=ft)]=vt<<24|At<<16|Lt|0;while(gt!==0);for(ft=1<>=1;if(ft!==0?(Dt&=ft-1,Dt+=ft):Dt=0,Tt++,--zt[St]==0){if(St===xt)break;St=at[lt+ct[Tt]]}if(St>Ct&&(Dt&Ut)!==yt){for(Nt===0&&(Nt=Ct),Ft+=Bt,Ot=1<<(kt=St-Nt);kt+Nt852||st===2&&Jt>592)return 1;dt[yt=Dt&Ut]=Ct<<24|kt<<16|Ft-ht|0}}return Dt!==0&&(dt[Ft+Dt]=St-Nt<<24|64<<16|0),pt.bits=Ct,0}},function(s,o,et){s.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(s,o){},function(s,o,et){function tt(at,lt){var ut=Object.keys(at);if(Object.getOwnPropertySymbols){var dt=Object.getOwnPropertySymbols(at);lt&&(dt=dt.filter(function(ht){return Object.getOwnPropertyDescriptor(at,ht).enumerable})),ut.push.apply(ut,dt)}return ut}function nt(at,lt,ut){return lt in at?Object.defineProperty(at,lt,{value:ut,enumerable:!0,configurable:!0,writable:!0}):at[lt]=ut,at}function rt(at,lt){for(var ut=0;ut0?this.tail.next=ht:this.head=ht,this.tail=ht,++this.length}},{key:"unshift",value:function(dt){var ht={data:dt,next:this.head};this.length===0&&(this.tail=ht),this.head=ht,++this.length}},{key:"shift",value:function(){if(this.length!==0){var dt=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,dt}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(dt){if(this.length===0)return"";for(var ht=this.head,ct=""+ht.data;ht=ht.next;)ct+=dt+ht.data;return ct}},{key:"concat",value:function(dt){if(this.length===0)return it.alloc(0);for(var ht,ct,pt,ft=it.allocUnsafe(dt>>>0),gt=this.head,yt=0;gt;)ht=gt.data,ct=ft,pt=yt,it.prototype.copy.call(ht,ct,pt),yt+=gt.data.length,gt=gt.next;return ft}},{key:"consume",value:function(dt,ht){var ct;return dtft.length?ft.length:dt;if(gt===ft.length?pt+=ft:pt+=ft.slice(0,dt),(dt-=gt)==0){gt===ft.length?(++ct,ht.next?this.head=ht.next:this.head=this.tail=null):(this.head=ht,ht.data=ft.slice(gt));break}++ct}return this.length-=ct,pt}},{key:"_getBuffer",value:function(dt){var ht=it.allocUnsafe(dt),ct=this.head,pt=1;for(ct.data.copy(ht),dt-=ct.data.length;ct=ct.next;){var ft=ct.data,gt=dt>ft.length?ft.length:dt;if(ft.copy(ht,ht.length-dt,0,gt),(dt-=gt)==0){gt===ft.length?(++pt,ct.next?this.head=ct.next:this.head=this.tail=null):(this.head=ct,ct.data=ft.slice(gt));break}++pt}return this.length-=pt,ht}},{key:st,value:function(dt,ht){return ot(this,function(ct){for(var pt=1;pt0,function(mt){pt||(pt=mt),mt&>.forEach(at),Ft||(gt.forEach(at),ft(pt))})});return ht.reduce(lt)}},function(s,o,et){var tt=et(187)(function nt(rt,it){return(it=it||{}).namespace=rt,it.prod=!0,it.dev=!1,it.force||nt.force?nt.yep(it):nt.nope(it)});s.exports=tt},function(s,o){var et=[],tt=[],nt=function(){};function rt(ct){return!~et.indexOf(ct)&&(et.push(ct),!0)}function it(ct){nt=ct}function ot(ct){for(var pt=[],ft=0;ftst.start)&&(at?at(null,ht):dt.emit("line",ht)),pt++,ht=""),setTimeout(yt,1e3);var mt=ut.write(lt.slice(0,Ft));at||dt.emit("data",mt);for(var vt=(mt=(ht+mt).split(/\n+/)).length-1,At=0;Atst.start)&&(at?at(null,mt[At]):dt.emit("line",mt[At])),pt++;return ht=mt[vt],ct+=Ft,yt()});nt.close(gt,ot)})()}),at?dt.destroy:dt}}).call(this,et(5).Buffer)},function(s,o,et){(function(tt,nt){function rt(Ut){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Ft){return typeof Ft}:function(Ft){return Ft&&typeof Symbol=="function"&&Ft.constructor===Symbol&&Ft!==Symbol.prototype?"symbol":typeof Ft})(Ut)}function it(Ut,Ft){var mt=Object.keys(Ut);if(Object.getOwnPropertySymbols){var vt=Object.getOwnPropertySymbols(Ut);Ft&&(vt=vt.filter(function(At){return Object.getOwnPropertyDescriptor(Ut,At).enumerable})),mt.push.apply(mt,vt)}return mt}function ot(Ut){for(var Ft=1;Ft"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var mt,vt=ct(Ut);if(Ft){var At=ct(this).constructor;mt=Reflect.construct(vt,arguments,At)}else mt=vt.apply(this,arguments);return ht(this,mt)}}function ht(Ut,Ft){return!Ft||rt(Ft)!=="object"&&typeof Ft!="function"?function(mt){if(mt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return mt}(Ut):Ft}function ct(Ut){return(ct=Object.setPrototypeOf?Object.getPrototypeOf:function(Ft){return Ft.__proto__||Object.getPrototypeOf(Ft)})(Ut)}var pt=et(83),ft=et(200),gt=et(32).Stream,yt=et(20);s.exports=function(Ut){(function(Lt,Rt){if(typeof Rt!="function"&&Rt!==null)throw new TypeError("Super expression must either be null or a function");Lt.prototype=Object.create(Rt&&Rt.prototype,{constructor:{value:Lt,writable:!0,configurable:!0}}),Rt&&ut(Lt,Rt)})(At,Ut);var Ft,mt,vt=dt(At);function At(){var Lt,Rt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return at(this,At),(Lt=vt.call(this,Rt)).options=Rt,Lt.name=Rt.name||"http",Lt.ssl=!!Rt.ssl,Lt.host=Rt.host||"localhost",Lt.port=Rt.port,Lt.auth=Rt.auth,Lt.path=Rt.path||"",Lt.agent=Rt.agent,Lt.headers=Rt.headers||{},Lt.headers["content-type"]="application/json",Lt.port||(Lt.port=Lt.ssl?443:80),Lt}return Ft=At,(mt=[{key:"log",value:function(Lt,Rt){var St=this;this._request(Lt,function(Tt,Bt){Bt&&Bt.statusCode!==200&&(Tt=new Error("Invalid HTTP Status Code: ".concat(Bt.statusCode))),Tt?St.emit("warn",Tt):St.emit("logged",Lt)}),Rt&&tt(Rt)}},{key:"query",value:function(Lt,Rt){typeof Lt=="function"&&(Rt=Lt,Lt={}),(Lt={method:"query",params:this.normalizeQuery(Lt)}).params.path&&(Lt.path=Lt.params.path,delete Lt.params.path),Lt.params.auth&&(Lt.auth=Lt.params.auth,delete Lt.params.auth),this._request(Lt,function(St,Tt,Bt){if(Tt&&Tt.statusCode!==200&&(St=new Error("Invalid HTTP Status Code: ".concat(Tt.statusCode))),St)return Rt(St);if(typeof Bt=="string")try{Bt=JSON.parse(Bt)}catch(xt){return Rt(xt)}Rt(null,Bt)})}},{key:"stream",value:function(){var Lt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Rt=new gt;(Lt={method:"stream",params:Lt}).params.path&&(Lt.path=Lt.params.path,delete Lt.params.path),Lt.params.auth&&(Lt.auth=Lt.params.auth,delete Lt.params.auth);var St="",Tt=this._request(Lt);return Rt.destroy=function(){return Tt.destroy()},Tt.on("data",function(Bt){for(var xt=(Bt=(St+Bt).split(/\n+/)).length-1,Ct=0;Ct= 0x80 (not a basic code point)","invalid-input":"Invalid input"},ct=Math.floor,pt=String.fromCharCode;function ft(Rt){throw new RangeError(ht[Rt])}function gt(Rt,St){for(var Tt=Rt.length,Bt=[];Tt--;)Bt[Tt]=St(Rt[Tt]);return Bt}function yt(Rt,St){var Tt=Rt.split("@"),Bt="";return Tt.length>1&&(Bt=Tt[0]+"@",Rt=Tt[1]),Bt+gt((Rt=Rt.replace(dt,".")).split("."),St).join(".")}function Ut(Rt){for(var St,Tt,Bt=[],xt=0,Ct=Rt.length;xt=55296&&St<=56319&&xt65535&&(Tt+=pt((St-=65536)>>>10&1023|55296),St=56320|1023&St),Tt+=pt(St)}).join("")}function mt(Rt,St){return Rt+22+75*(Rt<26)-((St!=0)<<5)}function vt(Rt,St,Tt){var Bt=0;for(Rt=Tt?ct(Rt/700):Rt>>1,Rt+=ct(Rt/St);Rt>455;Bt+=36)Rt=ct(Rt/35);return ct(Bt+36*Rt/(Rt+38))}function At(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt,Et,Pt=[],zt=Rt.length,en=0,Kt=128,nn=72;for((Tt=Rt.lastIndexOf("-"))<0&&(Tt=0),Bt=0;Bt=128&&ft("not-basic"),Pt.push(Rt.charCodeAt(Bt));for(xt=Tt>0?Tt+1:0;xt=zt&&ft("invalid-input"),((Ot=(Et=Rt.charCodeAt(xt++))-48<10?Et-22:Et-65<26?Et-65:Et-97<26?Et-97:36)>=36||Ot>ct((at-en)/kt))&&ft("overflow"),en+=Ot*kt,!(Ot<(Jt=Nt<=nn?1:Nt>=nn+26?26:Nt-nn));Nt+=36)kt>ct(at/(Dt=36-Jt))&&ft("overflow"),kt*=Dt;nn=vt(en-Ct,St=Pt.length+1,Ct==0),ct(en/St)>at-Kt&&ft("overflow"),Kt+=ct(en/St),en%=St,Pt.splice(en++,0,Kt)}return Ft(Pt)}function Lt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt,Et,Pt,zt,en,Kt,nn=[];for(Pt=(Rt=Ut(Rt)).length,St=128,Tt=0,Ct=72,kt=0;kt=St&&Etct((at-Tt)/(zt=Bt+1))&&ft("overflow"),Tt+=(Nt-St)*zt,St=Nt,kt=0;ktat&&ft("overflow"),Et==St){for(Ot=Tt,Jt=36;!(Ot<(Dt=Jt<=Ct?1:Jt>=Ct+26?26:Jt-Ct));Jt+=36)Kt=Ot-Dt,en=36-Dt,nn.push(pt(mt(Dt+Kt%en,0))),Ot=ct(Kt/en);nn.push(pt(mt(Ot,0))),Ct=vt(Tt,zt,Bt==xt),Tt=0,++Bt}++Tt,++St}return nn.join("")}st={version:"1.4.1",ucs2:{decode:Ut,encode:Ft},decode:At,encode:Lt,toASCII:function(Rt){return yt(Rt,function(St){return ut.test(St)?"xn--"+Lt(St):St})},toUnicode:function(Rt){return yt(Rt,function(St){return lt.test(St)?At(St.slice(4).toLowerCase()):St})}},(rt=function(){return st}.call(o,et,o,tt))===void 0||(tt.exports=rt)})()}).call(this,et(195)(s),et(6))},function(s,o){s.exports=function(et){return et.webpackPolyfill||(et.deprecate=function(){},et.paths=[],et.children||(et.children=[]),Object.defineProperty(et,"loaded",{enumerable:!0,get:function(){return et.l}}),Object.defineProperty(et,"id",{enumerable:!0,get:function(){return et.i}}),et.webpackPolyfill=1),et}},function(s,o,et){s.exports={isString:function(tt){return typeof tt=="string"},isObject:function(tt){return typeof tt=="object"&&tt!==null},isNull:function(tt){return tt===null},isNullOrUndefined:function(tt){return tt==null}}},function(s,o,et){o.decode=o.parse=et(198),o.encode=o.stringify=et(199)},function(s,o,et){function tt(rt,it){return Object.prototype.hasOwnProperty.call(rt,it)}s.exports=function(rt,it,ot,st){it=it||"&",ot=ot||"=";var at={};if(typeof rt!="string"||rt.length===0)return at;var lt=/\+/g;rt=rt.split(it);var ut=1e3;st&&typeof st.maxKeys=="number"&&(ut=st.maxKeys);var dt=rt.length;ut>0&&dt>ut&&(dt=ut);for(var ht=0;ht=0?(ct=yt.substr(0,Ut),pt=yt.substr(Ut+1)):(ct=yt,pt=""),ft=decodeURIComponent(ct),gt=decodeURIComponent(pt),tt(at,ft)?nt(at[ft])?at[ft].push(gt):at[ft]=[at[ft],gt]:at[ft]=gt}return at};var nt=Array.isArray||function(rt){return Object.prototype.toString.call(rt)==="[object Array]"}},function(s,o,et){var tt=function(ot){switch(typeof ot){case"string":return ot;case"boolean":return ot?"true":"false";case"number":return isFinite(ot)?ot:"";default:return""}};s.exports=function(ot,st,at,lt){return st=st||"&",at=at||"=",ot===null&&(ot=void 0),typeof ot=="object"?rt(it(ot),function(ut){var dt=encodeURIComponent(tt(ut))+at;return nt(ot[ut])?rt(ot[ut],function(ht){return dt+encodeURIComponent(tt(ht))}).join(st):dt+encodeURIComponent(tt(ot[ut]))}).join(st):lt?encodeURIComponent(tt(lt))+at+encodeURIComponent(tt(ot)):""};var nt=Array.isArray||function(ot){return Object.prototype.toString.call(ot)==="[object Array]"};function rt(ot,st){if(ot.map)return ot.map(st);for(var at=[],lt=0;lt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var gt,yt=lt(pt);if(ft){var Ut=lt(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return at(this,gt)}}function at(pt,ft){return!ft||nt(ft)!=="object"&&typeof ft!="function"?function(gt){if(gt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return gt}(pt):ft}function lt(pt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(ft){return ft.__proto__||Object.getPrototypeOf(ft)})(pt)}var ut=et(87),dt=et(3).MESSAGE,ht=et(18),ct=et(20);s.exports=function(pt){(function(Ft,mt){if(typeof mt!="function"&&mt!==null)throw new TypeError("Super expression must either be null or a function");Ft.prototype=Object.create(mt&&mt.prototype,{constructor:{value:Ft,writable:!0,configurable:!0}}),mt&&ot(Ft,mt)})(Ut,pt);var ft,gt,yt=st(Ut);function Ut(){var Ft,mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(rt(this,Ut),Ft=yt.call(this,mt),!mt.stream||!ut(mt.stream))throw new Error("options.stream is required.");return Ft._stream=mt.stream,Ft._stream.setMaxListeners(1/0),Ft.isObjectMode=mt.stream._writableState.objectMode,Ft.eol=mt.eol||ht.EOL,Ft}return ft=Ut,(gt=[{key:"log",value:function(Ft,mt){var vt=this;if(tt(function(){return vt.emit("logged",Ft)}),this.isObjectMode)return this._stream.write(Ft),void(mt&&mt());this._stream.write("".concat(Ft[dt]).concat(this.eol)),mt&&mt()}}])&&it(ft.prototype,gt),Ut}(ct)}).call(this,et(15).setImmediate)},function(s,o,et){(function(tt){function nt(Bt,xt,Ct){return xt in Bt?Object.defineProperty(Bt,xt,{value:Ct,enumerable:!0,configurable:!0,writable:!0}):Bt[xt]=Ct,Bt}function rt(Bt){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(xt){return typeof xt}:function(xt){return xt&&typeof Symbol=="function"&&xt.constructor===Symbol&&xt!==Symbol.prototype?"symbol":typeof xt})(Bt)}function it(Bt,xt){for(var Ct=0;Ct"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var Ct,kt=lt(Bt);if(xt){var Nt=lt(this).constructor;Ct=Reflect.construct(kt,arguments,Nt)}else Ct=kt.apply(this,arguments);return at(this,Ct)}}function at(Bt,xt){return!xt||rt(xt)!=="object"&&typeof xt!="function"?function(Ct){if(Ct===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ct}(Bt):xt}function lt(Bt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(xt){return xt.__proto__||Object.getPrototypeOf(xt)})(Bt)}var ut=et(32),dt=ut.Stream,ht=ut.Transform,ct=et(51),pt=et(3),ft=pt.LEVEL,gt=pt.SPLAT,yt=et(87),Ut=et(89),Ft=et(93),mt=et(206),vt=et(207),At=et(61).warn,Lt=et(50),Rt=/%[scdjifoO%]/g,St=function(Bt){(function(Ot,Jt){if(typeof Jt!="function"&&Jt!==null)throw new TypeError("Super expression must either be null or a function");Ot.prototype=Object.create(Jt&&Jt.prototype,{constructor:{value:Ot,writable:!0,configurable:!0}}),Jt&&ot(Ot,Jt)})(Nt,Bt);var xt,Ct,kt=st(Nt);function Nt(Ot){var Jt;return function(Dt,Et){if(!(Dt instanceof Et))throw new TypeError("Cannot call a class as a function")}(this,Nt),(Jt=kt.call(this,{objectMode:!0})).configure(Ot),Jt}return xt=Nt,(Ct=[{key:"child",value:function(Ot){var Jt=this;return Object.create(Jt,{write:{value:function(Dt){var Et=Object.assign({},Ot,Dt);Dt instanceof Error&&(Et.stack=Dt.stack,Et.message=Dt.message),Jt.write(Et)}}})}},{key:"configure",value:function(){var Ot=this,Jt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Dt=Jt.silent,Et=Jt.format,Pt=Jt.defaultMeta,zt=Jt.levels,en=Jt.level,Kt=en===void 0?"info":en,nn=Jt.exitOnError,Zt=nn===void 0||nn,jt=Jt.transports,Vt=Jt.colors,It=Jt.emitErrs,$t=Jt.formatters,Ht=Jt.padLevels,qt=Jt.rewriters,on=Jt.stripColors,Xt=Jt.exceptionHandlers,dn=Jt.rejectionHandlers;if(this.transports.length&&this.clear(),this.silent=Dt,this.format=Et||this.format||et(208)(),this.defaultMeta=Pt||null,this.levels=zt||this.levels||Lt.npm.levels,this.level=Kt,this.exceptions=new Ut(this),this.rejections=new Ft(this),this.profilers={},this.exitOnError=Zt,jt&&(jt=Array.isArray(jt)?jt:[jt]).forEach(function(_n){return Ot.add(_n)}),Vt||It||$t||Ht||qt||on)throw new Error(["{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.","Use a custom winston.format(function) instead.","See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md"].join(` +`));Xt&&this.exceptions.handle(Xt),dn&&this.rejections.handle(dn)}},{key:"isLevelEnabled",value:function(Ot){var Jt=this,Dt=Tt(this.levels,Ot);if(Dt===null)return!1;var Et=Tt(this.levels,this.level);return Et!==null&&(this.transports&&this.transports.length!==0?this.transports.findIndex(function(Pt){var zt=Tt(Jt.levels,Pt.level);return zt===null&&(zt=Et),zt>=Dt})!==-1:Et>=Dt)}},{key:"log",value:function(Ot,Jt){for(var Dt,Et,Pt=arguments.length,zt=new Array(Pt>2?Pt-2:0),en=2;en2?new mt({transport:Ot}):Ot;if(!Jt._writableState||!Jt._writableState.objectMode)throw new Error("Transports must WritableStreams in objectMode. Set { objectMode: true }.");return this._onEvent("error",Jt),this._onEvent("warn",Jt),this.pipe(Jt),Ot.handleExceptions&&this.exceptions.handle(),Ot.handleRejections&&this.rejections.handle(),this}},{key:"remove",value:function(Ot){if(!Ot)return this;var Jt=Ot;return(!yt(Ot)||Ot.log.length>2)&&(Jt=this.transports.filter(function(Dt){return Dt.transport===Ot})[0]),Jt&&this.unpipe(Jt),this}},{key:"clear",value:function(){return this.unpipe(),this}},{key:"close",value:function(){return this.clear(),this.emit("close"),this}},{key:"setLevels",value:function(){At.deprecated("setLevels")}},{key:"query",value:function(Ot,Jt){typeof Ot=="function"&&(Jt=Ot,Ot={}),Ot=Ot||{};var Dt={},Et=Object.assign({},Ot.query||{});ct(this.transports.filter(function(Pt){return!!Pt.query}),function(Pt,zt){(function(en,Kt){Ot.query&&typeof en.formatQuery=="function"&&(Ot.query=en.formatQuery(Et)),en.query(Ot,function(nn,Zt){if(nn)return Kt(nn);typeof en.formatResults=="function"&&(Zt=en.formatResults(Zt,Ot.format)),Kt(null,Zt)})})(Pt,function(en,Kt){zt&&((Kt=en||Kt)&&(Dt[Pt.name]=Kt),zt()),zt=null})},function(){return Jt(null,Dt)})}},{key:"stream",value:function(){var Ot=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Jt=new dt,Dt=[];return Jt._streams=Dt,Jt.destroy=function(){for(var Et=Dt.length;Et--;)Dt[Et].destroy()},this.transports.filter(function(Et){return!!Et.stream}).forEach(function(Et){var Pt=Et.stream(Ot);Pt&&(Dt.push(Pt),Pt.on("log",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Jt.emit("log",zt)}),Pt.on("error",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Jt.emit("error",zt)}))}),Jt}},{key:"startTimer",value:function(){return new vt(this)}},{key:"profile",value:function(Ot){var Jt=Date.now();if(this.profilers[Ot]){var Dt=this.profilers[Ot];delete this.profilers[Ot];for(var Et=arguments.length,Pt=new Array(Et>1?Et-1:0),zt=1;zttt(nt,it)},s.exports=o.default},function(s,o,et){var tt=Object.prototype.toString;s.exports=function(nt){if(typeof nt.displayName=="string"&&nt.constructor.name)return nt.displayName;if(typeof nt.name=="string"&&nt.name)return nt.name;if(typeof nt=="object"&&nt.constructor&&typeof nt.constructor.name=="string")return nt.constructor.name;var rt=nt.toString(),it=tt.call(nt).slice(8,-1);return(rt=it==="Function"?rt.substring(rt.indexOf("(")+1,rt.indexOf(")")):it)||"anonymous"}},function(s,o,et){const tt=et(13),{LEVEL:nt}=et(3),rt=et(20),it=s.exports=function(ot={}){if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=function(st){this.emit("error",st,this.transport)}.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(let at=0;at(st[rt]=(at.stable?it.stableStringify:it)(st,at.replacer||ot,at.space),st))}).call(this,et(5).Buffer)},function(s,o,et){class tt extends Error{constructor(rt){super(`Format functions must be synchronous taking a two arguments: (info, opts) Found: ${rt.toString().split(` `)[0]} -`),Error.captureStackTrace(this,tt)}}s.exports=nt=>{if(nt.length>2)throw new tt(nt);function rt(ot={}){this.options=ot}function it(ot){return new rt(ot)}return rt.prototype.transform=nt,it.Format=rt,it}},function(s,o,et){function tt(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")}function nt(it,ot){for(var st=0;st0&&arguments[0]!==void 0?arguments[0]:{};tt(this,it),this.loggers=new Map,this.options=at}var ot,st;return ot=it,(st=[{key:"add",value:function(at,lt){var ut=this;if(!this.loggers.has(at)){var dt=(lt=Object.assign({},lt||this.options)).transports||this.options.transports;lt.transports=dt?dt.slice():[];var ht=rt(lt);ht.on("close",function(){return ut._delete(at)}),this.loggers.set(at,ht)}return this.loggers.get(at)}},{key:"get",value:function(at,lt){return this.add(at,lt)}},{key:"has",value:function(at){return!!this.loggers.has(at)}},{key:"close",value:function(at){var lt=this;if(at)return this._removeLogger(at);this.loggers.forEach(function(ut,dt){return lt._removeLogger(dt)})}},{key:"_removeLogger",value:function(at){this.loggers.has(at)&&(this.loggers.get(at).close(),this._delete(at))}},{key:"_delete",value:function(at){this.loggers.delete(at)}}])&&nt(ot.prototype,st),it}()},function(s,o,et){(function(tt){const nt=et(52),rt=/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/;s.exports=function(it,ot,st,at){let lt,ut,dt=!1,ht=!1;const ct=et(94);function pt(yt){at(ot,yt)}function ft(yt,Ut){let Ft=`"${ot}" ${Ut}`;throw yt&&(Ft=`${Ft}`),ut&&(Ft=`${Ft}. An example of a valid value would be: ${ut}`),new nt(Ft)}const gt={convertFromBase64:function(){return pt("marking for base64 conversion"),dt=!0,gt},default:function(yt){if(typeof yt=="number")lt=yt.toString();else if(Array.isArray(yt)||typeof yt=="object"&&yt!==null)lt=JSON.stringify(yt);else{if(typeof yt!="string")throw new nt("values passed to default() must be of Number, String, Array, or Object type");lt=yt}return pt(`setting default value to "${lt}"`),gt},required:function(yt){return yt===void 0?(pt("marked as required"),ht=!0):(pt(`setting required flag to ${yt}`),ht=yt),gt},example:function(yt){return ut=yt,gt}};return Object.entries({...ct,...st}).forEach(([yt,Ut])=>{gt[yt]=function(Ft){return function(){let mt=it[ot];if(pt(`will be read from the environment using "${Ft.name}" accessor`),mt===void 0)if(lt===void 0&&ht)pt("was not found in the environment, but is required to be set"),ft(void 0,"is a required variable, but it was not set");else{if(lt===void 0)return void pt("was not found in the environment, but is not required. returning undefined");pt(`was not found in the environment, parsing default value "${lt}" instead`),mt=lt}ht&&(pt("verifying variable value is not an empty string"),mt.trim().length===0&&ft(void 0,"is a required variable, but its value was empty")),dt&&(pt("verifying variable is a valid base64 string"),mt.match(rt)||ft(mt,"should be a valid base64 string if using convertFromBase64"),pt("converting from base64 to utf8 string"),mt=tt.from(mt,"base64").toString());const vt=[mt].concat(Array.prototype.slice.call(arguments));try{pt(`passing value "${mt}" to "${Ft.name}" accessor`);const At=Ft.apply(Ft,vt);return pt(`parsed successfully, returning ${At}`),At}catch(At){ft(mt,At.message)}}}(Ut)}),gt}}).call(this,et(5).Buffer)},function(s,o,et){const tt=et(33);s.exports=function(nt,rt){return rt=rt||",",nt.length?tt(nt).split(rt).filter(Boolean):[]}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(nt!=="false"&&nt!=="true")throw new Error('should be either "true", "false", "TRUE", or "FALSE"');return nt!=="false"}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(["false","0","true","1"].indexOf(nt)===-1)throw new Error('should be either "true", "false", "TRUE", "FALSE", 1, or 0');return!(nt==="0"||nt==="false")}},function(s,o,et){const tt=et(95);s.exports=function(nt){var rt=tt(nt);if(rt>65535)throw new Error("cannot assign a port number greater than 65535");return rt}},function(s,o,et){const tt=et(33);s.exports=function(nt,rt){const it=tt(nt);if(rt.indexOf(it)<0)throw new Error(`should be one of [${rt.join(", ")}]`);return it}},function(s,o,et){const tt=et(54);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative float");return rt}},function(s,o,et){const tt=et(54);s.exports=function(nt){const rt=tt(nt);if(rt<0)throw new Error("should be a positive float");return rt}},function(s,o,et){const tt=et(53);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative integer");return rt}},function(s,o,et){const tt=et(55);s.exports=function(nt){var rt=tt(nt);if(!Array.isArray(rt))throw new Error("should be a parseable JSON Array");return rt}},function(s,o,et){const tt=et(55);s.exports=function(nt){var rt=tt(nt);if(Array.isArray(rt))throw new Error("should be a parseable JSON Object");return rt}},function(s,o,et){s.exports=function(tt,nt){try{RegExp(void 0,nt)}catch{throw new Error("invalid regexp flags")}try{return new RegExp(tt,nt)}catch{throw new Error("should be a valid regexp")}}},function(s,o,et){const tt=et(96);s.exports=function(nt){return tt(nt).toString()}},function(s,o,et){const tt=et(33),nt=/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021\u0023-\u005b\u005d-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021-\u005a\u0053-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])+)\])$/;s.exports=function(rt){const it=tt(rt);if(!nt.test(it))throw new Error("should be a valid email address");return it}},function(s,o,et){s.exports=function(tt,nt){return function(rt,it){nt&&nt.match(/prod|production/)||tt(`env-var (${rt}): ${it}`)}}},function(s,o,et){(function(tt){(function(){var nt,rt,it,ot,st,at;typeof performance<"u"&&performance!==null&&performance.now?s.exports=function(){return performance.now()}:tt!=null&&tt.hrtime?(s.exports=function(){return(nt()-st)/1e6},rt=tt.hrtime,ot=(nt=function(){var lt;return 1e9*(lt=rt())[0]+lt[1]})(),at=1e9*tt.uptime(),st=ot-at):Date.now?(s.exports=function(){return Date.now()-it},it=Date.now()):(s.exports=function(){return new Date().getTime()-it},it=new Date().getTime())}).call(this)}).call(this,et(2))},function(s,o,et){(function(tt){(function(nt){function rt(ot){if((ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextEncoder': The encoding label provided ('"+ot+"') is invalid.")}function it(ot,st){if(st=st===void 0?{fatal:!1}:st,(ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextDecoder': The encoding label provided ('"+ot+"') is invalid.");if(st.fatal)throw Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.")}if(nt.TextEncoder&&nt.TextDecoder)return!1;Object.defineProperty(rt.prototype,"encoding",{value:"utf-8"}),rt.prototype.encode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to encode: the 'stream' option is unsupported.");st=0;for(var at=ot.length,lt=0,ut=Math.max(32,at+(at>>1)+7),dt=new Uint8Array(ut>>3<<3);st=ht){if(st=ht)continue}if(lt+4>dt.length&&(ut+=8,ut=(ut*=1+st/ot.length*2)>>3<<3,(ct=new Uint8Array(ut)).set(dt),dt=ct),(4294967168&ht)==0)dt[lt++]=ht;else{if(!(4294965248&ht))dt[lt++]=ht>>6&31|192;else if(!(4294901760&ht))dt[lt++]=ht>>12&15|224,dt[lt++]=ht>>6&63|128;else{if(4292870144&ht)continue;dt[lt++]=ht>>18&7|240,dt[lt++]=ht>>12&63|128,dt[lt++]=ht>>6&63|128}dt[lt++]=63&ht|128}}return dt.slice(0,lt)},Object.defineProperty(it.prototype,"encoding",{value:"utf-8"}),Object.defineProperty(it.prototype,"fatal",{value:!1}),Object.defineProperty(it.prototype,"ignoreBOM",{value:!1}),it.prototype.decode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to decode: the 'stream' option is unsupported.");st=0;for(var at=(ot=new Uint8Array(ot)).length,lt=[];st>>10&1023|55296),ut=56320|1023&ut),lt.push(ut))}return String.fromCharCode.apply(null,lt)},nt.TextEncoder=rt,nt.TextDecoder=it})(typeof window<"u"?window:tt!==void 0?tt:this)}).call(this,et(6))},function(s,o,et){et.r(o),et.d(o,"AuthClient",function(){return rt}),et.d(o,"RtcSignalingClient",function(){return ot}),et.d(o,"Credentials",function(){return xt}),et.d(o,"IRtcStream",function(){}),et.d(o,"SignalingPromiseClient",function(){return Ct.SignalingPromiseClient}),et.d(o,"IRtcClientConfigurationV1",function(){}),et.d(o,"IRtcClientConfiguration",function(){}),et.d(o,"IRtcConnectionStatsInfo",function(){}),et.d(o,"IRtcSendConfiguration",function(){}),et.d(o,"IRtcSessionMetricsMessageCounts",function(){}),et.d(o,"IRtcStreamMessage",function(){}),et.d(o,"IRtcStreamPayload",function(){}),et.d(o,"IStreamControl",function(){}),et.d(o,"RtcClient",function(){return _r}),et.d(o,"RtcClientV1",function(){return Fo}),et.d(o,"createRtcStreamMessage",function(){return gn});var tt=et(28),nt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class rt extends tt.a{adminSignup(un,pn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/admin-signup",{token:pn,method:"POST",body:JSON.stringify(un)})})}login(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login",{method:"POST",body:JSON.stringify(un),allowUnsafeRetries:!0})})}loginWithGoogleToken(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login-google",{method:"POST",body:JSON.stringify(un),allowUnsafeRetries:!0})})}refresh(un,pn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/refresh",{method:"POST",body:JSON.stringify({refreshToken:un,tokenExpirationSeconds:pn}),allowUnsafeRetries:!0})})}respondToNewPasswordRequiredChallenge(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/respond-to-new-password-required-challenge",{method:"POST",body:JSON.stringify(un)})})}forgotPassword(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/forgot-password",{method:"POST",body:JSON.stringify({email:un})})})}confirmForgotPassword(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/confirm-forgot-password",{method:"POST",body:JSON.stringify(un)})})}resendInvitation(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/resend-invitation",{method:"POST",body:JSON.stringify({email:un})})})}changePassword({token:un,refreshToken:pn,currentPassword:Qn,newPassword:Wn}){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/change-password",{token:un,method:"POST",body:JSON.stringify({refreshToken:pn,currentPassword:Qn,newPassword:Wn})})})}getDeviceCredentials(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/device-credentials",{token:un,method:"POST",allowUnsafeRetries:!0})})}impersonate(un,pn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/impersonate",{token:un,method:"POST",allowUnsafeRetries:!0,body:JSON.stringify({userId:pn})})})}createServiceAccount(un,pn,Qn,Wn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/service-account",{token:un,method:"POST",allowUnsafeRetries:!0,body:JSON.stringify({name:pn,roleId:Qn,tags:Wn})})})}getFeatures(un){return nt(this,void 0,void 0,function*(){return(yield this.fetch("auth/features",{token:un})).features})}}var it=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class ot extends tt.a{createPeer(un,pn){return it(this,void 0,void 0,function*(){return yield this.fetch("peers",{token:un,method:"POST",body:JSON.stringify(pn)})})}getPeers(un){return it(this,void 0,void 0,function*(){return(yield this.fetch("peers",{token:un})).items})}refreshPeer(un,pn){return it(this,void 0,void 0,function*(){yield this.fetch(`peers/${pn}/refresh`,{token:un,method:"POST",allowUnsafeRetries:!0})})}createSession(un,pn){return it(this,void 0,void 0,function*(){return yield this.fetch("sessions",{token:un,method:"POST",body:JSON.stringify(pn)})})}refreshSession(un,pn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${pn}/refresh`,{token:un,method:"POST",allowUnsafeRetries:!0})})}deleteSession(un,pn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${pn}`,{token:un,method:"DELETE",allowUnsafeRetries:!0})})}getSessions(un){return it(this,void 0,void 0,function*(){return(yield this.fetch("sessions",{token:un})).items})}getIceServers(un){return it(this,void 0,void 0,function*(){return(yield this.fetch("ice-servers",{token:un})).items})}addSignals(un,pn,Qn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${pn}/add-signals`,{token:un,method:"POST",body:JSON.stringify(Qn)})})}takeSignals(un,pn){return it(this,void 0,void 0,function*(){return(yield this.fetch(`sessions/${pn}/take-signals`,{token:un,method:"POST"})).items})}}var st=et(1),at=et(8),lt=et(14),ut=et.n(lt),dt=et(104),ht=et.n(dt),ct=et(0),pt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class ft{constructor(un){this.name="LogReporter",this.type="simple",this.message=un}send(un){return pt(this,void 0,void 0,function*(){var pn,Qn;ct.a.info(this.message,(pn=un.reduce((Wn,jn)=>Object.assign(Object.assign({},Wn),{[jn.name]:jn.stat}),{}),Qn=Wn=>{const{sum:jn,count:Fr}=Wn,Er=jn/Fr;return Object.assign(Object.assign({},Wn),{average:Er})},Object.keys(pn).reduce((Wn,jn)=>Object.assign(Object.assign({},Wn),{[jn]:Qn(pn[jn])}),{})))})}}var gt=et(4),yt=et(39);function Ut(kn){return!!kn.match(/^[a-zA-Z0-9-_.,:?'"()@\/\\#$+ ]{1,255}$/)}var Ft=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};function mt({func:kn,delay:un,immediate:pn}){let Qn=!1,Wn=setTimeout(function Fr(){return Ft(this,void 0,void 0,function*(){if(Qn)return;const Er=new Date().getTime();try{jn=kn(),yield jn}finally{if(!Qn){const wr=new Date().getTime();Wn=setTimeout(Fr,Math.max(un-(wr-Er),0))}}})},pn?0:un),jn=Promise.resolve();return{stop(){return Ft(this,void 0,void 0,function*(){Qn=!0,clearTimeout(Wn),yield jn})}}}var vt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};const At=et(226),Lt=!!gt.c,Rt=new class{constructor(kn){this.samplePeriodSeconds=60,this.buffer={},this.reporters=[],this.flushInterval=mt({func:()=>this.flushStats(),delay:this.samplePeriodSeconds*st.a.second}),this.tags=this.filterTags(kn?.tags||{app:gt.a,version:gt.j,namespace:gt.i,instanceId:yt.a})}shutdown(){return vt(this,void 0,void 0,function*(){yield this.flushInterval.stop(),yield this.flushStats(),yield Object(at.a)(2*st.a.second)})}aggregate(kn,un,pn){this.addToBuffer(this.buffer,this.encodeKey({metric:kn,tags:this.filterTags(pn||{})}),typeof un=="number"?{min:un,max:un,sum:un,count:1}:un)}increment(kn,un){this.aggregate(kn,1,un)}timer(kn,un,pn){return vt(this,void 0,void 0,function*(){const Qn=At(),Wn=yield un(),jn=At();return this.aggregate(kn,jn-Qn,pn),Wn})}registerStatsReporter(kn){this.reporters.push(kn)}setTag(kn,un){const pn=this.filterTags({[kn]:un});this.tags=Object.assign(Object.assign({},this.tags),pn)}addToBuffer(kn,un,pn){if(kn[un]){const{min:Qn,max:Wn,sum:jn,count:Fr}=kn[un];kn[un]={min:Math.min(Qn,pn.min),max:Math.max(Wn,pn.max),sum:jn+pn.sum,count:Fr+pn.count}}else kn[un]=pn}write(kn){return vt(this,void 0,void 0,function*(){yield Promise.all(this.reporters.map(un=>vt(this,void 0,void 0,function*(){let pn;const Qn={};switch(un.type){case"simple":for(const[jn,Fr]of Object.entries(kn)){const{metric:Er}=this.decodeKey(jn);this.addToBuffer(Qn,this.encodeKey({metric:Er}),Fr)}pn=Qn;break;case"tagged":pn=kn;break;default:(function(jn){throw new Error(`Unreachable type encountered (${jn})`)})(un.type)}const Wn=Object.entries(pn);if(Wn.length>0)return un.send(Wn.map(([jn,Fr])=>{const{metric:Er,tags:wr}=this.decodeKey(jn);return{name:Er,tags:Object.assign(Object.assign({},wr),this.tags),stat:Fr}}),this.samplePeriodSeconds).catch(jn=>{ct.a.debug(`Failed to write stats to ${un.name}`,{error:jn})})})))})}flushStats(){return vt(this,void 0,void 0,function*(){yield this.write(this.buffer),this.buffer={}})}encodeKey(kn){return ut()(Object.assign(Object.assign({},kn),Object.keys(kn.tags||{}).length>0?{tags:kn.tags}:{}))}decodeKey(kn){return JSON.parse(kn)}filterTags(kn){return Object.entries(kn||{}).reduce((un,[pn,Qn])=>(Ut(pn)&&Ut(Qn)&&(un[pn]=Qn),un),{})}};Lt||["local","on-prem"].includes(gt.i)||Rt.registerStatsReporter(new ft("stats"));var St=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Tt extends class{constructor(un){this.options=un,this.cache=new ht.a(Object.assign(Object.assign(Object.assign({},un.dispose||un.disposeAfter?{ttlAutopurge:!0}:{}),un),{dispose:(...pn)=>{var Qn;pn[2]==="evict"&&Rt.increment("lru-eviction",{name:un.name}),(Qn=un.dispose)===null||Qn===void 0||Qn.call(un,...pn)},disposeAfter:(...pn)=>{var Qn;this.updateStats(),(Qn=un.disposeAfter)===null||Qn===void 0||Qn.call(un,...pn)}})),this.stringify=un.fastStringify?JSON.stringify:ut.a}set(un,pn,Qn){const Wn=this.stringify(un);if(!this.cache.set(Wn,pn,{ttl:Qn})){const jn=this.cache.sizeCalculation?this.cache.sizeCalculation(pn,Wn):"unknown";throw Error(`Value too large (${jn} > ${this.cache.max})`)}this.updateStats()}get(un){const{name:pn}=this.options,Qn=this.stringify(un),Wn=this.cache.getRemainingTTL(Qn);return Wn<=0?Rt.increment("cache-miss",{name:pn}):Wn!==1/0&&Rt.aggregate("cache-item-ttl",Wn,{name:pn}),this.cache.get(Qn)}delete(un){this.cache.delete(this.stringify(un))}peek(un){return this.cache.peek(this.stringify(un))}size(){return this.cache.size}clear(){this.cache.clear()}forEach(un){this.cache.forEach(un)}purgeStale(){return this.cache.purgeStale()}updateStats(){const{name:un}=this.options;Rt.aggregate("cache-item-count",this.cache.size,{name:un}),this.cache.calculatedSize!==void 0&&Rt.aggregate("cache-length",this.cache.calculatedSize,{name:un})}}{constructor(un){if(super(un),this.expireRejectedPromiseValues=un.expireRejectedPromiseValues===void 0||un.expireRejectedPromiseValues,this.rejectedPromiseValueTtl=un.rejectedPromiseValueTtl!==void 0?un.rejectedPromiseValueTtl:st.a.second,this.rejectedPromiseValueTtl<0)throw new Error("rejectedPromiseValueTtl must not be negative")}set(un,pn,Qn){super.set(un,pn,Qn),this.expireRejectedPromiseValues&&pn.catch(()=>St(this,void 0,void 0,function*(){yield Object(at.a)(this.rejectedPromiseValueTtl),this.peek(un)===pn&&this.delete(un)}))}}var Bt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class xt{constructor(un,pn,Qn){this.authClient=un,this.email=pn,this.password=Qn,this.tokenTtlMs=1*st.a.hour,this.tokenCache=new Tt({name:"Credentials-tokenCache",max:100,ttl:this.tokenTtlMs-5*st.a.minute,fastStringify:!0})}getToken(){return Bt(this,void 0,void 0,function*(){let un=this.tokenCache.get(this.email);return un||(un=(()=>Bt(this,void 0,void 0,function*(){const{authentication:pn}=yield this.authClient.login({email:this.email,password:this.password,tokenExpirationSeconds:this.tokenTtlMs/st.a.second});if(!pn)throw new Error("User account not verified.");return pn.accessToken}))(),this.tokenCache.set(this.email,un)),un})}}var Ct=et(97),kt=et(40),Nt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Ot extends kt.a{constructor(un){super(un)}postLanRtcOffer(un){return Nt(this,void 0,void 0,function*(){return yield this.fetch("v1/lan-rtc-offer",{method:"POST",body:JSON.stringify(un)})})}}var Wt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};function Dt(kn){return Wt(this,void 0,void 0,function*(){return(yield Promise.all(kn.map(un=>un.catch(pn=>pn)))).filter(un=>un instanceof Error)})}function Et(kn){if(kn!==void 0)return kn;throw new Error("Value is undefined")}function Pt(kn,un){const pn=kn.reduce((Qn,Wn)=>[...Qn,...Wn.urls],[]).filter(Qn=>zt(Qn,un)).sort(Qn=>en(Qn,"udp")?-1:0).shift();if(pn)return Object.assign(Object.assign({},Et(kn.find(Qn=>Qn.urls.includes(pn)))),{urls:[pn]})}function zt(kn,un){switch(un){case"stun":return/^stuns?:/.test(kn);case"turn":return/^turns?:/.test(kn)}}function en(kn,un){return kn.endsWith(`transport=${un}`)}var Kt=et(9),nn=et(24),Zt=et(229),jt=et(29);const Vt={ordered:!1,maxPacketLifeTime:300*st.a.millisecond},It={ordered:!0},$t={ordered:!0},Ht={ordered:!1,maxRetransmits:0},qt={ordered:!1,maxRetransmits:0},on=kn=>"received"in kn&&kn.received!==void 0,Xt=kn=>!("received"in kn)||kn.received===void 0,dn=2*st.a.second;function _n(kn,un={}){const pn=Array.from(kn.values()),Qn=pn.filter(on),Wn=Qn.length>0,jn=Math.max(...Qn.map(tr=>tr.received));let Fr;if(Wn){const tr=pn.length,ar=Qn.length,hr=Qn.map(gr=>gr.received-gr.sent),{standardDeviation:cn,mean:mn,jitter:xn}=function(gr){const br=gr.length;if(br===0)return{mean:NaN,standardDeviation:-1,jitter:NaN};const ur=gr.reduce((ho,Nn)=>ho+Nn,0)/br,nr=Math.sqrt(gr.map(ho=>Math.pow(ho-ur,2)).reduce((ho,Nn)=>ho+Nn)/br);let Kr=0;for(let ho=1;hogr.sent{const[ar,hr]=tr;hr.sent{var jn,Fr;return{streamId:Wn,sentCount:(jn=pn.get(Wn))!==null&&jn!==void 0?jn:0,receivedCount:(Fr=Qn.get(Wn))!==null&&Fr!==void 0?Fr:0}}),timestamp:un}}incrementLocalSent(un){const{localSent:pn}=this.counts,Qn=Fn(un.header.stream);pn.set(Qn,(pn.get(Qn)||0)+1)}incrementLocalReceived(un){const{localReceived:pn}=this.counts,Qn=Fn(un.header.stream),Wn=pn.get(Qn)||0;if(Wn===0){const{streamName:jn,streamType:Fr}=un.header.stream;ct.a.debug("RTC client received first message for stream",{streamName:jn,streamType:Fr})}pn.set(Qn,Wn+1)}uploadMetrics(){return Un(this,void 0,void 0,function*(){const{sessionId:un}=this,pn=yield this.connection.peerConnection.getStats(),Qn={};pn.forEach(tr=>Qn[tr.id]=tr),ct.a.debug("rtc-stats",Object.assign(Object.assign({},Qn),{sessionId:un}));const{localSent:Wn,localReceived:jn,remoteSent:Fr,remoteReceived:Er}=this.counts,wr=[...new Set([...Wn.keys(),...jn.keys()])].reduce((tr,ar)=>{const hr=Wn.get(ar),cn=jn.get(ar),mn=Fr.get(ar),xn=Er.get(ar);return Object.assign(Object.assign({},tr),{[`local-${ar}-sent`]:hr,[`local-${ar}-received`]:cn,[`remote-${ar}-sent`]:mn,[`remote-${ar}-received`]:xn})},{sessionId:un});ct.a.debug("rtc-message-report",Object.assign({deviceId:this.connection.getRemoteDeviceId()},wr))})}}function gn(kn,un,pn){return{header:{stream:kn,created:Date.now(),frameId:pn||""},payload:un}}function hn(kn){return new Set(["disconnected","failed","closed"]).has(kn.iceConnectionState)}function wn(kn){switch(kn.header.stream.streamType){case"twist":{const{twist:un}=kn.payload;if(!un)throw Error("twist not in payload of RTC message with type twist");return{header:kn.header,payload:{twist:{linear:Object.assign({x:0,y:0,z:0},un.linear),angular:Object.assign({x:0,y:0,z:0},un.angular)}}}}case"pose":{const{pose:un}=kn.payload;if(!un)throw Error("pose not in payload of RTC message with type pose");return{header:kn.header,payload:{pose:{translation:Object.assign({x:0,y:0,z:0},un.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},un.rotation)}}}}case"pose-with-covariance":{const{poseWithCovariance:un}=kn.payload;if(!un)throw Error("poseWithCovariance not in payload of RTC message with type pose-with-covariance");const pn=new Array(36).fill(0);return un.covariance.forEach((Qn,Wn)=>{if(Wn>=36)throw Error("covariance contains more than 36 elements");pn[Wn]=Qn}),{header:kn.header,payload:{poseWithCovariance:{pose:{translation:Object.assign({x:0,y:0,z:0},un.pose.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},un.pose.rotation)},covariance:pn}}}}case"point":{const{point:un}=kn.payload;if(!un)throw Error("point not in payload of RTC message with type point");return{header:kn.header,payload:{point:Object.assign({x:0,y:0,z:0},un)}}}default:return kn}}var Zn=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Pn{constructor(un,pn,Qn){this.peerConnection=un,this.config=pn,this.dataChannelNotifier=Qn,this.connectTimeoutMs=20*st.a.second,this.iceGatheringTimeoutMs=15*st.a.second,this.pingUpdateTimeoutMs=1*st.a.second,this.pingV2UpdateTimeoutMs=250*st.a.millisecond,this.pingV2MetricsGatherTimeoutMs=1*st.a.second,this.streamsInfoUpdateTimeoutMs=2*st.a.second,this.reassemblyTimeoutMs=500*st.a.millisecond,this.reassemblyTableCleanupMs=1*st.a.second,this.heartbeatTimeoutMs=20*st.a.millisecond,this.streamLatestTimestamp=new Map,this.reassemblyTable=new Map,this.reassemblyTableLastTimestamp=new Map,this.closeCalled=!1,this.gotOffer=!1,this.hasIceCandidate=!1,this.pingV2Map=new Map,this.sendPingV2=()=>{const{latestTryOnceStreamChannel:jn}=this;if(!jn)return;const Fr=new Date().getTime(),Er=Object(Zt.a)();this.sendSystemMessage(jn,{type:"ping-v2",payload:{timestamp:Fr,id:Er}}),this.pingV2Map.set(Er,{sent:Fr})},this.gatherPingV2Metrics=()=>{const jn=_n(this.pingV2Map);jn&&(this.pingInfo=jn,Rt.aggregate("rtc-ping-average",jn.average),Rt.aggregate("rtc-ping-loss",jn.loss),Rt.aggregate("rtc-jitter",jn.jitter))};const{isOffer:Wn}=pn.baseConfig;Wn?this.initializeChannels(un):un.ondatachannel=jn=>{switch(jn.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=jn.channel;break;case"stream.reliable":this.reliableStreamChannel=jn.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=jn.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=jn.channel;break;case"heartbeat":return void(this.heartbeatChannel=jn.channel);default:return void this.dataChannelNotifier(jn.channel)}this.setupChannel(jn.channel)},this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:jn}=this;jn&&this.sendSystemMessage(jn,{type:"ping"})},this.pingUpdateTimeoutMs),this.pingV2UpdateTimeout=setInterval(this.sendPingV2,this.pingV2UpdateTimeoutMs),this.pingV2MetricsGatherTimeout=setInterval(this.gatherPingV2Metrics,this.pingV2MetricsGatherTimeoutMs),this.streamsInfoUpdateTimeout=setInterval(()=>{const{latestTtlStreamChannel:jn}=this;jn&&this.sendSystemMessage(jn,{type:"streams-info"})},this.streamsInfoUpdateTimeoutMs),this.reassemblyTableCleanupTimeout=setInterval(()=>{const jn=new Date().getTime();this.reassemblyTableLastTimestamp.forEach((Fr,Er,wr)=>{jn>Er+this.reassemblyTimeoutMs&&this.reassemblyTable.delete(Fr)})},this.reassemblyTableCleanupMs),this.heartbeatTimeout=setInterval(()=>{const{heartbeatChannel:jn}=this;jn&&jn.readyState==="open"&&jn.send(new Uint8Array([1]))},this.heartbeatTimeoutMs)}handleSignal(un){return Zn(this,void 0,void 0,function*(){const{peerConnection:pn}=this,{track:Qn}=this.config.baseConfig,Wn=(()=>{try{return JSON.parse(un.getPayload())}catch{return}})();if(!Wn)return void ct.a.error("Received unparseable signal.");ct.a.debug("Handling signal",{description:Wn});const{sdp:jn,type:Fr}=Wn;if(!jn||!Fr)return void ct.a.warn("Received non-SDP signal");const{signalingState:Er,connectionState:wr}=pn;if(Er!=="stable"||wr!=="connected")if(pn.remoteDescription)ct.a.warn(`Received SDP after remote description was set: ${jn}`);else{if(Fr==="offer"){if(Er!=="stable")return void ct.a.warn("Received offer SDP when signaling is ongoing.");yield pn.setRemoteDescription(Wn);const tr=yield pn.createAnswer();yield pn.setLocalDescription(tr);const ar=un.clone();return Qn?.("Answer Received",ar),ar.setPayload(JSON.stringify(tr)),ar.setReceiverId(un.getSenderId()),ar.setSenderId(un.getReceiverId()),ar}if(Fr==="answer"){if(Er==="stable")return void ct.a.warn("Received answer SDP when signaling hasn't started.");yield pn.setRemoteDescription(Wn)}}else ct.a.warn(`Received SDP when already connected: ${jn}`)})}send(un,pn){const Qn=this.getChannelFromLabel(pn.channelLabel);Qn?this.sendOnChannel(Qn,un):ct.a.warn("Send called with unexpected channel label",{channelLabel:pn.channelLabel})}controlRemoteStream(un){this.sendSystemMessage(Et(this.reliableStreamChannel),{type:"stream-control",streamControl:un})}isActive(){return new Set(["new","checking","connected","completed"]).has(this.peerConnection.iceConnectionState)||this.isReady()}isReady(){const{reliableStreamChannel:un,latestTtlStreamChannel:pn,latestTryOnceStreamChannel:Qn,latestReliableStreamChannel:Wn}=this;return un?.readyState==="open"&&pn?.readyState==="open"&&Qn?.readyState==="open"&&Wn?.readyState==="open"}close(){return Zn(this,void 0,void 0,function*(){if(this.closeCalled)return;this.closeCalled=!0,this.sessionMetrics&&(yield this.sessionMetrics.uploadMetrics()),$n(this.pingUpdateTimeout),$n(this.pingV2UpdateTimeout),$n(this.pingV2MetricsGatherTimeout),$n(this.reassemblyTableCleanupTimeout),$n(this.streamsInfoUpdateTimeout),$n(this.heartbeatTimeout);const{peerConnection:un,reliableStreamChannel:pn,latestTtlStreamChannel:Qn,latestTryOnceStreamChannel:Wn,latestReliableStreamChannel:jn}=this;un.close(),pn?.close(),Qn?.close(),Wn?.close(),jn?.close()})}getPing(){return this.pingTimeMs}getPingInfo(){return this.pingInfo}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionCreatedTimestamp(){var un;return(un=this.config.remoteConfig)===null||un===void 0?void 0:un.sessionCreatedTimestamp}setSessionCreatedTimestamp(un){this.config.remoteConfig&&(this.config.remoteConfig.sessionCreatedTimestamp=un)}getSessionId(){var un;return(un=this.config.remoteConfig)===null||un===void 0?void 0:un.sessionId}setSessionId(un){this.config.remoteConfig&&(this.config.remoteConfig.sessionId=un,this.sessionMetrics=new On(un,this))}getRemotePeerId(){return this.config.baseConfig.remotePeerId}getRemoteDeviceId(){var un;return(un=this.config.baseConfig)===null||un===void 0?void 0:un.remoteDeviceId}setRemoteDeviceId(un){this.config.baseConfig.remoteDeviceId=un}getSessionMetricsMessageCounts(){var un;return(un=this.sessionMetrics)===null||un===void 0?void 0:un.counts}getConnectionStatsInfo(){return Zn(this,void 0,void 0,function*(){const{peerConnection:un}=this;if(!un)return;const pn=yield un.getStats(null),Qn=[];pn.forEach(wr=>{Qn.push(wr)});const Wn=Qn.find(wr=>wr.type==="transport");if(!Wn)return;const jn=Qn.find(wr=>(wr.type==="candidate-pair"||wr.type==="candidatepair")&&wr.id===Wn.selectedCandidatePairId);if(!jn)return;const Fr=Qn.find(wr=>wr.id===jn.localCandidateId),Er=Qn.find(wr=>wr.id===jn.remoteCandidateId);return Fr&&Er&&(Fr.address=Fr.address||Fr.ip,Er.address=Er.address||Er.ip,Fr.address!==void 0&&Er.address!==void 0)?{transport:Wn,localCandidate:Fr,remoteCandidate:Er}:void 0})}initializeChannels(un){this.heartbeatChannel=un.createDataChannel("heartbeat",qt),this.heartbeatChannel.binaryType="arraybuffer",this.latestTtlStreamChannel=un.createDataChannel("stream.latest-ttl",Vt),this.latestTtlStreamChannel.binaryType="arraybuffer",this.reliableStreamChannel=un.createDataChannel("stream.reliable",It),this.reliableStreamChannel.binaryType="arraybuffer",this.latestReliableStreamChannel=un.createDataChannel("stream.latest-reliable",$t),this.latestReliableStreamChannel.binaryType="arraybuffer",this.latestTryOnceStreamChannel=un.createDataChannel("stream.latest-try-once",Ht),this.latestTryOnceStreamChannel.binaryType="arraybuffer",this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}getOffer(){var un,pn,Qn;return Zn(this,void 0,void 0,function*(){const{gotOffer:Wn}=this,{peerConnection:jn,config:Fr}=this;if(this.config.baseConfig.isLan)throw new Error('"getOffer" method can only be called with internet connections. LAN connections should call the "getLanOffer" method.');const Er=(un=this.config.remoteConfig)===null||un===void 0?void 0:un.sessionId;if(Wn)return void ct.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,hn(this.peerConnection))return void ct.a.debug("Failed to generate offer because the peer connection was inactive.");const wr=Fr.baseConfig.track;jn.onicecandidate=()=>{this.hasIceCandidate=!0},jn.oniceconnectionstatechange=()=>Zn(this,void 0,void 0,function*(){const mn=jn.iceConnectionState;if(mn==="connected"||mn==="completed"){const xn=yield this.getConnectionStatsInfo(),Gn=xn?function(er){const cr=er.localCandidate.candidateType,gr=er.remoteCandidate.candidateType;return cr==="host"&&gr==="host"?"local":cr==="relay"||gr==="relay"?"TURN":"STUN"}(xn):void 0;ct.a.info(`ICE connection state changed to ${mn}`,{sessionId:Er,connectionStatsInfo:xn,iceMode:Gn}),wr?.("ICE connection state change",{iceConnectionState:mn,sessionId:Er,connectionStatsInfo:xn,iceMode:Gn})}}),yield jn.setLocalDescription(yield jn.createOffer());const tr=new Date().getTime();for(;;){const mn=new Date().getTime()-tr;if(mn>this.connectTimeoutMs)return void ct.a.debug("Failed to generate offer because ICE gathering timed out.");if(mn>this.iceGatheringTimeoutMs&&this.hasIceCandidate){ct.a.debug("ICE gathering partially completed; proceeding",{iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn}),wr?.("ICE gathering partially completed",{sessionId:Er,iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn});break}if(jn.iceGatheringState==="complete"){ct.a.debug("ICE gathering complete",{iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn}),wr?.("ICE gathering completed",{sessionId:Er,iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn});break}yield Object(at.a)(.1*st.a.second)}const ar=(pn=this.peerConnection.getConfiguration().iceServers)!==null&&pn!==void 0?pn:[];for(const mn of ar)mn.credentialType=void 0;const hr=JSON.stringify(ar),cn=new Kt.Signal;return cn.setPayload(JSON.stringify(jn.localDescription)),cn.setSenderId(this.config.baseConfig.localPeerId),cn.setReceiverId(this.config.baseConfig.remotePeerId),cn.setIceServers(hr),cn.setIceTransportPolicy((Qn=this.peerConnection.getConfiguration().iceTransportPolicy)!==null&&Qn!==void 0?Qn:"all"),this.config.baseConfig.sessionType!==void 0?cn.setSessionType(this.config.baseConfig.sessionType):cn.setSessionType(Kt.SessionType.TELEOP),ct.a.debug("Sending offer signal with description",{description:cn.getPayload()}),cn})}getLanOffer(){return Zn(this,void 0,void 0,function*(){const{peerConnection:un,gotOffer:pn}=this;if(!this.config.baseConfig.isLan)throw new Error('"getLanOffer" method can only be used with LAN connections. Internet connections should call the "getOffer" method.');if(pn)return void ct.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,hn(this.peerConnection))return void ct.a.debug("Failed to generate offer because the peer connection was inactive.");yield un.setLocalDescription(yield un.createOffer());const Qn=new Date().getTime();for(;;){if(new Date().getTime()-Qn>this.iceGatheringTimeoutMs)return void ct.a.debug("Failed to generate offer because ICE gathering timed out.");if(un.iceGatheringState==="complete")break;yield Object(at.a)(.1*st.a.second)}const Wn=un.localDescription;if(Wn)return ct.a.debug("Sending LAN offer signal with description",{description:Wn}),Wn;ct.a.error("Failed to generate LAN offer description")})}handleLanAnswer(un){return Zn(this,void 0,void 0,function*(){const{peerConnection:pn}=this;if(!this.config.baseConfig.isLan)throw new Error('"handleLanAnswer" method can only be used with LAN connections. Internet connections should call the "handleSignal" method.');yield pn.setRemoteDescription(un)})}getChannelFromLabel(un){switch(un){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(un,pn){let Qn;try{Qn=Object(jt.encode)(JSON.stringify(pn))}catch(Wn){return void ct.a.warn("Failed to encode RTC message",{error:Wn})}try{un.send(Qn),this.sessionMetrics&&this.sessionMetrics.incrementLocalSent(pn)}catch(Wn){ct.a.warn("Failed to send message to channel",{error:Wn,channel:un.label})}}channelNotRecognized(un){return un!==this.latestTtlStreamChannel&&un!==this.latestReliableStreamChannel&&un!==this.latestTryOnceStreamChannel&&un!==this.reliableStreamChannel}setupChannel(un){un.onmessage=pn=>{if(this.channelNotRecognized(un))return void ct.a.warn("Received message on unrecognized data channel.");let Qn;try{Qn=JSON.parse(Object(jt.decode)(pn.data))}catch(Wn){return void ct.a.warn("Received unparseable message on RTC stream data channel",{error:Wn,channel:un.label})}Qn.communicationType==="message-chunk"?this.receiveChannelMessageChunk(un,Qn):this.receiveChannelMessage(un,Qn)},un.onerror=pn=>{ct.a.warn(`Channel error: ${pn.error}`,{error:pn.error,sessionId:this.getSessionId(),channelLabel:un.label})},un.onopen=()=>{ct.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:un.label})},un.onclose=()=>{const pn={bufferedAmount:un.bufferedAmount,sessionId:this.getSessionId(),channelLabel:un.label};this.closeCalled===!1?ct.a.debug("Unexpected channel closed",pn):ct.a.debug("Channel closed",pn)}}receiveChannelMessage(un,pn){const{config:Qn}=this,{remotePeerId:Wn}=this.config.baseConfig;this.lastMessageTimestamp=new Date().getTime(),pn=wn(pn),this.sessionMetrics&&this.sessionMetrics.incrementLocalReceived(pn),this.handleSystemMessage(un,pn)||(un===this.latestTryOnceStreamChannel||un===this.latestTtlStreamChannel||un===this.latestReliableStreamChannel)&&!this.isLatestMessage(pn)||Qn.baseConfig.receive(Wn,pn)}receiveChannelMessageChunk(un,pn){const Qn=this.reassemblyTable.get(pn.id)||[];if(Qn.push(pn),Qn.length===pn.total){const Wn=function(jn){const Fr=jn.sort((Er,wr)=>Er.seqEr.part).reduce((Er,wr)=>Er+wr);try{return JSON.parse(Fr)}catch{return void ct.a.warn("Could not reassemble RTC message chunks")}}(Qn);return Wn&&this.receiveChannelMessage(un,Wn),void this.reassemblyTable.delete(pn.id)}this.reassemblyTable.set(pn.id,Qn),this.reassemblyTableLastTimestamp.set(pn.id,new Date().getTime())}handleSystemMessage(un,pn){var Qn,Wn;const{config:jn}=this,{baseConfig:Fr}=jn,{remotePeerId:Er}=Fr;switch(pn.header.stream.streamType){case"ping":return this.sendSystemMessage(un,{type:"pong",timestamp:Et(pn.payload.ping)}),!0;case"pong":{const wr=new Date().getTime()-Et(pn.payload.pong);return this.pingTimeMs=wr,Rt.aggregate("rtc-ping-time",wr),!0}case"ping-v2":return this.sendPingV2(),!0;case"pong-v2":{const wr=Et(pn.payload.pongV2),tr=this.pingV2Map.get(wr.id);return tr?.sent!==wr.timestamp?(ct.a.warn("Pong timestamp doesn't match stored value",{currentEntry:tr,pong:wr}),!0):(this.pingV2Map.set(wr.id,{sent:wr.timestamp,received:new Date().getTime()}),!0)}case"streams-info":{const{sessionMetrics:wr}=this,tr=(Qn=pn.payload.streamsInfo)===null||Qn===void 0?void 0:Qn.timestamp;return!!tr&&(wr?.updateRemoteMessagesCounts(pn),(Wn=Fr.onStreamsInfoUpdate)===null||Wn===void 0||Wn.call(Fr,Er,tr),!0)}case"stream-control":return!0;default:return!1}}sendSystemMessage(un,pn){var Qn;const{localUserId:Wn,localPeerId:jn}=this.config.baseConfig;if(un.readyState!=="open")return;const Fr={entityId:Wn??jn,streamName:`$.${pn.type}`,streamType:pn.type};let Er;switch(pn.type){case"ping":Er={ping:new Date().getTime()};break;case"pong":Er={pong:pn.timestamp};break;case"ping-v2":Er={pingV2:pn.payload};break;case"pong-v2":Er={pongV2:pn.payload};break;case"stream-control":Er={streamControl:pn.streamControl};break;case"streams-info":Er={streamsInfo:(Qn=this.sessionMetrics)===null||Qn===void 0?void 0:Qn.getLocalStreamsInfo(new Date().getTime())}}this.sendOnChannel(un,gn(Fr,Er))}isLatestMessage(un){const pn=Fn(un.header.stream),Qn=(this.streamLatestTimestamp.get(pn)||0)<=un.header.created;return Qn&&this.streamLatestTimestamp.set(pn,un.header.created),Qn}}function $n(kn){kn&&clearInterval(kn)}function Tr(kn){var un,pn;return{userId:(un=kn.getUserId())===null||un===void 0?void 0:un.getValue(),deviceId:(pn=kn.getDeviceId())===null||pn===void 0?void 0:pn.getValue(),organizationId:kn.getOrganizationId(),id:kn.getPeerId(),capabilities:[],capabilitySet:{}}}var Qr=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class _r{constructor(un){this.config=un,this.grpcCallDeadline=5*st.a.second,this.refreshIntervalDelayMs=2*st.a.second,this.iceServersTtl=30*st.a.minute,this.connections=[],this.localConnections=[],this.isConnectionInitiator=new Map,this.isOutgoingConnection=new Map,this.peerDataChannelListeners=[];const{refreshIntervalDelayMs:pn}=this;this.refreshInterval=mt({func:()=>Qr(this,void 0,void 0,function*(){try{yield this.update()}catch(Qn){ct.a.warn("RTC refresh failed",{error:Qn})}}),delay:pn,immediate:!0})}send(un,pn,Qn){const Wn=this.getActiveConnection(un);Wn?Wn.isReady()?Wn.send(pn,Qn):ct.a.warn("Send called with unready connection."):ct.a.warn("Send called with no connection.")}controlRemoteStream(un,pn){const Qn=this.getActiveConnection(un);Qn?Qn.isReady()?Qn.controlRemoteStream(pn):ct.a.warn("controlRemoteStream called with unready connection."):ct.a.warn("controlRemoteStream called with no connection.")}getLocalPeer(){return Qr(this,void 0,void 0,function*(){for(;!this.localPeer;)yield Object(at.a)(.1*st.a.second);return Tr(this.localPeer)})}connect(un,pn){var Qn,Wn,jn;return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode===!0)throw new Error("connect method called in local only mode.");const{track:Fr,signalingClient:Er}=this.config,{localPeer:wr,receiveSignalStream:tr,iceServers:ar}=this;if(!wr||!tr||!ar)return void ct.a.warn("Connect called prior to local peer, receiveSignalStream, and ICE servers ready");if(this.getActiveConnection(un))return void ct.a.warn("Connect called for peer with existing connection.");if(this.isOutgoingConnection.get(un))return void ct.a.warn("Connect called for peer with an existing outgoing connection offer.");this.isOutgoingConnection.set(un,!0);const hr=function(gr,br,ur){const{rtcIceTransportPolicies:nr,rtcIceServerProtocol:Kr,useAllServers:ho}=br||{},Nn=gr.map(rr=>Object.assign(Object.assign({},rr),{urls:rr.urls.filter(Rr=>{const vr=(nr===void 0||nr.some(fr=>zt(Rr,fr)))&&(Kr===void 0||en(Rr,Kr));return vr||ct.a.debug(`Ignoring ICE server: ${Rr}`,{organizationId:ur}),vr})})).filter(({urls:rr})=>rr.filter(Rr=>Rr).length>0);return ho?Nn:[Pt(Nn,"stun"),Pt(Nn,"turn")].filter(rr=>rr!==void 0).map(rr=>Et(rr))}(ar,pn);ct.a.debug("Received ICE servers:",ar),ct.a.debug("Using ICE servers:",hr);const cn=new Pn(yield this.createRTCPeerConnection(hr),{baseConfig:{isOffer:!0,isLan:!1,receive:(gr,br)=>this.config.receive(gr,br),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(gr,br)=>{var ur,nr;return(nr=(ur=this.config).onStreamsInfoUpdate)===null||nr===void 0?void 0:nr.call(ur,gr,br)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(Qn=wr.getUserId())===null||Qn===void 0?void 0:Qn.getValue(),localPeerId:wr.getPeerId(),remotePeerId:un,sessionType:this.config.sessionType},remoteConfig:{}},gr=>this.onCustomDataChannel(un,gr)),mn=yield cn.getOffer();if(!mn)return ct.a.error("Failed to generate offer."),void this.isOutgoingConnection.delete(un);ct.a.debug("Sending offer."),Fr?.("Sending offer",mn);const xn=new Kt.SendSignalRequest;xn.setSignal(mn);const Gn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield Er.sendSignal(xn,yield this.getMetadata({}))}catch(gr){ct.a.warn("Error when sending signal",{error:gr})}}))();if(!this.isOutgoingConnection.get(un))return void ct.a.debug("No offer set after receiving offer signal response.");ct.a.debug("Offer sent.");const er=(Wn=Gn?.getSessionId())===null||Wn===void 0?void 0:Wn.getValue(),cr=(jn=Gn?.getSessionCreatedTimestamp())===null||jn===void 0?void 0:jn.getValue();return er&&cr?(cn.setSessionId(er),cn.setSessionCreatedTimestamp(cr),this.isOutgoingConnection.delete(un),this.connections.push(cn),this.isConnectionInitiator.set(cn,!0),this.setupHandlers(cn),er):(ct.a.warn("No session ID or no session created timestamp on send signal response."),void this.isOutgoingConnection.delete(un))})}connectLan(un){var pn,Qn;return Qr(this,void 0,void 0,function*(){const Wn=new Ot(un),jn=new Pn(yield this.createRTCPeerConnection([]),{baseConfig:{isOffer:!0,isLan:!0,receive:(tr,ar)=>this.config.receive(tr,ar),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(tr,ar)=>{var hr,cn;return(cn=(hr=this.config).onStreamsInfoUpdate)===null||cn===void 0?void 0:cn.call(hr,tr,ar)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(Qn=(pn=this.localPeer)===null||pn===void 0?void 0:pn.getUserId())===null||Qn===void 0?void 0:Qn.getValue(),localPeerId:"lan_client",remotePeerId:un}},tr=>this.onCustomDataChannel(un,tr)),Fr=yield jn.getLanOffer();if(!Fr)return ct.a.warn("Could not generate LAN offer"),!1;const Er=yield Wn.postLanRtcOffer({offer:JSON.stringify(Fr)}),wr=new RTCSessionDescription(JSON.parse(Er.answer));return yield jn.handleLanAnswer(wr),this.localConnections.push(jn),this.isConnectionInitiator.set(jn,!0),Object(Zt.a)()})}getConnections(){return[...this.connections,...this.localConnections]}createCustomDataChannel(un,pn,Qn,Wn,jn){const Fr=this.getActiveConnection(un);if(Fr&&this.isConnectionInitiator.has(Fr)){const wr=Fr.peerConnection.createDataChannel("custom."+pn,Qn);return Wn&&(wr.binaryType="arraybuffer"),jn(un,wr),()=>{}}const Er=(wr,tr)=>{un===wr&&tr.label==="custom."+pn&&jn(un,tr)};return this.peerDataChannelListeners.push(Er),()=>{this.peerDataChannelListeners=this.peerDataChannelListeners.filter(wr=>wr!==Er)}}onCustomDataChannel(un,pn){this.peerDataChannelListeners.forEach(Qn=>Qn(un,pn))}getConnectionStatus(un){if(this.isOutgoingConnection.get(un))return"connecting";const pn=this.getActiveConnection(un);return pn?pn.isReady()?"connected":"connecting":"disconnected"}getConnectionStatsInfo(un){return Qr(this,void 0,void 0,function*(){const pn=this.getActiveConnection(un);if(pn)return yield pn.getConnectionStatsInfo()})}disconnect(un){return Qr(this,void 0,void 0,function*(){const pn=this.getActiveConnection(un);pn&&(yield pn.close())})}getPeers(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:un}=this.config,pn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield un.getPeers(new Kt.GetPeersRequest,yield this.getMetadata({}))}catch(jn){ct.a.warn("Error when getting peers",{error:jn})}}))();if(!pn)return[];const Qn=pn.getPeersList();if(!Qn)return[];const Wn=jn=>{var Fr,Er;return(Er=(Fr=jn.getPeerCreatedTimestamp())===null||Fr===void 0?void 0:Fr.getValue())!==null&&Er!==void 0?Er:0};return Qn.sort((jn,Fr)=>Wn(Fr)-Wn(jn)).map(jn=>Tr(jn))})}getSessions(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:un}=this.config,pn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield un.getPeers(new Kt.GetPeersRequest,yield this.getMetadata({}))}catch(jn){ct.a.warn("Error when getting peers",{error:jn})}}))();if(!pn)return{};const Qn=pn.getPeersList(),Wn={};for(const jn of Qn)Wn[jn.getPeerId()]=jn.getSessionIdsList();return Wn})}getPing(un){const pn=this.getActiveConnection(un);if(pn)return pn.getPing();ct.a.warn("Attempted to get ping time from inactive peer.")}getPingInfo(un){const pn=this.getActiveConnection(un);if(pn)return pn.getPingInfo();ct.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(un){const pn=this.getActiveConnection(un);if(pn)return pn.getLastMessageTimestamp();ct.a.warn("Attempted to get last message time from inactive peer.")}getSessionMetricsMessageCounts(un){const pn=this.getActiveConnection(un);if(pn)return pn.getSessionMetricsMessageCounts();ct.a.warn("Attempted to get session metrics counts from inactive peer.")}isReady(){if(this.config.lanOnlyMode)return!0;const{localPeer:un,receiveSignalStream:pn,iceServers:Qn}=this;return!!(un&&pn&&Qn)}shutdown(){return Qr(this,void 0,void 0,function*(){ct.a.info("Shutdown called on RTC client"),yield this.refreshInterval.stop(),this.receiveSignalStream&&this.receiveSignalStream.cancel();const un=this.connections;this.connections=[],yield this.closeConnections(un);const{localPeer:pn}=this;if(!pn||this.config.lanOnlyMode)return;const{signalingClient:Qn}=this.config;yield(()=>Qr(this,void 0,void 0,function*(){try{const Wn=new Kt.DeletePeerRequest;Wn.setPeerId(pn.getPeerId()),yield Qn.deletePeer(Wn,yield this.getMetadata({}))}catch(Wn){return void ct.a.warn("Error deleting local peer",{error:Wn})}}))()})}createPeer(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createPeer method cannot be used in local-only mode.");const{signalingClient:un}=this.config,pn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield un.createPeer(new Kt.CreatePeerRequest,yield this.getMetadata({}))}catch(Wn){throw new Error(`Was not able to create peer: ${JSON.stringify(Wn)}`)}}))(),Qn=pn?.getPeer();if(!Qn)throw new Error("Response did not provide peer.");return this.localPeer=Qn})}createReceiveSignalStream(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createReceiveSignalStream method cannot be used in local-only mode.");const{signalingClient:un}=this.config,{localPeer:pn,iceServers:Qn}=this;if(!pn||!Qn)return;const{receiveSignalStream:Wn}=this;Wn&&Wn.cancel();const jn=new Kt.ReceiveSignalStreamRequest;jn.setPeerId(pn.getPeerId());const Fr=yield(()=>Qr(this,void 0,void 0,function*(){try{return un.receiveSignalStream(jn,yield this.getMetadata({hasDeadline:!1}))}catch(Er){throw new Error(`Unable to create receive signal stream: ${JSON.stringify(Er)}`)}}))();if(!Fr)throw new Error("Response did not provide stream.");return Fr.on("data",Er=>Qr(this,void 0,void 0,function*(){var wr,tr,ar,hr;const cn=Er.getSignal(),mn=(wr=cn?.getSessionId())===null||wr===void 0?void 0:wr.getValue(),xn=cn?.getSenderId(),Gn=cn?.getReceiverId(),er=(tr=cn?.getSessionCreatedTimestamp())===null||tr===void 0?void 0:tr.getValue();if(!(cn&&mn&&xn&&Gn&&er))return void ct.a.warn("Received signal with missing information.");const cr=this.getActiveConnection(xn);if(cr)if(cr.getSessionId()!==mn){if(ct.a.debug("Received signal: different session for a peer we're already connected to."),(cr.getSessionCreatedTimestamp()||0)>er)return;const gr=new Pn(yield this.createRTCPeerConnection(Qn),{baseConfig:{isOffer:!1,isLan:!1,receive:(br,ur)=>this.config.receive(br,ur),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(br,ur)=>{var nr,Kr;return(Kr=(nr=this.config).onStreamsInfoUpdate)===null||Kr===void 0?void 0:Kr.call(nr,br,ur)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:pn.getPeerId(),localUserId:(hr=pn.getUserId())===null||hr===void 0?void 0:hr.getValue(),remotePeerId:xn},remoteConfig:{sessionId:mn,sessionCreatedTimestamp:er}},br=>this.onCustomDataChannel(xn,br));yield gr.handleSignal(cn),this.connections.push(gr)}else ct.a.debug("Received signal: for an existing connection."),yield cr.handleSignal(cn);else{ct.a.debug("Received signal: new connection.");const gr=new Pn(yield this.createRTCPeerConnection(Qn),{baseConfig:{isOffer:!1,isLan:!1,receive:(br,ur)=>this.config.receive(br,ur),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(br,ur)=>{var nr,Kr;return(Kr=(nr=this.config).onStreamsInfoUpdate)===null||Kr===void 0?void 0:Kr.call(nr,br,ur)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:pn.getPeerId(),localUserId:(ar=pn.getUserId())===null||ar===void 0?void 0:ar.getValue(),remotePeerId:xn},remoteConfig:{sessionId:mn,sessionCreatedTimestamp:er}},br=>this.onCustomDataChannel(xn,br));yield gr.handleSignal(cn),this.connections.push(gr)}})),Fr.on("end",()=>{Fr.cancel(),this.receiveSignalStream=void 0}),Fr.on("error",Er=>{switch(Er.code){case nn.StatusCode.CANCELLED:case nn.StatusCode.UNAVAILABLE:case nn.StatusCode.UNKNOWN:ct.a.debug("Receive signal stream error",{error:Er});break;case nn.StatusCode.UNAUTHENTICATED:ct.a.warn("Receive signal stream error",{error:Er});break;default:ct.a.error("Receive signal stream error",{error:Er})}Fr.cancel(),this.receiveSignalStream=void 0}),this.receiveSignalStream=Fr})}createRTCPeerConnection(un){var pn;return Qr(this,void 0,void 0,function*(){const Qn=(pn=this.config.alternateRTCPeerConnection)!==null&&pn!==void 0?pn:window.RTCPeerConnection;if(!Qn)throw function(){const{userAgent:Wn}=navigator;return Wn.includes("Firefox/")?"Firefox":Wn.includes("Edg/")?"Edge":Wn.includes("Chrome/")?"Chrome":Wn.includes("Safari/")?"Safari":Wn.includes("MSIE/")||Wn.includes("Trident/")?"IE":"Other"}()!=="Chrome"?new Error("WebRTC is not enabled. Please try again with the latest version of Google Chrome."):new Error("WebRTC is not enabled. Please ensure WebRTC is not disabled by ad blocking software.");return new Qn({iceServers:un})})}closeConnections(un){return Qr(this,void 0,void 0,function*(){const pn=yield Dt(un.map(Qn=>Qr(this,void 0,void 0,function*(){yield Qn.close()})));for(const Qn of pn)ct.a.warn("Request to close session failed",{error:Qn})})}getActiveConnection(un){return this.getConnections().find(pn=>pn.getRemotePeerId()===un&&pn.isActive())}update(){var un;return Qr(this,void 0,void 0,function*(){if(this.localConnections=this.localConnections.filter(Er=>Er.isActive()),this.config.lanOnlyMode)return;const{signalingClient:pn}=this.config;if(!this.localPeer||!this.receiveSignalStream||!this.iceServers)return this.localPeer||(yield this.createPeer()),this.iceServers||(yield this.updateIceServers()),void(this.receiveSignalStream||(yield this.createReceiveSignalStream()));yield this.closeConnections(this.connections.filter(Er=>!Er.isActive())),this.connections=this.connections.filter(Er=>Er.isActive());const{localPeer:Qn}=this,Wn=this.connections.filter(Er=>Er.getSessionId).map(Er=>Et(Er.getSessionId()));Qn.setSessionIdsList(Wn);const jn=new Kt.RefreshPeerRequest;jn.setPeer(Qn);try{yield pn.refreshPeer(jn,yield this.getMetadata({}))}catch(Er){Er.code===nn.StatusCode.NOT_FOUND?(ct.a.warn("Peer expired, creating new peer",{peerId:Qn.getPeerId()}),yield this.reset()):ct.a.warn("Error calling RefreshPeer",{error:Er})}const Fr=yield this.getPeers();for(const Er of this.connections)Er.setRemoteDeviceId((un=Fr.find(wr=>wr.id===Er.getRemotePeerId()))===null||un===void 0?void 0:un.deviceId)})}reset(){return Qr(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.isOutgoingConnection=new Map,yield this.createPeer(),yield this.createReceiveSignalStream()})}updateIceServers(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)return;const{iceServersLastUpdate:un,iceServersTtl:pn}=this,Qn=new Date().getTime();if(!un||Qn-un>pn)try{const Wn=(yield this.config.signalingClient.getIceServers(new Kt.GetIceServersRequest,yield this.getMetadata({}))).getIceServers();this.iceServers=JSON.parse(Wn),this.iceServersLastUpdate=Qn}catch(Wn){ct.a.warn("Error in updateIceServers",{error:Wn})}})}setupHandlers(un){const{peerConnection:pn}=un,Qn=un.getSessionCreatedTimestamp();pn.onconnectionstatechange=()=>Qr(this,void 0,void 0,function*(){const Wn=pn.connectionState;if(Qn)switch(Wn){case"connected":Rt.aggregate("rtc-connect-time",new Date().getTime()-Qn);break;case"failed":Rt.increment("rtc-connect-failed")}})}getMetadata(un){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getMetadata method cannot be called in local-only mode");const{getToken:pn}=this.config,{grpcCallDeadline:Qn}=this,{hasDeadline:Wn}=un,jn=Wn===!1?void 0:new Date().getTime()+Qn;return{authorization:yield pn(),deadline:jn}})}}var Ir=et(10),Wr=et(11),qr=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Uo{constructor(un,pn){this.sessionId=un,this.connection=pn,this.sentMessagesCounts=new Map,this.receivedMessagesCounts=new Map,this.sessionId=un,this.connection=pn}incrementMessageSent(un){const pn=Fn(un.header.stream);this.sentMessagesCounts.set(pn,(this.sentMessagesCounts.get(pn)||0)+1)}incrementMessageReceived(un){const pn=Fn(un.header.stream);this.receivedMessagesCounts.set(pn,(this.receivedMessagesCounts.get(pn)||0)+1)}uploadMetrics(){return qr(this,void 0,void 0,function*(){const{sessionId:un}=this,pn=yield this.connection.peerConnection.getStats(),Qn={};pn.forEach(jn=>Qn[jn.id]=jn),ct.a.debug("rtc-stats",Object.assign(Object.assign({},Qn),{sessionId:un}));const Wn=[...new Set(Array.from(this.sentMessagesCounts.keys()).concat(Array.from(this.receivedMessagesCounts.keys())))].reduce((jn,Fr)=>{const Er=this.sentMessagesCounts.get(Fr),wr=this.receivedMessagesCounts.get(Fr);return Object.assign(Object.assign({},jn),{[`${Fr}-sent`]:Er,[`${Fr}-received`]:wr})},{sessionId:un});ct.a.debug("rtc-message-report",Wn)})}}function eo(kn,un){return Fn(kn)===Fn(un)}var Yr=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class _o{constructor(un,pn){this.peerConnection=un,this.config=pn,this.connectTimeoutMs=10*st.a.second,this.gatherIceTimeoutMs=5*st.a.second,this.pingUpdateTimeoutMs=2*st.a.second,this.streamLatestTimestamp=new Map,this.closeCalled=!1,this.connectCalled=!1,this.sentOffer=!1,this.receivedIceCandidate=!1;const{isOffer:Qn}=pn;Qn?this.initializeChannels(un):un.ondatachannel=Wn=>{switch(Wn.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=Wn.channel;break;case"stream.reliable":this.reliableStreamChannel=Wn.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=Wn.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=Wn.channel}this.setupChannel(Wn.channel)},this.sessionMetrics=new Uo(this.getSessionId(),this)}connect(){return Yr(this,void 0,void 0,function*(){if(this.connectCalled)return;this.connectCalled=!0,this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:Wn}=this;Wn&&this.sendSystemMessage(Wn,{type:"ping"})},this.pingUpdateTimeoutMs),this.connectTimeout=setTimeout(()=>Yr(this,void 0,void 0,function*(){this.isReady()||(ct.a.warn("RTC connect timed out, closing connection"),yield this.close())}),this.connectTimeoutMs);const{peerConnection:un,config:{isOffer:pn,sessionId:Qn}}=this;if(pn){const Wn=yield un.createOffer();yield un.setLocalDescription(Wn)}pn&&(this.gatherIceTimeout=setTimeout(()=>Yr(this,void 0,void 0,function*(){this.sentOffer||(ct.a.warn("ICE gathering timed out"),this.receivedIceCandidate?(ct.a.warn("Attempting to connect with partial ICE candidate pool"),yield this.sendOffer()):yield this.close())}),this.gatherIceTimeoutMs),un.onicecandidate=Wn=>Yr(this,void 0,void 0,function*(){Wn.candidate?this.receivedIceCandidate=!0:yield this.sendOffer()}),un.onicegatheringstatechange=()=>Yr(this,void 0,void 0,function*(){un.iceGatheringState==="complete"&&(yield this.sendOffer())}),un.onnegotiationneeded=()=>{ct.a.debug("Negotiation needed",{sessionId:Qn})})})}handleSignal(un){return Yr(this,void 0,void 0,function*(){const{peerConnection:pn,config:{sessionId:Qn,sendSignal:Wn}}=this,{description:jn}=JSON.parse(un.payload);if(ct.a.debug("Handling signal",{sessionId:Qn,description:JSON.stringify(jn)}),jn)if(pn.signalingState!=="stable"||pn.connectionState!=="connected")if(pn.remoteDescription)ct.a.warn(`Received SDP signal during negotiation when remote description is already set: ${JSON.stringify(un)}`);else if(jn.type==="offer"){yield pn.setRemoteDescription(jn);const Fr=yield pn.createAnswer();yield pn.setLocalDescription(Fr),yield Wn({payload:JSON.stringify({description:Fr})})}else jn.type==="answer"&&(yield pn.setRemoteDescription(jn));else ct.a.warn(`Received SDP signal when signaling is stable and connected: ${JSON.stringify(un)}`);else ct.a.warn(`Received non-SDP signal: ${JSON.stringify(un)}`)})}send(un,pn){const Qn=this.getChannelFromLabel(pn.channelLabel);Qn?this.sendOnChannel(Qn,un):ct.a.warn("Send called with unexpected channel label",{channelLabel:pn.channelLabel})}controlRemoteStream(un){this.sendSystemMessage(Et(this.reliableStreamChannel),{type:"stream-control",streamControl:un})}isActive(){return new Set(["new","connecting","connected"]).has(this.peerConnection.connectionState)}isReady(){const{peerConnection:un,latestTtlStreamChannel:pn,reliableStreamChannel:Qn,latestTryOnceStreamChannel:Wn}=this;return!!(Qn&&pn&&Wn)&&un.connectionState==="connected"&&Qn.readyState==="open"&&pn.readyState==="open"&&Wn.readyState==="open"}isClosed(){const{peerConnection:un,reliableStreamChannel:pn,latestTryOnceStreamChannel:Qn,latestTtlStreamChannel:Wn}=this;return!(un.connectionState!=="closed"||pn!==void 0&&pn.readyState!=="closed"||Qn!==void 0&&Qn.readyState!=="closed"||Wn!==void 0&&Wn.readyState!=="closed")}needsClosing(){const{peerConnection:un,latestTtlStreamChannel:pn,reliableStreamChannel:Qn,latestTryOnceStreamChannel:Wn}=this;if(this.isClosed())return!1;const jn=new Set(["closing","closed"]),Fr=Er=>Er&&jn.has(Er.readyState);return hn(un)||Fr(pn)||Fr(Qn)||Fr(Wn)}close(){return Yr(this,void 0,void 0,function*(){this.closeCalled||(this.closeCalled=!0,yield this.sessionMetrics.uploadMetrics(),this.pingUpdateTimeout&&clearInterval(this.pingUpdateTimeout),this.connectTimeout&&clearTimeout(this.connectTimeout),this.gatherIceTimeout&&clearTimeout(this.gatherIceTimeout),this.peerConnection.close())})}getPing(){return this.pingTimeMs}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionId(){return this.config.sessionId}getRemotePeer(){return this.config.remotePeer}initializeChannels(un){this.latestTtlStreamChannel=un.createDataChannel("stream.latest-ttl",Vt),this.reliableStreamChannel=un.createDataChannel("stream.reliable",It),this.latestReliableStreamChannel=un.createDataChannel("stream.latest-reliable",$t),this.latestTryOnceStreamChannel=un.createDataChannel("stream.latest-try-once",Ht),this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}sendOffer(){return Yr(this,void 0,void 0,function*(){if(this.sentOffer||(this.sentOffer=!0,hn(this.peerConnection)))return;const{peerConnection:un,config:{sendSignal:pn}}=this,Qn=yield un.createOffer();yield un.setLocalDescription(Qn);const Wn={payload:JSON.stringify({description:Qn})};yield pn(Wn)})}getChannelFromLabel(un){switch(un){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(un,pn){let Qn;try{Qn=Object(jt.encode)(JSON.stringify(pn))}catch(Wn){return void ct.a.warn("Failed to encode RTC message",{error:Wn})}try{un.send(Qn),this.sessionMetrics.incrementMessageSent(pn)}catch(Wn){ct.a.warn("Failed to send message to channel",{error:Wn,channel:un.label})}}channelNotRecognized(un){return un!==this.latestTtlStreamChannel&&un!==this.latestReliableStreamChannel&&un!==this.latestTryOnceStreamChannel&&un!==this.reliableStreamChannel}setupChannel(un){un.onmessage=pn=>{if(this.channelNotRecognized(un))return void ct.a.warn("Received message on unrecognized data channel.");let Qn;try{Qn=JSON.parse(Object(jt.decode)(pn.data))}catch(Wn){return void ct.a.warn("Received unparseable RTC message",{error:Wn,channel:un.label})}if(this.lastMessageTimestamp=new Date().getTime(),Qn=wn(Qn),this.sessionMetrics.incrementMessageReceived(Qn),!this.handleSystemMessage(un,Qn)){if(!this.hasCapabilities(Qn))return void ct.a.warn("Received RTC message that was not within the capability scope of the connection.");(un===this.latestTryOnceStreamChannel||un===this.latestTtlStreamChannel||un===this.latestReliableStreamChannel)&&!this.isLatestMessage(Qn)||this.config.receive(this.config.remotePeer.id,Qn)}},un.onerror=pn=>{ct.a.warn(`Channel error: ${pn.error}`,{error:pn.error,sessionId:this.getSessionId(),channelLabel:un.label})},un.onopen=()=>{ct.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:un.label})},un.onclose=()=>{const pn={bufferedAmount:un.bufferedAmount,sessionId:this.getSessionId(),channelLabel:un.label};this.closeCalled===!1?ct.a.debug("Unexpected channel closed",pn):ct.a.debug("Channel closed",pn)}}handleSystemMessage(un,pn){switch(pn.header.stream.streamType){case"ping":return this.sendSystemMessage(un,{type:"pong",timestamp:Et(pn.payload.ping)}),!0;case"pong":{const Qn=new Date().getTime()-Et(pn.payload.pong);return this.pingTimeMs=Qn,Rt.aggregate("rtc-ping-time",Qn),!0}case"stream-control":return!0;default:return!1}}sendSystemMessage(un,pn){if(un.readyState!=="open")return;const Qn={entityId:Et(this.config.localPeer.deviceId||this.config.localPeer.userId),streamName:`$.${pn.type}`,streamType:pn.type};let Wn;switch(pn.type){case"ping":Wn={ping:new Date().getTime()};break;case"pong":Wn={pong:pn.timestamp};break;case"stream-control":Wn={streamControl:pn.streamControl}}this.sendOnChannel(un,gn(Qn,Wn))}hasCapabilities(un){var pn,Qn;const{localPeer:Wn,remotePeer:jn}=this.config,Fr=(pn=Wn.capabilitySet.streaming)===null||pn===void 0?void 0:pn.streams,Er=Fr&&Fr.some(ar=>ar.receive&&eo(ar.stream,un.header.stream)),wr=(Qn=jn.capabilitySet.streaming)===null||Qn===void 0?void 0:Qn.streams,tr=wr&&wr.some(ar=>ar.send&&eo(ar.stream,un.header.stream));return Er||tr}isLatestMessage(un){const pn=Fn(un.header.stream),Qn=(this.streamLatestTimestamp.get(pn)||0)<=un.header.created;return Qn&&this.streamLatestTimestamp.set(pn,un.header.created),Qn}}var ro=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Wn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Wn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Fo{constructor(un){this.config=un,this.connections=[],this.connectingSessions=new Map,this.updateInterval=mt({func:()=>ro(this,void 0,void 0,function*(){try{yield this.update()}catch(pn){ct.a.warn("RTC update failed",{error:pn})}}),delay:250*st.a.millisecond,immediate:!0}),this.localPeer=this.createPeer()}send(un,pn,Qn){const Wn=this.getActiveConnection(un);Wn?Wn.isReady()?Wn.send(pn,Qn):ct.a.warn("Attempted to send with an active connection to that peer which was not yet ready."):ct.a.warn("Attempted to send with no active connection to that peer.")}controlRemoteStream(un,pn){const Qn=this.getActiveConnection(un);Qn?Qn.isReady()?Qn.controlRemoteStream(pn):ct.a.warn("Attempted to control remote stream with an active connection to that peer which was not yet ready."):ct.a.warn("Attempted to control remote stream with no active connection to that peer.")}connect(un){return ro(this,void 0,void 0,function*(){const pn=yield this.getLocalPeer();if(this.getActiveConnection(un))return void ct.a.warn("Attempted to connect to peer with an already active connection.");let Qn;try{Qn=yield this.config.signalingClient.createSession(yield this.config.getToken(),{offerPeerId:pn.id,answerPeerId:un})}catch(Wn){Object(Ir.a)(Wn,Wr.a,jn=>jn.statusCode===404),ct.a.warn("Attempted to connect to peer that does not exist.")}if(Qn)for(this.connectingSessions.set(Qn.id,new Date().getTime()),yield this.connectToSession(Qn);;)switch(yield Object(at.a)(.1),this.getConnectionStatus(un)){case"connecting":continue;case"connected":return Qn.id;case"disconnected":return}})}getConnectionStatus(un){const pn=this.getActiveConnection(un);return pn?pn.isReady()?"connected":"connecting":"disconnected"}getIceMode(un){const pn=this.getActiveConnection(un);if(pn)return pn.iceMode}disconnect(un){return ro(this,void 0,void 0,function*(){const pn=this.getActiveConnection(un);pn&&(yield this.closeConnection(pn))})}getLocalPeer(){return ro(this,void 0,void 0,function*(){return yield this.localPeer})}getPeers(){return ro(this,void 0,void 0,function*(){return yield this.config.signalingClient.getPeers(yield this.config.getToken())})}getPing(un){const pn=this.getActiveConnection(un);if(pn)return pn.getPing();ct.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(un){const pn=this.getActiveConnection(un);if(pn)return pn.getLastMessageTimestamp();ct.a.warn("Attempted to get ping time from inactive peer.")}shutdown(){return ro(this,void 0,void 0,function*(){yield this.updateInterval.stop();const un=this.connections;this.connections=[],yield this.closeConnections(un)})}closeConnection(un){return ro(this,void 0,void 0,function*(){this.connectingSessions.delete(un.getSessionId()),yield un.close();try{yield this.config.signalingClient.deleteSession(yield this.config.getToken(),un.getSessionId())}catch(pn){Object(Ir.a)(pn,Wr.a,Qn=>Qn.statusCode===404)}})}getSessions(){return ro(this,void 0,void 0,function*(){const un=yield this.getLocalPeer();return(yield this.config.signalingClient.getSessions(yield this.config.getToken())).filter(pn=>pn.offer.peer.id===un.id||pn.answer.peer.id===un.id)})}createPeer(){return ro(this,void 0,void 0,function*(){return yield this.config.signalingClient.createPeer(yield this.config.getToken(),{capabilitySet:this.config.capabilitySet||{}})})}createRTCPeerConnection(un={}){return ro(this,void 0,void 0,function*(){return new(this.config.alternateRTCPeerConnection||RTCPeerConnection)(Object.assign({iceServers:yield this.config.signalingClient.getIceServers(yield this.config.getToken())},un))})}closeConnections(un){return ro(this,void 0,void 0,function*(){const pn=yield Dt(un.map(Qn=>ro(this,void 0,void 0,function*(){yield this.closeConnection(Qn)})));for(const Qn of pn)ct.a.warn("Request to close session failed",{error:Qn})})}reset(){return ro(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.connectingSessions=new Map,this.localPeer=this.createPeer(),yield this.localPeer})}getActiveConnection(un){return this.connections.find(pn=>pn.getRemotePeer().id===un&&pn.isActive())}update(){return ro(this,void 0,void 0,function*(){const un=yield this.getLocalPeer();try{yield this.config.signalingClient.refreshPeer(yield this.config.getToken(),un.id)}catch(pn){Object(Ir.a)(pn,Wr.a,Qn=>Qn.statusCode===404),ct.a.warn("Peer expired, creating new peer",{peerId:un.id}),yield this.reset()}yield this.handleSessions(yield this.getSessions())})}handleSessions(un){return ro(this,void 0,void 0,function*(){yield this.syncConnectionsAndSessions(un);const pn=un.map(Qn=>({session:Qn,connection:this.connections.find(Wn=>Wn.getSessionId()===Qn.id)}));yield Promise.all(pn.map(({session:Qn,connection:Wn})=>ro(this,void 0,void 0,function*(){return yield this.maintainConnection(Qn,Wn)})))})}syncConnectionsAndSessions(un){return ro(this,void 0,void 0,function*(){const pn=new Set(un.map(jn=>jn.id)),Qn=jn=>pn.has(jn.getSessionId())||this.connectingSessions.has(jn.getSessionId());this.connections=this.connections.filter(jn=>Qn(jn));const Wn=this.connections.filter(jn=>!Qn(jn)||jn.needsClosing());yield Promise.all(Wn.map(jn=>ro(this,void 0,void 0,function*(){yield this.closeConnection(jn)})))})}maintainConnection(un,pn){return ro(this,void 0,void 0,function*(){const Qn=yield this.getLocalPeer(),Wn=un.offer.peer.id===Qn.id;if(pn){if(pn.isReady())try{yield this.config.signalingClient.refreshSession(yield this.config.getToken(),un.id)}catch(jn){Object(Ir.a)(jn,Wr.a,Fr=>Fr.statusCode===404),ct.a.debug("Refresh session not found",{sessionId:un.id})}else if(pn.isActive())try{yield this.consumeSignals(pn)}catch(jn){ct.a.warn("Failed to ingest signals, closing connection",{error:jn}),yield this.closeConnection(pn)}}else{if(Wn)return;yield this.connectToSession(un)}})}connectToSession(un){return ro(this,void 0,void 0,function*(){const pn=yield this.getLocalPeer(),Qn=un.offer.peer.id===pn.id,Wn=yield this.createRTCPeerConnection(),jn=new _o(Wn,{localPeer:Qn?un.offer.peer:un.answer.peer,remotePeer:Qn?un.answer.peer:un.offer.peer,sessionId:un.id,isOffer:Qn,sendSignal:Fr=>this.sendSignal(un.id,Fr),receive:(Fr,Er)=>this.config.receive(Fr,Er)});if(this.connections.find(Fr=>Fr.getSessionId()===un.id))return ct.a.warn("connectToSession called on a session that already has a connection.",{sessionId:un.id}),void(yield jn.close());this.setupHandlers(jn),this.connections.push(jn);try{yield jn.connect()}catch(Fr){ct.a.warn("Failed to handle negotiation, closing connection",{error:Fr}),yield this.closeConnection(jn)}})}setupHandlers(un){const{peerConnection:pn}=un,Qn=un.getSessionId();pn.onconnectionstatechange=()=>ro(this,void 0,void 0,function*(){const Wn=this.connectingSessions.get(Qn);if(Wn===void 0)return;const jn=pn.connectionState;switch(hn(pn)&&this.connectingSessions.delete(Qn),jn){case"connected":{this.connectingSessions.delete(Qn);const Fr=new Date().getTime()-Wn;Rt.aggregate("rtc-connect-time",Fr);break}case"failed":Rt.increment("rtc-connect-failed"),yield this.closeConnection(un)}})}consumeSignals(un){return ro(this,void 0,void 0,function*(){let pn=[];try{pn=yield this.config.signalingClient.takeSignals(yield this.config.getToken(),un.getSessionId())}catch(Qn){Object(Ir.a)(Qn,Wr.a,Wn=>Wn.statusCode===404)}for(const Qn of pn)yield un.handleSignal(Qn)})}sendSignal(un,pn){return ro(this,void 0,void 0,function*(){try{yield this.config.signalingClient.addSignals(yield this.config.getToken(),un,{signals:[pn]})}catch(Qn){Object(Ir.a)(Qn,Wr.a,Wn=>Wn.statusCode===404)}})}}},function(s,o,et){var tt={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let nt;const rt=new Uint8Array(16);function it(){if(!nt&&(nt=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!nt))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return nt(rt)}const ot=[];for(let at=0;at<256;++at)ot.push((at+256).toString(16).slice(1));function st(at,lt=0){return(ot[at[lt+0]]+ot[at[lt+1]]+ot[at[lt+2]]+ot[at[lt+3]]+"-"+ot[at[lt+4]]+ot[at[lt+5]]+"-"+ot[at[lt+6]]+ot[at[lt+7]]+"-"+ot[at[lt+8]]+ot[at[lt+9]]+"-"+ot[at[lt+10]]+ot[at[lt+11]]+ot[at[lt+12]]+ot[at[lt+13]]+ot[at[lt+14]]+ot[at[lt+15]]).toLowerCase()}o.a=function(at,lt,ut){if(tt.randomUUID&&!lt&&!at)return tt.randomUUID();const dt=(at=at||{}).random||(at.rng||it)();if(dt[6]=15&dt[6]|64,dt[8]=63&dt[8]|128,lt){ut=ut||0;for(let ht=0;ht<16;++ht)lt[ut+ht]=dt[ht];return lt}return st(dt)}},,function(s,o,et){et.r(o),et.d(o,"LogClient",function(){return ot});var tt=et(28),nt=et(10),rt=et(11),it=function(st,at,lt,ut){return new(lt||(lt=Promise))(function(dt,ht){function ct(gt){try{ft(ut.next(gt))}catch(yt){ht(yt)}}function pt(gt){try{ft(ut.throw(gt))}catch(yt){ht(yt)}}function ft(gt){var yt;gt.done?dt(gt.value):(yt=gt.value,yt instanceof lt?yt:new lt(function(Ut){Ut(yt)})).then(ct,pt)}ft((ut=ut.apply(st,at||[])).next())})};class ot extends tt.a{log(at){return it(this,void 0,void 0,function*(){const lt=ot.token;try{yield this.fetch("logs",{token:lt,method:"POST",body:JSON.stringify({logs:at}),allowUnsafeRetries:!0})}catch(ut){Object(nt.a)(ut,rt.a,dt=>dt.statusCode===401&<!==void 0),ot.token===lt&&delete ot.token,yield this.log(at)}})}}}])})})(dist$1);function defined$1$1(s,o){if(s!==void 0)return s;throw new Error(o||"Value is undefined")}let FORMANT_API_URL$1="https://api.formant.io";typeof window<"u"&&(FORMANT_API_URL$1=window.FORMANT_API_URL||FORMANT_API_URL$1);let urlParams$2=new URLSearchParams("");typeof window<"u"&&(urlParams$2=new URLSearchParams(window.location.search));const envDev=urlParams$2.get("formant_dev");envDev&&(FORMANT_API_URL$1="https://api-dev.formant.io");const envStage=urlParams$2.get("formant_stage");envStage&&(FORMANT_API_URL$1="https://api-stage.formant.io");const envLocal=urlParams$2.get("formant_local");envLocal&&(FORMANT_API_URL$1="https://api.formant.local");const millisecond$3$1=1,second$3$1=1e3,minute$3$1=60*second$3$1,hour$3$1=60*minute$3$1,day$3$1=24*hour$3$1,week$3$1=7*day$3$1,month$3$1=30*day$3$1,year$3$1=365*day$3$1,duration$3$1={millisecond:millisecond$3$1,second:second$3$1,minute:minute$3$1,hour:hour$3$1,day:day$3$1,week:week$3$1,month:month$3$1,year:year$3$1};function filterDataByType$2(s,o){return s.filter(et=>o.includes(et.type))}function filterDataByTime$2(s,o,et){const tt=o.getTime(),nt=et.getTime();return s.map(rt=>({...rt,points:rt.points.filter(([it])=>it>=tt&&itrt.length>0)}let StoreCache$2=class{constructor({capacity:o,timeout:et}={}){__publicField$1(this,"entries",new Map),__publicField$1(this,"metadata",new Map),__publicField$1(this,"capacity"),__publicField$1(this,"timeout"),this.capacity=o||1e4,this.timeout=et||duration$3$1.minute}get(o,et){const tt=this.keyToCacheKey(o),nt=this.entries.get(tt),rt=this.metadata.get(tt);return(nt===void 0||rt&&rt?.expiration.getTime()this.capacity&&this.deleteOldestEntry()}clear(){this.entries.clear(),[...this.metadata.values()].forEach(o=>o.generating=!1)}clearKey(o){this.metadata.delete(o),this.entries.delete(o)}keyToCacheKey(o){return JSON.stringify(o)}deleteOldestEntry(){if(this.metadata.size<1)return;const[o]=[...this.metadata.entries()].reduce(([et,tt],[nt,rt])=>rt.expiration.getTime(){et.then(rt=>{const it=this.metadata.get(tt);!(it!=null&&it.generating)||this.set(o,rt)})},0)}},QueryStore$2=class{constructor(){__publicField$1(this,"queryStoreCache",new StoreCache$2({capacity:1e4,timeout:20*duration$3$1.second})),__publicField$1(this,"liveQueryStoreCache",new StoreCache$2({capacity:1e4,timeout:200*duration$3$1.millisecond}))}moduleQuery(o,et,tt,nt,rt,it=!1){const ot={...o,names:[...et],types:[...tt]},st=this.query(ot,nt,rt,it);return st===void 0||st==="too much data"?st:filterDataByType$2(st,tt)}query(o,et,tt,nt=!1){const rt={...o,start:startOfMinute$1(et).toISOString(),end:nt?tt.toISOString():addMinutes$1(roundToNearestMinutes$1(tt),1).toISOString(),latestOnly:nt},it=tt>addSeconds$1(new Date,-20);let ot;return it?ot=this.liveQueryCache(rt):ot=this.queryCache(rt),!ot||ot==="too much data"||nt?ot:filterDataByTime$2(ot,et,tt)}queryCache(o){return this.queryStoreCache.get(o,async()=>{try{return await Fleet$1.queryTelemetry(o)}catch(et){throw et}})}liveQueryCache(o){return this.liveQueryStoreCache.get(o,async()=>{try{return await Fleet$1.queryTelemetry(o)}catch(et){throw et}})}};const queryStore$1=new QueryStore$2;let App$1=class{static sendAppMessage(o){window.parent.postMessage(o,"*")}static getCurrentModuleContext(){let o=new URLSearchParams("");return typeof window<"u"&&(o=new URLSearchParams(window.location.search)),o.get("module")}static async getCurrentModuleConfiguration(){let o=new URLSearchParams("");typeof window<"u"&&(o=new URLSearchParams(window.location.search));const et=o.get("configuration");return et===null||et.trim()===""?void 0:(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/module-configurations/`+et,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).configuration}static isModule(){return this.getCurrentModuleContext()!==null}static goToTime(o){this.sendAppMessage({type:"go_to_time",time:o.getTime()})}static goToDevice(o){this.sendAppMessage({type:"go_to_device",deviceId:o})}static showMessage(o){this.sendAppMessage({type:"show_message",message:o})}static requestModuleData(){const o=this.getCurrentModuleContext();if(!o)throw new Error("No module context");this.sendAppMessage({type:"request_module_data",module:o})}static setModuleDateTimeRange(o,et){const tt=this.getCurrentModuleContext();if(!tt)throw new Error("No module context");this.sendAppMessage({type:"set_module_data_time_range",module:tt,before:o,after:et||0})}static refreshAuthToken(){const o=this.getCurrentModuleContext();if(!o)throw new Error("No module context");this.sendAppMessage({type:"refresh_auth_token",module:o})}static sendChannelData(o,et){const tt=this.getCurrentModuleContext();if(!tt)throw new Error("No module context");this.sendAppMessage({type:"send_channel_data",source:tt,channel:o,data:et})}static setupModuleMenus(o){const et=this.getCurrentModuleContext();if(!et)throw new Error("No module context");this.sendAppMessage({type:"setup_module_menus",module:et,menus:o})}static addMenuListener(o){window.addEventListener("message",et=>{const tt=et.data;tt.type==="module_menu_item_clicked"&&o(tt.menu)})}static addAccessTokenRefreshListener(o){window.addEventListener("message",et=>{const tt=et.data;tt.type==="auth_token"&&o(tt.token)})}static addModuleDataListener(o){const et=this.getCurrentModuleContext();et&&this.sendAppMessage({type:"request_module_data",module:et}),window.addEventListener("message",tt=>{const nt=tt.data;nt.type==="module_data"&&o({streams:nt.streams,time:nt.time,queryRange:nt.queryRange})})}static addStreamListener(o,et,tt){const nt=rt=>{const it=rt.data;if(it.type==="module_data"){const{start:ot,end:st}=it.queryRange;tt(queryStore$1.moduleQuery({},o,et,new Date(ot),new Date(st),!1))}};return window.addEventListener("message",nt),()=>window.removeEventListener("message",nt)}static addModuleConfigurationListener(o){window.addEventListener("message",et=>{const tt=et.data;tt.type==="module_configuration"&&o(tt)})}static addChannelDataListener(o,et){window.addEventListener("message",tt=>{const nt=tt.data;nt.type==="channel_data"&&nt.channel===o&&et({source:nt.source,data:nt.data})})}static requestOverviewDevices(o){this.sendAppMessage({type:"request_devices"}),window.addEventListener("message",et=>{const tt=et.data;o(tt)})}static async prompt(o,et){return new Promise(tt=>{const nt=Math.random().toString();this.sendAppMessage({type:"prompt",promptId:nt,schema:o,okText:et?.okText,cancelText:et?.cancelText});const rt=it=>{const ot=it.data;ot.type==="prompt_response"&&ot.promptId===nt&&tt(ot.data),window.removeEventListener("message",rt)};window.addEventListener("message",rt)})}};const _Authentication=class{static async login(s,o){try{const et=await fetch(`${FORMANT_API_URL$1}/v1/admin/auth/login`,{method:"POST",body:JSON.stringify({email:s,password:o}),headers:{"Content-Type":"application/json"}}),tt=await et.json();if(et.status!==200)throw new Error(tt.message);return await _Authentication.loginWithToken(tt.authentication.accessToken,tt.authentication.refreshToken),tt.authentication}catch(et){return _Authentication.waitingForAuth.forEach(tt=>tt(!1)),_Authentication.waitingForAuth=[],Promise.reject(et)}}static async loginWithToken(s,o){const et=JSON.parse(atob(s.split(".")[1]));try{let tt;if(_Authentication.isShareToken=et["formant:claims"]&&et["formant:claims"].type=="share",et["formant:claims"]&&(_Authentication.currentOrganization=et["formant:claims"].organizationId),et["custom:organization_id"]&&(_Authentication.currentOrganization=et["custom:organization_id"]),_Authentication.isShareToken||(tt=et.sub),et["formant:claims"]&&et["formant:claims"].userId&&(tt=et["formant:claims"].userId),tt){const nt=await fetch(`${FORMANT_API_URL$1}/v1/admin/users/${tt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+s}}),rt=await nt.json();if(nt.status!==200)throw new Error(rt.message);_Authentication.currentUser=rt}_Authentication.token=s,_Authentication.waitingForAuth.forEach(nt=>nt(!0))}catch(tt){console.error(tt),_Authentication.waitingForAuth.forEach(nt=>nt(!1))}_Authentication.waitingForAuth=[],o&&(_Authentication.refreshToken=o,setInterval(async()=>{if(_Authentication.refreshToken){const tt=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:_Authentication.refreshToken})})).json();_Authentication.token=tt.authentication.accessToken}},1e3*60*60))}static isAuthenticated(){return _Authentication.token!==void 0}static getCurrentUser(){return _Authentication.currentUser}static async waitTilAuthenticated(){return _Authentication.token!==void 0?!0:new Promise(s=>{_Authentication.waitingForAuth.push(function(o){s(o)})})}static async listenForRefresh(){App$1.addAccessTokenRefreshListener(s=>{this.loginWithToken(s)}),setInterval(async()=>{App$1.refreshAuthToken()},1e3*60*60)}};let Authentication$1=_Authentication;__publicField$1(Authentication$1,"token");__publicField$1(Authentication$1,"refreshToken");__publicField$1(Authentication$1,"currentUser");__publicField$1(Authentication$1,"currentOrganization");__publicField$1(Authentication$1,"isShareToken",!1);__publicField$1(Authentication$1,"defaultDeviceId");__publicField$1(Authentication$1,"waitingForAuth",[]);function delay$2(s){return new Promise(o=>setTimeout(o,s))}let DataChannel$1=class{constructor(o){__publicField$1(this,"ready",!1),__publicField$1(this,"listeners",[]),__publicField$1(this,"openListeners",[]),__publicField$1(this,"closeListeners",[]),__publicField$1(this,"errorListeners",[]),__publicField$1(this,"binaryListeners",[]),__publicField$1(this,"error"),__publicField$1(this,"decoder",new TextDecoder),this.dataChannel=o,this.dataChannel.binaryType="arraybuffer",this.dataChannel.onopen=()=>{this.ready=!0,this.openListeners.forEach(et=>et())},this.dataChannel.onclose=()=>{this.ready=!1,this.closeListeners.forEach(et=>et())},this.dataChannel.onerror=et=>{console.error(et),this.error="An error occurred in DataChannel",this.errorListeners.forEach(tt=>tt(et))},this.dataChannel.onmessage=et=>{this.listeners.forEach(tt=>{const nt=new Uint8Array(et.data),rt=this.decoder.decode(nt);tt(rt)}),this.binaryListeners.forEach(tt=>{tt(new Uint8Array(et.data))})}}addOpenListener(o){this.openListeners.push(o)}removeOpenListener(o){this.openListeners=this.openListeners.filter(et=>et!==o)}addCloseListener(o){this.closeListeners.push(o)}removeCloseListener(o){this.closeListeners=this.closeListeners.filter(et=>et!==o)}addErrorListener(o){this.errorListeners.push(o)}removeErrorListener(o){this.errorListeners=this.errorListeners.filter(et=>et!==o)}async waitTilReady(){return this.ready?!0:new Promise((o,et)=>{let tt=window.setInterval(()=>{this.ready&&(window.clearInterval(tt),o(!0)),this.error&&et(this.error)},10)})}send(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}sendBinary(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}addListener(o){this.listeners.push(o)}removeListener(o){const et=this.listeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.listeners.splice(et,1)}addBinaryListener(o){this.binaryListeners.push(o)}removeBinaryListener(o){const et=this.binaryListeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.binaryListeners.splice(et,1)}},CaptureStream$1=class{constructor(o){__publicField$1(this,"token"),this.captureSession=o}async ingestJSON(o){if(!this.token){const et=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/capture-sessions/${this.captureSession.code}/authenticate`,{method:"POST"})).json();this.token=et.token}await fetch(`${FORMANT_API_URL$1}/v1/ingest`,{method:"POST",body:JSON.stringify({deviceId:this.captureSession.deviceId,name:this.captureSession.streamName,type:"json",points:[[Date.now(),JSON.stringify(o)]]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+this.token}})}},Manipulator$1=class{constructor(o,et){__publicField$1(this,"currentListeners",[]),__publicField$1(this,"onRealtimeMessage",(tt,nt)=>{nt.payload.jointState&&this.currentListeners.forEach(rt=>{nt.payload.jointState&&rt(nt.payload.jointState)})}),this.device=o,this.config=et}async synchronize(){this.device.addRealtimeListener(this.onRealtimeMessage),this.device.startListeningToRealtimeDataStream(this.config.currentJointStateStream)}async desynchronize(){this.device.removeRealtimeListener(this.onRealtimeMessage),this.device.stopListeningToRealtimeDataStream(this.config.currentJointStateStream)}async addCurrentJointStateListener(o){this.currentListeners.push(o)}},RequestDataChannel$1=class{constructor(o,et,tt){__publicField$1(this,"channel"),__publicField$1(this,"requestIdToResponseMap",new Map),this.device=o,this.channel_name=et,this.timeout=tt}addOpenListener(o){defined$1$1(this.channel,"channel not initalized").addOpenListener(o)}removeOpenListener(o){defined$1$1(this.channel,"channel not initalized").removeOpenListener(o)}addCloseListener(o){defined$1$1(this.channel,"channel not initalized").addCloseListener(o)}removeCloseListener(o){defined$1$1(this.channel,"channel not initalized").removeCloseListener(o)}addErrorListener(o){defined$1$1(this.channel,"channel not initalized").addErrorListener(o)}removeErrorListener(o){defined$1$1(this.channel,"channel not initalized").removeErrorListener(o)}},BinaryRequestDataChannel$1=class extends RequestDataChannel$1{constructor(){super(...arguments),__publicField$1(this,"RESPONSE_SUCCESS_BYTE",0),__publicField$1(this,"decoder",new TextDecoder)}generateBinaryId(){const o=new Uint8Array(16);for(let et=0;et{const et=o.slice(0,16).toString();if(et.length===0)throw new Error("Invalid response");const tt=o.slice(16);if(tt.length===0)throw new Error("Invalid response");this.requestIdToResponseMap.has(et)&&this.requestIdToResponseMap.set(et,tt)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateBinaryId(),it=rt.toString();tt.set(it,!0),et.sendBinary(new Uint8Array([...rt,...o]));const ot=new Date().getTime();for(;new Date().getTime(){const et=JSON.parse(o),{id:tt,data:nt,error:rt}=et;if(!tt)throw new Error("Invalid response");if(!nt&&!rt)throw new Error("Invalid response");this.requestIdToResponseMap.has(tt)&&this.requestIdToResponseMap.set(tt,et)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateTextId();tt.set(rt,!0),et.send(JSON.stringify({id:rt,data:o}));const it=new Date().getTime();for(;new Date().getTime(){this.realtimeListeners.forEach(it=>it(nt,rt))}),this.id=o,this.name=et,this.organizationId=tt}async getLatestTelemetry(){return(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}async getConfiguration(){let o=await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}});const et=await o.json();if(!et.state.reportedConfiguration)throw new Error("Device has no configuration, has it ever been turned on?");const tt=et.state.reportedConfiguration.version;return o=await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/${this.id}/configurations/${tt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}}),(await o.json()).document}async getFileUrl(o){return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[o]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).fileUrls}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error(`Realtime connection hasn't been started for ${this.id}`)}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async startRealtimeConnection(o){if(this.rtcClient)throw new Error(`Already created realtime connection to device ${this.id}`);{let et;if(rtcClientVersion==="1"?et=new dist$1.exports.RtcClientV1({signalingClient:new dist$1.exports.RtcSignalingClient(FORMANT_API_URL$1+"/v1/signaling"),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:this.handleMessage}):et=new dist$1.exports.RtcClient({signalingClient:new dist$1.exports.SignalingPromiseClient(FORMANT_API_URL$1,null,null),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:this.handleMessage,sessionType:o}),et.isReady)for(;!et.isReady();)await delay$2(100);const tt=(await et.getPeers()).find(nt=>nt.deviceId===this.id);if(!tt)throw new Error("Cannot find peer, is the robot offline?");for(this.remoteDevicePeerId=tt.id,await et.connect(this.remoteDevicePeerId);et.getConnectionStatus(this.remoteDevicePeerId)!=="connected";)await delay$2(100);this.rtcClient=et}}async sendRealtimeMessage(o,et={channelLabel:"stream.reliable"}){const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.send(defined$1$1(nt).id,o,et)}addRealtimeListener(o){this.realtimeListeners.push(o)}removeRealtimeListener(o){const et=this.realtimeListeners.indexOf(o);if(et===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(et,1)}async getRealtimeAudioStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="audio_common_msgs/AudioData"&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});return st}async getRealtimeVideoStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="formant/H264VideoFrame"&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});return st}async getRealtimeManipulators(){var o;const et=await this.getConfiguration(),tt=[];for(const nt of(o=et.teleop.rosStreams)!=null?o:[])nt.topicType=="sensor_msgs/JointState"&&tt.push(new Manipulator$1(this,{currentJointStateStream:{name:nt.topicName},plannedJointStateStream:nt.plannedTopic?{name:nt.plannedTopic}:void 0,planValidStream:nt.planValidTopic?{name:nt.planValidTopic}:void 0,endEffectorStream:nt.endEffectorTopic?{name:nt.endEffectorTopic}:void 0,endEffectorLinkName:nt.endEffectorLinkName,baseReferenceFrame:nt.baseReferenceFrame,localFrame:nt.localFrame}));return tt}async startListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!0,pipeline:"telemetry"})}async changeStreamAudioType(o,et){const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.controlRemoteStream(defined$1$1(nt).id,{streamName:o,setAudioFormat:et})}async disableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!1,pipeline:"telemetry"})}async getRemotePeer(){const o=(await defined$1$1(this.rtcClient,"Realtime connection has not been started").getPeers()).find(et=>et.deviceId===this.id);return defined$1$1(o,"Could not find remote peer for device "+this.id)}async stopRealtimeConnection(){if(this.rtcClient)await this.rtcClient.disconnect(this.id);else throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async isInRealtimeSession(){let o=await Fleet$1.getPeers(),et=await Fleet$1.getRealtimeSessions(),tt=o.find(nt=>nt.deviceId===this.id);return tt?et[tt.id].length>0:!1}async getAvailableCommands(){return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/command-templates/`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.map(o=>({name:o.name,id:o.id,command:o.command,description:o.description,parameterEnabled:o.parameterEnabled,parameterValue:o.parameterValue,parameterMeta:o.parameterMeta,enabled:o.enabled}))}async sendCommand(o,et,tt,nt){var rt;const it=(await this.getAvailableCommands()).find(at=>at.name===o);if(!it)throw new Error(`Could not find command with name "${o}"`);let ot;if(et===void 0)if(it.parameterEnabled&&it.parameterValue)ot=it.parameterValue;else throw new Error("Command has no default parameter value, you must provide one");else ot=et;let st={value:ot,scrubberTime:(tt||new Date).toISOString(),meta:{...it.parameterMeta,...nt}};await fetch(`${FORMANT_API_URL$1}/v1/admin/commands`,{method:"POST",body:JSON.stringify({commandTemplateId:it.id,organizationId:this.organizationId,deviceId:this.id,command:it.command,parameter:st,userId:(rt=Authentication$1.currentUser)==null?void 0:rt.id}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})}async createCustomDataChannel(o,et){if(rtcClientVersion==="1")throw new Error("createCustomDataChannel is not supported in rtcClientVersion 1");const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer(),rt=await new Promise(it=>{tt.createCustomDataChannel(defined$1$1(nt).id,o,{ordered:!0,...et},!1,(ot,st)=>{const at=new DataChannel$1(st);it(at)})});return await rt.waitTilReady(),rt}createCustomRequestDataChannel(o,et=3e3){return new TextRequestDataChannel$1(this,o,et)}createCustomBinaryRequestDataChannel(o,et=3e3){return new BinaryRequestDataChannel$1(this,o,et)}async createCaptureStream(o){const et=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/capture-sessions`,{method:"POST",body:JSON.stringify({deviceId:this.id,streamName:o,tags:{}}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json();return new CaptureStream$1(et)}async getTelemetry(o,et,tt,nt){return await Fleet$1.getTelemetry(this.id,o,et,tt,nt)}async getTelemetryStreams(){var o,et;const tt=await this.getConfiguration(),nt=await fetch(`${FORMANT_API_URL$1}/v1/queries/metadata/stream-names`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}}),rt=[],it=[];return(et=(o=tt.telemetry)==null?void 0:o.streams)==null||et.forEach(ot=>{ot.disabled!==!0&&rt.push(ot.name),ot.onDemand===!0&&it.push(ot.name)}),console.log(it),(await nt.json()).items.filter(ot=>!rt.includes(ot)).map(ot=>({name:ot,onDemand:it.includes(ot)}))}async createInterventionRequest(o,et,tt,nt){return await(await fetch(`${FORMANT_API_URL$1}/v1/admin/intervention-requests`,{method:"POST",body:JSON.stringify({message:o,interventionType:et,time:new Date().toISOString(),deviceId:this.id,tags:nt,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()}async addInterventionResponse(o,et,tt){return await(await fetch(`${FORMANT_API_URL$1}/v1/admin/intervention-responses`,{method:"POST",body:JSON.stringify({interventionId:o,interventionType:et,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()}async getAnnotationCount(o,et){return await Fleet$1.getAnnotationCount({...o,deviceIds:[this.id]},et)}async getAnnotationCountByIntervals(o,et,tt){return await Fleet$1.getAnnotationCountByIntervals({...o,deviceIds:[this.id]},et,tt)}async eventsCounter(o,et,tt,nt,rt){return await Fleet$1.eventsCounter(o,et,tt,nt,{...rt,deviceIds:[this.id]})}},PeerDevice$1=class{constructor(o){__publicField$1(this,"rtcClient"),__publicField$1(this,"remoteDevicePeerId"),__publicField$1(this,"realtimeListeners",[]),__publicField$1(this,"id"),__publicField$1(this,"handleMessage",(et,tt)=>{this.realtimeListeners.forEach(nt=>nt(et,tt))}),this.peerUrl=o}async getLatestTelemetry(){const o=await(await fetch(`${this.peerUrl}/telemetry`)).json();return Object.entries(o).map(([et,tt])=>({deviceId:this.id,streamName:et,streamType:"json",currentValue:tt,currentValueTime:tt.timestamp,tags:{}}))}async getDeviceId(){return(await(await fetch(`${this.peerUrl}/configuration`)).json()).agent_config.id}async getConfiguration(){return(await(await fetch(`${this.peerUrl}/configuration`)).json()).agent_config.document}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}async startRealtimeConnection(o){if(this.rtcClient)throw new Error(`Already created realtime connection to device ${this.id}`);{const et=new dist$1.exports.RtcClient({lanOnlyMode:!0,receive:this.handleMessage,sessionType:o});for(await et.connectLan(this.peerUrl);et.getConnectionStatus(this.peerUrl)!=="connected";)await delay$2(100);this.rtcClient=et}}addRealtimeListener(o){this.realtimeListeners.push(o)}removeRealtimeListener(o){const et=this.realtimeListeners.indexOf(o);if(et===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(et,1)}async getRealtimeVideoStreams(){var o,et,tt;const nt=await this.getConfiguration(),rt=[];for(const it of(o=nt.teleop.hardwareStreams)!=null?o:[])it.rtcStreamType==="h264-video-frame"&&rt.push({name:it.name});for(const it of(et=nt.teleop.rosStreams)!=null?et:[])it.topicType=="formant/H264VideoFrame"&&rt.push({name:it.topicName});for(const it of(tt=nt.teleop.customStreams)!=null?tt:[])it.rtcStreamType==="h264-video-frame"&&rt.push({name:it.name});return rt}async getRealtimeManipulators(){var o;const et=await this.getConfiguration(),tt=[];for(const nt of(o=et.teleop.rosStreams)!=null?o:[])nt.topicType=="sensor_msgs/JointState"&&tt.push(new Manipulator$1(this,{currentJointStateStream:{name:nt.topicName},plannedJointStateStream:nt.plannedTopic?{name:nt.plannedTopic}:void 0,planValidStream:nt.planValidTopic?{name:nt.planValidTopic}:void 0,endEffectorStream:nt.endEffectorTopic?{name:nt.endEffectorTopic}:void 0,endEffectorLinkName:nt.endEffectorLinkName,baseReferenceFrame:nt.baseReferenceFrame,localFrame:nt.localFrame}));return tt}async startListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!0,pipeline:"telemetry"})}async disableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!1,pipeline:"telemetry"})}async getRemotePeer(){return{id:this.peerUrl,organizationId:"",deviceId:this.id,capabilities:[],capabilitySet:{}}}async stopRealtimeConnection(){if(this.rtcClient)await this.rtcClient.disconnect(this.id);else throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async createCustomDataChannel(o,et){const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer(),rt=await new Promise(it=>{tt.createCustomDataChannel(defined$1$1(nt).id,o,{ordered:!0,...et},!1,(ot,st)=>{const at=new DataChannel$1(st);it(at)})});return await rt.waitTilReady(),rt}createCustomRequestDataChannel(o,et=3e3){return new TextRequestDataChannel$1(this,o,et)}createCustomBinaryRequestDataChannel(o,et=3e3){return new BinaryRequestDataChannel$1(this,o,et)}};const _Fleet=class{static async setDefaultDevice(s){_Fleet.defaultDeviceId=s}static async getCurrentDevice(){if(!Authentication$1.token)throw new Error("Not authenticated");if(!_Fleet.defaultDeviceId)throw new Error("No known default device");const s=(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/device-details/query`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.find(et=>et.id===_Fleet.defaultDeviceId).name,o=new Device$1(_Fleet.defaultDeviceId,s,defined$1$1(Authentication$1.currentOrganization));return _Fleet.knownContext.push(new WeakRef(o)),o}static async getPeerDevice(s){const o=new PeerDevice$1(s);return o.id=await o.getDeviceId(),o}static async getDevice(s){if(!Authentication$1.token)throw new Error("Not authenticated");const o=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json(),et=o.name,tt=new Device$1(s,et,o.organizationId);return _Fleet.knownContext.push(new WeakRef(tt)),tt}static async getDevices(){if(!Authentication$1.token)throw new Error("Not authenticated");const s=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json();return s.items,s.items.map(o=>new Device$1(o.id,o.name,o.organizationId))}static async queryDevices(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.map(o=>new Device$1(o.id,o.name,o.organizationId))}static async getOnlineDevices(){if(!Authentication$1.token)throw new Error("Not authenticated");const s=(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/online-devices`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items;return(await _Fleet.getDevices()).filter(o=>s.includes(o.id))}static async getPeers(){if(!Authentication$1.token)throw new Error("Not authenticated");return await new dist$1.exports.RtcClient({signalingClient:new dist$1.exports.SignalingPromiseClient(FORMANT_API_URL$1,null,null),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:()=>{}}).getPeers()}static async getRealtimeSessions(){if(!Authentication$1.token)throw new Error("Not authenticated");return await new dist$1.exports.RtcClient({signalingClient:new dist$1.exports.SignalingPromiseClient(FORMANT_API_URL$1,null,null),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:()=>{}}).getSessions()}static async getRealtimeDevices(){if(!Authentication$1.token)throw new Error("Not authenticated");const s=(await(await fetch(`${FORMANT_API_URL$1}/v1/signaling/peers`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.map(o=>o.deviceId);return(await _Fleet.getDevices()).filter(o=>s.includes(o.id))}static async getLatestTelemetry(s){let o=s;return s&&!Array.isArray(s)&&(s=[s]),(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:o}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getTelemetry(s,o,et,tt,nt){let rt=s;Array.isArray(s)||(rt=[s]);let it=o;return Array.isArray(o)||(it=[o]),(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/queries`,{method:"POST",body:JSON.stringify({deviceIds:rt,end:tt.toISOString(),names:it,start:et.toISOString(),tags:nt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getFileUrl(s){const o=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[s]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json();if(o.fileUrls.length===0)throw new Error("File not found");return o.fileUrls[0]}static async queryTelemetry(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/queries`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async aggregateTelemetry(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/queries`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).aggregates}static async queryEvents(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/events/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getEvent(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/events/query/id=${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getInterventions(){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/intervention-requests`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getCurrentGroup(){if(!Authentication$1.token)throw new Error("Not authenticated");let s=new URLSearchParams("");typeof window<"u"&&(s=new URLSearchParams(window.location.search));const o=s.get("group");if(o===null||o.trim()==="")return;const et=await fetch(`${FORMANT_API_URL$1}/v1/admin/groups/`+o,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}}),{tagKey:tt,tagValue:nt}=await et.json();return await this.queryDevices({tags:{[tt]:[nt]},enabled:!0,type:"default"})}static async getAnnotationCount(s,o){return(await this.queryEvents({...s,eventTypes:["annotation"]})).filter(et=>!!et.tags&&Object.keys(et.tags).includes(o)).reduce((et,tt)=>{const nt=tt.tags[o];return nt in et?(et[nt]+=1,et):(et[nt]=1,et)},{})}static async getAnnotationCountByIntervals(s,o,et){const{end:tt,start:nt}=s,rt=aggregateByDateFunctions$1[et].interval({start:new Date(nt),end:new Date(tt)}),it=rt.map((st,at)=>{const lt=new Date(st).toISOString(),ut=at===rt.length-1?new Date(Date.now()).toISOString():new Date(rt[at+1]);return this.getAnnotationCount({...s,start:lt,end:ut},o)}),ot=await Promise.all(it);return rt.map((st,at)=>({date:new Date(st).toISOString(),annotations:ot[at]}))}static async getStreams(){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.filter(s=>s.enabled)}static async patchStream(s){if(!Authentication$1.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL$1}/v1/admin/streams/${s.id}`,{method:"PATCH",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()}static async eventsCounter(s,o,et,tt,nt){const rt=aggregateByDateFunctions$1[o];return await Promise.all(Array(et).fill(0).map(async(it,ot)=>{const st=new Date(tt),at=rt.sub(rt.start(st),et-ot-1),lt=rt.sub(rt.end(st),et-ot-1),ut=formatTimeFrameText$1(at.toLocaleDateString(),lt.toLocaleDateString()),dt=await _Fleet.queryEvents({...nt,eventTypes:s,start:new Date(at).toISOString(),end:new Date(lt).toISOString()});return{date:ut,events:dt}}))}};let Fleet$1=_Fleet;__publicField$1(Fleet$1,"defaultDeviceId");__publicField$1(Fleet$1,"knownContext",[]);const aggregateByDateFunctions$1={day:{interval:eachDayOfInterval$1,start:startOfDay$1,end:endOfDay$1,sub:subDays$1,get:getDay$1},week:{interval:eachWeekOfInterval$1,start:startOfWeek$1,end:endOfWeek$1,sub:subWeeks$1,get:getWeek$1},month:{interval:eachMonthOfInterval$1,start:startOfMonth$1,end:endOfMonth$1,sub:subMonths$1,get:getMonth$1},year:{interval:eachYearOfInterval$1,start:startOfYear$1,end:endOfYear$1,sub:subYears$1,get:getYear$1},hour:{interval:eachHourOfInterval$1,start:startOfHour$1,end:endOfHour$1,sub:subHours$1,get:getHours$1},minute:{interval:eachMinuteOfInterval$1,start:startOfMinute$1,end:endOfMinute$1,sub:subMinutes$1,get:getMinutes$1},quarter:{interval:eachQuarterOfInterval$1,start:startOfQuarter$1,end:endOfQuarter$1,sub:subQuarters$1,get:getQuarter$1}},formatTimeFrameText$1=(s,o)=>s.split("/")[0]+"/"+s.split("/")[1]+"–"+o.split("/")[0]+"/"+o.split("/")[1];let urlParams=new URLSearchParams("");typeof window<"u"&&(urlParams=new URLSearchParams(window.location.search));const urlDevice=urlParams.get("device");urlDevice&&Fleet$1.setDefaultDevice(urlDevice);const urlAuth=urlParams.get("auth");urlAuth&&Authentication$1.loginWithToken(urlAuth);const moduleName=urlParams.get("module");moduleName&&Authentication$1.listenForRefresh();dist$1.exports.IRtcSendConfiguration;dist$1.exports.IRtcStreamMessage;dist$1.exports.IRtcStreamPayload;reactExports.createContext(void 0);var lodashExports={},lodash={get exports(){return lodashExports},set exports(s){lodashExports=s}};/** +`),Error.captureStackTrace(this,tt)}}s.exports=nt=>{if(nt.length>2)throw new tt(nt);function rt(ot={}){this.options=ot}function it(ot){return new rt(ot)}return rt.prototype.transform=nt,it.Format=rt,it}},function(s,o,et){function tt(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")}function nt(it,ot){for(var st=0;st0&&arguments[0]!==void 0?arguments[0]:{};tt(this,it),this.loggers=new Map,this.options=at}var ot,st;return ot=it,(st=[{key:"add",value:function(at,lt){var ut=this;if(!this.loggers.has(at)){var dt=(lt=Object.assign({},lt||this.options)).transports||this.options.transports;lt.transports=dt?dt.slice():[];var ht=rt(lt);ht.on("close",function(){return ut._delete(at)}),this.loggers.set(at,ht)}return this.loggers.get(at)}},{key:"get",value:function(at,lt){return this.add(at,lt)}},{key:"has",value:function(at){return!!this.loggers.has(at)}},{key:"close",value:function(at){var lt=this;if(at)return this._removeLogger(at);this.loggers.forEach(function(ut,dt){return lt._removeLogger(dt)})}},{key:"_removeLogger",value:function(at){this.loggers.has(at)&&(this.loggers.get(at).close(),this._delete(at))}},{key:"_delete",value:function(at){this.loggers.delete(at)}}])&&nt(ot.prototype,st),it}()},function(s,o,et){(function(tt){const nt=et(52),rt=/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/;s.exports=function(it,ot,st,at){let lt,ut,dt=!1,ht=!1;const ct=et(94);function pt(yt){at(ot,yt)}function ft(yt,Ut){let Ft=`"${ot}" ${Ut}`;throw yt&&(Ft=`${Ft}`),ut&&(Ft=`${Ft}. An example of a valid value would be: ${ut}`),new nt(Ft)}const gt={convertFromBase64:function(){return pt("marking for base64 conversion"),dt=!0,gt},default:function(yt){if(typeof yt=="number")lt=yt.toString();else if(Array.isArray(yt)||typeof yt=="object"&&yt!==null)lt=JSON.stringify(yt);else{if(typeof yt!="string")throw new nt("values passed to default() must be of Number, String, Array, or Object type");lt=yt}return pt(`setting default value to "${lt}"`),gt},required:function(yt){return yt===void 0?(pt("marked as required"),ht=!0):(pt(`setting required flag to ${yt}`),ht=yt),gt},example:function(yt){return ut=yt,gt}};return Object.entries({...ct,...st}).forEach(([yt,Ut])=>{gt[yt]=function(Ft){return function(){let mt=it[ot];if(pt(`will be read from the environment using "${Ft.name}" accessor`),mt===void 0)if(lt===void 0&&ht)pt("was not found in the environment, but is required to be set"),ft(void 0,"is a required variable, but it was not set");else{if(lt===void 0)return void pt("was not found in the environment, but is not required. returning undefined");pt(`was not found in the environment, parsing default value "${lt}" instead`),mt=lt}ht&&(pt("verifying variable value is not an empty string"),mt.trim().length===0&&ft(void 0,"is a required variable, but its value was empty")),dt&&(pt("verifying variable is a valid base64 string"),mt.match(rt)||ft(mt,"should be a valid base64 string if using convertFromBase64"),pt("converting from base64 to utf8 string"),mt=tt.from(mt,"base64").toString());const vt=[mt].concat(Array.prototype.slice.call(arguments));try{pt(`passing value "${mt}" to "${Ft.name}" accessor`);const At=Ft.apply(Ft,vt);return pt(`parsed successfully, returning ${At}`),At}catch(At){ft(mt,At.message)}}}(Ut)}),gt}}).call(this,et(5).Buffer)},function(s,o,et){const tt=et(33);s.exports=function(nt,rt){return rt=rt||",",nt.length?tt(nt).split(rt).filter(Boolean):[]}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(nt!=="false"&&nt!=="true")throw new Error('should be either "true", "false", "TRUE", or "FALSE"');return nt!=="false"}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(["false","0","true","1"].indexOf(nt)===-1)throw new Error('should be either "true", "false", "TRUE", "FALSE", 1, or 0');return!(nt==="0"||nt==="false")}},function(s,o,et){const tt=et(95);s.exports=function(nt){var rt=tt(nt);if(rt>65535)throw new Error("cannot assign a port number greater than 65535");return rt}},function(s,o,et){const tt=et(33);s.exports=function(nt,rt){const it=tt(nt);if(rt.indexOf(it)<0)throw new Error(`should be one of [${rt.join(", ")}]`);return it}},function(s,o,et){const tt=et(54);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative float");return rt}},function(s,o,et){const tt=et(54);s.exports=function(nt){const rt=tt(nt);if(rt<0)throw new Error("should be a positive float");return rt}},function(s,o,et){const tt=et(53);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative integer");return rt}},function(s,o,et){const tt=et(55);s.exports=function(nt){var rt=tt(nt);if(!Array.isArray(rt))throw new Error("should be a parseable JSON Array");return rt}},function(s,o,et){const tt=et(55);s.exports=function(nt){var rt=tt(nt);if(Array.isArray(rt))throw new Error("should be a parseable JSON Object");return rt}},function(s,o,et){s.exports=function(tt,nt){try{RegExp(void 0,nt)}catch{throw new Error("invalid regexp flags")}try{return new RegExp(tt,nt)}catch{throw new Error("should be a valid regexp")}}},function(s,o,et){const tt=et(96);s.exports=function(nt){return tt(nt).toString()}},function(s,o,et){const tt=et(33),nt=/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021\u0023-\u005b\u005d-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021-\u005a\u0053-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])+)\])$/;s.exports=function(rt){const it=tt(rt);if(!nt.test(it))throw new Error("should be a valid email address");return it}},function(s,o,et){s.exports=function(tt,nt){return function(rt,it){nt&&nt.match(/prod|production/)||tt(`env-var (${rt}): ${it}`)}}},function(s,o,et){(function(tt){(function(){var nt,rt,it,ot,st,at;typeof performance<"u"&&performance!==null&&performance.now?s.exports=function(){return performance.now()}:tt!=null&&tt.hrtime?(s.exports=function(){return(nt()-st)/1e6},rt=tt.hrtime,ot=(nt=function(){var lt;return 1e9*(lt=rt())[0]+lt[1]})(),at=1e9*tt.uptime(),st=ot-at):Date.now?(s.exports=function(){return Date.now()-it},it=Date.now()):(s.exports=function(){return new Date().getTime()-it},it=new Date().getTime())}).call(this)}).call(this,et(2))},function(s,o,et){(function(tt){(function(nt){function rt(ot){if((ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextEncoder': The encoding label provided ('"+ot+"') is invalid.")}function it(ot,st){if(st=st===void 0?{fatal:!1}:st,(ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextDecoder': The encoding label provided ('"+ot+"') is invalid.");if(st.fatal)throw Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.")}if(nt.TextEncoder&&nt.TextDecoder)return!1;Object.defineProperty(rt.prototype,"encoding",{value:"utf-8"}),rt.prototype.encode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to encode: the 'stream' option is unsupported.");st=0;for(var at=ot.length,lt=0,ut=Math.max(32,at+(at>>1)+7),dt=new Uint8Array(ut>>3<<3);st=ht){if(st=ht)continue}if(lt+4>dt.length&&(ut+=8,ut=(ut*=1+st/ot.length*2)>>3<<3,(ct=new Uint8Array(ut)).set(dt),dt=ct),(4294967168&ht)==0)dt[lt++]=ht;else{if(!(4294965248&ht))dt[lt++]=ht>>6&31|192;else if(!(4294901760&ht))dt[lt++]=ht>>12&15|224,dt[lt++]=ht>>6&63|128;else{if(4292870144&ht)continue;dt[lt++]=ht>>18&7|240,dt[lt++]=ht>>12&63|128,dt[lt++]=ht>>6&63|128}dt[lt++]=63&ht|128}}return dt.slice(0,lt)},Object.defineProperty(it.prototype,"encoding",{value:"utf-8"}),Object.defineProperty(it.prototype,"fatal",{value:!1}),Object.defineProperty(it.prototype,"ignoreBOM",{value:!1}),it.prototype.decode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to decode: the 'stream' option is unsupported.");st=0;for(var at=(ot=new Uint8Array(ot)).length,lt=[];st>>10&1023|55296),ut=56320|1023&ut),lt.push(ut))}return String.fromCharCode.apply(null,lt)},nt.TextEncoder=rt,nt.TextDecoder=it})(typeof window<"u"?window:tt!==void 0?tt:this)}).call(this,et(6))},function(s,o,et){et.r(o),et.d(o,"AuthClient",function(){return rt}),et.d(o,"RtcSignalingClient",function(){return ot}),et.d(o,"Credentials",function(){return xt}),et.d(o,"IRtcStream",function(){}),et.d(o,"SignalingPromiseClient",function(){return Ct.SignalingPromiseClient}),et.d(o,"IRtcClientConfigurationV1",function(){}),et.d(o,"IRtcClientConfiguration",function(){}),et.d(o,"IRtcConnectionStatsInfo",function(){}),et.d(o,"IRtcSendConfiguration",function(){}),et.d(o,"IRtcSessionMetricsMessageCounts",function(){}),et.d(o,"IRtcStreamMessage",function(){}),et.d(o,"IRtcStreamPayload",function(){}),et.d(o,"IStreamControl",function(){}),et.d(o,"RtcClient",function(){return _r}),et.d(o,"RtcClientV1",function(){return Fo}),et.d(o,"createRtcStreamMessage",function(){return gn});var tt=et(28),nt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class rt extends tt.a{adminSignup(un,pn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/admin-signup",{token:pn,method:"POST",body:JSON.stringify(un)})})}login(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login",{method:"POST",body:JSON.stringify(un),allowUnsafeRetries:!0})})}loginWithGoogleToken(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login-google",{method:"POST",body:JSON.stringify(un),allowUnsafeRetries:!0})})}refresh(un,pn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/refresh",{method:"POST",body:JSON.stringify({refreshToken:un,tokenExpirationSeconds:pn}),allowUnsafeRetries:!0})})}respondToNewPasswordRequiredChallenge(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/respond-to-new-password-required-challenge",{method:"POST",body:JSON.stringify(un)})})}forgotPassword(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/forgot-password",{method:"POST",body:JSON.stringify({email:un})})})}confirmForgotPassword(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/confirm-forgot-password",{method:"POST",body:JSON.stringify(un)})})}resendInvitation(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/resend-invitation",{method:"POST",body:JSON.stringify({email:un})})})}changePassword({token:un,refreshToken:pn,currentPassword:Qn,newPassword:Jn}){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/change-password",{token:un,method:"POST",body:JSON.stringify({refreshToken:pn,currentPassword:Qn,newPassword:Jn})})})}getDeviceCredentials(un){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/device-credentials",{token:un,method:"POST",allowUnsafeRetries:!0})})}impersonate(un,pn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/impersonate",{token:un,method:"POST",allowUnsafeRetries:!0,body:JSON.stringify({userId:pn})})})}createServiceAccount(un,pn,Qn,Jn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/service-account",{token:un,method:"POST",allowUnsafeRetries:!0,body:JSON.stringify({name:pn,roleId:Qn,tags:Jn})})})}getFeatures(un){return nt(this,void 0,void 0,function*(){return(yield this.fetch("auth/features",{token:un})).features})}}var it=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class ot extends tt.a{createPeer(un,pn){return it(this,void 0,void 0,function*(){return yield this.fetch("peers",{token:un,method:"POST",body:JSON.stringify(pn)})})}getPeers(un){return it(this,void 0,void 0,function*(){return(yield this.fetch("peers",{token:un})).items})}refreshPeer(un,pn){return it(this,void 0,void 0,function*(){yield this.fetch(`peers/${pn}/refresh`,{token:un,method:"POST",allowUnsafeRetries:!0})})}createSession(un,pn){return it(this,void 0,void 0,function*(){return yield this.fetch("sessions",{token:un,method:"POST",body:JSON.stringify(pn)})})}refreshSession(un,pn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${pn}/refresh`,{token:un,method:"POST",allowUnsafeRetries:!0})})}deleteSession(un,pn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${pn}`,{token:un,method:"DELETE",allowUnsafeRetries:!0})})}getSessions(un){return it(this,void 0,void 0,function*(){return(yield this.fetch("sessions",{token:un})).items})}getIceServers(un){return it(this,void 0,void 0,function*(){return(yield this.fetch("ice-servers",{token:un})).items})}addSignals(un,pn,Qn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${pn}/add-signals`,{token:un,method:"POST",body:JSON.stringify(Qn)})})}takeSignals(un,pn){return it(this,void 0,void 0,function*(){return(yield this.fetch(`sessions/${pn}/take-signals`,{token:un,method:"POST"})).items})}}var st=et(1),at=et(8),lt=et(14),ut=et.n(lt),dt=et(104),ht=et.n(dt),ct=et(0),pt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class ft{constructor(un){this.name="LogReporter",this.type="simple",this.message=un}send(un){return pt(this,void 0,void 0,function*(){var pn,Qn;ct.a.info(this.message,(pn=un.reduce((Jn,jn)=>Object.assign(Object.assign({},Jn),{[jn.name]:jn.stat}),{}),Qn=Jn=>{const{sum:jn,count:Fr}=Jn,Er=jn/Fr;return Object.assign(Object.assign({},Jn),{average:Er})},Object.keys(pn).reduce((Jn,jn)=>Object.assign(Object.assign({},Jn),{[jn]:Qn(pn[jn])}),{})))})}}var gt=et(4),yt=et(39);function Ut(kn){return!!kn.match(/^[a-zA-Z0-9-_.,:?'"()@\/\\#$+ ]{1,255}$/)}var Ft=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};function mt({func:kn,delay:un,immediate:pn}){let Qn=!1,Jn=setTimeout(function Fr(){return Ft(this,void 0,void 0,function*(){if(Qn)return;const Er=new Date().getTime();try{jn=kn(),yield jn}finally{if(!Qn){const wr=new Date().getTime();Jn=setTimeout(Fr,Math.max(un-(wr-Er),0))}}})},pn?0:un),jn=Promise.resolve();return{stop(){return Ft(this,void 0,void 0,function*(){Qn=!0,clearTimeout(Jn),yield jn})}}}var vt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};const At=et(226),Lt=!!gt.c,Rt=new class{constructor(kn){this.samplePeriodSeconds=60,this.buffer={},this.reporters=[],this.flushInterval=mt({func:()=>this.flushStats(),delay:this.samplePeriodSeconds*st.a.second}),this.tags=this.filterTags(kn?.tags||{app:gt.a,version:gt.j,namespace:gt.i,instanceId:yt.a})}shutdown(){return vt(this,void 0,void 0,function*(){yield this.flushInterval.stop(),yield this.flushStats(),yield Object(at.a)(2*st.a.second)})}aggregate(kn,un,pn){this.addToBuffer(this.buffer,this.encodeKey({metric:kn,tags:this.filterTags(pn||{})}),typeof un=="number"?{min:un,max:un,sum:un,count:1}:un)}increment(kn,un){this.aggregate(kn,1,un)}timer(kn,un,pn){return vt(this,void 0,void 0,function*(){const Qn=At(),Jn=yield un(),jn=At();return this.aggregate(kn,jn-Qn,pn),Jn})}registerStatsReporter(kn){this.reporters.push(kn)}setTag(kn,un){const pn=this.filterTags({[kn]:un});this.tags=Object.assign(Object.assign({},this.tags),pn)}addToBuffer(kn,un,pn){if(kn[un]){const{min:Qn,max:Jn,sum:jn,count:Fr}=kn[un];kn[un]={min:Math.min(Qn,pn.min),max:Math.max(Jn,pn.max),sum:jn+pn.sum,count:Fr+pn.count}}else kn[un]=pn}write(kn){return vt(this,void 0,void 0,function*(){yield Promise.all(this.reporters.map(un=>vt(this,void 0,void 0,function*(){let pn;const Qn={};switch(un.type){case"simple":for(const[jn,Fr]of Object.entries(kn)){const{metric:Er}=this.decodeKey(jn);this.addToBuffer(Qn,this.encodeKey({metric:Er}),Fr)}pn=Qn;break;case"tagged":pn=kn;break;default:(function(jn){throw new Error(`Unreachable type encountered (${jn})`)})(un.type)}const Jn=Object.entries(pn);if(Jn.length>0)return un.send(Jn.map(([jn,Fr])=>{const{metric:Er,tags:wr}=this.decodeKey(jn);return{name:Er,tags:Object.assign(Object.assign({},wr),this.tags),stat:Fr}}),this.samplePeriodSeconds).catch(jn=>{ct.a.debug(`Failed to write stats to ${un.name}`,{error:jn})})})))})}flushStats(){return vt(this,void 0,void 0,function*(){yield this.write(this.buffer),this.buffer={}})}encodeKey(kn){return ut()(Object.assign(Object.assign({},kn),Object.keys(kn.tags||{}).length>0?{tags:kn.tags}:{}))}decodeKey(kn){return JSON.parse(kn)}filterTags(kn){return Object.entries(kn||{}).reduce((un,[pn,Qn])=>(Ut(pn)&&Ut(Qn)&&(un[pn]=Qn),un),{})}};Lt||["local","on-prem"].includes(gt.i)||Rt.registerStatsReporter(new ft("stats"));var St=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Tt extends class{constructor(un){this.options=un,this.cache=new ht.a(Object.assign(Object.assign(Object.assign({},un.dispose||un.disposeAfter?{ttlAutopurge:!0}:{}),un),{dispose:(...pn)=>{var Qn;pn[2]==="evict"&&Rt.increment("lru-eviction",{name:un.name}),(Qn=un.dispose)===null||Qn===void 0||Qn.call(un,...pn)},disposeAfter:(...pn)=>{var Qn;this.updateStats(),(Qn=un.disposeAfter)===null||Qn===void 0||Qn.call(un,...pn)}})),this.stringify=un.fastStringify?JSON.stringify:ut.a}set(un,pn,Qn){const Jn=this.stringify(un);if(!this.cache.set(Jn,pn,{ttl:Qn})){const jn=this.cache.sizeCalculation?this.cache.sizeCalculation(pn,Jn):"unknown";throw Error(`Value too large (${jn} > ${this.cache.max})`)}this.updateStats()}get(un){const{name:pn}=this.options,Qn=this.stringify(un),Jn=this.cache.getRemainingTTL(Qn);return Jn<=0?Rt.increment("cache-miss",{name:pn}):Jn!==1/0&&Rt.aggregate("cache-item-ttl",Jn,{name:pn}),this.cache.get(Qn)}delete(un){this.cache.delete(this.stringify(un))}peek(un){return this.cache.peek(this.stringify(un))}size(){return this.cache.size}clear(){this.cache.clear()}forEach(un){this.cache.forEach(un)}purgeStale(){return this.cache.purgeStale()}updateStats(){const{name:un}=this.options;Rt.aggregate("cache-item-count",this.cache.size,{name:un}),this.cache.calculatedSize!==void 0&&Rt.aggregate("cache-length",this.cache.calculatedSize,{name:un})}}{constructor(un){if(super(un),this.expireRejectedPromiseValues=un.expireRejectedPromiseValues===void 0||un.expireRejectedPromiseValues,this.rejectedPromiseValueTtl=un.rejectedPromiseValueTtl!==void 0?un.rejectedPromiseValueTtl:st.a.second,this.rejectedPromiseValueTtl<0)throw new Error("rejectedPromiseValueTtl must not be negative")}set(un,pn,Qn){super.set(un,pn,Qn),this.expireRejectedPromiseValues&&pn.catch(()=>St(this,void 0,void 0,function*(){yield Object(at.a)(this.rejectedPromiseValueTtl),this.peek(un)===pn&&this.delete(un)}))}}var Bt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class xt{constructor(un,pn,Qn){this.authClient=un,this.email=pn,this.password=Qn,this.tokenTtlMs=1*st.a.hour,this.tokenCache=new Tt({name:"Credentials-tokenCache",max:100,ttl:this.tokenTtlMs-5*st.a.minute,fastStringify:!0})}getToken(){return Bt(this,void 0,void 0,function*(){let un=this.tokenCache.get(this.email);return un||(un=(()=>Bt(this,void 0,void 0,function*(){const{authentication:pn}=yield this.authClient.login({email:this.email,password:this.password,tokenExpirationSeconds:this.tokenTtlMs/st.a.second});if(!pn)throw new Error("User account not verified.");return pn.accessToken}))(),this.tokenCache.set(this.email,un)),un})}}var Ct=et(97),kt=et(40),Nt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Ot extends kt.a{constructor(un){super(un)}postLanRtcOffer(un){return Nt(this,void 0,void 0,function*(){return yield this.fetch("v1/lan-rtc-offer",{method:"POST",body:JSON.stringify(un)})})}}var Jt=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};function Dt(kn){return Jt(this,void 0,void 0,function*(){return(yield Promise.all(kn.map(un=>un.catch(pn=>pn)))).filter(un=>un instanceof Error)})}function Et(kn){if(kn!==void 0)return kn;throw new Error("Value is undefined")}function Pt(kn,un){const pn=kn.reduce((Qn,Jn)=>[...Qn,...Jn.urls],[]).filter(Qn=>zt(Qn,un)).sort(Qn=>en(Qn,"udp")?-1:0).shift();if(pn)return Object.assign(Object.assign({},Et(kn.find(Qn=>Qn.urls.includes(pn)))),{urls:[pn]})}function zt(kn,un){switch(un){case"stun":return/^stuns?:/.test(kn);case"turn":return/^turns?:/.test(kn)}}function en(kn,un){return kn.endsWith(`transport=${un}`)}var Kt=et(9),nn=et(24),Zt=et(229),jt=et(29);const Vt={ordered:!1,maxPacketLifeTime:300*st.a.millisecond},It={ordered:!0},$t={ordered:!0},Ht={ordered:!1,maxRetransmits:0},qt={ordered:!1,maxRetransmits:0},on=kn=>"received"in kn&&kn.received!==void 0,Xt=kn=>!("received"in kn)||kn.received===void 0,dn=2*st.a.second;function _n(kn,un={}){const pn=Array.from(kn.values()),Qn=pn.filter(on),Jn=Qn.length>0,jn=Math.max(...Qn.map(tr=>tr.received));let Fr;if(Jn){const tr=pn.length,ar=Qn.length,hr=Qn.map(gr=>gr.received-gr.sent),{standardDeviation:cn,mean:mn,jitter:xn}=function(gr){const br=gr.length;if(br===0)return{mean:NaN,standardDeviation:-1,jitter:NaN};const ur=gr.reduce((ho,Nn)=>ho+Nn,0)/br,nr=Math.sqrt(gr.map(ho=>Math.pow(ho-ur,2)).reduce((ho,Nn)=>ho+Nn)/br);let Kr=0;for(let ho=1;hogr.sent{const[ar,hr]=tr;hr.sent{var jn,Fr;return{streamId:Jn,sentCount:(jn=pn.get(Jn))!==null&&jn!==void 0?jn:0,receivedCount:(Fr=Qn.get(Jn))!==null&&Fr!==void 0?Fr:0}}),timestamp:un}}incrementLocalSent(un){const{localSent:pn}=this.counts,Qn=Fn(un.header.stream);pn.set(Qn,(pn.get(Qn)||0)+1)}incrementLocalReceived(un){const{localReceived:pn}=this.counts,Qn=Fn(un.header.stream),Jn=pn.get(Qn)||0;if(Jn===0){const{streamName:jn,streamType:Fr}=un.header.stream;ct.a.debug("RTC client received first message for stream",{streamName:jn,streamType:Fr})}pn.set(Qn,Jn+1)}uploadMetrics(){return Un(this,void 0,void 0,function*(){const{sessionId:un}=this,pn=yield this.connection.peerConnection.getStats(),Qn={};pn.forEach(tr=>Qn[tr.id]=tr),ct.a.debug("rtc-stats",Object.assign(Object.assign({},Qn),{sessionId:un}));const{localSent:Jn,localReceived:jn,remoteSent:Fr,remoteReceived:Er}=this.counts,wr=[...new Set([...Jn.keys(),...jn.keys()])].reduce((tr,ar)=>{const hr=Jn.get(ar),cn=jn.get(ar),mn=Fr.get(ar),xn=Er.get(ar);return Object.assign(Object.assign({},tr),{[`local-${ar}-sent`]:hr,[`local-${ar}-received`]:cn,[`remote-${ar}-sent`]:mn,[`remote-${ar}-received`]:xn})},{sessionId:un});ct.a.debug("rtc-message-report",Object.assign({deviceId:this.connection.getRemoteDeviceId()},wr))})}}function gn(kn,un,pn){return{header:{stream:kn,created:Date.now(),frameId:pn||""},payload:un}}function hn(kn){return new Set(["disconnected","failed","closed"]).has(kn.iceConnectionState)}function wn(kn){switch(kn.header.stream.streamType){case"twist":{const{twist:un}=kn.payload;if(!un)throw Error("twist not in payload of RTC message with type twist");return{header:kn.header,payload:{twist:{linear:Object.assign({x:0,y:0,z:0},un.linear),angular:Object.assign({x:0,y:0,z:0},un.angular)}}}}case"pose":{const{pose:un}=kn.payload;if(!un)throw Error("pose not in payload of RTC message with type pose");return{header:kn.header,payload:{pose:{translation:Object.assign({x:0,y:0,z:0},un.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},un.rotation)}}}}case"pose-with-covariance":{const{poseWithCovariance:un}=kn.payload;if(!un)throw Error("poseWithCovariance not in payload of RTC message with type pose-with-covariance");const pn=new Array(36).fill(0);return un.covariance.forEach((Qn,Jn)=>{if(Jn>=36)throw Error("covariance contains more than 36 elements");pn[Jn]=Qn}),{header:kn.header,payload:{poseWithCovariance:{pose:{translation:Object.assign({x:0,y:0,z:0},un.pose.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},un.pose.rotation)},covariance:pn}}}}case"point":{const{point:un}=kn.payload;if(!un)throw Error("point not in payload of RTC message with type point");return{header:kn.header,payload:{point:Object.assign({x:0,y:0,z:0},un)}}}default:return kn}}var Zn=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Pn{constructor(un,pn,Qn){this.peerConnection=un,this.config=pn,this.dataChannelNotifier=Qn,this.connectTimeoutMs=20*st.a.second,this.iceGatheringTimeoutMs=15*st.a.second,this.pingUpdateTimeoutMs=1*st.a.second,this.pingV2UpdateTimeoutMs=250*st.a.millisecond,this.pingV2MetricsGatherTimeoutMs=1*st.a.second,this.streamsInfoUpdateTimeoutMs=2*st.a.second,this.reassemblyTimeoutMs=500*st.a.millisecond,this.reassemblyTableCleanupMs=1*st.a.second,this.heartbeatTimeoutMs=20*st.a.millisecond,this.streamLatestTimestamp=new Map,this.reassemblyTable=new Map,this.reassemblyTableLastTimestamp=new Map,this.closeCalled=!1,this.gotOffer=!1,this.hasIceCandidate=!1,this.pingV2Map=new Map,this.sendPingV2=()=>{const{latestTryOnceStreamChannel:jn}=this;if(!jn)return;const Fr=new Date().getTime(),Er=Object(Zt.a)();this.sendSystemMessage(jn,{type:"ping-v2",payload:{timestamp:Fr,id:Er}}),this.pingV2Map.set(Er,{sent:Fr})},this.gatherPingV2Metrics=()=>{const jn=_n(this.pingV2Map);jn&&(this.pingInfo=jn,Rt.aggregate("rtc-ping-average",jn.average),Rt.aggregate("rtc-ping-loss",jn.loss),Rt.aggregate("rtc-jitter",jn.jitter))};const{isOffer:Jn}=pn.baseConfig;Jn?this.initializeChannels(un):un.ondatachannel=jn=>{switch(jn.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=jn.channel;break;case"stream.reliable":this.reliableStreamChannel=jn.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=jn.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=jn.channel;break;case"heartbeat":return void(this.heartbeatChannel=jn.channel);default:return void this.dataChannelNotifier(jn.channel)}this.setupChannel(jn.channel)},this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:jn}=this;jn&&this.sendSystemMessage(jn,{type:"ping"})},this.pingUpdateTimeoutMs),this.pingV2UpdateTimeout=setInterval(this.sendPingV2,this.pingV2UpdateTimeoutMs),this.pingV2MetricsGatherTimeout=setInterval(this.gatherPingV2Metrics,this.pingV2MetricsGatherTimeoutMs),this.streamsInfoUpdateTimeout=setInterval(()=>{const{latestTtlStreamChannel:jn}=this;jn&&this.sendSystemMessage(jn,{type:"streams-info"})},this.streamsInfoUpdateTimeoutMs),this.reassemblyTableCleanupTimeout=setInterval(()=>{const jn=new Date().getTime();this.reassemblyTableLastTimestamp.forEach((Fr,Er,wr)=>{jn>Er+this.reassemblyTimeoutMs&&this.reassemblyTable.delete(Fr)})},this.reassemblyTableCleanupMs),this.heartbeatTimeout=setInterval(()=>{const{heartbeatChannel:jn}=this;jn&&jn.readyState==="open"&&jn.send(new Uint8Array([1]))},this.heartbeatTimeoutMs)}handleSignal(un){return Zn(this,void 0,void 0,function*(){const{peerConnection:pn}=this,{track:Qn}=this.config.baseConfig,Jn=(()=>{try{return JSON.parse(un.getPayload())}catch{return}})();if(!Jn)return void ct.a.error("Received unparseable signal.");ct.a.debug("Handling signal",{description:Jn});const{sdp:jn,type:Fr}=Jn;if(!jn||!Fr)return void ct.a.warn("Received non-SDP signal");const{signalingState:Er,connectionState:wr}=pn;if(Er!=="stable"||wr!=="connected")if(pn.remoteDescription)ct.a.warn(`Received SDP after remote description was set: ${jn}`);else{if(Fr==="offer"){if(Er!=="stable")return void ct.a.warn("Received offer SDP when signaling is ongoing.");yield pn.setRemoteDescription(Jn);const tr=yield pn.createAnswer();yield pn.setLocalDescription(tr);const ar=un.clone();return Qn?.("Answer Received",ar),ar.setPayload(JSON.stringify(tr)),ar.setReceiverId(un.getSenderId()),ar.setSenderId(un.getReceiverId()),ar}if(Fr==="answer"){if(Er==="stable")return void ct.a.warn("Received answer SDP when signaling hasn't started.");yield pn.setRemoteDescription(Jn)}}else ct.a.warn(`Received SDP when already connected: ${jn}`)})}send(un,pn){const Qn=this.getChannelFromLabel(pn.channelLabel);Qn?this.sendOnChannel(Qn,un):ct.a.warn("Send called with unexpected channel label",{channelLabel:pn.channelLabel})}controlRemoteStream(un){this.sendSystemMessage(Et(this.reliableStreamChannel),{type:"stream-control",streamControl:un})}isActive(){return new Set(["new","checking","connected","completed"]).has(this.peerConnection.iceConnectionState)||this.isReady()}isReady(){const{reliableStreamChannel:un,latestTtlStreamChannel:pn,latestTryOnceStreamChannel:Qn,latestReliableStreamChannel:Jn}=this;return un?.readyState==="open"&&pn?.readyState==="open"&&Qn?.readyState==="open"&&Jn?.readyState==="open"}close(){return Zn(this,void 0,void 0,function*(){if(this.closeCalled)return;this.closeCalled=!0,this.sessionMetrics&&(yield this.sessionMetrics.uploadMetrics()),$n(this.pingUpdateTimeout),$n(this.pingV2UpdateTimeout),$n(this.pingV2MetricsGatherTimeout),$n(this.reassemblyTableCleanupTimeout),$n(this.streamsInfoUpdateTimeout),$n(this.heartbeatTimeout);const{peerConnection:un,reliableStreamChannel:pn,latestTtlStreamChannel:Qn,latestTryOnceStreamChannel:Jn,latestReliableStreamChannel:jn}=this;un.close(),pn?.close(),Qn?.close(),Jn?.close(),jn?.close()})}getPing(){return this.pingTimeMs}getPingInfo(){return this.pingInfo}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionCreatedTimestamp(){var un;return(un=this.config.remoteConfig)===null||un===void 0?void 0:un.sessionCreatedTimestamp}setSessionCreatedTimestamp(un){this.config.remoteConfig&&(this.config.remoteConfig.sessionCreatedTimestamp=un)}getSessionId(){var un;return(un=this.config.remoteConfig)===null||un===void 0?void 0:un.sessionId}setSessionId(un){this.config.remoteConfig&&(this.config.remoteConfig.sessionId=un,this.sessionMetrics=new On(un,this))}getRemotePeerId(){return this.config.baseConfig.remotePeerId}getRemoteDeviceId(){var un;return(un=this.config.baseConfig)===null||un===void 0?void 0:un.remoteDeviceId}setRemoteDeviceId(un){this.config.baseConfig.remoteDeviceId=un}getSessionMetricsMessageCounts(){var un;return(un=this.sessionMetrics)===null||un===void 0?void 0:un.counts}getConnectionStatsInfo(){return Zn(this,void 0,void 0,function*(){const{peerConnection:un}=this;if(!un)return;const pn=yield un.getStats(null),Qn=[];pn.forEach(wr=>{Qn.push(wr)});const Jn=Qn.find(wr=>wr.type==="transport");if(!Jn)return;const jn=Qn.find(wr=>(wr.type==="candidate-pair"||wr.type==="candidatepair")&&wr.id===Jn.selectedCandidatePairId);if(!jn)return;const Fr=Qn.find(wr=>wr.id===jn.localCandidateId),Er=Qn.find(wr=>wr.id===jn.remoteCandidateId);return Fr&&Er&&(Fr.address=Fr.address||Fr.ip,Er.address=Er.address||Er.ip,Fr.address!==void 0&&Er.address!==void 0)?{transport:Jn,localCandidate:Fr,remoteCandidate:Er}:void 0})}initializeChannels(un){this.heartbeatChannel=un.createDataChannel("heartbeat",qt),this.heartbeatChannel.binaryType="arraybuffer",this.latestTtlStreamChannel=un.createDataChannel("stream.latest-ttl",Vt),this.latestTtlStreamChannel.binaryType="arraybuffer",this.reliableStreamChannel=un.createDataChannel("stream.reliable",It),this.reliableStreamChannel.binaryType="arraybuffer",this.latestReliableStreamChannel=un.createDataChannel("stream.latest-reliable",$t),this.latestReliableStreamChannel.binaryType="arraybuffer",this.latestTryOnceStreamChannel=un.createDataChannel("stream.latest-try-once",Ht),this.latestTryOnceStreamChannel.binaryType="arraybuffer",this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}getOffer(){var un,pn,Qn;return Zn(this,void 0,void 0,function*(){const{gotOffer:Jn}=this,{peerConnection:jn,config:Fr}=this;if(this.config.baseConfig.isLan)throw new Error('"getOffer" method can only be called with internet connections. LAN connections should call the "getLanOffer" method.');const Er=(un=this.config.remoteConfig)===null||un===void 0?void 0:un.sessionId;if(Jn)return void ct.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,hn(this.peerConnection))return void ct.a.debug("Failed to generate offer because the peer connection was inactive.");const wr=Fr.baseConfig.track;jn.onicecandidate=()=>{this.hasIceCandidate=!0},jn.oniceconnectionstatechange=()=>Zn(this,void 0,void 0,function*(){const mn=jn.iceConnectionState;if(mn==="connected"||mn==="completed"){const xn=yield this.getConnectionStatsInfo(),Gn=xn?function(er){const cr=er.localCandidate.candidateType,gr=er.remoteCandidate.candidateType;return cr==="host"&&gr==="host"?"local":cr==="relay"||gr==="relay"?"TURN":"STUN"}(xn):void 0;ct.a.info(`ICE connection state changed to ${mn}`,{sessionId:Er,connectionStatsInfo:xn,iceMode:Gn}),wr?.("ICE connection state change",{iceConnectionState:mn,sessionId:Er,connectionStatsInfo:xn,iceMode:Gn})}}),yield jn.setLocalDescription(yield jn.createOffer());const tr=new Date().getTime();for(;;){const mn=new Date().getTime()-tr;if(mn>this.connectTimeoutMs)return void ct.a.debug("Failed to generate offer because ICE gathering timed out.");if(mn>this.iceGatheringTimeoutMs&&this.hasIceCandidate){ct.a.debug("ICE gathering partially completed; proceeding",{iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn}),wr?.("ICE gathering partially completed",{sessionId:Er,iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn});break}if(jn.iceGatheringState==="complete"){ct.a.debug("ICE gathering complete",{iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn}),wr?.("ICE gathering completed",{sessionId:Er,iceTransportPolicy:jn.getConfiguration().iceTransportPolicy,waitTime:mn});break}yield Object(at.a)(.1*st.a.second)}const ar=(pn=this.peerConnection.getConfiguration().iceServers)!==null&&pn!==void 0?pn:[];for(const mn of ar)mn.credentialType=void 0;const hr=JSON.stringify(ar),cn=new Kt.Signal;return cn.setPayload(JSON.stringify(jn.localDescription)),cn.setSenderId(this.config.baseConfig.localPeerId),cn.setReceiverId(this.config.baseConfig.remotePeerId),cn.setIceServers(hr),cn.setIceTransportPolicy((Qn=this.peerConnection.getConfiguration().iceTransportPolicy)!==null&&Qn!==void 0?Qn:"all"),this.config.baseConfig.sessionType!==void 0?cn.setSessionType(this.config.baseConfig.sessionType):cn.setSessionType(Kt.SessionType.TELEOP),ct.a.debug("Sending offer signal with description",{description:cn.getPayload()}),cn})}getLanOffer(){return Zn(this,void 0,void 0,function*(){const{peerConnection:un,gotOffer:pn}=this;if(!this.config.baseConfig.isLan)throw new Error('"getLanOffer" method can only be used with LAN connections. Internet connections should call the "getOffer" method.');if(pn)return void ct.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,hn(this.peerConnection))return void ct.a.debug("Failed to generate offer because the peer connection was inactive.");yield un.setLocalDescription(yield un.createOffer());const Qn=new Date().getTime();for(;;){if(new Date().getTime()-Qn>this.iceGatheringTimeoutMs)return void ct.a.debug("Failed to generate offer because ICE gathering timed out.");if(un.iceGatheringState==="complete")break;yield Object(at.a)(.1*st.a.second)}const Jn=un.localDescription;if(Jn)return ct.a.debug("Sending LAN offer signal with description",{description:Jn}),Jn;ct.a.error("Failed to generate LAN offer description")})}handleLanAnswer(un){return Zn(this,void 0,void 0,function*(){const{peerConnection:pn}=this;if(!this.config.baseConfig.isLan)throw new Error('"handleLanAnswer" method can only be used with LAN connections. Internet connections should call the "handleSignal" method.');yield pn.setRemoteDescription(un)})}getChannelFromLabel(un){switch(un){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(un,pn){let Qn;try{Qn=Object(jt.encode)(JSON.stringify(pn))}catch(Jn){return void ct.a.warn("Failed to encode RTC message",{error:Jn})}try{un.send(Qn),this.sessionMetrics&&this.sessionMetrics.incrementLocalSent(pn)}catch(Jn){ct.a.warn("Failed to send message to channel",{error:Jn,channel:un.label})}}channelNotRecognized(un){return un!==this.latestTtlStreamChannel&&un!==this.latestReliableStreamChannel&&un!==this.latestTryOnceStreamChannel&&un!==this.reliableStreamChannel}setupChannel(un){un.onmessage=pn=>{if(this.channelNotRecognized(un))return void ct.a.warn("Received message on unrecognized data channel.");let Qn;try{Qn=JSON.parse(Object(jt.decode)(pn.data))}catch(Jn){return void ct.a.warn("Received unparseable message on RTC stream data channel",{error:Jn,channel:un.label})}Qn.communicationType==="message-chunk"?this.receiveChannelMessageChunk(un,Qn):this.receiveChannelMessage(un,Qn)},un.onerror=pn=>{ct.a.warn(`Channel error: ${pn.error}`,{error:pn.error,sessionId:this.getSessionId(),channelLabel:un.label})},un.onopen=()=>{ct.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:un.label})},un.onclose=()=>{const pn={bufferedAmount:un.bufferedAmount,sessionId:this.getSessionId(),channelLabel:un.label};this.closeCalled===!1?ct.a.debug("Unexpected channel closed",pn):ct.a.debug("Channel closed",pn)}}receiveChannelMessage(un,pn){const{config:Qn}=this,{remotePeerId:Jn}=this.config.baseConfig;this.lastMessageTimestamp=new Date().getTime(),pn=wn(pn),this.sessionMetrics&&this.sessionMetrics.incrementLocalReceived(pn),this.handleSystemMessage(un,pn)||(un===this.latestTryOnceStreamChannel||un===this.latestTtlStreamChannel||un===this.latestReliableStreamChannel)&&!this.isLatestMessage(pn)||Qn.baseConfig.receive(Jn,pn)}receiveChannelMessageChunk(un,pn){const Qn=this.reassemblyTable.get(pn.id)||[];if(Qn.push(pn),Qn.length===pn.total){const Jn=function(jn){const Fr=jn.sort((Er,wr)=>Er.seqEr.part).reduce((Er,wr)=>Er+wr);try{return JSON.parse(Fr)}catch{return void ct.a.warn("Could not reassemble RTC message chunks")}}(Qn);return Jn&&this.receiveChannelMessage(un,Jn),void this.reassemblyTable.delete(pn.id)}this.reassemblyTable.set(pn.id,Qn),this.reassemblyTableLastTimestamp.set(pn.id,new Date().getTime())}handleSystemMessage(un,pn){var Qn,Jn;const{config:jn}=this,{baseConfig:Fr}=jn,{remotePeerId:Er}=Fr;switch(pn.header.stream.streamType){case"ping":return this.sendSystemMessage(un,{type:"pong",timestamp:Et(pn.payload.ping)}),!0;case"pong":{const wr=new Date().getTime()-Et(pn.payload.pong);return this.pingTimeMs=wr,Rt.aggregate("rtc-ping-time",wr),!0}case"ping-v2":return this.sendPingV2(),!0;case"pong-v2":{const wr=Et(pn.payload.pongV2),tr=this.pingV2Map.get(wr.id);return tr?.sent!==wr.timestamp?(ct.a.warn("Pong timestamp doesn't match stored value",{currentEntry:tr,pong:wr}),!0):(this.pingV2Map.set(wr.id,{sent:wr.timestamp,received:new Date().getTime()}),!0)}case"streams-info":{const{sessionMetrics:wr}=this,tr=(Qn=pn.payload.streamsInfo)===null||Qn===void 0?void 0:Qn.timestamp;return!!tr&&(wr?.updateRemoteMessagesCounts(pn),(Jn=Fr.onStreamsInfoUpdate)===null||Jn===void 0||Jn.call(Fr,Er,tr),!0)}case"stream-control":return!0;default:return!1}}sendSystemMessage(un,pn){var Qn;const{localUserId:Jn,localPeerId:jn}=this.config.baseConfig;if(un.readyState!=="open")return;const Fr={entityId:Jn??jn,streamName:`$.${pn.type}`,streamType:pn.type};let Er;switch(pn.type){case"ping":Er={ping:new Date().getTime()};break;case"pong":Er={pong:pn.timestamp};break;case"ping-v2":Er={pingV2:pn.payload};break;case"pong-v2":Er={pongV2:pn.payload};break;case"stream-control":Er={streamControl:pn.streamControl};break;case"streams-info":Er={streamsInfo:(Qn=this.sessionMetrics)===null||Qn===void 0?void 0:Qn.getLocalStreamsInfo(new Date().getTime())}}this.sendOnChannel(un,gn(Fr,Er))}isLatestMessage(un){const pn=Fn(un.header.stream),Qn=(this.streamLatestTimestamp.get(pn)||0)<=un.header.created;return Qn&&this.streamLatestTimestamp.set(pn,un.header.created),Qn}}function $n(kn){kn&&clearInterval(kn)}function Tr(kn){var un,pn;return{userId:(un=kn.getUserId())===null||un===void 0?void 0:un.getValue(),deviceId:(pn=kn.getDeviceId())===null||pn===void 0?void 0:pn.getValue(),organizationId:kn.getOrganizationId(),id:kn.getPeerId(),capabilities:[],capabilitySet:{}}}var Qr=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class _r{constructor(un){this.config=un,this.grpcCallDeadline=5*st.a.second,this.refreshIntervalDelayMs=2*st.a.second,this.iceServersTtl=30*st.a.minute,this.connections=[],this.localConnections=[],this.isConnectionInitiator=new Map,this.isOutgoingConnection=new Map,this.peerDataChannelListeners=[];const{refreshIntervalDelayMs:pn}=this;this.refreshInterval=mt({func:()=>Qr(this,void 0,void 0,function*(){try{yield this.update()}catch(Qn){ct.a.warn("RTC refresh failed",{error:Qn})}}),delay:pn,immediate:!0})}send(un,pn,Qn){const Jn=this.getActiveConnection(un);Jn?Jn.isReady()?Jn.send(pn,Qn):ct.a.warn("Send called with unready connection."):ct.a.warn("Send called with no connection.")}controlRemoteStream(un,pn){const Qn=this.getActiveConnection(un);Qn?Qn.isReady()?Qn.controlRemoteStream(pn):ct.a.warn("controlRemoteStream called with unready connection."):ct.a.warn("controlRemoteStream called with no connection.")}getLocalPeer(){return Qr(this,void 0,void 0,function*(){for(;!this.localPeer;)yield Object(at.a)(.1*st.a.second);return Tr(this.localPeer)})}connect(un,pn){var Qn,Jn,jn;return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode===!0)throw new Error("connect method called in local only mode.");const{track:Fr,signalingClient:Er}=this.config,{localPeer:wr,receiveSignalStream:tr,iceServers:ar}=this;if(!wr||!tr||!ar)return void ct.a.warn("Connect called prior to local peer, receiveSignalStream, and ICE servers ready");if(this.getActiveConnection(un))return void ct.a.warn("Connect called for peer with existing connection.");if(this.isOutgoingConnection.get(un))return void ct.a.warn("Connect called for peer with an existing outgoing connection offer.");this.isOutgoingConnection.set(un,!0);const hr=function(gr,br,ur){const{rtcIceTransportPolicies:nr,rtcIceServerProtocol:Kr,useAllServers:ho}=br||{},Nn=gr.map(rr=>Object.assign(Object.assign({},rr),{urls:rr.urls.filter(Rr=>{const vr=(nr===void 0||nr.some(fr=>zt(Rr,fr)))&&(Kr===void 0||en(Rr,Kr));return vr||ct.a.debug(`Ignoring ICE server: ${Rr}`,{organizationId:ur}),vr})})).filter(({urls:rr})=>rr.filter(Rr=>Rr).length>0);return ho?Nn:[Pt(Nn,"stun"),Pt(Nn,"turn")].filter(rr=>rr!==void 0).map(rr=>Et(rr))}(ar,pn);ct.a.debug("Received ICE servers:",ar),ct.a.debug("Using ICE servers:",hr);const cn=new Pn(yield this.createRTCPeerConnection(hr),{baseConfig:{isOffer:!0,isLan:!1,receive:(gr,br)=>this.config.receive(gr,br),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(gr,br)=>{var ur,nr;return(nr=(ur=this.config).onStreamsInfoUpdate)===null||nr===void 0?void 0:nr.call(ur,gr,br)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(Qn=wr.getUserId())===null||Qn===void 0?void 0:Qn.getValue(),localPeerId:wr.getPeerId(),remotePeerId:un,sessionType:this.config.sessionType},remoteConfig:{}},gr=>this.onCustomDataChannel(un,gr)),mn=yield cn.getOffer();if(!mn)return ct.a.error("Failed to generate offer."),void this.isOutgoingConnection.delete(un);ct.a.debug("Sending offer."),Fr?.("Sending offer",mn);const xn=new Kt.SendSignalRequest;xn.setSignal(mn);const Gn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield Er.sendSignal(xn,yield this.getMetadata({}))}catch(gr){ct.a.warn("Error when sending signal",{error:gr})}}))();if(!this.isOutgoingConnection.get(un))return void ct.a.debug("No offer set after receiving offer signal response.");ct.a.debug("Offer sent.");const er=(Jn=Gn?.getSessionId())===null||Jn===void 0?void 0:Jn.getValue(),cr=(jn=Gn?.getSessionCreatedTimestamp())===null||jn===void 0?void 0:jn.getValue();return er&&cr?(cn.setSessionId(er),cn.setSessionCreatedTimestamp(cr),this.isOutgoingConnection.delete(un),this.connections.push(cn),this.isConnectionInitiator.set(cn,!0),this.setupHandlers(cn),er):(ct.a.warn("No session ID or no session created timestamp on send signal response."),void this.isOutgoingConnection.delete(un))})}connectLan(un){var pn,Qn;return Qr(this,void 0,void 0,function*(){const Jn=new Ot(un),jn=new Pn(yield this.createRTCPeerConnection([]),{baseConfig:{isOffer:!0,isLan:!0,receive:(tr,ar)=>this.config.receive(tr,ar),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(tr,ar)=>{var hr,cn;return(cn=(hr=this.config).onStreamsInfoUpdate)===null||cn===void 0?void 0:cn.call(hr,tr,ar)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(Qn=(pn=this.localPeer)===null||pn===void 0?void 0:pn.getUserId())===null||Qn===void 0?void 0:Qn.getValue(),localPeerId:"lan_client",remotePeerId:un}},tr=>this.onCustomDataChannel(un,tr)),Fr=yield jn.getLanOffer();if(!Fr)return ct.a.warn("Could not generate LAN offer"),!1;const Er=yield Jn.postLanRtcOffer({offer:JSON.stringify(Fr)}),wr=new RTCSessionDescription(JSON.parse(Er.answer));return yield jn.handleLanAnswer(wr),this.localConnections.push(jn),this.isConnectionInitiator.set(jn,!0),Object(Zt.a)()})}getConnections(){return[...this.connections,...this.localConnections]}createCustomDataChannel(un,pn,Qn,Jn,jn){const Fr=this.getActiveConnection(un);if(Fr&&this.isConnectionInitiator.has(Fr)){const wr=Fr.peerConnection.createDataChannel("custom."+pn,Qn);return Jn&&(wr.binaryType="arraybuffer"),jn(un,wr),()=>{}}const Er=(wr,tr)=>{un===wr&&tr.label==="custom."+pn&&jn(un,tr)};return this.peerDataChannelListeners.push(Er),()=>{this.peerDataChannelListeners=this.peerDataChannelListeners.filter(wr=>wr!==Er)}}onCustomDataChannel(un,pn){this.peerDataChannelListeners.forEach(Qn=>Qn(un,pn))}getConnectionStatus(un){if(this.isOutgoingConnection.get(un))return"connecting";const pn=this.getActiveConnection(un);return pn?pn.isReady()?"connected":"connecting":"disconnected"}getConnectionStatsInfo(un){return Qr(this,void 0,void 0,function*(){const pn=this.getActiveConnection(un);if(pn)return yield pn.getConnectionStatsInfo()})}disconnect(un){return Qr(this,void 0,void 0,function*(){const pn=this.getActiveConnection(un);pn&&(yield pn.close())})}getPeers(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:un}=this.config,pn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield un.getPeers(new Kt.GetPeersRequest,yield this.getMetadata({}))}catch(jn){ct.a.warn("Error when getting peers",{error:jn})}}))();if(!pn)return[];const Qn=pn.getPeersList();if(!Qn)return[];const Jn=jn=>{var Fr,Er;return(Er=(Fr=jn.getPeerCreatedTimestamp())===null||Fr===void 0?void 0:Fr.getValue())!==null&&Er!==void 0?Er:0};return Qn.sort((jn,Fr)=>Jn(Fr)-Jn(jn)).map(jn=>Tr(jn))})}getSessions(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:un}=this.config,pn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield un.getPeers(new Kt.GetPeersRequest,yield this.getMetadata({}))}catch(jn){ct.a.warn("Error when getting peers",{error:jn})}}))();if(!pn)return{};const Qn=pn.getPeersList(),Jn={};for(const jn of Qn)Jn[jn.getPeerId()]=jn.getSessionIdsList();return Jn})}getPing(un){const pn=this.getActiveConnection(un);if(pn)return pn.getPing();ct.a.warn("Attempted to get ping time from inactive peer.")}getPingInfo(un){const pn=this.getActiveConnection(un);if(pn)return pn.getPingInfo();ct.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(un){const pn=this.getActiveConnection(un);if(pn)return pn.getLastMessageTimestamp();ct.a.warn("Attempted to get last message time from inactive peer.")}getSessionMetricsMessageCounts(un){const pn=this.getActiveConnection(un);if(pn)return pn.getSessionMetricsMessageCounts();ct.a.warn("Attempted to get session metrics counts from inactive peer.")}isReady(){if(this.config.lanOnlyMode)return!0;const{localPeer:un,receiveSignalStream:pn,iceServers:Qn}=this;return!!(un&&pn&&Qn)}shutdown(){return Qr(this,void 0,void 0,function*(){ct.a.info("Shutdown called on RTC client"),yield this.refreshInterval.stop(),this.receiveSignalStream&&this.receiveSignalStream.cancel();const un=this.connections;this.connections=[],yield this.closeConnections(un);const{localPeer:pn}=this;if(!pn||this.config.lanOnlyMode)return;const{signalingClient:Qn}=this.config;yield(()=>Qr(this,void 0,void 0,function*(){try{const Jn=new Kt.DeletePeerRequest;Jn.setPeerId(pn.getPeerId()),yield Qn.deletePeer(Jn,yield this.getMetadata({}))}catch(Jn){return void ct.a.warn("Error deleting local peer",{error:Jn})}}))()})}createPeer(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createPeer method cannot be used in local-only mode.");const{signalingClient:un}=this.config,pn=yield(()=>Qr(this,void 0,void 0,function*(){try{return yield un.createPeer(new Kt.CreatePeerRequest,yield this.getMetadata({}))}catch(Jn){throw new Error(`Was not able to create peer: ${JSON.stringify(Jn)}`)}}))(),Qn=pn?.getPeer();if(!Qn)throw new Error("Response did not provide peer.");return this.localPeer=Qn})}createReceiveSignalStream(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createReceiveSignalStream method cannot be used in local-only mode.");const{signalingClient:un}=this.config,{localPeer:pn,iceServers:Qn}=this;if(!pn||!Qn)return;const{receiveSignalStream:Jn}=this;Jn&&Jn.cancel();const jn=new Kt.ReceiveSignalStreamRequest;jn.setPeerId(pn.getPeerId());const Fr=yield(()=>Qr(this,void 0,void 0,function*(){try{return un.receiveSignalStream(jn,yield this.getMetadata({hasDeadline:!1}))}catch(Er){throw new Error(`Unable to create receive signal stream: ${JSON.stringify(Er)}`)}}))();if(!Fr)throw new Error("Response did not provide stream.");return Fr.on("data",Er=>Qr(this,void 0,void 0,function*(){var wr,tr,ar,hr;const cn=Er.getSignal(),mn=(wr=cn?.getSessionId())===null||wr===void 0?void 0:wr.getValue(),xn=cn?.getSenderId(),Gn=cn?.getReceiverId(),er=(tr=cn?.getSessionCreatedTimestamp())===null||tr===void 0?void 0:tr.getValue();if(!(cn&&mn&&xn&&Gn&&er))return void ct.a.warn("Received signal with missing information.");const cr=this.getActiveConnection(xn);if(cr)if(cr.getSessionId()!==mn){if(ct.a.debug("Received signal: different session for a peer we're already connected to."),(cr.getSessionCreatedTimestamp()||0)>er)return;const gr=new Pn(yield this.createRTCPeerConnection(Qn),{baseConfig:{isOffer:!1,isLan:!1,receive:(br,ur)=>this.config.receive(br,ur),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(br,ur)=>{var nr,Kr;return(Kr=(nr=this.config).onStreamsInfoUpdate)===null||Kr===void 0?void 0:Kr.call(nr,br,ur)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:pn.getPeerId(),localUserId:(hr=pn.getUserId())===null||hr===void 0?void 0:hr.getValue(),remotePeerId:xn},remoteConfig:{sessionId:mn,sessionCreatedTimestamp:er}},br=>this.onCustomDataChannel(xn,br));yield gr.handleSignal(cn),this.connections.push(gr)}else ct.a.debug("Received signal: for an existing connection."),yield cr.handleSignal(cn);else{ct.a.debug("Received signal: new connection.");const gr=new Pn(yield this.createRTCPeerConnection(Qn),{baseConfig:{isOffer:!1,isLan:!1,receive:(br,ur)=>this.config.receive(br,ur),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(br,ur)=>{var nr,Kr;return(Kr=(nr=this.config).onStreamsInfoUpdate)===null||Kr===void 0?void 0:Kr.call(nr,br,ur)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:pn.getPeerId(),localUserId:(ar=pn.getUserId())===null||ar===void 0?void 0:ar.getValue(),remotePeerId:xn},remoteConfig:{sessionId:mn,sessionCreatedTimestamp:er}},br=>this.onCustomDataChannel(xn,br));yield gr.handleSignal(cn),this.connections.push(gr)}})),Fr.on("end",()=>{Fr.cancel(),this.receiveSignalStream=void 0}),Fr.on("error",Er=>{switch(Er.code){case nn.StatusCode.CANCELLED:case nn.StatusCode.UNAVAILABLE:case nn.StatusCode.UNKNOWN:ct.a.debug("Receive signal stream error",{error:Er});break;case nn.StatusCode.UNAUTHENTICATED:ct.a.warn("Receive signal stream error",{error:Er});break;default:ct.a.error("Receive signal stream error",{error:Er})}Fr.cancel(),this.receiveSignalStream=void 0}),this.receiveSignalStream=Fr})}createRTCPeerConnection(un){var pn;return Qr(this,void 0,void 0,function*(){const Qn=(pn=this.config.alternateRTCPeerConnection)!==null&&pn!==void 0?pn:window.RTCPeerConnection;if(!Qn)throw function(){const{userAgent:Jn}=navigator;return Jn.includes("Firefox/")?"Firefox":Jn.includes("Edg/")?"Edge":Jn.includes("Chrome/")?"Chrome":Jn.includes("Safari/")?"Safari":Jn.includes("MSIE/")||Jn.includes("Trident/")?"IE":"Other"}()!=="Chrome"?new Error("WebRTC is not enabled. Please try again with the latest version of Google Chrome."):new Error("WebRTC is not enabled. Please ensure WebRTC is not disabled by ad blocking software.");return new Qn({iceServers:un})})}closeConnections(un){return Qr(this,void 0,void 0,function*(){const pn=yield Dt(un.map(Qn=>Qr(this,void 0,void 0,function*(){yield Qn.close()})));for(const Qn of pn)ct.a.warn("Request to close session failed",{error:Qn})})}getActiveConnection(un){return this.getConnections().find(pn=>pn.getRemotePeerId()===un&&pn.isActive())}update(){var un;return Qr(this,void 0,void 0,function*(){if(this.localConnections=this.localConnections.filter(Er=>Er.isActive()),this.config.lanOnlyMode)return;const{signalingClient:pn}=this.config;if(!this.localPeer||!this.receiveSignalStream||!this.iceServers)return this.localPeer||(yield this.createPeer()),this.iceServers||(yield this.updateIceServers()),void(this.receiveSignalStream||(yield this.createReceiveSignalStream()));yield this.closeConnections(this.connections.filter(Er=>!Er.isActive())),this.connections=this.connections.filter(Er=>Er.isActive());const{localPeer:Qn}=this,Jn=this.connections.filter(Er=>Er.getSessionId).map(Er=>Et(Er.getSessionId()));Qn.setSessionIdsList(Jn);const jn=new Kt.RefreshPeerRequest;jn.setPeer(Qn);try{yield pn.refreshPeer(jn,yield this.getMetadata({}))}catch(Er){Er.code===nn.StatusCode.NOT_FOUND?(ct.a.warn("Peer expired, creating new peer",{peerId:Qn.getPeerId()}),yield this.reset()):ct.a.warn("Error calling RefreshPeer",{error:Er})}const Fr=yield this.getPeers();for(const Er of this.connections)Er.setRemoteDeviceId((un=Fr.find(wr=>wr.id===Er.getRemotePeerId()))===null||un===void 0?void 0:un.deviceId)})}reset(){return Qr(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.isOutgoingConnection=new Map,yield this.createPeer(),yield this.createReceiveSignalStream()})}updateIceServers(){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)return;const{iceServersLastUpdate:un,iceServersTtl:pn}=this,Qn=new Date().getTime();if(!un||Qn-un>pn)try{const Jn=(yield this.config.signalingClient.getIceServers(new Kt.GetIceServersRequest,yield this.getMetadata({}))).getIceServers();this.iceServers=JSON.parse(Jn),this.iceServersLastUpdate=Qn}catch(Jn){ct.a.warn("Error in updateIceServers",{error:Jn})}})}setupHandlers(un){const{peerConnection:pn}=un,Qn=un.getSessionCreatedTimestamp();pn.onconnectionstatechange=()=>Qr(this,void 0,void 0,function*(){const Jn=pn.connectionState;if(Qn)switch(Jn){case"connected":Rt.aggregate("rtc-connect-time",new Date().getTime()-Qn);break;case"failed":Rt.increment("rtc-connect-failed")}})}getMetadata(un){return Qr(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getMetadata method cannot be called in local-only mode");const{getToken:pn}=this.config,{grpcCallDeadline:Qn}=this,{hasDeadline:Jn}=un,jn=Jn===!1?void 0:new Date().getTime()+Qn;return{authorization:yield pn(),deadline:jn}})}}var Ir=et(10),Jr=et(11),qr=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Uo{constructor(un,pn){this.sessionId=un,this.connection=pn,this.sentMessagesCounts=new Map,this.receivedMessagesCounts=new Map,this.sessionId=un,this.connection=pn}incrementMessageSent(un){const pn=Fn(un.header.stream);this.sentMessagesCounts.set(pn,(this.sentMessagesCounts.get(pn)||0)+1)}incrementMessageReceived(un){const pn=Fn(un.header.stream);this.receivedMessagesCounts.set(pn,(this.receivedMessagesCounts.get(pn)||0)+1)}uploadMetrics(){return qr(this,void 0,void 0,function*(){const{sessionId:un}=this,pn=yield this.connection.peerConnection.getStats(),Qn={};pn.forEach(jn=>Qn[jn.id]=jn),ct.a.debug("rtc-stats",Object.assign(Object.assign({},Qn),{sessionId:un}));const Jn=[...new Set(Array.from(this.sentMessagesCounts.keys()).concat(Array.from(this.receivedMessagesCounts.keys())))].reduce((jn,Fr)=>{const Er=this.sentMessagesCounts.get(Fr),wr=this.receivedMessagesCounts.get(Fr);return Object.assign(Object.assign({},jn),{[`${Fr}-sent`]:Er,[`${Fr}-received`]:wr})},{sessionId:un});ct.a.debug("rtc-message-report",Jn)})}}function eo(kn,un){return Fn(kn)===Fn(un)}var Yr=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class _o{constructor(un,pn){this.peerConnection=un,this.config=pn,this.connectTimeoutMs=10*st.a.second,this.gatherIceTimeoutMs=5*st.a.second,this.pingUpdateTimeoutMs=2*st.a.second,this.streamLatestTimestamp=new Map,this.closeCalled=!1,this.connectCalled=!1,this.sentOffer=!1,this.receivedIceCandidate=!1;const{isOffer:Qn}=pn;Qn?this.initializeChannels(un):un.ondatachannel=Jn=>{switch(Jn.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=Jn.channel;break;case"stream.reliable":this.reliableStreamChannel=Jn.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=Jn.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=Jn.channel}this.setupChannel(Jn.channel)},this.sessionMetrics=new Uo(this.getSessionId(),this)}connect(){return Yr(this,void 0,void 0,function*(){if(this.connectCalled)return;this.connectCalled=!0,this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:Jn}=this;Jn&&this.sendSystemMessage(Jn,{type:"ping"})},this.pingUpdateTimeoutMs),this.connectTimeout=setTimeout(()=>Yr(this,void 0,void 0,function*(){this.isReady()||(ct.a.warn("RTC connect timed out, closing connection"),yield this.close())}),this.connectTimeoutMs);const{peerConnection:un,config:{isOffer:pn,sessionId:Qn}}=this;if(pn){const Jn=yield un.createOffer();yield un.setLocalDescription(Jn)}pn&&(this.gatherIceTimeout=setTimeout(()=>Yr(this,void 0,void 0,function*(){this.sentOffer||(ct.a.warn("ICE gathering timed out"),this.receivedIceCandidate?(ct.a.warn("Attempting to connect with partial ICE candidate pool"),yield this.sendOffer()):yield this.close())}),this.gatherIceTimeoutMs),un.onicecandidate=Jn=>Yr(this,void 0,void 0,function*(){Jn.candidate?this.receivedIceCandidate=!0:yield this.sendOffer()}),un.onicegatheringstatechange=()=>Yr(this,void 0,void 0,function*(){un.iceGatheringState==="complete"&&(yield this.sendOffer())}),un.onnegotiationneeded=()=>{ct.a.debug("Negotiation needed",{sessionId:Qn})})})}handleSignal(un){return Yr(this,void 0,void 0,function*(){const{peerConnection:pn,config:{sessionId:Qn,sendSignal:Jn}}=this,{description:jn}=JSON.parse(un.payload);if(ct.a.debug("Handling signal",{sessionId:Qn,description:JSON.stringify(jn)}),jn)if(pn.signalingState!=="stable"||pn.connectionState!=="connected")if(pn.remoteDescription)ct.a.warn(`Received SDP signal during negotiation when remote description is already set: ${JSON.stringify(un)}`);else if(jn.type==="offer"){yield pn.setRemoteDescription(jn);const Fr=yield pn.createAnswer();yield pn.setLocalDescription(Fr),yield Jn({payload:JSON.stringify({description:Fr})})}else jn.type==="answer"&&(yield pn.setRemoteDescription(jn));else ct.a.warn(`Received SDP signal when signaling is stable and connected: ${JSON.stringify(un)}`);else ct.a.warn(`Received non-SDP signal: ${JSON.stringify(un)}`)})}send(un,pn){const Qn=this.getChannelFromLabel(pn.channelLabel);Qn?this.sendOnChannel(Qn,un):ct.a.warn("Send called with unexpected channel label",{channelLabel:pn.channelLabel})}controlRemoteStream(un){this.sendSystemMessage(Et(this.reliableStreamChannel),{type:"stream-control",streamControl:un})}isActive(){return new Set(["new","connecting","connected"]).has(this.peerConnection.connectionState)}isReady(){const{peerConnection:un,latestTtlStreamChannel:pn,reliableStreamChannel:Qn,latestTryOnceStreamChannel:Jn}=this;return!!(Qn&&pn&&Jn)&&un.connectionState==="connected"&&Qn.readyState==="open"&&pn.readyState==="open"&&Jn.readyState==="open"}isClosed(){const{peerConnection:un,reliableStreamChannel:pn,latestTryOnceStreamChannel:Qn,latestTtlStreamChannel:Jn}=this;return!(un.connectionState!=="closed"||pn!==void 0&&pn.readyState!=="closed"||Qn!==void 0&&Qn.readyState!=="closed"||Jn!==void 0&&Jn.readyState!=="closed")}needsClosing(){const{peerConnection:un,latestTtlStreamChannel:pn,reliableStreamChannel:Qn,latestTryOnceStreamChannel:Jn}=this;if(this.isClosed())return!1;const jn=new Set(["closing","closed"]),Fr=Er=>Er&&jn.has(Er.readyState);return hn(un)||Fr(pn)||Fr(Qn)||Fr(Jn)}close(){return Yr(this,void 0,void 0,function*(){this.closeCalled||(this.closeCalled=!0,yield this.sessionMetrics.uploadMetrics(),this.pingUpdateTimeout&&clearInterval(this.pingUpdateTimeout),this.connectTimeout&&clearTimeout(this.connectTimeout),this.gatherIceTimeout&&clearTimeout(this.gatherIceTimeout),this.peerConnection.close())})}getPing(){return this.pingTimeMs}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionId(){return this.config.sessionId}getRemotePeer(){return this.config.remotePeer}initializeChannels(un){this.latestTtlStreamChannel=un.createDataChannel("stream.latest-ttl",Vt),this.reliableStreamChannel=un.createDataChannel("stream.reliable",It),this.latestReliableStreamChannel=un.createDataChannel("stream.latest-reliable",$t),this.latestTryOnceStreamChannel=un.createDataChannel("stream.latest-try-once",Ht),this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}sendOffer(){return Yr(this,void 0,void 0,function*(){if(this.sentOffer||(this.sentOffer=!0,hn(this.peerConnection)))return;const{peerConnection:un,config:{sendSignal:pn}}=this,Qn=yield un.createOffer();yield un.setLocalDescription(Qn);const Jn={payload:JSON.stringify({description:Qn})};yield pn(Jn)})}getChannelFromLabel(un){switch(un){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(un,pn){let Qn;try{Qn=Object(jt.encode)(JSON.stringify(pn))}catch(Jn){return void ct.a.warn("Failed to encode RTC message",{error:Jn})}try{un.send(Qn),this.sessionMetrics.incrementMessageSent(pn)}catch(Jn){ct.a.warn("Failed to send message to channel",{error:Jn,channel:un.label})}}channelNotRecognized(un){return un!==this.latestTtlStreamChannel&&un!==this.latestReliableStreamChannel&&un!==this.latestTryOnceStreamChannel&&un!==this.reliableStreamChannel}setupChannel(un){un.onmessage=pn=>{if(this.channelNotRecognized(un))return void ct.a.warn("Received message on unrecognized data channel.");let Qn;try{Qn=JSON.parse(Object(jt.decode)(pn.data))}catch(Jn){return void ct.a.warn("Received unparseable RTC message",{error:Jn,channel:un.label})}if(this.lastMessageTimestamp=new Date().getTime(),Qn=wn(Qn),this.sessionMetrics.incrementMessageReceived(Qn),!this.handleSystemMessage(un,Qn)){if(!this.hasCapabilities(Qn))return void ct.a.warn("Received RTC message that was not within the capability scope of the connection.");(un===this.latestTryOnceStreamChannel||un===this.latestTtlStreamChannel||un===this.latestReliableStreamChannel)&&!this.isLatestMessage(Qn)||this.config.receive(this.config.remotePeer.id,Qn)}},un.onerror=pn=>{ct.a.warn(`Channel error: ${pn.error}`,{error:pn.error,sessionId:this.getSessionId(),channelLabel:un.label})},un.onopen=()=>{ct.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:un.label})},un.onclose=()=>{const pn={bufferedAmount:un.bufferedAmount,sessionId:this.getSessionId(),channelLabel:un.label};this.closeCalled===!1?ct.a.debug("Unexpected channel closed",pn):ct.a.debug("Channel closed",pn)}}handleSystemMessage(un,pn){switch(pn.header.stream.streamType){case"ping":return this.sendSystemMessage(un,{type:"pong",timestamp:Et(pn.payload.ping)}),!0;case"pong":{const Qn=new Date().getTime()-Et(pn.payload.pong);return this.pingTimeMs=Qn,Rt.aggregate("rtc-ping-time",Qn),!0}case"stream-control":return!0;default:return!1}}sendSystemMessage(un,pn){if(un.readyState!=="open")return;const Qn={entityId:Et(this.config.localPeer.deviceId||this.config.localPeer.userId),streamName:`$.${pn.type}`,streamType:pn.type};let Jn;switch(pn.type){case"ping":Jn={ping:new Date().getTime()};break;case"pong":Jn={pong:pn.timestamp};break;case"stream-control":Jn={streamControl:pn.streamControl}}this.sendOnChannel(un,gn(Qn,Jn))}hasCapabilities(un){var pn,Qn;const{localPeer:Jn,remotePeer:jn}=this.config,Fr=(pn=Jn.capabilitySet.streaming)===null||pn===void 0?void 0:pn.streams,Er=Fr&&Fr.some(ar=>ar.receive&&eo(ar.stream,un.header.stream)),wr=(Qn=jn.capabilitySet.streaming)===null||Qn===void 0?void 0:Qn.streams,tr=wr&&wr.some(ar=>ar.send&&eo(ar.stream,un.header.stream));return Er||tr}isLatestMessage(un){const pn=Fn(un.header.stream),Qn=(this.streamLatestTimestamp.get(pn)||0)<=un.header.created;return Qn&&this.streamLatestTimestamp.set(pn,un.header.created),Qn}}var ro=function(kn,un,pn,Qn){return new(pn||(pn=Promise))(function(Jn,jn){function Fr(tr){try{wr(Qn.next(tr))}catch(ar){jn(ar)}}function Er(tr){try{wr(Qn.throw(tr))}catch(ar){jn(ar)}}function wr(tr){var ar;tr.done?Jn(tr.value):(ar=tr.value,ar instanceof pn?ar:new pn(function(hr){hr(ar)})).then(Fr,Er)}wr((Qn=Qn.apply(kn,un||[])).next())})};class Fo{constructor(un){this.config=un,this.connections=[],this.connectingSessions=new Map,this.updateInterval=mt({func:()=>ro(this,void 0,void 0,function*(){try{yield this.update()}catch(pn){ct.a.warn("RTC update failed",{error:pn})}}),delay:250*st.a.millisecond,immediate:!0}),this.localPeer=this.createPeer()}send(un,pn,Qn){const Jn=this.getActiveConnection(un);Jn?Jn.isReady()?Jn.send(pn,Qn):ct.a.warn("Attempted to send with an active connection to that peer which was not yet ready."):ct.a.warn("Attempted to send with no active connection to that peer.")}controlRemoteStream(un,pn){const Qn=this.getActiveConnection(un);Qn?Qn.isReady()?Qn.controlRemoteStream(pn):ct.a.warn("Attempted to control remote stream with an active connection to that peer which was not yet ready."):ct.a.warn("Attempted to control remote stream with no active connection to that peer.")}connect(un){return ro(this,void 0,void 0,function*(){const pn=yield this.getLocalPeer();if(this.getActiveConnection(un))return void ct.a.warn("Attempted to connect to peer with an already active connection.");let Qn;try{Qn=yield this.config.signalingClient.createSession(yield this.config.getToken(),{offerPeerId:pn.id,answerPeerId:un})}catch(Jn){Object(Ir.a)(Jn,Jr.a,jn=>jn.statusCode===404),ct.a.warn("Attempted to connect to peer that does not exist.")}if(Qn)for(this.connectingSessions.set(Qn.id,new Date().getTime()),yield this.connectToSession(Qn);;)switch(yield Object(at.a)(.1),this.getConnectionStatus(un)){case"connecting":continue;case"connected":return Qn.id;case"disconnected":return}})}getConnectionStatus(un){const pn=this.getActiveConnection(un);return pn?pn.isReady()?"connected":"connecting":"disconnected"}getIceMode(un){const pn=this.getActiveConnection(un);if(pn)return pn.iceMode}disconnect(un){return ro(this,void 0,void 0,function*(){const pn=this.getActiveConnection(un);pn&&(yield this.closeConnection(pn))})}getLocalPeer(){return ro(this,void 0,void 0,function*(){return yield this.localPeer})}getPeers(){return ro(this,void 0,void 0,function*(){return yield this.config.signalingClient.getPeers(yield this.config.getToken())})}getPing(un){const pn=this.getActiveConnection(un);if(pn)return pn.getPing();ct.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(un){const pn=this.getActiveConnection(un);if(pn)return pn.getLastMessageTimestamp();ct.a.warn("Attempted to get ping time from inactive peer.")}shutdown(){return ro(this,void 0,void 0,function*(){yield this.updateInterval.stop();const un=this.connections;this.connections=[],yield this.closeConnections(un)})}closeConnection(un){return ro(this,void 0,void 0,function*(){this.connectingSessions.delete(un.getSessionId()),yield un.close();try{yield this.config.signalingClient.deleteSession(yield this.config.getToken(),un.getSessionId())}catch(pn){Object(Ir.a)(pn,Jr.a,Qn=>Qn.statusCode===404)}})}getSessions(){return ro(this,void 0,void 0,function*(){const un=yield this.getLocalPeer();return(yield this.config.signalingClient.getSessions(yield this.config.getToken())).filter(pn=>pn.offer.peer.id===un.id||pn.answer.peer.id===un.id)})}createPeer(){return ro(this,void 0,void 0,function*(){return yield this.config.signalingClient.createPeer(yield this.config.getToken(),{capabilitySet:this.config.capabilitySet||{}})})}createRTCPeerConnection(un={}){return ro(this,void 0,void 0,function*(){return new(this.config.alternateRTCPeerConnection||RTCPeerConnection)(Object.assign({iceServers:yield this.config.signalingClient.getIceServers(yield this.config.getToken())},un))})}closeConnections(un){return ro(this,void 0,void 0,function*(){const pn=yield Dt(un.map(Qn=>ro(this,void 0,void 0,function*(){yield this.closeConnection(Qn)})));for(const Qn of pn)ct.a.warn("Request to close session failed",{error:Qn})})}reset(){return ro(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.connectingSessions=new Map,this.localPeer=this.createPeer(),yield this.localPeer})}getActiveConnection(un){return this.connections.find(pn=>pn.getRemotePeer().id===un&&pn.isActive())}update(){return ro(this,void 0,void 0,function*(){const un=yield this.getLocalPeer();try{yield this.config.signalingClient.refreshPeer(yield this.config.getToken(),un.id)}catch(pn){Object(Ir.a)(pn,Jr.a,Qn=>Qn.statusCode===404),ct.a.warn("Peer expired, creating new peer",{peerId:un.id}),yield this.reset()}yield this.handleSessions(yield this.getSessions())})}handleSessions(un){return ro(this,void 0,void 0,function*(){yield this.syncConnectionsAndSessions(un);const pn=un.map(Qn=>({session:Qn,connection:this.connections.find(Jn=>Jn.getSessionId()===Qn.id)}));yield Promise.all(pn.map(({session:Qn,connection:Jn})=>ro(this,void 0,void 0,function*(){return yield this.maintainConnection(Qn,Jn)})))})}syncConnectionsAndSessions(un){return ro(this,void 0,void 0,function*(){const pn=new Set(un.map(jn=>jn.id)),Qn=jn=>pn.has(jn.getSessionId())||this.connectingSessions.has(jn.getSessionId());this.connections=this.connections.filter(jn=>Qn(jn));const Jn=this.connections.filter(jn=>!Qn(jn)||jn.needsClosing());yield Promise.all(Jn.map(jn=>ro(this,void 0,void 0,function*(){yield this.closeConnection(jn)})))})}maintainConnection(un,pn){return ro(this,void 0,void 0,function*(){const Qn=yield this.getLocalPeer(),Jn=un.offer.peer.id===Qn.id;if(pn){if(pn.isReady())try{yield this.config.signalingClient.refreshSession(yield this.config.getToken(),un.id)}catch(jn){Object(Ir.a)(jn,Jr.a,Fr=>Fr.statusCode===404),ct.a.debug("Refresh session not found",{sessionId:un.id})}else if(pn.isActive())try{yield this.consumeSignals(pn)}catch(jn){ct.a.warn("Failed to ingest signals, closing connection",{error:jn}),yield this.closeConnection(pn)}}else{if(Jn)return;yield this.connectToSession(un)}})}connectToSession(un){return ro(this,void 0,void 0,function*(){const pn=yield this.getLocalPeer(),Qn=un.offer.peer.id===pn.id,Jn=yield this.createRTCPeerConnection(),jn=new _o(Jn,{localPeer:Qn?un.offer.peer:un.answer.peer,remotePeer:Qn?un.answer.peer:un.offer.peer,sessionId:un.id,isOffer:Qn,sendSignal:Fr=>this.sendSignal(un.id,Fr),receive:(Fr,Er)=>this.config.receive(Fr,Er)});if(this.connections.find(Fr=>Fr.getSessionId()===un.id))return ct.a.warn("connectToSession called on a session that already has a connection.",{sessionId:un.id}),void(yield jn.close());this.setupHandlers(jn),this.connections.push(jn);try{yield jn.connect()}catch(Fr){ct.a.warn("Failed to handle negotiation, closing connection",{error:Fr}),yield this.closeConnection(jn)}})}setupHandlers(un){const{peerConnection:pn}=un,Qn=un.getSessionId();pn.onconnectionstatechange=()=>ro(this,void 0,void 0,function*(){const Jn=this.connectingSessions.get(Qn);if(Jn===void 0)return;const jn=pn.connectionState;switch(hn(pn)&&this.connectingSessions.delete(Qn),jn){case"connected":{this.connectingSessions.delete(Qn);const Fr=new Date().getTime()-Jn;Rt.aggregate("rtc-connect-time",Fr);break}case"failed":Rt.increment("rtc-connect-failed"),yield this.closeConnection(un)}})}consumeSignals(un){return ro(this,void 0,void 0,function*(){let pn=[];try{pn=yield this.config.signalingClient.takeSignals(yield this.config.getToken(),un.getSessionId())}catch(Qn){Object(Ir.a)(Qn,Jr.a,Jn=>Jn.statusCode===404)}for(const Qn of pn)yield un.handleSignal(Qn)})}sendSignal(un,pn){return ro(this,void 0,void 0,function*(){try{yield this.config.signalingClient.addSignals(yield this.config.getToken(),un,{signals:[pn]})}catch(Qn){Object(Ir.a)(Qn,Jr.a,Jn=>Jn.statusCode===404)}})}}},function(s,o,et){var tt={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let nt;const rt=new Uint8Array(16);function it(){if(!nt&&(nt=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!nt))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return nt(rt)}const ot=[];for(let at=0;at<256;++at)ot.push((at+256).toString(16).slice(1));function st(at,lt=0){return(ot[at[lt+0]]+ot[at[lt+1]]+ot[at[lt+2]]+ot[at[lt+3]]+"-"+ot[at[lt+4]]+ot[at[lt+5]]+"-"+ot[at[lt+6]]+ot[at[lt+7]]+"-"+ot[at[lt+8]]+ot[at[lt+9]]+"-"+ot[at[lt+10]]+ot[at[lt+11]]+ot[at[lt+12]]+ot[at[lt+13]]+ot[at[lt+14]]+ot[at[lt+15]]).toLowerCase()}o.a=function(at,lt,ut){if(tt.randomUUID&&!lt&&!at)return tt.randomUUID();const dt=(at=at||{}).random||(at.rng||it)();if(dt[6]=15&dt[6]|64,dt[8]=63&dt[8]|128,lt){ut=ut||0;for(let ht=0;ht<16;++ht)lt[ut+ht]=dt[ht];return lt}return st(dt)}},,function(s,o,et){et.r(o),et.d(o,"LogClient",function(){return ot});var tt=et(28),nt=et(10),rt=et(11),it=function(st,at,lt,ut){return new(lt||(lt=Promise))(function(dt,ht){function ct(gt){try{ft(ut.next(gt))}catch(yt){ht(yt)}}function pt(gt){try{ft(ut.throw(gt))}catch(yt){ht(yt)}}function ft(gt){var yt;gt.done?dt(gt.value):(yt=gt.value,yt instanceof lt?yt:new lt(function(Ut){Ut(yt)})).then(ct,pt)}ft((ut=ut.apply(st,at||[])).next())})};class ot extends tt.a{log(at){return it(this,void 0,void 0,function*(){const lt=ot.token;try{yield this.fetch("logs",{token:lt,method:"POST",body:JSON.stringify({logs:at}),allowUnsafeRetries:!0})}catch(ut){Object(nt.a)(ut,rt.a,dt=>dt.statusCode===401&<!==void 0),ot.token===lt&&delete ot.token,yield this.log(at)}})}}}])})})(dist$1);function defined$1$1(s,o){if(s!==void 0)return s;throw new Error(o||"Value is undefined")}let FORMANT_API_URL$1="https://api.formant.io";typeof window<"u"&&(FORMANT_API_URL$1=window.FORMANT_API_URL||FORMANT_API_URL$1);let urlParams$2=new URLSearchParams("");typeof window<"u"&&(urlParams$2=new URLSearchParams(window.location.search));const envDev=urlParams$2.get("formant_dev");envDev&&(FORMANT_API_URL$1="https://api-dev.formant.io");const envStage=urlParams$2.get("formant_stage");envStage&&(FORMANT_API_URL$1="https://api-stage.formant.io");const envLocal=urlParams$2.get("formant_local");envLocal&&(FORMANT_API_URL$1="https://api.formant.local");const millisecond$3$1=1,second$3$1=1e3,minute$3$1=60*second$3$1,hour$3$1=60*minute$3$1,day$3$1=24*hour$3$1,week$3$1=7*day$3$1,month$3$1=30*day$3$1,year$3$1=365*day$3$1,duration$3$1={millisecond:millisecond$3$1,second:second$3$1,minute:minute$3$1,hour:hour$3$1,day:day$3$1,week:week$3$1,month:month$3$1,year:year$3$1};function filterDataByType$2(s,o){return s.filter(et=>o.includes(et.type))}function filterDataByTime$2(s,o,et){const tt=o.getTime(),nt=et.getTime();return s.map(rt=>({...rt,points:rt.points.filter(([it])=>it>=tt&&itrt.length>0)}let StoreCache$2=class{constructor({capacity:o,timeout:et}={}){__publicField$1(this,"entries",new Map),__publicField$1(this,"metadata",new Map),__publicField$1(this,"capacity"),__publicField$1(this,"timeout"),this.capacity=o||1e4,this.timeout=et||duration$3$1.minute}get(o,et){const tt=this.keyToCacheKey(o),nt=this.entries.get(tt),rt=this.metadata.get(tt);return(nt===void 0||rt&&rt?.expiration.getTime()this.capacity&&this.deleteOldestEntry()}clear(){this.entries.clear(),[...this.metadata.values()].forEach(o=>o.generating=!1)}clearKey(o){this.metadata.delete(o),this.entries.delete(o)}keyToCacheKey(o){return JSON.stringify(o)}deleteOldestEntry(){if(this.metadata.size<1)return;const[o]=[...this.metadata.entries()].reduce(([et,tt],[nt,rt])=>rt.expiration.getTime(){et.then(rt=>{const it=this.metadata.get(tt);!(it!=null&&it.generating)||this.set(o,rt)})},0)}},QueryStore$2=class{constructor(){__publicField$1(this,"queryStoreCache",new StoreCache$2({capacity:1e4,timeout:20*duration$3$1.second})),__publicField$1(this,"liveQueryStoreCache",new StoreCache$2({capacity:1e4,timeout:200*duration$3$1.millisecond}))}moduleQuery(o,et,tt,nt,rt,it=!1){const ot={...o,names:[...et],types:[...tt]},st=this.query(ot,nt,rt,it);return st===void 0||st==="too much data"?st:filterDataByType$2(st,tt)}query(o,et,tt,nt=!1){const rt={...o,start:startOfMinute$1(et).toISOString(),end:nt?tt.toISOString():addMinutes$1(roundToNearestMinutes$1(tt),1).toISOString(),latestOnly:nt},it=tt>addSeconds$1(new Date,-20);let ot;return it?ot=this.liveQueryCache(rt):ot=this.queryCache(rt),!ot||ot==="too much data"||nt?ot:filterDataByTime$2(ot,et,tt)}queryCache(o){return this.queryStoreCache.get(o,async()=>{try{return await Fleet$1.queryTelemetry(o)}catch(et){throw et}})}liveQueryCache(o){return this.liveQueryStoreCache.get(o,async()=>{try{return await Fleet$1.queryTelemetry(o)}catch(et){throw et}})}};const queryStore$1=new QueryStore$2;let App$1=class{static sendAppMessage(o){window.parent.postMessage(o,"*")}static getCurrentModuleContext(){let o=new URLSearchParams("");return typeof window<"u"&&(o=new URLSearchParams(window.location.search)),o.get("module")}static async getCurrentModuleConfiguration(){let o=new URLSearchParams("");typeof window<"u"&&(o=new URLSearchParams(window.location.search));const et=o.get("configuration");return et===null||et.trim()===""?void 0:(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/module-configurations/`+et,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).configuration}static isModule(){return this.getCurrentModuleContext()!==null}static goToTime(o){this.sendAppMessage({type:"go_to_time",time:o.getTime()})}static goToDevice(o){this.sendAppMessage({type:"go_to_device",deviceId:o})}static showMessage(o){this.sendAppMessage({type:"show_message",message:o})}static requestModuleData(){const o=this.getCurrentModuleContext();if(!o)throw new Error("No module context");this.sendAppMessage({type:"request_module_data",module:o})}static setModuleDateTimeRange(o,et){const tt=this.getCurrentModuleContext();if(!tt)throw new Error("No module context");this.sendAppMessage({type:"set_module_data_time_range",module:tt,before:o,after:et||0})}static refreshAuthToken(){const o=this.getCurrentModuleContext();if(!o)throw new Error("No module context");this.sendAppMessage({type:"refresh_auth_token",module:o})}static sendChannelData(o,et){const tt=this.getCurrentModuleContext();if(!tt)throw new Error("No module context");this.sendAppMessage({type:"send_channel_data",source:tt,channel:o,data:et})}static setupModuleMenus(o){const et=this.getCurrentModuleContext();if(!et)throw new Error("No module context");this.sendAppMessage({type:"setup_module_menus",module:et,menus:o})}static addMenuListener(o){window.addEventListener("message",et=>{const tt=et.data;tt.type==="module_menu_item_clicked"&&o(tt.menu)})}static addAccessTokenRefreshListener(o){window.addEventListener("message",et=>{const tt=et.data;tt.type==="auth_token"&&o(tt.token)})}static addModuleDataListener(o){const et=this.getCurrentModuleContext();et&&this.sendAppMessage({type:"request_module_data",module:et}),window.addEventListener("message",tt=>{const nt=tt.data;nt.type==="module_data"&&o({streams:nt.streams,time:nt.time,queryRange:nt.queryRange})})}static addStreamListener(o,et,tt){const nt=rt=>{const it=rt.data;if(it.type==="module_data"){const{start:ot,end:st}=it.queryRange;tt(queryStore$1.moduleQuery({},o,et,new Date(ot),new Date(st),!1))}};return window.addEventListener("message",nt),()=>window.removeEventListener("message",nt)}static addModuleConfigurationListener(o){window.addEventListener("message",et=>{const tt=et.data;tt.type==="module_configuration"&&o(tt)})}static addChannelDataListener(o,et){window.addEventListener("message",tt=>{const nt=tt.data;nt.type==="channel_data"&&nt.channel===o&&et({source:nt.source,data:nt.data})})}static requestOverviewDevices(o){this.sendAppMessage({type:"request_devices"}),window.addEventListener("message",et=>{const tt=et.data;o(tt)})}static async prompt(o,et){return new Promise(tt=>{const nt=Math.random().toString();this.sendAppMessage({type:"prompt",promptId:nt,schema:o,okText:et?.okText,cancelText:et?.cancelText});const rt=it=>{const ot=it.data;ot.type==="prompt_response"&&ot.promptId===nt&&tt(ot.data),window.removeEventListener("message",rt)};window.addEventListener("message",rt)})}};const _Authentication=class{static async login(s,o){try{const et=await fetch(`${FORMANT_API_URL$1}/v1/admin/auth/login`,{method:"POST",body:JSON.stringify({email:s,password:o}),headers:{"Content-Type":"application/json"}}),tt=await et.json();if(et.status!==200)throw new Error(tt.message);return await _Authentication.loginWithToken(tt.authentication.accessToken,tt.authentication.refreshToken),tt.authentication}catch(et){return _Authentication.waitingForAuth.forEach(tt=>tt(!1)),_Authentication.waitingForAuth=[],Promise.reject(et)}}static async loginWithToken(s,o){const et=JSON.parse(atob(s.split(".")[1]));try{let tt;if(_Authentication.isShareToken=et["formant:claims"]&&et["formant:claims"].type=="share",et["formant:claims"]&&(_Authentication.currentOrganization=et["formant:claims"].organizationId),et["custom:organization_id"]&&(_Authentication.currentOrganization=et["custom:organization_id"]),_Authentication.isShareToken||(tt=et.sub),et["formant:claims"]&&et["formant:claims"].userId&&(tt=et["formant:claims"].userId),tt){const nt=await fetch(`${FORMANT_API_URL$1}/v1/admin/users/${tt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+s}}),rt=await nt.json();if(nt.status!==200)throw new Error(rt.message);_Authentication.currentUser=rt}_Authentication.token=s,_Authentication.waitingForAuth.forEach(nt=>nt(!0))}catch(tt){console.error(tt),_Authentication.waitingForAuth.forEach(nt=>nt(!1))}_Authentication.waitingForAuth=[],o&&(_Authentication.refreshToken=o,setInterval(async()=>{if(_Authentication.refreshToken){const tt=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:_Authentication.refreshToken})})).json();_Authentication.token=tt.authentication.accessToken}},1e3*60*60))}static isAuthenticated(){return _Authentication.token!==void 0}static getCurrentUser(){return _Authentication.currentUser}static async waitTilAuthenticated(){return _Authentication.token!==void 0?!0:new Promise(s=>{_Authentication.waitingForAuth.push(function(o){s(o)})})}static async listenForRefresh(){App$1.addAccessTokenRefreshListener(s=>{this.loginWithToken(s)}),setInterval(async()=>{App$1.refreshAuthToken()},1e3*60*60)}};let Authentication$1=_Authentication;__publicField$1(Authentication$1,"token");__publicField$1(Authentication$1,"refreshToken");__publicField$1(Authentication$1,"currentUser");__publicField$1(Authentication$1,"currentOrganization");__publicField$1(Authentication$1,"isShareToken",!1);__publicField$1(Authentication$1,"defaultDeviceId");__publicField$1(Authentication$1,"waitingForAuth",[]);function delay$2(s){return new Promise(o=>setTimeout(o,s))}let DataChannel$1=class{constructor(o){__publicField$1(this,"ready",!1),__publicField$1(this,"listeners",[]),__publicField$1(this,"openListeners",[]),__publicField$1(this,"closeListeners",[]),__publicField$1(this,"errorListeners",[]),__publicField$1(this,"binaryListeners",[]),__publicField$1(this,"error"),__publicField$1(this,"decoder",new TextDecoder),this.dataChannel=o,this.dataChannel.binaryType="arraybuffer",this.dataChannel.onopen=()=>{this.ready=!0,this.openListeners.forEach(et=>et())},this.dataChannel.onclose=()=>{this.ready=!1,this.closeListeners.forEach(et=>et())},this.dataChannel.onerror=et=>{console.error(et),this.error="An error occurred in DataChannel",this.errorListeners.forEach(tt=>tt(et))},this.dataChannel.onmessage=et=>{this.listeners.forEach(tt=>{const nt=new Uint8Array(et.data),rt=this.decoder.decode(nt);tt(rt)}),this.binaryListeners.forEach(tt=>{tt(new Uint8Array(et.data))})}}addOpenListener(o){this.openListeners.push(o)}removeOpenListener(o){this.openListeners=this.openListeners.filter(et=>et!==o)}addCloseListener(o){this.closeListeners.push(o)}removeCloseListener(o){this.closeListeners=this.closeListeners.filter(et=>et!==o)}addErrorListener(o){this.errorListeners.push(o)}removeErrorListener(o){this.errorListeners=this.errorListeners.filter(et=>et!==o)}async waitTilReady(){return this.ready?!0:new Promise((o,et)=>{let tt=window.setInterval(()=>{this.ready&&(window.clearInterval(tt),o(!0)),this.error&&et(this.error)},10)})}send(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}sendBinary(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}addListener(o){this.listeners.push(o)}removeListener(o){const et=this.listeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.listeners.splice(et,1)}addBinaryListener(o){this.binaryListeners.push(o)}removeBinaryListener(o){const et=this.binaryListeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.binaryListeners.splice(et,1)}},CaptureStream$1=class{constructor(o){__publicField$1(this,"token"),this.captureSession=o}async ingestJSON(o){if(!this.token){const et=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/capture-sessions/${this.captureSession.code}/authenticate`,{method:"POST"})).json();this.token=et.token}await fetch(`${FORMANT_API_URL$1}/v1/ingest`,{method:"POST",body:JSON.stringify({deviceId:this.captureSession.deviceId,name:this.captureSession.streamName,type:"json",points:[[Date.now(),JSON.stringify(o)]]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+this.token}})}},Manipulator$1=class{constructor(o,et){__publicField$1(this,"currentListeners",[]),__publicField$1(this,"onRealtimeMessage",(tt,nt)=>{nt.payload.jointState&&this.currentListeners.forEach(rt=>{nt.payload.jointState&&rt(nt.payload.jointState)})}),this.device=o,this.config=et}async synchronize(){this.device.addRealtimeListener(this.onRealtimeMessage),this.device.startListeningToRealtimeDataStream(this.config.currentJointStateStream)}async desynchronize(){this.device.removeRealtimeListener(this.onRealtimeMessage),this.device.stopListeningToRealtimeDataStream(this.config.currentJointStateStream)}async addCurrentJointStateListener(o){this.currentListeners.push(o)}},RequestDataChannel$1=class{constructor(o,et,tt){__publicField$1(this,"channel"),__publicField$1(this,"requestIdToResponseMap",new Map),this.device=o,this.channel_name=et,this.timeout=tt}addOpenListener(o){defined$1$1(this.channel,"channel not initalized").addOpenListener(o)}removeOpenListener(o){defined$1$1(this.channel,"channel not initalized").removeOpenListener(o)}addCloseListener(o){defined$1$1(this.channel,"channel not initalized").addCloseListener(o)}removeCloseListener(o){defined$1$1(this.channel,"channel not initalized").removeCloseListener(o)}addErrorListener(o){defined$1$1(this.channel,"channel not initalized").addErrorListener(o)}removeErrorListener(o){defined$1$1(this.channel,"channel not initalized").removeErrorListener(o)}},BinaryRequestDataChannel$1=class extends RequestDataChannel$1{constructor(){super(...arguments),__publicField$1(this,"RESPONSE_SUCCESS_BYTE",0),__publicField$1(this,"decoder",new TextDecoder)}generateBinaryId(){const o=new Uint8Array(16);for(let et=0;et{const et=o.slice(0,16).toString();if(et.length===0)throw new Error("Invalid response");const tt=o.slice(16);if(tt.length===0)throw new Error("Invalid response");this.requestIdToResponseMap.has(et)&&this.requestIdToResponseMap.set(et,tt)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateBinaryId(),it=rt.toString();tt.set(it,!0),et.sendBinary(new Uint8Array([...rt,...o]));const ot=new Date().getTime();for(;new Date().getTime(){const et=JSON.parse(o),{id:tt,data:nt,error:rt}=et;if(!tt)throw new Error("Invalid response");if(!nt&&!rt)throw new Error("Invalid response");this.requestIdToResponseMap.has(tt)&&this.requestIdToResponseMap.set(tt,et)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateTextId();tt.set(rt,!0),et.send(JSON.stringify({id:rt,data:o}));const it=new Date().getTime();for(;new Date().getTime(){this.realtimeListeners.forEach(it=>it(nt,rt))}),this.id=o,this.name=et,this.organizationId=tt}async getLatestTelemetry(){return(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}async getConfiguration(){let o=await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}});const et=await o.json();if(!et.state.reportedConfiguration)throw new Error("Device has no configuration, has it ever been turned on?");const tt=et.state.reportedConfiguration.version;return o=await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/${this.id}/configurations/${tt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}}),(await o.json()).document}async getFileUrl(o){return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[o]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).fileUrls}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error(`Realtime connection hasn't been started for ${this.id}`)}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async startRealtimeConnection(o){if(this.rtcClient)throw new Error(`Already created realtime connection to device ${this.id}`);{let et;if(rtcClientVersion==="1"?et=new dist$1.exports.RtcClientV1({signalingClient:new dist$1.exports.RtcSignalingClient(FORMANT_API_URL$1+"/v1/signaling"),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:this.handleMessage}):et=new dist$1.exports.RtcClient({signalingClient:new dist$1.exports.SignalingPromiseClient(FORMANT_API_URL$1,null,null),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:this.handleMessage,sessionType:o}),et.isReady)for(;!et.isReady();)await delay$2(100);const tt=(await et.getPeers()).find(nt=>nt.deviceId===this.id);if(!tt)throw new Error("Cannot find peer, is the robot offline?");for(this.remoteDevicePeerId=tt.id,await et.connect(this.remoteDevicePeerId);et.getConnectionStatus(this.remoteDevicePeerId)!=="connected";)await delay$2(100);this.rtcClient=et}}async sendRealtimeMessage(o,et={channelLabel:"stream.reliable"}){const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.send(defined$1$1(nt).id,o,et)}addRealtimeListener(o){this.realtimeListeners.push(o)}removeRealtimeListener(o){const et=this.realtimeListeners.indexOf(o);if(et===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(et,1)}async getRealtimeAudioStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="audio_common_msgs/AudioData"&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});return st}async getRealtimeVideoStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="formant/H264VideoFrame"&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});return st}async getRealtimeManipulators(){var o;const et=await this.getConfiguration(),tt=[];for(const nt of(o=et.teleop.rosStreams)!=null?o:[])nt.topicType=="sensor_msgs/JointState"&&tt.push(new Manipulator$1(this,{currentJointStateStream:{name:nt.topicName},plannedJointStateStream:nt.plannedTopic?{name:nt.plannedTopic}:void 0,planValidStream:nt.planValidTopic?{name:nt.planValidTopic}:void 0,endEffectorStream:nt.endEffectorTopic?{name:nt.endEffectorTopic}:void 0,endEffectorLinkName:nt.endEffectorLinkName,baseReferenceFrame:nt.baseReferenceFrame,localFrame:nt.localFrame}));return tt}async startListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!0,pipeline:"telemetry"})}async changeStreamAudioType(o,et){const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.controlRemoteStream(defined$1$1(nt).id,{streamName:o,setAudioFormat:et})}async disableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!1,pipeline:"telemetry"})}async getRemotePeer(){const o=(await defined$1$1(this.rtcClient,"Realtime connection has not been started").getPeers()).find(et=>et.deviceId===this.id);return defined$1$1(o,"Could not find remote peer for device "+this.id)}async stopRealtimeConnection(){if(this.rtcClient)await this.rtcClient.disconnect(this.id);else throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async isInRealtimeSession(){let o=await Fleet$1.getPeers(),et=await Fleet$1.getRealtimeSessions(),tt=o.find(nt=>nt.deviceId===this.id);return tt?et[tt.id].length>0:!1}async getAvailableCommands(){return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/command-templates/`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.map(o=>({name:o.name,id:o.id,command:o.command,description:o.description,parameterEnabled:o.parameterEnabled,parameterValue:o.parameterValue,parameterMeta:o.parameterMeta,enabled:o.enabled}))}async sendCommand(o,et,tt,nt){var rt;const it=(await this.getAvailableCommands()).find(at=>at.name===o);if(!it)throw new Error(`Could not find command with name "${o}"`);let ot;if(et===void 0)if(it.parameterEnabled&&it.parameterValue)ot=it.parameterValue;else throw new Error("Command has no default parameter value, you must provide one");else ot=et;let st={value:ot,scrubberTime:(tt||new Date).toISOString(),meta:{...it.parameterMeta,...nt}};await fetch(`${FORMANT_API_URL$1}/v1/admin/commands`,{method:"POST",body:JSON.stringify({commandTemplateId:it.id,organizationId:this.organizationId,deviceId:this.id,command:it.command,parameter:st,userId:(rt=Authentication$1.currentUser)==null?void 0:rt.id}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})}async createCustomDataChannel(o,et){if(rtcClientVersion==="1")throw new Error("createCustomDataChannel is not supported in rtcClientVersion 1");const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer(),rt=await new Promise(it=>{tt.createCustomDataChannel(defined$1$1(nt).id,o,{ordered:!0,...et},!1,(ot,st)=>{const at=new DataChannel$1(st);it(at)})});return await rt.waitTilReady(),rt}createCustomRequestDataChannel(o,et=3e3){return new TextRequestDataChannel$1(this,o,et)}createCustomBinaryRequestDataChannel(o,et=3e3){return new BinaryRequestDataChannel$1(this,o,et)}async createCaptureStream(o){const et=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/capture-sessions`,{method:"POST",body:JSON.stringify({deviceId:this.id,streamName:o,tags:{}}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json();return new CaptureStream$1(et)}async getTelemetry(o,et,tt,nt){return await Fleet$1.getTelemetry(this.id,o,et,tt,nt)}async getTelemetryStreams(){var o,et;const tt=await this.getConfiguration(),nt=await fetch(`${FORMANT_API_URL$1}/v1/queries/metadata/stream-names`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}}),rt=[],it=[];return(et=(o=tt.telemetry)==null?void 0:o.streams)==null||et.forEach(ot=>{ot.disabled!==!0&&rt.push(ot.name),ot.onDemand===!0&&it.push(ot.name)}),console.log(it),(await nt.json()).items.filter(ot=>!rt.includes(ot)).map(ot=>({name:ot,onDemand:it.includes(ot)}))}async createInterventionRequest(o,et,tt,nt){return await(await fetch(`${FORMANT_API_URL$1}/v1/admin/intervention-requests`,{method:"POST",body:JSON.stringify({message:o,interventionType:et,time:new Date().toISOString(),deviceId:this.id,tags:nt,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()}async addInterventionResponse(o,et,tt){return await(await fetch(`${FORMANT_API_URL$1}/v1/admin/intervention-responses`,{method:"POST",body:JSON.stringify({interventionId:o,interventionType:et,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()}async getAnnotationCount(o,et){return await Fleet$1.getAnnotationCount({...o,deviceIds:[this.id]},et)}async getAnnotationCountByIntervals(o,et,tt){return await Fleet$1.getAnnotationCountByIntervals({...o,deviceIds:[this.id]},et,tt)}async eventsCounter(o,et,tt,nt,rt){return await Fleet$1.eventsCounter(o,et,tt,nt,{...rt,deviceIds:[this.id]})}},PeerDevice$1=class{constructor(o){__publicField$1(this,"rtcClient"),__publicField$1(this,"remoteDevicePeerId"),__publicField$1(this,"realtimeListeners",[]),__publicField$1(this,"id"),__publicField$1(this,"handleMessage",(et,tt)=>{this.realtimeListeners.forEach(nt=>nt(et,tt))}),this.peerUrl=o}async getLatestTelemetry(){const o=await(await fetch(`${this.peerUrl}/telemetry`)).json();return Object.entries(o).map(([et,tt])=>({deviceId:this.id,streamName:et,streamType:"json",currentValue:tt,currentValueTime:tt.timestamp,tags:{}}))}async getDeviceId(){return(await(await fetch(`${this.peerUrl}/configuration`)).json()).agent_config.id}async getConfiguration(){return(await(await fetch(`${this.peerUrl}/configuration`)).json()).agent_config.document}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}async startRealtimeConnection(o){if(this.rtcClient)throw new Error(`Already created realtime connection to device ${this.id}`);{const et=new dist$1.exports.RtcClient({lanOnlyMode:!0,receive:this.handleMessage,sessionType:o});for(await et.connectLan(this.peerUrl);et.getConnectionStatus(this.peerUrl)!=="connected";)await delay$2(100);this.rtcClient=et}}addRealtimeListener(o){this.realtimeListeners.push(o)}removeRealtimeListener(o){const et=this.realtimeListeners.indexOf(o);if(et===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(et,1)}async getRealtimeVideoStreams(){var o,et,tt;const nt=await this.getConfiguration(),rt=[];for(const it of(o=nt.teleop.hardwareStreams)!=null?o:[])it.rtcStreamType==="h264-video-frame"&&rt.push({name:it.name});for(const it of(et=nt.teleop.rosStreams)!=null?et:[])it.topicType=="formant/H264VideoFrame"&&rt.push({name:it.topicName});for(const it of(tt=nt.teleop.customStreams)!=null?tt:[])it.rtcStreamType==="h264-video-frame"&&rt.push({name:it.name});return rt}async getRealtimeManipulators(){var o;const et=await this.getConfiguration(),tt=[];for(const nt of(o=et.teleop.rosStreams)!=null?o:[])nt.topicType=="sensor_msgs/JointState"&&tt.push(new Manipulator$1(this,{currentJointStateStream:{name:nt.topicName},plannedJointStateStream:nt.plannedTopic?{name:nt.plannedTopic}:void 0,planValidStream:nt.planValidTopic?{name:nt.planValidTopic}:void 0,endEffectorStream:nt.endEffectorTopic?{name:nt.endEffectorTopic}:void 0,endEffectorLinkName:nt.endEffectorLinkName,baseReferenceFrame:nt.baseReferenceFrame,localFrame:nt.localFrame}));return tt}async startListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!0,pipeline:"telemetry"})}async disableRealtimeTelemetryPriorityIngestion(o){const et=defined$1$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1$1(tt).id,{streamName:o,enablePriorityUpload:!1,pipeline:"telemetry"})}async getRemotePeer(){return{id:this.peerUrl,organizationId:"",deviceId:this.id,capabilities:[],capabilitySet:{}}}async stopRealtimeConnection(){if(this.rtcClient)await this.rtcClient.disconnect(this.id);else throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async createCustomDataChannel(o,et){const tt=defined$1$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer(),rt=await new Promise(it=>{tt.createCustomDataChannel(defined$1$1(nt).id,o,{ordered:!0,...et},!1,(ot,st)=>{const at=new DataChannel$1(st);it(at)})});return await rt.waitTilReady(),rt}createCustomRequestDataChannel(o,et=3e3){return new TextRequestDataChannel$1(this,o,et)}createCustomBinaryRequestDataChannel(o,et=3e3){return new BinaryRequestDataChannel$1(this,o,et)}};const _Fleet=class{static async setDefaultDevice(s){_Fleet.defaultDeviceId=s}static async getCurrentDevice(){if(!Authentication$1.token)throw new Error("Not authenticated");if(!_Fleet.defaultDeviceId)throw new Error("No known default device");const s=(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/device-details/query`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.find(et=>et.id===_Fleet.defaultDeviceId).name,o=new Device$1(_Fleet.defaultDeviceId,s,defined$1$1(Authentication$1.currentOrganization));return _Fleet.knownContext.push(new WeakRef(o)),o}static async getPeerDevice(s){const o=new PeerDevice$1(s);return o.id=await o.getDeviceId(),o}static async getDevice(s){if(!Authentication$1.token)throw new Error("Not authenticated");const o=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json(),et=o.name,tt=new Device$1(s,et,o.organizationId);return _Fleet.knownContext.push(new WeakRef(tt)),tt}static async getDevices(){if(!Authentication$1.token)throw new Error("Not authenticated");const s=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json();return s.items,s.items.map(o=>new Device$1(o.id,o.name,o.organizationId))}static async queryDevices(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.map(o=>new Device$1(o.id,o.name,o.organizationId))}static async getOnlineDevices(){if(!Authentication$1.token)throw new Error("Not authenticated");const s=(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/online-devices`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items;return(await _Fleet.getDevices()).filter(o=>s.includes(o.id))}static async getPeers(){if(!Authentication$1.token)throw new Error("Not authenticated");return await new dist$1.exports.RtcClient({signalingClient:new dist$1.exports.SignalingPromiseClient(FORMANT_API_URL$1,null,null),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:()=>{}}).getPeers()}static async getRealtimeSessions(){if(!Authentication$1.token)throw new Error("Not authenticated");return await new dist$1.exports.RtcClient({signalingClient:new dist$1.exports.SignalingPromiseClient(FORMANT_API_URL$1,null,null),getToken:async()=>defined$1$1(Authentication$1.token,"Realtime when user isn't authorized"),receive:()=>{}}).getSessions()}static async getRealtimeDevices(){if(!Authentication$1.token)throw new Error("Not authenticated");const s=(await(await fetch(`${FORMANT_API_URL$1}/v1/signaling/peers`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.map(o=>o.deviceId);return(await _Fleet.getDevices()).filter(o=>s.includes(o.id))}static async getLatestTelemetry(s){let o=s;return s&&!Array.isArray(s)&&(s=[s]),(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:o}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getTelemetry(s,o,et,tt,nt){let rt=s;Array.isArray(s)||(rt=[s]);let it=o;return Array.isArray(o)||(it=[o]),(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/queries`,{method:"POST",body:JSON.stringify({deviceIds:rt,end:tt.toISOString(),names:it,start:et.toISOString(),tags:nt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getFileUrl(s){const o=await(await fetch(`${FORMANT_API_URL$1}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[s]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json();if(o.fileUrls.length===0)throw new Error("File not found");return o.fileUrls[0]}static async queryTelemetry(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/queries`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async aggregateTelemetry(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/queries/queries`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).aggregates}static async queryEvents(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/events/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getEvent(s){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/events/query/id=${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getInterventions(){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/intervention-requests`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items}static async getCurrentGroup(){if(!Authentication$1.token)throw new Error("Not authenticated");let s=new URLSearchParams("");typeof window<"u"&&(s=new URLSearchParams(window.location.search));const o=s.get("group");if(o===null||o.trim()==="")return;const et=await fetch(`${FORMANT_API_URL$1}/v1/admin/groups/`+o,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}}),{tagKey:tt,tagValue:nt}=await et.json();return await this.queryDevices({tags:{[tt]:[nt]},enabled:!0,type:"default"})}static async getAnnotationCount(s,o){return(await this.queryEvents({...s,eventTypes:["annotation"]})).filter(et=>!!et.tags&&Object.keys(et.tags).includes(o)).reduce((et,tt)=>{const nt=tt.tags[o];return nt in et?(et[nt]+=1,et):(et[nt]=1,et)},{})}static async getAnnotationCountByIntervals(s,o,et){const{end:tt,start:nt}=s,rt=aggregateByDateFunctions$1[et].interval({start:new Date(nt),end:new Date(tt)}),it=rt.map((st,at)=>{const lt=new Date(st).toISOString(),ut=at===rt.length-1?new Date(Date.now()).toISOString():new Date(rt[at+1]);return this.getAnnotationCount({...s,start:lt,end:ut},o)}),ot=await Promise.all(it);return rt.map((st,at)=>({date:new Date(st).toISOString(),annotations:ot[at]}))}static async getStreams(){if(!Authentication$1.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL$1}/v1/admin/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()).items.filter(s=>s.enabled)}static async patchStream(s){if(!Authentication$1.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL$1}/v1/admin/streams/${s.id}`,{method:"PATCH",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication$1.token}})).json()}static async eventsCounter(s,o,et,tt,nt){const rt=aggregateByDateFunctions$1[o];return await Promise.all(Array(et).fill(0).map(async(it,ot)=>{const st=new Date(tt),at=rt.sub(rt.start(st),et-ot-1),lt=rt.sub(rt.end(st),et-ot-1),ut=formatTimeFrameText$1(at.toLocaleDateString(),lt.toLocaleDateString()),dt=await _Fleet.queryEvents({...nt,eventTypes:s,start:new Date(at).toISOString(),end:new Date(lt).toISOString()});return{date:ut,events:dt}}))}};let Fleet$1=_Fleet;__publicField$1(Fleet$1,"defaultDeviceId");__publicField$1(Fleet$1,"knownContext",[]);const aggregateByDateFunctions$1={day:{interval:eachDayOfInterval$1,start:startOfDay$1,end:endOfDay$1,sub:subDays$1,get:getDay$1},week:{interval:eachWeekOfInterval$1,start:startOfWeek$1,end:endOfWeek$1,sub:subWeeks$1,get:getWeek$1},month:{interval:eachMonthOfInterval$1,start:startOfMonth$1,end:endOfMonth$1,sub:subMonths$1,get:getMonth$1},year:{interval:eachYearOfInterval$1,start:startOfYear$1,end:endOfYear$1,sub:subYears$1,get:getYear$1},hour:{interval:eachHourOfInterval$1,start:startOfHour$1,end:endOfHour$1,sub:subHours$1,get:getHours$1},minute:{interval:eachMinuteOfInterval$1,start:startOfMinute$1,end:endOfMinute$1,sub:subMinutes$1,get:getMinutes$1},quarter:{interval:eachQuarterOfInterval$1,start:startOfQuarter$1,end:endOfQuarter$1,sub:subQuarters$1,get:getQuarter$1}},formatTimeFrameText$1=(s,o)=>s.split("/")[0]+"/"+s.split("/")[1]+"–"+o.split("/")[0]+"/"+o.split("/")[1];let urlParams=new URLSearchParams("");typeof window<"u"&&(urlParams=new URLSearchParams(window.location.search));const urlDevice=urlParams.get("device");urlDevice&&Fleet$1.setDefaultDevice(urlDevice);const urlAuth=urlParams.get("auth");urlAuth&&Authentication$1.loginWithToken(urlAuth);const moduleName=urlParams.get("module");moduleName&&Authentication$1.listenForRefresh();dist$1.exports.IRtcSendConfiguration;dist$1.exports.IRtcStreamMessage;dist$1.exports.IRtcStreamPayload;reactExports.createContext(void 0);var lodashExports={},lodash={get exports(){return lodashExports},set exports(s){lodashExports=s}};/** * @license * Lodash * Copyright OpenJS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */(function(s,o){(function(){var et,tt="4.17.21",nt=200,rt="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",it="Expected a function",ot="Invalid `variable` option passed into `_.template`",st="__lodash_hash_undefined__",at=500,lt="__lodash_placeholder__",ut=1,dt=2,ht=4,ct=1,pt=2,ft=1,gt=2,yt=4,Ut=8,Ft=16,mt=32,vt=64,At=128,Lt=256,Rt=512,St=30,Tt="...",Bt=800,xt=16,Ct=1,kt=2,Nt=3,Ot=1/0,Wt=9007199254740991,Dt=17976931348623157e292,Et=0/0,Pt=4294967295,zt=Pt-1,en=Pt>>>1,Kt=[["ary",At],["bind",ft],["bindKey",gt],["curry",Ut],["curryRight",Ft],["flip",Rt],["partial",mt],["partialRight",vt],["rearg",Lt]],nn="[object Arguments]",Zt="[object Array]",jt="[object AsyncFunction]",Vt="[object Boolean]",It="[object Date]",$t="[object DOMException]",Ht="[object Error]",qt="[object Function]",on="[object GeneratorFunction]",Xt="[object Map]",dn="[object Number]",_n="[object Null]",Fn="[object Object]",Un="[object Promise]",On="[object Proxy]",gn="[object RegExp]",hn="[object Set]",wn="[object String]",Zn="[object Symbol]",Pn="[object Undefined]",$n="[object WeakMap]",Tr="[object WeakSet]",Qr="[object ArrayBuffer]",_r="[object DataView]",Ir="[object Float32Array]",Wr="[object Float64Array]",qr="[object Int8Array]",Uo="[object Int16Array]",eo="[object Int32Array]",Yr="[object Uint8Array]",_o="[object Uint8ClampedArray]",ro="[object Uint16Array]",Fo="[object Uint32Array]",kn=/\b__p \+= '';/g,un=/\b(__p \+=) '' \+/g,pn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Qn=/&(?:amp|lt|gt|quot|#39);/g,Wn=/[&<>"']/g,jn=RegExp(Qn.source),Fr=RegExp(Wn.source),Er=/<%-([\s\S]+?)%>/g,wr=/<%([\s\S]+?)%>/g,tr=/<%=([\s\S]+?)%>/g,ar=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,hr=/^\w*$/,cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,mn=/[\\^$.*+?()[\]{}|]/g,xn=RegExp(mn.source),Gn=/^\s+/,er=/\s/,cr=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,gr=/\{\n\/\* \[wrapped with (.+)\] \*/,br=/,? & /,ur=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,nr=/[()=,{}\[\]\/\s]/,Kr=/\\(\\)?/g,ho=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Nn=/\w*$/,rr=/^[-+]0x[0-9a-f]+$/i,Rr=/^0b[01]+$/i,vr=/^\[object .+?Constructor\]$/,fr=/^0o[0-7]+$/i,zr=/^(?:0|[1-9]\d*)$/,Gr=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Pr=/($^)/,oo=/['\n\r\u2028\u2029\\]/g,ao="\\ud800-\\udfff",mo="\\u0300-\\u036f",lo="\\ufe20-\\ufe2f",To="\\u20d0-\\u20ff",Jo=mo+lo+To,Go="\\u2700-\\u27bf",cs="a-z\\xdf-\\xf6\\xf8-\\xff",So="\\xac\\xb1\\xd7\\xf7",so="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Bo="\\u2000-\\u206f",Io=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ns="A-Z\\xc0-\\xd6\\xd8-\\xde",ps="\\ufe0e\\ufe0f",gs=So+so+Bo+Io,bs="['’]",Lo="["+ao+"]",Qs="["+gs+"]",Ps="["+Jo+"]",No="\\d+",ys="["+Go+"]",Ns="["+cs+"]",fs="[^"+ao+gs+No+Go+cs+ns+"]",Zs="\\ud83c[\\udffb-\\udfff]",Sl="(?:"+Ps+"|"+Zs+")",As="[^"+ao+"]",ks="(?:\\ud83c[\\udde6-\\uddff]){2}",js="[\\ud800-\\udbff][\\udc00-\\udfff]",Xs="["+ns+"]",vo="\\u200d",Hl="(?:"+Ns+"|"+fs+")",Tn="(?:"+Xs+"|"+fs+")",En="(?:"+bs+"(?:d|ll|m|re|s|t|ve))?",Dn="(?:"+bs+"(?:D|LL|M|RE|S|T|VE))?",Mn=Sl+"?",Jn="["+ps+"]?",Vr="(?:"+vo+"(?:"+[As,ks,js].join("|")+")"+Jn+Mn+")*",Cr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",an="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",bn=Jn+Mn+Vr,Vn="(?:"+[ys,ks,js].join("|")+")"+bn,zn="(?:"+[As+Ps+"?",Ps,ks,js,Lo].join("|")+")",Hn=RegExp(bs,"g"),ir=RegExp(Ps,"g"),Yn=RegExp(Zs+"(?="+Zs+")|"+zn+bn,"g"),or=RegExp([Xs+"?"+Ns+"+"+En+"(?="+[Qs,Xs,"$"].join("|")+")",Tn+"+"+Dn+"(?="+[Qs,Xs+Hl,"$"].join("|")+")",Xs+"?"+Hl+"+"+En,Xs+"+"+Dn,an,Cr,No,Vn].join("|"),"g"),Mr=RegExp("["+vo+ao+Jo+ps+"]"),Jr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Hr=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],co=-1,_i={};_i[Ir]=_i[Wr]=_i[qr]=_i[Uo]=_i[eo]=_i[Yr]=_i[_o]=_i[ro]=_i[Fo]=!0,_i[nn]=_i[Zt]=_i[Qr]=_i[Vt]=_i[_r]=_i[It]=_i[Ht]=_i[qt]=_i[Xt]=_i[dn]=_i[Fn]=_i[gn]=_i[hn]=_i[wn]=_i[$n]=!1;var sn={};sn[nn]=sn[Zt]=sn[Qr]=sn[_r]=sn[Vt]=sn[It]=sn[Ir]=sn[Wr]=sn[qr]=sn[Uo]=sn[eo]=sn[Xt]=sn[dn]=sn[Fn]=sn[gn]=sn[hn]=sn[wn]=sn[Zn]=sn[Yr]=sn[_o]=sn[ro]=sn[Fo]=!0,sn[Ht]=sn[qt]=sn[$n]=!1;var vn={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},In={"&":"&","<":"<",">":">",'"':""","'":"'"},Kn={"&":"&","<":"<",">":">",""":'"',"'":"'"},mr={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},kr=parseFloat,Sr=parseInt,Ar=typeof commonjsGlobal$1=="object"&&commonjsGlobal$1&&commonjsGlobal$1.Object===Object&&commonjsGlobal$1,Zr=typeof self=="object"&&self&&self.Object===Object&&self,no=Ar||Zr||Function("return this")(),Ro=o&&!o.nodeType&&o,Co=Ro&&!0&&s&&!s.nodeType&&s,Ko=Co&&Co.exports===Ro,as=Ko&&Ar.process,Po=function(){try{var dr=Co&&Co.require&&Co.require("util").types;return dr||as&&as.binding&&as.binding("util")}catch{}}(),xo=Po&&Po.isArrayBuffer,Bs=Po&&Po.isDate,Ks=Po&&Po.isMap,c0=Po&&Po.isRegExp,u0=Po&&Po.isSet,$u=Po&&Po.isTypedArray;function Rs(dr,Lr,Nr){switch(Nr.length){case 0:return dr.call(Lr);case 1:return dr.call(Lr,Nr[0]);case 2:return dr.call(Lr,Nr[0],Nr[1]);case 3:return dr.call(Lr,Nr[0],Nr[1],Nr[2])}return dr.apply(Lr,Nr)}function uu(dr,Lr,Nr,go){for(var Wo=-1,zo=dr==null?0:dr.length;++Wo-1}function ap(dr,Lr,Nr){for(var go=-1,Wo=dr==null?0:dr.length;++go-1;);return Nr}function up(dr,Lr){for(var Nr=dr.length;Nr--&&Kl(Lr,dr[Nr],0)>-1;);return Nr}function eu(dr,Lr){for(var Nr=dr.length,go=0;Nr--;)dr[Nr]===Lr&&++go;return go}var C1=Tl(vn),x1=Tl(In);function L0(dr){return"\\"+mr[dr]}function P0(dr,Lr){return dr==null?et:dr[Lr]}function Gu(dr){return Mr.test(dr)}function kp(dr){return Jr.test(dr)}function dp(dr){for(var Lr,Nr=[];!(Lr=dr.next()).done;)Nr.push(Lr.value);return Nr}function Dp(dr){var Lr=-1,Nr=Array(dr.size);return dr.forEach(function(go,Wo){Nr[++Lr]=[Wo,go]}),Nr}function hp(dr,Lr){return function(Nr){return dr(Lr(Nr))}}function tu(dr,Lr){for(var Nr=-1,go=dr.length,Wo=0,zo=[];++Nr-1}function F0(bt,Jt){var tn=this.__data__,fn=Du(tn,bt);return fn<0?(++this.size,tn.push([bt,Jt])):tn[fn][1]=Jt,this}nu.prototype.clear=X1,nu.prototype.delete=K0,nu.prototype.get=K1,nu.prototype.has=q1,nu.prototype.set=F0;function Il(bt){var Jt=-1,tn=bt==null?0:bt.length;for(this.clear();++Jt=Jt?bt:Jt)),bt}function Ml(bt,Jt,tn,fn,Cn,Ln){var qn,lr=Jt&ut,Br=Jt&dt,jr=Jt&ht;if(tn&&(qn=Cn?tn(bt,fn,Cn,Ln):tn(bt)),qn!==et)return qn;if(!ws(bt))return bt;var $r=$o(bt);if($r){if(qn=iU(bt),!lr)return Fl(bt,qn)}else{var Xr=Cl(bt),po=Xr==qt||Xr==on;if(Vp(bt))return y1(bt,lr);if(Xr==Fn||Xr==nn||po&&!Cn){if(qn=Br||po?{}:um(bt),!lr)return Br?g2(bt,i2(qn,bt)):D2(bt,i1(qn,bt))}else{if(!sn[Xr])return Cn?bt:{};qn=oU(bt,Xr,lr)}}Ln||(Ln=new Js);var Eo=Ln.get(bt);if(Eo)return Eo;Ln.set(bt,qn),Wm(bt)?bt.forEach(function(Oo){qn.add(Ml(Oo,Jt,tn,Oo,bt,Ln))}):Dm(bt)&&bt.forEach(function(Oo,rs){qn.set(rs,Ml(Oo,Jt,tn,rs,bt,Ln))});var Do=jr?Br?ss:Vs:Br?$l:Rl,ts=$r?et:Do(bt);return Ds(ts||bt,function(Oo,rs){ts&&(rs=Oo,Oo=bt[rs]),ru(qn,rs,Ml(Oo,Jt,tn,rs,bt,Ln))}),qn}function o1(bt){var Jt=Rl(bt);return function(tn){return B0(tn,bt,Jt)}}function B0(bt,Jt,tn){var fn=tn.length;if(bt==null)return!fn;for(bt=ko(bt);fn--;){var Cn=tn[fn],Ln=Jt[Cn],qn=bt[Cn];if(qn===et&&!(Cn in bt)||!Ln(qn))return!1}return!0}function s1(bt,Jt,tn){if(typeof bt!="function")throw new _l(it);return b1(function(){bt.apply(et,tn)},Jt)}function _d(bt,Jt,tn,fn){var Cn=-1,Ln=Yl,qn=!0,lr=bt.length,Br=[],jr=Jt.length;if(!lr)return Br;tn&&(Jt=ms(Jt,Bl(tn))),fn?(Ln=ap,qn=!1):Jt.length>=nt&&(Ln=Hs,qn=!1,Jt=new ku(Jt));e:for(;++CnCn?0:Cn+tn),fn=fn===et||fn>Cn?Cn:qo(fn),fn<0&&(fn+=Cn),fn=tn>fn?0:Im(fn);tn0&&tn(lr)?Jt>1?Gs(lr,Jt-1,tn,fn,Cn):Xl(Cn,lr):fn||(Cn[Cn.length]=lr)}return Cn}var vp=N0(),Kp=N0(!0);function Nl(bt,Jt){return bt&&vp(bt,Jt,Rl)}function bp(bt,Jt){return bt&&Kp(bt,Jt,Rl)}function _h(bt,Jt){return qs(Jt,function(tn){return ip(bt[tn])})}function ou(bt,Jt){Jt=Pu(Jt,bt);for(var tn=0,fn=Jt.length;bt!=null&&tnJt}function a2(bt,Jt){return bt!=null&&us.call(bt,Jt)}function l1(bt,Jt){return bt!=null&&Jt in ko(bt)}function A2(bt,Jt,tn){return bt>=na(Jt,tn)&&bt=120&&$r.length>=120)?new ku(qn&&$r):et}$r=bt[0];var Xr=-1,po=lr[0];e:for(;++Xr-1;)lr!==bt&&Nu.call(lr,Br,1),Nu.call(bt,Br,1);return bt}function xa(bt,Jt){for(var tn=bt?Jt.length:0,fn=tn-1;tn--;){var Cn=Jt[tn];if(tn==fn||Cn!==Ln){var Ln=Cn;rp(Cn)?Nu.call(bt,Cn,1):m1(bt,Cn)}}return bt}function Uu(bt,Jt){return bt+jp(Y0()*(Jt-bt+1))}function Ll(bt,Jt,tn,fn){for(var Cn=-1,Ln=Ws(Zp((Jt-bt)/(tn||1)),0),qn=Nr(Ln);Ln--;)qn[fn?Ln:++Cn]=bt,bt+=tn;return qn}function xp(bt,Jt){var tn="";if(!bt||Jt<1||Jt>Wt)return tn;do Jt%2&&(tn+=bt),Jt=jp(Jt/2),Jt&&(bt+=bt);while(Jt);return tn}function Vo(bt,Jt){return Z2(pm(bt,Jt,Gl),bt+"")}function l2(bt){return Yp(O0(bt))}function p1(bt,Jt){var tn=O0(bt);return F2(tn,Ou(Jt,0,tn.length))}function tp(bt,Jt,tn,fn){if(!ws(bt))return bt;Jt=Pu(Jt,bt);for(var Cn=-1,Ln=Jt.length,qn=Ln-1,lr=bt;lr!=null&&++CnCn?0:Cn+Jt),tn=tn>Cn?Cn:tn,tn<0&&(tn+=Cn),Cn=Jt>tn?0:tn-Jt>>>0,Jt>>>=0;for(var Ln=Nr(Cn);++fn>>1,qn=bt[Ln];qn!==null&&!au(qn)&&(tn?qn<=Jt:qn=nt){var jr=Jt?null:yl(bt);if(jr)return Op(jr);qn=!1,Cn=Hs,Br=new ku}else Br=Jt?[]:lr;e:for(;++fn=fn?bt:Dl(bt,Jt,tn)}var p2=Pp||function(bt){return no.clearTimeout(bt)};function y1(bt,Jt){if(Jt)return bt.slice();var tn=bt.length,fn=z0?z0(tn):new bt.constructor(tn);return bt.copy(fn),fn}function V0(bt){var Jt=new bt.constructor(bt.byteLength);return new Ip(Jt).set(new Ip(bt)),Jt}function k2(bt,Jt){var tn=Jt?V0(bt.buffer):bt.buffer;return new bt.constructor(tn,bt.byteOffset,bt.byteLength)}function Pl(bt){var Jt=new bt.constructor(bt.source,Nn.exec(bt));return Jt.lastIndex=bt.lastIndex,Jt}function R1(bt){return Qu?ko(Qu.call(bt)):{}}function f2(bt,Jt){var tn=Jt?V0(bt.buffer):bt.buffer;return new bt.constructor(tn,bt.byteOffset,bt.length)}function Tu(bt,Jt){if(bt!==Jt){var tn=bt!==et,fn=bt===null,Cn=bt===bt,Ln=au(bt),qn=Jt!==et,lr=Jt===null,Br=Jt===Jt,jr=au(Jt);if(!lr&&!jr&&!Ln&&bt>Jt||Ln&&qn&&Br&&!lr&&!jr||fn&&qn&&Br||!tn&&Br||!Cn)return 1;if(!fn&&!Ln&&!jr&&bt=lr)return Br;var jr=tn[fn];return Br*(jr=="desc"?-1:1)}}return bt.index-Jt.index}function ju(bt,Jt,tn,fn){for(var Cn=-1,Ln=bt.length,qn=tn.length,lr=-1,Br=Jt.length,jr=Ws(Ln-qn,0),$r=Nr(Br+jr),Xr=!fn;++lr1?tn[Cn-1]:et,qn=Cn>2?tn[2]:et;for(Ln=bt.length>3&&typeof Ln=="function"?(Cn--,Ln):et,qn&&Wl(tn[0],tn[1],qn)&&(Ln=Cn<3?et:Ln,Cn=1),Jt=ko(Jt);++fn-1?Cn[Ln?Jt[qn]:qn]:et}}function ln(bt){return Xo(function(Jt){var tn=Jt.length,fn=tn,Cn=ga.prototype.thru;for(bt&&Jt.reverse();fn--;){var Ln=Jt[fn];if(typeof Ln!="function")throw new _l(it);if(Cn&&!qn&&A0(Ln)=="wrapper")var qn=new ga([],!0)}for(fn=qn?fn:tn;++fn1&&ls.reverse(),$r&&Brlr))return!1;var jr=Ln.get(bt),$r=Ln.get(Jt);if(jr&&$r)return jr==Jt&&$r==bt;var Xr=-1,po=!0,Eo=tn&pt?new ku:et;for(Ln.set(bt,Jt),Ln.set(Jt,bt);++Xr1?"& ":"")+Jt[fn],Jt=Jt.join(tn>2?", ":" "),bt.replace(cr,`{ -/* [wrapped with `+Jt+`] */ -`)}function aU(bt){return $o(bt)||l0(bt)||!!(G0&&bt&&bt[G0])}function rp(bt,Jt){var tn=typeof bt;return Jt=Jt??Wt,!!Jt&&(tn=="number"||tn!="symbol"&&zr.test(bt))&&bt>-1&&bt%1==0&&bt0){if(++Jt>=Bt)return arguments[0]}else Jt=0;return bt.apply(et,arguments)}}function F2(bt,Jt){var tn=-1,fn=bt.length,Cn=fn-1;for(Jt=Jt===et?fn:Jt;++tn1?bt[Jt-1]:et;return tn=typeof tn=="function"?(bt.pop(),tn):et,Qm(bt,tn)});function _m(bt){var Jt=An(bt);return Jt.__chain__=!0,Jt}function FF(bt,Jt){return Jt(bt),bt}function y2(bt,Jt){return Jt(bt)}var yF=Xo(function(bt){var Jt=bt.length,tn=Jt?bt[0]:0,fn=this.__wrapped__,Cn=function(Ln){return S0(Ln,bt)};return Jt>1||this.__actions__.length||!(fn instanceof Mo)||!rp(tn)?this.thru(Cn):(fn=fn.slice(tn,+tn+(Jt?1:0)),fn.__actions__.push({func:y2,args:[Cn],thisArg:et}),new ga(fn,this.__chain__).thru(function(Ln){return Jt&&!Ln.length&&Ln.push(et),Ln}))});function RF(){return _m(this)}function SF(){return new ga(this.value(),this.__chain__)}function BF(){this.__values__===et&&(this.__values__=Jm(this.value()));var bt=this.__index__>=this.__values__.length,Jt=bt?et:this.__values__[this.__index__++];return{done:bt,value:Jt}}function vF(){return this}function bF(bt){for(var Jt,tn=this;tn instanceof Hp;){var fn=ym(tn);fn.__index__=0,fn.__values__=et,Jt?Cn.__wrapped__=fn:Jt=fn;var Cn=fn;tn=tn.__wrapped__}return Cn.__wrapped__=bt,Jt}function QF(){var bt=this.__wrapped__;if(bt instanceof Mo){var Jt=bt;return this.__actions__.length&&(Jt=new Mo(this)),Jt=Jt.reverse(),Jt.__actions__.push({func:y2,args:[j2],thisArg:et}),new ga(Jt,this.__chain__)}return this.thru(j2)}function _F(){return Iu(this.__wrapped__,this.__actions__)}var EF=o0(function(bt,Jt,tn){us.call(bt,tn)?++bt[tn]:mu(bt,tn,1)});function TF(bt,Jt,tn){var fn=$o(bt)?J0:N2;return tn&&Wl(bt,Jt,tn)&&(Jt=et),fn(bt,Ao(Jt,3))}function wF(bt,Jt){var tn=$o(bt)?qs:a1;return tn(bt,Ao(Jt,3))}var CF=rn(Rm),xF=rn(Sm);function VF(bt,Jt){return Gs(R2(bt,Jt),1)}function MF(bt,Jt){return Gs(R2(bt,Jt),Ot)}function NF(bt,Jt,tn){return tn=tn===et?1:qo(tn),Gs(R2(bt,Jt),tn)}function Em(bt,Jt){var tn=$o(bt)?Ds:iu;return tn(bt,Ao(Jt,3))}function Tm(bt,Jt){var tn=$o(bt)?W0:o2;return tn(bt,Ao(Jt,3))}var AF=o0(function(bt,Jt,tn){us.call(bt,tn)?bt[tn].push(Jt):mu(bt,tn,[Jt])});function kF(bt,Jt,tn,fn){bt=zl(bt)?bt:O0(bt),tn=tn&&!fn?qo(tn):0;var Cn=bt.length;return tn<0&&(tn=Ws(Cn+tn,0)),_2(bt)?tn<=Cn&&bt.indexOf(Jt,tn)>-1:!!Cn&&Kl(bt,Jt,tn)>-1}var DF=Vo(function(bt,Jt,tn){var fn=-1,Cn=typeof Jt=="function",Ln=zl(bt)?Nr(bt.length):[];return iu(bt,function(qn){Ln[++fn]=Cn?Rs(Jt,qn,tn):Fs(qn,Jt,tn)}),Ln}),OF=o0(function(bt,Jt,tn){mu(bt,tn,Jt)});function R2(bt,Jt){var tn=$o(bt)?ms:ep;return tn(bt,Ao(Jt,3))}function WF(bt,Jt,tn,fn){return bt==null?[]:($o(Jt)||(Jt=Jt==null?[]:[Jt]),tn=fn?et:tn,$o(tn)||(tn=tn==null?[]:[tn]),t0(bt,Jt,tn))}var JF=o0(function(bt,Jt,tn){bt[tn?0:1].push(Jt)},function(){return[[],[]]});function IF(bt,Jt,tn){var fn=$o(bt)?d0:xu,Cn=arguments.length<3;return fn(bt,Ao(Jt,4),tn,Cn,iu)}function LF(bt,Jt,tn){var fn=$o(bt)?_1:xu,Cn=arguments.length<3;return fn(bt,Ao(Jt,4),tn,Cn,o2)}function PF(bt,Jt){var tn=$o(bt)?qs:a1;return tn(bt,b2(Ao(Jt,3)))}function ZF(bt){var Jt=$o(bt)?Yp:l2;return Jt(bt)}function jF(bt,Jt,tn){(tn?Wl(bt,Jt,tn):Jt===et)?Jt=1:Jt=qo(Jt);var fn=$o(bt)?t1:p1;return fn(bt,Jt)}function zF(bt){var Jt=$o(bt)?r2:u2;return Jt(bt)}function $F(bt){if(bt==null)return 0;if(zl(bt))return _2(bt)?du(bt):bt.length;var Jt=Cl(bt);return Jt==Xt||Jt==hn?bt.size:ba(bt).length}function GF(bt,Jt,tn){var fn=$o(bt)?Mp:f1;return tn&&Wl(bt,Jt,tn)&&(Jt=et),fn(bt,Ao(Jt,3))}var HF=Vo(function(bt,Jt){if(bt==null)return[];var tn=Jt.length;return tn>1&&Wl(bt,Jt[0],Jt[1])?Jt=[]:tn>2&&Wl(Jt[0],Jt[1],Jt[2])&&(Jt=[Jt[0]]),t0(bt,Gs(Jt,1),[])}),S2=A1||function(){return no.Date.now()};function YF(bt,Jt){if(typeof Jt!="function")throw new _l(it);return bt=qo(bt),function(){if(--bt<1)return Jt.apply(this,arguments)}}function wm(bt,Jt,tn){return Jt=tn?et:Jt,Jt=bt&&Jt==null?bt.length:Jt,xr(bt,At,et,et,et,et,Jt)}function Cm(bt,Jt){var tn;if(typeof Jt!="function")throw new _l(it);return bt=qo(bt),function(){return--bt>0&&(tn=Jt.apply(this,arguments)),bt<=1&&(Jt=et),tn}}var $2=Vo(function(bt,Jt,tn){var fn=ft;if(tn.length){var Cn=tu(tn,k0($2));fn|=mt}return xr(bt,fn,Jt,tn,Cn)}),xm=Vo(function(bt,Jt,tn){var fn=ft|gt;if(tn.length){var Cn=tu(tn,k0(xm));fn|=mt}return xr(Jt,fn,bt,tn,Cn)});function Vm(bt,Jt,tn){Jt=tn?et:Jt;var fn=xr(bt,Ut,et,et,et,et,et,Jt);return fn.placeholder=Vm.placeholder,fn}function Mm(bt,Jt,tn){Jt=tn?et:Jt;var fn=xr(bt,Ft,et,et,et,et,et,Jt);return fn.placeholder=Mm.placeholder,fn}function Nm(bt,Jt,tn){var fn,Cn,Ln,qn,lr,Br,jr=0,$r=!1,Xr=!1,po=!0;if(typeof bt!="function")throw new _l(it);Jt=Su(Jt)||0,ws(tn)&&($r=!!tn.leading,Xr="maxWait"in tn,Ln=Xr?Ws(Su(tn.maxWait)||0,Jt):Ln,po="trailing"in tn?!!tn.trailing:po);function Eo(Ls){var Cu=fn,sp=Cn;return fn=Cn=et,jr=Ls,qn=bt.apply(sp,Cu),qn}function Do(Ls){return jr=Ls,lr=b1(rs,Jt),$r?Eo(Ls):qn}function ts(Ls){var Cu=Ls-Br,sp=Ls-jr,qm=Jt-Cu;return Xr?na(qm,Ln-sp):qm}function Oo(Ls){var Cu=Ls-Br,sp=Ls-jr;return Br===et||Cu>=Jt||Cu<0||Xr&&sp>=Ln}function rs(){var Ls=S2();if(Oo(Ls))return ls(Ls);lr=b1(rs,ts(Ls))}function ls(Ls){return lr=et,po&&fn?Eo(Ls):(fn=Cn=et,qn)}function lu(){lr!==et&&p2(lr),jr=0,fn=Br=Cn=lr=et}function Jl(){return lr===et?qn:ls(S2())}function cu(){var Ls=S2(),Cu=Oo(Ls);if(fn=arguments,Cn=this,Br=Ls,Cu){if(lr===et)return Do(Br);if(Xr)return p2(lr),lr=b1(rs,Jt),Eo(Br)}return lr===et&&(lr=b1(rs,Jt)),qn}return cu.cancel=lu,cu.flush=Jl,cu}var XF=Vo(function(bt,Jt){return s1(bt,1,Jt)}),KF=Vo(function(bt,Jt,tn){return s1(bt,Su(Jt)||0,tn)});function qF(bt){return xr(bt,Rt)}function B2(bt,Jt){if(typeof bt!="function"||Jt!=null&&typeof Jt!="function")throw new _l(it);var tn=function(){var fn=arguments,Cn=Jt?Jt.apply(this,fn):fn[0],Ln=tn.cache;if(Ln.has(Cn))return Ln.get(Cn);var qn=bt.apply(this,fn);return tn.cache=Ln.set(Cn,qn)||Ln,qn};return tn.cache=new(B2.Cache||Il),tn}B2.Cache=Il;function b2(bt){if(typeof bt!="function")throw new _l(it);return function(){var Jt=arguments;switch(Jt.length){case 0:return!bt.call(this);case 1:return!bt.call(this,Jt[0]);case 2:return!bt.call(this,Jt[0],Jt[1]);case 3:return!bt.call(this,Jt[0],Jt[1],Jt[2])}return!bt.apply(this,Jt)}}function ey(bt){return Cm(2,bt)}var ty=d2(function(bt,Jt){Jt=Jt.length==1&&$o(Jt[0])?ms(Jt[0],Bl(Ao())):ms(Gs(Jt,1),Bl(Ao()));var tn=Jt.length;return Vo(function(fn){for(var Cn=-1,Ln=na(fn.length,tn);++Cn=Jt}),l0=Ho(function(){return arguments}())?Ho:function(bt){return Ms(bt)&&us.call(bt,"callee")&&!m0.call(bt,"callee")},$o=Nr.isArray,Uy=xo?Bl(xo):Cs;function zl(bt){return bt!=null&&Q2(bt.length)&&!ip(bt)}function Is(bt){return Ms(bt)&&zl(bt)}function Fy(bt){return bt===!0||bt===!1||Ms(bt)&&Ys(bt)==Vt}var Vp=D1||om,yy=Bs?Bl(Bs):xs;function Ry(bt){return Ms(bt)&&bt.nodeType===1&&!Q1(bt)}function Sy(bt){if(bt==null)return!0;if(zl(bt)&&($o(bt)||typeof bt=="string"||typeof bt.splice=="function"||Vp(bt)||D0(bt)||l0(bt)))return!bt.length;var Jt=Cl(bt);if(Jt==Xt||Jt==hn)return!bt.size;if(B1(bt))return!ba(bt).length;for(var tn in bt)if(us.call(bt,tn))return!1;return!0}function By(bt,Jt){return Es(bt,Jt)}function vy(bt,Jt,tn){tn=typeof tn=="function"?tn:et;var fn=tn?tn(bt,Jt):et;return fn===et?Es(bt,Jt,et,tn):!!fn}function H2(bt){if(!Ms(bt))return!1;var Jt=Ys(bt);return Jt==Ht||Jt==$t||typeof bt.message=="string"&&typeof bt.name=="string"&&!Q1(bt)}function by(bt){return typeof bt=="number"&&H0(bt)}function ip(bt){if(!ws(bt))return!1;var Jt=Ys(bt);return Jt==qt||Jt==on||Jt==jt||Jt==On}function km(bt){return typeof bt=="number"&&bt==qo(bt)}function Q2(bt){return typeof bt=="number"&&bt>-1&&bt%1==0&&bt<=Wt}function ws(bt){var Jt=typeof bt;return bt!=null&&(Jt=="object"||Jt=="function")}function Ms(bt){return bt!=null&&typeof bt=="object"}var Dm=Ks?Bl(Ks):_p;function Qy(bt,Jt){return bt===Jt||Ts(bt,Jt,W2(Jt))}function Ey(bt,Jt,tn){return tn=typeof tn=="function"?tn:et,Ts(bt,Jt,W2(Jt),tn)}function Ty(bt){return Om(bt)&&bt!=+bt}function wy(bt){if(uU(bt))throw new Wo(rt);return Ep(bt)}function Cy(bt){return bt===null}function xy(bt){return bt==null}function Om(bt){return typeof bt=="number"||Ms(bt)&&Ys(bt)==dn}function Q1(bt){if(!Ms(bt)||Ys(bt)!=Fn)return!1;var Jt=Lp(bt);if(Jt===null)return!0;var tn=us.call(Jt,"constructor")&&Jt.constructor;return typeof tn=="function"&&tn instanceof tn&&Fp.call(tn)==Hu}var Y2=c0?Bl(c0):Tp;function Vy(bt){return km(bt)&&bt>=-Wt&&bt<=Wt}var Wm=u0?Bl(u0):b0;function _2(bt){return typeof bt=="string"||!$o(bt)&&Ms(bt)&&Ys(bt)==wn}function au(bt){return typeof bt=="symbol"||Ms(bt)&&Ys(bt)==Zn}var D0=$u?Bl($u):u1;function My(bt){return bt===et}function Ny(bt){return Ms(bt)&&Cl(bt)==$n}function Ay(bt){return Ms(bt)&&Ys(bt)==Tr}var ky=wo(_f),Dy=wo(function(bt,Jt){return bt<=Jt});function Jm(bt){if(!bt)return[];if(zl(bt))return _2(bt)?vs(bt):Fl(bt);if(Au&&bt[Au])return dp(bt[Au]());var Jt=Cl(bt),tn=Jt==Xt?Dp:Jt==hn?Op:O0;return tn(bt)}function op(bt){if(!bt)return bt===0?bt:0;if(bt=Su(bt),bt===Ot||bt===-Ot){var Jt=bt<0?-1:1;return Jt*Dt}return bt===bt?bt:0}function qo(bt){var Jt=op(bt),tn=Jt%1;return Jt===Jt?tn?Jt-tn:Jt:0}function Im(bt){return bt?Ou(qo(bt),0,Pt):0}function Su(bt){if(typeof bt=="number")return bt;if(au(bt))return Et;if(ws(bt)){var Jt=typeof bt.valueOf=="function"?bt.valueOf():bt;bt=ws(Jt)?Jt+"":Jt}if(typeof bt!="string")return bt===0?bt:+bt;bt=p0(bt);var tn=Rr.test(bt);return tn||fr.test(bt)?Sr(bt.slice(2),tn?2:8):rr.test(bt)?Et:+bt}function Lm(bt){return Zl(bt,$l(bt))}function Oy(bt){return bt?Ou(qo(bt),-Wt,Wt):bt===0?bt:0}function hs(bt){return bt==null?"":$a(bt)}var Wy=np(function(bt,Jt){if(B1(Jt)||zl(Jt)){Zl(Jt,Rl(Jt),bt);return}for(var tn in Jt)us.call(Jt,tn)&&ru(bt,tn,Jt[tn])}),Pm=np(function(bt,Jt){Zl(Jt,$l(Jt),bt)}),E2=np(function(bt,Jt,tn,fn){Zl(Jt,$l(Jt),bt,fn)}),Jy=np(function(bt,Jt,tn,fn){Zl(Jt,Rl(Jt),bt,fn)}),Iy=Xo(S0);function Ly(bt,Jt){var tn=_u(bt);return Jt==null?tn:i1(tn,Jt)}var Py=Vo(function(bt,Jt){bt=ko(bt);var tn=-1,fn=Jt.length,Cn=fn>2?Jt[2]:et;for(Cn&&Wl(Jt[0],Jt[1],Cn)&&(fn=1);++tn1),Ln}),Zl(bt,ss(bt),tn),fn&&(tn=Ml(tn,ut|dt|ht,fo));for(var Cn=Jt.length;Cn--;)m1(tn,Jt[Cn]);return tn});function aR(bt,Jt){return jm(bt,b2(Ao(Jt)))}var lR=Xo(function(bt,Jt){return bt==null?{}:n0(bt,Jt)});function jm(bt,Jt){if(bt==null)return{};var tn=ms(ss(bt),function(fn){return[fn]});return Jt=Ao(Jt),E0(bt,tn,function(fn,Cn){return Jt(fn,Cn[0])})}function cR(bt,Jt,tn){Jt=Pu(Jt,bt);var fn=-1,Cn=Jt.length;for(Cn||(Cn=1,bt=et);++fnJt){var fn=bt;bt=Jt,Jt=fn}if(tn||bt%1||Jt%1){var Cn=Y0();return na(bt+Cn*(Jt-bt+kr("1e-"+((Cn+"").length-1))),Jt)}return Uu(bt,Jt)}var RR=wt(function(bt,Jt,tn){return Jt=Jt.toLowerCase(),bt+(tn?Gm(Jt):Jt)});function Gm(bt){return q2(hs(bt).toLowerCase())}function Hm(bt){return bt=hs(bt),bt&&bt.replace(Gr,C1).replace(ir,"")}function SR(bt,Jt,tn){bt=hs(bt),Jt=$a(Jt);var fn=bt.length;tn=tn===et?fn:Ou(qo(tn),0,fn);var Cn=tn;return tn-=Jt.length,tn>=0&&bt.slice(tn,Cn)==Jt}function BR(bt){return bt=hs(bt),bt&&Fr.test(bt)?bt.replace(Wn,x1):bt}function vR(bt){return bt=hs(bt),bt&&xn.test(bt)?bt.replace(mn,"\\$&"):bt}var bR=wt(function(bt,Jt,tn){return bt+(tn?"-":"")+Jt.toLowerCase()}),QR=wt(function(bt,Jt,tn){return bt+(tn?" ":"")+Jt.toLowerCase()}),_R=m2("toLowerCase");function ER(bt,Jt,tn){bt=hs(bt),Jt=qo(Jt);var fn=Jt?du(bt):0;if(!Jt||fn>=Jt)return bt;var Cn=(Jt-fn)/2;return io(jp(Cn),tn)+bt+io(Zp(Cn),tn)}function TR(bt,Jt,tn){bt=hs(bt),Jt=qo(Jt);var fn=Jt?du(bt):0;return Jt&&fn>>0,tn?(bt=hs(bt),bt&&(typeof Jt=="string"||Jt!=null&&!Y2(Jt))&&(Jt=$a(Jt),!Jt&&Gu(bt))?Zu(vs(bt),0,tn):bt.split(Jt,tn)):[]}var AR=wt(function(bt,Jt,tn){return bt+(tn?" ":"")+q2(Jt)});function kR(bt,Jt,tn){return bt=hs(bt),tn=tn==null?0:Ou(qo(tn),0,bt.length),Jt=$a(Jt),bt.slice(tn,tn+Jt.length)==Jt}function DR(bt,Jt,tn){var fn=An.templateSettings;tn&&Wl(bt,Jt,tn)&&(Jt=et),bt=hs(bt),Jt=E2({},Jt,fn,yr);var Cn=E2({},Jt.imports,fn.imports,yr),Ln=Rl(Cn),qn=Ql(Cn,Ln),lr,Br,jr=0,$r=Jt.interpolate||Pr,Xr="__p += '",po=zs((Jt.escape||Pr).source+"|"+$r.source+"|"+($r===tr?ho:Pr).source+"|"+(Jt.evaluate||Pr).source+"|$","g"),Eo="//# sourceURL="+(us.call(Jt,"sourceURL")?(Jt.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++co+"]")+` -`;bt.replace(po,function(Oo,rs,ls,lu,Jl,cu){return ls||(ls=lu),Xr+=bt.slice(jr,cu).replace(oo,L0),rs&&(lr=!0,Xr+=`' + + */(function(s,o){(function(){var et,tt="4.17.21",nt=200,rt="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",it="Expected a function",ot="Invalid `variable` option passed into `_.template`",st="__lodash_hash_undefined__",at=500,lt="__lodash_placeholder__",ut=1,dt=2,ht=4,ct=1,pt=2,ft=1,gt=2,yt=4,Ut=8,Ft=16,mt=32,vt=64,At=128,Lt=256,Rt=512,St=30,Tt="...",Bt=800,xt=16,Ct=1,kt=2,Nt=3,Ot=1/0,Jt=9007199254740991,Dt=17976931348623157e292,Et=0/0,Pt=4294967295,zt=Pt-1,en=Pt>>>1,Kt=[["ary",At],["bind",ft],["bindKey",gt],["curry",Ut],["curryRight",Ft],["flip",Rt],["partial",mt],["partialRight",vt],["rearg",Lt]],nn="[object Arguments]",Zt="[object Array]",jt="[object AsyncFunction]",Vt="[object Boolean]",It="[object Date]",$t="[object DOMException]",Ht="[object Error]",qt="[object Function]",on="[object GeneratorFunction]",Xt="[object Map]",dn="[object Number]",_n="[object Null]",Fn="[object Object]",Un="[object Promise]",On="[object Proxy]",gn="[object RegExp]",hn="[object Set]",wn="[object String]",Zn="[object Symbol]",Pn="[object Undefined]",$n="[object WeakMap]",Tr="[object WeakSet]",Qr="[object ArrayBuffer]",_r="[object DataView]",Ir="[object Float32Array]",Jr="[object Float64Array]",qr="[object Int8Array]",Uo="[object Int16Array]",eo="[object Int32Array]",Yr="[object Uint8Array]",_o="[object Uint8ClampedArray]",ro="[object Uint16Array]",Fo="[object Uint32Array]",kn=/\b__p \+= '';/g,un=/\b(__p \+=) '' \+/g,pn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Qn=/&(?:amp|lt|gt|quot|#39);/g,Jn=/[&<>"']/g,jn=RegExp(Qn.source),Fr=RegExp(Jn.source),Er=/<%-([\s\S]+?)%>/g,wr=/<%([\s\S]+?)%>/g,tr=/<%=([\s\S]+?)%>/g,ar=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,hr=/^\w*$/,cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,mn=/[\\^$.*+?()[\]{}|]/g,xn=RegExp(mn.source),Gn=/^\s+/,er=/\s/,cr=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,gr=/\{\n\/\* \[wrapped with (.+)\] \*/,br=/,? & /,ur=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,nr=/[()=,{}\[\]\/\s]/,Kr=/\\(\\)?/g,ho=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Nn=/\w*$/,rr=/^[-+]0x[0-9a-f]+$/i,Rr=/^0b[01]+$/i,vr=/^\[object .+?Constructor\]$/,fr=/^0o[0-7]+$/i,zr=/^(?:0|[1-9]\d*)$/,Gr=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Pr=/($^)/,oo=/['\n\r\u2028\u2029\\]/g,ao="\\ud800-\\udfff",mo="\\u0300-\\u036f",lo="\\ufe20-\\ufe2f",To="\\u20d0-\\u20ff",Wo=mo+lo+To,Go="\\u2700-\\u27bf",cs="a-z\\xdf-\\xf6\\xf8-\\xff",So="\\xac\\xb1\\xd7\\xf7",so="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Bo="\\u2000-\\u206f",Io=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ns="A-Z\\xc0-\\xd6\\xd8-\\xde",ps="\\ufe0e\\ufe0f",gs=So+so+Bo+Io,bs="['’]",Lo="["+ao+"]",Qs="["+gs+"]",Ps="["+Wo+"]",No="\\d+",ys="["+Go+"]",Ns="["+cs+"]",fs="[^"+ao+gs+No+Go+cs+ns+"]",Zs="\\ud83c[\\udffb-\\udfff]",Sl="(?:"+Ps+"|"+Zs+")",As="[^"+ao+"]",ks="(?:\\ud83c[\\udde6-\\uddff]){2}",js="[\\ud800-\\udbff][\\udc00-\\udfff]",Xs="["+ns+"]",vo="\\u200d",Hl="(?:"+Ns+"|"+fs+")",Tn="(?:"+Xs+"|"+fs+")",En="(?:"+bs+"(?:d|ll|m|re|s|t|ve))?",Dn="(?:"+bs+"(?:D|LL|M|RE|S|T|VE))?",Mn=Sl+"?",Wn="["+ps+"]?",Vr="(?:"+vo+"(?:"+[As,ks,js].join("|")+")"+Wn+Mn+")*",Cr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",an="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",bn=Wn+Mn+Vr,Vn="(?:"+[ys,ks,js].join("|")+")"+bn,zn="(?:"+[As+Ps+"?",Ps,ks,js,Lo].join("|")+")",Hn=RegExp(bs,"g"),ir=RegExp(Ps,"g"),Yn=RegExp(Zs+"(?="+Zs+")|"+zn+bn,"g"),or=RegExp([Xs+"?"+Ns+"+"+En+"(?="+[Qs,Xs,"$"].join("|")+")",Tn+"+"+Dn+"(?="+[Qs,Xs+Hl,"$"].join("|")+")",Xs+"?"+Hl+"+"+En,Xs+"+"+Dn,an,Cr,No,Vn].join("|"),"g"),Mr=RegExp("["+vo+ao+Wo+ps+"]"),Wr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Hr=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],co=-1,_i={};_i[Ir]=_i[Jr]=_i[qr]=_i[Uo]=_i[eo]=_i[Yr]=_i[_o]=_i[ro]=_i[Fo]=!0,_i[nn]=_i[Zt]=_i[Qr]=_i[Vt]=_i[_r]=_i[It]=_i[Ht]=_i[qt]=_i[Xt]=_i[dn]=_i[Fn]=_i[gn]=_i[hn]=_i[wn]=_i[$n]=!1;var sn={};sn[nn]=sn[Zt]=sn[Qr]=sn[_r]=sn[Vt]=sn[It]=sn[Ir]=sn[Jr]=sn[qr]=sn[Uo]=sn[eo]=sn[Xt]=sn[dn]=sn[Fn]=sn[gn]=sn[hn]=sn[wn]=sn[Zn]=sn[Yr]=sn[_o]=sn[ro]=sn[Fo]=!0,sn[Ht]=sn[qt]=sn[$n]=!1;var vn={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},In={"&":"&","<":"<",">":">",'"':""","'":"'"},Kn={"&":"&","<":"<",">":">",""":'"',"'":"'"},mr={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},kr=parseFloat,Sr=parseInt,Ar=typeof commonjsGlobal$1=="object"&&commonjsGlobal$1&&commonjsGlobal$1.Object===Object&&commonjsGlobal$1,Zr=typeof self=="object"&&self&&self.Object===Object&&self,no=Ar||Zr||Function("return this")(),Ro=o&&!o.nodeType&&o,Co=Ro&&!0&&s&&!s.nodeType&&s,Ko=Co&&Co.exports===Ro,as=Ko&&Ar.process,Po=function(){try{var dr=Co&&Co.require&&Co.require("util").types;return dr||as&&as.binding&&as.binding("util")}catch{}}(),xo=Po&&Po.isArrayBuffer,Bs=Po&&Po.isDate,Ks=Po&&Po.isMap,c0=Po&&Po.isRegExp,u0=Po&&Po.isSet,$u=Po&&Po.isTypedArray;function Rs(dr,Lr,Nr){switch(Nr.length){case 0:return dr.call(Lr);case 1:return dr.call(Lr,Nr[0]);case 2:return dr.call(Lr,Nr[0],Nr[1]);case 3:return dr.call(Lr,Nr[0],Nr[1],Nr[2])}return dr.apply(Lr,Nr)}function uu(dr,Lr,Nr,go){for(var Jo=-1,zo=dr==null?0:dr.length;++Jo-1}function ap(dr,Lr,Nr){for(var go=-1,Jo=dr==null?0:dr.length;++go-1;);return Nr}function up(dr,Lr){for(var Nr=dr.length;Nr--&&Kl(Lr,dr[Nr],0)>-1;);return Nr}function eu(dr,Lr){for(var Nr=dr.length,go=0;Nr--;)dr[Nr]===Lr&&++go;return go}var C1=Tl(vn),x1=Tl(In);function L0(dr){return"\\"+mr[dr]}function P0(dr,Lr){return dr==null?et:dr[Lr]}function Gu(dr){return Mr.test(dr)}function kp(dr){return Wr.test(dr)}function dp(dr){for(var Lr,Nr=[];!(Lr=dr.next()).done;)Nr.push(Lr.value);return Nr}function Dp(dr){var Lr=-1,Nr=Array(dr.size);return dr.forEach(function(go,Jo){Nr[++Lr]=[Jo,go]}),Nr}function hp(dr,Lr){return function(Nr){return dr(Lr(Nr))}}function tu(dr,Lr){for(var Nr=-1,go=dr.length,Jo=0,zo=[];++Nr-1}function F0(bt,Wt){var tn=this.__data__,fn=Du(tn,bt);return fn<0?(++this.size,tn.push([bt,Wt])):tn[fn][1]=Wt,this}nu.prototype.clear=X1,nu.prototype.delete=K0,nu.prototype.get=K1,nu.prototype.has=q1,nu.prototype.set=F0;function Il(bt){var Wt=-1,tn=bt==null?0:bt.length;for(this.clear();++Wt=Wt?bt:Wt)),bt}function Ml(bt,Wt,tn,fn,Cn,Ln){var qn,lr=Wt&ut,Br=Wt&dt,jr=Wt&ht;if(tn&&(qn=Cn?tn(bt,fn,Cn,Ln):tn(bt)),qn!==et)return qn;if(!ws(bt))return bt;var $r=$o(bt);if($r){if(qn=iU(bt),!lr)return Fl(bt,qn)}else{var Xr=Cl(bt),po=Xr==qt||Xr==on;if(Vp(bt))return y1(bt,lr);if(Xr==Fn||Xr==nn||po&&!Cn){if(qn=Br||po?{}:um(bt),!lr)return Br?g2(bt,i2(qn,bt)):D2(bt,i1(qn,bt))}else{if(!sn[Xr])return Cn?bt:{};qn=oU(bt,Xr,lr)}}Ln||(Ln=new Ws);var Eo=Ln.get(bt);if(Eo)return Eo;Ln.set(bt,qn),Jm(bt)?bt.forEach(function(Oo){qn.add(Ml(Oo,Wt,tn,Oo,bt,Ln))}):Dm(bt)&&bt.forEach(function(Oo,rs){qn.set(rs,Ml(Oo,Wt,tn,rs,bt,Ln))});var Do=jr?Br?ss:Vs:Br?$l:Rl,ts=$r?et:Do(bt);return Ds(ts||bt,function(Oo,rs){ts&&(rs=Oo,Oo=bt[rs]),ru(qn,rs,Ml(Oo,Wt,tn,rs,bt,Ln))}),qn}function o1(bt){var Wt=Rl(bt);return function(tn){return B0(tn,bt,Wt)}}function B0(bt,Wt,tn){var fn=tn.length;if(bt==null)return!fn;for(bt=ko(bt);fn--;){var Cn=tn[fn],Ln=Wt[Cn],qn=bt[Cn];if(qn===et&&!(Cn in bt)||!Ln(qn))return!1}return!0}function s1(bt,Wt,tn){if(typeof bt!="function")throw new _l(it);return b1(function(){bt.apply(et,tn)},Wt)}function _d(bt,Wt,tn,fn){var Cn=-1,Ln=Yl,qn=!0,lr=bt.length,Br=[],jr=Wt.length;if(!lr)return Br;tn&&(Wt=ms(Wt,Bl(tn))),fn?(Ln=ap,qn=!1):Wt.length>=nt&&(Ln=Hs,qn=!1,Wt=new ku(Wt));e:for(;++CnCn?0:Cn+tn),fn=fn===et||fn>Cn?Cn:qo(fn),fn<0&&(fn+=Cn),fn=tn>fn?0:Im(fn);tn0&&tn(lr)?Wt>1?Gs(lr,Wt-1,tn,fn,Cn):Xl(Cn,lr):fn||(Cn[Cn.length]=lr)}return Cn}var vp=N0(),Kp=N0(!0);function Nl(bt,Wt){return bt&&vp(bt,Wt,Rl)}function bp(bt,Wt){return bt&&Kp(bt,Wt,Rl)}function _h(bt,Wt){return qs(Wt,function(tn){return ip(bt[tn])})}function ou(bt,Wt){Wt=Pu(Wt,bt);for(var tn=0,fn=Wt.length;bt!=null&&tnWt}function a2(bt,Wt){return bt!=null&&us.call(bt,Wt)}function l1(bt,Wt){return bt!=null&&Wt in ko(bt)}function A2(bt,Wt,tn){return bt>=na(Wt,tn)&&bt=120&&$r.length>=120)?new ku(qn&&$r):et}$r=bt[0];var Xr=-1,po=lr[0];e:for(;++Xr-1;)lr!==bt&&Nu.call(lr,Br,1),Nu.call(bt,Br,1);return bt}function xa(bt,Wt){for(var tn=bt?Wt.length:0,fn=tn-1;tn--;){var Cn=Wt[tn];if(tn==fn||Cn!==Ln){var Ln=Cn;rp(Cn)?Nu.call(bt,Cn,1):m1(bt,Cn)}}return bt}function Uu(bt,Wt){return bt+jp(Y0()*(Wt-bt+1))}function Ll(bt,Wt,tn,fn){for(var Cn=-1,Ln=Js(Zp((Wt-bt)/(tn||1)),0),qn=Nr(Ln);Ln--;)qn[fn?Ln:++Cn]=bt,bt+=tn;return qn}function xp(bt,Wt){var tn="";if(!bt||Wt<1||Wt>Jt)return tn;do Wt%2&&(tn+=bt),Wt=jp(Wt/2),Wt&&(bt+=bt);while(Wt);return tn}function Vo(bt,Wt){return Z2(pm(bt,Wt,Gl),bt+"")}function l2(bt){return Yp(O0(bt))}function p1(bt,Wt){var tn=O0(bt);return F2(tn,Ou(Wt,0,tn.length))}function tp(bt,Wt,tn,fn){if(!ws(bt))return bt;Wt=Pu(Wt,bt);for(var Cn=-1,Ln=Wt.length,qn=Ln-1,lr=bt;lr!=null&&++CnCn?0:Cn+Wt),tn=tn>Cn?Cn:tn,tn<0&&(tn+=Cn),Cn=Wt>tn?0:tn-Wt>>>0,Wt>>>=0;for(var Ln=Nr(Cn);++fn>>1,qn=bt[Ln];qn!==null&&!au(qn)&&(tn?qn<=Wt:qn=nt){var jr=Wt?null:yl(bt);if(jr)return Op(jr);qn=!1,Cn=Hs,Br=new ku}else Br=Wt?[]:lr;e:for(;++fn=fn?bt:Dl(bt,Wt,tn)}var p2=Pp||function(bt){return no.clearTimeout(bt)};function y1(bt,Wt){if(Wt)return bt.slice();var tn=bt.length,fn=z0?z0(tn):new bt.constructor(tn);return bt.copy(fn),fn}function V0(bt){var Wt=new bt.constructor(bt.byteLength);return new Ip(Wt).set(new Ip(bt)),Wt}function k2(bt,Wt){var tn=Wt?V0(bt.buffer):bt.buffer;return new bt.constructor(tn,bt.byteOffset,bt.byteLength)}function Pl(bt){var Wt=new bt.constructor(bt.source,Nn.exec(bt));return Wt.lastIndex=bt.lastIndex,Wt}function R1(bt){return Qu?ko(Qu.call(bt)):{}}function f2(bt,Wt){var tn=Wt?V0(bt.buffer):bt.buffer;return new bt.constructor(tn,bt.byteOffset,bt.length)}function Tu(bt,Wt){if(bt!==Wt){var tn=bt!==et,fn=bt===null,Cn=bt===bt,Ln=au(bt),qn=Wt!==et,lr=Wt===null,Br=Wt===Wt,jr=au(Wt);if(!lr&&!jr&&!Ln&&bt>Wt||Ln&&qn&&Br&&!lr&&!jr||fn&&qn&&Br||!tn&&Br||!Cn)return 1;if(!fn&&!Ln&&!jr&&bt=lr)return Br;var jr=tn[fn];return Br*(jr=="desc"?-1:1)}}return bt.index-Wt.index}function ju(bt,Wt,tn,fn){for(var Cn=-1,Ln=bt.length,qn=tn.length,lr=-1,Br=Wt.length,jr=Js(Ln-qn,0),$r=Nr(Br+jr),Xr=!fn;++lr1?tn[Cn-1]:et,qn=Cn>2?tn[2]:et;for(Ln=bt.length>3&&typeof Ln=="function"?(Cn--,Ln):et,qn&&Jl(tn[0],tn[1],qn)&&(Ln=Cn<3?et:Ln,Cn=1),Wt=ko(Wt);++fn-1?Cn[Ln?Wt[qn]:qn]:et}}function ln(bt){return Xo(function(Wt){var tn=Wt.length,fn=tn,Cn=ga.prototype.thru;for(bt&&Wt.reverse();fn--;){var Ln=Wt[fn];if(typeof Ln!="function")throw new _l(it);if(Cn&&!qn&&A0(Ln)=="wrapper")var qn=new ga([],!0)}for(fn=qn?fn:tn;++fn1&&ls.reverse(),$r&&Brlr))return!1;var jr=Ln.get(bt),$r=Ln.get(Wt);if(jr&&$r)return jr==Wt&&$r==bt;var Xr=-1,po=!0,Eo=tn&pt?new ku:et;for(Ln.set(bt,Wt),Ln.set(Wt,bt);++Xr1?"& ":"")+Wt[fn],Wt=Wt.join(tn>2?", ":" "),bt.replace(cr,`{ +/* [wrapped with `+Wt+`] */ +`)}function aU(bt){return $o(bt)||l0(bt)||!!(G0&&bt&&bt[G0])}function rp(bt,Wt){var tn=typeof bt;return Wt=Wt??Jt,!!Wt&&(tn=="number"||tn!="symbol"&&zr.test(bt))&&bt>-1&&bt%1==0&&bt0){if(++Wt>=Bt)return arguments[0]}else Wt=0;return bt.apply(et,arguments)}}function F2(bt,Wt){var tn=-1,fn=bt.length,Cn=fn-1;for(Wt=Wt===et?fn:Wt;++tn1?bt[Wt-1]:et;return tn=typeof tn=="function"?(bt.pop(),tn):et,Qm(bt,tn)});function _m(bt){var Wt=An(bt);return Wt.__chain__=!0,Wt}function FF(bt,Wt){return Wt(bt),bt}function y2(bt,Wt){return Wt(bt)}var yF=Xo(function(bt){var Wt=bt.length,tn=Wt?bt[0]:0,fn=this.__wrapped__,Cn=function(Ln){return S0(Ln,bt)};return Wt>1||this.__actions__.length||!(fn instanceof Mo)||!rp(tn)?this.thru(Cn):(fn=fn.slice(tn,+tn+(Wt?1:0)),fn.__actions__.push({func:y2,args:[Cn],thisArg:et}),new ga(fn,this.__chain__).thru(function(Ln){return Wt&&!Ln.length&&Ln.push(et),Ln}))});function RF(){return _m(this)}function SF(){return new ga(this.value(),this.__chain__)}function BF(){this.__values__===et&&(this.__values__=Wm(this.value()));var bt=this.__index__>=this.__values__.length,Wt=bt?et:this.__values__[this.__index__++];return{done:bt,value:Wt}}function vF(){return this}function bF(bt){for(var Wt,tn=this;tn instanceof Hp;){var fn=ym(tn);fn.__index__=0,fn.__values__=et,Wt?Cn.__wrapped__=fn:Wt=fn;var Cn=fn;tn=tn.__wrapped__}return Cn.__wrapped__=bt,Wt}function QF(){var bt=this.__wrapped__;if(bt instanceof Mo){var Wt=bt;return this.__actions__.length&&(Wt=new Mo(this)),Wt=Wt.reverse(),Wt.__actions__.push({func:y2,args:[j2],thisArg:et}),new ga(Wt,this.__chain__)}return this.thru(j2)}function _F(){return Iu(this.__wrapped__,this.__actions__)}var EF=o0(function(bt,Wt,tn){us.call(bt,tn)?++bt[tn]:mu(bt,tn,1)});function TF(bt,Wt,tn){var fn=$o(bt)?W0:N2;return tn&&Jl(bt,Wt,tn)&&(Wt=et),fn(bt,Ao(Wt,3))}function wF(bt,Wt){var tn=$o(bt)?qs:a1;return tn(bt,Ao(Wt,3))}var CF=rn(Rm),xF=rn(Sm);function VF(bt,Wt){return Gs(R2(bt,Wt),1)}function MF(bt,Wt){return Gs(R2(bt,Wt),Ot)}function NF(bt,Wt,tn){return tn=tn===et?1:qo(tn),Gs(R2(bt,Wt),tn)}function Em(bt,Wt){var tn=$o(bt)?Ds:iu;return tn(bt,Ao(Wt,3))}function Tm(bt,Wt){var tn=$o(bt)?J0:o2;return tn(bt,Ao(Wt,3))}var AF=o0(function(bt,Wt,tn){us.call(bt,tn)?bt[tn].push(Wt):mu(bt,tn,[Wt])});function kF(bt,Wt,tn,fn){bt=zl(bt)?bt:O0(bt),tn=tn&&!fn?qo(tn):0;var Cn=bt.length;return tn<0&&(tn=Js(Cn+tn,0)),_2(bt)?tn<=Cn&&bt.indexOf(Wt,tn)>-1:!!Cn&&Kl(bt,Wt,tn)>-1}var DF=Vo(function(bt,Wt,tn){var fn=-1,Cn=typeof Wt=="function",Ln=zl(bt)?Nr(bt.length):[];return iu(bt,function(qn){Ln[++fn]=Cn?Rs(Wt,qn,tn):Fs(qn,Wt,tn)}),Ln}),OF=o0(function(bt,Wt,tn){mu(bt,tn,Wt)});function R2(bt,Wt){var tn=$o(bt)?ms:ep;return tn(bt,Ao(Wt,3))}function JF(bt,Wt,tn,fn){return bt==null?[]:($o(Wt)||(Wt=Wt==null?[]:[Wt]),tn=fn?et:tn,$o(tn)||(tn=tn==null?[]:[tn]),t0(bt,Wt,tn))}var WF=o0(function(bt,Wt,tn){bt[tn?0:1].push(Wt)},function(){return[[],[]]});function IF(bt,Wt,tn){var fn=$o(bt)?d0:xu,Cn=arguments.length<3;return fn(bt,Ao(Wt,4),tn,Cn,iu)}function LF(bt,Wt,tn){var fn=$o(bt)?_1:xu,Cn=arguments.length<3;return fn(bt,Ao(Wt,4),tn,Cn,o2)}function PF(bt,Wt){var tn=$o(bt)?qs:a1;return tn(bt,b2(Ao(Wt,3)))}function ZF(bt){var Wt=$o(bt)?Yp:l2;return Wt(bt)}function jF(bt,Wt,tn){(tn?Jl(bt,Wt,tn):Wt===et)?Wt=1:Wt=qo(Wt);var fn=$o(bt)?t1:p1;return fn(bt,Wt)}function zF(bt){var Wt=$o(bt)?r2:u2;return Wt(bt)}function $F(bt){if(bt==null)return 0;if(zl(bt))return _2(bt)?du(bt):bt.length;var Wt=Cl(bt);return Wt==Xt||Wt==hn?bt.size:ba(bt).length}function GF(bt,Wt,tn){var fn=$o(bt)?Mp:f1;return tn&&Jl(bt,Wt,tn)&&(Wt=et),fn(bt,Ao(Wt,3))}var HF=Vo(function(bt,Wt){if(bt==null)return[];var tn=Wt.length;return tn>1&&Jl(bt,Wt[0],Wt[1])?Wt=[]:tn>2&&Jl(Wt[0],Wt[1],Wt[2])&&(Wt=[Wt[0]]),t0(bt,Gs(Wt,1),[])}),S2=A1||function(){return no.Date.now()};function YF(bt,Wt){if(typeof Wt!="function")throw new _l(it);return bt=qo(bt),function(){if(--bt<1)return Wt.apply(this,arguments)}}function wm(bt,Wt,tn){return Wt=tn?et:Wt,Wt=bt&&Wt==null?bt.length:Wt,xr(bt,At,et,et,et,et,Wt)}function Cm(bt,Wt){var tn;if(typeof Wt!="function")throw new _l(it);return bt=qo(bt),function(){return--bt>0&&(tn=Wt.apply(this,arguments)),bt<=1&&(Wt=et),tn}}var $2=Vo(function(bt,Wt,tn){var fn=ft;if(tn.length){var Cn=tu(tn,k0($2));fn|=mt}return xr(bt,fn,Wt,tn,Cn)}),xm=Vo(function(bt,Wt,tn){var fn=ft|gt;if(tn.length){var Cn=tu(tn,k0(xm));fn|=mt}return xr(Wt,fn,bt,tn,Cn)});function Vm(bt,Wt,tn){Wt=tn?et:Wt;var fn=xr(bt,Ut,et,et,et,et,et,Wt);return fn.placeholder=Vm.placeholder,fn}function Mm(bt,Wt,tn){Wt=tn?et:Wt;var fn=xr(bt,Ft,et,et,et,et,et,Wt);return fn.placeholder=Mm.placeholder,fn}function Nm(bt,Wt,tn){var fn,Cn,Ln,qn,lr,Br,jr=0,$r=!1,Xr=!1,po=!0;if(typeof bt!="function")throw new _l(it);Wt=Su(Wt)||0,ws(tn)&&($r=!!tn.leading,Xr="maxWait"in tn,Ln=Xr?Js(Su(tn.maxWait)||0,Wt):Ln,po="trailing"in tn?!!tn.trailing:po);function Eo(Ls){var Cu=fn,sp=Cn;return fn=Cn=et,jr=Ls,qn=bt.apply(sp,Cu),qn}function Do(Ls){return jr=Ls,lr=b1(rs,Wt),$r?Eo(Ls):qn}function ts(Ls){var Cu=Ls-Br,sp=Ls-jr,qm=Wt-Cu;return Xr?na(qm,Ln-sp):qm}function Oo(Ls){var Cu=Ls-Br,sp=Ls-jr;return Br===et||Cu>=Wt||Cu<0||Xr&&sp>=Ln}function rs(){var Ls=S2();if(Oo(Ls))return ls(Ls);lr=b1(rs,ts(Ls))}function ls(Ls){return lr=et,po&&fn?Eo(Ls):(fn=Cn=et,qn)}function lu(){lr!==et&&p2(lr),jr=0,fn=Br=Cn=lr=et}function Wl(){return lr===et?qn:ls(S2())}function cu(){var Ls=S2(),Cu=Oo(Ls);if(fn=arguments,Cn=this,Br=Ls,Cu){if(lr===et)return Do(Br);if(Xr)return p2(lr),lr=b1(rs,Wt),Eo(Br)}return lr===et&&(lr=b1(rs,Wt)),qn}return cu.cancel=lu,cu.flush=Wl,cu}var XF=Vo(function(bt,Wt){return s1(bt,1,Wt)}),KF=Vo(function(bt,Wt,tn){return s1(bt,Su(Wt)||0,tn)});function qF(bt){return xr(bt,Rt)}function B2(bt,Wt){if(typeof bt!="function"||Wt!=null&&typeof Wt!="function")throw new _l(it);var tn=function(){var fn=arguments,Cn=Wt?Wt.apply(this,fn):fn[0],Ln=tn.cache;if(Ln.has(Cn))return Ln.get(Cn);var qn=bt.apply(this,fn);return tn.cache=Ln.set(Cn,qn)||Ln,qn};return tn.cache=new(B2.Cache||Il),tn}B2.Cache=Il;function b2(bt){if(typeof bt!="function")throw new _l(it);return function(){var Wt=arguments;switch(Wt.length){case 0:return!bt.call(this);case 1:return!bt.call(this,Wt[0]);case 2:return!bt.call(this,Wt[0],Wt[1]);case 3:return!bt.call(this,Wt[0],Wt[1],Wt[2])}return!bt.apply(this,Wt)}}function ey(bt){return Cm(2,bt)}var ty=d2(function(bt,Wt){Wt=Wt.length==1&&$o(Wt[0])?ms(Wt[0],Bl(Ao())):ms(Gs(Wt,1),Bl(Ao()));var tn=Wt.length;return Vo(function(fn){for(var Cn=-1,Ln=na(fn.length,tn);++Cn=Wt}),l0=Ho(function(){return arguments}())?Ho:function(bt){return Ms(bt)&&us.call(bt,"callee")&&!m0.call(bt,"callee")},$o=Nr.isArray,Uy=xo?Bl(xo):Cs;function zl(bt){return bt!=null&&Q2(bt.length)&&!ip(bt)}function Is(bt){return Ms(bt)&&zl(bt)}function Fy(bt){return bt===!0||bt===!1||Ms(bt)&&Ys(bt)==Vt}var Vp=D1||om,yy=Bs?Bl(Bs):xs;function Ry(bt){return Ms(bt)&&bt.nodeType===1&&!Q1(bt)}function Sy(bt){if(bt==null)return!0;if(zl(bt)&&($o(bt)||typeof bt=="string"||typeof bt.splice=="function"||Vp(bt)||D0(bt)||l0(bt)))return!bt.length;var Wt=Cl(bt);if(Wt==Xt||Wt==hn)return!bt.size;if(B1(bt))return!ba(bt).length;for(var tn in bt)if(us.call(bt,tn))return!1;return!0}function By(bt,Wt){return Es(bt,Wt)}function vy(bt,Wt,tn){tn=typeof tn=="function"?tn:et;var fn=tn?tn(bt,Wt):et;return fn===et?Es(bt,Wt,et,tn):!!fn}function H2(bt){if(!Ms(bt))return!1;var Wt=Ys(bt);return Wt==Ht||Wt==$t||typeof bt.message=="string"&&typeof bt.name=="string"&&!Q1(bt)}function by(bt){return typeof bt=="number"&&H0(bt)}function ip(bt){if(!ws(bt))return!1;var Wt=Ys(bt);return Wt==qt||Wt==on||Wt==jt||Wt==On}function km(bt){return typeof bt=="number"&&bt==qo(bt)}function Q2(bt){return typeof bt=="number"&&bt>-1&&bt%1==0&&bt<=Jt}function ws(bt){var Wt=typeof bt;return bt!=null&&(Wt=="object"||Wt=="function")}function Ms(bt){return bt!=null&&typeof bt=="object"}var Dm=Ks?Bl(Ks):_p;function Qy(bt,Wt){return bt===Wt||Ts(bt,Wt,J2(Wt))}function Ey(bt,Wt,tn){return tn=typeof tn=="function"?tn:et,Ts(bt,Wt,J2(Wt),tn)}function Ty(bt){return Om(bt)&&bt!=+bt}function wy(bt){if(uU(bt))throw new Jo(rt);return Ep(bt)}function Cy(bt){return bt===null}function xy(bt){return bt==null}function Om(bt){return typeof bt=="number"||Ms(bt)&&Ys(bt)==dn}function Q1(bt){if(!Ms(bt)||Ys(bt)!=Fn)return!1;var Wt=Lp(bt);if(Wt===null)return!0;var tn=us.call(Wt,"constructor")&&Wt.constructor;return typeof tn=="function"&&tn instanceof tn&&Fp.call(tn)==Hu}var Y2=c0?Bl(c0):Tp;function Vy(bt){return km(bt)&&bt>=-Jt&&bt<=Jt}var Jm=u0?Bl(u0):b0;function _2(bt){return typeof bt=="string"||!$o(bt)&&Ms(bt)&&Ys(bt)==wn}function au(bt){return typeof bt=="symbol"||Ms(bt)&&Ys(bt)==Zn}var D0=$u?Bl($u):u1;function My(bt){return bt===et}function Ny(bt){return Ms(bt)&&Cl(bt)==$n}function Ay(bt){return Ms(bt)&&Ys(bt)==Tr}var ky=wo(_f),Dy=wo(function(bt,Wt){return bt<=Wt});function Wm(bt){if(!bt)return[];if(zl(bt))return _2(bt)?vs(bt):Fl(bt);if(Au&&bt[Au])return dp(bt[Au]());var Wt=Cl(bt),tn=Wt==Xt?Dp:Wt==hn?Op:O0;return tn(bt)}function op(bt){if(!bt)return bt===0?bt:0;if(bt=Su(bt),bt===Ot||bt===-Ot){var Wt=bt<0?-1:1;return Wt*Dt}return bt===bt?bt:0}function qo(bt){var Wt=op(bt),tn=Wt%1;return Wt===Wt?tn?Wt-tn:Wt:0}function Im(bt){return bt?Ou(qo(bt),0,Pt):0}function Su(bt){if(typeof bt=="number")return bt;if(au(bt))return Et;if(ws(bt)){var Wt=typeof bt.valueOf=="function"?bt.valueOf():bt;bt=ws(Wt)?Wt+"":Wt}if(typeof bt!="string")return bt===0?bt:+bt;bt=p0(bt);var tn=Rr.test(bt);return tn||fr.test(bt)?Sr(bt.slice(2),tn?2:8):rr.test(bt)?Et:+bt}function Lm(bt){return Zl(bt,$l(bt))}function Oy(bt){return bt?Ou(qo(bt),-Jt,Jt):bt===0?bt:0}function hs(bt){return bt==null?"":$a(bt)}var Jy=np(function(bt,Wt){if(B1(Wt)||zl(Wt)){Zl(Wt,Rl(Wt),bt);return}for(var tn in Wt)us.call(Wt,tn)&&ru(bt,tn,Wt[tn])}),Pm=np(function(bt,Wt){Zl(Wt,$l(Wt),bt)}),E2=np(function(bt,Wt,tn,fn){Zl(Wt,$l(Wt),bt,fn)}),Wy=np(function(bt,Wt,tn,fn){Zl(Wt,Rl(Wt),bt,fn)}),Iy=Xo(S0);function Ly(bt,Wt){var tn=_u(bt);return Wt==null?tn:i1(tn,Wt)}var Py=Vo(function(bt,Wt){bt=ko(bt);var tn=-1,fn=Wt.length,Cn=fn>2?Wt[2]:et;for(Cn&&Jl(Wt[0],Wt[1],Cn)&&(fn=1);++tn1),Ln}),Zl(bt,ss(bt),tn),fn&&(tn=Ml(tn,ut|dt|ht,fo));for(var Cn=Wt.length;Cn--;)m1(tn,Wt[Cn]);return tn});function aR(bt,Wt){return jm(bt,b2(Ao(Wt)))}var lR=Xo(function(bt,Wt){return bt==null?{}:n0(bt,Wt)});function jm(bt,Wt){if(bt==null)return{};var tn=ms(ss(bt),function(fn){return[fn]});return Wt=Ao(Wt),E0(bt,tn,function(fn,Cn){return Wt(fn,Cn[0])})}function cR(bt,Wt,tn){Wt=Pu(Wt,bt);var fn=-1,Cn=Wt.length;for(Cn||(Cn=1,bt=et);++fnWt){var fn=bt;bt=Wt,Wt=fn}if(tn||bt%1||Wt%1){var Cn=Y0();return na(bt+Cn*(Wt-bt+kr("1e-"+((Cn+"").length-1))),Wt)}return Uu(bt,Wt)}var RR=wt(function(bt,Wt,tn){return Wt=Wt.toLowerCase(),bt+(tn?Gm(Wt):Wt)});function Gm(bt){return q2(hs(bt).toLowerCase())}function Hm(bt){return bt=hs(bt),bt&&bt.replace(Gr,C1).replace(ir,"")}function SR(bt,Wt,tn){bt=hs(bt),Wt=$a(Wt);var fn=bt.length;tn=tn===et?fn:Ou(qo(tn),0,fn);var Cn=tn;return tn-=Wt.length,tn>=0&&bt.slice(tn,Cn)==Wt}function BR(bt){return bt=hs(bt),bt&&Fr.test(bt)?bt.replace(Jn,x1):bt}function vR(bt){return bt=hs(bt),bt&&xn.test(bt)?bt.replace(mn,"\\$&"):bt}var bR=wt(function(bt,Wt,tn){return bt+(tn?"-":"")+Wt.toLowerCase()}),QR=wt(function(bt,Wt,tn){return bt+(tn?" ":"")+Wt.toLowerCase()}),_R=m2("toLowerCase");function ER(bt,Wt,tn){bt=hs(bt),Wt=qo(Wt);var fn=Wt?du(bt):0;if(!Wt||fn>=Wt)return bt;var Cn=(Wt-fn)/2;return io(jp(Cn),tn)+bt+io(Zp(Cn),tn)}function TR(bt,Wt,tn){bt=hs(bt),Wt=qo(Wt);var fn=Wt?du(bt):0;return Wt&&fn>>0,tn?(bt=hs(bt),bt&&(typeof Wt=="string"||Wt!=null&&!Y2(Wt))&&(Wt=$a(Wt),!Wt&&Gu(bt))?Zu(vs(bt),0,tn):bt.split(Wt,tn)):[]}var AR=wt(function(bt,Wt,tn){return bt+(tn?" ":"")+q2(Wt)});function kR(bt,Wt,tn){return bt=hs(bt),tn=tn==null?0:Ou(qo(tn),0,bt.length),Wt=$a(Wt),bt.slice(tn,tn+Wt.length)==Wt}function DR(bt,Wt,tn){var fn=An.templateSettings;tn&&Jl(bt,Wt,tn)&&(Wt=et),bt=hs(bt),Wt=E2({},Wt,fn,yr);var Cn=E2({},Wt.imports,fn.imports,yr),Ln=Rl(Cn),qn=Ql(Cn,Ln),lr,Br,jr=0,$r=Wt.interpolate||Pr,Xr="__p += '",po=zs((Wt.escape||Pr).source+"|"+$r.source+"|"+($r===tr?ho:Pr).source+"|"+(Wt.evaluate||Pr).source+"|$","g"),Eo="//# sourceURL="+(us.call(Wt,"sourceURL")?(Wt.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++co+"]")+` +`;bt.replace(po,function(Oo,rs,ls,lu,Wl,cu){return ls||(ls=lu),Xr+=bt.slice(jr,cu).replace(oo,L0),rs&&(lr=!0,Xr+=`' + __e(`+rs+`) + -'`),Jl&&(Br=!0,Xr+=`'; -`+Jl+`; +'`),Wl&&(Br=!0,Xr+=`'; +`+Wl+`; __p += '`),ls&&(Xr+=`' + ((__t = (`+ls+`)) == null ? '' : __t) + '`),jr=cu+Oo.length,Oo}),Xr+=`'; -`;var Do=us.call(Jt,"variable")&&Jt.variable;if(!Do)Xr=`with (obj) { +`;var Do=us.call(Wt,"variable")&&Wt.variable;if(!Do)Xr=`with (obj) { `+Xr+` } -`;else if(nr.test(Do))throw new Wo(ot);Xr=(Br?Xr.replace(kn,""):Xr).replace(un,"$1").replace(pn,"$1;"),Xr="function("+(Do||"obj")+`) { +`;else if(nr.test(Do))throw new Jo(ot);Xr=(Br?Xr.replace(kn,""):Xr).replace(un,"$1").replace(pn,"$1;"),Xr="function("+(Do||"obj")+`) { `+(Do?"":`obj || (obj = {}); `)+"var __t, __p = ''"+(lr?", __e = _.escape":"")+(Br?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; `)+Xr+`return __p -}`;var ts=Xm(function(){return zo(Ln,Eo+"return "+Xr).apply(et,qn)});if(ts.source=Xr,H2(ts))throw ts;return ts}function OR(bt){return hs(bt).toLowerCase()}function WR(bt){return hs(bt).toUpperCase()}function JR(bt,Jt,tn){if(bt=hs(bt),bt&&(tn||Jt===et))return p0(bt);if(!bt||!(Jt=$a(Jt)))return bt;var fn=vs(bt),Cn=vs(Jt),Ln=Us(fn,Cn),qn=up(fn,Cn)+1;return Zu(fn,Ln,qn).join("")}function IR(bt,Jt,tn){if(bt=hs(bt),bt&&(tn||Jt===et))return bt.slice(0,fp(bt)+1);if(!bt||!(Jt=$a(Jt)))return bt;var fn=vs(bt),Cn=up(fn,vs(Jt))+1;return Zu(fn,0,Cn).join("")}function LR(bt,Jt,tn){if(bt=hs(bt),bt&&(tn||Jt===et))return bt.replace(Gn,"");if(!bt||!(Jt=$a(Jt)))return bt;var fn=vs(bt),Cn=Us(fn,vs(Jt));return Zu(fn,Cn).join("")}function PR(bt,Jt){var tn=St,fn=Tt;if(ws(Jt)){var Cn="separator"in Jt?Jt.separator:Cn;tn="length"in Jt?qo(Jt.length):tn,fn="omission"in Jt?$a(Jt.omission):fn}bt=hs(bt);var Ln=bt.length;if(Gu(bt)){var qn=vs(bt);Ln=qn.length}if(tn>=Ln)return bt;var lr=tn-du(fn);if(lr<1)return fn;var Br=qn?Zu(qn,0,lr).join(""):bt.slice(0,lr);if(Cn===et)return Br+fn;if(qn&&(lr+=Br.length-lr),Y2(Cn)){if(bt.slice(lr).search(Cn)){var jr,$r=Br;for(Cn.global||(Cn=zs(Cn.source,hs(Nn.exec(Cn))+"g")),Cn.lastIndex=0;jr=Cn.exec($r);)var Xr=jr.index;Br=Br.slice(0,Xr===et?lr:Xr)}}else if(bt.indexOf($a(Cn),lr)!=lr){var po=Br.lastIndexOf(Cn);po>-1&&(Br=Br.slice(0,po))}return Br+fn}function ZR(bt){return bt=hs(bt),bt&&jn.test(bt)?bt.replace(Qn,gp):bt}var jR=wt(function(bt,Jt,tn){return bt+(tn?" ":"")+Jt.toUpperCase()}),q2=m2("toUpperCase");function Ym(bt,Jt,tn){return bt=hs(bt),Jt=tn?et:Jt,Jt===et?kp(bt)?mp(bt):T1(bt):bt.match(Jt)||[]}var Xm=Vo(function(bt,Jt){try{return Rs(bt,et,Jt)}catch(tn){return H2(tn)?tn:new Wo(tn)}}),zR=Xo(function(bt,Jt){return Ds(Jt,function(tn){tn=zu(tn),mu(bt,tn,$2(bt[tn],bt))}),bt});function $R(bt){var Jt=bt==null?0:bt.length,tn=Ao();return bt=Jt?ms(bt,function(fn){if(typeof fn[1]!="function")throw new _l(it);return[tn(fn[0]),fn[1]]}):[],Vo(function(fn){for(var Cn=-1;++CnWt)return[];var tn=Pt,fn=na(bt,Pt);Jt=Ao(Jt),bt-=Pt;for(var Cn=vu(fn,Jt);++tn0||Jt<0)?new Mo(tn):(bt<0?tn=tn.takeRight(-bt):bt&&(tn=tn.drop(bt)),Jt!==et&&(Jt=qo(Jt),tn=Jt<0?tn.dropRight(-Jt):tn.take(Jt-bt)),tn)},Mo.prototype.takeRightWhile=function(bt){return this.reverse().takeWhile(bt).reverse()},Mo.prototype.toArray=function(){return this.take(Pt)},Nl(Mo.prototype,function(bt,Jt){var tn=/^(?:filter|find|map|reject)|While$/.test(Jt),fn=/^(?:head|last)$/.test(Jt),Cn=An[fn?"take"+(Jt=="last"?"Right":""):Jt],Ln=fn||/^find/.test(Jt);Cn&&(An.prototype[Jt]=function(){var qn=this.__wrapped__,lr=fn?[1]:arguments,Br=qn instanceof Mo,jr=lr[0],$r=Br||$o(qn),Xr=function(rs){var ls=Cn.apply(An,Xl([rs],lr));return fn&&po?ls[0]:ls};$r&&tn&&typeof jr=="function"&&jr.length!=1&&(Br=$r=!1);var po=this.__chain__,Eo=!!this.__actions__.length,Do=Ln&&!po,ts=Br&&!Eo;if(!Ln&&$r){qn=ts?qn:new Mo(this);var Oo=bt.apply(qn,lr);return Oo.__actions__.push({func:y2,args:[Xr],thisArg:et}),new ga(Oo,po)}return Do&&ts?bt.apply(this,lr):(Oo=this.thru(Xr),Do?fn?Oo.value()[0]:Oo.value():Oo)})}),Ds(["pop","push","shift","sort","splice","unshift"],function(bt){var Jt=Mu[bt],tn=/^(?:push|sort|unshift)$/.test(bt)?"tap":"thru",fn=/^(?:pop|shift)$/.test(bt);An.prototype[bt]=function(){var Cn=arguments;if(fn&&!this.__chain__){var Ln=this.value();return Jt.apply($o(Ln)?Ln:[],Cn)}return this[tn](function(qn){return Jt.apply($o(qn)?qn:[],Cn)})}}),Nl(Mo.prototype,function(bt,Jt){var tn=An[Jt];if(tn){var fn=tn.name+"";us.call(Ku,fn)||(Ku[fn]=[]),Ku[fn].push({name:Jt,func:tn})}}),Ku[yn(et,gt).name]=[{name:"wrapper",func:et}],Mo.prototype.clone=w2,Mo.prototype.reverse=C2,Mo.prototype.value=Vl,An.prototype.at=yF,An.prototype.chain=RF,An.prototype.commit=SF,An.prototype.next=BF,An.prototype.plant=bF,An.prototype.reverse=QF,An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=_F,An.prototype.first=An.prototype.head,Au&&(An.prototype[Au]=vF),An},Vu=N1();Co?((Co.exports=Vu)._=Vu,Ro._=Vu):no._=Vu}).call(commonjsGlobal$1)})(lodash,lodashExports);const icons={"add-small":()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.71252 2.25V15.75H8.21252V2.25H9.71252Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.75 9.75L2.25 9.75V8.25L15.75 8.25V9.75Z"}),jsx("path",{d:"M8.96252 3V15",strokeWidth:"1.5",strokeLinecap:"square"}),jsx("path",{d:"M15 9L3 9",strokeWidth:"1.5",strokeLinecap:"square"})]}),annotation:()=>jsx(Fragment,{children:jsx("path",{d:"M17.1363 2.46967C17.4292 2.17678 17.9041 2.17678 18.197 2.46967L21.5303 5.803C21.8232 6.0959 21.8232 6.57077 21.5303 6.86366L12.8637 15.5303C12.723 15.671 12.5322 15.75 12.3333 15.75H9C8.58579 15.75 8.25 15.4142 8.25 15V11.6667C8.25 11.4678 8.32902 11.277 8.46967 11.1363L17.1363 2.46967ZM9.75 11.9773V14.25H12.0227L17.9337 8.33899L15.661 6.06631L9.75 11.9773ZM16.1913 5.53598L18.464 7.80866L19.9393 6.33333L17.6667 4.06066L16.1913 5.53598ZM5.875 7.375H10.25V5.625H5.48276C4.68367 5.625 4.125 6.29713 4.125 7.01293V19.3567C4.125 20.0725 4.68367 20.7446 5.48276 20.7446H18.5173C19.3164 20.7446 19.875 20.0725 19.875 19.3567V12.2963H18.125V18.9946H5.875V7.375Z"})}),audio:()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16.0765 16.751C17.3366 15.4908 18.0443 13.782 18.0443 12.0001C18.0443 10.2181 17.3366 8.50929 16.0765 7.24915L15 8.32564C15.9742 9.29986 16.5222 10.622 16.5222 12.0001C16.5222 13.3781 15.9742 14.7003 15 15.6745L16.0765 16.751Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18.1877 18.8621C20.0077 17.042 21.0305 14.574 21.0305 12C21.0305 9.42594 20.0077 6.95792 18.1877 5.13788L17.1343 6.19123C18.6752 7.73132 19.5404 9.82086 19.5404 12C19.5404 14.1791 18.6752 16.2686 17.1343 17.8087L18.1877 18.8621Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.4393 4.14645C11.3843 3.2015 13 3.87075 13 5.20711V18.7929C13 20.1292 11.3843 20.7985 10.4393 19.8536L6.58579 16H3V8H6.58579L10.4393 4.14645ZM11 6.41422L7.41421 10H5V14H7.41421L11 17.5858V6.41422Z"})]}),"audio-muted":()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.9437 4.17441L3.74457 3.37354L15.4854 15.1144C16.1543 14.2209 16.5222 13.1293 16.5222 12.0001C16.5222 10.622 15.9742 9.29986 15 8.32564L16.0765 7.24915C17.3366 8.50929 18.0443 10.2181 18.0443 12.0001C18.0443 13.5339 17.52 15.0134 16.5704 16.1994L17.6336 17.2626C18.8608 15.7922 19.5404 13.9313 19.5404 12C19.5404 9.82092 18.6752 7.73138 17.1343 6.19129L18.1877 5.13794C20.0077 6.95798 21.0305 9.426 21.0305 12C21.0305 14.3265 20.195 16.5664 18.6905 18.3195L20.4311 20.0601L19.6302 20.8609L2.9437 4.17441Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13 5.20711C13 3.87075 11.3843 3.2015 10.4393 4.14645L6.70271 7.88307L8.11693 9.29729L11 6.41422V12.1804L13 14.1804V5.20711ZM13 15.7411L11 13.7411V17.5858L7.41421 14H5V10H7.25894L5.25894 8H3V16H6.58579L10.4393 19.8536C11.3843 20.7985 13 20.1292 13 18.7929V15.7411Z"})]}),"audio-volume-0":()=>jsx(Fragment,{children:jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.4393 4.14645C11.3843 3.2015 13 3.87075 13 5.20711V18.7929C13 20.1292 11.3843 20.7985 10.4393 19.8536L6.58579 16H3V8H6.58579L10.4393 4.14645ZM11 6.41422L7.41421 10H5V14H7.41421L11 17.5858V6.41422Z"})}),"audio-volume-half":()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16.0765 16.751C17.3366 15.4908 18.0443 13.782 18.0443 12.0001C18.0443 10.2181 17.3366 8.50929 16.0765 7.24915L15 8.32564C15.9742 9.29986 16.5222 10.622 16.5222 12.0001C16.5222 13.3781 15.9742 14.7003 15 15.6745L16.0765 16.751Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.4393 4.14645C11.3843 3.2015 13 3.87075 13 5.20711V18.7929C13 20.1292 11.3843 20.7985 10.4393 19.8536L6.58579 16H3V8H6.58579L10.4393 4.14645ZM11 6.41422L7.41421 10H5V14H7.41421L11 17.5858V6.41422Z"})]}),"arrow-down":()=>jsxs(Fragment,{children:[jsx("path",{d:"M11 20V4H13V20H11Z"}),jsx("path",{d:"M12 18.5858L6.70712 13.2929L5.29291 14.7071L11.2929 20.7071C11.6834 21.0976 12.3166 21.0976 12.7071 20.7071L18.7071 14.7071L17.2929 13.2929L12 18.5858Z"})]}),"arrow-left":()=>jsxs(Fragment,{children:[jsx("path",{d:"M4 11H20V13H4V11Z"}),jsx("path",{d:"M5.41421 12L10.7071 6.70711L9.29289 5.29289L3.29289 11.2929C2.90237 11.6834 2.90237 12.3166 3.29289 12.7071L9.29289 18.7071L10.7071 17.2929L5.41421 12Z"})]}),"arrow-right":()=>jsxs(Fragment,{children:[jsx("path",{d:"M20 13H4V11H20V13Z"}),jsx("path",{d:"M18.5858 12L13.2929 6.70711L14.7071 5.29289L20.7071 11.2929C21.0976 11.6834 21.0976 12.3166 20.7071 12.7071L14.7071 18.7071L13.2929 17.2929L18.5858 12Z"})]}),"arrow-up":()=>jsxs(Fragment,{children:[jsx("path",{d:"M13 4V20H11V4H13Z"}),jsx("path",{d:"M11.2929 3.29289C11.6834 2.90237 12.3166 2.90237 12.7071 3.29289L18.7071 9.29289L17.2929 10.7071L12 5.41421L6.70712 10.7071L5.29291 9.29289L11.2929 3.29289Z"})]}),board:()=>jsx(Fragment,{children:jsx("path",{d:`M10.9,8.5c0,2.7-1.6,4.1-3.4,4.1c-1.8,0-3.3-1.4-3.3-3.9c0-2.5,1.4-4.1,3.4-4.1C9.6,4.6,10.9,6.2,10.9,8.5z M6,8.6 +}`;var ts=Xm(function(){return zo(Ln,Eo+"return "+Xr).apply(et,qn)});if(ts.source=Xr,H2(ts))throw ts;return ts}function OR(bt){return hs(bt).toLowerCase()}function JR(bt){return hs(bt).toUpperCase()}function WR(bt,Wt,tn){if(bt=hs(bt),bt&&(tn||Wt===et))return p0(bt);if(!bt||!(Wt=$a(Wt)))return bt;var fn=vs(bt),Cn=vs(Wt),Ln=Us(fn,Cn),qn=up(fn,Cn)+1;return Zu(fn,Ln,qn).join("")}function IR(bt,Wt,tn){if(bt=hs(bt),bt&&(tn||Wt===et))return bt.slice(0,fp(bt)+1);if(!bt||!(Wt=$a(Wt)))return bt;var fn=vs(bt),Cn=up(fn,vs(Wt))+1;return Zu(fn,0,Cn).join("")}function LR(bt,Wt,tn){if(bt=hs(bt),bt&&(tn||Wt===et))return bt.replace(Gn,"");if(!bt||!(Wt=$a(Wt)))return bt;var fn=vs(bt),Cn=Us(fn,vs(Wt));return Zu(fn,Cn).join("")}function PR(bt,Wt){var tn=St,fn=Tt;if(ws(Wt)){var Cn="separator"in Wt?Wt.separator:Cn;tn="length"in Wt?qo(Wt.length):tn,fn="omission"in Wt?$a(Wt.omission):fn}bt=hs(bt);var Ln=bt.length;if(Gu(bt)){var qn=vs(bt);Ln=qn.length}if(tn>=Ln)return bt;var lr=tn-du(fn);if(lr<1)return fn;var Br=qn?Zu(qn,0,lr).join(""):bt.slice(0,lr);if(Cn===et)return Br+fn;if(qn&&(lr+=Br.length-lr),Y2(Cn)){if(bt.slice(lr).search(Cn)){var jr,$r=Br;for(Cn.global||(Cn=zs(Cn.source,hs(Nn.exec(Cn))+"g")),Cn.lastIndex=0;jr=Cn.exec($r);)var Xr=jr.index;Br=Br.slice(0,Xr===et?lr:Xr)}}else if(bt.indexOf($a(Cn),lr)!=lr){var po=Br.lastIndexOf(Cn);po>-1&&(Br=Br.slice(0,po))}return Br+fn}function ZR(bt){return bt=hs(bt),bt&&jn.test(bt)?bt.replace(Qn,gp):bt}var jR=wt(function(bt,Wt,tn){return bt+(tn?" ":"")+Wt.toUpperCase()}),q2=m2("toUpperCase");function Ym(bt,Wt,tn){return bt=hs(bt),Wt=tn?et:Wt,Wt===et?kp(bt)?mp(bt):T1(bt):bt.match(Wt)||[]}var Xm=Vo(function(bt,Wt){try{return Rs(bt,et,Wt)}catch(tn){return H2(tn)?tn:new Jo(tn)}}),zR=Xo(function(bt,Wt){return Ds(Wt,function(tn){tn=zu(tn),mu(bt,tn,$2(bt[tn],bt))}),bt});function $R(bt){var Wt=bt==null?0:bt.length,tn=Ao();return bt=Wt?ms(bt,function(fn){if(typeof fn[1]!="function")throw new _l(it);return[tn(fn[0]),fn[1]]}):[],Vo(function(fn){for(var Cn=-1;++CnJt)return[];var tn=Pt,fn=na(bt,Pt);Wt=Ao(Wt),bt-=Pt;for(var Cn=vu(fn,Wt);++tn0||Wt<0)?new Mo(tn):(bt<0?tn=tn.takeRight(-bt):bt&&(tn=tn.drop(bt)),Wt!==et&&(Wt=qo(Wt),tn=Wt<0?tn.dropRight(-Wt):tn.take(Wt-bt)),tn)},Mo.prototype.takeRightWhile=function(bt){return this.reverse().takeWhile(bt).reverse()},Mo.prototype.toArray=function(){return this.take(Pt)},Nl(Mo.prototype,function(bt,Wt){var tn=/^(?:filter|find|map|reject)|While$/.test(Wt),fn=/^(?:head|last)$/.test(Wt),Cn=An[fn?"take"+(Wt=="last"?"Right":""):Wt],Ln=fn||/^find/.test(Wt);Cn&&(An.prototype[Wt]=function(){var qn=this.__wrapped__,lr=fn?[1]:arguments,Br=qn instanceof Mo,jr=lr[0],$r=Br||$o(qn),Xr=function(rs){var ls=Cn.apply(An,Xl([rs],lr));return fn&&po?ls[0]:ls};$r&&tn&&typeof jr=="function"&&jr.length!=1&&(Br=$r=!1);var po=this.__chain__,Eo=!!this.__actions__.length,Do=Ln&&!po,ts=Br&&!Eo;if(!Ln&&$r){qn=ts?qn:new Mo(this);var Oo=bt.apply(qn,lr);return Oo.__actions__.push({func:y2,args:[Xr],thisArg:et}),new ga(Oo,po)}return Do&&ts?bt.apply(this,lr):(Oo=this.thru(Xr),Do?fn?Oo.value()[0]:Oo.value():Oo)})}),Ds(["pop","push","shift","sort","splice","unshift"],function(bt){var Wt=Mu[bt],tn=/^(?:push|sort|unshift)$/.test(bt)?"tap":"thru",fn=/^(?:pop|shift)$/.test(bt);An.prototype[bt]=function(){var Cn=arguments;if(fn&&!this.__chain__){var Ln=this.value();return Wt.apply($o(Ln)?Ln:[],Cn)}return this[tn](function(qn){return Wt.apply($o(qn)?qn:[],Cn)})}}),Nl(Mo.prototype,function(bt,Wt){var tn=An[Wt];if(tn){var fn=tn.name+"";us.call(Ku,fn)||(Ku[fn]=[]),Ku[fn].push({name:Wt,func:tn})}}),Ku[yn(et,gt).name]=[{name:"wrapper",func:et}],Mo.prototype.clone=w2,Mo.prototype.reverse=C2,Mo.prototype.value=Vl,An.prototype.at=yF,An.prototype.chain=RF,An.prototype.commit=SF,An.prototype.next=BF,An.prototype.plant=bF,An.prototype.reverse=QF,An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=_F,An.prototype.first=An.prototype.head,Au&&(An.prototype[Au]=vF),An},Vu=N1();Co?((Co.exports=Vu)._=Vu,Ro._=Vu):no._=Vu}).call(commonjsGlobal$1)})(lodash,lodashExports);const icons={"add-small":()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.71252 2.25V15.75H8.21252V2.25H9.71252Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.75 9.75L2.25 9.75V8.25L15.75 8.25V9.75Z"}),jsx("path",{d:"M8.96252 3V15",strokeWidth:"1.5",strokeLinecap:"square"}),jsx("path",{d:"M15 9L3 9",strokeWidth:"1.5",strokeLinecap:"square"})]}),annotation:()=>jsx(Fragment,{children:jsx("path",{d:"M17.1363 2.46967C17.4292 2.17678 17.9041 2.17678 18.197 2.46967L21.5303 5.803C21.8232 6.0959 21.8232 6.57077 21.5303 6.86366L12.8637 15.5303C12.723 15.671 12.5322 15.75 12.3333 15.75H9C8.58579 15.75 8.25 15.4142 8.25 15V11.6667C8.25 11.4678 8.32902 11.277 8.46967 11.1363L17.1363 2.46967ZM9.75 11.9773V14.25H12.0227L17.9337 8.33899L15.661 6.06631L9.75 11.9773ZM16.1913 5.53598L18.464 7.80866L19.9393 6.33333L17.6667 4.06066L16.1913 5.53598ZM5.875 7.375H10.25V5.625H5.48276C4.68367 5.625 4.125 6.29713 4.125 7.01293V19.3567C4.125 20.0725 4.68367 20.7446 5.48276 20.7446H18.5173C19.3164 20.7446 19.875 20.0725 19.875 19.3567V12.2963H18.125V18.9946H5.875V7.375Z"})}),audio:()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16.0765 16.751C17.3366 15.4908 18.0443 13.782 18.0443 12.0001C18.0443 10.2181 17.3366 8.50929 16.0765 7.24915L15 8.32564C15.9742 9.29986 16.5222 10.622 16.5222 12.0001C16.5222 13.3781 15.9742 14.7003 15 15.6745L16.0765 16.751Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18.1877 18.8621C20.0077 17.042 21.0305 14.574 21.0305 12C21.0305 9.42594 20.0077 6.95792 18.1877 5.13788L17.1343 6.19123C18.6752 7.73132 19.5404 9.82086 19.5404 12C19.5404 14.1791 18.6752 16.2686 17.1343 17.8087L18.1877 18.8621Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.4393 4.14645C11.3843 3.2015 13 3.87075 13 5.20711V18.7929C13 20.1292 11.3843 20.7985 10.4393 19.8536L6.58579 16H3V8H6.58579L10.4393 4.14645ZM11 6.41422L7.41421 10H5V14H7.41421L11 17.5858V6.41422Z"})]}),"audio-muted":()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.9437 4.17441L3.74457 3.37354L15.4854 15.1144C16.1543 14.2209 16.5222 13.1293 16.5222 12.0001C16.5222 10.622 15.9742 9.29986 15 8.32564L16.0765 7.24915C17.3366 8.50929 18.0443 10.2181 18.0443 12.0001C18.0443 13.5339 17.52 15.0134 16.5704 16.1994L17.6336 17.2626C18.8608 15.7922 19.5404 13.9313 19.5404 12C19.5404 9.82092 18.6752 7.73138 17.1343 6.19129L18.1877 5.13794C20.0077 6.95798 21.0305 9.426 21.0305 12C21.0305 14.3265 20.195 16.5664 18.6905 18.3195L20.4311 20.0601L19.6302 20.8609L2.9437 4.17441Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13 5.20711C13 3.87075 11.3843 3.2015 10.4393 4.14645L6.70271 7.88307L8.11693 9.29729L11 6.41422V12.1804L13 14.1804V5.20711ZM13 15.7411L11 13.7411V17.5858L7.41421 14H5V10H7.25894L5.25894 8H3V16H6.58579L10.4393 19.8536C11.3843 20.7985 13 20.1292 13 18.7929V15.7411Z"})]}),"audio-volume-0":()=>jsx(Fragment,{children:jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.4393 4.14645C11.3843 3.2015 13 3.87075 13 5.20711V18.7929C13 20.1292 11.3843 20.7985 10.4393 19.8536L6.58579 16H3V8H6.58579L10.4393 4.14645ZM11 6.41422L7.41421 10H5V14H7.41421L11 17.5858V6.41422Z"})}),"audio-volume-half":()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16.0765 16.751C17.3366 15.4908 18.0443 13.782 18.0443 12.0001C18.0443 10.2181 17.3366 8.50929 16.0765 7.24915L15 8.32564C15.9742 9.29986 16.5222 10.622 16.5222 12.0001C16.5222 13.3781 15.9742 14.7003 15 15.6745L16.0765 16.751Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.4393 4.14645C11.3843 3.2015 13 3.87075 13 5.20711V18.7929C13 20.1292 11.3843 20.7985 10.4393 19.8536L6.58579 16H3V8H6.58579L10.4393 4.14645ZM11 6.41422L7.41421 10H5V14H7.41421L11 17.5858V6.41422Z"})]}),"arrow-down":()=>jsxs(Fragment,{children:[jsx("path",{d:"M11 20V4H13V20H11Z"}),jsx("path",{d:"M12 18.5858L6.70712 13.2929L5.29291 14.7071L11.2929 20.7071C11.6834 21.0976 12.3166 21.0976 12.7071 20.7071L18.7071 14.7071L17.2929 13.2929L12 18.5858Z"})]}),"arrow-left":()=>jsxs(Fragment,{children:[jsx("path",{d:"M4 11H20V13H4V11Z"}),jsx("path",{d:"M5.41421 12L10.7071 6.70711L9.29289 5.29289L3.29289 11.2929C2.90237 11.6834 2.90237 12.3166 3.29289 12.7071L9.29289 18.7071L10.7071 17.2929L5.41421 12Z"})]}),"arrow-right":()=>jsxs(Fragment,{children:[jsx("path",{d:"M20 13H4V11H20V13Z"}),jsx("path",{d:"M18.5858 12L13.2929 6.70711L14.7071 5.29289L20.7071 11.2929C21.0976 11.6834 21.0976 12.3166 20.7071 12.7071L14.7071 18.7071L13.2929 17.2929L18.5858 12Z"})]}),"arrow-up":()=>jsxs(Fragment,{children:[jsx("path",{d:"M13 4V20H11V4H13Z"}),jsx("path",{d:"M11.2929 3.29289C11.6834 2.90237 12.3166 2.90237 12.7071 3.29289L18.7071 9.29289L17.2929 10.7071L12 5.41421L6.70712 10.7071L5.29291 9.29289L11.2929 3.29289Z"})]}),board:()=>jsx(Fragment,{children:jsx("path",{d:`M10.9,8.5c0,2.7-1.6,4.1-3.4,4.1c-1.8,0-3.3-1.4-3.3-3.9c0-2.5,1.4-4.1,3.4-4.1C9.6,4.6,10.9,6.2,10.9,8.5z M6,8.6 c0,1.5,0.5,2.6,1.5,2.6c1,0,1.5-1,1.5-2.6C9,7.2,8.6,6,7.5,6C6.5,6,6,7.2,6,8.6z M7.5,18.1l7.5-13.4h1.4L8.9,18.1H7.5z M19.8,13.9 c0,2.7-1.6,4.1-3.4,4.1c-1.8,0-3.3-1.4-3.3-3.9c0-2.5,1.4-4.1,3.4-4.1C18.6,10,19.8,11.6,19.8,13.9z M15,14c0,1.5,0.5,2.6,1.5,2.6 c1,0,1.5-1,1.5-2.6c0-1.4-0.4-2.6-1.5-2.6C15.5,11.4,15,12.6,15,14z`})}),arrow:()=>jsx(Fragment,{children:jsx("polygon",{points:"30.4,15 29.3,16.1 33,19.8 4.1,19.8 4.1,21.2 33,21.2 29.3,24.9 30.4,26 35.9,20.5 "})}),assistance:()=>jsx(Fragment,{children:jsx("path",{d:`M19.5,12c0-1.2-0.9-2.3-2.1-2.5c0-2-1.2-5.6-5.2-5.6C8.2,4,7,7.5,7,9.5c-1.4,0-2.5,1.1-2.5,2.5 @@ -4789,7 +4789,7 @@ c0.6,0,1-0.4,1-1v-0.8h4.9V16.8z M8.5,10c0-1.9,1.6-3.5,3.5-3.5s3.5,1.6,3.5,3.5v6. c0.2,0,0.4-0.1,0.5-0.2c0.1-0.1,0.2-0.3,0.2-0.5s-0.1-0.4-0.2-0.5C12.5,15.1,12.3,15,12.1,15z`})]}),infinity:()=>jsx(Fragment,{children:jsx("path",{d:`M17.6,16.8c-1.6,0-2.9-0.6-4.1-1.9l1.1-1c0.9,0.9,1.8,1.4,3,1.4c1.3,0,2.7-1.1,2.7-2.7c0-1.7-1.1-2.8-2.7-2.8 c-0.9,0-1.7,0.4-2.6,1.1l-4.6,4c-1.2,1.3-2.6,1.9-4.1,1.9c-2,0-4.1-1.7-4.1-4.2c0-2.5,1.7-4.3,4.1-4.3c1.4,0,2.8,0.6,4.1,1.9l-1,1.1 c-1-1-2-1.5-3.1-1.5c-1.6,0-2.6,1.1-2.6,2.8c0,1.6,1.4,2.7,2.6,2.7c1.1,0,2.1-0.5,3.1-1.5l4.6-4c1.1-1,2.3-1.5,3.5-1.5 - c2.4,0,4.2,1.8,4.2,4.3C21.8,15.1,19.6,16.8,17.6,16.8z`})}),code:()=>jsx(Fragment,{children:jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.4881 3.10845C14.548 2.83888 14.378 2.5718 14.1084 2.51189C13.8389 2.45199 13.5718 2.62195 13.5119 2.89152L9.51189 20.8915C9.45199 21.1611 9.62195 21.4282 9.89152 21.4881C10.1611 21.548 10.4282 21.378 10.4881 21.1084L14.4881 3.10845ZM7.70711 15.7071C7.31658 16.0976 6.68342 16.0976 6.29289 15.7071L1.29289 10.7071C0.902369 10.3166 0.902369 9.68342 1.29289 9.29289L6.29289 4.29289C6.68342 3.90237 7.31658 3.90237 7.70711 4.29289C8.09763 4.68342 8.09763 5.31658 7.70711 5.70711L3.41421 10L7.70711 14.2929C8.09763 14.6834 8.09763 15.3166 7.70711 15.7071ZM16.2929 8.29289C16.6834 7.90237 17.3166 7.90237 17.7071 8.29289L22.7071 13.2929C23.0976 13.6834 23.0976 14.3166 22.7071 14.7071L17.7071 19.7071C17.3166 20.0976 16.6834 20.0976 16.2929 19.7071C15.9024 19.3166 15.9024 18.6834 16.2929 18.2929L20.5858 14L16.2929 9.70711C15.9024 9.31658 15.9024 8.68342 16.2929 8.29289Z"})}),access:()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.40625 11.125H22.0312V13.125H8.40625V11.125Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.0156 16.125L14.0156 11.125L16.0156 11.125L16.0156 16.125L14.0156 16.125Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18.0156 16.125L18.0156 11.125L20.0156 11.125L20.0156 16.125L18.0156 16.125Z"}),jsx("circle",{cx:"5.90625",cy:"12",r:"2.6875",strokeWidth:"2"})]}),ros:()=>jsxs(Fragment,{children:[jsx("path",{}),jsx("circle",{cx:"6.4",cy:"6.4",r:"1.4"}),jsx("circle",{cx:"6.4",cy:"12",r:"1.4"}),jsx("circle",{cx:"6.4",cy:"17.6",r:"1.4"}),jsx("circle",{cx:"12",cy:"6.4",r:"1.4"}),jsx("circle",{cx:"12",cy:"12",r:"1.4"}),jsx("circle",{cx:"12",cy:"17.6",r:"1.4"}),jsx("circle",{cx:"17.6",cy:"6.4",r:"1.4"}),jsx("circle",{cx:"17.6",cy:"12",r:"1.4"}),jsx("circle",{cx:"17.6",cy:"17.6",r:"1.4"})]}),adapter:()=>jsxs(Fragment,{children:[jsx("path",{d:"M6.9375 6.03937L6.9375 5.03937L5.9375 5.03937L4.2375 5.03937C3.51953 5.03937 2.9375 5.6214 2.9375 6.33937L2.9375 17.6606C2.9375 18.3786 3.51953 18.9606 4.2375 18.9606L5.9375 18.9606L6.9375 18.9606L6.9375 17.9606L6.9375 6.03937Z",strokeWidth:"2"}),jsx("path",{d:"M16.9933 17.9606L16.9933 18.9606L17.9933 18.9606L19.6933 18.9606C20.4113 18.9606 20.9933 18.3785 20.9933 17.6606L20.9933 6.33934C20.9933 5.62137 20.4113 5.03934 19.6933 5.03934L17.9933 5.03934L16.9933 5.03934L16.9933 6.03934L16.9933 17.9606Z",strokeWidth:"2"}),jsx("path",{d:"M16.0232 14.5469L14.5352 14.5469C14.2524 14.5469 14.0232 14.3176 14.0232 14.0349L14.0232 9.96514C14.0232 9.68236 14.2524 9.45312 14.5352 9.45312L16.0232 9.45312L16.0232 14.5469Z"}),jsx("path",{d:"M7.93213 14.8647H10.4201C10.7029 14.8647 10.9321 15.094 10.9321 15.3768V19.4465C10.9321 19.7293 10.7029 19.9585 10.4201 19.9585H7.93213L7.93213 14.8647Z"}),jsx("path",{d:"M7.93213 4.05225H10.4201C10.7029 4.05225 10.9321 4.28148 10.9321 4.56426V8.63398C10.9321 8.91676 10.7029 9.146 10.4201 9.146H7.93213L7.93213 4.05225Z"})]})};function Icon(s){return jsx(SvgIcon$1,{sx:s.sx,...s,children:icons[s.name]()})}var lib$3={},uaParser_minExports={},uaParser_min={get exports(){return uaParser_minExports},set exports(s){uaParser_minExports=s}};(function(s,o){(function(et,tt){var nt="1.0.2",rt="",it="?",ot="function",st="undefined",at="object",lt="string",ut="major",dt="model",ht="name",ct="type",pt="vendor",ft="version",gt="architecture",yt="console",Ut="mobile",Ft="tablet",mt="smarttv",vt="wearable",At="embedded",Lt=255,Rt="Amazon",St="Apple",Tt="ASUS",Bt="BlackBerry",xt="Browser",Ct="Chrome",kt="Edge",Nt="Firefox",Ot="Google",Wt="Huawei",Dt="LG",Et="Microsoft",Pt="Motorola",zt="Opera",en="Samsung",Kt="Sony",nn="Xiaomi",Zt="Zebra",jt="Facebook",Vt=function(wn,Zn){var Pn={};for(var $n in wn)Zn[$n]&&Zn[$n].length%2===0?Pn[$n]=Zn[$n].concat(wn[$n]):Pn[$n]=wn[$n];return Pn},It=function(wn){for(var Zn={},Pn=0;Pn0?_r.length===2?typeof _r[1]==ot?this[_r[0]]=_r[1].call(this,Wr):this[_r[0]]=_r[1]:_r.length===3?typeof _r[1]===ot&&!(_r[1].exec&&_r[1].test)?this[_r[0]]=Wr?_r[1].call(this,Wr,_r[2]):tt:this[_r[0]]=Wr?Wr.replace(_r[1],_r[2]):tt:_r.length===4&&(this[_r[0]]=Wr?_r[3].call(this,Wr.replace(_r[1],_r[2])):tt):this[_r]=Wr||tt;Pn+=2}},dn=function(wn,Zn){for(var Pn in Zn)if(typeof Zn[Pn]===at&&Zn[Pn].length>0){for(var $n=0;$nLt?on(Tr,Lt):Tr,this},this.setUA(Pn),this};On.VERSION=nt,On.BROWSER=It([ht,ft,ut]),On.CPU=It([gt]),On.DEVICE=It([dt,pt,ct,yt,Ut,mt,Ft,vt,At]),On.ENGINE=On.OS=It([ht,ft]),s.exports&&(o=s.exports=On),o.UAParser=On;var gn=typeof et!==st&&(et.jQuery||et.Zepto);if(gn&&!gn.ua){var hn=new On;gn.ua=hn.getResult(),gn.ua.get=function(){return hn.getUA()},gn.ua.set=function(wn){hn.setUA(wn);var Zn=hn.getResult();for(var Pn in Zn)gn.ua[Pn]=Zn[Pn]}}})(typeof window=="object"?window:commonjsGlobal$1)})(uaParser_min,uaParser_minExports);Object.defineProperty(lib$3,"__esModule",{value:!0});function _interopDefault(s){return s&&typeof s=="object"&&"default"in s?s.default:s}var React=React$1,React__default=_interopDefault(React),UAParser=uaParser_minExports,ClientUAInstance=new UAParser,browser=ClientUAInstance.getBrowser(),cpu=ClientUAInstance.getCPU(),device=ClientUAInstance.getDevice(),engine=ClientUAInstance.getEngine(),os=ClientUAInstance.getOS(),ua=ClientUAInstance.getUA(),setUa=function s(o){return ClientUAInstance.setUA(o)},parseUserAgent=function s(o){if(!o){console.error("No userAgent string was provided");return}var et=new UAParser(o);return{UA:et,browser:et.getBrowser(),cpu:et.getCPU(),device:et.getDevice(),engine:et.getEngine(),os:et.getOS(),ua:et.getUA(),setUserAgent:function(tt){return et.setUA(tt)}}},UAHelper=Object.freeze({ClientUAInstance,browser,cpu,device,engine,os,ua,setUa,parseUserAgent});function ownKeys$2(s,o){var et=Object.keys(s);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(s);o&&(tt=tt.filter(function(nt){return Object.getOwnPropertyDescriptor(s,nt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread2(s){for(var o=1;o=0)&&(et[nt]=s[nt]);return et}function _objectWithoutProperties(s,o){if(s==null)return{};var et=_objectWithoutPropertiesLoose(s,o),tt,nt;if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(s);for(nt=0;nt=0)&&Object.prototype.propertyIsEnumerable.call(s,tt)&&(et[tt]=s[tt])}return et}function _assertThisInitialized(s){if(s===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s}function _possibleConstructorReturn(s,o){if(o&&(typeof o=="object"||typeof o=="function"))return o;if(o!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(s)}function _slicedToArray$2(s,o){return _arrayWithHoles$2(s)||_iterableToArrayLimit$2(s,o)||_unsupportedIterableToArray$2(s,o)||_nonIterableRest$2()}function _arrayWithHoles$2(s){if(Array.isArray(s))return s}function _iterableToArrayLimit$2(s,o){var et=s==null?null:typeof Symbol<"u"&&s[Symbol.iterator]||s["@@iterator"];if(et!=null){var tt=[],nt=!0,rt=!1,it,ot;try{for(et=et.call(s);!(nt=(it=et.next()).done)&&(tt.push(it.value),!(o&&tt.length===o));nt=!0);}catch(st){rt=!0,ot=st}finally{try{!nt&&et.return!=null&&et.return()}finally{if(rt)throw ot}}return tt}}function _unsupportedIterableToArray$2(s,o){if(s){if(typeof s=="string")return _arrayLikeToArray$2(s,o);var et=Object.prototype.toString.call(s).slice(8,-1);if(et==="Object"&&s.constructor&&(et=s.constructor.name),et==="Map"||et==="Set")return Array.from(s);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$2(s,o)}}function _arrayLikeToArray$2(s,o){(o==null||o>s.length)&&(o=s.length);for(var et=0,tt=new Array(o);etjsx(Fragment,{children:jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.4881 3.10845C14.548 2.83888 14.378 2.5718 14.1084 2.51189C13.8389 2.45199 13.5718 2.62195 13.5119 2.89152L9.51189 20.8915C9.45199 21.1611 9.62195 21.4282 9.89152 21.4881C10.1611 21.548 10.4282 21.378 10.4881 21.1084L14.4881 3.10845ZM7.70711 15.7071C7.31658 16.0976 6.68342 16.0976 6.29289 15.7071L1.29289 10.7071C0.902369 10.3166 0.902369 9.68342 1.29289 9.29289L6.29289 4.29289C6.68342 3.90237 7.31658 3.90237 7.70711 4.29289C8.09763 4.68342 8.09763 5.31658 7.70711 5.70711L3.41421 10L7.70711 14.2929C8.09763 14.6834 8.09763 15.3166 7.70711 15.7071ZM16.2929 8.29289C16.6834 7.90237 17.3166 7.90237 17.7071 8.29289L22.7071 13.2929C23.0976 13.6834 23.0976 14.3166 22.7071 14.7071L17.7071 19.7071C17.3166 20.0976 16.6834 20.0976 16.2929 19.7071C15.9024 19.3166 15.9024 18.6834 16.2929 18.2929L20.5858 14L16.2929 9.70711C15.9024 9.31658 15.9024 8.68342 16.2929 8.29289Z"})}),access:()=>jsxs(Fragment,{children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.40625 11.125H22.0312V13.125H8.40625V11.125Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.0156 16.125L14.0156 11.125L16.0156 11.125L16.0156 16.125L14.0156 16.125Z"}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18.0156 16.125L18.0156 11.125L20.0156 11.125L20.0156 16.125L18.0156 16.125Z"}),jsx("circle",{cx:"5.90625",cy:"12",r:"2.6875",strokeWidth:"2"})]}),ros:()=>jsxs(Fragment,{children:[jsx("path",{}),jsx("circle",{cx:"6.4",cy:"6.4",r:"1.4"}),jsx("circle",{cx:"6.4",cy:"12",r:"1.4"}),jsx("circle",{cx:"6.4",cy:"17.6",r:"1.4"}),jsx("circle",{cx:"12",cy:"6.4",r:"1.4"}),jsx("circle",{cx:"12",cy:"12",r:"1.4"}),jsx("circle",{cx:"12",cy:"17.6",r:"1.4"}),jsx("circle",{cx:"17.6",cy:"6.4",r:"1.4"}),jsx("circle",{cx:"17.6",cy:"12",r:"1.4"}),jsx("circle",{cx:"17.6",cy:"17.6",r:"1.4"})]}),adapter:()=>jsxs(Fragment,{children:[jsx("path",{d:"M6.9375 6.03937L6.9375 5.03937L5.9375 5.03937L4.2375 5.03937C3.51953 5.03937 2.9375 5.6214 2.9375 6.33937L2.9375 17.6606C2.9375 18.3786 3.51953 18.9606 4.2375 18.9606L5.9375 18.9606L6.9375 18.9606L6.9375 17.9606L6.9375 6.03937Z",strokeWidth:"2"}),jsx("path",{d:"M16.9933 17.9606L16.9933 18.9606L17.9933 18.9606L19.6933 18.9606C20.4113 18.9606 20.9933 18.3785 20.9933 17.6606L20.9933 6.33934C20.9933 5.62137 20.4113 5.03934 19.6933 5.03934L17.9933 5.03934L16.9933 5.03934L16.9933 6.03934L16.9933 17.9606Z",strokeWidth:"2"}),jsx("path",{d:"M16.0232 14.5469L14.5352 14.5469C14.2524 14.5469 14.0232 14.3176 14.0232 14.0349L14.0232 9.96514C14.0232 9.68236 14.2524 9.45312 14.5352 9.45312L16.0232 9.45312L16.0232 14.5469Z"}),jsx("path",{d:"M7.93213 14.8647H10.4201C10.7029 14.8647 10.9321 15.094 10.9321 15.3768V19.4465C10.9321 19.7293 10.7029 19.9585 10.4201 19.9585H7.93213L7.93213 14.8647Z"}),jsx("path",{d:"M7.93213 4.05225H10.4201C10.7029 4.05225 10.9321 4.28148 10.9321 4.56426V8.63398C10.9321 8.91676 10.7029 9.146 10.4201 9.146H7.93213L7.93213 4.05225Z"})]})};function Icon(s){return jsx(SvgIcon$1,{sx:s.sx,...s,children:icons[s.name]()})}var lib$3={},uaParser_minExports={},uaParser_min={get exports(){return uaParser_minExports},set exports(s){uaParser_minExports=s}};(function(s,o){(function(et,tt){var nt="1.0.2",rt="",it="?",ot="function",st="undefined",at="object",lt="string",ut="major",dt="model",ht="name",ct="type",pt="vendor",ft="version",gt="architecture",yt="console",Ut="mobile",Ft="tablet",mt="smarttv",vt="wearable",At="embedded",Lt=255,Rt="Amazon",St="Apple",Tt="ASUS",Bt="BlackBerry",xt="Browser",Ct="Chrome",kt="Edge",Nt="Firefox",Ot="Google",Jt="Huawei",Dt="LG",Et="Microsoft",Pt="Motorola",zt="Opera",en="Samsung",Kt="Sony",nn="Xiaomi",Zt="Zebra",jt="Facebook",Vt=function(wn,Zn){var Pn={};for(var $n in wn)Zn[$n]&&Zn[$n].length%2===0?Pn[$n]=Zn[$n].concat(wn[$n]):Pn[$n]=wn[$n];return Pn},It=function(wn){for(var Zn={},Pn=0;Pn0?_r.length===2?typeof _r[1]==ot?this[_r[0]]=_r[1].call(this,Jr):this[_r[0]]=_r[1]:_r.length===3?typeof _r[1]===ot&&!(_r[1].exec&&_r[1].test)?this[_r[0]]=Jr?_r[1].call(this,Jr,_r[2]):tt:this[_r[0]]=Jr?Jr.replace(_r[1],_r[2]):tt:_r.length===4&&(this[_r[0]]=Jr?_r[3].call(this,Jr.replace(_r[1],_r[2])):tt):this[_r]=Jr||tt;Pn+=2}},dn=function(wn,Zn){for(var Pn in Zn)if(typeof Zn[Pn]===at&&Zn[Pn].length>0){for(var $n=0;$nLt?on(Tr,Lt):Tr,this},this.setUA(Pn),this};On.VERSION=nt,On.BROWSER=It([ht,ft,ut]),On.CPU=It([gt]),On.DEVICE=It([dt,pt,ct,yt,Ut,mt,Ft,vt,At]),On.ENGINE=On.OS=It([ht,ft]),s.exports&&(o=s.exports=On),o.UAParser=On;var gn=typeof et!==st&&(et.jQuery||et.Zepto);if(gn&&!gn.ua){var hn=new On;gn.ua=hn.getResult(),gn.ua.get=function(){return hn.getUA()},gn.ua.set=function(wn){hn.setUA(wn);var Zn=hn.getResult();for(var Pn in Zn)gn.ua[Pn]=Zn[Pn]}}})(typeof window=="object"?window:commonjsGlobal$1)})(uaParser_min,uaParser_minExports);Object.defineProperty(lib$3,"__esModule",{value:!0});function _interopDefault(s){return s&&typeof s=="object"&&"default"in s?s.default:s}var React=React$1,React__default=_interopDefault(React),UAParser=uaParser_minExports,ClientUAInstance=new UAParser,browser=ClientUAInstance.getBrowser(),cpu=ClientUAInstance.getCPU(),device=ClientUAInstance.getDevice(),engine=ClientUAInstance.getEngine(),os=ClientUAInstance.getOS(),ua=ClientUAInstance.getUA(),setUa=function s(o){return ClientUAInstance.setUA(o)},parseUserAgent=function s(o){if(!o){console.error("No userAgent string was provided");return}var et=new UAParser(o);return{UA:et,browser:et.getBrowser(),cpu:et.getCPU(),device:et.getDevice(),engine:et.getEngine(),os:et.getOS(),ua:et.getUA(),setUserAgent:function(tt){return et.setUA(tt)}}},UAHelper=Object.freeze({ClientUAInstance,browser,cpu,device,engine,os,ua,setUa,parseUserAgent});function ownKeys$2(s,o){var et=Object.keys(s);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(s);o&&(tt=tt.filter(function(nt){return Object.getOwnPropertyDescriptor(s,nt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread2(s){for(var o=1;o=0)&&(et[nt]=s[nt]);return et}function _objectWithoutProperties(s,o){if(s==null)return{};var et=_objectWithoutPropertiesLoose(s,o),tt,nt;if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(s);for(nt=0;nt=0)&&Object.prototype.propertyIsEnumerable.call(s,tt)&&(et[tt]=s[tt])}return et}function _assertThisInitialized(s){if(s===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return s}function _possibleConstructorReturn(s,o){if(o&&(typeof o=="object"||typeof o=="function"))return o;if(o!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(s)}function _slicedToArray$2(s,o){return _arrayWithHoles$2(s)||_iterableToArrayLimit$2(s,o)||_unsupportedIterableToArray$2(s,o)||_nonIterableRest$2()}function _arrayWithHoles$2(s){if(Array.isArray(s))return s}function _iterableToArrayLimit$2(s,o){var et=s==null?null:typeof Symbol<"u"&&s[Symbol.iterator]||s["@@iterator"];if(et!=null){var tt=[],nt=!0,rt=!1,it,ot;try{for(et=et.call(s);!(nt=(it=et.next()).done)&&(tt.push(it.value),!(o&&tt.length===o));nt=!0);}catch(st){rt=!0,ot=st}finally{try{!nt&&et.return!=null&&et.return()}finally{if(rt)throw ot}}return tt}}function _unsupportedIterableToArray$2(s,o){if(s){if(typeof s=="string")return _arrayLikeToArray$2(s,o);var et=Object.prototype.toString.call(s).slice(8,-1);if(et==="Object"&&s.constructor&&(et=s.constructor.name),et==="Map"||et==="Set")return Array.from(s);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$2(s,o)}}function _arrayLikeToArray$2(s,o){(o==null||o>s.length)&&(o=s.length);for(var et=0,tt=new Array(o);et1&&arguments[1]!==void 0?arguments[1]:"none";return o||et},getNavigatorInstance=function s(){return typeof window<"u"&&(window.navigator||navigator)?window.navigator||navigator:!1},isIOS13Check=function s(o){var et=getNavigatorInstance();return et&&et.platform&&(et.platform.indexOf(o)!==-1||et.platform==="MacIntel"&&et.maxTouchPoints>1&&!window.MSStream)},browserPayload=function s(o,et,tt,nt,rt){return{isBrowser:o,browserMajorVersion:setDefaults(et.major),browserFullVersion:setDefaults(et.version),browserName:setDefaults(et.name),engineName:setDefaults(tt.name),engineVersion:setDefaults(tt.version),osName:setDefaults(nt.name),osVersion:setDefaults(nt.version),userAgent:setDefaults(rt)}},mobilePayload=function s(o,et,tt,nt){return _objectSpread2({},o,{vendor:setDefaults(et.vendor),model:setDefaults(et.model),os:setDefaults(tt.name),osVersion:setDefaults(tt.version),ua:setDefaults(nt)})},smartTvPayload=function s(o,et,tt,nt){return{isSmartTV:o,engineName:setDefaults(et.name),engineVersion:setDefaults(et.version),osName:setDefaults(tt.name),osVersion:setDefaults(tt.version),userAgent:setDefaults(nt)}},consolePayload=function s(o,et,tt,nt){return{isConsole:o,engineName:setDefaults(et.name),engineVersion:setDefaults(et.version),osName:setDefaults(tt.name),osVersion:setDefaults(tt.version),userAgent:setDefaults(nt)}},wearablePayload=function s(o,et,tt,nt){return{isWearable:o,engineName:setDefaults(et.name),engineVersion:setDefaults(et.version),osName:setDefaults(tt.name),osVersion:setDefaults(tt.version),userAgent:setDefaults(nt)}},embeddedPayload=function s(o,et,tt,nt,rt){return{isEmbedded:o,vendor:setDefaults(et.vendor),model:setDefaults(et.model),engineName:setDefaults(tt.name),engineVersion:setDefaults(tt.version),osName:setDefaults(nt.name),osVersion:setDefaults(nt.version),userAgent:setDefaults(rt)}};function deviceDetect(s){var o=s?parseUserAgent(s):UAHelper,et=o.device,tt=o.browser,nt=o.engine,rt=o.os,it=o.ua,ot=checkDeviceType(et.type),st=ot.isBrowser,at=ot.isMobile,lt=ot.isTablet,ut=ot.isSmartTV,dt=ot.isConsole,ht=ot.isWearable,ct=ot.isEmbedded;if(st)return browserPayload(st,tt,nt,rt,it);if(ut)return smartTvPayload(ut,nt,rt,it);if(dt)return consolePayload(dt,nt,rt,it);if(at||lt)return mobilePayload(ot,et,rt,it);if(ht)return wearablePayload(ht,nt,rt,it);if(ct)return embeddedPayload(ct,et,nt,rt,it)}var isMobileType=function s(o){var et=o.type;return et===DeviceTypes.Mobile},isTabletType=function s(o){var et=o.type;return et===DeviceTypes.Tablet},isMobileAndTabletType=function s(o){var et=o.type;return et===DeviceTypes.Mobile||et===DeviceTypes.Tablet},isSmartTVType=function s(o){var et=o.type;return et===DeviceTypes.SmartTv},isBrowserType=function s(o){var et=o.type;return et===DeviceTypes.Browser},isWearableType=function s(o){var et=o.type;return et===DeviceTypes.Wearable},isConsoleType=function s(o){var et=o.type;return et===DeviceTypes.Console},isEmbeddedType=function s(o){var et=o.type;return et===DeviceTypes.Embedded},getMobileVendor=function s(o){var et=o.vendor;return setDefaults(et)},getMobileModel=function s(o){var et=o.model;return setDefaults(et)},getDeviceType=function s(o){var et=o.type;return setDefaults(et,"browser")},isAndroidType=function s(o){var et=o.name;return et===OsTypes.Android},isWindowsType=function s(o){var et=o.name;return et===OsTypes.Windows},isMacOsType=function s(o){var et=o.name;return et===OsTypes.MAC_OS},isWinPhoneType=function s(o){var et=o.name;return et===OsTypes.WindowsPhone},isIOSType=function s(o){var et=o.name;return et===OsTypes.IOS},getOsVersion=function s(o){var et=o.version;return setDefaults(et)},getOsName=function s(o){var et=o.name;return setDefaults(et)},isChromeType=function s(o){var et=o.name;return et===BrowserTypes.Chrome},isFirefoxType=function s(o){var et=o.name;return et===BrowserTypes.Firefox},isChromiumType=function s(o){var et=o.name;return et===BrowserTypes.Chromium},isEdgeType=function s(o){var et=o.name;return et===BrowserTypes.Edge},isYandexType=function s(o){var et=o.name;return et===BrowserTypes.Yandex},isSafariType=function s(o){var et=o.name;return et===BrowserTypes.Safari||et===BrowserTypes.MobileSafari},isMobileSafariType=function s(o){var et=o.name;return et===BrowserTypes.MobileSafari},isOperaType=function s(o){var et=o.name;return et===BrowserTypes.Opera},isIEType=function s(o){var et=o.name;return et===BrowserTypes.InternetExplorer||et===BrowserTypes.Ie},isMIUIType=function s(o){var et=o.name;return et===BrowserTypes.MIUI},isSamsungBrowserType=function s(o){var et=o.name;return et===BrowserTypes.SamsungBrowser},getBrowserFullVersion=function s(o){var et=o.version;return setDefaults(et)},getBrowserVersion=function s(o){var et=o.major;return setDefaults(et)},getBrowserName=function s(o){var et=o.name;return setDefaults(et)},getEngineName=function s(o){var et=o.name;return setDefaults(et)},getEngineVersion=function s(o){var et=o.version;return setDefaults(et)},isElectronType=function s(){var o=getNavigatorInstance(),et=o&&o.userAgent&&o.userAgent.toLowerCase();return typeof et=="string"?/electron/.test(et):!1},isEdgeChromiumType=function s(o){return typeof o=="string"&&o.indexOf("Edg/")!==-1},getIOS13=function s(){var o=getNavigatorInstance();return o&&(/iPad|iPhone|iPod/.test(o.platform)||o.platform==="MacIntel"&&o.maxTouchPoints>1)&&!window.MSStream},getIPad13=function s(){return isIOS13Check("iPad")},getIphone13=function s(){return isIOS13Check("iPhone")},getIPod13=function s(){return isIOS13Check("iPod")},getUseragent=function s(o){return setDefaults(o)};function buildSelectorsObject(s){var o=s||UAHelper,et=o.device,tt=o.browser,nt=o.os,rt=o.engine,it=o.ua;return{isSmartTV:isSmartTVType(et),isConsole:isConsoleType(et),isWearable:isWearableType(et),isEmbedded:isEmbeddedType(et),isMobileSafari:isMobileSafariType(tt)||getIPad13(),isChromium:isChromiumType(tt),isMobile:isMobileAndTabletType(et)||getIPad13(),isMobileOnly:isMobileType(et),isTablet:isTabletType(et)||getIPad13(),isBrowser:isBrowserType(et),isDesktop:isBrowserType(et),isAndroid:isAndroidType(nt),isWinPhone:isWinPhoneType(nt),isIOS:isIOSType(nt)||getIPad13(),isChrome:isChromeType(tt),isFirefox:isFirefoxType(tt),isSafari:isSafariType(tt),isOpera:isOperaType(tt),isIE:isIEType(tt),osVersion:getOsVersion(nt),osName:getOsName(nt),fullBrowserVersion:getBrowserFullVersion(tt),browserVersion:getBrowserVersion(tt),browserName:getBrowserName(tt),mobileVendor:getMobileVendor(et),mobileModel:getMobileModel(et),engineName:getEngineName(rt),engineVersion:getEngineVersion(rt),getUA:getUseragent(it),isEdge:isEdgeType(tt)||isEdgeChromiumType(it),isYandex:isYandexType(tt),deviceType:getDeviceType(et),isIOS13:getIOS13(),isIPad13:getIPad13(),isIPhone13:getIphone13(),isIPod13:getIPod13(),isElectron:isElectronType(),isEdgeChromium:isEdgeChromiumType(it),isLegacyEdge:isEdgeType(tt)&&!isEdgeChromiumType(it),isWindows:isWindowsType(nt),isMacOs:isMacOsType(nt),isMIUI:isMIUIType(tt),isSamsungBrowser:isSamsungBrowserType(tt)}}var isSmartTV=isSmartTVType(device),isConsole=isConsoleType(device),isWearable=isWearableType(device),isEmbedded=isEmbeddedType(device),isMobileSafari=isMobileSafariType(browser)||getIPad13(),isChromium=isChromiumType(browser),isMobile=isMobileAndTabletType(device)||getIPad13(),isMobileOnly=isMobileType(device),isTablet=isTabletType(device)||getIPad13(),isBrowser=isBrowserType(device),isDesktop=isBrowserType(device),isAndroid=isAndroidType(os),isWinPhone=isWinPhoneType(os),isIOS=isIOSType(os)||getIPad13(),isChrome=isChromeType(browser),isFirefox=isFirefoxType(browser),isSafari=isSafariType(browser),isOpera=isOperaType(browser),isIE=isIEType(browser),osVersion=getOsVersion(os),osName=getOsName(os),fullBrowserVersion=getBrowserFullVersion(browser),browserVersion=getBrowserVersion(browser),browserName=getBrowserName(browser),mobileVendor=getMobileVendor(device),mobileModel=getMobileModel(device),engineName=getEngineName(engine),engineVersion=getEngineVersion(engine),getUA=getUseragent(ua),isEdge=isEdgeType(browser)||isEdgeChromiumType(ua),isYandex=isYandexType(browser),deviceType=getDeviceType(device),isIOS13=getIOS13(),isIPad13=getIPad13(),isIPhone13=getIphone13(),isIPod13=getIPod13(),isElectron=isElectronType(),isEdgeChromium=isEdgeChromiumType(ua),isLegacyEdge=isEdgeType(browser)&&!isEdgeChromiumType(ua),isWindows=isWindowsType(os),isMacOs=isMacOsType(os),isMIUI=isMIUIType(browser),isSamsungBrowser=isSamsungBrowserType(browser),getSelectorsByUserAgent=function s(o){if(!o||typeof o!="string"){console.error("No valid user agent string was provided");return}var et=parseUserAgent(o),tt=et.device,nt=et.browser,rt=et.os,it=et.engine,ot=et.ua;return buildSelectorsObject({device:tt,browser:nt,os:rt,engine:it,ua:ot})},AndroidView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isAndroid?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},BrowserView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isBrowser?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},IEView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isIE?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},IOSView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isIOS?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},MobileView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isMobile?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},TabletView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isTablet?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},WinPhoneView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isWinPhone?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},MobileOnlyView=function s(o){var et=o.renderWithFragment,tt=o.children;o.viewClassName,o.style;var nt=_objectWithoutProperties(o,["renderWithFragment","children","viewClassName","style"]);return isMobileOnly?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},SmartTVView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isSmartTV?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},ConsoleView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isConsole?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},WearableView=function s(o){var et=o.renderWithFragment,tt=o.children,nt=_objectWithoutProperties(o,["renderWithFragment","children"]);return isWearable?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",nt,tt):null},CustomView=function s(o){var et=o.renderWithFragment,tt=o.children;o.viewClassName,o.style;var nt=o.condition,rt=_objectWithoutProperties(o,["renderWithFragment","children","viewClassName","style","condition"]);return nt?et?React__default.createElement(React.Fragment,null,tt):React__default.createElement("div",rt,tt):null};function withOrientationChange(s){return function(o){_inherits(et,o);function et(tt){var nt;return _classCallCheck(this,et),nt=_possibleConstructorReturn(this,_getPrototypeOf(et).call(this,tt)),nt.isEventListenerAdded=!1,nt.handleOrientationChange=nt.handleOrientationChange.bind(_assertThisInitialized(nt)),nt.onOrientationChange=nt.onOrientationChange.bind(_assertThisInitialized(nt)),nt.onPageLoad=nt.onPageLoad.bind(_assertThisInitialized(nt)),nt.state={isLandscape:!1,isPortrait:!1},nt}return _createClass(et,[{key:"handleOrientationChange",value:function(){this.isEventListenerAdded||(this.isEventListenerAdded=!0);var tt=window.innerWidth>window.innerHeight?90:0;this.setState({isPortrait:tt===0,isLandscape:tt===90})}},{key:"onOrientationChange",value:function(){this.handleOrientationChange()}},{key:"onPageLoad",value:function(){this.handleOrientationChange()}},{key:"componentDidMount",value:function(){(typeof window>"u"?"undefined":_typeof$2(window))!==void 0&&isMobile&&(this.isEventListenerAdded?window.removeEventListener("load",this.onPageLoad,!1):(this.handleOrientationChange(),window.addEventListener("load",this.onPageLoad,!1)),window.addEventListener("resize",this.onOrientationChange,!1))}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.onOrientationChange,!1)}},{key:"render",value:function(){return React__default.createElement(s,_extends({},this.props,{isLandscape:this.state.isLandscape,isPortrait:this.state.isPortrait}))}}]),et}(React__default.Component)}function useMobileOrientation(){var s=React.useState(function(){var rt=window.innerWidth>window.innerHeight?90:0;return{isPortrait:rt===0,isLandscape:rt===90,orientation:rt===0?"portrait":"landscape"}}),o=_slicedToArray$2(s,2),et=o[0],tt=o[1],nt=React.useCallback(function(){var rt=window.innerWidth>window.innerHeight?90:0,it={isPortrait:rt===0,isLandscape:rt===90,orientation:rt===0?"portrait":"landscape"};et.orientation!==it.orientation&&tt(it)},[et.orientation]);return React.useEffect(function(){return(typeof window>"u"?"undefined":_typeof$2(window))!==void 0&&isMobile&&(nt(),window.addEventListener("load",nt,!1),window.addEventListener("resize",nt,!1)),function(){window.removeEventListener("resize",nt,!1),window.removeEventListener("load",nt,!1)}},[nt]),et}function useDeviceData(s){var o=s||window.navigator.userAgent;return parseUserAgent(o)}function useDeviceSelectors(s){var o=s||window.navigator.userAgent,et=useDeviceData(o),tt=buildSelectorsObject(et);return[tt,et]}lib$3.AndroidView=AndroidView;lib$3.BrowserTypes=BrowserTypes;lib$3.BrowserView=BrowserView;lib$3.ConsoleView=ConsoleView;lib$3.CustomView=CustomView;lib$3.IEView=IEView;lib$3.IOSView=IOSView;lib$3.MobileOnlyView=MobileOnlyView;lib$3.MobileView=MobileView;lib$3.OsTypes=OsTypes;lib$3.SmartTVView=SmartTVView;lib$3.TabletView=TabletView;lib$3.WearableView=WearableView;lib$3.WinPhoneView=WinPhoneView;lib$3.browserName=browserName;lib$3.browserVersion=browserVersion;lib$3.deviceDetect=deviceDetect;lib$3.deviceType=deviceType;lib$3.engineName=engineName;lib$3.engineVersion=engineVersion;lib$3.fullBrowserVersion=fullBrowserVersion;lib$3.getSelectorsByUserAgent=getSelectorsByUserAgent;lib$3.getUA=getUA;lib$3.isAndroid=isAndroid;lib$3.isBrowser=isBrowser;lib$3.isChrome=isChrome;lib$3.isChromium=isChromium;lib$3.isConsole=isConsole;lib$3.isDesktop=isDesktop;lib$3.isEdge=isEdge;lib$3.isEdgeChromium=isEdgeChromium;lib$3.isElectron=isElectron;lib$3.isEmbedded=isEmbedded;lib$3.isFirefox=isFirefox;lib$3.isIE=isIE;lib$3.isIOS=isIOS;lib$3.isIOS13=isIOS13;lib$3.isIPad13=isIPad13;lib$3.isIPhone13=isIPhone13;lib$3.isIPod13=isIPod13;lib$3.isLegacyEdge=isLegacyEdge;lib$3.isMIUI=isMIUI;lib$3.isMacOs=isMacOs;lib$3.isMobile=isMobile;lib$3.isMobileOnly=isMobileOnly;lib$3.isMobileSafari=isMobileSafari;lib$3.isOpera=isOpera;lib$3.isSafari=isSafari;lib$3.isSamsungBrowser=isSamsungBrowser;lib$3.isSmartTV=isSmartTV;lib$3.isTablet=isTablet;lib$3.isWearable=isWearable;lib$3.isWinPhone=isWinPhone;lib$3.isWindows=isWindows;lib$3.isYandex=isYandex;lib$3.mobileModel=mobileModel;lib$3.mobileVendor=mobileVendor;lib$3.osName=osName;lib$3.osVersion=osVersion;lib$3.parseUserAgent=parseUserAgent;lib$3.setUserAgent=setUserAgent;lib$3.useDeviceData=useDeviceData;lib$3.useDeviceSelectors=useDeviceSelectors;lib$3.useMobileOrientation=useMobileOrientation;lib$3.withOrientationChange=withOrientationChange;/*! * @kurkle/color v0.3.2 * https://github.com/kurkle/color#readme @@ -4805,7 +4805,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho * https://www.chartjs.org * (c) 2023 Chart.js Contributors * Released under the MIT License - */class Animator{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(o,et,tt,nt){const rt=et.listeners[nt],it=et.duration;rt.forEach(ot=>ot({chart:o,initial:et.initial,numSteps:it,currentStep:Math.min(tt-et.start,it)}))}_refresh(){this._request||(this._running=!0,this._request=requestAnimFrame.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(o=Date.now()){let et=0;this._charts.forEach((tt,nt)=>{if(!tt.running||!tt.items.length)return;const rt=tt.items;let it=rt.length-1,ot=!1,st;for(;it>=0;--it)st=rt[it],st._active?(st._total>tt.duration&&(tt.duration=st._total),st.tick(o),ot=!0):(rt[it]=rt[rt.length-1],rt.pop());ot&&(nt.draw(),this._notify(nt,tt,o,"progress")),rt.length||(tt.running=!1,this._notify(nt,tt,o,"complete"),tt.initial=!1),et+=rt.length}),this._lastDate=o,et===0&&(this._running=!1)}_getAnims(o){const et=this._charts;let tt=et.get(o);return tt||(tt={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},et.set(o,tt)),tt}listen(o,et,tt){this._getAnims(o).listeners[et].push(tt)}add(o,et){!et||!et.length||this._getAnims(o).items.push(...et)}has(o){return this._getAnims(o).items.length>0}start(o){const et=this._charts.get(o);et&&(et.running=!0,et.start=Date.now(),et.duration=et.items.reduce((tt,nt)=>Math.max(tt,nt._duration),0),this._refresh())}running(o){if(!this._running)return!1;const et=this._charts.get(o);return!(!et||!et.running||!et.items.length)}stop(o){const et=this._charts.get(o);if(!et||!et.items.length)return;const tt=et.items;let nt=tt.length-1;for(;nt>=0;--nt)tt[nt].cancel();et.items=[],this._notify(o,et,Date.now(),"complete")}remove(o){return this._charts.delete(o)}}var animator=new Animator;const transparent="transparent",interpolators={boolean(s,o,et){return et>.5?o:s},color(s,o,et){const tt=color(s||transparent),nt=tt.valid&&color(o||transparent);return nt&&nt.valid?nt.mix(tt,et).hexString():o},number(s,o,et){return s+(o-s)*et}};class Animation{constructor(o,et,tt,nt){const rt=et[tt];nt=resolve([o.to,nt,rt,o.from]);const it=resolve([o.from,rt,nt]);this._active=!0,this._fn=o.fn||interpolators[o.type||typeof it],this._easing=effects[o.easing]||effects.linear,this._start=Math.floor(Date.now()+(o.delay||0)),this._duration=this._total=Math.floor(o.duration),this._loop=!!o.loop,this._target=et,this._prop=tt,this._from=it,this._to=nt,this._promises=void 0}active(){return this._active}update(o,et,tt){if(this._active){this._notify(!1);const nt=this._target[this._prop],rt=tt-this._start,it=this._duration-rt;this._start=tt,this._duration=Math.floor(Math.max(it,o.duration)),this._total+=rt,this._loop=!!o.loop,this._to=resolve([o.to,et,nt,o.from]),this._from=resolve([o.from,nt,et])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(o){const et=o-this._start,tt=this._duration,nt=this._prop,rt=this._from,it=this._loop,ot=this._to;let st;if(this._active=rt!==ot&&(it||et1?2-st:st,st=this._easing(Math.min(1,Math.max(0,st))),this._target[nt]=this._fn(rt,ot,st)}wait(){const o=this._promises||(this._promises=[]);return new Promise((et,tt)=>{o.push({res:et,rej:tt})})}_notify(o){const et=o?"res":"rej",tt=this._promises||[];for(let nt=0;nt{const rt=o[nt];if(!isObject$2(rt))return;const it={};for(const ot of et)it[ot]=rt[ot];(isArray$4(rt.properties)&&rt.properties||[nt]).forEach(ot=>{(ot===nt||!tt.has(ot))&&tt.set(ot,it)})})}_animateOptions(o,et){const tt=et.options,nt=resolveTargetOptions(o,tt);if(!nt)return[];const rt=this._createAnimations(nt,tt);return tt.$shared&&awaitAll(o.options.$animations,tt).then(()=>{o.options=tt},()=>{}),rt}_createAnimations(o,et){const tt=this._properties,nt=[],rt=o.$animations||(o.$animations={}),it=Object.keys(et),ot=Date.now();let st;for(st=it.length-1;st>=0;--st){const at=it[st];if(at.charAt(0)==="$")continue;if(at==="options"){nt.push(...this._animateOptions(o,et));continue}const lt=et[at];let ut=rt[at];const dt=tt.get(at);if(ut)if(dt&&ut.active()){ut.update(dt,lt,ot);continue}else ut.cancel();if(!dt||!dt.duration){o[at]=lt;continue}rt[at]=ut=new Animation(dt,o,at,lt),nt.push(ut)}return nt}update(o,et){if(this._properties.size===0){Object.assign(o,et);return}const tt=this._createAnimations(o,et);if(tt.length)return animator.add(this._chart,tt),!0}}function awaitAll(s,o){const et=[],tt=Object.keys(o);for(let nt=0;nt0||!et&&rt<0)return nt.index}return null}function updateStacks(s,o){const{chart:et,_cachedMeta:tt}=s,nt=et._stacks||(et._stacks={}),{iScale:rt,vScale:it,index:ot}=tt,st=rt.axis,at=it.axis,lt=getStackKey(rt,it,tt),ut=o.length;let dt;for(let ht=0;htet[tt].axis===o).shift()}function createDatasetContext(s,o){return createContext(s,{active:!1,dataset:void 0,datasetIndex:o,index:o,mode:"default",type:"dataset"})}function createDataContext(s,o,et){return createContext(s,{active:!1,dataIndex:o,parsed:void 0,raw:void 0,element:et,index:o,mode:"default",type:"data"})}function clearStacks(s,o){const et=s.controller.index,tt=s.vScale&&s.vScale.axis;if(tt){o=o||s._parsed;for(const nt of o){const rt=nt._stacks;if(!rt||rt[tt]===void 0||rt[tt][et]===void 0)return;delete rt[tt][et],rt[tt]._visualValues!==void 0&&rt[tt]._visualValues[et]!==void 0&&delete rt[tt]._visualValues[et]}}}const isDirectUpdateMode=s=>s==="reset"||s==="none",cloneIfNotShared=(s,o)=>o?s:Object.assign({},s),createStack=(s,o,et)=>s&&!o.hidden&&o._stacked&&{keys:getSortedDatasetIndices(et,!0),values:null};class DatasetController{constructor(o,et){this.chart=o,this._ctx=o.ctx,this.index=et,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const o=this._cachedMeta;this.configure(),this.linkScales(),o._stacked=isStacked(o.vScale,o),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(o){this.index!==o&&clearStacks(this._cachedMeta),this.index=o}linkScales(){const o=this.chart,et=this._cachedMeta,tt=this.getDataset(),nt=(ut,dt,ht,ct)=>ut==="x"?dt:ut==="r"?ct:ht,rt=et.xAxisID=valueOrDefault(tt.xAxisID,getFirstScaleId(o,"x")),it=et.yAxisID=valueOrDefault(tt.yAxisID,getFirstScaleId(o,"y")),ot=et.rAxisID=valueOrDefault(tt.rAxisID,getFirstScaleId(o,"r")),st=et.indexAxis,at=et.iAxisID=nt(st,rt,it,ot),lt=et.vAxisID=nt(st,it,rt,ot);et.xScale=this.getScaleForId(rt),et.yScale=this.getScaleForId(it),et.rScale=this.getScaleForId(ot),et.iScale=this.getScaleForId(at),et.vScale=this.getScaleForId(lt)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(o){return this.chart.scales[o]}_getOtherScale(o){const et=this._cachedMeta;return o===et.iScale?et.vScale:et.iScale}reset(){this._update("reset")}_destroy(){const o=this._cachedMeta;this._data&&unlistenArrayEvents(this._data,this),o._stacked&&clearStacks(o)}_dataCheck(){const o=this.getDataset(),et=o.data||(o.data=[]),tt=this._data;if(isObject$2(et))this._data=convertObjectDataToArray(et);else if(tt!==et){if(tt){unlistenArrayEvents(tt,this);const nt=this._cachedMeta;clearStacks(nt),nt._parsed=[]}et&&Object.isExtensible(et)&&listenArrayEvents(et,this),this._syncList=[],this._data=et}}addElements(){const o=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(o.dataset=new this.datasetElementType)}buildOrUpdateElements(o){const et=this._cachedMeta,tt=this.getDataset();let nt=!1;this._dataCheck();const rt=et._stacked;et._stacked=isStacked(et.vScale,et),et.stack!==tt.stack&&(nt=!0,clearStacks(et),et.stack=tt.stack),this._resyncElements(o),(nt||rt!==et._stacked)&&updateStacks(this,et._parsed)}configure(){const o=this.chart.config,et=o.datasetScopeKeys(this._type),tt=o.getOptionScopes(this.getDataset(),et,!0);this.options=o.createResolver(tt,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(o,et){const{_cachedMeta:tt,_data:nt}=this,{iScale:rt,_stacked:it}=tt,ot=rt.axis;let st=o===0&&et===nt.length?!0:tt._sorted,at=o>0&&tt._parsed[o-1],lt,ut,dt;if(this._parsing===!1)tt._parsed=nt,tt._sorted=!0,dt=nt;else{isArray$4(nt[o])?dt=this.parseArrayData(tt,nt,o,et):isObject$2(nt[o])?dt=this.parseObjectData(tt,nt,o,et):dt=this.parsePrimitiveData(tt,nt,o,et);const ht=()=>ut[ot]===null||at&&ut[ot]pt||ut=0;--dt)if(!ct()){this.updateRangeFromParsed(at,o,ht,st);break}}return at}getAllParsedValues(o){const et=this._cachedMeta._parsed,tt=[];let nt,rt,it;for(nt=0,rt=et.length;nt=0&&othis.getContext(tt,nt,et),pt=at.resolveNamedOptions(dt,ht,ct,ut);return pt.$shared&&(pt.$shared=st,rt[it]=Object.freeze(cloneIfNotShared(pt,st))),pt}_resolveAnimations(o,et,tt){const nt=this.chart,rt=this._cachedDataOpts,it=`animation-${et}`,ot=rt[it];if(ot)return ot;let st;if(nt.options.animation!==!1){const lt=this.chart.config,ut=lt.datasetAnimationScopeKeys(this._type,et),dt=lt.getOptionScopes(this.getDataset(),ut);st=lt.createResolver(dt,this.getContext(o,tt,et))}const at=new Animations(nt,st&&st.animations);return st&&st._cacheable&&(rt[it]=Object.freeze(at)),at}getSharedOptions(o){if(o.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},o))}includeOptions(o,et){return!et||isDirectUpdateMode(o)||this.chart._animationsDisabled}_getSharedOptions(o,et){const tt=this.resolveDataElementOptions(o,et),nt=this._sharedOptions,rt=this.getSharedOptions(tt),it=this.includeOptions(et,rt)||rt!==nt;return this.updateSharedOptions(rt,et,tt),{sharedOptions:rt,includeOptions:it}}updateElement(o,et,tt,nt){isDirectUpdateMode(nt)?Object.assign(o,tt):this._resolveAnimations(et,nt).update(o,tt)}updateSharedOptions(o,et,tt){o&&!isDirectUpdateMode(et)&&this._resolveAnimations(void 0,et).update(o,tt)}_setStyle(o,et,tt,nt){o.active=nt;const rt=this.getStyle(et,nt);this._resolveAnimations(et,tt,nt).update(o,{options:!nt&&this.getSharedOptions(rt)||rt})}removeHoverStyle(o,et,tt){this._setStyle(o,tt,"active",!1)}setHoverStyle(o,et,tt){this._setStyle(o,tt,"active",!0)}_removeDatasetHoverStyle(){const o=this._cachedMeta.dataset;o&&this._setStyle(o,void 0,"active",!1)}_setDatasetHoverStyle(){const o=this._cachedMeta.dataset;o&&this._setStyle(o,void 0,"active",!0)}_resyncElements(o){const et=this._data,tt=this._cachedMeta.data;for(const[ot,st,at]of this._syncList)this[ot](st,at);this._syncList=[];const nt=tt.length,rt=et.length,it=Math.min(rt,nt);it&&this.parse(0,it),rt>nt?this._insertElements(nt,rt-nt,o):rt{for(at.length+=et,ot=at.length-1;ot>=it;ot--)at[ot]=at[ot-et]};for(st(rt),ot=o;otnt-rt))}return s._cache.$bar}function computeMinSampleSize(s){const o=s.iScale,et=getAllScaleValues(o,s.type);let tt=o._length,nt,rt,it,ot;const st=()=>{it===32767||it===-32768||(defined$3(ot)&&(tt=Math.min(tt,Math.abs(it-ot)||tt)),ot=it)};for(nt=0,rt=et.length;nt0?nt[s-1]:null,ot=sMath.abs(ot)&&(st=ot,at=it),o[et.axis]=at,o._custom={barStart:st,barEnd:at,start:nt,end:rt,min:it,max:ot}}function parseValue(s,o,et,tt){return isArray$4(s)?parseFloatBar(s,o,et,tt):o[et.axis]=et.parse(s,tt),o}function parseArrayOrPrimitive(s,o,et,tt){const nt=s.iScale,rt=s.vScale,it=nt.getLabels(),ot=nt===rt,st=[];let at,lt,ut,dt;for(at=et,lt=et+tt;at=et?1:-1)}function borderProps(s){let o,et,tt,nt,rt;return s.horizontal?(o=s.base>s.x,et="left",tt="right"):(o=s.basest.controller.options.grouped),rt=tt.options.stacked,it=[],ot=st=>{const at=st.controller.getParsed(et),lt=at&&at[st.vScale.axis];if(isNullOrUndef(lt)||isNaN(lt))return!0};for(const st of nt)if(!(et!==void 0&&ot(st))&&((rt===!1||it.indexOf(st.stack)===-1||rt===void 0&&st.stack===void 0)&&it.push(st.stack),st.index===o))break;return it.length||it.push(void 0),it}_getStackCount(o){return this._getStacks(void 0,o).length}_getStackIndex(o,et,tt){const nt=this._getStacks(o,tt),rt=et!==void 0?nt.indexOf(et):-1;return rt===-1?nt.length-1:rt}_getRuler(){const o=this.options,et=this._cachedMeta,tt=et.iScale,nt=[];let rt,it;for(rt=0,it=et.data.length;rt=0;--tt)et=Math.max(et,o[tt].size(this.resolveDataElementOptions(tt))/2);return et>0&&et}getLabelAndValue(o){const et=this._cachedMeta,tt=this.chart.data.labels||[],{xScale:nt,yScale:rt}=et,it=this.getParsed(o),ot=nt.getLabelForValue(it.x),st=rt.getLabelForValue(it.y),at=it._custom;return{label:tt[o]||"",value:"("+ot+", "+st+(at?", "+at:"")+")"}}update(o){const et=this._cachedMeta.data;this.updateElements(et,0,et.length,o)}updateElements(o,et,tt,nt){const rt=nt==="reset",{iScale:it,vScale:ot}=this._cachedMeta,{sharedOptions:st,includeOptions:at}=this._getSharedOptions(et,nt),lt=it.axis,ut=ot.axis;for(let dt=et;dt_angleBetween(Ut,ot,st,!0)?1:Math.max(Ft,Ft*et,mt,mt*et),ct=(Ut,Ft,mt)=>_angleBetween(Ut,ot,st,!0)?-1:Math.min(Ft,Ft*et,mt,mt*et),pt=ht(0,at,ut),ft=ht(HALF_PI,lt,dt),gt=ct(PI,at,ut),yt=ct(PI+HALF_PI,lt,dt);tt=(pt-gt)/2,nt=(ft-yt)/2,rt=-(pt+gt)/2,it=-(ft+yt)/2}return{ratioX:tt,ratioY:nt,offsetX:rt,offsetY:it}}class DoughnutController extends DatasetController{constructor(o,et){super(o,et),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(o,et){const tt=this.getDataset().data,nt=this._cachedMeta;if(this._parsing===!1)nt._parsed=tt;else{let rt=st=>+tt[st];if(isObject$2(tt[o])){const{key:st="value"}=this._parsing;rt=at=>+resolveObjectKey(tt[at],st)}let it,ot;for(it=o,ot=o+et;it0&&!isNaN(o)?TAU$1*(Math.abs(o)/et):0}getLabelAndValue(o){const et=this._cachedMeta,tt=this.chart,nt=tt.data.labels||[],rt=formatNumber(et._parsed[o],tt.options.locale);return{label:nt[o]||"",value:rt}}getMaxBorderWidth(o){let et=0;const tt=this.chart;let nt,rt,it,ot,st;if(!o){for(nt=0,rt=tt.data.datasets.length;nts!=="spacing",_indexable:s=>s!=="spacing"}),He(DoughnutController,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(s){const o=s.data;if(o.labels.length&&o.datasets.length){const{labels:{pointStyle:et,color:tt}}=s.legend.options;return o.labels.map((nt,rt)=>{const it=s.getDatasetMeta(0).controller.getStyle(rt);return{text:nt,fillStyle:it.backgroundColor,strokeStyle:it.borderColor,fontColor:tt,lineWidth:it.borderWidth,pointStyle:et,hidden:!s.getDataVisibility(rt),index:rt}})}return[]}},onClick(s,o,et){et.chart.toggleDataVisibility(o.index),et.chart.update()}}}});class LineController extends DatasetController{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(o){const et=this._cachedMeta,{dataset:tt,data:nt=[],_dataset:rt}=et,it=this.chart._animationsDisabled;let{start:ot,count:st}=_getStartAndCountOfVisiblePoints(et,nt,it);this._drawStart=ot,this._drawCount=st,_scaleRangesChanged(et)&&(ot=0,st=nt.length),tt._chart=this.chart,tt._datasetIndex=this.index,tt._decimated=!!rt._decimated,tt.points=nt;const at=this.resolveDatasetElementOptions(o);this.options.showLine||(at.borderWidth=0),at.segment=this.options.segment,this.updateElement(tt,void 0,{animated:!it,options:at},o),this.updateElements(nt,ot,st,o)}updateElements(o,et,tt,nt){const rt=nt==="reset",{iScale:it,vScale:ot,_stacked:st,_dataset:at}=this._cachedMeta,{sharedOptions:lt,includeOptions:ut}=this._getSharedOptions(et,nt),dt=it.axis,ht=ot.axis,{spanGaps:ct,segment:pt}=this.options,ft=isNumber$1(ct)?ct:Number.POSITIVE_INFINITY,gt=this.chart._animationsDisabled||rt||nt==="none",yt=et+tt,Ut=o.length;let Ft=et>0&&this.getParsed(et-1);for(let mt=0;mt=yt){At.skip=!0;continue}const Lt=this.getParsed(mt),Rt=isNullOrUndef(Lt[ht]),St=At[dt]=it.getPixelForValue(Lt[dt],mt),Tt=At[ht]=rt||Rt?ot.getBasePixel():ot.getPixelForValue(st?this.applyStack(ot,Lt,st):Lt[ht],mt);At.skip=isNaN(St)||isNaN(Tt)||Rt,At.stop=mt>0&&Math.abs(Lt[dt]-Ft[dt])>ft,pt&&(At.parsed=Lt,At.raw=at.data[mt]),ut&&(At.options=lt||this.resolveDataElementOptions(mt,vt.active?"active":nt)),gt||this.updateElement(vt,mt,At,nt),Ft=Lt}}getMaxOverflow(){const o=this._cachedMeta,et=o.dataset,tt=et.options&&et.options.borderWidth||0,nt=o.data||[];if(!nt.length)return tt;const rt=nt[0].size(this.resolveDataElementOptions(0)),it=nt[nt.length-1].size(this.resolveDataElementOptions(nt.length-1));return Math.max(tt,rt,it)/2}draw(){const o=this._cachedMeta;o.dataset.updateControlPoints(this.chart.chartArea,o.iScale.axis),super.draw()}}He(LineController,"id","line"),He(LineController,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),He(LineController,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});class PolarAreaController extends DatasetController{constructor(o,et){super(o,et),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(o){const et=this._cachedMeta,tt=this.chart,nt=tt.data.labels||[],rt=formatNumber(et._parsed[o].r,tt.options.locale);return{label:nt[o]||"",value:rt}}parseObjectData(o,et,tt,nt){return _parseObjectDataRadialScale.bind(this)(o,et,tt,nt)}update(o){const et=this._cachedMeta.data;this._updateRadius(),this.updateElements(et,0,et.length,o)}getMinMax(){const o=this._cachedMeta,et={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return o.data.forEach((tt,nt)=>{const rt=this.getParsed(nt).r;!isNaN(rt)&&this.chart.getDataVisibility(nt)&&(rtet.max&&(et.max=rt))}),et}_updateRadius(){const o=this.chart,et=o.chartArea,tt=o.options,nt=Math.min(et.right-et.left,et.bottom-et.top),rt=Math.max(nt/2,0),it=Math.max(tt.cutoutPercentage?rt/100*tt.cutoutPercentage:1,0),ot=(rt-it)/o.getVisibleDatasetCount();this.outerRadius=rt-ot*this.index,this.innerRadius=this.outerRadius-ot}updateElements(o,et,tt,nt){const rt=nt==="reset",it=this.chart,ot=it.options.animation,st=this._cachedMeta.rScale,at=st.xCenter,lt=st.yCenter,ut=st.getIndexAngle(0)-.5*PI;let dt=ut,ht;const ct=360/this.countVisibleElements();for(ht=0;ht{!isNaN(this.getParsed(nt).r)&&this.chart.getDataVisibility(nt)&&et++}),et}_computeAngle(o,et,tt){return this.chart.getDataVisibility(o)?toRadians$1(this.resolveDataElementOptions(o,et).angle||tt):0}}He(PolarAreaController,"id","polarArea"),He(PolarAreaController,"defaults",{dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0}),He(PolarAreaController,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(s){const o=s.data;if(o.labels.length&&o.datasets.length){const{labels:{pointStyle:et,color:tt}}=s.legend.options;return o.labels.map((nt,rt)=>{const it=s.getDatasetMeta(0).controller.getStyle(rt);return{text:nt,fillStyle:it.backgroundColor,strokeStyle:it.borderColor,fontColor:tt,lineWidth:it.borderWidth,pointStyle:et,hidden:!s.getDataVisibility(rt),index:rt}})}return[]}},onClick(s,o,et){et.chart.toggleDataVisibility(o.index),et.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}});class PieController extends DoughnutController{}He(PieController,"id","pie"),He(PieController,"defaults",{cutout:0,rotation:0,circumference:360,radius:"100%"});class RadarController extends DatasetController{getLabelAndValue(o){const et=this._cachedMeta.vScale,tt=this.getParsed(o);return{label:et.getLabels()[o],value:""+et.getLabelForValue(tt[et.axis])}}parseObjectData(o,et,tt,nt){return _parseObjectDataRadialScale.bind(this)(o,et,tt,nt)}update(o){const et=this._cachedMeta,tt=et.dataset,nt=et.data||[],rt=et.iScale.getLabels();if(tt.points=nt,o!=="resize"){const it=this.resolveDatasetElementOptions(o);this.options.showLine||(it.borderWidth=0);const ot={_loop:!0,_fullLoop:rt.length===nt.length,options:it};this.updateElement(tt,void 0,ot,o)}this.updateElements(nt,0,nt.length,o)}updateElements(o,et,tt,nt){const rt=this._cachedMeta.rScale,it=nt==="reset";for(let ot=et;ot0&&this.getParsed(et-1);for(let Ft=et;Ft0&&Math.abs(vt[ht]-Ut[ht])>gt,ft&&(At.parsed=vt,At.raw=at.data[Ft]),dt&&(At.options=ut||this.resolveDataElementOptions(Ft,mt.active?"active":nt)),yt||this.updateElement(mt,Ft,At,nt),Ut=vt}this.updateSharedOptions(ut,nt,lt)}getMaxOverflow(){const o=this._cachedMeta,et=o.data||[];if(!this.options.showLine){let ot=0;for(let st=et.length-1;st>=0;--st)ot=Math.max(ot,et[st].size(this.resolveDataElementOptions(st))/2);return ot>0&&ot}const tt=o.dataset,nt=tt.options&&tt.options.borderWidth||0;if(!et.length)return nt;const rt=et[0].size(this.resolveDataElementOptions(0)),it=et[et.length-1].size(this.resolveDataElementOptions(et.length-1));return Math.max(nt,rt,it)/2}}He(ScatterController,"id","scatter"),He(ScatterController,"defaults",{datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1}),He(ScatterController,"overrides",{interaction:{mode:"point"},scales:{x:{type:"linear"},y:{type:"linear"}}});var controllers=Object.freeze({__proto__:null,BarController,BubbleController,DoughnutController,LineController,PolarAreaController,PieController,RadarController,ScatterController});function abstract(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class DateAdapterBase{static override(o){Object.assign(DateAdapterBase.prototype,o)}constructor(o){this.options=o||{}}init(){}formats(){return abstract()}parse(){return abstract()}format(){return abstract()}add(){return abstract()}diff(){return abstract()}startOf(){return abstract()}endOf(){return abstract()}}var adapters={_date:DateAdapterBase};function binarySearch(s,o,et,tt){const{controller:nt,data:rt,_sorted:it}=s,ot=nt._cachedMeta.iScale;if(ot&&o===ot.axis&&o!=="r"&&it&&rt.length){const st=ot._reversePixels?_rlookupByKey:_lookupByKey;if(tt){if(nt._sharedOptions){const at=rt[0],lt=typeof at.getRange=="function"&&at.getRange(o);if(lt){const ut=st(rt,o,et-lt),dt=st(rt,o,et+lt);return{lo:ut.lo,hi:dt.hi}}}}else return st(rt,o,et)}return{lo:0,hi:rt.length-1}}function evaluateInteractionItems(s,o,et,tt,nt){const rt=s.getSortedVisibleDatasetMetas(),it=et[o];for(let ot=0,st=rt.length;ot{st[it](o[et],nt)&&(rt.push({element:st,datasetIndex:at,index:lt}),ot=ot||st.inRange(o.x,o.y,nt))}),tt&&!ot?[]:rt}var Interaction={evaluateInteractionItems,modes:{index(s,o,et,tt){const nt=getRelativePosition(o,s),rt=et.axis||"x",it=et.includeInvisible||!1,ot=et.intersect?getIntersectItems(s,nt,rt,tt,it):getNearestItems(s,nt,rt,!1,tt,it),st=[];return ot.length?(s.getSortedVisibleDatasetMetas().forEach(at=>{const lt=ot[0].index,ut=at.data[lt];ut&&!ut.skip&&st.push({element:ut,datasetIndex:at.index,index:lt})}),st):[]},dataset(s,o,et,tt){const nt=getRelativePosition(o,s),rt=et.axis||"xy",it=et.includeInvisible||!1;let ot=et.intersect?getIntersectItems(s,nt,rt,tt,it):getNearestItems(s,nt,rt,!1,tt,it);if(ot.length>0){const st=ot[0].datasetIndex,at=s.getDatasetMeta(st).data;ot=[];for(let lt=0;ltet.pos===o)}function filterDynamicPositionByAxis(s,o){return s.filter(et=>STATIC_POSITIONS.indexOf(et.pos)===-1&&et.box.axis===o)}function sortByWeight(s,o){return s.sort((et,tt)=>{const nt=o?tt:et,rt=o?et:tt;return nt.weight===rt.weight?nt.index-rt.index:nt.weight-rt.weight})}function wrapBoxes(s){const o=[];let et,tt,nt,rt,it,ot;for(et=0,tt=(s||[]).length;etat.box.fullSize),!0),tt=sortByWeight(filterByPosition(o,"left"),!0),nt=sortByWeight(filterByPosition(o,"right")),rt=sortByWeight(filterByPosition(o,"top"),!0),it=sortByWeight(filterByPosition(o,"bottom")),ot=filterDynamicPositionByAxis(o,"x"),st=filterDynamicPositionByAxis(o,"y");return{fullSize:et,leftAndTop:tt.concat(rt),rightAndBottom:nt.concat(st).concat(it).concat(ot),chartArea:filterByPosition(o,"chartArea"),vertical:tt.concat(nt).concat(st),horizontal:rt.concat(it).concat(ot)}}function getCombinedMax(s,o,et,tt){return Math.max(s[et],o[et])+Math.max(s[tt],o[tt])}function updateMaxPadding(s,o){s.top=Math.max(s.top,o.top),s.left=Math.max(s.left,o.left),s.bottom=Math.max(s.bottom,o.bottom),s.right=Math.max(s.right,o.right)}function updateDims(s,o,et,tt){const{pos:nt,box:rt}=et,it=s.maxPadding;if(!isObject$2(nt)){et.size&&(s[nt]-=et.size);const ut=tt[et.stack]||{size:0,count:1};ut.size=Math.max(ut.size,et.horizontal?rt.height:rt.width),et.size=ut.size/ut.count,s[nt]+=et.size}rt.getPadding&&updateMaxPadding(it,rt.getPadding());const ot=Math.max(0,o.outerWidth-getCombinedMax(it,s,"left","right")),st=Math.max(0,o.outerHeight-getCombinedMax(it,s,"top","bottom")),at=ot!==s.w,lt=st!==s.h;return s.w=ot,s.h=st,et.horizontal?{same:at,other:lt}:{same:lt,other:at}}function handleMaxPadding(s){const o=s.maxPadding;function et(tt){const nt=Math.max(o[tt]-s[tt],0);return s[tt]+=nt,nt}s.y+=et("top"),s.x+=et("left"),et("right"),et("bottom")}function getMargins(s,o){const et=o.maxPadding;function tt(nt){const rt={left:0,top:0,right:0,bottom:0};return nt.forEach(it=>{rt[it]=Math.max(o[it],et[it])}),rt}return tt(s?["left","right"]:["top","bottom"])}function fitBoxes(s,o,et,tt){const nt=[];let rt,it,ot,st,at,lt;for(rt=0,it=s.length,at=0;rt{typeof pt.beforeLayout=="function"&&pt.beforeLayout()});const lt=st.reduce((pt,ft)=>ft.box.options&&ft.box.options.display===!1?pt:pt+1,0)||1,ut=Object.freeze({outerWidth:o,outerHeight:et,padding:nt,availableWidth:rt,availableHeight:it,vBoxMaxWidth:rt/2/lt,hBoxMaxHeight:it/2}),dt=Object.assign({},nt);updateMaxPadding(dt,toPadding(tt));const ht=Object.assign({maxPadding:dt,w:rt,h:it,x:nt.left,y:nt.top},nt),ct=setLayoutDims(st.concat(at),ut);fitBoxes(ot.fullSize,ht,ut,ct),fitBoxes(st,ht,ut,ct),fitBoxes(at,ht,ut,ct)&&fitBoxes(st,ht,ut,ct),handleMaxPadding(ht),placeBoxes(ot.leftAndTop,ht,ut,ct),ht.x+=ht.w,ht.y+=ht.h,placeBoxes(ot.rightAndBottom,ht,ut,ct),s.chartArea={left:ht.left,top:ht.top,right:ht.left+ht.w,bottom:ht.top+ht.h,height:ht.h,width:ht.w},each(ot.chartArea,pt=>{const ft=pt.box;Object.assign(ft,s.chartArea),ft.update(ht.w,ht.h,{left:0,top:0,right:0,bottom:0})})}};class BasePlatform{acquireContext(o,et){}releaseContext(o){return!1}addEventListener(o,et,tt){}removeEventListener(o,et,tt){}getDevicePixelRatio(){return 1}getMaximumSize(o,et,tt,nt){return et=Math.max(0,et||o.width),tt=tt||o.height,{width:et,height:Math.max(0,nt?Math.floor(et/nt):tt)}}isAttached(o){return!0}updateConfig(o){}}class BasicPlatform extends BasePlatform{acquireContext(o){return o&&o.getContext&&o.getContext("2d")||null}updateConfig(o){o.options.animation=!1}}const EXPANDO_KEY="$chartjs",EVENT_TYPES={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},isNullOrEmpty=s=>s===null||s==="";function initCanvas(s,o){const et=s.style,tt=s.getAttribute("height"),nt=s.getAttribute("width");if(s[EXPANDO_KEY]={initial:{height:tt,width:nt,style:{display:et.display,height:et.height,width:et.width}}},et.display=et.display||"block",et.boxSizing=et.boxSizing||"border-box",isNullOrEmpty(nt)){const rt=readUsedSize(s,"width");rt!==void 0&&(s.width=rt)}if(isNullOrEmpty(tt))if(s.style.height==="")s.height=s.width/(o||2);else{const rt=readUsedSize(s,"height");rt!==void 0&&(s.height=rt)}return s}const eventListenerOptions=supportsEventListenerOptions?{passive:!0}:!1;function addListener(s,o,et){s.addEventListener(o,et,eventListenerOptions)}function removeListener(s,o,et){s.canvas.removeEventListener(o,et,eventListenerOptions)}function fromNativeEvent(s,o){const et=EVENT_TYPES[s.type]||s.type,{x:tt,y:nt}=getRelativePosition(s,o);return{type:et,chart:o,native:s,x:tt!==void 0?tt:null,y:nt!==void 0?nt:null}}function nodeListContains(s,o){for(const et of s)if(et===o||et.contains(o))return!0}function createAttachObserver(s,o,et){const tt=s.canvas,nt=new MutationObserver(rt=>{let it=!1;for(const ot of rt)it=it||nodeListContains(ot.addedNodes,tt),it=it&&!nodeListContains(ot.removedNodes,tt);it&&et()});return nt.observe(document,{childList:!0,subtree:!0}),nt}function createDetachObserver(s,o,et){const tt=s.canvas,nt=new MutationObserver(rt=>{let it=!1;for(const ot of rt)it=it||nodeListContains(ot.removedNodes,tt),it=it&&!nodeListContains(ot.addedNodes,tt);it&&et()});return nt.observe(document,{childList:!0,subtree:!0}),nt}const drpListeningCharts=new Map;let oldDevicePixelRatio=0;function onWindowResize(){const s=window.devicePixelRatio;s!==oldDevicePixelRatio&&(oldDevicePixelRatio=s,drpListeningCharts.forEach((o,et)=>{et.currentDevicePixelRatio!==s&&o()}))}function listenDevicePixelRatioChanges(s,o){drpListeningCharts.size||window.addEventListener("resize",onWindowResize),drpListeningCharts.set(s,o)}function unlistenDevicePixelRatioChanges(s){drpListeningCharts.delete(s),drpListeningCharts.size||window.removeEventListener("resize",onWindowResize)}function createResizeObserver(s,o,et){const tt=s.canvas,nt=tt&&_getParentNode(tt);if(!nt)return;const rt=throttled((ot,st)=>{const at=nt.clientWidth;et(ot,st),at{const st=ot[0],at=st.contentRect.width,lt=st.contentRect.height;at===0&<===0||rt(at,lt)});return it.observe(nt),listenDevicePixelRatioChanges(s,rt),it}function releaseObserver(s,o,et){et&&et.disconnect(),o==="resize"&&unlistenDevicePixelRatioChanges(s)}function createProxyAndListen(s,o,et){const tt=s.canvas,nt=throttled(rt=>{s.ctx!==null&&et(fromNativeEvent(rt,s))},s);return addListener(tt,o,nt),nt}class DomPlatform extends BasePlatform{acquireContext(o,et){const tt=o&&o.getContext&&o.getContext("2d");return tt&&tt.canvas===o?(initCanvas(o,et),tt):null}releaseContext(o){const et=o.canvas;if(!et[EXPANDO_KEY])return!1;const tt=et[EXPANDO_KEY].initial;["height","width"].forEach(rt=>{const it=tt[rt];isNullOrUndef(it)?et.removeAttribute(rt):et.setAttribute(rt,it)});const nt=tt.style||{};return Object.keys(nt).forEach(rt=>{et.style[rt]=nt[rt]}),et.width=et.width,delete et[EXPANDO_KEY],!0}addEventListener(o,et,tt){this.removeEventListener(o,et);const nt=o.$proxies||(o.$proxies={}),rt={attach:createAttachObserver,detach:createDetachObserver,resize:createResizeObserver}[et]||createProxyAndListen;nt[et]=rt(o,et,tt)}removeEventListener(o,et){const tt=o.$proxies||(o.$proxies={}),nt=tt[et];nt&&(({attach:releaseObserver,detach:releaseObserver,resize:releaseObserver}[et]||removeListener)(o,et,nt),tt[et]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(o,et,tt,nt){return getMaximumSize(o,et,tt,nt)}isAttached(o){const et=_getParentNode(o);return!!(et&&et.isConnected)}}function _detectPlatform(s){return!_isDomSupported()||typeof OffscreenCanvas<"u"&&s instanceof OffscreenCanvas?BasicPlatform:DomPlatform}let Element$1=class{constructor(){He(this,"active",!1)}tooltipPosition(o){const{x:et,y:tt}=this.getProps(["x","y"],o);return{x:et,y:tt}}hasValue(){return isNumber$1(this.x)&&isNumber$1(this.y)}getProps(o,et){const tt=this.$animations;if(!et||!tt)return this;const nt={};return o.forEach(rt=>{nt[rt]=tt[rt]&&tt[rt].active()?tt[rt]._to:this[rt]}),nt}};He(Element$1,"defaults",{}),He(Element$1,"defaultRoutes");function autoSkip(s,o){const et=s.options.ticks,tt=determineMaxTicks(s),nt=Math.min(et.maxTicksLimit||tt,tt),rt=et.major.enabled?getMajorIndices(o):[],it=rt.length,ot=rt[0],st=rt[it-1],at=[];if(it>nt)return skipMajors(o,at,rt,it/nt),at;const lt=calculateSpacing(rt,o,nt);if(it>0){let ut,dt;const ht=it>1?Math.round((st-ot)/(it-1)):null;for(skip(o,at,lt,isNullOrUndef(ht)?0:ot-ht,ot),ut=0,dt=it-1;utnt)return st}return Math.max(nt,1)}function getMajorIndices(s){const o=[];let et,tt;for(et=0,tt=s.length;ets==="left"?"right":s==="right"?"left":s,offsetFromEdge=(s,o,et)=>o==="top"||o==="left"?s[o]+et:s[o]-et;function sample(s,o){const et=[],tt=s.length/o,nt=s.length;let rt=0;for(;rtit+ot)))return st}function garbageCollect(s,o){each(s,et=>{const tt=et.gc,nt=tt.length/2;let rt;if(nt>o){for(rt=0;rttt?tt:et,tt=nt&&et>tt?et:tt,{min:finiteOrDefault(et,finiteOrDefault(tt,et)),max:finiteOrDefault(tt,finiteOrDefault(et,tt))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const o=this.chart.data;return this.options.labels||(this.isHorizontal()?o.xLabels:o.yLabels)||o.labels||[]}getLabelItems(o=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(o))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){callback(this.options.beforeUpdate,[this])}update(o,et,tt){const{beginAtZero:nt,grace:rt,ticks:it}=this.options,ot=it.sampleSize;this.beforeUpdate(),this.maxWidth=o,this.maxHeight=et,this._margins=tt=Object.assign({left:0,right:0,top:0,bottom:0},tt),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+tt.left+tt.right:this.height+tt.top+tt.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=_addGrace(this,rt,nt),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const st=ot=rt||tt<=1||!this.isHorizontal()){this.labelRotation=nt;return}const lt=this._getLabelSizes(),ut=lt.widest.width,dt=lt.highest.height,ht=_limitValue(this.chart.width-ut,0,this.maxWidth);ot=o.offset?this.maxWidth/tt:ht/(tt-1),ut+6>ot&&(ot=ht/(tt-(o.offset?.5:1)),st=this.maxHeight-getTickMarkLength(o.grid)-et.padding-getTitleHeight(o.title,this.chart.options.font),at=Math.sqrt(ut*ut+dt*dt),it=toDegrees$1(Math.min(Math.asin(_limitValue((lt.highest.height+6)/ot,-1,1)),Math.asin(_limitValue(st/at,-1,1))-Math.asin(_limitValue(dt/at,-1,1)))),it=Math.max(nt,Math.min(rt,it))),this.labelRotation=it}afterCalculateLabelRotation(){callback(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){callback(this.options.beforeFit,[this])}fit(){const o={width:0,height:0},{chart:et,options:{ticks:tt,title:nt,grid:rt}}=this,it=this._isVisible(),ot=this.isHorizontal();if(it){const st=getTitleHeight(nt,et.options.font);if(ot?(o.width=this.maxWidth,o.height=getTickMarkLength(rt)+st):(o.height=this.maxHeight,o.width=getTickMarkLength(rt)+st),tt.display&&this.ticks.length){const{first:at,last:lt,widest:ut,highest:dt}=this._getLabelSizes(),ht=tt.padding*2,ct=toRadians$1(this.labelRotation),pt=Math.cos(ct),ft=Math.sin(ct);if(ot){const gt=tt.mirror?0:ft*ut.width+pt*dt.height;o.height=Math.min(this.maxHeight,o.height+gt+ht)}else{const gt=tt.mirror?0:pt*ut.width+ft*dt.height;o.width=Math.min(this.maxWidth,o.width+gt+ht)}this._calculatePadding(at,lt,ft,pt)}}this._handleMargins(),ot?(this.width=this._length=et.width-this._margins.left-this._margins.right,this.height=o.height):(this.width=o.width,this.height=this._length=et.height-this._margins.top-this._margins.bottom)}_calculatePadding(o,et,tt,nt){const{ticks:{align:rt,padding:it},position:ot}=this.options,st=this.labelRotation!==0,at=ot!=="top"&&this.axis==="x";if(this.isHorizontal()){const lt=this.getPixelForTick(0)-this.left,ut=this.right-this.getPixelForTick(this.ticks.length-1);let dt=0,ht=0;st?at?(dt=nt*o.width,ht=tt*et.height):(dt=tt*o.height,ht=nt*et.width):rt==="start"?ht=et.width:rt==="end"?dt=o.width:rt!=="inner"&&(dt=o.width/2,ht=et.width/2),this.paddingLeft=Math.max((dt-lt+it)*this.width/(this.width-lt),0),this.paddingRight=Math.max((ht-ut+it)*this.width/(this.width-ut),0)}else{let lt=et.height/2,ut=o.height/2;rt==="start"?(lt=0,ut=o.height):rt==="end"&&(lt=et.height,ut=0),this.paddingTop=lt+it,this.paddingBottom=ut+it}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){callback(this.options.afterFit,[this])}isHorizontal(){const{axis:o,position:et}=this.options;return et==="top"||et==="bottom"||o==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(o){this.beforeTickToLabelConversion(),this.generateTickLabels(o);let et,tt;for(et=0,tt=o.length;et({width:rt[At]||0,height:it[At]||0});return{first:vt(0),last:vt(et-1),widest:vt(Ft),highest:vt(mt),widths:rt,heights:it}}getLabelForValue(o){return o}getPixelForValue(o,et){return NaN}getValueForPixel(o){}getPixelForTick(o){const et=this.ticks;return o<0||o>et.length-1?null:this.getPixelForValue(et[o].value)}getPixelForDecimal(o){this._reversePixels&&(o=1-o);const et=this._startPixel+o*this._length;return _int16Range(this._alignToPixels?_alignPixel(this.chart,et,0):et)}getDecimalForPixel(o){const et=(o-this._startPixel)/this._length;return this._reversePixels?1-et:et}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:o,max:et}=this;return o<0&&et<0?et:o>0&&et>0?o:0}getContext(o){const et=this.ticks||[];if(o>=0&&oot*nt?ot/tt:st/nt:st*nt0}_computeGridLineItems(o){const et=this.axis,tt=this.chart,nt=this.options,{grid:rt,position:it,border:ot}=nt,st=rt.offset,at=this.isHorizontal(),lt=this.ticks.length+(st?1:0),ut=getTickMarkLength(rt),dt=[],ht=ot.setContext(this.getContext()),ct=ht.display?ht.width:0,pt=ct/2,ft=function(kt){return _alignPixel(tt,kt,ct)};let gt,yt,Ut,Ft,mt,vt,At,Lt,Rt,St,Tt,Bt;if(it==="top")gt=ft(this.bottom),vt=this.bottom-ut,Lt=gt-pt,St=ft(o.top)+pt,Bt=o.bottom;else if(it==="bottom")gt=ft(this.top),St=o.top,Bt=ft(o.bottom)-pt,vt=gt+pt,Lt=this.top+ut;else if(it==="left")gt=ft(this.right),mt=this.right-ut,At=gt-pt,Rt=ft(o.left)+pt,Tt=o.right;else if(it==="right")gt=ft(this.left),Rt=o.left,Tt=ft(o.right)-pt,mt=gt+pt,At=this.left+ut;else if(et==="x"){if(it==="center")gt=ft((o.top+o.bottom)/2+.5);else if(isObject$2(it)){const kt=Object.keys(it)[0],Nt=it[kt];gt=ft(this.chart.scales[kt].getPixelForValue(Nt))}St=o.top,Bt=o.bottom,vt=gt+pt,Lt=vt+ut}else if(et==="y"){if(it==="center")gt=ft((o.left+o.right)/2);else if(isObject$2(it)){const kt=Object.keys(it)[0],Nt=it[kt];gt=ft(this.chart.scales[kt].getPixelForValue(Nt))}mt=gt-pt,At=mt-ut,Rt=o.left,Tt=o.right}const xt=valueOrDefault(nt.ticks.maxTicksLimit,lt),Ct=Math.max(1,Math.ceil(lt/xt));for(yt=0;ytnt.value===o);return tt>=0?et.setContext(this.getContext(tt)).lineWidth:0}drawGrid(o){const et=this.options.grid,tt=this.ctx,nt=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(o));let rt,it;const ot=(st,at,lt)=>{!lt.width||!lt.color||(tt.save(),tt.lineWidth=lt.width,tt.strokeStyle=lt.color,tt.setLineDash(lt.borderDash||[]),tt.lineDashOffset=lt.borderDashOffset,tt.beginPath(),tt.moveTo(st.x,st.y),tt.lineTo(at.x,at.y),tt.stroke(),tt.restore())};if(et.display)for(rt=0,it=nt.length;rt{this.draw(rt)}}]:[{z:tt,draw:rt=>{this.drawBackground(),this.drawGrid(rt),this.drawTitle()}},{z:nt,draw:()=>{this.drawBorder()}},{z:et,draw:rt=>{this.drawLabels(rt)}}]}getMatchingVisibleMetas(o){const et=this.chart.getSortedVisibleDatasetMetas(),tt=this.axis+"AxisID",nt=[];let rt,it;for(rt=0,it=et.length;rt{const tt=et.split("."),nt=tt.pop(),rt=[s].concat(tt).join("."),it=o[et].split("."),ot=it.pop(),st=it.join(".");defaults$2.route(rt,nt,st,ot)})}function isIChartComponent(s){return"id"in s&&"defaults"in s}class Registry{constructor(){this.controllers=new TypedRegistry(DatasetController,"datasets",!0),this.elements=new TypedRegistry(Element$1,"elements"),this.plugins=new TypedRegistry(Object,"plugins"),this.scales=new TypedRegistry(Scale,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...o){this._each("register",o)}remove(...o){this._each("unregister",o)}addControllers(...o){this._each("register",o,this.controllers)}addElements(...o){this._each("register",o,this.elements)}addPlugins(...o){this._each("register",o,this.plugins)}addScales(...o){this._each("register",o,this.scales)}getController(o){return this._get(o,this.controllers,"controller")}getElement(o){return this._get(o,this.elements,"element")}getPlugin(o){return this._get(o,this.plugins,"plugin")}getScale(o){return this._get(o,this.scales,"scale")}removeControllers(...o){this._each("unregister",o,this.controllers)}removeElements(...o){this._each("unregister",o,this.elements)}removePlugins(...o){this._each("unregister",o,this.plugins)}removeScales(...o){this._each("unregister",o,this.scales)}_each(o,et,tt){[...et].forEach(nt=>{const rt=tt||this._getRegistryForType(nt);tt||rt.isForType(nt)||rt===this.plugins&&nt.id?this._exec(o,rt,nt):each(nt,it=>{const ot=tt||this._getRegistryForType(it);this._exec(o,ot,it)})})}_exec(o,et,tt){const nt=_capitalize(o);callback(tt["before"+nt],[],tt),et[o](tt),callback(tt["after"+nt],[],tt)}_getRegistryForType(o){for(let et=0;etrt.filter(ot=>!it.some(st=>ot.plugin.id===st.plugin.id));this._notify(nt(et,tt),o,"stop"),this._notify(nt(tt,et),o,"start")}}function allPlugins(s){const o={},et=[],tt=Object.keys(registry.plugins.items);for(let rt=0;rt1&&determineAxis(s[0].toLowerCase(),o),s))return s;throw new Error(`Cannot determine type of '${name}' axis. Please provide 'axis' or 'position' option.`)}function mergeScaleConfig(s,o){const et=overrides[s.type]||{scales:{}},tt=o.scales||{},nt=getIndexAxis(s.type,o),rt=Object.create(null);return Object.keys(tt).forEach(it=>{const ot=tt[it];if(!isObject$2(ot))return console.error(`Invalid scale configuration for scale: ${it}`);if(ot._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${it}`);const st=determineAxis(it,ot),at=getDefaultScaleIDFromAxis(st,nt),lt=et.scales||{};rt[it]=mergeIf(Object.create(null),[{axis:st},ot,lt[st],lt[at]])}),s.data.datasets.forEach(it=>{const ot=it.type||s.type,st=it.indexAxis||getIndexAxis(ot,o),at=(overrides[ot]||{}).scales||{};Object.keys(at).forEach(lt=>{const ut=getAxisFromDefaultScaleID(lt,st),dt=it[ut+"AxisID"]||ut;rt[dt]=rt[dt]||Object.create(null),mergeIf(rt[dt],[{axis:ut},tt[dt],at[lt]])})}),Object.keys(rt).forEach(it=>{const ot=rt[it];mergeIf(ot,[defaults$2.scales[ot.type],defaults$2.scale])}),rt}function initOptions(s){const o=s.options||(s.options={});o.plugins=valueOrDefault(o.plugins,{}),o.scales=mergeScaleConfig(s,o)}function initData(s){return s=s||{},s.datasets=s.datasets||[],s.labels=s.labels||[],s}function initConfig(s){return s=s||{},s.data=initData(s.data),initOptions(s),s}const keyCache=new Map,keysCached=new Set;function cachedKeys(s,o){let et=keyCache.get(s);return et||(et=o(),keyCache.set(s,et),keysCached.add(et)),et}const addIfFound=(s,o,et)=>{const tt=resolveObjectKey(o,et);tt!==void 0&&s.add(tt)};let Config$1=class{constructor(o){this._config=initConfig(o),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(o){this._config.type=o}get data(){return this._config.data}set data(o){this._config.data=initData(o)}get options(){return this._config.options}set options(o){this._config.options=o}get plugins(){return this._config.plugins}update(){const o=this._config;this.clearCache(),initOptions(o)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(o){return cachedKeys(o,()=>[[`datasets.${o}`,""]])}datasetAnimationScopeKeys(o,et){return cachedKeys(`${o}.transition.${et}`,()=>[[`datasets.${o}.transitions.${et}`,`transitions.${et}`],[`datasets.${o}`,""]])}datasetElementScopeKeys(o,et){return cachedKeys(`${o}-${et}`,()=>[[`datasets.${o}.elements.${et}`,`datasets.${o}`,`elements.${et}`,""]])}pluginScopeKeys(o){const et=o.id,tt=this.type;return cachedKeys(`${tt}-plugin-${et}`,()=>[[`plugins.${et}`,...o.additionalOptionScopes||[]]])}_cachedScopes(o,et){const tt=this._scopeCache;let nt=tt.get(o);return(!nt||et)&&(nt=new Map,tt.set(o,nt)),nt}getOptionScopes(o,et,tt){const{options:nt,type:rt}=this,it=this._cachedScopes(o,tt),ot=it.get(et);if(ot)return ot;const st=new Set;et.forEach(lt=>{o&&(st.add(o),lt.forEach(ut=>addIfFound(st,o,ut))),lt.forEach(ut=>addIfFound(st,nt,ut)),lt.forEach(ut=>addIfFound(st,overrides[rt]||{},ut)),lt.forEach(ut=>addIfFound(st,defaults$2,ut)),lt.forEach(ut=>addIfFound(st,descriptors,ut))});const at=Array.from(st);return at.length===0&&at.push(Object.create(null)),keysCached.has(et)&&it.set(et,at),at}chartOptionScopes(){const{options:o,type:et}=this;return[o,overrides[et]||{},defaults$2.datasets[et]||{},{type:et},defaults$2,descriptors]}resolveNamedOptions(o,et,tt,nt=[""]){const rt={$shared:!0},{resolver:it,subPrefixes:ot}=getResolver(this._resolverCache,o,nt);let st=it;if(needContext(it,et)){rt.$shared=!1,tt=isFunction(tt)?tt():tt;const at=this.createResolver(o,tt,ot);st=_attachContext(it,tt,at)}for(const at of et)rt[at]=st[at];return rt}createResolver(o,et,tt=[""],nt){const{resolver:rt}=getResolver(this._resolverCache,o,tt);return isObject$2(et)?_attachContext(rt,et,void 0,nt):rt}};function getResolver(s,o,et){let tt=s.get(o);tt||(tt=new Map,s.set(o,tt));const nt=et.join();let rt=tt.get(nt);return rt||(rt={resolver:_createResolver(o,et),subPrefixes:et.filter(it=>!it.toLowerCase().includes("hover"))},tt.set(nt,rt)),rt}const hasFunction=s=>isObject$2(s)&&Object.getOwnPropertyNames(s).reduce((o,et)=>o||isFunction(s[et]),!1);function needContext(s,o){const{isScriptable:et,isIndexable:tt}=_descriptors(s);for(const nt of o){const rt=et(nt),it=tt(nt),ot=(it||rt)&&s[nt];if(rt&&(isFunction(ot)||hasFunction(ot))||it&&isArray$4(ot))return!0}return!1}var version="4.2.0";const KNOWN_POSITIONS=["top","bottom","left","right","chartArea"];function positionIsHorizontal(s,o){return s==="top"||s==="bottom"||KNOWN_POSITIONS.indexOf(s)===-1&&o==="x"}function compare2Level(s,o){return function(et,tt){return et[s]===tt[s]?et[o]-tt[o]:et[s]-tt[s]}}function onAnimationsComplete(s){const o=s.chart,et=o.options.animation;o.notifyPlugins("afterRender"),callback(et&&et.onComplete,[s],o)}function onAnimationProgress(s){const o=s.chart,et=o.options.animation;callback(et&&et.onProgress,[s],o)}function getCanvas(s){return _isDomSupported()&&typeof s=="string"?s=document.getElementById(s):s&&s.length&&(s=s[0]),s&&s.canvas&&(s=s.canvas),s}const instances={},getChart=s=>{const o=getCanvas(s);return Object.values(instances).filter(et=>et.canvas===o).pop()};function moveNumericKeys(s,o,et){const tt=Object.keys(s);for(const nt of tt){const rt=+nt;if(rt>=o){const it=s[nt];delete s[nt],(et>0||rt>o)&&(s[rt+et]=it)}}}function determineLastEvent(s,o,et,tt){return!et||s.type==="mouseout"?null:tt?o:s}function getDatasetArea(s){const{xScale:o,yScale:et}=s;if(o&&et)return{left:o.left,right:o.right,top:et.top,bottom:et.bottom}}var Ur;let Chart$1=(Ur=class{static register(...s){registry.add(...s),invalidatePlugins()}static unregister(...s){registry.remove(...s),invalidatePlugins()}constructor(s,o){const et=this.config=new Config$1(o),tt=getCanvas(s),nt=getChart(tt);if(nt)throw new Error("Canvas is already in use. Chart with ID '"+nt.id+"' must be destroyed before the canvas with ID '"+nt.canvas.id+"' can be reused.");const rt=et.createResolver(et.chartOptionScopes(),this.getContext());this.platform=new(et.platform||_detectPlatform(tt)),this.platform.updateConfig(et);const it=this.platform.acquireContext(tt,rt.aspectRatio),ot=it&&it.canvas,st=ot&&ot.height,at=ot&&ot.width;if(this.id=uid(),this.ctx=it,this.canvas=ot,this.width=at,this.height=st,this._options=rt,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new PluginService,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=debounce$1(lt=>this.update(lt),rt.resizeDelay||0),this._dataChanges=[],instances[this.id]=this,!it||!ot){console.error("Failed to create chart: can't acquire context from the given item");return}animator.listen(this,"complete",onAnimationsComplete),animator.listen(this,"progress",onAnimationProgress),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:s,maintainAspectRatio:o},width:et,height:tt,_aspectRatio:nt}=this;return isNullOrUndef(s)?o&&nt?nt:tt?et/tt:null:s}get data(){return this.config.data}set data(s){this.config.data=s}get options(){return this._options}set options(s){this.config.options=s}get registry(){return registry}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():retinaScale(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return clearCanvas(this.canvas,this.ctx),this}stop(){return animator.stop(this),this}resize(s,o){animator.running(this)?this._resizeBeforeDraw={width:s,height:o}:this._resize(s,o)}_resize(s,o){const et=this.options,tt=this.canvas,nt=et.maintainAspectRatio&&this.aspectRatio,rt=this.platform.getMaximumSize(tt,s,o,nt),it=et.devicePixelRatio||this.platform.getDevicePixelRatio(),ot=this.width?"resize":"attach";this.width=rt.width,this.height=rt.height,this._aspectRatio=this.aspectRatio,retinaScale(this,it,!0)&&(this.notifyPlugins("resize",{size:rt}),callback(et.onResize,[this,rt],this),this.attached&&this._doResize(ot)&&this.render())}ensureScalesHaveIDs(){const s=this.options.scales||{};each(s,(o,et)=>{o.id=et})}buildOrUpdateScales(){const s=this.options,o=s.scales,et=this.scales,tt=Object.keys(et).reduce((rt,it)=>(rt[it]=!1,rt),{});let nt=[];o&&(nt=nt.concat(Object.keys(o).map(rt=>{const it=o[rt],ot=determineAxis(rt,it),st=ot==="r",at=ot==="x";return{options:it,dposition:st?"chartArea":at?"bottom":"left",dtype:st?"radialLinear":at?"category":"linear"}}))),each(nt,rt=>{const it=rt.options,ot=it.id,st=determineAxis(ot,it),at=valueOrDefault(it.type,rt.dtype);(it.position===void 0||positionIsHorizontal(it.position,st)!==positionIsHorizontal(rt.dposition))&&(it.position=rt.dposition),tt[ot]=!0;let lt=null;if(ot in et&&et[ot].type===at)lt=et[ot];else{const ut=registry.getScale(at);lt=new ut({id:ot,type:at,ctx:this.ctx,chart:this}),et[lt.id]=lt}lt.init(it,s)}),each(tt,(rt,it)=>{rt||delete et[it]}),each(et,rt=>{layouts.configure(this,rt,rt.options),layouts.addBox(this,rt)})}_updateMetasets(){const s=this._metasets,o=this.data.datasets.length,et=s.length;if(s.sort((tt,nt)=>tt.index-nt.index),et>o){for(let tt=o;tto.length&&delete this._stacks,s.forEach((et,tt)=>{o.filter(nt=>nt===et._dataset).length===0&&this._destroyDatasetMeta(tt)})}buildOrUpdateControllers(){const s=[],o=this.data.datasets;let et,tt;for(this._removeUnreferencedMetasets(),et=0,tt=o.length;et{this.getDatasetMeta(o).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(s){const o=this.config;o.update();const et=this._options=o.createResolver(o.chartOptionScopes(),this.getContext()),tt=this._animationsDisabled=!et.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:s,cancelable:!0})===!1)return;const nt=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let rt=0;for(let st=0,at=this.data.datasets.length;st{st.reset()}),this._updateDatasets(s),this.notifyPlugins("afterUpdate",{mode:s}),this._layers.sort(compare2Level("z","_idx"));const{_active:it,_lastEvent:ot}=this;ot?this._eventHandler(ot,!0):it.length&&this._updateHoverStyles(it,it,!0),this.render()}_updateScales(){each(this.scales,s=>{layouts.removeBox(this,s)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const s=this.options,o=new Set(Object.keys(this._listeners)),et=new Set(s.events);(!setsEqual(o,et)||!!this._responsiveListeners!==s.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:s}=this,o=this._getUniformDataChanges()||[];for(const{method:et,start:tt,count:nt}of o){const rt=et==="_removeElements"?-nt:nt;moveNumericKeys(s,tt,rt)}}_getUniformDataChanges(){const s=this._dataChanges;if(!s||!s.length)return;this._dataChanges=[];const o=this.data.datasets.length,et=nt=>new Set(s.filter(rt=>rt[0]===nt).map((rt,it)=>it+","+rt.splice(1).join(","))),tt=et(0);for(let nt=1;ntnt.split(",")).map(nt=>({method:nt[1],start:+nt[2],count:+nt[3]}))}_updateLayout(s){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;layouts.update(this,this.width,this.height,s);const o=this.chartArea,et=o.width<=0||o.height<=0;this._layers=[],each(this.boxes,tt=>{et&&tt.position==="chartArea"||(tt.configure&&tt.configure(),this._layers.push(...tt._layers()))},this),this._layers.forEach((tt,nt)=>{tt._idx=nt}),this.notifyPlugins("afterLayout")}_updateDatasets(s){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:s,cancelable:!0})!==!1){for(let o=0,et=this.data.datasets.length;o=0;--o)this._drawDataset(s[o]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(s){const o=this.ctx,et=s._clip,tt=!et.disabled,nt=getDatasetArea(s)||this.chartArea,rt={meta:s,index:s.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",rt)!==!1&&(tt&&clipArea(o,{left:et.left===!1?0:nt.left-et.left,right:et.right===!1?this.width:nt.right+et.right,top:et.top===!1?0:nt.top-et.top,bottom:et.bottom===!1?this.height:nt.bottom+et.bottom}),s.controller.draw(),tt&&unclipArea(o),rt.cancelable=!1,this.notifyPlugins("afterDatasetDraw",rt))}isPointInArea(s){return _isPointInArea(s,this.chartArea,this._minPadding)}getElementsAtEventForMode(s,o,et,tt){const nt=Interaction.modes[o];return typeof nt=="function"?nt(this,s,et,tt):[]}getDatasetMeta(s){const o=this.data.datasets[s],et=this._metasets;let tt=et.filter(nt=>nt&&nt._dataset===o).pop();return tt||(tt={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:o&&o.order||0,index:s,_dataset:o,_parsed:[],_sorted:!1},et.push(tt)),tt}getContext(){return this.$context||(this.$context=createContext(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(s){const o=this.data.datasets[s];if(!o)return!1;const et=this.getDatasetMeta(s);return typeof et.hidden=="boolean"?!et.hidden:!o.hidden}setDatasetVisibility(s,o){const et=this.getDatasetMeta(s);et.hidden=!o}toggleDataVisibility(s){this._hiddenIndices[s]=!this._hiddenIndices[s]}getDataVisibility(s){return!this._hiddenIndices[s]}_updateVisibility(s,o,et){const tt=et?"show":"hide",nt=this.getDatasetMeta(s),rt=nt.controller._resolveAnimations(void 0,tt);defined$3(o)?(nt.data[o].hidden=!et,this.update()):(this.setDatasetVisibility(s,et),rt.update(nt,{visible:et}),this.update(it=>it.datasetIndex===s?tt:void 0))}hide(s,o){this._updateVisibility(s,o,!1)}show(s,o){this._updateVisibility(s,o,!0)}_destroyDatasetMeta(s){const o=this._metasets[s];o&&o.controller&&o.controller._destroy(),delete this._metasets[s]}_stop(){let s,o;for(this.stop(),animator.remove(this),s=0,o=this.data.datasets.length;s{o.addEventListener(this,nt,rt),s[nt]=rt},tt=(nt,rt,it)=>{nt.offsetX=rt,nt.offsetY=it,this._eventHandler(nt)};each(this.options.events,nt=>et(nt,tt))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const s=this._responsiveListeners,o=this.platform,et=(ot,st)=>{o.addEventListener(this,ot,st),s[ot]=st},tt=(ot,st)=>{s[ot]&&(o.removeEventListener(this,ot,st),delete s[ot])},nt=(ot,st)=>{this.canvas&&this.resize(ot,st)};let rt;const it=()=>{tt("attach",it),this.attached=!0,this.resize(),et("resize",nt),et("detach",rt)};rt=()=>{this.attached=!1,tt("resize",nt),this._stop(),this._resize(0,0),et("attach",it)},o.isAttached(this.canvas)?it():rt()}unbindEvents(){each(this._listeners,(s,o)=>{this.platform.removeEventListener(this,o,s)}),this._listeners={},each(this._responsiveListeners,(s,o)=>{this.platform.removeEventListener(this,o,s)}),this._responsiveListeners=void 0}updateHoverStyle(s,o,et){const tt=et?"set":"remove";let nt,rt,it,ot;for(o==="dataset"&&(nt=this.getDatasetMeta(s[0].datasetIndex),nt.controller["_"+tt+"DatasetHoverStyle"]()),it=0,ot=s.length;it{const rt=this.getDatasetMeta(tt);if(!rt)throw new Error("No dataset found at index "+tt);return{datasetIndex:tt,element:rt.data[nt],index:nt}});!_elementsEqual(et,o)&&(this._active=et,this._lastEvent=null,this._updateHoverStyles(et,o))}notifyPlugins(s,o,et){return this._plugins.notify(this,s,o,et)}isPluginEnabled(s){return this._plugins._cache.filter(o=>o.plugin.id===s).length===1}_updateHoverStyles(s,o,et){const tt=this.options.hover,nt=(ot,st)=>ot.filter(at=>!st.some(lt=>at.datasetIndex===lt.datasetIndex&&at.index===lt.index)),rt=nt(o,s),it=et?s:nt(s,o);rt.length&&this.updateHoverStyle(rt,tt.mode,!1),it.length&&tt.mode&&this.updateHoverStyle(it,tt.mode,!0)}_eventHandler(s,o){const et={event:s,replay:o,cancelable:!0,inChartArea:this.isPointInArea(s)},tt=rt=>(rt.options.events||this.options.events).includes(s.native.type);if(this.notifyPlugins("beforeEvent",et,tt)===!1)return;const nt=this._handleEvent(s,o,et.inChartArea);return et.cancelable=!1,this.notifyPlugins("afterEvent",et,tt),(nt||et.changed)&&this.render(),this}_handleEvent(s,o,et){const{_active:tt=[],options:nt}=this,rt=o,it=this._getActiveElements(s,tt,et,rt),ot=_isClickEvent(s),st=determineLastEvent(s,this._lastEvent,et,ot);et&&(this._lastEvent=null,callback(nt.onHover,[s,it,this],this),ot&&callback(nt.onClick,[s,it,this],this));const at=!_elementsEqual(it,tt);return(at||o)&&(this._active=it,this._updateHoverStyles(it,tt,o)),this._lastEvent=st,at}_getActiveElements(s,o,et,tt){if(s.type==="mouseout")return[];if(!et)return o;const nt=this.options.hover;return this.getElementsAtEventForMode(s,nt.mode,nt,tt)}},He(Ur,"defaults",defaults$2),He(Ur,"instances",instances),He(Ur,"overrides",overrides),He(Ur,"registry",registry),He(Ur,"version",version),He(Ur,"getChart",getChart),Ur);function invalidatePlugins(){return each(Chart$1.instances,s=>s._plugins.invalidate())}function clipArc(s,o,et){const{startAngle:tt,pixelMargin:nt,x:rt,y:it,outerRadius:ot,innerRadius:st}=o;let at=nt/ot;s.beginPath(),s.arc(rt,it,ot,tt-at,et+at),st>nt?(at=nt/st,s.arc(rt,it,st,et+at,tt-at,!0)):s.arc(rt,it,nt,et+HALF_PI,tt-HALF_PI),s.closePath(),s.clip()}function toRadiusCorners(s){return _readValueToProps(s,["outerStart","outerEnd","innerStart","innerEnd"])}function parseBorderRadius$1(s,o,et,tt){const nt=toRadiusCorners(s.options.borderRadius),rt=(et-o)/2,it=Math.min(rt,tt*o/2),ot=st=>{const at=(et-Math.min(rt,st))*tt/2;return _limitValue(st,0,Math.min(rt,at))};return{outerStart:ot(nt.outerStart),outerEnd:ot(nt.outerEnd),innerStart:_limitValue(nt.innerStart,0,it),innerEnd:_limitValue(nt.innerEnd,0,it)}}function rThetaToXY(s,o,et,tt){return{x:et+s*Math.cos(o),y:tt+s*Math.sin(o)}}function pathArc(s,o,et,tt,nt,rt){const{x:it,y:ot,startAngle:st,pixelMargin:at,innerRadius:lt}=o,ut=Math.max(o.outerRadius+tt+et-at,0),dt=lt>0?lt+tt+et+at:0;let ht=0;const ct=nt-st;if(tt){const kt=lt>0?lt-tt:0,Nt=ut>0?ut-tt:0,Ot=(kt+Nt)/2,Wt=Ot!==0?ct*Ot/(Ot+tt):ct;ht=(ct-Wt)/2}const pt=Math.max(.001,ct*ut-et/PI)/ut,ft=(ct-pt)/2,gt=st+ft+ht,yt=nt-ft-ht,{outerStart:Ut,outerEnd:Ft,innerStart:mt,innerEnd:vt}=parseBorderRadius$1(o,dt,ut,yt-gt),At=ut-Ut,Lt=ut-Ft,Rt=gt+Ut/At,St=yt-Ft/Lt,Tt=dt+mt,Bt=dt+vt,xt=gt+mt/Tt,Ct=yt-vt/Bt;if(s.beginPath(),rt){const kt=(Rt+St)/2;if(s.arc(it,ot,ut,Rt,kt),s.arc(it,ot,ut,kt,St),Ft>0){const Dt=rThetaToXY(Lt,St,it,ot);s.arc(Dt.x,Dt.y,Ft,St,yt+HALF_PI)}const Nt=rThetaToXY(Bt,yt,it,ot);if(s.lineTo(Nt.x,Nt.y),vt>0){const Dt=rThetaToXY(Bt,Ct,it,ot);s.arc(Dt.x,Dt.y,vt,yt+HALF_PI,Ct+Math.PI)}const Ot=(yt-vt/dt+(gt+mt/dt))/2;if(s.arc(it,ot,dt,yt-vt/dt,Ot,!0),s.arc(it,ot,dt,Ot,gt+mt/dt,!0),mt>0){const Dt=rThetaToXY(Tt,xt,it,ot);s.arc(Dt.x,Dt.y,mt,xt+Math.PI,gt-HALF_PI)}const Wt=rThetaToXY(At,gt,it,ot);if(s.lineTo(Wt.x,Wt.y),Ut>0){const Dt=rThetaToXY(At,Rt,it,ot);s.arc(Dt.x,Dt.y,Ut,gt-HALF_PI,Rt)}}else{s.moveTo(it,ot);const kt=Math.cos(Rt)*ut+it,Nt=Math.sin(Rt)*ut+ot;s.lineTo(kt,Nt);const Ot=Math.cos(St)*ut+it,Wt=Math.sin(St)*ut+ot;s.lineTo(Ot,Wt)}s.closePath()}function drawArc(s,o,et,tt,nt){const{fullCircles:rt,startAngle:it,circumference:ot}=o;let st=o.endAngle;if(rt){pathArc(s,o,et,tt,st,nt);for(let at=0;at=TAU$1||_angleBetween(rt,ot,st),ct=_isBetween(it,at+dt,lt+dt);return ht&&ct}getCenterPoint(o){const{x:et,y:tt,startAngle:nt,endAngle:rt,innerRadius:it,outerRadius:ot}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],o),{offset:st,spacing:at}=this.options,lt=(nt+rt)/2,ut=(it+ot+at+st)/2;return{x:et+Math.cos(lt)*ut,y:tt+Math.sin(lt)*ut}}tooltipPosition(o){return this.getCenterPoint(o)}draw(o){const{options:et,circumference:tt}=this,nt=(et.offset||0)/4,rt=(et.spacing||0)/2,it=et.circular;if(this.pixelMargin=et.borderAlign==="inner"?.33:0,this.fullCircles=tt>TAU$1?Math.floor(tt/TAU$1):0,tt===0||this.innerRadius<0||this.outerRadius<0)return;o.save();const ot=(this.startAngle+this.endAngle)/2;o.translate(Math.cos(ot)*nt,Math.sin(ot)*nt);const st=1-Math.sin(Math.min(PI,tt||0)),at=nt*st;o.fillStyle=et.backgroundColor,o.strokeStyle=et.borderColor,drawArc(o,this,at,rt,it),drawBorder(o,this,at,rt,it),o.restore()}}He(ArcElement,"id","arc"),He(ArcElement,"defaults",{borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0}),He(ArcElement,"defaultRoutes",{backgroundColor:"backgroundColor"});function setStyle(s,o,et=o){s.lineCap=valueOrDefault(et.borderCapStyle,o.borderCapStyle),s.setLineDash(valueOrDefault(et.borderDash,o.borderDash)),s.lineDashOffset=valueOrDefault(et.borderDashOffset,o.borderDashOffset),s.lineJoin=valueOrDefault(et.borderJoinStyle,o.borderJoinStyle),s.lineWidth=valueOrDefault(et.borderWidth,o.borderWidth),s.strokeStyle=valueOrDefault(et.borderColor,o.borderColor)}function lineTo(s,o,et){s.lineTo(et.x,et.y)}function getLineMethod(s){return s.stepped?_steppedLineTo:s.tension||s.cubicInterpolationMode==="monotone"?_bezierCurveTo:lineTo}function pathVars(s,o,et={}){const tt=s.length,{start:nt=0,end:rt=tt-1}=et,{start:it,end:ot}=o,st=Math.max(nt,it),at=Math.min(rt,ot),lt=ntot&&rt>ot;return{count:tt,start:st,loop:o.loop,ilen:at(it+(at?ot-Ft:Ft))%rt,Ut=()=>{pt!==ft&&(s.lineTo(lt,ft),s.lineTo(lt,pt),s.lineTo(lt,gt))};for(st&&(ht=nt[yt(0)],s.moveTo(ht.x,ht.y)),dt=0;dt<=ot;++dt){if(ht=nt[yt(dt)],ht.skip)continue;const Ft=ht.x,mt=ht.y,vt=Ft|0;vt===ct?(mtft&&(ft=mt),lt=(ut*lt+Ft)/++ut):(Ut(),s.lineTo(Ft,mt),ct=vt,ut=0,pt=ft=mt),gt=mt}Ut()}function _getSegmentMethod(s){const o=s.options,et=o.borderDash&&o.borderDash.length;return!s._decimated&&!s._loop&&!o.tension&&o.cubicInterpolationMode!=="monotone"&&!o.stepped&&!et?fastPathSegment:pathSegment}function _getInterpolationMethod(s){return s.stepped?_steppedInterpolation:s.tension||s.cubicInterpolationMode==="monotone"?_bezierInterpolation:_pointInLine}function strokePathWithCache(s,o,et,tt){let nt=o._path;nt||(nt=o._path=new Path2D,o.path(nt,et,tt)&&nt.closePath()),setStyle(s,o.options),s.stroke(nt)}function strokePathDirect(s,o,et,tt){const{segments:nt,options:rt}=o,it=_getSegmentMethod(o);for(const ot of nt)setStyle(s,rt,ot.style),s.beginPath(),it(s,o,ot,{start:et,end:et+tt-1})&&s.closePath(),s.stroke()}const usePath2D=typeof Path2D=="function";function draw(s,o,et,tt){usePath2D&&!o.options.segment?strokePathWithCache(s,o,et,tt):strokePathDirect(s,o,et,tt)}class LineElement extends Element$1{constructor(o){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,o&&Object.assign(this,o)}updateControlPoints(o,et){const tt=this.options;if((tt.tension||tt.cubicInterpolationMode==="monotone")&&!tt.stepped&&!this._pointsUpdated){const nt=tt.spanGaps?this._loop:this._fullLoop;_updateBezierControlPoints(this._points,tt,o,nt,et),this._pointsUpdated=!0}}set points(o){this._points=o,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=_computeSegments(this,this.options.segment))}first(){const o=this.segments,et=this.points;return o.length&&et[o[0].start]}last(){const o=this.segments,et=this.points,tt=o.length;return tt&&et[o[tt-1].end]}interpolate(o,et){const tt=this.options,nt=o[et],rt=this.points,it=_boundSegments(this,{property:et,start:nt,end:nt});if(!it.length)return;const ot=[],st=_getInterpolationMethod(tt);let at,lt;for(at=0,lt=it.length;ats!=="borderDash"&&s!=="fill"});function inRange$1(s,o,et,tt){const nt=s.options,{[et]:rt}=s.getProps([et],tt);return Math.abs(o-rt)s.replace("rgb(","rgba(").replace(")",", 0.5)"));function getBorderColor(s){return BORDER_COLORS[s%BORDER_COLORS.length]}function getBackgroundColor(s){return BACKGROUND_COLORS[s%BACKGROUND_COLORS.length]}function colorizeDefaultDataset(s,o){return s.borderColor=getBorderColor(o),s.backgroundColor=getBackgroundColor(o),++o}function colorizeDoughnutDataset(s,o){return s.backgroundColor=s.data.map(()=>getBorderColor(o++)),o}function colorizePolarAreaDataset(s,o){return s.backgroundColor=s.data.map(()=>getBackgroundColor(o++)),o}function getColorizer(s){let o=0;return(et,tt)=>{const nt=s.getDatasetMeta(tt).controller;nt instanceof DoughnutController?o=colorizeDoughnutDataset(et,o):nt instanceof PolarAreaController?o=colorizePolarAreaDataset(et,o):nt&&(o=colorizeDefaultDataset(et,o))}}function containsColorsDefinitions(s){let o;for(o in s)if(s[o].borderColor||s[o].backgroundColor)return!0;return!1}function containsColorsDefinition(s){return s&&(s.borderColor||s.backgroundColor)}var plugin_colors={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(s,o,et){if(!et.enabled)return;const{data:{datasets:tt},options:nt}=s.config,{elements:rt}=nt;if(!et.forceOverride&&(containsColorsDefinitions(tt)||containsColorsDefinition(nt)||rt&&containsColorsDefinitions(rt)))return;const it=getColorizer(s);tt.forEach(it)}};function lttbDecimation(s,o,et,tt,nt){const rt=nt.samples||tt;if(rt>=et)return s.slice(o,o+et);const it=[],ot=(et-2)/(rt-2);let st=0;const at=o+et-1;let lt=o,ut,dt,ht,ct,pt;for(it[st++]=s[lt],ut=0;utht&&(ht=ct,dt=s[yt],pt=yt);it[st++]=dt,lt=pt}return it[st++]=s[at],it}function minMaxDecimation(s,o,et,tt){let nt=0,rt=0,it,ot,st,at,lt,ut,dt,ht,ct,pt;const ft=[],gt=o+et-1,yt=s[o].x,Ut=s[gt].x-yt;for(it=o;itpt&&(pt=at,dt=it),nt=(rt*nt+ot.x)/++rt;else{const mt=it-1;if(!isNullOrUndef(ut)&&!isNullOrUndef(dt)){const vt=Math.min(ut,dt),At=Math.max(ut,dt);vt!==ht&&vt!==mt&&ft.push({...s[vt],x:nt}),At!==ht&&At!==mt&&ft.push({...s[At],x:nt})}it>0&&mt!==ht&&ft.push(s[mt]),ft.push(ot),lt=Ft,rt=0,ct=pt=at,ut=dt=ht=it}}return ft}function cleanDecimatedDataset(s){if(s._decimated){const o=s._data;delete s._decimated,delete s._data,Object.defineProperty(s,"data",{value:o})}}function cleanDecimatedData(s){s.data.datasets.forEach(o=>{cleanDecimatedDataset(o)})}function getStartAndCountOfVisiblePointsSimplified(s,o){const et=o.length;let tt=0,nt;const{iScale:rt}=s,{min:it,max:ot,minDefined:st,maxDefined:at}=rt.getUserBounds();return st&&(tt=_limitValue(_lookupByKey(o,rt.axis,it).lo,0,et-1)),at?nt=_limitValue(_lookupByKey(o,rt.axis,ot).hi+1,tt,et)-tt:nt=et-tt,{start:tt,count:nt}}var plugin_decimation={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(s,o,et)=>{if(!et.enabled){cleanDecimatedData(s);return}const tt=s.width;s.data.datasets.forEach((nt,rt)=>{const{_data:it,indexAxis:ot}=nt,st=s.getDatasetMeta(rt),at=it||nt.data;if(resolve([ot,s.options.indexAxis])==="y"||!st.controller.supportsDecimation)return;const lt=s.scales[st.xAxisID];if(lt.type!=="linear"&<.type!=="time"||s.options.parsing)return;let{start:ut,count:dt}=getStartAndCountOfVisiblePointsSimplified(st,at);const ht=et.threshold||4*tt;if(dt<=ht){cleanDecimatedDataset(nt);return}isNullOrUndef(it)&&(nt._data=at,delete nt.data,Object.defineProperty(nt,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(pt){this._data=pt}}));let ct;switch(et.algorithm){case"lttb":ct=lttbDecimation(at,ut,dt,tt,et);break;case"min-max":ct=minMaxDecimation(at,ut,dt,tt);break;default:throw new Error(`Unsupported decimation algorithm '${et.algorithm}'`)}nt._decimated=ct})},destroy(s){cleanDecimatedData(s)}};function _segments(s,o,et){const tt=s.segments,nt=s.points,rt=o.points,it=[];for(const ot of tt){let{start:st,end:at}=ot;at=_findSegmentEnd(st,at,nt);const lt=_getBounds$1(et,nt[st],nt[at],ot.loop);if(!o.segments){it.push({source:ot,target:lt,start:nt[st],end:nt[at]});continue}const ut=_boundSegments(o,lt);for(const dt of ut){const ht=_getBounds$1(et,rt[dt.start],rt[dt.end],dt.loop),ct=_boundSegment(ot,nt,ht);for(const pt of ct)it.push({source:pt,target:dt,start:{[et]:_getEdge(lt,ht,"start",Math.max)},end:{[et]:_getEdge(lt,ht,"end",Math.min)}})}}return it}function _getBounds$1(s,o,et,tt){if(tt)return;let nt=o[s],rt=et[s];return s==="angle"&&(nt=_normalizeAngle(nt),rt=_normalizeAngle(rt)),{property:s,start:nt,end:rt}}function _pointsFromSegments(s,o){const{x:et=null,y:tt=null}=s||{},nt=o.points,rt=[];return o.segments.forEach(({start:it,end:ot})=>{ot=_findSegmentEnd(it,ot,nt);const st=nt[it],at=nt[ot];tt!==null?(rt.push({x:st.x,y:tt}),rt.push({x:at.x,y:tt})):et!==null&&(rt.push({x:et,y:st.y}),rt.push({x:et,y:at.y}))}),rt}function _findSegmentEnd(s,o,et){for(;o>s;o--){const tt=et[o];if(!isNaN(tt.x)&&!isNaN(tt.y))break}return o}function _getEdge(s,o,et,tt){return s&&o?tt(s[et],o[et]):s?s[et]:o?o[et]:0}function _createBoundaryLine(s,o){let et=[],tt=!1;return isArray$4(s)?(tt=!0,et=s):et=_pointsFromSegments(s,o),et.length?new LineElement({points:et,options:{tension:0},_loop:tt,_fullLoop:tt}):null}function _shouldApplyFill(s){return s&&s.fill!==!1}function _resolveTarget(s,o,et){let tt=s[o].fill;const nt=[o];let rt;if(!et)return tt;for(;tt!==!1&&nt.indexOf(tt)===-1;){if(!isNumberFinite(tt))return tt;if(rt=s[tt],!rt)return!1;if(rt.visible)return tt;nt.push(tt),tt=rt.fill}return!1}function _decodeFill(s,o,et){const tt=parseFillOption(s);if(isObject$2(tt))return isNaN(tt.value)?!1:tt;let nt=parseFloat(tt);return isNumberFinite(nt)&&Math.floor(nt)===nt?decodeTargetIndex(tt[0],o,nt,et):["origin","start","end","stack","shape"].indexOf(tt)>=0&&tt}function decodeTargetIndex(s,o,et,tt){return(s==="-"||s==="+")&&(et=o+et),et===o||et<0||et>=tt?!1:et}function _getTargetPixel(s,o){let et=null;return s==="start"?et=o.bottom:s==="end"?et=o.top:isObject$2(s)?et=o.getPixelForValue(s.value):o.getBasePixel&&(et=o.getBasePixel()),et}function _getTargetValue(s,o,et){let tt;return s==="start"?tt=et:s==="end"?tt=o.options.reverse?o.min:o.max:isObject$2(s)?tt=s.value:tt=o.getBaseValue(),tt}function parseFillOption(s){const o=s.options,et=o.fill;let tt=valueOrDefault(et&&et.target,et);return tt===void 0&&(tt=!!o.backgroundColor),tt===!1||tt===null?!1:tt===!0?"origin":tt}function _buildStackLine(s){const{scale:o,index:et,line:tt}=s,nt=[],rt=tt.segments,it=tt.points,ot=getLinesBelow(o,et);ot.push(_createBoundaryLine({x:null,y:o.bottom},tt));for(let st=0;st=0;--it){const ot=nt[it].$filler;ot&&(ot.line.updateControlPoints(rt,ot.axis),tt&&ot.fill&&_drawfill(s.ctx,ot,rt))}},beforeDatasetsDraw(s,o,et){if(et.drawTime!=="beforeDatasetsDraw")return;const tt=s.getSortedVisibleDatasetMetas();for(let nt=tt.length-1;nt>=0;--nt){const rt=tt[nt].$filler;_shouldApplyFill(rt)&&_drawfill(s.ctx,rt,s.chartArea)}},beforeDatasetDraw(s,o,et){const tt=o.meta.$filler;!_shouldApplyFill(tt)||et.drawTime!=="beforeDatasetDraw"||_drawfill(s.ctx,tt,s.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const getBoxSize=(s,o)=>{let{boxHeight:et=o,boxWidth:tt=o}=s;return s.usePointStyle&&(et=Math.min(et,o),tt=s.pointStyleWidth||Math.min(tt,o)),{boxWidth:tt,boxHeight:et,itemHeight:Math.max(o,et)}},itemsEqual=(s,o)=>s!==null&&o!==null&&s.datasetIndex===o.datasetIndex&&s.index===o.index;class Legend extends Element$1{constructor(o){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=o.chart,this.options=o.options,this.ctx=o.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(o,et,tt){this.maxWidth=o,this.maxHeight=et,this._margins=tt,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const o=this.options.labels||{};let et=callback(o.generateLabels,[this.chart],this)||[];o.filter&&(et=et.filter(tt=>o.filter(tt,this.chart.data))),o.sort&&(et=et.sort((tt,nt)=>o.sort(tt,nt,this.chart.data))),this.options.reverse&&et.reverse(),this.legendItems=et}fit(){const{options:o,ctx:et}=this;if(!o.display){this.width=this.height=0;return}const tt=o.labels,nt=toFont(tt.font),rt=nt.size,it=this._computeTitleHeight(),{boxWidth:ot,itemHeight:st}=getBoxSize(tt,rt);let at,lt;et.font=nt.string,this.isHorizontal()?(at=this.maxWidth,lt=this._fitRows(it,rt,ot,st)+10):(lt=this.maxHeight,at=this._fitCols(it,nt,ot,st)+10),this.width=Math.min(at,o.maxWidth||this.maxWidth),this.height=Math.min(lt,o.maxHeight||this.maxHeight)}_fitRows(o,et,tt,nt){const{ctx:rt,maxWidth:it,options:{labels:{padding:ot}}}=this,st=this.legendHitBoxes=[],at=this.lineWidths=[0],lt=nt+ot;let ut=o;rt.textAlign="left",rt.textBaseline="middle";let dt=-1,ht=-lt;return this.legendItems.forEach((ct,pt)=>{const ft=tt+et/2+rt.measureText(ct.text).width;(pt===0||at[at.length-1]+ft+2*ot>it)&&(ut+=lt,at[at.length-(pt>0?0:1)]=0,ht+=lt,dt++),st[pt]={left:0,top:ht,row:dt,width:ft,height:nt},at[at.length-1]+=ft+ot}),ut}_fitCols(o,et,tt,nt){const{ctx:rt,maxHeight:it,options:{labels:{padding:ot}}}=this,st=this.legendHitBoxes=[],at=this.columnSizes=[],lt=it-o;let ut=ot,dt=0,ht=0,ct=0,pt=0;return this.legendItems.forEach((ft,gt)=>{const{itemWidth:yt,itemHeight:Ut}=calculateItemSize(tt,et,rt,ft,nt);gt>0&&ht+Ut+2*ot>lt&&(ut+=dt+ot,at.push({width:dt,height:ht}),ct+=dt+ot,pt++,dt=ht=0),st[gt]={left:ct,top:ht,col:pt,width:yt,height:Ut},dt=Math.max(dt,yt),ht+=Ut+ot}),ut+=dt,at.push({width:dt,height:ht}),ut}adjustHitBoxes(){if(!this.options.display)return;const o=this._computeTitleHeight(),{legendHitBoxes:et,options:{align:tt,labels:{padding:nt},rtl:rt}}=this,it=getRtlAdapter(rt,this.left,this.width);if(this.isHorizontal()){let ot=0,st=_alignStartEnd(tt,this.left+nt,this.right-this.lineWidths[ot]);for(const at of et)ot!==at.row&&(ot=at.row,st=_alignStartEnd(tt,this.left+nt,this.right-this.lineWidths[ot])),at.top+=this.top+o+nt,at.left=it.leftForLtr(it.x(st),at.width),st+=at.width+nt}else{let ot=0,st=_alignStartEnd(tt,this.top+o+nt,this.bottom-this.columnSizes[ot].height);for(const at of et)at.col!==ot&&(ot=at.col,st=_alignStartEnd(tt,this.top+o+nt,this.bottom-this.columnSizes[ot].height)),at.top=st,at.left+=this.left+nt,at.left=it.leftForLtr(it.x(at.left),at.width),st+=at.height+nt}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const o=this.ctx;clipArea(o,this),this._draw(),unclipArea(o)}}_draw(){const{options:o,columnSizes:et,lineWidths:tt,ctx:nt}=this,{align:rt,labels:it}=o,ot=defaults$2.color,st=getRtlAdapter(o.rtl,this.left,this.width),at=toFont(it.font),{padding:lt}=it,ut=at.size,dt=ut/2;let ht;this.drawTitle(),nt.textAlign=st.textAlign("left"),nt.textBaseline="middle",nt.lineWidth=.5,nt.font=at.string;const{boxWidth:ct,boxHeight:pt,itemHeight:ft}=getBoxSize(it,ut),gt=function(vt,At,Lt){if(isNaN(ct)||ct<=0||isNaN(pt)||pt<0)return;nt.save();const Rt=valueOrDefault(Lt.lineWidth,1);if(nt.fillStyle=valueOrDefault(Lt.fillStyle,ot),nt.lineCap=valueOrDefault(Lt.lineCap,"butt"),nt.lineDashOffset=valueOrDefault(Lt.lineDashOffset,0),nt.lineJoin=valueOrDefault(Lt.lineJoin,"miter"),nt.lineWidth=Rt,nt.strokeStyle=valueOrDefault(Lt.strokeStyle,ot),nt.setLineDash(valueOrDefault(Lt.lineDash,[])),it.usePointStyle){const St={radius:pt*Math.SQRT2/2,pointStyle:Lt.pointStyle,rotation:Lt.rotation,borderWidth:Rt},Tt=st.xPlus(vt,ct/2),Bt=At+dt;drawPointLegend(nt,St,Tt,Bt,it.pointStyleWidth&&ct)}else{const St=At+Math.max((ut-pt)/2,0),Tt=st.leftForLtr(vt,ct),Bt=toTRBLCorners(Lt.borderRadius);nt.beginPath(),Object.values(Bt).some(xt=>xt!==0)?addRoundedRectPath(nt,{x:Tt,y:St,w:ct,h:pt,radius:Bt}):nt.rect(Tt,St,ct,pt),nt.fill(),Rt!==0&&nt.stroke()}nt.restore()},yt=function(vt,At,Lt){renderText(nt,Lt.text,vt,At+ft/2,at,{strikethrough:Lt.hidden,textAlign:st.textAlign(Lt.textAlign)})},Ut=this.isHorizontal(),Ft=this._computeTitleHeight();Ut?ht={x:_alignStartEnd(rt,this.left+lt,this.right-tt[0]),y:this.top+lt+Ft,line:0}:ht={x:this.left+lt,y:_alignStartEnd(rt,this.top+Ft+lt,this.bottom-et[0].height),line:0},overrideTextDirection(this.ctx,o.textDirection);const mt=ft+lt;this.legendItems.forEach((vt,At)=>{nt.strokeStyle=vt.fontColor,nt.fillStyle=vt.fontColor;const Lt=nt.measureText(vt.text).width,Rt=st.textAlign(vt.textAlign||(vt.textAlign=it.textAlign)),St=ct+dt+Lt;let Tt=ht.x,Bt=ht.y;st.setWidth(this.width),Ut?At>0&&Tt+St+lt>this.right&&(Bt=ht.y+=mt,ht.line++,Tt=ht.x=_alignStartEnd(rt,this.left+lt,this.right-tt[ht.line])):At>0&&Bt+mt>this.bottom&&(Tt=ht.x=Tt+et[ht.line].width+lt,ht.line++,Bt=ht.y=_alignStartEnd(rt,this.top+Ft+lt,this.bottom-et[ht.line].height));const xt=st.x(Tt);if(gt(xt,Bt,vt),Tt=_textX(Rt,Tt+ct+dt,Ut?Tt+St:this.right,o.rtl),yt(st.x(Tt),Bt,vt),Ut)ht.x+=St+lt;else if(typeof vt.text!="string"){const Ct=at.lineHeight;ht.y+=calculateLegendItemHeight(vt,Ct)}else ht.y+=mt}),restoreTextDirection(this.ctx,o.textDirection)}drawTitle(){const o=this.options,et=o.title,tt=toFont(et.font),nt=toPadding(et.padding);if(!et.display)return;const rt=getRtlAdapter(o.rtl,this.left,this.width),it=this.ctx,ot=et.position,st=tt.size/2,at=nt.top+st;let lt,ut=this.left,dt=this.width;if(this.isHorizontal())dt=Math.max(...this.lineWidths),lt=this.top+at,ut=_alignStartEnd(o.align,ut,this.right-dt);else{const ct=this.columnSizes.reduce((pt,ft)=>Math.max(pt,ft.height),0);lt=at+_alignStartEnd(o.align,this.top,this.bottom-ct-o.labels.padding-this._computeTitleHeight())}const ht=_alignStartEnd(ot,ut,ut+dt);it.textAlign=rt.textAlign(_toLeftRightCenter(ot)),it.textBaseline="middle",it.strokeStyle=et.color,it.fillStyle=et.color,it.font=tt.string,renderText(it,et.text,ht,lt,tt)}_computeTitleHeight(){const o=this.options.title,et=toFont(o.font),tt=toPadding(o.padding);return o.display?et.lineHeight+tt.height:0}_getLegendItemAt(o,et){let tt,nt,rt;if(_isBetween(o,this.left,this.right)&&_isBetween(et,this.top,this.bottom)){for(rt=this.legendHitBoxes,tt=0;ttrt.length>it.length?rt:it)),o+et.size/2+tt.measureText(nt).width}function calculateItemHeight(s,o,et){let tt=s;return typeof o.text!="string"&&(tt=calculateLegendItemHeight(o,et)),tt}function calculateLegendItemHeight(s,o){const et=s.text?s.text.length+.5:0;return o*et}function isListened(s,o){return!!((s==="mousemove"||s==="mouseout")&&(o.onHover||o.onLeave)||o.onClick&&(s==="click"||s==="mouseup"))}var plugin_legend={id:"legend",_element:Legend,start(s,o,et){const tt=s.legend=new Legend({ctx:s.ctx,options:et,chart:s});layouts.configure(s,tt,et),layouts.addBox(s,tt)},stop(s){layouts.removeBox(s,s.legend),delete s.legend},beforeUpdate(s,o,et){const tt=s.legend;layouts.configure(s,tt,et),tt.options=et},afterUpdate(s){const o=s.legend;o.buildLabels(),o.adjustHitBoxes()},afterEvent(s,o){o.replay||s.legend.handleEvent(o.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(s,o,et){const tt=o.datasetIndex,nt=et.chart;nt.isDatasetVisible(tt)?(nt.hide(tt),o.hidden=!0):(nt.show(tt),o.hidden=!1)},onHover:null,onLeave:null,labels:{color:s=>s.chart.options.color,boxWidth:40,padding:10,generateLabels(s){const o=s.data.datasets,{labels:{usePointStyle:et,pointStyle:tt,textAlign:nt,color:rt,useBorderRadius:it,borderRadius:ot}}=s.legend.options;return s._getSortedDatasetMetas().map(st=>{const at=st.controller.getStyle(et?0:void 0),lt=toPadding(at.borderWidth);return{text:o[st.index].label,fillStyle:at.backgroundColor,fontColor:rt,hidden:!st.visible,lineCap:at.borderCapStyle,lineDash:at.borderDash,lineDashOffset:at.borderDashOffset,lineJoin:at.borderJoinStyle,lineWidth:(lt.width+lt.height)/4,strokeStyle:at.borderColor,pointStyle:tt||at.pointStyle,rotation:at.rotation,textAlign:nt||at.textAlign,borderRadius:it&&(ot||at.borderRadius),datasetIndex:st.index}},this)}},title:{color:s=>s.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:s=>!s.startsWith("on"),labels:{_scriptable:s=>!["generateLabels","filter","sort"].includes(s)}}};class Title extends Element$1{constructor(o){super(),this.chart=o.chart,this.options=o.options,this.ctx=o.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(o,et){const tt=this.options;if(this.left=0,this.top=0,!tt.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=o,this.height=this.bottom=et;const nt=isArray$4(tt.text)?tt.text.length:1;this._padding=toPadding(tt.padding);const rt=nt*toFont(tt.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=rt:this.width=rt}isHorizontal(){const o=this.options.position;return o==="top"||o==="bottom"}_drawArgs(o){const{top:et,left:tt,bottom:nt,right:rt,options:it}=this,ot=it.align;let st=0,at,lt,ut;return this.isHorizontal()?(lt=_alignStartEnd(ot,tt,rt),ut=et+o,at=rt-tt):(it.position==="left"?(lt=tt+o,ut=_alignStartEnd(ot,nt,et),st=PI*-.5):(lt=rt-o,ut=_alignStartEnd(ot,et,nt),st=PI*.5),at=nt-et),{titleX:lt,titleY:ut,maxWidth:at,rotation:st}}draw(){const o=this.ctx,et=this.options;if(!et.display)return;const tt=toFont(et.font),nt=tt.lineHeight/2+this._padding.top,{titleX:rt,titleY:it,maxWidth:ot,rotation:st}=this._drawArgs(nt);renderText(o,et.text,0,0,tt,{color:et.color,maxWidth:ot,rotation:st,textAlign:_toLeftRightCenter(et.align),textBaseline:"middle",translation:[rt,it]})}}function createTitle(s,o){const et=new Title({ctx:s.ctx,options:o,chart:s});layouts.configure(s,et,o),layouts.addBox(s,et),s.titleBlock=et}var plugin_title={id:"title",_element:Title,start(s,o,et){createTitle(s,et)},stop(s){const o=s.titleBlock;layouts.removeBox(s,o),delete s.titleBlock},beforeUpdate(s,o,et){const tt=s.titleBlock;layouts.configure(s,tt,et),tt.options=et},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const map=new WeakMap;var plugin_subtitle={id:"subtitle",start(s,o,et){const tt=new Title({ctx:s.ctx,options:et,chart:s});layouts.configure(s,tt,et),layouts.addBox(s,tt),map.set(s,tt)},stop(s){layouts.removeBox(s,map.get(s)),map.delete(s)},beforeUpdate(s,o,et){const tt=map.get(s);layouts.configure(s,tt,et),tt.options=et},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const positioners={average(s){if(!s.length)return!1;let o,et,tt=0,nt=0,rt=0;for(o=0,et=s.length;oot({chart:o,initial:et.initial,numSteps:it,currentStep:Math.min(tt-et.start,it)}))}_refresh(){this._request||(this._running=!0,this._request=requestAnimFrame.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(o=Date.now()){let et=0;this._charts.forEach((tt,nt)=>{if(!tt.running||!tt.items.length)return;const rt=tt.items;let it=rt.length-1,ot=!1,st;for(;it>=0;--it)st=rt[it],st._active?(st._total>tt.duration&&(tt.duration=st._total),st.tick(o),ot=!0):(rt[it]=rt[rt.length-1],rt.pop());ot&&(nt.draw(),this._notify(nt,tt,o,"progress")),rt.length||(tt.running=!1,this._notify(nt,tt,o,"complete"),tt.initial=!1),et+=rt.length}),this._lastDate=o,et===0&&(this._running=!1)}_getAnims(o){const et=this._charts;let tt=et.get(o);return tt||(tt={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},et.set(o,tt)),tt}listen(o,et,tt){this._getAnims(o).listeners[et].push(tt)}add(o,et){!et||!et.length||this._getAnims(o).items.push(...et)}has(o){return this._getAnims(o).items.length>0}start(o){const et=this._charts.get(o);et&&(et.running=!0,et.start=Date.now(),et.duration=et.items.reduce((tt,nt)=>Math.max(tt,nt._duration),0),this._refresh())}running(o){if(!this._running)return!1;const et=this._charts.get(o);return!(!et||!et.running||!et.items.length)}stop(o){const et=this._charts.get(o);if(!et||!et.items.length)return;const tt=et.items;let nt=tt.length-1;for(;nt>=0;--nt)tt[nt].cancel();et.items=[],this._notify(o,et,Date.now(),"complete")}remove(o){return this._charts.delete(o)}}var animator=new Animator;const transparent="transparent",interpolators={boolean(s,o,et){return et>.5?o:s},color(s,o,et){const tt=color(s||transparent),nt=tt.valid&&color(o||transparent);return nt&&nt.valid?nt.mix(tt,et).hexString():o},number(s,o,et){return s+(o-s)*et}};class Animation{constructor(o,et,tt,nt){const rt=et[tt];nt=resolve([o.to,nt,rt,o.from]);const it=resolve([o.from,rt,nt]);this._active=!0,this._fn=o.fn||interpolators[o.type||typeof it],this._easing=effects[o.easing]||effects.linear,this._start=Math.floor(Date.now()+(o.delay||0)),this._duration=this._total=Math.floor(o.duration),this._loop=!!o.loop,this._target=et,this._prop=tt,this._from=it,this._to=nt,this._promises=void 0}active(){return this._active}update(o,et,tt){if(this._active){this._notify(!1);const nt=this._target[this._prop],rt=tt-this._start,it=this._duration-rt;this._start=tt,this._duration=Math.floor(Math.max(it,o.duration)),this._total+=rt,this._loop=!!o.loop,this._to=resolve([o.to,et,nt,o.from]),this._from=resolve([o.from,nt,et])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(o){const et=o-this._start,tt=this._duration,nt=this._prop,rt=this._from,it=this._loop,ot=this._to;let st;if(this._active=rt!==ot&&(it||et1?2-st:st,st=this._easing(Math.min(1,Math.max(0,st))),this._target[nt]=this._fn(rt,ot,st)}wait(){const o=this._promises||(this._promises=[]);return new Promise((et,tt)=>{o.push({res:et,rej:tt})})}_notify(o){const et=o?"res":"rej",tt=this._promises||[];for(let nt=0;nt{const rt=o[nt];if(!isObject$2(rt))return;const it={};for(const ot of et)it[ot]=rt[ot];(isArray$4(rt.properties)&&rt.properties||[nt]).forEach(ot=>{(ot===nt||!tt.has(ot))&&tt.set(ot,it)})})}_animateOptions(o,et){const tt=et.options,nt=resolveTargetOptions(o,tt);if(!nt)return[];const rt=this._createAnimations(nt,tt);return tt.$shared&&awaitAll(o.options.$animations,tt).then(()=>{o.options=tt},()=>{}),rt}_createAnimations(o,et){const tt=this._properties,nt=[],rt=o.$animations||(o.$animations={}),it=Object.keys(et),ot=Date.now();let st;for(st=it.length-1;st>=0;--st){const at=it[st];if(at.charAt(0)==="$")continue;if(at==="options"){nt.push(...this._animateOptions(o,et));continue}const lt=et[at];let ut=rt[at];const dt=tt.get(at);if(ut)if(dt&&ut.active()){ut.update(dt,lt,ot);continue}else ut.cancel();if(!dt||!dt.duration){o[at]=lt;continue}rt[at]=ut=new Animation(dt,o,at,lt),nt.push(ut)}return nt}update(o,et){if(this._properties.size===0){Object.assign(o,et);return}const tt=this._createAnimations(o,et);if(tt.length)return animator.add(this._chart,tt),!0}}function awaitAll(s,o){const et=[],tt=Object.keys(o);for(let nt=0;nt0||!et&&rt<0)return nt.index}return null}function updateStacks(s,o){const{chart:et,_cachedMeta:tt}=s,nt=et._stacks||(et._stacks={}),{iScale:rt,vScale:it,index:ot}=tt,st=rt.axis,at=it.axis,lt=getStackKey(rt,it,tt),ut=o.length;let dt;for(let ht=0;htet[tt].axis===o).shift()}function createDatasetContext(s,o){return createContext(s,{active:!1,dataset:void 0,datasetIndex:o,index:o,mode:"default",type:"dataset"})}function createDataContext(s,o,et){return createContext(s,{active:!1,dataIndex:o,parsed:void 0,raw:void 0,element:et,index:o,mode:"default",type:"data"})}function clearStacks(s,o){const et=s.controller.index,tt=s.vScale&&s.vScale.axis;if(tt){o=o||s._parsed;for(const nt of o){const rt=nt._stacks;if(!rt||rt[tt]===void 0||rt[tt][et]===void 0)return;delete rt[tt][et],rt[tt]._visualValues!==void 0&&rt[tt]._visualValues[et]!==void 0&&delete rt[tt]._visualValues[et]}}}const isDirectUpdateMode=s=>s==="reset"||s==="none",cloneIfNotShared=(s,o)=>o?s:Object.assign({},s),createStack=(s,o,et)=>s&&!o.hidden&&o._stacked&&{keys:getSortedDatasetIndices(et,!0),values:null};class DatasetController{constructor(o,et){this.chart=o,this._ctx=o.ctx,this.index=et,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const o=this._cachedMeta;this.configure(),this.linkScales(),o._stacked=isStacked(o.vScale,o),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(o){this.index!==o&&clearStacks(this._cachedMeta),this.index=o}linkScales(){const o=this.chart,et=this._cachedMeta,tt=this.getDataset(),nt=(ut,dt,ht,ct)=>ut==="x"?dt:ut==="r"?ct:ht,rt=et.xAxisID=valueOrDefault(tt.xAxisID,getFirstScaleId(o,"x")),it=et.yAxisID=valueOrDefault(tt.yAxisID,getFirstScaleId(o,"y")),ot=et.rAxisID=valueOrDefault(tt.rAxisID,getFirstScaleId(o,"r")),st=et.indexAxis,at=et.iAxisID=nt(st,rt,it,ot),lt=et.vAxisID=nt(st,it,rt,ot);et.xScale=this.getScaleForId(rt),et.yScale=this.getScaleForId(it),et.rScale=this.getScaleForId(ot),et.iScale=this.getScaleForId(at),et.vScale=this.getScaleForId(lt)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(o){return this.chart.scales[o]}_getOtherScale(o){const et=this._cachedMeta;return o===et.iScale?et.vScale:et.iScale}reset(){this._update("reset")}_destroy(){const o=this._cachedMeta;this._data&&unlistenArrayEvents(this._data,this),o._stacked&&clearStacks(o)}_dataCheck(){const o=this.getDataset(),et=o.data||(o.data=[]),tt=this._data;if(isObject$2(et))this._data=convertObjectDataToArray(et);else if(tt!==et){if(tt){unlistenArrayEvents(tt,this);const nt=this._cachedMeta;clearStacks(nt),nt._parsed=[]}et&&Object.isExtensible(et)&&listenArrayEvents(et,this),this._syncList=[],this._data=et}}addElements(){const o=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(o.dataset=new this.datasetElementType)}buildOrUpdateElements(o){const et=this._cachedMeta,tt=this.getDataset();let nt=!1;this._dataCheck();const rt=et._stacked;et._stacked=isStacked(et.vScale,et),et.stack!==tt.stack&&(nt=!0,clearStacks(et),et.stack=tt.stack),this._resyncElements(o),(nt||rt!==et._stacked)&&updateStacks(this,et._parsed)}configure(){const o=this.chart.config,et=o.datasetScopeKeys(this._type),tt=o.getOptionScopes(this.getDataset(),et,!0);this.options=o.createResolver(tt,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(o,et){const{_cachedMeta:tt,_data:nt}=this,{iScale:rt,_stacked:it}=tt,ot=rt.axis;let st=o===0&&et===nt.length?!0:tt._sorted,at=o>0&&tt._parsed[o-1],lt,ut,dt;if(this._parsing===!1)tt._parsed=nt,tt._sorted=!0,dt=nt;else{isArray$4(nt[o])?dt=this.parseArrayData(tt,nt,o,et):isObject$2(nt[o])?dt=this.parseObjectData(tt,nt,o,et):dt=this.parsePrimitiveData(tt,nt,o,et);const ht=()=>ut[ot]===null||at&&ut[ot]pt||ut=0;--dt)if(!ct()){this.updateRangeFromParsed(at,o,ht,st);break}}return at}getAllParsedValues(o){const et=this._cachedMeta._parsed,tt=[];let nt,rt,it;for(nt=0,rt=et.length;nt=0&&othis.getContext(tt,nt,et),pt=at.resolveNamedOptions(dt,ht,ct,ut);return pt.$shared&&(pt.$shared=st,rt[it]=Object.freeze(cloneIfNotShared(pt,st))),pt}_resolveAnimations(o,et,tt){const nt=this.chart,rt=this._cachedDataOpts,it=`animation-${et}`,ot=rt[it];if(ot)return ot;let st;if(nt.options.animation!==!1){const lt=this.chart.config,ut=lt.datasetAnimationScopeKeys(this._type,et),dt=lt.getOptionScopes(this.getDataset(),ut);st=lt.createResolver(dt,this.getContext(o,tt,et))}const at=new Animations(nt,st&&st.animations);return st&&st._cacheable&&(rt[it]=Object.freeze(at)),at}getSharedOptions(o){if(o.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},o))}includeOptions(o,et){return!et||isDirectUpdateMode(o)||this.chart._animationsDisabled}_getSharedOptions(o,et){const tt=this.resolveDataElementOptions(o,et),nt=this._sharedOptions,rt=this.getSharedOptions(tt),it=this.includeOptions(et,rt)||rt!==nt;return this.updateSharedOptions(rt,et,tt),{sharedOptions:rt,includeOptions:it}}updateElement(o,et,tt,nt){isDirectUpdateMode(nt)?Object.assign(o,tt):this._resolveAnimations(et,nt).update(o,tt)}updateSharedOptions(o,et,tt){o&&!isDirectUpdateMode(et)&&this._resolveAnimations(void 0,et).update(o,tt)}_setStyle(o,et,tt,nt){o.active=nt;const rt=this.getStyle(et,nt);this._resolveAnimations(et,tt,nt).update(o,{options:!nt&&this.getSharedOptions(rt)||rt})}removeHoverStyle(o,et,tt){this._setStyle(o,tt,"active",!1)}setHoverStyle(o,et,tt){this._setStyle(o,tt,"active",!0)}_removeDatasetHoverStyle(){const o=this._cachedMeta.dataset;o&&this._setStyle(o,void 0,"active",!1)}_setDatasetHoverStyle(){const o=this._cachedMeta.dataset;o&&this._setStyle(o,void 0,"active",!0)}_resyncElements(o){const et=this._data,tt=this._cachedMeta.data;for(const[ot,st,at]of this._syncList)this[ot](st,at);this._syncList=[];const nt=tt.length,rt=et.length,it=Math.min(rt,nt);it&&this.parse(0,it),rt>nt?this._insertElements(nt,rt-nt,o):rt{for(at.length+=et,ot=at.length-1;ot>=it;ot--)at[ot]=at[ot-et]};for(st(rt),ot=o;otnt-rt))}return s._cache.$bar}function computeMinSampleSize(s){const o=s.iScale,et=getAllScaleValues(o,s.type);let tt=o._length,nt,rt,it,ot;const st=()=>{it===32767||it===-32768||(defined$3(ot)&&(tt=Math.min(tt,Math.abs(it-ot)||tt)),ot=it)};for(nt=0,rt=et.length;nt0?nt[s-1]:null,ot=sMath.abs(ot)&&(st=ot,at=it),o[et.axis]=at,o._custom={barStart:st,barEnd:at,start:nt,end:rt,min:it,max:ot}}function parseValue(s,o,et,tt){return isArray$4(s)?parseFloatBar(s,o,et,tt):o[et.axis]=et.parse(s,tt),o}function parseArrayOrPrimitive(s,o,et,tt){const nt=s.iScale,rt=s.vScale,it=nt.getLabels(),ot=nt===rt,st=[];let at,lt,ut,dt;for(at=et,lt=et+tt;at=et?1:-1)}function borderProps(s){let o,et,tt,nt,rt;return s.horizontal?(o=s.base>s.x,et="left",tt="right"):(o=s.basest.controller.options.grouped),rt=tt.options.stacked,it=[],ot=st=>{const at=st.controller.getParsed(et),lt=at&&at[st.vScale.axis];if(isNullOrUndef(lt)||isNaN(lt))return!0};for(const st of nt)if(!(et!==void 0&&ot(st))&&((rt===!1||it.indexOf(st.stack)===-1||rt===void 0&&st.stack===void 0)&&it.push(st.stack),st.index===o))break;return it.length||it.push(void 0),it}_getStackCount(o){return this._getStacks(void 0,o).length}_getStackIndex(o,et,tt){const nt=this._getStacks(o,tt),rt=et!==void 0?nt.indexOf(et):-1;return rt===-1?nt.length-1:rt}_getRuler(){const o=this.options,et=this._cachedMeta,tt=et.iScale,nt=[];let rt,it;for(rt=0,it=et.data.length;rt=0;--tt)et=Math.max(et,o[tt].size(this.resolveDataElementOptions(tt))/2);return et>0&&et}getLabelAndValue(o){const et=this._cachedMeta,tt=this.chart.data.labels||[],{xScale:nt,yScale:rt}=et,it=this.getParsed(o),ot=nt.getLabelForValue(it.x),st=rt.getLabelForValue(it.y),at=it._custom;return{label:tt[o]||"",value:"("+ot+", "+st+(at?", "+at:"")+")"}}update(o){const et=this._cachedMeta.data;this.updateElements(et,0,et.length,o)}updateElements(o,et,tt,nt){const rt=nt==="reset",{iScale:it,vScale:ot}=this._cachedMeta,{sharedOptions:st,includeOptions:at}=this._getSharedOptions(et,nt),lt=it.axis,ut=ot.axis;for(let dt=et;dt_angleBetween(Ut,ot,st,!0)?1:Math.max(Ft,Ft*et,mt,mt*et),ct=(Ut,Ft,mt)=>_angleBetween(Ut,ot,st,!0)?-1:Math.min(Ft,Ft*et,mt,mt*et),pt=ht(0,at,ut),ft=ht(HALF_PI,lt,dt),gt=ct(PI,at,ut),yt=ct(PI+HALF_PI,lt,dt);tt=(pt-gt)/2,nt=(ft-yt)/2,rt=-(pt+gt)/2,it=-(ft+yt)/2}return{ratioX:tt,ratioY:nt,offsetX:rt,offsetY:it}}class DoughnutController extends DatasetController{constructor(o,et){super(o,et),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(o,et){const tt=this.getDataset().data,nt=this._cachedMeta;if(this._parsing===!1)nt._parsed=tt;else{let rt=st=>+tt[st];if(isObject$2(tt[o])){const{key:st="value"}=this._parsing;rt=at=>+resolveObjectKey(tt[at],st)}let it,ot;for(it=o,ot=o+et;it0&&!isNaN(o)?TAU$1*(Math.abs(o)/et):0}getLabelAndValue(o){const et=this._cachedMeta,tt=this.chart,nt=tt.data.labels||[],rt=formatNumber(et._parsed[o],tt.options.locale);return{label:nt[o]||"",value:rt}}getMaxBorderWidth(o){let et=0;const tt=this.chart;let nt,rt,it,ot,st;if(!o){for(nt=0,rt=tt.data.datasets.length;nts!=="spacing",_indexable:s=>s!=="spacing"}),He(DoughnutController,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(s){const o=s.data;if(o.labels.length&&o.datasets.length){const{labels:{pointStyle:et,color:tt}}=s.legend.options;return o.labels.map((nt,rt)=>{const it=s.getDatasetMeta(0).controller.getStyle(rt);return{text:nt,fillStyle:it.backgroundColor,strokeStyle:it.borderColor,fontColor:tt,lineWidth:it.borderWidth,pointStyle:et,hidden:!s.getDataVisibility(rt),index:rt}})}return[]}},onClick(s,o,et){et.chart.toggleDataVisibility(o.index),et.chart.update()}}}});class LineController extends DatasetController{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(o){const et=this._cachedMeta,{dataset:tt,data:nt=[],_dataset:rt}=et,it=this.chart._animationsDisabled;let{start:ot,count:st}=_getStartAndCountOfVisiblePoints(et,nt,it);this._drawStart=ot,this._drawCount=st,_scaleRangesChanged(et)&&(ot=0,st=nt.length),tt._chart=this.chart,tt._datasetIndex=this.index,tt._decimated=!!rt._decimated,tt.points=nt;const at=this.resolveDatasetElementOptions(o);this.options.showLine||(at.borderWidth=0),at.segment=this.options.segment,this.updateElement(tt,void 0,{animated:!it,options:at},o),this.updateElements(nt,ot,st,o)}updateElements(o,et,tt,nt){const rt=nt==="reset",{iScale:it,vScale:ot,_stacked:st,_dataset:at}=this._cachedMeta,{sharedOptions:lt,includeOptions:ut}=this._getSharedOptions(et,nt),dt=it.axis,ht=ot.axis,{spanGaps:ct,segment:pt}=this.options,ft=isNumber$1(ct)?ct:Number.POSITIVE_INFINITY,gt=this.chart._animationsDisabled||rt||nt==="none",yt=et+tt,Ut=o.length;let Ft=et>0&&this.getParsed(et-1);for(let mt=0;mt=yt){At.skip=!0;continue}const Lt=this.getParsed(mt),Rt=isNullOrUndef(Lt[ht]),St=At[dt]=it.getPixelForValue(Lt[dt],mt),Tt=At[ht]=rt||Rt?ot.getBasePixel():ot.getPixelForValue(st?this.applyStack(ot,Lt,st):Lt[ht],mt);At.skip=isNaN(St)||isNaN(Tt)||Rt,At.stop=mt>0&&Math.abs(Lt[dt]-Ft[dt])>ft,pt&&(At.parsed=Lt,At.raw=at.data[mt]),ut&&(At.options=lt||this.resolveDataElementOptions(mt,vt.active?"active":nt)),gt||this.updateElement(vt,mt,At,nt),Ft=Lt}}getMaxOverflow(){const o=this._cachedMeta,et=o.dataset,tt=et.options&&et.options.borderWidth||0,nt=o.data||[];if(!nt.length)return tt;const rt=nt[0].size(this.resolveDataElementOptions(0)),it=nt[nt.length-1].size(this.resolveDataElementOptions(nt.length-1));return Math.max(tt,rt,it)/2}draw(){const o=this._cachedMeta;o.dataset.updateControlPoints(this.chart.chartArea,o.iScale.axis),super.draw()}}He(LineController,"id","line"),He(LineController,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),He(LineController,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});class PolarAreaController extends DatasetController{constructor(o,et){super(o,et),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(o){const et=this._cachedMeta,tt=this.chart,nt=tt.data.labels||[],rt=formatNumber(et._parsed[o].r,tt.options.locale);return{label:nt[o]||"",value:rt}}parseObjectData(o,et,tt,nt){return _parseObjectDataRadialScale.bind(this)(o,et,tt,nt)}update(o){const et=this._cachedMeta.data;this._updateRadius(),this.updateElements(et,0,et.length,o)}getMinMax(){const o=this._cachedMeta,et={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return o.data.forEach((tt,nt)=>{const rt=this.getParsed(nt).r;!isNaN(rt)&&this.chart.getDataVisibility(nt)&&(rtet.max&&(et.max=rt))}),et}_updateRadius(){const o=this.chart,et=o.chartArea,tt=o.options,nt=Math.min(et.right-et.left,et.bottom-et.top),rt=Math.max(nt/2,0),it=Math.max(tt.cutoutPercentage?rt/100*tt.cutoutPercentage:1,0),ot=(rt-it)/o.getVisibleDatasetCount();this.outerRadius=rt-ot*this.index,this.innerRadius=this.outerRadius-ot}updateElements(o,et,tt,nt){const rt=nt==="reset",it=this.chart,ot=it.options.animation,st=this._cachedMeta.rScale,at=st.xCenter,lt=st.yCenter,ut=st.getIndexAngle(0)-.5*PI;let dt=ut,ht;const ct=360/this.countVisibleElements();for(ht=0;ht{!isNaN(this.getParsed(nt).r)&&this.chart.getDataVisibility(nt)&&et++}),et}_computeAngle(o,et,tt){return this.chart.getDataVisibility(o)?toRadians$1(this.resolveDataElementOptions(o,et).angle||tt):0}}He(PolarAreaController,"id","polarArea"),He(PolarAreaController,"defaults",{dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0}),He(PolarAreaController,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(s){const o=s.data;if(o.labels.length&&o.datasets.length){const{labels:{pointStyle:et,color:tt}}=s.legend.options;return o.labels.map((nt,rt)=>{const it=s.getDatasetMeta(0).controller.getStyle(rt);return{text:nt,fillStyle:it.backgroundColor,strokeStyle:it.borderColor,fontColor:tt,lineWidth:it.borderWidth,pointStyle:et,hidden:!s.getDataVisibility(rt),index:rt}})}return[]}},onClick(s,o,et){et.chart.toggleDataVisibility(o.index),et.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}});class PieController extends DoughnutController{}He(PieController,"id","pie"),He(PieController,"defaults",{cutout:0,rotation:0,circumference:360,radius:"100%"});class RadarController extends DatasetController{getLabelAndValue(o){const et=this._cachedMeta.vScale,tt=this.getParsed(o);return{label:et.getLabels()[o],value:""+et.getLabelForValue(tt[et.axis])}}parseObjectData(o,et,tt,nt){return _parseObjectDataRadialScale.bind(this)(o,et,tt,nt)}update(o){const et=this._cachedMeta,tt=et.dataset,nt=et.data||[],rt=et.iScale.getLabels();if(tt.points=nt,o!=="resize"){const it=this.resolveDatasetElementOptions(o);this.options.showLine||(it.borderWidth=0);const ot={_loop:!0,_fullLoop:rt.length===nt.length,options:it};this.updateElement(tt,void 0,ot,o)}this.updateElements(nt,0,nt.length,o)}updateElements(o,et,tt,nt){const rt=this._cachedMeta.rScale,it=nt==="reset";for(let ot=et;ot0&&this.getParsed(et-1);for(let Ft=et;Ft0&&Math.abs(vt[ht]-Ut[ht])>gt,ft&&(At.parsed=vt,At.raw=at.data[Ft]),dt&&(At.options=ut||this.resolveDataElementOptions(Ft,mt.active?"active":nt)),yt||this.updateElement(mt,Ft,At,nt),Ut=vt}this.updateSharedOptions(ut,nt,lt)}getMaxOverflow(){const o=this._cachedMeta,et=o.data||[];if(!this.options.showLine){let ot=0;for(let st=et.length-1;st>=0;--st)ot=Math.max(ot,et[st].size(this.resolveDataElementOptions(st))/2);return ot>0&&ot}const tt=o.dataset,nt=tt.options&&tt.options.borderWidth||0;if(!et.length)return nt;const rt=et[0].size(this.resolveDataElementOptions(0)),it=et[et.length-1].size(this.resolveDataElementOptions(et.length-1));return Math.max(nt,rt,it)/2}}He(ScatterController,"id","scatter"),He(ScatterController,"defaults",{datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1}),He(ScatterController,"overrides",{interaction:{mode:"point"},scales:{x:{type:"linear"},y:{type:"linear"}}});var controllers=Object.freeze({__proto__:null,BarController,BubbleController,DoughnutController,LineController,PolarAreaController,PieController,RadarController,ScatterController});function abstract(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class DateAdapterBase{static override(o){Object.assign(DateAdapterBase.prototype,o)}constructor(o){this.options=o||{}}init(){}formats(){return abstract()}parse(){return abstract()}format(){return abstract()}add(){return abstract()}diff(){return abstract()}startOf(){return abstract()}endOf(){return abstract()}}var adapters={_date:DateAdapterBase};function binarySearch(s,o,et,tt){const{controller:nt,data:rt,_sorted:it}=s,ot=nt._cachedMeta.iScale;if(ot&&o===ot.axis&&o!=="r"&&it&&rt.length){const st=ot._reversePixels?_rlookupByKey:_lookupByKey;if(tt){if(nt._sharedOptions){const at=rt[0],lt=typeof at.getRange=="function"&&at.getRange(o);if(lt){const ut=st(rt,o,et-lt),dt=st(rt,o,et+lt);return{lo:ut.lo,hi:dt.hi}}}}else return st(rt,o,et)}return{lo:0,hi:rt.length-1}}function evaluateInteractionItems(s,o,et,tt,nt){const rt=s.getSortedVisibleDatasetMetas(),it=et[o];for(let ot=0,st=rt.length;ot{st[it](o[et],nt)&&(rt.push({element:st,datasetIndex:at,index:lt}),ot=ot||st.inRange(o.x,o.y,nt))}),tt&&!ot?[]:rt}var Interaction={evaluateInteractionItems,modes:{index(s,o,et,tt){const nt=getRelativePosition(o,s),rt=et.axis||"x",it=et.includeInvisible||!1,ot=et.intersect?getIntersectItems(s,nt,rt,tt,it):getNearestItems(s,nt,rt,!1,tt,it),st=[];return ot.length?(s.getSortedVisibleDatasetMetas().forEach(at=>{const lt=ot[0].index,ut=at.data[lt];ut&&!ut.skip&&st.push({element:ut,datasetIndex:at.index,index:lt})}),st):[]},dataset(s,o,et,tt){const nt=getRelativePosition(o,s),rt=et.axis||"xy",it=et.includeInvisible||!1;let ot=et.intersect?getIntersectItems(s,nt,rt,tt,it):getNearestItems(s,nt,rt,!1,tt,it);if(ot.length>0){const st=ot[0].datasetIndex,at=s.getDatasetMeta(st).data;ot=[];for(let lt=0;ltet.pos===o)}function filterDynamicPositionByAxis(s,o){return s.filter(et=>STATIC_POSITIONS.indexOf(et.pos)===-1&&et.box.axis===o)}function sortByWeight(s,o){return s.sort((et,tt)=>{const nt=o?tt:et,rt=o?et:tt;return nt.weight===rt.weight?nt.index-rt.index:nt.weight-rt.weight})}function wrapBoxes(s){const o=[];let et,tt,nt,rt,it,ot;for(et=0,tt=(s||[]).length;etat.box.fullSize),!0),tt=sortByWeight(filterByPosition(o,"left"),!0),nt=sortByWeight(filterByPosition(o,"right")),rt=sortByWeight(filterByPosition(o,"top"),!0),it=sortByWeight(filterByPosition(o,"bottom")),ot=filterDynamicPositionByAxis(o,"x"),st=filterDynamicPositionByAxis(o,"y");return{fullSize:et,leftAndTop:tt.concat(rt),rightAndBottom:nt.concat(st).concat(it).concat(ot),chartArea:filterByPosition(o,"chartArea"),vertical:tt.concat(nt).concat(st),horizontal:rt.concat(it).concat(ot)}}function getCombinedMax(s,o,et,tt){return Math.max(s[et],o[et])+Math.max(s[tt],o[tt])}function updateMaxPadding(s,o){s.top=Math.max(s.top,o.top),s.left=Math.max(s.left,o.left),s.bottom=Math.max(s.bottom,o.bottom),s.right=Math.max(s.right,o.right)}function updateDims(s,o,et,tt){const{pos:nt,box:rt}=et,it=s.maxPadding;if(!isObject$2(nt)){et.size&&(s[nt]-=et.size);const ut=tt[et.stack]||{size:0,count:1};ut.size=Math.max(ut.size,et.horizontal?rt.height:rt.width),et.size=ut.size/ut.count,s[nt]+=et.size}rt.getPadding&&updateMaxPadding(it,rt.getPadding());const ot=Math.max(0,o.outerWidth-getCombinedMax(it,s,"left","right")),st=Math.max(0,o.outerHeight-getCombinedMax(it,s,"top","bottom")),at=ot!==s.w,lt=st!==s.h;return s.w=ot,s.h=st,et.horizontal?{same:at,other:lt}:{same:lt,other:at}}function handleMaxPadding(s){const o=s.maxPadding;function et(tt){const nt=Math.max(o[tt]-s[tt],0);return s[tt]+=nt,nt}s.y+=et("top"),s.x+=et("left"),et("right"),et("bottom")}function getMargins(s,o){const et=o.maxPadding;function tt(nt){const rt={left:0,top:0,right:0,bottom:0};return nt.forEach(it=>{rt[it]=Math.max(o[it],et[it])}),rt}return tt(s?["left","right"]:["top","bottom"])}function fitBoxes(s,o,et,tt){const nt=[];let rt,it,ot,st,at,lt;for(rt=0,it=s.length,at=0;rt{typeof pt.beforeLayout=="function"&&pt.beforeLayout()});const lt=st.reduce((pt,ft)=>ft.box.options&&ft.box.options.display===!1?pt:pt+1,0)||1,ut=Object.freeze({outerWidth:o,outerHeight:et,padding:nt,availableWidth:rt,availableHeight:it,vBoxMaxWidth:rt/2/lt,hBoxMaxHeight:it/2}),dt=Object.assign({},nt);updateMaxPadding(dt,toPadding(tt));const ht=Object.assign({maxPadding:dt,w:rt,h:it,x:nt.left,y:nt.top},nt),ct=setLayoutDims(st.concat(at),ut);fitBoxes(ot.fullSize,ht,ut,ct),fitBoxes(st,ht,ut,ct),fitBoxes(at,ht,ut,ct)&&fitBoxes(st,ht,ut,ct),handleMaxPadding(ht),placeBoxes(ot.leftAndTop,ht,ut,ct),ht.x+=ht.w,ht.y+=ht.h,placeBoxes(ot.rightAndBottom,ht,ut,ct),s.chartArea={left:ht.left,top:ht.top,right:ht.left+ht.w,bottom:ht.top+ht.h,height:ht.h,width:ht.w},each(ot.chartArea,pt=>{const ft=pt.box;Object.assign(ft,s.chartArea),ft.update(ht.w,ht.h,{left:0,top:0,right:0,bottom:0})})}};class BasePlatform{acquireContext(o,et){}releaseContext(o){return!1}addEventListener(o,et,tt){}removeEventListener(o,et,tt){}getDevicePixelRatio(){return 1}getMaximumSize(o,et,tt,nt){return et=Math.max(0,et||o.width),tt=tt||o.height,{width:et,height:Math.max(0,nt?Math.floor(et/nt):tt)}}isAttached(o){return!0}updateConfig(o){}}class BasicPlatform extends BasePlatform{acquireContext(o){return o&&o.getContext&&o.getContext("2d")||null}updateConfig(o){o.options.animation=!1}}const EXPANDO_KEY="$chartjs",EVENT_TYPES={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},isNullOrEmpty=s=>s===null||s==="";function initCanvas(s,o){const et=s.style,tt=s.getAttribute("height"),nt=s.getAttribute("width");if(s[EXPANDO_KEY]={initial:{height:tt,width:nt,style:{display:et.display,height:et.height,width:et.width}}},et.display=et.display||"block",et.boxSizing=et.boxSizing||"border-box",isNullOrEmpty(nt)){const rt=readUsedSize(s,"width");rt!==void 0&&(s.width=rt)}if(isNullOrEmpty(tt))if(s.style.height==="")s.height=s.width/(o||2);else{const rt=readUsedSize(s,"height");rt!==void 0&&(s.height=rt)}return s}const eventListenerOptions=supportsEventListenerOptions?{passive:!0}:!1;function addListener(s,o,et){s.addEventListener(o,et,eventListenerOptions)}function removeListener(s,o,et){s.canvas.removeEventListener(o,et,eventListenerOptions)}function fromNativeEvent(s,o){const et=EVENT_TYPES[s.type]||s.type,{x:tt,y:nt}=getRelativePosition(s,o);return{type:et,chart:o,native:s,x:tt!==void 0?tt:null,y:nt!==void 0?nt:null}}function nodeListContains(s,o){for(const et of s)if(et===o||et.contains(o))return!0}function createAttachObserver(s,o,et){const tt=s.canvas,nt=new MutationObserver(rt=>{let it=!1;for(const ot of rt)it=it||nodeListContains(ot.addedNodes,tt),it=it&&!nodeListContains(ot.removedNodes,tt);it&&et()});return nt.observe(document,{childList:!0,subtree:!0}),nt}function createDetachObserver(s,o,et){const tt=s.canvas,nt=new MutationObserver(rt=>{let it=!1;for(const ot of rt)it=it||nodeListContains(ot.removedNodes,tt),it=it&&!nodeListContains(ot.addedNodes,tt);it&&et()});return nt.observe(document,{childList:!0,subtree:!0}),nt}const drpListeningCharts=new Map;let oldDevicePixelRatio=0;function onWindowResize(){const s=window.devicePixelRatio;s!==oldDevicePixelRatio&&(oldDevicePixelRatio=s,drpListeningCharts.forEach((o,et)=>{et.currentDevicePixelRatio!==s&&o()}))}function listenDevicePixelRatioChanges(s,o){drpListeningCharts.size||window.addEventListener("resize",onWindowResize),drpListeningCharts.set(s,o)}function unlistenDevicePixelRatioChanges(s){drpListeningCharts.delete(s),drpListeningCharts.size||window.removeEventListener("resize",onWindowResize)}function createResizeObserver(s,o,et){const tt=s.canvas,nt=tt&&_getParentNode(tt);if(!nt)return;const rt=throttled((ot,st)=>{const at=nt.clientWidth;et(ot,st),at{const st=ot[0],at=st.contentRect.width,lt=st.contentRect.height;at===0&<===0||rt(at,lt)});return it.observe(nt),listenDevicePixelRatioChanges(s,rt),it}function releaseObserver(s,o,et){et&&et.disconnect(),o==="resize"&&unlistenDevicePixelRatioChanges(s)}function createProxyAndListen(s,o,et){const tt=s.canvas,nt=throttled(rt=>{s.ctx!==null&&et(fromNativeEvent(rt,s))},s);return addListener(tt,o,nt),nt}class DomPlatform extends BasePlatform{acquireContext(o,et){const tt=o&&o.getContext&&o.getContext("2d");return tt&&tt.canvas===o?(initCanvas(o,et),tt):null}releaseContext(o){const et=o.canvas;if(!et[EXPANDO_KEY])return!1;const tt=et[EXPANDO_KEY].initial;["height","width"].forEach(rt=>{const it=tt[rt];isNullOrUndef(it)?et.removeAttribute(rt):et.setAttribute(rt,it)});const nt=tt.style||{};return Object.keys(nt).forEach(rt=>{et.style[rt]=nt[rt]}),et.width=et.width,delete et[EXPANDO_KEY],!0}addEventListener(o,et,tt){this.removeEventListener(o,et);const nt=o.$proxies||(o.$proxies={}),rt={attach:createAttachObserver,detach:createDetachObserver,resize:createResizeObserver}[et]||createProxyAndListen;nt[et]=rt(o,et,tt)}removeEventListener(o,et){const tt=o.$proxies||(o.$proxies={}),nt=tt[et];nt&&(({attach:releaseObserver,detach:releaseObserver,resize:releaseObserver}[et]||removeListener)(o,et,nt),tt[et]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(o,et,tt,nt){return getMaximumSize(o,et,tt,nt)}isAttached(o){const et=_getParentNode(o);return!!(et&&et.isConnected)}}function _detectPlatform(s){return!_isDomSupported()||typeof OffscreenCanvas<"u"&&s instanceof OffscreenCanvas?BasicPlatform:DomPlatform}let Element$1=class{constructor(){He(this,"active",!1)}tooltipPosition(o){const{x:et,y:tt}=this.getProps(["x","y"],o);return{x:et,y:tt}}hasValue(){return isNumber$1(this.x)&&isNumber$1(this.y)}getProps(o,et){const tt=this.$animations;if(!et||!tt)return this;const nt={};return o.forEach(rt=>{nt[rt]=tt[rt]&&tt[rt].active()?tt[rt]._to:this[rt]}),nt}};He(Element$1,"defaults",{}),He(Element$1,"defaultRoutes");function autoSkip(s,o){const et=s.options.ticks,tt=determineMaxTicks(s),nt=Math.min(et.maxTicksLimit||tt,tt),rt=et.major.enabled?getMajorIndices(o):[],it=rt.length,ot=rt[0],st=rt[it-1],at=[];if(it>nt)return skipMajors(o,at,rt,it/nt),at;const lt=calculateSpacing(rt,o,nt);if(it>0){let ut,dt;const ht=it>1?Math.round((st-ot)/(it-1)):null;for(skip(o,at,lt,isNullOrUndef(ht)?0:ot-ht,ot),ut=0,dt=it-1;utnt)return st}return Math.max(nt,1)}function getMajorIndices(s){const o=[];let et,tt;for(et=0,tt=s.length;ets==="left"?"right":s==="right"?"left":s,offsetFromEdge=(s,o,et)=>o==="top"||o==="left"?s[o]+et:s[o]-et;function sample(s,o){const et=[],tt=s.length/o,nt=s.length;let rt=0;for(;rtit+ot)))return st}function garbageCollect(s,o){each(s,et=>{const tt=et.gc,nt=tt.length/2;let rt;if(nt>o){for(rt=0;rttt?tt:et,tt=nt&&et>tt?et:tt,{min:finiteOrDefault(et,finiteOrDefault(tt,et)),max:finiteOrDefault(tt,finiteOrDefault(et,tt))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const o=this.chart.data;return this.options.labels||(this.isHorizontal()?o.xLabels:o.yLabels)||o.labels||[]}getLabelItems(o=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(o))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){callback(this.options.beforeUpdate,[this])}update(o,et,tt){const{beginAtZero:nt,grace:rt,ticks:it}=this.options,ot=it.sampleSize;this.beforeUpdate(),this.maxWidth=o,this.maxHeight=et,this._margins=tt=Object.assign({left:0,right:0,top:0,bottom:0},tt),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+tt.left+tt.right:this.height+tt.top+tt.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=_addGrace(this,rt,nt),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const st=ot=rt||tt<=1||!this.isHorizontal()){this.labelRotation=nt;return}const lt=this._getLabelSizes(),ut=lt.widest.width,dt=lt.highest.height,ht=_limitValue(this.chart.width-ut,0,this.maxWidth);ot=o.offset?this.maxWidth/tt:ht/(tt-1),ut+6>ot&&(ot=ht/(tt-(o.offset?.5:1)),st=this.maxHeight-getTickMarkLength(o.grid)-et.padding-getTitleHeight(o.title,this.chart.options.font),at=Math.sqrt(ut*ut+dt*dt),it=toDegrees$1(Math.min(Math.asin(_limitValue((lt.highest.height+6)/ot,-1,1)),Math.asin(_limitValue(st/at,-1,1))-Math.asin(_limitValue(dt/at,-1,1)))),it=Math.max(nt,Math.min(rt,it))),this.labelRotation=it}afterCalculateLabelRotation(){callback(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){callback(this.options.beforeFit,[this])}fit(){const o={width:0,height:0},{chart:et,options:{ticks:tt,title:nt,grid:rt}}=this,it=this._isVisible(),ot=this.isHorizontal();if(it){const st=getTitleHeight(nt,et.options.font);if(ot?(o.width=this.maxWidth,o.height=getTickMarkLength(rt)+st):(o.height=this.maxHeight,o.width=getTickMarkLength(rt)+st),tt.display&&this.ticks.length){const{first:at,last:lt,widest:ut,highest:dt}=this._getLabelSizes(),ht=tt.padding*2,ct=toRadians$1(this.labelRotation),pt=Math.cos(ct),ft=Math.sin(ct);if(ot){const gt=tt.mirror?0:ft*ut.width+pt*dt.height;o.height=Math.min(this.maxHeight,o.height+gt+ht)}else{const gt=tt.mirror?0:pt*ut.width+ft*dt.height;o.width=Math.min(this.maxWidth,o.width+gt+ht)}this._calculatePadding(at,lt,ft,pt)}}this._handleMargins(),ot?(this.width=this._length=et.width-this._margins.left-this._margins.right,this.height=o.height):(this.width=o.width,this.height=this._length=et.height-this._margins.top-this._margins.bottom)}_calculatePadding(o,et,tt,nt){const{ticks:{align:rt,padding:it},position:ot}=this.options,st=this.labelRotation!==0,at=ot!=="top"&&this.axis==="x";if(this.isHorizontal()){const lt=this.getPixelForTick(0)-this.left,ut=this.right-this.getPixelForTick(this.ticks.length-1);let dt=0,ht=0;st?at?(dt=nt*o.width,ht=tt*et.height):(dt=tt*o.height,ht=nt*et.width):rt==="start"?ht=et.width:rt==="end"?dt=o.width:rt!=="inner"&&(dt=o.width/2,ht=et.width/2),this.paddingLeft=Math.max((dt-lt+it)*this.width/(this.width-lt),0),this.paddingRight=Math.max((ht-ut+it)*this.width/(this.width-ut),0)}else{let lt=et.height/2,ut=o.height/2;rt==="start"?(lt=0,ut=o.height):rt==="end"&&(lt=et.height,ut=0),this.paddingTop=lt+it,this.paddingBottom=ut+it}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){callback(this.options.afterFit,[this])}isHorizontal(){const{axis:o,position:et}=this.options;return et==="top"||et==="bottom"||o==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(o){this.beforeTickToLabelConversion(),this.generateTickLabels(o);let et,tt;for(et=0,tt=o.length;et({width:rt[At]||0,height:it[At]||0});return{first:vt(0),last:vt(et-1),widest:vt(Ft),highest:vt(mt),widths:rt,heights:it}}getLabelForValue(o){return o}getPixelForValue(o,et){return NaN}getValueForPixel(o){}getPixelForTick(o){const et=this.ticks;return o<0||o>et.length-1?null:this.getPixelForValue(et[o].value)}getPixelForDecimal(o){this._reversePixels&&(o=1-o);const et=this._startPixel+o*this._length;return _int16Range(this._alignToPixels?_alignPixel(this.chart,et,0):et)}getDecimalForPixel(o){const et=(o-this._startPixel)/this._length;return this._reversePixels?1-et:et}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:o,max:et}=this;return o<0&&et<0?et:o>0&&et>0?o:0}getContext(o){const et=this.ticks||[];if(o>=0&&oot*nt?ot/tt:st/nt:st*nt0}_computeGridLineItems(o){const et=this.axis,tt=this.chart,nt=this.options,{grid:rt,position:it,border:ot}=nt,st=rt.offset,at=this.isHorizontal(),lt=this.ticks.length+(st?1:0),ut=getTickMarkLength(rt),dt=[],ht=ot.setContext(this.getContext()),ct=ht.display?ht.width:0,pt=ct/2,ft=function(kt){return _alignPixel(tt,kt,ct)};let gt,yt,Ut,Ft,mt,vt,At,Lt,Rt,St,Tt,Bt;if(it==="top")gt=ft(this.bottom),vt=this.bottom-ut,Lt=gt-pt,St=ft(o.top)+pt,Bt=o.bottom;else if(it==="bottom")gt=ft(this.top),St=o.top,Bt=ft(o.bottom)-pt,vt=gt+pt,Lt=this.top+ut;else if(it==="left")gt=ft(this.right),mt=this.right-ut,At=gt-pt,Rt=ft(o.left)+pt,Tt=o.right;else if(it==="right")gt=ft(this.left),Rt=o.left,Tt=ft(o.right)-pt,mt=gt+pt,At=this.left+ut;else if(et==="x"){if(it==="center")gt=ft((o.top+o.bottom)/2+.5);else if(isObject$2(it)){const kt=Object.keys(it)[0],Nt=it[kt];gt=ft(this.chart.scales[kt].getPixelForValue(Nt))}St=o.top,Bt=o.bottom,vt=gt+pt,Lt=vt+ut}else if(et==="y"){if(it==="center")gt=ft((o.left+o.right)/2);else if(isObject$2(it)){const kt=Object.keys(it)[0],Nt=it[kt];gt=ft(this.chart.scales[kt].getPixelForValue(Nt))}mt=gt-pt,At=mt-ut,Rt=o.left,Tt=o.right}const xt=valueOrDefault(nt.ticks.maxTicksLimit,lt),Ct=Math.max(1,Math.ceil(lt/xt));for(yt=0;ytnt.value===o);return tt>=0?et.setContext(this.getContext(tt)).lineWidth:0}drawGrid(o){const et=this.options.grid,tt=this.ctx,nt=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(o));let rt,it;const ot=(st,at,lt)=>{!lt.width||!lt.color||(tt.save(),tt.lineWidth=lt.width,tt.strokeStyle=lt.color,tt.setLineDash(lt.borderDash||[]),tt.lineDashOffset=lt.borderDashOffset,tt.beginPath(),tt.moveTo(st.x,st.y),tt.lineTo(at.x,at.y),tt.stroke(),tt.restore())};if(et.display)for(rt=0,it=nt.length;rt{this.draw(rt)}}]:[{z:tt,draw:rt=>{this.drawBackground(),this.drawGrid(rt),this.drawTitle()}},{z:nt,draw:()=>{this.drawBorder()}},{z:et,draw:rt=>{this.drawLabels(rt)}}]}getMatchingVisibleMetas(o){const et=this.chart.getSortedVisibleDatasetMetas(),tt=this.axis+"AxisID",nt=[];let rt,it;for(rt=0,it=et.length;rt{const tt=et.split("."),nt=tt.pop(),rt=[s].concat(tt).join("."),it=o[et].split("."),ot=it.pop(),st=it.join(".");defaults$2.route(rt,nt,st,ot)})}function isIChartComponent(s){return"id"in s&&"defaults"in s}class Registry{constructor(){this.controllers=new TypedRegistry(DatasetController,"datasets",!0),this.elements=new TypedRegistry(Element$1,"elements"),this.plugins=new TypedRegistry(Object,"plugins"),this.scales=new TypedRegistry(Scale,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...o){this._each("register",o)}remove(...o){this._each("unregister",o)}addControllers(...o){this._each("register",o,this.controllers)}addElements(...o){this._each("register",o,this.elements)}addPlugins(...o){this._each("register",o,this.plugins)}addScales(...o){this._each("register",o,this.scales)}getController(o){return this._get(o,this.controllers,"controller")}getElement(o){return this._get(o,this.elements,"element")}getPlugin(o){return this._get(o,this.plugins,"plugin")}getScale(o){return this._get(o,this.scales,"scale")}removeControllers(...o){this._each("unregister",o,this.controllers)}removeElements(...o){this._each("unregister",o,this.elements)}removePlugins(...o){this._each("unregister",o,this.plugins)}removeScales(...o){this._each("unregister",o,this.scales)}_each(o,et,tt){[...et].forEach(nt=>{const rt=tt||this._getRegistryForType(nt);tt||rt.isForType(nt)||rt===this.plugins&&nt.id?this._exec(o,rt,nt):each(nt,it=>{const ot=tt||this._getRegistryForType(it);this._exec(o,ot,it)})})}_exec(o,et,tt){const nt=_capitalize(o);callback(tt["before"+nt],[],tt),et[o](tt),callback(tt["after"+nt],[],tt)}_getRegistryForType(o){for(let et=0;etrt.filter(ot=>!it.some(st=>ot.plugin.id===st.plugin.id));this._notify(nt(et,tt),o,"stop"),this._notify(nt(tt,et),o,"start")}}function allPlugins(s){const o={},et=[],tt=Object.keys(registry.plugins.items);for(let rt=0;rt1&&determineAxis(s[0].toLowerCase(),o),s))return s;throw new Error(`Cannot determine type of '${name}' axis. Please provide 'axis' or 'position' option.`)}function mergeScaleConfig(s,o){const et=overrides[s.type]||{scales:{}},tt=o.scales||{},nt=getIndexAxis(s.type,o),rt=Object.create(null);return Object.keys(tt).forEach(it=>{const ot=tt[it];if(!isObject$2(ot))return console.error(`Invalid scale configuration for scale: ${it}`);if(ot._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${it}`);const st=determineAxis(it,ot),at=getDefaultScaleIDFromAxis(st,nt),lt=et.scales||{};rt[it]=mergeIf(Object.create(null),[{axis:st},ot,lt[st],lt[at]])}),s.data.datasets.forEach(it=>{const ot=it.type||s.type,st=it.indexAxis||getIndexAxis(ot,o),at=(overrides[ot]||{}).scales||{};Object.keys(at).forEach(lt=>{const ut=getAxisFromDefaultScaleID(lt,st),dt=it[ut+"AxisID"]||ut;rt[dt]=rt[dt]||Object.create(null),mergeIf(rt[dt],[{axis:ut},tt[dt],at[lt]])})}),Object.keys(rt).forEach(it=>{const ot=rt[it];mergeIf(ot,[defaults$2.scales[ot.type],defaults$2.scale])}),rt}function initOptions(s){const o=s.options||(s.options={});o.plugins=valueOrDefault(o.plugins,{}),o.scales=mergeScaleConfig(s,o)}function initData(s){return s=s||{},s.datasets=s.datasets||[],s.labels=s.labels||[],s}function initConfig(s){return s=s||{},s.data=initData(s.data),initOptions(s),s}const keyCache=new Map,keysCached=new Set;function cachedKeys(s,o){let et=keyCache.get(s);return et||(et=o(),keyCache.set(s,et),keysCached.add(et)),et}const addIfFound=(s,o,et)=>{const tt=resolveObjectKey(o,et);tt!==void 0&&s.add(tt)};let Config$1=class{constructor(o){this._config=initConfig(o),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(o){this._config.type=o}get data(){return this._config.data}set data(o){this._config.data=initData(o)}get options(){return this._config.options}set options(o){this._config.options=o}get plugins(){return this._config.plugins}update(){const o=this._config;this.clearCache(),initOptions(o)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(o){return cachedKeys(o,()=>[[`datasets.${o}`,""]])}datasetAnimationScopeKeys(o,et){return cachedKeys(`${o}.transition.${et}`,()=>[[`datasets.${o}.transitions.${et}`,`transitions.${et}`],[`datasets.${o}`,""]])}datasetElementScopeKeys(o,et){return cachedKeys(`${o}-${et}`,()=>[[`datasets.${o}.elements.${et}`,`datasets.${o}`,`elements.${et}`,""]])}pluginScopeKeys(o){const et=o.id,tt=this.type;return cachedKeys(`${tt}-plugin-${et}`,()=>[[`plugins.${et}`,...o.additionalOptionScopes||[]]])}_cachedScopes(o,et){const tt=this._scopeCache;let nt=tt.get(o);return(!nt||et)&&(nt=new Map,tt.set(o,nt)),nt}getOptionScopes(o,et,tt){const{options:nt,type:rt}=this,it=this._cachedScopes(o,tt),ot=it.get(et);if(ot)return ot;const st=new Set;et.forEach(lt=>{o&&(st.add(o),lt.forEach(ut=>addIfFound(st,o,ut))),lt.forEach(ut=>addIfFound(st,nt,ut)),lt.forEach(ut=>addIfFound(st,overrides[rt]||{},ut)),lt.forEach(ut=>addIfFound(st,defaults$2,ut)),lt.forEach(ut=>addIfFound(st,descriptors,ut))});const at=Array.from(st);return at.length===0&&at.push(Object.create(null)),keysCached.has(et)&&it.set(et,at),at}chartOptionScopes(){const{options:o,type:et}=this;return[o,overrides[et]||{},defaults$2.datasets[et]||{},{type:et},defaults$2,descriptors]}resolveNamedOptions(o,et,tt,nt=[""]){const rt={$shared:!0},{resolver:it,subPrefixes:ot}=getResolver(this._resolverCache,o,nt);let st=it;if(needContext(it,et)){rt.$shared=!1,tt=isFunction(tt)?tt():tt;const at=this.createResolver(o,tt,ot);st=_attachContext(it,tt,at)}for(const at of et)rt[at]=st[at];return rt}createResolver(o,et,tt=[""],nt){const{resolver:rt}=getResolver(this._resolverCache,o,tt);return isObject$2(et)?_attachContext(rt,et,void 0,nt):rt}};function getResolver(s,o,et){let tt=s.get(o);tt||(tt=new Map,s.set(o,tt));const nt=et.join();let rt=tt.get(nt);return rt||(rt={resolver:_createResolver(o,et),subPrefixes:et.filter(it=>!it.toLowerCase().includes("hover"))},tt.set(nt,rt)),rt}const hasFunction=s=>isObject$2(s)&&Object.getOwnPropertyNames(s).reduce((o,et)=>o||isFunction(s[et]),!1);function needContext(s,o){const{isScriptable:et,isIndexable:tt}=_descriptors(s);for(const nt of o){const rt=et(nt),it=tt(nt),ot=(it||rt)&&s[nt];if(rt&&(isFunction(ot)||hasFunction(ot))||it&&isArray$4(ot))return!0}return!1}var version="4.2.0";const KNOWN_POSITIONS=["top","bottom","left","right","chartArea"];function positionIsHorizontal(s,o){return s==="top"||s==="bottom"||KNOWN_POSITIONS.indexOf(s)===-1&&o==="x"}function compare2Level(s,o){return function(et,tt){return et[s]===tt[s]?et[o]-tt[o]:et[s]-tt[s]}}function onAnimationsComplete(s){const o=s.chart,et=o.options.animation;o.notifyPlugins("afterRender"),callback(et&&et.onComplete,[s],o)}function onAnimationProgress(s){const o=s.chart,et=o.options.animation;callback(et&&et.onProgress,[s],o)}function getCanvas(s){return _isDomSupported()&&typeof s=="string"?s=document.getElementById(s):s&&s.length&&(s=s[0]),s&&s.canvas&&(s=s.canvas),s}const instances={},getChart=s=>{const o=getCanvas(s);return Object.values(instances).filter(et=>et.canvas===o).pop()};function moveNumericKeys(s,o,et){const tt=Object.keys(s);for(const nt of tt){const rt=+nt;if(rt>=o){const it=s[nt];delete s[nt],(et>0||rt>o)&&(s[rt+et]=it)}}}function determineLastEvent(s,o,et,tt){return!et||s.type==="mouseout"?null:tt?o:s}function getDatasetArea(s){const{xScale:o,yScale:et}=s;if(o&&et)return{left:o.left,right:o.right,top:et.top,bottom:et.bottom}}var Ur;let Chart$1=(Ur=class{static register(...s){registry.add(...s),invalidatePlugins()}static unregister(...s){registry.remove(...s),invalidatePlugins()}constructor(s,o){const et=this.config=new Config$1(o),tt=getCanvas(s),nt=getChart(tt);if(nt)throw new Error("Canvas is already in use. Chart with ID '"+nt.id+"' must be destroyed before the canvas with ID '"+nt.canvas.id+"' can be reused.");const rt=et.createResolver(et.chartOptionScopes(),this.getContext());this.platform=new(et.platform||_detectPlatform(tt)),this.platform.updateConfig(et);const it=this.platform.acquireContext(tt,rt.aspectRatio),ot=it&&it.canvas,st=ot&&ot.height,at=ot&&ot.width;if(this.id=uid(),this.ctx=it,this.canvas=ot,this.width=at,this.height=st,this._options=rt,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new PluginService,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=debounce$1(lt=>this.update(lt),rt.resizeDelay||0),this._dataChanges=[],instances[this.id]=this,!it||!ot){console.error("Failed to create chart: can't acquire context from the given item");return}animator.listen(this,"complete",onAnimationsComplete),animator.listen(this,"progress",onAnimationProgress),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:s,maintainAspectRatio:o},width:et,height:tt,_aspectRatio:nt}=this;return isNullOrUndef(s)?o&&nt?nt:tt?et/tt:null:s}get data(){return this.config.data}set data(s){this.config.data=s}get options(){return this._options}set options(s){this.config.options=s}get registry(){return registry}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():retinaScale(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return clearCanvas(this.canvas,this.ctx),this}stop(){return animator.stop(this),this}resize(s,o){animator.running(this)?this._resizeBeforeDraw={width:s,height:o}:this._resize(s,o)}_resize(s,o){const et=this.options,tt=this.canvas,nt=et.maintainAspectRatio&&this.aspectRatio,rt=this.platform.getMaximumSize(tt,s,o,nt),it=et.devicePixelRatio||this.platform.getDevicePixelRatio(),ot=this.width?"resize":"attach";this.width=rt.width,this.height=rt.height,this._aspectRatio=this.aspectRatio,retinaScale(this,it,!0)&&(this.notifyPlugins("resize",{size:rt}),callback(et.onResize,[this,rt],this),this.attached&&this._doResize(ot)&&this.render())}ensureScalesHaveIDs(){const s=this.options.scales||{};each(s,(o,et)=>{o.id=et})}buildOrUpdateScales(){const s=this.options,o=s.scales,et=this.scales,tt=Object.keys(et).reduce((rt,it)=>(rt[it]=!1,rt),{});let nt=[];o&&(nt=nt.concat(Object.keys(o).map(rt=>{const it=o[rt],ot=determineAxis(rt,it),st=ot==="r",at=ot==="x";return{options:it,dposition:st?"chartArea":at?"bottom":"left",dtype:st?"radialLinear":at?"category":"linear"}}))),each(nt,rt=>{const it=rt.options,ot=it.id,st=determineAxis(ot,it),at=valueOrDefault(it.type,rt.dtype);(it.position===void 0||positionIsHorizontal(it.position,st)!==positionIsHorizontal(rt.dposition))&&(it.position=rt.dposition),tt[ot]=!0;let lt=null;if(ot in et&&et[ot].type===at)lt=et[ot];else{const ut=registry.getScale(at);lt=new ut({id:ot,type:at,ctx:this.ctx,chart:this}),et[lt.id]=lt}lt.init(it,s)}),each(tt,(rt,it)=>{rt||delete et[it]}),each(et,rt=>{layouts.configure(this,rt,rt.options),layouts.addBox(this,rt)})}_updateMetasets(){const s=this._metasets,o=this.data.datasets.length,et=s.length;if(s.sort((tt,nt)=>tt.index-nt.index),et>o){for(let tt=o;tto.length&&delete this._stacks,s.forEach((et,tt)=>{o.filter(nt=>nt===et._dataset).length===0&&this._destroyDatasetMeta(tt)})}buildOrUpdateControllers(){const s=[],o=this.data.datasets;let et,tt;for(this._removeUnreferencedMetasets(),et=0,tt=o.length;et{this.getDatasetMeta(o).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(s){const o=this.config;o.update();const et=this._options=o.createResolver(o.chartOptionScopes(),this.getContext()),tt=this._animationsDisabled=!et.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:s,cancelable:!0})===!1)return;const nt=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let rt=0;for(let st=0,at=this.data.datasets.length;st{st.reset()}),this._updateDatasets(s),this.notifyPlugins("afterUpdate",{mode:s}),this._layers.sort(compare2Level("z","_idx"));const{_active:it,_lastEvent:ot}=this;ot?this._eventHandler(ot,!0):it.length&&this._updateHoverStyles(it,it,!0),this.render()}_updateScales(){each(this.scales,s=>{layouts.removeBox(this,s)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const s=this.options,o=new Set(Object.keys(this._listeners)),et=new Set(s.events);(!setsEqual(o,et)||!!this._responsiveListeners!==s.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:s}=this,o=this._getUniformDataChanges()||[];for(const{method:et,start:tt,count:nt}of o){const rt=et==="_removeElements"?-nt:nt;moveNumericKeys(s,tt,rt)}}_getUniformDataChanges(){const s=this._dataChanges;if(!s||!s.length)return;this._dataChanges=[];const o=this.data.datasets.length,et=nt=>new Set(s.filter(rt=>rt[0]===nt).map((rt,it)=>it+","+rt.splice(1).join(","))),tt=et(0);for(let nt=1;ntnt.split(",")).map(nt=>({method:nt[1],start:+nt[2],count:+nt[3]}))}_updateLayout(s){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;layouts.update(this,this.width,this.height,s);const o=this.chartArea,et=o.width<=0||o.height<=0;this._layers=[],each(this.boxes,tt=>{et&&tt.position==="chartArea"||(tt.configure&&tt.configure(),this._layers.push(...tt._layers()))},this),this._layers.forEach((tt,nt)=>{tt._idx=nt}),this.notifyPlugins("afterLayout")}_updateDatasets(s){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:s,cancelable:!0})!==!1){for(let o=0,et=this.data.datasets.length;o=0;--o)this._drawDataset(s[o]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(s){const o=this.ctx,et=s._clip,tt=!et.disabled,nt=getDatasetArea(s)||this.chartArea,rt={meta:s,index:s.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",rt)!==!1&&(tt&&clipArea(o,{left:et.left===!1?0:nt.left-et.left,right:et.right===!1?this.width:nt.right+et.right,top:et.top===!1?0:nt.top-et.top,bottom:et.bottom===!1?this.height:nt.bottom+et.bottom}),s.controller.draw(),tt&&unclipArea(o),rt.cancelable=!1,this.notifyPlugins("afterDatasetDraw",rt))}isPointInArea(s){return _isPointInArea(s,this.chartArea,this._minPadding)}getElementsAtEventForMode(s,o,et,tt){const nt=Interaction.modes[o];return typeof nt=="function"?nt(this,s,et,tt):[]}getDatasetMeta(s){const o=this.data.datasets[s],et=this._metasets;let tt=et.filter(nt=>nt&&nt._dataset===o).pop();return tt||(tt={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:o&&o.order||0,index:s,_dataset:o,_parsed:[],_sorted:!1},et.push(tt)),tt}getContext(){return this.$context||(this.$context=createContext(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(s){const o=this.data.datasets[s];if(!o)return!1;const et=this.getDatasetMeta(s);return typeof et.hidden=="boolean"?!et.hidden:!o.hidden}setDatasetVisibility(s,o){const et=this.getDatasetMeta(s);et.hidden=!o}toggleDataVisibility(s){this._hiddenIndices[s]=!this._hiddenIndices[s]}getDataVisibility(s){return!this._hiddenIndices[s]}_updateVisibility(s,o,et){const tt=et?"show":"hide",nt=this.getDatasetMeta(s),rt=nt.controller._resolveAnimations(void 0,tt);defined$3(o)?(nt.data[o].hidden=!et,this.update()):(this.setDatasetVisibility(s,et),rt.update(nt,{visible:et}),this.update(it=>it.datasetIndex===s?tt:void 0))}hide(s,o){this._updateVisibility(s,o,!1)}show(s,o){this._updateVisibility(s,o,!0)}_destroyDatasetMeta(s){const o=this._metasets[s];o&&o.controller&&o.controller._destroy(),delete this._metasets[s]}_stop(){let s,o;for(this.stop(),animator.remove(this),s=0,o=this.data.datasets.length;s{o.addEventListener(this,nt,rt),s[nt]=rt},tt=(nt,rt,it)=>{nt.offsetX=rt,nt.offsetY=it,this._eventHandler(nt)};each(this.options.events,nt=>et(nt,tt))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const s=this._responsiveListeners,o=this.platform,et=(ot,st)=>{o.addEventListener(this,ot,st),s[ot]=st},tt=(ot,st)=>{s[ot]&&(o.removeEventListener(this,ot,st),delete s[ot])},nt=(ot,st)=>{this.canvas&&this.resize(ot,st)};let rt;const it=()=>{tt("attach",it),this.attached=!0,this.resize(),et("resize",nt),et("detach",rt)};rt=()=>{this.attached=!1,tt("resize",nt),this._stop(),this._resize(0,0),et("attach",it)},o.isAttached(this.canvas)?it():rt()}unbindEvents(){each(this._listeners,(s,o)=>{this.platform.removeEventListener(this,o,s)}),this._listeners={},each(this._responsiveListeners,(s,o)=>{this.platform.removeEventListener(this,o,s)}),this._responsiveListeners=void 0}updateHoverStyle(s,o,et){const tt=et?"set":"remove";let nt,rt,it,ot;for(o==="dataset"&&(nt=this.getDatasetMeta(s[0].datasetIndex),nt.controller["_"+tt+"DatasetHoverStyle"]()),it=0,ot=s.length;it{const rt=this.getDatasetMeta(tt);if(!rt)throw new Error("No dataset found at index "+tt);return{datasetIndex:tt,element:rt.data[nt],index:nt}});!_elementsEqual(et,o)&&(this._active=et,this._lastEvent=null,this._updateHoverStyles(et,o))}notifyPlugins(s,o,et){return this._plugins.notify(this,s,o,et)}isPluginEnabled(s){return this._plugins._cache.filter(o=>o.plugin.id===s).length===1}_updateHoverStyles(s,o,et){const tt=this.options.hover,nt=(ot,st)=>ot.filter(at=>!st.some(lt=>at.datasetIndex===lt.datasetIndex&&at.index===lt.index)),rt=nt(o,s),it=et?s:nt(s,o);rt.length&&this.updateHoverStyle(rt,tt.mode,!1),it.length&&tt.mode&&this.updateHoverStyle(it,tt.mode,!0)}_eventHandler(s,o){const et={event:s,replay:o,cancelable:!0,inChartArea:this.isPointInArea(s)},tt=rt=>(rt.options.events||this.options.events).includes(s.native.type);if(this.notifyPlugins("beforeEvent",et,tt)===!1)return;const nt=this._handleEvent(s,o,et.inChartArea);return et.cancelable=!1,this.notifyPlugins("afterEvent",et,tt),(nt||et.changed)&&this.render(),this}_handleEvent(s,o,et){const{_active:tt=[],options:nt}=this,rt=o,it=this._getActiveElements(s,tt,et,rt),ot=_isClickEvent(s),st=determineLastEvent(s,this._lastEvent,et,ot);et&&(this._lastEvent=null,callback(nt.onHover,[s,it,this],this),ot&&callback(nt.onClick,[s,it,this],this));const at=!_elementsEqual(it,tt);return(at||o)&&(this._active=it,this._updateHoverStyles(it,tt,o)),this._lastEvent=st,at}_getActiveElements(s,o,et,tt){if(s.type==="mouseout")return[];if(!et)return o;const nt=this.options.hover;return this.getElementsAtEventForMode(s,nt.mode,nt,tt)}},He(Ur,"defaults",defaults$2),He(Ur,"instances",instances),He(Ur,"overrides",overrides),He(Ur,"registry",registry),He(Ur,"version",version),He(Ur,"getChart",getChart),Ur);function invalidatePlugins(){return each(Chart$1.instances,s=>s._plugins.invalidate())}function clipArc(s,o,et){const{startAngle:tt,pixelMargin:nt,x:rt,y:it,outerRadius:ot,innerRadius:st}=o;let at=nt/ot;s.beginPath(),s.arc(rt,it,ot,tt-at,et+at),st>nt?(at=nt/st,s.arc(rt,it,st,et+at,tt-at,!0)):s.arc(rt,it,nt,et+HALF_PI,tt-HALF_PI),s.closePath(),s.clip()}function toRadiusCorners(s){return _readValueToProps(s,["outerStart","outerEnd","innerStart","innerEnd"])}function parseBorderRadius$1(s,o,et,tt){const nt=toRadiusCorners(s.options.borderRadius),rt=(et-o)/2,it=Math.min(rt,tt*o/2),ot=st=>{const at=(et-Math.min(rt,st))*tt/2;return _limitValue(st,0,Math.min(rt,at))};return{outerStart:ot(nt.outerStart),outerEnd:ot(nt.outerEnd),innerStart:_limitValue(nt.innerStart,0,it),innerEnd:_limitValue(nt.innerEnd,0,it)}}function rThetaToXY(s,o,et,tt){return{x:et+s*Math.cos(o),y:tt+s*Math.sin(o)}}function pathArc(s,o,et,tt,nt,rt){const{x:it,y:ot,startAngle:st,pixelMargin:at,innerRadius:lt}=o,ut=Math.max(o.outerRadius+tt+et-at,0),dt=lt>0?lt+tt+et+at:0;let ht=0;const ct=nt-st;if(tt){const kt=lt>0?lt-tt:0,Nt=ut>0?ut-tt:0,Ot=(kt+Nt)/2,Jt=Ot!==0?ct*Ot/(Ot+tt):ct;ht=(ct-Jt)/2}const pt=Math.max(.001,ct*ut-et/PI)/ut,ft=(ct-pt)/2,gt=st+ft+ht,yt=nt-ft-ht,{outerStart:Ut,outerEnd:Ft,innerStart:mt,innerEnd:vt}=parseBorderRadius$1(o,dt,ut,yt-gt),At=ut-Ut,Lt=ut-Ft,Rt=gt+Ut/At,St=yt-Ft/Lt,Tt=dt+mt,Bt=dt+vt,xt=gt+mt/Tt,Ct=yt-vt/Bt;if(s.beginPath(),rt){const kt=(Rt+St)/2;if(s.arc(it,ot,ut,Rt,kt),s.arc(it,ot,ut,kt,St),Ft>0){const Dt=rThetaToXY(Lt,St,it,ot);s.arc(Dt.x,Dt.y,Ft,St,yt+HALF_PI)}const Nt=rThetaToXY(Bt,yt,it,ot);if(s.lineTo(Nt.x,Nt.y),vt>0){const Dt=rThetaToXY(Bt,Ct,it,ot);s.arc(Dt.x,Dt.y,vt,yt+HALF_PI,Ct+Math.PI)}const Ot=(yt-vt/dt+(gt+mt/dt))/2;if(s.arc(it,ot,dt,yt-vt/dt,Ot,!0),s.arc(it,ot,dt,Ot,gt+mt/dt,!0),mt>0){const Dt=rThetaToXY(Tt,xt,it,ot);s.arc(Dt.x,Dt.y,mt,xt+Math.PI,gt-HALF_PI)}const Jt=rThetaToXY(At,gt,it,ot);if(s.lineTo(Jt.x,Jt.y),Ut>0){const Dt=rThetaToXY(At,Rt,it,ot);s.arc(Dt.x,Dt.y,Ut,gt-HALF_PI,Rt)}}else{s.moveTo(it,ot);const kt=Math.cos(Rt)*ut+it,Nt=Math.sin(Rt)*ut+ot;s.lineTo(kt,Nt);const Ot=Math.cos(St)*ut+it,Jt=Math.sin(St)*ut+ot;s.lineTo(Ot,Jt)}s.closePath()}function drawArc(s,o,et,tt,nt){const{fullCircles:rt,startAngle:it,circumference:ot}=o;let st=o.endAngle;if(rt){pathArc(s,o,et,tt,st,nt);for(let at=0;at=TAU$1||_angleBetween(rt,ot,st),ct=_isBetween(it,at+dt,lt+dt);return ht&&ct}getCenterPoint(o){const{x:et,y:tt,startAngle:nt,endAngle:rt,innerRadius:it,outerRadius:ot}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],o),{offset:st,spacing:at}=this.options,lt=(nt+rt)/2,ut=(it+ot+at+st)/2;return{x:et+Math.cos(lt)*ut,y:tt+Math.sin(lt)*ut}}tooltipPosition(o){return this.getCenterPoint(o)}draw(o){const{options:et,circumference:tt}=this,nt=(et.offset||0)/4,rt=(et.spacing||0)/2,it=et.circular;if(this.pixelMargin=et.borderAlign==="inner"?.33:0,this.fullCircles=tt>TAU$1?Math.floor(tt/TAU$1):0,tt===0||this.innerRadius<0||this.outerRadius<0)return;o.save();const ot=(this.startAngle+this.endAngle)/2;o.translate(Math.cos(ot)*nt,Math.sin(ot)*nt);const st=1-Math.sin(Math.min(PI,tt||0)),at=nt*st;o.fillStyle=et.backgroundColor,o.strokeStyle=et.borderColor,drawArc(o,this,at,rt,it),drawBorder(o,this,at,rt,it),o.restore()}}He(ArcElement,"id","arc"),He(ArcElement,"defaults",{borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0}),He(ArcElement,"defaultRoutes",{backgroundColor:"backgroundColor"});function setStyle(s,o,et=o){s.lineCap=valueOrDefault(et.borderCapStyle,o.borderCapStyle),s.setLineDash(valueOrDefault(et.borderDash,o.borderDash)),s.lineDashOffset=valueOrDefault(et.borderDashOffset,o.borderDashOffset),s.lineJoin=valueOrDefault(et.borderJoinStyle,o.borderJoinStyle),s.lineWidth=valueOrDefault(et.borderWidth,o.borderWidth),s.strokeStyle=valueOrDefault(et.borderColor,o.borderColor)}function lineTo(s,o,et){s.lineTo(et.x,et.y)}function getLineMethod(s){return s.stepped?_steppedLineTo:s.tension||s.cubicInterpolationMode==="monotone"?_bezierCurveTo:lineTo}function pathVars(s,o,et={}){const tt=s.length,{start:nt=0,end:rt=tt-1}=et,{start:it,end:ot}=o,st=Math.max(nt,it),at=Math.min(rt,ot),lt=ntot&&rt>ot;return{count:tt,start:st,loop:o.loop,ilen:at(it+(at?ot-Ft:Ft))%rt,Ut=()=>{pt!==ft&&(s.lineTo(lt,ft),s.lineTo(lt,pt),s.lineTo(lt,gt))};for(st&&(ht=nt[yt(0)],s.moveTo(ht.x,ht.y)),dt=0;dt<=ot;++dt){if(ht=nt[yt(dt)],ht.skip)continue;const Ft=ht.x,mt=ht.y,vt=Ft|0;vt===ct?(mtft&&(ft=mt),lt=(ut*lt+Ft)/++ut):(Ut(),s.lineTo(Ft,mt),ct=vt,ut=0,pt=ft=mt),gt=mt}Ut()}function _getSegmentMethod(s){const o=s.options,et=o.borderDash&&o.borderDash.length;return!s._decimated&&!s._loop&&!o.tension&&o.cubicInterpolationMode!=="monotone"&&!o.stepped&&!et?fastPathSegment:pathSegment}function _getInterpolationMethod(s){return s.stepped?_steppedInterpolation:s.tension||s.cubicInterpolationMode==="monotone"?_bezierInterpolation:_pointInLine}function strokePathWithCache(s,o,et,tt){let nt=o._path;nt||(nt=o._path=new Path2D,o.path(nt,et,tt)&&nt.closePath()),setStyle(s,o.options),s.stroke(nt)}function strokePathDirect(s,o,et,tt){const{segments:nt,options:rt}=o,it=_getSegmentMethod(o);for(const ot of nt)setStyle(s,rt,ot.style),s.beginPath(),it(s,o,ot,{start:et,end:et+tt-1})&&s.closePath(),s.stroke()}const usePath2D=typeof Path2D=="function";function draw(s,o,et,tt){usePath2D&&!o.options.segment?strokePathWithCache(s,o,et,tt):strokePathDirect(s,o,et,tt)}class LineElement extends Element$1{constructor(o){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,o&&Object.assign(this,o)}updateControlPoints(o,et){const tt=this.options;if((tt.tension||tt.cubicInterpolationMode==="monotone")&&!tt.stepped&&!this._pointsUpdated){const nt=tt.spanGaps?this._loop:this._fullLoop;_updateBezierControlPoints(this._points,tt,o,nt,et),this._pointsUpdated=!0}}set points(o){this._points=o,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=_computeSegments(this,this.options.segment))}first(){const o=this.segments,et=this.points;return o.length&&et[o[0].start]}last(){const o=this.segments,et=this.points,tt=o.length;return tt&&et[o[tt-1].end]}interpolate(o,et){const tt=this.options,nt=o[et],rt=this.points,it=_boundSegments(this,{property:et,start:nt,end:nt});if(!it.length)return;const ot=[],st=_getInterpolationMethod(tt);let at,lt;for(at=0,lt=it.length;ats!=="borderDash"&&s!=="fill"});function inRange$1(s,o,et,tt){const nt=s.options,{[et]:rt}=s.getProps([et],tt);return Math.abs(o-rt)s.replace("rgb(","rgba(").replace(")",", 0.5)"));function getBorderColor(s){return BORDER_COLORS[s%BORDER_COLORS.length]}function getBackgroundColor(s){return BACKGROUND_COLORS[s%BACKGROUND_COLORS.length]}function colorizeDefaultDataset(s,o){return s.borderColor=getBorderColor(o),s.backgroundColor=getBackgroundColor(o),++o}function colorizeDoughnutDataset(s,o){return s.backgroundColor=s.data.map(()=>getBorderColor(o++)),o}function colorizePolarAreaDataset(s,o){return s.backgroundColor=s.data.map(()=>getBackgroundColor(o++)),o}function getColorizer(s){let o=0;return(et,tt)=>{const nt=s.getDatasetMeta(tt).controller;nt instanceof DoughnutController?o=colorizeDoughnutDataset(et,o):nt instanceof PolarAreaController?o=colorizePolarAreaDataset(et,o):nt&&(o=colorizeDefaultDataset(et,o))}}function containsColorsDefinitions(s){let o;for(o in s)if(s[o].borderColor||s[o].backgroundColor)return!0;return!1}function containsColorsDefinition(s){return s&&(s.borderColor||s.backgroundColor)}var plugin_colors={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(s,o,et){if(!et.enabled)return;const{data:{datasets:tt},options:nt}=s.config,{elements:rt}=nt;if(!et.forceOverride&&(containsColorsDefinitions(tt)||containsColorsDefinition(nt)||rt&&containsColorsDefinitions(rt)))return;const it=getColorizer(s);tt.forEach(it)}};function lttbDecimation(s,o,et,tt,nt){const rt=nt.samples||tt;if(rt>=et)return s.slice(o,o+et);const it=[],ot=(et-2)/(rt-2);let st=0;const at=o+et-1;let lt=o,ut,dt,ht,ct,pt;for(it[st++]=s[lt],ut=0;utht&&(ht=ct,dt=s[yt],pt=yt);it[st++]=dt,lt=pt}return it[st++]=s[at],it}function minMaxDecimation(s,o,et,tt){let nt=0,rt=0,it,ot,st,at,lt,ut,dt,ht,ct,pt;const ft=[],gt=o+et-1,yt=s[o].x,Ut=s[gt].x-yt;for(it=o;itpt&&(pt=at,dt=it),nt=(rt*nt+ot.x)/++rt;else{const mt=it-1;if(!isNullOrUndef(ut)&&!isNullOrUndef(dt)){const vt=Math.min(ut,dt),At=Math.max(ut,dt);vt!==ht&&vt!==mt&&ft.push({...s[vt],x:nt}),At!==ht&&At!==mt&&ft.push({...s[At],x:nt})}it>0&&mt!==ht&&ft.push(s[mt]),ft.push(ot),lt=Ft,rt=0,ct=pt=at,ut=dt=ht=it}}return ft}function cleanDecimatedDataset(s){if(s._decimated){const o=s._data;delete s._decimated,delete s._data,Object.defineProperty(s,"data",{value:o})}}function cleanDecimatedData(s){s.data.datasets.forEach(o=>{cleanDecimatedDataset(o)})}function getStartAndCountOfVisiblePointsSimplified(s,o){const et=o.length;let tt=0,nt;const{iScale:rt}=s,{min:it,max:ot,minDefined:st,maxDefined:at}=rt.getUserBounds();return st&&(tt=_limitValue(_lookupByKey(o,rt.axis,it).lo,0,et-1)),at?nt=_limitValue(_lookupByKey(o,rt.axis,ot).hi+1,tt,et)-tt:nt=et-tt,{start:tt,count:nt}}var plugin_decimation={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(s,o,et)=>{if(!et.enabled){cleanDecimatedData(s);return}const tt=s.width;s.data.datasets.forEach((nt,rt)=>{const{_data:it,indexAxis:ot}=nt,st=s.getDatasetMeta(rt),at=it||nt.data;if(resolve([ot,s.options.indexAxis])==="y"||!st.controller.supportsDecimation)return;const lt=s.scales[st.xAxisID];if(lt.type!=="linear"&<.type!=="time"||s.options.parsing)return;let{start:ut,count:dt}=getStartAndCountOfVisiblePointsSimplified(st,at);const ht=et.threshold||4*tt;if(dt<=ht){cleanDecimatedDataset(nt);return}isNullOrUndef(it)&&(nt._data=at,delete nt.data,Object.defineProperty(nt,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(pt){this._data=pt}}));let ct;switch(et.algorithm){case"lttb":ct=lttbDecimation(at,ut,dt,tt,et);break;case"min-max":ct=minMaxDecimation(at,ut,dt,tt);break;default:throw new Error(`Unsupported decimation algorithm '${et.algorithm}'`)}nt._decimated=ct})},destroy(s){cleanDecimatedData(s)}};function _segments(s,o,et){const tt=s.segments,nt=s.points,rt=o.points,it=[];for(const ot of tt){let{start:st,end:at}=ot;at=_findSegmentEnd(st,at,nt);const lt=_getBounds$1(et,nt[st],nt[at],ot.loop);if(!o.segments){it.push({source:ot,target:lt,start:nt[st],end:nt[at]});continue}const ut=_boundSegments(o,lt);for(const dt of ut){const ht=_getBounds$1(et,rt[dt.start],rt[dt.end],dt.loop),ct=_boundSegment(ot,nt,ht);for(const pt of ct)it.push({source:pt,target:dt,start:{[et]:_getEdge(lt,ht,"start",Math.max)},end:{[et]:_getEdge(lt,ht,"end",Math.min)}})}}return it}function _getBounds$1(s,o,et,tt){if(tt)return;let nt=o[s],rt=et[s];return s==="angle"&&(nt=_normalizeAngle(nt),rt=_normalizeAngle(rt)),{property:s,start:nt,end:rt}}function _pointsFromSegments(s,o){const{x:et=null,y:tt=null}=s||{},nt=o.points,rt=[];return o.segments.forEach(({start:it,end:ot})=>{ot=_findSegmentEnd(it,ot,nt);const st=nt[it],at=nt[ot];tt!==null?(rt.push({x:st.x,y:tt}),rt.push({x:at.x,y:tt})):et!==null&&(rt.push({x:et,y:st.y}),rt.push({x:et,y:at.y}))}),rt}function _findSegmentEnd(s,o,et){for(;o>s;o--){const tt=et[o];if(!isNaN(tt.x)&&!isNaN(tt.y))break}return o}function _getEdge(s,o,et,tt){return s&&o?tt(s[et],o[et]):s?s[et]:o?o[et]:0}function _createBoundaryLine(s,o){let et=[],tt=!1;return isArray$4(s)?(tt=!0,et=s):et=_pointsFromSegments(s,o),et.length?new LineElement({points:et,options:{tension:0},_loop:tt,_fullLoop:tt}):null}function _shouldApplyFill(s){return s&&s.fill!==!1}function _resolveTarget(s,o,et){let tt=s[o].fill;const nt=[o];let rt;if(!et)return tt;for(;tt!==!1&&nt.indexOf(tt)===-1;){if(!isNumberFinite(tt))return tt;if(rt=s[tt],!rt)return!1;if(rt.visible)return tt;nt.push(tt),tt=rt.fill}return!1}function _decodeFill(s,o,et){const tt=parseFillOption(s);if(isObject$2(tt))return isNaN(tt.value)?!1:tt;let nt=parseFloat(tt);return isNumberFinite(nt)&&Math.floor(nt)===nt?decodeTargetIndex(tt[0],o,nt,et):["origin","start","end","stack","shape"].indexOf(tt)>=0&&tt}function decodeTargetIndex(s,o,et,tt){return(s==="-"||s==="+")&&(et=o+et),et===o||et<0||et>=tt?!1:et}function _getTargetPixel(s,o){let et=null;return s==="start"?et=o.bottom:s==="end"?et=o.top:isObject$2(s)?et=o.getPixelForValue(s.value):o.getBasePixel&&(et=o.getBasePixel()),et}function _getTargetValue(s,o,et){let tt;return s==="start"?tt=et:s==="end"?tt=o.options.reverse?o.min:o.max:isObject$2(s)?tt=s.value:tt=o.getBaseValue(),tt}function parseFillOption(s){const o=s.options,et=o.fill;let tt=valueOrDefault(et&&et.target,et);return tt===void 0&&(tt=!!o.backgroundColor),tt===!1||tt===null?!1:tt===!0?"origin":tt}function _buildStackLine(s){const{scale:o,index:et,line:tt}=s,nt=[],rt=tt.segments,it=tt.points,ot=getLinesBelow(o,et);ot.push(_createBoundaryLine({x:null,y:o.bottom},tt));for(let st=0;st=0;--it){const ot=nt[it].$filler;ot&&(ot.line.updateControlPoints(rt,ot.axis),tt&&ot.fill&&_drawfill(s.ctx,ot,rt))}},beforeDatasetsDraw(s,o,et){if(et.drawTime!=="beforeDatasetsDraw")return;const tt=s.getSortedVisibleDatasetMetas();for(let nt=tt.length-1;nt>=0;--nt){const rt=tt[nt].$filler;_shouldApplyFill(rt)&&_drawfill(s.ctx,rt,s.chartArea)}},beforeDatasetDraw(s,o,et){const tt=o.meta.$filler;!_shouldApplyFill(tt)||et.drawTime!=="beforeDatasetDraw"||_drawfill(s.ctx,tt,s.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const getBoxSize=(s,o)=>{let{boxHeight:et=o,boxWidth:tt=o}=s;return s.usePointStyle&&(et=Math.min(et,o),tt=s.pointStyleWidth||Math.min(tt,o)),{boxWidth:tt,boxHeight:et,itemHeight:Math.max(o,et)}},itemsEqual=(s,o)=>s!==null&&o!==null&&s.datasetIndex===o.datasetIndex&&s.index===o.index;class Legend extends Element$1{constructor(o){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=o.chart,this.options=o.options,this.ctx=o.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(o,et,tt){this.maxWidth=o,this.maxHeight=et,this._margins=tt,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const o=this.options.labels||{};let et=callback(o.generateLabels,[this.chart],this)||[];o.filter&&(et=et.filter(tt=>o.filter(tt,this.chart.data))),o.sort&&(et=et.sort((tt,nt)=>o.sort(tt,nt,this.chart.data))),this.options.reverse&&et.reverse(),this.legendItems=et}fit(){const{options:o,ctx:et}=this;if(!o.display){this.width=this.height=0;return}const tt=o.labels,nt=toFont(tt.font),rt=nt.size,it=this._computeTitleHeight(),{boxWidth:ot,itemHeight:st}=getBoxSize(tt,rt);let at,lt;et.font=nt.string,this.isHorizontal()?(at=this.maxWidth,lt=this._fitRows(it,rt,ot,st)+10):(lt=this.maxHeight,at=this._fitCols(it,nt,ot,st)+10),this.width=Math.min(at,o.maxWidth||this.maxWidth),this.height=Math.min(lt,o.maxHeight||this.maxHeight)}_fitRows(o,et,tt,nt){const{ctx:rt,maxWidth:it,options:{labels:{padding:ot}}}=this,st=this.legendHitBoxes=[],at=this.lineWidths=[0],lt=nt+ot;let ut=o;rt.textAlign="left",rt.textBaseline="middle";let dt=-1,ht=-lt;return this.legendItems.forEach((ct,pt)=>{const ft=tt+et/2+rt.measureText(ct.text).width;(pt===0||at[at.length-1]+ft+2*ot>it)&&(ut+=lt,at[at.length-(pt>0?0:1)]=0,ht+=lt,dt++),st[pt]={left:0,top:ht,row:dt,width:ft,height:nt},at[at.length-1]+=ft+ot}),ut}_fitCols(o,et,tt,nt){const{ctx:rt,maxHeight:it,options:{labels:{padding:ot}}}=this,st=this.legendHitBoxes=[],at=this.columnSizes=[],lt=it-o;let ut=ot,dt=0,ht=0,ct=0,pt=0;return this.legendItems.forEach((ft,gt)=>{const{itemWidth:yt,itemHeight:Ut}=calculateItemSize(tt,et,rt,ft,nt);gt>0&&ht+Ut+2*ot>lt&&(ut+=dt+ot,at.push({width:dt,height:ht}),ct+=dt+ot,pt++,dt=ht=0),st[gt]={left:ct,top:ht,col:pt,width:yt,height:Ut},dt=Math.max(dt,yt),ht+=Ut+ot}),ut+=dt,at.push({width:dt,height:ht}),ut}adjustHitBoxes(){if(!this.options.display)return;const o=this._computeTitleHeight(),{legendHitBoxes:et,options:{align:tt,labels:{padding:nt},rtl:rt}}=this,it=getRtlAdapter(rt,this.left,this.width);if(this.isHorizontal()){let ot=0,st=_alignStartEnd(tt,this.left+nt,this.right-this.lineWidths[ot]);for(const at of et)ot!==at.row&&(ot=at.row,st=_alignStartEnd(tt,this.left+nt,this.right-this.lineWidths[ot])),at.top+=this.top+o+nt,at.left=it.leftForLtr(it.x(st),at.width),st+=at.width+nt}else{let ot=0,st=_alignStartEnd(tt,this.top+o+nt,this.bottom-this.columnSizes[ot].height);for(const at of et)at.col!==ot&&(ot=at.col,st=_alignStartEnd(tt,this.top+o+nt,this.bottom-this.columnSizes[ot].height)),at.top=st,at.left+=this.left+nt,at.left=it.leftForLtr(it.x(at.left),at.width),st+=at.height+nt}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const o=this.ctx;clipArea(o,this),this._draw(),unclipArea(o)}}_draw(){const{options:o,columnSizes:et,lineWidths:tt,ctx:nt}=this,{align:rt,labels:it}=o,ot=defaults$2.color,st=getRtlAdapter(o.rtl,this.left,this.width),at=toFont(it.font),{padding:lt}=it,ut=at.size,dt=ut/2;let ht;this.drawTitle(),nt.textAlign=st.textAlign("left"),nt.textBaseline="middle",nt.lineWidth=.5,nt.font=at.string;const{boxWidth:ct,boxHeight:pt,itemHeight:ft}=getBoxSize(it,ut),gt=function(vt,At,Lt){if(isNaN(ct)||ct<=0||isNaN(pt)||pt<0)return;nt.save();const Rt=valueOrDefault(Lt.lineWidth,1);if(nt.fillStyle=valueOrDefault(Lt.fillStyle,ot),nt.lineCap=valueOrDefault(Lt.lineCap,"butt"),nt.lineDashOffset=valueOrDefault(Lt.lineDashOffset,0),nt.lineJoin=valueOrDefault(Lt.lineJoin,"miter"),nt.lineWidth=Rt,nt.strokeStyle=valueOrDefault(Lt.strokeStyle,ot),nt.setLineDash(valueOrDefault(Lt.lineDash,[])),it.usePointStyle){const St={radius:pt*Math.SQRT2/2,pointStyle:Lt.pointStyle,rotation:Lt.rotation,borderWidth:Rt},Tt=st.xPlus(vt,ct/2),Bt=At+dt;drawPointLegend(nt,St,Tt,Bt,it.pointStyleWidth&&ct)}else{const St=At+Math.max((ut-pt)/2,0),Tt=st.leftForLtr(vt,ct),Bt=toTRBLCorners(Lt.borderRadius);nt.beginPath(),Object.values(Bt).some(xt=>xt!==0)?addRoundedRectPath(nt,{x:Tt,y:St,w:ct,h:pt,radius:Bt}):nt.rect(Tt,St,ct,pt),nt.fill(),Rt!==0&&nt.stroke()}nt.restore()},yt=function(vt,At,Lt){renderText(nt,Lt.text,vt,At+ft/2,at,{strikethrough:Lt.hidden,textAlign:st.textAlign(Lt.textAlign)})},Ut=this.isHorizontal(),Ft=this._computeTitleHeight();Ut?ht={x:_alignStartEnd(rt,this.left+lt,this.right-tt[0]),y:this.top+lt+Ft,line:0}:ht={x:this.left+lt,y:_alignStartEnd(rt,this.top+Ft+lt,this.bottom-et[0].height),line:0},overrideTextDirection(this.ctx,o.textDirection);const mt=ft+lt;this.legendItems.forEach((vt,At)=>{nt.strokeStyle=vt.fontColor,nt.fillStyle=vt.fontColor;const Lt=nt.measureText(vt.text).width,Rt=st.textAlign(vt.textAlign||(vt.textAlign=it.textAlign)),St=ct+dt+Lt;let Tt=ht.x,Bt=ht.y;st.setWidth(this.width),Ut?At>0&&Tt+St+lt>this.right&&(Bt=ht.y+=mt,ht.line++,Tt=ht.x=_alignStartEnd(rt,this.left+lt,this.right-tt[ht.line])):At>0&&Bt+mt>this.bottom&&(Tt=ht.x=Tt+et[ht.line].width+lt,ht.line++,Bt=ht.y=_alignStartEnd(rt,this.top+Ft+lt,this.bottom-et[ht.line].height));const xt=st.x(Tt);if(gt(xt,Bt,vt),Tt=_textX(Rt,Tt+ct+dt,Ut?Tt+St:this.right,o.rtl),yt(st.x(Tt),Bt,vt),Ut)ht.x+=St+lt;else if(typeof vt.text!="string"){const Ct=at.lineHeight;ht.y+=calculateLegendItemHeight(vt,Ct)}else ht.y+=mt}),restoreTextDirection(this.ctx,o.textDirection)}drawTitle(){const o=this.options,et=o.title,tt=toFont(et.font),nt=toPadding(et.padding);if(!et.display)return;const rt=getRtlAdapter(o.rtl,this.left,this.width),it=this.ctx,ot=et.position,st=tt.size/2,at=nt.top+st;let lt,ut=this.left,dt=this.width;if(this.isHorizontal())dt=Math.max(...this.lineWidths),lt=this.top+at,ut=_alignStartEnd(o.align,ut,this.right-dt);else{const ct=this.columnSizes.reduce((pt,ft)=>Math.max(pt,ft.height),0);lt=at+_alignStartEnd(o.align,this.top,this.bottom-ct-o.labels.padding-this._computeTitleHeight())}const ht=_alignStartEnd(ot,ut,ut+dt);it.textAlign=rt.textAlign(_toLeftRightCenter(ot)),it.textBaseline="middle",it.strokeStyle=et.color,it.fillStyle=et.color,it.font=tt.string,renderText(it,et.text,ht,lt,tt)}_computeTitleHeight(){const o=this.options.title,et=toFont(o.font),tt=toPadding(o.padding);return o.display?et.lineHeight+tt.height:0}_getLegendItemAt(o,et){let tt,nt,rt;if(_isBetween(o,this.left,this.right)&&_isBetween(et,this.top,this.bottom)){for(rt=this.legendHitBoxes,tt=0;ttrt.length>it.length?rt:it)),o+et.size/2+tt.measureText(nt).width}function calculateItemHeight(s,o,et){let tt=s;return typeof o.text!="string"&&(tt=calculateLegendItemHeight(o,et)),tt}function calculateLegendItemHeight(s,o){const et=s.text?s.text.length+.5:0;return o*et}function isListened(s,o){return!!((s==="mousemove"||s==="mouseout")&&(o.onHover||o.onLeave)||o.onClick&&(s==="click"||s==="mouseup"))}var plugin_legend={id:"legend",_element:Legend,start(s,o,et){const tt=s.legend=new Legend({ctx:s.ctx,options:et,chart:s});layouts.configure(s,tt,et),layouts.addBox(s,tt)},stop(s){layouts.removeBox(s,s.legend),delete s.legend},beforeUpdate(s,o,et){const tt=s.legend;layouts.configure(s,tt,et),tt.options=et},afterUpdate(s){const o=s.legend;o.buildLabels(),o.adjustHitBoxes()},afterEvent(s,o){o.replay||s.legend.handleEvent(o.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(s,o,et){const tt=o.datasetIndex,nt=et.chart;nt.isDatasetVisible(tt)?(nt.hide(tt),o.hidden=!0):(nt.show(tt),o.hidden=!1)},onHover:null,onLeave:null,labels:{color:s=>s.chart.options.color,boxWidth:40,padding:10,generateLabels(s){const o=s.data.datasets,{labels:{usePointStyle:et,pointStyle:tt,textAlign:nt,color:rt,useBorderRadius:it,borderRadius:ot}}=s.legend.options;return s._getSortedDatasetMetas().map(st=>{const at=st.controller.getStyle(et?0:void 0),lt=toPadding(at.borderWidth);return{text:o[st.index].label,fillStyle:at.backgroundColor,fontColor:rt,hidden:!st.visible,lineCap:at.borderCapStyle,lineDash:at.borderDash,lineDashOffset:at.borderDashOffset,lineJoin:at.borderJoinStyle,lineWidth:(lt.width+lt.height)/4,strokeStyle:at.borderColor,pointStyle:tt||at.pointStyle,rotation:at.rotation,textAlign:nt||at.textAlign,borderRadius:it&&(ot||at.borderRadius),datasetIndex:st.index}},this)}},title:{color:s=>s.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:s=>!s.startsWith("on"),labels:{_scriptable:s=>!["generateLabels","filter","sort"].includes(s)}}};class Title extends Element$1{constructor(o){super(),this.chart=o.chart,this.options=o.options,this.ctx=o.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(o,et){const tt=this.options;if(this.left=0,this.top=0,!tt.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=o,this.height=this.bottom=et;const nt=isArray$4(tt.text)?tt.text.length:1;this._padding=toPadding(tt.padding);const rt=nt*toFont(tt.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=rt:this.width=rt}isHorizontal(){const o=this.options.position;return o==="top"||o==="bottom"}_drawArgs(o){const{top:et,left:tt,bottom:nt,right:rt,options:it}=this,ot=it.align;let st=0,at,lt,ut;return this.isHorizontal()?(lt=_alignStartEnd(ot,tt,rt),ut=et+o,at=rt-tt):(it.position==="left"?(lt=tt+o,ut=_alignStartEnd(ot,nt,et),st=PI*-.5):(lt=rt-o,ut=_alignStartEnd(ot,et,nt),st=PI*.5),at=nt-et),{titleX:lt,titleY:ut,maxWidth:at,rotation:st}}draw(){const o=this.ctx,et=this.options;if(!et.display)return;const tt=toFont(et.font),nt=tt.lineHeight/2+this._padding.top,{titleX:rt,titleY:it,maxWidth:ot,rotation:st}=this._drawArgs(nt);renderText(o,et.text,0,0,tt,{color:et.color,maxWidth:ot,rotation:st,textAlign:_toLeftRightCenter(et.align),textBaseline:"middle",translation:[rt,it]})}}function createTitle(s,o){const et=new Title({ctx:s.ctx,options:o,chart:s});layouts.configure(s,et,o),layouts.addBox(s,et),s.titleBlock=et}var plugin_title={id:"title",_element:Title,start(s,o,et){createTitle(s,et)},stop(s){const o=s.titleBlock;layouts.removeBox(s,o),delete s.titleBlock},beforeUpdate(s,o,et){const tt=s.titleBlock;layouts.configure(s,tt,et),tt.options=et},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const map=new WeakMap;var plugin_subtitle={id:"subtitle",start(s,o,et){const tt=new Title({ctx:s.ctx,options:et,chart:s});layouts.configure(s,tt,et),layouts.addBox(s,tt),map.set(s,tt)},stop(s){layouts.removeBox(s,map.get(s)),map.delete(s)},beforeUpdate(s,o,et){const tt=map.get(s);layouts.configure(s,tt,et),tt.options=et},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const positioners={average(s){if(!s.length)return!1;let o,et,tt=0,nt=0,rt=0;for(o=0,et=s.length;o-1?s.split(` `):s}function createTooltipItem(s,o){const{element:et,datasetIndex:tt,index:nt}=o,rt=s.getDatasetMeta(tt).controller,{label:it,value:ot}=rt.getLabelAndValue(nt);return{chart:s,label:it,parsed:rt.getParsed(nt),raw:s.data.datasets[tt].data[nt],formattedValue:ot,dataset:rt.getDataset(),dataIndex:nt,datasetIndex:tt,element:et}}function getTooltipSize(s,o){const et=s.chart.ctx,{body:tt,footer:nt,title:rt}=s,{boxWidth:it,boxHeight:ot}=o,st=toFont(o.bodyFont),at=toFont(o.titleFont),lt=toFont(o.footerFont),ut=rt.length,dt=nt.length,ht=tt.length,ct=toPadding(o.padding);let pt=ct.height,ft=0,gt=tt.reduce((Ft,mt)=>Ft+mt.before.length+mt.lines.length+mt.after.length,0);if(gt+=s.beforeBody.length+s.afterBody.length,ut&&(pt+=ut*at.lineHeight+(ut-1)*o.titleSpacing+o.titleMarginBottom),gt){const Ft=o.displayColors?Math.max(ot,st.lineHeight):st.lineHeight;pt+=ht*Ft+(gt-ht)*st.lineHeight+(gt-1)*o.bodySpacing}dt&&(pt+=o.footerMarginTop+dt*lt.lineHeight+(dt-1)*o.footerSpacing);let yt=0;const Ut=function(Ft){ft=Math.max(ft,et.measureText(Ft).width+yt)};return et.save(),et.font=at.string,each(s.title,Ut),et.font=st.string,each(s.beforeBody.concat(s.afterBody),Ut),yt=o.displayColors?it+2+o.boxPadding:0,each(tt,Ft=>{each(Ft.before,Ut),each(Ft.lines,Ut),each(Ft.after,Ut)}),yt=0,et.font=lt.string,each(s.footer,Ut),et.restore(),ft+=ct.width,{width:ft,height:pt}}function determineYAlign(s,o){const{y:et,height:tt}=o;return ets.height-tt/2?"bottom":"center"}function doesNotFitWithAlign(s,o,et,tt){const{x:nt,width:rt}=tt,it=et.caretSize+et.caretPadding;if(s==="left"&&nt+rt+it>o.width||s==="right"&&nt-rt-it<0)return!0}function determineXAlign(s,o,et,tt){const{x:nt,width:rt}=et,{width:it,chartArea:{left:ot,right:st}}=s;let at="center";return tt==="center"?at=nt<=(ot+st)/2?"left":"right":nt<=rt/2?at="left":nt>=it-rt/2&&(at="right"),doesNotFitWithAlign(at,s,o,et)&&(at="center"),at}function determineAlignment(s,o,et){const tt=et.yAlign||o.yAlign||determineYAlign(s,et);return{xAlign:et.xAlign||o.xAlign||determineXAlign(s,o,et,tt),yAlign:tt}}function alignX(s,o){let{x:et,width:tt}=s;return o==="right"?et-=tt:o==="center"&&(et-=tt/2),et}function alignY(s,o,et){let{y:tt,height:nt}=s;return o==="top"?tt+=et:o==="bottom"?tt-=nt+et:tt-=nt/2,tt}function getBackgroundPoint(s,o,et,tt){const{caretSize:nt,caretPadding:rt,cornerRadius:it}=s,{xAlign:ot,yAlign:st}=et,at=nt+rt,{topLeft:lt,topRight:ut,bottomLeft:dt,bottomRight:ht}=toTRBLCorners(it);let ct=alignX(o,ot);const pt=alignY(o,st,at);return st==="center"?ot==="left"?ct+=at:ot==="right"&&(ct-=at):ot==="left"?ct-=Math.max(lt,dt)+nt:ot==="right"&&(ct+=Math.max(ut,ht)+nt),{x:_limitValue(ct,0,tt.width-o.width),y:_limitValue(pt,0,tt.height-o.height)}}function getAlignedX(s,o,et){const tt=toPadding(et.padding);return o==="center"?s.x+s.width/2:o==="right"?s.x+s.width-tt.right:s.x+tt.left}function getBeforeAfterBodyLines(s){return pushOrConcat([],splitNewlines(s))}function createTooltipContext(s,o,et){return createContext(s,{tooltip:o,tooltipItems:et,type:"tooltip"})}function overrideCallbacks(s,o){const et=o&&o.dataset&&o.dataset.tooltip&&o.dataset.tooltip.callbacks;return et?s.override(et):s}const defaultCallbacks={beforeTitle:noop,title(s){if(s.length>0){const o=s[0],et=o.chart.data.labels,tt=et?et.length:0;if(this&&this.options&&this.options.mode==="dataset")return o.dataset.label||"";if(o.label)return o.label;if(tt>0&&o.dataIndex"u"?defaultCallbacks[o].call(et,tt):nt}var Ba;let Tooltip$1=(Ba=class extends Element$1{constructor(s){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=s.chart,this.options=s.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(s){this.options=s,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const s=this._cachedAnimations;if(s)return s;const o=this.chart,et=this.options.setContext(this.getContext()),tt=et.enabled&&o.options.animation&&et.animations,nt=new Animations(this.chart,tt);return tt._cacheable&&(this._cachedAnimations=Object.freeze(nt)),nt}getContext(){return this.$context||(this.$context=createTooltipContext(this.chart.getContext(),this,this._tooltipItems))}getTitle(s,o){const{callbacks:et}=o,tt=invokeCallbackWithFallback(et,"beforeTitle",this,s),nt=invokeCallbackWithFallback(et,"title",this,s),rt=invokeCallbackWithFallback(et,"afterTitle",this,s);let it=[];return it=pushOrConcat(it,splitNewlines(tt)),it=pushOrConcat(it,splitNewlines(nt)),it=pushOrConcat(it,splitNewlines(rt)),it}getBeforeBody(s,o){return getBeforeAfterBodyLines(invokeCallbackWithFallback(o.callbacks,"beforeBody",this,s))}getBody(s,o){const{callbacks:et}=o,tt=[];return each(s,nt=>{const rt={before:[],lines:[],after:[]},it=overrideCallbacks(et,nt);pushOrConcat(rt.before,splitNewlines(invokeCallbackWithFallback(it,"beforeLabel",this,nt))),pushOrConcat(rt.lines,invokeCallbackWithFallback(it,"label",this,nt)),pushOrConcat(rt.after,splitNewlines(invokeCallbackWithFallback(it,"afterLabel",this,nt))),tt.push(rt)}),tt}getAfterBody(s,o){return getBeforeAfterBodyLines(invokeCallbackWithFallback(o.callbacks,"afterBody",this,s))}getFooter(s,o){const{callbacks:et}=o,tt=invokeCallbackWithFallback(et,"beforeFooter",this,s),nt=invokeCallbackWithFallback(et,"footer",this,s),rt=invokeCallbackWithFallback(et,"afterFooter",this,s);let it=[];return it=pushOrConcat(it,splitNewlines(tt)),it=pushOrConcat(it,splitNewlines(nt)),it=pushOrConcat(it,splitNewlines(rt)),it}_createItems(s){const o=this._active,et=this.chart.data,tt=[],nt=[],rt=[];let it=[],ot,st;for(ot=0,st=o.length;ots.filter(at,lt,ut,et))),s.itemSort&&(it=it.sort((at,lt)=>s.itemSort(at,lt,et))),each(it,at=>{const lt=overrideCallbacks(s.callbacks,at);tt.push(invokeCallbackWithFallback(lt,"labelColor",this,at)),nt.push(invokeCallbackWithFallback(lt,"labelPointStyle",this,at)),rt.push(invokeCallbackWithFallback(lt,"labelTextColor",this,at))}),this.labelColors=tt,this.labelPointStyles=nt,this.labelTextColors=rt,this.dataPoints=it,it}update(s,o){const et=this.options.setContext(this.getContext()),tt=this._active;let nt,rt=[];if(!tt.length)this.opacity!==0&&(nt={opacity:0});else{const it=positioners[et.position].call(this,tt,this._eventPosition);rt=this._createItems(et),this.title=this.getTitle(rt,et),this.beforeBody=this.getBeforeBody(rt,et),this.body=this.getBody(rt,et),this.afterBody=this.getAfterBody(rt,et),this.footer=this.getFooter(rt,et);const ot=this._size=getTooltipSize(this,et),st=Object.assign({},it,ot),at=determineAlignment(this.chart,et,st),lt=getBackgroundPoint(et,st,at,this.chart);this.xAlign=at.xAlign,this.yAlign=at.yAlign,nt={opacity:1,x:lt.x,y:lt.y,width:ot.width,height:ot.height,caretX:it.x,caretY:it.y}}this._tooltipItems=rt,this.$context=void 0,nt&&this._resolveAnimations().update(this,nt),s&&et.external&&et.external.call(this,{chart:this.chart,tooltip:this,replay:o})}drawCaret(s,o,et,tt){const nt=this.getCaretPosition(s,et,tt);o.lineTo(nt.x1,nt.y1),o.lineTo(nt.x2,nt.y2),o.lineTo(nt.x3,nt.y3)}getCaretPosition(s,o,et){const{xAlign:tt,yAlign:nt}=this,{caretSize:rt,cornerRadius:it}=et,{topLeft:ot,topRight:st,bottomLeft:at,bottomRight:lt}=toTRBLCorners(it),{x:ut,y:dt}=s,{width:ht,height:ct}=o;let pt,ft,gt,yt,Ut,Ft;return nt==="center"?(Ut=dt+ct/2,tt==="left"?(pt=ut,ft=pt-rt,yt=Ut+rt,Ft=Ut-rt):(pt=ut+ht,ft=pt+rt,yt=Ut-rt,Ft=Ut+rt),gt=pt):(tt==="left"?ft=ut+Math.max(ot,at)+rt:tt==="right"?ft=ut+ht-Math.max(st,lt)-rt:ft=this.caretX,nt==="top"?(yt=dt,Ut=yt-rt,pt=ft-rt,gt=ft+rt):(yt=dt+ct,Ut=yt+rt,pt=ft+rt,gt=ft-rt),Ft=yt),{x1:pt,x2:ft,x3:gt,y1:yt,y2:Ut,y3:Ft}}drawTitle(s,o,et){const tt=this.title,nt=tt.length;let rt,it,ot;if(nt){const st=getRtlAdapter(et.rtl,this.x,this.width);for(s.x=getAlignedX(this,et.titleAlign,et),o.textAlign=st.textAlign(et.titleAlign),o.textBaseline="middle",rt=toFont(et.titleFont),it=et.titleSpacing,o.fillStyle=et.titleColor,o.font=rt.string,ot=0;otyt!==0)?(s.beginPath(),s.fillStyle=nt.multiKeyBackground,addRoundedRectPath(s,{x:pt,y:ct,w:st,h:ot,radius:gt}),s.fill(),s.stroke(),s.fillStyle=rt.backgroundColor,s.beginPath(),addRoundedRectPath(s,{x:ft,y:ct+1,w:st-2,h:ot-2,radius:gt}),s.fill()):(s.fillStyle=nt.multiKeyBackground,s.fillRect(pt,ct,st,ot),s.strokeRect(pt,ct,st,ot),s.fillStyle=rt.backgroundColor,s.fillRect(ft,ct+1,st-2,ot-2))}s.fillStyle=this.labelTextColors[et]}drawBody(s,o,et){const{body:tt}=this,{bodySpacing:nt,bodyAlign:rt,displayColors:it,boxHeight:ot,boxWidth:st,boxPadding:at}=et,lt=toFont(et.bodyFont);let ut=lt.lineHeight,dt=0;const ht=getRtlAdapter(et.rtl,this.x,this.width),ct=function(At){o.fillText(At,ht.x(s.x+dt),s.y+ut/2),s.y+=ut+nt},pt=ht.textAlign(rt);let ft,gt,yt,Ut,Ft,mt,vt;for(o.textAlign=rt,o.textBaseline="middle",o.font=lt.string,s.x=getAlignedX(this,pt,et),o.fillStyle=et.bodyColor,each(this.beforeBody,ct),dt=it&&pt!=="right"?rt==="center"?st/2+at:st+2+at:0,Ut=0,mt=tt.length;Ut0&&o.stroke()}_updateAnimationTarget(s){const o=this.chart,et=this.$animations,tt=et&&et.x,nt=et&&et.y;if(tt||nt){const rt=positioners[s.position].call(this,this._active,this._eventPosition);if(!rt)return;const it=this._size=getTooltipSize(this,s),ot=Object.assign({},rt,this._size),st=determineAlignment(o,s,ot),at=getBackgroundPoint(s,ot,st,o);(tt._to!==at.x||nt._to!==at.y)&&(this.xAlign=st.xAlign,this.yAlign=st.yAlign,this.width=it.width,this.height=it.height,this.caretX=rt.x,this.caretY=rt.y,this._resolveAnimations().update(this,at))}}_willRender(){return!!this.opacity}draw(s){const o=this.options.setContext(this.getContext());let et=this.opacity;if(!et)return;this._updateAnimationTarget(o);const tt={width:this.width,height:this.height},nt={x:this.x,y:this.y};et=Math.abs(et)<.001?0:et;const rt=toPadding(o.padding),it=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;o.enabled&&it&&(s.save(),s.globalAlpha=et,this.drawBackground(nt,s,tt,o),overrideTextDirection(s,o.textDirection),nt.y+=rt.top,this.drawTitle(nt,s,o),this.drawBody(nt,s,o),this.drawFooter(nt,s,o),restoreTextDirection(s,o.textDirection),s.restore())}getActiveElements(){return this._active||[]}setActiveElements(s,o){const et=this._active,tt=s.map(({datasetIndex:it,index:ot})=>{const st=this.chart.getDatasetMeta(it);if(!st)throw new Error("Cannot find a dataset at index "+it);return{datasetIndex:it,element:st.data[ot],index:ot}}),nt=!_elementsEqual(et,tt),rt=this._positionChanged(tt,o);(nt||rt)&&(this._active=tt,this._eventPosition=o,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(s,o,et=!0){if(o&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const tt=this.options,nt=this._active||[],rt=this._getActiveElements(s,nt,o,et),it=this._positionChanged(rt,s),ot=o||!_elementsEqual(rt,nt)||it;return ot&&(this._active=rt,(tt.enabled||tt.external)&&(this._eventPosition={x:s.x,y:s.y},this.update(!0,o))),ot}_getActiveElements(s,o,et,tt){const nt=this.options;if(s.type==="mouseout")return[];if(!tt)return o;const rt=this.chart.getElementsAtEventForMode(s,nt.mode,nt,et);return nt.reverse&&rt.reverse(),rt}_positionChanged(s,o){const{caretX:et,caretY:tt,options:nt}=this,rt=positioners[nt.position].call(this,s,o);return rt!==!1&&(et!==rt.x||tt!==rt.y)}},He(Ba,"positioners",positioners),Ba);var plugin_tooltip={id:"tooltip",_element:Tooltip$1,positioners,afterInit(s,o,et){et&&(s.tooltip=new Tooltip$1({chart:s,options:et}))},beforeUpdate(s,o,et){s.tooltip&&s.tooltip.initialize(et)},reset(s,o,et){s.tooltip&&s.tooltip.initialize(et)},afterDraw(s){const o=s.tooltip;if(o&&o._willRender()){const et={tooltip:o};if(s.notifyPlugins("beforeTooltipDraw",{...et,cancelable:!0})===!1)return;o.draw(s.ctx),s.notifyPlugins("afterTooltipDraw",et)}},afterEvent(s,o){if(s.tooltip){const et=o.replay;s.tooltip.handleEvent(o.event,et,o.inChartArea)&&(o.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(s,o)=>o.bodyFont.size,boxWidth:(s,o)=>o.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:defaultCallbacks},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:s=>s!=="filter"&&s!=="itemSort"&&s!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},plugins=Object.freeze({__proto__:null,Colors:plugin_colors,Decimation:plugin_decimation,Filler:index,Legend:plugin_legend,SubTitle:plugin_subtitle,Title:plugin_title,Tooltip:plugin_tooltip});const addIfString=(s,o,et,tt)=>(typeof o=="string"?(et=s.push(o)-1,tt.unshift({index:et,label:o})):isNaN(o)&&(et=null),et);function findOrAddLabel(s,o,et,tt){const nt=s.indexOf(o);if(nt===-1)return addIfString(s,o,et,tt);const rt=s.lastIndexOf(o);return nt!==rt?et:nt}const validIndex=(s,o)=>s===null?null:_limitValue(Math.round(s),0,o);function _getLabelForValue(s){const o=this.getLabels();return s>=0&&set.length-1?null:this.getPixelForValue(et[o].value)}getValueForPixel(o){return Math.round(this._startValue+this.getDecimalForPixel(o)*this._valueRange)}getBasePixel(){return this.bottom}}He(CategoryScale,"id","category"),He(CategoryScale,"defaults",{ticks:{callback:_getLabelForValue}});function generateTicks$1(s,o){const et=[],{bounds:tt,step:nt,min:rt,max:it,precision:ot,count:st,maxTicks:at,maxDigits:lt,includeBounds:ut}=s,dt=nt||1,ht=at-1,{min:ct,max:pt}=o,ft=!isNullOrUndef(rt),gt=!isNullOrUndef(it),yt=!isNullOrUndef(st),Ut=(pt-ct)/(lt+1);let Ft=niceNum((pt-ct)/ht/dt)*dt,mt,vt,At,Lt;if(Ft<1e-14&&!ft&&!gt)return[{value:ct},{value:pt}];Lt=Math.ceil(pt/Ft)-Math.floor(ct/Ft),Lt>ht&&(Ft=niceNum(Lt*Ft/ht/dt)*dt),isNullOrUndef(ot)||(mt=Math.pow(10,ot),Ft=Math.ceil(Ft*mt)/mt),tt==="ticks"?(vt=Math.floor(ct/Ft)*Ft,At=Math.ceil(pt/Ft)*Ft):(vt=ct,At=pt),ft&>&&nt&&almostWhole((it-rt)/nt,Ft/1e3)?(Lt=Math.round(Math.min((it-rt)/Ft,at)),Ft=(it-rt)/Lt,vt=rt,At=it):yt?(vt=ft?rt:vt,At=gt?it:At,Lt=st-1,Ft=(At-vt)/Lt):(Lt=(At-vt)/Ft,almostEquals(Lt,Math.round(Lt),Ft/1e3)?Lt=Math.round(Lt):Lt=Math.ceil(Lt));const Rt=Math.max(_decimalPlaces(Ft),_decimalPlaces(vt));mt=Math.pow(10,isNullOrUndef(ot)?Rt:ot),vt=Math.round(vt*mt)/mt,At=Math.round(At*mt)/mt;let St=0;for(ft&&(ut&&vt!==rt?(et.push({value:rt}),vtnt=et?nt:st,ot=st=>rt=tt?rt:st;if(o){const st=sign(nt),at=sign(rt);st<0&&at<0?ot(0):st>0&&at>0&&it(0)}if(nt===rt){let st=rt===0?1:Math.abs(rt*.05);ot(rt+st),o||it(nt-st)}this.min=nt,this.max=rt}getTickLimit(){const o=this.options.ticks;let{maxTicksLimit:et,stepSize:tt}=o,nt;return tt?(nt=Math.ceil(this.max/tt)-Math.floor(this.min/tt)+1,nt>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${tt} would result generating up to ${nt} ticks. Limiting to 1000.`),nt=1e3)):(nt=this.computeTickLimit(),et=et||11),et&&(nt=Math.min(et,nt)),nt}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const o=this.options,et=o.ticks;let tt=this.getTickLimit();tt=Math.max(2,tt);const nt={maxTicks:tt,bounds:o.bounds,min:o.min,max:o.max,precision:et.precision,step:et.stepSize,count:et.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:et.minRotation||0,includeBounds:et.includeBounds!==!1},rt=this._range||this,it=generateTicks$1(nt,rt);return o.bounds==="ticks"&&_setMinAndMaxByKey(it,this,"value"),o.reverse?(it.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),it}configure(){const o=this.ticks;let et=this.min,tt=this.max;if(super.configure(),this.options.offset&&o.length){const nt=(tt-et)/Math.max(o.length-1,1)/2;et-=nt,tt+=nt}this._startValue=et,this._endValue=tt,this._valueRange=tt-et}getLabelForValue(o){return formatNumber(o,this.chart.options.locale,this.options.ticks.format)}}class LinearScale extends LinearScaleBase{determineDataLimits(){const{min:o,max:et}=this.getMinMax(!0);this.min=isNumberFinite(o)?o:0,this.max=isNumberFinite(et)?et:1,this.handleTickRangeOptions()}computeTickLimit(){const o=this.isHorizontal(),et=o?this.width:this.height,tt=toRadians$1(this.options.ticks.minRotation),nt=(o?Math.sin(tt):Math.cos(tt))||.001,rt=this._resolveTickFontOptions(0);return Math.ceil(et/Math.min(40,rt.lineHeight/nt))}getPixelForValue(o){return o===null?NaN:this.getPixelForDecimal((o-this._startValue)/this._valueRange)}getValueForPixel(o){return this._startValue+this.getDecimalForPixel(o)*this._valueRange}}He(LinearScale,"id","linear"),He(LinearScale,"defaults",{ticks:{callback:Ticks.formatters.numeric}});const log10Floor=s=>Math.floor(log10(s)),changeExponent=(s,o)=>Math.pow(10,log10Floor(s)+o);function isMajor(s){return s/Math.pow(10,log10Floor(s))===1}function steps(s,o,et){const tt=Math.pow(10,et),nt=Math.floor(s/tt);return Math.ceil(o/tt)-nt}function startExp(s,o){const et=o-s;let tt=log10Floor(et);for(;steps(s,o,tt)>10;)tt++;for(;steps(s,o,tt)<10;)tt--;return Math.min(tt,log10Floor(s))}function generateTicks(s,{min:o,max:et}){o=finiteOrDefault(s.min,o);const tt=[],nt=log10Floor(o);let rt=startExp(o,et),it=rt<0?Math.pow(10,Math.abs(rt)):1;const ot=Math.pow(10,rt),st=nt>rt?Math.pow(10,nt):0,at=Math.round((o-st)*it)/it,lt=Math.floor((o-st)/ot/10)*ot*10;let ut=Math.floor((at-lt)/Math.pow(10,rt)),dt=finiteOrDefault(s.min,Math.round((st+lt+ut*Math.pow(10,rt))*it)/it);for(;dt=10?ut=ut<15?15:20:ut++,ut>=20&&(rt++,ut=2,it=rt>=0?1:it),dt=Math.round((st+lt+ut*Math.pow(10,rt))*it)/it;const ht=finiteOrDefault(s.max,dt);return tt.push({value:ht,major:isMajor(ht),significand:ut}),tt}class LogarithmicScale extends Scale{constructor(o){super(o),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(o,et){const tt=LinearScaleBase.prototype.parse.apply(this,[o,et]);if(tt===0){this._zero=!0;return}return isNumberFinite(tt)&&tt>0?tt:null}determineDataLimits(){const{min:o,max:et}=this.getMinMax(!0);this.min=isNumberFinite(o)?Math.max(0,o):null,this.max=isNumberFinite(et)?Math.max(0,et):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!isNumberFinite(this._userMin)&&(this.min=o===changeExponent(this.min,0)?changeExponent(this.min,-1):changeExponent(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:o,maxDefined:et}=this.getUserBounds();let tt=this.min,nt=this.max;const rt=ot=>tt=o?tt:ot,it=ot=>nt=et?nt:ot;tt===nt&&(tt<=0?(rt(1),it(10)):(rt(changeExponent(tt,-1)),it(changeExponent(nt,1)))),tt<=0&&rt(changeExponent(nt,-1)),nt<=0&&it(changeExponent(tt,1)),this.min=tt,this.max=nt}buildTicks(){const o=this.options,et={min:this._userMin,max:this._userMax},tt=generateTicks(et,this);return o.bounds==="ticks"&&_setMinAndMaxByKey(tt,this,"value"),o.reverse?(tt.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),tt}getLabelForValue(o){return o===void 0?"0":formatNumber(o,this.chart.options.locale,this.options.ticks.format)}configure(){const o=this.min;super.configure(),this._startValue=log10(o),this._valueRange=log10(this.max)-log10(o)}getPixelForValue(o){return(o===void 0||o===0)&&(o=this.min),o===null||isNaN(o)?NaN:this.getPixelForDecimal(o===this.min?0:(log10(o)-this._startValue)/this._valueRange)}getValueForPixel(o){const et=this.getDecimalForPixel(o);return Math.pow(10,this._startValue+et*this._valueRange)}}He(LogarithmicScale,"id","logarithmic"),He(LogarithmicScale,"defaults",{ticks:{callback:Ticks.formatters.logarithmic,major:{enabled:!0}}});function getTickBackdropHeight(s){const o=s.ticks;if(o.display&&s.display){const et=toPadding(o.backdropPadding);return valueOrDefault(o.font&&o.font.size,defaults$2.font.size)+et.height}return 0}function measureLabelSize(s,o,et){return et=isArray$4(et)?et:[et],{w:_longestText(s,o.string,et),h:et.length*o.lineHeight}}function determineLimits(s,o,et,tt,nt){return s===tt||s===nt?{start:o-et/2,end:o+et/2}:snt?{start:o-et,end:o}:{start:o,end:o+et}}function fitWithPointLabels(s){const o={l:s.left+s._padding.left,r:s.right-s._padding.right,t:s.top+s._padding.top,b:s.bottom-s._padding.bottom},et=Object.assign({},o),tt=[],nt=[],rt=s._pointLabels.length,it=s.options.pointLabels,ot=it.centerPointLabels?PI/rt:0;for(let st=0;sto.r&&(ot=(tt.end-o.r)/rt,s.r=Math.max(s.r,o.r+ot)),nt.starto.b&&(st=(nt.end-o.b)/it,s.b=Math.max(s.b,o.b+st))}function buildPointLabelItems(s,o,et){const tt=[],nt=s._pointLabels.length,rt=s.options,it=getTickBackdropHeight(rt)/2,ot=s.drawingArea,st=rt.pointLabels.centerPointLabels?PI/nt:0;for(let at=0;at270||et<90)&&(s-=o),s}function drawPointLabels(s,o){const{ctx:et,options:{pointLabels:tt}}=s;for(let nt=o-1;nt>=0;nt--){const rt=tt.setContext(s.getPointLabelContext(nt)),it=toFont(rt.font),{x:ot,y:st,textAlign:at,left:lt,top:ut,right:dt,bottom:ht}=s._pointLabelItems[nt],{backdropColor:ct}=rt;if(!isNullOrUndef(ct)){const pt=toTRBLCorners(rt.borderRadius),ft=toPadding(rt.backdropPadding);et.fillStyle=ct;const gt=lt-ft.left,yt=ut-ft.top,Ut=dt-lt+ft.width,Ft=ht-ut+ft.height;Object.values(pt).some(mt=>mt!==0)?(et.beginPath(),addRoundedRectPath(et,{x:gt,y:yt,w:Ut,h:Ft,radius:pt}),et.fill()):et.fillRect(gt,yt,Ut,Ft)}renderText(et,s._pointLabels[nt],ot,st+it.lineHeight/2,it,{color:rt.color,textAlign:at,textBaseline:"middle"})}}function pathRadiusLine(s,o,et,tt){const{ctx:nt}=s;if(et)nt.arc(s.xCenter,s.yCenter,o,0,TAU$1);else{let rt=s.getPointPosition(0,o);nt.moveTo(rt.x,rt.y);for(let it=1;it{const nt=callback(this.options.pointLabels.callback,[et,tt],this);return nt||nt===0?nt:""}).filter((et,tt)=>this.chart.getDataVisibility(tt))}fit(){const o=this.options;o.display&&o.pointLabels.display?fitWithPointLabels(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(o,et,tt,nt){this.xCenter+=Math.floor((o-et)/2),this.yCenter+=Math.floor((tt-nt)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(o,et,tt,nt))}getIndexAngle(o){const et=TAU$1/(this._pointLabels.length||1),tt=this.options.startAngle||0;return _normalizeAngle(o*et+toRadians$1(tt))}getDistanceFromCenterForValue(o){if(isNullOrUndef(o))return NaN;const et=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-o)*et:(o-this.min)*et}getValueForDistanceFromCenter(o){if(isNullOrUndef(o))return NaN;const et=o/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-et:this.min+et}getPointLabelContext(o){const et=this._pointLabels||[];if(o>=0&&o{if(ut!==0){st=this.getDistanceFromCenterForValue(lt.value);const dt=this.getContext(ut),ht=nt.setContext(dt),ct=rt.setContext(dt);drawRadiusLine(this,ht,st,it,ct)}}),tt.display){for(o.save(),ot=it-1;ot>=0;ot--){const lt=tt.setContext(this.getPointLabelContext(ot)),{color:ut,lineWidth:dt}=lt;!dt||!ut||(o.lineWidth=dt,o.strokeStyle=ut,o.setLineDash(lt.borderDash),o.lineDashOffset=lt.borderDashOffset,st=this.getDistanceFromCenterForValue(et.ticks.reverse?this.min:this.max),at=this.getPointPosition(ot,st),o.beginPath(),o.moveTo(this.xCenter,this.yCenter),o.lineTo(at.x,at.y),o.stroke())}o.restore()}}drawBorder(){}drawLabels(){const o=this.ctx,et=this.options,tt=et.ticks;if(!tt.display)return;const nt=this.getIndexAngle(0);let rt,it;o.save(),o.translate(this.xCenter,this.yCenter),o.rotate(nt),o.textAlign="center",o.textBaseline="middle",this.ticks.forEach((ot,st)=>{if(st===0&&!et.reverse)return;const at=tt.setContext(this.getContext(st)),lt=toFont(at.font);if(rt=this.getDistanceFromCenterForValue(this.ticks[st].value),at.showLabelBackdrop){o.font=lt.string,it=o.measureText(ot.label).width,o.fillStyle=at.backdropColor;const ut=toPadding(at.backdropPadding);o.fillRect(-it/2-ut.left,-rt-lt.size/2-ut.top,it+ut.width,lt.size+ut.height)}renderText(o,ot.label,0,-rt,lt,{color:at.color})}),o.restore()}drawTitle(){}}He(RadialLinearScale,"id","radialLinear"),He(RadialLinearScale,"defaults",{display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Ticks.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(s){return s},padding:5,centerPointLabels:!1}}),He(RadialLinearScale,"defaultRoutes",{"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"}),He(RadialLinearScale,"descriptors",{angleLines:{_fallback:"grid"}});const INTERVALS={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},UNITS=Object.keys(INTERVALS);function sorter(s,o){return s-o}function parse$2(s,o){if(isNullOrUndef(o))return null;const et=s._adapter,{parser:tt,round:nt,isoWeekday:rt}=s._parseOpts;let it=o;return typeof tt=="function"&&(it=tt(it)),isNumberFinite(it)||(it=typeof tt=="string"?et.parse(it,tt):et.parse(it)),it===null?null:(nt&&(it=nt==="week"&&(isNumber$1(rt)||rt===!0)?et.startOf(it,"isoWeek",rt):et.startOf(it,nt)),+it)}function determineUnitForAutoTicks(s,o,et,tt){const nt=UNITS.length;for(let rt=UNITS.indexOf(s);rt=UNITS.indexOf(et);rt--){const it=UNITS[rt];if(INTERVALS[it].common&&s._adapter.diff(nt,tt,it)>=o-1)return it}return UNITS[et?UNITS.indexOf(et):0]}function determineMajorUnit(s){for(let o=UNITS.indexOf(s)+1,et=UNITS.length;o=o?et[tt]:et[nt];s[rt]=!0}}function setMajorTicks(s,o,et,tt){const nt=s._adapter,rt=+nt.startOf(o[0].value,tt),it=o[o.length-1].value;let ot,st;for(ot=rt;ot<=it;ot=+nt.add(ot,1,tt))st=et[ot],st>=0&&(o[st].major=!0);return o}function ticksFromTimestamps(s,o,et){const tt=[],nt={},rt=o.length;let it,ot;for(it=0;it+o.value))}initOffsets(o=[]){let et=0,tt=0,nt,rt;this.options.offset&&o.length&&(nt=this.getDecimalForValue(o[0]),o.length===1?et=1-nt:et=(this.getDecimalForValue(o[1])-nt)/2,rt=this.getDecimalForValue(o[o.length-1]),o.length===1?tt=rt:tt=(rt-this.getDecimalForValue(o[o.length-2]))/2);const it=o.length<3?.5:.25;et=_limitValue(et,0,it),tt=_limitValue(tt,0,it),this._offsets={start:et,end:tt,factor:1/(et+1+tt)}}_generate(){const o=this._adapter,et=this.min,tt=this.max,nt=this.options,rt=nt.time,it=rt.unit||determineUnitForAutoTicks(rt.minUnit,et,tt,this._getLabelCapacity(et)),ot=valueOrDefault(nt.ticks.stepSize,1),st=it==="week"?rt.isoWeekday:!1,at=isNumber$1(st)||st===!0,lt={};let ut=et,dt,ht;if(at&&(ut=+o.startOf(ut,"isoWeek",st)),ut=+o.startOf(ut,at?"day":it),o.diff(tt,et,it)>1e5*ot)throw new Error(et+" and "+tt+" are too far apart with stepSize of "+ot+" "+it);const ct=nt.ticks.source==="data"&&this.getDataTimestamps();for(dt=ut,ht=0;dtpt-ft).map(pt=>+pt)}getLabelForValue(o){const et=this._adapter,tt=this.options.time;return tt.tooltipFormat?et.format(o,tt.tooltipFormat):et.format(o,tt.displayFormats.datetime)}format(o,et){const tt=this.options.time.displayFormats,nt=this._unit,rt=et||tt[nt];return this._adapter.format(o,rt)}_tickFormatFunction(o,et,tt,nt){const rt=this.options,it=rt.ticks.callback;if(it)return callback(it,[o,et,tt],this);const ot=rt.time.displayFormats,st=this._unit,at=this._majorUnit,lt=st&&ot[st],ut=at&&ot[at],dt=tt[et],ht=at&&ut&&dt&&dt.major;return this._adapter.format(o,nt||(ht?ut:lt))}generateTickLabels(o){let et,tt,nt;for(et=0,tt=o.length;et0?ot:1}getDataTimestamps(){let o=this._cache.data||[],et,tt;if(o.length)return o;const nt=this.getMatchingVisibleMetas();if(this._normalized&&nt.length)return this._cache.data=nt[0].controller.getAllParsedValues(this);for(et=0,tt=nt.length;et=s[tt].pos&&o<=s[nt].pos&&({lo:tt,hi:nt}=_lookupByKey(s,"pos",o)),{pos:rt,time:ot}=s[tt],{pos:it,time:st}=s[nt]):(o>=s[tt].time&&o<=s[nt].time&&({lo:tt,hi:nt}=_lookupByKey(s,"time",o)),{time:rt,pos:ot}=s[tt],{time:it,pos:st}=s[nt]);const at=it-rt;return at?ot+(st-ot)*(o-rt)/at:ot}class TimeSeriesScale extends TimeScale{constructor(o){super(o),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const o=this._getTimestampsForTable(),et=this._table=this.buildLookupTable(o);this._minPos=interpolate(et,this.min),this._tableRange=interpolate(et,this.max)-this._minPos,super.initOffsets(o)}buildLookupTable(o){const{min:et,max:tt}=this,nt=[],rt=[];let it,ot,st,at,lt;for(it=0,ot=o.length;it=et&&at<=tt&&nt.push(at);if(nt.length<2)return[{time:et,pos:0},{time:tt,pos:1}];for(it=0,ot=nt.length;ito in s?__defProp$2(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,__publicField$2=(s,o,et)=>(__defNormalProp$2(s,typeof o!="symbol"?o+"":o,et),et),__defProp2=Object.defineProperty,__defProps$1=Object.defineProperties,__getOwnPropDescs$1=Object.getOwnPropertyDescriptors,__getOwnPropSymbols$1=Object.getOwnPropertySymbols,__hasOwnProp$1=Object.prototype.hasOwnProperty,__propIsEnum$1=Object.prototype.propertyIsEnumerable,__defNormalProp2=(s,o,et)=>o in s?__defProp2(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,__spreadValues$1=(s,o)=>{for(var et in o||(o={}))__hasOwnProp$1.call(o,et)&&__defNormalProp2(s,et,o[et]);if(__getOwnPropSymbols$1)for(var et of __getOwnPropSymbols$1(o))__propIsEnum$1.call(o,et)&&__defNormalProp2(s,et,o[et]);return s},__spreadProps$1=(s,o)=>__defProps$1(s,__getOwnPropDescs$1(o)),__publicField2=(s,o,et)=>(__defNormalProp2(s,typeof o!="symbol"?o+"":o,et),et);const millisecond$1$2=1,second$1$2=1e3,minute$1$2=60*second$1$2,hour$1$2=60*minute$1$2,day$1$2=24*hour$1$2,week$1$2=7*day$1$2,month$1$2=30*day$1$2,year$1$2=365*day$1$2,duration$1$2={millisecond:millisecond$1$2,second:second$1$2,minute:minute$1$2,hour:hour$1$2,day:day$1$2,week:week$1$2,month:month$1$2,year:year$1$2};let H264Decoder$1=class{constructor(o,et,tt){__publicField2(this,"worker"),__publicField2(this,"onReceive"),__publicField2(this,"onError"),__publicField2(this,"onReceiveMessage",rt=>{const{data:it}=rt;if(it.error){const ot=new Error(`${it.error}`);ot.cause=it.error,console.warn("H264 worker failure",{error:ot}),this.onError(it.index);return}this.onReceive(it)});var nt;this.worker=o,(nt=this.worker)==null||nt.addEventListener("message",this.onReceiveMessage),this.onReceive=et,this.onError=tt}post(o,et,tt,nt){var rt;(rt=this.worker)==null||rt.postMessage({timestamp:o,encodedFrame:et,flags:tt,index:nt})}release(){var o,et;(o=this.worker)==null||o.removeEventListener("message",this.onReceiveMessage),(et=this.worker)==null||et.terminate(),this.worker=void 0}},YUVCanvas$1=class{constructor(o){__publicField2(this,"gl"),__publicField2(this,"program"),__publicField2(this,"texturePosBuffer"),__publicField2(this,"textureRef"),__publicField2(this,"height",0),__publicField2(this,"width",0),this.gl=o,this.program=this.initProgram();const{texturePosBuffer:et}=this.initBuffers();this.texturePosBuffer=et;const{textureRef:tt}=this.initTextures();this.textureRef=tt}draw(o){const{gl:et,height:tt,width:nt,texturePosBuffer:rt,textureRef:it}=this;et.viewport(0,0,nt,tt);const ot=new Float32Array([1,0,0,0,1,1,0,1]);return et.bindBuffer(et.ARRAY_BUFFER,rt),et.bufferData(et.ARRAY_BUFFER,ot,et.DYNAMIC_DRAW),et.activeTexture(et.TEXTURE0),et.bindTexture(et.TEXTURE_2D,it),et.texImage2D(et.TEXTURE_2D,0,et.LUMINANCE,nt,tt+tt/2,0,et.LUMINANCE,et.UNSIGNED_BYTE,o),et.drawArrays(et.TRIANGLE_STRIP,0,4),et.getError()}initProgram(){const{gl:o}=this,et=` attribute vec4 vertexPos; @@ -4840,52 +4840,52 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho gl_FragColor = vec4(y, u, v, 1) * YUV2RGB; } - `,nt=[1.16438,0,1.59603,-.87079,1.16438,-.39176,-.81297,.52959,1.16438,2.01723,0,-1.08139,0,0,0,1],rt=o.createShader(o.VERTEX_SHADER);if(!rt)throw new Error("Failed to create vertex shader");o.shaderSource(rt,et),o.compileShader(rt);const it=o.createShader(o.FRAGMENT_SHADER);if(!it)throw new Error("Failed to create fragment shader");o.shaderSource(it,tt),o.compileShader(it);const ot=o.createProgram();if(!ot)throw new Error("Failed to create webgl program");o.attachShader(ot,rt),o.attachShader(ot,it),o.linkProgram(ot),o.useProgram(ot);const st=o.getUniformLocation(ot,"YUV2RGB");return o.uniformMatrix4fv(st,!1,nt),ot}initBuffers(){const{gl:o,program:et}=this,tt=o.createBuffer();o.bindBuffer(o.ARRAY_BUFFER,tt),o.bufferData(o.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),o.STATIC_DRAW);const nt=o.getAttribLocation(et,"vertexPos");o.enableVertexAttribArray(nt),o.vertexAttribPointer(nt,2,o.FLOAT,!1,0,0);const rt=o.createBuffer();if(!rt)throw new Error("Failed to create WebGL buffer");o.bindBuffer(o.ARRAY_BUFFER,rt),o.bufferData(o.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),o.STATIC_DRAW);const it=o.getAttribLocation(et,"texturePos");return o.enableVertexAttribArray(it),o.vertexAttribPointer(it,2,o.FLOAT,!1,0,0),{texturePosBuffer:rt}}initTextures(){const{gl:o,program:et}=this,tt=this.initTexture(),nt=o.getUniformLocation(et,"yuvSampler");return o.uniform1i(nt,0),{textureRef:tt}}initTexture(){const{gl:o}=this,et=o.createTexture();if(!et)throw new Error("Failed to initialize texture");return o.bindTexture(o.TEXTURE_2D,et),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.bindTexture(o.TEXTURE_2D,null),et}};const decoderNotWorkingThreshold$1=duration$1$2.second*2.5,warnPerformanceThreshold$1=duration$1$2.second/3,noSignalThreshold$1=duration$1$2.second*2,maxQueueSize$1=5,maxDropRatio$1=30/25,numRetries$1=5,hardwareIncompatibleErrorCode$1=1282;let H264BytestreamCanvasDrawer$1=class{constructor(o,et,tt,nt,rt){__publicField2(this,"_waitingForDecoder",!0),__publicField2(this,"_noSignal",!0),__publicField2(this,"_lostSignal",!1),__publicField2(this,"_overWaitingThreshold",!1),__publicField2(this,"_retries",0),__publicField2(this,"_webglYUVSupported"),__publicField2(this,"lastDecodedFrameTime"),__publicField2(this,"lastReceivedFrameTime"),__publicField2(this,"lastNoSignalTime",new Date().getTime()),__publicField2(this,"moduleStartTime",Date.now()),__publicField2(this,"moduleCreateTime",Date.now()),__publicField2(this,"timesRestarted",0),__publicField2(this,"canvas"),__publicField2(this,"decoder"),__publicField2(this,"yuvCanvas"),__publicField2(this,"webglContext"),__publicField2(this,"frameQueue",[]),__publicField2(this,"minFrameSize",1/0),__publicField2(this,"maxFrameSize",0),__publicField2(this,"decoderQueue",[]),__publicField2(this,"decoderQueueLocked",!1),__publicField2(this,"decodeNextFrameAttempted",!1),__publicField2(this,"numFramesDecoded",0),__publicField2(this,"numFramesReceived",0),__publicField2(this,"hasReceivedKeyframe",!1),__publicField2(this,"medianFrameSize",0),__publicField2(this,"currentFrameIndex"),__publicField2(this,"frameCheckpointMap",new Map),__publicField2(this,"lastDrawnFrameTime"),__publicField2(this,"minJitter"),__publicField2(this,"maxJitter"),__publicField2(this,"start",()=>{const{canvas:it}=this;if(!it)return;const ot=it.getContext("webgl");this.webglContext=ot||void 0,this.lastDecodedFrameTime=void 0,this.lastReceivedFrameTime=void 0,this.hasReceivedKeyframe=!1,this.currentFrameIndex=void 0,!(!this.canvas||!this.webglContext)&&(this.yuvCanvas||(this.yuvCanvas=new YUVCanvas$1(this.webglContext)),this.moduleStartTime=Date.now())}),__publicField2(this,"stop",()=>{var it;(it=this.decoder)==null||it.release(),this.webglContext=void 0,this.decoderQueueLocked=!1}),__publicField2(this,"reset",()=>{this.retries=0,this.restart()}),__publicField2(this,"notifyWarningTextChanged",()=>{var it;(it=this.onWarningTextChanged)==null||it.call(this,this.getWarningText())}),__publicField2(this,"restart",()=>{console.info("Restarting decoder"),console.info("BytestreamPlayer restarting",__spreadProps$1(__spreadValues$1({},this.trackInfo),{Restart:this.timesRestarted})),this.frameQueue=[],this.decoderQueue=[],this.stop(),this.decoder=new H264Decoder$1(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),this.start(),this.retries++,this.timesRestarted++}),__publicField2(this,"onTrackTick",()=>{if(this.numFramesDecoded===0){if(this.lastDecodedFrameTime===void 0){const at=Date.now();console.info("BytestreamPlayer waiting for video",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Time Waited":at-this.moduleCreateTime}))}return}this.numFramesReceived/this.numFramesDecoded>maxDropRatio$1&&this.warnPerformanceProblems(),this.numFramesReceived=0,this.numFramesDecoded=0;const it=Array.from(this.frameCheckpointMap.entries()).reduce((at,[lt,ut])=>{var dt;return!this.currentFrameIndex||lt>this.currentFrameIndex-60||ut==="FrameDrawn"||(at[ut]=((dt=at[ut])!=null?dt:0)+1,this.frameCheckpointMap.delete(lt)),at},{});Object.keys(it).map(at=>{console.info("BytestreamPlayer Frame Dropped",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Num Dropped":it[at],"Frame State":at}))});const{minJitter:ot,maxJitter:st}=this;ot&&st&&(console.info("BytestreamPlayer Jitter",__spreadProps$1(__spreadValues$1({},this.trackInfo),{minJitter:ot,maxJitter:st})),this.minJitter=void 0,this.maxJitter=void 0)}),__publicField2(this,"onTick",()=>{var it;const{lastReceivedFrameTime:ot,lastDecodedFrameTime:st,moduleStartTime:at,noSignal:lt,retries:ut}=this,dt=new Date().getTime();lt&&(this.lastNoSignalTime=dt),this.overWaitingThreshold=dt-at>noSignalThreshold$1;const ht=dt-at>decoderNotWorkingThreshold$1;if(!st){ot&&ht&&utnoSignalThreshold$1&&ctwarnPerformanceThreshold$1&&this.warnPerformanceProblems(),ct>noSignalThreshold$1&&(this.lostSignal=!0)}this.overWaitingThreshold&&(this.waitingForDecoder||this.noSignal||this.lostSignal)&&((it=this.onCanvasDrawerWarning)==null||it.call(this,"ShouldDisableControl"))}),__publicField2(this,"receiveEncodedFrame",it=>{if(!it)return;const ot=it.index;if(ot&&this.frameCheckpointMap.set(ot,"FrameReceived"),!(!it||!this.canvas||!this.webglContext)){if(this.isKeyframe(it),!this.hasReceivedKeyframe)return console.info("Dropping frame because no keyframe detected"),!1;this.lastReceivedFrameTime===void 0&&console.debug("Received first frame on bytestream player",__spreadValues$1({},this.trackInfo)),this.checkOrder(it),this.numFramesReceived++,this.lastReceivedFrameTime=Date.now(),this.lostSignal&&this.restart(),this.noSignal=!1,this.lostSignal=!1,this.frameQueue.push(it),ot&&this.frameCheckpointMap.set(ot,"FrameQueued"),this.frameQueue.length>maxQueueSize$1&&(this.frameQueue=this.frameQueue.filter(st=>this.isKeyframe(st))),this.frameQueue.length>maxQueueSize$1&&(this.frameQueue=[],this.decoderQueue=[]),this.decodeNextFrame()}}),__publicField2(this,"onDecoderError",it=>{this.frameQueue=[],this.decoderQueue=[],this.hasReceivedKeyframe=!1,console.info("BytestreamPlayer decode error",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Frame Index":it}))}),__publicField2(this,"onReceiveDecodedFrame",it=>{var ot,st;const{canvas:at,yuvCanvas:lt,decoderQueue:ut}=this,{timestamp:dt,yuv:ht,height:ct,width:pt,index:ft}=it;this.frameCheckpointMap.set(ft,"FrameDecoded"),this.numFramesDecoded++;const gt=Date.now();if(this.lastDecodedFrameTime===void 0&&console.info("BytestreamPlayer started video",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Time Until Video":gt-this.moduleCreateTime})),this.lastDecodedFrameTime=gt,this.waitingForDecoder=!1,this.decoderQueue=ut.filter(Ft=>gt-Ftduration$1$2.second||!lt||!at||ct===0||pt===0)return;ct!==at.height&&(at.height=ct,lt.height=ct),pt!==at.width&&(at.width=pt,lt.width=pt);const yt=lt.draw(ht),Ut=Date.now();if(this.lastDrawnFrameTime){const Ft=Ut-this.lastDrawnFrameTime;this.minJitter=Math.min(Ft,(ot=this.minJitter)!=null?ot:Number.MAX_SAFE_INTEGER),this.maxJitter=Math.max(Ft,(st=this.maxJitter)!=null?st:0)}this.lastDrawnFrameTime=Ut,this.frameCheckpointMap.set(ft,"FrameDrawn"),yt===0&&(this.webglYUVSupported=!0),yt===hardwareIncompatibleErrorCode$1&&(this.webglYUVSupported=!1),this.frameQueue.length>0&&this.decodeNextFrame()}),this.workerFactory=o,this.onWebglYUVSupportedChanged=et,this.onWarningTextChanged=tt,this.onCanvasDrawerWarning=nt,this.trackInfo=rt,this.decoder=new H264Decoder$1(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),setInterval(this.onTick,duration$1$2.millisecond*200),setInterval(this.onTrackTick,duration$1$2.second*5)}get waitingForDecoder(){return this._waitingForDecoder}set waitingForDecoder(o){this._waitingForDecoder=o,this.notifyWarningTextChanged()}get noSignal(){return this._noSignal}set noSignal(o){this._noSignal=o,this.notifyWarningTextChanged()}get lostSignal(){return this._lostSignal}set lostSignal(o){this._lostSignal=o,this.notifyWarningTextChanged()}get overWaitingThreshold(){return this._overWaitingThreshold}set overWaitingThreshold(o){this._overWaitingThreshold=o,this.notifyWarningTextChanged()}get retries(){return this._retries}set retries(o){this._retries=o,this.notifyWarningTextChanged()}get webglYUVSupported(){return this._webglYUVSupported}set webglYUVSupported(o){var et;this._webglYUVSupported=o,(et=this.onWebglYUVSupportedChanged)==null||et.call(this,o),this.notifyWarningTextChanged()}setCanvas(o){this.canvas=o}getWarningText(){var o;const{waitingForDecoder:et,noSignal:tt,overWaitingThreshold:nt,lostSignal:rt,retries:it,webglYUVSupported:ot}=this,st=ot===!1,at=et?it===numRetries$1?"Decoder failed to start":"Starting decoder":void 0;return(o=(st?"Hardware decoding not supported on this device":void 0)??(rt?"Lost signal":tt?nt?"No signal":"Waiting for signal":void 0))!=null?o:at}decodeNextFrame(){if(this.decoderQueueLocked&&(this.decodeNextFrameAttempted=!0),this.decoderQueueLocked=!0,this.decoderQueue.length>maxQueueSize$1){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const o=this.frameQueue.shift();if(!o){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const et=Date.now();this.frameCheckpointMap.set(o.index,"FrameSentToDecoder"),this.decoder.post(et,o.frame_data,o.flags,o.index),this.decoderQueue.push(et),this.decoderQueueLocked=!1,this.decodeNextFrameAttempted&&(this.decodeNextFrameAttempted=!1,this.decodeNextFrame())}warnPerformanceProblems(){var o;this.lastDecodedFrameTime&&this.overWaitingThreshold&&!this.lostSignal&&!this.noSignal&&((o=this.onCanvasDrawerWarning)==null||o.call(this,"ShouldDegradeVideo"))}checkOrder(o){if(this.currentFrameIndex!==void 0&&o.indexDate.now()?!1:nt>this.medianFrameSize?(this.hasReceivedKeyframe=!0,!0):!1}};const encodedJs$3="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbihTKXt0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShTKTpTKCl9KShmdW5jdGlvbigpe2NvbnN0IEo9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07dmFyIHk9e30sRj17fSxhPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBHPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7ZnVuY3Rpb24gaChBKXtsZXQgST1BLmxlbmd0aDtBW0EubGVuZ3RoLTJdPT09Ij0iP0ktPTI6QVtBLmxlbmd0aC0xXT09PSI9IiYmSS0tO2NvbnN0IGc9SS80KjN8MCxCPW5ldyBVaW50OEFycmF5KGcpO2ZvcihsZXQgUT0wLEM9MDtRPGc7USs9Myl7Y29uc3QgRD1HLmluZGV4T2YoQVtDKytdKSxFPUcuaW5kZXhPZihBW0MrK10pO2lmKEJbUV09RDw8MnxFPj40LEM9PT1JKWJyZWFrO2NvbnN0IHc9Ry5pbmRleE9mKEFbQysrXXx8Ij0iKTtpZihCW1ErMV09KEUmMTUpPDw0fHc+PjIsQz09PUkpYnJlYWs7Y29uc3Qgbz1HLmluZGV4T2YoQVtDKytdfHwiPSIpO0JbUSsyXT0odyYzKTw8NnxvfXJldHVybiBCfWEuZGVjb2RlPWgsT2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IEw9IkFHRnpiUUVBQUFBQmx3RVRZQUovZndGL1lBUi9mMzkvQVg5Z0FuOS9BR0FEZjM5L0FYOWdBWDhBWUFsL2YzOS9mMzkvZjM4QVlBRi9BWDlnQkg5L2YzOEFZQVovZjM5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUFOL2YzOEFZQVYvZjM5L2Z3Ri9ZQUFBWUFWL2YzOS9md0JnQm45L2YzOS9md0JnQ245L2YzOS9mMzkvZjM4QVlBQUJmMkFIZjM5L2YzOS9md0YvWUFoL2YzOS9mMzkvZndGL0FqQURCR2d5TmpRR2JXVnRZM0I1QUFNRWFESTJOQVp5WlhOcGVtVUFCZ1JvTWpZMEJtMWxiVzl5ZVFJQmdBS0FnQUlEWTJJQUFBUUFBUU1LQVFZQUJRTUZCZ2NBQndZQUF3NERCd2NGQWdBQ0F3UUFCUVVGQlFvRUFnUUpBUWNBQXdZR0FnSUJCZ1FEQWdJQkN3RUJBd01MRFFJQkFBQUNDUWtKRHdJRkJRQUJDZ0FTQ3hFSUNBY0lDQWNFQVFRSUNBWUJFQWdBQVFZSkFYOEJRYkRFd0FJTEJ5WUVCbTFoYkd4dll3QUtDV2d5TmpSaGJHeHZZd0JnQm1SbFkyOWtaUUJoQkdsdWFYUUFZZ3IycFFWaXdBSUJBbjhnQUJBUElnSkJmMHdFUUNBQVFRRVFDeG9nQVVFQU5nSUFRUUFQQ3dKQUFrQWdBa0dBZ0lDQUJFOEVRQ0FBUVFNUUMwRi9SZ1JBUVFFUEN5QUJJQUpCSFhaQkFYRkJBV28yQWdBTUFRc2dBa0dBZ0lDQUFrOEVRQ0FBUVFVUUMwRi9SZ1JBUVFFUEN5QUJJQUpCRzNaQkEzRkJBMm8yQWdBTUFRc2dBa0dBZ0lDQUFVOEVRQ0FBUVFjUUMwRi9SZ1JBUVFFUEN5QUJJQUpCR1haQkIzRkJCMm8yQWdBTUFRc2dBaEF2SWdOQkJHb2lBa0VnUmdSQUlBRkJBRFlDQUNBQVFTQVFDeHBCQVNFQ0lBQkJBUkFEUVFGSERRSWdBQkFQSVFNZ0FFRWdFQXRCZjBZTkFpQURRUUZMRFFJZ0EwRUJhd1JBSUFGQmZ6WUNBQXdDQ3lBQlFYODJBZ0JCQVE4TElBQWdBMEVGYWhBTEdpQUFJQUlRQXlJQVFYOUdCRUJCQVE4TElBRWdBRUYvSUFKMFFYOXphallDQUF0QkFDRUNDeUFDQzRnQ0FRZC9JQUFvQWdRaEJBSkFJQUFvQWd4QkEzUWlCeUFBS0FJUUlnaHJJZ0pCSUU0RVFDQUVLQUFBSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUVESUFBb0FnZ2lBa1VOQVNBRElBSjBJQVF0QUFSQkNDQUNhM1p5SVFNTUFRc2dBa0VCU0FSQURBRUxJQVF0QUFBZ0FDZ0NDQ0lGUVJocUlnWjBJUU1nQWlBRmFrRjRhaUlDUVFGSURRQURRQ0FFTFFBQklBWkJlR29pQm5RZ0EzSWhBeUFDUVFoS0lRVWdCRUVCYWlFRUlBSkJlR29oQWlBRkRRQUxDeUFBSUFFZ0NHb2lCRFlDRUNBQUlBUkJCM0UyQWdoQmZ5RUNJQVFnQjAwRWZ5QUFJQUFvQWdBZ0JFRURkbW8yQWdRZ0EwRWdJQUZyZGdWQmZ3c0xxZzBCQjM4Q1FDQUFSUTBBSUFCQmVHb2lBeUFBUVh4cUtBSUFJZ0ZCZUhFaUFHb2hCUUpBSUFGQkFYRU5BQ0FCUVFOeFJRMEJJQU1nQXlnQ0FDSUNheUlEUWNUQUFDZ0NBQ0lFU1EwQklBQWdBbW9oQUNBRFFjakFBQ2dDQUVjRVFDQUNRZjhCVFFSQUlBTW9BZ2dpQkNBQ1FRTjJJZ0pCQTNSQjNNQUFha2NhSUFRZ0F5Z0NEQ0lCUmdSQVFiVEFBRUcwd0FBb0FnQkJmaUFDZDNFMkFnQU1Bd3NnQkNBQk5nSU1JQUVnQkRZQ0NBd0NDeUFES0FJWUlRWUNRQ0FESUFNb0Fnd2lBVWNFUUNBRUlBTW9BZ2dpQWswRVFDQUNLQUlNR2dzZ0FpQUJOZ0lNSUFFZ0FqWUNDQXdCQ3dKQUlBTkJGR29pQWlnQ0FDSUVEUUFnQTBFUWFpSUNLQUlBSWdRTkFFRUFJUUVNQVFzRFFDQUNJUWNnQkNJQlFSUnFJZ0lvQWdBaUJBMEFJQUZCRUdvaEFpQUJLQUlRSWdRTkFBc2dCMEVBTmdJQUN5QUdSUTBCQWtBZ0F5QURLQUljSWdKQkFuUkI1TUlBYWlJRUtBSUFSZ1JBSUFRZ0FUWUNBQ0FCRFFGQnVNQUFRYmpBQUNnQ0FFRitJQUozY1RZQ0FBd0RDeUFHUVJCQkZDQUdLQUlRSUFOR0cyb2dBVFlDQUNBQlJRMENDeUFCSUFZMkFoZ2dBeWdDRUNJQ0JFQWdBU0FDTmdJUUlBSWdBVFlDR0FzZ0F5Z0NGQ0lDUlEwQklBRWdBallDRkNBQ0lBRTJBaGdNQVFzZ0JTZ0NCQ0lCUVFOeFFRTkhEUUJCdk1BQUlBQTJBZ0FnQlNBQlFYNXhOZ0lFSUFNZ0FFRUJjallDQkNBQUlBTnFJQUEyQWdBUEN5QUZJQU5ORFFBZ0JTZ0NCQ0lCUVFGeFJRMEFBa0FnQVVFQ2NVVUVRQ0FGUWN6QUFDZ0NBRVlFUUVITXdBQWdBellDQUVIQXdBQkJ3TUFBS0FJQUlBQnFJZ0EyQWdBZ0F5QUFRUUZ5TmdJRUlBTkJ5TUFBS0FJQVJ3MERRYnpBQUVFQU5nSUFRY2pBQUVFQU5nSUFEd3NnQlVISXdBQW9BZ0JHQkVCQnlNQUFJQU0yQWdCQnZNQUFRYnpBQUNnQ0FDQUFhaUlBTmdJQUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFDUUNBQlFmOEJUUVJBSUFVb0Fnd2hBaUFGS0FJSUlnUWdBVUVEZGlJQlFRTjBRZHpBQUdvaUIwY0VRRUhFd0FBb0FnQWFDeUFDSUFSR0JFQkJ0TUFBUWJUQUFDZ0NBRUYrSUFGM2NUWUNBQXdDQ3lBQ0lBZEhCRUJCeE1BQUtBSUFHZ3NnQkNBQ05nSU1JQUlnQkRZQ0NBd0JDeUFGS0FJWUlRWUNRQ0FGSUFVb0Fnd2lBVWNFUUVIRXdBQW9BZ0FnQlNnQ0NDSUNUUVJBSUFJb0Fnd2FDeUFDSUFFMkFnd2dBU0FDTmdJSURBRUxBa0FnQlVFVWFpSUNLQUlBSWdRTkFDQUZRUkJxSWdJb0FnQWlCQTBBUVFBaEFRd0JDd05BSUFJaEJ5QUVJZ0ZCRkdvaUFpZ0NBQ0lFRFFBZ0FVRVFhaUVDSUFFb0FoQWlCQTBBQ3lBSFFRQTJBZ0FMSUFaRkRRQUNRQ0FGSUFVb0Fod2lBa0VDZEVIa3dnQnFJZ1FvQWdCR0JFQWdCQ0FCTmdJQUlBRU5BVUc0d0FCQnVNQUFLQUlBUVg0Z0FuZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ0lFUUNBQklBSTJBaEFnQWlBQk5nSVlDeUFGS0FJVUlnSkZEUUFnQVNBQ05nSVVJQUlnQVRZQ0dBc2dBeUFBUVFGeU5nSUVJQUFnQTJvZ0FEWUNBQ0FEUWNqQUFDZ0NBRWNOQVVHOHdBQWdBRFlDQUE4TElBVWdBVUYrY1RZQ0JDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFDeUFBUWY4QlRRUkFJQUJCQTNZaUFVRURkRUhjd0FCcUlRQUNmMEcwd0FBb0FnQWlBa0VCSUFGMElnRnhSUVJBUWJUQUFDQUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBaUFBSUFNMkFnZ2dBaUFETmdJTUlBTWdBRFlDRENBRElBSTJBZ2dQQ3lBRFFnQTNBaEFnQXdKL1FRQWdBRUVJZGlJQlJRMEFHa0VmSUFCQi8vLy9CMHNOQUJvZ0FTQUJRWUQrUDJwQkVIWkJDSEVpQVhRaUFpQUNRWURnSDJwQkVIWkJCSEVpQW5RaUJDQUVRWUNBRDJwQkVIWkJBbkVpQkhSQkQzWWdBU0FDY2lBRWNtc2lBVUVCZENBQUlBRkJGV3AyUVFGeGNrRWNhZ3NpQWpZQ0hDQUNRUUowUWVUQ0FHb2hBUUpBQWtBQ1FFRzR3QUFvQWdBaUJFRUJJQUowSWdkeFJRUkFRYmpBQUNBRUlBZHlOZ0lBSUFFZ0F6WUNBQ0FESUFFMkFoZ01BUXNnQUVFQVFSa2dBa0VCZG1zZ0FrRWZSaHQwSVFJZ0FTZ0NBQ0VCQTBBZ0FTSUVLQUlFUVhoeElBQkdEUUlnQWtFZGRpRUJJQUpCQVhRaEFpQUVJQUZCQkhGcUlnZEJFR29vQWdBaUFRMEFDeUFISUFNMkFoQWdBeUFFTmdJWUN5QURJQU0yQWd3Z0F5QUROZ0lJREFFTElBUW9BZ2dpQUNBRE5nSU1JQVFnQXpZQ0NDQURRUUEyQWhnZ0F5QUVOZ0lNSUFNZ0FEWUNDQXRCMU1BQVFkVEFBQ2dDQUVGL2FpSUFOZ0lBSUFBTkFFSDh3d0FoQXdOQUlBTW9BZ0FpQUVFSWFpRURJQUFOQUF0QjFNQUFRWDgyQWdBTEMzUUJBbjhqQUVFUWF5SUNKQUFnQWtFQU5nSU1JQUFnQWtFTWFoQUNJUUFDZnlBQ0tBSU1JZ05CZjBZRVFFRUJJQUJGRFFFYUlBRkJnSUNBZ0hnMkFnQkJBQXdCQzBFQklBQU5BQm9nQVNBRFFRRnFRUUYySWdGQkFDQUJheUFEUVFGeEd6WUNBRUVBQ3lFQUlBSkJFR29rQUNBQUM4Y0xBUlIvSUFGQm9EMXFMUUFBUVF4c0lnWkIxRHhxS0FJQUlRVWdCa0hRUEdvb0FnQWdBVUdRUEdvdEFBQWlCM1FoQkNBQ1JRUkFJQUFnQUNnQ0FDQUViRFlDQUFzZ0JTQUhkQ0VCQWtBQ1FDQURRWnovQTNFRVFDQUFJQVpCMkR4cUtBSUFJQWQwSWdNZ0FDZ0NQR3cyQWp3Z0FDQUFLQUk0SUFGc05nSTRRUUVoQWlBQUlBQW9BaXdnQkd3aUJ5QUFLQUlNSUFSc0lnVnFJZ2tnQUNnQ0lDQUJiQ0lLSUFBb0FqUWdBV3dpRDBFQmRXb2lFR3NpQmpZQ0xDQUFLQUlvSVFnZ0FDQUZJQWRySWdVZ0NrRUJkU0FQYXlJS2F5SUhOZ0lvSUFBb0FpUWhEaUFBSUFVZ0Ntb2lCVFlDSkNBQUlBQW9BaHdnQVd3aUR5QUFLQUlJSUFGc0lndHFJaE1nQUNnQ0VDQURiQ0lSSUFBb0FqQWdBMndpREVFQmRXb2lGV3NpQ2pZQ0hDQUFLQUlZSVEwZ0FDQUxJQTlySWdzZ0VVRUJkU0FNYXlJUmF5SVBOZ0lZSUFBb0FoUWhEQ0FBSUFzZ0VXb2lDellDRkNBQUlBUWdER3dpQkNBQUtBSUFJZ3hxSWhRZ0FDZ0NCQ0FCYkNJU0lBRWdEV3dpRFVFQmRXb2lGbXNpRVRZQ0RDQUFJQXdnQkdzaUJDQVNRUUYxSUExcklnMXJJZ3cyQWdnZ0FDQUVJQTFxSWcwMkFnUWdBQ0FCSUE1c0lnUWdBQ2dDT0NJT2F5SVNJQU1nQ0d3aUNFRUJkU0FBS0FJOEloZHJJZ05ySWdFMkFqZ2dBQ0FESUJKcUlnTTJBalFnQUNBRUlBNXFJZzRnRjBFQmRTQUlhaUlJYXlJRU5nSThJQUFnRkNBV2FpSVVJQWtnRUdvaUVHdEJJR29pRWlBSUlBNXFJZ2tnRXlBVmFpSUlRUUYxSWc1cmFrRUdkU0lUTmdJZ0lBQWdFaUFPSUFscmFrRUdkU0lPTmdJUUlBQWdFQ0FVYWtFZ2FpSVFJQWxCQVhVZ0NHb2lDV3RCQm5VaUNEWUNNQ0FBSUFrZ0VHcEJCblVpQ1RZQ0FDQUpRWUFFYWlBT1FZQUVhbkpCL3dkTERRSWdDRUdBQkdvZ0UwR0FCR3B5UWY4SFN3MENJQUFnQlNBTmFrRWdhaUlKSUFOQkFYVWdDMm9pRUd0QkJuVWlDRFlDTkNBQUlBMGdCV3RCSUdvaUJTQURJQXRCQVhVaUMydHFRUVoxSWcwMkFpUWdBQ0FGSUFzZ0EydHFRUVoxSWdNMkFoUWdBQ0FKSUJCcVFRWjFJZ1UyQWdRZ0JVR0FCR29nQTBHQUJHcHlRZjhIU3cwQ0lBaEJnQVJxSUExQmdBUnFja0gvQjBzTkFpQUFJQWNnREdwQklHb2lBeUFCUVFGMUlBOXFJZ1ZyUVFaMUlnczJBamdnQUNBTUlBZHJRU0JxSWdjZ0FTQVBRUUYxSWc5cmFrRUdkU0lNTmdJb0lBQWdCeUFQSUFGcmFrRUdkU0lCTmdJWUlBQWdBeUFGYWtFR2RTSUROZ0lJSUFOQmdBUnFJQUZCZ0FScWNrSC9CMHNOQWlBTFFZQUVhaUFNUVlBRWFuSkIvd2RMRFFJZ0FDQUdJQkZxUVNCcUlnRWdCRUVCZFNBS2FpSURhMEVHZFNJSE5nSThJQUFnRVNBR2EwRWdhaUlHSUFRZ0NrRUJkU0lGYTJwQkJuVWlDallDTENBQUlBWWdCU0FFYTJwQkJuVWlCRFlDSENBQUlBRWdBMnBCQm5VaUFEWUNEQ0FBUVlBRWFpQUVRWUFFYW5KQi93ZExEUUlnQjBHQUJHb2dDa0dBQkdweVFmOEhUUTBCREFJTElBTkI0Z0J4UlFSQVFRRWhBaUFBS0FJQVFTQnFRUVoxSWdGQmdBUnFRZjhIU3cwQ0lBQWdBVFlDT0NBQUlBRTJBandnQUNBQk5nSTBJQUFnQVRZQ01DQUFJQUUyQWl3Z0FDQUJOZ0lvSUFBZ0FUWUNKQ0FBSUFFMkFpQWdBQ0FCTmdJY0lBQWdBVFlDR0NBQUlBRTJBaFFnQUNBQk5nSVFJQUFnQVRZQ0RDQUFJQUUyQWdnZ0FDQUJOZ0lFSUFBZ0FUWUNBQXdCQzBFQklRSWdBQ0FBS0FJRUlBRnNJZ2NnQUNnQ0dDQUJiQ0lHUVFGMWFpSURJQUFvQWdBaUJTQUFLQUlVSUFSc0lnUnFJZ3BxUVNCcVFRWjFJZ0UyQWpBZ0FDQUtJQU5yUVNCcVFRWjFJZ00yQWd3Z0FDQUZJQVJySWdVZ0JpQUhRUUYxSWdkcmFrRWdha0VHZFNJRU5nSUlJQUFnQnlBR2F5QUZha0VnYWtFR2RTSUdOZ0lFSUFBZ0FUWUNBQ0FBSUFFMkFpQWdBQ0FHTmdJMElBQWdBVFlDRUNBQUlBWTJBaVFnQUNBRU5nSTRJQUFnQmpZQ0ZDQUFJQVEyQWlnZ0FDQUROZ0k4SUFBZ0JEWUNHQ0FBSUFNMkFpd2dBQ0FETmdJY0lBTkJnQVJxSUFGQmdBUnFJQVJCZ0FScUlBWkJnQVJxY25KeVFmOEhTdzBCQzBFQUlRSUxJQUlMOHdJQ0FuOEJmZ0pBSUFKRkRRQWdBQ0FDYWlJRFFYOXFJQUU2QUFBZ0FDQUJPZ0FBSUFKQkEwa05BQ0FEUVg1cUlBRTZBQUFnQUNBQk9nQUJJQU5CZldvZ0FUb0FBQ0FBSUFFNkFBSWdBa0VIU1EwQUlBTkJmR29nQVRvQUFDQUFJQUU2QUFNZ0FrRUpTUTBBSUFCQkFDQUFhMEVEY1NJRWFpSURJQUZCL3dGeFFZR0NoQWhzSWdFMkFnQWdBeUFDSUFSclFYeHhJZ1JxSWdKQmZHb2dBVFlDQUNBRVFRbEpEUUFnQXlBQk5nSUlJQU1nQVRZQ0JDQUNRWGhxSUFFMkFnQWdBa0YwYWlBQk5nSUFJQVJCR1VrTkFDQURJQUUyQWhnZ0F5QUJOZ0lVSUFNZ0FUWUNFQ0FESUFFMkFnd2dBa0Z3YWlBQk5nSUFJQUpCYkdvZ0FUWUNBQ0FDUVdocUlBRTJBZ0FnQWtGa2FpQUJOZ0lBSUFRZ0EwRUVjVUVZY2lJRWF5SUNRU0JKRFFBZ0FhMGlCVUlnaGlBRmhDRUZJQU1nQkdvaEFRTkFJQUVnQlRjREdDQUJJQVUzQXhBZ0FTQUZOd01JSUFFZ0JUY0RBQ0FCUVNCcUlRRWdBa0ZnYWlJQ1FSOUxEUUFMQ3lBQUMvSURBUU4vSUFFb0FnQWlBMEgvLy84SFJ3UkFJQUVvQWdRaEJDQUFJQUlnQWtFRGNTQUNRUkJKSWdJYlFRSjBJZ1ZCOENscUtBSUFRUkJCQ0NBQ0d5SUNiR29nQlVHd0tXb29BZ0JxSWdBZ0F5QUFMUUFBYWtHd0xtb3RBQUE2QUFBZ0FTZ0NDQ0VESUFBZ0JDQUFMUUFCYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VFSUFBZ0F5QUFMUUFDYWtHd0xtb3RBQUE2QUFJZ0FDQUVJQUF0QUFOcVFiQXVhaTBBQURvQUF5QUJLQUlVSVFNZ0FDQUNhaUlBSUFFb0FoQWdBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BaGdoQkNBQUlBTWdBQzBBQVdwQnNDNXFMUUFBT2dBQklBRW9BaHdoQXlBQUlBUWdBQzBBQW1wQnNDNXFMUUFBT2dBQ0lBQWdBeUFBTFFBRGFrR3dMbW90QUFBNkFBTWdBU2dDSkNFRElBQWdBbW9pQUNBQktBSWdJQUF0QUFCcVFiQXVhaTBBQURvQUFDQUJLQUlvSVFRZ0FDQURJQUF0QUFGcVFiQXVhaTBBQURvQUFTQUJLQUlzSVFNZ0FDQUVJQUF0QUFKcVFiQXVhaTBBQURvQUFpQUFJQU1nQUMwQUEycEJzQzVxTFFBQU9nQURJQUVvQWpRaEF5QUFJQUpxSWdBZ0FTZ0NNQ0FBTFFBQWFrR3dMbW90QUFBNkFBQWdBU2dDT0NFQ0lBQWdBeUFBTFFBQmFrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQWdBaUFBTFFBQ2FrR3dMbW90QUFBNkFBSWdBQ0FCSUFBdEFBTnFRYkF1YWkwQUFEb0FBd3NMMHhBQkRIOGpBRUdBQVdzaUNpUUFJQUFRRHlFRVFRRWhCUUpBQWtBQ2Z5QUNRUUZOQkVBZ0JFRUFTQTBDSUFSQkdYWkIvZ0J4UVlBSWFpQUVRWUNBZ09BQVR3MEJHaUFFUVJWMlFmNFBjVUhBQ0dvZ0JFR0FnSUFJVHcwQkdpQUVRUkYyUWY3L0FYRkJrQWxxSUFSQmdJQ0FBVThOQVJvZ0JFRVFka0VCZEVHUUNtb01BUXNnQWtFRFRRUkFJQVJCZjB3RVFFRUNRYUlRSUFSQmdJQ0FnQVJ4R3lFRkRBTUxJQVJCR1haQi9nQnhRZEFLYWlBRVFZQ0FnSUFCVHcwQkdpQUVRUloyUWY0SGNVR1FDMm9nQkVHQWdJQVFUdzBCR2lBRVFSRjJRZjcvQVhGQjBBdHFEQUVMSUFKQkIwMEVRQ0FFUVJwMklnSkJlR3BCT0VrRVFDQUNRUUYwUWRBTmFnd0NDeUFFUVJWMlFmNFBjVUhRRG1vTUFRc2dCRUVaZGtIK0FIRkIwQkJxSUFKQkVFME5BQm9nQkVFZGRpSUNCRUFnQWtFQmRFSFFFV29NQVFzZ0JFRVhka0grQTNGQjRCRnFDeThCQUNJRkRRQkJBU0VMREFFTFFRRWhDeUFGUVF0Mklna2dBMHNOQUVFZ0lBVkJIM0VpQm1zaEFnSkFJQWxGQkVBTUFRc2dCQ0FHZENFRUFrQWdCVUVGZGtFL2NTSU1SUVJBREFFTElBSWdERWtFUUNBQUlBWVFDMEYvUmcwRElBQVFEeUVFUVNBaEFnc2dCQ0FNZENFR1FRRWdERUYvYW5RaEJ5QUVRU0FnREd0MklRUURRQ0FLUVVCcklBaEJBblJxUVg5QkFTQUVJQWR4R3pZQ0FDQUlRUUZxSVFnZ0IwRUJkaUlIRFFBTElBSWdER3NoQWlBR0lRUUxJQWdnQ1VrRVFDQU1RUU5KSWc4Z0JVSC9yd0ZMY1NFRkEwQWdBa0VQVFFSQUlBQkJJQ0FDYXhBTFFYOUdCRUFNQlFzZ0FCQVBJUVJCSUNFQ0MwRUFJUVlDUUFKQUFuOENRQ0FFUVFCSURRQkJBU0VHSUFSQi8vLy8vd05MRFFCQkFpRUdJQVJCLy8vLy93RkxEUUJCQXlFR0lBUkIvLy8vL3dCTERRQkJCQ0VHSUFSQi8vLy9QMHNOQUVFRklRWWdCRUgvLy84ZlN3MEFRUVloQmlBRVFmLy8vdzlMRFFCQkJ5RUdJQVJCLy8vL0Iwc05BRUVJSVFZZ0JFSC8vLzhEU3cwQVFRa2hCaUFFUWYvLy93RkxEUUJCQ2lFR0lBUkIvLy8vQUVzTkFFRUxJUVlnQkVILy96OUxEUUJCRENFR0lBUkIvLzhmU3cwQVFRMGhCaUFFUWYvL0Qwc05BQUovQWtBZ0JFSC8vd2ROQkVBZ0JFR0FnSHh4UVlDQUJFWU5BUXdLQ3lBRlFRUWdCUnNoQmlBRVFROTBJUVJCRGlFSElBSkJjV29NQVFzZ0JVRUJJQVViSVFVZ0JFRVFkQ0VFUVF3aEJrRVBJUWNnQWtGd2Fnc2hBaUFISUFWMElRY2dCVVVNQVFzZ0JpQUZkQ0VIUVFFaERpQUNJQVpCQVdvaUJtc2hBaUFFSUFaMElRUWdCVVVOQVNBRklRWkJBQXNoRGlBQ0lBWlBCSDhnQkFVZ0FFRWdJQUpyRUF0QmYwWUVRQXdIQzBFZ0lRSWdBQkFQQ3lFTklBSWdCbXNoQWlBTklBWjBJUVFnRFVFZ0lBWnJkaUFIYWlFSERBRUxRUUFoQlFzZ0NrRkFheUFJUVFKMGFrRUFJQWRCQW1vZ0J5QUlJQXhHR3lBSElBOGJJZzFCQW1wQkFYWWlCbXNnQmlBTlFRRnhHellDQUVFQklBVWdEaHNpQlNBRlFRWkpJQVpCQXlBRlFYOXFkRXB4YWlFRklBaEJBV29pQ0NBSlJ3MEFDd3RCQUNFSEFrQWdDU0FEVHdSQVFRQWhDQXdCQ3dKQUlBSkJDRXNFUUNBQ0lRVU1BUXRCSUNFRklBQkJJQ0FDYXhBTFFYOUdEUU1nQUJBUElRUUxBa0FDUUFKL0FrQWdBMEVFUndSQUlBbEJmMm9pQWtFTlN3MERBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBa0VCYXc0TkFBRUNBd1FGQmdjSUNRb0xEQTRMSUFSQkduWkI0QkpxREE0TElBUkJHblpCb0JOcURBMExJQVJCRzNaQjRCTnFEQXdMSUFSQkczWkJnQlJxREFzTElBUkJHblpCb0JScURBb0xJQVJCR25aQjRCUnFEQWtMSUFSQkduWkJvQlZxREFnTElBUkJHblpCNEJWcURBY0xJQVJCRzNaQm9CWnFEQVlMSUFSQkhIWkJ3QlpxREFVTElBUkJISFpCMEJacURBUUxJQVJCSFhaQjRCWnFEQU1MSUFSQkhuWkI2QlpxREFJTElBUkJBRWdFUUVFQklRSU1CQXRCRVNFQ0lBbEJBMFlOQTBFU0lRSWdCRUgvLy8vL0Ewc05BMEVpSVFJZ0NVRUNSZzBEUVNOQk15QUVRZi8vLy84QlN4c2hBZ3dEQ3lBRVFSdDJRYUFTYWlBRVFSZDJRY0FTYWlBRVFmLy8vLzhBU3hzTExRQUFJZ0lOQVF3RUMwRVJRUUVnQkVFQVNCc2hBZ3NnQWtFRWRpRUlJQVVnQWtFUGNTSURheUVDSUFRZ0EzUWhCQXNnQ1VGL2FpSURCRUFEUUFKL0lBZ0VRQ0FDUVFwTkJFQWdBRUVnSUFKckVBdEJmMFlFUUF3SEN5QUFFQThoQkVFZ0lRSUxBa0FDZndKQUlBaEJmMm9pQlVFRlRRUkFBa0FDUUFKQUFrQUNRQ0FGUVFGckRnVUFBUUlEQkFZTElBUkJIblpCN2hacURBWUxJQVJCSG5aQjhoWnFEQVVMSUFSQkhYWkI5aFpxREFRTElBUkJIWFpCL2hacURBTUxJQVJCSFhaQmhoZHFEQUlMQW45Qjh3QWdCRUVaZGtId0FIRnJJQVJCZ0lDQWdBSlBEUUFhUWZRQUlBUkIvLy8vL3dCTERRQWFRWVVCSUFSQi8vLy9QMHNOQUJwQmxnRWdCRUgvLy84ZlN3MEFHa0duQVNBRVFmLy8vdzlMRFFBYVFiZ0JJQVJCLy8vL0Iwc05BQnBCeVFFZ0JFSC8vLzhEU3cwQUdrSGFBU0FFUWYvLy93RkxEUUFhUVFCQjZ3RWdCRUdBZ0lBQlNSc0xJZ1ZCQkhZZ0NFME5BZ3dJQ3lBRVFSOTJRZXdXYWdzdEFBQWhCUXNnQlVVRVFBd0dDeUFLSUFkQkFuUnFJQVZCQkhZaUJrRUJhallDQUNBQ0lBVkJEM0VpQldzaEFpQUVJQVYwSVFRZ0NDQUdhd3dCQ3lBS0lBZEJBblJxUVFFMkFnQkJBQXNoQ0NBSFFRRnFJZ2NnQTBjTkFBc2dBU0FJUVFKMGFpQUtRVUJySUFOQkFuUnFLQUlBTmdJQUlBbEJmbW9oQlVFQklBaDBJUWNEUUNBQklBb2dCU0lEUVFKMElnVnFLQUlBSUFocUlnaEJBblJxSUFwQlFHc2dCV29vQWdBMkFnQWdBMEYvYWlFRlFRRWdDSFFnQjNJaEJ5QUREUUFMREFFTElBRWdDRUVDZEdvZ0NrRkFheUFEUVFKMGFpZ0NBRFlDQUVFQklBaDBJUWNMSUFCQklDQUNheEFMRFFBZ0IwRVFkQ0FKUVFSMGNpRUxDeUFLUVlBQmFpUUFJQXNMelM0QkMzOGpBRUVRYXlJTEpBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCdE1BQUtBSUFJZ1pCRUNBQVFRdHFRWGh4SUFCQkMwa2JJZ1ZCQTNZaUFIWWlBVUVEY1FSQUlBRkJmM05CQVhFZ0FHb2lBa0VEZENJRVFlVEFBR29vQWdBaUFVRUlhaUVBQWtBZ0FTZ0NDQ0lESUFSQjNNQUFhaUlFUmdSQVFiVEFBQ0FHUVg0Z0FuZHhOZ0lBREFFTFFjVEFBQ2dDQUJvZ0F5QUVOZ0lNSUFRZ0F6WUNDQXNnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1EQXNnQlVHOHdBQW9BZ0FpQ0UwTkFTQUJCRUFDUUVFQ0lBQjBJZ0pCQUNBQ2EzSWdBU0FBZEhFaUFFRUFJQUJyY1VGL2FpSUFJQUJCREhaQkVIRWlBSFlpQVVFRmRrRUljU0lDSUFCeUlBRWdBbllpQUVFQ2RrRUVjU0lCY2lBQUlBRjJJZ0JCQVhaQkFuRWlBWElnQUNBQmRpSUFRUUYyUVFGeElnRnlJQUFnQVhacUlnSkJBM1FpQTBIa3dBQnFLQUlBSWdFb0FnZ2lBQ0FEUWR6QUFHb2lBMFlFUUVHMHdBQWdCa0YrSUFKM2NTSUdOZ0lBREFFTFFjVEFBQ2dDQUJvZ0FDQUROZ0lNSUFNZ0FEWUNDQXNnQVVFSWFpRUFJQUVnQlVFRGNqWUNCQ0FCSUFWcUlnY2dBa0VEZENJQ0lBVnJJZ05CQVhJMkFnUWdBU0FDYWlBRE5nSUFJQWdFUUNBSVFRTjJJZ1JCQTNSQjNNQUFhaUVCUWNqQUFDZ0NBQ0VDQW44Z0JrRUJJQVIwSWdSeFJRUkFRYlRBQUNBRUlBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEJDQUJJQUkyQWdnZ0JDQUNOZ0lNSUFJZ0FUWUNEQ0FDSUFRMkFnZ0xRY2pBQUNBSE5nSUFRYnpBQUNBRE5nSUFEQXdMUWJqQUFDZ0NBQ0lLUlEwQklBcEJBQ0FLYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQWlBQWNpQUJJQUoySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJZ0VvQWdSQmVIRWdCV3NoQXlBQklRSURRQUpBSUFJb0FoQWlBRVVFUUNBQ0tBSVVJZ0JGRFFFTElBQW9BZ1JCZUhFZ0JXc2lBaUFESUFJZ0Ewa2lBaHNoQXlBQUlBRWdBaHNoQVNBQUlRSU1BUXNMSUFFb0FoZ2hDU0FCSUFFb0Fnd2lCRWNFUUVIRXdBQW9BZ0FnQVNnQ0NDSUFUUVJBSUFBb0Fnd2FDeUFBSUFRMkFnd2dCQ0FBTmdJSURBc0xJQUZCRkdvaUFpZ0NBQ0lBUlFSQUlBRW9BaEFpQUVVTkF5QUJRUkJxSVFJTEEwQWdBaUVISUFBaUJFRVVhaUlDS0FJQUlnQU5BQ0FFUVJCcUlRSWdCQ2dDRUNJQURRQUxJQWRCQURZQ0FBd0tDMEYvSVFVZ0FFRy9mMHNOQUNBQVFRdHFJZ0JCZUhFaEJVRzR3QUFvQWdBaUIwVU5BRUVBSUFWcklRSUNRQUpBQWtBQ2YwRUFJQUJCQ0hZaUFFVU5BQnBCSHlBRlFmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnTWdBMEdBZ0E5cVFSQjJRUUp4SWdOMFFROTJJQUFnQVhJZ0EzSnJJZ0JCQVhRZ0JTQUFRUlZxZGtFQmNYSkJIR29MSWdoQkFuUkI1TUlBYWlnQ0FDSURSUVJBUVFBaEFBd0JDeUFGUVFCQkdTQUlRUUYyYXlBSVFSOUdHM1FoQVVFQUlRQURRQUpBSUFNb0FnUkJlSEVnQldzaUJpQUNUdzBBSUFNaEJDQUdJZ0lOQUVFQUlRSWdBeUVBREFNTElBQWdBeWdDRkNJR0lBWWdBeUFCUVIxMlFRUnhhaWdDRUNJRFJoc2dBQ0FHR3lFQUlBRWdBMEVBUjNRaEFTQUREUUFMQ3lBQUlBUnlSUVJBUVFJZ0NIUWlBRUVBSUFCcmNpQUhjU0lBUlEwRElBQkJBQ0FBYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQXlBQWNpQUJJQU4ySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJRElBSkpJUUVnQXlBQ0lBRWJJUUlnQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBQ1FiekFBQ2dDQUNBRmEwOE5BQ0FFS0FJWUlRZ2dCQ0FFS0FJTUlnRkhCRUJCeE1BQUtBSUFJQVFvQWdnaUFFMEVRQ0FBS0FJTUdnc2dBQ0FCTmdJTUlBRWdBRFlDQ0F3SkN5QUVRUlJxSWdNb0FnQWlBRVVFUUNBRUtBSVFJZ0JGRFFNZ0JFRVFhaUVEQ3dOQUlBTWhCaUFBSWdGQkZHb2lBeWdDQUNJQURRQWdBVUVRYWlFRElBRW9BaEFpQUEwQUN5QUdRUUEyQWdBTUNBdEJ2TUFBS0FJQUlnRWdCVThFUUVISXdBQW9BZ0FoQUFKQUlBRWdCV3NpQWtFUVR3UkFRYnpBQUNBQ05nSUFRY2pBQUNBQUlBVnFJZ00yQWdBZ0F5QUNRUUZ5TmdJRUlBQWdBV29nQWpZQ0FDQUFJQVZCQTNJMkFnUU1BUXRCeU1BQVFRQTJBZ0JCdk1BQVFRQTJBZ0FnQUNBQlFRTnlOZ0lFSUFBZ0FXb2lBU0FCS0FJRVFRRnlOZ0lFQ3lBQVFRaHFJUUFNQ2d0QndNQUFLQUlBSWdFZ0JVc0VRRUhBd0FBZ0FTQUZheUlCTmdJQVFjekFBRUhNd0FBb0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQW9MUVFBaEFDQUZRUzlxSWdRQ2YwR014QUFvQWdBRVFFR1V4QUFvQWdBTUFRdEJtTVFBUW44M0FnQkJrTVFBUW9DZ2dJQ0FnQVEzQWdCQmpNUUFJQXRCREdwQmNIRkIyS3JWcWdWek5nSUFRYURFQUVFQU5nSUFRZkREQUVFQU5nSUFRWUFnQ3lJQ2FpSUdRUUFnQW1zaUIzRWlBaUFGVFEwSlFlekRBQ2dDQUNJREJFQkI1TU1BS0FJQUlnZ2dBbW9pQ1NBSVRRMEtJQWtnQTBzTkNndEI4TU1BTFFBQVFRUnhEUVFDUUFKQVFjekFBQ2dDQUNJREJFQkI5TU1BSVFBRFFDQUFLQUlBSWdnZ0EwMEVRQ0FJSUFBb0FnUnFJQU5MRFFNTElBQW9BZ2dpQUEwQUN3dEJBQkFUSWdGQmYwWU5CU0FDSVFaQmtNUUFLQUlBSWdCQmYyb2lBeUFCY1FSQUlBSWdBV3NnQVNBRGFrRUFJQUJyY1dvaEJnc2dCaUFGVFEwRklBWkIvdi8vL3dkTERRVkI3TU1BS0FJQUlnQUVRRUhrd3dBb0FnQWlBeUFHYWlJSElBTk5EUVlnQnlBQVN3MEdDeUFHRUJNaUFDQUJSdzBCREFjTElBWWdBV3NnQjNFaUJrSCsvLy8vQjBzTkJDQUdFQk1pQVNBQUtBSUFJQUFvQWdScVJnMERJQUVoQUFzQ1FDQUZRVEJxSUFaTkRRQWdBRUYvUmcwQVFaVEVBQ2dDQUNJQklBUWdCbXRxUVFBZ0FXdHhJZ0ZCL3YvLy93ZExCRUFnQUNFQkRBY0xJQUVRRTBGL1J3UkFJQUVnQm1vaEJpQUFJUUVNQnd0QkFDQUdheEFUR2d3RUN5QUFJZ0ZCZjBjTkJRd0RDMEVBSVFRTUJ3dEJBQ0VCREFVTElBRkJmMGNOQWd0QjhNTUFRZkREQUNnQ0FFRUVjallDQUFzZ0FrSCsvLy8vQjBzTkFTQUNFQk1pQVVFQUVCTWlBRThOQVNBQlFYOUdEUUVnQUVGL1JnMEJJQUFnQVdzaUJpQUZRU2hxVFEwQkMwSGt3d0JCNU1NQUtBSUFJQVpxSWdBMkFnQWdBRUhvd3dBb0FnQkxCRUJCNk1NQUlBQTJBZ0FMQWtBQ1FBSkFRY3pBQUNnQ0FDSURCRUJCOU1NQUlRQURRQ0FCSUFBb0FnQWlBaUFBS0FJRUlnUnFSZzBDSUFBb0FnZ2lBQTBBQ3d3Q0MwSEV3QUFvQWdBaUFFRUFJQUVnQUU4YlJRUkFRY1RBQUNBQk5nSUFDMEVBSVFCQitNTUFJQVkyQWdCQjlNTUFJQUUyQWdCQjFNQUFRWDgyQWdCQjJNQUFRWXpFQUNnQ0FEWUNBRUdBeEFCQkFEWUNBQU5BSUFCQkEzUWlBa0hrd0FCcUlBSkIzTUFBYWlJRE5nSUFJQUpCNk1BQWFpQUROZ0lBSUFCQkFXb2lBRUVnUncwQUMwSEF3QUFnQmtGWWFpSUFRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlDYXlJRE5nSUFRY3pBQUNBQklBSnFJZ0kyQWdBZ0FpQURRUUZ5TmdJRUlBQWdBV3BCS0RZQ0JFSFF3QUJCbk1RQUtBSUFOZ0lBREFJTElBQXRBQXhCQ0hFTkFDQUJJQU5ORFFBZ0FpQURTdzBBSUFBZ0JDQUdhallDQkVITXdBQWdBMEY0SUFOclFRZHhRUUFnQTBFSWFrRUhjUnNpQUdvaUFUWUNBRUhBd0FCQndNQUFLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRZERBQUVHY3hBQW9BZ0EyQWdBTUFRc2dBVUhFd0FBb0FnQWlCRWtFUUVIRXdBQWdBVFlDQUNBQklRUUxJQUVnQm1vaEFrSDB3d0FoQUFKQUFrQUNRQUpBQWtBQ1FBTkFJQUlnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEI5TU1BSVFBRFFDQUFLQUlBSWdJZ0EwMEVRQ0FDSUFBb0FnUnFJZ1FnQTBzTkF3c2dBQ2dDQ0NFQURBQUFDd0FMSUFBZ0FUWUNBQ0FBSUFBb0FnUWdCbW8yQWdRZ0FVRjRJQUZyUVFkeFFRQWdBVUVJYWtFSGNSdHFJZ2tnQlVFRGNqWUNCQ0FDUVhnZ0FtdEJCM0ZCQUNBQ1FRaHFRUWR4RzJvaUFTQUpheUFGYXlFQUlBVWdDV29oQnlBQklBTkdCRUJCek1BQUlBYzJBZ0JCd01BQVFjREFBQ2dDQUNBQWFpSUFOZ0lBSUFjZ0FFRUJjallDQkF3REN5QUJRY2pBQUNnQ0FFWUVRRUhJd0FBZ0J6WUNBRUc4d0FCQnZNQUFLQUlBSUFCcUlnQTJBZ0FnQnlBQVFRRnlOZ0lFSUFBZ0Iyb2dBRFlDQUF3REN5QUJLQUlFSWdKQkEzRkJBVVlFUUNBQ1FYaHhJUW9DUUNBQ1FmOEJUUVJBSUFFb0FnZ2lBeUFDUVFOMklnUkJBM1JCM01BQWFrY2FJQU1nQVNnQ0RDSUNSZ1JBUWJUQUFFRzB3QUFvQWdCQmZpQUVkM0UyQWdBTUFnc2dBeUFDTmdJTUlBSWdBellDQ0F3QkN5QUJLQUlZSVFnQ1FDQUJJQUVvQWd3aUJrY0VRQ0FFSUFFb0FnZ2lBazBFUUNBQ0tBSU1HZ3NnQWlBR05nSU1JQVlnQWpZQ0NBd0JDd0pBSUFGQkZHb2lBeWdDQUNJRkRRQWdBVUVRYWlJREtBSUFJZ1VOQUVFQUlRWU1BUXNEUUNBRElRSWdCU0lHUVJScUlnTW9BZ0FpQlEwQUlBWkJFR29oQXlBR0tBSVFJZ1VOQUFzZ0FrRUFOZ0lBQ3lBSVJRMEFBa0FnQVNBQktBSWNJZ0pCQW5SQjVNSUFhaUlES0FJQVJnUkFJQU1nQmpZQ0FDQUdEUUZCdU1BQVFiakFBQ2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQUZHRzJvZ0JqWUNBQ0FHUlEwQkN5QUdJQWcyQWhnZ0FTZ0NFQ0lDQkVBZ0JpQUNOZ0lRSUFJZ0JqWUNHQXNnQVNnQ0ZDSUNSUTBBSUFZZ0FqWUNGQ0FDSUFZMkFoZ0xJQUVnQ21vaEFTQUFJQXBxSVFBTElBRWdBU2dDQkVGK2NUWUNCQ0FISUFCQkFYSTJBZ1FnQUNBSGFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVFRGRpSUJRUU4wUWR6QUFHb2hBQUovUWJUQUFDZ0NBQ0lDUVFFZ0FYUWlBWEZGQkVCQnRNQUFJQUVnQW5JMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0J6WUNDQ0FCSUFjMkFnd2dCeUFBTmdJTUlBY2dBVFlDQ0F3REN5QUhBbjlCQUNBQVFRaDJJZ0ZGRFFBYVFSOGdBRUgvLy84SFN3MEFHaUFCSUFGQmdQNC9ha0VRZGtFSWNTSUJkQ0lDSUFKQmdPQWZha0VRZGtFRWNTSUNkQ0lESUFOQmdJQVBha0VRZGtFQ2NTSURkRUVQZGlBQklBSnlJQU55YXlJQlFRRjBJQUFnQVVFVmFuWkJBWEZ5UVJ4cUN5SUJOZ0ljSUFkQ0FEY0NFQ0FCUVFKMFFlVENBR29oQWdKQVFiakFBQ2dDQUNJRFFRRWdBWFFpQkhGRkJFQkJ1TUFBSUFNZ0JISTJBZ0FnQWlBSE5nSUFEQUVMSUFCQkFFRVpJQUZCQVhacklBRkJIMFliZENFRElBSW9BZ0FoQVFOQUlBRWlBaWdDQkVGNGNTQUFSZzBESUFOQkhYWWhBU0FEUVFGMElRTWdBaUFCUVFSeGFpSUVLQUlRSWdFTkFBc2dCQ0FITmdJUUN5QUhJQUkyQWhnZ0J5QUhOZ0lNSUFjZ0J6WUNDQXdDQzBIQXdBQWdCa0ZZYWlJQVFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEd5SUNheUlITmdJQVFjekFBQ0FCSUFKcUlnSTJBZ0FnQWlBSFFRRnlOZ0lFSUFBZ0FXcEJLRFlDQkVIUXdBQkJuTVFBS0FJQU5nSUFJQU1nQkVFbklBUnJRUWR4UVFBZ0JFRlpha0VIY1J0cVFWRnFJZ0FnQUNBRFFSQnFTUnNpQWtFYk5nSUVJQUpCL01NQUtRSUFOd0lRSUFKQjlNTUFLUUlBTndJSVFmekRBQ0FDUVFocU5nSUFRZmpEQUNBR05nSUFRZlREQUNBQk5nSUFRWURFQUVFQU5nSUFJQUpCR0dvaEFBTkFJQUJCQnpZQ0JDQUFRUWhxSVFFZ0FFRUVhaUVBSUFRZ0FVc05BQXNnQWlBRFJnMERJQUlnQWlnQ0JFRitjVFlDQkNBRElBSWdBMnNpQkVFQmNqWUNCQ0FDSUFRMkFnQWdCRUgvQVUwRVFDQUVRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQVFMSUFOQ0FEY0NFQ0FEQW45QkFDQUVRUWgySWdCRkRRQWFRUjhnQkVILy8vOEhTdzBBR2lBQUlBQkJnUDQvYWtFUWRrRUljU0lBZENJQklBRkJnT0FmYWtFUWRrRUVjU0lCZENJQ0lBSkJnSUFQYWtFUWRrRUNjU0lDZEVFUGRpQUFJQUZ5SUFKeWF5SUFRUUYwSUFRZ0FFRVZhblpCQVhGeVFSeHFDeUlBTmdJY0lBQkJBblJCNU1JQWFpRUJBa0JCdU1BQUtBSUFJZ0pCQVNBQWRDSUdjVVVFUUVHNHdBQWdBaUFHY2pZQ0FDQUJJQU0yQWdBZ0F5QUJOZ0lZREFFTElBUkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQUVvQWdBaEFRTkFJQUVpQWlnQ0JFRjRjU0FFUmcwRUlBQkJIWFloQVNBQVFRRjBJUUFnQWlBQlFRUnhhaUlHS0FJUUlnRU5BQXNnQmlBRE5nSVFJQU1nQWpZQ0dBc2dBeUFETmdJTUlBTWdBellDQ0F3REN5QUNLQUlJSWdBZ0J6WUNEQ0FDSUFjMkFnZ2dCMEVBTmdJWUlBY2dBallDRENBSElBQTJBZ2dMSUFsQkNHb2hBQXdGQ3lBQ0tBSUlJZ0FnQXpZQ0RDQUNJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FqWUNEQ0FESUFBMkFnZ0xRY0RBQUNnQ0FDSUFJQVZORFFCQndNQUFJQUFnQldzaUFUWUNBRUhNd0FCQnpNQUFLQUlBSWdBZ0JXb2lBallDQUNBQ0lBRkJBWEkyQWdRZ0FDQUZRUU55TmdJRUlBQkJDR29oQUF3REMwR3d3QUJCTURZQ0FFRUFJUUFNQWdzQ1FDQUlSUTBBQWtBZ0JDZ0NIQ0lBUVFKMFFlVENBR29pQXlnQ0FDQUVSZ1JBSUFNZ0FUWUNBQ0FCRFFGQnVNQUFJQWRCZmlBQWQzRWlCellDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQVJHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQWcyQWhnZ0JDZ0NFQ0lBQkVBZ0FTQUFOZ0lRSUFBZ0FUWUNHQXNnQkNnQ0ZDSUFSUTBBSUFFZ0FEWUNGQ0FBSUFFMkFoZ0xBa0FnQWtFUFRRUkFJQVFnQWlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnTWdBa0VCY2pZQ0JDQUNJQU5xSUFJMkFnQWdBa0gvQVUwRVFDQUNRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQUVMSUFNQ2YwRUFJQUpCQ0hZaUFFVU5BQnBCSHlBQ1FmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnVWdCVUdBZ0E5cVFSQjJRUUp4SWdWMFFROTJJQUFnQVhJZ0JYSnJJZ0JCQVhRZ0FpQUFRUlZxZGtFQmNYSkJIR29MSWdBMkFod2dBMElBTndJUUlBQkJBblJCNU1JQWFpRUJBa0FDUUNBSFFRRWdBSFFpQlhGRkJFQkJ1TUFBSUFVZ0IzSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBRW9BZ0FoQlFOQUlBVWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCU0FBUVFGMElRQWdBU0FGUVFSeGFpSUdLQUlRSWdVTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUFsRkRRQUNRQ0FCS0FJY0lnQkJBblJCNU1JQWFpSUNLQUlBSUFGR0JFQWdBaUFFTmdJQUlBUU5BVUc0d0FBZ0NrRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0JVRURjallDQkNBQklBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQ0FSQUlBaEJBM1lpQlVFRGRFSGN3QUJxSVFCQnlNQUFLQUlBSVFJQ2YwRUJJQVYwSWdVZ0JuRkZCRUJCdE1BQUlBVWdCbkkyQWdBZ0FBd0JDeUFBS0FJSUN5RUZJQUFnQWpZQ0NDQUZJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0JUWUNDQXRCeU1BQUlBUTJBZ0JCdk1BQUlBTTJBZ0FMSUFGQkNHb2hBQXNnQzBFUWFpUUFJQUFMUkFFQmZ5QUFJQUFvQWhBZ0FXb2lBVFlDRUNBQUlBRkJCM0UyQWdoQmZ5RUNJQUVnQUNnQ0RFRURkRTBFZnlBQUlBQW9BZ0FnQVVFRGRtbzJBZ1JCQUFWQmZ3c0w1UWNCQ0g4Z0FDQUVRUUFnQm1zZ0FpQUNJQVpxUVFCSUd5SUNJQUlnQkVvYklnSnFJQUFnQWtFQVNoc2lDU0FGUVFBZ0Iyc2dBeUFESUFkcVFRQklHeUlBSUFBZ0JVb2JJZ0FnQkd4cUlBa2dBRUVBU2hzaEF5QUhRUUFnQUdzZ0FFRWZkWEVpQ1dzZ0FDQUhhaUlBSUFWcklneEJBQ0FBSUFWS0d5SVBheUVMSUFaQkFDQUNheUlPSUFKQkgzVnhJZzFySUFJZ0Jtb2lBQ0FFYTBFQUlBQWdCRW9pQlJzaUNtc2hBQUpBSUFKQkFFZ2dCWElpRUVVRVFDQUpCRUFEUUNBQklBTWdBQkFWSUFocUlRRWdDVUYvYWlJSkRRQUxDeUFMUlEwQkEwQWdBU0FESUFBUUZTQUlhaUVCSUFNZ0JHb2hBeUFMUVg5cUlnc05BQXNNQVFzQ1FDQUpSUTBBSUExRkJFQURRQ0FBSVFjZ0FTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQVNBSWFpRUJJQWxCZjJvaUNRMEFEQUlBQ3dBTElBRWdEbW9oQmdOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0JpRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQmlBSWFpRUdJQUVnQ0dvaEFTQUpRWDlxSWdrTkFBc0xJQXRGRFFBZ0RVVUVRQU5BSUFBaEJ5QUJJUUlnQXlFRklBQUVRQU5BSUFJZ0JTMEFBRG9BQUNBQ1FRRnFJUUlnQlVFQmFpRUZJQWRCZjJvaUJ3MEFDd3NnQ2dSQUlBSWdCVUYvYWkwQUFDQUtFQWNhQ3lBQklBaHFJUUVnQXlBRWFpRURJQXRCZjJvaUN3MEFEQUlBQ3dBTElBRWdEbW9oQ1FOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0NTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQ0NBSmFpRUpJQUVnQ0dvaEFTQURJQVJxSVFNZ0MwRi9haUlMRFFBTEN3SkFJQTlGRFFBZ0F5QUVheUVESUJCRkJFQURRQ0FCSUFNZ0FCQVZJQWhxSVFFZ0RFRi9haUlNRFFBTUFnQUxBQXNnRFVVRVFBTkFJQU1oQWlBQklRVWdBQ0VISUFBRVFBTkFJQVVnQWkwQUFEb0FBQ0FGUVFGcUlRVWdBa0VCYWlFQ0lBZEJmMm9pQncwQUN3c2dDZ1JBSUFVZ0FrRi9haTBBQUNBS0VBY2FDeUFCSUFocUlRRWdERUYvYWlJTURRQU1BZ0FMQUFzZ0FTQU9haUVKQTBBZ0FTQURMUUFBSUEwUUJ5RUJJQUFoQnlBSklRSWdBeUVGSUFBRVFBTkFJQUlnQlMwQUFEb0FBQ0FDUVFGcUlRSWdCVUVCYWlFRklBZEJmMm9pQncwQUN3c2dDZ1JBSUFJZ0JVRi9haTBBQUNBS0VBY2FDeUFJSUFscUlRa2dBU0FJYWlFQklBeEJmMm9pREEwQUN3c0w5QUlCQTM4Z0FVRURkRUh3Tm1vaUF5Z0NBQ0VGSUFNdEFBUWhBeUFCUVFOMFFiQTFhaUlCTFFBRUlRUUNRQ0FCS0FJQVFRUkdCRUFnQWlBRVFRRjBhaTRCQUNFQklBVkJCRVlFUUNBQklBSWdBMEVCZEdvdUFRQnFRUUZxUVFGMUR3c0NmeUFBS0FMTUFTSUNCRUFnQUNnQ0JDQUNLQUlFUmd3QkMwRUFDMFVOQVNBQklBQW9Bc3dCSUFOQkFYUnFMZ0VjYWtFQmFrRUJkUThMSUFWQkJFWUVRQ0FDSUFOQkFYUnFMZ0VBSVFFQ2Z5QUFLQUxJQVNJQ0JFQWdBQ2dDQkNBQ0tBSUVSZ3dCQzBFQUMwVU5BU0FCSUFBb0FzZ0JJQVJCQVhScUxnRWNha0VCYWtFQmRROExBbjhDZnlBQUtBTElBU0lCQkVBZ0FDZ0NCQ0FCS0FJRVJnd0JDMEVBQzBVRVFFRUFJUUpCQUF3QkMwRUJJUUlnQUNnQ3lBRWdCRUVCZEdvdUFSd0xJUUVDZnlBQUtBTE1BU0lFQkVBZ0FDZ0NCQ0FFS0FJRVJnd0JDMEVBQzBVTkFDQUFLQUxNQVNBRFFRRjBhaTRCSENFQUlBSkZCRUFnQUE4TElBQWdBV3BCQVdwQkFYVWhBUXNnQVF1SkJ3RUhmeUFESUFWcUlnMGdBUzRCQUNJTVFRSjFhaUVESUFRZ0Jtb2lEaUFCTGdFQ0lnOUJBblZxSVFRZ0FpZ0NDRUVFZENFSklBSW9BZ1JCQkhRaENpQUFJQVpCQkhScUlBVnFJUXNDUUNBTVFRTnhRUVIwSUE5QkEzRkJBblJ5UWRBN2FpZ0NBQ0lNUVE1TkJFQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnREVFQmF3NE9BUUlEQkFVR0J3Z0pDZ3NNRFE0QUN5QUNLQUlBSUFzZ0F5QUVJQW9nQ1NBSElBaEJFQkFNREE4TElBSW9BZ0FnQ3lBRElBUkJmbW9nQ2lBSklBY2dDRUVBRUNRTURnc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJRUVjTURRc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJUVFFUUpBd01DeUFDS0FJQUlBc2dBMEYrYWlBRUlBb2dDU0FISUFoQkFCQWpEQXNMSUFJb0FnQWdDeUFEUVg1cUlBUkJmbW9nQ2lBSklBY2dDRUVBRUJvTUNnc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRQVFJUXdKQ3lBQ0tBSUFJQXNnQTBGK2FpQUVRWDVxSUFvZ0NTQUhJQWhCQWhBYURBZ0xJQUlvQWdBZ0N5QURRWDVxSUFRZ0NpQUpJQWNnQ0JCR0RBY0xJQUlvQWdBZ0N5QURRWDVxSUFSQmZtb2dDaUFKSUFjZ0NFRUFFQ0lNQmdzZ0FpZ0NBQ0FMSUFOQmZtb2dCRUYrYWlBS0lBa2dCeUFJRUVVTUJRc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRRVFJZ3dFQ3lBQ0tBSUFJQXNnQTBGK2FpQUVJQW9nQ1NBSElBaEJBUkFqREFNTElBSW9BZ0FnQ3lBRFFYNXFJQVJCZm1vZ0NpQUpJQWNnQ0VFQkVCb01BZ3NnQWlnQ0FDQUxJQU5CZm1vZ0JFRithaUFLSUFrZ0J5QUlRUUVRSVF3QkN5QUNLQUlBSUFzZ0EwRithaUFFUVg1cUlBb2dDU0FISUFoQkF4QWFDeUFOUVFGMklBRXVBUUFpQ1VFRGRXb2hBeUFPUVFGMklBRXVBUUlpQVVFRGRXb2hCQ0FDS0FJQUlBSW9BZ1FpQ2lBQ0tBSUlJZ3RzUVFoMGFpRUNJQUFnQmtFQ2RFRjRjV29nQlVFQmRtcEJnQUpxSVFVZ0NFRUJkaUVHSUFkQkFYWWhCeUFCUVFkeElRZ2dDMEVEZENFQUlBcEJBM1FoQVFKQUlBbEJCM0VpQ1VVTkFDQUlSUTBBSUFJZ0JTQURJQVFnQVNBQUlBa2dDQ0FISUFZUVNBOExJQWtFUUNBQ0lBVWdBeUFFSUFFZ0FDQUpJQWNnQmhCTER3c2dDQVJBSUFJZ0JTQURJQVFnQVNBQUlBZ2dCeUFHRUVvUEN5QUNJQVVnQXlBRUlBRWdBQ0FISUFaQkNCQU1JQUlnQUNBQmJHb2dCVUZBYXlBRElBUWdBU0FBSUFjZ0JrRUlFQXdMeHdFQkJIOGdBQ2dDQkNFQ0FrQWdBQ2dDREVFRGRDQUFLQUlRYXlJRFFTQk9CRUFnQWlnQUFDSUJRUmgwSUFGQkNIUkJnSUQ4QjNGeUlBRkJDSFpCZ1A0RGNTQUJRUmgyY25JaEFTQUFLQUlJSWdCRkRRRWdBU0FBZENBQ0xRQUVRUWdnQUd0MmNnOExJQU5CQVVnRVFFRUFEd3NnQWkwQUFDQUFLQUlJSWdCQkdHb2lCSFFoQVNBQUlBTnFRWGhxSWdCQkFVZ05BQU5BSUFJdEFBRWdCRUY0YWlJRWRDQUJjaUVCSUFCQkNFb2hBeUFDUVFGcUlRSWdBRUY0YWlFQUlBTU5BQXNMSUFFTGpBUUJCMzhDUUNBQVFYOXFJZ2d0QUFBaUJTQUFMUUFBSWdacklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJRVR3MEFJQUJCZm1vdEFBQWlCQ0FGYXlJSElBZEJIM1VpQjJvZ0IzTWdBaWdDQ0NJSlR3MEFJQUF0QUFFaUJ5QUdheUlLSUFwQkgzVWlDbW9nQ25NZ0NVOE5BQ0FCUVFOTkJFQWdDQ0FGSUFFZ0FpZ0NBR3BCZjJvdEFBQWlDRUYvY3lJSklBaEJBV29pQ0NBR0lBVnJRUUowSUFkcklBUnFRUVJxUVFOMUlnVWdCU0FJU2hzZ0JTQUpTQnNpQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFGYTBHd0xtb3RBQUE2QUFBTUFRc2dDQ0FGSUFkcUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFBZ0JpQUhRUUYwYWlBRWFrRUNha0VDZGpvQUFBc0NRQ0FBSUFOcUlnQkJmMm9pQnkwQUFDSURJQUF0QUFBaUJXc2lCaUFHUVI5MUlnWnFJQVp6SUFJb0FnUlBEUUFnQUVGK2FpMEFBQ0lHSUFOcklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJSUlnaFBEUUFnQUMwQUFTSUVJQVZySWdrZ0NVRWZkU0lKYWlBSmN5QUlUdzBBSUFGQkEwMEVRQ0FISUFFZ0FpZ0NBR3BCZjJvdEFBQWlBVUYvY3lJQ0lBRkJBV29pQnlBRklBTnJRUUowSUFScklBWnFRUVJxUVFOMUlnRWdBU0FIU2hzZ0FTQUNTQnNpQVNBRGFrR3dMbW90QUFBNkFBQWdBQ0FGSUFGclFiQXVhaTBBQURvQUFBOExJQWNnQXlBRWFpQUdRUUYwYWtFQ2FrRUNkam9BQUNBQUlBVWdCRUVCZEdvZ0JtcEJBbXBCQW5ZNkFBQUxDMGNBQWtBZ0FVRUVUUVJBQWtBQ1FBSkFBa0FnQVVFQmF3NEVBUUlEQlFBTElBQW9Bc2dCRHdzZ0FDZ0N6QUVQQ3lBQUtBTFFBUThMSUFBb0F0UUJEd3RCQUNFQUN5QUFDNlVEQVF0L1FRQWdBMnNpQzBFQmRDRUVJQUVnQWlnQ0FHcEJmMm90QUFBaUFVRUJhaUVKSUFGQmYzTWhDZ0pBSUFBZ0Eyc2lCeTBBQUNJRklBQXRBQUFpQm1zaUFTQUJRUjkxSWdGcUlBRnpJQUlvQWdRaUFVOE5BQ0FBSUFScUxRQUFJZzBnQldzaUNDQUlRUjkxSWdocUlBaHpJQUlvQWdnaUNFOE5BQ0FBSUFOcUxRQUFJZzRnQm1zaURDQU1RUjkxSWd4cUlBeHpJQWhQRFFBZ0J5QUtJQWtnQmlBRmEwRUNkQ0FPYXlBTmFrRUVha0VEZFNJQklBRWdDVW9iSUFFZ0NrZ2JJZ0VnQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFCYTBHd0xtb3RBQUE2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJBV29pQlNBTGFpSUxMUUFBSWdZZ0FDMEFBU0lBYXlJSElBZEJIM1VpQjJvZ0IzTWdBVThOQUNBRUlBVnFMUUFBSWdFZ0Jtc2lCQ0FFUVI5MUlnUnFJQVJ6SUFJb0FnZ2lBazhOQUNBRElBVnFMUUFBSWdNZ0FHc2lCQ0FFUVI5MUlnUnFJQVJ6SUFKUERRQWdDeUFLSUFrZ0FDQUdhMEVDZENBRGF5QUJha0VFYWtFRGRTSUJJQUVnQ1VvYklBRWdDa2diSWdFZ0JtcEJzQzVxTFFBQU9nQUFJQVVnQUNBQmEwR3dMbW90QUFBNkFBQUxDMFFCQW44L0FDRUJBa0JCc01RQUtBSUFJZ0lnQUVFRGFrRjhjV29pQUNBQlFSQjBUUTBBSUFBUUFRMEFRYkRBQUVFd05nSUFRWDhQQzBHd3hBQWdBRFlDQUNBQ0N6UUJBWDhDUUNBQlFSQkxEUUFnQUNnQ0JDQUJRUUowYWlnQ0FDSUFSUTBBSUFBb0FoUkJBa2tOQUNBQUtBSUFJUUlMSUFJTGdnUUJBMzhnQWtHQUJFOEVRQ0FBSUFFZ0FoQUFHaUFBRHdzZ0FDQUNhaUVEQWtBZ0FDQUJjMEVEY1VVRVFBSkFJQUpCQVVnRVFDQUFJUUlNQVFzZ0FFRURjVVVFUUNBQUlRSU1BUXNnQUNFQ0EwQWdBaUFCTFFBQU9nQUFJQUZCQVdvaEFTQUNRUUZxSWdJZ0EwOE5BU0FDUVFOeERRQUxDd0pBSUFOQmZIRWlCRUhBQUVrTkFDQUNJQVJCUUdvaUJVc05BQU5BSUFJZ0FTZ0NBRFlDQUNBQ0lBRW9BZ1EyQWdRZ0FpQUJLQUlJTmdJSUlBSWdBU2dDRERZQ0RDQUNJQUVvQWhBMkFoQWdBaUFCS0FJVU5nSVVJQUlnQVNnQ0dEWUNHQ0FDSUFFb0FodzJBaHdnQWlBQktBSWdOZ0lnSUFJZ0FTZ0NKRFlDSkNBQ0lBRW9BaWcyQWlnZ0FpQUJLQUlzTmdJc0lBSWdBU2dDTURZQ01DQUNJQUVvQWpRMkFqUWdBaUFCS0FJNE5nSTRJQUlnQVNnQ1BEWUNQQ0FCUVVCcklRRWdBa0ZBYXlJQ0lBVk5EUUFMQ3lBQ0lBUlBEUUVEUUNBQ0lBRW9BZ0EyQWdBZ0FVRUVhaUVCSUFKQkJHb2lBaUFFU1EwQUN3d0JDeUFEUVFSSkJFQWdBQ0VDREFFTElBTkJmR29pQkNBQVNRUkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FpQUJMUUFCT2dBQklBSWdBUzBBQWpvQUFpQUNJQUV0QUFNNkFBTWdBVUVFYWlFQklBSkJCR29pQWlBRVRRMEFDd3NnQWlBRFNRUkFBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSWdBMGNOQUFzTElBQUx3UmdCSUg4akFFSFFBMnNpQmlRQUlBRW9BZ2doRkNBQklBRW9BZ1FpQ2lBQ2JDSWFJQU5xRUIwZ0FTZ0NBQ0VKSUFCQkFEWUNDQ0FBUWlnM0FoUWdBRUlBTndJTUlBQkJCallDQUNBRFFRUjBJUWNDUUFKQUFrQWdCRUYrYWlJRVFRVkxEUUFDUUNBRVFRRnJEZ1FCQVFFQkFBc01BUXNnQmtFQU5nSU1JQVlnRkRZQ0dDQUdJQW8yQWhRZ0JpQUZOZ0lRSUFVRVFDQUdRZEFBYWlBR1FReHFJQVpCRUdvZ0J5QUNRUVIwUVFCQkFFRVFRUkFRRGd3Q0N3c2dCa0hRQUdwQkFFR0FBeEFIR2lBSklCcEJDSFJxSUFkcUlRd2dCa0lBTndOSUlBWkJRR3RDQURjREFDQUdRZ0EzQXpnZ0JrSUFOd013SUFaQ0FEY0RLQ0FHUWdBM0F5QWdCa0lBTndNWUlBWkNBRGNERUVFQUlRa0NmMEVBSUFKRkRRQWFRUUFnQUVFQUlBcHJRZGdCYkdvb0FzUUJSUTBBR2lBR0lBd2dDa0VFZEdzaUJDMEFCU0FFTFFBRWFpQUVMUUFHYWlBRUxRQUhhaUlYSUFRdEFBTWdCQzBBQWlBRUxRQUJJQVF0QUFCcWFtb2lGbW9pQlNBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSWFtcHFJaEpySUFRdEFBOGdCQzBBRGlBRUxRQU5JQVF0QUF4cWFtb2lFMnNpQ0RZQ0ZDQUdJQVVnRW1vZ0Uyb2lDVFlDRUVFQkN5RUZBbjhDUUNBQ0lCUkJmMnBIQkVBZ0FDQUtRZGdCYkdvb0FzUUJEUUVMSUFVTUFRc2dCaUFNSUFwQkNIUnFJZ0l0QUFVZ0FpMEFCR29nQWkwQUJtb2dBaTBBQjJvaUhpQUNMUUFESUFJdEFBSWdBaTBBQVNBQ0xRQUFhbXBxSWg5cUlnUWdBaTBBQ3lBQ0xRQUtJQUl0QUFrZ0FpMEFDR3BxYWlJWWF5QUNMUUFQSUFJdEFBNGdBaTBBRFNBQ0xRQU1hbXBxSWhscklBaHFJZ2cyQWhRZ0JpQUVJQmhxSUFscUlCbHFJZ2syQWhCQkFTRVFJQVZCQVdvTElRZEJBQ0VFQW44Q1FDQURSUTBBSUFCQmJHb29BZ0JGRFFBZ0JpQU1RWDlxSWdJZ0NrRUdkQ0lPYWlJRUlBcEJCSFFpQzJvdEFBQWdCQzBBQUdvZ0JDQUtRUVYwSWc5cUxRQUFhaUFFSUFwQk1Hd2lEV290QUFCcUloc2dBaUFOYWkwQUFDQUNJQTlxTFFBQUlBSWdDMm90QUFBZ0FpMEFBR3BxYWlJY2FpSVJJQVFnRG1vaUFpQUxhaTBBQUNBQ0xRQUFhaUFDSUE5cUxRQUFhaUFDSUExcUxRQUFhaUlWYXlBQ0lBNXFJZ0lnQzJvdEFBQWdBaTBBQUdvZ0FpQVBhaTBBQUdvZ0FpQU5haTBBQUdvaUQyc2lCRFlDSUNBR0lCRWdGV29nQ1dvZ0Qyb2lDVFlDRUNBSFFRRnFJUXRCQVF3QkN5QUhJUXRCQUFzaEFnSkFBa0FDUUFKQUFrQUNRQ0FESUFwQmYycEhCRUFnQUNnQ25BTU5BUXRCQUNFT0lBSkJBRWNoRVNBSERRRU1BZ3NnQmlBRUlBeEJFR29pQkNBS1FRWjBJaDFxSWdBZ0NrRUVkQ0lOYWkwQUFDQUFMUUFBYWlBQUlBcEJCWFFpRG1vdEFBQnFJQUFnQ2tFd2JDSVJhaTBBQUdvaUlDQUVJQkZxTFFBQUlBUWdEbW90QUFBZ0JDQU5haTBBQUNBTUxRQVFhbXBxSWlGcUlpSWdBQ0FkYWlJQUlBMXFMUUFBSUFBdEFBQnFJQUFnRG1vdEFBQnFJQUFnRVdvdEFBQnFJZ3hySUFBZ0hXb2lBQ0FOYWkwQUFDQUFMUUFBYWlBQUlBNXFMUUFBYWlBQUlCRnFMUUFBYWlJTmEyb2lCRFlDSUNBR0lBd2dJbW9nQ1dvZ0RXb2lDVFlDRUNBQ1FRQkhJUkZCQVNFT0lBSkJBV29oQUNBTFFRRnFJUXNDUUNBSERRQWdBa1VOQUNBR0lCc2dIR29nRldvZ0Qyb2dJV3NnSUdzZ0RHc2dEV3RCQlhVaUNEWUNGQXdEQ3lBSFJRMENJQUFoQWdzZ0JpQUlJQWRCQTJwMUlnZzJBaFFMQWtBZ0VFVU5BQ0FGUlEwQUlBSU5BQ0FHSUJZZ0Yyb2dFbW9nRTJvZ0dXc2dHR3NnSG1zZ0gydEJCWFVpQkRZQ0lFRUJJUkJCQVNFTkRBTUxJQkJCQUVjaEVDQUZRUUJISVEwZ0FrVU5BZ3dCQ3lBUVFRQkhJUkFnQlVFQVJ5RU5JQUFoQWdzZ0JpQUVJQUpCQTJwMUlnUTJBaUFMSUFZQ2Z5QUxRWDlxSWdCQkFrMEVRQUpBQWtBQ1FDQUFRUUZyRGdJQkFnQUxJQWxCQkhZTUF3c2dDVUVGZGd3Q0N5QUpRUlZzUVFwMURBRUxJQWxCQm5ZTElnQTJBaEFDUUNBRUlBaHlSUVJBSUFZZ0FEWUNTQ0FHSUFBMkFrd2dCaUFBTmdKRUlBWWdBRFlDUUNBR0lBQTJBandnQmlBQU5nSTRJQVlnQURZQ05DQUdJQUEyQWpBZ0JpQUFOZ0lzSUFZZ0FEWUNLQ0FHSUFBMkFpUWdCaUFBTmdJZ0lBWWdBRFlDSENBR0lBQTJBaGdnQmlBQU5nSVVEQUVMSUFZZ0FDQUlhaUlGSUFSck5nSkFJQVlnQlNBRVFRRjFJZ0pyTmdJd0lBWWdBaUFGYWpZQ0lDQUdJQVFnQldvMkFoQWdCaUFBSUFocklnVWdCR3MyQWt3Z0JpQUZJQUpyTmdJOElBWWdBaUFGYWpZQ0xDQUdJQVFnQldvMkFod2dCaUFBSUFoQkFYVWlCMm9pQlNBRWF6WUNSQ0FHSUFVZ0FtczJBalFnQmlBQ0lBVnFOZ0lrSUFZZ0JDQUZhallDRkNBR0lBQWdCMnNpQUNBRWF6WUNTQ0FHSUFBZ0FtczJBamdnQmlBQUlBSnFOZ0lvSUFZZ0FDQUVhallDR0FzZ0JrSFFBR29oQ0NBR1FSQnFJUUJCQUNFRUEwQWdDQ0FBSUFSQkRIRnFLQUlBSWdKQi93RWdBa0gvQVVnYklnSkJBQ0FDUVFCS0d6b0FBQ0FBSUFCQkVHb2dCRUVCYWlJRVFUOXhHeUVBSUFoQkFXb2hDQ0FFUVlBQ1J3MEFDeUFCS0FJQUlBb2dGR3dpQUVFSWRHb2dHa0VHZEdvZ0EwRURkR29oQXlBS1FRUjBJUXdnQ2tFR2RDRWFJQUJCQm5RaEhVRUFJQXBCQTNRaUMyc2hJQ0FHUWRBQ2FpRWhJQVpCUUdzaElrRUFJUVVEUUNBR1FnQTNBMGdnSWtJQU53TUFJQVpDQURjRE9DQUdRZ0EzQXpBZ0JrSUFOd01vSUFaQ0FEY0RJQ0FHUWdBM0F4Z2dCa0lBTndNUVFRQWhDRUVBSVFSQkFDRUpJQTBFUUNBR0lBTWdJR29pQUMwQUF5QUFMUUFDYWlJWElBQXRBQUVnQUMwQUFHb2lGbW9pQWlBQUxRQUZJQUF0QUFScUloSnJJQUF0QUFjZ0FDMEFCbW9pRTJzaUNEWUNGQ0FHSUFJZ0Vtb2dFMm9pQkRZQ0VFRUJJUWtMSUJBRVFDQUdJQU1nR21vaUFDMEFBeUFBTFFBQ2FpSWVJQUF0QUFFZ0FDMEFBR29pSDJvaUFpQUFMUUFGSUFBdEFBUnFJaGhySUFBdEFBY2dBQzBBQm1vaUdXc2dDR29pQ0RZQ0ZDQUdJQUlnR0dvZ0JHb2dHV29pQkRZQ0VDQUpRUUZxSVFrTFFRQWhBQUovSUJGRkJFQWdDU0VIUVFBTUFRc2dCaUFEUVg5cUlnQWdER29pQWlBTGFpMEFBQ0FDTFFBQWFpSWJJQUFnQzJvdEFBQWdBQzBBQUdvaUhHb2lCeUFDSUF4cUlnQWdDMm90QUFBZ0FDMEFBR29pRldzZ0FDQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlnOXJJZ0EyQWlBZ0JpQUhJQlZxSUFScUlBOXFJZ1EyQWhBZ0NVRUJhaUVIUVFFTElRSUNRQ0FHQW44Q1FBSkFBa0FnRGtVRVFDQUpEUUVNQWdzZ0JpQUFJQU5CQ0dvaUNpQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlpTWdDaUFMYWkwQUFDQURMUUFJYWlJa2FpSWxJQUFnREdvaUFDQUxhaTBBQUNBQUxRQUFhaUlLYXlBQUlBeHFJZ0FnQzJvdEFBQWdBQzBBQUdvaUZHdHFJZ0EyQWlBZ0JpQUtJQ1ZxSUFScUlCUnFJZ1EyQWhBZ0FrRUJhaUVDSUFkQkFXb2hCeUFSUVFGeklBbEJBRWR5UlFSQUlBWWdHeUFjYWlBVmFpQVBhaUFrYXlBamF5QUtheUFVYTBFRWRTSUlOZ0lVREFNTElBbEZEUUlMSUFZZ0NDQUpRUUpxZFNJSU5nSVVDeUFXSUJkcUlCSnFJQk5xSUJscklCaHJJQjVySUI5clFRUjFJQkFnRFNBQ1JYRnhRUUZHRFFFYUlBSkZEUUlMSUFBZ0FrRUNhblVMSWdBMkFpQUxJQVlDZnlBSFFYOXFJZ0pCQWswRVFBSkFBa0FDUUNBQ1FRRnJEZ0lCQWdBTElBUkJBM1lNQXdzZ0JFRUVkZ3dDQ3lBRVFSVnNRUWwyREFFTElBUkJCWFlMSWdRMkFoQUNRQ0FBSUFoeVJRUkFJQVlnQkRZQ1NDQUdJQVEyQWt3Z0JpQUVOZ0pFSUFZZ0JEWUNRQ0FHSUFRMkFqd2dCaUFFTmdJNElBWWdCRFlDTkNBR0lBUTJBakFnQmlBRU5nSXNJQVlnQkRZQ0tDQUdJQVEyQWlRZ0JpQUVOZ0lnSUFZZ0JEWUNIQ0FHSUFRMkFoZ2dCaUFFTmdJVURBRUxJQVlnQkNBSWFpSUhJQUJyTmdKQUlBWWdCeUFBUVFGMUlnSnJOZ0l3SUFZZ0FpQUhhallDSUNBR0lBQWdCMm8yQWhBZ0JpQUVJQWhySWdjZ0FHczJBa3dnQmlBSElBSnJOZ0k4SUFZZ0FpQUhhallDTENBR0lBQWdCMm8yQWh3Z0JpQUVJQWhCQVhVaUNXb2lCeUFBYXpZQ1JDQUdJQWNnQW1zMkFqUWdCaUFDSUFkcU5nSWtJQVlnQUNBSGFqWUNGQ0FHSUFRZ0NXc2lCQ0FBYXpZQ1NDQUdJQVFnQW1zMkFqZ2dCaUFDSUFScU5nSW9JQVlnQUNBRWFqWUNHQXNnSVNBRlFRWjBhaUVJUVFBaEFDQUdRUkJxSVFRRFFDQUlJQVFnQUVFQmRFRU1jV29vQWdBaUFrSC9BU0FDUWY4QlNCc2lBa0VBSUFKQkFFb2JPZ0FBSUFRZ0JFRVFhaUFBUVFGcUlnQkJEM0ViSVFRZ0NFRUJhaUVJSUFCQndBQkhEUUFMSUFNZ0hXb2hBeUFGUVFGcUlnVkJBa2NOQUFzTElBRWdCa0hRQUdvUUd5QUdRZEFEYWlRQUN6WUFJQUlFUUNBQUlBRVFBZzhMUVFFaEFpQUJJQUJCQVJBRElnQTJBZ0FnQUVGL1J3Ui9JQUVnQUVFQmN6WUNBRUVBQlVFQkN3dk1Bd0VTZnlBRFFRRjBJUThnQTBGOWJDRVFRUUFnQTJzaUVVRUJkQ0VTSUFFZ0FpZ0NBR3BCZjJvdEFBQWlCMEVCYWlFVFFRQWdCMnNoQ2tFRUlRRURRQUpBSUFBZ0VXb2lGQzBBQUNJRklBQXRBQUFpQ0dzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdSUERRQWdBQ0FTYWlJTExRQUFJZ3dnQldzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdnaUJrOE5BQ0FBSUFOcUloVXRBQUFpRFNBSWF5SUVJQVJCSDNVaUJHb2dCSE1nQms4TkFDQUhJUVFnQUNBUWFpMEFBQ0lKSUFWcklnNGdEa0VmZFNJT2FpQU9jeUFHU1FSQUlBc2dEQ0FLSUFjZ0JTQUlha0VCYWtFQmRpQU1RUUYwYXlBSmFrRUJkU0lFSUFRZ0Iwb2JJQVFnQ2tnYmFqb0FBQ0FDS0FJSUlRWWdFeUVFQ3lBVUlBVUNmeUFBSUE5cUxRQUFJZ3NnQ0dzaUNTQUpRUjkxSWdscUlBbHpJQVpKQkVBZ0ZTQU5JQW9nQnlBRklBaHFRUUZxUVFGMklBMUJBWFJySUF0cVFRRjFJZ1lnQmlBSFNoc2dCaUFLU0J0cU9nQUFJQVJCQVdvaEJBdEJBQ0FFYXlJR0N5QUVJQWdnQld0QkFuUWdEV3NnREdwQkJHcEJBM1VpQlNBRklBUktHeUFGSUFaSUd5SUVha0d3TG1vdEFBQTZBQUFnQUNBSUlBUnJRYkF1YWkwQUFEb0FBQXNnQUVFQmFpRUFJQUZCZjJvaUFRMEFDd3Y3QmdFT2Z5QUNLQUlJSVFvZ0FpZ0NCQ0VQQWtBZ0FVRUVUd1JBSUE5QkFuWkJBbW9oRUVFRUlRSURRQUpBSUFCQmYyb2lCUzBBQUNJSElBQXRBQUFpQ0dzaUFTQUJRUjkxSWdGcUlBRnpJZzBnRDA4TkFDQUFRWDVxSWc0dEFBQWlBU0FIYXlJRUlBUkJIM1VpQkdvZ0JITWdDazhOQUNBQUxRQUJJZ2tnQ0dzaUJDQUVRUjkxSWdScUlBUnpJQXBQRFFBQ1FDQU5JQkJKQkVBZ0FDMEFBaUVMQW44Z0FFRjlhaUlOTFFBQUlnUWdCMnNpQmlBR1FSOTFJZ1pxSUFaeklBcEpCRUJCQXlFR0lBVWdDU0FISUFocUlBRnFJZ1ZCQVhScUlBUnFRUVJxUVFOMk9nQUFJQTRnQkNBRmFrRUNha0VDZGpvQUFDQUVRUU5zSVE0Z0JVRUVhaUVNSUFCQmZHb3RBQUFNQVFzZ0J5QUphaUVNUVFJaERrRUNJUVlnQlNFTklBRUxJUVFnRFNBTUlBNXFJQVJCQVhScUlBWjJPZ0FBSUFzZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFwUERRRWdBQ0FISUFscUlBaHFJZ1VnQzJwQkFtcEJBblk2QUFFZ0FDQUZJQXRCQTJ4cUlBQXRBQU5CQVhScVFRUnFRUU4yT2dBQ0lBQWdBU0FGUVFGMGFpQUxha0VFYWtFRGRqb0FBQXdDQ3lBRklBY2dDV29nQVVFQmRHcEJBbXBCQW5ZNkFBQUxJQUFnQVNBSWFpQUpRUUYwYWtFQ2FrRUNkam9BQUFzZ0FDQURhaUVBSUFKQmYyb2lBZzBBQ3d3QkN5QUJJQUlvQWdCcVFYOXFMUUFBSWdWQkFXb2hEVUVBSUFWcklRaEJCQ0VDQTBBQ1FDQUFRWDlxSWc0dEFBQWlCQ0FBTFFBQUlnZHJJZ0VnQVVFZmRTSUJhaUFCY3lBUFR3MEFJQUJCZm1vaURDMEFBQ0lKSUFScklnRWdBVUVmZFNJQmFpQUJjeUFLVHcwQUlBQXRBQUVpQ3lBSGF5SUJJQUZCSDNVaUFXb2dBWE1nQ2s4TkFDQUFMUUFDSVFZZ0JTRUJJQUJCZldvdEFBQWlFQ0FFYXlJUklCRkJIM1VpRVdvZ0VYTWdDa2tFUUNBTUlBa2dDQ0FGSUFRZ0IycEJBV3BCQVhZZ0NVRUJkR3NnRUdwQkFYVWlBU0FCSUFWS0d5QUJJQWhJRzJvNkFBQWdEU0VCQ3lBT0lBUUNmeUFHSUFkcklnd2dERUVmZFNJTWFpQU1jeUFLU1FSQUlBQWdDeUFJSUFVZ0JDQUhha0VCYWtFQmRpQUxRUUYwYXlBR2FrRUJkU0lHSUFZZ0JVb2JJQVlnQ0VnYmFqb0FBU0FCUVFGcUlRRUxRUUFnQVdzaUJnc2dBU0FKSUF0cklBY2dCR3RCQW5ScVFRUnFRUU4xSWdRZ0JDQUJTaHNnQkNBR1NCc2lBV3BCc0M1cUxRQUFPZ0FBSUFBZ0J5QUJhMEd3TG1vdEFBQTZBQUFMSUFBZ0Eyb2hBQ0FDUVg5cUlnSU5BQXNMQzlvSEFRMS9Jd0JCd0FOckloRWtBQ0FHUVFWcUlRa0NRQUpBSUFKQkFFZ05BQ0FEUVFCSURRQWdBaUFKYWlBRVN3MEFJQU1nQjJwQkJXb2dCVXNOQUNBRUlRa2dBeUVLREFFTElBQWdFU0FDSUFNZ0JDQUZJQWtnQjBFRmFpQUpFQXdnRVNFQVFRQWhBZ3NDUUNBSFJRMEFJQUFnQ1NBS2JDQUNhbW9oRTBFUUlBWnJJUlFDUUNBR1FRSjJJaElFUUNBSklBWnJJUlVnRXlBSklBaEJBWFpCQVhGQkFuSnNha0VGYWlFQ0lBY2hCQU5BSUFKQmYyb3RBQUFoQUNBQ1FYNXFMUUFBSVFNZ0FrRjlhaTBBQUNFRklBSkJmR290QUFBaEN5QUNRWHRxTFFBQUlRMGdFaUVQQTBBZ0FTQUNMUUFBSWdvZ0RTQUFJQXRxSWd4cklBTWdCV3BCRkd4cUlBeEJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQUFnQVNBQ0xRQUJJZ3dnQ3lBQUlBTnFRUlJzYWlBRklBcHFJZ3RySUF0QkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBRWdBU0FDTFFBQ0loQWdCU0FBSUFwcVFSUnNhaUFESUF4cUlnVnJJQVZCQW5ScmFrRVFha0VGZFVHd0xtb3RBQUE2QUFJZ0FTQUNMUUFESWc0Z0F5QUtJQXhxUVJSc2FpQUFJQkJxSWdOcklBTkJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQU1nQVVFRWFpRUJJQUpCQkdvaEFpQUFJUTBnQ2lFTElBd2hCU0FRSVFNZ0RpRUFJQTlCZjJvaUR3MEFDeUFCSUJScUlRRWdBaUFWYWlFQ0lBUkJmMm9pQkEwQUN3d0JDeUFIUVg5cUlCUnNJQVpySUFGcVFSQnFJUUVMSUFkQkFuWWlCRVVOQUVIQUFDQUdheUVRSUFsQkFYUWhDaUFKUVFKMElBWnJJUXRCQUNBSmF5SU1RUUYwSVJJZ0FTQUhRUVIwYXlFQ0lBa2dFMm9nQ0VFQmNXcEJBbW9pQUNBSlFRVnNhaUVCQTBBZ0JpSURCRUFEUUNBQ0lBQWdDbW90QUFBaUJTQUJJQXBxTFFBQUlBRWdDV290QUFBaURpQUJJQkpxTFFBQUlnZHFJZ2hySUFoQkFuUnJhaUFCTFFBQUlnMGdBU0FNYWkwQUFDSUlha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQUl0QURCcVFRRnFRUUYyT2dBd0lBSWdBQ0FKYWkwQUFDSVBJQTRnQnlBSWFrRVViR29nQlNBTmFpSU9heUFPUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFDQnFRUUZxUVFGMk9nQWdJQUlnQUMwQUFDSU9JQTBnQlNBSGFrRVViR29nQ0NBUGFpSU5heUFOUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFCQnFRUUZxUVFGMk9nQVFJQUlnQUNBTWFpMEFBQ0FJSUFVZ0QycEJGR3hxSUFjZ0Rtb2lCV3NnQlVFQ2RHdHFRUkJxUVFWMVFiQXVhaTBBQUNBQ0xRQUFha0VCYWtFQmRqb0FBQ0FBUVFGcUlRQWdBa0VCYWlFQ0lBRkJBV29oQVNBRFFYOXFJZ01OQUFzTElBSWdFR29oQWlBQklBdHFJUUVnQUNBTGFpRUFJQVJCZjJvaUJBMEFDd3NnRVVIQUEyb2tBQXUxQlFFRWZ5QUFLQUlVSVFNZ0FDZ0NFQ0VFSUFBb0FnUWhCU0FBS0FJTUlnSWdBU2tDQURjQ0FDQUNJQUVwQWdnM0FnZ2dBaUFGUVFSMElnQnFJZ0lnQVNrQ0VEY0NBQ0FDSUFFcEFoZzNBZ2dnQUNBQ2FpSUNJQUVwQWlBM0FnQWdBaUFCS1FJb053SUlJQUFnQW1vaUFpQUJLUUl3TndJQUlBSWdBU2tDT0RjQ0NDQUFJQUpxSWdJZ0FTa0NRRGNDQUNBQ0lBRXBBa2czQWdnZ0FDQUNhaUlDSUFFcEFsQTNBZ0FnQWlBQktRSllOd0lJSUFBZ0Ftb2lBaUFCS1FKZ053SUFJQUlnQVNrQ2FEY0NDQ0FBSUFKcUlnSWdBU2tDY0RjQ0FDQUNJQUVwQW5nM0FnZ2dBQ0FDYWlJQ0lBRXBBb0FCTndJQUlBSWdBU2tDaUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcEFCTndJQUlBSWdBU2tDbUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcUFCTndJQUlBSWdBU2tDcUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBckFCTndJQUlBSWdBU2tDdUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBc0FCTndJQUlBSWdBU2tDeUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdEFCTndJQUlBSWdBU2tDMkFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdUFCTndJQUlBSWdBU2tDNkFFM0FnZ2dBQ0FDYWlJQUlBRXBBdkFCTndJQUlBQWdBU2tDK0FFM0FnZ2dCQ0FCS1FLQUFqY0NBQ0FFSUFWQkEzUWlBR29pQkNBQktRS0lBamNDQUNBQUlBUnFJZ1FnQVNrQ2tBSTNBZ0FnQUNBRWFpSUVJQUVwQXBnQ053SUFJQUFnQkdvaUJDQUJLUUtnQWpjQ0FDQUFJQVJxSWdRZ0FTa0NxQUkzQWdBZ0FDQUVhaUlFSUFFcEFyQUNOd0lBSUFBZ0JHb2dBU2tDdUFJM0FnQWdBeUFCS1FMQUFqY0NBQ0FBSUFOcUlnTWdBU2tDeUFJM0FnQWdBQ0FEYWlJRElBRXBBdEFDTndJQUlBQWdBMm9pQXlBQktRTFlBamNDQUNBQUlBTnFJZ01nQVNrQzRBSTNBZ0FnQUNBRGFpSURJQUVwQXVnQ053SUFJQUFnQTJvaUF5QUJLUUx3QWpjQ0FDQUFJQU5xSUFFcEF2Z0NOd0lBQytnQ0FRVi9Ba0FnQUNBQkVBSWlBdzBBUVFFaEF5QUJJQUVvQWdCQkFXb2lBallDQUNBQ1FTQkxEUUFnQUVFRUVBTWlBa0YvUmcwQUlBRWdBallDQkNBQVFRUVFBeUlDUVg5R0RRQWdBU0FDTmdJSUlBRW9BZ0FFUUFOQUlBQWdBU0FGUVFKMGFpSUNJZ1JCREdvUUFpSUREUUpCQVNFRElBUW9BZ3dpQmtGL1JnMENJQVFnQmtFQmFpSUROZ0lNSUFRZ0F5QUJLQUlFUVFacWREWUNEQ0FBSUFKQmpBRnFFQUlpQXcwQ1FRRWhBeUFDS0FLTUFTSUVRWDlHRFFJZ0FpQUVRUUZxSWdRMkFvd0JJQUlnQkNBQktBSUlRUVJxZERZQ2pBRWdBRUVCRUFNaUJFRi9SZzBDSUFJZ0JFRUJSallDakFJZ0JVRUJhaUlGSUFFb0FnQkpEUUFMQ3lBQVFRVVFBeUlDUVg5R0RRQWdBU0FDUVFGcU5nS01BeUFBUVFVUUF5SUNRWDlHRFFBZ0FTQUNRUUZxTmdLUUF5QUFRUVVRQXlJQ1FYOUdEUUFnQVNBQ1FRRnFOZ0tVQXlBQVFRVVFBeUlBUVg5R0RRQWdBU0FBTmdLWUEwRUFJUU1MSUFNTFd3RURmeUFBSUFBb0FnQWlCQ0FCSUFBb0FnUWlBbkFpQTBFRWRHb2dBU0FEYXlJQlFRaDBhallDRENBQUlBUWdBaUFBS0FJSWJDSUNRUWgwYWlBQlFRWjBhaUFEUVFOMGFpSUJOZ0lRSUFBZ0FTQUNRUVowYWpZQ0ZBdFZBUUovSUFFZ0FrRUJhaUlESUFNZ0FVa2JJUU1nQUNBQ1FRSjBhaWdDQUNFRUEwQUNRQ0FDUVFGcUlnSWdBVThFUUNBRElRSU1BUXNnQUNBQ1FRSjBhaWdDQUNBRVJ3MEJDd3RCQUNBQ0lBRWdBa1liQ3ljQUlBQkJDQ0FBS0FJSUlnQnJFQU5CZjBZRVFBOExRUUFnQUd0QkFuUkJ6RDlxS0FJQUdndDZBUUovSXdCQklHc2lBaVFBSUFJZ0FDZ0NFRFlDRUNBQ0lBQXBBZ2czQXdnZ0FpQUFLUUlBTndNQUFrQWdBaUFDUVJ4cUVBSWlBQTBBSUFJZ0FrRWNhaEFDSWdBTkFDQUNJQUpCSEdvUUFpSUFEUUJCQVNFQUlBSW9BaHdpQTBIL0FVc05BQ0FCSUFNMkFnQkJBQ0VBQ3lBQ1FTQnFKQUFnQUF2bkJ3RVNmeU1BUVlBT2F5SU1KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQTBFQVNBMEFJQUlnQ1dvZ0JFc05BQ0FESUFkcVFRVnFJQVZMRFFBZ0F5RUtEQUVMSUFBZ0RFSEFDbW9nQWlBRElBUWdCU0FKSUFkQkJXb2dDUkFNSUF4QndBcHFJUUFnQ1NFRVFRQWhBZ3NDUUNBSFFRSjJJaFJGRFFBZ0NVVU5BQ0FFUVFGMElSVkJBQ0FFYXlJV1FRRjBJUm9nQkVFQ2RDQUdhMEY3YWlFWElBQWdCQ0FLYkNBQ2Ftb2dCR29pQUNBRVFRVnNhaUVDSUF3Z0NVRUNkQ0lRYWlFRElBbEJBM1FoRFVFQUlBbHJRUUowSVE0Z0NVRURiRUVDZENFUEEwQWdDU0VGQTBBZ0F5QU5haUFBSUJWcUxRQUFJaEVnQWlBVmFpMEFBQ0FDSUFScUxRQUFJZ3NnQWlBYWFpMEFBQ0lTYWlJS2F5QUtRUUowYTJvZ0FpMEFBQ0lZSUFJZ0Ztb3RBQUFpRTJwQkZHeHFOZ0lBSUFNZ0VHb2dBQ0FFYWkwQUFDSVpJQXNnRWlBVGFrRVViR29nRVNBWWFpSUtheUFLUVFKMGEybzJBZ0FnQXlBQUxRQUFJZ3NnR0NBUklCSnFRUlJzYWlBVElCbHFJZ3BySUFwQkFuUnJhallDQUNBRElBNXFJQUFnRm1vdEFBQWdFeUFSSUJscVFSUnNhaUFMSUJKcUlncHJJQXBCQW5ScmFqWUNBQ0FBUVFGcUlRQWdBMEVFYWlFRElBSkJBV29oQWlBRlFYOXFJZ1VOQUFzZ0FpQVhhaUVDSUFBZ0Yyb2hBQ0FESUE5cUlRTWdGRUYvYWlJVURRQUxDeUFIQkVCQkVDQUdheUVRSUFaQkFuWWhDaUFNSUFoQkFuUnFRUWhxSVFBZ0RFRVVhaUVDQTBBZ0NnUkFJQUpCYkdvb0FnQWhCQ0FDUVhCcUtBSUFJUThnQWtGMGFpZ0NBQ0VOSUFKQmVHb29BZ0FoQlNBQ1FYeHFLQUlBSVFNZ0NpRUpBMEFnQVNBQ0tBSUFJZzRnQkNBRElBOXFJZ1JySUFVZ0RXcEJGR3hxSUFSQkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQUlBQW9BZ0JCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlvQWdRaUN5QVBJQU1nQldwQkZHeHFJQTBnRG1vaUJHc2dCRUVDZEd0cVFZQUVha0VLZFVHd0xtb3RBQUFnQUNnQ0JFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FCSUFFZ0FpZ0NDQ0lJSUEwZ0F5QU9ha0VVYkdvZ0JTQUxhaUlFYXlBRVFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlJUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBSWdBU0FDS0FJTUlnWWdCU0FMSUE1cVFSUnNhaUFESUFocUlnUnJJQVJCQW5ScmFrR0FCR3BCQ25WQnNDNXFMUUFBSUFBb0FneEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQXlBQlFRUnFJUUVnQUVFUWFpRUFJQUpCRUdvaEFpQURJUVFnRGlFUElBc2hEU0FJSVFVZ0JpRURJQWxCZjJvaUNRMEFDd3NnQVNBUWFpRUJJQUJCRkdvaEFDQUNRUlJxSVFJZ0IwRi9haUlIRFFBTEN5QU1RWUFPYWlRQUM5RUhBUXgvSXdCQmdBNXJJZzhrQUNBR1FRVnFJUWtDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSmFpQUVTdzBBSUFkQkJXb2lEaUFEYWlBRlN3MEFJQVFoQ1NBRElRb01BUXNnQUNBUFFjQUthaUFDSUFNZ0JDQUZJQWtnQjBFRmFpSU9JQWtRRENBUFFjQUthaUVBUVFBaEFnc0NRQ0FPUlEwQUlBWkJBbllpRWtVTkFDQUpJQVpySVJNZ0FDQUpJQXBzSUFKcWFrRUZhaUVDSUE4aEFBTkFJQUpCZjJvdEFBQWhDU0FDUVg1cUxRQUFJUU1nQWtGOWFpMEFBQ0VGSUFKQmZHb3RBQUFoQ2lBQ1FYdHFMUUFBSVF3Z0VpRU5BMEFnQUNBQ0xRQUFJZ1FnRENBSklBcHFJZ3RySUFNZ0JXcEJGR3hxSUF0QkFuUnJhallDQUNBQUlBSXRBQUVpQ3lBRElBbHFRUlJzSUFwcUlBUWdCV29pQ21zZ0NrRUNkR3RxTmdJRUlBQWdBaTBBQWlJUUlBUWdDV3BCRkd3Z0JXb2dBeUFMYWlJRmF5QUZRUUowYTJvMkFnZ2dBQ0FDTFFBREloUWdCQ0FMYWtFVWJDQURhaUFKSUJCcUlnTnJJQU5CQW5ScmFqWUNEQ0FBUVJCcUlRQWdBa0VFYWlFQ0lBa2hEQ0FFSVFvZ0N5RUZJQkFoQXlBVUlRa2dEVUYvYWlJTkRRQUxJQUlnRTJvaEFpQU9RWDlxSWc0TkFBc0xJQWRCQW5ZaUJ3UkFRY0FBSUFacklSUWdEeUFHUVFKMElnUnFJZ2tnQmtFVWJHb2hBaUFKSUFoQkFtb2dCbXhCQW5ScUlRQWdCa0VEYkVFQ2RDRUZRUUFnQm1zaURrRURkQ0VUSUFaQkEzUWhDQU5BSUFZaEF5QUdCRUFEUUNBQklBZ2dDV29vQWdBaUNpQUNJQWhxS0FJQUlBSWdCR29vQWdBaUVTQUNJQk5xS0FJQUlndHFJZ3hySUF4QkFuUnJhaUFDS0FJQUlnMGdBaUFPUVFKMEloQnFLQUlBSWd4cVFSUnNha0dBQkdwQkNuVkJzQzVxTFFBQUlBQWdDR29vQWdCQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FNQ0FCSUFRZ0NXb29BZ0FpRWlBUklBc2dER3BCRkd4cUlBb2dEV29pRVdzZ0VVRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQWdBQ0FFYWlnQ0FFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FnSUFFZ0NTZ0NBQ0lSSUEwZ0NpQUxha0VVYkdvZ0RDQVNhaUlOYXlBTlFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFCQWdBU0FKSUJCcUtBSUFJQXdnQ2lBU2FrRVViR29nQ3lBUmFpSUtheUFLUVFKMGEycEJnQVJxUVFwMVFiQXVhaTBBQUNBQUlCQnFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBQWdBRUVFYWlFQUlBbEJCR29oQ1NBQlFRRnFJUUVnQWtFRWFpRUNJQU5CZjJvaUF3MEFDd3NnQVNBVWFpRUJJQUFnQldvaEFDQUNJQVZxSVFJZ0JTQUphaUVKSUFkQmYyb2lCdzBBQ3dzZ0QwR0FEbW9rQUF1MEJnRUpmeU1BUWNBRGF5SU5KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQXlBSGFpQUZTdzBBSUFOQkFFZ05BQ0FDSUFscUlBUkxEUUFnQkNFSklBTWhDZ3dCQ3lBQUlBMGdBaUFESUFRZ0JTQUpJQWNnQ1JBTUlBMGhBRUVBSVFJTElBY0VRRUVRSUFacklSQWdDU0FHYXlFUklBWkJBblloRHlBQUlBa2dDbXdnQW1wcVFRVnFJUWtEUUFKQUlBOUZEUUFnQ1VGL2FpMEFBQ0VDSUFsQmZtb3RBQUFoQmlBSlFYMXFMUUFBSVFNZ0NVRjhhaTBBQUNFRklBbEJlMm90QUFBaENpQVBJZ0FoQ3lBSUJFQURRQ0FCSUFZZ0NTMEFBQ0lFSUFvZ0FpQUZhaUlLYXlBRElBWnFRUlJzYWlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlnQ1MwQUFTSUxJQVVnQWlBR2FrRVViR29nQXlBRWFpSUZheUFGUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQVNBQklBUWdDUzBBQWlJTUlBTWdBaUFFYWtFVWJHb2dCaUFMYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBaUFCSUFzZ0NTMEFBeUlPSUFZZ0JDQUxha0VVYkdvZ0FpQU1haUlEYXlBRFFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUF5QUJRUVJxSVFFZ0NVRUVhaUVKSUFJaENpQUVJUVVnQ3lFRElBd2hCaUFPSVFJZ0FFRi9haUlBRFFBTUFnQUxBQXNEUUNBQklBTWdDUzBBQUNJQUlBb2dBaUFGYWlJRWF5QURJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBQ0FCSUFZZ0NTMEFBU0lFSUFVZ0FpQUdha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFTQUJJQUlnQ1MwQUFpSU1JQU1nQUNBQ2FrRVViR29nQkNBR2FpSURheUFEUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQWlBQklBQWdDUzBBQXlJT0lBWWdBQ0FFYWtFVWJHb2dBaUFNYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBeUFCUVFScUlRRWdDVUVFYWlFSklBSWhDaUFBSVFVZ0JDRURJQXdoQmlBT0lRSWdDMEYvYWlJTERRQUxDeUFCSUJCcUlRRWdDU0FSYWlFSklBZEJmMm9pQncwQUN3c2dEVUhBQTJva0FBdkdCQUVMZnlNQVFjQURheUlOSkFBQ1FBSkFJQUpCQUVnTkFDQURRUUJJRFFBZ0FpQUdhaUFFU3cwQUlBTWdCMnBCQldvZ0JVc05BQ0FESVFrTUFRc2dBQ0FOSUFJZ0F5QUVJQVVnQmlBSFFRVnFJQVlRRENBTklRQWdCaUVFUVFBaEFnc2dCMEVDZGlJUUJFQkJ3QUFnQm1zaEVpQUVRUUYwSVFVZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVRJQUFnQkNBSmJDQUNhbW9nQkdvaUFDQUVRUVZzYWlFQ0lBQWdCQ0FJUVFKcWJHb2hCd05BSUFZaEF5QUdCRUFEUUNBQklBQWdCV290QUFBaUNDQUNJQVZxTFFBQUlBSWdCR290QUFBaUNpQUNJQk5xTFFBQUlnbHFJZ3RySUF0QkFuUnJhaUFDTFFBQUlnd2dBaUFQYWkwQUFDSUxha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQVVnQjJvdEFBQnFRUUZxUVFGMk9nQXdJQUVnQUNBRWFpMEFBQ0lSSUFvZ0NTQUxha0VVYkdvZ0NDQU1haUlLYXlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQUlBUWdCMm90QUFCcVFRRnFRUUYyT2dBZ0lBRWdBQzBBQUNJS0lBd2dDQ0FKYWtFVWJHb2dDeUFSYWlJTWF5QU1RUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFJQWN0QUFCcVFRRnFRUUYyT2dBUUlBRWdBQ0FQYWkwQUFDQUxJQWdnRVdwQkZHeHFJQWtnQ21vaUNHc2dDRUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBQ0FISUE5cUxRQUFha0VCYWtFQmRqb0FBQ0FIUVFGcUlRY2dBRUVCYWlFQUlBRkJBV29oQVNBQ1FRRnFJUUlnQTBGL2FpSUREUUFMQ3lBQklCSnFJUUVnQnlBT2FpRUhJQUlnRG1vaEFpQUFJQTVxSVFBZ0VFRi9haUlRRFFBTEN5QU5RY0FEYWlRQUM0OEhBUXgvSUFFb0FnZ2hDeUFCS0FJRUlRWUNRQUpBQWtBZ0FrRUZTdzBBSUFKQkFXc09CQUFBQUFBQkN5QUFLQUs0R2cwQURBRUxJQUJCeEFscUlRUURRQ0FFSUFNUUZDRUhJQU5CRGtzTkFTQURRUUZxSVFNZ0IwVU5BQXNMQWtBQ1FBSkFBa0FnQUNnQ21Ba2lDQVJBSUFBb0Fyd0pJUXBCQUNFRFFRQWhCQU5BSUFvZ0EwSFlBV3hxS0FMRUFVVUVRRUVBSUFSQkFXb2lCQ0FFSUFaR0lnVWJJUVFnQlNBSmFpRUpJQU5CQVdvaUF5QUlTUTBCQ3dzZ0F5QUlSdzBCQ3dKQUFrQWdBa0YrYWlJQ1FRVkxEUUFDUUNBQ1FRRnJEZ1FCQVFFQkFBc2dCMFVOQVNBQUtBSzRHa1VOQVF3REN5QUhEUUlMSUFFb0FnQkJnQUVnQmlBTGJFR0FBMndRQnhvTUFnc2dBQ2dDdkFrZ0JpQUpiRUhZQVd4cUlRZ2dCQVJBSUFRaEF3TkFJQWdnQTBGL2FpSURRZGdCYkdvaUNpQUJJQWtnQXlBQ0lBY1FGaUFLUVFFMkFzUUJJQUFnQUNnQ3RBbEJBV28yQXJRSklBTU5BQXNMSUFSQkFXb2lBeUFHU1FSQUEwQWdDQ0FEUWRnQmJHb2lCQ2dDeEFGRkJFQWdCQ0FCSUFrZ0F5QUNJQWNRRmlBRVFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpDeUFEUVFGcUlnTWdCa2NOQUFzTEFrQWdDVVVOQUNBR1JRMEFRUUFoQlNBSlFYOXFJZ3dnQm13aERTQU1SUVJBQTBBZ0FDZ0N2QWtnRFVIWUFXeHFJQVZCMkFGc2FpSUVJQUZCQUNBRklBSWdCeEFXSUFSQkFUWUN4QUVnQUNBQUtBSzBDVUVCYWpZQ3RBa2dCVUVCYWlJRklBWkhEUUFNQWdBTEFBc2dDVUYrYWlFSVFRQWdCbXRCMkFGc0lRNERRQ0FBS0FLOENTQU5RZGdCYkdvZ0JVSFlBV3hxSWdNZ0FTQU1JQVVnQWlBSEVCWWdBMEVCTmdMRUFTQUFJQUFvQXJRSlFRRnFOZ0swQ1NBSUlRUURRQ0FESUE1cUlnTWdBU0FFSWdvZ0JTQUNJQWNRRmlBRFFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpJQVJCZjJvaEJDQUtEUUFMSUFWQkFXb2lCU0FHUncwQUN3c2dDVUVCYWlJRklBdFBEUUlnQmtVTkFnTkFJQUFvQXJ3SklBVWdCbXhCMkFGc2FpRUlRUUFoQXdOQUlBZ2dBMEhZQVd4cUlnUW9Bc1FCUlFSQUlBUWdBU0FGSUFNZ0FpQUhFQllnQkVFQk5nTEVBU0FBSUFBb0FyUUpRUUZxTmdLMENRc2dBMEVCYWlJRElBWkhEUUFMSUFWQkFXb2lCU0FMUncwQUN3d0NDeUFCS0FJQUlBY2dCaUFMYkVHQUEyd1FGUm9MSUFBZ0FDZ0NtQWtpQVRZQ3RBa2dBVVVOQUNBQUtBSzhDU0VBUVFBaEF3TkFJQUFnQTBIWUFXeHFRUUUyQWdnZ0EwRUJhaUlESUFGSERRQUxDd3MyQVFKL0lBQW9BaWdpQWdSQUEwQWdBQ2dDQkNBQlFRSjBhaUFBS0FJQUlBRkJLR3hxTmdJQUlBRkJBV29pQVNBQ1J3MEFDd3NMOXdRQ0RIOEJma0VISVFVakFFRWdheUlJSVF3RFFDQUZJQUZKQkVBZ0FFRUFJQVZyUVNoc2FpRUtJQVVoQmdOQUlBQWdCa0VvYkdvaUFpZ0NDQ0VKSUFJcEFnQWhEaUFJSUFJcEFndzNBeGdnQWlnQ0dDRU5JQUlvQWhRaEN5QU1JQUlvQWlRMkFoQWdDQ0FDS1FJY053TUlBa0FnQmlJRElBVkpEUUFDUUNBTFJRUkFBMEFnQ2lBRFFTaHNJZ0pxSWdRb0FoUU5BaUFOUlEwQ0lBUW9BaGdOQWlBQUlBSnFJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3lBTFFYOXFRUUZOQkVBRFFBSi9Ba0FnQ2lBRFFTaHNJZ0pxSWdRb0FoUWlCMFVOQUNBSFFYOXFRUUZMRFFBZ0JDZ0NDQ0lISUFsS0RRUWdBQ0FDYWlJRUlBY2dDVWdOQVJvZ0JDRUNEQVVMSUFBZ0Ftb0xJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3dOQUlBb2dBMEVvYkNJQ2FpSUVLQUlVSWdjRVFDQUhRWDlxUVFKSkRRSWdCQ2dDQ0NBSlRBMENDeUFBSUFKcUlnUWdBQ0FESUFWcklnTkJLR3hxSWdJcEFnQTNBZ0FnQkNBQ0tRSWdOd0lnSUFRZ0Fpa0NHRGNDR0NBRUlBSXBBaEEzQWhBZ0JDQUNLUUlJTndJSUlBTWdCVThOQUFzTUFRc2dBQ0FEUVNoc2FpRUNDeUFDSUE0M0FnQWdBQ0FEUVNoc2FpSURJQWsyQWdnZ0NDa0RHQ0VPSUFNZ0RUWUNHQ0FESUFzMkFoUWdBeUFPTndJTUlBTWdDQ2tEQ0RjQ0hDQURJQXdvQWhBMkFpUWdCa0VCYWlJR0lBRkhEUUFMQ3lBRlFRRjJJZ1VOQUFzTHJRVUJBWDhDUUNBQUtBSUFJZ0VvQWhSRkRRQWdBVUVBTmdJVUlBRW9BaGdOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ1BFVU5BQ0FCUVFBMkFqd2dBVUZBYXlnQ0FBMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUprUlEwQUlBRkJBRFlDWkNBQktBSm9EUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQW93QlJRMEFJQUZCQURZQ2pBRWdBU2dDa0FFTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0N0QUZGRFFBZ0FVRUFOZ0swQVNBQktBSzRBUTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMY0FVVU5BQ0FCUVFBMkF0d0JJQUVvQXVBQkRRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9Bb1FDUlEwQUlBRkJBRFlDaEFJZ0FTZ0NpQUlOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ3JBSkZEUUFnQVVFQU5nS3NBaUFCS0FLd0FnMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUxVQWtVTkFDQUJRUUEyQXRRQ0lBRW9BdGdDRFFBZ0FDQUFLQUlzUVg5cU5nSXNDd0pBSUFFb0F2d0NSUTBBSUFGQkFEWUMvQUlnQVNnQ2dBTU5BQ0FBSUFBb0FpeEJmMm8yQWl3TEFrQWdBU2dDcEFORkRRQWdBVUVBTmdLa0F5QUJLQUtvQXcwQUlBQWdBQ2dDTEVGL2FqWUNMQXNDUUNBQktBTE1BMFVOQUNBQlFRQTJBc3dESUFFb0F0QUREUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQXZRRFJRMEFJQUZCQURZQzlBTWdBU2dDK0FNTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0NuQVJGRFFBZ0FVRUFOZ0tjQkNBQktBS2dCQTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMRUJFVU5BQ0FCUVFBMkFzUUVJQUVvQXNnRURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9BdXdFUlEwQUlBRkJBRFlDN0FRZ0FTZ0M4QVFOQUNBQUlBQW9BaXhCZjJvMkFpd0xBMEFnQUJCZVJRMEFDeUFBUVFBMkFqQWdBRUwvL3dNM0FpUUwzUTRCQ1g4Z0FpZ0NBQ0FBS0FJSUlnSW9BZ0JHQkVBZ0FFRUFOZ0kwSUFBb0FqZ2lDMFVoRFFKQUlBRkZCRUFnQWlBRE5nSU1JQUpCQURZQ0ZDQUNJQTAyQWhnZ0FpQUVOZ0lRSUFJZ0F6WUNDQ0FMRFFFZ0FDQUFLQUlzUVFGcU5nSXNEQUVMSUFVRVFDQUFRZ0EzQWhBZ0FCQW9Ba0FnQVNnQ0FFVUVRQ0FBS0FJNFJRMEJDeUFBUWdBM0FoQUxJQUFvQWdnaUFrRURRUUlnQVNnQ0JDSUJHellDRkNBQVFRQkIvLzhESUFFYk5nSWtJQUlnRFRZQ0dDQUNRUUEyQWhBZ0FrSUFOd0lJSUFCQ2dZQ0FnQkEzQWlnTUFRc0NRQUpBQWtBZ0FTZ0NDQVJBUVFBaEN3TkFJQUVnQzBFVWJHb2lDQ2dDRENJQ1FRWkxEUUlDUUFKQUFrQUNRQUpBQWtBQ1FDQUNRUUZyRGdZQUFRSURCQVVKQ3lBQUtBSVlJZ2xGRFFnZ0F5QUlLQUlRYXlFTUlBQW9BZ0FoQ2tFQUlRZ0RRQUpBSUFvZ0NFRW9iR29pQWlnQ0ZFRi9ha0VCVFFSQUlBSW9BZ2dnREVZTkFRc2dDRUVCYWlJSUlBbEhEUUVNQ2dzTElBaEJBRWdOQ0NBQ1FRQTJBaFFnQUNBQUtBSW9RWDlxTmdJb0lBSW9BaGdOQlNBQUlBQW9BaXhCZjJvMkFpd2dDMEVCYWlFTERBWUxJQUFvQWhnaUNVVU5CeUFJS0FJVUlRd2dBQ2dDQUNFS1FRQWhDQU5BQWtBZ0NpQUlRU2hzYWlJQ0tBSVVRUU5HQkVBZ0FpZ0NDQ0FNUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdKQ3dzZ0NFRUFTQTBISUFKQkFEWUNGQ0FBSUFBb0FpaEJmMm8yQWlnZ0FpZ0NHQTBFSUFBZ0FDZ0NMRUYvYWpZQ0xDQUxRUUZxSVFzTUJRc2dBQ2dDSkNJQ1FmLy9BMFlOQmlBQ0lBZ29BaGdpREVrTkJpQUFLQUlZSWdsRkRRWWdDQ2dDRUNFT0lBQW9BZ0FoQ2tFQUlRSURRQUpBQWtBZ0NpQUNRU2hzYWlJSUtBSVVRUU5IRFFBZ0NDZ0NDQ0FNUncwQUlBaEJBRFlDRkNBQUlBQW9BaWhCZjJvMkFpZ2dDQ2dDR0EwQklBQWdBQ2dDTEVGL2FqWUNMQXdCQ3lBQ1FRRnFJZ0lnQ1VjTkFRc0xJQWxCQVNBSlFRRkxHeUVKSUFNZ0Rtc2hEa0VBSVFnRFFBSkFJQW9nQ0VFb2JHb2lBaWdDRkNJUFFYOXFRUUZOQkVBZ0FpZ0NDQ0FPUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdJQ3dzZ0NFRUFTQTBHSUE5QkFra05CaUFDUVFNMkFoUWdBaUFNTmdJSUlBdEJBV29oQ3d3RUN5QUFJQWdvQWh3aUNUWUNKQ0FBS0FJWUlneEZEUUlnQUNnQ0FDRUtRUUFoQWlBSlFmLy9BMFlFUUFOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDRUVBTmdJVUlBQWdBQ2dDS0VGL2FqWUNLQ0FJS0FJWURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQ1FRRnFJZ0lnREVjTkFBd0VBQXNBQ3dOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDQ2dDQ0NBSlRRMEFJQWhCQURZQ0ZDQUFJQUFvQWloQmYybzJBaWdnQ0NnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FrRUJhaUlDSUF4SERRQUxEQUlMSUFBUUtDQUFRUUUyQWpSQkFDRURJQXRCQVdvaEN3d0NDeUFBS0FJa0lnSkIvLzhEUmcwRElBSWdDQ2dDR0NJTVNRMERJQUFvQWhnaUNrVU5BeUFBS0FJQUlRaEJBQ0VDQWtBRFFBSkFJQWdnQWtFb2JHb2lDU2dDRkVFRFJ3MEFJQWtvQWdnZ0RFY05BQ0FKUVFBMkFoUWdBQ0FBS0FJb1FYOXFJZ2cyQWlnZ0NTZ0NHQTBDSUFBZ0FDZ0NMRUYvYWpZQ0xBd0NDeUFDUVFGcUlnSWdDa2NOQUFzZ0FDZ0NLQ0VJQ3lBSUlBcFBEUU1nQUNnQ0NDSUNRUU0yQWhRZ0FpQUVOZ0lRSUFJZ0REWUNDQ0FDSUFNMkFnd2dBaUFBS0FJNFJUWUNHRUVCSVJBZ0FDQUlRUUZxTmdJb0lBQWdBQ2dDTEVFQmFqWUNMQXNnQzBFQmFpRUxEQUFBQ3dBTFFRQWhBaUFBS0FJb0lna2dBQ2dDR0NJTFNRMEJJQWxGQkVCQkFDRUpEQUlMSUFBb0FnQWhERUYvSVFFRFFDQU1JQUpCS0d4cUlnb29BaFJCZjJwQkFVMEVRQ0FLS0FJSUlnb2dDQ0FCUVg5R0lBb2dDRWh5SWdvYklRZ2dBaUFCSUFvYklRRUxJQUpCQVdvaUFpQUpSdzBBQ3lBQlFRQklEUUVnRENBQlFTaHNhaUlCUVFBMkFoUWdBQ0FKUVg5cUlnazJBaWdnQVNnQ0dBMEJJQUFnQUNnQ0xFRi9hallDTEF3QkN5QVFEUUVnQUNnQ0dDRUxJQUFvQWlnaENRc2dDU0FMVHcwQklBQW9BZ2dpQVNBTk5nSVlJQUZCQWpZQ0ZDQUJJQVEyQWhBZ0FTQUROZ0lJSUFFZ0F6WUNEQ0FBSUFsQkFXbzJBaWdnQUNBQUtBSXNRUUZxTmdJc0N3c2dBQ2dDQ0NJQklBYzJBaUFnQVNBR05nSWNJQUVnQlRZQ0pBSkFJQUFvQWpoRkJFQWdBQ2dDTENJSklBQW9BaHdpQTAwTkFTQUFLQUlBSVFRRFFFSC8vLy8vQnlFRlFRQWhCa0VBSVFJRFFDQUVJQUpCS0d4cUlnRW9BaGdFUUNBQklBWWdBU2dDRUNJQklBVklJZ2NiSVFZZ0FTQUZJQWNiSVFVTElBSkJBV29pQWlBRFRRMEFDd0pBSUFaRkRRQWdBQ2dDRENBQUtBSVFJZ0pCQkhScUlnRWdCaWdDQURZQ0FDQUJJQVlvQWlRMkFnd2dBU0FHS0FJY05nSUVJQUVnQmlnQ0lEWUNDQ0FBSUFKQkFXbzJBaEFnQmtFQU5nSVlJQVlvQWhRTkFDQUFJQWxCZjJvaUNUWUNMQXNnQ1NBRFN3MEFDd3dCQ3lBQktBSUFJUUlnQUNnQ0RDQUFLQUlRSWdOQkJIUnFJZ0VnQlRZQ0RDQUJJQUkyQWdBZ0FTQUhOZ0lJSUFFZ0JqWUNCQ0FBSUFOQkFXbzJBaEFnQUNnQ0hDRURDeUFBS0FJQUlBTkJBV29RSndzTDFBc0NBbjhCZmlNQVFaQUJheUlFSkFBZ0JFRUFOZ0lNQWtBQ1FBSkFJQUFvQXBBYVJRMEFJQUFvQXBRYUlBRkhEUUFnQkNBQVFhUWFhaWtDQURjREdDQUFLUUtjR2lFR0lBUkJBRFlDR0NBRUlBWTNBeEFnQkVFQU5nSWdJQVFnQmo0Q0ZDQURJQUFvQXBnYU5nSUFEQUVMUVFNaEJTQUJJQUlnQkVFUWFpQURFR01OQVNBQUlBUXBBeEEzQXB3YUlBQkJyQnBxSUFRb0FpQTJBZ0FnQUVHa0dtb2dCQ2tER0RjQ0FDQURLQUlBSVFJZ0FDQUJOZ0tVR2lBQUlBSTJBcGdhQzBFQUlRVWdBRUVBTmdLUUdpQUVRUkJxSUFSQmlBRnFFRThFUUVFRElRVU1BUXNnQkNnQ2lBRkJmMnBCQzBzTkFDQUVRUkJxSUFSQmlBRnFJQUFnQkVFTWFoQXlJZ0VFUUVFRUlRVWdBVUh3L3dOR0RRRkJBeUVGREFFTEFrQWdCQ2dDREFSQUFrQWdBQ2dDb0FsRkRRQWdBQ2dDRUVVTkFFRURJUVVnQUNnQ3RCb05Bd0pBSUFBb0FxUUpSUVJBSUFCQnhBbHFJZ0lpQVNBQktBSUFJQUVvQWh4QktHeHFJZ0UyQWdnZ0FDQUJLQUlBTmdLNENpQUNFQ1lnQUNBQVFiZ0tha0VBRUNVTUFRc2dBQ0FBUWJnS2FpQUFRZHdLYWlnQ0FCQWxDeUFEUVFBMkFnQWdBRUVBTmdLY0NTQUFRUUUyQXBBYURBSUxJQUJCQURZQ25Ba2dBRUVBTmdLa0NRc2dCQ2dDaUFGQmYyb2lBVUVIU3cwQkFrQUNRQUpBSUFGQkFXc09Cd1FFQkFJRUFBRUNDeUFFUVJCcUlBUkJLR29RUXdSQUlBUW9BbEFRQkNBRVFRQTJBbEFnQkNnQ2ZCQUVJQVJCQURZQ2ZFRURJUVVNQkFzZ0FDQUVRU2hxRURjTUF3c2dCRUVRYWlBRVFTaHFFRXdFUUNBRUtBSThFQVFnQkVFQU5nSThJQVFvQWtBUUJDQUVRUUEyQWtBZ0JDZ0NSQkFFSUFSQkFEWUNSQ0FFS0FKVUVBUWdCRUVBTmdKVVFRTWhCUXdEQ3lBQUlBUkJLR29RTmd3Q0N5QUFLQUtjQ1EwQklBQkJBVFlDb0FrQ1FDQUFLQUtrQ1EwQUlBQkNBRGNDdEFrZ0JFRVFhaUFFUVNocUVDQWFJQUFvQWdnaEFTQUFJQVFvQWlnZ0JDZ0NpQUZCQlVZUU5TSUNCRUFnQUVLQWdvQ0FnQVEzQWdRZ0FFRUFOZ0swR2lBQVFnQTNBZ3hCQlVFRUlBSkIvLzhEUmhzaEJRd0RDeUFCSUFBb0FnaEdEUUFnQUNnQ0VDRUJJQVJCQVRZQ0NDQUFLQUlBSWdKQkgwMEVRQ0FBSUFKQkFuUnFLQUlVSVFVTElBTkJBRFlDQUNBQVFRRTJBcEFhQWtBQ1FBSkFJQVFvQW9nQlFRVkhEUUFnQkVFSWFpQUVRUkJxSUFFZ0FDZ0NEQkE0SUFRb0FnaHlEUUFnQlVVTkFDQUFRZndKYWlnQ0FBMEFJQVVvQWpRZ0FTZ0NORWNOQUNBRktBSTRJQUVvQWpoSERRQWdCU2dDV0NBQktBSllSZzBCQ3lBQVFZQUtha0VBTmdJQURBRUxJQUJCeEFscUVGa0xJQUFnQUNnQ0NEWUNBRUVDSVFVTUFnc2dBQ2dDdEJvRVFFRURJUVVNQWdzZ0JFRVFhaUFBUWJRU2FpSUNJQUFvQWhBZ0FDZ0NEQ0FFUVlnQmFoQStCRUJCQXlFRkRBSUxJQUFvQXFRSlJRUkFBa0FnQkNnQ2lBRkJCVVlOQUNBQVFjUUphaUFBUWNBU2FpZ0NBQ0FFS0FLTUFVRUFSeUFBS0FJUUtBSXdFRnBGRFFCQkF5RUZEQU1MSUFCQnhBbHFJZ0VnQVNnQ0FDQUJLQUljUVNoc2FpSUJOZ0lJSUFBZ0FTZ0NBRFlDdUFvTElBQkIyQXBxSUFKQjNBY1FGU0VCSUFCQkFUWUNwQWtnQUNBRUtRT0lBVGNDMEFvZ0FDZ0NsQWtnQUNnQ0RDQUFRWmdMYWlnQ0FDQUFLQUlRSWdJb0FqUWdBaWdDT0JBL0lBQkJ4QWxxSWdJUUppQUNJQUJCbkF0cUlBQkI1QXBxS0FJQUlBQkJoQXRxS0FJQUVGOEVRRUVESVFVTUFnc2dCRUVRYWlBQUlBQkJ1QXBxSUFFUVFRUkFJQUFnQUNnQzJBb1FRRUVESVFVTUFnc2dBQkF6UlEwQklBQkJBVFlDbkFrTElBQkJ1QXBxSWdFZ0FDZ0N2QWtRU1NBQUVEUWdBRUdFQ21vZ0FDZ0NFQ0FBUWRnS2FpQUFRZEFLYWhCTklRSUNRQ0FBS0FLa0NVVU5BQ0FBUWNRSmFpRURJQUJCMUFwcUtBSUFCRUFnQXlBQVFld01haUFCSUFCQjVBcHFLQUlBSUFJZ0FDZ0MwQXBCQlVZZ0FDZ0N1QWtnQUNnQ3RBa1FLUXdCQ3lBRFFRQWdBU0FBUWVRS2FpZ0NBQ0FDSUFBb0F0QUtRUVZHSUFBb0FyZ0pJQUFvQXJRSkVDa0xJQUJDQURjQ29BbEJBU0VGQ3lBRVFaQUJhaVFBSUFVTHFBd0JDMzhDUUNBQlFRUlBCRUJCQUNBRGF5SU5RUUYwSVFvQ1FDQUFJQU5ySWdVdEFBQWlCaUFBTFFBQUlnaHJJZ0VnQVVFZmRTSUJhaUFCY3lBQ0tBSUVJZ0ZQRFFBZ0FDQUthaTBBQUNJSElBWnJJZ1FnQkVFZmRTSUVhaUFFY3lBQ0tBSUlJZ3hQRFFBZ0FDQURhaTBBQUNJRUlBaHJJZ3NnQzBFZmRTSUxhaUFMY3lBTVR3MEFJQVVnQkNBR2FpQUhRUUYwYWtFQ2FrRUNkam9BQUNBQUlBZ2dCRUVCZEdvZ0IycEJBbXBCQW5ZNkFBQWdBaWdDQkNFQkN3SkFJQUJCQVdvaUJpQU5haUlNTFFBQUlnZ2dBQzBBQVNJSGF5SUVJQVJCSDNVaUJHb2dCSE1nQVU4TkFDQUdJQXBxTFFBQUlnUWdDR3NpQlNBRlFSOTFJZ1ZxSUFWeklBSW9BZ2dpQzA4TkFDQURJQVpxTFFBQUlnVWdCMnNpQ1NBSlFSOTFJZ2xxSUFseklBdFBEUUFnRENBRklBaHFJQVJCQVhScVFRSnFRUUoyT2dBQUlBWWdCeUFGUVFGMGFpQUVha0VDYWtFQ2Rqb0FBQ0FDS0FJRUlRRUxBa0FnQUVFQ2FpSUdJQTFxSWd3dEFBQWlDQ0FBTFFBQ0lnZHJJZ1FnQkVFZmRTSUVhaUFFY3lBQlR3MEFJQVlnQ21vdEFBQWlCQ0FJYXlJRklBVkJIM1VpQldvZ0JYTWdBaWdDQ0NJTFR3MEFJQU1nQm1vdEFBQWlCU0FIYXlJSklBbEJIM1VpQ1dvZ0NYTWdDMDhOQUNBTUlBVWdDR29nQkVFQmRHcEJBbXBCQW5ZNkFBQWdCaUFISUFWQkFYUnFJQVJxUVFKcVFRSjJPZ0FBSUFJb0FnUWhBUXNDUUNBQVFRTnFJZ1lnRFdvaURDMEFBQ0lJSUFBdEFBTWlCMnNpQkNBRVFSOTFJZ1JxSUFSeklBRlBEUUFnQmlBS2FpMEFBQ0lFSUFocklnVWdCVUVmZFNJRmFpQUZjeUFDS0FJSUlndFBEUUFnQXlBR2FpMEFBQ0lGSUFkcklna2dDVUVmZFNJSmFpQUpjeUFMVHcwQUlBd2dCU0FJYWlBRVFRRjBha0VDYWtFQ2Rqb0FBQ0FHSUFjZ0JVRUJkR29nQkdwQkFtcEJBblk2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJCR29pQmlBTmFpSU1MUUFBSWdnZ0FDMEFCQ0lIYXlJRUlBUkJIM1VpQkdvZ0JITWdBVThOQUNBR0lBcHFMUUFBSWdRZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFJb0FnZ2lDMDhOQUNBRElBWnFMUUFBSWdVZ0Iyc2lDU0FKUVI5MUlnbHFJQWx6SUF0UERRQWdEQ0FGSUFocUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFZZ0J5QUZRUUYwYWlBRWFrRUNha0VDZGpvQUFDQUNLQUlFSVFFTEFrQWdBRUVGYWlJR0lBMXFJZ3d0QUFBaUNDQUFMUUFGSWdkcklnUWdCRUVmZFNJRWFpQUVjeUFCVHcwQUlBWWdDbW90QUFBaUJDQUlheUlGSUFWQkgzVWlCV29nQlhNZ0FpZ0NDQ0lMVHcwQUlBTWdCbW90QUFBaUJTQUhheUlKSUFsQkgzVWlDV29nQ1hNZ0MwOE5BQ0FNSUFVZ0NHb2dCRUVCZEdwQkFtcEJBblk2QUFBZ0JpQUhJQVZCQVhScUlBUnFRUUpxUVFKMk9nQUFJQUlvQWdRaEFRc0NRQ0FBUVFacUlnWWdEV29pREMwQUFDSUlJQUF0QUFZaUIyc2lCQ0FFUVI5MUlnUnFJQVJ6SUFGUERRQWdCaUFLYWkwQUFDSUVJQWhySWdVZ0JVRWZkU0lGYWlBRmN5QUNLQUlJSWd0UERRQWdBeUFHYWkwQUFDSUZJQWRySWdrZ0NVRWZkU0lKYWlBSmN5QUxUdzBBSUF3Z0JTQUlhaUFFUVFGMGFrRUNha0VDZGpvQUFDQUdJQWNnQlVFQmRHb2dCR3BCQW1wQkFuWTZBQUFnQWlnQ0JDRUJDeUFOSUFCQkIyb2lEV29pQ0MwQUFDSUdJQUF0QUFjaUFHc2lCeUFIUVI5MUlnZHFJQWR6SUFGUERRRWdDaUFOYWkwQUFDSUJJQVpySWdvZ0NrRWZkU0lLYWlBS2N5QUNLQUlJSWdwUERRRWdBeUFOYWkwQUFDSUNJQUJySWdNZ0EwRWZkU0lEYWlBRGN5QUtUdzBCSUFnZ0FpQUdhaUFCUVFGMGFrRUNha0VDZGpvQUFDQU5JQUFnQWtFQmRHb2dBV3BCQW1wQkFuWTZBQUFQQzBFQUlBTnJJZ2RCQVhRaEJDQUJJQUlvQWdCcVFYOXFMUUFBSWdGQkFXb2hCaUFCUVg5eklRaEJDQ0VCQTBBQ1FDQUFJQWRxSWdVdEFBQWlDaUFBTFFBQUlnMXJJZ3dnREVFZmRTSU1haUFNY3lBQ0tBSUVUdzBBSUFBZ0JHb3RBQUFpRENBS2F5SUxJQXRCSDNVaUMyb2dDM01nQWlnQ0NDSUxUdzBBSUFBZ0Eyb3RBQUFpQ1NBTmF5SU9JQTVCSDNVaURtb2dEbk1nQzA4TkFDQUZJQW9nQ0NBR0lBMGdDbXRCQW5RZ0NXc2dER3BCQkdwQkEzVWlDaUFLSUFaS0d5QUtJQWhJR3lJS2FrR3dMbW90QUFBNkFBQWdBQ0FOSUFwclFiQXVhaTBBQURvQUFBc2dBRUVCYWlFQUlBRkJmMm9pQVEwQUN3c0w2Z2dCQW44Z0FVRUFRYmdIRUFjaEFrRUJJUUVDUUFKQUlBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBZ0FDUUNBRFFRRkhEUUFnQUVFSUVBTWlBMEYvUmcwQklBSWdBellDQkNBRFFmOEJSdzBBSUFCQkVCQURJZ05CZjBZTkFTQUNJQU0yQWdnZ0FFRVFFQU1pQTBGL1JnMEJJQUlnQXpZQ0RBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDRUNBRFFRRkdCRUFnQUVFQkVBTWlBMEYvUmcwQklBSWdBMEVCUmpZQ0ZBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDR0FKQUFrQWdBMEVCUmdSQUlBQkJBeEFESWdOQmYwWU5BeUFDSUFNMkFod2dBRUVCRUFNaUEwRi9SZzBESUFJZ0EwRUJSallDSUNBQVFRRVFBeUlEUVg5R0RRTWdBaUFEUVFGR05nSWtJQU5CQVVjTkFTQUFRUWdRQXlJRFFYOUdEUU1nQWlBRE5nSW9JQUJCQ0JBRElnTkJmMFlOQXlBQ0lBTTJBaXdnQUVFSUVBTWlBMEYvUncwQ0RBTUxJQUpCQlRZQ0hBc2dBa0tDZ0lDQUlEY0NLRUVDSVFNTElBSWdBellDTUNBQVFRRVFBeUlEUVg5R0RRQWdBaUFEUVFGR05nSTBBa0FnQTBFQlJ3MEFJQUFnQWtFNGFoQUNJZ0VOQVNBQ0tBSTRRUVZMRFFJZ0FDQUNRVHhxRUFJaUFRMEJJQUlvQWp4QkJVME5BQXdDQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDUUNBRFFRRkdCRUFnQUJBUElRRWdBRUVnRUFzaEF5QUJSUTBDSUFOQmYwWU5BaUFDSUFFMkFrUWdBQkFQSVFFZ0FFRWdFQXNoQXlBQlJRMENJQU5CZjBZTkFpQUNJQUUyQWtoQkFTRUJJQUJCQVJBRElnTkJmMFlOQVNBQ0lBTkJBVVkyQWt3TElBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBbEFDUUNBRFFRRkdCRUFnQUNBQ1FkUUFhaEFjSWdGRkRRRU1BZ3NnQWtFQk5nSlVJQUpDbUlDQWdJQUROd0xvQXlBQ1FwaUFnSUNBQXpjQzRBTWdBa0dCa0txSkFUWUM0QUVnQWtHQmtLcUpBVFlDWUF0QkFTRUJJQUJCQVJBRElnTkJmMFlOQUNBQ0lBTkJBVVkyQXZBREFrQWdBMEVCUmdSQUlBQWdBa0gwQTJvUUhDSUJSUTBCREFJTElBSkJBVFlDOUFNZ0FrS1lnSUNBZ0FNM0FvZ0hJQUpDbUlDQWdJQUROd0tBQnlBQ1FZRzR1UElBTmdLQUJTQUNRWUc0dVBJQU5nS0FCQXNDUUNBQ0tBSlFSUVJBSUFJb0F2QURSUTBCQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBCSUFJZ0EwRUJSallDa0FjTFFRRWhBU0FBUVFFUUF5SURRWDlHRFFBZ0FpQURRUUZHTmdLVUJ5QUFRUUVRQXlJRFFYOUdEUUFnQWlBRFFRRkdOZ0tZQndKQUlBTkJBVVlFUUNBQVFRRVFBeUlEUVg5R0RRSWdBaUFEUVFGR05nS2NCeUFBSUFKQm9BZHFFQUlpQVEwQ0lBSW9BcUFIUVJCTERRTWdBQ0FDUWFRSGFoQUNJZ0VOQWlBQ0tBS2tCMEVRU3cwRElBQWdBa0dvQjJvUUFpSUJEUUlnQWlnQ3FBZEJFRXNOQXlBQUlBSkJyQWRxRUFJaUFRMENRUUVoQVNBQ0tBS3NCMEVRU3cwQ0lBQWdBa0d3QjJvUUFpSUJEUUlnQUNBQ1FiUUhhaEFDSWdGRkRRRU1BZ3NnQWtFUU5nSzBCeUFDUXBDQWdJQ0FBamNDckFjZ0FrS0JnSUNBZ0FJM0FxUUhJQUpDZ1lDQWdDQTNBcHdIQzBFQUlRRUxJQUVQQzBFQkMwMEJBbjhqQUVFUWF5SURKQUJCQVNFRUFrQWdBQ0FEUVF4cUVBSU5BQ0FES0FJTUlnQkJMMHNOQUNBQlFkQS9RWURBQUNBQ0d5QUFhaTBBQURZQ0FFRUFJUVFMSUFOQkVHb2tBQ0FFQ3o0QkFuOENRQ0FBS0FJTVFRTjBJQUFvQWhCcklnRkZCRUFNQVF0QkFTRUNJQUZCQ0VzTkFFRUJJQUZCZjJwMElBQVFEMEVnSUFGcmRrY1BDeUFDQ3pJQkFuOENRRUdBZ0lEQUFDSUJJQUJ4RFFBRFFDQUNRUUZxSVFJZ0FVRUJkaUlCUlEwQklBQWdBWEZGRFFBTEN5QUNDNG9DQVFkL0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRUNRUUVoQXlBQlFRWlBCRUJCQUNFRElBSWdBVUdRUEdvdEFBQkJmMnAwSVFJTElBQWdBQ2dDQUNJQklBQW9BZ2dpQkdzaUJTQUFLQUlFSWdZZ0FDZ0NEQ0lIYXlJSWF5QUNiQ0FEZFRZQ0RDQUFJQVVnQ0dvZ0Ftd2dBM1UyQWdnZ0FDQUJJQVJxSWdFZ0JpQUhhaUlFYXlBQ2JDQURkVFlDQkNBQUlBRWdCR29nQW13Z0EzVTJBZ0FnQUNBQUtBSWNJZ0VnQUNnQ0ZDSUVhaUlGSUFBb0FoZ2lCaUFBS0FJUUlnZHFJZ2hxSUFKc0lBTjFOZ0lRSUFBZ0JDQUJheUlCSUFjZ0Jtc2lCR29nQW13Z0EzVTJBaGdnQUNBSUlBVnJJQUpzSUFOMU5nSVVJQUFnQkNBQmF5QUNiQ0FEZFRZQ0hBdlBDQUVVZnlBQUlBQW9BaXdpQWlBQUtBSU1JZ1pxSWdVZ0FDZ0NOQ0lFSUFBb0FpQWlFR29pQ21zaUVUWUNMQ0FBS0FJb0lRTWdBQ0FHSUFKcklnY2dFQ0FFYXlJRWF5SUdOZ0lvSUFBb0FpUWhBaUFBSUFRZ0Iyb2lCRFlDSkNBQUlBVWdDbW9pQlRZQ0lDQUFJQUFvQWh3aUNpQUFLQUlJSWdkcUlnZ2dBQ2dDTUNJTUlBQW9BaEFpQ1dvaUMyc2lFRFlDSENBQUtBSVlJUThnQUNBSElBcHJJZ2NnQ1NBTWF5SU1heUlLTmdJWUlBQW9BaFFoQ1NBQUlBY2dER29pQnpZQ0ZDQUFJQWdnQzJvaUNEWUNFQ0FBSUFrZ0FDZ0NBQ0lMYWlJU0lBOGdBQ2dDQkNJTmFpSU9heUlNTmdJTUlBQWdDeUFKYXlJSklBMGdEMnNpQzJzaUR6WUNDQ0FBSUFrZ0Myb2lDVFlDQkNBQUlBNGdFbW9pQ3pZQ0FDQUFJQUlnQUNnQ09DSU5haUlUSUFNZ0FDZ0NQQ0lPYWlJVWF5SVNOZ0k4SUFBZ0FpQU5heUlDSUFNZ0Rtc2lBMnNpRFRZQ09DQUFJQUlnQTJvaURqWUNOQ0FBSUJNZ0ZHb2lFellDTUNBQlFaQThhaTBBQUNFQ0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRURJQUZCREU4RVFDQUFJQU1nQWtGK2FuUWlBU0FGSUF0cUlnTWdDQ0FUYWlJQ2EydzJBakFnQUNBTElBVnJJZ1VnQ0NBVGF5SUlheUFCYkRZQ0lDQUFJQVVnQ0dvZ0FXdzJBaEFnQUNBQ0lBTnFJQUZzTmdJQUlBQWdCQ0FKYWlJRElBY2dEbW9pQW1zZ0FXdzJBalFnQUNBSklBUnJJZ1FnQnlBT2F5SUZheUFCYkRZQ0pDQUFJQVFnQldvZ0FXdzJBaFFnQUNBQ0lBTnFJQUZzTmdJRUlBQWdCaUFQYWlJRElBb2dEV29pQW1zZ0FXdzJBamdnQUNBUElBWnJJZ1lnQ2lBTmF5SUVheUFCYkRZQ0tDQUFJQVFnQm1vZ0FXdzJBaGdnQUNBQ0lBTnFJQUZzTmdJSUlBQWdEQ0FSYXlJRElCQWdFbXNpQW1zZ0FXdzJBaXdnQUNBQ0lBTnFJQUZzTmdJY0lBQWdFQ0FTYWlJRElBd2dFV29pQW1vZ0FXdzJBZ3dnQUNBQ0lBTnJJQUZzTmdJOER3c2dBRUVCUVFJZ0FVRjZha0VHU1JzaUFTQUZJQXRxSWhRZ0NDQVRhaUlWYXlBRGJHcEJBaUFDYXlJQ2RUWUNNQ0FBSUFzZ0JXc2lCU0FJSUJOcklnaHJJQU5zSUFGcUlBSjFOZ0lnSUFBZ0JTQUlhaUFEYkNBQmFpQUNkVFlDRUNBQUlCUWdGV29nQTJ3Z0FXb2dBblUyQWdBZ0FDQUVJQWxxSWdVZ0J5QU9haUlJYXlBRGJDQUJhaUFDZFRZQ05DQUFJQWtnQkdzaUJDQUhJQTVySWdkcklBTnNJQUZxSUFKMU5nSWtJQUFnQkNBSGFpQURiQ0FCYWlBQ2RUWUNGQ0FBSUFVZ0NHb2dBMndnQVdvZ0FuVTJBZ1FnQUNBR0lBOXFJZ1FnQ2lBTmFpSUZheUFEYkNBQmFpQUNkVFlDT0NBQUlBOGdCbXNpQmlBS0lBMXJJZ3BySUFOc0lBRnFJQUoxTmdJb0lBQWdCaUFLYWlBRGJDQUJhaUFDZFRZQ0dDQUFJQVFnQldvZ0Eyd2dBV29nQW5VMkFnZ2dBQ0FNSUJGcklnWWdFQ0FTYXlJRWF5QURiQ0FCYWlBQ2RUWUNMQ0FBSUFRZ0Jtb2dBMndnQVdvZ0FuVTJBaHdnQUNBUUlCSnFJZ1lnRENBUmFpSVJhaUFEYkNBQmFpQUNkVFlDRENBQUlCRWdCbXNnQTJ3Z0FXb2dBblUyQWp3THZRVUJCbjhqQUVFZ2F5SUZKQUFnQTBFQU5nSUFBa0FnQVNnQ0FDSUdRUkpMRFFCQkFTQUdkQ0lHUWNEZkgzRkZCRUFnQmtFaWNVVU5BU0FDUWJRS2FpZ0NBQVJBSUFOQkFUWUNBQ0FDUVFBMkFyUUtDeUFBSUFWQkhHb1FJQ0lFRFFGQjhQOERJUVFnQWlBRktBSWNRUUowYWlnQ2xBRWlDRVVOQVNBQ0lBZ29BZ1FpQmtFQ2RHb29BaFFpQjBVTkFRSkFJQUlvQWdnaUNVRWdSZzBBSUFZZ0NVWU5BQ0FCS0FJQVFRVkhEUUlMQWtBZ0FrR1lDbW9vQWdBaUJDQUJLQUlFSWdaR0RRQWdCRUVBSUFZYkRRQWdBMEVCTmdJQUN5QUJLQUlBSVFRQ1FBSkFJQUlvQXBRS1FRVkdCRUFnQkVFRlJ3MEJEQUlMSUFSQkJVY05BUXNnQTBFQk5nSUFDMEVCSVFRZ0FDQUhLQUlNSUFWQkdHb1FQUTBCSUFVb0FoZ2lCaUFDUVp3S2FpZ0NBRWNFUUNBQ0lBWTJBcHdLSUFOQkFUWUNBQXNnQVNnQ0FFRUZSZ1JBSUFBZ0J5Z0NEQ0FGUVJScUVEd05BZ0pBSUFJb0FwUUtRUVZIQkVBZ0JTZ0NGQ0VFREFFTElBSkJvQXBxS0FJQUlnUWdCU2dDRkNJR1JnMEFJQU5CQVRZQ0FDQUdJUVFMSUFKQm9BcHFJQVEyQWdBTEFrQWdCeWdDRUNJRVFRRkxEUUFnQkVFQmF3UkFRUUVoQkNBQUlBY2dBU2dDQUNBRlFRaHFFRHNOQXlBRktBSUlJZ1FnQWtHa0Ntb29BZ0JIQkVBZ0FpQUVOZ0trQ2lBRFFRRTJBZ0FMSUFnb0FnaEZEUUVnQUNBSElBRW9BZ0FnQlVFUWFoQTZJZ1FOQXlBRktBSVFJZ0FnQWtHb0Ntb29BZ0JHRFFFZ0FpQUFOZ0tvQ2lBRFFRRTJBZ0FNQVFzZ0J5Z0NHQTBBSUFBZ0J5QUJLQUlBSUFnb0FnZ2dCVUVJYWhBNUlnUU5BaUFGS0FJSUlnQWdBa0dzQ21vb0FnQkhCRUFnQWlBQU5nS3NDaUFEUVFFMkFnQUxJQWdvQWdoRkRRQWdCU2dDRENJQUlBSkJzQXBxS0FJQVJnMEFJQUlnQURZQ3NBb2dBMEVCTmdJQUN5QUNJQUVwQWdBM0FwUUtRUUFoQkF3QkN5QURRUUUyQWdBTElBVkJJR29rQUNBRUMzOEJBMzhDUUFKQUFrQWdBRUg4Q21vb0FnQUVRQ0FBS0FLWUNTSUREUUZCQVE4TFFRRWhBU0FBUWF3SmFpZ0NBQ0FBS0FLWUNVY05BUXdDQ3lBQUtBSzhDU0VCUVFBaEFBTkFJQUlnQVNBQVFkZ0JiR29vQXNRQlFRQkhhaUVDSUFCQkFXb2lBQ0FEUncwQUMwRUJJUUVnQWlBRFJnMEJDMEVBSVFFTElBRUxTZ0VEZnlBQVFnQTNBcWdKSUFBb0FwZ0pJZ0VFUUNBQUtBSzhDU0VDUVFBaEFBTkFJQUlnQUVIWUFXeHFJZ05CQURZQ3hBRWdBMEVBTmdJRUlBQkJBV29pQUNBQlJ3MEFDd3NMZ3dZQkRIOUJBU0VHQWtBZ0FDQUJRUUowYWlnQ2xBRWlCRVVOQUNBQUlBUW9BZ1FpQ1VFQ2RHb2lDa0VVYWlnQ0FDSURSUTBBQWtBZ0JDZ0NEQ0lGUVFKSkRRQWdBeWdDTkNJSElBTW9BamhzSVFnQ1FDQUVLQUlRSWdOQkFrc05BQUpBQWtBQ1FDQURRUUZyRGdJREFBRUxJQVZCZjJvaEN5QUVLQUljSVF3Z0JDZ0NHQ0VOUVFBaEF3d0JDeUFFS0FJVUlRZEJBQ0VEQTBBZ0J5QURRUUowYWlnQ0FDQUlUUVJBSUFVZ0EwRUJhaUlEUncwQkRBUUxDMEVCRHdzRFFDQU5JQU5CQW5RaUJXb29BZ0FpRGlBRklBeHFLQUlBSWdWTERRTWdCU0FJVHcwRElBNGdCM0FnQlNBSGNFMEVRQ0FEUVFGcUlnTWdDMFlOQXd3QkN3dEJBUThMSUFOQmZXcEJBazBFUUNBRUtBSWtJQWhORFFFTUFnc2dBMEVHUncwQUlBUW9BaWdnQ0VrTkFRc0NRQ0FBS0FJRUlnTkJnQUpHQkVBZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQW9BclFhQkVBZ0FFRUFOZ0swR2lBQUtBSzhDUkFFSUFCQkFEWUN2QWtnQUNnQ2xBa1FCQ0FBSUFBb0FwZ0pJZ0ZCMkFGc0lnUVFDaUlDTmdLOENTQUFJQUZCQW5RUUNpSUROZ0tVQ1VILy93TWhCaUFDUlEwQ0lBTkZEUUlnQWtFQUlBUVFCeUFBS0FJUUtBSTBJQUVRVGlBQUtBSVFJUUZCQVNFQ0FrQWdBQ2dDd0FrTkFDQUJLQUlRUVFKR0RRQUNRQ0FCS0FKUVJRMEFJQUVvQWxRaUJDZ0NtQWRGRFFBZ0JDZ0NzQWRGRFFFTFFRQWhBZ3NnQUVIRUNXb2dBU2dDT0NBQktBSTBiQ0FCS0FKWUlBRW9BaXdnQVNnQ0RDQUNFRndpQmtVTkFRd0NDeUFCSUFOR0RRQWdBQ2dDQ0NBSlJ3UkFJQUpGRFFJZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQWdCRFlDRENBQUlBRTJBZ1FMUVFBaEJnc2dCZ3UyQVFFRGZ3SkFJQUFnQVNnQ0FDSURRUUowYWlJQ0tBS1VBU0lFUlFSQUlBSkJ5QUFRQ2lJQU5nS1VBU0FBRFFFUEN3SkFJQU1nQUNnQ0JFY05BQ0FCS0FJRUlBQW9BZ2hHRFFBZ0FFR0JBallDQkFzZ0JDZ0NGQkFFSUFJb0FwUUJRUUEyQWhRZ0FpZ0NsQUVvQWhnUUJDQUNLQUtVQVVFQU5nSVlJQUlvQXBRQktBSWNFQVFnQWlnQ2xBRkJBRFlDSENBQ0tBS1VBU2dDTEJBRUlBSW9BcFFCUVFBMkFpd0xJQUlvQXBRQklBRkJ5QUFRRlJvTDFnRUJBMzhDUUNBQUlBRW9BZ2dpQTBFQ2RHb2lBaWdDRkNJRVJRUkFJQUpCM0FBUUNpSUFOZ0lVSUFBTkFROExJQUFvQWdnZ0EwWUVRQ0FCSUFBb0FoQVFRZ1JBSUFJb0FoUW9BaWdRQkNBQ0tBSVVRUUEyQWlnZ0FpZ0NGQ2dDVkJBRUlBSW9BaFJCQURZQ1ZDQUFRUUEyQWhBZ0FFR0JBallDQkNBQVFpRTNBZ2dNQWdzZ0FTZ0NLQkFFSUFGQkFEWUNLQ0FCS0FKVUVBUWdBVUVBTmdKVUR3c2dCQ2dDS0JBRUlBSW9BaFJCQURZQ0tDQUNLQUlVS0FKVUVBUWdBaWdDRkVFQU5nSlVDeUFDS0FJVUlBRkIzQUFRRlJvTDBnSUJBMzhqQUVFZ2F5SUVKQUFnQkNBQktBSVFOZ0lRSUFRZ0FTa0NDRGNEQ0NBRUlBRXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUJEUUFnQkNBRVFSeHFFQUlpQVEwQUlBUWdCRUVjYWhBQ0lnRU5BQ0FDS0FJTUlRWkJBQ0VCQTBBZ0FTSUZRUUZxSVFFZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQVF3QkN5QUVJQVJCSEdvUUFpSUJEUUFDUUNBQ0tBSVFJZ0VFZnlBQkJTQUNLQUlVSVFaQkFDRUJBMEFnQVNJRlFRRnFJUUVnQmlBRmRnMEFDeUFFSUFWQmYyb1FBMEYvUmdSQVFRRWhBUXdEQ3lBREtBSUlCRUFnQkNBRVFSaHFFQVVpQVEwREN5QUNLQUlRQzBFQlJ3MEFJQUlvQWhnTkFDQUVJQVJCR0dvUUJTSUJEUUVnQXlnQ0NFVU5BQ0FFSUFSQkdHb1FCU0lCRFFFTElBTW9Ba1FFUUNBRUlBUkJIR29RQWlJQkRRRUxJQUFnQkVFQkVBTWlBRFlDQUNBQVFYOUdJUUVMSUFSQklHb2tBQ0FCQzhZQkFRSi9Jd0JCSUdzaUJTUUFJQVVnQUNnQ0VEWUNFQ0FGSUFBcEFnZzNBd2dnQlNBQUtRSUFOd01BQWtBZ0JTQUZRUnhxRUFJaUFBMEFJQVVnQlVFY2FoQUNJZ0FOQUNBRklBVkJIR29RQWlJQURRQWdBU2dDRENFR1FRQWhBQU5BSUFBaUFVRUJhaUVBSUFZZ0FYWU5BQXNnQlNBQlFYOXFFQU5CZjBZRVFFRUJJUUFNQVFzZ0FrRUZSZ1JBSUFVZ0JVRWNhaEFDSWdBTkFRc2dCU0FFRUFVaUFBMEFJQU1FUUNBRklBUkJCR29RQlNJQURRRUxRUUFoQUFzZ0JVRWdhaVFBSUFBTDRRRUJBMzhqQUVFZ2F5SUVKQUFnQkNBQUtBSVFOZ0lRSUFRZ0FDa0NDRGNEQ0NBRUlBQXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUFEUUFnQkNBRVFSeHFFQUlpQUEwQUlBUWdCRUVjYWhBQ0lnQU5BQ0FCS0FJTUlRWkJBQ0VBQTBBZ0FDSUZRUUZxSVFBZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUNRUVZHQkVBZ0JDQUVRUnhxRUFJaUFBMEJDeUFCS0FJVUlRSkJBQ0VBQTBBZ0FDSUJRUUZxSVFBZ0FpQUJkZzBBQ3lBRUlBRkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUVJQU1RQlNFQUN5QUVRU0JxSkFBZ0FBdm1BUUVEZnlNQVFTQnJJZ1FrQUNBRUlBQW9BaEEyQWhBZ0JDQUFLUUlJTndNSUlBUWdBQ2tDQURjREFBSkFJQVFnQkVFY2FoQUNJZ0FOQUNBRUlBUkJIR29RQWlJQURRQWdCQ0FFUVJ4cUVBSWlBQTBBSUFFb0Fnd2hCa0VBSVFBRFFDQUFJZ1ZCQVdvaEFDQUdJQVYyRFFBTElBUWdCVUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQUpCQlVZRVFDQUVJQVJCSEdvUUFpSUFEUUVMSUFFb0FoUWhBa0VBSVFBRFFDQUFJZ0ZCQVdvaEFDQUNJQUYyRFFBTElBUWdBVUYvYWhBRElnQkJmMFlFUUVFQklRQU1BUXNnQXlBQU5nSUFRUUFoQUFzZ0JFRWdhaVFBSUFBTGtnRUJBbjhqQUVFZ2F5SURKQUFnQXlBQUtBSVFOZ0lRSUFNZ0FDa0NBRGNEQUNBRElBQXBBZ2czQXdnQ1FDQURJQU5CSEdvUUFpSUFEUUFnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BRUVBSVFBRFFDQUFJZ1JCQVdvaEFDQUJJQVIyRFFBTElBTWdCRUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQU1nQWhBQ0lRQUxJQU5CSUdva0FDQUFDNWNCQVFKL0l3QkJJR3NpQXlRQUlBTWdBQ2dDRURZQ0VDQURJQUFwQWdnM0F3Z2dBeUFBS1FJQU53TUFBa0FnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BQ0FESUFOQkhHb1FBaUlBRFFCQkFDRUFBMEFnQUNJRVFRRnFJUUFnQVNBRWRnMEFDeUFESUFSQmYyb1FBeUlBUVg5R0JFQkJBU0VBREFFTElBSWdBRFlDQUVFQUlRQUxJQU5CSUdva0FDQUFDNjhPQVFwL0l3QkJFR3NpQlNRQUlBRkJBRUhjQnhBSElRY2dBaWdDTkNFR0lBSW9BamdoQ0FKQUlBQWdCVUVFYWhBQ0lnRU5BQ0FISUFVb0FnUWlBVFlDQUNBQklBWWdDR3dpQzA4RVFFRUJJUUVNQVFzZ0FDQUZRUVJxRUFJaUFRMEFJQWNnQlNnQ0JDSUdOZ0lFSUFaQkIwc0VRRUVCSVFFTUFRdEJBU0VCQWtBQ1FDQUdRUUZyRGdjQ0FRSUNBQUlCQUFzZ0JDZ0NBRUVGUmdSQURBSUxJQUlvQWl3TkFBd0JDeUFBSUFWQkJHb1FBaUlCRFFBZ0J5QUZLQUlFSWdZMkFnaEJBU0VCSUFZZ0F5Z0NBRWNOQUNBQ0tBSU1JUWhCQUNFQkEwQWdBU0lHUVFGcUlRRWdDQ0FHZGcwQUMwRUJJUUVnQUNBR1FYOXFFQU1pQmtGL1JnMEFJQVpCQUNBRUtBSUFJZ2hCQlVZYkRRQWdCeUFHTmdJTUlBaEJCVVlFUUNBQUlBVkJCR29RQWlJQkRRRWdCeUFGS0FJRUlnWTJBaEJCQVNFQklBWkIvLzhEU3cwQkN3SkFJQUlvQWhBaUFRUi9JQUVGSUFJb0FoUWhDRUVBSVFFRFFDQUJJZ1pCQVdvaEFTQUlJQVoyRFFBTElBQWdCa0YvYWhBRElnRkJmMFlFUUVFQklRRU1Bd3NnQnlBQk5nSVVJQU1vQWdnRVFDQUFJQVVRQlNJQkRRTWdCeUFGS0FJQU5nSVlDeUFFS0FJQVFRVkdCRUJCQVNFQklBY29BaFFpQmlBQ0tBSVVRUUYyU3cwRElBWkJBQ0FIS0FJWUlnaEJIM1VnQ0hGclJ3MERDeUFDS0FJUUMwRUJSdzBBSUFJb0FoZ05BQ0FBSUFVUUJTSUJEUUVnQnlBRktBSUFOZ0ljSUFNb0FnZ0VRQ0FBSUFVUUJTSUJEUUlnQnlBRktBSUFOZ0lnQ3lBRUtBSUFRUVZIRFFCQkFTRUJJQWNvQWh3aUJpQUhLQUlnSUFZZ0FpZ0NJR3BxSWdnZ0JpQUlTQnNOQVFzZ0F5Z0NSQVJBSUFBZ0JVRUVhaEFDSWdFTkFTQUhJQVVvQWdRaUJqWUNKRUVCSVFFZ0JrSC9BRXNOQVFzQ1FDQUhLQUlFSWdGQkJVc05BQUpBSUFGQkFXc09CQUVCQVFFQUMwRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDS0FKQUlBWUVRQ0FBSUFWQkJHb1FBaUlCRFFOQkFTRUJJQVVvQWdRaUJrRVBTdzBESUFaQkFXb2hCZ3dCQ3lBREtBSXdJZ1pCRUVzTkFnc2dCeUFHTmdJc0lBY29BZ1FoQVFzQ1FDQUJRUVZMRFFBQ1FDQUJRUUZyRGdRQkFRRUJBQXNnQWlnQ0RDRUpJQWNvQWl3aENrRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDUkNBR1JRMEFRUUFoQVFOQUlBRWlCaUFLU3dSQVFRRWhBUXdEQ3lBQUlBVkJDR29RQWlJQkRRSWdCU2dDQ0NJQlFRTkxCRUJCQVNFQkRBTUxJQWNnQmtFTWJHb2lDQ0FCTmdKSUFrQWdBVUVCVFFSQUlBQWdCVUVNYWhBQ0lnRU5CQ0FGS0FJTUlnRWdDVThFUUVFQklRRU1CUXNnQ0NBQlFRRnFOZ0pNREFFTElBRkJBa2NOQUNBQUlBVkJER29RQWlJQkRRTWdDQ0FGS0FJTU5nSlFDeUFHUVFGcUlRRWdCU2dDQ0VFRFJ3MEFDMEVCSVFFZ0JrVU5BUXNDUUNBRUtBSUVSUTBBSUFRb0FnQWhCQ0FDS0FJc0lRbEJBU0VCSUFCQkFSQURJUUlnQkVFRlJnUkFJQUpCZjBZTkFpQUhJQUkyQXBRQ0lBQkJBUkFESWdKQmYwWU5BaUFISUFJMkFwZ0NJQWtOQVNBQ1JRMEJEQUlMSUFKQmYwWU5BU0FISUFJMkFwd0NJQUpGRFFBZ0NVRUJkRUVEYWlFT1FRQWhCa0VBSVFwQkFDRUVBMEFnQmlBT1JnUkFRUUVoQVF3REN5QUFJQVZCQ0dvUUFpSUJEUUlnQlNnQ0NDSUNRUVpMQkVCQkFTRUJEQU1MSUFjZ0JrRVViR29pQ0NBQ05nS2dBZ0ovSUFKQkFuSkJBMFlFUUNBQUlBVkJER29RQWlJQkRRUWdDQ0FGS0FJTVFRRnFOZ0trQWlBRktBSUlJUUlMSUFKQkFrWUxCRUFnQUNBRlFReHFFQUlpQVEwRElBZ2dCU2dDRERZQ3FBSWdCU2dDQ0NFQ0N3SkFJQUpCZldvaUFVRURTdzBBQWtBZ0FVRUJhdzRDQVFFQUN5QUFJQVZCREdvUUFpSUJEUU1nQ0NBRktBSU1OZ0tzQWlBRktBSUlJUUlMSUFKQkJFWUVRQ0FBSUFWQkRHb1FBaUlCRFFNZ0JTZ0NEQ0lCSUFsTEJFQkJBU0VCREFRTElBZ2dBVUYvYWtILy93TWdBUnMyQXJBQ0lBcEJBV29oQ2lBRktBSUlJUUlMSUFaQkFXb2hCaUFNSUFKQkJrWnFJUXdnQkNBQ1FRVkdhaUVFSUEwZ0FrRi9ha0VEU1dvaERTQUNEUUFMUVFFaEFTQUVJQXB5SUF4eVFRRkxEUUVnQkVVTkFDQU5EUUVMSUFBZ0JSQUZJZ0VOQUNBSElBVW9BZ0FpQVRZQ01DQUZJQUVnQXlnQ05Hb2lBallDQUVFQklRRWdBa0V6U3cwQUFrQWdBeWdDUEVVTkFDQUFJQVZCQkdvUUFpSUJEUUVnQnlBRktBSUVJZ0kyQWpSQkFTRUJJQUpCQWtzTkFTQUNRUUZHRFFBZ0FDQUZFQVVpQVEwQlFRRWhBU0FGS0FJQUlnSkJCbXBCREVzTkFTQUhJQUpCQVhRMkFqZ2dBQ0FGRUFVaUFRMEJRUUVoQVNBRktBSUFJZ0pCQm1wQkRFc05BU0FISUFKQkFYUTJBandMQWtBZ0F5Z0NERUVDU1EwQUlBTW9BaEJCZldwQkFrc05BRUVDUVFFZ0N5QUxJQU1vQWlRaUFXNGlBaUFCYkdzYklBSnFJUVJCQUNFQ0EwQWdCQ0FDSWdGQkFXb2lBbllOQUFzZ0JTQUFJQUlnQVNBRVFYOGdBWFJCZjNOeEd4QURJZ0EyQWdSQkFTRUJJQUJCZjBZTkFTQUhJQUEyQWtBZ0FDQUxJQU1vQWlRaUFHcEJmMm9nQUc1TERRRUxRUUFoQVFzZ0JVRVFhaVFBSUFFTHdRa0JEWDhnQXlBRWJDRUZJQUVvQWd3aUNVRUJSZ1JBSUFCQkFDQUZRUUowRUFjYUR3c0NRQUpBQWtBQ1FDQUJLQUlRSWdaQmZXcEJBazBFUUNBQktBSWtJQUpzSWdJZ0JTQUNJQVZKR3lFTElBWkJmbkZCQkVjTkFTQUZJQXRySUFzZ0FTZ0NJQnNoQndzQ1FBSkFBa0FnQmtFRlRRUkFJQVpCQVdzT0JRWUZCQU1DQVFzZ0JVVU5CaUFCS0FJc0lRSkJBQ0VCQTBBZ0FDQUJRUUowSWdOcUlBSWdBMm9vQWdBMkFnQWdBVUVCYWlJQklBVkhEUUFMREFZTEFrQWdDUVJBSUFFb0FoUWhBa0VBSVFZTUFRc2dCVVVOQmdOQURBQUFDd0FMQTBCQkFDRUVJQVlnQlU4TkJnTkFRUUFoQndKQUlBSWdCRUVDZEdvaUF5Z0NBQ0lCUlEwQUlBRWhCeUFGSUFaTkRRQkJBQ0VCUVFBZ0JTQUdheUlISUFjZ0JVc2JJUWdEUUNBQUlBRWdCbXBCQW5ScUlBUTJBZ0FnQVVFQmFpSUJJQU1vQWdBaUIwOE5BU0FCSUFoSERRQUxDeUFFUVFGcUlnUWdDVWxCQUNBR0lBZHFJZ1lnQlVrYkRRQUxJQVlnQlVrTkFBc01CUXNnQTBVTkJDQUVSUTBFUVFFZ0FTZ0NJQ0lKYXlFSVFRQWhCVUVBSVFJRFFFRUFJUUVnQlNFR0EwQWdBQ0FCSUFOc0lBSnFRUUowYWlBSklBZ2dCaUFIU1JzMkFnQWdCa0VCYWlFR0lBRkJBV29pQVNBRVJ3MEFDeUFFSUFWcUlRVWdBa0VCYWlJQ0lBTkhEUUFMREFRTElBVkZEUU5CQVNBQktBSWdJZ0pySVFOQkFDRUJBMEFnQUNBQlFRSjBhaUFDSUFNZ0FTQUhTUnMyQWdBZ0FVRUJhaUlCSUFWSERRQUxEQU1MSUFFb0FpQWhBaUFGQkVCQkFDRUJBMEFnQUNBQlFRSjBha0VCTmdJQUlBRkJBV29pQVNBRlJ3MEFDd3NnQzBVTkFpQURRWDlxSVE4Z0JFRi9haUVRSUFKQmYyb2hCa0VCSUFKQkFYUWlBV3NoQlNBQlFYOXFJUWtnQkNBQ2EwRUJkaUlLSVF3Z0F5QUNhMEVCZGlJTklRUWdDaUVJSUEwaEFVRUFJUWNEUUNBQUlBTWdDR3dnQVdwQkFuUnFJZzRvQWdBaUVVRUJSZ1JBSUE1QkFEWUNBQXNnRVVFQlJpRU9Ba0FDUUNBR1FYOUhEUUFnQVNBRVJ3MEFRUUFoQmlBSklRSWdCRUVCSUFSQkFVb2JRWDlxSWdFaEJBd0JDd0pBSUFaQkFVY05BQ0FCSUExSERRQkJBQ0VHSUFVaEFpQU5RUUZxSWdFZ0R5QUJJQTlJR3lJQklRME1BUXNDUUNBQ1FYOUhEUUFnQ0NBTVJ3MEFRUUFoQWlBRklRWWdERUVCSUF4QkFVb2JRWDlxSWdnaERBd0JDd0pBSUFKQkFVY05BQ0FJSUFwSERRQkJBQ0VDSUFraEJpQUtRUUZxSWdnZ0VDQUlJQkJJR3lJSUlRb01BUXNnQWlBSWFpRUlJQUVnQm1vaEFRc2dCeUFPYWlJSElBdEpEUUFMREFJTElBRW9BaHdoQnlBQktBSVlJUWdnQlFSQUlBbEJmMm9oQWtFQUlRRURRQ0FBSUFGQkFuUnFJQUkyQWdBZ0FVRUJhaUlCSUFWSERRQUxJQUpGRFFJTElBbEJmbW9oQVFOQUFrQWdDQ0FCSWdSQkFuUWlBV29vQWdBaUJpQURiaUlDSUFFZ0Iyb29BZ0FpQVNBRGJpSUZTdzBBSUFZZ0FpQURiR3NpQmlBQklBTWdCV3hySWdsTEJFQURRQ0FDUVFGcUlnSWdCVTBOQUF3Q0FBc0FDd05BSUFJZ0Eyd2hDaUFHSVFFRFFDQUFJQUVnQ21wQkFuUnFJQVEyQWdBZ0FVRUJhaUlCSUFsTkRRQUxJQUpCQVdvaUFpQUZUUTBBQ3dzZ0JFRi9haUVCSUFRTkFBc01BUXNnQlVVTkFFRUFJUUVEUUNBQUlBRkJBblJxSUFFZ0EyNGlBaUFKYkVFQmRpQUJJQUlnQTJ4cmFpQUpjRFlDQUNBQlFRRnFJZ0VnQlVjTkFBc0xDOFFCQVFWL0lBQW9BcWdKSVFRQ1FDQUFRYkFKYWlnQ0FDSUNSUTBBSUFKQmYyb2lBaUFCVFFSQUlBSWhBUXdCQ3lBQUtBSzhDU0VGQTBBQ1FDQUZJQUpCMkFGc2FpZ0NCQ0FFUncwQUlBTkJBV29pQXlBQUtBSVFLQUkwSWdaQkNpQUdRUXBMRzBrTkFDQUNJUUVNQWdzZ0FrRi9haUlDSUFGTERRQUxDd05BQWtBZ0FDZ0N2QWtnQVVIWUFXeHFJZ0lvQWdRZ0JFY05BQ0FDS0FMRUFTSURSUTBBSUFJZ0EwRi9hallDeEFFZ0FDZ0NsQWtnQUNnQ21Ba2dBUkFlSWdFTkFRc0xDNzBFQWd0L0FYNGpBRUhBQTJzaUJTUUFJQU1vQWdBaEJ5QUJLQUt3R2lFSUlBVkJBRFlDRENBQlFiQUpha0VBTmdJQUlBRWdBU2dDcUFsQkFXbzJBcWdKSUFVZ0F5Z0NNQ0FCS0FJTUtBSTBhallDQ0NBQlFjUUphaUVOSUFoQkRHb2hEZ0pBQTBBZ0FTZ0N2QWtoQkFKQUlBTW9BaVFOQUNBRUlBZEIyQUZzYWlnQ3hBRkZEUUJCQVNFRURBSUxJQU1wQWpRaER5QURLQUk4SVFzZ0FTZ0NxQWtoRENBRUlBZEIyQUZzSWdacUlnUWdBU2dDRENnQ09EWUNHQ0FFSUFzMkFoQWdCQ0FQTndJSUlBUWdERFlDQkFKQUlBTW9BZ1FpQkVFQ1JnMEFJQWtOQUNBRVFRZEdEUUFnQUNBRlFReHFFQUlpQkEwQ0lBVW9BZ3dpQkNBQktBS1lDU0FIYTBzRVFFRUJJUVFNQXdzZ0JFVUVRRUVBSVFrTUFRc2dEa0VBUWFRQkVBY2FJQWhCQURZQ0FFRUJJUWtMQWtBZ0JTZ0NEQ0lFQkVBZ0JTQUVRWDlxTmdJTURBRUxRUUFoQ1NBQUlBZ2dBU2dDdkFrZ0Jtb2dBeWdDQkNBREtBSXNFRkVpQkEwQ0N5QUJLQUs4Q1NBR2FpQUlJQUlnRFNBRlFRaHFJQWNnQVNnQ0RDZ0NRQ0FGUVJCcUVGQWlCQTBCSUFFb0Fyd0pJQVpxS0FMRUFTRUxJQUFRTGlFRUlBVW9BZ3doQmdKQUlBTW9BZ1JCZm1vaURFRUZTdzBBQWtBZ0RFRUJhdzRFQVFFQkFRQUxJQUVnQnpZQ3NBa0xJQVFnQm5JaEJrRUJJUVFnQVNnQ2xBa2dBU2dDbUFrZ0J4QWVJZ2RGUVFBZ0Joc05BU0FLSUF0QkFVWnFJUW9nQmcwQUN5QUJRYXdKYWlnQ0FDQUthaUlBSUFFb0FwZ0pTdzBBSUFFZ0FEWUNyQWxCQUNFRUN5QUZRY0FEYWlRQUlBUUw1Z0lCQjM5QkFTRUNBa0FnQUNnQ0FDQUJLQUlBUncwQUlBQW9BZ1FnQVNnQ0JFY05BQ0FBS0FJTUlBRW9BZ3hIRFFBZ0FDZ0NFQ0lESUFFb0FoQkhEUUFnQUNnQ0xDQUJLQUlzUncwQUlBQW9BakFnQVNnQ01FY05BQ0FBS0FJMElBRW9BalJIRFFBZ0FDZ0NPQ0FCS0FJNFJ3MEFJQUFvQWp3aUJTQUJLQUk4UncwQUlBQW9BbEFnQVNnQ1VFY05BQUpBSUFOQkFVc05BQ0FEUVFGclJRUkFJQUFvQWhnZ0FTZ0NHRWNOQWlBQUtBSWNJQUVvQWh4SERRSWdBQ2dDSUNBQktBSWdSdzBDSUFBb0FpUWlCQ0FCS0FJa1J3MENJQVJGRFFFZ0FTZ0NLQ0VHSUFBb0FpZ2hCMEVBSVFNRFFDQUhJQU5CQW5RaUNHb29BZ0FnQmlBSWFpZ0NBRWNOQXlBRUlBTkJBV29pQTBjTkFBc01BUXNnQUNnQ0ZDQUJLQUlVUncwQkN5QUZCRUFnQUNnQ1FDQUJLQUpBUncwQklBQW9Ba1FnQVNnQ1JFY05BU0FBS0FKSUlBRW9Ba2hIRFFFZ0FDZ0NUQ0FCS0FKTVJ3MEJDMEVBSVFJTElBSUwvd2tCQm44akFFRVFheUlFSkFBZ0FVRUFRZHdBRUFjaEF3SkFJQUJCQ0JBRElnRkJmMFlFUUVFQklRRU1BUXNnQXlBQk5nSUFJQUJCQVJBREdpQUFRUUVRQXhvZ0FFRUJFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUZFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUlFQU1pQVVGL1JnUkFRUUVoQVF3QkN5QURJQUUyQWdRZ0FDQURRUWhxRUFJaUFRMEFJQU1vQWdoQkgwc0VRRUVCSVFFTUFRc2dBQ0FFUVF4cUVBSWlBUTBBUVFFaEFTQUVLQUlNSWdKQkRFc05BQ0FEUVFFZ0FrRUVhblEyQWd3Z0FDQUVRUXhxRUFJaUFRMEFRUUVoQVNBRUtBSU1JZ0pCQWtzTkFDQURJQUkyQWhBQ1FDQUNRUUZMRFFBZ0FrRUJhd1JBSUFBZ0JFRU1haEFDSWdFTkFrRUJJUUVnQkNnQ0RDSUNRUXhMRFFJZ0EwRUJJQUpCQkdwME5nSVVEQUVMSUFCQkFSQURJZ0pCZjBZTkFTQURJQUpCQVVZMkFoZ2dBQ0FEUVJ4cUVBVWlBUTBCSUFBZ0EwRWdhaEFGSWdFTkFTQUFJQU5CSkdvUUFpSUJEUUZCQVNFQklBTW9BaVFpQWtIL0FVc05BU0FDQkVBZ0F5QUNRUUowRUFvaUFUWUNLQ0FCUlFSQVFmLy9BeUVCREFNTElBQWdBUkFGSWdFTkFrRUJJUUlEUUNBQ0lBTW9BaVJQRFFJZ0FrRUNkQ0VCSUFKQkFXb2hBaUFBSUFFZ0F5Z0NLR29RQlNJQlJRMEFDd3dDQ3lBRFFRQTJBaWdMSUFBZ0EwRXNhaEFDSWdFTkFFRUJJUUVnQXlnQ0xFRVFTdzBBSUFCQkFSQURJZ0pCZjBZTkFDQURJQUpCQVVZMkFqQWdBQ0FFUVF4cUVBSWlBUTBBSUFNZ0JDZ0NERUVCYWpZQ05DQUFJQVJCREdvUUFpSUJEUUJCQVNFQklBTWdCQ2dDREVFQmFqWUNPQ0FBUVFFUUEwRUJha0VDU1EwQUlBQkJBUkFEUVg5R0RRQWdBRUVCRUFNaUFrRi9SZzBBSUFNZ0FrRUJSaUlCTmdJOEFrQWdBVVVFUUNBREtBSTRJUVVnQXlnQ05DRUdEQUVMSUFBZ0EwRkFheEFDSWdFTkFTQUFJQU5CeEFCcUVBSWlBUTBCSUFBZ0EwSElBR29RQWlJQkRRRWdBQ0FEUWN3QWFoQUNJZ0VOQVVFQklRRWdBeWdDUUNBREtBSkVRWDl6SUFNb0FqUWlCa0VEZEdwS0RRRWdBeWdDU0NBREtBSk1RWDl6SUFNb0FqZ2lCVUVEZEdwS0RRRUxBa0FDUUFKQUFrQWdBeWdDQkVGMmFpSUhRU2xMRFFCQjR3QWhBVUdBcEFraEFnSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQjBFQmF3NHBBQUVCQ3dzTEN3c0xBUUlEQ3dzTEN3c0xDd01FQlFzTEN3c0xDd3NHQmdjTEN3c0xDd3NMQ0FrS0MwR01BeUVCUVlDTUZTRUNEQWtMUVl3RElRRkJnTmczSVFJTUNBdEJtQVloQVVHQXNPOEFJUUlNQnd0QjFBd2hBVUdBN0wwQklRSU1CZ3RCa0J3aEFVR0E4S1VESVFJTUJRdEJnQ2doQVVHQWdPQURJUUlNQkF0QmdNQUFJUUZCZ0lDQUJpRUNEQU1MUVlERUFDRUJRWUNBc0FZaEFnd0NDMEhBckFFaEFVR0F3SnNVSVFJTUFRdEJnS0FDSVFGQmdJRGdJU0VDQ3lBQklBVWdCbXdpQVU4TkFRc2dCRUgvLy8vL0J6WUNEQ0FES0FJc0lRSU1BUXNnQkNBQ0lBRkJnQU5zYmlJQlFSQWdBVUVRU1JzaUFUWUNEQ0FES0FJc0lnSWdBVTBOQVFzZ0JDQUNOZ0lNSUFJaEFRc2dBeUFCTmdKWVFRRWhBU0FBUVFFUUF5SUNRWDlHRFFBZ0F5QUNRUUZHTmdKUUFrQWdBa0VCUncwQUlBTkJ1QWNRQ2lJQk5nSlVJQUZGQkVCQi8vOERJUUVNQWdzZ0FDQUJFQ3dpQVEwQklBTW9BbFFpQWlnQ21BZEZEUUJCQVNFQklBSW9BckFISUFJb0FyUUhJZ0pMRFFFZ0FpQURLQUlzU1EwQklBSWdBeWdDV0VzTkFTQURJQUpCQVNBQ0d6WUNXQXNnQUJBZlFRQWhBUXNnQkVFUWFpUUFJQUVMalFRQkRuOGdBUUovQWtBZ0FDOEJJQ0lIRFFBZ0FDOEJIQTBBUVFBTUFRdEJBZ3MyQWlBZ0FRSi9Ba0FnQUM4QklpSUNEUUFnQUM4QkhnMEFRUUFNQVF0QkFnczJBaWdnQVFKL0FrQWdBQzhCS0NJRERRQWdBQzhCSkEwQVFRQU1BUXRCQWdzMkFqQWdBUUovQWtBZ0FDOEJLaUlJRFFBZ0FDOEJKZzBBUVFBTUFRdEJBZ3MyQWpnZ0FTQUhJQUF2QVN3aUNYSkJBRWRCQVhRMkFrQWdBU0FDSUFBdkFTNGlCSEpCQUVkQkFYUTJBa2dnQVNBRElBQXZBVFFpQlhKQkFFZEJBWFEyQWxBZ0FTQUlJQUF2QVRZaUNuSkJBRWRCQVhRMkFsZ2dBU0FBTHdFd0lnMGdDWEpCQUVkQkFYUTJBbUFnQVNBQUx3RXlJZ3NnQkhKQkFFZEJBWFEyQW1nZ0FTQUFMd0U0SWd3Z0JYSkJBRWRCQVhRMkFuQWdBU0FBTHdFNklnNGdDbkpCQUVkQkFYUTJBbmhCQWlFR0lBRWdBQzhCSGlJUEJIOUJBZ1VnQUM4QkhFRUFSMEVCZEFzMkFnd2dBU0FQSUFBdkFTUWlCbkpCQUVkQkFYUTJBaFFnQUM4QkppRUFJQUVnRENBT2NrRUFSMEVCZERZQ2ZDQUJJQXNnREhKQkFFZEJBWFEyQW5RZ0FTQUxJQTF5UVFCSFFRRjBOZ0pzSUFFZ0JTQUtja0VBUjBFQmREWUNYQ0FCSUFRZ0JYSkJBRWRCQVhRMkFsUWdBU0FFSUFseVFRQkhRUUYwTmdKTUlBRWdBeUFJY2tFQVIwRUJkRFlDUENBQklBSWdBM0pCQUVkQkFYUTJBalFnQVNBQ0lBZHlRUUJIUVFGME5nSXNJQUVnQUNBR2NrRUFSMEVCZERZQ0hBdk1CZ0VMZnlNQVFZQU9heUlPSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0NHb2dCRXNOQUNBSFFRVnFJZ29nQTJvZ0JVc05BQ0FFSVFnZ0F5RUpEQUVMSUFBZ0RrSEFDbW9nQWlBRElBUWdCU0FJSUFkQkJXb2lDaUFJRUF3Z0RrSEFDbW9oQUVFQUlRSUxBa0FnQ2tVTkFDQUdRUUoySWhCRkRRQWdDQ0FHYXlFUklBQWdDQ0FKYkNBQ2FtcEJCV29oQWlBT0lRQURRQ0FDUVg5cUxRQUFJUWdnQWtGK2FpMEFBQ0VESUFKQmZXb3RBQUFoQlNBQ1FYeHFMUUFBSVFRZ0FrRjdhaTBBQUNFTUlCQWhEUU5BSUFBZ0FpMEFBQ0lKSUF3Z0JDQUlhaUlMYXlBRElBVnFRUlJzYWlBTFFRSjBhMm8yQWdBZ0FDQUNMUUFCSWdzZ0F5QUlha0VVYkNBRWFpQUZJQWxxSWdScklBUkJBblJyYWpZQ0JDQUFJQUl0QUFJaUR5QUlJQWxxUVJSc0lBVnFJQU1nQzJvaUJHc2dCRUVDZEd0cU5nSUlJQUFnQWkwQUF5SVNJQWtnQzJwQkZHd2dBMm9nQ0NBUGFpSURheUFEUVFKMGEybzJBZ3dnQUVFUWFpRUFJQUpCQkdvaEFpQUlJUXdnQ1NFRUlBc2hCU0FQSVFNZ0VpRUlJQTFCZjJvaURRMEFDeUFDSUJGcUlRSWdDa0YvYWlJS0RRQUxDd0pBSUFkQkFuWWlCMFVOQUNBR1JRMEFRY0FBSUFacklROGdEaUFHUVFKMGFpSUlJQVpCRkd4cUlRSkJBQ0FHYXlJUVFRTjBJUklnQmtFRGRDRUpJQVpCQTJ4QkFuUWhDd05BSUFZaEJBTkFJQUVnQ0NBSmFpZ0NBQ0lBSUFJZ0NXb29BZ0FnQWlBR1FRSjBJZzFxS0FJQUlnb2dBaUFTYWlnQ0FDSURhaUlGYXlBRlFRSjBhMm9nQWlnQ0FDSU1JQUlnRUVFQ2RDSVJhaWdDQUNJRmFrRVViR3BCZ0FScVFRcDFRYkF1YWkwQUFEb0FNQ0FCSUFnZ0RXb29BZ0FpRFNBS0lBTWdCV3BCRkd4cUlBQWdER29pQ21zZ0NrRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQTZBQ0FnQVNBSUtBSUFJZ29nRENBQUlBTnFRUlJzYWlBRklBMXFJZ3hySUF4QkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQU9nQVFJQUVnQ0NBUmFpZ0NBQ0FGSUFBZ0RXcEJGR3hxSUFNZ0Ntb2lBR3NnQUVFQ2RHdHFRWUFFYWtFS2RVR3dMbW90QUFBNkFBQWdDRUVFYWlFSUlBRkJBV29oQVNBQ1FRUnFJUUlnQkVGL2FpSUVEUUFMSUFFZ0Qyb2hBU0FDSUF0cUlRSWdDQ0FMYWlFSUlBZEJmMm9pQncwQUN3c2dEa0dBRG1va0FBdmxBd0VKZnlNQVFjQURheUlLSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0F5QUhhaUFGU3cwQUlBTkJBRWdOQUNBQ0lBaHFJQVJMRFFBZ0JDRUlJQU1oQ1F3QkN5QUFJQW9nQWlBRElBUWdCU0FJSUFjZ0NCQU1JQW9oQUVFQUlRSUxBa0FnQjBVTkFDQUdRUUoySWcxRkRRQkJFQ0FHYXlFT0lBZ2dCbXNoRHlBQUlBZ2dDV3dnQW1wcVFRVnFJUUlEUUNBQ1FYOXFMUUFBSVFnZ0FrRithaTBBQUNFR0lBSkJmV290QUFBaEFDQUNRWHhxTFFBQUlRVWdBa0Y3YWkwQUFDRUpJQTBoQ3dOQUlBRWdBaTBBQUNJRElBa2dCU0FJYWlJRWF5QUFJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FBSUFFZ0FpMEFBU0lFSUFVZ0JpQUlha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQU9nQUJJQUVnQWkwQUFpSU1JQUFnQXlBSWFrRVViR29nQkNBR2FpSUFheUFBUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBT2dBQ0lBRWdBaTBBQXlJUUlBWWdBeUFFYWtFVWJHb2dDQ0FNYWlJQWF5QUFRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FESUFGQkJHb2hBU0FDUVFScUlRSWdDQ0VKSUFNaEJTQUVJUUFnRENFR0lCQWhDQ0FMUVg5cUlnc05BQXNnQVNBT2FpRUJJQUlnRDJvaEFpQUhRWDlxSWdjTkFBc0xJQXBCd0FOcUpBQUw5UU1CQzM4akFFSEFBMnNpQ3lRQUFrQUNRQ0FDUVFCSURRQWdBMEVBU0EwQUlBSWdCbW9nQkVzTkFDQURJQWRxUVFWcUlBVkxEUUFnQXlFSURBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFZZ0IwRUZhaUFHRUF3Z0N5RUFJQVloQkVFQUlRSUxBa0FnQjBFQ2RpSU1SUTBBSUFaRkRRQkJ3QUFnQm1zaEVTQUVRUUYwSVEwZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVNJQUFnQkNBSWJDQUNhbW9nQkdvaUJ5QUVRUVZzYWlFQ0EwQWdCaUVBQTBBZ0FTQUhJQTFxTFFBQUlnTWdBaUFOYWkwQUFDQUNJQVJxTFFBQUlna2dBaUFTYWkwQUFDSUZhaUlJYXlBSVFRSjBhMm9nQWkwQUFDSUtJQUlnRDJvdEFBQWlDR3BCRkd4cVFSQnFRUVYxUWJBdWFpMEFBRG9BTUNBQklBUWdCMm90QUFBaUVDQUpJQVVnQ0dwQkZHeHFJQU1nQ21vaUNXc2dDVUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBRG9BSUNBQklBY3RBQUFpQ1NBS0lBTWdCV3BCRkd4cUlBZ2dFR29pQ21zZ0NrRUNkR3RxUVJCcVFRVjFRYkF1YWkwQUFEb0FFQ0FCSUFjZ0Qyb3RBQUFnQ0NBRElCQnFRUlJzYWlBRklBbHFJZ05ySUFOQkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBQWdCMEVCYWlFSElBRkJBV29oQVNBQ1FRRnFJUUlnQUVGL2FpSUFEUUFMSUFFZ0VXb2hBU0FDSUE1cUlRSWdCeUFPYWlFSElBeEJmMm9pREEwQUN3c2dDMEhBQTJva0FBdXFCZ0VOZnlNQVFiQUJheUlSSkFBZ0NFRUJhaUVLQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0Ntb2dCRXNOQUNBRElBbHFRUUZxSUFWTERRQWdCU0VNSUFRaENpQURJUThNQVFzZ0FDQVJJQUlnQXlBRUlBVWdDaUFKUVFGcUlnd2dDaEFNSUFBZ0JDQUZiR29nRVNBS0lBeHNhaUFDSUFNZ0JDQUZJQW9nRENBS0VBd2dFU0VBUVFBaEFnc0NRQ0FKUVFGMklnVkZEUUFnQ0VFQmRpSUVSUTBBUVJBZ0NHc2hFMEVJSUFkcklRdEJDQ0FHYXlFTklBcEJBWFFpRGlBSWF5RVVJQUFnQW1vaUZpQUtJQTlzYWlFQ0lBRWhBQ0FGSVJVRFFDQUNJQTVxTFFBQUlBZHNJQXNnQWlBS2FpMEFBQ0lEYkdvaENDQURJQWRzSUFzZ0FpMEFBR3hxSVFrZ0JDRURBMEFnQWtFQmFpSVFJQTVxTFFBQUlSSWdBQ0FKSUExc0lBb2dFR290QUFBaUNTQUhiQ0FMSUFJdEFBRnNhaUlRSUFac2FrRWdha0VHZGpvQUFDQUFJQWdnRFd3Z0J5QVNiQ0FKSUF0c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ0NBQ0xRQUNJUWtnQWtFQ2FpSUNJQTVxTFFBQUlSSWdBQ0FOSUJCc0lBSWdDbW90QUFBaUVDQUhiQ0FKSUF0c2FpSUpJQVpzYWtFZ2FrRUdkam9BQVNBQUlBZ2dEV3dnQnlBU2JDQUxJQkJzYWlJSUlBWnNha0VnYWtFR2Rqb0FDU0FBUVFKcUlRQWdBMEYvYWlJRERRQUxJQUlnRkdvaEFpQUFJQk5xSVFBZ0ZVRi9haUlWRFFBTElBRkJRR3NoQUNBV0lBd2dEMm9nQ214cUlRSURRQ0FDSUE1cUxRQUFJQWRzSUFzZ0FpQUthaTBBQUNJQmJHb2hDQ0FCSUFkc0lBc2dBaTBBQUd4cUlRa2dCQ0VEQTBBZ0FrRUJhaUlCSUE1cUxRQUFJUXdnQUNBSklBMXNJQUVnQ21vdEFBQWlBU0FIYkNBTElBSXRBQUZzYWlJSklBWnNha0VnYWtFR2Rqb0FBQ0FBSUFnZ0RXd2dCeUFNYkNBQklBdHNhaUlCSUFac2FrRWdha0VHZGpvQUNDQUNMUUFDSVFnZ0FrRUNhaUlDSUE1cUxRQUFJUXdnQUNBSklBMXNJQUlnQ21vdEFBQWlEeUFIYkNBSUlBdHNhaUlKSUFac2FrRWdha0VHZGpvQUFTQUFJQUVnRFd3Z0J5QU1iQ0FMSUE5c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ1NBQVFRSnFJUUFnQTBGL2FpSUREUUFMSUFJZ0ZHb2hBaUFBSUJOcUlRQWdCVUYvYWlJRkRRQUxDeUFSUWJBQmFpUUFDLzlFQVVGL0l3QkJzQUZySWdNa0FDQUFLQUlJSWdRRVFDQUFLQUlFSWg5QkEzUWhGaUFFSUI5c0lnUkJCblFoT3lBRVFRaDBJVHdnSDBFR2RDRTlJQjlCTUd3aFBpQWZRUVYwSVNVZ0gwRlFiQ0VyUVFBZ0gwRUVkQ0lhYXlJb1FRSjBJVDhnS0VFQmRDRXNJQU5CR0dvaElpQURRUXh5SVNNRFFBSkFJQUVvQWdnaUNVRUJSZzBBQWtBQ1FBSkFBa0FnQVNnQ3lBRWlBa1VFUUVFQklRWU1BUXRCQlNFR0lBbEJBa2NOQUVFRlFRRWdBU2dDQkNJSklBSW9BZ1JHR3lFR0lBRW9Bc3dCSWdRTkFVRUFJUVFNQXdzZ0FTZ0N6QUVpQkVVRVFFRUFJUVFNQXdzZ0NVRUNSdzBCSUFFb0FnUWhDUXNnQ1NBRUtBSUVSdzBCQ3lBR1FRSnlJUVlMQW44Z0JrRUNjU0l0QkVBQ1FDQUJLQUlBUVFWTkJFQWdCQ2dDQUVFR1NRMEJDeUFEUVFRMkFrQWdBMEVFTmdKSUlBTkJCRFlDT0NBRFFRUTJBakJCQVF3Q0MwRUNJUTlCQWlFSkFrQWdBUzhCSEEwQUlBUXZBVEFOQUVFQklRa2dBU2dDZENBRUtBSjhSdzBBSUFFdUFZUUJJQVF1QWF3QmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBRUxnR3VBV3NpQ1NBSlFSOTFJZ2xxSUFselFRTkxJUWtMSUFNZ0NUWUNNQUpBSUFFdkFSNE5BQ0FFTHdFeURRQkJBU0VQSUFFb0FuUWdCQ2dDZkVjTkFDQUJMZ0dJQVNBRUxnR3dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmlnRWdCQzRCc2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWpoQkFpRUZRUUloQ2dKQUlBRXZBU1FOQUNBRUx3RTREUUJCQVNFS0lBRW9BbmdnQkNnQ2dBRkhEUUFnQVM0QmxBRWdCQzRCdkFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBWllCSUFRdUFiNEJheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSkFBa0FnQVM4QkpnMEFJQVF2QVRvTkFFRUJJUVVnQVNnQ2VDQUVLQUtBQVVjTkFDQUJMZ0dZQVNBRUxnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0Qm1nRWdCQzRCd2dGcklnUWdCRUVmZFNJRWFpQUVjMEVEU3lFRkN5QURJQVUyQWtnZ0NTQVBjaUFLY2lBRmNrRUFSd3dCQ3lBRFFRQTJBa0FnQTBFQU5nSklJQU5CQURZQ09DQURRUUEyQWpCQkFBc2hDUUpBQWtBQ1FBSkFJQVpCQkhFaUxnUkFBa0FnQVNnQ0FDSUdRUVZOQkVBZ0FpZ0NBRUVHU1EwQkN5QURRUVEyQW5RZ0EwRUVOZ0tVQVNBRFFRUTJBbFFnQTBFRU5nSTBRUUVoQ1F3Q0MwRUNJUTlCQWlFRUFrQWdBUzhCSEEwQUlBSXZBU1lOQUVFQklRUWdBU2dDZENBQ0tBSjRSdzBBSUFFdUFZUUJJQUl1QVpnQmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBQ0xnR2FBV3NpQkNBRVFSOTFJZ1JxSUFSelFRTkxJUVFMSUFNZ0JEWUNOQUpBSUFFdkFTQU5BQ0FDTHdFcURRQkJBU0VQSUFFb0FuUWdBaWdDZUVjTkFDQUJMZ0dNQVNBQ0xnR2dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmpnRWdBaTRCb2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWxSQkFpRUZRUUloQ2dKQUlBRXZBU3dOQUNBQ0x3RTJEUUJCQVNFS0lBRW9BbndnQWlnQ2dBRkhEUUFnQVM0QnBBRWdBaTRCdUFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBYVlCSUFJdUFib0JheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSjBBa0FnQVM4Qk1BMEFJQUl2QVRvTkFFRUJJUVVnQVNnQ2ZDQUNLQUtBQVVjTkFDQUJMZ0dzQVNBQ0xnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0QnJnRWdBaTRCd2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFRkN5QURJQVUyQXBRQklBbEZEUUpCQVNFSkRBTUxJQU5CQURZQ2RDQURRUUEyQXBRQklBTkJBRFlDVkNBRFFRQTJBalFnQVNnQ0FDRUdDeUFHUVFaSkRRRWdBMEVETmdLZ0FTQURRb09BZ0lBd053S2tBU0FEUVFNMkFwQUJJQU5CQXpZQ2NDQURRUU0yQXF3QklBTkNnNENBZ0RBM0E1Z0JJQU5DZzRDQWdEQTNBNGdCSUFOQ2c0Q0FnREEzQTRBQklBTkNnNENBZ0RBM0EzZ2dBMEtEZ0lDQU1EY0RhQ0FEUW9PQWdJQXdOd05nSUFOQ2c0Q0FnREEzQTFnZ0EwS0RnSUNBTURjQ1RDQURRUU0yQWtRZ0EwRUROZ0k4REFJTElBUWdEM0lnQ25JZ0JYSkJBRWNoQ1FzQ1FBSi9JQVpCQTAwRVFDQUdRUUowUVl3MWFpZ0NBQXdCQzBFRUMwRUJSZ1JBSUFFZ0EwRXdhaEJFSUFNb0Fxd0JJUWNnQXlnQ3BBRWhEaUFES0FLY0FTRVFJQU1vQW93QklSa2dBeWdDaEFFaEJpQURLQUo4SVJjZ0F5Z0NiQ0VJSUFNb0FtUWhCQ0FES0FKY0lSUWdBeWdDVENFTUlBTW9Ba1FoQWlBREtBSThJUkVnQXlnQ3FBRWhIQ0FES0FLZ0FTRW1JQU1vQXBnQklRMGdBeWdDa0FFaEhTQURLQUtJQVNFU0lBTW9Bb0FCSVJVZ0F5Z0NlQ0ViSUFNb0FuQWhFeUFES0FKb0lRb2dBeWdDWUNFUElBTW9BbGdoQlNBREtBSlFJU2NNQVFzZ0F3Si9Ba0FnQXdKL0FrQUNRQ0FCS0FJQVFYNXFJZ1JCQVUwRVFDQUVRUUZyQkVBZ0F3Si9Ba0FnQVM4QklDSUVEUUFnQVM4QkhBMEFRUUFNQVF0QkFnc2lKellDVUNBREFuOENRQ0FCTHdFaUlnY05BQ0FCTHdFZURRQkJBQXdCQzBFQ0N5SUZOZ0pZSUFNQ2Z3SkFJQUV2QVNnaUJnMEFJQUV2QVNRTkFFRUFEQUVMUVFJTElnODJBbUFnQXdKL0FrQWdBUzhCS2lJT0RRQWdBUzhCSmcwQVFRQU1BUXRCQWdzaUNqWUNhQ0FEQW44Q1FDQUJMd0V3SWg0TkFDQUJMd0VzRFFCQkFBd0JDMEVDQ3lJZE5nS1FBU0FEQW44Q1FDQUJMd0V5SWhBTkFDQUJMd0V1RFFCQkFBd0JDMEVDQ3lJTk5nS1lBU0FEQW44Q1FDQUJMd0U0SWdzTkFDQUJMd0UwRFFCQkFBd0JDMEVDQ3lJbU5nS2dBU0FEQW44Q1FDQUJMd0U2SWhnTkFDQUJMd0UyRFFCQkFBd0JDMEVDQ3lJY05nS29BVUVDSVJ0QkFpRVRBa0FnQkNBQkx3RXNJaGR5RFFCQkFTRVRJQUV1QWFRQklBRXVBWXdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQkxnR21BU0FCTGdHT0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdBU2dDZkNBQktBSjBSeUVUQ3lBRElCTTJBbkFDUUNBSElBRXZBUzRpSUhJTkFFRUJJUnNnQVM0QnFBRWdBUzRCa0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRXVBYW9CSUFFdUFaSUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FCS0FKOElBRW9BblJISVJzTElBTWdHellDZUVFQ0lSSkJBaUVWQWtBZ0JpQUJMd0UwSWhseURRQkJBU0VWSUFFdUFiUUJJQUV1QVp3QmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJMZ0cyQVNBQkxnR2VBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEZRc2dBeUFWTmdLQUFRSkFJQTRnQVM4Qk5pSWhjZzBBUVFFaEVpQUJMZ0c0QVNBQkxnR2dBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVM0QnVnRWdBUzRCb2dGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9Bb0FCSUFFb0FuaEhJUklMSUFNZ0VqWUNpQUVnQVM4QkhnMENJQUV2QVJ3RVFFRUNJUkVnQTBFQ05nSThJQUV2QVNRaUNBMEdRUUFoREVFQURBY0xRUUFoRVNBRFFRQTJBanhCQUNFTVFRQWdBUzhCSkNJSVJRMEdHZ3dGQ3lBREFuOENRQ0FCTHdFZ0lnSU5BQ0FCTHdFY0RRQkJBQXdCQzBFQ0N5SW5OZ0pRSUFNQ2Z3SkFJQUV2QVNJaUJnMEFJQUV2QVI0TkFFRUFEQUVMUVFJTElnVTJBbGdnQXdKL0FrQWdBUzhCS0NJT0RRQWdBUzhCSkEwQVFRQU1BUXRCQWdzaUR6WUNZQ0FEQW44Q1FDQUJMd0VxSWdnTkFDQUJMd0VtRFFCQkFBd0JDMEVDQ3lJS05nSm9JQU1nQWlBQkx3RXNJaGR5UVFCSFFRRjBJaE0yQW5BZ0F5QUdJQUV2QVM0aUMzSkJBRWRCQVhRaUd6WUNlQ0FESUE0Z0FTOEJOQ0llY2tFQVIwRUJkQ0lWTmdLQUFTQURJQWdnQVM4Qk5pSVpja0VBUjBFQmRDSVNOZ0tJQVNBRElBRXZBVEFpRUNBWGNrRUFSMEVCZENJZE5nS1FBU0FESUFFdkFUSWlJQ0FMY2tFQVIwRUJkQ0lOTmdLWUFTQURJQUV2QVRnaUlTQWVja0VBUjBFQmRDSW1OZ0tnQVNBRElBRXZBVG9pQnlBWmNrRUFSMEVCZENJY05nS29BU0FEQW44Q1FDQUJMd0VlSWlRTkFDQUJMd0VjRFFCQkFBd0JDMEVDQ3lJUk5nSThJQUV2QVNZRVFDQUJMd0VrSVJnTUF3c2dBUzhCSkNJWURRSkJBQ0VZUVFBTUF3c2dBUzRCaGdFaEZDQUJMZ0dPQVNFRVFRSWhCU0FEQW45QkFpQUJMd0VjSWhFZ0FTOEJJQ0l2Y2cwQUdrRUJJQUV1QVl3QklBRXVBWVFCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUJvZ0JDQVVheUlHSUFaQkgzVWlCbW9nQm5OQkEwc0xJaWMyQWxBZ0FTNEJpZ0VoQ0NBQkxnR1NBU0VHQWtBZ0FTOEJIaUl3SUFFdkFTSWlFSElOQUVFQklRVWdBUzRCa0FFZ0FTNEJpQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUFZZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6UVFOTElRVUxJQU1nQlRZQ1dDQUJMZ0dXQVNFTUlBRXVBWjRCSVFkQkFpRUtJQU1DZjBFQ0lBRXZBU1FpTVNBQkx3RW9JaGR5RFFBYVFRRWdBUzRCbkFFZ0FTNEJsQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBR2lBSElBeHJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3c2lEellDWUNBQkxnR2FBU0V5SUFFdUFhSUJJUXNDUUNBQkx3RW1Ja0FnQVM4QktpSXpjZzBBUVFFaENpQUJMZ0dnQVNBQkxnR1lBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQ3lBeWF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzaENnc2dBeUFLTmdKb0lBRXVBYVlCSVI1QkFpRWJRUUloRXdKQUlDOGdBUzhCTENJMGNnMEFRUUVoRXlBQkxnR2tBU0FCTGdHTUFXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdIaUFFYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQktBSjhJQUVvQW5SSElSTUxJQU1nRXpZQ2NDQUJMZ0dxQVNFT0FrQWdFQ0FCTHdFdUloaHlEUUJCQVNFYklBRXVBYWdCSUFFdUFaQUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FPSUFacklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9BbndnQVNnQ2RFY2hHd3NnQXlBYk5nSjRJQUV1QWJZQklSbEJBaUVTUVFJaEZRSkFJQmNnQVM4Qk5DSWdjZzBBUVFFaEZTQUJMZ0cwQVNBQkxnR2NBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnR1NBSGF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJLQUtBQVNBQktBSjRSeUVWQ3lBRElCVTJBb0FCSUFFdUFib0JJU0VDUUNBeklBRXZBVFlpTlhJTkFFRUJJUklnQVM0QnVBRWdBUzRCb0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlDRWdDMnNpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEVnc2dBeUFTTmdLSUFTQUJMZ0d1QVNFMlFRSWhEU0FEQW45QkFpQTBJQUV2QVRBaVFYSU5BQnBCQVNBQkxnR3NBU0FCTGdHa0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWFJRFlnSG1zaUFpQUNRUjkxSWdKcUlBSnpRUU5MQ3lJZE5nS1FBU0FCTGdHeUFTRWtBa0FnR0NBQkx3RXlJamR5RFFCQkFTRU5JQUV1QWJBQklBRXVBYWdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBa0lBNXJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN5RU5DeUFESUEwMkFwZ0JJQUV1QWI0QklTbEJBaUVjSUFNQ2YwRUNJQ0FnQVM4Qk9DSTRjZzBBR2tFQklBRXVBYndCSUFFdUFiUUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQm9nS1NBWmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTElpWTJBcUFCSUFFdUFjSUJJVGtDUUNBMUlBRXZBVG9pUW5JTkFFRUJJUndnQVM0QndBRWdBUzRCdUFGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlEa2dJV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxJUndMSUFNZ0hEWUNxQUZCQWlFQ0lBTUNmMEVDSUJFZ01ISU5BQnBCQVNBQkxnR0lBU0FCTGdHRUFXc2lFU0FSUVI5MUloRnFJQkZ6UVFOTERRQWFJQWdnRkdzaUZDQVVRUjkxSWhScUlCUnpRUU5MQ3lJUk5nSThBa0FnTUNBeGNnMEFRUUVoQWlBQkxnR1VBU0FCTGdHSUFXc2lGQ0FVUVI5MUloUnFJQlJ6UVFOTERRQWdEQ0FJYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBQktBSjRJQUVvQW5SSElRSUxJQU1nQWpZQ1JFRUNJUlFnQXdKL1FRSWdNU0JBY2cwQUdrRUJJQUV1QVpnQklBRXVBWlFCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUJvZ01pQU1heUlJSUFoQkgzVWlDR29nQ0hOQkEwc0xJZ3cyQWt3Q1FDQVFJQzl5RFFCQkFTRVVJQUV1QVpBQklBRXVBWXdCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBR0lBUnJJZ1FnQkVFZmRTSUVhaUFFYzBFRFN5RVVDeUFESUJRMkFseEJBaUVJUVFJaEJBSkFJQkFnRjNJTkFFRUJJUVFnQVM0Qm5BRWdBUzRCa0FGckloQWdFRUVmZFNJUWFpQVFjMEVEU3cwQUlBY2dCbXNpQmlBR1FSOTFJZ1pxSUFaelFRTkxEUUFnQVNnQ2VDQUJLQUowUnlFRUN5QURJQVEyQW1RQ1FDQVhJRE55RFFCQkFTRUlJQUV1QWFBQklBRXVBWndCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUNBTElBZHJJZ1lnQmtFZmRTSUdhaUFHYzBFRFN5RUlDeUFESUFnMkFteEJBaUVHSUFNQ2YwRUNJQmdnTkhJTkFCcEJBU0FCTGdHb0FTQUJMZ0drQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBYUlBNGdIbXNpQnlBSFFSOTFJZ2RxSUFkelFRTkxDeUlYTmdKOEFrQWdHQ0FnY2cwQVFRRWhCaUFCTGdHMEFTQUJMZ0dvQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBZ0dTQU9heUlISUFkQkgzVWlCMm9nQjNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQlFRSWhFQ0FEQW45QkFpQWdJRFZ5RFFBYVFRRWdBUzRCdUFFZ0FTNEJ0QUZySWdjZ0IwRWZkU0lIYWlBSGMwRURTdzBBR2lBaElCbHJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN3c2lHVFlDakFFQ1FDQTNJRUZ5RFFCQkFTRVFJQUV1QWJBQklBRXVBYXdCYXlJSElBZEJIM1VpQjJvZ0IzTkJBMHNOQUNBa0lEWnJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN5RVFDeUFESUJBMkFwd0JRUUloQjBFQ0lRNENRQ0EzSURoeURRQkJBU0VPSUFFdUFid0JJQUV1QWJBQmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQXBJQ1JySWdzZ0MwRWZkU0lMYWlBTGMwRURTdzBBSUFFb0FvQUJJQUVvQW54SElRNExJQU1nRGpZQ3BBRUNRQ0E0SUVKeURRQkJBU0VISUFFdUFjQUJJQUV1QWJ3QmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQTVJQ2xySWdjZ0IwRWZkU0lIYWlBSGMwRURTeUVIQ3lBRElBYzJBcXdCREFVTFFRSWhFU0FEUVFJMkFqd2dBUzhCSkNFSURBSUxRUUlMSWd3MkFreEJBaUVFSUFOQkFpQUlRUUJIUVFGMElBNGJJZ2cyQW13Z0EwRUNJQVpCQUVkQkFYUWdBaHNpRkRZQ1hDQURJQWNnSVhKQkFFZEJBWFFpQnpZQ3JBRWdBeUFRSUNCeVFRQkhRUUYwSWhBMkFwd0JJQU1nR1NBZWNrRUFSMEVCZENJWk5nS01BU0FESUFzZ0YzSkJBRWRCQVhRaUZ6WUNmRUVDSVFJQ1FDQVlJQ1J5RFFCQkFTRUNJQUV1QVpRQklBRXVBWWdCYXlJWUlCaEJIM1VpR0dvZ0dITkJBMHNOQUNBQkxnR1dBU0FCTGdHS0FXc2lHQ0FZUVI5MUloaHFJQmh6UVFOTERRQWdBU2dDZUNBQktBSjBSeUVDQ3lBRElBSTJBa1FDUUNBR0lBNXlEUUJCQVNFRUlBRXVBWndCSUFFdUFaQUJheUlHSUFaQkgzVWlCbW9nQm5OQkEwc05BQ0FCTGdHZUFTQUJMZ0dTQVdzaUJpQUdRUjkxSWdacUlBWnpRUU5MRFFBZ0FTZ0NlQ0FCS0FKMFJ5RUVDeUFESUFRMkFtUkJBaUVPUVFJaEJnSkFJQXNnSG5JTkFFRUJJUVlnQVM0QnRBRWdBUzRCcUFGcklnc2dDMEVmZFNJTGFpQUxjMEVEU3cwQUlBRXVBYllCSUFFdUFhb0JheUlMSUF0QkgzVWlDMm9nQzNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQkFrQWdJQ0FoY2cwQVFRRWhEaUFCTGdHOEFTQUJMZ0d3QVdzaUN5QUxRUjkxSWd0cUlBdHpRUU5MRFFBZ0FTNEJ2Z0VnQVM0QnNnRnJJZ3NnQzBFZmRTSUxhaUFMYzBFRFN3MEFJQUVvQW9BQklBRW9BbnhISVE0TElBTWdEallDcEFFTUFnc2dDQ0VNUVFJTElnSTJBa1FnQXlBQkx3RW1JQXhCLy84RGNYSkJBRWRCQVhRaUREWUNUQ0FEQW44Q1FDQUhSUVJBSUFRRVFFRUNJUlFnQTBFQ05nSmNJQVlOQWtFQURBTUxRUUFoRkNBRFFRQTJBbHhCQUNBR1JRMENHZ3dCQzBFQ0lSUWdBMEVDTmdKY0MwRUNDeUlFTmdKa0lBTkJBaUFPUVFCSFFRRjBJQVliSWdnMkFtd2dBd0ovQWtBZ0lFVUVRQ0FYQkVCQkFpRVhJQU5CQWpZQ2ZDQVpEUUpCQUF3REMwRUFJUmNnQTBFQU5nSjhRUUFnR1VVTkFob01BUXRCQWlFWElBTkJBallDZkF0QkFnc2lCallDaEFFZ0F5QUxJQmh5UVFCSFFRRjBJZ2MyQXF3QklBTWdDeUFRY2tFQVIwRUJkQ0lPTmdLa0FTQURRUUlnRUVFQVIwRUJkQ0FlR3lJUU5nS2NBU0FESUJrZ0lYSkJBRWRCQVhRaUdUWUNqQUVMSUFrZ0ozSWdCWElnRDNJZ0NuSWdFM0lnRzNJZ0ZYSWdFbklnSFhJZ0RYSWdKbklnSEhJZ0VYSWdBbklnREhJZ0ZISWdCSElnQ0hJZ0YzSWdCbklnR1hJZ0VISWdEbklnQjNKRkRRRUxJQUVvQWd3aENTQURJQUVvQWhBaUJTQUJLQUlVSWdScUlnWkJNeUFHUVROSUd5SUdRUUFnQmtFQVNodEIwQmRxTFFBQUlnWTJBaUFnQXlBRUlBbHFJZ0pCTXlBQ1FUTklHeUlDUVFBZ0FrRUFTaHNpQ0VHUUYyb3RBQUFpQWpZQ0hDQURJQWhCQTJ4QmtCaHFJZ2cyQWhnQ1FDQXRSUTBBSUFRZ0FTZ0N6QUVvQWhRaUIwY0VRQ0FESUFRZ0IycEJBV3BCQVhZaUJ5QUZhaUlOUVRNZ0RVRXpTQnNpRFVFQUlBMUJBRW9iUWRBWGFpMEFBRFlDQ0NBRElBY2dDV29pQjBFeklBZEJNMGdiSWdkQkFDQUhRUUJLR3lJSFFaQVhhaTBBQURZQ0JDQURJQWRCQTJ4QmtCaHFOZ0lBREFFTElBTWdCallDQ0NBRElBSTJBZ1FnQXlBSU5nSUFDd0pBSUM1RkRRQWdCQ0FCS0FMSUFTZ0NGQ0lIUndSQUlBTWdCQ0FIYWtFQmFrRUJkaUlFSUFWcUlnVkJNeUFGUVROSUd5SUZRUUFnQlVFQVNodEIwQmRxTFFBQU5nSVVJQU1nQkNBSmFpSUVRVE1nQkVFelNCc2lCRUVBSUFSQkFFb2JJZ1JCa0JkcUxRQUFOZ0lRSUFNZ0JFRURiRUdRR0dvMkFnd01BUXNnQXlBR05nSVVJQU1nQWpZQ0VDQURJQWcyQWd3TElBQW9BZ0FnSHlBNmJDSVVRUWgwYWlBcVFRUjBhaUVKUVFBaEFrRURJUVFnQTBFd2FpRUdBMEFnQmlnQ0JDSUZCRUFnQ1NBRklDTWdHaEFaQ3lBR0tBSU1JZ1VFUUNBSlFRUnFJQVVnSWlBYUVCa0xJQVlvQWhRaUJRUkFJQWxCQ0dvZ0JTQWlJQm9RR1FzZ0JpZ0NIQ0lGQkVBZ0NVRU1haUFGSUNJZ0doQVpDeUFFSVFnQ1FBSkFBa0FnQmlnQ0FDSUVJQVlvQWdnaUQwY05BQ0FFSUFZb0FoQkhEUUFnQkNBR0tBSVlSdzBBSUFSRkRRSWdBeUFDUVF4c2FpSUZLQUlJSVF3Z0JTZ0NCQ0ViSUFSQkJFa05BU0FiUVFKMlFRSnFJUkJCRUNFUElBa2hCQU5BQWtBZ0JDQW9haUlDTFFBQUlnb2dCQzBBQUNJT2F5SUZJQVZCSDNVaUJXb2dCWE1pQnlBYlR3MEFJQVFnTEdvaUVTMEFBQ0lGSUFwcklnMGdEVUVmZFNJTmFpQU5jeUFNVHcwQUlBUWdHbW9pSEMwQUFDSVNJQTVySWcwZ0RVRWZkU0lOYWlBTmN5QU1UdzBBQWtBZ0J5QVFTUVJBSUFRZ0pXb2lGeTBBQUNFVkFuOGdCQ0FyYWlJTkxRQUFJaE1nQ21zaUJ5QUhRUjkxSWdkcUlBZHpJQXhKQkVCQkF5RWRJQUlnRWlBS0lBNXFJQVZxSWdKQkFYUnFJQk5xUVFScVFRTjJPZ0FBSUJFZ0FpQVRha0VDYWtFQ2Rqb0FBQ0FDUVFScUlSRWdCQ0EvYWkwQUFDRUhJQk5CQTJ3TUFRc2dDaUFTYWlFUklBVWhCMEVDSVIwZ0FpRU5RUUlMSVFJZ0RTQUNJQkZxSUFkQkFYUnFJQjEyT2dBQUlCVWdEbXNpQWlBQ1FSOTFJZ0pxSUFKeklBeFBEUUVnQkNBRklBb2dFbW9nRG1vaUFrRUJkR29nRldwQkJHcEJBM1k2QUFBZ0hDQUNJQlZxUVFKcVFRSjJPZ0FBSUJjZ0FpQVZRUU5zYWlBRUlENXFMUUFBUVFGMGFrRUVha0VEZGpvQUFBd0NDeUFDSUFvZ0Vtb2dCVUVCZEdwQkFtcEJBblk2QUFBTElBUWdCU0FPYWlBU1FRRjBha0VDYWtFQ2Rqb0FBQXNnQkVFQmFpRUVJQTlCZjJvaUR3MEFDd3dDQ3dKL0lBUUVRQ0FKSUFRZ0F5QUNRUXhzYWlBYUVCZ2dCaWdDQ0NFUEN5QVBDd1JBSUFsQkJHb2dEeUFESUFKQkRHeHFJQm9RR0FzZ0JpZ0NFQ0lFQkVBZ0NVRUlhaUFFSUFNZ0FrRU1iR29nR2hBWUN5QUdLQUlZSWdSRkRRRWdDVUVNYWlBRUlBTWdBa0VNYkdvZ0doQVlEQUVMSUFRZ0JTZ0NBR3BCZjJvdEFBQWlBa0VCYWlFSFFRQWdBbXNoRGtFUUlROGdDU0VFQTBBQ1FDQUVJQ2hxSWhNdEFBQWlEU0FFTFFBQUlncHJJZ1VnQlVFZmRTSUZhaUFGY3lBYlR3MEFJQVFnTEdvaUVTMEFBQ0lTSUExcklnVWdCVUVmZFNJRmFpQUZjeUFNVHcwQUlBUWdHbW9pRUMwQUFDSVZJQXBySWdVZ0JVRWZkU0lGYWlBRmN5QU1UdzBBSUFJaEJTQUVJQ3RxTFFBQUlod2dEV3NpSFNBZFFSOTFJaDFxSUIxeklBeEpCRUFnRVNBU0lBNGdBaUFLSUExcVFRRnFRUUYySUJKQkFYUnJJQnhxUVFGMUlnVWdCU0FDU2hzZ0JTQU9TQnRxT2dBQUlBY2hCUXNnRXlBTkFuOGdCQ0FsYWkwQUFDSVRJQXBySWhFZ0VVRWZkU0lSYWlBUmN5QU1TUVJBSUJBZ0ZTQU9JQUlnQ2lBTmFrRUJha0VCZGlBVlFRRjBheUFUYWtFQmRTSVRJQk1nQWtvYklCTWdEa2diYWpvQUFDQUZRUUZxSVFVTFFRQWdCV3NpRXdzZ0JTQVNJQlZySUFvZ0RXdEJBblJxUVFScVFRTjFJaElnRWlBRlNoc2dFaUFUU0JzaUJXcEJzQzVxTFFBQU9nQUFJQVFnQ2lBRmEwR3dMbW90QUFBNkFBQUxJQVJCQVdvaEJDQVBRWDlxSWc4TkFBc0xJQWhCZjJvaEJDQUdRU0JxSVFZZ0NTQTlhaUVKUVFJaEFpQUlEUUFMSUFFb0Fnd2hCQ0FESUFFb0FoQWlCU0FCS0FJVUlnWWdBU2dDR0NJQ2FpSUpRVE1nQ1VFelNCc2lDVUVBSUFsQkFFb2JRUUowUWVBOWFpZ0NBQ0lKYWlJSVFUTWdDRUV6U0JzaUNFRUFJQWhCQUVvYlFkQVhhaTBBQUNJSU5nSWdJQU1nQkNBSmFpSUhRVE1nQjBFelNCc2lCMEVBSUFkQkFFb2JJZzFCa0JkcUxRQUFJZ2MyQWh3Z0F5QU5RUU5zUVpBWWFpSU5OZ0lZQWtBZ0xVVU5BQ0FHSUFFb0Fzd0JLQUlVSWd4SEJFQWdBeUFKSUFJZ0RHb2lERUV6SUF4Qk0wZ2JJZ3hCQUNBTVFRQktHMEVDZEVIZ1BXb29BZ0JxUVFGcVFRRjJJZ3dnQldvaUQwRXpJQTlCTTBnYklnOUJBQ0FQUVFCS0cwSFFGMm90QUFBMkFnZ2dBeUFFSUF4cUlneEJNeUFNUVROSUd5SU1RUUFnREVFQVNoc2lERUdRRjJvdEFBQTJBZ1FnQXlBTVFRTnNRWkFZYWpZQ0FBd0JDeUFESUFnMkFnZ2dBeUFITmdJRUlBTWdEVFlDQUFzQ1FDQXVSUTBBSUFZZ0FTZ0N5QUVvQWhRaURFY0VRQ0FESUFVZ0NTQUNJQXhxSWdaQk15QUdRVE5JR3lJR1FRQWdCa0VBU2h0QkFuUkI0RDFxS0FJQWFrRUJha0VCZGlJSmFpSUZRVE1nQlVFelNCc2lCVUVBSUFWQkFFb2JRZEFYYWkwQUFEWUNGQ0FESUFRZ0NXb2lCRUV6SUFSQk0wZ2JJZ1JCQUNBRVFRQktHeUlFUVpBWGFpMEFBRFlDRUNBRElBUkJBMnhCa0JocU5nSU1EQUVMSUFNZ0NEWUNGQ0FESUFjMkFoQWdBeUFOTmdJTUN5QUFLQUlBSUR4cUlCUkJCblJxSUNwQkEzUnFJZ2tnTzJvaEJFRUFJUW9nQTBFd2FpRUdRUUFoQWdOQUlBWW9BZ1FpQlFSQUlBa2dCU0FqSUJZUUVDQUVJQVlvQWdRZ0l5QVdFQkFMSUFZb0FpUWlCUVJBSUFrZ0dtb2dCU0FqSUJZUUVDQUVJQnBxSUFZb0FpUWdJeUFXRUJBTElBWW9BaFFpQlFSQUlBbEJCR29nQlNBaUlCWVFFQ0FFUVFScUlBWW9BaFFnSWlBV0VCQUxJQVlvQWpRaUJRUkFJQWtnR21wQkJHb2dCU0FpSUJZUUVDQUVJQnBxUVFScUlBWW9BalFnSWlBV0VCQUxJQUloQlFKQUFrQWdCaWdDQUNJQ0lBWW9BZ2dpRDBjTkFDQUNJQVlvQWhCSERRQWdBaUFHS0FJWVJ3MEFJQUpGRFFFZ0NTQUNJQU1nQ2tFTWJHb2lBaUFXRUNzZ0JDQUdLQUlBSUFJZ0ZoQXJEQUVMQW44Z0FnUkFJQWtnQWlBRElBcEJER3hxSWdJZ0ZoQVNJQVFnQmlnQ0FDQUNJQllRRWlBR0tBSUlJUThMSUE4TEJFQWdDVUVDYWlBUElBTWdDa0VNYkdvaUFpQVdFQklnQkVFQ2FpQUdLQUlJSUFJZ0ZoQVNDeUFHS0FJUUlnSUVRQ0FKUVFScUlBSWdBeUFLUVF4c2FpSUNJQllRRWlBRVFRUnFJQVlvQWhBZ0FpQVdFQklMSUFZb0FoZ2lBa1VOQUNBSlFRWnFJQUlnQXlBS1FReHNhaUlDSUJZUUVpQUVRUVpxSUFZb0FoZ2dBaUFXRUJJTElBUWdKV29oQkNBSklDVnFJUWtnQmtGQWF5RUdRUUVoQWtFQ0lRb2dCVVVOQUFzTFFRQWdLa0VCYWlJRUlBUWdIMFlpQkJzaEtpQUJRZGdCYWlFQklBUWdPbW9pT2lBQUtBSUlTUTBBQ3dzZ0EwR3dBV29rQUF1Q0JRRUtmeU1BUVpBQmF5SUxKQUFDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSGFpQUVTdzBBSUFNZ0NHcEJBV29nQlVzTkFDQUZJUXdnQXlFT0RBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFjZ0NFRUJhaUlNSUFjUURDQUFJQVFnQld4cUlBc2dCeUFNYkdvZ0FpQURJQVFnQlNBSElBd2dCeEFNSUFzaEFDQUhJUVJCQUNFQ0N3SkFJQWhCQVhZaUJVVU5BQ0FIUVFGMklnTkZEUUJCRUNBSGF5RVFRUWdnQm1zaENTQUVRUUYwSWcwZ0Iyc2hFU0FBSUFKcUloSWdCQ0FPYkdvaEJ5QUJJUUlnQlNFSUEwQWdBeUVBQTBBZ0J5QU5haTBBQUNFS0lBSWdDU0FITFFBQWJDQUVJQWRxTFFBQUlnOGdCbXhxUVFOMFFTQnFRUVoyT2dBQUlBSWdDU0FQYkNBR0lBcHNha0VEZEVFZ2FrRUdkam9BQ0NBSFFRRnFJZ29nRFdvdEFBQWhEeUFDSUFrZ0J5MEFBV3dnQkNBS2FpMEFBQ0lLSUFac2FrRURkRUVnYWtFR2Rqb0FBU0FDSUFrZ0Ntd2dCaUFQYkdwQkEzUkJJR3BCQm5ZNkFBa2dBa0VDYWlFQ0lBZEJBbW9oQnlBQVFYOXFJZ0FOQUFzZ0J5QVJhaUVISUFJZ0VHb2hBaUFJUVg5cUlnZ05BQXNnQVVGQWF5RUNJQklnRENBT2FpQUViR29oQndOQUlBTWhBQU5BSUFjZ0RXb3RBQUFoQVNBQ0lBa2dCeTBBQUd3Z0JDQUhhaTBBQUNJSUlBWnNha0VEZEVFZ2FrRUdkam9BQUNBQ0lBZ2dDV3dnQVNBR2JHcEJBM1JCSUdwQkJuWTZBQWdnQjBFQmFpSUJJQTFxTFFBQUlRZ2dBaUFKSUFjdEFBRnNJQUVnQkdvdEFBQWlBU0FHYkdwQkEzUkJJR3BCQm5ZNkFBRWdBaUFCSUFsc0lBWWdDR3hxUVFOMFFTQnFRUVoyT2dBSklBSkJBbW9oQWlBSFFRSnFJUWNnQUVGL2FpSUFEUUFMSUFjZ0VXb2hCeUFDSUJCcUlRSWdCVUYvYWlJRkRRQUxDeUFMUVpBQmFpUUFDLzBFQVF0L0l3QkJrQUZySWd3a0FDQUhRUUZxSVFrQ1FBSkFJQUpCQUVnTkFDQURJQWhxSUFWTERRQWdBMEVBU0EwQUlBSWdDV29nQkVzTkFDQUVJUWtnQXlFTERBRUxJQUFnRENBQ0lBTWdCQ0FGSUFrZ0NDQUpFQXdnQUNBRUlBVnNhaUFNSUFnZ0NXeHFJQUlnQXlBRUlBVWdDU0FJSUFrUURDQU1JUUFnQ0NFRlFRQWhBZ3NDUUNBSVFRRjJJZ2hGRFFBZ0IwRUJkaUlFUlEwQVFSQWdCMnNoRGtFSUlBWnJJUW9nQ1VFQmRDQUhheUVQSUFBZ0Ftb2lFU0FKSUF0c2FpRUNJQUVoQXlBSUlRQURRQ0FFSVFjRFFDQUNRUUZxSUFscUxRQUFJUkFnQWlBSmFpMEFBQ0VOSUFNZ0FpMEFBU0lTSUFac0lBb2dBaTBBQUd4cVFRTjBRU0JxUVFaMk9nQUFJQU1nQmlBUWJDQUtJQTFzYWtFRGRFRWdha0VHZGpvQUNDQUNMUUFDSVEwZ0FrRUNhaUlDSUFscUxRQUFJUk1nQXlBR0lBMXNJQW9nRW14cVFRTjBRU0JxUVFaMk9nQUJJQU1nQmlBVGJDQUtJQkJzYWtFRGRFRWdha0VHZGpvQUNTQURRUUpxSVFNZ0IwRi9haUlIRFFBTElBSWdEMm9oQWlBRElBNXFJUU1nQUVGL2FpSUFEUUFMSUFGQlFHc2hBeUFSSUFVZ0Myb2dDV3hxSVFJRFFDQUVJUWNEUUNBQ1FRRnFJQWxxTFFBQUlRQWdBaUFKYWkwQUFDRUJJQU1nQWkwQUFTSUZJQVpzSUFvZ0FpMEFBR3hxUVFOMFFTQnFRUVoyT2dBQUlBTWdBQ0FHYkNBQklBcHNha0VEZEVFZ2FrRUdkam9BQ0NBQ0xRQUNJUUVnQWtFQ2FpSUNJQWxxTFFBQUlRc2dBeUFCSUFac0lBVWdDbXhxUVFOMFFTQnFRUVoyT2dBQklBTWdCaUFMYkNBQUlBcHNha0VEZEVFZ2FrRUdkam9BQ1NBRFFRSnFJUU1nQjBGL2FpSUhEUUFMSUFJZ0Qyb2hBaUFESUE1cUlRTWdDRUYvYWlJSURRQUxDeUFNUVpBQmFpUUFDN2tIQVFWL0l3QkJFR3NpQkNRQUFrQWdBQ0FCUVFCQnlBQVFCeUlERUFJaUFRMEFRUUVoQVNBREtBSUFRZjhCU3cwQUlBQWdBMEVFYWhBQ0lnRU5BRUVCSVFFZ0F5Z0NCRUVmU3cwQUlBQkJBUkFERFFBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNDQ0FBSUFSQkRHb1FBaUlCRFFBZ0F5QUVLQUlNUVFGcUlnRTJBZ3dnQVVFSVN3UkFRUUVoQVF3QkN3SkFJQUZCQWtrTkFDQUFJQU5CRUdvUUFpSUJEUUVnQXlnQ0VDSUJRUVpMSWdJRVFFRUJJUUVNQWdzZ0FnMEFBa0FDUUFKQUFrQWdBVUVCYXc0R0JBRUNBZ0lEQUFzZ0F5QURLQUlNSWdGQkFuUVFDaUlDTmdJVUlBSkZCRUJCLy84RElRRU1CUXNnQVVVTkEwRUFJUUlEUUNBQUlBUkJER29RQWlJQkRRVWdBeWdDRkNBQ1FRSjBhaUFFS0FJTVFRRnFOZ0lBSUFKQkFXb2lBaUFES0FJTVNRMEFDd3dEQ3lBRElBTW9BZ3dpQWtFQ2RFRjhhaUlCRUFvaUJUWUNHQ0FESUFFUUNpSUdOZ0ljUWYvL0F5RUJJQVZGRFFNZ0JrVU5BeUFDUVFGR0RRSkJBQ0VDQTBBZ0FDQUVRUXhxRUFJaUFRMEVJQUpCQW5RaUJTQURLQUlZYWlBRUtBSU1OZ0lBSUFBZ0JFRU1haEFDSWdFTkJDQURLQUljSUFWcUlBUW9BZ3cyQWdBZ0FrRUJhaUlDSUFNb0FneEJmMnBKRFFBTERBSUxRUUVoQVNBQVFRRVFBeUlDUVg5R0RRSWdBeUFDUVFGR05nSWdJQUFnQkVFTWFoQUNJZ0VOQWlBRElBUW9BZ3hCQVdvMkFpUU1BUXNnQUNBRVFReHFFQUlpQVEwQklBTWdCQ2dDREVFQmFpSUJOZ0lvSUFNZ0FVRUNkQkFLSWdJMkFpd2dBa1VFUUVILy93TWhBUXdDQ3lBQlJRMEFJQU1vQWd4QkFuUkJyRHRxS0FJQUlRWkJBQ0VDQTBBZ0FDQUdFQU1oQlNBREtBSXNJQUpCQW5ScUlBVTJBZ0JCQVNFQklBVWdBeWdDREU4TkFpQUNRUUZxSWdJZ0F5Z0NLRWtOQUFzTElBQWdCRUVNYWhBQ0lnRU5BRUVCSVFFZ0JDZ0NEQ0lDUVI5TERRQWdBeUFDUVFGcU5nSXdJQUFnQkVFTWFoQUNJZ0VOQUVFQklRRWdCQ2dDREVFZlN3MEFJQUJCQVJBREJFQU1BUXNnQUVFQ0VBTkJBa3NFUUF3QkN5QUFJQVJCQ0dvUUJTSUJEUUFnQkNnQ0NFRWFhaUlCUVROTEJFQkJBU0VCREFFTElBTWdBVFlDTkNBQUlBUkJDR29RQlNJQkRRQWdCQ2dDQ0VFYWFrRXpTd1JBUVFFaEFRd0JDeUFBSUFSQkNHb1FCU0lCRFFCQkFTRUJJQVFvQWdnaUFrRU1ha0VZU3cwQUlBTWdBallDT0NBQVFRRVFBeUlDUVg5R0RRQWdBeUFDUVFGR05nSThJQUJCQVJBRElnSkJmMFlOQUNBRElBSkJBVVkyQWtBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNSQ0FBRUI5QkFDRUJDeUFFUVJCcUpBQWdBUXZxQlFFSmZ3SkFJQUlvQXB3Q1JRUkFEQUVMUVFFaEJnTkFBa0FDUUNBQ0lBVkJGR3hxS0FLZ0FpSUVRUVZMRFFBZ0JFRUJhdzRGQUFBQUFBTUJDeUFGUVFGcUlRVU1BUXNMSUFRaEJnc0Nmd0pBSUFFb0FoQWlCRUVCVFFSQUlBUkJBV3NFUUNBREtBSUFRUVZHQkVBZ0FFSUFOd0lBSUFJb0FoUWhCVUVBSVFRTUF3c2dBQ2dDQUNJRUlBSW9BaFFpQlUwTkFpQUVJQVZySUFFb0FoUWlCMEVCZGtrTkFpQUFLQUlFSUFkcURBTUxRUUFoQlFKL1FRQWdBeWdDQUVFRlJnMEFHaUFBS0FJTUlnY2dBQ2dDQ0NBQ0tBSU1UUTBBR2lBQktBSU1JQWRxQ3lFSFFRQWhCQUovSUFFb0FpUWlDQVJBSUFJb0Fnd2dCMm9oQlFzZ0JTQURLQUlFSWdwRklBVkJBRWR4YXlJSkN3UkFJQWxCZjJvaUF5QURJQWh1SWdzZ0NHeHJJUU1MSUFnRVFDQUJLQUlvSVF4QkFDRUZBMEFnRENBRlFRSjBhaWdDQUNBRWFpRUVJQVZCQVdvaUJTQUlSdzBBQ3dzQ1FDQUpSUVJBUVFBaEJBd0JDeUFFSUF0c0lRUWdBU2dDS0NFSVFRQWhCUU5BSUFnZ0JVRUNkR29vQWdBZ0JHb2hCQ0FGUVFGcUlnVWdBMDBOQUFzTElBcEZCRUFnQVNnQ0hDQUVhaUVFQ3lBR1JRUkFJQUlvQWlBaEF5QUJLQUlnSVFFZ0FpZ0NIQ0VHSUFBZ0J6WUNEQ0FBSUFJb0FndzJBZ2dnQmlBQklBTnFJZ0JCSDNVZ0FIRWdCR3BxRHdzZ0FFSUFOd0lJUVFBUEMwRUFJUVZCQUNFRUlBTW9BZ0JCQlVjRVFDQUFLQUlNSVFVZ0FDZ0NDQ0FDS0FJTUlnUkxCRUFnQVNnQ0RDQUZhaUVGQ3lBRUlBVnFRUUYwSUFNb0FnUkZheUVFQ3lBR1JRUkFJQUFnQlRZQ0RDQUFJQUlvQWd3MkFnZ2dCQThMSUFCQ0FEY0NDRUVBRHdzQ1FDQUZJQVJORFFBZ0JTQUVheUFCS0FJVUlnRkJBWFpORFFBZ0FDZ0NCQ0FCYXd3QkN5QUFLQUlFQ3lFRUlBTW9BZ1JGQkVBZ0JDQUZhaUFDS0FJWUlnQkJIM1VnQUhGcUR3c2dBQ0FFTmdJRUlBSW9BaGdoQVNBR0JFQWdBRUVBTmdJRUlBQkJBQ0FCYXlBQlFSOTFjVFlDQUVFQUR3c2dBQ0FGTmdJQUlBUWdCV29nQVVFZmRTQUJjV29MdkFFQkNIOGdBZ1JBSUFGQmYyb2hCMEVBSUFGclFkZ0JiQ0VJUVFFZ0FXdEIyQUZzSVFrZ0FVRi9jMEhZQVd3aENnTkFJQUFnQmtIWUFXeHFJZ01nQTBHb2ZtcEJBQ0FFR3pZQ3lBRWdBd0ovSUFWRkJFQWdBMEVBTmdMTUFVRUFEQUVMSUFNZ0F5QUlhallDekFFZ0F5QUpha0VBSUFRZ0Iwa2JDellDMEFFZ0F5QURJQXBxUVFBZ0JCdEJBQ0FGR3pZQzFBRkJBQ0FFUVFGcUlnTWdBU0FEUmlJREd5RUVJQU1nQldvaEJTQUdRUUZxSWdZZ0FrY05BQXNMQzNjQkFuOUJBU0VDQWtBZ0FFRUJFQU5CZjBZTkFDQUJJQUJCQWhBRE5nSUVJQUVnQUVFRkVBTWlBRFlDQUNBQVFYNXFRUU5KRFFBQ1FDQUFRUXhMRFFCQkFTQUFkQ0lEUWNBOGNVVUVRQ0FEUWFBRGNVVU5BU0FBUVFaR0RRSWdBU2dDQkEwQkRBSUxJQUVvQWdRTkFRdEJBQ0VDQ3lBQ0M1SVRBUVovSUFBZ0FTZ0NBQ0lOTmdJQUlBQWdBQ2dDeEFGQkFXbzJBc1FCSUFJZ0JSQWRBa0FDUUFKQUFrQUNRQ0FOUVI5R0JFQWdBRUVBTmdJVUlBQW9Bc1FCUVFGTERRRWdBRUVjYWlFSklBRkJ5QUpxSVFSQkZ5RUJJQWNoQUFOQUlBbEJFRHNCQUNBQUlBUW9BZ0E2QUFBZ0FDQUVLQUlFT2dBQklBQWdCQ2dDQ0RvQUFpQUFJQVFvQWd3NkFBTWdBQ0FFS0FJUU9nQUVJQUFnQkNnQ0ZEb0FCU0FBSUFRb0FoZzZBQVlnQUNBRUtBSWNPZ0FISUFBZ0JDZ0NJRG9BQ0NBQUlBUW9BaVE2QUFrZ0FDQUVLQUlvT2dBS0lBQWdCQ2dDTERvQUN5QUFJQVFvQWpBNkFBd2dBQ0FFS0FJME9nQU5JQUFnQkNnQ09Eb0FEaUFBSUFRb0FqdzZBQThnQVNJRFFYOXFJUUVnQ1VFQ2FpRUpJQUJCRUdvaEFDQUVRVUJySVFRZ0F3MEFDeUFDSUFjUUd3d0VDeUFBUVJ4cUlRa2dEUVJBSUFrZ0FTa0NrQUkzQWdBZ0NTQUJLUUcrQWpjQkxpQUpJQUVwQXJnQ053SW9JQWtnQVNrQ3NBSTNBaUFnQ1NBQktRS29BamNDR0NBSklBRXBBcUFDTndJUUlBa2dBU2tDbUFJM0FnZ2dCQ2dDQUNFS0FrQWdBU2dDQ0NJTFJRMEFJQVFnQ2lBTGFpSUtOZ0lBSUFRZ0NrRi9UQVIvSUFwQk5Hb0ZJQXBCTkVnTkFTQUtRVXhxQ3lJS05nSUFDeUFBSUFvMkFoUWdBVUhJRDJvaERDQUJRY2dDYWlFRUFrQUNRQ0FBS0FJQVFRWk5CRUFnQ1M4QkFFVU5BVUVCSVFnZ0JDQUtRUUFnRENnQ0FCQUdSUTBDREFnTElBQXZBVXdFUUNBQlFjZ09haUFLRURFTFFiQTBJUXBCRHlFSUEwQWdDQ0VMSUFRZ0FTQUtLQUlBUVFKMGFrSElEbW9vQWdBaUNEWUNBQUpBQWtBZ0NFVUVRQ0FKTHdFQVJRMEJDMEVCSVFnZ0JDQUFLQUlVUVFFZ0RDZ0NBQkFHUlEwQkRBb0xJQVJCLy8vL0J6WUNBQXNnQ2tFRWFpRUtJQXRCZjJvaENDQU1RUVJxSVF3Z0NVRUNhaUVKSUFSQlFHc2hCQ0FMRFFBTERBUUxJQVJCLy8vL0J6WUNBQXNnQVVHSUEyb2hCQUpBSUFBdkFSNEVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSE1EMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJ5QU5xSVFRQ1FDQUFMd0VnQkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCMEE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUVlnRWFpRUVBa0FnQUM4QklnUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFkUVBhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVSElCR29oQkFKQUlBQXZBU1FFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUhZRDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCaUFWcUlRUUNRQ0FBTHdFbUJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQjNBOXFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFjZ0ZhaUVFQWtBZ0FDOEJLQVJBUVFFaENDQUVJQUFvQWhSQkFDQUJRZUFQYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJQm1vaEJBSkFJQUF2QVNvRVFFRUJJUWdnQkNBQUtBSVVRUUFnQVVIa0Qyb29BZ0FRQmtVTkFRd0hDeUFFUWYvLy93YzJBZ0FMSUFGQnlBWnFJUVFDUUNBQUx3RXNCRUJCQVNFSUlBUWdBQ2dDRkVFQUlBRkI2QTlxS0FJQUVBWkZEUUVNQndzZ0JFSC8vLzhITmdJQUN5QUJRWWdIYWlFRUFrQWdBQzhCTGdSQVFRRWhDQ0FFSUFBb0FoUkJBQ0FCUWV3UGFpZ0NBQkFHUlEwQkRBY0xJQVJCLy8vL0J6WUNBQXNnQVVISUIyb2hCQUpBSUFBdkFUQUVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSHdEMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJpQWhxSVFRQ1FDQUFMd0V5QkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCOUE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUWNnSWFpRUVBa0FnQUM4Qk5BUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFmZ1BhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVR0lDV29oQkFKQUlBQXZBVFlFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUg4RDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCeUFscUlRUUNRQ0FBTHdFNEJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQmdCQnFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFZZ0thaUVFQWtBZ0FDOEJPZ1JBUVFFaENDQUVJQUFvQWhSQkFDQUJRWVFRYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJRUdvaERDQUJRY2dLYWlFRURBSUxJQWxDQURjQ0FDQUpRZ0EzQVM0Z0NVSUFOd0lvSUFsQ0FEY0NJQ0FKUWdBM0FoZ2dDVUlBTndJUUlBbENBRGNDQ0NBQUlBUW9BZ0EyQWhRTUFnc2dBRUtRZ01DQWdJS0FDRGNCSENBQVFwQ0F3SUNBZ29BSU53RkVJQUJDa0lEQWdJQ0NnQWczQVR3Z0FFS1FnTUNBZ0lLQUNEY0JOQ0FBUXBDQXdJQ0Fnb0FJTndFc0lBQkNrSURBZ0lDQ2dBZzNBU1JCQUE4TElBQW9BaGdnQUNnQ0ZHb2lDMEV6SUF0Qk0wZ2JJZ3RCQUNBTFFRQktHMEVDZEVIZ1BXb29BZ0FoQ1FKQUlBQXZBVTVGQkVBZ0FDOEJVRVVOQVFzZ0FVR0lEMm9nQ1JBd0N5QUVJQUZCaUE5cUtBSUFJZ3MyQWdBQ1FBSkFJQXRGQkVBZ0FDOEJQRVVOQVF0QkFTRUlJQVFnQ1VFQklBd29BZ0FRQmtVTkFRd0VDeUFFUWYvLy93YzJBZ0FMSUFRZ0FTZ0NqQThpQ3pZQ1FDQUVRVUJySVFvQ1FBSkFJQXRGQkVBZ0FDOEJQa1VOQVF0QkFTRUlJQW9nQ1VFQklBd29BZ1FRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NrQThpQ3pZQ2dBRWdCRUdBQVdvaENnSkFBa0FnQzBVRVFDQUFRVUJyTHdFQVJRMEJDMEVCSVFnZ0NpQUpRUUVnRENnQ0NCQUdSUTBCREFRTElBcEIvLy8vQnpZQ0FBc2dCQ0FCS0FLVUR5SUxOZ0xBQVNBRVFjQUJhaUVLQWtBQ1FDQUxSUVJBSUFBdkFVSkZEUUVMUVFFaENDQUtJQWxCQVNBTUtBSU1FQVpGRFFFTUJBc2dDa0gvLy84SE5nSUFDeUFFSUFFb0FwZ1BJZ3MyQW9BQ0lBUkJnQUpxSVFvQ1FBSkFJQXRGQkVBZ0FDOEJSRVVOQVF0QkFTRUlJQW9nQ1VFQklBd29BaEFRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NuQThpQ3pZQ3dBSWdCRUhBQW1vaENnSkFBa0FnQzBVRVFDQUFMd0ZHUlEwQkMwRUJJUWdnQ2lBSlFRRWdEQ2dDRkJBR1JRMEJEQVFMSUFwQi8vLy9CellDQUFzZ0JDQUJLQUtnRHlJTE5nS0FBeUFFUVlBRGFpRUtBa0FDUUNBTFJRUkFJQUF2QVVoRkRRRUxRUUVoQ0NBS0lBbEJBU0FNS0FJWUVBWkZEUUVNQkFzZ0NrSC8vLzhITmdJQUN5QUVJQUVvQXFRUElnczJBc0FESUFSQndBTnFJUVFDUUFKQUlBdEZCRUFnQUM4QlNrVU5BUXRCQVNFSUlBUWdDVUVCSUF3b0Fod1FCa1VOQVF3RUN5QUVRZi8vL3djMkFnQUxJQTFCQmtrTkFDQUFJQUVnQWlBRklBWWdCeEJXSWdoRkRRRU1BZ3NnQUNBQklBTWdCU0FDSUFjUVZ5SUlEUUVMUVFBaENBc2dDQXVXSFFFSGZ5TUFRUkJySWdja0FDQUJRUUJCcUJBUUJ5RUZJQUFnQjBFRWFoQUNJUUVnQnlnQ0JDRUlBa0FDUUFKQUlBTkJmbW9pQTBFRlN3MEFBa0FnQTBFQmF3NEVBUUVCQVFBTFFRRWhBeUFCRFFJZ0NFRUdhaUlHUVI5TkRRRU1BZ3RCQVNFRElBRU5BU0FJUVFGcUlnWkJIMHNOQVFzZ0JTQUdOZ0lBQWtBZ0JrRWZSZ1JBQTBBZ0FDZ0NDQVJBSUFCQkFSQURSUTBCREFRTEN5QUZRY2dDYWlFR0EwQWdCeUFBUVFnUUF5SUJOZ0lFSUFGQmYwWU5BeUFHSUFFMkFnQWdCa0VFYWlFR0lBbEJBV29pQ1VHQUEwY05BQXNNQVF0QkFpQUdRUVpISUFaQkJra2JJUW9DUUFKQUlBWkJCRWtOQUNBR1FRVkxEUUFnQUNBSFFReHFFQUlOQVNBSEtBSU1JZ0ZCQTBzTkFTQUZJQUUyQXJBQklBQWdCMEVNYWhBQ0RRRWdCeWdDRENJQlFRTkxEUUVnQlNBQk5nSzBBU0FBSUFkQkRHb1FBZzBCSUFjb0Fnd2lBVUVEU3cwQklBVWdBVFlDdUFFZ0FDQUhRUXhxRUFJTkFTQUhLQUlNSWdGQkEwc05BU0FGSUFFMkFyd0JBa0FnQkVFQ1NRMEFJQVpCQlVZTkFDQUFJQWRCREdvZ0JFRUNTeUlCRUJjTkFpQUhLQUlNSWdnZ0JFOE5BaUFGSUFnMkFzQUJJQUFnQjBFTWFpQUJFQmNOQWlBSEtBSU1JZ2dnQkU4TkFpQUZJQWcyQXNRQklBQWdCMEVNYWlBQkVCY05BaUFIS0FJTUlnZ2dCRThOQWlBRklBZzJBc2dCSUFBZ0IwRU1haUFCRUJjTkFpQUhLQUlNSWdFZ0JFOE5BaUFGSUFFMkFzd0JDeUFISUFVb0FyQUJJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93SFFBU0FBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dIU0FTQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVlnQVEwQUN5QUhJQVVvQXJRQklnRkJBazBFZnlBQlFRSjBRZkEwYWlnQ0FBVkJBd3MyQWd4QkFDRUdBMEFnQUNBSFFRaHFFQVVpQXcwQ0lBVWdCa0VDZEdvaUFTQUhLQUlJT3dIZ0FTQUFJQWRCQ0dvUUJTSUREUUlnQVNBSEtBSUlPd0hpQVNBSElBY29BZ3dpQVVGL2FqWUNEQ0FHUVFGcUlRWWdBUTBBQ3lBSElBVW9BcmdCSWdGQkFrMEVmeUFCUVFKMFFmQTBhaWdDQUFWQkF3czJBZ3hCQUNFR0EwQWdBQ0FIUVFocUVBVWlBdzBDSUFVZ0JrRUNkR29pQVNBSEtBSUlPd0h3QVNBQUlBZEJDR29RQlNJRERRSWdBU0FIS0FJSU93SHlBU0FISUFjb0Fnd2lBVUYvYWpZQ0RDQUdRUUZxSVFZZ0FRMEFDeUFISUFVb0Fyd0JJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93R0FBaUFBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dHQ0FpQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVpCQUNFRElBRU5BQXNNQVF0QkFDRURJQXBCQWtzTkFBSkFBbjhDUUFKQUFrQWdDa0VCYXc0Q0JBRUFDeUFIUVFBMkFnZ2dCU0FBRUE4aUFVRWZkallDRENBQlFRQk9EUUVnQVVFQmRDRUdRUUFNQWdzZ0JFRUNUd1JBUVFNaEFTQUdRUU5OQkVBZ0JrRUNkRUg4Tkdvb0FnQWhBUXNnQkVFQ1N5RUxRUUVoQXdOQUlBQWdCMEVNYWlBTEVCY05CU0FIS0FJTUlnZ2dCRThOQlNBRklBbEJBblJxSUFnMkFwQUJJQUVpQ0VGL2FpRUJJQWxCQVdvaENTQUlEUUFMQzBFRElRTWdCa0VEVFFSQUlBWkJBblJCL0RScUtBSUFJUU1MUVFBaEJnTkFJQU1oQVNBQUlBZEJDR29RQlNJRERRUWdCU0FHUVFKMGFpSUVJQWNvQWdnN0FhQUJJQUFnQjBFSWFoQUZJZ01OQkNBRUlBY29BZ2c3QWFJQklBRkJmMm9oQXlBR1FRRnFJUVlnQVEwQUMwRUFJUU1NQXdzZ0JTQUJRUngyTmdKTUlBRkJCSFFoQmtFQkN5RURJQVVnQmtFZmRqWUNFQ0FGSUFaQkFFZ0VmeUFHUVFGMEJTQUZJQVpCSEhZMkFsQWdBMEVCYWlFRElBWkJCSFFMSWdGQkgzWTJBaFFnQlNBQlFRQklCSDhnQVVFQmRBVWdCU0FCUVJ4Mk5nSlVJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0lZSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNXQ0FEUVFGcUlRTWdBVUVFZEFzaUFVRWZkallDSENBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBbHdnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWlBZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pnSUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJa0lBVWdBVUVBU0FSL0lBRkJBWFFGSUFVZ0FVRWNkallDWkNBRFFRRnFJUU1nQVVFRWRBc2lBVUVmZGpZQ0tDQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pvSUFOQkFXb2hBeUFCUVFSMEN5RUdBa0FnQUNBRFFRTnNRUWhxRUF0QmYwWU5BQ0FIUVFFMkFnZ2dCU0FBRUE4aUFVRWZkallDTEFKL0lBRkJBRWdFUUNBQlFRRjBJUVpCQUF3QkN5QUZJQUZCSEhZMkFtd2dBVUVFZENFR1FRRUxJUU1nQlNBR1FSOTJOZ0l3SUFVZ0JrRUFTQVIvSUFaQkFYUUZJQVVnQmtFY2RqWUNjQ0FEUVFGcUlRTWdCa0VFZEFzaUFVRWZkallDTkNBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBblFnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWpnZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0o0SUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJOElBVkJRR3NnQVVFQVNBUi9JQUZCQVhRRklBVWdBVUVjZGpZQ2ZDQURRUUZxSVFNZ0FVRUVkQXNpQVVFZmRqWUNBQ0FGSUFGQkFFZ0VmeUFCUVFGMEJTQUZJQUZCSEhZMkFvQUJJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0pFSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNoQUVnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWtnZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNpQUVnQTBFQmFpRURJQUZCQkhRTElRWWdBQ0FEUVFOc1FRaHFFQXRCZjBZTkFDQUhJQVkyQWd3Z0IwRUNOZ0lJREFFTElBY2dCallDREVFQklRTU1BUXRCQVNFRElBQWdCMEVNYWhBQ0RRQWdCeWdDRENJQlFRTkxEUUFnQlNBQk5nS01BVUVBSVFNTElBTU5BUUpBSUFwQkFVY0VRQ0FBSUFkQkJHb2dDa1VRTFNJRERRTWdCU0FIS0FJRUlnRTJBZ1FnQVVVTkFnd0JDeUFGSUFVb0FnQWlBVUY1YWlJRFFRSjBRWEJ4SWdSQlVHb2dCQ0FEUVF0TEcwRVBRUUFnQVVFU1N4dHlOZ0lFQzBFQklRTWdBQ0FIUVF4cUVBVU5BU0FIS0FJTUlnRkJHbXBCTTBzTkFTQUZJQUUyQWdnZ0JVR1FBbW9oQ0NBRktBSUVJUVFDUUFKQUlBVW9BZ0JCQjBrRVFFRUFJUWxCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FJSUFsQkFuUnFRYmdOYWlBQUlBZ2dDVUVHZEdwQk9Hb2dBaUFKSUFnUURVRVFFQWtpQTBFUWRqWUNBQ0FEUVE5eERRUWdDQ0FKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FJSUFsQkFYSWlCa0VDZEdwQnVBMXFJQUFnQ0NBR1FRWjBha0U0YWlBQ0lBWWdDQkFOUVJBUUNTSURRUkIyTmdJQUlBTkJEM0VOQkNBSUlBWkJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBZ2dDVUVDY2lJR1FRSjBha0c0RFdvZ0FDQUlJQVpCQm5ScVFUaHFJQUlnQmlBSUVBMUJFQkFKSWdOQkVIWTJBZ0FnQTBFUGNRMEVJQWdnQmtFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQ0NBSlFRTnlJZ1pCQW5ScVFiZ05haUFBSUFnZ0JrRUdkR3BCT0dvZ0FpQUdJQWdRRFVFUUVBa2lBMEVRZGpZQ0FDQURRUTl4RFFRZ0JTQUdRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc01BUXRCQUNFSklBQWdCVUhJRG1vZ0FrRUFJQWdRRFVFUUVBa2lBMEVQY1EwQklBVWdBMEVFZGtIL0FYRTdBY0FDSUFWQmtBSnFJUVpCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FHSUFsQkFuUnFRYmdOYWlBQUlBWWdDVUVHZEdwQlBHb2dBaUFKSUFnUURVRVBFQWtpQTBFUGRqWUNBQ0FEUVE5eERRTWdCaUFKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FHSUFsQkFYSWlDa0VDZEdwQnVBMXFJQUFnQmlBS1FRWjBha0U4YWlBQ0lBb2dDQkFOUVE4UUNTSURRUTkyTmdJQUlBTkJEM0VOQXlBR0lBcEJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBWWdDVUVDY2lJS1FRSjBha0c0RFdvZ0FDQUdJQXBCQm5ScVFUeHFJQUlnQ2lBSUVBMUJEeEFKSWdOQkQzWTJBZ0FnQTBFUGNRMERJQVlnQ2tFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQmlBSlFRTnlJZ3BCQW5ScVFiZ05haUFBSUFZZ0NrRUdkR3BCUEdvZ0FpQUtJQWdRRFVFUEVBa2lBMEVQZGpZQ0FDQURRUTl4RFFNZ0JTQUtRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc0xJQVJCQTNFRVFDQUFJQVZCaUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIQ0FpQUFJQVZCbUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIRUFndEJBQ0VESUFSQkFuRkZEUUFnQUNBRlFjd0thaUFDUVJBZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCaUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzQUlnQUNBRlFZd0xhaUFDUVJFZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCakJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzZ0lnQUNBRlFjd0xhaUFDUVJJZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCa0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0QUlnQUNBRlFZd01haUFDUVJNZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0Z0lnQUNBRlFjd01haUFDUVJRZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1QUlnQUNBRlFZd05haUFDUVJVZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbkJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1Z0lnQUNBRlFjd05haUFDUVJZZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCb0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2QUlnQUNBRlFZd09haUFDUVJjZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCcEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2Z0lMSUFBZ0FDZ0NDQ0FBS0FJRUlBQW9BZ0JyUVFOMGFqWUNFQ0FERFFFTFFRQWhBd3NnQjBFUWFpUUFJQU1McFJRQkRIOENmeUFBS0FMSUFTSUhCRUFnQUNnQ0JDQUhLQUlFUmd3QkMwRUFDeUVLQWtBZ0JrVU5BQ0FLUlEwQVFRQWdDa0VDSUFBb0FzZ0JLQUlBSWdkQkJrY2dCMEVHU1J0QkFrWWJJUW9MQW44Z0FDZ0N6QUVpQndSQUlBQW9BZ1FnQnlnQ0JFWU1BUXRCQUFzaEJ3SkFJQVpGRFFBZ0IwVU5BRUVBSUFkQkFpQUFLQUxNQVNnQ0FDSUhRUVpISUFkQkJra2JRUUpHR3lFSEN3Si9JQUFvQXRRQklna0VRQ0FBS0FJRUlBa29BZ1JHREFFTFFRQUxJUWtDUUNBR1JRMEFJQWxGRFFCQkFpQUFLQUxVQVNnQ0FDSUFRUVpISUFCQkJra2JRUUpISVFrTElBcEJBRWNnQjBFQVIzRWlEU0FKUVFCSGNTRU9JQVZCQWtzaEQwRVFJUXNEUUFKQUlBOUZCRUFDUUFKQUFrQWdCVUVCYXc0Q0FRSUFDeUFCQW44Z0RRUkFJQVF0QUFNZ0JDMEFBaUFFTFFBQklBUXRBQUFnQXkwQUJDQURMUUFESUFNdEFBRWdBeTBBQW1wcWFtcHFhbXBCQkdwQkEzWWhCaUFETFFBSUlBTXRBQWNnQXkwQUJTQURMUUFHYW1wcVFRSnFRUUoyREFFTElBY0VRQ0FETFFBRUlBTXRBQU1nQXkwQUFTQURMUUFDYW1wcVFRSnFRUUoySVFZZ0F5MEFDQ0FETFFBSElBTXRBQVVnQXkwQUJtcHFha0VDYWtFQ2Rnd0JDeUFLUlFSQVFZQUJJUVpCZ0FFTUFRc2dCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYWtFQ2FrRUNkaUlHQzBIL0FYRkJnWUtFQ0d3aUFEWUFIQ0FCSUFaQi93RnhRWUdDaEFoc0lnWTJBQmdnQVNBQU5nQVVJQUVnQmpZQUVDQUJJQUEyQUF3Z0FTQUdOZ0FJSUFFZ0FEWUFCQ0FCSUFZMkFBQUNmeUFLQkVBZ0JDMEFCeUFFTFFBR0lBUXRBQVVnQkMwQUJHcHFhaUlHUVFKcVFRSjJJZ0FnQjBVTkFSb2dBeTBBQ0NBRExRQUhJQU10QUFZZ0JpQURMUUFGYW1wcWFrRUVha0VEZGd3QkN5QUhSUVJBUVlBQklRQkJnQUVNQVFzZ0F5MEFCQ0FETFFBRElBTXRBQUVnQXkwQUFtcHFha0VDYWtFQ2RpRUFJQU10QUFnZ0F5MEFCeUFETFFBRklBTXRBQVpxYW1wQkFtcEJBbllMSVFZZ0FTQUFRZjhCY1VHQmdvUUliQ0lBTmdBZ0lBRWdCa0gvQVhGQmdZS0VDR3dpQmpZQVBDQUJJQUEyQURnZ0FTQUdOZ0EwSUFFZ0FEWUFNQ0FCSUFZMkFDd2dBU0FBTmdBb0lBRWdCallBSkF3REN5QUtSUVJBUVFFUEN5QUJJQVF0QUFBNkFBQWdBU0FFTFFBQU9nQUJJQUVnQkMwQUFEb0FBaUFCSUFRdEFBQTZBQU1nQVNBRUxRQUFPZ0FFSUFFZ0JDMEFBRG9BQlNBQklBUXRBQUE2QUFZZ0FTQUVMUUFBT2dBSElBRWdCQzBBQVRvQUNDQUJJQVF0QUFFNkFBa2dBU0FFTFFBQk9nQUtJQUVnQkMwQUFUb0FDeUFCSUFRdEFBRTZBQXdnQVNBRUxRQUJPZ0FOSUFFZ0JDMEFBVG9BRGlBQklBUXRBQUU2QUE4Z0FTQUVMUUFDT2dBUUlBRWdCQzBBQWpvQUVTQUJJQVF0QUFJNkFCSWdBU0FFTFFBQ09nQVRJQUVnQkMwQUFqb0FGQ0FCSUFRdEFBSTZBQlVnQVNBRUxRQUNPZ0FXSUFFZ0JDMEFBam9BRnlBQklBUXRBQU02QUJnZ0FTQUVMUUFET2dBWklBRWdCQzBBQXpvQUdpQUJJQVF0QUFNNkFCc2dBU0FFTFFBRE9nQWNJQUVnQkMwQUF6b0FIU0FCSUFRdEFBTTZBQjRnQVNBRUxRQURPZ0FmSUFFZ0JDMEFCRG9BSUNBQklBUXRBQVE2QUNFZ0FTQUVMUUFFT2dBaUlBRWdCQzBBQkRvQUl5QUJJQVF0QUFRNkFDUWdBU0FFTFFBRU9nQWxJQUVnQkMwQUJEb0FKaUFCSUFRdEFBUTZBQ2NnQVNBRUxRQUZPZ0FvSUFFZ0JDMEFCVG9BS1NBQklBUXRBQVU2QUNvZ0FTQUVMUUFGT2dBcklBRWdCQzBBQlRvQUxDQUJJQVF0QUFVNkFDMGdBU0FFTFFBRk9nQXVJQUVnQkMwQUJUb0FMeUFCSUFRdEFBWTZBREFnQVNBRUxRQUdPZ0F4SUFFZ0JDMEFCam9BTWlBQklBUXRBQVk2QURNZ0FTQUVMUUFHT2dBMElBRWdCQzBBQmpvQU5TQUJJQVF0QUFZNkFEWWdBU0FFTFFBR09nQTNJQUVnQkMwQUJ6b0FPQ0FCSUFRdEFBYzZBRGtnQVNBRUxRQUhPZ0E2SUFFZ0JDMEFCem9BT3lBQklBUXRBQWM2QUR3Z0FTQUVMUUFIT2dBOUlBRWdCQzBBQnpvQVBpQUJJQVF0QUFjNkFEOE1BZ3NnQjBVRVFFRUJEd3NnQVNBRExRQUJPZ0FBSUFFZ0F5MEFBVG9BQ0NBQklBTXRBQUU2QUJBZ0FTQURMUUFCT2dBWUlBRWdBeTBBQVRvQUlDQUJJQU10QUFFNkFDZ2dBU0FETFFBQk9nQXdJQUVnQXkwQUFUb0FPQ0FCSUFNdEFBSTZBQUVnQVNBRExRQUNPZ0FKSUFFZ0F5MEFBam9BRVNBQklBTXRBQUk2QUJrZ0FTQURMUUFDT2dBaElBRWdBeTBBQWpvQUtTQUJJQU10QUFJNkFERWdBU0FETFFBQ09nQTVJQUVnQXkwQUF6b0FBaUFCSUFNdEFBTTZBQW9nQVNBRExRQURPZ0FTSUFFZ0F5MEFBem9BR2lBQklBTXRBQU02QUNJZ0FTQURMUUFET2dBcUlBRWdBeTBBQXpvQU1pQUJJQU10QUFNNkFEb2dBU0FETFFBRU9nQURJQUVnQXkwQUJEb0FDeUFCSUFNdEFBUTZBQk1nQVNBRExRQUVPZ0FiSUFFZ0F5MEFCRG9BSXlBQklBTXRBQVE2QUNzZ0FTQURMUUFFT2dBeklBRWdBeTBBQkRvQU95QUJJQU10QUFVNkFBUWdBU0FETFFBRk9nQU1JQUVnQXkwQUJUb0FGQ0FCSUFNdEFBVTZBQndnQVNBRExRQUZPZ0FrSUFFZ0F5MEFCVG9BTENBQklBTXRBQVU2QURRZ0FTQURMUUFGT2dBOElBRWdBeTBBQmpvQUJTQUJJQU10QUFZNkFBMGdBU0FETFFBR09nQVZJQUVnQXkwQUJqb0FIU0FCSUFNdEFBWTZBQ1VnQVNBRExRQUdPZ0F0SUFFZ0F5MEFCam9BTlNBQklBTXRBQVk2QUQwZ0FTQURMUUFIT2dBR0lBRWdBeTBBQnpvQURpQUJJQU10QUFjNkFCWWdBU0FETFFBSE9nQWVJQUVnQXkwQUJ6b0FKaUFCSUFNdEFBYzZBQzRnQVNBRExRQUhPZ0EySUFFZ0F5MEFCem9BUGlBQklBTXRBQWc2QUFjZ0FTQURMUUFJT2dBUElBRWdBeTBBQ0RvQUZ5QUJJQU10QUFnNkFCOGdBU0FETFFBSU9nQW5JQUVnQXkwQUNEb0FMeUFCSUFNdEFBZzZBRGNnQVNBRExRQUlPZ0EvREFFTElBNUZCRUJCQVE4TElBTXRBQVVnQXkwQUEyc2dBeTBBQmlBRExRQUNhMEVCZEdvZ0F5MEFCeUFETFFBQmEwRURiR29nQXkwQUNDSUFJQU10QUFBaUNXdEJBblJxUVJGc1FSQnFRUVYxSWdaQmZXd2hFQ0FBSUFRdEFBY2lER3BCQkhRZ0JDMEFCQ0FFTFFBQ2F5QU1JQWxyUVFKMGFpQUVMUUFGSUFRdEFBRnJRUUYwYWlBRUxRQUdJQVF0QUFCclFRTnNha0VSYkVFUWFrRUZkU0lSUVgxc2FrRVFhaUVKUVFnaERDQUJJUUFEUUNBQUlBa2dFR29pQ0VFRmRVR3dMbW90QUFBNkFBQWdBQ0FHSUFocUlnaEJCWFZCc0M1cUxRQUFPZ0FCSUFBZ0JpQUlhaUlJUVFWMVFiQXVhaTBBQURvQUFpQUFJQVlnQ0dvaUNFRUZkVUd3TG1vdEFBQTZBQU1nQUNBR0lBaHFJZ2hCQlhWQnNDNXFMUUFBT2dBRUlBQWdCaUFJYWlJSVFRVjFRYkF1YWkwQUFEb0FCU0FBSUFZZ0NHb2lDRUVGZFVHd0xtb3RBQUE2QUFZZ0FDQUdJQWhxUVFWMVFiQXVhaTBBQURvQUJ5QUpJQkZxSVFrZ0FFRUlhaUVBSUF4QmYyb2lEQTBBQ3dzZ0FTQUNJQXNRQ0NBQklBSkJRR3NnQzBFQmNoQUlJQUVnQWtHQUFXb2dDMEVDY2hBSUlBRWdBa0hBQVdvZ0MwRURjaEFJSUFKQmdBSnFJUUlnQkVFSWFpRUVJQU5CQ1dvaEF5QUJRVUJySVFFZ0MwRUVhaUVMSUJKQkFXb2lFa0VDUncwQUMwRUFDNkVWQWhoL0FuNENmd05BQW44Z0FDSUlJQlpCQTNSQnNEVnFLUUlBSWg2bkVCRWlDU0lHQkVBZ0NDZ0NCQ0FHS0FJRVJnd0JDMEVBQ3lFTkFrQWdCVVVOQUNBTlJRMEFRUUFnRFVFQ0lBa29BZ0FpQmtFR1J5QUdRUVpKRzBFQ1Joc2hEUXNDZnlBSUlCWkJBM1JCOERacUtRSUFJaCtuRUJFaUJ5SUdCRUFnQ0NnQ0JDQUdLQUlFUmd3QkMwRUFDeUVQQWtBZ0JVVU5BQ0FQUlEwQVFRQWdEMEVDSUFjb0FnQWlCa0VHUnlBR1FRWkpHMEVDUmhzaER3dEJBaUVNSUExQkFFY2dEMEVBUjNFaUVrRUJSZ1JBUVFJaEJnSi9RUUlnQ1NnQ0FDSUxRUVpISUF0QkJra2JSUVJBSUFrZ0hrSWdpS2RCL3dGeGFpMEFVaUVHQ3lBR0N3Si9RUUlnQnlnQ0FDSUpRUVpISUFsQkJra2JSUVJBSUFjZ0gwSWdpS2RCL3dGeGFpMEFVaUVNQ3lBTUN5QUdJQXhKR3lFTUN5QUNJQlpCQW5RaUNXb2lCaWdDREVVRVFDQUdLQUpNSWdZZ0JpQU1UMm9oREFzZ0NDQVdhaUFNT2dCU0FuOGdDQ0FXUVFOMFFiQTRhaWdDQUJBUklnWWlCd1JBSUFnb0FnUWdCeWdDQkVZTUFRdEJBQXNoRGdKQUlBVkZEUUFnRGtVTkFFRUFJQTVCQWlBR0tBSUFJZ1pCQmtjZ0JrRUdTUnRCQWtZYklRNExBbjhnQUNBV1FRTjBRZkE1YWlnQ0FCQVJJZ2dpQmdSQUlBQW9BZ1FnQmlnQ0JFWU1BUXRCQUFzaEVRSkFJQVZGRFFBZ0VVVU5BRUVBSUJGQkFpQUlLQUlBSWdoQkJrY2dDRUVHU1J0QkFrWWJJUkVMSUFsQjhDbHFLQUlBSVJjZ0NVR3dLV29vQWdBaEdBSi9RWVVLSUJaMlFRRnhJaHdFUUNBWFFRTnFJUWNnQkNBWGFpSUlRUUpxSVFZZ0NFRUJhaUVMSUFRTUFRc2dGMEVFZENBWWFpSUlRUzlxSVFjZ0FTQUlhaUlJUVI5cUlRWWdDRUVQYWlFTElBaEJmMm9oQ0NBQkN5RUpJQWNnQ1dvdEFBQWhDaUFHTFFBQUlSQWdDeTBBQUNFVElBZ3RBQUFoRkFKQVFUTWdGblpCQVhFRVFDQURJQmhxSWdjdEFBZ2hHeUFITFFBSElSa2dCeTBBQmlFVklBY3RBQVVoR2lBSExRQUVJUVlnQnkwQUF5RUxJQWN0QUFJaENTQUhMUUFCSVFnTUFRc2dBU0FYUVg5cUloMUJCSFFnR0dwcUlnY3RBQUFoQ0NBSExRQUhJUnNnQnkwQUJpRVpJQWN0QUFVaEZTQUhMUUFFSVJvZ0J5MEFBeUVHSUFjdEFBSWhDeUFITFFBQklRa2dIQVJBSUFRZ0hXb2hCd3dCQ3lBSFFYOXFJUWNMQWtBZ0RFRUhUUVJBSUFjdEFBQWhCd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQWdERUVCYXc0SEFRSURCQVVHQndBTElBOUZCRUJCQVE4TElBaEIvd0Z4SUF0Qi93RnhRUkIwSUFaQkdIUnljaUFKUWY4QmNVRUlkSEloRlNBSUlnd2hEU0FKSWc0aEVpQUxJZzhoQ2lBR0loRWhCd3dJQ3lBTlJRUkFRUUVQQ3lBS1FZR0NoQWhzSVJVZ0VFR0Jnb1FJYkNJTlFSaDJJUWNnRFVFUWRpRUtJQTFCQ0hZaEVpQVRRWUdDaEFoc0lneEJHSFloRVNBTVFSQjJJUThnREVFSWRpRU9JQlJCZ1lLRUNHd2lDRUVZZGlFR0lBaEJFSFloQ3lBSVFRaDJJUWtNQndzQ2Z5QVRJQlJxSUFwcUlCQnFJQVpCL3dGeGFpQUxRZjhCY1dvZ0NVSC9BWEZxSUFoQi93Rnhha0VFYWtFRGRpQVNEUUFhSUJNZ0ZHb2dDbW9nRUdwQkFtcEJBbllnRFEwQUdrR0FBU0FQUlEwQUdpQUdRZjhCY1NBTFFmOEJjV29nQ1VIL0FYRnFJQWhCL3dGeGFrRUNha0VDZGdzaUNFR0Jnb1FJYkNFVklBZ2lDU0lMSWdZaURDSU9JZzhpRVNJTkloSWlDaUVIREFZTElBOUZCRUJCQVE4TElBWkIvd0Z4SWcxQkFtb2lFU0FWSUFZZ0RodEIvd0Z4SWdkcUlCb2dCaUFPRzBIL0FYRWlDa0VCZEdwQkFuWWlEeUFaSUFZZ0RodEIvd0Z4SWd3Z0d5QUdJQTRiUWY4QmNTSUdRUU5zYWtFV2RFR0FnSUFFYWtHQWdJQjRjWElnQ2lBTWFpQUhRUUYwYWtFQ2FpSVFRUVowUVlEK0EzRnlJQVlnQjJvZ0RFRUJkR3BCQW1vaUJrRU9kRUdBZ1B3SGNYSWhGU0FHUVFKMklRY2dDMEgvQVhFaUJrRUNhaUlMSUFoQi93RnhhaUFKUWY4QmNTSUpRUUYwYWtFQ2RpRUlJQWtnRVdvZ0JrRUJkR3BCQW5ZaUNTRU1JQW9nQzJvZ0RVRUJkR3BCQW5ZaUN5RU9JQXNoRFNBUElnWWhFaUFRUVFKMkloRWhDZ3dGQzBFQklCRkZJQkpCQVhOeURRWWFJQlFnRTBFQmRHb2dFR3BCQW1vaURrRUdkRUdBL2dOeElBb2dFMEVDYWlJUGFpQVFRUUYwYWtFQ2RuSWdDRUgvQVhFaUNrRUNhaUlNSUJScUlBZEJBWFJxUVFKMklnaEJHSFJ5SUE4Z0ZFRUJkR29nQjJvaUVFRU9kRUdBZ1B3SGNYSWhGU0FKUWY4QmNTSVJRUUpxSWdrZ0JrSC9BWEZxSUF0Qi93RnhJZ3RCQVhScVFRSjJJUVlnRGtFQ2RpRU5JQWtnQ2tFQmRHb2dCMnBCQW5ZaUNTRVBJQkZCQVhRZ0Myb2dER3BCQW5ZaUN5RVJJQkJCQW5ZaURDRVNJQWdpRGlFS0lBa2hCd3dFQzBFQklCRkZJQkpCQVhOeURRVWFJQWhCL3dGeElncEJBbW9pRGlBTFFmOEJjU0lJSUFsQi93RnhJZ3RCQVhScWFrRUNkaUlQUVJoMElCUWdFMEVCZEdvZ0VHcEJBbXBCQW5aeUlBNGdGR29nQjBFQmRHb2lDVUVHZEVHQS9nTnhjaUFMUVFKcUlnNGdDa0VCZEdvZ0Iyb2lEVUVPZEVHQWdQd0hjWEloRlNBSVFRRnFJaEFnQmtIL0FYRWlER3BCQVhZaEJpQU1JQTVxSUFoQkFYUnFRUUoySVJFZ0NVRUNkaUVNSUExQkFuWWhEaUFUSUJSQkFYUnFJQWRxUVFKcVFRSjJJUTBnQnlBS2FrRUJha0VCZGlJSUlSSWdDaUFMYWtFQmFrRUJkaUlKSVFvZ0N5QVFha0VCZGlJTElRY01Bd3RCQVNBUlJTQVNRUUZ6Y2cwRUdpQVRRUUpxSWc0Z0Ntb2dFRUVCZEdwQkJuUkJnUDREY1NBUUlCTnFRUUZxSWc5QkQzUkJnSUQ4QjNFZ0ZFRUNhaUlNSUJOQkFYUnFJQkJxUVFKMkloSkJHSFJ5SUFvZ0VHcEJBV3BCQVhaeWNpRVZJQWhCL3dGeElnZ2dDMEgvQVhGcUlBbEIvd0Z4SWdsQkFYUnFRUUpxUVFKMklRWWdDU0FJUVFGMGFpQUhha0VDYWtFQ2RpRUxJQTlCQVhZaERTQUlJQXhxSUFkQkFYUnFRUUoySWhFaENTQVVRUUZxSWdvZ0IycEJBWFlpQ0NFUElBb2dFMnBCQVhZaURDRUtJQTRnRkVFQmRHb2dCMnBCQW5ZaURpRUhEQUlMSUE5RkJFQkJBUThMSUJvZ0JpQU9HMEgvQVhFaUNpQVpJQVlnRGh0Qi93RnhhaUFWSUFZZ0RodEIvd0Z4SWdkQkFYUnFRUlowSUF0Qi93RnhJZ3RCQW1vaURDQUthaUFHUWY4QmNTSUdRUUYwYWlJUFFRWjBja0dBZ0lBRWFrR0Evb040Y1NBR1FRSnFJZzBnQ1VIL0FYRWlDV29nQzBFQmRHcEJBbllpRG5JZ0J5QU5haUFLUVFGMGFpSU5RUTUwUVlDQS9BZHhjaUVWSUFjZ0NtcEJBV3BCQVhZaEJ5QU5RUUoySVJFZ0NTQUlRZjhCY1NJTmFrRUJha0VCZGlFSUlBOUJBblloRHlBTUlBMXFJQWxCQVhScVFRSjJJUXdnQ1NBTGFrRUJha0VCZGlJSklRMGdCa0VCYWlJR0lBdHFRUUYySWdzaEVpQUdJQXBxUVFGMklnWWhDZ3dCQ3lBTlJRUkFRUUVQQ3lBS1FRaDBJQXB5SUFwQkVIUnlJQXBCR0hSeUlSVWdFRUVDYWlJSElCUnFJQk5CQVhScVFRSjJJUWtnRTBFQmFpSUdJQlJxUVFGMklRZ2dCaUFRYWtFQmRpSUxJUXdnQ2lBVGFpQVFRUUYwYWtFQ2FrRUNkaUlHSVE0Z0NpQVFha0VCYWtFQmRpSVBJUTBnQnlBS1FRTnNha0VDZGlJUklSSWdDaUVIQ3lBQklCZEJCSFFnR0dwcUloQWdGVFlDTUNBUUlBMUIvd0Z4SUJKQi93RnhRUWgwY2lBS1FmOEJjVUVRZEhJZ0IwRVlkSEkyQWlBZ0VDQU1RZjhCY1NBT1FmOEJjVUVJZEhJZ0QwSC9BWEZCRUhSeUlCRkJHSFJ5TmdJUUlCQWdDRUgvQVhFZ0NVSC9BWEZCQ0hSeUlBdEIvd0Z4UVJCMGNpQUdRUmgwY2pZQ0FDQUJJQUlnRmtFR2RHcEJ5QUpxSUJZUUNDQVdRUUZxSWhaQkVFY05BQXRCQUFzTHhSSUJFSDhDZnlBQUtBTElBU0lIQkVBZ0FDZ0NCQ0FIS0FJRVJnd0JDMEVBQ3lFSEFrQWdCVVVOQUNBSFJRMEFRUUFnQjBFQ0lBQW9Bc2dCS0FJQUlnZEJCa2NnQjBFR1NSdEJBa1liSVFjTEFuOGdBQ2dDekFFaUNBUkFJQUFvQWdRZ0NDZ0NCRVlNQVF0QkFBc2hDQUpBSUFWRkRRQWdDRVVOQUVFQUlBaEJBaUFBS0FMTUFTZ0NBQ0lJUVFaSElBaEJCa2tiUVFKR0d5RUlDd0ovSUFBb0F0UUJJZ2tFUUNBQUtBSUVJQWtvQWdSR0RBRUxRUUFMSVFrQ1FDQUZSUTBBSUFsRkRRQkJBaUFBS0FMVUFTZ0NBQ0lGUVFaSElBVkJCa2tiUVFKSElRa0xBa0FDUUNBQUtBSUFRUUZxUVFOeElnQkJBazBFUUFKQUFrQUNRQ0FBUVFGckRnSUJBZ0FMSUFoRkJFQkJBUThMUVFBaEJTQUJJUUFEUUNBQUlBTXRBQUU2QUFBZ0FDQURMUUFDT2dBQklBQWdBeTBBQXpvQUFpQUFJQU10QUFRNkFBTWdBQ0FETFFBRk9nQUVJQUFnQXkwQUJqb0FCU0FBSUFNdEFBYzZBQVlnQUNBRExRQUlPZ0FISUFBZ0F5MEFDVG9BQ0NBQUlBTXRBQW82QUFrZ0FDQURMUUFMT2dBS0lBQWdBeTBBRERvQUN5QUFJQU10QUEwNkFBd2dBQ0FETFFBT09nQU5JQUFnQXkwQUR6b0FEaUFBSUFNdEFCQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3REN5QUhSUVJBUVFFUEMwRUFJUVVnQVNFQUEwQWdBQ0FFSUFWcUlnTXRBQUE2QUFBZ0FDQURMUUFBT2dBQklBQWdBeTBBQURvQUFpQUFJQU10QUFBNkFBTWdBQ0FETFFBQU9nQUVJQUFnQXkwQUFEb0FCU0FBSUFNdEFBQTZBQVlnQUNBRExRQUFPZ0FISUFBZ0F5MEFBRG9BQ0NBQUlBTXRBQUE2QUFrZ0FDQURMUUFBT2dBS0lBQWdBeTBBQURvQUN5QUFJQU10QUFBNkFBd2dBQ0FETFFBQU9nQU5JQUFnQXkwQUFEb0FEaUFBSUFNdEFBQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3Q0N5QUJBbjhDUUNBSFJRMEFJQWhGRFFBZ0JDMEFEeUFETFFBUUlBUXRBQTRnQXkwQUR5QUVMUUFOSUFNdEFBNGdCQzBBRENBRExRQU5JQVF0QUFzZ0F5MEFEQ0FFTFFBS0lBTXRBQXNnQkMwQUNTQURMUUFLSUFRdEFBZ2dBeTBBQ1NBRUxRQUhJQU10QUFnZ0JDMEFCaUFETFFBSElBUXRBQVVnQXkwQUJpQUVMUUFFSUFNdEFBVWdCQzBBQXlBRExRQUVJQVF0QUFJZ0F5MEFBeUFFTFFBQklBTXRBQUlnQXkwQUFTQUVMUUFBYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFrRVFha0VGZGd3QkN5QUhCRUFnQkMwQUR5QUVMUUFPSUFRdEFBMGdCQzBBRENBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSUlBUXRBQWNnQkMwQUJpQUVMUUFGSUFRdEFBUWdCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYW1wcWFtcHFhbXBxYW1wcWFrRUlha0VFZGd3QkMwR0FBU0FJUlEwQUdpQURMUUFRSUFNdEFBOGdBeTBBRGlBRExRQU5JQU10QUF3Z0F5MEFDeUFETFFBS0lBTXRBQWtnQXkwQUNDQURMUUFISUFNdEFBWWdBeTBBQlNBRExRQUVJQU10QUFNZ0F5MEFBU0FETFFBQ2FtcHFhbXBxYW1wcWFtcHFhbXBxUVFocVFRUjJDMEdBQWhBSEdnd0JDMEVCSVFBZ0IwVU5BU0FJUlEwQklBbEZEUUVnQkMwQUNDQUVMUUFHYXlBRUxRQVBJZ0FnQXkwQUFDSUZhMEVEZEdvZ0JDMEFDU0FFTFFBRmEwRUJkR29nQkMwQUNpQUVMUUFFYTBFRGJHb2dCQzBBQ3lBRUxRQURhMEVDZEdvZ0JDMEFEQ0FFTFFBQ2EwRUZiR29nQkMwQURTQUVMUUFCYTBFR2JHb2dCQzBBRGlBRUxRQUFhMEVIYkdwQkJXeEJJR3BCQm5VaEJ5QURMUUFKSUFNdEFBZHJJQU10QUFvZ0F5MEFCbXRCQVhScUlBTXRBQXNnQXkwQUJXdEJBMnhxSUFNdEFBd2dBeTBBQkd0QkFuUnFJQU10QUEwZ0F5MEFBMnRCQld4cUlBTXRBQTRnQXkwQUFtdEJCbXhxSUFNdEFBOGdBeTBBQVd0QkIyeHFJQU10QUJBaUF5QUZhMEVEZEdwQkJXeEJJR3BCQm5VaUJFRURkQ0VJSUFSQkIyd2hDU0FFUVFac0lRb2dCRUVGYkNFTElBUkJBMndoRENBRVFYMXNJUTBnQkVGN2JDRU9JQVJCZW13aER5QUVRWGxzSVJCQkFDQUVRUUYwSWhGcklSSkJBQ0FFUVFKMEloTnJJUlFnQUNBRGFrRUVkRUVRYWlFVlFRQWhCUU5BSUFFZ0JVRUVkQ0lBYWlBVklBVkJlV29nQjJ4cUlnTWdFR3BCQlhVaUJrSC9BU0FHUWY4QlNCc2lCa0VBSUFaQkFFb2JPZ0FBSUFFZ0FFRUJjbW9nQXlBUGFrRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFKeWFpQURJQTVxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJBM0pxSUFNZ0ZHcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFRWNtb2dBeUFOYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUVZ5YWlBRElCSnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkJuSnFJQU1nQkd0QkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVIY21vZ0EwRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFoeWFpQURJQVJxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJDWEpxSUFNZ0VXcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFS2Ntb2dBeUFNYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUXR5YWlBRElCTnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkRISnFJQU1nQzJwQkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVOY21vZ0F5QUtha0VGZFNJR1FmOEJJQVpCL3dGSUd5SUdRUUFnQmtFQVNoczZBQUFnQVNBQVFRNXlhaUFESUFscVFRVjFJZ1pCL3dFZ0JrSC9BVWdiSWdaQkFDQUdRUUJLR3pvQUFDQUJJQUJCRDNKcUlBTWdDR3BCQlhVaUFFSC9BU0FBUWY4QlNCc2lBRUVBSUFCQkFFb2JPZ0FBSUFWQkFXb2lCVUVRUncwQUN3dEJBQ0VBSUFFZ0FrRUFFQWdnQVNBQ1FVQnJRUUVRQ0NBQklBSkJnQUZxUVFJUUNDQUJJQUpCd0FGcVFRTVFDQ0FCSUFKQmdBSnFRUVFRQ0NBQklBSkJ3QUpxUVFVUUNDQUJJQUpCZ0FOcVFRWVFDQ0FCSUFKQndBTnFRUWNRQ0NBQklBSkJnQVJxUVFnUUNDQUJJQUpCd0FScVFRa1FDQ0FCSUFKQmdBVnFRUW9RQ0NBQklBSkJ3QVZxUVFzUUNDQUJJQUpCZ0FacVFRd1FDQ0FCSUFKQndBWnFRUTBRQ0NBQklBSkJnQWRxUVE0UUNDQUJJQUpCd0FkcVFROFFDQXNnQUF1N0NBRUhmd0pBSUFORkRRQWdBQ2dDQUNBRElBQW9BZ1FpQlc0aUNDQUZiQ0lFUVFoMGFpQURJQVJySWdkQkJIUnFJUVlnQlVFRWRDRUVJQUFvQWdnaENTQUZJQU5MSWdwRkJFQWdBU0FHSUFSQkFYSnJJZ010QUFBNkFBQWdBU0FETFFBQk9nQUJJQUVnQXkwQUFqb0FBaUFCSUFNdEFBTTZBQU1nQVNBRExRQUVPZ0FFSUFFZ0F5MEFCVG9BQlNBQklBTXRBQVk2QUFZZ0FTQURMUUFIT2dBSElBRWdBeTBBQ0RvQUNDQUJJQU10QUFrNkFBa2dBU0FETFFBS09nQUtJQUVnQXkwQUN6b0FDeUFCSUFNdEFBdzZBQXdnQVNBRExRQU5PZ0FOSUFFZ0F5MEFEam9BRGlBQklBTXRBQTg2QUE4Z0FTQURMUUFRT2dBUUlBRWdBeTBBRVRvQUVTQUJJQU10QUJJNkFCSWdBU0FETFFBVE9nQVRJQUVnQXkwQUZEb0FGQ0FCUVJWcUlRRUxJQWNFUUNBQ0lBWkJmMm9pQXkwQUFEb0FBQ0FDSUFNZ0JHb2lBeTBBQURvQUFTQUNJQU1nQkdvaUF5MEFBRG9BQWlBQ0lBTWdCR29pQXkwQUFEb0FBeUFDSUFNZ0JHb2lBeTBBQURvQUJDQUNJQU1nQkdvaUF5MEFBRG9BQlNBQ0lBTWdCR29pQXkwQUFEb0FCaUFDSUFNZ0JHb2lBeTBBQURvQUJ5QUNJQU1nQkdvaUF5MEFBRG9BQ0NBQ0lBTWdCR29pQXkwQUFEb0FDU0FDSUFNZ0JHb2lBeTBBQURvQUNpQUNJQU1nQkdvaUF5MEFBRG9BQ3lBQ0lBTWdCR29pQXkwQUFEb0FEQ0FDSUFNZ0JHb2lBeTBBQURvQURTQUNJQU1nQkdvaUF5MEFBRG9BRGlBQ0lBTWdCR290QUFBNkFBOGdBa0VRYWlFQ0N5QUFLQUlBSUFVZ0NXd2lCRUVJZEdvZ0NDQUZRUU4wSWdCc1FRTjBhaUFIUVFOMGFpRUdJQUJCK1AvLy93ZHhJUUFnQ2tVRVFDQUJJQVlnQUVFQmNtc2lBeTBBQURvQUFDQUJJQU10QUFFNkFBRWdBU0FETFFBQ09nQUNJQUVnQXkwQUF6b0FBeUFCSUFNdEFBUTZBQVFnQVNBRExRQUZPZ0FGSUFFZ0F5MEFCam9BQmlBQklBTXRBQWM2QUFjZ0FTQURRUWhxSWdNdEFBQTZBQWdnQVNBRVFRWjBJQU5xSWdOQmVHb3RBQUE2QUFrZ0FTQURRWGxxTFFBQU9nQUtJQUVnQTBGNmFpMEFBRG9BQ3lBQklBTkJlMm90QUFBNkFBd2dBU0FEUVh4cUxRQUFPZ0FOSUFFZ0EwRjlhaTBBQURvQURpQUJJQU5CZm1vdEFBQTZBQThnQVNBRFFYOXFMUUFBT2dBUUlBRWdBeTBBQURvQUVRc2dCMFVOQUNBQ0lBWkJmMm9pQVMwQUFEb0FBQ0FDSUFBZ0FXb2lBUzBBQURvQUFTQUNJQUFnQVdvaUFTMEFBRG9BQWlBQ0lBQWdBV29pQVMwQUFEb0FBeUFDSUFBZ0FXb2lBUzBBQURvQUJDQUNJQUFnQVdvaUFTMEFBRG9BQlNBQ0lBQWdBV29pQVMwQUFEb0FCaUFDSUFBZ0FXb2lBUzBBQURvQUJ5QUNJQUFnQVdvZ0JDQUZhMEVHZEdvaUFTMEFBRG9BQ0NBQ0lBQWdBV29pQVMwQUFEb0FDU0FDSUFBZ0FXb2lBUzBBQURvQUNpQUNJQUFnQVdvaUFTMEFBRG9BQ3lBQ0lBQWdBV29pQVMwQUFEb0FEQ0FDSUFBZ0FXb2lBUzBBQURvQURTQUNJQUFnQVdvaUFTMEFBRG9BRGlBQ0lBQWdBV290QUFBNkFBOExDNjhCQVFGL0l3QkIwQUJySWdZa0FDQUNJQVpCSUdvZ0JpQURFRlVDUUFKQVFRSWdBQ2dDQUNJRFFRWkhJQU5CQmtrYlFRRkdCRUFnQUNBRklBRkJ5QUpxSUFaQklHb2dCaUFFRUZRaUEwVU5BUXdDQ3lBQUlBVWdBU0FHUVNCcUlBWWdCQkJUSWdNTkFRc2dBQ0FGUVlBQ2FpQUJRY2dLYWlBR1FUVnFJQVpCRUdvZ0FTZ0NqQUVnQkJCU0lnTU5BRUVBSVFNZ0FDZ0N4QUZCQVVzTkFDQUNJQVVRR3dzZ0JrSFFBR29rQUNBREM2TXFBU1IvSXdCQklHc2lFQ1FBSUJBZ0JDZ0NCQ0lJTmdJTUlCQWdCQ2dDQ0RZQ0VDQURJQWh1SWdaQkJIUWhGQ0FESUFZZ0NHeHJRUVIwSVJVQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFBb0FnQWlCa0VEVFFSQUFrQUNRQUpBSUFaQkFtc09BZ0VDQUFzZ0FTZ0NrQUVoRXlBQUtBSUVJUTVCZnlFUEFuOGdBQ2dDeUFFaUNVVUVRRUVBSVFoQmZ3d0JDMEVBSVFoQmZ5QUpLQUlFSUE1SERRQWFRUUVoRWtGL0lBa29BZ0JCQlVzTkFCb2dDU2dDbUFFaUNFRVFkaUVISUFrb0FtZ0xJUTBnQUNnQ3pBRWlDVVVOQ0NBSktBSUVJQTVIRFFoQkFTRVdJQWtvQWdCQkJVc05DQ0FKS0FLc0FTSVJRUkIySVFvZ0NTZ0NiQ0VQREFnTElBRW9BcEFCSVJNZ0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhDMEYvSVFjQ1FDQUFLQUxNQVNJR1JRMEFJQXNnQmlnQ0JFY0VRQXdCQzBFQklSSWdCaWdDQUVFRlN3MEFJQVlvQXF3QklnbEJFSFloQ2lBR0tBSnNJUWNMSUFjZ0UwWUVRQ0FLSVFjZ0NTRUdEQWNMUVg4aER3SkFBa0FDUUNBQUtBTElBU0lJUlFSQVFRQWhCd3dCQzBFQUlRY2dDQ2dDQkNBTFJnMEJDMEVBSVFZTUFRdEJBU0VYSUFnb0FnQkJCVXNFUUVFQUlRWU1BUXNnQ0NnQ21BRWlCa0VRZGlFSElBZ29BbWdoRHdzQ1FBSkFJQUFvQXRBQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVTBOQVF3R0N3SkFJQUFvQXRRQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVXNOQmlBSUtBSndJUllnQ0NnQ3dBRWhDQXdIQzBFQUlRaEJmeUVXSUJJTkJpQVhSUTBHREFjTElBZ29BbXdoRmlBSUtBS3NBU0VJREFVTElBRW9BcEFCSVE4Z0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhCa0YvSVFjQ1FDQUFLQUxJQVNJS1JRUkFRUUFoQ0F3QkMwRUFJUWdnQmlBS0tBSUVSd1JBREFFTFFRRWhFU0FLS0FJQVFRVkxEUUFnQ2lnQ21BRWlDVUVRZGlFSUlBb29BbWdoQndzZ0J5QVBSZzBCQW44Q2Z3SkFBa0FnQUNnQ3pBRWlCMFVOQUNBSEtBSUVJQVpIRFFBZ0J5Z0NBRUVGU3cwQklBY29BbkFoRVNBSEtBSzhBU0VLSUFjb0Ftd2hFaUFIS0FLc0FTSUdRUkIyREFNTEFrQWdBQ2dDMUFFaUIwVU5BQ0FIS0FJRUlBWkhEUUJCQUNFR1FYOGhFaUFIS0FJQVFRVkxCRUJCZnlFUlFRQU1Bd3NnQnlnQ2NDRVJJQWNvQXNBQkRBSUxJQkVOQkF0QmZ5RVJRWDhoRWtFQUlRWkJBQXNoQ2tFQUN5RUhJQThnRWtZaUN5QVBJQkZHYWtFQlJ3UkFJQWNnQ0NBSFFSQjBRUkIxSWdzZ0NFRVFkRUVRZFNJT1NpSUlHeUlISUE0Z0N5QU9JQXNnRGtnYklBZ2JJZ2dnQ2tFUWRTSUxJQWdnQzBvYklBZEJFSFJCRUhVZ0MwZ2JJUWNnQmlBSklBWkJFSFJCRUhVaUN5QUpRUkIwUVJCMUlnbEtJZ1liSWdoQi8vOERjU0FKSUFzZ0NTQUxJQWxJR3lBR0d5SUdJQXBCRUhSQkVIVWlDU0FHSUFsS0d5QUlRUkIwUVJCMUlBbElHeUVHREFNTElBc05BaUFLUVJCMklRY2dDaUVHREFJTFFRRWhHeUFBUVlRQmFpRWNBMEFDZnlBQklCMUJBblFpSG1vaUlDSWtLQUt3QVNJR1FRSk5CRUFnQmtFQ2RFR2NOV29vQWdBTUFRdEJCQXNoSWlBQUlCNXFJZ1lnSUNnQ3dBRTJBbVFnQmlBQ0lDQW9Bc0FCRUJRaUJqWUNkQ0FHUlEwSUlDSUVRQ0FjSUIxQkJIUWlIMm9pSlNFbUlCd2dIMEVNY21vaUowRUNhaUVvSUJ3Z0gwRUljbW9pS1NFUklCd2dIMEVFY21vaUZpRVRRUUFoQmdOQUlBRWdIMm9nQmtFQ2RHb2lDQzhCMGdFaER5QUlMd0hRQVNFT0lDQW9Bc0FCSVNGQmZ5RVhBbjhnQUNBZFFRZDBJQ1FvQXJBQklpTkJCWFJxSUFaQkEzUnFJaHBCc0JscUtBSUFFQkVpQ1VVRVFFRUFJUXhCQUNFSVFRQWhDa0YvREFFTFFRQWhERUVBSVFoQkFDRUtRWDhnQ1NnQ0JDQUFLQUlFUncwQUdrRUJJUXBCZnlBSktBSUFRUVZMRFFBYUlBa2dHa0cwR1dvdEFBQWlCMEVDZEdvb0FvUUJJZ2hCRUhZaERDQUpJQWRCL0FGeGFpZ0NaQXNoRFFKQUFrQUNRQ0FBSUJwQnNCMXFLQUlBRUJFaUdFVUVRRUVBSVFrTUFRdEJBQ0VKSUJnb0FnUWdBQ2dDQkVZTkFRdEJBQ0VTUVFBaEN3d0JDMEVCSVFzZ0dDZ0NBRUVGU3dSQVFRQWhFZ3dCQ3lBWUlCcEJ0QjFxTFFBQUlnZEJBblJxS0FLRUFTSVNRUkIySVFrZ0dDQUhRZndCY1dvb0FtUWhGd3NDUUFKQUFrQUNRQUpBSUFBZ0drR3dJV29vQWdBUUVTSVpSUTBBSUJrb0FnUWdBQ2dDQkVjTkFDQVpLQUlBUVFWTkRRRU1BZ3NDUUNBQUlCcEJzQ1ZxS0FJQUVCRWlHVVVOQUNBWktBSUVJQUFvQWdSSERRQWdHU2dDQUVFRlN3MENJQmtnR2tHMEpXb3RBQUFpQjBIOEFYRnFLQUprSVJnZ0dTQUhRUUowYWlnQ2hBRWhCd3dEQzBFQUlRZEJmeUVZSUFwRkRRSWdDdzBDREFNTElCa2dHa0cwSVdvdEFBQWlCMEg4QVhGcUtBSmtJUmdnR1NBSFFRSjBhaWdDaEFFaEJ3d0JDMEVBSVFkQmZ5RVlDeUFYSUNGR0lnb2dEU0FoUmlJTGFpQVlJQ0ZHYWtFQlJ3UkFJQWtnRENBSlFSQjBRUkIxSWdzZ0RFRVFkRUVRZFNJTVNpSUpHeUlLSUF3Z0N5QU1JQXNnREVnYklBa2JJZ2tnQjBFUWRTSUxJQWtnQzBvYklBcEJFSFJCRUhVZ0MwZ2JJUXdnRWlBSUlCSkJFSFJCRUhVaUNpQUlRUkIwUVJCMUlndEtJZ2diSWdsQi8vOERjU0FMSUFvZ0N5QUtJQXRJR3lBSUd5SUlJQWRCRUhSQkVIVWlCeUFJSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVJREFFTElBZ2dFaUFMR3lFSUlBd2dDU0FMR3lFTUlBc05BQ0FLRFFBZ0IwRVFkaUVNSUFjaENBc2dDQ0FPYWlJS1FSQjBRUkIxUVlCQWEwSC8vd0JMRFFvZ0RDQVBhaUlKUVJCMFFSQjFRWUFRYWtIL0gwc05DaUFqUVFOTkJFQUNmd0pBQWtBQ1FBSkFJQ05CQVdzT0F3RUNBd0FMSUNVZ0Nqc0JBQ0FtSUFrN0FRSWdGaUFLT3dFQUlCTWdDVHNCQWlBcElBbzdBUUFnRVNBSk93RUNJQ2NnQ2pzQkFDQW9EQU1MSUJ3Z0JrRUJkQ0FlYWtFQ2RDSUhhaUlJSUFrN0FRSWdDQ0FLT3dFQUlCd2dCMEVFY21vaUNDQUtPd0VBSUFoQkFtb01BZ3NnQUNBR0lCNXFRUUowYWlJSUlBbzdBWXdCSUFnZ0NUc0JoZ0VnQ0NBS093R0VBU0FJUVk0QmFnd0JDeUFBSUFZZ0htcEJBblJxSWdnZ0Nqc0JoQUVnQ0VHR0FXb0xJQWs3QVFBTElBWkJBV29pQmlBaVJ3MEFDd3NnSFVFQmFpSWRRUVJIRFFBTFFRQWhEQU5BSUJBZ0FDQU1RUUowSWdKcUtBSjBOZ0lJSUF4QkFVdEJBM1FoQ1NBTVFRTjBRUWh4SVFjQ1FDQUJJQUpxS0FLd0FTSUNRUUpOQkVBQ1FBSkFBa0FnQWtFQmF3NENBUUlBQ3lBRklBQWdERUVFZEdwQmhBRnFJQkJCQ0dvZ0ZTQVVJQWNnQ1VFSVFRZ1FEZ3dEQ3lBRklBQWdERUVFZEdvaUFrR0VBV29nRUVFSWFpQVZJQlFnQnlBSlFRaEJCQkFPSUFVZ0FrR01BV29nRUVFSWFpQVZJQlFnQnlBSlFRUnlRUWhCQkJBT0RBSUxJQVVnQUNBTVFRUjBhaUlDUVlRQmFpQVFRUWhxSUJVZ0ZDQUhJQWxCQkVFSUVBNGdCU0FDUVlnQmFpQVFRUWhxSUJVZ0ZDQUhRUVJ5SUFsQkJFRUlFQTRNQVFzZ0JTQUFJQXhCQkhScUlnaEJoQUZxSUJCQkNHb2dGU0FVSUFjZ0NVRUVRUVFRRGlBRklBaEJpQUZxSUJCQkNHb2dGU0FVSUFkQkJISWlCaUFKUVFSQkJCQU9JQVVnQ0VHTUFXb2dFRUVJYWlBVklCUWdCeUFKUVFSeUlnSkJCRUVFRUE0Z0JTQUlRWkFCYWlBUVFRaHFJQlVnRkNBR0lBSkJCRUVFRUE0TElBeEJBV29pREVFRVJ3MEFDd3dHQ3lBSUlRY2dDU0VHQzBFQklSc2dCaUFNYWlJSVFSQjBRUkIxUVlCQWEwSC8vd0JMRFFVZ0J5QU5haUlHUVJCMFFSQjFRWUFRYWtIL0gwc05CU0FDSUE4UUZDSUhSUTBGSUFBZ0Jqc0JzZ0VnQUNBSU93R3dBU0FBSUFjMkFuUWdBQ0FQTmdKa0lBQWdCellDZkNBQUlBODJBbXdnQUNBQUtBS3dBU0lHTmdLc0FTQUFJQVkyQXFnQklBQWdCallDcEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FCS0FLVUFTRU9JQUV2QWFZQklRd2dBUzhCcEFFaEN5QUFLQUlFSVFrQ1FBSkFJQUFvQXRBQklnZEZEUUFnQnlnQ0JDQUpSdzBBUVFFaEVTQUhLQUlBUVFWTEJFQkJmeUVJUVFBaEJ3d0NDeUFIS0FKc0lRZ2dCeWdDckFFaEJ3d0JDMEYvSVFoQkFDRUhJQUFvQXN3QklncEZCRUJCQUNFUkRBRUxJQWtnQ2lnQ0JFY0VRRUVBSVJFTUFRdEJBU0VSSUFvb0FnQkJCVXNOQUNBS0tBSnNJUWdnQ2lnQ3NBRWhCd3NDUUNBSUlBNUdSUVJBSUFaQkVIWWhDQUovQWtBQ1FDQUFLQUxNQVNJTlJRMEFJQTBvQWdRZ0NVY05BQ0FOS0FJQVFRVkxEUUVnRFNnQ3ZBRWlFVUVRZGlFS0lBMG9BbkFNQWdzZ0VVVU5Bd3RCQUNFUlFRQWhDa0YvQ3lFTklBNGdEMFlpQ1NBTklBNUdha0VCUndSQUlBb2dDQ0FLUVJCMFFSQjFJZzBnQ0VFUWRFRVFkVW9pQ0JzaUNTQUdRUkIxSWdvZ0RTQUtJQW9nRFVvYklBZ2JJZ2dnQjBFUWRTSUtJQWdnQ2tvYklBbEJFSFJCRUhVZ0NrZ2JJUWdnRVNBR0lCRkJFSFJCRUhVaUNpQUdRUkIwUVJCMUlnMUtJZ1liSWdsQi8vOERjU0FOSUFvZ0RTQU5JQXBLR3lBR0d5SUdJQWRCRUhSQkVIVWlCeUFHSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVHREFJTElBa05BU0FOSUE1R0JFQWdFVUgvL3dOeElBcEJFSFJ5SVFZZ0NpRUlEQUlMQ3lBSFFSQjJJUWdnQnlFR0N5QUdJQXRxSWdkQkVIUkJFSFZCZ0VCclFmLy9BRXNOQlNBSUlBeHFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MEZJQUlnRGhBVUlnSkZEUVVnQUNBR093SENBU0FBSUFjN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKNElBQWdEallDY0NBQUlBNDJBbWdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0tnQVNBQUlBWTJBcHdCSUFBZ0JqWUNtQUVnQUVHVUFXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVJUVJBUURpQVFJQUFvQW5nMkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFoQkFFRUlRUkFRRGd3RUMwRUFJUWhCZnlFV0N5QVBJQk5HSWdzZ0V5QVdSbXBCQVVjRVFDQUtJQWNnQ2tFUWRFRVFkU0lMSUFkQkVIUkJFSFVpRGtvaUJ4c2lDaUFPSUFzZ0RpQUxJQTVJR3lBSEd5SUhJQWhCRUhVaUN5QUhJQXRLR3lBS1FSQjBRUkIxSUF0SUd5RUhJQWtnQmlBSlFSQjBRUkIxSWdvZ0JrRVFkRUVRZFNJTFNpSUdHeUlKUWYvL0EzRWdDeUFLSUFzZ0NpQUxTQnNnQmhzaUJpQUlRUkIwUVJCMUlnZ2dCaUFJU2hzZ0NVRVFkRUVRZFNBSVNCc2hCZ3dCQ3lBTERRQWdDRUVRZGlFSElBZ2hCZ3RCQVNFYklBWWdER29pQ0VFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0RXb2lCa0VRZEVFUWRVR0FFR3BCL3g5TERRSWdBaUFURUJRaUIwVU5BaUFBSUFZN0FhSUJJQUFnQ0RzQm9BRWdBQ0FITmdKMElBQWdFellDWkNBQUlBYzJBbmdnQUNBVE5nSm9JQUFnQUNnQ29BRWlEellDbkFFZ0FDQVBOZ0tZQVNBQUlBODJBcFFCSUFBZ0R6WUNrQUVnQUNBUE5nS01BU0FBSUE4MkFvZ0JJQUFnRHpZQ2hBRWdBU2dDbEFFaERpQUJMd0dtQVNFTklBRXZBYVFCSVF3Q2Z3SkFBa0FDUUNBQUtBTElBU0lHQkVBZ0JpZ0NCQ0FBS0FJRVJnUkFJQVlvQWdCQkJVMEVRQ0FHS0FLNEFTSUxRUkIySVFjZ0JpZ0NjQ0FPUncwRUlBc2hDUXdEQzBGL0lSSkJBQ0VKUVFBaEIwRUFJUXRCQUNFS0lBNUJmMFlOQWd3RUMwRi9JUkpCQUNFSlFRQWhCMEVBSVF0QkFDRUtJQTVCZjBZTkFRd0RDMEYvSVJKQkFDRUpRUUFoQjBFQUlRdEJBQ0VLSUE1QmYwY05BZ3NnQ1VILy93TnhJQWRCRUhSeURBSUxJQVlvQW1naEVpQUdLQUtnQVNFS0lBY2hDUXNnRDBFUWRpRUlJQTRnRTBZaUJpQU9JQkpHYWtFQlJ3UkFJQWdnQ1NBSlFSQjBRUkIxSWdrZ0NFRVFkRUVRZFVnaUJ4c2lDQ0FKSUE5QkVIVWlCaUFKSUFZZ0NVZ2JJQWNiSWdZZ0NrRVFkU0lISUFZZ0Iwb2JJQWhCRUhSQkVIVWdCMGdiSVFjZ0R5QUxJQXRCRUhSQkVIVWlDeUFQUVJCMFFSQjFJZ2xJSWdZYklnaEIvLzhEY1NBTElBa2dDeUFKSUF0SUd5QUdHeUlHSUFwQkVIUkJFSFVpQ1NBR0lBbEtHeUFJUVJCMFFSQjFJQWxJR3d3QkN5QUlJQXBCRUhZZ0Joc2hCeUFQSUFvZ0Joc0xJQXhxSWdoQkVIUkJFSFZCZ0VCclFmLy9BRXNOQWlBSElBMXFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MENJQUlnRGhBVUlnSkZEUUlnQUNBR093SENBU0FBSUFnN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKOElBQWdEallDY0NBQUlBNDJBbXdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0t3QVNBQUlBWTJBcXdCSUFBZ0JqWUNxQUVnQUVHa0FXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVRUVFnUURpQVFJQUFvQW53MkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFCQkNFRVFRUWdRRGd3QkN3SkFJQVpGQkVBZ0VrVUVRRUVBSVFrTUFnc2dGa1VFUUVFQUlRa01BZ3NnQ0VILy93TnhJQWRCRUhSeUlBMXlSUVJBUVFBaENRd0NDMEVBSVFrZ0VVSC8vd054SUFwQkVIUnlJQTl5UlEwQkN5QUJMd0dpQVNFTElBRXZBYUFCSVFrQ1FBSkFBa0FDUUFKQUlBQW9BdEFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVME5BUXdDQ3dKQUlBQW9BdFFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVc05BaUFHS0FKd0lSY2dCaWdDd0FFaERBd0RDMEYvSVJjZ0VrVU5BaUFXRFFJTUF3c2dCaWdDYkNFWElBWW9BcXdCSVF3TUFRdEJmeUVYQ3lBUElCTkdJZ1lnRFNBVFJpSU5haUFUSUJkR2FrRUJSd1JBSUFvZ0J5QUtRUkIwUVJCMUlnb2dCMEVRZEVFUWRTSU5TaUlHR3lJSElBMGdDaUFOSUFvZ0RVZ2JJQVliSWdZZ0RFRVFkU0lLSUFZZ0Nrb2JJQWRCRUhSQkVIVWdDa2diSVFjZ0VTQUlJQkZCRUhSQkVIVWlDaUFJUVJCMFFSQjFJZzFLSWdZYklnaEIvLzhEY1NBTklBb2dEU0FLSUExSUd5QUdHeUlHSUF4QkVIUkJFSFVpQ2lBR0lBcEtHeUFJUVJCMFFSQjFJQXBJR3lFSURBRUxJQWdnRVNBTkd5RUlJQWNnQ2lBTkd5RUhJQTBOQUNBR0RRQWdERUVRZGlFSElBd2hDQXRCQVNFYklBZ2dDV29pREVFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0Myb2lDVUVRZEVFUWRVR0FFR3BCL3g5TERRSUxJQUlnRXhBVUlnSkZCRUJCQVNFYkRBSUxJQUFnQ1RzQndnRWdBQ0FNT3dIQUFTQUFJQUkyQW5RZ0FDQVROZ0prSUFBZ0FqWUNnQUVnQUNBQ05nSjhJQUFnQWpZQ2VDQUFJQk0yQW5BZ0FDQVROZ0pzSUFBZ0V6WUNhQ0FBSUFBb0FzQUJJZ1kyQXJ3QklBQWdCallDdUFFZ0FDQUdOZ0swQVNBQUlBWTJBckFCSUFBZ0JqWUNyQUVnQUNBR05nS29BU0FBSUFZMkFxUUJJQUFnQmpZQ29BRWdBQ0FHTmdLY0FTQUFJQVkyQXBnQklBQWdCallDbEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FRSUFJMkFnZ2dCU0FBUVlRQmFpQVFRUWhxSUJVZ0ZFRUFRUUJCRUVFUUVBNExRUUFoR3lBQUtBTEVBVUVCU3cwQUlBQW9BZ0FFUUNBRUlBTWdCU0FCUWNnQ2FoQllEQUVMSUFRZ0JSQWJDeUFRUVNCcUpBQWdHd3VUQ3dFUGZ5QUFLQUlBSWhFZ0FTQUJJQUFvQWdRaUNuQWlBV3NpQkVFSWRHb2dBVUVFZEdvaEJTQUtRUVIwSVFzZ0FDZ0NDQ0FLYkNJQVFRWjBJUVlnQVVFRGRDRUpJQUJCQ0hRaERDQUVRUVowSVJJZ0NrRUNkRUg4Ly8vL0EzRkJBblFoRUFOQUlBVWdEa0VDZENJQVFmQXBhaWdDQUNJQklBdHNhaUFBUWJBcGFpZ0NBQ0lBYWlFRUlBSWdBVUVFZEdvZ0FHb2hBQUpBSUFNZ0RrRUdkR29pQVNnQ0FDSUhRZi8vL3dkSEJFQWdBU2dDQkNFSUlBQXRBQUVoRFNBRUlBY2dBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BZ2doQnlBQUxRQUNJUThnQkNBSUlBMXFRYkF1YWkwQUFEb0FBU0FCS0FJTUlRZ2dBQzBBQXlFTklBUWdCeUFQYWtHd0xtb3RBQUE2QUFJZ0JDQUlJQTFxUWJBdWFpMEFBRG9BQXlBQktBSVVJUWNnQUMwQUVTRUlJQVFnQzJvaUJDQUJLQUlRSUFBdEFCQnFRYkF1YWkwQUFEb0FBQ0FCS0FJWUlRMGdBQzBBRWlFUElBUWdCeUFJYWtHd0xtb3RBQUE2QUFFZ0FTZ0NIQ0VISUFBdEFCTWhDQ0FFSUEwZ0QycEJzQzVxTFFBQU9nQUNJQVFnQnlBSWFrR3dMbW90QUFBNkFBTWdBU2dDSkNFSElBQXRBQ0VoQ0NBRUlBdHFJZ1FnQVNnQ0lDQUFMUUFnYWtHd0xtb3RBQUE2QUFBZ0FTZ0NLQ0VOSUFBdEFDSWhEeUFFSUFjZ0NHcEJzQzVxTFFBQU9nQUJJQUVvQWl3aEJ5QUFMUUFqSVFnZ0JDQU5JQTlxUWJBdWFpMEFBRG9BQWlBRUlBY2dDR3BCc0M1cUxRQUFPZ0FESUFFb0FqUWhCeUFBTFFBeElRZ2dCQ0FMYWlJRUlBRW9BakFnQUMwQU1HcEJzQzVxTFFBQU9nQUFJQUVvQWpnaERTQUFMUUF5SVE4Z0JDQUhJQWhxUWJBdWFpMEFBRG9BQVNBQktBSThJUUVnQUMwQU15RUFJQVFnRFNBUGFrR3dMbW90QUFBNkFBSWdCQ0FBSUFGcVFiQXVhaTBBQURvQUF3d0JDeUFBS0FJUUlRRWdCQ0FBS0FJQU5nSUFJQVFnRUdvaUJDQUJOZ0lBSUFBb0FqQWhBU0FFSUJCcUlnUWdBQ2dDSURZQ0FDQUVJQkJxSUFFMkFnQUxJQTVCQVdvaURrRVFSdzBBQ3lBTUlCRnFJQkpxSUFscUloQWdCbW9oRVNBS1FRTjBRZmovLy84SGNTSUxRUUoyUVFKMElRNUJFQ0VLQTBBZ0NrRUNkRUVNY1NJQVFmQXBhaWdDQUNJQklBdHNJQUJCc0NscUtBSUFJZ0JxSUJFZ0VDQUtRUk5MSWdVYmFpRUVJQUpCd0FKQmdBSWdCUnRxSUFGQkEzUWdBR3BxSVFBQ1FDQURJQXBCQm5ScUlnRW9BZ0FpQlVILy8vOEhSd1JBSUFFb0FnUWhCaUFBTFFBQklRa2dCQ0FGSUFBdEFBQnFRYkF1YWkwQUFEb0FBQ0FCS0FJSUlRVWdBQzBBQWlFTUlBUWdCaUFKYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VHSUFBdEFBTWhDU0FFSUFVZ0RHcEJzQzVxTFFBQU9nQUNJQVFnQmlBSmFrR3dMbW90QUFBNkFBTWdBU2dDRkNFRklBQXRBQWtoQmlBRUlBdHFJZ1FnQVNnQ0VDQUFMUUFJYWtHd0xtb3RBQUE2QUFBZ0FTZ0NHQ0VKSUFBdEFBb2hEQ0FFSUFVZ0JtcEJzQzVxTFFBQU9nQUJJQUVvQWh3aEJTQUFMUUFMSVFZZ0JDQUpJQXhxUWJBdWFpMEFBRG9BQWlBRUlBVWdCbXBCc0M1cUxRQUFPZ0FESUFFb0FpUWhCU0FBTFFBUklRWWdCQ0FMYWlJRUlBRW9BaUFnQUMwQUVHcEJzQzVxTFFBQU9nQUFJQUVvQWlnaENTQUFMUUFTSVF3Z0JDQUZJQVpxUWJBdWFpMEFBRG9BQVNBQktBSXNJUVVnQUMwQUV5RUdJQVFnQ1NBTWFrR3dMbW90QUFBNkFBSWdCQ0FGSUFacVFiQXVhaTBBQURvQUF5QUJLQUkwSVFVZ0FDMEFHU0VHSUFRZ0Myb2lCQ0FCS0FJd0lBQXRBQmhxUWJBdWFpMEFBRG9BQUNBQktBSTRJUWtnQUMwQUdpRU1JQVFnQlNBR2FrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQXRBQnNoQUNBRUlBa2dER3BCc0M1cUxRQUFPZ0FDSUFRZ0FDQUJha0d3TG1vdEFBQTZBQU1NQVFzZ0FDZ0NDQ0VCSUFRZ0FDZ0NBRFlDQUNBRUlBNXFJZ1FnQVRZQ0FDQUFLQUlZSVFFZ0JDQU9haUlFSUFBb0FoQTJBZ0FnQkNBT2FpQUJOZ0lBQ3lBS1FRRnFJZ3BCR0VjTkFBc0w1Z0VCQjM4Q1FDQUFLQUlBSWdWRkRRQWdBRUVCTmdJOElBQW9BamdOQUNBQUtBSWNJUVpCLy8vLy93Y2hBZ05BQTBBZ0JTQURRU2hzYWlJRUtBSVlCRUFnQkNBQklBUW9BaEFpQkNBQ1NDSUhHeUVCSUFRZ0FpQUhHeUVDQ3lBRFFRRnFJZ01nQmswTkFDQUJSUTBDSUFBb0Fnd2dBQ2dDRUNJRFFRUjBhaUlDSUFFb0FnQTJBZ0FnQWlBQktBSWtOZ0lNSUFJZ0FTZ0NIRFlDQkNBQ0lBRW9BaUEyQWdnZ0FDQURRUUZxTmdJUVFRQWhBeUFCUVFBMkFoZ2dBU2dDRkNFRVFRQWhBVUgvLy8vL0J5RUNJQVFOQUFzZ0FDQUFLQUlzUVg5cU5nSXNEQUFBQ3dBTEM5d0dBUXAvSUFCQ0FEY0NFQUpBQWtBQ1FDQURSUTBBQWtBQ1FDQUJJQUFvQWpBaUEwY0VRQ0FEUVFGcUlBQW9BaUFpQkhBaUNTQUJSZzBCSUFBb0FnQWdBQ2dDSEVFb2JHb29BZ0FoQ3dOQUFrQUNRQ0FBS0FJb0lnY0VRQ0FBS0FJQUlRaEJBQ0VEQTBBZ0NDQURRU2hzYWlJRktBSVVRWDlxUVFGTkJFQWdCU0FGS0FJTUlnVWdCRUVBSUFVZ0NVc2JhellDQ0FzZ0EwRUJhaUlESUFkSERRQUxJQWNnQUNnQ0dFa05Ba0YvSVFWQkFDRURRUUFoQkFOQUlBZ2dBMEVvYkdvaUJpZ0NGRUYvYWtFQlRRUkFJQVlvQWdnaUJpQUVJQVZCZjBZZ0JpQUVTSElpQmhzaEJDQURJQVVnQmhzaEJRc2dBMEVCYWlJRElBZEhEUUFMSUFWQkFFNE5BVUVCRHd0QkFDRUhJQUFvQWhnTkFVRUJEd3NnQ0NBRlFTaHNhaUlEUVFBMkFoUWdBQ0FIUVg5cUlnYzJBaWdnQXlnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FDZ0NMQ0lGSUFBb0Fod2lDRThFUUNBQUtBSTREUVlnQUNnQ0FDRU1BMEJCQUNFRVFmLy8vLzhISVFaQkFDRURBMEFnRENBRFFTaHNhaUlLS0FJWUJFQWdDaUFFSUFvb0FoQWlDaUFHU0NJTkd5RUVJQW9nQmlBTkd5RUdDeUFEUVFGcUlnTWdDRTBOQUFzQ1FDQUVSUTBBSUFBb0Fnd2dBQ2dDRUNJR1FRUjBhaUlESUFRb0FnQTJBZ0FnQXlBRUtBSWtOZ0lNSUFNZ0JDZ0NIRFlDQkNBRElBUW9BaUEyQWdnZ0FDQUdRUUZxTmdJUUlBUkJBRFlDR0NBRUtBSVVEUUFnQUNBRlFYOXFJZ1UyQWl3TElBVWdDRThOQUFzTElBQW9BZ0FpQkNBSVFTaHNhaUlESUFrMkFnd2dBMEtBZ0lDQUVEY0NFQ0FEUVFBMkFoZ2dBeUFKTmdJSUlBQWdCMEVCYWpZQ0tDQUFJQVZCQVdvMkFpd2dCQ0FJUVFGcUVDY2dDVUVCYWlBQUtBSWdJZ1J3SWdrZ0FVY05BQXNDUUNBQUtBSVFJZ2xGRFFBZ0FDZ0NBQ0lGSUFBb0Fod2lCRUVvYkdvaUNDZ0NBQ0VISUFBb0Fnd2hCa0VBSVFNRFFDQUhJQVlnQTBFRWRHb29BZ0JIQkVBZ0NTQURRUUZxSWdOSERRRU1BZ3NMSUFSRkRRQkJBQ0VEQTBBZ0N5QUZJQU5CS0d4cUlna29BZ0JIQkVBZ0JDQURRUUZxSWdOSERRRU1BZ3NMSUFrZ0J6WUNBQ0FJSUFzMkFnQUxJQUlOQlNBQUtBSXdJUU1NQWdzZ0FrRUFSdzhMSUFJTkF3c2dBU0FEUmcwQUlBQWdBU0FBS0FJZ0lnQnFRWDlxSUFCd05nSXdDMEVBRHdzRFFBd0FBQXNBQ3lBQUlBRTJBakJCQUF0MUFRTi9Ba0FnQUNnQ0FDSUJSUTBBSUFBb0FoeEJmMFlOQUFOQUlBRWdBa0VvYkNJRGFpZ0NCQkFFSUFBb0FnQWlBU0FEYWtFQU5nSUVJQUpCQVdvaUFpQUFLQUljUVFGcVNRMEFDd3NnQVJBRUlBQkJBRFlDQUNBQUtBSUVFQVFnQUVFQU5nSUVJQUFvQWd3UUJDQUFRUUEyQWd3TGd3RUJBMzhDUUNBQUtBSUFJZ1pGRFFBZ0FDZ0NIRUYvUmcwQUEwQWdCaUFIUVNoc0lnaHFLQUlFRUFRZ0FDZ0NBQ0lHSUFocVFRQTJBZ1FnQjBFQmFpSUhJQUFvQWh4QkFXcEpEUUFMQ3lBR0VBUWdBRUVBTmdJQUlBQW9BZ1FRQkNBQVFRQTJBZ1FnQUNnQ0RCQUVJQUJCQURZQ0RDQUFJQUVnQWlBRElBUWdCUkJkQzRBQ0FRSi9JQUFnQlRZQ09DQUFJQVEyQWlBZ0FFTC8vd00zQWlRZ0FFSUFOd0lzSUFBZ0EwRUJJQU5CQVVzYklnTTJBaGdnQUNBRElBSWdCUnNpQWpZQ0hDQUFRYWdGRUFvaUF6WUNBRUgvL3dNaEJBSkFJQU5GRFFCQkFDRUZJQU5CQUVHb0JSQUhJUVlnQWtGL1J3UkFJQUZCZ0FOc1FTOXlJUVZCQUNFREEwQWdCaUFEUVNoc2FpSUhJQVVRQ2lJQk5nSUVJQUZGRFFJZ0J5QUJRUUFnQVd0QkQzRnFOZ0lBSUFNZ0Fra2hBU0FEUVFGcUlRTWdBUTBBQ3lBQ1FRUjBRUkJxSVFVTElBQkJ4QUFRQ2lJQk5nSUVJQUFnQlJBS0lnSTJBZ3dnQWtVTkFDQUJSUTBBUVFBaEJDQUJRUUJCeEFBUUJ4b2dBRUlBTndJUUN5QUVDOU1CQVFkL1FRRWhBUUpBSUFBb0FqZ05BQ0FBS0FJY0lRVWdBQ2dDQUNFR1FmLy8vLzhISVFOQkFDRUJBMEFnQmlBQlFTaHNhaUlFS0FJWUJFQWdCQ0FDSUFRb0FoQWlCQ0FEU0NJSEd5RUNJQVFnQXlBSEd5RURDeUFCUVFGcUlnRWdCVTBOQUFzZ0FrVUVRRUVCRHdzZ0FDZ0NEQ0FBS0FJUUlnTkJCSFJxSWdFZ0FpZ0NBRFlDQUNBQklBSW9BaVEyQWd3Z0FTQUNLQUljTmdJRUlBRWdBaWdDSURZQ0NDQUFJQU5CQVdvMkFoQkJBQ0VCSUFKQkFEWUNHQ0FDS0FJVURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQkMvVUVBUWgvSUFBb0FpZ2lCQVJBSUFBb0FnQWhCd05BSUFjZ0JVRW9iR29pQmlnQ0ZFRi9ha0VCVFFSQUlBWWdCaWdDRENJSUlBSkxCSDhnQ0NBQUtBSWdhd1VnQ0FzMkFnZ0xJQVZCQVdvaUJTQUVSdzBBQ3d0QkFDRUVBa0FnQVNnQ0FFVU5BQ0FCS0FJRUlnVkJBa3NOQUVFQUlRY2dBaUVHQTBBQ1FBSkFBa0FnQlVFQ1J3UkFJQUVnQjBFTWJHb29BZ2doQkFKQUlBVkZCRUFnQmlBRWF5SUdRWDlLRFFFZ0FDZ0NJQ0FHYWlFR0RBRUxJQVFnQm1vaUJrRUFJQUFvQWlBaUJTQUdJQVZJRzJzaEJnc2dCaUVKSUFZZ0Frc0VRQ0FHSUFBb0FpQnJJUWtMSUFBb0FoZ2lDa1VFUUVFQkR3c2dBQ2dDQUNFSVFRQWhCUU5BSUFnZ0JVRW9iR29pQkNnQ0ZDSUxRWDlxUVFGTkJFQWdCQ2dDQ0NBSlJnMERDMEVCSVFRZ0JVRUJhaUlGSUFwSERRQUxEQVVMUVFFaEJDQUFLQUlZSWdsRkRRUWdBU0FIUVF4c2FpZ0NEQ0VLSUFBb0FnQWhDRUVBSVFVRFFDQUlJQVZCS0d4cUlnUW9BaFJCQTBZRVFDQUVLQUlJSUFwR0RRTUxRUUVoQkNBRlFRRnFJZ1VnQ1VjTkFBc01CQXNnQlVFQVNBUkFRUUVQQzBFQklRUWdDMEVCU3cwQkRBTUxRUUVoQkNBRlFRQklEUUlMSUFjZ0F5SUVTUVJBQTBBZ0FDZ0NCQ0lKSUFSQkFuUnFJQWtnQkVGL2FpSUVRUUowYWlnQ0FEWUNBQ0FFSUFkTERRQUxJQUFvQWdBaENBc2dBQ2dDQkNBSFFRSjBhaUFJSUFWQktHd2lDV28yQWdBZ0IwRUJhaUlISVFRZ0J5SUZJQU5OQkVBRFFDQUFLQUlFSWdnZ0JVRUNkR29vQWdBaUNpQUFLQUlBSUFscVJ3UkFJQWdnQkVFQ2RHb2dDallDQUNBRVFRRnFJUVFMSUFWQkFXb2lCU0FEVFEwQUN3dEJBQ0VFSUFFZ0IwRU1iR29vQWdRaUJVRURTUTBBQ3dzZ0JBc0hBRUhFR2hBS0M3Y0JBUUovSXdCQkVHc2lCaVFBSUFaQkFEWUNEQ0FBSUFFZ0FpQUdRUXhxRUNvaUIwRjljVVVFUUFOQUlBQWdBU0FHS0FJTUlnZHFJZ0VnQWlBSGF5SUNJQVpCREdvUUtpSUhRWDF4UlEwQUN3c2dCMEVCUmdSQUlBUWdBQ2dDRUNJQktBSTBRUVIwTmdJQUlBVWdBU2dDT0VFRWREWUNBQ0FESUFCQnhBbHFJZ0FvQWhRaUFTQUFLQUlRU1FSL0lBQWdBVUVCYWpZQ0ZDQUFLQUlNSUFGQkJIUnFCVUVBQ3lnQ0FEWUNBQXNnQmtFUWFpUUFJQWNMU1FFQmZ5QUFRUUJCeEJvUUJ5SUNRYlFLYWtFQk5nSUFJQUpDZ0lLQWdJQUVOd0lFSUFCQndCQVFDaUlDTmdLd0dpQUNSUVJBUVFFUEN5QUJCRUFnQUVFQk5nTEFDUXRCQUF1NkJBRUpmd0pBQWtBZ0FVRUVTUTBBSUFBdEFBQU5BQ0FBTFFBQkRRQWdBQzBBQWlJSFFRRkxEUUJCQXlFRUlBQkJBMm9oQlVFQ0lRaEJmU0VNQWtBRFFDQUZJUVlDZnlBSVFRRnFJQWRCL3dGeElnVkZEUUFhUVFBaEJ5QUZRUUZHUVFBZ0NFRUJTeHNOQWtFQUN5RUlJQVJCZjNNaERDQUdRUUZxSVFVZ0JpMEFBQ0VISUFSQkFXb2lCQ0FCUncwQUN5QURJQUUyQWdCQkFROExJQVFoQ2tFQUlRaEJBQ0VGQTBCQkFTQUlJQWNnQmkwQUFDSUxSV29pQ1VFQ1Joc2dDQ0FMUVFOR0d5RUlJQXBCQVdvaENnSkFJQXRCQVVjTkFDQUpRUUpKRFFBZ0FpQUtJQXhxSUFsQmYzTnFJZ0UyQWd4QkFDQUpRWDFxSWdZZ0JpQUpTeHNoQnd3REMwRUFJQWtnQ3hzaEIwRUJJQVVnQ1VFQ1N4c2dCU0FMR3lFRklBWkJBV29oQmlBQklBcEhEUUFMSUFJZ0FTQU1haUFIYXlJQk5nSU1EQUVMSUFJZ0FUWUNERUVCSVFoQkFDRUhDeUFDUVFBMkFoQWdBa0VBTmdJSUlBSWdBQ0FFYWlJQU5nSUVJQUlnQURZQ0FDQURJQVFnQjJvZ0FXbzJBZ0JCQVNFREFrQWdCUTBBUVFBaEF5QUlSUTBBSUFJQ2Z5QUNLQUlNSWdGRkJFQWdBQ0VFUVFBTUFRc2dBQ0VFUVFBaEJnTkFJQUZCZjJvaEFTQUVMUUFBSVFVQ2Z3SkFJQVpCQWtjTkFDQUZRUU5HQkVBZ0FVVUVRRUVCRHdzZ0JDMEFBVUVEU3dSQVFRRVBDMEVBSVFZZ0JFRUJhZ3dDQ3lBRlFRTlBEUUJCQVE4TElBQWdCVG9BQUVFQUlBWkJBV29nQlJzaEJpQUFRUUZxSVFBZ0JFRUJhZ3NoQkNBQkRRQUxJQUlvQWd3TElBQWdCR3RxTmdJTUN5QURDd3Z0TWhrQVFZWUlDOG9GWmlBbUVBWUlaUmhsR0VNUVF4QkRFRU1RUXhCREVFTVFReEFpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNBQUFBQUFBQUFBQWFrQktNQ29vQ2lCcE9HazRTU2hKS0NrZ0tTQUpHQWtZYURCb01HZ3dhREJJSUVnZ1NDQklJQ2dZS0Jnb0dDZ1lDQkFJRUFnUUNCQm5LR2NvWnlobktHY29aeWhuS0djb1J4aEhHRWNZUnhoSEdFY1lSeGhIR0c1Z1RsZ3VVQTVRYmxoT1VDNUlEa2dOUUExQVRVaE5TQzFBTFVBTk9BMDRiVkJ0VUUxQVRVQXRPQzA0RFRBTk1HdElhMGhyU0d0SWEwaHJTR3RJYTBoTE9FczRTemhMT0VzNFN6aExPRXM0S3pBck1Dc3dLekFyTUNzd0t6QXJNQXNvQ3lnTEtBc29DeWdMS0Fzb0N5Z0FBQUFBTDJndmFCQ0FVSUF3Z0JCNGNJQlFlREI0RUhCd2VGQndNSEFRYUc5d2IzQlBhRTlvTDJBdllBOWdEMkJ2YUc5b1QyQlBZQzlZTDFnUFdBOVlBQUFBQUFBQUFBQm1PRVlnSmlBR0VHWXdSaGdtR0FZSVpTaGxLQ1VRSlJCa0lHUWdaQ0JrSUdRWVpCaGtHR1FZUXhCREVFTVFReEJERUVNUVF4QkRFQUFBQUFBQUFBQUFhVWhKT0NrNENUQUlLQWdvU0RCSU1DZ3dLREFJSUFnZ1owQm5RR2RBWjBCSEtFY29SeWhIS0Njb0p5Z25LQ2NvQnhnSEdBY1lCeGdBQUFBQWJYaHRlRzZBVG9BdWdBNkFMbmdPZUU1NExuQk5jRTF3RFhBTmNHMXdiWEJOYUUxb0xXZ3RhQTFvRFdodGFHMW9UV0JOWUMxZ0xXQU5ZQTFnREZnTVdBeFlERmhNV0V4WVRGaE1XQ3hZTEZnc1dDeFlERkFNVUF4UURGQnNZR3hnYkdCc1lFeFFURkJNVUV4UUxGQXNVQ3hRTEZBTVNBeElERWdNU0d0WWExaHJXR3RZYTFocldHdFlhMWhMU0V0SVMwaExTRXRJUzBoTFNFdElLMGdyU0N0SUswZ3JTQ3RJSzBnclNBdEFDMEFMUUF0QUMwQUxRQXRBQzBCclVHdFFhMUJyVUd0UWExQnJVR3RRUzBCTFFFdEFTMEJMUUV0QVMwQkxRQ3RBSzBBclFDdEFLMEFyUUN0QUswQUxPQXM0Q3pnTE9BczRDemdMT0FzNEFFSGdEUXV1Q1FZWVJqZ21PQVlRWmtoR01DWXdCZ2dsS0NVb1JTaEZLQ1VnSlNCRklFVWdKUmdsR0dWQVpVQkZHRVVZSlJBbEVHUTRaRGhrT0dRNFpEQmtNR1F3WkRCa0tHUW9aQ2hrS0dRZ1pDQmtJR1FnWkJoa0dHUVlaQmhFRUVRUVJCQkVFQ1FJSkFna0NDUUlCQUFFQUFRQUJBQUFBQXFBYW9CS2dDcUFDbmhxZUVwNEtuZ0tjR3B3U25BcWNBcG9LV2dwYUFsZ0NXQkphRWxvS1dBcFlBbFlDVmhwYUdsb1NXQkpZQ2xZS1ZnSlVBbFFhR0JvWUdoZ2FHQklXRWhZU0ZoSVdDaFFLRkFvVUNoUUNFZ0lTQWhJQ0Vob1dHaFlhRmhvV0VoUVNGQklVRWhRS0Vnb1NDaElLRWdJUUFoQUNFQUlRQWM0QnpnSE9BYzRCemdIT0FjNEJ6Z0hNQWN3QnpBSE1BY3dCekFITUFjd1IwaEhTRWRJUjBoSFNFZElSMGhIU0Fjb0J5Z0hLQWNvQnlnSEtBY29CeWhuVUdkUVoxQm5VR2RRWjFCblVHZFFSMEJIUUVkQVIwQkhRRWRBUjBCSFFDZEFKMEFuUUNkQUowQW5RQ2RBSjBBSElBY2dCeUFISUFjZ0J5QUhJQWNnQmdnbUNBQUFCZ0FHRUNZUVJoQUFBQVlZSmhoR0dHWVlCaUFtSUVZZ1ppQUdLQ1lvUmlobUtBWXdKakJHTUdZd0JqZ21PRVk0WmpnR1FDWkFSa0JtUUFaSUpraEdTR1pJQmxBbVVFWlFabEFHV0NaWVJsaG1XQVpnSm1CR1lHWmdCbWdtYUVab1ptZ0djQ1p3Um5CbWNBWjRKbmhHZUdaNEJvQW1nRWFBWm9BQUFFTVFBZ0FDQUNFSUlRZ2hDQ0VJWnlCbklFZ2dLQ0JIR0VjWUp4Z25HQVlnQmlBR0lBWWdCaGdHR0FZWUJoZ0dFQVlRQmhBR0VHWVlaaGhtR0dZWUpoQW1FQ1lRSmhBR0NBWUlCZ2dHQ0FBQVpWVkVSRFEwSXlNakl4TVRFeE1CQVFFQkFRRUJBUUVCQVFFQkFRRUJBUG5wMmNqSXVMaW5wNmVubDVlWGw0YUdob2FHaG9hR2RuWjJkbloyZG5ibTFzYTJwYVdWbFlTRWhJUjBkSFIwWkdSa1pGUlVWRlJEUTBORFEwTkRRek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEV3TURBd01EQXdNRDFyYkZ4YVdsbFpXRWhJU0VWRlJVVkVSRVJFUUVCQVFFYzNOemMzTnpjM05qWTJOalkyTmpZek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEU4VzFwUVdVbEhSME5EUWtKSU9EZzROalkyTmpVMU5UVTBORFEwTVRFeE1UdFpXa3BJU0VKQ1FVRkFRRWMzTnpjMk5qWTJOVFUxTlRRME5EUXpNek16T21CaFVWaElTRWhKT1RrNU9UazVPVGMzTnpjM056YzNOalkyTmpZMk5qWTFOVFUxTlRVMU5UUTBORFEwTkRRME16TXpNek16TXpNeU1qSXlNakl5TWpsZ1lWRlhSMGRIU0RnNE9EZzRPRGcyTmpZMk5qWTJOalEwTkRRME5EUTBNek16TXpNek16TXlNakl5TWpJeU1qVWxKU1VsSlNVbEpTVWxKU1VsSlNVb1lHSlNVVUZCUVVjM056YzNOemMzTmpZMk5qWTJOall6TXpNek16TXpNelVsSlNVbEpTVWxKU1VsSlNVbEpTVWtKQ1FrSkNRa0pDUWtKQ1FrSkNRa0lXQm5WMUpDUWtKRk5UVTFOVFUxTlRZbUppWW1KaVltSmlZbUppWW1KaVlrSkNRa0pDUWtKQ1FrSkNRa0pDUWtJeU1qSXlNakl5TWpJeU1qSXlNakl5RlFWa1pDTWpJeU5TVWxKU1VsSlNVa0pDUWtKQ1FrSkNNakl5TWpJeU1qSUVGQ01qTXpOVFUwRkJRVUZCUVVGQkJCUkRReUlpSWlJeE1URXhNVEV4TVFNVE1qSWhJU0VoQWhJaElSRUJJaElCQVRJaUVnSkRNeUlpRWhJQ0FsTkRNeU1TRWdJQ0V5TkRNMk5UQWdJQVFhQVhDeVFFQkFVR0J3Z0pDZ3dORHhFVUZoa2NJQ1FvTFRJNFAwZFFXbVZ4ZjVDaXRzdmkvLzhBUWVBWEN5UUNBZ0lEQXdNREJBUUVCZ1lIQndnSUNRa0tDZ3NMREF3TkRRNE9EdzhRRUJFUkVoSUFRY1VZQzRRQkFRQUFBUUFBQVFBQUFRQUJBUUFCQVFFQkFRRUJBUUVCQVFFQkFRRUJBZ0VCQWdFQkFnRUJBZ0VDQXdFQ0F3SUNBd0lDQkFJREJBSURCQU1EQlFNRUJnTUVCZ1FGQndRRkNBUUdDUVVIQ2dZSUN3WUlEUWNLRGdnTEVBa01FZ29ORkFzUEZ3MFJHUUFBQUFBQUFBQUFCUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVIVUdRc1ZCUUFBQUFBQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUVIMEdRc1ZCUUFBQUFRQUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVHVUdnc0ZCUUFBQUFRQVFhUWFDNlVCQndBQUFBUUFBQUFDQUFBQUJBQUFBQUVBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUFRQUFBQVFBQUFBREFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFCQUFBQUJBQUFBQVFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBRUFBQUFFQUFBQUJBQUFBQVFBQUFBREFBQUFCQUFBQUFZQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FFSFVHd3NWRFFBQUFBQUFBQUFQQUFBQS93QUFBQUFBQUFEL0FFSDBHd3NWRFFBQUFBUUFBQUFJQUFBQS93QUFBQUFBQUFEL0FFR1VIQXUxQ3cwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBSkFBQUFCQUFBQUFzQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQWtBQUFBRUFBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUNRQUFBQVFBQUFBTUFBQUFCQUFBQUFzQUFBQUVBQUFBRGdBQUFBRUFBQUFLQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBb0FBQUFFQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ2dBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUtBQUFBQVFBQUFBc0FBQUFFQUFBQUFBQUFBQVFBQUFBQkFBQUFBUUFBQUE0QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEZ0FBQUFRQUFBQUVBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQUVBQUFBT0FBQUFBUUFBQUE4QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFRQUFBQTRBQUFBQkFBQUFEd0FBQUFRQUFBQUVBQUFBQkFBQUFBVUFBQUFFQUFBQUFnQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFDQUFBQUJBQUFBQWdBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUVBQUFBQWdBQUFBUUFBQUFEQUFBQUJBQUFBQWdBQUFBRUFBQUFDUUFBQUFRQUFBQUdBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFZQUFBQUVBQUFBREFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFCZ0FBQUFRQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUFCQUFBQUFjQUFBQUVBQUFBREFBQUFBUUFBQUFOQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFCQUFBQURnQUFBUDhBQUFBRUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBRUFBQUFMQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFCQUFBQURnQUFBQVFBQUFBQkFBQUEvd0FBQUFRQUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFJQUFBQUtBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFBUUFBQUE4QUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEd0FBQUFJQUFBQUtBQUFBQkFBQUFBVUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQVlBQUFEL0FBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFBRUFBQUFDUUFBQVA4QUFBQU1BQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQWdBQUFQOEFBQUFJQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQUhBQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFjQUFBRC9BQUFBQWdBQUFBUUFBQUFOQUFBQS93QUFBQWdBQUFBREFBQUFEd0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQU1BQUFBUEFBQUFBQUFBQUFVQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUF3QUFBQThBQUFBQkFBQUFDZ0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFEQUFBQUR3QUFBQUVBQUFBS0FBQUFBQUFBQUFVQUFBQUVBQUFBQUFBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFFQUFBQUFRQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ3dBQUFBRUFBQUFPQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QkIxQ2NMRlFjQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QkI5Q2NMRlFjQUFBQUVBQUFBQWdBQUFQOEFBQUFBQUFBQS93QkJsQ2dMMlFFSEFBQUFCQUFBQUFJQUFBQUFBQUFBRFFBQUFBUUFBQUFJQUFBQUJBQUFBQU1BQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBSkFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBTUFBQUFFQUFBQUJnQUFBQVFBQUFBSkFBQUFCQUFBQUF3QUFBQUFBQUFBQkFBQUFBQUFBQUFFQUFBQUNBQUFBQXdBQUFBSUFBQUFEQUFBQUFBQUFBQUVBQUFBQUFBQUFBUUFBQUFJQUFBQURBQUFBQWdBQUFBTUFFSDRLUXNGQkFBQUFBUUFRWWdxQ3lVRUFBQUFCQUFBQUFnQUFBQUlBQUFBREFBQUFBd0FBQUFJQUFBQUNBQUFBQXdBQUFBTUFFR3hMZ3ZJQmdFQ0F3UUZCZ2NJQ1FvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEhoOGdJU0lqSkNVbUp5Z3BLaXNzTFM0dk1ERXlNelExTmpjNE9UbzdQRDArUDBCQlFrTkVSVVpIU0VsS1MweE5UazlRVVZKVFZGVldWMWhaV2x0Y1hWNWZZR0ZpWTJSbFptZG9hV3ByYkcxdWIzQnhjbk4wZFhaM2VIbDZlM3g5Zm4rQWdZS0RoSVdHaDRpSmlvdU1qWTZQa0pHU2s1U1ZscGVZbVpxYm5KMmVuNkNob3FPa3BhYW5xS21xcTZ5dHJxK3dzYkt6dExXMnQ3aTV1cnU4dmI2L3dNSEN3OFRGeHNmSXljckx6TTNPejlEUjB0UFUxZGJYMk5uYTI5emQzdC9nNGVMajVPWG01K2pwNnV2czdlN3Y4UEh5OC9UMTl2ZjQrZnI3L1AzKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUVBQUFBRUFBQUFCUUFBQUFJQUFBQURBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQXdBQUFBTkFBQUFDZ0FBQUFzQUFBQU9BQUFBRHdBQUFBQUFBQUFCQUFBQUFRQkJoRFVMSVFFQUFBQUJBQUFBQVFBQUFBRUFBQUFDQUFBQUFnQUFBQUVBQUFBQ0FBQUFBZ0JCdERVTEJRVUFBQUFFQUVIRU5RdkpCZ2NBQUFBRUFBQUFBZ0FBQUFRQUFBQUJBQUFBQkFBQUFBUUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUFBQUFBQUEwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQUFRQUFBQU1BQUFBQkFBQUFBc0FBQUFFQUFBQURnQUFBQUFBQUFBUkFBQUFCQUFBQUJBQUFBQUFBQUFBRXdBQUFBUUFBQUFTQUFBQUFBQUFBQlVBQUFBRUFBQUFGQUFBQUFBQUFBQVhBQUFBQkFBQUFCWUFBQUFCQUFBQUNnQUFBQUVBQUFBTEFBQUFCQUFBQUFBQUFBQUVBQUFBQVFBQUFBRUFBQUFPQUFBQUFRQUFBQThBQUFBRUFBQUFCQUFBQUFRQUFBQUZBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBQVFBQUFBSUFBQUFCQUFBQUFrQUFBQUVBQUFBQmdBQUFBUUFBQUFIQUFBQUJBQUFBQXdBQUFBRUFBQUFEUUFBQUFFQUFBQVNBQUFBQVFBQUFCTUFBQUFFQUFBQUVBQUFBQVFBQUFBUkFBQUFBUUFBQUJZQUFBQUJBQUFBRndBQUFBUUFBQUFVQUFBQUJBQUFBQlVBQUFBQkFBQUFDd0FBQUFFQUFBQU9BQUFBQkFBQUFBRUFBQUQvQUFBQUJBQUFBQUVBQUFBUEFBQUFBZ0FBQUFvQUFBQUVBQUFBQlFBQUFQOEFBQUFBQUFBQUJBQUFBQU1BQUFBRUFBQUFCZ0FBQUFRQUFBQUpBQUFBL3dBQUFBd0FBQUFFQUFBQUJ3QUFBUDhBQUFBQ0FBQUFCQUFBQUEwQUFBRC9BQUFBQ0FBQUFBRUFBQUFUQUFBQUFnQUFBQklBQUFBRUFBQUFFUUFBQVA4QUFBQVFBQUFBQVFBQUFCY0FBQUFDQUFBQUZnQUFBQVFBQUFBVkFBQUEvd0FBQUJRQUFBQURBQUFBRHdBQUFBRUFBQUFLQUFBQUFBQUFBQVVBQUFBRUFBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBQUVBQUFBQWdBQUFBQUFBQUFOQUFBQUJBQUFBQWdBQUFBRUFBQUFBd0FBQUFRQUFBQUdBQUFBQkFBQUFBa0FBQUFFQUFBQURBQUFBQU1BQUFBVEFBQUFBUUFBQUJJQUFBQUFBQUFBRVFBQUFBUUFBQUFRQUFBQUF3QUFBQmNBQUFBQkFBQUFGZ0FBQUFBQUFBQVZBQUFBQkFBQUFCUUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQURBQUFBQXdBQUFBQUFBQUFCQUFBQUFnQUFBQU1BQUFBRUFBQUFCUUFBQUFZQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QVFaWThDeTRCQVFFQkFRRUNBZ0lDQWdJREF3TURBd01FQkFRRUJBUUZCUVVGQlFVR0JnWUdCZ1lIQndjSEJ3Y0lDQWdJQUVIUVBBdEZDZ0FBQUEwQUFBQVFBQUFBQ3dBQUFBNEFBQUFTQUFBQURRQUFBQkFBQUFBVUFBQUFEZ0FBQUJJQUFBQVhBQUFBRUFBQUFCUUFBQUFaQUFBQUVnQUFBQmNBQUFBZEFFR2hQUXN6QVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURBRUhrUFF2TUFnRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhRQUFBQjRBQUFBZkFBQUFJQUFBQUNBQUFBQWhBQUFBSWdBQUFDSUFBQUFqQUFBQUl3QUFBQ1FBQUFBa0FBQUFKUUFBQUNVQUFBQWxBQUFBSmdBQUFDWUFBQUFtQUFBQUp3QUFBQ2NBQUFBbkFBQUFKd0FBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFMeDhQQUJjYkhSNEhDdzBPSnlzdExoQURCUW9NRXhVYUhDTWxLaXdCQWdRSUVSSVVHQVlKRmhrZ0lTSWtLQ1lwQUJBQkFnUUlJQU1GQ2d3UEx3Y0xEUTRHQ1I4akpTb3NJU0lrS0NjckxTNFJFaFFZRXhVYUhCY2JIUjRXR1NZcEFMQXRCRzVoYldVQjZ3TmtBQVp0WlcxamNIa0JCbkpsYzJsNlpRSUNaaklEQW1ZekJBRm1CUUptTlFZQ1pqWUhBbVkzQ0FKbU9Ba0NaamtLQVdVTEEyWXhNUXdEWmpFeURRTm1NVE1PQTJZeE5BOERaakUxRUFObU1UWVJBMll4TnhJRFpqRTRFd05tTVRrVUEyWXlNQlVEWmpJeEZnTm1NaklYQTJZeU14Z0RaakkwR1FObU1qVWFBMll5TmhzRFpqSTNIQU5tTWpnZEEyWXlPUjREWmpNd0h3Tm1NekVnQTJZek1pRURaak16SWdObU16UWpBMll6TlNRRFpqTTJKUU5tTXpjbUEyWXpPQ2NEWmpNNUtBTm1OREFwQTJZME1Tb0RaalF5S3dObU5ETXNBMlkwTkMwRFpqUTFMZ05tTkRZdkEyWTBOekFEWmpRNE1RTm1ORGt5QTJZMU1ETURaalV4TkFObU5USTFBMlkxTXpZRFpqVTBOd05tTlRVNEEyWTFOamtEWmpVM09nTm1OVGc3QTJZMU9Ud0Raall3UFFObU5qRStBMlkyTWo4RFpqWXpRQU5tTmpSQkEyWTJOVUlEWmpZMlF3Tm1OamRFQTJZMk9FVURaalk1UmdObU56QkhBMlkzTVVnRFpqY3lTUU5tTnpOS0EyWTNORXNEWmpjMVRBTm1OelpOQTJZM04wNERaamM0VHdObU56bFFBMlk0TUZFRFpqZ3hVZ05tT0RKVEEyWTRNMVFEWmpnMFZRTm1PRFZXQTJZNE5sY0RaamczV0FObU9EaFpBMlk0T1ZvRFpqa3dXd05tT1RGY0EyWTVNbDBEWmprelhnTm1PVFJmQTJZNU5XQUJhV0VCWjJJQlpHTUVaakV3TVFLNktXUUFBd0FBQVFBQ0FBRUJBQUFDQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1EQ1FBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FRSUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNGQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1HR0FBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFV0Eyd3lNaGNEYkRJekJ3WUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVSUJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlFrUUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlFvTUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVMQXdBQ2NEQUJBbkF4QWdKc01nd1JBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRFFZQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05BVUNiRFVPRUFBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVQQlFBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEVBc0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQVJBZ0FDY0RBQkFuQXhFZzhBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkJNREFBSndNQUVDYkRFQ0Ftd3lGQU1BQW5Bd0FRSndNUUlDYkRJVkJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlJZbUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2NEUUZBbkExQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlJBRGJERTJFUU5zTVRjU0Eyd3hPQk1EYkRFNUZBTnNNakFWQTJ3eU1SWURiREl5RndOc01qTVlBMnd5TkJrRGJESTFHZ05zTWpZYkEyd3lOeHdEYkRJNEhRTnNNamtlQTJ3ek1COERiRE14SUFOc016SWhBMnd6TXlJRGJETTBJd05zTXpVa0Eyd3pOaVVEYkRNM0Z3TUFBbkF3QVFKd01RSUNjRElZRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFWkVnQUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0doWUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhHd1lBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVWNCd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlkQlFBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEhnVUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQjhCQUFKd01DQUVBQUp3TUFFQ2NERUNBbXd5QXdKc015RWJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVGQU5zTWpBVkEyd3lNUllEYkRJeUZ3TnNNak1ZQTJ3eU5Ca0RiREkxR2dOc01qWWlGUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0l4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE55UVVBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVKUThBQW5Bd0FRSndNUUlDY0RJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNZREFBSndNQUVDYkRFQ0Ftd3lKdzhBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNnQ0FBSndNQUVDYkRFcEVRQUNjREFCQW5BeEFnSndNZ01DY0RNRUFuQTBCUUp3TlFZQ2NEWUhBbkEzQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaW9IQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmlzUEFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUXNCQUFDY0RBQkFuQXhBZ0pzTWdNQ2JETXRCUUFDY0RBQkFuQXhBZ0p3TWdNQ2JETUVBbXcwTGdNQUFuQXdBUUpzTVFJQ2JESXZBd0FDY0RBQkFtd3hBZ0pzTWpBSkFBSndNQUVDY0RFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NE1SWUFBbkF3QVFKd01RSUNiRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhNZ29BQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NU13UUFBbkF3QVFKc01RSUNiRElEQW13ek5BUUFBbkF3QVFKc01RSUNiRElEQW13ek5ROEFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hORFlGQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRM0JRQUNjREFCQW5BeEFnSnNNZ01DYkRNRUFtdzBPQWNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyT1FjQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNiRFVHQW13Mk9nY0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJPd2NBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyUEFVQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05EMEZBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFErRHdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMFB4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE4wQUhBQUp3TUFFQ2NERUNBbXd5QXdKc013UUNiRFFGQW13MUJnSnNOa0VRQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVUlKQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0UXdnQUFuQXdBUUp3TVFJQ2JESURBbXd6QkFKc05BVUNiRFVHQW13MkJ3SnNOMFFRQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVVVUQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0p3TmdjQ2NEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9FWVJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFtdzRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyUnhNQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW5BMkJ3SndOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRTQmNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NjRGdKQW5BNUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkE4RGJERTFFQU5zTVRZUkEyd3hOeElEYkRFNEV3TnNNVGtVQTJ3eU1CVURiREl4RmdOc01qSkpRd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0ZRTnNNakVXQTJ3eU1oY0RiREl6R0FOc01qUVpBMnd5TlJvRGJESTJHd05zTWpjY0Eyd3lPQjBEYkRJNUhnTnNNekFmQTJ3ek1TQURiRE15SVFOc016TWlBMnd6TkNNRGJETTFKQU5zTXpZbEEyd3pOeVlEYkRNNEp3TnNNemtvQTJ3ME1Da0RiRFF4S2dOc05ESXJBMncwTXl3RGJEUTBMUU5zTkRVdUEydzBOaThEYkRRM01BTnNORGd4QTJ3ME9USURiRFV3TXdOc05URTBBMncxTWpVRGJEVXpOZ05zTlRRM0EydzFOVGdEYkRVMk9RTnNOVGM2QTJ3MU9Ec0RiRFU1UEFOc05qQTlBMncyTVQ0RGJEWXlQd05zTmpOQUEydzJORUVEYkRZMVFnTnNOalpLRXdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UaExGQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPVXdIQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmswTkFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1rNExBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFFGQW13MUJnSnNOZ2NDYkRjSUFtdzRDUUpzT1FvRGJERXdUd1FBQW5Bd0FRSndNUUlDYkRJREFtd3pVQTRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTlJEQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeFVoTUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0VXlBQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW13MkJ3SnNOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRFd05zTVRrVUEyd3lNQlVEYkRJeEZnTnNNaklYQTJ3eU14Z0RiREkwR1FOc01qVWFBMnd5TmhzRGJESTNIQU5zTWpnZEEyd3lPUjREYkRNd0h3TnNNekZVRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpGVkN3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1GWUhBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSnNObGNxQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9CTURiREU1RkFOc01qQVZBMnd5TVJZRGJESXlGd05zTWpNWUEyd3lOQmtEYkRJMUdnTnNNalliQTJ3eU54d0RiREk0SFFOc01qa2VBMnd6TUI4RGJETXhJQU5zTXpJaEEyd3pNeUlEYkRNMEl3TnNNelVrQTJ3ek5pVURiRE0zSmdOc016Z25BMnd6T1NnRGJEUXdLUU5zTkRGWUV3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0VnTnNNVGhaQ0FBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNXZzRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTmJCQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETmNDUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNiRFlIQW13M0NBSnNPRjBJQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEZGVDQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M1h3d0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVdBQVlRZ0FBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FtdzJCd0pzTjJJREFBSndNQUVDY0RFQ0Ftd3lZdzBBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5IixVPWE7Ri5oMjY0TW9kdWxlPW5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoVS5kZWNvZGUoTCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBZPUYscT1BPT4oSSxnLEIpPT57QS5IRUFQVTguY29weVdpdGhpbihJLGcsZytCKX07ZnVuY3Rpb24gSyhBLEkpe2NvbnN0IGc9QSVJO3JldHVybiBnPjA/QStJLWc6QX1jb25zdCBIPUE9Pkk9Pntjb25zdCBnPUEuSEVBUFU4Lmxlbmd0aCxCPTY1NTM2LFE9MjE0NzQ4MzY0ODtpZihJPlEpcmV0dXJuITE7Y29uc3QgQz0xNjc3NzIxNjtmb3IobGV0IEQ9MTtEPD00O0QqPTIpe2xldCBFPWcqKDErLjIvRCk7RT1NYXRoLm1pbihFLEkrMTAwNjYzMjk2KTtjb25zdCB3PU1hdGgubWluKFEsSyhNYXRoLm1heChDLEksRSksQikpO3RyeXtjb25zdHttZW1vcnk6b309QTtvLmdyb3cody1vLmJ1ZmZlci5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpO2NvbnN0e2J1ZmZlcjpOfT1vO3JldHVybiBBLkhFQVA4PW5ldyBJbnQ4QXJyYXkoTiksQS5IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoTiksQS5IRUFQMzI9bmV3IEludDMyQXJyYXkoTiksITB9Y2F0Y2h7fX1yZXR1cm4hMX0sUj02NTUzNixjPTUyNTE3OTIsZD04NzUyLHQ9MTY3NzcyMTY7Y2xhc3MgaXtjb25zdHJ1Y3Rvcigpe3RoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLHRoaXMucGljPW5ldyBVaW50OEFycmF5KDApO2NvbnN0IEk9bmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7aW5pdGlhbDp0L1IsbWF4aW11bToyMTQ3NDgzNjQ4L1J9KSxnPXttZW1vcnk6SSxIRUFQODpuZXcgSW50OEFycmF5KEkuYnVmZmVyKSxIRUFQVTg6bmV3IFVpbnQ4QXJyYXkoSS5idWZmZXIpLEhFQVAzMjpuZXcgSW50MzJBcnJheShJLmJ1ZmZlcil9O2cuSEVBUDMyW2Q+PjJdPWM7Y29uc3R7ZXhwb3J0czpCfT1uZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UoWS5oMjY0TW9kdWxlLHtoMjY0OnttZW1vcnk6SSxtZW1jcHk6cShnKSxyZXNpemU6SChnKX19KTt0aGlzLm1lbW9yeT1nLHRoaXMuYXNtPUIsdGhpcy5wU3RvcmFnZT1CLmgyNjRhbGxvYygpLHRoaXMucFdpZHRoPUIubWFsbG9jKDQpLHRoaXMucEhlaWdodD1CLm1hbGxvYyg0KSx0aGlzLnBQaWN0dXJlPUIubWFsbG9jKDQpLHRoaXMuZGVjQnVmZmVyPUIubWFsbG9jKDEwMjQqMTAyNCksQi5pbml0KHRoaXMucFN0b3JhZ2UsMCl9ZGVjb2RlKEkpe2NvbnN0e21lbW9yeTpnLGFzbTpCfT10aGlzO2cuSEVBUFU4LnNldChJLHRoaXMuZGVjQnVmZmVyKTtjb25zdCBRPUIuZGVjb2RlKHRoaXMucFN0b3JhZ2UsdGhpcy5kZWNCdWZmZXIsSS5ieXRlTGVuZ3RoLHRoaXMucFBpY3R1cmUsdGhpcy5wV2lkdGgsdGhpcy5wSGVpZ2h0KTtpZihRPT09aS5QSUNfUkRZKXtjb25zdCBDPXRoaXMud2lkdGg9Zy5IRUFQMzJbdGhpcy5wV2lkdGg+Pj4yXSxEPXRoaXMuaGVpZ2h0PWcuSEVBUDMyW3RoaXMucEhlaWdodD4+PjJdLEU9Zy5IRUFQMzJbdGhpcy5wUGljdHVyZT4+Ml0sdz1DKkQqMy8yO3RoaXMucGljPWcuSEVBUFU4LnN1YmFycmF5KEUsRSt3KX1yZXR1cm4gUX19dmFyIGI9eS5IMjY0RGVjb2Rlcj1pO2kuUkRZPTAsaS5QSUNfUkRZPTEsaS5IRFJTX1JEWT0yLGkuRVJST1I9MyxpLlBBUkFNX1NFVF9FUlJPUj00LGkuTUVNQUxMT0NfRVJST1I9NTtmdW5jdGlvbiB4KEEpe3JldHVybiBVaW50OEFycmF5LmZyb20oYXRvYihBKSxJPT5JLmNoYXJDb2RlQXQoMCkpfWNvbnN0IHM9c2VsZixrPW5ldyBiLG09Si5zZWNvbmQvNTthZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixBPT57Y29uc3R7dGltZXN0YW1wOkksZmxhZ3M6ZyxpbmRleDpCfT1BLmRhdGEsUT1EYXRlLm5vdygpLUk7aWYoUT5tJiZnIT09Myl7TShgRnJhbWUgaXMgJHtRfW1zIGxhdGUsIGRyb3BwaW5nYCxCKTtyZXR1cm59Y29uc3QgQz14KEEuZGF0YS5lbmNvZGVkRnJhbWUpLEQ9ay5kZWNvZGUoQyk7dHJ5e2lmKEQhPT0xKXtNKGBmYWlsZWQgdG8gZGVjb2RlIGZyYW1lLCBzdGF0dXM6ICR7bihEKX1gLEIsQyk7cmV0dXJufWNvbnN0e3BpYzpFLGhlaWdodDp3LHdpZHRoOm99PWs7aWYoRS5sZW5ndGg9PT0wfHx3PT09MHx8bz09PTApe00oImRlY29kZWQgZnJhbWUgaGFzIG5vIGRhdGEiLEIsQyk7cmV0dXJufWNvbnN0IE49bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KEUpO3MucG9zdE1lc3NhZ2Uoe3RpbWVzdGFtcDpBLmRhdGEudGltZXN0YW1wLHl1djpOLGhlaWdodDp3LHdpZHRoOm8saW5kZXg6Qn0pfWNhdGNoKEUpe00oRSxCKX19KTtmdW5jdGlvbiBNKEEsSSxnKXtzLnBvc3RNZXNzYWdlKHtlcnJvcjpgaDI2NCBkZWNvZGVyIHdvcmtlcjogJHtBfWAsaW5kZXg6SX0pfWZ1bmN0aW9uIG4oQSl7c3dpdGNoKEEpe2Nhc2UgMDpyZXR1cm4iUkRZIjtjYXNlIDE6cmV0dXJuIlBJQ19SRFkiO2Nhc2UgMjpyZXR1cm4iSERSU19SRFkiO2Nhc2UgMzpyZXR1cm4iRVJST1IiO2Nhc2UgNDpyZXR1cm4iUEFSQU1fU0VUX0VSUk9SIjtjYXNlIDU6cmV0dXJuIk1FTUFMTE9DX0VSUk9SIjtkZWZhdWx0OnJldHVybiBBLnRvU3RyaW5nKCl9fX0pfSkoKTsK",blob$3=typeof window<"u"&&window.Blob&&new Blob([atob(encodedJs$3)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$3(){const s=blob$3&&(window.URL||window.webkitURL).createObjectURL(blob$3);try{return s?new Worker(s,{}):new Worker("data:application/javascript;base64,"+encodedJs$3,{type:"module"})}finally{s&&(window.URL||window.webkitURL).revokeObjectURL(s)}}class RealtimePlayer extends HTMLElement{constructor(){super(),__publicField$2(this,"drawer"),this.drawer=new H264BytestreamCanvasDrawer$1(()=>new WorkerWrapper$3,()=>{},()=>{})}connectedCallback(){this.style.background="black",this.innerHTML='',this.drawer.start(),this.drawer.setCanvas(this.querySelector("canvas"))}drawVideoFrame(o){this.drawer.receiveEncodedFrame(o)}}customElements.define("formant-realtime-player",RealtimePlayer);function insertWithoutScoping(s,o){if(s.inserted[o.name]===void 0)return s.insert("",o,s.sheet,!0)}function merge$3(s,o,et){var tt=[],nt=getRegisteredStyles(s,tt,et);return tt.length<2?et:nt+o(tt)}var createEmotion=function s(o){var et=createCache(o);et.sheet.speedy=function(ot){this.isSpeedy=ot},et.compat=!0;var tt=function(){for(var ot=arguments.length,st=new Array(ot),at=0;at({name:s,id:o,type:et,visible:rt,treePath:nt}),toggleVisibility:s=>{},cameraTargetId:"",setCameraTargetId:s=>{},reset:()=>{},toggleEditMode:()=>{},isEditing:!1,debug:!1});function useUI(){const[s,o]=React$1.useState([]),[et,tt]=React$1.useState(""),[nt,rt]=React$1.useState(!1);return{layers:s,register:(lt,ut,dt,ht,ct,pt=!0)=>{JSON.parse(sessionStorage.getItem(`${ut}-visible`)||"true");const ft={name:lt,id:ut,visible:pt,type:dt,treePath:ct,iconUrl:ht};return s.some(gt=>gt.id===ut)||o(gt=>[...gt,ft]),ft},toggleVisibility:lt=>{o(ut=>ut.map(dt=>{if(dt.id===lt){const ht=!dt.visible;if(sessionStorage.setItem(`${dt.id}-visible`,ht.toString()),dt.treePath&&dt.treePath.length>0){const ct=ut.filter(pt=>pt.treePath&&dt.treePath&&pt.treePath[0]===dt.treePath[0]&&pt.treePath.length>dt.treePath.length);ht?ct.forEach(pt=>{pt.visible=JSON.parse(sessionStorage.getItem(`${pt.id}-visible`)||"true")}):ct.forEach(pt=>{sessionStorage.setItem(`${pt.id}-visible`,pt.visible.toString()),pt.visible=!1})}return{...dt,visible:ht}}return dt}))},cameraTargetId:et,setCameraTargetId:tt,reset:()=>{o([])},toggleEditMode:()=>{rt(lt=>!lt)},isEditing:nt,debug:!1}}function stylis_min(s){function o(zt,en,Kt,nn,Zt){for(var jt=0,Vt=0,It=0,$t=0,Ht,qt,on=0,Xt=0,dn,_n=dn=Ht=0,Fn=0,Un=0,On=0,gn=0,hn=Kt.length,wn=hn-1,Zn,Pn="",$n="",Tr="",Qr="",_r;FnHt)&&(gn=(Pn=Pn.replace(" ",":")).length),0nn&&(nn=(en=en.trim()).charCodeAt(0)),nn){case 38:return en.replace(gt,"$1"+zt.trim());case 58:return zt.trim()+en.replace(gt,"$1"+zt.trim());default:if(0<1*Kt&&0Vt.charCodeAt(8))break;case 115:Zt=Zt.replace(Vt,"-webkit-"+Vt)+";"+Zt;break;case 207:case 102:Zt=Zt.replace(Vt,"-webkit-"+(102Kt.charCodeAt(0)&&(Kt=Kt.trim()),Pt=Kt,Kt=[Pt],01?o-1:0),tt=1;tt0?" Args: "+et.join(", "):""))}var j=function(){function s(et){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=et}var o=s.prototype;return o.indexOfGroup=function(et){for(var tt=0,nt=0;nt=this.groupSizes.length){for(var nt=this.groupSizes,rt=nt.length,it=rt;et>=it;)(it<<=1)<0&&D(16,""+et);this.groupSizes=new Uint32Array(it),this.groupSizes.set(nt),this.length=it;for(var ot=rt;ot=this.length||this.groupSizes[et]===0)return tt;for(var nt=this.groupSizes[et],rt=this.indexOfGroup(et),it=rt+nt,ot=rt;ot{const{canvas:it}=this;if(!it)return;const ot=it.getContext("webgl");this.webglContext=ot||void 0,this.lastDecodedFrameTime=void 0,this.lastReceivedFrameTime=void 0,this.hasReceivedKeyframe=!1,this.currentFrameIndex=void 0,!(!this.canvas||!this.webglContext)&&(this.yuvCanvas||(this.yuvCanvas=new YUVCanvas$1(this.webglContext)),this.moduleStartTime=Date.now())}),__publicField2(this,"stop",()=>{var it;(it=this.decoder)==null||it.release(),this.webglContext=void 0,this.decoderQueueLocked=!1}),__publicField2(this,"reset",()=>{this.retries=0,this.restart()}),__publicField2(this,"notifyWarningTextChanged",()=>{var it;(it=this.onWarningTextChanged)==null||it.call(this,this.getWarningText())}),__publicField2(this,"restart",()=>{console.info("Restarting decoder"),console.info("BytestreamPlayer restarting",__spreadProps$1(__spreadValues$1({},this.trackInfo),{Restart:this.timesRestarted})),this.frameQueue=[],this.decoderQueue=[],this.stop(),this.decoder=new H264Decoder$1(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),this.start(),this.retries++,this.timesRestarted++}),__publicField2(this,"onTrackTick",()=>{if(this.numFramesDecoded===0){if(this.lastDecodedFrameTime===void 0){const at=Date.now();console.info("BytestreamPlayer waiting for video",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Time Waited":at-this.moduleCreateTime}))}return}this.numFramesReceived/this.numFramesDecoded>maxDropRatio$1&&this.warnPerformanceProblems(),this.numFramesReceived=0,this.numFramesDecoded=0;const it=Array.from(this.frameCheckpointMap.entries()).reduce((at,[lt,ut])=>{var dt;return!this.currentFrameIndex||lt>this.currentFrameIndex-60||ut==="FrameDrawn"||(at[ut]=((dt=at[ut])!=null?dt:0)+1,this.frameCheckpointMap.delete(lt)),at},{});Object.keys(it).map(at=>{console.info("BytestreamPlayer Frame Dropped",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Num Dropped":it[at],"Frame State":at}))});const{minJitter:ot,maxJitter:st}=this;ot&&st&&(console.info("BytestreamPlayer Jitter",__spreadProps$1(__spreadValues$1({},this.trackInfo),{minJitter:ot,maxJitter:st})),this.minJitter=void 0,this.maxJitter=void 0)}),__publicField2(this,"onTick",()=>{var it;const{lastReceivedFrameTime:ot,lastDecodedFrameTime:st,moduleStartTime:at,noSignal:lt,retries:ut}=this,dt=new Date().getTime();lt&&(this.lastNoSignalTime=dt),this.overWaitingThreshold=dt-at>noSignalThreshold$1;const ht=dt-at>decoderNotWorkingThreshold$1;if(!st){ot&&ht&&utnoSignalThreshold$1&&ctwarnPerformanceThreshold$1&&this.warnPerformanceProblems(),ct>noSignalThreshold$1&&(this.lostSignal=!0)}this.overWaitingThreshold&&(this.waitingForDecoder||this.noSignal||this.lostSignal)&&((it=this.onCanvasDrawerWarning)==null||it.call(this,"ShouldDisableControl"))}),__publicField2(this,"receiveEncodedFrame",it=>{if(!it)return;const ot=it.index;if(ot&&this.frameCheckpointMap.set(ot,"FrameReceived"),!(!it||!this.canvas||!this.webglContext)){if(this.isKeyframe(it),!this.hasReceivedKeyframe)return console.info("Dropping frame because no keyframe detected"),!1;this.lastReceivedFrameTime===void 0&&console.debug("Received first frame on bytestream player",__spreadValues$1({},this.trackInfo)),this.checkOrder(it),this.numFramesReceived++,this.lastReceivedFrameTime=Date.now(),this.lostSignal&&this.restart(),this.noSignal=!1,this.lostSignal=!1,this.frameQueue.push(it),ot&&this.frameCheckpointMap.set(ot,"FrameQueued"),this.frameQueue.length>maxQueueSize$1&&(this.frameQueue=this.frameQueue.filter(st=>this.isKeyframe(st))),this.frameQueue.length>maxQueueSize$1&&(this.frameQueue=[],this.decoderQueue=[]),this.decodeNextFrame()}}),__publicField2(this,"onDecoderError",it=>{this.frameQueue=[],this.decoderQueue=[],this.hasReceivedKeyframe=!1,console.info("BytestreamPlayer decode error",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Frame Index":it}))}),__publicField2(this,"onReceiveDecodedFrame",it=>{var ot,st;const{canvas:at,yuvCanvas:lt,decoderQueue:ut}=this,{timestamp:dt,yuv:ht,height:ct,width:pt,index:ft}=it;this.frameCheckpointMap.set(ft,"FrameDecoded"),this.numFramesDecoded++;const gt=Date.now();if(this.lastDecodedFrameTime===void 0&&console.info("BytestreamPlayer started video",__spreadProps$1(__spreadValues$1({},this.trackInfo),{"Time Until Video":gt-this.moduleCreateTime})),this.lastDecodedFrameTime=gt,this.waitingForDecoder=!1,this.decoderQueue=ut.filter(Ft=>gt-Ftduration$1$2.second||!lt||!at||ct===0||pt===0)return;ct!==at.height&&(at.height=ct,lt.height=ct),pt!==at.width&&(at.width=pt,lt.width=pt);const yt=lt.draw(ht),Ut=Date.now();if(this.lastDrawnFrameTime){const Ft=Ut-this.lastDrawnFrameTime;this.minJitter=Math.min(Ft,(ot=this.minJitter)!=null?ot:Number.MAX_SAFE_INTEGER),this.maxJitter=Math.max(Ft,(st=this.maxJitter)!=null?st:0)}this.lastDrawnFrameTime=Ut,this.frameCheckpointMap.set(ft,"FrameDrawn"),yt===0&&(this.webglYUVSupported=!0),yt===hardwareIncompatibleErrorCode$1&&(this.webglYUVSupported=!1),this.frameQueue.length>0&&this.decodeNextFrame()}),this.workerFactory=o,this.onWebglYUVSupportedChanged=et,this.onWarningTextChanged=tt,this.onCanvasDrawerWarning=nt,this.trackInfo=rt,this.decoder=new H264Decoder$1(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),setInterval(this.onTick,duration$1$2.millisecond*200),setInterval(this.onTrackTick,duration$1$2.second*5)}get waitingForDecoder(){return this._waitingForDecoder}set waitingForDecoder(o){this._waitingForDecoder=o,this.notifyWarningTextChanged()}get noSignal(){return this._noSignal}set noSignal(o){this._noSignal=o,this.notifyWarningTextChanged()}get lostSignal(){return this._lostSignal}set lostSignal(o){this._lostSignal=o,this.notifyWarningTextChanged()}get overWaitingThreshold(){return this._overWaitingThreshold}set overWaitingThreshold(o){this._overWaitingThreshold=o,this.notifyWarningTextChanged()}get retries(){return this._retries}set retries(o){this._retries=o,this.notifyWarningTextChanged()}get webglYUVSupported(){return this._webglYUVSupported}set webglYUVSupported(o){var et;this._webglYUVSupported=o,(et=this.onWebglYUVSupportedChanged)==null||et.call(this,o),this.notifyWarningTextChanged()}setCanvas(o){this.canvas=o}getWarningText(){var o;const{waitingForDecoder:et,noSignal:tt,overWaitingThreshold:nt,lostSignal:rt,retries:it,webglYUVSupported:ot}=this,st=ot===!1,at=et?it===numRetries$1?"Decoder failed to start":"Starting decoder":void 0;return(o=(st?"Hardware decoding not supported on this device":void 0)??(rt?"Lost signal":tt?nt?"No signal":"Waiting for signal":void 0))!=null?o:at}decodeNextFrame(){if(this.decoderQueueLocked&&(this.decodeNextFrameAttempted=!0),this.decoderQueueLocked=!0,this.decoderQueue.length>maxQueueSize$1){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const o=this.frameQueue.shift();if(!o){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const et=Date.now();this.frameCheckpointMap.set(o.index,"FrameSentToDecoder"),this.decoder.post(et,o.frame_data,o.flags,o.index),this.decoderQueue.push(et),this.decoderQueueLocked=!1,this.decodeNextFrameAttempted&&(this.decodeNextFrameAttempted=!1,this.decodeNextFrame())}warnPerformanceProblems(){var o;this.lastDecodedFrameTime&&this.overWaitingThreshold&&!this.lostSignal&&!this.noSignal&&((o=this.onCanvasDrawerWarning)==null||o.call(this,"ShouldDegradeVideo"))}checkOrder(o){if(this.currentFrameIndex!==void 0&&o.indexDate.now()?!1:nt>this.medianFrameSize?(this.hasReceivedKeyframe=!0,!0):!1}};const encodedJs$3="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbihTKXt0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShTKTpTKCl9KShmdW5jdGlvbigpe2NvbnN0IEo9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07dmFyIHk9e30sRj17fSxhPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBHPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7ZnVuY3Rpb24gaChBKXtsZXQgST1BLmxlbmd0aDtBW0EubGVuZ3RoLTJdPT09Ij0iP0ktPTI6QVtBLmxlbmd0aC0xXT09PSI9IiYmSS0tO2NvbnN0IGc9SS80KjN8MCxCPW5ldyBVaW50OEFycmF5KGcpO2ZvcihsZXQgUT0wLEM9MDtRPGc7USs9Myl7Y29uc3QgRD1HLmluZGV4T2YoQVtDKytdKSxFPUcuaW5kZXhPZihBW0MrK10pO2lmKEJbUV09RDw8MnxFPj40LEM9PT1JKWJyZWFrO2NvbnN0IHc9Ry5pbmRleE9mKEFbQysrXXx8Ij0iKTtpZihCW1ErMV09KEUmMTUpPDw0fHc+PjIsQz09PUkpYnJlYWs7Y29uc3Qgbz1HLmluZGV4T2YoQVtDKytdfHwiPSIpO0JbUSsyXT0odyYzKTw8NnxvfXJldHVybiBCfWEuZGVjb2RlPWgsT2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IEw9IkFHRnpiUUVBQUFBQmx3RVRZQUovZndGL1lBUi9mMzkvQVg5Z0FuOS9BR0FEZjM5L0FYOWdBWDhBWUFsL2YzOS9mMzkvZjM4QVlBRi9BWDlnQkg5L2YzOEFZQVovZjM5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUFOL2YzOEFZQVYvZjM5L2Z3Ri9ZQUFBWUFWL2YzOS9md0JnQm45L2YzOS9md0JnQ245L2YzOS9mMzkvZjM4QVlBQUJmMkFIZjM5L2YzOS9md0YvWUFoL2YzOS9mMzkvZndGL0FqQURCR2d5TmpRR2JXVnRZM0I1QUFNRWFESTJOQVp5WlhOcGVtVUFCZ1JvTWpZMEJtMWxiVzl5ZVFJQmdBS0FnQUlEWTJJQUFBUUFBUU1LQVFZQUJRTUZCZ2NBQndZQUF3NERCd2NGQWdBQ0F3UUFCUVVGQlFvRUFnUUpBUWNBQXdZR0FnSUJCZ1FEQWdJQkN3RUJBd01MRFFJQkFBQUNDUWtKRHdJRkJRQUJDZ0FTQ3hFSUNBY0lDQWNFQVFRSUNBWUJFQWdBQVFZSkFYOEJRYkRFd0FJTEJ5WUVCbTFoYkd4dll3QUtDV2d5TmpSaGJHeHZZd0JnQm1SbFkyOWtaUUJoQkdsdWFYUUFZZ3IycFFWaXdBSUJBbjhnQUJBUElnSkJmMHdFUUNBQVFRRVFDeG9nQVVFQU5nSUFRUUFQQ3dKQUFrQWdBa0dBZ0lDQUJFOEVRQ0FBUVFNUUMwRi9SZ1JBUVFFUEN5QUJJQUpCSFhaQkFYRkJBV28yQWdBTUFRc2dBa0dBZ0lDQUFrOEVRQ0FBUVFVUUMwRi9SZ1JBUVFFUEN5QUJJQUpCRzNaQkEzRkJBMm8yQWdBTUFRc2dBa0dBZ0lDQUFVOEVRQ0FBUVFjUUMwRi9SZ1JBUVFFUEN5QUJJQUpCR1haQkIzRkJCMm8yQWdBTUFRc2dBaEF2SWdOQkJHb2lBa0VnUmdSQUlBRkJBRFlDQUNBQVFTQVFDeHBCQVNFQ0lBQkJBUkFEUVFGSERRSWdBQkFQSVFNZ0FFRWdFQXRCZjBZTkFpQURRUUZMRFFJZ0EwRUJhd1JBSUFGQmZ6WUNBQXdDQ3lBQlFYODJBZ0JCQVE4TElBQWdBMEVGYWhBTEdpQUFJQUlRQXlJQVFYOUdCRUJCQVE4TElBRWdBRUYvSUFKMFFYOXphallDQUF0QkFDRUNDeUFDQzRnQ0FRZC9JQUFvQWdRaEJBSkFJQUFvQWd4QkEzUWlCeUFBS0FJUUlnaHJJZ0pCSUU0RVFDQUVLQUFBSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUVESUFBb0FnZ2lBa1VOQVNBRElBSjBJQVF0QUFSQkNDQUNhM1p5SVFNTUFRc2dBa0VCU0FSQURBRUxJQVF0QUFBZ0FDZ0NDQ0lGUVJocUlnWjBJUU1nQWlBRmFrRjRhaUlDUVFGSURRQURRQ0FFTFFBQklBWkJlR29pQm5RZ0EzSWhBeUFDUVFoS0lRVWdCRUVCYWlFRUlBSkJlR29oQWlBRkRRQUxDeUFBSUFFZ0NHb2lCRFlDRUNBQUlBUkJCM0UyQWdoQmZ5RUNJQVFnQjAwRWZ5QUFJQUFvQWdBZ0JFRURkbW8yQWdRZ0EwRWdJQUZyZGdWQmZ3c0xxZzBCQjM4Q1FDQUFSUTBBSUFCQmVHb2lBeUFBUVh4cUtBSUFJZ0ZCZUhFaUFHb2hCUUpBSUFGQkFYRU5BQ0FCUVFOeFJRMEJJQU1nQXlnQ0FDSUNheUlEUWNUQUFDZ0NBQ0lFU1EwQklBQWdBbW9oQUNBRFFjakFBQ2dDQUVjRVFDQUNRZjhCVFFSQUlBTW9BZ2dpQkNBQ1FRTjJJZ0pCQTNSQjNNQUFha2NhSUFRZ0F5Z0NEQ0lCUmdSQVFiVEFBRUcwd0FBb0FnQkJmaUFDZDNFMkFnQU1Bd3NnQkNBQk5nSU1JQUVnQkRZQ0NBd0NDeUFES0FJWUlRWUNRQ0FESUFNb0Fnd2lBVWNFUUNBRUlBTW9BZ2dpQWswRVFDQUNLQUlNR2dzZ0FpQUJOZ0lNSUFFZ0FqWUNDQXdCQ3dKQUlBTkJGR29pQWlnQ0FDSUVEUUFnQTBFUWFpSUNLQUlBSWdRTkFFRUFJUUVNQVFzRFFDQUNJUWNnQkNJQlFSUnFJZ0lvQWdBaUJBMEFJQUZCRUdvaEFpQUJLQUlRSWdRTkFBc2dCMEVBTmdJQUN5QUdSUTBCQWtBZ0F5QURLQUljSWdKQkFuUkI1TUlBYWlJRUtBSUFSZ1JBSUFRZ0FUWUNBQ0FCRFFGQnVNQUFRYmpBQUNnQ0FFRitJQUozY1RZQ0FBd0RDeUFHUVJCQkZDQUdLQUlRSUFOR0cyb2dBVFlDQUNBQlJRMENDeUFCSUFZMkFoZ2dBeWdDRUNJQ0JFQWdBU0FDTmdJUUlBSWdBVFlDR0FzZ0F5Z0NGQ0lDUlEwQklBRWdBallDRkNBQ0lBRTJBaGdNQVFzZ0JTZ0NCQ0lCUVFOeFFRTkhEUUJCdk1BQUlBQTJBZ0FnQlNBQlFYNXhOZ0lFSUFNZ0FFRUJjallDQkNBQUlBTnFJQUEyQWdBUEN5QUZJQU5ORFFBZ0JTZ0NCQ0lCUVFGeFJRMEFBa0FnQVVFQ2NVVUVRQ0FGUWN6QUFDZ0NBRVlFUUVITXdBQWdBellDQUVIQXdBQkJ3TUFBS0FJQUlBQnFJZ0EyQWdBZ0F5QUFRUUZ5TmdJRUlBTkJ5TUFBS0FJQVJ3MERRYnpBQUVFQU5nSUFRY2pBQUVFQU5nSUFEd3NnQlVISXdBQW9BZ0JHQkVCQnlNQUFJQU0yQWdCQnZNQUFRYnpBQUNnQ0FDQUFhaUlBTmdJQUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFDUUNBQlFmOEJUUVJBSUFVb0Fnd2hBaUFGS0FJSUlnUWdBVUVEZGlJQlFRTjBRZHpBQUdvaUIwY0VRRUhFd0FBb0FnQWFDeUFDSUFSR0JFQkJ0TUFBUWJUQUFDZ0NBRUYrSUFGM2NUWUNBQXdDQ3lBQ0lBZEhCRUJCeE1BQUtBSUFHZ3NnQkNBQ05nSU1JQUlnQkRZQ0NBd0JDeUFGS0FJWUlRWUNRQ0FGSUFVb0Fnd2lBVWNFUUVIRXdBQW9BZ0FnQlNnQ0NDSUNUUVJBSUFJb0Fnd2FDeUFDSUFFMkFnd2dBU0FDTmdJSURBRUxBa0FnQlVFVWFpSUNLQUlBSWdRTkFDQUZRUkJxSWdJb0FnQWlCQTBBUVFBaEFRd0JDd05BSUFJaEJ5QUVJZ0ZCRkdvaUFpZ0NBQ0lFRFFBZ0FVRVFhaUVDSUFFb0FoQWlCQTBBQ3lBSFFRQTJBZ0FMSUFaRkRRQUNRQ0FGSUFVb0Fod2lBa0VDZEVIa3dnQnFJZ1FvQWdCR0JFQWdCQ0FCTmdJQUlBRU5BVUc0d0FCQnVNQUFLQUlBUVg0Z0FuZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ0lFUUNBQklBSTJBaEFnQWlBQk5nSVlDeUFGS0FJVUlnSkZEUUFnQVNBQ05nSVVJQUlnQVRZQ0dBc2dBeUFBUVFGeU5nSUVJQUFnQTJvZ0FEWUNBQ0FEUWNqQUFDZ0NBRWNOQVVHOHdBQWdBRFlDQUE4TElBVWdBVUYrY1RZQ0JDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFDeUFBUWY4QlRRUkFJQUJCQTNZaUFVRURkRUhjd0FCcUlRQUNmMEcwd0FBb0FnQWlBa0VCSUFGMElnRnhSUVJBUWJUQUFDQUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBaUFBSUFNMkFnZ2dBaUFETmdJTUlBTWdBRFlDRENBRElBSTJBZ2dQQ3lBRFFnQTNBaEFnQXdKL1FRQWdBRUVJZGlJQlJRMEFHa0VmSUFCQi8vLy9CMHNOQUJvZ0FTQUJRWUQrUDJwQkVIWkJDSEVpQVhRaUFpQUNRWURnSDJwQkVIWkJCSEVpQW5RaUJDQUVRWUNBRDJwQkVIWkJBbkVpQkhSQkQzWWdBU0FDY2lBRWNtc2lBVUVCZENBQUlBRkJGV3AyUVFGeGNrRWNhZ3NpQWpZQ0hDQUNRUUowUWVUQ0FHb2hBUUpBQWtBQ1FFRzR3QUFvQWdBaUJFRUJJQUowSWdkeFJRUkFRYmpBQUNBRUlBZHlOZ0lBSUFFZ0F6WUNBQ0FESUFFMkFoZ01BUXNnQUVFQVFSa2dBa0VCZG1zZ0FrRWZSaHQwSVFJZ0FTZ0NBQ0VCQTBBZ0FTSUVLQUlFUVhoeElBQkdEUUlnQWtFZGRpRUJJQUpCQVhRaEFpQUVJQUZCQkhGcUlnZEJFR29vQWdBaUFRMEFDeUFISUFNMkFoQWdBeUFFTmdJWUN5QURJQU0yQWd3Z0F5QUROZ0lJREFFTElBUW9BZ2dpQUNBRE5nSU1JQVFnQXpZQ0NDQURRUUEyQWhnZ0F5QUVOZ0lNSUFNZ0FEWUNDQXRCMU1BQVFkVEFBQ2dDQUVGL2FpSUFOZ0lBSUFBTkFFSDh3d0FoQXdOQUlBTW9BZ0FpQUVFSWFpRURJQUFOQUF0QjFNQUFRWDgyQWdBTEMzUUJBbjhqQUVFUWF5SUNKQUFnQWtFQU5nSU1JQUFnQWtFTWFoQUNJUUFDZnlBQ0tBSU1JZ05CZjBZRVFFRUJJQUJGRFFFYUlBRkJnSUNBZ0hnMkFnQkJBQXdCQzBFQklBQU5BQm9nQVNBRFFRRnFRUUYySWdGQkFDQUJheUFEUVFGeEd6WUNBRUVBQ3lFQUlBSkJFR29rQUNBQUM4Y0xBUlIvSUFGQm9EMXFMUUFBUVF4c0lnWkIxRHhxS0FJQUlRVWdCa0hRUEdvb0FnQWdBVUdRUEdvdEFBQWlCM1FoQkNBQ1JRUkFJQUFnQUNnQ0FDQUViRFlDQUFzZ0JTQUhkQ0VCQWtBQ1FDQURRWnovQTNFRVFDQUFJQVpCMkR4cUtBSUFJQWQwSWdNZ0FDZ0NQR3cyQWp3Z0FDQUFLQUk0SUFGc05nSTRRUUVoQWlBQUlBQW9BaXdnQkd3aUJ5QUFLQUlNSUFSc0lnVnFJZ2tnQUNnQ0lDQUJiQ0lLSUFBb0FqUWdBV3dpRDBFQmRXb2lFR3NpQmpZQ0xDQUFLQUlvSVFnZ0FDQUZJQWRySWdVZ0NrRUJkU0FQYXlJS2F5SUhOZ0lvSUFBb0FpUWhEaUFBSUFVZ0Ntb2lCVFlDSkNBQUlBQW9BaHdnQVd3aUR5QUFLQUlJSUFGc0lndHFJaE1nQUNnQ0VDQURiQ0lSSUFBb0FqQWdBMndpREVFQmRXb2lGV3NpQ2pZQ0hDQUFLQUlZSVEwZ0FDQUxJQTlySWdzZ0VVRUJkU0FNYXlJUmF5SVBOZ0lZSUFBb0FoUWhEQ0FBSUFzZ0VXb2lDellDRkNBQUlBUWdER3dpQkNBQUtBSUFJZ3hxSWhRZ0FDZ0NCQ0FCYkNJU0lBRWdEV3dpRFVFQmRXb2lGbXNpRVRZQ0RDQUFJQXdnQkdzaUJDQVNRUUYxSUExcklnMXJJZ3cyQWdnZ0FDQUVJQTFxSWcwMkFnUWdBQ0FCSUE1c0lnUWdBQ2dDT0NJT2F5SVNJQU1nQ0d3aUNFRUJkU0FBS0FJOEloZHJJZ05ySWdFMkFqZ2dBQ0FESUJKcUlnTTJBalFnQUNBRUlBNXFJZzRnRjBFQmRTQUlhaUlJYXlJRU5nSThJQUFnRkNBV2FpSVVJQWtnRUdvaUVHdEJJR29pRWlBSUlBNXFJZ2tnRXlBVmFpSUlRUUYxSWc1cmFrRUdkU0lUTmdJZ0lBQWdFaUFPSUFscmFrRUdkU0lPTmdJUUlBQWdFQ0FVYWtFZ2FpSVFJQWxCQVhVZ0NHb2lDV3RCQm5VaUNEWUNNQ0FBSUFrZ0VHcEJCblVpQ1RZQ0FDQUpRWUFFYWlBT1FZQUVhbkpCL3dkTERRSWdDRUdBQkdvZ0UwR0FCR3B5UWY4SFN3MENJQUFnQlNBTmFrRWdhaUlKSUFOQkFYVWdDMm9pRUd0QkJuVWlDRFlDTkNBQUlBMGdCV3RCSUdvaUJTQURJQXRCQVhVaUMydHFRUVoxSWcwMkFpUWdBQ0FGSUFzZ0EydHFRUVoxSWdNMkFoUWdBQ0FKSUJCcVFRWjFJZ1UyQWdRZ0JVR0FCR29nQTBHQUJHcHlRZjhIU3cwQ0lBaEJnQVJxSUExQmdBUnFja0gvQjBzTkFpQUFJQWNnREdwQklHb2lBeUFCUVFGMUlBOXFJZ1ZyUVFaMUlnczJBamdnQUNBTUlBZHJRU0JxSWdjZ0FTQVBRUUYxSWc5cmFrRUdkU0lNTmdJb0lBQWdCeUFQSUFGcmFrRUdkU0lCTmdJWUlBQWdBeUFGYWtFR2RTSUROZ0lJSUFOQmdBUnFJQUZCZ0FScWNrSC9CMHNOQWlBTFFZQUVhaUFNUVlBRWFuSkIvd2RMRFFJZ0FDQUdJQkZxUVNCcUlnRWdCRUVCZFNBS2FpSURhMEVHZFNJSE5nSThJQUFnRVNBR2EwRWdhaUlHSUFRZ0NrRUJkU0lGYTJwQkJuVWlDallDTENBQUlBWWdCU0FFYTJwQkJuVWlCRFlDSENBQUlBRWdBMnBCQm5VaUFEWUNEQ0FBUVlBRWFpQUVRWUFFYW5KQi93ZExEUUlnQjBHQUJHb2dDa0dBQkdweVFmOEhUUTBCREFJTElBTkI0Z0J4UlFSQVFRRWhBaUFBS0FJQVFTQnFRUVoxSWdGQmdBUnFRZjhIU3cwQ0lBQWdBVFlDT0NBQUlBRTJBandnQUNBQk5nSTBJQUFnQVRZQ01DQUFJQUUyQWl3Z0FDQUJOZ0lvSUFBZ0FUWUNKQ0FBSUFFMkFpQWdBQ0FCTmdJY0lBQWdBVFlDR0NBQUlBRTJBaFFnQUNBQk5nSVFJQUFnQVRZQ0RDQUFJQUUyQWdnZ0FDQUJOZ0lFSUFBZ0FUWUNBQXdCQzBFQklRSWdBQ0FBS0FJRUlBRnNJZ2NnQUNnQ0dDQUJiQ0lHUVFGMWFpSURJQUFvQWdBaUJTQUFLQUlVSUFSc0lnUnFJZ3BxUVNCcVFRWjFJZ0UyQWpBZ0FDQUtJQU5yUVNCcVFRWjFJZ00yQWd3Z0FDQUZJQVJySWdVZ0JpQUhRUUYxSWdkcmFrRWdha0VHZFNJRU5nSUlJQUFnQnlBR2F5QUZha0VnYWtFR2RTSUdOZ0lFSUFBZ0FUWUNBQ0FBSUFFMkFpQWdBQ0FHTmdJMElBQWdBVFlDRUNBQUlBWTJBaVFnQUNBRU5nSTRJQUFnQmpZQ0ZDQUFJQVEyQWlnZ0FDQUROZ0k4SUFBZ0JEWUNHQ0FBSUFNMkFpd2dBQ0FETmdJY0lBTkJnQVJxSUFGQmdBUnFJQVJCZ0FScUlBWkJnQVJxY25KeVFmOEhTdzBCQzBFQUlRSUxJQUlMOHdJQ0FuOEJmZ0pBSUFKRkRRQWdBQ0FDYWlJRFFYOXFJQUU2QUFBZ0FDQUJPZ0FBSUFKQkEwa05BQ0FEUVg1cUlBRTZBQUFnQUNBQk9nQUJJQU5CZldvZ0FUb0FBQ0FBSUFFNkFBSWdBa0VIU1EwQUlBTkJmR29nQVRvQUFDQUFJQUU2QUFNZ0FrRUpTUTBBSUFCQkFDQUFhMEVEY1NJRWFpSURJQUZCL3dGeFFZR0NoQWhzSWdFMkFnQWdBeUFDSUFSclFYeHhJZ1JxSWdKQmZHb2dBVFlDQUNBRVFRbEpEUUFnQXlBQk5nSUlJQU1nQVRZQ0JDQUNRWGhxSUFFMkFnQWdBa0YwYWlBQk5nSUFJQVJCR1VrTkFDQURJQUUyQWhnZ0F5QUJOZ0lVSUFNZ0FUWUNFQ0FESUFFMkFnd2dBa0Z3YWlBQk5nSUFJQUpCYkdvZ0FUWUNBQ0FDUVdocUlBRTJBZ0FnQWtGa2FpQUJOZ0lBSUFRZ0EwRUVjVUVZY2lJRWF5SUNRU0JKRFFBZ0FhMGlCVUlnaGlBRmhDRUZJQU1nQkdvaEFRTkFJQUVnQlRjREdDQUJJQVUzQXhBZ0FTQUZOd01JSUFFZ0JUY0RBQ0FCUVNCcUlRRWdBa0ZnYWlJQ1FSOUxEUUFMQ3lBQUMvSURBUU4vSUFFb0FnQWlBMEgvLy84SFJ3UkFJQUVvQWdRaEJDQUFJQUlnQWtFRGNTQUNRUkJKSWdJYlFRSjBJZ1ZCOENscUtBSUFRUkJCQ0NBQ0d5SUNiR29nQlVHd0tXb29BZ0JxSWdBZ0F5QUFMUUFBYWtHd0xtb3RBQUE2QUFBZ0FTZ0NDQ0VESUFBZ0JDQUFMUUFCYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VFSUFBZ0F5QUFMUUFDYWtHd0xtb3RBQUE2QUFJZ0FDQUVJQUF0QUFOcVFiQXVhaTBBQURvQUF5QUJLQUlVSVFNZ0FDQUNhaUlBSUFFb0FoQWdBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BaGdoQkNBQUlBTWdBQzBBQVdwQnNDNXFMUUFBT2dBQklBRW9BaHdoQXlBQUlBUWdBQzBBQW1wQnNDNXFMUUFBT2dBQ0lBQWdBeUFBTFFBRGFrR3dMbW90QUFBNkFBTWdBU2dDSkNFRElBQWdBbW9pQUNBQktBSWdJQUF0QUFCcVFiQXVhaTBBQURvQUFDQUJLQUlvSVFRZ0FDQURJQUF0QUFGcVFiQXVhaTBBQURvQUFTQUJLQUlzSVFNZ0FDQUVJQUF0QUFKcVFiQXVhaTBBQURvQUFpQUFJQU1nQUMwQUEycEJzQzVxTFFBQU9nQURJQUVvQWpRaEF5QUFJQUpxSWdBZ0FTZ0NNQ0FBTFFBQWFrR3dMbW90QUFBNkFBQWdBU2dDT0NFQ0lBQWdBeUFBTFFBQmFrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQWdBaUFBTFFBQ2FrR3dMbW90QUFBNkFBSWdBQ0FCSUFBdEFBTnFRYkF1YWkwQUFEb0FBd3NMMHhBQkRIOGpBRUdBQVdzaUNpUUFJQUFRRHlFRVFRRWhCUUpBQWtBQ2Z5QUNRUUZOQkVBZ0JFRUFTQTBDSUFSQkdYWkIvZ0J4UVlBSWFpQUVRWUNBZ09BQVR3MEJHaUFFUVJWMlFmNFBjVUhBQ0dvZ0JFR0FnSUFJVHcwQkdpQUVRUkYyUWY3L0FYRkJrQWxxSUFSQmdJQ0FBVThOQVJvZ0JFRVFka0VCZEVHUUNtb01BUXNnQWtFRFRRUkFJQVJCZjB3RVFFRUNRYUlRSUFSQmdJQ0FnQVJ4R3lFRkRBTUxJQVJCR1haQi9nQnhRZEFLYWlBRVFZQ0FnSUFCVHcwQkdpQUVRUloyUWY0SGNVR1FDMm9nQkVHQWdJQVFUdzBCR2lBRVFSRjJRZjcvQVhGQjBBdHFEQUVMSUFKQkIwMEVRQ0FFUVJwMklnSkJlR3BCT0VrRVFDQUNRUUYwUWRBTmFnd0NDeUFFUVJWMlFmNFBjVUhRRG1vTUFRc2dCRUVaZGtIK0FIRkIwQkJxSUFKQkVFME5BQm9nQkVFZGRpSUNCRUFnQWtFQmRFSFFFV29NQVFzZ0JFRVhka0grQTNGQjRCRnFDeThCQUNJRkRRQkJBU0VMREFFTFFRRWhDeUFGUVF0Mklna2dBMHNOQUVFZ0lBVkJIM0VpQm1zaEFnSkFJQWxGQkVBTUFRc2dCQ0FHZENFRUFrQWdCVUVGZGtFL2NTSU1SUVJBREFFTElBSWdERWtFUUNBQUlBWVFDMEYvUmcwRElBQVFEeUVFUVNBaEFnc2dCQ0FNZENFR1FRRWdERUYvYW5RaEJ5QUVRU0FnREd0MklRUURRQ0FLUVVCcklBaEJBblJxUVg5QkFTQUVJQWR4R3pZQ0FDQUlRUUZxSVFnZ0IwRUJkaUlIRFFBTElBSWdER3NoQWlBR0lRUUxJQWdnQ1VrRVFDQU1RUU5KSWc4Z0JVSC9yd0ZMY1NFRkEwQWdBa0VQVFFSQUlBQkJJQ0FDYXhBTFFYOUdCRUFNQlFzZ0FCQVBJUVJCSUNFQ0MwRUFJUVlDUUFKQUFuOENRQ0FFUVFCSURRQkJBU0VHSUFSQi8vLy8vd05MRFFCQkFpRUdJQVJCLy8vLy93RkxEUUJCQXlFR0lBUkIvLy8vL3dCTERRQkJCQ0VHSUFSQi8vLy9QMHNOQUVFRklRWWdCRUgvLy84ZlN3MEFRUVloQmlBRVFmLy8vdzlMRFFCQkJ5RUdJQVJCLy8vL0Iwc05BRUVJSVFZZ0JFSC8vLzhEU3cwQVFRa2hCaUFFUWYvLy93RkxEUUJCQ2lFR0lBUkIvLy8vQUVzTkFFRUxJUVlnQkVILy96OUxEUUJCRENFR0lBUkIvLzhmU3cwQVFRMGhCaUFFUWYvL0Qwc05BQUovQWtBZ0JFSC8vd2ROQkVBZ0JFR0FnSHh4UVlDQUJFWU5BUXdLQ3lBRlFRUWdCUnNoQmlBRVFROTBJUVJCRGlFSElBSkJjV29NQVFzZ0JVRUJJQVViSVFVZ0JFRVFkQ0VFUVF3aEJrRVBJUWNnQWtGd2Fnc2hBaUFISUFWMElRY2dCVVVNQVFzZ0JpQUZkQ0VIUVFFaERpQUNJQVpCQVdvaUJtc2hBaUFFSUFaMElRUWdCVVVOQVNBRklRWkJBQXNoRGlBQ0lBWlBCSDhnQkFVZ0FFRWdJQUpyRUF0QmYwWUVRQXdIQzBFZ0lRSWdBQkFQQ3lFTklBSWdCbXNoQWlBTklBWjBJUVFnRFVFZ0lBWnJkaUFIYWlFSERBRUxRUUFoQlFzZ0NrRkFheUFJUVFKMGFrRUFJQWRCQW1vZ0J5QUlJQXhHR3lBSElBOGJJZzFCQW1wQkFYWWlCbXNnQmlBTlFRRnhHellDQUVFQklBVWdEaHNpQlNBRlFRWkpJQVpCQXlBRlFYOXFkRXB4YWlFRklBaEJBV29pQ0NBSlJ3MEFDd3RCQUNFSEFrQWdDU0FEVHdSQVFRQWhDQXdCQ3dKQUlBSkJDRXNFUUNBQ0lRVU1BUXRCSUNFRklBQkJJQ0FDYXhBTFFYOUdEUU1nQUJBUElRUUxBa0FDUUFKL0FrQWdBMEVFUndSQUlBbEJmMm9pQWtFTlN3MERBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBa0VCYXc0TkFBRUNBd1FGQmdjSUNRb0xEQTRMSUFSQkduWkI0QkpxREE0TElBUkJHblpCb0JOcURBMExJQVJCRzNaQjRCTnFEQXdMSUFSQkczWkJnQlJxREFzTElBUkJHblpCb0JScURBb0xJQVJCR25aQjRCUnFEQWtMSUFSQkduWkJvQlZxREFnTElBUkJHblpCNEJWcURBY0xJQVJCRzNaQm9CWnFEQVlMSUFSQkhIWkJ3QlpxREFVTElBUkJISFpCMEJacURBUUxJQVJCSFhaQjRCWnFEQU1MSUFSQkhuWkI2QlpxREFJTElBUkJBRWdFUUVFQklRSU1CQXRCRVNFQ0lBbEJBMFlOQTBFU0lRSWdCRUgvLy8vL0Ewc05BMEVpSVFJZ0NVRUNSZzBEUVNOQk15QUVRZi8vLy84QlN4c2hBZ3dEQ3lBRVFSdDJRYUFTYWlBRVFSZDJRY0FTYWlBRVFmLy8vLzhBU3hzTExRQUFJZ0lOQVF3RUMwRVJRUUVnQkVFQVNCc2hBZ3NnQWtFRWRpRUlJQVVnQWtFUGNTSURheUVDSUFRZ0EzUWhCQXNnQ1VGL2FpSURCRUFEUUFKL0lBZ0VRQ0FDUVFwTkJFQWdBRUVnSUFKckVBdEJmMFlFUUF3SEN5QUFFQThoQkVFZ0lRSUxBa0FDZndKQUlBaEJmMm9pQlVFRlRRUkFBa0FDUUFKQUFrQUNRQ0FGUVFGckRnVUFBUUlEQkFZTElBUkJIblpCN2hacURBWUxJQVJCSG5aQjhoWnFEQVVMSUFSQkhYWkI5aFpxREFRTElBUkJIWFpCL2hacURBTUxJQVJCSFhaQmhoZHFEQUlMQW45Qjh3QWdCRUVaZGtId0FIRnJJQVJCZ0lDQWdBSlBEUUFhUWZRQUlBUkIvLy8vL3dCTERRQWFRWVVCSUFSQi8vLy9QMHNOQUJwQmxnRWdCRUgvLy84ZlN3MEFHa0duQVNBRVFmLy8vdzlMRFFBYVFiZ0JJQVJCLy8vL0Iwc05BQnBCeVFFZ0JFSC8vLzhEU3cwQUdrSGFBU0FFUWYvLy93RkxEUUFhUVFCQjZ3RWdCRUdBZ0lBQlNSc0xJZ1ZCQkhZZ0NFME5BZ3dJQ3lBRVFSOTJRZXdXYWdzdEFBQWhCUXNnQlVVRVFBd0dDeUFLSUFkQkFuUnFJQVZCQkhZaUJrRUJhallDQUNBQ0lBVkJEM0VpQldzaEFpQUVJQVYwSVFRZ0NDQUdhd3dCQ3lBS0lBZEJBblJxUVFFMkFnQkJBQXNoQ0NBSFFRRnFJZ2NnQTBjTkFBc2dBU0FJUVFKMGFpQUtRVUJySUFOQkFuUnFLQUlBTmdJQUlBbEJmbW9oQlVFQklBaDBJUWNEUUNBQklBb2dCU0lEUVFKMElnVnFLQUlBSUFocUlnaEJBblJxSUFwQlFHc2dCV29vQWdBMkFnQWdBMEYvYWlFRlFRRWdDSFFnQjNJaEJ5QUREUUFMREFFTElBRWdDRUVDZEdvZ0NrRkFheUFEUVFKMGFpZ0NBRFlDQUVFQklBaDBJUWNMSUFCQklDQUNheEFMRFFBZ0IwRVFkQ0FKUVFSMGNpRUxDeUFLUVlBQmFpUUFJQXNMelM0QkMzOGpBRUVRYXlJTEpBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCdE1BQUtBSUFJZ1pCRUNBQVFRdHFRWGh4SUFCQkMwa2JJZ1ZCQTNZaUFIWWlBVUVEY1FSQUlBRkJmM05CQVhFZ0FHb2lBa0VEZENJRVFlVEFBR29vQWdBaUFVRUlhaUVBQWtBZ0FTZ0NDQ0lESUFSQjNNQUFhaUlFUmdSQVFiVEFBQ0FHUVg0Z0FuZHhOZ0lBREFFTFFjVEFBQ2dDQUJvZ0F5QUVOZ0lNSUFRZ0F6WUNDQXNnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1EQXNnQlVHOHdBQW9BZ0FpQ0UwTkFTQUJCRUFDUUVFQ0lBQjBJZ0pCQUNBQ2EzSWdBU0FBZEhFaUFFRUFJQUJyY1VGL2FpSUFJQUJCREhaQkVIRWlBSFlpQVVFRmRrRUljU0lDSUFCeUlBRWdBbllpQUVFQ2RrRUVjU0lCY2lBQUlBRjJJZ0JCQVhaQkFuRWlBWElnQUNBQmRpSUFRUUYyUVFGeElnRnlJQUFnQVhacUlnSkJBM1FpQTBIa3dBQnFLQUlBSWdFb0FnZ2lBQ0FEUWR6QUFHb2lBMFlFUUVHMHdBQWdCa0YrSUFKM2NTSUdOZ0lBREFFTFFjVEFBQ2dDQUJvZ0FDQUROZ0lNSUFNZ0FEWUNDQXNnQVVFSWFpRUFJQUVnQlVFRGNqWUNCQ0FCSUFWcUlnY2dBa0VEZENJQ0lBVnJJZ05CQVhJMkFnUWdBU0FDYWlBRE5nSUFJQWdFUUNBSVFRTjJJZ1JCQTNSQjNNQUFhaUVCUWNqQUFDZ0NBQ0VDQW44Z0JrRUJJQVIwSWdSeFJRUkFRYlRBQUNBRUlBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEJDQUJJQUkyQWdnZ0JDQUNOZ0lNSUFJZ0FUWUNEQ0FDSUFRMkFnZ0xRY2pBQUNBSE5nSUFRYnpBQUNBRE5nSUFEQXdMUWJqQUFDZ0NBQ0lLUlEwQklBcEJBQ0FLYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQWlBQWNpQUJJQUoySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJZ0VvQWdSQmVIRWdCV3NoQXlBQklRSURRQUpBSUFJb0FoQWlBRVVFUUNBQ0tBSVVJZ0JGRFFFTElBQW9BZ1JCZUhFZ0JXc2lBaUFESUFJZ0Ewa2lBaHNoQXlBQUlBRWdBaHNoQVNBQUlRSU1BUXNMSUFFb0FoZ2hDU0FCSUFFb0Fnd2lCRWNFUUVIRXdBQW9BZ0FnQVNnQ0NDSUFUUVJBSUFBb0Fnd2FDeUFBSUFRMkFnd2dCQ0FBTmdJSURBc0xJQUZCRkdvaUFpZ0NBQ0lBUlFSQUlBRW9BaEFpQUVVTkF5QUJRUkJxSVFJTEEwQWdBaUVISUFBaUJFRVVhaUlDS0FJQUlnQU5BQ0FFUVJCcUlRSWdCQ2dDRUNJQURRQUxJQWRCQURZQ0FBd0tDMEYvSVFVZ0FFRy9mMHNOQUNBQVFRdHFJZ0JCZUhFaEJVRzR3QUFvQWdBaUIwVU5BRUVBSUFWcklRSUNRQUpBQWtBQ2YwRUFJQUJCQ0hZaUFFVU5BQnBCSHlBRlFmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnTWdBMEdBZ0E5cVFSQjJRUUp4SWdOMFFROTJJQUFnQVhJZ0EzSnJJZ0JCQVhRZ0JTQUFRUlZxZGtFQmNYSkJIR29MSWdoQkFuUkI1TUlBYWlnQ0FDSURSUVJBUVFBaEFBd0JDeUFGUVFCQkdTQUlRUUYyYXlBSVFSOUdHM1FoQVVFQUlRQURRQUpBSUFNb0FnUkJlSEVnQldzaUJpQUNUdzBBSUFNaEJDQUdJZ0lOQUVFQUlRSWdBeUVBREFNTElBQWdBeWdDRkNJR0lBWWdBeUFCUVIxMlFRUnhhaWdDRUNJRFJoc2dBQ0FHR3lFQUlBRWdBMEVBUjNRaEFTQUREUUFMQ3lBQUlBUnlSUVJBUVFJZ0NIUWlBRUVBSUFCcmNpQUhjU0lBUlEwRElBQkJBQ0FBYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQXlBQWNpQUJJQU4ySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJRElBSkpJUUVnQXlBQ0lBRWJJUUlnQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBQ1FiekFBQ2dDQUNBRmEwOE5BQ0FFS0FJWUlRZ2dCQ0FFS0FJTUlnRkhCRUJCeE1BQUtBSUFJQVFvQWdnaUFFMEVRQ0FBS0FJTUdnc2dBQ0FCTmdJTUlBRWdBRFlDQ0F3SkN5QUVRUlJxSWdNb0FnQWlBRVVFUUNBRUtBSVFJZ0JGRFFNZ0JFRVFhaUVEQ3dOQUlBTWhCaUFBSWdGQkZHb2lBeWdDQUNJQURRQWdBVUVRYWlFRElBRW9BaEFpQUEwQUN5QUdRUUEyQWdBTUNBdEJ2TUFBS0FJQUlnRWdCVThFUUVISXdBQW9BZ0FoQUFKQUlBRWdCV3NpQWtFUVR3UkFRYnpBQUNBQ05nSUFRY2pBQUNBQUlBVnFJZ00yQWdBZ0F5QUNRUUZ5TmdJRUlBQWdBV29nQWpZQ0FDQUFJQVZCQTNJMkFnUU1BUXRCeU1BQVFRQTJBZ0JCdk1BQVFRQTJBZ0FnQUNBQlFRTnlOZ0lFSUFBZ0FXb2lBU0FCS0FJRVFRRnlOZ0lFQ3lBQVFRaHFJUUFNQ2d0QndNQUFLQUlBSWdFZ0JVc0VRRUhBd0FBZ0FTQUZheUlCTmdJQVFjekFBRUhNd0FBb0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQW9MUVFBaEFDQUZRUzlxSWdRQ2YwR014QUFvQWdBRVFFR1V4QUFvQWdBTUFRdEJtTVFBUW44M0FnQkJrTVFBUW9DZ2dJQ0FnQVEzQWdCQmpNUUFJQXRCREdwQmNIRkIyS3JWcWdWek5nSUFRYURFQUVFQU5nSUFRZkREQUVFQU5nSUFRWUFnQ3lJQ2FpSUdRUUFnQW1zaUIzRWlBaUFGVFEwSlFlekRBQ2dDQUNJREJFQkI1TU1BS0FJQUlnZ2dBbW9pQ1NBSVRRMEtJQWtnQTBzTkNndEI4TU1BTFFBQVFRUnhEUVFDUUFKQVFjekFBQ2dDQUNJREJFQkI5TU1BSVFBRFFDQUFLQUlBSWdnZ0EwMEVRQ0FJSUFBb0FnUnFJQU5MRFFNTElBQW9BZ2dpQUEwQUN3dEJBQkFUSWdGQmYwWU5CU0FDSVFaQmtNUUFLQUlBSWdCQmYyb2lBeUFCY1FSQUlBSWdBV3NnQVNBRGFrRUFJQUJyY1dvaEJnc2dCaUFGVFEwRklBWkIvdi8vL3dkTERRVkI3TU1BS0FJQUlnQUVRRUhrd3dBb0FnQWlBeUFHYWlJSElBTk5EUVlnQnlBQVN3MEdDeUFHRUJNaUFDQUJSdzBCREFjTElBWWdBV3NnQjNFaUJrSCsvLy8vQjBzTkJDQUdFQk1pQVNBQUtBSUFJQUFvQWdScVJnMERJQUVoQUFzQ1FDQUZRVEJxSUFaTkRRQWdBRUYvUmcwQVFaVEVBQ2dDQUNJQklBUWdCbXRxUVFBZ0FXdHhJZ0ZCL3YvLy93ZExCRUFnQUNFQkRBY0xJQUVRRTBGL1J3UkFJQUVnQm1vaEJpQUFJUUVNQnd0QkFDQUdheEFUR2d3RUN5QUFJZ0ZCZjBjTkJRd0RDMEVBSVFRTUJ3dEJBQ0VCREFVTElBRkJmMGNOQWd0QjhNTUFRZkREQUNnQ0FFRUVjallDQUFzZ0FrSCsvLy8vQjBzTkFTQUNFQk1pQVVFQUVCTWlBRThOQVNBQlFYOUdEUUVnQUVGL1JnMEJJQUFnQVdzaUJpQUZRU2hxVFEwQkMwSGt3d0JCNU1NQUtBSUFJQVpxSWdBMkFnQWdBRUhvd3dBb0FnQkxCRUJCNk1NQUlBQTJBZ0FMQWtBQ1FBSkFRY3pBQUNnQ0FDSURCRUJCOU1NQUlRQURRQ0FCSUFBb0FnQWlBaUFBS0FJRUlnUnFSZzBDSUFBb0FnZ2lBQTBBQ3d3Q0MwSEV3QUFvQWdBaUFFRUFJQUVnQUU4YlJRUkFRY1RBQUNBQk5nSUFDMEVBSVFCQitNTUFJQVkyQWdCQjlNTUFJQUUyQWdCQjFNQUFRWDgyQWdCQjJNQUFRWXpFQUNnQ0FEWUNBRUdBeEFCQkFEWUNBQU5BSUFCQkEzUWlBa0hrd0FCcUlBSkIzTUFBYWlJRE5nSUFJQUpCNk1BQWFpQUROZ0lBSUFCQkFXb2lBRUVnUncwQUMwSEF3QUFnQmtGWWFpSUFRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlDYXlJRE5nSUFRY3pBQUNBQklBSnFJZ0kyQWdBZ0FpQURRUUZ5TmdJRUlBQWdBV3BCS0RZQ0JFSFF3QUJCbk1RQUtBSUFOZ0lBREFJTElBQXRBQXhCQ0hFTkFDQUJJQU5ORFFBZ0FpQURTdzBBSUFBZ0JDQUdhallDQkVITXdBQWdBMEY0SUFOclFRZHhRUUFnQTBFSWFrRUhjUnNpQUdvaUFUWUNBRUhBd0FCQndNQUFLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRZERBQUVHY3hBQW9BZ0EyQWdBTUFRc2dBVUhFd0FBb0FnQWlCRWtFUUVIRXdBQWdBVFlDQUNBQklRUUxJQUVnQm1vaEFrSDB3d0FoQUFKQUFrQUNRQUpBQWtBQ1FBTkFJQUlnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEI5TU1BSVFBRFFDQUFLQUlBSWdJZ0EwMEVRQ0FDSUFBb0FnUnFJZ1FnQTBzTkF3c2dBQ2dDQ0NFQURBQUFDd0FMSUFBZ0FUWUNBQ0FBSUFBb0FnUWdCbW8yQWdRZ0FVRjRJQUZyUVFkeFFRQWdBVUVJYWtFSGNSdHFJZ2tnQlVFRGNqWUNCQ0FDUVhnZ0FtdEJCM0ZCQUNBQ1FRaHFRUWR4RzJvaUFTQUpheUFGYXlFQUlBVWdDV29oQnlBQklBTkdCRUJCek1BQUlBYzJBZ0JCd01BQVFjREFBQ2dDQUNBQWFpSUFOZ0lBSUFjZ0FFRUJjallDQkF3REN5QUJRY2pBQUNnQ0FFWUVRRUhJd0FBZ0J6WUNBRUc4d0FCQnZNQUFLQUlBSUFCcUlnQTJBZ0FnQnlBQVFRRnlOZ0lFSUFBZ0Iyb2dBRFlDQUF3REN5QUJLQUlFSWdKQkEzRkJBVVlFUUNBQ1FYaHhJUW9DUUNBQ1FmOEJUUVJBSUFFb0FnZ2lBeUFDUVFOMklnUkJBM1JCM01BQWFrY2FJQU1nQVNnQ0RDSUNSZ1JBUWJUQUFFRzB3QUFvQWdCQmZpQUVkM0UyQWdBTUFnc2dBeUFDTmdJTUlBSWdBellDQ0F3QkN5QUJLQUlZSVFnQ1FDQUJJQUVvQWd3aUJrY0VRQ0FFSUFFb0FnZ2lBazBFUUNBQ0tBSU1HZ3NnQWlBR05nSU1JQVlnQWpZQ0NBd0JDd0pBSUFGQkZHb2lBeWdDQUNJRkRRQWdBVUVRYWlJREtBSUFJZ1VOQUVFQUlRWU1BUXNEUUNBRElRSWdCU0lHUVJScUlnTW9BZ0FpQlEwQUlBWkJFR29oQXlBR0tBSVFJZ1VOQUFzZ0FrRUFOZ0lBQ3lBSVJRMEFBa0FnQVNBQktBSWNJZ0pCQW5SQjVNSUFhaUlES0FJQVJnUkFJQU1nQmpZQ0FDQUdEUUZCdU1BQVFiakFBQ2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQUZHRzJvZ0JqWUNBQ0FHUlEwQkN5QUdJQWcyQWhnZ0FTZ0NFQ0lDQkVBZ0JpQUNOZ0lRSUFJZ0JqWUNHQXNnQVNnQ0ZDSUNSUTBBSUFZZ0FqWUNGQ0FDSUFZMkFoZ0xJQUVnQ21vaEFTQUFJQXBxSVFBTElBRWdBU2dDQkVGK2NUWUNCQ0FISUFCQkFYSTJBZ1FnQUNBSGFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVFRGRpSUJRUU4wUWR6QUFHb2hBQUovUWJUQUFDZ0NBQ0lDUVFFZ0FYUWlBWEZGQkVCQnRNQUFJQUVnQW5JMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0J6WUNDQ0FCSUFjMkFnd2dCeUFBTmdJTUlBY2dBVFlDQ0F3REN5QUhBbjlCQUNBQVFRaDJJZ0ZGRFFBYVFSOGdBRUgvLy84SFN3MEFHaUFCSUFGQmdQNC9ha0VRZGtFSWNTSUJkQ0lDSUFKQmdPQWZha0VRZGtFRWNTSUNkQ0lESUFOQmdJQVBha0VRZGtFQ2NTSURkRUVQZGlBQklBSnlJQU55YXlJQlFRRjBJQUFnQVVFVmFuWkJBWEZ5UVJ4cUN5SUJOZ0ljSUFkQ0FEY0NFQ0FCUVFKMFFlVENBR29oQWdKQVFiakFBQ2dDQUNJRFFRRWdBWFFpQkhGRkJFQkJ1TUFBSUFNZ0JISTJBZ0FnQWlBSE5nSUFEQUVMSUFCQkFFRVpJQUZCQVhacklBRkJIMFliZENFRElBSW9BZ0FoQVFOQUlBRWlBaWdDQkVGNGNTQUFSZzBESUFOQkhYWWhBU0FEUVFGMElRTWdBaUFCUVFSeGFpSUVLQUlRSWdFTkFBc2dCQ0FITmdJUUN5QUhJQUkyQWhnZ0J5QUhOZ0lNSUFjZ0J6WUNDQXdDQzBIQXdBQWdCa0ZZYWlJQVFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEd5SUNheUlITmdJQVFjekFBQ0FCSUFKcUlnSTJBZ0FnQWlBSFFRRnlOZ0lFSUFBZ0FXcEJLRFlDQkVIUXdBQkJuTVFBS0FJQU5nSUFJQU1nQkVFbklBUnJRUWR4UVFBZ0JFRlpha0VIY1J0cVFWRnFJZ0FnQUNBRFFSQnFTUnNpQWtFYk5nSUVJQUpCL01NQUtRSUFOd0lRSUFKQjlNTUFLUUlBTndJSVFmekRBQ0FDUVFocU5nSUFRZmpEQUNBR05nSUFRZlREQUNBQk5nSUFRWURFQUVFQU5nSUFJQUpCR0dvaEFBTkFJQUJCQnpZQ0JDQUFRUWhxSVFFZ0FFRUVhaUVBSUFRZ0FVc05BQXNnQWlBRFJnMERJQUlnQWlnQ0JFRitjVFlDQkNBRElBSWdBMnNpQkVFQmNqWUNCQ0FDSUFRMkFnQWdCRUgvQVUwRVFDQUVRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQVFMSUFOQ0FEY0NFQ0FEQW45QkFDQUVRUWgySWdCRkRRQWFRUjhnQkVILy8vOEhTdzBBR2lBQUlBQkJnUDQvYWtFUWRrRUljU0lBZENJQklBRkJnT0FmYWtFUWRrRUVjU0lCZENJQ0lBSkJnSUFQYWtFUWRrRUNjU0lDZEVFUGRpQUFJQUZ5SUFKeWF5SUFRUUYwSUFRZ0FFRVZhblpCQVhGeVFSeHFDeUlBTmdJY0lBQkJBblJCNU1JQWFpRUJBa0JCdU1BQUtBSUFJZ0pCQVNBQWRDSUdjVVVFUUVHNHdBQWdBaUFHY2pZQ0FDQUJJQU0yQWdBZ0F5QUJOZ0lZREFFTElBUkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQUVvQWdBaEFRTkFJQUVpQWlnQ0JFRjRjU0FFUmcwRUlBQkJIWFloQVNBQVFRRjBJUUFnQWlBQlFRUnhhaUlHS0FJUUlnRU5BQXNnQmlBRE5nSVFJQU1nQWpZQ0dBc2dBeUFETmdJTUlBTWdBellDQ0F3REN5QUNLQUlJSWdBZ0J6WUNEQ0FDSUFjMkFnZ2dCMEVBTmdJWUlBY2dBallDRENBSElBQTJBZ2dMSUFsQkNHb2hBQXdGQ3lBQ0tBSUlJZ0FnQXpZQ0RDQUNJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FqWUNEQ0FESUFBMkFnZ0xRY0RBQUNnQ0FDSUFJQVZORFFCQndNQUFJQUFnQldzaUFUWUNBRUhNd0FCQnpNQUFLQUlBSWdBZ0JXb2lBallDQUNBQ0lBRkJBWEkyQWdRZ0FDQUZRUU55TmdJRUlBQkJDR29oQUF3REMwR3d3QUJCTURZQ0FFRUFJUUFNQWdzQ1FDQUlSUTBBQWtBZ0JDZ0NIQ0lBUVFKMFFlVENBR29pQXlnQ0FDQUVSZ1JBSUFNZ0FUWUNBQ0FCRFFGQnVNQUFJQWRCZmlBQWQzRWlCellDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQVJHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQWcyQWhnZ0JDZ0NFQ0lBQkVBZ0FTQUFOZ0lRSUFBZ0FUWUNHQXNnQkNnQ0ZDSUFSUTBBSUFFZ0FEWUNGQ0FBSUFFMkFoZ0xBa0FnQWtFUFRRUkFJQVFnQWlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnTWdBa0VCY2pZQ0JDQUNJQU5xSUFJMkFnQWdBa0gvQVUwRVFDQUNRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQUVMSUFNQ2YwRUFJQUpCQ0hZaUFFVU5BQnBCSHlBQ1FmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnVWdCVUdBZ0E5cVFSQjJRUUp4SWdWMFFROTJJQUFnQVhJZ0JYSnJJZ0JCQVhRZ0FpQUFRUlZxZGtFQmNYSkJIR29MSWdBMkFod2dBMElBTndJUUlBQkJBblJCNU1JQWFpRUJBa0FDUUNBSFFRRWdBSFFpQlhGRkJFQkJ1TUFBSUFVZ0IzSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBRW9BZ0FoQlFOQUlBVWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCU0FBUVFGMElRQWdBU0FGUVFSeGFpSUdLQUlRSWdVTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUFsRkRRQUNRQ0FCS0FJY0lnQkJBblJCNU1JQWFpSUNLQUlBSUFGR0JFQWdBaUFFTmdJQUlBUU5BVUc0d0FBZ0NrRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0JVRURjallDQkNBQklBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQ0FSQUlBaEJBM1lpQlVFRGRFSGN3QUJxSVFCQnlNQUFLQUlBSVFJQ2YwRUJJQVYwSWdVZ0JuRkZCRUJCdE1BQUlBVWdCbkkyQWdBZ0FBd0JDeUFBS0FJSUN5RUZJQUFnQWpZQ0NDQUZJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0JUWUNDQXRCeU1BQUlBUTJBZ0JCdk1BQUlBTTJBZ0FMSUFGQkNHb2hBQXNnQzBFUWFpUUFJQUFMUkFFQmZ5QUFJQUFvQWhBZ0FXb2lBVFlDRUNBQUlBRkJCM0UyQWdoQmZ5RUNJQUVnQUNnQ0RFRURkRTBFZnlBQUlBQW9BZ0FnQVVFRGRtbzJBZ1JCQUFWQmZ3c0w1UWNCQ0g4Z0FDQUVRUUFnQm1zZ0FpQUNJQVpxUVFCSUd5SUNJQUlnQkVvYklnSnFJQUFnQWtFQVNoc2lDU0FGUVFBZ0Iyc2dBeUFESUFkcVFRQklHeUlBSUFBZ0JVb2JJZ0FnQkd4cUlBa2dBRUVBU2hzaEF5QUhRUUFnQUdzZ0FFRWZkWEVpQ1dzZ0FDQUhhaUlBSUFWcklneEJBQ0FBSUFWS0d5SVBheUVMSUFaQkFDQUNheUlPSUFKQkgzVnhJZzFySUFJZ0Jtb2lBQ0FFYTBFQUlBQWdCRW9pQlJzaUNtc2hBQUpBSUFKQkFFZ2dCWElpRUVVRVFDQUpCRUFEUUNBQklBTWdBQkFWSUFocUlRRWdDVUYvYWlJSkRRQUxDeUFMUlEwQkEwQWdBU0FESUFBUUZTQUlhaUVCSUFNZ0JHb2hBeUFMUVg5cUlnc05BQXNNQVFzQ1FDQUpSUTBBSUExRkJFQURRQ0FBSVFjZ0FTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQVNBSWFpRUJJQWxCZjJvaUNRMEFEQUlBQ3dBTElBRWdEbW9oQmdOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0JpRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQmlBSWFpRUdJQUVnQ0dvaEFTQUpRWDlxSWdrTkFBc0xJQXRGRFFBZ0RVVUVRQU5BSUFBaEJ5QUJJUUlnQXlFRklBQUVRQU5BSUFJZ0JTMEFBRG9BQUNBQ1FRRnFJUUlnQlVFQmFpRUZJQWRCZjJvaUJ3MEFDd3NnQ2dSQUlBSWdCVUYvYWkwQUFDQUtFQWNhQ3lBQklBaHFJUUVnQXlBRWFpRURJQXRCZjJvaUN3MEFEQUlBQ3dBTElBRWdEbW9oQ1FOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0NTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQ0NBSmFpRUpJQUVnQ0dvaEFTQURJQVJxSVFNZ0MwRi9haUlMRFFBTEN3SkFJQTlGRFFBZ0F5QUVheUVESUJCRkJFQURRQ0FCSUFNZ0FCQVZJQWhxSVFFZ0RFRi9haUlNRFFBTUFnQUxBQXNnRFVVRVFBTkFJQU1oQWlBQklRVWdBQ0VISUFBRVFBTkFJQVVnQWkwQUFEb0FBQ0FGUVFGcUlRVWdBa0VCYWlFQ0lBZEJmMm9pQncwQUN3c2dDZ1JBSUFVZ0FrRi9haTBBQUNBS0VBY2FDeUFCSUFocUlRRWdERUYvYWlJTURRQU1BZ0FMQUFzZ0FTQU9haUVKQTBBZ0FTQURMUUFBSUEwUUJ5RUJJQUFoQnlBSklRSWdBeUVGSUFBRVFBTkFJQUlnQlMwQUFEb0FBQ0FDUVFGcUlRSWdCVUVCYWlFRklBZEJmMm9pQncwQUN3c2dDZ1JBSUFJZ0JVRi9haTBBQUNBS0VBY2FDeUFJSUFscUlRa2dBU0FJYWlFQklBeEJmMm9pREEwQUN3c0w5QUlCQTM4Z0FVRURkRUh3Tm1vaUF5Z0NBQ0VGSUFNdEFBUWhBeUFCUVFOMFFiQTFhaUlCTFFBRUlRUUNRQ0FCS0FJQVFRUkdCRUFnQWlBRVFRRjBhaTRCQUNFQklBVkJCRVlFUUNBQklBSWdBMEVCZEdvdUFRQnFRUUZxUVFGMUR3c0NmeUFBS0FMTUFTSUNCRUFnQUNnQ0JDQUNLQUlFUmd3QkMwRUFDMFVOQVNBQklBQW9Bc3dCSUFOQkFYUnFMZ0VjYWtFQmFrRUJkUThMSUFWQkJFWUVRQ0FDSUFOQkFYUnFMZ0VBSVFFQ2Z5QUFLQUxJQVNJQ0JFQWdBQ2dDQkNBQ0tBSUVSZ3dCQzBFQUMwVU5BU0FCSUFBb0FzZ0JJQVJCQVhScUxnRWNha0VCYWtFQmRROExBbjhDZnlBQUtBTElBU0lCQkVBZ0FDZ0NCQ0FCS0FJRVJnd0JDMEVBQzBVRVFFRUFJUUpCQUF3QkMwRUJJUUlnQUNnQ3lBRWdCRUVCZEdvdUFSd0xJUUVDZnlBQUtBTE1BU0lFQkVBZ0FDZ0NCQ0FFS0FJRVJnd0JDMEVBQzBVTkFDQUFLQUxNQVNBRFFRRjBhaTRCSENFQUlBSkZCRUFnQUE4TElBQWdBV3BCQVdwQkFYVWhBUXNnQVF1SkJ3RUhmeUFESUFWcUlnMGdBUzRCQUNJTVFRSjFhaUVESUFRZ0Jtb2lEaUFCTGdFQ0lnOUJBblZxSVFRZ0FpZ0NDRUVFZENFSklBSW9BZ1JCQkhRaENpQUFJQVpCQkhScUlBVnFJUXNDUUNBTVFRTnhRUVIwSUE5QkEzRkJBblJ5UWRBN2FpZ0NBQ0lNUVE1TkJFQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnREVFQmF3NE9BUUlEQkFVR0J3Z0pDZ3NNRFE0QUN5QUNLQUlBSUFzZ0F5QUVJQW9nQ1NBSElBaEJFQkFNREE4TElBSW9BZ0FnQ3lBRElBUkJmbW9nQ2lBSklBY2dDRUVBRUNRTURnc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJRUVjTURRc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJUVFFUUpBd01DeUFDS0FJQUlBc2dBMEYrYWlBRUlBb2dDU0FISUFoQkFCQWpEQXNMSUFJb0FnQWdDeUFEUVg1cUlBUkJmbW9nQ2lBSklBY2dDRUVBRUJvTUNnc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRQVFJUXdKQ3lBQ0tBSUFJQXNnQTBGK2FpQUVRWDVxSUFvZ0NTQUhJQWhCQWhBYURBZ0xJQUlvQWdBZ0N5QURRWDVxSUFRZ0NpQUpJQWNnQ0JCR0RBY0xJQUlvQWdBZ0N5QURRWDVxSUFSQmZtb2dDaUFKSUFjZ0NFRUFFQ0lNQmdzZ0FpZ0NBQ0FMSUFOQmZtb2dCRUYrYWlBS0lBa2dCeUFJRUVVTUJRc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRRVFJZ3dFQ3lBQ0tBSUFJQXNnQTBGK2FpQUVJQW9nQ1NBSElBaEJBUkFqREFNTElBSW9BZ0FnQ3lBRFFYNXFJQVJCZm1vZ0NpQUpJQWNnQ0VFQkVCb01BZ3NnQWlnQ0FDQUxJQU5CZm1vZ0JFRithaUFLSUFrZ0J5QUlRUUVRSVF3QkN5QUNLQUlBSUFzZ0EwRithaUFFUVg1cUlBb2dDU0FISUFoQkF4QWFDeUFOUVFGMklBRXVBUUFpQ1VFRGRXb2hBeUFPUVFGMklBRXVBUUlpQVVFRGRXb2hCQ0FDS0FJQUlBSW9BZ1FpQ2lBQ0tBSUlJZ3RzUVFoMGFpRUNJQUFnQmtFQ2RFRjRjV29nQlVFQmRtcEJnQUpxSVFVZ0NFRUJkaUVHSUFkQkFYWWhCeUFCUVFkeElRZ2dDMEVEZENFQUlBcEJBM1FoQVFKQUlBbEJCM0VpQ1VVTkFDQUlSUTBBSUFJZ0JTQURJQVFnQVNBQUlBa2dDQ0FISUFZUVNBOExJQWtFUUNBQ0lBVWdBeUFFSUFFZ0FDQUpJQWNnQmhCTER3c2dDQVJBSUFJZ0JTQURJQVFnQVNBQUlBZ2dCeUFHRUVvUEN5QUNJQVVnQXlBRUlBRWdBQ0FISUFaQkNCQU1JQUlnQUNBQmJHb2dCVUZBYXlBRElBUWdBU0FBSUFjZ0JrRUlFQXdMeHdFQkJIOGdBQ2dDQkNFQ0FrQWdBQ2dDREVFRGRDQUFLQUlRYXlJRFFTQk9CRUFnQWlnQUFDSUJRUmgwSUFGQkNIUkJnSUQ4QjNGeUlBRkJDSFpCZ1A0RGNTQUJRUmgyY25JaEFTQUFLQUlJSWdCRkRRRWdBU0FBZENBQ0xRQUVRUWdnQUd0MmNnOExJQU5CQVVnRVFFRUFEd3NnQWkwQUFDQUFLQUlJSWdCQkdHb2lCSFFoQVNBQUlBTnFRWGhxSWdCQkFVZ05BQU5BSUFJdEFBRWdCRUY0YWlJRWRDQUJjaUVCSUFCQkNFb2hBeUFDUVFGcUlRSWdBRUY0YWlFQUlBTU5BQXNMSUFFTGpBUUJCMzhDUUNBQVFYOXFJZ2d0QUFBaUJTQUFMUUFBSWdacklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJRVR3MEFJQUJCZm1vdEFBQWlCQ0FGYXlJSElBZEJIM1VpQjJvZ0IzTWdBaWdDQ0NJSlR3MEFJQUF0QUFFaUJ5QUdheUlLSUFwQkgzVWlDbW9nQ25NZ0NVOE5BQ0FCUVFOTkJFQWdDQ0FGSUFFZ0FpZ0NBR3BCZjJvdEFBQWlDRUYvY3lJSklBaEJBV29pQ0NBR0lBVnJRUUowSUFkcklBUnFRUVJxUVFOMUlnVWdCU0FJU2hzZ0JTQUpTQnNpQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFGYTBHd0xtb3RBQUE2QUFBTUFRc2dDQ0FGSUFkcUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFBZ0JpQUhRUUYwYWlBRWFrRUNha0VDZGpvQUFBc0NRQ0FBSUFOcUlnQkJmMm9pQnkwQUFDSURJQUF0QUFBaUJXc2lCaUFHUVI5MUlnWnFJQVp6SUFJb0FnUlBEUUFnQUVGK2FpMEFBQ0lHSUFOcklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJSUlnaFBEUUFnQUMwQUFTSUVJQVZySWdrZ0NVRWZkU0lKYWlBSmN5QUlUdzBBSUFGQkEwMEVRQ0FISUFFZ0FpZ0NBR3BCZjJvdEFBQWlBVUYvY3lJQ0lBRkJBV29pQnlBRklBTnJRUUowSUFScklBWnFRUVJxUVFOMUlnRWdBU0FIU2hzZ0FTQUNTQnNpQVNBRGFrR3dMbW90QUFBNkFBQWdBQ0FGSUFGclFiQXVhaTBBQURvQUFBOExJQWNnQXlBRWFpQUdRUUYwYWtFQ2FrRUNkam9BQUNBQUlBVWdCRUVCZEdvZ0JtcEJBbXBCQW5ZNkFBQUxDMGNBQWtBZ0FVRUVUUVJBQWtBQ1FBSkFBa0FnQVVFQmF3NEVBUUlEQlFBTElBQW9Bc2dCRHdzZ0FDZ0N6QUVQQ3lBQUtBTFFBUThMSUFBb0F0UUJEd3RCQUNFQUN5QUFDNlVEQVF0L1FRQWdBMnNpQzBFQmRDRUVJQUVnQWlnQ0FHcEJmMm90QUFBaUFVRUJhaUVKSUFGQmYzTWhDZ0pBSUFBZ0Eyc2lCeTBBQUNJRklBQXRBQUFpQm1zaUFTQUJRUjkxSWdGcUlBRnpJQUlvQWdRaUFVOE5BQ0FBSUFScUxRQUFJZzBnQldzaUNDQUlRUjkxSWdocUlBaHpJQUlvQWdnaUNFOE5BQ0FBSUFOcUxRQUFJZzRnQm1zaURDQU1RUjkxSWd4cUlBeHpJQWhQRFFBZ0J5QUtJQWtnQmlBRmEwRUNkQ0FPYXlBTmFrRUVha0VEZFNJQklBRWdDVW9iSUFFZ0NrZ2JJZ0VnQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFCYTBHd0xtb3RBQUE2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJBV29pQlNBTGFpSUxMUUFBSWdZZ0FDMEFBU0lBYXlJSElBZEJIM1VpQjJvZ0IzTWdBVThOQUNBRUlBVnFMUUFBSWdFZ0Jtc2lCQ0FFUVI5MUlnUnFJQVJ6SUFJb0FnZ2lBazhOQUNBRElBVnFMUUFBSWdNZ0FHc2lCQ0FFUVI5MUlnUnFJQVJ6SUFKUERRQWdDeUFLSUFrZ0FDQUdhMEVDZENBRGF5QUJha0VFYWtFRGRTSUJJQUVnQ1VvYklBRWdDa2diSWdFZ0JtcEJzQzVxTFFBQU9nQUFJQVVnQUNBQmEwR3dMbW90QUFBNkFBQUxDMFFCQW44L0FDRUJBa0JCc01RQUtBSUFJZ0lnQUVFRGFrRjhjV29pQUNBQlFSQjBUUTBBSUFBUUFRMEFRYkRBQUVFd05nSUFRWDhQQzBHd3hBQWdBRFlDQUNBQ0N6UUJBWDhDUUNBQlFSQkxEUUFnQUNnQ0JDQUJRUUowYWlnQ0FDSUFSUTBBSUFBb0FoUkJBa2tOQUNBQUtBSUFJUUlMSUFJTGdnUUJBMzhnQWtHQUJFOEVRQ0FBSUFFZ0FoQUFHaUFBRHdzZ0FDQUNhaUVEQWtBZ0FDQUJjMEVEY1VVRVFBSkFJQUpCQVVnRVFDQUFJUUlNQVFzZ0FFRURjVVVFUUNBQUlRSU1BUXNnQUNFQ0EwQWdBaUFCTFFBQU9nQUFJQUZCQVdvaEFTQUNRUUZxSWdJZ0EwOE5BU0FDUVFOeERRQUxDd0pBSUFOQmZIRWlCRUhBQUVrTkFDQUNJQVJCUUdvaUJVc05BQU5BSUFJZ0FTZ0NBRFlDQUNBQ0lBRW9BZ1EyQWdRZ0FpQUJLQUlJTmdJSUlBSWdBU2dDRERZQ0RDQUNJQUVvQWhBMkFoQWdBaUFCS0FJVU5nSVVJQUlnQVNnQ0dEWUNHQ0FDSUFFb0FodzJBaHdnQWlBQktBSWdOZ0lnSUFJZ0FTZ0NKRFlDSkNBQ0lBRW9BaWcyQWlnZ0FpQUJLQUlzTmdJc0lBSWdBU2dDTURZQ01DQUNJQUVvQWpRMkFqUWdBaUFCS0FJNE5nSTRJQUlnQVNnQ1BEWUNQQ0FCUVVCcklRRWdBa0ZBYXlJQ0lBVk5EUUFMQ3lBQ0lBUlBEUUVEUUNBQ0lBRW9BZ0EyQWdBZ0FVRUVhaUVCSUFKQkJHb2lBaUFFU1EwQUN3d0JDeUFEUVFSSkJFQWdBQ0VDREFFTElBTkJmR29pQkNBQVNRUkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FpQUJMUUFCT2dBQklBSWdBUzBBQWpvQUFpQUNJQUV0QUFNNkFBTWdBVUVFYWlFQklBSkJCR29pQWlBRVRRMEFDd3NnQWlBRFNRUkFBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSWdBMGNOQUFzTElBQUx3UmdCSUg4akFFSFFBMnNpQmlRQUlBRW9BZ2doRkNBQklBRW9BZ1FpQ2lBQ2JDSWFJQU5xRUIwZ0FTZ0NBQ0VKSUFCQkFEWUNDQ0FBUWlnM0FoUWdBRUlBTndJTUlBQkJCallDQUNBRFFRUjBJUWNDUUFKQUFrQWdCRUYrYWlJRVFRVkxEUUFDUUNBRVFRRnJEZ1FCQVFFQkFBc01BUXNnQmtFQU5nSU1JQVlnRkRZQ0dDQUdJQW8yQWhRZ0JpQUZOZ0lRSUFVRVFDQUdRZEFBYWlBR1FReHFJQVpCRUdvZ0J5QUNRUVIwUVFCQkFFRVFRUkFRRGd3Q0N3c2dCa0hRQUdwQkFFR0FBeEFIR2lBSklCcEJDSFJxSUFkcUlRd2dCa0lBTndOSUlBWkJRR3RDQURjREFDQUdRZ0EzQXpnZ0JrSUFOd013SUFaQ0FEY0RLQ0FHUWdBM0F5QWdCa0lBTndNWUlBWkNBRGNERUVFQUlRa0NmMEVBSUFKRkRRQWFRUUFnQUVFQUlBcHJRZGdCYkdvb0FzUUJSUTBBR2lBR0lBd2dDa0VFZEdzaUJDMEFCU0FFTFFBRWFpQUVMUUFHYWlBRUxRQUhhaUlYSUFRdEFBTWdCQzBBQWlBRUxRQUJJQVF0QUFCcWFtb2lGbW9pQlNBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSWFtcHFJaEpySUFRdEFBOGdCQzBBRGlBRUxRQU5JQVF0QUF4cWFtb2lFMnNpQ0RZQ0ZDQUdJQVVnRW1vZ0Uyb2lDVFlDRUVFQkN5RUZBbjhDUUNBQ0lCUkJmMnBIQkVBZ0FDQUtRZGdCYkdvb0FzUUJEUUVMSUFVTUFRc2dCaUFNSUFwQkNIUnFJZ0l0QUFVZ0FpMEFCR29nQWkwQUJtb2dBaTBBQjJvaUhpQUNMUUFESUFJdEFBSWdBaTBBQVNBQ0xRQUFhbXBxSWg5cUlnUWdBaTBBQ3lBQ0xRQUtJQUl0QUFrZ0FpMEFDR3BxYWlJWWF5QUNMUUFQSUFJdEFBNGdBaTBBRFNBQ0xRQU1hbXBxSWhscklBaHFJZ2cyQWhRZ0JpQUVJQmhxSUFscUlCbHFJZ2syQWhCQkFTRVFJQVZCQVdvTElRZEJBQ0VFQW44Q1FDQURSUTBBSUFCQmJHb29BZ0JGRFFBZ0JpQU1RWDlxSWdJZ0NrRUdkQ0lPYWlJRUlBcEJCSFFpQzJvdEFBQWdCQzBBQUdvZ0JDQUtRUVYwSWc5cUxRQUFhaUFFSUFwQk1Hd2lEV290QUFCcUloc2dBaUFOYWkwQUFDQUNJQTlxTFFBQUlBSWdDMm90QUFBZ0FpMEFBR3BxYWlJY2FpSVJJQVFnRG1vaUFpQUxhaTBBQUNBQ0xRQUFhaUFDSUE5cUxRQUFhaUFDSUExcUxRQUFhaUlWYXlBQ0lBNXFJZ0lnQzJvdEFBQWdBaTBBQUdvZ0FpQVBhaTBBQUdvZ0FpQU5haTBBQUdvaUQyc2lCRFlDSUNBR0lCRWdGV29nQ1dvZ0Qyb2lDVFlDRUNBSFFRRnFJUXRCQVF3QkN5QUhJUXRCQUFzaEFnSkFBa0FDUUFKQUFrQUNRQ0FESUFwQmYycEhCRUFnQUNnQ25BTU5BUXRCQUNFT0lBSkJBRWNoRVNBSERRRU1BZ3NnQmlBRUlBeEJFR29pQkNBS1FRWjBJaDFxSWdBZ0NrRUVkQ0lOYWkwQUFDQUFMUUFBYWlBQUlBcEJCWFFpRG1vdEFBQnFJQUFnQ2tFd2JDSVJhaTBBQUdvaUlDQUVJQkZxTFFBQUlBUWdEbW90QUFBZ0JDQU5haTBBQUNBTUxRQVFhbXBxSWlGcUlpSWdBQ0FkYWlJQUlBMXFMUUFBSUFBdEFBQnFJQUFnRG1vdEFBQnFJQUFnRVdvdEFBQnFJZ3hySUFBZ0hXb2lBQ0FOYWkwQUFDQUFMUUFBYWlBQUlBNXFMUUFBYWlBQUlCRnFMUUFBYWlJTmEyb2lCRFlDSUNBR0lBd2dJbW9nQ1dvZ0RXb2lDVFlDRUNBQ1FRQkhJUkZCQVNFT0lBSkJBV29oQUNBTFFRRnFJUXNDUUNBSERRQWdBa1VOQUNBR0lCc2dIR29nRldvZ0Qyb2dJV3NnSUdzZ0RHc2dEV3RCQlhVaUNEWUNGQXdEQ3lBSFJRMENJQUFoQWdzZ0JpQUlJQWRCQTJwMUlnZzJBaFFMQWtBZ0VFVU5BQ0FGUlEwQUlBSU5BQ0FHSUJZZ0Yyb2dFbW9nRTJvZ0dXc2dHR3NnSG1zZ0gydEJCWFVpQkRZQ0lFRUJJUkJCQVNFTkRBTUxJQkJCQUVjaEVDQUZRUUJISVEwZ0FrVU5BZ3dCQ3lBUVFRQkhJUkFnQlVFQVJ5RU5JQUFoQWdzZ0JpQUVJQUpCQTJwMUlnUTJBaUFMSUFZQ2Z5QUxRWDlxSWdCQkFrMEVRQUpBQWtBQ1FDQUFRUUZyRGdJQkFnQUxJQWxCQkhZTUF3c2dDVUVGZGd3Q0N5QUpRUlZzUVFwMURBRUxJQWxCQm5ZTElnQTJBaEFDUUNBRUlBaHlSUVJBSUFZZ0FEWUNTQ0FHSUFBMkFrd2dCaUFBTmdKRUlBWWdBRFlDUUNBR0lBQTJBandnQmlBQU5nSTRJQVlnQURZQ05DQUdJQUEyQWpBZ0JpQUFOZ0lzSUFZZ0FEWUNLQ0FHSUFBMkFpUWdCaUFBTmdJZ0lBWWdBRFlDSENBR0lBQTJBaGdnQmlBQU5nSVVEQUVMSUFZZ0FDQUlhaUlGSUFSck5nSkFJQVlnQlNBRVFRRjFJZ0pyTmdJd0lBWWdBaUFGYWpZQ0lDQUdJQVFnQldvMkFoQWdCaUFBSUFocklnVWdCR3MyQWt3Z0JpQUZJQUpyTmdJOElBWWdBaUFGYWpZQ0xDQUdJQVFnQldvMkFod2dCaUFBSUFoQkFYVWlCMm9pQlNBRWF6WUNSQ0FHSUFVZ0FtczJBalFnQmlBQ0lBVnFOZ0lrSUFZZ0JDQUZhallDRkNBR0lBQWdCMnNpQUNBRWF6WUNTQ0FHSUFBZ0FtczJBamdnQmlBQUlBSnFOZ0lvSUFZZ0FDQUVhallDR0FzZ0JrSFFBR29oQ0NBR1FSQnFJUUJCQUNFRUEwQWdDQ0FBSUFSQkRIRnFLQUlBSWdKQi93RWdBa0gvQVVnYklnSkJBQ0FDUVFCS0d6b0FBQ0FBSUFCQkVHb2dCRUVCYWlJRVFUOXhHeUVBSUFoQkFXb2hDQ0FFUVlBQ1J3MEFDeUFCS0FJQUlBb2dGR3dpQUVFSWRHb2dHa0VHZEdvZ0EwRURkR29oQXlBS1FRUjBJUXdnQ2tFR2RDRWFJQUJCQm5RaEhVRUFJQXBCQTNRaUMyc2hJQ0FHUWRBQ2FpRWhJQVpCUUdzaElrRUFJUVVEUUNBR1FnQTNBMGdnSWtJQU53TUFJQVpDQURjRE9DQUdRZ0EzQXpBZ0JrSUFOd01vSUFaQ0FEY0RJQ0FHUWdBM0F4Z2dCa0lBTndNUVFRQWhDRUVBSVFSQkFDRUpJQTBFUUNBR0lBTWdJR29pQUMwQUF5QUFMUUFDYWlJWElBQXRBQUVnQUMwQUFHb2lGbW9pQWlBQUxRQUZJQUF0QUFScUloSnJJQUF0QUFjZ0FDMEFCbW9pRTJzaUNEWUNGQ0FHSUFJZ0Vtb2dFMm9pQkRZQ0VFRUJJUWtMSUJBRVFDQUdJQU1nR21vaUFDMEFBeUFBTFFBQ2FpSWVJQUF0QUFFZ0FDMEFBR29pSDJvaUFpQUFMUUFGSUFBdEFBUnFJaGhySUFBdEFBY2dBQzBBQm1vaUdXc2dDR29pQ0RZQ0ZDQUdJQUlnR0dvZ0JHb2dHV29pQkRZQ0VDQUpRUUZxSVFrTFFRQWhBQUovSUJGRkJFQWdDU0VIUVFBTUFRc2dCaUFEUVg5cUlnQWdER29pQWlBTGFpMEFBQ0FDTFFBQWFpSWJJQUFnQzJvdEFBQWdBQzBBQUdvaUhHb2lCeUFDSUF4cUlnQWdDMm90QUFBZ0FDMEFBR29pRldzZ0FDQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlnOXJJZ0EyQWlBZ0JpQUhJQlZxSUFScUlBOXFJZ1EyQWhBZ0NVRUJhaUVIUVFFTElRSUNRQ0FHQW44Q1FBSkFBa0FnRGtVRVFDQUpEUUVNQWdzZ0JpQUFJQU5CQ0dvaUNpQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlpTWdDaUFMYWkwQUFDQURMUUFJYWlJa2FpSWxJQUFnREdvaUFDQUxhaTBBQUNBQUxRQUFhaUlLYXlBQUlBeHFJZ0FnQzJvdEFBQWdBQzBBQUdvaUZHdHFJZ0EyQWlBZ0JpQUtJQ1ZxSUFScUlCUnFJZ1EyQWhBZ0FrRUJhaUVDSUFkQkFXb2hCeUFSUVFGeklBbEJBRWR5UlFSQUlBWWdHeUFjYWlBVmFpQVBhaUFrYXlBamF5QUtheUFVYTBFRWRTSUlOZ0lVREFNTElBbEZEUUlMSUFZZ0NDQUpRUUpxZFNJSU5nSVVDeUFXSUJkcUlCSnFJQk5xSUJscklCaHJJQjVySUI5clFRUjFJQkFnRFNBQ1JYRnhRUUZHRFFFYUlBSkZEUUlMSUFBZ0FrRUNhblVMSWdBMkFpQUxJQVlDZnlBSFFYOXFJZ0pCQWswRVFBSkFBa0FDUUNBQ1FRRnJEZ0lCQWdBTElBUkJBM1lNQXdzZ0JFRUVkZ3dDQ3lBRVFSVnNRUWwyREFFTElBUkJCWFlMSWdRMkFoQUNRQ0FBSUFoeVJRUkFJQVlnQkRZQ1NDQUdJQVEyQWt3Z0JpQUVOZ0pFSUFZZ0JEWUNRQ0FHSUFRMkFqd2dCaUFFTmdJNElBWWdCRFlDTkNBR0lBUTJBakFnQmlBRU5nSXNJQVlnQkRZQ0tDQUdJQVEyQWlRZ0JpQUVOZ0lnSUFZZ0JEWUNIQ0FHSUFRMkFoZ2dCaUFFTmdJVURBRUxJQVlnQkNBSWFpSUhJQUJyTmdKQUlBWWdCeUFBUVFGMUlnSnJOZ0l3SUFZZ0FpQUhhallDSUNBR0lBQWdCMm8yQWhBZ0JpQUVJQWhySWdjZ0FHczJBa3dnQmlBSElBSnJOZ0k4SUFZZ0FpQUhhallDTENBR0lBQWdCMm8yQWh3Z0JpQUVJQWhCQVhVaUNXb2lCeUFBYXpZQ1JDQUdJQWNnQW1zMkFqUWdCaUFDSUFkcU5nSWtJQVlnQUNBSGFqWUNGQ0FHSUFRZ0NXc2lCQ0FBYXpZQ1NDQUdJQVFnQW1zMkFqZ2dCaUFDSUFScU5nSW9JQVlnQUNBRWFqWUNHQXNnSVNBRlFRWjBhaUVJUVFBaEFDQUdRUkJxSVFRRFFDQUlJQVFnQUVFQmRFRU1jV29vQWdBaUFrSC9BU0FDUWY4QlNCc2lBa0VBSUFKQkFFb2JPZ0FBSUFRZ0JFRVFhaUFBUVFGcUlnQkJEM0ViSVFRZ0NFRUJhaUVJSUFCQndBQkhEUUFMSUFNZ0hXb2hBeUFGUVFGcUlnVkJBa2NOQUFzTElBRWdCa0hRQUdvUUd5QUdRZEFEYWlRQUN6WUFJQUlFUUNBQUlBRVFBZzhMUVFFaEFpQUJJQUJCQVJBRElnQTJBZ0FnQUVGL1J3Ui9JQUVnQUVFQmN6WUNBRUVBQlVFQkN3dk1Bd0VTZnlBRFFRRjBJUThnQTBGOWJDRVFRUUFnQTJzaUVVRUJkQ0VTSUFFZ0FpZ0NBR3BCZjJvdEFBQWlCMEVCYWlFVFFRQWdCMnNoQ2tFRUlRRURRQUpBSUFBZ0VXb2lGQzBBQUNJRklBQXRBQUFpQ0dzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdSUERRQWdBQ0FTYWlJTExRQUFJZ3dnQldzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdnaUJrOE5BQ0FBSUFOcUloVXRBQUFpRFNBSWF5SUVJQVJCSDNVaUJHb2dCSE1nQms4TkFDQUhJUVFnQUNBUWFpMEFBQ0lKSUFWcklnNGdEa0VmZFNJT2FpQU9jeUFHU1FSQUlBc2dEQ0FLSUFjZ0JTQUlha0VCYWtFQmRpQU1RUUYwYXlBSmFrRUJkU0lFSUFRZ0Iwb2JJQVFnQ2tnYmFqb0FBQ0FDS0FJSUlRWWdFeUVFQ3lBVUlBVUNmeUFBSUE5cUxRQUFJZ3NnQ0dzaUNTQUpRUjkxSWdscUlBbHpJQVpKQkVBZ0ZTQU5JQW9nQnlBRklBaHFRUUZxUVFGMklBMUJBWFJySUF0cVFRRjFJZ1lnQmlBSFNoc2dCaUFLU0J0cU9nQUFJQVJCQVdvaEJBdEJBQ0FFYXlJR0N5QUVJQWdnQld0QkFuUWdEV3NnREdwQkJHcEJBM1VpQlNBRklBUktHeUFGSUFaSUd5SUVha0d3TG1vdEFBQTZBQUFnQUNBSUlBUnJRYkF1YWkwQUFEb0FBQXNnQUVFQmFpRUFJQUZCZjJvaUFRMEFDd3Y3QmdFT2Z5QUNLQUlJSVFvZ0FpZ0NCQ0VQQWtBZ0FVRUVUd1JBSUE5QkFuWkJBbW9oRUVFRUlRSURRQUpBSUFCQmYyb2lCUzBBQUNJSElBQXRBQUFpQ0dzaUFTQUJRUjkxSWdGcUlBRnpJZzBnRDA4TkFDQUFRWDVxSWc0dEFBQWlBU0FIYXlJRUlBUkJIM1VpQkdvZ0JITWdDazhOQUNBQUxRQUJJZ2tnQ0dzaUJDQUVRUjkxSWdScUlBUnpJQXBQRFFBQ1FDQU5JQkJKQkVBZ0FDMEFBaUVMQW44Z0FFRjlhaUlOTFFBQUlnUWdCMnNpQmlBR1FSOTFJZ1pxSUFaeklBcEpCRUJCQXlFR0lBVWdDU0FISUFocUlBRnFJZ1ZCQVhScUlBUnFRUVJxUVFOMk9nQUFJQTRnQkNBRmFrRUNha0VDZGpvQUFDQUVRUU5zSVE0Z0JVRUVhaUVNSUFCQmZHb3RBQUFNQVFzZ0J5QUphaUVNUVFJaERrRUNJUVlnQlNFTklBRUxJUVFnRFNBTUlBNXFJQVJCQVhScUlBWjJPZ0FBSUFzZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFwUERRRWdBQ0FISUFscUlBaHFJZ1VnQzJwQkFtcEJBblk2QUFFZ0FDQUZJQXRCQTJ4cUlBQXRBQU5CQVhScVFRUnFRUU4yT2dBQ0lBQWdBU0FGUVFGMGFpQUxha0VFYWtFRGRqb0FBQXdDQ3lBRklBY2dDV29nQVVFQmRHcEJBbXBCQW5ZNkFBQUxJQUFnQVNBSWFpQUpRUUYwYWtFQ2FrRUNkam9BQUFzZ0FDQURhaUVBSUFKQmYyb2lBZzBBQ3d3QkN5QUJJQUlvQWdCcVFYOXFMUUFBSWdWQkFXb2hEVUVBSUFWcklRaEJCQ0VDQTBBQ1FDQUFRWDlxSWc0dEFBQWlCQ0FBTFFBQUlnZHJJZ0VnQVVFZmRTSUJhaUFCY3lBUFR3MEFJQUJCZm1vaURDMEFBQ0lKSUFScklnRWdBVUVmZFNJQmFpQUJjeUFLVHcwQUlBQXRBQUVpQ3lBSGF5SUJJQUZCSDNVaUFXb2dBWE1nQ2s4TkFDQUFMUUFDSVFZZ0JTRUJJQUJCZldvdEFBQWlFQ0FFYXlJUklCRkJIM1VpRVdvZ0VYTWdDa2tFUUNBTUlBa2dDQ0FGSUFRZ0IycEJBV3BCQVhZZ0NVRUJkR3NnRUdwQkFYVWlBU0FCSUFWS0d5QUJJQWhJRzJvNkFBQWdEU0VCQ3lBT0lBUUNmeUFHSUFkcklnd2dERUVmZFNJTWFpQU1jeUFLU1FSQUlBQWdDeUFJSUFVZ0JDQUhha0VCYWtFQmRpQUxRUUYwYXlBR2FrRUJkU0lHSUFZZ0JVb2JJQVlnQ0VnYmFqb0FBU0FCUVFGcUlRRUxRUUFnQVdzaUJnc2dBU0FKSUF0cklBY2dCR3RCQW5ScVFRUnFRUU4xSWdRZ0JDQUJTaHNnQkNBR1NCc2lBV3BCc0M1cUxRQUFPZ0FBSUFBZ0J5QUJhMEd3TG1vdEFBQTZBQUFMSUFBZ0Eyb2hBQ0FDUVg5cUlnSU5BQXNMQzlvSEFRMS9Jd0JCd0FOckloRWtBQ0FHUVFWcUlRa0NRQUpBSUFKQkFFZ05BQ0FEUVFCSURRQWdBaUFKYWlBRVN3MEFJQU1nQjJwQkJXb2dCVXNOQUNBRUlRa2dBeUVLREFFTElBQWdFU0FDSUFNZ0JDQUZJQWtnQjBFRmFpQUpFQXdnRVNFQVFRQWhBZ3NDUUNBSFJRMEFJQUFnQ1NBS2JDQUNhbW9oRTBFUUlBWnJJUlFDUUNBR1FRSjJJaElFUUNBSklBWnJJUlVnRXlBSklBaEJBWFpCQVhGQkFuSnNha0VGYWlFQ0lBY2hCQU5BSUFKQmYyb3RBQUFoQUNBQ1FYNXFMUUFBSVFNZ0FrRjlhaTBBQUNFRklBSkJmR290QUFBaEN5QUNRWHRxTFFBQUlRMGdFaUVQQTBBZ0FTQUNMUUFBSWdvZ0RTQUFJQXRxSWd4cklBTWdCV3BCRkd4cUlBeEJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQUFnQVNBQ0xRQUJJZ3dnQ3lBQUlBTnFRUlJzYWlBRklBcHFJZ3RySUF0QkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBRWdBU0FDTFFBQ0loQWdCU0FBSUFwcVFSUnNhaUFESUF4cUlnVnJJQVZCQW5ScmFrRVFha0VGZFVHd0xtb3RBQUE2QUFJZ0FTQUNMUUFESWc0Z0F5QUtJQXhxUVJSc2FpQUFJQkJxSWdOcklBTkJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQU1nQVVFRWFpRUJJQUpCQkdvaEFpQUFJUTBnQ2lFTElBd2hCU0FRSVFNZ0RpRUFJQTlCZjJvaUR3MEFDeUFCSUJScUlRRWdBaUFWYWlFQ0lBUkJmMm9pQkEwQUN3d0JDeUFIUVg5cUlCUnNJQVpySUFGcVFSQnFJUUVMSUFkQkFuWWlCRVVOQUVIQUFDQUdheUVRSUFsQkFYUWhDaUFKUVFKMElBWnJJUXRCQUNBSmF5SU1RUUYwSVJJZ0FTQUhRUVIwYXlFQ0lBa2dFMm9nQ0VFQmNXcEJBbW9pQUNBSlFRVnNhaUVCQTBBZ0JpSURCRUFEUUNBQ0lBQWdDbW90QUFBaUJTQUJJQXBxTFFBQUlBRWdDV290QUFBaURpQUJJQkpxTFFBQUlnZHFJZ2hySUFoQkFuUnJhaUFCTFFBQUlnMGdBU0FNYWkwQUFDSUlha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQUl0QURCcVFRRnFRUUYyT2dBd0lBSWdBQ0FKYWkwQUFDSVBJQTRnQnlBSWFrRVViR29nQlNBTmFpSU9heUFPUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFDQnFRUUZxUVFGMk9nQWdJQUlnQUMwQUFDSU9JQTBnQlNBSGFrRVViR29nQ0NBUGFpSU5heUFOUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFCQnFRUUZxUVFGMk9nQVFJQUlnQUNBTWFpMEFBQ0FJSUFVZ0QycEJGR3hxSUFjZ0Rtb2lCV3NnQlVFQ2RHdHFRUkJxUVFWMVFiQXVhaTBBQUNBQ0xRQUFha0VCYWtFQmRqb0FBQ0FBUVFGcUlRQWdBa0VCYWlFQ0lBRkJBV29oQVNBRFFYOXFJZ01OQUFzTElBSWdFR29oQWlBQklBdHFJUUVnQUNBTGFpRUFJQVJCZjJvaUJBMEFDd3NnRVVIQUEyb2tBQXUxQlFFRWZ5QUFLQUlVSVFNZ0FDZ0NFQ0VFSUFBb0FnUWhCU0FBS0FJTUlnSWdBU2tDQURjQ0FDQUNJQUVwQWdnM0FnZ2dBaUFGUVFSMElnQnFJZ0lnQVNrQ0VEY0NBQ0FDSUFFcEFoZzNBZ2dnQUNBQ2FpSUNJQUVwQWlBM0FnQWdBaUFCS1FJb053SUlJQUFnQW1vaUFpQUJLUUl3TndJQUlBSWdBU2tDT0RjQ0NDQUFJQUpxSWdJZ0FTa0NRRGNDQUNBQ0lBRXBBa2czQWdnZ0FDQUNhaUlDSUFFcEFsQTNBZ0FnQWlBQktRSllOd0lJSUFBZ0Ftb2lBaUFCS1FKZ053SUFJQUlnQVNrQ2FEY0NDQ0FBSUFKcUlnSWdBU2tDY0RjQ0FDQUNJQUVwQW5nM0FnZ2dBQ0FDYWlJQ0lBRXBBb0FCTndJQUlBSWdBU2tDaUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcEFCTndJQUlBSWdBU2tDbUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcUFCTndJQUlBSWdBU2tDcUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBckFCTndJQUlBSWdBU2tDdUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBc0FCTndJQUlBSWdBU2tDeUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdEFCTndJQUlBSWdBU2tDMkFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdUFCTndJQUlBSWdBU2tDNkFFM0FnZ2dBQ0FDYWlJQUlBRXBBdkFCTndJQUlBQWdBU2tDK0FFM0FnZ2dCQ0FCS1FLQUFqY0NBQ0FFSUFWQkEzUWlBR29pQkNBQktRS0lBamNDQUNBQUlBUnFJZ1FnQVNrQ2tBSTNBZ0FnQUNBRWFpSUVJQUVwQXBnQ053SUFJQUFnQkdvaUJDQUJLUUtnQWpjQ0FDQUFJQVJxSWdRZ0FTa0NxQUkzQWdBZ0FDQUVhaUlFSUFFcEFyQUNOd0lBSUFBZ0JHb2dBU2tDdUFJM0FnQWdBeUFCS1FMQUFqY0NBQ0FBSUFOcUlnTWdBU2tDeUFJM0FnQWdBQ0FEYWlJRElBRXBBdEFDTndJQUlBQWdBMm9pQXlBQktRTFlBamNDQUNBQUlBTnFJZ01nQVNrQzRBSTNBZ0FnQUNBRGFpSURJQUVwQXVnQ053SUFJQUFnQTJvaUF5QUJLUUx3QWpjQ0FDQUFJQU5xSUFFcEF2Z0NOd0lBQytnQ0FRVi9Ba0FnQUNBQkVBSWlBdzBBUVFFaEF5QUJJQUVvQWdCQkFXb2lBallDQUNBQ1FTQkxEUUFnQUVFRUVBTWlBa0YvUmcwQUlBRWdBallDQkNBQVFRUVFBeUlDUVg5R0RRQWdBU0FDTmdJSUlBRW9BZ0FFUUFOQUlBQWdBU0FGUVFKMGFpSUNJZ1JCREdvUUFpSUREUUpCQVNFRElBUW9BZ3dpQmtGL1JnMENJQVFnQmtFQmFpSUROZ0lNSUFRZ0F5QUJLQUlFUVFacWREWUNEQ0FBSUFKQmpBRnFFQUlpQXcwQ1FRRWhBeUFDS0FLTUFTSUVRWDlHRFFJZ0FpQUVRUUZxSWdRMkFvd0JJQUlnQkNBQktBSUlRUVJxZERZQ2pBRWdBRUVCRUFNaUJFRi9SZzBDSUFJZ0JFRUJSallDakFJZ0JVRUJhaUlGSUFFb0FnQkpEUUFMQ3lBQVFRVVFBeUlDUVg5R0RRQWdBU0FDUVFGcU5nS01BeUFBUVFVUUF5SUNRWDlHRFFBZ0FTQUNRUUZxTmdLUUF5QUFRUVVRQXlJQ1FYOUdEUUFnQVNBQ1FRRnFOZ0tVQXlBQVFRVVFBeUlBUVg5R0RRQWdBU0FBTmdLWUEwRUFJUU1MSUFNTFd3RURmeUFBSUFBb0FnQWlCQ0FCSUFBb0FnUWlBbkFpQTBFRWRHb2dBU0FEYXlJQlFRaDBhallDRENBQUlBUWdBaUFBS0FJSWJDSUNRUWgwYWlBQlFRWjBhaUFEUVFOMGFpSUJOZ0lRSUFBZ0FTQUNRUVowYWpZQ0ZBdFZBUUovSUFFZ0FrRUJhaUlESUFNZ0FVa2JJUU1nQUNBQ1FRSjBhaWdDQUNFRUEwQUNRQ0FDUVFGcUlnSWdBVThFUUNBRElRSU1BUXNnQUNBQ1FRSjBhaWdDQUNBRVJ3MEJDd3RCQUNBQ0lBRWdBa1liQ3ljQUlBQkJDQ0FBS0FJSUlnQnJFQU5CZjBZRVFBOExRUUFnQUd0QkFuUkJ6RDlxS0FJQUdndDZBUUovSXdCQklHc2lBaVFBSUFJZ0FDZ0NFRFlDRUNBQ0lBQXBBZ2czQXdnZ0FpQUFLUUlBTndNQUFrQWdBaUFDUVJ4cUVBSWlBQTBBSUFJZ0FrRWNhaEFDSWdBTkFDQUNJQUpCSEdvUUFpSUFEUUJCQVNFQUlBSW9BaHdpQTBIL0FVc05BQ0FCSUFNMkFnQkJBQ0VBQ3lBQ1FTQnFKQUFnQUF2bkJ3RVNmeU1BUVlBT2F5SU1KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQTBFQVNBMEFJQUlnQ1dvZ0JFc05BQ0FESUFkcVFRVnFJQVZMRFFBZ0F5RUtEQUVMSUFBZ0RFSEFDbW9nQWlBRElBUWdCU0FKSUFkQkJXb2dDUkFNSUF4QndBcHFJUUFnQ1NFRVFRQWhBZ3NDUUNBSFFRSjJJaFJGRFFBZ0NVVU5BQ0FFUVFGMElSVkJBQ0FFYXlJV1FRRjBJUm9nQkVFQ2RDQUdhMEY3YWlFWElBQWdCQ0FLYkNBQ2Ftb2dCR29pQUNBRVFRVnNhaUVDSUF3Z0NVRUNkQ0lRYWlFRElBbEJBM1FoRFVFQUlBbHJRUUowSVE0Z0NVRURiRUVDZENFUEEwQWdDU0VGQTBBZ0F5QU5haUFBSUJWcUxRQUFJaEVnQWlBVmFpMEFBQ0FDSUFScUxRQUFJZ3NnQWlBYWFpMEFBQ0lTYWlJS2F5QUtRUUowYTJvZ0FpMEFBQ0lZSUFJZ0Ztb3RBQUFpRTJwQkZHeHFOZ0lBSUFNZ0VHb2dBQ0FFYWkwQUFDSVpJQXNnRWlBVGFrRVViR29nRVNBWWFpSUtheUFLUVFKMGEybzJBZ0FnQXlBQUxRQUFJZ3NnR0NBUklCSnFRUlJzYWlBVElCbHFJZ3BySUFwQkFuUnJhallDQUNBRElBNXFJQUFnRm1vdEFBQWdFeUFSSUJscVFSUnNhaUFMSUJKcUlncHJJQXBCQW5ScmFqWUNBQ0FBUVFGcUlRQWdBMEVFYWlFRElBSkJBV29oQWlBRlFYOXFJZ1VOQUFzZ0FpQVhhaUVDSUFBZ0Yyb2hBQ0FESUE5cUlRTWdGRUYvYWlJVURRQUxDeUFIQkVCQkVDQUdheUVRSUFaQkFuWWhDaUFNSUFoQkFuUnFRUWhxSVFBZ0RFRVVhaUVDQTBBZ0NnUkFJQUpCYkdvb0FnQWhCQ0FDUVhCcUtBSUFJUThnQWtGMGFpZ0NBQ0VOSUFKQmVHb29BZ0FoQlNBQ1FYeHFLQUlBSVFNZ0NpRUpBMEFnQVNBQ0tBSUFJZzRnQkNBRElBOXFJZ1JySUFVZ0RXcEJGR3hxSUFSQkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQUlBQW9BZ0JCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlvQWdRaUN5QVBJQU1nQldwQkZHeHFJQTBnRG1vaUJHc2dCRUVDZEd0cVFZQUVha0VLZFVHd0xtb3RBQUFnQUNnQ0JFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FCSUFFZ0FpZ0NDQ0lJSUEwZ0F5QU9ha0VVYkdvZ0JTQUxhaUlFYXlBRVFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlJUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBSWdBU0FDS0FJTUlnWWdCU0FMSUE1cVFSUnNhaUFESUFocUlnUnJJQVJCQW5ScmFrR0FCR3BCQ25WQnNDNXFMUUFBSUFBb0FneEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQXlBQlFRUnFJUUVnQUVFUWFpRUFJQUpCRUdvaEFpQURJUVFnRGlFUElBc2hEU0FJSVFVZ0JpRURJQWxCZjJvaUNRMEFDd3NnQVNBUWFpRUJJQUJCRkdvaEFDQUNRUlJxSVFJZ0IwRi9haUlIRFFBTEN5QU1RWUFPYWlRQUM5RUhBUXgvSXdCQmdBNXJJZzhrQUNBR1FRVnFJUWtDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSmFpQUVTdzBBSUFkQkJXb2lEaUFEYWlBRlN3MEFJQVFoQ1NBRElRb01BUXNnQUNBUFFjQUthaUFDSUFNZ0JDQUZJQWtnQjBFRmFpSU9JQWtRRENBUFFjQUthaUVBUVFBaEFnc0NRQ0FPUlEwQUlBWkJBbllpRWtVTkFDQUpJQVpySVJNZ0FDQUpJQXBzSUFKcWFrRUZhaUVDSUE4aEFBTkFJQUpCZjJvdEFBQWhDU0FDUVg1cUxRQUFJUU1nQWtGOWFpMEFBQ0VGSUFKQmZHb3RBQUFoQ2lBQ1FYdHFMUUFBSVF3Z0VpRU5BMEFnQUNBQ0xRQUFJZ1FnRENBSklBcHFJZ3RySUFNZ0JXcEJGR3hxSUF0QkFuUnJhallDQUNBQUlBSXRBQUVpQ3lBRElBbHFRUlJzSUFwcUlBUWdCV29pQ21zZ0NrRUNkR3RxTmdJRUlBQWdBaTBBQWlJUUlBUWdDV3BCRkd3Z0JXb2dBeUFMYWlJRmF5QUZRUUowYTJvMkFnZ2dBQ0FDTFFBREloUWdCQ0FMYWtFVWJDQURhaUFKSUJCcUlnTnJJQU5CQW5ScmFqWUNEQ0FBUVJCcUlRQWdBa0VFYWlFQ0lBa2hEQ0FFSVFvZ0N5RUZJQkFoQXlBVUlRa2dEVUYvYWlJTkRRQUxJQUlnRTJvaEFpQU9RWDlxSWc0TkFBc0xJQWRCQW5ZaUJ3UkFRY0FBSUFacklSUWdEeUFHUVFKMElnUnFJZ2tnQmtFVWJHb2hBaUFKSUFoQkFtb2dCbXhCQW5ScUlRQWdCa0VEYkVFQ2RDRUZRUUFnQm1zaURrRURkQ0VUSUFaQkEzUWhDQU5BSUFZaEF5QUdCRUFEUUNBQklBZ2dDV29vQWdBaUNpQUNJQWhxS0FJQUlBSWdCR29vQWdBaUVTQUNJQk5xS0FJQUlndHFJZ3hySUF4QkFuUnJhaUFDS0FJQUlnMGdBaUFPUVFKMEloQnFLQUlBSWd4cVFSUnNha0dBQkdwQkNuVkJzQzVxTFFBQUlBQWdDR29vQWdCQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FNQ0FCSUFRZ0NXb29BZ0FpRWlBUklBc2dER3BCRkd4cUlBb2dEV29pRVdzZ0VVRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQWdBQ0FFYWlnQ0FFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FnSUFFZ0NTZ0NBQ0lSSUEwZ0NpQUxha0VVYkdvZ0RDQVNhaUlOYXlBTlFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFCQWdBU0FKSUJCcUtBSUFJQXdnQ2lBU2FrRVViR29nQ3lBUmFpSUtheUFLUVFKMGEycEJnQVJxUVFwMVFiQXVhaTBBQUNBQUlCQnFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBQWdBRUVFYWlFQUlBbEJCR29oQ1NBQlFRRnFJUUVnQWtFRWFpRUNJQU5CZjJvaUF3MEFDd3NnQVNBVWFpRUJJQUFnQldvaEFDQUNJQVZxSVFJZ0JTQUphaUVKSUFkQmYyb2lCdzBBQ3dzZ0QwR0FEbW9rQUF1MEJnRUpmeU1BUWNBRGF5SU5KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQXlBSGFpQUZTdzBBSUFOQkFFZ05BQ0FDSUFscUlBUkxEUUFnQkNFSklBTWhDZ3dCQ3lBQUlBMGdBaUFESUFRZ0JTQUpJQWNnQ1JBTUlBMGhBRUVBSVFJTElBY0VRRUVRSUFacklSQWdDU0FHYXlFUklBWkJBblloRHlBQUlBa2dDbXdnQW1wcVFRVnFJUWtEUUFKQUlBOUZEUUFnQ1VGL2FpMEFBQ0VDSUFsQmZtb3RBQUFoQmlBSlFYMXFMUUFBSVFNZ0NVRjhhaTBBQUNFRklBbEJlMm90QUFBaENpQVBJZ0FoQ3lBSUJFQURRQ0FCSUFZZ0NTMEFBQ0lFSUFvZ0FpQUZhaUlLYXlBRElBWnFRUlJzYWlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlnQ1MwQUFTSUxJQVVnQWlBR2FrRVViR29nQXlBRWFpSUZheUFGUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQVNBQklBUWdDUzBBQWlJTUlBTWdBaUFFYWtFVWJHb2dCaUFMYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBaUFCSUFzZ0NTMEFBeUlPSUFZZ0JDQUxha0VVYkdvZ0FpQU1haUlEYXlBRFFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUF5QUJRUVJxSVFFZ0NVRUVhaUVKSUFJaENpQUVJUVVnQ3lFRElBd2hCaUFPSVFJZ0FFRi9haUlBRFFBTUFnQUxBQXNEUUNBQklBTWdDUzBBQUNJQUlBb2dBaUFGYWlJRWF5QURJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBQ0FCSUFZZ0NTMEFBU0lFSUFVZ0FpQUdha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFTQUJJQUlnQ1MwQUFpSU1JQU1nQUNBQ2FrRVViR29nQkNBR2FpSURheUFEUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQWlBQklBQWdDUzBBQXlJT0lBWWdBQ0FFYWtFVWJHb2dBaUFNYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBeUFCUVFScUlRRWdDVUVFYWlFSklBSWhDaUFBSVFVZ0JDRURJQXdoQmlBT0lRSWdDMEYvYWlJTERRQUxDeUFCSUJCcUlRRWdDU0FSYWlFSklBZEJmMm9pQncwQUN3c2dEVUhBQTJva0FBdkdCQUVMZnlNQVFjQURheUlOSkFBQ1FBSkFJQUpCQUVnTkFDQURRUUJJRFFBZ0FpQUdhaUFFU3cwQUlBTWdCMnBCQldvZ0JVc05BQ0FESVFrTUFRc2dBQ0FOSUFJZ0F5QUVJQVVnQmlBSFFRVnFJQVlRRENBTklRQWdCaUVFUVFBaEFnc2dCMEVDZGlJUUJFQkJ3QUFnQm1zaEVpQUVRUUYwSVFVZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVRJQUFnQkNBSmJDQUNhbW9nQkdvaUFDQUVRUVZzYWlFQ0lBQWdCQ0FJUVFKcWJHb2hCd05BSUFZaEF5QUdCRUFEUUNBQklBQWdCV290QUFBaUNDQUNJQVZxTFFBQUlBSWdCR290QUFBaUNpQUNJQk5xTFFBQUlnbHFJZ3RySUF0QkFuUnJhaUFDTFFBQUlnd2dBaUFQYWkwQUFDSUxha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQVVnQjJvdEFBQnFRUUZxUVFGMk9nQXdJQUVnQUNBRWFpMEFBQ0lSSUFvZ0NTQUxha0VVYkdvZ0NDQU1haUlLYXlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQUlBUWdCMm90QUFCcVFRRnFRUUYyT2dBZ0lBRWdBQzBBQUNJS0lBd2dDQ0FKYWtFVWJHb2dDeUFSYWlJTWF5QU1RUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFJQWN0QUFCcVFRRnFRUUYyT2dBUUlBRWdBQ0FQYWkwQUFDQUxJQWdnRVdwQkZHeHFJQWtnQ21vaUNHc2dDRUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBQ0FISUE5cUxRQUFha0VCYWtFQmRqb0FBQ0FIUVFGcUlRY2dBRUVCYWlFQUlBRkJBV29oQVNBQ1FRRnFJUUlnQTBGL2FpSUREUUFMQ3lBQklCSnFJUUVnQnlBT2FpRUhJQUlnRG1vaEFpQUFJQTVxSVFBZ0VFRi9haUlRRFFBTEN5QU5RY0FEYWlRQUM0OEhBUXgvSUFFb0FnZ2hDeUFCS0FJRUlRWUNRQUpBQWtBZ0FrRUZTdzBBSUFKQkFXc09CQUFBQUFBQkN5QUFLQUs0R2cwQURBRUxJQUJCeEFscUlRUURRQ0FFSUFNUUZDRUhJQU5CRGtzTkFTQURRUUZxSVFNZ0IwVU5BQXNMQWtBQ1FBSkFBa0FnQUNnQ21Ba2lDQVJBSUFBb0Fyd0pJUXBCQUNFRFFRQWhCQU5BSUFvZ0EwSFlBV3hxS0FMRUFVVUVRRUVBSUFSQkFXb2lCQ0FFSUFaR0lnVWJJUVFnQlNBSmFpRUpJQU5CQVdvaUF5QUlTUTBCQ3dzZ0F5QUlSdzBCQ3dKQUFrQWdBa0YrYWlJQ1FRVkxEUUFDUUNBQ1FRRnJEZ1FCQVFFQkFBc2dCMFVOQVNBQUtBSzRHa1VOQVF3REN5QUhEUUlMSUFFb0FnQkJnQUVnQmlBTGJFR0FBMndRQnhvTUFnc2dBQ2dDdkFrZ0JpQUpiRUhZQVd4cUlRZ2dCQVJBSUFRaEF3TkFJQWdnQTBGL2FpSURRZGdCYkdvaUNpQUJJQWtnQXlBQ0lBY1FGaUFLUVFFMkFzUUJJQUFnQUNnQ3RBbEJBV28yQXJRSklBTU5BQXNMSUFSQkFXb2lBeUFHU1FSQUEwQWdDQ0FEUWRnQmJHb2lCQ2dDeEFGRkJFQWdCQ0FCSUFrZ0F5QUNJQWNRRmlBRVFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpDeUFEUVFGcUlnTWdCa2NOQUFzTEFrQWdDVVVOQUNBR1JRMEFRUUFoQlNBSlFYOXFJZ3dnQm13aERTQU1SUVJBQTBBZ0FDZ0N2QWtnRFVIWUFXeHFJQVZCMkFGc2FpSUVJQUZCQUNBRklBSWdCeEFXSUFSQkFUWUN4QUVnQUNBQUtBSzBDVUVCYWpZQ3RBa2dCVUVCYWlJRklBWkhEUUFNQWdBTEFBc2dDVUYrYWlFSVFRQWdCbXRCMkFGc0lRNERRQ0FBS0FLOENTQU5RZGdCYkdvZ0JVSFlBV3hxSWdNZ0FTQU1JQVVnQWlBSEVCWWdBMEVCTmdMRUFTQUFJQUFvQXJRSlFRRnFOZ0swQ1NBSUlRUURRQ0FESUE1cUlnTWdBU0FFSWdvZ0JTQUNJQWNRRmlBRFFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpJQVJCZjJvaEJDQUtEUUFMSUFWQkFXb2lCU0FHUncwQUN3c2dDVUVCYWlJRklBdFBEUUlnQmtVTkFnTkFJQUFvQXJ3SklBVWdCbXhCMkFGc2FpRUlRUUFoQXdOQUlBZ2dBMEhZQVd4cUlnUW9Bc1FCUlFSQUlBUWdBU0FGSUFNZ0FpQUhFQllnQkVFQk5nTEVBU0FBSUFBb0FyUUpRUUZxTmdLMENRc2dBMEVCYWlJRElBWkhEUUFMSUFWQkFXb2lCU0FMUncwQUN3d0NDeUFCS0FJQUlBY2dCaUFMYkVHQUEyd1FGUm9MSUFBZ0FDZ0NtQWtpQVRZQ3RBa2dBVVVOQUNBQUtBSzhDU0VBUVFBaEF3TkFJQUFnQTBIWUFXeHFRUUUyQWdnZ0EwRUJhaUlESUFGSERRQUxDd3MyQVFKL0lBQW9BaWdpQWdSQUEwQWdBQ2dDQkNBQlFRSjBhaUFBS0FJQUlBRkJLR3hxTmdJQUlBRkJBV29pQVNBQ1J3MEFDd3NMOXdRQ0RIOEJma0VISVFVakFFRWdheUlJSVF3RFFDQUZJQUZKQkVBZ0FFRUFJQVZyUVNoc2FpRUtJQVVoQmdOQUlBQWdCa0VvYkdvaUFpZ0NDQ0VKSUFJcEFnQWhEaUFJSUFJcEFndzNBeGdnQWlnQ0dDRU5JQUlvQWhRaEN5QU1JQUlvQWlRMkFoQWdDQ0FDS1FJY053TUlBa0FnQmlJRElBVkpEUUFDUUNBTFJRUkFBMEFnQ2lBRFFTaHNJZ0pxSWdRb0FoUU5BaUFOUlEwQ0lBUW9BaGdOQWlBQUlBSnFJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3lBTFFYOXFRUUZOQkVBRFFBSi9Ba0FnQ2lBRFFTaHNJZ0pxSWdRb0FoUWlCMFVOQUNBSFFYOXFRUUZMRFFBZ0JDZ0NDQ0lISUFsS0RRUWdBQ0FDYWlJRUlBY2dDVWdOQVJvZ0JDRUNEQVVMSUFBZ0Ftb0xJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3dOQUlBb2dBMEVvYkNJQ2FpSUVLQUlVSWdjRVFDQUhRWDlxUVFKSkRRSWdCQ2dDQ0NBSlRBMENDeUFBSUFKcUlnUWdBQ0FESUFWcklnTkJLR3hxSWdJcEFnQTNBZ0FnQkNBQ0tRSWdOd0lnSUFRZ0Fpa0NHRGNDR0NBRUlBSXBBaEEzQWhBZ0JDQUNLUUlJTndJSUlBTWdCVThOQUFzTUFRc2dBQ0FEUVNoc2FpRUNDeUFDSUE0M0FnQWdBQ0FEUVNoc2FpSURJQWsyQWdnZ0NDa0RHQ0VPSUFNZ0RUWUNHQ0FESUFzMkFoUWdBeUFPTndJTUlBTWdDQ2tEQ0RjQ0hDQURJQXdvQWhBMkFpUWdCa0VCYWlJR0lBRkhEUUFMQ3lBRlFRRjJJZ1VOQUFzTHJRVUJBWDhDUUNBQUtBSUFJZ0VvQWhSRkRRQWdBVUVBTmdJVUlBRW9BaGdOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ1BFVU5BQ0FCUVFBMkFqd2dBVUZBYXlnQ0FBMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUprUlEwQUlBRkJBRFlDWkNBQktBSm9EUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQW93QlJRMEFJQUZCQURZQ2pBRWdBU2dDa0FFTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0N0QUZGRFFBZ0FVRUFOZ0swQVNBQktBSzRBUTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMY0FVVU5BQ0FCUVFBMkF0d0JJQUVvQXVBQkRRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9Bb1FDUlEwQUlBRkJBRFlDaEFJZ0FTZ0NpQUlOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ3JBSkZEUUFnQVVFQU5nS3NBaUFCS0FLd0FnMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUxVQWtVTkFDQUJRUUEyQXRRQ0lBRW9BdGdDRFFBZ0FDQUFLQUlzUVg5cU5nSXNDd0pBSUFFb0F2d0NSUTBBSUFGQkFEWUMvQUlnQVNnQ2dBTU5BQ0FBSUFBb0FpeEJmMm8yQWl3TEFrQWdBU2dDcEFORkRRQWdBVUVBTmdLa0F5QUJLQUtvQXcwQUlBQWdBQ2dDTEVGL2FqWUNMQXNDUUNBQktBTE1BMFVOQUNBQlFRQTJBc3dESUFFb0F0QUREUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQXZRRFJRMEFJQUZCQURZQzlBTWdBU2dDK0FNTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0NuQVJGRFFBZ0FVRUFOZ0tjQkNBQktBS2dCQTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMRUJFVU5BQ0FCUVFBMkFzUUVJQUVvQXNnRURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9BdXdFUlEwQUlBRkJBRFlDN0FRZ0FTZ0M4QVFOQUNBQUlBQW9BaXhCZjJvMkFpd0xBMEFnQUJCZVJRMEFDeUFBUVFBMkFqQWdBRUwvL3dNM0FpUUwzUTRCQ1g4Z0FpZ0NBQ0FBS0FJSUlnSW9BZ0JHQkVBZ0FFRUFOZ0kwSUFBb0FqZ2lDMFVoRFFKQUlBRkZCRUFnQWlBRE5nSU1JQUpCQURZQ0ZDQUNJQTAyQWhnZ0FpQUVOZ0lRSUFJZ0F6WUNDQ0FMRFFFZ0FDQUFLQUlzUVFGcU5nSXNEQUVMSUFVRVFDQUFRZ0EzQWhBZ0FCQW9Ba0FnQVNnQ0FFVUVRQ0FBS0FJNFJRMEJDeUFBUWdBM0FoQUxJQUFvQWdnaUFrRURRUUlnQVNnQ0JDSUJHellDRkNBQVFRQkIvLzhESUFFYk5nSWtJQUlnRFRZQ0dDQUNRUUEyQWhBZ0FrSUFOd0lJSUFCQ2dZQ0FnQkEzQWlnTUFRc0NRQUpBQWtBZ0FTZ0NDQVJBUVFBaEN3TkFJQUVnQzBFVWJHb2lDQ2dDRENJQ1FRWkxEUUlDUUFKQUFrQUNRQUpBQWtBQ1FDQUNRUUZyRGdZQUFRSURCQVVKQ3lBQUtBSVlJZ2xGRFFnZ0F5QUlLQUlRYXlFTUlBQW9BZ0FoQ2tFQUlRZ0RRQUpBSUFvZ0NFRW9iR29pQWlnQ0ZFRi9ha0VCVFFSQUlBSW9BZ2dnREVZTkFRc2dDRUVCYWlJSUlBbEhEUUVNQ2dzTElBaEJBRWdOQ0NBQ1FRQTJBaFFnQUNBQUtBSW9RWDlxTmdJb0lBSW9BaGdOQlNBQUlBQW9BaXhCZjJvMkFpd2dDMEVCYWlFTERBWUxJQUFvQWhnaUNVVU5CeUFJS0FJVUlRd2dBQ2dDQUNFS1FRQWhDQU5BQWtBZ0NpQUlRU2hzYWlJQ0tBSVVRUU5HQkVBZ0FpZ0NDQ0FNUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdKQ3dzZ0NFRUFTQTBISUFKQkFEWUNGQ0FBSUFBb0FpaEJmMm8yQWlnZ0FpZ0NHQTBFSUFBZ0FDZ0NMRUYvYWpZQ0xDQUxRUUZxSVFzTUJRc2dBQ2dDSkNJQ1FmLy9BMFlOQmlBQ0lBZ29BaGdpREVrTkJpQUFLQUlZSWdsRkRRWWdDQ2dDRUNFT0lBQW9BZ0FoQ2tFQUlRSURRQUpBQWtBZ0NpQUNRU2hzYWlJSUtBSVVRUU5IRFFBZ0NDZ0NDQ0FNUncwQUlBaEJBRFlDRkNBQUlBQW9BaWhCZjJvMkFpZ2dDQ2dDR0EwQklBQWdBQ2dDTEVGL2FqWUNMQXdCQ3lBQ1FRRnFJZ0lnQ1VjTkFRc0xJQWxCQVNBSlFRRkxHeUVKSUFNZ0Rtc2hEa0VBSVFnRFFBSkFJQW9nQ0VFb2JHb2lBaWdDRkNJUFFYOXFRUUZOQkVBZ0FpZ0NDQ0FPUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdJQ3dzZ0NFRUFTQTBHSUE5QkFra05CaUFDUVFNMkFoUWdBaUFNTmdJSUlBdEJBV29oQ3d3RUN5QUFJQWdvQWh3aUNUWUNKQ0FBS0FJWUlneEZEUUlnQUNnQ0FDRUtRUUFoQWlBSlFmLy9BMFlFUUFOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDRUVBTmdJVUlBQWdBQ2dDS0VGL2FqWUNLQ0FJS0FJWURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQ1FRRnFJZ0lnREVjTkFBd0VBQXNBQ3dOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDQ2dDQ0NBSlRRMEFJQWhCQURZQ0ZDQUFJQUFvQWloQmYybzJBaWdnQ0NnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FrRUJhaUlDSUF4SERRQUxEQUlMSUFBUUtDQUFRUUUyQWpSQkFDRURJQXRCQVdvaEN3d0NDeUFBS0FJa0lnSkIvLzhEUmcwRElBSWdDQ2dDR0NJTVNRMERJQUFvQWhnaUNrVU5BeUFBS0FJQUlRaEJBQ0VDQWtBRFFBSkFJQWdnQWtFb2JHb2lDU2dDRkVFRFJ3MEFJQWtvQWdnZ0RFY05BQ0FKUVFBMkFoUWdBQ0FBS0FJb1FYOXFJZ2cyQWlnZ0NTZ0NHQTBDSUFBZ0FDZ0NMRUYvYWpZQ0xBd0NDeUFDUVFGcUlnSWdDa2NOQUFzZ0FDZ0NLQ0VJQ3lBSUlBcFBEUU1nQUNnQ0NDSUNRUU0yQWhRZ0FpQUVOZ0lRSUFJZ0REWUNDQ0FDSUFNMkFnd2dBaUFBS0FJNFJUWUNHRUVCSVJBZ0FDQUlRUUZxTmdJb0lBQWdBQ2dDTEVFQmFqWUNMQXNnQzBFQmFpRUxEQUFBQ3dBTFFRQWhBaUFBS0FJb0lna2dBQ2dDR0NJTFNRMEJJQWxGQkVCQkFDRUpEQUlMSUFBb0FnQWhERUYvSVFFRFFDQU1JQUpCS0d4cUlnb29BaFJCZjJwQkFVMEVRQ0FLS0FJSUlnb2dDQ0FCUVg5R0lBb2dDRWh5SWdvYklRZ2dBaUFCSUFvYklRRUxJQUpCQVdvaUFpQUpSdzBBQ3lBQlFRQklEUUVnRENBQlFTaHNhaUlCUVFBMkFoUWdBQ0FKUVg5cUlnazJBaWdnQVNnQ0dBMEJJQUFnQUNnQ0xFRi9hallDTEF3QkN5QVFEUUVnQUNnQ0dDRUxJQUFvQWlnaENRc2dDU0FMVHcwQklBQW9BZ2dpQVNBTk5nSVlJQUZCQWpZQ0ZDQUJJQVEyQWhBZ0FTQUROZ0lJSUFFZ0F6WUNEQ0FBSUFsQkFXbzJBaWdnQUNBQUtBSXNRUUZxTmdJc0N3c2dBQ2dDQ0NJQklBYzJBaUFnQVNBR05nSWNJQUVnQlRZQ0pBSkFJQUFvQWpoRkJFQWdBQ2dDTENJSklBQW9BaHdpQTAwTkFTQUFLQUlBSVFRRFFFSC8vLy8vQnlFRlFRQWhCa0VBSVFJRFFDQUVJQUpCS0d4cUlnRW9BaGdFUUNBQklBWWdBU2dDRUNJQklBVklJZ2NiSVFZZ0FTQUZJQWNiSVFVTElBSkJBV29pQWlBRFRRMEFDd0pBSUFaRkRRQWdBQ2dDRENBQUtBSVFJZ0pCQkhScUlnRWdCaWdDQURZQ0FDQUJJQVlvQWlRMkFnd2dBU0FHS0FJY05nSUVJQUVnQmlnQ0lEWUNDQ0FBSUFKQkFXbzJBaEFnQmtFQU5nSVlJQVlvQWhRTkFDQUFJQWxCZjJvaUNUWUNMQXNnQ1NBRFN3MEFDd3dCQ3lBQktBSUFJUUlnQUNnQ0RDQUFLQUlRSWdOQkJIUnFJZ0VnQlRZQ0RDQUJJQUkyQWdBZ0FTQUhOZ0lJSUFFZ0JqWUNCQ0FBSUFOQkFXbzJBaEFnQUNnQ0hDRURDeUFBS0FJQUlBTkJBV29RSndzTDFBc0NBbjhCZmlNQVFaQUJheUlFSkFBZ0JFRUFOZ0lNQWtBQ1FBSkFJQUFvQXBBYVJRMEFJQUFvQXBRYUlBRkhEUUFnQkNBQVFhUWFhaWtDQURjREdDQUFLUUtjR2lFR0lBUkJBRFlDR0NBRUlBWTNBeEFnQkVFQU5nSWdJQVFnQmo0Q0ZDQURJQUFvQXBnYU5nSUFEQUVMUVFNaEJTQUJJQUlnQkVFUWFpQURFR01OQVNBQUlBUXBBeEEzQXB3YUlBQkJyQnBxSUFRb0FpQTJBZ0FnQUVHa0dtb2dCQ2tER0RjQ0FDQURLQUlBSVFJZ0FDQUJOZ0tVR2lBQUlBSTJBcGdhQzBFQUlRVWdBRUVBTmdLUUdpQUVRUkJxSUFSQmlBRnFFRThFUUVFRElRVU1BUXNnQkNnQ2lBRkJmMnBCQzBzTkFDQUVRUkJxSUFSQmlBRnFJQUFnQkVFTWFoQXlJZ0VFUUVFRUlRVWdBVUh3L3dOR0RRRkJBeUVGREFFTEFrQWdCQ2dDREFSQUFrQWdBQ2dDb0FsRkRRQWdBQ2dDRUVVTkFFRURJUVVnQUNnQ3RCb05Bd0pBSUFBb0FxUUpSUVJBSUFCQnhBbHFJZ0lpQVNBQktBSUFJQUVvQWh4QktHeHFJZ0UyQWdnZ0FDQUJLQUlBTmdLNENpQUNFQ1lnQUNBQVFiZ0tha0VBRUNVTUFRc2dBQ0FBUWJnS2FpQUFRZHdLYWlnQ0FCQWxDeUFEUVFBMkFnQWdBRUVBTmdLY0NTQUFRUUUyQXBBYURBSUxJQUJCQURZQ25Ba2dBRUVBTmdLa0NRc2dCQ2dDaUFGQmYyb2lBVUVIU3cwQkFrQUNRQUpBSUFGQkFXc09Cd1FFQkFJRUFBRUNDeUFFUVJCcUlBUkJLR29RUXdSQUlBUW9BbEFRQkNBRVFRQTJBbEFnQkNnQ2ZCQUVJQVJCQURZQ2ZFRURJUVVNQkFzZ0FDQUVRU2hxRURjTUF3c2dCRUVRYWlBRVFTaHFFRXdFUUNBRUtBSThFQVFnQkVFQU5nSThJQVFvQWtBUUJDQUVRUUEyQWtBZ0JDZ0NSQkFFSUFSQkFEWUNSQ0FFS0FKVUVBUWdCRUVBTmdKVVFRTWhCUXdEQ3lBQUlBUkJLR29RTmd3Q0N5QUFLQUtjQ1EwQklBQkJBVFlDb0FrQ1FDQUFLQUtrQ1EwQUlBQkNBRGNDdEFrZ0JFRVFhaUFFUVNocUVDQWFJQUFvQWdnaEFTQUFJQVFvQWlnZ0JDZ0NpQUZCQlVZUU5TSUNCRUFnQUVLQWdvQ0FnQVEzQWdRZ0FFRUFOZ0swR2lBQVFnQTNBZ3hCQlVFRUlBSkIvLzhEUmhzaEJRd0RDeUFCSUFBb0FnaEdEUUFnQUNnQ0VDRUJJQVJCQVRZQ0NDQUFLQUlBSWdKQkgwMEVRQ0FBSUFKQkFuUnFLQUlVSVFVTElBTkJBRFlDQUNBQVFRRTJBcEFhQWtBQ1FBSkFJQVFvQW9nQlFRVkhEUUFnQkVFSWFpQUVRUkJxSUFFZ0FDZ0NEQkE0SUFRb0FnaHlEUUFnQlVVTkFDQUFRZndKYWlnQ0FBMEFJQVVvQWpRZ0FTZ0NORWNOQUNBRktBSTRJQUVvQWpoSERRQWdCU2dDV0NBQktBSllSZzBCQ3lBQVFZQUtha0VBTmdJQURBRUxJQUJCeEFscUVGa0xJQUFnQUNnQ0NEWUNBRUVDSVFVTUFnc2dBQ2dDdEJvRVFFRURJUVVNQWdzZ0JFRVFhaUFBUWJRU2FpSUNJQUFvQWhBZ0FDZ0NEQ0FFUVlnQmFoQStCRUJCQXlFRkRBSUxJQUFvQXFRSlJRUkFBa0FnQkNnQ2lBRkJCVVlOQUNBQVFjUUphaUFBUWNBU2FpZ0NBQ0FFS0FLTUFVRUFSeUFBS0FJUUtBSXdFRnBGRFFCQkF5RUZEQU1MSUFCQnhBbHFJZ0VnQVNnQ0FDQUJLQUljUVNoc2FpSUJOZ0lJSUFBZ0FTZ0NBRFlDdUFvTElBQkIyQXBxSUFKQjNBY1FGU0VCSUFCQkFUWUNwQWtnQUNBRUtRT0lBVGNDMEFvZ0FDZ0NsQWtnQUNnQ0RDQUFRWmdMYWlnQ0FDQUFLQUlRSWdJb0FqUWdBaWdDT0JBL0lBQkJ4QWxxSWdJUUppQUNJQUJCbkF0cUlBQkI1QXBxS0FJQUlBQkJoQXRxS0FJQUVGOEVRRUVESVFVTUFnc2dCRUVRYWlBQUlBQkJ1QXBxSUFFUVFRUkFJQUFnQUNnQzJBb1FRRUVESVFVTUFnc2dBQkF6UlEwQklBQkJBVFlDbkFrTElBQkJ1QXBxSWdFZ0FDZ0N2QWtRU1NBQUVEUWdBRUdFQ21vZ0FDZ0NFQ0FBUWRnS2FpQUFRZEFLYWhCTklRSUNRQ0FBS0FLa0NVVU5BQ0FBUWNRSmFpRURJQUJCMUFwcUtBSUFCRUFnQXlBQVFld01haUFCSUFCQjVBcHFLQUlBSUFJZ0FDZ0MwQXBCQlVZZ0FDZ0N1QWtnQUNnQ3RBa1FLUXdCQ3lBRFFRQWdBU0FBUWVRS2FpZ0NBQ0FDSUFBb0F0QUtRUVZHSUFBb0FyZ0pJQUFvQXJRSkVDa0xJQUJDQURjQ29BbEJBU0VGQ3lBRVFaQUJhaVFBSUFVTHFBd0JDMzhDUUNBQlFRUlBCRUJCQUNBRGF5SU5RUUYwSVFvQ1FDQUFJQU5ySWdVdEFBQWlCaUFBTFFBQUlnaHJJZ0VnQVVFZmRTSUJhaUFCY3lBQ0tBSUVJZ0ZQRFFBZ0FDQUthaTBBQUNJSElBWnJJZ1FnQkVFZmRTSUVhaUFFY3lBQ0tBSUlJZ3hQRFFBZ0FDQURhaTBBQUNJRUlBaHJJZ3NnQzBFZmRTSUxhaUFMY3lBTVR3MEFJQVVnQkNBR2FpQUhRUUYwYWtFQ2FrRUNkam9BQUNBQUlBZ2dCRUVCZEdvZ0IycEJBbXBCQW5ZNkFBQWdBaWdDQkNFQkN3SkFJQUJCQVdvaUJpQU5haUlNTFFBQUlnZ2dBQzBBQVNJSGF5SUVJQVJCSDNVaUJHb2dCSE1nQVU4TkFDQUdJQXBxTFFBQUlnUWdDR3NpQlNBRlFSOTFJZ1ZxSUFWeklBSW9BZ2dpQzA4TkFDQURJQVpxTFFBQUlnVWdCMnNpQ1NBSlFSOTFJZ2xxSUFseklBdFBEUUFnRENBRklBaHFJQVJCQVhScVFRSnFRUUoyT2dBQUlBWWdCeUFGUVFGMGFpQUVha0VDYWtFQ2Rqb0FBQ0FDS0FJRUlRRUxBa0FnQUVFQ2FpSUdJQTFxSWd3dEFBQWlDQ0FBTFFBQ0lnZHJJZ1FnQkVFZmRTSUVhaUFFY3lBQlR3MEFJQVlnQ21vdEFBQWlCQ0FJYXlJRklBVkJIM1VpQldvZ0JYTWdBaWdDQ0NJTFR3MEFJQU1nQm1vdEFBQWlCU0FIYXlJSklBbEJIM1VpQ1dvZ0NYTWdDMDhOQUNBTUlBVWdDR29nQkVFQmRHcEJBbXBCQW5ZNkFBQWdCaUFISUFWQkFYUnFJQVJxUVFKcVFRSjJPZ0FBSUFJb0FnUWhBUXNDUUNBQVFRTnFJZ1lnRFdvaURDMEFBQ0lJSUFBdEFBTWlCMnNpQkNBRVFSOTFJZ1JxSUFSeklBRlBEUUFnQmlBS2FpMEFBQ0lFSUFocklnVWdCVUVmZFNJRmFpQUZjeUFDS0FJSUlndFBEUUFnQXlBR2FpMEFBQ0lGSUFkcklna2dDVUVmZFNJSmFpQUpjeUFMVHcwQUlBd2dCU0FJYWlBRVFRRjBha0VDYWtFQ2Rqb0FBQ0FHSUFjZ0JVRUJkR29nQkdwQkFtcEJBblk2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJCR29pQmlBTmFpSU1MUUFBSWdnZ0FDMEFCQ0lIYXlJRUlBUkJIM1VpQkdvZ0JITWdBVThOQUNBR0lBcHFMUUFBSWdRZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFJb0FnZ2lDMDhOQUNBRElBWnFMUUFBSWdVZ0Iyc2lDU0FKUVI5MUlnbHFJQWx6SUF0UERRQWdEQ0FGSUFocUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFZZ0J5QUZRUUYwYWlBRWFrRUNha0VDZGpvQUFDQUNLQUlFSVFFTEFrQWdBRUVGYWlJR0lBMXFJZ3d0QUFBaUNDQUFMUUFGSWdkcklnUWdCRUVmZFNJRWFpQUVjeUFCVHcwQUlBWWdDbW90QUFBaUJDQUlheUlGSUFWQkgzVWlCV29nQlhNZ0FpZ0NDQ0lMVHcwQUlBTWdCbW90QUFBaUJTQUhheUlKSUFsQkgzVWlDV29nQ1hNZ0MwOE5BQ0FNSUFVZ0NHb2dCRUVCZEdwQkFtcEJBblk2QUFBZ0JpQUhJQVZCQVhScUlBUnFRUUpxUVFKMk9nQUFJQUlvQWdRaEFRc0NRQ0FBUVFacUlnWWdEV29pREMwQUFDSUlJQUF0QUFZaUIyc2lCQ0FFUVI5MUlnUnFJQVJ6SUFGUERRQWdCaUFLYWkwQUFDSUVJQWhySWdVZ0JVRWZkU0lGYWlBRmN5QUNLQUlJSWd0UERRQWdBeUFHYWkwQUFDSUZJQWRySWdrZ0NVRWZkU0lKYWlBSmN5QUxUdzBBSUF3Z0JTQUlhaUFFUVFGMGFrRUNha0VDZGpvQUFDQUdJQWNnQlVFQmRHb2dCR3BCQW1wQkFuWTZBQUFnQWlnQ0JDRUJDeUFOSUFCQkIyb2lEV29pQ0MwQUFDSUdJQUF0QUFjaUFHc2lCeUFIUVI5MUlnZHFJQWR6SUFGUERRRWdDaUFOYWkwQUFDSUJJQVpySWdvZ0NrRWZkU0lLYWlBS2N5QUNLQUlJSWdwUERRRWdBeUFOYWkwQUFDSUNJQUJySWdNZ0EwRWZkU0lEYWlBRGN5QUtUdzBCSUFnZ0FpQUdhaUFCUVFGMGFrRUNha0VDZGpvQUFDQU5JQUFnQWtFQmRHb2dBV3BCQW1wQkFuWTZBQUFQQzBFQUlBTnJJZ2RCQVhRaEJDQUJJQUlvQWdCcVFYOXFMUUFBSWdGQkFXb2hCaUFCUVg5eklRaEJDQ0VCQTBBQ1FDQUFJQWRxSWdVdEFBQWlDaUFBTFFBQUlnMXJJZ3dnREVFZmRTSU1haUFNY3lBQ0tBSUVUdzBBSUFBZ0JHb3RBQUFpRENBS2F5SUxJQXRCSDNVaUMyb2dDM01nQWlnQ0NDSUxUdzBBSUFBZ0Eyb3RBQUFpQ1NBTmF5SU9JQTVCSDNVaURtb2dEbk1nQzA4TkFDQUZJQW9nQ0NBR0lBMGdDbXRCQW5RZ0NXc2dER3BCQkdwQkEzVWlDaUFLSUFaS0d5QUtJQWhJR3lJS2FrR3dMbW90QUFBNkFBQWdBQ0FOSUFwclFiQXVhaTBBQURvQUFBc2dBRUVCYWlFQUlBRkJmMm9pQVEwQUN3c0w2Z2dCQW44Z0FVRUFRYmdIRUFjaEFrRUJJUUVDUUFKQUlBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBZ0FDUUNBRFFRRkhEUUFnQUVFSUVBTWlBMEYvUmcwQklBSWdBellDQkNBRFFmOEJSdzBBSUFCQkVCQURJZ05CZjBZTkFTQUNJQU0yQWdnZ0FFRVFFQU1pQTBGL1JnMEJJQUlnQXpZQ0RBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDRUNBRFFRRkdCRUFnQUVFQkVBTWlBMEYvUmcwQklBSWdBMEVCUmpZQ0ZBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDR0FKQUFrQWdBMEVCUmdSQUlBQkJBeEFESWdOQmYwWU5BeUFDSUFNMkFod2dBRUVCRUFNaUEwRi9SZzBESUFJZ0EwRUJSallDSUNBQVFRRVFBeUlEUVg5R0RRTWdBaUFEUVFGR05nSWtJQU5CQVVjTkFTQUFRUWdRQXlJRFFYOUdEUU1nQWlBRE5nSW9JQUJCQ0JBRElnTkJmMFlOQXlBQ0lBTTJBaXdnQUVFSUVBTWlBMEYvUncwQ0RBTUxJQUpCQlRZQ0hBc2dBa0tDZ0lDQUlEY0NLRUVDSVFNTElBSWdBellDTUNBQVFRRVFBeUlEUVg5R0RRQWdBaUFEUVFGR05nSTBBa0FnQTBFQlJ3MEFJQUFnQWtFNGFoQUNJZ0VOQVNBQ0tBSTRRUVZMRFFJZ0FDQUNRVHhxRUFJaUFRMEJJQUlvQWp4QkJVME5BQXdDQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDUUNBRFFRRkdCRUFnQUJBUElRRWdBRUVnRUFzaEF5QUJSUTBDSUFOQmYwWU5BaUFDSUFFMkFrUWdBQkFQSVFFZ0FFRWdFQXNoQXlBQlJRMENJQU5CZjBZTkFpQUNJQUUyQWtoQkFTRUJJQUJCQVJBRElnTkJmMFlOQVNBQ0lBTkJBVVkyQWt3TElBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBbEFDUUNBRFFRRkdCRUFnQUNBQ1FkUUFhaEFjSWdGRkRRRU1BZ3NnQWtFQk5nSlVJQUpDbUlDQWdJQUROd0xvQXlBQ1FwaUFnSUNBQXpjQzRBTWdBa0dCa0txSkFUWUM0QUVnQWtHQmtLcUpBVFlDWUF0QkFTRUJJQUJCQVJBRElnTkJmMFlOQUNBQ0lBTkJBVVkyQXZBREFrQWdBMEVCUmdSQUlBQWdBa0gwQTJvUUhDSUJSUTBCREFJTElBSkJBVFlDOUFNZ0FrS1lnSUNBZ0FNM0FvZ0hJQUpDbUlDQWdJQUROd0tBQnlBQ1FZRzR1UElBTmdLQUJTQUNRWUc0dVBJQU5nS0FCQXNDUUNBQ0tBSlFSUVJBSUFJb0F2QURSUTBCQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBCSUFJZ0EwRUJSallDa0FjTFFRRWhBU0FBUVFFUUF5SURRWDlHRFFBZ0FpQURRUUZHTmdLVUJ5QUFRUUVRQXlJRFFYOUdEUUFnQWlBRFFRRkdOZ0tZQndKQUlBTkJBVVlFUUNBQVFRRVFBeUlEUVg5R0RRSWdBaUFEUVFGR05nS2NCeUFBSUFKQm9BZHFFQUlpQVEwQ0lBSW9BcUFIUVJCTERRTWdBQ0FDUWFRSGFoQUNJZ0VOQWlBQ0tBS2tCMEVRU3cwRElBQWdBa0dvQjJvUUFpSUJEUUlnQWlnQ3FBZEJFRXNOQXlBQUlBSkJyQWRxRUFJaUFRMENRUUVoQVNBQ0tBS3NCMEVRU3cwQ0lBQWdBa0d3QjJvUUFpSUJEUUlnQUNBQ1FiUUhhaEFDSWdGRkRRRU1BZ3NnQWtFUU5nSzBCeUFDUXBDQWdJQ0FBamNDckFjZ0FrS0JnSUNBZ0FJM0FxUUhJQUpDZ1lDQWdDQTNBcHdIQzBFQUlRRUxJQUVQQzBFQkMwMEJBbjhqQUVFUWF5SURKQUJCQVNFRUFrQWdBQ0FEUVF4cUVBSU5BQ0FES0FJTUlnQkJMMHNOQUNBQlFkQS9RWURBQUNBQ0d5QUFhaTBBQURZQ0FFRUFJUVFMSUFOQkVHb2tBQ0FFQ3o0QkFuOENRQ0FBS0FJTVFRTjBJQUFvQWhCcklnRkZCRUFNQVF0QkFTRUNJQUZCQ0VzTkFFRUJJQUZCZjJwMElBQVFEMEVnSUFGcmRrY1BDeUFDQ3pJQkFuOENRRUdBZ0lEQUFDSUJJQUJ4RFFBRFFDQUNRUUZxSVFJZ0FVRUJkaUlCUlEwQklBQWdBWEZGRFFBTEN5QUNDNG9DQVFkL0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRUNRUUVoQXlBQlFRWlBCRUJCQUNFRElBSWdBVUdRUEdvdEFBQkJmMnAwSVFJTElBQWdBQ2dDQUNJQklBQW9BZ2dpQkdzaUJTQUFLQUlFSWdZZ0FDZ0NEQ0lIYXlJSWF5QUNiQ0FEZFRZQ0RDQUFJQVVnQ0dvZ0Ftd2dBM1UyQWdnZ0FDQUJJQVJxSWdFZ0JpQUhhaUlFYXlBQ2JDQURkVFlDQkNBQUlBRWdCR29nQW13Z0EzVTJBZ0FnQUNBQUtBSWNJZ0VnQUNnQ0ZDSUVhaUlGSUFBb0FoZ2lCaUFBS0FJUUlnZHFJZ2hxSUFKc0lBTjFOZ0lRSUFBZ0JDQUJheUlCSUFjZ0Jtc2lCR29nQW13Z0EzVTJBaGdnQUNBSUlBVnJJQUpzSUFOMU5nSVVJQUFnQkNBQmF5QUNiQ0FEZFRZQ0hBdlBDQUVVZnlBQUlBQW9BaXdpQWlBQUtBSU1JZ1pxSWdVZ0FDZ0NOQ0lFSUFBb0FpQWlFR29pQ21zaUVUWUNMQ0FBS0FJb0lRTWdBQ0FHSUFKcklnY2dFQ0FFYXlJRWF5SUdOZ0lvSUFBb0FpUWhBaUFBSUFRZ0Iyb2lCRFlDSkNBQUlBVWdDbW9pQlRZQ0lDQUFJQUFvQWh3aUNpQUFLQUlJSWdkcUlnZ2dBQ2dDTUNJTUlBQW9BaEFpQ1dvaUMyc2lFRFlDSENBQUtBSVlJUThnQUNBSElBcHJJZ2NnQ1NBTWF5SU1heUlLTmdJWUlBQW9BaFFoQ1NBQUlBY2dER29pQnpZQ0ZDQUFJQWdnQzJvaUNEWUNFQ0FBSUFrZ0FDZ0NBQ0lMYWlJU0lBOGdBQ2dDQkNJTmFpSU9heUlNTmdJTUlBQWdDeUFKYXlJSklBMGdEMnNpQzJzaUR6WUNDQ0FBSUFrZ0Myb2lDVFlDQkNBQUlBNGdFbW9pQ3pZQ0FDQUFJQUlnQUNnQ09DSU5haUlUSUFNZ0FDZ0NQQ0lPYWlJVWF5SVNOZ0k4SUFBZ0FpQU5heUlDSUFNZ0Rtc2lBMnNpRFRZQ09DQUFJQUlnQTJvaURqWUNOQ0FBSUJNZ0ZHb2lFellDTUNBQlFaQThhaTBBQUNFQ0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRURJQUZCREU4RVFDQUFJQU1nQWtGK2FuUWlBU0FGSUF0cUlnTWdDQ0FUYWlJQ2EydzJBakFnQUNBTElBVnJJZ1VnQ0NBVGF5SUlheUFCYkRZQ0lDQUFJQVVnQ0dvZ0FXdzJBaEFnQUNBQ0lBTnFJQUZzTmdJQUlBQWdCQ0FKYWlJRElBY2dEbW9pQW1zZ0FXdzJBalFnQUNBSklBUnJJZ1FnQnlBT2F5SUZheUFCYkRZQ0pDQUFJQVFnQldvZ0FXdzJBaFFnQUNBQ0lBTnFJQUZzTmdJRUlBQWdCaUFQYWlJRElBb2dEV29pQW1zZ0FXdzJBamdnQUNBUElBWnJJZ1lnQ2lBTmF5SUVheUFCYkRZQ0tDQUFJQVFnQm1vZ0FXdzJBaGdnQUNBQ0lBTnFJQUZzTmdJSUlBQWdEQ0FSYXlJRElCQWdFbXNpQW1zZ0FXdzJBaXdnQUNBQ0lBTnFJQUZzTmdJY0lBQWdFQ0FTYWlJRElBd2dFV29pQW1vZ0FXdzJBZ3dnQUNBQ0lBTnJJQUZzTmdJOER3c2dBRUVCUVFJZ0FVRjZha0VHU1JzaUFTQUZJQXRxSWhRZ0NDQVRhaUlWYXlBRGJHcEJBaUFDYXlJQ2RUWUNNQ0FBSUFzZ0JXc2lCU0FJSUJOcklnaHJJQU5zSUFGcUlBSjFOZ0lnSUFBZ0JTQUlhaUFEYkNBQmFpQUNkVFlDRUNBQUlCUWdGV29nQTJ3Z0FXb2dBblUyQWdBZ0FDQUVJQWxxSWdVZ0J5QU9haUlJYXlBRGJDQUJhaUFDZFRZQ05DQUFJQWtnQkdzaUJDQUhJQTVySWdkcklBTnNJQUZxSUFKMU5nSWtJQUFnQkNBSGFpQURiQ0FCYWlBQ2RUWUNGQ0FBSUFVZ0NHb2dBMndnQVdvZ0FuVTJBZ1FnQUNBR0lBOXFJZ1FnQ2lBTmFpSUZheUFEYkNBQmFpQUNkVFlDT0NBQUlBOGdCbXNpQmlBS0lBMXJJZ3BySUFOc0lBRnFJQUoxTmdJb0lBQWdCaUFLYWlBRGJDQUJhaUFDZFRZQ0dDQUFJQVFnQldvZ0Eyd2dBV29nQW5VMkFnZ2dBQ0FNSUJGcklnWWdFQ0FTYXlJRWF5QURiQ0FCYWlBQ2RUWUNMQ0FBSUFRZ0Jtb2dBMndnQVdvZ0FuVTJBaHdnQUNBUUlCSnFJZ1lnRENBUmFpSVJhaUFEYkNBQmFpQUNkVFlDRENBQUlCRWdCbXNnQTJ3Z0FXb2dBblUyQWp3THZRVUJCbjhqQUVFZ2F5SUZKQUFnQTBFQU5nSUFBa0FnQVNnQ0FDSUdRUkpMRFFCQkFTQUdkQ0lHUWNEZkgzRkZCRUFnQmtFaWNVVU5BU0FDUWJRS2FpZ0NBQVJBSUFOQkFUWUNBQ0FDUVFBMkFyUUtDeUFBSUFWQkhHb1FJQ0lFRFFGQjhQOERJUVFnQWlBRktBSWNRUUowYWlnQ2xBRWlDRVVOQVNBQ0lBZ29BZ1FpQmtFQ2RHb29BaFFpQjBVTkFRSkFJQUlvQWdnaUNVRWdSZzBBSUFZZ0NVWU5BQ0FCS0FJQVFRVkhEUUlMQWtBZ0FrR1lDbW9vQWdBaUJDQUJLQUlFSWdaR0RRQWdCRUVBSUFZYkRRQWdBMEVCTmdJQUN5QUJLQUlBSVFRQ1FBSkFJQUlvQXBRS1FRVkdCRUFnQkVFRlJ3MEJEQUlMSUFSQkJVY05BUXNnQTBFQk5nSUFDMEVCSVFRZ0FDQUhLQUlNSUFWQkdHb1FQUTBCSUFVb0FoZ2lCaUFDUVp3S2FpZ0NBRWNFUUNBQ0lBWTJBcHdLSUFOQkFUWUNBQXNnQVNnQ0FFRUZSZ1JBSUFBZ0J5Z0NEQ0FGUVJScUVEd05BZ0pBSUFJb0FwUUtRUVZIQkVBZ0JTZ0NGQ0VFREFFTElBSkJvQXBxS0FJQUlnUWdCU2dDRkNJR1JnMEFJQU5CQVRZQ0FDQUdJUVFMSUFKQm9BcHFJQVEyQWdBTEFrQWdCeWdDRUNJRVFRRkxEUUFnQkVFQmF3UkFRUUVoQkNBQUlBY2dBU2dDQUNBRlFRaHFFRHNOQXlBRktBSUlJZ1FnQWtHa0Ntb29BZ0JIQkVBZ0FpQUVOZ0trQ2lBRFFRRTJBZ0FMSUFnb0FnaEZEUUVnQUNBSElBRW9BZ0FnQlVFUWFoQTZJZ1FOQXlBRktBSVFJZ0FnQWtHb0Ntb29BZ0JHRFFFZ0FpQUFOZ0tvQ2lBRFFRRTJBZ0FNQVFzZ0J5Z0NHQTBBSUFBZ0J5QUJLQUlBSUFnb0FnZ2dCVUVJYWhBNUlnUU5BaUFGS0FJSUlnQWdBa0dzQ21vb0FnQkhCRUFnQWlBQU5nS3NDaUFEUVFFMkFnQUxJQWdvQWdoRkRRQWdCU2dDRENJQUlBSkJzQXBxS0FJQVJnMEFJQUlnQURZQ3NBb2dBMEVCTmdJQUN5QUNJQUVwQWdBM0FwUUtRUUFoQkF3QkN5QURRUUUyQWdBTElBVkJJR29rQUNBRUMzOEJBMzhDUUFKQUFrQWdBRUg4Q21vb0FnQUVRQ0FBS0FLWUNTSUREUUZCQVE4TFFRRWhBU0FBUWF3SmFpZ0NBQ0FBS0FLWUNVY05BUXdDQ3lBQUtBSzhDU0VCUVFBaEFBTkFJQUlnQVNBQVFkZ0JiR29vQXNRQlFRQkhhaUVDSUFCQkFXb2lBQ0FEUncwQUMwRUJJUUVnQWlBRFJnMEJDMEVBSVFFTElBRUxTZ0VEZnlBQVFnQTNBcWdKSUFBb0FwZ0pJZ0VFUUNBQUtBSzhDU0VDUVFBaEFBTkFJQUlnQUVIWUFXeHFJZ05CQURZQ3hBRWdBMEVBTmdJRUlBQkJBV29pQUNBQlJ3MEFDd3NMZ3dZQkRIOUJBU0VHQWtBZ0FDQUJRUUowYWlnQ2xBRWlCRVVOQUNBQUlBUW9BZ1FpQ1VFQ2RHb2lDa0VVYWlnQ0FDSURSUTBBQWtBZ0JDZ0NEQ0lGUVFKSkRRQWdBeWdDTkNJSElBTW9BamhzSVFnQ1FDQUVLQUlRSWdOQkFrc05BQUpBQWtBQ1FDQURRUUZyRGdJREFBRUxJQVZCZjJvaEN5QUVLQUljSVF3Z0JDZ0NHQ0VOUVFBaEF3d0JDeUFFS0FJVUlRZEJBQ0VEQTBBZ0J5QURRUUowYWlnQ0FDQUlUUVJBSUFVZ0EwRUJhaUlEUncwQkRBUUxDMEVCRHdzRFFDQU5JQU5CQW5RaUJXb29BZ0FpRGlBRklBeHFLQUlBSWdWTERRTWdCU0FJVHcwRElBNGdCM0FnQlNBSGNFMEVRQ0FEUVFGcUlnTWdDMFlOQXd3QkN3dEJBUThMSUFOQmZXcEJBazBFUUNBRUtBSWtJQWhORFFFTUFnc2dBMEVHUncwQUlBUW9BaWdnQ0VrTkFRc0NRQ0FBS0FJRUlnTkJnQUpHQkVBZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQW9BclFhQkVBZ0FFRUFOZ0swR2lBQUtBSzhDUkFFSUFCQkFEWUN2QWtnQUNnQ2xBa1FCQ0FBSUFBb0FwZ0pJZ0ZCMkFGc0lnUVFDaUlDTmdLOENTQUFJQUZCQW5RUUNpSUROZ0tVQ1VILy93TWhCaUFDUlEwQ0lBTkZEUUlnQWtFQUlBUVFCeUFBS0FJUUtBSTBJQUVRVGlBQUtBSVFJUUZCQVNFQ0FrQWdBQ2dDd0FrTkFDQUJLQUlRUVFKR0RRQUNRQ0FCS0FKUVJRMEFJQUVvQWxRaUJDZ0NtQWRGRFFBZ0JDZ0NzQWRGRFFFTFFRQWhBZ3NnQUVIRUNXb2dBU2dDT0NBQktBSTBiQ0FCS0FKWUlBRW9BaXdnQVNnQ0RDQUNFRndpQmtVTkFRd0NDeUFCSUFOR0RRQWdBQ2dDQ0NBSlJ3UkFJQUpGRFFJZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQWdCRFlDRENBQUlBRTJBZ1FMUVFBaEJnc2dCZ3UyQVFFRGZ3SkFJQUFnQVNnQ0FDSURRUUowYWlJQ0tBS1VBU0lFUlFSQUlBSkJ5QUFRQ2lJQU5nS1VBU0FBRFFFUEN3SkFJQU1nQUNnQ0JFY05BQ0FCS0FJRUlBQW9BZ2hHRFFBZ0FFR0JBallDQkFzZ0JDZ0NGQkFFSUFJb0FwUUJRUUEyQWhRZ0FpZ0NsQUVvQWhnUUJDQUNLQUtVQVVFQU5nSVlJQUlvQXBRQktBSWNFQVFnQWlnQ2xBRkJBRFlDSENBQ0tBS1VBU2dDTEJBRUlBSW9BcFFCUVFBMkFpd0xJQUlvQXBRQklBRkJ5QUFRRlJvTDFnRUJBMzhDUUNBQUlBRW9BZ2dpQTBFQ2RHb2lBaWdDRkNJRVJRUkFJQUpCM0FBUUNpSUFOZ0lVSUFBTkFROExJQUFvQWdnZ0EwWUVRQ0FCSUFBb0FoQVFRZ1JBSUFJb0FoUW9BaWdRQkNBQ0tBSVVRUUEyQWlnZ0FpZ0NGQ2dDVkJBRUlBSW9BaFJCQURZQ1ZDQUFRUUEyQWhBZ0FFR0JBallDQkNBQVFpRTNBZ2dNQWdzZ0FTZ0NLQkFFSUFGQkFEWUNLQ0FCS0FKVUVBUWdBVUVBTmdKVUR3c2dCQ2dDS0JBRUlBSW9BaFJCQURZQ0tDQUNLQUlVS0FKVUVBUWdBaWdDRkVFQU5nSlVDeUFDS0FJVUlBRkIzQUFRRlJvTDBnSUJBMzhqQUVFZ2F5SUVKQUFnQkNBQktBSVFOZ0lRSUFRZ0FTa0NDRGNEQ0NBRUlBRXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUJEUUFnQkNBRVFSeHFFQUlpQVEwQUlBUWdCRUVjYWhBQ0lnRU5BQ0FDS0FJTUlRWkJBQ0VCQTBBZ0FTSUZRUUZxSVFFZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQVF3QkN5QUVJQVJCSEdvUUFpSUJEUUFDUUNBQ0tBSVFJZ0VFZnlBQkJTQUNLQUlVSVFaQkFDRUJBMEFnQVNJRlFRRnFJUUVnQmlBRmRnMEFDeUFFSUFWQmYyb1FBMEYvUmdSQVFRRWhBUXdEQ3lBREtBSUlCRUFnQkNBRVFSaHFFQVVpQVEwREN5QUNLQUlRQzBFQlJ3MEFJQUlvQWhnTkFDQUVJQVJCR0dvUUJTSUJEUUVnQXlnQ0NFVU5BQ0FFSUFSQkdHb1FCU0lCRFFFTElBTW9Ba1FFUUNBRUlBUkJIR29RQWlJQkRRRUxJQUFnQkVFQkVBTWlBRFlDQUNBQVFYOUdJUUVMSUFSQklHb2tBQ0FCQzhZQkFRSi9Jd0JCSUdzaUJTUUFJQVVnQUNnQ0VEWUNFQ0FGSUFBcEFnZzNBd2dnQlNBQUtRSUFOd01BQWtBZ0JTQUZRUnhxRUFJaUFBMEFJQVVnQlVFY2FoQUNJZ0FOQUNBRklBVkJIR29RQWlJQURRQWdBU2dDRENFR1FRQWhBQU5BSUFBaUFVRUJhaUVBSUFZZ0FYWU5BQXNnQlNBQlFYOXFFQU5CZjBZRVFFRUJJUUFNQVFzZ0FrRUZSZ1JBSUFVZ0JVRWNhaEFDSWdBTkFRc2dCU0FFRUFVaUFBMEFJQU1FUUNBRklBUkJCR29RQlNJQURRRUxRUUFoQUFzZ0JVRWdhaVFBSUFBTDRRRUJBMzhqQUVFZ2F5SUVKQUFnQkNBQUtBSVFOZ0lRSUFRZ0FDa0NDRGNEQ0NBRUlBQXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUFEUUFnQkNBRVFSeHFFQUlpQUEwQUlBUWdCRUVjYWhBQ0lnQU5BQ0FCS0FJTUlRWkJBQ0VBQTBBZ0FDSUZRUUZxSVFBZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUNRUVZHQkVBZ0JDQUVRUnhxRUFJaUFBMEJDeUFCS0FJVUlRSkJBQ0VBQTBBZ0FDSUJRUUZxSVFBZ0FpQUJkZzBBQ3lBRUlBRkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUVJQU1RQlNFQUN5QUVRU0JxSkFBZ0FBdm1BUUVEZnlNQVFTQnJJZ1FrQUNBRUlBQW9BaEEyQWhBZ0JDQUFLUUlJTndNSUlBUWdBQ2tDQURjREFBSkFJQVFnQkVFY2FoQUNJZ0FOQUNBRUlBUkJIR29RQWlJQURRQWdCQ0FFUVJ4cUVBSWlBQTBBSUFFb0Fnd2hCa0VBSVFBRFFDQUFJZ1ZCQVdvaEFDQUdJQVYyRFFBTElBUWdCVUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQUpCQlVZRVFDQUVJQVJCSEdvUUFpSUFEUUVMSUFFb0FoUWhBa0VBSVFBRFFDQUFJZ0ZCQVdvaEFDQUNJQUYyRFFBTElBUWdBVUYvYWhBRElnQkJmMFlFUUVFQklRQU1BUXNnQXlBQU5nSUFRUUFoQUFzZ0JFRWdhaVFBSUFBTGtnRUJBbjhqQUVFZ2F5SURKQUFnQXlBQUtBSVFOZ0lRSUFNZ0FDa0NBRGNEQUNBRElBQXBBZ2czQXdnQ1FDQURJQU5CSEdvUUFpSUFEUUFnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BRUVBSVFBRFFDQUFJZ1JCQVdvaEFDQUJJQVIyRFFBTElBTWdCRUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQU1nQWhBQ0lRQUxJQU5CSUdva0FDQUFDNWNCQVFKL0l3QkJJR3NpQXlRQUlBTWdBQ2dDRURZQ0VDQURJQUFwQWdnM0F3Z2dBeUFBS1FJQU53TUFBa0FnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BQ0FESUFOQkhHb1FBaUlBRFFCQkFDRUFBMEFnQUNJRVFRRnFJUUFnQVNBRWRnMEFDeUFESUFSQmYyb1FBeUlBUVg5R0JFQkJBU0VBREFFTElBSWdBRFlDQUVFQUlRQUxJQU5CSUdva0FDQUFDNjhPQVFwL0l3QkJFR3NpQlNRQUlBRkJBRUhjQnhBSElRY2dBaWdDTkNFR0lBSW9BamdoQ0FKQUlBQWdCVUVFYWhBQ0lnRU5BQ0FISUFVb0FnUWlBVFlDQUNBQklBWWdDR3dpQzA4RVFFRUJJUUVNQVFzZ0FDQUZRUVJxRUFJaUFRMEFJQWNnQlNnQ0JDSUdOZ0lFSUFaQkIwc0VRRUVCSVFFTUFRdEJBU0VCQWtBQ1FDQUdRUUZyRGdjQ0FRSUNBQUlCQUFzZ0JDZ0NBRUVGUmdSQURBSUxJQUlvQWl3TkFBd0JDeUFBSUFWQkJHb1FBaUlCRFFBZ0J5QUZLQUlFSWdZMkFnaEJBU0VCSUFZZ0F5Z0NBRWNOQUNBQ0tBSU1JUWhCQUNFQkEwQWdBU0lHUVFGcUlRRWdDQ0FHZGcwQUMwRUJJUUVnQUNBR1FYOXFFQU1pQmtGL1JnMEFJQVpCQUNBRUtBSUFJZ2hCQlVZYkRRQWdCeUFHTmdJTUlBaEJCVVlFUUNBQUlBVkJCR29RQWlJQkRRRWdCeUFGS0FJRUlnWTJBaEJCQVNFQklBWkIvLzhEU3cwQkN3SkFJQUlvQWhBaUFRUi9JQUVGSUFJb0FoUWhDRUVBSVFFRFFDQUJJZ1pCQVdvaEFTQUlJQVoyRFFBTElBQWdCa0YvYWhBRElnRkJmMFlFUUVFQklRRU1Bd3NnQnlBQk5nSVVJQU1vQWdnRVFDQUFJQVVRQlNJQkRRTWdCeUFGS0FJQU5nSVlDeUFFS0FJQVFRVkdCRUJCQVNFQklBY29BaFFpQmlBQ0tBSVVRUUYyU3cwRElBWkJBQ0FIS0FJWUlnaEJIM1VnQ0hGclJ3MERDeUFDS0FJUUMwRUJSdzBBSUFJb0FoZ05BQ0FBSUFVUUJTSUJEUUVnQnlBRktBSUFOZ0ljSUFNb0FnZ0VRQ0FBSUFVUUJTSUJEUUlnQnlBRktBSUFOZ0lnQ3lBRUtBSUFRUVZIRFFCQkFTRUJJQWNvQWh3aUJpQUhLQUlnSUFZZ0FpZ0NJR3BxSWdnZ0JpQUlTQnNOQVFzZ0F5Z0NSQVJBSUFBZ0JVRUVhaEFDSWdFTkFTQUhJQVVvQWdRaUJqWUNKRUVCSVFFZ0JrSC9BRXNOQVFzQ1FDQUhLQUlFSWdGQkJVc05BQUpBSUFGQkFXc09CQUVCQVFFQUMwRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDS0FKQUlBWUVRQ0FBSUFWQkJHb1FBaUlCRFFOQkFTRUJJQVVvQWdRaUJrRVBTdzBESUFaQkFXb2hCZ3dCQ3lBREtBSXdJZ1pCRUVzTkFnc2dCeUFHTmdJc0lBY29BZ1FoQVFzQ1FDQUJRUVZMRFFBQ1FDQUJRUUZyRGdRQkFRRUJBQXNnQWlnQ0RDRUpJQWNvQWl3aENrRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDUkNBR1JRMEFRUUFoQVFOQUlBRWlCaUFLU3dSQVFRRWhBUXdEQ3lBQUlBVkJDR29RQWlJQkRRSWdCU2dDQ0NJQlFRTkxCRUJCQVNFQkRBTUxJQWNnQmtFTWJHb2lDQ0FCTmdKSUFrQWdBVUVCVFFSQUlBQWdCVUVNYWhBQ0lnRU5CQ0FGS0FJTUlnRWdDVThFUUVFQklRRU1CUXNnQ0NBQlFRRnFOZ0pNREFFTElBRkJBa2NOQUNBQUlBVkJER29RQWlJQkRRTWdDQ0FGS0FJTU5nSlFDeUFHUVFGcUlRRWdCU2dDQ0VFRFJ3MEFDMEVCSVFFZ0JrVU5BUXNDUUNBRUtBSUVSUTBBSUFRb0FnQWhCQ0FDS0FJc0lRbEJBU0VCSUFCQkFSQURJUUlnQkVFRlJnUkFJQUpCZjBZTkFpQUhJQUkyQXBRQ0lBQkJBUkFESWdKQmYwWU5BaUFISUFJMkFwZ0NJQWtOQVNBQ1JRMEJEQUlMSUFKQmYwWU5BU0FISUFJMkFwd0NJQUpGRFFBZ0NVRUJkRUVEYWlFT1FRQWhCa0VBSVFwQkFDRUVBMEFnQmlBT1JnUkFRUUVoQVF3REN5QUFJQVZCQ0dvUUFpSUJEUUlnQlNnQ0NDSUNRUVpMQkVCQkFTRUJEQU1MSUFjZ0JrRVViR29pQ0NBQ05nS2dBZ0ovSUFKQkFuSkJBMFlFUUNBQUlBVkJER29RQWlJQkRRUWdDQ0FGS0FJTVFRRnFOZ0trQWlBRktBSUlJUUlMSUFKQkFrWUxCRUFnQUNBRlFReHFFQUlpQVEwRElBZ2dCU2dDRERZQ3FBSWdCU2dDQ0NFQ0N3SkFJQUpCZldvaUFVRURTdzBBQWtBZ0FVRUJhdzRDQVFFQUN5QUFJQVZCREdvUUFpSUJEUU1nQ0NBRktBSU1OZ0tzQWlBRktBSUlJUUlMSUFKQkJFWUVRQ0FBSUFWQkRHb1FBaUlCRFFNZ0JTZ0NEQ0lCSUFsTEJFQkJBU0VCREFRTElBZ2dBVUYvYWtILy93TWdBUnMyQXJBQ0lBcEJBV29oQ2lBRktBSUlJUUlMSUFaQkFXb2hCaUFNSUFKQkJrWnFJUXdnQkNBQ1FRVkdhaUVFSUEwZ0FrRi9ha0VEU1dvaERTQUNEUUFMUVFFaEFTQUVJQXB5SUF4eVFRRkxEUUVnQkVVTkFDQU5EUUVMSUFBZ0JSQUZJZ0VOQUNBSElBVW9BZ0FpQVRZQ01DQUZJQUVnQXlnQ05Hb2lBallDQUVFQklRRWdBa0V6U3cwQUFrQWdBeWdDUEVVTkFDQUFJQVZCQkdvUUFpSUJEUUVnQnlBRktBSUVJZ0kyQWpSQkFTRUJJQUpCQWtzTkFTQUNRUUZHRFFBZ0FDQUZFQVVpQVEwQlFRRWhBU0FGS0FJQUlnSkJCbXBCREVzTkFTQUhJQUpCQVhRMkFqZ2dBQ0FGRUFVaUFRMEJRUUVoQVNBRktBSUFJZ0pCQm1wQkRFc05BU0FISUFKQkFYUTJBandMQWtBZ0F5Z0NERUVDU1EwQUlBTW9BaEJCZldwQkFrc05BRUVDUVFFZ0N5QUxJQU1vQWlRaUFXNGlBaUFCYkdzYklBSnFJUVJCQUNFQ0EwQWdCQ0FDSWdGQkFXb2lBbllOQUFzZ0JTQUFJQUlnQVNBRVFYOGdBWFJCZjNOeEd4QURJZ0EyQWdSQkFTRUJJQUJCZjBZTkFTQUhJQUEyQWtBZ0FDQUxJQU1vQWlRaUFHcEJmMm9nQUc1TERRRUxRUUFoQVFzZ0JVRVFhaVFBSUFFTHdRa0JEWDhnQXlBRWJDRUZJQUVvQWd3aUNVRUJSZ1JBSUFCQkFDQUZRUUowRUFjYUR3c0NRQUpBQWtBQ1FDQUJLQUlRSWdaQmZXcEJBazBFUUNBQktBSWtJQUpzSWdJZ0JTQUNJQVZKR3lFTElBWkJmbkZCQkVjTkFTQUZJQXRySUFzZ0FTZ0NJQnNoQndzQ1FBSkFBa0FnQmtFRlRRUkFJQVpCQVdzT0JRWUZCQU1DQVFzZ0JVVU5CaUFCS0FJc0lRSkJBQ0VCQTBBZ0FDQUJRUUowSWdOcUlBSWdBMm9vQWdBMkFnQWdBVUVCYWlJQklBVkhEUUFMREFZTEFrQWdDUVJBSUFFb0FoUWhBa0VBSVFZTUFRc2dCVVVOQmdOQURBQUFDd0FMQTBCQkFDRUVJQVlnQlU4TkJnTkFRUUFoQndKQUlBSWdCRUVDZEdvaUF5Z0NBQ0lCUlEwQUlBRWhCeUFGSUFaTkRRQkJBQ0VCUVFBZ0JTQUdheUlISUFjZ0JVc2JJUWdEUUNBQUlBRWdCbXBCQW5ScUlBUTJBZ0FnQVVFQmFpSUJJQU1vQWdBaUIwOE5BU0FCSUFoSERRQUxDeUFFUVFGcUlnUWdDVWxCQUNBR0lBZHFJZ1lnQlVrYkRRQUxJQVlnQlVrTkFBc01CUXNnQTBVTkJDQUVSUTBFUVFFZ0FTZ0NJQ0lKYXlFSVFRQWhCVUVBSVFJRFFFRUFJUUVnQlNFR0EwQWdBQ0FCSUFOc0lBSnFRUUowYWlBSklBZ2dCaUFIU1JzMkFnQWdCa0VCYWlFR0lBRkJBV29pQVNBRVJ3MEFDeUFFSUFWcUlRVWdBa0VCYWlJQ0lBTkhEUUFMREFRTElBVkZEUU5CQVNBQktBSWdJZ0pySVFOQkFDRUJBMEFnQUNBQlFRSjBhaUFDSUFNZ0FTQUhTUnMyQWdBZ0FVRUJhaUlCSUFWSERRQUxEQU1MSUFFb0FpQWhBaUFGQkVCQkFDRUJBMEFnQUNBQlFRSjBha0VCTmdJQUlBRkJBV29pQVNBRlJ3MEFDd3NnQzBVTkFpQURRWDlxSVE4Z0JFRi9haUVRSUFKQmYyb2hCa0VCSUFKQkFYUWlBV3NoQlNBQlFYOXFJUWtnQkNBQ2EwRUJkaUlLSVF3Z0F5QUNhMEVCZGlJTklRUWdDaUVJSUEwaEFVRUFJUWNEUUNBQUlBTWdDR3dnQVdwQkFuUnFJZzRvQWdBaUVVRUJSZ1JBSUE1QkFEWUNBQXNnRVVFQlJpRU9Ba0FDUUNBR1FYOUhEUUFnQVNBRVJ3MEFRUUFoQmlBSklRSWdCRUVCSUFSQkFVb2JRWDlxSWdFaEJBd0JDd0pBSUFaQkFVY05BQ0FCSUExSERRQkJBQ0VHSUFVaEFpQU5RUUZxSWdFZ0R5QUJJQTlJR3lJQklRME1BUXNDUUNBQ1FYOUhEUUFnQ0NBTVJ3MEFRUUFoQWlBRklRWWdERUVCSUF4QkFVb2JRWDlxSWdnaERBd0JDd0pBSUFKQkFVY05BQ0FJSUFwSERRQkJBQ0VDSUFraEJpQUtRUUZxSWdnZ0VDQUlJQkJJR3lJSUlRb01BUXNnQWlBSWFpRUlJQUVnQm1vaEFRc2dCeUFPYWlJSElBdEpEUUFMREFJTElBRW9BaHdoQnlBQktBSVlJUWdnQlFSQUlBbEJmMm9oQWtFQUlRRURRQ0FBSUFGQkFuUnFJQUkyQWdBZ0FVRUJhaUlCSUFWSERRQUxJQUpGRFFJTElBbEJmbW9oQVFOQUFrQWdDQ0FCSWdSQkFuUWlBV29vQWdBaUJpQURiaUlDSUFFZ0Iyb29BZ0FpQVNBRGJpSUZTdzBBSUFZZ0FpQURiR3NpQmlBQklBTWdCV3hySWdsTEJFQURRQ0FDUVFGcUlnSWdCVTBOQUF3Q0FBc0FDd05BSUFJZ0Eyd2hDaUFHSVFFRFFDQUFJQUVnQ21wQkFuUnFJQVEyQWdBZ0FVRUJhaUlCSUFsTkRRQUxJQUpCQVdvaUFpQUZUUTBBQ3dzZ0JFRi9haUVCSUFRTkFBc01BUXNnQlVVTkFFRUFJUUVEUUNBQUlBRkJBblJxSUFFZ0EyNGlBaUFKYkVFQmRpQUJJQUlnQTJ4cmFpQUpjRFlDQUNBQlFRRnFJZ0VnQlVjTkFBc0xDOFFCQVFWL0lBQW9BcWdKSVFRQ1FDQUFRYkFKYWlnQ0FDSUNSUTBBSUFKQmYyb2lBaUFCVFFSQUlBSWhBUXdCQ3lBQUtBSzhDU0VGQTBBQ1FDQUZJQUpCMkFGc2FpZ0NCQ0FFUncwQUlBTkJBV29pQXlBQUtBSVFLQUkwSWdaQkNpQUdRUXBMRzBrTkFDQUNJUUVNQWdzZ0FrRi9haUlDSUFGTERRQUxDd05BQWtBZ0FDZ0N2QWtnQVVIWUFXeHFJZ0lvQWdRZ0JFY05BQ0FDS0FMRUFTSURSUTBBSUFJZ0EwRi9hallDeEFFZ0FDZ0NsQWtnQUNnQ21Ba2dBUkFlSWdFTkFRc0xDNzBFQWd0L0FYNGpBRUhBQTJzaUJTUUFJQU1vQWdBaEJ5QUJLQUt3R2lFSUlBVkJBRFlDRENBQlFiQUpha0VBTmdJQUlBRWdBU2dDcUFsQkFXbzJBcWdKSUFVZ0F5Z0NNQ0FCS0FJTUtBSTBhallDQ0NBQlFjUUphaUVOSUFoQkRHb2hEZ0pBQTBBZ0FTZ0N2QWtoQkFKQUlBTW9BaVFOQUNBRUlBZEIyQUZzYWlnQ3hBRkZEUUJCQVNFRURBSUxJQU1wQWpRaER5QURLQUk4SVFzZ0FTZ0NxQWtoRENBRUlBZEIyQUZzSWdacUlnUWdBU2dDRENnQ09EWUNHQ0FFSUFzMkFoQWdCQ0FQTndJSUlBUWdERFlDQkFKQUlBTW9BZ1FpQkVFQ1JnMEFJQWtOQUNBRVFRZEdEUUFnQUNBRlFReHFFQUlpQkEwQ0lBVW9BZ3dpQkNBQktBS1lDU0FIYTBzRVFFRUJJUVFNQXdzZ0JFVUVRRUVBSVFrTUFRc2dEa0VBUWFRQkVBY2FJQWhCQURZQ0FFRUJJUWtMQWtBZ0JTZ0NEQ0lFQkVBZ0JTQUVRWDlxTmdJTURBRUxRUUFoQ1NBQUlBZ2dBU2dDdkFrZ0Jtb2dBeWdDQkNBREtBSXNFRkVpQkEwQ0N5QUJLQUs4Q1NBR2FpQUlJQUlnRFNBRlFRaHFJQWNnQVNnQ0RDZ0NRQ0FGUVJCcUVGQWlCQTBCSUFFb0Fyd0pJQVpxS0FMRUFTRUxJQUFRTGlFRUlBVW9BZ3doQmdKQUlBTW9BZ1JCZm1vaURFRUZTdzBBQWtBZ0RFRUJhdzRFQVFFQkFRQUxJQUVnQnpZQ3NBa0xJQVFnQm5JaEJrRUJJUVFnQVNnQ2xBa2dBU2dDbUFrZ0J4QWVJZ2RGUVFBZ0Joc05BU0FLSUF0QkFVWnFJUW9nQmcwQUN5QUJRYXdKYWlnQ0FDQUthaUlBSUFFb0FwZ0pTdzBBSUFFZ0FEWUNyQWxCQUNFRUN5QUZRY0FEYWlRQUlBUUw1Z0lCQjM5QkFTRUNBa0FnQUNnQ0FDQUJLQUlBUncwQUlBQW9BZ1FnQVNnQ0JFY05BQ0FBS0FJTUlBRW9BZ3hIRFFBZ0FDZ0NFQ0lESUFFb0FoQkhEUUFnQUNnQ0xDQUJLQUlzUncwQUlBQW9BakFnQVNnQ01FY05BQ0FBS0FJMElBRW9BalJIRFFBZ0FDZ0NPQ0FCS0FJNFJ3MEFJQUFvQWp3aUJTQUJLQUk4UncwQUlBQW9BbEFnQVNnQ1VFY05BQUpBSUFOQkFVc05BQ0FEUVFGclJRUkFJQUFvQWhnZ0FTZ0NHRWNOQWlBQUtBSWNJQUVvQWh4SERRSWdBQ2dDSUNBQktBSWdSdzBDSUFBb0FpUWlCQ0FCS0FJa1J3MENJQVJGRFFFZ0FTZ0NLQ0VHSUFBb0FpZ2hCMEVBSVFNRFFDQUhJQU5CQW5RaUNHb29BZ0FnQmlBSWFpZ0NBRWNOQXlBRUlBTkJBV29pQTBjTkFBc01BUXNnQUNnQ0ZDQUJLQUlVUncwQkN5QUZCRUFnQUNnQ1FDQUJLQUpBUncwQklBQW9Ba1FnQVNnQ1JFY05BU0FBS0FKSUlBRW9Ba2hIRFFFZ0FDZ0NUQ0FCS0FKTVJ3MEJDMEVBSVFJTElBSUwvd2tCQm44akFFRVFheUlFSkFBZ0FVRUFRZHdBRUFjaEF3SkFJQUJCQ0JBRElnRkJmMFlFUUVFQklRRU1BUXNnQXlBQk5nSUFJQUJCQVJBREdpQUFRUUVRQXhvZ0FFRUJFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUZFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUlFQU1pQVVGL1JnUkFRUUVoQVF3QkN5QURJQUUyQWdRZ0FDQURRUWhxRUFJaUFRMEFJQU1vQWdoQkgwc0VRRUVCSVFFTUFRc2dBQ0FFUVF4cUVBSWlBUTBBUVFFaEFTQUVLQUlNSWdKQkRFc05BQ0FEUVFFZ0FrRUVhblEyQWd3Z0FDQUVRUXhxRUFJaUFRMEFRUUVoQVNBRUtBSU1JZ0pCQWtzTkFDQURJQUkyQWhBQ1FDQUNRUUZMRFFBZ0FrRUJhd1JBSUFBZ0JFRU1haEFDSWdFTkFrRUJJUUVnQkNnQ0RDSUNRUXhMRFFJZ0EwRUJJQUpCQkdwME5nSVVEQUVMSUFCQkFSQURJZ0pCZjBZTkFTQURJQUpCQVVZMkFoZ2dBQ0FEUVJ4cUVBVWlBUTBCSUFBZ0EwRWdhaEFGSWdFTkFTQUFJQU5CSkdvUUFpSUJEUUZCQVNFQklBTW9BaVFpQWtIL0FVc05BU0FDQkVBZ0F5QUNRUUowRUFvaUFUWUNLQ0FCUlFSQVFmLy9BeUVCREFNTElBQWdBUkFGSWdFTkFrRUJJUUlEUUNBQ0lBTW9BaVJQRFFJZ0FrRUNkQ0VCSUFKQkFXb2hBaUFBSUFFZ0F5Z0NLR29RQlNJQlJRMEFDd3dDQ3lBRFFRQTJBaWdMSUFBZ0EwRXNhaEFDSWdFTkFFRUJJUUVnQXlnQ0xFRVFTdzBBSUFCQkFSQURJZ0pCZjBZTkFDQURJQUpCQVVZMkFqQWdBQ0FFUVF4cUVBSWlBUTBBSUFNZ0JDZ0NERUVCYWpZQ05DQUFJQVJCREdvUUFpSUJEUUJCQVNFQklBTWdCQ2dDREVFQmFqWUNPQ0FBUVFFUUEwRUJha0VDU1EwQUlBQkJBUkFEUVg5R0RRQWdBRUVCRUFNaUFrRi9SZzBBSUFNZ0FrRUJSaUlCTmdJOEFrQWdBVVVFUUNBREtBSTRJUVVnQXlnQ05DRUdEQUVMSUFBZ0EwRkFheEFDSWdFTkFTQUFJQU5CeEFCcUVBSWlBUTBCSUFBZ0EwSElBR29RQWlJQkRRRWdBQ0FEUWN3QWFoQUNJZ0VOQVVFQklRRWdBeWdDUUNBREtBSkVRWDl6SUFNb0FqUWlCa0VEZEdwS0RRRWdBeWdDU0NBREtBSk1RWDl6SUFNb0FqZ2lCVUVEZEdwS0RRRUxBa0FDUUFKQUFrQWdBeWdDQkVGMmFpSUhRU2xMRFFCQjR3QWhBVUdBcEFraEFnSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQjBFQmF3NHBBQUVCQ3dzTEN3c0xBUUlEQ3dzTEN3c0xDd01FQlFzTEN3c0xDd3NHQmdjTEN3c0xDd3NMQ0FrS0MwR01BeUVCUVlDTUZTRUNEQWtMUVl3RElRRkJnTmczSVFJTUNBdEJtQVloQVVHQXNPOEFJUUlNQnd0QjFBd2hBVUdBN0wwQklRSU1CZ3RCa0J3aEFVR0E4S1VESVFJTUJRdEJnQ2doQVVHQWdPQURJUUlNQkF0QmdNQUFJUUZCZ0lDQUJpRUNEQU1MUVlERUFDRUJRWUNBc0FZaEFnd0NDMEhBckFFaEFVR0F3SnNVSVFJTUFRdEJnS0FDSVFGQmdJRGdJU0VDQ3lBQklBVWdCbXdpQVU4TkFRc2dCRUgvLy8vL0J6WUNEQ0FES0FJc0lRSU1BUXNnQkNBQ0lBRkJnQU5zYmlJQlFSQWdBVUVRU1JzaUFUWUNEQ0FES0FJc0lnSWdBVTBOQVFzZ0JDQUNOZ0lNSUFJaEFRc2dBeUFCTmdKWVFRRWhBU0FBUVFFUUF5SUNRWDlHRFFBZ0F5QUNRUUZHTmdKUUFrQWdBa0VCUncwQUlBTkJ1QWNRQ2lJQk5nSlVJQUZGQkVCQi8vOERJUUVNQWdzZ0FDQUJFQ3dpQVEwQklBTW9BbFFpQWlnQ21BZEZEUUJCQVNFQklBSW9BckFISUFJb0FyUUhJZ0pMRFFFZ0FpQURLQUlzU1EwQklBSWdBeWdDV0VzTkFTQURJQUpCQVNBQ0d6WUNXQXNnQUJBZlFRQWhBUXNnQkVFUWFpUUFJQUVMalFRQkRuOGdBUUovQWtBZ0FDOEJJQ0lIRFFBZ0FDOEJIQTBBUVFBTUFRdEJBZ3MyQWlBZ0FRSi9Ba0FnQUM4QklpSUNEUUFnQUM4QkhnMEFRUUFNQVF0QkFnczJBaWdnQVFKL0FrQWdBQzhCS0NJRERRQWdBQzhCSkEwQVFRQU1BUXRCQWdzMkFqQWdBUUovQWtBZ0FDOEJLaUlJRFFBZ0FDOEJKZzBBUVFBTUFRdEJBZ3MyQWpnZ0FTQUhJQUF2QVN3aUNYSkJBRWRCQVhRMkFrQWdBU0FDSUFBdkFTNGlCSEpCQUVkQkFYUTJBa2dnQVNBRElBQXZBVFFpQlhKQkFFZEJBWFEyQWxBZ0FTQUlJQUF2QVRZaUNuSkJBRWRCQVhRMkFsZ2dBU0FBTHdFd0lnMGdDWEpCQUVkQkFYUTJBbUFnQVNBQUx3RXlJZ3NnQkhKQkFFZEJBWFEyQW1nZ0FTQUFMd0U0SWd3Z0JYSkJBRWRCQVhRMkFuQWdBU0FBTHdFNklnNGdDbkpCQUVkQkFYUTJBbmhCQWlFR0lBRWdBQzhCSGlJUEJIOUJBZ1VnQUM4QkhFRUFSMEVCZEFzMkFnd2dBU0FQSUFBdkFTUWlCbkpCQUVkQkFYUTJBaFFnQUM4QkppRUFJQUVnRENBT2NrRUFSMEVCZERZQ2ZDQUJJQXNnREhKQkFFZEJBWFEyQW5RZ0FTQUxJQTF5UVFCSFFRRjBOZ0pzSUFFZ0JTQUtja0VBUjBFQmREWUNYQ0FCSUFRZ0JYSkJBRWRCQVhRMkFsUWdBU0FFSUFseVFRQkhRUUYwTmdKTUlBRWdBeUFJY2tFQVIwRUJkRFlDUENBQklBSWdBM0pCQUVkQkFYUTJBalFnQVNBQ0lBZHlRUUJIUVFGME5nSXNJQUVnQUNBR2NrRUFSMEVCZERZQ0hBdk1CZ0VMZnlNQVFZQU9heUlPSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0NHb2dCRXNOQUNBSFFRVnFJZ29nQTJvZ0JVc05BQ0FFSVFnZ0F5RUpEQUVMSUFBZ0RrSEFDbW9nQWlBRElBUWdCU0FJSUFkQkJXb2lDaUFJRUF3Z0RrSEFDbW9oQUVFQUlRSUxBa0FnQ2tVTkFDQUdRUUoySWhCRkRRQWdDQ0FHYXlFUklBQWdDQ0FKYkNBQ2FtcEJCV29oQWlBT0lRQURRQ0FDUVg5cUxRQUFJUWdnQWtGK2FpMEFBQ0VESUFKQmZXb3RBQUFoQlNBQ1FYeHFMUUFBSVFRZ0FrRjdhaTBBQUNFTUlCQWhEUU5BSUFBZ0FpMEFBQ0lKSUF3Z0JDQUlhaUlMYXlBRElBVnFRUlJzYWlBTFFRSjBhMm8yQWdBZ0FDQUNMUUFCSWdzZ0F5QUlha0VVYkNBRWFpQUZJQWxxSWdScklBUkJBblJyYWpZQ0JDQUFJQUl0QUFJaUR5QUlJQWxxUVJSc0lBVnFJQU1nQzJvaUJHc2dCRUVDZEd0cU5nSUlJQUFnQWkwQUF5SVNJQWtnQzJwQkZHd2dBMm9nQ0NBUGFpSURheUFEUVFKMGEybzJBZ3dnQUVFUWFpRUFJQUpCQkdvaEFpQUlJUXdnQ1NFRUlBc2hCU0FQSVFNZ0VpRUlJQTFCZjJvaURRMEFDeUFDSUJGcUlRSWdDa0YvYWlJS0RRQUxDd0pBSUFkQkFuWWlCMFVOQUNBR1JRMEFRY0FBSUFacklROGdEaUFHUVFKMGFpSUlJQVpCRkd4cUlRSkJBQ0FHYXlJUVFRTjBJUklnQmtFRGRDRUpJQVpCQTJ4QkFuUWhDd05BSUFZaEJBTkFJQUVnQ0NBSmFpZ0NBQ0lBSUFJZ0NXb29BZ0FnQWlBR1FRSjBJZzFxS0FJQUlnb2dBaUFTYWlnQ0FDSURhaUlGYXlBRlFRSjBhMm9nQWlnQ0FDSU1JQUlnRUVFQ2RDSVJhaWdDQUNJRmFrRVViR3BCZ0FScVFRcDFRYkF1YWkwQUFEb0FNQ0FCSUFnZ0RXb29BZ0FpRFNBS0lBTWdCV3BCRkd4cUlBQWdER29pQ21zZ0NrRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQTZBQ0FnQVNBSUtBSUFJZ29nRENBQUlBTnFRUlJzYWlBRklBMXFJZ3hySUF4QkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQU9nQVFJQUVnQ0NBUmFpZ0NBQ0FGSUFBZ0RXcEJGR3hxSUFNZ0Ntb2lBR3NnQUVFQ2RHdHFRWUFFYWtFS2RVR3dMbW90QUFBNkFBQWdDRUVFYWlFSUlBRkJBV29oQVNBQ1FRUnFJUUlnQkVGL2FpSUVEUUFMSUFFZ0Qyb2hBU0FDSUF0cUlRSWdDQ0FMYWlFSUlBZEJmMm9pQncwQUN3c2dEa0dBRG1va0FBdmxBd0VKZnlNQVFjQURheUlLSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0F5QUhhaUFGU3cwQUlBTkJBRWdOQUNBQ0lBaHFJQVJMRFFBZ0JDRUlJQU1oQ1F3QkN5QUFJQW9nQWlBRElBUWdCU0FJSUFjZ0NCQU1JQW9oQUVFQUlRSUxBa0FnQjBVTkFDQUdRUUoySWcxRkRRQkJFQ0FHYXlFT0lBZ2dCbXNoRHlBQUlBZ2dDV3dnQW1wcVFRVnFJUUlEUUNBQ1FYOXFMUUFBSVFnZ0FrRithaTBBQUNFR0lBSkJmV290QUFBaEFDQUNRWHhxTFFBQUlRVWdBa0Y3YWkwQUFDRUpJQTBoQ3dOQUlBRWdBaTBBQUNJRElBa2dCU0FJYWlJRWF5QUFJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FBSUFFZ0FpMEFBU0lFSUFVZ0JpQUlha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQU9nQUJJQUVnQWkwQUFpSU1JQUFnQXlBSWFrRVViR29nQkNBR2FpSUFheUFBUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBT2dBQ0lBRWdBaTBBQXlJUUlBWWdBeUFFYWtFVWJHb2dDQ0FNYWlJQWF5QUFRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FESUFGQkJHb2hBU0FDUVFScUlRSWdDQ0VKSUFNaEJTQUVJUUFnRENFR0lCQWhDQ0FMUVg5cUlnc05BQXNnQVNBT2FpRUJJQUlnRDJvaEFpQUhRWDlxSWdjTkFBc0xJQXBCd0FOcUpBQUw5UU1CQzM4akFFSEFBMnNpQ3lRQUFrQUNRQ0FDUVFCSURRQWdBMEVBU0EwQUlBSWdCbW9nQkVzTkFDQURJQWRxUVFWcUlBVkxEUUFnQXlFSURBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFZZ0IwRUZhaUFHRUF3Z0N5RUFJQVloQkVFQUlRSUxBa0FnQjBFQ2RpSU1SUTBBSUFaRkRRQkJ3QUFnQm1zaEVTQUVRUUYwSVEwZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVNJQUFnQkNBSWJDQUNhbW9nQkdvaUJ5QUVRUVZzYWlFQ0EwQWdCaUVBQTBBZ0FTQUhJQTFxTFFBQUlnTWdBaUFOYWkwQUFDQUNJQVJxTFFBQUlna2dBaUFTYWkwQUFDSUZhaUlJYXlBSVFRSjBhMm9nQWkwQUFDSUtJQUlnRDJvdEFBQWlDR3BCRkd4cVFSQnFRUVYxUWJBdWFpMEFBRG9BTUNBQklBUWdCMm90QUFBaUVDQUpJQVVnQ0dwQkZHeHFJQU1nQ21vaUNXc2dDVUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBRG9BSUNBQklBY3RBQUFpQ1NBS0lBTWdCV3BCRkd4cUlBZ2dFR29pQ21zZ0NrRUNkR3RxUVJCcVFRVjFRYkF1YWkwQUFEb0FFQ0FCSUFjZ0Qyb3RBQUFnQ0NBRElCQnFRUlJzYWlBRklBbHFJZ05ySUFOQkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBQWdCMEVCYWlFSElBRkJBV29oQVNBQ1FRRnFJUUlnQUVGL2FpSUFEUUFMSUFFZ0VXb2hBU0FDSUE1cUlRSWdCeUFPYWlFSElBeEJmMm9pREEwQUN3c2dDMEhBQTJva0FBdXFCZ0VOZnlNQVFiQUJheUlSSkFBZ0NFRUJhaUVLQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0Ntb2dCRXNOQUNBRElBbHFRUUZxSUFWTERRQWdCU0VNSUFRaENpQURJUThNQVFzZ0FDQVJJQUlnQXlBRUlBVWdDaUFKUVFGcUlnd2dDaEFNSUFBZ0JDQUZiR29nRVNBS0lBeHNhaUFDSUFNZ0JDQUZJQW9nRENBS0VBd2dFU0VBUVFBaEFnc0NRQ0FKUVFGMklnVkZEUUFnQ0VFQmRpSUVSUTBBUVJBZ0NHc2hFMEVJSUFkcklRdEJDQ0FHYXlFTklBcEJBWFFpRGlBSWF5RVVJQUFnQW1vaUZpQUtJQTlzYWlFQ0lBRWhBQ0FGSVJVRFFDQUNJQTVxTFFBQUlBZHNJQXNnQWlBS2FpMEFBQ0lEYkdvaENDQURJQWRzSUFzZ0FpMEFBR3hxSVFrZ0JDRURBMEFnQWtFQmFpSVFJQTVxTFFBQUlSSWdBQ0FKSUExc0lBb2dFR290QUFBaUNTQUhiQ0FMSUFJdEFBRnNhaUlRSUFac2FrRWdha0VHZGpvQUFDQUFJQWdnRFd3Z0J5QVNiQ0FKSUF0c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ0NBQ0xRQUNJUWtnQWtFQ2FpSUNJQTVxTFFBQUlSSWdBQ0FOSUJCc0lBSWdDbW90QUFBaUVDQUhiQ0FKSUF0c2FpSUpJQVpzYWtFZ2FrRUdkam9BQVNBQUlBZ2dEV3dnQnlBU2JDQUxJQkJzYWlJSUlBWnNha0VnYWtFR2Rqb0FDU0FBUVFKcUlRQWdBMEYvYWlJRERRQUxJQUlnRkdvaEFpQUFJQk5xSVFBZ0ZVRi9haUlWRFFBTElBRkJRR3NoQUNBV0lBd2dEMm9nQ214cUlRSURRQ0FDSUE1cUxRQUFJQWRzSUFzZ0FpQUthaTBBQUNJQmJHb2hDQ0FCSUFkc0lBc2dBaTBBQUd4cUlRa2dCQ0VEQTBBZ0FrRUJhaUlCSUE1cUxRQUFJUXdnQUNBSklBMXNJQUVnQ21vdEFBQWlBU0FIYkNBTElBSXRBQUZzYWlJSklBWnNha0VnYWtFR2Rqb0FBQ0FBSUFnZ0RXd2dCeUFNYkNBQklBdHNhaUlCSUFac2FrRWdha0VHZGpvQUNDQUNMUUFDSVFnZ0FrRUNhaUlDSUE1cUxRQUFJUXdnQUNBSklBMXNJQUlnQ21vdEFBQWlEeUFIYkNBSUlBdHNhaUlKSUFac2FrRWdha0VHZGpvQUFTQUFJQUVnRFd3Z0J5QU1iQ0FMSUE5c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ1NBQVFRSnFJUUFnQTBGL2FpSUREUUFMSUFJZ0ZHb2hBaUFBSUJOcUlRQWdCVUYvYWlJRkRRQUxDeUFSUWJBQmFpUUFDLzlFQVVGL0l3QkJzQUZySWdNa0FDQUFLQUlJSWdRRVFDQUFLQUlFSWg5QkEzUWhGaUFFSUI5c0lnUkJCblFoT3lBRVFRaDBJVHdnSDBFR2RDRTlJQjlCTUd3aFBpQWZRUVYwSVNVZ0gwRlFiQ0VyUVFBZ0gwRUVkQ0lhYXlJb1FRSjBJVDhnS0VFQmRDRXNJQU5CR0dvaElpQURRUXh5SVNNRFFBSkFJQUVvQWdnaUNVRUJSZzBBQWtBQ1FBSkFBa0FnQVNnQ3lBRWlBa1VFUUVFQklRWU1BUXRCQlNFR0lBbEJBa2NOQUVFRlFRRWdBU2dDQkNJSklBSW9BZ1JHR3lFR0lBRW9Bc3dCSWdRTkFVRUFJUVFNQXdzZ0FTZ0N6QUVpQkVVRVFFRUFJUVFNQXdzZ0NVRUNSdzBCSUFFb0FnUWhDUXNnQ1NBRUtBSUVSdzBCQ3lBR1FRSnlJUVlMQW44Z0JrRUNjU0l0QkVBQ1FDQUJLQUlBUVFWTkJFQWdCQ2dDQUVFR1NRMEJDeUFEUVFRMkFrQWdBMEVFTmdKSUlBTkJCRFlDT0NBRFFRUTJBakJCQVF3Q0MwRUNJUTlCQWlFSkFrQWdBUzhCSEEwQUlBUXZBVEFOQUVFQklRa2dBU2dDZENBRUtBSjhSdzBBSUFFdUFZUUJJQVF1QWF3QmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBRUxnR3VBV3NpQ1NBSlFSOTFJZ2xxSUFselFRTkxJUWtMSUFNZ0NUWUNNQUpBSUFFdkFSNE5BQ0FFTHdFeURRQkJBU0VQSUFFb0FuUWdCQ2dDZkVjTkFDQUJMZ0dJQVNBRUxnR3dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmlnRWdCQzRCc2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWpoQkFpRUZRUUloQ2dKQUlBRXZBU1FOQUNBRUx3RTREUUJCQVNFS0lBRW9BbmdnQkNnQ2dBRkhEUUFnQVM0QmxBRWdCQzRCdkFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBWllCSUFRdUFiNEJheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSkFBa0FnQVM4QkpnMEFJQVF2QVRvTkFFRUJJUVVnQVNnQ2VDQUVLQUtBQVVjTkFDQUJMZ0dZQVNBRUxnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0Qm1nRWdCQzRCd2dGcklnUWdCRUVmZFNJRWFpQUVjMEVEU3lFRkN5QURJQVUyQWtnZ0NTQVBjaUFLY2lBRmNrRUFSd3dCQ3lBRFFRQTJBa0FnQTBFQU5nSklJQU5CQURZQ09DQURRUUEyQWpCQkFBc2hDUUpBQWtBQ1FBSkFJQVpCQkhFaUxnUkFBa0FnQVNnQ0FDSUdRUVZOQkVBZ0FpZ0NBRUVHU1EwQkN5QURRUVEyQW5RZ0EwRUVOZ0tVQVNBRFFRUTJBbFFnQTBFRU5nSTBRUUVoQ1F3Q0MwRUNJUTlCQWlFRUFrQWdBUzhCSEEwQUlBSXZBU1lOQUVFQklRUWdBU2dDZENBQ0tBSjRSdzBBSUFFdUFZUUJJQUl1QVpnQmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBQ0xnR2FBV3NpQkNBRVFSOTFJZ1JxSUFSelFRTkxJUVFMSUFNZ0JEWUNOQUpBSUFFdkFTQU5BQ0FDTHdFcURRQkJBU0VQSUFFb0FuUWdBaWdDZUVjTkFDQUJMZ0dNQVNBQ0xnR2dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmpnRWdBaTRCb2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWxSQkFpRUZRUUloQ2dKQUlBRXZBU3dOQUNBQ0x3RTJEUUJCQVNFS0lBRW9BbndnQWlnQ2dBRkhEUUFnQVM0QnBBRWdBaTRCdUFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBYVlCSUFJdUFib0JheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSjBBa0FnQVM4Qk1BMEFJQUl2QVRvTkFFRUJJUVVnQVNnQ2ZDQUNLQUtBQVVjTkFDQUJMZ0dzQVNBQ0xnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0QnJnRWdBaTRCd2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFRkN5QURJQVUyQXBRQklBbEZEUUpCQVNFSkRBTUxJQU5CQURZQ2RDQURRUUEyQXBRQklBTkJBRFlDVkNBRFFRQTJBalFnQVNnQ0FDRUdDeUFHUVFaSkRRRWdBMEVETmdLZ0FTQURRb09BZ0lBd053S2tBU0FEUVFNMkFwQUJJQU5CQXpZQ2NDQURRUU0yQXF3QklBTkNnNENBZ0RBM0E1Z0JJQU5DZzRDQWdEQTNBNGdCSUFOQ2c0Q0FnREEzQTRBQklBTkNnNENBZ0RBM0EzZ2dBMEtEZ0lDQU1EY0RhQ0FEUW9PQWdJQXdOd05nSUFOQ2c0Q0FnREEzQTFnZ0EwS0RnSUNBTURjQ1RDQURRUU0yQWtRZ0EwRUROZ0k4REFJTElBUWdEM0lnQ25JZ0JYSkJBRWNoQ1FzQ1FBSi9JQVpCQTAwRVFDQUdRUUowUVl3MWFpZ0NBQXdCQzBFRUMwRUJSZ1JBSUFFZ0EwRXdhaEJFSUFNb0Fxd0JJUWNnQXlnQ3BBRWhEaUFES0FLY0FTRVFJQU1vQW93QklSa2dBeWdDaEFFaEJpQURLQUo4SVJjZ0F5Z0NiQ0VJSUFNb0FtUWhCQ0FES0FKY0lSUWdBeWdDVENFTUlBTW9Ba1FoQWlBREtBSThJUkVnQXlnQ3FBRWhIQ0FES0FLZ0FTRW1JQU1vQXBnQklRMGdBeWdDa0FFaEhTQURLQUtJQVNFU0lBTW9Bb0FCSVJVZ0F5Z0NlQ0ViSUFNb0FuQWhFeUFES0FKb0lRb2dBeWdDWUNFUElBTW9BbGdoQlNBREtBSlFJU2NNQVFzZ0F3Si9Ba0FnQXdKL0FrQUNRQ0FCS0FJQVFYNXFJZ1JCQVUwRVFDQUVRUUZyQkVBZ0F3Si9Ba0FnQVM4QklDSUVEUUFnQVM4QkhBMEFRUUFNQVF0QkFnc2lKellDVUNBREFuOENRQ0FCTHdFaUlnY05BQ0FCTHdFZURRQkJBQXdCQzBFQ0N5SUZOZ0pZSUFNQ2Z3SkFJQUV2QVNnaUJnMEFJQUV2QVNRTkFFRUFEQUVMUVFJTElnODJBbUFnQXdKL0FrQWdBUzhCS2lJT0RRQWdBUzhCSmcwQVFRQU1BUXRCQWdzaUNqWUNhQ0FEQW44Q1FDQUJMd0V3SWg0TkFDQUJMd0VzRFFCQkFBd0JDMEVDQ3lJZE5nS1FBU0FEQW44Q1FDQUJMd0V5SWhBTkFDQUJMd0V1RFFCQkFBd0JDMEVDQ3lJTk5nS1lBU0FEQW44Q1FDQUJMd0U0SWdzTkFDQUJMd0UwRFFCQkFBd0JDMEVDQ3lJbU5nS2dBU0FEQW44Q1FDQUJMd0U2SWhnTkFDQUJMd0UyRFFCQkFBd0JDMEVDQ3lJY05nS29BVUVDSVJ0QkFpRVRBa0FnQkNBQkx3RXNJaGR5RFFCQkFTRVRJQUV1QWFRQklBRXVBWXdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQkxnR21BU0FCTGdHT0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdBU2dDZkNBQktBSjBSeUVUQ3lBRElCTTJBbkFDUUNBSElBRXZBUzRpSUhJTkFFRUJJUnNnQVM0QnFBRWdBUzRCa0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRXVBYW9CSUFFdUFaSUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FCS0FKOElBRW9BblJISVJzTElBTWdHellDZUVFQ0lSSkJBaUVWQWtBZ0JpQUJMd0UwSWhseURRQkJBU0VWSUFFdUFiUUJJQUV1QVp3QmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJMZ0cyQVNBQkxnR2VBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEZRc2dBeUFWTmdLQUFRSkFJQTRnQVM4Qk5pSWhjZzBBUVFFaEVpQUJMZ0c0QVNBQkxnR2dBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVM0QnVnRWdBUzRCb2dGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9Bb0FCSUFFb0FuaEhJUklMSUFNZ0VqWUNpQUVnQVM4QkhnMENJQUV2QVJ3RVFFRUNJUkVnQTBFQ05nSThJQUV2QVNRaUNBMEdRUUFoREVFQURBY0xRUUFoRVNBRFFRQTJBanhCQUNFTVFRQWdBUzhCSkNJSVJRMEdHZ3dGQ3lBREFuOENRQ0FCTHdFZ0lnSU5BQ0FCTHdFY0RRQkJBQXdCQzBFQ0N5SW5OZ0pRSUFNQ2Z3SkFJQUV2QVNJaUJnMEFJQUV2QVI0TkFFRUFEQUVMUVFJTElnVTJBbGdnQXdKL0FrQWdBUzhCS0NJT0RRQWdBUzhCSkEwQVFRQU1BUXRCQWdzaUR6WUNZQ0FEQW44Q1FDQUJMd0VxSWdnTkFDQUJMd0VtRFFCQkFBd0JDMEVDQ3lJS05nSm9JQU1nQWlBQkx3RXNJaGR5UVFCSFFRRjBJaE0yQW5BZ0F5QUdJQUV2QVM0aUMzSkJBRWRCQVhRaUd6WUNlQ0FESUE0Z0FTOEJOQ0llY2tFQVIwRUJkQ0lWTmdLQUFTQURJQWdnQVM4Qk5pSVpja0VBUjBFQmRDSVNOZ0tJQVNBRElBRXZBVEFpRUNBWGNrRUFSMEVCZENJZE5nS1FBU0FESUFFdkFUSWlJQ0FMY2tFQVIwRUJkQ0lOTmdLWUFTQURJQUV2QVRnaUlTQWVja0VBUjBFQmRDSW1OZ0tnQVNBRElBRXZBVG9pQnlBWmNrRUFSMEVCZENJY05nS29BU0FEQW44Q1FDQUJMd0VlSWlRTkFDQUJMd0VjRFFCQkFBd0JDMEVDQ3lJUk5nSThJQUV2QVNZRVFDQUJMd0VrSVJnTUF3c2dBUzhCSkNJWURRSkJBQ0VZUVFBTUF3c2dBUzRCaGdFaEZDQUJMZ0dPQVNFRVFRSWhCU0FEQW45QkFpQUJMd0VjSWhFZ0FTOEJJQ0l2Y2cwQUdrRUJJQUV1QVl3QklBRXVBWVFCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUJvZ0JDQVVheUlHSUFaQkgzVWlCbW9nQm5OQkEwc0xJaWMyQWxBZ0FTNEJpZ0VoQ0NBQkxnR1NBU0VHQWtBZ0FTOEJIaUl3SUFFdkFTSWlFSElOQUVFQklRVWdBUzRCa0FFZ0FTNEJpQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUFZZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6UVFOTElRVUxJQU1nQlRZQ1dDQUJMZ0dXQVNFTUlBRXVBWjRCSVFkQkFpRUtJQU1DZjBFQ0lBRXZBU1FpTVNBQkx3RW9JaGR5RFFBYVFRRWdBUzRCbkFFZ0FTNEJsQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBR2lBSElBeHJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3c2lEellDWUNBQkxnR2FBU0V5SUFFdUFhSUJJUXNDUUNBQkx3RW1Ja0FnQVM4QktpSXpjZzBBUVFFaENpQUJMZ0dnQVNBQkxnR1lBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQ3lBeWF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzaENnc2dBeUFLTmdKb0lBRXVBYVlCSVI1QkFpRWJRUUloRXdKQUlDOGdBUzhCTENJMGNnMEFRUUVoRXlBQkxnR2tBU0FCTGdHTUFXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdIaUFFYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQktBSjhJQUVvQW5SSElSTUxJQU1nRXpZQ2NDQUJMZ0dxQVNFT0FrQWdFQ0FCTHdFdUloaHlEUUJCQVNFYklBRXVBYWdCSUFFdUFaQUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FPSUFacklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9BbndnQVNnQ2RFY2hHd3NnQXlBYk5nSjRJQUV1QWJZQklSbEJBaUVTUVFJaEZRSkFJQmNnQVM4Qk5DSWdjZzBBUVFFaEZTQUJMZ0cwQVNBQkxnR2NBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnR1NBSGF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJLQUtBQVNBQktBSjRSeUVWQ3lBRElCVTJBb0FCSUFFdUFib0JJU0VDUUNBeklBRXZBVFlpTlhJTkFFRUJJUklnQVM0QnVBRWdBUzRCb0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlDRWdDMnNpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEVnc2dBeUFTTmdLSUFTQUJMZ0d1QVNFMlFRSWhEU0FEQW45QkFpQTBJQUV2QVRBaVFYSU5BQnBCQVNBQkxnR3NBU0FCTGdHa0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWFJRFlnSG1zaUFpQUNRUjkxSWdKcUlBSnpRUU5MQ3lJZE5nS1FBU0FCTGdHeUFTRWtBa0FnR0NBQkx3RXlJamR5RFFCQkFTRU5JQUV1QWJBQklBRXVBYWdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBa0lBNXJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN5RU5DeUFESUEwMkFwZ0JJQUV1QWI0QklTbEJBaUVjSUFNQ2YwRUNJQ0FnQVM4Qk9DSTRjZzBBR2tFQklBRXVBYndCSUFFdUFiUUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQm9nS1NBWmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTElpWTJBcUFCSUFFdUFjSUJJVGtDUUNBMUlBRXZBVG9pUW5JTkFFRUJJUndnQVM0QndBRWdBUzRCdUFGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlEa2dJV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxJUndMSUFNZ0hEWUNxQUZCQWlFQ0lBTUNmMEVDSUJFZ01ISU5BQnBCQVNBQkxnR0lBU0FCTGdHRUFXc2lFU0FSUVI5MUloRnFJQkZ6UVFOTERRQWFJQWdnRkdzaUZDQVVRUjkxSWhScUlCUnpRUU5MQ3lJUk5nSThBa0FnTUNBeGNnMEFRUUVoQWlBQkxnR1VBU0FCTGdHSUFXc2lGQ0FVUVI5MUloUnFJQlJ6UVFOTERRQWdEQ0FJYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBQktBSjRJQUVvQW5SSElRSUxJQU1nQWpZQ1JFRUNJUlFnQXdKL1FRSWdNU0JBY2cwQUdrRUJJQUV1QVpnQklBRXVBWlFCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUJvZ01pQU1heUlJSUFoQkgzVWlDR29nQ0hOQkEwc0xJZ3cyQWt3Q1FDQVFJQzl5RFFCQkFTRVVJQUV1QVpBQklBRXVBWXdCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBR0lBUnJJZ1FnQkVFZmRTSUVhaUFFYzBFRFN5RVVDeUFESUJRMkFseEJBaUVJUVFJaEJBSkFJQkFnRjNJTkFFRUJJUVFnQVM0Qm5BRWdBUzRCa0FGckloQWdFRUVmZFNJUWFpQVFjMEVEU3cwQUlBY2dCbXNpQmlBR1FSOTFJZ1pxSUFaelFRTkxEUUFnQVNnQ2VDQUJLQUowUnlFRUN5QURJQVEyQW1RQ1FDQVhJRE55RFFCQkFTRUlJQUV1QWFBQklBRXVBWndCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUNBTElBZHJJZ1lnQmtFZmRTSUdhaUFHYzBFRFN5RUlDeUFESUFnMkFteEJBaUVHSUFNQ2YwRUNJQmdnTkhJTkFCcEJBU0FCTGdHb0FTQUJMZ0drQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBYUlBNGdIbXNpQnlBSFFSOTFJZ2RxSUFkelFRTkxDeUlYTmdKOEFrQWdHQ0FnY2cwQVFRRWhCaUFCTGdHMEFTQUJMZ0dvQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBZ0dTQU9heUlISUFkQkgzVWlCMm9nQjNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQlFRSWhFQ0FEQW45QkFpQWdJRFZ5RFFBYVFRRWdBUzRCdUFFZ0FTNEJ0QUZySWdjZ0IwRWZkU0lIYWlBSGMwRURTdzBBR2lBaElCbHJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN3c2lHVFlDakFFQ1FDQTNJRUZ5RFFCQkFTRVFJQUV1QWJBQklBRXVBYXdCYXlJSElBZEJIM1VpQjJvZ0IzTkJBMHNOQUNBa0lEWnJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN5RVFDeUFESUJBMkFwd0JRUUloQjBFQ0lRNENRQ0EzSURoeURRQkJBU0VPSUFFdUFid0JJQUV1QWJBQmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQXBJQ1JySWdzZ0MwRWZkU0lMYWlBTGMwRURTdzBBSUFFb0FvQUJJQUVvQW54SElRNExJQU1nRGpZQ3BBRUNRQ0E0SUVKeURRQkJBU0VISUFFdUFjQUJJQUV1QWJ3QmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQTVJQ2xySWdjZ0IwRWZkU0lIYWlBSGMwRURTeUVIQ3lBRElBYzJBcXdCREFVTFFRSWhFU0FEUVFJMkFqd2dBUzhCSkNFSURBSUxRUUlMSWd3MkFreEJBaUVFSUFOQkFpQUlRUUJIUVFGMElBNGJJZ2cyQW13Z0EwRUNJQVpCQUVkQkFYUWdBaHNpRkRZQ1hDQURJQWNnSVhKQkFFZEJBWFFpQnpZQ3JBRWdBeUFRSUNCeVFRQkhRUUYwSWhBMkFwd0JJQU1nR1NBZWNrRUFSMEVCZENJWk5nS01BU0FESUFzZ0YzSkJBRWRCQVhRaUZ6WUNmRUVDSVFJQ1FDQVlJQ1J5RFFCQkFTRUNJQUV1QVpRQklBRXVBWWdCYXlJWUlCaEJIM1VpR0dvZ0dITkJBMHNOQUNBQkxnR1dBU0FCTGdHS0FXc2lHQ0FZUVI5MUloaHFJQmh6UVFOTERRQWdBU2dDZUNBQktBSjBSeUVDQ3lBRElBSTJBa1FDUUNBR0lBNXlEUUJCQVNFRUlBRXVBWndCSUFFdUFaQUJheUlHSUFaQkgzVWlCbW9nQm5OQkEwc05BQ0FCTGdHZUFTQUJMZ0dTQVdzaUJpQUdRUjkxSWdacUlBWnpRUU5MRFFBZ0FTZ0NlQ0FCS0FKMFJ5RUVDeUFESUFRMkFtUkJBaUVPUVFJaEJnSkFJQXNnSG5JTkFFRUJJUVlnQVM0QnRBRWdBUzRCcUFGcklnc2dDMEVmZFNJTGFpQUxjMEVEU3cwQUlBRXVBYllCSUFFdUFhb0JheUlMSUF0QkgzVWlDMm9nQzNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQkFrQWdJQ0FoY2cwQVFRRWhEaUFCTGdHOEFTQUJMZ0d3QVdzaUN5QUxRUjkxSWd0cUlBdHpRUU5MRFFBZ0FTNEJ2Z0VnQVM0QnNnRnJJZ3NnQzBFZmRTSUxhaUFMYzBFRFN3MEFJQUVvQW9BQklBRW9BbnhISVE0TElBTWdEallDcEFFTUFnc2dDQ0VNUVFJTElnSTJBa1FnQXlBQkx3RW1JQXhCLy84RGNYSkJBRWRCQVhRaUREWUNUQ0FEQW44Q1FDQUhSUVJBSUFRRVFFRUNJUlFnQTBFQ05nSmNJQVlOQWtFQURBTUxRUUFoRkNBRFFRQTJBbHhCQUNBR1JRMENHZ3dCQzBFQ0lSUWdBMEVDTmdKY0MwRUNDeUlFTmdKa0lBTkJBaUFPUVFCSFFRRjBJQVliSWdnMkFtd2dBd0ovQWtBZ0lFVUVRQ0FYQkVCQkFpRVhJQU5CQWpZQ2ZDQVpEUUpCQUF3REMwRUFJUmNnQTBFQU5nSjhRUUFnR1VVTkFob01BUXRCQWlFWElBTkJBallDZkF0QkFnc2lCallDaEFFZ0F5QUxJQmh5UVFCSFFRRjBJZ2MyQXF3QklBTWdDeUFRY2tFQVIwRUJkQ0lPTmdLa0FTQURRUUlnRUVFQVIwRUJkQ0FlR3lJUU5nS2NBU0FESUJrZ0lYSkJBRWRCQVhRaUdUWUNqQUVMSUFrZ0ozSWdCWElnRDNJZ0NuSWdFM0lnRzNJZ0ZYSWdFbklnSFhJZ0RYSWdKbklnSEhJZ0VYSWdBbklnREhJZ0ZISWdCSElnQ0hJZ0YzSWdCbklnR1hJZ0VISWdEbklnQjNKRkRRRUxJQUVvQWd3aENTQURJQUVvQWhBaUJTQUJLQUlVSWdScUlnWkJNeUFHUVROSUd5SUdRUUFnQmtFQVNodEIwQmRxTFFBQUlnWTJBaUFnQXlBRUlBbHFJZ0pCTXlBQ1FUTklHeUlDUVFBZ0FrRUFTaHNpQ0VHUUYyb3RBQUFpQWpZQ0hDQURJQWhCQTJ4QmtCaHFJZ2cyQWhnQ1FDQXRSUTBBSUFRZ0FTZ0N6QUVvQWhRaUIwY0VRQ0FESUFRZ0IycEJBV3BCQVhZaUJ5QUZhaUlOUVRNZ0RVRXpTQnNpRFVFQUlBMUJBRW9iUWRBWGFpMEFBRFlDQ0NBRElBY2dDV29pQjBFeklBZEJNMGdiSWdkQkFDQUhRUUJLR3lJSFFaQVhhaTBBQURZQ0JDQURJQWRCQTJ4QmtCaHFOZ0lBREFFTElBTWdCallDQ0NBRElBSTJBZ1FnQXlBSU5nSUFDd0pBSUM1RkRRQWdCQ0FCS0FMSUFTZ0NGQ0lIUndSQUlBTWdCQ0FIYWtFQmFrRUJkaUlFSUFWcUlnVkJNeUFGUVROSUd5SUZRUUFnQlVFQVNodEIwQmRxTFFBQU5nSVVJQU1nQkNBSmFpSUVRVE1nQkVFelNCc2lCRUVBSUFSQkFFb2JJZ1JCa0JkcUxRQUFOZ0lRSUFNZ0JFRURiRUdRR0dvMkFnd01BUXNnQXlBR05nSVVJQU1nQWpZQ0VDQURJQWcyQWd3TElBQW9BZ0FnSHlBNmJDSVVRUWgwYWlBcVFRUjBhaUVKUVFBaEFrRURJUVFnQTBFd2FpRUdBMEFnQmlnQ0JDSUZCRUFnQ1NBRklDTWdHaEFaQ3lBR0tBSU1JZ1VFUUNBSlFRUnFJQVVnSWlBYUVCa0xJQVlvQWhRaUJRUkFJQWxCQ0dvZ0JTQWlJQm9RR1FzZ0JpZ0NIQ0lGQkVBZ0NVRU1haUFGSUNJZ0doQVpDeUFFSVFnQ1FBSkFBa0FnQmlnQ0FDSUVJQVlvQWdnaUQwY05BQ0FFSUFZb0FoQkhEUUFnQkNBR0tBSVlSdzBBSUFSRkRRSWdBeUFDUVF4c2FpSUZLQUlJSVF3Z0JTZ0NCQ0ViSUFSQkJFa05BU0FiUVFKMlFRSnFJUkJCRUNFUElBa2hCQU5BQWtBZ0JDQW9haUlDTFFBQUlnb2dCQzBBQUNJT2F5SUZJQVZCSDNVaUJXb2dCWE1pQnlBYlR3MEFJQVFnTEdvaUVTMEFBQ0lGSUFwcklnMGdEVUVmZFNJTmFpQU5jeUFNVHcwQUlBUWdHbW9pSEMwQUFDSVNJQTVySWcwZ0RVRWZkU0lOYWlBTmN5QU1UdzBBQWtBZ0J5QVFTUVJBSUFRZ0pXb2lGeTBBQUNFVkFuOGdCQ0FyYWlJTkxRQUFJaE1nQ21zaUJ5QUhRUjkxSWdkcUlBZHpJQXhKQkVCQkF5RWRJQUlnRWlBS0lBNXFJQVZxSWdKQkFYUnFJQk5xUVFScVFRTjJPZ0FBSUJFZ0FpQVRha0VDYWtFQ2Rqb0FBQ0FDUVFScUlSRWdCQ0EvYWkwQUFDRUhJQk5CQTJ3TUFRc2dDaUFTYWlFUklBVWhCMEVDSVIwZ0FpRU5RUUlMSVFJZ0RTQUNJQkZxSUFkQkFYUnFJQjEyT2dBQUlCVWdEbXNpQWlBQ1FSOTFJZ0pxSUFKeklBeFBEUUVnQkNBRklBb2dFbW9nRG1vaUFrRUJkR29nRldwQkJHcEJBM1k2QUFBZ0hDQUNJQlZxUVFKcVFRSjJPZ0FBSUJjZ0FpQVZRUU5zYWlBRUlENXFMUUFBUVFGMGFrRUVha0VEZGpvQUFBd0NDeUFDSUFvZ0Vtb2dCVUVCZEdwQkFtcEJBblk2QUFBTElBUWdCU0FPYWlBU1FRRjBha0VDYWtFQ2Rqb0FBQXNnQkVFQmFpRUVJQTlCZjJvaUR3MEFDd3dDQ3dKL0lBUUVRQ0FKSUFRZ0F5QUNRUXhzYWlBYUVCZ2dCaWdDQ0NFUEN5QVBDd1JBSUFsQkJHb2dEeUFESUFKQkRHeHFJQm9RR0FzZ0JpZ0NFQ0lFQkVBZ0NVRUlhaUFFSUFNZ0FrRU1iR29nR2hBWUN5QUdLQUlZSWdSRkRRRWdDVUVNYWlBRUlBTWdBa0VNYkdvZ0doQVlEQUVMSUFRZ0JTZ0NBR3BCZjJvdEFBQWlBa0VCYWlFSFFRQWdBbXNoRGtFUUlROGdDU0VFQTBBQ1FDQUVJQ2hxSWhNdEFBQWlEU0FFTFFBQUlncHJJZ1VnQlVFZmRTSUZhaUFGY3lBYlR3MEFJQVFnTEdvaUVTMEFBQ0lTSUExcklnVWdCVUVmZFNJRmFpQUZjeUFNVHcwQUlBUWdHbW9pRUMwQUFDSVZJQXBySWdVZ0JVRWZkU0lGYWlBRmN5QU1UdzBBSUFJaEJTQUVJQ3RxTFFBQUlod2dEV3NpSFNBZFFSOTFJaDFxSUIxeklBeEpCRUFnRVNBU0lBNGdBaUFLSUExcVFRRnFRUUYySUJKQkFYUnJJQnhxUVFGMUlnVWdCU0FDU2hzZ0JTQU9TQnRxT2dBQUlBY2hCUXNnRXlBTkFuOGdCQ0FsYWkwQUFDSVRJQXBySWhFZ0VVRWZkU0lSYWlBUmN5QU1TUVJBSUJBZ0ZTQU9JQUlnQ2lBTmFrRUJha0VCZGlBVlFRRjBheUFUYWtFQmRTSVRJQk1nQWtvYklCTWdEa2diYWpvQUFDQUZRUUZxSVFVTFFRQWdCV3NpRXdzZ0JTQVNJQlZySUFvZ0RXdEJBblJxUVFScVFRTjFJaElnRWlBRlNoc2dFaUFUU0JzaUJXcEJzQzVxTFFBQU9nQUFJQVFnQ2lBRmEwR3dMbW90QUFBNkFBQUxJQVJCQVdvaEJDQVBRWDlxSWc4TkFBc0xJQWhCZjJvaEJDQUdRU0JxSVFZZ0NTQTlhaUVKUVFJaEFpQUlEUUFMSUFFb0Fnd2hCQ0FESUFFb0FoQWlCU0FCS0FJVUlnWWdBU2dDR0NJQ2FpSUpRVE1nQ1VFelNCc2lDVUVBSUFsQkFFb2JRUUowUWVBOWFpZ0NBQ0lKYWlJSVFUTWdDRUV6U0JzaUNFRUFJQWhCQUVvYlFkQVhhaTBBQUNJSU5nSWdJQU1nQkNBSmFpSUhRVE1nQjBFelNCc2lCMEVBSUFkQkFFb2JJZzFCa0JkcUxRQUFJZ2MyQWh3Z0F5QU5RUU5zUVpBWWFpSU5OZ0lZQWtBZ0xVVU5BQ0FHSUFFb0Fzd0JLQUlVSWd4SEJFQWdBeUFKSUFJZ0RHb2lERUV6SUF4Qk0wZ2JJZ3hCQUNBTVFRQktHMEVDZEVIZ1BXb29BZ0JxUVFGcVFRRjJJZ3dnQldvaUQwRXpJQTlCTTBnYklnOUJBQ0FQUVFCS0cwSFFGMm90QUFBMkFnZ2dBeUFFSUF4cUlneEJNeUFNUVROSUd5SU1RUUFnREVFQVNoc2lERUdRRjJvdEFBQTJBZ1FnQXlBTVFRTnNRWkFZYWpZQ0FBd0JDeUFESUFnMkFnZ2dBeUFITmdJRUlBTWdEVFlDQUFzQ1FDQXVSUTBBSUFZZ0FTZ0N5QUVvQWhRaURFY0VRQ0FESUFVZ0NTQUNJQXhxSWdaQk15QUdRVE5JR3lJR1FRQWdCa0VBU2h0QkFuUkI0RDFxS0FJQWFrRUJha0VCZGlJSmFpSUZRVE1nQlVFelNCc2lCVUVBSUFWQkFFb2JRZEFYYWkwQUFEWUNGQ0FESUFRZ0NXb2lCRUV6SUFSQk0wZ2JJZ1JCQUNBRVFRQktHeUlFUVpBWGFpMEFBRFlDRUNBRElBUkJBMnhCa0JocU5nSU1EQUVMSUFNZ0NEWUNGQ0FESUFjMkFoQWdBeUFOTmdJTUN5QUFLQUlBSUR4cUlCUkJCblJxSUNwQkEzUnFJZ2tnTzJvaEJFRUFJUW9nQTBFd2FpRUdRUUFoQWdOQUlBWW9BZ1FpQlFSQUlBa2dCU0FqSUJZUUVDQUVJQVlvQWdRZ0l5QVdFQkFMSUFZb0FpUWlCUVJBSUFrZ0dtb2dCU0FqSUJZUUVDQUVJQnBxSUFZb0FpUWdJeUFXRUJBTElBWW9BaFFpQlFSQUlBbEJCR29nQlNBaUlCWVFFQ0FFUVFScUlBWW9BaFFnSWlBV0VCQUxJQVlvQWpRaUJRUkFJQWtnR21wQkJHb2dCU0FpSUJZUUVDQUVJQnBxUVFScUlBWW9BalFnSWlBV0VCQUxJQUloQlFKQUFrQWdCaWdDQUNJQ0lBWW9BZ2dpRDBjTkFDQUNJQVlvQWhCSERRQWdBaUFHS0FJWVJ3MEFJQUpGRFFFZ0NTQUNJQU1nQ2tFTWJHb2lBaUFXRUNzZ0JDQUdLQUlBSUFJZ0ZoQXJEQUVMQW44Z0FnUkFJQWtnQWlBRElBcEJER3hxSWdJZ0ZoQVNJQVFnQmlnQ0FDQUNJQllRRWlBR0tBSUlJUThMSUE4TEJFQWdDVUVDYWlBUElBTWdDa0VNYkdvaUFpQVdFQklnQkVFQ2FpQUdLQUlJSUFJZ0ZoQVNDeUFHS0FJUUlnSUVRQ0FKUVFScUlBSWdBeUFLUVF4c2FpSUNJQllRRWlBRVFRUnFJQVlvQWhBZ0FpQVdFQklMSUFZb0FoZ2lBa1VOQUNBSlFRWnFJQUlnQXlBS1FReHNhaUlDSUJZUUVpQUVRUVpxSUFZb0FoZ2dBaUFXRUJJTElBUWdKV29oQkNBSklDVnFJUWtnQmtGQWF5RUdRUUVoQWtFQ0lRb2dCVVVOQUFzTFFRQWdLa0VCYWlJRUlBUWdIMFlpQkJzaEtpQUJRZGdCYWlFQklBUWdPbW9pT2lBQUtBSUlTUTBBQ3dzZ0EwR3dBV29rQUF1Q0JRRUtmeU1BUVpBQmF5SUxKQUFDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSGFpQUVTdzBBSUFNZ0NHcEJBV29nQlVzTkFDQUZJUXdnQXlFT0RBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFjZ0NFRUJhaUlNSUFjUURDQUFJQVFnQld4cUlBc2dCeUFNYkdvZ0FpQURJQVFnQlNBSElBd2dCeEFNSUFzaEFDQUhJUVJCQUNFQ0N3SkFJQWhCQVhZaUJVVU5BQ0FIUVFGMklnTkZEUUJCRUNBSGF5RVFRUWdnQm1zaENTQUVRUUYwSWcwZ0Iyc2hFU0FBSUFKcUloSWdCQ0FPYkdvaEJ5QUJJUUlnQlNFSUEwQWdBeUVBQTBBZ0J5QU5haTBBQUNFS0lBSWdDU0FITFFBQWJDQUVJQWRxTFFBQUlnOGdCbXhxUVFOMFFTQnFRUVoyT2dBQUlBSWdDU0FQYkNBR0lBcHNha0VEZEVFZ2FrRUdkam9BQ0NBSFFRRnFJZ29nRFdvdEFBQWhEeUFDSUFrZ0J5MEFBV3dnQkNBS2FpMEFBQ0lLSUFac2FrRURkRUVnYWtFR2Rqb0FBU0FDSUFrZ0Ntd2dCaUFQYkdwQkEzUkJJR3BCQm5ZNkFBa2dBa0VDYWlFQ0lBZEJBbW9oQnlBQVFYOXFJZ0FOQUFzZ0J5QVJhaUVISUFJZ0VHb2hBaUFJUVg5cUlnZ05BQXNnQVVGQWF5RUNJQklnRENBT2FpQUViR29oQndOQUlBTWhBQU5BSUFjZ0RXb3RBQUFoQVNBQ0lBa2dCeTBBQUd3Z0JDQUhhaTBBQUNJSUlBWnNha0VEZEVFZ2FrRUdkam9BQUNBQ0lBZ2dDV3dnQVNBR2JHcEJBM1JCSUdwQkJuWTZBQWdnQjBFQmFpSUJJQTFxTFFBQUlRZ2dBaUFKSUFjdEFBRnNJQUVnQkdvdEFBQWlBU0FHYkdwQkEzUkJJR3BCQm5ZNkFBRWdBaUFCSUFsc0lBWWdDR3hxUVFOMFFTQnFRUVoyT2dBSklBSkJBbW9oQWlBSFFRSnFJUWNnQUVGL2FpSUFEUUFMSUFjZ0VXb2hCeUFDSUJCcUlRSWdCVUYvYWlJRkRRQUxDeUFMUVpBQmFpUUFDLzBFQVF0L0l3QkJrQUZySWd3a0FDQUhRUUZxSVFrQ1FBSkFJQUpCQUVnTkFDQURJQWhxSUFWTERRQWdBMEVBU0EwQUlBSWdDV29nQkVzTkFDQUVJUWtnQXlFTERBRUxJQUFnRENBQ0lBTWdCQ0FGSUFrZ0NDQUpFQXdnQUNBRUlBVnNhaUFNSUFnZ0NXeHFJQUlnQXlBRUlBVWdDU0FJSUFrUURDQU1JUUFnQ0NFRlFRQWhBZ3NDUUNBSVFRRjJJZ2hGRFFBZ0IwRUJkaUlFUlEwQVFSQWdCMnNoRGtFSUlBWnJJUW9nQ1VFQmRDQUhheUVQSUFBZ0Ftb2lFU0FKSUF0c2FpRUNJQUVoQXlBSUlRQURRQ0FFSVFjRFFDQUNRUUZxSUFscUxRQUFJUkFnQWlBSmFpMEFBQ0VOSUFNZ0FpMEFBU0lTSUFac0lBb2dBaTBBQUd4cVFRTjBRU0JxUVFaMk9nQUFJQU1nQmlBUWJDQUtJQTFzYWtFRGRFRWdha0VHZGpvQUNDQUNMUUFDSVEwZ0FrRUNhaUlDSUFscUxRQUFJUk1nQXlBR0lBMXNJQW9nRW14cVFRTjBRU0JxUVFaMk9nQUJJQU1nQmlBVGJDQUtJQkJzYWtFRGRFRWdha0VHZGpvQUNTQURRUUpxSVFNZ0IwRi9haUlIRFFBTElBSWdEMm9oQWlBRElBNXFJUU1nQUVGL2FpSUFEUUFMSUFGQlFHc2hBeUFSSUFVZ0Myb2dDV3hxSVFJRFFDQUVJUWNEUUNBQ1FRRnFJQWxxTFFBQUlRQWdBaUFKYWkwQUFDRUJJQU1nQWkwQUFTSUZJQVpzSUFvZ0FpMEFBR3hxUVFOMFFTQnFRUVoyT2dBQUlBTWdBQ0FHYkNBQklBcHNha0VEZEVFZ2FrRUdkam9BQ0NBQ0xRQUNJUUVnQWtFQ2FpSUNJQWxxTFFBQUlRc2dBeUFCSUFac0lBVWdDbXhxUVFOMFFTQnFRUVoyT2dBQklBTWdCaUFMYkNBQUlBcHNha0VEZEVFZ2FrRUdkam9BQ1NBRFFRSnFJUU1nQjBGL2FpSUhEUUFMSUFJZ0Qyb2hBaUFESUE1cUlRTWdDRUYvYWlJSURRQUxDeUFNUVpBQmFpUUFDN2tIQVFWL0l3QkJFR3NpQkNRQUFrQWdBQ0FCUVFCQnlBQVFCeUlERUFJaUFRMEFRUUVoQVNBREtBSUFRZjhCU3cwQUlBQWdBMEVFYWhBQ0lnRU5BRUVCSVFFZ0F5Z0NCRUVmU3cwQUlBQkJBUkFERFFBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNDQ0FBSUFSQkRHb1FBaUlCRFFBZ0F5QUVLQUlNUVFGcUlnRTJBZ3dnQVVFSVN3UkFRUUVoQVF3QkN3SkFJQUZCQWtrTkFDQUFJQU5CRUdvUUFpSUJEUUVnQXlnQ0VDSUJRUVpMSWdJRVFFRUJJUUVNQWdzZ0FnMEFBa0FDUUFKQUFrQWdBVUVCYXc0R0JBRUNBZ0lEQUFzZ0F5QURLQUlNSWdGQkFuUVFDaUlDTmdJVUlBSkZCRUJCLy84RElRRU1CUXNnQVVVTkEwRUFJUUlEUUNBQUlBUkJER29RQWlJQkRRVWdBeWdDRkNBQ1FRSjBhaUFFS0FJTVFRRnFOZ0lBSUFKQkFXb2lBaUFES0FJTVNRMEFDd3dEQ3lBRElBTW9BZ3dpQWtFQ2RFRjhhaUlCRUFvaUJUWUNHQ0FESUFFUUNpSUdOZ0ljUWYvL0F5RUJJQVZGRFFNZ0JrVU5BeUFDUVFGR0RRSkJBQ0VDQTBBZ0FDQUVRUXhxRUFJaUFRMEVJQUpCQW5RaUJTQURLQUlZYWlBRUtBSU1OZ0lBSUFBZ0JFRU1haEFDSWdFTkJDQURLQUljSUFWcUlBUW9BZ3cyQWdBZ0FrRUJhaUlDSUFNb0FneEJmMnBKRFFBTERBSUxRUUVoQVNBQVFRRVFBeUlDUVg5R0RRSWdBeUFDUVFGR05nSWdJQUFnQkVFTWFoQUNJZ0VOQWlBRElBUW9BZ3hCQVdvMkFpUU1BUXNnQUNBRVFReHFFQUlpQVEwQklBTWdCQ2dDREVFQmFpSUJOZ0lvSUFNZ0FVRUNkQkFLSWdJMkFpd2dBa1VFUUVILy93TWhBUXdDQ3lBQlJRMEFJQU1vQWd4QkFuUkJyRHRxS0FJQUlRWkJBQ0VDQTBBZ0FDQUdFQU1oQlNBREtBSXNJQUpCQW5ScUlBVTJBZ0JCQVNFQklBVWdBeWdDREU4TkFpQUNRUUZxSWdJZ0F5Z0NLRWtOQUFzTElBQWdCRUVNYWhBQ0lnRU5BRUVCSVFFZ0JDZ0NEQ0lDUVI5TERRQWdBeUFDUVFGcU5nSXdJQUFnQkVFTWFoQUNJZ0VOQUVFQklRRWdCQ2dDREVFZlN3MEFJQUJCQVJBREJFQU1BUXNnQUVFQ0VBTkJBa3NFUUF3QkN5QUFJQVJCQ0dvUUJTSUJEUUFnQkNnQ0NFRWFhaUlCUVROTEJFQkJBU0VCREFFTElBTWdBVFlDTkNBQUlBUkJDR29RQlNJQkRRQWdCQ2dDQ0VFYWFrRXpTd1JBUVFFaEFRd0JDeUFBSUFSQkNHb1FCU0lCRFFCQkFTRUJJQVFvQWdnaUFrRU1ha0VZU3cwQUlBTWdBallDT0NBQVFRRVFBeUlDUVg5R0RRQWdBeUFDUVFGR05nSThJQUJCQVJBRElnSkJmMFlOQUNBRElBSkJBVVkyQWtBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNSQ0FBRUI5QkFDRUJDeUFFUVJCcUpBQWdBUXZxQlFFSmZ3SkFJQUlvQXB3Q1JRUkFEQUVMUVFFaEJnTkFBa0FDUUNBQ0lBVkJGR3hxS0FLZ0FpSUVRUVZMRFFBZ0JFRUJhdzRGQUFBQUFBTUJDeUFGUVFGcUlRVU1BUXNMSUFRaEJnc0Nmd0pBSUFFb0FoQWlCRUVCVFFSQUlBUkJBV3NFUUNBREtBSUFRUVZHQkVBZ0FFSUFOd0lBSUFJb0FoUWhCVUVBSVFRTUF3c2dBQ2dDQUNJRUlBSW9BaFFpQlUwTkFpQUVJQVZySUFFb0FoUWlCMEVCZGtrTkFpQUFLQUlFSUFkcURBTUxRUUFoQlFKL1FRQWdBeWdDQUVFRlJnMEFHaUFBS0FJTUlnY2dBQ2dDQ0NBQ0tBSU1UUTBBR2lBQktBSU1JQWRxQ3lFSFFRQWhCQUovSUFFb0FpUWlDQVJBSUFJb0Fnd2dCMm9oQlFzZ0JTQURLQUlFSWdwRklBVkJBRWR4YXlJSkN3UkFJQWxCZjJvaUF5QURJQWh1SWdzZ0NHeHJJUU1MSUFnRVFDQUJLQUlvSVF4QkFDRUZBMEFnRENBRlFRSjBhaWdDQUNBRWFpRUVJQVZCQVdvaUJTQUlSdzBBQ3dzQ1FDQUpSUVJBUVFBaEJBd0JDeUFFSUF0c0lRUWdBU2dDS0NFSVFRQWhCUU5BSUFnZ0JVRUNkR29vQWdBZ0JHb2hCQ0FGUVFGcUlnVWdBMDBOQUFzTElBcEZCRUFnQVNnQ0hDQUVhaUVFQ3lBR1JRUkFJQUlvQWlBaEF5QUJLQUlnSVFFZ0FpZ0NIQ0VHSUFBZ0J6WUNEQ0FBSUFJb0FndzJBZ2dnQmlBQklBTnFJZ0JCSDNVZ0FIRWdCR3BxRHdzZ0FFSUFOd0lJUVFBUEMwRUFJUVZCQUNFRUlBTW9BZ0JCQlVjRVFDQUFLQUlNSVFVZ0FDZ0NDQ0FDS0FJTUlnUkxCRUFnQVNnQ0RDQUZhaUVGQ3lBRUlBVnFRUUYwSUFNb0FnUkZheUVFQ3lBR1JRUkFJQUFnQlRZQ0RDQUFJQUlvQWd3MkFnZ2dCQThMSUFCQ0FEY0NDRUVBRHdzQ1FDQUZJQVJORFFBZ0JTQUVheUFCS0FJVUlnRkJBWFpORFFBZ0FDZ0NCQ0FCYXd3QkN5QUFLQUlFQ3lFRUlBTW9BZ1JGQkVBZ0JDQUZhaUFDS0FJWUlnQkJIM1VnQUhGcUR3c2dBQ0FFTmdJRUlBSW9BaGdoQVNBR0JFQWdBRUVBTmdJRUlBQkJBQ0FCYXlBQlFSOTFjVFlDQUVFQUR3c2dBQ0FGTmdJQUlBUWdCV29nQVVFZmRTQUJjV29MdkFFQkNIOGdBZ1JBSUFGQmYyb2hCMEVBSUFGclFkZ0JiQ0VJUVFFZ0FXdEIyQUZzSVFrZ0FVRi9jMEhZQVd3aENnTkFJQUFnQmtIWUFXeHFJZ01nQTBHb2ZtcEJBQ0FFR3pZQ3lBRWdBd0ovSUFWRkJFQWdBMEVBTmdMTUFVRUFEQUVMSUFNZ0F5QUlhallDekFFZ0F5QUpha0VBSUFRZ0Iwa2JDellDMEFFZ0F5QURJQXBxUVFBZ0JCdEJBQ0FGR3pZQzFBRkJBQ0FFUVFGcUlnTWdBU0FEUmlJREd5RUVJQU1nQldvaEJTQUdRUUZxSWdZZ0FrY05BQXNMQzNjQkFuOUJBU0VDQWtBZ0FFRUJFQU5CZjBZTkFDQUJJQUJCQWhBRE5nSUVJQUVnQUVFRkVBTWlBRFlDQUNBQVFYNXFRUU5KRFFBQ1FDQUFRUXhMRFFCQkFTQUFkQ0lEUWNBOGNVVUVRQ0FEUWFBRGNVVU5BU0FBUVFaR0RRSWdBU2dDQkEwQkRBSUxJQUVvQWdRTkFRdEJBQ0VDQ3lBQ0M1SVRBUVovSUFBZ0FTZ0NBQ0lOTmdJQUlBQWdBQ2dDeEFGQkFXbzJBc1FCSUFJZ0JSQWRBa0FDUUFKQUFrQUNRQ0FOUVI5R0JFQWdBRUVBTmdJVUlBQW9Bc1FCUVFGTERRRWdBRUVjYWlFSklBRkJ5QUpxSVFSQkZ5RUJJQWNoQUFOQUlBbEJFRHNCQUNBQUlBUW9BZ0E2QUFBZ0FDQUVLQUlFT2dBQklBQWdCQ2dDQ0RvQUFpQUFJQVFvQWd3NkFBTWdBQ0FFS0FJUU9nQUVJQUFnQkNnQ0ZEb0FCU0FBSUFRb0FoZzZBQVlnQUNBRUtBSWNPZ0FISUFBZ0JDZ0NJRG9BQ0NBQUlBUW9BaVE2QUFrZ0FDQUVLQUlvT2dBS0lBQWdCQ2dDTERvQUN5QUFJQVFvQWpBNkFBd2dBQ0FFS0FJME9nQU5JQUFnQkNnQ09Eb0FEaUFBSUFRb0FqdzZBQThnQVNJRFFYOXFJUUVnQ1VFQ2FpRUpJQUJCRUdvaEFDQUVRVUJySVFRZ0F3MEFDeUFDSUFjUUd3d0VDeUFBUVJ4cUlRa2dEUVJBSUFrZ0FTa0NrQUkzQWdBZ0NTQUJLUUcrQWpjQkxpQUpJQUVwQXJnQ053SW9JQWtnQVNrQ3NBSTNBaUFnQ1NBQktRS29BamNDR0NBSklBRXBBcUFDTndJUUlBa2dBU2tDbUFJM0FnZ2dCQ2dDQUNFS0FrQWdBU2dDQ0NJTFJRMEFJQVFnQ2lBTGFpSUtOZ0lBSUFRZ0NrRi9UQVIvSUFwQk5Hb0ZJQXBCTkVnTkFTQUtRVXhxQ3lJS05nSUFDeUFBSUFvMkFoUWdBVUhJRDJvaERDQUJRY2dDYWlFRUFrQUNRQ0FBS0FJQVFRWk5CRUFnQ1M4QkFFVU5BVUVCSVFnZ0JDQUtRUUFnRENnQ0FCQUdSUTBDREFnTElBQXZBVXdFUUNBQlFjZ09haUFLRURFTFFiQTBJUXBCRHlFSUEwQWdDQ0VMSUFRZ0FTQUtLQUlBUVFKMGFrSElEbW9vQWdBaUNEWUNBQUpBQWtBZ0NFVUVRQ0FKTHdFQVJRMEJDMEVCSVFnZ0JDQUFLQUlVUVFFZ0RDZ0NBQkFHUlEwQkRBb0xJQVJCLy8vL0J6WUNBQXNnQ2tFRWFpRUtJQXRCZjJvaENDQU1RUVJxSVF3Z0NVRUNhaUVKSUFSQlFHc2hCQ0FMRFFBTERBUUxJQVJCLy8vL0J6WUNBQXNnQVVHSUEyb2hCQUpBSUFBdkFSNEVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSE1EMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJ5QU5xSVFRQ1FDQUFMd0VnQkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCMEE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUVlnRWFpRUVBa0FnQUM4QklnUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFkUVBhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVSElCR29oQkFKQUlBQXZBU1FFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUhZRDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCaUFWcUlRUUNRQ0FBTHdFbUJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQjNBOXFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFjZ0ZhaUVFQWtBZ0FDOEJLQVJBUVFFaENDQUVJQUFvQWhSQkFDQUJRZUFQYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJQm1vaEJBSkFJQUF2QVNvRVFFRUJJUWdnQkNBQUtBSVVRUUFnQVVIa0Qyb29BZ0FRQmtVTkFRd0hDeUFFUWYvLy93YzJBZ0FMSUFGQnlBWnFJUVFDUUNBQUx3RXNCRUJCQVNFSUlBUWdBQ2dDRkVFQUlBRkI2QTlxS0FJQUVBWkZEUUVNQndzZ0JFSC8vLzhITmdJQUN5QUJRWWdIYWlFRUFrQWdBQzhCTGdSQVFRRWhDQ0FFSUFBb0FoUkJBQ0FCUWV3UGFpZ0NBQkFHUlEwQkRBY0xJQVJCLy8vL0J6WUNBQXNnQVVISUIyb2hCQUpBSUFBdkFUQUVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSHdEMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJpQWhxSVFRQ1FDQUFMd0V5QkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCOUE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUWNnSWFpRUVBa0FnQUM4Qk5BUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFmZ1BhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVR0lDV29oQkFKQUlBQXZBVFlFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUg4RDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCeUFscUlRUUNRQ0FBTHdFNEJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQmdCQnFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFZZ0thaUVFQWtBZ0FDOEJPZ1JBUVFFaENDQUVJQUFvQWhSQkFDQUJRWVFRYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJRUdvaERDQUJRY2dLYWlFRURBSUxJQWxDQURjQ0FDQUpRZ0EzQVM0Z0NVSUFOd0lvSUFsQ0FEY0NJQ0FKUWdBM0FoZ2dDVUlBTndJUUlBbENBRGNDQ0NBQUlBUW9BZ0EyQWhRTUFnc2dBRUtRZ01DQWdJS0FDRGNCSENBQVFwQ0F3SUNBZ29BSU53RkVJQUJDa0lEQWdJQ0NnQWczQVR3Z0FFS1FnTUNBZ0lLQUNEY0JOQ0FBUXBDQXdJQ0Fnb0FJTndFc0lBQkNrSURBZ0lDQ2dBZzNBU1JCQUE4TElBQW9BaGdnQUNnQ0ZHb2lDMEV6SUF0Qk0wZ2JJZ3RCQUNBTFFRQktHMEVDZEVIZ1BXb29BZ0FoQ1FKQUlBQXZBVTVGQkVBZ0FDOEJVRVVOQVFzZ0FVR0lEMm9nQ1JBd0N5QUVJQUZCaUE5cUtBSUFJZ3MyQWdBQ1FBSkFJQXRGQkVBZ0FDOEJQRVVOQVF0QkFTRUlJQVFnQ1VFQklBd29BZ0FRQmtVTkFRd0VDeUFFUWYvLy93YzJBZ0FMSUFRZ0FTZ0NqQThpQ3pZQ1FDQUVRVUJySVFvQ1FBSkFJQXRGQkVBZ0FDOEJQa1VOQVF0QkFTRUlJQW9nQ1VFQklBd29BZ1FRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NrQThpQ3pZQ2dBRWdCRUdBQVdvaENnSkFBa0FnQzBVRVFDQUFRVUJyTHdFQVJRMEJDMEVCSVFnZ0NpQUpRUUVnRENnQ0NCQUdSUTBCREFRTElBcEIvLy8vQnpZQ0FBc2dCQ0FCS0FLVUR5SUxOZ0xBQVNBRVFjQUJhaUVLQWtBQ1FDQUxSUVJBSUFBdkFVSkZEUUVMUVFFaENDQUtJQWxCQVNBTUtBSU1FQVpGRFFFTUJBc2dDa0gvLy84SE5nSUFDeUFFSUFFb0FwZ1BJZ3MyQW9BQ0lBUkJnQUpxSVFvQ1FBSkFJQXRGQkVBZ0FDOEJSRVVOQVF0QkFTRUlJQW9nQ1VFQklBd29BaEFRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NuQThpQ3pZQ3dBSWdCRUhBQW1vaENnSkFBa0FnQzBVRVFDQUFMd0ZHUlEwQkMwRUJJUWdnQ2lBSlFRRWdEQ2dDRkJBR1JRMEJEQVFMSUFwQi8vLy9CellDQUFzZ0JDQUJLQUtnRHlJTE5nS0FBeUFFUVlBRGFpRUtBa0FDUUNBTFJRUkFJQUF2QVVoRkRRRUxRUUVoQ0NBS0lBbEJBU0FNS0FJWUVBWkZEUUVNQkFzZ0NrSC8vLzhITmdJQUN5QUVJQUVvQXFRUElnczJBc0FESUFSQndBTnFJUVFDUUFKQUlBdEZCRUFnQUM4QlNrVU5BUXRCQVNFSUlBUWdDVUVCSUF3b0Fod1FCa1VOQVF3RUN5QUVRZi8vL3djMkFnQUxJQTFCQmtrTkFDQUFJQUVnQWlBRklBWWdCeEJXSWdoRkRRRU1BZ3NnQUNBQklBTWdCU0FDSUFjUVZ5SUlEUUVMUVFBaENBc2dDQXVXSFFFSGZ5TUFRUkJySWdja0FDQUJRUUJCcUJBUUJ5RUZJQUFnQjBFRWFoQUNJUUVnQnlnQ0JDRUlBa0FDUUFKQUlBTkJmbW9pQTBFRlN3MEFBa0FnQTBFQmF3NEVBUUVCQVFBTFFRRWhBeUFCRFFJZ0NFRUdhaUlHUVI5TkRRRU1BZ3RCQVNFRElBRU5BU0FJUVFGcUlnWkJIMHNOQVFzZ0JTQUdOZ0lBQWtBZ0JrRWZSZ1JBQTBBZ0FDZ0NDQVJBSUFCQkFSQURSUTBCREFRTEN5QUZRY2dDYWlFR0EwQWdCeUFBUVFnUUF5SUJOZ0lFSUFGQmYwWU5BeUFHSUFFMkFnQWdCa0VFYWlFR0lBbEJBV29pQ1VHQUEwY05BQXNNQVF0QkFpQUdRUVpISUFaQkJra2JJUW9DUUFKQUlBWkJCRWtOQUNBR1FRVkxEUUFnQUNBSFFReHFFQUlOQVNBSEtBSU1JZ0ZCQTBzTkFTQUZJQUUyQXJBQklBQWdCMEVNYWhBQ0RRRWdCeWdDRENJQlFRTkxEUUVnQlNBQk5nSzBBU0FBSUFkQkRHb1FBZzBCSUFjb0Fnd2lBVUVEU3cwQklBVWdBVFlDdUFFZ0FDQUhRUXhxRUFJTkFTQUhLQUlNSWdGQkEwc05BU0FGSUFFMkFyd0JBa0FnQkVFQ1NRMEFJQVpCQlVZTkFDQUFJQWRCREdvZ0JFRUNTeUlCRUJjTkFpQUhLQUlNSWdnZ0JFOE5BaUFGSUFnMkFzQUJJQUFnQjBFTWFpQUJFQmNOQWlBSEtBSU1JZ2dnQkU4TkFpQUZJQWcyQXNRQklBQWdCMEVNYWlBQkVCY05BaUFIS0FJTUlnZ2dCRThOQWlBRklBZzJBc2dCSUFBZ0IwRU1haUFCRUJjTkFpQUhLQUlNSWdFZ0JFOE5BaUFGSUFFMkFzd0JDeUFISUFVb0FyQUJJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93SFFBU0FBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dIU0FTQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVlnQVEwQUN5QUhJQVVvQXJRQklnRkJBazBFZnlBQlFRSjBRZkEwYWlnQ0FBVkJBd3MyQWd4QkFDRUdBMEFnQUNBSFFRaHFFQVVpQXcwQ0lBVWdCa0VDZEdvaUFTQUhLQUlJT3dIZ0FTQUFJQWRCQ0dvUUJTSUREUUlnQVNBSEtBSUlPd0hpQVNBSElBY29BZ3dpQVVGL2FqWUNEQ0FHUVFGcUlRWWdBUTBBQ3lBSElBVW9BcmdCSWdGQkFrMEVmeUFCUVFKMFFmQTBhaWdDQUFWQkF3czJBZ3hCQUNFR0EwQWdBQ0FIUVFocUVBVWlBdzBDSUFVZ0JrRUNkR29pQVNBSEtBSUlPd0h3QVNBQUlBZEJDR29RQlNJRERRSWdBU0FIS0FJSU93SHlBU0FISUFjb0Fnd2lBVUYvYWpZQ0RDQUdRUUZxSVFZZ0FRMEFDeUFISUFVb0Fyd0JJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93R0FBaUFBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dHQ0FpQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVpCQUNFRElBRU5BQXNNQVF0QkFDRURJQXBCQWtzTkFBSkFBbjhDUUFKQUFrQWdDa0VCYXc0Q0JBRUFDeUFIUVFBMkFnZ2dCU0FBRUE4aUFVRWZkallDRENBQlFRQk9EUUVnQVVFQmRDRUdRUUFNQWdzZ0JFRUNUd1JBUVFNaEFTQUdRUU5OQkVBZ0JrRUNkRUg4Tkdvb0FnQWhBUXNnQkVFQ1N5RUxRUUVoQXdOQUlBQWdCMEVNYWlBTEVCY05CU0FIS0FJTUlnZ2dCRThOQlNBRklBbEJBblJxSUFnMkFwQUJJQUVpQ0VGL2FpRUJJQWxCQVdvaENTQUlEUUFMQzBFRElRTWdCa0VEVFFSQUlBWkJBblJCL0RScUtBSUFJUU1MUVFBaEJnTkFJQU1oQVNBQUlBZEJDR29RQlNJRERRUWdCU0FHUVFKMGFpSUVJQWNvQWdnN0FhQUJJQUFnQjBFSWFoQUZJZ01OQkNBRUlBY29BZ2c3QWFJQklBRkJmMm9oQXlBR1FRRnFJUVlnQVEwQUMwRUFJUU1NQXdzZ0JTQUJRUngyTmdKTUlBRkJCSFFoQmtFQkN5RURJQVVnQmtFZmRqWUNFQ0FGSUFaQkFFZ0VmeUFHUVFGMEJTQUZJQVpCSEhZMkFsQWdBMEVCYWlFRElBWkJCSFFMSWdGQkgzWTJBaFFnQlNBQlFRQklCSDhnQVVFQmRBVWdCU0FCUVJ4Mk5nSlVJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0lZSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNXQ0FEUVFGcUlRTWdBVUVFZEFzaUFVRWZkallDSENBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBbHdnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWlBZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pnSUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJa0lBVWdBVUVBU0FSL0lBRkJBWFFGSUFVZ0FVRWNkallDWkNBRFFRRnFJUU1nQVVFRWRBc2lBVUVmZGpZQ0tDQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pvSUFOQkFXb2hBeUFCUVFSMEN5RUdBa0FnQUNBRFFRTnNRUWhxRUF0QmYwWU5BQ0FIUVFFMkFnZ2dCU0FBRUE4aUFVRWZkallDTEFKL0lBRkJBRWdFUUNBQlFRRjBJUVpCQUF3QkN5QUZJQUZCSEhZMkFtd2dBVUVFZENFR1FRRUxJUU1nQlNBR1FSOTJOZ0l3SUFVZ0JrRUFTQVIvSUFaQkFYUUZJQVVnQmtFY2RqWUNjQ0FEUVFGcUlRTWdCa0VFZEFzaUFVRWZkallDTkNBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBblFnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWpnZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0o0SUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJOElBVkJRR3NnQVVFQVNBUi9JQUZCQVhRRklBVWdBVUVjZGpZQ2ZDQURRUUZxSVFNZ0FVRUVkQXNpQVVFZmRqWUNBQ0FGSUFGQkFFZ0VmeUFCUVFGMEJTQUZJQUZCSEhZMkFvQUJJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0pFSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNoQUVnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWtnZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNpQUVnQTBFQmFpRURJQUZCQkhRTElRWWdBQ0FEUVFOc1FRaHFFQXRCZjBZTkFDQUhJQVkyQWd3Z0IwRUNOZ0lJREFFTElBY2dCallDREVFQklRTU1BUXRCQVNFRElBQWdCMEVNYWhBQ0RRQWdCeWdDRENJQlFRTkxEUUFnQlNBQk5nS01BVUVBSVFNTElBTU5BUUpBSUFwQkFVY0VRQ0FBSUFkQkJHb2dDa1VRTFNJRERRTWdCU0FIS0FJRUlnRTJBZ1FnQVVVTkFnd0JDeUFGSUFVb0FnQWlBVUY1YWlJRFFRSjBRWEJ4SWdSQlVHb2dCQ0FEUVF0TEcwRVBRUUFnQVVFU1N4dHlOZ0lFQzBFQklRTWdBQ0FIUVF4cUVBVU5BU0FIS0FJTUlnRkJHbXBCTTBzTkFTQUZJQUUyQWdnZ0JVR1FBbW9oQ0NBRktBSUVJUVFDUUFKQUlBVW9BZ0JCQjBrRVFFRUFJUWxCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FJSUFsQkFuUnFRYmdOYWlBQUlBZ2dDVUVHZEdwQk9Hb2dBaUFKSUFnUURVRVFFQWtpQTBFUWRqWUNBQ0FEUVE5eERRUWdDQ0FKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FJSUFsQkFYSWlCa0VDZEdwQnVBMXFJQUFnQ0NBR1FRWjBha0U0YWlBQ0lBWWdDQkFOUVJBUUNTSURRUkIyTmdJQUlBTkJEM0VOQkNBSUlBWkJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBZ2dDVUVDY2lJR1FRSjBha0c0RFdvZ0FDQUlJQVpCQm5ScVFUaHFJQUlnQmlBSUVBMUJFQkFKSWdOQkVIWTJBZ0FnQTBFUGNRMEVJQWdnQmtFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQ0NBSlFRTnlJZ1pCQW5ScVFiZ05haUFBSUFnZ0JrRUdkR3BCT0dvZ0FpQUdJQWdRRFVFUUVBa2lBMEVRZGpZQ0FDQURRUTl4RFFRZ0JTQUdRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc01BUXRCQUNFSklBQWdCVUhJRG1vZ0FrRUFJQWdRRFVFUUVBa2lBMEVQY1EwQklBVWdBMEVFZGtIL0FYRTdBY0FDSUFWQmtBSnFJUVpCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FHSUFsQkFuUnFRYmdOYWlBQUlBWWdDVUVHZEdwQlBHb2dBaUFKSUFnUURVRVBFQWtpQTBFUGRqWUNBQ0FEUVE5eERRTWdCaUFKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FHSUFsQkFYSWlDa0VDZEdwQnVBMXFJQUFnQmlBS1FRWjBha0U4YWlBQ0lBb2dDQkFOUVE4UUNTSURRUTkyTmdJQUlBTkJEM0VOQXlBR0lBcEJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBWWdDVUVDY2lJS1FRSjBha0c0RFdvZ0FDQUdJQXBCQm5ScVFUeHFJQUlnQ2lBSUVBMUJEeEFKSWdOQkQzWTJBZ0FnQTBFUGNRMERJQVlnQ2tFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQmlBSlFRTnlJZ3BCQW5ScVFiZ05haUFBSUFZZ0NrRUdkR3BCUEdvZ0FpQUtJQWdRRFVFUEVBa2lBMEVQZGpZQ0FDQURRUTl4RFFNZ0JTQUtRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc0xJQVJCQTNFRVFDQUFJQVZCaUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIQ0FpQUFJQVZCbUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIRUFndEJBQ0VESUFSQkFuRkZEUUFnQUNBRlFjd0thaUFDUVJBZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCaUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzQUlnQUNBRlFZd0xhaUFDUVJFZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCakJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzZ0lnQUNBRlFjd0xhaUFDUVJJZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCa0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0QUlnQUNBRlFZd01haUFDUVJNZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0Z0lnQUNBRlFjd01haUFDUVJRZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1QUlnQUNBRlFZd05haUFDUVJVZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbkJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1Z0lnQUNBRlFjd05haUFDUVJZZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCb0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2QUlnQUNBRlFZd09haUFDUVJjZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCcEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2Z0lMSUFBZ0FDZ0NDQ0FBS0FJRUlBQW9BZ0JyUVFOMGFqWUNFQ0FERFFFTFFRQWhBd3NnQjBFUWFpUUFJQU1McFJRQkRIOENmeUFBS0FMSUFTSUhCRUFnQUNnQ0JDQUhLQUlFUmd3QkMwRUFDeUVLQWtBZ0JrVU5BQ0FLUlEwQVFRQWdDa0VDSUFBb0FzZ0JLQUlBSWdkQkJrY2dCMEVHU1J0QkFrWWJJUW9MQW44Z0FDZ0N6QUVpQndSQUlBQW9BZ1FnQnlnQ0JFWU1BUXRCQUFzaEJ3SkFJQVpGRFFBZ0IwVU5BRUVBSUFkQkFpQUFLQUxNQVNnQ0FDSUhRUVpISUFkQkJra2JRUUpHR3lFSEN3Si9JQUFvQXRRQklna0VRQ0FBS0FJRUlBa29BZ1JHREFFTFFRQUxJUWtDUUNBR1JRMEFJQWxGRFFCQkFpQUFLQUxVQVNnQ0FDSUFRUVpISUFCQkJra2JRUUpISVFrTElBcEJBRWNnQjBFQVIzRWlEU0FKUVFCSGNTRU9JQVZCQWtzaEQwRVFJUXNEUUFKQUlBOUZCRUFDUUFKQUFrQWdCVUVCYXc0Q0FRSUFDeUFCQW44Z0RRUkFJQVF0QUFNZ0JDMEFBaUFFTFFBQklBUXRBQUFnQXkwQUJDQURMUUFESUFNdEFBRWdBeTBBQW1wcWFtcHFhbXBCQkdwQkEzWWhCaUFETFFBSUlBTXRBQWNnQXkwQUJTQURMUUFHYW1wcVFRSnFRUUoyREFFTElBY0VRQ0FETFFBRUlBTXRBQU1nQXkwQUFTQURMUUFDYW1wcVFRSnFRUUoySVFZZ0F5MEFDQ0FETFFBSElBTXRBQVVnQXkwQUJtcHFha0VDYWtFQ2Rnd0JDeUFLUlFSQVFZQUJJUVpCZ0FFTUFRc2dCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYWtFQ2FrRUNkaUlHQzBIL0FYRkJnWUtFQ0d3aUFEWUFIQ0FCSUFaQi93RnhRWUdDaEFoc0lnWTJBQmdnQVNBQU5nQVVJQUVnQmpZQUVDQUJJQUEyQUF3Z0FTQUdOZ0FJSUFFZ0FEWUFCQ0FCSUFZMkFBQUNmeUFLQkVBZ0JDMEFCeUFFTFFBR0lBUXRBQVVnQkMwQUJHcHFhaUlHUVFKcVFRSjJJZ0FnQjBVTkFSb2dBeTBBQ0NBRExRQUhJQU10QUFZZ0JpQURMUUFGYW1wcWFrRUVha0VEZGd3QkN5QUhSUVJBUVlBQklRQkJnQUVNQVFzZ0F5MEFCQ0FETFFBRElBTXRBQUVnQXkwQUFtcHFha0VDYWtFQ2RpRUFJQU10QUFnZ0F5MEFCeUFETFFBRklBTXRBQVpxYW1wQkFtcEJBbllMSVFZZ0FTQUFRZjhCY1VHQmdvUUliQ0lBTmdBZ0lBRWdCa0gvQVhGQmdZS0VDR3dpQmpZQVBDQUJJQUEyQURnZ0FTQUdOZ0EwSUFFZ0FEWUFNQ0FCSUFZMkFDd2dBU0FBTmdBb0lBRWdCallBSkF3REN5QUtSUVJBUVFFUEN5QUJJQVF0QUFBNkFBQWdBU0FFTFFBQU9nQUJJQUVnQkMwQUFEb0FBaUFCSUFRdEFBQTZBQU1nQVNBRUxRQUFPZ0FFSUFFZ0JDMEFBRG9BQlNBQklBUXRBQUE2QUFZZ0FTQUVMUUFBT2dBSElBRWdCQzBBQVRvQUNDQUJJQVF0QUFFNkFBa2dBU0FFTFFBQk9nQUtJQUVnQkMwQUFUb0FDeUFCSUFRdEFBRTZBQXdnQVNBRUxRQUJPZ0FOSUFFZ0JDMEFBVG9BRGlBQklBUXRBQUU2QUE4Z0FTQUVMUUFDT2dBUUlBRWdCQzBBQWpvQUVTQUJJQVF0QUFJNkFCSWdBU0FFTFFBQ09nQVRJQUVnQkMwQUFqb0FGQ0FCSUFRdEFBSTZBQlVnQVNBRUxRQUNPZ0FXSUFFZ0JDMEFBam9BRnlBQklBUXRBQU02QUJnZ0FTQUVMUUFET2dBWklBRWdCQzBBQXpvQUdpQUJJQVF0QUFNNkFCc2dBU0FFTFFBRE9nQWNJQUVnQkMwQUF6b0FIU0FCSUFRdEFBTTZBQjRnQVNBRUxRQURPZ0FmSUFFZ0JDMEFCRG9BSUNBQklBUXRBQVE2QUNFZ0FTQUVMUUFFT2dBaUlBRWdCQzBBQkRvQUl5QUJJQVF0QUFRNkFDUWdBU0FFTFFBRU9nQWxJQUVnQkMwQUJEb0FKaUFCSUFRdEFBUTZBQ2NnQVNBRUxRQUZPZ0FvSUFFZ0JDMEFCVG9BS1NBQklBUXRBQVU2QUNvZ0FTQUVMUUFGT2dBcklBRWdCQzBBQlRvQUxDQUJJQVF0QUFVNkFDMGdBU0FFTFFBRk9nQXVJQUVnQkMwQUJUb0FMeUFCSUFRdEFBWTZBREFnQVNBRUxRQUdPZ0F4SUFFZ0JDMEFCam9BTWlBQklBUXRBQVk2QURNZ0FTQUVMUUFHT2dBMElBRWdCQzBBQmpvQU5TQUJJQVF0QUFZNkFEWWdBU0FFTFFBR09nQTNJQUVnQkMwQUJ6b0FPQ0FCSUFRdEFBYzZBRGtnQVNBRUxRQUhPZ0E2SUFFZ0JDMEFCem9BT3lBQklBUXRBQWM2QUR3Z0FTQUVMUUFIT2dBOUlBRWdCQzBBQnpvQVBpQUJJQVF0QUFjNkFEOE1BZ3NnQjBVRVFFRUJEd3NnQVNBRExRQUJPZ0FBSUFFZ0F5MEFBVG9BQ0NBQklBTXRBQUU2QUJBZ0FTQURMUUFCT2dBWUlBRWdBeTBBQVRvQUlDQUJJQU10QUFFNkFDZ2dBU0FETFFBQk9nQXdJQUVnQXkwQUFUb0FPQ0FCSUFNdEFBSTZBQUVnQVNBRExRQUNPZ0FKSUFFZ0F5MEFBam9BRVNBQklBTXRBQUk2QUJrZ0FTQURMUUFDT2dBaElBRWdBeTBBQWpvQUtTQUJJQU10QUFJNkFERWdBU0FETFFBQ09nQTVJQUVnQXkwQUF6b0FBaUFCSUFNdEFBTTZBQW9nQVNBRExRQURPZ0FTSUFFZ0F5MEFBem9BR2lBQklBTXRBQU02QUNJZ0FTQURMUUFET2dBcUlBRWdBeTBBQXpvQU1pQUJJQU10QUFNNkFEb2dBU0FETFFBRU9nQURJQUVnQXkwQUJEb0FDeUFCSUFNdEFBUTZBQk1nQVNBRExRQUVPZ0FiSUFFZ0F5MEFCRG9BSXlBQklBTXRBQVE2QUNzZ0FTQURMUUFFT2dBeklBRWdBeTBBQkRvQU95QUJJQU10QUFVNkFBUWdBU0FETFFBRk9nQU1JQUVnQXkwQUJUb0FGQ0FCSUFNdEFBVTZBQndnQVNBRExRQUZPZ0FrSUFFZ0F5MEFCVG9BTENBQklBTXRBQVU2QURRZ0FTQURMUUFGT2dBOElBRWdBeTBBQmpvQUJTQUJJQU10QUFZNkFBMGdBU0FETFFBR09nQVZJQUVnQXkwQUJqb0FIU0FCSUFNdEFBWTZBQ1VnQVNBRExRQUdPZ0F0SUFFZ0F5MEFCam9BTlNBQklBTXRBQVk2QUQwZ0FTQURMUUFIT2dBR0lBRWdBeTBBQnpvQURpQUJJQU10QUFjNkFCWWdBU0FETFFBSE9nQWVJQUVnQXkwQUJ6b0FKaUFCSUFNdEFBYzZBQzRnQVNBRExRQUhPZ0EySUFFZ0F5MEFCem9BUGlBQklBTXRBQWc2QUFjZ0FTQURMUUFJT2dBUElBRWdBeTBBQ0RvQUZ5QUJJQU10QUFnNkFCOGdBU0FETFFBSU9nQW5JQUVnQXkwQUNEb0FMeUFCSUFNdEFBZzZBRGNnQVNBRExRQUlPZ0EvREFFTElBNUZCRUJCQVE4TElBTXRBQVVnQXkwQUEyc2dBeTBBQmlBRExRQUNhMEVCZEdvZ0F5MEFCeUFETFFBQmEwRURiR29nQXkwQUNDSUFJQU10QUFBaUNXdEJBblJxUVJGc1FSQnFRUVYxSWdaQmZXd2hFQ0FBSUFRdEFBY2lER3BCQkhRZ0JDMEFCQ0FFTFFBQ2F5QU1JQWxyUVFKMGFpQUVMUUFGSUFRdEFBRnJRUUYwYWlBRUxRQUdJQVF0QUFCclFRTnNha0VSYkVFUWFrRUZkU0lSUVgxc2FrRVFhaUVKUVFnaERDQUJJUUFEUUNBQUlBa2dFR29pQ0VFRmRVR3dMbW90QUFBNkFBQWdBQ0FHSUFocUlnaEJCWFZCc0M1cUxRQUFPZ0FCSUFBZ0JpQUlhaUlJUVFWMVFiQXVhaTBBQURvQUFpQUFJQVlnQ0dvaUNFRUZkVUd3TG1vdEFBQTZBQU1nQUNBR0lBaHFJZ2hCQlhWQnNDNXFMUUFBT2dBRUlBQWdCaUFJYWlJSVFRVjFRYkF1YWkwQUFEb0FCU0FBSUFZZ0NHb2lDRUVGZFVHd0xtb3RBQUE2QUFZZ0FDQUdJQWhxUVFWMVFiQXVhaTBBQURvQUJ5QUpJQkZxSVFrZ0FFRUlhaUVBSUF4QmYyb2lEQTBBQ3dzZ0FTQUNJQXNRQ0NBQklBSkJRR3NnQzBFQmNoQUlJQUVnQWtHQUFXb2dDMEVDY2hBSUlBRWdBa0hBQVdvZ0MwRURjaEFJSUFKQmdBSnFJUUlnQkVFSWFpRUVJQU5CQ1dvaEF5QUJRVUJySVFFZ0MwRUVhaUVMSUJKQkFXb2lFa0VDUncwQUMwRUFDNkVWQWhoL0FuNENmd05BQW44Z0FDSUlJQlpCQTNSQnNEVnFLUUlBSWg2bkVCRWlDU0lHQkVBZ0NDZ0NCQ0FHS0FJRVJnd0JDMEVBQ3lFTkFrQWdCVVVOQUNBTlJRMEFRUUFnRFVFQ0lBa29BZ0FpQmtFR1J5QUdRUVpKRzBFQ1Joc2hEUXNDZnlBSUlCWkJBM1JCOERacUtRSUFJaCtuRUJFaUJ5SUdCRUFnQ0NnQ0JDQUdLQUlFUmd3QkMwRUFDeUVQQWtBZ0JVVU5BQ0FQUlEwQVFRQWdEMEVDSUFjb0FnQWlCa0VHUnlBR1FRWkpHMEVDUmhzaER3dEJBaUVNSUExQkFFY2dEMEVBUjNFaUVrRUJSZ1JBUVFJaEJnSi9RUUlnQ1NnQ0FDSUxRUVpISUF0QkJra2JSUVJBSUFrZ0hrSWdpS2RCL3dGeGFpMEFVaUVHQ3lBR0N3Si9RUUlnQnlnQ0FDSUpRUVpISUFsQkJra2JSUVJBSUFjZ0gwSWdpS2RCL3dGeGFpMEFVaUVNQ3lBTUN5QUdJQXhKR3lFTUN5QUNJQlpCQW5RaUNXb2lCaWdDREVVRVFDQUdLQUpNSWdZZ0JpQU1UMm9oREFzZ0NDQVdhaUFNT2dCU0FuOGdDQ0FXUVFOMFFiQTRhaWdDQUJBUklnWWlCd1JBSUFnb0FnUWdCeWdDQkVZTUFRdEJBQXNoRGdKQUlBVkZEUUFnRGtVTkFFRUFJQTVCQWlBR0tBSUFJZ1pCQmtjZ0JrRUdTUnRCQWtZYklRNExBbjhnQUNBV1FRTjBRZkE1YWlnQ0FCQVJJZ2dpQmdSQUlBQW9BZ1FnQmlnQ0JFWU1BUXRCQUFzaEVRSkFJQVZGRFFBZ0VVVU5BRUVBSUJGQkFpQUlLQUlBSWdoQkJrY2dDRUVHU1J0QkFrWWJJUkVMSUFsQjhDbHFLQUlBSVJjZ0NVR3dLV29vQWdBaEdBSi9RWVVLSUJaMlFRRnhJaHdFUUNBWFFRTnFJUWNnQkNBWGFpSUlRUUpxSVFZZ0NFRUJhaUVMSUFRTUFRc2dGMEVFZENBWWFpSUlRUzlxSVFjZ0FTQUlhaUlJUVI5cUlRWWdDRUVQYWlFTElBaEJmMm9oQ0NBQkN5RUpJQWNnQ1dvdEFBQWhDaUFHTFFBQUlSQWdDeTBBQUNFVElBZ3RBQUFoRkFKQVFUTWdGblpCQVhFRVFDQURJQmhxSWdjdEFBZ2hHeUFITFFBSElSa2dCeTBBQmlFVklBY3RBQVVoR2lBSExRQUVJUVlnQnkwQUF5RUxJQWN0QUFJaENTQUhMUUFCSVFnTUFRc2dBU0FYUVg5cUloMUJCSFFnR0dwcUlnY3RBQUFoQ0NBSExRQUhJUnNnQnkwQUJpRVpJQWN0QUFVaEZTQUhMUUFFSVJvZ0J5MEFBeUVHSUFjdEFBSWhDeUFITFFBQklRa2dIQVJBSUFRZ0hXb2hCd3dCQ3lBSFFYOXFJUWNMQWtBZ0RFRUhUUVJBSUFjdEFBQWhCd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQWdERUVCYXc0SEFRSURCQVVHQndBTElBOUZCRUJCQVE4TElBaEIvd0Z4SUF0Qi93RnhRUkIwSUFaQkdIUnljaUFKUWY4QmNVRUlkSEloRlNBSUlnd2hEU0FKSWc0aEVpQUxJZzhoQ2lBR0loRWhCd3dJQ3lBTlJRUkFRUUVQQ3lBS1FZR0NoQWhzSVJVZ0VFR0Jnb1FJYkNJTlFSaDJJUWNnRFVFUWRpRUtJQTFCQ0hZaEVpQVRRWUdDaEFoc0lneEJHSFloRVNBTVFSQjJJUThnREVFSWRpRU9JQlJCZ1lLRUNHd2lDRUVZZGlFR0lBaEJFSFloQ3lBSVFRaDJJUWtNQndzQ2Z5QVRJQlJxSUFwcUlCQnFJQVpCL3dGeGFpQUxRZjhCY1dvZ0NVSC9BWEZxSUFoQi93Rnhha0VFYWtFRGRpQVNEUUFhSUJNZ0ZHb2dDbW9nRUdwQkFtcEJBbllnRFEwQUdrR0FBU0FQUlEwQUdpQUdRZjhCY1NBTFFmOEJjV29nQ1VIL0FYRnFJQWhCL3dGeGFrRUNha0VDZGdzaUNFR0Jnb1FJYkNFVklBZ2lDU0lMSWdZaURDSU9JZzhpRVNJTkloSWlDaUVIREFZTElBOUZCRUJCQVE4TElBWkIvd0Z4SWcxQkFtb2lFU0FWSUFZZ0RodEIvd0Z4SWdkcUlCb2dCaUFPRzBIL0FYRWlDa0VCZEdwQkFuWWlEeUFaSUFZZ0RodEIvd0Z4SWd3Z0d5QUdJQTRiUWY4QmNTSUdRUU5zYWtFV2RFR0FnSUFFYWtHQWdJQjRjWElnQ2lBTWFpQUhRUUYwYWtFQ2FpSVFRUVowUVlEK0EzRnlJQVlnQjJvZ0RFRUJkR3BCQW1vaUJrRU9kRUdBZ1B3SGNYSWhGU0FHUVFKMklRY2dDMEgvQVhFaUJrRUNhaUlMSUFoQi93RnhhaUFKUWY4QmNTSUpRUUYwYWtFQ2RpRUlJQWtnRVdvZ0JrRUJkR3BCQW5ZaUNTRU1JQW9nQzJvZ0RVRUJkR3BCQW5ZaUN5RU9JQXNoRFNBUElnWWhFaUFRUVFKMkloRWhDZ3dGQzBFQklCRkZJQkpCQVhOeURRWWFJQlFnRTBFQmRHb2dFR3BCQW1vaURrRUdkRUdBL2dOeElBb2dFMEVDYWlJUGFpQVFRUUYwYWtFQ2RuSWdDRUgvQVhFaUNrRUNhaUlNSUJScUlBZEJBWFJxUVFKMklnaEJHSFJ5SUE4Z0ZFRUJkR29nQjJvaUVFRU9kRUdBZ1B3SGNYSWhGU0FKUWY4QmNTSVJRUUpxSWdrZ0JrSC9BWEZxSUF0Qi93RnhJZ3RCQVhScVFRSjJJUVlnRGtFQ2RpRU5JQWtnQ2tFQmRHb2dCMnBCQW5ZaUNTRVBJQkZCQVhRZ0Myb2dER3BCQW5ZaUN5RVJJQkJCQW5ZaURDRVNJQWdpRGlFS0lBa2hCd3dFQzBFQklCRkZJQkpCQVhOeURRVWFJQWhCL3dGeElncEJBbW9pRGlBTFFmOEJjU0lJSUFsQi93RnhJZ3RCQVhScWFrRUNkaUlQUVJoMElCUWdFMEVCZEdvZ0VHcEJBbXBCQW5aeUlBNGdGR29nQjBFQmRHb2lDVUVHZEVHQS9nTnhjaUFMUVFKcUlnNGdDa0VCZEdvZ0Iyb2lEVUVPZEVHQWdQd0hjWEloRlNBSVFRRnFJaEFnQmtIL0FYRWlER3BCQVhZaEJpQU1JQTVxSUFoQkFYUnFRUUoySVJFZ0NVRUNkaUVNSUExQkFuWWhEaUFUSUJSQkFYUnFJQWRxUVFKcVFRSjJJUTBnQnlBS2FrRUJha0VCZGlJSUlSSWdDaUFMYWtFQmFrRUJkaUlKSVFvZ0N5QVFha0VCZGlJTElRY01Bd3RCQVNBUlJTQVNRUUZ6Y2cwRUdpQVRRUUpxSWc0Z0Ntb2dFRUVCZEdwQkJuUkJnUDREY1NBUUlCTnFRUUZxSWc5QkQzUkJnSUQ4QjNFZ0ZFRUNhaUlNSUJOQkFYUnFJQkJxUVFKMkloSkJHSFJ5SUFvZ0VHcEJBV3BCQVhaeWNpRVZJQWhCL3dGeElnZ2dDMEgvQVhGcUlBbEIvd0Z4SWdsQkFYUnFRUUpxUVFKMklRWWdDU0FJUVFGMGFpQUhha0VDYWtFQ2RpRUxJQTlCQVhZaERTQUlJQXhxSUFkQkFYUnFRUUoySWhFaENTQVVRUUZxSWdvZ0IycEJBWFlpQ0NFUElBb2dFMnBCQVhZaURDRUtJQTRnRkVFQmRHb2dCMnBCQW5ZaURpRUhEQUlMSUE5RkJFQkJBUThMSUJvZ0JpQU9HMEgvQVhFaUNpQVpJQVlnRGh0Qi93RnhhaUFWSUFZZ0RodEIvd0Z4SWdkQkFYUnFRUlowSUF0Qi93RnhJZ3RCQW1vaURDQUthaUFHUWY4QmNTSUdRUUYwYWlJUFFRWjBja0dBZ0lBRWFrR0Evb040Y1NBR1FRSnFJZzBnQ1VIL0FYRWlDV29nQzBFQmRHcEJBbllpRG5JZ0J5QU5haUFLUVFGMGFpSU5RUTUwUVlDQS9BZHhjaUVWSUFjZ0NtcEJBV3BCQVhZaEJ5QU5RUUoySVJFZ0NTQUlRZjhCY1NJTmFrRUJha0VCZGlFSUlBOUJBblloRHlBTUlBMXFJQWxCQVhScVFRSjJJUXdnQ1NBTGFrRUJha0VCZGlJSklRMGdCa0VCYWlJR0lBdHFRUUYySWdzaEVpQUdJQXBxUVFGMklnWWhDZ3dCQ3lBTlJRUkFRUUVQQ3lBS1FRaDBJQXB5SUFwQkVIUnlJQXBCR0hSeUlSVWdFRUVDYWlJSElCUnFJQk5CQVhScVFRSjJJUWtnRTBFQmFpSUdJQlJxUVFGMklRZ2dCaUFRYWtFQmRpSUxJUXdnQ2lBVGFpQVFRUUYwYWtFQ2FrRUNkaUlHSVE0Z0NpQVFha0VCYWtFQmRpSVBJUTBnQnlBS1FRTnNha0VDZGlJUklSSWdDaUVIQ3lBQklCZEJCSFFnR0dwcUloQWdGVFlDTUNBUUlBMUIvd0Z4SUJKQi93RnhRUWgwY2lBS1FmOEJjVUVRZEhJZ0IwRVlkSEkyQWlBZ0VDQU1RZjhCY1NBT1FmOEJjVUVJZEhJZ0QwSC9BWEZCRUhSeUlCRkJHSFJ5TmdJUUlCQWdDRUgvQVhFZ0NVSC9BWEZCQ0hSeUlBdEIvd0Z4UVJCMGNpQUdRUmgwY2pZQ0FDQUJJQUlnRmtFR2RHcEJ5QUpxSUJZUUNDQVdRUUZxSWhaQkVFY05BQXRCQUFzTHhSSUJFSDhDZnlBQUtBTElBU0lIQkVBZ0FDZ0NCQ0FIS0FJRVJnd0JDMEVBQ3lFSEFrQWdCVVVOQUNBSFJRMEFRUUFnQjBFQ0lBQW9Bc2dCS0FJQUlnZEJCa2NnQjBFR1NSdEJBa1liSVFjTEFuOGdBQ2dDekFFaUNBUkFJQUFvQWdRZ0NDZ0NCRVlNQVF0QkFBc2hDQUpBSUFWRkRRQWdDRVVOQUVFQUlBaEJBaUFBS0FMTUFTZ0NBQ0lJUVFaSElBaEJCa2tiUVFKR0d5RUlDd0ovSUFBb0F0UUJJZ2tFUUNBQUtBSUVJQWtvQWdSR0RBRUxRUUFMSVFrQ1FDQUZSUTBBSUFsRkRRQkJBaUFBS0FMVUFTZ0NBQ0lGUVFaSElBVkJCa2tiUVFKSElRa0xBa0FDUUNBQUtBSUFRUUZxUVFOeElnQkJBazBFUUFKQUFrQUNRQ0FBUVFGckRnSUJBZ0FMSUFoRkJFQkJBUThMUVFBaEJTQUJJUUFEUUNBQUlBTXRBQUU2QUFBZ0FDQURMUUFDT2dBQklBQWdBeTBBQXpvQUFpQUFJQU10QUFRNkFBTWdBQ0FETFFBRk9nQUVJQUFnQXkwQUJqb0FCU0FBSUFNdEFBYzZBQVlnQUNBRExRQUlPZ0FISUFBZ0F5MEFDVG9BQ0NBQUlBTXRBQW82QUFrZ0FDQURMUUFMT2dBS0lBQWdBeTBBRERvQUN5QUFJQU10QUEwNkFBd2dBQ0FETFFBT09nQU5JQUFnQXkwQUR6b0FEaUFBSUFNdEFCQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3REN5QUhSUVJBUVFFUEMwRUFJUVVnQVNFQUEwQWdBQ0FFSUFWcUlnTXRBQUE2QUFBZ0FDQURMUUFBT2dBQklBQWdBeTBBQURvQUFpQUFJQU10QUFBNkFBTWdBQ0FETFFBQU9nQUVJQUFnQXkwQUFEb0FCU0FBSUFNdEFBQTZBQVlnQUNBRExRQUFPZ0FISUFBZ0F5MEFBRG9BQ0NBQUlBTXRBQUE2QUFrZ0FDQURMUUFBT2dBS0lBQWdBeTBBQURvQUN5QUFJQU10QUFBNkFBd2dBQ0FETFFBQU9nQU5JQUFnQXkwQUFEb0FEaUFBSUFNdEFBQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3Q0N5QUJBbjhDUUNBSFJRMEFJQWhGRFFBZ0JDMEFEeUFETFFBUUlBUXRBQTRnQXkwQUR5QUVMUUFOSUFNdEFBNGdCQzBBRENBRExRQU5JQVF0QUFzZ0F5MEFEQ0FFTFFBS0lBTXRBQXNnQkMwQUNTQURMUUFLSUFRdEFBZ2dBeTBBQ1NBRUxRQUhJQU10QUFnZ0JDMEFCaUFETFFBSElBUXRBQVVnQXkwQUJpQUVMUUFFSUFNdEFBVWdCQzBBQXlBRExRQUVJQVF0QUFJZ0F5MEFBeUFFTFFBQklBTXRBQUlnQXkwQUFTQUVMUUFBYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFrRVFha0VGZGd3QkN5QUhCRUFnQkMwQUR5QUVMUUFPSUFRdEFBMGdCQzBBRENBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSUlBUXRBQWNnQkMwQUJpQUVMUUFGSUFRdEFBUWdCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYW1wcWFtcHFhbXBxYW1wcWFrRUlha0VFZGd3QkMwR0FBU0FJUlEwQUdpQURMUUFRSUFNdEFBOGdBeTBBRGlBRExRQU5JQU10QUF3Z0F5MEFDeUFETFFBS0lBTXRBQWtnQXkwQUNDQURMUUFISUFNdEFBWWdBeTBBQlNBRExRQUVJQU10QUFNZ0F5MEFBU0FETFFBQ2FtcHFhbXBxYW1wcWFtcHFhbXBxUVFocVFRUjJDMEdBQWhBSEdnd0JDMEVCSVFBZ0IwVU5BU0FJUlEwQklBbEZEUUVnQkMwQUNDQUVMUUFHYXlBRUxRQVBJZ0FnQXkwQUFDSUZhMEVEZEdvZ0JDMEFDU0FFTFFBRmEwRUJkR29nQkMwQUNpQUVMUUFFYTBFRGJHb2dCQzBBQ3lBRUxRQURhMEVDZEdvZ0JDMEFEQ0FFTFFBQ2EwRUZiR29nQkMwQURTQUVMUUFCYTBFR2JHb2dCQzBBRGlBRUxRQUFhMEVIYkdwQkJXeEJJR3BCQm5VaEJ5QURMUUFKSUFNdEFBZHJJQU10QUFvZ0F5MEFCbXRCQVhScUlBTXRBQXNnQXkwQUJXdEJBMnhxSUFNdEFBd2dBeTBBQkd0QkFuUnFJQU10QUEwZ0F5MEFBMnRCQld4cUlBTXRBQTRnQXkwQUFtdEJCbXhxSUFNdEFBOGdBeTBBQVd0QkIyeHFJQU10QUJBaUF5QUZhMEVEZEdwQkJXeEJJR3BCQm5VaUJFRURkQ0VJSUFSQkIyd2hDU0FFUVFac0lRb2dCRUVGYkNFTElBUkJBMndoRENBRVFYMXNJUTBnQkVGN2JDRU9JQVJCZW13aER5QUVRWGxzSVJCQkFDQUVRUUYwSWhGcklSSkJBQ0FFUVFKMEloTnJJUlFnQUNBRGFrRUVkRUVRYWlFVlFRQWhCUU5BSUFFZ0JVRUVkQ0lBYWlBVklBVkJlV29nQjJ4cUlnTWdFR3BCQlhVaUJrSC9BU0FHUWY4QlNCc2lCa0VBSUFaQkFFb2JPZ0FBSUFFZ0FFRUJjbW9nQXlBUGFrRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFKeWFpQURJQTVxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJBM0pxSUFNZ0ZHcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFRWNtb2dBeUFOYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUVZ5YWlBRElCSnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkJuSnFJQU1nQkd0QkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVIY21vZ0EwRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFoeWFpQURJQVJxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJDWEpxSUFNZ0VXcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFS2Ntb2dBeUFNYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUXR5YWlBRElCTnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkRISnFJQU1nQzJwQkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVOY21vZ0F5QUtha0VGZFNJR1FmOEJJQVpCL3dGSUd5SUdRUUFnQmtFQVNoczZBQUFnQVNBQVFRNXlhaUFESUFscVFRVjFJZ1pCL3dFZ0JrSC9BVWdiSWdaQkFDQUdRUUJLR3pvQUFDQUJJQUJCRDNKcUlBTWdDR3BCQlhVaUFFSC9BU0FBUWY4QlNCc2lBRUVBSUFCQkFFb2JPZ0FBSUFWQkFXb2lCVUVRUncwQUN3dEJBQ0VBSUFFZ0FrRUFFQWdnQVNBQ1FVQnJRUUVRQ0NBQklBSkJnQUZxUVFJUUNDQUJJQUpCd0FGcVFRTVFDQ0FCSUFKQmdBSnFRUVFRQ0NBQklBSkJ3QUpxUVFVUUNDQUJJQUpCZ0FOcVFRWVFDQ0FCSUFKQndBTnFRUWNRQ0NBQklBSkJnQVJxUVFnUUNDQUJJQUpCd0FScVFRa1FDQ0FCSUFKQmdBVnFRUW9RQ0NBQklBSkJ3QVZxUVFzUUNDQUJJQUpCZ0FacVFRd1FDQ0FCSUFKQndBWnFRUTBRQ0NBQklBSkJnQWRxUVE0UUNDQUJJQUpCd0FkcVFROFFDQXNnQUF1N0NBRUhmd0pBSUFORkRRQWdBQ2dDQUNBRElBQW9BZ1FpQlc0aUNDQUZiQ0lFUVFoMGFpQURJQVJySWdkQkJIUnFJUVlnQlVFRWRDRUVJQUFvQWdnaENTQUZJQU5MSWdwRkJFQWdBU0FHSUFSQkFYSnJJZ010QUFBNkFBQWdBU0FETFFBQk9nQUJJQUVnQXkwQUFqb0FBaUFCSUFNdEFBTTZBQU1nQVNBRExRQUVPZ0FFSUFFZ0F5MEFCVG9BQlNBQklBTXRBQVk2QUFZZ0FTQURMUUFIT2dBSElBRWdBeTBBQ0RvQUNDQUJJQU10QUFrNkFBa2dBU0FETFFBS09nQUtJQUVnQXkwQUN6b0FDeUFCSUFNdEFBdzZBQXdnQVNBRExRQU5PZ0FOSUFFZ0F5MEFEam9BRGlBQklBTXRBQTg2QUE4Z0FTQURMUUFRT2dBUUlBRWdBeTBBRVRvQUVTQUJJQU10QUJJNkFCSWdBU0FETFFBVE9nQVRJQUVnQXkwQUZEb0FGQ0FCUVJWcUlRRUxJQWNFUUNBQ0lBWkJmMm9pQXkwQUFEb0FBQ0FDSUFNZ0JHb2lBeTBBQURvQUFTQUNJQU1nQkdvaUF5MEFBRG9BQWlBQ0lBTWdCR29pQXkwQUFEb0FBeUFDSUFNZ0JHb2lBeTBBQURvQUJDQUNJQU1nQkdvaUF5MEFBRG9BQlNBQ0lBTWdCR29pQXkwQUFEb0FCaUFDSUFNZ0JHb2lBeTBBQURvQUJ5QUNJQU1nQkdvaUF5MEFBRG9BQ0NBQ0lBTWdCR29pQXkwQUFEb0FDU0FDSUFNZ0JHb2lBeTBBQURvQUNpQUNJQU1nQkdvaUF5MEFBRG9BQ3lBQ0lBTWdCR29pQXkwQUFEb0FEQ0FDSUFNZ0JHb2lBeTBBQURvQURTQUNJQU1nQkdvaUF5MEFBRG9BRGlBQ0lBTWdCR290QUFBNkFBOGdBa0VRYWlFQ0N5QUFLQUlBSUFVZ0NXd2lCRUVJZEdvZ0NDQUZRUU4wSWdCc1FRTjBhaUFIUVFOMGFpRUdJQUJCK1AvLy93ZHhJUUFnQ2tVRVFDQUJJQVlnQUVFQmNtc2lBeTBBQURvQUFDQUJJQU10QUFFNkFBRWdBU0FETFFBQ09nQUNJQUVnQXkwQUF6b0FBeUFCSUFNdEFBUTZBQVFnQVNBRExRQUZPZ0FGSUFFZ0F5MEFCam9BQmlBQklBTXRBQWM2QUFjZ0FTQURRUWhxSWdNdEFBQTZBQWdnQVNBRVFRWjBJQU5xSWdOQmVHb3RBQUE2QUFrZ0FTQURRWGxxTFFBQU9nQUtJQUVnQTBGNmFpMEFBRG9BQ3lBQklBTkJlMm90QUFBNkFBd2dBU0FEUVh4cUxRQUFPZ0FOSUFFZ0EwRjlhaTBBQURvQURpQUJJQU5CZm1vdEFBQTZBQThnQVNBRFFYOXFMUUFBT2dBUUlBRWdBeTBBQURvQUVRc2dCMFVOQUNBQ0lBWkJmMm9pQVMwQUFEb0FBQ0FDSUFBZ0FXb2lBUzBBQURvQUFTQUNJQUFnQVdvaUFTMEFBRG9BQWlBQ0lBQWdBV29pQVMwQUFEb0FBeUFDSUFBZ0FXb2lBUzBBQURvQUJDQUNJQUFnQVdvaUFTMEFBRG9BQlNBQ0lBQWdBV29pQVMwQUFEb0FCaUFDSUFBZ0FXb2lBUzBBQURvQUJ5QUNJQUFnQVdvZ0JDQUZhMEVHZEdvaUFTMEFBRG9BQ0NBQ0lBQWdBV29pQVMwQUFEb0FDU0FDSUFBZ0FXb2lBUzBBQURvQUNpQUNJQUFnQVdvaUFTMEFBRG9BQ3lBQ0lBQWdBV29pQVMwQUFEb0FEQ0FDSUFBZ0FXb2lBUzBBQURvQURTQUNJQUFnQVdvaUFTMEFBRG9BRGlBQ0lBQWdBV290QUFBNkFBOExDNjhCQVFGL0l3QkIwQUJySWdZa0FDQUNJQVpCSUdvZ0JpQURFRlVDUUFKQVFRSWdBQ2dDQUNJRFFRWkhJQU5CQmtrYlFRRkdCRUFnQUNBRklBRkJ5QUpxSUFaQklHb2dCaUFFRUZRaUEwVU5BUXdDQ3lBQUlBVWdBU0FHUVNCcUlBWWdCQkJUSWdNTkFRc2dBQ0FGUVlBQ2FpQUJRY2dLYWlBR1FUVnFJQVpCRUdvZ0FTZ0NqQUVnQkJCU0lnTU5BRUVBSVFNZ0FDZ0N4QUZCQVVzTkFDQUNJQVVRR3dzZ0JrSFFBR29rQUNBREM2TXFBU1IvSXdCQklHc2lFQ1FBSUJBZ0JDZ0NCQ0lJTmdJTUlCQWdCQ2dDQ0RZQ0VDQURJQWh1SWdaQkJIUWhGQ0FESUFZZ0NHeHJRUVIwSVJVQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFBb0FnQWlCa0VEVFFSQUFrQUNRQUpBSUFaQkFtc09BZ0VDQUFzZ0FTZ0NrQUVoRXlBQUtBSUVJUTVCZnlFUEFuOGdBQ2dDeUFFaUNVVUVRRUVBSVFoQmZ3d0JDMEVBSVFoQmZ5QUpLQUlFSUE1SERRQWFRUUVoRWtGL0lBa29BZ0JCQlVzTkFCb2dDU2dDbUFFaUNFRVFkaUVISUFrb0FtZ0xJUTBnQUNnQ3pBRWlDVVVOQ0NBSktBSUVJQTVIRFFoQkFTRVdJQWtvQWdCQkJVc05DQ0FKS0FLc0FTSVJRUkIySVFvZ0NTZ0NiQ0VQREFnTElBRW9BcEFCSVJNZ0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhDMEYvSVFjQ1FDQUFLQUxNQVNJR1JRMEFJQXNnQmlnQ0JFY0VRQXdCQzBFQklSSWdCaWdDQUVFRlN3MEFJQVlvQXF3QklnbEJFSFloQ2lBR0tBSnNJUWNMSUFjZ0UwWUVRQ0FLSVFjZ0NTRUdEQWNMUVg4aER3SkFBa0FDUUNBQUtBTElBU0lJUlFSQVFRQWhCd3dCQzBFQUlRY2dDQ2dDQkNBTFJnMEJDMEVBSVFZTUFRdEJBU0VYSUFnb0FnQkJCVXNFUUVFQUlRWU1BUXNnQ0NnQ21BRWlCa0VRZGlFSElBZ29BbWdoRHdzQ1FBSkFJQUFvQXRBQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVTBOQVF3R0N3SkFJQUFvQXRRQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVXNOQmlBSUtBSndJUllnQ0NnQ3dBRWhDQXdIQzBFQUlRaEJmeUVXSUJJTkJpQVhSUTBHREFjTElBZ29BbXdoRmlBSUtBS3NBU0VJREFVTElBRW9BcEFCSVE4Z0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhCa0YvSVFjQ1FDQUFLQUxJQVNJS1JRUkFRUUFoQ0F3QkMwRUFJUWdnQmlBS0tBSUVSd1JBREFFTFFRRWhFU0FLS0FJQVFRVkxEUUFnQ2lnQ21BRWlDVUVRZGlFSUlBb29BbWdoQndzZ0J5QVBSZzBCQW44Q2Z3SkFBa0FnQUNnQ3pBRWlCMFVOQUNBSEtBSUVJQVpIRFFBZ0J5Z0NBRUVGU3cwQklBY29BbkFoRVNBSEtBSzhBU0VLSUFjb0Ftd2hFaUFIS0FLc0FTSUdRUkIyREFNTEFrQWdBQ2dDMUFFaUIwVU5BQ0FIS0FJRUlBWkhEUUJCQUNFR1FYOGhFaUFIS0FJQVFRVkxCRUJCZnlFUlFRQU1Bd3NnQnlnQ2NDRVJJQWNvQXNBQkRBSUxJQkVOQkF0QmZ5RVJRWDhoRWtFQUlRWkJBQXNoQ2tFQUN5RUhJQThnRWtZaUN5QVBJQkZHYWtFQlJ3UkFJQWNnQ0NBSFFSQjBRUkIxSWdzZ0NFRVFkRUVRZFNJT1NpSUlHeUlISUE0Z0N5QU9JQXNnRGtnYklBZ2JJZ2dnQ2tFUWRTSUxJQWdnQzBvYklBZEJFSFJCRUhVZ0MwZ2JJUWNnQmlBSklBWkJFSFJCRUhVaUN5QUpRUkIwUVJCMUlnbEtJZ1liSWdoQi8vOERjU0FKSUFzZ0NTQUxJQWxJR3lBR0d5SUdJQXBCRUhSQkVIVWlDU0FHSUFsS0d5QUlRUkIwUVJCMUlBbElHeUVHREFNTElBc05BaUFLUVJCMklRY2dDaUVHREFJTFFRRWhHeUFBUVlRQmFpRWNBMEFDZnlBQklCMUJBblFpSG1vaUlDSWtLQUt3QVNJR1FRSk5CRUFnQmtFQ2RFR2NOV29vQWdBTUFRdEJCQXNoSWlBQUlCNXFJZ1lnSUNnQ3dBRTJBbVFnQmlBQ0lDQW9Bc0FCRUJRaUJqWUNkQ0FHUlEwSUlDSUVRQ0FjSUIxQkJIUWlIMm9pSlNFbUlCd2dIMEVNY21vaUowRUNhaUVvSUJ3Z0gwRUljbW9pS1NFUklCd2dIMEVFY21vaUZpRVRRUUFoQmdOQUlBRWdIMm9nQmtFQ2RHb2lDQzhCMGdFaER5QUlMd0hRQVNFT0lDQW9Bc0FCSVNGQmZ5RVhBbjhnQUNBZFFRZDBJQ1FvQXJBQklpTkJCWFJxSUFaQkEzUnFJaHBCc0JscUtBSUFFQkVpQ1VVRVFFRUFJUXhCQUNFSVFRQWhDa0YvREFFTFFRQWhERUVBSVFoQkFDRUtRWDhnQ1NnQ0JDQUFLQUlFUncwQUdrRUJJUXBCZnlBSktBSUFRUVZMRFFBYUlBa2dHa0cwR1dvdEFBQWlCMEVDZEdvb0FvUUJJZ2hCRUhZaERDQUpJQWRCL0FGeGFpZ0NaQXNoRFFKQUFrQUNRQ0FBSUJwQnNCMXFLQUlBRUJFaUdFVUVRRUVBSVFrTUFRdEJBQ0VKSUJnb0FnUWdBQ2dDQkVZTkFRdEJBQ0VTUVFBaEN3d0JDMEVCSVFzZ0dDZ0NBRUVGU3dSQVFRQWhFZ3dCQ3lBWUlCcEJ0QjFxTFFBQUlnZEJBblJxS0FLRUFTSVNRUkIySVFrZ0dDQUhRZndCY1dvb0FtUWhGd3NDUUFKQUFrQUNRQUpBSUFBZ0drR3dJV29vQWdBUUVTSVpSUTBBSUJrb0FnUWdBQ2dDQkVjTkFDQVpLQUlBUVFWTkRRRU1BZ3NDUUNBQUlCcEJzQ1ZxS0FJQUVCRWlHVVVOQUNBWktBSUVJQUFvQWdSSERRQWdHU2dDQUVFRlN3MENJQmtnR2tHMEpXb3RBQUFpQjBIOEFYRnFLQUprSVJnZ0dTQUhRUUowYWlnQ2hBRWhCd3dEQzBFQUlRZEJmeUVZSUFwRkRRSWdDdzBDREFNTElCa2dHa0cwSVdvdEFBQWlCMEg4QVhGcUtBSmtJUmdnR1NBSFFRSjBhaWdDaEFFaEJ3d0JDMEVBSVFkQmZ5RVlDeUFYSUNGR0lnb2dEU0FoUmlJTGFpQVlJQ0ZHYWtFQlJ3UkFJQWtnRENBSlFSQjBRUkIxSWdzZ0RFRVFkRUVRZFNJTVNpSUpHeUlLSUF3Z0N5QU1JQXNnREVnYklBa2JJZ2tnQjBFUWRTSUxJQWtnQzBvYklBcEJFSFJCRUhVZ0MwZ2JJUXdnRWlBSUlCSkJFSFJCRUhVaUNpQUlRUkIwUVJCMUlndEtJZ2diSWdsQi8vOERjU0FMSUFvZ0N5QUtJQXRJR3lBSUd5SUlJQWRCRUhSQkVIVWlCeUFJSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVJREFFTElBZ2dFaUFMR3lFSUlBd2dDU0FMR3lFTUlBc05BQ0FLRFFBZ0IwRVFkaUVNSUFjaENBc2dDQ0FPYWlJS1FSQjBRUkIxUVlCQWEwSC8vd0JMRFFvZ0RDQVBhaUlKUVJCMFFSQjFRWUFRYWtIL0gwc05DaUFqUVFOTkJFQUNmd0pBQWtBQ1FBSkFJQ05CQVdzT0F3RUNBd0FMSUNVZ0Nqc0JBQ0FtSUFrN0FRSWdGaUFLT3dFQUlCTWdDVHNCQWlBcElBbzdBUUFnRVNBSk93RUNJQ2NnQ2pzQkFDQW9EQU1MSUJ3Z0JrRUJkQ0FlYWtFQ2RDSUhhaUlJSUFrN0FRSWdDQ0FLT3dFQUlCd2dCMEVFY21vaUNDQUtPd0VBSUFoQkFtb01BZ3NnQUNBR0lCNXFRUUowYWlJSUlBbzdBWXdCSUFnZ0NUc0JoZ0VnQ0NBS093R0VBU0FJUVk0QmFnd0JDeUFBSUFZZ0htcEJBblJxSWdnZ0Nqc0JoQUVnQ0VHR0FXb0xJQWs3QVFBTElBWkJBV29pQmlBaVJ3MEFDd3NnSFVFQmFpSWRRUVJIRFFBTFFRQWhEQU5BSUJBZ0FDQU1RUUowSWdKcUtBSjBOZ0lJSUF4QkFVdEJBM1FoQ1NBTVFRTjBRUWh4SVFjQ1FDQUJJQUpxS0FLd0FTSUNRUUpOQkVBQ1FBSkFBa0FnQWtFQmF3NENBUUlBQ3lBRklBQWdERUVFZEdwQmhBRnFJQkJCQ0dvZ0ZTQVVJQWNnQ1VFSVFRZ1FEZ3dEQ3lBRklBQWdERUVFZEdvaUFrR0VBV29nRUVFSWFpQVZJQlFnQnlBSlFRaEJCQkFPSUFVZ0FrR01BV29nRUVFSWFpQVZJQlFnQnlBSlFRUnlRUWhCQkJBT0RBSUxJQVVnQUNBTVFRUjBhaUlDUVlRQmFpQVFRUWhxSUJVZ0ZDQUhJQWxCQkVFSUVBNGdCU0FDUVlnQmFpQVFRUWhxSUJVZ0ZDQUhRUVJ5SUFsQkJFRUlFQTRNQVFzZ0JTQUFJQXhCQkhScUlnaEJoQUZxSUJCQkNHb2dGU0FVSUFjZ0NVRUVRUVFRRGlBRklBaEJpQUZxSUJCQkNHb2dGU0FVSUFkQkJISWlCaUFKUVFSQkJCQU9JQVVnQ0VHTUFXb2dFRUVJYWlBVklCUWdCeUFKUVFSeUlnSkJCRUVFRUE0Z0JTQUlRWkFCYWlBUVFRaHFJQlVnRkNBR0lBSkJCRUVFRUE0TElBeEJBV29pREVFRVJ3MEFDd3dHQ3lBSUlRY2dDU0VHQzBFQklSc2dCaUFNYWlJSVFSQjBRUkIxUVlCQWEwSC8vd0JMRFFVZ0J5QU5haUlHUVJCMFFSQjFRWUFRYWtIL0gwc05CU0FDSUE4UUZDSUhSUTBGSUFBZ0Jqc0JzZ0VnQUNBSU93R3dBU0FBSUFjMkFuUWdBQ0FQTmdKa0lBQWdCellDZkNBQUlBODJBbXdnQUNBQUtBS3dBU0lHTmdLc0FTQUFJQVkyQXFnQklBQWdCallDcEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FCS0FLVUFTRU9JQUV2QWFZQklRd2dBUzhCcEFFaEN5QUFLQUlFSVFrQ1FBSkFJQUFvQXRBQklnZEZEUUFnQnlnQ0JDQUpSdzBBUVFFaEVTQUhLQUlBUVFWTEJFQkJmeUVJUVFBaEJ3d0NDeUFIS0FKc0lRZ2dCeWdDckFFaEJ3d0JDMEYvSVFoQkFDRUhJQUFvQXN3QklncEZCRUJCQUNFUkRBRUxJQWtnQ2lnQ0JFY0VRRUVBSVJFTUFRdEJBU0VSSUFvb0FnQkJCVXNOQUNBS0tBSnNJUWdnQ2lnQ3NBRWhCd3NDUUNBSUlBNUdSUVJBSUFaQkVIWWhDQUovQWtBQ1FDQUFLQUxNQVNJTlJRMEFJQTBvQWdRZ0NVY05BQ0FOS0FJQVFRVkxEUUVnRFNnQ3ZBRWlFVUVRZGlFS0lBMG9BbkFNQWdzZ0VVVU5Bd3RCQUNFUlFRQWhDa0YvQ3lFTklBNGdEMFlpQ1NBTklBNUdha0VCUndSQUlBb2dDQ0FLUVJCMFFSQjFJZzBnQ0VFUWRFRVFkVW9pQ0JzaUNTQUdRUkIxSWdvZ0RTQUtJQW9nRFVvYklBZ2JJZ2dnQjBFUWRTSUtJQWdnQ2tvYklBbEJFSFJCRUhVZ0NrZ2JJUWdnRVNBR0lCRkJFSFJCRUhVaUNpQUdRUkIwUVJCMUlnMUtJZ1liSWdsQi8vOERjU0FOSUFvZ0RTQU5JQXBLR3lBR0d5SUdJQWRCRUhSQkVIVWlCeUFHSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVHREFJTElBa05BU0FOSUE1R0JFQWdFVUgvL3dOeElBcEJFSFJ5SVFZZ0NpRUlEQUlMQ3lBSFFSQjJJUWdnQnlFR0N5QUdJQXRxSWdkQkVIUkJFSFZCZ0VCclFmLy9BRXNOQlNBSUlBeHFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MEZJQUlnRGhBVUlnSkZEUVVnQUNBR093SENBU0FBSUFjN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKNElBQWdEallDY0NBQUlBNDJBbWdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0tnQVNBQUlBWTJBcHdCSUFBZ0JqWUNtQUVnQUVHVUFXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVJUVJBUURpQVFJQUFvQW5nMkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFoQkFFRUlRUkFRRGd3RUMwRUFJUWhCZnlFV0N5QVBJQk5HSWdzZ0V5QVdSbXBCQVVjRVFDQUtJQWNnQ2tFUWRFRVFkU0lMSUFkQkVIUkJFSFVpRGtvaUJ4c2lDaUFPSUFzZ0RpQUxJQTVJR3lBSEd5SUhJQWhCRUhVaUN5QUhJQXRLR3lBS1FSQjBRUkIxSUF0SUd5RUhJQWtnQmlBSlFSQjBRUkIxSWdvZ0JrRVFkRUVRZFNJTFNpSUdHeUlKUWYvL0EzRWdDeUFLSUFzZ0NpQUxTQnNnQmhzaUJpQUlRUkIwUVJCMUlnZ2dCaUFJU2hzZ0NVRVFkRUVRZFNBSVNCc2hCZ3dCQ3lBTERRQWdDRUVRZGlFSElBZ2hCZ3RCQVNFYklBWWdER29pQ0VFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0RXb2lCa0VRZEVFUWRVR0FFR3BCL3g5TERRSWdBaUFURUJRaUIwVU5BaUFBSUFZN0FhSUJJQUFnQ0RzQm9BRWdBQ0FITmdKMElBQWdFellDWkNBQUlBYzJBbmdnQUNBVE5nSm9JQUFnQUNnQ29BRWlEellDbkFFZ0FDQVBOZ0tZQVNBQUlBODJBcFFCSUFBZ0R6WUNrQUVnQUNBUE5nS01BU0FBSUE4MkFvZ0JJQUFnRHpZQ2hBRWdBU2dDbEFFaERpQUJMd0dtQVNFTklBRXZBYVFCSVF3Q2Z3SkFBa0FDUUNBQUtBTElBU0lHQkVBZ0JpZ0NCQ0FBS0FJRVJnUkFJQVlvQWdCQkJVMEVRQ0FHS0FLNEFTSUxRUkIySVFjZ0JpZ0NjQ0FPUncwRUlBc2hDUXdEQzBGL0lSSkJBQ0VKUVFBaEIwRUFJUXRCQUNFS0lBNUJmMFlOQWd3RUMwRi9JUkpCQUNFSlFRQWhCMEVBSVF0QkFDRUtJQTVCZjBZTkFRd0RDMEYvSVJKQkFDRUpRUUFoQjBFQUlRdEJBQ0VLSUE1QmYwY05BZ3NnQ1VILy93TnhJQWRCRUhSeURBSUxJQVlvQW1naEVpQUdLQUtnQVNFS0lBY2hDUXNnRDBFUWRpRUlJQTRnRTBZaUJpQU9JQkpHYWtFQlJ3UkFJQWdnQ1NBSlFSQjBRUkIxSWdrZ0NFRVFkRUVRZFVnaUJ4c2lDQ0FKSUE5QkVIVWlCaUFKSUFZZ0NVZ2JJQWNiSWdZZ0NrRVFkU0lISUFZZ0Iwb2JJQWhCRUhSQkVIVWdCMGdiSVFjZ0R5QUxJQXRCRUhSQkVIVWlDeUFQUVJCMFFSQjFJZ2xJSWdZYklnaEIvLzhEY1NBTElBa2dDeUFKSUF0SUd5QUdHeUlHSUFwQkVIUkJFSFVpQ1NBR0lBbEtHeUFJUVJCMFFSQjFJQWxJR3d3QkN5QUlJQXBCRUhZZ0Joc2hCeUFQSUFvZ0Joc0xJQXhxSWdoQkVIUkJFSFZCZ0VCclFmLy9BRXNOQWlBSElBMXFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MENJQUlnRGhBVUlnSkZEUUlnQUNBR093SENBU0FBSUFnN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKOElBQWdEallDY0NBQUlBNDJBbXdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0t3QVNBQUlBWTJBcXdCSUFBZ0JqWUNxQUVnQUVHa0FXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVRUVFnUURpQVFJQUFvQW53MkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFCQkNFRVFRUWdRRGd3QkN3SkFJQVpGQkVBZ0VrVUVRRUVBSVFrTUFnc2dGa1VFUUVFQUlRa01BZ3NnQ0VILy93TnhJQWRCRUhSeUlBMXlSUVJBUVFBaENRd0NDMEVBSVFrZ0VVSC8vd054SUFwQkVIUnlJQTl5UlEwQkN5QUJMd0dpQVNFTElBRXZBYUFCSVFrQ1FBSkFBa0FDUUFKQUlBQW9BdEFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVME5BUXdDQ3dKQUlBQW9BdFFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVc05BaUFHS0FKd0lSY2dCaWdDd0FFaERBd0RDMEYvSVJjZ0VrVU5BaUFXRFFJTUF3c2dCaWdDYkNFWElBWW9BcXdCSVF3TUFRdEJmeUVYQ3lBUElCTkdJZ1lnRFNBVFJpSU5haUFUSUJkR2FrRUJSd1JBSUFvZ0J5QUtRUkIwUVJCMUlnb2dCMEVRZEVFUWRTSU5TaUlHR3lJSElBMGdDaUFOSUFvZ0RVZ2JJQVliSWdZZ0RFRVFkU0lLSUFZZ0Nrb2JJQWRCRUhSQkVIVWdDa2diSVFjZ0VTQUlJQkZCRUhSQkVIVWlDaUFJUVJCMFFSQjFJZzFLSWdZYklnaEIvLzhEY1NBTklBb2dEU0FLSUExSUd5QUdHeUlHSUF4QkVIUkJFSFVpQ2lBR0lBcEtHeUFJUVJCMFFSQjFJQXBJR3lFSURBRUxJQWdnRVNBTkd5RUlJQWNnQ2lBTkd5RUhJQTBOQUNBR0RRQWdERUVRZGlFSElBd2hDQXRCQVNFYklBZ2dDV29pREVFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0Myb2lDVUVRZEVFUWRVR0FFR3BCL3g5TERRSUxJQUlnRXhBVUlnSkZCRUJCQVNFYkRBSUxJQUFnQ1RzQndnRWdBQ0FNT3dIQUFTQUFJQUkyQW5RZ0FDQVROZ0prSUFBZ0FqWUNnQUVnQUNBQ05nSjhJQUFnQWpZQ2VDQUFJQk0yQW5BZ0FDQVROZ0pzSUFBZ0V6WUNhQ0FBSUFBb0FzQUJJZ1kyQXJ3QklBQWdCallDdUFFZ0FDQUdOZ0swQVNBQUlBWTJBckFCSUFBZ0JqWUNyQUVnQUNBR05nS29BU0FBSUFZMkFxUUJJQUFnQmpZQ29BRWdBQ0FHTmdLY0FTQUFJQVkyQXBnQklBQWdCallDbEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FRSUFJMkFnZ2dCU0FBUVlRQmFpQVFRUWhxSUJVZ0ZFRUFRUUJCRUVFUUVBNExRUUFoR3lBQUtBTEVBVUVCU3cwQUlBQW9BZ0FFUUNBRUlBTWdCU0FCUWNnQ2FoQllEQUVMSUFRZ0JSQWJDeUFRUVNCcUpBQWdHd3VUQ3dFUGZ5QUFLQUlBSWhFZ0FTQUJJQUFvQWdRaUNuQWlBV3NpQkVFSWRHb2dBVUVFZEdvaEJTQUtRUVIwSVFzZ0FDZ0NDQ0FLYkNJQVFRWjBJUVlnQVVFRGRDRUpJQUJCQ0hRaERDQUVRUVowSVJJZ0NrRUNkRUg4Ly8vL0EzRkJBblFoRUFOQUlBVWdEa0VDZENJQVFmQXBhaWdDQUNJQklBdHNhaUFBUWJBcGFpZ0NBQ0lBYWlFRUlBSWdBVUVFZEdvZ0FHb2hBQUpBSUFNZ0RrRUdkR29pQVNnQ0FDSUhRZi8vL3dkSEJFQWdBU2dDQkNFSUlBQXRBQUVoRFNBRUlBY2dBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BZ2doQnlBQUxRQUNJUThnQkNBSUlBMXFRYkF1YWkwQUFEb0FBU0FCS0FJTUlRZ2dBQzBBQXlFTklBUWdCeUFQYWtHd0xtb3RBQUE2QUFJZ0JDQUlJQTFxUWJBdWFpMEFBRG9BQXlBQktBSVVJUWNnQUMwQUVTRUlJQVFnQzJvaUJDQUJLQUlRSUFBdEFCQnFRYkF1YWkwQUFEb0FBQ0FCS0FJWUlRMGdBQzBBRWlFUElBUWdCeUFJYWtHd0xtb3RBQUE2QUFFZ0FTZ0NIQ0VISUFBdEFCTWhDQ0FFSUEwZ0QycEJzQzVxTFFBQU9nQUNJQVFnQnlBSWFrR3dMbW90QUFBNkFBTWdBU2dDSkNFSElBQXRBQ0VoQ0NBRUlBdHFJZ1FnQVNnQ0lDQUFMUUFnYWtHd0xtb3RBQUE2QUFBZ0FTZ0NLQ0VOSUFBdEFDSWhEeUFFSUFjZ0NHcEJzQzVxTFFBQU9nQUJJQUVvQWl3aEJ5QUFMUUFqSVFnZ0JDQU5JQTlxUWJBdWFpMEFBRG9BQWlBRUlBY2dDR3BCc0M1cUxRQUFPZ0FESUFFb0FqUWhCeUFBTFFBeElRZ2dCQ0FMYWlJRUlBRW9BakFnQUMwQU1HcEJzQzVxTFFBQU9nQUFJQUVvQWpnaERTQUFMUUF5SVE4Z0JDQUhJQWhxUWJBdWFpMEFBRG9BQVNBQktBSThJUUVnQUMwQU15RUFJQVFnRFNBUGFrR3dMbW90QUFBNkFBSWdCQ0FBSUFGcVFiQXVhaTBBQURvQUF3d0JDeUFBS0FJUUlRRWdCQ0FBS0FJQU5nSUFJQVFnRUdvaUJDQUJOZ0lBSUFBb0FqQWhBU0FFSUJCcUlnUWdBQ2dDSURZQ0FDQUVJQkJxSUFFMkFnQUxJQTVCQVdvaURrRVFSdzBBQ3lBTUlCRnFJQkpxSUFscUloQWdCbW9oRVNBS1FRTjBRZmovLy84SGNTSUxRUUoyUVFKMElRNUJFQ0VLQTBBZ0NrRUNkRUVNY1NJQVFmQXBhaWdDQUNJQklBdHNJQUJCc0NscUtBSUFJZ0JxSUJFZ0VDQUtRUk5MSWdVYmFpRUVJQUpCd0FKQmdBSWdCUnRxSUFGQkEzUWdBR3BxSVFBQ1FDQURJQXBCQm5ScUlnRW9BZ0FpQlVILy8vOEhSd1JBSUFFb0FnUWhCaUFBTFFBQklRa2dCQ0FGSUFBdEFBQnFRYkF1YWkwQUFEb0FBQ0FCS0FJSUlRVWdBQzBBQWlFTUlBUWdCaUFKYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VHSUFBdEFBTWhDU0FFSUFVZ0RHcEJzQzVxTFFBQU9nQUNJQVFnQmlBSmFrR3dMbW90QUFBNkFBTWdBU2dDRkNFRklBQXRBQWtoQmlBRUlBdHFJZ1FnQVNnQ0VDQUFMUUFJYWtHd0xtb3RBQUE2QUFBZ0FTZ0NHQ0VKSUFBdEFBb2hEQ0FFSUFVZ0JtcEJzQzVxTFFBQU9nQUJJQUVvQWh3aEJTQUFMUUFMSVFZZ0JDQUpJQXhxUWJBdWFpMEFBRG9BQWlBRUlBVWdCbXBCc0M1cUxRQUFPZ0FESUFFb0FpUWhCU0FBTFFBUklRWWdCQ0FMYWlJRUlBRW9BaUFnQUMwQUVHcEJzQzVxTFFBQU9nQUFJQUVvQWlnaENTQUFMUUFTSVF3Z0JDQUZJQVpxUWJBdWFpMEFBRG9BQVNBQktBSXNJUVVnQUMwQUV5RUdJQVFnQ1NBTWFrR3dMbW90QUFBNkFBSWdCQ0FGSUFacVFiQXVhaTBBQURvQUF5QUJLQUkwSVFVZ0FDMEFHU0VHSUFRZ0Myb2lCQ0FCS0FJd0lBQXRBQmhxUWJBdWFpMEFBRG9BQUNBQktBSTRJUWtnQUMwQUdpRU1JQVFnQlNBR2FrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQXRBQnNoQUNBRUlBa2dER3BCc0M1cUxRQUFPZ0FDSUFRZ0FDQUJha0d3TG1vdEFBQTZBQU1NQVFzZ0FDZ0NDQ0VCSUFRZ0FDZ0NBRFlDQUNBRUlBNXFJZ1FnQVRZQ0FDQUFLQUlZSVFFZ0JDQU9haUlFSUFBb0FoQTJBZ0FnQkNBT2FpQUJOZ0lBQ3lBS1FRRnFJZ3BCR0VjTkFBc0w1Z0VCQjM4Q1FDQUFLQUlBSWdWRkRRQWdBRUVCTmdJOElBQW9BamdOQUNBQUtBSWNJUVpCLy8vLy93Y2hBZ05BQTBBZ0JTQURRU2hzYWlJRUtBSVlCRUFnQkNBQklBUW9BaEFpQkNBQ1NDSUhHeUVCSUFRZ0FpQUhHeUVDQ3lBRFFRRnFJZ01nQmswTkFDQUJSUTBDSUFBb0Fnd2dBQ2dDRUNJRFFRUjBhaUlDSUFFb0FnQTJBZ0FnQWlBQktBSWtOZ0lNSUFJZ0FTZ0NIRFlDQkNBQ0lBRW9BaUEyQWdnZ0FDQURRUUZxTmdJUVFRQWhBeUFCUVFBMkFoZ2dBU2dDRkNFRVFRQWhBVUgvLy8vL0J5RUNJQVFOQUFzZ0FDQUFLQUlzUVg5cU5nSXNEQUFBQ3dBTEM5d0dBUXAvSUFCQ0FEY0NFQUpBQWtBQ1FDQURSUTBBQWtBQ1FDQUJJQUFvQWpBaUEwY0VRQ0FEUVFGcUlBQW9BaUFpQkhBaUNTQUJSZzBCSUFBb0FnQWdBQ2dDSEVFb2JHb29BZ0FoQ3dOQUFrQUNRQ0FBS0FJb0lnY0VRQ0FBS0FJQUlRaEJBQ0VEQTBBZ0NDQURRU2hzYWlJRktBSVVRWDlxUVFGTkJFQWdCU0FGS0FJTUlnVWdCRUVBSUFVZ0NVc2JhellDQ0FzZ0EwRUJhaUlESUFkSERRQUxJQWNnQUNnQ0dFa05Ba0YvSVFWQkFDRURRUUFoQkFOQUlBZ2dBMEVvYkdvaUJpZ0NGRUYvYWtFQlRRUkFJQVlvQWdnaUJpQUVJQVZCZjBZZ0JpQUVTSElpQmhzaEJDQURJQVVnQmhzaEJRc2dBMEVCYWlJRElBZEhEUUFMSUFWQkFFNE5BVUVCRHd0QkFDRUhJQUFvQWhnTkFVRUJEd3NnQ0NBRlFTaHNhaUlEUVFBMkFoUWdBQ0FIUVg5cUlnYzJBaWdnQXlnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FDZ0NMQ0lGSUFBb0Fod2lDRThFUUNBQUtBSTREUVlnQUNnQ0FDRU1BMEJCQUNFRVFmLy8vLzhISVFaQkFDRURBMEFnRENBRFFTaHNhaUlLS0FJWUJFQWdDaUFFSUFvb0FoQWlDaUFHU0NJTkd5RUVJQW9nQmlBTkd5RUdDeUFEUVFGcUlnTWdDRTBOQUFzQ1FDQUVSUTBBSUFBb0Fnd2dBQ2dDRUNJR1FRUjBhaUlESUFRb0FnQTJBZ0FnQXlBRUtBSWtOZ0lNSUFNZ0JDZ0NIRFlDQkNBRElBUW9BaUEyQWdnZ0FDQUdRUUZxTmdJUUlBUkJBRFlDR0NBRUtBSVVEUUFnQUNBRlFYOXFJZ1UyQWl3TElBVWdDRThOQUFzTElBQW9BZ0FpQkNBSVFTaHNhaUlESUFrMkFnd2dBMEtBZ0lDQUVEY0NFQ0FEUVFBMkFoZ2dBeUFKTmdJSUlBQWdCMEVCYWpZQ0tDQUFJQVZCQVdvMkFpd2dCQ0FJUVFGcUVDY2dDVUVCYWlBQUtBSWdJZ1J3SWdrZ0FVY05BQXNDUUNBQUtBSVFJZ2xGRFFBZ0FDZ0NBQ0lGSUFBb0Fod2lCRUVvYkdvaUNDZ0NBQ0VISUFBb0Fnd2hCa0VBSVFNRFFDQUhJQVlnQTBFRWRHb29BZ0JIQkVBZ0NTQURRUUZxSWdOSERRRU1BZ3NMSUFSRkRRQkJBQ0VEQTBBZ0N5QUZJQU5CS0d4cUlna29BZ0JIQkVBZ0JDQURRUUZxSWdOSERRRU1BZ3NMSUFrZ0J6WUNBQ0FJSUFzMkFnQUxJQUlOQlNBQUtBSXdJUU1NQWdzZ0FrRUFSdzhMSUFJTkF3c2dBU0FEUmcwQUlBQWdBU0FBS0FJZ0lnQnFRWDlxSUFCd05nSXdDMEVBRHdzRFFBd0FBQXNBQ3lBQUlBRTJBakJCQUF0MUFRTi9Ba0FnQUNnQ0FDSUJSUTBBSUFBb0FoeEJmMFlOQUFOQUlBRWdBa0VvYkNJRGFpZ0NCQkFFSUFBb0FnQWlBU0FEYWtFQU5nSUVJQUpCQVdvaUFpQUFLQUljUVFGcVNRMEFDd3NnQVJBRUlBQkJBRFlDQUNBQUtBSUVFQVFnQUVFQU5nSUVJQUFvQWd3UUJDQUFRUUEyQWd3TGd3RUJBMzhDUUNBQUtBSUFJZ1pGRFFBZ0FDZ0NIRUYvUmcwQUEwQWdCaUFIUVNoc0lnaHFLQUlFRUFRZ0FDZ0NBQ0lHSUFocVFRQTJBZ1FnQjBFQmFpSUhJQUFvQWh4QkFXcEpEUUFMQ3lBR0VBUWdBRUVBTmdJQUlBQW9BZ1FRQkNBQVFRQTJBZ1FnQUNnQ0RCQUVJQUJCQURZQ0RDQUFJQUVnQWlBRElBUWdCUkJkQzRBQ0FRSi9JQUFnQlRZQ09DQUFJQVEyQWlBZ0FFTC8vd00zQWlRZ0FFSUFOd0lzSUFBZ0EwRUJJQU5CQVVzYklnTTJBaGdnQUNBRElBSWdCUnNpQWpZQ0hDQUFRYWdGRUFvaUF6WUNBRUgvL3dNaEJBSkFJQU5GRFFCQkFDRUZJQU5CQUVHb0JSQUhJUVlnQWtGL1J3UkFJQUZCZ0FOc1FTOXlJUVZCQUNFREEwQWdCaUFEUVNoc2FpSUhJQVVRQ2lJQk5nSUVJQUZGRFFJZ0J5QUJRUUFnQVd0QkQzRnFOZ0lBSUFNZ0Fra2hBU0FEUVFGcUlRTWdBUTBBQ3lBQ1FRUjBRUkJxSVFVTElBQkJ4QUFRQ2lJQk5nSUVJQUFnQlJBS0lnSTJBZ3dnQWtVTkFDQUJSUTBBUVFBaEJDQUJRUUJCeEFBUUJ4b2dBRUlBTndJUUN5QUVDOU1CQVFkL1FRRWhBUUpBSUFBb0FqZ05BQ0FBS0FJY0lRVWdBQ2dDQUNFR1FmLy8vLzhISVFOQkFDRUJBMEFnQmlBQlFTaHNhaUlFS0FJWUJFQWdCQ0FDSUFRb0FoQWlCQ0FEU0NJSEd5RUNJQVFnQXlBSEd5RURDeUFCUVFGcUlnRWdCVTBOQUFzZ0FrVUVRRUVCRHdzZ0FDZ0NEQ0FBS0FJUUlnTkJCSFJxSWdFZ0FpZ0NBRFlDQUNBQklBSW9BaVEyQWd3Z0FTQUNLQUljTmdJRUlBRWdBaWdDSURZQ0NDQUFJQU5CQVdvMkFoQkJBQ0VCSUFKQkFEWUNHQ0FDS0FJVURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQkMvVUVBUWgvSUFBb0FpZ2lCQVJBSUFBb0FnQWhCd05BSUFjZ0JVRW9iR29pQmlnQ0ZFRi9ha0VCVFFSQUlBWWdCaWdDRENJSUlBSkxCSDhnQ0NBQUtBSWdhd1VnQ0FzMkFnZ0xJQVZCQVdvaUJTQUVSdzBBQ3d0QkFDRUVBa0FnQVNnQ0FFVU5BQ0FCS0FJRUlnVkJBa3NOQUVFQUlRY2dBaUVHQTBBQ1FBSkFBa0FnQlVFQ1J3UkFJQUVnQjBFTWJHb29BZ2doQkFKQUlBVkZCRUFnQmlBRWF5SUdRWDlLRFFFZ0FDZ0NJQ0FHYWlFR0RBRUxJQVFnQm1vaUJrRUFJQUFvQWlBaUJTQUdJQVZJRzJzaEJnc2dCaUVKSUFZZ0Frc0VRQ0FHSUFBb0FpQnJJUWtMSUFBb0FoZ2lDa1VFUUVFQkR3c2dBQ2dDQUNFSVFRQWhCUU5BSUFnZ0JVRW9iR29pQkNnQ0ZDSUxRWDlxUVFGTkJFQWdCQ2dDQ0NBSlJnMERDMEVCSVFRZ0JVRUJhaUlGSUFwSERRQUxEQVVMUVFFaEJDQUFLQUlZSWdsRkRRUWdBU0FIUVF4c2FpZ0NEQ0VLSUFBb0FnQWhDRUVBSVFVRFFDQUlJQVZCS0d4cUlnUW9BaFJCQTBZRVFDQUVLQUlJSUFwR0RRTUxRUUVoQkNBRlFRRnFJZ1VnQ1VjTkFBc01CQXNnQlVFQVNBUkFRUUVQQzBFQklRUWdDMEVCU3cwQkRBTUxRUUVoQkNBRlFRQklEUUlMSUFjZ0F5SUVTUVJBQTBBZ0FDZ0NCQ0lKSUFSQkFuUnFJQWtnQkVGL2FpSUVRUUowYWlnQ0FEWUNBQ0FFSUFkTERRQUxJQUFvQWdBaENBc2dBQ2dDQkNBSFFRSjBhaUFJSUFWQktHd2lDV28yQWdBZ0IwRUJhaUlISVFRZ0J5SUZJQU5OQkVBRFFDQUFLQUlFSWdnZ0JVRUNkR29vQWdBaUNpQUFLQUlBSUFscVJ3UkFJQWdnQkVFQ2RHb2dDallDQUNBRVFRRnFJUVFMSUFWQkFXb2lCU0FEVFEwQUN3dEJBQ0VFSUFFZ0IwRU1iR29vQWdRaUJVRURTUTBBQ3dzZ0JBc0hBRUhFR2hBS0M3Y0JBUUovSXdCQkVHc2lCaVFBSUFaQkFEWUNEQ0FBSUFFZ0FpQUdRUXhxRUNvaUIwRjljVVVFUUFOQUlBQWdBU0FHS0FJTUlnZHFJZ0VnQWlBSGF5SUNJQVpCREdvUUtpSUhRWDF4UlEwQUN3c2dCMEVCUmdSQUlBUWdBQ2dDRUNJQktBSTBRUVIwTmdJQUlBVWdBU2dDT0VFRWREWUNBQ0FESUFCQnhBbHFJZ0FvQWhRaUFTQUFLQUlRU1FSL0lBQWdBVUVCYWpZQ0ZDQUFLQUlNSUFGQkJIUnFCVUVBQ3lnQ0FEWUNBQXNnQmtFUWFpUUFJQWNMU1FFQmZ5QUFRUUJCeEJvUUJ5SUNRYlFLYWtFQk5nSUFJQUpDZ0lLQWdJQUVOd0lFSUFCQndCQVFDaUlDTmdLd0dpQUNSUVJBUVFFUEN5QUJCRUFnQUVFQk5nTEFDUXRCQUF1NkJBRUpmd0pBQWtBZ0FVRUVTUTBBSUFBdEFBQU5BQ0FBTFFBQkRRQWdBQzBBQWlJSFFRRkxEUUJCQXlFRUlBQkJBMm9oQlVFQ0lRaEJmU0VNQWtBRFFDQUZJUVlDZnlBSVFRRnFJQWRCL3dGeElnVkZEUUFhUVFBaEJ5QUZRUUZHUVFBZ0NFRUJTeHNOQWtFQUN5RUlJQVJCZjNNaERDQUdRUUZxSVFVZ0JpMEFBQ0VISUFSQkFXb2lCQ0FCUncwQUN5QURJQUUyQWdCQkFROExJQVFoQ2tFQUlRaEJBQ0VGQTBCQkFTQUlJQWNnQmkwQUFDSUxSV29pQ1VFQ1Joc2dDQ0FMUVFOR0d5RUlJQXBCQVdvaENnSkFJQXRCQVVjTkFDQUpRUUpKRFFBZ0FpQUtJQXhxSUFsQmYzTnFJZ0UyQWd4QkFDQUpRWDFxSWdZZ0JpQUpTeHNoQnd3REMwRUFJQWtnQ3hzaEIwRUJJQVVnQ1VFQ1N4c2dCU0FMR3lFRklBWkJBV29oQmlBQklBcEhEUUFMSUFJZ0FTQU1haUFIYXlJQk5nSU1EQUVMSUFJZ0FUWUNERUVCSVFoQkFDRUhDeUFDUVFBMkFoQWdBa0VBTmdJSUlBSWdBQ0FFYWlJQU5nSUVJQUlnQURZQ0FDQURJQVFnQjJvZ0FXbzJBZ0JCQVNFREFrQWdCUTBBUVFBaEF5QUlSUTBBSUFJQ2Z5QUNLQUlNSWdGRkJFQWdBQ0VFUVFBTUFRc2dBQ0VFUVFBaEJnTkFJQUZCZjJvaEFTQUVMUUFBSVFVQ2Z3SkFJQVpCQWtjTkFDQUZRUU5HQkVBZ0FVVUVRRUVCRHdzZ0JDMEFBVUVEU3dSQVFRRVBDMEVBSVFZZ0JFRUJhZ3dDQ3lBRlFRTlBEUUJCQVE4TElBQWdCVG9BQUVFQUlBWkJBV29nQlJzaEJpQUFRUUZxSVFBZ0JFRUJhZ3NoQkNBQkRRQUxJQUlvQWd3TElBQWdCR3RxTmdJTUN5QURDd3Z0TWhrQVFZWUlDOG9GWmlBbUVBWUlaUmhsR0VNUVF4QkRFRU1RUXhCREVFTVFReEFpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNBQUFBQUFBQUFBQWFrQktNQ29vQ2lCcE9HazRTU2hKS0NrZ0tTQUpHQWtZYURCb01HZ3dhREJJSUVnZ1NDQklJQ2dZS0Jnb0dDZ1lDQkFJRUFnUUNCQm5LR2NvWnlobktHY29aeWhuS0djb1J4aEhHRWNZUnhoSEdFY1lSeGhIR0c1Z1RsZ3VVQTVRYmxoT1VDNUlEa2dOUUExQVRVaE5TQzFBTFVBTk9BMDRiVkJ0VUUxQVRVQXRPQzA0RFRBTk1HdElhMGhyU0d0SWEwaHJTR3RJYTBoTE9FczRTemhMT0VzNFN6aExPRXM0S3pBck1Dc3dLekFyTUNzd0t6QXJNQXNvQ3lnTEtBc29DeWdMS0Fzb0N5Z0FBQUFBTDJndmFCQ0FVSUF3Z0JCNGNJQlFlREI0RUhCd2VGQndNSEFRYUc5d2IzQlBhRTlvTDJBdllBOWdEMkJ2YUc5b1QyQlBZQzlZTDFnUFdBOVlBQUFBQUFBQUFBQm1PRVlnSmlBR0VHWXdSaGdtR0FZSVpTaGxLQ1VRSlJCa0lHUWdaQ0JrSUdRWVpCaGtHR1FZUXhCREVFTVFReEJERUVNUVF4QkRFQUFBQUFBQUFBQUFhVWhKT0NrNENUQUlLQWdvU0RCSU1DZ3dLREFJSUFnZ1owQm5RR2RBWjBCSEtFY29SeWhIS0Njb0p5Z25LQ2NvQnhnSEdBY1lCeGdBQUFBQWJYaHRlRzZBVG9BdWdBNkFMbmdPZUU1NExuQk5jRTF3RFhBTmNHMXdiWEJOYUUxb0xXZ3RhQTFvRFdodGFHMW9UV0JOWUMxZ0xXQU5ZQTFnREZnTVdBeFlERmhNV0V4WVRGaE1XQ3hZTEZnc1dDeFlERkFNVUF4UURGQnNZR3hnYkdCc1lFeFFURkJNVUV4UUxGQXNVQ3hRTEZBTVNBeElERWdNU0d0WWExaHJXR3RZYTFocldHdFlhMWhMU0V0SVMwaExTRXRJUzBoTFNFdElLMGdyU0N0SUswZ3JTQ3RJSzBnclNBdEFDMEFMUUF0QUMwQUxRQXRBQzBCclVHdFFhMUJyVUd0UWExQnJVR3RRUzBCTFFFdEFTMEJMUUV0QVMwQkxRQ3RBSzBBclFDdEFLMEFyUUN0QUswQUxPQXM0Q3pnTE9BczRDemdMT0FzNEFFSGdEUXV1Q1FZWVJqZ21PQVlRWmtoR01DWXdCZ2dsS0NVb1JTaEZLQ1VnSlNCRklFVWdKUmdsR0dWQVpVQkZHRVVZSlJBbEVHUTRaRGhrT0dRNFpEQmtNR1F3WkRCa0tHUW9aQ2hrS0dRZ1pDQmtJR1FnWkJoa0dHUVlaQmhFRUVRUVJCQkVFQ1FJSkFna0NDUUlCQUFFQUFRQUJBQUFBQXFBYW9CS2dDcUFDbmhxZUVwNEtuZ0tjR3B3U25BcWNBcG9LV2dwYUFsZ0NXQkphRWxvS1dBcFlBbFlDVmhwYUdsb1NXQkpZQ2xZS1ZnSlVBbFFhR0JvWUdoZ2FHQklXRWhZU0ZoSVdDaFFLRkFvVUNoUUNFZ0lTQWhJQ0Vob1dHaFlhRmhvV0VoUVNGQklVRWhRS0Vnb1NDaElLRWdJUUFoQUNFQUlRQWM0QnpnSE9BYzRCemdIT0FjNEJ6Z0hNQWN3QnpBSE1BY3dCekFITUFjd1IwaEhTRWRJUjBoSFNFZElSMGhIU0Fjb0J5Z0hLQWNvQnlnSEtBY29CeWhuVUdkUVoxQm5VR2RRWjFCblVHZFFSMEJIUUVkQVIwQkhRRWRBUjBCSFFDZEFKMEFuUUNkQUowQW5RQ2RBSjBBSElBY2dCeUFISUFjZ0J5QUhJQWNnQmdnbUNBQUFCZ0FHRUNZUVJoQUFBQVlZSmhoR0dHWVlCaUFtSUVZZ1ppQUdLQ1lvUmlobUtBWXdKakJHTUdZd0JqZ21PRVk0WmpnR1FDWkFSa0JtUUFaSUpraEdTR1pJQmxBbVVFWlFabEFHV0NaWVJsaG1XQVpnSm1CR1lHWmdCbWdtYUVab1ptZ0djQ1p3Um5CbWNBWjRKbmhHZUdaNEJvQW1nRWFBWm9BQUFFTVFBZ0FDQUNFSUlRZ2hDQ0VJWnlCbklFZ2dLQ0JIR0VjWUp4Z25HQVlnQmlBR0lBWWdCaGdHR0FZWUJoZ0dFQVlRQmhBR0VHWVlaaGhtR0dZWUpoQW1FQ1lRSmhBR0NBWUlCZ2dHQ0FBQVpWVkVSRFEwSXlNakl4TVRFeE1CQVFFQkFRRUJBUUVCQVFFQkFRRUJBUG5wMmNqSXVMaW5wNmVubDVlWGw0YUdob2FHaG9hR2RuWjJkbloyZG5ibTFzYTJwYVdWbFlTRWhJUjBkSFIwWkdSa1pGUlVWRlJEUTBORFEwTkRRek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEV3TURBd01EQXdNRDFyYkZ4YVdsbFpXRWhJU0VWRlJVVkVSRVJFUUVCQVFFYzNOemMzTnpjM05qWTJOalkyTmpZek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEU4VzFwUVdVbEhSME5EUWtKSU9EZzROalkyTmpVMU5UVTBORFEwTVRFeE1UdFpXa3BJU0VKQ1FVRkFRRWMzTnpjMk5qWTJOVFUxTlRRME5EUXpNek16T21CaFVWaElTRWhKT1RrNU9UazVPVGMzTnpjM056YzNOalkyTmpZMk5qWTFOVFUxTlRVMU5UUTBORFEwTkRRME16TXpNek16TXpNeU1qSXlNakl5TWpsZ1lWRlhSMGRIU0RnNE9EZzRPRGcyTmpZMk5qWTJOalEwTkRRME5EUTBNek16TXpNek16TXlNakl5TWpJeU1qVWxKU1VsSlNVbEpTVWxKU1VsSlNVb1lHSlNVVUZCUVVjM056YzNOemMzTmpZMk5qWTJOall6TXpNek16TXpNelVsSlNVbEpTVWxKU1VsSlNVbEpTVWtKQ1FrSkNRa0pDUWtKQ1FrSkNRa0lXQm5WMUpDUWtKRk5UVTFOVFUxTlRZbUppWW1KaVltSmlZbUppWW1KaVlrSkNRa0pDUWtKQ1FrSkNRa0pDUWtJeU1qSXlNakl5TWpJeU1qSXlNakl5RlFWa1pDTWpJeU5TVWxKU1VsSlNVa0pDUWtKQ1FrSkNNakl5TWpJeU1qSUVGQ01qTXpOVFUwRkJRVUZCUVVGQkJCUkRReUlpSWlJeE1URXhNVEV4TVFNVE1qSWhJU0VoQWhJaElSRUJJaElCQVRJaUVnSkRNeUlpRWhJQ0FsTkRNeU1TRWdJQ0V5TkRNMk5UQWdJQVFhQVhDeVFFQkFVR0J3Z0pDZ3dORHhFVUZoa2NJQ1FvTFRJNFAwZFFXbVZ4ZjVDaXRzdmkvLzhBUWVBWEN5UUNBZ0lEQXdNREJBUUVCZ1lIQndnSUNRa0tDZ3NMREF3TkRRNE9EdzhRRUJFUkVoSUFRY1VZQzRRQkFRQUFBUUFBQVFBQUFRQUJBUUFCQVFFQkFRRUJBUUVCQVFFQkFRRUJBZ0VCQWdFQkFnRUJBZ0VDQXdFQ0F3SUNBd0lDQkFJREJBSURCQU1EQlFNRUJnTUVCZ1FGQndRRkNBUUdDUVVIQ2dZSUN3WUlEUWNLRGdnTEVBa01FZ29ORkFzUEZ3MFJHUUFBQUFBQUFBQUFCUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVIVUdRc1ZCUUFBQUFBQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUVIMEdRc1ZCUUFBQUFRQUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVHVUdnc0ZCUUFBQUFRQVFhUWFDNlVCQndBQUFBUUFBQUFDQUFBQUJBQUFBQUVBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUFRQUFBQVFBQUFBREFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFCQUFBQUJBQUFBQVFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBRUFBQUFFQUFBQUJBQUFBQVFBQUFBREFBQUFCQUFBQUFZQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FFSFVHd3NWRFFBQUFBQUFBQUFQQUFBQS93QUFBQUFBQUFEL0FFSDBHd3NWRFFBQUFBUUFBQUFJQUFBQS93QUFBQUFBQUFEL0FFR1VIQXUxQ3cwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBSkFBQUFCQUFBQUFzQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQWtBQUFBRUFBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUNRQUFBQVFBQUFBTUFBQUFCQUFBQUFzQUFBQUVBQUFBRGdBQUFBRUFBQUFLQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBb0FBQUFFQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ2dBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUtBQUFBQVFBQUFBc0FBQUFFQUFBQUFBQUFBQVFBQUFBQkFBQUFBUUFBQUE0QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEZ0FBQUFRQUFBQUVBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQUVBQUFBT0FBQUFBUUFBQUE4QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFRQUFBQTRBQUFBQkFBQUFEd0FBQUFRQUFBQUVBQUFBQkFBQUFBVUFBQUFFQUFBQUFnQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFDQUFBQUJBQUFBQWdBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUVBQUFBQWdBQUFBUUFBQUFEQUFBQUJBQUFBQWdBQUFBRUFBQUFDUUFBQUFRQUFBQUdBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFZQUFBQUVBQUFBREFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFCZ0FBQUFRQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUFCQUFBQUFjQUFBQUVBQUFBREFBQUFBUUFBQUFOQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFCQUFBQURnQUFBUDhBQUFBRUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBRUFBQUFMQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFCQUFBQURnQUFBQVFBQUFBQkFBQUEvd0FBQUFRQUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFJQUFBQUtBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFBUUFBQUE4QUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEd0FBQUFJQUFBQUtBQUFBQkFBQUFBVUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQVlBQUFEL0FBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFBRUFBQUFDUUFBQVA4QUFBQU1BQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQWdBQUFQOEFBQUFJQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQUhBQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFjQUFBRC9BQUFBQWdBQUFBUUFBQUFOQUFBQS93QUFBQWdBQUFBREFBQUFEd0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQU1BQUFBUEFBQUFBQUFBQUFVQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUF3QUFBQThBQUFBQkFBQUFDZ0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFEQUFBQUR3QUFBQUVBQUFBS0FBQUFBQUFBQUFVQUFBQUVBQUFBQUFBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFFQUFBQUFRQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ3dBQUFBRUFBQUFPQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QkIxQ2NMRlFjQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QkI5Q2NMRlFjQUFBQUVBQUFBQWdBQUFQOEFBQUFBQUFBQS93QkJsQ2dMMlFFSEFBQUFCQUFBQUFJQUFBQUFBQUFBRFFBQUFBUUFBQUFJQUFBQUJBQUFBQU1BQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBSkFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBTUFBQUFFQUFBQUJnQUFBQVFBQUFBSkFBQUFCQUFBQUF3QUFBQUFBQUFBQkFBQUFBQUFBQUFFQUFBQUNBQUFBQXdBQUFBSUFBQUFEQUFBQUFBQUFBQUVBQUFBQUFBQUFBUUFBQUFJQUFBQURBQUFBQWdBQUFBTUFFSDRLUXNGQkFBQUFBUUFRWWdxQ3lVRUFBQUFCQUFBQUFnQUFBQUlBQUFBREFBQUFBd0FBQUFJQUFBQUNBQUFBQXdBQUFBTUFFR3hMZ3ZJQmdFQ0F3UUZCZ2NJQ1FvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEhoOGdJU0lqSkNVbUp5Z3BLaXNzTFM0dk1ERXlNelExTmpjNE9UbzdQRDArUDBCQlFrTkVSVVpIU0VsS1MweE5UazlRVVZKVFZGVldWMWhaV2x0Y1hWNWZZR0ZpWTJSbFptZG9hV3ByYkcxdWIzQnhjbk4wZFhaM2VIbDZlM3g5Zm4rQWdZS0RoSVdHaDRpSmlvdU1qWTZQa0pHU2s1U1ZscGVZbVpxYm5KMmVuNkNob3FPa3BhYW5xS21xcTZ5dHJxK3dzYkt6dExXMnQ3aTV1cnU4dmI2L3dNSEN3OFRGeHNmSXljckx6TTNPejlEUjB0UFUxZGJYMk5uYTI5emQzdC9nNGVMajVPWG01K2pwNnV2czdlN3Y4UEh5OC9UMTl2ZjQrZnI3L1AzKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUVBQUFBRUFBQUFCUUFBQUFJQUFBQURBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQXdBQUFBTkFBQUFDZ0FBQUFzQUFBQU9BQUFBRHdBQUFBQUFBQUFCQUFBQUFRQkJoRFVMSVFFQUFBQUJBQUFBQVFBQUFBRUFBQUFDQUFBQUFnQUFBQUVBQUFBQ0FBQUFBZ0JCdERVTEJRVUFBQUFFQUVIRU5RdkpCZ2NBQUFBRUFBQUFBZ0FBQUFRQUFBQUJBQUFBQkFBQUFBUUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUFBQUFBQUEwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQUFRQUFBQU1BQUFBQkFBQUFBc0FBQUFFQUFBQURnQUFBQUFBQUFBUkFBQUFCQUFBQUJBQUFBQUFBQUFBRXdBQUFBUUFBQUFTQUFBQUFBQUFBQlVBQUFBRUFBQUFGQUFBQUFBQUFBQVhBQUFBQkFBQUFCWUFBQUFCQUFBQUNnQUFBQUVBQUFBTEFBQUFCQUFBQUFBQUFBQUVBQUFBQVFBQUFBRUFBQUFPQUFBQUFRQUFBQThBQUFBRUFBQUFCQUFBQUFRQUFBQUZBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBQVFBQUFBSUFBQUFCQUFBQUFrQUFBQUVBQUFBQmdBQUFBUUFBQUFIQUFBQUJBQUFBQXdBQUFBRUFBQUFEUUFBQUFFQUFBQVNBQUFBQVFBQUFCTUFBQUFFQUFBQUVBQUFBQVFBQUFBUkFBQUFBUUFBQUJZQUFBQUJBQUFBRndBQUFBUUFBQUFVQUFBQUJBQUFBQlVBQUFBQkFBQUFDd0FBQUFFQUFBQU9BQUFBQkFBQUFBRUFBQUQvQUFBQUJBQUFBQUVBQUFBUEFBQUFBZ0FBQUFvQUFBQUVBQUFBQlFBQUFQOEFBQUFBQUFBQUJBQUFBQU1BQUFBRUFBQUFCZ0FBQUFRQUFBQUpBQUFBL3dBQUFBd0FBQUFFQUFBQUJ3QUFBUDhBQUFBQ0FBQUFCQUFBQUEwQUFBRC9BQUFBQ0FBQUFBRUFBQUFUQUFBQUFnQUFBQklBQUFBRUFBQUFFUUFBQVA4QUFBQVFBQUFBQVFBQUFCY0FBQUFDQUFBQUZnQUFBQVFBQUFBVkFBQUEvd0FBQUJRQUFBQURBQUFBRHdBQUFBRUFBQUFLQUFBQUFBQUFBQVVBQUFBRUFBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBQUVBQUFBQWdBQUFBQUFBQUFOQUFBQUJBQUFBQWdBQUFBRUFBQUFBd0FBQUFRQUFBQUdBQUFBQkFBQUFBa0FBQUFFQUFBQURBQUFBQU1BQUFBVEFBQUFBUUFBQUJJQUFBQUFBQUFBRVFBQUFBUUFBQUFRQUFBQUF3QUFBQmNBQUFBQkFBQUFGZ0FBQUFBQUFBQVZBQUFBQkFBQUFCUUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQURBQUFBQXdBQUFBQUFBQUFCQUFBQUFnQUFBQU1BQUFBRUFBQUFCUUFBQUFZQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QVFaWThDeTRCQVFFQkFRRUNBZ0lDQWdJREF3TURBd01FQkFRRUJBUUZCUVVGQlFVR0JnWUdCZ1lIQndjSEJ3Y0lDQWdJQUVIUVBBdEZDZ0FBQUEwQUFBQVFBQUFBQ3dBQUFBNEFBQUFTQUFBQURRQUFBQkFBQUFBVUFBQUFEZ0FBQUJJQUFBQVhBQUFBRUFBQUFCUUFBQUFaQUFBQUVnQUFBQmNBQUFBZEFFR2hQUXN6QVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURBRUhrUFF2TUFnRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhRQUFBQjRBQUFBZkFBQUFJQUFBQUNBQUFBQWhBQUFBSWdBQUFDSUFBQUFqQUFBQUl3QUFBQ1FBQUFBa0FBQUFKUUFBQUNVQUFBQWxBQUFBSmdBQUFDWUFBQUFtQUFBQUp3QUFBQ2NBQUFBbkFBQUFKd0FBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFMeDhQQUJjYkhSNEhDdzBPSnlzdExoQURCUW9NRXhVYUhDTWxLaXdCQWdRSUVSSVVHQVlKRmhrZ0lTSWtLQ1lwQUJBQkFnUUlJQU1GQ2d3UEx3Y0xEUTRHQ1I4akpTb3NJU0lrS0NjckxTNFJFaFFZRXhVYUhCY2JIUjRXR1NZcEFMQXRCRzVoYldVQjZ3TmtBQVp0WlcxamNIa0JCbkpsYzJsNlpRSUNaaklEQW1ZekJBRm1CUUptTlFZQ1pqWUhBbVkzQ0FKbU9Ba0NaamtLQVdVTEEyWXhNUXdEWmpFeURRTm1NVE1PQTJZeE5BOERaakUxRUFObU1UWVJBMll4TnhJRFpqRTRFd05tTVRrVUEyWXlNQlVEWmpJeEZnTm1NaklYQTJZeU14Z0RaakkwR1FObU1qVWFBMll5TmhzRFpqSTNIQU5tTWpnZEEyWXlPUjREWmpNd0h3Tm1NekVnQTJZek1pRURaak16SWdObU16UWpBMll6TlNRRFpqTTJKUU5tTXpjbUEyWXpPQ2NEWmpNNUtBTm1OREFwQTJZME1Tb0RaalF5S3dObU5ETXNBMlkwTkMwRFpqUTFMZ05tTkRZdkEyWTBOekFEWmpRNE1RTm1ORGt5QTJZMU1ETURaalV4TkFObU5USTFBMlkxTXpZRFpqVTBOd05tTlRVNEEyWTFOamtEWmpVM09nTm1OVGc3QTJZMU9Ud0Raall3UFFObU5qRStBMlkyTWo4RFpqWXpRQU5tTmpSQkEyWTJOVUlEWmpZMlF3Tm1OamRFQTJZMk9FVURaalk1UmdObU56QkhBMlkzTVVnRFpqY3lTUU5tTnpOS0EyWTNORXNEWmpjMVRBTm1OelpOQTJZM04wNERaamM0VHdObU56bFFBMlk0TUZFRFpqZ3hVZ05tT0RKVEEyWTRNMVFEWmpnMFZRTm1PRFZXQTJZNE5sY0RaamczV0FObU9EaFpBMlk0T1ZvRFpqa3dXd05tT1RGY0EyWTVNbDBEWmprelhnTm1PVFJmQTJZNU5XQUJhV0VCWjJJQlpHTUVaakV3TVFLNktXUUFBd0FBQVFBQ0FBRUJBQUFDQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1EQ1FBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FRSUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNGQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1HR0FBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFV0Eyd3lNaGNEYkRJekJ3WUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVSUJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlFrUUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlFvTUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVMQXdBQ2NEQUJBbkF4QWdKc01nd1JBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRFFZQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05BVUNiRFVPRUFBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVQQlFBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEVBc0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQVJBZ0FDY0RBQkFuQXhFZzhBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkJNREFBSndNQUVDYkRFQ0Ftd3lGQU1BQW5Bd0FRSndNUUlDYkRJVkJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlJZbUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2NEUUZBbkExQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlJBRGJERTJFUU5zTVRjU0Eyd3hPQk1EYkRFNUZBTnNNakFWQTJ3eU1SWURiREl5RndOc01qTVlBMnd5TkJrRGJESTFHZ05zTWpZYkEyd3lOeHdEYkRJNEhRTnNNamtlQTJ3ek1COERiRE14SUFOc016SWhBMnd6TXlJRGJETTBJd05zTXpVa0Eyd3pOaVVEYkRNM0Z3TUFBbkF3QVFKd01RSUNjRElZRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFWkVnQUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0doWUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhHd1lBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVWNCd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlkQlFBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEhnVUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQjhCQUFKd01DQUVBQUp3TUFFQ2NERUNBbXd5QXdKc015RWJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVGQU5zTWpBVkEyd3lNUllEYkRJeUZ3TnNNak1ZQTJ3eU5Ca0RiREkxR2dOc01qWWlGUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0l4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE55UVVBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVKUThBQW5Bd0FRSndNUUlDY0RJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNZREFBSndNQUVDYkRFQ0Ftd3lKdzhBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNnQ0FBSndNQUVDYkRFcEVRQUNjREFCQW5BeEFnSndNZ01DY0RNRUFuQTBCUUp3TlFZQ2NEWUhBbkEzQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaW9IQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmlzUEFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUXNCQUFDY0RBQkFuQXhBZ0pzTWdNQ2JETXRCUUFDY0RBQkFuQXhBZ0p3TWdNQ2JETUVBbXcwTGdNQUFuQXdBUUpzTVFJQ2JESXZBd0FDY0RBQkFtd3hBZ0pzTWpBSkFBSndNQUVDY0RFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NE1SWUFBbkF3QVFKd01RSUNiRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhNZ29BQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NU13UUFBbkF3QVFKc01RSUNiRElEQW13ek5BUUFBbkF3QVFKc01RSUNiRElEQW13ek5ROEFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hORFlGQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRM0JRQUNjREFCQW5BeEFnSnNNZ01DYkRNRUFtdzBPQWNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyT1FjQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNiRFVHQW13Mk9nY0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJPd2NBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyUEFVQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05EMEZBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFErRHdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMFB4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE4wQUhBQUp3TUFFQ2NERUNBbXd5QXdKc013UUNiRFFGQW13MUJnSnNOa0VRQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVUlKQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0UXdnQUFuQXdBUUp3TVFJQ2JESURBbXd6QkFKc05BVUNiRFVHQW13MkJ3SnNOMFFRQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVVVUQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0p3TmdjQ2NEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9FWVJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFtdzRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyUnhNQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW5BMkJ3SndOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRTQmNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NjRGdKQW5BNUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkE4RGJERTFFQU5zTVRZUkEyd3hOeElEYkRFNEV3TnNNVGtVQTJ3eU1CVURiREl4RmdOc01qSkpRd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0ZRTnNNakVXQTJ3eU1oY0RiREl6R0FOc01qUVpBMnd5TlJvRGJESTJHd05zTWpjY0Eyd3lPQjBEYkRJNUhnTnNNekFmQTJ3ek1TQURiRE15SVFOc016TWlBMnd6TkNNRGJETTFKQU5zTXpZbEEyd3pOeVlEYkRNNEp3TnNNemtvQTJ3ME1Da0RiRFF4S2dOc05ESXJBMncwTXl3RGJEUTBMUU5zTkRVdUEydzBOaThEYkRRM01BTnNORGd4QTJ3ME9USURiRFV3TXdOc05URTBBMncxTWpVRGJEVXpOZ05zTlRRM0EydzFOVGdEYkRVMk9RTnNOVGM2QTJ3MU9Ec0RiRFU1UEFOc05qQTlBMncyTVQ0RGJEWXlQd05zTmpOQUEydzJORUVEYkRZMVFnTnNOalpLRXdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UaExGQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPVXdIQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmswTkFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1rNExBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFFGQW13MUJnSnNOZ2NDYkRjSUFtdzRDUUpzT1FvRGJERXdUd1FBQW5Bd0FRSndNUUlDYkRJREFtd3pVQTRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTlJEQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeFVoTUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0VXlBQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW13MkJ3SnNOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRFd05zTVRrVUEyd3lNQlVEYkRJeEZnTnNNaklYQTJ3eU14Z0RiREkwR1FOc01qVWFBMnd5TmhzRGJESTNIQU5zTWpnZEEyd3lPUjREYkRNd0h3TnNNekZVRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpGVkN3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1GWUhBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSnNObGNxQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9CTURiREU1RkFOc01qQVZBMnd5TVJZRGJESXlGd05zTWpNWUEyd3lOQmtEYkRJMUdnTnNNalliQTJ3eU54d0RiREk0SFFOc01qa2VBMnd6TUI4RGJETXhJQU5zTXpJaEEyd3pNeUlEYkRNMEl3TnNNelVrQTJ3ek5pVURiRE0zSmdOc016Z25BMnd6T1NnRGJEUXdLUU5zTkRGWUV3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0VnTnNNVGhaQ0FBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNXZzRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTmJCQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETmNDUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNiRFlIQW13M0NBSnNPRjBJQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEZGVDQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M1h3d0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVdBQVlRZ0FBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FtdzJCd0pzTjJJREFBSndNQUVDY0RFQ0Ftd3lZdzBBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5IixVPWE7Ri5oMjY0TW9kdWxlPW5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoVS5kZWNvZGUoTCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBZPUYscT1BPT4oSSxnLEIpPT57QS5IRUFQVTguY29weVdpdGhpbihJLGcsZytCKX07ZnVuY3Rpb24gSyhBLEkpe2NvbnN0IGc9QSVJO3JldHVybiBnPjA/QStJLWc6QX1jb25zdCBIPUE9Pkk9Pntjb25zdCBnPUEuSEVBUFU4Lmxlbmd0aCxCPTY1NTM2LFE9MjE0NzQ4MzY0ODtpZihJPlEpcmV0dXJuITE7Y29uc3QgQz0xNjc3NzIxNjtmb3IobGV0IEQ9MTtEPD00O0QqPTIpe2xldCBFPWcqKDErLjIvRCk7RT1NYXRoLm1pbihFLEkrMTAwNjYzMjk2KTtjb25zdCB3PU1hdGgubWluKFEsSyhNYXRoLm1heChDLEksRSksQikpO3RyeXtjb25zdHttZW1vcnk6b309QTtvLmdyb3cody1vLmJ1ZmZlci5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpO2NvbnN0e2J1ZmZlcjpOfT1vO3JldHVybiBBLkhFQVA4PW5ldyBJbnQ4QXJyYXkoTiksQS5IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoTiksQS5IRUFQMzI9bmV3IEludDMyQXJyYXkoTiksITB9Y2F0Y2h7fX1yZXR1cm4hMX0sUj02NTUzNixjPTUyNTE3OTIsZD04NzUyLHQ9MTY3NzcyMTY7Y2xhc3MgaXtjb25zdHJ1Y3Rvcigpe3RoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLHRoaXMucGljPW5ldyBVaW50OEFycmF5KDApO2NvbnN0IEk9bmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7aW5pdGlhbDp0L1IsbWF4aW11bToyMTQ3NDgzNjQ4L1J9KSxnPXttZW1vcnk6SSxIRUFQODpuZXcgSW50OEFycmF5KEkuYnVmZmVyKSxIRUFQVTg6bmV3IFVpbnQ4QXJyYXkoSS5idWZmZXIpLEhFQVAzMjpuZXcgSW50MzJBcnJheShJLmJ1ZmZlcil9O2cuSEVBUDMyW2Q+PjJdPWM7Y29uc3R7ZXhwb3J0czpCfT1uZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UoWS5oMjY0TW9kdWxlLHtoMjY0OnttZW1vcnk6SSxtZW1jcHk6cShnKSxyZXNpemU6SChnKX19KTt0aGlzLm1lbW9yeT1nLHRoaXMuYXNtPUIsdGhpcy5wU3RvcmFnZT1CLmgyNjRhbGxvYygpLHRoaXMucFdpZHRoPUIubWFsbG9jKDQpLHRoaXMucEhlaWdodD1CLm1hbGxvYyg0KSx0aGlzLnBQaWN0dXJlPUIubWFsbG9jKDQpLHRoaXMuZGVjQnVmZmVyPUIubWFsbG9jKDEwMjQqMTAyNCksQi5pbml0KHRoaXMucFN0b3JhZ2UsMCl9ZGVjb2RlKEkpe2NvbnN0e21lbW9yeTpnLGFzbTpCfT10aGlzO2cuSEVBUFU4LnNldChJLHRoaXMuZGVjQnVmZmVyKTtjb25zdCBRPUIuZGVjb2RlKHRoaXMucFN0b3JhZ2UsdGhpcy5kZWNCdWZmZXIsSS5ieXRlTGVuZ3RoLHRoaXMucFBpY3R1cmUsdGhpcy5wV2lkdGgsdGhpcy5wSGVpZ2h0KTtpZihRPT09aS5QSUNfUkRZKXtjb25zdCBDPXRoaXMud2lkdGg9Zy5IRUFQMzJbdGhpcy5wV2lkdGg+Pj4yXSxEPXRoaXMuaGVpZ2h0PWcuSEVBUDMyW3RoaXMucEhlaWdodD4+PjJdLEU9Zy5IRUFQMzJbdGhpcy5wUGljdHVyZT4+Ml0sdz1DKkQqMy8yO3RoaXMucGljPWcuSEVBUFU4LnN1YmFycmF5KEUsRSt3KX1yZXR1cm4gUX19dmFyIGI9eS5IMjY0RGVjb2Rlcj1pO2kuUkRZPTAsaS5QSUNfUkRZPTEsaS5IRFJTX1JEWT0yLGkuRVJST1I9MyxpLlBBUkFNX1NFVF9FUlJPUj00LGkuTUVNQUxMT0NfRVJST1I9NTtmdW5jdGlvbiB4KEEpe3JldHVybiBVaW50OEFycmF5LmZyb20oYXRvYihBKSxJPT5JLmNoYXJDb2RlQXQoMCkpfWNvbnN0IHM9c2VsZixrPW5ldyBiLG09Si5zZWNvbmQvNTthZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixBPT57Y29uc3R7dGltZXN0YW1wOkksZmxhZ3M6ZyxpbmRleDpCfT1BLmRhdGEsUT1EYXRlLm5vdygpLUk7aWYoUT5tJiZnIT09Myl7TShgRnJhbWUgaXMgJHtRfW1zIGxhdGUsIGRyb3BwaW5nYCxCKTtyZXR1cm59Y29uc3QgQz14KEEuZGF0YS5lbmNvZGVkRnJhbWUpLEQ9ay5kZWNvZGUoQyk7dHJ5e2lmKEQhPT0xKXtNKGBmYWlsZWQgdG8gZGVjb2RlIGZyYW1lLCBzdGF0dXM6ICR7bihEKX1gLEIsQyk7cmV0dXJufWNvbnN0e3BpYzpFLGhlaWdodDp3LHdpZHRoOm99PWs7aWYoRS5sZW5ndGg9PT0wfHx3PT09MHx8bz09PTApe00oImRlY29kZWQgZnJhbWUgaGFzIG5vIGRhdGEiLEIsQyk7cmV0dXJufWNvbnN0IE49bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KEUpO3MucG9zdE1lc3NhZ2Uoe3RpbWVzdGFtcDpBLmRhdGEudGltZXN0YW1wLHl1djpOLGhlaWdodDp3LHdpZHRoOm8saW5kZXg6Qn0pfWNhdGNoKEUpe00oRSxCKX19KTtmdW5jdGlvbiBNKEEsSSxnKXtzLnBvc3RNZXNzYWdlKHtlcnJvcjpgaDI2NCBkZWNvZGVyIHdvcmtlcjogJHtBfWAsaW5kZXg6SX0pfWZ1bmN0aW9uIG4oQSl7c3dpdGNoKEEpe2Nhc2UgMDpyZXR1cm4iUkRZIjtjYXNlIDE6cmV0dXJuIlBJQ19SRFkiO2Nhc2UgMjpyZXR1cm4iSERSU19SRFkiO2Nhc2UgMzpyZXR1cm4iRVJST1IiO2Nhc2UgNDpyZXR1cm4iUEFSQU1fU0VUX0VSUk9SIjtjYXNlIDU6cmV0dXJuIk1FTUFMTE9DX0VSUk9SIjtkZWZhdWx0OnJldHVybiBBLnRvU3RyaW5nKCl9fX0pfSkoKTsK",blob$3=typeof window<"u"&&window.Blob&&new Blob([atob(encodedJs$3)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$3(){const s=blob$3&&(window.URL||window.webkitURL).createObjectURL(blob$3);try{return s?new Worker(s,{}):new Worker("data:application/javascript;base64,"+encodedJs$3,{type:"module"})}finally{s&&(window.URL||window.webkitURL).revokeObjectURL(s)}}class RealtimePlayer extends HTMLElement{constructor(){super(),__publicField$2(this,"drawer"),this.drawer=new H264BytestreamCanvasDrawer$1(()=>new WorkerWrapper$3,()=>{},()=>{})}connectedCallback(){this.style.background="black",this.innerHTML='',this.drawer.start(),this.drawer.setCanvas(this.querySelector("canvas"))}drawVideoFrame(o){this.drawer.receiveEncodedFrame(o)}}customElements.define("formant-realtime-player",RealtimePlayer);function insertWithoutScoping(s,o){if(s.inserted[o.name]===void 0)return s.insert("",o,s.sheet,!0)}function merge$3(s,o,et){var tt=[],nt=getRegisteredStyles(s,tt,et);return tt.length<2?et:nt+o(tt)}var createEmotion=function s(o){var et=createCache(o);et.sheet.speedy=function(ot){this.isSpeedy=ot},et.compat=!0;var tt=function(){for(var ot=arguments.length,st=new Array(ot),at=0;at({name:s,id:o,type:et,visible:rt,treePath:nt}),toggleVisibility:s=>{},cameraTargetId:"",setCameraTargetId:s=>{},reset:()=>{},toggleEditMode:()=>{},isEditing:!1,debug:!1});function useUI(){const[s,o]=React$1.useState([]),[et,tt]=React$1.useState(""),[nt,rt]=React$1.useState(!1);return{layers:s,register:(lt,ut,dt,ht,ct,pt=!0)=>{JSON.parse(sessionStorage.getItem(`${ut}-visible`)||"true");const ft={name:lt,id:ut,visible:pt,type:dt,treePath:ct,iconUrl:ht};return s.some(gt=>gt.id===ut)||o(gt=>[...gt,ft]),ft},toggleVisibility:lt=>{o(ut=>ut.map(dt=>{if(dt.id===lt){const ht=!dt.visible;if(sessionStorage.setItem(`${dt.id}-visible`,ht.toString()),dt.treePath&&dt.treePath.length>0){const ct=ut.filter(pt=>pt.treePath&&dt.treePath&&pt.treePath[0]===dt.treePath[0]&&pt.treePath.length>dt.treePath.length);ht?ct.forEach(pt=>{pt.visible=JSON.parse(sessionStorage.getItem(`${pt.id}-visible`)||"true")}):ct.forEach(pt=>{sessionStorage.setItem(`${pt.id}-visible`,pt.visible.toString()),pt.visible=!1})}return{...dt,visible:ht}}return dt}))},cameraTargetId:et,setCameraTargetId:tt,reset:()=>{o([])},toggleEditMode:()=>{rt(lt=>!lt)},isEditing:nt,debug:!1}}function stylis_min(s){function o(zt,en,Kt,nn,Zt){for(var jt=0,Vt=0,It=0,$t=0,Ht,qt,on=0,Xt=0,dn,_n=dn=Ht=0,Fn=0,Un=0,On=0,gn=0,hn=Kt.length,wn=hn-1,Zn,Pn="",$n="",Tr="",Qr="",_r;FnHt)&&(gn=(Pn=Pn.replace(" ",":")).length),0nn&&(nn=(en=en.trim()).charCodeAt(0)),nn){case 38:return en.replace(gt,"$1"+zt.trim());case 58:return zt.trim()+en.replace(gt,"$1"+zt.trim());default:if(0<1*Kt&&0Vt.charCodeAt(8))break;case 115:Zt=Zt.replace(Vt,"-webkit-"+Vt)+";"+Zt;break;case 207:case 102:Zt=Zt.replace(Vt,"-webkit-"+(102Kt.charCodeAt(0)&&(Kt=Kt.trim()),Pt=Kt,Kt=[Pt],01?o-1:0),tt=1;tt0?" Args: "+et.join(", "):""))}var j=function(){function s(et){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=et}var o=s.prototype;return o.indexOfGroup=function(et){for(var tt=0,nt=0;nt=this.groupSizes.length){for(var nt=this.groupSizes,rt=nt.length,it=rt;et>=it;)(it<<=1)<0&&D(16,""+et);this.groupSizes=new Uint32Array(it),this.groupSizes.set(nt),this.length=it;for(var ot=rt;ot=this.length||this.groupSizes[et]===0)return tt;for(var nt=this.groupSizes[et],rt=this.indexOfGroup(et),it=rt+nt,ot=rt;ot=k&&(k=o+1),T.set(s,o),x.set(o,s)},M="style["+N+'][data-styled-version="5.3.11"]',G=new RegExp("^"+N+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),L=function(s,o,et){for(var tt,nt=et.split(","),rt=0,it=nt.length;rt=0;at--){var lt=st[at];if(lt&<.nodeType===1&<.hasAttribute(N))return lt}}(et),rt=nt!==void 0?nt.nextSibling:null;tt.setAttribute(N,"active"),tt.setAttribute("data-styled-version","5.3.11");var it=Y();return it&&tt.setAttribute("nonce",it),et.insertBefore(tt,rt),tt},H=function(){function s(et){var tt=this.element=q(et);tt.appendChild(document.createTextNode("")),this.sheet=function(nt){if(nt.sheet)return nt.sheet;for(var rt=document.styleSheets,it=0,ot=rt.length;it=0){var nt=document.createTextNode(tt),rt=this.nodes[et];return this.element.insertBefore(nt,rt||null),this.length++,!0}return!1},o.deleteRule=function(et){this.element.removeChild(this.nodes[et]),this.length--},o.getRule=function(et){return et0&&(ut+=dt+",")}),rt+=""+at+lt+'{content:"'+ut+`"}/*!sc*/ -`}}}return rt}(this)},s}(),Z=/(a)(d)/gi,K=function(s){return String.fromCharCode(s+(s>25?39:97))};function Q(s){var o,et="";for(o=Math.abs(s);o>52;o=o/52|0)et=K(o%52)+et;return(K(o%52)+et).replace(Z,"$1-$2")}var ee=function(s,o){for(var et=o.length;et;)s=33*s^o.charCodeAt(--et);return s},te=function(s){return ee(5381,s)};function ne(s){for(var o=0;o>>0);if(!et.hasNameForId(nt,ot)){var st=tt(it,"."+ot,void 0,nt);et.insertRules(nt,ot,st)}rt.push(ot),this.staticRulesId=ot}else{for(var at=this.rules.length,lt=ee(this.baseHash,tt.hash),ut="",dt=0;dt>>0);if(!et.hasNameForId(nt,ft)){var gt=tt(ut,"."+ft,void 0,nt);et.insertRules(nt,ft,gt)}rt.push(ft)}}return rt.join(" ")},s}(),se=/^\s*\/\/.*$/gm,ie=[":","[",".","#"];function ae(s){var o,et,tt,nt,rt=s===void 0?w:s,it=rt.options,ot=it===void 0?w:it,st=rt.plugins,at=st===void 0?S:st,lt=new stylis_min(ot),ut=[],dt=function(pt){function ft(gt){if(gt)try{pt(gt+"}")}catch{}}return function(gt,yt,Ut,Ft,mt,vt,At,Lt,Rt,St){switch(gt){case 1:if(Rt===0&&yt.charCodeAt(0)===64)return pt(yt+";"),"";break;case 2:if(Lt===0)return yt+"/*|*/";break;case 3:switch(Lt){case 102:case 112:return pt(Ut[0]+yt),"";default:return yt+(St===0?"/*|*/":"")}case-2:yt.split("/*|*/}").forEach(ft)}}}(function(pt){ut.push(pt)}),ht=function(pt,ft,gt){return ft===0&&ie.indexOf(gt[et.length])!==-1||gt.match(nt)?pt:"."+o};function ct(pt,ft,gt,yt){yt===void 0&&(yt="&");var Ut=pt.replace(se,""),Ft=ft&>?gt+" "+ft+" { "+Ut+" }":Ut;return o=yt,et=ft,tt=new RegExp("\\"+et+"\\b","g"),nt=new RegExp("(\\"+et+"\\b){2,}"),lt(gt||!ft?"":ft,Ft)}return lt.use([].concat(at,[function(pt,ft,gt){pt===2&>.length&>[0].lastIndexOf(et)>0&&(gt[0]=gt[0].replace(tt,ht))},dt,function(pt){if(pt===-2){var ft=ut;return ut=[],ft}}])),ct.hash=at.length?at.reduce(function(pt,ft){return ft.name||D(15),ee(pt,ft.name)},5381).toString():"",ct}var ce=React$1.createContext();ce.Consumer;var le=React$1.createContext(),de=(le.Consumer,new X),he$1=ae();function pe(){return reactExports.useContext(ce)||de}function fe(){return reactExports.useContext(le)||he$1}var ye=function(){function s(o,et){var tt=this;this.inject=function(nt,rt){rt===void 0&&(rt=he$1);var it=tt.name+rt.hash;nt.hasNameForId(tt.id,it)||nt.insertRules(tt.id,it,rt(tt.rules,it,"@keyframes"))},this.toString=function(){return D(12,String(tt.name))},this.name=o,this.id="sc-keyframes-"+o,this.rules=et}return s.prototype.getName=function(o){return o===void 0&&(o=he$1),this.name+o.hash},s}(),ve=/([A-Z])/,ge=/([A-Z])/g,Se=/^ms-/,we=function(s){return"-"+s.toLowerCase()};function Ee(s){return ve.test(s)?s.replace(ge,we).replace(Se,"-ms-"):s}var be=function(s){return s==null||s===!1||s===""};function _e(s,o,et,tt){if(Array.isArray(s)){for(var nt,rt=[],it=0,ot=s.length;it1?o-1:0),tt=1;tt?@[\\\]^`{|}~-]+/g,De=/(^-|-$)/g;function je(s){return s.replace(Re,"-").replace(De,"")}var Te=function(s){return Q(te(s)>>>0)};function xe(s){return typeof s=="string"&&!0}var ke=function(s){return typeof s=="function"||typeof s=="object"&&s!==null&&!Array.isArray(s)},Ve=function(s){return s!=="__proto__"&&s!=="constructor"&&s!=="prototype"};function Be(s,o,et){var tt=s[et];ke(o)&&ke(tt)?ze(tt,o):s[et]=o}function ze(s){for(var o=arguments.length,et=new Array(o>1?o-1:0),tt=1;tt=0||(St[Lt]=vt[Lt]);return St}(o,["componentId"]),mt=Ut&&Ut+"-"+(xe(yt)?yt:je(b(yt)));return Ye(yt,y({},Ft,{attrs:dt,componentId:mt}),et)},Object.defineProperty(ct,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(yt){this._foldedDefaultProps=tt?ze({},s.defaultProps,yt):yt}}),Object.defineProperty(ct,"toString",{value:function(){return"."+ct.styledComponentId}}),nt&&m(ct,s,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),ct}var qe=function(s){return function o(et,tt,nt){if(nt===void 0&&(nt=w),!reactIsExports.isValidElementType(tt))return D(1,String(tt));var rt=function(){return et(tt,nt,Ae.apply(void 0,arguments))};return rt.withConfig=function(it){return o(et,tt,y({},nt,{},it))},rt.attrs=function(it){return o(et,tt,y({},nt,{attrs:Array.prototype.concat(nt.attrs,it).filter(Boolean)}))},rt}(Ye,s)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach(function(s){qe[s]=qe(s)});const styled=qe;function LayerIcon({active:s}){return jsxs$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{d:"M9.00001 10.9267L4.35287 7.05273L9.00001 3.17878L13.6471 7.05273L9.00001 10.9267Z",stroke:s?"#FFF":"#BAC4E2",strokeWidth:"2"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.71179 11.4992L8.35968 16.2074L9 16.7411L9.64031 16.2074L15.2882 11.4992L13.7265 10.1973L9 14.1374L4.27352 10.1973L2.71179 11.4992Z",fill:s?"#FFF":"#BAC4E2"})]})}function EyeIcon(){return jsxs$2("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.14398 11.4616C4.82104 7.02853 8.09047 4.54999 12 4.54999C15.9095 4.54999 19.179 7.02853 21.856 11.4616C22.0476 11.7789 22.048 12.1761 21.8571 12.4937C19.191 16.9292 15.921 19.4071 12 19.4071C8.07895 19.4071 4.80905 16.9292 2.14292 12.4937C1.95198 12.1761 1.95239 11.7789 2.14398 11.4616ZM4.17638 11.9797C6.57637 15.7502 9.1981 17.4071 12 17.4071C14.8019 17.4071 17.4236 15.7502 19.8236 11.9797C17.4121 8.20659 14.7903 6.54999 12 6.54999C9.20971 6.54999 6.58787 8.20659 4.17638 11.9797Z",fill:"white"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.0644 14.9358C13.662 14.9358 14.9572 13.6406 14.9572 12.0429C14.9572 11.1993 14.5961 10.44 14.02 9.91118C13.505 9.43857 12.8184 9.15009 12.0644 9.15009C10.4667 9.15009 9.17151 10.4453 9.17151 12.0429C9.17151 13.6406 10.4667 14.9358 12.0644 14.9358Z",fill:"white"})]})}function EyeCloseIcon(){return jsx$2("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.34223 14.6222C7.16729 14.0938 6.06407 13.3052 5.03075 12.2761L2.64019 14.2682L1.35983 12.7318L3.70532 10.7772C3.1631 10.087 2.64239 9.32476 2.14288 8.49375L3.85703 7.46338C6.34318 11.5994 9.07328 13.4071 12 13.4071C14.9266 13.4071 17.6567 11.5994 20.1429 7.46338L21.857 8.49375C21.3575 9.32474 20.8368 10.087 20.2946 10.7772L22.6402 12.7318L21.3598 14.2682L18.9692 12.2761C17.9359 13.3052 16.8327 14.0938 15.6578 14.6222L16.908 17.3309L15.092 18.169L13.7392 15.238C13.1743 15.3501 12.5946 15.4071 12 15.4071C11.4053 15.4071 10.8256 15.3501 10.2608 15.238L8.90796 18.169L7.09204 17.3309L8.34223 14.6222Z",fill:"#657197"})})}function Warning(){return jsx$2("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{d:"M9 13H11V15H9V13ZM9 5H11V11H9V5ZM9.99 0C4.47 0 0 4.48 0 10C0 15.52 4.47 20 9.99 20C15.52 20 20 15.52 20 10C20 4.48 15.52 0 9.99 0ZM10 18C5.58 18 2 14.42 2 10C2 5.58 5.58 2 10 2C14.42 2 18 5.58 18 10C18 14.42 14.42 18 10 18Z",fill:"#BAC4E2"})})}function ConfigArrow(){return jsxs$2("svg",{width:"11",height:"40",viewBox:"0 0 11 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.23327 2L6.23327 40L4.7666 40L4.7666 2L6.23327 2Z",fill:"#18D2FF"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.50546 2.90731L1.624 7.05859L0.586914 5.94941L4.98691 1.24352C5.2733 0.937231 5.73762 0.937231 6.024 1.24352L10.424 5.94941L9.38691 7.05859L5.50546 2.90731Z",fill:"#18D2FF"})]})}function CheckIcon(){return jsx$2("svg",{width:"14",height:"12",viewBox:"0 0 14 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.5392 2.02248L4.48528 11.3639L0.162109 6.90344L1.23921 5.85948L4.48528 9.2086L12.4621 0.978516L13.5392 2.02248Z",fill:"white"})})}function WaypointToggleIcon(){return jsxs$2("svg",{width:"20",height:"24",viewBox:"0 0 20 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 17.8438 7.69922)",stroke:"#BAC4E2",strokeWidth:"0.75"}),jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 13.4609 14.1641)",stroke:"#BAC4E2",strokeWidth:"0.75"}),jsx$2("path",{d:"M15.7656 10.2734L13.2578 13.8471",stroke:"#BAC4E2",strokeWidth:"0.75",strokeLinecap:"round"}),jsx$2("path",{d:"M7.04688 10.2734L4.53906 13.8471",stroke:"#BAC4E2",strokeWidth:"0.75",strokeLinecap:"round"}),jsx$2("path",{d:"M8.71094 10.2734L11.2187 13.8471",stroke:"#BAC4E2",strokeWidth:"0.75",strokeLinecap:"round"}),jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 9.07812 7.69922)",stroke:"#BAC4E2",strokeWidth:"0.75"}),jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 4.69336 14.1641)",stroke:"#BAC4E2",strokeWidth:"0.75"})]})}function BooleanToggleTrueIcon({onClick:s}){return jsxs$2("svg",{width:"36",height:"22",viewBox:"0 0 36 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("mask",{id:"mask0_471_35715",maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"36",height:"22",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M36 0H0V22H36V0ZM25 21C30.5228 21 35 16.5228 35 11C35 5.47715 30.5228 1 25 1C19.4772 1 15 5.47715 15 11C15 16.5228 19.4772 21 25 21Z",fill:"#D9D9D9"})}),jsx$2("g",{mask:"url(#mask0_471_35715)",children:jsx$2("rect",{x:"3",y:"7",width:"30",height:"9",rx:"4.5",fill:"#282F45",onClick:()=>s&&s()})}),jsx$2("circle",{cx:"25",cy:"11",r:"8",fill:"#18D2FF",onClick:()=>s&&s()})]})}function BooleanToggleFalseIcon({onClick:s}){return jsxs$2("svg",{width:"36",height:"22",viewBox:"0 0 36 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("mask",{id:"mask0_508_180629",maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"36",height:"22",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M36 0H0V22H36V0ZM11 21C16.5228 21 21 16.5228 21 11C21 5.47715 16.5228 1 11 1C5.47715 1 1 5.47715 1 11C1 16.5228 5.47715 21 11 21Z",fill:"#D9D9D9"})}),jsx$2("g",{mask:"url(#mask0_508_180629)",children:jsx$2("rect",{x:"3",y:"7",width:"30",height:"9",rx:"4.5",fill:"#282F45"})}),jsx$2("circle",{cx:"11",cy:"11",r:"8",fill:"#BAC4E2"})]})}function WaypointsPathToggleIcon(){return jsx$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{d:"M1.29297 16.293L16.293 1.29297",stroke:"#BAC4E2",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"4 4"})})}function PathToggleIcon(){return jsx$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{d:"M1.29297 16.293L16.293 1.29297",stroke:"#18D2FF",strokeWidth:"2",strokeLinecap:"round"})})}function PathEyeIcon(){return jsx$2("svg",{width:"16",height:"9",viewBox:"0 0 16 9",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.25881 5.96492C4.37723 5.56852 3.54948 4.97678 2.7742 4.20449L0.98113 5.69872L0.020853 4.54639L1.78023 3.08024C1.37381 2.56284 0.983494 1.9914 0.609059 1.36849L1.89468 0.595703C3.75929 3.69771 5.80686 5.05352 8.00187 5.05352C10.1969 5.05352 12.2444 3.69771 14.1091 0.595703L15.3947 1.36849C15.0199 1.99189 14.6293 2.56374 14.2225 3.08145L15.9805 4.54639L15.0202 5.69872L13.2284 4.20558C12.4536 4.97721 11.6264 5.56852 10.7454 5.96472L11.6829 7.99609L10.321 8.62468L9.30648 6.42661C8.88276 6.51076 8.44793 6.55352 8.00187 6.55352C7.55597 6.55352 7.1213 6.5108 6.69773 6.4267L5.68328 8.62468L4.32134 7.99609L5.25881 5.96492Z",fill:"#BAC4E2"})})}function CLoseIcon(){return jsxs$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.9688 14.0304L3.96875 5.03039L5.02941 3.96973L14.0294 12.9697L12.9688 14.0304Z",fill:"white"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.03125 14.0304L14.0312 5.03039L12.9706 3.96973L3.97059 12.9697L5.03125 14.0304Z",fill:"white"})]})}var LayerType=(s=>(s.CONTAINER="container",s.TRACKABLE="trackable",s.AXIS="axis",s.OTHER="other",s))(LayerType||{}),Rn=Object.defineProperty,Bn=(s,o,et)=>o in s?Rn(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,he=(s,o,et)=>(Bn(s,typeof o!="symbol"?o+"":o,et),et);const DEFAULT_FORMANT_API_URL="https://api.formant.io";function whichFormantApiUrl(s,o,et){try{if(et){if(et.includes("app-dev.formant.io")||et.includes("localhost"))return"https://api-dev.formant.io";if(et.includes("app-stage.formant.io"))return"https://api-stage.formant.io";if(et.includes("app.formant.io"))return"https://api.formant.io"}if(o.get("formant_stage"))return"https://api-stage.formant.io";if(o.get("formant_dev"))return"https://api-dev.formant.io";if(o.get("formant_local"))return"https://api.formant.local";if(o.get("formant_url")){const tt=o.get("formant_url");if(tt!==null)try{return new URL(tt).origin}catch{console.warn(`Ignoring malformed \`formant_url\` url parameter: ${tt}`)}}}catch{}return typeof s<"u"&&"FORMANT_API_URL"in s&&typeof s.FORMANT_API_URL=="string"?s.FORMANT_API_URL:DEFAULT_FORMANT_API_URL}const FORMANT_API_URL=whichFormantApiUrl(typeof window<"u"?window:globalThis,new URLSearchParams(typeof window<"u"&&window.location?window.location.search:void 0),typeof window<"u"&&window.location?window.location.host:void 0);var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}var base64={exports:{}};/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */base64.exports;(function(s,o){(function(et){var tt=o,nt=s&&s.exports==tt&&s,rt=typeof commonjsGlobal=="object"&&commonjsGlobal;(rt.global===rt||rt.window===rt)&&(et=rt);var it=function(ct){this.message=ct};it.prototype=new Error,it.prototype.name="InvalidCharacterError";var ot=function(ct){throw new it(ct)},st="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",at=/[\t\n\f\r ]/g,lt=function(ct){ct=String(ct).replace(at,"");var pt=ct.length;pt%4==0&&(ct=ct.replace(/==?$/,""),pt=ct.length),(pt%4==1||/[^+a-zA-Z0-9/]/.test(ct))&&ot("Invalid character: the string to be decoded is not correctly encoded.");for(var ft=0,gt,yt,Ut="",Ft=-1;++Ft>(-2*ft&6)));return Ut},ut=function(ct){ct=String(ct),/[^\0-\xFF]/.test(ct)&&ot("The string to be encoded contains characters outside of the Latin1 range.");for(var pt=ct.length%3,ft="",gt=-1,yt,Ut,Ft,mt,vt=ct.length-pt;++gt>18&63)+st.charAt(mt>>12&63)+st.charAt(mt>>6&63)+st.charAt(mt&63);return pt==2?(yt=ct.charCodeAt(gt)<<8,Ut=ct.charCodeAt(++gt),mt=yt+Ut,ft+=st.charAt(mt>>10)+st.charAt(mt>>4&63)+st.charAt(mt<<2&63)+"="):pt==1&&(mt=ct.charCodeAt(gt),ft+=st.charAt(mt>>2)+st.charAt(mt<<4&63)+"=="),ft},dt={encode:ut,decode:lt,version:"1.0.0"};if(tt&&!tt.nodeType)if(nt)nt.exports=dt;else for(var ht in dt)dt.hasOwnProperty(ht)&&(tt[ht]=dt[ht]);else et.base64=dt})(commonjsGlobal)})(base64,base64.exports);var base64Exports=base64.exports;class LoginFailureError extends Error{constructor(o){super("login failed"),he(this,"reason"),this.reason=o,this.name="LoginFailureError",Object.setPrototypeOf(this,new.target.prototype)}}class LoginChallengedError extends Error{constructor(o){super("login challenged"),he(this,"challenge"),this.challenge=o,this.name="LoginChallengedError",Object.setPrototypeOf(this,new.target.prototype)}}class AuthenticationStore{constructor({apiUrl:o,refreshAuthToken:et,addAccessTokenRefreshListener:tt}){he(this,"_refreshToken"),he(this,"_isShareToken",!1),he(this,"_currentOrganization"),he(this,"_currentUser"),he(this,"_defaultDeviceId"),he(this,"_token"),he(this,"_waitingForAuth",new Set),he(this,"_refreshTimer"),he(this,"_apiUrl"),he(this,"_refreshAuthToken"),he(this,"_addAccessTokenRefreshListener"),this._apiUrl=o,this._refreshAuthToken=et,this._addAccessTokenRefreshListener=tt}get token(){return this._token}get currentUser(){return this._currentUser}get currentOrganization(){return this._currentOrganization}get defaultDeviceId(){return this._defaultDeviceId}get refreshToken(){return this._refreshToken}get isShareToken(){return this._isShareToken}async login(o,et,tt={}){const{advanced:nt=!1}=tt;try{const rt=await fetch(`${this._apiUrl}/v1/admin/auth/login`,{method:"POST",body:JSON.stringify({email:o,password:et}),headers:{"Content-Type":"application/json"}}),it=await rt.json();if(rt.status!==200)throw new LoginFailureError(it.message);if("challenge"in it)throw new LoginChallengedError(it.challenge);const{authentication:ot}=it;return await this.loginWithToken(ot.accessToken,ot.refreshToken),nt?{result:"success",authentication:ot}:ot}catch(rt){if(nt||console.error("login() failed",{err:rt}),this._waitingForAuth.forEach(it=>it(!1)),this._waitingForAuth.clear(),!nt)throw rt;return rt instanceof LoginChallengedError?{result:"challenged",challenge:rt.challenge}:{result:"failure",reason:rt instanceof LoginFailureError?rt.reason:rt instanceof Error?rt.message:String(rt)}}}async loginWithToken(o,et){var tt;const nt=JSON.parse(base64Exports.decode(o.split(".")[1]));try{let rt;if(this._isShareToken=nt["formant:claims"]&&nt["formant:claims"].type=="share",nt["formant:claims"]&&(this._currentOrganization=nt["formant:claims"].organizationId),nt["custom:organization_id"]&&(this._currentOrganization=nt["custom:organization_id"]),this._isShareToken||(rt=nt.sub),nt["formant:claims"]&&nt["formant:claims"].userId&&(rt=nt["formant:claims"].userId),rt&&((tt=this._currentUser)==null?void 0:tt.id)!==rt){const it=await fetch(`${this._apiUrl}/v1/admin/users/${rt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+o}}),ot=await it.json();if(it.status!==200)throw new Error(ot.message);this._currentUser=ot}this._token=o,this._waitingForAuth.forEach(it=>it(!0))}catch(rt){console.error("loginWithToken() failed",{err:rt}),this._waitingForAuth.forEach(it=>it(!1))}finally{this._waitingForAuth.clear()}et&&(this._refreshToken=et,setInterval(async()=>{if(this._refreshToken){const rt=await(await fetch(`${this._apiUrl}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:this._refreshToken})})).json();this._token=rt.authentication.accessToken}},1e3*60*60))}isAuthenticated(){return this._token!==void 0}async loginToPeer(o,et,tt){if((await fetch(`${o}/login`,{method:"POST",body:JSON.stringify({username:et,password:tt}),headers:{"Content-Type":"application/json"}})).status!==200)throw new LoginFailureError("Invalid authentication")}getCurrentUser(){return this._currentUser}async waitTilAuthenticated(){return this.token!==void 0?!0:new Promise(o=>{this._waitingForAuth.add(o)})}async listenForRefresh(){const o=()=>{this._refreshTimer=void 0,this._refreshAuthToken()};this._addAccessTokenRefreshListener(et=>{this._refreshTimer&&clearTimeout(this._refreshTimer),this._refreshTimer=setTimeout(o,36e5),this.loginWithToken(et)}),this._refreshTimer=setTimeout(o,36e5)}async forgotPassword(o){await fetch(`${this._apiUrl}/v1/admin/auth/forgot-password`,{method:"POST",body:JSON.stringify({email:o}),headers:{"Content-Type":"application/json"}})}async confirmForgotPassword(o){return(await fetch(`${this._apiUrl}/v1/admin/auth/confirm-forgot-password`,{method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}})).ok}async respondToNewPasswordRequiredChallenge(o){const et=await fetch(`${this._apiUrl}/v1/admin/auth/respond-to-new-password-required-challenge`,{method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}});if(et.ok)return await et.json();throw new Error("respond-to-new-password-required-challenge failed")}async loginWithGoogle(o){return await(await fetch(`${this._apiUrl}/v1/admin/auth/login-google`,{method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}})).json()}async refresh(o){const et=await(await fetch(`${this._apiUrl}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:o})})).json();await this.loginWithToken(et.authentication.accessToken,o)}async checkSso(o,et){return await(await fetch(`${this._apiUrl}/v1/admin/auth/check-sso`,{method:"POST",body:JSON.stringify({email:o,allowUserAutoCreation:et}),headers:{"Content-Type":"application/json"}})).json()}async loginWithSso(o,et){const tt=await(await fetch(`${this._apiUrl}/v1/admin/auth/login-sso`,{method:"POST",body:JSON.stringify({token:o,refreshToken:et}),headers:{"Content-Type":"application/json"}})).json();if(!tt.authentication)throw new Error("Failed to login with SSO");return await this.loginWithToken(tt.authentication.accessToken,tt.authentication.refreshToken)}}function getCurrentModuleContext(){return typeof window<"u"&&window.location?new URLSearchParams(window.location.search).get("module"):null}function sendAppMessage(s){if(!(window&&window.parent))throw new Error("cannot send message to non-existent parent");window.parent.postMessage(s,"*")}function refreshAuthToken(){const s=getCurrentModuleContext();if(!s)throw new Error("No module context");sendAppMessage({type:"refresh_auth_token",module:s})}function addAccessTokenRefreshListener(s){function o(et){const tt=et.data;tt.type==="auth_token"&&s(tt.token)}return window.addEventListener("message",o),()=>{window.removeEventListener("message",o)}}const Authentication=new AuthenticationStore({apiUrl:FORMANT_API_URL,refreshAuthToken,addAccessTokenRefreshListener});async function getModuleConfiguration(s){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/module-configurations/${s}`,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).configuration}function disableAnalyticsBottomBar(){sendAppMessage({type:"hide_analytics_date_picker"})}function goToDevice(s){sendAppMessage({type:"go_to_device",deviceId:s})}function goToTime(s){sendAppMessage({type:"go_to_time",time:s.getTime()})}function requestModuleData(){const s=getCurrentModuleContext();if(!s)throw new Error("No module context");sendAppMessage({type:"request_module_data",module:s})}function sendChannelData(s,o){const et=getCurrentModuleContext();if(!et)throw new Error("No module context");sendAppMessage({type:"send_channel_data",source:et,channel:s,data:o})}function setModuleDateTimeRange(s,o){const et=getCurrentModuleContext();if(!et)throw new Error("No module context");sendAppMessage({type:"set_module_data_time_range",module:et,before:s,after:o||0})}function setupModuleMenus(s){const o=getCurrentModuleContext();if(!o)throw new Error("No module context");sendAppMessage({type:"setup_module_menus",module:o,menus:s})}function showMessage(s){sendAppMessage({type:"show_message",message:s})}function addChannelDataListener(s,o){const et=tt=>{const nt=tt.data;nt.type==="channel_data"&&nt.channel===s&&o({source:nt.source,data:nt.data})};return window.addEventListener("message",et),()=>window.removeEventListener("message",et)}function addMenuListener(s){const o=et=>{const tt=et.data;tt.type==="module_menu_item_clicked"&&s(tt.menu)};return window.addEventListener("message",o),()=>window.removeEventListener("message",o)}function addModuleConfigurationListener(s){const o=et=>{const tt=et.data;tt.type==="module_configuration"&&s(tt)};return window.addEventListener("message",o),()=>window.removeEventListener("message",o)}function addModuleDataListener(s){const o=getCurrentModuleContext();o&&sendAppMessage({type:"request_module_data",module:o});const et=tt=>{const nt=tt.data;nt.type==="module_data"&&s({streams:nt.streams,time:nt.time,queryRange:nt.queryRange})};return window.addEventListener("message",et),()=>window.removeEventListener("message",et)}function addOverviewDeviceListener(s){sendAppMessage({type:"request_devices"});const o=et=>{const tt=et.data;tt.type==="overview_devices"&&s(tt.data)};return window.addEventListener("message",o),()=>window.removeEventListener("message",o)}function _typeof$1(s){return _typeof$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o){return typeof o}:function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof$1(s)}function toInteger(s){if(s===null||s===!0||s===!1)return NaN;var o=Number(s);return isNaN(o)?o:o<0?Math.ceil(o):Math.floor(o)}function requiredArgs(s,o){if(o.length1?"s":"")+" required, but only "+o.length+" present")}function toDate(s){requiredArgs(1,arguments);var o=Object.prototype.toString.call(s);return s instanceof Date||_typeof$1(s)==="object"&&o==="[object Date]"?new Date(s.getTime()):typeof s=="number"||o==="[object Number]"?new Date(s):((typeof s=="string"||o==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function addDays(s,o){requiredArgs(2,arguments);var et=toDate(s),tt=toInteger(o);return isNaN(tt)?new Date(NaN):(tt&&et.setDate(et.getDate()+tt),et)}function addMonths(s,o){requiredArgs(2,arguments);var et=toDate(s),tt=toInteger(o);if(isNaN(tt))return new Date(NaN);if(!tt)return et;var nt=et.getDate(),rt=new Date(et.getTime());rt.setMonth(et.getMonth()+tt+1,0);var it=rt.getDate();return nt>=it?rt:(et.setFullYear(rt.getFullYear(),rt.getMonth(),nt),et)}function addMilliseconds(s,o){requiredArgs(2,arguments);var et=toDate(s).getTime(),tt=toInteger(o);return new Date(et+tt)}var MILLISECONDS_IN_HOUR=36e5;function addHours(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addMilliseconds(s,et*MILLISECONDS_IN_HOUR)}var defaultOptions={};function getDefaultOptions(){return defaultOptions}function startOfWeek(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs(1,arguments);var lt=getDefaultOptions(),ut=toInteger((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate(s),ht=dt.getDay(),ct=(ht=it)throw new RangeError("Invalid interval");var ot=[],st=tt,at=Number((et=o?.step)!==null&&et!==void 0?et:1);if(at<1||isNaN(at))throw new RangeError("`options.step` must be a number equal to or greater than 1");for(;st.getTime()<=it;)ot.push(toDate(st)),st=addMinutes(st,at);return ot}function eachMonthOfInterval(s){requiredArgs(1,arguments);var o=s||{},et=toDate(o.start),tt=toDate(o.end),nt=tt.getTime(),rt=[];if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var it=et;for(it.setHours(0,0,0,0),it.setDate(1);it.getTime()<=nt;)rt.push(toDate(it)),it.setMonth(it.getMonth()+1);return rt}function startOfQuarter(s){requiredArgs(1,arguments);var o=toDate(s),et=o.getMonth(),tt=et-et%3;return o.setMonth(tt,1),o.setHours(0,0,0,0),o}function eachQuarterOfInterval(s){requiredArgs(1,arguments);var o=s||{},et=toDate(o.start),tt=toDate(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=startOfQuarter(et),it=startOfQuarter(tt);nt=it.getTime();for(var ot=[],st=rt;st.getTime()<=nt;)ot.push(toDate(st)),st=addQuarters(st,1);return ot}function eachWeekOfInterval(s,o){requiredArgs(1,arguments);var et=s||{},tt=toDate(et.start),nt=toDate(et.end),rt=nt.getTime();if(!(tt.getTime()<=rt))throw new RangeError("Invalid interval");var it=startOfWeek(tt,o),ot=startOfWeek(nt,o);it.setHours(15),ot.setHours(15),rt=ot.getTime();for(var st=[],at=it;at.getTime()<=rt;)at.setHours(0),st.push(toDate(at)),at=addWeeks(at,1),at.setHours(15);return st}function startOfMonth(s){requiredArgs(1,arguments);var o=toDate(s);return o.setDate(1),o.setHours(0,0,0,0),o}function endOfYear(s){requiredArgs(1,arguments);var o=toDate(s),et=o.getFullYear();return o.setFullYear(et+1,0,0),o.setHours(23,59,59,999),o}function startOfYear(s){requiredArgs(1,arguments);var o=toDate(s),et=new Date(0);return et.setFullYear(o.getFullYear(),0,1),et.setHours(0,0,0,0),et}function eachYearOfInterval(s){requiredArgs(1,arguments);var o=s||{},et=toDate(o.start),tt=toDate(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=[],it=et;for(it.setHours(0,0,0,0),it.setMonth(0,1);it.getTime()<=nt;)rt.push(toDate(it)),it.setFullYear(it.getFullYear()+1);return rt}function endOfHour(s){requiredArgs(1,arguments);var o=toDate(s);return o.setMinutes(59,59,999),o}function endOfWeek(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs(1,arguments);var lt=getDefaultOptions(),ut=toInteger((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate(s),ht=dt.getDay(),ct=(ht=1&&ht<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var ct=new Date(0);ct.setFullYear(ut+1,0,ht),ct.setHours(0,0,0,0);var pt=startOfWeek(ct,o),ft=new Date(0);ft.setFullYear(ut,0,ht),ft.setHours(0,0,0,0);var gt=startOfWeek(ft,o);return lt.getTime()>=pt.getTime()?ut+1:lt.getTime()>=gt.getTime()?ut:ut-1}function startOfWeekYear(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs(1,arguments);var lt=getDefaultOptions(),ut=toInteger((et=(tt=(nt=(rt=o?.firstWeekContainsDate)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.firstWeekContainsDate)!==null&&nt!==void 0?nt:lt.firstWeekContainsDate)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.firstWeekContainsDate)!==null&&et!==void 0?et:1),dt=getWeekYear(s,o),ht=new Date(0);ht.setFullYear(dt,0,ut),ht.setHours(0,0,0,0);var ct=startOfWeek(ht,o);return ct}var MILLISECONDS_IN_WEEK=6048e5;function getWeek(s,o){requiredArgs(1,arguments);var et=toDate(s),tt=startOfWeek(et,o).getTime()-startOfWeekYear(et,o).getTime();return Math.round(tt/MILLISECONDS_IN_WEEK)+1}function getYear(s){return requiredArgs(1,arguments),toDate(s).getFullYear()}function startOfHour(s){requiredArgs(1,arguments);var o=toDate(s);return o.setMinutes(0,0,0),o}function subDays(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addDays(s,-et)}function roundToNearestMinutes(s,o){var et;if(arguments.length<1)throw new TypeError("1 argument required, but only none provided present");var tt=toInteger((et=o?.nearestTo)!==null&&et!==void 0?et:1);if(tt<1||tt>30)throw new RangeError("`options.nearestTo` must be between 1 and 30");var nt=toDate(s),rt=nt.getSeconds(),it=nt.getMinutes()+rt/60,ot=getRoundingMethod(o?.roundingMethod),st=ot(it/tt)*tt,at=it%tt,lt=Math.round(at/tt)*tt;return new Date(nt.getFullYear(),nt.getMonth(),nt.getDate(),nt.getHours(),st+lt)}function subMonths(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addMonths(s,-et)}function subHours(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addHours(s,-et)}function subMinutes(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addMinutes(s,-et)}function subQuarters(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addQuarters(s,-et)}function subWeeks(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addWeeks(s,-et)}function subYears(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addYears(s,-et)}const millisecond$2=1,second$2=1e3,minute$2=60*second$2,hour$2=60*minute$2,day$2=24*hour$2,week$2=7*day$2,month$2=30*day$2,year$2=365*day$2,duration$2={millisecond:millisecond$2,second:second$2,minute:minute$2,hour:hour$2,day:day$2,week:week$2,month:month$2,year:year$2};function filterDataByType$1(s,o){return s.filter(et=>o.includes(et.type))}function filterDataByTime$1(s,o,et){const tt=o.getTime(),nt=et.getTime();return s.map(rt=>({...rt,points:rt.points.filter(([it])=>it>=tt&&itrt.length>0)}let StoreCache$1=class{constructor({capacity:s,timeout:o}={}){he(this,"entries",new Map),he(this,"metadata",new Map),he(this,"capacity"),he(this,"staleIntervalMs"),this.capacity=s||1e4,this.staleIntervalMs=o||duration$2.minute}get(s,o){const et=this.keyToCacheKey(s);return this.isStale(et)&&!this.isGenerating(et)&&o&&this.generate(s,o),this.entries.get(et)}set(s,o){const et=this.keyToCacheKey(s);this.metadata.set(et,{generating:!1,staleAt:performance.now()+this.staleIntervalMs});const tt=this.entries.get(et);JSON.stringify(tt)===JSON.stringify(o)||(this.entries.set(et,o),this.enforceMaxSize())}clear(){this.entries.clear(),[...this.metadata.values()].forEach(s=>s.generating=!1)}clearKey(s){this.metadata.delete(s),this.entries.delete(s)}keyToCacheKey(s){return JSON.stringify(s)}enforceMaxSize(){for(;this.metadata.size>this.capacity&&this.metadata.size>0;){const[s]=[...this.metadata.entries()].reduce(([o,et],[tt,nt])=>nt.staleAt{const it=this.metadata.get(et);return it?.generating!==nt||this.set(s,rt),rt}).catch(rt=>{throw this.metadata.delete(et),rt});this.metadata.set(et,{...tt,generating:nt,staleAt:performance.now()+this.staleIntervalMs})}};async function queryTelemetry(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}let QueryStore$1=class{constructor(){he(this,"queryStoreCache",new StoreCache$1({capacity:1e4,timeout:20*duration$2.second})),he(this,"liveQueryStoreCache",new StoreCache$1({capacity:1e4,timeout:200*duration$2.millisecond}))}moduleQuery(s,o,et,tt,nt,rt=!1){const it={...s,names:[...o],types:[...et]},ot=this.query(it,tt,nt,rt);return ot===void 0||ot==="too much data"?ot:filterDataByType$1(ot,et)}query(s,o,et,tt=!1){const nt={...s,start:startOfMinute(o).toISOString(),end:tt?et.toISOString():addMinutes(roundToNearestMinutes(et),1).toISOString(),latestOnly:tt},rt=et>addSeconds(new Date,-20);let it;return rt?it=this.liveQueryCache(nt):it=this.queryCache(nt),!it||it==="too much data"||tt?it:filterDataByTime$1(it,o,et)}queryCache(s){return this.queryStoreCache.get(s,async()=>{try{return await queryTelemetry(s)}catch(o){throw o}})}liveQueryCache(s){return this.liveQueryStoreCache.get(s,async()=>{try{return await queryTelemetry(s)}catch(o){throw o}})}};const queryStore=new QueryStore$1;function addStreamListener(s,o,et){const tt=nt=>{const rt=nt.data;if(rt.type==="module_data"){const{start:it,end:ot}=rt.queryRange;et(queryStore.moduleQuery({},s,o,new Date(it),new Date(ot),!1))}};return window.addEventListener("message",tt),()=>window.removeEventListener("message",tt)}async function getDate(s,o,et){return new Promise(tt=>{sendAppMessage({type:"request_date",minTime:o,maxTime:et,time:s});const nt=rt=>{const it=rt.data;it.type==="date_response"&&(window.removeEventListener("message",nt),tt(it.data))};window.addEventListener("message",nt)})}async function prompt(s,o){return new Promise(et=>{const tt=Math.random().toString();sendAppMessage({type:"prompt",promptId:tt,schema:s,okText:o?.okText,cancelText:o?.cancelText});const nt=rt=>{const it=rt.data;it.type==="prompt_response"&&it.promptId===tt&&et(it.data),window.removeEventListener("message",nt)};window.addEventListener("message",nt)})}const Yt=class{static isModule(){return getCurrentModuleContext()!==null}static async getCurrentModuleConfiguration(){let s=new URLSearchParams("");typeof window<"u"&&window.location&&(s=new URLSearchParams(window.location.search));const o=s.get("configuration");if(!(o===null||o.trim()===""))return getModuleConfiguration(o.trim())}static get isOnline(){return Yt._isOnline}static listenForConnectionEvents(){const s=o=>{const{data:et}=o;et.type==="formant_online"&&(this._isOnline=et.online)};return window.addEventListener("message",s),()=>window.removeEventListener("message",s)}static checkConnection(s=1e3){return new Promise((o,et)=>{const tt=setTimeout(()=>et(new Error("deadline expired: took too long")),s),nt=rt=>{window.removeEventListener("message",nt),clearTimeout(tt);const{data:it}=rt;it.type==="formant_online"&&(this._isOnline=it.online,o(it.online))};window.addEventListener("message",nt),sendAppMessage({type:"formant_online"})})}static waitForConnection(s=5e3){let o=!1;const et=new Promise((rt,it)=>{setTimeout(()=>{o=!0,it(new Error("deadline expired: took too long"))},s)}),tt=rt=>new Promise(it=>setTimeout(it,rt)),nt=async()=>{for(await tt(50);!o&&!(this.isOnline||await this.checkConnection);)await tt(500)};return Promise.race([et,nt()])}};let App=Yt;he(App,"getCurrentModuleContext",getCurrentModuleContext),he(App,"disableAnalyticsBottomBar",disableAnalyticsBottomBar),he(App,"goToDevice",goToDevice),he(App,"goToTime",goToTime),he(App,"refreshAuthToken",refreshAuthToken),he(App,"requestModuleData",requestModuleData),he(App,"sendChannelData",sendChannelData),he(App,"setModuleDateTimeRange",setModuleDateTimeRange),he(App,"setupModuleMenus",setupModuleMenus),he(App,"showMessage",showMessage),he(App,"addAccessTokenRefreshListener",addAccessTokenRefreshListener),he(App,"addChannelDataListener",addChannelDataListener),he(App,"addMenuListener",addMenuListener),he(App,"addModuleConfigurationListener",addModuleConfigurationListener),he(App,"addModuleDataListener",addModuleDataListener),he(App,"addOverviewDeviceListener",addOverviewDeviceListener),he(App,"addStreamListener",addStreamListener),he(App,"getDate",getDate),he(App,"prompt",prompt),he(App,"_isOnline",null);function defined$1(s,o){if(s!==void 0)return s;throw new Error(o||"Value is undefined")}function notNull$1(s,o){if(s!==null)return s;throw new Error(o||"Value is null")}function definedAndNotNull$1(s,o){return notNull$1(defined$1(s,o),o)}var dist={exports:{}};/*! For license information please see index.js.LICENSE.txt */(function(module,exports){(function(s,o){module.exports=o()})(window,function(){return function(s){function o(at){for(var lt,ut,dt=at[0],ht=at[1],ct=0,pt=[];ct1?"s":"")+" required, but only "+qt.length+" present")}function at(Ht){if(Ht===null||Ht===!0||Ht===!1)return NaN;var qt=Number(Ht);return isNaN(qt)?qt:qt<0?Math.ceil(qt):Math.floor(qt)}var lt={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},ut=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,dt=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,ht=/^([+-])(\d{2})(?::?(\d{2}))?$/;function ct(Ht){var qt,on={},Xt=Ht.split(lt.dateTimeDelimiter);if(Xt.length>2)return on;if(/:/.test(Xt[0])?qt=Xt[0]:(on.date=Xt[0],qt=Xt[1],lt.timeZoneDelimiter.test(on.date)&&(on.date=Ht.split(lt.timeZoneDelimiter)[0],qt=Ht.substr(on.date.length,Ht.length))),qt){var dn=lt.timezone.exec(qt);dn?(on.time=qt.replace(dn[1],""),on.timezone=dn[1]):on.time=qt}return on}function pt(Ht,qt){var on=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+qt)+"})|(\\d{2}|[+-]\\d{"+(2+qt)+"})$)"),Xt=Ht.match(on);if(!Xt)return{year:NaN,restDateString:""};var dn=Xt[1]?parseInt(Xt[1]):null,_n=Xt[2]?parseInt(Xt[2]):null;return{year:_n===null?dn:100*_n,restDateString:Ht.slice((Xt[1]||Xt[2]).length)}}function ft(Ht,qt){if(qt===null)return new Date(NaN);var on=Ht.match(ut);if(!on)return new Date(NaN);var Xt=!!on[4],dn=gt(on[1]),_n=gt(on[2])-1,Fn=gt(on[3]),Un=gt(on[4]),On=gt(on[5])-1;if(Xt)return function(hn,wn,Zn){return wn>=1&&wn<=53&&Zn>=0&&Zn<=6}(0,Un,On)?function(hn,wn,Zn){var Pn=new Date(0);Pn.setUTCFullYear(hn,0,4);var $n=Pn.getUTCDay()||7,Tr=7*(wn-1)+Zn+1-$n;return Pn.setUTCDate(Pn.getUTCDate()+Tr),Pn}(qt,Un,On):new Date(NaN);var gn=new Date(0);return function(hn,wn,Zn){return wn>=0&&wn<=11&&Zn>=1&&Zn<=(mt[wn]||(vt(hn)?29:28))}(qt,_n,Fn)&&function(hn,wn){return wn>=1&&wn<=(vt(hn)?366:365)}(qt,dn)?(gn.setUTCFullYear(qt,_n,Math.max(dn,Fn)),gn):new Date(NaN)}function gt(Ht){return Ht?parseInt(Ht):1}function yt(Ht){var qt=Ht.match(dt);if(!qt)return NaN;var on=Ut(qt[1]),Xt=Ut(qt[2]),dn=Ut(qt[3]);return function(_n,Fn,Un){return _n===24?Fn===0&&Un===0:Un>=0&&Un<60&&Fn>=0&&Fn<60&&_n>=0&&_n<25}(on,Xt,dn)?36e5*on+6e4*Xt+1e3*dn:NaN}function Ut(Ht){return Ht&&parseFloat(Ht.replace(",","."))||0}function Ft(Ht){if(Ht==="Z")return 0;var qt=Ht.match(ht);if(!qt)return 0;var on=qt[1]==="+"?-1:1,Xt=parseInt(qt[2]),dn=qt[3]&&parseInt(qt[3])||0;return function(_n,Fn){return Fn>=0&&Fn<=59}(0,dn)?on*(36e5*Xt+6e4*dn):NaN}var mt=[31,null,31,30,31,30,31,31,30,31,30,31];function vt(Ht){return Ht%400==0||Ht%4==0&&Ht%100!=0}var At=et(40);function Lt(Ht){return st(1,arguments),Ht instanceof Date||Object(At.a)(Ht)==="object"&&Object.prototype.toString.call(Ht)==="[object Date]"}function Rt(Ht){st(1,arguments);var qt=Object.prototype.toString.call(Ht);return Ht instanceof Date||Object(At.a)(Ht)==="object"&&qt==="[object Date]"?new Date(Ht.getTime()):typeof Ht=="number"||qt==="[object Number]"?new Date(Ht):(typeof Ht!="string"&&qt!=="[object String]"||typeof console>"u"||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function St(Ht){const qt=function(on,Xt){var dn;st(1,arguments);var _n=at((dn=Xt?.additionalDigits)!==null&&dn!==void 0?dn:2);if(_n!==2&&_n!==1&&_n!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(typeof on!="string"&&Object.prototype.toString.call(on)!=="[object String]")return new Date(NaN);var Fn,Un=ct(on);if(Un.date){var On=pt(Un.date,_n);Fn=ft(On.restDateString,On.year)}if(!Fn||isNaN(Fn.getTime()))return new Date(NaN);var gn,hn=Fn.getTime(),wn=0;if(Un.time&&(wn=yt(Un.time),isNaN(wn)))return new Date(NaN);if(!Un.timezone){var Zn=new Date(hn+wn),Pn=new Date(0);return Pn.setFullYear(Zn.getUTCFullYear(),Zn.getUTCMonth(),Zn.getUTCDate()),Pn.setHours(Zn.getUTCHours(),Zn.getUTCMinutes(),Zn.getUTCSeconds(),Zn.getUTCMilliseconds()),Pn}return gn=Ft(Un.timezone),isNaN(gn)?new Date(NaN):new Date(hn+wn+gn)}(Ht);if(!function(on){if(st(1,arguments),!Lt(on)&&typeof on!="number")return!1;var Xt=Rt(on);return!isNaN(Number(Xt))}(qt))throw new Error(`Invalid ISO 8601 date string (${Ht})`);return qt}const Tt=Math.pow(2,20),Bt=Tt;var xt=et(3),Ct=et(28);function kt(Ht){return it()(Ht,{cycles:!0})}var Nt=function(Ht,qt){var on={};for(var Xt in Ht)Object.prototype.hasOwnProperty.call(Ht,Xt)&&qt.indexOf(Xt)<0&&(on[Xt]=Ht[Xt]);if(Ht!=null&&typeof Object.getOwnPropertySymbols=="function"){var dn=0;for(Xt=Object.getOwnPropertySymbols(Ht);dnon?Object(Ct.a)(On):On;if(!Ht.stack)return{message:kt(Xt(Ht))};const{name:dn,message:_n,stack:Fn}=Ht,Un=Nt(Ht,["name","message","stack"]);return{name:dn,message:_n!==void 0?_n:kt(Xt(Ht)),stack:Fn,meta:Un&&Object.keys(Un).length===0?void 0:Xt(Un)}}function Wt(Ht,qt={}){const{message:on,stack:Xt,meta:dn}=Ot(Ht,qt);return`${Xt||on||""}${dn&&Object.keys(dn).length>0?" -- "+kt(dn):""}`}var Dt=et(236);const Et=Object(Dt.a)();var Pt=et(14),zt=et.n(Pt),en=function(Ht,qt,on,Xt){return new(on||(on=Promise))(function(dn,_n){function Fn(gn){try{On(Xt.next(gn))}catch(hn){_n(hn)}}function Un(gn){try{On(Xt.throw(gn))}catch(hn){_n(hn)}}function On(gn){var hn;gn.done?dn(gn.value):(hn=gn.value,hn instanceof on?hn:new on(function(wn){wn(hn)})).then(Fn,Un)}On((Xt=Xt.apply(Ht,qt||[])).next())})},Kt=function(Ht,qt){var on={};for(var Xt in Ht)Object.prototype.hasOwnProperty.call(Ht,Xt)&&qt.indexOf(Xt)<0&&(on[Xt]=Ht[Xt]);if(Ht!=null&&typeof Object.getOwnPropertySymbols=="function"){var dn=0;for(Xt=Object.getOwnPropertySymbols(Ht);dn{var{timestamp:qt,level:on,message:Xt,error:dn}=Ht,_n=Zt(Ht,["timestamp","level","message","error"]);const Fn=Object.assign(Object.assign({timestamp:qt?St(qt).getTime():new Date().getTime(),level:on.toUpperCase(),message:Xt},dn?{error:Ot(dn)}:{}),{meta:Object.assign(Object.assign({},jt),_n)});return it()(Fn,{cycles:!0})}):ot.format.printf(Ht=>{var{timestamp:qt,level:on,message:Xt,error:dn}=Ht,_n=Zt(Ht,["timestamp","level","message","error"]);let Fn=`${qt||new Date().toISOString()} ${on.toUpperCase()}: ${Xt} `;return Object.keys(_n).length>0&&(Fn+=it()(_n,{cycles:!0})),dn&&(Fn+=` -`+Wt(dn)),Fn}),It=Object(ot.createLogger)({level:xt.g});if(It.add(new ot.transports.Console({format:Vt,level:"debug"})),It.transports.forEach(Ht=>{Ht.silent=!xt.h}),xt.e&&It.add(new nn(xt.e,jt)),xt.i){const Ht=nt.resolve(tt.tmpdir(),`silly-${xt.a}.log`);It.debug("Logging silly logs to file",{filename:Ht}),It.add(new ot.transports.File({filename:Ht,maxsize:1*Bt,maxFiles:10,format:ot.format.combine(($t="silly",Object(ot.format)(qt=>qt.level===$t&&qt)()),Vt),level:"silly"}))}var $t},function(s,o,et){et.d(o,"a",function(){return nt});const tt=864e5,nt={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:tt,week:6048e5,month:2592e6,year:31536e6}},function(s,o){var et,tt,nt=s.exports={};function rt(){throw new Error("setTimeout has not been defined")}function it(){throw new Error("clearTimeout has not been defined")}function ot(ft){if(et===setTimeout)return setTimeout(ft,0);if((et===rt||!et)&&setTimeout)return et=setTimeout,setTimeout(ft,0);try{return et(ft,0)}catch{try{return et.call(null,ft,0)}catch{return et.call(this,ft,0)}}}(function(){try{et=typeof setTimeout=="function"?setTimeout:rt}catch{et=rt}try{tt=typeof clearTimeout=="function"?clearTimeout:it}catch{tt=it}})();var st,at=[],lt=!1,ut=-1;function dt(){lt&&st&&(lt=!1,st.length?at=st.concat(at):ut=-1,at.length&&ht())}function ht(){if(!lt){var ft=ot(dt);lt=!0;for(var gt=at.length;gt;){for(st=at,at=[];++ut1)for(var yt=1;yt=ot())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ot().toString(16)+" bytes");return 0|Vt}function pt(Vt,It){if(at.isBuffer(Vt))return Vt.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(Vt)||Vt instanceof ArrayBuffer))return Vt.byteLength;typeof Vt!="string"&&(Vt=""+Vt);var $t=Vt.length;if($t===0)return 0;for(var Ht=!1;;)switch(It){case"ascii":case"latin1":case"binary":return $t;case"utf8":case"utf-8":case void 0:return nn(Vt).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*$t;case"hex":return $t>>>1;case"base64":return Zt(Vt).length;default:if(Ht)return nn(Vt).length;It=(""+It).toLowerCase(),Ht=!0}}function ft(Vt,It,$t){var Ht=!1;if((It===void 0||It<0)&&(It=0),It>this.length||(($t===void 0||$t>this.length)&&($t=this.length),$t<=0)||($t>>>=0)<=(It>>>=0))return"";for(Vt||(Vt="utf8");;)switch(Vt){case"hex":return Ct(this,It,$t);case"utf8":case"utf-8":return Tt(this,It,$t);case"ascii":return Bt(this,It,$t);case"latin1":case"binary":return xt(this,It,$t);case"base64":return St(this,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return kt(this,It,$t);default:if(Ht)throw new TypeError("Unknown encoding: "+Vt);Vt=(Vt+"").toLowerCase(),Ht=!0}}function gt(Vt,It,$t){var Ht=Vt[It];Vt[It]=Vt[$t],Vt[$t]=Ht}function yt(Vt,It,$t,Ht,qt){if(Vt.length===0)return-1;if(typeof $t=="string"?(Ht=$t,$t=0):$t>2147483647?$t=2147483647:$t<-2147483648&&($t=-2147483648),$t=+$t,isNaN($t)&&($t=qt?0:Vt.length-1),$t<0&&($t=Vt.length+$t),$t>=Vt.length){if(qt)return-1;$t=Vt.length-1}else if($t<0){if(!qt)return-1;$t=0}if(typeof It=="string"&&(It=at.from(It,Ht)),at.isBuffer(It))return It.length===0?-1:Ut(Vt,It,$t,Ht,qt);if(typeof It=="number")return It&=255,at.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?qt?Uint8Array.prototype.indexOf.call(Vt,It,$t):Uint8Array.prototype.lastIndexOf.call(Vt,It,$t):Ut(Vt,[It],$t,Ht,qt);throw new TypeError("val must be string, number or Buffer")}function Ut(Vt,It,$t,Ht,qt){var on,Xt=1,dn=Vt.length,_n=It.length;if(Ht!==void 0&&((Ht=String(Ht).toLowerCase())==="ucs2"||Ht==="ucs-2"||Ht==="utf16le"||Ht==="utf-16le")){if(Vt.length<2||It.length<2)return-1;Xt=2,dn/=2,_n/=2,$t/=2}function Fn(hn,wn){return Xt===1?hn[wn]:hn.readUInt16BE(wn*Xt)}if(qt){var Un=-1;for(on=$t;ondn&&($t=dn-_n),on=$t;on>=0;on--){for(var On=!0,gn=0;gn<_n;gn++)if(Fn(Vt,on+gn)!==Fn(It,gn)){On=!1;break}if(On)return on}return-1}function Ft(Vt,It,$t,Ht){$t=Number($t)||0;var qt=Vt.length-$t;Ht?(Ht=Number(Ht))>qt&&(Ht=qt):Ht=qt;var on=It.length;if(on%2!=0)throw new TypeError("Invalid hex string");Ht>on/2&&(Ht=on/2);for(var Xt=0;Xt>8,_n=Xt%256,Fn.push(_n),Fn.push(dn);return Fn}(It,Vt.length-$t),Vt,$t,Ht)}function St(Vt,It,$t){return It===0&&$t===Vt.length?nt.fromByteArray(Vt):nt.fromByteArray(Vt.slice(It,$t))}function Tt(Vt,It,$t){$t=Math.min(Vt.length,$t);for(var Ht=[],qt=It;qt<$t;){var on,Xt,dn,_n,Fn=Vt[qt],Un=null,On=Fn>239?4:Fn>223?3:Fn>191?2:1;if(qt+On<=$t)switch(On){case 1:Fn<128&&(Un=Fn);break;case 2:(192&(on=Vt[qt+1]))==128&&(_n=(31&Fn)<<6|63&on)>127&&(Un=_n);break;case 3:on=Vt[qt+1],Xt=Vt[qt+2],(192&on)==128&&(192&Xt)==128&&(_n=(15&Fn)<<12|(63&on)<<6|63&Xt)>2047&&(_n<55296||_n>57343)&&(Un=_n);break;case 4:on=Vt[qt+1],Xt=Vt[qt+2],dn=Vt[qt+3],(192&on)==128&&(192&Xt)==128&&(192&dn)==128&&(_n=(15&Fn)<<18|(63&on)<<12|(63&Xt)<<6|63&dn)>65535&&_n<1114112&&(Un=_n)}Un===null?(Un=65533,On=1):Un>65535&&(Un-=65536,Ht.push(Un>>>10&1023|55296),Un=56320|1023&Un),Ht.push(Un),qt+=On}return function(gn){var hn=gn.length;if(hn<=4096)return String.fromCharCode.apply(String,gn);for(var wn="",Zn=0;Zn0&&(Vt=this.toString("hex",0,It).match(/.{2}/g).join(" "),this.length>It&&(Vt+=" ... ")),""},at.prototype.compare=function(Vt,It,$t,Ht,qt){if(!at.isBuffer(Vt))throw new TypeError("Argument must be a Buffer");if(It===void 0&&(It=0),$t===void 0&&($t=Vt?Vt.length:0),Ht===void 0&&(Ht=0),qt===void 0&&(qt=this.length),It<0||$t>Vt.length||Ht<0||qt>this.length)throw new RangeError("out of range index");if(Ht>=qt&&It>=$t)return 0;if(Ht>=qt)return-1;if(It>=$t)return 1;if(this===Vt)return 0;for(var on=(qt>>>=0)-(Ht>>>=0),Xt=($t>>>=0)-(It>>>=0),dn=Math.min(on,Xt),_n=this.slice(Ht,qt),Fn=Vt.slice(It,$t),Un=0;Unqt)&&($t=qt),Vt.length>0&&($t<0||It<0)||It>this.length)throw new RangeError("Attempt to write outside buffer bounds");Ht||(Ht="utf8");for(var on=!1;;)switch(Ht){case"hex":return Ft(this,Vt,It,$t);case"utf8":case"utf-8":return mt(this,Vt,It,$t);case"ascii":return vt(this,Vt,It,$t);case"latin1":case"binary":return At(this,Vt,It,$t);case"base64":return Lt(this,Vt,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Rt(this,Vt,It,$t);default:if(on)throw new TypeError("Unknown encoding: "+Ht);Ht=(""+Ht).toLowerCase(),on=!0}},at.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Bt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(127&Vt[qt]);return Ht}function xt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(Vt[qt]);return Ht}function Ct(Vt,It,$t){var Ht=Vt.length;(!It||It<0)&&(It=0),(!$t||$t<0||$t>Ht)&&($t=Ht);for(var qt="",on=It;on<$t;++on)qt+=Kt(Vt[on]);return qt}function kt(Vt,It,$t){for(var Ht=Vt.slice(It,$t),qt="",on=0;on$t)throw new RangeError("Trying to access beyond buffer length")}function Ot(Vt,It,$t,Ht,qt,on){if(!at.isBuffer(Vt))throw new TypeError('"buffer" argument must be a Buffer instance');if(It>qt||ItVt.length)throw new RangeError("Index out of range")}function Wt(Vt,It,$t,Ht){It<0&&(It=65535+It+1);for(var qt=0,on=Math.min(Vt.length-$t,2);qt>>8*(Ht?qt:1-qt)}function Dt(Vt,It,$t,Ht){It<0&&(It=4294967295+It+1);for(var qt=0,on=Math.min(Vt.length-$t,4);qt>>8*(Ht?qt:3-qt)&255}function Et(Vt,It,$t,Ht,qt,on){if($t+Ht>Vt.length)throw new RangeError("Index out of range");if($t<0)throw new RangeError("Index out of range")}function Pt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,4),rt.write(Vt,It,$t,Ht,23,4),$t+4}function zt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,8),rt.write(Vt,It,$t,Ht,52,8),$t+8}at.prototype.slice=function(Vt,It){var $t,Ht=this.length;if((Vt=~~Vt)<0?(Vt+=Ht)<0&&(Vt=0):Vt>Ht&&(Vt=Ht),(It=It===void 0?Ht:~~It)<0?(It+=Ht)<0&&(It=0):It>Ht&&(It=Ht),It0&&(qt*=256);)Ht+=this[Vt+--It]*qt;return Ht},at.prototype.readUInt8=function(Vt,It){return It||Nt(Vt,1,this.length),this[Vt]},at.prototype.readUInt16LE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]|this[Vt+1]<<8},at.prototype.readUInt16BE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]<<8|this[Vt+1]},at.prototype.readUInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),(this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16)+16777216*this[Vt+3]},at.prototype.readUInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),16777216*this[Vt]+(this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3])},at.prototype.readIntLE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=this[Vt],qt=1,on=0;++on=(qt*=128)&&(Ht-=Math.pow(2,8*It)),Ht},at.prototype.readIntBE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=It,qt=1,on=this[Vt+--Ht];Ht>0&&(qt*=256);)on+=this[Vt+--Ht]*qt;return on>=(qt*=128)&&(on-=Math.pow(2,8*It)),on},at.prototype.readInt8=function(Vt,It){return It||Nt(Vt,1,this.length),128&this[Vt]?-1*(255-this[Vt]+1):this[Vt]},at.prototype.readInt16LE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt]|this[Vt+1]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt16BE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt+1]|this[Vt]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16|this[Vt+3]<<24},at.prototype.readInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]<<24|this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3]},at.prototype.readFloatLE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!0,23,4)},at.prototype.readFloatBE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!1,23,4)},at.prototype.readDoubleLE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!0,52,8)},at.prototype.readDoubleBE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!1,52,8)},at.prototype.writeUIntLE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=1,on=0;for(this[It]=255&Vt;++on<$t&&(qt*=256);)this[It+on]=Vt/qt&255;return It+$t},at.prototype.writeUIntBE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=$t-1,on=1;for(this[It+qt]=255&Vt;--qt>=0&&(on*=256);)this[It+qt]=Vt/on&255;return It+$t},at.prototype.writeUInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,255,0),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),this[It]=255&Vt,It+1},at.prototype.writeUInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Wt(this,Vt,It,!0),It+2},at.prototype.writeUInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Wt(this,Vt,It,!1),It+2},at.prototype.writeUInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It+3]=Vt>>>24,this[It+2]=Vt>>>16,this[It+1]=Vt>>>8,this[It]=255&Vt):Dt(this,Vt,It,!0),It+4},at.prototype.writeUInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeIntLE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=0,Xt=1,dn=0;for(this[It]=255&Vt;++on<$t&&(Xt*=256);)Vt<0&&dn===0&&this[It+on-1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeIntBE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=$t-1,Xt=1,dn=0;for(this[It+on]=255&Vt;--on>=0&&(Xt*=256);)Vt<0&&dn===0&&this[It+on+1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,127,-128),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),Vt<0&&(Vt=255+Vt+1),this[It]=255&Vt,It+1},at.prototype.writeInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Wt(this,Vt,It,!0),It+2},at.prototype.writeInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Wt(this,Vt,It,!1),It+2},at.prototype.writeInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8,this[It+2]=Vt>>>16,this[It+3]=Vt>>>24):Dt(this,Vt,It,!0),It+4},at.prototype.writeInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),Vt<0&&(Vt=4294967295+Vt+1),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeFloatLE=function(Vt,It,$t){return Pt(this,Vt,It,!0,$t)},at.prototype.writeFloatBE=function(Vt,It,$t){return Pt(this,Vt,It,!1,$t)},at.prototype.writeDoubleLE=function(Vt,It,$t){return zt(this,Vt,It,!0,$t)},at.prototype.writeDoubleBE=function(Vt,It,$t){return zt(this,Vt,It,!1,$t)},at.prototype.copy=function(Vt,It,$t,Ht){if($t||($t=0),Ht||Ht===0||(Ht=this.length),It>=Vt.length&&(It=Vt.length),It||(It=0),Ht>0&&Ht<$t&&(Ht=$t),Ht===$t||Vt.length===0||this.length===0)return 0;if(It<0)throw new RangeError("targetStart out of bounds");if($t<0||$t>=this.length)throw new RangeError("sourceStart out of bounds");if(Ht<0)throw new RangeError("sourceEnd out of bounds");Ht>this.length&&(Ht=this.length),Vt.length-It=0;--qt)Vt[qt+It]=this[qt+$t];else if(on<1e3||!at.TYPED_ARRAY_SUPPORT)for(qt=0;qt>>=0,$t=$t===void 0?this.length:$t>>>0,Vt||(Vt=0),typeof Vt=="number")for(on=It;on<$t;++on)this[on]=Vt;else{var Xt=at.isBuffer(Vt)?Vt:nn(new at(Vt,Ht).toString()),dn=Xt.length;for(on=0;on<$t-It;++on)this[on+It]=Xt[on%dn]}return this};var en=/[^+\/0-9A-Za-z-_]/g;function Kt(Vt){return Vt<16?"0"+Vt.toString(16):Vt.toString(16)}function nn(Vt,It){var $t;It=It||1/0;for(var Ht=Vt.length,qt=null,on=[],Xt=0;Xt55295&&$t<57344){if(!qt){if($t>56319){(It-=3)>-1&&on.push(239,191,189);continue}if(Xt+1===Ht){(It-=3)>-1&&on.push(239,191,189);continue}qt=$t;continue}if($t<56320){(It-=3)>-1&&on.push(239,191,189),qt=$t;continue}$t=65536+(qt-55296<<10|$t-56320)}else qt&&(It-=3)>-1&&on.push(239,191,189);if(qt=null,$t<128){if((It-=1)<0)break;on.push($t)}else if($t<2048){if((It-=2)<0)break;on.push($t>>6|192,63&$t|128)}else if($t<65536){if((It-=3)<0)break;on.push($t>>12|224,$t>>6&63|128,63&$t|128)}else{if(!($t<1114112))throw new Error("Invalid code point");if((It-=4)<0)break;on.push($t>>18|240,$t>>12&63|128,$t>>6&63|128,63&$t|128)}}return on}function Zt(Vt){return nt.toByteArray(function(It){if((It=function($t){return $t.trim?$t.trim():$t.replace(/^\s+|\s+$/g,"")}(It).replace(en,"")).length<2)return"";for(;It.length%4!=0;)It+="=";return It}(Vt))}function jt(Vt,It,$t,Ht){for(var qt=0;qt=It.length||qt>=Vt.length);++qt)It[qt+$t]=Vt[qt];return qt}}).call(this,et(6))},function(s,o){var et;et=function(){return this}();try{et=et||new Function("return this")()}catch{typeof window=="object"&&(et=window)}s.exports=et},function(s,o){typeof Object.create=="function"?s.exports=function(et,tt){tt&&(et.super_=tt,et.prototype=Object.create(tt.prototype,{constructor:{value:et,enumerable:!1,writable:!0,configurable:!0}}))}:s.exports=function(et,tt){if(tt){et.super_=tt;var nt=function(){};nt.prototype=tt.prototype,et.prototype=new nt,et.prototype.constructor=et}}},function(s,o,et){function tt(dt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ht){return typeof ht}:function(ht){return ht&&typeof Symbol=="function"&&ht.constructor===Symbol&&ht!==Symbol.prototype?"symbol":typeof ht})(dt)}function nt(dt,ht){if(ht&&(tt(ht)==="object"||typeof ht=="function"))return ht;if(ht!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return rt(dt)}function rt(dt){if(dt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return dt}function it(dt){var ht=typeof Map=="function"?new Map:void 0;return(it=function(ct){if(ct===null||(pt=ct,Function.toString.call(pt).indexOf("[native code]")===-1))return ct;var pt;if(typeof ct!="function")throw new TypeError("Super expression must either be null or a function");if(ht!==void 0){if(ht.has(ct))return ht.get(ct);ht.set(ct,ft)}function ft(){return ot(ct,arguments,lt(this).constructor)}return ft.prototype=Object.create(ct.prototype,{constructor:{value:ft,enumerable:!1,writable:!0,configurable:!0}}),at(ft,ct)})(dt)}function ot(dt,ht,ct){return(ot=st()?Reflect.construct.bind():function(pt,ft,gt){var yt=[null];yt.push.apply(yt,ft);var Ut=new(Function.bind.apply(pt,yt));return gt&&at(Ut,gt.prototype),Ut}).apply(null,arguments)}function st(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function at(dt,ht){return(at=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(ct,pt){return ct.__proto__=pt,ct})(dt,ht)}function lt(dt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(ht){return ht.__proto__||Object.getPrototypeOf(ht)})(dt)}var ut=function(dt){(function(yt,Ut){if(typeof Ut!="function"&&Ut!==null)throw new TypeError("Super expression must either be null or a function");yt.prototype=Object.create(Ut&&Ut.prototype,{constructor:{value:yt,writable:!0,configurable:!0}}),Object.defineProperty(yt,"prototype",{writable:!1}),Ut&&at(yt,Ut)})(gt,dt);var ht,ct,pt,ft=(ht=gt,ct=st(),function(){var yt,Ut=lt(ht);if(ct){var Ft=lt(this).constructor;yt=Reflect.construct(Ut,arguments,Ft)}else yt=Ut.apply(this,arguments);return nt(this,yt)});function gt(yt){var Ut;return function(Ft,mt){if(!(Ft instanceof mt))throw new TypeError("Cannot call a class as a function")}(this,gt),Ut=ft.call(this,`Format functions must be synchronous taking a two arguments: (info, opts) +`}}}return rt}(this)},s}(),Z=/(a)(d)/gi,K=function(s){return String.fromCharCode(s+(s>25?39:97))};function Q(s){var o,et="";for(o=Math.abs(s);o>52;o=o/52|0)et=K(o%52)+et;return(K(o%52)+et).replace(Z,"$1-$2")}var ee=function(s,o){for(var et=o.length;et;)s=33*s^o.charCodeAt(--et);return s},te=function(s){return ee(5381,s)};function ne(s){for(var o=0;o>>0);if(!et.hasNameForId(nt,ot)){var st=tt(it,"."+ot,void 0,nt);et.insertRules(nt,ot,st)}rt.push(ot),this.staticRulesId=ot}else{for(var at=this.rules.length,lt=ee(this.baseHash,tt.hash),ut="",dt=0;dt>>0);if(!et.hasNameForId(nt,ft)){var gt=tt(ut,"."+ft,void 0,nt);et.insertRules(nt,ft,gt)}rt.push(ft)}}return rt.join(" ")},s}(),se=/^\s*\/\/.*$/gm,ie=[":","[",".","#"];function ae(s){var o,et,tt,nt,rt=s===void 0?w:s,it=rt.options,ot=it===void 0?w:it,st=rt.plugins,at=st===void 0?S:st,lt=new stylis_min(ot),ut=[],dt=function(pt){function ft(gt){if(gt)try{pt(gt+"}")}catch{}}return function(gt,yt,Ut,Ft,mt,vt,At,Lt,Rt,St){switch(gt){case 1:if(Rt===0&&yt.charCodeAt(0)===64)return pt(yt+";"),"";break;case 2:if(Lt===0)return yt+"/*|*/";break;case 3:switch(Lt){case 102:case 112:return pt(Ut[0]+yt),"";default:return yt+(St===0?"/*|*/":"")}case-2:yt.split("/*|*/}").forEach(ft)}}}(function(pt){ut.push(pt)}),ht=function(pt,ft,gt){return ft===0&&ie.indexOf(gt[et.length])!==-1||gt.match(nt)?pt:"."+o};function ct(pt,ft,gt,yt){yt===void 0&&(yt="&");var Ut=pt.replace(se,""),Ft=ft&>?gt+" "+ft+" { "+Ut+" }":Ut;return o=yt,et=ft,tt=new RegExp("\\"+et+"\\b","g"),nt=new RegExp("(\\"+et+"\\b){2,}"),lt(gt||!ft?"":ft,Ft)}return lt.use([].concat(at,[function(pt,ft,gt){pt===2&>.length&>[0].lastIndexOf(et)>0&&(gt[0]=gt[0].replace(tt,ht))},dt,function(pt){if(pt===-2){var ft=ut;return ut=[],ft}}])),ct.hash=at.length?at.reduce(function(pt,ft){return ft.name||D(15),ee(pt,ft.name)},5381).toString():"",ct}var ce=React$1.createContext();ce.Consumer;var le=React$1.createContext(),de=(le.Consumer,new X),he$1=ae();function pe(){return reactExports.useContext(ce)||de}function fe(){return reactExports.useContext(le)||he$1}var ye=function(){function s(o,et){var tt=this;this.inject=function(nt,rt){rt===void 0&&(rt=he$1);var it=tt.name+rt.hash;nt.hasNameForId(tt.id,it)||nt.insertRules(tt.id,it,rt(tt.rules,it,"@keyframes"))},this.toString=function(){return D(12,String(tt.name))},this.name=o,this.id="sc-keyframes-"+o,this.rules=et}return s.prototype.getName=function(o){return o===void 0&&(o=he$1),this.name+o.hash},s}(),ve=/([A-Z])/,ge=/([A-Z])/g,Se=/^ms-/,we=function(s){return"-"+s.toLowerCase()};function Ee(s){return ve.test(s)?s.replace(ge,we).replace(Se,"-ms-"):s}var be=function(s){return s==null||s===!1||s===""};function _e(s,o,et,tt){if(Array.isArray(s)){for(var nt,rt=[],it=0,ot=s.length;it1?o-1:0),tt=1;tt?@[\\\]^`{|}~-]+/g,De=/(^-|-$)/g;function je(s){return s.replace(Re,"-").replace(De,"")}var Te=function(s){return Q(te(s)>>>0)};function xe(s){return typeof s=="string"&&!0}var ke=function(s){return typeof s=="function"||typeof s=="object"&&s!==null&&!Array.isArray(s)},Ve=function(s){return s!=="__proto__"&&s!=="constructor"&&s!=="prototype"};function Be(s,o,et){var tt=s[et];ke(o)&&ke(tt)?ze(tt,o):s[et]=o}function ze(s){for(var o=arguments.length,et=new Array(o>1?o-1:0),tt=1;tt=0||(St[Lt]=vt[Lt]);return St}(o,["componentId"]),mt=Ut&&Ut+"-"+(xe(yt)?yt:je(b(yt)));return Ye(yt,y({},Ft,{attrs:dt,componentId:mt}),et)},Object.defineProperty(ct,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(yt){this._foldedDefaultProps=tt?ze({},s.defaultProps,yt):yt}}),Object.defineProperty(ct,"toString",{value:function(){return"."+ct.styledComponentId}}),nt&&m(ct,s,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),ct}var qe=function(s){return function o(et,tt,nt){if(nt===void 0&&(nt=w),!reactIsExports.isValidElementType(tt))return D(1,String(tt));var rt=function(){return et(tt,nt,Ae.apply(void 0,arguments))};return rt.withConfig=function(it){return o(et,tt,y({},nt,{},it))},rt.attrs=function(it){return o(et,tt,y({},nt,{attrs:Array.prototype.concat(nt.attrs,it).filter(Boolean)}))},rt}(Ye,s)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach(function(s){qe[s]=qe(s)});const styled=qe;function LayerIcon({active:s}){return jsxs$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{d:"M9.00001 10.9267L4.35287 7.05273L9.00001 3.17878L13.6471 7.05273L9.00001 10.9267Z",stroke:s?"#FFF":"#BAC4E2",strokeWidth:"2"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.71179 11.4992L8.35968 16.2074L9 16.7411L9.64031 16.2074L15.2882 11.4992L13.7265 10.1973L9 14.1374L4.27352 10.1973L2.71179 11.4992Z",fill:s?"#FFF":"#BAC4E2"})]})}function EyeIcon(){return jsxs$2("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.14398 11.4616C4.82104 7.02853 8.09047 4.54999 12 4.54999C15.9095 4.54999 19.179 7.02853 21.856 11.4616C22.0476 11.7789 22.048 12.1761 21.8571 12.4937C19.191 16.9292 15.921 19.4071 12 19.4071C8.07895 19.4071 4.80905 16.9292 2.14292 12.4937C1.95198 12.1761 1.95239 11.7789 2.14398 11.4616ZM4.17638 11.9797C6.57637 15.7502 9.1981 17.4071 12 17.4071C14.8019 17.4071 17.4236 15.7502 19.8236 11.9797C17.4121 8.20659 14.7903 6.54999 12 6.54999C9.20971 6.54999 6.58787 8.20659 4.17638 11.9797Z",fill:"white"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.0644 14.9358C13.662 14.9358 14.9572 13.6406 14.9572 12.0429C14.9572 11.1993 14.5961 10.44 14.02 9.91118C13.505 9.43857 12.8184 9.15009 12.0644 9.15009C10.4667 9.15009 9.17151 10.4453 9.17151 12.0429C9.17151 13.6406 10.4667 14.9358 12.0644 14.9358Z",fill:"white"})]})}function EyeCloseIcon(){return jsx$2("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.34223 14.6222C7.16729 14.0938 6.06407 13.3052 5.03075 12.2761L2.64019 14.2682L1.35983 12.7318L3.70532 10.7772C3.1631 10.087 2.64239 9.32476 2.14288 8.49375L3.85703 7.46338C6.34318 11.5994 9.07328 13.4071 12 13.4071C14.9266 13.4071 17.6567 11.5994 20.1429 7.46338L21.857 8.49375C21.3575 9.32474 20.8368 10.087 20.2946 10.7772L22.6402 12.7318L21.3598 14.2682L18.9692 12.2761C17.9359 13.3052 16.8327 14.0938 15.6578 14.6222L16.908 17.3309L15.092 18.169L13.7392 15.238C13.1743 15.3501 12.5946 15.4071 12 15.4071C11.4053 15.4071 10.8256 15.3501 10.2608 15.238L8.90796 18.169L7.09204 17.3309L8.34223 14.6222Z",fill:"#657197"})})}function Warning(){return jsx$2("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{d:"M9 13H11V15H9V13ZM9 5H11V11H9V5ZM9.99 0C4.47 0 0 4.48 0 10C0 15.52 4.47 20 9.99 20C15.52 20 20 15.52 20 10C20 4.48 15.52 0 9.99 0ZM10 18C5.58 18 2 14.42 2 10C2 5.58 5.58 2 10 2C14.42 2 18 5.58 18 10C18 14.42 14.42 18 10 18Z",fill:"#BAC4E2"})})}function ConfigArrow(){return jsxs$2("svg",{width:"11",height:"40",viewBox:"0 0 11 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.23327 2L6.23327 40L4.7666 40L4.7666 2L6.23327 2Z",fill:"#18D2FF"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.50546 2.90731L1.624 7.05859L0.586914 5.94941L4.98691 1.24352C5.2733 0.937231 5.73762 0.937231 6.024 1.24352L10.424 5.94941L9.38691 7.05859L5.50546 2.90731Z",fill:"#18D2FF"})]})}function CheckIcon(){return jsx$2("svg",{width:"14",height:"12",viewBox:"0 0 14 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.5392 2.02248L4.48528 11.3639L0.162109 6.90344L1.23921 5.85948L4.48528 9.2086L12.4621 0.978516L13.5392 2.02248Z",fill:"white"})})}function WaypointToggleIcon(){return jsxs$2("svg",{width:"20",height:"24",viewBox:"0 0 20 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 17.8438 7.69922)",stroke:"#BAC4E2",strokeWidth:"0.75"}),jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 13.4609 14.1641)",stroke:"#BAC4E2",strokeWidth:"0.75"}),jsx$2("path",{d:"M15.7656 10.2734L13.2578 13.8471",stroke:"#BAC4E2",strokeWidth:"0.75",strokeLinecap:"round"}),jsx$2("path",{d:"M7.04688 10.2734L4.53906 13.8471",stroke:"#BAC4E2",strokeWidth:"0.75",strokeLinecap:"round"}),jsx$2("path",{d:"M8.71094 10.2734L11.2187 13.8471",stroke:"#BAC4E2",strokeWidth:"0.75",strokeLinecap:"round"}),jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 9.07812 7.69922)",stroke:"#BAC4E2",strokeWidth:"0.75"}),jsx$2("circle",{cx:"1.125",cy:"1.125",r:"1.5",transform:"matrix(-1 0 0 1 4.69336 14.1641)",stroke:"#BAC4E2",strokeWidth:"0.75"})]})}function BooleanToggleTrueIcon({onClick:s}){return jsxs$2("svg",{width:"36",height:"22",viewBox:"0 0 36 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("mask",{id:"mask0_471_35715",maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"36",height:"22",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M36 0H0V22H36V0ZM25 21C30.5228 21 35 16.5228 35 11C35 5.47715 30.5228 1 25 1C19.4772 1 15 5.47715 15 11C15 16.5228 19.4772 21 25 21Z",fill:"#D9D9D9"})}),jsx$2("g",{mask:"url(#mask0_471_35715)",children:jsx$2("rect",{x:"3",y:"7",width:"30",height:"9",rx:"4.5",fill:"#282F45",onClick:()=>s&&s()})}),jsx$2("circle",{cx:"25",cy:"11",r:"8",fill:"#18D2FF",onClick:()=>s&&s()})]})}function BooleanToggleFalseIcon({onClick:s}){return jsxs$2("svg",{width:"36",height:"22",viewBox:"0 0 36 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("mask",{id:"mask0_508_180629",maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"36",height:"22",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M36 0H0V22H36V0ZM11 21C16.5228 21 21 16.5228 21 11C21 5.47715 16.5228 1 11 1C5.47715 1 1 5.47715 1 11C1 16.5228 5.47715 21 11 21Z",fill:"#D9D9D9"})}),jsx$2("g",{mask:"url(#mask0_508_180629)",children:jsx$2("rect",{x:"3",y:"7",width:"30",height:"9",rx:"4.5",fill:"#282F45"})}),jsx$2("circle",{cx:"11",cy:"11",r:"8",fill:"#BAC4E2"})]})}function WaypointsPathToggleIcon(){return jsx$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{d:"M1.29297 16.293L16.293 1.29297",stroke:"#BAC4E2",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"4 4"})})}function PathToggleIcon(){return jsx$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{d:"M1.29297 16.293L16.293 1.29297",stroke:"#18D2FF",strokeWidth:"2",strokeLinecap:"round"})})}function PathEyeIcon(){return jsx$2("svg",{width:"16",height:"9",viewBox:"0 0 16 9",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.25881 5.96492C4.37723 5.56852 3.54948 4.97678 2.7742 4.20449L0.98113 5.69872L0.020853 4.54639L1.78023 3.08024C1.37381 2.56284 0.983494 1.9914 0.609059 1.36849L1.89468 0.595703C3.75929 3.69771 5.80686 5.05352 8.00187 5.05352C10.1969 5.05352 12.2444 3.69771 14.1091 0.595703L15.3947 1.36849C15.0199 1.99189 14.6293 2.56374 14.2225 3.08145L15.9805 4.54639L15.0202 5.69872L13.2284 4.20558C12.4536 4.97721 11.6264 5.56852 10.7454 5.96472L11.6829 7.99609L10.321 8.62468L9.30648 6.42661C8.88276 6.51076 8.44793 6.55352 8.00187 6.55352C7.55597 6.55352 7.1213 6.5108 6.69773 6.4267L5.68328 8.62468L4.32134 7.99609L5.25881 5.96492Z",fill:"#BAC4E2"})})}function CLoseIcon(){return jsxs$2("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.9688 14.0304L3.96875 5.03039L5.02941 3.96973L14.0294 12.9697L12.9688 14.0304Z",fill:"white"}),jsx$2("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.03125 14.0304L14.0312 5.03039L12.9706 3.96973L3.97059 12.9697L5.03125 14.0304Z",fill:"white"})]})}var LayerType=(s=>(s.CONTAINER="container",s.TRACKABLE="trackable",s.AXIS="axis",s.OTHER="other",s))(LayerType||{}),Rn=Object.defineProperty,Bn=(s,o,et)=>o in s?Rn(s,o,{enumerable:!0,configurable:!0,writable:!0,value:et}):s[o]=et,he=(s,o,et)=>(Bn(s,typeof o!="symbol"?o+"":o,et),et);const DEFAULT_FORMANT_API_URL="https://api.formant.io";function whichFormantApiUrl(s,o,et){try{if(et){if(et.includes("app-dev.formant.io")||et.includes("localhost"))return"https://api-dev.formant.io";if(et.includes("app-stage.formant.io"))return"https://api-stage.formant.io";if(et.includes("app.formant.io"))return"https://api.formant.io"}if(o.get("formant_stage"))return"https://api-stage.formant.io";if(o.get("formant_dev"))return"https://api-dev.formant.io";if(o.get("formant_local"))return"https://api.formant.local";if(o.get("formant_url")){const tt=o.get("formant_url");if(tt!==null)try{return new URL(tt).origin}catch{console.warn(`Ignoring malformed \`formant_url\` url parameter: ${tt}`)}}}catch{}return typeof s<"u"&&"FORMANT_API_URL"in s&&typeof s.FORMANT_API_URL=="string"?s.FORMANT_API_URL:DEFAULT_FORMANT_API_URL}const FORMANT_API_URL=whichFormantApiUrl(typeof window<"u"?window:globalThis,new URLSearchParams(typeof window<"u"&&window.location?window.location.search:void 0),typeof window<"u"&&window.location?window.location.host:void 0);var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}var base64={exports:{}};/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */base64.exports;(function(s,o){(function(et){var tt=o,nt=s&&s.exports==tt&&s,rt=typeof commonjsGlobal=="object"&&commonjsGlobal;(rt.global===rt||rt.window===rt)&&(et=rt);var it=function(ct){this.message=ct};it.prototype=new Error,it.prototype.name="InvalidCharacterError";var ot=function(ct){throw new it(ct)},st="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",at=/[\t\n\f\r ]/g,lt=function(ct){ct=String(ct).replace(at,"");var pt=ct.length;pt%4==0&&(ct=ct.replace(/==?$/,""),pt=ct.length),(pt%4==1||/[^+a-zA-Z0-9/]/.test(ct))&&ot("Invalid character: the string to be decoded is not correctly encoded.");for(var ft=0,gt,yt,Ut="",Ft=-1;++Ft>(-2*ft&6)));return Ut},ut=function(ct){ct=String(ct),/[^\0-\xFF]/.test(ct)&&ot("The string to be encoded contains characters outside of the Latin1 range.");for(var pt=ct.length%3,ft="",gt=-1,yt,Ut,Ft,mt,vt=ct.length-pt;++gt>18&63)+st.charAt(mt>>12&63)+st.charAt(mt>>6&63)+st.charAt(mt&63);return pt==2?(yt=ct.charCodeAt(gt)<<8,Ut=ct.charCodeAt(++gt),mt=yt+Ut,ft+=st.charAt(mt>>10)+st.charAt(mt>>4&63)+st.charAt(mt<<2&63)+"="):pt==1&&(mt=ct.charCodeAt(gt),ft+=st.charAt(mt>>2)+st.charAt(mt<<4&63)+"=="),ft},dt={encode:ut,decode:lt,version:"1.0.0"};if(tt&&!tt.nodeType)if(nt)nt.exports=dt;else for(var ht in dt)dt.hasOwnProperty(ht)&&(tt[ht]=dt[ht]);else et.base64=dt})(commonjsGlobal)})(base64,base64.exports);var base64Exports=base64.exports;class LoginFailureError extends Error{constructor(o){super("login failed"),he(this,"reason"),this.reason=o,this.name="LoginFailureError",Object.setPrototypeOf(this,new.target.prototype)}}class LoginChallengedError extends Error{constructor(o){super("login challenged"),he(this,"challenge"),this.challenge=o,this.name="LoginChallengedError",Object.setPrototypeOf(this,new.target.prototype)}}class AuthenticationStore{constructor({apiUrl:o,refreshAuthToken:et,addAccessTokenRefreshListener:tt}){he(this,"_refreshToken"),he(this,"_isShareToken",!1),he(this,"_currentOrganization"),he(this,"_currentUser"),he(this,"_defaultDeviceId"),he(this,"_token"),he(this,"_waitingForAuth",new Set),he(this,"_refreshTimer"),he(this,"_apiUrl"),he(this,"_refreshAuthToken"),he(this,"_addAccessTokenRefreshListener"),this._apiUrl=o,this._refreshAuthToken=et,this._addAccessTokenRefreshListener=tt}get token(){return this._token}get currentUser(){return this._currentUser}get currentOrganization(){return this._currentOrganization}get defaultDeviceId(){return this._defaultDeviceId}get refreshToken(){return this._refreshToken}get isShareToken(){return this._isShareToken}async login(o,et,tt={}){const{advanced:nt=!1}=tt;try{const rt=await fetch(`${this._apiUrl}/v1/admin/auth/login`,{method:"POST",body:JSON.stringify({email:o,password:et}),headers:{"Content-Type":"application/json"}}),it=await rt.json();if(rt.status!==200)throw new LoginFailureError(it.message);if("challenge"in it)throw new LoginChallengedError(it.challenge);const{authentication:ot}=it;return await this.loginWithToken(ot.accessToken,ot.refreshToken),nt?{result:"success",authentication:ot}:ot}catch(rt){if(nt||console.error("login() failed",{err:rt}),this._waitingForAuth.forEach(it=>it(!1)),this._waitingForAuth.clear(),!nt)throw rt;return rt instanceof LoginChallengedError?{result:"challenged",challenge:rt.challenge}:{result:"failure",reason:rt instanceof LoginFailureError?rt.reason:rt instanceof Error?rt.message:String(rt)}}}async loginWithToken(o,et){var tt;const nt=JSON.parse(base64Exports.decode(o.split(".")[1]));try{let rt;if(this._isShareToken=nt["formant:claims"]&&nt["formant:claims"].type=="share",nt["formant:claims"]&&(this._currentOrganization=nt["formant:claims"].organizationId),nt["custom:organization_id"]&&(this._currentOrganization=nt["custom:organization_id"]),this._isShareToken||(rt=nt.sub),nt["formant:claims"]&&nt["formant:claims"].userId&&(rt=nt["formant:claims"].userId),rt&&((tt=this._currentUser)==null?void 0:tt.id)!==rt){const it=await fetch(`${this._apiUrl}/v1/admin/users/${rt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+o}}),ot=await it.json();if(it.status!==200)throw new Error(ot.message);this._currentUser=ot}this._token=o,this._waitingForAuth.forEach(it=>it(!0))}catch(rt){console.error("loginWithToken() failed",{err:rt}),this._waitingForAuth.forEach(it=>it(!1))}finally{this._waitingForAuth.clear()}et&&(this._refreshToken=et,setInterval(async()=>{if(this._refreshToken){const rt=await(await fetch(`${this._apiUrl}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:this._refreshToken})})).json();this._token=rt.authentication.accessToken}},1e3*60*60))}isAuthenticated(){return this._token!==void 0}async loginToPeer(o,et,tt){if((await fetch(`${o}/login`,{method:"POST",body:JSON.stringify({username:et,password:tt}),headers:{"Content-Type":"application/json"}})).status!==200)throw new LoginFailureError("Invalid authentication")}getCurrentUser(){return this._currentUser}async waitTilAuthenticated(){return this.token!==void 0?!0:new Promise(o=>{this._waitingForAuth.add(o)})}async listenForRefresh(){const o=()=>{this._refreshTimer=void 0,this._refreshAuthToken()};this._addAccessTokenRefreshListener(et=>{this._refreshTimer&&clearTimeout(this._refreshTimer),this._refreshTimer=setTimeout(o,36e5),this.loginWithToken(et)}),this._refreshTimer=setTimeout(o,36e5)}async forgotPassword(o){await fetch(`${this._apiUrl}/v1/admin/auth/forgot-password`,{method:"POST",body:JSON.stringify({email:o}),headers:{"Content-Type":"application/json"}})}async confirmForgotPassword(o){return(await fetch(`${this._apiUrl}/v1/admin/auth/confirm-forgot-password`,{method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}})).ok}async respondToNewPasswordRequiredChallenge(o){const et=await fetch(`${this._apiUrl}/v1/admin/auth/respond-to-new-password-required-challenge`,{method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}});if(et.ok)return await et.json();throw new Error("respond-to-new-password-required-challenge failed")}async loginWithGoogle(o){return await(await fetch(`${this._apiUrl}/v1/admin/auth/login-google`,{method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}})).json()}async refresh(o){const et=await(await fetch(`${this._apiUrl}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:o})})).json();await this.loginWithToken(et.authentication.accessToken,o)}async checkSso(o,et){return await(await fetch(`${this._apiUrl}/v1/admin/auth/check-sso`,{method:"POST",body:JSON.stringify({email:o,allowUserAutoCreation:et}),headers:{"Content-Type":"application/json"}})).json()}async loginWithSso(o,et){const tt=await(await fetch(`${this._apiUrl}/v1/admin/auth/login-sso`,{method:"POST",body:JSON.stringify({token:o,refreshToken:et}),headers:{"Content-Type":"application/json"}})).json();if(!tt.authentication)throw new Error("Failed to login with SSO");return await this.loginWithToken(tt.authentication.accessToken,tt.authentication.refreshToken)}}function getCurrentModuleContext(){return typeof window<"u"&&window.location?new URLSearchParams(window.location.search).get("module"):null}function sendAppMessage(s){if(!(window&&window.parent))throw new Error("cannot send message to non-existent parent");window.parent.postMessage(s,"*")}function refreshAuthToken(){const s=getCurrentModuleContext();if(!s)throw new Error("No module context");sendAppMessage({type:"refresh_auth_token",module:s})}function addAccessTokenRefreshListener(s){function o(et){const tt=et.data;tt.type==="auth_token"&&s(tt.token)}return window.addEventListener("message",o),()=>{window.removeEventListener("message",o)}}const Authentication=new AuthenticationStore({apiUrl:FORMANT_API_URL,refreshAuthToken,addAccessTokenRefreshListener});async function getModuleConfiguration(s){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/module-configurations/${s}`,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).configuration}function disableAnalyticsBottomBar(){sendAppMessage({type:"hide_analytics_date_picker"})}function goToDevice(s){sendAppMessage({type:"go_to_device",deviceId:s})}function goToTime(s){sendAppMessage({type:"go_to_time",time:s.getTime()})}function requestModuleData(){const s=getCurrentModuleContext();if(!s)throw new Error("No module context");sendAppMessage({type:"request_module_data",module:s})}function sendChannelData(s,o){const et=getCurrentModuleContext();if(!et)throw new Error("No module context");sendAppMessage({type:"send_channel_data",source:et,channel:s,data:o})}function setModuleDateTimeRange(s,o){const et=getCurrentModuleContext();if(!et)throw new Error("No module context");sendAppMessage({type:"set_module_data_time_range",module:et,before:s,after:o||0})}function setupModuleMenus(s){const o=getCurrentModuleContext();if(!o)throw new Error("No module context");sendAppMessage({type:"setup_module_menus",module:o,menus:s})}function showMessage(s){sendAppMessage({type:"show_message",message:s})}function addChannelDataListener(s,o){const et=tt=>{const nt=tt.data;nt.type==="channel_data"&&nt.channel===s&&o({source:nt.source,data:nt.data})};return window.addEventListener("message",et),()=>window.removeEventListener("message",et)}function addMenuListener(s){const o=et=>{const tt=et.data;tt.type==="module_menu_item_clicked"&&s(tt.menu)};return window.addEventListener("message",o),()=>window.removeEventListener("message",o)}function addModuleConfigurationListener(s){const o=et=>{const tt=et.data;tt.type==="module_configuration"&&s(tt)};return window.addEventListener("message",o),()=>window.removeEventListener("message",o)}function addModuleDataListener(s){const o=getCurrentModuleContext();o&&sendAppMessage({type:"request_module_data",module:o});const et=tt=>{const nt=tt.data;nt.type==="module_data"&&s({streams:nt.streams,time:nt.time,queryRange:nt.queryRange})};return window.addEventListener("message",et),()=>window.removeEventListener("message",et)}function addOverviewDeviceListener(s){sendAppMessage({type:"request_devices"});const o=et=>{const tt=et.data;tt.type==="overview_devices"&&s(tt.data)};return window.addEventListener("message",o),()=>window.removeEventListener("message",o)}function _typeof$1(s){return _typeof$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o){return typeof o}:function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof$1(s)}function toInteger(s){if(s===null||s===!0||s===!1)return NaN;var o=Number(s);return isNaN(o)?o:o<0?Math.ceil(o):Math.floor(o)}function requiredArgs(s,o){if(o.length1?"s":"")+" required, but only "+o.length+" present")}function toDate(s){requiredArgs(1,arguments);var o=Object.prototype.toString.call(s);return s instanceof Date||_typeof$1(s)==="object"&&o==="[object Date]"?new Date(s.getTime()):typeof s=="number"||o==="[object Number]"?new Date(s):((typeof s=="string"||o==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function addDays(s,o){requiredArgs(2,arguments);var et=toDate(s),tt=toInteger(o);return isNaN(tt)?new Date(NaN):(tt&&et.setDate(et.getDate()+tt),et)}function addMonths(s,o){requiredArgs(2,arguments);var et=toDate(s),tt=toInteger(o);if(isNaN(tt))return new Date(NaN);if(!tt)return et;var nt=et.getDate(),rt=new Date(et.getTime());rt.setMonth(et.getMonth()+tt+1,0);var it=rt.getDate();return nt>=it?rt:(et.setFullYear(rt.getFullYear(),rt.getMonth(),nt),et)}function addMilliseconds(s,o){requiredArgs(2,arguments);var et=toDate(s).getTime(),tt=toInteger(o);return new Date(et+tt)}var MILLISECONDS_IN_HOUR=36e5;function addHours(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addMilliseconds(s,et*MILLISECONDS_IN_HOUR)}var defaultOptions={};function getDefaultOptions(){return defaultOptions}function startOfWeek(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs(1,arguments);var lt=getDefaultOptions(),ut=toInteger((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate(s),ht=dt.getDay(),ct=(ht=it)throw new RangeError("Invalid interval");var ot=[],st=tt,at=Number((et=o?.step)!==null&&et!==void 0?et:1);if(at<1||isNaN(at))throw new RangeError("`options.step` must be a number equal to or greater than 1");for(;st.getTime()<=it;)ot.push(toDate(st)),st=addMinutes(st,at);return ot}function eachMonthOfInterval(s){requiredArgs(1,arguments);var o=s||{},et=toDate(o.start),tt=toDate(o.end),nt=tt.getTime(),rt=[];if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var it=et;for(it.setHours(0,0,0,0),it.setDate(1);it.getTime()<=nt;)rt.push(toDate(it)),it.setMonth(it.getMonth()+1);return rt}function startOfQuarter(s){requiredArgs(1,arguments);var o=toDate(s),et=o.getMonth(),tt=et-et%3;return o.setMonth(tt,1),o.setHours(0,0,0,0),o}function eachQuarterOfInterval(s){requiredArgs(1,arguments);var o=s||{},et=toDate(o.start),tt=toDate(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=startOfQuarter(et),it=startOfQuarter(tt);nt=it.getTime();for(var ot=[],st=rt;st.getTime()<=nt;)ot.push(toDate(st)),st=addQuarters(st,1);return ot}function eachWeekOfInterval(s,o){requiredArgs(1,arguments);var et=s||{},tt=toDate(et.start),nt=toDate(et.end),rt=nt.getTime();if(!(tt.getTime()<=rt))throw new RangeError("Invalid interval");var it=startOfWeek(tt,o),ot=startOfWeek(nt,o);it.setHours(15),ot.setHours(15),rt=ot.getTime();for(var st=[],at=it;at.getTime()<=rt;)at.setHours(0),st.push(toDate(at)),at=addWeeks(at,1),at.setHours(15);return st}function startOfMonth(s){requiredArgs(1,arguments);var o=toDate(s);return o.setDate(1),o.setHours(0,0,0,0),o}function endOfYear(s){requiredArgs(1,arguments);var o=toDate(s),et=o.getFullYear();return o.setFullYear(et+1,0,0),o.setHours(23,59,59,999),o}function startOfYear(s){requiredArgs(1,arguments);var o=toDate(s),et=new Date(0);return et.setFullYear(o.getFullYear(),0,1),et.setHours(0,0,0,0),et}function eachYearOfInterval(s){requiredArgs(1,arguments);var o=s||{},et=toDate(o.start),tt=toDate(o.end),nt=tt.getTime();if(!(et.getTime()<=nt))throw new RangeError("Invalid interval");var rt=[],it=et;for(it.setHours(0,0,0,0),it.setMonth(0,1);it.getTime()<=nt;)rt.push(toDate(it)),it.setFullYear(it.getFullYear()+1);return rt}function endOfHour(s){requiredArgs(1,arguments);var o=toDate(s);return o.setMinutes(59,59,999),o}function endOfWeek(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs(1,arguments);var lt=getDefaultOptions(),ut=toInteger((et=(tt=(nt=(rt=o?.weekStartsOn)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.weekStartsOn)!==null&&nt!==void 0?nt:lt.weekStartsOn)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.weekStartsOn)!==null&&et!==void 0?et:0);if(!(ut>=0&&ut<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var dt=toDate(s),ht=dt.getDay(),ct=(ht=1&&ht<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var ct=new Date(0);ct.setFullYear(ut+1,0,ht),ct.setHours(0,0,0,0);var pt=startOfWeek(ct,o),ft=new Date(0);ft.setFullYear(ut,0,ht),ft.setHours(0,0,0,0);var gt=startOfWeek(ft,o);return lt.getTime()>=pt.getTime()?ut+1:lt.getTime()>=gt.getTime()?ut:ut-1}function startOfWeekYear(s,o){var et,tt,nt,rt,it,ot,st,at;requiredArgs(1,arguments);var lt=getDefaultOptions(),ut=toInteger((et=(tt=(nt=(rt=o?.firstWeekContainsDate)!==null&&rt!==void 0?rt:o==null||(it=o.locale)===null||it===void 0||(ot=it.options)===null||ot===void 0?void 0:ot.firstWeekContainsDate)!==null&&nt!==void 0?nt:lt.firstWeekContainsDate)!==null&&tt!==void 0?tt:(st=lt.locale)===null||st===void 0||(at=st.options)===null||at===void 0?void 0:at.firstWeekContainsDate)!==null&&et!==void 0?et:1),dt=getWeekYear(s,o),ht=new Date(0);ht.setFullYear(dt,0,ut),ht.setHours(0,0,0,0);var ct=startOfWeek(ht,o);return ct}var MILLISECONDS_IN_WEEK=6048e5;function getWeek(s,o){requiredArgs(1,arguments);var et=toDate(s),tt=startOfWeek(et,o).getTime()-startOfWeekYear(et,o).getTime();return Math.round(tt/MILLISECONDS_IN_WEEK)+1}function getYear(s){return requiredArgs(1,arguments),toDate(s).getFullYear()}function startOfHour(s){requiredArgs(1,arguments);var o=toDate(s);return o.setMinutes(0,0,0),o}function subDays(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addDays(s,-et)}function roundToNearestMinutes(s,o){var et;if(arguments.length<1)throw new TypeError("1 argument required, but only none provided present");var tt=toInteger((et=o?.nearestTo)!==null&&et!==void 0?et:1);if(tt<1||tt>30)throw new RangeError("`options.nearestTo` must be between 1 and 30");var nt=toDate(s),rt=nt.getSeconds(),it=nt.getMinutes()+rt/60,ot=getRoundingMethod(o?.roundingMethod),st=ot(it/tt)*tt,at=it%tt,lt=Math.round(at/tt)*tt;return new Date(nt.getFullYear(),nt.getMonth(),nt.getDate(),nt.getHours(),st+lt)}function subMonths(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addMonths(s,-et)}function subHours(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addHours(s,-et)}function subMinutes(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addMinutes(s,-et)}function subQuarters(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addQuarters(s,-et)}function subWeeks(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addWeeks(s,-et)}function subYears(s,o){requiredArgs(2,arguments);var et=toInteger(o);return addYears(s,-et)}const millisecond$2=1,second$2=1e3,minute$2=60*second$2,hour$2=60*minute$2,day$2=24*hour$2,week$2=7*day$2,month$2=30*day$2,year$2=365*day$2,duration$2={millisecond:millisecond$2,second:second$2,minute:minute$2,hour:hour$2,day:day$2,week:week$2,month:month$2,year:year$2};function filterDataByType$1(s,o){return s.filter(et=>o.includes(et.type))}function filterDataByTime$1(s,o,et){const tt=o.getTime(),nt=et.getTime();return s.map(rt=>({...rt,points:rt.points.filter(([it])=>it>=tt&&itrt.length>0)}let StoreCache$1=class{constructor({capacity:s,timeout:o}={}){he(this,"entries",new Map),he(this,"metadata",new Map),he(this,"capacity"),he(this,"staleIntervalMs"),this.capacity=s||1e4,this.staleIntervalMs=o||duration$2.minute}get(s,o){const et=this.keyToCacheKey(s);return this.isStale(et)&&!this.isGenerating(et)&&o&&this.generate(s,o),this.entries.get(et)}set(s,o){const et=this.keyToCacheKey(s);this.metadata.set(et,{generating:!1,staleAt:performance.now()+this.staleIntervalMs});const tt=this.entries.get(et);JSON.stringify(tt)===JSON.stringify(o)||(this.entries.set(et,o),this.enforceMaxSize())}clear(){this.entries.clear(),[...this.metadata.values()].forEach(s=>s.generating=!1)}clearKey(s){this.metadata.delete(s),this.entries.delete(s)}keyToCacheKey(s){return JSON.stringify(s)}enforceMaxSize(){for(;this.metadata.size>this.capacity&&this.metadata.size>0;){const[s]=[...this.metadata.entries()].reduce(([o,et],[tt,nt])=>nt.staleAt{const it=this.metadata.get(et);return it?.generating!==nt||this.set(s,rt),rt}).catch(rt=>{throw this.metadata.delete(et),rt});this.metadata.set(et,{...tt,generating:nt,staleAt:performance.now()+this.staleIntervalMs})}};async function queryTelemetry(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}let QueryStore$1=class{constructor(){he(this,"queryStoreCache",new StoreCache$1({capacity:1e4,timeout:20*duration$2.second})),he(this,"liveQueryStoreCache",new StoreCache$1({capacity:1e4,timeout:200*duration$2.millisecond}))}moduleQuery(s,o,et,tt,nt,rt=!1){const it={...s,names:[...o],types:[...et]},ot=this.query(it,tt,nt,rt);return ot===void 0||ot==="too much data"?ot:filterDataByType$1(ot,et)}query(s,o,et,tt=!1){const nt={...s,start:startOfMinute(o).toISOString(),end:tt?et.toISOString():addMinutes(roundToNearestMinutes(et),1).toISOString(),latestOnly:tt},rt=et>addSeconds(new Date,-20);let it;return rt?it=this.liveQueryCache(nt):it=this.queryCache(nt),!it||it==="too much data"||tt?it:filterDataByTime$1(it,o,et)}queryCache(s){return this.queryStoreCache.get(s,async()=>{try{return await queryTelemetry(s)}catch(o){throw o}})}liveQueryCache(s){return this.liveQueryStoreCache.get(s,async()=>{try{return await queryTelemetry(s)}catch(o){throw o}})}};const queryStore=new QueryStore$1;function addStreamListener(s,o,et){const tt=nt=>{const rt=nt.data;if(rt.type==="module_data"){const{start:it,end:ot}=rt.queryRange;et(queryStore.moduleQuery({},s,o,new Date(it),new Date(ot),!1))}};return window.addEventListener("message",tt),()=>window.removeEventListener("message",tt)}async function getDate(s,o,et){return new Promise(tt=>{sendAppMessage({type:"request_date",minTime:o,maxTime:et,time:s});const nt=rt=>{const it=rt.data;it.type==="date_response"&&(window.removeEventListener("message",nt),tt(it.data))};window.addEventListener("message",nt)})}async function prompt(s,o){return new Promise(et=>{const tt=Math.random().toString();sendAppMessage({type:"prompt",promptId:tt,schema:s,okText:o?.okText,cancelText:o?.cancelText});const nt=rt=>{const it=rt.data;it.type==="prompt_response"&&it.promptId===tt&&et(it.data),window.removeEventListener("message",nt)};window.addEventListener("message",nt)})}const Yt=class{static isModule(){return getCurrentModuleContext()!==null}static async getCurrentModuleConfiguration(){let s=new URLSearchParams("");typeof window<"u"&&window.location&&(s=new URLSearchParams(window.location.search));const o=s.get("configuration");if(!(o===null||o.trim()===""))return getModuleConfiguration(o.trim())}static get isOnline(){return Yt._isOnline}static listenForConnectionEvents(){const s=o=>{const{data:et}=o;et.type==="formant_online"&&(this._isOnline=et.online)};return window.addEventListener("message",s),()=>window.removeEventListener("message",s)}static checkConnection(s=1e3){return new Promise((o,et)=>{const tt=setTimeout(()=>et(new Error("deadline expired: took too long")),s),nt=rt=>{window.removeEventListener("message",nt),clearTimeout(tt);const{data:it}=rt;it.type==="formant_online"&&(this._isOnline=it.online,o(it.online))};window.addEventListener("message",nt),sendAppMessage({type:"formant_online"})})}static waitForConnection(s=5e3){let o=!1;const et=new Promise((rt,it)=>{setTimeout(()=>{o=!0,it(new Error("deadline expired: took too long"))},s)}),tt=rt=>new Promise(it=>setTimeout(it,rt)),nt=async()=>{for(await tt(50);!o&&!(this.isOnline||await this.checkConnection);)await tt(500)};return Promise.race([et,nt()])}};let App=Yt;he(App,"getCurrentModuleContext",getCurrentModuleContext),he(App,"disableAnalyticsBottomBar",disableAnalyticsBottomBar),he(App,"goToDevice",goToDevice),he(App,"goToTime",goToTime),he(App,"refreshAuthToken",refreshAuthToken),he(App,"requestModuleData",requestModuleData),he(App,"sendChannelData",sendChannelData),he(App,"setModuleDateTimeRange",setModuleDateTimeRange),he(App,"setupModuleMenus",setupModuleMenus),he(App,"showMessage",showMessage),he(App,"addAccessTokenRefreshListener",addAccessTokenRefreshListener),he(App,"addChannelDataListener",addChannelDataListener),he(App,"addMenuListener",addMenuListener),he(App,"addModuleConfigurationListener",addModuleConfigurationListener),he(App,"addModuleDataListener",addModuleDataListener),he(App,"addOverviewDeviceListener",addOverviewDeviceListener),he(App,"addStreamListener",addStreamListener),he(App,"getDate",getDate),he(App,"prompt",prompt),he(App,"_isOnline",null);function defined$1(s,o){if(s!==void 0)return s;throw new Error(o||"Value is undefined")}function notNull$1(s,o){if(s!==null)return s;throw new Error(o||"Value is null")}function definedAndNotNull$1(s,o){return notNull$1(defined$1(s,o),o)}var dist={exports:{}};/*! For license information please see index.js.LICENSE.txt */(function(module,exports){(function(s,o){module.exports=o()})(window,function(){return function(s){function o(at){for(var lt,ut,dt=at[0],ht=at[1],ct=0,pt=[];ct1?"s":"")+" required, but only "+qt.length+" present")}function at(Ht){if(Ht===null||Ht===!0||Ht===!1)return NaN;var qt=Number(Ht);return isNaN(qt)?qt:qt<0?Math.ceil(qt):Math.floor(qt)}var lt={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},ut=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,dt=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,ht=/^([+-])(\d{2})(?::?(\d{2}))?$/;function ct(Ht){var qt,on={},Xt=Ht.split(lt.dateTimeDelimiter);if(Xt.length>2)return on;if(/:/.test(Xt[0])?qt=Xt[0]:(on.date=Xt[0],qt=Xt[1],lt.timeZoneDelimiter.test(on.date)&&(on.date=Ht.split(lt.timeZoneDelimiter)[0],qt=Ht.substr(on.date.length,Ht.length))),qt){var dn=lt.timezone.exec(qt);dn?(on.time=qt.replace(dn[1],""),on.timezone=dn[1]):on.time=qt}return on}function pt(Ht,qt){var on=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+qt)+"})|(\\d{2}|[+-]\\d{"+(2+qt)+"})$)"),Xt=Ht.match(on);if(!Xt)return{year:NaN,restDateString:""};var dn=Xt[1]?parseInt(Xt[1]):null,_n=Xt[2]?parseInt(Xt[2]):null;return{year:_n===null?dn:100*_n,restDateString:Ht.slice((Xt[1]||Xt[2]).length)}}function ft(Ht,qt){if(qt===null)return new Date(NaN);var on=Ht.match(ut);if(!on)return new Date(NaN);var Xt=!!on[4],dn=gt(on[1]),_n=gt(on[2])-1,Fn=gt(on[3]),Un=gt(on[4]),On=gt(on[5])-1;if(Xt)return function(hn,wn,Zn){return wn>=1&&wn<=53&&Zn>=0&&Zn<=6}(0,Un,On)?function(hn,wn,Zn){var Pn=new Date(0);Pn.setUTCFullYear(hn,0,4);var $n=Pn.getUTCDay()||7,Tr=7*(wn-1)+Zn+1-$n;return Pn.setUTCDate(Pn.getUTCDate()+Tr),Pn}(qt,Un,On):new Date(NaN);var gn=new Date(0);return function(hn,wn,Zn){return wn>=0&&wn<=11&&Zn>=1&&Zn<=(mt[wn]||(vt(hn)?29:28))}(qt,_n,Fn)&&function(hn,wn){return wn>=1&&wn<=(vt(hn)?366:365)}(qt,dn)?(gn.setUTCFullYear(qt,_n,Math.max(dn,Fn)),gn):new Date(NaN)}function gt(Ht){return Ht?parseInt(Ht):1}function yt(Ht){var qt=Ht.match(dt);if(!qt)return NaN;var on=Ut(qt[1]),Xt=Ut(qt[2]),dn=Ut(qt[3]);return function(_n,Fn,Un){return _n===24?Fn===0&&Un===0:Un>=0&&Un<60&&Fn>=0&&Fn<60&&_n>=0&&_n<25}(on,Xt,dn)?36e5*on+6e4*Xt+1e3*dn:NaN}function Ut(Ht){return Ht&&parseFloat(Ht.replace(",","."))||0}function Ft(Ht){if(Ht==="Z")return 0;var qt=Ht.match(ht);if(!qt)return 0;var on=qt[1]==="+"?-1:1,Xt=parseInt(qt[2]),dn=qt[3]&&parseInt(qt[3])||0;return function(_n,Fn){return Fn>=0&&Fn<=59}(0,dn)?on*(36e5*Xt+6e4*dn):NaN}var mt=[31,null,31,30,31,30,31,31,30,31,30,31];function vt(Ht){return Ht%400==0||Ht%4==0&&Ht%100!=0}var At=et(40);function Lt(Ht){return st(1,arguments),Ht instanceof Date||Object(At.a)(Ht)==="object"&&Object.prototype.toString.call(Ht)==="[object Date]"}function Rt(Ht){st(1,arguments);var qt=Object.prototype.toString.call(Ht);return Ht instanceof Date||Object(At.a)(Ht)==="object"&&qt==="[object Date]"?new Date(Ht.getTime()):typeof Ht=="number"||qt==="[object Number]"?new Date(Ht):(typeof Ht!="string"&&qt!=="[object String]"||typeof console>"u"||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function St(Ht){const qt=function(on,Xt){var dn;st(1,arguments);var _n=at((dn=Xt?.additionalDigits)!==null&&dn!==void 0?dn:2);if(_n!==2&&_n!==1&&_n!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(typeof on!="string"&&Object.prototype.toString.call(on)!=="[object String]")return new Date(NaN);var Fn,Un=ct(on);if(Un.date){var On=pt(Un.date,_n);Fn=ft(On.restDateString,On.year)}if(!Fn||isNaN(Fn.getTime()))return new Date(NaN);var gn,hn=Fn.getTime(),wn=0;if(Un.time&&(wn=yt(Un.time),isNaN(wn)))return new Date(NaN);if(!Un.timezone){var Zn=new Date(hn+wn),Pn=new Date(0);return Pn.setFullYear(Zn.getUTCFullYear(),Zn.getUTCMonth(),Zn.getUTCDate()),Pn.setHours(Zn.getUTCHours(),Zn.getUTCMinutes(),Zn.getUTCSeconds(),Zn.getUTCMilliseconds()),Pn}return gn=Ft(Un.timezone),isNaN(gn)?new Date(NaN):new Date(hn+wn+gn)}(Ht);if(!function(on){if(st(1,arguments),!Lt(on)&&typeof on!="number")return!1;var Xt=Rt(on);return!isNaN(Number(Xt))}(qt))throw new Error(`Invalid ISO 8601 date string (${Ht})`);return qt}const Tt=Math.pow(2,20),Bt=Tt;var xt=et(3),Ct=et(28);function kt(Ht){return it()(Ht,{cycles:!0})}var Nt=function(Ht,qt){var on={};for(var Xt in Ht)Object.prototype.hasOwnProperty.call(Ht,Xt)&&qt.indexOf(Xt)<0&&(on[Xt]=Ht[Xt]);if(Ht!=null&&typeof Object.getOwnPropertySymbols=="function"){var dn=0;for(Xt=Object.getOwnPropertySymbols(Ht);dnon?Object(Ct.a)(On):On;if(!Ht.stack)return{message:kt(Xt(Ht))};const{name:dn,message:_n,stack:Fn}=Ht,Un=Nt(Ht,["name","message","stack"]);return{name:dn,message:_n!==void 0?_n:kt(Xt(Ht)),stack:Fn,meta:Un&&Object.keys(Un).length===0?void 0:Xt(Un)}}function Jt(Ht,qt={}){const{message:on,stack:Xt,meta:dn}=Ot(Ht,qt);return`${Xt||on||""}${dn&&Object.keys(dn).length>0?" -- "+kt(dn):""}`}var Dt=et(236);const Et=Object(Dt.a)();var Pt=et(14),zt=et.n(Pt),en=function(Ht,qt,on,Xt){return new(on||(on=Promise))(function(dn,_n){function Fn(gn){try{On(Xt.next(gn))}catch(hn){_n(hn)}}function Un(gn){try{On(Xt.throw(gn))}catch(hn){_n(hn)}}function On(gn){var hn;gn.done?dn(gn.value):(hn=gn.value,hn instanceof on?hn:new on(function(wn){wn(hn)})).then(Fn,Un)}On((Xt=Xt.apply(Ht,qt||[])).next())})},Kt=function(Ht,qt){var on={};for(var Xt in Ht)Object.prototype.hasOwnProperty.call(Ht,Xt)&&qt.indexOf(Xt)<0&&(on[Xt]=Ht[Xt]);if(Ht!=null&&typeof Object.getOwnPropertySymbols=="function"){var dn=0;for(Xt=Object.getOwnPropertySymbols(Ht);dn{var{timestamp:qt,level:on,message:Xt,error:dn}=Ht,_n=Zt(Ht,["timestamp","level","message","error"]);const Fn=Object.assign(Object.assign({timestamp:qt?St(qt).getTime():new Date().getTime(),level:on.toUpperCase(),message:Xt},dn?{error:Ot(dn)}:{}),{meta:Object.assign(Object.assign({},jt),_n)});return it()(Fn,{cycles:!0})}):ot.format.printf(Ht=>{var{timestamp:qt,level:on,message:Xt,error:dn}=Ht,_n=Zt(Ht,["timestamp","level","message","error"]);let Fn=`${qt||new Date().toISOString()} ${on.toUpperCase()}: ${Xt} `;return Object.keys(_n).length>0&&(Fn+=it()(_n,{cycles:!0})),dn&&(Fn+=` +`+Jt(dn)),Fn}),It=Object(ot.createLogger)({level:xt.g});if(It.add(new ot.transports.Console({format:Vt,level:"debug"})),It.transports.forEach(Ht=>{Ht.silent=!xt.h}),xt.e&&It.add(new nn(xt.e,jt)),xt.i){const Ht=nt.resolve(tt.tmpdir(),`silly-${xt.a}.log`);It.debug("Logging silly logs to file",{filename:Ht}),It.add(new ot.transports.File({filename:Ht,maxsize:1*Bt,maxFiles:10,format:ot.format.combine(($t="silly",Object(ot.format)(qt=>qt.level===$t&&qt)()),Vt),level:"silly"}))}var $t},function(s,o,et){et.d(o,"a",function(){return nt});const tt=864e5,nt={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:tt,week:6048e5,month:2592e6,year:31536e6}},function(s,o){var et,tt,nt=s.exports={};function rt(){throw new Error("setTimeout has not been defined")}function it(){throw new Error("clearTimeout has not been defined")}function ot(ft){if(et===setTimeout)return setTimeout(ft,0);if((et===rt||!et)&&setTimeout)return et=setTimeout,setTimeout(ft,0);try{return et(ft,0)}catch{try{return et.call(null,ft,0)}catch{return et.call(this,ft,0)}}}(function(){try{et=typeof setTimeout=="function"?setTimeout:rt}catch{et=rt}try{tt=typeof clearTimeout=="function"?clearTimeout:it}catch{tt=it}})();var st,at=[],lt=!1,ut=-1;function dt(){lt&&st&&(lt=!1,st.length?at=st.concat(at):ut=-1,at.length&&ht())}function ht(){if(!lt){var ft=ot(dt);lt=!0;for(var gt=at.length;gt;){for(st=at,at=[];++ut1)for(var yt=1;yt=ot())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ot().toString(16)+" bytes");return 0|Vt}function pt(Vt,It){if(at.isBuffer(Vt))return Vt.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(Vt)||Vt instanceof ArrayBuffer))return Vt.byteLength;typeof Vt!="string"&&(Vt=""+Vt);var $t=Vt.length;if($t===0)return 0;for(var Ht=!1;;)switch(It){case"ascii":case"latin1":case"binary":return $t;case"utf8":case"utf-8":case void 0:return nn(Vt).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*$t;case"hex":return $t>>>1;case"base64":return Zt(Vt).length;default:if(Ht)return nn(Vt).length;It=(""+It).toLowerCase(),Ht=!0}}function ft(Vt,It,$t){var Ht=!1;if((It===void 0||It<0)&&(It=0),It>this.length||(($t===void 0||$t>this.length)&&($t=this.length),$t<=0)||($t>>>=0)<=(It>>>=0))return"";for(Vt||(Vt="utf8");;)switch(Vt){case"hex":return Ct(this,It,$t);case"utf8":case"utf-8":return Tt(this,It,$t);case"ascii":return Bt(this,It,$t);case"latin1":case"binary":return xt(this,It,$t);case"base64":return St(this,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return kt(this,It,$t);default:if(Ht)throw new TypeError("Unknown encoding: "+Vt);Vt=(Vt+"").toLowerCase(),Ht=!0}}function gt(Vt,It,$t){var Ht=Vt[It];Vt[It]=Vt[$t],Vt[$t]=Ht}function yt(Vt,It,$t,Ht,qt){if(Vt.length===0)return-1;if(typeof $t=="string"?(Ht=$t,$t=0):$t>2147483647?$t=2147483647:$t<-2147483648&&($t=-2147483648),$t=+$t,isNaN($t)&&($t=qt?0:Vt.length-1),$t<0&&($t=Vt.length+$t),$t>=Vt.length){if(qt)return-1;$t=Vt.length-1}else if($t<0){if(!qt)return-1;$t=0}if(typeof It=="string"&&(It=at.from(It,Ht)),at.isBuffer(It))return It.length===0?-1:Ut(Vt,It,$t,Ht,qt);if(typeof It=="number")return It&=255,at.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?qt?Uint8Array.prototype.indexOf.call(Vt,It,$t):Uint8Array.prototype.lastIndexOf.call(Vt,It,$t):Ut(Vt,[It],$t,Ht,qt);throw new TypeError("val must be string, number or Buffer")}function Ut(Vt,It,$t,Ht,qt){var on,Xt=1,dn=Vt.length,_n=It.length;if(Ht!==void 0&&((Ht=String(Ht).toLowerCase())==="ucs2"||Ht==="ucs-2"||Ht==="utf16le"||Ht==="utf-16le")){if(Vt.length<2||It.length<2)return-1;Xt=2,dn/=2,_n/=2,$t/=2}function Fn(hn,wn){return Xt===1?hn[wn]:hn.readUInt16BE(wn*Xt)}if(qt){var Un=-1;for(on=$t;ondn&&($t=dn-_n),on=$t;on>=0;on--){for(var On=!0,gn=0;gn<_n;gn++)if(Fn(Vt,on+gn)!==Fn(It,gn)){On=!1;break}if(On)return on}return-1}function Ft(Vt,It,$t,Ht){$t=Number($t)||0;var qt=Vt.length-$t;Ht?(Ht=Number(Ht))>qt&&(Ht=qt):Ht=qt;var on=It.length;if(on%2!=0)throw new TypeError("Invalid hex string");Ht>on/2&&(Ht=on/2);for(var Xt=0;Xt>8,_n=Xt%256,Fn.push(_n),Fn.push(dn);return Fn}(It,Vt.length-$t),Vt,$t,Ht)}function St(Vt,It,$t){return It===0&&$t===Vt.length?nt.fromByteArray(Vt):nt.fromByteArray(Vt.slice(It,$t))}function Tt(Vt,It,$t){$t=Math.min(Vt.length,$t);for(var Ht=[],qt=It;qt<$t;){var on,Xt,dn,_n,Fn=Vt[qt],Un=null,On=Fn>239?4:Fn>223?3:Fn>191?2:1;if(qt+On<=$t)switch(On){case 1:Fn<128&&(Un=Fn);break;case 2:(192&(on=Vt[qt+1]))==128&&(_n=(31&Fn)<<6|63&on)>127&&(Un=_n);break;case 3:on=Vt[qt+1],Xt=Vt[qt+2],(192&on)==128&&(192&Xt)==128&&(_n=(15&Fn)<<12|(63&on)<<6|63&Xt)>2047&&(_n<55296||_n>57343)&&(Un=_n);break;case 4:on=Vt[qt+1],Xt=Vt[qt+2],dn=Vt[qt+3],(192&on)==128&&(192&Xt)==128&&(192&dn)==128&&(_n=(15&Fn)<<18|(63&on)<<12|(63&Xt)<<6|63&dn)>65535&&_n<1114112&&(Un=_n)}Un===null?(Un=65533,On=1):Un>65535&&(Un-=65536,Ht.push(Un>>>10&1023|55296),Un=56320|1023&Un),Ht.push(Un),qt+=On}return function(gn){var hn=gn.length;if(hn<=4096)return String.fromCharCode.apply(String,gn);for(var wn="",Zn=0;Zn0&&(Vt=this.toString("hex",0,It).match(/.{2}/g).join(" "),this.length>It&&(Vt+=" ... ")),""},at.prototype.compare=function(Vt,It,$t,Ht,qt){if(!at.isBuffer(Vt))throw new TypeError("Argument must be a Buffer");if(It===void 0&&(It=0),$t===void 0&&($t=Vt?Vt.length:0),Ht===void 0&&(Ht=0),qt===void 0&&(qt=this.length),It<0||$t>Vt.length||Ht<0||qt>this.length)throw new RangeError("out of range index");if(Ht>=qt&&It>=$t)return 0;if(Ht>=qt)return-1;if(It>=$t)return 1;if(this===Vt)return 0;for(var on=(qt>>>=0)-(Ht>>>=0),Xt=($t>>>=0)-(It>>>=0),dn=Math.min(on,Xt),_n=this.slice(Ht,qt),Fn=Vt.slice(It,$t),Un=0;Unqt)&&($t=qt),Vt.length>0&&($t<0||It<0)||It>this.length)throw new RangeError("Attempt to write outside buffer bounds");Ht||(Ht="utf8");for(var on=!1;;)switch(Ht){case"hex":return Ft(this,Vt,It,$t);case"utf8":case"utf-8":return mt(this,Vt,It,$t);case"ascii":return vt(this,Vt,It,$t);case"latin1":case"binary":return At(this,Vt,It,$t);case"base64":return Lt(this,Vt,It,$t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Rt(this,Vt,It,$t);default:if(on)throw new TypeError("Unknown encoding: "+Ht);Ht=(""+Ht).toLowerCase(),on=!0}},at.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Bt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(127&Vt[qt]);return Ht}function xt(Vt,It,$t){var Ht="";$t=Math.min(Vt.length,$t);for(var qt=It;qt<$t;++qt)Ht+=String.fromCharCode(Vt[qt]);return Ht}function Ct(Vt,It,$t){var Ht=Vt.length;(!It||It<0)&&(It=0),(!$t||$t<0||$t>Ht)&&($t=Ht);for(var qt="",on=It;on<$t;++on)qt+=Kt(Vt[on]);return qt}function kt(Vt,It,$t){for(var Ht=Vt.slice(It,$t),qt="",on=0;on$t)throw new RangeError("Trying to access beyond buffer length")}function Ot(Vt,It,$t,Ht,qt,on){if(!at.isBuffer(Vt))throw new TypeError('"buffer" argument must be a Buffer instance');if(It>qt||ItVt.length)throw new RangeError("Index out of range")}function Jt(Vt,It,$t,Ht){It<0&&(It=65535+It+1);for(var qt=0,on=Math.min(Vt.length-$t,2);qt>>8*(Ht?qt:1-qt)}function Dt(Vt,It,$t,Ht){It<0&&(It=4294967295+It+1);for(var qt=0,on=Math.min(Vt.length-$t,4);qt>>8*(Ht?qt:3-qt)&255}function Et(Vt,It,$t,Ht,qt,on){if($t+Ht>Vt.length)throw new RangeError("Index out of range");if($t<0)throw new RangeError("Index out of range")}function Pt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,4),rt.write(Vt,It,$t,Ht,23,4),$t+4}function zt(Vt,It,$t,Ht,qt){return qt||Et(Vt,0,$t,8),rt.write(Vt,It,$t,Ht,52,8),$t+8}at.prototype.slice=function(Vt,It){var $t,Ht=this.length;if((Vt=~~Vt)<0?(Vt+=Ht)<0&&(Vt=0):Vt>Ht&&(Vt=Ht),(It=It===void 0?Ht:~~It)<0?(It+=Ht)<0&&(It=0):It>Ht&&(It=Ht),It0&&(qt*=256);)Ht+=this[Vt+--It]*qt;return Ht},at.prototype.readUInt8=function(Vt,It){return It||Nt(Vt,1,this.length),this[Vt]},at.prototype.readUInt16LE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]|this[Vt+1]<<8},at.prototype.readUInt16BE=function(Vt,It){return It||Nt(Vt,2,this.length),this[Vt]<<8|this[Vt+1]},at.prototype.readUInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),(this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16)+16777216*this[Vt+3]},at.prototype.readUInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),16777216*this[Vt]+(this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3])},at.prototype.readIntLE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=this[Vt],qt=1,on=0;++on=(qt*=128)&&(Ht-=Math.pow(2,8*It)),Ht},at.prototype.readIntBE=function(Vt,It,$t){Vt|=0,It|=0,$t||Nt(Vt,It,this.length);for(var Ht=It,qt=1,on=this[Vt+--Ht];Ht>0&&(qt*=256);)on+=this[Vt+--Ht]*qt;return on>=(qt*=128)&&(on-=Math.pow(2,8*It)),on},at.prototype.readInt8=function(Vt,It){return It||Nt(Vt,1,this.length),128&this[Vt]?-1*(255-this[Vt]+1):this[Vt]},at.prototype.readInt16LE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt]|this[Vt+1]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt16BE=function(Vt,It){It||Nt(Vt,2,this.length);var $t=this[Vt+1]|this[Vt]<<8;return 32768&$t?4294901760|$t:$t},at.prototype.readInt32LE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]|this[Vt+1]<<8|this[Vt+2]<<16|this[Vt+3]<<24},at.prototype.readInt32BE=function(Vt,It){return It||Nt(Vt,4,this.length),this[Vt]<<24|this[Vt+1]<<16|this[Vt+2]<<8|this[Vt+3]},at.prototype.readFloatLE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!0,23,4)},at.prototype.readFloatBE=function(Vt,It){return It||Nt(Vt,4,this.length),rt.read(this,Vt,!1,23,4)},at.prototype.readDoubleLE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!0,52,8)},at.prototype.readDoubleBE=function(Vt,It){return It||Nt(Vt,8,this.length),rt.read(this,Vt,!1,52,8)},at.prototype.writeUIntLE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=1,on=0;for(this[It]=255&Vt;++on<$t&&(qt*=256);)this[It+on]=Vt/qt&255;return It+$t},at.prototype.writeUIntBE=function(Vt,It,$t,Ht){Vt=+Vt,It|=0,$t|=0,Ht||Ot(this,Vt,It,$t,Math.pow(2,8*$t)-1,0);var qt=$t-1,on=1;for(this[It+qt]=255&Vt;--qt>=0&&(on*=256);)this[It+qt]=Vt/on&255;return It+$t},at.prototype.writeUInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,255,0),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),this[It]=255&Vt,It+1},at.prototype.writeUInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Jt(this,Vt,It,!0),It+2},at.prototype.writeUInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Jt(this,Vt,It,!1),It+2},at.prototype.writeUInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It+3]=Vt>>>24,this[It+2]=Vt>>>16,this[It+1]=Vt>>>8,this[It]=255&Vt):Dt(this,Vt,It,!0),It+4},at.prototype.writeUInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeIntLE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=0,Xt=1,dn=0;for(this[It]=255&Vt;++on<$t&&(Xt*=256);)Vt<0&&dn===0&&this[It+on-1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeIntBE=function(Vt,It,$t,Ht){if(Vt=+Vt,It|=0,!Ht){var qt=Math.pow(2,8*$t-1);Ot(this,Vt,It,$t,qt-1,-qt)}var on=$t-1,Xt=1,dn=0;for(this[It+on]=255&Vt;--on>=0&&(Xt*=256);)Vt<0&&dn===0&&this[It+on+1]!==0&&(dn=1),this[It+on]=(Vt/Xt>>0)-dn&255;return It+$t},at.prototype.writeInt8=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,1,127,-128),at.TYPED_ARRAY_SUPPORT||(Vt=Math.floor(Vt)),Vt<0&&(Vt=255+Vt+1),this[It]=255&Vt,It+1},at.prototype.writeInt16LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8):Jt(this,Vt,It,!0),It+2},at.prototype.writeInt16BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>8,this[It+1]=255&Vt):Jt(this,Vt,It,!1),It+2},at.prototype.writeInt32LE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),at.TYPED_ARRAY_SUPPORT?(this[It]=255&Vt,this[It+1]=Vt>>>8,this[It+2]=Vt>>>16,this[It+3]=Vt>>>24):Dt(this,Vt,It,!0),It+4},at.prototype.writeInt32BE=function(Vt,It,$t){return Vt=+Vt,It|=0,$t||Ot(this,Vt,It,4,2147483647,-2147483648),Vt<0&&(Vt=4294967295+Vt+1),at.TYPED_ARRAY_SUPPORT?(this[It]=Vt>>>24,this[It+1]=Vt>>>16,this[It+2]=Vt>>>8,this[It+3]=255&Vt):Dt(this,Vt,It,!1),It+4},at.prototype.writeFloatLE=function(Vt,It,$t){return Pt(this,Vt,It,!0,$t)},at.prototype.writeFloatBE=function(Vt,It,$t){return Pt(this,Vt,It,!1,$t)},at.prototype.writeDoubleLE=function(Vt,It,$t){return zt(this,Vt,It,!0,$t)},at.prototype.writeDoubleBE=function(Vt,It,$t){return zt(this,Vt,It,!1,$t)},at.prototype.copy=function(Vt,It,$t,Ht){if($t||($t=0),Ht||Ht===0||(Ht=this.length),It>=Vt.length&&(It=Vt.length),It||(It=0),Ht>0&&Ht<$t&&(Ht=$t),Ht===$t||Vt.length===0||this.length===0)return 0;if(It<0)throw new RangeError("targetStart out of bounds");if($t<0||$t>=this.length)throw new RangeError("sourceStart out of bounds");if(Ht<0)throw new RangeError("sourceEnd out of bounds");Ht>this.length&&(Ht=this.length),Vt.length-It=0;--qt)Vt[qt+It]=this[qt+$t];else if(on<1e3||!at.TYPED_ARRAY_SUPPORT)for(qt=0;qt>>=0,$t=$t===void 0?this.length:$t>>>0,Vt||(Vt=0),typeof Vt=="number")for(on=It;on<$t;++on)this[on]=Vt;else{var Xt=at.isBuffer(Vt)?Vt:nn(new at(Vt,Ht).toString()),dn=Xt.length;for(on=0;on<$t-It;++on)this[on+It]=Xt[on%dn]}return this};var en=/[^+\/0-9A-Za-z-_]/g;function Kt(Vt){return Vt<16?"0"+Vt.toString(16):Vt.toString(16)}function nn(Vt,It){var $t;It=It||1/0;for(var Ht=Vt.length,qt=null,on=[],Xt=0;Xt55295&&$t<57344){if(!qt){if($t>56319){(It-=3)>-1&&on.push(239,191,189);continue}if(Xt+1===Ht){(It-=3)>-1&&on.push(239,191,189);continue}qt=$t;continue}if($t<56320){(It-=3)>-1&&on.push(239,191,189),qt=$t;continue}$t=65536+(qt-55296<<10|$t-56320)}else qt&&(It-=3)>-1&&on.push(239,191,189);if(qt=null,$t<128){if((It-=1)<0)break;on.push($t)}else if($t<2048){if((It-=2)<0)break;on.push($t>>6|192,63&$t|128)}else if($t<65536){if((It-=3)<0)break;on.push($t>>12|224,$t>>6&63|128,63&$t|128)}else{if(!($t<1114112))throw new Error("Invalid code point");if((It-=4)<0)break;on.push($t>>18|240,$t>>12&63|128,$t>>6&63|128,63&$t|128)}}return on}function Zt(Vt){return nt.toByteArray(function(It){if((It=function($t){return $t.trim?$t.trim():$t.replace(/^\s+|\s+$/g,"")}(It).replace(en,"")).length<2)return"";for(;It.length%4!=0;)It+="=";return It}(Vt))}function jt(Vt,It,$t,Ht){for(var qt=0;qt=It.length||qt>=Vt.length);++qt)It[qt+$t]=Vt[qt];return qt}}).call(this,et(6))},function(s,o){var et;et=function(){return this}();try{et=et||new Function("return this")()}catch{typeof window=="object"&&(et=window)}s.exports=et},function(s,o){typeof Object.create=="function"?s.exports=function(et,tt){tt&&(et.super_=tt,et.prototype=Object.create(tt.prototype,{constructor:{value:et,enumerable:!1,writable:!0,configurable:!0}}))}:s.exports=function(et,tt){if(tt){et.super_=tt;var nt=function(){};nt.prototype=tt.prototype,et.prototype=new nt,et.prototype.constructor=et}}},function(s,o,et){function tt(dt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ht){return typeof ht}:function(ht){return ht&&typeof Symbol=="function"&&ht.constructor===Symbol&&ht!==Symbol.prototype?"symbol":typeof ht})(dt)}function nt(dt,ht){if(ht&&(tt(ht)==="object"||typeof ht=="function"))return ht;if(ht!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return rt(dt)}function rt(dt){if(dt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return dt}function it(dt){var ht=typeof Map=="function"?new Map:void 0;return(it=function(ct){if(ct===null||(pt=ct,Function.toString.call(pt).indexOf("[native code]")===-1))return ct;var pt;if(typeof ct!="function")throw new TypeError("Super expression must either be null or a function");if(ht!==void 0){if(ht.has(ct))return ht.get(ct);ht.set(ct,ft)}function ft(){return ot(ct,arguments,lt(this).constructor)}return ft.prototype=Object.create(ct.prototype,{constructor:{value:ft,enumerable:!1,writable:!0,configurable:!0}}),at(ft,ct)})(dt)}function ot(dt,ht,ct){return(ot=st()?Reflect.construct.bind():function(pt,ft,gt){var yt=[null];yt.push.apply(yt,ft);var Ut=new(Function.bind.apply(pt,yt));return gt&&at(Ut,gt.prototype),Ut}).apply(null,arguments)}function st(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function at(dt,ht){return(at=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(ct,pt){return ct.__proto__=pt,ct})(dt,ht)}function lt(dt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(ht){return ht.__proto__||Object.getPrototypeOf(ht)})(dt)}var ut=function(dt){(function(yt,Ut){if(typeof Ut!="function"&&Ut!==null)throw new TypeError("Super expression must either be null or a function");yt.prototype=Object.create(Ut&&Ut.prototype,{constructor:{value:yt,writable:!0,configurable:!0}}),Object.defineProperty(yt,"prototype",{writable:!1}),Ut&&at(yt,Ut)})(gt,dt);var ht,ct,pt,ft=(ht=gt,ct=st(),function(){var yt,Ut=lt(ht);if(ct){var Ft=lt(this).constructor;yt=Reflect.construct(Ut,arguments,Ft)}else yt=Ut.apply(this,arguments);return nt(this,yt)});function gt(yt){var Ut;return function(Ft,mt){if(!(Ft instanceof mt))throw new TypeError("Cannot call a class as a function")}(this,gt),Ut=ft.call(this,`Format functions must be synchronous taking a two arguments: (info, opts) Found: `.concat(yt.toString().split(` `)[0],` -`)),Error.captureStackTrace(rt(Ut),gt),Ut}return pt=gt,Object.defineProperty(pt,"prototype",{writable:!1}),pt}(it(Error));s.exports=function(dt){if(dt.length>2)throw new ut(dt);function ht(){var pt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.options=pt}function ct(pt){return new ht(pt)}return ht.prototype.transform=dt,ct.Format=ht,ct}},function(s,o,et){et.d(o,"a",function(){return tt});const tt=nt=>new Promise(rt=>setTimeout(rt,nt||0))},function(s,o,et){var tt=et(98),nt=tt,rt=typeof globalThis<"u"&&globalThis||typeof window<"u"&&window||rt!==void 0&&rt||typeof self<"u"&&self||function(){return this}.call(null)||Function("return this")(),it=et(97);nt.object.extend(proto,it),nt.exportSymbol("proto.v1.signaling.api.CreatePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.CreatePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetSessionsRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetSessionsResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.Peer",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.RtcSession",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.SessionType",null,rt),nt.exportSymbol("proto.v1.signaling.api.Signal",null,rt),proto.v1.signaling.api.Peer=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.Peer.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.Peer,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Peer.displayName="proto.v1.signaling.api.Peer"),proto.v1.signaling.api.Signal=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.Signal,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Signal.displayName="proto.v1.signaling.api.Signal"),proto.v1.signaling.api.RtcSession=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RtcSession,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RtcSession.displayName="proto.v1.signaling.api.RtcSession"),proto.v1.signaling.api.GetSessionsRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetSessionsRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetSessionsRequest.displayName="proto.v1.signaling.api.GetSessionsRequest"),proto.v1.signaling.api.GetSessionsResponse=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.GetSessionsResponse.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.GetSessionsResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetSessionsResponse.displayName="proto.v1.signaling.api.GetSessionsResponse"),proto.v1.signaling.api.GetHealthRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthRequest.displayName="proto.v1.signaling.api.GetHealthRequest"),proto.v1.signaling.api.GetHealthResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthResponse.displayName="proto.v1.signaling.api.GetHealthResponse"),proto.v1.signaling.api.CreatePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerRequest.displayName="proto.v1.signaling.api.CreatePeerRequest"),proto.v1.signaling.api.CreatePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerResponse.displayName="proto.v1.signaling.api.CreatePeerResponse"),proto.v1.signaling.api.DeletePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerRequest.displayName="proto.v1.signaling.api.DeletePeerRequest"),proto.v1.signaling.api.DeletePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerResponse.displayName="proto.v1.signaling.api.DeletePeerResponse"),proto.v1.signaling.api.RefreshPeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerRequest.displayName="proto.v1.signaling.api.RefreshPeerRequest"),proto.v1.signaling.api.RefreshPeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerResponse.displayName="proto.v1.signaling.api.RefreshPeerResponse"),proto.v1.signaling.api.GetPeersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetPeersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersRequest.displayName="proto.v1.signaling.api.GetPeersRequest"),proto.v1.signaling.api.GetPeersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.GetPeersResponse.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.GetPeersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersResponse.displayName="proto.v1.signaling.api.GetPeersResponse"),proto.v1.signaling.api.GetIceServersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersRequest.displayName="proto.v1.signaling.api.GetIceServersRequest"),proto.v1.signaling.api.GetIceServersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersResponse.displayName="proto.v1.signaling.api.GetIceServersResponse"),proto.v1.signaling.api.SendSignalRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalRequest.displayName="proto.v1.signaling.api.SendSignalRequest"),proto.v1.signaling.api.SendSignalResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalResponse.displayName="proto.v1.signaling.api.SendSignalResponse"),proto.v1.signaling.api.ReceiveSignalStreamRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.displayName="proto.v1.signaling.api.ReceiveSignalStreamRequest"),proto.v1.signaling.api.ReceiveSignalStreamResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.displayName="proto.v1.signaling.api.ReceiveSignalStreamResponse"),proto.v1.signaling.api.Peer.repeatedFields_=[5],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Peer.prototype.toObject=function(ot){return proto.v1.signaling.api.Peer.toObject(ot,this)},proto.v1.signaling.api.Peer.toObject=function(ot,st){var at,lt={peerId:tt.Message.getFieldWithDefault(st,1,""),organizationId:tt.Message.getFieldWithDefault(st,2,""),userId:(at=st.getUserId())&&it.StringValue.toObject(ot,at),deviceId:(at=st.getDeviceId())&&it.StringValue.toObject(ot,at),sessionIdsList:(at=tt.Message.getRepeatedField(st,5))==null?void 0:at,peerCreatedTimestamp:(at=st.getPeerCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Peer.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Peer;return proto.v1.signaling.api.Peer.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Peer.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;case 2:at=st.readString(),ot.setOrganizationId(at);break;case 3:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setUserId(at);break;case 4:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setDeviceId(at);break;case 5:at=st.readString(),ot.addSessionIds(at);break;case 6:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setPeerCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Peer.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Peer.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Peer.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getPeerId()).length>0&&st.writeString(1,at),(at=ot.getOrganizationId()).length>0&&st.writeString(2,at),(at=ot.getUserId())!=null&&st.writeMessage(3,at,it.StringValue.serializeBinaryToWriter),(at=ot.getDeviceId())!=null&&st.writeMessage(4,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionIdsList()).length>0&&st.writeRepeatedString(5,at),(at=ot.getPeerCreatedTimestamp())!=null&&st.writeMessage(6,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.Peer.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.Peer.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},proto.v1.signaling.api.Peer.prototype.getOrganizationId=function(){return tt.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.Peer.prototype.setOrganizationId=function(ot){return tt.Message.setProto3StringField(this,2,ot)},proto.v1.signaling.api.Peer.prototype.getUserId=function(){return tt.Message.getWrapperField(this,it.StringValue,3)},proto.v1.signaling.api.Peer.prototype.setUserId=function(ot){return tt.Message.setWrapperField(this,3,ot)},proto.v1.signaling.api.Peer.prototype.clearUserId=function(){return this.setUserId(void 0)},proto.v1.signaling.api.Peer.prototype.hasUserId=function(){return tt.Message.getField(this,3)!=null},proto.v1.signaling.api.Peer.prototype.getDeviceId=function(){return tt.Message.getWrapperField(this,it.StringValue,4)},proto.v1.signaling.api.Peer.prototype.setDeviceId=function(ot){return tt.Message.setWrapperField(this,4,ot)},proto.v1.signaling.api.Peer.prototype.clearDeviceId=function(){return this.setDeviceId(void 0)},proto.v1.signaling.api.Peer.prototype.hasDeviceId=function(){return tt.Message.getField(this,4)!=null},proto.v1.signaling.api.Peer.prototype.getSessionIdsList=function(){return tt.Message.getRepeatedField(this,5)},proto.v1.signaling.api.Peer.prototype.setSessionIdsList=function(ot){return tt.Message.setField(this,5,ot||[])},proto.v1.signaling.api.Peer.prototype.addSessionIds=function(ot,st){return tt.Message.addToRepeatedField(this,5,ot,st)},proto.v1.signaling.api.Peer.prototype.clearSessionIdsList=function(){return this.setSessionIdsList([])},proto.v1.signaling.api.Peer.prototype.getPeerCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,6)},proto.v1.signaling.api.Peer.prototype.setPeerCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,6,ot)},proto.v1.signaling.api.Peer.prototype.clearPeerCreatedTimestamp=function(){return this.setPeerCreatedTimestamp(void 0)},proto.v1.signaling.api.Peer.prototype.hasPeerCreatedTimestamp=function(){return tt.Message.getField(this,6)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Signal.prototype.toObject=function(ot){return proto.v1.signaling.api.Signal.toObject(ot,this)},proto.v1.signaling.api.Signal.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at),senderId:tt.Message.getFieldWithDefault(st,3,""),receiverId:tt.Message.getFieldWithDefault(st,4,""),payload:tt.Message.getFieldWithDefault(st,5,""),iceServers:tt.Message.getFieldWithDefault(st,6,""),iceTransportPolicy:tt.Message.getFieldWithDefault(st,7,""),sessionType:tt.Message.getFieldWithDefault(st,8,0)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Signal.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Signal;return proto.v1.signaling.api.Signal.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Signal.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;case 3:at=st.readString(),ot.setSenderId(at);break;case 4:at=st.readString(),ot.setReceiverId(at);break;case 5:at=st.readString(),ot.setPayload(at);break;case 6:at=st.readString(),ot.setIceServers(at);break;case 7:at=st.readString(),ot.setIceTransportPolicy(at);break;case 8:at=st.readEnum(),ot.setSessionType(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Signal.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Signal.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Signal.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter),(at=ot.getSenderId()).length>0&&st.writeString(3,at),(at=ot.getReceiverId()).length>0&&st.writeString(4,at),(at=ot.getPayload()).length>0&&st.writeString(5,at),(at=ot.getIceServers()).length>0&&st.writeString(6,at),(at=ot.getIceTransportPolicy()).length>0&&st.writeString(7,at),(at=ot.getSessionType())!==0&&st.writeEnum(8,at)},proto.v1.signaling.api.Signal.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.Signal.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.Signal.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.Signal.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},proto.v1.signaling.api.Signal.prototype.getSenderId=function(){return tt.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.Signal.prototype.setSenderId=function(ot){return tt.Message.setProto3StringField(this,3,ot)},proto.v1.signaling.api.Signal.prototype.getReceiverId=function(){return tt.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.Signal.prototype.setReceiverId=function(ot){return tt.Message.setProto3StringField(this,4,ot)},proto.v1.signaling.api.Signal.prototype.getPayload=function(){return tt.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.Signal.prototype.setPayload=function(ot){return tt.Message.setProto3StringField(this,5,ot)},proto.v1.signaling.api.Signal.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,6,"")},proto.v1.signaling.api.Signal.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,6,ot)},proto.v1.signaling.api.Signal.prototype.getIceTransportPolicy=function(){return tt.Message.getFieldWithDefault(this,7,"")},proto.v1.signaling.api.Signal.prototype.setIceTransportPolicy=function(ot){return tt.Message.setProto3StringField(this,7,ot)},proto.v1.signaling.api.Signal.prototype.getSessionType=function(){return tt.Message.getFieldWithDefault(this,8,0)},proto.v1.signaling.api.Signal.prototype.setSessionType=function(ot){return tt.Message.setProto3EnumField(this,8,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RtcSession.prototype.toObject=function(ot){return proto.v1.signaling.api.RtcSession.toObject(ot,this)},proto.v1.signaling.api.RtcSession.toObject=function(ot,st){var at={sessionId:tt.Message.getFieldWithDefault(st,1,""),offerPeerId:tt.Message.getFieldWithDefault(st,2,""),answerPeerId:tt.Message.getFieldWithDefault(st,3,""),organizationId:tt.Message.getFieldWithDefault(st,4,""),sessionType:tt.Message.getFieldWithDefault(st,5,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.RtcSession.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RtcSession;return proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setSessionId(at);break;case 2:at=st.readString(),ot.setOfferPeerId(at);break;case 3:at=st.readString(),ot.setAnswerPeerId(at);break;case 4:at=st.readString(),ot.setOrganizationId(at);break;case 5:at=st.readString(),ot.setSessionType(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.RtcSession.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RtcSession.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RtcSession.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId()).length>0&&st.writeString(1,at),(at=ot.getOfferPeerId()).length>0&&st.writeString(2,at),(at=ot.getAnswerPeerId()).length>0&&st.writeString(3,at),(at=ot.getOrganizationId()).length>0&&st.writeString(4,at),(at=ot.getSessionType()).length>0&&st.writeString(5,at)},proto.v1.signaling.api.RtcSession.prototype.getSessionId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.RtcSession.prototype.setSessionId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},proto.v1.signaling.api.RtcSession.prototype.getOfferPeerId=function(){return tt.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.RtcSession.prototype.setOfferPeerId=function(ot){return tt.Message.setProto3StringField(this,2,ot)},proto.v1.signaling.api.RtcSession.prototype.getAnswerPeerId=function(){return tt.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.RtcSession.prototype.setAnswerPeerId=function(ot){return tt.Message.setProto3StringField(this,3,ot)},proto.v1.signaling.api.RtcSession.prototype.getOrganizationId=function(){return tt.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.RtcSession.prototype.setOrganizationId=function(ot){return tt.Message.setProto3StringField(this,4,ot)},proto.v1.signaling.api.RtcSession.prototype.getSessionType=function(){return tt.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.RtcSession.prototype.setSessionType=function(ot){return tt.Message.setProto3StringField(this,5,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetSessionsRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetSessionsRequest.toObject(ot,this)},proto.v1.signaling.api.GetSessionsRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetSessionsRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetSessionsRequest;return proto.v1.signaling.api.GetSessionsRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetSessionsRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetSessionsRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetSessionsRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetSessionsRequest.serializeBinaryToWriter=function(ot,st){},proto.v1.signaling.api.GetSessionsResponse.repeatedFields_=[1],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetSessionsResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetSessionsResponse.toObject(ot,this)},proto.v1.signaling.api.GetSessionsResponse.toObject=function(ot,st){var at={sessionsList:tt.Message.toObjectList(st.getSessionsList(),proto.v1.signaling.api.RtcSession.toObject,ot)};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetSessionsResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetSessionsResponse;return proto.v1.signaling.api.GetSessionsResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetSessionsResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.RtcSession;st.readMessage(at,proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader),ot.addSessions(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetSessionsResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetSessionsResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetSessionsResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSessionsList()).length>0&&st.writeRepeatedMessage(1,at,proto.v1.signaling.api.RtcSession.serializeBinaryToWriter)},proto.v1.signaling.api.GetSessionsResponse.prototype.getSessionsList=function(){return tt.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.RtcSession,1)},proto.v1.signaling.api.GetSessionsResponse.prototype.setSessionsList=function(ot){return tt.Message.setRepeatedWrapperField(this,1,ot)},proto.v1.signaling.api.GetSessionsResponse.prototype.addSessions=function(ot,st){return tt.Message.addToRepeatedWrapperField(this,1,ot,proto.v1.signaling.api.RtcSession,st)},proto.v1.signaling.api.GetSessionsResponse.prototype.clearSessionsList=function(){return this.setSessionsList([])},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthRequest.toObject(ot,this)},proto.v1.signaling.api.GetHealthRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthRequest;return proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetHealthRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthResponse.toObject(ot,this)},proto.v1.signaling.api.GetHealthResponse.toObject=function(ot,st){var at={version:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthResponse;return proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setVersion(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetHealthResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getVersion()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetHealthResponse.prototype.getVersion=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetHealthResponse.prototype.setVersion=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerRequest.toObject(ot,this)},proto.v1.signaling.api.CreatePeerRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.CreatePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerRequest;return proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.CreatePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerResponse.toObject(ot,this)},proto.v1.signaling.api.CreatePeerResponse.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.CreatePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerResponse;return proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.CreatePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.CreatePeerResponse.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.CreatePeerResponse.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.CreatePeerResponse.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.CreatePeerResponse.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerRequest.toObject(ot,this)},proto.v1.signaling.api.DeletePeerRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerRequest;return proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.DeletePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.DeletePeerRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.DeletePeerRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerResponse.toObject(ot,this)},proto.v1.signaling.api.DeletePeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerResponse;return proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.DeletePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerRequest.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerRequest.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.RefreshPeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerRequest;return proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.RefreshPeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.RefreshPeerRequest.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.RefreshPeerRequest.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.RefreshPeerRequest.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.RefreshPeerRequest.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerResponse.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.RefreshPeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerResponse;return proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.RefreshPeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersRequest.toObject(ot,this)},proto.v1.signaling.api.GetPeersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersRequest;return proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetPeersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter=function(ot,st){},proto.v1.signaling.api.GetPeersResponse.repeatedFields_=[1],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersResponse.toObject(ot,this)},proto.v1.signaling.api.GetPeersResponse.toObject=function(ot,st){var at={peersList:tt.Message.toObjectList(st.getPeersList(),proto.v1.signaling.api.Peer.toObject,ot)};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersResponse;return proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.addPeers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetPeersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeersList()).length>0&&st.writeRepeatedMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.GetPeersResponse.prototype.getPeersList=function(){return tt.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.GetPeersResponse.prototype.setPeersList=function(ot){return tt.Message.setRepeatedWrapperField(this,1,ot)},proto.v1.signaling.api.GetPeersResponse.prototype.addPeers=function(ot,st){return tt.Message.addToRepeatedWrapperField(this,1,ot,proto.v1.signaling.api.Peer,st)},proto.v1.signaling.api.GetPeersResponse.prototype.clearPeersList=function(){return this.setPeersList([])},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersRequest.toObject(ot,this)},proto.v1.signaling.api.GetIceServersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersRequest;return proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetIceServersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersResponse.toObject(ot,this)},proto.v1.signaling.api.GetIceServersResponse.toObject=function(ot,st){var at={iceServers:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersResponse;return proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setIceServers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetIceServersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getIceServers()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetIceServersResponse.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetIceServersResponse.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalRequest.toObject(ot,this)},proto.v1.signaling.api.SendSignalRequest.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalRequest;return proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalRequest.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.SendSignalRequest.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalRequest.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.SendSignalRequest.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalResponse.toObject(ot,this)},proto.v1.signaling.api.SendSignalResponse.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalResponse;return proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamRequest;return proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamResponse;return proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SessionType={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3,HEADLESS:4},nt.object.extend(o,proto.v1.signaling.api)},function(s,o,et){et.d(o,"a",function(){return nt});var tt=et(28);class nt extends Error{constructor(it,ot,st,at,lt,ut,dt={}){super("Response error "+JSON.stringify({method:it,url:ot,requestBody:Object(tt.a)(st),statusCode:at,responseHeaders:lt?Object(tt.a)([...lt.entries()].reduce((ht,[ct,pt])=>(ht[ct]=pt,ht),{})):{},responseBody:Object(tt.a)(ut)})),this.method=it,this.url=ot,this.requestBody=st,this.statusCode=at,this.headers=lt,this.body=ut,this.validationErrors=dt,this.name="ResponseError",Object.setPrototypeOf(this,new.target.prototype)}}},function(s,o,et){function tt(nt,rt,it=()=>!0){if(function(ot,st,at=()=>!0){return ot instanceof st&&at(ot)}(nt,rt,it))return nt;throw nt}et.d(o,"a",function(){return tt})},function(s,o,et){(function(tt){var nt=Object.getOwnPropertyDescriptors||function(Nt){for(var Ot=Object.keys(Nt),Wt={},Dt=0;Dt=Et)return en;switch(en){case"%s":return String(Dt[Wt++]);case"%d":return Number(Dt[Wt++]);case"%j":try{return JSON.stringify(Dt[Wt++])}catch{return"[Circular]"}default:return en}}),zt=Dt[Wt];Wt=3&&(Wt.depth=arguments[2]),arguments.length>=4&&(Wt.colors=arguments[3]),pt(Ot)?Wt.showHidden=Ot:Ot&&o._extend(Wt,Ot),Ut(Wt.showHidden)&&(Wt.showHidden=!1),Ut(Wt.depth)&&(Wt.depth=2),Ut(Wt.colors)&&(Wt.colors=!1),Ut(Wt.customInspect)&&(Wt.customInspect=!0),Wt.colors&&(Wt.stylize=at),ut(Wt,Nt,Wt.depth)}function at(Nt,Ot){var Wt=st.styles[Ot];return Wt?"\x1B["+st.colors[Wt][0]+"m"+Nt+"\x1B["+st.colors[Wt][1]+"m":Nt}function lt(Nt,Ot){return Nt}function ut(Nt,Ot,Wt){if(Nt.customInspect&&Ot&&Lt(Ot.inspect)&&Ot.inspect!==o.inspect&&(!Ot.constructor||Ot.constructor.prototype!==Ot)){var Dt=Ot.inspect(Wt,Nt);return yt(Dt)||(Dt=ut(Nt,Dt,Wt)),Dt}var Et=function(Vt,It){if(Ut(It))return Vt.stylize("undefined","undefined");if(yt(It)){var $t="'"+JSON.stringify(It).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return Vt.stylize($t,"string")}if(gt(It))return Vt.stylize(""+It,"number");if(pt(It))return Vt.stylize(""+It,"boolean");if(ft(It))return Vt.stylize("null","null")}(Nt,Ot);if(Et)return Et;var Pt=Object.keys(Ot),zt=function(Vt){var It={};return Vt.forEach(function($t,Ht){It[$t]=!0}),It}(Pt);if(Nt.showHidden&&(Pt=Object.getOwnPropertyNames(Ot)),At(Ot)&&(Pt.indexOf("message")>=0||Pt.indexOf("description")>=0))return dt(Ot);if(Pt.length===0){if(Lt(Ot)){var en=Ot.name?": "+Ot.name:"";return Nt.stylize("[Function"+en+"]","special")}if(Ft(Ot))return Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp");if(vt(Ot))return Nt.stylize(Date.prototype.toString.call(Ot),"date");if(At(Ot))return dt(Ot)}var Kt,nn="",Zt=!1,jt=["{","}"];return ct(Ot)&&(Zt=!0,jt=["[","]"]),Lt(Ot)&&(nn=" [Function"+(Ot.name?": "+Ot.name:"")+"]"),Ft(Ot)&&(nn=" "+RegExp.prototype.toString.call(Ot)),vt(Ot)&&(nn=" "+Date.prototype.toUTCString.call(Ot)),At(Ot)&&(nn=" "+dt(Ot)),Pt.length!==0||Zt&&Ot.length!=0?Wt<0?Ft(Ot)?Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp"):Nt.stylize("[Object]","special"):(Nt.seen.push(Ot),Kt=Zt?function(Vt,It,$t,Ht,qt){for(var on=[],Xt=0,dn=It.length;Xt2)throw new ut(dt);function ht(){var pt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.options=pt}function ct(pt){return new ht(pt)}return ht.prototype.transform=dt,ct.Format=ht,ct}},function(s,o,et){et.d(o,"a",function(){return tt});const tt=nt=>new Promise(rt=>setTimeout(rt,nt||0))},function(s,o,et){var tt=et(98),nt=tt,rt=typeof globalThis<"u"&&globalThis||typeof window<"u"&&window||rt!==void 0&&rt||typeof self<"u"&&self||function(){return this}.call(null)||Function("return this")(),it=et(97);nt.object.extend(proto,it),nt.exportSymbol("proto.v1.signaling.api.CreatePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.CreatePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.DeletePeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetHealthResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetIceServersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetPeersResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetSessionsRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.GetSessionsResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.Peer",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.RefreshPeerResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.RtcSession",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalRequest",null,rt),nt.exportSymbol("proto.v1.signaling.api.SendSignalResponse",null,rt),nt.exportSymbol("proto.v1.signaling.api.SessionType",null,rt),nt.exportSymbol("proto.v1.signaling.api.Signal",null,rt),proto.v1.signaling.api.Peer=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.Peer.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.Peer,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Peer.displayName="proto.v1.signaling.api.Peer"),proto.v1.signaling.api.Signal=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.Signal,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Signal.displayName="proto.v1.signaling.api.Signal"),proto.v1.signaling.api.RtcSession=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RtcSession,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RtcSession.displayName="proto.v1.signaling.api.RtcSession"),proto.v1.signaling.api.GetSessionsRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetSessionsRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetSessionsRequest.displayName="proto.v1.signaling.api.GetSessionsRequest"),proto.v1.signaling.api.GetSessionsResponse=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.GetSessionsResponse.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.GetSessionsResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetSessionsResponse.displayName="proto.v1.signaling.api.GetSessionsResponse"),proto.v1.signaling.api.GetHealthRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthRequest.displayName="proto.v1.signaling.api.GetHealthRequest"),proto.v1.signaling.api.GetHealthResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetHealthResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthResponse.displayName="proto.v1.signaling.api.GetHealthResponse"),proto.v1.signaling.api.CreatePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerRequest.displayName="proto.v1.signaling.api.CreatePeerRequest"),proto.v1.signaling.api.CreatePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.CreatePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerResponse.displayName="proto.v1.signaling.api.CreatePeerResponse"),proto.v1.signaling.api.DeletePeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerRequest.displayName="proto.v1.signaling.api.DeletePeerRequest"),proto.v1.signaling.api.DeletePeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.DeletePeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerResponse.displayName="proto.v1.signaling.api.DeletePeerResponse"),proto.v1.signaling.api.RefreshPeerRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerRequest.displayName="proto.v1.signaling.api.RefreshPeerRequest"),proto.v1.signaling.api.RefreshPeerResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.RefreshPeerResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerResponse.displayName="proto.v1.signaling.api.RefreshPeerResponse"),proto.v1.signaling.api.GetPeersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetPeersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersRequest.displayName="proto.v1.signaling.api.GetPeersRequest"),proto.v1.signaling.api.GetPeersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,proto.v1.signaling.api.GetPeersResponse.repeatedFields_,null)},nt.inherits(proto.v1.signaling.api.GetPeersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersResponse.displayName="proto.v1.signaling.api.GetPeersResponse"),proto.v1.signaling.api.GetIceServersRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersRequest.displayName="proto.v1.signaling.api.GetIceServersRequest"),proto.v1.signaling.api.GetIceServersResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.GetIceServersResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersResponse.displayName="proto.v1.signaling.api.GetIceServersResponse"),proto.v1.signaling.api.SendSignalRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalRequest.displayName="proto.v1.signaling.api.SendSignalRequest"),proto.v1.signaling.api.SendSignalResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.SendSignalResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalResponse.displayName="proto.v1.signaling.api.SendSignalResponse"),proto.v1.signaling.api.ReceiveSignalStreamRequest=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamRequest,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.displayName="proto.v1.signaling.api.ReceiveSignalStreamRequest"),proto.v1.signaling.api.ReceiveSignalStreamResponse=function(ot){tt.Message.initialize(this,ot,0,-1,null,null)},nt.inherits(proto.v1.signaling.api.ReceiveSignalStreamResponse,tt.Message),nt.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.displayName="proto.v1.signaling.api.ReceiveSignalStreamResponse"),proto.v1.signaling.api.Peer.repeatedFields_=[5],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Peer.prototype.toObject=function(ot){return proto.v1.signaling.api.Peer.toObject(ot,this)},proto.v1.signaling.api.Peer.toObject=function(ot,st){var at,lt={peerId:tt.Message.getFieldWithDefault(st,1,""),organizationId:tt.Message.getFieldWithDefault(st,2,""),userId:(at=st.getUserId())&&it.StringValue.toObject(ot,at),deviceId:(at=st.getDeviceId())&&it.StringValue.toObject(ot,at),sessionIdsList:(at=tt.Message.getRepeatedField(st,5))==null?void 0:at,peerCreatedTimestamp:(at=st.getPeerCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Peer.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Peer;return proto.v1.signaling.api.Peer.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Peer.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;case 2:at=st.readString(),ot.setOrganizationId(at);break;case 3:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setUserId(at);break;case 4:at=new it.StringValue,st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setDeviceId(at);break;case 5:at=st.readString(),ot.addSessionIds(at);break;case 6:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setPeerCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Peer.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Peer.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Peer.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getPeerId()).length>0&&st.writeString(1,at),(at=ot.getOrganizationId()).length>0&&st.writeString(2,at),(at=ot.getUserId())!=null&&st.writeMessage(3,at,it.StringValue.serializeBinaryToWriter),(at=ot.getDeviceId())!=null&&st.writeMessage(4,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionIdsList()).length>0&&st.writeRepeatedString(5,at),(at=ot.getPeerCreatedTimestamp())!=null&&st.writeMessage(6,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.Peer.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.Peer.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},proto.v1.signaling.api.Peer.prototype.getOrganizationId=function(){return tt.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.Peer.prototype.setOrganizationId=function(ot){return tt.Message.setProto3StringField(this,2,ot)},proto.v1.signaling.api.Peer.prototype.getUserId=function(){return tt.Message.getWrapperField(this,it.StringValue,3)},proto.v1.signaling.api.Peer.prototype.setUserId=function(ot){return tt.Message.setWrapperField(this,3,ot)},proto.v1.signaling.api.Peer.prototype.clearUserId=function(){return this.setUserId(void 0)},proto.v1.signaling.api.Peer.prototype.hasUserId=function(){return tt.Message.getField(this,3)!=null},proto.v1.signaling.api.Peer.prototype.getDeviceId=function(){return tt.Message.getWrapperField(this,it.StringValue,4)},proto.v1.signaling.api.Peer.prototype.setDeviceId=function(ot){return tt.Message.setWrapperField(this,4,ot)},proto.v1.signaling.api.Peer.prototype.clearDeviceId=function(){return this.setDeviceId(void 0)},proto.v1.signaling.api.Peer.prototype.hasDeviceId=function(){return tt.Message.getField(this,4)!=null},proto.v1.signaling.api.Peer.prototype.getSessionIdsList=function(){return tt.Message.getRepeatedField(this,5)},proto.v1.signaling.api.Peer.prototype.setSessionIdsList=function(ot){return tt.Message.setField(this,5,ot||[])},proto.v1.signaling.api.Peer.prototype.addSessionIds=function(ot,st){return tt.Message.addToRepeatedField(this,5,ot,st)},proto.v1.signaling.api.Peer.prototype.clearSessionIdsList=function(){return this.setSessionIdsList([])},proto.v1.signaling.api.Peer.prototype.getPeerCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,6)},proto.v1.signaling.api.Peer.prototype.setPeerCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,6,ot)},proto.v1.signaling.api.Peer.prototype.clearPeerCreatedTimestamp=function(){return this.setPeerCreatedTimestamp(void 0)},proto.v1.signaling.api.Peer.prototype.hasPeerCreatedTimestamp=function(){return tt.Message.getField(this,6)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Signal.prototype.toObject=function(ot){return proto.v1.signaling.api.Signal.toObject(ot,this)},proto.v1.signaling.api.Signal.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at),senderId:tt.Message.getFieldWithDefault(st,3,""),receiverId:tt.Message.getFieldWithDefault(st,4,""),payload:tt.Message.getFieldWithDefault(st,5,""),iceServers:tt.Message.getFieldWithDefault(st,6,""),iceTransportPolicy:tt.Message.getFieldWithDefault(st,7,""),sessionType:tt.Message.getFieldWithDefault(st,8,0)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.Signal.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.Signal;return proto.v1.signaling.api.Signal.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.Signal.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;case 3:at=st.readString(),ot.setSenderId(at);break;case 4:at=st.readString(),ot.setReceiverId(at);break;case 5:at=st.readString(),ot.setPayload(at);break;case 6:at=st.readString(),ot.setIceServers(at);break;case 7:at=st.readString(),ot.setIceTransportPolicy(at);break;case 8:at=st.readEnum(),ot.setSessionType(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.Signal.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.Signal.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.Signal.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter),(at=ot.getSenderId()).length>0&&st.writeString(3,at),(at=ot.getReceiverId()).length>0&&st.writeString(4,at),(at=ot.getPayload()).length>0&&st.writeString(5,at),(at=ot.getIceServers()).length>0&&st.writeString(6,at),(at=ot.getIceTransportPolicy()).length>0&&st.writeString(7,at),(at=ot.getSessionType())!==0&&st.writeEnum(8,at)},proto.v1.signaling.api.Signal.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.Signal.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.Signal.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.Signal.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.Signal.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},proto.v1.signaling.api.Signal.prototype.getSenderId=function(){return tt.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.Signal.prototype.setSenderId=function(ot){return tt.Message.setProto3StringField(this,3,ot)},proto.v1.signaling.api.Signal.prototype.getReceiverId=function(){return tt.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.Signal.prototype.setReceiverId=function(ot){return tt.Message.setProto3StringField(this,4,ot)},proto.v1.signaling.api.Signal.prototype.getPayload=function(){return tt.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.Signal.prototype.setPayload=function(ot){return tt.Message.setProto3StringField(this,5,ot)},proto.v1.signaling.api.Signal.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,6,"")},proto.v1.signaling.api.Signal.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,6,ot)},proto.v1.signaling.api.Signal.prototype.getIceTransportPolicy=function(){return tt.Message.getFieldWithDefault(this,7,"")},proto.v1.signaling.api.Signal.prototype.setIceTransportPolicy=function(ot){return tt.Message.setProto3StringField(this,7,ot)},proto.v1.signaling.api.Signal.prototype.getSessionType=function(){return tt.Message.getFieldWithDefault(this,8,0)},proto.v1.signaling.api.Signal.prototype.setSessionType=function(ot){return tt.Message.setProto3EnumField(this,8,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RtcSession.prototype.toObject=function(ot){return proto.v1.signaling.api.RtcSession.toObject(ot,this)},proto.v1.signaling.api.RtcSession.toObject=function(ot,st){var at={sessionId:tt.Message.getFieldWithDefault(st,1,""),offerPeerId:tt.Message.getFieldWithDefault(st,2,""),answerPeerId:tt.Message.getFieldWithDefault(st,3,""),organizationId:tt.Message.getFieldWithDefault(st,4,""),sessionType:tt.Message.getFieldWithDefault(st,5,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.RtcSession.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RtcSession;return proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setSessionId(at);break;case 2:at=st.readString(),ot.setOfferPeerId(at);break;case 3:at=st.readString(),ot.setAnswerPeerId(at);break;case 4:at=st.readString(),ot.setOrganizationId(at);break;case 5:at=st.readString(),ot.setSessionType(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.RtcSession.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RtcSession.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RtcSession.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId()).length>0&&st.writeString(1,at),(at=ot.getOfferPeerId()).length>0&&st.writeString(2,at),(at=ot.getAnswerPeerId()).length>0&&st.writeString(3,at),(at=ot.getOrganizationId()).length>0&&st.writeString(4,at),(at=ot.getSessionType()).length>0&&st.writeString(5,at)},proto.v1.signaling.api.RtcSession.prototype.getSessionId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.RtcSession.prototype.setSessionId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},proto.v1.signaling.api.RtcSession.prototype.getOfferPeerId=function(){return tt.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.RtcSession.prototype.setOfferPeerId=function(ot){return tt.Message.setProto3StringField(this,2,ot)},proto.v1.signaling.api.RtcSession.prototype.getAnswerPeerId=function(){return tt.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.RtcSession.prototype.setAnswerPeerId=function(ot){return tt.Message.setProto3StringField(this,3,ot)},proto.v1.signaling.api.RtcSession.prototype.getOrganizationId=function(){return tt.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.RtcSession.prototype.setOrganizationId=function(ot){return tt.Message.setProto3StringField(this,4,ot)},proto.v1.signaling.api.RtcSession.prototype.getSessionType=function(){return tt.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.RtcSession.prototype.setSessionType=function(ot){return tt.Message.setProto3StringField(this,5,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetSessionsRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetSessionsRequest.toObject(ot,this)},proto.v1.signaling.api.GetSessionsRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetSessionsRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetSessionsRequest;return proto.v1.signaling.api.GetSessionsRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetSessionsRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetSessionsRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetSessionsRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetSessionsRequest.serializeBinaryToWriter=function(ot,st){},proto.v1.signaling.api.GetSessionsResponse.repeatedFields_=[1],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetSessionsResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetSessionsResponse.toObject(ot,this)},proto.v1.signaling.api.GetSessionsResponse.toObject=function(ot,st){var at={sessionsList:tt.Message.toObjectList(st.getSessionsList(),proto.v1.signaling.api.RtcSession.toObject,ot)};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetSessionsResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetSessionsResponse;return proto.v1.signaling.api.GetSessionsResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetSessionsResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.RtcSession;st.readMessage(at,proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader),ot.addSessions(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetSessionsResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetSessionsResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetSessionsResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSessionsList()).length>0&&st.writeRepeatedMessage(1,at,proto.v1.signaling.api.RtcSession.serializeBinaryToWriter)},proto.v1.signaling.api.GetSessionsResponse.prototype.getSessionsList=function(){return tt.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.RtcSession,1)},proto.v1.signaling.api.GetSessionsResponse.prototype.setSessionsList=function(ot){return tt.Message.setRepeatedWrapperField(this,1,ot)},proto.v1.signaling.api.GetSessionsResponse.prototype.addSessions=function(ot,st){return tt.Message.addToRepeatedWrapperField(this,1,ot,proto.v1.signaling.api.RtcSession,st)},proto.v1.signaling.api.GetSessionsResponse.prototype.clearSessionsList=function(){return this.setSessionsList([])},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthRequest.toObject(ot,this)},proto.v1.signaling.api.GetHealthRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthRequest;return proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetHealthRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetHealthResponse.toObject(ot,this)},proto.v1.signaling.api.GetHealthResponse.toObject=function(ot,st){var at={version:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetHealthResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetHealthResponse;return proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setVersion(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetHealthResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getVersion()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetHealthResponse.prototype.getVersion=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetHealthResponse.prototype.setVersion=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerRequest.toObject(ot,this)},proto.v1.signaling.api.CreatePeerRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.CreatePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerRequest;return proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.CreatePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.CreatePeerResponse.toObject(ot,this)},proto.v1.signaling.api.CreatePeerResponse.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.CreatePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.CreatePeerResponse;return proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.CreatePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.CreatePeerResponse.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.CreatePeerResponse.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.CreatePeerResponse.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.CreatePeerResponse.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerRequest.toObject(ot,this)},proto.v1.signaling.api.DeletePeerRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerRequest;return proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.DeletePeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.DeletePeerRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.DeletePeerRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.DeletePeerResponse.toObject(ot,this)},proto.v1.signaling.api.DeletePeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.DeletePeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.DeletePeerResponse;return proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.DeletePeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerRequest.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerRequest.toObject=function(ot,st){var at,lt={peer:(at=st.getPeer())&&proto.v1.signaling.api.Peer.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.RefreshPeerRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerRequest;return proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.setPeer(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.RefreshPeerRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeer())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.RefreshPeerRequest.prototype.getPeer=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.RefreshPeerRequest.prototype.setPeer=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.RefreshPeerRequest.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.RefreshPeerRequest.prototype.hasPeer=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.RefreshPeerResponse.toObject(ot,this)},proto.v1.signaling.api.RefreshPeerResponse.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.RefreshPeerResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.RefreshPeerResponse;return proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.RefreshPeerResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersRequest.toObject(ot,this)},proto.v1.signaling.api.GetPeersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersRequest;return proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetPeersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter=function(ot,st){},proto.v1.signaling.api.GetPeersResponse.repeatedFields_=[1],tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetPeersResponse.toObject(ot,this)},proto.v1.signaling.api.GetPeersResponse.toObject=function(ot,st){var at={peersList:tt.Message.toObjectList(st.getPeersList(),proto.v1.signaling.api.Peer.toObject,ot)};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetPeersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetPeersResponse;return proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Peer;st.readMessage(at,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),ot.addPeers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetPeersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeersList()).length>0&&st.writeRepeatedMessage(1,at,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.GetPeersResponse.prototype.getPeersList=function(){return tt.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.GetPeersResponse.prototype.setPeersList=function(ot){return tt.Message.setRepeatedWrapperField(this,1,ot)},proto.v1.signaling.api.GetPeersResponse.prototype.addPeers=function(ot,st){return tt.Message.addToRepeatedWrapperField(this,1,ot,proto.v1.signaling.api.Peer,st)},proto.v1.signaling.api.GetPeersResponse.prototype.clearPeersList=function(){return this.setPeersList([])},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersRequest.toObject(ot,this)},proto.v1.signaling.api.GetIceServersRequest.toObject=function(ot,st){var at={};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersRequest;return proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)st.getFieldNumber(),st.skipField();return ot},proto.v1.signaling.api.GetIceServersRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter=function(ot,st){},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.GetIceServersResponse.toObject(ot,this)},proto.v1.signaling.api.GetIceServersResponse.toObject=function(ot,st){var at={iceServers:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.GetIceServersResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.GetIceServersResponse;return proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setIceServers(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.GetIceServersResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getIceServers()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.GetIceServersResponse.prototype.getIceServers=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetIceServersResponse.prototype.setIceServers=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalRequest.toObject(ot,this)},proto.v1.signaling.api.SendSignalRequest.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalRequest;return proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalRequest.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.SendSignalRequest.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalRequest.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.SendSignalRequest.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.SendSignalResponse.toObject(ot,this)},proto.v1.signaling.api.SendSignalResponse.toObject=function(ot,st){var at,lt={sessionId:(at=st.getSessionId())&&it.StringValue.toObject(ot,at),sessionCreatedTimestamp:(at=st.getSessionCreatedTimestamp())&&it.Int64Value.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.SendSignalResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.SendSignalResponse;return proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new it.StringValue;st.readMessage(at,it.StringValue.deserializeBinaryFromReader),ot.setSessionId(at);break;case 2:at=new it.Int64Value,st.readMessage(at,it.Int64Value.deserializeBinaryFromReader),ot.setSessionCreatedTimestamp(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.SendSignalResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter=function(ot,st){var at=void 0;(at=ot.getSessionId())!=null&&st.writeMessage(1,at,it.StringValue.serializeBinaryToWriter),(at=ot.getSessionCreatedTimestamp())!=null&&st.writeMessage(2,at,it.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionId=function(){return tt.Message.getWrapperField(this,it.StringValue,1)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionId=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionId=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionCreatedTimestamp=function(){return tt.Message.getWrapperField(this,it.Int64Value,2)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionCreatedTimestamp=function(ot){return tt.Message.setWrapperField(this,2,ot)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionCreatedTimestamp=function(){return tt.Message.getField(this,2)!=null},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject=function(ot,st){var at={peerId:tt.Message.getFieldWithDefault(st,1,"")};return ot&&(at.$jspbMessageInstance=st),at}),proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamRequest;return proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=st.readString();ot.setPeerId(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getPeerId()).length>0&&st.writeString(1,at)},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.getPeerId=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.setPeerId=function(ot){return tt.Message.setProto3StringField(this,1,ot)},tt.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.toObject=function(ot){return proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject(ot,this)},proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject=function(ot,st){var at,lt={signal:(at=st.getSignal())&&proto.v1.signaling.api.Signal.toObject(ot,at)};return ot&&(lt.$jspbMessageInstance=st),lt}),proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinary=function(ot){var st=new tt.BinaryReader(ot),at=new proto.v1.signaling.api.ReceiveSignalStreamResponse;return proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader(at,st)},proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader=function(ot,st){for(;st.nextField()&&!st.isEndGroup();)switch(st.getFieldNumber()){case 1:var at=new proto.v1.signaling.api.Signal;st.readMessage(at,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),ot.setSignal(at);break;default:st.skipField()}return ot},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.serializeBinary=function(){var ot=new tt.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter(this,ot),ot.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter=function(ot,st){var at;(at=ot.getSignal())!=null&&st.writeMessage(1,at,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.getSignal=function(){return tt.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.setSignal=function(ot){return tt.Message.setWrapperField(this,1,ot)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.hasSignal=function(){return tt.Message.getField(this,1)!=null},proto.v1.signaling.api.SessionType={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3,HEADLESS:4},nt.object.extend(o,proto.v1.signaling.api)},function(s,o,et){et.d(o,"a",function(){return nt});var tt=et(28);class nt extends Error{constructor(it,ot,st,at,lt,ut,dt={}){super("Response error "+JSON.stringify({method:it,url:ot,requestBody:Object(tt.a)(st),statusCode:at,responseHeaders:lt?Object(tt.a)([...lt.entries()].reduce((ht,[ct,pt])=>(ht[ct]=pt,ht),{})):{},responseBody:Object(tt.a)(ut)})),this.method=it,this.url=ot,this.requestBody=st,this.statusCode=at,this.headers=lt,this.body=ut,this.validationErrors=dt,this.name="ResponseError",Object.setPrototypeOf(this,new.target.prototype)}}},function(s,o,et){function tt(nt,rt,it=()=>!0){if(function(ot,st,at=()=>!0){return ot instanceof st&&at(ot)}(nt,rt,it))return nt;throw nt}et.d(o,"a",function(){return tt})},function(s,o,et){(function(tt){var nt=Object.getOwnPropertyDescriptors||function(Nt){for(var Ot=Object.keys(Nt),Jt={},Dt=0;Dt=Et)return en;switch(en){case"%s":return String(Dt[Jt++]);case"%d":return Number(Dt[Jt++]);case"%j":try{return JSON.stringify(Dt[Jt++])}catch{return"[Circular]"}default:return en}}),zt=Dt[Jt];Jt=3&&(Jt.depth=arguments[2]),arguments.length>=4&&(Jt.colors=arguments[3]),pt(Ot)?Jt.showHidden=Ot:Ot&&o._extend(Jt,Ot),Ut(Jt.showHidden)&&(Jt.showHidden=!1),Ut(Jt.depth)&&(Jt.depth=2),Ut(Jt.colors)&&(Jt.colors=!1),Ut(Jt.customInspect)&&(Jt.customInspect=!0),Jt.colors&&(Jt.stylize=at),ut(Jt,Nt,Jt.depth)}function at(Nt,Ot){var Jt=st.styles[Ot];return Jt?"\x1B["+st.colors[Jt][0]+"m"+Nt+"\x1B["+st.colors[Jt][1]+"m":Nt}function lt(Nt,Ot){return Nt}function ut(Nt,Ot,Jt){if(Nt.customInspect&&Ot&&Lt(Ot.inspect)&&Ot.inspect!==o.inspect&&(!Ot.constructor||Ot.constructor.prototype!==Ot)){var Dt=Ot.inspect(Jt,Nt);return yt(Dt)||(Dt=ut(Nt,Dt,Jt)),Dt}var Et=function(Vt,It){if(Ut(It))return Vt.stylize("undefined","undefined");if(yt(It)){var $t="'"+JSON.stringify(It).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return Vt.stylize($t,"string")}if(gt(It))return Vt.stylize(""+It,"number");if(pt(It))return Vt.stylize(""+It,"boolean");if(ft(It))return Vt.stylize("null","null")}(Nt,Ot);if(Et)return Et;var Pt=Object.keys(Ot),zt=function(Vt){var It={};return Vt.forEach(function($t,Ht){It[$t]=!0}),It}(Pt);if(Nt.showHidden&&(Pt=Object.getOwnPropertyNames(Ot)),At(Ot)&&(Pt.indexOf("message")>=0||Pt.indexOf("description")>=0))return dt(Ot);if(Pt.length===0){if(Lt(Ot)){var en=Ot.name?": "+Ot.name:"";return Nt.stylize("[Function"+en+"]","special")}if(Ft(Ot))return Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp");if(vt(Ot))return Nt.stylize(Date.prototype.toString.call(Ot),"date");if(At(Ot))return dt(Ot)}var Kt,nn="",Zt=!1,jt=["{","}"];return ct(Ot)&&(Zt=!0,jt=["[","]"]),Lt(Ot)&&(nn=" [Function"+(Ot.name?": "+Ot.name:"")+"]"),Ft(Ot)&&(nn=" "+RegExp.prototype.toString.call(Ot)),vt(Ot)&&(nn=" "+Date.prototype.toUTCString.call(Ot)),At(Ot)&&(nn=" "+dt(Ot)),Pt.length!==0||Zt&&Ot.length!=0?Jt<0?Ft(Ot)?Nt.stylize(RegExp.prototype.toString.call(Ot),"regexp"):Nt.stylize("[Object]","special"):(Nt.seen.push(Ot),Kt=Zt?function(Vt,It,$t,Ht,qt){for(var on=[],Xt=0,dn=It.length;Xt=0,Ht+qt.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?$t[0]+(It===""?"":It+` `)+" "+Vt.join(`, - `)+" "+$t[1]:$t[0]+It+" "+Vt.join(", ")+" "+$t[1]}(Kt,nn,jt)):jt[0]+nn+jt[1]}function dt(Nt){return"["+Error.prototype.toString.call(Nt)+"]"}function ht(Nt,Ot,Wt,Dt,Et,Pt){var zt,en,Kt;if((Kt=Object.getOwnPropertyDescriptor(Ot,Et)||{value:Ot[Et]}).get?en=Kt.set?Nt.stylize("[Getter/Setter]","special"):Nt.stylize("[Getter]","special"):Kt.set&&(en=Nt.stylize("[Setter]","special")),xt(Dt,Et)||(zt="["+Et+"]"),en||(Nt.seen.indexOf(Kt.value)<0?(en=ft(Wt)?ut(Nt,Kt.value,null):ut(Nt,Kt.value,Wt-1)).indexOf(` + `)+" "+$t[1]:$t[0]+It+" "+Vt.join(", ")+" "+$t[1]}(Kt,nn,jt)):jt[0]+nn+jt[1]}function dt(Nt){return"["+Error.prototype.toString.call(Nt)+"]"}function ht(Nt,Ot,Jt,Dt,Et,Pt){var zt,en,Kt;if((Kt=Object.getOwnPropertyDescriptor(Ot,Et)||{value:Ot[Et]}).get?en=Kt.set?Nt.stylize("[Getter/Setter]","special"):Nt.stylize("[Getter]","special"):Kt.set&&(en=Nt.stylize("[Setter]","special")),xt(Dt,Et)||(zt="["+Et+"]"),en||(Nt.seen.indexOf(Kt.value)<0?(en=ft(Jt)?ut(Nt,Kt.value,null):ut(Nt,Kt.value,Jt-1)).indexOf(` `)>-1&&(en=Pt?en.split(` `).map(function(nn){return" "+nn}).join(` `).substr(2):` `+en.split(` `).map(function(nn){return" "+nn}).join(` -`)):en=Nt.stylize("[Circular]","special")),Ut(zt)){if(Pt&&Et.match(/^\d+$/))return en;(zt=JSON.stringify(""+Et)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(zt=zt.substr(1,zt.length-2),zt=Nt.stylize(zt,"name")):(zt=zt.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),zt=Nt.stylize(zt,"string"))}return zt+": "+en}function ct(Nt){return Array.isArray(Nt)}function pt(Nt){return typeof Nt=="boolean"}function ft(Nt){return Nt===null}function gt(Nt){return typeof Nt=="number"}function yt(Nt){return typeof Nt=="string"}function Ut(Nt){return Nt===void 0}function Ft(Nt){return mt(Nt)&&Rt(Nt)==="[object RegExp]"}function mt(Nt){return typeof Nt=="object"&&Nt!==null}function vt(Nt){return mt(Nt)&&Rt(Nt)==="[object Date]"}function At(Nt){return mt(Nt)&&(Rt(Nt)==="[object Error]"||Nt instanceof Error)}function Lt(Nt){return typeof Nt=="function"}function Rt(Nt){return Object.prototype.toString.call(Nt)}function St(Nt){return Nt<10?"0"+Nt.toString(10):Nt.toString(10)}o.debuglog=function(Nt){if(Ut(it)&&(it=tt.env.NODE_DEBUG||""),Nt=Nt.toUpperCase(),!ot[Nt])if(new RegExp("\\b"+Nt+"\\b","i").test(it)){var Ot=tt.pid;ot[Nt]=function(){var Wt=o.format.apply(o,arguments);console.error("%s %d: %s",Nt,Ot,Wt)}}else ot[Nt]=function(){};return ot[Nt]},o.inspect=st,st.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},st.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},o.isArray=ct,o.isBoolean=pt,o.isNull=ft,o.isNullOrUndefined=function(Nt){return Nt==null},o.isNumber=gt,o.isString=yt,o.isSymbol=function(Nt){return typeof Nt=="symbol"},o.isUndefined=Ut,o.isRegExp=Ft,o.isObject=mt,o.isDate=vt,o.isError=At,o.isFunction=Lt,o.isPrimitive=function(Nt){return Nt===null||typeof Nt=="boolean"||typeof Nt=="number"||typeof Nt=="string"||typeof Nt=="symbol"||Nt===void 0},o.isBuffer=et(104);var Tt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Bt(){var Nt=new Date,Ot=[St(Nt.getHours()),St(Nt.getMinutes()),St(Nt.getSeconds())].join(":");return[Nt.getDate(),Tt[Nt.getMonth()],Ot].join(" ")}function xt(Nt,Ot){return Object.prototype.hasOwnProperty.call(Nt,Ot)}o.log=function(){console.log("%s - %s",Bt(),o.format.apply(o,arguments))},o.inherits=et(105),o._extend=function(Nt,Ot){if(!Ot||!mt(Ot))return Nt;for(var Wt=Object.keys(Ot),Dt=Wt.length;Dt--;)Nt[Wt[Dt]]=Ot[Wt[Dt]];return Nt};var Ct=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;function kt(Nt,Ot){if(!Nt){var Wt=new Error("Promise was rejected with a falsy value");Wt.reason=Nt,Nt=Wt}return Ot(Nt)}o.promisify=function(Nt){if(typeof Nt!="function")throw new TypeError('The "original" argument must be of type Function');if(Ct&&Nt[Ct]){var Ot;if(typeof(Ot=Nt[Ct])!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(Ot,Ct,{value:Ot,enumerable:!1,writable:!1,configurable:!0}),Ot}function Ot(){for(var Wt,Dt,Et=new Promise(function(en,Kt){Wt=en,Dt=Kt}),Pt=[],zt=0;zt0&&arguments[0]!==void 0?arguments[0]:{};nt.call(this,{objectMode:!0,highWaterMark:st.highWaterMark}),this.format=st.format,this.level=st.level,this.handleExceptions=st.handleExceptions,this.handleRejections=st.handleRejections,this.silent=st.silent,st.log&&(this.log=st.log),st.logv&&(this.logv=st.logv),st.close&&(this.close=st.close),this.once("pipe",function(at){ot.levels=at.levels,ot.parent=at}),this.once("unpipe",function(at){at===ot.parent&&(ot.parent=null,ot.close&&ot.close())})};tt.inherits(it,nt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);var lt=this.level||this.parent&&this.parent.level;if(!lt||this.levels[lt]>=this.levels[ot[rt]]){if(ot&&!this.format)return this.log(ot,at);var ut=void 0,dt=void 0;try{dt=this.format.transform(Object.assign({},ot),this.format.options)}catch(ht){ut=ht}if(ut||!dt){if(at(),ut)throw ut;return}return this.log(dt,at)}return this._writableState.sync=!1,at(null)},it.prototype._writev=function(ot,st){if(this.logv){var at=ot.filter(this._accept,this);return at.length?this.logv(at,st):st(null)}for(var lt=0;lt=this.levels[st[rt]])||!this.handleExceptions&&st.exception===!0)},it.prototype._nop=function(){},s.exports.LegacyTransportStream=et(151)},function(s,o,et){s.exports=function(tt,nt){nt||(nt={}),typeof nt=="function"&&(nt={cmp:nt});var rt,it=typeof nt.cycles=="boolean"&&nt.cycles,ot=nt.cmp&&(rt=nt.cmp,function(at){return function(lt,ut){var dt={key:lt,value:at[lt]},ht={key:ut,value:at[ut]};return rt(dt,ht)}}),st=[];return function at(lt){if(lt&<.toJSON&&typeof lt.toJSON=="function"&&(lt=lt.toJSON()),lt!==void 0){if(typeof lt=="number")return isFinite(lt)?""+lt:"null";if(typeof lt!="object")return JSON.stringify(lt);var ut,dt;if(Array.isArray(lt)){for(dt="[",ut=0;ut(In=In||0)&&(In=Math.max(In+mr,0));Invn?1:0}e:{var _n=vt.navigator;if(_n){var Fn=_n.userAgent;if(Fn){Ht=Fn;break e}}Ht=""}var Un="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function On(sn){var vn=1;sn=sn.split(":");for(var In=[];0parseFloat(_r)){hn=String(Wr);break e}}hn=_r}var Uo={};function eo(){return function(sn){var vn=Uo;return Object.prototype.hasOwnProperty.call(vn,9)?vn[9]:vn[9]=sn(9)}(function(){for(var sn=0,vn=on(String(hn)).split("."),In=on("9").split("."),Kn=Math.max(vn.length,In.length),mr=0;sn==0&&mr>>0);function gr(sn){return typeof sn=="function"?sn:(sn[cr]||(sn[cr]=function(vn){return sn.handleEvent(vn)}),sn[cr])}function br(){Yr.call(this),this.f=new Fr(this),this.U=this}function ur(sn,vn){sn=sn.U;var In=vn.type||vn;if(typeof vn=="string")vn=new ro(vn,sn);else if(vn instanceof ro)vn.target=vn.target||sn;else{var Kn=vn;(function(mr,kr){for(var Sr,Ar,Zr=1;Zr=(sn?lo(Jo(Go(),sn.getName())):fr).value),Kn&&(vn=vn||fr,Kn=Jo(Go(),sn.getName()),typeof In=="function"&&(In=In()),rr||(rr=new oo),function(mr,kr){for(;mr;)mr.f.forEach(function(Sr){Sr(kr)}),mr=mr.b}(Kn,sn=new ao(vn,In,sn=sn.getName())))}function So(sn,vn){sn&&cs(sn,Pr,vn)}function so(){}function Bo(sn){var vn;return(vn=sn.a)||(vn={},ps(sn)&&(vn[0]=!0,vn[1]=!0),vn=sn.a=vn),vn}function Io(){}function ns(sn){return(sn=ps(sn))?new ActiveXObject(sn):new XMLHttpRequest}function ps(sn){if(!sn.b&&typeof XMLHttpRequest>"u"&&typeof ActiveXObject<"u"){for(var vn=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],In=0;In2*this.size&&Zs(this),!0)},nt.get=function(sn,vn){return Sl(this.o,sn)?this.o[sn]:vn},nt.set=function(sn,vn){Sl(this.o,sn)||(this.size+=1,this.j.push(sn),this.B++),this.o[sn]=vn},nt.addAll=function(sn){if(sn instanceof fs)for(var vn=sn.G(),In=0;In=Kn.j.length)throw bs;var kr=Kn.j[vn++];return sn?kr:Kn.o[kr]},mr.next=mr.a.bind(mr),mr};var As=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^\\/?#]*)@)?([^\\/?#]*?)(?::([0-9]+))?(?=[\\/?#]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;function ks(sn){br.call(this),this.headers=new fs,this.C=sn||null,this.c=!1,this.J=this.a=null,this.P=this.v="",this.g=0,this.l="",this.i=this.N=this.s=this.L=!1,this.h=0,this.w=null,this.m=js,this.I=this.M=!1}xt(ks,br);var js="";ks.prototype.b=Jo(Go(),"goog.net.XhrIo",void 0).g;var Xs=/^https?$/i,vo=["POST","PUT"];function Hl(sn,vn,In){if(sn.a)throw Error("[goog.net.XhrIo] Object is active with another request="+sn.v+"; newUri="+vn);sn.v=vn,sn.l="",sn.g=0,sn.P="POST",sn.L=!1,sn.c=!0,sn.a=sn.C?ns(sn.C):ns(vr),sn.J=sn.C?Bo(sn.C):Bo(vr),sn.a.onreadystatechange=Bt(sn.R,sn);try{So(sn.b,an(sn,"Opening Xhr")),sn.N=!0,sn.a.open("POST",String(vn),!0),sn.N=!1}catch(kr){return So(sn.b,an(sn,"Error opening Xhr: "+kr.message)),void Tn(sn,kr)}vn=In||"";var Kn=(In=sn.headers.clone()).G().find(function(kr){return kr.toLowerCase()=="content-type"}),mr=vt.FormData&&vn instanceof vt.FormData;!(0<=qt(vo,"POST"))||Kn||mr||In.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),In.forEach(function(kr,Sr){this.a.setRequestHeader(Sr,kr)},sn),sn.m&&(sn.a.responseType=sn.m),"withCredentials"in sn.a&&sn.a.withCredentials!==sn.M&&(sn.a.withCredentials=sn.M);try{Jn(sn),0>4),Co!=64&&(Sr(Ro<<4&240|Co>>2),Ko!=64&&Sr(Co<<6&192|Ko))}}(sn,function(kr){Kn[mr++]=kr}),Kn.subarray(0,mr)}function Hn(){if(!Vn){Vn={};for(var sn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),vn=["+/=","+/","-_=","-_.","-_"],In=0;5>In;In++){var Kn=sn.concat(vn[In].split(""));bn[In]=Kn;for(var mr=0;mr0&&arguments[0]!==void 0?arguments[0]:{};nt.call(this,{objectMode:!0,highWaterMark:st.highWaterMark}),this.format=st.format,this.level=st.level,this.handleExceptions=st.handleExceptions,this.handleRejections=st.handleRejections,this.silent=st.silent,st.log&&(this.log=st.log),st.logv&&(this.logv=st.logv),st.close&&(this.close=st.close),this.once("pipe",function(at){ot.levels=at.levels,ot.parent=at}),this.once("unpipe",function(at){at===ot.parent&&(ot.parent=null,ot.close&&ot.close())})};tt.inherits(it,nt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);var lt=this.level||this.parent&&this.parent.level;if(!lt||this.levels[lt]>=this.levels[ot[rt]]){if(ot&&!this.format)return this.log(ot,at);var ut=void 0,dt=void 0;try{dt=this.format.transform(Object.assign({},ot),this.format.options)}catch(ht){ut=ht}if(ut||!dt){if(at(),ut)throw ut;return}return this.log(dt,at)}return this._writableState.sync=!1,at(null)},it.prototype._writev=function(ot,st){if(this.logv){var at=ot.filter(this._accept,this);return at.length?this.logv(at,st):st(null)}for(var lt=0;lt=this.levels[st[rt]])||!this.handleExceptions&&st.exception===!0)},it.prototype._nop=function(){},s.exports.LegacyTransportStream=et(151)},function(s,o,et){s.exports=function(tt,nt){nt||(nt={}),typeof nt=="function"&&(nt={cmp:nt});var rt,it=typeof nt.cycles=="boolean"&&nt.cycles,ot=nt.cmp&&(rt=nt.cmp,function(at){return function(lt,ut){var dt={key:lt,value:at[lt]},ht={key:ut,value:at[ut]};return rt(dt,ht)}}),st=[];return function at(lt){if(lt&<.toJSON&&typeof lt.toJSON=="function"&&(lt=lt.toJSON()),lt!==void 0){if(typeof lt=="number")return isFinite(lt)?""+lt:"null";if(typeof lt!="object")return JSON.stringify(lt);var ut,dt;if(Array.isArray(lt)){for(dt="[",ut=0;ut(In=In||0)&&(In=Math.max(In+mr,0));Invn?1:0}e:{var _n=vt.navigator;if(_n){var Fn=_n.userAgent;if(Fn){Ht=Fn;break e}}Ht=""}var Un="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function On(sn){var vn=1;sn=sn.split(":");for(var In=[];0parseFloat(_r)){hn=String(Jr);break e}}hn=_r}var Uo={};function eo(){return function(sn){var vn=Uo;return Object.prototype.hasOwnProperty.call(vn,9)?vn[9]:vn[9]=sn(9)}(function(){for(var sn=0,vn=on(String(hn)).split("."),In=on("9").split("."),Kn=Math.max(vn.length,In.length),mr=0;sn==0&&mr>>0);function gr(sn){return typeof sn=="function"?sn:(sn[cr]||(sn[cr]=function(vn){return sn.handleEvent(vn)}),sn[cr])}function br(){Yr.call(this),this.f=new Fr(this),this.U=this}function ur(sn,vn){sn=sn.U;var In=vn.type||vn;if(typeof vn=="string")vn=new ro(vn,sn);else if(vn instanceof ro)vn.target=vn.target||sn;else{var Kn=vn;(function(mr,kr){for(var Sr,Ar,Zr=1;Zr=(sn?lo(Wo(Go(),sn.getName())):fr).value),Kn&&(vn=vn||fr,Kn=Wo(Go(),sn.getName()),typeof In=="function"&&(In=In()),rr||(rr=new oo),function(mr,kr){for(;mr;)mr.f.forEach(function(Sr){Sr(kr)}),mr=mr.b}(Kn,sn=new ao(vn,In,sn=sn.getName())))}function So(sn,vn){sn&&cs(sn,Pr,vn)}function so(){}function Bo(sn){var vn;return(vn=sn.a)||(vn={},ps(sn)&&(vn[0]=!0,vn[1]=!0),vn=sn.a=vn),vn}function Io(){}function ns(sn){return(sn=ps(sn))?new ActiveXObject(sn):new XMLHttpRequest}function ps(sn){if(!sn.b&&typeof XMLHttpRequest>"u"&&typeof ActiveXObject<"u"){for(var vn=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],In=0;In2*this.size&&Zs(this),!0)},nt.get=function(sn,vn){return Sl(this.o,sn)?this.o[sn]:vn},nt.set=function(sn,vn){Sl(this.o,sn)||(this.size+=1,this.j.push(sn),this.B++),this.o[sn]=vn},nt.addAll=function(sn){if(sn instanceof fs)for(var vn=sn.G(),In=0;In=Kn.j.length)throw bs;var kr=Kn.j[vn++];return sn?kr:Kn.o[kr]},mr.next=mr.a.bind(mr),mr};var As=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^\\/?#]*)@)?([^\\/?#]*?)(?::([0-9]+))?(?=[\\/?#]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;function ks(sn){br.call(this),this.headers=new fs,this.C=sn||null,this.c=!1,this.J=this.a=null,this.P=this.v="",this.g=0,this.l="",this.i=this.N=this.s=this.L=!1,this.h=0,this.w=null,this.m=js,this.I=this.M=!1}xt(ks,br);var js="";ks.prototype.b=Wo(Go(),"goog.net.XhrIo",void 0).g;var Xs=/^https?$/i,vo=["POST","PUT"];function Hl(sn,vn,In){if(sn.a)throw Error("[goog.net.XhrIo] Object is active with another request="+sn.v+"; newUri="+vn);sn.v=vn,sn.l="",sn.g=0,sn.P="POST",sn.L=!1,sn.c=!0,sn.a=sn.C?ns(sn.C):ns(vr),sn.J=sn.C?Bo(sn.C):Bo(vr),sn.a.onreadystatechange=Bt(sn.R,sn);try{So(sn.b,an(sn,"Opening Xhr")),sn.N=!0,sn.a.open("POST",String(vn),!0),sn.N=!1}catch(kr){return So(sn.b,an(sn,"Error opening Xhr: "+kr.message)),void Tn(sn,kr)}vn=In||"";var Kn=(In=sn.headers.clone()).G().find(function(kr){return kr.toLowerCase()=="content-type"}),mr=vt.FormData&&vn instanceof vt.FormData;!(0<=qt(vo,"POST"))||Kn||mr||In.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),In.forEach(function(kr,Sr){this.a.setRequestHeader(Sr,kr)},sn),sn.m&&(sn.a.responseType=sn.m),"withCredentials"in sn.a&&sn.a.withCredentials!==sn.M&&(sn.a.withCredentials=sn.M);try{Wn(sn),0>4),Co!=64&&(Sr(Ro<<4&240|Co>>2),Ko!=64&&Sr(Co<<6&192|Ko))}}(sn,function(kr){Kn[mr++]=kr}),Kn.subarray(0,mr)}function Hn(){if(!Vn){Vn={};for(var sn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),vn=["+/=","+/","-_=","-_.","-_"],In=0;5>In;In++){var Kn=sn.concat(vn[In].split(""));bn[In]=Kn;for(var mr=0;mr(Ar=mr.indexOf("#"))&&(Ar=mr.length),0>(Sr=mr.indexOf("?"))||Sr>Ar?(Sr=Ar,Zr=""):Zr=mr.substring(Sr+1,Ar),Ar=(mr=[mr.substr(0,Sr),Zr,mr.substr(Ar)])[1],mr[1]=Ro?Ar?Ar+"&"+Ro:Ro:Ar,mr=mr[0]+(mr[1]?"?"+mr[1]:"")+mr[2])):mr.a("$httpHeaders",Ar))}for(Kn=(vn=(0,Kn.a)(vn.getRequestMessage())).length,Ro=[0,0,0,0],Ar=new Uint8Array(5+Kn),Sr=3;0<=Sr;Sr--)Ro[Sr]=Kn%256,Kn>>>=8;if(Ar.set(new Uint8Array(Ro),1),Ar.set(vn,5),vn=Ar,sn.a=="text"){var Co;for(sn=vn,Co===void 0&&(Co=0),Hn(),Co=bn[Co],vn=Array(Math.floor(sn.length/3)),Kn=Co[64]||"",Ro=Ar=0;Ar>2],no=Co[(3&no)<<4|Ko>>4],Ko=Co[(15&Ko)<<2|Zr>>6],Zr=Co[63&Zr],vn[Ro++]=Sr+no+Ko+Zr}switch(Sr=0,Zr=Kn,sn.length-Ar){case 2:Zr=Co[(15&(Sr=sn[Ar+1]))<<2]||Kn;case 1:sn=sn[Ar],vn[Ro]=Co[sn>>2]+Co[(3&sn)<<4|Sr>>4]+Zr+Kn}vn=vn.join("")}else sn.a=="binary"&&(In.m="arraybuffer");return Hl(In,mr,vn),kr}function co(sn,vn,In){var Kn=!1,mr=null,kr=!1;sn.on("data",function(Sr){Kn=!0,mr=Sr}),sn.on("error",function(Sr){Sr.code==0||kr||(kr=!0,vn(Sr,null))}),sn.on("status",function(Sr){Sr.code==0||kr?In&&vn(null,null,Sr):(kr=!0,vn({code:Sr.code,message:Sr.details,metadata:Sr.metadata},null))}),In&&sn.on("metadata",function(Sr){vn(null,null,null,Sr)}),sn.on("end",function(){kr||(Kn?In?vn(null,mr,null,null,!0):vn(null,mr):vn({code:2,message:"Incomplete response"})),In&&vn(null,null)})}function _i(sn,vn){var In=sn;return vn.forEach(function(Kn){var mr=In;In=function(kr){return Kn.intercept(kr,mr)}}),In}Yn.prototype.on=function(sn,vn){return sn=="data"?this.b.push(vn):sn=="status"?this.h.push(vn):sn=="metadata"?this.g.push(vn):sn=="end"?this.c.push(vn):sn=="error"&&this.f.push(vn),this},Yn.prototype.removeListener=function(sn,vn){return sn=="data"?or(this.b,vn):sn=="status"?or(this.h,vn):sn=="metadata"?or(this.g,vn):sn=="end"?or(this.c,vn):sn=="error"&&or(this.f,vn),this},Yn.prototype.cancel=function(){this.l=!0,this.a.abort()},Yn.prototype.cancel=Yn.prototype.cancel,Yn.prototype.removeListener=Yn.prototype.removeListener,Yn.prototype.on=Yn.prototype.on,Jr.prototype.X=function(sn,vn,In,Kn,mr){var kr=this,Sr=sn.substr(0,sn.length-Kn.name.length);return co(sn=_i(function(Ar){return Hr(kr,Ar,Sr)},this.b).call(this,Wt(Kn,vn,In)),mr,!1),new Et(sn)},Jr.prototype.S=function(sn,vn,In,Kn){var mr=this,kr=sn.substr(0,sn.length-Kn.name.length);return _i(function(Sr){return new Promise(function(Ar,Zr){var no,Ro,Co;co(Hr(mr,Sr,kr),function(Ko,as,Po,xo,Bs){Ko?Zr(Ko):Bs?Co=as:Po?Ro=Po:xo?no=xo:(Ko=Sr.getMethodDescriptor(),Ar(new Nt(Co,Ko,as=(as=no)===void 0?{}:as,Ro===void 0?null:Ro)))},!0)})},this.h).call(this,Wt(Kn,vn,In)).then(function(Sr){return Sr.getResponseMessage()})},Jr.prototype.unaryCall=function(sn,vn,In,Kn){return this.S(sn,vn,In,Kn)},Jr.prototype.Y=function(sn,vn,In,Kn){var mr=this,kr=sn.substr(0,sn.length-Kn.name.length);return _i(function(Sr){return Hr(mr,Sr,kr)},this.b).call(this,Wt(Kn,vn,In))},Jr.prototype.serverStreaming=Jr.prototype.Y,Jr.prototype.unaryCall=Jr.prototype.unaryCall,Jr.prototype.thenableCall=Jr.prototype.S,Jr.prototype.rpcCall=Jr.prototype.X,s.exports.CallOptions=Ct,s.exports.MethodDescriptor=Ot,s.exports.GrpcWebClientBase=Jr,s.exports.RpcError=Dt,s.exports.StatusCode={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,UNAUTHENTICATED:16,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15},s.exports.MethodType={UNARY:"unary",SERVER_STREAMING:"server_streaming",BIDI_STREAMING:"bidi_streaming"},Kr=typeof globalThis<"u"&&globalThis||self}).call(this,et(6))},function(s,o,et){var tt=et(57),nt=et(60).warn;o.version=et(136).version,o.transports=et(137),o.config=et(49),o.addColors=tt.levels,o.format=tt.format,o.createLogger=et(87),o.ExceptionHandler=et(88),o.RejectionHandler=et(92),o.Container=et(215),o.Transport=et(14),o.loggers=new o.Container;var rt=o.createLogger();Object.keys(o.config.npm.levels).concat(["log","query","stream","add","remove","clear","profile","startTimer","handleExceptions","unhandleExceptions","handleRejections","unhandleRejections","configure","child"]).forEach(function(it){return o[it]=function(){return rt[it].apply(rt,arguments)}}),Object.defineProperty(o,"level",{get:function(){return rt.level},set:function(it){rt.level=it}}),Object.defineProperty(o,"exceptions",{get:function(){return rt.exceptions}}),["exitOnError"].forEach(function(it){Object.defineProperty(o,it,{get:function(){return rt[it]},set:function(ot){rt[it]=ot}})}),Object.defineProperty(o,"default",{get:function(){return{exceptionHandlers:rt.exceptionHandlers,rejectionHandlers:rt.rejectionHandlers,transports:rt.transports}}}),nt.deprecated(o,"setLevels"),nt.forFunctions(o,"useFormat",["cli"]),nt.forProperties(o,"useFormat",["padLevels","stripColors"]),nt.forFunctions(o,"deprecated",["addRewriter","addFilter","clone","extend"]),nt.forProperties(o,"deprecated",["emitErrs","levelLength"]),nt.moved(o,"createLogger","Logger")},function(s,o,et){(function(tt){var nt=tt!==void 0&&tt||typeof self<"u"&&self||window,rt=Function.prototype.apply;function it(ot,st){this._id=ot,this._clearFn=st}o.setTimeout=function(){return new it(rt.call(setTimeout,nt,arguments),clearTimeout)},o.setInterval=function(){return new it(rt.call(setInterval,nt,arguments),clearInterval)},o.clearTimeout=o.clearInterval=function(ot){ot&&ot.close()},it.prototype.unref=it.prototype.ref=function(){},it.prototype.close=function(){this._clearFn.call(nt,this._id)},o.enroll=function(ot,st){clearTimeout(ot._idleTimeoutId),ot._idleTimeout=st},o.unenroll=function(ot){clearTimeout(ot._idleTimeoutId),ot._idleTimeout=-1},o._unrefActive=o.active=function(ot){clearTimeout(ot._idleTimeoutId);var st=ot._idleTimeout;st>=0&&(ot._idleTimeoutId=setTimeout(function(){ot._onTimeout&&ot._onTimeout()},st))},et(139),o.setImmediate=typeof self<"u"&&self.setImmediate||tt!==void 0&&tt.setImmediate||this&&this.setImmediate,o.clearImmediate=typeof self<"u"&&self.clearImmediate||tt!==void 0&&tt.clearImmediate||this&&this.clearImmediate}).call(this,et(6))},function(s,o,et){var tt,nt=typeof Reflect=="object"?Reflect:null,rt=nt&&typeof nt.apply=="function"?nt.apply:function(yt,Ut,Ft){return Function.prototype.apply.call(yt,Ut,Ft)};tt=nt&&typeof nt.ownKeys=="function"?nt.ownKeys:Object.getOwnPropertySymbols?function(yt){return Object.getOwnPropertyNames(yt).concat(Object.getOwnPropertySymbols(yt))}:function(yt){return Object.getOwnPropertyNames(yt)};var it=Number.isNaN||function(yt){return yt!=yt};function ot(){ot.init.call(this)}s.exports=ot,s.exports.once=function(yt,Ut){return new Promise(function(Ft,mt){function vt(Lt){yt.removeListener(Ut,At),mt(Lt)}function At(){typeof yt.removeListener=="function"&&yt.removeListener("error",vt),Ft([].slice.call(arguments))}gt(yt,Ut,At,{once:!0}),Ut!=="error"&&function(Lt,Rt,St){typeof Lt.on=="function"&>(Lt,"error",Rt,St)}(yt,vt,{once:!0})})},ot.EventEmitter=ot,ot.prototype._events=void 0,ot.prototype._eventsCount=0,ot.prototype._maxListeners=void 0;var st=10;function at(yt){if(typeof yt!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof yt)}function lt(yt){return yt._maxListeners===void 0?ot.defaultMaxListeners:yt._maxListeners}function ut(yt,Ut,Ft,mt){var vt,At,Lt,Rt;if(at(Ft),(At=yt._events)===void 0?(At=yt._events=Object.create(null),yt._eventsCount=0):(At.newListener!==void 0&&(yt.emit("newListener",Ut,Ft.listener?Ft.listener:Ft),At=yt._events),Lt=At[Ut]),Lt===void 0)Lt=At[Ut]=Ft,++yt._eventsCount;else if(typeof Lt=="function"?Lt=At[Ut]=mt?[Ft,Lt]:[Lt,Ft]:mt?Lt.unshift(Ft):Lt.push(Ft),(vt=lt(yt))>0&&Lt.length>vt&&!Lt.warned){Lt.warned=!0;var St=new Error("Possible EventEmitter memory leak detected. "+Lt.length+" "+String(Ut)+" listeners added. Use emitter.setMaxListeners() to increase limit");St.name="MaxListenersExceededWarning",St.emitter=yt,St.type=Ut,St.count=Lt.length,Rt=St,console&&console.warn&&console.warn(Rt)}return yt}function dt(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function ht(yt,Ut,Ft){var mt={fired:!1,wrapFn:void 0,target:yt,type:Ut,listener:Ft},vt=dt.bind(mt);return vt.listener=Ft,mt.wrapFn=vt,vt}function ct(yt,Ut,Ft){var mt=yt._events;if(mt===void 0)return[];var vt=mt[Ut];return vt===void 0?[]:typeof vt=="function"?Ft?[vt.listener||vt]:[vt]:Ft?function(At){for(var Lt=new Array(At.length),Rt=0;Rt0&&(At=Ut[0]),At instanceof Error)throw At;var Lt=new Error("Unhandled error."+(At?" ("+At.message+")":""));throw Lt.context=At,Lt}var Rt=vt[yt];if(Rt===void 0)return!1;if(typeof Rt=="function")rt(Rt,this,Ut);else{var St=Rt.length,Tt=ft(Rt,St);for(Ft=0;Ft=0;At--)if(Ft[At]===Ut||Ft[At].listener===Ut){Lt=Ft[At].listener,vt=At;break}if(vt<0)return this;vt===0?Ft.shift():function(Rt,St){for(;St+1=0;mt--)this.removeListener(yt,Ut[mt]);return this},ot.prototype.listeners=function(yt){return ct(this,yt,!0)},ot.prototype.rawListeners=function(yt){return ct(this,yt,!1)},ot.listenerCount=function(yt,Ut){return typeof yt.listenerCount=="function"?yt.listenerCount(Ut):pt.call(yt,Ut)},ot.prototype.listenerCount=pt,ot.prototype.eventNames=function(){return this._eventsCount>0?tt(this._events):[]}},function(s,o,et){var tt=et(147).Buffer,nt=tt.isEncoding||function(ct){switch((ct=""+ct)&&ct.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function rt(ct){var pt;switch(this.encoding=function(ft){var gt=function(yt){if(!yt)return"utf8";for(var Ut;;)switch(yt){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return yt;default:if(Ut)return;yt=(""+yt).toLowerCase(),Ut=!0}}(ft);if(typeof gt!="string"&&(tt.isEncoding===nt||!nt(ft)))throw new Error("Unknown encoding: "+ft);return gt||ft}(ct),this.encoding){case"utf16le":this.text=st,this.end=at,pt=4;break;case"utf8":this.fillLast=ot,pt=4;break;case"base64":this.text=lt,this.end=ut,pt=3;break;default:return this.write=dt,void(this.end=ht)}this.lastNeed=0,this.lastTotal=0,this.lastChar=tt.allocUnsafe(pt)}function it(ct){return ct<=127?0:ct>>5==6?2:ct>>4==14?3:ct>>3==30?4:ct>>6==2?-1:-2}function ot(ct){var pt=this.lastTotal-this.lastNeed,ft=function(gt,yt,Ut){if((192&yt[0])!=128)return gt.lastNeed=0,"�";if(gt.lastNeed>1&&yt.length>1){if((192&yt[1])!=128)return gt.lastNeed=1,"�";if(gt.lastNeed>2&&yt.length>2&&(192&yt[2])!=128)return gt.lastNeed=2,"�"}}(this,ct);return ft!==void 0?ft:this.lastNeed<=ct.length?(ct.copy(this.lastChar,pt,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(ct.copy(this.lastChar,pt,0,ct.length),void(this.lastNeed-=ct.length))}function st(ct,pt){if((ct.length-pt)%2==0){var ft=ct.toString("utf16le",pt);if(ft){var gt=ft.charCodeAt(ft.length-1);if(gt>=55296&><=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1],ft.slice(0,-1)}return ft}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=ct[ct.length-1],ct.toString("utf16le",pt,ct.length-1)}function at(ct){var pt=ct&&ct.length?this.write(ct):"";if(this.lastNeed){var ft=this.lastTotal-this.lastNeed;return pt+this.lastChar.toString("utf16le",0,ft)}return pt}function lt(ct,pt){var ft=(ct.length-pt)%3;return ft===0?ct.toString("base64",pt):(this.lastNeed=3-ft,this.lastTotal=3,ft===1?this.lastChar[0]=ct[ct.length-1]:(this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1]),ct.toString("base64",pt,ct.length-ft))}function ut(ct){var pt=ct&&ct.length?this.write(ct):"";return this.lastNeed?pt+this.lastChar.toString("base64",0,3-this.lastNeed):pt}function dt(ct){return ct.toString(this.encoding)}function ht(ct){return ct&&ct.length?this.write(ct):""}o.StringDecoder=rt,rt.prototype.write=function(ct){if(ct.length===0)return"";var pt,ft;if(this.lastNeed){if((pt=this.fillLast(ct))===void 0)return"";ft=this.lastNeed,this.lastNeed=0}else ft=0;return ft=0?(vt>0&&(yt.lastNeed=vt-1),vt):--mt=0?(vt>0&&(yt.lastNeed=vt-2),vt):--mt=0?(vt>0&&(vt===2?vt=0:yt.lastNeed=vt-3),vt):0}(this,ct,pt);if(!this.lastNeed)return ct.toString("utf8",pt);this.lastTotal=ft;var gt=ct.length-(ft-this.lastNeed);return ct.copy(this.lastChar,0,gt),ct.toString("utf8",pt,gt)},rt.prototype.fillLast=function(ct){if(this.lastNeed<=ct.length)return ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,ct.length),this.lastNeed-=ct.length}},function(s,o,et){var tt=et(37),nt=Object.keys||function(ct){var pt=[];for(var ft in ct)pt.push(ft);return pt};s.exports=ut;var rt=Object.create(et(32));rt.inherits=et(7);var it=et(69),ot=et(47);rt.inherits(ut,it);for(var st=nt(ot.prototype),at=0;at2?"one of ".concat(ot," ").concat(it.slice(0,st-1).join(", "),", or ")+it[st-1]:st===2?"one of ".concat(ot," ").concat(it[0]," or ").concat(it[1]):"of ".concat(ot," ").concat(it[0])}return"of ".concat(ot," ").concat(String(it))}nt("ERR_INVALID_OPT_VALUE",function(it,ot){return'The value "'+ot+'" is invalid for option "'+it+'"'},TypeError),nt("ERR_INVALID_ARG_TYPE",function(it,ot,st){var at,lt,ut;if(typeof ot=="string"&&(lt="not ",ot.substr(0,lt.length)===lt)?(at="must not be",ot=ot.replace(/^not /,"")):at="must be",function(ht,ct,pt){return(pt===void 0||pt>ht.length)&&(pt=ht.length),ht.substring(pt-ct.length,pt)===ct}(it," argument"))ut="The ".concat(it," ").concat(at," ").concat(rt(ot,"type"));else{var dt=function(ht,ct,pt){return typeof pt!="number"&&(pt=0),!(pt+ct.length>ht.length)&&ht.indexOf(ct,pt)!==-1}(it,".")?"property":"argument";ut='The "'.concat(it,'" ').concat(dt," ").concat(at," ").concat(rt(ot,"type"))}return ut+=". Received type ".concat(typeof st)},TypeError),nt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),nt("ERR_METHOD_NOT_IMPLEMENTED",function(it){return"The "+it+" method is not implemented"}),nt("ERR_STREAM_PREMATURE_CLOSE","Premature close"),nt("ERR_STREAM_DESTROYED",function(it){return"Cannot call "+it+" after a stream was destroyed"}),nt("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),nt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),nt("ERR_STREAM_WRITE_AFTER_END","write after end"),nt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),nt("ERR_UNKNOWN_ENCODING",function(it){return"Unknown encoding: "+it},TypeError),nt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),s.exports.codes=tt},function(s,o,et){(function(tt){var nt=Object.keys||function(ht){var ct=[];for(var pt in ht)ct.push(pt);return ct};s.exports=lt;var rt=et(76),it=et(80);et(7)(lt,rt);for(var ot=nt(it.prototype),st=0;st(""+lt.get("app-id")).startsWith("formant/")?{}:rt},at)),this.endpoint=st}getHeaders(){return Object.assign(Object.assign({},it.headers),{"App-ID":"formant/"+nt.a,"App-Version":nt.k})}}it.headers={}},function(s,o,et){et(232),s.exports={encode:tt=>new TextEncoder().encode(tt),decode:tt=>new TextDecoder().decode(tt)}},function(s,o,et){et.d(o,"a",function(){return st});const tt=["query"],nt=["expected one of:","maybe you meant:","in query:","while processing query","column"],rt=["password","secret","token","key","buffer","authorization"],it=new Set(["email","firstName","lastName","phoneNumber","phoneNumbers"]),ot=at=>rt.some(lt=>at.toLowerCase().includes(lt.toLowerCase()))||it.has(at);function st(at,lt=new WeakSet){return lt.has(at)?"[ RECURSIVE ]":Array.isArray(at)?(lt.add(at),at.map(dt=>st(dt,lt))):!(ut=at)||typeof ut!="object"&&typeof ut!="function"?typeof at=="string"&&!nt.some(dt=>at.toLowerCase().includes(dt))&&ot(at)?"[ REDACTED ]":at:(lt.add(at),Object.keys(at).reduce((dt,ht)=>tt.includes(ht.toLowerCase())?(dt[ht]=at[ht],dt):(dt[ht]=ot(ht)?"[ REDACTED ]":st(at[ht],lt),dt),{}));var ut}},function(s,o,et){const{hasOwnProperty:tt}=Object.prototype,nt=yt();nt.configure=yt,nt.stringify=nt,nt.default=nt,o.stringify=nt,o.configure=yt,s.exports=nt;const rt=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/,it=new RegExp(rt,"g"),ot=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000b","\\f","\\r","\\u000e","\\u000f","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001a","\\u001b","\\u001c","\\u001d","\\u001e","\\u001f","","",'\\"',"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\"];function st(Ut){if(Ut.length===2){const mt=Ut.charCodeAt(1);return`${Ut[0]}\\u${mt.toString(16)}`}const Ft=Ut.charCodeAt(0);return ot.length>Ft?ot[Ft]:"\\u"+Ft.toString(16)}function at(Ut){if(Ut.length<5e3&&!rt.test(Ut))return Ut;if(Ut.length>100)return Ut.replace(it,st);let Ft="",mt=0;for(let vt=0;vt=55296&&At<=57343){if(At<=56319&&vt+1=56320&&Lt<=57343){vt++;continue}}Ft+=`${Ut.slice(mt,vt)}\\u${At.toString(16)}`,mt=vt+1}}return Ft+=Ut.slice(mt),Ft}function lt(Ut){if(Ut.length>200)return Ut.sort();for(let Ft=1;Ftmt;)Ut[vt]=Ut[vt-1],vt--;Ut[vt]=mt}return Ut}const ut=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function dt(Ut){return ut.call(Ut)!==void 0&&Ut.length!==0}function ht(Ut,Ft,mt){Ut.length= 1`)}return mt===void 0?1/0:mt}function ft(Ut){return Ut===1?"1 item":Ut+" items"}function gt(Ut){const Ft=new Set;for(const mt of Ut)typeof mt!="string"&&typeof mt!="number"||Ft.add(String(mt));return Ft}function yt(Ut){const Ft=function(Ct){if(tt.call(Ct,"strict")){const kt=Ct.strict;if(typeof kt!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(kt)return Nt=>{let Ot="Object can not safely be stringified. Received type "+typeof Nt;throw typeof Nt!="function"&&(Ot+=` (${Nt.toString()})`),new Error(Ot)}}}(Ut={...Ut});Ft&&(Ut.bigint===void 0&&(Ut.bigint=!1),"circularValue"in Ut||(Ut.circularValue=Error));const mt=function(Ct){if(tt.call(Ct,"circularValue")){const kt=Ct.circularValue;if(typeof kt=="string")return`"${kt}"`;if(kt==null)return kt;if(kt===Error||kt===TypeError)return{toString(){throw new TypeError("Converting circular structure to JSON")}};throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined')}return'"[Circular]"'}(Ut),vt=ct(Ut,"bigint"),At=ct(Ut,"deterministic"),Lt=pt(Ut,"maximumDepth"),Rt=pt(Ut,"maximumBreadth");function St(Ct,kt,Nt,Ot,Wt,Dt){let Et=kt[Ct];switch(typeof Et=="object"&&Et!==null&&typeof Et.toJSON=="function"&&(Et=Et.toJSON(Ct)),Et=Ot.call(kt,Ct,Et),typeof Et){case"string":return`"${at(Et)}"`;case"object":{if(Et===null)return"null";if(Nt.indexOf(Et)!==-1)return mt;let Pt="",zt=",";const en=Dt;if(Array.isArray(Et)){if(Et.length===0)return"[]";if(LtRt&&(Pt+=`${zt}"... ${ft(Et.length-Rt-1)} not stringified"`),Wt!==""&&(Pt+=` -`+en),Nt.pop(),`[${Pt}]`}let Kt=Object.keys(Et);const nn=Kt.length;if(nn===0)return"{}";if(LtRt&&(Pt+=`${jt}"...":${Zt}"${ft(nn-Rt)} not stringified"`,jt=zt),Wt!==""&&jt.length>1&&(Pt=` +`);for(var Ro=0;Ro(Ar=mr.indexOf("#"))&&(Ar=mr.length),0>(Sr=mr.indexOf("?"))||Sr>Ar?(Sr=Ar,Zr=""):Zr=mr.substring(Sr+1,Ar),Ar=(mr=[mr.substr(0,Sr),Zr,mr.substr(Ar)])[1],mr[1]=Ro?Ar?Ar+"&"+Ro:Ro:Ar,mr=mr[0]+(mr[1]?"?"+mr[1]:"")+mr[2])):mr.a("$httpHeaders",Ar))}for(Kn=(vn=(0,Kn.a)(vn.getRequestMessage())).length,Ro=[0,0,0,0],Ar=new Uint8Array(5+Kn),Sr=3;0<=Sr;Sr--)Ro[Sr]=Kn%256,Kn>>>=8;if(Ar.set(new Uint8Array(Ro),1),Ar.set(vn,5),vn=Ar,sn.a=="text"){var Co;for(sn=vn,Co===void 0&&(Co=0),Hn(),Co=bn[Co],vn=Array(Math.floor(sn.length/3)),Kn=Co[64]||"",Ro=Ar=0;Ar>2],no=Co[(3&no)<<4|Ko>>4],Ko=Co[(15&Ko)<<2|Zr>>6],Zr=Co[63&Zr],vn[Ro++]=Sr+no+Ko+Zr}switch(Sr=0,Zr=Kn,sn.length-Ar){case 2:Zr=Co[(15&(Sr=sn[Ar+1]))<<2]||Kn;case 1:sn=sn[Ar],vn[Ro]=Co[sn>>2]+Co[(3&sn)<<4|Sr>>4]+Zr+Kn}vn=vn.join("")}else sn.a=="binary"&&(In.m="arraybuffer");return Hl(In,mr,vn),kr}function co(sn,vn,In){var Kn=!1,mr=null,kr=!1;sn.on("data",function(Sr){Kn=!0,mr=Sr}),sn.on("error",function(Sr){Sr.code==0||kr||(kr=!0,vn(Sr,null))}),sn.on("status",function(Sr){Sr.code==0||kr?In&&vn(null,null,Sr):(kr=!0,vn({code:Sr.code,message:Sr.details,metadata:Sr.metadata},null))}),In&&sn.on("metadata",function(Sr){vn(null,null,null,Sr)}),sn.on("end",function(){kr||(Kn?In?vn(null,mr,null,null,!0):vn(null,mr):vn({code:2,message:"Incomplete response"})),In&&vn(null,null)})}function _i(sn,vn){var In=sn;return vn.forEach(function(Kn){var mr=In;In=function(kr){return Kn.intercept(kr,mr)}}),In}Yn.prototype.on=function(sn,vn){return sn=="data"?this.b.push(vn):sn=="status"?this.h.push(vn):sn=="metadata"?this.g.push(vn):sn=="end"?this.c.push(vn):sn=="error"&&this.f.push(vn),this},Yn.prototype.removeListener=function(sn,vn){return sn=="data"?or(this.b,vn):sn=="status"?or(this.h,vn):sn=="metadata"?or(this.g,vn):sn=="end"?or(this.c,vn):sn=="error"&&or(this.f,vn),this},Yn.prototype.cancel=function(){this.l=!0,this.a.abort()},Yn.prototype.cancel=Yn.prototype.cancel,Yn.prototype.removeListener=Yn.prototype.removeListener,Yn.prototype.on=Yn.prototype.on,Wr.prototype.X=function(sn,vn,In,Kn,mr){var kr=this,Sr=sn.substr(0,sn.length-Kn.name.length);return co(sn=_i(function(Ar){return Hr(kr,Ar,Sr)},this.b).call(this,Jt(Kn,vn,In)),mr,!1),new Et(sn)},Wr.prototype.S=function(sn,vn,In,Kn){var mr=this,kr=sn.substr(0,sn.length-Kn.name.length);return _i(function(Sr){return new Promise(function(Ar,Zr){var no,Ro,Co;co(Hr(mr,Sr,kr),function(Ko,as,Po,xo,Bs){Ko?Zr(Ko):Bs?Co=as:Po?Ro=Po:xo?no=xo:(Ko=Sr.getMethodDescriptor(),Ar(new Nt(Co,Ko,as=(as=no)===void 0?{}:as,Ro===void 0?null:Ro)))},!0)})},this.h).call(this,Jt(Kn,vn,In)).then(function(Sr){return Sr.getResponseMessage()})},Wr.prototype.unaryCall=function(sn,vn,In,Kn){return this.S(sn,vn,In,Kn)},Wr.prototype.Y=function(sn,vn,In,Kn){var mr=this,kr=sn.substr(0,sn.length-Kn.name.length);return _i(function(Sr){return Hr(mr,Sr,kr)},this.b).call(this,Jt(Kn,vn,In))},Wr.prototype.serverStreaming=Wr.prototype.Y,Wr.prototype.unaryCall=Wr.prototype.unaryCall,Wr.prototype.thenableCall=Wr.prototype.S,Wr.prototype.rpcCall=Wr.prototype.X,s.exports.CallOptions=Ct,s.exports.MethodDescriptor=Ot,s.exports.GrpcWebClientBase=Wr,s.exports.RpcError=Dt,s.exports.StatusCode={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,UNAUTHENTICATED:16,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15},s.exports.MethodType={UNARY:"unary",SERVER_STREAMING:"server_streaming",BIDI_STREAMING:"bidi_streaming"},Kr=typeof globalThis<"u"&&globalThis||self}).call(this,et(6))},function(s,o,et){var tt=et(57),nt=et(60).warn;o.version=et(136).version,o.transports=et(137),o.config=et(49),o.addColors=tt.levels,o.format=tt.format,o.createLogger=et(87),o.ExceptionHandler=et(88),o.RejectionHandler=et(92),o.Container=et(215),o.Transport=et(14),o.loggers=new o.Container;var rt=o.createLogger();Object.keys(o.config.npm.levels).concat(["log","query","stream","add","remove","clear","profile","startTimer","handleExceptions","unhandleExceptions","handleRejections","unhandleRejections","configure","child"]).forEach(function(it){return o[it]=function(){return rt[it].apply(rt,arguments)}}),Object.defineProperty(o,"level",{get:function(){return rt.level},set:function(it){rt.level=it}}),Object.defineProperty(o,"exceptions",{get:function(){return rt.exceptions}}),["exitOnError"].forEach(function(it){Object.defineProperty(o,it,{get:function(){return rt[it]},set:function(ot){rt[it]=ot}})}),Object.defineProperty(o,"default",{get:function(){return{exceptionHandlers:rt.exceptionHandlers,rejectionHandlers:rt.rejectionHandlers,transports:rt.transports}}}),nt.deprecated(o,"setLevels"),nt.forFunctions(o,"useFormat",["cli"]),nt.forProperties(o,"useFormat",["padLevels","stripColors"]),nt.forFunctions(o,"deprecated",["addRewriter","addFilter","clone","extend"]),nt.forProperties(o,"deprecated",["emitErrs","levelLength"]),nt.moved(o,"createLogger","Logger")},function(s,o,et){(function(tt){var nt=tt!==void 0&&tt||typeof self<"u"&&self||window,rt=Function.prototype.apply;function it(ot,st){this._id=ot,this._clearFn=st}o.setTimeout=function(){return new it(rt.call(setTimeout,nt,arguments),clearTimeout)},o.setInterval=function(){return new it(rt.call(setInterval,nt,arguments),clearInterval)},o.clearTimeout=o.clearInterval=function(ot){ot&&ot.close()},it.prototype.unref=it.prototype.ref=function(){},it.prototype.close=function(){this._clearFn.call(nt,this._id)},o.enroll=function(ot,st){clearTimeout(ot._idleTimeoutId),ot._idleTimeout=st},o.unenroll=function(ot){clearTimeout(ot._idleTimeoutId),ot._idleTimeout=-1},o._unrefActive=o.active=function(ot){clearTimeout(ot._idleTimeoutId);var st=ot._idleTimeout;st>=0&&(ot._idleTimeoutId=setTimeout(function(){ot._onTimeout&&ot._onTimeout()},st))},et(139),o.setImmediate=typeof self<"u"&&self.setImmediate||tt!==void 0&&tt.setImmediate||this&&this.setImmediate,o.clearImmediate=typeof self<"u"&&self.clearImmediate||tt!==void 0&&tt.clearImmediate||this&&this.clearImmediate}).call(this,et(6))},function(s,o,et){var tt,nt=typeof Reflect=="object"?Reflect:null,rt=nt&&typeof nt.apply=="function"?nt.apply:function(yt,Ut,Ft){return Function.prototype.apply.call(yt,Ut,Ft)};tt=nt&&typeof nt.ownKeys=="function"?nt.ownKeys:Object.getOwnPropertySymbols?function(yt){return Object.getOwnPropertyNames(yt).concat(Object.getOwnPropertySymbols(yt))}:function(yt){return Object.getOwnPropertyNames(yt)};var it=Number.isNaN||function(yt){return yt!=yt};function ot(){ot.init.call(this)}s.exports=ot,s.exports.once=function(yt,Ut){return new Promise(function(Ft,mt){function vt(Lt){yt.removeListener(Ut,At),mt(Lt)}function At(){typeof yt.removeListener=="function"&&yt.removeListener("error",vt),Ft([].slice.call(arguments))}gt(yt,Ut,At,{once:!0}),Ut!=="error"&&function(Lt,Rt,St){typeof Lt.on=="function"&>(Lt,"error",Rt,St)}(yt,vt,{once:!0})})},ot.EventEmitter=ot,ot.prototype._events=void 0,ot.prototype._eventsCount=0,ot.prototype._maxListeners=void 0;var st=10;function at(yt){if(typeof yt!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof yt)}function lt(yt){return yt._maxListeners===void 0?ot.defaultMaxListeners:yt._maxListeners}function ut(yt,Ut,Ft,mt){var vt,At,Lt,Rt;if(at(Ft),(At=yt._events)===void 0?(At=yt._events=Object.create(null),yt._eventsCount=0):(At.newListener!==void 0&&(yt.emit("newListener",Ut,Ft.listener?Ft.listener:Ft),At=yt._events),Lt=At[Ut]),Lt===void 0)Lt=At[Ut]=Ft,++yt._eventsCount;else if(typeof Lt=="function"?Lt=At[Ut]=mt?[Ft,Lt]:[Lt,Ft]:mt?Lt.unshift(Ft):Lt.push(Ft),(vt=lt(yt))>0&&Lt.length>vt&&!Lt.warned){Lt.warned=!0;var St=new Error("Possible EventEmitter memory leak detected. "+Lt.length+" "+String(Ut)+" listeners added. Use emitter.setMaxListeners() to increase limit");St.name="MaxListenersExceededWarning",St.emitter=yt,St.type=Ut,St.count=Lt.length,Rt=St,console&&console.warn&&console.warn(Rt)}return yt}function dt(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function ht(yt,Ut,Ft){var mt={fired:!1,wrapFn:void 0,target:yt,type:Ut,listener:Ft},vt=dt.bind(mt);return vt.listener=Ft,mt.wrapFn=vt,vt}function ct(yt,Ut,Ft){var mt=yt._events;if(mt===void 0)return[];var vt=mt[Ut];return vt===void 0?[]:typeof vt=="function"?Ft?[vt.listener||vt]:[vt]:Ft?function(At){for(var Lt=new Array(At.length),Rt=0;Rt0&&(At=Ut[0]),At instanceof Error)throw At;var Lt=new Error("Unhandled error."+(At?" ("+At.message+")":""));throw Lt.context=At,Lt}var Rt=vt[yt];if(Rt===void 0)return!1;if(typeof Rt=="function")rt(Rt,this,Ut);else{var St=Rt.length,Tt=ft(Rt,St);for(Ft=0;Ft=0;At--)if(Ft[At]===Ut||Ft[At].listener===Ut){Lt=Ft[At].listener,vt=At;break}if(vt<0)return this;vt===0?Ft.shift():function(Rt,St){for(;St+1=0;mt--)this.removeListener(yt,Ut[mt]);return this},ot.prototype.listeners=function(yt){return ct(this,yt,!0)},ot.prototype.rawListeners=function(yt){return ct(this,yt,!1)},ot.listenerCount=function(yt,Ut){return typeof yt.listenerCount=="function"?yt.listenerCount(Ut):pt.call(yt,Ut)},ot.prototype.listenerCount=pt,ot.prototype.eventNames=function(){return this._eventsCount>0?tt(this._events):[]}},function(s,o,et){var tt=et(147).Buffer,nt=tt.isEncoding||function(ct){switch((ct=""+ct)&&ct.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function rt(ct){var pt;switch(this.encoding=function(ft){var gt=function(yt){if(!yt)return"utf8";for(var Ut;;)switch(yt){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return yt;default:if(Ut)return;yt=(""+yt).toLowerCase(),Ut=!0}}(ft);if(typeof gt!="string"&&(tt.isEncoding===nt||!nt(ft)))throw new Error("Unknown encoding: "+ft);return gt||ft}(ct),this.encoding){case"utf16le":this.text=st,this.end=at,pt=4;break;case"utf8":this.fillLast=ot,pt=4;break;case"base64":this.text=lt,this.end=ut,pt=3;break;default:return this.write=dt,void(this.end=ht)}this.lastNeed=0,this.lastTotal=0,this.lastChar=tt.allocUnsafe(pt)}function it(ct){return ct<=127?0:ct>>5==6?2:ct>>4==14?3:ct>>3==30?4:ct>>6==2?-1:-2}function ot(ct){var pt=this.lastTotal-this.lastNeed,ft=function(gt,yt,Ut){if((192&yt[0])!=128)return gt.lastNeed=0,"�";if(gt.lastNeed>1&&yt.length>1){if((192&yt[1])!=128)return gt.lastNeed=1,"�";if(gt.lastNeed>2&&yt.length>2&&(192&yt[2])!=128)return gt.lastNeed=2,"�"}}(this,ct);return ft!==void 0?ft:this.lastNeed<=ct.length?(ct.copy(this.lastChar,pt,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(ct.copy(this.lastChar,pt,0,ct.length),void(this.lastNeed-=ct.length))}function st(ct,pt){if((ct.length-pt)%2==0){var ft=ct.toString("utf16le",pt);if(ft){var gt=ft.charCodeAt(ft.length-1);if(gt>=55296&><=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1],ft.slice(0,-1)}return ft}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=ct[ct.length-1],ct.toString("utf16le",pt,ct.length-1)}function at(ct){var pt=ct&&ct.length?this.write(ct):"";if(this.lastNeed){var ft=this.lastTotal-this.lastNeed;return pt+this.lastChar.toString("utf16le",0,ft)}return pt}function lt(ct,pt){var ft=(ct.length-pt)%3;return ft===0?ct.toString("base64",pt):(this.lastNeed=3-ft,this.lastTotal=3,ft===1?this.lastChar[0]=ct[ct.length-1]:(this.lastChar[0]=ct[ct.length-2],this.lastChar[1]=ct[ct.length-1]),ct.toString("base64",pt,ct.length-ft))}function ut(ct){var pt=ct&&ct.length?this.write(ct):"";return this.lastNeed?pt+this.lastChar.toString("base64",0,3-this.lastNeed):pt}function dt(ct){return ct.toString(this.encoding)}function ht(ct){return ct&&ct.length?this.write(ct):""}o.StringDecoder=rt,rt.prototype.write=function(ct){if(ct.length===0)return"";var pt,ft;if(this.lastNeed){if((pt=this.fillLast(ct))===void 0)return"";ft=this.lastNeed,this.lastNeed=0}else ft=0;return ft=0?(vt>0&&(yt.lastNeed=vt-1),vt):--mt=0?(vt>0&&(yt.lastNeed=vt-2),vt):--mt=0?(vt>0&&(vt===2?vt=0:yt.lastNeed=vt-3),vt):0}(this,ct,pt);if(!this.lastNeed)return ct.toString("utf8",pt);this.lastTotal=ft;var gt=ct.length-(ft-this.lastNeed);return ct.copy(this.lastChar,0,gt),ct.toString("utf8",pt,gt)},rt.prototype.fillLast=function(ct){if(this.lastNeed<=ct.length)return ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);ct.copy(this.lastChar,this.lastTotal-this.lastNeed,0,ct.length),this.lastNeed-=ct.length}},function(s,o,et){var tt=et(37),nt=Object.keys||function(ct){var pt=[];for(var ft in ct)pt.push(ft);return pt};s.exports=ut;var rt=Object.create(et(32));rt.inherits=et(7);var it=et(69),ot=et(47);rt.inherits(ut,it);for(var st=nt(ot.prototype),at=0;at2?"one of ".concat(ot," ").concat(it.slice(0,st-1).join(", "),", or ")+it[st-1]:st===2?"one of ".concat(ot," ").concat(it[0]," or ").concat(it[1]):"of ".concat(ot," ").concat(it[0])}return"of ".concat(ot," ").concat(String(it))}nt("ERR_INVALID_OPT_VALUE",function(it,ot){return'The value "'+ot+'" is invalid for option "'+it+'"'},TypeError),nt("ERR_INVALID_ARG_TYPE",function(it,ot,st){var at,lt,ut;if(typeof ot=="string"&&(lt="not ",ot.substr(0,lt.length)===lt)?(at="must not be",ot=ot.replace(/^not /,"")):at="must be",function(ht,ct,pt){return(pt===void 0||pt>ht.length)&&(pt=ht.length),ht.substring(pt-ct.length,pt)===ct}(it," argument"))ut="The ".concat(it," ").concat(at," ").concat(rt(ot,"type"));else{var dt=function(ht,ct,pt){return typeof pt!="number"&&(pt=0),!(pt+ct.length>ht.length)&&ht.indexOf(ct,pt)!==-1}(it,".")?"property":"argument";ut='The "'.concat(it,'" ').concat(dt," ").concat(at," ").concat(rt(ot,"type"))}return ut+=". Received type ".concat(typeof st)},TypeError),nt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),nt("ERR_METHOD_NOT_IMPLEMENTED",function(it){return"The "+it+" method is not implemented"}),nt("ERR_STREAM_PREMATURE_CLOSE","Premature close"),nt("ERR_STREAM_DESTROYED",function(it){return"Cannot call "+it+" after a stream was destroyed"}),nt("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),nt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),nt("ERR_STREAM_WRITE_AFTER_END","write after end"),nt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),nt("ERR_UNKNOWN_ENCODING",function(it){return"Unknown encoding: "+it},TypeError),nt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),s.exports.codes=tt},function(s,o,et){(function(tt){var nt=Object.keys||function(ht){var ct=[];for(var pt in ht)ct.push(pt);return ct};s.exports=lt;var rt=et(76),it=et(80);et(7)(lt,rt);for(var ot=nt(it.prototype),st=0;st(""+lt.get("app-id")).startsWith("formant/")?{}:rt},at)),this.endpoint=st}getHeaders(){return Object.assign(Object.assign({},it.headers),{"App-ID":"formant/"+nt.a,"App-Version":nt.k})}}it.headers={}},function(s,o,et){et(232),s.exports={encode:tt=>new TextEncoder().encode(tt),decode:tt=>new TextDecoder().decode(tt)}},function(s,o,et){et.d(o,"a",function(){return st});const tt=["query"],nt=["expected one of:","maybe you meant:","in query:","while processing query","column"],rt=["password","secret","token","key","buffer","authorization"],it=new Set(["email","firstName","lastName","phoneNumber","phoneNumbers"]),ot=at=>rt.some(lt=>at.toLowerCase().includes(lt.toLowerCase()))||it.has(at);function st(at,lt=new WeakSet){return lt.has(at)?"[ RECURSIVE ]":Array.isArray(at)?(lt.add(at),at.map(dt=>st(dt,lt))):!(ut=at)||typeof ut!="object"&&typeof ut!="function"?typeof at=="string"&&!nt.some(dt=>at.toLowerCase().includes(dt))&&ot(at)?"[ REDACTED ]":at:(lt.add(at),Object.keys(at).reduce((dt,ht)=>tt.includes(ht.toLowerCase())?(dt[ht]=at[ht],dt):(dt[ht]=ot(ht)?"[ REDACTED ]":st(at[ht],lt),dt),{}));var ut}},function(s,o,et){const{hasOwnProperty:tt}=Object.prototype,nt=yt();nt.configure=yt,nt.stringify=nt,nt.default=nt,o.stringify=nt,o.configure=yt,s.exports=nt;const rt=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/,it=new RegExp(rt,"g"),ot=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000b","\\f","\\r","\\u000e","\\u000f","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001a","\\u001b","\\u001c","\\u001d","\\u001e","\\u001f","","",'\\"',"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\"];function st(Ut){if(Ut.length===2){const mt=Ut.charCodeAt(1);return`${Ut[0]}\\u${mt.toString(16)}`}const Ft=Ut.charCodeAt(0);return ot.length>Ft?ot[Ft]:"\\u"+Ft.toString(16)}function at(Ut){if(Ut.length<5e3&&!rt.test(Ut))return Ut;if(Ut.length>100)return Ut.replace(it,st);let Ft="",mt=0;for(let vt=0;vt=55296&&At<=57343){if(At<=56319&&vt+1=56320&&Lt<=57343){vt++;continue}}Ft+=`${Ut.slice(mt,vt)}\\u${At.toString(16)}`,mt=vt+1}}return Ft+=Ut.slice(mt),Ft}function lt(Ut){if(Ut.length>200)return Ut.sort();for(let Ft=1;Ftmt;)Ut[vt]=Ut[vt-1],vt--;Ut[vt]=mt}return Ut}const ut=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function dt(Ut){return ut.call(Ut)!==void 0&&Ut.length!==0}function ht(Ut,Ft,mt){Ut.length= 1`)}return mt===void 0?1/0:mt}function ft(Ut){return Ut===1?"1 item":Ut+" items"}function gt(Ut){const Ft=new Set;for(const mt of Ut)typeof mt!="string"&&typeof mt!="number"||Ft.add(String(mt));return Ft}function yt(Ut){const Ft=function(Ct){if(tt.call(Ct,"strict")){const kt=Ct.strict;if(typeof kt!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(kt)return Nt=>{let Ot="Object can not safely be stringified. Received type "+typeof Nt;throw typeof Nt!="function"&&(Ot+=` (${Nt.toString()})`),new Error(Ot)}}}(Ut={...Ut});Ft&&(Ut.bigint===void 0&&(Ut.bigint=!1),"circularValue"in Ut||(Ut.circularValue=Error));const mt=function(Ct){if(tt.call(Ct,"circularValue")){const kt=Ct.circularValue;if(typeof kt=="string")return`"${kt}"`;if(kt==null)return kt;if(kt===Error||kt===TypeError)return{toString(){throw new TypeError("Converting circular structure to JSON")}};throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined')}return'"[Circular]"'}(Ut),vt=ct(Ut,"bigint"),At=ct(Ut,"deterministic"),Lt=pt(Ut,"maximumDepth"),Rt=pt(Ut,"maximumBreadth");function St(Ct,kt,Nt,Ot,Jt,Dt){let Et=kt[Ct];switch(typeof Et=="object"&&Et!==null&&typeof Et.toJSON=="function"&&(Et=Et.toJSON(Ct)),Et=Ot.call(kt,Ct,Et),typeof Et){case"string":return`"${at(Et)}"`;case"object":{if(Et===null)return"null";if(Nt.indexOf(Et)!==-1)return mt;let Pt="",zt=",";const en=Dt;if(Array.isArray(Et)){if(Et.length===0)return"[]";if(LtRt&&(Pt+=`${zt}"... ${ft(Et.length-Rt-1)} not stringified"`),Jt!==""&&(Pt+=` +`+en),Nt.pop(),`[${Pt}]`}let Kt=Object.keys(Et);const nn=Kt.length;if(nn===0)return"{}";if(LtRt&&(Pt+=`${jt}"...":${Zt}"${ft(nn-Rt)} not stringified"`,jt=zt),Jt!==""&&jt.length>1&&(Pt=` ${Dt}${Pt} -${en}`),Nt.pop(),`{${Pt}}`}case"number":return isFinite(Et)?String(Et):Ft?Ft(Et):"null";case"boolean":return Et===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(Et);default:return Ft?Ft(Et):void 0}}function Tt(Ct,kt,Nt,Ot,Wt,Dt){switch(typeof kt=="object"&&kt!==null&&typeof kt.toJSON=="function"&&(kt=kt.toJSON(Ct)),typeof kt){case"string":return`"${at(kt)}"`;case"object":{if(kt===null)return"null";if(Nt.indexOf(kt)!==-1)return mt;const Et=Dt;let Pt="",zt=",";if(Array.isArray(kt)){if(kt.length===0)return"[]";if(LtRt&&(Pt+=`${zt}"... ${ft(kt.length-Rt-1)} not stringified"`),Wt!==""&&(Pt+=` -`+Et),Nt.pop(),`[${Pt}]`}Nt.push(kt);let en="";Wt!==""&&(zt=`, -`+(Dt+=Wt),en=" ");let Kt="";for(const nn of Ot){const Zt=Tt(nn,kt[nn],Nt,Ot,Wt,Dt);Zt!==void 0&&(Pt+=`${Kt}"${at(nn)}":${en}${Zt}`,Kt=zt)}return Wt!==""&&Kt.length>1&&(Pt=` +${en}`),Nt.pop(),`{${Pt}}`}case"number":return isFinite(Et)?String(Et):Ft?Ft(Et):"null";case"boolean":return Et===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(Et);default:return Ft?Ft(Et):void 0}}function Tt(Ct,kt,Nt,Ot,Jt,Dt){switch(typeof kt=="object"&&kt!==null&&typeof kt.toJSON=="function"&&(kt=kt.toJSON(Ct)),typeof kt){case"string":return`"${at(kt)}"`;case"object":{if(kt===null)return"null";if(Nt.indexOf(kt)!==-1)return mt;const Et=Dt;let Pt="",zt=",";if(Array.isArray(kt)){if(kt.length===0)return"[]";if(LtRt&&(Pt+=`${zt}"... ${ft(kt.length-Rt-1)} not stringified"`),Jt!==""&&(Pt+=` +`+Et),Nt.pop(),`[${Pt}]`}Nt.push(kt);let en="";Jt!==""&&(zt=`, +`+(Dt+=Jt),en=" ");let Kt="";for(const nn of Ot){const Zt=Tt(nn,kt[nn],Nt,Ot,Jt,Dt);Zt!==void 0&&(Pt+=`${Kt}"${at(nn)}":${en}${Zt}`,Kt=zt)}return Jt!==""&&Kt.length>1&&(Pt=` ${Dt}${Pt} -${Et}`),Nt.pop(),`{${Pt}}`}case"number":return isFinite(kt)?String(kt):Ft?Ft(kt):"null";case"boolean":return kt===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(kt);default:return Ft?Ft(kt):void 0}}function Bt(Ct,kt,Nt,Ot,Wt){switch(typeof kt){case"string":return`"${at(kt)}"`;case"object":{if(kt===null)return"null";if(typeof kt.toJSON=="function"){if(typeof(kt=kt.toJSON(Ct))!="object")return Bt(Ct,kt,Nt,Ot,Wt);if(kt===null)return"null"}if(Nt.indexOf(kt)!==-1)return mt;const Dt=Wt;if(Array.isArray(kt)){if(kt.length===0)return"[]";if(LtRt&&(Zt+=`${jt}"... ${ft(kt.length-Rt-1)} not stringified"`),Zt+=` +${Et}`),Nt.pop(),`{${Pt}}`}case"number":return isFinite(kt)?String(kt):Ft?Ft(kt):"null";case"boolean":return kt===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(kt);default:return Ft?Ft(kt):void 0}}function Bt(Ct,kt,Nt,Ot,Jt){switch(typeof kt){case"string":return`"${at(kt)}"`;case"object":{if(kt===null)return"null";if(typeof kt.toJSON=="function"){if(typeof(kt=kt.toJSON(Ct))!="object")return Bt(Ct,kt,Nt,Ot,Jt);if(kt===null)return"null"}if(Nt.indexOf(kt)!==-1)return mt;const Dt=Jt;if(Array.isArray(kt)){if(kt.length===0)return"[]";if(LtRt&&(Zt+=`${jt}"... ${ft(kt.length-Rt-1)} not stringified"`),Zt+=` `+Dt,Nt.pop(),`[${Zt}]`}let Et=Object.keys(kt);const Pt=Et.length;if(Pt===0)return"{}";if(LtRt&&(en+=`${Kt}"...": "${ft(Pt-Rt)} not stringified"`,Kt=zt),Kt!==""&&(en=` -${Wt}${en} -${Dt}`),Nt.pop(),`{${en}}`}case"number":return isFinite(kt)?String(kt):Ft?Ft(kt):"null";case"boolean":return kt===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(kt);default:return Ft?Ft(kt):void 0}}function xt(Ct,kt,Nt){switch(typeof kt){case"string":return`"${at(kt)}"`;case"object":{if(kt===null)return"null";if(typeof kt.toJSON=="function"){if(typeof(kt=kt.toJSON(Ct))!="object")return xt(Ct,kt,Nt);if(kt===null)return"null"}if(Nt.indexOf(kt)!==-1)return mt;let Ot="";if(Array.isArray(kt)){if(kt.length===0)return"[]";if(LtRt&&(Ot+=`,"... ${ft(kt.length-Rt-1)} not stringified"`),Nt.pop(),`[${Ot}]`}let Wt=Object.keys(kt);const Dt=Wt.length;if(Dt===0)return"{}";if(LtRt&&(Ot+=`${Et}"...":"${ft(Dt-Rt)} not stringified"`),Nt.pop(),`{${Ot}}`}case"number":return isFinite(kt)?String(kt):Ft?Ft(kt):"null";case"boolean":return kt===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(kt);default:return Ft?Ft(kt):void 0}}return function(Ct,kt,Nt){if(arguments.length>1){let Ot="";if(typeof Nt=="number"?Ot=" ".repeat(Math.min(Nt,10)):typeof Nt=="string"&&(Ot=Nt.slice(0,10)),kt!=null){if(typeof kt=="function")return St("",{"":Ct},[],kt,Ot,"");if(Array.isArray(kt))return Tt("",Ct,[],gt(kt),Ot,"")}if(Ot.length!==0)return Bt("",Ct,[],Ot,"")}return xt("",Ct,[])}}},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt,nt=tt.length){if(!nt)throw new Error("arity is undefined");return function(...rt){return typeof rt[nt-1]=="function"?tt.apply(this,rt):new Promise((it,ot)=>{rt[nt-1]=(st,...at)=>{if(st)return ot(st);it(at.length>1?at:at[0])},tt.apply(this,rt)})}},s.exports=o.default},function(s,o,et){(o=s.exports=et(69)).Stream=o,o.Readable=o,o.Writable=et(47),o.Duplex=et(22),o.Transform=et(72),o.PassThrough=et(169)},function(s,o,et){(function(tt){function nt(rt){return Object.prototype.toString.call(rt)}o.isArray=function(rt){return Array.isArray?Array.isArray(rt):nt(rt)==="[object Array]"},o.isBoolean=function(rt){return typeof rt=="boolean"},o.isNull=function(rt){return rt===null},o.isNullOrUndefined=function(rt){return rt==null},o.isNumber=function(rt){return typeof rt=="number"},o.isString=function(rt){return typeof rt=="string"},o.isSymbol=function(rt){return typeof rt=="symbol"},o.isUndefined=function(rt){return rt===void 0},o.isRegExp=function(rt){return nt(rt)==="[object RegExp]"},o.isObject=function(rt){return typeof rt=="object"&&rt!==null},o.isDate=function(rt){return nt(rt)==="[object Date]"},o.isError=function(rt){return nt(rt)==="[object Error]"||rt instanceof Error},o.isFunction=function(rt){return typeof rt=="function"},o.isPrimitive=function(rt){return rt===null||typeof rt=="boolean"||typeof rt=="number"||typeof rt=="string"||typeof rt=="symbol"||rt===void 0},o.isBuffer=tt.isBuffer}).call(this,et(5).Buffer)},function(s,o,et){(o=s.exports=et(76)).Stream=o,o.Readable=o,o.Writable=et(80),o.Duplex=et(25),o.Transform=et(81),o.PassThrough=et(189),o.finished=et(48),o.pipeline=et(190)},function(s,o,et){s.exports=function(tt){return tt}},function(s,o,et){var tt={};function nt(it,ot,st){st||(st=Error);var at=function(lt){var ut,dt;function ht(ct,pt,ft){return lt.call(this,function(gt,yt,Ut){return typeof ot=="string"?ot:ot(gt,yt,Ut)}(ct,pt,ft))||this}return dt=lt,(ut=ht).prototype=Object.create(dt.prototype),ut.prototype.constructor=ut,ut.__proto__=dt,ht}(st);at.prototype.name=st.name,at.prototype.code=it,tt[it]=at}function rt(it,ot){if(Array.isArray(it)){var st=it.length;return it=it.map(function(at){return String(at)}),st>2?"one of ".concat(ot," ").concat(it.slice(0,st-1).join(", "),", or ")+it[st-1]:st===2?"one of ".concat(ot," ").concat(it[0]," or ").concat(it[1]):"of ".concat(ot," ").concat(it[0])}return"of ".concat(ot," ").concat(String(it))}nt("ERR_INVALID_OPT_VALUE",function(it,ot){return'The value "'+ot+'" is invalid for option "'+it+'"'},TypeError),nt("ERR_INVALID_ARG_TYPE",function(it,ot,st){var at,lt,ut;if(typeof ot=="string"&&(lt="not ",ot.substr(0,lt.length)===lt)?(at="must not be",ot=ot.replace(/^not /,"")):at="must be",function(ht,ct,pt){return(pt===void 0||pt>ht.length)&&(pt=ht.length),ht.substring(pt-ct.length,pt)===ct}(it," argument"))ut="The ".concat(it," ").concat(at," ").concat(rt(ot,"type"));else{var dt=function(ht,ct,pt){return typeof pt!="number"&&(pt=0),!(pt+ct.length>ht.length)&&ht.indexOf(ct,pt)!==-1}(it,".")?"property":"argument";ut='The "'.concat(it,'" ').concat(dt," ").concat(at," ").concat(rt(ot,"type"))}return ut+=". Received type ".concat(typeof st)},TypeError),nt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),nt("ERR_METHOD_NOT_IMPLEMENTED",function(it){return"The "+it+" method is not implemented"}),nt("ERR_STREAM_PREMATURE_CLOSE","Premature close"),nt("ERR_STREAM_DESTROYED",function(it){return"Cannot call "+it+" after a stream was destroyed"}),nt("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),nt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),nt("ERR_STREAM_WRITE_AFTER_END","write after end"),nt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),nt("ERR_UNKNOWN_ENCODING",function(it){return"Unknown encoding: "+it},TypeError),nt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),s.exports.codes=tt},function(s,o,et){(function(tt){var nt=Object.keys||function(ht){var ct=[];for(var pt in ht)ct.push(pt);return ct};s.exports=lt;var rt=et(143),it=et(61);et(7)(lt,rt);for(var ot=nt(it.prototype),st=0;styt.validateHeaders?yt.validateHeaders(Ut):{},this.verbose=yt.verbose!==!1,yt.retries!==void 0&&!(yt.retries>=0))throw new Error("retries must be positive or zero");if(this.configuredRetries=yt.retries,yt.timeoutMs!==void 0&&!(yt.timeoutMs>0))throw new Error("timeoutMs must be positive");if(this.timeoutMs=yt.timeoutMs,yt.maxBackoffDelayMs!==void 0&&!(yt.maxBackoffDelayMs>0))throw new Error("maxBackoffDelayMs must be positive");this.maxBackoffDelayMs=yt.maxBackoffDelayMs||30*rt.a.second,this.json=yt.json!==!1}getRetries(){return this.configuredRetries!==void 0?this.configuredRetries:this.getConstructor().retries}getHeaders(){return{}}fetch(gt,yt={}){return dt(this,void 0,void 0,function*(){return(yield this.fetchVerbose(gt,yt)).body})}fetchVerbose(gt,yt={}){return dt(this,void 0,void 0,function*(){let Ut=100*rt.a.millisecond,Ft=0;const mt=this.timeoutMs!==void 0?new Date().getTime()+this.timeoutMs:void 0,vt=mt?()=>Math.max(mt-new Date().getTime(),0):void 0;for(;;)try{return yield this.doFetch(gt,yt,vt)}catch(At){const Lt=At,Rt=Object(at.a)(Lt,it);if(vt?.()===0||Ft===this.getRetries()||!Rt.retryable)throw Rt;Ft++,Ut=Math.min(...vt?[vt()]:[],Ut*(2+.1*(Math.random()-.5)),this.maxBackoffDelayMs),yield Object(ot.a)(Ut),this.verbose&&st.a.warn("Connection failure, retrying. Error: "+Lt.cause.message,{url:Lt.url,error:Lt.cause,attempt:Ft})}})}doFetch(gt,yt,Ut){return dt(this,void 0,void 0,function*(){const{token:Ft,json:mt=this.json,allowUnsafeRetries:vt}=yt,At=ht(yt,["token","json","allowUnsafeRetries"]),Lt=(At.method||"GET").toUpperCase(),Rt=this.endpoint!==void 0?`${this.endpoint}${gt?"/"+gt:""}`:gt,St=new AbortController;let Tt;if(Ut){const Bt=Ut();Bt>0?Tt=setTimeout(()=>{St.abort()},Bt):St.abort()}try{let Bt;yield Promise.race([this.getConstructor().waitForConnectivity(),new Promise(Dt=>{Bt=setTimeout(Dt,Ut?Math.min(rt.a.minute,Ut()):rt.a.minute)})]),Bt&&clearTimeout(Bt);const xt=yield nt()(Rt,Object.assign(Object.assign(Object.assign({},At),At.body!==void 0?{body:mt!==!1?JSON.stringify(At.body):At.body}:{}),{headers:Object.assign(Object.assign(Object.assign(Object.assign({},mt!==!1?{"Content-Type":"application/json"}:{}),this.getHeaders()),At.headers||{}),Ft!==void 0?{Authorization:"Bearer "+Ft}:{}),signal:St.signal})),Ct=xt.headers.get("content-type")||"",kt=Ct&&Ct.startsWith("application/json"),Nt=kt?yield xt.json():yield xt.text(),Ot=()=>new lt.a(Lt,Rt,At.body,xt.status,xt.headers,Nt,Nt&&Nt.validationErrors||{});if(!xt.ok)throw this.verbose&&st.a[xt.status>=500?"warn":"info"]("Response error",{method:Lt,url:Rt,statusCode:xt.status}),Ot();const Wt=this.validateHeaders(xt.headers);if(Object.keys(Wt).length!==0)throw new ut(Wt,Ot());if(xt.status===204)return{body:void 0,headers:xt.headers};if(mt&&!kt)throw new Error("Response is not JSON: "+JSON.stringify(Nt));return{body:Nt,headers:xt.headers}}catch(Bt){const xt=Bt,Ct=vt||ct.has(Lt);if(xt.message==="Network request failed")throw new it(xt,Rt,Ct);if(xt.type==="system"&&["EAI_AGAIN","ECONNREFUSED","EHOSTUNREACH","ENOTFOUND"].find(Wt=>Wt===xt.code))throw new it(xt,Rt,!0);if(xt.type==="system"&&["ETIMEDOUT","ECONNRESET","ESOCKETTIMEDOUT","EPIPE"].find(Wt=>Wt===xt.code))throw new it(xt,Rt,Ct);if(xt.name==="AbortError")throw new it(xt,Rt,Ct);const kt=Object(at.a)(xt,lt.a),{statusCode:Nt}=kt;if(Nt===408||Nt===429||Nt===502||Nt===503||Nt===504)throw this.verbose&&!Ct&&st.a.warn("Potentially unsafe retry"),new it(xt,Rt,!0);if(Nt===500&&["/online-devices","/stream-current-value","/events/counts","/queries/queries"].some(Wt=>Rt.includes(Wt)))throw new it(xt,Rt,Ct);const Ot=this.validateHeaders(kt.headers);throw Object.keys(Ot).length!==0?new ut(Ot,kt):(yield this.getConstructor().onResponseError(kt),xt)}finally{Tt&&clearTimeout(Tt)}})}getConstructor(){return Object.getPrototypeOf(this).constructor}}pt.retries=8,pt.waitForConnectivity=()=>dt(void 0,void 0,void 0,function*(){}),pt.onResponseError=()=>dt(void 0,void 0,void 0,function*(){})},function(s,o,et){function tt(ut,dt){if(!(ut instanceof dt))throw new TypeError("Cannot call a class as a function")}function nt(ut,dt){for(var ht=0;ht0&&arguments[0]!==void 0?arguments[0]:{};tt(this,ut),pt.colors&&this.addColors(pt.colors),this.options=pt}var dt,ht,ct;return dt=ut,ct=[{key:"addColors",value:function(pt){var ft=Object.keys(pt).reduce(function(gt,yt){return gt[yt]=at.test(pt[yt])?pt[yt].split(at):pt[yt],gt},{});return ut.allColors=Object.assign({},ut.allColors||{},ft),ut.allColors}}],(ht=[{key:"addColors",value:function(pt){return ut.addColors(pt)}},{key:"colorize",value:function(pt,ft,gt){if(gt===void 0&&(gt=ft),!Array.isArray(ut.allColors[pt]))return rt[ut.allColors[pt]](gt);for(var yt=0,Ut=ut.allColors[pt].length;yt=0&&tt.length%1==0},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default={},s.exports=o.default},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){(function(tt,nt,rt){var it=et(37);function ot(St){var Tt=this;this.next=null,this.entry=null,this.finish=function(){(function(Bt,xt,Ct){var kt=Bt.entry;for(Bt.entry=null;kt;){var Nt=kt.callback;xt.pendingcb--,Nt(Ct),kt=kt.next}xt.corkedRequestsFree?xt.corkedRequestsFree.next=Bt:xt.corkedRequestsFree=Bt})(Tt,St)}}s.exports=Ut;var st,at=!tt.browser&&["v0.10","v0.9."].indexOf(tt.version.slice(0,5))>-1?nt:it.nextTick;Ut.WritableState=yt;var lt=Object.create(et(32));lt.inherits=et(7);var ut={deprecate:et(43)},dt=et(70),ht=et(46).Buffer,ct=rt.Uint8Array||function(){},pt,ft=et(71);function gt(){}function yt(St,Tt){st=st||et(22),St=St||{};var Bt=Tt instanceof st;this.objectMode=!!St.objectMode,Bt&&(this.objectMode=this.objectMode||!!St.writableObjectMode);var xt=St.highWaterMark,Ct=St.writableHighWaterMark,kt=this.objectMode?16:16384;this.highWaterMark=xt||xt===0?xt:Bt&&(Ct||Ct===0)?Ct:kt,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Nt=St.decodeStrings===!1;this.decodeStrings=!Nt,this.defaultEncoding=St.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Ot){(function(Wt,Dt){var Et=Wt._writableState,Pt=Et.sync,zt=Et.writecb;if(function(Kt){Kt.writing=!1,Kt.writecb=null,Kt.length-=Kt.writelen,Kt.writelen=0}(Et),Dt)(function(Kt,nn,Zt,jt,Vt){--nn.pendingcb,Zt?(it.nextTick(Vt,jt),it.nextTick(Rt,Kt,nn),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt)):(Vt(jt),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt),Rt(Kt,nn))})(Wt,Et,Pt,Dt,zt);else{var en=At(Et);en||Et.corked||Et.bufferProcessing||!Et.bufferedRequest||vt(Wt,Et),Pt?at(mt,Wt,Et,en,zt):mt(Wt,Et,en,zt)}})(Tt,Ot)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new ot(this)}function Ut(St){if(st=st||et(22),!(pt.call(Ut,this)||this instanceof st))return new Ut(St);this._writableState=new yt(St,this),this.writable=!0,St&&(typeof St.write=="function"&&(this._write=St.write),typeof St.writev=="function"&&(this._writev=St.writev),typeof St.destroy=="function"&&(this._destroy=St.destroy),typeof St.final=="function"&&(this._final=St.final)),dt.call(this)}function Ft(St,Tt,Bt,xt,Ct,kt,Nt){Tt.writelen=xt,Tt.writecb=Nt,Tt.writing=!0,Tt.sync=!0,Bt?St._writev(Ct,Tt.onwrite):St._write(Ct,kt,Tt.onwrite),Tt.sync=!1}function mt(St,Tt,Bt,xt){Bt||function(Ct,kt){kt.length===0&&kt.needDrain&&(kt.needDrain=!1,Ct.emit("drain"))}(St,Tt),Tt.pendingcb--,xt(),Rt(St,Tt)}function vt(St,Tt){Tt.bufferProcessing=!0;var Bt=Tt.bufferedRequest;if(St._writev&&Bt&&Bt.next){var xt=Tt.bufferedRequestCount,Ct=new Array(xt),kt=Tt.corkedRequestsFree;kt.entry=Bt;for(var Nt=0,Ot=!0;Bt;)Ct[Nt]=Bt,Bt.isBuf||(Ot=!1),Bt=Bt.next,Nt+=1;Ct.allBuffers=Ot,Ft(St,Tt,!0,Tt.length,Ct,"",kt.finish),Tt.pendingcb++,Tt.lastBufferedRequest=null,kt.next?(Tt.corkedRequestsFree=kt.next,kt.next=null):Tt.corkedRequestsFree=new ot(Tt),Tt.bufferedRequestCount=0}else{for(;Bt;){var Wt=Bt.chunk,Dt=Bt.encoding,Et=Bt.callback;if(Ft(St,Tt,!1,Tt.objectMode?1:Wt.length,Wt,Dt,Et),Bt=Bt.next,Tt.bufferedRequestCount--,Tt.writing)break}Bt===null&&(Tt.lastBufferedRequest=null)}Tt.bufferedRequest=Bt,Tt.bufferProcessing=!1}function At(St){return St.ending&&St.length===0&&St.bufferedRequest===null&&!St.finished&&!St.writing}function Lt(St,Tt){St._final(function(Bt){Tt.pendingcb--,Bt&&St.emit("error",Bt),Tt.prefinished=!0,St.emit("prefinish"),Rt(St,Tt)})}function Rt(St,Tt){var Bt=At(Tt);return Bt&&(function(xt,Ct){Ct.prefinished||Ct.finalCalled||(typeof xt._final=="function"?(Ct.pendingcb++,Ct.finalCalled=!0,it.nextTick(Lt,xt,Ct)):(Ct.prefinished=!0,xt.emit("prefinish")))}(St,Tt),Tt.pendingcb===0&&(Tt.finished=!0,St.emit("finish"))),Bt}lt.inherits(Ut,dt),yt.prototype.getBuffer=function(){for(var St=this.bufferedRequest,Tt=[];St;)Tt.push(St),St=St.next;return Tt},function(){try{Object.defineProperty(yt.prototype,"buffer",{get:ut.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(pt=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ut,Symbol.hasInstance,{value:function(St){return!!pt.call(this,St)||this===Ut&&St&&St._writableState instanceof yt}})):pt=function(St){return St instanceof this},Ut.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Ut.prototype.write=function(St,Tt,Bt){var xt,Ct=this._writableState,kt=!1,Nt=!Ct.objectMode&&(xt=St,ht.isBuffer(xt)||xt instanceof ct);return Nt&&!ht.isBuffer(St)&&(St=function(Ot){return ht.from(Ot)}(St)),typeof Tt=="function"&&(Bt=Tt,Tt=null),Nt?Tt="buffer":Tt||(Tt=Ct.defaultEncoding),typeof Bt!="function"&&(Bt=gt),Ct.ended?function(Ot,Wt){var Dt=new Error("write after end");Ot.emit("error",Dt),it.nextTick(Wt,Dt)}(this,Bt):(Nt||function(Ot,Wt,Dt,Et){var Pt=!0,zt=!1;return Dt===null?zt=new TypeError("May not write null values to stream"):typeof Dt=="string"||Dt===void 0||Wt.objectMode||(zt=new TypeError("Invalid non-string/buffer chunk")),zt&&(Ot.emit("error",zt),it.nextTick(Et,zt),Pt=!1),Pt}(this,Ct,St,Bt))&&(Ct.pendingcb++,kt=function(Ot,Wt,Dt,Et,Pt,zt){if(!Dt){var en=function(jt,Vt,It){return jt.objectMode||jt.decodeStrings===!1||typeof Vt!="string"||(Vt=ht.from(Vt,It)),Vt}(Wt,Et,Pt);Et!==en&&(Dt=!0,Pt="buffer",Et=en)}var Kt=Wt.objectMode?1:Et.length;Wt.length+=Kt;var nn=Wt.length-1))throw new TypeError("Unknown encoding: "+St);return this._writableState.defaultEncoding=St,this},Object.defineProperty(Ut.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Ut.prototype._write=function(St,Tt,Bt){Bt(new Error("_write() is not implemented"))},Ut.prototype._writev=null,Ut.prototype.end=function(St,Tt,Bt){var xt=this._writableState;typeof St=="function"?(Bt=St,St=null,Tt=null):typeof Tt=="function"&&(Bt=Tt,Tt=null),St!=null&&this.write(St,Tt),xt.corked&&(xt.corked=1,this.uncork()),xt.ending||xt.finished||function(Ct,kt,Nt){kt.ending=!0,Rt(Ct,kt),Nt&&(kt.finished?it.nextTick(Nt):Ct.once("finish",Nt)),kt.ended=!0,Ct.writable=!1}(this,xt,Bt)},Object.defineProperty(Ut.prototype,"destroyed",{get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(St){this._writableState&&(this._writableState.destroyed=St)}}),Ut.prototype.destroy=ft.destroy,Ut.prototype._undestroy=ft.undestroy,Ut.prototype._destroy=function(St,Tt){this.end(),Tt(St)}}).call(this,et(2),et(19).setImmediate,et(6))},function(s,o,et){var tt=et(24).codes.ERR_STREAM_PREMATURE_CLOSE;function nt(){}s.exports=function rt(it,ot,st){if(typeof ot=="function")return rt(it,null,ot);ot||(ot={}),st=function(Ut){var Ft=!1;return function(){if(!Ft){Ft=!0;for(var mt=arguments.length,vt=new Array(mt),At=0;At=0;lt--){var ut=ot[lt];ut==="."?ot.splice(lt,1):ut===".."?(ot.splice(lt,1),at++):at&&(ot.splice(lt,1),at--)}if(st)for(;at--;at)ot.unshift("..");return ot}function rt(ot,st){if(ot.filter)return ot.filter(st);for(var at=[],lt=0;lt=-1&&!st;at--){var lt=at>=0?arguments[at]:tt.cwd();if(typeof lt!="string")throw new TypeError("Arguments to path.resolve must be strings");lt&&(ot=lt+"/"+ot,st=lt.charAt(0)==="/")}return(st?"/":"")+(ot=nt(rt(ot.split("/"),function(ut){return!!ut}),!st).join("/"))||"."},o.normalize=function(ot){var st=o.isAbsolute(ot),at=it(ot,-1)==="/";return(ot=nt(rt(ot.split("/"),function(lt){return!!lt}),!st).join("/"))||st||(ot="."),ot&&at&&(ot+="/"),(st?"/":"")+ot},o.isAbsolute=function(ot){return ot.charAt(0)==="/"},o.join=function(){var ot=Array.prototype.slice.call(arguments,0);return o.normalize(rt(ot,function(st,at){if(typeof st!="string")throw new TypeError("Arguments to path.join must be strings");return st}).join("/"))},o.relative=function(ot,st){function at(ft){for(var gt=0;gt=0&&ft[yt]==="";yt--);return gt>yt?[]:ft.slice(gt,yt-gt+1)}ot=o.resolve(ot).substr(1),st=o.resolve(st).substr(1);for(var lt=at(ot.split("/")),ut=at(st.split("/")),dt=Math.min(lt.length,ut.length),ht=dt,ct=0;ct=1;--dt)if((st=ot.charCodeAt(dt))===47){if(!ut){lt=dt;break}}else ut=!1;return lt===-1?at?"/":".":at&<===1?"/":ot.slice(0,lt)},o.basename=function(ot,st){var at=function(lt){typeof lt!="string"&&(lt+="");var ut,dt=0,ht=-1,ct=!0;for(ut=lt.length-1;ut>=0;--ut)if(lt.charCodeAt(ut)===47){if(!ct){dt=ut+1;break}}else ht===-1&&(ct=!1,ht=ut+1);return ht===-1?"":lt.slice(dt,ht)}(ot);return st&&at.substr(-1*st.length)===st&&(at=at.substr(0,at.length-st.length)),at},o.extname=function(ot){typeof ot!="string"&&(ot+="");for(var st=-1,at=0,lt=-1,ut=!0,dt=0,ht=ot.length-1;ht>=0;--ht){var ct=ot.charCodeAt(ht);if(ct!==47)lt===-1&&(ut=!1,lt=ht+1),ct===46?st===-1?st=ht:dt!==1&&(dt=1):st!==-1&&(dt=-1);else if(!ut){at=ht+1;break}}return st===-1||lt===-1||dt===0||dt===1&&st===lt-1&&st===at+1?"":ot.slice(st,lt)};var it="ab".substr(-1)==="b"?function(ot,st,at){return ot.substr(st,at)}:function(ot,st,at){return st<0&&(st=ot.length+st),ot.substr(st,at)}}).call(this,et(2))},,function(s,o,et){var tt=o.format=et(8);o.levels=et(102),Object.defineProperty(tt,"align",{value:et(119)}),Object.defineProperty(tt,"cli",{value:et(120)}),Object.defineProperty(tt,"colorize",{value:et(42)}),Object.defineProperty(tt,"combine",{value:et(121)}),Object.defineProperty(tt,"errors",{value:et(122)}),Object.defineProperty(tt,"json",{value:et(123)}),Object.defineProperty(tt,"label",{value:et(124)}),Object.defineProperty(tt,"logstash",{value:et(125)}),Object.defineProperty(tt,"metadata",{value:et(126)}),Object.defineProperty(tt,"ms",{value:et(127)}),Object.defineProperty(tt,"padLevels",{value:et(59)}),Object.defineProperty(tt,"prettyPrint",{value:et(129)}),Object.defineProperty(tt,"printf",{value:et(130)}),Object.defineProperty(tt,"simple",{value:et(131)}),Object.defineProperty(tt,"splat",{value:et(132)}),Object.defineProperty(tt,"timestamp",{value:et(133)}),Object.defineProperty(tt,"uncolorize",{value:et(135)})},function(s,o,et){var tt=et(103);s.exports=tt},function(s,o,et){function tt(dt){return function(ht){if(Array.isArray(ht))return nt(ht)}(dt)||function(ht){if(typeof Symbol<"u"&&ht[Symbol.iterator]!=null||ht["@@iterator"]!=null)return Array.from(ht)}(dt)||function(ht,ct){if(ht){if(typeof ht=="string")return nt(ht,ct);var pt=Object.prototype.toString.call(ht).slice(8,-1);if(pt==="Object"&&ht.constructor&&(pt=ht.constructor.name),pt==="Map"||pt==="Set")return Array.from(ht);if(pt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(pt))return nt(ht,ct)}}(dt)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +`+(Jt+=Ot);let en="",Kt="",nn=Math.min(Pt,Rt);dt(kt)&&(en+=ht(kt,zt,Rt),Et=Et.slice(kt.length),nn-=kt.length,Kt=zt),At&&(Et=lt(Et)),Nt.push(kt);for(let Zt=0;ZtRt&&(en+=`${Kt}"...": "${ft(Pt-Rt)} not stringified"`,Kt=zt),Kt!==""&&(en=` +${Jt}${en} +${Dt}`),Nt.pop(),`{${en}}`}case"number":return isFinite(kt)?String(kt):Ft?Ft(kt):"null";case"boolean":return kt===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(kt);default:return Ft?Ft(kt):void 0}}function xt(Ct,kt,Nt){switch(typeof kt){case"string":return`"${at(kt)}"`;case"object":{if(kt===null)return"null";if(typeof kt.toJSON=="function"){if(typeof(kt=kt.toJSON(Ct))!="object")return xt(Ct,kt,Nt);if(kt===null)return"null"}if(Nt.indexOf(kt)!==-1)return mt;let Ot="";if(Array.isArray(kt)){if(kt.length===0)return"[]";if(LtRt&&(Ot+=`,"... ${ft(kt.length-Rt-1)} not stringified"`),Nt.pop(),`[${Ot}]`}let Jt=Object.keys(kt);const Dt=Jt.length;if(Dt===0)return"{}";if(LtRt&&(Ot+=`${Et}"...":"${ft(Dt-Rt)} not stringified"`),Nt.pop(),`{${Ot}}`}case"number":return isFinite(kt)?String(kt):Ft?Ft(kt):"null";case"boolean":return kt===!0?"true":"false";case"undefined":return;case"bigint":if(vt)return String(kt);default:return Ft?Ft(kt):void 0}}return function(Ct,kt,Nt){if(arguments.length>1){let Ot="";if(typeof Nt=="number"?Ot=" ".repeat(Math.min(Nt,10)):typeof Nt=="string"&&(Ot=Nt.slice(0,10)),kt!=null){if(typeof kt=="function")return St("",{"":Ct},[],kt,Ot,"");if(Array.isArray(kt))return Tt("",Ct,[],gt(kt),Ot,"")}if(Ot.length!==0)return Bt("",Ct,[],Ot,"")}return xt("",Ct,[])}}},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt,nt=tt.length){if(!nt)throw new Error("arity is undefined");return function(...rt){return typeof rt[nt-1]=="function"?tt.apply(this,rt):new Promise((it,ot)=>{rt[nt-1]=(st,...at)=>{if(st)return ot(st);it(at.length>1?at:at[0])},tt.apply(this,rt)})}},s.exports=o.default},function(s,o,et){(o=s.exports=et(69)).Stream=o,o.Readable=o,o.Writable=et(47),o.Duplex=et(22),o.Transform=et(72),o.PassThrough=et(169)},function(s,o,et){(function(tt){function nt(rt){return Object.prototype.toString.call(rt)}o.isArray=function(rt){return Array.isArray?Array.isArray(rt):nt(rt)==="[object Array]"},o.isBoolean=function(rt){return typeof rt=="boolean"},o.isNull=function(rt){return rt===null},o.isNullOrUndefined=function(rt){return rt==null},o.isNumber=function(rt){return typeof rt=="number"},o.isString=function(rt){return typeof rt=="string"},o.isSymbol=function(rt){return typeof rt=="symbol"},o.isUndefined=function(rt){return rt===void 0},o.isRegExp=function(rt){return nt(rt)==="[object RegExp]"},o.isObject=function(rt){return typeof rt=="object"&&rt!==null},o.isDate=function(rt){return nt(rt)==="[object Date]"},o.isError=function(rt){return nt(rt)==="[object Error]"||rt instanceof Error},o.isFunction=function(rt){return typeof rt=="function"},o.isPrimitive=function(rt){return rt===null||typeof rt=="boolean"||typeof rt=="number"||typeof rt=="string"||typeof rt=="symbol"||rt===void 0},o.isBuffer=tt.isBuffer}).call(this,et(5).Buffer)},function(s,o,et){(o=s.exports=et(76)).Stream=o,o.Readable=o,o.Writable=et(80),o.Duplex=et(25),o.Transform=et(81),o.PassThrough=et(189),o.finished=et(48),o.pipeline=et(190)},function(s,o,et){s.exports=function(tt){return tt}},function(s,o,et){var tt={};function nt(it,ot,st){st||(st=Error);var at=function(lt){var ut,dt;function ht(ct,pt,ft){return lt.call(this,function(gt,yt,Ut){return typeof ot=="string"?ot:ot(gt,yt,Ut)}(ct,pt,ft))||this}return dt=lt,(ut=ht).prototype=Object.create(dt.prototype),ut.prototype.constructor=ut,ut.__proto__=dt,ht}(st);at.prototype.name=st.name,at.prototype.code=it,tt[it]=at}function rt(it,ot){if(Array.isArray(it)){var st=it.length;return it=it.map(function(at){return String(at)}),st>2?"one of ".concat(ot," ").concat(it.slice(0,st-1).join(", "),", or ")+it[st-1]:st===2?"one of ".concat(ot," ").concat(it[0]," or ").concat(it[1]):"of ".concat(ot," ").concat(it[0])}return"of ".concat(ot," ").concat(String(it))}nt("ERR_INVALID_OPT_VALUE",function(it,ot){return'The value "'+ot+'" is invalid for option "'+it+'"'},TypeError),nt("ERR_INVALID_ARG_TYPE",function(it,ot,st){var at,lt,ut;if(typeof ot=="string"&&(lt="not ",ot.substr(0,lt.length)===lt)?(at="must not be",ot=ot.replace(/^not /,"")):at="must be",function(ht,ct,pt){return(pt===void 0||pt>ht.length)&&(pt=ht.length),ht.substring(pt-ct.length,pt)===ct}(it," argument"))ut="The ".concat(it," ").concat(at," ").concat(rt(ot,"type"));else{var dt=function(ht,ct,pt){return typeof pt!="number"&&(pt=0),!(pt+ct.length>ht.length)&&ht.indexOf(ct,pt)!==-1}(it,".")?"property":"argument";ut='The "'.concat(it,'" ').concat(dt," ").concat(at," ").concat(rt(ot,"type"))}return ut+=". Received type ".concat(typeof st)},TypeError),nt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),nt("ERR_METHOD_NOT_IMPLEMENTED",function(it){return"The "+it+" method is not implemented"}),nt("ERR_STREAM_PREMATURE_CLOSE","Premature close"),nt("ERR_STREAM_DESTROYED",function(it){return"Cannot call "+it+" after a stream was destroyed"}),nt("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),nt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),nt("ERR_STREAM_WRITE_AFTER_END","write after end"),nt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),nt("ERR_UNKNOWN_ENCODING",function(it){return"Unknown encoding: "+it},TypeError),nt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),s.exports.codes=tt},function(s,o,et){(function(tt){var nt=Object.keys||function(ht){var ct=[];for(var pt in ht)ct.push(pt);return ct};s.exports=lt;var rt=et(143),it=et(61);et(7)(lt,rt);for(var ot=nt(it.prototype),st=0;styt.validateHeaders?yt.validateHeaders(Ut):{},this.verbose=yt.verbose!==!1,yt.retries!==void 0&&!(yt.retries>=0))throw new Error("retries must be positive or zero");if(this.configuredRetries=yt.retries,yt.timeoutMs!==void 0&&!(yt.timeoutMs>0))throw new Error("timeoutMs must be positive");if(this.timeoutMs=yt.timeoutMs,yt.maxBackoffDelayMs!==void 0&&!(yt.maxBackoffDelayMs>0))throw new Error("maxBackoffDelayMs must be positive");this.maxBackoffDelayMs=yt.maxBackoffDelayMs||30*rt.a.second,this.json=yt.json!==!1}getRetries(){return this.configuredRetries!==void 0?this.configuredRetries:this.getConstructor().retries}getHeaders(){return{}}fetch(gt,yt={}){return dt(this,void 0,void 0,function*(){return(yield this.fetchVerbose(gt,yt)).body})}fetchVerbose(gt,yt={}){return dt(this,void 0,void 0,function*(){let Ut=100*rt.a.millisecond,Ft=0;const mt=this.timeoutMs!==void 0?new Date().getTime()+this.timeoutMs:void 0,vt=mt?()=>Math.max(mt-new Date().getTime(),0):void 0;for(;;)try{return yield this.doFetch(gt,yt,vt)}catch(At){const Lt=At,Rt=Object(at.a)(Lt,it);if(vt?.()===0||Ft===this.getRetries()||!Rt.retryable)throw Rt;Ft++,Ut=Math.min(...vt?[vt()]:[],Ut*(2+.1*(Math.random()-.5)),this.maxBackoffDelayMs),yield Object(ot.a)(Ut),this.verbose&&st.a.warn("Connection failure, retrying. Error: "+Lt.cause.message,{url:Lt.url,error:Lt.cause,attempt:Ft})}})}doFetch(gt,yt,Ut){return dt(this,void 0,void 0,function*(){const{token:Ft,json:mt=this.json,allowUnsafeRetries:vt}=yt,At=ht(yt,["token","json","allowUnsafeRetries"]),Lt=(At.method||"GET").toUpperCase(),Rt=this.endpoint!==void 0?`${this.endpoint}${gt?"/"+gt:""}`:gt,St=new AbortController;let Tt;if(Ut){const Bt=Ut();Bt>0?Tt=setTimeout(()=>{St.abort()},Bt):St.abort()}try{let Bt;yield Promise.race([this.getConstructor().waitForConnectivity(),new Promise(Dt=>{Bt=setTimeout(Dt,Ut?Math.min(rt.a.minute,Ut()):rt.a.minute)})]),Bt&&clearTimeout(Bt);const xt=yield nt()(Rt,Object.assign(Object.assign(Object.assign({},At),At.body!==void 0?{body:mt!==!1?JSON.stringify(At.body):At.body}:{}),{headers:Object.assign(Object.assign(Object.assign(Object.assign({},mt!==!1?{"Content-Type":"application/json"}:{}),this.getHeaders()),At.headers||{}),Ft!==void 0?{Authorization:"Bearer "+Ft}:{}),signal:St.signal})),Ct=xt.headers.get("content-type")||"",kt=Ct&&Ct.startsWith("application/json"),Nt=kt?yield xt.json():yield xt.text(),Ot=()=>new lt.a(Lt,Rt,At.body,xt.status,xt.headers,Nt,Nt&&Nt.validationErrors||{});if(!xt.ok)throw this.verbose&&st.a[xt.status>=500?"warn":"info"]("Response error",{method:Lt,url:Rt,statusCode:xt.status}),Ot();const Jt=this.validateHeaders(xt.headers);if(Object.keys(Jt).length!==0)throw new ut(Jt,Ot());if(xt.status===204)return{body:void 0,headers:xt.headers};if(mt&&!kt)throw new Error("Response is not JSON: "+JSON.stringify(Nt));return{body:Nt,headers:xt.headers}}catch(Bt){const xt=Bt,Ct=vt||ct.has(Lt);if(xt.message==="Network request failed")throw new it(xt,Rt,Ct);if(xt.type==="system"&&["EAI_AGAIN","ECONNREFUSED","EHOSTUNREACH","ENOTFOUND"].find(Jt=>Jt===xt.code))throw new it(xt,Rt,!0);if(xt.type==="system"&&["ETIMEDOUT","ECONNRESET","ESOCKETTIMEDOUT","EPIPE"].find(Jt=>Jt===xt.code))throw new it(xt,Rt,Ct);if(xt.name==="AbortError")throw new it(xt,Rt,Ct);const kt=Object(at.a)(xt,lt.a),{statusCode:Nt}=kt;if(Nt===408||Nt===429||Nt===502||Nt===503||Nt===504)throw this.verbose&&!Ct&&st.a.warn("Potentially unsafe retry"),new it(xt,Rt,!0);if(Nt===500&&["/online-devices","/stream-current-value","/events/counts","/queries/queries"].some(Jt=>Rt.includes(Jt)))throw new it(xt,Rt,Ct);const Ot=this.validateHeaders(kt.headers);throw Object.keys(Ot).length!==0?new ut(Ot,kt):(yield this.getConstructor().onResponseError(kt),xt)}finally{Tt&&clearTimeout(Tt)}})}getConstructor(){return Object.getPrototypeOf(this).constructor}}pt.retries=8,pt.waitForConnectivity=()=>dt(void 0,void 0,void 0,function*(){}),pt.onResponseError=()=>dt(void 0,void 0,void 0,function*(){})},function(s,o,et){function tt(ut,dt){if(!(ut instanceof dt))throw new TypeError("Cannot call a class as a function")}function nt(ut,dt){for(var ht=0;ht0&&arguments[0]!==void 0?arguments[0]:{};tt(this,ut),pt.colors&&this.addColors(pt.colors),this.options=pt}var dt,ht,ct;return dt=ut,ct=[{key:"addColors",value:function(pt){var ft=Object.keys(pt).reduce(function(gt,yt){return gt[yt]=at.test(pt[yt])?pt[yt].split(at):pt[yt],gt},{});return ut.allColors=Object.assign({},ut.allColors||{},ft),ut.allColors}}],(ht=[{key:"addColors",value:function(pt){return ut.addColors(pt)}},{key:"colorize",value:function(pt,ft,gt){if(gt===void 0&&(gt=ft),!Array.isArray(ut.allColors[pt]))return rt[ut.allColors[pt]](gt);for(var yt=0,Ut=ut.allColors[pt].length;yt=0&&tt.length%1==0},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default={},s.exports=o.default},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){(function(tt,nt,rt){var it=et(37);function ot(St){var Tt=this;this.next=null,this.entry=null,this.finish=function(){(function(Bt,xt,Ct){var kt=Bt.entry;for(Bt.entry=null;kt;){var Nt=kt.callback;xt.pendingcb--,Nt(Ct),kt=kt.next}xt.corkedRequestsFree?xt.corkedRequestsFree.next=Bt:xt.corkedRequestsFree=Bt})(Tt,St)}}s.exports=Ut;var st,at=!tt.browser&&["v0.10","v0.9."].indexOf(tt.version.slice(0,5))>-1?nt:it.nextTick;Ut.WritableState=yt;var lt=Object.create(et(32));lt.inherits=et(7);var ut={deprecate:et(43)},dt=et(70),ht=et(46).Buffer,ct=rt.Uint8Array||function(){},pt,ft=et(71);function gt(){}function yt(St,Tt){st=st||et(22),St=St||{};var Bt=Tt instanceof st;this.objectMode=!!St.objectMode,Bt&&(this.objectMode=this.objectMode||!!St.writableObjectMode);var xt=St.highWaterMark,Ct=St.writableHighWaterMark,kt=this.objectMode?16:16384;this.highWaterMark=xt||xt===0?xt:Bt&&(Ct||Ct===0)?Ct:kt,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Nt=St.decodeStrings===!1;this.decodeStrings=!Nt,this.defaultEncoding=St.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Ot){(function(Jt,Dt){var Et=Jt._writableState,Pt=Et.sync,zt=Et.writecb;if(function(Kt){Kt.writing=!1,Kt.writecb=null,Kt.length-=Kt.writelen,Kt.writelen=0}(Et),Dt)(function(Kt,nn,Zt,jt,Vt){--nn.pendingcb,Zt?(it.nextTick(Vt,jt),it.nextTick(Rt,Kt,nn),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt)):(Vt(jt),Kt._writableState.errorEmitted=!0,Kt.emit("error",jt),Rt(Kt,nn))})(Jt,Et,Pt,Dt,zt);else{var en=At(Et);en||Et.corked||Et.bufferProcessing||!Et.bufferedRequest||vt(Jt,Et),Pt?at(mt,Jt,Et,en,zt):mt(Jt,Et,en,zt)}})(Tt,Ot)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new ot(this)}function Ut(St){if(st=st||et(22),!(pt.call(Ut,this)||this instanceof st))return new Ut(St);this._writableState=new yt(St,this),this.writable=!0,St&&(typeof St.write=="function"&&(this._write=St.write),typeof St.writev=="function"&&(this._writev=St.writev),typeof St.destroy=="function"&&(this._destroy=St.destroy),typeof St.final=="function"&&(this._final=St.final)),dt.call(this)}function Ft(St,Tt,Bt,xt,Ct,kt,Nt){Tt.writelen=xt,Tt.writecb=Nt,Tt.writing=!0,Tt.sync=!0,Bt?St._writev(Ct,Tt.onwrite):St._write(Ct,kt,Tt.onwrite),Tt.sync=!1}function mt(St,Tt,Bt,xt){Bt||function(Ct,kt){kt.length===0&&kt.needDrain&&(kt.needDrain=!1,Ct.emit("drain"))}(St,Tt),Tt.pendingcb--,xt(),Rt(St,Tt)}function vt(St,Tt){Tt.bufferProcessing=!0;var Bt=Tt.bufferedRequest;if(St._writev&&Bt&&Bt.next){var xt=Tt.bufferedRequestCount,Ct=new Array(xt),kt=Tt.corkedRequestsFree;kt.entry=Bt;for(var Nt=0,Ot=!0;Bt;)Ct[Nt]=Bt,Bt.isBuf||(Ot=!1),Bt=Bt.next,Nt+=1;Ct.allBuffers=Ot,Ft(St,Tt,!0,Tt.length,Ct,"",kt.finish),Tt.pendingcb++,Tt.lastBufferedRequest=null,kt.next?(Tt.corkedRequestsFree=kt.next,kt.next=null):Tt.corkedRequestsFree=new ot(Tt),Tt.bufferedRequestCount=0}else{for(;Bt;){var Jt=Bt.chunk,Dt=Bt.encoding,Et=Bt.callback;if(Ft(St,Tt,!1,Tt.objectMode?1:Jt.length,Jt,Dt,Et),Bt=Bt.next,Tt.bufferedRequestCount--,Tt.writing)break}Bt===null&&(Tt.lastBufferedRequest=null)}Tt.bufferedRequest=Bt,Tt.bufferProcessing=!1}function At(St){return St.ending&&St.length===0&&St.bufferedRequest===null&&!St.finished&&!St.writing}function Lt(St,Tt){St._final(function(Bt){Tt.pendingcb--,Bt&&St.emit("error",Bt),Tt.prefinished=!0,St.emit("prefinish"),Rt(St,Tt)})}function Rt(St,Tt){var Bt=At(Tt);return Bt&&(function(xt,Ct){Ct.prefinished||Ct.finalCalled||(typeof xt._final=="function"?(Ct.pendingcb++,Ct.finalCalled=!0,it.nextTick(Lt,xt,Ct)):(Ct.prefinished=!0,xt.emit("prefinish")))}(St,Tt),Tt.pendingcb===0&&(Tt.finished=!0,St.emit("finish"))),Bt}lt.inherits(Ut,dt),yt.prototype.getBuffer=function(){for(var St=this.bufferedRequest,Tt=[];St;)Tt.push(St),St=St.next;return Tt},function(){try{Object.defineProperty(yt.prototype,"buffer",{get:ut.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(pt=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ut,Symbol.hasInstance,{value:function(St){return!!pt.call(this,St)||this===Ut&&St&&St._writableState instanceof yt}})):pt=function(St){return St instanceof this},Ut.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Ut.prototype.write=function(St,Tt,Bt){var xt,Ct=this._writableState,kt=!1,Nt=!Ct.objectMode&&(xt=St,ht.isBuffer(xt)||xt instanceof ct);return Nt&&!ht.isBuffer(St)&&(St=function(Ot){return ht.from(Ot)}(St)),typeof Tt=="function"&&(Bt=Tt,Tt=null),Nt?Tt="buffer":Tt||(Tt=Ct.defaultEncoding),typeof Bt!="function"&&(Bt=gt),Ct.ended?function(Ot,Jt){var Dt=new Error("write after end");Ot.emit("error",Dt),it.nextTick(Jt,Dt)}(this,Bt):(Nt||function(Ot,Jt,Dt,Et){var Pt=!0,zt=!1;return Dt===null?zt=new TypeError("May not write null values to stream"):typeof Dt=="string"||Dt===void 0||Jt.objectMode||(zt=new TypeError("Invalid non-string/buffer chunk")),zt&&(Ot.emit("error",zt),it.nextTick(Et,zt),Pt=!1),Pt}(this,Ct,St,Bt))&&(Ct.pendingcb++,kt=function(Ot,Jt,Dt,Et,Pt,zt){if(!Dt){var en=function(jt,Vt,It){return jt.objectMode||jt.decodeStrings===!1||typeof Vt!="string"||(Vt=ht.from(Vt,It)),Vt}(Jt,Et,Pt);Et!==en&&(Dt=!0,Pt="buffer",Et=en)}var Kt=Jt.objectMode?1:Et.length;Jt.length+=Kt;var nn=Jt.length-1))throw new TypeError("Unknown encoding: "+St);return this._writableState.defaultEncoding=St,this},Object.defineProperty(Ut.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Ut.prototype._write=function(St,Tt,Bt){Bt(new Error("_write() is not implemented"))},Ut.prototype._writev=null,Ut.prototype.end=function(St,Tt,Bt){var xt=this._writableState;typeof St=="function"?(Bt=St,St=null,Tt=null):typeof Tt=="function"&&(Bt=Tt,Tt=null),St!=null&&this.write(St,Tt),xt.corked&&(xt.corked=1,this.uncork()),xt.ending||xt.finished||function(Ct,kt,Nt){kt.ending=!0,Rt(Ct,kt),Nt&&(kt.finished?it.nextTick(Nt):Ct.once("finish",Nt)),kt.ended=!0,Ct.writable=!1}(this,xt,Bt)},Object.defineProperty(Ut.prototype,"destroyed",{get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(St){this._writableState&&(this._writableState.destroyed=St)}}),Ut.prototype.destroy=ft.destroy,Ut.prototype._undestroy=ft.undestroy,Ut.prototype._destroy=function(St,Tt){this.end(),Tt(St)}}).call(this,et(2),et(19).setImmediate,et(6))},function(s,o,et){var tt=et(24).codes.ERR_STREAM_PREMATURE_CLOSE;function nt(){}s.exports=function rt(it,ot,st){if(typeof ot=="function")return rt(it,null,ot);ot||(ot={}),st=function(Ut){var Ft=!1;return function(){if(!Ft){Ft=!0;for(var mt=arguments.length,vt=new Array(mt),At=0;At=0;lt--){var ut=ot[lt];ut==="."?ot.splice(lt,1):ut===".."?(ot.splice(lt,1),at++):at&&(ot.splice(lt,1),at--)}if(st)for(;at--;at)ot.unshift("..");return ot}function rt(ot,st){if(ot.filter)return ot.filter(st);for(var at=[],lt=0;lt=-1&&!st;at--){var lt=at>=0?arguments[at]:tt.cwd();if(typeof lt!="string")throw new TypeError("Arguments to path.resolve must be strings");lt&&(ot=lt+"/"+ot,st=lt.charAt(0)==="/")}return(st?"/":"")+(ot=nt(rt(ot.split("/"),function(ut){return!!ut}),!st).join("/"))||"."},o.normalize=function(ot){var st=o.isAbsolute(ot),at=it(ot,-1)==="/";return(ot=nt(rt(ot.split("/"),function(lt){return!!lt}),!st).join("/"))||st||(ot="."),ot&&at&&(ot+="/"),(st?"/":"")+ot},o.isAbsolute=function(ot){return ot.charAt(0)==="/"},o.join=function(){var ot=Array.prototype.slice.call(arguments,0);return o.normalize(rt(ot,function(st,at){if(typeof st!="string")throw new TypeError("Arguments to path.join must be strings");return st}).join("/"))},o.relative=function(ot,st){function at(ft){for(var gt=0;gt=0&&ft[yt]==="";yt--);return gt>yt?[]:ft.slice(gt,yt-gt+1)}ot=o.resolve(ot).substr(1),st=o.resolve(st).substr(1);for(var lt=at(ot.split("/")),ut=at(st.split("/")),dt=Math.min(lt.length,ut.length),ht=dt,ct=0;ct=1;--dt)if((st=ot.charCodeAt(dt))===47){if(!ut){lt=dt;break}}else ut=!1;return lt===-1?at?"/":".":at&<===1?"/":ot.slice(0,lt)},o.basename=function(ot,st){var at=function(lt){typeof lt!="string"&&(lt+="");var ut,dt=0,ht=-1,ct=!0;for(ut=lt.length-1;ut>=0;--ut)if(lt.charCodeAt(ut)===47){if(!ct){dt=ut+1;break}}else ht===-1&&(ct=!1,ht=ut+1);return ht===-1?"":lt.slice(dt,ht)}(ot);return st&&at.substr(-1*st.length)===st&&(at=at.substr(0,at.length-st.length)),at},o.extname=function(ot){typeof ot!="string"&&(ot+="");for(var st=-1,at=0,lt=-1,ut=!0,dt=0,ht=ot.length-1;ht>=0;--ht){var ct=ot.charCodeAt(ht);if(ct!==47)lt===-1&&(ut=!1,lt=ht+1),ct===46?st===-1?st=ht:dt!==1&&(dt=1):st!==-1&&(dt=-1);else if(!ut){at=ht+1;break}}return st===-1||lt===-1||dt===0||dt===1&&st===lt-1&&st===at+1?"":ot.slice(st,lt)};var it="ab".substr(-1)==="b"?function(ot,st,at){return ot.substr(st,at)}:function(ot,st,at){return st<0&&(st=ot.length+st),ot.substr(st,at)}}).call(this,et(2))},,function(s,o,et){var tt=o.format=et(8);o.levels=et(102),Object.defineProperty(tt,"align",{value:et(119)}),Object.defineProperty(tt,"cli",{value:et(120)}),Object.defineProperty(tt,"colorize",{value:et(42)}),Object.defineProperty(tt,"combine",{value:et(121)}),Object.defineProperty(tt,"errors",{value:et(122)}),Object.defineProperty(tt,"json",{value:et(123)}),Object.defineProperty(tt,"label",{value:et(124)}),Object.defineProperty(tt,"logstash",{value:et(125)}),Object.defineProperty(tt,"metadata",{value:et(126)}),Object.defineProperty(tt,"ms",{value:et(127)}),Object.defineProperty(tt,"padLevels",{value:et(59)}),Object.defineProperty(tt,"prettyPrint",{value:et(129)}),Object.defineProperty(tt,"printf",{value:et(130)}),Object.defineProperty(tt,"simple",{value:et(131)}),Object.defineProperty(tt,"splat",{value:et(132)}),Object.defineProperty(tt,"timestamp",{value:et(133)}),Object.defineProperty(tt,"uncolorize",{value:et(135)})},function(s,o,et){var tt=et(103);s.exports=tt},function(s,o,et){function tt(dt){return function(ht){if(Array.isArray(ht))return nt(ht)}(dt)||function(ht){if(typeof Symbol<"u"&&ht[Symbol.iterator]!=null||ht["@@iterator"]!=null)return Array.from(ht)}(dt)||function(ht,ct){if(ht){if(typeof ht=="string")return nt(ht,ct);var pt=Object.prototype.toString.call(ht).slice(8,-1);if(pt==="Object"&&ht.constructor&&(pt=ht.constructor.name),pt==="Map"||pt==="Set")return Array.from(ht);if(pt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(pt))return nt(ht,ct)}}(dt)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function nt(dt,ht){(ht==null||ht>dt.length)&&(ht=dt.length);for(var ct=0,pt=new Array(ht);ct0&&arguments[0]!==void 0?arguments[0]:{levels:st.npm.levels};rt(this,dt),this.paddings=dt.paddingForLevels(ft.levels,ft.filler),this.options=ft}var ht,ct,pt;return ht=dt,pt=[{key:"getLongestLevel",value:function(ft){var gt=Object.keys(ft).map(function(yt){return yt.length});return Math.max.apply(Math,tt(gt))}},{key:"paddingForLevel",value:function(ft,gt,yt){var Ut=yt+1-ft.length,Ft=Math.floor(Ut/gt.length);return"".concat(gt).concat(gt.repeat(Ft)).slice(0,Ut)}},{key:"paddingForLevels",value:function(ft){var gt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:" ",yt=dt.getLongestLevel(ft);return Object.keys(ft).reduce(function(Ut,Ft){return Ut[Ft]=dt.paddingForLevel(Ft,gt,yt),Ut},{})}}],(ct=[{key:"transform",value:function(ft,gt){return ft.message="".concat(this.paddings[ft[at]]).concat(ft.message),ft[lt]&&(ft[lt]="".concat(this.paddings[ft[at]]).concat(ft[lt])),ft}}])&&it(ht.prototype,ct),pt&&it(ht,pt),Object.defineProperty(ht,"prototype",{writable:!1}),dt}();s.exports=function(dt){return new ut(dt)},s.exports.Padder=s.exports.Format=ut},function(s,o,et){var tt=et(13).format;o.warn={deprecated:function(nt){return function(){throw new Error(tt("{ %s } was removed in winston@3.0.0.",nt))}},useFormat:function(nt){return function(){throw new Error([tt("{ %s } was removed in winston@3.0.0.",nt),"Use a custom winston.format = winston.format(function) instead."].join(` `))}},forFunctions:function(nt,rt,it){it.forEach(function(ot){nt[ot]=o.warn[rt](ot)})},moved:function(nt,rt,it){function ot(){return function(){throw new Error([tt("winston.%s was moved in winston@3.0.0.",it),tt("Use a winston.%s instead.",rt)].join(` -`))}}Object.defineProperty(nt,it,{get:ot,set:ot})},forProperties:function(nt,rt,it){it.forEach(function(ot){var st=o.warn[rt](ot);Object.defineProperty(nt,ot,{get:st,set:st})})}}},function(s,o,et){(function(tt,nt){function rt(Ot){var Wt=this;this.next=null,this.entry=null,this.finish=function(){(function(Dt,Et,Pt){var zt=Dt.entry;for(Dt.entry=null;zt;){var en=zt.callback;Et.pendingcb--,en(Pt),zt=zt.next}Et.corkedRequestsFree.next=Dt})(Wt,Ot)}}var it;s.exports=St,St.WritableState=Rt;var ot={deprecate:et(43)},st=et(62),at=et(5).Buffer,lt=(tt!==void 0?tt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){},ut,dt=et(63),ht=et(64).getHighWaterMark,ct=et(35).codes,pt=ct.ERR_INVALID_ARG_TYPE,ft=ct.ERR_METHOD_NOT_IMPLEMENTED,gt=ct.ERR_MULTIPLE_CALLBACK,yt=ct.ERR_STREAM_CANNOT_PIPE,Ut=ct.ERR_STREAM_DESTROYED,Ft=ct.ERR_STREAM_NULL_VALUES,mt=ct.ERR_STREAM_WRITE_AFTER_END,vt=ct.ERR_UNKNOWN_ENCODING,At=dt.errorOrDestroy;function Lt(){}function Rt(Ot,Wt,Dt){it=it||et(36),Ot=Ot||{},typeof Dt!="boolean"&&(Dt=Wt instanceof it),this.objectMode=!!Ot.objectMode,Dt&&(this.objectMode=this.objectMode||!!Ot.writableObjectMode),this.highWaterMark=ht(this,Ot,"writableHighWaterMark",Dt),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Et=Ot.decodeStrings===!1;this.decodeStrings=!Et,this.defaultEncoding=Ot.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Pt){(function(zt,en){var Kt=zt._writableState,nn=Kt.sync,Zt=Kt.writecb;if(typeof Zt!="function")throw new gt;if(function(Vt){Vt.writing=!1,Vt.writecb=null,Vt.length-=Vt.writelen,Vt.writelen=0}(Kt),en)(function(Vt,It,$t,Ht,qt){--It.pendingcb,$t?(nt.nextTick(qt,Ht),nt.nextTick(Nt,Vt,It),Vt._writableState.errorEmitted=!0,At(Vt,Ht)):(qt(Ht),Vt._writableState.errorEmitted=!0,At(Vt,Ht),Nt(Vt,It))})(zt,Kt,nn,en,Zt);else{var jt=Ct(Kt)||zt.destroyed;jt||Kt.corked||Kt.bufferProcessing||!Kt.bufferedRequest||xt(zt,Kt),nn?nt.nextTick(Bt,zt,Kt,jt,Zt):Bt(zt,Kt,jt,Zt)}})(Wt,Pt)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=Ot.emitClose!==!1,this.autoDestroy=!!Ot.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new rt(this)}function St(Ot){var Wt=this instanceof(it=it||et(36));if(!Wt&&!ut.call(St,this))return new St(Ot);this._writableState=new Rt(Ot,this,Wt),this.writable=!0,Ot&&(typeof Ot.write=="function"&&(this._write=Ot.write),typeof Ot.writev=="function"&&(this._writev=Ot.writev),typeof Ot.destroy=="function"&&(this._destroy=Ot.destroy),typeof Ot.final=="function"&&(this._final=Ot.final)),st.call(this)}function Tt(Ot,Wt,Dt,Et,Pt,zt,en){Wt.writelen=Et,Wt.writecb=en,Wt.writing=!0,Wt.sync=!0,Wt.destroyed?Wt.onwrite(new Ut("write")):Dt?Ot._writev(Pt,Wt.onwrite):Ot._write(Pt,zt,Wt.onwrite),Wt.sync=!1}function Bt(Ot,Wt,Dt,Et){Dt||function(Pt,zt){zt.length===0&&zt.needDrain&&(zt.needDrain=!1,Pt.emit("drain"))}(Ot,Wt),Wt.pendingcb--,Et(),Nt(Ot,Wt)}function xt(Ot,Wt){Wt.bufferProcessing=!0;var Dt=Wt.bufferedRequest;if(Ot._writev&&Dt&&Dt.next){var Et=Wt.bufferedRequestCount,Pt=new Array(Et),zt=Wt.corkedRequestsFree;zt.entry=Dt;for(var en=0,Kt=!0;Dt;)Pt[en]=Dt,Dt.isBuf||(Kt=!1),Dt=Dt.next,en+=1;Pt.allBuffers=Kt,Tt(Ot,Wt,!0,Wt.length,Pt,"",zt.finish),Wt.pendingcb++,Wt.lastBufferedRequest=null,zt.next?(Wt.corkedRequestsFree=zt.next,zt.next=null):Wt.corkedRequestsFree=new rt(Wt),Wt.bufferedRequestCount=0}else{for(;Dt;){var nn=Dt.chunk,Zt=Dt.encoding,jt=Dt.callback;if(Tt(Ot,Wt,!1,Wt.objectMode?1:nn.length,nn,Zt,jt),Dt=Dt.next,Wt.bufferedRequestCount--,Wt.writing)break}Dt===null&&(Wt.lastBufferedRequest=null)}Wt.bufferedRequest=Dt,Wt.bufferProcessing=!1}function Ct(Ot){return Ot.ending&&Ot.length===0&&Ot.bufferedRequest===null&&!Ot.finished&&!Ot.writing}function kt(Ot,Wt){Ot._final(function(Dt){Wt.pendingcb--,Dt&&At(Ot,Dt),Wt.prefinished=!0,Ot.emit("prefinish"),Nt(Ot,Wt)})}function Nt(Ot,Wt){var Dt=Ct(Wt);if(Dt&&(function(Pt,zt){zt.prefinished||zt.finalCalled||(typeof Pt._final!="function"||zt.destroyed?(zt.prefinished=!0,Pt.emit("prefinish")):(zt.pendingcb++,zt.finalCalled=!0,nt.nextTick(kt,Pt,zt)))}(Ot,Wt),Wt.pendingcb===0&&(Wt.finished=!0,Ot.emit("finish"),Wt.autoDestroy))){var Et=Ot._readableState;(!Et||Et.autoDestroy&&Et.endEmitted)&&Ot.destroy()}return Dt}et(7)(St,st),Rt.prototype.getBuffer=function(){for(var Ot=this.bufferedRequest,Wt=[];Ot;)Wt.push(Ot),Ot=Ot.next;return Wt},function(){try{Object.defineProperty(Rt.prototype,"buffer",{get:ot.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ut=Function.prototype[Symbol.hasInstance],Object.defineProperty(St,Symbol.hasInstance,{value:function(Ot){return!!ut.call(this,Ot)||this===St&&Ot&&Ot._writableState instanceof Rt}})):ut=function(Ot){return Ot instanceof this},St.prototype.pipe=function(){At(this,new yt)},St.prototype.write=function(Ot,Wt,Dt){var Et,Pt=this._writableState,zt=!1,en=!Pt.objectMode&&(Et=Ot,at.isBuffer(Et)||Et instanceof lt);return en&&!at.isBuffer(Ot)&&(Ot=function(Kt){return at.from(Kt)}(Ot)),typeof Wt=="function"&&(Dt=Wt,Wt=null),en?Wt="buffer":Wt||(Wt=Pt.defaultEncoding),typeof Dt!="function"&&(Dt=Lt),Pt.ending?function(Kt,nn){var Zt=new mt;At(Kt,Zt),nt.nextTick(nn,Zt)}(this,Dt):(en||function(Kt,nn,Zt,jt){var Vt;return Zt===null?Vt=new Ft:typeof Zt=="string"||nn.objectMode||(Vt=new pt("chunk",["string","Buffer"],Zt)),!Vt||(At(Kt,Vt),nt.nextTick(jt,Vt),!1)}(this,Pt,Ot,Dt))&&(Pt.pendingcb++,zt=function(Kt,nn,Zt,jt,Vt,It){if(!Zt){var $t=function(Xt,dn,_n){return Xt.objectMode||Xt.decodeStrings===!1||typeof dn!="string"||(dn=at.from(dn,_n)),dn}(nn,jt,Vt);jt!==$t&&(Zt=!0,Vt="buffer",jt=$t)}var Ht=nn.objectMode?1:jt.length;nn.length+=Ht;var qt=nn.length-1))throw new vt(Ot);return this._writableState.defaultEncoding=Ot,this},Object.defineProperty(St.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(St.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),St.prototype._write=function(Ot,Wt,Dt){Dt(new ft("_write()"))},St.prototype._writev=null,St.prototype.end=function(Ot,Wt,Dt){var Et=this._writableState;return typeof Ot=="function"?(Dt=Ot,Ot=null,Wt=null):typeof Wt=="function"&&(Dt=Wt,Wt=null),Ot!=null&&this.write(Ot,Wt),Et.corked&&(Et.corked=1,this.uncork()),Et.ending||function(Pt,zt,en){zt.ending=!0,Nt(Pt,zt),en&&(zt.finished?nt.nextTick(en):Pt.once("finish",en)),zt.ended=!0,Pt.writable=!1}(this,Et,Dt),this},Object.defineProperty(St.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(St.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(Ot){this._writableState&&(this._writableState.destroyed=Ot)}}),St.prototype.destroy=dt.destroy,St.prototype._undestroy=dt.undestroy,St.prototype._destroy=function(Ot,Wt){Wt(Ot)}}).call(this,et(6),et(2))},function(s,o,et){s.exports=et(20).EventEmitter},function(s,o,et){(function(tt){function nt(ot,st){it(ot,st),rt(ot)}function rt(ot){ot._writableState&&!ot._writableState.emitClose||ot._readableState&&!ot._readableState.emitClose||ot.emit("close")}function it(ot,st){ot.emit("error",st)}s.exports={destroy:function(ot,st){var at=this,lt=this._readableState&&this._readableState.destroyed,ut=this._writableState&&this._writableState.destroyed;return lt||ut?(st?st(ot):ot&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,tt.nextTick(it,this,ot)):tt.nextTick(it,this,ot)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(ot||null,function(dt){!st&&dt?at._writableState?at._writableState.errorEmitted?tt.nextTick(rt,at):(at._writableState.errorEmitted=!0,tt.nextTick(nt,at,dt)):tt.nextTick(nt,at,dt):st?(tt.nextTick(rt,at),st(dt)):tt.nextTick(rt,at)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(ot,st){var at=ot._readableState,lt=ot._writableState;at&&at.autoDestroy||lt&<.autoDestroy?ot.destroy(st):ot.emit("error",st)}}}).call(this,et(2))},function(s,o,et){var tt=et(35).codes.ERR_INVALID_OPT_VALUE;s.exports={getHighWaterMark:function(nt,rt,it,ot){var st=function(at,lt,ut){return at.highWaterMark!=null?at.highWaterMark:lt?at[ut]:null}(rt,ot,it);if(st!=null){if(!isFinite(st)||Math.floor(st)!==st||st<0)throw new tt(ot?it:"highWaterMark",st);return Math.floor(st)}return nt.objectMode?16:16384}}},function(s,o){},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(159)),nt=it(et(23)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)(function(ot,st,at,lt){return(0,tt.default)(st)(ot,(0,nt.default)(at),lt)},4),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){function nt(...rt){if(tt!==null){var it=tt;tt=null,it.apply(this,rt)}}return Object.assign(nt,tt),nt},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){if(tt===null)throw new Error("Callback was already called.");var rt=tt;tt=null,rt.apply(this,nt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){var rt=et(37);s.exports=Ft;var it,ot=et(165);Ft.ReadableState=Ut,et(20).EventEmitter;var st=function(Dt,Et){return Dt.listeners(Et).length},at=et(70),lt=et(46).Buffer,ut=tt.Uint8Array||function(){},dt=Object.create(et(32));dt.inherits=et(7);var ht=et(166),ct=void 0;ct=ht&&ht.debuglog?ht.debuglog("stream"):function(){};var pt,ft=et(167),gt=et(71);dt.inherits(Ft,at);var yt=["error","close","destroy","pause","resume"];function Ut(Dt,Et){Dt=Dt||{};var Pt=Et instanceof(it=it||et(22));this.objectMode=!!Dt.objectMode,Pt&&(this.objectMode=this.objectMode||!!Dt.readableObjectMode);var zt=Dt.highWaterMark,en=Dt.readableHighWaterMark,Kt=this.objectMode?16:16384;this.highWaterMark=zt||zt===0?zt:Pt&&(en||en===0)?en:Kt,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new ft,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=Dt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Dt.encoding&&(pt||(pt=et(21).StringDecoder),this.decoder=new pt(Dt.encoding),this.encoding=Dt.encoding)}function Ft(Dt){if(it=it||et(22),!(this instanceof Ft))return new Ft(Dt);this._readableState=new Ut(Dt,this),this.readable=!0,Dt&&(typeof Dt.read=="function"&&(this._read=Dt.read),typeof Dt.destroy=="function"&&(this._destroy=Dt.destroy)),at.call(this)}function mt(Dt,Et,Pt,zt,en){var Kt,nn=Dt._readableState;return Et===null?(nn.reading=!1,function(Zt,jt){if(!jt.ended){if(jt.decoder){var Vt=jt.decoder.end();Vt&&Vt.length&&(jt.buffer.push(Vt),jt.length+=jt.objectMode?1:Vt.length)}jt.ended=!0,Lt(Zt)}}(Dt,nn)):(en||(Kt=function(Zt,jt){var Vt;It=jt,lt.isBuffer(It)||It instanceof ut||typeof jt=="string"||jt===void 0||Zt.objectMode||(Vt=new TypeError("Invalid non-string/buffer chunk"));var It;return Vt}(nn,Et)),Kt?Dt.emit("error",Kt):nn.objectMode||Et&&Et.length>0?(typeof Et=="string"||nn.objectMode||Object.getPrototypeOf(Et)===lt.prototype||(Et=function(Zt){return lt.from(Zt)}(Et)),zt?nn.endEmitted?Dt.emit("error",new Error("stream.unshift() after end event")):vt(Dt,nn,Et,!0):nn.ended?Dt.emit("error",new Error("stream.push() after EOF")):(nn.reading=!1,nn.decoder&&!Pt?(Et=nn.decoder.write(Et),nn.objectMode||Et.length!==0?vt(Dt,nn,Et,!1):St(Dt,nn)):vt(Dt,nn,Et,!1))):zt||(nn.reading=!1)),function(Zt){return!Zt.ended&&(Zt.needReadable||Zt.lengthEt.highWaterMark&&(Et.highWaterMark=function(Pt){return Pt>=8388608?Pt=8388608:(Pt--,Pt|=Pt>>>1,Pt|=Pt>>>2,Pt|=Pt>>>4,Pt|=Pt>>>8,Pt|=Pt>>>16,Pt++),Pt}(Dt)),Dt<=Et.length?Dt:Et.ended?Et.length:(Et.needReadable=!0,0))}function Lt(Dt){var Et=Dt._readableState;Et.needReadable=!1,Et.emittedReadable||(ct("emitReadable",Et.flowing),Et.emittedReadable=!0,Et.sync?rt.nextTick(Rt,Dt):Rt(Dt))}function Rt(Dt){ct("emit readable"),Dt.emit("readable"),Ct(Dt)}function St(Dt,Et){Et.readingMore||(Et.readingMore=!0,rt.nextTick(Tt,Dt,Et))}function Tt(Dt,Et){for(var Pt=Et.length;!Et.reading&&!Et.flowing&&!Et.ended&&Et.length=Et.length?(Pt=Et.decoder?Et.buffer.join(""):Et.buffer.length===1?Et.buffer.head.data:Et.buffer.concat(Et.length),Et.buffer.clear()):Pt=function(zt,en,Kt){var nn;return ztHt.length?Ht.length:Zt;if(qt===Ht.length?$t+=Ht:$t+=Ht.slice(0,Zt),(Zt-=qt)===0){qt===Ht.length?(++It,Vt.next?jt.head=Vt.next:jt.head=jt.tail=null):(jt.head=Vt,Vt.data=Ht.slice(qt));break}++It}return jt.length-=It,$t}(zt,en):function(Zt,jt){var Vt=lt.allocUnsafe(Zt),It=jt.head,$t=1;for(It.data.copy(Vt),Zt-=It.data.length;It=It.next;){var Ht=It.data,qt=Zt>Ht.length?Ht.length:Zt;if(Ht.copy(Vt,Vt.length-Zt,0,qt),(Zt-=qt)===0){qt===Ht.length?(++$t,It.next?jt.head=It.next:jt.head=jt.tail=null):(jt.head=It,It.data=Ht.slice(qt));break}++$t}return jt.length-=$t,Vt}(zt,en),nn}(Dt,Et.buffer,Et.decoder),Pt);var Pt}function Nt(Dt){var Et=Dt._readableState;if(Et.length>0)throw new Error('"endReadable()" called on non-empty stream');Et.endEmitted||(Et.ended=!0,rt.nextTick(Ot,Et,Dt))}function Ot(Dt,Et){Dt.endEmitted||Dt.length!==0||(Dt.endEmitted=!0,Et.readable=!1,Et.emit("end"))}function Wt(Dt,Et){for(var Pt=0,zt=Dt.length;Pt=Et.highWaterMark||Et.ended))return ct("read: emitReadable",Et.length,Et.ended),Et.length===0&&Et.ended?Nt(this):Lt(this),null;if((Dt=At(Dt,Et))===0&&Et.ended)return Et.length===0&&Nt(this),null;var zt,en=Et.needReadable;return ct("need readable",en),(Et.length===0||Et.length-Dt0?kt(Dt,Et):null)===null?(Et.needReadable=!0,Dt=0):Et.length-=Dt,Et.length===0&&(Et.ended||(Et.needReadable=!0),Pt!==Dt&&Et.ended&&Nt(this)),zt!==null&&this.emit("data",zt),zt},Ft.prototype._read=function(Dt){this.emit("error",new Error("_read() is not implemented"))},Ft.prototype.pipe=function(Dt,Et){var Pt=this,zt=this._readableState;switch(zt.pipesCount){case 0:zt.pipes=Dt;break;case 1:zt.pipes=[zt.pipes,Dt];break;default:zt.pipes.push(Dt)}zt.pipesCount+=1,ct("pipe count=%d opts=%j",zt.pipesCount,Et);var en=(!Et||Et.end!==!1)&&Dt!==nt.stdout&&Dt!==nt.stderr?nn:on;function Kt(Xt,dn){ct("onunpipe"),Xt===Pt&&dn&&dn.hasUnpiped===!1&&(dn.hasUnpiped=!0,ct("cleanup"),Dt.removeListener("close",Ht),Dt.removeListener("finish",qt),Dt.removeListener("drain",Zt),Dt.removeListener("error",$t),Dt.removeListener("unpipe",Kt),Pt.removeListener("end",nn),Pt.removeListener("end",on),Pt.removeListener("data",It),jt=!0,!zt.awaitDrain||Dt._writableState&&!Dt._writableState.needDrain||Zt())}function nn(){ct("onend"),Dt.end()}zt.endEmitted?rt.nextTick(en):Pt.once("end",en),Dt.on("unpipe",Kt);var Zt=function(Xt){return function(){var dn=Xt._readableState;ct("pipeOnDrain",dn.awaitDrain),dn.awaitDrain&&dn.awaitDrain--,dn.awaitDrain===0&&st(Xt,"data")&&(dn.flowing=!0,Ct(Xt))}}(Pt);Dt.on("drain",Zt);var jt=!1,Vt=!1;function It(Xt){ct("ondata"),Vt=!1,Dt.write(Xt)!==!1||Vt||((zt.pipesCount===1&&zt.pipes===Dt||zt.pipesCount>1&&Wt(zt.pipes,Dt)!==-1)&&!jt&&(ct("false write response, pause",Pt._readableState.awaitDrain),Pt._readableState.awaitDrain++,Vt=!0),Pt.pause())}function $t(Xt){ct("onerror",Xt),on(),Dt.removeListener("error",$t),st(Dt,"error")===0&&Dt.emit("error",Xt)}function Ht(){Dt.removeListener("finish",qt),on()}function qt(){ct("onfinish"),Dt.removeListener("close",Ht),on()}function on(){ct("unpipe"),Pt.unpipe(Dt)}return Pt.on("data",It),function(Xt,dn,_n){if(typeof Xt.prependListener=="function")return Xt.prependListener(dn,_n);Xt._events&&Xt._events[dn]?ot(Xt._events[dn])?Xt._events[dn].unshift(_n):Xt._events[dn]=[_n,Xt._events[dn]]:Xt.on(dn,_n)}(Dt,"error",$t),Dt.once("close",Ht),Dt.once("finish",qt),Dt.emit("pipe",Pt),zt.flowing||(ct("pipe resume"),Pt.resume()),Dt},Ft.prototype.unpipe=function(Dt){var Et=this._readableState,Pt={hasUnpiped:!1};if(Et.pipesCount===0)return this;if(Et.pipesCount===1)return Dt&&Dt!==Et.pipes||(Dt||(Dt=Et.pipes),Et.pipes=null,Et.pipesCount=0,Et.flowing=!1,Dt&&Dt.emit("unpipe",this,Pt)),this;if(!Dt){var zt=Et.pipes,en=Et.pipesCount;Et.pipes=null,Et.pipesCount=0,Et.flowing=!1;for(var Kt=0;Kt=0;Pt--)if(zt[Pt]!==en[Pt])return!1;for(Pt=zt.length-1;Pt>=0;Pt--)if(Et=zt[Pt],!Ft(Ct[Et],kt[Et],Nt,Ot))return!1;return!0}(Rt,St,Tt,Bt))}return Tt?Rt===St:Rt==St}function mt(Rt){return Object.prototype.toString.call(Rt)=="[object Arguments]"}function vt(Rt,St){if(!Rt||!St)return!1;if(Object.prototype.toString.call(St)=="[object RegExp]")return St.test(Rt);try{if(Rt instanceof St)return!0}catch{}return!Error.isPrototypeOf(St)&&St.call({},Rt)===!0}function At(Rt,St,Tt,Bt){var xt;if(typeof St!="function")throw new TypeError('"block" argument must be a function');typeof Tt=="string"&&(Bt=Tt,Tt=null),xt=function(Nt){var Ot;try{Nt()}catch(Wt){Ot=Wt}return Ot}(St),Bt=(Tt&&Tt.name?" ("+Tt.name+").":".")+(Bt?" "+Bt:"."),Rt&&!xt&&yt(xt,Tt,"Missing expected exception"+Bt);var Ct=typeof Bt=="string",kt=!Rt&&xt&&!Tt;if((!Rt&&ot.isError(xt)&&Ct&&vt(xt,Tt)||kt)&&yt(xt,Tt,"Got unwanted exception"+Bt),Rt&&xt&&Tt&&!vt(xt,Tt)||!Rt&&xt)throw xt}ht.AssertionError=function(Rt){this.name="AssertionError",this.actual=Rt.actual,this.expected=Rt.expected,this.operator=Rt.operator,Rt.message?(this.message=Rt.message,this.generatedMessage=!1):(this.message=function(Nt){return ft(gt(Nt.actual),128)+" "+Nt.operator+" "+ft(gt(Nt.expected),128)}(this),this.generatedMessage=!0);var St=Rt.stackStartFunction||yt;if(Error.captureStackTrace)Error.captureStackTrace(this,St);else{var Tt=new Error;if(Tt.stack){var Bt=Tt.stack,xt=pt(St),Ct=Bt.indexOf(` +`))}}Object.defineProperty(nt,it,{get:ot,set:ot})},forProperties:function(nt,rt,it){it.forEach(function(ot){var st=o.warn[rt](ot);Object.defineProperty(nt,ot,{get:st,set:st})})}}},function(s,o,et){(function(tt,nt){function rt(Ot){var Jt=this;this.next=null,this.entry=null,this.finish=function(){(function(Dt,Et,Pt){var zt=Dt.entry;for(Dt.entry=null;zt;){var en=zt.callback;Et.pendingcb--,en(Pt),zt=zt.next}Et.corkedRequestsFree.next=Dt})(Jt,Ot)}}var it;s.exports=St,St.WritableState=Rt;var ot={deprecate:et(43)},st=et(62),at=et(5).Buffer,lt=(tt!==void 0?tt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){},ut,dt=et(63),ht=et(64).getHighWaterMark,ct=et(35).codes,pt=ct.ERR_INVALID_ARG_TYPE,ft=ct.ERR_METHOD_NOT_IMPLEMENTED,gt=ct.ERR_MULTIPLE_CALLBACK,yt=ct.ERR_STREAM_CANNOT_PIPE,Ut=ct.ERR_STREAM_DESTROYED,Ft=ct.ERR_STREAM_NULL_VALUES,mt=ct.ERR_STREAM_WRITE_AFTER_END,vt=ct.ERR_UNKNOWN_ENCODING,At=dt.errorOrDestroy;function Lt(){}function Rt(Ot,Jt,Dt){it=it||et(36),Ot=Ot||{},typeof Dt!="boolean"&&(Dt=Jt instanceof it),this.objectMode=!!Ot.objectMode,Dt&&(this.objectMode=this.objectMode||!!Ot.writableObjectMode),this.highWaterMark=ht(this,Ot,"writableHighWaterMark",Dt),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Et=Ot.decodeStrings===!1;this.decodeStrings=!Et,this.defaultEncoding=Ot.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Pt){(function(zt,en){var Kt=zt._writableState,nn=Kt.sync,Zt=Kt.writecb;if(typeof Zt!="function")throw new gt;if(function(Vt){Vt.writing=!1,Vt.writecb=null,Vt.length-=Vt.writelen,Vt.writelen=0}(Kt),en)(function(Vt,It,$t,Ht,qt){--It.pendingcb,$t?(nt.nextTick(qt,Ht),nt.nextTick(Nt,Vt,It),Vt._writableState.errorEmitted=!0,At(Vt,Ht)):(qt(Ht),Vt._writableState.errorEmitted=!0,At(Vt,Ht),Nt(Vt,It))})(zt,Kt,nn,en,Zt);else{var jt=Ct(Kt)||zt.destroyed;jt||Kt.corked||Kt.bufferProcessing||!Kt.bufferedRequest||xt(zt,Kt),nn?nt.nextTick(Bt,zt,Kt,jt,Zt):Bt(zt,Kt,jt,Zt)}})(Jt,Pt)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=Ot.emitClose!==!1,this.autoDestroy=!!Ot.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new rt(this)}function St(Ot){var Jt=this instanceof(it=it||et(36));if(!Jt&&!ut.call(St,this))return new St(Ot);this._writableState=new Rt(Ot,this,Jt),this.writable=!0,Ot&&(typeof Ot.write=="function"&&(this._write=Ot.write),typeof Ot.writev=="function"&&(this._writev=Ot.writev),typeof Ot.destroy=="function"&&(this._destroy=Ot.destroy),typeof Ot.final=="function"&&(this._final=Ot.final)),st.call(this)}function Tt(Ot,Jt,Dt,Et,Pt,zt,en){Jt.writelen=Et,Jt.writecb=en,Jt.writing=!0,Jt.sync=!0,Jt.destroyed?Jt.onwrite(new Ut("write")):Dt?Ot._writev(Pt,Jt.onwrite):Ot._write(Pt,zt,Jt.onwrite),Jt.sync=!1}function Bt(Ot,Jt,Dt,Et){Dt||function(Pt,zt){zt.length===0&&zt.needDrain&&(zt.needDrain=!1,Pt.emit("drain"))}(Ot,Jt),Jt.pendingcb--,Et(),Nt(Ot,Jt)}function xt(Ot,Jt){Jt.bufferProcessing=!0;var Dt=Jt.bufferedRequest;if(Ot._writev&&Dt&&Dt.next){var Et=Jt.bufferedRequestCount,Pt=new Array(Et),zt=Jt.corkedRequestsFree;zt.entry=Dt;for(var en=0,Kt=!0;Dt;)Pt[en]=Dt,Dt.isBuf||(Kt=!1),Dt=Dt.next,en+=1;Pt.allBuffers=Kt,Tt(Ot,Jt,!0,Jt.length,Pt,"",zt.finish),Jt.pendingcb++,Jt.lastBufferedRequest=null,zt.next?(Jt.corkedRequestsFree=zt.next,zt.next=null):Jt.corkedRequestsFree=new rt(Jt),Jt.bufferedRequestCount=0}else{for(;Dt;){var nn=Dt.chunk,Zt=Dt.encoding,jt=Dt.callback;if(Tt(Ot,Jt,!1,Jt.objectMode?1:nn.length,nn,Zt,jt),Dt=Dt.next,Jt.bufferedRequestCount--,Jt.writing)break}Dt===null&&(Jt.lastBufferedRequest=null)}Jt.bufferedRequest=Dt,Jt.bufferProcessing=!1}function Ct(Ot){return Ot.ending&&Ot.length===0&&Ot.bufferedRequest===null&&!Ot.finished&&!Ot.writing}function kt(Ot,Jt){Ot._final(function(Dt){Jt.pendingcb--,Dt&&At(Ot,Dt),Jt.prefinished=!0,Ot.emit("prefinish"),Nt(Ot,Jt)})}function Nt(Ot,Jt){var Dt=Ct(Jt);if(Dt&&(function(Pt,zt){zt.prefinished||zt.finalCalled||(typeof Pt._final!="function"||zt.destroyed?(zt.prefinished=!0,Pt.emit("prefinish")):(zt.pendingcb++,zt.finalCalled=!0,nt.nextTick(kt,Pt,zt)))}(Ot,Jt),Jt.pendingcb===0&&(Jt.finished=!0,Ot.emit("finish"),Jt.autoDestroy))){var Et=Ot._readableState;(!Et||Et.autoDestroy&&Et.endEmitted)&&Ot.destroy()}return Dt}et(7)(St,st),Rt.prototype.getBuffer=function(){for(var Ot=this.bufferedRequest,Jt=[];Ot;)Jt.push(Ot),Ot=Ot.next;return Jt},function(){try{Object.defineProperty(Rt.prototype,"buffer",{get:ot.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}(),typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ut=Function.prototype[Symbol.hasInstance],Object.defineProperty(St,Symbol.hasInstance,{value:function(Ot){return!!ut.call(this,Ot)||this===St&&Ot&&Ot._writableState instanceof Rt}})):ut=function(Ot){return Ot instanceof this},St.prototype.pipe=function(){At(this,new yt)},St.prototype.write=function(Ot,Jt,Dt){var Et,Pt=this._writableState,zt=!1,en=!Pt.objectMode&&(Et=Ot,at.isBuffer(Et)||Et instanceof lt);return en&&!at.isBuffer(Ot)&&(Ot=function(Kt){return at.from(Kt)}(Ot)),typeof Jt=="function"&&(Dt=Jt,Jt=null),en?Jt="buffer":Jt||(Jt=Pt.defaultEncoding),typeof Dt!="function"&&(Dt=Lt),Pt.ending?function(Kt,nn){var Zt=new mt;At(Kt,Zt),nt.nextTick(nn,Zt)}(this,Dt):(en||function(Kt,nn,Zt,jt){var Vt;return Zt===null?Vt=new Ft:typeof Zt=="string"||nn.objectMode||(Vt=new pt("chunk",["string","Buffer"],Zt)),!Vt||(At(Kt,Vt),nt.nextTick(jt,Vt),!1)}(this,Pt,Ot,Dt))&&(Pt.pendingcb++,zt=function(Kt,nn,Zt,jt,Vt,It){if(!Zt){var $t=function(Xt,dn,_n){return Xt.objectMode||Xt.decodeStrings===!1||typeof dn!="string"||(dn=at.from(dn,_n)),dn}(nn,jt,Vt);jt!==$t&&(Zt=!0,Vt="buffer",jt=$t)}var Ht=nn.objectMode?1:jt.length;nn.length+=Ht;var qt=nn.length-1))throw new vt(Ot);return this._writableState.defaultEncoding=Ot,this},Object.defineProperty(St.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(St.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),St.prototype._write=function(Ot,Jt,Dt){Dt(new ft("_write()"))},St.prototype._writev=null,St.prototype.end=function(Ot,Jt,Dt){var Et=this._writableState;return typeof Ot=="function"?(Dt=Ot,Ot=null,Jt=null):typeof Jt=="function"&&(Dt=Jt,Jt=null),Ot!=null&&this.write(Ot,Jt),Et.corked&&(Et.corked=1,this.uncork()),Et.ending||function(Pt,zt,en){zt.ending=!0,Nt(Pt,zt),en&&(zt.finished?nt.nextTick(en):Pt.once("finish",en)),zt.ended=!0,Pt.writable=!1}(this,Et,Dt),this},Object.defineProperty(St.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(St.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(Ot){this._writableState&&(this._writableState.destroyed=Ot)}}),St.prototype.destroy=dt.destroy,St.prototype._undestroy=dt.undestroy,St.prototype._destroy=function(Ot,Jt){Jt(Ot)}}).call(this,et(6),et(2))},function(s,o,et){s.exports=et(20).EventEmitter},function(s,o,et){(function(tt){function nt(ot,st){it(ot,st),rt(ot)}function rt(ot){ot._writableState&&!ot._writableState.emitClose||ot._readableState&&!ot._readableState.emitClose||ot.emit("close")}function it(ot,st){ot.emit("error",st)}s.exports={destroy:function(ot,st){var at=this,lt=this._readableState&&this._readableState.destroyed,ut=this._writableState&&this._writableState.destroyed;return lt||ut?(st?st(ot):ot&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,tt.nextTick(it,this,ot)):tt.nextTick(it,this,ot)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(ot||null,function(dt){!st&&dt?at._writableState?at._writableState.errorEmitted?tt.nextTick(rt,at):(at._writableState.errorEmitted=!0,tt.nextTick(nt,at,dt)):tt.nextTick(nt,at,dt):st?(tt.nextTick(rt,at),st(dt)):tt.nextTick(rt,at)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(ot,st){var at=ot._readableState,lt=ot._writableState;at&&at.autoDestroy||lt&<.autoDestroy?ot.destroy(st):ot.emit("error",st)}}}).call(this,et(2))},function(s,o,et){var tt=et(35).codes.ERR_INVALID_OPT_VALUE;s.exports={getHighWaterMark:function(nt,rt,it,ot){var st=function(at,lt,ut){return at.highWaterMark!=null?at.highWaterMark:lt?at[ut]:null}(rt,ot,it);if(st!=null){if(!isFinite(st)||Math.floor(st)!==st||st<0)throw new tt(ot?it:"highWaterMark",st);return Math.floor(st)}return nt.objectMode?16:16384}}},function(s,o){},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(159)),nt=it(et(23)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)(function(ot,st,at,lt){return(0,tt.default)(st)(ot,(0,nt.default)(at),lt)},4),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){function nt(...rt){if(tt!==null){var it=tt;tt=null,it.apply(this,rt)}}return Object.assign(nt,tt),nt},s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){if(tt===null)throw new Error("Callback was already called.");var rt=tt;tt=null,rt.apply(this,nt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){var rt=et(37);s.exports=Ft;var it,ot=et(165);Ft.ReadableState=Ut,et(20).EventEmitter;var st=function(Dt,Et){return Dt.listeners(Et).length},at=et(70),lt=et(46).Buffer,ut=tt.Uint8Array||function(){},dt=Object.create(et(32));dt.inherits=et(7);var ht=et(166),ct=void 0;ct=ht&&ht.debuglog?ht.debuglog("stream"):function(){};var pt,ft=et(167),gt=et(71);dt.inherits(Ft,at);var yt=["error","close","destroy","pause","resume"];function Ut(Dt,Et){Dt=Dt||{};var Pt=Et instanceof(it=it||et(22));this.objectMode=!!Dt.objectMode,Pt&&(this.objectMode=this.objectMode||!!Dt.readableObjectMode);var zt=Dt.highWaterMark,en=Dt.readableHighWaterMark,Kt=this.objectMode?16:16384;this.highWaterMark=zt||zt===0?zt:Pt&&(en||en===0)?en:Kt,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new ft,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=Dt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Dt.encoding&&(pt||(pt=et(21).StringDecoder),this.decoder=new pt(Dt.encoding),this.encoding=Dt.encoding)}function Ft(Dt){if(it=it||et(22),!(this instanceof Ft))return new Ft(Dt);this._readableState=new Ut(Dt,this),this.readable=!0,Dt&&(typeof Dt.read=="function"&&(this._read=Dt.read),typeof Dt.destroy=="function"&&(this._destroy=Dt.destroy)),at.call(this)}function mt(Dt,Et,Pt,zt,en){var Kt,nn=Dt._readableState;return Et===null?(nn.reading=!1,function(Zt,jt){if(!jt.ended){if(jt.decoder){var Vt=jt.decoder.end();Vt&&Vt.length&&(jt.buffer.push(Vt),jt.length+=jt.objectMode?1:Vt.length)}jt.ended=!0,Lt(Zt)}}(Dt,nn)):(en||(Kt=function(Zt,jt){var Vt;It=jt,lt.isBuffer(It)||It instanceof ut||typeof jt=="string"||jt===void 0||Zt.objectMode||(Vt=new TypeError("Invalid non-string/buffer chunk"));var It;return Vt}(nn,Et)),Kt?Dt.emit("error",Kt):nn.objectMode||Et&&Et.length>0?(typeof Et=="string"||nn.objectMode||Object.getPrototypeOf(Et)===lt.prototype||(Et=function(Zt){return lt.from(Zt)}(Et)),zt?nn.endEmitted?Dt.emit("error",new Error("stream.unshift() after end event")):vt(Dt,nn,Et,!0):nn.ended?Dt.emit("error",new Error("stream.push() after EOF")):(nn.reading=!1,nn.decoder&&!Pt?(Et=nn.decoder.write(Et),nn.objectMode||Et.length!==0?vt(Dt,nn,Et,!1):St(Dt,nn)):vt(Dt,nn,Et,!1))):zt||(nn.reading=!1)),function(Zt){return!Zt.ended&&(Zt.needReadable||Zt.lengthEt.highWaterMark&&(Et.highWaterMark=function(Pt){return Pt>=8388608?Pt=8388608:(Pt--,Pt|=Pt>>>1,Pt|=Pt>>>2,Pt|=Pt>>>4,Pt|=Pt>>>8,Pt|=Pt>>>16,Pt++),Pt}(Dt)),Dt<=Et.length?Dt:Et.ended?Et.length:(Et.needReadable=!0,0))}function Lt(Dt){var Et=Dt._readableState;Et.needReadable=!1,Et.emittedReadable||(ct("emitReadable",Et.flowing),Et.emittedReadable=!0,Et.sync?rt.nextTick(Rt,Dt):Rt(Dt))}function Rt(Dt){ct("emit readable"),Dt.emit("readable"),Ct(Dt)}function St(Dt,Et){Et.readingMore||(Et.readingMore=!0,rt.nextTick(Tt,Dt,Et))}function Tt(Dt,Et){for(var Pt=Et.length;!Et.reading&&!Et.flowing&&!Et.ended&&Et.length=Et.length?(Pt=Et.decoder?Et.buffer.join(""):Et.buffer.length===1?Et.buffer.head.data:Et.buffer.concat(Et.length),Et.buffer.clear()):Pt=function(zt,en,Kt){var nn;return ztHt.length?Ht.length:Zt;if(qt===Ht.length?$t+=Ht:$t+=Ht.slice(0,Zt),(Zt-=qt)===0){qt===Ht.length?(++It,Vt.next?jt.head=Vt.next:jt.head=jt.tail=null):(jt.head=Vt,Vt.data=Ht.slice(qt));break}++It}return jt.length-=It,$t}(zt,en):function(Zt,jt){var Vt=lt.allocUnsafe(Zt),It=jt.head,$t=1;for(It.data.copy(Vt),Zt-=It.data.length;It=It.next;){var Ht=It.data,qt=Zt>Ht.length?Ht.length:Zt;if(Ht.copy(Vt,Vt.length-Zt,0,qt),(Zt-=qt)===0){qt===Ht.length?(++$t,It.next?jt.head=It.next:jt.head=jt.tail=null):(jt.head=It,It.data=Ht.slice(qt));break}++$t}return jt.length-=$t,Vt}(zt,en),nn}(Dt,Et.buffer,Et.decoder),Pt);var Pt}function Nt(Dt){var Et=Dt._readableState;if(Et.length>0)throw new Error('"endReadable()" called on non-empty stream');Et.endEmitted||(Et.ended=!0,rt.nextTick(Ot,Et,Dt))}function Ot(Dt,Et){Dt.endEmitted||Dt.length!==0||(Dt.endEmitted=!0,Et.readable=!1,Et.emit("end"))}function Jt(Dt,Et){for(var Pt=0,zt=Dt.length;Pt=Et.highWaterMark||Et.ended))return ct("read: emitReadable",Et.length,Et.ended),Et.length===0&&Et.ended?Nt(this):Lt(this),null;if((Dt=At(Dt,Et))===0&&Et.ended)return Et.length===0&&Nt(this),null;var zt,en=Et.needReadable;return ct("need readable",en),(Et.length===0||Et.length-Dt0?kt(Dt,Et):null)===null?(Et.needReadable=!0,Dt=0):Et.length-=Dt,Et.length===0&&(Et.ended||(Et.needReadable=!0),Pt!==Dt&&Et.ended&&Nt(this)),zt!==null&&this.emit("data",zt),zt},Ft.prototype._read=function(Dt){this.emit("error",new Error("_read() is not implemented"))},Ft.prototype.pipe=function(Dt,Et){var Pt=this,zt=this._readableState;switch(zt.pipesCount){case 0:zt.pipes=Dt;break;case 1:zt.pipes=[zt.pipes,Dt];break;default:zt.pipes.push(Dt)}zt.pipesCount+=1,ct("pipe count=%d opts=%j",zt.pipesCount,Et);var en=(!Et||Et.end!==!1)&&Dt!==nt.stdout&&Dt!==nt.stderr?nn:on;function Kt(Xt,dn){ct("onunpipe"),Xt===Pt&&dn&&dn.hasUnpiped===!1&&(dn.hasUnpiped=!0,ct("cleanup"),Dt.removeListener("close",Ht),Dt.removeListener("finish",qt),Dt.removeListener("drain",Zt),Dt.removeListener("error",$t),Dt.removeListener("unpipe",Kt),Pt.removeListener("end",nn),Pt.removeListener("end",on),Pt.removeListener("data",It),jt=!0,!zt.awaitDrain||Dt._writableState&&!Dt._writableState.needDrain||Zt())}function nn(){ct("onend"),Dt.end()}zt.endEmitted?rt.nextTick(en):Pt.once("end",en),Dt.on("unpipe",Kt);var Zt=function(Xt){return function(){var dn=Xt._readableState;ct("pipeOnDrain",dn.awaitDrain),dn.awaitDrain&&dn.awaitDrain--,dn.awaitDrain===0&&st(Xt,"data")&&(dn.flowing=!0,Ct(Xt))}}(Pt);Dt.on("drain",Zt);var jt=!1,Vt=!1;function It(Xt){ct("ondata"),Vt=!1,Dt.write(Xt)!==!1||Vt||((zt.pipesCount===1&&zt.pipes===Dt||zt.pipesCount>1&&Jt(zt.pipes,Dt)!==-1)&&!jt&&(ct("false write response, pause",Pt._readableState.awaitDrain),Pt._readableState.awaitDrain++,Vt=!0),Pt.pause())}function $t(Xt){ct("onerror",Xt),on(),Dt.removeListener("error",$t),st(Dt,"error")===0&&Dt.emit("error",Xt)}function Ht(){Dt.removeListener("finish",qt),on()}function qt(){ct("onfinish"),Dt.removeListener("close",Ht),on()}function on(){ct("unpipe"),Pt.unpipe(Dt)}return Pt.on("data",It),function(Xt,dn,_n){if(typeof Xt.prependListener=="function")return Xt.prependListener(dn,_n);Xt._events&&Xt._events[dn]?ot(Xt._events[dn])?Xt._events[dn].unshift(_n):Xt._events[dn]=[_n,Xt._events[dn]]:Xt.on(dn,_n)}(Dt,"error",$t),Dt.once("close",Ht),Dt.once("finish",qt),Dt.emit("pipe",Pt),zt.flowing||(ct("pipe resume"),Pt.resume()),Dt},Ft.prototype.unpipe=function(Dt){var Et=this._readableState,Pt={hasUnpiped:!1};if(Et.pipesCount===0)return this;if(Et.pipesCount===1)return Dt&&Dt!==Et.pipes||(Dt||(Dt=Et.pipes),Et.pipes=null,Et.pipesCount=0,Et.flowing=!1,Dt&&Dt.emit("unpipe",this,Pt)),this;if(!Dt){var zt=Et.pipes,en=Et.pipesCount;Et.pipes=null,Et.pipesCount=0,Et.flowing=!1;for(var Kt=0;Kt=0;Pt--)if(zt[Pt]!==en[Pt])return!1;for(Pt=zt.length-1;Pt>=0;Pt--)if(Et=zt[Pt],!Ft(Ct[Et],kt[Et],Nt,Ot))return!1;return!0}(Rt,St,Tt,Bt))}return Tt?Rt===St:Rt==St}function mt(Rt){return Object.prototype.toString.call(Rt)=="[object Arguments]"}function vt(Rt,St){if(!Rt||!St)return!1;if(Object.prototype.toString.call(St)=="[object RegExp]")return St.test(Rt);try{if(Rt instanceof St)return!0}catch{}return!Error.isPrototypeOf(St)&&St.call({},Rt)===!0}function At(Rt,St,Tt,Bt){var xt;if(typeof St!="function")throw new TypeError('"block" argument must be a function');typeof Tt=="string"&&(Bt=Tt,Tt=null),xt=function(Nt){var Ot;try{Nt()}catch(Jt){Ot=Jt}return Ot}(St),Bt=(Tt&&Tt.name?" ("+Tt.name+").":".")+(Bt?" "+Bt:"."),Rt&&!xt&&yt(xt,Tt,"Missing expected exception"+Bt);var Ct=typeof Bt=="string",kt=!Rt&&xt&&!Tt;if((!Rt&&ot.isError(xt)&&Ct&&vt(xt,Tt)||kt)&&yt(xt,Tt,"Got unwanted exception"+Bt),Rt&&xt&&Tt&&!vt(xt,Tt)||!Rt&&xt)throw xt}ht.AssertionError=function(Rt){this.name="AssertionError",this.actual=Rt.actual,this.expected=Rt.expected,this.operator=Rt.operator,Rt.message?(this.message=Rt.message,this.generatedMessage=!1):(this.message=function(Nt){return ft(gt(Nt.actual),128)+" "+Nt.operator+" "+ft(gt(Nt.expected),128)}(this),this.generatedMessage=!0);var St=Rt.stackStartFunction||yt;if(Error.captureStackTrace)Error.captureStackTrace(this,St);else{var Tt=new Error;if(Tt.stack){var Bt=Tt.stack,xt=pt(St),Ct=Bt.indexOf(` `+xt);if(Ct>=0){var kt=Bt.indexOf(` -`,Ct+1);Bt=Bt.substring(kt+1)}this.stack=Bt}}},ot.inherits(ht.AssertionError,Error),ht.fail=yt,ht.ok=Ut,ht.equal=function(Rt,St,Tt){Rt!=St&&yt(Rt,St,Tt,"==",ht.equal)},ht.notEqual=function(Rt,St,Tt){Rt==St&&yt(Rt,St,Tt,"!=",ht.notEqual)},ht.deepEqual=function(Rt,St,Tt){Ft(Rt,St,!1)||yt(Rt,St,Tt,"deepEqual",ht.deepEqual)},ht.deepStrictEqual=function(Rt,St,Tt){Ft(Rt,St,!0)||yt(Rt,St,Tt,"deepStrictEqual",ht.deepStrictEqual)},ht.notDeepEqual=function(Rt,St,Tt){Ft(Rt,St,!1)&&yt(Rt,St,Tt,"notDeepEqual",ht.notDeepEqual)},ht.notDeepStrictEqual=function Rt(St,Tt,Bt){Ft(St,Tt,!0)&&yt(St,Tt,Bt,"notDeepStrictEqual",Rt)},ht.strictEqual=function(Rt,St,Tt){Rt!==St&&yt(Rt,St,Tt,"===",ht.strictEqual)},ht.notStrictEqual=function(Rt,St,Tt){Rt===St&&yt(Rt,St,Tt,"!==",ht.notStrictEqual)},ht.throws=function(Rt,St,Tt){At(!0,Rt,St,Tt)},ht.doesNotThrow=function(Rt,St,Tt){At(!1,Rt,St,Tt)},ht.ifError=function(Rt){if(Rt)throw Rt},ht.strict=nt(function Rt(St,Tt){St||yt(St,!0,Tt,"==",Rt)},ht,{equal:ht.strictEqual,deepEqual:ht.deepStrictEqual,notEqual:ht.notStrictEqual,notDeepEqual:ht.notDeepStrictEqual}),ht.strict.strict=ht.strict;var Lt=Object.keys||function(Rt){var St=[];for(var Tt in Rt)st.call(Rt,Tt)&&St.push(Tt);return St}}).call(this,et(6))},function(s,o,et){s.exports=function(tt,nt,rt,it){for(var ot=65535&tt|0,st=tt>>>16&65535|0,at=0;rt!==0;){rt-=at=rt>2e3?2e3:rt;do st=st+(ot=ot+nt[it++]|0)|0;while(--at);ot%=65521,st%=65521}return ot|st<<16|0}},function(s,o,et){var tt=function(){for(var nt,rt=[],it=0;it<256;it++){nt=it;for(var ot=0;ot<8;ot++)nt=1&nt?3988292384^nt>>>1:nt>>>1;rt[it]=nt}return rt}();s.exports=function(nt,rt,it,ot){var st=tt,at=ot+it;nt^=-1;for(var lt=ot;lt>>8^st[255&(nt^rt[lt])];return-1^nt}},function(s,o,et){(function(tt,nt){var rt;s.exports=St,St.ReadableState=Rt,et(20).EventEmitter;var it=function(Zt,jt){return Zt.listeners(jt).length},ot=et(77),st=et(5).Buffer,at=(tt!==void 0?tt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){},lt,ut=et(184);lt=ut&&ut.debuglog?ut.debuglog("stream"):function(){};var dt,ht,ct,pt=et(185),ft=et(78),gt=et(79).getHighWaterMark,yt=et(24).codes,Ut=yt.ERR_INVALID_ARG_TYPE,Ft=yt.ERR_STREAM_PUSH_AFTER_EOF,mt=yt.ERR_METHOD_NOT_IMPLEMENTED,vt=yt.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;et(7)(St,ot);var At=ft.errorOrDestroy,Lt=["error","close","destroy","pause","resume"];function Rt(Zt,jt,Vt){rt=rt||et(25),Zt=Zt||{},typeof Vt!="boolean"&&(Vt=jt instanceof rt),this.objectMode=!!Zt.objectMode,Vt&&(this.objectMode=this.objectMode||!!Zt.readableObjectMode),this.highWaterMark=gt(this,Zt,"readableHighWaterMark",Vt),this.buffer=new pt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=Zt.emitClose!==!1,this.autoDestroy=!!Zt.autoDestroy,this.destroyed=!1,this.defaultEncoding=Zt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Zt.encoding&&(dt||(dt=et(21).StringDecoder),this.decoder=new dt(Zt.encoding),this.encoding=Zt.encoding)}function St(Zt){if(rt=rt||et(25),!(this instanceof St))return new St(Zt);var jt=this instanceof rt;this._readableState=new Rt(Zt,this,jt),this.readable=!0,Zt&&(typeof Zt.read=="function"&&(this._read=Zt.read),typeof Zt.destroy=="function"&&(this._destroy=Zt.destroy)),ot.call(this)}function Tt(Zt,jt,Vt,It,$t){lt("readableAddChunk",jt);var Ht,qt=Zt._readableState;if(jt===null)qt.reading=!1,function(on,Xt){if(lt("onEofChunk"),!Xt.ended){if(Xt.decoder){var dn=Xt.decoder.end();dn&&dn.length&&(Xt.buffer.push(dn),Xt.length+=Xt.objectMode?1:dn.length)}Xt.ended=!0,Xt.sync?Ct(on):(Xt.needReadable=!1,Xt.emittedReadable||(Xt.emittedReadable=!0,kt(on)))}}(Zt,qt);else if($t||(Ht=function(on,Xt){var dn;_n=Xt,st.isBuffer(_n)||_n instanceof at||typeof Xt=="string"||Xt===void 0||on.objectMode||(dn=new Ut("chunk",["string","Buffer","Uint8Array"],Xt));var _n;return dn}(qt,jt)),Ht)At(Zt,Ht);else if(qt.objectMode||jt&&jt.length>0)if(typeof jt=="string"||qt.objectMode||Object.getPrototypeOf(jt)===st.prototype||(jt=function(on){return st.from(on)}(jt)),It)qt.endEmitted?At(Zt,new vt):Bt(Zt,qt,jt,!0);else if(qt.ended)At(Zt,new Ft);else{if(qt.destroyed)return!1;qt.reading=!1,qt.decoder&&!Vt?(jt=qt.decoder.write(jt),qt.objectMode||jt.length!==0?Bt(Zt,qt,jt,!1):Nt(Zt,qt)):Bt(Zt,qt,jt,!1)}else It||(qt.reading=!1,Nt(Zt,qt));return!qt.ended&&(qt.lengthjt.highWaterMark&&(jt.highWaterMark=function(Vt){return Vt>=1073741824?Vt=1073741824:(Vt--,Vt|=Vt>>>1,Vt|=Vt>>>2,Vt|=Vt>>>4,Vt|=Vt>>>8,Vt|=Vt>>>16,Vt++),Vt}(Zt)),Zt<=jt.length?Zt:jt.ended?jt.length:(jt.needReadable=!0,0))}function Ct(Zt){var jt=Zt._readableState;lt("emitReadable",jt.needReadable,jt.emittedReadable),jt.needReadable=!1,jt.emittedReadable||(lt("emitReadable",jt.flowing),jt.emittedReadable=!0,nt.nextTick(kt,Zt))}function kt(Zt){var jt=Zt._readableState;lt("emitReadable_",jt.destroyed,jt.length,jt.ended),jt.destroyed||!jt.length&&!jt.ended||(Zt.emit("readable"),jt.emittedReadable=!1),jt.needReadable=!jt.flowing&&!jt.ended&&jt.length<=jt.highWaterMark,Pt(Zt)}function Nt(Zt,jt){jt.readingMore||(jt.readingMore=!0,nt.nextTick(Ot,Zt,jt))}function Ot(Zt,jt){for(;!jt.reading&&!jt.ended&&(jt.length0,jt.resumeScheduled&&!jt.paused?jt.flowing=!0:Zt.listenerCount("data")>0&&Zt.resume()}function Dt(Zt){lt("readable nexttick read 0"),Zt.read(0)}function Et(Zt,jt){lt("resume",jt.reading),jt.reading||Zt.read(0),jt.resumeScheduled=!1,Zt.emit("resume"),Pt(Zt),jt.flowing&&!jt.reading&&Zt.read(0)}function Pt(Zt){var jt=Zt._readableState;for(lt("flow",jt.flowing);jt.flowing&&Zt.read()!==null;);}function zt(Zt,jt){return jt.length===0?null:(jt.objectMode?Vt=jt.buffer.shift():!Zt||Zt>=jt.length?(Vt=jt.decoder?jt.buffer.join(""):jt.buffer.length===1?jt.buffer.first():jt.buffer.concat(jt.length),jt.buffer.clear()):Vt=jt.buffer.consume(Zt,jt.decoder),Vt);var Vt}function en(Zt){var jt=Zt._readableState;lt("endReadable",jt.endEmitted),jt.endEmitted||(jt.ended=!0,nt.nextTick(Kt,jt,Zt))}function Kt(Zt,jt){if(lt("endReadableNT",Zt.endEmitted,Zt.length),!Zt.endEmitted&&Zt.length===0&&(Zt.endEmitted=!0,jt.readable=!1,jt.emit("end"),Zt.autoDestroy)){var Vt=jt._writableState;(!Vt||Vt.autoDestroy&&Vt.finished)&&jt.destroy()}}function nn(Zt,jt){for(var Vt=0,It=Zt.length;Vt=jt.highWaterMark:jt.length>0)||jt.ended))return lt("read: emitReadable",jt.length,jt.ended),jt.length===0&&jt.ended?en(this):Ct(this),null;if((Zt=xt(Zt,jt))===0&&jt.ended)return jt.length===0&&en(this),null;var It,$t=jt.needReadable;return lt("need readable",$t),(jt.length===0||jt.length-Zt0?zt(Zt,jt):null)===null?(jt.needReadable=jt.length<=jt.highWaterMark,Zt=0):(jt.length-=Zt,jt.awaitDrain=0),jt.length===0&&(jt.ended||(jt.needReadable=!0),Vt!==Zt&&jt.ended&&en(this)),It!==null&&this.emit("data",It),It},St.prototype._read=function(Zt){At(this,new mt("_read()"))},St.prototype.pipe=function(Zt,jt){var Vt=this,It=this._readableState;switch(It.pipesCount){case 0:It.pipes=Zt;break;case 1:It.pipes=[It.pipes,Zt];break;default:It.pipes.push(Zt)}It.pipesCount+=1,lt("pipe count=%d opts=%j",It.pipesCount,jt);var $t=(!jt||jt.end!==!1)&&Zt!==nt.stdout&&Zt!==nt.stderr?qt:On;function Ht(gn,hn){lt("onunpipe"),gn===Vt&&hn&&hn.hasUnpiped===!1&&(hn.hasUnpiped=!0,lt("cleanup"),Zt.removeListener("close",Fn),Zt.removeListener("finish",Un),Zt.removeListener("drain",on),Zt.removeListener("error",_n),Zt.removeListener("unpipe",Ht),Vt.removeListener("end",qt),Vt.removeListener("end",On),Vt.removeListener("data",dn),Xt=!0,!It.awaitDrain||Zt._writableState&&!Zt._writableState.needDrain||on())}function qt(){lt("onend"),Zt.end()}It.endEmitted?nt.nextTick($t):Vt.once("end",$t),Zt.on("unpipe",Ht);var on=function(gn){return function(){var hn=gn._readableState;lt("pipeOnDrain",hn.awaitDrain),hn.awaitDrain&&hn.awaitDrain--,hn.awaitDrain===0&&it(gn,"data")&&(hn.flowing=!0,Pt(gn))}}(Vt);Zt.on("drain",on);var Xt=!1;function dn(gn){lt("ondata");var hn=Zt.write(gn);lt("dest.write",hn),hn===!1&&((It.pipesCount===1&&It.pipes===Zt||It.pipesCount>1&&nn(It.pipes,Zt)!==-1)&&!Xt&&(lt("false write response, pause",It.awaitDrain),It.awaitDrain++),Vt.pause())}function _n(gn){lt("onerror",gn),On(),Zt.removeListener("error",_n),it(Zt,"error")===0&&At(Zt,gn)}function Fn(){Zt.removeListener("finish",Un),On()}function Un(){lt("onfinish"),Zt.removeListener("close",Fn),On()}function On(){lt("unpipe"),Vt.unpipe(Zt)}return Vt.on("data",dn),function(gn,hn,wn){if(typeof gn.prependListener=="function")return gn.prependListener(hn,wn);gn._events&&gn._events[hn]?Array.isArray(gn._events[hn])?gn._events[hn].unshift(wn):gn._events[hn]=[wn,gn._events[hn]]:gn.on(hn,wn)}(Zt,"error",_n),Zt.once("close",Fn),Zt.once("finish",Un),Zt.emit("pipe",Vt),It.flowing||(lt("pipe resume"),Vt.resume()),Zt},St.prototype.unpipe=function(Zt){var jt=this._readableState,Vt={hasUnpiped:!1};if(jt.pipesCount===0)return this;if(jt.pipesCount===1)return Zt&&Zt!==jt.pipes||(Zt||(Zt=jt.pipes),jt.pipes=null,jt.pipesCount=0,jt.flowing=!1,Zt&&Zt.emit("unpipe",this,Vt)),this;if(!Zt){var It=jt.pipes,$t=jt.pipesCount;jt.pipes=null,jt.pipesCount=0,jt.flowing=!1;for(var Ht=0;Ht<$t;Ht++)It[Ht].emit("unpipe",this,{hasUnpiped:!1});return this}var qt=nn(jt.pipes,Zt);return qt===-1||(jt.pipes.splice(qt,1),jt.pipesCount-=1,jt.pipesCount===1&&(jt.pipes=jt.pipes[0]),Zt.emit("unpipe",this,Vt)),this},St.prototype.on=function(Zt,jt){var Vt=ot.prototype.on.call(this,Zt,jt),It=this._readableState;return Zt==="data"?(It.readableListening=this.listenerCount("readable")>0,It.flowing!==!1&&this.resume()):Zt==="readable"&&(It.endEmitted||It.readableListening||(It.readableListening=It.needReadable=!0,It.flowing=!1,It.emittedReadable=!1,lt("on readable",It.length,It.reading),It.length?Ct(this):It.reading||nt.nextTick(Dt,this))),Vt},St.prototype.addListener=St.prototype.on,St.prototype.removeListener=function(Zt,jt){var Vt=ot.prototype.removeListener.call(this,Zt,jt);return Zt==="readable"&&nt.nextTick(Wt,this),Vt},St.prototype.removeAllListeners=function(Zt){var jt=ot.prototype.removeAllListeners.apply(this,arguments);return Zt!=="readable"&&Zt!==void 0||nt.nextTick(Wt,this),jt},St.prototype.resume=function(){var Zt=this._readableState;return Zt.flowing||(lt("resume"),Zt.flowing=!Zt.readableListening,function(jt,Vt){Vt.resumeScheduled||(Vt.resumeScheduled=!0,nt.nextTick(Et,jt,Vt))}(this,Zt)),Zt.paused=!1,this},St.prototype.pause=function(){return lt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(lt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},St.prototype.wrap=function(Zt){var jt=this,Vt=this._readableState,It=!1;for(var $t in Zt.on("end",function(){if(lt("wrapped end"),Vt.decoder&&!Vt.ended){var qt=Vt.decoder.end();qt&&qt.length&&jt.push(qt)}jt.push(null)}),Zt.on("data",function(qt){lt("wrapped data"),Vt.decoder&&(qt=Vt.decoder.write(qt)),Vt.objectMode&&qt==null||(Vt.objectMode||qt&&qt.length)&&(jt.push(qt)||(It=!0,Zt.pause()))}),Zt)this[$t]===void 0&&typeof Zt[$t]=="function"&&(this[$t]=function(qt){return function(){return Zt[qt].apply(Zt,arguments)}}($t));for(var Ht=0;Ht-1))throw new vt(Ot);return this._writableState.defaultEncoding=Ot,this},Object.defineProperty(St.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(St.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),St.prototype._write=function(Ot,Wt,Dt){Dt(new ft("_write()"))},St.prototype._writev=null,St.prototype.end=function(Ot,Wt,Dt){var Et=this._writableState;return typeof Ot=="function"?(Dt=Ot,Ot=null,Wt=null):typeof Wt=="function"&&(Dt=Wt,Wt=null),Ot!=null&&this.write(Ot,Wt),Et.corked&&(Et.corked=1,this.uncork()),Et.ending||function(Pt,zt,en){zt.ending=!0,Nt(Pt,zt),en&&(zt.finished?nt.nextTick(en):Pt.once("finish",en)),zt.ended=!0,Pt.writable=!1}(this,Et,Dt),this},Object.defineProperty(St.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(St.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(Ot){this._writableState&&(this._writableState.destroyed=Ot)}}),St.prototype.destroy=dt.destroy,St.prototype._undestroy=dt.undestroy,St.prototype._destroy=function(Ot,Wt){Wt(Ot)}}).call(this,et(6),et(2))},function(s,o,et){s.exports=lt;var tt=et(24).codes,nt=tt.ERR_METHOD_NOT_IMPLEMENTED,rt=tt.ERR_MULTIPLE_CALLBACK,it=tt.ERR_TRANSFORM_ALREADY_TRANSFORMING,ot=tt.ERR_TRANSFORM_WITH_LENGTH_0,st=et(25);function at(ht,ct){var pt=this._transformState;pt.transforming=!1;var ft=pt.writecb;if(ft===null)return this.emit("error",new rt);pt.writechunk=null,pt.writecb=null,ct!=null&&this.push(ct),ft(ht);var gt=this._readableState;gt.reading=!1,(gt.needReadable||gt.lengthut._pos){var ct=ht.substr(ut._pos);if(ut._charset==="x-user-defined"){for(var pt=new nt(ct.length),ft=0;ftut._pos&&(ut.push(new nt(new Uint8Array(gt.result.slice(ut._pos)))),ut._pos=gt.result.byteLength)},gt.onload=function(){ut.push(null)},gt.readAsArrayBuffer(ht)}ut._xhr.readyState===at.DONE&&ut._mode!=="ms-stream"&&ut.push(null)}}).call(this,et(2),et(5).Buffer,et(6))},function(s,o,et){var tt=et(199),nt=et(201);function rt(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}o.parse=Ut,o.resolve=function(Ft,mt){return Ut(Ft,!1,!0).resolve(mt)},o.resolveObject=function(Ft,mt){return Ft?Ut(Ft,!1,!0).resolveObject(mt):mt},o.format=function(Ft){return nt.isString(Ft)&&(Ft=Ut(Ft)),Ft instanceof rt?Ft.format():rt.prototype.format.call(Ft)},o.Url=rt;var it=/^([a-z0-9.+-]+:)/i,ot=/:[0-9]*$/,st=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,at=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` -`," "]),lt=["'"].concat(at),ut=["%","/","?",";","#"].concat(lt),dt=["/","?","#"],ht=/^[+a-z0-9A-Z_-]{0,63}$/,ct=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,pt={javascript:!0,"javascript:":!0},ft={javascript:!0,"javascript:":!0},gt={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},yt=et(202);function Ut(Ft,mt,vt){if(Ft&&nt.isObject(Ft)&&Ft instanceof rt)return Ft;var At=new rt;return At.parse(Ft,mt,vt),At}rt.prototype.parse=function(Ft,mt,vt){if(!nt.isString(Ft))throw new TypeError("Parameter 'url' must be a string, not "+typeof Ft);var At=Ft.indexOf("?"),Lt=At!==-1&&At127?Kt+="x":Kt+=en[nn];if(!Kt.match(ht)){var jt=Pt.slice(0,Wt),Vt=Pt.slice(Wt+1),It=en.match(ct);It&&(jt.push(It[1]),Vt.unshift(It[2])),Vt.length&&(St="/"+Vt.join(".")+St),this.hostname=jt.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),Et||(this.hostname=tt.toASCII(this.hostname));var $t=this.port?":"+this.port:"",Ht=this.hostname||"";this.host=Ht+$t,this.href+=this.host,Et&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),St[0]!=="/"&&(St="/"+St))}if(!pt[xt])for(Wt=0,zt=lt.length;Wt0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),vt.search=Ft.search,vt.query=Ft.query,nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.href=vt.format(),vt;if(!en.length)return vt.pathname=null,vt.search?vt.path="/"+vt.search:vt.path=null,vt.href=vt.format(),vt;for(var nn=en.slice(-1)[0],Zt=(vt.host||Ft.host||en.length>1)&&(nn==="."||nn==="..")||nn==="",jt=0,Vt=en.length;Vt>=0;Vt--)(nn=en[Vt])==="."?en.splice(Vt,1):nn===".."?(en.splice(Vt,1),jt++):jt&&(en.splice(Vt,1),jt--);if(!Pt&&!zt)for(;jt--;jt)en.unshift("..");!Pt||en[0]===""||en[0]&&en[0].charAt(0)==="/"||en.unshift(""),Zt&&en.join("/").substr(-1)!=="/"&&en.push("");var It,$t=en[0]===""||en[0]&&en[0].charAt(0)==="/";return Kt&&(vt.hostname=vt.host=$t?"":en.length?en.shift():"",(It=!!(vt.host&&vt.host.indexOf("@")>0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),(Pt=Pt||vt.host&&en.length)&&!$t&&en.unshift(""),en.length?vt.pathname=en.join("/"):(vt.pathname=null,vt.path=null),nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.auth=Ft.auth||vt.auth,vt.slashes=vt.slashes||Ft.slashes,vt.href=vt.format(),vt},rt.prototype.parseHost=function(){var Ft=this.host,mt=ot.exec(Ft);mt&&((mt=mt[0])!==":"&&(this.port=mt.substr(1)),Ft=Ft.substr(0,Ft.length-mt.length)),Ft&&(this.hostname=Ft)}},function(s,o,et){const tt=nt=>nt!==null&&typeof nt=="object"&&typeof nt.pipe=="function";tt.writable=nt=>tt(nt)&&nt.writable!==!1&&typeof nt._write=="function"&&typeof nt._writableState=="object",tt.readable=nt=>tt(nt)&&nt.readable!==!1&&typeof nt._read=="function"&&typeof nt._readableState=="object",tt.duplex=nt=>tt.writable(nt)&&tt.readable(nt),tt.transform=nt=>tt.duplex(nt)&&typeof nt._transform=="function"&&typeof nt._transformState=="object",s.exports=tt},function(s,o,et){function tt(gt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(yt){return typeof yt}:function(yt){return yt&&typeof Symbol=="function"&&yt.constructor===Symbol&&yt!==Symbol.prototype?"symbol":typeof yt})(gt)}function nt(gt,yt){for(var Ut=0;Ut"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var Ut,Ft=ut(gt);if(yt){var mt=ut(this).constructor;Ut=Reflect.construct(Ft,arguments,mt)}else Ut=Ft.apply(this,arguments);return lt(this,Ut)}}function lt(gt,yt){if(yt&&(tt(yt)==="object"||typeof yt=="function"))return yt;if(yt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(Ut){if(Ut===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ut}(gt)}function ut(gt){return(ut=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(yt){return yt.__proto__||Object.getPrototypeOf(yt)})(gt)}var dt=et(4).LEVEL,ht=et(49),ct=et(207),pt=et(39)("winston:create-logger");function ft(gt){return"is"+gt.charAt(0).toUpperCase()+gt.slice(1)+"Enabled"}s.exports=function(){var gt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};gt.levels=gt.levels||ht.npm.levels;var yt=function(Ft){ot(vt,Ft);var mt=at(vt);function vt(At){return it(this,vt),mt.call(this,At)}return rt(vt)}(ct),Ut=new yt(gt);return Object.keys(gt.levels).forEach(function(Ft){pt('Define prototype method for "%s"',Ft),Ft!=="log"?(yt.prototype[Ft]=function(){for(var mt=this||Ut,vt=arguments.length,At=new Array(vt),Lt=0;Lt>>16&65535|0,at=0;rt!==0;){rt-=at=rt>2e3?2e3:rt;do st=st+(ot=ot+nt[it++]|0)|0;while(--at);ot%=65521,st%=65521}return ot|st<<16|0}},function(s,o,et){var tt=function(){for(var nt,rt=[],it=0;it<256;it++){nt=it;for(var ot=0;ot<8;ot++)nt=1&nt?3988292384^nt>>>1:nt>>>1;rt[it]=nt}return rt}();s.exports=function(nt,rt,it,ot){var st=tt,at=ot+it;nt^=-1;for(var lt=ot;lt>>8^st[255&(nt^rt[lt])];return-1^nt}},function(s,o,et){(function(tt,nt){var rt;s.exports=St,St.ReadableState=Rt,et(20).EventEmitter;var it=function(Zt,jt){return Zt.listeners(jt).length},ot=et(77),st=et(5).Buffer,at=(tt!==void 0?tt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){},lt,ut=et(184);lt=ut&&ut.debuglog?ut.debuglog("stream"):function(){};var dt,ht,ct,pt=et(185),ft=et(78),gt=et(79).getHighWaterMark,yt=et(24).codes,Ut=yt.ERR_INVALID_ARG_TYPE,Ft=yt.ERR_STREAM_PUSH_AFTER_EOF,mt=yt.ERR_METHOD_NOT_IMPLEMENTED,vt=yt.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;et(7)(St,ot);var At=ft.errorOrDestroy,Lt=["error","close","destroy","pause","resume"];function Rt(Zt,jt,Vt){rt=rt||et(25),Zt=Zt||{},typeof Vt!="boolean"&&(Vt=jt instanceof rt),this.objectMode=!!Zt.objectMode,Vt&&(this.objectMode=this.objectMode||!!Zt.readableObjectMode),this.highWaterMark=gt(this,Zt,"readableHighWaterMark",Vt),this.buffer=new pt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=Zt.emitClose!==!1,this.autoDestroy=!!Zt.autoDestroy,this.destroyed=!1,this.defaultEncoding=Zt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Zt.encoding&&(dt||(dt=et(21).StringDecoder),this.decoder=new dt(Zt.encoding),this.encoding=Zt.encoding)}function St(Zt){if(rt=rt||et(25),!(this instanceof St))return new St(Zt);var jt=this instanceof rt;this._readableState=new Rt(Zt,this,jt),this.readable=!0,Zt&&(typeof Zt.read=="function"&&(this._read=Zt.read),typeof Zt.destroy=="function"&&(this._destroy=Zt.destroy)),ot.call(this)}function Tt(Zt,jt,Vt,It,$t){lt("readableAddChunk",jt);var Ht,qt=Zt._readableState;if(jt===null)qt.reading=!1,function(on,Xt){if(lt("onEofChunk"),!Xt.ended){if(Xt.decoder){var dn=Xt.decoder.end();dn&&dn.length&&(Xt.buffer.push(dn),Xt.length+=Xt.objectMode?1:dn.length)}Xt.ended=!0,Xt.sync?Ct(on):(Xt.needReadable=!1,Xt.emittedReadable||(Xt.emittedReadable=!0,kt(on)))}}(Zt,qt);else if($t||(Ht=function(on,Xt){var dn;_n=Xt,st.isBuffer(_n)||_n instanceof at||typeof Xt=="string"||Xt===void 0||on.objectMode||(dn=new Ut("chunk",["string","Buffer","Uint8Array"],Xt));var _n;return dn}(qt,jt)),Ht)At(Zt,Ht);else if(qt.objectMode||jt&&jt.length>0)if(typeof jt=="string"||qt.objectMode||Object.getPrototypeOf(jt)===st.prototype||(jt=function(on){return st.from(on)}(jt)),It)qt.endEmitted?At(Zt,new vt):Bt(Zt,qt,jt,!0);else if(qt.ended)At(Zt,new Ft);else{if(qt.destroyed)return!1;qt.reading=!1,qt.decoder&&!Vt?(jt=qt.decoder.write(jt),qt.objectMode||jt.length!==0?Bt(Zt,qt,jt,!1):Nt(Zt,qt)):Bt(Zt,qt,jt,!1)}else It||(qt.reading=!1,Nt(Zt,qt));return!qt.ended&&(qt.lengthjt.highWaterMark&&(jt.highWaterMark=function(Vt){return Vt>=1073741824?Vt=1073741824:(Vt--,Vt|=Vt>>>1,Vt|=Vt>>>2,Vt|=Vt>>>4,Vt|=Vt>>>8,Vt|=Vt>>>16,Vt++),Vt}(Zt)),Zt<=jt.length?Zt:jt.ended?jt.length:(jt.needReadable=!0,0))}function Ct(Zt){var jt=Zt._readableState;lt("emitReadable",jt.needReadable,jt.emittedReadable),jt.needReadable=!1,jt.emittedReadable||(lt("emitReadable",jt.flowing),jt.emittedReadable=!0,nt.nextTick(kt,Zt))}function kt(Zt){var jt=Zt._readableState;lt("emitReadable_",jt.destroyed,jt.length,jt.ended),jt.destroyed||!jt.length&&!jt.ended||(Zt.emit("readable"),jt.emittedReadable=!1),jt.needReadable=!jt.flowing&&!jt.ended&&jt.length<=jt.highWaterMark,Pt(Zt)}function Nt(Zt,jt){jt.readingMore||(jt.readingMore=!0,nt.nextTick(Ot,Zt,jt))}function Ot(Zt,jt){for(;!jt.reading&&!jt.ended&&(jt.length0,jt.resumeScheduled&&!jt.paused?jt.flowing=!0:Zt.listenerCount("data")>0&&Zt.resume()}function Dt(Zt){lt("readable nexttick read 0"),Zt.read(0)}function Et(Zt,jt){lt("resume",jt.reading),jt.reading||Zt.read(0),jt.resumeScheduled=!1,Zt.emit("resume"),Pt(Zt),jt.flowing&&!jt.reading&&Zt.read(0)}function Pt(Zt){var jt=Zt._readableState;for(lt("flow",jt.flowing);jt.flowing&&Zt.read()!==null;);}function zt(Zt,jt){return jt.length===0?null:(jt.objectMode?Vt=jt.buffer.shift():!Zt||Zt>=jt.length?(Vt=jt.decoder?jt.buffer.join(""):jt.buffer.length===1?jt.buffer.first():jt.buffer.concat(jt.length),jt.buffer.clear()):Vt=jt.buffer.consume(Zt,jt.decoder),Vt);var Vt}function en(Zt){var jt=Zt._readableState;lt("endReadable",jt.endEmitted),jt.endEmitted||(jt.ended=!0,nt.nextTick(Kt,jt,Zt))}function Kt(Zt,jt){if(lt("endReadableNT",Zt.endEmitted,Zt.length),!Zt.endEmitted&&Zt.length===0&&(Zt.endEmitted=!0,jt.readable=!1,jt.emit("end"),Zt.autoDestroy)){var Vt=jt._writableState;(!Vt||Vt.autoDestroy&&Vt.finished)&&jt.destroy()}}function nn(Zt,jt){for(var Vt=0,It=Zt.length;Vt=jt.highWaterMark:jt.length>0)||jt.ended))return lt("read: emitReadable",jt.length,jt.ended),jt.length===0&&jt.ended?en(this):Ct(this),null;if((Zt=xt(Zt,jt))===0&&jt.ended)return jt.length===0&&en(this),null;var It,$t=jt.needReadable;return lt("need readable",$t),(jt.length===0||jt.length-Zt0?zt(Zt,jt):null)===null?(jt.needReadable=jt.length<=jt.highWaterMark,Zt=0):(jt.length-=Zt,jt.awaitDrain=0),jt.length===0&&(jt.ended||(jt.needReadable=!0),Vt!==Zt&&jt.ended&&en(this)),It!==null&&this.emit("data",It),It},St.prototype._read=function(Zt){At(this,new mt("_read()"))},St.prototype.pipe=function(Zt,jt){var Vt=this,It=this._readableState;switch(It.pipesCount){case 0:It.pipes=Zt;break;case 1:It.pipes=[It.pipes,Zt];break;default:It.pipes.push(Zt)}It.pipesCount+=1,lt("pipe count=%d opts=%j",It.pipesCount,jt);var $t=(!jt||jt.end!==!1)&&Zt!==nt.stdout&&Zt!==nt.stderr?qt:On;function Ht(gn,hn){lt("onunpipe"),gn===Vt&&hn&&hn.hasUnpiped===!1&&(hn.hasUnpiped=!0,lt("cleanup"),Zt.removeListener("close",Fn),Zt.removeListener("finish",Un),Zt.removeListener("drain",on),Zt.removeListener("error",_n),Zt.removeListener("unpipe",Ht),Vt.removeListener("end",qt),Vt.removeListener("end",On),Vt.removeListener("data",dn),Xt=!0,!It.awaitDrain||Zt._writableState&&!Zt._writableState.needDrain||on())}function qt(){lt("onend"),Zt.end()}It.endEmitted?nt.nextTick($t):Vt.once("end",$t),Zt.on("unpipe",Ht);var on=function(gn){return function(){var hn=gn._readableState;lt("pipeOnDrain",hn.awaitDrain),hn.awaitDrain&&hn.awaitDrain--,hn.awaitDrain===0&&it(gn,"data")&&(hn.flowing=!0,Pt(gn))}}(Vt);Zt.on("drain",on);var Xt=!1;function dn(gn){lt("ondata");var hn=Zt.write(gn);lt("dest.write",hn),hn===!1&&((It.pipesCount===1&&It.pipes===Zt||It.pipesCount>1&&nn(It.pipes,Zt)!==-1)&&!Xt&&(lt("false write response, pause",It.awaitDrain),It.awaitDrain++),Vt.pause())}function _n(gn){lt("onerror",gn),On(),Zt.removeListener("error",_n),it(Zt,"error")===0&&At(Zt,gn)}function Fn(){Zt.removeListener("finish",Un),On()}function Un(){lt("onfinish"),Zt.removeListener("close",Fn),On()}function On(){lt("unpipe"),Vt.unpipe(Zt)}return Vt.on("data",dn),function(gn,hn,wn){if(typeof gn.prependListener=="function")return gn.prependListener(hn,wn);gn._events&&gn._events[hn]?Array.isArray(gn._events[hn])?gn._events[hn].unshift(wn):gn._events[hn]=[wn,gn._events[hn]]:gn.on(hn,wn)}(Zt,"error",_n),Zt.once("close",Fn),Zt.once("finish",Un),Zt.emit("pipe",Vt),It.flowing||(lt("pipe resume"),Vt.resume()),Zt},St.prototype.unpipe=function(Zt){var jt=this._readableState,Vt={hasUnpiped:!1};if(jt.pipesCount===0)return this;if(jt.pipesCount===1)return Zt&&Zt!==jt.pipes||(Zt||(Zt=jt.pipes),jt.pipes=null,jt.pipesCount=0,jt.flowing=!1,Zt&&Zt.emit("unpipe",this,Vt)),this;if(!Zt){var It=jt.pipes,$t=jt.pipesCount;jt.pipes=null,jt.pipesCount=0,jt.flowing=!1;for(var Ht=0;Ht<$t;Ht++)It[Ht].emit("unpipe",this,{hasUnpiped:!1});return this}var qt=nn(jt.pipes,Zt);return qt===-1||(jt.pipes.splice(qt,1),jt.pipesCount-=1,jt.pipesCount===1&&(jt.pipes=jt.pipes[0]),Zt.emit("unpipe",this,Vt)),this},St.prototype.on=function(Zt,jt){var Vt=ot.prototype.on.call(this,Zt,jt),It=this._readableState;return Zt==="data"?(It.readableListening=this.listenerCount("readable")>0,It.flowing!==!1&&this.resume()):Zt==="readable"&&(It.endEmitted||It.readableListening||(It.readableListening=It.needReadable=!0,It.flowing=!1,It.emittedReadable=!1,lt("on readable",It.length,It.reading),It.length?Ct(this):It.reading||nt.nextTick(Dt,this))),Vt},St.prototype.addListener=St.prototype.on,St.prototype.removeListener=function(Zt,jt){var Vt=ot.prototype.removeListener.call(this,Zt,jt);return Zt==="readable"&&nt.nextTick(Jt,this),Vt},St.prototype.removeAllListeners=function(Zt){var jt=ot.prototype.removeAllListeners.apply(this,arguments);return Zt!=="readable"&&Zt!==void 0||nt.nextTick(Jt,this),jt},St.prototype.resume=function(){var Zt=this._readableState;return Zt.flowing||(lt("resume"),Zt.flowing=!Zt.readableListening,function(jt,Vt){Vt.resumeScheduled||(Vt.resumeScheduled=!0,nt.nextTick(Et,jt,Vt))}(this,Zt)),Zt.paused=!1,this},St.prototype.pause=function(){return lt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(lt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},St.prototype.wrap=function(Zt){var jt=this,Vt=this._readableState,It=!1;for(var $t in Zt.on("end",function(){if(lt("wrapped end"),Vt.decoder&&!Vt.ended){var qt=Vt.decoder.end();qt&&qt.length&&jt.push(qt)}jt.push(null)}),Zt.on("data",function(qt){lt("wrapped data"),Vt.decoder&&(qt=Vt.decoder.write(qt)),Vt.objectMode&&qt==null||(Vt.objectMode||qt&&qt.length)&&(jt.push(qt)||(It=!0,Zt.pause()))}),Zt)this[$t]===void 0&&typeof Zt[$t]=="function"&&(this[$t]=function(qt){return function(){return Zt[qt].apply(Zt,arguments)}}($t));for(var Ht=0;Ht-1))throw new vt(Ot);return this._writableState.defaultEncoding=Ot,this},Object.defineProperty(St.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(St.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),St.prototype._write=function(Ot,Jt,Dt){Dt(new ft("_write()"))},St.prototype._writev=null,St.prototype.end=function(Ot,Jt,Dt){var Et=this._writableState;return typeof Ot=="function"?(Dt=Ot,Ot=null,Jt=null):typeof Jt=="function"&&(Dt=Jt,Jt=null),Ot!=null&&this.write(Ot,Jt),Et.corked&&(Et.corked=1,this.uncork()),Et.ending||function(Pt,zt,en){zt.ending=!0,Nt(Pt,zt),en&&(zt.finished?nt.nextTick(en):Pt.once("finish",en)),zt.ended=!0,Pt.writable=!1}(this,Et,Dt),this},Object.defineProperty(St.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(St.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(Ot){this._writableState&&(this._writableState.destroyed=Ot)}}),St.prototype.destroy=dt.destroy,St.prototype._undestroy=dt.undestroy,St.prototype._destroy=function(Ot,Jt){Jt(Ot)}}).call(this,et(6),et(2))},function(s,o,et){s.exports=lt;var tt=et(24).codes,nt=tt.ERR_METHOD_NOT_IMPLEMENTED,rt=tt.ERR_MULTIPLE_CALLBACK,it=tt.ERR_TRANSFORM_ALREADY_TRANSFORMING,ot=tt.ERR_TRANSFORM_WITH_LENGTH_0,st=et(25);function at(ht,ct){var pt=this._transformState;pt.transforming=!1;var ft=pt.writecb;if(ft===null)return this.emit("error",new rt);pt.writechunk=null,pt.writecb=null,ct!=null&&this.push(ct),ft(ht);var gt=this._readableState;gt.reading=!1,(gt.needReadable||gt.lengthut._pos){var ct=ht.substr(ut._pos);if(ut._charset==="x-user-defined"){for(var pt=new nt(ct.length),ft=0;ftut._pos&&(ut.push(new nt(new Uint8Array(gt.result.slice(ut._pos)))),ut._pos=gt.result.byteLength)},gt.onload=function(){ut.push(null)},gt.readAsArrayBuffer(ht)}ut._xhr.readyState===at.DONE&&ut._mode!=="ms-stream"&&ut.push(null)}}).call(this,et(2),et(5).Buffer,et(6))},function(s,o,et){var tt=et(199),nt=et(201);function rt(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}o.parse=Ut,o.resolve=function(Ft,mt){return Ut(Ft,!1,!0).resolve(mt)},o.resolveObject=function(Ft,mt){return Ft?Ut(Ft,!1,!0).resolveObject(mt):mt},o.format=function(Ft){return nt.isString(Ft)&&(Ft=Ut(Ft)),Ft instanceof rt?Ft.format():rt.prototype.format.call(Ft)},o.Url=rt;var it=/^([a-z0-9.+-]+:)/i,ot=/:[0-9]*$/,st=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,at=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` +`," "]),lt=["'"].concat(at),ut=["%","/","?",";","#"].concat(lt),dt=["/","?","#"],ht=/^[+a-z0-9A-Z_-]{0,63}$/,ct=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,pt={javascript:!0,"javascript:":!0},ft={javascript:!0,"javascript:":!0},gt={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},yt=et(202);function Ut(Ft,mt,vt){if(Ft&&nt.isObject(Ft)&&Ft instanceof rt)return Ft;var At=new rt;return At.parse(Ft,mt,vt),At}rt.prototype.parse=function(Ft,mt,vt){if(!nt.isString(Ft))throw new TypeError("Parameter 'url' must be a string, not "+typeof Ft);var At=Ft.indexOf("?"),Lt=At!==-1&&At127?Kt+="x":Kt+=en[nn];if(!Kt.match(ht)){var jt=Pt.slice(0,Jt),Vt=Pt.slice(Jt+1),It=en.match(ct);It&&(jt.push(It[1]),Vt.unshift(It[2])),Vt.length&&(St="/"+Vt.join(".")+St),this.hostname=jt.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),Et||(this.hostname=tt.toASCII(this.hostname));var $t=this.port?":"+this.port:"",Ht=this.hostname||"";this.host=Ht+$t,this.href+=this.host,Et&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),St[0]!=="/"&&(St="/"+St))}if(!pt[xt])for(Jt=0,zt=lt.length;Jt0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),vt.search=Ft.search,vt.query=Ft.query,nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.href=vt.format(),vt;if(!en.length)return vt.pathname=null,vt.search?vt.path="/"+vt.search:vt.path=null,vt.href=vt.format(),vt;for(var nn=en.slice(-1)[0],Zt=(vt.host||Ft.host||en.length>1)&&(nn==="."||nn==="..")||nn==="",jt=0,Vt=en.length;Vt>=0;Vt--)(nn=en[Vt])==="."?en.splice(Vt,1):nn===".."?(en.splice(Vt,1),jt++):jt&&(en.splice(Vt,1),jt--);if(!Pt&&!zt)for(;jt--;jt)en.unshift("..");!Pt||en[0]===""||en[0]&&en[0].charAt(0)==="/"||en.unshift(""),Zt&&en.join("/").substr(-1)!=="/"&&en.push("");var It,$t=en[0]===""||en[0]&&en[0].charAt(0)==="/";return Kt&&(vt.hostname=vt.host=$t?"":en.length?en.shift():"",(It=!!(vt.host&&vt.host.indexOf("@")>0)&&vt.host.split("@"))&&(vt.auth=It.shift(),vt.host=vt.hostname=It.shift())),(Pt=Pt||vt.host&&en.length)&&!$t&&en.unshift(""),en.length?vt.pathname=en.join("/"):(vt.pathname=null,vt.path=null),nt.isNull(vt.pathname)&&nt.isNull(vt.search)||(vt.path=(vt.pathname?vt.pathname:"")+(vt.search?vt.search:"")),vt.auth=Ft.auth||vt.auth,vt.slashes=vt.slashes||Ft.slashes,vt.href=vt.format(),vt},rt.prototype.parseHost=function(){var Ft=this.host,mt=ot.exec(Ft);mt&&((mt=mt[0])!==":"&&(this.port=mt.substr(1)),Ft=Ft.substr(0,Ft.length-mt.length)),Ft&&(this.hostname=Ft)}},function(s,o,et){const tt=nt=>nt!==null&&typeof nt=="object"&&typeof nt.pipe=="function";tt.writable=nt=>tt(nt)&&nt.writable!==!1&&typeof nt._write=="function"&&typeof nt._writableState=="object",tt.readable=nt=>tt(nt)&&nt.readable!==!1&&typeof nt._read=="function"&&typeof nt._readableState=="object",tt.duplex=nt=>tt.writable(nt)&&tt.readable(nt),tt.transform=nt=>tt.duplex(nt)&&typeof nt._transform=="function"&&typeof nt._transformState=="object",s.exports=tt},function(s,o,et){function tt(gt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(yt){return typeof yt}:function(yt){return yt&&typeof Symbol=="function"&&yt.constructor===Symbol&&yt!==Symbol.prototype?"symbol":typeof yt})(gt)}function nt(gt,yt){for(var Ut=0;Ut"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var Ut,Ft=ut(gt);if(yt){var mt=ut(this).constructor;Ut=Reflect.construct(Ft,arguments,mt)}else Ut=Ft.apply(this,arguments);return lt(this,Ut)}}function lt(gt,yt){if(yt&&(tt(yt)==="object"||typeof yt=="function"))return yt;if(yt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(Ut){if(Ut===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ut}(gt)}function ut(gt){return(ut=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(yt){return yt.__proto__||Object.getPrototypeOf(yt)})(gt)}var dt=et(4).LEVEL,ht=et(49),ct=et(207),pt=et(39)("winston:create-logger");function ft(gt){return"is"+gt.charAt(0).toUpperCase()+gt.slice(1)+"Enabled"}s.exports=function(){var gt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};gt.levels=gt.levels||ht.npm.levels;var yt=function(Ft){ot(vt,Ft);var mt=at(vt);function vt(At){return it(this,vt),mt.call(this,At)}return rt(vt)}(ct),Ut=new yt(gt);return Object.keys(gt.levels).forEach(function(Ft){pt('Define prototype method for "%s"',Ft),Ft!=="log"?(yt.prototype[Ft]=function(){for(var mt=this||Ut,vt=arguments.length,At=new Array(vt),Lt=0;Lt0){ot=at.substr(0,ht),st=at.substr(ht+1);var ct=ot.indexOf(".Module");ct>0&&(at=at.substr(ct+1),ot=ot.substr(0,ct))}lt=null}st&&(lt=ot,ut=st),st===""&&(ut=null,at=null);var pt={fileName:it[2]||null,lineNumber:parseInt(it[3],10)||null,functionName:at,typeName:lt,methodName:ut,columnNumber:parseInt(it[4],10)||null,native:dt};return nt._createParsedCallSite(pt)}}).filter(function(rt){return!!rt})},["this","typeName","functionName","methodName","fileName","lineNumber","columnNumber","function","evalOrigin"].forEach(function(tt){et.prototype[tt]=null,et.prototype["get"+tt[0].toUpperCase()+tt.substr(1)]=function(){return this[tt]}}),["topLevel","eval","native","constructor"].forEach(function(tt){et.prototype[tt]=!1,et.prototype["is"+tt[0].toUpperCase()+tt.substr(1)]=function(){return this[tt]}}),o._createParsedCallSite=function(tt){return new et(tt)}},function(s,o,et){function tt(lt){return(tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ut){return typeof ut}:function(ut){return ut&&typeof Symbol=="function"&&ut.constructor===Symbol&&ut!==Symbol.prototype?"symbol":typeof ut})(lt)}function nt(lt,ut){for(var dt=0;dt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var dt,ht=st(lt);if(ut){var ct=st(this).constructor;dt=Reflect.construct(ht,arguments,ct)}else dt=ht.apply(this,arguments);return ot(this,dt)}}function ot(lt,ut){if(ut&&(tt(ut)==="object"||typeof ut=="function"))return ut;if(ut!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(dt){if(dt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return dt}(lt)}function st(lt){return(st=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(ut){return ut.__proto__||Object.getPrototypeOf(ut)})(lt)}var at=et(33).Writable;s.exports=function(lt){(function(pt,ft){if(typeof ft!="function"&&ft!==null)throw new TypeError("Super expression must either be null or a function");pt.prototype=Object.create(ft&&ft.prototype,{constructor:{value:pt,writable:!0,configurable:!0}}),Object.defineProperty(pt,"prototype",{writable:!1}),ft&&rt(pt,ft)})(ct,lt);var ut,dt,ht=it(ct);function ct(pt){var ft;if(function(gt,yt){if(!(gt instanceof yt))throw new TypeError("Cannot call a class as a function")}(this,ct),ft=ht.call(this,{objectMode:!0}),!pt)throw new Error("ExceptionStream requires a TransportStream instance.");return ft.handleExceptions=!0,ft.transport=pt,ft}return ut=ct,(dt=[{key:"_write",value:function(pt,ft,gt){return pt.exception?this.transport.log(pt,gt):(gt(),!0)}}])&&nt(ut.prototype,dt),Object.defineProperty(ut,"prototype",{writable:!1}),ct}(at)},function(s,o,et){(function(tt){function nt(ut,dt){for(var ht=0;ht0&&ot.writeString(1,st)},proto.google.protobuf.StringValue.prototype.getValue=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.google.protobuf.StringValue.prototype.setValue=function(it){return tt.Message.setProto3StringField(this,1,it)},tt.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.BytesValue.prototype.toObject=function(it){return proto.google.protobuf.BytesValue.toObject(it,this)},proto.google.protobuf.BytesValue.toObject=function(it,ot){var st={value:ot.getValue_asB64()};return it&&(st.$jspbMessageInstance=ot),st}),proto.google.protobuf.BytesValue.deserializeBinary=function(it){var ot=new tt.BinaryReader(it),st=new proto.google.protobuf.BytesValue;return proto.google.protobuf.BytesValue.deserializeBinaryFromReader(st,ot)},proto.google.protobuf.BytesValue.deserializeBinaryFromReader=function(it,ot){for(;ot.nextField()&&!ot.isEndGroup();)switch(ot.getFieldNumber()){case 1:var st=ot.readBytes();it.setValue(st);break;default:ot.skipField()}return it},proto.google.protobuf.BytesValue.prototype.serializeBinary=function(){var it=new tt.BinaryWriter;return proto.google.protobuf.BytesValue.serializeBinaryToWriter(this,it),it.getResultBuffer()},proto.google.protobuf.BytesValue.serializeBinaryToWriter=function(it,ot){var st;(st=it.getValue_asU8()).length>0&&ot.writeBytes(1,st)},proto.google.protobuf.BytesValue.prototype.getValue=function(){return tt.Message.getFieldWithDefault(this,1,"")},proto.google.protobuf.BytesValue.prototype.getValue_asB64=function(){return tt.Message.bytesAsB64(this.getValue())},proto.google.protobuf.BytesValue.prototype.getValue_asU8=function(){return tt.Message.bytesAsU8(this.getValue())},proto.google.protobuf.BytesValue.prototype.setValue=function(it){return tt.Message.setProto3BytesField(this,1,it)},nt.object.extend(o,proto.google.protobuf)},function(module,exports,__webpack_require__){(function(global,Buffer){var $jscomp=$jscomp||{};$jscomp.scope={},$jscomp.findInternal=function(s,o,et){s instanceof String&&(s=String(s));for(var tt=s.length,nt=0;nt=nt}},"es6","es3"),$jscomp.polyfill("Array.prototype.find",function(s){return s||function(o,et){return $jscomp.findInternal(this,o,et).v}},"es6","es3"),$jscomp.polyfill("String.prototype.startsWith",function(s){return s||function(o,et){var tt=$jscomp.checkStringArgs(this,o,"startsWith");o+="";var nt=tt.length,rt=o.length;et=Math.max(0,Math.min(0|et,tt.length));for(var it=0;it=rt}},"es6","es3"),$jscomp.polyfill("String.prototype.repeat",function(s){return s||function(o){var et=$jscomp.checkStringArgs(this,null,"repeat");if(0>o||1342177279>>=1)&&(et+=et);return tt}},"es6","es3");var COMPILED=!0,goog=goog||{};goog.global=this||self,goog.isDef=function(s){return s!==void 0},goog.isString=function(s){return typeof s=="string"},goog.isBoolean=function(s){return typeof s=="boolean"},goog.isNumber=function(s){return typeof s=="number"},goog.exportPath_=function(s,o,et){s=s.split("."),et=et||goog.global,s[0]in et||et.execScript===void 0||et.execScript("var "+s[0]);for(var tt;s.length&&(tt=s.shift());)!s.length&&goog.isDef(o)?et[tt]=o:et=et[tt]&&et[tt]!==Object.prototype[tt]?et[tt]:et[tt]={}},goog.define=function(s,o){return o},goog.FEATURESET_YEAR=2012,goog.DEBUG=!0,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.STRICT_MODE_COMPATIBLE=!1,goog.DISALLOW_TEST_ONLY_CODE=!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(s){if(goog.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");goog.constructNamespace_(s)},goog.constructNamespace_=function(s,o){goog.exportPath_(s,o)},goog.getScriptNonce=function(s){return s&&s!=goog.global?goog.getScriptNonce_(s.document):(goog.cspNonce_===null&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document)),goog.cspNonce_)},goog.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/,goog.cspNonce_=null,goog.getScriptNonce_=function(s){return(s=s.querySelector&&s.querySelector("script[nonce]"))&&(s=s.nonce||s.getAttribute("nonce"))&&goog.NONCE_PATTERN_.test(s)?s:""},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(s){if(!goog.isString(s)||!s||s.search(goog.VALID_MODULE_RE_)==-1)throw Error("Invalid module identifier");if(!goog.isInGoogModuleLoader_())throw Error("Module "+s+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");goog.moduleLoaderState_.moduleName=s},goog.module.get=function(s){return goog.module.getInternal_(s)},goog.module.getInternal_=function(s){return null},goog.ModuleType={ES6:"es6",GOOG:"goog"},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()},goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG},goog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var s=goog.global.$jscomp;return!!s&&typeof s.getCurrentModulePath=="function"&&!!s.getCurrentModulePath()},goog.module.declareLegacyNamespace=function(){goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.declareModuleId=function(s){if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=s;else{var o=goog.global.$jscomp;if(!o||typeof o.getCurrentModulePath!="function")throw Error('Module with namespace "'+s+'" has been loaded incorrectly.');o=o.require(o.getCurrentModulePath()),goog.loadedModules_[s]={exports:o,type:goog.ModuleType.ES6,moduleId:s}}},goog.setTestOnly=function(s){if(goog.DISALLOW_TEST_ONLY_CODE)throw s=s||"",Error("Importing test-only code into non-debug environment"+(s?": "+s:"."))},goog.forwardDeclare=function(s){},goog.getObjectByName=function(s,o){s=s.split("."),o=o||goog.global;for(var et=0;et>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(s){var o=goog.typeOf(s);if(o=="object"||o=="array"){if(typeof s.clone=="function")return s.clone();for(var et in o=o=="array"?[]:{},s)o[et]=goog.cloneObject(s[et]);return o}return s},goog.bindNative_=function(s,o,et){return s.call.apply(s.bind,arguments)},goog.bindJs_=function(s,o,et){if(!s)throw Error();if(2"u"||!TrustedTypes.createPolicy)return o;try{o=TrustedTypes.createPolicy(s,{createHTML:goog.identity_,createScript:goog.identity_,createScriptURL:goog.identity_,createURL:goog.identity_})}catch(et){goog.logToConsole_(et.message)}return o},goog.TRUSTED_TYPES_POLICY_=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#base"):null;var jspb={BinaryConstants:{},ConstBinaryMessage:function(){},BinaryMessage:function(){}};jspb.BinaryConstants.FieldType={INVALID:-1,DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18,FHASH64:30,VHASH64:31},jspb.BinaryConstants.WireType={INVALID:-1,VARINT:0,FIXED64:1,DELIMITED:2,START_GROUP:3,END_GROUP:4,FIXED32:5},jspb.BinaryConstants.FieldTypeToWireType=function(s){var o=jspb.BinaryConstants.FieldType,et=jspb.BinaryConstants.WireType;switch(s){case o.INT32:case o.INT64:case o.UINT32:case o.UINT64:case o.SINT32:case o.SINT64:case o.BOOL:case o.ENUM:case o.VHASH64:return et.VARINT;case o.DOUBLE:case o.FIXED64:case o.SFIXED64:case o.FHASH64:return et.FIXED64;case o.STRING:case o.MESSAGE:case o.BYTES:return et.DELIMITED;case o.FLOAT:case o.FIXED32:case o.SFIXED32:return et.FIXED32;default:return et.INVALID}},jspb.BinaryConstants.INVALID_FIELD_NUMBER=-1,jspb.BinaryConstants.FLOAT32_EPS=1401298464324817e-60,jspb.BinaryConstants.FLOAT32_MIN=11754943508222875e-54,jspb.BinaryConstants.FLOAT32_MAX=34028234663852886e22,jspb.BinaryConstants.FLOAT64_EPS=5e-324,jspb.BinaryConstants.FLOAT64_MIN=22250738585072014e-324,jspb.BinaryConstants.FLOAT64_MAX=17976931348623157e292,jspb.BinaryConstants.TWO_TO_20=1048576,jspb.BinaryConstants.TWO_TO_23=8388608,jspb.BinaryConstants.TWO_TO_31=2147483648,jspb.BinaryConstants.TWO_TO_32=4294967296,jspb.BinaryConstants.TWO_TO_52=4503599627370496,jspb.BinaryConstants.TWO_TO_63=9223372036854776e3,jspb.BinaryConstants.TWO_TO_64=18446744073709552e3,jspb.BinaryConstants.ZERO_HASH="\0\0\0\0\0\0\0\0",goog.dom={},goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12},goog.debug={},goog.debug.Error=function(s){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var o=Error().stack;o&&(this.stack=o)}s&&(this.message=String(s)),this.reportErrorToServer=!0},goog.inherits(goog.debug.Error,Error),goog.debug.Error.prototype.name="CustomError",goog.asserts={},goog.asserts.ENABLE_ASSERTS=goog.DEBUG,goog.asserts.AssertionError=function(s,o){goog.debug.Error.call(this,goog.asserts.subs_(s,o)),this.messagePattern=s},goog.inherits(goog.asserts.AssertionError,goog.debug.Error),goog.asserts.AssertionError.prototype.name="AssertionError",goog.asserts.DEFAULT_ERROR_HANDLER=function(s){throw s},goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER,goog.asserts.subs_=function(s,o){for(var et="",tt=(s=s.split("%s")).length-1,nt=0;ntet?Math.max(0,s.length+et):et,goog.isString(s))return goog.isString(o)&&o.length==1?s.indexOf(o,et):-1;for(;et(et=et??s.length-1)&&(et=Math.max(0,s.length+et)),goog.isString(s))return goog.isString(o)&&o.length==1?s.lastIndexOf(o,et):-1;for(;0<=et;et--)if(et in s&&s[et]===o)return et;return-1},goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(s,o,et){goog.asserts.assert(s.length!=null),Array.prototype.forEach.call(s,o,et)}:function(s,o,et){for(var tt=s.length,nt=goog.isString(s)?s.split(""):s,rt=0;rt(o=goog.array.findIndex(s,o,et))?null:goog.isString(s)?s.charAt(o):s[o]},goog.array.findIndex=function(s,o,et){for(var tt=s.length,nt=goog.isString(s)?s.split(""):s,rt=0;rt(o=goog.array.findIndexRight(s,o,et))?null:goog.isString(s)?s.charAt(o):s[o]},goog.array.findIndexRight=function(s,o,et){var tt=s.length,nt=goog.isString(s)?s.split(""):s;for(--tt;0<=tt;tt--)if(tt in nt&&o.call(et,nt[tt],tt,s))return tt;return-1},goog.array.contains=function(s,o){return 0<=goog.array.indexOf(s,o)},goog.array.isEmpty=function(s){return s.length==0},goog.array.clear=function(s){if(!goog.isArray(s))for(var o=s.length-1;0<=o;o--)delete s[o];s.length=0},goog.array.insert=function(s,o){goog.array.contains(s,o)||s.push(o)},goog.array.insertAt=function(s,o,et){goog.array.splice(s,et,0,o)},goog.array.insertArrayAt=function(s,o,et){goog.partial(goog.array.splice,s,et,0).apply(null,o)},goog.array.insertBefore=function(s,o,et){var tt;arguments.length==2||0>(tt=goog.array.indexOf(s,et))?s.push(o):goog.array.insertAt(s,o,tt)},goog.array.remove=function(s,o){var et;return(et=0<=(o=goog.array.indexOf(s,o)))&&goog.array.removeAt(s,o),et},goog.array.removeLast=function(s,o){return 0<=(o=goog.array.lastIndexOf(s,o))&&(goog.array.removeAt(s,o),!0)},goog.array.removeAt=function(s,o){return goog.asserts.assert(s.length!=null),Array.prototype.splice.call(s,o,1).length==1},goog.array.removeIf=function(s,o,et){return 0<=(o=goog.array.findIndex(s,o,et))&&(goog.array.removeAt(s,o),!0)},goog.array.removeAllIf=function(s,o,et){var tt=0;return goog.array.forEachRight(s,function(nt,rt){o.call(et,nt,rt,s)&&goog.array.removeAt(s,rt)&&tt++}),tt},goog.array.concat=function(s){return Array.prototype.concat.apply([],arguments)},goog.array.join=function(s){return Array.prototype.concat.apply([],arguments)},goog.array.toArray=function(s){var o=s.length;if(0=arguments.length?Array.prototype.slice.call(s,o):Array.prototype.slice.call(s,o,et)},goog.array.removeDuplicates=function(s,o,et){o=o||s;var tt=function(st){return goog.isObject(st)?"o"+goog.getUid(st):(typeof st).charAt(0)+st};et=et||tt,tt={};for(var nt=0,rt=0;rt>1,at=et?o.call(nt,s[st],st,s):o(tt,s[st]);0o?1:s(et=goog.array.binarySearch(s,o,et))&&(goog.array.insertAt(s,o,-(et+1)),!0)},goog.array.binaryRemove=function(s,o,et){return 0<=(o=goog.array.binarySearch(s,o,et))&&goog.array.removeAt(s,o)},goog.array.bucket=function(s,o,et){for(var tt={},nt=0;nt(et=et||1)*(rt-nt))return[];if(0rt;s+=et)tt.push(s);return tt},goog.array.repeat=function(s,o){for(var et=[],tt=0;tto&&Array.prototype.push.apply(s,s.splice(0,-o))),s},goog.array.moveItem=function(s,o,et){goog.asserts.assert(0<=o&&o>=8),o[et++]=nt}return o},goog.crypt.byteArrayToString=function(s){if(8192>=s.length)return String.fromCharCode.apply(null,s);for(var o="",et=0;etnt?o[et++]=nt:(2048>nt?o[et++]=nt>>6|192:((64512&nt)==55296&&tt+1>18|240,o[et++]=nt>>12&63|128):o[et++]=nt>>12|224,o[et++]=nt>>6&63|128),o[et++]=63&nt|128)}return o},goog.crypt.utf8ByteArrayToString=function(s){for(var o=[],et=0,tt=0;etnt)o[tt++]=String.fromCharCode(nt);else if(191nt){var rt=s[et++];o[tt++]=String.fromCharCode((31&nt)<<6|63&rt)}else if(239nt){rt=s[et++];var it=s[et++];nt=((7&nt)<<18|(63&rt)<<12|(63&it)<<6|63&s[et++])-65536,o[tt++]=String.fromCharCode(55296+(nt>>10)),o[tt++]=String.fromCharCode(56320+(1023&nt))}else rt=s[et++],it=s[et++],o[tt++]=String.fromCharCode((15&nt)<<12|(63&rt)<<6|63&it)}return o.join("")},goog.crypt.xorByteArray=function(s,o){goog.asserts.assert(s.length==o.length,"XOR array lengths must match");for(var et=[],tt=0;tt":"
")},goog.string.internal.htmlEscape=function(s,o){if(o)s=s.replace(goog.string.internal.AMP_RE_,"&").replace(goog.string.internal.LT_RE_,"<").replace(goog.string.internal.GT_RE_,">").replace(goog.string.internal.QUOT_RE_,""").replace(goog.string.internal.SINGLE_QUOTE_RE_,"'").replace(goog.string.internal.NULL_RE_,"�");else{if(!goog.string.internal.ALL_RE_.test(s))return s;s.indexOf("&")!=-1&&(s=s.replace(goog.string.internal.AMP_RE_,"&")),s.indexOf("<")!=-1&&(s=s.replace(goog.string.internal.LT_RE_,"<")),s.indexOf(">")!=-1&&(s=s.replace(goog.string.internal.GT_RE_,">")),s.indexOf('"')!=-1&&(s=s.replace(goog.string.internal.QUOT_RE_,""")),s.indexOf("'")!=-1&&(s=s.replace(goog.string.internal.SINGLE_QUOTE_RE_,"'")),s.indexOf("\0")!=-1&&(s=s.replace(goog.string.internal.NULL_RE_,"�"))}return s},goog.string.internal.AMP_RE_=/&/g,goog.string.internal.LT_RE_=//g,goog.string.internal.QUOT_RE_=/"/g,goog.string.internal.SINGLE_QUOTE_RE_=/'/g,goog.string.internal.NULL_RE_=/\x00/g,goog.string.internal.ALL_RE_=/[\x00&<>"']/,goog.string.internal.whitespaceEscape=function(s,o){return goog.string.internal.newLineToBr(s.replace(/ /g,"  "),o)},goog.string.internal.contains=function(s,o){return s.indexOf(o)!=-1},goog.string.internal.caseInsensitiveContains=function(s,o){return goog.string.internal.contains(s.toLowerCase(),o.toLowerCase())},goog.string.internal.compareVersions=function(s,o){var et=0;s=goog.string.internal.trim(String(s)).split("."),o=goog.string.internal.trim(String(o)).split(".");for(var tt=Math.max(s.length,o.length),nt=0;et==0&&nto?1:0},goog.string.TypedString=function(){},goog.string.Const=function(s,o){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_=s===goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_&&o||"",this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_},goog.string.Const.prototype.implementsGoogStringTypedString=!0,goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_},goog.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"},goog.string.Const.unwrap=function(s){return s instanceof goog.string.Const&&s.constructor===goog.string.Const&&s.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_?s.stringConstValueWithSecurityContract__googStringSecurityPrivate_:(goog.asserts.fail("expected object of type Const, got '"+s+"'"),"type_error:Const")},goog.string.Const.from=function(s){return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_,s)},goog.string.Const.TYPE_MARKER_={},goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_={},goog.string.Const.EMPTY=goog.string.Const.from(""),goog.fs={},goog.fs.url={},goog.fs.url.createObjectUrl=function(s){return goog.fs.url.getUrlObject_().createObjectURL(s)},goog.fs.url.revokeObjectUrl=function(s){goog.fs.url.getUrlObject_().revokeObjectURL(s)},goog.fs.url.getUrlObject_=function(){var s=goog.fs.url.findUrlObject_();if(s!=null)return s;throw Error("This browser doesn't seem to support blob URLs")},goog.fs.url.findUrlObject_=function(){return goog.isDef(goog.global.URL)&&goog.isDef(goog.global.URL.createObjectURL)?goog.global.URL:goog.isDef(goog.global.webkitURL)&&goog.isDef(goog.global.webkitURL.createObjectURL)?goog.global.webkitURL:goog.isDef(goog.global.createObjectURL)?goog.global:null},goog.fs.url.browserSupportsObjectUrls=function(){return goog.fs.url.findUrlObject_()!=null},goog.html={},goog.html.trustedtypes={},goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#html"):null,goog.i18n={},goog.i18n.bidi={},goog.i18n.bidi.FORCE_RTL=!1,goog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||(goog.LOCALE.substring(0,2).toLowerCase()=="ar"||goog.LOCALE.substring(0,2).toLowerCase()=="fa"||goog.LOCALE.substring(0,2).toLowerCase()=="he"||goog.LOCALE.substring(0,2).toLowerCase()=="iw"||goog.LOCALE.substring(0,2).toLowerCase()=="ps"||goog.LOCALE.substring(0,2).toLowerCase()=="sd"||goog.LOCALE.substring(0,2).toLowerCase()=="ug"||goog.LOCALE.substring(0,2).toLowerCase()=="ur"||goog.LOCALE.substring(0,2).toLowerCase()=="yi")&&(goog.LOCALE.length==2||goog.LOCALE.substring(2,3)=="-"||goog.LOCALE.substring(2,3)=="_")||3<=goog.LOCALE.length&&goog.LOCALE.substring(0,3).toLowerCase()=="ckb"&&(goog.LOCALE.length==3||goog.LOCALE.substring(3,4)=="-"||goog.LOCALE.substring(3,4)=="_")||7<=goog.LOCALE.length&&(goog.LOCALE.substring(2,3)=="-"||goog.LOCALE.substring(2,3)=="_")&&(goog.LOCALE.substring(3,7).toLowerCase()=="adlm"||goog.LOCALE.substring(3,7).toLowerCase()=="arab"||goog.LOCALE.substring(3,7).toLowerCase()=="hebr"||goog.LOCALE.substring(3,7).toLowerCase()=="nkoo"||goog.LOCALE.substring(3,7).toLowerCase()=="rohg"||goog.LOCALE.substring(3,7).toLowerCase()=="thaa")||8<=goog.LOCALE.length&&(goog.LOCALE.substring(3,4)=="-"||goog.LOCALE.substring(3,4)=="_")&&(goog.LOCALE.substring(4,8).toLowerCase()=="adlm"||goog.LOCALE.substring(4,8).toLowerCase()=="arab"||goog.LOCALE.substring(4,8).toLowerCase()=="hebr"||goog.LOCALE.substring(4,8).toLowerCase()=="nkoo"||goog.LOCALE.substring(4,8).toLowerCase()=="rohg"||goog.LOCALE.substring(4,8).toLowerCase()=="thaa"),goog.i18n.bidi.Format={LRE:"‪",RLE:"‫",PDF:"‬",LRM:"‎",RLM:"‏"},goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0},goog.i18n.bidi.RIGHT="right",goog.i18n.bidi.LEFT="left",goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT,goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,goog.i18n.bidi.toDir=function(s,o){return typeof s=="number"?0s?goog.i18n.bidi.Dir.RTL:o?null:goog.i18n.bidi.Dir.NEUTRAL:s==null?null:s?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.ltrChars_="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ऀ-῿‎Ⰰ-\uD801\uD804-\uD839\uD83C-\uDBFF豈-﬜︀-﹯﻽-￿",goog.i18n.bidi.rtlChars_="֑-ۯۺ-ࣿ‏\uD802-\uD803\uD83A-\uD83Bיִ-﷿ﹰ-ﻼ",goog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g,goog.i18n.bidi.stripHtmlIfNeeded_=function(s,o){return o?s.replace(goog.i18n.bidi.htmlSkipReg_,""):s},goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.hasAnyRtl=function(s,o){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl,goog.i18n.bidi.hasAnyLtr=function(s,o){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.isRtlChar=function(s){return goog.i18n.bidi.rtlRe_.test(s)},goog.i18n.bidi.isLtrChar=function(s){return goog.i18n.bidi.ltrRe_.test(s)},goog.i18n.bidi.isNeutralChar=function(s){return!goog.i18n.bidi.isLtrChar(s)&&!goog.i18n.bidi.isRtlChar(s)},goog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.startsWithRtl=function(s,o){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl,goog.i18n.bidi.startsWithLtr=function(s,o){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr,goog.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/,goog.i18n.bidi.isNeutralText=function(s,o){return s=goog.i18n.bidi.stripHtmlIfNeeded_(s,o),goog.i18n.bidi.isRequiredLtrRe_.test(s)||!goog.i18n.bidi.hasAnyLtr(s)&&!goog.i18n.bidi.hasAnyRtl(s)},goog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$"),goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$"),goog.i18n.bidi.endsWithLtr=function(s,o){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr,goog.i18n.bidi.endsWithRtl=function(s,o){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(s,o))},goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl,goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i,goog.i18n.bidi.isRtlLanguage=function(s){return goog.i18n.bidi.rtlLocalesRe_.test(s)},goog.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g,goog.i18n.bidi.guardBracketInText=function(s,o){return o=(o===void 0?goog.i18n.bidi.hasAnyRtl(s):o)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM,s.replace(goog.i18n.bidi.bracketGuardTextRe_,o+"$&"+o)},goog.i18n.bidi.enforceRtlInHtml=function(s){return s.charAt(0)=="<"?s.replace(/<\w+/,"$& dir=rtl"):` `+s+""},goog.i18n.bidi.enforceRtlInText=function(s){return goog.i18n.bidi.Format.RLE+s+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.enforceLtrInHtml=function(s){return s.charAt(0)=="<"?s.replace(/<\w+/,"$& dir=ltr"):` `+s+""},goog.i18n.bidi.enforceLtrInText=function(s){return goog.i18n.bidi.Format.LRE+s+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g,goog.i18n.bidi.leftRe_=/left/gi,goog.i18n.bidi.rightRe_=/right/gi,goog.i18n.bidi.tempRe_=/%%%%/g,goog.i18n.bidi.mirrorCSS=function(s){return s.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)},goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g,goog.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g,goog.i18n.bidi.normalizeHebrewQuote=function(s){return s.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1״").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1׳")},goog.i18n.bidi.wordSeparatorRe_=/\s+/,goog.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/,goog.i18n.bidi.rtlDetectionThreshold_=.4,goog.i18n.bidi.estimateDirection=function(s,o){var et=0,tt=0,nt=!1;for(s=goog.i18n.bidi.stripHtmlIfNeeded_(s,o).split(goog.i18n.bidi.wordSeparatorRe_),o=0;ogoog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.detectRtlDirectionality=function(s,o){return goog.i18n.bidi.estimateDirection(s,o)==goog.i18n.bidi.Dir.RTL},goog.i18n.bidi.setElementDirAndAlign=function(s,o){s&&(o=goog.i18n.bidi.toDir(o))&&(s.style.textAlign=o==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,s.dir=o==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")},goog.i18n.bidi.setElementDirByTextDirectionality=function(s,o){switch(goog.i18n.bidi.estimateDirection(o)){case goog.i18n.bidi.Dir.LTR:s.dir="ltr";break;case goog.i18n.bidi.Dir.RTL:s.dir="rtl";break;default:s.removeAttribute("dir")}},goog.i18n.bidi.DirectionalString=function(){},goog.html.TrustedResourceUrl=function(){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_="",this.trustedURL_=null,this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0,goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString()},goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.html.TrustedResourceUrl.prototype.cloneWithParams=function(s,o){var et=goog.html.TrustedResourceUrl.unwrap(this),tt=(et=goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(et))[3]||"";return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(et[1]+goog.html.TrustedResourceUrl.stringifyParams_("?",et[2]||"",s)+goog.html.TrustedResourceUrl.stringifyParams_("#",tt,o))},goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"}),goog.html.TrustedResourceUrl.unwrap=function(s){return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(s).toString()},goog.html.TrustedResourceUrl.unwrapTrustedScriptURL=function(s){return s instanceof goog.html.TrustedResourceUrl&&s.constructor===goog.html.TrustedResourceUrl&&s.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?s.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_:(goog.asserts.fail("expected object of type TrustedResourceUrl, got '"+s+"' of type "+goog.typeOf(s)),"type_error:TrustedResourceUrl")},goog.html.TrustedResourceUrl.unwrapTrustedURL=function(s){return s.trustedURL_?s.trustedURL_:goog.html.TrustedResourceUrl.unwrap(s)},goog.html.TrustedResourceUrl.format=function(s,o){var et=goog.string.Const.unwrap(s);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(et))throw Error("Invalid TrustedResourceUrl format: "+et);return s=et.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,function(tt,nt){if(!Object.prototype.hasOwnProperty.call(o,nt))throw Error('Found marker, "'+nt+'", in format string, "'+et+'", but no valid label mapping found in args: '+JSON.stringify(o));return(tt=o[nt])instanceof goog.string.Const?goog.string.Const.unwrap(tt):encodeURIComponent(String(tt))}),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g,goog.html.TrustedResourceUrl.BASE_URL_=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i,goog.html.TrustedResourceUrl.URL_PARAM_PARSER_=/^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/,goog.html.TrustedResourceUrl.formatWithParams=function(s,o,et,tt){return goog.html.TrustedResourceUrl.format(s,o).cloneWithParams(et,tt)},goog.html.TrustedResourceUrl.fromConstant=function(s){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(s))},goog.html.TrustedResourceUrl.fromConstants=function(s){for(var o="",et=0;ets.length?"&":"")+encodeURIComponent(tt)+"="+encodeURIComponent(String(it)))}}return o},goog.html.SafeUrl=function(){this.privateDoNotAccessOrElseSafeUrlWrappedValue_="",this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez",goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0,goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()},goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.DEBUG&&(goog.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeUrlWrappedValue_+"}"}),goog.html.SafeUrl.unwrap=function(s){return goog.html.SafeUrl.unwrapTrustedURL(s).toString()},goog.html.SafeUrl.unwrapTrustedURL=function(s){return s instanceof goog.html.SafeUrl&&s.constructor===goog.html.SafeUrl&&s.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?s.privateDoNotAccessOrElseSafeUrlWrappedValue_:(goog.asserts.fail("expected object of type SafeUrl, got '"+s+"' of type "+goog.typeOf(s)),"type_error:SafeUrl")},goog.html.SafeUrl.fromConstant=function(s){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(s))},goog.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-wav|wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime))(?:;\w+=(?:\w+|"[\w;=]+"))*$/i,goog.html.SafeUrl.isSafeMimeType=function(s){return goog.html.SAFE_MIME_TYPE_PATTERN_.test(s)},goog.html.SafeUrl.fromBlob=function(s){return s=goog.html.SAFE_MIME_TYPE_PATTERN_.test(s.type)?goog.fs.url.createObjectUrl(s):goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.DATA_URL_PATTERN_=/^data:([^,]*);base64,[a-z0-9+\/]+=*$/i,goog.html.SafeUrl.fromDataUrl=function(s){var o=(s=s.replace(/(%0A|%0D)/g,"")).match(goog.html.DATA_URL_PATTERN_);return o=o&&goog.html.SAFE_MIME_TYPE_PATTERN_.test(o[1]),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(o?s:goog.html.SafeUrl.INNOCUOUS_STRING)},goog.html.SafeUrl.fromTelUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"tel:")||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SIP_URL_PATTERN_=/^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i,goog.html.SafeUrl.fromSipUrl=function(s){return goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(s))||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.fromFacebookMessengerUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"fb-messenger://share")||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.fromWhatsAppUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"whatsapp://send")||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.fromSmsUrl=function(s){return goog.string.internal.caseInsensitiveStartsWith(s,"sms:")&&goog.html.SafeUrl.isSmsUrlBodyValid_(s)||(s=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(s)},goog.html.SafeUrl.isSmsUrlBodyValid_=function(s){var o=s.indexOf("#");if(0+~[\]()=^$|]+$/.test(et))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: "+s);if(!goog.html.SafeStyleSheet.hasBalancedBrackets_(et))throw Error("() and [] in selector must be balanced, got: "+s);return o instanceof goog.html.SafeStyle||(o=goog.html.SafeStyle.create(o)),s=s+"{"+goog.html.SafeStyle.unwrap(o).replace(/.");if(s.toUpperCase()in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error("Tag name <"+s+"> is not allowed for SafeHtml.")},goog.html.SafeHtml.createIframe=function(s,o,et,tt){s&&goog.html.TrustedResourceUrl.unwrap(s);var nt={};return nt.src=s||null,nt.srcdoc=o&&goog.html.SafeHtml.unwrap(o),s=goog.html.SafeHtml.combineAttributes(nt,{sandbox:""},et),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",s,tt)},goog.html.SafeHtml.createSandboxIframe=function(s,o,et,tt){if(!goog.html.SafeHtml.canUseSandboxIframe())throw Error("The browser does not support sandboxed iframes.");var nt={};return nt.src=s?goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(s)):null,nt.srcdoc=o||null,nt.sandbox="",s=goog.html.SafeHtml.combineAttributes(nt,{},et),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",s,tt)},goog.html.SafeHtml.canUseSandboxIframe=function(){return goog.global.HTMLIFrameElement&&"sandbox"in goog.global.HTMLIFrameElement.prototype},goog.html.SafeHtml.createScriptSrc=function(s,o){return goog.html.TrustedResourceUrl.unwrap(s),s=goog.html.SafeHtml.combineAttributes({src:s},{},o),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",s)},goog.html.SafeHtml.createScript=function(s,o){for(var et in o){var tt=et.toLowerCase();if(tt=="language"||tt=="src"||tt=="text"||tt=="type")throw Error('Cannot set "'+tt+'" attribute')}for(et="",s=goog.array.concat(s),tt=0;tt does not allow content."),nt+=">"):(tt=goog.html.SafeHtml.concat(et),nt+=">"+goog.html.SafeHtml.unwrap(tt)+"",tt=tt.getDirection()),(s=o&&o.dir)&&(tt=/^(ltr|rtl|auto)$/i.test(s)?goog.i18n.bidi.Dir.NEUTRAL:null),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(nt,tt)},goog.html.SafeHtml.stringifyAttributes=function(s,o){var et="";if(o)for(var tt in o){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(tt))throw Error('Invalid attribute name "'+tt+'".');var nt=o[tt];goog.isDefAndNotNull(nt)&&(et+=" "+goog.html.SafeHtml.getAttrNameAndValue_(s,tt,nt))}return et},goog.html.SafeHtml.combineAttributes=function(s,o,et){var tt,nt={};for(tt in s)goog.asserts.assert(tt.toLowerCase()==tt,"Must be lower case"),nt[tt]=s[tt];for(tt in o)goog.asserts.assert(tt.toLowerCase()==tt,"Must be lower case"),nt[tt]=o[tt];for(tt in et){var rt=tt.toLowerCase();if(rt in s)throw Error('Cannot override "'+rt+'" attribute, got "'+tt+'" with value "'+et[tt]+'"');rt in o&&delete nt[rt],nt[tt]=et[tt]}return nt},goog.html.SafeHtml.DOCTYPE_HTML=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.EMPTY=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.BR=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("
",goog.i18n.bidi.Dir.NEUTRAL),goog.html.uncheckedconversions={},goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(s,o,et){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(o,et||null)},goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(s,o){return goog.asserts.assertString(goog.string.Const.unwrap(s),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(s)),"must provide non-empty justification"),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(o)},goog.dom.asserts={},goog.dom.asserts.assertIsLocation=function(s){if(goog.asserts.ENABLE_ASSERTS){var o=goog.dom.asserts.getWindow_(s);o&&(!s||!(s instanceof o.Location)&&s instanceof o.Element)&&goog.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(s))}return s},goog.dom.asserts.assertIsElementType_=function(s,o){if(goog.asserts.ENABLE_ASSERTS){var et=goog.dom.asserts.getWindow_(s);et&&et[o]!==void 0&&(s&&(s instanceof et[o]||!(s instanceof et.Location||s instanceof et.Element))||goog.asserts.fail("Argument is not a %s (or a non-Element, non-Location mock); got: %s",o,goog.dom.asserts.debugStringForType_(s)))}return s},goog.dom.asserts.assertIsHTMLAnchorElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLAnchorElement")},goog.dom.asserts.assertIsHTMLButtonElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLButtonElement")},goog.dom.asserts.assertIsHTMLLinkElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLLinkElement")},goog.dom.asserts.assertIsHTMLImageElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLImageElement")},goog.dom.asserts.assertIsHTMLAudioElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLAudioElement")},goog.dom.asserts.assertIsHTMLVideoElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLVideoElement")},goog.dom.asserts.assertIsHTMLInputElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLInputElement")},goog.dom.asserts.assertIsHTMLTextAreaElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLTextAreaElement")},goog.dom.asserts.assertIsHTMLCanvasElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLCanvasElement")},goog.dom.asserts.assertIsHTMLEmbedElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLEmbedElement")},goog.dom.asserts.assertIsHTMLFormElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLFormElement")},goog.dom.asserts.assertIsHTMLFrameElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLFrameElement")},goog.dom.asserts.assertIsHTMLIFrameElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLIFrameElement")},goog.dom.asserts.assertIsHTMLObjectElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLObjectElement")},goog.dom.asserts.assertIsHTMLScriptElement=function(s){return goog.dom.asserts.assertIsElementType_(s,"HTMLScriptElement")},goog.dom.asserts.debugStringForType_=function(s){if(!goog.isObject(s))return s===void 0?"undefined":s===null?"null":typeof s;try{return s.constructor.displayName||s.constructor.name||Object.prototype.toString.call(s)}catch{return""}},goog.dom.asserts.getWindow_=function(s){try{var o=s&&s.ownerDocument,et=o&&(o.defaultView||o.parentWindow);if((et=et||goog.global).Element&&et.Location)return et}catch{}return null},goog.functions={},goog.functions.constant=function(s){return function(){return s}},goog.functions.FALSE=function(){return!1},goog.functions.TRUE=function(){return!0},goog.functions.NULL=function(){return null},goog.functions.identity=function(s,o){return s},goog.functions.error=function(s){return function(){throw Error(s)}},goog.functions.fail=function(s){return function(){throw s}},goog.functions.lock=function(s,o){return o=o||0,function(){return s.apply(this,Array.prototype.slice.call(arguments,0,o))}},goog.functions.nth=function(s){return function(){return arguments[s]}},goog.functions.partialRight=function(s,o){var et=Array.prototype.slice.call(arguments,1);return function(){var tt=Array.prototype.slice.call(arguments);return tt.push.apply(tt,et),s.apply(this,tt)}},goog.functions.withReturnValue=function(s,o){return goog.functions.sequence(s,goog.functions.constant(o))},goog.functions.equalTo=function(s,o){return function(et){return o?s==et:s===et}},goog.functions.compose=function(s,o){var et=arguments,tt=et.length;return function(){var nt;tt&&(nt=et[tt-1].apply(this,arguments));for(var rt=tt-2;0<=rt;rt--)nt=et[rt].call(this,nt);return nt}},goog.functions.sequence=function(s){var o=arguments,et=o.length;return function(){for(var tt,nt=0;nt"u")return!1;var s=document.createElement("div"),o=document.createElement("div");return o.appendChild(document.createElement("div")),s.appendChild(o),!(goog.DEBUG&&!s.firstChild)&&(o=s.firstChild.firstChild,s.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY),!o.parentElement)}),goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(s,o){if(goog.dom.safe.isInnerHtmlCleanupRecursive_())for(;s.lastChild;)s.removeChild(s.lastChild);s.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(o)},goog.dom.safe.setInnerHtml=function(s,o){if(goog.asserts.ENABLE_ASSERTS){var et=s.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[et])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+s.tagName+".")}goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(s,o)},goog.dom.safe.setOuterHtml=function(s,o){s.outerHTML=goog.html.SafeHtml.unwrapTrustedHTML(o)},goog.dom.safe.setFormElementAction=function(s,o){o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),goog.dom.asserts.assertIsHTMLFormElement(s).action=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setButtonFormAction=function(s,o){o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),goog.dom.asserts.assertIsHTMLButtonElement(s).formAction=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setInputFormAction=function(s,o){o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),goog.dom.asserts.assertIsHTMLInputElement(s).formAction=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setStyle=function(s,o){s.style.cssText=goog.html.SafeStyle.unwrap(o)},goog.dom.safe.documentWrite=function(s,o){s.write(goog.html.SafeHtml.unwrapTrustedHTML(o))},goog.dom.safe.setAnchorHref=function(s,o){goog.dom.asserts.assertIsHTMLAnchorElement(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.href=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setImageSrc=function(s,o){if(goog.dom.asserts.assertIsHTMLImageElement(s),!(o instanceof goog.html.SafeUrl)){var et=/^data:image\//i.test(o);o=goog.html.SafeUrl.sanitizeAssertUnchanged(o,et)}s.src=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setAudioSrc=function(s,o){if(goog.dom.asserts.assertIsHTMLAudioElement(s),!(o instanceof goog.html.SafeUrl)){var et=/^data:audio\//i.test(o);o=goog.html.SafeUrl.sanitizeAssertUnchanged(o,et)}s.src=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setVideoSrc=function(s,o){if(goog.dom.asserts.assertIsHTMLVideoElement(s),!(o instanceof goog.html.SafeUrl)){var et=/^data:video\//i.test(o);o=goog.html.SafeUrl.sanitizeAssertUnchanged(o,et)}s.src=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.setEmbedSrc=function(s,o){goog.dom.asserts.assertIsHTMLEmbedElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(o)},goog.dom.safe.setFrameSrc=function(s,o){goog.dom.asserts.assertIsHTMLFrameElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedURL(o)},goog.dom.safe.setIframeSrc=function(s,o){goog.dom.asserts.assertIsHTMLIFrameElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedURL(o)},goog.dom.safe.setIframeSrcdoc=function(s,o){goog.dom.asserts.assertIsHTMLIFrameElement(s),s.srcdoc=goog.html.SafeHtml.unwrapTrustedHTML(o)},goog.dom.safe.setLinkHrefAndRel=function(s,o,et){goog.dom.asserts.assertIsHTMLLinkElement(s),s.rel=et,goog.string.internal.caseInsensitiveContains(et,"stylesheet")?(goog.asserts.assert(o instanceof goog.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),s.href=goog.html.TrustedResourceUrl.unwrapTrustedURL(o)):s.href=o instanceof goog.html.TrustedResourceUrl?goog.html.TrustedResourceUrl.unwrapTrustedURL(o):o instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrapTrustedURL(o):goog.html.SafeUrl.unwrapTrustedURL(goog.html.SafeUrl.sanitizeAssertUnchanged(o))},goog.dom.safe.setObjectData=function(s,o){goog.dom.asserts.assertIsHTMLObjectElement(s),s.data=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(o)},goog.dom.safe.setScriptSrc=function(s,o){goog.dom.asserts.assertIsHTMLScriptElement(s),s.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(o),(o=goog.getScriptNonce())&&s.setAttribute("nonce",o)},goog.dom.safe.setScriptContent=function(s,o){goog.dom.asserts.assertIsHTMLScriptElement(s),s.text=goog.html.SafeScript.unwrapTrustedScript(o),(o=goog.getScriptNonce())&&s.setAttribute("nonce",o)},goog.dom.safe.setLocationHref=function(s,o){goog.dom.asserts.assertIsLocation(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.href=goog.html.SafeUrl.unwrapTrustedURL(o)},goog.dom.safe.assignLocation=function(s,o){goog.dom.asserts.assertIsLocation(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.assign(goog.html.SafeUrl.unwrapTrustedURL(o))},goog.dom.safe.replaceLocation=function(s,o){goog.dom.asserts.assertIsLocation(s),o=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitizeAssertUnchanged(o),s.replace(goog.html.SafeUrl.unwrapTrustedURL(o))},goog.dom.safe.openInWindow=function(s,o,et,tt,nt){return s=s instanceof goog.html.SafeUrl?s:goog.html.SafeUrl.sanitizeAssertUnchanged(s),(o||goog.global).open(goog.html.SafeUrl.unwrapTrustedURL(s),et?goog.string.Const.unwrap(et):"",tt,nt)},goog.dom.safe.parseFromStringHtml=function(s,o){return goog.dom.safe.parseFromString(s,o,"text/html")},goog.dom.safe.parseFromString=function(s,o,et){return s.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(o),et)},goog.dom.safe.createImageFromBlob=function(s){if(!/^image\/.*/g.test(s.type))throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");var o=goog.global.URL.createObjectURL(s);return(s=new goog.global.Image).onload=function(){goog.global.URL.revokeObjectURL(o)},goog.dom.safe.setImageSrc(s,goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Image blob URL."),o)),s},goog.string.DETECT_DOUBLE_ESCAPING=!1,goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1,goog.string.Unicode={NBSP:" "},goog.string.startsWith=goog.string.internal.startsWith,goog.string.endsWith=goog.string.internal.endsWith,goog.string.caseInsensitiveStartsWith=goog.string.internal.caseInsensitiveStartsWith,goog.string.caseInsensitiveEndsWith=goog.string.internal.caseInsensitiveEndsWith,goog.string.caseInsensitiveEquals=goog.string.internal.caseInsensitiveEquals,goog.string.subs=function(s,o){for(var et=s.split("%s"),tt="",nt=Array.prototype.slice.call(arguments,1);nt.length&&1=s||"€"<=s&&"�">=s},goog.string.stripNewlines=function(s){return s.replace(/(\r\n|\r|\n)+/g," ")},goog.string.canonicalizeNewlines=function(s){return s.replace(/(\r\n|\r|\n)/g,` -`)},goog.string.normalizeWhitespace=function(s){return s.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(s){return s.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(s){return s.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.string.internal.trim,goog.string.trimLeft=function(s){return s.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(s){return s.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare,goog.string.numberAwareCompare_=function(s,o,et){if(s==o)return 0;if(!s)return-1;if(!o)return 1;for(var tt=s.toLowerCase().match(et),nt=o.toLowerCase().match(et),rt=Math.min(tt.length,nt.length),it=0;it",""":'"'},tt=o?o.createElement("div"):goog.global.document.createElement("div");return s.replace(goog.string.HTML_ENTITY_PATTERN_,function(nt,rt){var it=et[nt];return it||(rt.charAt(0)=="#"&&(rt=+("0"+rt.substr(1)),isNaN(rt)||(it=String.fromCharCode(rt))),it||(goog.dom.safe.setInnerHtml(tt,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),nt+" ")),it=tt.firstChild.nodeValue.slice(0,-1)),et[nt]=it)})},goog.string.unescapePureXmlEntities_=function(s){return s.replace(/&([^;]+);/g,function(o,et){switch(et){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:return et.charAt(0)!="#"||(et=+("0"+et.substr(1)),isNaN(et))?o:String.fromCharCode(et)}})},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(s,o){return goog.string.newLineToBr(s.replace(/ /g,"  "),o)},goog.string.preserveSpaces=function(s){return s.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(s,o){for(var et=o.length,tt=0;tto&&(s=s.substring(0,o-3)+"..."),et&&(s=goog.string.htmlEscape(s)),s},goog.string.truncateMiddle=function(s,o,et,tt){if(et&&(s=goog.string.unescapeEntities(s)),tt&&s.length>o){tt>o&&(tt=o);var nt=s.length-tt;s=s.substring(0,o-tt)+"..."+s.substring(nt)}else s.length>o&&(tt=Math.floor(o/2),nt=s.length-tt,s=s.substring(0,tt+o%2)+"..."+s.substring(nt));return et&&(s=goog.string.htmlEscape(s)),s},goog.string.specialEscapeChars_={"\0":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(s){s=String(s);for(var o=['"'],et=0;etnt?tt:goog.string.escapeChar(tt))}return o.push('"'),o.join("")},goog.string.escapeString=function(s){for(var o=[],et=0;eto)var et=s;else 256>o?(et="\\x",(16>o||256o&&(et+="0")),et+=o.toString(16).toUpperCase();return goog.string.jsEscapeCache_[s]=et},goog.string.contains=goog.string.internal.contains,goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains,goog.string.countOf=function(s,o){return s&&o?s.split(o).length-1:0},goog.string.removeAt=function(s,o,et){var tt=s;return 0<=o&&o>>0;return o},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(s){var o=Number(s);return o==0&&goog.string.isEmptyOrWhitespace(s)?NaN:o},goog.string.isLowerCamelCase=function(s){return/^[a-z]+([A-Z][a-z]*)*$/.test(s)},goog.string.isUpperCamelCase=function(s){return/^([A-Z][a-z]*)+$/.test(s)},goog.string.toCamelCase=function(s){return String(s).replace(/\-([a-z])/g,function(o,et){return et.toUpperCase()})},goog.string.toSelectorCase=function(s){return String(s).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(s,o){return o=goog.isString(o)?goog.string.regExpEscape(o):"\\s",s.replace(new RegExp("(^"+(o?"|["+o+"]+":"")+")([a-z])","g"),function(et,tt,nt){return tt+nt.toUpperCase()})},goog.string.capitalize=function(s){return String(s.charAt(0)).toUpperCase()+String(s.substr(1)).toLowerCase()},goog.string.parseInt=function(s){return isFinite(s)&&(s=String(s)),goog.isString(s)?/^\s*-?0x/i.test(s)?parseInt(s,16):parseInt(s,10):NaN},goog.string.splitLimit=function(s,o,et){s=s.split(o);for(var tt=[];0et&&(et=nt)}return et==-1?s:s.slice(et+1)},goog.string.editDistance=function(s,o){var et=[],tt=[];if(s==o)return 0;if(!s.length||!o.length)return Math.max(s.length,o.length);for(var nt=0;ntparseFloat(s)?String(o):s},goog.userAgent.getVersionRegexResult_=function(){var s=goog.userAgent.getUserAgentString();return goog.userAgent.GECKO?/rv:([^\);]+)(\)|;)/.exec(s):goog.userAgent.EDGE?/Edge\/([\d\.]+)/.exec(s):goog.userAgent.IE?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(s):goog.userAgent.WEBKIT?/WebKit\/(\S+)/.exec(s):goog.userAgent.OPERA?/(?:Version)[ \/]?(\S+)/.exec(s):void 0},goog.userAgent.getDocumentMode_=function(){var s=goog.global.document;return s?s.documentMode:void 0},goog.userAgent.VERSION=goog.userAgent.determineVersion_(),goog.userAgent.compare=function(s,o){return goog.string.compareVersions(s,o)},goog.userAgent.isVersionOrHigherCache_={},goog.userAgent.isVersionOrHigher=function(s){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,s,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,s)})},goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher,goog.userAgent.isDocumentModeOrHigher=function(s){return Number(goog.userAgent.DOCUMENT_MODE)>=s},goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher,goog.userAgent.DOCUMENT_MODE=function(){if(goog.global.document&&goog.userAgent.IE)return goog.userAgent.getDocumentMode_()}(),goog.userAgent.product={},goog.userAgent.product.ASSUME_FIREFOX=!1,goog.userAgent.product.ASSUME_IPHONE=!1,goog.userAgent.product.ASSUME_IPAD=!1,goog.userAgent.product.ASSUME_ANDROID=!1,goog.userAgent.product.ASSUME_CHROME=!1,goog.userAgent.product.ASSUME_SAFARI=!1,goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI,goog.userAgent.product.OPERA=goog.userAgent.OPERA,goog.userAgent.product.IE=goog.userAgent.IE,goog.userAgent.product.EDGE=goog.userAgent.EDGE,goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox(),goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()},goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_(),goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser(),goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome(),goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()},goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_(),goog.crypt.base64={},goog.crypt.base64.DEFAULT_ALPHABET_COMMON_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"+/=",goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"-_.",goog.crypt.base64.Alphabet={DEFAULT:0,NO_PADDING:1,WEBSAFE:2,WEBSAFE_DOT_PADDING:3,WEBSAFE_NO_PADDING:4},goog.crypt.base64.paddingChars_="=.",goog.crypt.base64.isPadding_=function(s){return goog.string.contains(goog.crypt.base64.paddingChars_,s)},goog.crypt.base64.byteToCharMaps_={},goog.crypt.base64.charToByteMap_=null,goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA,goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||typeof goog.global.btoa=="function",goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&typeof goog.global.atob=="function",goog.crypt.base64.encodeByteArray=function(s,o){goog.asserts.assert(goog.isArrayLike(s),"encodeByteArray takes an array as a parameter"),o===void 0&&(o=goog.crypt.base64.Alphabet.DEFAULT),goog.crypt.base64.init_(),o=goog.crypt.base64.byteToCharMaps_[o];for(var et=[],tt=0;tt>2;nt=(3&nt)<<4|it>>4,it=(15&it)<<2|st>>6,st&=63,ot||(st=64,rt||(it=64)),et.push(o[at],o[nt],o[it]||"",o[st]||"")}return et.join("")},goog.crypt.base64.encodeString=function(s,o){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!o?goog.global.btoa(s):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(s),o)},goog.crypt.base64.decodeString=function(s,o){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!o)return goog.global.atob(s);var et="";return goog.crypt.base64.decodeStringInternal_(s,function(tt){et+=String.fromCharCode(tt)}),et},goog.crypt.base64.decodeStringToByteArray=function(s,o){var et=[];return goog.crypt.base64.decodeStringInternal_(s,function(tt){et.push(tt)}),et},goog.crypt.base64.decodeStringToUint8Array=function(s){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var o=s.length,et=3*o/4;et%3?et=Math.floor(et):goog.crypt.base64.isPadding_(s[o-1])&&(et=goog.crypt.base64.isPadding_(s[o-2])?et-2:et-1);var tt=new Uint8Array(et),nt=0;return goog.crypt.base64.decodeStringInternal_(s,function(rt){tt[nt++]=rt}),tt.subarray(0,nt)},goog.crypt.base64.decodeStringInternal_=function(s,o){function et(st){for(;tt>4),it!=64&&(o(rt<<4&240|it>>2),ot!=64&&o(it<<6&192|ot))}},goog.crypt.base64.init_=function(){if(!goog.crypt.base64.charToByteMap_){goog.crypt.base64.charToByteMap_={};for(var s=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""),o=["+/=","+/","-_=","-_.","-_"],et=0;5>et;et++){var tt=s.concat(o[et].split(""));goog.crypt.base64.byteToCharMaps_[et]=tt;for(var nt=0;nt>>0;s=Math.floor((s-o)/jspb.BinaryConstants.TWO_TO_32)>>>0,jspb.utils.split64Low=o,jspb.utils.split64High=s},jspb.utils.splitInt64=function(s){var o=0>s,et=(s=Math.abs(s))>>>0;s=Math.floor((s-et)/jspb.BinaryConstants.TWO_TO_32),s>>>=0,o&&(s=~s>>>0,4294967295<(et=1+(~et>>>0))&&(et=0,4294967295<++s&&(s=0))),jspb.utils.split64Low=et,jspb.utils.split64High=s},jspb.utils.splitZigzag64=function(s){var o=0>s;s=2*Math.abs(s),jspb.utils.splitUint64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;o&&(s==0?et==0?et=s=4294967295:(et--,s=4294967295):s--),jspb.utils.split64Low=s,jspb.utils.split64High=et},jspb.utils.splitFloat32=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)0<1/s?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(s))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(s>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|2139095040)>>>0;else if(s>>0;else{var et=Math.floor(Math.log(s)/Math.LN2);s*=Math.pow(2,-et),s=8388607&Math.round(s*jspb.BinaryConstants.TWO_TO_23),jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|et+127<<23|s)>>>0}},jspb.utils.splitFloat64=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)jspb.utils.split64High=0<1/s?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(s))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(s>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(o<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(s>>0,jspb.utils.split64Low=et>>>0}else{var tt=0;if(2<=(et=s))for(;2<=et&&1023>tt;)tt++,et/=2;else for(;1>et&&-1022>>0,jspb.utils.split64High=(o<<31|tt+1023<<20|s)>>>0,jspb.utils.split64Low=et}},jspb.utils.splitHash64=function(s){var o=s.charCodeAt(0),et=s.charCodeAt(1),tt=s.charCodeAt(2),nt=s.charCodeAt(3),rt=s.charCodeAt(4),it=s.charCodeAt(5),ot=s.charCodeAt(6);s=s.charCodeAt(7),jspb.utils.split64Low=o+(et<<8)+(tt<<16)+(nt<<24)>>>0,jspb.utils.split64High=rt+(it<<8)+(ot<<16)+(s<<24)>>>0},jspb.utils.joinUint64=function(s,o){return o*jspb.BinaryConstants.TWO_TO_32+(s>>>0)},jspb.utils.joinInt64=function(s,o){var et=2147483648&o;return et&&(o=~o>>>0,(s=1+~s>>>0)==0&&(o=o+1>>>0)),s=jspb.utils.joinUint64(s,o),et?-s:s},jspb.utils.toZigzag64=function(s,o,et){var tt=o>>31;return et(s<<1^tt,(o<<1|s>>>31)^tt)},jspb.utils.joinZigzag64=function(s,o){return jspb.utils.fromZigzag64(s,o,jspb.utils.joinInt64)},jspb.utils.fromZigzag64=function(s,o,et){var tt=-(1&s);return et((s>>>1|o<<31)^tt,o>>>1^tt)},jspb.utils.joinFloat32=function(s,o){o=2*(s>>31)+1;var et=s>>>23&255;return s&=8388607,et==255?s?NaN:1/0*o:et==0?o*Math.pow(2,-149)*s:o*Math.pow(2,et-150)*(s+Math.pow(2,23))},jspb.utils.joinFloat64=function(s,o){var et=2*(o>>31)+1,tt=o>>>20&2047;return s=jspb.BinaryConstants.TWO_TO_32*(1048575&o)+s,tt==2047?s?NaN:1/0*et:tt==0?et*Math.pow(2,-1074)*s:et*Math.pow(2,tt-1075)*(s+jspb.BinaryConstants.TWO_TO_52)},jspb.utils.joinHash64=function(s,o){return String.fromCharCode(s>>>0&255,s>>>8&255,s>>>16&255,s>>>24&255,o>>>0&255,o>>>8&255,o>>>16&255,o>>>24&255)},jspb.utils.DIGITS="0123456789abcdef".split(""),jspb.utils.ZERO_CHAR_CODE_=48,jspb.utils.A_CHAR_CODE_=97,jspb.utils.joinUnsignedDecimalString=function(s,o){function et(nt,rt){return nt=nt?String(nt):"",rt?"0000000".slice(nt.length)+nt:nt}if(2097151>=o)return""+(jspb.BinaryConstants.TWO_TO_32*o+s);var tt=(s>>>24|o<<8)>>>0&16777215;return s=(16777215&s)+6777216*tt+6710656*(o=o>>16&65535),tt+=8147497*o,o*=2,1e7<=s&&(tt+=Math.floor(s/1e7),s%=1e7),1e7<=tt&&(o+=Math.floor(tt/1e7),tt%=1e7),et(o,0)+et(tt,o)+et(s,1)},jspb.utils.joinSignedDecimalString=function(s,o){var et=2147483648&o;return et&&(o=~o+((s=1+~s>>>0)==0?1:0)>>>0),s=jspb.utils.joinUnsignedDecimalString(s,o),et?"-"+s:s},jspb.utils.hash64ToDecimalString=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinSignedDecimalString(s,et):jspb.utils.joinUnsignedDecimalString(s,et)},jspb.utils.hash64ArrayToDecimalStrings=function(s,o){for(var et=Array(s.length),tt=0;ttot&&(rt!==1||0>>=8}goog.asserts.assert(0rt;rt++)tt[rt]=255&~tt[rt]}(),o(1,1)),goog.crypt.byteArrayToString(tt)},jspb.utils.splitDecimalString=function(s){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(s))},jspb.utils.toHexDigit_=function(s){return String.fromCharCode(10>s?jspb.utils.ZERO_CHAR_CODE_+s:jspb.utils.A_CHAR_CODE_-10+s)},jspb.utils.fromHexCharCode_=function(s){return s>=jspb.utils.A_CHAR_CODE_?s-jspb.utils.A_CHAR_CODE_+10:s-jspb.utils.ZERO_CHAR_CODE_},jspb.utils.hash64ToHexString=function(s){var o=Array(18);o[0]="0",o[1]="x";for(var et=0;8>et;et++){var tt=s.charCodeAt(7-et);o[2*et+2]=jspb.utils.toHexDigit_(tt>>4),o[2*et+3]=jspb.utils.toHexDigit_(15&tt)}return o.join("")},jspb.utils.hexStringToHash64=function(s){s=s.toLowerCase(),goog.asserts.assert(s.length==18),goog.asserts.assert(s[0]=="0"),goog.asserts.assert(s[1]=="x");for(var o="",et=0;8>et;et++){var tt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+2)),nt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+3));o=String.fromCharCode(16*tt+nt)+o}return o},jspb.utils.hash64ToNumber=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinInt64(s,et):jspb.utils.joinUint64(s,et)},jspb.utils.numberToHash64=function(s){return jspb.utils.splitInt64(s),jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.utils.countVarints=function(s,o,et){for(var tt=0,nt=o;nt>7;return et-o-tt},jspb.utils.countVarintFields=function(s,o,et,tt){var nt=0;if(128>(tt=8*tt+jspb.BinaryConstants.WireType.VARINT))for(;o>=7}if(s[o++]!=rt)break;for(nt++;128&(rt=s[o++]););}return nt},jspb.utils.countFixedFields_=function(s,o,et,tt,nt){var rt=0;if(128>tt)for(;o>=7}if(s[o++]!=it)break;rt++,o+=nt}return rt},jspb.utils.countFixed32Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED32,4)},jspb.utils.countFixed64Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED64,8)},jspb.utils.countDelimitedFields=function(s,o,et,tt){var nt=0;for(tt=8*tt+jspb.BinaryConstants.WireType.DELIMITED;o>=7}if(s[o++]!=rt)break;nt++;for(var it=0,ot=1;it+=(127&(rt=s[o++]))*ot,ot*=128,(128&rt)!=0;);o+=it}return nt},jspb.utils.debugBytesToTextFormat=function(s){var o='"';if(s){s=jspb.utils.byteSourceToUint8Array(s);for(var et=0;ets[et]&&(o+="0"),o+=s[et].toString(16)}return o+'"'},jspb.utils.debugScalarToTextFormat=function(s){return typeof s=="string"?goog.string.quote(s):s.toString()},jspb.utils.stringToByteArray=function(s){for(var o=new Uint8Array(s.length),et=0;etjspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)},jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)},jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1},jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_},jspb.BinaryDecoder.prototype.setBlock=function(s,o,et){this.bytes_=jspb.utils.byteSourceToUint8Array(s),this.start_=o!==void 0?o:0,this.end_=et!==void 0?this.start_+et:this.bytes_.length,this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_},jspb.BinaryDecoder.prototype.setEnd=function(s){this.end_=s},jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_},jspb.BinaryDecoder.prototype.setCursor=function(s){this.cursor_=s},jspb.BinaryDecoder.prototype.advance=function(s){this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_)},jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_},jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_},jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_},jspb.BinaryDecoder.prototype.readSplitVarint64=function(s){for(var o=128,et=0,tt=0,nt=0;4>nt&&128<=o;nt++)et|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt;if(128<=o&&(et|=(127&(o=this.bytes_[this.cursor_++]))<<28,tt|=(127&o)>>4),128<=o)for(nt=0;5>nt&&128<=o;nt++)tt|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt+3;if(128>o)return s(et>>>0,tt>>>0);goog.asserts.fail("Failed to read varint, encoding is invalid."),this.error_=!0},jspb.BinaryDecoder.prototype.readSplitZigzagVarint64=function(s){return this.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryDecoder.prototype.readSplitFixed64=function(s){var o=this.bytes_,et=this.cursor_;this.cursor_+=8;for(var tt=0,nt=0,rt=et+7;rt>=et;rt--)tt=tt<<8|o[rt],nt=nt<<8|o[rt+4];return s(tt,nt)},jspb.BinaryDecoder.prototype.skipVarint=function(){for(;128&this.bytes_[this.cursor_];)this.cursor_++;this.cursor_++},jspb.BinaryDecoder.prototype.unskipVarint=function(s){for(;128>>=7;this.cursor_--},jspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var s=this.bytes_,o=s[this.cursor_+0],et=127&o;return 128>o?(this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+1]))<<7,128>o?(this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+2]))<<14,128>o?(this.cursor_+=3,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+3]))<<21,128>o?(this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(15&(o=s[this.cursor_+4]))<<28,128>o?(this.cursor_+=5,goog.asserts.assert(this.cursor_<=this.end_),et>>>0):(this.cursor_+=5,128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&goog.asserts.assert(!1),goog.asserts.assert(this.cursor_<=this.end_),et)))))},jspb.BinaryDecoder.prototype.readSignedVarint32=jspb.BinaryDecoder.prototype.readUnsignedVarint32,jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()},jspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()},jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var s=this.readUnsignedVarint32();return s>>>1^-(1&s)},jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinUint64)},jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString)},jspb.BinaryDecoder.prototype.readSignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinInt64)},jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){return this.readSplitVarint64(jspb.utils.joinZigzag64)},jspb.BinaryDecoder.prototype.readZigzagVarintHash64=function(){return this.readSplitZigzagVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readUint8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s},jspb.BinaryDecoder.prototype.readUint16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8},jspb.BinaryDecoder.prototype.readUint32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8|et<<16|tt<<24)>>>0},jspb.BinaryDecoder.prototype.readUint64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUint64(s,o)},jspb.BinaryDecoder.prototype.readUint64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUnsignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readInt8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s<<24>>24},jspb.BinaryDecoder.prototype.readInt16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8)<<16>>16},jspb.BinaryDecoder.prototype.readInt32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8|et<<16|tt<<24},jspb.BinaryDecoder.prototype.readInt64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinInt64(s,o)},jspb.BinaryDecoder.prototype.readInt64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinSignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readFloat=function(){var s=this.readUint32();return jspb.utils.joinFloat32(s,0)},jspb.BinaryDecoder.prototype.readDouble=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinFloat64(s,o)},jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]},jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()},jspb.BinaryDecoder.prototype.readString=function(s){var o=this.bytes_,et=this.cursor_;s=et+s;for(var tt=[],nt="";etrt)tt.push(rt);else{if(192>rt)continue;if(224>rt){var it=o[et++];tt.push((31&rt)<<6|63&it)}else if(240>rt){it=o[et++];var ot=o[et++];tt.push((15&rt)<<12|(63&it)<<6|63&ot)}else 248>rt&&(rt=(7&rt)<<18|(63&(it=o[et++]))<<12|(63&(ot=o[et++]))<<6|63&o[et++],rt-=65536,tt.push(55296+(rt>>10&1023),56320+(1023&rt)))}8192<=tt.length&&(nt+=String.fromCharCode.apply(null,tt),tt.length=0)}return nt+=goog.crypt.byteArrayToString(tt),this.cursor_=et,nt},jspb.BinaryDecoder.prototype.readStringWithLength=function(){var s=this.readUnsignedVarint32();return this.readString(s)},jspb.BinaryDecoder.prototype.readBytes=function(s){if(0>s||this.cursor_+s>this.bytes_.length)return this.error_=!0,goog.asserts.fail("Invalid byte length!"),new Uint8Array(0);var o=this.bytes_.subarray(this.cursor_,this.cursor_+s);return this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_),o},jspb.BinaryDecoder.prototype.readVarintHash64=function(){return this.readSplitVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readFixedHash64=function(){var s=this.bytes_,o=this.cursor_,et=s[o+0],tt=s[o+1],nt=s[o+2],rt=s[o+3],it=s[o+4],ot=s[o+5],st=s[o+6];return s=s[o+7],this.cursor_+=8,String.fromCharCode(et,tt,nt,rt,it,ot,st,s)},jspb.BinaryReader=function(s,o,et){this.decoder_=jspb.BinaryDecoder.alloc(s,o,et),this.fieldCursor_=this.decoder_.getCursor(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null},jspb.BinaryReader.instanceCache_=[],jspb.BinaryReader.alloc=function(s,o,et){if(jspb.BinaryReader.instanceCache_.length){var tt=jspb.BinaryReader.instanceCache_.pop();return s&&tt.decoder_.setBlock(s,o,et),tt}return new jspb.BinaryReader(s,o,et)},jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc,jspb.BinaryReader.prototype.free=function(){this.decoder_.clear(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null,100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)},jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_},jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()},jspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()},jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_},jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_},jspb.BinaryReader.prototype.isDelimited=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED},jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP},jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()},jspb.BinaryReader.prototype.setBlock=function(s,o,et){this.decoder_.setBlock(s,o,et),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.advance=function(s){this.decoder_.advance(s)},jspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return goog.asserts.fail("Decoder hit an error"),!1;this.fieldCursor_=this.decoder_.getCursor();var s=this.decoder_.readUnsignedVarint32(),o=s>>>3;return(s&=7)!=jspb.BinaryConstants.WireType.VARINT&&s!=jspb.BinaryConstants.WireType.FIXED32&&s!=jspb.BinaryConstants.WireType.FIXED64&&s!=jspb.BinaryConstants.WireType.DELIMITED&&s!=jspb.BinaryConstants.WireType.START_GROUP&&s!=jspb.BinaryConstants.WireType.END_GROUP?(goog.asserts.fail("Invalid wire type: %s (at position %s)",s,this.fieldCursor_),this.error_=!0,!1):(this.nextField_=o,this.nextWireType_=s,!0)},jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)},jspb.BinaryReader.prototype.skipMatchingFields=function(){var s=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==s;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()},jspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(goog.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()},jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)goog.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField();else{var s=this.decoder_.readUnsignedVarint32();this.decoder_.advance(s)}},jspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(goog.asserts.fail("Invalid wire type for skipFixed32Field"),this.skipField()):this.decoder_.advance(4)},jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(goog.asserts.fail("Invalid wire type for skipFixed64Field"),this.skipField()):this.decoder_.advance(8)},jspb.BinaryReader.prototype.skipGroup=function(){for(var s=this.nextField_;;){if(!this.nextField()){goog.asserts.fail("Unmatched start-group tag: stream EOF"),this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP){this.nextField_!=s&&(goog.asserts.fail("Unmatched end-group tag"),this.error_=!0);break}this.skipField()}},jspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:goog.asserts.fail("Invalid wire encoding for field.")}},jspb.BinaryReader.prototype.registerReadCallback=function(s,o){this.readCallbacks_===null&&(this.readCallbacks_={}),goog.asserts.assert(!this.readCallbacks_[s]),this.readCallbacks_[s]=o},jspb.BinaryReader.prototype.runReadCallback=function(s){return goog.asserts.assert(this.readCallbacks_!==null),s=this.readCallbacks_[s],goog.asserts.assert(s),s(this)},jspb.BinaryReader.prototype.readAny=function(s){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(s);var o=jspb.BinaryConstants.FieldType;switch(s){case o.DOUBLE:return this.readDouble();case o.FLOAT:return this.readFloat();case o.INT64:return this.readInt64();case o.UINT64:return this.readUint64();case o.INT32:return this.readInt32();case o.FIXED64:return this.readFixed64();case o.FIXED32:return this.readFixed32();case o.BOOL:return this.readBool();case o.STRING:return this.readString();case o.GROUP:goog.asserts.fail("Group field type not supported in readAny()");case o.MESSAGE:goog.asserts.fail("Message field type not supported in readAny()");case o.BYTES:return this.readBytes();case o.UINT32:return this.readUint32();case o.ENUM:return this.readEnum();case o.SFIXED32:return this.readSfixed32();case o.SFIXED64:return this.readSfixed64();case o.SINT32:return this.readSint32();case o.SINT64:return this.readSint64();case o.FHASH64:return this.readFixedHash64();case o.VHASH64:return this.readVarintHash64();default:goog.asserts.fail("Invalid field type in readAny()")}return 0},jspb.BinaryReader.prototype.readMessage=function(s,o){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var et=this.decoder_.getEnd(),tt=this.decoder_.readUnsignedVarint32();tt=this.decoder_.getCursor()+tt,this.decoder_.setEnd(tt),o(s,this),this.decoder_.setCursor(tt),this.decoder_.setEnd(et)},jspb.BinaryReader.prototype.readGroup=function(s,o,et){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP),goog.asserts.assert(this.nextField_==s),et(o,this),this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(goog.asserts.fail("Group submessage did not end with an END_GROUP tag"),this.error_=!0)},jspb.BinaryReader.prototype.getFieldDecoder=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32(),o=this.decoder_.getCursor(),et=o+s;return s=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),o,s),this.decoder_.setCursor(et),s},jspb.BinaryReader.prototype.readInt32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32()},jspb.BinaryReader.prototype.readInt32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32String()},jspb.BinaryReader.prototype.readInt64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readInt64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64String()},jspb.BinaryReader.prototype.readUint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readUint32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32String()},jspb.BinaryReader.prototype.readUint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64()},jspb.BinaryReader.prototype.readUint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64String()},jspb.BinaryReader.prototype.readSint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint32()},jspb.BinaryReader.prototype.readSint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64()},jspb.BinaryReader.prototype.readSint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64String()},jspb.BinaryReader.prototype.readFixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readUint32()},jspb.BinaryReader.prototype.readFixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64()},jspb.BinaryReader.prototype.readFixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64String()},jspb.BinaryReader.prototype.readSfixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32()},jspb.BinaryReader.prototype.readSfixed32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32().toString()},jspb.BinaryReader.prototype.readSfixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64()},jspb.BinaryReader.prototype.readSfixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64String()},jspb.BinaryReader.prototype.readFloat=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readFloat()},jspb.BinaryReader.prototype.readDouble=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readDouble()},jspb.BinaryReader.prototype.readBool=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),!!this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readEnum=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readString=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(s)},jspb.BinaryReader.prototype.readBytes=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(s)},jspb.BinaryReader.prototype.readVarintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readVarintHash64()},jspb.BinaryReader.prototype.readSintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarintHash64()},jspb.BinaryReader.prototype.readSplitVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(s)},jspb.BinaryReader.prototype.readSplitZigzagVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryReader.prototype.readFixedHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readFixedHash64()},jspb.BinaryReader.prototype.readSplitFixed64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readSplitFixed64(s)},jspb.BinaryReader.prototype.readPackedField_=function(s){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var o=this.decoder_.readUnsignedVarint32();o=this.decoder_.getCursor()+o;for(var et=[];this.decoder_.getCursor()o.length?et.length:o.length;for(s.getJsPbMessageId()&&(tt[0]=s.getJsPbMessageId(),nt=1);nt>>1|(1&this.hi)<<31)>>>0,this.hi>>>1>>>0)},jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)},jspb.arith.UInt64.prototype.msb=function(){return!!(2147483648&this.hi)},jspb.arith.UInt64.prototype.lsb=function(){return!!(1&this.lo)},jspb.arith.UInt64.prototype.zero=function(){return this.lo==0&&this.hi==0},jspb.arith.UInt64.prototype.add=function(s){return new jspb.arith.UInt64((this.lo+s.lo&4294967295)>>>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.UInt64.prototype.sub=function(s){return new jspb.arith.UInt64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.UInt64.mul32x32=function(s,o){var et=65535&s,tt=65535&o,nt=o>>>16;for(o=et*tt+65536*(et*nt&65535)+65536*((s>>>=16)*tt&65535),et=s*nt+(et*nt>>>16)+(s*tt>>>16);4294967296<=o;)o-=4294967296,et+=1;return new jspb.arith.UInt64(o>>>0,et>>>0)},jspb.arith.UInt64.prototype.mul=function(s){var o=jspb.arith.UInt64.mul32x32(this.lo,s);return(s=jspb.arith.UInt64.mul32x32(this.hi,s)).hi=s.lo,s.lo=0,o.add(s)},jspb.arith.UInt64.prototype.div=function(s){if(s==0)return[];var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(this.lo,this.hi);s=new jspb.arith.UInt64(s,0);for(var tt=new jspb.arith.UInt64(1,0);!s.msb();)s=s.leftShift(),tt=tt.leftShift();for(;!tt.zero();)0>=s.cmp(et)&&(o=o.add(tt),et=et.sub(s)),s=s.rightShift(),tt=tt.rightShift();return[o,et]},jspb.arith.UInt64.prototype.toString=function(){for(var s="",o=this;!o.zero();){var et=(o=o.div(10))[0];s=o[1].lo+s,o=et}return s==""&&(s="0"),s},jspb.arith.UInt64.fromString=function(s){for(var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(0,0),tt=0;tts[tt]||"9">>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.sub=function(s){return new jspb.arith.Int64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)},jspb.arith.Int64.prototype.toString=function(){var s=(2147483648&this.hi)!=0,o=new jspb.arith.UInt64(this.lo,this.hi);return s&&(o=new jspb.arith.UInt64(0,0).sub(o)),(s?"-":"")+o.toString()},jspb.arith.Int64.fromString=function(s){var o=0>>7|o<<25)>>>0,o>>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSplitFixed64=function(s,o){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(o==Math.floor(o)),goog.asserts.assert(0<=s&&s>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSignedVarint32=function(s){if(goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&so;o++)this.buffer_.push(127&s|128),s>>=7;this.buffer_.push(1)}},jspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_31&&s>31)>>>0)},jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s>>0,tt>>>0)})},jspb.BinaryEncoder.prototype.writeUint8=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&256>s),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeUint16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&65536>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeUint32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeUint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&ss),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeInt16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(-32768<=s&&32768>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeInt32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeInt64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_63&&+s=-jspb.BinaryConstants.FLOAT32_MAX&&s<=jspb.BinaryConstants.FLOAT32_MAX),jspb.utils.splitFloat32(s),this.writeUint32(jspb.utils.split64Low)},jspb.BinaryEncoder.prototype.writeDouble=function(s){goog.asserts.assert(1/0===s||-1/0===s||isNaN(s)||s>=-jspb.BinaryConstants.FLOAT64_MAX&&s<=jspb.BinaryConstants.FLOAT64_MAX),jspb.utils.splitFloat64(s),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeBool=function(s){goog.asserts.assert(typeof s=="boolean"||typeof s=="number"),this.buffer_.push(s?1:0)},jspb.BinaryEncoder.prototype.writeEnum=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&stt)this.buffer_.push(tt);else if(2048>tt)this.buffer_.push(tt>>6|192),this.buffer_.push(63&tt|128);else if(65536>tt)if(55296<=tt&&56319>=tt&&et+1=nt&&(tt=1024*(tt-55296)+nt-56320+65536,this.buffer_.push(tt>>18|240),this.buffer_.push(tt>>12&63|128),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128),et++)}else this.buffer_.push(tt>>12|224),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128)}return this.buffer_.length-o},jspb.BinaryWriter=function(){this.blocks_=[],this.totalLength_=0,this.encoder_=new jspb.BinaryEncoder,this.bookmarks_=[]},jspb.BinaryWriter.prototype.appendUint8Array_=function(s){var o=this.encoder_.end();this.blocks_.push(o),this.blocks_.push(s),this.totalLength_+=o.length+s.length},jspb.BinaryWriter.prototype.beginDelimited_=function(s){return this.writeFieldHeader_(s,jspb.BinaryConstants.WireType.DELIMITED),s=this.encoder_.end(),this.blocks_.push(s),this.totalLength_+=s.length,s.push(this.totalLength_),s},jspb.BinaryWriter.prototype.endDelimited_=function(s){var o=s.pop();for(o=this.totalLength_+this.encoder_.length()-o,goog.asserts.assert(0<=o);127>>=7,this.totalLength_++;s.push(o),this.totalLength_++},jspb.BinaryWriter.prototype.writeSerializedMessage=function(s,o,et){this.appendUint8Array_(s.subarray(o,et))},jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(s,o,et){s!=null&&o!=null&&et!=null&&this.writeSerializedMessage(s,o,et)},jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[],this.encoder_.end(),this.totalLength_=0,this.bookmarks_=[]},jspb.BinaryWriter.prototype.getResultBuffer=function(){goog.asserts.assert(this.bookmarks_.length==0);for(var s=new Uint8Array(this.totalLength_+this.encoder_.length()),o=this.blocks_,et=o.length,tt=0,nt=0;nt=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o>>0,rt>>>0)})},jspb.BinaryWriter.prototype.writeRepeatedInt32=function(s,o){if(o!=null)for(var et=0;et>>0,ot>>>0)});this.endDelimited_(s)}},jspb.BinaryWriter.prototype.writePackedInt64String=function(s,o){if(o!=null&&o.length){s=this.beginDelimited_(s);for(var et=0;et-1};function ct(xt){if(typeof xt!="string"&&(xt=String(xt)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(xt))throw new TypeError("Invalid character in header field name");return xt.toLowerCase()}function pt(xt){return typeof xt!="string"&&(xt=String(xt)),xt}function ft(xt){var Ct={next:function(){var kt=xt.shift();return{done:kt===void 0,value:kt}}};return st&&(Ct[Symbol.iterator]=function(){return Ct}),Ct}function gt(xt){this.map={},xt instanceof gt?xt.forEach(function(Ct,kt){this.append(kt,Ct)},this):Array.isArray(xt)?xt.forEach(function(Ct){this.append(Ct[0],Ct[1])},this):xt&&Object.getOwnPropertyNames(xt).forEach(function(Ct){this.append(Ct,xt[Ct])},this)}function yt(xt){if(xt.bodyUsed)return Promise.reject(new TypeError("Already read"));xt.bodyUsed=!0}function Ut(xt){return new Promise(function(Ct,kt){xt.onload=function(){Ct(xt.result)},xt.onerror=function(){kt(xt.error)}})}function Ft(xt){var Ct=new FileReader,kt=Ut(Ct);return Ct.readAsArrayBuffer(xt),kt}function mt(xt){if(xt.slice)return xt.slice(0);var Ct=new Uint8Array(xt.byteLength);return Ct.set(new Uint8Array(xt)),Ct.buffer}function vt(){return this.bodyUsed=!1,this._initBody=function(xt){var Ct;this._bodyInit=xt,xt?typeof xt=="string"?this._bodyText=xt:at&&Blob.prototype.isPrototypeOf(xt)?this._bodyBlob=xt:lt&&FormData.prototype.isPrototypeOf(xt)?this._bodyFormData=xt:ot&&URLSearchParams.prototype.isPrototypeOf(xt)?this._bodyText=xt.toString():ut&&at&&(Ct=xt)&&DataView.prototype.isPrototypeOf(Ct)?(this._bodyArrayBuffer=mt(xt.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):ut&&(ArrayBuffer.prototype.isPrototypeOf(xt)||ht(xt))?this._bodyArrayBuffer=mt(xt):this._bodyText=xt=Object.prototype.toString.call(xt):this._bodyText="",this.headers.get("content-type")||(typeof xt=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):ot&&URLSearchParams.prototype.isPrototypeOf(xt)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},at&&(this.blob=function(){var xt=yt(this);if(xt)return xt;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?yt(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(Ft)}),this.text=function(){var xt,Ct,kt,Nt=yt(this);if(Nt)return Nt;if(this._bodyBlob)return xt=this._bodyBlob,Ct=new FileReader,kt=Ut(Ct),Ct.readAsText(xt),kt;if(this._bodyArrayBuffer)return Promise.resolve(function(Ot){for(var Wt=new Uint8Array(Ot),Dt=new Array(Wt.length),Et=0;Et-1?Nt:kt),this.mode=Ct.mode||this.mode||null,this.signal=Ct.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Ot)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(Ot)}function Rt(xt){var Ct=new FormData;return xt.trim().split("&").forEach(function(kt){if(kt){var Nt=kt.split("="),Ot=Nt.shift().replace(/\+/g," "),Wt=Nt.join("=").replace(/\+/g," ");Ct.append(decodeURIComponent(Ot),decodeURIComponent(Wt))}}),Ct}function St(xt,Ct){Ct||(Ct={}),this.type="default",this.status=Ct.status===void 0?200:Ct.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in Ct?Ct.statusText:"OK",this.headers=new gt(Ct.headers),this.url=Ct.url||"",this._initBody(xt)}Lt.prototype.clone=function(){return new Lt(this,{body:this._bodyInit})},vt.call(Lt.prototype),vt.call(St.prototype),St.prototype.clone=function(){return new St(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new gt(this.headers),url:this.url})},St.error=function(){var xt=new St(null,{status:0,statusText:""});return xt.type="error",xt};var Tt=[301,302,303,307,308];St.redirect=function(xt,Ct){if(Tt.indexOf(Ct)===-1)throw new RangeError("Invalid status code");return new St(null,{status:Ct,headers:{location:xt}})},it.DOMException=rt.DOMException;try{new it.DOMException}catch{it.DOMException=function(xt,Ct){this.message=xt,this.name=Ct;var kt=Error(xt);this.stack=kt.stack},it.DOMException.prototype=Object.create(Error.prototype),it.DOMException.prototype.constructor=it.DOMException}function Bt(xt,Ct){return new Promise(function(kt,Nt){var Ot=new Lt(xt,Ct);if(Ot.signal&&Ot.signal.aborted)return Nt(new it.DOMException("Aborted","AbortError"));var Wt=new XMLHttpRequest;function Dt(){Wt.abort()}Wt.onload=function(){var Et,Pt,zt={status:Wt.status,statusText:Wt.statusText,headers:(Et=Wt.getAllResponseHeaders()||"",Pt=new gt,Et.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(Kt){var nn=Kt.split(":"),Zt=nn.shift().trim();if(Zt){var jt=nn.join(":").trim();Pt.append(Zt,jt)}}),Pt)};zt.url="responseURL"in Wt?Wt.responseURL:zt.headers.get("X-Request-URL");var en="response"in Wt?Wt.response:Wt.responseText;kt(new St(en,zt))},Wt.onerror=function(){Nt(new TypeError("Network request failed"))},Wt.ontimeout=function(){Nt(new TypeError("Network request failed"))},Wt.onabort=function(){Nt(new it.DOMException("Aborted","AbortError"))},Wt.open(Ot.method,Ot.url,!0),Ot.credentials==="include"?Wt.withCredentials=!0:Ot.credentials==="omit"&&(Wt.withCredentials=!1),"responseType"in Wt&&at&&(Wt.responseType="blob"),Ot.headers.forEach(function(Et,Pt){Wt.setRequestHeader(Pt,Et)}),Ot.signal&&(Ot.signal.addEventListener("abort",Dt),Wt.onreadystatechange=function(){Wt.readyState===4&&Ot.signal.removeEventListener("abort",Dt)}),Wt.send(Ot._bodyInit===void 0?null:Ot._bodyInit)})}Bt.polyfill=!0,rt.fetch||(rt.fetch=Bt,rt.Headers=gt,rt.Request=Lt,rt.Response=St),it.Headers=gt,it.Request=Lt,it.Response=St,it.fetch=Bt,Object.defineProperty(it,"__esModule",{value:!0})})({})})(tt),tt.fetch.ponyfill=!0,delete tt.fetch.polyfill;var nt=tt;(o=nt.fetch).default=nt.fetch,o.fetch=nt.fetch,o.Headers=nt.Headers,o.Request=nt.Request,o.Response=nt.Response,s.exports=o},function(s,o,et){(function(tt){const nt=et(216),rt=et(51),it=(ot,st,at)=>({from:it,EnvVarError:et(51),get:function(lt){if(!lt)return ot;if(arguments.length>1)throw new rt("It looks like you passed more than one argument to env.get(). Since env-var@6.0.0 this is no longer supported. To set a default value use env.get(TARGET).default(DEFAULT)");return nt(ot,lt,st||{},at||function(){})},accessors:et(93),logger:et(230)(console.log,ot.NODE_ENV)});s.exports=it(tt===void 0?{}:tt.env)}).call(this,et(2))},function(s,o,et){(function(tt){const nt=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,rt=typeof AbortController=="function"?AbortController:class{constructor(){this.signal=new st}abort(){this.signal.dispatchEvent("abort")}},it=typeof AbortSignal=="function",ot=typeof rt.AbortSignal=="function",st=it?AbortSignal:ot?rt.AbortController:class{constructor(){this.aborted=!1,this._listeners=[]}dispatchEvent(Ft){if(Ft==="abort"){this.aborted=!0;const mt={type:Ft,target:this};this.onabort(mt),this._listeners.forEach(vt=>vt(mt),this)}}onabort(){}addEventListener(Ft,mt){Ft==="abort"&&this._listeners.push(mt)}removeEventListener(Ft,mt){Ft==="abort"&&(this._listeners=this._listeners.filter(vt=>vt!==mt))}},at=new Set,lt=(Ft,mt)=>{const vt="LRU_CACHE_OPTION_"+Ft;ht(vt)&&ct(vt,Ft+" option","options."+mt,Ut)},ut=(Ft,mt)=>{const vt="LRU_CACHE_METHOD_"+Ft;if(ht(vt)){const{prototype:At}=Ut,{get:Lt}=Object.getOwnPropertyDescriptor(At,Ft);ct(vt,Ft+" method",`cache.${mt}()`,Lt)}},dt=(...Ft)=>{typeof tt=="object"&&tt&&typeof tt.emitWarning=="function"?tt.emitWarning(...Ft):console.error(...Ft)},ht=Ft=>!at.has(Ft),ct=(Ft,mt,vt,At)=>{at.add(Ft),dt(`The ${mt} is deprecated. Please use ${vt} instead.`,"DeprecationWarning",Ft,At)},pt=Ft=>Ft&&Ft===Math.floor(Ft)&&Ft>0&&isFinite(Ft),ft=Ft=>pt(Ft)?Ft<=Math.pow(2,8)?Uint8Array:Ft<=Math.pow(2,16)?Uint16Array:Ft<=Math.pow(2,32)?Uint32Array:Ft<=Number.MAX_SAFE_INTEGER?gt:null:null;class gt extends Array{constructor(mt){super(mt),this.fill(0)}}class yt{constructor(mt){if(mt===0)return[];const vt=ft(mt);this.heap=new vt(mt),this.length=0}push(mt){this.heap[this.length++]=mt}pop(){return this.heap[--this.length]}}class Ut{constructor(mt={}){const{max:vt=0,ttl:At,ttlResolution:Lt=1,ttlAutopurge:Rt,updateAgeOnGet:St,updateAgeOnHas:Tt,allowStale:Bt,dispose:xt,disposeAfter:Ct,noDisposeOnSet:kt,noUpdateTTL:Nt,maxSize:Ot=0,maxEntrySize:Wt=0,sizeCalculation:Dt,fetchMethod:Et,fetchContext:Pt,noDeleteOnFetchRejection:zt,noDeleteOnStaleGet:en}=mt,{length:Kt,maxAge:nn,stale:Zt}=mt instanceof Ut?{}:mt;if(vt!==0&&!pt(vt))throw new TypeError("max option must be a nonnegative integer");const jt=vt?ft(vt):Array;if(!jt)throw new Error("invalid max value: "+vt);if(this.max=vt,this.maxSize=Ot,this.maxEntrySize=Wt||this.maxSize,this.sizeCalculation=Dt||Kt,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=Et||null,this.fetchMethod&&typeof this.fetchMethod!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=Pt,!this.fetchMethod&&Pt!==void 0)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(vt).fill(null),this.valList=new Array(vt).fill(null),this.next=new jt(vt),this.prev=new jt(vt),this.head=0,this.tail=0,this.free=new yt(vt),this.initialFill=1,this.size=0,typeof xt=="function"&&(this.dispose=xt),typeof Ct=="function"?(this.disposeAfter=Ct,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!kt,this.noUpdateTTL=!!Nt,this.noDeleteOnFetchRejection=!!zt,this.maxEntrySize!==0){if(this.maxSize!==0&&!pt(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!pt(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!Bt||!!Zt,this.noDeleteOnStaleGet=!!en,this.updateAgeOnGet=!!St,this.updateAgeOnHas=!!Tt,this.ttlResolution=pt(Lt)||Lt===0?Lt:1,this.ttlAutopurge=!!Rt,this.ttl=At||nn||0,this.ttl){if(!pt(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(this.max===0&&this.ttl===0&&this.maxSize===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const Vt="LRU_CACHE_UNBOUNDED";ht(Vt)&&(at.add(Vt),dt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Vt,Ut))}Zt&<("stale","allowStale"),nn&<("maxAge","ttl"),Kt&<("length","sizeCalculation")}getRemainingTTL(mt){return this.has(mt,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new gt(this.max),this.starts=new gt(this.max),this.setItemTTL=(At,Lt,Rt=nt.now())=>{if(this.starts[At]=Lt!==0?Rt:0,this.ttls[At]=Lt,Lt!==0&&this.ttlAutopurge){const St=setTimeout(()=>{this.isStale(At)&&this.delete(this.keyList[At])},Lt+1);St.unref&&St.unref()}},this.updateItemAge=At=>{this.starts[At]=this.ttls[At]!==0?nt.now():0};let mt=0;const vt=()=>{const At=nt.now();if(this.ttlResolution>0){mt=At;const Lt=setTimeout(()=>mt=0,this.ttlResolution);Lt.unref&&Lt.unref()}return At};this.getRemainingTTL=At=>{const Lt=this.keyMap.get(At);return Lt===void 0?0:this.ttls[Lt]===0||this.starts[Lt]===0?1/0:this.starts[Lt]+this.ttls[Lt]-(mt||vt())},this.isStale=At=>this.ttls[At]!==0&&this.starts[At]!==0&&(mt||vt())-this.starts[At]>this.ttls[At]}updateItemAge(mt){}setItemTTL(mt,vt,At){}isStale(mt){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new gt(this.max),this.removeItemSize=mt=>{this.calculatedSize-=this.sizes[mt],this.sizes[mt]=0},this.requireSize=(mt,vt,At,Lt)=>{if(!pt(At)){if(!Lt)throw new TypeError("invalid size value (must be positive integer)");if(typeof Lt!="function")throw new TypeError("sizeCalculation must be a function");if(At=Lt(vt,mt),!pt(At))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return At},this.addItemSize=(mt,vt)=>{this.sizes[mt]=vt;const At=this.maxSize-this.sizes[mt];for(;this.calculatedSize>At;)this.evict(!0);this.calculatedSize+=this.sizes[mt]}}removeItemSize(mt){}addItemSize(mt,vt){}requireSize(mt,vt,At,Lt){if(At||Lt)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.tail;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.head);)vt=this.prev[vt]}*rindexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.head;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.tail);)vt=this.next[vt]}isValidIndex(mt){return this.keyMap.get(this.keyList[mt])===mt}*entries(){for(const mt of this.indexes())yield[this.keyList[mt],this.valList[mt]]}*rentries(){for(const mt of this.rindexes())yield[this.keyList[mt],this.valList[mt]]}*keys(){for(const mt of this.indexes())yield this.keyList[mt]}*rkeys(){for(const mt of this.rindexes())yield this.keyList[mt]}*values(){for(const mt of this.indexes())yield this.valList[mt]}*rvalues(){for(const mt of this.rindexes())yield this.valList[mt]}[Symbol.iterator](){return this.entries()}find(mt,vt={}){for(const At of this.indexes())if(mt(this.valList[At],this.keyList[At],this))return this.get(this.keyList[At],vt)}forEach(mt,vt=this){for(const At of this.indexes())mt.call(vt,this.valList[At],this.keyList[At],this)}rforEach(mt,vt=this){for(const At of this.rindexes())mt.call(vt,this.valList[At],this.keyList[At],this)}get prune(){return ut("prune","purgeStale"),this.purgeStale}purgeStale(){let mt=!1;for(const vt of this.rindexes({allowStale:!0}))this.isStale(vt)&&(this.delete(this.keyList[vt]),mt=!0);return mt}dump(){const mt=[];for(const vt of this.indexes({allowStale:!0})){const At=this.keyList[vt],Lt=this.valList[vt],Rt={value:this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt};if(this.ttls){Rt.ttl=this.ttls[vt];const St=nt.now()-this.starts[vt];Rt.start=Math.floor(Date.now()-St)}this.sizes&&(Rt.size=this.sizes[vt]),mt.unshift([At,Rt])}return mt}load(mt){this.clear();for(const[vt,At]of mt){if(At.start){const Lt=Date.now()-At.start;At.start=nt.now()-Lt}this.set(vt,At.value,At)}}dispose(mt,vt,At){}set(mt,vt,{ttl:At=this.ttl,start:Lt,noDisposeOnSet:Rt=this.noDisposeOnSet,size:St=0,sizeCalculation:Tt=this.sizeCalculation,noUpdateTTL:Bt=this.noUpdateTTL}={}){if(St=this.requireSize(mt,vt,St,Tt),this.maxEntrySize&&St>this.maxEntrySize)return this;let xt=this.size===0?void 0:this.keyMap.get(mt);if(xt===void 0)xt=this.newIndex(),this.keyList[xt]=mt,this.valList[xt]=vt,this.keyMap.set(mt,xt),this.next[this.tail]=xt,this.prev[xt]=this.tail,this.tail=xt,this.size++,this.addItemSize(xt,St),Bt=!1;else{const Ct=this.valList[xt];vt!==Ct&&(this.isBackgroundFetch(Ct)?Ct.__abortController.abort():Rt||(this.dispose(Ct,mt,"set"),this.disposeAfter&&this.disposed.push([Ct,mt,"set"])),this.removeItemSize(xt),this.valList[xt]=vt,this.addItemSize(xt,St)),this.moveToTail(xt)}if(At===0||this.ttl!==0||this.ttls||this.initializeTTLTracking(),Bt||this.setItemTTL(xt,At,Lt),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return this.size===0?this.tail:this.size===this.max&&this.max!==0?this.evict(!1):this.free.length!==0?this.free.pop():this.initialFill++}pop(){if(this.size){const mt=this.valList[this.head];return this.evict(!0),mt}}evict(mt){const vt=this.head,At=this.keyList[vt],Lt=this.valList[vt];return this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,At,"evict"),this.disposeAfter&&this.disposed.push([Lt,At,"evict"])),this.removeItemSize(vt),mt&&(this.keyList[vt]=null,this.valList[vt]=null,this.free.push(vt)),this.head=this.next[vt],this.keyMap.delete(At),this.size--,vt}has(mt,{updateAgeOnHas:vt=this.updateAgeOnHas}={}){const At=this.keyMap.get(mt);return At!==void 0&&!this.isStale(At)&&(vt&&this.updateItemAge(At),!0)}peek(mt,{allowStale:vt=this.allowStale}={}){const At=this.keyMap.get(mt);if(At!==void 0&&(vt||!this.isStale(At))){const Lt=this.valList[At];return this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt}}backgroundFetch(mt,vt,At,Lt){const Rt=vt===void 0?void 0:this.valList[vt];if(this.isBackgroundFetch(Rt))return Rt;const St=new rt,Tt={signal:St.signal,options:At,context:Lt},Bt=new Promise(xt=>xt(this.fetchMethod(mt,Rt,Tt))).then(xt=>(St.signal.aborted||this.set(mt,xt,Tt.options),xt),xt=>{if(this.valList[vt]===Bt&&(!At.noDeleteOnFetchRejection||Bt.__staleWhileFetching===void 0?this.delete(mt):this.valList[vt]=Bt.__staleWhileFetching),Bt.__returned===Bt)throw xt});return Bt.__abortController=St,Bt.__staleWhileFetching=Rt,Bt.__returned=null,vt===void 0?(this.set(mt,Bt,Tt.options),vt=this.keyMap.get(mt)):this.valList[vt]=Bt,Bt}isBackgroundFetch(mt){return mt&&typeof mt=="object"&&typeof mt.then=="function"&&Object.prototype.hasOwnProperty.call(mt,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(mt,"__returned")&&(mt.__returned===mt||mt.__returned===null)}async fetch(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet,ttl:Rt=this.ttl,noDisposeOnSet:St=this.noDisposeOnSet,size:Tt=0,sizeCalculation:Bt=this.sizeCalculation,noUpdateTTL:xt=this.noUpdateTTL,noDeleteOnFetchRejection:Ct=this.noDeleteOnFetchRejection,fetchContext:kt=this.fetchContext,forceRefresh:Nt=!1}={}){if(!this.fetchMethod)return this.get(mt,{allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt});const Ot={allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt,ttl:Rt,noDisposeOnSet:St,size:Tt,sizeCalculation:Bt,noUpdateTTL:xt,noDeleteOnFetchRejection:Ct};let Wt=this.keyMap.get(mt);if(Wt===void 0){const Dt=this.backgroundFetch(mt,Wt,Ot,kt);return Dt.__returned=Dt}{const Dt=this.valList[Wt];if(this.isBackgroundFetch(Dt))return vt&&Dt.__staleWhileFetching!==void 0?Dt.__staleWhileFetching:Dt.__returned=Dt;if(!Nt&&!this.isStale(Wt))return this.moveToTail(Wt),At&&this.updateItemAge(Wt),Dt;const Et=this.backgroundFetch(mt,Wt,Ot,kt);return vt&&Et.__staleWhileFetching!==void 0?Et.__staleWhileFetching:Et.__returned=Et}}get(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet}={}){const Rt=this.keyMap.get(mt);if(Rt!==void 0){const St=this.valList[Rt],Tt=this.isBackgroundFetch(St);return this.isStale(Rt)?Tt?vt?St.__staleWhileFetching:void 0:(Lt||this.delete(mt),vt?St:void 0):Tt?void 0:(this.moveToTail(Rt),At&&this.updateItemAge(Rt),St)}}connect(mt,vt){this.prev[vt]=mt,this.next[mt]=vt}moveToTail(mt){mt!==this.tail&&(mt===this.head?this.head=this.next[mt]:this.connect(this.prev[mt],this.next[mt]),this.connect(this.tail,mt),this.tail=mt)}get del(){return ut("del","delete"),this.delete}delete(mt){let vt=!1;if(this.size!==0){const At=this.keyMap.get(mt);if(At!==void 0)if(vt=!0,this.size===1)this.clear();else{this.removeItemSize(At);const Lt=this.valList[At];this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,mt,"delete"),this.disposeAfter&&this.disposed.push([Lt,mt,"delete"])),this.keyMap.delete(mt),this.keyList[At]=null,this.valList[At]=null,At===this.tail?this.tail=this.prev[At]:At===this.head?this.head=this.next[At]:(this.next[this.prev[At]]=this.next[At],this.prev[this.next[At]]=this.prev[At]),this.size--,this.free.push(At)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return vt}clear(){for(const mt of this.rindexes({allowStale:!0})){const vt=this.valList[mt];if(this.isBackgroundFetch(vt))vt.__abortController.abort();else{const At=this.keyList[mt];this.dispose(vt,At,"delete"),this.disposeAfter&&this.disposed.push([vt,At,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return ut("reset","clear"),this.clear}get length(){return((mt,vt)=>{const At="LRU_CACHE_PROPERTY_"+mt;if(ht(At)){const{prototype:Lt}=Ut,{get:Rt}=Object.getOwnPropertyDescriptor(Lt,mt);ct(At,mt+" property","cache."+vt,Rt)}})("length","size"),this.size}static get AbortController(){return rt}static get AbortSignal(){return st}}s.exports=Ut}).call(this,et(2))},function(s,o,et){var tt=et(42).Colorizer;s.exports=function(nt){return tt.addColors(nt.colors||nt),nt}},function(s,o,et){var tt={};s.exports=tt,tt.themes={};var nt=et(13),rt=tt.styles=et(106),it=Object.defineProperties,ot=new RegExp(/[\r\n]+/g);tt.supportsColor=et(107).supportsColor,tt.enabled===void 0&&(tt.enabled=tt.supportsColor()!==!1),tt.enable=function(){tt.enabled=!0},tt.disable=function(){tt.enabled=!1},tt.stripColors=tt.strip=function(ft){return(""+ft).replace(/\x1B\[\d+m/g,"")},tt.stylize=function(ft,gt){if(!tt.enabled)return ft+"";var yt=rt[gt];return!yt&> in tt?tt[gt](ft):yt.open+ft+yt.close};var st=/[|\\{}()[\]^$+*?.]/g;function at(ft){var gt=function yt(){return ht.apply(yt,arguments)};return gt._styles=ft,gt.__proto__=dt,gt}var lt,ut=(lt={},rt.grey=rt.gray,Object.keys(rt).forEach(function(ft){rt[ft].closeRe=new RegExp(function(gt){if(typeof gt!="string")throw new TypeError("Expected a string");return gt.replace(st,"\\$&")}(rt[ft].close),"g"),lt[ft]={get:function(){return at(this._styles.concat(ft))}}}),lt),dt=it(function(){},ut);function ht(){var ft=Array.prototype.slice.call(arguments),gt=ft.map(function(vt){return vt!=null&&vt.constructor===String?vt:nt.inspect(vt)}).join(" ");if(!tt.enabled||!gt)return gt;for(var yt=gt.indexOf(` +`)},goog.string.normalizeWhitespace=function(s){return s.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(s){return s.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(s){return s.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.string.internal.trim,goog.string.trimLeft=function(s){return s.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(s){return s.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare,goog.string.numberAwareCompare_=function(s,o,et){if(s==o)return 0;if(!s)return-1;if(!o)return 1;for(var tt=s.toLowerCase().match(et),nt=o.toLowerCase().match(et),rt=Math.min(tt.length,nt.length),it=0;it",""":'"'},tt=o?o.createElement("div"):goog.global.document.createElement("div");return s.replace(goog.string.HTML_ENTITY_PATTERN_,function(nt,rt){var it=et[nt];return it||(rt.charAt(0)=="#"&&(rt=+("0"+rt.substr(1)),isNaN(rt)||(it=String.fromCharCode(rt))),it||(goog.dom.safe.setInnerHtml(tt,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),nt+" ")),it=tt.firstChild.nodeValue.slice(0,-1)),et[nt]=it)})},goog.string.unescapePureXmlEntities_=function(s){return s.replace(/&([^;]+);/g,function(o,et){switch(et){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:return et.charAt(0)!="#"||(et=+("0"+et.substr(1)),isNaN(et))?o:String.fromCharCode(et)}})},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(s,o){return goog.string.newLineToBr(s.replace(/ /g,"  "),o)},goog.string.preserveSpaces=function(s){return s.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(s,o){for(var et=o.length,tt=0;tto&&(s=s.substring(0,o-3)+"..."),et&&(s=goog.string.htmlEscape(s)),s},goog.string.truncateMiddle=function(s,o,et,tt){if(et&&(s=goog.string.unescapeEntities(s)),tt&&s.length>o){tt>o&&(tt=o);var nt=s.length-tt;s=s.substring(0,o-tt)+"..."+s.substring(nt)}else s.length>o&&(tt=Math.floor(o/2),nt=s.length-tt,s=s.substring(0,tt+o%2)+"..."+s.substring(nt));return et&&(s=goog.string.htmlEscape(s)),s},goog.string.specialEscapeChars_={"\0":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(s){s=String(s);for(var o=['"'],et=0;etnt?tt:goog.string.escapeChar(tt))}return o.push('"'),o.join("")},goog.string.escapeString=function(s){for(var o=[],et=0;eto)var et=s;else 256>o?(et="\\x",(16>o||256o&&(et+="0")),et+=o.toString(16).toUpperCase();return goog.string.jsEscapeCache_[s]=et},goog.string.contains=goog.string.internal.contains,goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains,goog.string.countOf=function(s,o){return s&&o?s.split(o).length-1:0},goog.string.removeAt=function(s,o,et){var tt=s;return 0<=o&&o>>0;return o},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(s){var o=Number(s);return o==0&&goog.string.isEmptyOrWhitespace(s)?NaN:o},goog.string.isLowerCamelCase=function(s){return/^[a-z]+([A-Z][a-z]*)*$/.test(s)},goog.string.isUpperCamelCase=function(s){return/^([A-Z][a-z]*)+$/.test(s)},goog.string.toCamelCase=function(s){return String(s).replace(/\-([a-z])/g,function(o,et){return et.toUpperCase()})},goog.string.toSelectorCase=function(s){return String(s).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(s,o){return o=goog.isString(o)?goog.string.regExpEscape(o):"\\s",s.replace(new RegExp("(^"+(o?"|["+o+"]+":"")+")([a-z])","g"),function(et,tt,nt){return tt+nt.toUpperCase()})},goog.string.capitalize=function(s){return String(s.charAt(0)).toUpperCase()+String(s.substr(1)).toLowerCase()},goog.string.parseInt=function(s){return isFinite(s)&&(s=String(s)),goog.isString(s)?/^\s*-?0x/i.test(s)?parseInt(s,16):parseInt(s,10):NaN},goog.string.splitLimit=function(s,o,et){s=s.split(o);for(var tt=[];0et&&(et=nt)}return et==-1?s:s.slice(et+1)},goog.string.editDistance=function(s,o){var et=[],tt=[];if(s==o)return 0;if(!s.length||!o.length)return Math.max(s.length,o.length);for(var nt=0;ntparseFloat(s)?String(o):s},goog.userAgent.getVersionRegexResult_=function(){var s=goog.userAgent.getUserAgentString();return goog.userAgent.GECKO?/rv:([^\);]+)(\)|;)/.exec(s):goog.userAgent.EDGE?/Edge\/([\d\.]+)/.exec(s):goog.userAgent.IE?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(s):goog.userAgent.WEBKIT?/WebKit\/(\S+)/.exec(s):goog.userAgent.OPERA?/(?:Version)[ \/]?(\S+)/.exec(s):void 0},goog.userAgent.getDocumentMode_=function(){var s=goog.global.document;return s?s.documentMode:void 0},goog.userAgent.VERSION=goog.userAgent.determineVersion_(),goog.userAgent.compare=function(s,o){return goog.string.compareVersions(s,o)},goog.userAgent.isVersionOrHigherCache_={},goog.userAgent.isVersionOrHigher=function(s){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,s,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,s)})},goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher,goog.userAgent.isDocumentModeOrHigher=function(s){return Number(goog.userAgent.DOCUMENT_MODE)>=s},goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher,goog.userAgent.DOCUMENT_MODE=function(){if(goog.global.document&&goog.userAgent.IE)return goog.userAgent.getDocumentMode_()}(),goog.userAgent.product={},goog.userAgent.product.ASSUME_FIREFOX=!1,goog.userAgent.product.ASSUME_IPHONE=!1,goog.userAgent.product.ASSUME_IPAD=!1,goog.userAgent.product.ASSUME_ANDROID=!1,goog.userAgent.product.ASSUME_CHROME=!1,goog.userAgent.product.ASSUME_SAFARI=!1,goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI,goog.userAgent.product.OPERA=goog.userAgent.OPERA,goog.userAgent.product.IE=goog.userAgent.IE,goog.userAgent.product.EDGE=goog.userAgent.EDGE,goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox(),goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()},goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_(),goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser(),goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome(),goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()},goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_(),goog.crypt.base64={},goog.crypt.base64.DEFAULT_ALPHABET_COMMON_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"+/=",goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"-_.",goog.crypt.base64.Alphabet={DEFAULT:0,NO_PADDING:1,WEBSAFE:2,WEBSAFE_DOT_PADDING:3,WEBSAFE_NO_PADDING:4},goog.crypt.base64.paddingChars_="=.",goog.crypt.base64.isPadding_=function(s){return goog.string.contains(goog.crypt.base64.paddingChars_,s)},goog.crypt.base64.byteToCharMaps_={},goog.crypt.base64.charToByteMap_=null,goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA,goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||typeof goog.global.btoa=="function",goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&typeof goog.global.atob=="function",goog.crypt.base64.encodeByteArray=function(s,o){goog.asserts.assert(goog.isArrayLike(s),"encodeByteArray takes an array as a parameter"),o===void 0&&(o=goog.crypt.base64.Alphabet.DEFAULT),goog.crypt.base64.init_(),o=goog.crypt.base64.byteToCharMaps_[o];for(var et=[],tt=0;tt>2;nt=(3&nt)<<4|it>>4,it=(15&it)<<2|st>>6,st&=63,ot||(st=64,rt||(it=64)),et.push(o[at],o[nt],o[it]||"",o[st]||"")}return et.join("")},goog.crypt.base64.encodeString=function(s,o){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!o?goog.global.btoa(s):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(s),o)},goog.crypt.base64.decodeString=function(s,o){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!o)return goog.global.atob(s);var et="";return goog.crypt.base64.decodeStringInternal_(s,function(tt){et+=String.fromCharCode(tt)}),et},goog.crypt.base64.decodeStringToByteArray=function(s,o){var et=[];return goog.crypt.base64.decodeStringInternal_(s,function(tt){et.push(tt)}),et},goog.crypt.base64.decodeStringToUint8Array=function(s){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var o=s.length,et=3*o/4;et%3?et=Math.floor(et):goog.crypt.base64.isPadding_(s[o-1])&&(et=goog.crypt.base64.isPadding_(s[o-2])?et-2:et-1);var tt=new Uint8Array(et),nt=0;return goog.crypt.base64.decodeStringInternal_(s,function(rt){tt[nt++]=rt}),tt.subarray(0,nt)},goog.crypt.base64.decodeStringInternal_=function(s,o){function et(st){for(;tt>4),it!=64&&(o(rt<<4&240|it>>2),ot!=64&&o(it<<6&192|ot))}},goog.crypt.base64.init_=function(){if(!goog.crypt.base64.charToByteMap_){goog.crypt.base64.charToByteMap_={};for(var s=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""),o=["+/=","+/","-_=","-_.","-_"],et=0;5>et;et++){var tt=s.concat(o[et].split(""));goog.crypt.base64.byteToCharMaps_[et]=tt;for(var nt=0;nt>>0;s=Math.floor((s-o)/jspb.BinaryConstants.TWO_TO_32)>>>0,jspb.utils.split64Low=o,jspb.utils.split64High=s},jspb.utils.splitInt64=function(s){var o=0>s,et=(s=Math.abs(s))>>>0;s=Math.floor((s-et)/jspb.BinaryConstants.TWO_TO_32),s>>>=0,o&&(s=~s>>>0,4294967295<(et=1+(~et>>>0))&&(et=0,4294967295<++s&&(s=0))),jspb.utils.split64Low=et,jspb.utils.split64High=s},jspb.utils.splitZigzag64=function(s){var o=0>s;s=2*Math.abs(s),jspb.utils.splitUint64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;o&&(s==0?et==0?et=s=4294967295:(et--,s=4294967295):s--),jspb.utils.split64Low=s,jspb.utils.split64High=et},jspb.utils.splitFloat32=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)0<1/s?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(s))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(s>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|2139095040)>>>0;else if(s>>0;else{var et=Math.floor(Math.log(s)/Math.LN2);s*=Math.pow(2,-et),s=8388607&Math.round(s*jspb.BinaryConstants.TWO_TO_23),jspb.utils.split64High=0,jspb.utils.split64Low=(o<<31|et+127<<23|s)>>>0}},jspb.utils.splitFloat64=function(s){var o=0>s?1:0;if((s=o?-s:s)===0)jspb.utils.split64High=0<1/s?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(s))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(s>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(o<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(s>>0,jspb.utils.split64Low=et>>>0}else{var tt=0;if(2<=(et=s))for(;2<=et&&1023>tt;)tt++,et/=2;else for(;1>et&&-1022>>0,jspb.utils.split64High=(o<<31|tt+1023<<20|s)>>>0,jspb.utils.split64Low=et}},jspb.utils.splitHash64=function(s){var o=s.charCodeAt(0),et=s.charCodeAt(1),tt=s.charCodeAt(2),nt=s.charCodeAt(3),rt=s.charCodeAt(4),it=s.charCodeAt(5),ot=s.charCodeAt(6);s=s.charCodeAt(7),jspb.utils.split64Low=o+(et<<8)+(tt<<16)+(nt<<24)>>>0,jspb.utils.split64High=rt+(it<<8)+(ot<<16)+(s<<24)>>>0},jspb.utils.joinUint64=function(s,o){return o*jspb.BinaryConstants.TWO_TO_32+(s>>>0)},jspb.utils.joinInt64=function(s,o){var et=2147483648&o;return et&&(o=~o>>>0,(s=1+~s>>>0)==0&&(o=o+1>>>0)),s=jspb.utils.joinUint64(s,o),et?-s:s},jspb.utils.toZigzag64=function(s,o,et){var tt=o>>31;return et(s<<1^tt,(o<<1|s>>>31)^tt)},jspb.utils.joinZigzag64=function(s,o){return jspb.utils.fromZigzag64(s,o,jspb.utils.joinInt64)},jspb.utils.fromZigzag64=function(s,o,et){var tt=-(1&s);return et((s>>>1|o<<31)^tt,o>>>1^tt)},jspb.utils.joinFloat32=function(s,o){o=2*(s>>31)+1;var et=s>>>23&255;return s&=8388607,et==255?s?NaN:1/0*o:et==0?o*Math.pow(2,-149)*s:o*Math.pow(2,et-150)*(s+Math.pow(2,23))},jspb.utils.joinFloat64=function(s,o){var et=2*(o>>31)+1,tt=o>>>20&2047;return s=jspb.BinaryConstants.TWO_TO_32*(1048575&o)+s,tt==2047?s?NaN:1/0*et:tt==0?et*Math.pow(2,-1074)*s:et*Math.pow(2,tt-1075)*(s+jspb.BinaryConstants.TWO_TO_52)},jspb.utils.joinHash64=function(s,o){return String.fromCharCode(s>>>0&255,s>>>8&255,s>>>16&255,s>>>24&255,o>>>0&255,o>>>8&255,o>>>16&255,o>>>24&255)},jspb.utils.DIGITS="0123456789abcdef".split(""),jspb.utils.ZERO_CHAR_CODE_=48,jspb.utils.A_CHAR_CODE_=97,jspb.utils.joinUnsignedDecimalString=function(s,o){function et(nt,rt){return nt=nt?String(nt):"",rt?"0000000".slice(nt.length)+nt:nt}if(2097151>=o)return""+(jspb.BinaryConstants.TWO_TO_32*o+s);var tt=(s>>>24|o<<8)>>>0&16777215;return s=(16777215&s)+6777216*tt+6710656*(o=o>>16&65535),tt+=8147497*o,o*=2,1e7<=s&&(tt+=Math.floor(s/1e7),s%=1e7),1e7<=tt&&(o+=Math.floor(tt/1e7),tt%=1e7),et(o,0)+et(tt,o)+et(s,1)},jspb.utils.joinSignedDecimalString=function(s,o){var et=2147483648&o;return et&&(o=~o+((s=1+~s>>>0)==0?1:0)>>>0),s=jspb.utils.joinUnsignedDecimalString(s,o),et?"-"+s:s},jspb.utils.hash64ToDecimalString=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinSignedDecimalString(s,et):jspb.utils.joinUnsignedDecimalString(s,et)},jspb.utils.hash64ArrayToDecimalStrings=function(s,o){for(var et=Array(s.length),tt=0;ttot&&(rt!==1||0>>=8}goog.asserts.assert(0rt;rt++)tt[rt]=255&~tt[rt]}(),o(1,1)),goog.crypt.byteArrayToString(tt)},jspb.utils.splitDecimalString=function(s){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(s))},jspb.utils.toHexDigit_=function(s){return String.fromCharCode(10>s?jspb.utils.ZERO_CHAR_CODE_+s:jspb.utils.A_CHAR_CODE_-10+s)},jspb.utils.fromHexCharCode_=function(s){return s>=jspb.utils.A_CHAR_CODE_?s-jspb.utils.A_CHAR_CODE_+10:s-jspb.utils.ZERO_CHAR_CODE_},jspb.utils.hash64ToHexString=function(s){var o=Array(18);o[0]="0",o[1]="x";for(var et=0;8>et;et++){var tt=s.charCodeAt(7-et);o[2*et+2]=jspb.utils.toHexDigit_(tt>>4),o[2*et+3]=jspb.utils.toHexDigit_(15&tt)}return o.join("")},jspb.utils.hexStringToHash64=function(s){s=s.toLowerCase(),goog.asserts.assert(s.length==18),goog.asserts.assert(s[0]=="0"),goog.asserts.assert(s[1]=="x");for(var o="",et=0;8>et;et++){var tt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+2)),nt=jspb.utils.fromHexCharCode_(s.charCodeAt(2*et+3));o=String.fromCharCode(16*tt+nt)+o}return o},jspb.utils.hash64ToNumber=function(s,o){jspb.utils.splitHash64(s),s=jspb.utils.split64Low;var et=jspb.utils.split64High;return o?jspb.utils.joinInt64(s,et):jspb.utils.joinUint64(s,et)},jspb.utils.numberToHash64=function(s){return jspb.utils.splitInt64(s),jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.utils.countVarints=function(s,o,et){for(var tt=0,nt=o;nt>7;return et-o-tt},jspb.utils.countVarintFields=function(s,o,et,tt){var nt=0;if(128>(tt=8*tt+jspb.BinaryConstants.WireType.VARINT))for(;o>=7}if(s[o++]!=rt)break;for(nt++;128&(rt=s[o++]););}return nt},jspb.utils.countFixedFields_=function(s,o,et,tt,nt){var rt=0;if(128>tt)for(;o>=7}if(s[o++]!=it)break;rt++,o+=nt}return rt},jspb.utils.countFixed32Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED32,4)},jspb.utils.countFixed64Fields=function(s,o,et,tt){return jspb.utils.countFixedFields_(s,o,et,8*tt+jspb.BinaryConstants.WireType.FIXED64,8)},jspb.utils.countDelimitedFields=function(s,o,et,tt){var nt=0;for(tt=8*tt+jspb.BinaryConstants.WireType.DELIMITED;o>=7}if(s[o++]!=rt)break;nt++;for(var it=0,ot=1;it+=(127&(rt=s[o++]))*ot,ot*=128,(128&rt)!=0;);o+=it}return nt},jspb.utils.debugBytesToTextFormat=function(s){var o='"';if(s){s=jspb.utils.byteSourceToUint8Array(s);for(var et=0;ets[et]&&(o+="0"),o+=s[et].toString(16)}return o+'"'},jspb.utils.debugScalarToTextFormat=function(s){return typeof s=="string"?goog.string.quote(s):s.toString()},jspb.utils.stringToByteArray=function(s){for(var o=new Uint8Array(s.length),et=0;etjspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)},jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)},jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1},jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_},jspb.BinaryDecoder.prototype.setBlock=function(s,o,et){this.bytes_=jspb.utils.byteSourceToUint8Array(s),this.start_=o!==void 0?o:0,this.end_=et!==void 0?this.start_+et:this.bytes_.length,this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_},jspb.BinaryDecoder.prototype.setEnd=function(s){this.end_=s},jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_},jspb.BinaryDecoder.prototype.setCursor=function(s){this.cursor_=s},jspb.BinaryDecoder.prototype.advance=function(s){this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_)},jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_},jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_},jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_},jspb.BinaryDecoder.prototype.readSplitVarint64=function(s){for(var o=128,et=0,tt=0,nt=0;4>nt&&128<=o;nt++)et|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt;if(128<=o&&(et|=(127&(o=this.bytes_[this.cursor_++]))<<28,tt|=(127&o)>>4),128<=o)for(nt=0;5>nt&&128<=o;nt++)tt|=(127&(o=this.bytes_[this.cursor_++]))<<7*nt+3;if(128>o)return s(et>>>0,tt>>>0);goog.asserts.fail("Failed to read varint, encoding is invalid."),this.error_=!0},jspb.BinaryDecoder.prototype.readSplitZigzagVarint64=function(s){return this.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryDecoder.prototype.readSplitFixed64=function(s){var o=this.bytes_,et=this.cursor_;this.cursor_+=8;for(var tt=0,nt=0,rt=et+7;rt>=et;rt--)tt=tt<<8|o[rt],nt=nt<<8|o[rt+4];return s(tt,nt)},jspb.BinaryDecoder.prototype.skipVarint=function(){for(;128&this.bytes_[this.cursor_];)this.cursor_++;this.cursor_++},jspb.BinaryDecoder.prototype.unskipVarint=function(s){for(;128>>=7;this.cursor_--},jspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var s=this.bytes_,o=s[this.cursor_+0],et=127&o;return 128>o?(this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+1]))<<7,128>o?(this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+2]))<<14,128>o?(this.cursor_+=3,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(127&(o=s[this.cursor_+3]))<<21,128>o?(this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),et):(et|=(15&(o=s[this.cursor_+4]))<<28,128>o?(this.cursor_+=5,goog.asserts.assert(this.cursor_<=this.end_),et>>>0):(this.cursor_+=5,128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&128<=s[this.cursor_++]&&goog.asserts.assert(!1),goog.asserts.assert(this.cursor_<=this.end_),et)))))},jspb.BinaryDecoder.prototype.readSignedVarint32=jspb.BinaryDecoder.prototype.readUnsignedVarint32,jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()},jspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()},jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var s=this.readUnsignedVarint32();return s>>>1^-(1&s)},jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinUint64)},jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString)},jspb.BinaryDecoder.prototype.readSignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinInt64)},jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){return this.readSplitVarint64(jspb.utils.joinZigzag64)},jspb.BinaryDecoder.prototype.readZigzagVarintHash64=function(){return this.readSplitZigzagVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readUint8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s},jspb.BinaryDecoder.prototype.readUint16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8},jspb.BinaryDecoder.prototype.readUint32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8|et<<16|tt<<24)>>>0},jspb.BinaryDecoder.prototype.readUint64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUint64(s,o)},jspb.BinaryDecoder.prototype.readUint64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinUnsignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readInt8=function(){var s=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),s<<24>>24},jspb.BinaryDecoder.prototype.readInt16=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),(s<<0|o<<8)<<16>>16},jspb.BinaryDecoder.prototype.readInt32=function(){var s=this.bytes_[this.cursor_+0],o=this.bytes_[this.cursor_+1],et=this.bytes_[this.cursor_+2],tt=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),s<<0|o<<8|et<<16|tt<<24},jspb.BinaryDecoder.prototype.readInt64=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinInt64(s,o)},jspb.BinaryDecoder.prototype.readInt64String=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinSignedDecimalString(s,o)},jspb.BinaryDecoder.prototype.readFloat=function(){var s=this.readUint32();return jspb.utils.joinFloat32(s,0)},jspb.BinaryDecoder.prototype.readDouble=function(){var s=this.readUint32(),o=this.readUint32();return jspb.utils.joinFloat64(s,o)},jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]},jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()},jspb.BinaryDecoder.prototype.readString=function(s){var o=this.bytes_,et=this.cursor_;s=et+s;for(var tt=[],nt="";etrt)tt.push(rt);else{if(192>rt)continue;if(224>rt){var it=o[et++];tt.push((31&rt)<<6|63&it)}else if(240>rt){it=o[et++];var ot=o[et++];tt.push((15&rt)<<12|(63&it)<<6|63&ot)}else 248>rt&&(rt=(7&rt)<<18|(63&(it=o[et++]))<<12|(63&(ot=o[et++]))<<6|63&o[et++],rt-=65536,tt.push(55296+(rt>>10&1023),56320+(1023&rt)))}8192<=tt.length&&(nt+=String.fromCharCode.apply(null,tt),tt.length=0)}return nt+=goog.crypt.byteArrayToString(tt),this.cursor_=et,nt},jspb.BinaryDecoder.prototype.readStringWithLength=function(){var s=this.readUnsignedVarint32();return this.readString(s)},jspb.BinaryDecoder.prototype.readBytes=function(s){if(0>s||this.cursor_+s>this.bytes_.length)return this.error_=!0,goog.asserts.fail("Invalid byte length!"),new Uint8Array(0);var o=this.bytes_.subarray(this.cursor_,this.cursor_+s);return this.cursor_+=s,goog.asserts.assert(this.cursor_<=this.end_),o},jspb.BinaryDecoder.prototype.readVarintHash64=function(){return this.readSplitVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readFixedHash64=function(){var s=this.bytes_,o=this.cursor_,et=s[o+0],tt=s[o+1],nt=s[o+2],rt=s[o+3],it=s[o+4],ot=s[o+5],st=s[o+6];return s=s[o+7],this.cursor_+=8,String.fromCharCode(et,tt,nt,rt,it,ot,st,s)},jspb.BinaryReader=function(s,o,et){this.decoder_=jspb.BinaryDecoder.alloc(s,o,et),this.fieldCursor_=this.decoder_.getCursor(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null},jspb.BinaryReader.instanceCache_=[],jspb.BinaryReader.alloc=function(s,o,et){if(jspb.BinaryReader.instanceCache_.length){var tt=jspb.BinaryReader.instanceCache_.pop();return s&&tt.decoder_.setBlock(s,o,et),tt}return new jspb.BinaryReader(s,o,et)},jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc,jspb.BinaryReader.prototype.free=function(){this.decoder_.clear(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null,100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)},jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_},jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()},jspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()},jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_},jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_},jspb.BinaryReader.prototype.isDelimited=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED},jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP},jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()},jspb.BinaryReader.prototype.setBlock=function(s,o,et){this.decoder_.setBlock(s,o,et),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.advance=function(s){this.decoder_.advance(s)},jspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return goog.asserts.fail("Decoder hit an error"),!1;this.fieldCursor_=this.decoder_.getCursor();var s=this.decoder_.readUnsignedVarint32(),o=s>>>3;return(s&=7)!=jspb.BinaryConstants.WireType.VARINT&&s!=jspb.BinaryConstants.WireType.FIXED32&&s!=jspb.BinaryConstants.WireType.FIXED64&&s!=jspb.BinaryConstants.WireType.DELIMITED&&s!=jspb.BinaryConstants.WireType.START_GROUP&&s!=jspb.BinaryConstants.WireType.END_GROUP?(goog.asserts.fail("Invalid wire type: %s (at position %s)",s,this.fieldCursor_),this.error_=!0,!1):(this.nextField_=o,this.nextWireType_=s,!0)},jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)},jspb.BinaryReader.prototype.skipMatchingFields=function(){var s=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==s;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()},jspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(goog.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()},jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)goog.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField();else{var s=this.decoder_.readUnsignedVarint32();this.decoder_.advance(s)}},jspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(goog.asserts.fail("Invalid wire type for skipFixed32Field"),this.skipField()):this.decoder_.advance(4)},jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(goog.asserts.fail("Invalid wire type for skipFixed64Field"),this.skipField()):this.decoder_.advance(8)},jspb.BinaryReader.prototype.skipGroup=function(){for(var s=this.nextField_;;){if(!this.nextField()){goog.asserts.fail("Unmatched start-group tag: stream EOF"),this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP){this.nextField_!=s&&(goog.asserts.fail("Unmatched end-group tag"),this.error_=!0);break}this.skipField()}},jspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:goog.asserts.fail("Invalid wire encoding for field.")}},jspb.BinaryReader.prototype.registerReadCallback=function(s,o){this.readCallbacks_===null&&(this.readCallbacks_={}),goog.asserts.assert(!this.readCallbacks_[s]),this.readCallbacks_[s]=o},jspb.BinaryReader.prototype.runReadCallback=function(s){return goog.asserts.assert(this.readCallbacks_!==null),s=this.readCallbacks_[s],goog.asserts.assert(s),s(this)},jspb.BinaryReader.prototype.readAny=function(s){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(s);var o=jspb.BinaryConstants.FieldType;switch(s){case o.DOUBLE:return this.readDouble();case o.FLOAT:return this.readFloat();case o.INT64:return this.readInt64();case o.UINT64:return this.readUint64();case o.INT32:return this.readInt32();case o.FIXED64:return this.readFixed64();case o.FIXED32:return this.readFixed32();case o.BOOL:return this.readBool();case o.STRING:return this.readString();case o.GROUP:goog.asserts.fail("Group field type not supported in readAny()");case o.MESSAGE:goog.asserts.fail("Message field type not supported in readAny()");case o.BYTES:return this.readBytes();case o.UINT32:return this.readUint32();case o.ENUM:return this.readEnum();case o.SFIXED32:return this.readSfixed32();case o.SFIXED64:return this.readSfixed64();case o.SINT32:return this.readSint32();case o.SINT64:return this.readSint64();case o.FHASH64:return this.readFixedHash64();case o.VHASH64:return this.readVarintHash64();default:goog.asserts.fail("Invalid field type in readAny()")}return 0},jspb.BinaryReader.prototype.readMessage=function(s,o){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var et=this.decoder_.getEnd(),tt=this.decoder_.readUnsignedVarint32();tt=this.decoder_.getCursor()+tt,this.decoder_.setEnd(tt),o(s,this),this.decoder_.setCursor(tt),this.decoder_.setEnd(et)},jspb.BinaryReader.prototype.readGroup=function(s,o,et){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP),goog.asserts.assert(this.nextField_==s),et(o,this),this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(goog.asserts.fail("Group submessage did not end with an END_GROUP tag"),this.error_=!0)},jspb.BinaryReader.prototype.getFieldDecoder=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32(),o=this.decoder_.getCursor(),et=o+s;return s=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),o,s),this.decoder_.setCursor(et),s},jspb.BinaryReader.prototype.readInt32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32()},jspb.BinaryReader.prototype.readInt32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32String()},jspb.BinaryReader.prototype.readInt64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readInt64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64String()},jspb.BinaryReader.prototype.readUint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readUint32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32String()},jspb.BinaryReader.prototype.readUint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64()},jspb.BinaryReader.prototype.readUint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64String()},jspb.BinaryReader.prototype.readSint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint32()},jspb.BinaryReader.prototype.readSint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64()},jspb.BinaryReader.prototype.readSint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64String()},jspb.BinaryReader.prototype.readFixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readUint32()},jspb.BinaryReader.prototype.readFixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64()},jspb.BinaryReader.prototype.readFixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64String()},jspb.BinaryReader.prototype.readSfixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32()},jspb.BinaryReader.prototype.readSfixed32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32().toString()},jspb.BinaryReader.prototype.readSfixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64()},jspb.BinaryReader.prototype.readSfixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64String()},jspb.BinaryReader.prototype.readFloat=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readFloat()},jspb.BinaryReader.prototype.readDouble=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readDouble()},jspb.BinaryReader.prototype.readBool=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),!!this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readEnum=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readString=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(s)},jspb.BinaryReader.prototype.readBytes=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var s=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(s)},jspb.BinaryReader.prototype.readVarintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readVarintHash64()},jspb.BinaryReader.prototype.readSintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarintHash64()},jspb.BinaryReader.prototype.readSplitVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(s)},jspb.BinaryReader.prototype.readSplitZigzagVarint64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(function(o,et){return jspb.utils.fromZigzag64(o,et,s)})},jspb.BinaryReader.prototype.readFixedHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readFixedHash64()},jspb.BinaryReader.prototype.readSplitFixed64=function(s){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readSplitFixed64(s)},jspb.BinaryReader.prototype.readPackedField_=function(s){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var o=this.decoder_.readUnsignedVarint32();o=this.decoder_.getCursor()+o;for(var et=[];this.decoder_.getCursor()o.length?et.length:o.length;for(s.getJsPbMessageId()&&(tt[0]=s.getJsPbMessageId(),nt=1);nt>>1|(1&this.hi)<<31)>>>0,this.hi>>>1>>>0)},jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)},jspb.arith.UInt64.prototype.msb=function(){return!!(2147483648&this.hi)},jspb.arith.UInt64.prototype.lsb=function(){return!!(1&this.lo)},jspb.arith.UInt64.prototype.zero=function(){return this.lo==0&&this.hi==0},jspb.arith.UInt64.prototype.add=function(s){return new jspb.arith.UInt64((this.lo+s.lo&4294967295)>>>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.UInt64.prototype.sub=function(s){return new jspb.arith.UInt64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.UInt64.mul32x32=function(s,o){var et=65535&s,tt=65535&o,nt=o>>>16;for(o=et*tt+65536*(et*nt&65535)+65536*((s>>>=16)*tt&65535),et=s*nt+(et*nt>>>16)+(s*tt>>>16);4294967296<=o;)o-=4294967296,et+=1;return new jspb.arith.UInt64(o>>>0,et>>>0)},jspb.arith.UInt64.prototype.mul=function(s){var o=jspb.arith.UInt64.mul32x32(this.lo,s);return(s=jspb.arith.UInt64.mul32x32(this.hi,s)).hi=s.lo,s.lo=0,o.add(s)},jspb.arith.UInt64.prototype.div=function(s){if(s==0)return[];var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(this.lo,this.hi);s=new jspb.arith.UInt64(s,0);for(var tt=new jspb.arith.UInt64(1,0);!s.msb();)s=s.leftShift(),tt=tt.leftShift();for(;!tt.zero();)0>=s.cmp(et)&&(o=o.add(tt),et=et.sub(s)),s=s.rightShift(),tt=tt.rightShift();return[o,et]},jspb.arith.UInt64.prototype.toString=function(){for(var s="",o=this;!o.zero();){var et=(o=o.div(10))[0];s=o[1].lo+s,o=et}return s==""&&(s="0"),s},jspb.arith.UInt64.fromString=function(s){for(var o=new jspb.arith.UInt64(0,0),et=new jspb.arith.UInt64(0,0),tt=0;tts[tt]||"9">>0>>>0,((this.hi+s.hi&4294967295)>>>0)+(4294967296<=this.lo+s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.sub=function(s){return new jspb.arith.Int64((this.lo-s.lo&4294967295)>>>0>>>0,((this.hi-s.hi&4294967295)>>>0)-(0>this.lo-s.lo?1:0)>>>0)},jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)},jspb.arith.Int64.prototype.toString=function(){var s=(2147483648&this.hi)!=0,o=new jspb.arith.UInt64(this.lo,this.hi);return s&&(o=new jspb.arith.UInt64(0,0).sub(o)),(s?"-":"")+o.toString()},jspb.arith.Int64.fromString=function(s){var o=0>>7|o<<25)>>>0,o>>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSplitFixed64=function(s,o){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(o==Math.floor(o)),goog.asserts.assert(0<=s&&s>>=7;this.buffer_.push(s)},jspb.BinaryEncoder.prototype.writeSignedVarint32=function(s){if(goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&so;o++)this.buffer_.push(127&s|128),s>>=7;this.buffer_.push(1)}},jspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_31&&s>31)>>>0)},jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s>>0,tt>>>0)})},jspb.BinaryEncoder.prototype.writeUint8=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&256>s),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeUint16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&65536>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeUint32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeUint64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(0<=s&&ss),this.buffer_.push(s>>>0&255)},jspb.BinaryEncoder.prototype.writeInt16=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(-32768<=s&&32768>s),this.buffer_.push(s>>>0&255),this.buffer_.push(s>>>8&255)},jspb.BinaryEncoder.prototype.writeInt32=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&s>>0&255),this.buffer_.push(s>>>8&255),this.buffer_.push(s>>>16&255),this.buffer_.push(s>>>24&255)},jspb.BinaryEncoder.prototype.writeInt64=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_63&&s=-jspb.BinaryConstants.TWO_TO_63&&+s=-jspb.BinaryConstants.FLOAT32_MAX&&s<=jspb.BinaryConstants.FLOAT32_MAX),jspb.utils.splitFloat32(s),this.writeUint32(jspb.utils.split64Low)},jspb.BinaryEncoder.prototype.writeDouble=function(s){goog.asserts.assert(1/0===s||-1/0===s||isNaN(s)||s>=-jspb.BinaryConstants.FLOAT64_MAX&&s<=jspb.BinaryConstants.FLOAT64_MAX),jspb.utils.splitFloat64(s),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeBool=function(s){goog.asserts.assert(typeof s=="boolean"||typeof s=="number"),this.buffer_.push(s?1:0)},jspb.BinaryEncoder.prototype.writeEnum=function(s){goog.asserts.assert(s==Math.floor(s)),goog.asserts.assert(s>=-jspb.BinaryConstants.TWO_TO_31&&stt)this.buffer_.push(tt);else if(2048>tt)this.buffer_.push(tt>>6|192),this.buffer_.push(63&tt|128);else if(65536>tt)if(55296<=tt&&56319>=tt&&et+1=nt&&(tt=1024*(tt-55296)+nt-56320+65536,this.buffer_.push(tt>>18|240),this.buffer_.push(tt>>12&63|128),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128),et++)}else this.buffer_.push(tt>>12|224),this.buffer_.push(tt>>6&63|128),this.buffer_.push(63&tt|128)}return this.buffer_.length-o},jspb.BinaryWriter=function(){this.blocks_=[],this.totalLength_=0,this.encoder_=new jspb.BinaryEncoder,this.bookmarks_=[]},jspb.BinaryWriter.prototype.appendUint8Array_=function(s){var o=this.encoder_.end();this.blocks_.push(o),this.blocks_.push(s),this.totalLength_+=o.length+s.length},jspb.BinaryWriter.prototype.beginDelimited_=function(s){return this.writeFieldHeader_(s,jspb.BinaryConstants.WireType.DELIMITED),s=this.encoder_.end(),this.blocks_.push(s),this.totalLength_+=s.length,s.push(this.totalLength_),s},jspb.BinaryWriter.prototype.endDelimited_=function(s){var o=s.pop();for(o=this.totalLength_+this.encoder_.length()-o,goog.asserts.assert(0<=o);127>>=7,this.totalLength_++;s.push(o),this.totalLength_++},jspb.BinaryWriter.prototype.writeSerializedMessage=function(s,o,et){this.appendUint8Array_(s.subarray(o,et))},jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(s,o,et){s!=null&&o!=null&&et!=null&&this.writeSerializedMessage(s,o,et)},jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[],this.encoder_.end(),this.totalLength_=0,this.bookmarks_=[]},jspb.BinaryWriter.prototype.getResultBuffer=function(){goog.asserts.assert(this.bookmarks_.length==0);for(var s=new Uint8Array(this.totalLength_+this.encoder_.length()),o=this.blocks_,et=o.length,tt=0,nt=0;nt=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o=-jspb.BinaryConstants.TWO_TO_63&&o=-jspb.BinaryConstants.TWO_TO_31&&o>>0,rt>>>0)})},jspb.BinaryWriter.prototype.writeRepeatedInt32=function(s,o){if(o!=null)for(var et=0;et>>0,ot>>>0)});this.endDelimited_(s)}},jspb.BinaryWriter.prototype.writePackedInt64String=function(s,o){if(o!=null&&o.length){s=this.beginDelimited_(s);for(var et=0;et-1};function ct(xt){if(typeof xt!="string"&&(xt=String(xt)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(xt))throw new TypeError("Invalid character in header field name");return xt.toLowerCase()}function pt(xt){return typeof xt!="string"&&(xt=String(xt)),xt}function ft(xt){var Ct={next:function(){var kt=xt.shift();return{done:kt===void 0,value:kt}}};return st&&(Ct[Symbol.iterator]=function(){return Ct}),Ct}function gt(xt){this.map={},xt instanceof gt?xt.forEach(function(Ct,kt){this.append(kt,Ct)},this):Array.isArray(xt)?xt.forEach(function(Ct){this.append(Ct[0],Ct[1])},this):xt&&Object.getOwnPropertyNames(xt).forEach(function(Ct){this.append(Ct,xt[Ct])},this)}function yt(xt){if(xt.bodyUsed)return Promise.reject(new TypeError("Already read"));xt.bodyUsed=!0}function Ut(xt){return new Promise(function(Ct,kt){xt.onload=function(){Ct(xt.result)},xt.onerror=function(){kt(xt.error)}})}function Ft(xt){var Ct=new FileReader,kt=Ut(Ct);return Ct.readAsArrayBuffer(xt),kt}function mt(xt){if(xt.slice)return xt.slice(0);var Ct=new Uint8Array(xt.byteLength);return Ct.set(new Uint8Array(xt)),Ct.buffer}function vt(){return this.bodyUsed=!1,this._initBody=function(xt){var Ct;this._bodyInit=xt,xt?typeof xt=="string"?this._bodyText=xt:at&&Blob.prototype.isPrototypeOf(xt)?this._bodyBlob=xt:lt&&FormData.prototype.isPrototypeOf(xt)?this._bodyFormData=xt:ot&&URLSearchParams.prototype.isPrototypeOf(xt)?this._bodyText=xt.toString():ut&&at&&(Ct=xt)&&DataView.prototype.isPrototypeOf(Ct)?(this._bodyArrayBuffer=mt(xt.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):ut&&(ArrayBuffer.prototype.isPrototypeOf(xt)||ht(xt))?this._bodyArrayBuffer=mt(xt):this._bodyText=xt=Object.prototype.toString.call(xt):this._bodyText="",this.headers.get("content-type")||(typeof xt=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):ot&&URLSearchParams.prototype.isPrototypeOf(xt)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},at&&(this.blob=function(){var xt=yt(this);if(xt)return xt;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?yt(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(Ft)}),this.text=function(){var xt,Ct,kt,Nt=yt(this);if(Nt)return Nt;if(this._bodyBlob)return xt=this._bodyBlob,Ct=new FileReader,kt=Ut(Ct),Ct.readAsText(xt),kt;if(this._bodyArrayBuffer)return Promise.resolve(function(Ot){for(var Jt=new Uint8Array(Ot),Dt=new Array(Jt.length),Et=0;Et-1?Nt:kt),this.mode=Ct.mode||this.mode||null,this.signal=Ct.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Ot)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(Ot)}function Rt(xt){var Ct=new FormData;return xt.trim().split("&").forEach(function(kt){if(kt){var Nt=kt.split("="),Ot=Nt.shift().replace(/\+/g," "),Jt=Nt.join("=").replace(/\+/g," ");Ct.append(decodeURIComponent(Ot),decodeURIComponent(Jt))}}),Ct}function St(xt,Ct){Ct||(Ct={}),this.type="default",this.status=Ct.status===void 0?200:Ct.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in Ct?Ct.statusText:"OK",this.headers=new gt(Ct.headers),this.url=Ct.url||"",this._initBody(xt)}Lt.prototype.clone=function(){return new Lt(this,{body:this._bodyInit})},vt.call(Lt.prototype),vt.call(St.prototype),St.prototype.clone=function(){return new St(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new gt(this.headers),url:this.url})},St.error=function(){var xt=new St(null,{status:0,statusText:""});return xt.type="error",xt};var Tt=[301,302,303,307,308];St.redirect=function(xt,Ct){if(Tt.indexOf(Ct)===-1)throw new RangeError("Invalid status code");return new St(null,{status:Ct,headers:{location:xt}})},it.DOMException=rt.DOMException;try{new it.DOMException}catch{it.DOMException=function(xt,Ct){this.message=xt,this.name=Ct;var kt=Error(xt);this.stack=kt.stack},it.DOMException.prototype=Object.create(Error.prototype),it.DOMException.prototype.constructor=it.DOMException}function Bt(xt,Ct){return new Promise(function(kt,Nt){var Ot=new Lt(xt,Ct);if(Ot.signal&&Ot.signal.aborted)return Nt(new it.DOMException("Aborted","AbortError"));var Jt=new XMLHttpRequest;function Dt(){Jt.abort()}Jt.onload=function(){var Et,Pt,zt={status:Jt.status,statusText:Jt.statusText,headers:(Et=Jt.getAllResponseHeaders()||"",Pt=new gt,Et.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(Kt){var nn=Kt.split(":"),Zt=nn.shift().trim();if(Zt){var jt=nn.join(":").trim();Pt.append(Zt,jt)}}),Pt)};zt.url="responseURL"in Jt?Jt.responseURL:zt.headers.get("X-Request-URL");var en="response"in Jt?Jt.response:Jt.responseText;kt(new St(en,zt))},Jt.onerror=function(){Nt(new TypeError("Network request failed"))},Jt.ontimeout=function(){Nt(new TypeError("Network request failed"))},Jt.onabort=function(){Nt(new it.DOMException("Aborted","AbortError"))},Jt.open(Ot.method,Ot.url,!0),Ot.credentials==="include"?Jt.withCredentials=!0:Ot.credentials==="omit"&&(Jt.withCredentials=!1),"responseType"in Jt&&at&&(Jt.responseType="blob"),Ot.headers.forEach(function(Et,Pt){Jt.setRequestHeader(Pt,Et)}),Ot.signal&&(Ot.signal.addEventListener("abort",Dt),Jt.onreadystatechange=function(){Jt.readyState===4&&Ot.signal.removeEventListener("abort",Dt)}),Jt.send(Ot._bodyInit===void 0?null:Ot._bodyInit)})}Bt.polyfill=!0,rt.fetch||(rt.fetch=Bt,rt.Headers=gt,rt.Request=Lt,rt.Response=St),it.Headers=gt,it.Request=Lt,it.Response=St,it.fetch=Bt,Object.defineProperty(it,"__esModule",{value:!0})})({})})(tt),tt.fetch.ponyfill=!0,delete tt.fetch.polyfill;var nt=tt;(o=nt.fetch).default=nt.fetch,o.fetch=nt.fetch,o.Headers=nt.Headers,o.Request=nt.Request,o.Response=nt.Response,s.exports=o},function(s,o,et){(function(tt){const nt=et(216),rt=et(51),it=(ot,st,at)=>({from:it,EnvVarError:et(51),get:function(lt){if(!lt)return ot;if(arguments.length>1)throw new rt("It looks like you passed more than one argument to env.get(). Since env-var@6.0.0 this is no longer supported. To set a default value use env.get(TARGET).default(DEFAULT)");return nt(ot,lt,st||{},at||function(){})},accessors:et(93),logger:et(230)(console.log,ot.NODE_ENV)});s.exports=it(tt===void 0?{}:tt.env)}).call(this,et(2))},function(s,o,et){(function(tt){const nt=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,rt=typeof AbortController=="function"?AbortController:class{constructor(){this.signal=new st}abort(){this.signal.dispatchEvent("abort")}},it=typeof AbortSignal=="function",ot=typeof rt.AbortSignal=="function",st=it?AbortSignal:ot?rt.AbortController:class{constructor(){this.aborted=!1,this._listeners=[]}dispatchEvent(Ft){if(Ft==="abort"){this.aborted=!0;const mt={type:Ft,target:this};this.onabort(mt),this._listeners.forEach(vt=>vt(mt),this)}}onabort(){}addEventListener(Ft,mt){Ft==="abort"&&this._listeners.push(mt)}removeEventListener(Ft,mt){Ft==="abort"&&(this._listeners=this._listeners.filter(vt=>vt!==mt))}},at=new Set,lt=(Ft,mt)=>{const vt="LRU_CACHE_OPTION_"+Ft;ht(vt)&&ct(vt,Ft+" option","options."+mt,Ut)},ut=(Ft,mt)=>{const vt="LRU_CACHE_METHOD_"+Ft;if(ht(vt)){const{prototype:At}=Ut,{get:Lt}=Object.getOwnPropertyDescriptor(At,Ft);ct(vt,Ft+" method",`cache.${mt}()`,Lt)}},dt=(...Ft)=>{typeof tt=="object"&&tt&&typeof tt.emitWarning=="function"?tt.emitWarning(...Ft):console.error(...Ft)},ht=Ft=>!at.has(Ft),ct=(Ft,mt,vt,At)=>{at.add(Ft),dt(`The ${mt} is deprecated. Please use ${vt} instead.`,"DeprecationWarning",Ft,At)},pt=Ft=>Ft&&Ft===Math.floor(Ft)&&Ft>0&&isFinite(Ft),ft=Ft=>pt(Ft)?Ft<=Math.pow(2,8)?Uint8Array:Ft<=Math.pow(2,16)?Uint16Array:Ft<=Math.pow(2,32)?Uint32Array:Ft<=Number.MAX_SAFE_INTEGER?gt:null:null;class gt extends Array{constructor(mt){super(mt),this.fill(0)}}class yt{constructor(mt){if(mt===0)return[];const vt=ft(mt);this.heap=new vt(mt),this.length=0}push(mt){this.heap[this.length++]=mt}pop(){return this.heap[--this.length]}}class Ut{constructor(mt={}){const{max:vt=0,ttl:At,ttlResolution:Lt=1,ttlAutopurge:Rt,updateAgeOnGet:St,updateAgeOnHas:Tt,allowStale:Bt,dispose:xt,disposeAfter:Ct,noDisposeOnSet:kt,noUpdateTTL:Nt,maxSize:Ot=0,maxEntrySize:Jt=0,sizeCalculation:Dt,fetchMethod:Et,fetchContext:Pt,noDeleteOnFetchRejection:zt,noDeleteOnStaleGet:en}=mt,{length:Kt,maxAge:nn,stale:Zt}=mt instanceof Ut?{}:mt;if(vt!==0&&!pt(vt))throw new TypeError("max option must be a nonnegative integer");const jt=vt?ft(vt):Array;if(!jt)throw new Error("invalid max value: "+vt);if(this.max=vt,this.maxSize=Ot,this.maxEntrySize=Jt||this.maxSize,this.sizeCalculation=Dt||Kt,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=Et||null,this.fetchMethod&&typeof this.fetchMethod!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=Pt,!this.fetchMethod&&Pt!==void 0)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(vt).fill(null),this.valList=new Array(vt).fill(null),this.next=new jt(vt),this.prev=new jt(vt),this.head=0,this.tail=0,this.free=new yt(vt),this.initialFill=1,this.size=0,typeof xt=="function"&&(this.dispose=xt),typeof Ct=="function"?(this.disposeAfter=Ct,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!kt,this.noUpdateTTL=!!Nt,this.noDeleteOnFetchRejection=!!zt,this.maxEntrySize!==0){if(this.maxSize!==0&&!pt(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!pt(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!Bt||!!Zt,this.noDeleteOnStaleGet=!!en,this.updateAgeOnGet=!!St,this.updateAgeOnHas=!!Tt,this.ttlResolution=pt(Lt)||Lt===0?Lt:1,this.ttlAutopurge=!!Rt,this.ttl=At||nn||0,this.ttl){if(!pt(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(this.max===0&&this.ttl===0&&this.maxSize===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const Vt="LRU_CACHE_UNBOUNDED";ht(Vt)&&(at.add(Vt),dt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Vt,Ut))}Zt&<("stale","allowStale"),nn&<("maxAge","ttl"),Kt&<("length","sizeCalculation")}getRemainingTTL(mt){return this.has(mt,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new gt(this.max),this.starts=new gt(this.max),this.setItemTTL=(At,Lt,Rt=nt.now())=>{if(this.starts[At]=Lt!==0?Rt:0,this.ttls[At]=Lt,Lt!==0&&this.ttlAutopurge){const St=setTimeout(()=>{this.isStale(At)&&this.delete(this.keyList[At])},Lt+1);St.unref&&St.unref()}},this.updateItemAge=At=>{this.starts[At]=this.ttls[At]!==0?nt.now():0};let mt=0;const vt=()=>{const At=nt.now();if(this.ttlResolution>0){mt=At;const Lt=setTimeout(()=>mt=0,this.ttlResolution);Lt.unref&&Lt.unref()}return At};this.getRemainingTTL=At=>{const Lt=this.keyMap.get(At);return Lt===void 0?0:this.ttls[Lt]===0||this.starts[Lt]===0?1/0:this.starts[Lt]+this.ttls[Lt]-(mt||vt())},this.isStale=At=>this.ttls[At]!==0&&this.starts[At]!==0&&(mt||vt())-this.starts[At]>this.ttls[At]}updateItemAge(mt){}setItemTTL(mt,vt,At){}isStale(mt){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new gt(this.max),this.removeItemSize=mt=>{this.calculatedSize-=this.sizes[mt],this.sizes[mt]=0},this.requireSize=(mt,vt,At,Lt)=>{if(!pt(At)){if(!Lt)throw new TypeError("invalid size value (must be positive integer)");if(typeof Lt!="function")throw new TypeError("sizeCalculation must be a function");if(At=Lt(vt,mt),!pt(At))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return At},this.addItemSize=(mt,vt)=>{this.sizes[mt]=vt;const At=this.maxSize-this.sizes[mt];for(;this.calculatedSize>At;)this.evict(!0);this.calculatedSize+=this.sizes[mt]}}removeItemSize(mt){}addItemSize(mt,vt){}requireSize(mt,vt,At,Lt){if(At||Lt)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.tail;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.head);)vt=this.prev[vt]}*rindexes({allowStale:mt=this.allowStale}={}){if(this.size)for(let vt=this.head;this.isValidIndex(vt)&&(!mt&&this.isStale(vt)||(yield vt),vt!==this.tail);)vt=this.next[vt]}isValidIndex(mt){return this.keyMap.get(this.keyList[mt])===mt}*entries(){for(const mt of this.indexes())yield[this.keyList[mt],this.valList[mt]]}*rentries(){for(const mt of this.rindexes())yield[this.keyList[mt],this.valList[mt]]}*keys(){for(const mt of this.indexes())yield this.keyList[mt]}*rkeys(){for(const mt of this.rindexes())yield this.keyList[mt]}*values(){for(const mt of this.indexes())yield this.valList[mt]}*rvalues(){for(const mt of this.rindexes())yield this.valList[mt]}[Symbol.iterator](){return this.entries()}find(mt,vt={}){for(const At of this.indexes())if(mt(this.valList[At],this.keyList[At],this))return this.get(this.keyList[At],vt)}forEach(mt,vt=this){for(const At of this.indexes())mt.call(vt,this.valList[At],this.keyList[At],this)}rforEach(mt,vt=this){for(const At of this.rindexes())mt.call(vt,this.valList[At],this.keyList[At],this)}get prune(){return ut("prune","purgeStale"),this.purgeStale}purgeStale(){let mt=!1;for(const vt of this.rindexes({allowStale:!0}))this.isStale(vt)&&(this.delete(this.keyList[vt]),mt=!0);return mt}dump(){const mt=[];for(const vt of this.indexes({allowStale:!0})){const At=this.keyList[vt],Lt=this.valList[vt],Rt={value:this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt};if(this.ttls){Rt.ttl=this.ttls[vt];const St=nt.now()-this.starts[vt];Rt.start=Math.floor(Date.now()-St)}this.sizes&&(Rt.size=this.sizes[vt]),mt.unshift([At,Rt])}return mt}load(mt){this.clear();for(const[vt,At]of mt){if(At.start){const Lt=Date.now()-At.start;At.start=nt.now()-Lt}this.set(vt,At.value,At)}}dispose(mt,vt,At){}set(mt,vt,{ttl:At=this.ttl,start:Lt,noDisposeOnSet:Rt=this.noDisposeOnSet,size:St=0,sizeCalculation:Tt=this.sizeCalculation,noUpdateTTL:Bt=this.noUpdateTTL}={}){if(St=this.requireSize(mt,vt,St,Tt),this.maxEntrySize&&St>this.maxEntrySize)return this;let xt=this.size===0?void 0:this.keyMap.get(mt);if(xt===void 0)xt=this.newIndex(),this.keyList[xt]=mt,this.valList[xt]=vt,this.keyMap.set(mt,xt),this.next[this.tail]=xt,this.prev[xt]=this.tail,this.tail=xt,this.size++,this.addItemSize(xt,St),Bt=!1;else{const Ct=this.valList[xt];vt!==Ct&&(this.isBackgroundFetch(Ct)?Ct.__abortController.abort():Rt||(this.dispose(Ct,mt,"set"),this.disposeAfter&&this.disposed.push([Ct,mt,"set"])),this.removeItemSize(xt),this.valList[xt]=vt,this.addItemSize(xt,St)),this.moveToTail(xt)}if(At===0||this.ttl!==0||this.ttls||this.initializeTTLTracking(),Bt||this.setItemTTL(xt,At,Lt),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return this.size===0?this.tail:this.size===this.max&&this.max!==0?this.evict(!1):this.free.length!==0?this.free.pop():this.initialFill++}pop(){if(this.size){const mt=this.valList[this.head];return this.evict(!0),mt}}evict(mt){const vt=this.head,At=this.keyList[vt],Lt=this.valList[vt];return this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,At,"evict"),this.disposeAfter&&this.disposed.push([Lt,At,"evict"])),this.removeItemSize(vt),mt&&(this.keyList[vt]=null,this.valList[vt]=null,this.free.push(vt)),this.head=this.next[vt],this.keyMap.delete(At),this.size--,vt}has(mt,{updateAgeOnHas:vt=this.updateAgeOnHas}={}){const At=this.keyMap.get(mt);return At!==void 0&&!this.isStale(At)&&(vt&&this.updateItemAge(At),!0)}peek(mt,{allowStale:vt=this.allowStale}={}){const At=this.keyMap.get(mt);if(At!==void 0&&(vt||!this.isStale(At))){const Lt=this.valList[At];return this.isBackgroundFetch(Lt)?Lt.__staleWhileFetching:Lt}}backgroundFetch(mt,vt,At,Lt){const Rt=vt===void 0?void 0:this.valList[vt];if(this.isBackgroundFetch(Rt))return Rt;const St=new rt,Tt={signal:St.signal,options:At,context:Lt},Bt=new Promise(xt=>xt(this.fetchMethod(mt,Rt,Tt))).then(xt=>(St.signal.aborted||this.set(mt,xt,Tt.options),xt),xt=>{if(this.valList[vt]===Bt&&(!At.noDeleteOnFetchRejection||Bt.__staleWhileFetching===void 0?this.delete(mt):this.valList[vt]=Bt.__staleWhileFetching),Bt.__returned===Bt)throw xt});return Bt.__abortController=St,Bt.__staleWhileFetching=Rt,Bt.__returned=null,vt===void 0?(this.set(mt,Bt,Tt.options),vt=this.keyMap.get(mt)):this.valList[vt]=Bt,Bt}isBackgroundFetch(mt){return mt&&typeof mt=="object"&&typeof mt.then=="function"&&Object.prototype.hasOwnProperty.call(mt,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(mt,"__returned")&&(mt.__returned===mt||mt.__returned===null)}async fetch(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet,ttl:Rt=this.ttl,noDisposeOnSet:St=this.noDisposeOnSet,size:Tt=0,sizeCalculation:Bt=this.sizeCalculation,noUpdateTTL:xt=this.noUpdateTTL,noDeleteOnFetchRejection:Ct=this.noDeleteOnFetchRejection,fetchContext:kt=this.fetchContext,forceRefresh:Nt=!1}={}){if(!this.fetchMethod)return this.get(mt,{allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt});const Ot={allowStale:vt,updateAgeOnGet:At,noDeleteOnStaleGet:Lt,ttl:Rt,noDisposeOnSet:St,size:Tt,sizeCalculation:Bt,noUpdateTTL:xt,noDeleteOnFetchRejection:Ct};let Jt=this.keyMap.get(mt);if(Jt===void 0){const Dt=this.backgroundFetch(mt,Jt,Ot,kt);return Dt.__returned=Dt}{const Dt=this.valList[Jt];if(this.isBackgroundFetch(Dt))return vt&&Dt.__staleWhileFetching!==void 0?Dt.__staleWhileFetching:Dt.__returned=Dt;if(!Nt&&!this.isStale(Jt))return this.moveToTail(Jt),At&&this.updateItemAge(Jt),Dt;const Et=this.backgroundFetch(mt,Jt,Ot,kt);return vt&&Et.__staleWhileFetching!==void 0?Et.__staleWhileFetching:Et.__returned=Et}}get(mt,{allowStale:vt=this.allowStale,updateAgeOnGet:At=this.updateAgeOnGet,noDeleteOnStaleGet:Lt=this.noDeleteOnStaleGet}={}){const Rt=this.keyMap.get(mt);if(Rt!==void 0){const St=this.valList[Rt],Tt=this.isBackgroundFetch(St);return this.isStale(Rt)?Tt?vt?St.__staleWhileFetching:void 0:(Lt||this.delete(mt),vt?St:void 0):Tt?void 0:(this.moveToTail(Rt),At&&this.updateItemAge(Rt),St)}}connect(mt,vt){this.prev[vt]=mt,this.next[mt]=vt}moveToTail(mt){mt!==this.tail&&(mt===this.head?this.head=this.next[mt]:this.connect(this.prev[mt],this.next[mt]),this.connect(this.tail,mt),this.tail=mt)}get del(){return ut("del","delete"),this.delete}delete(mt){let vt=!1;if(this.size!==0){const At=this.keyMap.get(mt);if(At!==void 0)if(vt=!0,this.size===1)this.clear();else{this.removeItemSize(At);const Lt=this.valList[At];this.isBackgroundFetch(Lt)?Lt.__abortController.abort():(this.dispose(Lt,mt,"delete"),this.disposeAfter&&this.disposed.push([Lt,mt,"delete"])),this.keyMap.delete(mt),this.keyList[At]=null,this.valList[At]=null,At===this.tail?this.tail=this.prev[At]:At===this.head?this.head=this.next[At]:(this.next[this.prev[At]]=this.next[At],this.prev[this.next[At]]=this.prev[At]),this.size--,this.free.push(At)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return vt}clear(){for(const mt of this.rindexes({allowStale:!0})){const vt=this.valList[mt];if(this.isBackgroundFetch(vt))vt.__abortController.abort();else{const At=this.keyList[mt];this.dispose(vt,At,"delete"),this.disposeAfter&&this.disposed.push([vt,At,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return ut("reset","clear"),this.clear}get length(){return((mt,vt)=>{const At="LRU_CACHE_PROPERTY_"+mt;if(ht(At)){const{prototype:Lt}=Ut,{get:Rt}=Object.getOwnPropertyDescriptor(Lt,mt);ct(At,mt+" property","cache."+vt,Rt)}})("length","size"),this.size}static get AbortController(){return rt}static get AbortSignal(){return st}}s.exports=Ut}).call(this,et(2))},function(s,o,et){var tt=et(42).Colorizer;s.exports=function(nt){return tt.addColors(nt.colors||nt),nt}},function(s,o,et){var tt={};s.exports=tt,tt.themes={};var nt=et(13),rt=tt.styles=et(106),it=Object.defineProperties,ot=new RegExp(/[\r\n]+/g);tt.supportsColor=et(107).supportsColor,tt.enabled===void 0&&(tt.enabled=tt.supportsColor()!==!1),tt.enable=function(){tt.enabled=!0},tt.disable=function(){tt.enabled=!1},tt.stripColors=tt.strip=function(ft){return(""+ft).replace(/\x1B\[\d+m/g,"")},tt.stylize=function(ft,gt){if(!tt.enabled)return ft+"";var yt=rt[gt];return!yt&> in tt?tt[gt](ft):yt.open+ft+yt.close};var st=/[|\\{}()[\]^$+*?.]/g;function at(ft){var gt=function yt(){return ht.apply(yt,arguments)};return gt._styles=ft,gt.__proto__=dt,gt}var lt,ut=(lt={},rt.grey=rt.gray,Object.keys(rt).forEach(function(ft){rt[ft].closeRe=new RegExp(function(gt){if(typeof gt!="string")throw new TypeError("Expected a string");return gt.replace(st,"\\$&")}(rt[ft].close),"g"),lt[ft]={get:function(){return at(this._styles.concat(ft))}}}),lt),dt=it(function(){},ut);function ht(){var ft=Array.prototype.slice.call(arguments),gt=ft.map(function(vt){return vt!=null&&vt.constructor===String?vt:nt.inspect(vt)}).join(" ");if(!tt.enabled||!gt)return gt;for(var yt=gt.indexOf(` `)!=-1,Ut=this._styles,Ft=Ut.length;Ft--;){var mt=rt[Ut[Ft]];gt=mt.open+gt.replace(mt.closeRe,mt.open)+mt.close,yt&&(gt=gt.replace(ot,function(vt){return mt.close+vt+mt.open}))}return gt}tt.setTheme=function(ft){if(typeof ft!="string")for(var gt in ft)(function(yt){tt[yt]=function(Ut){if(typeof ft[yt]=="object"){var Ft=Ut;for(var mt in ft[yt])Ft=tt[ft[yt][mt]](Ft);return Ft}return tt[ft[yt]](Ut)}})(gt);else console.log("colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));")};var ct=function(ft,gt){var yt=gt.split("");return(yt=yt.map(ft)).join("")};for(var pt in tt.trap=et(109),tt.zalgo=et(110),tt.maps={},tt.maps.america=et(111)(tt),tt.maps.zebra=et(112)(tt),tt.maps.rainbow=et(113)(tt),tt.maps.random=et(114)(tt),tt.maps)(function(ft){tt[ft]=function(gt){return ct(tt.maps[ft],gt)}})(pt);it(tt,function(){var ft={};return Object.keys(ut).forEach(function(gt){ft[gt]={get:function(){return at([gt])}}}),ft}())},function(s,o){s.exports=function(et){return et&&typeof et=="object"&&typeof et.copy=="function"&&typeof et.fill=="function"&&typeof et.readUInt8=="function"}},function(s,o){typeof Object.create=="function"?s.exports=function(et,tt){et.super_=tt,et.prototype=Object.create(tt.prototype,{constructor:{value:et,enumerable:!1,writable:!0,configurable:!0}})}:s.exports=function(et,tt){et.super_=tt;var nt=function(){};nt.prototype=tt.prototype,et.prototype=new nt,et.prototype.constructor=et}},function(s,o){var et={};s.exports=et;var tt={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightRed:[91,39],brightGreen:[92,39],brightYellow:[93,39],brightBlue:[94,39],brightMagenta:[95,39],brightCyan:[96,39],brightWhite:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgGray:[100,49],bgGrey:[100,49],bgBrightRed:[101,49],bgBrightGreen:[102,49],bgBrightYellow:[103,49],bgBrightBlue:[104,49],bgBrightMagenta:[105,49],bgBrightCyan:[106,49],bgBrightWhite:[107,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(tt).forEach(function(nt){var rt=tt[nt],it=et[nt]=[];it.open="\x1B["+rt[0]+"m",it.close="\x1B["+rt[1]+"m"})},function(s,o,et){(function(tt){var nt=et(16),rt=et(108),it=tt.env,ot=void 0;function st(at){return function(lt){return lt!==0&&{level:lt,hasBasic:!0,has256:lt>=2,has16m:lt>=3}}(function(lt){if(ot===!1)return 0;if(rt("color=16m")||rt("color=full")||rt("color=truecolor"))return 3;if(rt("color=256"))return 2;if(lt&&!lt.isTTY&&ot!==!0)return 0;var ut=ot?1:0;if(tt.platform==="win32"){var dt=nt.release().split(".");return Number(tt.versions.node.split(".")[0])>=8&&Number(dt[0])>=10&&Number(dt[2])>=10586?Number(dt[2])>=14931?3:2:1}if("CI"in it)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(function(ct){return ct in it})||it.CI_NAME==="codeship"?1:ut;if("TEAMCITY_VERSION"in it)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(it.TEAMCITY_VERSION)?1:0;if("TERM_PROGRAM"in it){var ht=parseInt((it.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(it.TERM_PROGRAM){case"iTerm.app":return ht>=3?3:2;case"Hyper":return 3;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test("xterm")?2:/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test("xterm")||"COLORTERM"in it?1:ut}(at))}rt("no-color")||rt("no-colors")||rt("color=false")?ot=!1:(rt("color")||rt("colors")||rt("color=true")||rt("color=always"))&&(ot=!0),"FORCE_COLOR"in it&&(ot=it.FORCE_COLOR.length===0||parseInt(it.FORCE_COLOR,10)!==0),s.exports={supportsColor:st,stdout:st(tt.stdout),stderr:st(tt.stderr)}}).call(this,et(2))},function(s,o,et){(function(tt){s.exports=function(nt,rt){var it=(rt=rt||tt.argv).indexOf("--"),ot=/^-{1,2}/.test(nt)?"":"--",st=rt.indexOf(ot+nt);return st!==-1&&(it===-1||st0&&arguments[0]!==void 0?arguments[0]:{};tt(this,ut),ct.levels||(ct.levels=st.cli.levels),this.colorizer=new rt(ct),this.padder=new it(ct),this.options=ct}var dt,ht;return dt=ut,(ht=[{key:"transform",value:function(ct,pt){return this.colorizer.transform(this.padder.transform(ct,pt),pt),ct[at]="".concat(ct.level,":").concat(ct.message),ct}}])&&nt(dt.prototype,ht),Object.defineProperty(dt,"prototype",{writable:!1}),ut}();s.exports=function(ut){return new lt(ut)},s.exports.Format=lt},function(s,o,et){var tt=et(8);function nt(it){if(it.every(rt))return function(ot){for(var st=ot,at=0;at1&&arguments[1]!==void 0?arguments[1]:{},st="metadata";ot.key&&(st=ot.key);var at=[];return ot.fillExcept||ot.fillWith||(at.push("level"),at.push("message")),ot.fillExcept&&(at=ot.fillExcept),at.length>0?nt(it,at,st):ot.fillWith?rt(it,ot.fillWith,st):it})},function(s,o,et){var tt=et(8),nt=et(128);s.exports=tt(function(rt){var it=+new Date;return(void 0).diff=it-((void 0).prevTime||it),(void 0).prevTime=it,rt.ms="+".concat(nt((void 0).diff)),rt})},function(s,o){var et=1e3,tt=6e4,nt=60*tt,rt=24*nt;function it(ot,st,at,lt){var ut=st>=1.5*at;return Math.round(ot/at)+" "+lt+(ut?"s":"")}s.exports=function(ot,st){st=st||{};var at=typeof ot;if(at==="string"&&ot.length>0)return function(lt){if(!((lt=String(lt)).length>100)){var ut=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(lt);if(ut){var dt=parseFloat(ut[1]);switch((ut[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*dt;case"weeks":case"week":case"w":return 6048e5*dt;case"days":case"day":case"d":return dt*rt;case"hours":case"hour":case"hrs":case"hr":case"h":return dt*nt;case"minutes":case"minute":case"mins":case"min":case"m":return dt*tt;case"seconds":case"second":case"secs":case"sec":case"s":return dt*et;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return dt;default:return}}}}(ot);if(at==="number"&&isFinite(ot))return st.long?function(lt){var ut=Math.abs(lt);return ut>=rt?it(lt,ut,rt,"day"):ut>=nt?it(lt,ut,nt,"hour"):ut>=tt?it(lt,ut,tt,"minute"):ut>=et?it(lt,ut,et,"second"):lt+" ms"}(ot):function(lt){var ut=Math.abs(lt);return ut>=rt?Math.round(lt/rt)+"d":ut>=nt?Math.round(lt/nt)+"h":ut>=tt?Math.round(lt/tt)+"m":ut>=et?Math.round(lt/et)+"s":lt+"ms"}(ot);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(ot))}},function(s,o,et){var tt=et(13).inspect,nt=et(8),rt=et(4),it=rt.LEVEL,ot=rt.MESSAGE,st=rt.SPLAT;s.exports=nt(function(at){var lt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ut=Object.assign({},at);return delete ut[it],delete ut[ot],delete ut[st],at[ot]=tt(ut,!1,lt.depth||null,lt.colorize),at})},function(s,o,et){function tt(it,ot){for(var st=0;stut.length)&&(dt=ut.length);for(var ht=0,ct=new Array(dt);ht1?ft.splice(0):ft,Ut=yt.length;if(Ut)for(var Ft=0;Ft1&&arguments[1]!==void 0?arguments[1]:{};return it.format&&(rt.timestamp=typeof it.format=="function"?it.format():tt.format(new Date,it.format)),rt.timestamp||(rt.timestamp=new Date().toISOString()),it.alias&&(rt[it.alias]=rt.timestamp),rt})},function(s,o,et){et.r(o),et.d(o,"assign",function(){return st}),et.d(o,"format",function(){return St}),et.d(o,"parse",function(){return Tt}),et.d(o,"defaultI18n",function(){return dt}),et.d(o,"setGlobalDateI18n",function(){return ct}),et.d(o,"setGlobalDateMasks",function(){return Rt});var tt=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,nt="[^\\s]+",rt=/\[([^]*?)\]/gm;function it(xt,Ct){for(var kt=[],Nt=0,Ot=xt.length;Nt-1?Nt:null}};function st(xt){for(var Ct=[],kt=1;kt3?0:(xt-xt%10!=10?1:0)*xt%10]}},ht=st({},dt),ct=function(xt){return ht=st(ht,xt)},pt=function(xt){return xt.replace(/[|\\{()[^$+*?.-]/g,"\\$&")},ft=function(xt,Ct){for(Ct===void 0&&(Ct=2),xt=String(xt);xt.length0?"-":"+")+ft(100*Math.floor(Math.abs(Ct)/60)+Math.abs(Ct)%60,4)},Z:function(xt){var Ct=xt.getTimezoneOffset();return(Ct>0?"-":"+")+ft(Math.floor(Math.abs(Ct)/60),2)+":"+ft(Math.abs(Ct)%60,2)}},yt=function(xt){return+xt-1},Ut=[null,"[1-9]\\d?"],Ft=[null,nt],mt=["isPm",nt,function(xt,Ct){var kt=xt.toLowerCase();return kt===Ct.amPm[0]?0:kt===Ct.amPm[1]?1:null}],vt=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(xt){var Ct=(xt+"").match(/([+-]|\d\d)/gi);if(Ct){var kt=60*+Ct[1]+parseInt(Ct[2],10);return Ct[0]==="+"?kt:-kt}return 0}],At={D:["day","[1-9]\\d?"],DD:["day","\\d\\d"],Do:["day","[1-9]\\d?"+nt,function(xt){return parseInt(xt,10)}],M:["month","[1-9]\\d?",yt],MM:["month","\\d\\d",yt],YY:["year","\\d\\d",function(xt){var Ct=+(""+new Date().getFullYear()).substr(0,2);return+(""+(+xt>68?Ct-1:Ct)+xt)}],h:["hour","[1-9]\\d?",void 0,"isPm"],hh:["hour","\\d\\d",void 0,"isPm"],H:["hour","[1-9]\\d?"],HH:["hour","\\d\\d"],m:["minute","[1-9]\\d?"],mm:["minute","\\d\\d"],s:["second","[1-9]\\d?"],ss:["second","\\d\\d"],YYYY:["year","\\d{4}"],S:["millisecond","\\d",function(xt){return 100*+xt}],SS:["millisecond","\\d\\d",function(xt){return 10*+xt}],SSS:["millisecond","\\d{3}"],d:Ut,dd:Ut,ddd:Ft,dddd:Ft,MMM:["month",nt,ot("monthNamesShort")],MMMM:["month",nt,ot("monthNames")],a:mt,A:mt,ZZ:vt,Z:vt},Lt={default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},Rt=function(xt){return st(Lt,xt)},St=function(xt,Ct,kt){if(Ct===void 0&&(Ct=Lt.default),kt===void 0&&(kt={}),typeof xt=="number"&&(xt=new Date(xt)),Object.prototype.toString.call(xt)!=="[object Date]"||isNaN(xt.getTime()))throw new Error("Invalid Date pass to format");var Nt=[];Ct=(Ct=Lt[Ct]||Ct).replace(rt,function(Wt,Dt){return Nt.push(Dt),"@@@"});var Ot=st(st({},ht),kt);return(Ct=Ct.replace(tt,function(Wt){return gt[Wt](xt,Ot)})).replace(/@@@/g,function(){return Nt.shift()})};function Tt(xt,Ct,kt){if(kt===void 0&&(kt={}),typeof Ct!="string")throw new Error("Invalid format in fecha parse");if(Ct=Lt[Ct]||Ct,xt.length>1e3)return null;var Nt={year:new Date().getFullYear(),month:0,day:1,hour:0,minute:0,second:0,millisecond:0,isPm:null,timezoneOffset:null},Ot=[],Wt=[],Dt=Ct.replace(rt,function(qt,on){return Wt.push(pt(on)),"@@@"}),Et={},Pt={};Dt=pt(Dt).replace(tt,function(qt){var on=At[qt],Xt=on[0],dn=on[1],_n=on[3];if(Et[Xt])throw new Error("Invalid format. "+Xt+" specified twice in format");return Et[Xt]=!0,_n&&(Pt[_n]=!0),Ot.push(on),"("+dn+")"}),Object.keys(Pt).forEach(function(qt){if(!Et[qt])throw new Error("Invalid format. "+qt+" is required in specified format")}),Dt=Dt.replace(/@@@/g,function(){return Wt.shift()});var zt=xt.match(new RegExp(Dt,"i"));if(!zt)return null;for(var en=st(st({},ht),kt),Kt=1;Kt","maintainers":["David Hyde "],"repository":{"type":"git","url":"https://github.com/winstonjs/winston.git"},"keywords":["winston","logger","logging","logs","sysadmin","bunyan","pino","loglevel","tools","json","stream"],"dependencies":{"@dabh/diagnostics":"^2.0.2","@colors/colors":"1.5.0","async":"^3.2.3","is-stream":"^2.0.0","logform":"^2.4.0","one-time":"^1.0.0","readable-stream":"^3.4.0","safe-stable-stringify":"^2.3.1","stack-trace":"0.0.x","triple-beam":"^1.3.0","winston-transport":"^4.5.0"},"devDependencies":{"@babel/cli":"^7.17.0","@babel/core":"^7.17.2","@babel/preset-env":"^7.16.7","@dabh/eslint-config-populist":"^5.0.0","@types/node":"^18.0.0","abstract-winston-transport":"^0.5.1","assume":"^2.2.0","cross-spawn-async":"^2.2.5","eslint":"^8.9.0","hock":"^1.4.1","mocha":"8.1.3","nyc":"^15.1.0","rimraf":"^3.0.2","split2":"^4.1.0","std-mocks":"^1.0.1","through2":"^4.0.2","winston-compat":"^0.1.5"},"main":"./lib/winston.js","browser":"./dist/winston","types":"./index.d.ts","scripts":{"lint":"eslint lib/*.js lib/winston/*.js lib/winston/**/*.js --resolve-plugins-relative-to ./node_modules/@dabh/eslint-config-populist","test":"mocha","test:coverage":"nyc npm run test:unit","test:unit":"mocha test/unit","test:integration":"mocha test/integration","build":"rimraf dist && babel lib -d dist","prepublishOnly":"npm run build"},"engines":{"node":">= 12.0.0"},"license":"MIT"}')},function(s,o,et){Object.defineProperty(o,"Console",{configurable:!0,enumerable:!0,get:function(){return et(138)}}),Object.defineProperty(o,"File",{configurable:!0,enumerable:!0,get:function(){return et(152)}}),Object.defineProperty(o,"Http",{configurable:!0,enumerable:!0,get:function(){return et(194)}}),Object.defineProperty(o,"Stream",{configurable:!0,enumerable:!0,get:function(){return et(206)}})},function(s,o,et){(function(tt){function nt(ft){return(nt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(gt){return typeof gt}:function(gt){return gt&&typeof Symbol=="function"&>.constructor===Symbol&>!==Symbol.prototype?"symbol":typeof gt})(ft)}function rt(ft,gt){if(!(ft instanceof gt))throw new TypeError("Cannot call a class as a function")}function it(ft,gt){for(var yt=0;yt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var yt,Ut=lt(ft);if(gt){var Ft=lt(this).constructor;yt=Reflect.construct(Ut,arguments,Ft)}else yt=Ut.apply(this,arguments);return at(this,yt)}}function at(ft,gt){if(gt&&(nt(gt)==="object"||typeof gt=="function"))return gt;if(gt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(yt){if(yt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return yt}(ft)}function lt(ft){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(gt){return gt.__proto__||Object.getPrototypeOf(gt)})(ft)}var ut=et(16),dt=et(4),ht=dt.LEVEL,ct=dt.MESSAGE,pt=et(14);s.exports=function(ft){(function(mt,vt){if(typeof vt!="function"&&vt!==null)throw new TypeError("Super expression must either be null or a function");mt.prototype=Object.create(vt&&vt.prototype,{constructor:{value:mt,writable:!0,configurable:!0}}),Object.defineProperty(mt,"prototype",{writable:!1}),vt&&ot(mt,vt)})(Ft,ft);var gt,yt,Ut=st(Ft);function Ft(){var mt,vt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return rt(this,Ft),(mt=Ut.call(this,vt)).name=vt.name||"console",mt.stderrLevels=mt._stringArrayToSet(vt.stderrLevels),mt.consoleWarnLevels=mt._stringArrayToSet(vt.consoleWarnLevels),mt.eol=typeof vt.eol=="string"?vt.eol:ut.EOL,mt.setMaxListeners(30),mt}return gt=Ft,(yt=[{key:"log",value:function(mt,vt){var At=this;return tt(function(){return At.emit("logged",mt)}),this.stderrLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.error(mt[ct]),void(vt&&vt())):this.consoleWarnLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.warn(mt[ct]),void(vt&&vt())):(console._stdout?console._stdout.write("".concat(mt[ct]).concat(this.eol)):console.log(mt[ct]),void(vt&&vt()))}},{key:"_stringArrayToSet",value:function(mt,vt){if(!mt)return{};if(vt=vt||"Cannot make set from type other than Array of string elements",!Array.isArray(mt))throw new Error(vt);return mt.reduce(function(At,Lt){if(typeof Lt!="string")throw new Error(vt);return At[Lt]=!0,At},{})}}])&&it(gt.prototype,yt),Object.defineProperty(gt,"prototype",{writable:!1}),Ft}(pt)}).call(this,et(19).setImmediate)},function(s,o,et){(function(tt,nt){(function(rt,it){if(!rt.setImmediate){var ot,st,at,lt,ut,dt=1,ht={},ct=!1,pt=rt.document,ft=Object.getPrototypeOf&&Object.getPrototypeOf(rt);ft=ft&&ft.setTimeout?ft:rt,{}.toString.call(rt.process)==="[object process]"?ot=function(Ut){nt.nextTick(function(){yt(Ut)})}:function(){if(rt.postMessage&&!rt.importScripts){var Ut=!0,Ft=rt.onmessage;return rt.onmessage=function(){Ut=!1},rt.postMessage("","*"),rt.onmessage=Ft,Ut}}()?(lt="setImmediate$"+Math.random()+"$",ut=function(Ut){Ut.source===rt&&typeof Ut.data=="string"&&Ut.data.indexOf(lt)===0&&yt(+Ut.data.slice(lt.length))},rt.addEventListener?rt.addEventListener("message",ut,!1):rt.attachEvent("onmessage",ut),ot=function(Ut){rt.postMessage(lt+Ut,"*")}):rt.MessageChannel?((at=new MessageChannel).port1.onmessage=function(Ut){yt(Ut.data)},ot=function(Ut){at.port2.postMessage(Ut)}):pt&&"onreadystatechange"in pt.createElement("script")?(st=pt.documentElement,ot=function(Ut){var Ft=pt.createElement("script");Ft.onreadystatechange=function(){yt(Ut),Ft.onreadystatechange=null,st.removeChild(Ft),Ft=null},st.appendChild(Ft)}):ot=function(Ut){setTimeout(yt,0,Ut)},ft.setImmediate=function(Ut){typeof Ut!="function"&&(Ut=new Function(""+Ut));for(var Ft=new Array(arguments.length-1),mt=0;mt"u"?tt===void 0?this:tt:self)}).call(this,et(6),et(2))},function(s,o,et){o.byteLength=function(ut){var dt=at(ut),ht=dt[0],ct=dt[1];return 3*(ht+ct)/4-ct},o.toByteArray=function(ut){var dt,ht,ct=at(ut),pt=ct[0],ft=ct[1],gt=new rt(function(Ft,mt,vt){return 3*(mt+vt)/4-vt}(0,pt,ft)),yt=0,Ut=ft>0?pt-4:pt;for(ht=0;ht>16&255,gt[yt++]=dt>>8&255,gt[yt++]=255&dt;return ft===2&&(dt=nt[ut.charCodeAt(ht)]<<2|nt[ut.charCodeAt(ht+1)]>>4,gt[yt++]=255&dt),ft===1&&(dt=nt[ut.charCodeAt(ht)]<<10|nt[ut.charCodeAt(ht+1)]<<4|nt[ut.charCodeAt(ht+2)]>>2,gt[yt++]=dt>>8&255,gt[yt++]=255&dt),gt},o.fromByteArray=function(ut){for(var dt,ht=ut.length,ct=ht%3,pt=[],ft=0,gt=ht-ct;ftgt?gt:ft+16383));return ct===1?(dt=ut[ht-1],pt.push(tt[dt>>2]+tt[dt<<4&63]+"==")):ct===2&&(dt=(ut[ht-2]<<8)+ut[ht-1],pt.push(tt[dt>>10]+tt[dt>>4&63]+tt[dt<<2&63]+"=")),pt.join("")};for(var tt=[],nt=[],rt=typeof Uint8Array<"u"?Uint8Array:Array,it="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ot=0,st=it.length;ot0)throw new Error("Invalid string. Length must be a multiple of 4");var ht=ut.indexOf("=");return ht===-1&&(ht=dt),[ht,ht===dt?0:4-ht%4]}function lt(ut,dt,ht){for(var ct,pt,ft=[],gt=dt;gt>18&63]+tt[pt>>12&63]+tt[pt>>6&63]+tt[63&pt]);return ft.join("")}nt["-".charCodeAt(0)]=62,nt["_".charCodeAt(0)]=63},function(s,o){o.read=function(et,tt,nt,rt,it){var ot,st,at=8*it-rt-1,lt=(1<>1,dt=-7,ht=nt?it-1:0,ct=nt?-1:1,pt=et[tt+ht];for(ht+=ct,ot=pt&(1<<-dt)-1,pt>>=-dt,dt+=at;dt>0;ot=256*ot+et[tt+ht],ht+=ct,dt-=8);for(st=ot&(1<<-dt)-1,ot>>=-dt,dt+=rt;dt>0;st=256*st+et[tt+ht],ht+=ct,dt-=8);if(ot===0)ot=1-ut;else{if(ot===lt)return st?NaN:1/0*(pt?-1:1);st+=Math.pow(2,rt),ot-=ut}return(pt?-1:1)*st*Math.pow(2,ot-rt)},o.write=function(et,tt,nt,rt,it,ot){var st,at,lt,ut=8*ot-it-1,dt=(1<>1,ct=it===23?Math.pow(2,-24)-Math.pow(2,-77):0,pt=rt?0:ot-1,ft=rt?1:-1,gt=tt<0||tt===0&&1/tt<0?1:0;for(tt=Math.abs(tt),isNaN(tt)||tt===1/0?(at=isNaN(tt)?1:0,st=dt):(st=Math.floor(Math.log(tt)/Math.LN2),tt*(lt=Math.pow(2,-st))<1&&(st--,lt*=2),(tt+=st+ht>=1?ct/lt:ct*Math.pow(2,1-ht))*lt>=2&&(st++,lt/=2),st+ht>=dt?(at=0,st=dt):st+ht>=1?(at=(tt*lt-1)*Math.pow(2,it),st+=ht):(at=tt*Math.pow(2,ht-1)*Math.pow(2,it),st=0));it>=8;et[nt+pt]=255&at,pt+=ft,at/=256,it-=8);for(st=st<0;et[nt+pt]=255&st,pt+=ft,st/=256,ut-=8);et[nt+pt-ft]|=128*gt}},function(s,o){var et={}.toString;s.exports=Array.isArray||function(tt){return et.call(tt)=="[object Array]"}},function(s,o,et){(function(tt,nt){var rt;s.exports=St,St.ReadableState=Rt,et(20).EventEmitter;var it=function(Zt,jt){return Zt.listeners(jt).length},ot=et(62),st=et(5).Buffer,at=(tt!==void 0?tt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){},lt,ut=et(144);lt=ut&&ut.debuglog?ut.debuglog("stream"):function(){};var dt,ht,ct,pt=et(145),ft=et(63),gt=et(64).getHighWaterMark,yt=et(35).codes,Ut=yt.ERR_INVALID_ARG_TYPE,Ft=yt.ERR_STREAM_PUSH_AFTER_EOF,mt=yt.ERR_METHOD_NOT_IMPLEMENTED,vt=yt.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;et(7)(St,ot);var At=ft.errorOrDestroy,Lt=["error","close","destroy","pause","resume"];function Rt(Zt,jt,Vt){rt=rt||et(36),Zt=Zt||{},typeof Vt!="boolean"&&(Vt=jt instanceof rt),this.objectMode=!!Zt.objectMode,Vt&&(this.objectMode=this.objectMode||!!Zt.readableObjectMode),this.highWaterMark=gt(this,Zt,"readableHighWaterMark",Vt),this.buffer=new pt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=Zt.emitClose!==!1,this.autoDestroy=!!Zt.autoDestroy,this.destroyed=!1,this.defaultEncoding=Zt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Zt.encoding&&(dt||(dt=et(21).StringDecoder),this.decoder=new dt(Zt.encoding),this.encoding=Zt.encoding)}function St(Zt){if(rt=rt||et(36),!(this instanceof St))return new St(Zt);var jt=this instanceof rt;this._readableState=new Rt(Zt,this,jt),this.readable=!0,Zt&&(typeof Zt.read=="function"&&(this._read=Zt.read),typeof Zt.destroy=="function"&&(this._destroy=Zt.destroy)),ot.call(this)}function Tt(Zt,jt,Vt,It,$t){lt("readableAddChunk",jt);var Ht,qt=Zt._readableState;if(jt===null)qt.reading=!1,function(on,Xt){if(lt("onEofChunk"),!Xt.ended){if(Xt.decoder){var dn=Xt.decoder.end();dn&&dn.length&&(Xt.buffer.push(dn),Xt.length+=Xt.objectMode?1:dn.length)}Xt.ended=!0,Xt.sync?Ct(on):(Xt.needReadable=!1,Xt.emittedReadable||(Xt.emittedReadable=!0,kt(on)))}}(Zt,qt);else if($t||(Ht=function(on,Xt){var dn;_n=Xt,st.isBuffer(_n)||_n instanceof at||typeof Xt=="string"||Xt===void 0||on.objectMode||(dn=new Ut("chunk",["string","Buffer","Uint8Array"],Xt));var _n;return dn}(qt,jt)),Ht)At(Zt,Ht);else if(qt.objectMode||jt&&jt.length>0)if(typeof jt=="string"||qt.objectMode||Object.getPrototypeOf(jt)===st.prototype||(jt=function(on){return st.from(on)}(jt)),It)qt.endEmitted?At(Zt,new vt):Bt(Zt,qt,jt,!0);else if(qt.ended)At(Zt,new Ft);else{if(qt.destroyed)return!1;qt.reading=!1,qt.decoder&&!Vt?(jt=qt.decoder.write(jt),qt.objectMode||jt.length!==0?Bt(Zt,qt,jt,!1):Nt(Zt,qt)):Bt(Zt,qt,jt,!1)}else It||(qt.reading=!1,Nt(Zt,qt));return!qt.ended&&(qt.lengthjt.highWaterMark&&(jt.highWaterMark=function(Vt){return Vt>=1073741824?Vt=1073741824:(Vt--,Vt|=Vt>>>1,Vt|=Vt>>>2,Vt|=Vt>>>4,Vt|=Vt>>>8,Vt|=Vt>>>16,Vt++),Vt}(Zt)),Zt<=jt.length?Zt:jt.ended?jt.length:(jt.needReadable=!0,0))}function Ct(Zt){var jt=Zt._readableState;lt("emitReadable",jt.needReadable,jt.emittedReadable),jt.needReadable=!1,jt.emittedReadable||(lt("emitReadable",jt.flowing),jt.emittedReadable=!0,nt.nextTick(kt,Zt))}function kt(Zt){var jt=Zt._readableState;lt("emitReadable_",jt.destroyed,jt.length,jt.ended),jt.destroyed||!jt.length&&!jt.ended||(Zt.emit("readable"),jt.emittedReadable=!1),jt.needReadable=!jt.flowing&&!jt.ended&&jt.length<=jt.highWaterMark,Pt(Zt)}function Nt(Zt,jt){jt.readingMore||(jt.readingMore=!0,nt.nextTick(Ot,Zt,jt))}function Ot(Zt,jt){for(;!jt.reading&&!jt.ended&&(jt.length0,jt.resumeScheduled&&!jt.paused?jt.flowing=!0:Zt.listenerCount("data")>0&&Zt.resume()}function Dt(Zt){lt("readable nexttick read 0"),Zt.read(0)}function Et(Zt,jt){lt("resume",jt.reading),jt.reading||Zt.read(0),jt.resumeScheduled=!1,Zt.emit("resume"),Pt(Zt),jt.flowing&&!jt.reading&&Zt.read(0)}function Pt(Zt){var jt=Zt._readableState;for(lt("flow",jt.flowing);jt.flowing&&Zt.read()!==null;);}function zt(Zt,jt){return jt.length===0?null:(jt.objectMode?Vt=jt.buffer.shift():!Zt||Zt>=jt.length?(Vt=jt.decoder?jt.buffer.join(""):jt.buffer.length===1?jt.buffer.first():jt.buffer.concat(jt.length),jt.buffer.clear()):Vt=jt.buffer.consume(Zt,jt.decoder),Vt);var Vt}function en(Zt){var jt=Zt._readableState;lt("endReadable",jt.endEmitted),jt.endEmitted||(jt.ended=!0,nt.nextTick(Kt,jt,Zt))}function Kt(Zt,jt){if(lt("endReadableNT",Zt.endEmitted,Zt.length),!Zt.endEmitted&&Zt.length===0&&(Zt.endEmitted=!0,jt.readable=!1,jt.emit("end"),Zt.autoDestroy)){var Vt=jt._writableState;(!Vt||Vt.autoDestroy&&Vt.finished)&&jt.destroy()}}function nn(Zt,jt){for(var Vt=0,It=Zt.length;Vt=jt.highWaterMark:jt.length>0)||jt.ended))return lt("read: emitReadable",jt.length,jt.ended),jt.length===0&&jt.ended?en(this):Ct(this),null;if((Zt=xt(Zt,jt))===0&&jt.ended)return jt.length===0&&en(this),null;var It,$t=jt.needReadable;return lt("need readable",$t),(jt.length===0||jt.length-Zt0?zt(Zt,jt):null)===null?(jt.needReadable=jt.length<=jt.highWaterMark,Zt=0):(jt.length-=Zt,jt.awaitDrain=0),jt.length===0&&(jt.ended||(jt.needReadable=!0),Vt!==Zt&&jt.ended&&en(this)),It!==null&&this.emit("data",It),It},St.prototype._read=function(Zt){At(this,new mt("_read()"))},St.prototype.pipe=function(Zt,jt){var Vt=this,It=this._readableState;switch(It.pipesCount){case 0:It.pipes=Zt;break;case 1:It.pipes=[It.pipes,Zt];break;default:It.pipes.push(Zt)}It.pipesCount+=1,lt("pipe count=%d opts=%j",It.pipesCount,jt);var $t=(!jt||jt.end!==!1)&&Zt!==nt.stdout&&Zt!==nt.stderr?qt:On;function Ht(gn,hn){lt("onunpipe"),gn===Vt&&hn&&hn.hasUnpiped===!1&&(hn.hasUnpiped=!0,lt("cleanup"),Zt.removeListener("close",Fn),Zt.removeListener("finish",Un),Zt.removeListener("drain",on),Zt.removeListener("error",_n),Zt.removeListener("unpipe",Ht),Vt.removeListener("end",qt),Vt.removeListener("end",On),Vt.removeListener("data",dn),Xt=!0,!It.awaitDrain||Zt._writableState&&!Zt._writableState.needDrain||on())}function qt(){lt("onend"),Zt.end()}It.endEmitted?nt.nextTick($t):Vt.once("end",$t),Zt.on("unpipe",Ht);var on=function(gn){return function(){var hn=gn._readableState;lt("pipeOnDrain",hn.awaitDrain),hn.awaitDrain&&hn.awaitDrain--,hn.awaitDrain===0&&it(gn,"data")&&(hn.flowing=!0,Pt(gn))}}(Vt);Zt.on("drain",on);var Xt=!1;function dn(gn){lt("ondata");var hn=Zt.write(gn);lt("dest.write",hn),hn===!1&&((It.pipesCount===1&&It.pipes===Zt||It.pipesCount>1&&nn(It.pipes,Zt)!==-1)&&!Xt&&(lt("false write response, pause",It.awaitDrain),It.awaitDrain++),Vt.pause())}function _n(gn){lt("onerror",gn),On(),Zt.removeListener("error",_n),it(Zt,"error")===0&&At(Zt,gn)}function Fn(){Zt.removeListener("finish",Un),On()}function Un(){lt("onfinish"),Zt.removeListener("close",Fn),On()}function On(){lt("unpipe"),Vt.unpipe(Zt)}return Vt.on("data",dn),function(gn,hn,wn){if(typeof gn.prependListener=="function")return gn.prependListener(hn,wn);gn._events&&gn._events[hn]?Array.isArray(gn._events[hn])?gn._events[hn].unshift(wn):gn._events[hn]=[wn,gn._events[hn]]:gn.on(hn,wn)}(Zt,"error",_n),Zt.once("close",Fn),Zt.once("finish",Un),Zt.emit("pipe",Vt),It.flowing||(lt("pipe resume"),Vt.resume()),Zt},St.prototype.unpipe=function(Zt){var jt=this._readableState,Vt={hasUnpiped:!1};if(jt.pipesCount===0)return this;if(jt.pipesCount===1)return Zt&&Zt!==jt.pipes||(Zt||(Zt=jt.pipes),jt.pipes=null,jt.pipesCount=0,jt.flowing=!1,Zt&&Zt.emit("unpipe",this,Vt)),this;if(!Zt){var It=jt.pipes,$t=jt.pipesCount;jt.pipes=null,jt.pipesCount=0,jt.flowing=!1;for(var Ht=0;Ht<$t;Ht++)It[Ht].emit("unpipe",this,{hasUnpiped:!1});return this}var qt=nn(jt.pipes,Zt);return qt===-1||(jt.pipes.splice(qt,1),jt.pipesCount-=1,jt.pipesCount===1&&(jt.pipes=jt.pipes[0]),Zt.emit("unpipe",this,Vt)),this},St.prototype.on=function(Zt,jt){var Vt=ot.prototype.on.call(this,Zt,jt),It=this._readableState;return Zt==="data"?(It.readableListening=this.listenerCount("readable")>0,It.flowing!==!1&&this.resume()):Zt==="readable"&&(It.endEmitted||It.readableListening||(It.readableListening=It.needReadable=!0,It.flowing=!1,It.emittedReadable=!1,lt("on readable",It.length,It.reading),It.length?Ct(this):It.reading||nt.nextTick(Dt,this))),Vt},St.prototype.addListener=St.prototype.on,St.prototype.removeListener=function(Zt,jt){var Vt=ot.prototype.removeListener.call(this,Zt,jt);return Zt==="readable"&&nt.nextTick(Wt,this),Vt},St.prototype.removeAllListeners=function(Zt){var jt=ot.prototype.removeAllListeners.apply(this,arguments);return Zt!=="readable"&&Zt!==void 0||nt.nextTick(Wt,this),jt},St.prototype.resume=function(){var Zt=this._readableState;return Zt.flowing||(lt("resume"),Zt.flowing=!Zt.readableListening,function(jt,Vt){Vt.resumeScheduled||(Vt.resumeScheduled=!0,nt.nextTick(Et,jt,Vt))}(this,Zt)),Zt.paused=!1,this},St.prototype.pause=function(){return lt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(lt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},St.prototype.wrap=function(Zt){var jt=this,Vt=this._readableState,It=!1;for(var $t in Zt.on("end",function(){if(lt("wrapped end"),Vt.decoder&&!Vt.ended){var qt=Vt.decoder.end();qt&&qt.length&&jt.push(qt)}jt.push(null)}),Zt.on("data",function(qt){lt("wrapped data"),Vt.decoder&&(qt=Vt.decoder.write(qt)),Vt.objectMode&&qt==null||(Vt.objectMode||qt&&qt.length)&&(jt.push(qt)||(It=!0,Zt.pause()))}),Zt)this[$t]===void 0&&typeof Zt[$t]=="function"&&(this[$t]=function(qt){return function(){return Zt[qt].apply(Zt,arguments)}}($t));for(var Ht=0;Ht0?this.tail.next=pt:this.head=pt,this.tail=pt,++this.length}},{key:"unshift",value:function(ct){var pt={data:ct,next:this.head};this.length===0&&(this.tail=pt),this.head=pt,++this.length}},{key:"shift",value:function(){if(this.length!==0){var ct=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,ct}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(ct){if(this.length===0)return"";for(var pt=this.head,ft=""+pt.data;pt=pt.next;)ft+=ct+pt.data;return ft}},{key:"concat",value:function(ct){if(this.length===0)return st.alloc(0);for(var pt,ft,gt,yt=st.allocUnsafe(ct>>>0),Ut=this.head,Ft=0;Ut;)pt=Ut.data,ft=yt,gt=Ft,st.prototype.copy.call(pt,ft,gt),Ft+=Ut.data.length,Ut=Ut.next;return yt}},{key:"consume",value:function(ct,pt){var ft;return ctyt.length?yt.length:ct;if(Ut===yt.length?gt+=yt:gt+=yt.slice(0,ct),(ct-=Ut)==0){Ut===yt.length?(++ft,pt.next?this.head=pt.next:this.head=this.tail=null):(this.head=pt,pt.data=yt.slice(Ut));break}++ft}return this.length-=ft,gt}},{key:"_getBuffer",value:function(ct){var pt=st.allocUnsafe(ct),ft=this.head,gt=1;for(ft.data.copy(pt),ct-=ft.data.length;ft=ft.next;){var yt=ft.data,Ut=ct>yt.length?yt.length:ct;if(yt.copy(pt,pt.length-ct,0,Ut),(ct-=Ut)==0){Ut===yt.length?(++gt,ft.next?this.head=ft.next:this.head=this.tail=null):(this.head=ft,ft.data=yt.slice(Ut));break}++gt}return this.length-=gt,pt}},{key:lt,value:function(ct,pt){return at(this,nt(nt({},pt),{},{depth:0,customInspect:!1}))}}])&&it(dt.prototype,ht),Object.defineProperty(dt,"prototype",{writable:!1}),ut}()},function(s,o){},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){(function(tt){var nt;function rt(Ut,Ft,mt){return(Ft=function(vt){var At=function(Lt,Rt){if(typeof Lt!="object"||Lt===null)return Lt;var St=Lt[Symbol.toPrimitive];if(St!==void 0){var Tt=St.call(Lt,Rt||"default");if(typeof Tt!="object")return Tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Rt==="string"?String:Number)(Lt)}(vt,"string");return typeof At=="symbol"?At:String(At)}(Ft))in Ut?Object.defineProperty(Ut,Ft,{value:mt,enumerable:!0,configurable:!0,writable:!0}):Ut[Ft]=mt,Ut}var it=et(149),ot=Symbol("lastResolve"),st=Symbol("lastReject"),at=Symbol("error"),lt=Symbol("ended"),ut=Symbol("lastPromise"),dt=Symbol("handlePromise"),ht=Symbol("stream");function ct(Ut,Ft){return{value:Ut,done:Ft}}function pt(Ut){var Ft=Ut[ot];if(Ft!==null){var mt=Ut[ht].read();mt!==null&&(Ut[ut]=null,Ut[ot]=null,Ut[st]=null,Ft(ct(mt,!1)))}}function ft(Ut){tt.nextTick(pt,Ut)}var gt=Object.getPrototypeOf(function(){}),yt=Object.setPrototypeOf((rt(nt={get stream(){return this[ht]},next:function(){var Ut=this,Ft=this[at];if(Ft!==null)return Promise.reject(Ft);if(this[lt])return Promise.resolve(ct(void 0,!0));if(this[ht].destroyed)return new Promise(function(Lt,Rt){tt.nextTick(function(){Ut[at]?Rt(Ut[at]):Lt(ct(void 0,!0))})});var mt,vt=this[ut];if(vt)mt=new Promise(function(Lt,Rt){return function(St,Tt){Lt.then(function(){Rt[lt]?St(ct(void 0,!0)):Rt[dt](St,Tt)},Tt)}}(vt,this));else{var At=this[ht].read();if(At!==null)return Promise.resolve(ct(At,!1));mt=new Promise(this[dt])}return this[ut]=mt,mt}},Symbol.asyncIterator,function(){return this}),rt(nt,"return",function(){var Ut=this;return new Promise(function(Ft,mt){Ut[ht].destroy(null,function(vt){vt?mt(vt):Ft(ct(void 0,!0))})})}),nt),gt);s.exports=function(Ut){var Ft,mt=Object.create(yt,(rt(Ft={},ht,{value:Ut,writable:!0}),rt(Ft,ot,{value:null,writable:!0}),rt(Ft,st,{value:null,writable:!0}),rt(Ft,at,{value:null,writable:!0}),rt(Ft,lt,{value:Ut._readableState.endEmitted,writable:!0}),rt(Ft,dt,{value:function(vt,At){var Lt=mt[ht].read();Lt?(mt[ut]=null,mt[ot]=null,mt[st]=null,vt(ct(Lt,!1))):(mt[ot]=vt,mt[st]=At)},writable:!0}),Ft));return mt[ut]=null,it(Ut,function(vt){if(vt&&vt.code!=="ERR_STREAM_PREMATURE_CLOSE"){var At=mt[st];return At!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,At(vt)),void(mt[at]=vt)}var Lt=mt[ot];Lt!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,Lt(ct(void 0,!0))),mt[lt]=!0}),Ut.on("readable",ft.bind(null,mt)),mt}}).call(this,et(2))},function(s,o,et){var tt=et(35).codes.ERR_STREAM_PREMATURE_CLOSE;function nt(){}s.exports=function rt(it,ot,st){if(typeof ot=="function")return rt(it,null,ot);ot||(ot={}),st=function(Ut){var Ft=!1;return function(){if(!Ft){Ft=!0;for(var mt=arguments.length,vt=new Array(mt),At=0;At0&&arguments[0]!==void 0?arguments[0]:{};if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");function st(at){this.emit("error",at,this.transport)}this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=st.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(var at=0;at"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var Tt,Bt=dt(Rt);if(St){var xt=dt(this).constructor;Tt=Reflect.construct(Bt,arguments,xt)}else Tt=Bt.apply(this,arguments);return lt(this,Tt)}}function lt(Rt,St){if(St&&(rt(St)==="object"||typeof St=="function"))return St;if(St!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ut(Rt)}function ut(Rt){if(Rt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Rt}function dt(Rt){return(dt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(St){return St.__proto__||Object.getPrototypeOf(St)})(Rt)}var ht=et(65),ct=et(55),pt=et(153),ft=et(163),gt=et(4).MESSAGE,yt=et(33),Ut=yt.Stream,Ft=yt.PassThrough,mt=et(14),vt=et(39)("winston:file"),At=et(16),Lt=et(193);s.exports=function(Rt){(function(Ct,kt){if(typeof kt!="function"&&kt!==null)throw new TypeError("Super expression must either be null or a function");Ct.prototype=Object.create(kt&&kt.prototype,{constructor:{value:Ct,writable:!0,configurable:!0}}),Object.defineProperty(Ct,"prototype",{writable:!1}),kt&&st(Ct,kt)})(xt,Rt);var St,Tt,Bt=at(xt);function xt(){var Ct,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};function Nt(Ot){for(var Wt=arguments.length,Dt=new Array(Wt>1?Wt-1:0),Et=1;Et1&&arguments[1]!==void 0?arguments[1]:function(){};if(this.silent)return Nt(),!0;if(this._drain)this._stream.once("drain",function(){kt._drain=!1,kt.log(Ct,Nt)});else{if(!this._rotate){var Ot="".concat(Ct[gt]).concat(this.eol),Wt=nt.byteLength(Ot);this._pendingSize+=Wt,this._opening&&!this.rotatedWhileOpening&&this._needsNewFile(this._size+this._pendingSize)&&(this.rotatedWhileOpening=!0);var Dt=this._stream.write(Ot,Et.bind(this));return Dt?Nt():(this._drain=!0,this._stream.once("drain",function(){kt._drain=!1,Nt()})),vt("written",Dt,this._drain),this.finishIfEnding(),Dt}this._stream.once("rotate",function(){kt._rotate=!1,kt.log(Ct,Nt)})}function Et(){var Pt=this;this._size+=Wt,this._pendingSize-=Wt,vt("logged %s %s",this._size,Ot),this.emit("logged",Ct),this._opening||this._needsNewFile()&&(this._rotate=!0,this._endStream(function(){return Pt._rotateFile()}))}}},{key:"query",value:function(Ct,kt){typeof Ct=="function"&&(kt=Ct,Ct={}),Ct=function(zt){return(zt=zt||{}).rows=zt.rows||zt.limit||10,zt.start=zt.start||0,zt.until=zt.until||new Date,rt(zt.until)!=="object"&&(zt.until=new Date(zt.until)),zt.from=zt.from||zt.until-864e5,rt(zt.from)!=="object"&&(zt.from=new Date(zt.from)),zt.order=zt.order||"desc",zt}(Ct);var Nt=ct.join(this.dirname,this.filename),Ot="",Wt=[],Dt=0,Et=ht.createReadStream(Nt,{encoding:"utf8"});function Pt(zt,en){try{var Kt=JSON.parse(zt);(function(nn){if(nn&&rt(nn)==="object"){var Zt=new Date(nn.timestamp);if(!(Ct.from&&ZtCt.until||Ct.level&&Ct.level!==nn.level))return!0}})(Kt)&&function(nn){Ct.rows&&Wt.length>=Ct.rows&&Ct.order!=="desc"?Et.readable&&Et.destroy():(Ct.fields&&(nn=Ct.fields.reduce(function(Zt,jt){return Zt[jt]=nn[jt],Zt},{})),Ct.order==="desc"&&Wt.length>=Ct.rows&&Wt.shift(),Wt.push(nn))}(Kt)}catch(nn){en||Et.emit("error",nn)}}Et.on("error",function(zt){if(Et.readable&&Et.destroy(),kt)return zt.code!=="ENOENT"?kt(zt):kt(null,Wt)}),Et.on("data",function(zt){for(var en=(zt=(Ot+zt).split(/\n+/)).length-1,Kt=0;Kt=Ct.start)&&Pt(zt[Kt]),Dt++;Ot=zt[en]}),Et.on("close",function(){Ot&&Pt(Ot,!0),Ct.order==="desc"&&(Wt=Wt.reverse()),kt&&kt(null,Wt)})}},{key:"stream",value:function(){var Ct=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},kt=ct.join(this.dirname,this.filename),Nt=new Ut,Ot={file:kt,start:Ct.start};return Nt.destroy=Lt(Ot,function(Wt,Dt){if(Wt)return Nt.emit("error",Wt);try{Nt.emit("data",Dt),Dt=JSON.parse(Dt),Nt.emit("log",Dt)}catch(Et){Nt.emit("error",Et)}}),Nt}},{key:"open",value:function(){var Ct=this;this.filename&&(this._opening||(this._opening=!0,this.stat(function(kt,Nt){if(kt)return Ct.emit("error",kt);vt("stat done: %s { size: %s }",Ct.filename,Nt),Ct._size=Nt,Ct._dest=Ct._createStream(Ct._stream),Ct._opening=!1,Ct.once("open",function(){Ct._stream.eventNames().includes("rotate")?Ct._stream.emit("rotate"):Ct._rotate=!1})})))}},{key:"stat",value:function(Ct){var kt=this,Nt=this._getFile(),Ot=ct.join(this.dirname,Nt);ht.stat(Ot,function(Wt,Dt){return Wt&&Wt.code==="ENOENT"?(vt("ENOENT ok",Ot),kt.filename=Nt,Ct(null,0)):Wt?(vt("err ".concat(Wt.code," ").concat(Ot)),Ct(Wt)):!Dt||kt._needsNewFile(Dt.size)?kt._incFile(function(){return kt.stat(Ct)}):(kt.filename=Nt,void Ct(null,Dt.size))})}},{key:"close",value:function(Ct){var kt=this;this._stream&&this._stream.end(function(){Ct&&Ct(),kt.emit("flush"),kt.emit("closed")})}},{key:"_needsNewFile",value:function(Ct){return Ct=Ct||this._size,this.maxsize&&Ct>=this.maxsize}},{key:"_onError",value:function(Ct){this.emit("error",Ct)}},{key:"_setupStream",value:function(Ct){return Ct.on("error",this._onError),Ct}},{key:"_cleanupStream",value:function(Ct){return Ct.removeListener("error",this._onError),Ct}},{key:"_rotateFile",value:function(){var Ct=this;this._incFile(function(){return Ct.open()})}},{key:"_endStream",value:function(){var Ct=this,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){};this._dest?(this._stream.unpipe(this._dest),this._dest.end(function(){Ct._cleanupStream(Ct._dest),kt()})):kt()}},{key:"_createStream",value:function(Ct){var kt=this,Nt=ct.join(this.dirname,this.filename);vt("create stream start",Nt,this.options);var Ot=ht.createWriteStream(Nt,this.options).on("error",function(Dt){return vt(Dt)}).on("close",function(){return vt("close",Ot.path,Ot.bytesWritten)}).on("open",function(){vt("file open ok",Nt),kt.emit("open",Nt),Ct.pipe(Ot),kt.rotatedWhileOpening&&(kt._stream=new Ft,kt._stream.setMaxListeners(30),kt._rotateFile(),kt.rotatedWhileOpening=!1,kt._cleanupStream(Ot),Ct.end())});if(vt("create stream ok",Nt),this.zippedArchive){var Wt=ft.createGzip();return Wt.pipe(Ot),Wt}return Ot}},{key:"_incFile",value:function(Ct){vt("_incFile",this.filename);var kt=ct.extname(this._basename),Nt=ct.basename(this._basename,kt);this.tailable?this._checkMaxFilesTailable(kt,Nt,Ct):(this._created+=1,this._checkMaxFilesIncrementing(kt,Nt,Ct))}},{key:"_getFile",value:function(){var Ct=ct.extname(this._basename),kt=ct.basename(this._basename,Ct),Nt=this.rotationFormat?this.rotationFormat():this._created,Ot=!this.tailable&&this._created?"".concat(kt).concat(Nt).concat(Ct):"".concat(kt).concat(Ct);return this.zippedArchive&&!this.tailable?"".concat(Ot,".gz"):Ot}},{key:"_checkMaxFilesIncrementing",value:function(Ct,kt,Nt){if(!this.maxFiles||this._created1;Et--)Wt.push(function(Pt,zt){var en=this,Kt="".concat(kt).concat(Pt-1).concat(Ct).concat(Dt),nn=ct.join(this.dirname,Kt);ht.exists(nn,function(Zt){if(!Zt)return zt(null);Kt="".concat(kt).concat(Pt).concat(Ct).concat(Dt),ht.rename(nn,ct.join(en.dirname,Kt),zt)})}.bind(this,Et));pt(Wt,function(){ht.rename(ct.join(Ot.dirname,"".concat(kt).concat(Ct)),ct.join(Ot.dirname,"".concat(kt,"1").concat(Ct).concat(Dt)),Nt)})}}},{key:"_createLogDirIfNotExist",value:function(Ct){ht.existsSync(Ct)||ht.mkdirSync(Ct,{recursive:!0})}}])&&ot(St.prototype,Tt),Object.defineProperty(St,"prototype",{writable:!1}),xt}(mt)}).call(this,et(19).setImmediate,et(5).Buffer)},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(it,ot){return(0,tt.default)(nt.default,it,ot)};var tt=rt(et(154)),nt=rt(et(158));function rt(it){return it&&it.__esModule?it:{default:it}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(44)),nt=it(et(23)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)((ot,st,at)=>{var lt=(0,tt.default)(st)?[]:{};ot(st,(ut,dt,ht)=>{(0,nt.default)(ut)((ct,...pt)=>{pt.length<2&&([pt]=pt),lt[dt]=pt,ht(ct)})},ut=>at(ut,lt))},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(at){return(0,rt.isAsync)(at)?function(...lt){const ut=lt.pop();return ot(at.apply(this,lt),ut)}:(0,tt.default)(function(lt,ut){var dt;try{dt=at.apply(this,lt)}catch(ht){return ut(ht)}if(dt&&typeof dt.then=="function")return ot(dt,ut);ut(null,dt)})};var tt=it(et(156)),nt=it(et(157)),rt=et(23);function it(at){return at&&at.__esModule?at:{default:at}}function ot(at,lt){return at.then(ut=>{st(lt,null,ut)},ut=>{st(lt,ut&&ut.message?ut:new Error(ut))})}function st(at,lt,ut){try{at(lt,ut)}catch(dt){(0,nt.default)(ht=>{throw ht},dt)}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){var rt=nt.pop();return tt.call(this,nt,rt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){Object.defineProperty(o,"__esModule",{value:!0}),o.fallback=at,o.wrap=lt;var rt,it=o.hasQueueMicrotask=typeof queueMicrotask=="function"&&queueMicrotask,ot=o.hasSetImmediate=typeof tt=="function"&&tt,st=o.hasNextTick=typeof nt=="object"&&typeof nt.nextTick=="function";function at(ut){setTimeout(ut,0)}function lt(ut){return(dt,...ht)=>ut(()=>dt(...ht))}rt=it?queueMicrotask:ot?tt:st?nt.nextTick:at,o.default=lt(rt)}).call(this,et(19).setImmediate,et(2))},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=rt(et(66)),nt=rt(et(30));function rt(it){return it&&it.__esModule?it:{default:it}}o.default=(0,nt.default)(function(it,ot,st){return(0,tt.default)(it,1,ot,st)},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=at(et(67)),nt=at(et(160)),rt=at(et(68)),it=et(23),ot=at(et(162)),st=at(et(45));function at(lt){return lt&<.__esModule?lt:{default:lt}}o.default=lt=>(ut,dt,ht)=>{if(ht=(0,tt.default)(ht),lt<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!ut)return ht(null);if((0,it.isAsyncGenerator)(ut))return(0,ot.default)(ut,lt,dt,ht);if((0,it.isAsyncIterable)(ut))return(0,ot.default)(ut[Symbol.asyncIterator](),lt,dt,ht);var ct=(0,nt.default)(ut),pt=!1,ft=!1,gt=0,yt=!1;function Ut(mt,vt){if(!ft)if(gt-=1,mt)pt=!0,ht(mt);else if(mt===!1)pt=!0,ft=!0;else{if(vt===st.default||pt&><=0)return pt=!0,ht(null);yt||Ft()}}function Ft(){for(yt=!0;gt=ot||dt||lt||(dt=!0,it.next().then(({value:yt,done:Ut})=>{if(!ut&&!lt){if(dt=!1,Ut)return lt=!0,void(ht<=0&&at(null));ht++,st(yt,ct,ft),ct++,pt()}}).catch(gt))}function ft(yt,Ut){if(ht-=1,!ut)return yt?gt(yt):yt===!1?(lt=!0,void(ut=!0)):Ut===rt.default||lt&&ht<=0?(lt=!0,at(null)):void pt()}function gt(yt){ut||(dt=!1,lt=!0,at(yt))}pt()};var tt,nt=et(45),rt=(tt=nt)&&tt.__esModule?tt:{default:tt};s.exports=o.default},function(s,o,et){(function(tt){var nt=et(5).Buffer,rt=et(164).Transform,it=et(174),ot=et(13),st=et(73).ok,at=et(5).kMaxLength,lt="Cannot create final Buffer. It would be larger than 0x"+at.toString(16)+" bytes";it.Z_MIN_WINDOWBITS=8,it.Z_MAX_WINDOWBITS=15,it.Z_DEFAULT_WINDOWBITS=15,it.Z_MIN_CHUNK=64,it.Z_MAX_CHUNK=1/0,it.Z_DEFAULT_CHUNK=16384,it.Z_MIN_MEMLEVEL=1,it.Z_MAX_MEMLEVEL=9,it.Z_DEFAULT_MEMLEVEL=8,it.Z_MIN_LEVEL=-1,it.Z_MAX_LEVEL=9,it.Z_DEFAULT_LEVEL=it.Z_DEFAULT_COMPRESSION;for(var ut=Object.keys(it),dt=0;dt=at?en=new RangeError(lt):zt=nt.concat(Wt,Dt),Wt=[],kt.close(),Ot(en,zt)}kt.on("error",function(zt){kt.removeListener("end",Pt),kt.removeListener("readable",Et),Ot(zt)}),kt.on("end",Pt),kt.end(Nt),Et()}function Ut(kt,Nt){if(typeof Nt=="string"&&(Nt=nt.from(Nt)),!nt.isBuffer(Nt))throw new TypeError("Not a string or buffer");var Ot=kt._finishFlushFlag;return kt._processChunk(Nt,Ot)}function Ft(kt){if(!(this instanceof Ft))return new Ft(kt);Bt.call(this,kt,it.DEFLATE)}function mt(kt){if(!(this instanceof mt))return new mt(kt);Bt.call(this,kt,it.INFLATE)}function vt(kt){if(!(this instanceof vt))return new vt(kt);Bt.call(this,kt,it.GZIP)}function At(kt){if(!(this instanceof At))return new At(kt);Bt.call(this,kt,it.GUNZIP)}function Lt(kt){if(!(this instanceof Lt))return new Lt(kt);Bt.call(this,kt,it.DEFLATERAW)}function Rt(kt){if(!(this instanceof Rt))return new Rt(kt);Bt.call(this,kt,it.INFLATERAW)}function St(kt){if(!(this instanceof St))return new St(kt);Bt.call(this,kt,it.UNZIP)}function Tt(kt){return kt===it.Z_NO_FLUSH||kt===it.Z_PARTIAL_FLUSH||kt===it.Z_SYNC_FLUSH||kt===it.Z_FULL_FLUSH||kt===it.Z_FINISH||kt===it.Z_BLOCK}function Bt(kt,Nt){var Ot=this;if(this._opts=kt=kt||{},this._chunkSize=kt.chunkSize||o.Z_DEFAULT_CHUNK,rt.call(this,kt),kt.flush&&!Tt(kt.flush))throw new Error("Invalid flush flag: "+kt.flush);if(kt.finishFlush&&!Tt(kt.finishFlush))throw new Error("Invalid flush flag: "+kt.finishFlush);if(this._flushFlag=kt.flush||it.Z_NO_FLUSH,this._finishFlushFlag=kt.finishFlush!==void 0?kt.finishFlush:it.Z_FINISH,kt.chunkSize&&(kt.chunkSizeo.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+kt.chunkSize);if(kt.windowBits&&(kt.windowBitso.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+kt.windowBits);if(kt.level&&(kt.levelo.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+kt.level);if(kt.memLevel&&(kt.memLevelo.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+kt.memLevel);if(kt.strategy&&kt.strategy!=o.Z_FILTERED&&kt.strategy!=o.Z_HUFFMAN_ONLY&&kt.strategy!=o.Z_RLE&&kt.strategy!=o.Z_FIXED&&kt.strategy!=o.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+kt.strategy);if(kt.dictionary&&!nt.isBuffer(kt.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._handle=new it.Zlib(Nt);var Wt=this;this._hadError=!1,this._handle.onerror=function(Pt,zt){xt(Wt),Wt._hadError=!0;var en=new Error(Pt);en.errno=zt,en.code=o.codes[zt],Wt.emit("error",en)};var Dt=o.Z_DEFAULT_COMPRESSION;typeof kt.level=="number"&&(Dt=kt.level);var Et=o.Z_DEFAULT_STRATEGY;typeof kt.strategy=="number"&&(Et=kt.strategy),this._handle.init(kt.windowBits||o.Z_DEFAULT_WINDOWBITS,Dt,kt.memLevel||o.Z_DEFAULT_MEMLEVEL,Et,kt.dictionary),this._buffer=nt.allocUnsafe(this._chunkSize),this._offset=0,this._level=Dt,this._strategy=Et,this.once("end",this.close),Object.defineProperty(this,"_closed",{get:function(){return!Ot._handle},configurable:!0,enumerable:!0})}function xt(kt,Nt){Nt&&tt.nextTick(Nt),kt._handle&&(kt._handle.close(),kt._handle=null)}function Ct(kt){kt.emit("close")}Object.defineProperty(o,"codes",{enumerable:!0,value:Object.freeze(ct),writable:!1}),o.Deflate=Ft,o.Inflate=mt,o.Gzip=vt,o.Gunzip=At,o.DeflateRaw=Lt,o.InflateRaw=Rt,o.Unzip=St,o.createDeflate=function(kt){return new Ft(kt)},o.createInflate=function(kt){return new mt(kt)},o.createDeflateRaw=function(kt){return new Lt(kt)},o.createInflateRaw=function(kt){return new Rt(kt)},o.createGzip=function(kt){return new vt(kt)},o.createGunzip=function(kt){return new At(kt)},o.createUnzip=function(kt){return new St(kt)},o.deflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Ft(Nt),kt,Ot)},o.deflateSync=function(kt,Nt){return Ut(new Ft(Nt),kt)},o.gzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new vt(Nt),kt,Ot)},o.gzipSync=function(kt,Nt){return Ut(new vt(Nt),kt)},o.deflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Lt(Nt),kt,Ot)},o.deflateRawSync=function(kt,Nt){return Ut(new Lt(Nt),kt)},o.unzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new St(Nt),kt,Ot)},o.unzipSync=function(kt,Nt){return Ut(new St(Nt),kt)},o.inflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new mt(Nt),kt,Ot)},o.inflateSync=function(kt,Nt){return Ut(new mt(Nt),kt)},o.gunzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new At(Nt),kt,Ot)},o.gunzipSync=function(kt,Nt){return Ut(new At(Nt),kt)},o.inflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Rt(Nt),kt,Ot)},o.inflateRawSync=function(kt,Nt){return Ut(new Rt(Nt),kt)},ot.inherits(Bt,rt),Bt.prototype.params=function(kt,Nt,Ot){if(kto.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+kt);if(Nt!=o.Z_FILTERED&&Nt!=o.Z_HUFFMAN_ONLY&&Nt!=o.Z_RLE&&Nt!=o.Z_FIXED&&Nt!=o.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+Nt);if(this._level!==kt||this._strategy!==Nt){var Wt=this;this.flush(it.Z_SYNC_FLUSH,function(){st(Wt._handle,"zlib binding closed"),Wt._handle.params(kt,Nt),Wt._hadError||(Wt._level=kt,Wt._strategy=Nt,Ot&&Ot())})}else tt.nextTick(Ot)},Bt.prototype.reset=function(){return st(this._handle,"zlib binding closed"),this._handle.reset()},Bt.prototype._flush=function(kt){this._transform(nt.alloc(0),"",kt)},Bt.prototype.flush=function(kt,Nt){var Ot=this,Wt=this._writableState;(typeof kt=="function"||kt===void 0&&!Nt)&&(Nt=kt,kt=it.Z_FULL_FLUSH),Wt.ended?Nt&&tt.nextTick(Nt):Wt.ending?Nt&&this.once("end",Nt):Wt.needDrain?Nt&&this.once("drain",function(){return Ot.flush(kt,Nt)}):(this._flushFlag=kt,this.write(nt.alloc(0),"",Nt))},Bt.prototype.close=function(kt){xt(this,kt),tt.nextTick(Ct,this)},Bt.prototype._transform=function(kt,Nt,Ot){var Wt,Dt=this._writableState,Et=(Dt.ending||Dt.ended)&&(!kt||Dt.length===kt.length);return kt===null||nt.isBuffer(kt)?this._handle?(Et?Wt=this._finishFlushFlag:(Wt=this._flushFlag,kt.length>=Dt.length&&(this._flushFlag=this._opts.flush||it.Z_NO_FLUSH)),void this._processChunk(kt,Wt,Ot)):Ot(new Error("zlib binding closed")):Ot(new Error("invalid input"))},Bt.prototype._processChunk=function(kt,Nt,Ot){var Wt=kt&&kt.length,Dt=this._chunkSize-this._offset,Et=0,Pt=this,zt=typeof Ot=="function";if(!zt){var en,Kt=[],nn=0;this.on("error",function($t){en=$t}),st(this._handle,"zlib binding closed");do var Zt=this._handle.writeSync(Nt,kt,Et,Wt,this._buffer,this._offset,Dt);while(!this._hadError&&It(Zt[0],Zt[1]));if(this._hadError)throw en;if(nn>=at)throw xt(this),new RangeError(lt);var jt=nt.concat(Kt,nn);return xt(this),jt}st(this._handle,"zlib binding closed");var Vt=this._handle.write(Nt,kt,Et,Wt,this._buffer,this._offset,Dt);function It($t,Ht){if(this&&(this.buffer=null,this.callback=null),!Pt._hadError){var qt=Dt-Ht;if(st(qt>=0,"have should not go down"),qt>0){var on=Pt._buffer.slice(Pt._offset,Pt._offset+qt);Pt._offset+=qt,zt?Pt.push(on):(Kt.push(on),nn+=on.length)}if((Ht===0||Pt._offset>=Pt._chunkSize)&&(Dt=Pt._chunkSize,Pt._offset=0,Pt._buffer=nt.allocUnsafe(Pt._chunkSize)),Ht===0){if(Et+=Wt-$t,Wt=$t,!zt)return!0;var Xt=Pt._handle.write(Nt,kt,Et,Wt,Pt._buffer,Pt._offset,Pt._chunkSize);return Xt.callback=It,void(Xt.buffer=kt)}if(!zt)return!1;Ot()}}Vt.buffer=kt,Vt.callback=It},ot.inherits(Ft,Bt),ot.inherits(mt,Bt),ot.inherits(vt,Bt),ot.inherits(At,Bt),ot.inherits(Lt,Bt),ot.inherits(Rt,Bt),ot.inherits(St,Bt)}).call(this,et(2))},function(s,o,et){s.exports=nt;var tt=et(20).EventEmitter;function nt(){tt.call(this)}et(7)(nt,tt),nt.Readable=et(31),nt.Writable=et(170),nt.Duplex=et(171),nt.Transform=et(172),nt.PassThrough=et(173),nt.Stream=nt,nt.prototype.pipe=function(rt,it){var ot=this;function st(pt){rt.writable&&rt.write(pt)===!1&&ot.pause&&ot.pause()}function at(){ot.readable&&ot.resume&&ot.resume()}ot.on("data",st),rt.on("drain",at),rt._isStdio||it&&it.end===!1||(ot.on("end",ut),ot.on("close",dt));var lt=!1;function ut(){lt||(lt=!0,rt.end())}function dt(){lt||(lt=!0,typeof rt.destroy=="function"&&rt.destroy())}function ht(pt){if(ct(),tt.listenerCount(this,"error")===0)throw pt}function ct(){ot.removeListener("data",st),rt.removeListener("drain",at),ot.removeListener("end",ut),ot.removeListener("close",dt),ot.removeListener("error",ht),rt.removeListener("error",ht),ot.removeListener("end",ct),ot.removeListener("close",ct),rt.removeListener("close",ct)}return ot.on("error",ht),rt.on("error",ht),ot.on("end",ct),ot.on("close",ct),rt.on("close",ct),rt.emit("pipe",ot),rt}},function(s,o){var et={}.toString;s.exports=Array.isArray||function(tt){return et.call(tt)=="[object Array]"}},function(s,o){},function(s,o,et){var tt=et(46).Buffer,nt=et(168);s.exports=function(){function rt(){(function(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")})(this,rt),this.head=null,this.tail=null,this.length=0}return rt.prototype.push=function(it){var ot={data:it,next:null};this.length>0?this.tail.next=ot:this.head=ot,this.tail=ot,++this.length},rt.prototype.unshift=function(it){var ot={data:it,next:this.head};this.length===0&&(this.tail=ot),this.head=ot,++this.length},rt.prototype.shift=function(){if(this.length!==0){var it=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,it}},rt.prototype.clear=function(){this.head=this.tail=null,this.length=0},rt.prototype.join=function(it){if(this.length===0)return"";for(var ot=this.head,st=""+ot.data;ot=ot.next;)st+=it+ot.data;return st},rt.prototype.concat=function(it){if(this.length===0)return tt.alloc(0);if(this.length===1)return this.head.data;for(var ot,st,at,lt=tt.allocUnsafe(it>>>0),ut=this.head,dt=0;ut;)ot=ut.data,st=lt,at=dt,ot.copy(st,at),dt+=ut.data.length,ut=ut.next;return lt},rt}(),nt&&nt.inspect&&nt.inspect.custom&&(s.exports.prototype[nt.inspect.custom]=function(){var rt=nt.inspect({length:this.length});return this.constructor.name+" "+rt})},function(s,o){},function(s,o,et){s.exports=rt;var tt=et(72),nt=Object.create(et(32));function rt(it){if(!(this instanceof rt))return new rt(it);tt.call(this,it)}nt.inherits=et(7),nt.inherits(rt,tt),rt.prototype._transform=function(it,ot,st){st(null,it)}},function(s,o,et){s.exports=et(47)},function(s,o,et){s.exports=et(22)},function(s,o,et){s.exports=et(31).Transform},function(s,o,et){s.exports=et(31).PassThrough},function(s,o,et){(function(tt,nt){var rt=et(73),it=et(176),ot=et(177),st=et(180),at=et(183);for(var lt in at)o[lt]=at[lt];o.NONE=0,o.DEFLATE=1,o.INFLATE=2,o.GZIP=3,o.GUNZIP=4,o.DEFLATERAW=5,o.INFLATERAW=6,o.UNZIP=7;function ut(dt){if(typeof dt!="number"||dto.UNZIP)throw new TypeError("Bad argument");this.dictionary=null,this.err=0,this.flush=0,this.init_done=!1,this.level=0,this.memLevel=0,this.mode=dt,this.strategy=0,this.windowBits=0,this.write_in_progress=!1,this.pending_close=!1,this.gzip_id_bytes_read=0}ut.prototype.close=function(){this.write_in_progress?this.pending_close=!0:(this.pending_close=!1,rt(this.init_done,"close before init"),rt(this.mode<=o.UNZIP),this.mode===o.DEFLATE||this.mode===o.GZIP||this.mode===o.DEFLATERAW?ot.deflateEnd(this.strm):this.mode!==o.INFLATE&&this.mode!==o.GUNZIP&&this.mode!==o.INFLATERAW&&this.mode!==o.UNZIP||st.inflateEnd(this.strm),this.mode=o.NONE,this.dictionary=null)},ut.prototype.write=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!0,dt,ht,ct,pt,ft,gt,yt)},ut.prototype.writeSync=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!1,dt,ht,ct,pt,ft,gt,yt)},ut.prototype._write=function(dt,ht,ct,pt,ft,gt,yt,Ut){if(rt.equal(arguments.length,8),rt(this.init_done,"write before init"),rt(this.mode!==o.NONE,"already finalized"),rt.equal(!1,this.write_in_progress,"write already in progress"),rt.equal(!1,this.pending_close,"close is pending"),this.write_in_progress=!0,rt.equal(!1,ht===void 0,"must provide flush value"),this.write_in_progress=!0,ht!==o.Z_NO_FLUSH&&ht!==o.Z_PARTIAL_FLUSH&&ht!==o.Z_SYNC_FLUSH&&ht!==o.Z_FULL_FLUSH&&ht!==o.Z_FINISH&&ht!==o.Z_BLOCK)throw new Error("Invalid flush value");if(ct==null&&(ct=tt.alloc(0),ft=0,pt=0),this.strm.avail_in=ft,this.strm.input=ct,this.strm.next_in=pt,this.strm.avail_out=Ut,this.strm.output=gt,this.strm.next_out=yt,this.flush=ht,!dt)return this._process(),this._checkError()?this._afterSync():void 0;var Ft=this;return nt.nextTick(function(){Ft._process(),Ft._after()}),this},ut.prototype._afterSync=function(){var dt=this.strm.avail_out,ht=this.strm.avail_in;return this.write_in_progress=!1,[ht,dt]},ut.prototype._process=function(){var dt=null;switch(this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflate(this.strm,this.flush);break;case o.UNZIP:switch(this.strm.avail_in>0&&(dt=this.strm.next_in),this.gzip_id_bytes_read){case 0:if(dt===null)break;if(this.strm.input[dt]!==31){this.mode=o.INFLATE;break}if(this.gzip_id_bytes_read=1,dt++,this.strm.avail_in===1)break;case 1:if(dt===null)break;this.strm.input[dt]===139?(this.gzip_id_bytes_read=2,this.mode=o.GUNZIP):this.mode=o.INFLATE;break;default:throw new Error("invalid number of gzip magic number bytes read")}case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:for(this.err=st.inflate(this.strm,this.flush),this.err===o.Z_NEED_DICT&&this.dictionary&&(this.err=st.inflateSetDictionary(this.strm,this.dictionary),this.err===o.Z_OK?this.err=st.inflate(this.strm,this.flush):this.err===o.Z_DATA_ERROR&&(this.err=o.Z_NEED_DICT));this.strm.avail_in>0&&this.mode===o.GUNZIP&&this.err===o.Z_STREAM_END&&this.strm.next_in[0]!==0;)this.reset(),this.err=st.inflate(this.strm,this.flush);break;default:throw new Error("Unknown mode "+this.mode)}},ut.prototype._checkError=function(){switch(this.err){case o.Z_OK:case o.Z_BUF_ERROR:if(this.strm.avail_out!==0&&this.flush===o.Z_FINISH)return this._error("unexpected end of file"),!1;break;case o.Z_STREAM_END:break;case o.Z_NEED_DICT:return this.dictionary==null?this._error("Missing dictionary"):this._error("Bad dictionary"),!1;default:return this._error("Zlib error"),!1}return!0},ut.prototype._after=function(){if(this._checkError()){var dt=this.strm.avail_out,ht=this.strm.avail_in;this.write_in_progress=!1,this.callback(ht,dt),this.pending_close&&this.close()}},ut.prototype._error=function(dt){this.strm.msg&&(dt=this.strm.msg),this.onerror(dt,this.err),this.write_in_progress=!1,this.pending_close&&this.close()},ut.prototype.init=function(dt,ht,ct,pt,ft){rt(arguments.length===4||arguments.length===5,"init(windowBits, level, memLevel, strategy, [dictionary])"),rt(dt>=8&&dt<=15,"invalid windowBits"),rt(ht>=-1&&ht<=9,"invalid compression level"),rt(ct>=1&&ct<=9,"invalid memlevel"),rt(pt===o.Z_FILTERED||pt===o.Z_HUFFMAN_ONLY||pt===o.Z_RLE||pt===o.Z_FIXED||pt===o.Z_DEFAULT_STRATEGY,"invalid strategy"),this._init(ht,dt,ct,pt,ft),this._setDictionary()},ut.prototype.params=function(){throw new Error("deflateParams Not supported")},ut.prototype.reset=function(){this._reset(),this._setDictionary()},ut.prototype._init=function(dt,ht,ct,pt,ft){switch(this.level=dt,this.windowBits=ht,this.memLevel=ct,this.strategy=pt,this.flush=o.Z_NO_FLUSH,this.err=o.Z_OK,this.mode!==o.GZIP&&this.mode!==o.GUNZIP||(this.windowBits+=16),this.mode===o.UNZIP&&(this.windowBits+=32),this.mode!==o.DEFLATERAW&&this.mode!==o.INFLATERAW||(this.windowBits=-1*this.windowBits),this.strm=new it,this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflateInit2(this.strm,this.level,o.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:case o.UNZIP:this.err=st.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}this.err!==o.Z_OK&&this._error("Init error"),this.dictionary=ft,this.write_in_progress=!1,this.init_done=!0},ut.prototype._setDictionary=function(){if(this.dictionary!=null){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:this.err=ot.deflateSetDictionary(this.strm,this.dictionary)}this.err!==o.Z_OK&&this._error("Failed to set dictionary")}},ut.prototype._reset=function(){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:case o.GZIP:this.err=ot.deflateReset(this.strm);break;case o.INFLATE:case o.INFLATERAW:case o.GUNZIP:this.err=st.inflateReset(this.strm)}this.err!==o.Z_OK&&this._error("Failed to reset stream")},o.Zlib=ut}).call(this,et(5).Buffer,et(2))},function(s,o,et){var tt=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable;function it(ot){if(ot==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(ot)}s.exports=function(){try{if(!Object.assign)return!1;var ot=new String("abc");if(ot[5]="de",Object.getOwnPropertyNames(ot)[0]==="5")return!1;for(var st={},at=0;at<10;at++)st["_"+String.fromCharCode(at)]=at;if(Object.getOwnPropertyNames(st).map(function(ut){return st[ut]}).join("")!=="0123456789")return!1;var lt={};return"abcdefghijklmnopqrst".split("").forEach(function(ut){lt[ut]=ut}),Object.keys(Object.assign({},lt)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}()?Object.assign:function(ot,st){for(var at,lt,ut=it(ot),dt=1;dt4?9:0)}function ut(Rt){for(var St=Rt.length;--St>=0;)Rt[St]=0}function dt(Rt){var St=Rt.state,Tt=St.pending;Tt>Rt.avail_out&&(Tt=Rt.avail_out),Tt!==0&&(nt.arraySet(Rt.output,St.pending_buf,St.pending_out,Tt,Rt.next_out),Rt.next_out+=Tt,St.pending_out+=Tt,Rt.total_out+=Tt,Rt.avail_out-=Tt,St.pending-=Tt,St.pending===0&&(St.pending_out=0))}function ht(Rt,St){rt._tr_flush_block(Rt,Rt.block_start>=0?Rt.block_start:-1,Rt.strstart-Rt.block_start,St),Rt.block_start=Rt.strstart,dt(Rt.strm)}function ct(Rt,St){Rt.pending_buf[Rt.pending++]=St}function pt(Rt,St){Rt.pending_buf[Rt.pending++]=St>>>8&255,Rt.pending_buf[Rt.pending++]=255&St}function ft(Rt,St){var Tt,Bt,xt=Rt.max_chain_length,Ct=Rt.strstart,kt=Rt.prev_length,Nt=Rt.nice_match,Ot=Rt.strstart>Rt.w_size-262?Rt.strstart-(Rt.w_size-262):0,Wt=Rt.window,Dt=Rt.w_mask,Et=Rt.prev,Pt=Rt.strstart+258,zt=Wt[Ct+kt-1],en=Wt[Ct+kt];Rt.prev_length>=Rt.good_match&&(xt>>=2),Nt>Rt.lookahead&&(Nt=Rt.lookahead);do if(Wt[(Tt=St)+kt]===en&&Wt[Tt+kt-1]===zt&&Wt[Tt]===Wt[Ct]&&Wt[++Tt]===Wt[Ct+1]){Ct+=2,Tt++;do;while(Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Wt[++Ct]===Wt[++Tt]&&Ctkt){if(Rt.match_start=St,kt=Bt,Bt>=Nt)break;zt=Wt[Ct+kt-1],en=Wt[Ct+kt]}}while((St=Et[St&Dt])>Ot&&--xt!=0);return kt<=Rt.lookahead?kt:Rt.lookahead}function gt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt,Et=Rt.w_size;do{if(xt=Rt.window_size-Rt.lookahead-Rt.strstart,Rt.strstart>=Et+(Et-262)){nt.arraySet(Rt.window,Rt.window,Et,Et,0),Rt.match_start-=Et,Rt.strstart-=Et,Rt.block_start-=Et,St=Tt=Rt.hash_size;do Bt=Rt.head[--St],Rt.head[St]=Bt>=Et?Bt-Et:0;while(--Tt);St=Tt=Et;do Bt=Rt.prev[--St],Rt.prev[St]=Bt>=Et?Bt-Et:0;while(--Tt);xt+=Et}if(Rt.strm.avail_in===0)break;if(kt=Rt.strm,Nt=Rt.window,Ot=Rt.strstart+Rt.lookahead,Wt=xt,Dt=void 0,(Dt=kt.avail_in)>Wt&&(Dt=Wt),Tt=Dt===0?0:(kt.avail_in-=Dt,nt.arraySet(Nt,kt.input,kt.next_in,Dt,Ot),kt.state.wrap===1?kt.adler=it(kt.adler,Nt,Dt,Ot):kt.state.wrap===2&&(kt.adler=ot(kt.adler,Nt,Dt,Ot)),kt.next_in+=Dt,kt.total_in+=Dt,Dt),Rt.lookahead+=Tt,Rt.lookahead+Rt.insert>=3)for(Ct=Rt.strstart-Rt.insert,Rt.ins_h=Rt.window[Ct],Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<=3)if(Bt=rt._tr_tally(Rt,Rt.strstart-Rt.match_start,Rt.match_length-3),Rt.lookahead-=Rt.match_length,Rt.match_length<=Rt.max_lazy_match&&Rt.lookahead>=3){Rt.match_length--;do Rt.strstart++,Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<4096)&&(Rt.match_length=2)),Rt.prev_length>=3&&Rt.match_length<=Rt.prev_length){xt=Rt.strstart+Rt.lookahead-3,Bt=rt._tr_tally(Rt,Rt.strstart-1-Rt.prev_match,Rt.prev_length-3),Rt.lookahead-=Rt.prev_length-1,Rt.prev_length-=2;do++Rt.strstart<=xt&&(Rt.ins_h=(Rt.ins_h<15&&(kt=2,Bt-=16),xt<1||xt>9||Tt!==8||Bt<8||Bt>15||St<0||St>9||Ct<0||Ct>4)return at(Rt,-2);Bt===8&&(Bt=9);var Nt=new mt;return Rt.state=Nt,Nt.strm=Rt,Nt.wrap=kt,Nt.gzhead=null,Nt.w_bits=Bt,Nt.w_size=1<Rt.pending_buf_size-5&&(Tt=Rt.pending_buf_size-5);;){if(Rt.lookahead<=1){if(gt(Rt),Rt.lookahead===0&&St===0)return 1;if(Rt.lookahead===0)break}Rt.strstart+=Rt.lookahead,Rt.lookahead=0;var Bt=Rt.block_start+Tt;if((Rt.strstart===0||Rt.strstart>=Bt)&&(Rt.lookahead=Rt.strstart-Bt,Rt.strstart=Bt,ht(Rt,!1),Rt.strm.avail_out===0)||Rt.strstart-Rt.block_start>=Rt.w_size-262&&(ht(Rt,!1),Rt.strm.avail_out===0))return 1}return Rt.insert=0,St===4?(ht(Rt,!0),Rt.strm.avail_out===0?3:4):(Rt.strstart>Rt.block_start&&(ht(Rt,!1),Rt.strm.avail_out),1)}),new Ft(4,4,8,4,yt),new Ft(4,5,16,8,yt),new Ft(4,6,32,32,yt),new Ft(4,4,16,16,Ut),new Ft(8,16,32,32,Ut),new Ft(8,16,128,128,Ut),new Ft(8,32,128,256,Ut),new Ft(32,128,258,1024,Ut),new Ft(32,258,258,4096,Ut)],o.deflateInit=function(Rt,St){return Lt(Rt,St,8,15,8,0)},o.deflateInit2=Lt,o.deflateReset=At,o.deflateResetKeep=vt,o.deflateSetHeader=function(Rt,St){return Rt&&Rt.state?Rt.state.wrap!==2?-2:(Rt.state.gzhead=St,0):-2},o.deflate=function(Rt,St){var Tt,Bt,xt,Ct;if(!Rt||!Rt.state||St>5||St<0)return Rt?at(Rt,-2):-2;if(Bt=Rt.state,!Rt.output||!Rt.input&&Rt.avail_in!==0||Bt.status===666&&St!==4)return at(Rt,Rt.avail_out===0?-5:-2);if(Bt.strm=Rt,Tt=Bt.last_flush,Bt.last_flush=St,Bt.status===42)if(Bt.wrap===2)Rt.adler=0,ct(Bt,31),ct(Bt,139),ct(Bt,8),Bt.gzhead?(ct(Bt,(Bt.gzhead.text?1:0)+(Bt.gzhead.hcrc?2:0)+(Bt.gzhead.extra?4:0)+(Bt.gzhead.name?8:0)+(Bt.gzhead.comment?16:0)),ct(Bt,255&Bt.gzhead.time),ct(Bt,Bt.gzhead.time>>8&255),ct(Bt,Bt.gzhead.time>>16&255),ct(Bt,Bt.gzhead.time>>24&255),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,255&Bt.gzhead.os),Bt.gzhead.extra&&Bt.gzhead.extra.length&&(ct(Bt,255&Bt.gzhead.extra.length),ct(Bt,Bt.gzhead.extra.length>>8&255)),Bt.gzhead.hcrc&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending,0)),Bt.gzindex=0,Bt.status=69):(ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,3),Bt.status=113);else{var kt=8+(Bt.w_bits-8<<4)<<8;kt|=(Bt.strategy>=2||Bt.level<2?0:Bt.level<6?1:Bt.level===6?2:3)<<6,Bt.strstart!==0&&(kt|=32),kt+=31-kt%31,Bt.status=113,pt(Bt,kt),Bt.strstart!==0&&(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),Rt.adler=1}if(Bt.status===69)if(Bt.gzhead.extra){for(xt=Bt.pending;Bt.gzindex<(65535&Bt.gzhead.extra.length)&&(Bt.pending!==Bt.pending_buf_size||(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending!==Bt.pending_buf_size));)ct(Bt,255&Bt.gzhead.extra[Bt.gzindex]),Bt.gzindex++;Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Bt.gzindex===Bt.gzhead.extra.length&&(Bt.gzindex=0,Bt.status=73)}else Bt.status=73;if(Bt.status===73)if(Bt.gzhead.name){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.gzindex=0,Bt.status=91)}else Bt.status=91;if(Bt.status===91)if(Bt.gzhead.comment){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.status=103)}else Bt.status=103;if(Bt.status===103&&(Bt.gzhead.hcrc?(Bt.pending+2>Bt.pending_buf_size&&dt(Rt),Bt.pending+2<=Bt.pending_buf_size&&(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),Rt.adler=0,Bt.status=113)):Bt.status=113),Bt.pending!==0){if(dt(Rt),Rt.avail_out===0)return Bt.last_flush=-1,0}else if(Rt.avail_in===0&<(St)<=lt(Tt)&&St!==4)return at(Rt,-5);if(Bt.status===666&&Rt.avail_in!==0)return at(Rt,-5);if(Rt.avail_in!==0||Bt.lookahead!==0||St!==0&&Bt.status!==666){var Nt=Bt.strategy===2?function(Ot,Wt){for(var Dt;;){if(Ot.lookahead===0&&(gt(Ot),Ot.lookahead===0)){if(Wt===0)return 1;break}if(Ot.match_length=0,Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++,Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Wt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):Bt.strategy===3?function(Ot,Wt){for(var Dt,Et,Pt,zt,en=Ot.window;;){if(Ot.lookahead<=258){if(gt(Ot),Ot.lookahead<=258&&Wt===0)return 1;if(Ot.lookahead===0)break}if(Ot.match_length=0,Ot.lookahead>=3&&Ot.strstart>0&&(Et=en[Pt=Ot.strstart-1])===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]){zt=Ot.strstart+258;do;while(Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&PtOt.lookahead&&(Ot.match_length=Ot.lookahead)}if(Ot.match_length>=3?(Dt=rt._tr_tally(Ot,1,Ot.match_length-3),Ot.lookahead-=Ot.match_length,Ot.strstart+=Ot.match_length,Ot.match_length=0):(Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++),Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Wt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):tt[Bt.level].func(Bt,St);if(Nt!==3&&Nt!==4||(Bt.status=666),Nt===1||Nt===3)return Rt.avail_out===0&&(Bt.last_flush=-1),0;if(Nt===2&&(St===1?rt._tr_align(Bt):St!==5&&(rt._tr_stored_block(Bt,0,0,!1),St===3&&(ut(Bt.head),Bt.lookahead===0&&(Bt.strstart=0,Bt.block_start=0,Bt.insert=0))),dt(Rt),Rt.avail_out===0))return Bt.last_flush=-1,0}return St!==4?0:Bt.wrap<=0?1:(Bt.wrap===2?(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),ct(Bt,Rt.adler>>16&255),ct(Bt,Rt.adler>>24&255),ct(Bt,255&Rt.total_in),ct(Bt,Rt.total_in>>8&255),ct(Bt,Rt.total_in>>16&255),ct(Bt,Rt.total_in>>24&255)):(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),dt(Rt),Bt.wrap>0&&(Bt.wrap=-Bt.wrap),Bt.pending!==0?0:1)},o.deflateEnd=function(Rt){var St;return Rt&&Rt.state?(St=Rt.state.status)!==42&&St!==69&&St!==73&&St!==91&&St!==103&&St!==113&&St!==666?at(Rt,-2):(Rt.state=null,St===113?at(Rt,-3):0):-2},o.deflateSetDictionary=function(Rt,St){var Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt=St.length;if(!Rt||!Rt.state||(Ct=(Tt=Rt.state).wrap)===2||Ct===1&&Tt.status!==42||Tt.lookahead)return-2;for(Ct===1&&(Rt.adler=it(Rt.adler,St,Dt,0)),Tt.wrap=0,Dt>=Tt.w_size&&(Ct===0&&(ut(Tt.head),Tt.strstart=0,Tt.block_start=0,Tt.insert=0),Wt=new nt.Buf8(Tt.w_size),nt.arraySet(Wt,St,Dt-Tt.w_size,Tt.w_size,0),St=Wt,Dt=Tt.w_size),kt=Rt.avail_in,Nt=Rt.next_in,Ot=Rt.input,Rt.avail_in=Dt,Rt.next_in=0,Rt.input=St,gt(Tt);Tt.lookahead>=3;){Bt=Tt.strstart,xt=Tt.lookahead-2;do Tt.ins_h=(Tt.ins_h<=0;)Et[Pt]=0}var rt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],it=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ot=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],st=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],at=new Array(576);nt(at);var lt=new Array(60);nt(lt);var ut=new Array(512);nt(ut);var dt=new Array(256);nt(dt);var ht=new Array(29);nt(ht);var ct,pt,ft,gt=new Array(30);function yt(Et,Pt,zt,en,Kt){this.static_tree=Et,this.extra_bits=Pt,this.extra_base=zt,this.elems=en,this.max_length=Kt,this.has_stree=Et&&Et.length}function Ut(Et,Pt){this.dyn_tree=Et,this.max_code=0,this.stat_desc=Pt}function Ft(Et){return Et<256?ut[Et]:ut[256+(Et>>>7)]}function mt(Et,Pt){Et.pending_buf[Et.pending++]=255&Pt,Et.pending_buf[Et.pending++]=Pt>>>8&255}function vt(Et,Pt,zt){Et.bi_valid>16-zt?(Et.bi_buf|=Pt<>16-Et.bi_valid,Et.bi_valid+=zt-16):(Et.bi_buf|=Pt<>>=1,zt<<=1;while(--Pt>0);return zt>>>1}function Rt(Et,Pt,zt){var en,Kt,nn=new Array(16),Zt=0;for(en=1;en<=15;en++)nn[en]=Zt=Zt+zt[en-1]<<1;for(Kt=0;Kt<=Pt;Kt++){var jt=Et[2*Kt+1];jt!==0&&(Et[2*Kt]=Lt(nn[jt]++,jt))}}function St(Et){var Pt;for(Pt=0;Pt<286;Pt++)Et.dyn_ltree[2*Pt]=0;for(Pt=0;Pt<30;Pt++)Et.dyn_dtree[2*Pt]=0;for(Pt=0;Pt<19;Pt++)Et.bl_tree[2*Pt]=0;Et.dyn_ltree[512]=1,Et.opt_len=Et.static_len=0,Et.last_lit=Et.matches=0}function Tt(Et){Et.bi_valid>8?mt(Et,Et.bi_buf):Et.bi_valid>0&&(Et.pending_buf[Et.pending++]=Et.bi_buf),Et.bi_buf=0,Et.bi_valid=0}function Bt(Et,Pt,zt,en){var Kt=2*Pt,nn=2*zt;return Et[Kt]>1;zt>=1;zt--)xt(Et,nn,zt);Kt=Vt;do zt=Et.heap[1],Et.heap[1]=Et.heap[Et.heap_len--],xt(Et,nn,1),en=Et.heap[1],Et.heap[--Et.heap_max]=zt,Et.heap[--Et.heap_max]=en,nn[2*Kt]=nn[2*zt]+nn[2*en],Et.depth[Kt]=(Et.depth[zt]>=Et.depth[en]?Et.depth[zt]:Et.depth[en])+1,nn[2*zt+1]=nn[2*en+1]=Kt,Et.heap[1]=Kt++,xt(Et,nn,1);while(Et.heap_len>=2);Et.heap[--Et.heap_max]=Et.heap[1],function($t,Ht){var qt,on,Xt,dn,_n,Fn,Un=Ht.dyn_tree,On=Ht.max_code,gn=Ht.stat_desc.static_tree,hn=Ht.stat_desc.has_stree,wn=Ht.stat_desc.extra_bits,Zn=Ht.stat_desc.extra_base,Pn=Ht.stat_desc.max_length,$n=0;for(dn=0;dn<=15;dn++)$t.bl_count[dn]=0;for(Un[2*$t.heap[$t.heap_max]+1]=0,qt=$t.heap_max+1;qt<573;qt++)(dn=Un[2*Un[2*(on=$t.heap[qt])+1]+1]+1)>Pn&&(dn=Pn,$n++),Un[2*on+1]=dn,on>On||($t.bl_count[dn]++,_n=0,on>=Zn&&(_n=wn[on-Zn]),Fn=Un[2*on],$t.opt_len+=Fn*(dn+_n),hn&&($t.static_len+=Fn*(gn[2*on+1]+_n)));if($n!==0){do{for(dn=Pn-1;$t.bl_count[dn]===0;)dn--;$t.bl_count[dn]--,$t.bl_count[dn+1]+=2,$t.bl_count[Pn]--,$n-=2}while($n>0);for(dn=Pn;dn!==0;dn--)for(on=$t.bl_count[dn];on!==0;)(Xt=$t.heap[--qt])>On||(Un[2*Xt+1]!==dn&&($t.opt_len+=(dn-Un[2*Xt+1])*Un[2*Xt],Un[2*Xt+1]=dn),on--)}}(Et,Pt),Rt(nn,It,Et.bl_count)}function Nt(Et,Pt,zt){var en,Kt,nn=-1,Zt=Pt[1],jt=0,Vt=7,It=4;for(Zt===0&&(Vt=138,It=3),Pt[2*(zt+1)+1]=65535,en=0;en<=zt;en++)Kt=Zt,Zt=Pt[2*(en+1)+1],++jt>=7;Kt<30;Kt++)for(gt[Kt]=nn<<7,Pt=0;Pt<1<0?(Et.strm.data_type===2&&(Et.strm.data_type=function(jt){var Vt,It=4093624447;for(Vt=0;Vt<=31;Vt++,It>>>=1)if(1&It&&jt.dyn_ltree[2*Vt]!==0)return 0;if(jt.dyn_ltree[18]!==0||jt.dyn_ltree[20]!==0||jt.dyn_ltree[26]!==0)return 1;for(Vt=32;Vt<256;Vt++)if(jt.dyn_ltree[2*Vt]!==0)return 1;return 0}(Et)),kt(Et,Et.l_desc),kt(Et,Et.d_desc),Zt=function(jt){var Vt;for(Nt(jt,jt.dyn_ltree,jt.l_desc.max_code),Nt(jt,jt.dyn_dtree,jt.d_desc.max_code),kt(jt,jt.bl_desc),Vt=18;Vt>=3&&jt.bl_tree[2*st[Vt]+1]===0;Vt--);return jt.opt_len+=3*(Vt+1)+5+5+4,Vt}(Et),Kt=Et.opt_len+3+7>>>3,(nn=Et.static_len+3+7>>>3)<=Kt&&(Kt=nn)):Kt=nn=zt+5,zt+4<=Kt&&Pt!==-1?Dt(Et,Pt,zt,en):Et.strategy===4||nn===Kt?(vt(Et,2+(en?1:0),3),Ct(Et,at,lt)):(vt(Et,4+(en?1:0),3),function(jt,Vt,It,$t){var Ht;for(vt(jt,Vt-257,5),vt(jt,It-1,5),vt(jt,$t-4,4),Ht=0;Ht<$t;Ht++)vt(jt,jt.bl_tree[2*st[Ht]+1],3);Ot(jt,jt.dyn_ltree,Vt-1),Ot(jt,jt.dyn_dtree,It-1)}(Et,Et.l_desc.max_code+1,Et.d_desc.max_code+1,Zt+1),Ct(Et,Et.dyn_ltree,Et.dyn_dtree)),St(Et),en&&Tt(Et)},o._tr_tally=function(Et,Pt,zt){return Et.pending_buf[Et.d_buf+2*Et.last_lit]=Pt>>>8&255,Et.pending_buf[Et.d_buf+2*Et.last_lit+1]=255&Pt,Et.pending_buf[Et.l_buf+Et.last_lit]=255&zt,Et.last_lit++,Pt===0?Et.dyn_ltree[2*zt]++:(Et.matches++,Pt--,Et.dyn_ltree[2*(dt[zt]+256+1)]++,Et.dyn_dtree[2*Ft(Pt)]++),Et.last_lit===Et.lit_bufsize-1},o._tr_align=function(Et){vt(Et,2,3),At(Et,256,at),function(Pt){Pt.bi_valid===16?(mt(Pt,Pt.bi_buf),Pt.bi_buf=0,Pt.bi_valid=0):Pt.bi_valid>=8&&(Pt.pending_buf[Pt.pending++]=255&Pt.bi_buf,Pt.bi_buf>>=8,Pt.bi_valid-=8)}(Et)}},function(s,o,et){s.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(s,o,et){var tt=et(38),nt=et(74),rt=et(75),it=et(181),ot=et(182);function st(Ut){return(Ut>>>24&255)+(Ut>>>8&65280)+((65280&Ut)<<8)+((255&Ut)<<24)}function at(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new tt.Buf16(320),this.work=new tt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function lt(Ut){var Ft;return Ut&&Ut.state?(Ft=Ut.state,Ut.total_in=Ut.total_out=Ft.total=0,Ut.msg="",Ft.wrap&&(Ut.adler=1&Ft.wrap),Ft.mode=1,Ft.last=0,Ft.havedict=0,Ft.dmax=32768,Ft.head=null,Ft.hold=0,Ft.bits=0,Ft.lencode=Ft.lendyn=new tt.Buf32(852),Ft.distcode=Ft.distdyn=new tt.Buf32(592),Ft.sane=1,Ft.back=-1,0):-2}function ut(Ut){var Ft;return Ut&&Ut.state?((Ft=Ut.state).wsize=0,Ft.whave=0,Ft.wnext=0,lt(Ut)):-2}function dt(Ut,Ft){var mt,vt;return Ut&&Ut.state?(vt=Ut.state,Ft<0?(mt=0,Ft=-Ft):(mt=1+(Ft>>4),Ft<48&&(Ft&=15)),Ft&&(Ft<8||Ft>15)?-2:(vt.window!==null&&vt.wbits!==Ft&&(vt.window=null),vt.wrap=mt,vt.wbits=Ft,ut(Ut))):-2}function ht(Ut,Ft){var mt,vt;return Ut?(vt=new at,Ut.state=vt,vt.window=null,(mt=dt(Ut,Ft))!==0&&(Ut.state=null),mt):-2}var ct,pt,ft=!0;function gt(Ut){if(ft){var Ft;for(ct=new tt.Buf32(512),pt=new tt.Buf32(32),Ft=0;Ft<144;)Ut.lens[Ft++]=8;for(;Ft<256;)Ut.lens[Ft++]=9;for(;Ft<280;)Ut.lens[Ft++]=7;for(;Ft<288;)Ut.lens[Ft++]=8;for(ot(1,Ut.lens,0,288,ct,0,Ut.work,{bits:9}),Ft=0;Ft<32;)Ut.lens[Ft++]=5;ot(2,Ut.lens,0,32,pt,0,Ut.work,{bits:5}),ft=!1}Ut.lencode=ct,Ut.lenbits=9,Ut.distcode=pt,Ut.distbits=5}function yt(Ut,Ft,mt,vt){var At,Lt=Ut.state;return Lt.window===null&&(Lt.wsize=1<=Lt.wsize?(tt.arraySet(Lt.window,Ft,mt-Lt.wsize,Lt.wsize,0),Lt.wnext=0,Lt.whave=Lt.wsize):((At=Lt.wsize-Lt.wnext)>vt&&(At=vt),tt.arraySet(Lt.window,Ft,mt-vt,At,Lt.wnext),(vt-=At)?(tt.arraySet(Lt.window,Ft,mt-vt,vt,0),Lt.wnext=vt,Lt.whave=Lt.wsize):(Lt.wnext+=At,Lt.wnext===Lt.wsize&&(Lt.wnext=0),Lt.whave>>8&255,mt.check=rt(mt.check,$t,2,0),Bt=0,xt=0,mt.mode=2;break}if(mt.flags=0,mt.head&&(mt.head.done=!1),!(1&mt.wrap)||(((255&Bt)<<8)+(Bt>>8))%31){Ut.msg="incorrect header check",mt.mode=30;break}if((15&Bt)!=8){Ut.msg="unknown compression method",mt.mode=30;break}if(xt-=4,nn=8+(15&(Bt>>>=4)),mt.wbits===0)mt.wbits=nn;else if(nn>mt.wbits){Ut.msg="invalid window size",mt.mode=30;break}mt.dmax=1<>8&1),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=3;case 3:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,$t[2]=Bt>>>16&255,$t[3]=Bt>>>24&255,mt.check=rt(mt.check,$t,4,0)),Bt=0,xt=0,mt.mode=4;case 4:for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>8),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=5;case 5:if(1024&mt.flags){for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0}else mt.head&&(mt.head.extra=null);mt.mode=6;case 6:if(1024&mt.flags&&((Nt=mt.length)>St&&(Nt=St),Nt&&(mt.head&&(nn=mt.head.extra_len-mt.length,mt.head.extra||(mt.head.extra=new Array(mt.head.extra_len)),tt.arraySet(mt.head.extra,vt,Lt,Nt,nn)),512&mt.flags&&(mt.check=rt(mt.check,vt,Nt,Lt)),St-=Nt,Lt+=Nt,mt.length-=Nt),mt.length))break e;mt.length=0,mt.mode=7;case 7:if(2048&mt.flags){if(St===0)break e;Nt=0;do nn=vt[Lt+Nt++],mt.head&&nn&&mt.length<65536&&(mt.head.name+=String.fromCharCode(nn));while(nn&&Nt>9&1,mt.head.done=!0),Ut.adler=mt.check=0,mt.mode=12;break;case 10:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=7&xt,xt-=7&xt,mt.mode=27;break}for(;xt<3;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=1)){case 0:mt.mode=14;break;case 1:if(gt(mt),mt.mode=20,Ft===6){Bt>>>=2,xt-=2;break e}break;case 2:mt.mode=17;break;case 3:Ut.msg="invalid block type",mt.mode=30}Bt>>>=2,xt-=2;break;case 14:for(Bt>>>=7&xt,xt-=7&xt;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>16^65535)){Ut.msg="invalid stored block lengths",mt.mode=30;break}if(mt.length=65535&Bt,Bt=0,xt=0,mt.mode=15,Ft===6)break e;case 15:mt.mode=16;case 16:if(Nt=mt.length){if(Nt>St&&(Nt=St),Nt>Tt&&(Nt=Tt),Nt===0)break e;tt.arraySet(At,vt,Lt,Nt,Rt),St-=Nt,Lt+=Nt,Tt-=Nt,Rt+=Nt,mt.length-=Nt;break}mt.mode=12;break;case 17:for(;xt<14;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=5,xt-=5,mt.ndist=1+(31&Bt),Bt>>>=5,xt-=5,mt.ncode=4+(15&Bt),Bt>>>=4,xt-=4,mt.nlen>286||mt.ndist>30){Ut.msg="too many length or distance symbols",mt.mode=30;break}mt.have=0,mt.mode=18;case 18:for(;mt.have>>=3,xt-=3}for(;mt.have<19;)mt.lens[Ht[mt.have++]]=0;if(mt.lencode=mt.lendyn,mt.lenbits=7,jt={bits:mt.lenbits},Zt=ot(0,mt.lens,0,19,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid code lengths set",mt.mode=30;break}mt.have=0,mt.mode=19;case 19:for(;mt.have>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=Dt,xt-=Dt,mt.lens[mt.have++]=Pt;else{if(Pt===16){for(Vt=Dt+2;xt>>=Dt,xt-=Dt,mt.have===0){Ut.msg="invalid bit length repeat",mt.mode=30;break}nn=mt.lens[mt.have-1],Nt=3+(3&Bt),Bt>>>=2,xt-=2}else if(Pt===17){for(Vt=Dt+3;xt>>=Dt)),Bt>>>=3,xt-=3}else{for(Vt=Dt+7;xt>>=Dt)),Bt>>>=7,xt-=7}if(mt.have+Nt>mt.nlen+mt.ndist){Ut.msg="invalid bit length repeat",mt.mode=30;break}for(;Nt--;)mt.lens[mt.have++]=nn}}if(mt.mode===30)break;if(mt.lens[256]===0){Ut.msg="invalid code -- missing end-of-block",mt.mode=30;break}if(mt.lenbits=9,jt={bits:mt.lenbits},Zt=ot(1,mt.lens,0,mt.nlen,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid literal/lengths set",mt.mode=30;break}if(mt.distbits=6,mt.distcode=mt.distdyn,jt={bits:mt.distbits},Zt=ot(2,mt.lens,mt.nlen,mt.ndist,mt.distcode,0,mt.work,jt),mt.distbits=jt.bits,Zt){Ut.msg="invalid distances set",mt.mode=30;break}if(mt.mode=20,Ft===6)break e;case 20:mt.mode=21;case 21:if(St>=6&&Tt>=258){Ut.next_out=Rt,Ut.avail_out=Tt,Ut.next_in=Lt,Ut.avail_in=St,mt.hold=Bt,mt.bits=xt,it(Ut,kt),Rt=Ut.next_out,At=Ut.output,Tt=Ut.avail_out,Lt=Ut.next_in,vt=Ut.input,St=Ut.avail_in,Bt=mt.hold,xt=mt.bits,mt.mode===12&&(mt.back=-1);break}for(mt.back=0;Et=(It=mt.lencode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,mt.length=Pt,Et===0){mt.mode=26;break}if(32&Et){mt.back=-1,mt.mode=12;break}if(64&Et){Ut.msg="invalid literal/length code",mt.mode=30;break}mt.extra=15&Et,mt.mode=22;case 22:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}mt.was=mt.length,mt.mode=23;case 23:for(;Et=(It=mt.distcode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,64&Et){Ut.msg="invalid distance code",mt.mode=30;break}mt.offset=Pt,mt.extra=15&Et,mt.mode=24;case 24:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}if(mt.offset>mt.dmax){Ut.msg="invalid distance too far back",mt.mode=30;break}mt.mode=25;case 25:if(Tt===0)break e;if(Nt=kt-Tt,mt.offset>Nt){if((Nt=mt.offset-Nt)>mt.whave&&mt.sane){Ut.msg="invalid distance too far back",mt.mode=30;break}Nt>mt.wnext?(Nt-=mt.wnext,Ot=mt.wsize-Nt):Ot=mt.wnext-Nt,Nt>mt.length&&(Nt=mt.length),Wt=mt.window}else Wt=At,Ot=Rt-mt.offset,Nt=mt.length;Nt>Tt&&(Nt=Tt),Tt-=Nt,mt.length-=Nt;do At[Rt++]=Wt[Ot++];while(--Nt);mt.length===0&&(mt.mode=21);break;case 26:if(Tt===0)break e;At[Rt++]=mt.length,Tt--,mt.mode=21;break;case 27:if(mt.wrap){for(;xt<32;){if(St===0)break e;St--,Bt|=vt[Lt++]<>>=At=vt>>>24,gt-=At,(At=vt>>>16&255)===0)xt[st++]=65535&vt;else{if(!(16&At)){if(!(64&At)){vt=yt[(65535&vt)+(ft&(1<>>=At,gt-=At),gt<15&&(ft+=Bt[it++]<>>=At=vt>>>24,gt-=At,!(16&(At=vt>>>16&255))){if(!(64&At)){vt=Ut[(65535&vt)+(ft&(1<ut){tt.msg="invalid distance too far back",rt.mode=30;break e}if(ft>>>=At,gt-=At,Rt>(At=st-at)){if((At=Rt-At)>ht&&rt.sane){tt.msg="invalid distance too far back",rt.mode=30;break e}if(St=0,Tt=pt,ct===0){if(St+=dt-At,At2;)xt[st++]=Tt[St++],xt[st++]=Tt[St++],xt[st++]=Tt[St++],Lt-=3;Lt&&(xt[st++]=Tt[St++],Lt>1&&(xt[st++]=Tt[St++]))}else{St=st-Rt;do xt[st++]=xt[St++],xt[st++]=xt[St++],xt[st++]=xt[St++],Lt-=3;while(Lt>2);Lt&&(xt[st++]=xt[St++],Lt>1&&(xt[st++]=xt[St++]))}break}}break}}while(it>3,ft&=(1<<(gt-=Lt<<3))-1,tt.next_in=it,tt.next_out=st,tt.avail_in=it=1&&zt[xt]===0;xt--);if(Ct>xt&&(Ct=xt),xt===0)return dt[ht++]=20971520,dt[ht++]=20971520,pt.bits=1,0;for(Bt=1;Bt0&&(st===0||xt!==1))return-1;for(en[1]=0,St=1;St<15;St++)en[St+1]=en[St]+zt[St];for(Tt=0;Tt852||st===2&&Wt>592)return 1;for(;;){vt=St-Nt,ct[Tt]mt?(At=Kt[nn+ct[Tt]],Lt=Et[Pt+ct[Tt]]):(At=96,Lt=0),ft=1<>Nt)+(gt-=ft)]=vt<<24|At<<16|Lt|0;while(gt!==0);for(ft=1<>=1;if(ft!==0?(Dt&=ft-1,Dt+=ft):Dt=0,Tt++,--zt[St]==0){if(St===xt)break;St=at[lt+ct[Tt]]}if(St>Ct&&(Dt&Ut)!==yt){for(Nt===0&&(Nt=Ct),Ft+=Bt,Ot=1<<(kt=St-Nt);kt+Nt852||st===2&&Wt>592)return 1;dt[yt=Dt&Ut]=Ct<<24|kt<<16|Ft-ht|0}}return Dt!==0&&(dt[Ft+Dt]=St-Nt<<24|64<<16|0),pt.bits=Ct,0}},function(s,o,et){s.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(s,o){},function(s,o,et){function tt(ut,dt){var ht=Object.keys(ut);if(Object.getOwnPropertySymbols){var ct=Object.getOwnPropertySymbols(ut);dt&&(ct=ct.filter(function(pt){return Object.getOwnPropertyDescriptor(ut,pt).enumerable})),ht.push.apply(ht,ct)}return ht}function nt(ut){for(var dt=1;dt0?this.tail.next=pt:this.head=pt,this.tail=pt,++this.length}},{key:"unshift",value:function(ct){var pt={data:ct,next:this.head};this.length===0&&(this.tail=pt),this.head=pt,++this.length}},{key:"shift",value:function(){if(this.length!==0){var ct=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,ct}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(ct){if(this.length===0)return"";for(var pt=this.head,ft=""+pt.data;pt=pt.next;)ft+=ct+pt.data;return ft}},{key:"concat",value:function(ct){if(this.length===0)return st.alloc(0);for(var pt,ft,gt,yt=st.allocUnsafe(ct>>>0),Ut=this.head,Ft=0;Ut;)pt=Ut.data,ft=yt,gt=Ft,st.prototype.copy.call(pt,ft,gt),Ft+=Ut.data.length,Ut=Ut.next;return yt}},{key:"consume",value:function(ct,pt){var ft;return ctyt.length?yt.length:ct;if(Ut===yt.length?gt+=yt:gt+=yt.slice(0,ct),(ct-=Ut)==0){Ut===yt.length?(++ft,pt.next?this.head=pt.next:this.head=this.tail=null):(this.head=pt,pt.data=yt.slice(Ut));break}++ft}return this.length-=ft,gt}},{key:"_getBuffer",value:function(ct){var pt=st.allocUnsafe(ct),ft=this.head,gt=1;for(ft.data.copy(pt),ct-=ft.data.length;ft=ft.next;){var yt=ft.data,Ut=ct>yt.length?yt.length:ct;if(yt.copy(pt,pt.length-ct,0,Ut),(ct-=Ut)==0){Ut===yt.length?(++gt,ft.next?this.head=ft.next:this.head=this.tail=null):(this.head=ft,ft.data=yt.slice(Ut));break}++gt}return this.length-=gt,pt}},{key:lt,value:function(ct,pt){return at(this,nt(nt({},pt),{},{depth:0,customInspect:!1}))}}])&&it(dt.prototype,ht),Object.defineProperty(dt,"prototype",{writable:!1}),ut}()},function(s,o){},function(s,o,et){(function(tt){var nt;function rt(Ut,Ft,mt){return(Ft=function(vt){var At=function(Lt,Rt){if(typeof Lt!="object"||Lt===null)return Lt;var St=Lt[Symbol.toPrimitive];if(St!==void 0){var Tt=St.call(Lt,Rt||"default");if(typeof Tt!="object")return Tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Rt==="string"?String:Number)(Lt)}(vt,"string");return typeof At=="symbol"?At:String(At)}(Ft))in Ut?Object.defineProperty(Ut,Ft,{value:mt,enumerable:!0,configurable:!0,writable:!0}):Ut[Ft]=mt,Ut}var it=et(48),ot=Symbol("lastResolve"),st=Symbol("lastReject"),at=Symbol("error"),lt=Symbol("ended"),ut=Symbol("lastPromise"),dt=Symbol("handlePromise"),ht=Symbol("stream");function ct(Ut,Ft){return{value:Ut,done:Ft}}function pt(Ut){var Ft=Ut[ot];if(Ft!==null){var mt=Ut[ht].read();mt!==null&&(Ut[ut]=null,Ut[ot]=null,Ut[st]=null,Ft(ct(mt,!1)))}}function ft(Ut){tt.nextTick(pt,Ut)}var gt=Object.getPrototypeOf(function(){}),yt=Object.setPrototypeOf((rt(nt={get stream(){return this[ht]},next:function(){var Ut=this,Ft=this[at];if(Ft!==null)return Promise.reject(Ft);if(this[lt])return Promise.resolve(ct(void 0,!0));if(this[ht].destroyed)return new Promise(function(Lt,Rt){tt.nextTick(function(){Ut[at]?Rt(Ut[at]):Lt(ct(void 0,!0))})});var mt,vt=this[ut];if(vt)mt=new Promise(function(Lt,Rt){return function(St,Tt){Lt.then(function(){Rt[lt]?St(ct(void 0,!0)):Rt[dt](St,Tt)},Tt)}}(vt,this));else{var At=this[ht].read();if(At!==null)return Promise.resolve(ct(At,!1));mt=new Promise(this[dt])}return this[ut]=mt,mt}},Symbol.asyncIterator,function(){return this}),rt(nt,"return",function(){var Ut=this;return new Promise(function(Ft,mt){Ut[ht].destroy(null,function(vt){vt?mt(vt):Ft(ct(void 0,!0))})})}),nt),gt);s.exports=function(Ut){var Ft,mt=Object.create(yt,(rt(Ft={},ht,{value:Ut,writable:!0}),rt(Ft,ot,{value:null,writable:!0}),rt(Ft,st,{value:null,writable:!0}),rt(Ft,at,{value:null,writable:!0}),rt(Ft,lt,{value:Ut._readableState.endEmitted,writable:!0}),rt(Ft,dt,{value:function(vt,At){var Lt=mt[ht].read();Lt?(mt[ut]=null,mt[ot]=null,mt[st]=null,vt(ct(Lt,!1))):(mt[ot]=vt,mt[st]=At)},writable:!0}),Ft));return mt[ut]=null,it(Ut,function(vt){if(vt&&vt.code!=="ERR_STREAM_PREMATURE_CLOSE"){var At=mt[st];return At!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,At(vt)),void(mt[at]=vt)}var Lt=mt[ot];Lt!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,Lt(ct(void 0,!0))),mt[lt]=!0}),Ut.on("readable",ft.bind(null,mt)),mt}}).call(this,et(2))},function(s,o){s.exports=function(){throw new Error("Readable.from is not available in the browser")}},function(s,o,et){s.exports=nt;var tt=et(81);function nt(rt){if(!(this instanceof nt))return new nt(rt);tt.call(this,rt)}et(7)(nt,tt),nt.prototype._transform=function(rt,it,ot){ot(null,rt)}},function(s,o,et){var tt,nt=et(24).codes,rt=nt.ERR_MISSING_ARGS,it=nt.ERR_STREAM_DESTROYED;function ot(dt){if(dt)throw dt}function st(dt,ht,ct,pt){pt=function(yt){var Ut=!1;return function(){Ut||(Ut=!0,yt.apply(void 0,arguments))}}(pt);var ft=!1;dt.on("close",function(){ft=!0}),tt===void 0&&(tt=et(48)),tt(dt,{readable:ht,writable:ct},function(yt){if(yt)return pt(yt);ft=!0,pt()});var gt=!1;return function(yt){if(!ft&&!gt)return gt=!0,function(Ut){return Ut.setHeader&&typeof Ut.abort=="function"}(dt)?dt.abort():typeof dt.destroy=="function"?dt.destroy():void pt(yt||new it("pipe"))}}function at(dt){dt()}function lt(dt,ht){return dt.pipe(ht)}function ut(dt){return dt.length?typeof dt[dt.length-1]!="function"?ot:dt.pop():ot}s.exports=function(){for(var dt=arguments.length,ht=new Array(dt),ct=0;ct0,function(mt){pt||(pt=mt),mt&>.forEach(at),Ft||(gt.forEach(at),ft(pt))})});return ht.reduce(lt)}},function(s,o,et){var tt=et(192)(function nt(rt,it){return(it=it||{}).namespace=rt,it.prod=!0,it.dev=!1,it.force||nt.force?nt.yep(it):nt.nope(it)});s.exports=tt},function(s,o){var et=[],tt=[],nt=function(){};function rt(ct){return!~et.indexOf(ct)&&(et.push(ct),!0)}function it(ct){nt=ct}function ot(ct){for(var pt=[],ft=0;ftst.start)&&(at?at(null,ht):dt.emit("line",ht)),pt++,ht=""),setTimeout(yt,1e3);var mt=ut.write(lt.slice(0,Ft));at||dt.emit("data",mt);for(var vt=(mt=(ht+mt).split(/\n+/)).length-1,At=0;Atst.start)&&(at?at(null,mt[At]):dt.emit("line",mt[At])),pt++;return ht=mt[vt],ct+=Ft,yt()});nt.close(gt,ot)})()}),at?dt.destroy:dt}}).call(this,et(5).Buffer)},function(s,o,et){(function(tt,nt){function rt(Ft){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(mt){return typeof mt}:function(mt){return mt&&typeof Symbol=="function"&&mt.constructor===Symbol&&mt!==Symbol.prototype?"symbol":typeof mt})(Ft)}function it(Ft,mt){var vt=Object.keys(Ft);if(Object.getOwnPropertySymbols){var At=Object.getOwnPropertySymbols(Ft);mt&&(At=At.filter(function(Lt){return Object.getOwnPropertyDescriptor(Ft,Lt).enumerable})),vt.push.apply(vt,At)}return vt}function ot(Ft){for(var mt=1;mt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var vt,At=ct(Ft);if(mt){var Lt=ct(this).constructor;vt=Reflect.construct(At,arguments,Lt)}else vt=At.apply(this,arguments);return ht(this,vt)}}function ht(Ft,mt){if(mt&&(rt(mt)==="object"||typeof mt=="function"))return mt;if(mt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(vt){if(vt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return vt}(Ft)}function ct(Ft){return(ct=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(mt){return mt.__proto__||Object.getPrototypeOf(mt)})(Ft)}var pt=et(82),ft=et(205),gt=et(33).Stream,yt=et(14),Ut=et(29);s.exports=function(Ft){(function(Rt,St){if(typeof St!="function"&&St!==null)throw new TypeError("Super expression must either be null or a function");Rt.prototype=Object.create(St&&St.prototype,{constructor:{value:Rt,writable:!0,configurable:!0}}),Object.defineProperty(Rt,"prototype",{writable:!1}),St&&ut(Rt,St)})(Lt,Ft);var mt,vt,At=dt(Lt);function Lt(){var Rt,St=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return at(this,Lt),(Rt=At.call(this,St)).options=St,Rt.name=St.name||"http",Rt.ssl=!!St.ssl,Rt.host=St.host||"localhost",Rt.port=St.port,Rt.auth=St.auth,Rt.path=St.path||"",Rt.agent=St.agent,Rt.headers=St.headers||{},Rt.headers["content-type"]="application/json",Rt.batch=St.batch||!1,Rt.batchInterval=St.batchInterval||5e3,Rt.batchCount=St.batchCount||10,Rt.batchOptions=[],Rt.batchTimeoutID=-1,Rt.batchCallback={},Rt.port||(Rt.port=Rt.ssl?443:80),Rt}return mt=Lt,(vt=[{key:"log",value:function(Rt,St){var Tt=this;this._request(Rt,function(Bt,xt){xt&&xt.statusCode!==200&&(Bt=new Error("Invalid HTTP Status Code: ".concat(xt.statusCode))),Bt?Tt.emit("warn",Bt):Tt.emit("logged",Rt)}),St&&tt(St)}},{key:"query",value:function(Rt,St){typeof Rt=="function"&&(St=Rt,Rt={}),(Rt={method:"query",params:this.normalizeQuery(Rt)}).params.path&&(Rt.path=Rt.params.path,delete Rt.params.path),Rt.params.auth&&(Rt.auth=Rt.params.auth,delete Rt.params.auth),this._request(Rt,function(Tt,Bt,xt){if(Bt&&Bt.statusCode!==200&&(Tt=new Error("Invalid HTTP Status Code: ".concat(Bt.statusCode))),Tt)return St(Tt);if(typeof xt=="string")try{xt=JSON.parse(xt)}catch(Ct){return St(Ct)}St(null,xt)})}},{key:"stream",value:function(){var Rt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},St=new gt;(Rt={method:"stream",params:Rt}).params.path&&(Rt.path=Rt.params.path,delete Rt.params.path),Rt.params.auth&&(Rt.auth=Rt.params.auth,delete Rt.params.auth);var Tt="",Bt=this._request(Rt);return St.destroy=function(){return Bt.destroy()},Bt.on("data",function(xt){for(var Ct=(xt=(Tt+xt).split(/\n+/)).length-1,kt=0;kt0&&(clearTimeout(this.batchTimeoutID),this.batchTimeoutID=-1);var Bt=this.batchOptions.slice();this.batchOptions=[],this._doRequest(Bt,Rt,St,Tt)}},{key:"_doRequest",value:function(Rt,St,Tt,Bt){var xt=Object.assign({},this.headers);Tt&&Tt.bearer&&(xt.Authorization="Bearer ".concat(Tt.bearer));var Ct=(this.ssl?ft:pt).request(ot(ot({},this.options),{},{method:"POST",host:this.host,port:this.port,path:"/".concat(Bt.replace(/^\//,"")),headers:xt,auth:Tt&&Tt.username&&Tt.password?"".concat(Tt.username,":").concat(Tt.password):"",agent:this.agent}));Ct.on("error",St),Ct.on("response",function(kt){return kt.on("end",function(){return St(null,kt)}).resume()}),Ct.end(nt.from(Ut(Rt,this.options.replacer),"utf8"))}}])&<(mt.prototype,vt),Object.defineProperty(mt,"prototype",{writable:!1}),Lt}(yt)}).call(this,et(19).setImmediate,et(5).Buffer)},function(s,o,et){(function(tt,nt,rt){var it=et(83),ot=et(7),st=et(84),at=et(31),lt=et(196),ut=st.IncomingMessage,dt=st.readyStates,ht=s.exports=function(pt){var ft,gt=this;at.Writable.call(gt),gt._opts=pt,gt._body=[],gt._headers={},pt.auth&>.setHeader("Authorization","Basic "+new tt(pt.auth).toString("base64")),Object.keys(pt.headers).forEach(function(Ut){gt.setHeader(Ut,pt.headers[Ut])});var yt=!0;if(pt.mode==="disable-fetch"||"requestTimeout"in pt&&!it.abortController)yt=!1,ft=!0;else if(pt.mode==="prefer-streaming")ft=!1;else if(pt.mode==="allow-wrong-content-type")ft=!it.overrideMimeType;else{if(pt.mode&&pt.mode!=="default"&&pt.mode!=="prefer-fast")throw new Error("Invalid value for opts.mode");ft=!0}gt._mode=function(Ut,Ft){return it.fetch&&Ft?"fetch":it.mozchunkedarraybuffer?"moz-chunked-arraybuffer":it.msstream?"ms-stream":it.arraybuffer&&Ut?"arraybuffer":it.vbArray&&Ut?"text:vbarray":"text"}(ft,yt),gt._fetchTimer=null,gt.on("finish",function(){gt._onFinish()})};ot(ht,at.Writable),ht.prototype.setHeader=function(pt,ft){var gt=pt.toLowerCase();ct.indexOf(gt)===-1&&(this._headers[gt]={name:pt,value:ft})},ht.prototype.getHeader=function(pt){var ft=this._headers[pt.toLowerCase()];return ft?ft.value:null},ht.prototype.removeHeader=function(pt){delete this._headers[pt.toLowerCase()]},ht.prototype._onFinish=function(){var pt=this;if(!pt._destroyed){var ft=pt._opts,gt=pt._headers,yt=null;ft.method!=="GET"&&ft.method!=="HEAD"&&(yt=it.arraybuffer?lt(tt.concat(pt._body)):it.blobConstructor?new nt.Blob(pt._body.map(function(At){return lt(At)}),{type:(gt["content-type"]||{}).value||""}):tt.concat(pt._body).toString());var Ut=[];if(Object.keys(gt).forEach(function(At){var Lt=gt[At].name,Rt=gt[At].value;Array.isArray(Rt)?Rt.forEach(function(St){Ut.push([Lt,St])}):Ut.push([Lt,Rt])}),pt._mode==="fetch"){var Ft=null;if(it.abortController){var mt=new AbortController;Ft=mt.signal,pt._fetchAbortController=mt,"requestTimeout"in ft&&ft.requestTimeout!==0&&(pt._fetchTimer=nt.setTimeout(function(){pt.emit("requestTimeout"),pt._fetchAbortController&&pt._fetchAbortController.abort()},ft.requestTimeout))}nt.fetch(pt._opts.url,{method:pt._opts.method,headers:Ut,body:yt||void 0,mode:"cors",credentials:ft.withCredentials?"include":"same-origin",signal:Ft}).then(function(At){pt._fetchResponse=At,pt._connect()},function(At){nt.clearTimeout(pt._fetchTimer),pt._destroyed||pt.emit("error",At)})}else{var vt=pt._xhr=new nt.XMLHttpRequest;try{vt.open(pt._opts.method,pt._opts.url,!0)}catch(At){return void rt.nextTick(function(){pt.emit("error",At)})}"responseType"in vt&&(vt.responseType=pt._mode.split(":")[0]),"withCredentials"in vt&&(vt.withCredentials=!!ft.withCredentials),pt._mode==="text"&&"overrideMimeType"in vt&&vt.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in ft&&(vt.timeout=ft.requestTimeout,vt.ontimeout=function(){pt.emit("requestTimeout")}),Ut.forEach(function(At){vt.setRequestHeader(At[0],At[1])}),pt._response=null,vt.onreadystatechange=function(){switch(vt.readyState){case dt.LOADING:case dt.DONE:pt._onXHRProgress()}},pt._mode==="moz-chunked-arraybuffer"&&(vt.onprogress=function(){pt._onXHRProgress()}),vt.onerror=function(){pt._destroyed||pt.emit("error",new Error("XHR error"))};try{vt.send(yt)}catch(At){return void rt.nextTick(function(){pt.emit("error",At)})}}}},ht.prototype._onXHRProgress=function(){(function(pt){try{var ft=pt.status;return ft!==null&&ft!==0}catch{return!1}})(this._xhr)&&!this._destroyed&&(this._response||this._connect(),this._response._onXHRProgress())},ht.prototype._connect=function(){var pt=this;pt._destroyed||(pt._response=new ut(pt._xhr,pt._fetchResponse,pt._mode,pt._fetchTimer),pt._response.on("error",function(ft){pt.emit("error",ft)}),pt.emit("response",pt._response))},ht.prototype._write=function(pt,ft,gt){this._body.push(pt),gt()},ht.prototype.abort=ht.prototype.destroy=function(){this._destroyed=!0,nt.clearTimeout(this._fetchTimer),this._response&&(this._response._destroyed=!0),this._xhr?this._xhr.abort():this._fetchAbortController&&this._fetchAbortController.abort()},ht.prototype.end=function(pt,ft,gt){typeof pt=="function"&&(gt=pt,pt=void 0),at.Writable.prototype.end.call(this,pt,ft,gt)},ht.prototype.flushHeaders=function(){},ht.prototype.setTimeout=function(){},ht.prototype.setNoDelay=function(){},ht.prototype.setSocketKeepAlive=function(){};var ct=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]}).call(this,et(5).Buffer,et(6),et(2))},function(s,o,et){var tt=et(5).Buffer;s.exports=function(nt){if(nt instanceof Uint8Array){if(nt.byteOffset===0&&nt.byteLength===nt.buffer.byteLength)return nt.buffer;if(typeof nt.buffer.slice=="function")return nt.buffer.slice(nt.byteOffset,nt.byteOffset+nt.byteLength)}if(tt.isBuffer(nt)){for(var rt=new Uint8Array(nt.length),it=nt.length,ot=0;ot= 0x80 (not a basic code point)","invalid-input":"Invalid input"},ct=Math.floor,pt=String.fromCharCode;function ft(Rt){throw new RangeError(ht[Rt])}function gt(Rt,St){for(var Tt=Rt.length,Bt=[];Tt--;)Bt[Tt]=St(Rt[Tt]);return Bt}function yt(Rt,St){var Tt=Rt.split("@"),Bt="";return Tt.length>1&&(Bt=Tt[0]+"@",Rt=Tt[1]),Bt+gt((Rt=Rt.replace(dt,".")).split("."),St).join(".")}function Ut(Rt){for(var St,Tt,Bt=[],xt=0,Ct=Rt.length;xt=55296&&St<=56319&&xt65535&&(Tt+=pt((St-=65536)>>>10&1023|55296),St=56320|1023&St),Tt+=pt(St)}).join("")}function mt(Rt,St){return Rt+22+75*(Rt<26)-((St!=0)<<5)}function vt(Rt,St,Tt){var Bt=0;for(Rt=Tt?ct(Rt/700):Rt>>1,Rt+=ct(Rt/St);Rt>455;Bt+=36)Rt=ct(Rt/35);return ct(Bt+36*Rt/(Rt+38))}function At(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt,Et,Pt=[],zt=Rt.length,en=0,Kt=128,nn=72;for((Tt=Rt.lastIndexOf("-"))<0&&(Tt=0),Bt=0;Bt=128&&ft("not-basic"),Pt.push(Rt.charCodeAt(Bt));for(xt=Tt>0?Tt+1:0;xt=zt&&ft("invalid-input"),((Ot=(Et=Rt.charCodeAt(xt++))-48<10?Et-22:Et-65<26?Et-65:Et-97<26?Et-97:36)>=36||Ot>ct((at-en)/kt))&&ft("overflow"),en+=Ot*kt,!(Ot<(Wt=Nt<=nn?1:Nt>=nn+26?26:Nt-nn));Nt+=36)kt>ct(at/(Dt=36-Wt))&&ft("overflow"),kt*=Dt;nn=vt(en-Ct,St=Pt.length+1,Ct==0),ct(en/St)>at-Kt&&ft("overflow"),Kt+=ct(en/St),en%=St,Pt.splice(en++,0,Kt)}return Ft(Pt)}function Lt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Wt,Dt,Et,Pt,zt,en,Kt,nn=[];for(Pt=(Rt=Ut(Rt)).length,St=128,Tt=0,Ct=72,kt=0;kt=St&&Etct((at-Tt)/(zt=Bt+1))&&ft("overflow"),Tt+=(Nt-St)*zt,St=Nt,kt=0;ktat&&ft("overflow"),Et==St){for(Ot=Tt,Wt=36;!(Ot<(Dt=Wt<=Ct?1:Wt>=Ct+26?26:Wt-Ct));Wt+=36)Kt=Ot-Dt,en=36-Dt,nn.push(pt(mt(Dt+Kt%en,0))),Ot=ct(Kt/en);nn.push(pt(mt(Ot,0))),Ct=vt(Tt,zt,Bt==xt),Tt=0,++Bt}++Tt,++St}return nn.join("")}st={version:"1.4.1",ucs2:{decode:Ut,encode:Ft},decode:At,encode:Lt,toASCII:function(Rt){return yt(Rt,function(St){return ut.test(St)?"xn--"+Lt(St):St})},toUnicode:function(Rt){return yt(Rt,function(St){return lt.test(St)?At(St.slice(4).toLowerCase()):St})}},(rt=function(){return st}.call(o,et,o,tt))===void 0||(tt.exports=rt)})()}).call(this,et(200)(s),et(6))},function(s,o){s.exports=function(et){return et.webpackPolyfill||(et.deprecate=function(){},et.paths=[],et.children||(et.children=[]),Object.defineProperty(et,"loaded",{enumerable:!0,get:function(){return et.l}}),Object.defineProperty(et,"id",{enumerable:!0,get:function(){return et.i}}),et.webpackPolyfill=1),et}},function(s,o,et){s.exports={isString:function(tt){return typeof tt=="string"},isObject:function(tt){return typeof tt=="object"&&tt!==null},isNull:function(tt){return tt===null},isNullOrUndefined:function(tt){return tt==null}}},function(s,o,et){o.decode=o.parse=et(203),o.encode=o.stringify=et(204)},function(s,o,et){function tt(rt,it){return Object.prototype.hasOwnProperty.call(rt,it)}s.exports=function(rt,it,ot,st){it=it||"&",ot=ot||"=";var at={};if(typeof rt!="string"||rt.length===0)return at;var lt=/\+/g;rt=rt.split(it);var ut=1e3;st&&typeof st.maxKeys=="number"&&(ut=st.maxKeys);var dt=rt.length;ut>0&&dt>ut&&(dt=ut);for(var ht=0;ht=0?(ct=yt.substr(0,Ut),pt=yt.substr(Ut+1)):(ct=yt,pt=""),ft=decodeURIComponent(ct),gt=decodeURIComponent(pt),tt(at,ft)?nt(at[ft])?at[ft].push(gt):at[ft]=[at[ft],gt]:at[ft]=gt}return at};var nt=Array.isArray||function(rt){return Object.prototype.toString.call(rt)==="[object Array]"}},function(s,o,et){var tt=function(ot){switch(typeof ot){case"string":return ot;case"boolean":return ot?"true":"false";case"number":return isFinite(ot)?ot:"";default:return""}};s.exports=function(ot,st,at,lt){return st=st||"&",at=at||"=",ot===null&&(ot=void 0),typeof ot=="object"?rt(it(ot),function(ut){var dt=encodeURIComponent(tt(ut))+at;return nt(ot[ut])?rt(ot[ut],function(ht){return dt+encodeURIComponent(tt(ht))}).join(st):dt+encodeURIComponent(tt(ot[ut]))}).join(st):lt?encodeURIComponent(tt(lt))+at+encodeURIComponent(tt(ot)):""};var nt=Array.isArray||function(ot){return Object.prototype.toString.call(ot)==="[object Array]"};function rt(ot,st){if(ot.map)return ot.map(st);for(var at=[],lt=0;lt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var gt,yt=lt(pt);if(ft){var Ut=lt(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return at(this,gt)}}function at(pt,ft){if(ft&&(nt(ft)==="object"||typeof ft=="function"))return ft;if(ft!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(gt){if(gt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return gt}(pt)}function lt(pt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(ft){return ft.__proto__||Object.getPrototypeOf(ft)})(pt)}var ut=et(86),dt=et(4).MESSAGE,ht=et(16),ct=et(14);s.exports=function(pt){(function(Ft,mt){if(typeof mt!="function"&&mt!==null)throw new TypeError("Super expression must either be null or a function");Ft.prototype=Object.create(mt&&mt.prototype,{constructor:{value:Ft,writable:!0,configurable:!0}}),Object.defineProperty(Ft,"prototype",{writable:!1}),mt&&ot(Ft,mt)})(Ut,pt);var ft,gt,yt=st(Ut);function Ut(){var Ft,mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(rt(this,Ut),Ft=yt.call(this,mt),!mt.stream||!ut(mt.stream))throw new Error("options.stream is required.");return Ft._stream=mt.stream,Ft._stream.setMaxListeners(1/0),Ft.isObjectMode=mt.stream._writableState.objectMode,Ft.eol=typeof mt.eol=="string"?mt.eol:ht.EOL,Ft}return ft=Ut,(gt=[{key:"log",value:function(Ft,mt){var vt=this;if(tt(function(){return vt.emit("logged",Ft)}),this.isObjectMode)return this._stream.write(Ft),void(mt&&mt());this._stream.write("".concat(Ft[dt]).concat(this.eol)),mt&&mt()}}])&&it(ft.prototype,gt),Object.defineProperty(ft,"prototype",{writable:!1}),Ut}(ct)}).call(this,et(19).setImmediate)},function(s,o,et){(function(tt){function nt(Bt,xt,Ct){return xt in Bt?Object.defineProperty(Bt,xt,{value:Ct,enumerable:!0,configurable:!0,writable:!0}):Bt[xt]=Ct,Bt}function rt(Bt){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(xt){return typeof xt}:function(xt){return xt&&typeof Symbol=="function"&&xt.constructor===Symbol&&xt!==Symbol.prototype?"symbol":typeof xt})(Bt)}function it(Bt,xt){for(var Ct=0;Ct"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var Ct,kt=lt(Bt);if(xt){var Nt=lt(this).constructor;Ct=Reflect.construct(kt,arguments,Nt)}else Ct=kt.apply(this,arguments);return at(this,Ct)}}function at(Bt,xt){if(xt&&(rt(xt)==="object"||typeof xt=="function"))return xt;if(xt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(Ct){if(Ct===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ct}(Bt)}function lt(Bt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(xt){return xt.__proto__||Object.getPrototypeOf(xt)})(Bt)}var ut=et(33),dt=ut.Stream,ht=ut.Transform,ct=et(50),pt=et(4),ft=pt.LEVEL,gt=pt.SPLAT,yt=et(86),Ut=et(88),Ft=et(92),mt=et(211),vt=et(212),At=et(60).warn,Lt=et(49),Rt=/%[scdjifoO%]/g,St=function(Bt){(function(Ot,Wt){if(typeof Wt!="function"&&Wt!==null)throw new TypeError("Super expression must either be null or a function");Ot.prototype=Object.create(Wt&&Wt.prototype,{constructor:{value:Ot,writable:!0,configurable:!0}}),Object.defineProperty(Ot,"prototype",{writable:!1}),Wt&&ot(Ot,Wt)})(Nt,Bt);var xt,Ct,kt=st(Nt);function Nt(Ot){var Wt;return function(Dt,Et){if(!(Dt instanceof Et))throw new TypeError("Cannot call a class as a function")}(this,Nt),(Wt=kt.call(this,{objectMode:!0})).configure(Ot),Wt}return xt=Nt,(Ct=[{key:"child",value:function(Ot){var Wt=this;return Object.create(Wt,{write:{value:function(Dt){var Et=Object.assign({},Ot,Dt);Dt instanceof Error&&(Et.stack=Dt.stack,Et.message=Dt.message),Wt.write(Et)}}})}},{key:"configure",value:function(){var Ot=this,Wt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Dt=Wt.silent,Et=Wt.format,Pt=Wt.defaultMeta,zt=Wt.levels,en=Wt.level,Kt=en===void 0?"info":en,nn=Wt.exitOnError,Zt=nn===void 0||nn,jt=Wt.transports,Vt=Wt.colors,It=Wt.emitErrs,$t=Wt.formatters,Ht=Wt.padLevels,qt=Wt.rewriters,on=Wt.stripColors,Xt=Wt.exceptionHandlers,dn=Wt.rejectionHandlers;if(this.transports.length&&this.clear(),this.silent=Dt,this.format=Et||this.format||et(213)(),this.defaultMeta=Pt||null,this.levels=zt||this.levels||Lt.npm.levels,this.level=Kt,this.exceptions&&this.exceptions.unhandle(),this.rejections&&this.rejections.unhandle(),this.exceptions=new Ut(this),this.rejections=new Ft(this),this.profilers={},this.exitOnError=Zt,jt&&(jt=Array.isArray(jt)?jt:[jt]).forEach(function(_n){return Ot.add(_n)}),Vt||It||$t||Ht||qt||on)throw new Error(["{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.","Use a custom winston.format(function) instead.","See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md"].join(` -`));Xt&&this.exceptions.handle(Xt),dn&&this.rejections.handle(dn)}},{key:"isLevelEnabled",value:function(Ot){var Wt=this,Dt=Tt(this.levels,Ot);if(Dt===null)return!1;var Et=Tt(this.levels,this.level);return Et!==null&&(this.transports&&this.transports.length!==0?this.transports.findIndex(function(Pt){var zt=Tt(Wt.levels,Pt.level);return zt===null&&(zt=Et),zt>=Dt})!==-1:Et>=Dt)}},{key:"log",value:function(Ot,Wt){for(var Dt,Et,Pt=arguments.length,zt=new Array(Pt>2?Pt-2:0),en=2;en2?new mt({transport:Ot}):Ot;if(!Wt._writableState||!Wt._writableState.objectMode)throw new Error("Transports must WritableStreams in objectMode. Set { objectMode: true }.");return this._onEvent("error",Wt),this._onEvent("warn",Wt),this.pipe(Wt),Ot.handleExceptions&&this.exceptions.handle(),Ot.handleRejections&&this.rejections.handle(),this}},{key:"remove",value:function(Ot){if(!Ot)return this;var Wt=Ot;return(!yt(Ot)||Ot.log.length>2)&&(Wt=this.transports.filter(function(Dt){return Dt.transport===Ot})[0]),Wt&&this.unpipe(Wt),this}},{key:"clear",value:function(){return this.unpipe(),this}},{key:"close",value:function(){return this.exceptions.unhandle(),this.rejections.unhandle(),this.clear(),this.emit("close"),this}},{key:"setLevels",value:function(){At.deprecated("setLevels")}},{key:"query",value:function(Ot,Wt){typeof Ot=="function"&&(Wt=Ot,Ot={}),Ot=Ot||{};var Dt={},Et=Object.assign({},Ot.query||{});ct(this.transports.filter(function(Pt){return!!Pt.query}),function(Pt,zt){(function(en,Kt){Ot.query&&typeof en.formatQuery=="function"&&(Ot.query=en.formatQuery(Et)),en.query(Ot,function(nn,Zt){if(nn)return Kt(nn);typeof en.formatResults=="function"&&(Zt=en.formatResults(Zt,Ot.format)),Kt(null,Zt)})})(Pt,function(en,Kt){zt&&((Kt=en||Kt)&&(Dt[Pt.name]=Kt),zt()),zt=null})},function(){return Wt(null,Dt)})}},{key:"stream",value:function(){var Ot=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Wt=new dt,Dt=[];return Wt._streams=Dt,Wt.destroy=function(){for(var Et=Dt.length;Et--;)Dt[Et].destroy()},this.transports.filter(function(Et){return!!Et.stream}).forEach(function(Et){var Pt=Et.stream(Ot);Pt&&(Dt.push(Pt),Pt.on("log",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Wt.emit("log",zt)}),Pt.on("error",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Wt.emit("error",zt)}))}),Wt}},{key:"startTimer",value:function(){return new vt(this)}},{key:"profile",value:function(Ot){var Wt=Date.now();if(this.profilers[Ot]){var Dt=this.profilers[Ot];delete this.profilers[Ot];for(var Et=arguments.length,Pt=new Array(Et>1?Et-1:0),zt=1;zttt(nt,it)},s.exports=o.default},function(s,o,et){var tt=Object.prototype.toString;s.exports=function(nt){if(typeof nt.displayName=="string"&&nt.constructor.name)return nt.displayName;if(typeof nt.name=="string"&&nt.name)return nt.name;if(typeof nt=="object"&&nt.constructor&&typeof nt.constructor.name=="string")return nt.constructor.name;var rt=nt.toString(),it=tt.call(nt).slice(8,-1);return(rt=it==="Function"?rt.substring(rt.indexOf("(")+1,rt.indexOf(")")):it)||"anonymous"}},function(s,o,et){const tt=et(13),{LEVEL:nt}=et(4),rt=et(14),it=s.exports=function(ot={}){if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=function(st){this.emit("error",st,this.transport)}.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(let at=0;atut.length)&&(dt=ut.length);for(var ht=0,ct=new Array(dt);ht1?ft.splice(0):ft,Ut=yt.length;if(Ut)for(var Ft=0;Ft1&&arguments[1]!==void 0?arguments[1]:{};return it.format&&(rt.timestamp=typeof it.format=="function"?it.format():tt.format(new Date,it.format)),rt.timestamp||(rt.timestamp=new Date().toISOString()),it.alias&&(rt[it.alias]=rt.timestamp),rt})},function(s,o,et){et.r(o),et.d(o,"assign",function(){return st}),et.d(o,"format",function(){return St}),et.d(o,"parse",function(){return Tt}),et.d(o,"defaultI18n",function(){return dt}),et.d(o,"setGlobalDateI18n",function(){return ct}),et.d(o,"setGlobalDateMasks",function(){return Rt});var tt=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,nt="[^\\s]+",rt=/\[([^]*?)\]/gm;function it(xt,Ct){for(var kt=[],Nt=0,Ot=xt.length;Nt-1?Nt:null}};function st(xt){for(var Ct=[],kt=1;kt3?0:(xt-xt%10!=10?1:0)*xt%10]}},ht=st({},dt),ct=function(xt){return ht=st(ht,xt)},pt=function(xt){return xt.replace(/[|\\{()[^$+*?.-]/g,"\\$&")},ft=function(xt,Ct){for(Ct===void 0&&(Ct=2),xt=String(xt);xt.length0?"-":"+")+ft(100*Math.floor(Math.abs(Ct)/60)+Math.abs(Ct)%60,4)},Z:function(xt){var Ct=xt.getTimezoneOffset();return(Ct>0?"-":"+")+ft(Math.floor(Math.abs(Ct)/60),2)+":"+ft(Math.abs(Ct)%60,2)}},yt=function(xt){return+xt-1},Ut=[null,"[1-9]\\d?"],Ft=[null,nt],mt=["isPm",nt,function(xt,Ct){var kt=xt.toLowerCase();return kt===Ct.amPm[0]?0:kt===Ct.amPm[1]?1:null}],vt=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(xt){var Ct=(xt+"").match(/([+-]|\d\d)/gi);if(Ct){var kt=60*+Ct[1]+parseInt(Ct[2],10);return Ct[0]==="+"?kt:-kt}return 0}],At={D:["day","[1-9]\\d?"],DD:["day","\\d\\d"],Do:["day","[1-9]\\d?"+nt,function(xt){return parseInt(xt,10)}],M:["month","[1-9]\\d?",yt],MM:["month","\\d\\d",yt],YY:["year","\\d\\d",function(xt){var Ct=+(""+new Date().getFullYear()).substr(0,2);return+(""+(+xt>68?Ct-1:Ct)+xt)}],h:["hour","[1-9]\\d?",void 0,"isPm"],hh:["hour","\\d\\d",void 0,"isPm"],H:["hour","[1-9]\\d?"],HH:["hour","\\d\\d"],m:["minute","[1-9]\\d?"],mm:["minute","\\d\\d"],s:["second","[1-9]\\d?"],ss:["second","\\d\\d"],YYYY:["year","\\d{4}"],S:["millisecond","\\d",function(xt){return 100*+xt}],SS:["millisecond","\\d\\d",function(xt){return 10*+xt}],SSS:["millisecond","\\d{3}"],d:Ut,dd:Ut,ddd:Ft,dddd:Ft,MMM:["month",nt,ot("monthNamesShort")],MMMM:["month",nt,ot("monthNames")],a:mt,A:mt,ZZ:vt,Z:vt},Lt={default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},Rt=function(xt){return st(Lt,xt)},St=function(xt,Ct,kt){if(Ct===void 0&&(Ct=Lt.default),kt===void 0&&(kt={}),typeof xt=="number"&&(xt=new Date(xt)),Object.prototype.toString.call(xt)!=="[object Date]"||isNaN(xt.getTime()))throw new Error("Invalid Date pass to format");var Nt=[];Ct=(Ct=Lt[Ct]||Ct).replace(rt,function(Jt,Dt){return Nt.push(Dt),"@@@"});var Ot=st(st({},ht),kt);return(Ct=Ct.replace(tt,function(Jt){return gt[Jt](xt,Ot)})).replace(/@@@/g,function(){return Nt.shift()})};function Tt(xt,Ct,kt){if(kt===void 0&&(kt={}),typeof Ct!="string")throw new Error("Invalid format in fecha parse");if(Ct=Lt[Ct]||Ct,xt.length>1e3)return null;var Nt={year:new Date().getFullYear(),month:0,day:1,hour:0,minute:0,second:0,millisecond:0,isPm:null,timezoneOffset:null},Ot=[],Jt=[],Dt=Ct.replace(rt,function(qt,on){return Jt.push(pt(on)),"@@@"}),Et={},Pt={};Dt=pt(Dt).replace(tt,function(qt){var on=At[qt],Xt=on[0],dn=on[1],_n=on[3];if(Et[Xt])throw new Error("Invalid format. "+Xt+" specified twice in format");return Et[Xt]=!0,_n&&(Pt[_n]=!0),Ot.push(on),"("+dn+")"}),Object.keys(Pt).forEach(function(qt){if(!Et[qt])throw new Error("Invalid format. "+qt+" is required in specified format")}),Dt=Dt.replace(/@@@/g,function(){return Jt.shift()});var zt=xt.match(new RegExp(Dt,"i"));if(!zt)return null;for(var en=st(st({},ht),kt),Kt=1;Kt","maintainers":["David Hyde "],"repository":{"type":"git","url":"https://github.com/winstonjs/winston.git"},"keywords":["winston","logger","logging","logs","sysadmin","bunyan","pino","loglevel","tools","json","stream"],"dependencies":{"@dabh/diagnostics":"^2.0.2","@colors/colors":"1.5.0","async":"^3.2.3","is-stream":"^2.0.0","logform":"^2.4.0","one-time":"^1.0.0","readable-stream":"^3.4.0","safe-stable-stringify":"^2.3.1","stack-trace":"0.0.x","triple-beam":"^1.3.0","winston-transport":"^4.5.0"},"devDependencies":{"@babel/cli":"^7.17.0","@babel/core":"^7.17.2","@babel/preset-env":"^7.16.7","@dabh/eslint-config-populist":"^5.0.0","@types/node":"^18.0.0","abstract-winston-transport":"^0.5.1","assume":"^2.2.0","cross-spawn-async":"^2.2.5","eslint":"^8.9.0","hock":"^1.4.1","mocha":"8.1.3","nyc":"^15.1.0","rimraf":"^3.0.2","split2":"^4.1.0","std-mocks":"^1.0.1","through2":"^4.0.2","winston-compat":"^0.1.5"},"main":"./lib/winston.js","browser":"./dist/winston","types":"./index.d.ts","scripts":{"lint":"eslint lib/*.js lib/winston/*.js lib/winston/**/*.js --resolve-plugins-relative-to ./node_modules/@dabh/eslint-config-populist","test":"mocha","test:coverage":"nyc npm run test:unit","test:unit":"mocha test/unit","test:integration":"mocha test/integration","build":"rimraf dist && babel lib -d dist","prepublishOnly":"npm run build"},"engines":{"node":">= 12.0.0"},"license":"MIT"}')},function(s,o,et){Object.defineProperty(o,"Console",{configurable:!0,enumerable:!0,get:function(){return et(138)}}),Object.defineProperty(o,"File",{configurable:!0,enumerable:!0,get:function(){return et(152)}}),Object.defineProperty(o,"Http",{configurable:!0,enumerable:!0,get:function(){return et(194)}}),Object.defineProperty(o,"Stream",{configurable:!0,enumerable:!0,get:function(){return et(206)}})},function(s,o,et){(function(tt){function nt(ft){return(nt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(gt){return typeof gt}:function(gt){return gt&&typeof Symbol=="function"&>.constructor===Symbol&>!==Symbol.prototype?"symbol":typeof gt})(ft)}function rt(ft,gt){if(!(ft instanceof gt))throw new TypeError("Cannot call a class as a function")}function it(ft,gt){for(var yt=0;yt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var yt,Ut=lt(ft);if(gt){var Ft=lt(this).constructor;yt=Reflect.construct(Ut,arguments,Ft)}else yt=Ut.apply(this,arguments);return at(this,yt)}}function at(ft,gt){if(gt&&(nt(gt)==="object"||typeof gt=="function"))return gt;if(gt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(yt){if(yt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return yt}(ft)}function lt(ft){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(gt){return gt.__proto__||Object.getPrototypeOf(gt)})(ft)}var ut=et(16),dt=et(4),ht=dt.LEVEL,ct=dt.MESSAGE,pt=et(14);s.exports=function(ft){(function(mt,vt){if(typeof vt!="function"&&vt!==null)throw new TypeError("Super expression must either be null or a function");mt.prototype=Object.create(vt&&vt.prototype,{constructor:{value:mt,writable:!0,configurable:!0}}),Object.defineProperty(mt,"prototype",{writable:!1}),vt&&ot(mt,vt)})(Ft,ft);var gt,yt,Ut=st(Ft);function Ft(){var mt,vt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return rt(this,Ft),(mt=Ut.call(this,vt)).name=vt.name||"console",mt.stderrLevels=mt._stringArrayToSet(vt.stderrLevels),mt.consoleWarnLevels=mt._stringArrayToSet(vt.consoleWarnLevels),mt.eol=typeof vt.eol=="string"?vt.eol:ut.EOL,mt.setMaxListeners(30),mt}return gt=Ft,(yt=[{key:"log",value:function(mt,vt){var At=this;return tt(function(){return At.emit("logged",mt)}),this.stderrLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.error(mt[ct]),void(vt&&vt())):this.consoleWarnLevels[mt[ht]]?(console._stderr?console._stderr.write("".concat(mt[ct]).concat(this.eol)):console.warn(mt[ct]),void(vt&&vt())):(console._stdout?console._stdout.write("".concat(mt[ct]).concat(this.eol)):console.log(mt[ct]),void(vt&&vt()))}},{key:"_stringArrayToSet",value:function(mt,vt){if(!mt)return{};if(vt=vt||"Cannot make set from type other than Array of string elements",!Array.isArray(mt))throw new Error(vt);return mt.reduce(function(At,Lt){if(typeof Lt!="string")throw new Error(vt);return At[Lt]=!0,At},{})}}])&&it(gt.prototype,yt),Object.defineProperty(gt,"prototype",{writable:!1}),Ft}(pt)}).call(this,et(19).setImmediate)},function(s,o,et){(function(tt,nt){(function(rt,it){if(!rt.setImmediate){var ot,st,at,lt,ut,dt=1,ht={},ct=!1,pt=rt.document,ft=Object.getPrototypeOf&&Object.getPrototypeOf(rt);ft=ft&&ft.setTimeout?ft:rt,{}.toString.call(rt.process)==="[object process]"?ot=function(Ut){nt.nextTick(function(){yt(Ut)})}:function(){if(rt.postMessage&&!rt.importScripts){var Ut=!0,Ft=rt.onmessage;return rt.onmessage=function(){Ut=!1},rt.postMessage("","*"),rt.onmessage=Ft,Ut}}()?(lt="setImmediate$"+Math.random()+"$",ut=function(Ut){Ut.source===rt&&typeof Ut.data=="string"&&Ut.data.indexOf(lt)===0&&yt(+Ut.data.slice(lt.length))},rt.addEventListener?rt.addEventListener("message",ut,!1):rt.attachEvent("onmessage",ut),ot=function(Ut){rt.postMessage(lt+Ut,"*")}):rt.MessageChannel?((at=new MessageChannel).port1.onmessage=function(Ut){yt(Ut.data)},ot=function(Ut){at.port2.postMessage(Ut)}):pt&&"onreadystatechange"in pt.createElement("script")?(st=pt.documentElement,ot=function(Ut){var Ft=pt.createElement("script");Ft.onreadystatechange=function(){yt(Ut),Ft.onreadystatechange=null,st.removeChild(Ft),Ft=null},st.appendChild(Ft)}):ot=function(Ut){setTimeout(yt,0,Ut)},ft.setImmediate=function(Ut){typeof Ut!="function"&&(Ut=new Function(""+Ut));for(var Ft=new Array(arguments.length-1),mt=0;mt"u"?tt===void 0?this:tt:self)}).call(this,et(6),et(2))},function(s,o,et){o.byteLength=function(ut){var dt=at(ut),ht=dt[0],ct=dt[1];return 3*(ht+ct)/4-ct},o.toByteArray=function(ut){var dt,ht,ct=at(ut),pt=ct[0],ft=ct[1],gt=new rt(function(Ft,mt,vt){return 3*(mt+vt)/4-vt}(0,pt,ft)),yt=0,Ut=ft>0?pt-4:pt;for(ht=0;ht>16&255,gt[yt++]=dt>>8&255,gt[yt++]=255&dt;return ft===2&&(dt=nt[ut.charCodeAt(ht)]<<2|nt[ut.charCodeAt(ht+1)]>>4,gt[yt++]=255&dt),ft===1&&(dt=nt[ut.charCodeAt(ht)]<<10|nt[ut.charCodeAt(ht+1)]<<4|nt[ut.charCodeAt(ht+2)]>>2,gt[yt++]=dt>>8&255,gt[yt++]=255&dt),gt},o.fromByteArray=function(ut){for(var dt,ht=ut.length,ct=ht%3,pt=[],ft=0,gt=ht-ct;ftgt?gt:ft+16383));return ct===1?(dt=ut[ht-1],pt.push(tt[dt>>2]+tt[dt<<4&63]+"==")):ct===2&&(dt=(ut[ht-2]<<8)+ut[ht-1],pt.push(tt[dt>>10]+tt[dt>>4&63]+tt[dt<<2&63]+"=")),pt.join("")};for(var tt=[],nt=[],rt=typeof Uint8Array<"u"?Uint8Array:Array,it="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ot=0,st=it.length;ot0)throw new Error("Invalid string. Length must be a multiple of 4");var ht=ut.indexOf("=");return ht===-1&&(ht=dt),[ht,ht===dt?0:4-ht%4]}function lt(ut,dt,ht){for(var ct,pt,ft=[],gt=dt;gt>18&63]+tt[pt>>12&63]+tt[pt>>6&63]+tt[63&pt]);return ft.join("")}nt["-".charCodeAt(0)]=62,nt["_".charCodeAt(0)]=63},function(s,o){o.read=function(et,tt,nt,rt,it){var ot,st,at=8*it-rt-1,lt=(1<>1,dt=-7,ht=nt?it-1:0,ct=nt?-1:1,pt=et[tt+ht];for(ht+=ct,ot=pt&(1<<-dt)-1,pt>>=-dt,dt+=at;dt>0;ot=256*ot+et[tt+ht],ht+=ct,dt-=8);for(st=ot&(1<<-dt)-1,ot>>=-dt,dt+=rt;dt>0;st=256*st+et[tt+ht],ht+=ct,dt-=8);if(ot===0)ot=1-ut;else{if(ot===lt)return st?NaN:1/0*(pt?-1:1);st+=Math.pow(2,rt),ot-=ut}return(pt?-1:1)*st*Math.pow(2,ot-rt)},o.write=function(et,tt,nt,rt,it,ot){var st,at,lt,ut=8*ot-it-1,dt=(1<>1,ct=it===23?Math.pow(2,-24)-Math.pow(2,-77):0,pt=rt?0:ot-1,ft=rt?1:-1,gt=tt<0||tt===0&&1/tt<0?1:0;for(tt=Math.abs(tt),isNaN(tt)||tt===1/0?(at=isNaN(tt)?1:0,st=dt):(st=Math.floor(Math.log(tt)/Math.LN2),tt*(lt=Math.pow(2,-st))<1&&(st--,lt*=2),(tt+=st+ht>=1?ct/lt:ct*Math.pow(2,1-ht))*lt>=2&&(st++,lt/=2),st+ht>=dt?(at=0,st=dt):st+ht>=1?(at=(tt*lt-1)*Math.pow(2,it),st+=ht):(at=tt*Math.pow(2,ht-1)*Math.pow(2,it),st=0));it>=8;et[nt+pt]=255&at,pt+=ft,at/=256,it-=8);for(st=st<0;et[nt+pt]=255&st,pt+=ft,st/=256,ut-=8);et[nt+pt-ft]|=128*gt}},function(s,o){var et={}.toString;s.exports=Array.isArray||function(tt){return et.call(tt)=="[object Array]"}},function(s,o,et){(function(tt,nt){var rt;s.exports=St,St.ReadableState=Rt,et(20).EventEmitter;var it=function(Zt,jt){return Zt.listeners(jt).length},ot=et(62),st=et(5).Buffer,at=(tt!==void 0?tt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){},lt,ut=et(144);lt=ut&&ut.debuglog?ut.debuglog("stream"):function(){};var dt,ht,ct,pt=et(145),ft=et(63),gt=et(64).getHighWaterMark,yt=et(35).codes,Ut=yt.ERR_INVALID_ARG_TYPE,Ft=yt.ERR_STREAM_PUSH_AFTER_EOF,mt=yt.ERR_METHOD_NOT_IMPLEMENTED,vt=yt.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;et(7)(St,ot);var At=ft.errorOrDestroy,Lt=["error","close","destroy","pause","resume"];function Rt(Zt,jt,Vt){rt=rt||et(36),Zt=Zt||{},typeof Vt!="boolean"&&(Vt=jt instanceof rt),this.objectMode=!!Zt.objectMode,Vt&&(this.objectMode=this.objectMode||!!Zt.readableObjectMode),this.highWaterMark=gt(this,Zt,"readableHighWaterMark",Vt),this.buffer=new pt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=Zt.emitClose!==!1,this.autoDestroy=!!Zt.autoDestroy,this.destroyed=!1,this.defaultEncoding=Zt.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,Zt.encoding&&(dt||(dt=et(21).StringDecoder),this.decoder=new dt(Zt.encoding),this.encoding=Zt.encoding)}function St(Zt){if(rt=rt||et(36),!(this instanceof St))return new St(Zt);var jt=this instanceof rt;this._readableState=new Rt(Zt,this,jt),this.readable=!0,Zt&&(typeof Zt.read=="function"&&(this._read=Zt.read),typeof Zt.destroy=="function"&&(this._destroy=Zt.destroy)),ot.call(this)}function Tt(Zt,jt,Vt,It,$t){lt("readableAddChunk",jt);var Ht,qt=Zt._readableState;if(jt===null)qt.reading=!1,function(on,Xt){if(lt("onEofChunk"),!Xt.ended){if(Xt.decoder){var dn=Xt.decoder.end();dn&&dn.length&&(Xt.buffer.push(dn),Xt.length+=Xt.objectMode?1:dn.length)}Xt.ended=!0,Xt.sync?Ct(on):(Xt.needReadable=!1,Xt.emittedReadable||(Xt.emittedReadable=!0,kt(on)))}}(Zt,qt);else if($t||(Ht=function(on,Xt){var dn;_n=Xt,st.isBuffer(_n)||_n instanceof at||typeof Xt=="string"||Xt===void 0||on.objectMode||(dn=new Ut("chunk",["string","Buffer","Uint8Array"],Xt));var _n;return dn}(qt,jt)),Ht)At(Zt,Ht);else if(qt.objectMode||jt&&jt.length>0)if(typeof jt=="string"||qt.objectMode||Object.getPrototypeOf(jt)===st.prototype||(jt=function(on){return st.from(on)}(jt)),It)qt.endEmitted?At(Zt,new vt):Bt(Zt,qt,jt,!0);else if(qt.ended)At(Zt,new Ft);else{if(qt.destroyed)return!1;qt.reading=!1,qt.decoder&&!Vt?(jt=qt.decoder.write(jt),qt.objectMode||jt.length!==0?Bt(Zt,qt,jt,!1):Nt(Zt,qt)):Bt(Zt,qt,jt,!1)}else It||(qt.reading=!1,Nt(Zt,qt));return!qt.ended&&(qt.lengthjt.highWaterMark&&(jt.highWaterMark=function(Vt){return Vt>=1073741824?Vt=1073741824:(Vt--,Vt|=Vt>>>1,Vt|=Vt>>>2,Vt|=Vt>>>4,Vt|=Vt>>>8,Vt|=Vt>>>16,Vt++),Vt}(Zt)),Zt<=jt.length?Zt:jt.ended?jt.length:(jt.needReadable=!0,0))}function Ct(Zt){var jt=Zt._readableState;lt("emitReadable",jt.needReadable,jt.emittedReadable),jt.needReadable=!1,jt.emittedReadable||(lt("emitReadable",jt.flowing),jt.emittedReadable=!0,nt.nextTick(kt,Zt))}function kt(Zt){var jt=Zt._readableState;lt("emitReadable_",jt.destroyed,jt.length,jt.ended),jt.destroyed||!jt.length&&!jt.ended||(Zt.emit("readable"),jt.emittedReadable=!1),jt.needReadable=!jt.flowing&&!jt.ended&&jt.length<=jt.highWaterMark,Pt(Zt)}function Nt(Zt,jt){jt.readingMore||(jt.readingMore=!0,nt.nextTick(Ot,Zt,jt))}function Ot(Zt,jt){for(;!jt.reading&&!jt.ended&&(jt.length0,jt.resumeScheduled&&!jt.paused?jt.flowing=!0:Zt.listenerCount("data")>0&&Zt.resume()}function Dt(Zt){lt("readable nexttick read 0"),Zt.read(0)}function Et(Zt,jt){lt("resume",jt.reading),jt.reading||Zt.read(0),jt.resumeScheduled=!1,Zt.emit("resume"),Pt(Zt),jt.flowing&&!jt.reading&&Zt.read(0)}function Pt(Zt){var jt=Zt._readableState;for(lt("flow",jt.flowing);jt.flowing&&Zt.read()!==null;);}function zt(Zt,jt){return jt.length===0?null:(jt.objectMode?Vt=jt.buffer.shift():!Zt||Zt>=jt.length?(Vt=jt.decoder?jt.buffer.join(""):jt.buffer.length===1?jt.buffer.first():jt.buffer.concat(jt.length),jt.buffer.clear()):Vt=jt.buffer.consume(Zt,jt.decoder),Vt);var Vt}function en(Zt){var jt=Zt._readableState;lt("endReadable",jt.endEmitted),jt.endEmitted||(jt.ended=!0,nt.nextTick(Kt,jt,Zt))}function Kt(Zt,jt){if(lt("endReadableNT",Zt.endEmitted,Zt.length),!Zt.endEmitted&&Zt.length===0&&(Zt.endEmitted=!0,jt.readable=!1,jt.emit("end"),Zt.autoDestroy)){var Vt=jt._writableState;(!Vt||Vt.autoDestroy&&Vt.finished)&&jt.destroy()}}function nn(Zt,jt){for(var Vt=0,It=Zt.length;Vt=jt.highWaterMark:jt.length>0)||jt.ended))return lt("read: emitReadable",jt.length,jt.ended),jt.length===0&&jt.ended?en(this):Ct(this),null;if((Zt=xt(Zt,jt))===0&&jt.ended)return jt.length===0&&en(this),null;var It,$t=jt.needReadable;return lt("need readable",$t),(jt.length===0||jt.length-Zt0?zt(Zt,jt):null)===null?(jt.needReadable=jt.length<=jt.highWaterMark,Zt=0):(jt.length-=Zt,jt.awaitDrain=0),jt.length===0&&(jt.ended||(jt.needReadable=!0),Vt!==Zt&&jt.ended&&en(this)),It!==null&&this.emit("data",It),It},St.prototype._read=function(Zt){At(this,new mt("_read()"))},St.prototype.pipe=function(Zt,jt){var Vt=this,It=this._readableState;switch(It.pipesCount){case 0:It.pipes=Zt;break;case 1:It.pipes=[It.pipes,Zt];break;default:It.pipes.push(Zt)}It.pipesCount+=1,lt("pipe count=%d opts=%j",It.pipesCount,jt);var $t=(!jt||jt.end!==!1)&&Zt!==nt.stdout&&Zt!==nt.stderr?qt:On;function Ht(gn,hn){lt("onunpipe"),gn===Vt&&hn&&hn.hasUnpiped===!1&&(hn.hasUnpiped=!0,lt("cleanup"),Zt.removeListener("close",Fn),Zt.removeListener("finish",Un),Zt.removeListener("drain",on),Zt.removeListener("error",_n),Zt.removeListener("unpipe",Ht),Vt.removeListener("end",qt),Vt.removeListener("end",On),Vt.removeListener("data",dn),Xt=!0,!It.awaitDrain||Zt._writableState&&!Zt._writableState.needDrain||on())}function qt(){lt("onend"),Zt.end()}It.endEmitted?nt.nextTick($t):Vt.once("end",$t),Zt.on("unpipe",Ht);var on=function(gn){return function(){var hn=gn._readableState;lt("pipeOnDrain",hn.awaitDrain),hn.awaitDrain&&hn.awaitDrain--,hn.awaitDrain===0&&it(gn,"data")&&(hn.flowing=!0,Pt(gn))}}(Vt);Zt.on("drain",on);var Xt=!1;function dn(gn){lt("ondata");var hn=Zt.write(gn);lt("dest.write",hn),hn===!1&&((It.pipesCount===1&&It.pipes===Zt||It.pipesCount>1&&nn(It.pipes,Zt)!==-1)&&!Xt&&(lt("false write response, pause",It.awaitDrain),It.awaitDrain++),Vt.pause())}function _n(gn){lt("onerror",gn),On(),Zt.removeListener("error",_n),it(Zt,"error")===0&&At(Zt,gn)}function Fn(){Zt.removeListener("finish",Un),On()}function Un(){lt("onfinish"),Zt.removeListener("close",Fn),On()}function On(){lt("unpipe"),Vt.unpipe(Zt)}return Vt.on("data",dn),function(gn,hn,wn){if(typeof gn.prependListener=="function")return gn.prependListener(hn,wn);gn._events&&gn._events[hn]?Array.isArray(gn._events[hn])?gn._events[hn].unshift(wn):gn._events[hn]=[wn,gn._events[hn]]:gn.on(hn,wn)}(Zt,"error",_n),Zt.once("close",Fn),Zt.once("finish",Un),Zt.emit("pipe",Vt),It.flowing||(lt("pipe resume"),Vt.resume()),Zt},St.prototype.unpipe=function(Zt){var jt=this._readableState,Vt={hasUnpiped:!1};if(jt.pipesCount===0)return this;if(jt.pipesCount===1)return Zt&&Zt!==jt.pipes||(Zt||(Zt=jt.pipes),jt.pipes=null,jt.pipesCount=0,jt.flowing=!1,Zt&&Zt.emit("unpipe",this,Vt)),this;if(!Zt){var It=jt.pipes,$t=jt.pipesCount;jt.pipes=null,jt.pipesCount=0,jt.flowing=!1;for(var Ht=0;Ht<$t;Ht++)It[Ht].emit("unpipe",this,{hasUnpiped:!1});return this}var qt=nn(jt.pipes,Zt);return qt===-1||(jt.pipes.splice(qt,1),jt.pipesCount-=1,jt.pipesCount===1&&(jt.pipes=jt.pipes[0]),Zt.emit("unpipe",this,Vt)),this},St.prototype.on=function(Zt,jt){var Vt=ot.prototype.on.call(this,Zt,jt),It=this._readableState;return Zt==="data"?(It.readableListening=this.listenerCount("readable")>0,It.flowing!==!1&&this.resume()):Zt==="readable"&&(It.endEmitted||It.readableListening||(It.readableListening=It.needReadable=!0,It.flowing=!1,It.emittedReadable=!1,lt("on readable",It.length,It.reading),It.length?Ct(this):It.reading||nt.nextTick(Dt,this))),Vt},St.prototype.addListener=St.prototype.on,St.prototype.removeListener=function(Zt,jt){var Vt=ot.prototype.removeListener.call(this,Zt,jt);return Zt==="readable"&&nt.nextTick(Jt,this),Vt},St.prototype.removeAllListeners=function(Zt){var jt=ot.prototype.removeAllListeners.apply(this,arguments);return Zt!=="readable"&&Zt!==void 0||nt.nextTick(Jt,this),jt},St.prototype.resume=function(){var Zt=this._readableState;return Zt.flowing||(lt("resume"),Zt.flowing=!Zt.readableListening,function(jt,Vt){Vt.resumeScheduled||(Vt.resumeScheduled=!0,nt.nextTick(Et,jt,Vt))}(this,Zt)),Zt.paused=!1,this},St.prototype.pause=function(){return lt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(lt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},St.prototype.wrap=function(Zt){var jt=this,Vt=this._readableState,It=!1;for(var $t in Zt.on("end",function(){if(lt("wrapped end"),Vt.decoder&&!Vt.ended){var qt=Vt.decoder.end();qt&&qt.length&&jt.push(qt)}jt.push(null)}),Zt.on("data",function(qt){lt("wrapped data"),Vt.decoder&&(qt=Vt.decoder.write(qt)),Vt.objectMode&&qt==null||(Vt.objectMode||qt&&qt.length)&&(jt.push(qt)||(It=!0,Zt.pause()))}),Zt)this[$t]===void 0&&typeof Zt[$t]=="function"&&(this[$t]=function(qt){return function(){return Zt[qt].apply(Zt,arguments)}}($t));for(var Ht=0;Ht0?this.tail.next=pt:this.head=pt,this.tail=pt,++this.length}},{key:"unshift",value:function(ct){var pt={data:ct,next:this.head};this.length===0&&(this.tail=pt),this.head=pt,++this.length}},{key:"shift",value:function(){if(this.length!==0){var ct=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,ct}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(ct){if(this.length===0)return"";for(var pt=this.head,ft=""+pt.data;pt=pt.next;)ft+=ct+pt.data;return ft}},{key:"concat",value:function(ct){if(this.length===0)return st.alloc(0);for(var pt,ft,gt,yt=st.allocUnsafe(ct>>>0),Ut=this.head,Ft=0;Ut;)pt=Ut.data,ft=yt,gt=Ft,st.prototype.copy.call(pt,ft,gt),Ft+=Ut.data.length,Ut=Ut.next;return yt}},{key:"consume",value:function(ct,pt){var ft;return ctyt.length?yt.length:ct;if(Ut===yt.length?gt+=yt:gt+=yt.slice(0,ct),(ct-=Ut)==0){Ut===yt.length?(++ft,pt.next?this.head=pt.next:this.head=this.tail=null):(this.head=pt,pt.data=yt.slice(Ut));break}++ft}return this.length-=ft,gt}},{key:"_getBuffer",value:function(ct){var pt=st.allocUnsafe(ct),ft=this.head,gt=1;for(ft.data.copy(pt),ct-=ft.data.length;ft=ft.next;){var yt=ft.data,Ut=ct>yt.length?yt.length:ct;if(yt.copy(pt,pt.length-ct,0,Ut),(ct-=Ut)==0){Ut===yt.length?(++gt,ft.next?this.head=ft.next:this.head=this.tail=null):(this.head=ft,ft.data=yt.slice(Ut));break}++gt}return this.length-=gt,pt}},{key:lt,value:function(ct,pt){return at(this,nt(nt({},pt),{},{depth:0,customInspect:!1}))}}])&&it(dt.prototype,ht),Object.defineProperty(dt,"prototype",{writable:!1}),ut}()},function(s,o){},function(s,o,et){var tt=et(5),nt=tt.Buffer;function rt(ot,st){for(var at in ot)st[at]=ot[at]}function it(ot,st,at){return nt(ot,st,at)}nt.from&&nt.alloc&&nt.allocUnsafe&&nt.allocUnsafeSlow?s.exports=tt:(rt(tt,o),o.Buffer=it),rt(nt,it),it.from=function(ot,st,at){if(typeof ot=="number")throw new TypeError("Argument must not be a number");return nt(ot,st,at)},it.alloc=function(ot,st,at){if(typeof ot!="number")throw new TypeError("Argument must be a number");var lt=nt(ot);return st!==void 0?typeof at=="string"?lt.fill(st,at):lt.fill(st):lt.fill(0),lt},it.allocUnsafe=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return nt(ot)},it.allocUnsafeSlow=function(ot){if(typeof ot!="number")throw new TypeError("Argument must be a number");return tt.SlowBuffer(ot)}},function(s,o,et){(function(tt){var nt;function rt(Ut,Ft,mt){return(Ft=function(vt){var At=function(Lt,Rt){if(typeof Lt!="object"||Lt===null)return Lt;var St=Lt[Symbol.toPrimitive];if(St!==void 0){var Tt=St.call(Lt,Rt||"default");if(typeof Tt!="object")return Tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Rt==="string"?String:Number)(Lt)}(vt,"string");return typeof At=="symbol"?At:String(At)}(Ft))in Ut?Object.defineProperty(Ut,Ft,{value:mt,enumerable:!0,configurable:!0,writable:!0}):Ut[Ft]=mt,Ut}var it=et(149),ot=Symbol("lastResolve"),st=Symbol("lastReject"),at=Symbol("error"),lt=Symbol("ended"),ut=Symbol("lastPromise"),dt=Symbol("handlePromise"),ht=Symbol("stream");function ct(Ut,Ft){return{value:Ut,done:Ft}}function pt(Ut){var Ft=Ut[ot];if(Ft!==null){var mt=Ut[ht].read();mt!==null&&(Ut[ut]=null,Ut[ot]=null,Ut[st]=null,Ft(ct(mt,!1)))}}function ft(Ut){tt.nextTick(pt,Ut)}var gt=Object.getPrototypeOf(function(){}),yt=Object.setPrototypeOf((rt(nt={get stream(){return this[ht]},next:function(){var Ut=this,Ft=this[at];if(Ft!==null)return Promise.reject(Ft);if(this[lt])return Promise.resolve(ct(void 0,!0));if(this[ht].destroyed)return new Promise(function(Lt,Rt){tt.nextTick(function(){Ut[at]?Rt(Ut[at]):Lt(ct(void 0,!0))})});var mt,vt=this[ut];if(vt)mt=new Promise(function(Lt,Rt){return function(St,Tt){Lt.then(function(){Rt[lt]?St(ct(void 0,!0)):Rt[dt](St,Tt)},Tt)}}(vt,this));else{var At=this[ht].read();if(At!==null)return Promise.resolve(ct(At,!1));mt=new Promise(this[dt])}return this[ut]=mt,mt}},Symbol.asyncIterator,function(){return this}),rt(nt,"return",function(){var Ut=this;return new Promise(function(Ft,mt){Ut[ht].destroy(null,function(vt){vt?mt(vt):Ft(ct(void 0,!0))})})}),nt),gt);s.exports=function(Ut){var Ft,mt=Object.create(yt,(rt(Ft={},ht,{value:Ut,writable:!0}),rt(Ft,ot,{value:null,writable:!0}),rt(Ft,st,{value:null,writable:!0}),rt(Ft,at,{value:null,writable:!0}),rt(Ft,lt,{value:Ut._readableState.endEmitted,writable:!0}),rt(Ft,dt,{value:function(vt,At){var Lt=mt[ht].read();Lt?(mt[ut]=null,mt[ot]=null,mt[st]=null,vt(ct(Lt,!1))):(mt[ot]=vt,mt[st]=At)},writable:!0}),Ft));return mt[ut]=null,it(Ut,function(vt){if(vt&&vt.code!=="ERR_STREAM_PREMATURE_CLOSE"){var At=mt[st];return At!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,At(vt)),void(mt[at]=vt)}var Lt=mt[ot];Lt!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,Lt(ct(void 0,!0))),mt[lt]=!0}),Ut.on("readable",ft.bind(null,mt)),mt}}).call(this,et(2))},function(s,o,et){var tt=et(35).codes.ERR_STREAM_PREMATURE_CLOSE;function nt(){}s.exports=function rt(it,ot,st){if(typeof ot=="function")return rt(it,null,ot);ot||(ot={}),st=function(Ut){var Ft=!1;return function(){if(!Ft){Ft=!0;for(var mt=arguments.length,vt=new Array(mt),At=0;At0&&arguments[0]!==void 0?arguments[0]:{};if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");function st(at){this.emit("error",at,this.transport)}this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=st.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(var at=0;at"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var Tt,Bt=dt(Rt);if(St){var xt=dt(this).constructor;Tt=Reflect.construct(Bt,arguments,xt)}else Tt=Bt.apply(this,arguments);return lt(this,Tt)}}function lt(Rt,St){if(St&&(rt(St)==="object"||typeof St=="function"))return St;if(St!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ut(Rt)}function ut(Rt){if(Rt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Rt}function dt(Rt){return(dt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(St){return St.__proto__||Object.getPrototypeOf(St)})(Rt)}var ht=et(65),ct=et(55),pt=et(153),ft=et(163),gt=et(4).MESSAGE,yt=et(33),Ut=yt.Stream,Ft=yt.PassThrough,mt=et(14),vt=et(39)("winston:file"),At=et(16),Lt=et(193);s.exports=function(Rt){(function(Ct,kt){if(typeof kt!="function"&&kt!==null)throw new TypeError("Super expression must either be null or a function");Ct.prototype=Object.create(kt&&kt.prototype,{constructor:{value:Ct,writable:!0,configurable:!0}}),Object.defineProperty(Ct,"prototype",{writable:!1}),kt&&st(Ct,kt)})(xt,Rt);var St,Tt,Bt=at(xt);function xt(){var Ct,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};function Nt(Ot){for(var Jt=arguments.length,Dt=new Array(Jt>1?Jt-1:0),Et=1;Et1&&arguments[1]!==void 0?arguments[1]:function(){};if(this.silent)return Nt(),!0;if(this._drain)this._stream.once("drain",function(){kt._drain=!1,kt.log(Ct,Nt)});else{if(!this._rotate){var Ot="".concat(Ct[gt]).concat(this.eol),Jt=nt.byteLength(Ot);this._pendingSize+=Jt,this._opening&&!this.rotatedWhileOpening&&this._needsNewFile(this._size+this._pendingSize)&&(this.rotatedWhileOpening=!0);var Dt=this._stream.write(Ot,Et.bind(this));return Dt?Nt():(this._drain=!0,this._stream.once("drain",function(){kt._drain=!1,Nt()})),vt("written",Dt,this._drain),this.finishIfEnding(),Dt}this._stream.once("rotate",function(){kt._rotate=!1,kt.log(Ct,Nt)})}function Et(){var Pt=this;this._size+=Jt,this._pendingSize-=Jt,vt("logged %s %s",this._size,Ot),this.emit("logged",Ct),this._opening||this._needsNewFile()&&(this._rotate=!0,this._endStream(function(){return Pt._rotateFile()}))}}},{key:"query",value:function(Ct,kt){typeof Ct=="function"&&(kt=Ct,Ct={}),Ct=function(zt){return(zt=zt||{}).rows=zt.rows||zt.limit||10,zt.start=zt.start||0,zt.until=zt.until||new Date,rt(zt.until)!=="object"&&(zt.until=new Date(zt.until)),zt.from=zt.from||zt.until-864e5,rt(zt.from)!=="object"&&(zt.from=new Date(zt.from)),zt.order=zt.order||"desc",zt}(Ct);var Nt=ct.join(this.dirname,this.filename),Ot="",Jt=[],Dt=0,Et=ht.createReadStream(Nt,{encoding:"utf8"});function Pt(zt,en){try{var Kt=JSON.parse(zt);(function(nn){if(nn&&rt(nn)==="object"){var Zt=new Date(nn.timestamp);if(!(Ct.from&&ZtCt.until||Ct.level&&Ct.level!==nn.level))return!0}})(Kt)&&function(nn){Ct.rows&&Jt.length>=Ct.rows&&Ct.order!=="desc"?Et.readable&&Et.destroy():(Ct.fields&&(nn=Ct.fields.reduce(function(Zt,jt){return Zt[jt]=nn[jt],Zt},{})),Ct.order==="desc"&&Jt.length>=Ct.rows&&Jt.shift(),Jt.push(nn))}(Kt)}catch(nn){en||Et.emit("error",nn)}}Et.on("error",function(zt){if(Et.readable&&Et.destroy(),kt)return zt.code!=="ENOENT"?kt(zt):kt(null,Jt)}),Et.on("data",function(zt){for(var en=(zt=(Ot+zt).split(/\n+/)).length-1,Kt=0;Kt=Ct.start)&&Pt(zt[Kt]),Dt++;Ot=zt[en]}),Et.on("close",function(){Ot&&Pt(Ot,!0),Ct.order==="desc"&&(Jt=Jt.reverse()),kt&&kt(null,Jt)})}},{key:"stream",value:function(){var Ct=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},kt=ct.join(this.dirname,this.filename),Nt=new Ut,Ot={file:kt,start:Ct.start};return Nt.destroy=Lt(Ot,function(Jt,Dt){if(Jt)return Nt.emit("error",Jt);try{Nt.emit("data",Dt),Dt=JSON.parse(Dt),Nt.emit("log",Dt)}catch(Et){Nt.emit("error",Et)}}),Nt}},{key:"open",value:function(){var Ct=this;this.filename&&(this._opening||(this._opening=!0,this.stat(function(kt,Nt){if(kt)return Ct.emit("error",kt);vt("stat done: %s { size: %s }",Ct.filename,Nt),Ct._size=Nt,Ct._dest=Ct._createStream(Ct._stream),Ct._opening=!1,Ct.once("open",function(){Ct._stream.eventNames().includes("rotate")?Ct._stream.emit("rotate"):Ct._rotate=!1})})))}},{key:"stat",value:function(Ct){var kt=this,Nt=this._getFile(),Ot=ct.join(this.dirname,Nt);ht.stat(Ot,function(Jt,Dt){return Jt&&Jt.code==="ENOENT"?(vt("ENOENT ok",Ot),kt.filename=Nt,Ct(null,0)):Jt?(vt("err ".concat(Jt.code," ").concat(Ot)),Ct(Jt)):!Dt||kt._needsNewFile(Dt.size)?kt._incFile(function(){return kt.stat(Ct)}):(kt.filename=Nt,void Ct(null,Dt.size))})}},{key:"close",value:function(Ct){var kt=this;this._stream&&this._stream.end(function(){Ct&&Ct(),kt.emit("flush"),kt.emit("closed")})}},{key:"_needsNewFile",value:function(Ct){return Ct=Ct||this._size,this.maxsize&&Ct>=this.maxsize}},{key:"_onError",value:function(Ct){this.emit("error",Ct)}},{key:"_setupStream",value:function(Ct){return Ct.on("error",this._onError),Ct}},{key:"_cleanupStream",value:function(Ct){return Ct.removeListener("error",this._onError),Ct}},{key:"_rotateFile",value:function(){var Ct=this;this._incFile(function(){return Ct.open()})}},{key:"_endStream",value:function(){var Ct=this,kt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){};this._dest?(this._stream.unpipe(this._dest),this._dest.end(function(){Ct._cleanupStream(Ct._dest),kt()})):kt()}},{key:"_createStream",value:function(Ct){var kt=this,Nt=ct.join(this.dirname,this.filename);vt("create stream start",Nt,this.options);var Ot=ht.createWriteStream(Nt,this.options).on("error",function(Dt){return vt(Dt)}).on("close",function(){return vt("close",Ot.path,Ot.bytesWritten)}).on("open",function(){vt("file open ok",Nt),kt.emit("open",Nt),Ct.pipe(Ot),kt.rotatedWhileOpening&&(kt._stream=new Ft,kt._stream.setMaxListeners(30),kt._rotateFile(),kt.rotatedWhileOpening=!1,kt._cleanupStream(Ot),Ct.end())});if(vt("create stream ok",Nt),this.zippedArchive){var Jt=ft.createGzip();return Jt.pipe(Ot),Jt}return Ot}},{key:"_incFile",value:function(Ct){vt("_incFile",this.filename);var kt=ct.extname(this._basename),Nt=ct.basename(this._basename,kt);this.tailable?this._checkMaxFilesTailable(kt,Nt,Ct):(this._created+=1,this._checkMaxFilesIncrementing(kt,Nt,Ct))}},{key:"_getFile",value:function(){var Ct=ct.extname(this._basename),kt=ct.basename(this._basename,Ct),Nt=this.rotationFormat?this.rotationFormat():this._created,Ot=!this.tailable&&this._created?"".concat(kt).concat(Nt).concat(Ct):"".concat(kt).concat(Ct);return this.zippedArchive&&!this.tailable?"".concat(Ot,".gz"):Ot}},{key:"_checkMaxFilesIncrementing",value:function(Ct,kt,Nt){if(!this.maxFiles||this._created1;Et--)Jt.push(function(Pt,zt){var en=this,Kt="".concat(kt).concat(Pt-1).concat(Ct).concat(Dt),nn=ct.join(this.dirname,Kt);ht.exists(nn,function(Zt){if(!Zt)return zt(null);Kt="".concat(kt).concat(Pt).concat(Ct).concat(Dt),ht.rename(nn,ct.join(en.dirname,Kt),zt)})}.bind(this,Et));pt(Jt,function(){ht.rename(ct.join(Ot.dirname,"".concat(kt).concat(Ct)),ct.join(Ot.dirname,"".concat(kt,"1").concat(Ct).concat(Dt)),Nt)})}}},{key:"_createLogDirIfNotExist",value:function(Ct){ht.existsSync(Ct)||ht.mkdirSync(Ct,{recursive:!0})}}])&&ot(St.prototype,Tt),Object.defineProperty(St,"prototype",{writable:!1}),xt}(mt)}).call(this,et(19).setImmediate,et(5).Buffer)},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(it,ot){return(0,tt.default)(nt.default,it,ot)};var tt=rt(et(154)),nt=rt(et(158));function rt(it){return it&&it.__esModule?it:{default:it}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=it(et(44)),nt=it(et(23)),rt=it(et(30));function it(ot){return ot&&ot.__esModule?ot:{default:ot}}o.default=(0,rt.default)((ot,st,at)=>{var lt=(0,tt.default)(st)?[]:{};ot(st,(ut,dt,ht)=>{(0,nt.default)(ut)((ct,...pt)=>{pt.length<2&&([pt]=pt),lt[dt]=pt,ht(ct)})},ut=>at(ut,lt))},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(at){return(0,rt.isAsync)(at)?function(...lt){const ut=lt.pop();return ot(at.apply(this,lt),ut)}:(0,tt.default)(function(lt,ut){var dt;try{dt=at.apply(this,lt)}catch(ht){return ut(ht)}if(dt&&typeof dt.then=="function")return ot(dt,ut);ut(null,dt)})};var tt=it(et(156)),nt=it(et(157)),rt=et(23);function it(at){return at&&at.__esModule?at:{default:at}}function ot(at,lt){return at.then(ut=>{st(lt,null,ut)},ut=>{st(lt,ut&&ut.message?ut:new Error(ut))})}function st(at,lt,ut){try{at(lt,ut)}catch(dt){(0,nt.default)(ht=>{throw ht},dt)}}s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(tt){return function(...nt){var rt=nt.pop();return tt.call(this,nt,rt)}},s.exports=o.default},function(s,o,et){(function(tt,nt){Object.defineProperty(o,"__esModule",{value:!0}),o.fallback=at,o.wrap=lt;var rt,it=o.hasQueueMicrotask=typeof queueMicrotask=="function"&&queueMicrotask,ot=o.hasSetImmediate=typeof tt=="function"&&tt,st=o.hasNextTick=typeof nt=="object"&&typeof nt.nextTick=="function";function at(ut){setTimeout(ut,0)}function lt(ut){return(dt,...ht)=>ut(()=>dt(...ht))}rt=it?queueMicrotask:ot?tt:st?nt.nextTick:at,o.default=lt(rt)}).call(this,et(19).setImmediate,et(2))},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=rt(et(66)),nt=rt(et(30));function rt(it){return it&&it.__esModule?it:{default:it}}o.default=(0,nt.default)(function(it,ot,st){return(0,tt.default)(it,1,ot,st)},3),s.exports=o.default},function(s,o,et){Object.defineProperty(o,"__esModule",{value:!0});var tt=at(et(67)),nt=at(et(160)),rt=at(et(68)),it=et(23),ot=at(et(162)),st=at(et(45));function at(lt){return lt&<.__esModule?lt:{default:lt}}o.default=lt=>(ut,dt,ht)=>{if(ht=(0,tt.default)(ht),lt<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!ut)return ht(null);if((0,it.isAsyncGenerator)(ut))return(0,ot.default)(ut,lt,dt,ht);if((0,it.isAsyncIterable)(ut))return(0,ot.default)(ut[Symbol.asyncIterator](),lt,dt,ht);var ct=(0,nt.default)(ut),pt=!1,ft=!1,gt=0,yt=!1;function Ut(mt,vt){if(!ft)if(gt-=1,mt)pt=!0,ht(mt);else if(mt===!1)pt=!0,ft=!0;else{if(vt===st.default||pt&><=0)return pt=!0,ht(null);yt||Ft()}}function Ft(){for(yt=!0;gt=ot||dt||lt||(dt=!0,it.next().then(({value:yt,done:Ut})=>{if(!ut&&!lt){if(dt=!1,Ut)return lt=!0,void(ht<=0&&at(null));ht++,st(yt,ct,ft),ct++,pt()}}).catch(gt))}function ft(yt,Ut){if(ht-=1,!ut)return yt?gt(yt):yt===!1?(lt=!0,void(ut=!0)):Ut===rt.default||lt&&ht<=0?(lt=!0,at(null)):void pt()}function gt(yt){ut||(dt=!1,lt=!0,at(yt))}pt()};var tt,nt=et(45),rt=(tt=nt)&&tt.__esModule?tt:{default:tt};s.exports=o.default},function(s,o,et){(function(tt){var nt=et(5).Buffer,rt=et(164).Transform,it=et(174),ot=et(13),st=et(73).ok,at=et(5).kMaxLength,lt="Cannot create final Buffer. It would be larger than 0x"+at.toString(16)+" bytes";it.Z_MIN_WINDOWBITS=8,it.Z_MAX_WINDOWBITS=15,it.Z_DEFAULT_WINDOWBITS=15,it.Z_MIN_CHUNK=64,it.Z_MAX_CHUNK=1/0,it.Z_DEFAULT_CHUNK=16384,it.Z_MIN_MEMLEVEL=1,it.Z_MAX_MEMLEVEL=9,it.Z_DEFAULT_MEMLEVEL=8,it.Z_MIN_LEVEL=-1,it.Z_MAX_LEVEL=9,it.Z_DEFAULT_LEVEL=it.Z_DEFAULT_COMPRESSION;for(var ut=Object.keys(it),dt=0;dt=at?en=new RangeError(lt):zt=nt.concat(Jt,Dt),Jt=[],kt.close(),Ot(en,zt)}kt.on("error",function(zt){kt.removeListener("end",Pt),kt.removeListener("readable",Et),Ot(zt)}),kt.on("end",Pt),kt.end(Nt),Et()}function Ut(kt,Nt){if(typeof Nt=="string"&&(Nt=nt.from(Nt)),!nt.isBuffer(Nt))throw new TypeError("Not a string or buffer");var Ot=kt._finishFlushFlag;return kt._processChunk(Nt,Ot)}function Ft(kt){if(!(this instanceof Ft))return new Ft(kt);Bt.call(this,kt,it.DEFLATE)}function mt(kt){if(!(this instanceof mt))return new mt(kt);Bt.call(this,kt,it.INFLATE)}function vt(kt){if(!(this instanceof vt))return new vt(kt);Bt.call(this,kt,it.GZIP)}function At(kt){if(!(this instanceof At))return new At(kt);Bt.call(this,kt,it.GUNZIP)}function Lt(kt){if(!(this instanceof Lt))return new Lt(kt);Bt.call(this,kt,it.DEFLATERAW)}function Rt(kt){if(!(this instanceof Rt))return new Rt(kt);Bt.call(this,kt,it.INFLATERAW)}function St(kt){if(!(this instanceof St))return new St(kt);Bt.call(this,kt,it.UNZIP)}function Tt(kt){return kt===it.Z_NO_FLUSH||kt===it.Z_PARTIAL_FLUSH||kt===it.Z_SYNC_FLUSH||kt===it.Z_FULL_FLUSH||kt===it.Z_FINISH||kt===it.Z_BLOCK}function Bt(kt,Nt){var Ot=this;if(this._opts=kt=kt||{},this._chunkSize=kt.chunkSize||o.Z_DEFAULT_CHUNK,rt.call(this,kt),kt.flush&&!Tt(kt.flush))throw new Error("Invalid flush flag: "+kt.flush);if(kt.finishFlush&&!Tt(kt.finishFlush))throw new Error("Invalid flush flag: "+kt.finishFlush);if(this._flushFlag=kt.flush||it.Z_NO_FLUSH,this._finishFlushFlag=kt.finishFlush!==void 0?kt.finishFlush:it.Z_FINISH,kt.chunkSize&&(kt.chunkSizeo.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+kt.chunkSize);if(kt.windowBits&&(kt.windowBitso.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+kt.windowBits);if(kt.level&&(kt.levelo.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+kt.level);if(kt.memLevel&&(kt.memLevelo.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+kt.memLevel);if(kt.strategy&&kt.strategy!=o.Z_FILTERED&&kt.strategy!=o.Z_HUFFMAN_ONLY&&kt.strategy!=o.Z_RLE&&kt.strategy!=o.Z_FIXED&&kt.strategy!=o.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+kt.strategy);if(kt.dictionary&&!nt.isBuffer(kt.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._handle=new it.Zlib(Nt);var Jt=this;this._hadError=!1,this._handle.onerror=function(Pt,zt){xt(Jt),Jt._hadError=!0;var en=new Error(Pt);en.errno=zt,en.code=o.codes[zt],Jt.emit("error",en)};var Dt=o.Z_DEFAULT_COMPRESSION;typeof kt.level=="number"&&(Dt=kt.level);var Et=o.Z_DEFAULT_STRATEGY;typeof kt.strategy=="number"&&(Et=kt.strategy),this._handle.init(kt.windowBits||o.Z_DEFAULT_WINDOWBITS,Dt,kt.memLevel||o.Z_DEFAULT_MEMLEVEL,Et,kt.dictionary),this._buffer=nt.allocUnsafe(this._chunkSize),this._offset=0,this._level=Dt,this._strategy=Et,this.once("end",this.close),Object.defineProperty(this,"_closed",{get:function(){return!Ot._handle},configurable:!0,enumerable:!0})}function xt(kt,Nt){Nt&&tt.nextTick(Nt),kt._handle&&(kt._handle.close(),kt._handle=null)}function Ct(kt){kt.emit("close")}Object.defineProperty(o,"codes",{enumerable:!0,value:Object.freeze(ct),writable:!1}),o.Deflate=Ft,o.Inflate=mt,o.Gzip=vt,o.Gunzip=At,o.DeflateRaw=Lt,o.InflateRaw=Rt,o.Unzip=St,o.createDeflate=function(kt){return new Ft(kt)},o.createInflate=function(kt){return new mt(kt)},o.createDeflateRaw=function(kt){return new Lt(kt)},o.createInflateRaw=function(kt){return new Rt(kt)},o.createGzip=function(kt){return new vt(kt)},o.createGunzip=function(kt){return new At(kt)},o.createUnzip=function(kt){return new St(kt)},o.deflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Ft(Nt),kt,Ot)},o.deflateSync=function(kt,Nt){return Ut(new Ft(Nt),kt)},o.gzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new vt(Nt),kt,Ot)},o.gzipSync=function(kt,Nt){return Ut(new vt(Nt),kt)},o.deflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Lt(Nt),kt,Ot)},o.deflateRawSync=function(kt,Nt){return Ut(new Lt(Nt),kt)},o.unzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new St(Nt),kt,Ot)},o.unzipSync=function(kt,Nt){return Ut(new St(Nt),kt)},o.inflate=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new mt(Nt),kt,Ot)},o.inflateSync=function(kt,Nt){return Ut(new mt(Nt),kt)},o.gunzip=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new At(Nt),kt,Ot)},o.gunzipSync=function(kt,Nt){return Ut(new At(Nt),kt)},o.inflateRaw=function(kt,Nt,Ot){return typeof Nt=="function"&&(Ot=Nt,Nt={}),yt(new Rt(Nt),kt,Ot)},o.inflateRawSync=function(kt,Nt){return Ut(new Rt(Nt),kt)},ot.inherits(Bt,rt),Bt.prototype.params=function(kt,Nt,Ot){if(kto.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+kt);if(Nt!=o.Z_FILTERED&&Nt!=o.Z_HUFFMAN_ONLY&&Nt!=o.Z_RLE&&Nt!=o.Z_FIXED&&Nt!=o.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+Nt);if(this._level!==kt||this._strategy!==Nt){var Jt=this;this.flush(it.Z_SYNC_FLUSH,function(){st(Jt._handle,"zlib binding closed"),Jt._handle.params(kt,Nt),Jt._hadError||(Jt._level=kt,Jt._strategy=Nt,Ot&&Ot())})}else tt.nextTick(Ot)},Bt.prototype.reset=function(){return st(this._handle,"zlib binding closed"),this._handle.reset()},Bt.prototype._flush=function(kt){this._transform(nt.alloc(0),"",kt)},Bt.prototype.flush=function(kt,Nt){var Ot=this,Jt=this._writableState;(typeof kt=="function"||kt===void 0&&!Nt)&&(Nt=kt,kt=it.Z_FULL_FLUSH),Jt.ended?Nt&&tt.nextTick(Nt):Jt.ending?Nt&&this.once("end",Nt):Jt.needDrain?Nt&&this.once("drain",function(){return Ot.flush(kt,Nt)}):(this._flushFlag=kt,this.write(nt.alloc(0),"",Nt))},Bt.prototype.close=function(kt){xt(this,kt),tt.nextTick(Ct,this)},Bt.prototype._transform=function(kt,Nt,Ot){var Jt,Dt=this._writableState,Et=(Dt.ending||Dt.ended)&&(!kt||Dt.length===kt.length);return kt===null||nt.isBuffer(kt)?this._handle?(Et?Jt=this._finishFlushFlag:(Jt=this._flushFlag,kt.length>=Dt.length&&(this._flushFlag=this._opts.flush||it.Z_NO_FLUSH)),void this._processChunk(kt,Jt,Ot)):Ot(new Error("zlib binding closed")):Ot(new Error("invalid input"))},Bt.prototype._processChunk=function(kt,Nt,Ot){var Jt=kt&&kt.length,Dt=this._chunkSize-this._offset,Et=0,Pt=this,zt=typeof Ot=="function";if(!zt){var en,Kt=[],nn=0;this.on("error",function($t){en=$t}),st(this._handle,"zlib binding closed");do var Zt=this._handle.writeSync(Nt,kt,Et,Jt,this._buffer,this._offset,Dt);while(!this._hadError&&It(Zt[0],Zt[1]));if(this._hadError)throw en;if(nn>=at)throw xt(this),new RangeError(lt);var jt=nt.concat(Kt,nn);return xt(this),jt}st(this._handle,"zlib binding closed");var Vt=this._handle.write(Nt,kt,Et,Jt,this._buffer,this._offset,Dt);function It($t,Ht){if(this&&(this.buffer=null,this.callback=null),!Pt._hadError){var qt=Dt-Ht;if(st(qt>=0,"have should not go down"),qt>0){var on=Pt._buffer.slice(Pt._offset,Pt._offset+qt);Pt._offset+=qt,zt?Pt.push(on):(Kt.push(on),nn+=on.length)}if((Ht===0||Pt._offset>=Pt._chunkSize)&&(Dt=Pt._chunkSize,Pt._offset=0,Pt._buffer=nt.allocUnsafe(Pt._chunkSize)),Ht===0){if(Et+=Jt-$t,Jt=$t,!zt)return!0;var Xt=Pt._handle.write(Nt,kt,Et,Jt,Pt._buffer,Pt._offset,Pt._chunkSize);return Xt.callback=It,void(Xt.buffer=kt)}if(!zt)return!1;Ot()}}Vt.buffer=kt,Vt.callback=It},ot.inherits(Ft,Bt),ot.inherits(mt,Bt),ot.inherits(vt,Bt),ot.inherits(At,Bt),ot.inherits(Lt,Bt),ot.inherits(Rt,Bt),ot.inherits(St,Bt)}).call(this,et(2))},function(s,o,et){s.exports=nt;var tt=et(20).EventEmitter;function nt(){tt.call(this)}et(7)(nt,tt),nt.Readable=et(31),nt.Writable=et(170),nt.Duplex=et(171),nt.Transform=et(172),nt.PassThrough=et(173),nt.Stream=nt,nt.prototype.pipe=function(rt,it){var ot=this;function st(pt){rt.writable&&rt.write(pt)===!1&&ot.pause&&ot.pause()}function at(){ot.readable&&ot.resume&&ot.resume()}ot.on("data",st),rt.on("drain",at),rt._isStdio||it&&it.end===!1||(ot.on("end",ut),ot.on("close",dt));var lt=!1;function ut(){lt||(lt=!0,rt.end())}function dt(){lt||(lt=!0,typeof rt.destroy=="function"&&rt.destroy())}function ht(pt){if(ct(),tt.listenerCount(this,"error")===0)throw pt}function ct(){ot.removeListener("data",st),rt.removeListener("drain",at),ot.removeListener("end",ut),ot.removeListener("close",dt),ot.removeListener("error",ht),rt.removeListener("error",ht),ot.removeListener("end",ct),ot.removeListener("close",ct),rt.removeListener("close",ct)}return ot.on("error",ht),rt.on("error",ht),ot.on("end",ct),ot.on("close",ct),rt.on("close",ct),rt.emit("pipe",ot),rt}},function(s,o){var et={}.toString;s.exports=Array.isArray||function(tt){return et.call(tt)=="[object Array]"}},function(s,o){},function(s,o,et){var tt=et(46).Buffer,nt=et(168);s.exports=function(){function rt(){(function(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")})(this,rt),this.head=null,this.tail=null,this.length=0}return rt.prototype.push=function(it){var ot={data:it,next:null};this.length>0?this.tail.next=ot:this.head=ot,this.tail=ot,++this.length},rt.prototype.unshift=function(it){var ot={data:it,next:this.head};this.length===0&&(this.tail=ot),this.head=ot,++this.length},rt.prototype.shift=function(){if(this.length!==0){var it=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,it}},rt.prototype.clear=function(){this.head=this.tail=null,this.length=0},rt.prototype.join=function(it){if(this.length===0)return"";for(var ot=this.head,st=""+ot.data;ot=ot.next;)st+=it+ot.data;return st},rt.prototype.concat=function(it){if(this.length===0)return tt.alloc(0);if(this.length===1)return this.head.data;for(var ot,st,at,lt=tt.allocUnsafe(it>>>0),ut=this.head,dt=0;ut;)ot=ut.data,st=lt,at=dt,ot.copy(st,at),dt+=ut.data.length,ut=ut.next;return lt},rt}(),nt&&nt.inspect&&nt.inspect.custom&&(s.exports.prototype[nt.inspect.custom]=function(){var rt=nt.inspect({length:this.length});return this.constructor.name+" "+rt})},function(s,o){},function(s,o,et){s.exports=rt;var tt=et(72),nt=Object.create(et(32));function rt(it){if(!(this instanceof rt))return new rt(it);tt.call(this,it)}nt.inherits=et(7),nt.inherits(rt,tt),rt.prototype._transform=function(it,ot,st){st(null,it)}},function(s,o,et){s.exports=et(47)},function(s,o,et){s.exports=et(22)},function(s,o,et){s.exports=et(31).Transform},function(s,o,et){s.exports=et(31).PassThrough},function(s,o,et){(function(tt,nt){var rt=et(73),it=et(176),ot=et(177),st=et(180),at=et(183);for(var lt in at)o[lt]=at[lt];o.NONE=0,o.DEFLATE=1,o.INFLATE=2,o.GZIP=3,o.GUNZIP=4,o.DEFLATERAW=5,o.INFLATERAW=6,o.UNZIP=7;function ut(dt){if(typeof dt!="number"||dto.UNZIP)throw new TypeError("Bad argument");this.dictionary=null,this.err=0,this.flush=0,this.init_done=!1,this.level=0,this.memLevel=0,this.mode=dt,this.strategy=0,this.windowBits=0,this.write_in_progress=!1,this.pending_close=!1,this.gzip_id_bytes_read=0}ut.prototype.close=function(){this.write_in_progress?this.pending_close=!0:(this.pending_close=!1,rt(this.init_done,"close before init"),rt(this.mode<=o.UNZIP),this.mode===o.DEFLATE||this.mode===o.GZIP||this.mode===o.DEFLATERAW?ot.deflateEnd(this.strm):this.mode!==o.INFLATE&&this.mode!==o.GUNZIP&&this.mode!==o.INFLATERAW&&this.mode!==o.UNZIP||st.inflateEnd(this.strm),this.mode=o.NONE,this.dictionary=null)},ut.prototype.write=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!0,dt,ht,ct,pt,ft,gt,yt)},ut.prototype.writeSync=function(dt,ht,ct,pt,ft,gt,yt){return this._write(!1,dt,ht,ct,pt,ft,gt,yt)},ut.prototype._write=function(dt,ht,ct,pt,ft,gt,yt,Ut){if(rt.equal(arguments.length,8),rt(this.init_done,"write before init"),rt(this.mode!==o.NONE,"already finalized"),rt.equal(!1,this.write_in_progress,"write already in progress"),rt.equal(!1,this.pending_close,"close is pending"),this.write_in_progress=!0,rt.equal(!1,ht===void 0,"must provide flush value"),this.write_in_progress=!0,ht!==o.Z_NO_FLUSH&&ht!==o.Z_PARTIAL_FLUSH&&ht!==o.Z_SYNC_FLUSH&&ht!==o.Z_FULL_FLUSH&&ht!==o.Z_FINISH&&ht!==o.Z_BLOCK)throw new Error("Invalid flush value");if(ct==null&&(ct=tt.alloc(0),ft=0,pt=0),this.strm.avail_in=ft,this.strm.input=ct,this.strm.next_in=pt,this.strm.avail_out=Ut,this.strm.output=gt,this.strm.next_out=yt,this.flush=ht,!dt)return this._process(),this._checkError()?this._afterSync():void 0;var Ft=this;return nt.nextTick(function(){Ft._process(),Ft._after()}),this},ut.prototype._afterSync=function(){var dt=this.strm.avail_out,ht=this.strm.avail_in;return this.write_in_progress=!1,[ht,dt]},ut.prototype._process=function(){var dt=null;switch(this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflate(this.strm,this.flush);break;case o.UNZIP:switch(this.strm.avail_in>0&&(dt=this.strm.next_in),this.gzip_id_bytes_read){case 0:if(dt===null)break;if(this.strm.input[dt]!==31){this.mode=o.INFLATE;break}if(this.gzip_id_bytes_read=1,dt++,this.strm.avail_in===1)break;case 1:if(dt===null)break;this.strm.input[dt]===139?(this.gzip_id_bytes_read=2,this.mode=o.GUNZIP):this.mode=o.INFLATE;break;default:throw new Error("invalid number of gzip magic number bytes read")}case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:for(this.err=st.inflate(this.strm,this.flush),this.err===o.Z_NEED_DICT&&this.dictionary&&(this.err=st.inflateSetDictionary(this.strm,this.dictionary),this.err===o.Z_OK?this.err=st.inflate(this.strm,this.flush):this.err===o.Z_DATA_ERROR&&(this.err=o.Z_NEED_DICT));this.strm.avail_in>0&&this.mode===o.GUNZIP&&this.err===o.Z_STREAM_END&&this.strm.next_in[0]!==0;)this.reset(),this.err=st.inflate(this.strm,this.flush);break;default:throw new Error("Unknown mode "+this.mode)}},ut.prototype._checkError=function(){switch(this.err){case o.Z_OK:case o.Z_BUF_ERROR:if(this.strm.avail_out!==0&&this.flush===o.Z_FINISH)return this._error("unexpected end of file"),!1;break;case o.Z_STREAM_END:break;case o.Z_NEED_DICT:return this.dictionary==null?this._error("Missing dictionary"):this._error("Bad dictionary"),!1;default:return this._error("Zlib error"),!1}return!0},ut.prototype._after=function(){if(this._checkError()){var dt=this.strm.avail_out,ht=this.strm.avail_in;this.write_in_progress=!1,this.callback(ht,dt),this.pending_close&&this.close()}},ut.prototype._error=function(dt){this.strm.msg&&(dt=this.strm.msg),this.onerror(dt,this.err),this.write_in_progress=!1,this.pending_close&&this.close()},ut.prototype.init=function(dt,ht,ct,pt,ft){rt(arguments.length===4||arguments.length===5,"init(windowBits, level, memLevel, strategy, [dictionary])"),rt(dt>=8&&dt<=15,"invalid windowBits"),rt(ht>=-1&&ht<=9,"invalid compression level"),rt(ct>=1&&ct<=9,"invalid memlevel"),rt(pt===o.Z_FILTERED||pt===o.Z_HUFFMAN_ONLY||pt===o.Z_RLE||pt===o.Z_FIXED||pt===o.Z_DEFAULT_STRATEGY,"invalid strategy"),this._init(ht,dt,ct,pt,ft),this._setDictionary()},ut.prototype.params=function(){throw new Error("deflateParams Not supported")},ut.prototype.reset=function(){this._reset(),this._setDictionary()},ut.prototype._init=function(dt,ht,ct,pt,ft){switch(this.level=dt,this.windowBits=ht,this.memLevel=ct,this.strategy=pt,this.flush=o.Z_NO_FLUSH,this.err=o.Z_OK,this.mode!==o.GZIP&&this.mode!==o.GUNZIP||(this.windowBits+=16),this.mode===o.UNZIP&&(this.windowBits+=32),this.mode!==o.DEFLATERAW&&this.mode!==o.INFLATERAW||(this.windowBits=-1*this.windowBits),this.strm=new it,this.mode){case o.DEFLATE:case o.GZIP:case o.DEFLATERAW:this.err=ot.deflateInit2(this.strm,this.level,o.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case o.INFLATE:case o.GUNZIP:case o.INFLATERAW:case o.UNZIP:this.err=st.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}this.err!==o.Z_OK&&this._error("Init error"),this.dictionary=ft,this.write_in_progress=!1,this.init_done=!0},ut.prototype._setDictionary=function(){if(this.dictionary!=null){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:this.err=ot.deflateSetDictionary(this.strm,this.dictionary)}this.err!==o.Z_OK&&this._error("Failed to set dictionary")}},ut.prototype._reset=function(){switch(this.err=o.Z_OK,this.mode){case o.DEFLATE:case o.DEFLATERAW:case o.GZIP:this.err=ot.deflateReset(this.strm);break;case o.INFLATE:case o.INFLATERAW:case o.GUNZIP:this.err=st.inflateReset(this.strm)}this.err!==o.Z_OK&&this._error("Failed to reset stream")},o.Zlib=ut}).call(this,et(5).Buffer,et(2))},function(s,o,et){var tt=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable;function it(ot){if(ot==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(ot)}s.exports=function(){try{if(!Object.assign)return!1;var ot=new String("abc");if(ot[5]="de",Object.getOwnPropertyNames(ot)[0]==="5")return!1;for(var st={},at=0;at<10;at++)st["_"+String.fromCharCode(at)]=at;if(Object.getOwnPropertyNames(st).map(function(ut){return st[ut]}).join("")!=="0123456789")return!1;var lt={};return"abcdefghijklmnopqrst".split("").forEach(function(ut){lt[ut]=ut}),Object.keys(Object.assign({},lt)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}()?Object.assign:function(ot,st){for(var at,lt,ut=it(ot),dt=1;dt4?9:0)}function ut(Rt){for(var St=Rt.length;--St>=0;)Rt[St]=0}function dt(Rt){var St=Rt.state,Tt=St.pending;Tt>Rt.avail_out&&(Tt=Rt.avail_out),Tt!==0&&(nt.arraySet(Rt.output,St.pending_buf,St.pending_out,Tt,Rt.next_out),Rt.next_out+=Tt,St.pending_out+=Tt,Rt.total_out+=Tt,Rt.avail_out-=Tt,St.pending-=Tt,St.pending===0&&(St.pending_out=0))}function ht(Rt,St){rt._tr_flush_block(Rt,Rt.block_start>=0?Rt.block_start:-1,Rt.strstart-Rt.block_start,St),Rt.block_start=Rt.strstart,dt(Rt.strm)}function ct(Rt,St){Rt.pending_buf[Rt.pending++]=St}function pt(Rt,St){Rt.pending_buf[Rt.pending++]=St>>>8&255,Rt.pending_buf[Rt.pending++]=255&St}function ft(Rt,St){var Tt,Bt,xt=Rt.max_chain_length,Ct=Rt.strstart,kt=Rt.prev_length,Nt=Rt.nice_match,Ot=Rt.strstart>Rt.w_size-262?Rt.strstart-(Rt.w_size-262):0,Jt=Rt.window,Dt=Rt.w_mask,Et=Rt.prev,Pt=Rt.strstart+258,zt=Jt[Ct+kt-1],en=Jt[Ct+kt];Rt.prev_length>=Rt.good_match&&(xt>>=2),Nt>Rt.lookahead&&(Nt=Rt.lookahead);do if(Jt[(Tt=St)+kt]===en&&Jt[Tt+kt-1]===zt&&Jt[Tt]===Jt[Ct]&&Jt[++Tt]===Jt[Ct+1]){Ct+=2,Tt++;do;while(Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Jt[++Ct]===Jt[++Tt]&&Ctkt){if(Rt.match_start=St,kt=Bt,Bt>=Nt)break;zt=Jt[Ct+kt-1],en=Jt[Ct+kt]}}while((St=Et[St&Dt])>Ot&&--xt!=0);return kt<=Rt.lookahead?kt:Rt.lookahead}function gt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt,Et=Rt.w_size;do{if(xt=Rt.window_size-Rt.lookahead-Rt.strstart,Rt.strstart>=Et+(Et-262)){nt.arraySet(Rt.window,Rt.window,Et,Et,0),Rt.match_start-=Et,Rt.strstart-=Et,Rt.block_start-=Et,St=Tt=Rt.hash_size;do Bt=Rt.head[--St],Rt.head[St]=Bt>=Et?Bt-Et:0;while(--Tt);St=Tt=Et;do Bt=Rt.prev[--St],Rt.prev[St]=Bt>=Et?Bt-Et:0;while(--Tt);xt+=Et}if(Rt.strm.avail_in===0)break;if(kt=Rt.strm,Nt=Rt.window,Ot=Rt.strstart+Rt.lookahead,Jt=xt,Dt=void 0,(Dt=kt.avail_in)>Jt&&(Dt=Jt),Tt=Dt===0?0:(kt.avail_in-=Dt,nt.arraySet(Nt,kt.input,kt.next_in,Dt,Ot),kt.state.wrap===1?kt.adler=it(kt.adler,Nt,Dt,Ot):kt.state.wrap===2&&(kt.adler=ot(kt.adler,Nt,Dt,Ot)),kt.next_in+=Dt,kt.total_in+=Dt,Dt),Rt.lookahead+=Tt,Rt.lookahead+Rt.insert>=3)for(Ct=Rt.strstart-Rt.insert,Rt.ins_h=Rt.window[Ct],Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<=3)if(Bt=rt._tr_tally(Rt,Rt.strstart-Rt.match_start,Rt.match_length-3),Rt.lookahead-=Rt.match_length,Rt.match_length<=Rt.max_lazy_match&&Rt.lookahead>=3){Rt.match_length--;do Rt.strstart++,Rt.ins_h=(Rt.ins_h<=3&&(Rt.ins_h=(Rt.ins_h<4096)&&(Rt.match_length=2)),Rt.prev_length>=3&&Rt.match_length<=Rt.prev_length){xt=Rt.strstart+Rt.lookahead-3,Bt=rt._tr_tally(Rt,Rt.strstart-1-Rt.prev_match,Rt.prev_length-3),Rt.lookahead-=Rt.prev_length-1,Rt.prev_length-=2;do++Rt.strstart<=xt&&(Rt.ins_h=(Rt.ins_h<15&&(kt=2,Bt-=16),xt<1||xt>9||Tt!==8||Bt<8||Bt>15||St<0||St>9||Ct<0||Ct>4)return at(Rt,-2);Bt===8&&(Bt=9);var Nt=new mt;return Rt.state=Nt,Nt.strm=Rt,Nt.wrap=kt,Nt.gzhead=null,Nt.w_bits=Bt,Nt.w_size=1<Rt.pending_buf_size-5&&(Tt=Rt.pending_buf_size-5);;){if(Rt.lookahead<=1){if(gt(Rt),Rt.lookahead===0&&St===0)return 1;if(Rt.lookahead===0)break}Rt.strstart+=Rt.lookahead,Rt.lookahead=0;var Bt=Rt.block_start+Tt;if((Rt.strstart===0||Rt.strstart>=Bt)&&(Rt.lookahead=Rt.strstart-Bt,Rt.strstart=Bt,ht(Rt,!1),Rt.strm.avail_out===0)||Rt.strstart-Rt.block_start>=Rt.w_size-262&&(ht(Rt,!1),Rt.strm.avail_out===0))return 1}return Rt.insert=0,St===4?(ht(Rt,!0),Rt.strm.avail_out===0?3:4):(Rt.strstart>Rt.block_start&&(ht(Rt,!1),Rt.strm.avail_out),1)}),new Ft(4,4,8,4,yt),new Ft(4,5,16,8,yt),new Ft(4,6,32,32,yt),new Ft(4,4,16,16,Ut),new Ft(8,16,32,32,Ut),new Ft(8,16,128,128,Ut),new Ft(8,32,128,256,Ut),new Ft(32,128,258,1024,Ut),new Ft(32,258,258,4096,Ut)],o.deflateInit=function(Rt,St){return Lt(Rt,St,8,15,8,0)},o.deflateInit2=Lt,o.deflateReset=At,o.deflateResetKeep=vt,o.deflateSetHeader=function(Rt,St){return Rt&&Rt.state?Rt.state.wrap!==2?-2:(Rt.state.gzhead=St,0):-2},o.deflate=function(Rt,St){var Tt,Bt,xt,Ct;if(!Rt||!Rt.state||St>5||St<0)return Rt?at(Rt,-2):-2;if(Bt=Rt.state,!Rt.output||!Rt.input&&Rt.avail_in!==0||Bt.status===666&&St!==4)return at(Rt,Rt.avail_out===0?-5:-2);if(Bt.strm=Rt,Tt=Bt.last_flush,Bt.last_flush=St,Bt.status===42)if(Bt.wrap===2)Rt.adler=0,ct(Bt,31),ct(Bt,139),ct(Bt,8),Bt.gzhead?(ct(Bt,(Bt.gzhead.text?1:0)+(Bt.gzhead.hcrc?2:0)+(Bt.gzhead.extra?4:0)+(Bt.gzhead.name?8:0)+(Bt.gzhead.comment?16:0)),ct(Bt,255&Bt.gzhead.time),ct(Bt,Bt.gzhead.time>>8&255),ct(Bt,Bt.gzhead.time>>16&255),ct(Bt,Bt.gzhead.time>>24&255),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,255&Bt.gzhead.os),Bt.gzhead.extra&&Bt.gzhead.extra.length&&(ct(Bt,255&Bt.gzhead.extra.length),ct(Bt,Bt.gzhead.extra.length>>8&255)),Bt.gzhead.hcrc&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending,0)),Bt.gzindex=0,Bt.status=69):(ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,0),ct(Bt,Bt.level===9?2:Bt.strategy>=2||Bt.level<2?4:0),ct(Bt,3),Bt.status=113);else{var kt=8+(Bt.w_bits-8<<4)<<8;kt|=(Bt.strategy>=2||Bt.level<2?0:Bt.level<6?1:Bt.level===6?2:3)<<6,Bt.strstart!==0&&(kt|=32),kt+=31-kt%31,Bt.status=113,pt(Bt,kt),Bt.strstart!==0&&(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),Rt.adler=1}if(Bt.status===69)if(Bt.gzhead.extra){for(xt=Bt.pending;Bt.gzindex<(65535&Bt.gzhead.extra.length)&&(Bt.pending!==Bt.pending_buf_size||(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending!==Bt.pending_buf_size));)ct(Bt,255&Bt.gzhead.extra[Bt.gzindex]),Bt.gzindex++;Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Bt.gzindex===Bt.gzhead.extra.length&&(Bt.gzindex=0,Bt.status=73)}else Bt.status=73;if(Bt.status===73)if(Bt.gzhead.name){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.gzindex=0,Bt.status=91)}else Bt.status=91;if(Bt.status===91)if(Bt.gzhead.comment){xt=Bt.pending;do{if(Bt.pending===Bt.pending_buf_size&&(Bt.gzhead.hcrc&&Bt.pending>xt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),dt(Rt),xt=Bt.pending,Bt.pending===Bt.pending_buf_size)){Ct=1;break}Ct=Bt.gzindexxt&&(Rt.adler=ot(Rt.adler,Bt.pending_buf,Bt.pending-xt,xt)),Ct===0&&(Bt.status=103)}else Bt.status=103;if(Bt.status===103&&(Bt.gzhead.hcrc?(Bt.pending+2>Bt.pending_buf_size&&dt(Rt),Bt.pending+2<=Bt.pending_buf_size&&(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),Rt.adler=0,Bt.status=113)):Bt.status=113),Bt.pending!==0){if(dt(Rt),Rt.avail_out===0)return Bt.last_flush=-1,0}else if(Rt.avail_in===0&<(St)<=lt(Tt)&&St!==4)return at(Rt,-5);if(Bt.status===666&&Rt.avail_in!==0)return at(Rt,-5);if(Rt.avail_in!==0||Bt.lookahead!==0||St!==0&&Bt.status!==666){var Nt=Bt.strategy===2?function(Ot,Jt){for(var Dt;;){if(Ot.lookahead===0&&(gt(Ot),Ot.lookahead===0)){if(Jt===0)return 1;break}if(Ot.match_length=0,Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++,Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Jt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):Bt.strategy===3?function(Ot,Jt){for(var Dt,Et,Pt,zt,en=Ot.window;;){if(Ot.lookahead<=258){if(gt(Ot),Ot.lookahead<=258&&Jt===0)return 1;if(Ot.lookahead===0)break}if(Ot.match_length=0,Ot.lookahead>=3&&Ot.strstart>0&&(Et=en[Pt=Ot.strstart-1])===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]){zt=Ot.strstart+258;do;while(Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&Et===en[++Pt]&&PtOt.lookahead&&(Ot.match_length=Ot.lookahead)}if(Ot.match_length>=3?(Dt=rt._tr_tally(Ot,1,Ot.match_length-3),Ot.lookahead-=Ot.match_length,Ot.strstart+=Ot.match_length,Ot.match_length=0):(Dt=rt._tr_tally(Ot,0,Ot.window[Ot.strstart]),Ot.lookahead--,Ot.strstart++),Dt&&(ht(Ot,!1),Ot.strm.avail_out===0))return 1}return Ot.insert=0,Jt===4?(ht(Ot,!0),Ot.strm.avail_out===0?3:4):Ot.last_lit&&(ht(Ot,!1),Ot.strm.avail_out===0)?1:2}(Bt,St):tt[Bt.level].func(Bt,St);if(Nt!==3&&Nt!==4||(Bt.status=666),Nt===1||Nt===3)return Rt.avail_out===0&&(Bt.last_flush=-1),0;if(Nt===2&&(St===1?rt._tr_align(Bt):St!==5&&(rt._tr_stored_block(Bt,0,0,!1),St===3&&(ut(Bt.head),Bt.lookahead===0&&(Bt.strstart=0,Bt.block_start=0,Bt.insert=0))),dt(Rt),Rt.avail_out===0))return Bt.last_flush=-1,0}return St!==4?0:Bt.wrap<=0?1:(Bt.wrap===2?(ct(Bt,255&Rt.adler),ct(Bt,Rt.adler>>8&255),ct(Bt,Rt.adler>>16&255),ct(Bt,Rt.adler>>24&255),ct(Bt,255&Rt.total_in),ct(Bt,Rt.total_in>>8&255),ct(Bt,Rt.total_in>>16&255),ct(Bt,Rt.total_in>>24&255)):(pt(Bt,Rt.adler>>>16),pt(Bt,65535&Rt.adler)),dt(Rt),Bt.wrap>0&&(Bt.wrap=-Bt.wrap),Bt.pending!==0?0:1)},o.deflateEnd=function(Rt){var St;return Rt&&Rt.state?(St=Rt.state.status)!==42&&St!==69&&St!==73&&St!==91&&St!==103&&St!==113&&St!==666?at(Rt,-2):(Rt.state=null,St===113?at(Rt,-3):0):-2},o.deflateSetDictionary=function(Rt,St){var Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt=St.length;if(!Rt||!Rt.state||(Ct=(Tt=Rt.state).wrap)===2||Ct===1&&Tt.status!==42||Tt.lookahead)return-2;for(Ct===1&&(Rt.adler=it(Rt.adler,St,Dt,0)),Tt.wrap=0,Dt>=Tt.w_size&&(Ct===0&&(ut(Tt.head),Tt.strstart=0,Tt.block_start=0,Tt.insert=0),Jt=new nt.Buf8(Tt.w_size),nt.arraySet(Jt,St,Dt-Tt.w_size,Tt.w_size,0),St=Jt,Dt=Tt.w_size),kt=Rt.avail_in,Nt=Rt.next_in,Ot=Rt.input,Rt.avail_in=Dt,Rt.next_in=0,Rt.input=St,gt(Tt);Tt.lookahead>=3;){Bt=Tt.strstart,xt=Tt.lookahead-2;do Tt.ins_h=(Tt.ins_h<=0;)Et[Pt]=0}var rt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],it=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ot=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],st=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],at=new Array(576);nt(at);var lt=new Array(60);nt(lt);var ut=new Array(512);nt(ut);var dt=new Array(256);nt(dt);var ht=new Array(29);nt(ht);var ct,pt,ft,gt=new Array(30);function yt(Et,Pt,zt,en,Kt){this.static_tree=Et,this.extra_bits=Pt,this.extra_base=zt,this.elems=en,this.max_length=Kt,this.has_stree=Et&&Et.length}function Ut(Et,Pt){this.dyn_tree=Et,this.max_code=0,this.stat_desc=Pt}function Ft(Et){return Et<256?ut[Et]:ut[256+(Et>>>7)]}function mt(Et,Pt){Et.pending_buf[Et.pending++]=255&Pt,Et.pending_buf[Et.pending++]=Pt>>>8&255}function vt(Et,Pt,zt){Et.bi_valid>16-zt?(Et.bi_buf|=Pt<>16-Et.bi_valid,Et.bi_valid+=zt-16):(Et.bi_buf|=Pt<>>=1,zt<<=1;while(--Pt>0);return zt>>>1}function Rt(Et,Pt,zt){var en,Kt,nn=new Array(16),Zt=0;for(en=1;en<=15;en++)nn[en]=Zt=Zt+zt[en-1]<<1;for(Kt=0;Kt<=Pt;Kt++){var jt=Et[2*Kt+1];jt!==0&&(Et[2*Kt]=Lt(nn[jt]++,jt))}}function St(Et){var Pt;for(Pt=0;Pt<286;Pt++)Et.dyn_ltree[2*Pt]=0;for(Pt=0;Pt<30;Pt++)Et.dyn_dtree[2*Pt]=0;for(Pt=0;Pt<19;Pt++)Et.bl_tree[2*Pt]=0;Et.dyn_ltree[512]=1,Et.opt_len=Et.static_len=0,Et.last_lit=Et.matches=0}function Tt(Et){Et.bi_valid>8?mt(Et,Et.bi_buf):Et.bi_valid>0&&(Et.pending_buf[Et.pending++]=Et.bi_buf),Et.bi_buf=0,Et.bi_valid=0}function Bt(Et,Pt,zt,en){var Kt=2*Pt,nn=2*zt;return Et[Kt]>1;zt>=1;zt--)xt(Et,nn,zt);Kt=Vt;do zt=Et.heap[1],Et.heap[1]=Et.heap[Et.heap_len--],xt(Et,nn,1),en=Et.heap[1],Et.heap[--Et.heap_max]=zt,Et.heap[--Et.heap_max]=en,nn[2*Kt]=nn[2*zt]+nn[2*en],Et.depth[Kt]=(Et.depth[zt]>=Et.depth[en]?Et.depth[zt]:Et.depth[en])+1,nn[2*zt+1]=nn[2*en+1]=Kt,Et.heap[1]=Kt++,xt(Et,nn,1);while(Et.heap_len>=2);Et.heap[--Et.heap_max]=Et.heap[1],function($t,Ht){var qt,on,Xt,dn,_n,Fn,Un=Ht.dyn_tree,On=Ht.max_code,gn=Ht.stat_desc.static_tree,hn=Ht.stat_desc.has_stree,wn=Ht.stat_desc.extra_bits,Zn=Ht.stat_desc.extra_base,Pn=Ht.stat_desc.max_length,$n=0;for(dn=0;dn<=15;dn++)$t.bl_count[dn]=0;for(Un[2*$t.heap[$t.heap_max]+1]=0,qt=$t.heap_max+1;qt<573;qt++)(dn=Un[2*Un[2*(on=$t.heap[qt])+1]+1]+1)>Pn&&(dn=Pn,$n++),Un[2*on+1]=dn,on>On||($t.bl_count[dn]++,_n=0,on>=Zn&&(_n=wn[on-Zn]),Fn=Un[2*on],$t.opt_len+=Fn*(dn+_n),hn&&($t.static_len+=Fn*(gn[2*on+1]+_n)));if($n!==0){do{for(dn=Pn-1;$t.bl_count[dn]===0;)dn--;$t.bl_count[dn]--,$t.bl_count[dn+1]+=2,$t.bl_count[Pn]--,$n-=2}while($n>0);for(dn=Pn;dn!==0;dn--)for(on=$t.bl_count[dn];on!==0;)(Xt=$t.heap[--qt])>On||(Un[2*Xt+1]!==dn&&($t.opt_len+=(dn-Un[2*Xt+1])*Un[2*Xt],Un[2*Xt+1]=dn),on--)}}(Et,Pt),Rt(nn,It,Et.bl_count)}function Nt(Et,Pt,zt){var en,Kt,nn=-1,Zt=Pt[1],jt=0,Vt=7,It=4;for(Zt===0&&(Vt=138,It=3),Pt[2*(zt+1)+1]=65535,en=0;en<=zt;en++)Kt=Zt,Zt=Pt[2*(en+1)+1],++jt>=7;Kt<30;Kt++)for(gt[Kt]=nn<<7,Pt=0;Pt<1<0?(Et.strm.data_type===2&&(Et.strm.data_type=function(jt){var Vt,It=4093624447;for(Vt=0;Vt<=31;Vt++,It>>>=1)if(1&It&&jt.dyn_ltree[2*Vt]!==0)return 0;if(jt.dyn_ltree[18]!==0||jt.dyn_ltree[20]!==0||jt.dyn_ltree[26]!==0)return 1;for(Vt=32;Vt<256;Vt++)if(jt.dyn_ltree[2*Vt]!==0)return 1;return 0}(Et)),kt(Et,Et.l_desc),kt(Et,Et.d_desc),Zt=function(jt){var Vt;for(Nt(jt,jt.dyn_ltree,jt.l_desc.max_code),Nt(jt,jt.dyn_dtree,jt.d_desc.max_code),kt(jt,jt.bl_desc),Vt=18;Vt>=3&&jt.bl_tree[2*st[Vt]+1]===0;Vt--);return jt.opt_len+=3*(Vt+1)+5+5+4,Vt}(Et),Kt=Et.opt_len+3+7>>>3,(nn=Et.static_len+3+7>>>3)<=Kt&&(Kt=nn)):Kt=nn=zt+5,zt+4<=Kt&&Pt!==-1?Dt(Et,Pt,zt,en):Et.strategy===4||nn===Kt?(vt(Et,2+(en?1:0),3),Ct(Et,at,lt)):(vt(Et,4+(en?1:0),3),function(jt,Vt,It,$t){var Ht;for(vt(jt,Vt-257,5),vt(jt,It-1,5),vt(jt,$t-4,4),Ht=0;Ht<$t;Ht++)vt(jt,jt.bl_tree[2*st[Ht]+1],3);Ot(jt,jt.dyn_ltree,Vt-1),Ot(jt,jt.dyn_dtree,It-1)}(Et,Et.l_desc.max_code+1,Et.d_desc.max_code+1,Zt+1),Ct(Et,Et.dyn_ltree,Et.dyn_dtree)),St(Et),en&&Tt(Et)},o._tr_tally=function(Et,Pt,zt){return Et.pending_buf[Et.d_buf+2*Et.last_lit]=Pt>>>8&255,Et.pending_buf[Et.d_buf+2*Et.last_lit+1]=255&Pt,Et.pending_buf[Et.l_buf+Et.last_lit]=255&zt,Et.last_lit++,Pt===0?Et.dyn_ltree[2*zt]++:(Et.matches++,Pt--,Et.dyn_ltree[2*(dt[zt]+256+1)]++,Et.dyn_dtree[2*Ft(Pt)]++),Et.last_lit===Et.lit_bufsize-1},o._tr_align=function(Et){vt(Et,2,3),At(Et,256,at),function(Pt){Pt.bi_valid===16?(mt(Pt,Pt.bi_buf),Pt.bi_buf=0,Pt.bi_valid=0):Pt.bi_valid>=8&&(Pt.pending_buf[Pt.pending++]=255&Pt.bi_buf,Pt.bi_buf>>=8,Pt.bi_valid-=8)}(Et)}},function(s,o,et){s.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(s,o,et){var tt=et(38),nt=et(74),rt=et(75),it=et(181),ot=et(182);function st(Ut){return(Ut>>>24&255)+(Ut>>>8&65280)+((65280&Ut)<<8)+((255&Ut)<<24)}function at(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new tt.Buf16(320),this.work=new tt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function lt(Ut){var Ft;return Ut&&Ut.state?(Ft=Ut.state,Ut.total_in=Ut.total_out=Ft.total=0,Ut.msg="",Ft.wrap&&(Ut.adler=1&Ft.wrap),Ft.mode=1,Ft.last=0,Ft.havedict=0,Ft.dmax=32768,Ft.head=null,Ft.hold=0,Ft.bits=0,Ft.lencode=Ft.lendyn=new tt.Buf32(852),Ft.distcode=Ft.distdyn=new tt.Buf32(592),Ft.sane=1,Ft.back=-1,0):-2}function ut(Ut){var Ft;return Ut&&Ut.state?((Ft=Ut.state).wsize=0,Ft.whave=0,Ft.wnext=0,lt(Ut)):-2}function dt(Ut,Ft){var mt,vt;return Ut&&Ut.state?(vt=Ut.state,Ft<0?(mt=0,Ft=-Ft):(mt=1+(Ft>>4),Ft<48&&(Ft&=15)),Ft&&(Ft<8||Ft>15)?-2:(vt.window!==null&&vt.wbits!==Ft&&(vt.window=null),vt.wrap=mt,vt.wbits=Ft,ut(Ut))):-2}function ht(Ut,Ft){var mt,vt;return Ut?(vt=new at,Ut.state=vt,vt.window=null,(mt=dt(Ut,Ft))!==0&&(Ut.state=null),mt):-2}var ct,pt,ft=!0;function gt(Ut){if(ft){var Ft;for(ct=new tt.Buf32(512),pt=new tt.Buf32(32),Ft=0;Ft<144;)Ut.lens[Ft++]=8;for(;Ft<256;)Ut.lens[Ft++]=9;for(;Ft<280;)Ut.lens[Ft++]=7;for(;Ft<288;)Ut.lens[Ft++]=8;for(ot(1,Ut.lens,0,288,ct,0,Ut.work,{bits:9}),Ft=0;Ft<32;)Ut.lens[Ft++]=5;ot(2,Ut.lens,0,32,pt,0,Ut.work,{bits:5}),ft=!1}Ut.lencode=ct,Ut.lenbits=9,Ut.distcode=pt,Ut.distbits=5}function yt(Ut,Ft,mt,vt){var At,Lt=Ut.state;return Lt.window===null&&(Lt.wsize=1<=Lt.wsize?(tt.arraySet(Lt.window,Ft,mt-Lt.wsize,Lt.wsize,0),Lt.wnext=0,Lt.whave=Lt.wsize):((At=Lt.wsize-Lt.wnext)>vt&&(At=vt),tt.arraySet(Lt.window,Ft,mt-vt,At,Lt.wnext),(vt-=At)?(tt.arraySet(Lt.window,Ft,mt-vt,vt,0),Lt.wnext=vt,Lt.whave=Lt.wsize):(Lt.wnext+=At,Lt.wnext===Lt.wsize&&(Lt.wnext=0),Lt.whave>>8&255,mt.check=rt(mt.check,$t,2,0),Bt=0,xt=0,mt.mode=2;break}if(mt.flags=0,mt.head&&(mt.head.done=!1),!(1&mt.wrap)||(((255&Bt)<<8)+(Bt>>8))%31){Ut.msg="incorrect header check",mt.mode=30;break}if((15&Bt)!=8){Ut.msg="unknown compression method",mt.mode=30;break}if(xt-=4,nn=8+(15&(Bt>>>=4)),mt.wbits===0)mt.wbits=nn;else if(nn>mt.wbits){Ut.msg="invalid window size",mt.mode=30;break}mt.dmax=1<>8&1),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=3;case 3:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,$t[2]=Bt>>>16&255,$t[3]=Bt>>>24&255,mt.check=rt(mt.check,$t,4,0)),Bt=0,xt=0,mt.mode=4;case 4:for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>8),512&mt.flags&&($t[0]=255&Bt,$t[1]=Bt>>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0,mt.mode=5;case 5:if(1024&mt.flags){for(;xt<16;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>8&255,mt.check=rt(mt.check,$t,2,0)),Bt=0,xt=0}else mt.head&&(mt.head.extra=null);mt.mode=6;case 6:if(1024&mt.flags&&((Nt=mt.length)>St&&(Nt=St),Nt&&(mt.head&&(nn=mt.head.extra_len-mt.length,mt.head.extra||(mt.head.extra=new Array(mt.head.extra_len)),tt.arraySet(mt.head.extra,vt,Lt,Nt,nn)),512&mt.flags&&(mt.check=rt(mt.check,vt,Nt,Lt)),St-=Nt,Lt+=Nt,mt.length-=Nt),mt.length))break e;mt.length=0,mt.mode=7;case 7:if(2048&mt.flags){if(St===0)break e;Nt=0;do nn=vt[Lt+Nt++],mt.head&&nn&&mt.length<65536&&(mt.head.name+=String.fromCharCode(nn));while(nn&&Nt>9&1,mt.head.done=!0),Ut.adler=mt.check=0,mt.mode=12;break;case 10:for(;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=7&xt,xt-=7&xt,mt.mode=27;break}for(;xt<3;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=1)){case 0:mt.mode=14;break;case 1:if(gt(mt),mt.mode=20,Ft===6){Bt>>>=2,xt-=2;break e}break;case 2:mt.mode=17;break;case 3:Ut.msg="invalid block type",mt.mode=30}Bt>>>=2,xt-=2;break;case 14:for(Bt>>>=7&xt,xt-=7&xt;xt<32;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>16^65535)){Ut.msg="invalid stored block lengths",mt.mode=30;break}if(mt.length=65535&Bt,Bt=0,xt=0,mt.mode=15,Ft===6)break e;case 15:mt.mode=16;case 16:if(Nt=mt.length){if(Nt>St&&(Nt=St),Nt>Tt&&(Nt=Tt),Nt===0)break e;tt.arraySet(At,vt,Lt,Nt,Rt),St-=Nt,Lt+=Nt,Tt-=Nt,Rt+=Nt,mt.length-=Nt;break}mt.mode=12;break;case 17:for(;xt<14;){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=5,xt-=5,mt.ndist=1+(31&Bt),Bt>>>=5,xt-=5,mt.ncode=4+(15&Bt),Bt>>>=4,xt-=4,mt.nlen>286||mt.ndist>30){Ut.msg="too many length or distance symbols",mt.mode=30;break}mt.have=0,mt.mode=18;case 18:for(;mt.have>>=3,xt-=3}for(;mt.have<19;)mt.lens[Ht[mt.have++]]=0;if(mt.lencode=mt.lendyn,mt.lenbits=7,jt={bits:mt.lenbits},Zt=ot(0,mt.lens,0,19,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid code lengths set",mt.mode=30;break}mt.have=0,mt.mode=19;case 19:for(;mt.have>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=Dt,xt-=Dt,mt.lens[mt.have++]=Pt;else{if(Pt===16){for(Vt=Dt+2;xt>>=Dt,xt-=Dt,mt.have===0){Ut.msg="invalid bit length repeat",mt.mode=30;break}nn=mt.lens[mt.have-1],Nt=3+(3&Bt),Bt>>>=2,xt-=2}else if(Pt===17){for(Vt=Dt+3;xt>>=Dt)),Bt>>>=3,xt-=3}else{for(Vt=Dt+7;xt>>=Dt)),Bt>>>=7,xt-=7}if(mt.have+Nt>mt.nlen+mt.ndist){Ut.msg="invalid bit length repeat",mt.mode=30;break}for(;Nt--;)mt.lens[mt.have++]=nn}}if(mt.mode===30)break;if(mt.lens[256]===0){Ut.msg="invalid code -- missing end-of-block",mt.mode=30;break}if(mt.lenbits=9,jt={bits:mt.lenbits},Zt=ot(1,mt.lens,0,mt.nlen,mt.lencode,0,mt.work,jt),mt.lenbits=jt.bits,Zt){Ut.msg="invalid literal/lengths set",mt.mode=30;break}if(mt.distbits=6,mt.distcode=mt.distdyn,jt={bits:mt.distbits},Zt=ot(2,mt.lens,mt.nlen,mt.ndist,mt.distcode,0,mt.work,jt),mt.distbits=jt.bits,Zt){Ut.msg="invalid distances set",mt.mode=30;break}if(mt.mode=20,Ft===6)break e;case 20:mt.mode=21;case 21:if(St>=6&&Tt>=258){Ut.next_out=Rt,Ut.avail_out=Tt,Ut.next_in=Lt,Ut.avail_in=St,mt.hold=Bt,mt.bits=xt,it(Ut,kt),Rt=Ut.next_out,At=Ut.output,Tt=Ut.avail_out,Lt=Ut.next_in,vt=Ut.input,St=Ut.avail_in,Bt=mt.hold,xt=mt.bits,mt.mode===12&&(mt.back=-1);break}for(mt.back=0;Et=(It=mt.lencode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,mt.length=Pt,Et===0){mt.mode=26;break}if(32&Et){mt.back=-1,mt.mode=12;break}if(64&Et){Ut.msg="invalid literal/length code",mt.mode=30;break}mt.extra=15&Et,mt.mode=22;case 22:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}mt.was=mt.length,mt.mode=23;case 23:for(;Et=(It=mt.distcode[Bt&(1<>>16&255,Pt=65535&It,!((Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>zt)])>>>16&255,Pt=65535&It,!(zt+(Dt=It>>>24)<=xt);){if(St===0)break e;St--,Bt+=vt[Lt++]<>>=zt,xt-=zt,mt.back+=zt}if(Bt>>>=Dt,xt-=Dt,mt.back+=Dt,64&Et){Ut.msg="invalid distance code",mt.mode=30;break}mt.offset=Pt,mt.extra=15&Et,mt.mode=24;case 24:if(mt.extra){for(Vt=mt.extra;xt>>=mt.extra,xt-=mt.extra,mt.back+=mt.extra}if(mt.offset>mt.dmax){Ut.msg="invalid distance too far back",mt.mode=30;break}mt.mode=25;case 25:if(Tt===0)break e;if(Nt=kt-Tt,mt.offset>Nt){if((Nt=mt.offset-Nt)>mt.whave&&mt.sane){Ut.msg="invalid distance too far back",mt.mode=30;break}Nt>mt.wnext?(Nt-=mt.wnext,Ot=mt.wsize-Nt):Ot=mt.wnext-Nt,Nt>mt.length&&(Nt=mt.length),Jt=mt.window}else Jt=At,Ot=Rt-mt.offset,Nt=mt.length;Nt>Tt&&(Nt=Tt),Tt-=Nt,mt.length-=Nt;do At[Rt++]=Jt[Ot++];while(--Nt);mt.length===0&&(mt.mode=21);break;case 26:if(Tt===0)break e;At[Rt++]=mt.length,Tt--,mt.mode=21;break;case 27:if(mt.wrap){for(;xt<32;){if(St===0)break e;St--,Bt|=vt[Lt++]<>>=At=vt>>>24,gt-=At,(At=vt>>>16&255)===0)xt[st++]=65535&vt;else{if(!(16&At)){if(!(64&At)){vt=yt[(65535&vt)+(ft&(1<>>=At,gt-=At),gt<15&&(ft+=Bt[it++]<>>=At=vt>>>24,gt-=At,!(16&(At=vt>>>16&255))){if(!(64&At)){vt=Ut[(65535&vt)+(ft&(1<ut){tt.msg="invalid distance too far back",rt.mode=30;break e}if(ft>>>=At,gt-=At,Rt>(At=st-at)){if((At=Rt-At)>ht&&rt.sane){tt.msg="invalid distance too far back",rt.mode=30;break e}if(St=0,Tt=pt,ct===0){if(St+=dt-At,At2;)xt[st++]=Tt[St++],xt[st++]=Tt[St++],xt[st++]=Tt[St++],Lt-=3;Lt&&(xt[st++]=Tt[St++],Lt>1&&(xt[st++]=Tt[St++]))}else{St=st-Rt;do xt[st++]=xt[St++],xt[st++]=xt[St++],xt[st++]=xt[St++],Lt-=3;while(Lt>2);Lt&&(xt[st++]=xt[St++],Lt>1&&(xt[st++]=xt[St++]))}break}}break}}while(it>3,ft&=(1<<(gt-=Lt<<3))-1,tt.next_in=it,tt.next_out=st,tt.avail_in=it=1&&zt[xt]===0;xt--);if(Ct>xt&&(Ct=xt),xt===0)return dt[ht++]=20971520,dt[ht++]=20971520,pt.bits=1,0;for(Bt=1;Bt0&&(st===0||xt!==1))return-1;for(en[1]=0,St=1;St<15;St++)en[St+1]=en[St]+zt[St];for(Tt=0;Tt852||st===2&&Jt>592)return 1;for(;;){vt=St-Nt,ct[Tt]mt?(At=Kt[nn+ct[Tt]],Lt=Et[Pt+ct[Tt]]):(At=96,Lt=0),ft=1<>Nt)+(gt-=ft)]=vt<<24|At<<16|Lt|0;while(gt!==0);for(ft=1<>=1;if(ft!==0?(Dt&=ft-1,Dt+=ft):Dt=0,Tt++,--zt[St]==0){if(St===xt)break;St=at[lt+ct[Tt]]}if(St>Ct&&(Dt&Ut)!==yt){for(Nt===0&&(Nt=Ct),Ft+=Bt,Ot=1<<(kt=St-Nt);kt+Nt852||st===2&&Jt>592)return 1;dt[yt=Dt&Ut]=Ct<<24|kt<<16|Ft-ht|0}}return Dt!==0&&(dt[Ft+Dt]=St-Nt<<24|64<<16|0),pt.bits=Ct,0}},function(s,o,et){s.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(s,o){},function(s,o,et){function tt(ut,dt){var ht=Object.keys(ut);if(Object.getOwnPropertySymbols){var ct=Object.getOwnPropertySymbols(ut);dt&&(ct=ct.filter(function(pt){return Object.getOwnPropertyDescriptor(ut,pt).enumerable})),ht.push.apply(ht,ct)}return ht}function nt(ut){for(var dt=1;dt0?this.tail.next=pt:this.head=pt,this.tail=pt,++this.length}},{key:"unshift",value:function(ct){var pt={data:ct,next:this.head};this.length===0&&(this.tail=pt),this.head=pt,++this.length}},{key:"shift",value:function(){if(this.length!==0){var ct=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,ct}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(ct){if(this.length===0)return"";for(var pt=this.head,ft=""+pt.data;pt=pt.next;)ft+=ct+pt.data;return ft}},{key:"concat",value:function(ct){if(this.length===0)return st.alloc(0);for(var pt,ft,gt,yt=st.allocUnsafe(ct>>>0),Ut=this.head,Ft=0;Ut;)pt=Ut.data,ft=yt,gt=Ft,st.prototype.copy.call(pt,ft,gt),Ft+=Ut.data.length,Ut=Ut.next;return yt}},{key:"consume",value:function(ct,pt){var ft;return ctyt.length?yt.length:ct;if(Ut===yt.length?gt+=yt:gt+=yt.slice(0,ct),(ct-=Ut)==0){Ut===yt.length?(++ft,pt.next?this.head=pt.next:this.head=this.tail=null):(this.head=pt,pt.data=yt.slice(Ut));break}++ft}return this.length-=ft,gt}},{key:"_getBuffer",value:function(ct){var pt=st.allocUnsafe(ct),ft=this.head,gt=1;for(ft.data.copy(pt),ct-=ft.data.length;ft=ft.next;){var yt=ft.data,Ut=ct>yt.length?yt.length:ct;if(yt.copy(pt,pt.length-ct,0,Ut),(ct-=Ut)==0){Ut===yt.length?(++gt,ft.next?this.head=ft.next:this.head=this.tail=null):(this.head=ft,ft.data=yt.slice(Ut));break}++gt}return this.length-=gt,pt}},{key:lt,value:function(ct,pt){return at(this,nt(nt({},pt),{},{depth:0,customInspect:!1}))}}])&&it(dt.prototype,ht),Object.defineProperty(dt,"prototype",{writable:!1}),ut}()},function(s,o){},function(s,o,et){(function(tt){var nt;function rt(Ut,Ft,mt){return(Ft=function(vt){var At=function(Lt,Rt){if(typeof Lt!="object"||Lt===null)return Lt;var St=Lt[Symbol.toPrimitive];if(St!==void 0){var Tt=St.call(Lt,Rt||"default");if(typeof Tt!="object")return Tt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Rt==="string"?String:Number)(Lt)}(vt,"string");return typeof At=="symbol"?At:String(At)}(Ft))in Ut?Object.defineProperty(Ut,Ft,{value:mt,enumerable:!0,configurable:!0,writable:!0}):Ut[Ft]=mt,Ut}var it=et(48),ot=Symbol("lastResolve"),st=Symbol("lastReject"),at=Symbol("error"),lt=Symbol("ended"),ut=Symbol("lastPromise"),dt=Symbol("handlePromise"),ht=Symbol("stream");function ct(Ut,Ft){return{value:Ut,done:Ft}}function pt(Ut){var Ft=Ut[ot];if(Ft!==null){var mt=Ut[ht].read();mt!==null&&(Ut[ut]=null,Ut[ot]=null,Ut[st]=null,Ft(ct(mt,!1)))}}function ft(Ut){tt.nextTick(pt,Ut)}var gt=Object.getPrototypeOf(function(){}),yt=Object.setPrototypeOf((rt(nt={get stream(){return this[ht]},next:function(){var Ut=this,Ft=this[at];if(Ft!==null)return Promise.reject(Ft);if(this[lt])return Promise.resolve(ct(void 0,!0));if(this[ht].destroyed)return new Promise(function(Lt,Rt){tt.nextTick(function(){Ut[at]?Rt(Ut[at]):Lt(ct(void 0,!0))})});var mt,vt=this[ut];if(vt)mt=new Promise(function(Lt,Rt){return function(St,Tt){Lt.then(function(){Rt[lt]?St(ct(void 0,!0)):Rt[dt](St,Tt)},Tt)}}(vt,this));else{var At=this[ht].read();if(At!==null)return Promise.resolve(ct(At,!1));mt=new Promise(this[dt])}return this[ut]=mt,mt}},Symbol.asyncIterator,function(){return this}),rt(nt,"return",function(){var Ut=this;return new Promise(function(Ft,mt){Ut[ht].destroy(null,function(vt){vt?mt(vt):Ft(ct(void 0,!0))})})}),nt),gt);s.exports=function(Ut){var Ft,mt=Object.create(yt,(rt(Ft={},ht,{value:Ut,writable:!0}),rt(Ft,ot,{value:null,writable:!0}),rt(Ft,st,{value:null,writable:!0}),rt(Ft,at,{value:null,writable:!0}),rt(Ft,lt,{value:Ut._readableState.endEmitted,writable:!0}),rt(Ft,dt,{value:function(vt,At){var Lt=mt[ht].read();Lt?(mt[ut]=null,mt[ot]=null,mt[st]=null,vt(ct(Lt,!1))):(mt[ot]=vt,mt[st]=At)},writable:!0}),Ft));return mt[ut]=null,it(Ut,function(vt){if(vt&&vt.code!=="ERR_STREAM_PREMATURE_CLOSE"){var At=mt[st];return At!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,At(vt)),void(mt[at]=vt)}var Lt=mt[ot];Lt!==null&&(mt[ut]=null,mt[ot]=null,mt[st]=null,Lt(ct(void 0,!0))),mt[lt]=!0}),Ut.on("readable",ft.bind(null,mt)),mt}}).call(this,et(2))},function(s,o){s.exports=function(){throw new Error("Readable.from is not available in the browser")}},function(s,o,et){s.exports=nt;var tt=et(81);function nt(rt){if(!(this instanceof nt))return new nt(rt);tt.call(this,rt)}et(7)(nt,tt),nt.prototype._transform=function(rt,it,ot){ot(null,rt)}},function(s,o,et){var tt,nt=et(24).codes,rt=nt.ERR_MISSING_ARGS,it=nt.ERR_STREAM_DESTROYED;function ot(dt){if(dt)throw dt}function st(dt,ht,ct,pt){pt=function(yt){var Ut=!1;return function(){Ut||(Ut=!0,yt.apply(void 0,arguments))}}(pt);var ft=!1;dt.on("close",function(){ft=!0}),tt===void 0&&(tt=et(48)),tt(dt,{readable:ht,writable:ct},function(yt){if(yt)return pt(yt);ft=!0,pt()});var gt=!1;return function(yt){if(!ft&&!gt)return gt=!0,function(Ut){return Ut.setHeader&&typeof Ut.abort=="function"}(dt)?dt.abort():typeof dt.destroy=="function"?dt.destroy():void pt(yt||new it("pipe"))}}function at(dt){dt()}function lt(dt,ht){return dt.pipe(ht)}function ut(dt){return dt.length?typeof dt[dt.length-1]!="function"?ot:dt.pop():ot}s.exports=function(){for(var dt=arguments.length,ht=new Array(dt),ct=0;ct0,function(mt){pt||(pt=mt),mt&>.forEach(at),Ft||(gt.forEach(at),ft(pt))})});return ht.reduce(lt)}},function(s,o,et){var tt=et(192)(function nt(rt,it){return(it=it||{}).namespace=rt,it.prod=!0,it.dev=!1,it.force||nt.force?nt.yep(it):nt.nope(it)});s.exports=tt},function(s,o){var et=[],tt=[],nt=function(){};function rt(ct){return!~et.indexOf(ct)&&(et.push(ct),!0)}function it(ct){nt=ct}function ot(ct){for(var pt=[],ft=0;ftst.start)&&(at?at(null,ht):dt.emit("line",ht)),pt++,ht=""),setTimeout(yt,1e3);var mt=ut.write(lt.slice(0,Ft));at||dt.emit("data",mt);for(var vt=(mt=(ht+mt).split(/\n+/)).length-1,At=0;Atst.start)&&(at?at(null,mt[At]):dt.emit("line",mt[At])),pt++;return ht=mt[vt],ct+=Ft,yt()});nt.close(gt,ot)})()}),at?dt.destroy:dt}}).call(this,et(5).Buffer)},function(s,o,et){(function(tt,nt){function rt(Ft){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(mt){return typeof mt}:function(mt){return mt&&typeof Symbol=="function"&&mt.constructor===Symbol&&mt!==Symbol.prototype?"symbol":typeof mt})(Ft)}function it(Ft,mt){var vt=Object.keys(Ft);if(Object.getOwnPropertySymbols){var At=Object.getOwnPropertySymbols(Ft);mt&&(At=At.filter(function(Lt){return Object.getOwnPropertyDescriptor(Ft,Lt).enumerable})),vt.push.apply(vt,At)}return vt}function ot(Ft){for(var mt=1;mt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var vt,At=ct(Ft);if(mt){var Lt=ct(this).constructor;vt=Reflect.construct(At,arguments,Lt)}else vt=At.apply(this,arguments);return ht(this,vt)}}function ht(Ft,mt){if(mt&&(rt(mt)==="object"||typeof mt=="function"))return mt;if(mt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(vt){if(vt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return vt}(Ft)}function ct(Ft){return(ct=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(mt){return mt.__proto__||Object.getPrototypeOf(mt)})(Ft)}var pt=et(82),ft=et(205),gt=et(33).Stream,yt=et(14),Ut=et(29);s.exports=function(Ft){(function(Rt,St){if(typeof St!="function"&&St!==null)throw new TypeError("Super expression must either be null or a function");Rt.prototype=Object.create(St&&St.prototype,{constructor:{value:Rt,writable:!0,configurable:!0}}),Object.defineProperty(Rt,"prototype",{writable:!1}),St&&ut(Rt,St)})(Lt,Ft);var mt,vt,At=dt(Lt);function Lt(){var Rt,St=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return at(this,Lt),(Rt=At.call(this,St)).options=St,Rt.name=St.name||"http",Rt.ssl=!!St.ssl,Rt.host=St.host||"localhost",Rt.port=St.port,Rt.auth=St.auth,Rt.path=St.path||"",Rt.agent=St.agent,Rt.headers=St.headers||{},Rt.headers["content-type"]="application/json",Rt.batch=St.batch||!1,Rt.batchInterval=St.batchInterval||5e3,Rt.batchCount=St.batchCount||10,Rt.batchOptions=[],Rt.batchTimeoutID=-1,Rt.batchCallback={},Rt.port||(Rt.port=Rt.ssl?443:80),Rt}return mt=Lt,(vt=[{key:"log",value:function(Rt,St){var Tt=this;this._request(Rt,function(Bt,xt){xt&&xt.statusCode!==200&&(Bt=new Error("Invalid HTTP Status Code: ".concat(xt.statusCode))),Bt?Tt.emit("warn",Bt):Tt.emit("logged",Rt)}),St&&tt(St)}},{key:"query",value:function(Rt,St){typeof Rt=="function"&&(St=Rt,Rt={}),(Rt={method:"query",params:this.normalizeQuery(Rt)}).params.path&&(Rt.path=Rt.params.path,delete Rt.params.path),Rt.params.auth&&(Rt.auth=Rt.params.auth,delete Rt.params.auth),this._request(Rt,function(Tt,Bt,xt){if(Bt&&Bt.statusCode!==200&&(Tt=new Error("Invalid HTTP Status Code: ".concat(Bt.statusCode))),Tt)return St(Tt);if(typeof xt=="string")try{xt=JSON.parse(xt)}catch(Ct){return St(Ct)}St(null,xt)})}},{key:"stream",value:function(){var Rt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},St=new gt;(Rt={method:"stream",params:Rt}).params.path&&(Rt.path=Rt.params.path,delete Rt.params.path),Rt.params.auth&&(Rt.auth=Rt.params.auth,delete Rt.params.auth);var Tt="",Bt=this._request(Rt);return St.destroy=function(){return Bt.destroy()},Bt.on("data",function(xt){for(var Ct=(xt=(Tt+xt).split(/\n+/)).length-1,kt=0;kt0&&(clearTimeout(this.batchTimeoutID),this.batchTimeoutID=-1);var Bt=this.batchOptions.slice();this.batchOptions=[],this._doRequest(Bt,Rt,St,Tt)}},{key:"_doRequest",value:function(Rt,St,Tt,Bt){var xt=Object.assign({},this.headers);Tt&&Tt.bearer&&(xt.Authorization="Bearer ".concat(Tt.bearer));var Ct=(this.ssl?ft:pt).request(ot(ot({},this.options),{},{method:"POST",host:this.host,port:this.port,path:"/".concat(Bt.replace(/^\//,"")),headers:xt,auth:Tt&&Tt.username&&Tt.password?"".concat(Tt.username,":").concat(Tt.password):"",agent:this.agent}));Ct.on("error",St),Ct.on("response",function(kt){return kt.on("end",function(){return St(null,kt)}).resume()}),Ct.end(nt.from(Ut(Rt,this.options.replacer),"utf8"))}}])&<(mt.prototype,vt),Object.defineProperty(mt,"prototype",{writable:!1}),Lt}(yt)}).call(this,et(19).setImmediate,et(5).Buffer)},function(s,o,et){(function(tt,nt,rt){var it=et(83),ot=et(7),st=et(84),at=et(31),lt=et(196),ut=st.IncomingMessage,dt=st.readyStates,ht=s.exports=function(pt){var ft,gt=this;at.Writable.call(gt),gt._opts=pt,gt._body=[],gt._headers={},pt.auth&>.setHeader("Authorization","Basic "+new tt(pt.auth).toString("base64")),Object.keys(pt.headers).forEach(function(Ut){gt.setHeader(Ut,pt.headers[Ut])});var yt=!0;if(pt.mode==="disable-fetch"||"requestTimeout"in pt&&!it.abortController)yt=!1,ft=!0;else if(pt.mode==="prefer-streaming")ft=!1;else if(pt.mode==="allow-wrong-content-type")ft=!it.overrideMimeType;else{if(pt.mode&&pt.mode!=="default"&&pt.mode!=="prefer-fast")throw new Error("Invalid value for opts.mode");ft=!0}gt._mode=function(Ut,Ft){return it.fetch&&Ft?"fetch":it.mozchunkedarraybuffer?"moz-chunked-arraybuffer":it.msstream?"ms-stream":it.arraybuffer&&Ut?"arraybuffer":it.vbArray&&Ut?"text:vbarray":"text"}(ft,yt),gt._fetchTimer=null,gt.on("finish",function(){gt._onFinish()})};ot(ht,at.Writable),ht.prototype.setHeader=function(pt,ft){var gt=pt.toLowerCase();ct.indexOf(gt)===-1&&(this._headers[gt]={name:pt,value:ft})},ht.prototype.getHeader=function(pt){var ft=this._headers[pt.toLowerCase()];return ft?ft.value:null},ht.prototype.removeHeader=function(pt){delete this._headers[pt.toLowerCase()]},ht.prototype._onFinish=function(){var pt=this;if(!pt._destroyed){var ft=pt._opts,gt=pt._headers,yt=null;ft.method!=="GET"&&ft.method!=="HEAD"&&(yt=it.arraybuffer?lt(tt.concat(pt._body)):it.blobConstructor?new nt.Blob(pt._body.map(function(At){return lt(At)}),{type:(gt["content-type"]||{}).value||""}):tt.concat(pt._body).toString());var Ut=[];if(Object.keys(gt).forEach(function(At){var Lt=gt[At].name,Rt=gt[At].value;Array.isArray(Rt)?Rt.forEach(function(St){Ut.push([Lt,St])}):Ut.push([Lt,Rt])}),pt._mode==="fetch"){var Ft=null;if(it.abortController){var mt=new AbortController;Ft=mt.signal,pt._fetchAbortController=mt,"requestTimeout"in ft&&ft.requestTimeout!==0&&(pt._fetchTimer=nt.setTimeout(function(){pt.emit("requestTimeout"),pt._fetchAbortController&&pt._fetchAbortController.abort()},ft.requestTimeout))}nt.fetch(pt._opts.url,{method:pt._opts.method,headers:Ut,body:yt||void 0,mode:"cors",credentials:ft.withCredentials?"include":"same-origin",signal:Ft}).then(function(At){pt._fetchResponse=At,pt._connect()},function(At){nt.clearTimeout(pt._fetchTimer),pt._destroyed||pt.emit("error",At)})}else{var vt=pt._xhr=new nt.XMLHttpRequest;try{vt.open(pt._opts.method,pt._opts.url,!0)}catch(At){return void rt.nextTick(function(){pt.emit("error",At)})}"responseType"in vt&&(vt.responseType=pt._mode.split(":")[0]),"withCredentials"in vt&&(vt.withCredentials=!!ft.withCredentials),pt._mode==="text"&&"overrideMimeType"in vt&&vt.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in ft&&(vt.timeout=ft.requestTimeout,vt.ontimeout=function(){pt.emit("requestTimeout")}),Ut.forEach(function(At){vt.setRequestHeader(At[0],At[1])}),pt._response=null,vt.onreadystatechange=function(){switch(vt.readyState){case dt.LOADING:case dt.DONE:pt._onXHRProgress()}},pt._mode==="moz-chunked-arraybuffer"&&(vt.onprogress=function(){pt._onXHRProgress()}),vt.onerror=function(){pt._destroyed||pt.emit("error",new Error("XHR error"))};try{vt.send(yt)}catch(At){return void rt.nextTick(function(){pt.emit("error",At)})}}}},ht.prototype._onXHRProgress=function(){(function(pt){try{var ft=pt.status;return ft!==null&&ft!==0}catch{return!1}})(this._xhr)&&!this._destroyed&&(this._response||this._connect(),this._response._onXHRProgress())},ht.prototype._connect=function(){var pt=this;pt._destroyed||(pt._response=new ut(pt._xhr,pt._fetchResponse,pt._mode,pt._fetchTimer),pt._response.on("error",function(ft){pt.emit("error",ft)}),pt.emit("response",pt._response))},ht.prototype._write=function(pt,ft,gt){this._body.push(pt),gt()},ht.prototype.abort=ht.prototype.destroy=function(){this._destroyed=!0,nt.clearTimeout(this._fetchTimer),this._response&&(this._response._destroyed=!0),this._xhr?this._xhr.abort():this._fetchAbortController&&this._fetchAbortController.abort()},ht.prototype.end=function(pt,ft,gt){typeof pt=="function"&&(gt=pt,pt=void 0),at.Writable.prototype.end.call(this,pt,ft,gt)},ht.prototype.flushHeaders=function(){},ht.prototype.setTimeout=function(){},ht.prototype.setNoDelay=function(){},ht.prototype.setSocketKeepAlive=function(){};var ct=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]}).call(this,et(5).Buffer,et(6),et(2))},function(s,o,et){var tt=et(5).Buffer;s.exports=function(nt){if(nt instanceof Uint8Array){if(nt.byteOffset===0&&nt.byteLength===nt.buffer.byteLength)return nt.buffer;if(typeof nt.buffer.slice=="function")return nt.buffer.slice(nt.byteOffset,nt.byteOffset+nt.byteLength)}if(tt.isBuffer(nt)){for(var rt=new Uint8Array(nt.length),it=nt.length,ot=0;ot= 0x80 (not a basic code point)","invalid-input":"Invalid input"},ct=Math.floor,pt=String.fromCharCode;function ft(Rt){throw new RangeError(ht[Rt])}function gt(Rt,St){for(var Tt=Rt.length,Bt=[];Tt--;)Bt[Tt]=St(Rt[Tt]);return Bt}function yt(Rt,St){var Tt=Rt.split("@"),Bt="";return Tt.length>1&&(Bt=Tt[0]+"@",Rt=Tt[1]),Bt+gt((Rt=Rt.replace(dt,".")).split("."),St).join(".")}function Ut(Rt){for(var St,Tt,Bt=[],xt=0,Ct=Rt.length;xt=55296&&St<=56319&&xt65535&&(Tt+=pt((St-=65536)>>>10&1023|55296),St=56320|1023&St),Tt+=pt(St)}).join("")}function mt(Rt,St){return Rt+22+75*(Rt<26)-((St!=0)<<5)}function vt(Rt,St,Tt){var Bt=0;for(Rt=Tt?ct(Rt/700):Rt>>1,Rt+=ct(Rt/St);Rt>455;Bt+=36)Rt=ct(Rt/35);return ct(Bt+36*Rt/(Rt+38))}function At(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt,Et,Pt=[],zt=Rt.length,en=0,Kt=128,nn=72;for((Tt=Rt.lastIndexOf("-"))<0&&(Tt=0),Bt=0;Bt=128&&ft("not-basic"),Pt.push(Rt.charCodeAt(Bt));for(xt=Tt>0?Tt+1:0;xt=zt&&ft("invalid-input"),((Ot=(Et=Rt.charCodeAt(xt++))-48<10?Et-22:Et-65<26?Et-65:Et-97<26?Et-97:36)>=36||Ot>ct((at-en)/kt))&&ft("overflow"),en+=Ot*kt,!(Ot<(Jt=Nt<=nn?1:Nt>=nn+26?26:Nt-nn));Nt+=36)kt>ct(at/(Dt=36-Jt))&&ft("overflow"),kt*=Dt;nn=vt(en-Ct,St=Pt.length+1,Ct==0),ct(en/St)>at-Kt&&ft("overflow"),Kt+=ct(en/St),en%=St,Pt.splice(en++,0,Kt)}return Ft(Pt)}function Lt(Rt){var St,Tt,Bt,xt,Ct,kt,Nt,Ot,Jt,Dt,Et,Pt,zt,en,Kt,nn=[];for(Pt=(Rt=Ut(Rt)).length,St=128,Tt=0,Ct=72,kt=0;kt=St&&Etct((at-Tt)/(zt=Bt+1))&&ft("overflow"),Tt+=(Nt-St)*zt,St=Nt,kt=0;ktat&&ft("overflow"),Et==St){for(Ot=Tt,Jt=36;!(Ot<(Dt=Jt<=Ct?1:Jt>=Ct+26?26:Jt-Ct));Jt+=36)Kt=Ot-Dt,en=36-Dt,nn.push(pt(mt(Dt+Kt%en,0))),Ot=ct(Kt/en);nn.push(pt(mt(Ot,0))),Ct=vt(Tt,zt,Bt==xt),Tt=0,++Bt}++Tt,++St}return nn.join("")}st={version:"1.4.1",ucs2:{decode:Ut,encode:Ft},decode:At,encode:Lt,toASCII:function(Rt){return yt(Rt,function(St){return ut.test(St)?"xn--"+Lt(St):St})},toUnicode:function(Rt){return yt(Rt,function(St){return lt.test(St)?At(St.slice(4).toLowerCase()):St})}},(rt=function(){return st}.call(o,et,o,tt))===void 0||(tt.exports=rt)})()}).call(this,et(200)(s),et(6))},function(s,o){s.exports=function(et){return et.webpackPolyfill||(et.deprecate=function(){},et.paths=[],et.children||(et.children=[]),Object.defineProperty(et,"loaded",{enumerable:!0,get:function(){return et.l}}),Object.defineProperty(et,"id",{enumerable:!0,get:function(){return et.i}}),et.webpackPolyfill=1),et}},function(s,o,et){s.exports={isString:function(tt){return typeof tt=="string"},isObject:function(tt){return typeof tt=="object"&&tt!==null},isNull:function(tt){return tt===null},isNullOrUndefined:function(tt){return tt==null}}},function(s,o,et){o.decode=o.parse=et(203),o.encode=o.stringify=et(204)},function(s,o,et){function tt(rt,it){return Object.prototype.hasOwnProperty.call(rt,it)}s.exports=function(rt,it,ot,st){it=it||"&",ot=ot||"=";var at={};if(typeof rt!="string"||rt.length===0)return at;var lt=/\+/g;rt=rt.split(it);var ut=1e3;st&&typeof st.maxKeys=="number"&&(ut=st.maxKeys);var dt=rt.length;ut>0&&dt>ut&&(dt=ut);for(var ht=0;ht=0?(ct=yt.substr(0,Ut),pt=yt.substr(Ut+1)):(ct=yt,pt=""),ft=decodeURIComponent(ct),gt=decodeURIComponent(pt),tt(at,ft)?nt(at[ft])?at[ft].push(gt):at[ft]=[at[ft],gt]:at[ft]=gt}return at};var nt=Array.isArray||function(rt){return Object.prototype.toString.call(rt)==="[object Array]"}},function(s,o,et){var tt=function(ot){switch(typeof ot){case"string":return ot;case"boolean":return ot?"true":"false";case"number":return isFinite(ot)?ot:"";default:return""}};s.exports=function(ot,st,at,lt){return st=st||"&",at=at||"=",ot===null&&(ot=void 0),typeof ot=="object"?rt(it(ot),function(ut){var dt=encodeURIComponent(tt(ut))+at;return nt(ot[ut])?rt(ot[ut],function(ht){return dt+encodeURIComponent(tt(ht))}).join(st):dt+encodeURIComponent(tt(ot[ut]))}).join(st):lt?encodeURIComponent(tt(lt))+at+encodeURIComponent(tt(ot)):""};var nt=Array.isArray||function(ot){return Object.prototype.toString.call(ot)==="[object Array]"};function rt(ot,st){if(ot.map)return ot.map(st);for(var at=[],lt=0;lt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var gt,yt=lt(pt);if(ft){var Ut=lt(this).constructor;gt=Reflect.construct(yt,arguments,Ut)}else gt=yt.apply(this,arguments);return at(this,gt)}}function at(pt,ft){if(ft&&(nt(ft)==="object"||typeof ft=="function"))return ft;if(ft!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(gt){if(gt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return gt}(pt)}function lt(pt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(ft){return ft.__proto__||Object.getPrototypeOf(ft)})(pt)}var ut=et(86),dt=et(4).MESSAGE,ht=et(16),ct=et(14);s.exports=function(pt){(function(Ft,mt){if(typeof mt!="function"&&mt!==null)throw new TypeError("Super expression must either be null or a function");Ft.prototype=Object.create(mt&&mt.prototype,{constructor:{value:Ft,writable:!0,configurable:!0}}),Object.defineProperty(Ft,"prototype",{writable:!1}),mt&&ot(Ft,mt)})(Ut,pt);var ft,gt,yt=st(Ut);function Ut(){var Ft,mt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(rt(this,Ut),Ft=yt.call(this,mt),!mt.stream||!ut(mt.stream))throw new Error("options.stream is required.");return Ft._stream=mt.stream,Ft._stream.setMaxListeners(1/0),Ft.isObjectMode=mt.stream._writableState.objectMode,Ft.eol=typeof mt.eol=="string"?mt.eol:ht.EOL,Ft}return ft=Ut,(gt=[{key:"log",value:function(Ft,mt){var vt=this;if(tt(function(){return vt.emit("logged",Ft)}),this.isObjectMode)return this._stream.write(Ft),void(mt&&mt());this._stream.write("".concat(Ft[dt]).concat(this.eol)),mt&&mt()}}])&&it(ft.prototype,gt),Object.defineProperty(ft,"prototype",{writable:!1}),Ut}(ct)}).call(this,et(19).setImmediate)},function(s,o,et){(function(tt){function nt(Bt,xt,Ct){return xt in Bt?Object.defineProperty(Bt,xt,{value:Ct,enumerable:!0,configurable:!0,writable:!0}):Bt[xt]=Ct,Bt}function rt(Bt){return(rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(xt){return typeof xt}:function(xt){return xt&&typeof Symbol=="function"&&xt.constructor===Symbol&&xt!==Symbol.prototype?"symbol":typeof xt})(Bt)}function it(Bt,xt){for(var Ct=0;Ct"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var Ct,kt=lt(Bt);if(xt){var Nt=lt(this).constructor;Ct=Reflect.construct(kt,arguments,Nt)}else Ct=kt.apply(this,arguments);return at(this,Ct)}}function at(Bt,xt){if(xt&&(rt(xt)==="object"||typeof xt=="function"))return xt;if(xt!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(Ct){if(Ct===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Ct}(Bt)}function lt(Bt){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(xt){return xt.__proto__||Object.getPrototypeOf(xt)})(Bt)}var ut=et(33),dt=ut.Stream,ht=ut.Transform,ct=et(50),pt=et(4),ft=pt.LEVEL,gt=pt.SPLAT,yt=et(86),Ut=et(88),Ft=et(92),mt=et(211),vt=et(212),At=et(60).warn,Lt=et(49),Rt=/%[scdjifoO%]/g,St=function(Bt){(function(Ot,Jt){if(typeof Jt!="function"&&Jt!==null)throw new TypeError("Super expression must either be null or a function");Ot.prototype=Object.create(Jt&&Jt.prototype,{constructor:{value:Ot,writable:!0,configurable:!0}}),Object.defineProperty(Ot,"prototype",{writable:!1}),Jt&&ot(Ot,Jt)})(Nt,Bt);var xt,Ct,kt=st(Nt);function Nt(Ot){var Jt;return function(Dt,Et){if(!(Dt instanceof Et))throw new TypeError("Cannot call a class as a function")}(this,Nt),(Jt=kt.call(this,{objectMode:!0})).configure(Ot),Jt}return xt=Nt,(Ct=[{key:"child",value:function(Ot){var Jt=this;return Object.create(Jt,{write:{value:function(Dt){var Et=Object.assign({},Ot,Dt);Dt instanceof Error&&(Et.stack=Dt.stack,Et.message=Dt.message),Jt.write(Et)}}})}},{key:"configure",value:function(){var Ot=this,Jt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Dt=Jt.silent,Et=Jt.format,Pt=Jt.defaultMeta,zt=Jt.levels,en=Jt.level,Kt=en===void 0?"info":en,nn=Jt.exitOnError,Zt=nn===void 0||nn,jt=Jt.transports,Vt=Jt.colors,It=Jt.emitErrs,$t=Jt.formatters,Ht=Jt.padLevels,qt=Jt.rewriters,on=Jt.stripColors,Xt=Jt.exceptionHandlers,dn=Jt.rejectionHandlers;if(this.transports.length&&this.clear(),this.silent=Dt,this.format=Et||this.format||et(213)(),this.defaultMeta=Pt||null,this.levels=zt||this.levels||Lt.npm.levels,this.level=Kt,this.exceptions&&this.exceptions.unhandle(),this.rejections&&this.rejections.unhandle(),this.exceptions=new Ut(this),this.rejections=new Ft(this),this.profilers={},this.exitOnError=Zt,jt&&(jt=Array.isArray(jt)?jt:[jt]).forEach(function(_n){return Ot.add(_n)}),Vt||It||$t||Ht||qt||on)throw new Error(["{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.","Use a custom winston.format(function) instead.","See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md"].join(` +`));Xt&&this.exceptions.handle(Xt),dn&&this.rejections.handle(dn)}},{key:"isLevelEnabled",value:function(Ot){var Jt=this,Dt=Tt(this.levels,Ot);if(Dt===null)return!1;var Et=Tt(this.levels,this.level);return Et!==null&&(this.transports&&this.transports.length!==0?this.transports.findIndex(function(Pt){var zt=Tt(Jt.levels,Pt.level);return zt===null&&(zt=Et),zt>=Dt})!==-1:Et>=Dt)}},{key:"log",value:function(Ot,Jt){for(var Dt,Et,Pt=arguments.length,zt=new Array(Pt>2?Pt-2:0),en=2;en2?new mt({transport:Ot}):Ot;if(!Jt._writableState||!Jt._writableState.objectMode)throw new Error("Transports must WritableStreams in objectMode. Set { objectMode: true }.");return this._onEvent("error",Jt),this._onEvent("warn",Jt),this.pipe(Jt),Ot.handleExceptions&&this.exceptions.handle(),Ot.handleRejections&&this.rejections.handle(),this}},{key:"remove",value:function(Ot){if(!Ot)return this;var Jt=Ot;return(!yt(Ot)||Ot.log.length>2)&&(Jt=this.transports.filter(function(Dt){return Dt.transport===Ot})[0]),Jt&&this.unpipe(Jt),this}},{key:"clear",value:function(){return this.unpipe(),this}},{key:"close",value:function(){return this.exceptions.unhandle(),this.rejections.unhandle(),this.clear(),this.emit("close"),this}},{key:"setLevels",value:function(){At.deprecated("setLevels")}},{key:"query",value:function(Ot,Jt){typeof Ot=="function"&&(Jt=Ot,Ot={}),Ot=Ot||{};var Dt={},Et=Object.assign({},Ot.query||{});ct(this.transports.filter(function(Pt){return!!Pt.query}),function(Pt,zt){(function(en,Kt){Ot.query&&typeof en.formatQuery=="function"&&(Ot.query=en.formatQuery(Et)),en.query(Ot,function(nn,Zt){if(nn)return Kt(nn);typeof en.formatResults=="function"&&(Zt=en.formatResults(Zt,Ot.format)),Kt(null,Zt)})})(Pt,function(en,Kt){zt&&((Kt=en||Kt)&&(Dt[Pt.name]=Kt),zt()),zt=null})},function(){return Jt(null,Dt)})}},{key:"stream",value:function(){var Ot=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Jt=new dt,Dt=[];return Jt._streams=Dt,Jt.destroy=function(){for(var Et=Dt.length;Et--;)Dt[Et].destroy()},this.transports.filter(function(Et){return!!Et.stream}).forEach(function(Et){var Pt=Et.stream(Ot);Pt&&(Dt.push(Pt),Pt.on("log",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Jt.emit("log",zt)}),Pt.on("error",function(zt){zt.transport=zt.transport||[],zt.transport.push(Et.name),Jt.emit("error",zt)}))}),Jt}},{key:"startTimer",value:function(){return new vt(this)}},{key:"profile",value:function(Ot){var Jt=Date.now();if(this.profilers[Ot]){var Dt=this.profilers[Ot];delete this.profilers[Ot];for(var Et=arguments.length,Pt=new Array(Et>1?Et-1:0),zt=1;zttt(nt,it)},s.exports=o.default},function(s,o,et){var tt=Object.prototype.toString;s.exports=function(nt){if(typeof nt.displayName=="string"&&nt.constructor.name)return nt.displayName;if(typeof nt.name=="string"&&nt.name)return nt.name;if(typeof nt=="object"&&nt.constructor&&typeof nt.constructor.name=="string")return nt.constructor.name;var rt=nt.toString(),it=tt.call(nt).slice(8,-1);return(rt=it==="Function"?rt.substring(rt.indexOf("(")+1,rt.indexOf(")")):it)||"anonymous"}},function(s,o,et){const tt=et(13),{LEVEL:nt}=et(4),rt=et(14),it=s.exports=function(ot={}){if(rt.call(this,ot),!ot.transport||typeof ot.transport.log!="function")throw new Error("Invalid transport, must be an object with a log method.");this.transport=ot.transport,this.level=this.level||ot.transport.level,this.handleExceptions=this.handleExceptions||ot.transport.handleExceptions,this._deprecated(),this.transport.__winstonError||(this.transport.__winstonError=function(st){this.emit("error",st,this.transport)}.bind(this),this.transport.on("error",this.transport.__winstonError))};tt.inherits(it,rt),it.prototype._write=function(ot,st,at){if(this.silent||ot.exception===!0&&!this.handleExceptions)return at(null);(!this.level||this.levels[this.level]>=this.levels[ot[nt]])&&this.transport.log(ot[nt],ot.message,ot,this._nop),at(null)},it.prototype._writev=function(ot,st){for(let at=0;at{const at=rt.configure(st);return ot[nt]=at(ot,st.replacer||it,st.space),ot})},function(s,o,et){class tt extends Error{constructor(rt){super(`Format functions must be synchronous taking a two arguments: (info, opts) Found: ${rt.toString().split(` `)[0]} -`),Error.captureStackTrace(this,tt)}}s.exports=nt=>{if(nt.length>2)throw new tt(nt);function rt(ot={}){this.options=ot}function it(ot){return new rt(ot)}return rt.prototype.transform=nt,it.Format=rt,it}},function(s,o,et){function tt(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")}function nt(it,ot){for(var st=0;st0&&arguments[0]!==void 0?arguments[0]:{};tt(this,it),this.loggers=new Map,this.options=at}var ot,st;return ot=it,(st=[{key:"add",value:function(at,lt){var ut=this;if(!this.loggers.has(at)){var dt=(lt=Object.assign({},lt||this.options)).transports||this.options.transports;lt.transports=dt?dt.slice():[];var ht=rt(lt);ht.on("close",function(){return ut._delete(at)}),this.loggers.set(at,ht)}return this.loggers.get(at)}},{key:"get",value:function(at,lt){return this.add(at,lt)}},{key:"has",value:function(at){return!!this.loggers.has(at)}},{key:"close",value:function(at){var lt=this;if(at)return this._removeLogger(at);this.loggers.forEach(function(ut,dt){return lt._removeLogger(dt)})}},{key:"_removeLogger",value:function(at){this.loggers.has(at)&&(this.loggers.get(at).close(),this._delete(at))}},{key:"_delete",value:function(at){this.loggers.delete(at)}}])&&nt(ot.prototype,st),Object.defineProperty(ot,"prototype",{writable:!1}),it}()},function(s,o,et){(function(tt){const nt=et(51),rt=/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/;s.exports=function(it,ot,st,at){let lt,ut,dt=!1,ht=!1;const ct=et(93);function pt(yt){at(ot,yt)}function ft(yt,Ut){let Ft=`"${ot}" ${Ut}`;throw yt&&(Ft=""+Ft),ut&&(Ft=`${Ft}. An example of a valid value would be: ${ut}`),new nt(Ft)}const gt={convertFromBase64:function(){return pt("marking for base64 conversion"),dt=!0,gt},default:function(yt){if(typeof yt=="number")lt=yt.toString();else if(Array.isArray(yt)||typeof yt=="object"&&yt!==null)lt=JSON.stringify(yt);else{if(typeof yt!="string")throw new nt("values passed to default() must be of Number, String, Array, or Object type");lt=yt}return pt(`setting default value to "${lt}"`),gt},required:function(yt){return yt===void 0?(pt("marked as required"),ht=!0):(pt("setting required flag to "+yt),ht=yt),gt},example:function(yt){return ut=yt,gt}};return Object.entries({...ct,...st}).forEach(([yt,Ut])=>{gt[yt]=function(Ft){return function(){let mt=it[ot];if(pt(`will be read from the environment using "${Ft.name}" accessor`),mt===void 0)if(lt===void 0&&ht)pt("was not found in the environment, but is required to be set"),ft(void 0,"is a required variable, but it was not set");else{if(lt===void 0)return void pt("was not found in the environment, but is not required. returning undefined");pt(`was not found in the environment, parsing default value "${lt}" instead`),mt=lt}ht&&(pt("verifying variable value is not an empty string"),mt.trim().length===0&&ft(void 0,"is a required variable, but its value was empty")),dt&&(pt("verifying variable is a valid base64 string"),mt.match(rt)||ft(mt,"should be a valid base64 string if using convertFromBase64"),pt("converting from base64 to utf8 string"),mt=tt.from(mt,"base64").toString());const vt=[mt].concat(Array.prototype.slice.call(arguments));try{pt(`passing value "${mt}" to "${Ft.name}" accessor`);const At=Ft.apply(Ft,vt);return pt("parsed successfully, returning "+At),At}catch(At){ft(mt,At.message)}}}(Ut)}),gt}}).call(this,et(5).Buffer)},function(s,o,et){const tt=et(34);s.exports=function(nt,rt){return rt=rt||",",nt.length?tt(nt).split(rt).filter(Boolean):[]}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(nt!=="false"&&nt!=="true")throw new Error('should be either "true", "false", "TRUE", or "FALSE"');return nt!=="false"}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(["false","0","true","1"].indexOf(nt)===-1)throw new Error('should be either "true", "false", "TRUE", "FALSE", 1, or 0');return!(nt==="0"||nt==="false")}},function(s,o,et){const tt=et(94);s.exports=function(nt){var rt=tt(nt);if(rt>65535)throw new Error("cannot assign a port number greater than 65535");return rt}},function(s,o,et){const tt=et(34);s.exports=function(nt,rt){const it=tt(nt);if(rt.indexOf(it)<0)throw new Error(`should be one of [${rt.join(", ")}]`);return it}},function(s,o,et){const tt=et(53);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative float");return rt}},function(s,o,et){const tt=et(53);s.exports=function(nt){const rt=tt(nt);if(rt<0)throw new Error("should be a positive float");return rt}},function(s,o,et){const tt=et(52);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative integer");return rt}},function(s,o,et){const tt=et(54);s.exports=function(nt){var rt=tt(nt);if(!Array.isArray(rt))throw new Error("should be a parseable JSON Array");return rt}},function(s,o,et){const tt=et(54);s.exports=function(nt){var rt=tt(nt);if(Array.isArray(rt))throw new Error("should be a parseable JSON Object");return rt}},function(s,o,et){s.exports=function(tt,nt){try{RegExp(void 0,nt)}catch{throw new Error("invalid regexp flags")}try{return new RegExp(tt,nt)}catch{throw new Error("should be a valid regexp")}}},function(s,o,et){const tt=et(95);s.exports=function(nt){return tt(nt).toString()}},function(s,o,et){const tt=et(34),nt=/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021\u0023-\u005b\u005d-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021-\u005a\u0053-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])+)\])$/;s.exports=function(rt){const it=tt(rt);if(!nt.test(it))throw new Error("should be a valid email address");return it}},function(s,o,et){s.exports=function(tt,nt){return function(rt,it){nt&&nt.match(/prod|production/)||tt(`env-var (${rt}): ${it}`)}}},function(s,o,et){(function(tt){(function(){var nt,rt,it,ot,st,at;typeof performance<"u"&&performance!==null&&performance.now?s.exports=function(){return performance.now()}:tt!=null&&tt.hrtime?(s.exports=function(){return(nt()-st)/1e6},rt=tt.hrtime,ot=(nt=function(){var lt;return 1e9*(lt=rt())[0]+lt[1]})(),at=1e9*tt.uptime(),st=ot-at):Date.now?(s.exports=function(){return Date.now()-it},it=Date.now()):(s.exports=function(){return new Date().getTime()-it},it=new Date().getTime())}).call(this)}).call(this,et(2))},function(s,o,et){(function(tt){(function(nt){function rt(ot){if((ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextEncoder': The encoding label provided ('"+ot+"') is invalid.")}function it(ot,st){if(st=st===void 0?{fatal:!1}:st,(ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextDecoder': The encoding label provided ('"+ot+"') is invalid.");if(st.fatal)throw Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.")}if(nt.TextEncoder&&nt.TextDecoder)return!1;Object.defineProperty(rt.prototype,"encoding",{value:"utf-8"}),rt.prototype.encode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to encode: the 'stream' option is unsupported.");st=0;for(var at=ot.length,lt=0,ut=Math.max(32,at+(at>>1)+7),dt=new Uint8Array(ut>>3<<3);st=ht){if(st=ht)continue}if(lt+4>dt.length&&(ut+=8,ut=(ut*=1+st/ot.length*2)>>3<<3,(ct=new Uint8Array(ut)).set(dt),dt=ct),(4294967168&ht)==0)dt[lt++]=ht;else{if(!(4294965248&ht))dt[lt++]=ht>>6&31|192;else if(!(4294901760&ht))dt[lt++]=ht>>12&15|224,dt[lt++]=ht>>6&63|128;else{if(4292870144&ht)continue;dt[lt++]=ht>>18&7|240,dt[lt++]=ht>>12&63|128,dt[lt++]=ht>>6&63|128}dt[lt++]=63&ht|128}}return dt.slice(0,lt)},Object.defineProperty(it.prototype,"encoding",{value:"utf-8"}),Object.defineProperty(it.prototype,"fatal",{value:!1}),Object.defineProperty(it.prototype,"ignoreBOM",{value:!1}),it.prototype.decode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to decode: the 'stream' option is unsupported.");st=0;for(var at=(ot=new Uint8Array(ot)).length,lt=[];st>>10&1023|55296),ut=56320|1023&ut),lt.push(ut))}return String.fromCharCode.apply(null,lt)},nt.TextEncoder=rt,nt.TextDecoder=it})(typeof window<"u"?window:tt!==void 0?tt:this)}).call(this,et(6))},function(s,o,et){et.r(o),et.d(o,"AuthClient",function(){return rt}),et.d(o,"RtcSignalingClient",function(){return ot}),et.d(o,"Credentials",function(){return kt}),et.d(o,"SignalingPromiseClient",function(){return Nt.SignalingPromiseClient}),et.d(o,"RtcClient",function(){return un}),et.d(o,"RtcClientV1",function(){return ar}),et.d(o,"createRtcStreamMessage",function(){return Qr});var tt=et(26),nt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class rt extends tt.a{adminSignup(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/admin-signup",{token:mn,method:"POST",body:cn})})}login(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login",{method:"POST",body:cn,allowUnsafeRetries:!0})})}loginWithGoogleToken(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login-google",{method:"POST",body:cn,allowUnsafeRetries:!0})})}refresh(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/refresh",{method:"POST",body:{refreshToken:cn,tokenExpirationSeconds:mn},allowUnsafeRetries:!0})})}respondToNewPasswordRequiredChallenge(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/respond-to-new-password-required-challenge",{method:"POST",body:cn})})}forgotPassword(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/forgot-password",{method:"POST",body:{email:cn}})})}confirmForgotPassword(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/confirm-forgot-password",{method:"POST",body:cn})})}resendInvitation(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/resend-invitation",{method:"POST",body:{email:cn}})})}changePassword({token:cn,refreshToken:mn,currentPassword:xn,newPassword:Gn}){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/change-password",{token:cn,method:"POST",body:{refreshToken:mn,currentPassword:xn,newPassword:Gn}})})}getDeviceCredentials(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/device-credentials",{token:cn,method:"POST",allowUnsafeRetries:!0})})}impersonate(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/impersonate",{token:cn,method:"POST",allowUnsafeRetries:!0,body:{userId:mn}})})}createServiceAccount(cn,mn,xn,Gn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/service-account",{token:cn,method:"POST",allowUnsafeRetries:!0,body:{name:mn,roleId:xn,tags:Gn}})})}getFeatures(cn){return nt(this,void 0,void 0,function*(){return(yield this.fetch("auth/features",{token:cn})).features})}checkSso(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/check-sso",{method:"POST",body:{email:cn,allowUserAutoCreation:mn}})})}loginWithSso(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login-sso",{method:"POST",body:{token:cn,refreshToken:mn}})})}}var it=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class ot extends tt.a{createPeer(cn,mn){return it(this,void 0,void 0,function*(){return yield this.fetch("peers",{token:cn,method:"POST",body:mn})})}getPeers(cn){return it(this,void 0,void 0,function*(){return(yield this.fetch("peers",{token:cn})).items})}refreshPeer(cn,mn){return it(this,void 0,void 0,function*(){yield this.fetch(`peers/${mn}/refresh`,{token:cn,method:"POST",allowUnsafeRetries:!0})})}createSession(cn,mn){return it(this,void 0,void 0,function*(){return yield this.fetch("sessions",{token:cn,method:"POST",body:mn})})}refreshSession(cn,mn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${mn}/refresh`,{token:cn,method:"POST",allowUnsafeRetries:!0})})}deleteSession(cn,mn){return it(this,void 0,void 0,function*(){yield this.fetch("sessions/"+mn,{token:cn,method:"DELETE",allowUnsafeRetries:!0})})}getSessions(cn){return it(this,void 0,void 0,function*(){return(yield this.fetch("sessions",{token:cn})).items})}getIceServers(cn){return it(this,void 0,void 0,function*(){return(yield this.fetch("ice-servers",{token:cn})).items})}addSignals(cn,mn,xn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${mn}/add-signals`,{token:cn,method:"POST",body:xn})})}takeSignals(cn,mn){return it(this,void 0,void 0,function*(){return(yield this.fetch(`sessions/${mn}/take-signals`,{token:cn,method:"POST"})).items})}}var st=et(1),at=et(9),lt=et(15),ut=et.n(lt),dt=et(101),ht=et.n(dt),ct=et(3),pt=et(0),ft=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class gt extends class{constructor(cn,mn){this.type=cn,this.name=mn}}{constructor(cn){super("simple","LogReporter"),this.message=cn}send(cn){return ft(this,void 0,void 0,function*(){var mn,xn;pt.a.debug(this.message,(mn=cn.reduce((Gn,er)=>Object.assign(Object.assign({},Gn),{[er.name]:er.stat}),{}),xn=Gn=>{const{sum:er,count:cr}=Gn,gr=er/cr;return Object.assign(Object.assign({},Gn),{average:gr})},Object.keys(mn).reduce((Gn,er)=>Object.assign(Object.assign({},Gn),{[er]:xn(mn[er])}),{})))})}}const yt=/^[a-zA-Z0-9-_.,:?'"()@\/\\#$+ ]{1,255}$/,Ut=/^[*a-zA-Z0-9-_.,:?'"()@\/\\#$+ ]{1,255}$/;function Ft(hr,cn=!1){return!!(hr!=null&&hr.match(cn?Ut:yt))}var mt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};function vt({func:hr,delay:cn,immediate:mn=!1}){let xn=!1,Gn=setTimeout(function cr(){return mt(this,void 0,void 0,function*(){if(xn)return;const gr=new Date().getTime();try{er=hr(),yield er}finally{if(!xn){const br=new Date().getTime();Gn=setTimeout(cr,Math.max(cn-(br-gr),0))}}})},mn?0:cn),er=Promise.resolve();return{stop(){return mt(this,void 0,void 0,function*(){xn=!0,clearTimeout(Gn),yield er})}}}var At=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};const Lt=et(231);class Rt{constructor(cn){this.buffer={},this.reporters=[],this.flushInterval=vt({func:()=>this.flushStats(),delay:Rt.samplePeriodMs}),this.tags=this.filterTags(cn?.tags||{app:ct.a,version:ct.k,namespace:ct.j})}shutdown(){return At(this,void 0,void 0,function*(){yield this.flushInterval.stop(),yield this.flushStats(),yield Object(at.a)(2*st.a.second)})}aggregate(cn,mn,xn){this.addToBuffer(this.buffer,this.encodeKey({metric:cn,tags:this.filterTags(xn||{})}),typeof mn=="number"?{min:mn,max:mn,sum:mn,count:1}:mn)}increment(cn,mn){this.aggregate(cn,1,mn)}timer(cn,mn,xn){return At(this,void 0,void 0,function*(){const Gn=Lt(),er=yield mn(),cr=Lt();return this.aggregate(cn,cr-Gn,xn),er})}registerStatsReporter(cn){this.reporters.push(cn)}setTag(cn,mn){const xn=this.filterTags({[cn]:mn});this.tags=Object.assign(Object.assign({},this.tags),xn)}addToBuffer(cn,mn,xn){if(cn[mn]){const{min:Gn,max:er,sum:cr,count:gr}=cn[mn];cn[mn]={min:Math.min(Gn,xn.min),max:Math.max(er,xn.max),sum:cr+xn.sum,count:gr+xn.count}}else cn[mn]=xn}write(cn){return At(this,void 0,void 0,function*(){yield Promise.all(this.reporters.map(mn=>At(this,void 0,void 0,function*(){let xn;const Gn={};switch(mn.type){case"simple":for(const[cr,gr]of Object.entries(cn)){const{metric:br}=this.decodeKey(cr);this.addToBuffer(Gn,this.encodeKey({metric:br}),gr)}xn=Gn;break;case"tagged":xn=cn;break;default:(function(cr){throw new Error(`Unreachable type encountered (${cr})`)})(mn.type)}const er=Object.entries(xn);if(er.length>0)return mn.send(er.map(([cr,gr])=>{const{metric:br,tags:ur}=this.decodeKey(cr);return{name:br,tags:Object.assign(Object.assign({},ur),this.tags),stat:gr}}),Rt.samplePeriodMs).catch(cr=>{pt.a.debug("Failed to write stats to "+mn.name,{error:cr})})})))})}flushStats(){return At(this,void 0,void 0,function*(){yield this.write(this.buffer),this.buffer={}})}encodeKey(cn){return ut()(Object.assign(Object.assign({},cn),Object.keys(cn.tags||{}).length>0?{tags:cn.tags}:{}))}decodeKey(cn){return JSON.parse(cn)}filterTags(cn){return Object.entries(cn||{}).reduce((mn,[xn,Gn])=>(Ft(xn)&&Ft(Gn)&&(mn[xn]=Gn),mn),{})}}Rt.samplePeriodMs=5*st.a.minute;const St=!!ct.d,Tt=new Rt;St||["local","on-prem"].includes(ct.j)||Tt.registerStatsReporter(new gt("stats"));var Bt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class xt extends class{constructor(cn){this.options=cn,this.cache=new ht.a(Object.assign(Object.assign(Object.assign({},cn.dispose||cn.disposeAfter?{ttlAutopurge:!0}:{}),cn),{dispose:(...mn)=>{var xn;mn[2]==="evict"&&Tt.increment("lru-eviction",{name:cn.name}),(xn=cn.dispose)===null||xn===void 0||xn.call(cn,...mn)},disposeAfter:(...mn)=>{var xn;this.updateStats(),(xn=cn.disposeAfter)===null||xn===void 0||xn.call(cn,...mn)}})),this.stringify=cn.fastStringify?JSON.stringify:ut.a}set(cn,mn,xn){const Gn=this.stringify(cn);if(!this.cache.set(Gn,mn,{ttl:xn})){const er=this.cache.sizeCalculation?this.cache.sizeCalculation(mn,Gn):"unknown";throw Error(`Value too large (${er} > ${this.cache.max})`)}this.updateStats()}get(cn){const{name:mn}=this.options,xn=this.stringify(cn),Gn=this.cache.getRemainingTTL(xn);return Gn<=0?Tt.increment("cache-miss",{name:mn}):Gn!==1/0&&Tt.aggregate("cache-item-ttl",Gn,{name:mn}),this.cache.get(xn)}delete(cn){this.cache.delete(this.stringify(cn))}peek(cn){return this.cache.peek(this.stringify(cn))}size(){return this.cache.size}clear(){this.cache.clear()}forEach(cn){this.cache.forEach(cn)}purgeStale(){return this.cache.purgeStale()}updateStats(){const{name:cn}=this.options;Tt.aggregate("cache-item-count",this.cache.size,{name:cn}),this.cache.calculatedSize!==void 0&&Tt.aggregate("cache-length",this.cache.calculatedSize,{name:cn})}}{constructor(cn){if(super(cn),this.expireRejectedPromiseValues=cn.expireRejectedPromiseValues===void 0||cn.expireRejectedPromiseValues,this.rejectedPromiseValueTtl=cn.rejectedPromiseValueTtl!==void 0?cn.rejectedPromiseValueTtl:st.a.second,this.rejectedPromiseValueTtl<0)throw new Error("rejectedPromiseValueTtl must not be negative")}set(cn,mn,xn){super.set(cn,mn,xn),this.expireRejectedPromiseValues&&mn.catch(()=>Bt(this,void 0,void 0,function*(){yield Object(at.a)(this.rejectedPromiseValueTtl),this.peek(cn)===mn&&this.delete(cn)}))}}var Ct=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class kt{constructor(cn,mn,xn){this.authClient=cn,this.email=mn,this.password=xn,this.tokenTtlMs=1*st.a.hour,this.tokenCache=new xt({name:"Credentials-tokenCache",max:100,ttl:this.tokenTtlMs-5*st.a.minute,fastStringify:!0})}getToken(){return Ct(this,void 0,void 0,function*(){let cn=this.tokenCache.get(this.email);return cn||(cn=(()=>Ct(this,void 0,void 0,function*(){const{authentication:mn}=yield this.authClient.login({email:this.email,password:this.password,tokenExpirationSeconds:this.tokenTtlMs/st.a.second});if(!mn)throw new Error("User account not verified.");return mn.accessToken}))(),this.tokenCache.set(this.email,cn)),cn})}}var Nt=et(96),Ot=et(17),Wt=et(236),Dt=et(41),Et=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class Pt extends Dt.a{constructor(cn){super(cn)}postLanRtcOffer(cn){return Et(this,void 0,void 0,function*(){return yield this.fetch("v1/lan-rtc-offer",{method:"POST",body:cn})})}}var zt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};function en(hr){return zt(this,void 0,void 0,function*(){return(yield Promise.all(hr.map(cn=>cn.catch(mn=>mn)))).filter(cn=>cn instanceof Error)})}function Kt(hr,cn){if(hr===void 0)throw new Error("Value is undefined"+(cn?": "+cn:""))}function nn(hr,cn){if(hr===null)throw new Error("Value is null"+(cn?": "+cn:""))}function Zt(hr){return Kt(hr),hr}function jt(hr,cn){const mn=hr.reduce((xn,Gn)=>[...xn,...Gn.urls],[]).filter(xn=>Vt(xn,cn)).sort(xn=>It(xn,"udp")?-1:0).shift();if(mn)return Object.assign(Object.assign({},Zt(hr.find(xn=>xn.urls.includes(mn)))),{urls:[mn]})}function Vt(hr,cn){switch(cn){case"stun":return/^stuns?:/.test(hr);case"turn":return/^turns?:/.test(hr)}}function It(hr,cn){return hr.endsWith("transport="+cn)}var $t=et(10);class Ht extends Error{constructor(cn,mn){super(`Deadline expired after ${cn}ms + ${mn}ms`)}}class qt{static withDeadline(cn,mn){const xn=new Promise((Gn,er)=>{setTimeout(()=>{er(new Ht(mn,this.grpcCallDeadlineSlopMs))},mn+this.grpcCallDeadlineSlopMs)});return Promise.race([cn,xn])}}qt.grpcCallDeadlineSlopMs=500*st.a.millisecond;var on=et(27);const Xt={ordered:!1,maxPacketLifeTime:300*st.a.millisecond},dn={ordered:!0},_n={ordered:!0},Fn={ordered:!1,maxRetransmits:0},Un={ordered:!1,maxRetransmits:0},On=hr=>"received"in hr&&hr.received!==void 0,gn=hr=>!("received"in hr)||hr.received===void 0,hn=2*st.a.second,wn=10*st.a.second;function Zn(hr,cn={}){const mn=Array.from(hr.values()),xn=mn.filter(On),Gn=xn.length>0,er=Math.max(...mn.map(nr=>nr.sent)),cr=Math.max(...xn.map(nr=>nr.received));let gr;if(Gn){const nr=Date.now()-er<=st.a.millisecond?mn.length-1:mn.length,Kr=xn.length>nr?nr:xn.length,ho=xn.map(Gr=>Gr.received-Gr.sent),{standardDeviation:Nn,mean:rr,jitter:Rr}=function(Gr){const Pr=Gr.length;if(Pr===0)return{mean:NaN,standardDeviation:-1,jitter:NaN};const oo=Gr.reduce((lo,To)=>lo+To,0)/Pr,ao=Math.sqrt(Gr.map(lo=>Math.pow(lo-oo,2)).reduce((lo,To)=>lo+To)/Pr);if(Pr===1)return{mean:oo,standardDeviation:ao,jitter:NaN};let mo=0;for(let lo=1;loGr.sent{const[Kr,ho]=nr;ho.sent{var er,cr;return{streamId:Gn,sentCount:(er=mn.get(Gn))!==null&&er!==void 0?er:0,receivedCount:(cr=xn.get(Gn))!==null&&cr!==void 0?cr:0}}),timestamp:cn}}incrementLocalSent(cn){const{localSent:mn}=this.counts,xn=Pn(cn.header.stream);mn.set(xn,(mn.get(xn)||0)+1)}incrementLocalReceived(cn){const{localReceived:mn}=this.counts,xn=Pn(cn.header.stream),Gn=mn.get(xn)||0;if(Gn===0){const{streamName:er,streamType:cr}=cn.header.stream;pt.a.debug("RTC client received first message for stream",{streamName:er,streamType:cr})}mn.set(xn,Gn+1)}uploadMetrics(){return $n(this,void 0,void 0,function*(){const{sessionId:cn}=this,mn=yield this.connection.peerConnection.getStats(),xn={};mn.forEach(ur=>xn[ur.id]=ur),pt.a.debug("rtc-stats",Object.assign(Object.assign({},xn),{sessionId:cn}));const{localSent:Gn,localReceived:er,remoteSent:cr,remoteReceived:gr}=this.counts,br=[...new Set([...Gn.keys(),...er.keys()])].reduce((ur,nr)=>{const Kr=Gn.get(nr),ho=er.get(nr),Nn=cr.get(nr),rr=gr.get(nr);return Object.assign(Object.assign({},ur),{[`local-${nr}-sent`]:Kr,[`local-${nr}-received`]:ho,[`remote-${nr}-sent`]:Nn,[`remote-${nr}-received`]:rr})},{sessionId:cn});pt.a.debug("rtc-message-report",Object.assign({deviceId:this.connection.getRemoteDeviceId()},br))})}}function Qr(hr,cn,mn){return{header:{stream:hr,created:Date.now(),frameId:mn||""},payload:cn}}function _r(hr){const cn=hr.localCandidate.candidateType,mn=hr.remoteCandidate.candidateType;return cn==="host"&&mn==="host"?"local":cn==="relay"||mn==="relay"?"TURN":"STUN"}function Ir(hr){return new Set(["disconnected","failed","closed"]).has(hr.iceConnectionState)}function Wr(hr){switch(hr.header.stream.streamType){case"twist":{const{twist:cn}=hr.payload;if(!cn)throw Error("twist not in payload of RTC message with type twist");return{header:hr.header,payload:{twist:{linear:Object.assign({x:0,y:0,z:0},cn.linear),angular:Object.assign({x:0,y:0,z:0},cn.angular)}}}}case"pose":{const{pose:cn}=hr.payload;if(!cn)throw Error("pose not in payload of RTC message with type pose");return{header:hr.header,payload:{pose:{translation:Object.assign({x:0,y:0,z:0},cn.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},cn.rotation)}}}}case"pose-with-covariance":{const{poseWithCovariance:cn}=hr.payload;if(!cn)throw Error("poseWithCovariance not in payload of RTC message with type pose-with-covariance");const mn=new Array(36).fill(0);return cn.covariance.forEach((xn,Gn)=>{if(Gn>=36)throw Error("covariance contains more than 36 elements");mn[Gn]=xn}),{header:hr.header,payload:{poseWithCovariance:{pose:{translation:Object.assign({x:0,y:0,z:0},cn.pose.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},cn.pose.rotation)},covariance:mn}}}}case"point":{const{point:cn}=hr.payload;if(!cn)throw Error("point not in payload of RTC message with type point");return{header:hr.header,payload:{point:Object.assign({x:0,y:0,z:0},cn)}}}default:return hr}}var qr=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class Uo{get peerConnection(){return nn(this._peerConnection,"RTCPeerConnection is closed!"),this._peerConnection}constructor(cn,mn,xn,Gn){this.iceServers=mn,this.config=xn,this.dataChannelNotifier=Gn,this.connectTimeoutMs=20*st.a.second,this.iceGatheringTimeoutMs=3*st.a.second,this.pingUpdateTimeoutMs=1*st.a.second,this.pingV2UpdateTimeoutMs=250*st.a.millisecond,this.pingV2MetricsGatherTimeoutMs=1*st.a.second,this.streamsInfoUpdateTimeoutMs=2*st.a.second,this.reassemblyTimeoutMs=500*st.a.millisecond,this.reassemblyTableCleanupMs=1*st.a.second,this.heartbeatTimeoutMs=20*st.a.millisecond,this._peerConnection=null,this.heartbeatChannel=null,this.latestTtlStreamChannel=null,this.reliableStreamChannel=null,this.latestReliableStreamChannel=null,this.latestTryOnceStreamChannel=null,this.streamLatestTimestamp=new Map,this.reassemblyTable=new Map,this.reassemblyTableLastTimestamp=new Map,this.closeCalled=!1,this.gotOffer=!1,this.hasIceCandidate=!1,this.pingV2Map=new Map,this.sendPingV2=()=>{const{latestTryOnceStreamChannel:cr}=this;if(!cr)return;const gr=new Date().getTime(),br=Object(Wt.a)();this.sendSystemMessage(cr,{type:"ping-v2",payload:{timestamp:gr,id:br}}),this.pingV2Map.set(br,{sent:gr})},this.gatherPingV2Metrics=()=>{const cr=Zn(this.pingV2Map);if(cr){const gr=this.getRemoteDeviceId();this.pingInfo=cr,Tt.aggregate("rtc-ping-average",cr.average,Object.assign({},gr?{deviceId:gr}:{})),Tt.aggregate("rtc-ping-loss",cr.loss,Object.assign({},gr?{deviceId:gr}:{})),Tt.aggregate("rtc-jitter",cr.jitter,Object.assign({},gr?{deviceId:gr}:{}))}},this._peerConnection=cn;const{isOffer:er}=xn.baseConfig;er?this.initializeChannels(cn):cn.ondatachannel=cr=>{switch(cr.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=cr.channel;break;case"stream.reliable":this.reliableStreamChannel=cr.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=cr.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=cr.channel;break;case"heartbeat":return void(this.heartbeatChannel=cr.channel);default:return void this.dataChannelNotifier(cr.channel)}this.setupChannel(cr.channel)},this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:cr}=this;cr&&this.sendSystemMessage(cr,{type:"ping"})},this.pingUpdateTimeoutMs),this.pingV2UpdateTimeout=setInterval(this.sendPingV2,this.pingV2UpdateTimeoutMs),this.pingV2MetricsGatherTimeout=setInterval(this.gatherPingV2Metrics,this.pingV2MetricsGatherTimeoutMs),this.streamsInfoUpdateTimeout=setInterval(()=>{const{latestTtlStreamChannel:cr}=this;cr&&this.sendSystemMessage(cr,{type:"streams-info"})},this.streamsInfoUpdateTimeoutMs),this.reassemblyTableCleanupTimeout=setInterval(()=>{const cr=new Date().getTime();this.reassemblyTableLastTimestamp.forEach((gr,br,ur)=>{cr>br+this.reassemblyTimeoutMs&&this.reassemblyTable.delete(gr)})},this.reassemblyTableCleanupMs),this.heartbeatTimeout=setInterval(()=>{const{heartbeatChannel:cr}=this;cr&&cr.readyState==="open"&&cr.send(new Uint8Array([1]))},this.heartbeatTimeoutMs)}handleSignal(cn){return qr(this,void 0,void 0,function*(){const{peerConnection:mn}=this,{track:xn}=this.config.baseConfig,Gn=(()=>{try{return JSON.parse(cn.getPayload())}catch{return}})();if(!Gn)return void pt.a.error("Received unparseable signal.");pt.a.debug("Handling signal",{description:Gn});const{sdp:er,type:cr}=Gn;if(!er||!cr)return void pt.a.warn("Received non-SDP signal");const{signalingState:gr,connectionState:br}=mn;if(gr!=="stable"||br!=="connected")if(mn.remoteDescription)pt.a.warn("Received SDP after remote description was set: "+er);else{if(cr==="offer"){if(gr!=="stable")return void pt.a.warn("Received offer SDP when signaling is ongoing.");yield mn.setRemoteDescription(Gn);const ur=yield mn.createAnswer();yield mn.setLocalDescription(ur);const nr=cn.clone();return xn?.("Answer Received",nr),nr.setPayload(JSON.stringify(ur)),nr.setReceiverId(cn.getSenderId()),nr.setSenderId(cn.getReceiverId()),nr}if(cr==="answer"){if(gr==="stable")return void pt.a.warn("Received answer SDP when signaling hasn't started.");yield mn.setRemoteDescription(Gn)}}else pt.a.warn("Received SDP when already connected: "+er)})}send(cn,mn){const xn=this.getChannelFromLabel(mn.channelLabel);xn?this.sendOnChannel(xn,cn):pt.a.warn("Send called with unexpected channel label",{channelLabel:mn.channelLabel})}controlRemoteStream(cn){var mn;this.sendSystemMessage((nn(mn=this.reliableStreamChannel),mn),{type:"stream-control",streamControl:cn})}isActive(){return new Set(["new","checking","connected","completed"]).has(this.peerConnection.iceConnectionState)||this.isReady()}isReady(){const{reliableStreamChannel:cn,latestTtlStreamChannel:mn,latestTryOnceStreamChannel:xn,latestReliableStreamChannel:Gn}=this;return cn?.readyState==="open"&&mn?.readyState==="open"&&xn?.readyState==="open"&&Gn?.readyState==="open"}close(){var cn,mn,xn,Gn,er,cr,gr;return qr(this,void 0,void 0,function*(){this.closeCalled||(this.closeCalled=!0,yield(cn=this.sessionMetrics)===null||cn===void 0?void 0:cn.uploadMetrics(),eo(this.pingUpdateTimeout),eo(this.pingV2UpdateTimeout),eo(this.pingV2MetricsGatherTimeout),eo(this.reassemblyTableCleanupTimeout),eo(this.streamsInfoUpdateTimeout),eo(this.heartbeatTimeout),(mn=this._peerConnection)===null||mn===void 0||mn.close(),(xn=this.heartbeatChannel)===null||xn===void 0||xn.close(),(Gn=this.latestReliableStreamChannel)===null||Gn===void 0||Gn.close(),(er=this.latestTryOnceStreamChannel)===null||er===void 0||er.close(),(cr=this.latestTtlStreamChannel)===null||cr===void 0||cr.close(),(gr=this.reliableStreamChannel)===null||gr===void 0||gr.close(),this._peerConnection=null,this.heartbeatChannel=null,this.latestReliableStreamChannel=null,this.latestTryOnceStreamChannel=null,this.latestTtlStreamChannel=null,this.reliableStreamChannel=null)})}getPing(){return this.pingTimeMs}getPingInfo(){return this.pingInfo}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionCreatedTimestamp(){var cn;return(cn=this.config.remoteConfig)===null||cn===void 0?void 0:cn.sessionCreatedTimestamp}setSessionCreatedTimestamp(cn){this.config.remoteConfig&&(this.config.remoteConfig.sessionCreatedTimestamp=cn)}getSessionId(){var cn;return(cn=this.config.remoteConfig)===null||cn===void 0?void 0:cn.sessionId}setSessionId(cn){this.config.remoteConfig&&(this.config.remoteConfig.sessionId=cn,this.sessionMetrics=new Tr(cn,this))}getRemotePeerId(){return this.config.baseConfig.remotePeerId}getRemoteDeviceId(){var cn;return(cn=this.config.baseConfig)===null||cn===void 0?void 0:cn.remoteDeviceId}setRemoteDeviceId(cn){this.config.baseConfig.remoteDeviceId=cn}getSessionMetricsMessageCounts(){var cn;return(cn=this.sessionMetrics)===null||cn===void 0?void 0:cn.counts}getConnectionStatsInfo(){return qr(this,void 0,void 0,function*(){const{peerConnection:cn}=this;if(!cn)return;const mn=yield cn.getStats(null),xn=[];mn.forEach(br=>{xn.push(br)});const Gn=xn.find(br=>br.type==="transport");if(!Gn)return;const er=xn.find(br=>(br.type==="candidate-pair"||br.type==="candidatepair")&&br.id===Gn.selectedCandidatePairId);if(!er)return;const cr=xn.find(br=>br.id===er.localCandidateId),gr=xn.find(br=>br.id===er.remoteCandidateId);return cr&&gr&&(cr.address=cr.address||cr.ip,gr.address=gr.address||gr.ip,cr.address!==void 0&&gr.address!==void 0)?{transport:Gn,localCandidate:cr,remoteCandidate:gr,candidatePair:er}:void 0})}initializeChannels(cn){this.heartbeatChannel=cn.createDataChannel("heartbeat",Un),this.heartbeatChannel.binaryType="arraybuffer",this.latestTtlStreamChannel=cn.createDataChannel("stream.latest-ttl",Xt),this.latestTtlStreamChannel.binaryType="arraybuffer",this.reliableStreamChannel=cn.createDataChannel("stream.reliable",dn),this.reliableStreamChannel.binaryType="arraybuffer",this.latestReliableStreamChannel=cn.createDataChannel("stream.latest-reliable",_n),this.latestReliableStreamChannel.binaryType="arraybuffer",this.latestTryOnceStreamChannel=cn.createDataChannel("stream.latest-try-once",Fn),this.latestTryOnceStreamChannel.binaryType="arraybuffer",this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}getOffer(){var cn,mn;return qr(this,void 0,void 0,function*(){const{gotOffer:xn}=this,{peerConnection:Gn,config:er}=this;if(this.config.baseConfig.isLan)throw new Error('"getOffer" method can only be called with internet connections. LAN connections should call the "getLanOffer" method.');const cr=(cn=this.config.remoteConfig)===null||cn===void 0?void 0:cn.sessionId;if(xn)return void pt.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,Ir(this.peerConnection))return void pt.a.debug("Failed to generate offer because the peer connection was inactive.");const gr=er.baseConfig.track;Gn.onicecandidate=()=>{this.hasIceCandidate=!0},Gn.oniceconnectionstatechange=()=>qr(this,void 0,void 0,function*(){const Nn=Gn.iceConnectionState;if(Nn==="connected"||Nn==="completed"){const rr=yield this.getConnectionStatsInfo(),Rr=rr?_r(rr):void 0;pt.a.info("ICE connection state changed to "+Nn,{sessionId:cr,connectionStatsInfo:rr,iceMode:Rr}),gr?.("ICE connection state change",{iceConnectionState:Nn,sessionId:cr,connectionStatsInfo:rr,iceMode:Rr})}}),yield Gn.setLocalDescription(yield Gn.createOffer());const br=Gn.getConfiguration?Gn.getConfiguration().iceTransportPolicy:"all",ur=new Date().getTime();for(;;){const Nn=new Date().getTime()-ur;if(Nn>this.connectTimeoutMs)return void pt.a.debug("Failed to generate offer because ICE gathering timed out.");if(Nn>this.iceGatheringTimeoutMs&&this.hasIceCandidate){pt.a.debug("ICE gathering partially completed; proceeding",{iceTransportPolicy:br,waitTime:Nn}),gr?.("ICE gathering partially completed",{sessionId:cr,iceTransportPolicy:br,waitTime:Nn});break}if(Gn.iceGatheringState==="complete"){pt.a.debug("ICE gathering complete",{iceTransportPolicy:br,waitTime:Nn}),gr?.("ICE gathering completed",{sessionId:cr,iceTransportPolicy:br,waitTime:Nn});break}yield Object(at.a)(.1*st.a.second)}const nr=(mn=this.iceServers)!==null&&mn!==void 0?mn:[];for(const Nn of nr)"credentialType"in Nn&&(Nn.credentialType=void 0);const Kr=JSON.stringify(nr),ho=new $t.Signal;return ho.setPayload(JSON.stringify(Gn.localDescription)),ho.setSenderId(this.config.baseConfig.localPeerId),ho.setReceiverId(this.config.baseConfig.remotePeerId),ho.setIceServers(Kr),ho.setIceTransportPolicy(br??"all"),this.config.baseConfig.sessionType!==void 0?ho.setSessionType(this.config.baseConfig.sessionType):ho.setSessionType($t.SessionType.TELEOP),pt.a.debug("Sending offer signal with description",{description:ho.getPayload()}),ho})}getLanOffer(){return qr(this,void 0,void 0,function*(){const{peerConnection:cn,gotOffer:mn}=this;if(!this.config.baseConfig.isLan)throw new Error('"getLanOffer" method can only be used with LAN connections. Internet connections should call the "getOffer" method.');if(mn)return void pt.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,Ir(this.peerConnection))return void pt.a.debug("Failed to generate offer because the peer connection was inactive.");yield cn.setLocalDescription(yield cn.createOffer());const xn=new Date().getTime();for(;;){if(new Date().getTime()-xn>this.iceGatheringTimeoutMs)return void pt.a.debug("Failed to generate offer because ICE gathering timed out.");if(cn.iceGatheringState==="complete")break;yield Object(at.a)(.1*st.a.second)}const Gn=cn.localDescription;if(Gn)return pt.a.debug("Sending LAN offer signal with description",{description:Gn}),Gn;pt.a.error("Failed to generate LAN offer description")})}handleLanAnswer(cn){return qr(this,void 0,void 0,function*(){const{peerConnection:mn}=this;if(!this.config.baseConfig.isLan)throw new Error('"handleLanAnswer" method can only be used with LAN connections. Internet connections should call the "handleSignal" method.');yield mn.setRemoteDescription(cn)})}getChannelFromLabel(cn){switch(cn){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(cn,mn){var xn;let Gn;try{Gn=Object(on.encode)(JSON.stringify(mn))}catch(er){return void pt.a.warn("Failed to encode RTC message",{error:er})}try{cn.send(Gn),(xn=this.sessionMetrics)===null||xn===void 0||xn.incrementLocalSent(mn)}catch(er){pt.a.warn("Failed to send message to channel",{error:er,channel:cn.label})}}channelNotRecognized(cn){return cn!==this.latestTtlStreamChannel&&cn!==this.latestReliableStreamChannel&&cn!==this.latestTryOnceStreamChannel&&cn!==this.reliableStreamChannel}setupChannel(cn){cn.onmessage=mn=>{if(this.channelNotRecognized(cn))return void pt.a.warn("Received message on unrecognized data channel.");let xn;try{xn=JSON.parse(Object(on.decode)(mn.data))}catch(Gn){return void pt.a.warn("Received unparseable message on RTC stream data channel",{error:Gn,channel:cn.label})}xn.communicationType==="message-chunk"?this.receiveChannelMessageChunk(cn,xn):this.receiveChannelMessage(cn,xn)},cn.onerror=mn=>{pt.a.warn("Channel error: "+mn.error,{error:mn.error,sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onopen=()=>{pt.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onclose=()=>{const mn={bufferedAmount:cn.bufferedAmount,sessionId:this.getSessionId(),channelLabel:cn.label};this.closeCalled===!1?pt.a.debug("Unexpected channel closed",mn):pt.a.debug("Channel closed",mn)}}receiveChannelMessage(cn,mn){var xn;const{config:Gn}=this,{remotePeerId:er}=this.config.baseConfig;this.lastMessageTimestamp=new Date().getTime(),mn=Wr(mn),(xn=this.sessionMetrics)===null||xn===void 0||xn.incrementLocalReceived(mn),!this.handleSystemMessage(cn,mn)&&((cn===this.latestTryOnceStreamChannel||cn===this.latestTtlStreamChannel||cn===this.latestReliableStreamChannel)&&!this.isLatestMessage(mn)||Gn.baseConfig.receive(er,mn))}receiveChannelMessageChunk(cn,mn){const xn=this.reassemblyTable.get(mn.id)||[];if(xn.push(mn),xn.length===mn.total){const Gn=function(er){const cr=er.sort((gr,br)=>gr.seqgr.part).reduce((gr,br)=>gr+br);try{return JSON.parse(cr)}catch{return void pt.a.warn("Could not reassemble RTC message chunks")}}(xn);return Gn&&this.receiveChannelMessage(cn,Gn),void this.reassemblyTable.delete(mn.id)}this.reassemblyTable.set(mn.id,xn),this.reassemblyTableLastTimestamp.set(mn.id,new Date().getTime())}handleSystemMessage(cn,mn){var xn,Gn;const{config:er}=this,{baseConfig:cr}=er,{remotePeerId:gr,remoteDeviceId:br}=cr;switch(mn.header.stream.streamType){case"ping":return this.sendSystemMessage(cn,{type:"pong",timestamp:Zt(mn.payload.ping)}),!0;case"pong":{const ur=new Date().getTime()-Zt(mn.payload.pong);return this.pingTimeMs=ur,Tt.aggregate("rtc-ping-time",ur,Object.assign({},br?{deviceId:br}:{})),!0}case"ping-v2":return this.sendPingV2(),!0;case"pong-v2":{const ur=Zt(mn.payload.pongV2),nr=this.pingV2Map.get(ur.id);return nr?.sent!==ur.timestamp&&pt.a.warn("Pong timestamp doesn't match stored value",{currentEntry:nr,pong:ur}),this.pingV2Map.set(ur.id,{sent:ur.timestamp,received:new Date().getTime()}),!0}case"streams-info":{const{sessionMetrics:ur}=this,nr=(xn=mn.payload.streamsInfo)===null||xn===void 0?void 0:xn.timestamp;return!!nr&&(ur?.updateRemoteMessagesCounts(mn),(Gn=cr.onStreamsInfoUpdate)===null||Gn===void 0||Gn.call(cr,gr,nr),!0)}case"stream-control":return!0;default:return!1}}sendSystemMessage(cn,mn){var xn;const{localUserId:Gn,localPeerId:er}=this.config.baseConfig;if(cn.readyState!=="open")return;const cr={entityId:Gn??er,streamName:"$."+mn.type,streamType:mn.type};let gr;switch(mn.type){case"ping":gr={ping:new Date().getTime()};break;case"pong":gr={pong:mn.timestamp};break;case"ping-v2":gr={pingV2:mn.payload};break;case"pong-v2":gr={pongV2:mn.payload};break;case"stream-control":gr={streamControl:mn.streamControl};break;case"streams-info":gr={streamsInfo:(xn=this.sessionMetrics)===null||xn===void 0?void 0:xn.getLocalStreamsInfo(new Date().getTime())}}this.sendOnChannel(cn,Qr(cr,gr))}isLatestMessage(cn){const mn=Pn(cn.header.stream),xn=(this.streamLatestTimestamp.get(mn)||0)<=cn.header.created;return xn&&this.streamLatestTimestamp.set(mn,cn.header.created),xn}}function eo(hr){hr&&clearInterval(hr)}function Yr(){pt.a.debug("forceGarbageCollection() triggered"),queueMicrotask(()=>{let hr=document.createElement("img");hr.src=window.URL.createObjectURL(new Blob([new ArrayBuffer(5e7)])),hr.onerror=function(){window.URL.revokeObjectURL(this.src),hr=null}})}function _o(hr){try{return hr instanceof Error?`${hr.name}: ${hr.message}`:typeof hr=="object"?JSON.stringify(hr):String(hr)}catch{return"Unknown error"}}function ro(hr){var cn,mn;return{userId:(cn=hr.getUserId())===null||cn===void 0?void 0:cn.getValue(),deviceId:(mn=hr.getDeviceId())===null||mn===void 0?void 0:mn.getValue(),organizationId:hr.getOrganizationId(),id:hr.getPeerId(),capabilities:[],capabilitySet:{}}}var Fo=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};const kn=hr=>hr.map(cn=>Object.assign(Object.assign(Object.assign({},cn),cn.username?{username:""}:null),cn.credential?{credential:""}:null));class un{constructor(cn){this.config=cn,this.grpcCallDeadline=5*st.a.second,this.refreshIntervalDelayMs=2*st.a.second,this.iceServersTtl=30*st.a.minute,this.connections=[],this.localConnections=[],this.isConnectionInitiator=new WeakSet,this.isOutgoingConnection=new Set,this.peerDataChannelListeners=[],this.rtcInstancesConstructed=0,this.statsLoopsExecuted=0;const{refreshIntervalDelayMs:mn}=this;this.refreshInterval=vt({func:()=>Fo(this,void 0,void 0,function*(){try{yield this.update()}catch(xn){pt.a.warn("RTC refresh failed",{error:xn})}}),delay:mn,immediate:!0})}send(cn,mn,xn){const Gn=this.getActiveConnection(cn);Gn?Gn.isReady()?Gn.send(mn,xn):pt.a.warn("Send called with unready connection."):pt.a.warn("Send called with no connection.")}controlRemoteStream(cn,mn){const xn=this.getActiveConnection(cn);xn?xn.isReady()?xn.controlRemoteStream(mn):pt.a.warn("controlRemoteStream called with unready connection."):pt.a.warn("controlRemoteStream called with no connection.")}getLocalPeer(){return Fo(this,void 0,void 0,function*(){for(;!this.localPeer;)yield Object(at.a)(.1*st.a.second);return ro(this.localPeer)})}connect(cn,mn){var xn,Gn,er;return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode===!0)throw new Error("connect method called in local only mode.");const{track:cr,signalingClient:gr}=this.config,{localPeer:br,receiveSignalStream:ur,iceServers:nr}=this;if(!br||!ur||!nr)return void pt.a.warn("Connect called prior to local peer, receiveSignalStream, and ICE servers ready");if(this.getActiveConnection(cn))return void pt.a.warn("Connect called for peer with existing connection.");if(this.isOutgoingConnection.has(cn))return void pt.a.warn("Connect called for peer with an existing outgoing connection offer.");this.isOutgoingConnection.add(cn);const Kr=function(zr,Gr,Pr){const{rtcIceTransportPolicies:oo,rtcIceServerProtocol:ao,useAllServers:mo}=Gr||{},lo=zr.map(To=>Object.assign(Object.assign({},To),{urls:To.urls.filter(Jo=>{const Go=(oo===void 0||oo.some(cs=>Vt(Jo,cs)))&&(ao===void 0||It(Jo,ao));return Go||pt.a.debug("Ignoring ICE server: "+Jo,{organizationId:Pr}),Go})})).filter(({urls:To})=>To.filter(Jo=>Jo).length>0);return mo?lo:[jt(lo,"stun"),jt(lo,"turn")].filter(To=>To!==void 0).map(To=>Zt(To))}(nr,mn);pt.a.debug("Received ICE servers:",kn(nr)),pt.a.debug("Using ICE servers:",kn(Kr));const ho=new Uo(yield this.createRTCPeerConnection(Kr),Kr,{baseConfig:{isOffer:!0,isLan:!1,receive:(zr,Gr)=>this.config.receive(zr,Gr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(zr,Gr)=>{var Pr,oo;return(oo=(Pr=this.config).onStreamsInfoUpdate)===null||oo===void 0?void 0:oo.call(Pr,zr,Gr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(xn=br.getUserId())===null||xn===void 0?void 0:xn.getValue(),localPeerId:br.getPeerId(),remotePeerId:cn,sessionType:this.config.sessionType},remoteConfig:{}},zr=>this.onCustomDataChannel(cn,zr)),Nn=yield ho.getOffer();if(!Nn)return pt.a.error("Failed to generate offer."),void this.isOutgoingConnection.delete(cn);pt.a.debug("Sending offer."),cr?.("Sending offer",Nn);const rr=new $t.SendSignalRequest;rr.setSignal(Nn);const Rr=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(gr.sendSignal(rr,yield this.getMetadata()),this.grpcCallDeadline)}catch(zr){pt.a.warn("Error when sending signal",{error:zr})}}))();if(!this.isOutgoingConnection.has(cn))return void pt.a.debug("No offer set after receiving offer signal response.");pt.a.debug("Offer sent.");const vr=(Gn=Rr?.getSessionId())===null||Gn===void 0?void 0:Gn.getValue(),fr=(er=Rr?.getSessionCreatedTimestamp())===null||er===void 0?void 0:er.getValue();return vr&&fr?(ho.setSessionId(vr),ho.setSessionCreatedTimestamp(fr),this.isOutgoingConnection.delete(cn),this.connections.push(ho),this.isConnectionInitiator.add(ho),this.setupHandlers(ho),vr):(pt.a.warn("No session ID or no session created timestamp on send signal response."),void this.isOutgoingConnection.delete(cn))})}connectLan(cn){var mn,xn;return Fo(this,void 0,void 0,function*(){const Gn=new Pt(cn),er=new Uo(yield this.createRTCPeerConnection([]),[],{baseConfig:{isOffer:!0,isLan:!0,receive:(ur,nr)=>this.config.receive(ur,nr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(ur,nr)=>{var Kr,ho;return(ho=(Kr=this.config).onStreamsInfoUpdate)===null||ho===void 0?void 0:ho.call(Kr,ur,nr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(xn=(mn=this.localPeer)===null||mn===void 0?void 0:mn.getUserId())===null||xn===void 0?void 0:xn.getValue(),localPeerId:"lan_client",remotePeerId:cn}},ur=>this.onCustomDataChannel(cn,ur)),cr=yield er.getLanOffer();if(!cr)return pt.a.warn("Could not generate LAN offer"),!1;const gr=yield Gn.postLanRtcOffer({offer:JSON.stringify(cr)}),br=new RTCSessionDescription(JSON.parse(gr.answer));return yield er.handleLanAnswer(br),this.localConnections.push(er),this.isConnectionInitiator.add(er),Object(Wt.a)()})}getConnections(){return[...this.connections,...this.localConnections]}createCustomDataChannel(cn,mn,xn,Gn,er){const cr=this.getActiveConnection(cn);if(cr&&this.isConnectionInitiator.has(cr)){const br=cr.peerConnection.createDataChannel("custom."+mn,xn);return Gn&&(br.binaryType="arraybuffer"),er(cn,br),()=>{}}const gr=(br,ur)=>{cn===br&&ur.label==="custom."+mn&&er(cn,ur)};return this.peerDataChannelListeners.push(gr),()=>{this.peerDataChannelListeners=this.peerDataChannelListeners.filter(br=>br!==gr)}}onCustomDataChannel(cn,mn){this.peerDataChannelListeners.forEach(xn=>xn(cn,mn))}getConnectionStatus(cn){if(this.isOutgoingConnection.has(cn))return"connecting";const mn=this.getActiveConnection(cn);return mn?mn.isReady()?"connected":"connecting":"disconnected"}getConnectionStatsInfo(cn){return Fo(this,void 0,void 0,function*(){const mn=this.getActiveConnection(cn);if(mn)return yield mn.getConnectionStatsInfo()})}disconnect(cn){return Fo(this,void 0,void 0,function*(){const mn=this.getActiveConnection(cn);mn&&(yield mn.close(),this.connections=this.connections.filter(xn=>xn!==mn),this.localConnections=this.localConnections.filter(xn=>xn!==mn))})}getPeers(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,mn=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(cn.getPeers(new $t.GetPeersRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(er){pt.a.warn("Error when getting peers",{error:er})}}))();if(!mn)return[];const xn=mn.getPeersList();if(!xn)return[];const Gn=er=>{var cr,gr;return(gr=(cr=er.getPeerCreatedTimestamp())===null||cr===void 0?void 0:cr.getValue())!==null&&gr!==void 0?gr:0};return xn.sort((er,cr)=>Gn(cr)-Gn(er)).map(er=>ro(er))})}getSessions(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,mn=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(cn.getPeers(new $t.GetPeersRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(er){pt.a.warn("Error when getting peers",{error:er})}}))();if(!mn)return{};const xn=mn.getPeersList(),Gn={};for(const er of xn)Gn[er.getPeerId()]=er.getSessionIdsList();return Gn})}getPing(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getPing();pt.a.warn("Attempted to get ping time from inactive peer.")}getPingInfo(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getPingInfo();pt.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getLastMessageTimestamp();pt.a.warn("Attempted to get last message time from inactive peer.")}getSessionMetricsMessageCounts(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getSessionMetricsMessageCounts();pt.a.warn("Attempted to get session metrics counts from inactive peer.")}isReady(){if(this.config.lanOnlyMode)return!0;const{localPeer:cn,receiveSignalStream:mn,iceServers:xn}=this;return!!(cn&&mn&&xn)}shutdown(){return Fo(this,void 0,void 0,function*(){yield this.refreshInterval.stop(),this.receiveSignalStream&&this.receiveSignalStream.cancel();const cn=this.connections;this.connections=[],yield this.closeConnections(cn);const mn=this.localConnections;this.localConnections=[],yield this.closeConnections(mn),this.isOutgoingConnection.clear(),this.peerDataChannelListeners=[];const{localPeer:xn}=this;if(!xn||this.config.lanOnlyMode)return;const{signalingClient:Gn}=this.config;yield(()=>Fo(this,void 0,void 0,function*(){try{const er=new $t.DeletePeerRequest;er.setPeerId(xn.getPeerId()),yield qt.withDeadline(Gn.deletePeer(er,yield this.getMetadata()),this.grpcCallDeadline)}catch(er){return void pt.a.warn("Error deleting local peer",{error:er})}}))()})}createPeer(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createPeer method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,mn=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(cn.createPeer(new $t.CreatePeerRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(Gn){const er=Gn;pt.a.debug("createPeer failed",{error:er});const cr=_o(er);throw new Error("Was not able to create peer: "+cr)}}))(),xn=mn?.getPeer();if(!xn)throw new Error("Response did not provide peer.");return this.localPeer=xn})}createReceiveSignalStream(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createReceiveSignalStream method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,{localPeer:mn,iceServers:xn}=this;if(!mn||!xn)return;const{receiveSignalStream:Gn}=this;Gn&&Gn.cancel();const er=new $t.ReceiveSignalStreamRequest;er.setPeerId(mn.getPeerId());const cr=yield(()=>Fo(this,void 0,void 0,function*(){try{return cn.receiveSignalStream(er,yield this.getMetadata({hasDeadline:!1}))}catch(gr){pt.a.debug("createReceiveSignalStream failed",{error:gr});const br=_o(gr);throw new Error("Unable to create receive signal stream: "+br)}}))();if(!cr)throw new Error("Response did not provide stream.");return cr.on("data",gr=>Fo(this,void 0,void 0,function*(){var br,ur,nr,Kr;const ho=gr.getSignal(),Nn=(br=ho?.getSessionId())===null||br===void 0?void 0:br.getValue(),rr=ho?.getSenderId(),Rr=ho?.getReceiverId(),vr=(ur=ho?.getSessionCreatedTimestamp())===null||ur===void 0?void 0:ur.getValue();if(!(ho&&Nn&&rr&&Rr&&vr))return void pt.a.warn("Received signal with missing information.");const fr=this.getActiveConnection(rr);if(fr)if(fr.getSessionId()!==Nn){if(pt.a.debug("Received signal: different session for a peer we're already connected to."),(fr.getSessionCreatedTimestamp()||0)>vr)return;const zr=new Uo(yield this.createRTCPeerConnection(xn),xn,{baseConfig:{isOffer:!1,isLan:!1,receive:(Gr,Pr)=>this.config.receive(Gr,Pr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(Gr,Pr)=>{var oo,ao;return(ao=(oo=this.config).onStreamsInfoUpdate)===null||ao===void 0?void 0:ao.call(oo,Gr,Pr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:mn.getPeerId(),localUserId:(Kr=mn.getUserId())===null||Kr===void 0?void 0:Kr.getValue(),remotePeerId:rr},remoteConfig:{sessionId:Nn,sessionCreatedTimestamp:vr}},Gr=>this.onCustomDataChannel(rr,Gr));yield zr.handleSignal(ho),this.connections.push(zr)}else pt.a.debug("Received signal: for an existing connection."),yield fr.handleSignal(ho);else{pt.a.debug("Received signal: new connection.");const zr=new Uo(yield this.createRTCPeerConnection(xn),xn,{baseConfig:{isOffer:!1,isLan:!1,receive:(Gr,Pr)=>this.config.receive(Gr,Pr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(Gr,Pr)=>{var oo,ao;return(ao=(oo=this.config).onStreamsInfoUpdate)===null||ao===void 0?void 0:ao.call(oo,Gr,Pr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:mn.getPeerId(),localUserId:(nr=mn.getUserId())===null||nr===void 0?void 0:nr.getValue(),remotePeerId:rr},remoteConfig:{sessionId:Nn,sessionCreatedTimestamp:vr}},Gr=>this.onCustomDataChannel(rr,Gr));yield zr.handleSignal(ho),this.connections.push(zr)}})),cr.on("end",()=>{cr.cancel(),this.receiveSignalStream=void 0}),cr.on("error",gr=>{switch(gr.code){case Ot.StatusCode.CANCELLED:case Ot.StatusCode.UNAVAILABLE:case Ot.StatusCode.UNKNOWN:pt.a.debug("Receive signal stream error",{error:gr});break;case Ot.StatusCode.UNAUTHENTICATED:pt.a.warn("Receive signal stream error",{error:gr});break;default:pt.a.error("Receive signal stream error",{error:gr})}cr.cancel(),this.receiveSignalStream=void 0}),this.receiveSignalStream=cr})}createRTCPeerConnection(cn){var mn;return Fo(this,void 0,void 0,function*(){const xn=(mn=this.config.alternateRTCPeerConnection)!==null&&mn!==void 0?mn:window.RTCPeerConnection;if(!xn)throw function(){if(typeof navigator>"u")throw new Error("not a browser");const{userAgent:Gn}=navigator;return Gn.includes("Firefox/")?"Firefox":Gn.includes("Edg/")?"Edge":Gn.includes("Chrome/")?"Chrome":Gn.includes("Safari/")?"Safari":Gn.includes("MSIE/")||Gn.includes("Trident/")?"IE":"Other"}()!=="Chrome"?new Error("WebRTC is not enabled. Please try again with the latest version of Google Chrome."):new Error("WebRTC is not enabled. Please ensure WebRTC is not disabled by ad blocking software.");this.rtcInstancesConstructed++,this.rtcInstancesConstructed%20||Yr();try{return new xn({iceServers:cn})}catch(Gn){throw pt.a.debug(`Failed to create RTCPeerConnection: ${this.rtcInstancesConstructed} total allocated`),Gn}})}closeConnections(cn){return Fo(this,void 0,void 0,function*(){const mn=yield en(cn.map(xn=>Fo(this,void 0,void 0,function*(){yield xn.close()})));for(const xn of mn)pt.a.warn("Request to close session failed",{error:xn})})}getActiveConnection(cn){return this.getConnections().find(mn=>mn.getRemotePeerId()===cn&&mn.isActive())}update(){var cn;return Fo(this,void 0,void 0,function*(){if(this.localConnections=this.localConnections.filter(Kr=>Kr.isActive()),this.config.lanOnlyMode)return;const{signalingClient:mn}=this.config;if(!this.localPeer||!this.receiveSignalStream||!this.iceServers){const Kr=[];return this.localPeer||Kr.push(this.createPeer()),this.iceServers||Kr.push(this.updateIceServers()),yield Promise.all(Kr),void(this.receiveSignalStream||(yield this.createReceiveSignalStream()))}const[xn,Gn]=(er=this.connections,cr=Kr=>Kr.isActive(),er.reduce((Kr,ho,Nn,rr)=>{const[Rr,vr]=Kr;return(cr(ho,Nn,rr)?Rr:vr).push(ho),Kr},[[],[]]));var er,cr;yield this.closeConnections(Gn),this.connections=xn,this.gatherConnectionStats().catch(Kr=>{pt.a.warn("Error calling gatherConnectionStats",{error:Kr})}),this.statsLoopsExecuted++;const{localPeer:gr}=this,br=this.connections.filter(Kr=>Kr.getSessionId).map(Kr=>Zt(Kr.getSessionId()));gr.setSessionIdsList(br);const ur=new $t.RefreshPeerRequest;ur.setPeer(gr);try{yield qt.withDeadline(mn.refreshPeer(ur,yield this.getMetadata()),this.grpcCallDeadline)}catch(Kr){Kr instanceof Ot.RpcError&&Kr.code===Ot.StatusCode.NOT_FOUND?(pt.a.warn("Peer expired, creating new peer",{peerId:gr.getPeerId()}),yield this.reset()):pt.a.warn("Error calling RefreshPeer",{error:Kr})}const nr=yield this.getPeers();for(const Kr of this.connections)Kr.setRemoteDeviceId((cn=nr.find(ho=>ho.id===Kr.getRemotePeerId()))===null||cn===void 0?void 0:cn.deviceId)})}gatherConnectionStats(){return Fo(this,void 0,void 0,function*(){if(this.statsLoopsExecuted%10!=0||this.connections.length!==1)return;const cn=yield this.connections[0].getConnectionStatsInfo(),mn=cn?_r(cn):void 0;mn?Tt.setTag("rtc-connection-type",mn):Tt.setTag("rtc-connection-type","unknown")})}reset(){return Fo(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.isOutgoingConnection.clear(),yield this.createPeer(),yield this.createReceiveSignalStream()})}updateIceServers(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)return;const{iceServersLastUpdate:cn,iceServersTtl:mn}=this,xn=new Date().getTime();if(!cn||xn-cn>mn)try{const Gn=(yield qt.withDeadline(this.config.signalingClient.getIceServers(new $t.GetIceServersRequest,yield this.getMetadata()),this.grpcCallDeadline)).getIceServers();this.iceServers=JSON.parse(Gn),this.iceServersLastUpdate=xn}catch(Gn){pt.a.warn("Error in updateIceServers",{error:Gn})}})}setupHandlers(cn){const{peerConnection:mn}=cn,xn=cn.getSessionCreatedTimestamp();mn.onconnectionstatechange=()=>Fo(this,void 0,void 0,function*(){const Gn=mn.connectionState;if(!xn)return;const er=cn.getRemoteDeviceId();switch(Gn){case"connected":Tt.aggregate("rtc-connect-time",new Date().getTime()-xn,Object.assign({},er?{deviceId:er}:{}));break;case"failed":Tt.increment("rtc-connect-failed",Object.assign({},er?{deviceId:er}:{}))}})}getMetadata(cn={}){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getMetadata method cannot be called in local-only mode");const{getToken:mn}=this.config,{grpcCallDeadline:xn}=this,{hasDeadline:Gn=!0}=cn,er=Gn?{deadline:(Date.now()+xn).toString(10)}:null;try{const cr=yield mn();return Object.assign({authorization:cr},er)}catch(cr){throw pt.a.error("getToken() failed",{error:cr}),new Error("Cannot get authorization token")}})}}var pn=et(12),Qn=et(11),Wn=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class jn{constructor(cn,mn){this.sentMessagesCounts=new Map,this.receivedMessagesCounts=new Map,this.sessionId=cn,this.connection=mn}incrementMessageSent(cn){const mn=Pn(cn.header.stream);this.sentMessagesCounts.set(mn,(this.sentMessagesCounts.get(mn)||0)+1)}incrementMessageReceived(cn){const mn=Pn(cn.header.stream);this.receivedMessagesCounts.set(mn,(this.receivedMessagesCounts.get(mn)||0)+1)}uploadMetrics(){return Wn(this,void 0,void 0,function*(){const{sessionId:cn}=this,mn=yield this.connection.peerConnection.getStats(),xn={};mn.forEach(er=>xn[er.id]=er),pt.a.debug("rtc-stats",Object.assign(Object.assign({},xn),{sessionId:cn}));const Gn=[...new Set(Array.from(this.sentMessagesCounts.keys()).concat(Array.from(this.receivedMessagesCounts.keys())))].reduce((er,cr)=>{const gr=this.sentMessagesCounts.get(cr),br=this.receivedMessagesCounts.get(cr);return Object.assign(Object.assign({},er),{[cr+"-sent"]:gr,[cr+"-received"]:br})},{sessionId:cn});pt.a.debug("rtc-message-report",Gn)})}}function Fr(hr,cn){return Pn(hr)===Pn(cn)}var Er=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class wr{constructor(cn,mn){this.peerConnection=cn,this.config=mn,this.connectTimeoutMs=10*st.a.second,this.gatherIceTimeoutMs=5*st.a.second,this.pingUpdateTimeoutMs=2*st.a.second,this.streamLatestTimestamp=new Map,this.closeCalled=!1,this.connectCalled=!1,this.sentOffer=!1,this.receivedIceCandidate=!1;const{isOffer:xn}=mn;xn?this.initializeChannels(cn):cn.ondatachannel=Gn=>{switch(Gn.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=Gn.channel;break;case"stream.reliable":this.reliableStreamChannel=Gn.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=Gn.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=Gn.channel}this.setupChannel(Gn.channel)},this.sessionMetrics=new jn(this.getSessionId(),this)}connect(){return Er(this,void 0,void 0,function*(){if(this.connectCalled)return;this.connectCalled=!0,this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:Gn}=this;Gn&&this.sendSystemMessage(Gn,{type:"ping"})},this.pingUpdateTimeoutMs),this.connectTimeout=setTimeout(()=>Er(this,void 0,void 0,function*(){this.isReady()||(pt.a.warn("RTC connect timed out, closing connection"),yield this.close())}),this.connectTimeoutMs);const{peerConnection:cn,config:{isOffer:mn,sessionId:xn}}=this;if(mn){const Gn=yield cn.createOffer();yield cn.setLocalDescription(Gn)}mn&&(this.gatherIceTimeout=setTimeout(()=>Er(this,void 0,void 0,function*(){this.sentOffer||(pt.a.warn("ICE gathering timed out"),this.receivedIceCandidate?(pt.a.warn("Attempting to connect with partial ICE candidate pool"),yield this.sendOffer()):yield this.close())}),this.gatherIceTimeoutMs),cn.onicecandidate=Gn=>Er(this,void 0,void 0,function*(){Gn.candidate?this.receivedIceCandidate=!0:yield this.sendOffer()}),cn.onicegatheringstatechange=()=>Er(this,void 0,void 0,function*(){cn.iceGatheringState==="complete"&&(yield this.sendOffer())}),cn.onnegotiationneeded=()=>{pt.a.debug("Negotiation needed",{sessionId:xn})})})}handleSignal(cn){return Er(this,void 0,void 0,function*(){const{peerConnection:mn,config:{sessionId:xn,sendSignal:Gn}}=this,{description:er}=JSON.parse(cn.payload);if(pt.a.debug("Handling signal",{sessionId:xn,description:JSON.stringify(er)}),er)if(mn.signalingState!=="stable"||mn.connectionState!=="connected")if(mn.remoteDescription)pt.a.warn("Received SDP signal during negotiation when remote description is already set: "+JSON.stringify(cn));else if(er.type==="offer"){yield mn.setRemoteDescription(er);const cr=yield mn.createAnswer();yield mn.setLocalDescription(cr),yield Gn({payload:JSON.stringify({description:cr})})}else er.type==="answer"&&(yield mn.setRemoteDescription(er));else pt.a.warn("Received SDP signal when signaling is stable and connected: "+JSON.stringify(cn));else pt.a.warn("Received non-SDP signal: "+JSON.stringify(cn))})}send(cn,mn){const xn=this.getChannelFromLabel(mn.channelLabel);xn?this.sendOnChannel(xn,cn):pt.a.warn("Send called with unexpected channel label",{channelLabel:mn.channelLabel})}controlRemoteStream(cn){this.sendSystemMessage(Zt(this.reliableStreamChannel),{type:"stream-control",streamControl:cn})}isActive(){return new Set(["new","connecting","connected"]).has(this.peerConnection.connectionState)}isReady(){const{peerConnection:cn,latestTtlStreamChannel:mn,reliableStreamChannel:xn,latestTryOnceStreamChannel:Gn}=this;return!!(xn&&mn&&Gn)&&cn.connectionState==="connected"&&xn.readyState==="open"&&mn.readyState==="open"&&Gn.readyState==="open"}isClosed(){const{peerConnection:cn,reliableStreamChannel:mn,latestTryOnceStreamChannel:xn,latestTtlStreamChannel:Gn}=this;return!(cn.connectionState!=="closed"||mn!==void 0&&mn.readyState!=="closed"||xn!==void 0&&xn.readyState!=="closed"||Gn!==void 0&&Gn.readyState!=="closed")}needsClosing(){const{peerConnection:cn,latestTtlStreamChannel:mn,reliableStreamChannel:xn,latestTryOnceStreamChannel:Gn}=this;if(this.isClosed())return!1;const er=new Set(["closing","closed"]),cr=gr=>gr&&er.has(gr.readyState);return Ir(cn)||cr(mn)||cr(xn)||cr(Gn)}close(){return Er(this,void 0,void 0,function*(){this.closeCalled||(this.closeCalled=!0,yield this.sessionMetrics.uploadMetrics(),this.pingUpdateTimeout&&clearInterval(this.pingUpdateTimeout),this.connectTimeout&&clearTimeout(this.connectTimeout),this.gatherIceTimeout&&clearTimeout(this.gatherIceTimeout),this.peerConnection.close())})}getPing(){return this.pingTimeMs}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionId(){return this.config.sessionId}getRemotePeer(){return this.config.remotePeer}initializeChannels(cn){this.latestTtlStreamChannel=cn.createDataChannel("stream.latest-ttl",Xt),this.reliableStreamChannel=cn.createDataChannel("stream.reliable",dn),this.latestReliableStreamChannel=cn.createDataChannel("stream.latest-reliable",_n),this.latestTryOnceStreamChannel=cn.createDataChannel("stream.latest-try-once",Fn),this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}sendOffer(){return Er(this,void 0,void 0,function*(){if(this.sentOffer||(this.sentOffer=!0,Ir(this.peerConnection)))return;const{peerConnection:cn,config:{sendSignal:mn}}=this,xn=yield cn.createOffer();yield cn.setLocalDescription(xn);const Gn={payload:JSON.stringify({description:xn})};yield mn(Gn)})}getChannelFromLabel(cn){switch(cn){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(cn,mn){let xn;try{xn=Object(on.encode)(JSON.stringify(mn))}catch(Gn){return void pt.a.warn("Failed to encode RTC message",{error:Gn})}try{cn.send(xn),this.sessionMetrics.incrementMessageSent(mn)}catch(Gn){pt.a.warn("Failed to send message to channel",{error:Gn,channel:cn.label})}}channelNotRecognized(cn){return cn!==this.latestTtlStreamChannel&&cn!==this.latestReliableStreamChannel&&cn!==this.latestTryOnceStreamChannel&&cn!==this.reliableStreamChannel}setupChannel(cn){cn.onmessage=mn=>{if(this.channelNotRecognized(cn))return void pt.a.warn("Received message on unrecognized data channel.");let xn;try{xn=JSON.parse(Object(on.decode)(mn.data))}catch(Gn){return void pt.a.warn("Received unparseable RTC message",{error:Gn,channel:cn.label})}if(this.lastMessageTimestamp=new Date().getTime(),xn=Wr(xn),this.sessionMetrics.incrementMessageReceived(xn),!this.handleSystemMessage(cn,xn)){if(!this.hasCapabilities(xn))return void pt.a.warn("Received RTC message that was not within the capability scope of the connection.");(cn===this.latestTryOnceStreamChannel||cn===this.latestTtlStreamChannel||cn===this.latestReliableStreamChannel)&&!this.isLatestMessage(xn)||this.config.receive(this.config.remotePeer.id,xn)}},cn.onerror=mn=>{pt.a.warn("Channel error: "+mn.error,{error:mn.error,sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onopen=()=>{pt.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onclose=()=>{const mn={bufferedAmount:cn.bufferedAmount,sessionId:this.getSessionId(),channelLabel:cn.label};this.closeCalled===!1?pt.a.debug("Unexpected channel closed",mn):pt.a.debug("Channel closed",mn)}}handleSystemMessage(cn,mn){switch(mn.header.stream.streamType){case"ping":return this.sendSystemMessage(cn,{type:"pong",timestamp:Zt(mn.payload.ping)}),!0;case"pong":{const xn=new Date().getTime()-Zt(mn.payload.pong);return this.pingTimeMs=xn,Tt.aggregate("rtc-ping-time",xn),!0}case"stream-control":return!0;default:return!1}}sendSystemMessage(cn,mn){if(cn.readyState!=="open")return;const xn={entityId:Zt(this.config.localPeer.deviceId||this.config.localPeer.userId),streamName:"$."+mn.type,streamType:mn.type};let Gn;switch(mn.type){case"ping":Gn={ping:new Date().getTime()};break;case"pong":Gn={pong:mn.timestamp};break;case"stream-control":Gn={streamControl:mn.streamControl}}this.sendOnChannel(cn,Qr(xn,Gn))}hasCapabilities(cn){var mn,xn;const{localPeer:Gn,remotePeer:er}=this.config,cr=(mn=Gn.capabilitySet.streaming)===null||mn===void 0?void 0:mn.streams,gr=cr&&cr.some(nr=>nr.receive&&Fr(nr.stream,cn.header.stream)),br=(xn=er.capabilitySet.streaming)===null||xn===void 0?void 0:xn.streams,ur=br&&br.some(nr=>nr.send&&Fr(nr.stream,cn.header.stream));return gr||ur}isLatestMessage(cn){const mn=Pn(cn.header.stream),xn=(this.streamLatestTimestamp.get(mn)||0)<=cn.header.created;return xn&&this.streamLatestTimestamp.set(mn,cn.header.created),xn}}var tr=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class ar{constructor(cn){this.config=cn,this.connections=[],this.connectingSessions=new Map,this.rtcInstancesConstructed=0,this.updateInterval=vt({func:()=>tr(this,void 0,void 0,function*(){try{yield this.update()}catch(mn){pt.a.warn("RTC update failed",{error:mn})}}),delay:250*st.a.millisecond,immediate:!0}),this.localPeer=this.createPeer()}send(cn,mn,xn){const Gn=this.getActiveConnection(cn);Gn?Gn.isReady()?Gn.send(mn,xn):pt.a.warn("Attempted to send with an active connection to that peer which was not yet ready."):pt.a.warn("Attempted to send with no active connection to that peer.")}controlRemoteStream(cn,mn){const xn=this.getActiveConnection(cn);xn?xn.isReady()?xn.controlRemoteStream(mn):pt.a.warn("Attempted to control remote stream with an active connection to that peer which was not yet ready."):pt.a.warn("Attempted to control remote stream with no active connection to that peer.")}connect(cn){return tr(this,void 0,void 0,function*(){const mn=yield this.getLocalPeer();if(this.getActiveConnection(cn))return void pt.a.warn("Attempted to connect to peer with an already active connection.");let xn;try{xn=yield this.config.signalingClient.createSession(yield this.config.getToken(),{offerPeerId:mn.id,answerPeerId:cn})}catch(Gn){Object(pn.a)(Gn,Qn.a,er=>er.statusCode===404),pt.a.warn("Attempted to connect to peer that does not exist.")}if(xn)for(this.connectingSessions.set(xn.id,new Date().getTime()),yield this.connectToSession(xn);;)switch(yield Object(at.a)(.1),this.getConnectionStatus(cn)){case"connecting":continue;case"connected":return xn.id;case"disconnected":return}})}getConnectionStatus(cn){const mn=this.getActiveConnection(cn);return mn?mn.isReady()?"connected":"connecting":"disconnected"}getIceMode(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.iceMode}disconnect(cn){return tr(this,void 0,void 0,function*(){const mn=this.getActiveConnection(cn);mn&&(yield this.closeConnection(mn))})}getLocalPeer(){return tr(this,void 0,void 0,function*(){return yield this.localPeer})}getPeers(){return tr(this,void 0,void 0,function*(){return yield this.config.signalingClient.getPeers(yield this.config.getToken())})}getPing(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getPing();pt.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getLastMessageTimestamp();pt.a.warn("Attempted to get ping time from inactive peer.")}shutdown(){return tr(this,void 0,void 0,function*(){yield this.updateInterval.stop();const cn=this.connections;this.connections=[],yield this.closeConnections(cn)})}closeConnection(cn){return tr(this,void 0,void 0,function*(){this.connectingSessions.delete(cn.getSessionId()),yield cn.close();try{yield this.config.signalingClient.deleteSession(yield this.config.getToken(),cn.getSessionId())}catch(mn){Object(pn.a)(mn,Qn.a,xn=>xn.statusCode===404)}})}getSessions(){return tr(this,void 0,void 0,function*(){const cn=yield this.getLocalPeer();return(yield this.config.signalingClient.getSessions(yield this.config.getToken())).filter(mn=>mn.offer.peer.id===cn.id||mn.answer.peer.id===cn.id)})}createPeer(){return tr(this,void 0,void 0,function*(){return yield this.config.signalingClient.createPeer(yield this.config.getToken(),{capabilitySet:this.config.capabilitySet||{}})})}createRTCPeerConnection(cn={}){return tr(this,void 0,void 0,function*(){const mn=this.config.alternateRTCPeerConnection||RTCPeerConnection;this.rtcInstancesConstructed++,this.rtcInstancesConstructed%20||Yr();try{return new mn(Object.assign({iceServers:yield this.config.signalingClient.getIceServers(yield this.config.getToken())},cn))}catch(xn){throw pt.a.debug(`Failed to create RTCPeerConnection: ${this.rtcInstancesConstructed} total allocated`),xn}})}closeConnections(cn){return tr(this,void 0,void 0,function*(){const mn=yield en(cn.map(xn=>tr(this,void 0,void 0,function*(){yield this.closeConnection(xn)})));for(const xn of mn)pt.a.warn("Request to close session failed",{error:xn})})}reset(){return tr(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.connectingSessions=new Map,this.localPeer=this.createPeer(),yield this.localPeer})}getActiveConnection(cn){return this.connections.find(mn=>mn.getRemotePeer().id===cn&&mn.isActive())}update(){return tr(this,void 0,void 0,function*(){const cn=yield this.getLocalPeer();try{yield this.config.signalingClient.refreshPeer(yield this.config.getToken(),cn.id)}catch(mn){Object(pn.a)(mn,Qn.a,xn=>xn.statusCode===404),pt.a.warn("Peer expired, creating new peer",{peerId:cn.id}),yield this.reset()}yield this.handleSessions(yield this.getSessions())})}handleSessions(cn){return tr(this,void 0,void 0,function*(){yield this.syncConnectionsAndSessions(cn);const mn=cn.map(xn=>({session:xn,connection:this.connections.find(Gn=>Gn.getSessionId()===xn.id)}));yield Promise.all(mn.map(({session:xn,connection:Gn})=>tr(this,void 0,void 0,function*(){return yield this.maintainConnection(xn,Gn)})))})}syncConnectionsAndSessions(cn){return tr(this,void 0,void 0,function*(){const mn=new Set(cn.map(er=>er.id)),xn=er=>mn.has(er.getSessionId())||this.connectingSessions.has(er.getSessionId());this.connections=this.connections.filter(er=>xn(er));const Gn=this.connections.filter(er=>!xn(er)||er.needsClosing());yield Promise.all(Gn.map(er=>tr(this,void 0,void 0,function*(){yield this.closeConnection(er)})))})}maintainConnection(cn,mn){return tr(this,void 0,void 0,function*(){const xn=yield this.getLocalPeer(),Gn=cn.offer.peer.id===xn.id;if(mn){if(mn.isReady())try{yield this.config.signalingClient.refreshSession(yield this.config.getToken(),cn.id)}catch(er){Object(pn.a)(er,Qn.a,cr=>cr.statusCode===404),pt.a.debug("Refresh session not found",{sessionId:cn.id})}else if(mn.isActive())try{yield this.consumeSignals(mn)}catch(er){pt.a.warn("Failed to ingest signals, closing connection",{error:er}),yield this.closeConnection(mn)}}else{if(Gn)return;yield this.connectToSession(cn)}})}connectToSession(cn){return tr(this,void 0,void 0,function*(){const mn=yield this.getLocalPeer(),xn=cn.offer.peer.id===mn.id,Gn=yield this.createRTCPeerConnection(),er=new wr(Gn,{localPeer:xn?cn.offer.peer:cn.answer.peer,remotePeer:xn?cn.answer.peer:cn.offer.peer,sessionId:cn.id,isOffer:xn,sendSignal:cr=>this.sendSignal(cn.id,cr),receive:(cr,gr)=>this.config.receive(cr,gr)});if(this.connections.find(cr=>cr.getSessionId()===cn.id))return pt.a.warn("connectToSession called on a session that already has a connection.",{sessionId:cn.id}),void(yield er.close());this.setupHandlers(er),this.connections.push(er);try{yield er.connect()}catch(cr){pt.a.warn("Failed to handle negotiation, closing connection",{error:cr}),yield this.closeConnection(er)}})}setupHandlers(cn){const{peerConnection:mn}=cn,xn=cn.getSessionId();mn.onconnectionstatechange=()=>tr(this,void 0,void 0,function*(){const Gn=this.connectingSessions.get(xn);if(Gn===void 0)return;const er=mn.connectionState;switch(Ir(mn)&&this.connectingSessions.delete(xn),er){case"connected":{this.connectingSessions.delete(xn);const cr=new Date().getTime()-Gn;Tt.aggregate("rtc-connect-time",cr);break}case"failed":Tt.increment("rtc-connect-failed"),yield this.closeConnection(cn)}})}consumeSignals(cn){return tr(this,void 0,void 0,function*(){let mn=[];try{mn=yield this.config.signalingClient.takeSignals(yield this.config.getToken(),cn.getSessionId())}catch(xn){Object(pn.a)(xn,Qn.a,Gn=>Gn.statusCode===404)}for(const xn of mn)yield cn.handleSignal(xn)})}sendSignal(cn,mn){return tr(this,void 0,void 0,function*(){try{yield this.config.signalingClient.addSignals(yield this.config.getToken(),cn,{signals:[mn]})}catch(xn){Object(pn.a)(xn,Qn.a,Gn=>Gn.statusCode===404)}})}}},,function(s,o,et){et.r(o),et.d(o,"LogClient",function(){return ot});var tt=et(26),nt=et(12),rt=et(11),it=function(st,at,lt,ut){return new(lt||(lt=Promise))(function(dt,ht){function ct(gt){try{ft(ut.next(gt))}catch(yt){ht(yt)}}function pt(gt){try{ft(ut.throw(gt))}catch(yt){ht(yt)}}function ft(gt){var yt;gt.done?dt(gt.value):(yt=gt.value,yt instanceof lt?yt:new lt(function(Ut){Ut(yt)})).then(ct,pt)}ft((ut=ut.apply(st,at||[])).next())})};class ot extends tt.a{log(at){return it(this,void 0,void 0,function*(){const lt=ot.token;try{yield this.fetch("logs",{token:lt,method:"POST",body:{logs:at},allowUnsafeRetries:!0})}catch(ut){Object(nt.a)(ut,rt.a,dt=>dt.statusCode===401&<!==void 0),ot.token===lt&&delete ot.token,yield this.log(at)}})}}},function(s,o,et){var tt={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let nt;const rt=new Uint8Array(16);function it(){if(!nt&&(nt=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!nt))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return nt(rt)}const ot=[];for(let at=0;at<256;++at)ot.push((at+256).toString(16).slice(1));function st(at,lt=0){return(ot[at[lt+0]]+ot[at[lt+1]]+ot[at[lt+2]]+ot[at[lt+3]]+"-"+ot[at[lt+4]]+ot[at[lt+5]]+"-"+ot[at[lt+6]]+ot[at[lt+7]]+"-"+ot[at[lt+8]]+ot[at[lt+9]]+"-"+ot[at[lt+10]]+ot[at[lt+11]]+ot[at[lt+12]]+ot[at[lt+13]]+ot[at[lt+14]]+ot[at[lt+15]]).toLowerCase()}o.a=function(at,lt,ut){if(tt.randomUUID&&!lt&&!at)return tt.randomUUID();const dt=(at=at||{}).random||(at.rng||it)();if(dt[6]=15&dt[6]|64,dt[8]=63&dt[8]|128,lt){ut=ut||0;for(let ht=0;ht<16;++ht)lt[ut+ht]=dt[ht];return lt}return st(dt)}}])})})(dist);var distExports=dist.exports;const SessionTypes={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3,HEADLESS:4},singleton=Symbol("RtcClientPool.instance");var Sn;class RtcClientPool{constructor(o){he(this,Sn,null),he(this,"createClient"),he(this,"ttlMs"),he(this,"proxyHandler"),he(this,"proxyReceivers",new Map),he(this,"teardownTimeout",null),he(this,"dispatch",(nt,rt)=>{this.proxyReceivers.forEach(it=>it?.(nt,rt))});const{createClient:et,ttlMs:tt=0}=o;this.createClient=et,this.ttlMs=Math.max(tt,0),this.proxyHandler={get:(nt,rt,it)=>{switch(rt){case"shutdown":return()=>this.releaseInstance(it);default:return Reflect.get(nt,rt,it)}}}}get isActive(){return this[singleton]!==null}get size(){return this.proxyReceivers.size}get(o){const et=new Proxy(this.allocate(),this.proxyHandler);return this.proxyReceivers.set(et,o??null),et}allocate(){if(this[singleton])return this.teardownTimeout&&(clearTimeout(this.teardownTimeout),this.teardownTimeout=null),this[singleton];const o=this.createClient(this.dispatch);return this[singleton]=o,o}async teardown(){const o=this[singleton];if(!o){console.warn("singleton has already been shutdown!");return}try{await o.shutdown()}finally{this[singleton]=null}}async releaseInstance(o){return this.proxyReceivers.delete(o)?this.proxyReceivers.size!==0?!1:(!this.teardownTimeout&&Number.isFinite(this.ttlMs)&&(this.ttlMs===0?await this.teardown():this.teardownTimeout=setTimeout(()=>{this.teardown().catch(et=>console.error("teardown failed",{err:et})).finally(()=>this.teardownTimeout=null)},this.ttlMs)),!0):(console.warn("this instance has already been released!"),!1)}}Sn=singleton;const getToken=async()=>defined$1(Authentication.token,"Realtime when user isn't authorized"),EnumRtcClientPools={[SessionTypes.UNKNOWN]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.UNKNOWN,receive:s})}),[SessionTypes.TELEOP]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.TELEOP,receive:s})}),[SessionTypes.PORT_FORWARD]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.PORT_FORWARD,receive:s})}),[SessionTypes.OBSERVE]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.OBSERVE,receive:s})}),[SessionTypes.HEADLESS]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.HEADLESS,receive:s})})},AppRtcClientPools={...EnumRtcClientPools,unknown:EnumRtcClientPools[SessionTypes.UNKNOWN],teleop:EnumRtcClientPools[SessionTypes.TELEOP],portForward:EnumRtcClientPools[SessionTypes.PORT_FORWARD],observe:EnumRtcClientPools[SessionTypes.OBSERVE],headless:EnumRtcClientPools[SessionTypes.HEADLESS]},defaultRtcClientPool=EnumRtcClientPools[SessionTypes.TELEOP],getRtcClientPool=s=>{const{sessionType:o}=s;return o?AppRtcClientPools[o]:defaultRtcClientPool};class CaptureStream{constructor(o){he(this,"token"),this.captureSession=o}async ingestJSON(o){if(!this.token){const et=await(await fetch(`${FORMANT_API_URL}/v1/admin/capture-sessions/${this.captureSession.code}/authenticate`,{method:"POST"})).json();this.token=et.token}await fetch(`${FORMANT_API_URL}/v1/ingest`,{method:"POST",body:JSON.stringify({deviceId:this.captureSession.deviceId,name:this.captureSession.streamName,type:"json",points:[[Date.now(),JSON.stringify(o)]]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+this.token}})}}function delay$1(s){return new Promise(o=>setTimeout(o,s))}const isRtcPeer=s=>s!==void 0&&s.capabilities!==void 0&&s.capabilitySet!==void 0;class DataChannel{constructor(o){he(this,"ready",!1),he(this,"listeners",[]),he(this,"openListeners",[]),he(this,"closeListeners",[]),he(this,"errorListeners",[]),he(this,"binaryListeners",[]),he(this,"error"),he(this,"decoder",new TextDecoder),this.dataChannel=o,this.dataChannel.binaryType="arraybuffer",this.dataChannel.onopen=()=>{this.setReady()},this.dataChannel.onclose=()=>{this.ready=!1,this.closeListeners.forEach(et=>et())},this.dataChannel.onerror=et=>{console.error(et),this.error="An error occurred in DataChannel",this.errorListeners.forEach(tt=>tt(et))},this.dataChannel.onmessage=et=>{this.listeners.forEach(tt=>{const nt=new Uint8Array(et.data),rt=this.decoder.decode(nt);tt(rt)}),this.binaryListeners.forEach(tt=>{tt(new Uint8Array(et.data))})}}setReady(){this.ready=!0,this.openListeners.forEach(o=>o())}addOpenListener(o){this.openListeners.push(o)}removeOpenListener(o){this.openListeners=this.openListeners.filter(et=>et!==o)}addCloseListener(o){this.closeListeners.push(o)}removeCloseListener(o){this.closeListeners=this.closeListeners.filter(et=>et!==o)}addErrorListener(o){this.errorListeners.push(o)}removeErrorListener(o){this.errorListeners=this.errorListeners.filter(et=>et!==o)}async waitTilReady(){return this.ready?!0:new Promise((o,et)=>{let tt=setInterval(()=>{this.dataChannel.readyState==="open"&&this.setReady(),this.ready&&(clearInterval(tt),o(!0)),this.error&&et(this.error)},10)})}send(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}sendBinary(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}addListener(o){this.listeners.push(o)}removeListener(o){const et=this.listeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.listeners.splice(et,1)}addBinaryListener(o){this.binaryListeners.push(o)}removeBinaryListener(o){const et=this.binaryListeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.binaryListeners.splice(et,1)}}var eventemitter3={exports:{}};(function(s){var o=Object.prototype.hasOwnProperty,et="~";function tt(){}Object.create&&(tt.prototype=Object.create(null),new tt().__proto__||(et=!1));function nt(st,at,lt){this.fn=st,this.context=at,this.once=lt||!1}function rt(st,at,lt,ut,dt){if(typeof lt!="function")throw new TypeError("The listener must be a function");var ht=new nt(lt,ut||st,dt),ct=et?et+at:at;return st._events[ct]?st._events[ct].fn?st._events[ct]=[st._events[ct],ht]:st._events[ct].push(ht):(st._events[ct]=ht,st._eventsCount++),st}function it(st,at){--st._eventsCount===0?st._events=new tt:delete st._events[at]}function ot(){this._events=new tt,this._eventsCount=0}ot.prototype.eventNames=function(){var st=[],at,lt;if(this._eventsCount===0)return st;for(lt in at=this._events)o.call(at,lt)&&st.push(et?lt.slice(1):lt);return Object.getOwnPropertySymbols?st.concat(Object.getOwnPropertySymbols(at)):st},ot.prototype.listeners=function(st){var at=et?et+st:st,lt=this._events[at];if(!lt)return[];if(lt.fn)return[lt.fn];for(var ut=0,dt=lt.length,ht=new Array(dt);ut{nt.payload.jointState&&this.currentListeners.forEach(rt=>{nt.payload.jointState&&rt(nt.payload.jointState)})}),this.device=o,this.config=et}async synchronize(){this.device.addRealtimeListener(this.onRealtimeMessage),this.device.startListeningToRealtimeDataStream(this.config.currentJointStateStream)}async desynchronize(){this.device.removeRealtimeListener(this.onRealtimeMessage),this.device.stopListeningToRealtimeDataStream(this.config.currentJointStateStream)}async addCurrentJointStateListener(o){this.currentListeners.push(o)}}class RequestDataChannel{constructor(o,et,tt){he(this,"channel"),he(this,"requestIdToResponseMap",new Map),this.device=o,this.channel_name=et,this.timeout=tt}addOpenListener(o){defined$1(this.channel,"channel not initalized").addOpenListener(o)}removeOpenListener(o){defined$1(this.channel,"channel not initalized").removeOpenListener(o)}addCloseListener(o){defined$1(this.channel,"channel not initalized").addCloseListener(o)}removeCloseListener(o){defined$1(this.channel,"channel not initalized").removeCloseListener(o)}addErrorListener(o){defined$1(this.channel,"channel not initalized").addErrorListener(o)}removeErrorListener(o){defined$1(this.channel,"channel not initalized").removeErrorListener(o)}}class BinaryRequestDataChannel extends RequestDataChannel{constructor(){super(...arguments),he(this,"RESPONSE_SUCCESS_BYTE",0),he(this,"decoder",new TextDecoder)}generateBinaryId(){const o=new Uint8Array(16);for(let et=0;et{const et=o.slice(0,16).toString();if(et.length===0)throw new Error("Invalid response");const tt=o.slice(16);if(tt.length===0)throw new Error("Invalid response");this.requestIdToResponseMap.has(et)&&this.requestIdToResponseMap.set(et,tt)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateBinaryId(),it=rt.toString();tt.set(it,!0),et.sendBinary(new Uint8Array([...rt,...o]));const ot=new Date().getTime();for(;new Date().getTime(){const et=JSON.parse(o),{id:tt,data:nt,error:rt}=et;if(!tt)throw new Error("Invalid response");if(!nt&&!rt)throw new Error("Invalid response");this.requestIdToResponseMap.has(tt)&&this.requestIdToResponseMap.set(tt,et)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateTextId();tt.set(rt,!0),et.send(JSON.stringify({id:rt,data:o}));const it=new Date().getTime();for(;new Date().getTime(){this.realtimeListeners.forEach(tt=>tt(o,et))})}stopConnectionMonitoring(){clearInterval(this.connectionMonitorInterval),this.connectionMonitorInterval=void 0}assertNotCancelled(o){if(o)throw new Error("Cancelled by deadline")}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}addRealtimeListener(o){this.realtimeListeners.push(o)}removeRealtimeListener(o){const et=this.realtimeListeners.indexOf(o);if(et===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(et,1)}async getRealtimeManipulators(){var o;const et=await this.getConfiguration(),tt=[];for(const nt of(o=et.teleop.rosStreams)!=null?o:[])nt.topicType=="sensor_msgs/JointState"&&tt.push(new Manipulator(this,{currentJointStateStream:{name:nt.topicName},plannedJointStateStream:nt.plannedTopic?{name:nt.plannedTopic}:void 0,planValidStream:nt.planValidTopic?{name:nt.planValidTopic}:void 0,endEffectorStream:nt.endEffectorTopic?{name:nt.endEffectorTopic}:void 0,endEffectorLinkName:nt.endEffectorLinkName,baseReferenceFrame:nt.baseReferenceFrame,localFrame:nt.localFrame}));return tt}async getRealtimeVideoStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="formant/H264VideoFrame"&&st.push({name:at.topicName}),(at.topicType==="sensor_msgs/Image"||at.topicType==="sensor_msgs/CompressedImage")&&at.encodeVideo&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});return st}createCustomRequestDataChannel(o,et=3e3){return new TextRequestDataChannel(this,o,et)}createCustomBinaryRequestDataChannel(o,et=3e3){return new BinaryRequestDataChannel(this,o,et)}async startListeningToRealtimeVideo(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o,enablePriorityUpload:!0,pipeline:"telemetry"})}async disableRealtimeTelemetryPriorityIngestion(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o,enablePriorityUpload:!1,pipeline:"telemetry"})}async changeStreamAudioType(o,et){const tt=defined$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.controlRemoteStream(defined$1(nt).id,{streamName:o,setAudioFormat:et})}async createCustomDataChannel(o,et){const tt=defined$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer(),rt=await new Promise(it=>{tt.createCustomDataChannel(defined$1(nt).id,o,{ordered:!0,...et},!1,(ot,st)=>{const at=new DataChannel(st);it(at)})});return await rt.waitTilReady(),rt}async sendRealtimeMessage(o,et={channelLabel:"stream.reliable"}){const tt=defined$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.send(defined$1(nt).id,o,et)}async getRealtimeAudioStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="audio_common_msgs/AudioData"&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});return st}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Z_FIXED$1=4,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN$1=2;function zero$1(s){let o=s.length;for(;--o>=0;)s[o]=0}const STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH$1=3,MAX_MATCH$1=258,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,BL_CODES$1=19,HEAP_SIZE$1=2*L_CODES$1+1,MAX_BITS$1=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),extra_dbits=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),extra_blbits=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),bl_order=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),DIST_CODE_LEN=512,static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);const static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);const _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);const _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);const base_length=new Array(LENGTH_CODES$1);zero$1(base_length);const base_dist=new Array(D_CODES$1);zero$1(base_dist);function StaticTreeDesc(s,o,et,tt,nt){this.static_tree=s,this.extra_bits=o,this.extra_base=et,this.elems=tt,this.max_length=nt,this.has_stree=s&&s.length}let static_l_desc,static_d_desc,static_bl_desc;function TreeDesc(s,o){this.dyn_tree=s,this.max_code=0,this.stat_desc=o}const d_code=s=>s<256?_dist_code[s]:_dist_code[256+(s>>>7)],put_short=(s,o)=>{s.pending_buf[s.pending++]=o&255,s.pending_buf[s.pending++]=o>>>8&255},send_bits=(s,o,et)=>{s.bi_valid>Buf_size-et?(s.bi_buf|=o<>Buf_size-s.bi_valid,s.bi_valid+=et-Buf_size):(s.bi_buf|=o<{send_bits(s,et[o*2],et[o*2+1])},bi_reverse=(s,o)=>{let et=0;do et|=s&1,s>>>=1,et<<=1;while(--o>0);return et>>>1},bi_flush=s=>{s.bi_valid===16?(put_short(s,s.bi_buf),s.bi_buf=0,s.bi_valid=0):s.bi_valid>=8&&(s.pending_buf[s.pending++]=s.bi_buf&255,s.bi_buf>>=8,s.bi_valid-=8)},gen_bitlen=(s,o)=>{const et=o.dyn_tree,tt=o.max_code,nt=o.stat_desc.static_tree,rt=o.stat_desc.has_stree,it=o.stat_desc.extra_bits,ot=o.stat_desc.extra_base,st=o.stat_desc.max_length;let at,lt,ut,dt,ht,ct,pt=0;for(dt=0;dt<=MAX_BITS$1;dt++)s.bl_count[dt]=0;for(et[s.heap[s.heap_max]*2+1]=0,at=s.heap_max+1;atst&&(dt=st,pt++),et[lt*2+1]=dt,!(lt>tt)&&(s.bl_count[dt]++,ht=0,lt>=ot&&(ht=it[lt-ot]),ct=et[lt*2],s.opt_len+=ct*(dt+ht),rt&&(s.static_len+=ct*(nt[lt*2+1]+ht)));if(pt!==0){do{for(dt=st-1;s.bl_count[dt]===0;)dt--;s.bl_count[dt]--,s.bl_count[dt+1]+=2,s.bl_count[st]--,pt-=2}while(pt>0);for(dt=st;dt!==0;dt--)for(lt=s.bl_count[dt];lt!==0;)ut=s.heap[--at],!(ut>tt)&&(et[ut*2+1]!==dt&&(s.opt_len+=(dt-et[ut*2+1])*et[ut*2],et[ut*2+1]=dt),lt--)}},gen_codes=(s,o,et)=>{const tt=new Array(MAX_BITS$1+1);let nt=0,rt,it;for(rt=1;rt<=MAX_BITS$1;rt++)nt=nt+et[rt-1]<<1,tt[rt]=nt;for(it=0;it<=o;it++){let ot=s[it*2+1];ot!==0&&(s[it*2]=bi_reverse(tt[ot]++,ot))}},tr_static_init=()=>{let s,o,et,tt,nt;const rt=new Array(MAX_BITS$1+1);for(et=0,tt=0;tt>=7;tt{let o;for(o=0;o{s.bi_valid>8?put_short(s,s.bi_buf):s.bi_valid>0&&(s.pending_buf[s.pending++]=s.bi_buf),s.bi_buf=0,s.bi_valid=0},smaller=(s,o,et,tt)=>{const nt=o*2,rt=et*2;return s[nt]{const tt=s.heap[et];let nt=et<<1;for(;nt<=s.heap_len&&(nt{let tt,nt,rt=0,it,ot;if(s.sym_next!==0)do tt=s.pending_buf[s.sym_buf+rt++]&255,tt+=(s.pending_buf[s.sym_buf+rt++]&255)<<8,nt=s.pending_buf[s.sym_buf+rt++],tt===0?send_code(s,nt,o):(it=_length_code[nt],send_code(s,it+LITERALS$1+1,o),ot=extra_lbits[it],ot!==0&&(nt-=base_length[it],send_bits(s,nt,ot)),tt--,it=d_code(tt),send_code(s,it,et),ot=extra_dbits[it],ot!==0&&(tt-=base_dist[it],send_bits(s,tt,ot)));while(rt{const et=o.dyn_tree,tt=o.stat_desc.static_tree,nt=o.stat_desc.has_stree,rt=o.stat_desc.elems;let it,ot,st=-1,at;for(s.heap_len=0,s.heap_max=HEAP_SIZE$1,it=0;it>1;it>=1;it--)pqdownheap(s,et,it);at=rt;do it=s.heap[1],s.heap[1]=s.heap[s.heap_len--],pqdownheap(s,et,1),ot=s.heap[1],s.heap[--s.heap_max]=it,s.heap[--s.heap_max]=ot,et[at*2]=et[it*2]+et[ot*2],s.depth[at]=(s.depth[it]>=s.depth[ot]?s.depth[it]:s.depth[ot])+1,et[it*2+1]=et[ot*2+1]=at,s.heap[1]=at++,pqdownheap(s,et,1);while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1],gen_bitlen(s,o),gen_codes(et,st,s.bl_count)},scan_tree=(s,o,et)=>{let tt,nt=-1,rt,it=o[0*2+1],ot=0,st=7,at=4;for(it===0&&(st=138,at=3),o[(et+1)*2+1]=65535,tt=0;tt<=et;tt++)rt=it,it=o[(tt+1)*2+1],!(++ot{let tt,nt=-1,rt,it=o[0*2+1],ot=0,st=7,at=4;for(it===0&&(st=138,at=3),tt=0;tt<=et;tt++)if(rt=it,it=o[(tt+1)*2+1],!(++ot{let o;for(scan_tree(s,s.dyn_ltree,s.l_desc.max_code),scan_tree(s,s.dyn_dtree,s.d_desc.max_code),build_tree(s,s.bl_desc),o=BL_CODES$1-1;o>=3&&s.bl_tree[bl_order[o]*2+1]===0;o--);return s.opt_len+=3*(o+1)+5+5+4,o},send_all_trees=(s,o,et,tt)=>{let nt;for(send_bits(s,o-257,5),send_bits(s,et-1,5),send_bits(s,tt-4,4),nt=0;nt{let o=4093624447,et;for(et=0;et<=31;et++,o>>>=1)if(o&1&&s.dyn_ltree[et*2]!==0)return Z_BINARY;if(s.dyn_ltree[9*2]!==0||s.dyn_ltree[10*2]!==0||s.dyn_ltree[13*2]!==0)return Z_TEXT;for(et=32;et{static_init_done||(tr_static_init(),static_init_done=!0),s.l_desc=new TreeDesc(s.dyn_ltree,static_l_desc),s.d_desc=new TreeDesc(s.dyn_dtree,static_d_desc),s.bl_desc=new TreeDesc(s.bl_tree,static_bl_desc),s.bi_buf=0,s.bi_valid=0,init_block(s)},_tr_stored_block$1=(s,o,et,tt)=>{send_bits(s,(STORED_BLOCK<<1)+(tt?1:0),3),bi_windup(s),put_short(s,et),put_short(s,~et),et&&s.pending_buf.set(s.window.subarray(o,o+et),s.pending),s.pending+=et},_tr_align$1=s=>{send_bits(s,STATIC_TREES<<1,3),send_code(s,END_BLOCK,static_ltree),bi_flush(s)},_tr_flush_block$1=(s,o,et,tt)=>{let nt,rt,it=0;s.level>0?(s.strm.data_type===Z_UNKNOWN$1&&(s.strm.data_type=detect_data_type(s)),build_tree(s,s.l_desc),build_tree(s,s.d_desc),it=build_bl_tree(s),nt=s.opt_len+3+7>>>3,rt=s.static_len+3+7>>>3,rt<=nt&&(nt=rt)):nt=rt=et+5,et+4<=nt&&o!==-1?_tr_stored_block$1(s,o,et,tt):s.strategy===Z_FIXED$1||rt===nt?(send_bits(s,(STATIC_TREES<<1)+(tt?1:0),3),compress_block(s,static_ltree,static_dtree)):(send_bits(s,(DYN_TREES<<1)+(tt?1:0),3),send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,it+1),compress_block(s,s.dyn_ltree,s.dyn_dtree)),init_block(s),tt&&bi_windup(s)},_tr_tally$1=(s,o,et)=>(s.pending_buf[s.sym_buf+s.sym_next++]=o,s.pending_buf[s.sym_buf+s.sym_next++]=o>>8,s.pending_buf[s.sym_buf+s.sym_next++]=et,o===0?s.dyn_ltree[et*2]++:(s.matches++,o--,s.dyn_ltree[(_length_code[et]+LITERALS$1+1)*2]++,s.dyn_dtree[d_code(o)*2]++),s.sym_next===s.sym_end);var _tr_init_1=_tr_init$1,_tr_stored_block_1=_tr_stored_block$1,_tr_flush_block_1=_tr_flush_block$1,_tr_tally_1=_tr_tally$1,_tr_align_1=_tr_align$1,trees={_tr_init:_tr_init_1,_tr_stored_block:_tr_stored_block_1,_tr_flush_block:_tr_flush_block_1,_tr_tally:_tr_tally_1,_tr_align:_tr_align_1};const adler32=(s,o,et,tt)=>{let nt=s&65535|0,rt=s>>>16&65535|0,it=0;for(;et!==0;){it=et>2e3?2e3:et,et-=it;do nt=nt+o[tt++]|0,rt=rt+nt|0;while(--it);nt%=65521,rt%=65521}return nt|rt<<16|0};var adler32_1=adler32;const makeTable=()=>{let s,o=[];for(var et=0;et<256;et++){s=et;for(var tt=0;tt<8;tt++)s=s&1?3988292384^s>>>1:s>>>1;o[et]=s}return o},crcTable=new Uint32Array(makeTable()),crc32=(s,o,et,tt)=>{const nt=crcTable,rt=tt+et;s^=-1;for(let it=tt;it>>8^nt[(s^o[it])&255];return s^-1};var crc32_1=crc32,messages={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},constants$2={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init,_tr_stored_block,_tr_flush_block,_tr_tally,_tr_align}=trees,{Z_NO_FLUSH:Z_NO_FLUSH$2,Z_PARTIAL_FLUSH,Z_FULL_FLUSH:Z_FULL_FLUSH$1,Z_FINISH:Z_FINISH$3,Z_BLOCK:Z_BLOCK$1,Z_OK:Z_OK$3,Z_STREAM_END:Z_STREAM_END$3,Z_STREAM_ERROR:Z_STREAM_ERROR$2,Z_DATA_ERROR:Z_DATA_ERROR$2,Z_BUF_ERROR:Z_BUF_ERROR$1,Z_DEFAULT_COMPRESSION:Z_DEFAULT_COMPRESSION$1,Z_FILTERED,Z_HUFFMAN_ONLY,Z_RLE,Z_FIXED,Z_DEFAULT_STRATEGY:Z_DEFAULT_STRATEGY$1,Z_UNKNOWN,Z_DEFLATED:Z_DEFLATED$2}=constants$2,MAX_MEM_LEVEL=9,MAX_WBITS$1=15,DEF_MEM_LEVEL=8,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,GZIP_STATE=57,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3,err=(s,o)=>(s.msg=messages[o],o),rank=s=>s*2-(s>4?9:0),zero=s=>{let o=s.length;for(;--o>=0;)s[o]=0},slide_hash=s=>{let o,et,tt,nt=s.w_size;o=s.hash_size,tt=o;do et=s.head[--tt],s.head[tt]=et>=nt?et-nt:0;while(--o);o=nt,tt=o;do et=s.prev[--tt],s.prev[tt]=et>=nt?et-nt:0;while(--o)};let HASH_ZLIB=(s,o,et)=>(o<{const o=s.state;let et=o.pending;et>s.avail_out&&(et=s.avail_out),et!==0&&(s.output.set(o.pending_buf.subarray(o.pending_out,o.pending_out+et),s.next_out),s.next_out+=et,o.pending_out+=et,s.total_out+=et,s.avail_out-=et,o.pending-=et,o.pending===0&&(o.pending_out=0))},flush_block_only=(s,o)=>{_tr_flush_block(s,s.block_start>=0?s.block_start:-1,s.strstart-s.block_start,o),s.block_start=s.strstart,flush_pending(s.strm)},put_byte=(s,o)=>{s.pending_buf[s.pending++]=o},putShortMSB=(s,o)=>{s.pending_buf[s.pending++]=o>>>8&255,s.pending_buf[s.pending++]=o&255},read_buf=(s,o,et,tt)=>{let nt=s.avail_in;return nt>tt&&(nt=tt),nt===0?0:(s.avail_in-=nt,o.set(s.input.subarray(s.next_in,s.next_in+nt),et),s.state.wrap===1?s.adler=adler32_1(s.adler,o,nt,et):s.state.wrap===2&&(s.adler=crc32_1(s.adler,o,nt,et)),s.next_in+=nt,s.total_in+=nt,nt)},longest_match=(s,o)=>{let et=s.max_chain_length,tt=s.strstart,nt,rt,it=s.prev_length,ot=s.nice_match;const st=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0,at=s.window,lt=s.w_mask,ut=s.prev,dt=s.strstart+MAX_MATCH;let ht=at[tt+it-1],ct=at[tt+it];s.prev_length>=s.good_match&&(et>>=2),ot>s.lookahead&&(ot=s.lookahead);do if(nt=o,!(at[nt+it]!==ct||at[nt+it-1]!==ht||at[nt]!==at[tt]||at[++nt]!==at[tt+1])){tt+=2,nt++;do;while(at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&ttit){if(s.match_start=o,it=rt,rt>=ot)break;ht=at[tt+it-1],ct=at[tt+it]}}while((o=ut[o<])>st&&--et!==0);return it<=s.lookahead?it:s.lookahead},fill_window=s=>{const o=s.w_size;let et,tt,nt;do{if(tt=s.window_size-s.lookahead-s.strstart,s.strstart>=o+(o-MIN_LOOKAHEAD)&&(s.window.set(s.window.subarray(o,o+o-tt),0),s.match_start-=o,s.strstart-=o,s.block_start-=o,s.insert>s.strstart&&(s.insert=s.strstart),slide_hash(s),tt+=o),s.strm.avail_in===0)break;if(et=read_buf(s.strm,s.window,s.strstart+s.lookahead,tt),s.lookahead+=et,s.lookahead+s.insert>=MIN_MATCH)for(nt=s.strstart-s.insert,s.ins_h=s.window[nt],s.ins_h=HASH(s,s.ins_h,s.window[nt+1]);s.insert&&(s.ins_h=HASH(s,s.ins_h,s.window[nt+MIN_MATCH-1]),s.prev[nt&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=nt,nt++,s.insert--,!(s.lookahead+s.insert{let et=s.pending_buf_size-5>s.w_size?s.w_size:s.pending_buf_size-5,tt,nt,rt,it=0,ot=s.strm.avail_in;do{if(tt=65535,rt=s.bi_valid+42>>3,s.strm.avail_outnt+s.strm.avail_in&&(tt=nt+s.strm.avail_in),tt>rt&&(tt=rt),tt>8,s.pending_buf[s.pending-2]=~tt,s.pending_buf[s.pending-1]=~tt>>8,flush_pending(s.strm),nt&&(nt>tt&&(nt=tt),s.strm.output.set(s.window.subarray(s.block_start,s.block_start+nt),s.strm.next_out),s.strm.next_out+=nt,s.strm.avail_out-=nt,s.strm.total_out+=nt,s.block_start+=nt,tt-=nt),tt&&(read_buf(s.strm,s.strm.output,s.strm.next_out,tt),s.strm.next_out+=tt,s.strm.avail_out-=tt,s.strm.total_out+=tt)}while(it===0);return ot-=s.strm.avail_in,ot&&(ot>=s.w_size?(s.matches=2,s.window.set(s.strm.input.subarray(s.strm.next_in-s.w_size,s.strm.next_in),0),s.strstart=s.w_size,s.insert=s.strstart):(s.window_size-s.strstart<=ot&&(s.strstart-=s.w_size,s.window.set(s.window.subarray(s.w_size,s.w_size+s.strstart),0),s.matches<2&&s.matches++,s.insert>s.strstart&&(s.insert=s.strstart)),s.window.set(s.strm.input.subarray(s.strm.next_in-ot,s.strm.next_in),s.strstart),s.strstart+=ot,s.insert+=ot>s.w_size-s.insert?s.w_size-s.insert:ot),s.block_start=s.strstart),s.high_waterrt&&s.block_start>=s.w_size&&(s.block_start-=s.w_size,s.strstart-=s.w_size,s.window.set(s.window.subarray(s.w_size,s.w_size+s.strstart),0),s.matches<2&&s.matches++,rt+=s.w_size,s.insert>s.strstart&&(s.insert=s.strstart)),rt>s.strm.avail_in&&(rt=s.strm.avail_in),rt&&(read_buf(s.strm,s.window,s.strstart,rt),s.strstart+=rt,s.insert+=rt>s.w_size-s.insert?s.w_size-s.insert:rt),s.high_water>3,rt=s.pending_buf_size-rt>65535?65535:s.pending_buf_size-rt,et=rt>s.w_size?s.w_size:rt,nt=s.strstart-s.block_start,(nt>=et||(nt||o===Z_FINISH$3)&&o!==Z_NO_FLUSH$2&&s.strm.avail_in===0&&nt<=rt)&&(tt=nt>rt?rt:nt,it=o===Z_FINISH$3&&s.strm.avail_in===0&&tt===nt?1:0,_tr_stored_block(s,s.block_start,tt,it),s.block_start+=tt,flush_pending(s.strm)),it?BS_FINISH_STARTED:BS_NEED_MORE)},deflate_fast=(s,o)=>{let et,tt;for(;;){if(s.lookahead=MIN_MATCH&&(s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart),et!==0&&s.strstart-et<=s.w_size-MIN_LOOKAHEAD&&(s.match_length=longest_match(s,et)),s.match_length>=MIN_MATCH)if(tt=_tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH),s.lookahead-=s.match_length,s.match_length<=s.max_lazy_match&&s.lookahead>=MIN_MATCH){s.match_length--;do s.strstart++,s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart;while(--s.match_length!==0);s.strstart++}else s.strstart+=s.match_length,s.match_length=0,s.ins_h=s.window[s.strstart],s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+1]);else tt=_tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++;if(tt&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}return s.insert=s.strstart{let et,tt,nt;for(;;){if(s.lookahead=MIN_MATCH&&(s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart),s.prev_length=s.match_length,s.prev_match=s.match_start,s.match_length=MIN_MATCH-1,et!==0&&s.prev_length4096)&&(s.match_length=MIN_MATCH-1)),s.prev_length>=MIN_MATCH&&s.match_length<=s.prev_length){nt=s.strstart+s.lookahead-MIN_MATCH,tt=_tr_tally(s,s.strstart-1-s.prev_match,s.prev_length-MIN_MATCH),s.lookahead-=s.prev_length-1,s.prev_length-=2;do++s.strstart<=nt&&(s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart);while(--s.prev_length!==0);if(s.match_available=0,s.match_length=MIN_MATCH-1,s.strstart++,tt&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}else if(s.match_available){if(tt=_tr_tally(s,0,s.window[s.strstart-1]),tt&&flush_block_only(s,!1),s.strstart++,s.lookahead--,s.strm.avail_out===0)return BS_NEED_MORE}else s.match_available=1,s.strstart++,s.lookahead--}return s.match_available&&(tt=_tr_tally(s,0,s.window[s.strstart-1]),s.match_available=0),s.insert=s.strstart{let et,tt,nt,rt;const it=s.window;for(;;){if(s.lookahead<=MAX_MATCH){if(fill_window(s),s.lookahead<=MAX_MATCH&&o===Z_NO_FLUSH$2)return BS_NEED_MORE;if(s.lookahead===0)break}if(s.match_length=0,s.lookahead>=MIN_MATCH&&s.strstart>0&&(nt=s.strstart-1,tt=it[nt],tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt])){rt=s.strstart+MAX_MATCH;do;while(tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&nts.lookahead&&(s.match_length=s.lookahead)}if(s.match_length>=MIN_MATCH?(et=_tr_tally(s,1,s.match_length-MIN_MATCH),s.lookahead-=s.match_length,s.strstart+=s.match_length,s.match_length=0):(et=_tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++),et&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}return s.insert=0,o===Z_FINISH$3?(flush_block_only(s,!0),s.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):s.sym_next&&(flush_block_only(s,!1),s.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_huff=(s,o)=>{let et;for(;;){if(s.lookahead===0&&(fill_window(s),s.lookahead===0)){if(o===Z_NO_FLUSH$2)return BS_NEED_MORE;break}if(s.match_length=0,et=_tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++,et&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}return s.insert=0,o===Z_FINISH$3?(flush_block_only(s,!0),s.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):s.sym_next&&(flush_block_only(s,!1),s.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE};function Config(s,o,et,tt,nt){this.good_length=s,this.max_lazy=o,this.nice_length=et,this.max_chain=tt,this.func=nt}const configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)],lm_init=s=>{s.window_size=2*s.w_size,zero(s.head),s.max_lazy_match=configuration_table[s.level].max_lazy,s.good_match=configuration_table[s.level].good_length,s.nice_match=configuration_table[s.level].nice_length,s.max_chain_length=configuration_table[s.level].max_chain,s.strstart=0,s.block_start=0,s.lookahead=0,s.insert=0,s.match_length=s.prev_length=MIN_MATCH-1,s.match_available=0,s.ins_h=0};function DeflateState(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Z_DEFLATED$2,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(HEAP_SIZE*2),this.dyn_dtree=new Uint16Array((2*D_CODES+1)*2),this.bl_tree=new Uint16Array((2*BL_CODES+1)*2),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(MAX_BITS+1),this.heap=new Uint16Array(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*L_CODES+1),zero(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const deflateStateCheck=s=>{if(!s)return 1;const o=s.state;return!o||o.strm!==s||o.status!==INIT_STATE&&o.status!==GZIP_STATE&&o.status!==EXTRA_STATE&&o.status!==NAME_STATE&&o.status!==COMMENT_STATE&&o.status!==HCRC_STATE&&o.status!==BUSY_STATE&&o.status!==FINISH_STATE?1:0},deflateResetKeep=s=>{if(deflateStateCheck(s))return err(s,Z_STREAM_ERROR$2);s.total_in=s.total_out=0,s.data_type=Z_UNKNOWN;const o=s.state;return o.pending=0,o.pending_out=0,o.wrap<0&&(o.wrap=-o.wrap),o.status=o.wrap===2?GZIP_STATE:o.wrap?INIT_STATE:BUSY_STATE,s.adler=o.wrap===2?0:1,o.last_flush=-2,_tr_init(o),Z_OK$3},deflateReset=s=>{const o=deflateResetKeep(s);return o===Z_OK$3&&lm_init(s.state),o},deflateSetHeader=(s,o)=>deflateStateCheck(s)||s.state.wrap!==2?Z_STREAM_ERROR$2:(s.state.gzhead=o,Z_OK$3),deflateInit2=(s,o,et,tt,nt,rt)=>{if(!s)return Z_STREAM_ERROR$2;let it=1;if(o===Z_DEFAULT_COMPRESSION$1&&(o=6),tt<0?(it=0,tt=-tt):tt>15&&(it=2,tt-=16),nt<1||nt>MAX_MEM_LEVEL||et!==Z_DEFLATED$2||tt<8||tt>15||o<0||o>9||rt<0||rt>Z_FIXED||tt===8&&it!==1)return err(s,Z_STREAM_ERROR$2);tt===8&&(tt=9);const ot=new DeflateState;return s.state=ot,ot.strm=s,ot.status=INIT_STATE,ot.wrap=it,ot.gzhead=null,ot.w_bits=tt,ot.w_size=1<deflateInit2(s,o,Z_DEFLATED$2,MAX_WBITS$1,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY$1),deflate$2=(s,o)=>{if(deflateStateCheck(s)||o>Z_BLOCK$1||o<0)return s?err(s,Z_STREAM_ERROR$2):Z_STREAM_ERROR$2;const et=s.state;if(!s.output||s.avail_in!==0&&!s.input||et.status===FINISH_STATE&&o!==Z_FINISH$3)return err(s,s.avail_out===0?Z_BUF_ERROR$1:Z_STREAM_ERROR$2);const tt=et.last_flush;if(et.last_flush=o,et.pending!==0){if(flush_pending(s),s.avail_out===0)return et.last_flush=-1,Z_OK$3}else if(s.avail_in===0&&rank(o)<=rank(tt)&&o!==Z_FINISH$3)return err(s,Z_BUF_ERROR$1);if(et.status===FINISH_STATE&&s.avail_in!==0)return err(s,Z_BUF_ERROR$1);if(et.status===INIT_STATE&&et.wrap===0&&(et.status=BUSY_STATE),et.status===INIT_STATE){let nt=Z_DEFLATED$2+(et.w_bits-8<<4)<<8,rt=-1;if(et.strategy>=Z_HUFFMAN_ONLY||et.level<2?rt=0:et.level<6?rt=1:et.level===6?rt=2:rt=3,nt|=rt<<6,et.strstart!==0&&(nt|=PRESET_DICT),nt+=31-nt%31,putShortMSB(et,nt),et.strstart!==0&&(putShortMSB(et,s.adler>>>16),putShortMSB(et,s.adler&65535)),s.adler=1,et.status=BUSY_STATE,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3}if(et.status===GZIP_STATE){if(s.adler=0,put_byte(et,31),put_byte(et,139),put_byte(et,8),et.gzhead)put_byte(et,(et.gzhead.text?1:0)+(et.gzhead.hcrc?2:0)+(et.gzhead.extra?4:0)+(et.gzhead.name?8:0)+(et.gzhead.comment?16:0)),put_byte(et,et.gzhead.time&255),put_byte(et,et.gzhead.time>>8&255),put_byte(et,et.gzhead.time>>16&255),put_byte(et,et.gzhead.time>>24&255),put_byte(et,et.level===9?2:et.strategy>=Z_HUFFMAN_ONLY||et.level<2?4:0),put_byte(et,et.gzhead.os&255),et.gzhead.extra&&et.gzhead.extra.length&&(put_byte(et,et.gzhead.extra.length&255),put_byte(et,et.gzhead.extra.length>>8&255)),et.gzhead.hcrc&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending,0)),et.gzindex=0,et.status=EXTRA_STATE;else if(put_byte(et,0),put_byte(et,0),put_byte(et,0),put_byte(et,0),put_byte(et,0),put_byte(et,et.level===9?2:et.strategy>=Z_HUFFMAN_ONLY||et.level<2?4:0),put_byte(et,OS_CODE),et.status=BUSY_STATE,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3}if(et.status===EXTRA_STATE){if(et.gzhead.extra){let nt=et.pending,rt=(et.gzhead.extra.length&65535)-et.gzindex;for(;et.pending+rt>et.pending_buf_size;){let ot=et.pending_buf_size-et.pending;if(et.pending_buf.set(et.gzhead.extra.subarray(et.gzindex,et.gzindex+ot),et.pending),et.pending=et.pending_buf_size,et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),et.gzindex+=ot,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3;nt=0,rt-=ot}let it=new Uint8Array(et.gzhead.extra);et.pending_buf.set(it.subarray(et.gzindex,et.gzindex+rt),et.pending),et.pending+=rt,et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),et.gzindex=0}et.status=NAME_STATE}if(et.status===NAME_STATE){if(et.gzhead.name){let nt=et.pending,rt;do{if(et.pending===et.pending_buf_size){if(et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3;nt=0}et.gzindexnt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),et.gzindex=0}et.status=COMMENT_STATE}if(et.status===COMMENT_STATE){if(et.gzhead.comment){let nt=et.pending,rt;do{if(et.pending===et.pending_buf_size){if(et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3;nt=0}et.gzindexnt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt))}et.status=HCRC_STATE}if(et.status===HCRC_STATE){if(et.gzhead.hcrc){if(et.pending+2>et.pending_buf_size&&(flush_pending(s),et.pending!==0))return et.last_flush=-1,Z_OK$3;put_byte(et,s.adler&255),put_byte(et,s.adler>>8&255),s.adler=0}if(et.status=BUSY_STATE,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3}if(s.avail_in!==0||et.lookahead!==0||o!==Z_NO_FLUSH$2&&et.status!==FINISH_STATE){let nt=et.level===0?deflate_stored(et,o):et.strategy===Z_HUFFMAN_ONLY?deflate_huff(et,o):et.strategy===Z_RLE?deflate_rle(et,o):configuration_table[et.level].func(et,o);if((nt===BS_FINISH_STARTED||nt===BS_FINISH_DONE)&&(et.status=FINISH_STATE),nt===BS_NEED_MORE||nt===BS_FINISH_STARTED)return s.avail_out===0&&(et.last_flush=-1),Z_OK$3;if(nt===BS_BLOCK_DONE&&(o===Z_PARTIAL_FLUSH?_tr_align(et):o!==Z_BLOCK$1&&(_tr_stored_block(et,0,0,!1),o===Z_FULL_FLUSH$1&&(zero(et.head),et.lookahead===0&&(et.strstart=0,et.block_start=0,et.insert=0))),flush_pending(s),s.avail_out===0))return et.last_flush=-1,Z_OK$3}return o!==Z_FINISH$3?Z_OK$3:et.wrap<=0?Z_STREAM_END$3:(et.wrap===2?(put_byte(et,s.adler&255),put_byte(et,s.adler>>8&255),put_byte(et,s.adler>>16&255),put_byte(et,s.adler>>24&255),put_byte(et,s.total_in&255),put_byte(et,s.total_in>>8&255),put_byte(et,s.total_in>>16&255),put_byte(et,s.total_in>>24&255)):(putShortMSB(et,s.adler>>>16),putShortMSB(et,s.adler&65535)),flush_pending(s),et.wrap>0&&(et.wrap=-et.wrap),et.pending!==0?Z_OK$3:Z_STREAM_END$3)},deflateEnd=s=>{if(deflateStateCheck(s))return Z_STREAM_ERROR$2;const o=s.state.status;return s.state=null,o===BUSY_STATE?err(s,Z_DATA_ERROR$2):Z_OK$3},deflateSetDictionary=(s,o)=>{let et=o.length;if(deflateStateCheck(s))return Z_STREAM_ERROR$2;const tt=s.state,nt=tt.wrap;if(nt===2||nt===1&&tt.status!==INIT_STATE||tt.lookahead)return Z_STREAM_ERROR$2;if(nt===1&&(s.adler=adler32_1(s.adler,o,et,0)),tt.wrap=0,et>=tt.w_size){nt===0&&(zero(tt.head),tt.strstart=0,tt.block_start=0,tt.insert=0);let st=new Uint8Array(tt.w_size);st.set(o.subarray(et-tt.w_size,et),0),o=st,et=tt.w_size}const rt=s.avail_in,it=s.next_in,ot=s.input;for(s.avail_in=et,s.next_in=0,s.input=o,fill_window(tt);tt.lookahead>=MIN_MATCH;){let st=tt.strstart,at=tt.lookahead-(MIN_MATCH-1);do tt.ins_h=HASH(tt,tt.ins_h,tt.window[st+MIN_MATCH-1]),tt.prev[st&tt.w_mask]=tt.head[tt.ins_h],tt.head[tt.ins_h]=st,st++;while(--at);tt.strstart=st,tt.lookahead=MIN_MATCH-1,fill_window(tt)}return tt.strstart+=tt.lookahead,tt.block_start=tt.strstart,tt.insert=tt.lookahead,tt.lookahead=0,tt.match_length=tt.prev_length=MIN_MATCH-1,tt.match_available=0,s.next_in=it,s.input=ot,s.avail_in=rt,tt.wrap=nt,Z_OK$3};var deflateInit_1=deflateInit,deflateInit2_1=deflateInit2,deflateReset_1=deflateReset,deflateResetKeep_1=deflateResetKeep,deflateSetHeader_1=deflateSetHeader,deflate_2$1=deflate$2,deflateEnd_1=deflateEnd,deflateSetDictionary_1=deflateSetDictionary,deflateInfo="pako deflate (from Nodeca project)",deflate_1$2={deflateInit:deflateInit_1,deflateInit2:deflateInit2_1,deflateReset:deflateReset_1,deflateResetKeep:deflateResetKeep_1,deflateSetHeader:deflateSetHeader_1,deflate:deflate_2$1,deflateEnd:deflateEnd_1,deflateSetDictionary:deflateSetDictionary_1,deflateInfo};const _has=(s,o)=>Object.prototype.hasOwnProperty.call(s,o);var assign$1=function(s){const o=Array.prototype.slice.call(arguments,1);for(;o.length;){const et=o.shift();if(et){if(typeof et!="object")throw new TypeError(et+"must be non-object");for(const tt in et)_has(et,tt)&&(s[tt]=et[tt])}}return s},flattenChunks=s=>{let o=0;for(let tt=0,nt=s.length;tt=252?6:s>=248?5:s>=240?4:s>=224?3:s>=192?2:1;_utf8len[254]=_utf8len[254]=1;var string2buf=s=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(s);let o,et,tt,nt,rt,it=s.length,ot=0;for(nt=0;nt>>6,o[rt++]=128|et&63):et<65536?(o[rt++]=224|et>>>12,o[rt++]=128|et>>>6&63,o[rt++]=128|et&63):(o[rt++]=240|et>>>18,o[rt++]=128|et>>>12&63,o[rt++]=128|et>>>6&63,o[rt++]=128|et&63);return o};const buf2binstring=(s,o)=>{if(o<65534&&s.subarray&&STR_APPLY_UIA_OK)return String.fromCharCode.apply(null,s.length===o?s:s.subarray(0,o));let et="";for(let tt=0;tt{const et=o||s.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(s.subarray(0,o));let tt,nt;const rt=new Array(et*2);for(nt=0,tt=0;tt4){rt[nt++]=65533,tt+=ot-1;continue}for(it&=ot===2?31:ot===3?15:7;ot>1&&tt1){rt[nt++]=65533;continue}it<65536?rt[nt++]=it:(it-=65536,rt[nt++]=55296|it>>10&1023,rt[nt++]=56320|it&1023)}return buf2binstring(rt,nt)},utf8border=(s,o)=>{o=o||s.length,o>s.length&&(o=s.length);let et=o-1;for(;et>=0&&(s[et]&192)===128;)et--;return et<0||et===0?o:et+_utf8len[s[et]]>o?et:o},strings={string2buf,buf2string,utf8border};function ZStream(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zstream=ZStream;const toString$1=Object.prototype.toString,{Z_NO_FLUSH:Z_NO_FLUSH$1,Z_SYNC_FLUSH,Z_FULL_FLUSH,Z_FINISH:Z_FINISH$2,Z_OK:Z_OK$2,Z_STREAM_END:Z_STREAM_END$2,Z_DEFAULT_COMPRESSION,Z_DEFAULT_STRATEGY,Z_DEFLATED:Z_DEFLATED$1}=constants$2;function Deflate$1(s){this.options=common.assign({level:Z_DEFAULT_COMPRESSION,method:Z_DEFLATED$1,chunkSize:16384,windowBits:15,memLevel:8,strategy:Z_DEFAULT_STRATEGY},s||{});let o=this.options;o.raw&&o.windowBits>0?o.windowBits=-o.windowBits:o.gzip&&o.windowBits>0&&o.windowBits<16&&(o.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let et=deflate_1$2.deflateInit2(this.strm,o.level,o.method,o.windowBits,o.memLevel,o.strategy);if(et!==Z_OK$2)throw new Error(messages[et]);if(o.header&&deflate_1$2.deflateSetHeader(this.strm,o.header),o.dictionary){let tt;if(typeof o.dictionary=="string"?tt=strings.string2buf(o.dictionary):toString$1.call(o.dictionary)==="[object ArrayBuffer]"?tt=new Uint8Array(o.dictionary):tt=o.dictionary,et=deflate_1$2.deflateSetDictionary(this.strm,tt),et!==Z_OK$2)throw new Error(messages[et]);this._dict_set=!0}}Deflate$1.prototype.push=function(s,o){const et=this.strm,tt=this.options.chunkSize;let nt,rt;if(this.ended)return!1;for(o===~~o?rt=o:rt=o===!0?Z_FINISH$2:Z_NO_FLUSH$1,typeof s=="string"?et.input=strings.string2buf(s):toString$1.call(s)==="[object ArrayBuffer]"?et.input=new Uint8Array(s):et.input=s,et.next_in=0,et.avail_in=et.input.length;;){if(et.avail_out===0&&(et.output=new Uint8Array(tt),et.next_out=0,et.avail_out=tt),(rt===Z_SYNC_FLUSH||rt===Z_FULL_FLUSH)&&et.avail_out<=6){this.onData(et.output.subarray(0,et.next_out)),et.avail_out=0;continue}if(nt=deflate_1$2.deflate(et,rt),nt===Z_STREAM_END$2)return et.next_out>0&&this.onData(et.output.subarray(0,et.next_out)),nt=deflate_1$2.deflateEnd(this.strm),this.onEnd(nt),this.ended=!0,nt===Z_OK$2;if(et.avail_out===0){this.onData(et.output);continue}if(rt>0&&et.next_out>0){this.onData(et.output.subarray(0,et.next_out)),et.avail_out=0;continue}if(et.avail_in===0)break}return!0};Deflate$1.prototype.onData=function(s){this.chunks.push(s)};Deflate$1.prototype.onEnd=function(s){s===Z_OK$2&&(this.result=common.flattenChunks(this.chunks)),this.chunks=[],this.err=s,this.msg=this.strm.msg};function deflate$1(s,o){const et=new Deflate$1(o);if(et.push(s,!0),et.err)throw et.msg||messages[et.err];return et.result}function deflateRaw$1(s,o){return o=o||{},o.raw=!0,deflate$1(s,o)}function gzip$1(s,o){return o=o||{},o.gzip=!0,deflate$1(s,o)}var Deflate_1$1=Deflate$1,deflate_2=deflate$1,deflateRaw_1$1=deflateRaw$1,gzip_1$1=gzip$1,constants$1=constants$2,deflate_1$1={Deflate:Deflate_1$1,deflate:deflate_2,deflateRaw:deflateRaw_1$1,gzip:gzip_1$1,constants:constants$1};const{Deflate,deflate,deflateRaw,gzip}=deflate_1$1;var deflate_1=deflate,fromByteArray_1=fromByteArray,lookup=[],code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i>18&63]+lookup[s>>12&63]+lookup[s>>6&63]+lookup[s&63]}function encodeChunk(s,o,et){for(var tt,nt=[],rt=o;rtot?ot:it+rt));return tt===1?(o=s[et-1],nt.push(lookup[o>>2]+lookup[o<<4&63]+"==")):tt===2&&(o=(s[et-2]<<8)+s[et-1],nt.push(lookup[o>>10]+lookup[o>>4&63]+lookup[o<<2&63]+"=")),nt.join("")}const encoder=new TextEncoder;new TextDecoder;function serializeHash(s){const o=JSON.stringify(s),et=encoder.encode(o),tt=deflate_1(et);return fromByteArray_1(tt)}async function getViews(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/views`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function createShareLink(s,o){if(!Authentication.token)throw new Error("Not authenticated");const et=(await getViews()).filter(it=>it.name===o);if(et.length===0)return console.warn("View does not exist or it is misspell"),null;const tt=await fetch(`${FORMANT_API_URL}/v1/admin/shares`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),nt=FORMANT_API_URL.replace("api","app"),{code:rt}=await tt.json();return`${nt}/shares/${rt}#${serializeHash({viewId:et[0].id})}`}const aggregateByDateFunctions={day:{interval:eachDayOfInterval,start:startOfDay,end:endOfDay,sub:subDays,get:getDay},week:{interval:eachWeekOfInterval,start:startOfWeek,end:endOfWeek,sub:subWeeks,get:getWeek},month:{interval:eachMonthOfInterval,start:startOfMonth,end:endOfMonth,sub:subMonths,get:getMonth},year:{interval:eachYearOfInterval,start:startOfYear,end:endOfYear,sub:subYears,get:getYear},hour:{interval:eachHourOfInterval,start:startOfHour,end:endOfHour,sub:subHours,get:getHours},minute:{interval:eachMinuteOfInterval,start:startOfMinute,end:endOfMinute,sub:subMinutes,get:getMinutes},quarter:{interval:eachQuarterOfInterval,start:startOfQuarter,end:endOfQuarter,sub:subQuarters,get:getQuarter}},formatTimeFrameText=(s,o)=>s.split("/")[0]+"/"+s.split("/")[1]+"–"+o.split("/")[0]+"/"+o.split("/")[1];async function queryEvents(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/events/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function eventsCounter(s,o,et,tt,nt){const rt=aggregateByDateFunctions[o];return await Promise.all(Array(et).fill(0).map(async(it,ot)=>{const st=new Date(tt),at=rt.sub(rt.start(st),et-ot-1),lt=rt.sub(rt.end(st),et-ot-1),ut=formatTimeFrameText(at.toLocaleDateString(),lt.toLocaleDateString()),dt=await queryEvents({...nt,eventTypes:s,start:new Date(at).toISOString(),end:new Date(lt).toISOString()});return{date:ut,events:dt}}))}async function getAnnotationCount(s,o){return(await queryEvents({...s,eventTypes:["annotation"]})).filter(et=>!!et.tags&&Object.keys(et.tags).includes(o)).reduce((et,tt)=>{const nt=tt.tags[o];return nt in et?(et[nt]+=1,et):(et[nt]=1,et)},{})}async function getAnnotationCountByIntervals(s,o,et){const{end:tt,start:nt}=s,rt=aggregateByDateFunctions[et].interval({start:new Date(nt),end:new Date(tt)}),it=rt.map((st,at)=>{const lt=new Date(st).toISOString(),ut=at===rt.length-1?new Date(Date.now()).toISOString():new Date(rt[at+1]);return getAnnotationCount({...s,start:lt,end:ut},o)}),ot=await Promise.all(it);return rt.map((st,at)=>({date:new Date(st).toISOString(),annotations:ot[at]}))}async function getTelemetry(s,o,et,tt,nt,rt){let it=s;Array.isArray(s)||(it=[s]);let ot=o;return Array.isArray(o)||(ot=[o]),(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify({deviceIds:it,end:tt.toISOString(),names:ot,start:et.toISOString(),tags:nt,latestOnly:rt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getRealtimeSessions(){if(!Authentication.token)throw new Error("Not authenticated");const s=defaultRtcClientPool.get();try{return await s.getSessions()}finally{await s.shutdown()}}async function getPeers(){if(!Authentication.token)throw new Error("Not authenticated");const s=defaultRtcClientPool.get();try{return await s.getPeers()}finally{await s.shutdown()}}async function createDevice(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/devices`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchDevice(s,o){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${s}`,{method:"PATCH",body:JSON.stringify(o),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getDevicesData(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function queryDevicesData(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function disableDevice(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${s}/disable`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}class Device extends BaseDevice{constructor(o,et,tt,nt){super(),this.id=o,this.name=et,this.organizationId=tt,this.tags=nt}async getLatestTelemetry(){return(await(await fetch(`${FORMANT_API_URL}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async getConfiguration(o=!1){let et=await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}});const tt=await et.json();if(!tt.state.reportedConfiguration)throw new Error("Device has no configuration, has it ever been turned on?");const nt=o?tt.desiredConfigurationVersion:tt.state.reportedConfiguration.version;return et=await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}/configurations/${nt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),(await et.json()).document}async getAgentVersion(){var o;const et=await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return(o=et?.state)==null?void 0:o.agentVersion}async getFileUrl(o){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[o]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).fileUrls}async startRealtimeConnection(o={}){if(console.debug(`${new Date().toISOString()} :: Connection start requested`),this.rtcClient&&this.connectionMonitorInterval!==void 0)throw new Error(`Already created realtime connection to device ${this.id}`);this.rtcClient&&console.warn("overwriting existing rtcClient due to missing connectionMonitorInterval");const{sessionType:et,deadlineMs:tt=1e4,maxConnectRetries:nt=3}=typeof o=="number"?{sessionType:o}:o,rt=getRtcClientPool({sessionType:et}).get(this.handleMessage);let it=!1;const ot=new Promise((at,lt)=>setTimeout(()=>{it=!0,lt(new Error("Connection timed out: the connection could not be finalized in time, possibly due to network issues or misconfigured settings."))},tt)),st=async()=>{if("isReady"in rt)for(;!rt.isReady();)this.assertNotCancelled(it),await delay$1(100);const at=await this.getRemoteDevicePeerId(rt);this.assertNotCancelled(it);let lt;for(let dt=0;dt{this.remoteDevicePeerId=at,this.initConnectionMonitoring(),this.rtcClient=rt,this.emit("connect")}).catch(at=>{throw console.debug(`${new Date().toISOString()} :: Connection failed: %o`,at),this.remoteDevicePeerId=null,rt.shutdown().catch(lt=>{console.error("rtcClient cannot shutdown: %o",lt)}),this.emit("connection_failed",at),at})}async getRemoteDevicePeerId(o){const et=(await o.getPeers()).find(tt=>tt.deviceId===this.id);if(!isRtcPeer(et))throw new Error("Cannot find peer, is the robot offline?");return et.id}initConnectionMonitoring(){this.connectionMonitorInterval=setInterval(async()=>{let o=!1;if(this.rtcClient){const et=this.rtcClient.getConnections().find(tt=>tt.getRemotePeerId()===this.remoteDevicePeerId&&tt.isActive());(et===void 0||!et.isReady())&&(console.debug(`${new Date().toISOString()} :: data channel closed`),o=!0)}(!this.rtcClient||!this.remoteDevicePeerId||await this.rtcClient.getConnectionStatsInfo(this.remoteDevicePeerId)===void 0||o)&&(this.emit("disconnect"),this.stopRealtimeConnection().catch(et=>{console.error(et)}))},1e3)}async getRemotePeer(){const o=(await defined$1(this.rtcClient,"Realtime connection has not been started").getPeers()).find(et=>et.deviceId===this.id);return defined$1(o,"Could not find remote peer for device "+this.id)}async stopRealtimeConnection(){let o=!1;if(this.rtcClient){this.stopConnectionMonitoring(),this.remoteDevicePeerId?(await this.rtcClient.disconnect(this.remoteDevicePeerId),this.remoteDevicePeerId=null):o=!0;try{await this.rtcClient.shutdown()}finally{this.rtcClient=void 0}}if(o)throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async isInRealtimeSession(){const o=await getPeers(),et=await getRealtimeSessions(),tt=o.find(nt=>nt.deviceId===this.id);return tt?et[tt.id].length>0:!1}async getAvailableCommands(){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/command-templates/`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(o=>({name:o.name,id:o.id,command:o.command,description:o.description,parameterEnabled:o.parameterEnabled,parameterValue:o.parameterValue,parameterMeta:o.parameterMeta,enabled:o.enabled,tags:o.tags}))}async sendCommand(o,et,tt,nt){var rt;const it=(await this.getAvailableCommands()).find(at=>at.name===o);if(!it)throw new Error(`Could not find command with name "${o}"`);let ot="";et===void 0?it.parameterEnabled&&it.parameterValue&&(ot=it.parameterValue):ot=et;let st={value:ot,scrubberTime:(tt||new Date).toISOString(),meta:{...it.parameterMeta,...nt}};return await fetch(`${FORMANT_API_URL}/v1/admin/commands`,{method:"POST",body:JSON.stringify({commandTemplateId:it.id,organizationId:this.organizationId,deviceId:this.id,command:it.command,parameter:st,userId:(rt=Authentication.currentUser)==null?void 0:rt.id}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async getCommand(o){return await fetch(`${FORMANT_API_URL}/v1/admin/commands/${o}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async createCaptureStream(o){const et=await(await fetch(`${FORMANT_API_URL}/v1/admin/capture-sessions`,{method:"POST",body:JSON.stringify({deviceId:this.id,streamName:o,tags:{}}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return new CaptureStream(et)}async getTelemetry(o,et,tt,nt,rt,it,ot){if(rt!==void 0||it!==void 0)throw new Error("Limit and offset are not supported in this method");return await getTelemetry(this.id,o,et,tt,nt,ot)}async queryEvents(o){if(o.deviceIds)throw new Error("Cannot filter multiple devices via Device class");return o.deviceIds=[this.id],queryEvents(o)}async getTelemetryStreams(){var o,et;const tt=await this.getConfiguration(),nt=await fetch(`${FORMANT_API_URL}/v1/queries/metadata/stream-names`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),rt=[],it=[];return(et=(o=tt.telemetry)==null?void 0:o.streams)==null||et.forEach(ot=>{ot.disabled!==!0&&rt.push(ot.name),ot.onDemand===!0&&it.push(ot.name)}),console.log(it),(await nt.json()).items.filter(ot=>!rt.includes(ot)).map(ot=>({name:ot,onDemand:it.includes(ot)}))}async createInterventionRequest(o,et,tt,nt){return await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-requests`,{method:"POST",body:JSON.stringify({message:o,interventionType:et,time:new Date().toISOString(),deviceId:this.id,tags:nt,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async addInterventionResponse(o,et,tt){return await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-responses`,{method:"POST",body:JSON.stringify({interventionId:o,interventionType:et,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async getAnnotationCount(o,et){return await getAnnotationCount({...o,deviceIds:[this.id]},et)}async getAnnotationCountByIntervals(o,et,tt){return await getAnnotationCountByIntervals({...o,deviceIds:[this.id]},et,tt)}async eventsCounter(o,et,tt,nt,rt){return await eventsCounter(o,et,tt,nt,{...rt,deviceIds:[this.id]})}async createShareLink(o,et){return o.scope.deviceIds=[this.id],await createShareLink(o,et)}}he(Device,"createDevice",createDevice),he(Device,"patchDevice",patchDevice),he(Device,"getDevicesData",getDevicesData),he(Device,"queryDevicesData",queryDevicesData),he(Device,"disableDevice",disableDevice);class PeerDevice extends BaseDevice{constructor(o){super(),he(this,"id"),he(this,"telemetryStreamActive",!1),he(this,"streamTelemetry",{}),this.peerUrl=o}async getLatestTelemetry(){this.telemetryStreamActive||this.subscribeToTelemetry();const o=this.streamTelemetry;return Object.entries(o).map(([et,tt])=>({deviceId:this.id,streamName:et,streamType:"json",currentValue:tt,currentValueTime:tt.timestamp,tags:{}}))}async getTelemetry(o,et,tt,nt,rt,it,ot){if(Array.isArray(o))throw new Error("Multiple stream names not supported");if(nt)throw new Error("Tags not supported");if(ot&&rt===void 0)rt=1;else if(ot&&rt!==void 0)throw new Error("latestOnly and limit cannot be used together");let st=`${this.peerUrl}/v1/querydatapoints?stream_name=${o}&start=${et.toISOString()}&end=${tt.toISOString()}`;rt!=null&&rt>0&&(st+=`&limit=${rt}`),it!=null&&it>=0&&(st+=`&offset=${it}`);const at=await(await fetch(st)).json(),lt=[];for(const ut of at.results){const dt=parseInt(ut.timestamp),ht=ut.tags.data_type;delete ut.tags.data_type,lt.push({deviceId:this.id,name:ut.stream,points:[[dt,this.getPointPayload(ht,ut)]],tags:ut.tags,type:ht})}return lt.reverse()}async queryEvents(o){const et=["id","viewed","keyword","message","sort","eventTypes","notificationEnabled","userIds","annotationTemplateIds","disableNullMatches","severities","deviceIds","names","types","tags","notNames"];this.checkKeysAndThrow(o,et);let tt=`${this.peerUrl}/v1/queryevents?start=${o.start}&end=${o.end}`;o.count!=null&&o.count>0&&(tt+=`&limit=${o.count}`),o.offset!=null&&o.offset>=0&&(tt+=`&offset=${o.offset}`);const nt=await(await fetch(tt)).json(),rt=[];for(const it of nt.results){const ot=parseInt(it.timestamp),st={deviceId:this.id,time:new Date(ot).toISOString(),message:it.message,notificationEnabled:it.notificationEnabled,type:it.type,tags:it.tags};it.id!==""&&(st.id=it.id),it.type!==""&&(st.type=it.type),it.streamName!==""&&(st.streamName=it.streamName),it.streamType!==""&&(st.streamType=it.streamType),it.severity!==""&&(st.severity=it.severity.toLowerCase()),it.tags&&(st.tags=it.tags),it.endTimestamp!=="0"&&(st.endTime=new Date(parseInt(it.endTimestamp)).toISOString()),rt.push(st)}return rt.reverse()}checkKeysAndThrow(o,et){const tt=et.filter(nt=>nt in o);if(tt.length>0)throw new Error(`Filters not currently supported: ${tt.join(", ")}.`)}getPointPayload(o,et){switch(o){case"numeric":return et.numeric.value;case"numeric set":return et.numericSet.numerics;case"text":return et.text.value;case"json":return et.json.value;case"bitset":const tt=[],nt=[];for(const rt of et.bitset.bits)tt.push(rt.key),nt.push(rt.value);return{keys:tt,values:nt};case"location":return et.location;case"health":return et.health;case"battery":return et.battery;default:return{}}}subscribeToTelemetry(){this.telemetryStreamActive=!0;let o=0;const et=new XMLHttpRequest;et.responseType="text",et.addEventListener("error",tt=>{this.handleXHRError("error")}),et.addEventListener("abort",tt=>{this.handleXHRError("abort")}),et.addEventListener("timeout",tt=>{this.handleXHRError("timeout")}),et.addEventListener("readystatechange",tt=>{et.readyState===XMLHttpRequest.DONE&&this.handleXHRError("closed")}),et.addEventListener("progress",tt=>{const nt=tt.loaded,rt=nt-o;o=nt,et.responseText.substr(-rt).split(` +`),Error.captureStackTrace(this,tt)}}s.exports=nt=>{if(nt.length>2)throw new tt(nt);function rt(ot={}){this.options=ot}function it(ot){return new rt(ot)}return rt.prototype.transform=nt,it.Format=rt,it}},function(s,o,et){function tt(it,ot){if(!(it instanceof ot))throw new TypeError("Cannot call a class as a function")}function nt(it,ot){for(var st=0;st0&&arguments[0]!==void 0?arguments[0]:{};tt(this,it),this.loggers=new Map,this.options=at}var ot,st;return ot=it,(st=[{key:"add",value:function(at,lt){var ut=this;if(!this.loggers.has(at)){var dt=(lt=Object.assign({},lt||this.options)).transports||this.options.transports;lt.transports=dt?dt.slice():[];var ht=rt(lt);ht.on("close",function(){return ut._delete(at)}),this.loggers.set(at,ht)}return this.loggers.get(at)}},{key:"get",value:function(at,lt){return this.add(at,lt)}},{key:"has",value:function(at){return!!this.loggers.has(at)}},{key:"close",value:function(at){var lt=this;if(at)return this._removeLogger(at);this.loggers.forEach(function(ut,dt){return lt._removeLogger(dt)})}},{key:"_removeLogger",value:function(at){this.loggers.has(at)&&(this.loggers.get(at).close(),this._delete(at))}},{key:"_delete",value:function(at){this.loggers.delete(at)}}])&&nt(ot.prototype,st),Object.defineProperty(ot,"prototype",{writable:!1}),it}()},function(s,o,et){(function(tt){const nt=et(51),rt=/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/;s.exports=function(it,ot,st,at){let lt,ut,dt=!1,ht=!1;const ct=et(93);function pt(yt){at(ot,yt)}function ft(yt,Ut){let Ft=`"${ot}" ${Ut}`;throw yt&&(Ft=""+Ft),ut&&(Ft=`${Ft}. An example of a valid value would be: ${ut}`),new nt(Ft)}const gt={convertFromBase64:function(){return pt("marking for base64 conversion"),dt=!0,gt},default:function(yt){if(typeof yt=="number")lt=yt.toString();else if(Array.isArray(yt)||typeof yt=="object"&&yt!==null)lt=JSON.stringify(yt);else{if(typeof yt!="string")throw new nt("values passed to default() must be of Number, String, Array, or Object type");lt=yt}return pt(`setting default value to "${lt}"`),gt},required:function(yt){return yt===void 0?(pt("marked as required"),ht=!0):(pt("setting required flag to "+yt),ht=yt),gt},example:function(yt){return ut=yt,gt}};return Object.entries({...ct,...st}).forEach(([yt,Ut])=>{gt[yt]=function(Ft){return function(){let mt=it[ot];if(pt(`will be read from the environment using "${Ft.name}" accessor`),mt===void 0)if(lt===void 0&&ht)pt("was not found in the environment, but is required to be set"),ft(void 0,"is a required variable, but it was not set");else{if(lt===void 0)return void pt("was not found in the environment, but is not required. returning undefined");pt(`was not found in the environment, parsing default value "${lt}" instead`),mt=lt}ht&&(pt("verifying variable value is not an empty string"),mt.trim().length===0&&ft(void 0,"is a required variable, but its value was empty")),dt&&(pt("verifying variable is a valid base64 string"),mt.match(rt)||ft(mt,"should be a valid base64 string if using convertFromBase64"),pt("converting from base64 to utf8 string"),mt=tt.from(mt,"base64").toString());const vt=[mt].concat(Array.prototype.slice.call(arguments));try{pt(`passing value "${mt}" to "${Ft.name}" accessor`);const At=Ft.apply(Ft,vt);return pt("parsed successfully, returning "+At),At}catch(At){ft(mt,At.message)}}}(Ut)}),gt}}).call(this,et(5).Buffer)},function(s,o,et){const tt=et(34);s.exports=function(nt,rt){return rt=rt||",",nt.length?tt(nt).split(rt).filter(Boolean):[]}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(nt!=="false"&&nt!=="true")throw new Error('should be either "true", "false", "TRUE", or "FALSE"');return nt!=="false"}},function(s,o,et){s.exports=function(tt){const nt=tt.toLowerCase();if(["false","0","true","1"].indexOf(nt)===-1)throw new Error('should be either "true", "false", "TRUE", "FALSE", 1, or 0');return!(nt==="0"||nt==="false")}},function(s,o,et){const tt=et(94);s.exports=function(nt){var rt=tt(nt);if(rt>65535)throw new Error("cannot assign a port number greater than 65535");return rt}},function(s,o,et){const tt=et(34);s.exports=function(nt,rt){const it=tt(nt);if(rt.indexOf(it)<0)throw new Error(`should be one of [${rt.join(", ")}]`);return it}},function(s,o,et){const tt=et(53);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative float");return rt}},function(s,o,et){const tt=et(53);s.exports=function(nt){const rt=tt(nt);if(rt<0)throw new Error("should be a positive float");return rt}},function(s,o,et){const tt=et(52);s.exports=function(nt){const rt=tt(nt);if(rt>0)throw new Error("should be a negative integer");return rt}},function(s,o,et){const tt=et(54);s.exports=function(nt){var rt=tt(nt);if(!Array.isArray(rt))throw new Error("should be a parseable JSON Array");return rt}},function(s,o,et){const tt=et(54);s.exports=function(nt){var rt=tt(nt);if(Array.isArray(rt))throw new Error("should be a parseable JSON Object");return rt}},function(s,o,et){s.exports=function(tt,nt){try{RegExp(void 0,nt)}catch{throw new Error("invalid regexp flags")}try{return new RegExp(tt,nt)}catch{throw new Error("should be a valid regexp")}}},function(s,o,et){const tt=et(95);s.exports=function(nt){return tt(nt).toString()}},function(s,o,et){const tt=et(34),nt=/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021\u0023-\u005b\u005d-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021-\u005a\u0053-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])+)\])$/;s.exports=function(rt){const it=tt(rt);if(!nt.test(it))throw new Error("should be a valid email address");return it}},function(s,o,et){s.exports=function(tt,nt){return function(rt,it){nt&&nt.match(/prod|production/)||tt(`env-var (${rt}): ${it}`)}}},function(s,o,et){(function(tt){(function(){var nt,rt,it,ot,st,at;typeof performance<"u"&&performance!==null&&performance.now?s.exports=function(){return performance.now()}:tt!=null&&tt.hrtime?(s.exports=function(){return(nt()-st)/1e6},rt=tt.hrtime,ot=(nt=function(){var lt;return 1e9*(lt=rt())[0]+lt[1]})(),at=1e9*tt.uptime(),st=ot-at):Date.now?(s.exports=function(){return Date.now()-it},it=Date.now()):(s.exports=function(){return new Date().getTime()-it},it=new Date().getTime())}).call(this)}).call(this,et(2))},function(s,o,et){(function(tt){(function(nt){function rt(ot){if((ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextEncoder': The encoding label provided ('"+ot+"') is invalid.")}function it(ot,st){if(st=st===void 0?{fatal:!1}:st,(ot=ot===void 0?"utf-8":ot)!=="utf-8")throw new RangeError("Failed to construct 'TextDecoder': The encoding label provided ('"+ot+"') is invalid.");if(st.fatal)throw Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.")}if(nt.TextEncoder&&nt.TextDecoder)return!1;Object.defineProperty(rt.prototype,"encoding",{value:"utf-8"}),rt.prototype.encode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to encode: the 'stream' option is unsupported.");st=0;for(var at=ot.length,lt=0,ut=Math.max(32,at+(at>>1)+7),dt=new Uint8Array(ut>>3<<3);st=ht){if(st=ht)continue}if(lt+4>dt.length&&(ut+=8,ut=(ut*=1+st/ot.length*2)>>3<<3,(ct=new Uint8Array(ut)).set(dt),dt=ct),(4294967168&ht)==0)dt[lt++]=ht;else{if(!(4294965248&ht))dt[lt++]=ht>>6&31|192;else if(!(4294901760&ht))dt[lt++]=ht>>12&15|224,dt[lt++]=ht>>6&63|128;else{if(4292870144&ht)continue;dt[lt++]=ht>>18&7|240,dt[lt++]=ht>>12&63|128,dt[lt++]=ht>>6&63|128}dt[lt++]=63&ht|128}}return dt.slice(0,lt)},Object.defineProperty(it.prototype,"encoding",{value:"utf-8"}),Object.defineProperty(it.prototype,"fatal",{value:!1}),Object.defineProperty(it.prototype,"ignoreBOM",{value:!1}),it.prototype.decode=function(ot,st){if((st=st===void 0?{stream:!1}:st).stream)throw Error("Failed to decode: the 'stream' option is unsupported.");st=0;for(var at=(ot=new Uint8Array(ot)).length,lt=[];st>>10&1023|55296),ut=56320|1023&ut),lt.push(ut))}return String.fromCharCode.apply(null,lt)},nt.TextEncoder=rt,nt.TextDecoder=it})(typeof window<"u"?window:tt!==void 0?tt:this)}).call(this,et(6))},function(s,o,et){et.r(o),et.d(o,"AuthClient",function(){return rt}),et.d(o,"RtcSignalingClient",function(){return ot}),et.d(o,"Credentials",function(){return kt}),et.d(o,"SignalingPromiseClient",function(){return Nt.SignalingPromiseClient}),et.d(o,"RtcClient",function(){return un}),et.d(o,"RtcClientV1",function(){return ar}),et.d(o,"createRtcStreamMessage",function(){return Qr});var tt=et(26),nt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class rt extends tt.a{adminSignup(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/admin-signup",{token:mn,method:"POST",body:cn})})}login(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login",{method:"POST",body:cn,allowUnsafeRetries:!0})})}loginWithGoogleToken(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login-google",{method:"POST",body:cn,allowUnsafeRetries:!0})})}refresh(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/refresh",{method:"POST",body:{refreshToken:cn,tokenExpirationSeconds:mn},allowUnsafeRetries:!0})})}respondToNewPasswordRequiredChallenge(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/respond-to-new-password-required-challenge",{method:"POST",body:cn})})}forgotPassword(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/forgot-password",{method:"POST",body:{email:cn}})})}confirmForgotPassword(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/confirm-forgot-password",{method:"POST",body:cn})})}resendInvitation(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/resend-invitation",{method:"POST",body:{email:cn}})})}changePassword({token:cn,refreshToken:mn,currentPassword:xn,newPassword:Gn}){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/change-password",{token:cn,method:"POST",body:{refreshToken:mn,currentPassword:xn,newPassword:Gn}})})}getDeviceCredentials(cn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/device-credentials",{token:cn,method:"POST",allowUnsafeRetries:!0})})}impersonate(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/impersonate",{token:cn,method:"POST",allowUnsafeRetries:!0,body:{userId:mn}})})}createServiceAccount(cn,mn,xn,Gn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/service-account",{token:cn,method:"POST",allowUnsafeRetries:!0,body:{name:mn,roleId:xn,tags:Gn}})})}getFeatures(cn){return nt(this,void 0,void 0,function*(){return(yield this.fetch("auth/features",{token:cn})).features})}checkSso(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/check-sso",{method:"POST",body:{email:cn,allowUserAutoCreation:mn}})})}loginWithSso(cn,mn){return nt(this,void 0,void 0,function*(){return yield this.fetch("auth/login-sso",{method:"POST",body:{token:cn,refreshToken:mn}})})}}var it=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class ot extends tt.a{createPeer(cn,mn){return it(this,void 0,void 0,function*(){return yield this.fetch("peers",{token:cn,method:"POST",body:mn})})}getPeers(cn){return it(this,void 0,void 0,function*(){return(yield this.fetch("peers",{token:cn})).items})}refreshPeer(cn,mn){return it(this,void 0,void 0,function*(){yield this.fetch(`peers/${mn}/refresh`,{token:cn,method:"POST",allowUnsafeRetries:!0})})}createSession(cn,mn){return it(this,void 0,void 0,function*(){return yield this.fetch("sessions",{token:cn,method:"POST",body:mn})})}refreshSession(cn,mn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${mn}/refresh`,{token:cn,method:"POST",allowUnsafeRetries:!0})})}deleteSession(cn,mn){return it(this,void 0,void 0,function*(){yield this.fetch("sessions/"+mn,{token:cn,method:"DELETE",allowUnsafeRetries:!0})})}getSessions(cn){return it(this,void 0,void 0,function*(){return(yield this.fetch("sessions",{token:cn})).items})}getIceServers(cn){return it(this,void 0,void 0,function*(){return(yield this.fetch("ice-servers",{token:cn})).items})}addSignals(cn,mn,xn){return it(this,void 0,void 0,function*(){yield this.fetch(`sessions/${mn}/add-signals`,{token:cn,method:"POST",body:xn})})}takeSignals(cn,mn){return it(this,void 0,void 0,function*(){return(yield this.fetch(`sessions/${mn}/take-signals`,{token:cn,method:"POST"})).items})}}var st=et(1),at=et(9),lt=et(15),ut=et.n(lt),dt=et(101),ht=et.n(dt),ct=et(3),pt=et(0),ft=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class gt extends class{constructor(cn,mn){this.type=cn,this.name=mn}}{constructor(cn){super("simple","LogReporter"),this.message=cn}send(cn){return ft(this,void 0,void 0,function*(){var mn,xn;pt.a.debug(this.message,(mn=cn.reduce((Gn,er)=>Object.assign(Object.assign({},Gn),{[er.name]:er.stat}),{}),xn=Gn=>{const{sum:er,count:cr}=Gn,gr=er/cr;return Object.assign(Object.assign({},Gn),{average:gr})},Object.keys(mn).reduce((Gn,er)=>Object.assign(Object.assign({},Gn),{[er]:xn(mn[er])}),{})))})}}const yt=/^[a-zA-Z0-9-_.,:?'"()@\/\\#$+ ]{1,255}$/,Ut=/^[*a-zA-Z0-9-_.,:?'"()@\/\\#$+ ]{1,255}$/;function Ft(hr,cn=!1){return!!(hr!=null&&hr.match(cn?Ut:yt))}var mt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};function vt({func:hr,delay:cn,immediate:mn=!1}){let xn=!1,Gn=setTimeout(function cr(){return mt(this,void 0,void 0,function*(){if(xn)return;const gr=new Date().getTime();try{er=hr(),yield er}finally{if(!xn){const br=new Date().getTime();Gn=setTimeout(cr,Math.max(cn-(br-gr),0))}}})},mn?0:cn),er=Promise.resolve();return{stop(){return mt(this,void 0,void 0,function*(){xn=!0,clearTimeout(Gn),yield er})}}}var At=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};const Lt=et(231);class Rt{constructor(cn){this.buffer={},this.reporters=[],this.flushInterval=vt({func:()=>this.flushStats(),delay:Rt.samplePeriodMs}),this.tags=this.filterTags(cn?.tags||{app:ct.a,version:ct.k,namespace:ct.j})}shutdown(){return At(this,void 0,void 0,function*(){yield this.flushInterval.stop(),yield this.flushStats(),yield Object(at.a)(2*st.a.second)})}aggregate(cn,mn,xn){this.addToBuffer(this.buffer,this.encodeKey({metric:cn,tags:this.filterTags(xn||{})}),typeof mn=="number"?{min:mn,max:mn,sum:mn,count:1}:mn)}increment(cn,mn){this.aggregate(cn,1,mn)}timer(cn,mn,xn){return At(this,void 0,void 0,function*(){const Gn=Lt(),er=yield mn(),cr=Lt();return this.aggregate(cn,cr-Gn,xn),er})}registerStatsReporter(cn){this.reporters.push(cn)}setTag(cn,mn){const xn=this.filterTags({[cn]:mn});this.tags=Object.assign(Object.assign({},this.tags),xn)}addToBuffer(cn,mn,xn){if(cn[mn]){const{min:Gn,max:er,sum:cr,count:gr}=cn[mn];cn[mn]={min:Math.min(Gn,xn.min),max:Math.max(er,xn.max),sum:cr+xn.sum,count:gr+xn.count}}else cn[mn]=xn}write(cn){return At(this,void 0,void 0,function*(){yield Promise.all(this.reporters.map(mn=>At(this,void 0,void 0,function*(){let xn;const Gn={};switch(mn.type){case"simple":for(const[cr,gr]of Object.entries(cn)){const{metric:br}=this.decodeKey(cr);this.addToBuffer(Gn,this.encodeKey({metric:br}),gr)}xn=Gn;break;case"tagged":xn=cn;break;default:(function(cr){throw new Error(`Unreachable type encountered (${cr})`)})(mn.type)}const er=Object.entries(xn);if(er.length>0)return mn.send(er.map(([cr,gr])=>{const{metric:br,tags:ur}=this.decodeKey(cr);return{name:br,tags:Object.assign(Object.assign({},ur),this.tags),stat:gr}}),Rt.samplePeriodMs).catch(cr=>{pt.a.debug("Failed to write stats to "+mn.name,{error:cr})})})))})}flushStats(){return At(this,void 0,void 0,function*(){yield this.write(this.buffer),this.buffer={}})}encodeKey(cn){return ut()(Object.assign(Object.assign({},cn),Object.keys(cn.tags||{}).length>0?{tags:cn.tags}:{}))}decodeKey(cn){return JSON.parse(cn)}filterTags(cn){return Object.entries(cn||{}).reduce((mn,[xn,Gn])=>(Ft(xn)&&Ft(Gn)&&(mn[xn]=Gn),mn),{})}}Rt.samplePeriodMs=5*st.a.minute;const St=!!ct.d,Tt=new Rt;St||["local","on-prem"].includes(ct.j)||Tt.registerStatsReporter(new gt("stats"));var Bt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class xt extends class{constructor(cn){this.options=cn,this.cache=new ht.a(Object.assign(Object.assign(Object.assign({},cn.dispose||cn.disposeAfter?{ttlAutopurge:!0}:{}),cn),{dispose:(...mn)=>{var xn;mn[2]==="evict"&&Tt.increment("lru-eviction",{name:cn.name}),(xn=cn.dispose)===null||xn===void 0||xn.call(cn,...mn)},disposeAfter:(...mn)=>{var xn;this.updateStats(),(xn=cn.disposeAfter)===null||xn===void 0||xn.call(cn,...mn)}})),this.stringify=cn.fastStringify?JSON.stringify:ut.a}set(cn,mn,xn){const Gn=this.stringify(cn);if(!this.cache.set(Gn,mn,{ttl:xn})){const er=this.cache.sizeCalculation?this.cache.sizeCalculation(mn,Gn):"unknown";throw Error(`Value too large (${er} > ${this.cache.max})`)}this.updateStats()}get(cn){const{name:mn}=this.options,xn=this.stringify(cn),Gn=this.cache.getRemainingTTL(xn);return Gn<=0?Tt.increment("cache-miss",{name:mn}):Gn!==1/0&&Tt.aggregate("cache-item-ttl",Gn,{name:mn}),this.cache.get(xn)}delete(cn){this.cache.delete(this.stringify(cn))}peek(cn){return this.cache.peek(this.stringify(cn))}size(){return this.cache.size}clear(){this.cache.clear()}forEach(cn){this.cache.forEach(cn)}purgeStale(){return this.cache.purgeStale()}updateStats(){const{name:cn}=this.options;Tt.aggregate("cache-item-count",this.cache.size,{name:cn}),this.cache.calculatedSize!==void 0&&Tt.aggregate("cache-length",this.cache.calculatedSize,{name:cn})}}{constructor(cn){if(super(cn),this.expireRejectedPromiseValues=cn.expireRejectedPromiseValues===void 0||cn.expireRejectedPromiseValues,this.rejectedPromiseValueTtl=cn.rejectedPromiseValueTtl!==void 0?cn.rejectedPromiseValueTtl:st.a.second,this.rejectedPromiseValueTtl<0)throw new Error("rejectedPromiseValueTtl must not be negative")}set(cn,mn,xn){super.set(cn,mn,xn),this.expireRejectedPromiseValues&&mn.catch(()=>Bt(this,void 0,void 0,function*(){yield Object(at.a)(this.rejectedPromiseValueTtl),this.peek(cn)===mn&&this.delete(cn)}))}}var Ct=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class kt{constructor(cn,mn,xn){this.authClient=cn,this.email=mn,this.password=xn,this.tokenTtlMs=1*st.a.hour,this.tokenCache=new xt({name:"Credentials-tokenCache",max:100,ttl:this.tokenTtlMs-5*st.a.minute,fastStringify:!0})}getToken(){return Ct(this,void 0,void 0,function*(){let cn=this.tokenCache.get(this.email);return cn||(cn=(()=>Ct(this,void 0,void 0,function*(){const{authentication:mn}=yield this.authClient.login({email:this.email,password:this.password,tokenExpirationSeconds:this.tokenTtlMs/st.a.second});if(!mn)throw new Error("User account not verified.");return mn.accessToken}))(),this.tokenCache.set(this.email,cn)),cn})}}var Nt=et(96),Ot=et(17),Jt=et(236),Dt=et(41),Et=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class Pt extends Dt.a{constructor(cn){super(cn)}postLanRtcOffer(cn){return Et(this,void 0,void 0,function*(){return yield this.fetch("v1/lan-rtc-offer",{method:"POST",body:cn})})}}var zt=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};function en(hr){return zt(this,void 0,void 0,function*(){return(yield Promise.all(hr.map(cn=>cn.catch(mn=>mn)))).filter(cn=>cn instanceof Error)})}function Kt(hr,cn){if(hr===void 0)throw new Error("Value is undefined"+(cn?": "+cn:""))}function nn(hr,cn){if(hr===null)throw new Error("Value is null"+(cn?": "+cn:""))}function Zt(hr){return Kt(hr),hr}function jt(hr,cn){const mn=hr.reduce((xn,Gn)=>[...xn,...Gn.urls],[]).filter(xn=>Vt(xn,cn)).sort(xn=>It(xn,"udp")?-1:0).shift();if(mn)return Object.assign(Object.assign({},Zt(hr.find(xn=>xn.urls.includes(mn)))),{urls:[mn]})}function Vt(hr,cn){switch(cn){case"stun":return/^stuns?:/.test(hr);case"turn":return/^turns?:/.test(hr)}}function It(hr,cn){return hr.endsWith("transport="+cn)}var $t=et(10);class Ht extends Error{constructor(cn,mn){super(`Deadline expired after ${cn}ms + ${mn}ms`)}}class qt{static withDeadline(cn,mn){const xn=new Promise((Gn,er)=>{setTimeout(()=>{er(new Ht(mn,this.grpcCallDeadlineSlopMs))},mn+this.grpcCallDeadlineSlopMs)});return Promise.race([cn,xn])}}qt.grpcCallDeadlineSlopMs=500*st.a.millisecond;var on=et(27);const Xt={ordered:!1,maxPacketLifeTime:300*st.a.millisecond},dn={ordered:!0},_n={ordered:!0},Fn={ordered:!1,maxRetransmits:0},Un={ordered:!1,maxRetransmits:0},On=hr=>"received"in hr&&hr.received!==void 0,gn=hr=>!("received"in hr)||hr.received===void 0,hn=2*st.a.second,wn=10*st.a.second;function Zn(hr,cn={}){const mn=Array.from(hr.values()),xn=mn.filter(On),Gn=xn.length>0,er=Math.max(...mn.map(nr=>nr.sent)),cr=Math.max(...xn.map(nr=>nr.received));let gr;if(Gn){const nr=Date.now()-er<=st.a.millisecond?mn.length-1:mn.length,Kr=xn.length>nr?nr:xn.length,ho=xn.map(Gr=>Gr.received-Gr.sent),{standardDeviation:Nn,mean:rr,jitter:Rr}=function(Gr){const Pr=Gr.length;if(Pr===0)return{mean:NaN,standardDeviation:-1,jitter:NaN};const oo=Gr.reduce((lo,To)=>lo+To,0)/Pr,ao=Math.sqrt(Gr.map(lo=>Math.pow(lo-oo,2)).reduce((lo,To)=>lo+To)/Pr);if(Pr===1)return{mean:oo,standardDeviation:ao,jitter:NaN};let mo=0;for(let lo=1;loGr.sent{const[Kr,ho]=nr;ho.sent{var er,cr;return{streamId:Gn,sentCount:(er=mn.get(Gn))!==null&&er!==void 0?er:0,receivedCount:(cr=xn.get(Gn))!==null&&cr!==void 0?cr:0}}),timestamp:cn}}incrementLocalSent(cn){const{localSent:mn}=this.counts,xn=Pn(cn.header.stream);mn.set(xn,(mn.get(xn)||0)+1)}incrementLocalReceived(cn){const{localReceived:mn}=this.counts,xn=Pn(cn.header.stream),Gn=mn.get(xn)||0;if(Gn===0){const{streamName:er,streamType:cr}=cn.header.stream;pt.a.debug("RTC client received first message for stream",{streamName:er,streamType:cr})}mn.set(xn,Gn+1)}uploadMetrics(){return $n(this,void 0,void 0,function*(){const{sessionId:cn}=this,mn=yield this.connection.peerConnection.getStats(),xn={};mn.forEach(ur=>xn[ur.id]=ur),pt.a.debug("rtc-stats",Object.assign(Object.assign({},xn),{sessionId:cn}));const{localSent:Gn,localReceived:er,remoteSent:cr,remoteReceived:gr}=this.counts,br=[...new Set([...Gn.keys(),...er.keys()])].reduce((ur,nr)=>{const Kr=Gn.get(nr),ho=er.get(nr),Nn=cr.get(nr),rr=gr.get(nr);return Object.assign(Object.assign({},ur),{[`local-${nr}-sent`]:Kr,[`local-${nr}-received`]:ho,[`remote-${nr}-sent`]:Nn,[`remote-${nr}-received`]:rr})},{sessionId:cn});pt.a.debug("rtc-message-report",Object.assign({deviceId:this.connection.getRemoteDeviceId()},br))})}}function Qr(hr,cn,mn){return{header:{stream:hr,created:Date.now(),frameId:mn||""},payload:cn}}function _r(hr){const cn=hr.localCandidate.candidateType,mn=hr.remoteCandidate.candidateType;return cn==="host"&&mn==="host"?"local":cn==="relay"||mn==="relay"?"TURN":"STUN"}function Ir(hr){return new Set(["disconnected","failed","closed"]).has(hr.iceConnectionState)}function Jr(hr){switch(hr.header.stream.streamType){case"twist":{const{twist:cn}=hr.payload;if(!cn)throw Error("twist not in payload of RTC message with type twist");return{header:hr.header,payload:{twist:{linear:Object.assign({x:0,y:0,z:0},cn.linear),angular:Object.assign({x:0,y:0,z:0},cn.angular)}}}}case"pose":{const{pose:cn}=hr.payload;if(!cn)throw Error("pose not in payload of RTC message with type pose");return{header:hr.header,payload:{pose:{translation:Object.assign({x:0,y:0,z:0},cn.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},cn.rotation)}}}}case"pose-with-covariance":{const{poseWithCovariance:cn}=hr.payload;if(!cn)throw Error("poseWithCovariance not in payload of RTC message with type pose-with-covariance");const mn=new Array(36).fill(0);return cn.covariance.forEach((xn,Gn)=>{if(Gn>=36)throw Error("covariance contains more than 36 elements");mn[Gn]=xn}),{header:hr.header,payload:{poseWithCovariance:{pose:{translation:Object.assign({x:0,y:0,z:0},cn.pose.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},cn.pose.rotation)},covariance:mn}}}}case"point":{const{point:cn}=hr.payload;if(!cn)throw Error("point not in payload of RTC message with type point");return{header:hr.header,payload:{point:Object.assign({x:0,y:0,z:0},cn)}}}default:return hr}}var qr=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class Uo{get peerConnection(){return nn(this._peerConnection,"RTCPeerConnection is closed!"),this._peerConnection}constructor(cn,mn,xn,Gn){this.iceServers=mn,this.config=xn,this.dataChannelNotifier=Gn,this.connectTimeoutMs=20*st.a.second,this.iceGatheringTimeoutMs=3*st.a.second,this.pingUpdateTimeoutMs=1*st.a.second,this.pingV2UpdateTimeoutMs=250*st.a.millisecond,this.pingV2MetricsGatherTimeoutMs=1*st.a.second,this.streamsInfoUpdateTimeoutMs=2*st.a.second,this.reassemblyTimeoutMs=500*st.a.millisecond,this.reassemblyTableCleanupMs=1*st.a.second,this.heartbeatTimeoutMs=20*st.a.millisecond,this._peerConnection=null,this.heartbeatChannel=null,this.latestTtlStreamChannel=null,this.reliableStreamChannel=null,this.latestReliableStreamChannel=null,this.latestTryOnceStreamChannel=null,this.streamLatestTimestamp=new Map,this.reassemblyTable=new Map,this.reassemblyTableLastTimestamp=new Map,this.closeCalled=!1,this.gotOffer=!1,this.hasIceCandidate=!1,this.pingV2Map=new Map,this.sendPingV2=()=>{const{latestTryOnceStreamChannel:cr}=this;if(!cr)return;const gr=new Date().getTime(),br=Object(Jt.a)();this.sendSystemMessage(cr,{type:"ping-v2",payload:{timestamp:gr,id:br}}),this.pingV2Map.set(br,{sent:gr})},this.gatherPingV2Metrics=()=>{const cr=Zn(this.pingV2Map);if(cr){const gr=this.getRemoteDeviceId();this.pingInfo=cr,Tt.aggregate("rtc-ping-average",cr.average,Object.assign({},gr?{deviceId:gr}:{})),Tt.aggregate("rtc-ping-loss",cr.loss,Object.assign({},gr?{deviceId:gr}:{})),Tt.aggregate("rtc-jitter",cr.jitter,Object.assign({},gr?{deviceId:gr}:{}))}},this._peerConnection=cn;const{isOffer:er}=xn.baseConfig;er?this.initializeChannels(cn):cn.ondatachannel=cr=>{switch(cr.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=cr.channel;break;case"stream.reliable":this.reliableStreamChannel=cr.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=cr.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=cr.channel;break;case"heartbeat":return void(this.heartbeatChannel=cr.channel);default:return void this.dataChannelNotifier(cr.channel)}this.setupChannel(cr.channel)},this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:cr}=this;cr&&this.sendSystemMessage(cr,{type:"ping"})},this.pingUpdateTimeoutMs),this.pingV2UpdateTimeout=setInterval(this.sendPingV2,this.pingV2UpdateTimeoutMs),this.pingV2MetricsGatherTimeout=setInterval(this.gatherPingV2Metrics,this.pingV2MetricsGatherTimeoutMs),this.streamsInfoUpdateTimeout=setInterval(()=>{const{latestTtlStreamChannel:cr}=this;cr&&this.sendSystemMessage(cr,{type:"streams-info"})},this.streamsInfoUpdateTimeoutMs),this.reassemblyTableCleanupTimeout=setInterval(()=>{const cr=new Date().getTime();this.reassemblyTableLastTimestamp.forEach((gr,br,ur)=>{cr>br+this.reassemblyTimeoutMs&&this.reassemblyTable.delete(gr)})},this.reassemblyTableCleanupMs),this.heartbeatTimeout=setInterval(()=>{const{heartbeatChannel:cr}=this;cr&&cr.readyState==="open"&&cr.send(new Uint8Array([1]))},this.heartbeatTimeoutMs)}handleSignal(cn){return qr(this,void 0,void 0,function*(){const{peerConnection:mn}=this,{track:xn}=this.config.baseConfig,Gn=(()=>{try{return JSON.parse(cn.getPayload())}catch{return}})();if(!Gn)return void pt.a.error("Received unparseable signal.");pt.a.debug("Handling signal",{description:Gn});const{sdp:er,type:cr}=Gn;if(!er||!cr)return void pt.a.warn("Received non-SDP signal");const{signalingState:gr,connectionState:br}=mn;if(gr!=="stable"||br!=="connected")if(mn.remoteDescription)pt.a.warn("Received SDP after remote description was set: "+er);else{if(cr==="offer"){if(gr!=="stable")return void pt.a.warn("Received offer SDP when signaling is ongoing.");yield mn.setRemoteDescription(Gn);const ur=yield mn.createAnswer();yield mn.setLocalDescription(ur);const nr=cn.clone();return xn?.("Answer Received",nr),nr.setPayload(JSON.stringify(ur)),nr.setReceiverId(cn.getSenderId()),nr.setSenderId(cn.getReceiverId()),nr}if(cr==="answer"){if(gr==="stable")return void pt.a.warn("Received answer SDP when signaling hasn't started.");yield mn.setRemoteDescription(Gn)}}else pt.a.warn("Received SDP when already connected: "+er)})}send(cn,mn){const xn=this.getChannelFromLabel(mn.channelLabel);xn?this.sendOnChannel(xn,cn):pt.a.warn("Send called with unexpected channel label",{channelLabel:mn.channelLabel})}controlRemoteStream(cn){var mn;this.sendSystemMessage((nn(mn=this.reliableStreamChannel),mn),{type:"stream-control",streamControl:cn})}isActive(){return new Set(["new","checking","connected","completed"]).has(this.peerConnection.iceConnectionState)||this.isReady()}isReady(){const{reliableStreamChannel:cn,latestTtlStreamChannel:mn,latestTryOnceStreamChannel:xn,latestReliableStreamChannel:Gn}=this;return cn?.readyState==="open"&&mn?.readyState==="open"&&xn?.readyState==="open"&&Gn?.readyState==="open"}close(){var cn,mn,xn,Gn,er,cr,gr;return qr(this,void 0,void 0,function*(){this.closeCalled||(this.closeCalled=!0,yield(cn=this.sessionMetrics)===null||cn===void 0?void 0:cn.uploadMetrics(),eo(this.pingUpdateTimeout),eo(this.pingV2UpdateTimeout),eo(this.pingV2MetricsGatherTimeout),eo(this.reassemblyTableCleanupTimeout),eo(this.streamsInfoUpdateTimeout),eo(this.heartbeatTimeout),(mn=this._peerConnection)===null||mn===void 0||mn.close(),(xn=this.heartbeatChannel)===null||xn===void 0||xn.close(),(Gn=this.latestReliableStreamChannel)===null||Gn===void 0||Gn.close(),(er=this.latestTryOnceStreamChannel)===null||er===void 0||er.close(),(cr=this.latestTtlStreamChannel)===null||cr===void 0||cr.close(),(gr=this.reliableStreamChannel)===null||gr===void 0||gr.close(),this._peerConnection=null,this.heartbeatChannel=null,this.latestReliableStreamChannel=null,this.latestTryOnceStreamChannel=null,this.latestTtlStreamChannel=null,this.reliableStreamChannel=null)})}getPing(){return this.pingTimeMs}getPingInfo(){return this.pingInfo}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionCreatedTimestamp(){var cn;return(cn=this.config.remoteConfig)===null||cn===void 0?void 0:cn.sessionCreatedTimestamp}setSessionCreatedTimestamp(cn){this.config.remoteConfig&&(this.config.remoteConfig.sessionCreatedTimestamp=cn)}getSessionId(){var cn;return(cn=this.config.remoteConfig)===null||cn===void 0?void 0:cn.sessionId}setSessionId(cn){this.config.remoteConfig&&(this.config.remoteConfig.sessionId=cn,this.sessionMetrics=new Tr(cn,this))}getRemotePeerId(){return this.config.baseConfig.remotePeerId}getRemoteDeviceId(){var cn;return(cn=this.config.baseConfig)===null||cn===void 0?void 0:cn.remoteDeviceId}setRemoteDeviceId(cn){this.config.baseConfig.remoteDeviceId=cn}getSessionMetricsMessageCounts(){var cn;return(cn=this.sessionMetrics)===null||cn===void 0?void 0:cn.counts}getConnectionStatsInfo(){return qr(this,void 0,void 0,function*(){const{peerConnection:cn}=this;if(!cn)return;const mn=yield cn.getStats(null),xn=[];mn.forEach(br=>{xn.push(br)});const Gn=xn.find(br=>br.type==="transport");if(!Gn)return;const er=xn.find(br=>(br.type==="candidate-pair"||br.type==="candidatepair")&&br.id===Gn.selectedCandidatePairId);if(!er)return;const cr=xn.find(br=>br.id===er.localCandidateId),gr=xn.find(br=>br.id===er.remoteCandidateId);return cr&&gr&&(cr.address=cr.address||cr.ip,gr.address=gr.address||gr.ip,cr.address!==void 0&&gr.address!==void 0)?{transport:Gn,localCandidate:cr,remoteCandidate:gr,candidatePair:er}:void 0})}initializeChannels(cn){this.heartbeatChannel=cn.createDataChannel("heartbeat",Un),this.heartbeatChannel.binaryType="arraybuffer",this.latestTtlStreamChannel=cn.createDataChannel("stream.latest-ttl",Xt),this.latestTtlStreamChannel.binaryType="arraybuffer",this.reliableStreamChannel=cn.createDataChannel("stream.reliable",dn),this.reliableStreamChannel.binaryType="arraybuffer",this.latestReliableStreamChannel=cn.createDataChannel("stream.latest-reliable",_n),this.latestReliableStreamChannel.binaryType="arraybuffer",this.latestTryOnceStreamChannel=cn.createDataChannel("stream.latest-try-once",Fn),this.latestTryOnceStreamChannel.binaryType="arraybuffer",this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}getOffer(){var cn,mn;return qr(this,void 0,void 0,function*(){const{gotOffer:xn}=this,{peerConnection:Gn,config:er}=this;if(this.config.baseConfig.isLan)throw new Error('"getOffer" method can only be called with internet connections. LAN connections should call the "getLanOffer" method.');const cr=(cn=this.config.remoteConfig)===null||cn===void 0?void 0:cn.sessionId;if(xn)return void pt.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,Ir(this.peerConnection))return void pt.a.debug("Failed to generate offer because the peer connection was inactive.");const gr=er.baseConfig.track;Gn.onicecandidate=()=>{this.hasIceCandidate=!0},Gn.oniceconnectionstatechange=()=>qr(this,void 0,void 0,function*(){const Nn=Gn.iceConnectionState;if(Nn==="connected"||Nn==="completed"){const rr=yield this.getConnectionStatsInfo(),Rr=rr?_r(rr):void 0;pt.a.info("ICE connection state changed to "+Nn,{sessionId:cr,connectionStatsInfo:rr,iceMode:Rr}),gr?.("ICE connection state change",{iceConnectionState:Nn,sessionId:cr,connectionStatsInfo:rr,iceMode:Rr})}}),yield Gn.setLocalDescription(yield Gn.createOffer());const br=Gn.getConfiguration?Gn.getConfiguration().iceTransportPolicy:"all",ur=new Date().getTime();for(;;){const Nn=new Date().getTime()-ur;if(Nn>this.connectTimeoutMs)return void pt.a.debug("Failed to generate offer because ICE gathering timed out.");if(Nn>this.iceGatheringTimeoutMs&&this.hasIceCandidate){pt.a.debug("ICE gathering partially completed; proceeding",{iceTransportPolicy:br,waitTime:Nn}),gr?.("ICE gathering partially completed",{sessionId:cr,iceTransportPolicy:br,waitTime:Nn});break}if(Gn.iceGatheringState==="complete"){pt.a.debug("ICE gathering complete",{iceTransportPolicy:br,waitTime:Nn}),gr?.("ICE gathering completed",{sessionId:cr,iceTransportPolicy:br,waitTime:Nn});break}yield Object(at.a)(.1*st.a.second)}const nr=(mn=this.iceServers)!==null&&mn!==void 0?mn:[];for(const Nn of nr)"credentialType"in Nn&&(Nn.credentialType=void 0);const Kr=JSON.stringify(nr),ho=new $t.Signal;return ho.setPayload(JSON.stringify(Gn.localDescription)),ho.setSenderId(this.config.baseConfig.localPeerId),ho.setReceiverId(this.config.baseConfig.remotePeerId),ho.setIceServers(Kr),ho.setIceTransportPolicy(br??"all"),this.config.baseConfig.sessionType!==void 0?ho.setSessionType(this.config.baseConfig.sessionType):ho.setSessionType($t.SessionType.TELEOP),pt.a.debug("Sending offer signal with description",{description:ho.getPayload()}),ho})}getLanOffer(){return qr(this,void 0,void 0,function*(){const{peerConnection:cn,gotOffer:mn}=this;if(!this.config.baseConfig.isLan)throw new Error('"getLanOffer" method can only be used with LAN connections. Internet connections should call the "getOffer" method.');if(mn)return void pt.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,Ir(this.peerConnection))return void pt.a.debug("Failed to generate offer because the peer connection was inactive.");yield cn.setLocalDescription(yield cn.createOffer());const xn=new Date().getTime();for(;;){if(new Date().getTime()-xn>this.iceGatheringTimeoutMs)return void pt.a.debug("Failed to generate offer because ICE gathering timed out.");if(cn.iceGatheringState==="complete")break;yield Object(at.a)(.1*st.a.second)}const Gn=cn.localDescription;if(Gn)return pt.a.debug("Sending LAN offer signal with description",{description:Gn}),Gn;pt.a.error("Failed to generate LAN offer description")})}handleLanAnswer(cn){return qr(this,void 0,void 0,function*(){const{peerConnection:mn}=this;if(!this.config.baseConfig.isLan)throw new Error('"handleLanAnswer" method can only be used with LAN connections. Internet connections should call the "handleSignal" method.');yield mn.setRemoteDescription(cn)})}getChannelFromLabel(cn){switch(cn){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(cn,mn){var xn;let Gn;try{Gn=Object(on.encode)(JSON.stringify(mn))}catch(er){return void pt.a.warn("Failed to encode RTC message",{error:er})}try{cn.send(Gn),(xn=this.sessionMetrics)===null||xn===void 0||xn.incrementLocalSent(mn)}catch(er){pt.a.warn("Failed to send message to channel",{error:er,channel:cn.label})}}channelNotRecognized(cn){return cn!==this.latestTtlStreamChannel&&cn!==this.latestReliableStreamChannel&&cn!==this.latestTryOnceStreamChannel&&cn!==this.reliableStreamChannel}setupChannel(cn){cn.onmessage=mn=>{if(this.channelNotRecognized(cn))return void pt.a.warn("Received message on unrecognized data channel.");let xn;try{xn=JSON.parse(Object(on.decode)(mn.data))}catch(Gn){return void pt.a.warn("Received unparseable message on RTC stream data channel",{error:Gn,channel:cn.label})}xn.communicationType==="message-chunk"?this.receiveChannelMessageChunk(cn,xn):this.receiveChannelMessage(cn,xn)},cn.onerror=mn=>{pt.a.warn("Channel error: "+mn.error,{error:mn.error,sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onopen=()=>{pt.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onclose=()=>{const mn={bufferedAmount:cn.bufferedAmount,sessionId:this.getSessionId(),channelLabel:cn.label};this.closeCalled===!1?pt.a.debug("Unexpected channel closed",mn):pt.a.debug("Channel closed",mn)}}receiveChannelMessage(cn,mn){var xn;const{config:Gn}=this,{remotePeerId:er}=this.config.baseConfig;this.lastMessageTimestamp=new Date().getTime(),mn=Jr(mn),(xn=this.sessionMetrics)===null||xn===void 0||xn.incrementLocalReceived(mn),!this.handleSystemMessage(cn,mn)&&((cn===this.latestTryOnceStreamChannel||cn===this.latestTtlStreamChannel||cn===this.latestReliableStreamChannel)&&!this.isLatestMessage(mn)||Gn.baseConfig.receive(er,mn))}receiveChannelMessageChunk(cn,mn){const xn=this.reassemblyTable.get(mn.id)||[];if(xn.push(mn),xn.length===mn.total){const Gn=function(er){const cr=er.sort((gr,br)=>gr.seqgr.part).reduce((gr,br)=>gr+br);try{return JSON.parse(cr)}catch{return void pt.a.warn("Could not reassemble RTC message chunks")}}(xn);return Gn&&this.receiveChannelMessage(cn,Gn),void this.reassemblyTable.delete(mn.id)}this.reassemblyTable.set(mn.id,xn),this.reassemblyTableLastTimestamp.set(mn.id,new Date().getTime())}handleSystemMessage(cn,mn){var xn,Gn;const{config:er}=this,{baseConfig:cr}=er,{remotePeerId:gr,remoteDeviceId:br}=cr;switch(mn.header.stream.streamType){case"ping":return this.sendSystemMessage(cn,{type:"pong",timestamp:Zt(mn.payload.ping)}),!0;case"pong":{const ur=new Date().getTime()-Zt(mn.payload.pong);return this.pingTimeMs=ur,Tt.aggregate("rtc-ping-time",ur,Object.assign({},br?{deviceId:br}:{})),!0}case"ping-v2":return this.sendPingV2(),!0;case"pong-v2":{const ur=Zt(mn.payload.pongV2),nr=this.pingV2Map.get(ur.id);return nr?.sent!==ur.timestamp&&pt.a.warn("Pong timestamp doesn't match stored value",{currentEntry:nr,pong:ur}),this.pingV2Map.set(ur.id,{sent:ur.timestamp,received:new Date().getTime()}),!0}case"streams-info":{const{sessionMetrics:ur}=this,nr=(xn=mn.payload.streamsInfo)===null||xn===void 0?void 0:xn.timestamp;return!!nr&&(ur?.updateRemoteMessagesCounts(mn),(Gn=cr.onStreamsInfoUpdate)===null||Gn===void 0||Gn.call(cr,gr,nr),!0)}case"stream-control":return!0;default:return!1}}sendSystemMessage(cn,mn){var xn;const{localUserId:Gn,localPeerId:er}=this.config.baseConfig;if(cn.readyState!=="open")return;const cr={entityId:Gn??er,streamName:"$."+mn.type,streamType:mn.type};let gr;switch(mn.type){case"ping":gr={ping:new Date().getTime()};break;case"pong":gr={pong:mn.timestamp};break;case"ping-v2":gr={pingV2:mn.payload};break;case"pong-v2":gr={pongV2:mn.payload};break;case"stream-control":gr={streamControl:mn.streamControl};break;case"streams-info":gr={streamsInfo:(xn=this.sessionMetrics)===null||xn===void 0?void 0:xn.getLocalStreamsInfo(new Date().getTime())}}this.sendOnChannel(cn,Qr(cr,gr))}isLatestMessage(cn){const mn=Pn(cn.header.stream),xn=(this.streamLatestTimestamp.get(mn)||0)<=cn.header.created;return xn&&this.streamLatestTimestamp.set(mn,cn.header.created),xn}}function eo(hr){hr&&clearInterval(hr)}function Yr(){pt.a.debug("forceGarbageCollection() triggered"),queueMicrotask(()=>{let hr=document.createElement("img");hr.src=window.URL.createObjectURL(new Blob([new ArrayBuffer(5e7)])),hr.onerror=function(){window.URL.revokeObjectURL(this.src),hr=null}})}function _o(hr){try{return hr instanceof Error?`${hr.name}: ${hr.message}`:typeof hr=="object"?JSON.stringify(hr):String(hr)}catch{return"Unknown error"}}function ro(hr){var cn,mn;return{userId:(cn=hr.getUserId())===null||cn===void 0?void 0:cn.getValue(),deviceId:(mn=hr.getDeviceId())===null||mn===void 0?void 0:mn.getValue(),organizationId:hr.getOrganizationId(),id:hr.getPeerId(),capabilities:[],capabilitySet:{}}}var Fo=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};const kn=hr=>hr.map(cn=>Object.assign(Object.assign(Object.assign({},cn),cn.username?{username:""}:null),cn.credential?{credential:""}:null));class un{constructor(cn){this.config=cn,this.grpcCallDeadline=5*st.a.second,this.refreshIntervalDelayMs=2*st.a.second,this.iceServersTtl=30*st.a.minute,this.connections=[],this.localConnections=[],this.isConnectionInitiator=new WeakSet,this.isOutgoingConnection=new Set,this.peerDataChannelListeners=[],this.rtcInstancesConstructed=0,this.statsLoopsExecuted=0;const{refreshIntervalDelayMs:mn}=this;this.refreshInterval=vt({func:()=>Fo(this,void 0,void 0,function*(){try{yield this.update()}catch(xn){pt.a.warn("RTC refresh failed",{error:xn})}}),delay:mn,immediate:!0})}send(cn,mn,xn){const Gn=this.getActiveConnection(cn);Gn?Gn.isReady()?Gn.send(mn,xn):pt.a.warn("Send called with unready connection."):pt.a.warn("Send called with no connection.")}controlRemoteStream(cn,mn){const xn=this.getActiveConnection(cn);xn?xn.isReady()?xn.controlRemoteStream(mn):pt.a.warn("controlRemoteStream called with unready connection."):pt.a.warn("controlRemoteStream called with no connection.")}getLocalPeer(){return Fo(this,void 0,void 0,function*(){for(;!this.localPeer;)yield Object(at.a)(.1*st.a.second);return ro(this.localPeer)})}connect(cn,mn){var xn,Gn,er;return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode===!0)throw new Error("connect method called in local only mode.");const{track:cr,signalingClient:gr}=this.config,{localPeer:br,receiveSignalStream:ur,iceServers:nr}=this;if(!br||!ur||!nr)return void pt.a.warn("Connect called prior to local peer, receiveSignalStream, and ICE servers ready");if(this.getActiveConnection(cn))return void pt.a.warn("Connect called for peer with existing connection.");if(this.isOutgoingConnection.has(cn))return void pt.a.warn("Connect called for peer with an existing outgoing connection offer.");this.isOutgoingConnection.add(cn);const Kr=function(zr,Gr,Pr){const{rtcIceTransportPolicies:oo,rtcIceServerProtocol:ao,useAllServers:mo}=Gr||{},lo=zr.map(To=>Object.assign(Object.assign({},To),{urls:To.urls.filter(Wo=>{const Go=(oo===void 0||oo.some(cs=>Vt(Wo,cs)))&&(ao===void 0||It(Wo,ao));return Go||pt.a.debug("Ignoring ICE server: "+Wo,{organizationId:Pr}),Go})})).filter(({urls:To})=>To.filter(Wo=>Wo).length>0);return mo?lo:[jt(lo,"stun"),jt(lo,"turn")].filter(To=>To!==void 0).map(To=>Zt(To))}(nr,mn);pt.a.debug("Received ICE servers:",kn(nr)),pt.a.debug("Using ICE servers:",kn(Kr));const ho=new Uo(yield this.createRTCPeerConnection(Kr),Kr,{baseConfig:{isOffer:!0,isLan:!1,receive:(zr,Gr)=>this.config.receive(zr,Gr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(zr,Gr)=>{var Pr,oo;return(oo=(Pr=this.config).onStreamsInfoUpdate)===null||oo===void 0?void 0:oo.call(Pr,zr,Gr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(xn=br.getUserId())===null||xn===void 0?void 0:xn.getValue(),localPeerId:br.getPeerId(),remotePeerId:cn,sessionType:this.config.sessionType},remoteConfig:{}},zr=>this.onCustomDataChannel(cn,zr)),Nn=yield ho.getOffer();if(!Nn)return pt.a.error("Failed to generate offer."),void this.isOutgoingConnection.delete(cn);pt.a.debug("Sending offer."),cr?.("Sending offer",Nn);const rr=new $t.SendSignalRequest;rr.setSignal(Nn);const Rr=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(gr.sendSignal(rr,yield this.getMetadata()),this.grpcCallDeadline)}catch(zr){pt.a.warn("Error when sending signal",{error:zr})}}))();if(!this.isOutgoingConnection.has(cn))return void pt.a.debug("No offer set after receiving offer signal response.");pt.a.debug("Offer sent.");const vr=(Gn=Rr?.getSessionId())===null||Gn===void 0?void 0:Gn.getValue(),fr=(er=Rr?.getSessionCreatedTimestamp())===null||er===void 0?void 0:er.getValue();return vr&&fr?(ho.setSessionId(vr),ho.setSessionCreatedTimestamp(fr),this.isOutgoingConnection.delete(cn),this.connections.push(ho),this.isConnectionInitiator.add(ho),this.setupHandlers(ho),vr):(pt.a.warn("No session ID or no session created timestamp on send signal response."),void this.isOutgoingConnection.delete(cn))})}connectLan(cn){var mn,xn;return Fo(this,void 0,void 0,function*(){const Gn=new Pt(cn),er=new Uo(yield this.createRTCPeerConnection([]),[],{baseConfig:{isOffer:!0,isLan:!0,receive:(ur,nr)=>this.config.receive(ur,nr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(ur,nr)=>{var Kr,ho;return(ho=(Kr=this.config).onStreamsInfoUpdate)===null||ho===void 0?void 0:ho.call(Kr,ur,nr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(xn=(mn=this.localPeer)===null||mn===void 0?void 0:mn.getUserId())===null||xn===void 0?void 0:xn.getValue(),localPeerId:"lan_client",remotePeerId:cn}},ur=>this.onCustomDataChannel(cn,ur)),cr=yield er.getLanOffer();if(!cr)return pt.a.warn("Could not generate LAN offer"),!1;const gr=yield Gn.postLanRtcOffer({offer:JSON.stringify(cr)}),br=new RTCSessionDescription(JSON.parse(gr.answer));return yield er.handleLanAnswer(br),this.localConnections.push(er),this.isConnectionInitiator.add(er),Object(Jt.a)()})}getConnections(){return[...this.connections,...this.localConnections]}createCustomDataChannel(cn,mn,xn,Gn,er){const cr=this.getActiveConnection(cn);if(cr&&this.isConnectionInitiator.has(cr)){const br=cr.peerConnection.createDataChannel("custom."+mn,xn);return Gn&&(br.binaryType="arraybuffer"),er(cn,br),()=>{}}const gr=(br,ur)=>{cn===br&&ur.label==="custom."+mn&&er(cn,ur)};return this.peerDataChannelListeners.push(gr),()=>{this.peerDataChannelListeners=this.peerDataChannelListeners.filter(br=>br!==gr)}}onCustomDataChannel(cn,mn){this.peerDataChannelListeners.forEach(xn=>xn(cn,mn))}getConnectionStatus(cn){if(this.isOutgoingConnection.has(cn))return"connecting";const mn=this.getActiveConnection(cn);return mn?mn.isReady()?"connected":"connecting":"disconnected"}getConnectionStatsInfo(cn){return Fo(this,void 0,void 0,function*(){const mn=this.getActiveConnection(cn);if(mn)return yield mn.getConnectionStatsInfo()})}disconnect(cn){return Fo(this,void 0,void 0,function*(){const mn=this.getActiveConnection(cn);mn&&(yield mn.close(),this.connections=this.connections.filter(xn=>xn!==mn),this.localConnections=this.localConnections.filter(xn=>xn!==mn))})}getPeers(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,mn=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(cn.getPeers(new $t.GetPeersRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(er){pt.a.warn("Error when getting peers",{error:er})}}))();if(!mn)return[];const xn=mn.getPeersList();if(!xn)return[];const Gn=er=>{var cr,gr;return(gr=(cr=er.getPeerCreatedTimestamp())===null||cr===void 0?void 0:cr.getValue())!==null&&gr!==void 0?gr:0};return xn.sort((er,cr)=>Gn(cr)-Gn(er)).map(er=>ro(er))})}getSessions(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,mn=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(cn.getPeers(new $t.GetPeersRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(er){pt.a.warn("Error when getting peers",{error:er})}}))();if(!mn)return{};const xn=mn.getPeersList(),Gn={};for(const er of xn)Gn[er.getPeerId()]=er.getSessionIdsList();return Gn})}getPing(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getPing();pt.a.warn("Attempted to get ping time from inactive peer.")}getPingInfo(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getPingInfo();pt.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getLastMessageTimestamp();pt.a.warn("Attempted to get last message time from inactive peer.")}getSessionMetricsMessageCounts(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getSessionMetricsMessageCounts();pt.a.warn("Attempted to get session metrics counts from inactive peer.")}isReady(){if(this.config.lanOnlyMode)return!0;const{localPeer:cn,receiveSignalStream:mn,iceServers:xn}=this;return!!(cn&&mn&&xn)}shutdown(){return Fo(this,void 0,void 0,function*(){yield this.refreshInterval.stop(),this.receiveSignalStream&&this.receiveSignalStream.cancel();const cn=this.connections;this.connections=[],yield this.closeConnections(cn);const mn=this.localConnections;this.localConnections=[],yield this.closeConnections(mn),this.isOutgoingConnection.clear(),this.peerDataChannelListeners=[];const{localPeer:xn}=this;if(!xn||this.config.lanOnlyMode)return;const{signalingClient:Gn}=this.config;yield(()=>Fo(this,void 0,void 0,function*(){try{const er=new $t.DeletePeerRequest;er.setPeerId(xn.getPeerId()),yield qt.withDeadline(Gn.deletePeer(er,yield this.getMetadata()),this.grpcCallDeadline)}catch(er){return void pt.a.warn("Error deleting local peer",{error:er})}}))()})}createPeer(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createPeer method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,mn=yield(()=>Fo(this,void 0,void 0,function*(){try{return yield qt.withDeadline(cn.createPeer(new $t.CreatePeerRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(Gn){const er=Gn;pt.a.debug("createPeer failed",{error:er});const cr=_o(er);throw new Error("Was not able to create peer: "+cr)}}))(),xn=mn?.getPeer();if(!xn)throw new Error("Response did not provide peer.");return this.localPeer=xn})}createReceiveSignalStream(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createReceiveSignalStream method cannot be used in local-only mode.");const{signalingClient:cn}=this.config,{localPeer:mn,iceServers:xn}=this;if(!mn||!xn)return;const{receiveSignalStream:Gn}=this;Gn&&Gn.cancel();const er=new $t.ReceiveSignalStreamRequest;er.setPeerId(mn.getPeerId());const cr=yield(()=>Fo(this,void 0,void 0,function*(){try{return cn.receiveSignalStream(er,yield this.getMetadata({hasDeadline:!1}))}catch(gr){pt.a.debug("createReceiveSignalStream failed",{error:gr});const br=_o(gr);throw new Error("Unable to create receive signal stream: "+br)}}))();if(!cr)throw new Error("Response did not provide stream.");return cr.on("data",gr=>Fo(this,void 0,void 0,function*(){var br,ur,nr,Kr;const ho=gr.getSignal(),Nn=(br=ho?.getSessionId())===null||br===void 0?void 0:br.getValue(),rr=ho?.getSenderId(),Rr=ho?.getReceiverId(),vr=(ur=ho?.getSessionCreatedTimestamp())===null||ur===void 0?void 0:ur.getValue();if(!(ho&&Nn&&rr&&Rr&&vr))return void pt.a.warn("Received signal with missing information.");const fr=this.getActiveConnection(rr);if(fr)if(fr.getSessionId()!==Nn){if(pt.a.debug("Received signal: different session for a peer we're already connected to."),(fr.getSessionCreatedTimestamp()||0)>vr)return;const zr=new Uo(yield this.createRTCPeerConnection(xn),xn,{baseConfig:{isOffer:!1,isLan:!1,receive:(Gr,Pr)=>this.config.receive(Gr,Pr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(Gr,Pr)=>{var oo,ao;return(ao=(oo=this.config).onStreamsInfoUpdate)===null||ao===void 0?void 0:ao.call(oo,Gr,Pr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:mn.getPeerId(),localUserId:(Kr=mn.getUserId())===null||Kr===void 0?void 0:Kr.getValue(),remotePeerId:rr},remoteConfig:{sessionId:Nn,sessionCreatedTimestamp:vr}},Gr=>this.onCustomDataChannel(rr,Gr));yield zr.handleSignal(ho),this.connections.push(zr)}else pt.a.debug("Received signal: for an existing connection."),yield fr.handleSignal(ho);else{pt.a.debug("Received signal: new connection.");const zr=new Uo(yield this.createRTCPeerConnection(xn),xn,{baseConfig:{isOffer:!1,isLan:!1,receive:(Gr,Pr)=>this.config.receive(Gr,Pr),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(Gr,Pr)=>{var oo,ao;return(ao=(oo=this.config).onStreamsInfoUpdate)===null||ao===void 0?void 0:ao.call(oo,Gr,Pr)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:mn.getPeerId(),localUserId:(nr=mn.getUserId())===null||nr===void 0?void 0:nr.getValue(),remotePeerId:rr},remoteConfig:{sessionId:Nn,sessionCreatedTimestamp:vr}},Gr=>this.onCustomDataChannel(rr,Gr));yield zr.handleSignal(ho),this.connections.push(zr)}})),cr.on("end",()=>{cr.cancel(),this.receiveSignalStream=void 0}),cr.on("error",gr=>{switch(gr.code){case Ot.StatusCode.CANCELLED:case Ot.StatusCode.UNAVAILABLE:case Ot.StatusCode.UNKNOWN:pt.a.debug("Receive signal stream error",{error:gr});break;case Ot.StatusCode.UNAUTHENTICATED:pt.a.warn("Receive signal stream error",{error:gr});break;default:pt.a.error("Receive signal stream error",{error:gr})}cr.cancel(),this.receiveSignalStream=void 0}),this.receiveSignalStream=cr})}createRTCPeerConnection(cn){var mn;return Fo(this,void 0,void 0,function*(){const xn=(mn=this.config.alternateRTCPeerConnection)!==null&&mn!==void 0?mn:window.RTCPeerConnection;if(!xn)throw function(){if(typeof navigator>"u")throw new Error("not a browser");const{userAgent:Gn}=navigator;return Gn.includes("Firefox/")?"Firefox":Gn.includes("Edg/")?"Edge":Gn.includes("Chrome/")?"Chrome":Gn.includes("Safari/")?"Safari":Gn.includes("MSIE/")||Gn.includes("Trident/")?"IE":"Other"}()!=="Chrome"?new Error("WebRTC is not enabled. Please try again with the latest version of Google Chrome."):new Error("WebRTC is not enabled. Please ensure WebRTC is not disabled by ad blocking software.");this.rtcInstancesConstructed++,this.rtcInstancesConstructed%20||Yr();try{return new xn({iceServers:cn})}catch(Gn){throw pt.a.debug(`Failed to create RTCPeerConnection: ${this.rtcInstancesConstructed} total allocated`),Gn}})}closeConnections(cn){return Fo(this,void 0,void 0,function*(){const mn=yield en(cn.map(xn=>Fo(this,void 0,void 0,function*(){yield xn.close()})));for(const xn of mn)pt.a.warn("Request to close session failed",{error:xn})})}getActiveConnection(cn){return this.getConnections().find(mn=>mn.getRemotePeerId()===cn&&mn.isActive())}update(){var cn;return Fo(this,void 0,void 0,function*(){if(this.localConnections=this.localConnections.filter(Kr=>Kr.isActive()),this.config.lanOnlyMode)return;const{signalingClient:mn}=this.config;if(!this.localPeer||!this.receiveSignalStream||!this.iceServers){const Kr=[];return this.localPeer||Kr.push(this.createPeer()),this.iceServers||Kr.push(this.updateIceServers()),yield Promise.all(Kr),void(this.receiveSignalStream||(yield this.createReceiveSignalStream()))}const[xn,Gn]=(er=this.connections,cr=Kr=>Kr.isActive(),er.reduce((Kr,ho,Nn,rr)=>{const[Rr,vr]=Kr;return(cr(ho,Nn,rr)?Rr:vr).push(ho),Kr},[[],[]]));var er,cr;yield this.closeConnections(Gn),this.connections=xn,this.gatherConnectionStats().catch(Kr=>{pt.a.warn("Error calling gatherConnectionStats",{error:Kr})}),this.statsLoopsExecuted++;const{localPeer:gr}=this,br=this.connections.filter(Kr=>Kr.getSessionId).map(Kr=>Zt(Kr.getSessionId()));gr.setSessionIdsList(br);const ur=new $t.RefreshPeerRequest;ur.setPeer(gr);try{yield qt.withDeadline(mn.refreshPeer(ur,yield this.getMetadata()),this.grpcCallDeadline)}catch(Kr){Kr instanceof Ot.RpcError&&Kr.code===Ot.StatusCode.NOT_FOUND?(pt.a.warn("Peer expired, creating new peer",{peerId:gr.getPeerId()}),yield this.reset()):pt.a.warn("Error calling RefreshPeer",{error:Kr})}const nr=yield this.getPeers();for(const Kr of this.connections)Kr.setRemoteDeviceId((cn=nr.find(ho=>ho.id===Kr.getRemotePeerId()))===null||cn===void 0?void 0:cn.deviceId)})}gatherConnectionStats(){return Fo(this,void 0,void 0,function*(){if(this.statsLoopsExecuted%10!=0||this.connections.length!==1)return;const cn=yield this.connections[0].getConnectionStatsInfo(),mn=cn?_r(cn):void 0;mn?Tt.setTag("rtc-connection-type",mn):Tt.setTag("rtc-connection-type","unknown")})}reset(){return Fo(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.isOutgoingConnection.clear(),yield this.createPeer(),yield this.createReceiveSignalStream()})}updateIceServers(){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)return;const{iceServersLastUpdate:cn,iceServersTtl:mn}=this,xn=new Date().getTime();if(!cn||xn-cn>mn)try{const Gn=(yield qt.withDeadline(this.config.signalingClient.getIceServers(new $t.GetIceServersRequest,yield this.getMetadata()),this.grpcCallDeadline)).getIceServers();this.iceServers=JSON.parse(Gn),this.iceServersLastUpdate=xn}catch(Gn){pt.a.warn("Error in updateIceServers",{error:Gn})}})}setupHandlers(cn){const{peerConnection:mn}=cn,xn=cn.getSessionCreatedTimestamp();mn.onconnectionstatechange=()=>Fo(this,void 0,void 0,function*(){const Gn=mn.connectionState;if(!xn)return;const er=cn.getRemoteDeviceId();switch(Gn){case"connected":Tt.aggregate("rtc-connect-time",new Date().getTime()-xn,Object.assign({},er?{deviceId:er}:{}));break;case"failed":Tt.increment("rtc-connect-failed",Object.assign({},er?{deviceId:er}:{}))}})}getMetadata(cn={}){return Fo(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getMetadata method cannot be called in local-only mode");const{getToken:mn}=this.config,{grpcCallDeadline:xn}=this,{hasDeadline:Gn=!0}=cn,er=Gn?{deadline:(Date.now()+xn).toString(10)}:null;try{const cr=yield mn();return Object.assign({authorization:cr},er)}catch(cr){throw pt.a.error("getToken() failed",{error:cr}),new Error("Cannot get authorization token")}})}}var pn=et(12),Qn=et(11),Jn=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class jn{constructor(cn,mn){this.sentMessagesCounts=new Map,this.receivedMessagesCounts=new Map,this.sessionId=cn,this.connection=mn}incrementMessageSent(cn){const mn=Pn(cn.header.stream);this.sentMessagesCounts.set(mn,(this.sentMessagesCounts.get(mn)||0)+1)}incrementMessageReceived(cn){const mn=Pn(cn.header.stream);this.receivedMessagesCounts.set(mn,(this.receivedMessagesCounts.get(mn)||0)+1)}uploadMetrics(){return Jn(this,void 0,void 0,function*(){const{sessionId:cn}=this,mn=yield this.connection.peerConnection.getStats(),xn={};mn.forEach(er=>xn[er.id]=er),pt.a.debug("rtc-stats",Object.assign(Object.assign({},xn),{sessionId:cn}));const Gn=[...new Set(Array.from(this.sentMessagesCounts.keys()).concat(Array.from(this.receivedMessagesCounts.keys())))].reduce((er,cr)=>{const gr=this.sentMessagesCounts.get(cr),br=this.receivedMessagesCounts.get(cr);return Object.assign(Object.assign({},er),{[cr+"-sent"]:gr,[cr+"-received"]:br})},{sessionId:cn});pt.a.debug("rtc-message-report",Gn)})}}function Fr(hr,cn){return Pn(hr)===Pn(cn)}var Er=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class wr{constructor(cn,mn){this.peerConnection=cn,this.config=mn,this.connectTimeoutMs=10*st.a.second,this.gatherIceTimeoutMs=5*st.a.second,this.pingUpdateTimeoutMs=2*st.a.second,this.streamLatestTimestamp=new Map,this.closeCalled=!1,this.connectCalled=!1,this.sentOffer=!1,this.receivedIceCandidate=!1;const{isOffer:xn}=mn;xn?this.initializeChannels(cn):cn.ondatachannel=Gn=>{switch(Gn.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=Gn.channel;break;case"stream.reliable":this.reliableStreamChannel=Gn.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=Gn.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=Gn.channel}this.setupChannel(Gn.channel)},this.sessionMetrics=new jn(this.getSessionId(),this)}connect(){return Er(this,void 0,void 0,function*(){if(this.connectCalled)return;this.connectCalled=!0,this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:Gn}=this;Gn&&this.sendSystemMessage(Gn,{type:"ping"})},this.pingUpdateTimeoutMs),this.connectTimeout=setTimeout(()=>Er(this,void 0,void 0,function*(){this.isReady()||(pt.a.warn("RTC connect timed out, closing connection"),yield this.close())}),this.connectTimeoutMs);const{peerConnection:cn,config:{isOffer:mn,sessionId:xn}}=this;if(mn){const Gn=yield cn.createOffer();yield cn.setLocalDescription(Gn)}mn&&(this.gatherIceTimeout=setTimeout(()=>Er(this,void 0,void 0,function*(){this.sentOffer||(pt.a.warn("ICE gathering timed out"),this.receivedIceCandidate?(pt.a.warn("Attempting to connect with partial ICE candidate pool"),yield this.sendOffer()):yield this.close())}),this.gatherIceTimeoutMs),cn.onicecandidate=Gn=>Er(this,void 0,void 0,function*(){Gn.candidate?this.receivedIceCandidate=!0:yield this.sendOffer()}),cn.onicegatheringstatechange=()=>Er(this,void 0,void 0,function*(){cn.iceGatheringState==="complete"&&(yield this.sendOffer())}),cn.onnegotiationneeded=()=>{pt.a.debug("Negotiation needed",{sessionId:xn})})})}handleSignal(cn){return Er(this,void 0,void 0,function*(){const{peerConnection:mn,config:{sessionId:xn,sendSignal:Gn}}=this,{description:er}=JSON.parse(cn.payload);if(pt.a.debug("Handling signal",{sessionId:xn,description:JSON.stringify(er)}),er)if(mn.signalingState!=="stable"||mn.connectionState!=="connected")if(mn.remoteDescription)pt.a.warn("Received SDP signal during negotiation when remote description is already set: "+JSON.stringify(cn));else if(er.type==="offer"){yield mn.setRemoteDescription(er);const cr=yield mn.createAnswer();yield mn.setLocalDescription(cr),yield Gn({payload:JSON.stringify({description:cr})})}else er.type==="answer"&&(yield mn.setRemoteDescription(er));else pt.a.warn("Received SDP signal when signaling is stable and connected: "+JSON.stringify(cn));else pt.a.warn("Received non-SDP signal: "+JSON.stringify(cn))})}send(cn,mn){const xn=this.getChannelFromLabel(mn.channelLabel);xn?this.sendOnChannel(xn,cn):pt.a.warn("Send called with unexpected channel label",{channelLabel:mn.channelLabel})}controlRemoteStream(cn){this.sendSystemMessage(Zt(this.reliableStreamChannel),{type:"stream-control",streamControl:cn})}isActive(){return new Set(["new","connecting","connected"]).has(this.peerConnection.connectionState)}isReady(){const{peerConnection:cn,latestTtlStreamChannel:mn,reliableStreamChannel:xn,latestTryOnceStreamChannel:Gn}=this;return!!(xn&&mn&&Gn)&&cn.connectionState==="connected"&&xn.readyState==="open"&&mn.readyState==="open"&&Gn.readyState==="open"}isClosed(){const{peerConnection:cn,reliableStreamChannel:mn,latestTryOnceStreamChannel:xn,latestTtlStreamChannel:Gn}=this;return!(cn.connectionState!=="closed"||mn!==void 0&&mn.readyState!=="closed"||xn!==void 0&&xn.readyState!=="closed"||Gn!==void 0&&Gn.readyState!=="closed")}needsClosing(){const{peerConnection:cn,latestTtlStreamChannel:mn,reliableStreamChannel:xn,latestTryOnceStreamChannel:Gn}=this;if(this.isClosed())return!1;const er=new Set(["closing","closed"]),cr=gr=>gr&&er.has(gr.readyState);return Ir(cn)||cr(mn)||cr(xn)||cr(Gn)}close(){return Er(this,void 0,void 0,function*(){this.closeCalled||(this.closeCalled=!0,yield this.sessionMetrics.uploadMetrics(),this.pingUpdateTimeout&&clearInterval(this.pingUpdateTimeout),this.connectTimeout&&clearTimeout(this.connectTimeout),this.gatherIceTimeout&&clearTimeout(this.gatherIceTimeout),this.peerConnection.close())})}getPing(){return this.pingTimeMs}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionId(){return this.config.sessionId}getRemotePeer(){return this.config.remotePeer}initializeChannels(cn){this.latestTtlStreamChannel=cn.createDataChannel("stream.latest-ttl",Xt),this.reliableStreamChannel=cn.createDataChannel("stream.reliable",dn),this.latestReliableStreamChannel=cn.createDataChannel("stream.latest-reliable",_n),this.latestTryOnceStreamChannel=cn.createDataChannel("stream.latest-try-once",Fn),this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}sendOffer(){return Er(this,void 0,void 0,function*(){if(this.sentOffer||(this.sentOffer=!0,Ir(this.peerConnection)))return;const{peerConnection:cn,config:{sendSignal:mn}}=this,xn=yield cn.createOffer();yield cn.setLocalDescription(xn);const Gn={payload:JSON.stringify({description:xn})};yield mn(Gn)})}getChannelFromLabel(cn){switch(cn){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(cn,mn){let xn;try{xn=Object(on.encode)(JSON.stringify(mn))}catch(Gn){return void pt.a.warn("Failed to encode RTC message",{error:Gn})}try{cn.send(xn),this.sessionMetrics.incrementMessageSent(mn)}catch(Gn){pt.a.warn("Failed to send message to channel",{error:Gn,channel:cn.label})}}channelNotRecognized(cn){return cn!==this.latestTtlStreamChannel&&cn!==this.latestReliableStreamChannel&&cn!==this.latestTryOnceStreamChannel&&cn!==this.reliableStreamChannel}setupChannel(cn){cn.onmessage=mn=>{if(this.channelNotRecognized(cn))return void pt.a.warn("Received message on unrecognized data channel.");let xn;try{xn=JSON.parse(Object(on.decode)(mn.data))}catch(Gn){return void pt.a.warn("Received unparseable RTC message",{error:Gn,channel:cn.label})}if(this.lastMessageTimestamp=new Date().getTime(),xn=Jr(xn),this.sessionMetrics.incrementMessageReceived(xn),!this.handleSystemMessage(cn,xn)){if(!this.hasCapabilities(xn))return void pt.a.warn("Received RTC message that was not within the capability scope of the connection.");(cn===this.latestTryOnceStreamChannel||cn===this.latestTtlStreamChannel||cn===this.latestReliableStreamChannel)&&!this.isLatestMessage(xn)||this.config.receive(this.config.remotePeer.id,xn)}},cn.onerror=mn=>{pt.a.warn("Channel error: "+mn.error,{error:mn.error,sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onopen=()=>{pt.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:cn.label})},cn.onclose=()=>{const mn={bufferedAmount:cn.bufferedAmount,sessionId:this.getSessionId(),channelLabel:cn.label};this.closeCalled===!1?pt.a.debug("Unexpected channel closed",mn):pt.a.debug("Channel closed",mn)}}handleSystemMessage(cn,mn){switch(mn.header.stream.streamType){case"ping":return this.sendSystemMessage(cn,{type:"pong",timestamp:Zt(mn.payload.ping)}),!0;case"pong":{const xn=new Date().getTime()-Zt(mn.payload.pong);return this.pingTimeMs=xn,Tt.aggregate("rtc-ping-time",xn),!0}case"stream-control":return!0;default:return!1}}sendSystemMessage(cn,mn){if(cn.readyState!=="open")return;const xn={entityId:Zt(this.config.localPeer.deviceId||this.config.localPeer.userId),streamName:"$."+mn.type,streamType:mn.type};let Gn;switch(mn.type){case"ping":Gn={ping:new Date().getTime()};break;case"pong":Gn={pong:mn.timestamp};break;case"stream-control":Gn={streamControl:mn.streamControl}}this.sendOnChannel(cn,Qr(xn,Gn))}hasCapabilities(cn){var mn,xn;const{localPeer:Gn,remotePeer:er}=this.config,cr=(mn=Gn.capabilitySet.streaming)===null||mn===void 0?void 0:mn.streams,gr=cr&&cr.some(nr=>nr.receive&&Fr(nr.stream,cn.header.stream)),br=(xn=er.capabilitySet.streaming)===null||xn===void 0?void 0:xn.streams,ur=br&&br.some(nr=>nr.send&&Fr(nr.stream,cn.header.stream));return gr||ur}isLatestMessage(cn){const mn=Pn(cn.header.stream),xn=(this.streamLatestTimestamp.get(mn)||0)<=cn.header.created;return xn&&this.streamLatestTimestamp.set(mn,cn.header.created),xn}}var tr=function(hr,cn,mn,xn){return new(mn||(mn=Promise))(function(Gn,er){function cr(ur){try{br(xn.next(ur))}catch(nr){er(nr)}}function gr(ur){try{br(xn.throw(ur))}catch(nr){er(nr)}}function br(ur){var nr;ur.done?Gn(ur.value):(nr=ur.value,nr instanceof mn?nr:new mn(function(Kr){Kr(nr)})).then(cr,gr)}br((xn=xn.apply(hr,cn||[])).next())})};class ar{constructor(cn){this.config=cn,this.connections=[],this.connectingSessions=new Map,this.rtcInstancesConstructed=0,this.updateInterval=vt({func:()=>tr(this,void 0,void 0,function*(){try{yield this.update()}catch(mn){pt.a.warn("RTC update failed",{error:mn})}}),delay:250*st.a.millisecond,immediate:!0}),this.localPeer=this.createPeer()}send(cn,mn,xn){const Gn=this.getActiveConnection(cn);Gn?Gn.isReady()?Gn.send(mn,xn):pt.a.warn("Attempted to send with an active connection to that peer which was not yet ready."):pt.a.warn("Attempted to send with no active connection to that peer.")}controlRemoteStream(cn,mn){const xn=this.getActiveConnection(cn);xn?xn.isReady()?xn.controlRemoteStream(mn):pt.a.warn("Attempted to control remote stream with an active connection to that peer which was not yet ready."):pt.a.warn("Attempted to control remote stream with no active connection to that peer.")}connect(cn){return tr(this,void 0,void 0,function*(){const mn=yield this.getLocalPeer();if(this.getActiveConnection(cn))return void pt.a.warn("Attempted to connect to peer with an already active connection.");let xn;try{xn=yield this.config.signalingClient.createSession(yield this.config.getToken(),{offerPeerId:mn.id,answerPeerId:cn})}catch(Gn){Object(pn.a)(Gn,Qn.a,er=>er.statusCode===404),pt.a.warn("Attempted to connect to peer that does not exist.")}if(xn)for(this.connectingSessions.set(xn.id,new Date().getTime()),yield this.connectToSession(xn);;)switch(yield Object(at.a)(.1),this.getConnectionStatus(cn)){case"connecting":continue;case"connected":return xn.id;case"disconnected":return}})}getConnectionStatus(cn){const mn=this.getActiveConnection(cn);return mn?mn.isReady()?"connected":"connecting":"disconnected"}getIceMode(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.iceMode}disconnect(cn){return tr(this,void 0,void 0,function*(){const mn=this.getActiveConnection(cn);mn&&(yield this.closeConnection(mn))})}getLocalPeer(){return tr(this,void 0,void 0,function*(){return yield this.localPeer})}getPeers(){return tr(this,void 0,void 0,function*(){return yield this.config.signalingClient.getPeers(yield this.config.getToken())})}getPing(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getPing();pt.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(cn){const mn=this.getActiveConnection(cn);if(mn)return mn.getLastMessageTimestamp();pt.a.warn("Attempted to get ping time from inactive peer.")}shutdown(){return tr(this,void 0,void 0,function*(){yield this.updateInterval.stop();const cn=this.connections;this.connections=[],yield this.closeConnections(cn)})}closeConnection(cn){return tr(this,void 0,void 0,function*(){this.connectingSessions.delete(cn.getSessionId()),yield cn.close();try{yield this.config.signalingClient.deleteSession(yield this.config.getToken(),cn.getSessionId())}catch(mn){Object(pn.a)(mn,Qn.a,xn=>xn.statusCode===404)}})}getSessions(){return tr(this,void 0,void 0,function*(){const cn=yield this.getLocalPeer();return(yield this.config.signalingClient.getSessions(yield this.config.getToken())).filter(mn=>mn.offer.peer.id===cn.id||mn.answer.peer.id===cn.id)})}createPeer(){return tr(this,void 0,void 0,function*(){return yield this.config.signalingClient.createPeer(yield this.config.getToken(),{capabilitySet:this.config.capabilitySet||{}})})}createRTCPeerConnection(cn={}){return tr(this,void 0,void 0,function*(){const mn=this.config.alternateRTCPeerConnection||RTCPeerConnection;this.rtcInstancesConstructed++,this.rtcInstancesConstructed%20||Yr();try{return new mn(Object.assign({iceServers:yield this.config.signalingClient.getIceServers(yield this.config.getToken())},cn))}catch(xn){throw pt.a.debug(`Failed to create RTCPeerConnection: ${this.rtcInstancesConstructed} total allocated`),xn}})}closeConnections(cn){return tr(this,void 0,void 0,function*(){const mn=yield en(cn.map(xn=>tr(this,void 0,void 0,function*(){yield this.closeConnection(xn)})));for(const xn of mn)pt.a.warn("Request to close session failed",{error:xn})})}reset(){return tr(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.connectingSessions=new Map,this.localPeer=this.createPeer(),yield this.localPeer})}getActiveConnection(cn){return this.connections.find(mn=>mn.getRemotePeer().id===cn&&mn.isActive())}update(){return tr(this,void 0,void 0,function*(){const cn=yield this.getLocalPeer();try{yield this.config.signalingClient.refreshPeer(yield this.config.getToken(),cn.id)}catch(mn){Object(pn.a)(mn,Qn.a,xn=>xn.statusCode===404),pt.a.warn("Peer expired, creating new peer",{peerId:cn.id}),yield this.reset()}yield this.handleSessions(yield this.getSessions())})}handleSessions(cn){return tr(this,void 0,void 0,function*(){yield this.syncConnectionsAndSessions(cn);const mn=cn.map(xn=>({session:xn,connection:this.connections.find(Gn=>Gn.getSessionId()===xn.id)}));yield Promise.all(mn.map(({session:xn,connection:Gn})=>tr(this,void 0,void 0,function*(){return yield this.maintainConnection(xn,Gn)})))})}syncConnectionsAndSessions(cn){return tr(this,void 0,void 0,function*(){const mn=new Set(cn.map(er=>er.id)),xn=er=>mn.has(er.getSessionId())||this.connectingSessions.has(er.getSessionId());this.connections=this.connections.filter(er=>xn(er));const Gn=this.connections.filter(er=>!xn(er)||er.needsClosing());yield Promise.all(Gn.map(er=>tr(this,void 0,void 0,function*(){yield this.closeConnection(er)})))})}maintainConnection(cn,mn){return tr(this,void 0,void 0,function*(){const xn=yield this.getLocalPeer(),Gn=cn.offer.peer.id===xn.id;if(mn){if(mn.isReady())try{yield this.config.signalingClient.refreshSession(yield this.config.getToken(),cn.id)}catch(er){Object(pn.a)(er,Qn.a,cr=>cr.statusCode===404),pt.a.debug("Refresh session not found",{sessionId:cn.id})}else if(mn.isActive())try{yield this.consumeSignals(mn)}catch(er){pt.a.warn("Failed to ingest signals, closing connection",{error:er}),yield this.closeConnection(mn)}}else{if(Gn)return;yield this.connectToSession(cn)}})}connectToSession(cn){return tr(this,void 0,void 0,function*(){const mn=yield this.getLocalPeer(),xn=cn.offer.peer.id===mn.id,Gn=yield this.createRTCPeerConnection(),er=new wr(Gn,{localPeer:xn?cn.offer.peer:cn.answer.peer,remotePeer:xn?cn.answer.peer:cn.offer.peer,sessionId:cn.id,isOffer:xn,sendSignal:cr=>this.sendSignal(cn.id,cr),receive:(cr,gr)=>this.config.receive(cr,gr)});if(this.connections.find(cr=>cr.getSessionId()===cn.id))return pt.a.warn("connectToSession called on a session that already has a connection.",{sessionId:cn.id}),void(yield er.close());this.setupHandlers(er),this.connections.push(er);try{yield er.connect()}catch(cr){pt.a.warn("Failed to handle negotiation, closing connection",{error:cr}),yield this.closeConnection(er)}})}setupHandlers(cn){const{peerConnection:mn}=cn,xn=cn.getSessionId();mn.onconnectionstatechange=()=>tr(this,void 0,void 0,function*(){const Gn=this.connectingSessions.get(xn);if(Gn===void 0)return;const er=mn.connectionState;switch(Ir(mn)&&this.connectingSessions.delete(xn),er){case"connected":{this.connectingSessions.delete(xn);const cr=new Date().getTime()-Gn;Tt.aggregate("rtc-connect-time",cr);break}case"failed":Tt.increment("rtc-connect-failed"),yield this.closeConnection(cn)}})}consumeSignals(cn){return tr(this,void 0,void 0,function*(){let mn=[];try{mn=yield this.config.signalingClient.takeSignals(yield this.config.getToken(),cn.getSessionId())}catch(xn){Object(pn.a)(xn,Qn.a,Gn=>Gn.statusCode===404)}for(const xn of mn)yield cn.handleSignal(xn)})}sendSignal(cn,mn){return tr(this,void 0,void 0,function*(){try{yield this.config.signalingClient.addSignals(yield this.config.getToken(),cn,{signals:[mn]})}catch(xn){Object(pn.a)(xn,Qn.a,Gn=>Gn.statusCode===404)}})}}},,function(s,o,et){et.r(o),et.d(o,"LogClient",function(){return ot});var tt=et(26),nt=et(12),rt=et(11),it=function(st,at,lt,ut){return new(lt||(lt=Promise))(function(dt,ht){function ct(gt){try{ft(ut.next(gt))}catch(yt){ht(yt)}}function pt(gt){try{ft(ut.throw(gt))}catch(yt){ht(yt)}}function ft(gt){var yt;gt.done?dt(gt.value):(yt=gt.value,yt instanceof lt?yt:new lt(function(Ut){Ut(yt)})).then(ct,pt)}ft((ut=ut.apply(st,at||[])).next())})};class ot extends tt.a{log(at){return it(this,void 0,void 0,function*(){const lt=ot.token;try{yield this.fetch("logs",{token:lt,method:"POST",body:{logs:at},allowUnsafeRetries:!0})}catch(ut){Object(nt.a)(ut,rt.a,dt=>dt.statusCode===401&<!==void 0),ot.token===lt&&delete ot.token,yield this.log(at)}})}}},function(s,o,et){var tt={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let nt;const rt=new Uint8Array(16);function it(){if(!nt&&(nt=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!nt))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return nt(rt)}const ot=[];for(let at=0;at<256;++at)ot.push((at+256).toString(16).slice(1));function st(at,lt=0){return(ot[at[lt+0]]+ot[at[lt+1]]+ot[at[lt+2]]+ot[at[lt+3]]+"-"+ot[at[lt+4]]+ot[at[lt+5]]+"-"+ot[at[lt+6]]+ot[at[lt+7]]+"-"+ot[at[lt+8]]+ot[at[lt+9]]+"-"+ot[at[lt+10]]+ot[at[lt+11]]+ot[at[lt+12]]+ot[at[lt+13]]+ot[at[lt+14]]+ot[at[lt+15]]).toLowerCase()}o.a=function(at,lt,ut){if(tt.randomUUID&&!lt&&!at)return tt.randomUUID();const dt=(at=at||{}).random||(at.rng||it)();if(dt[6]=15&dt[6]|64,dt[8]=63&dt[8]|128,lt){ut=ut||0;for(let ht=0;ht<16;++ht)lt[ut+ht]=dt[ht];return lt}return st(dt)}}])})})(dist);var distExports=dist.exports;const SessionTypes={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3,HEADLESS:4},singleton=Symbol("RtcClientPool.instance");var Sn;class RtcClientPool{constructor(o){he(this,Sn,null),he(this,"createClient"),he(this,"ttlMs"),he(this,"proxyHandler"),he(this,"proxyReceivers",new Map),he(this,"teardownTimeout",null),he(this,"dispatch",(nt,rt)=>{this.proxyReceivers.forEach(it=>it?.(nt,rt))});const{createClient:et,ttlMs:tt=0}=o;this.createClient=et,this.ttlMs=Math.max(tt,0),this.proxyHandler={get:(nt,rt,it)=>{switch(rt){case"shutdown":return()=>this.releaseInstance(it);default:return Reflect.get(nt,rt,it)}}}}get isActive(){return this[singleton]!==null}get size(){return this.proxyReceivers.size}get(o){const et=new Proxy(this.allocate(),this.proxyHandler);return this.proxyReceivers.set(et,o??null),et}allocate(){if(this[singleton])return this.teardownTimeout&&(clearTimeout(this.teardownTimeout),this.teardownTimeout=null),this[singleton];const o=this.createClient(this.dispatch);return this[singleton]=o,o}async teardown(){const o=this[singleton];if(!o){console.warn("singleton has already been shutdown!");return}try{await o.shutdown()}finally{this[singleton]=null}}async releaseInstance(o){return this.proxyReceivers.delete(o)?this.proxyReceivers.size!==0?!1:(!this.teardownTimeout&&Number.isFinite(this.ttlMs)&&(this.ttlMs===0?await this.teardown():this.teardownTimeout=setTimeout(()=>{this.teardown().catch(et=>console.error("teardown failed",{err:et})).finally(()=>this.teardownTimeout=null)},this.ttlMs)),!0):(console.warn("this instance has already been released!"),!1)}}Sn=singleton;const getToken=async()=>defined$1(Authentication.token,"Realtime when user isn't authorized"),EnumRtcClientPools={[SessionTypes.UNKNOWN]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.UNKNOWN,receive:s})}),[SessionTypes.TELEOP]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.TELEOP,receive:s})}),[SessionTypes.PORT_FORWARD]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.PORT_FORWARD,receive:s})}),[SessionTypes.OBSERVE]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.OBSERVE,receive:s})}),[SessionTypes.HEADLESS]:new RtcClientPool({ttlMs:2500,createClient:s=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(FORMANT_API_URL),getToken,sessionType:SessionTypes.HEADLESS,receive:s})})},AppRtcClientPools={...EnumRtcClientPools,unknown:EnumRtcClientPools[SessionTypes.UNKNOWN],teleop:EnumRtcClientPools[SessionTypes.TELEOP],portForward:EnumRtcClientPools[SessionTypes.PORT_FORWARD],observe:EnumRtcClientPools[SessionTypes.OBSERVE],headless:EnumRtcClientPools[SessionTypes.HEADLESS]},defaultRtcClientPool=EnumRtcClientPools[SessionTypes.TELEOP],getRtcClientPool=s=>{const{sessionType:o}=s;return o?AppRtcClientPools[o]:defaultRtcClientPool};class CaptureStream{constructor(o){he(this,"token"),this.captureSession=o}async ingestJSON(o){if(!this.token){const et=await(await fetch(`${FORMANT_API_URL}/v1/admin/capture-sessions/${this.captureSession.code}/authenticate`,{method:"POST"})).json();this.token=et.token}await fetch(`${FORMANT_API_URL}/v1/ingest`,{method:"POST",body:JSON.stringify({deviceId:this.captureSession.deviceId,name:this.captureSession.streamName,type:"json",points:[[Date.now(),JSON.stringify(o)]]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+this.token}})}}function delay$1(s){return new Promise(o=>setTimeout(o,s))}const isRtcPeer=s=>s!==void 0&&s.capabilities!==void 0&&s.capabilitySet!==void 0;class DataChannel{constructor(o){he(this,"ready",!1),he(this,"listeners",[]),he(this,"openListeners",[]),he(this,"closeListeners",[]),he(this,"errorListeners",[]),he(this,"binaryListeners",[]),he(this,"error"),he(this,"decoder",new TextDecoder),this.dataChannel=o,this.dataChannel.binaryType="arraybuffer",this.dataChannel.onopen=()=>{this.setReady()},this.dataChannel.onclose=()=>{this.ready=!1,this.closeListeners.forEach(et=>et())},this.dataChannel.onerror=et=>{console.error(et),this.error="An error occurred in DataChannel",this.errorListeners.forEach(tt=>tt(et))},this.dataChannel.onmessage=et=>{this.listeners.forEach(tt=>{const nt=new Uint8Array(et.data),rt=this.decoder.decode(nt);tt(rt)}),this.binaryListeners.forEach(tt=>{tt(new Uint8Array(et.data))})}}setReady(){this.ready=!0,this.openListeners.forEach(o=>o())}addOpenListener(o){this.openListeners.push(o)}removeOpenListener(o){this.openListeners=this.openListeners.filter(et=>et!==o)}addCloseListener(o){this.closeListeners.push(o)}removeCloseListener(o){this.closeListeners=this.closeListeners.filter(et=>et!==o)}addErrorListener(o){this.errorListeners.push(o)}removeErrorListener(o){this.errorListeners=this.errorListeners.filter(et=>et!==o)}async waitTilReady(){return this.ready?!0:new Promise((o,et)=>{let tt=setInterval(()=>{this.dataChannel.readyState==="open"&&this.setReady(),this.ready&&(clearInterval(tt),o(!0)),this.error&&et(this.error)},10)})}send(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}sendBinary(o){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(o)}addListener(o){this.listeners.push(o)}removeListener(o){const et=this.listeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.listeners.splice(et,1)}addBinaryListener(o){this.binaryListeners.push(o)}removeBinaryListener(o){const et=this.binaryListeners.indexOf(o);if(et===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.binaryListeners.splice(et,1)}}var eventemitter3={exports:{}};(function(s){var o=Object.prototype.hasOwnProperty,et="~";function tt(){}Object.create&&(tt.prototype=Object.create(null),new tt().__proto__||(et=!1));function nt(st,at,lt){this.fn=st,this.context=at,this.once=lt||!1}function rt(st,at,lt,ut,dt){if(typeof lt!="function")throw new TypeError("The listener must be a function");var ht=new nt(lt,ut||st,dt),ct=et?et+at:at;return st._events[ct]?st._events[ct].fn?st._events[ct]=[st._events[ct],ht]:st._events[ct].push(ht):(st._events[ct]=ht,st._eventsCount++),st}function it(st,at){--st._eventsCount===0?st._events=new tt:delete st._events[at]}function ot(){this._events=new tt,this._eventsCount=0}ot.prototype.eventNames=function(){var st=[],at,lt;if(this._eventsCount===0)return st;for(lt in at=this._events)o.call(at,lt)&&st.push(et?lt.slice(1):lt);return Object.getOwnPropertySymbols?st.concat(Object.getOwnPropertySymbols(at)):st},ot.prototype.listeners=function(st){var at=et?et+st:st,lt=this._events[at];if(!lt)return[];if(lt.fn)return[lt.fn];for(var ut=0,dt=lt.length,ht=new Array(dt);ut{nt.payload.jointState&&this.currentListeners.forEach(rt=>{nt.payload.jointState&&rt(nt.payload.jointState)})}),this.device=o,this.config=et}async synchronize(){this.device.addRealtimeListener(this.onRealtimeMessage),this.device.startListeningToRealtimeDataStream(this.config.currentJointStateStream)}async desynchronize(){this.device.removeRealtimeListener(this.onRealtimeMessage),this.device.stopListeningToRealtimeDataStream(this.config.currentJointStateStream)}async addCurrentJointStateListener(o){this.currentListeners.push(o)}}class RequestDataChannel{constructor(o,et,tt){he(this,"channel"),he(this,"requestIdToResponseMap",new Map),this.device=o,this.channel_name=et,this.timeout=tt}addOpenListener(o){defined$1(this.channel,"channel not initalized").addOpenListener(o)}removeOpenListener(o){defined$1(this.channel,"channel not initalized").removeOpenListener(o)}addCloseListener(o){defined$1(this.channel,"channel not initalized").addCloseListener(o)}removeCloseListener(o){defined$1(this.channel,"channel not initalized").removeCloseListener(o)}addErrorListener(o){defined$1(this.channel,"channel not initalized").addErrorListener(o)}removeErrorListener(o){defined$1(this.channel,"channel not initalized").removeErrorListener(o)}}class BinaryRequestDataChannel extends RequestDataChannel{constructor(){super(...arguments),he(this,"RESPONSE_SUCCESS_BYTE",0),he(this,"decoder",new TextDecoder)}generateBinaryId(){const o=new Uint8Array(16);for(let et=0;et{const et=o.slice(0,16).toString();if(et.length===0)throw new Error("Invalid response");const tt=o.slice(16);if(tt.length===0)throw new Error("Invalid response");this.requestIdToResponseMap.has(et)&&this.requestIdToResponseMap.set(et,tt)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateBinaryId(),it=rt.toString();tt.set(it,!0),et.sendBinary(new Uint8Array([...rt,...o]));const ot=new Date().getTime();for(;new Date().getTime(){const et=JSON.parse(o),{id:tt,data:nt,error:rt}=et;if(!tt)throw new Error("Invalid response");if(!nt&&!rt)throw new Error("Invalid response");this.requestIdToResponseMap.has(tt)&&this.requestIdToResponseMap.set(tt,et)})}async request(o){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:et,requestIdToResponseMap:tt,timeout:nt}=this;await et.waitTilReady();const rt=this.generateTextId();tt.set(rt,!0),et.send(JSON.stringify({id:rt,data:o}));const it=new Date().getTime();for(;new Date().getTime(){this.realtimeListeners.forEach(tt=>tt(o,et))})}stopConnectionMonitoring(){clearInterval(this.connectionMonitorInterval),this.connectionMonitorInterval=void 0}assertNotCancelled(o){if(o)throw new Error("Cancelled by deadline")}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}addRealtimeListener(o){this.realtimeListeners.push(o)}removeRealtimeListener(o){const et=this.realtimeListeners.indexOf(o);if(et===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(et,1)}async getRealtimeManipulators(){var o;const et=await this.getConfiguration(),tt=[];for(const nt of(o=et.teleop.rosStreams)!=null?o:[])nt.topicType=="sensor_msgs/JointState"&&tt.push(new Manipulator(this,{currentJointStateStream:{name:nt.topicName},plannedJointStateStream:nt.plannedTopic?{name:nt.plannedTopic}:void 0,planValidStream:nt.planValidTopic?{name:nt.planValidTopic}:void 0,endEffectorStream:nt.endEffectorTopic?{name:nt.endEffectorTopic}:void 0,endEffectorLinkName:nt.endEffectorLinkName,baseReferenceFrame:nt.baseReferenceFrame,localFrame:nt.localFrame}));return tt}async getRealtimeVideoStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="formant/H264VideoFrame"&&st.push({name:at.topicName}),(at.topicType==="sensor_msgs/Image"||at.topicType==="sensor_msgs/CompressedImage")&&at.encodeVideo&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="h264-video-frame"&&st.push({name:at.name});return st}createCustomRequestDataChannel(o,et=3e3){return new TextRequestDataChannel(this,o,et)}createCustomBinaryRequestDataChannel(o,et=3e3){return new BinaryRequestDataChannel(this,o,et)}async startListeningToRealtimeVideo(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o,enablePriorityUpload:!0,pipeline:"telemetry"})}async disableRealtimeTelemetryPriorityIngestion(o){const et=defined$1(this.rtcClient,"Realtime connection has not been started"),tt=await this.getRemotePeer();et.controlRemoteStream(defined$1(tt).id,{streamName:o,enablePriorityUpload:!1,pipeline:"telemetry"})}async changeStreamAudioType(o,et){const tt=defined$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.controlRemoteStream(defined$1(nt).id,{streamName:o,setAudioFormat:et})}async createCustomDataChannel(o,et){const tt=defined$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer(),rt=await new Promise(it=>{tt.createCustomDataChannel(defined$1(nt).id,o,{ordered:!0,...et},!1,(ot,st)=>{const at=new DataChannel(st);it(at)})});return await rt.waitTilReady(),rt}async sendRealtimeMessage(o,et={channelLabel:"stream.reliable"}){const tt=defined$1(this.rtcClient,"Realtime connection has not been started"),nt=await this.getRemotePeer();tt.send(defined$1(nt).id,o,et)}async getRealtimeAudioStreams(){var o,et,tt,nt,rt,it;const ot=await this.getConfiguration(),st=[];for(const at of(et=(o=ot.teleop)==null?void 0:o.hardwareStreams)!=null?et:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});for(const at of(nt=(tt=ot.teleop)==null?void 0:tt.rosStreams)!=null?nt:[])at.topicType=="audio_common_msgs/AudioData"&&st.push({name:at.topicName});for(const at of(it=(rt=ot.teleop)==null?void 0:rt.customStreams)!=null?it:[])at.rtcStreamType==="audio-chunk"&&st.push({name:at.name});return st}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Z_FIXED$1=4,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN$1=2;function zero$1(s){let o=s.length;for(;--o>=0;)s[o]=0}const STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH$1=3,MAX_MATCH$1=258,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,BL_CODES$1=19,HEAP_SIZE$1=2*L_CODES$1+1,MAX_BITS$1=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),extra_dbits=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),extra_blbits=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),bl_order=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),DIST_CODE_LEN=512,static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);const static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);const _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);const _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);const base_length=new Array(LENGTH_CODES$1);zero$1(base_length);const base_dist=new Array(D_CODES$1);zero$1(base_dist);function StaticTreeDesc(s,o,et,tt,nt){this.static_tree=s,this.extra_bits=o,this.extra_base=et,this.elems=tt,this.max_length=nt,this.has_stree=s&&s.length}let static_l_desc,static_d_desc,static_bl_desc;function TreeDesc(s,o){this.dyn_tree=s,this.max_code=0,this.stat_desc=o}const d_code=s=>s<256?_dist_code[s]:_dist_code[256+(s>>>7)],put_short=(s,o)=>{s.pending_buf[s.pending++]=o&255,s.pending_buf[s.pending++]=o>>>8&255},send_bits=(s,o,et)=>{s.bi_valid>Buf_size-et?(s.bi_buf|=o<>Buf_size-s.bi_valid,s.bi_valid+=et-Buf_size):(s.bi_buf|=o<{send_bits(s,et[o*2],et[o*2+1])},bi_reverse=(s,o)=>{let et=0;do et|=s&1,s>>>=1,et<<=1;while(--o>0);return et>>>1},bi_flush=s=>{s.bi_valid===16?(put_short(s,s.bi_buf),s.bi_buf=0,s.bi_valid=0):s.bi_valid>=8&&(s.pending_buf[s.pending++]=s.bi_buf&255,s.bi_buf>>=8,s.bi_valid-=8)},gen_bitlen=(s,o)=>{const et=o.dyn_tree,tt=o.max_code,nt=o.stat_desc.static_tree,rt=o.stat_desc.has_stree,it=o.stat_desc.extra_bits,ot=o.stat_desc.extra_base,st=o.stat_desc.max_length;let at,lt,ut,dt,ht,ct,pt=0;for(dt=0;dt<=MAX_BITS$1;dt++)s.bl_count[dt]=0;for(et[s.heap[s.heap_max]*2+1]=0,at=s.heap_max+1;atst&&(dt=st,pt++),et[lt*2+1]=dt,!(lt>tt)&&(s.bl_count[dt]++,ht=0,lt>=ot&&(ht=it[lt-ot]),ct=et[lt*2],s.opt_len+=ct*(dt+ht),rt&&(s.static_len+=ct*(nt[lt*2+1]+ht)));if(pt!==0){do{for(dt=st-1;s.bl_count[dt]===0;)dt--;s.bl_count[dt]--,s.bl_count[dt+1]+=2,s.bl_count[st]--,pt-=2}while(pt>0);for(dt=st;dt!==0;dt--)for(lt=s.bl_count[dt];lt!==0;)ut=s.heap[--at],!(ut>tt)&&(et[ut*2+1]!==dt&&(s.opt_len+=(dt-et[ut*2+1])*et[ut*2],et[ut*2+1]=dt),lt--)}},gen_codes=(s,o,et)=>{const tt=new Array(MAX_BITS$1+1);let nt=0,rt,it;for(rt=1;rt<=MAX_BITS$1;rt++)nt=nt+et[rt-1]<<1,tt[rt]=nt;for(it=0;it<=o;it++){let ot=s[it*2+1];ot!==0&&(s[it*2]=bi_reverse(tt[ot]++,ot))}},tr_static_init=()=>{let s,o,et,tt,nt;const rt=new Array(MAX_BITS$1+1);for(et=0,tt=0;tt>=7;tt{let o;for(o=0;o{s.bi_valid>8?put_short(s,s.bi_buf):s.bi_valid>0&&(s.pending_buf[s.pending++]=s.bi_buf),s.bi_buf=0,s.bi_valid=0},smaller=(s,o,et,tt)=>{const nt=o*2,rt=et*2;return s[nt]{const tt=s.heap[et];let nt=et<<1;for(;nt<=s.heap_len&&(nt{let tt,nt,rt=0,it,ot;if(s.sym_next!==0)do tt=s.pending_buf[s.sym_buf+rt++]&255,tt+=(s.pending_buf[s.sym_buf+rt++]&255)<<8,nt=s.pending_buf[s.sym_buf+rt++],tt===0?send_code(s,nt,o):(it=_length_code[nt],send_code(s,it+LITERALS$1+1,o),ot=extra_lbits[it],ot!==0&&(nt-=base_length[it],send_bits(s,nt,ot)),tt--,it=d_code(tt),send_code(s,it,et),ot=extra_dbits[it],ot!==0&&(tt-=base_dist[it],send_bits(s,tt,ot)));while(rt{const et=o.dyn_tree,tt=o.stat_desc.static_tree,nt=o.stat_desc.has_stree,rt=o.stat_desc.elems;let it,ot,st=-1,at;for(s.heap_len=0,s.heap_max=HEAP_SIZE$1,it=0;it>1;it>=1;it--)pqdownheap(s,et,it);at=rt;do it=s.heap[1],s.heap[1]=s.heap[s.heap_len--],pqdownheap(s,et,1),ot=s.heap[1],s.heap[--s.heap_max]=it,s.heap[--s.heap_max]=ot,et[at*2]=et[it*2]+et[ot*2],s.depth[at]=(s.depth[it]>=s.depth[ot]?s.depth[it]:s.depth[ot])+1,et[it*2+1]=et[ot*2+1]=at,s.heap[1]=at++,pqdownheap(s,et,1);while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1],gen_bitlen(s,o),gen_codes(et,st,s.bl_count)},scan_tree=(s,o,et)=>{let tt,nt=-1,rt,it=o[0*2+1],ot=0,st=7,at=4;for(it===0&&(st=138,at=3),o[(et+1)*2+1]=65535,tt=0;tt<=et;tt++)rt=it,it=o[(tt+1)*2+1],!(++ot{let tt,nt=-1,rt,it=o[0*2+1],ot=0,st=7,at=4;for(it===0&&(st=138,at=3),tt=0;tt<=et;tt++)if(rt=it,it=o[(tt+1)*2+1],!(++ot{let o;for(scan_tree(s,s.dyn_ltree,s.l_desc.max_code),scan_tree(s,s.dyn_dtree,s.d_desc.max_code),build_tree(s,s.bl_desc),o=BL_CODES$1-1;o>=3&&s.bl_tree[bl_order[o]*2+1]===0;o--);return s.opt_len+=3*(o+1)+5+5+4,o},send_all_trees=(s,o,et,tt)=>{let nt;for(send_bits(s,o-257,5),send_bits(s,et-1,5),send_bits(s,tt-4,4),nt=0;nt{let o=4093624447,et;for(et=0;et<=31;et++,o>>>=1)if(o&1&&s.dyn_ltree[et*2]!==0)return Z_BINARY;if(s.dyn_ltree[9*2]!==0||s.dyn_ltree[10*2]!==0||s.dyn_ltree[13*2]!==0)return Z_TEXT;for(et=32;et{static_init_done||(tr_static_init(),static_init_done=!0),s.l_desc=new TreeDesc(s.dyn_ltree,static_l_desc),s.d_desc=new TreeDesc(s.dyn_dtree,static_d_desc),s.bl_desc=new TreeDesc(s.bl_tree,static_bl_desc),s.bi_buf=0,s.bi_valid=0,init_block(s)},_tr_stored_block$1=(s,o,et,tt)=>{send_bits(s,(STORED_BLOCK<<1)+(tt?1:0),3),bi_windup(s),put_short(s,et),put_short(s,~et),et&&s.pending_buf.set(s.window.subarray(o,o+et),s.pending),s.pending+=et},_tr_align$1=s=>{send_bits(s,STATIC_TREES<<1,3),send_code(s,END_BLOCK,static_ltree),bi_flush(s)},_tr_flush_block$1=(s,o,et,tt)=>{let nt,rt,it=0;s.level>0?(s.strm.data_type===Z_UNKNOWN$1&&(s.strm.data_type=detect_data_type(s)),build_tree(s,s.l_desc),build_tree(s,s.d_desc),it=build_bl_tree(s),nt=s.opt_len+3+7>>>3,rt=s.static_len+3+7>>>3,rt<=nt&&(nt=rt)):nt=rt=et+5,et+4<=nt&&o!==-1?_tr_stored_block$1(s,o,et,tt):s.strategy===Z_FIXED$1||rt===nt?(send_bits(s,(STATIC_TREES<<1)+(tt?1:0),3),compress_block(s,static_ltree,static_dtree)):(send_bits(s,(DYN_TREES<<1)+(tt?1:0),3),send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,it+1),compress_block(s,s.dyn_ltree,s.dyn_dtree)),init_block(s),tt&&bi_windup(s)},_tr_tally$1=(s,o,et)=>(s.pending_buf[s.sym_buf+s.sym_next++]=o,s.pending_buf[s.sym_buf+s.sym_next++]=o>>8,s.pending_buf[s.sym_buf+s.sym_next++]=et,o===0?s.dyn_ltree[et*2]++:(s.matches++,o--,s.dyn_ltree[(_length_code[et]+LITERALS$1+1)*2]++,s.dyn_dtree[d_code(o)*2]++),s.sym_next===s.sym_end);var _tr_init_1=_tr_init$1,_tr_stored_block_1=_tr_stored_block$1,_tr_flush_block_1=_tr_flush_block$1,_tr_tally_1=_tr_tally$1,_tr_align_1=_tr_align$1,trees={_tr_init:_tr_init_1,_tr_stored_block:_tr_stored_block_1,_tr_flush_block:_tr_flush_block_1,_tr_tally:_tr_tally_1,_tr_align:_tr_align_1};const adler32=(s,o,et,tt)=>{let nt=s&65535|0,rt=s>>>16&65535|0,it=0;for(;et!==0;){it=et>2e3?2e3:et,et-=it;do nt=nt+o[tt++]|0,rt=rt+nt|0;while(--it);nt%=65521,rt%=65521}return nt|rt<<16|0};var adler32_1=adler32;const makeTable=()=>{let s,o=[];for(var et=0;et<256;et++){s=et;for(var tt=0;tt<8;tt++)s=s&1?3988292384^s>>>1:s>>>1;o[et]=s}return o},crcTable=new Uint32Array(makeTable()),crc32=(s,o,et,tt)=>{const nt=crcTable,rt=tt+et;s^=-1;for(let it=tt;it>>8^nt[(s^o[it])&255];return s^-1};var crc32_1=crc32,messages={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},constants$2={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init,_tr_stored_block,_tr_flush_block,_tr_tally,_tr_align}=trees,{Z_NO_FLUSH:Z_NO_FLUSH$2,Z_PARTIAL_FLUSH,Z_FULL_FLUSH:Z_FULL_FLUSH$1,Z_FINISH:Z_FINISH$3,Z_BLOCK:Z_BLOCK$1,Z_OK:Z_OK$3,Z_STREAM_END:Z_STREAM_END$3,Z_STREAM_ERROR:Z_STREAM_ERROR$2,Z_DATA_ERROR:Z_DATA_ERROR$2,Z_BUF_ERROR:Z_BUF_ERROR$1,Z_DEFAULT_COMPRESSION:Z_DEFAULT_COMPRESSION$1,Z_FILTERED,Z_HUFFMAN_ONLY,Z_RLE,Z_FIXED,Z_DEFAULT_STRATEGY:Z_DEFAULT_STRATEGY$1,Z_UNKNOWN,Z_DEFLATED:Z_DEFLATED$2}=constants$2,MAX_MEM_LEVEL=9,MAX_WBITS$1=15,DEF_MEM_LEVEL=8,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,GZIP_STATE=57,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3,err=(s,o)=>(s.msg=messages[o],o),rank=s=>s*2-(s>4?9:0),zero=s=>{let o=s.length;for(;--o>=0;)s[o]=0},slide_hash=s=>{let o,et,tt,nt=s.w_size;o=s.hash_size,tt=o;do et=s.head[--tt],s.head[tt]=et>=nt?et-nt:0;while(--o);o=nt,tt=o;do et=s.prev[--tt],s.prev[tt]=et>=nt?et-nt:0;while(--o)};let HASH_ZLIB=(s,o,et)=>(o<{const o=s.state;let et=o.pending;et>s.avail_out&&(et=s.avail_out),et!==0&&(s.output.set(o.pending_buf.subarray(o.pending_out,o.pending_out+et),s.next_out),s.next_out+=et,o.pending_out+=et,s.total_out+=et,s.avail_out-=et,o.pending-=et,o.pending===0&&(o.pending_out=0))},flush_block_only=(s,o)=>{_tr_flush_block(s,s.block_start>=0?s.block_start:-1,s.strstart-s.block_start,o),s.block_start=s.strstart,flush_pending(s.strm)},put_byte=(s,o)=>{s.pending_buf[s.pending++]=o},putShortMSB=(s,o)=>{s.pending_buf[s.pending++]=o>>>8&255,s.pending_buf[s.pending++]=o&255},read_buf=(s,o,et,tt)=>{let nt=s.avail_in;return nt>tt&&(nt=tt),nt===0?0:(s.avail_in-=nt,o.set(s.input.subarray(s.next_in,s.next_in+nt),et),s.state.wrap===1?s.adler=adler32_1(s.adler,o,nt,et):s.state.wrap===2&&(s.adler=crc32_1(s.adler,o,nt,et)),s.next_in+=nt,s.total_in+=nt,nt)},longest_match=(s,o)=>{let et=s.max_chain_length,tt=s.strstart,nt,rt,it=s.prev_length,ot=s.nice_match;const st=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0,at=s.window,lt=s.w_mask,ut=s.prev,dt=s.strstart+MAX_MATCH;let ht=at[tt+it-1],ct=at[tt+it];s.prev_length>=s.good_match&&(et>>=2),ot>s.lookahead&&(ot=s.lookahead);do if(nt=o,!(at[nt+it]!==ct||at[nt+it-1]!==ht||at[nt]!==at[tt]||at[++nt]!==at[tt+1])){tt+=2,nt++;do;while(at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&at[++tt]===at[++nt]&&ttit){if(s.match_start=o,it=rt,rt>=ot)break;ht=at[tt+it-1],ct=at[tt+it]}}while((o=ut[o<])>st&&--et!==0);return it<=s.lookahead?it:s.lookahead},fill_window=s=>{const o=s.w_size;let et,tt,nt;do{if(tt=s.window_size-s.lookahead-s.strstart,s.strstart>=o+(o-MIN_LOOKAHEAD)&&(s.window.set(s.window.subarray(o,o+o-tt),0),s.match_start-=o,s.strstart-=o,s.block_start-=o,s.insert>s.strstart&&(s.insert=s.strstart),slide_hash(s),tt+=o),s.strm.avail_in===0)break;if(et=read_buf(s.strm,s.window,s.strstart+s.lookahead,tt),s.lookahead+=et,s.lookahead+s.insert>=MIN_MATCH)for(nt=s.strstart-s.insert,s.ins_h=s.window[nt],s.ins_h=HASH(s,s.ins_h,s.window[nt+1]);s.insert&&(s.ins_h=HASH(s,s.ins_h,s.window[nt+MIN_MATCH-1]),s.prev[nt&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=nt,nt++,s.insert--,!(s.lookahead+s.insert{let et=s.pending_buf_size-5>s.w_size?s.w_size:s.pending_buf_size-5,tt,nt,rt,it=0,ot=s.strm.avail_in;do{if(tt=65535,rt=s.bi_valid+42>>3,s.strm.avail_outnt+s.strm.avail_in&&(tt=nt+s.strm.avail_in),tt>rt&&(tt=rt),tt>8,s.pending_buf[s.pending-2]=~tt,s.pending_buf[s.pending-1]=~tt>>8,flush_pending(s.strm),nt&&(nt>tt&&(nt=tt),s.strm.output.set(s.window.subarray(s.block_start,s.block_start+nt),s.strm.next_out),s.strm.next_out+=nt,s.strm.avail_out-=nt,s.strm.total_out+=nt,s.block_start+=nt,tt-=nt),tt&&(read_buf(s.strm,s.strm.output,s.strm.next_out,tt),s.strm.next_out+=tt,s.strm.avail_out-=tt,s.strm.total_out+=tt)}while(it===0);return ot-=s.strm.avail_in,ot&&(ot>=s.w_size?(s.matches=2,s.window.set(s.strm.input.subarray(s.strm.next_in-s.w_size,s.strm.next_in),0),s.strstart=s.w_size,s.insert=s.strstart):(s.window_size-s.strstart<=ot&&(s.strstart-=s.w_size,s.window.set(s.window.subarray(s.w_size,s.w_size+s.strstart),0),s.matches<2&&s.matches++,s.insert>s.strstart&&(s.insert=s.strstart)),s.window.set(s.strm.input.subarray(s.strm.next_in-ot,s.strm.next_in),s.strstart),s.strstart+=ot,s.insert+=ot>s.w_size-s.insert?s.w_size-s.insert:ot),s.block_start=s.strstart),s.high_waterrt&&s.block_start>=s.w_size&&(s.block_start-=s.w_size,s.strstart-=s.w_size,s.window.set(s.window.subarray(s.w_size,s.w_size+s.strstart),0),s.matches<2&&s.matches++,rt+=s.w_size,s.insert>s.strstart&&(s.insert=s.strstart)),rt>s.strm.avail_in&&(rt=s.strm.avail_in),rt&&(read_buf(s.strm,s.window,s.strstart,rt),s.strstart+=rt,s.insert+=rt>s.w_size-s.insert?s.w_size-s.insert:rt),s.high_water>3,rt=s.pending_buf_size-rt>65535?65535:s.pending_buf_size-rt,et=rt>s.w_size?s.w_size:rt,nt=s.strstart-s.block_start,(nt>=et||(nt||o===Z_FINISH$3)&&o!==Z_NO_FLUSH$2&&s.strm.avail_in===0&&nt<=rt)&&(tt=nt>rt?rt:nt,it=o===Z_FINISH$3&&s.strm.avail_in===0&&tt===nt?1:0,_tr_stored_block(s,s.block_start,tt,it),s.block_start+=tt,flush_pending(s.strm)),it?BS_FINISH_STARTED:BS_NEED_MORE)},deflate_fast=(s,o)=>{let et,tt;for(;;){if(s.lookahead=MIN_MATCH&&(s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart),et!==0&&s.strstart-et<=s.w_size-MIN_LOOKAHEAD&&(s.match_length=longest_match(s,et)),s.match_length>=MIN_MATCH)if(tt=_tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH),s.lookahead-=s.match_length,s.match_length<=s.max_lazy_match&&s.lookahead>=MIN_MATCH){s.match_length--;do s.strstart++,s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart;while(--s.match_length!==0);s.strstart++}else s.strstart+=s.match_length,s.match_length=0,s.ins_h=s.window[s.strstart],s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+1]);else tt=_tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++;if(tt&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}return s.insert=s.strstart{let et,tt,nt;for(;;){if(s.lookahead=MIN_MATCH&&(s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart),s.prev_length=s.match_length,s.prev_match=s.match_start,s.match_length=MIN_MATCH-1,et!==0&&s.prev_length4096)&&(s.match_length=MIN_MATCH-1)),s.prev_length>=MIN_MATCH&&s.match_length<=s.prev_length){nt=s.strstart+s.lookahead-MIN_MATCH,tt=_tr_tally(s,s.strstart-1-s.prev_match,s.prev_length-MIN_MATCH),s.lookahead-=s.prev_length-1,s.prev_length-=2;do++s.strstart<=nt&&(s.ins_h=HASH(s,s.ins_h,s.window[s.strstart+MIN_MATCH-1]),et=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart);while(--s.prev_length!==0);if(s.match_available=0,s.match_length=MIN_MATCH-1,s.strstart++,tt&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}else if(s.match_available){if(tt=_tr_tally(s,0,s.window[s.strstart-1]),tt&&flush_block_only(s,!1),s.strstart++,s.lookahead--,s.strm.avail_out===0)return BS_NEED_MORE}else s.match_available=1,s.strstart++,s.lookahead--}return s.match_available&&(tt=_tr_tally(s,0,s.window[s.strstart-1]),s.match_available=0),s.insert=s.strstart{let et,tt,nt,rt;const it=s.window;for(;;){if(s.lookahead<=MAX_MATCH){if(fill_window(s),s.lookahead<=MAX_MATCH&&o===Z_NO_FLUSH$2)return BS_NEED_MORE;if(s.lookahead===0)break}if(s.match_length=0,s.lookahead>=MIN_MATCH&&s.strstart>0&&(nt=s.strstart-1,tt=it[nt],tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt])){rt=s.strstart+MAX_MATCH;do;while(tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&tt===it[++nt]&&nts.lookahead&&(s.match_length=s.lookahead)}if(s.match_length>=MIN_MATCH?(et=_tr_tally(s,1,s.match_length-MIN_MATCH),s.lookahead-=s.match_length,s.strstart+=s.match_length,s.match_length=0):(et=_tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++),et&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}return s.insert=0,o===Z_FINISH$3?(flush_block_only(s,!0),s.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):s.sym_next&&(flush_block_only(s,!1),s.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_huff=(s,o)=>{let et;for(;;){if(s.lookahead===0&&(fill_window(s),s.lookahead===0)){if(o===Z_NO_FLUSH$2)return BS_NEED_MORE;break}if(s.match_length=0,et=_tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++,et&&(flush_block_only(s,!1),s.strm.avail_out===0))return BS_NEED_MORE}return s.insert=0,o===Z_FINISH$3?(flush_block_only(s,!0),s.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):s.sym_next&&(flush_block_only(s,!1),s.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE};function Config(s,o,et,tt,nt){this.good_length=s,this.max_lazy=o,this.nice_length=et,this.max_chain=tt,this.func=nt}const configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)],lm_init=s=>{s.window_size=2*s.w_size,zero(s.head),s.max_lazy_match=configuration_table[s.level].max_lazy,s.good_match=configuration_table[s.level].good_length,s.nice_match=configuration_table[s.level].nice_length,s.max_chain_length=configuration_table[s.level].max_chain,s.strstart=0,s.block_start=0,s.lookahead=0,s.insert=0,s.match_length=s.prev_length=MIN_MATCH-1,s.match_available=0,s.ins_h=0};function DeflateState(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Z_DEFLATED$2,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(HEAP_SIZE*2),this.dyn_dtree=new Uint16Array((2*D_CODES+1)*2),this.bl_tree=new Uint16Array((2*BL_CODES+1)*2),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(MAX_BITS+1),this.heap=new Uint16Array(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*L_CODES+1),zero(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const deflateStateCheck=s=>{if(!s)return 1;const o=s.state;return!o||o.strm!==s||o.status!==INIT_STATE&&o.status!==GZIP_STATE&&o.status!==EXTRA_STATE&&o.status!==NAME_STATE&&o.status!==COMMENT_STATE&&o.status!==HCRC_STATE&&o.status!==BUSY_STATE&&o.status!==FINISH_STATE?1:0},deflateResetKeep=s=>{if(deflateStateCheck(s))return err(s,Z_STREAM_ERROR$2);s.total_in=s.total_out=0,s.data_type=Z_UNKNOWN;const o=s.state;return o.pending=0,o.pending_out=0,o.wrap<0&&(o.wrap=-o.wrap),o.status=o.wrap===2?GZIP_STATE:o.wrap?INIT_STATE:BUSY_STATE,s.adler=o.wrap===2?0:1,o.last_flush=-2,_tr_init(o),Z_OK$3},deflateReset=s=>{const o=deflateResetKeep(s);return o===Z_OK$3&&lm_init(s.state),o},deflateSetHeader=(s,o)=>deflateStateCheck(s)||s.state.wrap!==2?Z_STREAM_ERROR$2:(s.state.gzhead=o,Z_OK$3),deflateInit2=(s,o,et,tt,nt,rt)=>{if(!s)return Z_STREAM_ERROR$2;let it=1;if(o===Z_DEFAULT_COMPRESSION$1&&(o=6),tt<0?(it=0,tt=-tt):tt>15&&(it=2,tt-=16),nt<1||nt>MAX_MEM_LEVEL||et!==Z_DEFLATED$2||tt<8||tt>15||o<0||o>9||rt<0||rt>Z_FIXED||tt===8&&it!==1)return err(s,Z_STREAM_ERROR$2);tt===8&&(tt=9);const ot=new DeflateState;return s.state=ot,ot.strm=s,ot.status=INIT_STATE,ot.wrap=it,ot.gzhead=null,ot.w_bits=tt,ot.w_size=1<deflateInit2(s,o,Z_DEFLATED$2,MAX_WBITS$1,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY$1),deflate$2=(s,o)=>{if(deflateStateCheck(s)||o>Z_BLOCK$1||o<0)return s?err(s,Z_STREAM_ERROR$2):Z_STREAM_ERROR$2;const et=s.state;if(!s.output||s.avail_in!==0&&!s.input||et.status===FINISH_STATE&&o!==Z_FINISH$3)return err(s,s.avail_out===0?Z_BUF_ERROR$1:Z_STREAM_ERROR$2);const tt=et.last_flush;if(et.last_flush=o,et.pending!==0){if(flush_pending(s),s.avail_out===0)return et.last_flush=-1,Z_OK$3}else if(s.avail_in===0&&rank(o)<=rank(tt)&&o!==Z_FINISH$3)return err(s,Z_BUF_ERROR$1);if(et.status===FINISH_STATE&&s.avail_in!==0)return err(s,Z_BUF_ERROR$1);if(et.status===INIT_STATE&&et.wrap===0&&(et.status=BUSY_STATE),et.status===INIT_STATE){let nt=Z_DEFLATED$2+(et.w_bits-8<<4)<<8,rt=-1;if(et.strategy>=Z_HUFFMAN_ONLY||et.level<2?rt=0:et.level<6?rt=1:et.level===6?rt=2:rt=3,nt|=rt<<6,et.strstart!==0&&(nt|=PRESET_DICT),nt+=31-nt%31,putShortMSB(et,nt),et.strstart!==0&&(putShortMSB(et,s.adler>>>16),putShortMSB(et,s.adler&65535)),s.adler=1,et.status=BUSY_STATE,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3}if(et.status===GZIP_STATE){if(s.adler=0,put_byte(et,31),put_byte(et,139),put_byte(et,8),et.gzhead)put_byte(et,(et.gzhead.text?1:0)+(et.gzhead.hcrc?2:0)+(et.gzhead.extra?4:0)+(et.gzhead.name?8:0)+(et.gzhead.comment?16:0)),put_byte(et,et.gzhead.time&255),put_byte(et,et.gzhead.time>>8&255),put_byte(et,et.gzhead.time>>16&255),put_byte(et,et.gzhead.time>>24&255),put_byte(et,et.level===9?2:et.strategy>=Z_HUFFMAN_ONLY||et.level<2?4:0),put_byte(et,et.gzhead.os&255),et.gzhead.extra&&et.gzhead.extra.length&&(put_byte(et,et.gzhead.extra.length&255),put_byte(et,et.gzhead.extra.length>>8&255)),et.gzhead.hcrc&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending,0)),et.gzindex=0,et.status=EXTRA_STATE;else if(put_byte(et,0),put_byte(et,0),put_byte(et,0),put_byte(et,0),put_byte(et,0),put_byte(et,et.level===9?2:et.strategy>=Z_HUFFMAN_ONLY||et.level<2?4:0),put_byte(et,OS_CODE),et.status=BUSY_STATE,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3}if(et.status===EXTRA_STATE){if(et.gzhead.extra){let nt=et.pending,rt=(et.gzhead.extra.length&65535)-et.gzindex;for(;et.pending+rt>et.pending_buf_size;){let ot=et.pending_buf_size-et.pending;if(et.pending_buf.set(et.gzhead.extra.subarray(et.gzindex,et.gzindex+ot),et.pending),et.pending=et.pending_buf_size,et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),et.gzindex+=ot,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3;nt=0,rt-=ot}let it=new Uint8Array(et.gzhead.extra);et.pending_buf.set(it.subarray(et.gzindex,et.gzindex+rt),et.pending),et.pending+=rt,et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),et.gzindex=0}et.status=NAME_STATE}if(et.status===NAME_STATE){if(et.gzhead.name){let nt=et.pending,rt;do{if(et.pending===et.pending_buf_size){if(et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3;nt=0}et.gzindexnt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),et.gzindex=0}et.status=COMMENT_STATE}if(et.status===COMMENT_STATE){if(et.gzhead.comment){let nt=et.pending,rt;do{if(et.pending===et.pending_buf_size){if(et.gzhead.hcrc&&et.pending>nt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt)),flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3;nt=0}et.gzindexnt&&(s.adler=crc32_1(s.adler,et.pending_buf,et.pending-nt,nt))}et.status=HCRC_STATE}if(et.status===HCRC_STATE){if(et.gzhead.hcrc){if(et.pending+2>et.pending_buf_size&&(flush_pending(s),et.pending!==0))return et.last_flush=-1,Z_OK$3;put_byte(et,s.adler&255),put_byte(et,s.adler>>8&255),s.adler=0}if(et.status=BUSY_STATE,flush_pending(s),et.pending!==0)return et.last_flush=-1,Z_OK$3}if(s.avail_in!==0||et.lookahead!==0||o!==Z_NO_FLUSH$2&&et.status!==FINISH_STATE){let nt=et.level===0?deflate_stored(et,o):et.strategy===Z_HUFFMAN_ONLY?deflate_huff(et,o):et.strategy===Z_RLE?deflate_rle(et,o):configuration_table[et.level].func(et,o);if((nt===BS_FINISH_STARTED||nt===BS_FINISH_DONE)&&(et.status=FINISH_STATE),nt===BS_NEED_MORE||nt===BS_FINISH_STARTED)return s.avail_out===0&&(et.last_flush=-1),Z_OK$3;if(nt===BS_BLOCK_DONE&&(o===Z_PARTIAL_FLUSH?_tr_align(et):o!==Z_BLOCK$1&&(_tr_stored_block(et,0,0,!1),o===Z_FULL_FLUSH$1&&(zero(et.head),et.lookahead===0&&(et.strstart=0,et.block_start=0,et.insert=0))),flush_pending(s),s.avail_out===0))return et.last_flush=-1,Z_OK$3}return o!==Z_FINISH$3?Z_OK$3:et.wrap<=0?Z_STREAM_END$3:(et.wrap===2?(put_byte(et,s.adler&255),put_byte(et,s.adler>>8&255),put_byte(et,s.adler>>16&255),put_byte(et,s.adler>>24&255),put_byte(et,s.total_in&255),put_byte(et,s.total_in>>8&255),put_byte(et,s.total_in>>16&255),put_byte(et,s.total_in>>24&255)):(putShortMSB(et,s.adler>>>16),putShortMSB(et,s.adler&65535)),flush_pending(s),et.wrap>0&&(et.wrap=-et.wrap),et.pending!==0?Z_OK$3:Z_STREAM_END$3)},deflateEnd=s=>{if(deflateStateCheck(s))return Z_STREAM_ERROR$2;const o=s.state.status;return s.state=null,o===BUSY_STATE?err(s,Z_DATA_ERROR$2):Z_OK$3},deflateSetDictionary=(s,o)=>{let et=o.length;if(deflateStateCheck(s))return Z_STREAM_ERROR$2;const tt=s.state,nt=tt.wrap;if(nt===2||nt===1&&tt.status!==INIT_STATE||tt.lookahead)return Z_STREAM_ERROR$2;if(nt===1&&(s.adler=adler32_1(s.adler,o,et,0)),tt.wrap=0,et>=tt.w_size){nt===0&&(zero(tt.head),tt.strstart=0,tt.block_start=0,tt.insert=0);let st=new Uint8Array(tt.w_size);st.set(o.subarray(et-tt.w_size,et),0),o=st,et=tt.w_size}const rt=s.avail_in,it=s.next_in,ot=s.input;for(s.avail_in=et,s.next_in=0,s.input=o,fill_window(tt);tt.lookahead>=MIN_MATCH;){let st=tt.strstart,at=tt.lookahead-(MIN_MATCH-1);do tt.ins_h=HASH(tt,tt.ins_h,tt.window[st+MIN_MATCH-1]),tt.prev[st&tt.w_mask]=tt.head[tt.ins_h],tt.head[tt.ins_h]=st,st++;while(--at);tt.strstart=st,tt.lookahead=MIN_MATCH-1,fill_window(tt)}return tt.strstart+=tt.lookahead,tt.block_start=tt.strstart,tt.insert=tt.lookahead,tt.lookahead=0,tt.match_length=tt.prev_length=MIN_MATCH-1,tt.match_available=0,s.next_in=it,s.input=ot,s.avail_in=rt,tt.wrap=nt,Z_OK$3};var deflateInit_1=deflateInit,deflateInit2_1=deflateInit2,deflateReset_1=deflateReset,deflateResetKeep_1=deflateResetKeep,deflateSetHeader_1=deflateSetHeader,deflate_2$1=deflate$2,deflateEnd_1=deflateEnd,deflateSetDictionary_1=deflateSetDictionary,deflateInfo="pako deflate (from Nodeca project)",deflate_1$2={deflateInit:deflateInit_1,deflateInit2:deflateInit2_1,deflateReset:deflateReset_1,deflateResetKeep:deflateResetKeep_1,deflateSetHeader:deflateSetHeader_1,deflate:deflate_2$1,deflateEnd:deflateEnd_1,deflateSetDictionary:deflateSetDictionary_1,deflateInfo};const _has=(s,o)=>Object.prototype.hasOwnProperty.call(s,o);var assign$1=function(s){const o=Array.prototype.slice.call(arguments,1);for(;o.length;){const et=o.shift();if(et){if(typeof et!="object")throw new TypeError(et+"must be non-object");for(const tt in et)_has(et,tt)&&(s[tt]=et[tt])}}return s},flattenChunks=s=>{let o=0;for(let tt=0,nt=s.length;tt=252?6:s>=248?5:s>=240?4:s>=224?3:s>=192?2:1;_utf8len[254]=_utf8len[254]=1;var string2buf=s=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(s);let o,et,tt,nt,rt,it=s.length,ot=0;for(nt=0;nt>>6,o[rt++]=128|et&63):et<65536?(o[rt++]=224|et>>>12,o[rt++]=128|et>>>6&63,o[rt++]=128|et&63):(o[rt++]=240|et>>>18,o[rt++]=128|et>>>12&63,o[rt++]=128|et>>>6&63,o[rt++]=128|et&63);return o};const buf2binstring=(s,o)=>{if(o<65534&&s.subarray&&STR_APPLY_UIA_OK)return String.fromCharCode.apply(null,s.length===o?s:s.subarray(0,o));let et="";for(let tt=0;tt{const et=o||s.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(s.subarray(0,o));let tt,nt;const rt=new Array(et*2);for(nt=0,tt=0;tt4){rt[nt++]=65533,tt+=ot-1;continue}for(it&=ot===2?31:ot===3?15:7;ot>1&&tt1){rt[nt++]=65533;continue}it<65536?rt[nt++]=it:(it-=65536,rt[nt++]=55296|it>>10&1023,rt[nt++]=56320|it&1023)}return buf2binstring(rt,nt)},utf8border=(s,o)=>{o=o||s.length,o>s.length&&(o=s.length);let et=o-1;for(;et>=0&&(s[et]&192)===128;)et--;return et<0||et===0?o:et+_utf8len[s[et]]>o?et:o},strings={string2buf,buf2string,utf8border};function ZStream(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zstream=ZStream;const toString$1=Object.prototype.toString,{Z_NO_FLUSH:Z_NO_FLUSH$1,Z_SYNC_FLUSH,Z_FULL_FLUSH,Z_FINISH:Z_FINISH$2,Z_OK:Z_OK$2,Z_STREAM_END:Z_STREAM_END$2,Z_DEFAULT_COMPRESSION,Z_DEFAULT_STRATEGY,Z_DEFLATED:Z_DEFLATED$1}=constants$2;function Deflate$1(s){this.options=common.assign({level:Z_DEFAULT_COMPRESSION,method:Z_DEFLATED$1,chunkSize:16384,windowBits:15,memLevel:8,strategy:Z_DEFAULT_STRATEGY},s||{});let o=this.options;o.raw&&o.windowBits>0?o.windowBits=-o.windowBits:o.gzip&&o.windowBits>0&&o.windowBits<16&&(o.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let et=deflate_1$2.deflateInit2(this.strm,o.level,o.method,o.windowBits,o.memLevel,o.strategy);if(et!==Z_OK$2)throw new Error(messages[et]);if(o.header&&deflate_1$2.deflateSetHeader(this.strm,o.header),o.dictionary){let tt;if(typeof o.dictionary=="string"?tt=strings.string2buf(o.dictionary):toString$1.call(o.dictionary)==="[object ArrayBuffer]"?tt=new Uint8Array(o.dictionary):tt=o.dictionary,et=deflate_1$2.deflateSetDictionary(this.strm,tt),et!==Z_OK$2)throw new Error(messages[et]);this._dict_set=!0}}Deflate$1.prototype.push=function(s,o){const et=this.strm,tt=this.options.chunkSize;let nt,rt;if(this.ended)return!1;for(o===~~o?rt=o:rt=o===!0?Z_FINISH$2:Z_NO_FLUSH$1,typeof s=="string"?et.input=strings.string2buf(s):toString$1.call(s)==="[object ArrayBuffer]"?et.input=new Uint8Array(s):et.input=s,et.next_in=0,et.avail_in=et.input.length;;){if(et.avail_out===0&&(et.output=new Uint8Array(tt),et.next_out=0,et.avail_out=tt),(rt===Z_SYNC_FLUSH||rt===Z_FULL_FLUSH)&&et.avail_out<=6){this.onData(et.output.subarray(0,et.next_out)),et.avail_out=0;continue}if(nt=deflate_1$2.deflate(et,rt),nt===Z_STREAM_END$2)return et.next_out>0&&this.onData(et.output.subarray(0,et.next_out)),nt=deflate_1$2.deflateEnd(this.strm),this.onEnd(nt),this.ended=!0,nt===Z_OK$2;if(et.avail_out===0){this.onData(et.output);continue}if(rt>0&&et.next_out>0){this.onData(et.output.subarray(0,et.next_out)),et.avail_out=0;continue}if(et.avail_in===0)break}return!0};Deflate$1.prototype.onData=function(s){this.chunks.push(s)};Deflate$1.prototype.onEnd=function(s){s===Z_OK$2&&(this.result=common.flattenChunks(this.chunks)),this.chunks=[],this.err=s,this.msg=this.strm.msg};function deflate$1(s,o){const et=new Deflate$1(o);if(et.push(s,!0),et.err)throw et.msg||messages[et.err];return et.result}function deflateRaw$1(s,o){return o=o||{},o.raw=!0,deflate$1(s,o)}function gzip$1(s,o){return o=o||{},o.gzip=!0,deflate$1(s,o)}var Deflate_1$1=Deflate$1,deflate_2=deflate$1,deflateRaw_1$1=deflateRaw$1,gzip_1$1=gzip$1,constants$1=constants$2,deflate_1$1={Deflate:Deflate_1$1,deflate:deflate_2,deflateRaw:deflateRaw_1$1,gzip:gzip_1$1,constants:constants$1};const{Deflate,deflate,deflateRaw,gzip}=deflate_1$1;var deflate_1=deflate,fromByteArray_1=fromByteArray,lookup=[],code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i>18&63]+lookup[s>>12&63]+lookup[s>>6&63]+lookup[s&63]}function encodeChunk(s,o,et){for(var tt,nt=[],rt=o;rtot?ot:it+rt));return tt===1?(o=s[et-1],nt.push(lookup[o>>2]+lookup[o<<4&63]+"==")):tt===2&&(o=(s[et-2]<<8)+s[et-1],nt.push(lookup[o>>10]+lookup[o>>4&63]+lookup[o<<2&63]+"=")),nt.join("")}const encoder=new TextEncoder;new TextDecoder;function serializeHash(s){const o=JSON.stringify(s),et=encoder.encode(o),tt=deflate_1(et);return fromByteArray_1(tt)}async function getViews(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/views`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function createShareLink(s,o){if(!Authentication.token)throw new Error("Not authenticated");const et=(await getViews()).filter(it=>it.name===o);if(et.length===0)return console.warn("View does not exist or it is misspell"),null;const tt=await fetch(`${FORMANT_API_URL}/v1/admin/shares`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),nt=FORMANT_API_URL.replace("api","app"),{code:rt}=await tt.json();return`${nt}/shares/${rt}#${serializeHash({viewId:et[0].id})}`}const aggregateByDateFunctions={day:{interval:eachDayOfInterval,start:startOfDay,end:endOfDay,sub:subDays,get:getDay},week:{interval:eachWeekOfInterval,start:startOfWeek,end:endOfWeek,sub:subWeeks,get:getWeek},month:{interval:eachMonthOfInterval,start:startOfMonth,end:endOfMonth,sub:subMonths,get:getMonth},year:{interval:eachYearOfInterval,start:startOfYear,end:endOfYear,sub:subYears,get:getYear},hour:{interval:eachHourOfInterval,start:startOfHour,end:endOfHour,sub:subHours,get:getHours},minute:{interval:eachMinuteOfInterval,start:startOfMinute,end:endOfMinute,sub:subMinutes,get:getMinutes},quarter:{interval:eachQuarterOfInterval,start:startOfQuarter,end:endOfQuarter,sub:subQuarters,get:getQuarter}},formatTimeFrameText=(s,o)=>s.split("/")[0]+"/"+s.split("/")[1]+"–"+o.split("/")[0]+"/"+o.split("/")[1];async function queryEvents(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/events/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function eventsCounter(s,o,et,tt,nt){const rt=aggregateByDateFunctions[o];return await Promise.all(Array(et).fill(0).map(async(it,ot)=>{const st=new Date(tt),at=rt.sub(rt.start(st),et-ot-1),lt=rt.sub(rt.end(st),et-ot-1),ut=formatTimeFrameText(at.toLocaleDateString(),lt.toLocaleDateString()),dt=await queryEvents({...nt,eventTypes:s,start:new Date(at).toISOString(),end:new Date(lt).toISOString()});return{date:ut,events:dt}}))}async function getAnnotationCount(s,o){return(await queryEvents({...s,eventTypes:["annotation"]})).filter(et=>!!et.tags&&Object.keys(et.tags).includes(o)).reduce((et,tt)=>{const nt=tt.tags[o];return nt in et?(et[nt]+=1,et):(et[nt]=1,et)},{})}async function getAnnotationCountByIntervals(s,o,et){const{end:tt,start:nt}=s,rt=aggregateByDateFunctions[et].interval({start:new Date(nt),end:new Date(tt)}),it=rt.map((st,at)=>{const lt=new Date(st).toISOString(),ut=at===rt.length-1?new Date(Date.now()).toISOString():new Date(rt[at+1]);return getAnnotationCount({...s,start:lt,end:ut},o)}),ot=await Promise.all(it);return rt.map((st,at)=>({date:new Date(st).toISOString(),annotations:ot[at]}))}async function getTelemetry(s,o,et,tt,nt,rt){let it=s;Array.isArray(s)||(it=[s]);let ot=o;return Array.isArray(o)||(ot=[o]),(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify({deviceIds:it,end:tt.toISOString(),names:ot,start:et.toISOString(),tags:nt,latestOnly:rt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getRealtimeSessions(){if(!Authentication.token)throw new Error("Not authenticated");const s=defaultRtcClientPool.get();try{return await s.getSessions()}finally{await s.shutdown()}}async function getPeers(){if(!Authentication.token)throw new Error("Not authenticated");const s=defaultRtcClientPool.get();try{return await s.getPeers()}finally{await s.shutdown()}}async function createDevice(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/devices`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchDevice(s,o){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${s}`,{method:"PATCH",body:JSON.stringify(o),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getDevicesData(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function queryDevicesData(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function disableDevice(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${s}/disable`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}class Device extends BaseDevice{constructor(o,et,tt,nt){super(),this.id=o,this.name=et,this.organizationId=tt,this.tags=nt}async getLatestTelemetry(){return(await(await fetch(`${FORMANT_API_URL}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async getConfiguration(o=!1){let et=await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}});const tt=await et.json();if(!tt.state.reportedConfiguration)throw new Error("Device has no configuration, has it ever been turned on?");const nt=o?tt.desiredConfigurationVersion:tt.state.reportedConfiguration.version;return et=await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}/configurations/${nt}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),(await et.json()).document}async getAgentVersion(){var o;const et=await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return(o=et?.state)==null?void 0:o.agentVersion}async getFileUrl(o){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[o]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).fileUrls}async startRealtimeConnection(o={}){if(console.debug(`${new Date().toISOString()} :: Connection start requested`),this.rtcClient&&this.connectionMonitorInterval!==void 0)throw new Error(`Already created realtime connection to device ${this.id}`);this.rtcClient&&console.warn("overwriting existing rtcClient due to missing connectionMonitorInterval");const{sessionType:et,deadlineMs:tt=1e4,maxConnectRetries:nt=3}=typeof o=="number"?{sessionType:o}:o,rt=getRtcClientPool({sessionType:et}).get(this.handleMessage);let it=!1;const ot=new Promise((at,lt)=>setTimeout(()=>{it=!0,lt(new Error("Connection timed out: the connection could not be finalized in time, possibly due to network issues or misconfigured settings."))},tt)),st=async()=>{if("isReady"in rt)for(;!rt.isReady();)this.assertNotCancelled(it),await delay$1(100);const at=await this.getRemoteDevicePeerId(rt);this.assertNotCancelled(it);let lt;for(let dt=0;dt{this.remoteDevicePeerId=at,this.initConnectionMonitoring(),this.rtcClient=rt,this.emit("connect")}).catch(at=>{throw console.debug(`${new Date().toISOString()} :: Connection failed: %o`,at),this.remoteDevicePeerId=null,rt.shutdown().catch(lt=>{console.error("rtcClient cannot shutdown: %o",lt)}),this.emit("connection_failed",at),at})}async getRemoteDevicePeerId(o){const et=(await o.getPeers()).find(tt=>tt.deviceId===this.id);if(!isRtcPeer(et))throw new Error("Cannot find peer, is the robot offline?");return et.id}initConnectionMonitoring(){this.connectionMonitorInterval=setInterval(async()=>{let o=!1;if(this.rtcClient){const et=this.rtcClient.getConnections().find(tt=>tt.getRemotePeerId()===this.remoteDevicePeerId&&tt.isActive());(et===void 0||!et.isReady())&&(console.debug(`${new Date().toISOString()} :: data channel closed`),o=!0)}(!this.rtcClient||!this.remoteDevicePeerId||await this.rtcClient.getConnectionStatsInfo(this.remoteDevicePeerId)===void 0||o)&&(this.emit("disconnect"),this.stopRealtimeConnection().catch(et=>{console.error(et)}))},1e3)}async getRemotePeer(){const o=(await defined$1(this.rtcClient,"Realtime connection has not been started").getPeers()).find(et=>et.deviceId===this.id);return defined$1(o,"Could not find remote peer for device "+this.id)}async stopRealtimeConnection(){let o=!1;if(this.rtcClient){this.stopConnectionMonitoring(),this.remoteDevicePeerId?(await this.rtcClient.disconnect(this.remoteDevicePeerId),this.remoteDevicePeerId=null):o=!0;try{await this.rtcClient.shutdown()}finally{this.rtcClient=void 0}}if(o)throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async isInRealtimeSession(){const o=await getPeers(),et=await getRealtimeSessions(),tt=o.find(nt=>nt.deviceId===this.id);return tt?et[tt.id].length>0:!1}async getAvailableCommands(){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/command-templates/`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(o=>({name:o.name,id:o.id,command:o.command,description:o.description,parameterEnabled:o.parameterEnabled,parameterValue:o.parameterValue,parameterMeta:o.parameterMeta,enabled:o.enabled,tags:o.tags}))}async sendCommand(o,et,tt,nt){var rt;const it=(await this.getAvailableCommands()).find(at=>at.name===o);if(!it)throw new Error(`Could not find command with name "${o}"`);let ot="";et===void 0?it.parameterEnabled&&it.parameterValue&&(ot=it.parameterValue):ot=et;let st={value:ot,scrubberTime:(tt||new Date).toISOString(),meta:{...it.parameterMeta,...nt}};return await fetch(`${FORMANT_API_URL}/v1/admin/commands`,{method:"POST",body:JSON.stringify({commandTemplateId:it.id,organizationId:this.organizationId,deviceId:this.id,command:it.command,parameter:st,userId:(rt=Authentication.currentUser)==null?void 0:rt.id}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async getCommand(o){return await fetch(`${FORMANT_API_URL}/v1/admin/commands/${o}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async createCaptureStream(o){const et=await(await fetch(`${FORMANT_API_URL}/v1/admin/capture-sessions`,{method:"POST",body:JSON.stringify({deviceId:this.id,streamName:o,tags:{}}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return new CaptureStream(et)}async getTelemetry(o,et,tt,nt,rt,it,ot){if(rt!==void 0||it!==void 0)throw new Error("Limit and offset are not supported in this method");return await getTelemetry(this.id,o,et,tt,nt,ot)}async queryEvents(o){if(o.deviceIds)throw new Error("Cannot filter multiple devices via Device class");return o.deviceIds=[this.id],queryEvents(o)}async getTelemetryStreams(){var o,et;const tt=await this.getConfiguration(),nt=await fetch(`${FORMANT_API_URL}/v1/queries/metadata/stream-names`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),rt=[],it=[];return(et=(o=tt.telemetry)==null?void 0:o.streams)==null||et.forEach(ot=>{ot.disabled!==!0&&rt.push(ot.name),ot.onDemand===!0&&it.push(ot.name)}),console.log(it),(await nt.json()).items.filter(ot=>!rt.includes(ot)).map(ot=>({name:ot,onDemand:it.includes(ot)}))}async createInterventionRequest(o,et,tt,nt){return await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-requests`,{method:"POST",body:JSON.stringify({message:o,interventionType:et,time:new Date().toISOString(),deviceId:this.id,tags:nt,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async addInterventionResponse(o,et,tt){return await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-responses`,{method:"POST",body:JSON.stringify({interventionId:o,interventionType:et,data:tt}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async getAnnotationCount(o,et){return await getAnnotationCount({...o,deviceIds:[this.id]},et)}async getAnnotationCountByIntervals(o,et,tt){return await getAnnotationCountByIntervals({...o,deviceIds:[this.id]},et,tt)}async eventsCounter(o,et,tt,nt,rt){return await eventsCounter(o,et,tt,nt,{...rt,deviceIds:[this.id]})}async createShareLink(o,et){return o.scope.deviceIds=[this.id],await createShareLink(o,et)}}he(Device,"createDevice",createDevice),he(Device,"patchDevice",patchDevice),he(Device,"getDevicesData",getDevicesData),he(Device,"queryDevicesData",queryDevicesData),he(Device,"disableDevice",disableDevice);class PeerDevice extends BaseDevice{constructor(o){super(),he(this,"id"),he(this,"telemetryStreamActive",!1),he(this,"streamTelemetry",{}),this.peerUrl=o}async getLatestTelemetry(){this.telemetryStreamActive||this.subscribeToTelemetry();const o=this.streamTelemetry;return Object.entries(o).map(([et,tt])=>({deviceId:this.id,streamName:et,streamType:"json",currentValue:tt,currentValueTime:tt.timestamp,tags:{}}))}async getTelemetry(o,et,tt,nt,rt,it,ot){if(Array.isArray(o))throw new Error("Multiple stream names not supported");if(nt)throw new Error("Tags not supported");if(ot&&rt===void 0)rt=1;else if(ot&&rt!==void 0)throw new Error("latestOnly and limit cannot be used together");let st=`${this.peerUrl}/v1/querydatapoints?stream_name=${o}&start=${et.toISOString()}&end=${tt.toISOString()}`;rt!=null&&rt>0&&(st+=`&limit=${rt}`),it!=null&&it>=0&&(st+=`&offset=${it}`);const at=await(await fetch(st)).json(),lt=[];for(const ut of at.results){const dt=parseInt(ut.timestamp),ht=ut.tags.data_type;delete ut.tags.data_type,lt.push({deviceId:this.id,name:ut.stream,points:[[dt,this.getPointPayload(ht,ut)]],tags:ut.tags,type:ht})}return lt.reverse()}async queryEvents(o){const et=["id","viewed","keyword","message","sort","eventTypes","notificationEnabled","userIds","annotationTemplateIds","disableNullMatches","severities","deviceIds","names","types","tags","notNames"];this.checkKeysAndThrow(o,et);let tt=`${this.peerUrl}/v1/queryevents?start=${o.start}&end=${o.end}`;o.count!=null&&o.count>0&&(tt+=`&limit=${o.count}`),o.offset!=null&&o.offset>=0&&(tt+=`&offset=${o.offset}`);const nt=await(await fetch(tt)).json(),rt=[];for(const it of nt.results){const ot=parseInt(it.timestamp),st={deviceId:this.id,time:new Date(ot).toISOString(),message:it.message,notificationEnabled:it.notificationEnabled,type:it.type,tags:it.tags};it.id!==""&&(st.id=it.id),it.type!==""&&(st.type=it.type),it.streamName!==""&&(st.streamName=it.streamName),it.streamType!==""&&(st.streamType=it.streamType),it.severity!==""&&(st.severity=it.severity.toLowerCase()),it.tags&&(st.tags=it.tags),it.endTimestamp!=="0"&&(st.endTime=new Date(parseInt(it.endTimestamp)).toISOString()),rt.push(st)}return rt.reverse()}checkKeysAndThrow(o,et){const tt=et.filter(nt=>nt in o);if(tt.length>0)throw new Error(`Filters not currently supported: ${tt.join(", ")}.`)}getPointPayload(o,et){switch(o){case"numeric":return et.numeric.value;case"numeric set":return et.numericSet.numerics;case"text":return et.text.value;case"json":return et.json.value;case"bitset":const tt=[],nt=[];for(const rt of et.bitset.bits)tt.push(rt.key),nt.push(rt.value);return{keys:tt,values:nt};case"location":return et.location;case"health":return et.health;case"battery":return et.battery;default:return{}}}subscribeToTelemetry(){this.telemetryStreamActive=!0;let o=0;const et=new XMLHttpRequest;et.responseType="text",et.addEventListener("error",tt=>{this.handleXHRError("error")}),et.addEventListener("abort",tt=>{this.handleXHRError("abort")}),et.addEventListener("timeout",tt=>{this.handleXHRError("timeout")}),et.addEventListener("readystatechange",tt=>{et.readyState===XMLHttpRequest.DONE&&this.handleXHRError("closed")}),et.addEventListener("progress",tt=>{const nt=tt.loaded,rt=nt-o;o=nt,et.responseText.substr(-rt).split(` `).forEach(it=>{var ot;if(it.length>0){const st=JSON.parse(it);if((ot=st.result)!=null&&ot.datapoint){const at=st.result.datapoint,lt=at.stream;delete at.stream,this.streamTelemetry[lt]=at}}})}),et.open("POST",`${this.peerUrl}/v1/telemetry`),et.send()}handleXHRError(o){console.warn(`Telemetry stream ended: ${o}`),this.telemetryStreamActive=!1}async getDeviceId(){return(await(await fetch(`${this.peerUrl}/v1/config`)).json()).configuration.id}async getConfiguration(){return(await(await fetch(`${this.peerUrl}/v1/config`)).json()).configuration.document}async getViews(){return(await(await fetch(`${this.peerUrl}/v1/views`)).json()).views}async startRealtimeConnection(o){if(console.debug(`${new Date().toISOString()} :: Connection start requested`),this.rtcClient&&this.connectionMonitorInterval!==void 0)throw new Error(`Already created realtime connection to device ${this.id}`);this.rtcClient&&console.warn("overwriting existing rtcClient due to missing connectionMonitorInterval");const et=new distExports.RtcClient({lanOnlyMode:!0,receive:this.handleMessage,sessionType:o});for(await et.connectLan(this.peerUrl);et.getConnectionStatus(this.peerUrl)!=="connected";)await delay$1(100);this.rtcClient=et,this.initConnectionMonitoring()}initConnectionMonitoring(){this.connectionMonitorInterval=setInterval(async()=>{let o=!1;this.rtcClient&&this.rtcClient.getConnectionStatus(this.peerUrl)!=="connected"&&(console.debug(`${new Date().toISOString()} :: data channel closed`),o=!0),(!this.rtcClient||o)&&(this.emit("disconnect"),this.stopRealtimeConnection().catch(et=>{console.error(et)}))},1e3)}async getRemotePeer(){return{id:this.peerUrl,organizationId:"",deviceId:this.id,capabilities:[],capabilitySet:{}}}async stopRealtimeConnection(){let o=!1;if(this.rtcClient){this.stopConnectionMonitoring(),this.id?(await this.rtcClient.disconnect(this.id),this.remoteDevicePeerId=null):o=!0;try{await this.rtcClient.shutdown()}finally{this.rtcClient=void 0}}if(o)throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async getCommandMetadata(){return(await fetch(`${this.peerUrl}/v1/commands`)).json()}async sendCommand(o,et,tt,nt){const rt={value:et,scrubberTime:(tt||new Date).toISOString(),meta:nt};return await fetch(`${this.peerUrl}/v1/enqueue-command`,{method:"POST",body:JSON.stringify({command:o,parameter:rt}),headers:{"Content-Type":"application/json"}})}}async function addDeviceToFleet(s,o){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${s}`,{method:"PATCH",body:JSON.stringify({fleetId:o}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function aggregateTelemetry(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).aggregates}async function deleteFleet(s){if(!Authentication.token)throw new Error("Not authenticated");await fetch(`${FORMANT_API_URL}/v1/admin/fleets/${s}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async function getAnalyticStreams(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getAnalyticsModules(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/analytics-modules`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getAnalyticsRows(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/rows`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function queryDevices(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(o=>new Device(o.id,o.name,o.organizationId,o.tags))}async function getCurrentGroup(){if(!Authentication.token)throw new Error("Not authenticated");let s=new URLSearchParams("");typeof window<"u"&&window.location&&(s=new URLSearchParams(window.location.search));const o=s.get("group");if(o===null||o.trim()==="")return;const et=await fetch(`${FORMANT_API_URL}/v1/admin/groups/`+o,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),{tagKey:tt,tagValue:nt}=await et.json();return await queryDevices({tags:{[tt]:[nt]},enabled:!0,type:"default"})}async function getDevice(s){if(!Authentication.token)throw new Error("Not authenticated");const o=await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json(),et=o.name;return new Device(s,et,o.organizationId,o.tags)}async function getDevices(){if(!Authentication.token)throw new Error("Not authenticated");const s=await(await fetch(`${FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return s.items,s.items.map(o=>new Device(o.id,o.name,defined$1(Authentication.currentOrganization),o.tags))}async function getEvent(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/events/query/id=${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getFileUrl(s){const o=await(await fetch(`${FORMANT_API_URL}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[s]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();if(o.fileUrls.length===0)throw new Error("File not found");return o.fileUrls[0]}async function getFleet(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/fleets/${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getFleetDevices(s){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/fleets/${s}/devices`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getInterventions(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-requests`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getLatestTelemetry(...s){const o=s.flat().filter(et=>!!et);return o.length===0?[]:(await(await fetch(`${FORMANT_API_URL}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:o}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getOnlineDevices(){if(!Authentication.token)throw new Error("Not authenticated");const s=(await(await fetch(`${FORMANT_API_URL}/v1/queries/online-devices`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items;return(await getDevices()).filter(o=>s.includes(o.id))}async function getRealtimeDevices(){if(!Authentication.token)throw new Error("Not authenticated");const s=(await(await fetch(`${FORMANT_API_URL}/v1/signaling/peers`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(o=>o.deviceId);return(await getDevices()).filter(o=>s.includes(o.id))}async function getStreams(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.filter(s=>s.enabled)}async function getTaskReportRows(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/task-report-rows`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getTaskReportTables(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/task-reports`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function listFleets(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/fleets`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function patchFleet(s,o){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/fleets/${s}`,{method:"PATCH",body:JSON.stringify(o),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchStream(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/streams/${s.id}`,{method:"PATCH",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchView(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/views/${s.id}`,{method:"PATCH",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function queryAnalytics$1(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function createFleet(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/fleets`,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getAllEventTriggerGroup(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/event-trigger-groups`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getEventTriggerGroup(s){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/event-trigger-groups/${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchEventTriggerGroup(s,o){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/event-trigger-groups/${s}`,{method:"PATCH",body:JSON.stringify(o),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}const Qt=class{static async setDefaultDevice(s){Qt.defaultDeviceId=s}static async getCurrentDevice(){if(!Authentication.token)throw new Error("Not authenticated");if(!Qt.defaultDeviceId)throw new Error("No known default device");const s=(await(await fetch(`${FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.find(tt=>tt.id===Qt.defaultDeviceId),o=s.name,et=new Device(Qt.defaultDeviceId,o,defined$1(Authentication.currentOrganization),s.tags);return Qt.knownContext.push(new WeakRef(et)),et}static async getPeerDevice(s){const o=new PeerDevice(s);return o.id=await o.getDeviceId(),o}static async getDevice(s){const o=await getDevice(s);return Qt.knownContext.push(new WeakRef(o)),o}};let Fleet=Qt;he(Fleet,"defaultDeviceId"),he(Fleet,"knownContext",[]),he(Fleet,"createFleet",createFleet),he(Fleet,"listFleets",listFleets),he(Fleet,"getFleet",getFleet),he(Fleet,"patchFleet",patchFleet),he(Fleet,"deleteFleet",deleteFleet),he(Fleet,"addDeviceToFleet",addDeviceToFleet),he(Fleet,"getFleetDevices",getFleetDevices),he(Fleet,"aggregateTelemetry",aggregateTelemetry),he(Fleet,"createShareLink",createShareLink),he(Fleet,"eventsCounter",eventsCounter),he(Fleet,"getAnalyticStreams",getAnalyticStreams),he(Fleet,"getAnalyticsModules",getAnalyticsModules),he(Fleet,"getAnalyticsRows",getAnalyticsRows),he(Fleet,"getAnnotationCount",getAnnotationCount),he(Fleet,"getAnnotationCountByIntervals",getAnnotationCountByIntervals),he(Fleet,"getCurrentGroup",getCurrentGroup),he(Fleet,"getDevices",getDevices),he(Fleet,"getEvent",getEvent),he(Fleet,"getFileUrl",getFileUrl),he(Fleet,"getInterventions",getInterventions),he(Fleet,"getLatestTelemetry",getLatestTelemetry),he(Fleet,"getOnlineDevices",getOnlineDevices),he(Fleet,"getPeers",getPeers),he(Fleet,"getRealtimeDevices",getRealtimeDevices),he(Fleet,"getRealtimeSessions",getRealtimeSessions),he(Fleet,"getStreams",getStreams),he(Fleet,"getTaskReportRows",getTaskReportRows),he(Fleet,"getTaskReportTables",getTaskReportTables),he(Fleet,"getTelemetry",getTelemetry),he(Fleet,"getViews",getViews),he(Fleet,"patchStream",patchStream),he(Fleet,"patchView",patchView),he(Fleet,"queryAnalytics",queryAnalytics$1),he(Fleet,"queryDevices",queryDevices),he(Fleet,"queryEvents",queryEvents),he(Fleet,"queryTelemetry",queryTelemetry),he(Fleet,"getAllEventTriggerGroup",getAllEventTriggerGroup),he(Fleet,"getEventTriggerGroup",getEventTriggerGroup),he(Fleet,"patchEventTriggergroup",patchEventTriggerGroup);try{const s=typeof window<"u"&&window.location?new URLSearchParams(window.location.search):new URLSearchParams(""),o=s.get("device");o&&Fleet.setDefaultDevice(o);const et=s.get("auth");et&&Authentication.loginWithToken(et),s.get("module")&&Authentication.listenForRefresh(),typeof window<"u"&&App.listenForConnectionEvents()}catch(s){}var signaling_pb={},googleProtobuf={};(function(exports){var $jscomp=$jscomp||{};$jscomp.scope={},$jscomp.findInternal=function(s,o,et){s instanceof String&&(s=String(s));for(var tt=s.length,nt=0;nt=nt}},"es6","es3"),$jscomp.polyfill("Array.prototype.find",function(s){return s||function(o,et){return $jscomp.findInternal(this,o,et).v}},"es6","es3"),$jscomp.polyfill("String.prototype.startsWith",function(s){return s||function(o,et){var tt=$jscomp.checkStringArgs(this,o,"startsWith");o+="";var nt=tt.length,rt=o.length;et=Math.max(0,Math.min(et|0,tt.length));for(var it=0;it=rt}},"es6","es3"),$jscomp.polyfill("String.prototype.repeat",function(s){return s||function(o){var et=$jscomp.checkStringArgs(this,null,"repeat");if(0>o||1342177279>>=1)&&(et+=et);return tt}},"es6","es3");var COMPILED=!0,goog=goog||{};goog.global=commonjsGlobal||self,goog.exportPath_=function(s,o,et){s=s.split("."),et=et||goog.global,s[0]in et||typeof et.execScript>"u"||et.execScript("var "+s[0]);for(var tt;s.length&&(tt=s.shift());)s.length||o===void 0?et=et[tt]&&et[tt]!==Object.prototype[tt]?et[tt]:et[tt]={}:et[tt]=o},goog.define=function(s,o){return o},goog.FEATURESET_YEAR=2012,goog.DEBUG=!0,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.STRICT_MODE_COMPATIBLE=!1,goog.DISALLOW_TEST_ONLY_CODE=!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(s){if(goog.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");goog.constructNamespace_(s)},goog.constructNamespace_=function(s,o){goog.exportPath_(s,o)},goog.getScriptNonce=function(s){return s&&s!=goog.global?goog.getScriptNonce_(s.document):(goog.cspNonce_===null&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document)),goog.cspNonce_)},goog.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/,goog.cspNonce_=null,goog.getScriptNonce_=function(s){return(s=s.querySelector&&s.querySelector("script[nonce]"))&&(s=s.nonce||s.getAttribute("nonce"))&&goog.NONCE_PATTERN_.test(s)?s:""},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(s){if(typeof s!="string"||!s||s.search(goog.VALID_MODULE_RE_)==-1)throw Error("Invalid module identifier");if(!goog.isInGoogModuleLoader_())throw Error("Module "+s+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");goog.moduleLoaderState_.moduleName=s},goog.module.get=function(s){return goog.module.getInternal_(s)},goog.module.getInternal_=function(s){return null},goog.ModuleType={ES6:"es6",GOOG:"goog"},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()},goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG},goog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var s=goog.global.$jscomp;return s?typeof s.getCurrentModulePath!="function"?!1:!!s.getCurrentModulePath():!1},goog.module.declareLegacyNamespace=function(){goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.declareModuleId=function(s){if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=s;else{var o=goog.global.$jscomp;if(!o||typeof o.getCurrentModulePath!="function")throw Error('Module with namespace "'+s+'" has been loaded incorrectly.');o=o.require(o.getCurrentModulePath()),goog.loadedModules_[s]={exports:o,type:goog.ModuleType.ES6,moduleId:s}}},goog.setTestOnly=function(s){if(goog.DISALLOW_TEST_ONLY_CODE)throw s=s||"",Error("Importing test-only code into non-debug environment"+(s?": "+s:"."))},goog.forwardDeclare=function(s){},goog.getObjectByName=function(s,o){s=s.split("."),o=o||goog.global;for(var et=0;et{const{canvas:it}=this;if(!it)return;const ot=it.getContext("webgl");this.webglContext=ot||void 0,this.lastDecodedFrameTime=void 0,this.lastReceivedFrameTime=void 0,this.hasReceivedKeyframe=!1,this.currentFrameIndex=void 0,!(!this.canvas||!this.webglContext)&&(this.yuvCanvas||(this.yuvCanvas=new YUVCanvas(this.webglContext)),this.moduleStartTime=Date.now())}),__publicField(this,"stop",()=>{var it;(it=this.decoder)==null||it.release(),this.webglContext=void 0,this.decoderQueueLocked=!1}),__publicField(this,"reset",()=>{this.retries=0,this.restart()}),__publicField(this,"notifyWarningTextChanged",()=>{var it;(it=this.onWarningTextChanged)==null||it.call(this,this.getWarningText())}),__publicField(this,"restart",()=>{console.info("Restarting decoder"),console.info("BytestreamPlayer restarting",__spreadProps(__spreadValues({},this.trackInfo),{Restart:this.timesRestarted})),this.frameQueue=[],this.decoderQueue=[],this.stop(),this.decoder=new H264Decoder(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),this.start(),this.retries++,this.timesRestarted++}),__publicField(this,"onTrackTick",()=>{if(this.numFramesDecoded===0){if(this.lastDecodedFrameTime===void 0){const at=Date.now();console.info("BytestreamPlayer waiting for video",__spreadProps(__spreadValues({},this.trackInfo),{"Time Waited":at-this.moduleCreateTime}))}return}this.numFramesReceived/this.numFramesDecoded>maxDropRatio&&this.warnPerformanceProblems(),this.numFramesReceived=0,this.numFramesDecoded=0;const it=Array.from(this.frameCheckpointMap.entries()).reduce((at,[lt,ut])=>{var dt;return!this.currentFrameIndex||lt>this.currentFrameIndex-60||ut==="FrameDrawn"||(at[ut]=((dt=at[ut])!=null?dt:0)+1,this.frameCheckpointMap.delete(lt)),at},{});Object.keys(it).map(at=>{console.info("BytestreamPlayer Frame Dropped",__spreadProps(__spreadValues({},this.trackInfo),{"Num Dropped":it[at],"Frame State":at}))});const{minJitter:ot,maxJitter:st}=this;ot&&st&&(console.info("BytestreamPlayer Jitter",__spreadProps(__spreadValues({},this.trackInfo),{minJitter:ot,maxJitter:st})),this.minJitter=void 0,this.maxJitter=void 0)}),__publicField(this,"onTick",()=>{var it;const{lastReceivedFrameTime:ot,lastDecodedFrameTime:st,moduleStartTime:at,noSignal:lt,retries:ut}=this,dt=new Date().getTime();lt&&(this.lastNoSignalTime=dt),this.overWaitingThreshold=dt-at>noSignalThreshold;const ht=dt-at>decoderNotWorkingThreshold;if(!st){ot&&ht&&utnoSignalThreshold&&ctwarnPerformanceThreshold&&this.warnPerformanceProblems(),ct>noSignalThreshold&&(this.lostSignal=!0)}this.overWaitingThreshold&&(this.waitingForDecoder||this.noSignal||this.lostSignal)&&((it=this.onCanvasDrawerWarning)==null||it.call(this,"ShouldDisableControl"))}),__publicField(this,"receiveEncodedFrame",it=>{if(!it)return;const ot=it.index;if(ot&&this.frameCheckpointMap.set(ot,"FrameReceived"),!(!it||!this.canvas||!this.webglContext)){if(this.isKeyframe(it),!this.hasReceivedKeyframe)return console.info("Dropping frame because no keyframe detected"),!1;this.lastReceivedFrameTime===void 0&&console.debug("Received first frame on bytestream player",__spreadValues({},this.trackInfo)),this.checkOrder(it),this.numFramesReceived++,this.lastReceivedFrameTime=Date.now(),this.lostSignal&&this.restart(),this.noSignal=!1,this.lostSignal=!1,this.frameQueue.push(it),ot&&this.frameCheckpointMap.set(ot,"FrameQueued"),this.frameQueue.length>maxQueueSize&&(this.frameQueue=this.frameQueue.filter(st=>this.isKeyframe(st))),this.frameQueue.length>maxQueueSize&&(this.frameQueue=[],this.decoderQueue=[]),this.decodeNextFrame()}}),__publicField(this,"onDecoderError",it=>{this.frameQueue=[],this.decoderQueue=[],this.hasReceivedKeyframe=!1,console.info("BytestreamPlayer decode error",__spreadProps(__spreadValues({},this.trackInfo),{"Frame Index":it}))}),__publicField(this,"onReceiveDecodedFrame",it=>{var ot,st;const{canvas:at,yuvCanvas:lt,decoderQueue:ut}=this,{timestamp:dt,yuv:ht,height:ct,width:pt,index:ft}=it;this.frameCheckpointMap.set(ft,"FrameDecoded"),this.numFramesDecoded++;const gt=Date.now();if(this.lastDecodedFrameTime===void 0&&console.info("BytestreamPlayer started video",__spreadProps(__spreadValues({},this.trackInfo),{"Time Until Video":gt-this.moduleCreateTime})),this.lastDecodedFrameTime=gt,this.waitingForDecoder=!1,this.decoderQueue=ut.filter(Ft=>gt-Ftduration$1$1.second||!lt||!at||ct===0||pt===0)return;ct!==at.height&&(at.height=ct,lt.height=ct),pt!==at.width&&(at.width=pt,lt.width=pt);const yt=lt.draw(ht),Ut=Date.now();if(this.lastDrawnFrameTime){const Ft=Ut-this.lastDrawnFrameTime;this.minJitter=Math.min(Ft,(ot=this.minJitter)!=null?ot:Number.MAX_SAFE_INTEGER),this.maxJitter=Math.max(Ft,(st=this.maxJitter)!=null?st:0)}this.lastDrawnFrameTime=Ut,this.frameCheckpointMap.set(ft,"FrameDrawn"),yt===0&&(this.webglYUVSupported=!0),yt===hardwareIncompatibleErrorCode&&(this.webglYUVSupported=!1),this.frameQueue.length>0&&this.decodeNextFrame()}),this.workerFactory=o,this.onWebglYUVSupportedChanged=et,this.onWarningTextChanged=tt,this.onCanvasDrawerWarning=nt,this.trackInfo=rt,this.decoder=new H264Decoder(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),setInterval(this.onTick,duration$1$1.millisecond*200),setInterval(this.onTrackTick,duration$1$1.second*5)}get waitingForDecoder(){return this._waitingForDecoder}set waitingForDecoder(o){this._waitingForDecoder=o,this.notifyWarningTextChanged()}get noSignal(){return this._noSignal}set noSignal(o){this._noSignal=o,this.notifyWarningTextChanged()}get lostSignal(){return this._lostSignal}set lostSignal(o){this._lostSignal=o,this.notifyWarningTextChanged()}get overWaitingThreshold(){return this._overWaitingThreshold}set overWaitingThreshold(o){this._overWaitingThreshold=o,this.notifyWarningTextChanged()}get retries(){return this._retries}set retries(o){this._retries=o,this.notifyWarningTextChanged()}get webglYUVSupported(){return this._webglYUVSupported}set webglYUVSupported(o){var et;this._webglYUVSupported=o,(et=this.onWebglYUVSupportedChanged)==null||et.call(this,o),this.notifyWarningTextChanged()}setCanvas(o){this.canvas=o}getWarningText(){var o;const{waitingForDecoder:et,noSignal:tt,overWaitingThreshold:nt,lostSignal:rt,retries:it,webglYUVSupported:ot}=this,st=ot===!1,at=et?it===numRetries?"Decoder failed to start":"Starting decoder":void 0,lt=st?"Hardware decoding not supported on this device":void 0;return(o=lt??(rt?"Lost signal":tt?nt?"No signal":"Waiting for signal":void 0))!=null?o:at}decodeNextFrame(){if(this.decoderQueueLocked&&(this.decodeNextFrameAttempted=!0),this.decoderQueueLocked=!0,this.decoderQueue.length>maxQueueSize){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const o=this.frameQueue.shift();if(!o){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const et=Date.now();this.frameCheckpointMap.set(o.index,"FrameSentToDecoder"),this.decoder.post(et,o.frame_data,o.flags,o.index),this.decoderQueue.push(et),this.decoderQueueLocked=!1,this.decodeNextFrameAttempted&&(this.decodeNextFrameAttempted=!1,this.decodeNextFrame())}warnPerformanceProblems(){var o;this.lastDecodedFrameTime&&this.overWaitingThreshold&&!this.lostSignal&&!this.noSignal&&((o=this.onCanvasDrawerWarning)==null||o.call(this,"ShouldDegradeVideo"))}checkOrder(o){if(this.currentFrameIndex!==void 0&&o.indexDate.now()?!1:nt>this.medianFrameSize?(this.hasReceivedKeyframe=!0,!0):!1}}const encodedJs$2="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbihTKXt0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShTKTpTKCl9KShmdW5jdGlvbigpe2NvbnN0IEo9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07dmFyIHk9e30sRj17fSxhPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBHPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7ZnVuY3Rpb24gaChBKXtsZXQgST1BLmxlbmd0aDtBW0EubGVuZ3RoLTJdPT09Ij0iP0ktPTI6QVtBLmxlbmd0aC0xXT09PSI9IiYmSS0tO2NvbnN0IGc9SS80KjN8MCxCPW5ldyBVaW50OEFycmF5KGcpO2ZvcihsZXQgUT0wLEM9MDtRPGc7USs9Myl7Y29uc3QgRD1HLmluZGV4T2YoQVtDKytdKSxFPUcuaW5kZXhPZihBW0MrK10pO2lmKEJbUV09RDw8MnxFPj40LEM9PT1JKWJyZWFrO2NvbnN0IHc9Ry5pbmRleE9mKEFbQysrXXx8Ij0iKTtpZihCW1ErMV09KEUmMTUpPDw0fHc+PjIsQz09PUkpYnJlYWs7Y29uc3Qgbz1HLmluZGV4T2YoQVtDKytdfHwiPSIpO0JbUSsyXT0odyYzKTw8NnxvfXJldHVybiBCfWEuZGVjb2RlPWgsT2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IEw9IkFHRnpiUUVBQUFBQmx3RVRZQUovZndGL1lBUi9mMzkvQVg5Z0FuOS9BR0FEZjM5L0FYOWdBWDhBWUFsL2YzOS9mMzkvZjM4QVlBRi9BWDlnQkg5L2YzOEFZQVovZjM5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUFOL2YzOEFZQVYvZjM5L2Z3Ri9ZQUFBWUFWL2YzOS9md0JnQm45L2YzOS9md0JnQ245L2YzOS9mMzkvZjM4QVlBQUJmMkFIZjM5L2YzOS9md0YvWUFoL2YzOS9mMzkvZndGL0FqQURCR2d5TmpRR2JXVnRZM0I1QUFNRWFESTJOQVp5WlhOcGVtVUFCZ1JvTWpZMEJtMWxiVzl5ZVFJQmdBS0FnQUlEWTJJQUFBUUFBUU1LQVFZQUJRTUZCZ2NBQndZQUF3NERCd2NGQWdBQ0F3UUFCUVVGQlFvRUFnUUpBUWNBQXdZR0FnSUJCZ1FEQWdJQkN3RUJBd01MRFFJQkFBQUNDUWtKRHdJRkJRQUJDZ0FTQ3hFSUNBY0lDQWNFQVFRSUNBWUJFQWdBQVFZSkFYOEJRYkRFd0FJTEJ5WUVCbTFoYkd4dll3QUtDV2d5TmpSaGJHeHZZd0JnQm1SbFkyOWtaUUJoQkdsdWFYUUFZZ3IycFFWaXdBSUJBbjhnQUJBUElnSkJmMHdFUUNBQVFRRVFDeG9nQVVFQU5nSUFRUUFQQ3dKQUFrQWdBa0dBZ0lDQUJFOEVRQ0FBUVFNUUMwRi9SZ1JBUVFFUEN5QUJJQUpCSFhaQkFYRkJBV28yQWdBTUFRc2dBa0dBZ0lDQUFrOEVRQ0FBUVFVUUMwRi9SZ1JBUVFFUEN5QUJJQUpCRzNaQkEzRkJBMm8yQWdBTUFRc2dBa0dBZ0lDQUFVOEVRQ0FBUVFjUUMwRi9SZ1JBUVFFUEN5QUJJQUpCR1haQkIzRkJCMm8yQWdBTUFRc2dBaEF2SWdOQkJHb2lBa0VnUmdSQUlBRkJBRFlDQUNBQVFTQVFDeHBCQVNFQ0lBQkJBUkFEUVFGSERRSWdBQkFQSVFNZ0FFRWdFQXRCZjBZTkFpQURRUUZMRFFJZ0EwRUJhd1JBSUFGQmZ6WUNBQXdDQ3lBQlFYODJBZ0JCQVE4TElBQWdBMEVGYWhBTEdpQUFJQUlRQXlJQVFYOUdCRUJCQVE4TElBRWdBRUYvSUFKMFFYOXphallDQUF0QkFDRUNDeUFDQzRnQ0FRZC9JQUFvQWdRaEJBSkFJQUFvQWd4QkEzUWlCeUFBS0FJUUlnaHJJZ0pCSUU0RVFDQUVLQUFBSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUVESUFBb0FnZ2lBa1VOQVNBRElBSjBJQVF0QUFSQkNDQUNhM1p5SVFNTUFRc2dBa0VCU0FSQURBRUxJQVF0QUFBZ0FDZ0NDQ0lGUVJocUlnWjBJUU1nQWlBRmFrRjRhaUlDUVFGSURRQURRQ0FFTFFBQklBWkJlR29pQm5RZ0EzSWhBeUFDUVFoS0lRVWdCRUVCYWlFRUlBSkJlR29oQWlBRkRRQUxDeUFBSUFFZ0NHb2lCRFlDRUNBQUlBUkJCM0UyQWdoQmZ5RUNJQVFnQjAwRWZ5QUFJQUFvQWdBZ0JFRURkbW8yQWdRZ0EwRWdJQUZyZGdWQmZ3c0xxZzBCQjM4Q1FDQUFSUTBBSUFCQmVHb2lBeUFBUVh4cUtBSUFJZ0ZCZUhFaUFHb2hCUUpBSUFGQkFYRU5BQ0FCUVFOeFJRMEJJQU1nQXlnQ0FDSUNheUlEUWNUQUFDZ0NBQ0lFU1EwQklBQWdBbW9oQUNBRFFjakFBQ2dDQUVjRVFDQUNRZjhCVFFSQUlBTW9BZ2dpQkNBQ1FRTjJJZ0pCQTNSQjNNQUFha2NhSUFRZ0F5Z0NEQ0lCUmdSQVFiVEFBRUcwd0FBb0FnQkJmaUFDZDNFMkFnQU1Bd3NnQkNBQk5nSU1JQUVnQkRZQ0NBd0NDeUFES0FJWUlRWUNRQ0FESUFNb0Fnd2lBVWNFUUNBRUlBTW9BZ2dpQWswRVFDQUNLQUlNR2dzZ0FpQUJOZ0lNSUFFZ0FqWUNDQXdCQ3dKQUlBTkJGR29pQWlnQ0FDSUVEUUFnQTBFUWFpSUNLQUlBSWdRTkFFRUFJUUVNQVFzRFFDQUNJUWNnQkNJQlFSUnFJZ0lvQWdBaUJBMEFJQUZCRUdvaEFpQUJLQUlRSWdRTkFBc2dCMEVBTmdJQUN5QUdSUTBCQWtBZ0F5QURLQUljSWdKQkFuUkI1TUlBYWlJRUtBSUFSZ1JBSUFRZ0FUWUNBQ0FCRFFGQnVNQUFRYmpBQUNnQ0FFRitJQUozY1RZQ0FBd0RDeUFHUVJCQkZDQUdLQUlRSUFOR0cyb2dBVFlDQUNBQlJRMENDeUFCSUFZMkFoZ2dBeWdDRUNJQ0JFQWdBU0FDTmdJUUlBSWdBVFlDR0FzZ0F5Z0NGQ0lDUlEwQklBRWdBallDRkNBQ0lBRTJBaGdNQVFzZ0JTZ0NCQ0lCUVFOeFFRTkhEUUJCdk1BQUlBQTJBZ0FnQlNBQlFYNXhOZ0lFSUFNZ0FFRUJjallDQkNBQUlBTnFJQUEyQWdBUEN5QUZJQU5ORFFBZ0JTZ0NCQ0lCUVFGeFJRMEFBa0FnQVVFQ2NVVUVRQ0FGUWN6QUFDZ0NBRVlFUUVITXdBQWdBellDQUVIQXdBQkJ3TUFBS0FJQUlBQnFJZ0EyQWdBZ0F5QUFRUUZ5TmdJRUlBTkJ5TUFBS0FJQVJ3MERRYnpBQUVFQU5nSUFRY2pBQUVFQU5nSUFEd3NnQlVISXdBQW9BZ0JHQkVCQnlNQUFJQU0yQWdCQnZNQUFRYnpBQUNnQ0FDQUFhaUlBTmdJQUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFDUUNBQlFmOEJUUVJBSUFVb0Fnd2hBaUFGS0FJSUlnUWdBVUVEZGlJQlFRTjBRZHpBQUdvaUIwY0VRRUhFd0FBb0FnQWFDeUFDSUFSR0JFQkJ0TUFBUWJUQUFDZ0NBRUYrSUFGM2NUWUNBQXdDQ3lBQ0lBZEhCRUJCeE1BQUtBSUFHZ3NnQkNBQ05nSU1JQUlnQkRZQ0NBd0JDeUFGS0FJWUlRWUNRQ0FGSUFVb0Fnd2lBVWNFUUVIRXdBQW9BZ0FnQlNnQ0NDSUNUUVJBSUFJb0Fnd2FDeUFDSUFFMkFnd2dBU0FDTmdJSURBRUxBa0FnQlVFVWFpSUNLQUlBSWdRTkFDQUZRUkJxSWdJb0FnQWlCQTBBUVFBaEFRd0JDd05BSUFJaEJ5QUVJZ0ZCRkdvaUFpZ0NBQ0lFRFFBZ0FVRVFhaUVDSUFFb0FoQWlCQTBBQ3lBSFFRQTJBZ0FMSUFaRkRRQUNRQ0FGSUFVb0Fod2lBa0VDZEVIa3dnQnFJZ1FvQWdCR0JFQWdCQ0FCTmdJQUlBRU5BVUc0d0FCQnVNQUFLQUlBUVg0Z0FuZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ0lFUUNBQklBSTJBaEFnQWlBQk5nSVlDeUFGS0FJVUlnSkZEUUFnQVNBQ05nSVVJQUlnQVRZQ0dBc2dBeUFBUVFGeU5nSUVJQUFnQTJvZ0FEWUNBQ0FEUWNqQUFDZ0NBRWNOQVVHOHdBQWdBRFlDQUE4TElBVWdBVUYrY1RZQ0JDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFDeUFBUWY4QlRRUkFJQUJCQTNZaUFVRURkRUhjd0FCcUlRQUNmMEcwd0FBb0FnQWlBa0VCSUFGMElnRnhSUVJBUWJUQUFDQUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBaUFBSUFNMkFnZ2dBaUFETmdJTUlBTWdBRFlDRENBRElBSTJBZ2dQQ3lBRFFnQTNBaEFnQXdKL1FRQWdBRUVJZGlJQlJRMEFHa0VmSUFCQi8vLy9CMHNOQUJvZ0FTQUJRWUQrUDJwQkVIWkJDSEVpQVhRaUFpQUNRWURnSDJwQkVIWkJCSEVpQW5RaUJDQUVRWUNBRDJwQkVIWkJBbkVpQkhSQkQzWWdBU0FDY2lBRWNtc2lBVUVCZENBQUlBRkJGV3AyUVFGeGNrRWNhZ3NpQWpZQ0hDQUNRUUowUWVUQ0FHb2hBUUpBQWtBQ1FFRzR3QUFvQWdBaUJFRUJJQUowSWdkeFJRUkFRYmpBQUNBRUlBZHlOZ0lBSUFFZ0F6WUNBQ0FESUFFMkFoZ01BUXNnQUVFQVFSa2dBa0VCZG1zZ0FrRWZSaHQwSVFJZ0FTZ0NBQ0VCQTBBZ0FTSUVLQUlFUVhoeElBQkdEUUlnQWtFZGRpRUJJQUpCQVhRaEFpQUVJQUZCQkhGcUlnZEJFR29vQWdBaUFRMEFDeUFISUFNMkFoQWdBeUFFTmdJWUN5QURJQU0yQWd3Z0F5QUROZ0lJREFFTElBUW9BZ2dpQUNBRE5nSU1JQVFnQXpZQ0NDQURRUUEyQWhnZ0F5QUVOZ0lNSUFNZ0FEWUNDQXRCMU1BQVFkVEFBQ2dDQUVGL2FpSUFOZ0lBSUFBTkFFSDh3d0FoQXdOQUlBTW9BZ0FpQUVFSWFpRURJQUFOQUF0QjFNQUFRWDgyQWdBTEMzUUJBbjhqQUVFUWF5SUNKQUFnQWtFQU5nSU1JQUFnQWtFTWFoQUNJUUFDZnlBQ0tBSU1JZ05CZjBZRVFFRUJJQUJGRFFFYUlBRkJnSUNBZ0hnMkFnQkJBQXdCQzBFQklBQU5BQm9nQVNBRFFRRnFRUUYySWdGQkFDQUJheUFEUVFGeEd6WUNBRUVBQ3lFQUlBSkJFR29rQUNBQUM4Y0xBUlIvSUFGQm9EMXFMUUFBUVF4c0lnWkIxRHhxS0FJQUlRVWdCa0hRUEdvb0FnQWdBVUdRUEdvdEFBQWlCM1FoQkNBQ1JRUkFJQUFnQUNnQ0FDQUViRFlDQUFzZ0JTQUhkQ0VCQWtBQ1FDQURRWnovQTNFRVFDQUFJQVpCMkR4cUtBSUFJQWQwSWdNZ0FDZ0NQR3cyQWp3Z0FDQUFLQUk0SUFGc05nSTRRUUVoQWlBQUlBQW9BaXdnQkd3aUJ5QUFLQUlNSUFSc0lnVnFJZ2tnQUNnQ0lDQUJiQ0lLSUFBb0FqUWdBV3dpRDBFQmRXb2lFR3NpQmpZQ0xDQUFLQUlvSVFnZ0FDQUZJQWRySWdVZ0NrRUJkU0FQYXlJS2F5SUhOZ0lvSUFBb0FpUWhEaUFBSUFVZ0Ntb2lCVFlDSkNBQUlBQW9BaHdnQVd3aUR5QUFLQUlJSUFGc0lndHFJaE1nQUNnQ0VDQURiQ0lSSUFBb0FqQWdBMndpREVFQmRXb2lGV3NpQ2pZQ0hDQUFLQUlZSVEwZ0FDQUxJQTlySWdzZ0VVRUJkU0FNYXlJUmF5SVBOZ0lZSUFBb0FoUWhEQ0FBSUFzZ0VXb2lDellDRkNBQUlBUWdER3dpQkNBQUtBSUFJZ3hxSWhRZ0FDZ0NCQ0FCYkNJU0lBRWdEV3dpRFVFQmRXb2lGbXNpRVRZQ0RDQUFJQXdnQkdzaUJDQVNRUUYxSUExcklnMXJJZ3cyQWdnZ0FDQUVJQTFxSWcwMkFnUWdBQ0FCSUE1c0lnUWdBQ2dDT0NJT2F5SVNJQU1nQ0d3aUNFRUJkU0FBS0FJOEloZHJJZ05ySWdFMkFqZ2dBQ0FESUJKcUlnTTJBalFnQUNBRUlBNXFJZzRnRjBFQmRTQUlhaUlJYXlJRU5nSThJQUFnRkNBV2FpSVVJQWtnRUdvaUVHdEJJR29pRWlBSUlBNXFJZ2tnRXlBVmFpSUlRUUYxSWc1cmFrRUdkU0lUTmdJZ0lBQWdFaUFPSUFscmFrRUdkU0lPTmdJUUlBQWdFQ0FVYWtFZ2FpSVFJQWxCQVhVZ0NHb2lDV3RCQm5VaUNEWUNNQ0FBSUFrZ0VHcEJCblVpQ1RZQ0FDQUpRWUFFYWlBT1FZQUVhbkpCL3dkTERRSWdDRUdBQkdvZ0UwR0FCR3B5UWY4SFN3MENJQUFnQlNBTmFrRWdhaUlKSUFOQkFYVWdDMm9pRUd0QkJuVWlDRFlDTkNBQUlBMGdCV3RCSUdvaUJTQURJQXRCQVhVaUMydHFRUVoxSWcwMkFpUWdBQ0FGSUFzZ0EydHFRUVoxSWdNMkFoUWdBQ0FKSUJCcVFRWjFJZ1UyQWdRZ0JVR0FCR29nQTBHQUJHcHlRZjhIU3cwQ0lBaEJnQVJxSUExQmdBUnFja0gvQjBzTkFpQUFJQWNnREdwQklHb2lBeUFCUVFGMUlBOXFJZ1ZyUVFaMUlnczJBamdnQUNBTUlBZHJRU0JxSWdjZ0FTQVBRUUYxSWc5cmFrRUdkU0lNTmdJb0lBQWdCeUFQSUFGcmFrRUdkU0lCTmdJWUlBQWdBeUFGYWtFR2RTSUROZ0lJSUFOQmdBUnFJQUZCZ0FScWNrSC9CMHNOQWlBTFFZQUVhaUFNUVlBRWFuSkIvd2RMRFFJZ0FDQUdJQkZxUVNCcUlnRWdCRUVCZFNBS2FpSURhMEVHZFNJSE5nSThJQUFnRVNBR2EwRWdhaUlHSUFRZ0NrRUJkU0lGYTJwQkJuVWlDallDTENBQUlBWWdCU0FFYTJwQkJuVWlCRFlDSENBQUlBRWdBMnBCQm5VaUFEWUNEQ0FBUVlBRWFpQUVRWUFFYW5KQi93ZExEUUlnQjBHQUJHb2dDa0dBQkdweVFmOEhUUTBCREFJTElBTkI0Z0J4UlFSQVFRRWhBaUFBS0FJQVFTQnFRUVoxSWdGQmdBUnFRZjhIU3cwQ0lBQWdBVFlDT0NBQUlBRTJBandnQUNBQk5nSTBJQUFnQVRZQ01DQUFJQUUyQWl3Z0FDQUJOZ0lvSUFBZ0FUWUNKQ0FBSUFFMkFpQWdBQ0FCTmdJY0lBQWdBVFlDR0NBQUlBRTJBaFFnQUNBQk5nSVFJQUFnQVRZQ0RDQUFJQUUyQWdnZ0FDQUJOZ0lFSUFBZ0FUWUNBQXdCQzBFQklRSWdBQ0FBS0FJRUlBRnNJZ2NnQUNnQ0dDQUJiQ0lHUVFGMWFpSURJQUFvQWdBaUJTQUFLQUlVSUFSc0lnUnFJZ3BxUVNCcVFRWjFJZ0UyQWpBZ0FDQUtJQU5yUVNCcVFRWjFJZ00yQWd3Z0FDQUZJQVJySWdVZ0JpQUhRUUYxSWdkcmFrRWdha0VHZFNJRU5nSUlJQUFnQnlBR2F5QUZha0VnYWtFR2RTSUdOZ0lFSUFBZ0FUWUNBQ0FBSUFFMkFpQWdBQ0FHTmdJMElBQWdBVFlDRUNBQUlBWTJBaVFnQUNBRU5nSTRJQUFnQmpZQ0ZDQUFJQVEyQWlnZ0FDQUROZ0k4SUFBZ0JEWUNHQ0FBSUFNMkFpd2dBQ0FETmdJY0lBTkJnQVJxSUFGQmdBUnFJQVJCZ0FScUlBWkJnQVJxY25KeVFmOEhTdzBCQzBFQUlRSUxJQUlMOHdJQ0FuOEJmZ0pBSUFKRkRRQWdBQ0FDYWlJRFFYOXFJQUU2QUFBZ0FDQUJPZ0FBSUFKQkEwa05BQ0FEUVg1cUlBRTZBQUFnQUNBQk9nQUJJQU5CZldvZ0FUb0FBQ0FBSUFFNkFBSWdBa0VIU1EwQUlBTkJmR29nQVRvQUFDQUFJQUU2QUFNZ0FrRUpTUTBBSUFCQkFDQUFhMEVEY1NJRWFpSURJQUZCL3dGeFFZR0NoQWhzSWdFMkFnQWdBeUFDSUFSclFYeHhJZ1JxSWdKQmZHb2dBVFlDQUNBRVFRbEpEUUFnQXlBQk5nSUlJQU1nQVRZQ0JDQUNRWGhxSUFFMkFnQWdBa0YwYWlBQk5nSUFJQVJCR1VrTkFDQURJQUUyQWhnZ0F5QUJOZ0lVSUFNZ0FUWUNFQ0FESUFFMkFnd2dBa0Z3YWlBQk5nSUFJQUpCYkdvZ0FUWUNBQ0FDUVdocUlBRTJBZ0FnQWtGa2FpQUJOZ0lBSUFRZ0EwRUVjVUVZY2lJRWF5SUNRU0JKRFFBZ0FhMGlCVUlnaGlBRmhDRUZJQU1nQkdvaEFRTkFJQUVnQlRjREdDQUJJQVUzQXhBZ0FTQUZOd01JSUFFZ0JUY0RBQ0FCUVNCcUlRRWdBa0ZnYWlJQ1FSOUxEUUFMQ3lBQUMvSURBUU4vSUFFb0FnQWlBMEgvLy84SFJ3UkFJQUVvQWdRaEJDQUFJQUlnQWtFRGNTQUNRUkJKSWdJYlFRSjBJZ1ZCOENscUtBSUFRUkJCQ0NBQ0d5SUNiR29nQlVHd0tXb29BZ0JxSWdBZ0F5QUFMUUFBYWtHd0xtb3RBQUE2QUFBZ0FTZ0NDQ0VESUFBZ0JDQUFMUUFCYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VFSUFBZ0F5QUFMUUFDYWtHd0xtb3RBQUE2QUFJZ0FDQUVJQUF0QUFOcVFiQXVhaTBBQURvQUF5QUJLQUlVSVFNZ0FDQUNhaUlBSUFFb0FoQWdBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BaGdoQkNBQUlBTWdBQzBBQVdwQnNDNXFMUUFBT2dBQklBRW9BaHdoQXlBQUlBUWdBQzBBQW1wQnNDNXFMUUFBT2dBQ0lBQWdBeUFBTFFBRGFrR3dMbW90QUFBNkFBTWdBU2dDSkNFRElBQWdBbW9pQUNBQktBSWdJQUF0QUFCcVFiQXVhaTBBQURvQUFDQUJLQUlvSVFRZ0FDQURJQUF0QUFGcVFiQXVhaTBBQURvQUFTQUJLQUlzSVFNZ0FDQUVJQUF0QUFKcVFiQXVhaTBBQURvQUFpQUFJQU1nQUMwQUEycEJzQzVxTFFBQU9nQURJQUVvQWpRaEF5QUFJQUpxSWdBZ0FTZ0NNQ0FBTFFBQWFrR3dMbW90QUFBNkFBQWdBU2dDT0NFQ0lBQWdBeUFBTFFBQmFrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQWdBaUFBTFFBQ2FrR3dMbW90QUFBNkFBSWdBQ0FCSUFBdEFBTnFRYkF1YWkwQUFEb0FBd3NMMHhBQkRIOGpBRUdBQVdzaUNpUUFJQUFRRHlFRVFRRWhCUUpBQWtBQ2Z5QUNRUUZOQkVBZ0JFRUFTQTBDSUFSQkdYWkIvZ0J4UVlBSWFpQUVRWUNBZ09BQVR3MEJHaUFFUVJWMlFmNFBjVUhBQ0dvZ0JFR0FnSUFJVHcwQkdpQUVRUkYyUWY3L0FYRkJrQWxxSUFSQmdJQ0FBVThOQVJvZ0JFRVFka0VCZEVHUUNtb01BUXNnQWtFRFRRUkFJQVJCZjB3RVFFRUNRYUlRSUFSQmdJQ0FnQVJ4R3lFRkRBTUxJQVJCR1haQi9nQnhRZEFLYWlBRVFZQ0FnSUFCVHcwQkdpQUVRUloyUWY0SGNVR1FDMm9nQkVHQWdJQVFUdzBCR2lBRVFSRjJRZjcvQVhGQjBBdHFEQUVMSUFKQkIwMEVRQ0FFUVJwMklnSkJlR3BCT0VrRVFDQUNRUUYwUWRBTmFnd0NDeUFFUVJWMlFmNFBjVUhRRG1vTUFRc2dCRUVaZGtIK0FIRkIwQkJxSUFKQkVFME5BQm9nQkVFZGRpSUNCRUFnQWtFQmRFSFFFV29NQVFzZ0JFRVhka0grQTNGQjRCRnFDeThCQUNJRkRRQkJBU0VMREFFTFFRRWhDeUFGUVF0Mklna2dBMHNOQUVFZ0lBVkJIM0VpQm1zaEFnSkFJQWxGQkVBTUFRc2dCQ0FHZENFRUFrQWdCVUVGZGtFL2NTSU1SUVJBREFFTElBSWdERWtFUUNBQUlBWVFDMEYvUmcwRElBQVFEeUVFUVNBaEFnc2dCQ0FNZENFR1FRRWdERUYvYW5RaEJ5QUVRU0FnREd0MklRUURRQ0FLUVVCcklBaEJBblJxUVg5QkFTQUVJQWR4R3pZQ0FDQUlRUUZxSVFnZ0IwRUJkaUlIRFFBTElBSWdER3NoQWlBR0lRUUxJQWdnQ1VrRVFDQU1RUU5KSWc4Z0JVSC9yd0ZMY1NFRkEwQWdBa0VQVFFSQUlBQkJJQ0FDYXhBTFFYOUdCRUFNQlFzZ0FCQVBJUVJCSUNFQ0MwRUFJUVlDUUFKQUFuOENRQ0FFUVFCSURRQkJBU0VHSUFSQi8vLy8vd05MRFFCQkFpRUdJQVJCLy8vLy93RkxEUUJCQXlFR0lBUkIvLy8vL3dCTERRQkJCQ0VHSUFSQi8vLy9QMHNOQUVFRklRWWdCRUgvLy84ZlN3MEFRUVloQmlBRVFmLy8vdzlMRFFCQkJ5RUdJQVJCLy8vL0Iwc05BRUVJSVFZZ0JFSC8vLzhEU3cwQVFRa2hCaUFFUWYvLy93RkxEUUJCQ2lFR0lBUkIvLy8vQUVzTkFFRUxJUVlnQkVILy96OUxEUUJCRENFR0lBUkIvLzhmU3cwQVFRMGhCaUFFUWYvL0Qwc05BQUovQWtBZ0JFSC8vd2ROQkVBZ0JFR0FnSHh4UVlDQUJFWU5BUXdLQ3lBRlFRUWdCUnNoQmlBRVFROTBJUVJCRGlFSElBSkJjV29NQVFzZ0JVRUJJQVViSVFVZ0JFRVFkQ0VFUVF3aEJrRVBJUWNnQWtGd2Fnc2hBaUFISUFWMElRY2dCVVVNQVFzZ0JpQUZkQ0VIUVFFaERpQUNJQVpCQVdvaUJtc2hBaUFFSUFaMElRUWdCVVVOQVNBRklRWkJBQXNoRGlBQ0lBWlBCSDhnQkFVZ0FFRWdJQUpyRUF0QmYwWUVRQXdIQzBFZ0lRSWdBQkFQQ3lFTklBSWdCbXNoQWlBTklBWjBJUVFnRFVFZ0lBWnJkaUFIYWlFSERBRUxRUUFoQlFzZ0NrRkFheUFJUVFKMGFrRUFJQWRCQW1vZ0J5QUlJQXhHR3lBSElBOGJJZzFCQW1wQkFYWWlCbXNnQmlBTlFRRnhHellDQUVFQklBVWdEaHNpQlNBRlFRWkpJQVpCQXlBRlFYOXFkRXB4YWlFRklBaEJBV29pQ0NBSlJ3MEFDd3RCQUNFSEFrQWdDU0FEVHdSQVFRQWhDQXdCQ3dKQUlBSkJDRXNFUUNBQ0lRVU1BUXRCSUNFRklBQkJJQ0FDYXhBTFFYOUdEUU1nQUJBUElRUUxBa0FDUUFKL0FrQWdBMEVFUndSQUlBbEJmMm9pQWtFTlN3MERBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBa0VCYXc0TkFBRUNBd1FGQmdjSUNRb0xEQTRMSUFSQkduWkI0QkpxREE0TElBUkJHblpCb0JOcURBMExJQVJCRzNaQjRCTnFEQXdMSUFSQkczWkJnQlJxREFzTElBUkJHblpCb0JScURBb0xJQVJCR25aQjRCUnFEQWtMSUFSQkduWkJvQlZxREFnTElBUkJHblpCNEJWcURBY0xJQVJCRzNaQm9CWnFEQVlMSUFSQkhIWkJ3QlpxREFVTElBUkJISFpCMEJacURBUUxJQVJCSFhaQjRCWnFEQU1MSUFSQkhuWkI2QlpxREFJTElBUkJBRWdFUUVFQklRSU1CQXRCRVNFQ0lBbEJBMFlOQTBFU0lRSWdCRUgvLy8vL0Ewc05BMEVpSVFJZ0NVRUNSZzBEUVNOQk15QUVRZi8vLy84QlN4c2hBZ3dEQ3lBRVFSdDJRYUFTYWlBRVFSZDJRY0FTYWlBRVFmLy8vLzhBU3hzTExRQUFJZ0lOQVF3RUMwRVJRUUVnQkVFQVNCc2hBZ3NnQWtFRWRpRUlJQVVnQWtFUGNTSURheUVDSUFRZ0EzUWhCQXNnQ1VGL2FpSURCRUFEUUFKL0lBZ0VRQ0FDUVFwTkJFQWdBRUVnSUFKckVBdEJmMFlFUUF3SEN5QUFFQThoQkVFZ0lRSUxBa0FDZndKQUlBaEJmMm9pQlVFRlRRUkFBa0FDUUFKQUFrQUNRQ0FGUVFGckRnVUFBUUlEQkFZTElBUkJIblpCN2hacURBWUxJQVJCSG5aQjhoWnFEQVVMSUFSQkhYWkI5aFpxREFRTElBUkJIWFpCL2hacURBTUxJQVJCSFhaQmhoZHFEQUlMQW45Qjh3QWdCRUVaZGtId0FIRnJJQVJCZ0lDQWdBSlBEUUFhUWZRQUlBUkIvLy8vL3dCTERRQWFRWVVCSUFSQi8vLy9QMHNOQUJwQmxnRWdCRUgvLy84ZlN3MEFHa0duQVNBRVFmLy8vdzlMRFFBYVFiZ0JJQVJCLy8vL0Iwc05BQnBCeVFFZ0JFSC8vLzhEU3cwQUdrSGFBU0FFUWYvLy93RkxEUUFhUVFCQjZ3RWdCRUdBZ0lBQlNSc0xJZ1ZCQkhZZ0NFME5BZ3dJQ3lBRVFSOTJRZXdXYWdzdEFBQWhCUXNnQlVVRVFBd0dDeUFLSUFkQkFuUnFJQVZCQkhZaUJrRUJhallDQUNBQ0lBVkJEM0VpQldzaEFpQUVJQVYwSVFRZ0NDQUdhd3dCQ3lBS0lBZEJBblJxUVFFMkFnQkJBQXNoQ0NBSFFRRnFJZ2NnQTBjTkFBc2dBU0FJUVFKMGFpQUtRVUJySUFOQkFuUnFLQUlBTmdJQUlBbEJmbW9oQlVFQklBaDBJUWNEUUNBQklBb2dCU0lEUVFKMElnVnFLQUlBSUFocUlnaEJBblJxSUFwQlFHc2dCV29vQWdBMkFnQWdBMEYvYWlFRlFRRWdDSFFnQjNJaEJ5QUREUUFMREFFTElBRWdDRUVDZEdvZ0NrRkFheUFEUVFKMGFpZ0NBRFlDQUVFQklBaDBJUWNMSUFCQklDQUNheEFMRFFBZ0IwRVFkQ0FKUVFSMGNpRUxDeUFLUVlBQmFpUUFJQXNMelM0QkMzOGpBRUVRYXlJTEpBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCdE1BQUtBSUFJZ1pCRUNBQVFRdHFRWGh4SUFCQkMwa2JJZ1ZCQTNZaUFIWWlBVUVEY1FSQUlBRkJmM05CQVhFZ0FHb2lBa0VEZENJRVFlVEFBR29vQWdBaUFVRUlhaUVBQWtBZ0FTZ0NDQ0lESUFSQjNNQUFhaUlFUmdSQVFiVEFBQ0FHUVg0Z0FuZHhOZ0lBREFFTFFjVEFBQ2dDQUJvZ0F5QUVOZ0lNSUFRZ0F6WUNDQXNnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1EQXNnQlVHOHdBQW9BZ0FpQ0UwTkFTQUJCRUFDUUVFQ0lBQjBJZ0pCQUNBQ2EzSWdBU0FBZEhFaUFFRUFJQUJyY1VGL2FpSUFJQUJCREhaQkVIRWlBSFlpQVVFRmRrRUljU0lDSUFCeUlBRWdBbllpQUVFQ2RrRUVjU0lCY2lBQUlBRjJJZ0JCQVhaQkFuRWlBWElnQUNBQmRpSUFRUUYyUVFGeElnRnlJQUFnQVhacUlnSkJBM1FpQTBIa3dBQnFLQUlBSWdFb0FnZ2lBQ0FEUWR6QUFHb2lBMFlFUUVHMHdBQWdCa0YrSUFKM2NTSUdOZ0lBREFFTFFjVEFBQ2dDQUJvZ0FDQUROZ0lNSUFNZ0FEWUNDQXNnQVVFSWFpRUFJQUVnQlVFRGNqWUNCQ0FCSUFWcUlnY2dBa0VEZENJQ0lBVnJJZ05CQVhJMkFnUWdBU0FDYWlBRE5nSUFJQWdFUUNBSVFRTjJJZ1JCQTNSQjNNQUFhaUVCUWNqQUFDZ0NBQ0VDQW44Z0JrRUJJQVIwSWdSeFJRUkFRYlRBQUNBRUlBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEJDQUJJQUkyQWdnZ0JDQUNOZ0lNSUFJZ0FUWUNEQ0FDSUFRMkFnZ0xRY2pBQUNBSE5nSUFRYnpBQUNBRE5nSUFEQXdMUWJqQUFDZ0NBQ0lLUlEwQklBcEJBQ0FLYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQWlBQWNpQUJJQUoySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJZ0VvQWdSQmVIRWdCV3NoQXlBQklRSURRQUpBSUFJb0FoQWlBRVVFUUNBQ0tBSVVJZ0JGRFFFTElBQW9BZ1JCZUhFZ0JXc2lBaUFESUFJZ0Ewa2lBaHNoQXlBQUlBRWdBaHNoQVNBQUlRSU1BUXNMSUFFb0FoZ2hDU0FCSUFFb0Fnd2lCRWNFUUVIRXdBQW9BZ0FnQVNnQ0NDSUFUUVJBSUFBb0Fnd2FDeUFBSUFRMkFnd2dCQ0FBTmdJSURBc0xJQUZCRkdvaUFpZ0NBQ0lBUlFSQUlBRW9BaEFpQUVVTkF5QUJRUkJxSVFJTEEwQWdBaUVISUFBaUJFRVVhaUlDS0FJQUlnQU5BQ0FFUVJCcUlRSWdCQ2dDRUNJQURRQUxJQWRCQURZQ0FBd0tDMEYvSVFVZ0FFRy9mMHNOQUNBQVFRdHFJZ0JCZUhFaEJVRzR3QUFvQWdBaUIwVU5BRUVBSUFWcklRSUNRQUpBQWtBQ2YwRUFJQUJCQ0hZaUFFVU5BQnBCSHlBRlFmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnTWdBMEdBZ0E5cVFSQjJRUUp4SWdOMFFROTJJQUFnQVhJZ0EzSnJJZ0JCQVhRZ0JTQUFRUlZxZGtFQmNYSkJIR29MSWdoQkFuUkI1TUlBYWlnQ0FDSURSUVJBUVFBaEFBd0JDeUFGUVFCQkdTQUlRUUYyYXlBSVFSOUdHM1FoQVVFQUlRQURRQUpBSUFNb0FnUkJlSEVnQldzaUJpQUNUdzBBSUFNaEJDQUdJZ0lOQUVFQUlRSWdBeUVBREFNTElBQWdBeWdDRkNJR0lBWWdBeUFCUVIxMlFRUnhhaWdDRUNJRFJoc2dBQ0FHR3lFQUlBRWdBMEVBUjNRaEFTQUREUUFMQ3lBQUlBUnlSUVJBUVFJZ0NIUWlBRUVBSUFCcmNpQUhjU0lBUlEwRElBQkJBQ0FBYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQXlBQWNpQUJJQU4ySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJRElBSkpJUUVnQXlBQ0lBRWJJUUlnQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBQ1FiekFBQ2dDQUNBRmEwOE5BQ0FFS0FJWUlRZ2dCQ0FFS0FJTUlnRkhCRUJCeE1BQUtBSUFJQVFvQWdnaUFFMEVRQ0FBS0FJTUdnc2dBQ0FCTmdJTUlBRWdBRFlDQ0F3SkN5QUVRUlJxSWdNb0FnQWlBRVVFUUNBRUtBSVFJZ0JGRFFNZ0JFRVFhaUVEQ3dOQUlBTWhCaUFBSWdGQkZHb2lBeWdDQUNJQURRQWdBVUVRYWlFRElBRW9BaEFpQUEwQUN5QUdRUUEyQWdBTUNBdEJ2TUFBS0FJQUlnRWdCVThFUUVISXdBQW9BZ0FoQUFKQUlBRWdCV3NpQWtFUVR3UkFRYnpBQUNBQ05nSUFRY2pBQUNBQUlBVnFJZ00yQWdBZ0F5QUNRUUZ5TmdJRUlBQWdBV29nQWpZQ0FDQUFJQVZCQTNJMkFnUU1BUXRCeU1BQVFRQTJBZ0JCdk1BQVFRQTJBZ0FnQUNBQlFRTnlOZ0lFSUFBZ0FXb2lBU0FCS0FJRVFRRnlOZ0lFQ3lBQVFRaHFJUUFNQ2d0QndNQUFLQUlBSWdFZ0JVc0VRRUhBd0FBZ0FTQUZheUlCTmdJQVFjekFBRUhNd0FBb0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQW9MUVFBaEFDQUZRUzlxSWdRQ2YwR014QUFvQWdBRVFFR1V4QUFvQWdBTUFRdEJtTVFBUW44M0FnQkJrTVFBUW9DZ2dJQ0FnQVEzQWdCQmpNUUFJQXRCREdwQmNIRkIyS3JWcWdWek5nSUFRYURFQUVFQU5nSUFRZkREQUVFQU5nSUFRWUFnQ3lJQ2FpSUdRUUFnQW1zaUIzRWlBaUFGVFEwSlFlekRBQ2dDQUNJREJFQkI1TU1BS0FJQUlnZ2dBbW9pQ1NBSVRRMEtJQWtnQTBzTkNndEI4TU1BTFFBQVFRUnhEUVFDUUFKQVFjekFBQ2dDQUNJREJFQkI5TU1BSVFBRFFDQUFLQUlBSWdnZ0EwMEVRQ0FJSUFBb0FnUnFJQU5MRFFNTElBQW9BZ2dpQUEwQUN3dEJBQkFUSWdGQmYwWU5CU0FDSVFaQmtNUUFLQUlBSWdCQmYyb2lBeUFCY1FSQUlBSWdBV3NnQVNBRGFrRUFJQUJyY1dvaEJnc2dCaUFGVFEwRklBWkIvdi8vL3dkTERRVkI3TU1BS0FJQUlnQUVRRUhrd3dBb0FnQWlBeUFHYWlJSElBTk5EUVlnQnlBQVN3MEdDeUFHRUJNaUFDQUJSdzBCREFjTElBWWdBV3NnQjNFaUJrSCsvLy8vQjBzTkJDQUdFQk1pQVNBQUtBSUFJQUFvQWdScVJnMERJQUVoQUFzQ1FDQUZRVEJxSUFaTkRRQWdBRUYvUmcwQVFaVEVBQ2dDQUNJQklBUWdCbXRxUVFBZ0FXdHhJZ0ZCL3YvLy93ZExCRUFnQUNFQkRBY0xJQUVRRTBGL1J3UkFJQUVnQm1vaEJpQUFJUUVNQnd0QkFDQUdheEFUR2d3RUN5QUFJZ0ZCZjBjTkJRd0RDMEVBSVFRTUJ3dEJBQ0VCREFVTElBRkJmMGNOQWd0QjhNTUFRZkREQUNnQ0FFRUVjallDQUFzZ0FrSCsvLy8vQjBzTkFTQUNFQk1pQVVFQUVCTWlBRThOQVNBQlFYOUdEUUVnQUVGL1JnMEJJQUFnQVdzaUJpQUZRU2hxVFEwQkMwSGt3d0JCNU1NQUtBSUFJQVpxSWdBMkFnQWdBRUhvd3dBb0FnQkxCRUJCNk1NQUlBQTJBZ0FMQWtBQ1FBSkFRY3pBQUNnQ0FDSURCRUJCOU1NQUlRQURRQ0FCSUFBb0FnQWlBaUFBS0FJRUlnUnFSZzBDSUFBb0FnZ2lBQTBBQ3d3Q0MwSEV3QUFvQWdBaUFFRUFJQUVnQUU4YlJRUkFRY1RBQUNBQk5nSUFDMEVBSVFCQitNTUFJQVkyQWdCQjlNTUFJQUUyQWdCQjFNQUFRWDgyQWdCQjJNQUFRWXpFQUNnQ0FEWUNBRUdBeEFCQkFEWUNBQU5BSUFCQkEzUWlBa0hrd0FCcUlBSkIzTUFBYWlJRE5nSUFJQUpCNk1BQWFpQUROZ0lBSUFCQkFXb2lBRUVnUncwQUMwSEF3QUFnQmtGWWFpSUFRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlDYXlJRE5nSUFRY3pBQUNBQklBSnFJZ0kyQWdBZ0FpQURRUUZ5TmdJRUlBQWdBV3BCS0RZQ0JFSFF3QUJCbk1RQUtBSUFOZ0lBREFJTElBQXRBQXhCQ0hFTkFDQUJJQU5ORFFBZ0FpQURTdzBBSUFBZ0JDQUdhallDQkVITXdBQWdBMEY0SUFOclFRZHhRUUFnQTBFSWFrRUhjUnNpQUdvaUFUWUNBRUhBd0FCQndNQUFLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRZERBQUVHY3hBQW9BZ0EyQWdBTUFRc2dBVUhFd0FBb0FnQWlCRWtFUUVIRXdBQWdBVFlDQUNBQklRUUxJQUVnQm1vaEFrSDB3d0FoQUFKQUFrQUNRQUpBQWtBQ1FBTkFJQUlnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEI5TU1BSVFBRFFDQUFLQUlBSWdJZ0EwMEVRQ0FDSUFBb0FnUnFJZ1FnQTBzTkF3c2dBQ2dDQ0NFQURBQUFDd0FMSUFBZ0FUWUNBQ0FBSUFBb0FnUWdCbW8yQWdRZ0FVRjRJQUZyUVFkeFFRQWdBVUVJYWtFSGNSdHFJZ2tnQlVFRGNqWUNCQ0FDUVhnZ0FtdEJCM0ZCQUNBQ1FRaHFRUWR4RzJvaUFTQUpheUFGYXlFQUlBVWdDV29oQnlBQklBTkdCRUJCek1BQUlBYzJBZ0JCd01BQVFjREFBQ2dDQUNBQWFpSUFOZ0lBSUFjZ0FFRUJjallDQkF3REN5QUJRY2pBQUNnQ0FFWUVRRUhJd0FBZ0J6WUNBRUc4d0FCQnZNQUFLQUlBSUFCcUlnQTJBZ0FnQnlBQVFRRnlOZ0lFSUFBZ0Iyb2dBRFlDQUF3REN5QUJLQUlFSWdKQkEzRkJBVVlFUUNBQ1FYaHhJUW9DUUNBQ1FmOEJUUVJBSUFFb0FnZ2lBeUFDUVFOMklnUkJBM1JCM01BQWFrY2FJQU1nQVNnQ0RDSUNSZ1JBUWJUQUFFRzB3QUFvQWdCQmZpQUVkM0UyQWdBTUFnc2dBeUFDTmdJTUlBSWdBellDQ0F3QkN5QUJLQUlZSVFnQ1FDQUJJQUVvQWd3aUJrY0VRQ0FFSUFFb0FnZ2lBazBFUUNBQ0tBSU1HZ3NnQWlBR05nSU1JQVlnQWpZQ0NBd0JDd0pBSUFGQkZHb2lBeWdDQUNJRkRRQWdBVUVRYWlJREtBSUFJZ1VOQUVFQUlRWU1BUXNEUUNBRElRSWdCU0lHUVJScUlnTW9BZ0FpQlEwQUlBWkJFR29oQXlBR0tBSVFJZ1VOQUFzZ0FrRUFOZ0lBQ3lBSVJRMEFBa0FnQVNBQktBSWNJZ0pCQW5SQjVNSUFhaUlES0FJQVJnUkFJQU1nQmpZQ0FDQUdEUUZCdU1BQVFiakFBQ2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQUZHRzJvZ0JqWUNBQ0FHUlEwQkN5QUdJQWcyQWhnZ0FTZ0NFQ0lDQkVBZ0JpQUNOZ0lRSUFJZ0JqWUNHQXNnQVNnQ0ZDSUNSUTBBSUFZZ0FqWUNGQ0FDSUFZMkFoZ0xJQUVnQ21vaEFTQUFJQXBxSVFBTElBRWdBU2dDQkVGK2NUWUNCQ0FISUFCQkFYSTJBZ1FnQUNBSGFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVFRGRpSUJRUU4wUWR6QUFHb2hBQUovUWJUQUFDZ0NBQ0lDUVFFZ0FYUWlBWEZGQkVCQnRNQUFJQUVnQW5JMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0J6WUNDQ0FCSUFjMkFnd2dCeUFBTmdJTUlBY2dBVFlDQ0F3REN5QUhBbjlCQUNBQVFRaDJJZ0ZGRFFBYVFSOGdBRUgvLy84SFN3MEFHaUFCSUFGQmdQNC9ha0VRZGtFSWNTSUJkQ0lDSUFKQmdPQWZha0VRZGtFRWNTSUNkQ0lESUFOQmdJQVBha0VRZGtFQ2NTSURkRUVQZGlBQklBSnlJQU55YXlJQlFRRjBJQUFnQVVFVmFuWkJBWEZ5UVJ4cUN5SUJOZ0ljSUFkQ0FEY0NFQ0FCUVFKMFFlVENBR29oQWdKQVFiakFBQ2dDQUNJRFFRRWdBWFFpQkhGRkJFQkJ1TUFBSUFNZ0JISTJBZ0FnQWlBSE5nSUFEQUVMSUFCQkFFRVpJQUZCQVhacklBRkJIMFliZENFRElBSW9BZ0FoQVFOQUlBRWlBaWdDQkVGNGNTQUFSZzBESUFOQkhYWWhBU0FEUVFGMElRTWdBaUFCUVFSeGFpSUVLQUlRSWdFTkFBc2dCQ0FITmdJUUN5QUhJQUkyQWhnZ0J5QUhOZ0lNSUFjZ0J6WUNDQXdDQzBIQXdBQWdCa0ZZYWlJQVFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEd5SUNheUlITmdJQVFjekFBQ0FCSUFKcUlnSTJBZ0FnQWlBSFFRRnlOZ0lFSUFBZ0FXcEJLRFlDQkVIUXdBQkJuTVFBS0FJQU5nSUFJQU1nQkVFbklBUnJRUWR4UVFBZ0JFRlpha0VIY1J0cVFWRnFJZ0FnQUNBRFFSQnFTUnNpQWtFYk5nSUVJQUpCL01NQUtRSUFOd0lRSUFKQjlNTUFLUUlBTndJSVFmekRBQ0FDUVFocU5nSUFRZmpEQUNBR05nSUFRZlREQUNBQk5nSUFRWURFQUVFQU5nSUFJQUpCR0dvaEFBTkFJQUJCQnpZQ0JDQUFRUWhxSVFFZ0FFRUVhaUVBSUFRZ0FVc05BQXNnQWlBRFJnMERJQUlnQWlnQ0JFRitjVFlDQkNBRElBSWdBMnNpQkVFQmNqWUNCQ0FDSUFRMkFnQWdCRUgvQVUwRVFDQUVRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQVFMSUFOQ0FEY0NFQ0FEQW45QkFDQUVRUWgySWdCRkRRQWFRUjhnQkVILy8vOEhTdzBBR2lBQUlBQkJnUDQvYWtFUWRrRUljU0lBZENJQklBRkJnT0FmYWtFUWRrRUVjU0lCZENJQ0lBSkJnSUFQYWtFUWRrRUNjU0lDZEVFUGRpQUFJQUZ5SUFKeWF5SUFRUUYwSUFRZ0FFRVZhblpCQVhGeVFSeHFDeUlBTmdJY0lBQkJBblJCNU1JQWFpRUJBa0JCdU1BQUtBSUFJZ0pCQVNBQWRDSUdjVVVFUUVHNHdBQWdBaUFHY2pZQ0FDQUJJQU0yQWdBZ0F5QUJOZ0lZREFFTElBUkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQUVvQWdBaEFRTkFJQUVpQWlnQ0JFRjRjU0FFUmcwRUlBQkJIWFloQVNBQVFRRjBJUUFnQWlBQlFRUnhhaUlHS0FJUUlnRU5BQXNnQmlBRE5nSVFJQU1nQWpZQ0dBc2dBeUFETmdJTUlBTWdBellDQ0F3REN5QUNLQUlJSWdBZ0J6WUNEQ0FDSUFjMkFnZ2dCMEVBTmdJWUlBY2dBallDRENBSElBQTJBZ2dMSUFsQkNHb2hBQXdGQ3lBQ0tBSUlJZ0FnQXpZQ0RDQUNJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FqWUNEQ0FESUFBMkFnZ0xRY0RBQUNnQ0FDSUFJQVZORFFCQndNQUFJQUFnQldzaUFUWUNBRUhNd0FCQnpNQUFLQUlBSWdBZ0JXb2lBallDQUNBQ0lBRkJBWEkyQWdRZ0FDQUZRUU55TmdJRUlBQkJDR29oQUF3REMwR3d3QUJCTURZQ0FFRUFJUUFNQWdzQ1FDQUlSUTBBQWtBZ0JDZ0NIQ0lBUVFKMFFlVENBR29pQXlnQ0FDQUVSZ1JBSUFNZ0FUWUNBQ0FCRFFGQnVNQUFJQWRCZmlBQWQzRWlCellDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQVJHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQWcyQWhnZ0JDZ0NFQ0lBQkVBZ0FTQUFOZ0lRSUFBZ0FUWUNHQXNnQkNnQ0ZDSUFSUTBBSUFFZ0FEWUNGQ0FBSUFFMkFoZ0xBa0FnQWtFUFRRUkFJQVFnQWlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnTWdBa0VCY2pZQ0JDQUNJQU5xSUFJMkFnQWdBa0gvQVUwRVFDQUNRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQUVMSUFNQ2YwRUFJQUpCQ0hZaUFFVU5BQnBCSHlBQ1FmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnVWdCVUdBZ0E5cVFSQjJRUUp4SWdWMFFROTJJQUFnQVhJZ0JYSnJJZ0JCQVhRZ0FpQUFRUlZxZGtFQmNYSkJIR29MSWdBMkFod2dBMElBTndJUUlBQkJBblJCNU1JQWFpRUJBa0FDUUNBSFFRRWdBSFFpQlhGRkJFQkJ1TUFBSUFVZ0IzSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBRW9BZ0FoQlFOQUlBVWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCU0FBUVFGMElRQWdBU0FGUVFSeGFpSUdLQUlRSWdVTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUFsRkRRQUNRQ0FCS0FJY0lnQkJBblJCNU1JQWFpSUNLQUlBSUFGR0JFQWdBaUFFTmdJQUlBUU5BVUc0d0FBZ0NrRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0JVRURjallDQkNBQklBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQ0FSQUlBaEJBM1lpQlVFRGRFSGN3QUJxSVFCQnlNQUFLQUlBSVFJQ2YwRUJJQVYwSWdVZ0JuRkZCRUJCdE1BQUlBVWdCbkkyQWdBZ0FBd0JDeUFBS0FJSUN5RUZJQUFnQWpZQ0NDQUZJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0JUWUNDQXRCeU1BQUlBUTJBZ0JCdk1BQUlBTTJBZ0FMSUFGQkNHb2hBQXNnQzBFUWFpUUFJQUFMUkFFQmZ5QUFJQUFvQWhBZ0FXb2lBVFlDRUNBQUlBRkJCM0UyQWdoQmZ5RUNJQUVnQUNnQ0RFRURkRTBFZnlBQUlBQW9BZ0FnQVVFRGRtbzJBZ1JCQUFWQmZ3c0w1UWNCQ0g4Z0FDQUVRUUFnQm1zZ0FpQUNJQVpxUVFCSUd5SUNJQUlnQkVvYklnSnFJQUFnQWtFQVNoc2lDU0FGUVFBZ0Iyc2dBeUFESUFkcVFRQklHeUlBSUFBZ0JVb2JJZ0FnQkd4cUlBa2dBRUVBU2hzaEF5QUhRUUFnQUdzZ0FFRWZkWEVpQ1dzZ0FDQUhhaUlBSUFWcklneEJBQ0FBSUFWS0d5SVBheUVMSUFaQkFDQUNheUlPSUFKQkgzVnhJZzFySUFJZ0Jtb2lBQ0FFYTBFQUlBQWdCRW9pQlJzaUNtc2hBQUpBSUFKQkFFZ2dCWElpRUVVRVFDQUpCRUFEUUNBQklBTWdBQkFWSUFocUlRRWdDVUYvYWlJSkRRQUxDeUFMUlEwQkEwQWdBU0FESUFBUUZTQUlhaUVCSUFNZ0JHb2hBeUFMUVg5cUlnc05BQXNNQVFzQ1FDQUpSUTBBSUExRkJFQURRQ0FBSVFjZ0FTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQVNBSWFpRUJJQWxCZjJvaUNRMEFEQUlBQ3dBTElBRWdEbW9oQmdOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0JpRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQmlBSWFpRUdJQUVnQ0dvaEFTQUpRWDlxSWdrTkFBc0xJQXRGRFFBZ0RVVUVRQU5BSUFBaEJ5QUJJUUlnQXlFRklBQUVRQU5BSUFJZ0JTMEFBRG9BQUNBQ1FRRnFJUUlnQlVFQmFpRUZJQWRCZjJvaUJ3MEFDd3NnQ2dSQUlBSWdCVUYvYWkwQUFDQUtFQWNhQ3lBQklBaHFJUUVnQXlBRWFpRURJQXRCZjJvaUN3MEFEQUlBQ3dBTElBRWdEbW9oQ1FOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0NTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQ0NBSmFpRUpJQUVnQ0dvaEFTQURJQVJxSVFNZ0MwRi9haUlMRFFBTEN3SkFJQTlGRFFBZ0F5QUVheUVESUJCRkJFQURRQ0FCSUFNZ0FCQVZJQWhxSVFFZ0RFRi9haUlNRFFBTUFnQUxBQXNnRFVVRVFBTkFJQU1oQWlBQklRVWdBQ0VISUFBRVFBTkFJQVVnQWkwQUFEb0FBQ0FGUVFGcUlRVWdBa0VCYWlFQ0lBZEJmMm9pQncwQUN3c2dDZ1JBSUFVZ0FrRi9haTBBQUNBS0VBY2FDeUFCSUFocUlRRWdERUYvYWlJTURRQU1BZ0FMQUFzZ0FTQU9haUVKQTBBZ0FTQURMUUFBSUEwUUJ5RUJJQUFoQnlBSklRSWdBeUVGSUFBRVFBTkFJQUlnQlMwQUFEb0FBQ0FDUVFGcUlRSWdCVUVCYWlFRklBZEJmMm9pQncwQUN3c2dDZ1JBSUFJZ0JVRi9haTBBQUNBS0VBY2FDeUFJSUFscUlRa2dBU0FJYWlFQklBeEJmMm9pREEwQUN3c0w5QUlCQTM4Z0FVRURkRUh3Tm1vaUF5Z0NBQ0VGSUFNdEFBUWhBeUFCUVFOMFFiQTFhaUlCTFFBRUlRUUNRQ0FCS0FJQVFRUkdCRUFnQWlBRVFRRjBhaTRCQUNFQklBVkJCRVlFUUNBQklBSWdBMEVCZEdvdUFRQnFRUUZxUVFGMUR3c0NmeUFBS0FMTUFTSUNCRUFnQUNnQ0JDQUNLQUlFUmd3QkMwRUFDMFVOQVNBQklBQW9Bc3dCSUFOQkFYUnFMZ0VjYWtFQmFrRUJkUThMSUFWQkJFWUVRQ0FDSUFOQkFYUnFMZ0VBSVFFQ2Z5QUFLQUxJQVNJQ0JFQWdBQ2dDQkNBQ0tBSUVSZ3dCQzBFQUMwVU5BU0FCSUFBb0FzZ0JJQVJCQVhScUxnRWNha0VCYWtFQmRROExBbjhDZnlBQUtBTElBU0lCQkVBZ0FDZ0NCQ0FCS0FJRVJnd0JDMEVBQzBVRVFFRUFJUUpCQUF3QkMwRUJJUUlnQUNnQ3lBRWdCRUVCZEdvdUFSd0xJUUVDZnlBQUtBTE1BU0lFQkVBZ0FDZ0NCQ0FFS0FJRVJnd0JDMEVBQzBVTkFDQUFLQUxNQVNBRFFRRjBhaTRCSENFQUlBSkZCRUFnQUE4TElBQWdBV3BCQVdwQkFYVWhBUXNnQVF1SkJ3RUhmeUFESUFWcUlnMGdBUzRCQUNJTVFRSjFhaUVESUFRZ0Jtb2lEaUFCTGdFQ0lnOUJBblZxSVFRZ0FpZ0NDRUVFZENFSklBSW9BZ1JCQkhRaENpQUFJQVpCQkhScUlBVnFJUXNDUUNBTVFRTnhRUVIwSUE5QkEzRkJBblJ5UWRBN2FpZ0NBQ0lNUVE1TkJFQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnREVFQmF3NE9BUUlEQkFVR0J3Z0pDZ3NNRFE0QUN5QUNLQUlBSUFzZ0F5QUVJQW9nQ1NBSElBaEJFQkFNREE4TElBSW9BZ0FnQ3lBRElBUkJmbW9nQ2lBSklBY2dDRUVBRUNRTURnc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJRUVjTURRc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJUVFFUUpBd01DeUFDS0FJQUlBc2dBMEYrYWlBRUlBb2dDU0FISUFoQkFCQWpEQXNMSUFJb0FnQWdDeUFEUVg1cUlBUkJmbW9nQ2lBSklBY2dDRUVBRUJvTUNnc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRQVFJUXdKQ3lBQ0tBSUFJQXNnQTBGK2FpQUVRWDVxSUFvZ0NTQUhJQWhCQWhBYURBZ0xJQUlvQWdBZ0N5QURRWDVxSUFRZ0NpQUpJQWNnQ0JCR0RBY0xJQUlvQWdBZ0N5QURRWDVxSUFSQmZtb2dDaUFKSUFjZ0NFRUFFQ0lNQmdzZ0FpZ0NBQ0FMSUFOQmZtb2dCRUYrYWlBS0lBa2dCeUFJRUVVTUJRc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRRVFJZ3dFQ3lBQ0tBSUFJQXNnQTBGK2FpQUVJQW9nQ1NBSElBaEJBUkFqREFNTElBSW9BZ0FnQ3lBRFFYNXFJQVJCZm1vZ0NpQUpJQWNnQ0VFQkVCb01BZ3NnQWlnQ0FDQUxJQU5CZm1vZ0JFRithaUFLSUFrZ0J5QUlRUUVRSVF3QkN5QUNLQUlBSUFzZ0EwRithaUFFUVg1cUlBb2dDU0FISUFoQkF4QWFDeUFOUVFGMklBRXVBUUFpQ1VFRGRXb2hBeUFPUVFGMklBRXVBUUlpQVVFRGRXb2hCQ0FDS0FJQUlBSW9BZ1FpQ2lBQ0tBSUlJZ3RzUVFoMGFpRUNJQUFnQmtFQ2RFRjRjV29nQlVFQmRtcEJnQUpxSVFVZ0NFRUJkaUVHSUFkQkFYWWhCeUFCUVFkeElRZ2dDMEVEZENFQUlBcEJBM1FoQVFKQUlBbEJCM0VpQ1VVTkFDQUlSUTBBSUFJZ0JTQURJQVFnQVNBQUlBa2dDQ0FISUFZUVNBOExJQWtFUUNBQ0lBVWdBeUFFSUFFZ0FDQUpJQWNnQmhCTER3c2dDQVJBSUFJZ0JTQURJQVFnQVNBQUlBZ2dCeUFHRUVvUEN5QUNJQVVnQXlBRUlBRWdBQ0FISUFaQkNCQU1JQUlnQUNBQmJHb2dCVUZBYXlBRElBUWdBU0FBSUFjZ0JrRUlFQXdMeHdFQkJIOGdBQ2dDQkNFQ0FrQWdBQ2dDREVFRGRDQUFLQUlRYXlJRFFTQk9CRUFnQWlnQUFDSUJRUmgwSUFGQkNIUkJnSUQ4QjNGeUlBRkJDSFpCZ1A0RGNTQUJRUmgyY25JaEFTQUFLQUlJSWdCRkRRRWdBU0FBZENBQ0xRQUVRUWdnQUd0MmNnOExJQU5CQVVnRVFFRUFEd3NnQWkwQUFDQUFLQUlJSWdCQkdHb2lCSFFoQVNBQUlBTnFRWGhxSWdCQkFVZ05BQU5BSUFJdEFBRWdCRUY0YWlJRWRDQUJjaUVCSUFCQkNFb2hBeUFDUVFGcUlRSWdBRUY0YWlFQUlBTU5BQXNMSUFFTGpBUUJCMzhDUUNBQVFYOXFJZ2d0QUFBaUJTQUFMUUFBSWdacklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJRVR3MEFJQUJCZm1vdEFBQWlCQ0FGYXlJSElBZEJIM1VpQjJvZ0IzTWdBaWdDQ0NJSlR3MEFJQUF0QUFFaUJ5QUdheUlLSUFwQkgzVWlDbW9nQ25NZ0NVOE5BQ0FCUVFOTkJFQWdDQ0FGSUFFZ0FpZ0NBR3BCZjJvdEFBQWlDRUYvY3lJSklBaEJBV29pQ0NBR0lBVnJRUUowSUFkcklBUnFRUVJxUVFOMUlnVWdCU0FJU2hzZ0JTQUpTQnNpQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFGYTBHd0xtb3RBQUE2QUFBTUFRc2dDQ0FGSUFkcUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFBZ0JpQUhRUUYwYWlBRWFrRUNha0VDZGpvQUFBc0NRQ0FBSUFOcUlnQkJmMm9pQnkwQUFDSURJQUF0QUFBaUJXc2lCaUFHUVI5MUlnWnFJQVp6SUFJb0FnUlBEUUFnQUVGK2FpMEFBQ0lHSUFOcklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJSUlnaFBEUUFnQUMwQUFTSUVJQVZySWdrZ0NVRWZkU0lKYWlBSmN5QUlUdzBBSUFGQkEwMEVRQ0FISUFFZ0FpZ0NBR3BCZjJvdEFBQWlBVUYvY3lJQ0lBRkJBV29pQnlBRklBTnJRUUowSUFScklBWnFRUVJxUVFOMUlnRWdBU0FIU2hzZ0FTQUNTQnNpQVNBRGFrR3dMbW90QUFBNkFBQWdBQ0FGSUFGclFiQXVhaTBBQURvQUFBOExJQWNnQXlBRWFpQUdRUUYwYWtFQ2FrRUNkam9BQUNBQUlBVWdCRUVCZEdvZ0JtcEJBbXBCQW5ZNkFBQUxDMGNBQWtBZ0FVRUVUUVJBQWtBQ1FBSkFBa0FnQVVFQmF3NEVBUUlEQlFBTElBQW9Bc2dCRHdzZ0FDZ0N6QUVQQ3lBQUtBTFFBUThMSUFBb0F0UUJEd3RCQUNFQUN5QUFDNlVEQVF0L1FRQWdBMnNpQzBFQmRDRUVJQUVnQWlnQ0FHcEJmMm90QUFBaUFVRUJhaUVKSUFGQmYzTWhDZ0pBSUFBZ0Eyc2lCeTBBQUNJRklBQXRBQUFpQm1zaUFTQUJRUjkxSWdGcUlBRnpJQUlvQWdRaUFVOE5BQ0FBSUFScUxRQUFJZzBnQldzaUNDQUlRUjkxSWdocUlBaHpJQUlvQWdnaUNFOE5BQ0FBSUFOcUxRQUFJZzRnQm1zaURDQU1RUjkxSWd4cUlBeHpJQWhQRFFBZ0J5QUtJQWtnQmlBRmEwRUNkQ0FPYXlBTmFrRUVha0VEZFNJQklBRWdDVW9iSUFFZ0NrZ2JJZ0VnQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFCYTBHd0xtb3RBQUE2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJBV29pQlNBTGFpSUxMUUFBSWdZZ0FDMEFBU0lBYXlJSElBZEJIM1VpQjJvZ0IzTWdBVThOQUNBRUlBVnFMUUFBSWdFZ0Jtc2lCQ0FFUVI5MUlnUnFJQVJ6SUFJb0FnZ2lBazhOQUNBRElBVnFMUUFBSWdNZ0FHc2lCQ0FFUVI5MUlnUnFJQVJ6SUFKUERRQWdDeUFLSUFrZ0FDQUdhMEVDZENBRGF5QUJha0VFYWtFRGRTSUJJQUVnQ1VvYklBRWdDa2diSWdFZ0JtcEJzQzVxTFFBQU9nQUFJQVVnQUNBQmEwR3dMbW90QUFBNkFBQUxDMFFCQW44L0FDRUJBa0JCc01RQUtBSUFJZ0lnQUVFRGFrRjhjV29pQUNBQlFSQjBUUTBBSUFBUUFRMEFRYkRBQUVFd05nSUFRWDhQQzBHd3hBQWdBRFlDQUNBQ0N6UUJBWDhDUUNBQlFSQkxEUUFnQUNnQ0JDQUJRUUowYWlnQ0FDSUFSUTBBSUFBb0FoUkJBa2tOQUNBQUtBSUFJUUlMSUFJTGdnUUJBMzhnQWtHQUJFOEVRQ0FBSUFFZ0FoQUFHaUFBRHdzZ0FDQUNhaUVEQWtBZ0FDQUJjMEVEY1VVRVFBSkFJQUpCQVVnRVFDQUFJUUlNQVFzZ0FFRURjVVVFUUNBQUlRSU1BUXNnQUNFQ0EwQWdBaUFCTFFBQU9nQUFJQUZCQVdvaEFTQUNRUUZxSWdJZ0EwOE5BU0FDUVFOeERRQUxDd0pBSUFOQmZIRWlCRUhBQUVrTkFDQUNJQVJCUUdvaUJVc05BQU5BSUFJZ0FTZ0NBRFlDQUNBQ0lBRW9BZ1EyQWdRZ0FpQUJLQUlJTmdJSUlBSWdBU2dDRERZQ0RDQUNJQUVvQWhBMkFoQWdBaUFCS0FJVU5nSVVJQUlnQVNnQ0dEWUNHQ0FDSUFFb0FodzJBaHdnQWlBQktBSWdOZ0lnSUFJZ0FTZ0NKRFlDSkNBQ0lBRW9BaWcyQWlnZ0FpQUJLQUlzTmdJc0lBSWdBU2dDTURZQ01DQUNJQUVvQWpRMkFqUWdBaUFCS0FJNE5nSTRJQUlnQVNnQ1BEWUNQQ0FCUVVCcklRRWdBa0ZBYXlJQ0lBVk5EUUFMQ3lBQ0lBUlBEUUVEUUNBQ0lBRW9BZ0EyQWdBZ0FVRUVhaUVCSUFKQkJHb2lBaUFFU1EwQUN3d0JDeUFEUVFSSkJFQWdBQ0VDREFFTElBTkJmR29pQkNBQVNRUkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FpQUJMUUFCT2dBQklBSWdBUzBBQWpvQUFpQUNJQUV0QUFNNkFBTWdBVUVFYWlFQklBSkJCR29pQWlBRVRRMEFDd3NnQWlBRFNRUkFBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSWdBMGNOQUFzTElBQUx3UmdCSUg4akFFSFFBMnNpQmlRQUlBRW9BZ2doRkNBQklBRW9BZ1FpQ2lBQ2JDSWFJQU5xRUIwZ0FTZ0NBQ0VKSUFCQkFEWUNDQ0FBUWlnM0FoUWdBRUlBTndJTUlBQkJCallDQUNBRFFRUjBJUWNDUUFKQUFrQWdCRUYrYWlJRVFRVkxEUUFDUUNBRVFRRnJEZ1FCQVFFQkFBc01BUXNnQmtFQU5nSU1JQVlnRkRZQ0dDQUdJQW8yQWhRZ0JpQUZOZ0lRSUFVRVFDQUdRZEFBYWlBR1FReHFJQVpCRUdvZ0J5QUNRUVIwUVFCQkFFRVFRUkFRRGd3Q0N3c2dCa0hRQUdwQkFFR0FBeEFIR2lBSklCcEJDSFJxSUFkcUlRd2dCa0lBTndOSUlBWkJRR3RDQURjREFDQUdRZ0EzQXpnZ0JrSUFOd013SUFaQ0FEY0RLQ0FHUWdBM0F5QWdCa0lBTndNWUlBWkNBRGNERUVFQUlRa0NmMEVBSUFKRkRRQWFRUUFnQUVFQUlBcHJRZGdCYkdvb0FzUUJSUTBBR2lBR0lBd2dDa0VFZEdzaUJDMEFCU0FFTFFBRWFpQUVMUUFHYWlBRUxRQUhhaUlYSUFRdEFBTWdCQzBBQWlBRUxRQUJJQVF0QUFCcWFtb2lGbW9pQlNBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSWFtcHFJaEpySUFRdEFBOGdCQzBBRGlBRUxRQU5JQVF0QUF4cWFtb2lFMnNpQ0RZQ0ZDQUdJQVVnRW1vZ0Uyb2lDVFlDRUVFQkN5RUZBbjhDUUNBQ0lCUkJmMnBIQkVBZ0FDQUtRZGdCYkdvb0FzUUJEUUVMSUFVTUFRc2dCaUFNSUFwQkNIUnFJZ0l0QUFVZ0FpMEFCR29nQWkwQUJtb2dBaTBBQjJvaUhpQUNMUUFESUFJdEFBSWdBaTBBQVNBQ0xRQUFhbXBxSWg5cUlnUWdBaTBBQ3lBQ0xRQUtJQUl0QUFrZ0FpMEFDR3BxYWlJWWF5QUNMUUFQSUFJdEFBNGdBaTBBRFNBQ0xRQU1hbXBxSWhscklBaHFJZ2cyQWhRZ0JpQUVJQmhxSUFscUlCbHFJZ2syQWhCQkFTRVFJQVZCQVdvTElRZEJBQ0VFQW44Q1FDQURSUTBBSUFCQmJHb29BZ0JGRFFBZ0JpQU1RWDlxSWdJZ0NrRUdkQ0lPYWlJRUlBcEJCSFFpQzJvdEFBQWdCQzBBQUdvZ0JDQUtRUVYwSWc5cUxRQUFhaUFFSUFwQk1Hd2lEV290QUFCcUloc2dBaUFOYWkwQUFDQUNJQTlxTFFBQUlBSWdDMm90QUFBZ0FpMEFBR3BxYWlJY2FpSVJJQVFnRG1vaUFpQUxhaTBBQUNBQ0xRQUFhaUFDSUE5cUxRQUFhaUFDSUExcUxRQUFhaUlWYXlBQ0lBNXFJZ0lnQzJvdEFBQWdBaTBBQUdvZ0FpQVBhaTBBQUdvZ0FpQU5haTBBQUdvaUQyc2lCRFlDSUNBR0lCRWdGV29nQ1dvZ0Qyb2lDVFlDRUNBSFFRRnFJUXRCQVF3QkN5QUhJUXRCQUFzaEFnSkFBa0FDUUFKQUFrQUNRQ0FESUFwQmYycEhCRUFnQUNnQ25BTU5BUXRCQUNFT0lBSkJBRWNoRVNBSERRRU1BZ3NnQmlBRUlBeEJFR29pQkNBS1FRWjBJaDFxSWdBZ0NrRUVkQ0lOYWkwQUFDQUFMUUFBYWlBQUlBcEJCWFFpRG1vdEFBQnFJQUFnQ2tFd2JDSVJhaTBBQUdvaUlDQUVJQkZxTFFBQUlBUWdEbW90QUFBZ0JDQU5haTBBQUNBTUxRQVFhbXBxSWlGcUlpSWdBQ0FkYWlJQUlBMXFMUUFBSUFBdEFBQnFJQUFnRG1vdEFBQnFJQUFnRVdvdEFBQnFJZ3hySUFBZ0hXb2lBQ0FOYWkwQUFDQUFMUUFBYWlBQUlBNXFMUUFBYWlBQUlCRnFMUUFBYWlJTmEyb2lCRFlDSUNBR0lBd2dJbW9nQ1dvZ0RXb2lDVFlDRUNBQ1FRQkhJUkZCQVNFT0lBSkJBV29oQUNBTFFRRnFJUXNDUUNBSERRQWdBa1VOQUNBR0lCc2dIR29nRldvZ0Qyb2dJV3NnSUdzZ0RHc2dEV3RCQlhVaUNEWUNGQXdEQ3lBSFJRMENJQUFoQWdzZ0JpQUlJQWRCQTJwMUlnZzJBaFFMQWtBZ0VFVU5BQ0FGUlEwQUlBSU5BQ0FHSUJZZ0Yyb2dFbW9nRTJvZ0dXc2dHR3NnSG1zZ0gydEJCWFVpQkRZQ0lFRUJJUkJCQVNFTkRBTUxJQkJCQUVjaEVDQUZRUUJISVEwZ0FrVU5BZ3dCQ3lBUVFRQkhJUkFnQlVFQVJ5RU5JQUFoQWdzZ0JpQUVJQUpCQTJwMUlnUTJBaUFMSUFZQ2Z5QUxRWDlxSWdCQkFrMEVRQUpBQWtBQ1FDQUFRUUZyRGdJQkFnQUxJQWxCQkhZTUF3c2dDVUVGZGd3Q0N5QUpRUlZzUVFwMURBRUxJQWxCQm5ZTElnQTJBaEFDUUNBRUlBaHlSUVJBSUFZZ0FEWUNTQ0FHSUFBMkFrd2dCaUFBTmdKRUlBWWdBRFlDUUNBR0lBQTJBandnQmlBQU5nSTRJQVlnQURZQ05DQUdJQUEyQWpBZ0JpQUFOZ0lzSUFZZ0FEWUNLQ0FHSUFBMkFpUWdCaUFBTmdJZ0lBWWdBRFlDSENBR0lBQTJBaGdnQmlBQU5nSVVEQUVMSUFZZ0FDQUlhaUlGSUFSck5nSkFJQVlnQlNBRVFRRjFJZ0pyTmdJd0lBWWdBaUFGYWpZQ0lDQUdJQVFnQldvMkFoQWdCaUFBSUFocklnVWdCR3MyQWt3Z0JpQUZJQUpyTmdJOElBWWdBaUFGYWpZQ0xDQUdJQVFnQldvMkFod2dCaUFBSUFoQkFYVWlCMm9pQlNBRWF6WUNSQ0FHSUFVZ0FtczJBalFnQmlBQ0lBVnFOZ0lrSUFZZ0JDQUZhallDRkNBR0lBQWdCMnNpQUNBRWF6WUNTQ0FHSUFBZ0FtczJBamdnQmlBQUlBSnFOZ0lvSUFZZ0FDQUVhallDR0FzZ0JrSFFBR29oQ0NBR1FSQnFJUUJCQUNFRUEwQWdDQ0FBSUFSQkRIRnFLQUlBSWdKQi93RWdBa0gvQVVnYklnSkJBQ0FDUVFCS0d6b0FBQ0FBSUFCQkVHb2dCRUVCYWlJRVFUOXhHeUVBSUFoQkFXb2hDQ0FFUVlBQ1J3MEFDeUFCS0FJQUlBb2dGR3dpQUVFSWRHb2dHa0VHZEdvZ0EwRURkR29oQXlBS1FRUjBJUXdnQ2tFR2RDRWFJQUJCQm5RaEhVRUFJQXBCQTNRaUMyc2hJQ0FHUWRBQ2FpRWhJQVpCUUdzaElrRUFJUVVEUUNBR1FnQTNBMGdnSWtJQU53TUFJQVpDQURjRE9DQUdRZ0EzQXpBZ0JrSUFOd01vSUFaQ0FEY0RJQ0FHUWdBM0F4Z2dCa0lBTndNUVFRQWhDRUVBSVFSQkFDRUpJQTBFUUNBR0lBTWdJR29pQUMwQUF5QUFMUUFDYWlJWElBQXRBQUVnQUMwQUFHb2lGbW9pQWlBQUxRQUZJQUF0QUFScUloSnJJQUF0QUFjZ0FDMEFCbW9pRTJzaUNEWUNGQ0FHSUFJZ0Vtb2dFMm9pQkRZQ0VFRUJJUWtMSUJBRVFDQUdJQU1nR21vaUFDMEFBeUFBTFFBQ2FpSWVJQUF0QUFFZ0FDMEFBR29pSDJvaUFpQUFMUUFGSUFBdEFBUnFJaGhySUFBdEFBY2dBQzBBQm1vaUdXc2dDR29pQ0RZQ0ZDQUdJQUlnR0dvZ0JHb2dHV29pQkRZQ0VDQUpRUUZxSVFrTFFRQWhBQUovSUJGRkJFQWdDU0VIUVFBTUFRc2dCaUFEUVg5cUlnQWdER29pQWlBTGFpMEFBQ0FDTFFBQWFpSWJJQUFnQzJvdEFBQWdBQzBBQUdvaUhHb2lCeUFDSUF4cUlnQWdDMm90QUFBZ0FDMEFBR29pRldzZ0FDQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlnOXJJZ0EyQWlBZ0JpQUhJQlZxSUFScUlBOXFJZ1EyQWhBZ0NVRUJhaUVIUVFFTElRSUNRQ0FHQW44Q1FBSkFBa0FnRGtVRVFDQUpEUUVNQWdzZ0JpQUFJQU5CQ0dvaUNpQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlpTWdDaUFMYWkwQUFDQURMUUFJYWlJa2FpSWxJQUFnREdvaUFDQUxhaTBBQUNBQUxRQUFhaUlLYXlBQUlBeHFJZ0FnQzJvdEFBQWdBQzBBQUdvaUZHdHFJZ0EyQWlBZ0JpQUtJQ1ZxSUFScUlCUnFJZ1EyQWhBZ0FrRUJhaUVDSUFkQkFXb2hCeUFSUVFGeklBbEJBRWR5UlFSQUlBWWdHeUFjYWlBVmFpQVBhaUFrYXlBamF5QUtheUFVYTBFRWRTSUlOZ0lVREFNTElBbEZEUUlMSUFZZ0NDQUpRUUpxZFNJSU5nSVVDeUFXSUJkcUlCSnFJQk5xSUJscklCaHJJQjVySUI5clFRUjFJQkFnRFNBQ1JYRnhRUUZHRFFFYUlBSkZEUUlMSUFBZ0FrRUNhblVMSWdBMkFpQUxJQVlDZnlBSFFYOXFJZ0pCQWswRVFBSkFBa0FDUUNBQ1FRRnJEZ0lCQWdBTElBUkJBM1lNQXdzZ0JFRUVkZ3dDQ3lBRVFSVnNRUWwyREFFTElBUkJCWFlMSWdRMkFoQUNRQ0FBSUFoeVJRUkFJQVlnQkRZQ1NDQUdJQVEyQWt3Z0JpQUVOZ0pFSUFZZ0JEWUNRQ0FHSUFRMkFqd2dCaUFFTmdJNElBWWdCRFlDTkNBR0lBUTJBakFnQmlBRU5nSXNJQVlnQkRZQ0tDQUdJQVEyQWlRZ0JpQUVOZ0lnSUFZZ0JEWUNIQ0FHSUFRMkFoZ2dCaUFFTmdJVURBRUxJQVlnQkNBSWFpSUhJQUJyTmdKQUlBWWdCeUFBUVFGMUlnSnJOZ0l3SUFZZ0FpQUhhallDSUNBR0lBQWdCMm8yQWhBZ0JpQUVJQWhySWdjZ0FHczJBa3dnQmlBSElBSnJOZ0k4SUFZZ0FpQUhhallDTENBR0lBQWdCMm8yQWh3Z0JpQUVJQWhCQVhVaUNXb2lCeUFBYXpZQ1JDQUdJQWNnQW1zMkFqUWdCaUFDSUFkcU5nSWtJQVlnQUNBSGFqWUNGQ0FHSUFRZ0NXc2lCQ0FBYXpZQ1NDQUdJQVFnQW1zMkFqZ2dCaUFDSUFScU5nSW9JQVlnQUNBRWFqWUNHQXNnSVNBRlFRWjBhaUVJUVFBaEFDQUdRUkJxSVFRRFFDQUlJQVFnQUVFQmRFRU1jV29vQWdBaUFrSC9BU0FDUWY4QlNCc2lBa0VBSUFKQkFFb2JPZ0FBSUFRZ0JFRVFhaUFBUVFGcUlnQkJEM0ViSVFRZ0NFRUJhaUVJSUFCQndBQkhEUUFMSUFNZ0hXb2hBeUFGUVFGcUlnVkJBa2NOQUFzTElBRWdCa0hRQUdvUUd5QUdRZEFEYWlRQUN6WUFJQUlFUUNBQUlBRVFBZzhMUVFFaEFpQUJJQUJCQVJBRElnQTJBZ0FnQUVGL1J3Ui9JQUVnQUVFQmN6WUNBRUVBQlVFQkN3dk1Bd0VTZnlBRFFRRjBJUThnQTBGOWJDRVFRUUFnQTJzaUVVRUJkQ0VTSUFFZ0FpZ0NBR3BCZjJvdEFBQWlCMEVCYWlFVFFRQWdCMnNoQ2tFRUlRRURRQUpBSUFBZ0VXb2lGQzBBQUNJRklBQXRBQUFpQ0dzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdSUERRQWdBQ0FTYWlJTExRQUFJZ3dnQldzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdnaUJrOE5BQ0FBSUFOcUloVXRBQUFpRFNBSWF5SUVJQVJCSDNVaUJHb2dCSE1nQms4TkFDQUhJUVFnQUNBUWFpMEFBQ0lKSUFWcklnNGdEa0VmZFNJT2FpQU9jeUFHU1FSQUlBc2dEQ0FLSUFjZ0JTQUlha0VCYWtFQmRpQU1RUUYwYXlBSmFrRUJkU0lFSUFRZ0Iwb2JJQVFnQ2tnYmFqb0FBQ0FDS0FJSUlRWWdFeUVFQ3lBVUlBVUNmeUFBSUE5cUxRQUFJZ3NnQ0dzaUNTQUpRUjkxSWdscUlBbHpJQVpKQkVBZ0ZTQU5JQW9nQnlBRklBaHFRUUZxUVFGMklBMUJBWFJySUF0cVFRRjFJZ1lnQmlBSFNoc2dCaUFLU0J0cU9nQUFJQVJCQVdvaEJBdEJBQ0FFYXlJR0N5QUVJQWdnQld0QkFuUWdEV3NnREdwQkJHcEJBM1VpQlNBRklBUktHeUFGSUFaSUd5SUVha0d3TG1vdEFBQTZBQUFnQUNBSUlBUnJRYkF1YWkwQUFEb0FBQXNnQUVFQmFpRUFJQUZCZjJvaUFRMEFDd3Y3QmdFT2Z5QUNLQUlJSVFvZ0FpZ0NCQ0VQQWtBZ0FVRUVUd1JBSUE5QkFuWkJBbW9oRUVFRUlRSURRQUpBSUFCQmYyb2lCUzBBQUNJSElBQXRBQUFpQ0dzaUFTQUJRUjkxSWdGcUlBRnpJZzBnRDA4TkFDQUFRWDVxSWc0dEFBQWlBU0FIYXlJRUlBUkJIM1VpQkdvZ0JITWdDazhOQUNBQUxRQUJJZ2tnQ0dzaUJDQUVRUjkxSWdScUlBUnpJQXBQRFFBQ1FDQU5JQkJKQkVBZ0FDMEFBaUVMQW44Z0FFRjlhaUlOTFFBQUlnUWdCMnNpQmlBR1FSOTFJZ1pxSUFaeklBcEpCRUJCQXlFR0lBVWdDU0FISUFocUlBRnFJZ1ZCQVhScUlBUnFRUVJxUVFOMk9nQUFJQTRnQkNBRmFrRUNha0VDZGpvQUFDQUVRUU5zSVE0Z0JVRUVhaUVNSUFCQmZHb3RBQUFNQVFzZ0J5QUphaUVNUVFJaERrRUNJUVlnQlNFTklBRUxJUVFnRFNBTUlBNXFJQVJCQVhScUlBWjJPZ0FBSUFzZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFwUERRRWdBQ0FISUFscUlBaHFJZ1VnQzJwQkFtcEJBblk2QUFFZ0FDQUZJQXRCQTJ4cUlBQXRBQU5CQVhScVFRUnFRUU4yT2dBQ0lBQWdBU0FGUVFGMGFpQUxha0VFYWtFRGRqb0FBQXdDQ3lBRklBY2dDV29nQVVFQmRHcEJBbXBCQW5ZNkFBQUxJQUFnQVNBSWFpQUpRUUYwYWtFQ2FrRUNkam9BQUFzZ0FDQURhaUVBSUFKQmYyb2lBZzBBQ3d3QkN5QUJJQUlvQWdCcVFYOXFMUUFBSWdWQkFXb2hEVUVBSUFWcklRaEJCQ0VDQTBBQ1FDQUFRWDlxSWc0dEFBQWlCQ0FBTFFBQUlnZHJJZ0VnQVVFZmRTSUJhaUFCY3lBUFR3MEFJQUJCZm1vaURDMEFBQ0lKSUFScklnRWdBVUVmZFNJQmFpQUJjeUFLVHcwQUlBQXRBQUVpQ3lBSGF5SUJJQUZCSDNVaUFXb2dBWE1nQ2s4TkFDQUFMUUFDSVFZZ0JTRUJJQUJCZldvdEFBQWlFQ0FFYXlJUklCRkJIM1VpRVdvZ0VYTWdDa2tFUUNBTUlBa2dDQ0FGSUFRZ0IycEJBV3BCQVhZZ0NVRUJkR3NnRUdwQkFYVWlBU0FCSUFWS0d5QUJJQWhJRzJvNkFBQWdEU0VCQ3lBT0lBUUNmeUFHSUFkcklnd2dERUVmZFNJTWFpQU1jeUFLU1FSQUlBQWdDeUFJSUFVZ0JDQUhha0VCYWtFQmRpQUxRUUYwYXlBR2FrRUJkU0lHSUFZZ0JVb2JJQVlnQ0VnYmFqb0FBU0FCUVFGcUlRRUxRUUFnQVdzaUJnc2dBU0FKSUF0cklBY2dCR3RCQW5ScVFRUnFRUU4xSWdRZ0JDQUJTaHNnQkNBR1NCc2lBV3BCc0M1cUxRQUFPZ0FBSUFBZ0J5QUJhMEd3TG1vdEFBQTZBQUFMSUFBZ0Eyb2hBQ0FDUVg5cUlnSU5BQXNMQzlvSEFRMS9Jd0JCd0FOckloRWtBQ0FHUVFWcUlRa0NRQUpBSUFKQkFFZ05BQ0FEUVFCSURRQWdBaUFKYWlBRVN3MEFJQU1nQjJwQkJXb2dCVXNOQUNBRUlRa2dBeUVLREFFTElBQWdFU0FDSUFNZ0JDQUZJQWtnQjBFRmFpQUpFQXdnRVNFQVFRQWhBZ3NDUUNBSFJRMEFJQUFnQ1NBS2JDQUNhbW9oRTBFUUlBWnJJUlFDUUNBR1FRSjJJaElFUUNBSklBWnJJUlVnRXlBSklBaEJBWFpCQVhGQkFuSnNha0VGYWlFQ0lBY2hCQU5BSUFKQmYyb3RBQUFoQUNBQ1FYNXFMUUFBSVFNZ0FrRjlhaTBBQUNFRklBSkJmR290QUFBaEN5QUNRWHRxTFFBQUlRMGdFaUVQQTBBZ0FTQUNMUUFBSWdvZ0RTQUFJQXRxSWd4cklBTWdCV3BCRkd4cUlBeEJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQUFnQVNBQ0xRQUJJZ3dnQ3lBQUlBTnFRUlJzYWlBRklBcHFJZ3RySUF0QkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBRWdBU0FDTFFBQ0loQWdCU0FBSUFwcVFSUnNhaUFESUF4cUlnVnJJQVZCQW5ScmFrRVFha0VGZFVHd0xtb3RBQUE2QUFJZ0FTQUNMUUFESWc0Z0F5QUtJQXhxUVJSc2FpQUFJQkJxSWdOcklBTkJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQU1nQVVFRWFpRUJJQUpCQkdvaEFpQUFJUTBnQ2lFTElBd2hCU0FRSVFNZ0RpRUFJQTlCZjJvaUR3MEFDeUFCSUJScUlRRWdBaUFWYWlFQ0lBUkJmMm9pQkEwQUN3d0JDeUFIUVg5cUlCUnNJQVpySUFGcVFSQnFJUUVMSUFkQkFuWWlCRVVOQUVIQUFDQUdheUVRSUFsQkFYUWhDaUFKUVFKMElBWnJJUXRCQUNBSmF5SU1RUUYwSVJJZ0FTQUhRUVIwYXlFQ0lBa2dFMm9nQ0VFQmNXcEJBbW9pQUNBSlFRVnNhaUVCQTBBZ0JpSURCRUFEUUNBQ0lBQWdDbW90QUFBaUJTQUJJQXBxTFFBQUlBRWdDV290QUFBaURpQUJJQkpxTFFBQUlnZHFJZ2hySUFoQkFuUnJhaUFCTFFBQUlnMGdBU0FNYWkwQUFDSUlha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQUl0QURCcVFRRnFRUUYyT2dBd0lBSWdBQ0FKYWkwQUFDSVBJQTRnQnlBSWFrRVViR29nQlNBTmFpSU9heUFPUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFDQnFRUUZxUVFGMk9nQWdJQUlnQUMwQUFDSU9JQTBnQlNBSGFrRVViR29nQ0NBUGFpSU5heUFOUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFCQnFRUUZxUVFGMk9nQVFJQUlnQUNBTWFpMEFBQ0FJSUFVZ0QycEJGR3hxSUFjZ0Rtb2lCV3NnQlVFQ2RHdHFRUkJxUVFWMVFiQXVhaTBBQUNBQ0xRQUFha0VCYWtFQmRqb0FBQ0FBUVFGcUlRQWdBa0VCYWlFQ0lBRkJBV29oQVNBRFFYOXFJZ01OQUFzTElBSWdFR29oQWlBQklBdHFJUUVnQUNBTGFpRUFJQVJCZjJvaUJBMEFDd3NnRVVIQUEyb2tBQXUxQlFFRWZ5QUFLQUlVSVFNZ0FDZ0NFQ0VFSUFBb0FnUWhCU0FBS0FJTUlnSWdBU2tDQURjQ0FDQUNJQUVwQWdnM0FnZ2dBaUFGUVFSMElnQnFJZ0lnQVNrQ0VEY0NBQ0FDSUFFcEFoZzNBZ2dnQUNBQ2FpSUNJQUVwQWlBM0FnQWdBaUFCS1FJb053SUlJQUFnQW1vaUFpQUJLUUl3TndJQUlBSWdBU2tDT0RjQ0NDQUFJQUpxSWdJZ0FTa0NRRGNDQUNBQ0lBRXBBa2czQWdnZ0FDQUNhaUlDSUFFcEFsQTNBZ0FnQWlBQktRSllOd0lJSUFBZ0Ftb2lBaUFCS1FKZ053SUFJQUlnQVNrQ2FEY0NDQ0FBSUFKcUlnSWdBU2tDY0RjQ0FDQUNJQUVwQW5nM0FnZ2dBQ0FDYWlJQ0lBRXBBb0FCTndJQUlBSWdBU2tDaUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcEFCTndJQUlBSWdBU2tDbUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcUFCTndJQUlBSWdBU2tDcUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBckFCTndJQUlBSWdBU2tDdUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBc0FCTndJQUlBSWdBU2tDeUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdEFCTndJQUlBSWdBU2tDMkFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdUFCTndJQUlBSWdBU2tDNkFFM0FnZ2dBQ0FDYWlJQUlBRXBBdkFCTndJQUlBQWdBU2tDK0FFM0FnZ2dCQ0FCS1FLQUFqY0NBQ0FFSUFWQkEzUWlBR29pQkNBQktRS0lBamNDQUNBQUlBUnFJZ1FnQVNrQ2tBSTNBZ0FnQUNBRWFpSUVJQUVwQXBnQ053SUFJQUFnQkdvaUJDQUJLUUtnQWpjQ0FDQUFJQVJxSWdRZ0FTa0NxQUkzQWdBZ0FDQUVhaUlFSUFFcEFyQUNOd0lBSUFBZ0JHb2dBU2tDdUFJM0FnQWdBeUFCS1FMQUFqY0NBQ0FBSUFOcUlnTWdBU2tDeUFJM0FnQWdBQ0FEYWlJRElBRXBBdEFDTndJQUlBQWdBMm9pQXlBQktRTFlBamNDQUNBQUlBTnFJZ01nQVNrQzRBSTNBZ0FnQUNBRGFpSURJQUVwQXVnQ053SUFJQUFnQTJvaUF5QUJLUUx3QWpjQ0FDQUFJQU5xSUFFcEF2Z0NOd0lBQytnQ0FRVi9Ba0FnQUNBQkVBSWlBdzBBUVFFaEF5QUJJQUVvQWdCQkFXb2lBallDQUNBQ1FTQkxEUUFnQUVFRUVBTWlBa0YvUmcwQUlBRWdBallDQkNBQVFRUVFBeUlDUVg5R0RRQWdBU0FDTmdJSUlBRW9BZ0FFUUFOQUlBQWdBU0FGUVFKMGFpSUNJZ1JCREdvUUFpSUREUUpCQVNFRElBUW9BZ3dpQmtGL1JnMENJQVFnQmtFQmFpSUROZ0lNSUFRZ0F5QUJLQUlFUVFacWREWUNEQ0FBSUFKQmpBRnFFQUlpQXcwQ1FRRWhBeUFDS0FLTUFTSUVRWDlHRFFJZ0FpQUVRUUZxSWdRMkFvd0JJQUlnQkNBQktBSUlRUVJxZERZQ2pBRWdBRUVCRUFNaUJFRi9SZzBDSUFJZ0JFRUJSallDakFJZ0JVRUJhaUlGSUFFb0FnQkpEUUFMQ3lBQVFRVVFBeUlDUVg5R0RRQWdBU0FDUVFGcU5nS01BeUFBUVFVUUF5SUNRWDlHRFFBZ0FTQUNRUUZxTmdLUUF5QUFRUVVRQXlJQ1FYOUdEUUFnQVNBQ1FRRnFOZ0tVQXlBQVFRVVFBeUlBUVg5R0RRQWdBU0FBTmdLWUEwRUFJUU1MSUFNTFd3RURmeUFBSUFBb0FnQWlCQ0FCSUFBb0FnUWlBbkFpQTBFRWRHb2dBU0FEYXlJQlFRaDBhallDRENBQUlBUWdBaUFBS0FJSWJDSUNRUWgwYWlBQlFRWjBhaUFEUVFOMGFpSUJOZ0lRSUFBZ0FTQUNRUVowYWpZQ0ZBdFZBUUovSUFFZ0FrRUJhaUlESUFNZ0FVa2JJUU1nQUNBQ1FRSjBhaWdDQUNFRUEwQUNRQ0FDUVFGcUlnSWdBVThFUUNBRElRSU1BUXNnQUNBQ1FRSjBhaWdDQUNBRVJ3MEJDd3RCQUNBQ0lBRWdBa1liQ3ljQUlBQkJDQ0FBS0FJSUlnQnJFQU5CZjBZRVFBOExRUUFnQUd0QkFuUkJ6RDlxS0FJQUdndDZBUUovSXdCQklHc2lBaVFBSUFJZ0FDZ0NFRFlDRUNBQ0lBQXBBZ2czQXdnZ0FpQUFLUUlBTndNQUFrQWdBaUFDUVJ4cUVBSWlBQTBBSUFJZ0FrRWNhaEFDSWdBTkFDQUNJQUpCSEdvUUFpSUFEUUJCQVNFQUlBSW9BaHdpQTBIL0FVc05BQ0FCSUFNMkFnQkJBQ0VBQ3lBQ1FTQnFKQUFnQUF2bkJ3RVNmeU1BUVlBT2F5SU1KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQTBFQVNBMEFJQUlnQ1dvZ0JFc05BQ0FESUFkcVFRVnFJQVZMRFFBZ0F5RUtEQUVMSUFBZ0RFSEFDbW9nQWlBRElBUWdCU0FKSUFkQkJXb2dDUkFNSUF4QndBcHFJUUFnQ1NFRVFRQWhBZ3NDUUNBSFFRSjJJaFJGRFFBZ0NVVU5BQ0FFUVFGMElSVkJBQ0FFYXlJV1FRRjBJUm9nQkVFQ2RDQUdhMEY3YWlFWElBQWdCQ0FLYkNBQ2Ftb2dCR29pQUNBRVFRVnNhaUVDSUF3Z0NVRUNkQ0lRYWlFRElBbEJBM1FoRFVFQUlBbHJRUUowSVE0Z0NVRURiRUVDZENFUEEwQWdDU0VGQTBBZ0F5QU5haUFBSUJWcUxRQUFJaEVnQWlBVmFpMEFBQ0FDSUFScUxRQUFJZ3NnQWlBYWFpMEFBQ0lTYWlJS2F5QUtRUUowYTJvZ0FpMEFBQ0lZSUFJZ0Ztb3RBQUFpRTJwQkZHeHFOZ0lBSUFNZ0VHb2dBQ0FFYWkwQUFDSVpJQXNnRWlBVGFrRVViR29nRVNBWWFpSUtheUFLUVFKMGEybzJBZ0FnQXlBQUxRQUFJZ3NnR0NBUklCSnFRUlJzYWlBVElCbHFJZ3BySUFwQkFuUnJhallDQUNBRElBNXFJQUFnRm1vdEFBQWdFeUFSSUJscVFSUnNhaUFMSUJKcUlncHJJQXBCQW5ScmFqWUNBQ0FBUVFGcUlRQWdBMEVFYWlFRElBSkJBV29oQWlBRlFYOXFJZ1VOQUFzZ0FpQVhhaUVDSUFBZ0Yyb2hBQ0FESUE5cUlRTWdGRUYvYWlJVURRQUxDeUFIQkVCQkVDQUdheUVRSUFaQkFuWWhDaUFNSUFoQkFuUnFRUWhxSVFBZ0RFRVVhaUVDQTBBZ0NnUkFJQUpCYkdvb0FnQWhCQ0FDUVhCcUtBSUFJUThnQWtGMGFpZ0NBQ0VOSUFKQmVHb29BZ0FoQlNBQ1FYeHFLQUlBSVFNZ0NpRUpBMEFnQVNBQ0tBSUFJZzRnQkNBRElBOXFJZ1JySUFVZ0RXcEJGR3hxSUFSQkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQUlBQW9BZ0JCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlvQWdRaUN5QVBJQU1nQldwQkZHeHFJQTBnRG1vaUJHc2dCRUVDZEd0cVFZQUVha0VLZFVHd0xtb3RBQUFnQUNnQ0JFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FCSUFFZ0FpZ0NDQ0lJSUEwZ0F5QU9ha0VVYkdvZ0JTQUxhaUlFYXlBRVFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlJUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBSWdBU0FDS0FJTUlnWWdCU0FMSUE1cVFSUnNhaUFESUFocUlnUnJJQVJCQW5ScmFrR0FCR3BCQ25WQnNDNXFMUUFBSUFBb0FneEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQXlBQlFRUnFJUUVnQUVFUWFpRUFJQUpCRUdvaEFpQURJUVFnRGlFUElBc2hEU0FJSVFVZ0JpRURJQWxCZjJvaUNRMEFDd3NnQVNBUWFpRUJJQUJCRkdvaEFDQUNRUlJxSVFJZ0IwRi9haUlIRFFBTEN5QU1RWUFPYWlRQUM5RUhBUXgvSXdCQmdBNXJJZzhrQUNBR1FRVnFJUWtDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSmFpQUVTdzBBSUFkQkJXb2lEaUFEYWlBRlN3MEFJQVFoQ1NBRElRb01BUXNnQUNBUFFjQUthaUFDSUFNZ0JDQUZJQWtnQjBFRmFpSU9JQWtRRENBUFFjQUthaUVBUVFBaEFnc0NRQ0FPUlEwQUlBWkJBbllpRWtVTkFDQUpJQVpySVJNZ0FDQUpJQXBzSUFKcWFrRUZhaUVDSUE4aEFBTkFJQUpCZjJvdEFBQWhDU0FDUVg1cUxRQUFJUU1nQWtGOWFpMEFBQ0VGSUFKQmZHb3RBQUFoQ2lBQ1FYdHFMUUFBSVF3Z0VpRU5BMEFnQUNBQ0xRQUFJZ1FnRENBSklBcHFJZ3RySUFNZ0JXcEJGR3hxSUF0QkFuUnJhallDQUNBQUlBSXRBQUVpQ3lBRElBbHFRUlJzSUFwcUlBUWdCV29pQ21zZ0NrRUNkR3RxTmdJRUlBQWdBaTBBQWlJUUlBUWdDV3BCRkd3Z0JXb2dBeUFMYWlJRmF5QUZRUUowYTJvMkFnZ2dBQ0FDTFFBREloUWdCQ0FMYWtFVWJDQURhaUFKSUJCcUlnTnJJQU5CQW5ScmFqWUNEQ0FBUVJCcUlRQWdBa0VFYWlFQ0lBa2hEQ0FFSVFvZ0N5RUZJQkFoQXlBVUlRa2dEVUYvYWlJTkRRQUxJQUlnRTJvaEFpQU9RWDlxSWc0TkFBc0xJQWRCQW5ZaUJ3UkFRY0FBSUFacklSUWdEeUFHUVFKMElnUnFJZ2tnQmtFVWJHb2hBaUFKSUFoQkFtb2dCbXhCQW5ScUlRQWdCa0VEYkVFQ2RDRUZRUUFnQm1zaURrRURkQ0VUSUFaQkEzUWhDQU5BSUFZaEF5QUdCRUFEUUNBQklBZ2dDV29vQWdBaUNpQUNJQWhxS0FJQUlBSWdCR29vQWdBaUVTQUNJQk5xS0FJQUlndHFJZ3hySUF4QkFuUnJhaUFDS0FJQUlnMGdBaUFPUVFKMEloQnFLQUlBSWd4cVFSUnNha0dBQkdwQkNuVkJzQzVxTFFBQUlBQWdDR29vQWdCQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FNQ0FCSUFRZ0NXb29BZ0FpRWlBUklBc2dER3BCRkd4cUlBb2dEV29pRVdzZ0VVRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQWdBQ0FFYWlnQ0FFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FnSUFFZ0NTZ0NBQ0lSSUEwZ0NpQUxha0VVYkdvZ0RDQVNhaUlOYXlBTlFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFCQWdBU0FKSUJCcUtBSUFJQXdnQ2lBU2FrRVViR29nQ3lBUmFpSUtheUFLUVFKMGEycEJnQVJxUVFwMVFiQXVhaTBBQUNBQUlCQnFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBQWdBRUVFYWlFQUlBbEJCR29oQ1NBQlFRRnFJUUVnQWtFRWFpRUNJQU5CZjJvaUF3MEFDd3NnQVNBVWFpRUJJQUFnQldvaEFDQUNJQVZxSVFJZ0JTQUphaUVKSUFkQmYyb2lCdzBBQ3dzZ0QwR0FEbW9rQUF1MEJnRUpmeU1BUWNBRGF5SU5KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQXlBSGFpQUZTdzBBSUFOQkFFZ05BQ0FDSUFscUlBUkxEUUFnQkNFSklBTWhDZ3dCQ3lBQUlBMGdBaUFESUFRZ0JTQUpJQWNnQ1JBTUlBMGhBRUVBSVFJTElBY0VRRUVRSUFacklSQWdDU0FHYXlFUklBWkJBblloRHlBQUlBa2dDbXdnQW1wcVFRVnFJUWtEUUFKQUlBOUZEUUFnQ1VGL2FpMEFBQ0VDSUFsQmZtb3RBQUFoQmlBSlFYMXFMUUFBSVFNZ0NVRjhhaTBBQUNFRklBbEJlMm90QUFBaENpQVBJZ0FoQ3lBSUJFQURRQ0FCSUFZZ0NTMEFBQ0lFSUFvZ0FpQUZhaUlLYXlBRElBWnFRUlJzYWlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlnQ1MwQUFTSUxJQVVnQWlBR2FrRVViR29nQXlBRWFpSUZheUFGUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQVNBQklBUWdDUzBBQWlJTUlBTWdBaUFFYWtFVWJHb2dCaUFMYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBaUFCSUFzZ0NTMEFBeUlPSUFZZ0JDQUxha0VVYkdvZ0FpQU1haUlEYXlBRFFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUF5QUJRUVJxSVFFZ0NVRUVhaUVKSUFJaENpQUVJUVVnQ3lFRElBd2hCaUFPSVFJZ0FFRi9haUlBRFFBTUFnQUxBQXNEUUNBQklBTWdDUzBBQUNJQUlBb2dBaUFGYWlJRWF5QURJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBQ0FCSUFZZ0NTMEFBU0lFSUFVZ0FpQUdha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFTQUJJQUlnQ1MwQUFpSU1JQU1nQUNBQ2FrRVViR29nQkNBR2FpSURheUFEUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQWlBQklBQWdDUzBBQXlJT0lBWWdBQ0FFYWtFVWJHb2dBaUFNYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBeUFCUVFScUlRRWdDVUVFYWlFSklBSWhDaUFBSVFVZ0JDRURJQXdoQmlBT0lRSWdDMEYvYWlJTERRQUxDeUFCSUJCcUlRRWdDU0FSYWlFSklBZEJmMm9pQncwQUN3c2dEVUhBQTJva0FBdkdCQUVMZnlNQVFjQURheUlOSkFBQ1FBSkFJQUpCQUVnTkFDQURRUUJJRFFBZ0FpQUdhaUFFU3cwQUlBTWdCMnBCQldvZ0JVc05BQ0FESVFrTUFRc2dBQ0FOSUFJZ0F5QUVJQVVnQmlBSFFRVnFJQVlRRENBTklRQWdCaUVFUVFBaEFnc2dCMEVDZGlJUUJFQkJ3QUFnQm1zaEVpQUVRUUYwSVFVZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVRJQUFnQkNBSmJDQUNhbW9nQkdvaUFDQUVRUVZzYWlFQ0lBQWdCQ0FJUVFKcWJHb2hCd05BSUFZaEF5QUdCRUFEUUNBQklBQWdCV290QUFBaUNDQUNJQVZxTFFBQUlBSWdCR290QUFBaUNpQUNJQk5xTFFBQUlnbHFJZ3RySUF0QkFuUnJhaUFDTFFBQUlnd2dBaUFQYWkwQUFDSUxha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQVVnQjJvdEFBQnFRUUZxUVFGMk9nQXdJQUVnQUNBRWFpMEFBQ0lSSUFvZ0NTQUxha0VVYkdvZ0NDQU1haUlLYXlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQUlBUWdCMm90QUFCcVFRRnFRUUYyT2dBZ0lBRWdBQzBBQUNJS0lBd2dDQ0FKYWtFVWJHb2dDeUFSYWlJTWF5QU1RUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFJQWN0QUFCcVFRRnFRUUYyT2dBUUlBRWdBQ0FQYWkwQUFDQUxJQWdnRVdwQkZHeHFJQWtnQ21vaUNHc2dDRUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBQ0FISUE5cUxRQUFha0VCYWtFQmRqb0FBQ0FIUVFGcUlRY2dBRUVCYWlFQUlBRkJBV29oQVNBQ1FRRnFJUUlnQTBGL2FpSUREUUFMQ3lBQklCSnFJUUVnQnlBT2FpRUhJQUlnRG1vaEFpQUFJQTVxSVFBZ0VFRi9haUlRRFFBTEN5QU5RY0FEYWlRQUM0OEhBUXgvSUFFb0FnZ2hDeUFCS0FJRUlRWUNRQUpBQWtBZ0FrRUZTdzBBSUFKQkFXc09CQUFBQUFBQkN5QUFLQUs0R2cwQURBRUxJQUJCeEFscUlRUURRQ0FFSUFNUUZDRUhJQU5CRGtzTkFTQURRUUZxSVFNZ0IwVU5BQXNMQWtBQ1FBSkFBa0FnQUNnQ21Ba2lDQVJBSUFBb0Fyd0pJUXBCQUNFRFFRQWhCQU5BSUFvZ0EwSFlBV3hxS0FMRUFVVUVRRUVBSUFSQkFXb2lCQ0FFSUFaR0lnVWJJUVFnQlNBSmFpRUpJQU5CQVdvaUF5QUlTUTBCQ3dzZ0F5QUlSdzBCQ3dKQUFrQWdBa0YrYWlJQ1FRVkxEUUFDUUNBQ1FRRnJEZ1FCQVFFQkFBc2dCMFVOQVNBQUtBSzRHa1VOQVF3REN5QUhEUUlMSUFFb0FnQkJnQUVnQmlBTGJFR0FBMndRQnhvTUFnc2dBQ2dDdkFrZ0JpQUpiRUhZQVd4cUlRZ2dCQVJBSUFRaEF3TkFJQWdnQTBGL2FpSURRZGdCYkdvaUNpQUJJQWtnQXlBQ0lBY1FGaUFLUVFFMkFzUUJJQUFnQUNnQ3RBbEJBV28yQXJRSklBTU5BQXNMSUFSQkFXb2lBeUFHU1FSQUEwQWdDQ0FEUWRnQmJHb2lCQ2dDeEFGRkJFQWdCQ0FCSUFrZ0F5QUNJQWNRRmlBRVFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpDeUFEUVFGcUlnTWdCa2NOQUFzTEFrQWdDVVVOQUNBR1JRMEFRUUFoQlNBSlFYOXFJZ3dnQm13aERTQU1SUVJBQTBBZ0FDZ0N2QWtnRFVIWUFXeHFJQVZCMkFGc2FpSUVJQUZCQUNBRklBSWdCeEFXSUFSQkFUWUN4QUVnQUNBQUtBSzBDVUVCYWpZQ3RBa2dCVUVCYWlJRklBWkhEUUFNQWdBTEFBc2dDVUYrYWlFSVFRQWdCbXRCMkFGc0lRNERRQ0FBS0FLOENTQU5RZGdCYkdvZ0JVSFlBV3hxSWdNZ0FTQU1JQVVnQWlBSEVCWWdBMEVCTmdMRUFTQUFJQUFvQXJRSlFRRnFOZ0swQ1NBSUlRUURRQ0FESUE1cUlnTWdBU0FFSWdvZ0JTQUNJQWNRRmlBRFFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpJQVJCZjJvaEJDQUtEUUFMSUFWQkFXb2lCU0FHUncwQUN3c2dDVUVCYWlJRklBdFBEUUlnQmtVTkFnTkFJQUFvQXJ3SklBVWdCbXhCMkFGc2FpRUlRUUFoQXdOQUlBZ2dBMEhZQVd4cUlnUW9Bc1FCUlFSQUlBUWdBU0FGSUFNZ0FpQUhFQllnQkVFQk5nTEVBU0FBSUFBb0FyUUpRUUZxTmdLMENRc2dBMEVCYWlJRElBWkhEUUFMSUFWQkFXb2lCU0FMUncwQUN3d0NDeUFCS0FJQUlBY2dCaUFMYkVHQUEyd1FGUm9MSUFBZ0FDZ0NtQWtpQVRZQ3RBa2dBVVVOQUNBQUtBSzhDU0VBUVFBaEF3TkFJQUFnQTBIWUFXeHFRUUUyQWdnZ0EwRUJhaUlESUFGSERRQUxDd3MyQVFKL0lBQW9BaWdpQWdSQUEwQWdBQ2dDQkNBQlFRSjBhaUFBS0FJQUlBRkJLR3hxTmdJQUlBRkJBV29pQVNBQ1J3MEFDd3NMOXdRQ0RIOEJma0VISVFVakFFRWdheUlJSVF3RFFDQUZJQUZKQkVBZ0FFRUFJQVZyUVNoc2FpRUtJQVVoQmdOQUlBQWdCa0VvYkdvaUFpZ0NDQ0VKSUFJcEFnQWhEaUFJSUFJcEFndzNBeGdnQWlnQ0dDRU5JQUlvQWhRaEN5QU1JQUlvQWlRMkFoQWdDQ0FDS1FJY053TUlBa0FnQmlJRElBVkpEUUFDUUNBTFJRUkFBMEFnQ2lBRFFTaHNJZ0pxSWdRb0FoUU5BaUFOUlEwQ0lBUW9BaGdOQWlBQUlBSnFJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3lBTFFYOXFRUUZOQkVBRFFBSi9Ba0FnQ2lBRFFTaHNJZ0pxSWdRb0FoUWlCMFVOQUNBSFFYOXFRUUZMRFFBZ0JDZ0NDQ0lISUFsS0RRUWdBQ0FDYWlJRUlBY2dDVWdOQVJvZ0JDRUNEQVVMSUFBZ0Ftb0xJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3dOQUlBb2dBMEVvYkNJQ2FpSUVLQUlVSWdjRVFDQUhRWDlxUVFKSkRRSWdCQ2dDQ0NBSlRBMENDeUFBSUFKcUlnUWdBQ0FESUFWcklnTkJLR3hxSWdJcEFnQTNBZ0FnQkNBQ0tRSWdOd0lnSUFRZ0Fpa0NHRGNDR0NBRUlBSXBBaEEzQWhBZ0JDQUNLUUlJTndJSUlBTWdCVThOQUFzTUFRc2dBQ0FEUVNoc2FpRUNDeUFDSUE0M0FnQWdBQ0FEUVNoc2FpSURJQWsyQWdnZ0NDa0RHQ0VPSUFNZ0RUWUNHQ0FESUFzMkFoUWdBeUFPTndJTUlBTWdDQ2tEQ0RjQ0hDQURJQXdvQWhBMkFpUWdCa0VCYWlJR0lBRkhEUUFMQ3lBRlFRRjJJZ1VOQUFzTHJRVUJBWDhDUUNBQUtBSUFJZ0VvQWhSRkRRQWdBVUVBTmdJVUlBRW9BaGdOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ1BFVU5BQ0FCUVFBMkFqd2dBVUZBYXlnQ0FBMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUprUlEwQUlBRkJBRFlDWkNBQktBSm9EUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQW93QlJRMEFJQUZCQURZQ2pBRWdBU2dDa0FFTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0N0QUZGRFFBZ0FVRUFOZ0swQVNBQktBSzRBUTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMY0FVVU5BQ0FCUVFBMkF0d0JJQUVvQXVBQkRRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9Bb1FDUlEwQUlBRkJBRFlDaEFJZ0FTZ0NpQUlOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ3JBSkZEUUFnQVVFQU5nS3NBaUFCS0FLd0FnMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUxVQWtVTkFDQUJRUUEyQXRRQ0lBRW9BdGdDRFFBZ0FDQUFLQUlzUVg5cU5nSXNDd0pBSUFFb0F2d0NSUTBBSUFGQkFEWUMvQUlnQVNnQ2dBTU5BQ0FBSUFBb0FpeEJmMm8yQWl3TEFrQWdBU2dDcEFORkRRQWdBVUVBTmdLa0F5QUJLQUtvQXcwQUlBQWdBQ2dDTEVGL2FqWUNMQXNDUUNBQktBTE1BMFVOQUNBQlFRQTJBc3dESUFFb0F0QUREUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQXZRRFJRMEFJQUZCQURZQzlBTWdBU2dDK0FNTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0NuQVJGRFFBZ0FVRUFOZ0tjQkNBQktBS2dCQTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMRUJFVU5BQ0FCUVFBMkFzUUVJQUVvQXNnRURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9BdXdFUlEwQUlBRkJBRFlDN0FRZ0FTZ0M4QVFOQUNBQUlBQW9BaXhCZjJvMkFpd0xBMEFnQUJCZVJRMEFDeUFBUVFBMkFqQWdBRUwvL3dNM0FpUUwzUTRCQ1g4Z0FpZ0NBQ0FBS0FJSUlnSW9BZ0JHQkVBZ0FFRUFOZ0kwSUFBb0FqZ2lDMFVoRFFKQUlBRkZCRUFnQWlBRE5nSU1JQUpCQURZQ0ZDQUNJQTAyQWhnZ0FpQUVOZ0lRSUFJZ0F6WUNDQ0FMRFFFZ0FDQUFLQUlzUVFGcU5nSXNEQUVMSUFVRVFDQUFRZ0EzQWhBZ0FCQW9Ba0FnQVNnQ0FFVUVRQ0FBS0FJNFJRMEJDeUFBUWdBM0FoQUxJQUFvQWdnaUFrRURRUUlnQVNnQ0JDSUJHellDRkNBQVFRQkIvLzhESUFFYk5nSWtJQUlnRFRZQ0dDQUNRUUEyQWhBZ0FrSUFOd0lJSUFCQ2dZQ0FnQkEzQWlnTUFRc0NRQUpBQWtBZ0FTZ0NDQVJBUVFBaEN3TkFJQUVnQzBFVWJHb2lDQ2dDRENJQ1FRWkxEUUlDUUFKQUFrQUNRQUpBQWtBQ1FDQUNRUUZyRGdZQUFRSURCQVVKQ3lBQUtBSVlJZ2xGRFFnZ0F5QUlLQUlRYXlFTUlBQW9BZ0FoQ2tFQUlRZ0RRQUpBSUFvZ0NFRW9iR29pQWlnQ0ZFRi9ha0VCVFFSQUlBSW9BZ2dnREVZTkFRc2dDRUVCYWlJSUlBbEhEUUVNQ2dzTElBaEJBRWdOQ0NBQ1FRQTJBaFFnQUNBQUtBSW9RWDlxTmdJb0lBSW9BaGdOQlNBQUlBQW9BaXhCZjJvMkFpd2dDMEVCYWlFTERBWUxJQUFvQWhnaUNVVU5CeUFJS0FJVUlRd2dBQ2dDQUNFS1FRQWhDQU5BQWtBZ0NpQUlRU2hzYWlJQ0tBSVVRUU5HQkVBZ0FpZ0NDQ0FNUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdKQ3dzZ0NFRUFTQTBISUFKQkFEWUNGQ0FBSUFBb0FpaEJmMm8yQWlnZ0FpZ0NHQTBFSUFBZ0FDZ0NMRUYvYWpZQ0xDQUxRUUZxSVFzTUJRc2dBQ2dDSkNJQ1FmLy9BMFlOQmlBQ0lBZ29BaGdpREVrTkJpQUFLQUlZSWdsRkRRWWdDQ2dDRUNFT0lBQW9BZ0FoQ2tFQUlRSURRQUpBQWtBZ0NpQUNRU2hzYWlJSUtBSVVRUU5IRFFBZ0NDZ0NDQ0FNUncwQUlBaEJBRFlDRkNBQUlBQW9BaWhCZjJvMkFpZ2dDQ2dDR0EwQklBQWdBQ2dDTEVGL2FqWUNMQXdCQ3lBQ1FRRnFJZ0lnQ1VjTkFRc0xJQWxCQVNBSlFRRkxHeUVKSUFNZ0Rtc2hEa0VBSVFnRFFBSkFJQW9nQ0VFb2JHb2lBaWdDRkNJUFFYOXFRUUZOQkVBZ0FpZ0NDQ0FPUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdJQ3dzZ0NFRUFTQTBHSUE5QkFra05CaUFDUVFNMkFoUWdBaUFNTmdJSUlBdEJBV29oQ3d3RUN5QUFJQWdvQWh3aUNUWUNKQ0FBS0FJWUlneEZEUUlnQUNnQ0FDRUtRUUFoQWlBSlFmLy9BMFlFUUFOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDRUVBTmdJVUlBQWdBQ2dDS0VGL2FqWUNLQ0FJS0FJWURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQ1FRRnFJZ0lnREVjTkFBd0VBQXNBQ3dOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDQ2dDQ0NBSlRRMEFJQWhCQURZQ0ZDQUFJQUFvQWloQmYybzJBaWdnQ0NnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FrRUJhaUlDSUF4SERRQUxEQUlMSUFBUUtDQUFRUUUyQWpSQkFDRURJQXRCQVdvaEN3d0NDeUFBS0FJa0lnSkIvLzhEUmcwRElBSWdDQ2dDR0NJTVNRMERJQUFvQWhnaUNrVU5BeUFBS0FJQUlRaEJBQ0VDQWtBRFFBSkFJQWdnQWtFb2JHb2lDU2dDRkVFRFJ3MEFJQWtvQWdnZ0RFY05BQ0FKUVFBMkFoUWdBQ0FBS0FJb1FYOXFJZ2cyQWlnZ0NTZ0NHQTBDSUFBZ0FDZ0NMRUYvYWpZQ0xBd0NDeUFDUVFGcUlnSWdDa2NOQUFzZ0FDZ0NLQ0VJQ3lBSUlBcFBEUU1nQUNnQ0NDSUNRUU0yQWhRZ0FpQUVOZ0lRSUFJZ0REWUNDQ0FDSUFNMkFnd2dBaUFBS0FJNFJUWUNHRUVCSVJBZ0FDQUlRUUZxTmdJb0lBQWdBQ2dDTEVFQmFqWUNMQXNnQzBFQmFpRUxEQUFBQ3dBTFFRQWhBaUFBS0FJb0lna2dBQ2dDR0NJTFNRMEJJQWxGQkVCQkFDRUpEQUlMSUFBb0FnQWhERUYvSVFFRFFDQU1JQUpCS0d4cUlnb29BaFJCZjJwQkFVMEVRQ0FLS0FJSUlnb2dDQ0FCUVg5R0lBb2dDRWh5SWdvYklRZ2dBaUFCSUFvYklRRUxJQUpCQVdvaUFpQUpSdzBBQ3lBQlFRQklEUUVnRENBQlFTaHNhaUlCUVFBMkFoUWdBQ0FKUVg5cUlnazJBaWdnQVNnQ0dBMEJJQUFnQUNnQ0xFRi9hallDTEF3QkN5QVFEUUVnQUNnQ0dDRUxJQUFvQWlnaENRc2dDU0FMVHcwQklBQW9BZ2dpQVNBTk5nSVlJQUZCQWpZQ0ZDQUJJQVEyQWhBZ0FTQUROZ0lJSUFFZ0F6WUNEQ0FBSUFsQkFXbzJBaWdnQUNBQUtBSXNRUUZxTmdJc0N3c2dBQ2dDQ0NJQklBYzJBaUFnQVNBR05nSWNJQUVnQlRZQ0pBSkFJQUFvQWpoRkJFQWdBQ2dDTENJSklBQW9BaHdpQTAwTkFTQUFLQUlBSVFRRFFFSC8vLy8vQnlFRlFRQWhCa0VBSVFJRFFDQUVJQUpCS0d4cUlnRW9BaGdFUUNBQklBWWdBU2dDRUNJQklBVklJZ2NiSVFZZ0FTQUZJQWNiSVFVTElBSkJBV29pQWlBRFRRMEFDd0pBSUFaRkRRQWdBQ2dDRENBQUtBSVFJZ0pCQkhScUlnRWdCaWdDQURZQ0FDQUJJQVlvQWlRMkFnd2dBU0FHS0FJY05nSUVJQUVnQmlnQ0lEWUNDQ0FBSUFKQkFXbzJBaEFnQmtFQU5nSVlJQVlvQWhRTkFDQUFJQWxCZjJvaUNUWUNMQXNnQ1NBRFN3MEFDd3dCQ3lBQktBSUFJUUlnQUNnQ0RDQUFLQUlRSWdOQkJIUnFJZ0VnQlRZQ0RDQUJJQUkyQWdBZ0FTQUhOZ0lJSUFFZ0JqWUNCQ0FBSUFOQkFXbzJBaEFnQUNnQ0hDRURDeUFBS0FJQUlBTkJBV29RSndzTDFBc0NBbjhCZmlNQVFaQUJheUlFSkFBZ0JFRUFOZ0lNQWtBQ1FBSkFJQUFvQXBBYVJRMEFJQUFvQXBRYUlBRkhEUUFnQkNBQVFhUWFhaWtDQURjREdDQUFLUUtjR2lFR0lBUkJBRFlDR0NBRUlBWTNBeEFnQkVFQU5nSWdJQVFnQmo0Q0ZDQURJQUFvQXBnYU5nSUFEQUVMUVFNaEJTQUJJQUlnQkVFUWFpQURFR01OQVNBQUlBUXBBeEEzQXB3YUlBQkJyQnBxSUFRb0FpQTJBZ0FnQUVHa0dtb2dCQ2tER0RjQ0FDQURLQUlBSVFJZ0FDQUJOZ0tVR2lBQUlBSTJBcGdhQzBFQUlRVWdBRUVBTmdLUUdpQUVRUkJxSUFSQmlBRnFFRThFUUVFRElRVU1BUXNnQkNnQ2lBRkJmMnBCQzBzTkFDQUVRUkJxSUFSQmlBRnFJQUFnQkVFTWFoQXlJZ0VFUUVFRUlRVWdBVUh3L3dOR0RRRkJBeUVGREFFTEFrQWdCQ2dDREFSQUFrQWdBQ2dDb0FsRkRRQWdBQ2dDRUVVTkFFRURJUVVnQUNnQ3RCb05Bd0pBSUFBb0FxUUpSUVJBSUFCQnhBbHFJZ0lpQVNBQktBSUFJQUVvQWh4QktHeHFJZ0UyQWdnZ0FDQUJLQUlBTmdLNENpQUNFQ1lnQUNBQVFiZ0tha0VBRUNVTUFRc2dBQ0FBUWJnS2FpQUFRZHdLYWlnQ0FCQWxDeUFEUVFBMkFnQWdBRUVBTmdLY0NTQUFRUUUyQXBBYURBSUxJQUJCQURZQ25Ba2dBRUVBTmdLa0NRc2dCQ2dDaUFGQmYyb2lBVUVIU3cwQkFrQUNRQUpBSUFGQkFXc09Cd1FFQkFJRUFBRUNDeUFFUVJCcUlBUkJLR29RUXdSQUlBUW9BbEFRQkNBRVFRQTJBbEFnQkNnQ2ZCQUVJQVJCQURZQ2ZFRURJUVVNQkFzZ0FDQUVRU2hxRURjTUF3c2dCRUVRYWlBRVFTaHFFRXdFUUNBRUtBSThFQVFnQkVFQU5nSThJQVFvQWtBUUJDQUVRUUEyQWtBZ0JDZ0NSQkFFSUFSQkFEWUNSQ0FFS0FKVUVBUWdCRUVBTmdKVVFRTWhCUXdEQ3lBQUlBUkJLR29RTmd3Q0N5QUFLQUtjQ1EwQklBQkJBVFlDb0FrQ1FDQUFLQUtrQ1EwQUlBQkNBRGNDdEFrZ0JFRVFhaUFFUVNocUVDQWFJQUFvQWdnaEFTQUFJQVFvQWlnZ0JDZ0NpQUZCQlVZUU5TSUNCRUFnQUVLQWdvQ0FnQVEzQWdRZ0FFRUFOZ0swR2lBQVFnQTNBZ3hCQlVFRUlBSkIvLzhEUmhzaEJRd0RDeUFCSUFBb0FnaEdEUUFnQUNnQ0VDRUJJQVJCQVRZQ0NDQUFLQUlBSWdKQkgwMEVRQ0FBSUFKQkFuUnFLQUlVSVFVTElBTkJBRFlDQUNBQVFRRTJBcEFhQWtBQ1FBSkFJQVFvQW9nQlFRVkhEUUFnQkVFSWFpQUVRUkJxSUFFZ0FDZ0NEQkE0SUFRb0FnaHlEUUFnQlVVTkFDQUFRZndKYWlnQ0FBMEFJQVVvQWpRZ0FTZ0NORWNOQUNBRktBSTRJQUVvQWpoSERRQWdCU2dDV0NBQktBSllSZzBCQ3lBQVFZQUtha0VBTmdJQURBRUxJQUJCeEFscUVGa0xJQUFnQUNnQ0NEWUNBRUVDSVFVTUFnc2dBQ2dDdEJvRVFFRURJUVVNQWdzZ0JFRVFhaUFBUWJRU2FpSUNJQUFvQWhBZ0FDZ0NEQ0FFUVlnQmFoQStCRUJCQXlFRkRBSUxJQUFvQXFRSlJRUkFBa0FnQkNnQ2lBRkJCVVlOQUNBQVFjUUphaUFBUWNBU2FpZ0NBQ0FFS0FLTUFVRUFSeUFBS0FJUUtBSXdFRnBGRFFCQkF5RUZEQU1MSUFCQnhBbHFJZ0VnQVNnQ0FDQUJLQUljUVNoc2FpSUJOZ0lJSUFBZ0FTZ0NBRFlDdUFvTElBQkIyQXBxSUFKQjNBY1FGU0VCSUFCQkFUWUNwQWtnQUNBRUtRT0lBVGNDMEFvZ0FDZ0NsQWtnQUNnQ0RDQUFRWmdMYWlnQ0FDQUFLQUlRSWdJb0FqUWdBaWdDT0JBL0lBQkJ4QWxxSWdJUUppQUNJQUJCbkF0cUlBQkI1QXBxS0FJQUlBQkJoQXRxS0FJQUVGOEVRRUVESVFVTUFnc2dCRUVRYWlBQUlBQkJ1QXBxSUFFUVFRUkFJQUFnQUNnQzJBb1FRRUVESVFVTUFnc2dBQkF6UlEwQklBQkJBVFlDbkFrTElBQkJ1QXBxSWdFZ0FDZ0N2QWtRU1NBQUVEUWdBRUdFQ21vZ0FDZ0NFQ0FBUWRnS2FpQUFRZEFLYWhCTklRSUNRQ0FBS0FLa0NVVU5BQ0FBUWNRSmFpRURJQUJCMUFwcUtBSUFCRUFnQXlBQVFld01haUFCSUFCQjVBcHFLQUlBSUFJZ0FDZ0MwQXBCQlVZZ0FDZ0N1QWtnQUNnQ3RBa1FLUXdCQ3lBRFFRQWdBU0FBUWVRS2FpZ0NBQ0FDSUFBb0F0QUtRUVZHSUFBb0FyZ0pJQUFvQXJRSkVDa0xJQUJDQURjQ29BbEJBU0VGQ3lBRVFaQUJhaVFBSUFVTHFBd0JDMzhDUUNBQlFRUlBCRUJCQUNBRGF5SU5RUUYwSVFvQ1FDQUFJQU5ySWdVdEFBQWlCaUFBTFFBQUlnaHJJZ0VnQVVFZmRTSUJhaUFCY3lBQ0tBSUVJZ0ZQRFFBZ0FDQUthaTBBQUNJSElBWnJJZ1FnQkVFZmRTSUVhaUFFY3lBQ0tBSUlJZ3hQRFFBZ0FDQURhaTBBQUNJRUlBaHJJZ3NnQzBFZmRTSUxhaUFMY3lBTVR3MEFJQVVnQkNBR2FpQUhRUUYwYWtFQ2FrRUNkam9BQUNBQUlBZ2dCRUVCZEdvZ0IycEJBbXBCQW5ZNkFBQWdBaWdDQkNFQkN3SkFJQUJCQVdvaUJpQU5haUlNTFFBQUlnZ2dBQzBBQVNJSGF5SUVJQVJCSDNVaUJHb2dCSE1nQVU4TkFDQUdJQXBxTFFBQUlnUWdDR3NpQlNBRlFSOTFJZ1ZxSUFWeklBSW9BZ2dpQzA4TkFDQURJQVpxTFFBQUlnVWdCMnNpQ1NBSlFSOTFJZ2xxSUFseklBdFBEUUFnRENBRklBaHFJQVJCQVhScVFRSnFRUUoyT2dBQUlBWWdCeUFGUVFGMGFpQUVha0VDYWtFQ2Rqb0FBQ0FDS0FJRUlRRUxBa0FnQUVFQ2FpSUdJQTFxSWd3dEFBQWlDQ0FBTFFBQ0lnZHJJZ1FnQkVFZmRTSUVhaUFFY3lBQlR3MEFJQVlnQ21vdEFBQWlCQ0FJYXlJRklBVkJIM1VpQldvZ0JYTWdBaWdDQ0NJTFR3MEFJQU1nQm1vdEFBQWlCU0FIYXlJSklBbEJIM1VpQ1dvZ0NYTWdDMDhOQUNBTUlBVWdDR29nQkVFQmRHcEJBbXBCQW5ZNkFBQWdCaUFISUFWQkFYUnFJQVJxUVFKcVFRSjJPZ0FBSUFJb0FnUWhBUXNDUUNBQVFRTnFJZ1lnRFdvaURDMEFBQ0lJSUFBdEFBTWlCMnNpQkNBRVFSOTFJZ1JxSUFSeklBRlBEUUFnQmlBS2FpMEFBQ0lFSUFocklnVWdCVUVmZFNJRmFpQUZjeUFDS0FJSUlndFBEUUFnQXlBR2FpMEFBQ0lGSUFkcklna2dDVUVmZFNJSmFpQUpjeUFMVHcwQUlBd2dCU0FJYWlBRVFRRjBha0VDYWtFQ2Rqb0FBQ0FHSUFjZ0JVRUJkR29nQkdwQkFtcEJBblk2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJCR29pQmlBTmFpSU1MUUFBSWdnZ0FDMEFCQ0lIYXlJRUlBUkJIM1VpQkdvZ0JITWdBVThOQUNBR0lBcHFMUUFBSWdRZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFJb0FnZ2lDMDhOQUNBRElBWnFMUUFBSWdVZ0Iyc2lDU0FKUVI5MUlnbHFJQWx6SUF0UERRQWdEQ0FGSUFocUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFZZ0J5QUZRUUYwYWlBRWFrRUNha0VDZGpvQUFDQUNLQUlFSVFFTEFrQWdBRUVGYWlJR0lBMXFJZ3d0QUFBaUNDQUFMUUFGSWdkcklnUWdCRUVmZFNJRWFpQUVjeUFCVHcwQUlBWWdDbW90QUFBaUJDQUlheUlGSUFWQkgzVWlCV29nQlhNZ0FpZ0NDQ0lMVHcwQUlBTWdCbW90QUFBaUJTQUhheUlKSUFsQkgzVWlDV29nQ1hNZ0MwOE5BQ0FNSUFVZ0NHb2dCRUVCZEdwQkFtcEJBblk2QUFBZ0JpQUhJQVZCQVhScUlBUnFRUUpxUVFKMk9nQUFJQUlvQWdRaEFRc0NRQ0FBUVFacUlnWWdEV29pREMwQUFDSUlJQUF0QUFZaUIyc2lCQ0FFUVI5MUlnUnFJQVJ6SUFGUERRQWdCaUFLYWkwQUFDSUVJQWhySWdVZ0JVRWZkU0lGYWlBRmN5QUNLQUlJSWd0UERRQWdBeUFHYWkwQUFDSUZJQWRySWdrZ0NVRWZkU0lKYWlBSmN5QUxUdzBBSUF3Z0JTQUlhaUFFUVFGMGFrRUNha0VDZGpvQUFDQUdJQWNnQlVFQmRHb2dCR3BCQW1wQkFuWTZBQUFnQWlnQ0JDRUJDeUFOSUFCQkIyb2lEV29pQ0MwQUFDSUdJQUF0QUFjaUFHc2lCeUFIUVI5MUlnZHFJQWR6SUFGUERRRWdDaUFOYWkwQUFDSUJJQVpySWdvZ0NrRWZkU0lLYWlBS2N5QUNLQUlJSWdwUERRRWdBeUFOYWkwQUFDSUNJQUJySWdNZ0EwRWZkU0lEYWlBRGN5QUtUdzBCSUFnZ0FpQUdhaUFCUVFGMGFrRUNha0VDZGpvQUFDQU5JQUFnQWtFQmRHb2dBV3BCQW1wQkFuWTZBQUFQQzBFQUlBTnJJZ2RCQVhRaEJDQUJJQUlvQWdCcVFYOXFMUUFBSWdGQkFXb2hCaUFCUVg5eklRaEJDQ0VCQTBBQ1FDQUFJQWRxSWdVdEFBQWlDaUFBTFFBQUlnMXJJZ3dnREVFZmRTSU1haUFNY3lBQ0tBSUVUdzBBSUFBZ0JHb3RBQUFpRENBS2F5SUxJQXRCSDNVaUMyb2dDM01nQWlnQ0NDSUxUdzBBSUFBZ0Eyb3RBQUFpQ1NBTmF5SU9JQTVCSDNVaURtb2dEbk1nQzA4TkFDQUZJQW9nQ0NBR0lBMGdDbXRCQW5RZ0NXc2dER3BCQkdwQkEzVWlDaUFLSUFaS0d5QUtJQWhJR3lJS2FrR3dMbW90QUFBNkFBQWdBQ0FOSUFwclFiQXVhaTBBQURvQUFBc2dBRUVCYWlFQUlBRkJmMm9pQVEwQUN3c0w2Z2dCQW44Z0FVRUFRYmdIRUFjaEFrRUJJUUVDUUFKQUlBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBZ0FDUUNBRFFRRkhEUUFnQUVFSUVBTWlBMEYvUmcwQklBSWdBellDQkNBRFFmOEJSdzBBSUFCQkVCQURJZ05CZjBZTkFTQUNJQU0yQWdnZ0FFRVFFQU1pQTBGL1JnMEJJQUlnQXpZQ0RBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDRUNBRFFRRkdCRUFnQUVFQkVBTWlBMEYvUmcwQklBSWdBMEVCUmpZQ0ZBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDR0FKQUFrQWdBMEVCUmdSQUlBQkJBeEFESWdOQmYwWU5BeUFDSUFNMkFod2dBRUVCRUFNaUEwRi9SZzBESUFJZ0EwRUJSallDSUNBQVFRRVFBeUlEUVg5R0RRTWdBaUFEUVFGR05nSWtJQU5CQVVjTkFTQUFRUWdRQXlJRFFYOUdEUU1nQWlBRE5nSW9JQUJCQ0JBRElnTkJmMFlOQXlBQ0lBTTJBaXdnQUVFSUVBTWlBMEYvUncwQ0RBTUxJQUpCQlRZQ0hBc2dBa0tDZ0lDQUlEY0NLRUVDSVFNTElBSWdBellDTUNBQVFRRVFBeUlEUVg5R0RRQWdBaUFEUVFGR05nSTBBa0FnQTBFQlJ3MEFJQUFnQWtFNGFoQUNJZ0VOQVNBQ0tBSTRRUVZMRFFJZ0FDQUNRVHhxRUFJaUFRMEJJQUlvQWp4QkJVME5BQXdDQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDUUNBRFFRRkdCRUFnQUJBUElRRWdBRUVnRUFzaEF5QUJSUTBDSUFOQmYwWU5BaUFDSUFFMkFrUWdBQkFQSVFFZ0FFRWdFQXNoQXlBQlJRMENJQU5CZjBZTkFpQUNJQUUyQWtoQkFTRUJJQUJCQVJBRElnTkJmMFlOQVNBQ0lBTkJBVVkyQWt3TElBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBbEFDUUNBRFFRRkdCRUFnQUNBQ1FkUUFhaEFjSWdGRkRRRU1BZ3NnQWtFQk5nSlVJQUpDbUlDQWdJQUROd0xvQXlBQ1FwaUFnSUNBQXpjQzRBTWdBa0dCa0txSkFUWUM0QUVnQWtHQmtLcUpBVFlDWUF0QkFTRUJJQUJCQVJBRElnTkJmMFlOQUNBQ0lBTkJBVVkyQXZBREFrQWdBMEVCUmdSQUlBQWdBa0gwQTJvUUhDSUJSUTBCREFJTElBSkJBVFlDOUFNZ0FrS1lnSUNBZ0FNM0FvZ0hJQUpDbUlDQWdJQUROd0tBQnlBQ1FZRzR1UElBTmdLQUJTQUNRWUc0dVBJQU5nS0FCQXNDUUNBQ0tBSlFSUVJBSUFJb0F2QURSUTBCQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBCSUFJZ0EwRUJSallDa0FjTFFRRWhBU0FBUVFFUUF5SURRWDlHRFFBZ0FpQURRUUZHTmdLVUJ5QUFRUUVRQXlJRFFYOUdEUUFnQWlBRFFRRkdOZ0tZQndKQUlBTkJBVVlFUUNBQVFRRVFBeUlEUVg5R0RRSWdBaUFEUVFGR05nS2NCeUFBSUFKQm9BZHFFQUlpQVEwQ0lBSW9BcUFIUVJCTERRTWdBQ0FDUWFRSGFoQUNJZ0VOQWlBQ0tBS2tCMEVRU3cwRElBQWdBa0dvQjJvUUFpSUJEUUlnQWlnQ3FBZEJFRXNOQXlBQUlBSkJyQWRxRUFJaUFRMENRUUVoQVNBQ0tBS3NCMEVRU3cwQ0lBQWdBa0d3QjJvUUFpSUJEUUlnQUNBQ1FiUUhhaEFDSWdGRkRRRU1BZ3NnQWtFUU5nSzBCeUFDUXBDQWdJQ0FBamNDckFjZ0FrS0JnSUNBZ0FJM0FxUUhJQUpDZ1lDQWdDQTNBcHdIQzBFQUlRRUxJQUVQQzBFQkMwMEJBbjhqQUVFUWF5SURKQUJCQVNFRUFrQWdBQ0FEUVF4cUVBSU5BQ0FES0FJTUlnQkJMMHNOQUNBQlFkQS9RWURBQUNBQ0d5QUFhaTBBQURZQ0FFRUFJUVFMSUFOQkVHb2tBQ0FFQ3o0QkFuOENRQ0FBS0FJTVFRTjBJQUFvQWhCcklnRkZCRUFNQVF0QkFTRUNJQUZCQ0VzTkFFRUJJQUZCZjJwMElBQVFEMEVnSUFGcmRrY1BDeUFDQ3pJQkFuOENRRUdBZ0lEQUFDSUJJQUJ4RFFBRFFDQUNRUUZxSVFJZ0FVRUJkaUlCUlEwQklBQWdBWEZGRFFBTEN5QUNDNG9DQVFkL0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRUNRUUVoQXlBQlFRWlBCRUJCQUNFRElBSWdBVUdRUEdvdEFBQkJmMnAwSVFJTElBQWdBQ2dDQUNJQklBQW9BZ2dpQkdzaUJTQUFLQUlFSWdZZ0FDZ0NEQ0lIYXlJSWF5QUNiQ0FEZFRZQ0RDQUFJQVVnQ0dvZ0Ftd2dBM1UyQWdnZ0FDQUJJQVJxSWdFZ0JpQUhhaUlFYXlBQ2JDQURkVFlDQkNBQUlBRWdCR29nQW13Z0EzVTJBZ0FnQUNBQUtBSWNJZ0VnQUNnQ0ZDSUVhaUlGSUFBb0FoZ2lCaUFBS0FJUUlnZHFJZ2hxSUFKc0lBTjFOZ0lRSUFBZ0JDQUJheUlCSUFjZ0Jtc2lCR29nQW13Z0EzVTJBaGdnQUNBSUlBVnJJQUpzSUFOMU5nSVVJQUFnQkNBQmF5QUNiQ0FEZFRZQ0hBdlBDQUVVZnlBQUlBQW9BaXdpQWlBQUtBSU1JZ1pxSWdVZ0FDZ0NOQ0lFSUFBb0FpQWlFR29pQ21zaUVUWUNMQ0FBS0FJb0lRTWdBQ0FHSUFKcklnY2dFQ0FFYXlJRWF5SUdOZ0lvSUFBb0FpUWhBaUFBSUFRZ0Iyb2lCRFlDSkNBQUlBVWdDbW9pQlRZQ0lDQUFJQUFvQWh3aUNpQUFLQUlJSWdkcUlnZ2dBQ2dDTUNJTUlBQW9BaEFpQ1dvaUMyc2lFRFlDSENBQUtBSVlJUThnQUNBSElBcHJJZ2NnQ1NBTWF5SU1heUlLTmdJWUlBQW9BaFFoQ1NBQUlBY2dER29pQnpZQ0ZDQUFJQWdnQzJvaUNEWUNFQ0FBSUFrZ0FDZ0NBQ0lMYWlJU0lBOGdBQ2dDQkNJTmFpSU9heUlNTmdJTUlBQWdDeUFKYXlJSklBMGdEMnNpQzJzaUR6WUNDQ0FBSUFrZ0Myb2lDVFlDQkNBQUlBNGdFbW9pQ3pZQ0FDQUFJQUlnQUNnQ09DSU5haUlUSUFNZ0FDZ0NQQ0lPYWlJVWF5SVNOZ0k4SUFBZ0FpQU5heUlDSUFNZ0Rtc2lBMnNpRFRZQ09DQUFJQUlnQTJvaURqWUNOQ0FBSUJNZ0ZHb2lFellDTUNBQlFaQThhaTBBQUNFQ0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRURJQUZCREU4RVFDQUFJQU1nQWtGK2FuUWlBU0FGSUF0cUlnTWdDQ0FUYWlJQ2EydzJBakFnQUNBTElBVnJJZ1VnQ0NBVGF5SUlheUFCYkRZQ0lDQUFJQVVnQ0dvZ0FXdzJBaEFnQUNBQ0lBTnFJQUZzTmdJQUlBQWdCQ0FKYWlJRElBY2dEbW9pQW1zZ0FXdzJBalFnQUNBSklBUnJJZ1FnQnlBT2F5SUZheUFCYkRZQ0pDQUFJQVFnQldvZ0FXdzJBaFFnQUNBQ0lBTnFJQUZzTmdJRUlBQWdCaUFQYWlJRElBb2dEV29pQW1zZ0FXdzJBamdnQUNBUElBWnJJZ1lnQ2lBTmF5SUVheUFCYkRZQ0tDQUFJQVFnQm1vZ0FXdzJBaGdnQUNBQ0lBTnFJQUZzTmdJSUlBQWdEQ0FSYXlJRElCQWdFbXNpQW1zZ0FXdzJBaXdnQUNBQ0lBTnFJQUZzTmdJY0lBQWdFQ0FTYWlJRElBd2dFV29pQW1vZ0FXdzJBZ3dnQUNBQ0lBTnJJQUZzTmdJOER3c2dBRUVCUVFJZ0FVRjZha0VHU1JzaUFTQUZJQXRxSWhRZ0NDQVRhaUlWYXlBRGJHcEJBaUFDYXlJQ2RUWUNNQ0FBSUFzZ0JXc2lCU0FJSUJOcklnaHJJQU5zSUFGcUlBSjFOZ0lnSUFBZ0JTQUlhaUFEYkNBQmFpQUNkVFlDRUNBQUlCUWdGV29nQTJ3Z0FXb2dBblUyQWdBZ0FDQUVJQWxxSWdVZ0J5QU9haUlJYXlBRGJDQUJhaUFDZFRZQ05DQUFJQWtnQkdzaUJDQUhJQTVySWdkcklBTnNJQUZxSUFKMU5nSWtJQUFnQkNBSGFpQURiQ0FCYWlBQ2RUWUNGQ0FBSUFVZ0NHb2dBMndnQVdvZ0FuVTJBZ1FnQUNBR0lBOXFJZ1FnQ2lBTmFpSUZheUFEYkNBQmFpQUNkVFlDT0NBQUlBOGdCbXNpQmlBS0lBMXJJZ3BySUFOc0lBRnFJQUoxTmdJb0lBQWdCaUFLYWlBRGJDQUJhaUFDZFRZQ0dDQUFJQVFnQldvZ0Eyd2dBV29nQW5VMkFnZ2dBQ0FNSUJGcklnWWdFQ0FTYXlJRWF5QURiQ0FCYWlBQ2RUWUNMQ0FBSUFRZ0Jtb2dBMndnQVdvZ0FuVTJBaHdnQUNBUUlCSnFJZ1lnRENBUmFpSVJhaUFEYkNBQmFpQUNkVFlDRENBQUlCRWdCbXNnQTJ3Z0FXb2dBblUyQWp3THZRVUJCbjhqQUVFZ2F5SUZKQUFnQTBFQU5nSUFBa0FnQVNnQ0FDSUdRUkpMRFFCQkFTQUdkQ0lHUWNEZkgzRkZCRUFnQmtFaWNVVU5BU0FDUWJRS2FpZ0NBQVJBSUFOQkFUWUNBQ0FDUVFBMkFyUUtDeUFBSUFWQkhHb1FJQ0lFRFFGQjhQOERJUVFnQWlBRktBSWNRUUowYWlnQ2xBRWlDRVVOQVNBQ0lBZ29BZ1FpQmtFQ2RHb29BaFFpQjBVTkFRSkFJQUlvQWdnaUNVRWdSZzBBSUFZZ0NVWU5BQ0FCS0FJQVFRVkhEUUlMQWtBZ0FrR1lDbW9vQWdBaUJDQUJLQUlFSWdaR0RRQWdCRUVBSUFZYkRRQWdBMEVCTmdJQUN5QUJLQUlBSVFRQ1FBSkFJQUlvQXBRS1FRVkdCRUFnQkVFRlJ3MEJEQUlMSUFSQkJVY05BUXNnQTBFQk5nSUFDMEVCSVFRZ0FDQUhLQUlNSUFWQkdHb1FQUTBCSUFVb0FoZ2lCaUFDUVp3S2FpZ0NBRWNFUUNBQ0lBWTJBcHdLSUFOQkFUWUNBQXNnQVNnQ0FFRUZSZ1JBSUFBZ0J5Z0NEQ0FGUVJScUVEd05BZ0pBSUFJb0FwUUtRUVZIQkVBZ0JTZ0NGQ0VFREFFTElBSkJvQXBxS0FJQUlnUWdCU2dDRkNJR1JnMEFJQU5CQVRZQ0FDQUdJUVFMSUFKQm9BcHFJQVEyQWdBTEFrQWdCeWdDRUNJRVFRRkxEUUFnQkVFQmF3UkFRUUVoQkNBQUlBY2dBU2dDQUNBRlFRaHFFRHNOQXlBRktBSUlJZ1FnQWtHa0Ntb29BZ0JIQkVBZ0FpQUVOZ0trQ2lBRFFRRTJBZ0FMSUFnb0FnaEZEUUVnQUNBSElBRW9BZ0FnQlVFUWFoQTZJZ1FOQXlBRktBSVFJZ0FnQWtHb0Ntb29BZ0JHRFFFZ0FpQUFOZ0tvQ2lBRFFRRTJBZ0FNQVFzZ0J5Z0NHQTBBSUFBZ0J5QUJLQUlBSUFnb0FnZ2dCVUVJYWhBNUlnUU5BaUFGS0FJSUlnQWdBa0dzQ21vb0FnQkhCRUFnQWlBQU5nS3NDaUFEUVFFMkFnQUxJQWdvQWdoRkRRQWdCU2dDRENJQUlBSkJzQXBxS0FJQVJnMEFJQUlnQURZQ3NBb2dBMEVCTmdJQUN5QUNJQUVwQWdBM0FwUUtRUUFoQkF3QkN5QURRUUUyQWdBTElBVkJJR29rQUNBRUMzOEJBMzhDUUFKQUFrQWdBRUg4Q21vb0FnQUVRQ0FBS0FLWUNTSUREUUZCQVE4TFFRRWhBU0FBUWF3SmFpZ0NBQ0FBS0FLWUNVY05BUXdDQ3lBQUtBSzhDU0VCUVFBaEFBTkFJQUlnQVNBQVFkZ0JiR29vQXNRQlFRQkhhaUVDSUFCQkFXb2lBQ0FEUncwQUMwRUJJUUVnQWlBRFJnMEJDMEVBSVFFTElBRUxTZ0VEZnlBQVFnQTNBcWdKSUFBb0FwZ0pJZ0VFUUNBQUtBSzhDU0VDUVFBaEFBTkFJQUlnQUVIWUFXeHFJZ05CQURZQ3hBRWdBMEVBTmdJRUlBQkJBV29pQUNBQlJ3MEFDd3NMZ3dZQkRIOUJBU0VHQWtBZ0FDQUJRUUowYWlnQ2xBRWlCRVVOQUNBQUlBUW9BZ1FpQ1VFQ2RHb2lDa0VVYWlnQ0FDSURSUTBBQWtBZ0JDZ0NEQ0lGUVFKSkRRQWdBeWdDTkNJSElBTW9BamhzSVFnQ1FDQUVLQUlRSWdOQkFrc05BQUpBQWtBQ1FDQURRUUZyRGdJREFBRUxJQVZCZjJvaEN5QUVLQUljSVF3Z0JDZ0NHQ0VOUVFBaEF3d0JDeUFFS0FJVUlRZEJBQ0VEQTBBZ0J5QURRUUowYWlnQ0FDQUlUUVJBSUFVZ0EwRUJhaUlEUncwQkRBUUxDMEVCRHdzRFFDQU5JQU5CQW5RaUJXb29BZ0FpRGlBRklBeHFLQUlBSWdWTERRTWdCU0FJVHcwRElBNGdCM0FnQlNBSGNFMEVRQ0FEUVFGcUlnTWdDMFlOQXd3QkN3dEJBUThMSUFOQmZXcEJBazBFUUNBRUtBSWtJQWhORFFFTUFnc2dBMEVHUncwQUlBUW9BaWdnQ0VrTkFRc0NRQ0FBS0FJRUlnTkJnQUpHQkVBZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQW9BclFhQkVBZ0FFRUFOZ0swR2lBQUtBSzhDUkFFSUFCQkFEWUN2QWtnQUNnQ2xBa1FCQ0FBSUFBb0FwZ0pJZ0ZCMkFGc0lnUVFDaUlDTmdLOENTQUFJQUZCQW5RUUNpSUROZ0tVQ1VILy93TWhCaUFDUlEwQ0lBTkZEUUlnQWtFQUlBUVFCeUFBS0FJUUtBSTBJQUVRVGlBQUtBSVFJUUZCQVNFQ0FrQWdBQ2dDd0FrTkFDQUJLQUlRUVFKR0RRQUNRQ0FCS0FKUVJRMEFJQUVvQWxRaUJDZ0NtQWRGRFFBZ0JDZ0NzQWRGRFFFTFFRQWhBZ3NnQUVIRUNXb2dBU2dDT0NBQktBSTBiQ0FCS0FKWUlBRW9BaXdnQVNnQ0RDQUNFRndpQmtVTkFRd0NDeUFCSUFOR0RRQWdBQ2dDQ0NBSlJ3UkFJQUpGRFFJZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQWdCRFlDRENBQUlBRTJBZ1FMUVFBaEJnc2dCZ3UyQVFFRGZ3SkFJQUFnQVNnQ0FDSURRUUowYWlJQ0tBS1VBU0lFUlFSQUlBSkJ5QUFRQ2lJQU5nS1VBU0FBRFFFUEN3SkFJQU1nQUNnQ0JFY05BQ0FCS0FJRUlBQW9BZ2hHRFFBZ0FFR0JBallDQkFzZ0JDZ0NGQkFFSUFJb0FwUUJRUUEyQWhRZ0FpZ0NsQUVvQWhnUUJDQUNLQUtVQVVFQU5nSVlJQUlvQXBRQktBSWNFQVFnQWlnQ2xBRkJBRFlDSENBQ0tBS1VBU2dDTEJBRUlBSW9BcFFCUVFBMkFpd0xJQUlvQXBRQklBRkJ5QUFRRlJvTDFnRUJBMzhDUUNBQUlBRW9BZ2dpQTBFQ2RHb2lBaWdDRkNJRVJRUkFJQUpCM0FBUUNpSUFOZ0lVSUFBTkFROExJQUFvQWdnZ0EwWUVRQ0FCSUFBb0FoQVFRZ1JBSUFJb0FoUW9BaWdRQkNBQ0tBSVVRUUEyQWlnZ0FpZ0NGQ2dDVkJBRUlBSW9BaFJCQURZQ1ZDQUFRUUEyQWhBZ0FFR0JBallDQkNBQVFpRTNBZ2dNQWdzZ0FTZ0NLQkFFSUFGQkFEWUNLQ0FCS0FKVUVBUWdBVUVBTmdKVUR3c2dCQ2dDS0JBRUlBSW9BaFJCQURZQ0tDQUNLQUlVS0FKVUVBUWdBaWdDRkVFQU5nSlVDeUFDS0FJVUlBRkIzQUFRRlJvTDBnSUJBMzhqQUVFZ2F5SUVKQUFnQkNBQktBSVFOZ0lRSUFRZ0FTa0NDRGNEQ0NBRUlBRXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUJEUUFnQkNBRVFSeHFFQUlpQVEwQUlBUWdCRUVjYWhBQ0lnRU5BQ0FDS0FJTUlRWkJBQ0VCQTBBZ0FTSUZRUUZxSVFFZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQVF3QkN5QUVJQVJCSEdvUUFpSUJEUUFDUUNBQ0tBSVFJZ0VFZnlBQkJTQUNLQUlVSVFaQkFDRUJBMEFnQVNJRlFRRnFJUUVnQmlBRmRnMEFDeUFFSUFWQmYyb1FBMEYvUmdSQVFRRWhBUXdEQ3lBREtBSUlCRUFnQkNBRVFSaHFFQVVpQVEwREN5QUNLQUlRQzBFQlJ3MEFJQUlvQWhnTkFDQUVJQVJCR0dvUUJTSUJEUUVnQXlnQ0NFVU5BQ0FFSUFSQkdHb1FCU0lCRFFFTElBTW9Ba1FFUUNBRUlBUkJIR29RQWlJQkRRRUxJQUFnQkVFQkVBTWlBRFlDQUNBQVFYOUdJUUVMSUFSQklHb2tBQ0FCQzhZQkFRSi9Jd0JCSUdzaUJTUUFJQVVnQUNnQ0VEWUNFQ0FGSUFBcEFnZzNBd2dnQlNBQUtRSUFOd01BQWtBZ0JTQUZRUnhxRUFJaUFBMEFJQVVnQlVFY2FoQUNJZ0FOQUNBRklBVkJIR29RQWlJQURRQWdBU2dDRENFR1FRQWhBQU5BSUFBaUFVRUJhaUVBSUFZZ0FYWU5BQXNnQlNBQlFYOXFFQU5CZjBZRVFFRUJJUUFNQVFzZ0FrRUZSZ1JBSUFVZ0JVRWNhaEFDSWdBTkFRc2dCU0FFRUFVaUFBMEFJQU1FUUNBRklBUkJCR29RQlNJQURRRUxRUUFoQUFzZ0JVRWdhaVFBSUFBTDRRRUJBMzhqQUVFZ2F5SUVKQUFnQkNBQUtBSVFOZ0lRSUFRZ0FDa0NDRGNEQ0NBRUlBQXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUFEUUFnQkNBRVFSeHFFQUlpQUEwQUlBUWdCRUVjYWhBQ0lnQU5BQ0FCS0FJTUlRWkJBQ0VBQTBBZ0FDSUZRUUZxSVFBZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUNRUVZHQkVBZ0JDQUVRUnhxRUFJaUFBMEJDeUFCS0FJVUlRSkJBQ0VBQTBBZ0FDSUJRUUZxSVFBZ0FpQUJkZzBBQ3lBRUlBRkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUVJQU1RQlNFQUN5QUVRU0JxSkFBZ0FBdm1BUUVEZnlNQVFTQnJJZ1FrQUNBRUlBQW9BaEEyQWhBZ0JDQUFLUUlJTndNSUlBUWdBQ2tDQURjREFBSkFJQVFnQkVFY2FoQUNJZ0FOQUNBRUlBUkJIR29RQWlJQURRQWdCQ0FFUVJ4cUVBSWlBQTBBSUFFb0Fnd2hCa0VBSVFBRFFDQUFJZ1ZCQVdvaEFDQUdJQVYyRFFBTElBUWdCVUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQUpCQlVZRVFDQUVJQVJCSEdvUUFpSUFEUUVMSUFFb0FoUWhBa0VBSVFBRFFDQUFJZ0ZCQVdvaEFDQUNJQUYyRFFBTElBUWdBVUYvYWhBRElnQkJmMFlFUUVFQklRQU1BUXNnQXlBQU5nSUFRUUFoQUFzZ0JFRWdhaVFBSUFBTGtnRUJBbjhqQUVFZ2F5SURKQUFnQXlBQUtBSVFOZ0lRSUFNZ0FDa0NBRGNEQUNBRElBQXBBZ2czQXdnQ1FDQURJQU5CSEdvUUFpSUFEUUFnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BRUVBSVFBRFFDQUFJZ1JCQVdvaEFDQUJJQVIyRFFBTElBTWdCRUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQU1nQWhBQ0lRQUxJQU5CSUdva0FDQUFDNWNCQVFKL0l3QkJJR3NpQXlRQUlBTWdBQ2dDRURZQ0VDQURJQUFwQWdnM0F3Z2dBeUFBS1FJQU53TUFBa0FnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BQ0FESUFOQkhHb1FBaUlBRFFCQkFDRUFBMEFnQUNJRVFRRnFJUUFnQVNBRWRnMEFDeUFESUFSQmYyb1FBeUlBUVg5R0JFQkJBU0VBREFFTElBSWdBRFlDQUVFQUlRQUxJQU5CSUdva0FDQUFDNjhPQVFwL0l3QkJFR3NpQlNRQUlBRkJBRUhjQnhBSElRY2dBaWdDTkNFR0lBSW9BamdoQ0FKQUlBQWdCVUVFYWhBQ0lnRU5BQ0FISUFVb0FnUWlBVFlDQUNBQklBWWdDR3dpQzA4RVFFRUJJUUVNQVFzZ0FDQUZRUVJxRUFJaUFRMEFJQWNnQlNnQ0JDSUdOZ0lFSUFaQkIwc0VRRUVCSVFFTUFRdEJBU0VCQWtBQ1FDQUdRUUZyRGdjQ0FRSUNBQUlCQUFzZ0JDZ0NBRUVGUmdSQURBSUxJQUlvQWl3TkFBd0JDeUFBSUFWQkJHb1FBaUlCRFFBZ0J5QUZLQUlFSWdZMkFnaEJBU0VCSUFZZ0F5Z0NBRWNOQUNBQ0tBSU1JUWhCQUNFQkEwQWdBU0lHUVFGcUlRRWdDQ0FHZGcwQUMwRUJJUUVnQUNBR1FYOXFFQU1pQmtGL1JnMEFJQVpCQUNBRUtBSUFJZ2hCQlVZYkRRQWdCeUFHTmdJTUlBaEJCVVlFUUNBQUlBVkJCR29RQWlJQkRRRWdCeUFGS0FJRUlnWTJBaEJCQVNFQklBWkIvLzhEU3cwQkN3SkFJQUlvQWhBaUFRUi9JQUVGSUFJb0FoUWhDRUVBSVFFRFFDQUJJZ1pCQVdvaEFTQUlJQVoyRFFBTElBQWdCa0YvYWhBRElnRkJmMFlFUUVFQklRRU1Bd3NnQnlBQk5nSVVJQU1vQWdnRVFDQUFJQVVRQlNJQkRRTWdCeUFGS0FJQU5nSVlDeUFFS0FJQVFRVkdCRUJCQVNFQklBY29BaFFpQmlBQ0tBSVVRUUYyU3cwRElBWkJBQ0FIS0FJWUlnaEJIM1VnQ0hGclJ3MERDeUFDS0FJUUMwRUJSdzBBSUFJb0FoZ05BQ0FBSUFVUUJTSUJEUUVnQnlBRktBSUFOZ0ljSUFNb0FnZ0VRQ0FBSUFVUUJTSUJEUUlnQnlBRktBSUFOZ0lnQ3lBRUtBSUFRUVZIRFFCQkFTRUJJQWNvQWh3aUJpQUhLQUlnSUFZZ0FpZ0NJR3BxSWdnZ0JpQUlTQnNOQVFzZ0F5Z0NSQVJBSUFBZ0JVRUVhaEFDSWdFTkFTQUhJQVVvQWdRaUJqWUNKRUVCSVFFZ0JrSC9BRXNOQVFzQ1FDQUhLQUlFSWdGQkJVc05BQUpBSUFGQkFXc09CQUVCQVFFQUMwRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDS0FKQUlBWUVRQ0FBSUFWQkJHb1FBaUlCRFFOQkFTRUJJQVVvQWdRaUJrRVBTdzBESUFaQkFXb2hCZ3dCQ3lBREtBSXdJZ1pCRUVzTkFnc2dCeUFHTmdJc0lBY29BZ1FoQVFzQ1FDQUJRUVZMRFFBQ1FDQUJRUUZyRGdRQkFRRUJBQXNnQWlnQ0RDRUpJQWNvQWl3aENrRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDUkNBR1JRMEFRUUFoQVFOQUlBRWlCaUFLU3dSQVFRRWhBUXdEQ3lBQUlBVkJDR29RQWlJQkRRSWdCU2dDQ0NJQlFRTkxCRUJCQVNFQkRBTUxJQWNnQmtFTWJHb2lDQ0FCTmdKSUFrQWdBVUVCVFFSQUlBQWdCVUVNYWhBQ0lnRU5CQ0FGS0FJTUlnRWdDVThFUUVFQklRRU1CUXNnQ0NBQlFRRnFOZ0pNREFFTElBRkJBa2NOQUNBQUlBVkJER29RQWlJQkRRTWdDQ0FGS0FJTU5nSlFDeUFHUVFGcUlRRWdCU2dDQ0VFRFJ3MEFDMEVCSVFFZ0JrVU5BUXNDUUNBRUtBSUVSUTBBSUFRb0FnQWhCQ0FDS0FJc0lRbEJBU0VCSUFCQkFSQURJUUlnQkVFRlJnUkFJQUpCZjBZTkFpQUhJQUkyQXBRQ0lBQkJBUkFESWdKQmYwWU5BaUFISUFJMkFwZ0NJQWtOQVNBQ1JRMEJEQUlMSUFKQmYwWU5BU0FISUFJMkFwd0NJQUpGRFFBZ0NVRUJkRUVEYWlFT1FRQWhCa0VBSVFwQkFDRUVBMEFnQmlBT1JnUkFRUUVoQVF3REN5QUFJQVZCQ0dvUUFpSUJEUUlnQlNnQ0NDSUNRUVpMQkVCQkFTRUJEQU1MSUFjZ0JrRVViR29pQ0NBQ05nS2dBZ0ovSUFKQkFuSkJBMFlFUUNBQUlBVkJER29RQWlJQkRRUWdDQ0FGS0FJTVFRRnFOZ0trQWlBRktBSUlJUUlMSUFKQkFrWUxCRUFnQUNBRlFReHFFQUlpQVEwRElBZ2dCU2dDRERZQ3FBSWdCU2dDQ0NFQ0N3SkFJQUpCZldvaUFVRURTdzBBQWtBZ0FVRUJhdzRDQVFFQUN5QUFJQVZCREdvUUFpSUJEUU1nQ0NBRktBSU1OZ0tzQWlBRktBSUlJUUlMSUFKQkJFWUVRQ0FBSUFWQkRHb1FBaUlCRFFNZ0JTZ0NEQ0lCSUFsTEJFQkJBU0VCREFRTElBZ2dBVUYvYWtILy93TWdBUnMyQXJBQ0lBcEJBV29oQ2lBRktBSUlJUUlMSUFaQkFXb2hCaUFNSUFKQkJrWnFJUXdnQkNBQ1FRVkdhaUVFSUEwZ0FrRi9ha0VEU1dvaERTQUNEUUFMUVFFaEFTQUVJQXB5SUF4eVFRRkxEUUVnQkVVTkFDQU5EUUVMSUFBZ0JSQUZJZ0VOQUNBSElBVW9BZ0FpQVRZQ01DQUZJQUVnQXlnQ05Hb2lBallDQUVFQklRRWdBa0V6U3cwQUFrQWdBeWdDUEVVTkFDQUFJQVZCQkdvUUFpSUJEUUVnQnlBRktBSUVJZ0kyQWpSQkFTRUJJQUpCQWtzTkFTQUNRUUZHRFFBZ0FDQUZFQVVpQVEwQlFRRWhBU0FGS0FJQUlnSkJCbXBCREVzTkFTQUhJQUpCQVhRMkFqZ2dBQ0FGRUFVaUFRMEJRUUVoQVNBRktBSUFJZ0pCQm1wQkRFc05BU0FISUFKQkFYUTJBandMQWtBZ0F5Z0NERUVDU1EwQUlBTW9BaEJCZldwQkFrc05BRUVDUVFFZ0N5QUxJQU1vQWlRaUFXNGlBaUFCYkdzYklBSnFJUVJCQUNFQ0EwQWdCQ0FDSWdGQkFXb2lBbllOQUFzZ0JTQUFJQUlnQVNBRVFYOGdBWFJCZjNOeEd4QURJZ0EyQWdSQkFTRUJJQUJCZjBZTkFTQUhJQUEyQWtBZ0FDQUxJQU1vQWlRaUFHcEJmMm9nQUc1TERRRUxRUUFoQVFzZ0JVRVFhaVFBSUFFTHdRa0JEWDhnQXlBRWJDRUZJQUVvQWd3aUNVRUJSZ1JBSUFCQkFDQUZRUUowRUFjYUR3c0NRQUpBQWtBQ1FDQUJLQUlRSWdaQmZXcEJBazBFUUNBQktBSWtJQUpzSWdJZ0JTQUNJQVZKR3lFTElBWkJmbkZCQkVjTkFTQUZJQXRySUFzZ0FTZ0NJQnNoQndzQ1FBSkFBa0FnQmtFRlRRUkFJQVpCQVdzT0JRWUZCQU1DQVFzZ0JVVU5CaUFCS0FJc0lRSkJBQ0VCQTBBZ0FDQUJRUUowSWdOcUlBSWdBMm9vQWdBMkFnQWdBVUVCYWlJQklBVkhEUUFMREFZTEFrQWdDUVJBSUFFb0FoUWhBa0VBSVFZTUFRc2dCVVVOQmdOQURBQUFDd0FMQTBCQkFDRUVJQVlnQlU4TkJnTkFRUUFoQndKQUlBSWdCRUVDZEdvaUF5Z0NBQ0lCUlEwQUlBRWhCeUFGSUFaTkRRQkJBQ0VCUVFBZ0JTQUdheUlISUFjZ0JVc2JJUWdEUUNBQUlBRWdCbXBCQW5ScUlBUTJBZ0FnQVVFQmFpSUJJQU1vQWdBaUIwOE5BU0FCSUFoSERRQUxDeUFFUVFGcUlnUWdDVWxCQUNBR0lBZHFJZ1lnQlVrYkRRQUxJQVlnQlVrTkFBc01CUXNnQTBVTkJDQUVSUTBFUVFFZ0FTZ0NJQ0lKYXlFSVFRQWhCVUVBSVFJRFFFRUFJUUVnQlNFR0EwQWdBQ0FCSUFOc0lBSnFRUUowYWlBSklBZ2dCaUFIU1JzMkFnQWdCa0VCYWlFR0lBRkJBV29pQVNBRVJ3MEFDeUFFSUFWcUlRVWdBa0VCYWlJQ0lBTkhEUUFMREFRTElBVkZEUU5CQVNBQktBSWdJZ0pySVFOQkFDRUJBMEFnQUNBQlFRSjBhaUFDSUFNZ0FTQUhTUnMyQWdBZ0FVRUJhaUlCSUFWSERRQUxEQU1MSUFFb0FpQWhBaUFGQkVCQkFDRUJBMEFnQUNBQlFRSjBha0VCTmdJQUlBRkJBV29pQVNBRlJ3MEFDd3NnQzBVTkFpQURRWDlxSVE4Z0JFRi9haUVRSUFKQmYyb2hCa0VCSUFKQkFYUWlBV3NoQlNBQlFYOXFJUWtnQkNBQ2EwRUJkaUlLSVF3Z0F5QUNhMEVCZGlJTklRUWdDaUVJSUEwaEFVRUFJUWNEUUNBQUlBTWdDR3dnQVdwQkFuUnFJZzRvQWdBaUVVRUJSZ1JBSUE1QkFEWUNBQXNnRVVFQlJpRU9Ba0FDUUNBR1FYOUhEUUFnQVNBRVJ3MEFRUUFoQmlBSklRSWdCRUVCSUFSQkFVb2JRWDlxSWdFaEJBd0JDd0pBSUFaQkFVY05BQ0FCSUExSERRQkJBQ0VHSUFVaEFpQU5RUUZxSWdFZ0R5QUJJQTlJR3lJQklRME1BUXNDUUNBQ1FYOUhEUUFnQ0NBTVJ3MEFRUUFoQWlBRklRWWdERUVCSUF4QkFVb2JRWDlxSWdnaERBd0JDd0pBSUFKQkFVY05BQ0FJSUFwSERRQkJBQ0VDSUFraEJpQUtRUUZxSWdnZ0VDQUlJQkJJR3lJSUlRb01BUXNnQWlBSWFpRUlJQUVnQm1vaEFRc2dCeUFPYWlJSElBdEpEUUFMREFJTElBRW9BaHdoQnlBQktBSVlJUWdnQlFSQUlBbEJmMm9oQWtFQUlRRURRQ0FBSUFGQkFuUnFJQUkyQWdBZ0FVRUJhaUlCSUFWSERRQUxJQUpGRFFJTElBbEJmbW9oQVFOQUFrQWdDQ0FCSWdSQkFuUWlBV29vQWdBaUJpQURiaUlDSUFFZ0Iyb29BZ0FpQVNBRGJpSUZTdzBBSUFZZ0FpQURiR3NpQmlBQklBTWdCV3hySWdsTEJFQURRQ0FDUVFGcUlnSWdCVTBOQUF3Q0FBc0FDd05BSUFJZ0Eyd2hDaUFHSVFFRFFDQUFJQUVnQ21wQkFuUnFJQVEyQWdBZ0FVRUJhaUlCSUFsTkRRQUxJQUpCQVdvaUFpQUZUUTBBQ3dzZ0JFRi9haUVCSUFRTkFBc01BUXNnQlVVTkFFRUFJUUVEUUNBQUlBRkJBblJxSUFFZ0EyNGlBaUFKYkVFQmRpQUJJQUlnQTJ4cmFpQUpjRFlDQUNBQlFRRnFJZ0VnQlVjTkFBc0xDOFFCQVFWL0lBQW9BcWdKSVFRQ1FDQUFRYkFKYWlnQ0FDSUNSUTBBSUFKQmYyb2lBaUFCVFFSQUlBSWhBUXdCQ3lBQUtBSzhDU0VGQTBBQ1FDQUZJQUpCMkFGc2FpZ0NCQ0FFUncwQUlBTkJBV29pQXlBQUtBSVFLQUkwSWdaQkNpQUdRUXBMRzBrTkFDQUNJUUVNQWdzZ0FrRi9haUlDSUFGTERRQUxDd05BQWtBZ0FDZ0N2QWtnQVVIWUFXeHFJZ0lvQWdRZ0JFY05BQ0FDS0FMRUFTSURSUTBBSUFJZ0EwRi9hallDeEFFZ0FDZ0NsQWtnQUNnQ21Ba2dBUkFlSWdFTkFRc0xDNzBFQWd0L0FYNGpBRUhBQTJzaUJTUUFJQU1vQWdBaEJ5QUJLQUt3R2lFSUlBVkJBRFlDRENBQlFiQUpha0VBTmdJQUlBRWdBU2dDcUFsQkFXbzJBcWdKSUFVZ0F5Z0NNQ0FCS0FJTUtBSTBhallDQ0NBQlFjUUphaUVOSUFoQkRHb2hEZ0pBQTBBZ0FTZ0N2QWtoQkFKQUlBTW9BaVFOQUNBRUlBZEIyQUZzYWlnQ3hBRkZEUUJCQVNFRURBSUxJQU1wQWpRaER5QURLQUk4SVFzZ0FTZ0NxQWtoRENBRUlBZEIyQUZzSWdacUlnUWdBU2dDRENnQ09EWUNHQ0FFSUFzMkFoQWdCQ0FQTndJSUlBUWdERFlDQkFKQUlBTW9BZ1FpQkVFQ1JnMEFJQWtOQUNBRVFRZEdEUUFnQUNBRlFReHFFQUlpQkEwQ0lBVW9BZ3dpQkNBQktBS1lDU0FIYTBzRVFFRUJJUVFNQXdzZ0JFVUVRRUVBSVFrTUFRc2dEa0VBUWFRQkVBY2FJQWhCQURZQ0FFRUJJUWtMQWtBZ0JTZ0NEQ0lFQkVBZ0JTQUVRWDlxTmdJTURBRUxRUUFoQ1NBQUlBZ2dBU2dDdkFrZ0Jtb2dBeWdDQkNBREtBSXNFRkVpQkEwQ0N5QUJLQUs4Q1NBR2FpQUlJQUlnRFNBRlFRaHFJQWNnQVNnQ0RDZ0NRQ0FGUVJCcUVGQWlCQTBCSUFFb0Fyd0pJQVpxS0FMRUFTRUxJQUFRTGlFRUlBVW9BZ3doQmdKQUlBTW9BZ1JCZm1vaURFRUZTdzBBQWtBZ0RFRUJhdzRFQVFFQkFRQUxJQUVnQnpZQ3NBa0xJQVFnQm5JaEJrRUJJUVFnQVNnQ2xBa2dBU2dDbUFrZ0J4QWVJZ2RGUVFBZ0Joc05BU0FLSUF0QkFVWnFJUW9nQmcwQUN5QUJRYXdKYWlnQ0FDQUthaUlBSUFFb0FwZ0pTdzBBSUFFZ0FEWUNyQWxCQUNFRUN5QUZRY0FEYWlRQUlBUUw1Z0lCQjM5QkFTRUNBa0FnQUNnQ0FDQUJLQUlBUncwQUlBQW9BZ1FnQVNnQ0JFY05BQ0FBS0FJTUlBRW9BZ3hIRFFBZ0FDZ0NFQ0lESUFFb0FoQkhEUUFnQUNnQ0xDQUJLQUlzUncwQUlBQW9BakFnQVNnQ01FY05BQ0FBS0FJMElBRW9BalJIRFFBZ0FDZ0NPQ0FCS0FJNFJ3MEFJQUFvQWp3aUJTQUJLQUk4UncwQUlBQW9BbEFnQVNnQ1VFY05BQUpBSUFOQkFVc05BQ0FEUVFGclJRUkFJQUFvQWhnZ0FTZ0NHRWNOQWlBQUtBSWNJQUVvQWh4SERRSWdBQ2dDSUNBQktBSWdSdzBDSUFBb0FpUWlCQ0FCS0FJa1J3MENJQVJGRFFFZ0FTZ0NLQ0VHSUFBb0FpZ2hCMEVBSVFNRFFDQUhJQU5CQW5RaUNHb29BZ0FnQmlBSWFpZ0NBRWNOQXlBRUlBTkJBV29pQTBjTkFBc01BUXNnQUNnQ0ZDQUJLQUlVUncwQkN5QUZCRUFnQUNnQ1FDQUJLQUpBUncwQklBQW9Ba1FnQVNnQ1JFY05BU0FBS0FKSUlBRW9Ba2hIRFFFZ0FDZ0NUQ0FCS0FKTVJ3MEJDMEVBSVFJTElBSUwvd2tCQm44akFFRVFheUlFSkFBZ0FVRUFRZHdBRUFjaEF3SkFJQUJCQ0JBRElnRkJmMFlFUUVFQklRRU1BUXNnQXlBQk5nSUFJQUJCQVJBREdpQUFRUUVRQXhvZ0FFRUJFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUZFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUlFQU1pQVVGL1JnUkFRUUVoQVF3QkN5QURJQUUyQWdRZ0FDQURRUWhxRUFJaUFRMEFJQU1vQWdoQkgwc0VRRUVCSVFFTUFRc2dBQ0FFUVF4cUVBSWlBUTBBUVFFaEFTQUVLQUlNSWdKQkRFc05BQ0FEUVFFZ0FrRUVhblEyQWd3Z0FDQUVRUXhxRUFJaUFRMEFRUUVoQVNBRUtBSU1JZ0pCQWtzTkFDQURJQUkyQWhBQ1FDQUNRUUZMRFFBZ0FrRUJhd1JBSUFBZ0JFRU1haEFDSWdFTkFrRUJJUUVnQkNnQ0RDSUNRUXhMRFFJZ0EwRUJJQUpCQkdwME5nSVVEQUVMSUFCQkFSQURJZ0pCZjBZTkFTQURJQUpCQVVZMkFoZ2dBQ0FEUVJ4cUVBVWlBUTBCSUFBZ0EwRWdhaEFGSWdFTkFTQUFJQU5CSkdvUUFpSUJEUUZCQVNFQklBTW9BaVFpQWtIL0FVc05BU0FDQkVBZ0F5QUNRUUowRUFvaUFUWUNLQ0FCUlFSQVFmLy9BeUVCREFNTElBQWdBUkFGSWdFTkFrRUJJUUlEUUNBQ0lBTW9BaVJQRFFJZ0FrRUNkQ0VCSUFKQkFXb2hBaUFBSUFFZ0F5Z0NLR29RQlNJQlJRMEFDd3dDQ3lBRFFRQTJBaWdMSUFBZ0EwRXNhaEFDSWdFTkFFRUJJUUVnQXlnQ0xFRVFTdzBBSUFCQkFSQURJZ0pCZjBZTkFDQURJQUpCQVVZMkFqQWdBQ0FFUVF4cUVBSWlBUTBBSUFNZ0JDZ0NERUVCYWpZQ05DQUFJQVJCREdvUUFpSUJEUUJCQVNFQklBTWdCQ2dDREVFQmFqWUNPQ0FBUVFFUUEwRUJha0VDU1EwQUlBQkJBUkFEUVg5R0RRQWdBRUVCRUFNaUFrRi9SZzBBSUFNZ0FrRUJSaUlCTmdJOEFrQWdBVVVFUUNBREtBSTRJUVVnQXlnQ05DRUdEQUVMSUFBZ0EwRkFheEFDSWdFTkFTQUFJQU5CeEFCcUVBSWlBUTBCSUFBZ0EwSElBR29RQWlJQkRRRWdBQ0FEUWN3QWFoQUNJZ0VOQVVFQklRRWdBeWdDUUNBREtBSkVRWDl6SUFNb0FqUWlCa0VEZEdwS0RRRWdBeWdDU0NBREtBSk1RWDl6SUFNb0FqZ2lCVUVEZEdwS0RRRUxBa0FDUUFKQUFrQWdBeWdDQkVGMmFpSUhRU2xMRFFCQjR3QWhBVUdBcEFraEFnSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQjBFQmF3NHBBQUVCQ3dzTEN3c0xBUUlEQ3dzTEN3c0xDd01FQlFzTEN3c0xDd3NHQmdjTEN3c0xDd3NMQ0FrS0MwR01BeUVCUVlDTUZTRUNEQWtMUVl3RElRRkJnTmczSVFJTUNBdEJtQVloQVVHQXNPOEFJUUlNQnd0QjFBd2hBVUdBN0wwQklRSU1CZ3RCa0J3aEFVR0E4S1VESVFJTUJRdEJnQ2doQVVHQWdPQURJUUlNQkF0QmdNQUFJUUZCZ0lDQUJpRUNEQU1MUVlERUFDRUJRWUNBc0FZaEFnd0NDMEhBckFFaEFVR0F3SnNVSVFJTUFRdEJnS0FDSVFGQmdJRGdJU0VDQ3lBQklBVWdCbXdpQVU4TkFRc2dCRUgvLy8vL0J6WUNEQ0FES0FJc0lRSU1BUXNnQkNBQ0lBRkJnQU5zYmlJQlFSQWdBVUVRU1JzaUFUWUNEQ0FES0FJc0lnSWdBVTBOQVFzZ0JDQUNOZ0lNSUFJaEFRc2dBeUFCTmdKWVFRRWhBU0FBUVFFUUF5SUNRWDlHRFFBZ0F5QUNRUUZHTmdKUUFrQWdBa0VCUncwQUlBTkJ1QWNRQ2lJQk5nSlVJQUZGQkVCQi8vOERJUUVNQWdzZ0FDQUJFQ3dpQVEwQklBTW9BbFFpQWlnQ21BZEZEUUJCQVNFQklBSW9BckFISUFJb0FyUUhJZ0pMRFFFZ0FpQURLQUlzU1EwQklBSWdBeWdDV0VzTkFTQURJQUpCQVNBQ0d6WUNXQXNnQUJBZlFRQWhBUXNnQkVFUWFpUUFJQUVMalFRQkRuOGdBUUovQWtBZ0FDOEJJQ0lIRFFBZ0FDOEJIQTBBUVFBTUFRdEJBZ3MyQWlBZ0FRSi9Ba0FnQUM4QklpSUNEUUFnQUM4QkhnMEFRUUFNQVF0QkFnczJBaWdnQVFKL0FrQWdBQzhCS0NJRERRQWdBQzhCSkEwQVFRQU1BUXRCQWdzMkFqQWdBUUovQWtBZ0FDOEJLaUlJRFFBZ0FDOEJKZzBBUVFBTUFRdEJBZ3MyQWpnZ0FTQUhJQUF2QVN3aUNYSkJBRWRCQVhRMkFrQWdBU0FDSUFBdkFTNGlCSEpCQUVkQkFYUTJBa2dnQVNBRElBQXZBVFFpQlhKQkFFZEJBWFEyQWxBZ0FTQUlJQUF2QVRZaUNuSkJBRWRCQVhRMkFsZ2dBU0FBTHdFd0lnMGdDWEpCQUVkQkFYUTJBbUFnQVNBQUx3RXlJZ3NnQkhKQkFFZEJBWFEyQW1nZ0FTQUFMd0U0SWd3Z0JYSkJBRWRCQVhRMkFuQWdBU0FBTHdFNklnNGdDbkpCQUVkQkFYUTJBbmhCQWlFR0lBRWdBQzhCSGlJUEJIOUJBZ1VnQUM4QkhFRUFSMEVCZEFzMkFnd2dBU0FQSUFBdkFTUWlCbkpCQUVkQkFYUTJBaFFnQUM4QkppRUFJQUVnRENBT2NrRUFSMEVCZERZQ2ZDQUJJQXNnREhKQkFFZEJBWFEyQW5RZ0FTQUxJQTF5UVFCSFFRRjBOZ0pzSUFFZ0JTQUtja0VBUjBFQmREWUNYQ0FCSUFRZ0JYSkJBRWRCQVhRMkFsUWdBU0FFSUFseVFRQkhRUUYwTmdKTUlBRWdBeUFJY2tFQVIwRUJkRFlDUENBQklBSWdBM0pCQUVkQkFYUTJBalFnQVNBQ0lBZHlRUUJIUVFGME5nSXNJQUVnQUNBR2NrRUFSMEVCZERZQ0hBdk1CZ0VMZnlNQVFZQU9heUlPSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0NHb2dCRXNOQUNBSFFRVnFJZ29nQTJvZ0JVc05BQ0FFSVFnZ0F5RUpEQUVMSUFBZ0RrSEFDbW9nQWlBRElBUWdCU0FJSUFkQkJXb2lDaUFJRUF3Z0RrSEFDbW9oQUVFQUlRSUxBa0FnQ2tVTkFDQUdRUUoySWhCRkRRQWdDQ0FHYXlFUklBQWdDQ0FKYkNBQ2FtcEJCV29oQWlBT0lRQURRQ0FDUVg5cUxRQUFJUWdnQWtGK2FpMEFBQ0VESUFKQmZXb3RBQUFoQlNBQ1FYeHFMUUFBSVFRZ0FrRjdhaTBBQUNFTUlCQWhEUU5BSUFBZ0FpMEFBQ0lKSUF3Z0JDQUlhaUlMYXlBRElBVnFRUlJzYWlBTFFRSjBhMm8yQWdBZ0FDQUNMUUFCSWdzZ0F5QUlha0VVYkNBRWFpQUZJQWxxSWdScklBUkJBblJyYWpZQ0JDQUFJQUl0QUFJaUR5QUlJQWxxUVJSc0lBVnFJQU1nQzJvaUJHc2dCRUVDZEd0cU5nSUlJQUFnQWkwQUF5SVNJQWtnQzJwQkZHd2dBMm9nQ0NBUGFpSURheUFEUVFKMGEybzJBZ3dnQUVFUWFpRUFJQUpCQkdvaEFpQUlJUXdnQ1NFRUlBc2hCU0FQSVFNZ0VpRUlJQTFCZjJvaURRMEFDeUFDSUJGcUlRSWdDa0YvYWlJS0RRQUxDd0pBSUFkQkFuWWlCMFVOQUNBR1JRMEFRY0FBSUFacklROGdEaUFHUVFKMGFpSUlJQVpCRkd4cUlRSkJBQ0FHYXlJUVFRTjBJUklnQmtFRGRDRUpJQVpCQTJ4QkFuUWhDd05BSUFZaEJBTkFJQUVnQ0NBSmFpZ0NBQ0lBSUFJZ0NXb29BZ0FnQWlBR1FRSjBJZzFxS0FJQUlnb2dBaUFTYWlnQ0FDSURhaUlGYXlBRlFRSjBhMm9nQWlnQ0FDSU1JQUlnRUVFQ2RDSVJhaWdDQUNJRmFrRVViR3BCZ0FScVFRcDFRYkF1YWkwQUFEb0FNQ0FCSUFnZ0RXb29BZ0FpRFNBS0lBTWdCV3BCRkd4cUlBQWdER29pQ21zZ0NrRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQTZBQ0FnQVNBSUtBSUFJZ29nRENBQUlBTnFRUlJzYWlBRklBMXFJZ3hySUF4QkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQU9nQVFJQUVnQ0NBUmFpZ0NBQ0FGSUFBZ0RXcEJGR3hxSUFNZ0Ntb2lBR3NnQUVFQ2RHdHFRWUFFYWtFS2RVR3dMbW90QUFBNkFBQWdDRUVFYWlFSUlBRkJBV29oQVNBQ1FRUnFJUUlnQkVGL2FpSUVEUUFMSUFFZ0Qyb2hBU0FDSUF0cUlRSWdDQ0FMYWlFSUlBZEJmMm9pQncwQUN3c2dEa0dBRG1va0FBdmxBd0VKZnlNQVFjQURheUlLSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0F5QUhhaUFGU3cwQUlBTkJBRWdOQUNBQ0lBaHFJQVJMRFFBZ0JDRUlJQU1oQ1F3QkN5QUFJQW9nQWlBRElBUWdCU0FJSUFjZ0NCQU1JQW9oQUVFQUlRSUxBa0FnQjBVTkFDQUdRUUoySWcxRkRRQkJFQ0FHYXlFT0lBZ2dCbXNoRHlBQUlBZ2dDV3dnQW1wcVFRVnFJUUlEUUNBQ1FYOXFMUUFBSVFnZ0FrRithaTBBQUNFR0lBSkJmV290QUFBaEFDQUNRWHhxTFFBQUlRVWdBa0Y3YWkwQUFDRUpJQTBoQ3dOQUlBRWdBaTBBQUNJRElBa2dCU0FJYWlJRWF5QUFJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FBSUFFZ0FpMEFBU0lFSUFVZ0JpQUlha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQU9nQUJJQUVnQWkwQUFpSU1JQUFnQXlBSWFrRVViR29nQkNBR2FpSUFheUFBUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBT2dBQ0lBRWdBaTBBQXlJUUlBWWdBeUFFYWtFVWJHb2dDQ0FNYWlJQWF5QUFRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FESUFGQkJHb2hBU0FDUVFScUlRSWdDQ0VKSUFNaEJTQUVJUUFnRENFR0lCQWhDQ0FMUVg5cUlnc05BQXNnQVNBT2FpRUJJQUlnRDJvaEFpQUhRWDlxSWdjTkFBc0xJQXBCd0FOcUpBQUw5UU1CQzM4akFFSEFBMnNpQ3lRQUFrQUNRQ0FDUVFCSURRQWdBMEVBU0EwQUlBSWdCbW9nQkVzTkFDQURJQWRxUVFWcUlBVkxEUUFnQXlFSURBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFZZ0IwRUZhaUFHRUF3Z0N5RUFJQVloQkVFQUlRSUxBa0FnQjBFQ2RpSU1SUTBBSUFaRkRRQkJ3QUFnQm1zaEVTQUVRUUYwSVEwZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVNJQUFnQkNBSWJDQUNhbW9nQkdvaUJ5QUVRUVZzYWlFQ0EwQWdCaUVBQTBBZ0FTQUhJQTFxTFFBQUlnTWdBaUFOYWkwQUFDQUNJQVJxTFFBQUlna2dBaUFTYWkwQUFDSUZhaUlJYXlBSVFRSjBhMm9nQWkwQUFDSUtJQUlnRDJvdEFBQWlDR3BCRkd4cVFSQnFRUVYxUWJBdWFpMEFBRG9BTUNBQklBUWdCMm90QUFBaUVDQUpJQVVnQ0dwQkZHeHFJQU1nQ21vaUNXc2dDVUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBRG9BSUNBQklBY3RBQUFpQ1NBS0lBTWdCV3BCRkd4cUlBZ2dFR29pQ21zZ0NrRUNkR3RxUVJCcVFRVjFRYkF1YWkwQUFEb0FFQ0FCSUFjZ0Qyb3RBQUFnQ0NBRElCQnFRUlJzYWlBRklBbHFJZ05ySUFOQkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBQWdCMEVCYWlFSElBRkJBV29oQVNBQ1FRRnFJUUlnQUVGL2FpSUFEUUFMSUFFZ0VXb2hBU0FDSUE1cUlRSWdCeUFPYWlFSElBeEJmMm9pREEwQUN3c2dDMEhBQTJva0FBdXFCZ0VOZnlNQVFiQUJheUlSSkFBZ0NFRUJhaUVLQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0Ntb2dCRXNOQUNBRElBbHFRUUZxSUFWTERRQWdCU0VNSUFRaENpQURJUThNQVFzZ0FDQVJJQUlnQXlBRUlBVWdDaUFKUVFGcUlnd2dDaEFNSUFBZ0JDQUZiR29nRVNBS0lBeHNhaUFDSUFNZ0JDQUZJQW9nRENBS0VBd2dFU0VBUVFBaEFnc0NRQ0FKUVFGMklnVkZEUUFnQ0VFQmRpSUVSUTBBUVJBZ0NHc2hFMEVJSUFkcklRdEJDQ0FHYXlFTklBcEJBWFFpRGlBSWF5RVVJQUFnQW1vaUZpQUtJQTlzYWlFQ0lBRWhBQ0FGSVJVRFFDQUNJQTVxTFFBQUlBZHNJQXNnQWlBS2FpMEFBQ0lEYkdvaENDQURJQWRzSUFzZ0FpMEFBR3hxSVFrZ0JDRURBMEFnQWtFQmFpSVFJQTVxTFFBQUlSSWdBQ0FKSUExc0lBb2dFR290QUFBaUNTQUhiQ0FMSUFJdEFBRnNhaUlRSUFac2FrRWdha0VHZGpvQUFDQUFJQWdnRFd3Z0J5QVNiQ0FKSUF0c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ0NBQ0xRQUNJUWtnQWtFQ2FpSUNJQTVxTFFBQUlSSWdBQ0FOSUJCc0lBSWdDbW90QUFBaUVDQUhiQ0FKSUF0c2FpSUpJQVpzYWtFZ2FrRUdkam9BQVNBQUlBZ2dEV3dnQnlBU2JDQUxJQkJzYWlJSUlBWnNha0VnYWtFR2Rqb0FDU0FBUVFKcUlRQWdBMEYvYWlJRERRQUxJQUlnRkdvaEFpQUFJQk5xSVFBZ0ZVRi9haUlWRFFBTElBRkJRR3NoQUNBV0lBd2dEMm9nQ214cUlRSURRQ0FDSUE1cUxRQUFJQWRzSUFzZ0FpQUthaTBBQUNJQmJHb2hDQ0FCSUFkc0lBc2dBaTBBQUd4cUlRa2dCQ0VEQTBBZ0FrRUJhaUlCSUE1cUxRQUFJUXdnQUNBSklBMXNJQUVnQ21vdEFBQWlBU0FIYkNBTElBSXRBQUZzYWlJSklBWnNha0VnYWtFR2Rqb0FBQ0FBSUFnZ0RXd2dCeUFNYkNBQklBdHNhaUlCSUFac2FrRWdha0VHZGpvQUNDQUNMUUFDSVFnZ0FrRUNhaUlDSUE1cUxRQUFJUXdnQUNBSklBMXNJQUlnQ21vdEFBQWlEeUFIYkNBSUlBdHNhaUlKSUFac2FrRWdha0VHZGpvQUFTQUFJQUVnRFd3Z0J5QU1iQ0FMSUE5c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ1NBQVFRSnFJUUFnQTBGL2FpSUREUUFMSUFJZ0ZHb2hBaUFBSUJOcUlRQWdCVUYvYWlJRkRRQUxDeUFSUWJBQmFpUUFDLzlFQVVGL0l3QkJzQUZySWdNa0FDQUFLQUlJSWdRRVFDQUFLQUlFSWg5QkEzUWhGaUFFSUI5c0lnUkJCblFoT3lBRVFRaDBJVHdnSDBFR2RDRTlJQjlCTUd3aFBpQWZRUVYwSVNVZ0gwRlFiQ0VyUVFBZ0gwRUVkQ0lhYXlJb1FRSjBJVDhnS0VFQmRDRXNJQU5CR0dvaElpQURRUXh5SVNNRFFBSkFJQUVvQWdnaUNVRUJSZzBBQWtBQ1FBSkFBa0FnQVNnQ3lBRWlBa1VFUUVFQklRWU1BUXRCQlNFR0lBbEJBa2NOQUVFRlFRRWdBU2dDQkNJSklBSW9BZ1JHR3lFR0lBRW9Bc3dCSWdRTkFVRUFJUVFNQXdzZ0FTZ0N6QUVpQkVVRVFFRUFJUVFNQXdzZ0NVRUNSdzBCSUFFb0FnUWhDUXNnQ1NBRUtBSUVSdzBCQ3lBR1FRSnlJUVlMQW44Z0JrRUNjU0l0QkVBQ1FDQUJLQUlBUVFWTkJFQWdCQ2dDQUVFR1NRMEJDeUFEUVFRMkFrQWdBMEVFTmdKSUlBTkJCRFlDT0NBRFFRUTJBakJCQVF3Q0MwRUNJUTlCQWlFSkFrQWdBUzhCSEEwQUlBUXZBVEFOQUVFQklRa2dBU2dDZENBRUtBSjhSdzBBSUFFdUFZUUJJQVF1QWF3QmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBRUxnR3VBV3NpQ1NBSlFSOTFJZ2xxSUFselFRTkxJUWtMSUFNZ0NUWUNNQUpBSUFFdkFSNE5BQ0FFTHdFeURRQkJBU0VQSUFFb0FuUWdCQ2dDZkVjTkFDQUJMZ0dJQVNBRUxnR3dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmlnRWdCQzRCc2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWpoQkFpRUZRUUloQ2dKQUlBRXZBU1FOQUNBRUx3RTREUUJCQVNFS0lBRW9BbmdnQkNnQ2dBRkhEUUFnQVM0QmxBRWdCQzRCdkFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBWllCSUFRdUFiNEJheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSkFBa0FnQVM4QkpnMEFJQVF2QVRvTkFFRUJJUVVnQVNnQ2VDQUVLQUtBQVVjTkFDQUJMZ0dZQVNBRUxnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0Qm1nRWdCQzRCd2dGcklnUWdCRUVmZFNJRWFpQUVjMEVEU3lFRkN5QURJQVUyQWtnZ0NTQVBjaUFLY2lBRmNrRUFSd3dCQ3lBRFFRQTJBa0FnQTBFQU5nSklJQU5CQURZQ09DQURRUUEyQWpCQkFBc2hDUUpBQWtBQ1FBSkFJQVpCQkhFaUxnUkFBa0FnQVNnQ0FDSUdRUVZOQkVBZ0FpZ0NBRUVHU1EwQkN5QURRUVEyQW5RZ0EwRUVOZ0tVQVNBRFFRUTJBbFFnQTBFRU5nSTBRUUVoQ1F3Q0MwRUNJUTlCQWlFRUFrQWdBUzhCSEEwQUlBSXZBU1lOQUVFQklRUWdBU2dDZENBQ0tBSjRSdzBBSUFFdUFZUUJJQUl1QVpnQmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBQ0xnR2FBV3NpQkNBRVFSOTFJZ1JxSUFSelFRTkxJUVFMSUFNZ0JEWUNOQUpBSUFFdkFTQU5BQ0FDTHdFcURRQkJBU0VQSUFFb0FuUWdBaWdDZUVjTkFDQUJMZ0dNQVNBQ0xnR2dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmpnRWdBaTRCb2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWxSQkFpRUZRUUloQ2dKQUlBRXZBU3dOQUNBQ0x3RTJEUUJCQVNFS0lBRW9BbndnQWlnQ2dBRkhEUUFnQVM0QnBBRWdBaTRCdUFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBYVlCSUFJdUFib0JheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSjBBa0FnQVM4Qk1BMEFJQUl2QVRvTkFFRUJJUVVnQVNnQ2ZDQUNLQUtBQVVjTkFDQUJMZ0dzQVNBQ0xnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0QnJnRWdBaTRCd2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFRkN5QURJQVUyQXBRQklBbEZEUUpCQVNFSkRBTUxJQU5CQURZQ2RDQURRUUEyQXBRQklBTkJBRFlDVkNBRFFRQTJBalFnQVNnQ0FDRUdDeUFHUVFaSkRRRWdBMEVETmdLZ0FTQURRb09BZ0lBd053S2tBU0FEUVFNMkFwQUJJQU5CQXpZQ2NDQURRUU0yQXF3QklBTkNnNENBZ0RBM0E1Z0JJQU5DZzRDQWdEQTNBNGdCSUFOQ2c0Q0FnREEzQTRBQklBTkNnNENBZ0RBM0EzZ2dBMEtEZ0lDQU1EY0RhQ0FEUW9PQWdJQXdOd05nSUFOQ2c0Q0FnREEzQTFnZ0EwS0RnSUNBTURjQ1RDQURRUU0yQWtRZ0EwRUROZ0k4REFJTElBUWdEM0lnQ25JZ0JYSkJBRWNoQ1FzQ1FBSi9JQVpCQTAwRVFDQUdRUUowUVl3MWFpZ0NBQXdCQzBFRUMwRUJSZ1JBSUFFZ0EwRXdhaEJFSUFNb0Fxd0JJUWNnQXlnQ3BBRWhEaUFES0FLY0FTRVFJQU1vQW93QklSa2dBeWdDaEFFaEJpQURLQUo4SVJjZ0F5Z0NiQ0VJSUFNb0FtUWhCQ0FES0FKY0lSUWdBeWdDVENFTUlBTW9Ba1FoQWlBREtBSThJUkVnQXlnQ3FBRWhIQ0FES0FLZ0FTRW1JQU1vQXBnQklRMGdBeWdDa0FFaEhTQURLQUtJQVNFU0lBTW9Bb0FCSVJVZ0F5Z0NlQ0ViSUFNb0FuQWhFeUFES0FKb0lRb2dBeWdDWUNFUElBTW9BbGdoQlNBREtBSlFJU2NNQVFzZ0F3Si9Ba0FnQXdKL0FrQUNRQ0FCS0FJQVFYNXFJZ1JCQVUwRVFDQUVRUUZyQkVBZ0F3Si9Ba0FnQVM4QklDSUVEUUFnQVM4QkhBMEFRUUFNQVF0QkFnc2lKellDVUNBREFuOENRQ0FCTHdFaUlnY05BQ0FCTHdFZURRQkJBQXdCQzBFQ0N5SUZOZ0pZSUFNQ2Z3SkFJQUV2QVNnaUJnMEFJQUV2QVNRTkFFRUFEQUVMUVFJTElnODJBbUFnQXdKL0FrQWdBUzhCS2lJT0RRQWdBUzhCSmcwQVFRQU1BUXRCQWdzaUNqWUNhQ0FEQW44Q1FDQUJMd0V3SWg0TkFDQUJMd0VzRFFCQkFBd0JDMEVDQ3lJZE5nS1FBU0FEQW44Q1FDQUJMd0V5SWhBTkFDQUJMd0V1RFFCQkFBd0JDMEVDQ3lJTk5nS1lBU0FEQW44Q1FDQUJMd0U0SWdzTkFDQUJMd0UwRFFCQkFBd0JDMEVDQ3lJbU5nS2dBU0FEQW44Q1FDQUJMd0U2SWhnTkFDQUJMd0UyRFFCQkFBd0JDMEVDQ3lJY05nS29BVUVDSVJ0QkFpRVRBa0FnQkNBQkx3RXNJaGR5RFFCQkFTRVRJQUV1QWFRQklBRXVBWXdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQkxnR21BU0FCTGdHT0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdBU2dDZkNBQktBSjBSeUVUQ3lBRElCTTJBbkFDUUNBSElBRXZBUzRpSUhJTkFFRUJJUnNnQVM0QnFBRWdBUzRCa0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRXVBYW9CSUFFdUFaSUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FCS0FKOElBRW9BblJISVJzTElBTWdHellDZUVFQ0lSSkJBaUVWQWtBZ0JpQUJMd0UwSWhseURRQkJBU0VWSUFFdUFiUUJJQUV1QVp3QmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJMZ0cyQVNBQkxnR2VBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEZRc2dBeUFWTmdLQUFRSkFJQTRnQVM4Qk5pSWhjZzBBUVFFaEVpQUJMZ0c0QVNBQkxnR2dBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVM0QnVnRWdBUzRCb2dGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9Bb0FCSUFFb0FuaEhJUklMSUFNZ0VqWUNpQUVnQVM4QkhnMENJQUV2QVJ3RVFFRUNJUkVnQTBFQ05nSThJQUV2QVNRaUNBMEdRUUFoREVFQURBY0xRUUFoRVNBRFFRQTJBanhCQUNFTVFRQWdBUzhCSkNJSVJRMEdHZ3dGQ3lBREFuOENRQ0FCTHdFZ0lnSU5BQ0FCTHdFY0RRQkJBQXdCQzBFQ0N5SW5OZ0pRSUFNQ2Z3SkFJQUV2QVNJaUJnMEFJQUV2QVI0TkFFRUFEQUVMUVFJTElnVTJBbGdnQXdKL0FrQWdBUzhCS0NJT0RRQWdBUzhCSkEwQVFRQU1BUXRCQWdzaUR6WUNZQ0FEQW44Q1FDQUJMd0VxSWdnTkFDQUJMd0VtRFFCQkFBd0JDMEVDQ3lJS05nSm9JQU1nQWlBQkx3RXNJaGR5UVFCSFFRRjBJaE0yQW5BZ0F5QUdJQUV2QVM0aUMzSkJBRWRCQVhRaUd6WUNlQ0FESUE0Z0FTOEJOQ0llY2tFQVIwRUJkQ0lWTmdLQUFTQURJQWdnQVM4Qk5pSVpja0VBUjBFQmRDSVNOZ0tJQVNBRElBRXZBVEFpRUNBWGNrRUFSMEVCZENJZE5nS1FBU0FESUFFdkFUSWlJQ0FMY2tFQVIwRUJkQ0lOTmdLWUFTQURJQUV2QVRnaUlTQWVja0VBUjBFQmRDSW1OZ0tnQVNBRElBRXZBVG9pQnlBWmNrRUFSMEVCZENJY05nS29BU0FEQW44Q1FDQUJMd0VlSWlRTkFDQUJMd0VjRFFCQkFBd0JDMEVDQ3lJUk5nSThJQUV2QVNZRVFDQUJMd0VrSVJnTUF3c2dBUzhCSkNJWURRSkJBQ0VZUVFBTUF3c2dBUzRCaGdFaEZDQUJMZ0dPQVNFRVFRSWhCU0FEQW45QkFpQUJMd0VjSWhFZ0FTOEJJQ0l2Y2cwQUdrRUJJQUV1QVl3QklBRXVBWVFCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUJvZ0JDQVVheUlHSUFaQkgzVWlCbW9nQm5OQkEwc0xJaWMyQWxBZ0FTNEJpZ0VoQ0NBQkxnR1NBU0VHQWtBZ0FTOEJIaUl3SUFFdkFTSWlFSElOQUVFQklRVWdBUzRCa0FFZ0FTNEJpQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUFZZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6UVFOTElRVUxJQU1nQlRZQ1dDQUJMZ0dXQVNFTUlBRXVBWjRCSVFkQkFpRUtJQU1DZjBFQ0lBRXZBU1FpTVNBQkx3RW9JaGR5RFFBYVFRRWdBUzRCbkFFZ0FTNEJsQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBR2lBSElBeHJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3c2lEellDWUNBQkxnR2FBU0V5SUFFdUFhSUJJUXNDUUNBQkx3RW1Ja0FnQVM4QktpSXpjZzBBUVFFaENpQUJMZ0dnQVNBQkxnR1lBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQ3lBeWF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzaENnc2dBeUFLTmdKb0lBRXVBYVlCSVI1QkFpRWJRUUloRXdKQUlDOGdBUzhCTENJMGNnMEFRUUVoRXlBQkxnR2tBU0FCTGdHTUFXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdIaUFFYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQktBSjhJQUVvQW5SSElSTUxJQU1nRXpZQ2NDQUJMZ0dxQVNFT0FrQWdFQ0FCTHdFdUloaHlEUUJCQVNFYklBRXVBYWdCSUFFdUFaQUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FPSUFacklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9BbndnQVNnQ2RFY2hHd3NnQXlBYk5nSjRJQUV1QWJZQklSbEJBaUVTUVFJaEZRSkFJQmNnQVM4Qk5DSWdjZzBBUVFFaEZTQUJMZ0cwQVNBQkxnR2NBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnR1NBSGF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJLQUtBQVNBQktBSjRSeUVWQ3lBRElCVTJBb0FCSUFFdUFib0JJU0VDUUNBeklBRXZBVFlpTlhJTkFFRUJJUklnQVM0QnVBRWdBUzRCb0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlDRWdDMnNpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEVnc2dBeUFTTmdLSUFTQUJMZ0d1QVNFMlFRSWhEU0FEQW45QkFpQTBJQUV2QVRBaVFYSU5BQnBCQVNBQkxnR3NBU0FCTGdHa0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWFJRFlnSG1zaUFpQUNRUjkxSWdKcUlBSnpRUU5MQ3lJZE5nS1FBU0FCTGdHeUFTRWtBa0FnR0NBQkx3RXlJamR5RFFCQkFTRU5JQUV1QWJBQklBRXVBYWdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBa0lBNXJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN5RU5DeUFESUEwMkFwZ0JJQUV1QWI0QklTbEJBaUVjSUFNQ2YwRUNJQ0FnQVM4Qk9DSTRjZzBBR2tFQklBRXVBYndCSUFFdUFiUUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQm9nS1NBWmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTElpWTJBcUFCSUFFdUFjSUJJVGtDUUNBMUlBRXZBVG9pUW5JTkFFRUJJUndnQVM0QndBRWdBUzRCdUFGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlEa2dJV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxJUndMSUFNZ0hEWUNxQUZCQWlFQ0lBTUNmMEVDSUJFZ01ISU5BQnBCQVNBQkxnR0lBU0FCTGdHRUFXc2lFU0FSUVI5MUloRnFJQkZ6UVFOTERRQWFJQWdnRkdzaUZDQVVRUjkxSWhScUlCUnpRUU5MQ3lJUk5nSThBa0FnTUNBeGNnMEFRUUVoQWlBQkxnR1VBU0FCTGdHSUFXc2lGQ0FVUVI5MUloUnFJQlJ6UVFOTERRQWdEQ0FJYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBQktBSjRJQUVvQW5SSElRSUxJQU1nQWpZQ1JFRUNJUlFnQXdKL1FRSWdNU0JBY2cwQUdrRUJJQUV1QVpnQklBRXVBWlFCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUJvZ01pQU1heUlJSUFoQkgzVWlDR29nQ0hOQkEwc0xJZ3cyQWt3Q1FDQVFJQzl5RFFCQkFTRVVJQUV1QVpBQklBRXVBWXdCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBR0lBUnJJZ1FnQkVFZmRTSUVhaUFFYzBFRFN5RVVDeUFESUJRMkFseEJBaUVJUVFJaEJBSkFJQkFnRjNJTkFFRUJJUVFnQVM0Qm5BRWdBUzRCa0FGckloQWdFRUVmZFNJUWFpQVFjMEVEU3cwQUlBY2dCbXNpQmlBR1FSOTFJZ1pxSUFaelFRTkxEUUFnQVNnQ2VDQUJLQUowUnlFRUN5QURJQVEyQW1RQ1FDQVhJRE55RFFCQkFTRUlJQUV1QWFBQklBRXVBWndCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUNBTElBZHJJZ1lnQmtFZmRTSUdhaUFHYzBFRFN5RUlDeUFESUFnMkFteEJBaUVHSUFNQ2YwRUNJQmdnTkhJTkFCcEJBU0FCTGdHb0FTQUJMZ0drQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBYUlBNGdIbXNpQnlBSFFSOTFJZ2RxSUFkelFRTkxDeUlYTmdKOEFrQWdHQ0FnY2cwQVFRRWhCaUFCTGdHMEFTQUJMZ0dvQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBZ0dTQU9heUlISUFkQkgzVWlCMm9nQjNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQlFRSWhFQ0FEQW45QkFpQWdJRFZ5RFFBYVFRRWdBUzRCdUFFZ0FTNEJ0QUZySWdjZ0IwRWZkU0lIYWlBSGMwRURTdzBBR2lBaElCbHJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN3c2lHVFlDakFFQ1FDQTNJRUZ5RFFCQkFTRVFJQUV1QWJBQklBRXVBYXdCYXlJSElBZEJIM1VpQjJvZ0IzTkJBMHNOQUNBa0lEWnJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN5RVFDeUFESUJBMkFwd0JRUUloQjBFQ0lRNENRQ0EzSURoeURRQkJBU0VPSUFFdUFid0JJQUV1QWJBQmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQXBJQ1JySWdzZ0MwRWZkU0lMYWlBTGMwRURTdzBBSUFFb0FvQUJJQUVvQW54SElRNExJQU1nRGpZQ3BBRUNRQ0E0SUVKeURRQkJBU0VISUFFdUFjQUJJQUV1QWJ3QmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQTVJQ2xySWdjZ0IwRWZkU0lIYWlBSGMwRURTeUVIQ3lBRElBYzJBcXdCREFVTFFRSWhFU0FEUVFJMkFqd2dBUzhCSkNFSURBSUxRUUlMSWd3MkFreEJBaUVFSUFOQkFpQUlRUUJIUVFGMElBNGJJZ2cyQW13Z0EwRUNJQVpCQUVkQkFYUWdBaHNpRkRZQ1hDQURJQWNnSVhKQkFFZEJBWFFpQnpZQ3JBRWdBeUFRSUNCeVFRQkhRUUYwSWhBMkFwd0JJQU1nR1NBZWNrRUFSMEVCZENJWk5nS01BU0FESUFzZ0YzSkJBRWRCQVhRaUZ6WUNmRUVDSVFJQ1FDQVlJQ1J5RFFCQkFTRUNJQUV1QVpRQklBRXVBWWdCYXlJWUlCaEJIM1VpR0dvZ0dITkJBMHNOQUNBQkxnR1dBU0FCTGdHS0FXc2lHQ0FZUVI5MUloaHFJQmh6UVFOTERRQWdBU2dDZUNBQktBSjBSeUVDQ3lBRElBSTJBa1FDUUNBR0lBNXlEUUJCQVNFRUlBRXVBWndCSUFFdUFaQUJheUlHSUFaQkgzVWlCbW9nQm5OQkEwc05BQ0FCTGdHZUFTQUJMZ0dTQVdzaUJpQUdRUjkxSWdacUlBWnpRUU5MRFFBZ0FTZ0NlQ0FCS0FKMFJ5RUVDeUFESUFRMkFtUkJBaUVPUVFJaEJnSkFJQXNnSG5JTkFFRUJJUVlnQVM0QnRBRWdBUzRCcUFGcklnc2dDMEVmZFNJTGFpQUxjMEVEU3cwQUlBRXVBYllCSUFFdUFhb0JheUlMSUF0QkgzVWlDMm9nQzNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQkFrQWdJQ0FoY2cwQVFRRWhEaUFCTGdHOEFTQUJMZ0d3QVdzaUN5QUxRUjkxSWd0cUlBdHpRUU5MRFFBZ0FTNEJ2Z0VnQVM0QnNnRnJJZ3NnQzBFZmRTSUxhaUFMYzBFRFN3MEFJQUVvQW9BQklBRW9BbnhISVE0TElBTWdEallDcEFFTUFnc2dDQ0VNUVFJTElnSTJBa1FnQXlBQkx3RW1JQXhCLy84RGNYSkJBRWRCQVhRaUREWUNUQ0FEQW44Q1FDQUhSUVJBSUFRRVFFRUNJUlFnQTBFQ05nSmNJQVlOQWtFQURBTUxRUUFoRkNBRFFRQTJBbHhCQUNBR1JRMENHZ3dCQzBFQ0lSUWdBMEVDTmdKY0MwRUNDeUlFTmdKa0lBTkJBaUFPUVFCSFFRRjBJQVliSWdnMkFtd2dBd0ovQWtBZ0lFVUVRQ0FYQkVCQkFpRVhJQU5CQWpZQ2ZDQVpEUUpCQUF3REMwRUFJUmNnQTBFQU5nSjhRUUFnR1VVTkFob01BUXRCQWlFWElBTkJBallDZkF0QkFnc2lCallDaEFFZ0F5QUxJQmh5UVFCSFFRRjBJZ2MyQXF3QklBTWdDeUFRY2tFQVIwRUJkQ0lPTmdLa0FTQURRUUlnRUVFQVIwRUJkQ0FlR3lJUU5nS2NBU0FESUJrZ0lYSkJBRWRCQVhRaUdUWUNqQUVMSUFrZ0ozSWdCWElnRDNJZ0NuSWdFM0lnRzNJZ0ZYSWdFbklnSFhJZ0RYSWdKbklnSEhJZ0VYSWdBbklnREhJZ0ZISWdCSElnQ0hJZ0YzSWdCbklnR1hJZ0VISWdEbklnQjNKRkRRRUxJQUVvQWd3aENTQURJQUVvQWhBaUJTQUJLQUlVSWdScUlnWkJNeUFHUVROSUd5SUdRUUFnQmtFQVNodEIwQmRxTFFBQUlnWTJBaUFnQXlBRUlBbHFJZ0pCTXlBQ1FUTklHeUlDUVFBZ0FrRUFTaHNpQ0VHUUYyb3RBQUFpQWpZQ0hDQURJQWhCQTJ4QmtCaHFJZ2cyQWhnQ1FDQXRSUTBBSUFRZ0FTZ0N6QUVvQWhRaUIwY0VRQ0FESUFRZ0IycEJBV3BCQVhZaUJ5QUZhaUlOUVRNZ0RVRXpTQnNpRFVFQUlBMUJBRW9iUWRBWGFpMEFBRFlDQ0NBRElBY2dDV29pQjBFeklBZEJNMGdiSWdkQkFDQUhRUUJLR3lJSFFaQVhhaTBBQURZQ0JDQURJQWRCQTJ4QmtCaHFOZ0lBREFFTElBTWdCallDQ0NBRElBSTJBZ1FnQXlBSU5nSUFDd0pBSUM1RkRRQWdCQ0FCS0FMSUFTZ0NGQ0lIUndSQUlBTWdCQ0FIYWtFQmFrRUJkaUlFSUFWcUlnVkJNeUFGUVROSUd5SUZRUUFnQlVFQVNodEIwQmRxTFFBQU5nSVVJQU1nQkNBSmFpSUVRVE1nQkVFelNCc2lCRUVBSUFSQkFFb2JJZ1JCa0JkcUxRQUFOZ0lRSUFNZ0JFRURiRUdRR0dvMkFnd01BUXNnQXlBR05nSVVJQU1nQWpZQ0VDQURJQWcyQWd3TElBQW9BZ0FnSHlBNmJDSVVRUWgwYWlBcVFRUjBhaUVKUVFBaEFrRURJUVFnQTBFd2FpRUdBMEFnQmlnQ0JDSUZCRUFnQ1NBRklDTWdHaEFaQ3lBR0tBSU1JZ1VFUUNBSlFRUnFJQVVnSWlBYUVCa0xJQVlvQWhRaUJRUkFJQWxCQ0dvZ0JTQWlJQm9RR1FzZ0JpZ0NIQ0lGQkVBZ0NVRU1haUFGSUNJZ0doQVpDeUFFSVFnQ1FBSkFBa0FnQmlnQ0FDSUVJQVlvQWdnaUQwY05BQ0FFSUFZb0FoQkhEUUFnQkNBR0tBSVlSdzBBSUFSRkRRSWdBeUFDUVF4c2FpSUZLQUlJSVF3Z0JTZ0NCQ0ViSUFSQkJFa05BU0FiUVFKMlFRSnFJUkJCRUNFUElBa2hCQU5BQWtBZ0JDQW9haUlDTFFBQUlnb2dCQzBBQUNJT2F5SUZJQVZCSDNVaUJXb2dCWE1pQnlBYlR3MEFJQVFnTEdvaUVTMEFBQ0lGSUFwcklnMGdEVUVmZFNJTmFpQU5jeUFNVHcwQUlBUWdHbW9pSEMwQUFDSVNJQTVySWcwZ0RVRWZkU0lOYWlBTmN5QU1UdzBBQWtBZ0J5QVFTUVJBSUFRZ0pXb2lGeTBBQUNFVkFuOGdCQ0FyYWlJTkxRQUFJaE1nQ21zaUJ5QUhRUjkxSWdkcUlBZHpJQXhKQkVCQkF5RWRJQUlnRWlBS0lBNXFJQVZxSWdKQkFYUnFJQk5xUVFScVFRTjJPZ0FBSUJFZ0FpQVRha0VDYWtFQ2Rqb0FBQ0FDUVFScUlSRWdCQ0EvYWkwQUFDRUhJQk5CQTJ3TUFRc2dDaUFTYWlFUklBVWhCMEVDSVIwZ0FpRU5RUUlMSVFJZ0RTQUNJQkZxSUFkQkFYUnFJQjEyT2dBQUlCVWdEbXNpQWlBQ1FSOTFJZ0pxSUFKeklBeFBEUUVnQkNBRklBb2dFbW9nRG1vaUFrRUJkR29nRldwQkJHcEJBM1k2QUFBZ0hDQUNJQlZxUVFKcVFRSjJPZ0FBSUJjZ0FpQVZRUU5zYWlBRUlENXFMUUFBUVFGMGFrRUVha0VEZGpvQUFBd0NDeUFDSUFvZ0Vtb2dCVUVCZEdwQkFtcEJBblk2QUFBTElBUWdCU0FPYWlBU1FRRjBha0VDYWtFQ2Rqb0FBQXNnQkVFQmFpRUVJQTlCZjJvaUR3MEFDd3dDQ3dKL0lBUUVRQ0FKSUFRZ0F5QUNRUXhzYWlBYUVCZ2dCaWdDQ0NFUEN5QVBDd1JBSUFsQkJHb2dEeUFESUFKQkRHeHFJQm9RR0FzZ0JpZ0NFQ0lFQkVBZ0NVRUlhaUFFSUFNZ0FrRU1iR29nR2hBWUN5QUdLQUlZSWdSRkRRRWdDVUVNYWlBRUlBTWdBa0VNYkdvZ0doQVlEQUVMSUFRZ0JTZ0NBR3BCZjJvdEFBQWlBa0VCYWlFSFFRQWdBbXNoRGtFUUlROGdDU0VFQTBBQ1FDQUVJQ2hxSWhNdEFBQWlEU0FFTFFBQUlncHJJZ1VnQlVFZmRTSUZhaUFGY3lBYlR3MEFJQVFnTEdvaUVTMEFBQ0lTSUExcklnVWdCVUVmZFNJRmFpQUZjeUFNVHcwQUlBUWdHbW9pRUMwQUFDSVZJQXBySWdVZ0JVRWZkU0lGYWlBRmN5QU1UdzBBSUFJaEJTQUVJQ3RxTFFBQUlod2dEV3NpSFNBZFFSOTFJaDFxSUIxeklBeEpCRUFnRVNBU0lBNGdBaUFLSUExcVFRRnFRUUYySUJKQkFYUnJJQnhxUVFGMUlnVWdCU0FDU2hzZ0JTQU9TQnRxT2dBQUlBY2hCUXNnRXlBTkFuOGdCQ0FsYWkwQUFDSVRJQXBySWhFZ0VVRWZkU0lSYWlBUmN5QU1TUVJBSUJBZ0ZTQU9JQUlnQ2lBTmFrRUJha0VCZGlBVlFRRjBheUFUYWtFQmRTSVRJQk1nQWtvYklCTWdEa2diYWpvQUFDQUZRUUZxSVFVTFFRQWdCV3NpRXdzZ0JTQVNJQlZySUFvZ0RXdEJBblJxUVFScVFRTjFJaElnRWlBRlNoc2dFaUFUU0JzaUJXcEJzQzVxTFFBQU9nQUFJQVFnQ2lBRmEwR3dMbW90QUFBNkFBQUxJQVJCQVdvaEJDQVBRWDlxSWc4TkFBc0xJQWhCZjJvaEJDQUdRU0JxSVFZZ0NTQTlhaUVKUVFJaEFpQUlEUUFMSUFFb0Fnd2hCQ0FESUFFb0FoQWlCU0FCS0FJVUlnWWdBU2dDR0NJQ2FpSUpRVE1nQ1VFelNCc2lDVUVBSUFsQkFFb2JRUUowUWVBOWFpZ0NBQ0lKYWlJSVFUTWdDRUV6U0JzaUNFRUFJQWhCQUVvYlFkQVhhaTBBQUNJSU5nSWdJQU1nQkNBSmFpSUhRVE1nQjBFelNCc2lCMEVBSUFkQkFFb2JJZzFCa0JkcUxRQUFJZ2MyQWh3Z0F5QU5RUU5zUVpBWWFpSU5OZ0lZQWtBZ0xVVU5BQ0FHSUFFb0Fzd0JLQUlVSWd4SEJFQWdBeUFKSUFJZ0RHb2lERUV6SUF4Qk0wZ2JJZ3hCQUNBTVFRQktHMEVDZEVIZ1BXb29BZ0JxUVFGcVFRRjJJZ3dnQldvaUQwRXpJQTlCTTBnYklnOUJBQ0FQUVFCS0cwSFFGMm90QUFBMkFnZ2dBeUFFSUF4cUlneEJNeUFNUVROSUd5SU1RUUFnREVFQVNoc2lERUdRRjJvdEFBQTJBZ1FnQXlBTVFRTnNRWkFZYWpZQ0FBd0JDeUFESUFnMkFnZ2dBeUFITmdJRUlBTWdEVFlDQUFzQ1FDQXVSUTBBSUFZZ0FTZ0N5QUVvQWhRaURFY0VRQ0FESUFVZ0NTQUNJQXhxSWdaQk15QUdRVE5JR3lJR1FRQWdCa0VBU2h0QkFuUkI0RDFxS0FJQWFrRUJha0VCZGlJSmFpSUZRVE1nQlVFelNCc2lCVUVBSUFWQkFFb2JRZEFYYWkwQUFEWUNGQ0FESUFRZ0NXb2lCRUV6SUFSQk0wZ2JJZ1JCQUNBRVFRQktHeUlFUVpBWGFpMEFBRFlDRUNBRElBUkJBMnhCa0JocU5nSU1EQUVMSUFNZ0NEWUNGQ0FESUFjMkFoQWdBeUFOTmdJTUN5QUFLQUlBSUR4cUlCUkJCblJxSUNwQkEzUnFJZ2tnTzJvaEJFRUFJUW9nQTBFd2FpRUdRUUFoQWdOQUlBWW9BZ1FpQlFSQUlBa2dCU0FqSUJZUUVDQUVJQVlvQWdRZ0l5QVdFQkFMSUFZb0FpUWlCUVJBSUFrZ0dtb2dCU0FqSUJZUUVDQUVJQnBxSUFZb0FpUWdJeUFXRUJBTElBWW9BaFFpQlFSQUlBbEJCR29nQlNBaUlCWVFFQ0FFUVFScUlBWW9BaFFnSWlBV0VCQUxJQVlvQWpRaUJRUkFJQWtnR21wQkJHb2dCU0FpSUJZUUVDQUVJQnBxUVFScUlBWW9BalFnSWlBV0VCQUxJQUloQlFKQUFrQWdCaWdDQUNJQ0lBWW9BZ2dpRDBjTkFDQUNJQVlvQWhCSERRQWdBaUFHS0FJWVJ3MEFJQUpGRFFFZ0NTQUNJQU1nQ2tFTWJHb2lBaUFXRUNzZ0JDQUdLQUlBSUFJZ0ZoQXJEQUVMQW44Z0FnUkFJQWtnQWlBRElBcEJER3hxSWdJZ0ZoQVNJQVFnQmlnQ0FDQUNJQllRRWlBR0tBSUlJUThMSUE4TEJFQWdDVUVDYWlBUElBTWdDa0VNYkdvaUFpQVdFQklnQkVFQ2FpQUdLQUlJSUFJZ0ZoQVNDeUFHS0FJUUlnSUVRQ0FKUVFScUlBSWdBeUFLUVF4c2FpSUNJQllRRWlBRVFRUnFJQVlvQWhBZ0FpQVdFQklMSUFZb0FoZ2lBa1VOQUNBSlFRWnFJQUlnQXlBS1FReHNhaUlDSUJZUUVpQUVRUVpxSUFZb0FoZ2dBaUFXRUJJTElBUWdKV29oQkNBSklDVnFJUWtnQmtGQWF5RUdRUUVoQWtFQ0lRb2dCVVVOQUFzTFFRQWdLa0VCYWlJRUlBUWdIMFlpQkJzaEtpQUJRZGdCYWlFQklBUWdPbW9pT2lBQUtBSUlTUTBBQ3dzZ0EwR3dBV29rQUF1Q0JRRUtmeU1BUVpBQmF5SUxKQUFDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSGFpQUVTdzBBSUFNZ0NHcEJBV29nQlVzTkFDQUZJUXdnQXlFT0RBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFjZ0NFRUJhaUlNSUFjUURDQUFJQVFnQld4cUlBc2dCeUFNYkdvZ0FpQURJQVFnQlNBSElBd2dCeEFNSUFzaEFDQUhJUVJCQUNFQ0N3SkFJQWhCQVhZaUJVVU5BQ0FIUVFGMklnTkZEUUJCRUNBSGF5RVFRUWdnQm1zaENTQUVRUUYwSWcwZ0Iyc2hFU0FBSUFKcUloSWdCQ0FPYkdvaEJ5QUJJUUlnQlNFSUEwQWdBeUVBQTBBZ0J5QU5haTBBQUNFS0lBSWdDU0FITFFBQWJDQUVJQWRxTFFBQUlnOGdCbXhxUVFOMFFTQnFRUVoyT2dBQUlBSWdDU0FQYkNBR0lBcHNha0VEZEVFZ2FrRUdkam9BQ0NBSFFRRnFJZ29nRFdvdEFBQWhEeUFDSUFrZ0J5MEFBV3dnQkNBS2FpMEFBQ0lLSUFac2FrRURkRUVnYWtFR2Rqb0FBU0FDSUFrZ0Ntd2dCaUFQYkdwQkEzUkJJR3BCQm5ZNkFBa2dBa0VDYWlFQ0lBZEJBbW9oQnlBQVFYOXFJZ0FOQUFzZ0J5QVJhaUVISUFJZ0VHb2hBaUFJUVg5cUlnZ05BQXNnQVVGQWF5RUNJQklnRENBT2FpQUViR29oQndOQUlBTWhBQU5BSUFjZ0RXb3RBQUFoQVNBQ0lBa2dCeTBBQUd3Z0JDQUhhaTBBQUNJSUlBWnNha0VEZEVFZ2FrRUdkam9BQUNBQ0lBZ2dDV3dnQVNBR2JHcEJBM1JCSUdwQkJuWTZBQWdnQjBFQmFpSUJJQTFxTFFBQUlRZ2dBaUFKSUFjdEFBRnNJQUVnQkdvdEFBQWlBU0FHYkdwQkEzUkJJR3BCQm5ZNkFBRWdBaUFCSUFsc0lBWWdDR3hxUVFOMFFTQnFRUVoyT2dBSklBSkJBbW9oQWlBSFFRSnFJUWNnQUVGL2FpSUFEUUFMSUFjZ0VXb2hCeUFDSUJCcUlRSWdCVUYvYWlJRkRRQUxDeUFMUVpBQmFpUUFDLzBFQVF0L0l3QkJrQUZySWd3a0FDQUhRUUZxSVFrQ1FBSkFJQUpCQUVnTkFDQURJQWhxSUFWTERRQWdBMEVBU0EwQUlBSWdDV29nQkVzTkFDQUVJUWtnQXlFTERBRUxJQUFnRENBQ0lBTWdCQ0FGSUFrZ0NDQUpFQXdnQUNBRUlBVnNhaUFNSUFnZ0NXeHFJQUlnQXlBRUlBVWdDU0FJSUFrUURDQU1JUUFnQ0NFRlFRQWhBZ3NDUUNBSVFRRjJJZ2hGRFFBZ0IwRUJkaUlFUlEwQVFSQWdCMnNoRGtFSUlBWnJJUW9nQ1VFQmRDQUhheUVQSUFBZ0Ftb2lFU0FKSUF0c2FpRUNJQUVoQXlBSUlRQURRQ0FFSVFjRFFDQUNRUUZxSUFscUxRQUFJUkFnQWlBSmFpMEFBQ0VOSUFNZ0FpMEFBU0lTSUFac0lBb2dBaTBBQUd4cVFRTjBRU0JxUVFaMk9nQUFJQU1nQmlBUWJDQUtJQTFzYWtFRGRFRWdha0VHZGpvQUNDQUNMUUFDSVEwZ0FrRUNhaUlDSUFscUxRQUFJUk1nQXlBR0lBMXNJQW9nRW14cVFRTjBRU0JxUVFaMk9nQUJJQU1nQmlBVGJDQUtJQkJzYWtFRGRFRWdha0VHZGpvQUNTQURRUUpxSVFNZ0IwRi9haUlIRFFBTElBSWdEMm9oQWlBRElBNXFJUU1nQUVGL2FpSUFEUUFMSUFGQlFHc2hBeUFSSUFVZ0Myb2dDV3hxSVFJRFFDQUVJUWNEUUNBQ1FRRnFJQWxxTFFBQUlRQWdBaUFKYWkwQUFDRUJJQU1nQWkwQUFTSUZJQVpzSUFvZ0FpMEFBR3hxUVFOMFFTQnFRUVoyT2dBQUlBTWdBQ0FHYkNBQklBcHNha0VEZEVFZ2FrRUdkam9BQ0NBQ0xRQUNJUUVnQWtFQ2FpSUNJQWxxTFFBQUlRc2dBeUFCSUFac0lBVWdDbXhxUVFOMFFTQnFRUVoyT2dBQklBTWdCaUFMYkNBQUlBcHNha0VEZEVFZ2FrRUdkam9BQ1NBRFFRSnFJUU1nQjBGL2FpSUhEUUFMSUFJZ0Qyb2hBaUFESUE1cUlRTWdDRUYvYWlJSURRQUxDeUFNUVpBQmFpUUFDN2tIQVFWL0l3QkJFR3NpQkNRQUFrQWdBQ0FCUVFCQnlBQVFCeUlERUFJaUFRMEFRUUVoQVNBREtBSUFRZjhCU3cwQUlBQWdBMEVFYWhBQ0lnRU5BRUVCSVFFZ0F5Z0NCRUVmU3cwQUlBQkJBUkFERFFBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNDQ0FBSUFSQkRHb1FBaUlCRFFBZ0F5QUVLQUlNUVFGcUlnRTJBZ3dnQVVFSVN3UkFRUUVoQVF3QkN3SkFJQUZCQWtrTkFDQUFJQU5CRUdvUUFpSUJEUUVnQXlnQ0VDSUJRUVpMSWdJRVFFRUJJUUVNQWdzZ0FnMEFBa0FDUUFKQUFrQWdBVUVCYXc0R0JBRUNBZ0lEQUFzZ0F5QURLQUlNSWdGQkFuUVFDaUlDTmdJVUlBSkZCRUJCLy84RElRRU1CUXNnQVVVTkEwRUFJUUlEUUNBQUlBUkJER29RQWlJQkRRVWdBeWdDRkNBQ1FRSjBhaUFFS0FJTVFRRnFOZ0lBSUFKQkFXb2lBaUFES0FJTVNRMEFDd3dEQ3lBRElBTW9BZ3dpQWtFQ2RFRjhhaUlCRUFvaUJUWUNHQ0FESUFFUUNpSUdOZ0ljUWYvL0F5RUJJQVZGRFFNZ0JrVU5BeUFDUVFGR0RRSkJBQ0VDQTBBZ0FDQUVRUXhxRUFJaUFRMEVJQUpCQW5RaUJTQURLQUlZYWlBRUtBSU1OZ0lBSUFBZ0JFRU1haEFDSWdFTkJDQURLQUljSUFWcUlBUW9BZ3cyQWdBZ0FrRUJhaUlDSUFNb0FneEJmMnBKRFFBTERBSUxRUUVoQVNBQVFRRVFBeUlDUVg5R0RRSWdBeUFDUVFGR05nSWdJQUFnQkVFTWFoQUNJZ0VOQWlBRElBUW9BZ3hCQVdvMkFpUU1BUXNnQUNBRVFReHFFQUlpQVEwQklBTWdCQ2dDREVFQmFpSUJOZ0lvSUFNZ0FVRUNkQkFLSWdJMkFpd2dBa1VFUUVILy93TWhBUXdDQ3lBQlJRMEFJQU1vQWd4QkFuUkJyRHRxS0FJQUlRWkJBQ0VDQTBBZ0FDQUdFQU1oQlNBREtBSXNJQUpCQW5ScUlBVTJBZ0JCQVNFQklBVWdBeWdDREU4TkFpQUNRUUZxSWdJZ0F5Z0NLRWtOQUFzTElBQWdCRUVNYWhBQ0lnRU5BRUVCSVFFZ0JDZ0NEQ0lDUVI5TERRQWdBeUFDUVFGcU5nSXdJQUFnQkVFTWFoQUNJZ0VOQUVFQklRRWdCQ2dDREVFZlN3MEFJQUJCQVJBREJFQU1BUXNnQUVFQ0VBTkJBa3NFUUF3QkN5QUFJQVJCQ0dvUUJTSUJEUUFnQkNnQ0NFRWFhaUlCUVROTEJFQkJBU0VCREFFTElBTWdBVFlDTkNBQUlBUkJDR29RQlNJQkRRQWdCQ2dDQ0VFYWFrRXpTd1JBUVFFaEFRd0JDeUFBSUFSQkNHb1FCU0lCRFFCQkFTRUJJQVFvQWdnaUFrRU1ha0VZU3cwQUlBTWdBallDT0NBQVFRRVFBeUlDUVg5R0RRQWdBeUFDUVFGR05nSThJQUJCQVJBRElnSkJmMFlOQUNBRElBSkJBVVkyQWtBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNSQ0FBRUI5QkFDRUJDeUFFUVJCcUpBQWdBUXZxQlFFSmZ3SkFJQUlvQXB3Q1JRUkFEQUVMUVFFaEJnTkFBa0FDUUNBQ0lBVkJGR3hxS0FLZ0FpSUVRUVZMRFFBZ0JFRUJhdzRGQUFBQUFBTUJDeUFGUVFGcUlRVU1BUXNMSUFRaEJnc0Nmd0pBSUFFb0FoQWlCRUVCVFFSQUlBUkJBV3NFUUNBREtBSUFRUVZHQkVBZ0FFSUFOd0lBSUFJb0FoUWhCVUVBSVFRTUF3c2dBQ2dDQUNJRUlBSW9BaFFpQlUwTkFpQUVJQVZySUFFb0FoUWlCMEVCZGtrTkFpQUFLQUlFSUFkcURBTUxRUUFoQlFKL1FRQWdBeWdDQUVFRlJnMEFHaUFBS0FJTUlnY2dBQ2dDQ0NBQ0tBSU1UUTBBR2lBQktBSU1JQWRxQ3lFSFFRQWhCQUovSUFFb0FpUWlDQVJBSUFJb0Fnd2dCMm9oQlFzZ0JTQURLQUlFSWdwRklBVkJBRWR4YXlJSkN3UkFJQWxCZjJvaUF5QURJQWh1SWdzZ0NHeHJJUU1MSUFnRVFDQUJLQUlvSVF4QkFDRUZBMEFnRENBRlFRSjBhaWdDQUNBRWFpRUVJQVZCQVdvaUJTQUlSdzBBQ3dzQ1FDQUpSUVJBUVFBaEJBd0JDeUFFSUF0c0lRUWdBU2dDS0NFSVFRQWhCUU5BSUFnZ0JVRUNkR29vQWdBZ0JHb2hCQ0FGUVFGcUlnVWdBMDBOQUFzTElBcEZCRUFnQVNnQ0hDQUVhaUVFQ3lBR1JRUkFJQUlvQWlBaEF5QUJLQUlnSVFFZ0FpZ0NIQ0VHSUFBZ0J6WUNEQ0FBSUFJb0FndzJBZ2dnQmlBQklBTnFJZ0JCSDNVZ0FIRWdCR3BxRHdzZ0FFSUFOd0lJUVFBUEMwRUFJUVZCQUNFRUlBTW9BZ0JCQlVjRVFDQUFLQUlNSVFVZ0FDZ0NDQ0FDS0FJTUlnUkxCRUFnQVNnQ0RDQUZhaUVGQ3lBRUlBVnFRUUYwSUFNb0FnUkZheUVFQ3lBR1JRUkFJQUFnQlRZQ0RDQUFJQUlvQWd3MkFnZ2dCQThMSUFCQ0FEY0NDRUVBRHdzQ1FDQUZJQVJORFFBZ0JTQUVheUFCS0FJVUlnRkJBWFpORFFBZ0FDZ0NCQ0FCYXd3QkN5QUFLQUlFQ3lFRUlBTW9BZ1JGQkVBZ0JDQUZhaUFDS0FJWUlnQkJIM1VnQUhGcUR3c2dBQ0FFTmdJRUlBSW9BaGdoQVNBR0JFQWdBRUVBTmdJRUlBQkJBQ0FCYXlBQlFSOTFjVFlDQUVFQUR3c2dBQ0FGTmdJQUlBUWdCV29nQVVFZmRTQUJjV29MdkFFQkNIOGdBZ1JBSUFGQmYyb2hCMEVBSUFGclFkZ0JiQ0VJUVFFZ0FXdEIyQUZzSVFrZ0FVRi9jMEhZQVd3aENnTkFJQUFnQmtIWUFXeHFJZ01nQTBHb2ZtcEJBQ0FFR3pZQ3lBRWdBd0ovSUFWRkJFQWdBMEVBTmdMTUFVRUFEQUVMSUFNZ0F5QUlhallDekFFZ0F5QUpha0VBSUFRZ0Iwa2JDellDMEFFZ0F5QURJQXBxUVFBZ0JCdEJBQ0FGR3pZQzFBRkJBQ0FFUVFGcUlnTWdBU0FEUmlJREd5RUVJQU1nQldvaEJTQUdRUUZxSWdZZ0FrY05BQXNMQzNjQkFuOUJBU0VDQWtBZ0FFRUJFQU5CZjBZTkFDQUJJQUJCQWhBRE5nSUVJQUVnQUVFRkVBTWlBRFlDQUNBQVFYNXFRUU5KRFFBQ1FDQUFRUXhMRFFCQkFTQUFkQ0lEUWNBOGNVVUVRQ0FEUWFBRGNVVU5BU0FBUVFaR0RRSWdBU2dDQkEwQkRBSUxJQUVvQWdRTkFRdEJBQ0VDQ3lBQ0M1SVRBUVovSUFBZ0FTZ0NBQ0lOTmdJQUlBQWdBQ2dDeEFGQkFXbzJBc1FCSUFJZ0JSQWRBa0FDUUFKQUFrQUNRQ0FOUVI5R0JFQWdBRUVBTmdJVUlBQW9Bc1FCUVFGTERRRWdBRUVjYWlFSklBRkJ5QUpxSVFSQkZ5RUJJQWNoQUFOQUlBbEJFRHNCQUNBQUlBUW9BZ0E2QUFBZ0FDQUVLQUlFT2dBQklBQWdCQ2dDQ0RvQUFpQUFJQVFvQWd3NkFBTWdBQ0FFS0FJUU9nQUVJQUFnQkNnQ0ZEb0FCU0FBSUFRb0FoZzZBQVlnQUNBRUtBSWNPZ0FISUFBZ0JDZ0NJRG9BQ0NBQUlBUW9BaVE2QUFrZ0FDQUVLQUlvT2dBS0lBQWdCQ2dDTERvQUN5QUFJQVFvQWpBNkFBd2dBQ0FFS0FJME9nQU5JQUFnQkNnQ09Eb0FEaUFBSUFRb0FqdzZBQThnQVNJRFFYOXFJUUVnQ1VFQ2FpRUpJQUJCRUdvaEFDQUVRVUJySVFRZ0F3MEFDeUFDSUFjUUd3d0VDeUFBUVJ4cUlRa2dEUVJBSUFrZ0FTa0NrQUkzQWdBZ0NTQUJLUUcrQWpjQkxpQUpJQUVwQXJnQ053SW9JQWtnQVNrQ3NBSTNBaUFnQ1NBQktRS29BamNDR0NBSklBRXBBcUFDTndJUUlBa2dBU2tDbUFJM0FnZ2dCQ2dDQUNFS0FrQWdBU2dDQ0NJTFJRMEFJQVFnQ2lBTGFpSUtOZ0lBSUFRZ0NrRi9UQVIvSUFwQk5Hb0ZJQXBCTkVnTkFTQUtRVXhxQ3lJS05nSUFDeUFBSUFvMkFoUWdBVUhJRDJvaERDQUJRY2dDYWlFRUFrQUNRQ0FBS0FJQVFRWk5CRUFnQ1M4QkFFVU5BVUVCSVFnZ0JDQUtRUUFnRENnQ0FCQUdSUTBDREFnTElBQXZBVXdFUUNBQlFjZ09haUFLRURFTFFiQTBJUXBCRHlFSUEwQWdDQ0VMSUFRZ0FTQUtLQUlBUVFKMGFrSElEbW9vQWdBaUNEWUNBQUpBQWtBZ0NFVUVRQ0FKTHdFQVJRMEJDMEVCSVFnZ0JDQUFLQUlVUVFFZ0RDZ0NBQkFHUlEwQkRBb0xJQVJCLy8vL0J6WUNBQXNnQ2tFRWFpRUtJQXRCZjJvaENDQU1RUVJxSVF3Z0NVRUNhaUVKSUFSQlFHc2hCQ0FMRFFBTERBUUxJQVJCLy8vL0J6WUNBQXNnQVVHSUEyb2hCQUpBSUFBdkFSNEVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSE1EMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJ5QU5xSVFRQ1FDQUFMd0VnQkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCMEE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUVlnRWFpRUVBa0FnQUM4QklnUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFkUVBhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVSElCR29oQkFKQUlBQXZBU1FFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUhZRDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCaUFWcUlRUUNRQ0FBTHdFbUJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQjNBOXFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFjZ0ZhaUVFQWtBZ0FDOEJLQVJBUVFFaENDQUVJQUFvQWhSQkFDQUJRZUFQYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJQm1vaEJBSkFJQUF2QVNvRVFFRUJJUWdnQkNBQUtBSVVRUUFnQVVIa0Qyb29BZ0FRQmtVTkFRd0hDeUFFUWYvLy93YzJBZ0FMSUFGQnlBWnFJUVFDUUNBQUx3RXNCRUJCQVNFSUlBUWdBQ2dDRkVFQUlBRkI2QTlxS0FJQUVBWkZEUUVNQndzZ0JFSC8vLzhITmdJQUN5QUJRWWdIYWlFRUFrQWdBQzhCTGdSQVFRRWhDQ0FFSUFBb0FoUkJBQ0FCUWV3UGFpZ0NBQkFHUlEwQkRBY0xJQVJCLy8vL0J6WUNBQXNnQVVISUIyb2hCQUpBSUFBdkFUQUVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSHdEMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJpQWhxSVFRQ1FDQUFMd0V5QkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCOUE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUWNnSWFpRUVBa0FnQUM4Qk5BUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFmZ1BhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVR0lDV29oQkFKQUlBQXZBVFlFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUg4RDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCeUFscUlRUUNRQ0FBTHdFNEJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQmdCQnFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFZZ0thaUVFQWtBZ0FDOEJPZ1JBUVFFaENDQUVJQUFvQWhSQkFDQUJRWVFRYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJRUdvaERDQUJRY2dLYWlFRURBSUxJQWxDQURjQ0FDQUpRZ0EzQVM0Z0NVSUFOd0lvSUFsQ0FEY0NJQ0FKUWdBM0FoZ2dDVUlBTndJUUlBbENBRGNDQ0NBQUlBUW9BZ0EyQWhRTUFnc2dBRUtRZ01DQWdJS0FDRGNCSENBQVFwQ0F3SUNBZ29BSU53RkVJQUJDa0lEQWdJQ0NnQWczQVR3Z0FFS1FnTUNBZ0lLQUNEY0JOQ0FBUXBDQXdJQ0Fnb0FJTndFc0lBQkNrSURBZ0lDQ2dBZzNBU1JCQUE4TElBQW9BaGdnQUNnQ0ZHb2lDMEV6SUF0Qk0wZ2JJZ3RCQUNBTFFRQktHMEVDZEVIZ1BXb29BZ0FoQ1FKQUlBQXZBVTVGQkVBZ0FDOEJVRVVOQVFzZ0FVR0lEMm9nQ1JBd0N5QUVJQUZCaUE5cUtBSUFJZ3MyQWdBQ1FBSkFJQXRGQkVBZ0FDOEJQRVVOQVF0QkFTRUlJQVFnQ1VFQklBd29BZ0FRQmtVTkFRd0VDeUFFUWYvLy93YzJBZ0FMSUFRZ0FTZ0NqQThpQ3pZQ1FDQUVRVUJySVFvQ1FBSkFJQXRGQkVBZ0FDOEJQa1VOQVF0QkFTRUlJQW9nQ1VFQklBd29BZ1FRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NrQThpQ3pZQ2dBRWdCRUdBQVdvaENnSkFBa0FnQzBVRVFDQUFRVUJyTHdFQVJRMEJDMEVCSVFnZ0NpQUpRUUVnRENnQ0NCQUdSUTBCREFRTElBcEIvLy8vQnpZQ0FBc2dCQ0FCS0FLVUR5SUxOZ0xBQVNBRVFjQUJhaUVLQWtBQ1FDQUxSUVJBSUFBdkFVSkZEUUVMUVFFaENDQUtJQWxCQVNBTUtBSU1FQVpGRFFFTUJBc2dDa0gvLy84SE5nSUFDeUFFSUFFb0FwZ1BJZ3MyQW9BQ0lBUkJnQUpxSVFvQ1FBSkFJQXRGQkVBZ0FDOEJSRVVOQVF0QkFTRUlJQW9nQ1VFQklBd29BaEFRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NuQThpQ3pZQ3dBSWdCRUhBQW1vaENnSkFBa0FnQzBVRVFDQUFMd0ZHUlEwQkMwRUJJUWdnQ2lBSlFRRWdEQ2dDRkJBR1JRMEJEQVFMSUFwQi8vLy9CellDQUFzZ0JDQUJLQUtnRHlJTE5nS0FBeUFFUVlBRGFpRUtBa0FDUUNBTFJRUkFJQUF2QVVoRkRRRUxRUUVoQ0NBS0lBbEJBU0FNS0FJWUVBWkZEUUVNQkFzZ0NrSC8vLzhITmdJQUN5QUVJQUVvQXFRUElnczJBc0FESUFSQndBTnFJUVFDUUFKQUlBdEZCRUFnQUM4QlNrVU5BUXRCQVNFSUlBUWdDVUVCSUF3b0Fod1FCa1VOQVF3RUN5QUVRZi8vL3djMkFnQUxJQTFCQmtrTkFDQUFJQUVnQWlBRklBWWdCeEJXSWdoRkRRRU1BZ3NnQUNBQklBTWdCU0FDSUFjUVZ5SUlEUUVMUVFBaENBc2dDQXVXSFFFSGZ5TUFRUkJySWdja0FDQUJRUUJCcUJBUUJ5RUZJQUFnQjBFRWFoQUNJUUVnQnlnQ0JDRUlBa0FDUUFKQUlBTkJmbW9pQTBFRlN3MEFBa0FnQTBFQmF3NEVBUUVCQVFBTFFRRWhBeUFCRFFJZ0NFRUdhaUlHUVI5TkRRRU1BZ3RCQVNFRElBRU5BU0FJUVFGcUlnWkJIMHNOQVFzZ0JTQUdOZ0lBQWtBZ0JrRWZSZ1JBQTBBZ0FDZ0NDQVJBSUFCQkFSQURSUTBCREFRTEN5QUZRY2dDYWlFR0EwQWdCeUFBUVFnUUF5SUJOZ0lFSUFGQmYwWU5BeUFHSUFFMkFnQWdCa0VFYWlFR0lBbEJBV29pQ1VHQUEwY05BQXNNQVF0QkFpQUdRUVpISUFaQkJra2JJUW9DUUFKQUlBWkJCRWtOQUNBR1FRVkxEUUFnQUNBSFFReHFFQUlOQVNBSEtBSU1JZ0ZCQTBzTkFTQUZJQUUyQXJBQklBQWdCMEVNYWhBQ0RRRWdCeWdDRENJQlFRTkxEUUVnQlNBQk5nSzBBU0FBSUFkQkRHb1FBZzBCSUFjb0Fnd2lBVUVEU3cwQklBVWdBVFlDdUFFZ0FDQUhRUXhxRUFJTkFTQUhLQUlNSWdGQkEwc05BU0FGSUFFMkFyd0JBa0FnQkVFQ1NRMEFJQVpCQlVZTkFDQUFJQWRCREdvZ0JFRUNTeUlCRUJjTkFpQUhLQUlNSWdnZ0JFOE5BaUFGSUFnMkFzQUJJQUFnQjBFTWFpQUJFQmNOQWlBSEtBSU1JZ2dnQkU4TkFpQUZJQWcyQXNRQklBQWdCMEVNYWlBQkVCY05BaUFIS0FJTUlnZ2dCRThOQWlBRklBZzJBc2dCSUFBZ0IwRU1haUFCRUJjTkFpQUhLQUlNSWdFZ0JFOE5BaUFGSUFFMkFzd0JDeUFISUFVb0FyQUJJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93SFFBU0FBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dIU0FTQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVlnQVEwQUN5QUhJQVVvQXJRQklnRkJBazBFZnlBQlFRSjBRZkEwYWlnQ0FBVkJBd3MyQWd4QkFDRUdBMEFnQUNBSFFRaHFFQVVpQXcwQ0lBVWdCa0VDZEdvaUFTQUhLQUlJT3dIZ0FTQUFJQWRCQ0dvUUJTSUREUUlnQVNBSEtBSUlPd0hpQVNBSElBY29BZ3dpQVVGL2FqWUNEQ0FHUVFGcUlRWWdBUTBBQ3lBSElBVW9BcmdCSWdGQkFrMEVmeUFCUVFKMFFmQTBhaWdDQUFWQkF3czJBZ3hCQUNFR0EwQWdBQ0FIUVFocUVBVWlBdzBDSUFVZ0JrRUNkR29pQVNBSEtBSUlPd0h3QVNBQUlBZEJDR29RQlNJRERRSWdBU0FIS0FJSU93SHlBU0FISUFjb0Fnd2lBVUYvYWpZQ0RDQUdRUUZxSVFZZ0FRMEFDeUFISUFVb0Fyd0JJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93R0FBaUFBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dHQ0FpQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVpCQUNFRElBRU5BQXNNQVF0QkFDRURJQXBCQWtzTkFBSkFBbjhDUUFKQUFrQWdDa0VCYXc0Q0JBRUFDeUFIUVFBMkFnZ2dCU0FBRUE4aUFVRWZkallDRENBQlFRQk9EUUVnQVVFQmRDRUdRUUFNQWdzZ0JFRUNUd1JBUVFNaEFTQUdRUU5OQkVBZ0JrRUNkRUg4Tkdvb0FnQWhBUXNnQkVFQ1N5RUxRUUVoQXdOQUlBQWdCMEVNYWlBTEVCY05CU0FIS0FJTUlnZ2dCRThOQlNBRklBbEJBblJxSUFnMkFwQUJJQUVpQ0VGL2FpRUJJQWxCQVdvaENTQUlEUUFMQzBFRElRTWdCa0VEVFFSQUlBWkJBblJCL0RScUtBSUFJUU1MUVFBaEJnTkFJQU1oQVNBQUlBZEJDR29RQlNJRERRUWdCU0FHUVFKMGFpSUVJQWNvQWdnN0FhQUJJQUFnQjBFSWFoQUZJZ01OQkNBRUlBY29BZ2c3QWFJQklBRkJmMm9oQXlBR1FRRnFJUVlnQVEwQUMwRUFJUU1NQXdzZ0JTQUJRUngyTmdKTUlBRkJCSFFoQmtFQkN5RURJQVVnQmtFZmRqWUNFQ0FGSUFaQkFFZ0VmeUFHUVFGMEJTQUZJQVpCSEhZMkFsQWdBMEVCYWlFRElBWkJCSFFMSWdGQkgzWTJBaFFnQlNBQlFRQklCSDhnQVVFQmRBVWdCU0FCUVJ4Mk5nSlVJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0lZSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNXQ0FEUVFGcUlRTWdBVUVFZEFzaUFVRWZkallDSENBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBbHdnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWlBZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pnSUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJa0lBVWdBVUVBU0FSL0lBRkJBWFFGSUFVZ0FVRWNkallDWkNBRFFRRnFJUU1nQVVFRWRBc2lBVUVmZGpZQ0tDQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pvSUFOQkFXb2hBeUFCUVFSMEN5RUdBa0FnQUNBRFFRTnNRUWhxRUF0QmYwWU5BQ0FIUVFFMkFnZ2dCU0FBRUE4aUFVRWZkallDTEFKL0lBRkJBRWdFUUNBQlFRRjBJUVpCQUF3QkN5QUZJQUZCSEhZMkFtd2dBVUVFZENFR1FRRUxJUU1nQlNBR1FSOTJOZ0l3SUFVZ0JrRUFTQVIvSUFaQkFYUUZJQVVnQmtFY2RqWUNjQ0FEUVFGcUlRTWdCa0VFZEFzaUFVRWZkallDTkNBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBblFnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWpnZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0o0SUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJOElBVkJRR3NnQVVFQVNBUi9JQUZCQVhRRklBVWdBVUVjZGpZQ2ZDQURRUUZxSVFNZ0FVRUVkQXNpQVVFZmRqWUNBQ0FGSUFGQkFFZ0VmeUFCUVFGMEJTQUZJQUZCSEhZMkFvQUJJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0pFSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNoQUVnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWtnZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNpQUVnQTBFQmFpRURJQUZCQkhRTElRWWdBQ0FEUVFOc1FRaHFFQXRCZjBZTkFDQUhJQVkyQWd3Z0IwRUNOZ0lJREFFTElBY2dCallDREVFQklRTU1BUXRCQVNFRElBQWdCMEVNYWhBQ0RRQWdCeWdDRENJQlFRTkxEUUFnQlNBQk5nS01BVUVBSVFNTElBTU5BUUpBSUFwQkFVY0VRQ0FBSUFkQkJHb2dDa1VRTFNJRERRTWdCU0FIS0FJRUlnRTJBZ1FnQVVVTkFnd0JDeUFGSUFVb0FnQWlBVUY1YWlJRFFRSjBRWEJ4SWdSQlVHb2dCQ0FEUVF0TEcwRVBRUUFnQVVFU1N4dHlOZ0lFQzBFQklRTWdBQ0FIUVF4cUVBVU5BU0FIS0FJTUlnRkJHbXBCTTBzTkFTQUZJQUUyQWdnZ0JVR1FBbW9oQ0NBRktBSUVJUVFDUUFKQUlBVW9BZ0JCQjBrRVFFRUFJUWxCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FJSUFsQkFuUnFRYmdOYWlBQUlBZ2dDVUVHZEdwQk9Hb2dBaUFKSUFnUURVRVFFQWtpQTBFUWRqWUNBQ0FEUVE5eERRUWdDQ0FKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FJSUFsQkFYSWlCa0VDZEdwQnVBMXFJQUFnQ0NBR1FRWjBha0U0YWlBQ0lBWWdDQkFOUVJBUUNTSURRUkIyTmdJQUlBTkJEM0VOQkNBSUlBWkJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBZ2dDVUVDY2lJR1FRSjBha0c0RFdvZ0FDQUlJQVpCQm5ScVFUaHFJQUlnQmlBSUVBMUJFQkFKSWdOQkVIWTJBZ0FnQTBFUGNRMEVJQWdnQmtFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQ0NBSlFRTnlJZ1pCQW5ScVFiZ05haUFBSUFnZ0JrRUdkR3BCT0dvZ0FpQUdJQWdRRFVFUUVBa2lBMEVRZGpZQ0FDQURRUTl4RFFRZ0JTQUdRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc01BUXRCQUNFSklBQWdCVUhJRG1vZ0FrRUFJQWdRRFVFUUVBa2lBMEVQY1EwQklBVWdBMEVFZGtIL0FYRTdBY0FDSUFWQmtBSnFJUVpCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FHSUFsQkFuUnFRYmdOYWlBQUlBWWdDVUVHZEdwQlBHb2dBaUFKSUFnUURVRVBFQWtpQTBFUGRqWUNBQ0FEUVE5eERRTWdCaUFKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FHSUFsQkFYSWlDa0VDZEdwQnVBMXFJQUFnQmlBS1FRWjBha0U4YWlBQ0lBb2dDQkFOUVE4UUNTSURRUTkyTmdJQUlBTkJEM0VOQXlBR0lBcEJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBWWdDVUVDY2lJS1FRSjBha0c0RFdvZ0FDQUdJQXBCQm5ScVFUeHFJQUlnQ2lBSUVBMUJEeEFKSWdOQkQzWTJBZ0FnQTBFUGNRMERJQVlnQ2tFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQmlBSlFRTnlJZ3BCQW5ScVFiZ05haUFBSUFZZ0NrRUdkR3BCUEdvZ0FpQUtJQWdRRFVFUEVBa2lBMEVQZGpZQ0FDQURRUTl4RFFNZ0JTQUtRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc0xJQVJCQTNFRVFDQUFJQVZCaUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIQ0FpQUFJQVZCbUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIRUFndEJBQ0VESUFSQkFuRkZEUUFnQUNBRlFjd0thaUFDUVJBZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCaUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzQUlnQUNBRlFZd0xhaUFDUVJFZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCakJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzZ0lnQUNBRlFjd0xhaUFDUVJJZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCa0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0QUlnQUNBRlFZd01haUFDUVJNZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0Z0lnQUNBRlFjd01haUFDUVJRZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1QUlnQUNBRlFZd05haUFDUVJVZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbkJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1Z0lnQUNBRlFjd05haUFDUVJZZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCb0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2QUlnQUNBRlFZd09haUFDUVJjZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCcEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2Z0lMSUFBZ0FDZ0NDQ0FBS0FJRUlBQW9BZ0JyUVFOMGFqWUNFQ0FERFFFTFFRQWhBd3NnQjBFUWFpUUFJQU1McFJRQkRIOENmeUFBS0FMSUFTSUhCRUFnQUNnQ0JDQUhLQUlFUmd3QkMwRUFDeUVLQWtBZ0JrVU5BQ0FLUlEwQVFRQWdDa0VDSUFBb0FzZ0JLQUlBSWdkQkJrY2dCMEVHU1J0QkFrWWJJUW9MQW44Z0FDZ0N6QUVpQndSQUlBQW9BZ1FnQnlnQ0JFWU1BUXRCQUFzaEJ3SkFJQVpGRFFBZ0IwVU5BRUVBSUFkQkFpQUFLQUxNQVNnQ0FDSUhRUVpISUFkQkJra2JRUUpHR3lFSEN3Si9JQUFvQXRRQklna0VRQ0FBS0FJRUlBa29BZ1JHREFFTFFRQUxJUWtDUUNBR1JRMEFJQWxGRFFCQkFpQUFLQUxVQVNnQ0FDSUFRUVpISUFCQkJra2JRUUpISVFrTElBcEJBRWNnQjBFQVIzRWlEU0FKUVFCSGNTRU9JQVZCQWtzaEQwRVFJUXNEUUFKQUlBOUZCRUFDUUFKQUFrQWdCVUVCYXc0Q0FRSUFDeUFCQW44Z0RRUkFJQVF0QUFNZ0JDMEFBaUFFTFFBQklBUXRBQUFnQXkwQUJDQURMUUFESUFNdEFBRWdBeTBBQW1wcWFtcHFhbXBCQkdwQkEzWWhCaUFETFFBSUlBTXRBQWNnQXkwQUJTQURMUUFHYW1wcVFRSnFRUUoyREFFTElBY0VRQ0FETFFBRUlBTXRBQU1nQXkwQUFTQURMUUFDYW1wcVFRSnFRUUoySVFZZ0F5MEFDQ0FETFFBSElBTXRBQVVnQXkwQUJtcHFha0VDYWtFQ2Rnd0JDeUFLUlFSQVFZQUJJUVpCZ0FFTUFRc2dCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYWtFQ2FrRUNkaUlHQzBIL0FYRkJnWUtFQ0d3aUFEWUFIQ0FCSUFaQi93RnhRWUdDaEFoc0lnWTJBQmdnQVNBQU5nQVVJQUVnQmpZQUVDQUJJQUEyQUF3Z0FTQUdOZ0FJSUFFZ0FEWUFCQ0FCSUFZMkFBQUNmeUFLQkVBZ0JDMEFCeUFFTFFBR0lBUXRBQVVnQkMwQUJHcHFhaUlHUVFKcVFRSjJJZ0FnQjBVTkFSb2dBeTBBQ0NBRExRQUhJQU10QUFZZ0JpQURMUUFGYW1wcWFrRUVha0VEZGd3QkN5QUhSUVJBUVlBQklRQkJnQUVNQVFzZ0F5MEFCQ0FETFFBRElBTXRBQUVnQXkwQUFtcHFha0VDYWtFQ2RpRUFJQU10QUFnZ0F5MEFCeUFETFFBRklBTXRBQVpxYW1wQkFtcEJBbllMSVFZZ0FTQUFRZjhCY1VHQmdvUUliQ0lBTmdBZ0lBRWdCa0gvQVhGQmdZS0VDR3dpQmpZQVBDQUJJQUEyQURnZ0FTQUdOZ0EwSUFFZ0FEWUFNQ0FCSUFZMkFDd2dBU0FBTmdBb0lBRWdCallBSkF3REN5QUtSUVJBUVFFUEN5QUJJQVF0QUFBNkFBQWdBU0FFTFFBQU9nQUJJQUVnQkMwQUFEb0FBaUFCSUFRdEFBQTZBQU1nQVNBRUxRQUFPZ0FFSUFFZ0JDMEFBRG9BQlNBQklBUXRBQUE2QUFZZ0FTQUVMUUFBT2dBSElBRWdCQzBBQVRvQUNDQUJJQVF0QUFFNkFBa2dBU0FFTFFBQk9nQUtJQUVnQkMwQUFUb0FDeUFCSUFRdEFBRTZBQXdnQVNBRUxRQUJPZ0FOSUFFZ0JDMEFBVG9BRGlBQklBUXRBQUU2QUE4Z0FTQUVMUUFDT2dBUUlBRWdCQzBBQWpvQUVTQUJJQVF0QUFJNkFCSWdBU0FFTFFBQ09nQVRJQUVnQkMwQUFqb0FGQ0FCSUFRdEFBSTZBQlVnQVNBRUxRQUNPZ0FXSUFFZ0JDMEFBam9BRnlBQklBUXRBQU02QUJnZ0FTQUVMUUFET2dBWklBRWdCQzBBQXpvQUdpQUJJQVF0QUFNNkFCc2dBU0FFTFFBRE9nQWNJQUVnQkMwQUF6b0FIU0FCSUFRdEFBTTZBQjRnQVNBRUxRQURPZ0FmSUFFZ0JDMEFCRG9BSUNBQklBUXRBQVE2QUNFZ0FTQUVMUUFFT2dBaUlBRWdCQzBBQkRvQUl5QUJJQVF0QUFRNkFDUWdBU0FFTFFBRU9nQWxJQUVnQkMwQUJEb0FKaUFCSUFRdEFBUTZBQ2NnQVNBRUxRQUZPZ0FvSUFFZ0JDMEFCVG9BS1NBQklBUXRBQVU2QUNvZ0FTQUVMUUFGT2dBcklBRWdCQzBBQlRvQUxDQUJJQVF0QUFVNkFDMGdBU0FFTFFBRk9nQXVJQUVnQkMwQUJUb0FMeUFCSUFRdEFBWTZBREFnQVNBRUxRQUdPZ0F4SUFFZ0JDMEFCam9BTWlBQklBUXRBQVk2QURNZ0FTQUVMUUFHT2dBMElBRWdCQzBBQmpvQU5TQUJJQVF0QUFZNkFEWWdBU0FFTFFBR09nQTNJQUVnQkMwQUJ6b0FPQ0FCSUFRdEFBYzZBRGtnQVNBRUxRQUhPZ0E2SUFFZ0JDMEFCem9BT3lBQklBUXRBQWM2QUR3Z0FTQUVMUUFIT2dBOUlBRWdCQzBBQnpvQVBpQUJJQVF0QUFjNkFEOE1BZ3NnQjBVRVFFRUJEd3NnQVNBRExRQUJPZ0FBSUFFZ0F5MEFBVG9BQ0NBQklBTXRBQUU2QUJBZ0FTQURMUUFCT2dBWUlBRWdBeTBBQVRvQUlDQUJJQU10QUFFNkFDZ2dBU0FETFFBQk9nQXdJQUVnQXkwQUFUb0FPQ0FCSUFNdEFBSTZBQUVnQVNBRExRQUNPZ0FKSUFFZ0F5MEFBam9BRVNBQklBTXRBQUk2QUJrZ0FTQURMUUFDT2dBaElBRWdBeTBBQWpvQUtTQUJJQU10QUFJNkFERWdBU0FETFFBQ09nQTVJQUVnQXkwQUF6b0FBaUFCSUFNdEFBTTZBQW9nQVNBRExRQURPZ0FTSUFFZ0F5MEFBem9BR2lBQklBTXRBQU02QUNJZ0FTQURMUUFET2dBcUlBRWdBeTBBQXpvQU1pQUJJQU10QUFNNkFEb2dBU0FETFFBRU9nQURJQUVnQXkwQUJEb0FDeUFCSUFNdEFBUTZBQk1nQVNBRExRQUVPZ0FiSUFFZ0F5MEFCRG9BSXlBQklBTXRBQVE2QUNzZ0FTQURMUUFFT2dBeklBRWdBeTBBQkRvQU95QUJJQU10QUFVNkFBUWdBU0FETFFBRk9nQU1JQUVnQXkwQUJUb0FGQ0FCSUFNdEFBVTZBQndnQVNBRExRQUZPZ0FrSUFFZ0F5MEFCVG9BTENBQklBTXRBQVU2QURRZ0FTQURMUUFGT2dBOElBRWdBeTBBQmpvQUJTQUJJQU10QUFZNkFBMGdBU0FETFFBR09nQVZJQUVnQXkwQUJqb0FIU0FCSUFNdEFBWTZBQ1VnQVNBRExRQUdPZ0F0SUFFZ0F5MEFCam9BTlNBQklBTXRBQVk2QUQwZ0FTQURMUUFIT2dBR0lBRWdBeTBBQnpvQURpQUJJQU10QUFjNkFCWWdBU0FETFFBSE9nQWVJQUVnQXkwQUJ6b0FKaUFCSUFNdEFBYzZBQzRnQVNBRExRQUhPZ0EySUFFZ0F5MEFCem9BUGlBQklBTXRBQWc2QUFjZ0FTQURMUUFJT2dBUElBRWdBeTBBQ0RvQUZ5QUJJQU10QUFnNkFCOGdBU0FETFFBSU9nQW5JQUVnQXkwQUNEb0FMeUFCSUFNdEFBZzZBRGNnQVNBRExRQUlPZ0EvREFFTElBNUZCRUJCQVE4TElBTXRBQVVnQXkwQUEyc2dBeTBBQmlBRExRQUNhMEVCZEdvZ0F5MEFCeUFETFFBQmEwRURiR29nQXkwQUNDSUFJQU10QUFBaUNXdEJBblJxUVJGc1FSQnFRUVYxSWdaQmZXd2hFQ0FBSUFRdEFBY2lER3BCQkhRZ0JDMEFCQ0FFTFFBQ2F5QU1JQWxyUVFKMGFpQUVMUUFGSUFRdEFBRnJRUUYwYWlBRUxRQUdJQVF0QUFCclFRTnNha0VSYkVFUWFrRUZkU0lSUVgxc2FrRVFhaUVKUVFnaERDQUJJUUFEUUNBQUlBa2dFR29pQ0VFRmRVR3dMbW90QUFBNkFBQWdBQ0FHSUFocUlnaEJCWFZCc0M1cUxRQUFPZ0FCSUFBZ0JpQUlhaUlJUVFWMVFiQXVhaTBBQURvQUFpQUFJQVlnQ0dvaUNFRUZkVUd3TG1vdEFBQTZBQU1nQUNBR0lBaHFJZ2hCQlhWQnNDNXFMUUFBT2dBRUlBQWdCaUFJYWlJSVFRVjFRYkF1YWkwQUFEb0FCU0FBSUFZZ0NHb2lDRUVGZFVHd0xtb3RBQUE2QUFZZ0FDQUdJQWhxUVFWMVFiQXVhaTBBQURvQUJ5QUpJQkZxSVFrZ0FFRUlhaUVBSUF4QmYyb2lEQTBBQ3dzZ0FTQUNJQXNRQ0NBQklBSkJRR3NnQzBFQmNoQUlJQUVnQWtHQUFXb2dDMEVDY2hBSUlBRWdBa0hBQVdvZ0MwRURjaEFJSUFKQmdBSnFJUUlnQkVFSWFpRUVJQU5CQ1dvaEF5QUJRVUJySVFFZ0MwRUVhaUVMSUJKQkFXb2lFa0VDUncwQUMwRUFDNkVWQWhoL0FuNENmd05BQW44Z0FDSUlJQlpCQTNSQnNEVnFLUUlBSWg2bkVCRWlDU0lHQkVBZ0NDZ0NCQ0FHS0FJRVJnd0JDMEVBQ3lFTkFrQWdCVVVOQUNBTlJRMEFRUUFnRFVFQ0lBa29BZ0FpQmtFR1J5QUdRUVpKRzBFQ1Joc2hEUXNDZnlBSUlCWkJBM1JCOERacUtRSUFJaCtuRUJFaUJ5SUdCRUFnQ0NnQ0JDQUdLQUlFUmd3QkMwRUFDeUVQQWtBZ0JVVU5BQ0FQUlEwQVFRQWdEMEVDSUFjb0FnQWlCa0VHUnlBR1FRWkpHMEVDUmhzaER3dEJBaUVNSUExQkFFY2dEMEVBUjNFaUVrRUJSZ1JBUVFJaEJnSi9RUUlnQ1NnQ0FDSUxRUVpISUF0QkJra2JSUVJBSUFrZ0hrSWdpS2RCL3dGeGFpMEFVaUVHQ3lBR0N3Si9RUUlnQnlnQ0FDSUpRUVpISUFsQkJra2JSUVJBSUFjZ0gwSWdpS2RCL3dGeGFpMEFVaUVNQ3lBTUN5QUdJQXhKR3lFTUN5QUNJQlpCQW5RaUNXb2lCaWdDREVVRVFDQUdLQUpNSWdZZ0JpQU1UMm9oREFzZ0NDQVdhaUFNT2dCU0FuOGdDQ0FXUVFOMFFiQTRhaWdDQUJBUklnWWlCd1JBSUFnb0FnUWdCeWdDQkVZTUFRdEJBQXNoRGdKQUlBVkZEUUFnRGtVTkFFRUFJQTVCQWlBR0tBSUFJZ1pCQmtjZ0JrRUdTUnRCQWtZYklRNExBbjhnQUNBV1FRTjBRZkE1YWlnQ0FCQVJJZ2dpQmdSQUlBQW9BZ1FnQmlnQ0JFWU1BUXRCQUFzaEVRSkFJQVZGRFFBZ0VVVU5BRUVBSUJGQkFpQUlLQUlBSWdoQkJrY2dDRUVHU1J0QkFrWWJJUkVMSUFsQjhDbHFLQUlBSVJjZ0NVR3dLV29vQWdBaEdBSi9RWVVLSUJaMlFRRnhJaHdFUUNBWFFRTnFJUWNnQkNBWGFpSUlRUUpxSVFZZ0NFRUJhaUVMSUFRTUFRc2dGMEVFZENBWWFpSUlRUzlxSVFjZ0FTQUlhaUlJUVI5cUlRWWdDRUVQYWlFTElBaEJmMm9oQ0NBQkN5RUpJQWNnQ1dvdEFBQWhDaUFHTFFBQUlSQWdDeTBBQUNFVElBZ3RBQUFoRkFKQVFUTWdGblpCQVhFRVFDQURJQmhxSWdjdEFBZ2hHeUFITFFBSElSa2dCeTBBQmlFVklBY3RBQVVoR2lBSExRQUVJUVlnQnkwQUF5RUxJQWN0QUFJaENTQUhMUUFCSVFnTUFRc2dBU0FYUVg5cUloMUJCSFFnR0dwcUlnY3RBQUFoQ0NBSExRQUhJUnNnQnkwQUJpRVpJQWN0QUFVaEZTQUhMUUFFSVJvZ0J5MEFBeUVHSUFjdEFBSWhDeUFITFFBQklRa2dIQVJBSUFRZ0hXb2hCd3dCQ3lBSFFYOXFJUWNMQWtBZ0RFRUhUUVJBSUFjdEFBQWhCd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQWdERUVCYXc0SEFRSURCQVVHQndBTElBOUZCRUJCQVE4TElBaEIvd0Z4SUF0Qi93RnhRUkIwSUFaQkdIUnljaUFKUWY4QmNVRUlkSEloRlNBSUlnd2hEU0FKSWc0aEVpQUxJZzhoQ2lBR0loRWhCd3dJQ3lBTlJRUkFRUUVQQ3lBS1FZR0NoQWhzSVJVZ0VFR0Jnb1FJYkNJTlFSaDJJUWNnRFVFUWRpRUtJQTFCQ0hZaEVpQVRRWUdDaEFoc0lneEJHSFloRVNBTVFSQjJJUThnREVFSWRpRU9JQlJCZ1lLRUNHd2lDRUVZZGlFR0lBaEJFSFloQ3lBSVFRaDJJUWtNQndzQ2Z5QVRJQlJxSUFwcUlCQnFJQVpCL3dGeGFpQUxRZjhCY1dvZ0NVSC9BWEZxSUFoQi93Rnhha0VFYWtFRGRpQVNEUUFhSUJNZ0ZHb2dDbW9nRUdwQkFtcEJBbllnRFEwQUdrR0FBU0FQUlEwQUdpQUdRZjhCY1NBTFFmOEJjV29nQ1VIL0FYRnFJQWhCL3dGeGFrRUNha0VDZGdzaUNFR0Jnb1FJYkNFVklBZ2lDU0lMSWdZaURDSU9JZzhpRVNJTkloSWlDaUVIREFZTElBOUZCRUJCQVE4TElBWkIvd0Z4SWcxQkFtb2lFU0FWSUFZZ0RodEIvd0Z4SWdkcUlCb2dCaUFPRzBIL0FYRWlDa0VCZEdwQkFuWWlEeUFaSUFZZ0RodEIvd0Z4SWd3Z0d5QUdJQTRiUWY4QmNTSUdRUU5zYWtFV2RFR0FnSUFFYWtHQWdJQjRjWElnQ2lBTWFpQUhRUUYwYWtFQ2FpSVFRUVowUVlEK0EzRnlJQVlnQjJvZ0RFRUJkR3BCQW1vaUJrRU9kRUdBZ1B3SGNYSWhGU0FHUVFKMklRY2dDMEgvQVhFaUJrRUNhaUlMSUFoQi93RnhhaUFKUWY4QmNTSUpRUUYwYWtFQ2RpRUlJQWtnRVdvZ0JrRUJkR3BCQW5ZaUNTRU1JQW9nQzJvZ0RVRUJkR3BCQW5ZaUN5RU9JQXNoRFNBUElnWWhFaUFRUVFKMkloRWhDZ3dGQzBFQklCRkZJQkpCQVhOeURRWWFJQlFnRTBFQmRHb2dFR3BCQW1vaURrRUdkRUdBL2dOeElBb2dFMEVDYWlJUGFpQVFRUUYwYWtFQ2RuSWdDRUgvQVhFaUNrRUNhaUlNSUJScUlBZEJBWFJxUVFKMklnaEJHSFJ5SUE4Z0ZFRUJkR29nQjJvaUVFRU9kRUdBZ1B3SGNYSWhGU0FKUWY4QmNTSVJRUUpxSWdrZ0JrSC9BWEZxSUF0Qi93RnhJZ3RCQVhScVFRSjJJUVlnRGtFQ2RpRU5JQWtnQ2tFQmRHb2dCMnBCQW5ZaUNTRVBJQkZCQVhRZ0Myb2dER3BCQW5ZaUN5RVJJQkJCQW5ZaURDRVNJQWdpRGlFS0lBa2hCd3dFQzBFQklCRkZJQkpCQVhOeURRVWFJQWhCL3dGeElncEJBbW9pRGlBTFFmOEJjU0lJSUFsQi93RnhJZ3RCQVhScWFrRUNkaUlQUVJoMElCUWdFMEVCZEdvZ0VHcEJBbXBCQW5aeUlBNGdGR29nQjBFQmRHb2lDVUVHZEVHQS9nTnhjaUFMUVFKcUlnNGdDa0VCZEdvZ0Iyb2lEVUVPZEVHQWdQd0hjWEloRlNBSVFRRnFJaEFnQmtIL0FYRWlER3BCQVhZaEJpQU1JQTVxSUFoQkFYUnFRUUoySVJFZ0NVRUNkaUVNSUExQkFuWWhEaUFUSUJSQkFYUnFJQWRxUVFKcVFRSjJJUTBnQnlBS2FrRUJha0VCZGlJSUlSSWdDaUFMYWtFQmFrRUJkaUlKSVFvZ0N5QVFha0VCZGlJTElRY01Bd3RCQVNBUlJTQVNRUUZ6Y2cwRUdpQVRRUUpxSWc0Z0Ntb2dFRUVCZEdwQkJuUkJnUDREY1NBUUlCTnFRUUZxSWc5QkQzUkJnSUQ4QjNFZ0ZFRUNhaUlNSUJOQkFYUnFJQkJxUVFKMkloSkJHSFJ5SUFvZ0VHcEJBV3BCQVhaeWNpRVZJQWhCL3dGeElnZ2dDMEgvQVhGcUlBbEIvd0Z4SWdsQkFYUnFRUUpxUVFKMklRWWdDU0FJUVFGMGFpQUhha0VDYWtFQ2RpRUxJQTlCQVhZaERTQUlJQXhxSUFkQkFYUnFRUUoySWhFaENTQVVRUUZxSWdvZ0IycEJBWFlpQ0NFUElBb2dFMnBCQVhZaURDRUtJQTRnRkVFQmRHb2dCMnBCQW5ZaURpRUhEQUlMSUE5RkJFQkJBUThMSUJvZ0JpQU9HMEgvQVhFaUNpQVpJQVlnRGh0Qi93RnhhaUFWSUFZZ0RodEIvd0Z4SWdkQkFYUnFRUlowSUF0Qi93RnhJZ3RCQW1vaURDQUthaUFHUWY4QmNTSUdRUUYwYWlJUFFRWjBja0dBZ0lBRWFrR0Evb040Y1NBR1FRSnFJZzBnQ1VIL0FYRWlDV29nQzBFQmRHcEJBbllpRG5JZ0J5QU5haUFLUVFGMGFpSU5RUTUwUVlDQS9BZHhjaUVWSUFjZ0NtcEJBV3BCQVhZaEJ5QU5RUUoySVJFZ0NTQUlRZjhCY1NJTmFrRUJha0VCZGlFSUlBOUJBblloRHlBTUlBMXFJQWxCQVhScVFRSjJJUXdnQ1NBTGFrRUJha0VCZGlJSklRMGdCa0VCYWlJR0lBdHFRUUYySWdzaEVpQUdJQXBxUVFGMklnWWhDZ3dCQ3lBTlJRUkFRUUVQQ3lBS1FRaDBJQXB5SUFwQkVIUnlJQXBCR0hSeUlSVWdFRUVDYWlJSElCUnFJQk5CQVhScVFRSjJJUWtnRTBFQmFpSUdJQlJxUVFGMklRZ2dCaUFRYWtFQmRpSUxJUXdnQ2lBVGFpQVFRUUYwYWtFQ2FrRUNkaUlHSVE0Z0NpQVFha0VCYWtFQmRpSVBJUTBnQnlBS1FRTnNha0VDZGlJUklSSWdDaUVIQ3lBQklCZEJCSFFnR0dwcUloQWdGVFlDTUNBUUlBMUIvd0Z4SUJKQi93RnhRUWgwY2lBS1FmOEJjVUVRZEhJZ0IwRVlkSEkyQWlBZ0VDQU1RZjhCY1NBT1FmOEJjVUVJZEhJZ0QwSC9BWEZCRUhSeUlCRkJHSFJ5TmdJUUlCQWdDRUgvQVhFZ0NVSC9BWEZCQ0hSeUlBdEIvd0Z4UVJCMGNpQUdRUmgwY2pZQ0FDQUJJQUlnRmtFR2RHcEJ5QUpxSUJZUUNDQVdRUUZxSWhaQkVFY05BQXRCQUFzTHhSSUJFSDhDZnlBQUtBTElBU0lIQkVBZ0FDZ0NCQ0FIS0FJRVJnd0JDMEVBQ3lFSEFrQWdCVVVOQUNBSFJRMEFRUUFnQjBFQ0lBQW9Bc2dCS0FJQUlnZEJCa2NnQjBFR1NSdEJBa1liSVFjTEFuOGdBQ2dDekFFaUNBUkFJQUFvQWdRZ0NDZ0NCRVlNQVF0QkFBc2hDQUpBSUFWRkRRQWdDRVVOQUVFQUlBaEJBaUFBS0FMTUFTZ0NBQ0lJUVFaSElBaEJCa2tiUVFKR0d5RUlDd0ovSUFBb0F0UUJJZ2tFUUNBQUtBSUVJQWtvQWdSR0RBRUxRUUFMSVFrQ1FDQUZSUTBBSUFsRkRRQkJBaUFBS0FMVUFTZ0NBQ0lGUVFaSElBVkJCa2tiUVFKSElRa0xBa0FDUUNBQUtBSUFRUUZxUVFOeElnQkJBazBFUUFKQUFrQUNRQ0FBUVFGckRnSUJBZ0FMSUFoRkJFQkJBUThMUVFBaEJTQUJJUUFEUUNBQUlBTXRBQUU2QUFBZ0FDQURMUUFDT2dBQklBQWdBeTBBQXpvQUFpQUFJQU10QUFRNkFBTWdBQ0FETFFBRk9nQUVJQUFnQXkwQUJqb0FCU0FBSUFNdEFBYzZBQVlnQUNBRExRQUlPZ0FISUFBZ0F5MEFDVG9BQ0NBQUlBTXRBQW82QUFrZ0FDQURMUUFMT2dBS0lBQWdBeTBBRERvQUN5QUFJQU10QUEwNkFBd2dBQ0FETFFBT09nQU5JQUFnQXkwQUR6b0FEaUFBSUFNdEFCQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3REN5QUhSUVJBUVFFUEMwRUFJUVVnQVNFQUEwQWdBQ0FFSUFWcUlnTXRBQUE2QUFBZ0FDQURMUUFBT2dBQklBQWdBeTBBQURvQUFpQUFJQU10QUFBNkFBTWdBQ0FETFFBQU9nQUVJQUFnQXkwQUFEb0FCU0FBSUFNdEFBQTZBQVlnQUNBRExRQUFPZ0FISUFBZ0F5MEFBRG9BQ0NBQUlBTXRBQUE2QUFrZ0FDQURMUUFBT2dBS0lBQWdBeTBBQURvQUN5QUFJQU10QUFBNkFBd2dBQ0FETFFBQU9nQU5JQUFnQXkwQUFEb0FEaUFBSUFNdEFBQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3Q0N5QUJBbjhDUUNBSFJRMEFJQWhGRFFBZ0JDMEFEeUFETFFBUUlBUXRBQTRnQXkwQUR5QUVMUUFOSUFNdEFBNGdCQzBBRENBRExRQU5JQVF0QUFzZ0F5MEFEQ0FFTFFBS0lBTXRBQXNnQkMwQUNTQURMUUFLSUFRdEFBZ2dBeTBBQ1NBRUxRQUhJQU10QUFnZ0JDMEFCaUFETFFBSElBUXRBQVVnQXkwQUJpQUVMUUFFSUFNdEFBVWdCQzBBQXlBRExRQUVJQVF0QUFJZ0F5MEFBeUFFTFFBQklBTXRBQUlnQXkwQUFTQUVMUUFBYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFrRVFha0VGZGd3QkN5QUhCRUFnQkMwQUR5QUVMUUFPSUFRdEFBMGdCQzBBRENBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSUlBUXRBQWNnQkMwQUJpQUVMUUFGSUFRdEFBUWdCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYW1wcWFtcHFhbXBxYW1wcWFrRUlha0VFZGd3QkMwR0FBU0FJUlEwQUdpQURMUUFRSUFNdEFBOGdBeTBBRGlBRExRQU5JQU10QUF3Z0F5MEFDeUFETFFBS0lBTXRBQWtnQXkwQUNDQURMUUFISUFNdEFBWWdBeTBBQlNBRExRQUVJQU10QUFNZ0F5MEFBU0FETFFBQ2FtcHFhbXBxYW1wcWFtcHFhbXBxUVFocVFRUjJDMEdBQWhBSEdnd0JDMEVCSVFBZ0IwVU5BU0FJUlEwQklBbEZEUUVnQkMwQUNDQUVMUUFHYXlBRUxRQVBJZ0FnQXkwQUFDSUZhMEVEZEdvZ0JDMEFDU0FFTFFBRmEwRUJkR29nQkMwQUNpQUVMUUFFYTBFRGJHb2dCQzBBQ3lBRUxRQURhMEVDZEdvZ0JDMEFEQ0FFTFFBQ2EwRUZiR29nQkMwQURTQUVMUUFCYTBFR2JHb2dCQzBBRGlBRUxRQUFhMEVIYkdwQkJXeEJJR3BCQm5VaEJ5QURMUUFKSUFNdEFBZHJJQU10QUFvZ0F5MEFCbXRCQVhScUlBTXRBQXNnQXkwQUJXdEJBMnhxSUFNdEFBd2dBeTBBQkd0QkFuUnFJQU10QUEwZ0F5MEFBMnRCQld4cUlBTXRBQTRnQXkwQUFtdEJCbXhxSUFNdEFBOGdBeTBBQVd0QkIyeHFJQU10QUJBaUF5QUZhMEVEZEdwQkJXeEJJR3BCQm5VaUJFRURkQ0VJSUFSQkIyd2hDU0FFUVFac0lRb2dCRUVGYkNFTElBUkJBMndoRENBRVFYMXNJUTBnQkVGN2JDRU9JQVJCZW13aER5QUVRWGxzSVJCQkFDQUVRUUYwSWhGcklSSkJBQ0FFUVFKMEloTnJJUlFnQUNBRGFrRUVkRUVRYWlFVlFRQWhCUU5BSUFFZ0JVRUVkQ0lBYWlBVklBVkJlV29nQjJ4cUlnTWdFR3BCQlhVaUJrSC9BU0FHUWY4QlNCc2lCa0VBSUFaQkFFb2JPZ0FBSUFFZ0FFRUJjbW9nQXlBUGFrRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFKeWFpQURJQTVxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJBM0pxSUFNZ0ZHcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFRWNtb2dBeUFOYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUVZ5YWlBRElCSnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkJuSnFJQU1nQkd0QkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVIY21vZ0EwRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFoeWFpQURJQVJxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJDWEpxSUFNZ0VXcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFS2Ntb2dBeUFNYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUXR5YWlBRElCTnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkRISnFJQU1nQzJwQkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVOY21vZ0F5QUtha0VGZFNJR1FmOEJJQVpCL3dGSUd5SUdRUUFnQmtFQVNoczZBQUFnQVNBQVFRNXlhaUFESUFscVFRVjFJZ1pCL3dFZ0JrSC9BVWdiSWdaQkFDQUdRUUJLR3pvQUFDQUJJQUJCRDNKcUlBTWdDR3BCQlhVaUFFSC9BU0FBUWY4QlNCc2lBRUVBSUFCQkFFb2JPZ0FBSUFWQkFXb2lCVUVRUncwQUN3dEJBQ0VBSUFFZ0FrRUFFQWdnQVNBQ1FVQnJRUUVRQ0NBQklBSkJnQUZxUVFJUUNDQUJJQUpCd0FGcVFRTVFDQ0FCSUFKQmdBSnFRUVFRQ0NBQklBSkJ3QUpxUVFVUUNDQUJJQUpCZ0FOcVFRWVFDQ0FCSUFKQndBTnFRUWNRQ0NBQklBSkJnQVJxUVFnUUNDQUJJQUpCd0FScVFRa1FDQ0FCSUFKQmdBVnFRUW9RQ0NBQklBSkJ3QVZxUVFzUUNDQUJJQUpCZ0FacVFRd1FDQ0FCSUFKQndBWnFRUTBRQ0NBQklBSkJnQWRxUVE0UUNDQUJJQUpCd0FkcVFROFFDQXNnQUF1N0NBRUhmd0pBSUFORkRRQWdBQ2dDQUNBRElBQW9BZ1FpQlc0aUNDQUZiQ0lFUVFoMGFpQURJQVJySWdkQkJIUnFJUVlnQlVFRWRDRUVJQUFvQWdnaENTQUZJQU5MSWdwRkJFQWdBU0FHSUFSQkFYSnJJZ010QUFBNkFBQWdBU0FETFFBQk9nQUJJQUVnQXkwQUFqb0FBaUFCSUFNdEFBTTZBQU1nQVNBRExRQUVPZ0FFSUFFZ0F5MEFCVG9BQlNBQklBTXRBQVk2QUFZZ0FTQURMUUFIT2dBSElBRWdBeTBBQ0RvQUNDQUJJQU10QUFrNkFBa2dBU0FETFFBS09nQUtJQUVnQXkwQUN6b0FDeUFCSUFNdEFBdzZBQXdnQVNBRExRQU5PZ0FOSUFFZ0F5MEFEam9BRGlBQklBTXRBQTg2QUE4Z0FTQURMUUFRT2dBUUlBRWdBeTBBRVRvQUVTQUJJQU10QUJJNkFCSWdBU0FETFFBVE9nQVRJQUVnQXkwQUZEb0FGQ0FCUVJWcUlRRUxJQWNFUUNBQ0lBWkJmMm9pQXkwQUFEb0FBQ0FDSUFNZ0JHb2lBeTBBQURvQUFTQUNJQU1nQkdvaUF5MEFBRG9BQWlBQ0lBTWdCR29pQXkwQUFEb0FBeUFDSUFNZ0JHb2lBeTBBQURvQUJDQUNJQU1nQkdvaUF5MEFBRG9BQlNBQ0lBTWdCR29pQXkwQUFEb0FCaUFDSUFNZ0JHb2lBeTBBQURvQUJ5QUNJQU1nQkdvaUF5MEFBRG9BQ0NBQ0lBTWdCR29pQXkwQUFEb0FDU0FDSUFNZ0JHb2lBeTBBQURvQUNpQUNJQU1nQkdvaUF5MEFBRG9BQ3lBQ0lBTWdCR29pQXkwQUFEb0FEQ0FDSUFNZ0JHb2lBeTBBQURvQURTQUNJQU1nQkdvaUF5MEFBRG9BRGlBQ0lBTWdCR290QUFBNkFBOGdBa0VRYWlFQ0N5QUFLQUlBSUFVZ0NXd2lCRUVJZEdvZ0NDQUZRUU4wSWdCc1FRTjBhaUFIUVFOMGFpRUdJQUJCK1AvLy93ZHhJUUFnQ2tVRVFDQUJJQVlnQUVFQmNtc2lBeTBBQURvQUFDQUJJQU10QUFFNkFBRWdBU0FETFFBQ09nQUNJQUVnQXkwQUF6b0FBeUFCSUFNdEFBUTZBQVFnQVNBRExRQUZPZ0FGSUFFZ0F5MEFCam9BQmlBQklBTXRBQWM2QUFjZ0FTQURRUWhxSWdNdEFBQTZBQWdnQVNBRVFRWjBJQU5xSWdOQmVHb3RBQUE2QUFrZ0FTQURRWGxxTFFBQU9nQUtJQUVnQTBGNmFpMEFBRG9BQ3lBQklBTkJlMm90QUFBNkFBd2dBU0FEUVh4cUxRQUFPZ0FOSUFFZ0EwRjlhaTBBQURvQURpQUJJQU5CZm1vdEFBQTZBQThnQVNBRFFYOXFMUUFBT2dBUUlBRWdBeTBBQURvQUVRc2dCMFVOQUNBQ0lBWkJmMm9pQVMwQUFEb0FBQ0FDSUFBZ0FXb2lBUzBBQURvQUFTQUNJQUFnQVdvaUFTMEFBRG9BQWlBQ0lBQWdBV29pQVMwQUFEb0FBeUFDSUFBZ0FXb2lBUzBBQURvQUJDQUNJQUFnQVdvaUFTMEFBRG9BQlNBQ0lBQWdBV29pQVMwQUFEb0FCaUFDSUFBZ0FXb2lBUzBBQURvQUJ5QUNJQUFnQVdvZ0JDQUZhMEVHZEdvaUFTMEFBRG9BQ0NBQ0lBQWdBV29pQVMwQUFEb0FDU0FDSUFBZ0FXb2lBUzBBQURvQUNpQUNJQUFnQVdvaUFTMEFBRG9BQ3lBQ0lBQWdBV29pQVMwQUFEb0FEQ0FDSUFBZ0FXb2lBUzBBQURvQURTQUNJQUFnQVdvaUFTMEFBRG9BRGlBQ0lBQWdBV290QUFBNkFBOExDNjhCQVFGL0l3QkIwQUJySWdZa0FDQUNJQVpCSUdvZ0JpQURFRlVDUUFKQVFRSWdBQ2dDQUNJRFFRWkhJQU5CQmtrYlFRRkdCRUFnQUNBRklBRkJ5QUpxSUFaQklHb2dCaUFFRUZRaUEwVU5BUXdDQ3lBQUlBVWdBU0FHUVNCcUlBWWdCQkJUSWdNTkFRc2dBQ0FGUVlBQ2FpQUJRY2dLYWlBR1FUVnFJQVpCRUdvZ0FTZ0NqQUVnQkJCU0lnTU5BRUVBSVFNZ0FDZ0N4QUZCQVVzTkFDQUNJQVVRR3dzZ0JrSFFBR29rQUNBREM2TXFBU1IvSXdCQklHc2lFQ1FBSUJBZ0JDZ0NCQ0lJTmdJTUlCQWdCQ2dDQ0RZQ0VDQURJQWh1SWdaQkJIUWhGQ0FESUFZZ0NHeHJRUVIwSVJVQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFBb0FnQWlCa0VEVFFSQUFrQUNRQUpBSUFaQkFtc09BZ0VDQUFzZ0FTZ0NrQUVoRXlBQUtBSUVJUTVCZnlFUEFuOGdBQ2dDeUFFaUNVVUVRRUVBSVFoQmZ3d0JDMEVBSVFoQmZ5QUpLQUlFSUE1SERRQWFRUUVoRWtGL0lBa29BZ0JCQlVzTkFCb2dDU2dDbUFFaUNFRVFkaUVISUFrb0FtZ0xJUTBnQUNnQ3pBRWlDVVVOQ0NBSktBSUVJQTVIRFFoQkFTRVdJQWtvQWdCQkJVc05DQ0FKS0FLc0FTSVJRUkIySVFvZ0NTZ0NiQ0VQREFnTElBRW9BcEFCSVJNZ0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhDMEYvSVFjQ1FDQUFLQUxNQVNJR1JRMEFJQXNnQmlnQ0JFY0VRQXdCQzBFQklSSWdCaWdDQUVFRlN3MEFJQVlvQXF3QklnbEJFSFloQ2lBR0tBSnNJUWNMSUFjZ0UwWUVRQ0FLSVFjZ0NTRUdEQWNMUVg4aER3SkFBa0FDUUNBQUtBTElBU0lJUlFSQVFRQWhCd3dCQzBFQUlRY2dDQ2dDQkNBTFJnMEJDMEVBSVFZTUFRdEJBU0VYSUFnb0FnQkJCVXNFUUVFQUlRWU1BUXNnQ0NnQ21BRWlCa0VRZGlFSElBZ29BbWdoRHdzQ1FBSkFJQUFvQXRBQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVTBOQVF3R0N3SkFJQUFvQXRRQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVXNOQmlBSUtBSndJUllnQ0NnQ3dBRWhDQXdIQzBFQUlRaEJmeUVXSUJJTkJpQVhSUTBHREFjTElBZ29BbXdoRmlBSUtBS3NBU0VJREFVTElBRW9BcEFCSVE4Z0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhCa0YvSVFjQ1FDQUFLQUxJQVNJS1JRUkFRUUFoQ0F3QkMwRUFJUWdnQmlBS0tBSUVSd1JBREFFTFFRRWhFU0FLS0FJQVFRVkxEUUFnQ2lnQ21BRWlDVUVRZGlFSUlBb29BbWdoQndzZ0J5QVBSZzBCQW44Q2Z3SkFBa0FnQUNnQ3pBRWlCMFVOQUNBSEtBSUVJQVpIRFFBZ0J5Z0NBRUVGU3cwQklBY29BbkFoRVNBSEtBSzhBU0VLSUFjb0Ftd2hFaUFIS0FLc0FTSUdRUkIyREFNTEFrQWdBQ2dDMUFFaUIwVU5BQ0FIS0FJRUlBWkhEUUJCQUNFR1FYOGhFaUFIS0FJQVFRVkxCRUJCZnlFUlFRQU1Bd3NnQnlnQ2NDRVJJQWNvQXNBQkRBSUxJQkVOQkF0QmZ5RVJRWDhoRWtFQUlRWkJBQXNoQ2tFQUN5RUhJQThnRWtZaUN5QVBJQkZHYWtFQlJ3UkFJQWNnQ0NBSFFSQjBRUkIxSWdzZ0NFRVFkRUVRZFNJT1NpSUlHeUlISUE0Z0N5QU9JQXNnRGtnYklBZ2JJZ2dnQ2tFUWRTSUxJQWdnQzBvYklBZEJFSFJCRUhVZ0MwZ2JJUWNnQmlBSklBWkJFSFJCRUhVaUN5QUpRUkIwUVJCMUlnbEtJZ1liSWdoQi8vOERjU0FKSUFzZ0NTQUxJQWxJR3lBR0d5SUdJQXBCRUhSQkVIVWlDU0FHSUFsS0d5QUlRUkIwUVJCMUlBbElHeUVHREFNTElBc05BaUFLUVJCMklRY2dDaUVHREFJTFFRRWhHeUFBUVlRQmFpRWNBMEFDZnlBQklCMUJBblFpSG1vaUlDSWtLQUt3QVNJR1FRSk5CRUFnQmtFQ2RFR2NOV29vQWdBTUFRdEJCQXNoSWlBQUlCNXFJZ1lnSUNnQ3dBRTJBbVFnQmlBQ0lDQW9Bc0FCRUJRaUJqWUNkQ0FHUlEwSUlDSUVRQ0FjSUIxQkJIUWlIMm9pSlNFbUlCd2dIMEVNY21vaUowRUNhaUVvSUJ3Z0gwRUljbW9pS1NFUklCd2dIMEVFY21vaUZpRVRRUUFoQmdOQUlBRWdIMm9nQmtFQ2RHb2lDQzhCMGdFaER5QUlMd0hRQVNFT0lDQW9Bc0FCSVNGQmZ5RVhBbjhnQUNBZFFRZDBJQ1FvQXJBQklpTkJCWFJxSUFaQkEzUnFJaHBCc0JscUtBSUFFQkVpQ1VVRVFFRUFJUXhCQUNFSVFRQWhDa0YvREFFTFFRQWhERUVBSVFoQkFDRUtRWDhnQ1NnQ0JDQUFLQUlFUncwQUdrRUJJUXBCZnlBSktBSUFRUVZMRFFBYUlBa2dHa0cwR1dvdEFBQWlCMEVDZEdvb0FvUUJJZ2hCRUhZaERDQUpJQWRCL0FGeGFpZ0NaQXNoRFFKQUFrQUNRQ0FBSUJwQnNCMXFLQUlBRUJFaUdFVUVRRUVBSVFrTUFRdEJBQ0VKSUJnb0FnUWdBQ2dDQkVZTkFRdEJBQ0VTUVFBaEN3d0JDMEVCSVFzZ0dDZ0NBRUVGU3dSQVFRQWhFZ3dCQ3lBWUlCcEJ0QjFxTFFBQUlnZEJBblJxS0FLRUFTSVNRUkIySVFrZ0dDQUhRZndCY1dvb0FtUWhGd3NDUUFKQUFrQUNRQUpBSUFBZ0drR3dJV29vQWdBUUVTSVpSUTBBSUJrb0FnUWdBQ2dDQkVjTkFDQVpLQUlBUVFWTkRRRU1BZ3NDUUNBQUlCcEJzQ1ZxS0FJQUVCRWlHVVVOQUNBWktBSUVJQUFvQWdSSERRQWdHU2dDQUVFRlN3MENJQmtnR2tHMEpXb3RBQUFpQjBIOEFYRnFLQUprSVJnZ0dTQUhRUUowYWlnQ2hBRWhCd3dEQzBFQUlRZEJmeUVZSUFwRkRRSWdDdzBDREFNTElCa2dHa0cwSVdvdEFBQWlCMEg4QVhGcUtBSmtJUmdnR1NBSFFRSjBhaWdDaEFFaEJ3d0JDMEVBSVFkQmZ5RVlDeUFYSUNGR0lnb2dEU0FoUmlJTGFpQVlJQ0ZHYWtFQlJ3UkFJQWtnRENBSlFSQjBRUkIxSWdzZ0RFRVFkRUVRZFNJTVNpSUpHeUlLSUF3Z0N5QU1JQXNnREVnYklBa2JJZ2tnQjBFUWRTSUxJQWtnQzBvYklBcEJFSFJCRUhVZ0MwZ2JJUXdnRWlBSUlCSkJFSFJCRUhVaUNpQUlRUkIwUVJCMUlndEtJZ2diSWdsQi8vOERjU0FMSUFvZ0N5QUtJQXRJR3lBSUd5SUlJQWRCRUhSQkVIVWlCeUFJSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVJREFFTElBZ2dFaUFMR3lFSUlBd2dDU0FMR3lFTUlBc05BQ0FLRFFBZ0IwRVFkaUVNSUFjaENBc2dDQ0FPYWlJS1FSQjBRUkIxUVlCQWEwSC8vd0JMRFFvZ0RDQVBhaUlKUVJCMFFSQjFRWUFRYWtIL0gwc05DaUFqUVFOTkJFQUNmd0pBQWtBQ1FBSkFJQ05CQVdzT0F3RUNBd0FMSUNVZ0Nqc0JBQ0FtSUFrN0FRSWdGaUFLT3dFQUlCTWdDVHNCQWlBcElBbzdBUUFnRVNBSk93RUNJQ2NnQ2pzQkFDQW9EQU1MSUJ3Z0JrRUJkQ0FlYWtFQ2RDSUhhaUlJSUFrN0FRSWdDQ0FLT3dFQUlCd2dCMEVFY21vaUNDQUtPd0VBSUFoQkFtb01BZ3NnQUNBR0lCNXFRUUowYWlJSUlBbzdBWXdCSUFnZ0NUc0JoZ0VnQ0NBS093R0VBU0FJUVk0QmFnd0JDeUFBSUFZZ0htcEJBblJxSWdnZ0Nqc0JoQUVnQ0VHR0FXb0xJQWs3QVFBTElBWkJBV29pQmlBaVJ3MEFDd3NnSFVFQmFpSWRRUVJIRFFBTFFRQWhEQU5BSUJBZ0FDQU1RUUowSWdKcUtBSjBOZ0lJSUF4QkFVdEJBM1FoQ1NBTVFRTjBRUWh4SVFjQ1FDQUJJQUpxS0FLd0FTSUNRUUpOQkVBQ1FBSkFBa0FnQWtFQmF3NENBUUlBQ3lBRklBQWdERUVFZEdwQmhBRnFJQkJCQ0dvZ0ZTQVVJQWNnQ1VFSVFRZ1FEZ3dEQ3lBRklBQWdERUVFZEdvaUFrR0VBV29nRUVFSWFpQVZJQlFnQnlBSlFRaEJCQkFPSUFVZ0FrR01BV29nRUVFSWFpQVZJQlFnQnlBSlFRUnlRUWhCQkJBT0RBSUxJQVVnQUNBTVFRUjBhaUlDUVlRQmFpQVFRUWhxSUJVZ0ZDQUhJQWxCQkVFSUVBNGdCU0FDUVlnQmFpQVFRUWhxSUJVZ0ZDQUhRUVJ5SUFsQkJFRUlFQTRNQVFzZ0JTQUFJQXhCQkhScUlnaEJoQUZxSUJCQkNHb2dGU0FVSUFjZ0NVRUVRUVFRRGlBRklBaEJpQUZxSUJCQkNHb2dGU0FVSUFkQkJISWlCaUFKUVFSQkJCQU9JQVVnQ0VHTUFXb2dFRUVJYWlBVklCUWdCeUFKUVFSeUlnSkJCRUVFRUE0Z0JTQUlRWkFCYWlBUVFRaHFJQlVnRkNBR0lBSkJCRUVFRUE0TElBeEJBV29pREVFRVJ3MEFDd3dHQ3lBSUlRY2dDU0VHQzBFQklSc2dCaUFNYWlJSVFSQjBRUkIxUVlCQWEwSC8vd0JMRFFVZ0J5QU5haUlHUVJCMFFSQjFRWUFRYWtIL0gwc05CU0FDSUE4UUZDSUhSUTBGSUFBZ0Jqc0JzZ0VnQUNBSU93R3dBU0FBSUFjMkFuUWdBQ0FQTmdKa0lBQWdCellDZkNBQUlBODJBbXdnQUNBQUtBS3dBU0lHTmdLc0FTQUFJQVkyQXFnQklBQWdCallDcEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FCS0FLVUFTRU9JQUV2QWFZQklRd2dBUzhCcEFFaEN5QUFLQUlFSVFrQ1FBSkFJQUFvQXRBQklnZEZEUUFnQnlnQ0JDQUpSdzBBUVFFaEVTQUhLQUlBUVFWTEJFQkJmeUVJUVFBaEJ3d0NDeUFIS0FKc0lRZ2dCeWdDckFFaEJ3d0JDMEYvSVFoQkFDRUhJQUFvQXN3QklncEZCRUJCQUNFUkRBRUxJQWtnQ2lnQ0JFY0VRRUVBSVJFTUFRdEJBU0VSSUFvb0FnQkJCVXNOQUNBS0tBSnNJUWdnQ2lnQ3NBRWhCd3NDUUNBSUlBNUdSUVJBSUFaQkVIWWhDQUovQWtBQ1FDQUFLQUxNQVNJTlJRMEFJQTBvQWdRZ0NVY05BQ0FOS0FJQVFRVkxEUUVnRFNnQ3ZBRWlFVUVRZGlFS0lBMG9BbkFNQWdzZ0VVVU5Bd3RCQUNFUlFRQWhDa0YvQ3lFTklBNGdEMFlpQ1NBTklBNUdha0VCUndSQUlBb2dDQ0FLUVJCMFFSQjFJZzBnQ0VFUWRFRVFkVW9pQ0JzaUNTQUdRUkIxSWdvZ0RTQUtJQW9nRFVvYklBZ2JJZ2dnQjBFUWRTSUtJQWdnQ2tvYklBbEJFSFJCRUhVZ0NrZ2JJUWdnRVNBR0lCRkJFSFJCRUhVaUNpQUdRUkIwUVJCMUlnMUtJZ1liSWdsQi8vOERjU0FOSUFvZ0RTQU5JQXBLR3lBR0d5SUdJQWRCRUhSQkVIVWlCeUFHSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVHREFJTElBa05BU0FOSUE1R0JFQWdFVUgvL3dOeElBcEJFSFJ5SVFZZ0NpRUlEQUlMQ3lBSFFSQjJJUWdnQnlFR0N5QUdJQXRxSWdkQkVIUkJFSFZCZ0VCclFmLy9BRXNOQlNBSUlBeHFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MEZJQUlnRGhBVUlnSkZEUVVnQUNBR093SENBU0FBSUFjN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKNElBQWdEallDY0NBQUlBNDJBbWdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0tnQVNBQUlBWTJBcHdCSUFBZ0JqWUNtQUVnQUVHVUFXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVJUVJBUURpQVFJQUFvQW5nMkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFoQkFFRUlRUkFRRGd3RUMwRUFJUWhCZnlFV0N5QVBJQk5HSWdzZ0V5QVdSbXBCQVVjRVFDQUtJQWNnQ2tFUWRFRVFkU0lMSUFkQkVIUkJFSFVpRGtvaUJ4c2lDaUFPSUFzZ0RpQUxJQTVJR3lBSEd5SUhJQWhCRUhVaUN5QUhJQXRLR3lBS1FSQjBRUkIxSUF0SUd5RUhJQWtnQmlBSlFSQjBRUkIxSWdvZ0JrRVFkRUVRZFNJTFNpSUdHeUlKUWYvL0EzRWdDeUFLSUFzZ0NpQUxTQnNnQmhzaUJpQUlRUkIwUVJCMUlnZ2dCaUFJU2hzZ0NVRVFkRUVRZFNBSVNCc2hCZ3dCQ3lBTERRQWdDRUVRZGlFSElBZ2hCZ3RCQVNFYklBWWdER29pQ0VFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0RXb2lCa0VRZEVFUWRVR0FFR3BCL3g5TERRSWdBaUFURUJRaUIwVU5BaUFBSUFZN0FhSUJJQUFnQ0RzQm9BRWdBQ0FITmdKMElBQWdFellDWkNBQUlBYzJBbmdnQUNBVE5nSm9JQUFnQUNnQ29BRWlEellDbkFFZ0FDQVBOZ0tZQVNBQUlBODJBcFFCSUFBZ0R6WUNrQUVnQUNBUE5nS01BU0FBSUE4MkFvZ0JJQUFnRHpZQ2hBRWdBU2dDbEFFaERpQUJMd0dtQVNFTklBRXZBYVFCSVF3Q2Z3SkFBa0FDUUNBQUtBTElBU0lHQkVBZ0JpZ0NCQ0FBS0FJRVJnUkFJQVlvQWdCQkJVMEVRQ0FHS0FLNEFTSUxRUkIySVFjZ0JpZ0NjQ0FPUncwRUlBc2hDUXdEQzBGL0lSSkJBQ0VKUVFBaEIwRUFJUXRCQUNFS0lBNUJmMFlOQWd3RUMwRi9JUkpCQUNFSlFRQWhCMEVBSVF0QkFDRUtJQTVCZjBZTkFRd0RDMEYvSVJKQkFDRUpRUUFoQjBFQUlRdEJBQ0VLSUE1QmYwY05BZ3NnQ1VILy93TnhJQWRCRUhSeURBSUxJQVlvQW1naEVpQUdLQUtnQVNFS0lBY2hDUXNnRDBFUWRpRUlJQTRnRTBZaUJpQU9JQkpHYWtFQlJ3UkFJQWdnQ1NBSlFSQjBRUkIxSWdrZ0NFRVFkRUVRZFVnaUJ4c2lDQ0FKSUE5QkVIVWlCaUFKSUFZZ0NVZ2JJQWNiSWdZZ0NrRVFkU0lISUFZZ0Iwb2JJQWhCRUhSQkVIVWdCMGdiSVFjZ0R5QUxJQXRCRUhSQkVIVWlDeUFQUVJCMFFSQjFJZ2xJSWdZYklnaEIvLzhEY1NBTElBa2dDeUFKSUF0SUd5QUdHeUlHSUFwQkVIUkJFSFVpQ1NBR0lBbEtHeUFJUVJCMFFSQjFJQWxJR3d3QkN5QUlJQXBCRUhZZ0Joc2hCeUFQSUFvZ0Joc0xJQXhxSWdoQkVIUkJFSFZCZ0VCclFmLy9BRXNOQWlBSElBMXFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MENJQUlnRGhBVUlnSkZEUUlnQUNBR093SENBU0FBSUFnN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKOElBQWdEallDY0NBQUlBNDJBbXdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0t3QVNBQUlBWTJBcXdCSUFBZ0JqWUNxQUVnQUVHa0FXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVRUVFnUURpQVFJQUFvQW53MkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFCQkNFRVFRUWdRRGd3QkN3SkFJQVpGQkVBZ0VrVUVRRUVBSVFrTUFnc2dGa1VFUUVFQUlRa01BZ3NnQ0VILy93TnhJQWRCRUhSeUlBMXlSUVJBUVFBaENRd0NDMEVBSVFrZ0VVSC8vd054SUFwQkVIUnlJQTl5UlEwQkN5QUJMd0dpQVNFTElBRXZBYUFCSVFrQ1FBSkFBa0FDUUFKQUlBQW9BdEFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVME5BUXdDQ3dKQUlBQW9BdFFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVc05BaUFHS0FKd0lSY2dCaWdDd0FFaERBd0RDMEYvSVJjZ0VrVU5BaUFXRFFJTUF3c2dCaWdDYkNFWElBWW9BcXdCSVF3TUFRdEJmeUVYQ3lBUElCTkdJZ1lnRFNBVFJpSU5haUFUSUJkR2FrRUJSd1JBSUFvZ0J5QUtRUkIwUVJCMUlnb2dCMEVRZEVFUWRTSU5TaUlHR3lJSElBMGdDaUFOSUFvZ0RVZ2JJQVliSWdZZ0RFRVFkU0lLSUFZZ0Nrb2JJQWRCRUhSQkVIVWdDa2diSVFjZ0VTQUlJQkZCRUhSQkVIVWlDaUFJUVJCMFFSQjFJZzFLSWdZYklnaEIvLzhEY1NBTklBb2dEU0FLSUExSUd5QUdHeUlHSUF4QkVIUkJFSFVpQ2lBR0lBcEtHeUFJUVJCMFFSQjFJQXBJR3lFSURBRUxJQWdnRVNBTkd5RUlJQWNnQ2lBTkd5RUhJQTBOQUNBR0RRQWdERUVRZGlFSElBd2hDQXRCQVNFYklBZ2dDV29pREVFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0Myb2lDVUVRZEVFUWRVR0FFR3BCL3g5TERRSUxJQUlnRXhBVUlnSkZCRUJCQVNFYkRBSUxJQUFnQ1RzQndnRWdBQ0FNT3dIQUFTQUFJQUkyQW5RZ0FDQVROZ0prSUFBZ0FqWUNnQUVnQUNBQ05nSjhJQUFnQWpZQ2VDQUFJQk0yQW5BZ0FDQVROZ0pzSUFBZ0V6WUNhQ0FBSUFBb0FzQUJJZ1kyQXJ3QklBQWdCallDdUFFZ0FDQUdOZ0swQVNBQUlBWTJBckFCSUFBZ0JqWUNyQUVnQUNBR05nS29BU0FBSUFZMkFxUUJJQUFnQmpZQ29BRWdBQ0FHTmdLY0FTQUFJQVkyQXBnQklBQWdCallDbEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FRSUFJMkFnZ2dCU0FBUVlRQmFpQVFRUWhxSUJVZ0ZFRUFRUUJCRUVFUUVBNExRUUFoR3lBQUtBTEVBVUVCU3cwQUlBQW9BZ0FFUUNBRUlBTWdCU0FCUWNnQ2FoQllEQUVMSUFRZ0JSQWJDeUFRUVNCcUpBQWdHd3VUQ3dFUGZ5QUFLQUlBSWhFZ0FTQUJJQUFvQWdRaUNuQWlBV3NpQkVFSWRHb2dBVUVFZEdvaEJTQUtRUVIwSVFzZ0FDZ0NDQ0FLYkNJQVFRWjBJUVlnQVVFRGRDRUpJQUJCQ0hRaERDQUVRUVowSVJJZ0NrRUNkRUg4Ly8vL0EzRkJBblFoRUFOQUlBVWdEa0VDZENJQVFmQXBhaWdDQUNJQklBdHNhaUFBUWJBcGFpZ0NBQ0lBYWlFRUlBSWdBVUVFZEdvZ0FHb2hBQUpBSUFNZ0RrRUdkR29pQVNnQ0FDSUhRZi8vL3dkSEJFQWdBU2dDQkNFSUlBQXRBQUVoRFNBRUlBY2dBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BZ2doQnlBQUxRQUNJUThnQkNBSUlBMXFRYkF1YWkwQUFEb0FBU0FCS0FJTUlRZ2dBQzBBQXlFTklBUWdCeUFQYWtHd0xtb3RBQUE2QUFJZ0JDQUlJQTFxUWJBdWFpMEFBRG9BQXlBQktBSVVJUWNnQUMwQUVTRUlJQVFnQzJvaUJDQUJLQUlRSUFBdEFCQnFRYkF1YWkwQUFEb0FBQ0FCS0FJWUlRMGdBQzBBRWlFUElBUWdCeUFJYWtHd0xtb3RBQUE2QUFFZ0FTZ0NIQ0VISUFBdEFCTWhDQ0FFSUEwZ0QycEJzQzVxTFFBQU9nQUNJQVFnQnlBSWFrR3dMbW90QUFBNkFBTWdBU2dDSkNFSElBQXRBQ0VoQ0NBRUlBdHFJZ1FnQVNnQ0lDQUFMUUFnYWtHd0xtb3RBQUE2QUFBZ0FTZ0NLQ0VOSUFBdEFDSWhEeUFFSUFjZ0NHcEJzQzVxTFFBQU9nQUJJQUVvQWl3aEJ5QUFMUUFqSVFnZ0JDQU5JQTlxUWJBdWFpMEFBRG9BQWlBRUlBY2dDR3BCc0M1cUxRQUFPZ0FESUFFb0FqUWhCeUFBTFFBeElRZ2dCQ0FMYWlJRUlBRW9BakFnQUMwQU1HcEJzQzVxTFFBQU9nQUFJQUVvQWpnaERTQUFMUUF5SVE4Z0JDQUhJQWhxUWJBdWFpMEFBRG9BQVNBQktBSThJUUVnQUMwQU15RUFJQVFnRFNBUGFrR3dMbW90QUFBNkFBSWdCQ0FBSUFGcVFiQXVhaTBBQURvQUF3d0JDeUFBS0FJUUlRRWdCQ0FBS0FJQU5nSUFJQVFnRUdvaUJDQUJOZ0lBSUFBb0FqQWhBU0FFSUJCcUlnUWdBQ2dDSURZQ0FDQUVJQkJxSUFFMkFnQUxJQTVCQVdvaURrRVFSdzBBQ3lBTUlCRnFJQkpxSUFscUloQWdCbW9oRVNBS1FRTjBRZmovLy84SGNTSUxRUUoyUVFKMElRNUJFQ0VLQTBBZ0NrRUNkRUVNY1NJQVFmQXBhaWdDQUNJQklBdHNJQUJCc0NscUtBSUFJZ0JxSUJFZ0VDQUtRUk5MSWdVYmFpRUVJQUpCd0FKQmdBSWdCUnRxSUFGQkEzUWdBR3BxSVFBQ1FDQURJQXBCQm5ScUlnRW9BZ0FpQlVILy8vOEhSd1JBSUFFb0FnUWhCaUFBTFFBQklRa2dCQ0FGSUFBdEFBQnFRYkF1YWkwQUFEb0FBQ0FCS0FJSUlRVWdBQzBBQWlFTUlBUWdCaUFKYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VHSUFBdEFBTWhDU0FFSUFVZ0RHcEJzQzVxTFFBQU9nQUNJQVFnQmlBSmFrR3dMbW90QUFBNkFBTWdBU2dDRkNFRklBQXRBQWtoQmlBRUlBdHFJZ1FnQVNnQ0VDQUFMUUFJYWtHd0xtb3RBQUE2QUFBZ0FTZ0NHQ0VKSUFBdEFBb2hEQ0FFSUFVZ0JtcEJzQzVxTFFBQU9nQUJJQUVvQWh3aEJTQUFMUUFMSVFZZ0JDQUpJQXhxUWJBdWFpMEFBRG9BQWlBRUlBVWdCbXBCc0M1cUxRQUFPZ0FESUFFb0FpUWhCU0FBTFFBUklRWWdCQ0FMYWlJRUlBRW9BaUFnQUMwQUVHcEJzQzVxTFFBQU9nQUFJQUVvQWlnaENTQUFMUUFTSVF3Z0JDQUZJQVpxUWJBdWFpMEFBRG9BQVNBQktBSXNJUVVnQUMwQUV5RUdJQVFnQ1NBTWFrR3dMbW90QUFBNkFBSWdCQ0FGSUFacVFiQXVhaTBBQURvQUF5QUJLQUkwSVFVZ0FDMEFHU0VHSUFRZ0Myb2lCQ0FCS0FJd0lBQXRBQmhxUWJBdWFpMEFBRG9BQUNBQktBSTRJUWtnQUMwQUdpRU1JQVFnQlNBR2FrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQXRBQnNoQUNBRUlBa2dER3BCc0M1cUxRQUFPZ0FDSUFRZ0FDQUJha0d3TG1vdEFBQTZBQU1NQVFzZ0FDZ0NDQ0VCSUFRZ0FDZ0NBRFlDQUNBRUlBNXFJZ1FnQVRZQ0FDQUFLQUlZSVFFZ0JDQU9haUlFSUFBb0FoQTJBZ0FnQkNBT2FpQUJOZ0lBQ3lBS1FRRnFJZ3BCR0VjTkFBc0w1Z0VCQjM4Q1FDQUFLQUlBSWdWRkRRQWdBRUVCTmdJOElBQW9BamdOQUNBQUtBSWNJUVpCLy8vLy93Y2hBZ05BQTBBZ0JTQURRU2hzYWlJRUtBSVlCRUFnQkNBQklBUW9BaEFpQkNBQ1NDSUhHeUVCSUFRZ0FpQUhHeUVDQ3lBRFFRRnFJZ01nQmswTkFDQUJSUTBDSUFBb0Fnd2dBQ2dDRUNJRFFRUjBhaUlDSUFFb0FnQTJBZ0FnQWlBQktBSWtOZ0lNSUFJZ0FTZ0NIRFlDQkNBQ0lBRW9BaUEyQWdnZ0FDQURRUUZxTmdJUVFRQWhBeUFCUVFBMkFoZ2dBU2dDRkNFRVFRQWhBVUgvLy8vL0J5RUNJQVFOQUFzZ0FDQUFLQUlzUVg5cU5nSXNEQUFBQ3dBTEM5d0dBUXAvSUFCQ0FEY0NFQUpBQWtBQ1FDQURSUTBBQWtBQ1FDQUJJQUFvQWpBaUEwY0VRQ0FEUVFGcUlBQW9BaUFpQkhBaUNTQUJSZzBCSUFBb0FnQWdBQ2dDSEVFb2JHb29BZ0FoQ3dOQUFrQUNRQ0FBS0FJb0lnY0VRQ0FBS0FJQUlRaEJBQ0VEQTBBZ0NDQURRU2hzYWlJRktBSVVRWDlxUVFGTkJFQWdCU0FGS0FJTUlnVWdCRUVBSUFVZ0NVc2JhellDQ0FzZ0EwRUJhaUlESUFkSERRQUxJQWNnQUNnQ0dFa05Ba0YvSVFWQkFDRURRUUFoQkFOQUlBZ2dBMEVvYkdvaUJpZ0NGRUYvYWtFQlRRUkFJQVlvQWdnaUJpQUVJQVZCZjBZZ0JpQUVTSElpQmhzaEJDQURJQVVnQmhzaEJRc2dBMEVCYWlJRElBZEhEUUFMSUFWQkFFNE5BVUVCRHd0QkFDRUhJQUFvQWhnTkFVRUJEd3NnQ0NBRlFTaHNhaUlEUVFBMkFoUWdBQ0FIUVg5cUlnYzJBaWdnQXlnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FDZ0NMQ0lGSUFBb0Fod2lDRThFUUNBQUtBSTREUVlnQUNnQ0FDRU1BMEJCQUNFRVFmLy8vLzhISVFaQkFDRURBMEFnRENBRFFTaHNhaUlLS0FJWUJFQWdDaUFFSUFvb0FoQWlDaUFHU0NJTkd5RUVJQW9nQmlBTkd5RUdDeUFEUVFGcUlnTWdDRTBOQUFzQ1FDQUVSUTBBSUFBb0Fnd2dBQ2dDRUNJR1FRUjBhaUlESUFRb0FnQTJBZ0FnQXlBRUtBSWtOZ0lNSUFNZ0JDZ0NIRFlDQkNBRElBUW9BaUEyQWdnZ0FDQUdRUUZxTmdJUUlBUkJBRFlDR0NBRUtBSVVEUUFnQUNBRlFYOXFJZ1UyQWl3TElBVWdDRThOQUFzTElBQW9BZ0FpQkNBSVFTaHNhaUlESUFrMkFnd2dBMEtBZ0lDQUVEY0NFQ0FEUVFBMkFoZ2dBeUFKTmdJSUlBQWdCMEVCYWpZQ0tDQUFJQVZCQVdvMkFpd2dCQ0FJUVFGcUVDY2dDVUVCYWlBQUtBSWdJZ1J3SWdrZ0FVY05BQXNDUUNBQUtBSVFJZ2xGRFFBZ0FDZ0NBQ0lGSUFBb0Fod2lCRUVvYkdvaUNDZ0NBQ0VISUFBb0Fnd2hCa0VBSVFNRFFDQUhJQVlnQTBFRWRHb29BZ0JIQkVBZ0NTQURRUUZxSWdOSERRRU1BZ3NMSUFSRkRRQkJBQ0VEQTBBZ0N5QUZJQU5CS0d4cUlna29BZ0JIQkVBZ0JDQURRUUZxSWdOSERRRU1BZ3NMSUFrZ0J6WUNBQ0FJSUFzMkFnQUxJQUlOQlNBQUtBSXdJUU1NQWdzZ0FrRUFSdzhMSUFJTkF3c2dBU0FEUmcwQUlBQWdBU0FBS0FJZ0lnQnFRWDlxSUFCd05nSXdDMEVBRHdzRFFBd0FBQXNBQ3lBQUlBRTJBakJCQUF0MUFRTi9Ba0FnQUNnQ0FDSUJSUTBBSUFBb0FoeEJmMFlOQUFOQUlBRWdBa0VvYkNJRGFpZ0NCQkFFSUFBb0FnQWlBU0FEYWtFQU5nSUVJQUpCQVdvaUFpQUFLQUljUVFGcVNRMEFDd3NnQVJBRUlBQkJBRFlDQUNBQUtBSUVFQVFnQUVFQU5nSUVJQUFvQWd3UUJDQUFRUUEyQWd3TGd3RUJBMzhDUUNBQUtBSUFJZ1pGRFFBZ0FDZ0NIRUYvUmcwQUEwQWdCaUFIUVNoc0lnaHFLQUlFRUFRZ0FDZ0NBQ0lHSUFocVFRQTJBZ1FnQjBFQmFpSUhJQUFvQWh4QkFXcEpEUUFMQ3lBR0VBUWdBRUVBTmdJQUlBQW9BZ1FRQkNBQVFRQTJBZ1FnQUNnQ0RCQUVJQUJCQURZQ0RDQUFJQUVnQWlBRElBUWdCUkJkQzRBQ0FRSi9JQUFnQlRZQ09DQUFJQVEyQWlBZ0FFTC8vd00zQWlRZ0FFSUFOd0lzSUFBZ0EwRUJJQU5CQVVzYklnTTJBaGdnQUNBRElBSWdCUnNpQWpZQ0hDQUFRYWdGRUFvaUF6WUNBRUgvL3dNaEJBSkFJQU5GRFFCQkFDRUZJQU5CQUVHb0JSQUhJUVlnQWtGL1J3UkFJQUZCZ0FOc1FTOXlJUVZCQUNFREEwQWdCaUFEUVNoc2FpSUhJQVVRQ2lJQk5nSUVJQUZGRFFJZ0J5QUJRUUFnQVd0QkQzRnFOZ0lBSUFNZ0Fra2hBU0FEUVFGcUlRTWdBUTBBQ3lBQ1FRUjBRUkJxSVFVTElBQkJ4QUFRQ2lJQk5nSUVJQUFnQlJBS0lnSTJBZ3dnQWtVTkFDQUJSUTBBUVFBaEJDQUJRUUJCeEFBUUJ4b2dBRUlBTndJUUN5QUVDOU1CQVFkL1FRRWhBUUpBSUFBb0FqZ05BQ0FBS0FJY0lRVWdBQ2dDQUNFR1FmLy8vLzhISVFOQkFDRUJBMEFnQmlBQlFTaHNhaUlFS0FJWUJFQWdCQ0FDSUFRb0FoQWlCQ0FEU0NJSEd5RUNJQVFnQXlBSEd5RURDeUFCUVFGcUlnRWdCVTBOQUFzZ0FrVUVRRUVCRHdzZ0FDZ0NEQ0FBS0FJUUlnTkJCSFJxSWdFZ0FpZ0NBRFlDQUNBQklBSW9BaVEyQWd3Z0FTQUNLQUljTmdJRUlBRWdBaWdDSURZQ0NDQUFJQU5CQVdvMkFoQkJBQ0VCSUFKQkFEWUNHQ0FDS0FJVURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQkMvVUVBUWgvSUFBb0FpZ2lCQVJBSUFBb0FnQWhCd05BSUFjZ0JVRW9iR29pQmlnQ0ZFRi9ha0VCVFFSQUlBWWdCaWdDRENJSUlBSkxCSDhnQ0NBQUtBSWdhd1VnQ0FzMkFnZ0xJQVZCQVdvaUJTQUVSdzBBQ3d0QkFDRUVBa0FnQVNnQ0FFVU5BQ0FCS0FJRUlnVkJBa3NOQUVFQUlRY2dBaUVHQTBBQ1FBSkFBa0FnQlVFQ1J3UkFJQUVnQjBFTWJHb29BZ2doQkFKQUlBVkZCRUFnQmlBRWF5SUdRWDlLRFFFZ0FDZ0NJQ0FHYWlFR0RBRUxJQVFnQm1vaUJrRUFJQUFvQWlBaUJTQUdJQVZJRzJzaEJnc2dCaUVKSUFZZ0Frc0VRQ0FHSUFBb0FpQnJJUWtMSUFBb0FoZ2lDa1VFUUVFQkR3c2dBQ2dDQUNFSVFRQWhCUU5BSUFnZ0JVRW9iR29pQkNnQ0ZDSUxRWDlxUVFGTkJFQWdCQ2dDQ0NBSlJnMERDMEVCSVFRZ0JVRUJhaUlGSUFwSERRQUxEQVVMUVFFaEJDQUFLQUlZSWdsRkRRUWdBU0FIUVF4c2FpZ0NEQ0VLSUFBb0FnQWhDRUVBSVFVRFFDQUlJQVZCS0d4cUlnUW9BaFJCQTBZRVFDQUVLQUlJSUFwR0RRTUxRUUVoQkNBRlFRRnFJZ1VnQ1VjTkFBc01CQXNnQlVFQVNBUkFRUUVQQzBFQklRUWdDMEVCU3cwQkRBTUxRUUVoQkNBRlFRQklEUUlMSUFjZ0F5SUVTUVJBQTBBZ0FDZ0NCQ0lKSUFSQkFuUnFJQWtnQkVGL2FpSUVRUUowYWlnQ0FEWUNBQ0FFSUFkTERRQUxJQUFvQWdBaENBc2dBQ2dDQkNBSFFRSjBhaUFJSUFWQktHd2lDV28yQWdBZ0IwRUJhaUlISVFRZ0J5SUZJQU5OQkVBRFFDQUFLQUlFSWdnZ0JVRUNkR29vQWdBaUNpQUFLQUlBSUFscVJ3UkFJQWdnQkVFQ2RHb2dDallDQUNBRVFRRnFJUVFMSUFWQkFXb2lCU0FEVFEwQUN3dEJBQ0VFSUFFZ0IwRU1iR29vQWdRaUJVRURTUTBBQ3dzZ0JBc0hBRUhFR2hBS0M3Y0JBUUovSXdCQkVHc2lCaVFBSUFaQkFEWUNEQ0FBSUFFZ0FpQUdRUXhxRUNvaUIwRjljVVVFUUFOQUlBQWdBU0FHS0FJTUlnZHFJZ0VnQWlBSGF5SUNJQVpCREdvUUtpSUhRWDF4UlEwQUN3c2dCMEVCUmdSQUlBUWdBQ2dDRUNJQktBSTBRUVIwTmdJQUlBVWdBU2dDT0VFRWREWUNBQ0FESUFCQnhBbHFJZ0FvQWhRaUFTQUFLQUlRU1FSL0lBQWdBVUVCYWpZQ0ZDQUFLQUlNSUFGQkJIUnFCVUVBQ3lnQ0FEWUNBQXNnQmtFUWFpUUFJQWNMU1FFQmZ5QUFRUUJCeEJvUUJ5SUNRYlFLYWtFQk5nSUFJQUpDZ0lLQWdJQUVOd0lFSUFCQndCQVFDaUlDTmdLd0dpQUNSUVJBUVFFUEN5QUJCRUFnQUVFQk5nTEFDUXRCQUF1NkJBRUpmd0pBQWtBZ0FVRUVTUTBBSUFBdEFBQU5BQ0FBTFFBQkRRQWdBQzBBQWlJSFFRRkxEUUJCQXlFRUlBQkJBMm9oQlVFQ0lRaEJmU0VNQWtBRFFDQUZJUVlDZnlBSVFRRnFJQWRCL3dGeElnVkZEUUFhUVFBaEJ5QUZRUUZHUVFBZ0NFRUJTeHNOQWtFQUN5RUlJQVJCZjNNaERDQUdRUUZxSVFVZ0JpMEFBQ0VISUFSQkFXb2lCQ0FCUncwQUN5QURJQUUyQWdCQkFROExJQVFoQ2tFQUlRaEJBQ0VGQTBCQkFTQUlJQWNnQmkwQUFDSUxSV29pQ1VFQ1Joc2dDQ0FMUVFOR0d5RUlJQXBCQVdvaENnSkFJQXRCQVVjTkFDQUpRUUpKRFFBZ0FpQUtJQXhxSUFsQmYzTnFJZ0UyQWd4QkFDQUpRWDFxSWdZZ0JpQUpTeHNoQnd3REMwRUFJQWtnQ3hzaEIwRUJJQVVnQ1VFQ1N4c2dCU0FMR3lFRklBWkJBV29oQmlBQklBcEhEUUFMSUFJZ0FTQU1haUFIYXlJQk5nSU1EQUVMSUFJZ0FUWUNERUVCSVFoQkFDRUhDeUFDUVFBMkFoQWdBa0VBTmdJSUlBSWdBQ0FFYWlJQU5nSUVJQUlnQURZQ0FDQURJQVFnQjJvZ0FXbzJBZ0JCQVNFREFrQWdCUTBBUVFBaEF5QUlSUTBBSUFJQ2Z5QUNLQUlNSWdGRkJFQWdBQ0VFUVFBTUFRc2dBQ0VFUVFBaEJnTkFJQUZCZjJvaEFTQUVMUUFBSVFVQ2Z3SkFJQVpCQWtjTkFDQUZRUU5HQkVBZ0FVVUVRRUVCRHdzZ0JDMEFBVUVEU3dSQVFRRVBDMEVBSVFZZ0JFRUJhZ3dDQ3lBRlFRTlBEUUJCQVE4TElBQWdCVG9BQUVFQUlBWkJBV29nQlJzaEJpQUFRUUZxSVFBZ0JFRUJhZ3NoQkNBQkRRQUxJQUlvQWd3TElBQWdCR3RxTmdJTUN5QURDd3Z0TWhrQVFZWUlDOG9GWmlBbUVBWUlaUmhsR0VNUVF4QkRFRU1RUXhCREVFTVFReEFpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNBQUFBQUFBQUFBQWFrQktNQ29vQ2lCcE9HazRTU2hKS0NrZ0tTQUpHQWtZYURCb01HZ3dhREJJSUVnZ1NDQklJQ2dZS0Jnb0dDZ1lDQkFJRUFnUUNCQm5LR2NvWnlobktHY29aeWhuS0djb1J4aEhHRWNZUnhoSEdFY1lSeGhIR0c1Z1RsZ3VVQTVRYmxoT1VDNUlEa2dOUUExQVRVaE5TQzFBTFVBTk9BMDRiVkJ0VUUxQVRVQXRPQzA0RFRBTk1HdElhMGhyU0d0SWEwaHJTR3RJYTBoTE9FczRTemhMT0VzNFN6aExPRXM0S3pBck1Dc3dLekFyTUNzd0t6QXJNQXNvQ3lnTEtBc29DeWdMS0Fzb0N5Z0FBQUFBTDJndmFCQ0FVSUF3Z0JCNGNJQlFlREI0RUhCd2VGQndNSEFRYUc5d2IzQlBhRTlvTDJBdllBOWdEMkJ2YUc5b1QyQlBZQzlZTDFnUFdBOVlBQUFBQUFBQUFBQm1PRVlnSmlBR0VHWXdSaGdtR0FZSVpTaGxLQ1VRSlJCa0lHUWdaQ0JrSUdRWVpCaGtHR1FZUXhCREVFTVFReEJERUVNUVF4QkRFQUFBQUFBQUFBQUFhVWhKT0NrNENUQUlLQWdvU0RCSU1DZ3dLREFJSUFnZ1owQm5RR2RBWjBCSEtFY29SeWhIS0Njb0p5Z25LQ2NvQnhnSEdBY1lCeGdBQUFBQWJYaHRlRzZBVG9BdWdBNkFMbmdPZUU1NExuQk5jRTF3RFhBTmNHMXdiWEJOYUUxb0xXZ3RhQTFvRFdodGFHMW9UV0JOWUMxZ0xXQU5ZQTFnREZnTVdBeFlERmhNV0V4WVRGaE1XQ3hZTEZnc1dDeFlERkFNVUF4UURGQnNZR3hnYkdCc1lFeFFURkJNVUV4UUxGQXNVQ3hRTEZBTVNBeElERWdNU0d0WWExaHJXR3RZYTFocldHdFlhMWhMU0V0SVMwaExTRXRJUzBoTFNFdElLMGdyU0N0SUswZ3JTQ3RJSzBnclNBdEFDMEFMUUF0QUMwQUxRQXRBQzBCclVHdFFhMUJyVUd0UWExQnJVR3RRUzBCTFFFdEFTMEJMUUV0QVMwQkxRQ3RBSzBBclFDdEFLMEFyUUN0QUswQUxPQXM0Q3pnTE9BczRDemdMT0FzNEFFSGdEUXV1Q1FZWVJqZ21PQVlRWmtoR01DWXdCZ2dsS0NVb1JTaEZLQ1VnSlNCRklFVWdKUmdsR0dWQVpVQkZHRVVZSlJBbEVHUTRaRGhrT0dRNFpEQmtNR1F3WkRCa0tHUW9aQ2hrS0dRZ1pDQmtJR1FnWkJoa0dHUVlaQmhFRUVRUVJCQkVFQ1FJSkFna0NDUUlCQUFFQUFRQUJBQUFBQXFBYW9CS2dDcUFDbmhxZUVwNEtuZ0tjR3B3U25BcWNBcG9LV2dwYUFsZ0NXQkphRWxvS1dBcFlBbFlDVmhwYUdsb1NXQkpZQ2xZS1ZnSlVBbFFhR0JvWUdoZ2FHQklXRWhZU0ZoSVdDaFFLRkFvVUNoUUNFZ0lTQWhJQ0Vob1dHaFlhRmhvV0VoUVNGQklVRWhRS0Vnb1NDaElLRWdJUUFoQUNFQUlRQWM0QnpnSE9BYzRCemdIT0FjNEJ6Z0hNQWN3QnpBSE1BY3dCekFITUFjd1IwaEhTRWRJUjBoSFNFZElSMGhIU0Fjb0J5Z0hLQWNvQnlnSEtBY29CeWhuVUdkUVoxQm5VR2RRWjFCblVHZFFSMEJIUUVkQVIwQkhRRWRBUjBCSFFDZEFKMEFuUUNkQUowQW5RQ2RBSjBBSElBY2dCeUFISUFjZ0J5QUhJQWNnQmdnbUNBQUFCZ0FHRUNZUVJoQUFBQVlZSmhoR0dHWVlCaUFtSUVZZ1ppQUdLQ1lvUmlobUtBWXdKakJHTUdZd0JqZ21PRVk0WmpnR1FDWkFSa0JtUUFaSUpraEdTR1pJQmxBbVVFWlFabEFHV0NaWVJsaG1XQVpnSm1CR1lHWmdCbWdtYUVab1ptZ0djQ1p3Um5CbWNBWjRKbmhHZUdaNEJvQW1nRWFBWm9BQUFFTVFBZ0FDQUNFSUlRZ2hDQ0VJWnlCbklFZ2dLQ0JIR0VjWUp4Z25HQVlnQmlBR0lBWWdCaGdHR0FZWUJoZ0dFQVlRQmhBR0VHWVlaaGhtR0dZWUpoQW1FQ1lRSmhBR0NBWUlCZ2dHQ0FBQVpWVkVSRFEwSXlNakl4TVRFeE1CQVFFQkFRRUJBUUVCQVFFQkFRRUJBUG5wMmNqSXVMaW5wNmVubDVlWGw0YUdob2FHaG9hR2RuWjJkbloyZG5ibTFzYTJwYVdWbFlTRWhJUjBkSFIwWkdSa1pGUlVWRlJEUTBORFEwTkRRek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEV3TURBd01EQXdNRDFyYkZ4YVdsbFpXRWhJU0VWRlJVVkVSRVJFUUVCQVFFYzNOemMzTnpjM05qWTJOalkyTmpZek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEU4VzFwUVdVbEhSME5EUWtKSU9EZzROalkyTmpVMU5UVTBORFEwTVRFeE1UdFpXa3BJU0VKQ1FVRkFRRWMzTnpjMk5qWTJOVFUxTlRRME5EUXpNek16T21CaFVWaElTRWhKT1RrNU9UazVPVGMzTnpjM056YzNOalkyTmpZMk5qWTFOVFUxTlRVMU5UUTBORFEwTkRRME16TXpNek16TXpNeU1qSXlNakl5TWpsZ1lWRlhSMGRIU0RnNE9EZzRPRGcyTmpZMk5qWTJOalEwTkRRME5EUTBNek16TXpNek16TXlNakl5TWpJeU1qVWxKU1VsSlNVbEpTVWxKU1VsSlNVb1lHSlNVVUZCUVVjM056YzNOemMzTmpZMk5qWTJOall6TXpNek16TXpNelVsSlNVbEpTVWxKU1VsSlNVbEpTVWtKQ1FrSkNRa0pDUWtKQ1FrSkNRa0lXQm5WMUpDUWtKRk5UVTFOVFUxTlRZbUppWW1KaVltSmlZbUppWW1KaVlrSkNRa0pDUWtKQ1FrSkNRa0pDUWtJeU1qSXlNakl5TWpJeU1qSXlNakl5RlFWa1pDTWpJeU5TVWxKU1VsSlNVa0pDUWtKQ1FrSkNNakl5TWpJeU1qSUVGQ01qTXpOVFUwRkJRVUZCUVVGQkJCUkRReUlpSWlJeE1URXhNVEV4TVFNVE1qSWhJU0VoQWhJaElSRUJJaElCQVRJaUVnSkRNeUlpRWhJQ0FsTkRNeU1TRWdJQ0V5TkRNMk5UQWdJQVFhQVhDeVFFQkFVR0J3Z0pDZ3dORHhFVUZoa2NJQ1FvTFRJNFAwZFFXbVZ4ZjVDaXRzdmkvLzhBUWVBWEN5UUNBZ0lEQXdNREJBUUVCZ1lIQndnSUNRa0tDZ3NMREF3TkRRNE9EdzhRRUJFUkVoSUFRY1VZQzRRQkFRQUFBUUFBQVFBQUFRQUJBUUFCQVFFQkFRRUJBUUVCQVFFQkFRRUJBZ0VCQWdFQkFnRUJBZ0VDQXdFQ0F3SUNBd0lDQkFJREJBSURCQU1EQlFNRUJnTUVCZ1FGQndRRkNBUUdDUVVIQ2dZSUN3WUlEUWNLRGdnTEVBa01FZ29ORkFzUEZ3MFJHUUFBQUFBQUFBQUFCUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVIVUdRc1ZCUUFBQUFBQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUVIMEdRc1ZCUUFBQUFRQUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVHVUdnc0ZCUUFBQUFRQVFhUWFDNlVCQndBQUFBUUFBQUFDQUFBQUJBQUFBQUVBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUFRQUFBQVFBQUFBREFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFCQUFBQUJBQUFBQVFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBRUFBQUFFQUFBQUJBQUFBQVFBQUFBREFBQUFCQUFBQUFZQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FFSFVHd3NWRFFBQUFBQUFBQUFQQUFBQS93QUFBQUFBQUFEL0FFSDBHd3NWRFFBQUFBUUFBQUFJQUFBQS93QUFBQUFBQUFEL0FFR1VIQXUxQ3cwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBSkFBQUFCQUFBQUFzQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQWtBQUFBRUFBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUNRQUFBQVFBQUFBTUFBQUFCQUFBQUFzQUFBQUVBQUFBRGdBQUFBRUFBQUFLQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBb0FBQUFFQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ2dBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUtBQUFBQVFBQUFBc0FBQUFFQUFBQUFBQUFBQVFBQUFBQkFBQUFBUUFBQUE0QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEZ0FBQUFRQUFBQUVBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQUVBQUFBT0FBQUFBUUFBQUE4QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFRQUFBQTRBQUFBQkFBQUFEd0FBQUFRQUFBQUVBQUFBQkFBQUFBVUFBQUFFQUFBQUFnQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFDQUFBQUJBQUFBQWdBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUVBQUFBQWdBQUFBUUFBQUFEQUFBQUJBQUFBQWdBQUFBRUFBQUFDUUFBQUFRQUFBQUdBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFZQUFBQUVBQUFBREFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFCZ0FBQUFRQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUFCQUFBQUFjQUFBQUVBQUFBREFBQUFBUUFBQUFOQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFCQUFBQURnQUFBUDhBQUFBRUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBRUFBQUFMQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFCQUFBQURnQUFBQVFBQUFBQkFBQUEvd0FBQUFRQUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFJQUFBQUtBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFBUUFBQUE4QUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEd0FBQUFJQUFBQUtBQUFBQkFBQUFBVUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQVlBQUFEL0FBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFBRUFBQUFDUUFBQVA4QUFBQU1BQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQWdBQUFQOEFBQUFJQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQUhBQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFjQUFBRC9BQUFBQWdBQUFBUUFBQUFOQUFBQS93QUFBQWdBQUFBREFBQUFEd0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQU1BQUFBUEFBQUFBQUFBQUFVQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUF3QUFBQThBQUFBQkFBQUFDZ0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFEQUFBQUR3QUFBQUVBQUFBS0FBQUFBQUFBQUFVQUFBQUVBQUFBQUFBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFFQUFBQUFRQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ3dBQUFBRUFBQUFPQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QkIxQ2NMRlFjQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QkI5Q2NMRlFjQUFBQUVBQUFBQWdBQUFQOEFBQUFBQUFBQS93QkJsQ2dMMlFFSEFBQUFCQUFBQUFJQUFBQUFBQUFBRFFBQUFBUUFBQUFJQUFBQUJBQUFBQU1BQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBSkFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBTUFBQUFFQUFBQUJnQUFBQVFBQUFBSkFBQUFCQUFBQUF3QUFBQUFBQUFBQkFBQUFBQUFBQUFFQUFBQUNBQUFBQXdBQUFBSUFBQUFEQUFBQUFBQUFBQUVBQUFBQUFBQUFBUUFBQUFJQUFBQURBQUFBQWdBQUFBTUFFSDRLUXNGQkFBQUFBUUFRWWdxQ3lVRUFBQUFCQUFBQUFnQUFBQUlBQUFBREFBQUFBd0FBQUFJQUFBQUNBQUFBQXdBQUFBTUFFR3hMZ3ZJQmdFQ0F3UUZCZ2NJQ1FvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEhoOGdJU0lqSkNVbUp5Z3BLaXNzTFM0dk1ERXlNelExTmpjNE9UbzdQRDArUDBCQlFrTkVSVVpIU0VsS1MweE5UazlRVVZKVFZGVldWMWhaV2x0Y1hWNWZZR0ZpWTJSbFptZG9hV3ByYkcxdWIzQnhjbk4wZFhaM2VIbDZlM3g5Zm4rQWdZS0RoSVdHaDRpSmlvdU1qWTZQa0pHU2s1U1ZscGVZbVpxYm5KMmVuNkNob3FPa3BhYW5xS21xcTZ5dHJxK3dzYkt6dExXMnQ3aTV1cnU4dmI2L3dNSEN3OFRGeHNmSXljckx6TTNPejlEUjB0UFUxZGJYMk5uYTI5emQzdC9nNGVMajVPWG01K2pwNnV2czdlN3Y4UEh5OC9UMTl2ZjQrZnI3L1AzKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUVBQUFBRUFBQUFCUUFBQUFJQUFBQURBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQXdBQUFBTkFBQUFDZ0FBQUFzQUFBQU9BQUFBRHdBQUFBQUFBQUFCQUFBQUFRQkJoRFVMSVFFQUFBQUJBQUFBQVFBQUFBRUFBQUFDQUFBQUFnQUFBQUVBQUFBQ0FBQUFBZ0JCdERVTEJRVUFBQUFFQUVIRU5RdkpCZ2NBQUFBRUFBQUFBZ0FBQUFRQUFBQUJBQUFBQkFBQUFBUUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUFBQUFBQUEwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQUFRQUFBQU1BQUFBQkFBQUFBc0FBQUFFQUFBQURnQUFBQUFBQUFBUkFBQUFCQUFBQUJBQUFBQUFBQUFBRXdBQUFBUUFBQUFTQUFBQUFBQUFBQlVBQUFBRUFBQUFGQUFBQUFBQUFBQVhBQUFBQkFBQUFCWUFBQUFCQUFBQUNnQUFBQUVBQUFBTEFBQUFCQUFBQUFBQUFBQUVBQUFBQVFBQUFBRUFBQUFPQUFBQUFRQUFBQThBQUFBRUFBQUFCQUFBQUFRQUFBQUZBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBQVFBQUFBSUFBQUFCQUFBQUFrQUFBQUVBQUFBQmdBQUFBUUFBQUFIQUFBQUJBQUFBQXdBQUFBRUFBQUFEUUFBQUFFQUFBQVNBQUFBQVFBQUFCTUFBQUFFQUFBQUVBQUFBQVFBQUFBUkFBQUFBUUFBQUJZQUFBQUJBQUFBRndBQUFBUUFBQUFVQUFBQUJBQUFBQlVBQUFBQkFBQUFDd0FBQUFFQUFBQU9BQUFBQkFBQUFBRUFBQUQvQUFBQUJBQUFBQUVBQUFBUEFBQUFBZ0FBQUFvQUFBQUVBQUFBQlFBQUFQOEFBQUFBQUFBQUJBQUFBQU1BQUFBRUFBQUFCZ0FBQUFRQUFBQUpBQUFBL3dBQUFBd0FBQUFFQUFBQUJ3QUFBUDhBQUFBQ0FBQUFCQUFBQUEwQUFBRC9BQUFBQ0FBQUFBRUFBQUFUQUFBQUFnQUFBQklBQUFBRUFBQUFFUUFBQVA4QUFBQVFBQUFBQVFBQUFCY0FBQUFDQUFBQUZnQUFBQVFBQUFBVkFBQUEvd0FBQUJRQUFBQURBQUFBRHdBQUFBRUFBQUFLQUFBQUFBQUFBQVVBQUFBRUFBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBQUVBQUFBQWdBQUFBQUFBQUFOQUFBQUJBQUFBQWdBQUFBRUFBQUFBd0FBQUFRQUFBQUdBQUFBQkFBQUFBa0FBQUFFQUFBQURBQUFBQU1BQUFBVEFBQUFBUUFBQUJJQUFBQUFBQUFBRVFBQUFBUUFBQUFRQUFBQUF3QUFBQmNBQUFBQkFBQUFGZ0FBQUFBQUFBQVZBQUFBQkFBQUFCUUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQURBQUFBQXdBQUFBQUFBQUFCQUFBQUFnQUFBQU1BQUFBRUFBQUFCUUFBQUFZQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QVFaWThDeTRCQVFFQkFRRUNBZ0lDQWdJREF3TURBd01FQkFRRUJBUUZCUVVGQlFVR0JnWUdCZ1lIQndjSEJ3Y0lDQWdJQUVIUVBBdEZDZ0FBQUEwQUFBQVFBQUFBQ3dBQUFBNEFBQUFTQUFBQURRQUFBQkFBQUFBVUFBQUFEZ0FBQUJJQUFBQVhBQUFBRUFBQUFCUUFBQUFaQUFBQUVnQUFBQmNBQUFBZEFFR2hQUXN6QVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURBRUhrUFF2TUFnRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhRQUFBQjRBQUFBZkFBQUFJQUFBQUNBQUFBQWhBQUFBSWdBQUFDSUFBQUFqQUFBQUl3QUFBQ1FBQUFBa0FBQUFKUUFBQUNVQUFBQWxBQUFBSmdBQUFDWUFBQUFtQUFBQUp3QUFBQ2NBQUFBbkFBQUFKd0FBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFMeDhQQUJjYkhSNEhDdzBPSnlzdExoQURCUW9NRXhVYUhDTWxLaXdCQWdRSUVSSVVHQVlKRmhrZ0lTSWtLQ1lwQUJBQkFnUUlJQU1GQ2d3UEx3Y0xEUTRHQ1I4akpTb3NJU0lrS0NjckxTNFJFaFFZRXhVYUhCY2JIUjRXR1NZcEFMQXRCRzVoYldVQjZ3TmtBQVp0WlcxamNIa0JCbkpsYzJsNlpRSUNaaklEQW1ZekJBRm1CUUptTlFZQ1pqWUhBbVkzQ0FKbU9Ba0NaamtLQVdVTEEyWXhNUXdEWmpFeURRTm1NVE1PQTJZeE5BOERaakUxRUFObU1UWVJBMll4TnhJRFpqRTRFd05tTVRrVUEyWXlNQlVEWmpJeEZnTm1NaklYQTJZeU14Z0RaakkwR1FObU1qVWFBMll5TmhzRFpqSTNIQU5tTWpnZEEyWXlPUjREWmpNd0h3Tm1NekVnQTJZek1pRURaak16SWdObU16UWpBMll6TlNRRFpqTTJKUU5tTXpjbUEyWXpPQ2NEWmpNNUtBTm1OREFwQTJZME1Tb0RaalF5S3dObU5ETXNBMlkwTkMwRFpqUTFMZ05tTkRZdkEyWTBOekFEWmpRNE1RTm1ORGt5QTJZMU1ETURaalV4TkFObU5USTFBMlkxTXpZRFpqVTBOd05tTlRVNEEyWTFOamtEWmpVM09nTm1OVGc3QTJZMU9Ud0Raall3UFFObU5qRStBMlkyTWo4RFpqWXpRQU5tTmpSQkEyWTJOVUlEWmpZMlF3Tm1OamRFQTJZMk9FVURaalk1UmdObU56QkhBMlkzTVVnRFpqY3lTUU5tTnpOS0EyWTNORXNEWmpjMVRBTm1OelpOQTJZM04wNERaamM0VHdObU56bFFBMlk0TUZFRFpqZ3hVZ05tT0RKVEEyWTRNMVFEWmpnMFZRTm1PRFZXQTJZNE5sY0RaamczV0FObU9EaFpBMlk0T1ZvRFpqa3dXd05tT1RGY0EyWTVNbDBEWmprelhnTm1PVFJmQTJZNU5XQUJhV0VCWjJJQlpHTUVaakV3TVFLNktXUUFBd0FBQVFBQ0FBRUJBQUFDQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1EQ1FBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FRSUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNGQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1HR0FBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFV0Eyd3lNaGNEYkRJekJ3WUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVSUJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlFrUUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlFvTUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVMQXdBQ2NEQUJBbkF4QWdKc01nd1JBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRFFZQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05BVUNiRFVPRUFBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVQQlFBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEVBc0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQVJBZ0FDY0RBQkFuQXhFZzhBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkJNREFBSndNQUVDYkRFQ0Ftd3lGQU1BQW5Bd0FRSndNUUlDYkRJVkJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlJZbUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2NEUUZBbkExQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlJBRGJERTJFUU5zTVRjU0Eyd3hPQk1EYkRFNUZBTnNNakFWQTJ3eU1SWURiREl5RndOc01qTVlBMnd5TkJrRGJESTFHZ05zTWpZYkEyd3lOeHdEYkRJNEhRTnNNamtlQTJ3ek1COERiRE14SUFOc016SWhBMnd6TXlJRGJETTBJd05zTXpVa0Eyd3pOaVVEYkRNM0Z3TUFBbkF3QVFKd01RSUNjRElZRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFWkVnQUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0doWUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhHd1lBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVWNCd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlkQlFBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEhnVUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQjhCQUFKd01DQUVBQUp3TUFFQ2NERUNBbXd5QXdKc015RWJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVGQU5zTWpBVkEyd3lNUllEYkRJeUZ3TnNNak1ZQTJ3eU5Ca0RiREkxR2dOc01qWWlGUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0l4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE55UVVBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVKUThBQW5Bd0FRSndNUUlDY0RJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNZREFBSndNQUVDYkRFQ0Ftd3lKdzhBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNnQ0FBSndNQUVDYkRFcEVRQUNjREFCQW5BeEFnSndNZ01DY0RNRUFuQTBCUUp3TlFZQ2NEWUhBbkEzQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaW9IQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmlzUEFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUXNCQUFDY0RBQkFuQXhBZ0pzTWdNQ2JETXRCUUFDY0RBQkFuQXhBZ0p3TWdNQ2JETUVBbXcwTGdNQUFuQXdBUUpzTVFJQ2JESXZBd0FDY0RBQkFtd3hBZ0pzTWpBSkFBSndNQUVDY0RFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NE1SWUFBbkF3QVFKd01RSUNiRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhNZ29BQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NU13UUFBbkF3QVFKc01RSUNiRElEQW13ek5BUUFBbkF3QVFKc01RSUNiRElEQW13ek5ROEFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hORFlGQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRM0JRQUNjREFCQW5BeEFnSnNNZ01DYkRNRUFtdzBPQWNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyT1FjQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNiRFVHQW13Mk9nY0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJPd2NBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyUEFVQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05EMEZBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFErRHdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMFB4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE4wQUhBQUp3TUFFQ2NERUNBbXd5QXdKc013UUNiRFFGQW13MUJnSnNOa0VRQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVUlKQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0UXdnQUFuQXdBUUp3TVFJQ2JESURBbXd6QkFKc05BVUNiRFVHQW13MkJ3SnNOMFFRQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVVVUQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0p3TmdjQ2NEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9FWVJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFtdzRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyUnhNQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW5BMkJ3SndOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRTQmNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NjRGdKQW5BNUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkE4RGJERTFFQU5zTVRZUkEyd3hOeElEYkRFNEV3TnNNVGtVQTJ3eU1CVURiREl4RmdOc01qSkpRd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0ZRTnNNakVXQTJ3eU1oY0RiREl6R0FOc01qUVpBMnd5TlJvRGJESTJHd05zTWpjY0Eyd3lPQjBEYkRJNUhnTnNNekFmQTJ3ek1TQURiRE15SVFOc016TWlBMnd6TkNNRGJETTFKQU5zTXpZbEEyd3pOeVlEYkRNNEp3TnNNemtvQTJ3ME1Da0RiRFF4S2dOc05ESXJBMncwTXl3RGJEUTBMUU5zTkRVdUEydzBOaThEYkRRM01BTnNORGd4QTJ3ME9USURiRFV3TXdOc05URTBBMncxTWpVRGJEVXpOZ05zTlRRM0EydzFOVGdEYkRVMk9RTnNOVGM2QTJ3MU9Ec0RiRFU1UEFOc05qQTlBMncyTVQ0RGJEWXlQd05zTmpOQUEydzJORUVEYkRZMVFnTnNOalpLRXdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UaExGQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPVXdIQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmswTkFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1rNExBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFFGQW13MUJnSnNOZ2NDYkRjSUFtdzRDUUpzT1FvRGJERXdUd1FBQW5Bd0FRSndNUUlDYkRJREFtd3pVQTRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTlJEQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeFVoTUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0VXlBQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW13MkJ3SnNOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRFd05zTVRrVUEyd3lNQlVEYkRJeEZnTnNNaklYQTJ3eU14Z0RiREkwR1FOc01qVWFBMnd5TmhzRGJESTNIQU5zTWpnZEEyd3lPUjREYkRNd0h3TnNNekZVRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpGVkN3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1GWUhBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSnNObGNxQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9CTURiREU1RkFOc01qQVZBMnd5TVJZRGJESXlGd05zTWpNWUEyd3lOQmtEYkRJMUdnTnNNalliQTJ3eU54d0RiREk0SFFOc01qa2VBMnd6TUI4RGJETXhJQU5zTXpJaEEyd3pNeUlEYkRNMEl3TnNNelVrQTJ3ek5pVURiRE0zSmdOc016Z25BMnd6T1NnRGJEUXdLUU5zTkRGWUV3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0VnTnNNVGhaQ0FBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNXZzRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTmJCQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETmNDUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNiRFlIQW13M0NBSnNPRjBJQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEZGVDQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M1h3d0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVdBQVlRZ0FBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FtdzJCd0pzTjJJREFBSndNQUVDY0RFQ0Ftd3lZdzBBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5IixVPWE7Ri5oMjY0TW9kdWxlPW5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoVS5kZWNvZGUoTCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBZPUYscT1BPT4oSSxnLEIpPT57QS5IRUFQVTguY29weVdpdGhpbihJLGcsZytCKX07ZnVuY3Rpb24gSyhBLEkpe2NvbnN0IGc9QSVJO3JldHVybiBnPjA/QStJLWc6QX1jb25zdCBIPUE9Pkk9Pntjb25zdCBnPUEuSEVBUFU4Lmxlbmd0aCxCPTY1NTM2LFE9MjE0NzQ4MzY0ODtpZihJPlEpcmV0dXJuITE7Y29uc3QgQz0xNjc3NzIxNjtmb3IobGV0IEQ9MTtEPD00O0QqPTIpe2xldCBFPWcqKDErLjIvRCk7RT1NYXRoLm1pbihFLEkrMTAwNjYzMjk2KTtjb25zdCB3PU1hdGgubWluKFEsSyhNYXRoLm1heChDLEksRSksQikpO3RyeXtjb25zdHttZW1vcnk6b309QTtvLmdyb3cody1vLmJ1ZmZlci5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpO2NvbnN0e2J1ZmZlcjpOfT1vO3JldHVybiBBLkhFQVA4PW5ldyBJbnQ4QXJyYXkoTiksQS5IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoTiksQS5IRUFQMzI9bmV3IEludDMyQXJyYXkoTiksITB9Y2F0Y2h7fX1yZXR1cm4hMX0sUj02NTUzNixjPTUyNTE3OTIsZD04NzUyLHQ9MTY3NzcyMTY7Y2xhc3MgaXtjb25zdHJ1Y3Rvcigpe3RoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLHRoaXMucGljPW5ldyBVaW50OEFycmF5KDApO2NvbnN0IEk9bmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7aW5pdGlhbDp0L1IsbWF4aW11bToyMTQ3NDgzNjQ4L1J9KSxnPXttZW1vcnk6SSxIRUFQODpuZXcgSW50OEFycmF5KEkuYnVmZmVyKSxIRUFQVTg6bmV3IFVpbnQ4QXJyYXkoSS5idWZmZXIpLEhFQVAzMjpuZXcgSW50MzJBcnJheShJLmJ1ZmZlcil9O2cuSEVBUDMyW2Q+PjJdPWM7Y29uc3R7ZXhwb3J0czpCfT1uZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UoWS5oMjY0TW9kdWxlLHtoMjY0OnttZW1vcnk6SSxtZW1jcHk6cShnKSxyZXNpemU6SChnKX19KTt0aGlzLm1lbW9yeT1nLHRoaXMuYXNtPUIsdGhpcy5wU3RvcmFnZT1CLmgyNjRhbGxvYygpLHRoaXMucFdpZHRoPUIubWFsbG9jKDQpLHRoaXMucEhlaWdodD1CLm1hbGxvYyg0KSx0aGlzLnBQaWN0dXJlPUIubWFsbG9jKDQpLHRoaXMuZGVjQnVmZmVyPUIubWFsbG9jKDEwMjQqMTAyNCksQi5pbml0KHRoaXMucFN0b3JhZ2UsMCl9ZGVjb2RlKEkpe2NvbnN0e21lbW9yeTpnLGFzbTpCfT10aGlzO2cuSEVBUFU4LnNldChJLHRoaXMuZGVjQnVmZmVyKTtjb25zdCBRPUIuZGVjb2RlKHRoaXMucFN0b3JhZ2UsdGhpcy5kZWNCdWZmZXIsSS5ieXRlTGVuZ3RoLHRoaXMucFBpY3R1cmUsdGhpcy5wV2lkdGgsdGhpcy5wSGVpZ2h0KTtpZihRPT09aS5QSUNfUkRZKXtjb25zdCBDPXRoaXMud2lkdGg9Zy5IRUFQMzJbdGhpcy5wV2lkdGg+Pj4yXSxEPXRoaXMuaGVpZ2h0PWcuSEVBUDMyW3RoaXMucEhlaWdodD4+PjJdLEU9Zy5IRUFQMzJbdGhpcy5wUGljdHVyZT4+Ml0sdz1DKkQqMy8yO3RoaXMucGljPWcuSEVBUFU4LnN1YmFycmF5KEUsRSt3KX1yZXR1cm4gUX19dmFyIGI9eS5IMjY0RGVjb2Rlcj1pO2kuUkRZPTAsaS5QSUNfUkRZPTEsaS5IRFJTX1JEWT0yLGkuRVJST1I9MyxpLlBBUkFNX1NFVF9FUlJPUj00LGkuTUVNQUxMT0NfRVJST1I9NTtmdW5jdGlvbiB4KEEpe3JldHVybiBVaW50OEFycmF5LmZyb20oYXRvYihBKSxJPT5JLmNoYXJDb2RlQXQoMCkpfWNvbnN0IHM9c2VsZixrPW5ldyBiLG09Si5zZWNvbmQvNTthZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixBPT57Y29uc3R7dGltZXN0YW1wOkksZmxhZ3M6ZyxpbmRleDpCfT1BLmRhdGEsUT1EYXRlLm5vdygpLUk7aWYoUT5tJiZnIT09Myl7TShgRnJhbWUgaXMgJHtRfW1zIGxhdGUsIGRyb3BwaW5nYCxCKTtyZXR1cm59Y29uc3QgQz14KEEuZGF0YS5lbmNvZGVkRnJhbWUpLEQ9ay5kZWNvZGUoQyk7dHJ5e2lmKEQhPT0xKXtNKGBmYWlsZWQgdG8gZGVjb2RlIGZyYW1lLCBzdGF0dXM6ICR7bihEKX1gLEIsQyk7cmV0dXJufWNvbnN0e3BpYzpFLGhlaWdodDp3LHdpZHRoOm99PWs7aWYoRS5sZW5ndGg9PT0wfHx3PT09MHx8bz09PTApe00oImRlY29kZWQgZnJhbWUgaGFzIG5vIGRhdGEiLEIsQyk7cmV0dXJufWNvbnN0IE49bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KEUpO3MucG9zdE1lc3NhZ2Uoe3RpbWVzdGFtcDpBLmRhdGEudGltZXN0YW1wLHl1djpOLGhlaWdodDp3LHdpZHRoOm8saW5kZXg6Qn0pfWNhdGNoKEUpe00oRSxCKX19KTtmdW5jdGlvbiBNKEEsSSxnKXtzLnBvc3RNZXNzYWdlKHtlcnJvcjpgaDI2NCBkZWNvZGVyIHdvcmtlcjogJHtBfWAsaW5kZXg6SX0pfWZ1bmN0aW9uIG4oQSl7c3dpdGNoKEEpe2Nhc2UgMDpyZXR1cm4iUkRZIjtjYXNlIDE6cmV0dXJuIlBJQ19SRFkiO2Nhc2UgMjpyZXR1cm4iSERSU19SRFkiO2Nhc2UgMzpyZXR1cm4iRVJST1IiO2Nhc2UgNDpyZXR1cm4iUEFSQU1fU0VUX0VSUk9SIjtjYXNlIDU6cmV0dXJuIk1FTUFMTE9DX0VSUk9SIjtkZWZhdWx0OnJldHVybiBBLnRvU3RyaW5nKCl9fX0pfSkoKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9dWktc2RrLXJlYWx0aW1lLXBsYXllci1jb3JlLXdvcmtlci51bWQtNjhhNmUxNmEuanMubWFwCg==",blob$2=typeof window<"u"&&window.Blob&&new Blob([atob(encodedJs$2)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$2(){let s;try{if(s=blob$2&&(window.URL||window.webkitURL).createObjectURL(blob$2),!s)throw"";return new Worker(s)}catch{return new Worker("data:application/javascript;base64,"+encodedJs$2)}finally{s&&(window.URL||window.webkitURL).revokeObjectURL(s)}}const millisecond$3=1,second$3=1e3,minute$3=60*second$3,hour$3=60*minute$3,day$3=24*hour$3,week$3=7*day$3,month$3=30*day$3,year$3=365*day$3,duration$3={millisecond:millisecond$3,second:second$3,minute:minute$3,hour:hour$3,day:day$3,week:week$3,month:month$3,year:year$3};function filterDataByTime(s,o,et){const tt=o.getTime(),nt=et.getTime();return s.map(rt=>({...rt,points:rt.points.filter(([it])=>it>=tt&&itrt.length>0)}function filterDataByType(s,o){return s.filter(et=>et.type===o)}class StoreCache{constructor({capacity:o,timeout:et}={}){he(this,"entries",new Map),he(this,"metadata",new Map),he(this,"capacity"),he(this,"timeout"),this.capacity=o||1e4,this.timeout=et||duration$3.minute}get(o,et){const tt=this.keyToCacheKey(o),nt=this.entries.get(tt),rt=this.metadata.get(tt);return(nt===void 0||rt&&rt?.expiration.getTime()this.capacity&&this.deleteOldestEntry()}clear(){this.entries.clear(),[...this.metadata.values()].forEach(o=>o.generating=!1)}clearKey(o){this.metadata.delete(o),this.entries.delete(o)}keyToCacheKey(o){return JSON.stringify(o)}deleteOldestEntry(){if(this.metadata.size<1)return;const[o]=[...this.metadata.entries()].reduce(([et,tt],[nt,rt])=>rt.expiration.getTime(){et.then(rt=>{const it=this.metadata.get(tt);!(it!=null&&it.generating)||this.set(o,rt)})},0)}}function roundToNearestSecond(s){return new Date(Math.round(s.getTime()/1e3)*1e3)}class QueryStore{constructor(){he(this,"queryStoreCache",new StoreCache({capacity:1e4,timeout:20*duration$3.second})),he(this,"liveQueryStoreCache",new StoreCache({capacity:1e4,timeout:1*duration$3.second}))}moduleQuery(o,et,tt,nt,rt,it=!1){const ot={...o,names:[et],types:[tt],start:nt.toISOString(),end:rt.toISOString(),latestOnly:it},st=this.query(ot);return st===void 0||st==="too much data"?st:filterDataByType(st,tt)}query(o){const et=new Date(o.end)>addSeconds(new Date,-20),tt=startOfMinute(new Date(o.start)).toISOString(),nt=o.latestOnly?addSeconds(roundToNearestSecond(new Date(o.end)),5).toISOString():addMinutes(roundToNearestMinutes(new Date(o.end)),1).toISOString();let rt;return et?rt=this.liveQueryCache({...o,start:tt,end:nt}):rt=this.queryCache({...o,start:tt,end:nt}),!rt||rt==="too much data"||o.latestOnly?rt:filterDataByTime(rt,new Date(tt),new Date(nt))}queryCache(o){return this.queryStoreCache.get(o,async()=>{try{return await Fleet.queryTelemetry(o)}catch(et){throw et}})}liveQueryCache(o){return this.liveQueryStoreCache.get(o,async()=>{try{return await Fleet.queryTelemetry(o)}catch(et){throw et}})}}const encodedJs$1="dmFyIFI9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBHPShNLGIseCk9PmIgaW4gTT9SKE0sYix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6eH0pOk1bYl09eDt2YXIgST0oTSxiLHgpPT4oRyhNLHR5cGVvZiBiIT0ic3ltYm9sIj9iKyIiOmIseCkseCk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IFM9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07ZnVuY3Rpb24gcShvKXt9Y2xhc3MgX3tjb25zdHJ1Y3Rvcih7Y2FwYWNpdHk6dCx0aW1lb3V0Om59PXt9KXtJKHRoaXMsImVudHJpZXMiLG5ldyBNYXApO0kodGhpcywibWV0YWRhdGEiLG5ldyBNYXApO0kodGhpcywiY2FwYWNpdHkiKTtJKHRoaXMsInRpbWVvdXQiKTt0aGlzLmNhcGFjaXR5PXR8fDFlNCx0aGlzLnRpbWVvdXQ9bnx8Uy5taW51dGV9Z2V0KHQsbil7Y29uc3QgZT10aGlzLmtleVRvQ2FjaGVLZXkodCksYz10aGlzLmVudHJpZXMuZ2V0KGUpLGk9dGhpcy5tZXRhZGF0YS5nZXQoZSk7cmV0dXJuKGM9PT12b2lkIDB8fGkmJihpPT1udWxsP3ZvaWQgMDppLmV4cGlyYXRpb24uZ2V0VGltZSgpKTxEYXRlLm5vdygpKSYmIShpIT1udWxsJiZpLmdlbmVyYXRpbmcpJiZuJiZ0aGlzLmdlbmVyYXRlKHQsbigpKSxjPT09dm9pZCAwJiZpJiZpLmxhc3RWYWx1ZSE9PXZvaWQgMD9pLmxhc3RWYWx1ZTpjfXNldCh0LG4pe2NvbnN0IGU9dGhpcy5rZXlUb0NhY2hlS2V5KHQpO3RoaXMubWV0YWRhdGEuc2V0KGUse2dlbmVyYXRpbmc6ITEsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCksbGFzdFZhbHVlOm59KSx0aGlzLmVudHJpZXMuc2V0KGUsbiksdGhpcy5tZXRhZGF0YS5zaXplPnRoaXMuY2FwYWNpdHkmJnRoaXMuZGVsZXRlT2xkZXN0RW50cnkoKX1jbGVhcigpe3RoaXMuZW50cmllcy5jbGVhcigpLFsuLi50aGlzLm1ldGFkYXRhLnZhbHVlcygpXS5mb3JFYWNoKHQ9PnQuZ2VuZXJhdGluZz0hMSl9Y2xlYXJLZXkodCl7dGhpcy5tZXRhZGF0YS5kZWxldGUodCksdGhpcy5lbnRyaWVzLmRlbGV0ZSh0KX1rZXlUb0NhY2hlS2V5KHQpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1kZWxldGVPbGRlc3RFbnRyeSgpe2lmKHRoaXMubWV0YWRhdGEuc2l6ZTwxKXJldHVybjtjb25zdFt0XT1bLi4udGhpcy5tZXRhZGF0YS5lbnRyaWVzKCldLnJlZHVjZSgoW24sZV0sW2MsaV0pPT5pLmV4cGlyYXRpb24uZ2V0VGltZSgpPGUuZXhwaXJhdGlvbi5nZXRUaW1lKCk/W2MsaV06W24sZV0pO3RoaXMuY2xlYXJLZXkodCl9Z2VuZXJhdGUodCxuKXtjb25zdCBlPXRoaXMua2V5VG9DYWNoZUtleSh0KSxjPXRoaXMubWV0YWRhdGEuZ2V0KGUpfHx7fTt0aGlzLm1ldGFkYXRhLnNldChlLHsuLi5jLGdlbmVyYXRpbmc6ITAsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCl9KSxzZXRUaW1lb3V0KCgpPT57bi50aGVuKGk9Pntjb25zdCByPXRoaXMubWV0YWRhdGEuZ2V0KGUpOyEociE9bnVsbCYmci5nZW5lcmF0aW5nKXx8dGhpcy5zZXQodCxpKX0pfSwwKX19LyoqCiAqIExaRiBjb21wcmVzc2lvbi9kZWNvbXByZXNzaW9uIG1vZHVsZS4gUG9ydGVkIGZyb20gdGhlIEMKICogaW1wbGVtZW50YXRpb24gb2YgbGlibHpmLCBzcGVjZmljYWxseSBsemZfYy5jIGFuZCBsemZfZC5jCiAqIEBsaWNlbnNlIEJTRC0yLUNsYXVzZQogKi9mdW5jdGlvbiBLKG8pe3ZhciB0PW5ldyBVaW50OEFycmF5KG8pLG49W10sZT0wLGM9MDtkb3t2YXIgaT10W2UrK107aWYoaTwxPDw1KXtpZihpKyssZStpPnQubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBpbnB1dCIpO2Zvcig7aS0tOyluW2MrK109dFtlKytdfWVsc2V7dmFyIHI9aT4+NSxmPWMtKChpJjMxKTw8OCktMTtpZihlPj10Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgaW5wdXQiKTtpZihyPT03JiYocis9dFtlKytdLGU+PXQubGVuZ3RoKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgaW5wdXQiKTtpZihmLT10W2UrK10sZjwwKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBpbnB1dCIpO3IrPTI7ZG8gbltjKytdPW5bZisrXTt3aGlsZSgtLXIpfX13aGlsZShlPHQubGVuZ3RoKTtpZih0eXBlb2YgQnVmZmVyIT0idW5kZWZpbmVkIilyZXR1cm4gbmV3IEJ1ZmZlcihuKTt2YXIgdT1uZXcgVWludDhBcnJheShuLmxlbmd0aCk7cmV0dXJuIHUuc2V0KG4pLHV9ZnVuY3Rpb24gTyhvKXt2YXIgdD0xNixuPTE8PHQsZT0xPDwxMyxjPSgxPDw4KSsoMTw8MyksaT0xPDw1O2Z1bmN0aW9uIHIodixUKXtyZXR1cm4gdltUXTw8OHx2W1QrMV19ZnVuY3Rpb24gZih2LFQsUCl7cmV0dXJuIHY8PDh8VFtQKzJdfWZ1bmN0aW9uIHUodil7cmV0dXJuIHYqNTA2ODMyODI5Pj4zMi10LTgmbi0xfWZvcih2YXIgcz1uZXcgVWludDhBcnJheShvKSxhPVtdLGQ9bmV3IFVpbnQzMkFycmF5KG4pLHk9cy5sZW5ndGgsaD0wLGc9cihzLGgpLHA9MSxsPTA7aDx5LTI7KXtnPWYoZyxvLGgpO3ZhciB6PXUoZyksbT1kW3pdO2Rbel09aDt2YXIgRTtpZihtPGgmJihFPWgtbS0xKTxlJiZtPjAmJnNbbSsyXT09c1toKzJdJiZzW20rMV09PXNbaCsxXSYmc1ttXT09c1toXSl7dmFyIHc9MixGPXktaC13O0Y9Rj5jP2M6RixhW3AtbC0xXT1sLTEmMjU1LGw9PTAmJihwLT0xKTtkbyB3Kys7d2hpbGUodzxGJiZzW20rd109PXNbaCt3XSk7aWYody09MixoKyssdzw3P2FbcCsrXT0oRT4+OCkrKHc8PDUpJjI1NTooYVtwKytdPShFPj44KSsoNzw8NSkmMjU1LGFbcCsrXT13LTcmMjU1KSxhW3ArK109RSYyNTUsbD0wLHArKyxoKz13KzEsaD49eS0yKWJyZWFrOy0taCwtLWgsZz1yKHMsaCksZz1mKGcscyxoKSxkW3UoZyldPWgrKyxnPWYoZyxzLGgpLGRbdShnKV09aCsrfWVsc2UgbCsrLGFbcCsrXT1zW2grK10sbD09aSYmKGFbcC1sLTFdPWwtMSYyNTUsbD0wLHArKyl9Zm9yKDtoPHk7KWwrKyxhW3ArK109c1toKytdLGw9PWkmJihhW3AtbC0xXT1sLTEmMjU1LGw9MCxwKyspO2lmKGwhPTAmJihhW3AtbC0xXT1sLTEmMjU1KSx0eXBlb2YgQnVmZmVyIT0idW5kZWZpbmVkIilyZXR1cm4gbmV3IEJ1ZmZlcihhKTt2YXIgVT1uZXcgVWludDhBcnJheShhLmxlbmd0aCk7cmV0dXJuIFUuc2V0KGEpLFV9dmFyIEI9e2RlY29tcHJlc3M6Syxjb21wcmVzczpPfTtjb25zdCBDPShvLHQpPT50PD1vP1tdOm5ldyBBcnJheSh0LW8pLmZpbGwoMCkubWFwKChuLGUpPT5lK28pLEE9ITA7ZnVuY3Rpb24gSChvKXtjb25zdCB0PWF0b2Iobyksbj10Lmxlbmd0aCxlPW5ldyBVaW50OEFycmF5KG4pO2ZvcihsZXQgYz0wO2M8bjtjKz0xKWVbY109dC5jaGFyQ29kZUF0KGMpO3JldHVybiBlLmJ1ZmZlcn1mdW5jdGlvbiBMKG8pe2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkobyk7bGV0IG49IiIsZT0wO2Zvcig7ZTx0Lmxlbmd0aCYmbi5zZWFyY2goL1tcclxuXURBVEFccyhcUyopXHMvaSk9PT0tMTtlKz0xKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUodFtlXSk7cmV0dXJue2JvZHk6by5zbGljZShlKSxoZWFkZXI6bi5yZXBsYWNlKC8jLiovZ2ksIiIpfX1mdW5jdGlvbiBWKG8pe2NvbnN0IG49bmV3IFVpbnQzMkFycmF5KG8sMCwyKVswXTtyZXR1cm4gbj09PTA/bmV3IEFycmF5QnVmZmVyKDApOkIuZGVjb21wcmVzcyhuZXcgVWludDhBcnJheShvLDgsbikpLmJ1ZmZlcn1mdW5jdGlvbiBrKG8pe2NvbnN0e2hlYWRlcjp0LGJvZHk6bn09TChvKSxlPS9WRVJTSU9OICguKikvaS5leGVjKHQpO2lmKGU9PT1udWxsKXRocm93IG5ldyBFcnJvcihgTWlzc2luZyB2ZXJzaW9uLiBIZWFkZXIgJHt0fWApO2NvbnN0IGM9ZVsxXSxpPS9GSUVMRFMgKC4qKS9pLmV4ZWModCk7aWYoIWkpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIGZpZWxkcyIpO2NvbnN0IHI9aVsxXS5zcGxpdCgiICIpLGY9L1NJWkUgKC4qKS9pLmV4ZWModCk7aWYoIWYpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHNpemUiKTtjb25zdCB1PWZbMV0uc3BsaXQoIiAiKS5tYXAodj0+cGFyc2VJbnQodiwxMCkpLHM9L1RZUEUgKC4qKS9pLmV4ZWModCk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHR5cGUiKTtjb25zdCBhPXNbMV0uc3BsaXQoIiAiKSxkPS9DT1VOVCAoLiopL2kuZXhlYyh0KTtsZXQgeTtkJiYoeT1kWzFdLnNwbGl0KCIgIikubWFwKHY9PnBhcnNlSW50KHYsMTApKSk7Y29uc3QgaD15fHxyLm1hcCh2PT4xKSxnPS9XSURUSCAoLiopL2kuZXhlYyh0KTtpZighZyl0aHJvdyBuZXcgRXJyb3IoIk1pc3Npbmcgd2lkdGgiKTtjb25zdCBwPXBhcnNlSW50KGdbMV0sMTApLGw9L0hFSUdIVCAoLiopL2kuZXhlYyh0KTtpZighbCl0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgaGVpZ2h0Iik7Y29uc3Qgej1wYXJzZUludChsWzFdLDEwKSxtPS9QT0lOVFMgKC4qKS9pLmV4ZWModCk7bGV0IEU7bSYmKEU9cGFyc2VJbnQobVsxXSwxMCkpO2NvbnN0IHc9RXx8cCp6LEY9L0RBVEEgKC4qKS9pLmV4ZWModCk7aWYoIUYpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIGRhdGEiKTtjb25zdCBVPUZbMV07cmV0dXJue2JvZHk6bixoZWFkZXI6e2NvdW50OmgsZGF0YTpVLGZpZWxkczpyLGhlaWdodDp6LHBvaW50czp3LHNpemU6dSx0eXBlOmEsdmVyc2lvbjpjLHdpZHRoOnB9fX1mdW5jdGlvbiBOKG8pe2NvbnN0IHQ9e307cmV0dXJuIG8uZmllbGRzLnJlZHVjZSgoe29mZnNldHM6bixzaXplOmV9LGMsaSk9PntsZXQgcj1lO3JldHVybiBjPT09IngiJiYobi54PXIpLGM9PT0ieSImJihuLnk9ciksYz09PSJ6IiYmKG4uej1yKSxjPT09InJnYiImJihuLnJnYj1yKSxjPT09InJnYmEiJiYobi5yZ2JhPXIpLGM9PT0iaW50ZW5zaXR5IiYmKG4uaW50ZW5zaXR5PXIpLG8uZGF0YT09PSJhc2NpaSI/cis9MTpvLmRhdGE9PT0iYmluYXJ5Ij9yKz1vLnNpemVbaV0qby5jb3VudFtpXTpvLmRhdGE9PT0iYmluYXJ5X2NvbXByZXNzZWQiJiYocis9by5zaXplW2ldKm8uY291bnRbaV0qby5wb2ludHMpLHtvZmZzZXRzOm4sc2l6ZTpyfX0se29mZnNldHM6dCxzaXplOjB9KX1mdW5jdGlvbiBEKG8pe2NvbnN0e2hlYWRlcjp0LGJvZHk6bn09ayhvKSx7b2Zmc2V0czplLHNpemU6Y309Tih0KTtsZXQgaTtlLnghPT12b2lkIDAmJmUueSE9PXZvaWQgMCYmZS56IT09dm9pZCAwJiYoaT1uZXcgRmxvYXQzMkFycmF5KHQucG9pbnRzKjMpKTtsZXQgcjsoZS5yZ2IhPT12b2lkIDB8fGUucmdiYSE9PXZvaWQgMCkmJihyPW5ldyBGbG9hdDMyQXJyYXkodC5wb2ludHMqNCkpO2xldCBmO2lmKGUuaW50ZW5zaXR5IT09dm9pZCAwJiYoZj1uZXcgRmxvYXQzMkFycmF5KHQucG9pbnRzKSksdC5kYXRhPT09ImFzY2lpIilTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLm5ldyBVaW50OEFycmF5KG4pKS5zcGxpdChgCmApLmZvckVhY2goKGEsZCk9Pntjb25zdCB5PWEuc3BsaXQoIiAiKTtpZihpIT09dm9pZCAwJiYoaVtkKjMrMF09cGFyc2VGbG9hdCh5W2UueHx8MF0pLGlbZCozKzFdPXBhcnNlRmxvYXQoeVtlLnl8fDBdKSxpW2QqMysyXT1wYXJzZUZsb2F0KHlbZS56fHwwXSkpLHIhPT12b2lkIDApe2NvbnN0IGg9bmV3IEludDMyQXJyYXkoW3BhcnNlSW50KHlbZS5yZ2J8fGUucmdiYXx8MF0sMTApXSksZz1uZXcgRGF0YVZpZXcoaC5idWZmZXIsMCk7cltkKjMrMF09Zy5nZXRVaW50OCgyKS8yNTUscltkKjMrMV09Zy5nZXRVaW50OCgxKS8yNTUscltkKjMrMl09Zy5nZXRVaW50OCgwKS8yNTV9ZiE9PXZvaWQgMCYmKGZbZF09cGFyc2VGbG9hdCh5W2UuaW50ZW5zaXR5fHwwXSkpfSk7ZWxzZSBpZih0LmRhdGE9PT0iYmluYXJ5Iil7Y29uc3QgdT1uZXcgRGF0YVZpZXcobik7QygwLHQucG9pbnRzKS5mb3JFYWNoKHM9Pntjb25zdCBhPWMqcztpZihpIT09dm9pZCAwJiYoaVtzKjMrMF09dS5nZXRGbG9hdDMyKGErKGUueHx8MCksQSksaVtzKjMrMV09dS5nZXRGbG9hdDMyKGErKGUueXx8MCksQSksaVtzKjMrMl09dS5nZXRGbG9hdDMyKGErKGUuenx8MCksQSkpLHIhPT12b2lkIDApe2NvbnN0IGQ9YSsoZS5yZ2J8fGUucmdiYXx8MCk7ZCsyPD11LmJ5dGVMZW5ndGgmJihyW3MqNCswXT11LmdldFVpbnQ4KGQrMikvMjU1LHJbcyo0KzFdPXUuZ2V0VWludDgoZCsxKS8yNTUscltzKjQrMl09dS5nZXRVaW50OChkKzApLzI1NSxyW3MqNCszXT0xKX1mIT09dm9pZCAwJiYoZltzXT11LmdldEZsb2F0MzIoYSsoZS5pbnRlbnNpdHl8fDApLEEpKX0pfWVsc2UgaWYodC5kYXRhPT09ImJpbmFyeV9jb21wcmVzc2VkIil7Y29uc3QgdT1WKG4pLHM9bmV3IERhdGFWaWV3KHUpO0MoMCx0LnBvaW50cykuZm9yRWFjaChhPT57aWYoaSE9PXZvaWQgMCYmKGlbYSozKzBdPXMuZ2V0RmxvYXQzMigoZS54fHwwKSthKjQsQSksaVthKjMrMV09cy5nZXRGbG9hdDMyKChlLnl8fDApK2EqNCxBKSxpW2EqMysyXT1zLmdldEZsb2F0MzIoKGUuenx8MCkrYSo0LEEpKSxyIT09dm9pZCAwKXtjb25zdCBkPShlLnJnYnx8ZS5yZ2JhfHwwKSthKjQ7ZCsyPD1zLmJ5dGVMZW5ndGgmJihyW2EqNCswXT1zLmdldFVpbnQ4KGQrMikvMjU1LHJbYSo0KzFdPXMuZ2V0VWludDgoZCsxKS8yNTUsclthKjQrMl09cy5nZXRVaW50OChkKzApLzI1NSxyW2EqNCszXT0xKX1mIT09dm9pZCAwJiYoZlthXT1zLmdldEZsb2F0MzIoKGUuaW50ZW5zaXR5fHwwKSthKjQsQSkpfSl9cmV0dXJue2NvbG9yczpyLGhlYWRlcjp0LGludGVuc2l0eTpmLHBvc2l0aW9uczppfX1mdW5jdGlvbiBYKG8pe3JldHVybiBEKEgobykpfWNvbnN0IFo9bmV3IF8oe2NhcGFjaXR5OjFlMyx0aW1lb3V0OjEqUy5taW51dGV9KTtvbm1lc3NhZ2U9YXN5bmMgbz0+e2NvbnN0e3VybDp0LGlkOm4scG9pbnRDbG91ZDplfT1vLmRhdGE7aWYodCl7Y29uc3QgYz1aLmdldCh0LGFzeW5jKCk9PkQoYXdhaXQgZmV0Y2godCx7bW9kZToiY29ycyJ9KS50aGVuKHI9PnIuYXJyYXlCdWZmZXIoKSkpKTtjJiZwb3N0TWVzc2FnZSh7dXJsOnQscGNkOmN9KX1pZihuJiZlKXtjb25zdCBjPVgoZSk7cG9zdE1lc3NhZ2Uoe2lkOm4scGNkOmN9KX19fSkoKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9UGNkTG9hZGVyV29ya2VyLWVhYWMwYjMxLmpzLm1hcAo=",blob$1=typeof window<"u"&&window.Blob&&new Blob([atob(encodedJs$1)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$1(){let s;try{if(s=blob$1&&(window.URL||window.webkitURL).createObjectURL(blob$1),!s)throw"";return new Worker(s)}catch{return new Worker("data:application/javascript;base64,"+encodedJs$1)}finally{s&&(window.URL||window.webkitURL).revokeObjectURL(s)}}const encodedJs="dmFyIGw9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBnPShjLG4sbyk9Pm4gaW4gYz9sKGMsbix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pOmNbbl09bzt2YXIgcj0oYyxuLG8pPT4oZyhjLHR5cGVvZiBuIT0ic3ltYm9sIj9uKyIiOm4sbyksbyk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IHU9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07ZnVuY3Rpb24geChoKXt9Y2xhc3MgbXtjb25zdHJ1Y3Rvcih7Y2FwYWNpdHk6ZSx0aW1lb3V0OnN9PXt9KXtyKHRoaXMsImVudHJpZXMiLG5ldyBNYXApO3IodGhpcywibWV0YWRhdGEiLG5ldyBNYXApO3IodGhpcywiY2FwYWNpdHkiKTtyKHRoaXMsInRpbWVvdXQiKTt0aGlzLmNhcGFjaXR5PWV8fDFlNCx0aGlzLnRpbWVvdXQ9c3x8dS5taW51dGV9Z2V0KGUscyl7Y29uc3QgYT10aGlzLmtleVRvQ2FjaGVLZXkoZSksaT10aGlzLmVudHJpZXMuZ2V0KGEpLHQ9dGhpcy5tZXRhZGF0YS5nZXQoYSk7cmV0dXJuKGk9PT12b2lkIDB8fHQmJih0PT1udWxsP3ZvaWQgMDp0LmV4cGlyYXRpb24uZ2V0VGltZSgpKTxEYXRlLm5vdygpKSYmISh0IT1udWxsJiZ0LmdlbmVyYXRpbmcpJiZzJiZ0aGlzLmdlbmVyYXRlKGUscygpKSxpPT09dm9pZCAwJiZ0JiZ0Lmxhc3RWYWx1ZSE9PXZvaWQgMD90Lmxhc3RWYWx1ZTppfXNldChlLHMpe2NvbnN0IGE9dGhpcy5rZXlUb0NhY2hlS2V5KGUpO3RoaXMubWV0YWRhdGEuc2V0KGEse2dlbmVyYXRpbmc6ITEsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCksbGFzdFZhbHVlOnN9KSx0aGlzLmVudHJpZXMuc2V0KGEscyksdGhpcy5tZXRhZGF0YS5zaXplPnRoaXMuY2FwYWNpdHkmJnRoaXMuZGVsZXRlT2xkZXN0RW50cnkoKX1jbGVhcigpe3RoaXMuZW50cmllcy5jbGVhcigpLFsuLi50aGlzLm1ldGFkYXRhLnZhbHVlcygpXS5mb3JFYWNoKGU9PmUuZ2VuZXJhdGluZz0hMSl9Y2xlYXJLZXkoZSl7dGhpcy5tZXRhZGF0YS5kZWxldGUoZSksdGhpcy5lbnRyaWVzLmRlbGV0ZShlKX1rZXlUb0NhY2hlS2V5KGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShlKX1kZWxldGVPbGRlc3RFbnRyeSgpe2lmKHRoaXMubWV0YWRhdGEuc2l6ZTwxKXJldHVybjtjb25zdFtlXT1bLi4udGhpcy5tZXRhZGF0YS5lbnRyaWVzKCldLnJlZHVjZSgoW3MsYV0sW2ksdF0pPT50LmV4cGlyYXRpb24uZ2V0VGltZSgpPGEuZXhwaXJhdGlvbi5nZXRUaW1lKCk/W2ksdF06W3MsYV0pO3RoaXMuY2xlYXJLZXkoZSl9Z2VuZXJhdGUoZSxzKXtjb25zdCBhPXRoaXMua2V5VG9DYWNoZUtleShlKSxpPXRoaXMubWV0YWRhdGEuZ2V0KGEpfHx7fTt0aGlzLm1ldGFkYXRhLnNldChhLHsuLi5pLGdlbmVyYXRpbmc6ITAsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCl9KSxzZXRUaW1lb3V0KCgpPT57cy50aGVuKHQ9Pntjb25zdCBkPXRoaXMubWV0YWRhdGEuZ2V0KGEpOyEoZCE9bnVsbCYmZC5nZW5lcmF0aW5nKXx8dGhpcy5zZXQoZSx0KX0pfSwwKX19Y29uc3QgeT1uZXcgbSh7Y2FwYWNpdHk6MWUzLHRpbWVvdXQ6MSp1Lm1pbnV0ZX0pO29ubWVzc2FnZT1hc3luYyBoPT57Y29uc3R7dXJsOmV9PWguZGF0YTtpZihlKXtjb25zdCBzPXkuZ2V0KGUsYXN5bmMoKT0+YXdhaXQgZmV0Y2goZSx7bW9kZToiY29ycyJ9KS50aGVuKGk9PmkuanNvbigpKSk7cyYmcG9zdE1lc3NhZ2Uoe3VybDplLHJlc3BvbnNlOnN9KX19fSkoKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF0YUZldGNoV29ya2VyLTBhMTY4OTMzLmpzLm1hcAo=",blob=typeof window<"u"&&window.Blob&&new Blob([atob(encodedJs)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper(){let s;try{if(s=blob&&(window.URL||window.webkitURL).createObjectURL(blob),!s)throw"";return new Worker(s)}catch{return new Worker("data:application/javascript;base64,"+encodedJs)}finally{s&&(window.URL||window.webkitURL).revokeObjectURL(s)}}const PCD_WORKER_POOL_SIZE=5,DATA_FETCH_WORKER_POOL_SIZE=10;class WorkerPoolService{static getPcdWorkerPool(){if(!Array.isArray(this.pcdWorkerPool)||!this.pcdWorkerPool.length)for(let o=0;o{if(Array.from(this.subscriberLoaders.keys()).length>0){const et=[],tt=this.generateTelemetryFilter(),nt=this.queryStore.query(tt);if(!nt||nt==="too much data")return;nt.forEach(ot=>{et.push(ot.deviceId)});const rt=Array.from(new Set(et)),it=[];rt.forEach(ot=>{const st=this.subscriberLoaders.get(ot);st&&st.forEach(at=>{it.push(at(nt))})}),(await Promise.all(it)).forEach(ot=>{if(ot.data){const st=this.subscriberDistributorsLoaders.get(ot.deviceId);if(st){const at=st.get(ot.sourceId);at&&at.forEach(lt=>{lt(ot.data)})}}})}setTimeout(()=>o(),0)};setTimeout(()=>o(),0)}setTime(o){o!=="live"&&(this.time=o),this.timeChangeListeners.forEach(et=>et(o))}getTime(){return this.time}getTimeMs(){return this.time==="live"?new Date().getTime():this.time.getTime()}getAvailablePCDWorker(){const o=WorkerPoolService.getPcdWorkerPool();for(let et=0;et{const nt=this.subscriberSources.get(tt);nt&&Array.from(nt?.values()).forEach(rt=>{rt.sourceType==="telemetry"&&et.push(rt.streamName)})}),{deviceIds:o,names:et,start:subDays(new Date,20).toISOString(),end:new Date().toISOString(),latestOnly:!0}}async sendRtcMessage(o,et){await this.createRealtimeConnection(o);const tt=this.mapRealtimeConnections.get(o);tt&&tt!=="loading"&&tt&&tt.sendRealtimeMessage(et,{channelLabel:"stream.reliable"})}async createRealtimeConnection(o,et=signaling_pb.SessionType.TELEOP){const tt=this.mapRealtimeConnections.get(o);if(tt===void 0){this.mapRealtimeConnections.set(o,"loading");const nt=o.startsWith("http");console.log("Creating {} realtime connection",nt?"peer":"cloud");let rt;nt?rt=new PeerDevice(o):rt=await Fleet.getDevice(o),await rt.startRealtimeConnection(et),debug&&rt.addRealtimeListener((it,ot)=>{console.log("received message from peer",it,ot)}),this.mapRealtimeConnections.set(o,rt)}else tt==="loading"&&await new Promise(nt=>{const rt=setInterval(()=>{const it=this.mapRealtimeConnections.get(o);it&&it!=="loading"&&(clearInterval(rt),nt())},100)})}addRemovableTelemetrySubscription(o,et,tt,nt){let rt=this.subscriberLoaders.get(o);rt||(rt=new Map,this.subscriberLoaders.set(o,rt)),rt.get(et.id)||rt.set(et.id,tt);let it=this.subscriberDistributorsLoaders.get(o);it||(it=new Map,this.subscriberDistributorsLoaders.set(o,it));const ot=it.get(et.id);ot?ot.push(nt):it.set(et.id,[nt]);let st=this.subscriberSources.get(o);return st||(st=new Map,this.subscriberSources.set(o,st)),st.set(et.id,et),()=>{const at=this.subscriberLoaders.get(o);at&&at.delete(et.id);const lt=this.subscriberDistributorsLoaders.get(o);if(lt){const dt=lt.get(et.id);if(dt){const ht=dt.indexOf(nt);ht>-1&&dt.splice(ht,1)}}const ut=this.subscriberSources.get(o);ut&&ut.delete(et.id)}}createH264Drawer(){return new H264BytestreamCanvasDrawer(()=>new WorkerWrapper$2,()=>{},()=>{})}async sendCommand(o,et,tt){const nt=this.mapRealtimeConnections.get(o);if(nt==="loading"||nt===void 0)throw new Error("Device is not ready or doesnt exist");await nt.sendCommand(et,tt)}async sendRealtimePose(o,et,tt){const nt=distExports.createRtcStreamMessage({entityId:o,streamName:et,streamType:"pose"},{pose:tt},"vision");await this.sendRtcMessage(o,nt)}async sendRealtimeBoolean(o,et,tt){const nt=distExports.createRtcStreamMessage({entityId:o,streamName:et,streamType:"boolean"},{boolean:tt});await this.sendRtcMessage(o,nt)}async sendRealtimeBitset(o,et,tt){const nt=distExports.createRtcStreamMessage({entityId:o,streamName:et,streamType:"bitset"},{bitset:{bits:tt.keys.map((rt,it)=>({key:rt,value:tt.values[it]}))}});await this.sendRtcMessage(o,nt)}async getUrdfs(o){const et=await(await Fleet.getDevice(o)).getConfiguration();return!et.urdfFiles||et.urdfFiles.length===0?[]:[await Fleet.getFileUrl(et.urdfFiles[0])]}async getTelemetryStreams(o){throw new Error("Not implemented")}async getTeleopRosStreams(o){throw new Error("Not implemented")}async getHardwareStreams(o){throw new Error("Not implemented")}addInteraction(o){throw new Error("Method not implemented.")}removeInteraction(o){throw new Error("Method not implemented.")}getInteractions(){throw new Error("Method not implemented.")}addInteractionsChangedListener(o){throw new Error("Method not implemented.")}addInteractionListener(o){throw new Error("Method not implemented.")}getRealtimeButtons(o){throw new Error("Method not implemented.")}async getLatestTransformTrees(o){throw new Error("Not implemented")}async getLatestLocations(){return[{streamName:"spotLocation",location:{latitude:45.4661989,longitude:-122.5782375}}]}async getDeviceContexts(){return[]}async getDeviceContextName(o){throw new Error("Not implemented")}async getTelemetryStreamType(o,et){throw new Error("Not implemented")}async getStatistics(){return{rtcDevices:[]}}subscribeDataSourceStateChange(o,et,tt){return()=>{}}async fetchImage(o){const et=new Image;return et.src=o,et.setAttribute("crossOrigin",""),await new Promise(tt=>{et.onload=tt}),et}}class LiveUniverseData extends BasicUniverseDataConnector{constructor(){super()}subscribeToPath(o,et,tt){throw new Error("Method not implemented.")}subscribeToImage(o,et,tt){throw new Error("Method not implemented.")}subcribeToVideo(o,et,tt){throw new Error("Method not implemented.")}subscribeToBitset(o,et,tt){if(et.sourceType==="realtime"){const nt=(rt,it)=>{if(it.payload.bitset){const ot=it.payload.bitset,st={keys:[],values:[]};ot.bits.forEach(at=>{st.keys.push(at.key),st.values.push(at.value)}),tt(st)}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}throw new Error("Telemetry bitset not implemented")}subscribeToOdometry(o,et,tt,nt){if(et.sourceType==="realtime"){const rt=(it,ot)=>{if(ot.payload.odometry){const st=ot.payload.odometry;tt({worldToLocal:st.worldToLocal,pose:{translation:{x:st.pose.translation.x,y:st.pose.translation.y,z:st.pose.translation.z},rotation:{x:st.pose.rotation.x,y:st.pose.rotation.y,z:st.pose.rotation.z,w:st.pose.rotation.w}},covariance:[]})}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,rt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,rt)}}if(et.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(o,et,async rt=>{let it,ot;for(let st=0;st{it.payload.pose&&tt(it.payload.pose)};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}throw new Error("unexpected")}subscribeToNumeric(o,et,tt){if(et.sourceType==="realtime"){const nt=async(rt,it)=>{it.payload.numeric&&tt([[Date.now(),it.payload.numeric.value]])};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}return()=>{}}subscribeToNumericSet(o,et,tt){if(et.sourceType==="telemetry"){let nt;const rt=setInterval(async()=>{nt||(nt=await Fleet.getDevice(o));const it=new Date,ot=new Date(it.getTime()-15*1e3),st=await nt.getTelemetry(et.streamName,ot,it);if(st.length>0){const at=st[0].points;tt(at)}},1e3);return()=>{clearInterval(rt)}}return()=>{}}async subscribeToRealtimeMessages(o,et,tt){await this.createRealtimeConnection(o,signaling_pb.SessionType.OBSERVE);const nt=this.mapRealtimeConnections.get(o);nt&&nt!=="loading"&&(nt.startListeningToRealtimeDataStream({name:et}),nt.addRealtimeListener((rt,it)=>{it.header.stream.streamName===et&&tt(rt,it)}))}async unsubscribeToRealtimeMessages(o,et,tt){const nt=this.mapRealtimeConnections.get(o);nt&&nt!=="loading"&&(nt.stopListeningToRealtimeDataStream({name:et}),nt.removeRealtimeListener(tt))}subscribeToJson(o,et,tt){if(et.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt,it;for(let ot=0;otot.json())),{deviceId:o,sourceId:et.id,data:it}},tt);if(et.sourceType==="realtime"){const nt=async(rt,it)=>{it.payload.jsonString&&tt(JSON.parse(it.payload.jsonString.value))};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}return()=>{}}subscribeToText(o,et,tt){return et.sourceType==="telemetry"?this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt,it;for(let ot=0;otot.text())),{deviceId:o,sourceId:et.id,data:it}},tt):()=>{}}subscribeToPointCloud(o,et,tt){const nt=this.getAvailablePCDWorker();if(!nt)throw new Error("No available pointcloud worker");if(et.sourceType==="telemetry"&&et.streamType!=="localization")return this.addRemovableTelemetrySubscription(o,et,async rt=>{let it,ot;for(let st=0;st{nt.postMessage({url:st}),nt.onmessage=lt=>{lt.data.url===st&&at(lt.data.pcd)}})}return{deviceId:o,sourceId:et.id,data:{worldToLocal:it?.worldToLocal,pcd:ot}}},tt);if(et.sourceType==="telemetry"&&et.streamType==="localization")return this.addRemovableTelemetrySubscription(o,et,async rt=>{let it,ot;for(let st=0;st{nt.postMessage({url:st}),nt.onmessage=lt=>{lt.data.url===st&&at(lt.data.pcd)}})}return{deviceId:o,sourceId:et.id,data:{worldToLocal:it&&it!=null&&it.pointClouds&&it!=null&&it.pointClouds[0]?it.pointClouds[0].worldToLocal:void 0,pcd:ot}}},tt);if(et.sourceType==="realtime"){const rt=async(it,ot)=>{var st;if(ot.payload.pointCloud){const at=Math.random(),lt=await new Promise(ut=>{nt.postMessage({id:at,pointCloud:defined$2(ot.payload.pointCloud).data}),nt.onmessage=dt=>{dt.data.id===at&&ut(dt.data.pcd)}});tt({worldToLocal:(st=ot.payload.pointCloud)==null?void 0:st.world_to_local,pcd:lt})}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,rt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,rt)}}return()=>{}}subscribeToGeometry(o,et,tt){throw new Error("type error in realtime sdk")}subscribeToJointState(o,et,tt){if(et.sourceType==="realtime"){const nt=(rt,it)=>{it.payload.jointState&&tt(it.payload.jointState)};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}return()=>{}}subscribeToGridMap(o,et,tt){if(et.sourceType==="realtime"){const nt=(rt,it)=>{if(it.payload.jsonString){const ot=JSON.parse(it.payload.jsonString.value);tt({width:ot.info.width,height:ot.info.height,worldToLocal:{translation:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0,w:1}},resolution:ot.info.resolution,origin:{translation:ot.info.origin.position,rotation:ot.info.origin.orientation},data:ot.data,alpha:ot.data.map(()=>255)})}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}else if(et.sourceType==="telemetry"&&et.streamType==="localization")return this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt,it;for(let ot=0;ot{st.payload.h264VideoFrame&&(nt.receiveEncodedFrame(st.payload.h264VideoFrame),nt&&nt.canvas&&nt.canvas.width>0&&nt.canvas.height>0&&tt(nt.canvas))};return this.subscribeToRealtimeMessages(o,et.rosTopicName,it),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,it)}}if(et.sourceType==="hardware"){const it=(ot,st)=>{st.payload.h264VideoFrame&&(nt.receiveEncodedFrame(st.payload.h264VideoFrame),nt&&nt.canvas&&nt.canvas.width>0&&nt.canvas.height>0&&tt(nt.canvas))};return this.subscribeToRealtimeMessages(o,et.rtcStreamName,it),()=>{this.unsubscribeToRealtimeMessages(o,et.rtcStreamName,it)}}return()=>{nt.stop()}}subscribeToTransformTree(o,et,tt){if(et.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt;for(let it=0;it{if(ot==="too much data"||ot===void 0){tt(NoData);return}const st=this.getNearestPoint(ot),at=st[1],lt=st[0];if(lt!==rt){if(rt=lt,at.url){const ut=await fetch(at.url).then(dt=>dt.json());ut.path&<>=rt&&tt(ut.path);return}else if(at.path&<>=rt){tt(at.path);return}}});return()=>{this.releaseDataFetchWorker(nt),it()}}onTimeChange(o){o==="live"?this.liveIntervalHandle=setInterval(()=>{this.findDataForTime(new Date)},300):(this.liveIntervalHandle&&clearInterval(this.liveIntervalHandle),this.findDataForTime(o))}findDataForTime(o){this.timeFinders.forEach(et=>{et(o)})}addFinder(o,et,tt,nt,rt){const it=ot=>{const st=rt?addYears(ot,-1):addSeconds(ot,-60),at=rt?addMilliseconds(ot,1):addSeconds(ot,5),lt=this.queryStore.moduleQuery({deviceIds:[et]},tt,nt,st,at,rt);if(lt===void 0){o(void 0);return}if(lt==="too much data"){o("too much data");return}if(lt.length===0){o(void 0);return}const ut=lt.reduce((dt,ht)=>dt.concat(ht.points),[]);if(!ut||ut.length===0){o(void 0);return}if(rt){const dt=ut[ut.length-1][0],ht=ut.filter(ct=>ct[0]>addSeconds(dt,-15).getTime());o(ht);return}o(ut)};return this.timeFinders.push(it),it}getNearestPoint(o,et=this.time){const tt=et==="live"?addMilliseconds(new Date,1):this.time;let nt=o[0][0],rt=o[0][1];return o.forEach(it=>{const ot=it[0],st=it[1];Math.abs(ot-tt.getTime())et!==o)}subscribeTelemetry(o,et,tt,nt){if(et.sourceType!=="telemetry")throw new Error("Invalid source type");const rt=this.addFinder(nt,o,et.streamName,tt,et.latestDataPoint||!1);return()=>{this.removeFinder(rt)}}subscribeToPointCloud(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const nt=this.getAvailablePCDWorker();if(!nt)throw new Error("No available pointcloud worker");const rt=this.getAvailableDataFetchWorker();if(!rt)throw new Error("No available data fetch worker");let it=()=>{},ot=()=>{};return et.streamType==="point cloud"?it=this.subscribeTelemetry(o,et,"point cloud",async st=>{if(st==="too much data"||st===void 0){tt(NoData);return}const at=this.getNearestPoint(st)[1];if(typeof at=="string")tt(JSON.parse(at));else{const{url:lt}=at;nt.postMessage({url:lt}),nt.onmessage=ut=>{ut.data.url===lt&&tt({worldToLocal:at.worldToLocal,pcd:ut.data.pcd})}}}):et.streamType==="localization"&&(ot=this.subscribeTelemetry(o,et,"localization",async st=>{if(st==="too much data"||st===void 0){tt(NoData);return}let at=this.getNearestPoint(st)[1];at.url&&(rt.postMessage({url:at.url}),rt.onmessage=lt=>{if(at=lt.data.response,at.pointClouds){const{url:ut,worldToLocal:dt}=at.pointClouds[0];nt.postMessage({url:ut}),nt.onmessage=ht=>{ht.data.url===ut&&tt({worldToLocal:dt,pcd:ht.data.pcd})}}})})),()=>{this.releasePCDWorker(nt),this.releaseDataFetchWorker(rt),it(),ot()}}subscribeToOdometry(o,et,tt,nt=0){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const rt=this.getAvailableDataFetchWorker();if(!rt)throw new Error("No available data fetch worker");const it=this.subscribeTelemetry(o,et,"localization",async ot=>{if(ot==="too much data"||ot===void 0){tt(NoData);return}const st=this.getNearestPoint(ot);let at;if(st[1].url)try{at=(await(await fetch(st[1].url)).json()).odometry}catch(lt){throw console.error("Failed to fetch odometry data:",lt),lt}else at=st[1].odometry;if(nt){const lt=ot.filter(ut=>ut[0]<=st[0]&&ut[0]>=st[0]-nt*1e3).map(async ut=>{var dt,ht;if(ut[1].url)try{const ct=await(await fetch(ut[1].url)).json();return[ut[0],(dt=ct.odometry)==null?void 0:dt.pose]}catch(ct){throw console.error("Failed to fetch trail odometry data:",ct),ct}return[ut[0],(ht=ut[1].odometry)==null?void 0:ht.pose]});try{const ut=await Promise.all(lt);tt({worldToLocal:at.worldToLocal,pose:at.pose,trail:ut,covariance:[]});return}catch(ut){throw console.error("Failed to process trail data:",ut),ut}}tt({worldToLocal:at.worldToLocal,pose:at.pose,covariance:[]})});return()=>{this.releaseDataFetchWorker(rt),it()}}subscribeToPose(o,et,tt){throw new Error("Method not implemented for telemetry universe connector.")}subscribeToGeometry(o,et,tt){if(et.sourceType==="telemetry"){const nt=this.getAvailableDataFetchWorker();if(!nt)throw new Error("No available data fetch worker");const rt=this.subscribeTelemetry(o,et,"json",async it=>{if(it==="too much data"||it===void 0){tt(NoData);return}let ot=this.getNearestPoint(it)[1];ot.startsWith("http")?(nt.postMessage({url:ot}),nt.onmessage=st=>{ot=JSON.stringify(st.data.response),tt(JSON.parse(ot))}):tt(JSON.parse(ot))});return()=>{this.releaseDataFetchWorker(nt),rt()}}else throw new Error("Realtime geometry note supported")}subscribeToJointState(o,et,tt){return this.subscribeToJson(o,et,tt)}subscribeToGridMap(o,et,tt){const nt={};if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const rt=this.getAvailableDataFetchWorker();if(!rt)throw new Error("No available data fetch worker");const it=this.subscribeTelemetry(o,et,"localization",async ot=>{if(ot==="too much data"||ot===void 0){tt(NoData);return}const st=this.getNearestPoint(ot)[1];if(st.url){if(nt[st.url]){tt(nt[st.url]);return}rt.postMessage({url:st.url}),rt.onmessage=async at=>{const lt=at.data.response.map;if(lt){const ut={width:lt.width,height:lt.height,worldToLocal:lt.worldToLocal,resolution:lt.resolution,origin:lt.origin,url:lt.url};nt[st.url]=JSON.parse(JSON.stringify(ut)),tt(ut)}}}});return()=>{this.releaseDataFetchWorker(rt),it()}}subscribeToVideo(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"video",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}const rt=this.getNearestPoint(nt)[1],{url:it}=rt,ot=this.videoCache.get(it,async()=>new Promise(st=>{const at=document.createElement("video");at.src=it,at.onload=()=>{}}));if(ot){const st=document.createElement("canvas");st.width=ot.videoWidth,st.height=ot.videoHeight;const at=st.getContext("2d");at&&at.drawImage(ot,0,0),tt(st)}})}subscribeToTransformTree(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"transform tree",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(this.getNearestPoint(nt)[1])})}subscribeToLocation(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const nt=this.subscribeToJson(o,et,tt),rt=this.subscribeTelemetry(o,et,"location",async it=>{if(it==="too much data"||it===void 0){tt(NoData);return}const ot=this.getNearestPoint(it)[1];tt(ot)});return()=>{nt(),rt()}}subscribeToJson(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"json",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}let rt=this.getNearestPoint(nt)[1];rt.startsWith("http")&&(rt=await(await fetch(rt)).text()),tt(JSON.parse(rt))})}subscribeToText(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"text",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(this.getNearestPoint(nt)[1])})}subscribeToNumeric(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"numeric",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(nt)})}subscribeToNumericSet(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"numeric set",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(nt)})}subscribeToImage(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"image",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}const rt=this.getNearestPoint(nt)[1].url,it=new Image;it.src=rt,it.onload=()=>{const ot=document.createElement("canvas");ot.width=it.width,ot.height=it.height;const st=ot.getContext("2d");st&&(st.drawImage(it,0,0),tt(ot))}})}}distExports.RtcClient;distExports.RtcClientV1;distExports.RtcSignalingClient;distExports.createRtcStreamMessage;const SidebarContent=styled.div` + `,nt=[1.16438,0,1.59603,-.87079,1.16438,-.39176,-.81297,.52959,1.16438,2.01723,0,-1.08139,0,0,0,1],rt=o.createShader(o.VERTEX_SHADER);if(!rt)throw new Error("Failed to create vertex shader");o.shaderSource(rt,et),o.compileShader(rt);const it=o.createShader(o.FRAGMENT_SHADER);if(!it)throw new Error("Failed to create fragment shader");o.shaderSource(it,tt),o.compileShader(it);const ot=o.createProgram();if(!ot)throw new Error("Failed to create webgl program");o.attachShader(ot,rt),o.attachShader(ot,it),o.linkProgram(ot),o.useProgram(ot);const st=o.getUniformLocation(ot,"YUV2RGB");return o.uniformMatrix4fv(st,!1,nt),ot}initBuffers(){const{gl:o,program:et}=this,tt=o.createBuffer();o.bindBuffer(o.ARRAY_BUFFER,tt),o.bufferData(o.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),o.STATIC_DRAW);const nt=o.getAttribLocation(et,"vertexPos");o.enableVertexAttribArray(nt),o.vertexAttribPointer(nt,2,o.FLOAT,!1,0,0);const rt=o.createBuffer();if(!rt)throw new Error("Failed to create WebGL buffer");o.bindBuffer(o.ARRAY_BUFFER,rt),o.bufferData(o.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),o.STATIC_DRAW);const it=o.getAttribLocation(et,"texturePos");return o.enableVertexAttribArray(it),o.vertexAttribPointer(it,2,o.FLOAT,!1,0,0),{texturePosBuffer:rt}}initTextures(){const{gl:o,program:et}=this,tt=this.initTexture(),nt=o.getUniformLocation(et,"yuvSampler");return o.uniform1i(nt,0),{textureRef:tt}}initTexture(){const{gl:o}=this,et=o.createTexture();if(!et)throw new Error("Failed to initialize texture");return o.bindTexture(o.TEXTURE_2D,et),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.bindTexture(o.TEXTURE_2D,null),et}}const decoderNotWorkingThreshold=duration$1$1.second*2.5,warnPerformanceThreshold=duration$1$1.second/3,noSignalThreshold=duration$1$1.second*2,maxQueueSize=5,maxDropRatio=30/25,numRetries=5,hardwareIncompatibleErrorCode=1282;class H264BytestreamCanvasDrawer{constructor(o,et,tt,nt,rt){__publicField(this,"_waitingForDecoder",!0),__publicField(this,"_noSignal",!0),__publicField(this,"_lostSignal",!1),__publicField(this,"_overWaitingThreshold",!1),__publicField(this,"_retries",0),__publicField(this,"_webglYUVSupported"),__publicField(this,"lastDecodedFrameTime"),__publicField(this,"lastReceivedFrameTime"),__publicField(this,"lastNoSignalTime",new Date().getTime()),__publicField(this,"moduleStartTime",Date.now()),__publicField(this,"moduleCreateTime",Date.now()),__publicField(this,"timesRestarted",0),__publicField(this,"canvas"),__publicField(this,"decoder"),__publicField(this,"yuvCanvas"),__publicField(this,"webglContext"),__publicField(this,"frameQueue",[]),__publicField(this,"minFrameSize",1/0),__publicField(this,"maxFrameSize",0),__publicField(this,"decoderQueue",[]),__publicField(this,"decoderQueueLocked",!1),__publicField(this,"decodeNextFrameAttempted",!1),__publicField(this,"numFramesDecoded",0),__publicField(this,"numFramesReceived",0),__publicField(this,"hasReceivedKeyframe",!1),__publicField(this,"medianFrameSize",0),__publicField(this,"currentFrameIndex"),__publicField(this,"frameCheckpointMap",new Map),__publicField(this,"lastDrawnFrameTime"),__publicField(this,"minJitter"),__publicField(this,"maxJitter"),__publicField(this,"start",()=>{const{canvas:it}=this;if(!it)return;const ot=it.getContext("webgl");this.webglContext=ot||void 0,this.lastDecodedFrameTime=void 0,this.lastReceivedFrameTime=void 0,this.hasReceivedKeyframe=!1,this.currentFrameIndex=void 0,!(!this.canvas||!this.webglContext)&&(this.yuvCanvas||(this.yuvCanvas=new YUVCanvas(this.webglContext)),this.moduleStartTime=Date.now())}),__publicField(this,"stop",()=>{var it;(it=this.decoder)==null||it.release(),this.webglContext=void 0,this.decoderQueueLocked=!1}),__publicField(this,"reset",()=>{this.retries=0,this.restart()}),__publicField(this,"notifyWarningTextChanged",()=>{var it;(it=this.onWarningTextChanged)==null||it.call(this,this.getWarningText())}),__publicField(this,"restart",()=>{console.info("Restarting decoder"),console.info("BytestreamPlayer restarting",__spreadProps(__spreadValues({},this.trackInfo),{Restart:this.timesRestarted})),this.frameQueue=[],this.decoderQueue=[],this.stop(),this.decoder=new H264Decoder(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),this.start(),this.retries++,this.timesRestarted++}),__publicField(this,"onTrackTick",()=>{if(this.numFramesDecoded===0){if(this.lastDecodedFrameTime===void 0){const at=Date.now();console.info("BytestreamPlayer waiting for video",__spreadProps(__spreadValues({},this.trackInfo),{"Time Waited":at-this.moduleCreateTime}))}return}this.numFramesReceived/this.numFramesDecoded>maxDropRatio&&this.warnPerformanceProblems(),this.numFramesReceived=0,this.numFramesDecoded=0;const it=Array.from(this.frameCheckpointMap.entries()).reduce((at,[lt,ut])=>{var dt;return!this.currentFrameIndex||lt>this.currentFrameIndex-60||ut==="FrameDrawn"||(at[ut]=((dt=at[ut])!=null?dt:0)+1,this.frameCheckpointMap.delete(lt)),at},{});Object.keys(it).map(at=>{console.info("BytestreamPlayer Frame Dropped",__spreadProps(__spreadValues({},this.trackInfo),{"Num Dropped":it[at],"Frame State":at}))});const{minJitter:ot,maxJitter:st}=this;ot&&st&&(console.info("BytestreamPlayer Jitter",__spreadProps(__spreadValues({},this.trackInfo),{minJitter:ot,maxJitter:st})),this.minJitter=void 0,this.maxJitter=void 0)}),__publicField(this,"onTick",()=>{var it;const{lastReceivedFrameTime:ot,lastDecodedFrameTime:st,moduleStartTime:at,noSignal:lt,retries:ut}=this,dt=new Date().getTime();lt&&(this.lastNoSignalTime=dt),this.overWaitingThreshold=dt-at>noSignalThreshold;const ht=dt-at>decoderNotWorkingThreshold;if(!st){ot&&ht&&utnoSignalThreshold&&ctwarnPerformanceThreshold&&this.warnPerformanceProblems(),ct>noSignalThreshold&&(this.lostSignal=!0)}this.overWaitingThreshold&&(this.waitingForDecoder||this.noSignal||this.lostSignal)&&((it=this.onCanvasDrawerWarning)==null||it.call(this,"ShouldDisableControl"))}),__publicField(this,"receiveEncodedFrame",it=>{if(!it)return;const ot=it.index;if(ot&&this.frameCheckpointMap.set(ot,"FrameReceived"),!(!it||!this.canvas||!this.webglContext)){if(this.isKeyframe(it),!this.hasReceivedKeyframe)return console.info("Dropping frame because no keyframe detected"),!1;this.lastReceivedFrameTime===void 0&&console.debug("Received first frame on bytestream player",__spreadValues({},this.trackInfo)),this.checkOrder(it),this.numFramesReceived++,this.lastReceivedFrameTime=Date.now(),this.lostSignal&&this.restart(),this.noSignal=!1,this.lostSignal=!1,this.frameQueue.push(it),ot&&this.frameCheckpointMap.set(ot,"FrameQueued"),this.frameQueue.length>maxQueueSize&&(this.frameQueue=this.frameQueue.filter(st=>this.isKeyframe(st))),this.frameQueue.length>maxQueueSize&&(this.frameQueue=[],this.decoderQueue=[]),this.decodeNextFrame()}}),__publicField(this,"onDecoderError",it=>{this.frameQueue=[],this.decoderQueue=[],this.hasReceivedKeyframe=!1,console.info("BytestreamPlayer decode error",__spreadProps(__spreadValues({},this.trackInfo),{"Frame Index":it}))}),__publicField(this,"onReceiveDecodedFrame",it=>{var ot,st;const{canvas:at,yuvCanvas:lt,decoderQueue:ut}=this,{timestamp:dt,yuv:ht,height:ct,width:pt,index:ft}=it;this.frameCheckpointMap.set(ft,"FrameDecoded"),this.numFramesDecoded++;const gt=Date.now();if(this.lastDecodedFrameTime===void 0&&console.info("BytestreamPlayer started video",__spreadProps(__spreadValues({},this.trackInfo),{"Time Until Video":gt-this.moduleCreateTime})),this.lastDecodedFrameTime=gt,this.waitingForDecoder=!1,this.decoderQueue=ut.filter(Ft=>gt-Ftduration$1$1.second||!lt||!at||ct===0||pt===0)return;ct!==at.height&&(at.height=ct,lt.height=ct),pt!==at.width&&(at.width=pt,lt.width=pt);const yt=lt.draw(ht),Ut=Date.now();if(this.lastDrawnFrameTime){const Ft=Ut-this.lastDrawnFrameTime;this.minJitter=Math.min(Ft,(ot=this.minJitter)!=null?ot:Number.MAX_SAFE_INTEGER),this.maxJitter=Math.max(Ft,(st=this.maxJitter)!=null?st:0)}this.lastDrawnFrameTime=Ut,this.frameCheckpointMap.set(ft,"FrameDrawn"),yt===0&&(this.webglYUVSupported=!0),yt===hardwareIncompatibleErrorCode&&(this.webglYUVSupported=!1),this.frameQueue.length>0&&this.decodeNextFrame()}),this.workerFactory=o,this.onWebglYUVSupportedChanged=et,this.onWarningTextChanged=tt,this.onCanvasDrawerWarning=nt,this.trackInfo=rt,this.decoder=new H264Decoder(this.workerFactory(),this.onReceiveDecodedFrame,this.onDecoderError),setInterval(this.onTick,duration$1$1.millisecond*200),setInterval(this.onTrackTick,duration$1$1.second*5)}get waitingForDecoder(){return this._waitingForDecoder}set waitingForDecoder(o){this._waitingForDecoder=o,this.notifyWarningTextChanged()}get noSignal(){return this._noSignal}set noSignal(o){this._noSignal=o,this.notifyWarningTextChanged()}get lostSignal(){return this._lostSignal}set lostSignal(o){this._lostSignal=o,this.notifyWarningTextChanged()}get overWaitingThreshold(){return this._overWaitingThreshold}set overWaitingThreshold(o){this._overWaitingThreshold=o,this.notifyWarningTextChanged()}get retries(){return this._retries}set retries(o){this._retries=o,this.notifyWarningTextChanged()}get webglYUVSupported(){return this._webglYUVSupported}set webglYUVSupported(o){var et;this._webglYUVSupported=o,(et=this.onWebglYUVSupportedChanged)==null||et.call(this,o),this.notifyWarningTextChanged()}setCanvas(o){this.canvas=o}getWarningText(){var o;const{waitingForDecoder:et,noSignal:tt,overWaitingThreshold:nt,lostSignal:rt,retries:it,webglYUVSupported:ot}=this,st=ot===!1,at=et?it===numRetries?"Decoder failed to start":"Starting decoder":void 0,lt=st?"Hardware decoding not supported on this device":void 0;return(o=lt??(rt?"Lost signal":tt?nt?"No signal":"Waiting for signal":void 0))!=null?o:at}decodeNextFrame(){if(this.decoderQueueLocked&&(this.decodeNextFrameAttempted=!0),this.decoderQueueLocked=!0,this.decoderQueue.length>maxQueueSize){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const o=this.frameQueue.shift();if(!o){this.decoderQueueLocked=!1,this.decodeNextFrameAttempted=!1;return}const et=Date.now();this.frameCheckpointMap.set(o.index,"FrameSentToDecoder"),this.decoder.post(et,o.frame_data,o.flags,o.index),this.decoderQueue.push(et),this.decoderQueueLocked=!1,this.decodeNextFrameAttempted&&(this.decodeNextFrameAttempted=!1,this.decodeNextFrame())}warnPerformanceProblems(){var o;this.lastDecodedFrameTime&&this.overWaitingThreshold&&!this.lostSignal&&!this.noSignal&&((o=this.onCanvasDrawerWarning)==null||o.call(this,"ShouldDegradeVideo"))}checkOrder(o){if(this.currentFrameIndex!==void 0&&o.indexDate.now()?!1:nt>this.medianFrameSize?(this.hasReceivedKeyframe=!0,!0):!1}}const encodedJs$2="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbihTKXt0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShTKTpTKCl9KShmdW5jdGlvbigpe2NvbnN0IEo9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07dmFyIHk9e30sRj17fSxhPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBHPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7ZnVuY3Rpb24gaChBKXtsZXQgST1BLmxlbmd0aDtBW0EubGVuZ3RoLTJdPT09Ij0iP0ktPTI6QVtBLmxlbmd0aC0xXT09PSI9IiYmSS0tO2NvbnN0IGc9SS80KjN8MCxCPW5ldyBVaW50OEFycmF5KGcpO2ZvcihsZXQgUT0wLEM9MDtRPGc7USs9Myl7Y29uc3QgRD1HLmluZGV4T2YoQVtDKytdKSxFPUcuaW5kZXhPZihBW0MrK10pO2lmKEJbUV09RDw8MnxFPj40LEM9PT1JKWJyZWFrO2NvbnN0IHc9Ry5pbmRleE9mKEFbQysrXXx8Ij0iKTtpZihCW1ErMV09KEUmMTUpPDw0fHc+PjIsQz09PUkpYnJlYWs7Y29uc3Qgbz1HLmluZGV4T2YoQVtDKytdfHwiPSIpO0JbUSsyXT0odyYzKTw8NnxvfXJldHVybiBCfWEuZGVjb2RlPWgsT2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IEw9IkFHRnpiUUVBQUFBQmx3RVRZQUovZndGL1lBUi9mMzkvQVg5Z0FuOS9BR0FEZjM5L0FYOWdBWDhBWUFsL2YzOS9mMzkvZjM4QVlBRi9BWDlnQkg5L2YzOEFZQVovZjM5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUFOL2YzOEFZQVYvZjM5L2Z3Ri9ZQUFBWUFWL2YzOS9md0JnQm45L2YzOS9md0JnQ245L2YzOS9mMzkvZjM4QVlBQUJmMkFIZjM5L2YzOS9md0YvWUFoL2YzOS9mMzkvZndGL0FqQURCR2d5TmpRR2JXVnRZM0I1QUFNRWFESTJOQVp5WlhOcGVtVUFCZ1JvTWpZMEJtMWxiVzl5ZVFJQmdBS0FnQUlEWTJJQUFBUUFBUU1LQVFZQUJRTUZCZ2NBQndZQUF3NERCd2NGQWdBQ0F3UUFCUVVGQlFvRUFnUUpBUWNBQXdZR0FnSUJCZ1FEQWdJQkN3RUJBd01MRFFJQkFBQUNDUWtKRHdJRkJRQUJDZ0FTQ3hFSUNBY0lDQWNFQVFRSUNBWUJFQWdBQVFZSkFYOEJRYkRFd0FJTEJ5WUVCbTFoYkd4dll3QUtDV2d5TmpSaGJHeHZZd0JnQm1SbFkyOWtaUUJoQkdsdWFYUUFZZ3IycFFWaXdBSUJBbjhnQUJBUElnSkJmMHdFUUNBQVFRRVFDeG9nQVVFQU5nSUFRUUFQQ3dKQUFrQWdBa0dBZ0lDQUJFOEVRQ0FBUVFNUUMwRi9SZ1JBUVFFUEN5QUJJQUpCSFhaQkFYRkJBV28yQWdBTUFRc2dBa0dBZ0lDQUFrOEVRQ0FBUVFVUUMwRi9SZ1JBUVFFUEN5QUJJQUpCRzNaQkEzRkJBMm8yQWdBTUFRc2dBa0dBZ0lDQUFVOEVRQ0FBUVFjUUMwRi9SZ1JBUVFFUEN5QUJJQUpCR1haQkIzRkJCMm8yQWdBTUFRc2dBaEF2SWdOQkJHb2lBa0VnUmdSQUlBRkJBRFlDQUNBQVFTQVFDeHBCQVNFQ0lBQkJBUkFEUVFGSERRSWdBQkFQSVFNZ0FFRWdFQXRCZjBZTkFpQURRUUZMRFFJZ0EwRUJhd1JBSUFGQmZ6WUNBQXdDQ3lBQlFYODJBZ0JCQVE4TElBQWdBMEVGYWhBTEdpQUFJQUlRQXlJQVFYOUdCRUJCQVE4TElBRWdBRUYvSUFKMFFYOXphallDQUF0QkFDRUNDeUFDQzRnQ0FRZC9JQUFvQWdRaEJBSkFJQUFvQWd4QkEzUWlCeUFBS0FJUUlnaHJJZ0pCSUU0RVFDQUVLQUFBSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUVESUFBb0FnZ2lBa1VOQVNBRElBSjBJQVF0QUFSQkNDQUNhM1p5SVFNTUFRc2dBa0VCU0FSQURBRUxJQVF0QUFBZ0FDZ0NDQ0lGUVJocUlnWjBJUU1nQWlBRmFrRjRhaUlDUVFGSURRQURRQ0FFTFFBQklBWkJlR29pQm5RZ0EzSWhBeUFDUVFoS0lRVWdCRUVCYWlFRUlBSkJlR29oQWlBRkRRQUxDeUFBSUFFZ0NHb2lCRFlDRUNBQUlBUkJCM0UyQWdoQmZ5RUNJQVFnQjAwRWZ5QUFJQUFvQWdBZ0JFRURkbW8yQWdRZ0EwRWdJQUZyZGdWQmZ3c0xxZzBCQjM4Q1FDQUFSUTBBSUFCQmVHb2lBeUFBUVh4cUtBSUFJZ0ZCZUhFaUFHb2hCUUpBSUFGQkFYRU5BQ0FCUVFOeFJRMEJJQU1nQXlnQ0FDSUNheUlEUWNUQUFDZ0NBQ0lFU1EwQklBQWdBbW9oQUNBRFFjakFBQ2dDQUVjRVFDQUNRZjhCVFFSQUlBTW9BZ2dpQkNBQ1FRTjJJZ0pCQTNSQjNNQUFha2NhSUFRZ0F5Z0NEQ0lCUmdSQVFiVEFBRUcwd0FBb0FnQkJmaUFDZDNFMkFnQU1Bd3NnQkNBQk5nSU1JQUVnQkRZQ0NBd0NDeUFES0FJWUlRWUNRQ0FESUFNb0Fnd2lBVWNFUUNBRUlBTW9BZ2dpQWswRVFDQUNLQUlNR2dzZ0FpQUJOZ0lNSUFFZ0FqWUNDQXdCQ3dKQUlBTkJGR29pQWlnQ0FDSUVEUUFnQTBFUWFpSUNLQUlBSWdRTkFFRUFJUUVNQVFzRFFDQUNJUWNnQkNJQlFSUnFJZ0lvQWdBaUJBMEFJQUZCRUdvaEFpQUJLQUlRSWdRTkFBc2dCMEVBTmdJQUN5QUdSUTBCQWtBZ0F5QURLQUljSWdKQkFuUkI1TUlBYWlJRUtBSUFSZ1JBSUFRZ0FUWUNBQ0FCRFFGQnVNQUFRYmpBQUNnQ0FFRitJQUozY1RZQ0FBd0RDeUFHUVJCQkZDQUdLQUlRSUFOR0cyb2dBVFlDQUNBQlJRMENDeUFCSUFZMkFoZ2dBeWdDRUNJQ0JFQWdBU0FDTmdJUUlBSWdBVFlDR0FzZ0F5Z0NGQ0lDUlEwQklBRWdBallDRkNBQ0lBRTJBaGdNQVFzZ0JTZ0NCQ0lCUVFOeFFRTkhEUUJCdk1BQUlBQTJBZ0FnQlNBQlFYNXhOZ0lFSUFNZ0FFRUJjallDQkNBQUlBTnFJQUEyQWdBUEN5QUZJQU5ORFFBZ0JTZ0NCQ0lCUVFGeFJRMEFBa0FnQVVFQ2NVVUVRQ0FGUWN6QUFDZ0NBRVlFUUVITXdBQWdBellDQUVIQXdBQkJ3TUFBS0FJQUlBQnFJZ0EyQWdBZ0F5QUFRUUZ5TmdJRUlBTkJ5TUFBS0FJQVJ3MERRYnpBQUVFQU5nSUFRY2pBQUVFQU5nSUFEd3NnQlVISXdBQW9BZ0JHQkVCQnlNQUFJQU0yQWdCQnZNQUFRYnpBQUNnQ0FDQUFhaUlBTmdJQUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFDUUNBQlFmOEJUUVJBSUFVb0Fnd2hBaUFGS0FJSUlnUWdBVUVEZGlJQlFRTjBRZHpBQUdvaUIwY0VRRUhFd0FBb0FnQWFDeUFDSUFSR0JFQkJ0TUFBUWJUQUFDZ0NBRUYrSUFGM2NUWUNBQXdDQ3lBQ0lBZEhCRUJCeE1BQUtBSUFHZ3NnQkNBQ05nSU1JQUlnQkRZQ0NBd0JDeUFGS0FJWUlRWUNRQ0FGSUFVb0Fnd2lBVWNFUUVIRXdBQW9BZ0FnQlNnQ0NDSUNUUVJBSUFJb0Fnd2FDeUFDSUFFMkFnd2dBU0FDTmdJSURBRUxBa0FnQlVFVWFpSUNLQUlBSWdRTkFDQUZRUkJxSWdJb0FnQWlCQTBBUVFBaEFRd0JDd05BSUFJaEJ5QUVJZ0ZCRkdvaUFpZ0NBQ0lFRFFBZ0FVRVFhaUVDSUFFb0FoQWlCQTBBQ3lBSFFRQTJBZ0FMSUFaRkRRQUNRQ0FGSUFVb0Fod2lBa0VDZEVIa3dnQnFJZ1FvQWdCR0JFQWdCQ0FCTmdJQUlBRU5BVUc0d0FCQnVNQUFLQUlBUVg0Z0FuZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ0lFUUNBQklBSTJBaEFnQWlBQk5nSVlDeUFGS0FJVUlnSkZEUUFnQVNBQ05nSVVJQUlnQVRZQ0dBc2dBeUFBUVFGeU5nSUVJQUFnQTJvZ0FEWUNBQ0FEUWNqQUFDZ0NBRWNOQVVHOHdBQWdBRFlDQUE4TElBVWdBVUYrY1RZQ0JDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFDeUFBUWY4QlRRUkFJQUJCQTNZaUFVRURkRUhjd0FCcUlRQUNmMEcwd0FBb0FnQWlBa0VCSUFGMElnRnhSUVJBUWJUQUFDQUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBaUFBSUFNMkFnZ2dBaUFETmdJTUlBTWdBRFlDRENBRElBSTJBZ2dQQ3lBRFFnQTNBaEFnQXdKL1FRQWdBRUVJZGlJQlJRMEFHa0VmSUFCQi8vLy9CMHNOQUJvZ0FTQUJRWUQrUDJwQkVIWkJDSEVpQVhRaUFpQUNRWURnSDJwQkVIWkJCSEVpQW5RaUJDQUVRWUNBRDJwQkVIWkJBbkVpQkhSQkQzWWdBU0FDY2lBRWNtc2lBVUVCZENBQUlBRkJGV3AyUVFGeGNrRWNhZ3NpQWpZQ0hDQUNRUUowUWVUQ0FHb2hBUUpBQWtBQ1FFRzR3QUFvQWdBaUJFRUJJQUowSWdkeFJRUkFRYmpBQUNBRUlBZHlOZ0lBSUFFZ0F6WUNBQ0FESUFFMkFoZ01BUXNnQUVFQVFSa2dBa0VCZG1zZ0FrRWZSaHQwSVFJZ0FTZ0NBQ0VCQTBBZ0FTSUVLQUlFUVhoeElBQkdEUUlnQWtFZGRpRUJJQUpCQVhRaEFpQUVJQUZCQkhGcUlnZEJFR29vQWdBaUFRMEFDeUFISUFNMkFoQWdBeUFFTmdJWUN5QURJQU0yQWd3Z0F5QUROZ0lJREFFTElBUW9BZ2dpQUNBRE5nSU1JQVFnQXpZQ0NDQURRUUEyQWhnZ0F5QUVOZ0lNSUFNZ0FEWUNDQXRCMU1BQVFkVEFBQ2dDQUVGL2FpSUFOZ0lBSUFBTkFFSDh3d0FoQXdOQUlBTW9BZ0FpQUVFSWFpRURJQUFOQUF0QjFNQUFRWDgyQWdBTEMzUUJBbjhqQUVFUWF5SUNKQUFnQWtFQU5nSU1JQUFnQWtFTWFoQUNJUUFDZnlBQ0tBSU1JZ05CZjBZRVFFRUJJQUJGRFFFYUlBRkJnSUNBZ0hnMkFnQkJBQXdCQzBFQklBQU5BQm9nQVNBRFFRRnFRUUYySWdGQkFDQUJheUFEUVFGeEd6WUNBRUVBQ3lFQUlBSkJFR29rQUNBQUM4Y0xBUlIvSUFGQm9EMXFMUUFBUVF4c0lnWkIxRHhxS0FJQUlRVWdCa0hRUEdvb0FnQWdBVUdRUEdvdEFBQWlCM1FoQkNBQ1JRUkFJQUFnQUNnQ0FDQUViRFlDQUFzZ0JTQUhkQ0VCQWtBQ1FDQURRWnovQTNFRVFDQUFJQVpCMkR4cUtBSUFJQWQwSWdNZ0FDZ0NQR3cyQWp3Z0FDQUFLQUk0SUFGc05nSTRRUUVoQWlBQUlBQW9BaXdnQkd3aUJ5QUFLQUlNSUFSc0lnVnFJZ2tnQUNnQ0lDQUJiQ0lLSUFBb0FqUWdBV3dpRDBFQmRXb2lFR3NpQmpZQ0xDQUFLQUlvSVFnZ0FDQUZJQWRySWdVZ0NrRUJkU0FQYXlJS2F5SUhOZ0lvSUFBb0FpUWhEaUFBSUFVZ0Ntb2lCVFlDSkNBQUlBQW9BaHdnQVd3aUR5QUFLQUlJSUFGc0lndHFJaE1nQUNnQ0VDQURiQ0lSSUFBb0FqQWdBMndpREVFQmRXb2lGV3NpQ2pZQ0hDQUFLQUlZSVEwZ0FDQUxJQTlySWdzZ0VVRUJkU0FNYXlJUmF5SVBOZ0lZSUFBb0FoUWhEQ0FBSUFzZ0VXb2lDellDRkNBQUlBUWdER3dpQkNBQUtBSUFJZ3hxSWhRZ0FDZ0NCQ0FCYkNJU0lBRWdEV3dpRFVFQmRXb2lGbXNpRVRZQ0RDQUFJQXdnQkdzaUJDQVNRUUYxSUExcklnMXJJZ3cyQWdnZ0FDQUVJQTFxSWcwMkFnUWdBQ0FCSUE1c0lnUWdBQ2dDT0NJT2F5SVNJQU1nQ0d3aUNFRUJkU0FBS0FJOEloZHJJZ05ySWdFMkFqZ2dBQ0FESUJKcUlnTTJBalFnQUNBRUlBNXFJZzRnRjBFQmRTQUlhaUlJYXlJRU5nSThJQUFnRkNBV2FpSVVJQWtnRUdvaUVHdEJJR29pRWlBSUlBNXFJZ2tnRXlBVmFpSUlRUUYxSWc1cmFrRUdkU0lUTmdJZ0lBQWdFaUFPSUFscmFrRUdkU0lPTmdJUUlBQWdFQ0FVYWtFZ2FpSVFJQWxCQVhVZ0NHb2lDV3RCQm5VaUNEWUNNQ0FBSUFrZ0VHcEJCblVpQ1RZQ0FDQUpRWUFFYWlBT1FZQUVhbkpCL3dkTERRSWdDRUdBQkdvZ0UwR0FCR3B5UWY4SFN3MENJQUFnQlNBTmFrRWdhaUlKSUFOQkFYVWdDMm9pRUd0QkJuVWlDRFlDTkNBQUlBMGdCV3RCSUdvaUJTQURJQXRCQVhVaUMydHFRUVoxSWcwMkFpUWdBQ0FGSUFzZ0EydHFRUVoxSWdNMkFoUWdBQ0FKSUJCcVFRWjFJZ1UyQWdRZ0JVR0FCR29nQTBHQUJHcHlRZjhIU3cwQ0lBaEJnQVJxSUExQmdBUnFja0gvQjBzTkFpQUFJQWNnREdwQklHb2lBeUFCUVFGMUlBOXFJZ1ZyUVFaMUlnczJBamdnQUNBTUlBZHJRU0JxSWdjZ0FTQVBRUUYxSWc5cmFrRUdkU0lNTmdJb0lBQWdCeUFQSUFGcmFrRUdkU0lCTmdJWUlBQWdBeUFGYWtFR2RTSUROZ0lJSUFOQmdBUnFJQUZCZ0FScWNrSC9CMHNOQWlBTFFZQUVhaUFNUVlBRWFuSkIvd2RMRFFJZ0FDQUdJQkZxUVNCcUlnRWdCRUVCZFNBS2FpSURhMEVHZFNJSE5nSThJQUFnRVNBR2EwRWdhaUlHSUFRZ0NrRUJkU0lGYTJwQkJuVWlDallDTENBQUlBWWdCU0FFYTJwQkJuVWlCRFlDSENBQUlBRWdBMnBCQm5VaUFEWUNEQ0FBUVlBRWFpQUVRWUFFYW5KQi93ZExEUUlnQjBHQUJHb2dDa0dBQkdweVFmOEhUUTBCREFJTElBTkI0Z0J4UlFSQVFRRWhBaUFBS0FJQVFTQnFRUVoxSWdGQmdBUnFRZjhIU3cwQ0lBQWdBVFlDT0NBQUlBRTJBandnQUNBQk5nSTBJQUFnQVRZQ01DQUFJQUUyQWl3Z0FDQUJOZ0lvSUFBZ0FUWUNKQ0FBSUFFMkFpQWdBQ0FCTmdJY0lBQWdBVFlDR0NBQUlBRTJBaFFnQUNBQk5nSVFJQUFnQVRZQ0RDQUFJQUUyQWdnZ0FDQUJOZ0lFSUFBZ0FUWUNBQXdCQzBFQklRSWdBQ0FBS0FJRUlBRnNJZ2NnQUNnQ0dDQUJiQ0lHUVFGMWFpSURJQUFvQWdBaUJTQUFLQUlVSUFSc0lnUnFJZ3BxUVNCcVFRWjFJZ0UyQWpBZ0FDQUtJQU5yUVNCcVFRWjFJZ00yQWd3Z0FDQUZJQVJySWdVZ0JpQUhRUUYxSWdkcmFrRWdha0VHZFNJRU5nSUlJQUFnQnlBR2F5QUZha0VnYWtFR2RTSUdOZ0lFSUFBZ0FUWUNBQ0FBSUFFMkFpQWdBQ0FHTmdJMElBQWdBVFlDRUNBQUlBWTJBaVFnQUNBRU5nSTRJQUFnQmpZQ0ZDQUFJQVEyQWlnZ0FDQUROZ0k4SUFBZ0JEWUNHQ0FBSUFNMkFpd2dBQ0FETmdJY0lBTkJnQVJxSUFGQmdBUnFJQVJCZ0FScUlBWkJnQVJxY25KeVFmOEhTdzBCQzBFQUlRSUxJQUlMOHdJQ0FuOEJmZ0pBSUFKRkRRQWdBQ0FDYWlJRFFYOXFJQUU2QUFBZ0FDQUJPZ0FBSUFKQkEwa05BQ0FEUVg1cUlBRTZBQUFnQUNBQk9nQUJJQU5CZldvZ0FUb0FBQ0FBSUFFNkFBSWdBa0VIU1EwQUlBTkJmR29nQVRvQUFDQUFJQUU2QUFNZ0FrRUpTUTBBSUFCQkFDQUFhMEVEY1NJRWFpSURJQUZCL3dGeFFZR0NoQWhzSWdFMkFnQWdBeUFDSUFSclFYeHhJZ1JxSWdKQmZHb2dBVFlDQUNBRVFRbEpEUUFnQXlBQk5nSUlJQU1nQVRZQ0JDQUNRWGhxSUFFMkFnQWdBa0YwYWlBQk5nSUFJQVJCR1VrTkFDQURJQUUyQWhnZ0F5QUJOZ0lVSUFNZ0FUWUNFQ0FESUFFMkFnd2dBa0Z3YWlBQk5nSUFJQUpCYkdvZ0FUWUNBQ0FDUVdocUlBRTJBZ0FnQWtGa2FpQUJOZ0lBSUFRZ0EwRUVjVUVZY2lJRWF5SUNRU0JKRFFBZ0FhMGlCVUlnaGlBRmhDRUZJQU1nQkdvaEFRTkFJQUVnQlRjREdDQUJJQVUzQXhBZ0FTQUZOd01JSUFFZ0JUY0RBQ0FCUVNCcUlRRWdBa0ZnYWlJQ1FSOUxEUUFMQ3lBQUMvSURBUU4vSUFFb0FnQWlBMEgvLy84SFJ3UkFJQUVvQWdRaEJDQUFJQUlnQWtFRGNTQUNRUkJKSWdJYlFRSjBJZ1ZCOENscUtBSUFRUkJCQ0NBQ0d5SUNiR29nQlVHd0tXb29BZ0JxSWdBZ0F5QUFMUUFBYWtHd0xtb3RBQUE2QUFBZ0FTZ0NDQ0VESUFBZ0JDQUFMUUFCYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VFSUFBZ0F5QUFMUUFDYWtHd0xtb3RBQUE2QUFJZ0FDQUVJQUF0QUFOcVFiQXVhaTBBQURvQUF5QUJLQUlVSVFNZ0FDQUNhaUlBSUFFb0FoQWdBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BaGdoQkNBQUlBTWdBQzBBQVdwQnNDNXFMUUFBT2dBQklBRW9BaHdoQXlBQUlBUWdBQzBBQW1wQnNDNXFMUUFBT2dBQ0lBQWdBeUFBTFFBRGFrR3dMbW90QUFBNkFBTWdBU2dDSkNFRElBQWdBbW9pQUNBQktBSWdJQUF0QUFCcVFiQXVhaTBBQURvQUFDQUJLQUlvSVFRZ0FDQURJQUF0QUFGcVFiQXVhaTBBQURvQUFTQUJLQUlzSVFNZ0FDQUVJQUF0QUFKcVFiQXVhaTBBQURvQUFpQUFJQU1nQUMwQUEycEJzQzVxTFFBQU9nQURJQUVvQWpRaEF5QUFJQUpxSWdBZ0FTZ0NNQ0FBTFFBQWFrR3dMbW90QUFBNkFBQWdBU2dDT0NFQ0lBQWdBeUFBTFFBQmFrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQWdBaUFBTFFBQ2FrR3dMbW90QUFBNkFBSWdBQ0FCSUFBdEFBTnFRYkF1YWkwQUFEb0FBd3NMMHhBQkRIOGpBRUdBQVdzaUNpUUFJQUFRRHlFRVFRRWhCUUpBQWtBQ2Z5QUNRUUZOQkVBZ0JFRUFTQTBDSUFSQkdYWkIvZ0J4UVlBSWFpQUVRWUNBZ09BQVR3MEJHaUFFUVJWMlFmNFBjVUhBQ0dvZ0JFR0FnSUFJVHcwQkdpQUVRUkYyUWY3L0FYRkJrQWxxSUFSQmdJQ0FBVThOQVJvZ0JFRVFka0VCZEVHUUNtb01BUXNnQWtFRFRRUkFJQVJCZjB3RVFFRUNRYUlRSUFSQmdJQ0FnQVJ4R3lFRkRBTUxJQVJCR1haQi9nQnhRZEFLYWlBRVFZQ0FnSUFCVHcwQkdpQUVRUloyUWY0SGNVR1FDMm9nQkVHQWdJQVFUdzBCR2lBRVFSRjJRZjcvQVhGQjBBdHFEQUVMSUFKQkIwMEVRQ0FFUVJwMklnSkJlR3BCT0VrRVFDQUNRUUYwUWRBTmFnd0NDeUFFUVJWMlFmNFBjVUhRRG1vTUFRc2dCRUVaZGtIK0FIRkIwQkJxSUFKQkVFME5BQm9nQkVFZGRpSUNCRUFnQWtFQmRFSFFFV29NQVFzZ0JFRVhka0grQTNGQjRCRnFDeThCQUNJRkRRQkJBU0VMREFFTFFRRWhDeUFGUVF0Mklna2dBMHNOQUVFZ0lBVkJIM0VpQm1zaEFnSkFJQWxGQkVBTUFRc2dCQ0FHZENFRUFrQWdCVUVGZGtFL2NTSU1SUVJBREFFTElBSWdERWtFUUNBQUlBWVFDMEYvUmcwRElBQVFEeUVFUVNBaEFnc2dCQ0FNZENFR1FRRWdERUYvYW5RaEJ5QUVRU0FnREd0MklRUURRQ0FLUVVCcklBaEJBblJxUVg5QkFTQUVJQWR4R3pZQ0FDQUlRUUZxSVFnZ0IwRUJkaUlIRFFBTElBSWdER3NoQWlBR0lRUUxJQWdnQ1VrRVFDQU1RUU5KSWc4Z0JVSC9yd0ZMY1NFRkEwQWdBa0VQVFFSQUlBQkJJQ0FDYXhBTFFYOUdCRUFNQlFzZ0FCQVBJUVJCSUNFQ0MwRUFJUVlDUUFKQUFuOENRQ0FFUVFCSURRQkJBU0VHSUFSQi8vLy8vd05MRFFCQkFpRUdJQVJCLy8vLy93RkxEUUJCQXlFR0lBUkIvLy8vL3dCTERRQkJCQ0VHSUFSQi8vLy9QMHNOQUVFRklRWWdCRUgvLy84ZlN3MEFRUVloQmlBRVFmLy8vdzlMRFFCQkJ5RUdJQVJCLy8vL0Iwc05BRUVJSVFZZ0JFSC8vLzhEU3cwQVFRa2hCaUFFUWYvLy93RkxEUUJCQ2lFR0lBUkIvLy8vQUVzTkFFRUxJUVlnQkVILy96OUxEUUJCRENFR0lBUkIvLzhmU3cwQVFRMGhCaUFFUWYvL0Qwc05BQUovQWtBZ0JFSC8vd2ROQkVBZ0JFR0FnSHh4UVlDQUJFWU5BUXdLQ3lBRlFRUWdCUnNoQmlBRVFROTBJUVJCRGlFSElBSkJjV29NQVFzZ0JVRUJJQVViSVFVZ0JFRVFkQ0VFUVF3aEJrRVBJUWNnQWtGd2Fnc2hBaUFISUFWMElRY2dCVVVNQVFzZ0JpQUZkQ0VIUVFFaERpQUNJQVpCQVdvaUJtc2hBaUFFSUFaMElRUWdCVVVOQVNBRklRWkJBQXNoRGlBQ0lBWlBCSDhnQkFVZ0FFRWdJQUpyRUF0QmYwWUVRQXdIQzBFZ0lRSWdBQkFQQ3lFTklBSWdCbXNoQWlBTklBWjBJUVFnRFVFZ0lBWnJkaUFIYWlFSERBRUxRUUFoQlFzZ0NrRkFheUFJUVFKMGFrRUFJQWRCQW1vZ0J5QUlJQXhHR3lBSElBOGJJZzFCQW1wQkFYWWlCbXNnQmlBTlFRRnhHellDQUVFQklBVWdEaHNpQlNBRlFRWkpJQVpCQXlBRlFYOXFkRXB4YWlFRklBaEJBV29pQ0NBSlJ3MEFDd3RCQUNFSEFrQWdDU0FEVHdSQVFRQWhDQXdCQ3dKQUlBSkJDRXNFUUNBQ0lRVU1BUXRCSUNFRklBQkJJQ0FDYXhBTFFYOUdEUU1nQUJBUElRUUxBa0FDUUFKL0FrQWdBMEVFUndSQUlBbEJmMm9pQWtFTlN3MERBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBa0VCYXc0TkFBRUNBd1FGQmdjSUNRb0xEQTRMSUFSQkduWkI0QkpxREE0TElBUkJHblpCb0JOcURBMExJQVJCRzNaQjRCTnFEQXdMSUFSQkczWkJnQlJxREFzTElBUkJHblpCb0JScURBb0xJQVJCR25aQjRCUnFEQWtMSUFSQkduWkJvQlZxREFnTElBUkJHblpCNEJWcURBY0xJQVJCRzNaQm9CWnFEQVlMSUFSQkhIWkJ3QlpxREFVTElBUkJISFpCMEJacURBUUxJQVJCSFhaQjRCWnFEQU1MSUFSQkhuWkI2QlpxREFJTElBUkJBRWdFUUVFQklRSU1CQXRCRVNFQ0lBbEJBMFlOQTBFU0lRSWdCRUgvLy8vL0Ewc05BMEVpSVFJZ0NVRUNSZzBEUVNOQk15QUVRZi8vLy84QlN4c2hBZ3dEQ3lBRVFSdDJRYUFTYWlBRVFSZDJRY0FTYWlBRVFmLy8vLzhBU3hzTExRQUFJZ0lOQVF3RUMwRVJRUUVnQkVFQVNCc2hBZ3NnQWtFRWRpRUlJQVVnQWtFUGNTSURheUVDSUFRZ0EzUWhCQXNnQ1VGL2FpSURCRUFEUUFKL0lBZ0VRQ0FDUVFwTkJFQWdBRUVnSUFKckVBdEJmMFlFUUF3SEN5QUFFQThoQkVFZ0lRSUxBa0FDZndKQUlBaEJmMm9pQlVFRlRRUkFBa0FDUUFKQUFrQUNRQ0FGUVFGckRnVUFBUUlEQkFZTElBUkJIblpCN2hacURBWUxJQVJCSG5aQjhoWnFEQVVMSUFSQkhYWkI5aFpxREFRTElBUkJIWFpCL2hacURBTUxJQVJCSFhaQmhoZHFEQUlMQW45Qjh3QWdCRUVaZGtId0FIRnJJQVJCZ0lDQWdBSlBEUUFhUWZRQUlBUkIvLy8vL3dCTERRQWFRWVVCSUFSQi8vLy9QMHNOQUJwQmxnRWdCRUgvLy84ZlN3MEFHa0duQVNBRVFmLy8vdzlMRFFBYVFiZ0JJQVJCLy8vL0Iwc05BQnBCeVFFZ0JFSC8vLzhEU3cwQUdrSGFBU0FFUWYvLy93RkxEUUFhUVFCQjZ3RWdCRUdBZ0lBQlNSc0xJZ1ZCQkhZZ0NFME5BZ3dJQ3lBRVFSOTJRZXdXYWdzdEFBQWhCUXNnQlVVRVFBd0dDeUFLSUFkQkFuUnFJQVZCQkhZaUJrRUJhallDQUNBQ0lBVkJEM0VpQldzaEFpQUVJQVYwSVFRZ0NDQUdhd3dCQ3lBS0lBZEJBblJxUVFFMkFnQkJBQXNoQ0NBSFFRRnFJZ2NnQTBjTkFBc2dBU0FJUVFKMGFpQUtRVUJySUFOQkFuUnFLQUlBTmdJQUlBbEJmbW9oQlVFQklBaDBJUWNEUUNBQklBb2dCU0lEUVFKMElnVnFLQUlBSUFocUlnaEJBblJxSUFwQlFHc2dCV29vQWdBMkFnQWdBMEYvYWlFRlFRRWdDSFFnQjNJaEJ5QUREUUFMREFFTElBRWdDRUVDZEdvZ0NrRkFheUFEUVFKMGFpZ0NBRFlDQUVFQklBaDBJUWNMSUFCQklDQUNheEFMRFFBZ0IwRVFkQ0FKUVFSMGNpRUxDeUFLUVlBQmFpUUFJQXNMelM0QkMzOGpBRUVRYXlJTEpBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCdE1BQUtBSUFJZ1pCRUNBQVFRdHFRWGh4SUFCQkMwa2JJZ1ZCQTNZaUFIWWlBVUVEY1FSQUlBRkJmM05CQVhFZ0FHb2lBa0VEZENJRVFlVEFBR29vQWdBaUFVRUlhaUVBQWtBZ0FTZ0NDQ0lESUFSQjNNQUFhaUlFUmdSQVFiVEFBQ0FHUVg0Z0FuZHhOZ0lBREFFTFFjVEFBQ2dDQUJvZ0F5QUVOZ0lNSUFRZ0F6WUNDQXNnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1EQXNnQlVHOHdBQW9BZ0FpQ0UwTkFTQUJCRUFDUUVFQ0lBQjBJZ0pCQUNBQ2EzSWdBU0FBZEhFaUFFRUFJQUJyY1VGL2FpSUFJQUJCREhaQkVIRWlBSFlpQVVFRmRrRUljU0lDSUFCeUlBRWdBbllpQUVFQ2RrRUVjU0lCY2lBQUlBRjJJZ0JCQVhaQkFuRWlBWElnQUNBQmRpSUFRUUYyUVFGeElnRnlJQUFnQVhacUlnSkJBM1FpQTBIa3dBQnFLQUlBSWdFb0FnZ2lBQ0FEUWR6QUFHb2lBMFlFUUVHMHdBQWdCa0YrSUFKM2NTSUdOZ0lBREFFTFFjVEFBQ2dDQUJvZ0FDQUROZ0lNSUFNZ0FEWUNDQXNnQVVFSWFpRUFJQUVnQlVFRGNqWUNCQ0FCSUFWcUlnY2dBa0VEZENJQ0lBVnJJZ05CQVhJMkFnUWdBU0FDYWlBRE5nSUFJQWdFUUNBSVFRTjJJZ1JCQTNSQjNNQUFhaUVCUWNqQUFDZ0NBQ0VDQW44Z0JrRUJJQVIwSWdSeFJRUkFRYlRBQUNBRUlBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEJDQUJJQUkyQWdnZ0JDQUNOZ0lNSUFJZ0FUWUNEQ0FDSUFRMkFnZ0xRY2pBQUNBSE5nSUFRYnpBQUNBRE5nSUFEQXdMUWJqQUFDZ0NBQ0lLUlEwQklBcEJBQ0FLYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQWlBQWNpQUJJQUoySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJZ0VvQWdSQmVIRWdCV3NoQXlBQklRSURRQUpBSUFJb0FoQWlBRVVFUUNBQ0tBSVVJZ0JGRFFFTElBQW9BZ1JCZUhFZ0JXc2lBaUFESUFJZ0Ewa2lBaHNoQXlBQUlBRWdBaHNoQVNBQUlRSU1BUXNMSUFFb0FoZ2hDU0FCSUFFb0Fnd2lCRWNFUUVIRXdBQW9BZ0FnQVNnQ0NDSUFUUVJBSUFBb0Fnd2FDeUFBSUFRMkFnd2dCQ0FBTmdJSURBc0xJQUZCRkdvaUFpZ0NBQ0lBUlFSQUlBRW9BaEFpQUVVTkF5QUJRUkJxSVFJTEEwQWdBaUVISUFBaUJFRVVhaUlDS0FJQUlnQU5BQ0FFUVJCcUlRSWdCQ2dDRUNJQURRQUxJQWRCQURZQ0FBd0tDMEYvSVFVZ0FFRy9mMHNOQUNBQVFRdHFJZ0JCZUhFaEJVRzR3QUFvQWdBaUIwVU5BRUVBSUFWcklRSUNRQUpBQWtBQ2YwRUFJQUJCQ0hZaUFFVU5BQnBCSHlBRlFmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnTWdBMEdBZ0E5cVFSQjJRUUp4SWdOMFFROTJJQUFnQVhJZ0EzSnJJZ0JCQVhRZ0JTQUFRUlZxZGtFQmNYSkJIR29MSWdoQkFuUkI1TUlBYWlnQ0FDSURSUVJBUVFBaEFBd0JDeUFGUVFCQkdTQUlRUUYyYXlBSVFSOUdHM1FoQVVFQUlRQURRQUpBSUFNb0FnUkJlSEVnQldzaUJpQUNUdzBBSUFNaEJDQUdJZ0lOQUVFQUlRSWdBeUVBREFNTElBQWdBeWdDRkNJR0lBWWdBeUFCUVIxMlFRUnhhaWdDRUNJRFJoc2dBQ0FHR3lFQUlBRWdBMEVBUjNRaEFTQUREUUFMQ3lBQUlBUnlSUVJBUVFJZ0NIUWlBRUVBSUFCcmNpQUhjU0lBUlEwRElBQkJBQ0FBYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQXlBQWNpQUJJQU4ySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJRElBSkpJUUVnQXlBQ0lBRWJJUUlnQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBQ1FiekFBQ2dDQUNBRmEwOE5BQ0FFS0FJWUlRZ2dCQ0FFS0FJTUlnRkhCRUJCeE1BQUtBSUFJQVFvQWdnaUFFMEVRQ0FBS0FJTUdnc2dBQ0FCTmdJTUlBRWdBRFlDQ0F3SkN5QUVRUlJxSWdNb0FnQWlBRVVFUUNBRUtBSVFJZ0JGRFFNZ0JFRVFhaUVEQ3dOQUlBTWhCaUFBSWdGQkZHb2lBeWdDQUNJQURRQWdBVUVRYWlFRElBRW9BaEFpQUEwQUN5QUdRUUEyQWdBTUNBdEJ2TUFBS0FJQUlnRWdCVThFUUVISXdBQW9BZ0FoQUFKQUlBRWdCV3NpQWtFUVR3UkFRYnpBQUNBQ05nSUFRY2pBQUNBQUlBVnFJZ00yQWdBZ0F5QUNRUUZ5TmdJRUlBQWdBV29nQWpZQ0FDQUFJQVZCQTNJMkFnUU1BUXRCeU1BQVFRQTJBZ0JCdk1BQVFRQTJBZ0FnQUNBQlFRTnlOZ0lFSUFBZ0FXb2lBU0FCS0FJRVFRRnlOZ0lFQ3lBQVFRaHFJUUFNQ2d0QndNQUFLQUlBSWdFZ0JVc0VRRUhBd0FBZ0FTQUZheUlCTmdJQVFjekFBRUhNd0FBb0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQW9MUVFBaEFDQUZRUzlxSWdRQ2YwR014QUFvQWdBRVFFR1V4QUFvQWdBTUFRdEJtTVFBUW44M0FnQkJrTVFBUW9DZ2dJQ0FnQVEzQWdCQmpNUUFJQXRCREdwQmNIRkIyS3JWcWdWek5nSUFRYURFQUVFQU5nSUFRZkREQUVFQU5nSUFRWUFnQ3lJQ2FpSUdRUUFnQW1zaUIzRWlBaUFGVFEwSlFlekRBQ2dDQUNJREJFQkI1TU1BS0FJQUlnZ2dBbW9pQ1NBSVRRMEtJQWtnQTBzTkNndEI4TU1BTFFBQVFRUnhEUVFDUUFKQVFjekFBQ2dDQUNJREJFQkI5TU1BSVFBRFFDQUFLQUlBSWdnZ0EwMEVRQ0FJSUFBb0FnUnFJQU5MRFFNTElBQW9BZ2dpQUEwQUN3dEJBQkFUSWdGQmYwWU5CU0FDSVFaQmtNUUFLQUlBSWdCQmYyb2lBeUFCY1FSQUlBSWdBV3NnQVNBRGFrRUFJQUJyY1dvaEJnc2dCaUFGVFEwRklBWkIvdi8vL3dkTERRVkI3TU1BS0FJQUlnQUVRRUhrd3dBb0FnQWlBeUFHYWlJSElBTk5EUVlnQnlBQVN3MEdDeUFHRUJNaUFDQUJSdzBCREFjTElBWWdBV3NnQjNFaUJrSCsvLy8vQjBzTkJDQUdFQk1pQVNBQUtBSUFJQUFvQWdScVJnMERJQUVoQUFzQ1FDQUZRVEJxSUFaTkRRQWdBRUYvUmcwQVFaVEVBQ2dDQUNJQklBUWdCbXRxUVFBZ0FXdHhJZ0ZCL3YvLy93ZExCRUFnQUNFQkRBY0xJQUVRRTBGL1J3UkFJQUVnQm1vaEJpQUFJUUVNQnd0QkFDQUdheEFUR2d3RUN5QUFJZ0ZCZjBjTkJRd0RDMEVBSVFRTUJ3dEJBQ0VCREFVTElBRkJmMGNOQWd0QjhNTUFRZkREQUNnQ0FFRUVjallDQUFzZ0FrSCsvLy8vQjBzTkFTQUNFQk1pQVVFQUVCTWlBRThOQVNBQlFYOUdEUUVnQUVGL1JnMEJJQUFnQVdzaUJpQUZRU2hxVFEwQkMwSGt3d0JCNU1NQUtBSUFJQVpxSWdBMkFnQWdBRUhvd3dBb0FnQkxCRUJCNk1NQUlBQTJBZ0FMQWtBQ1FBSkFRY3pBQUNnQ0FDSURCRUJCOU1NQUlRQURRQ0FCSUFBb0FnQWlBaUFBS0FJRUlnUnFSZzBDSUFBb0FnZ2lBQTBBQ3d3Q0MwSEV3QUFvQWdBaUFFRUFJQUVnQUU4YlJRUkFRY1RBQUNBQk5nSUFDMEVBSVFCQitNTUFJQVkyQWdCQjlNTUFJQUUyQWdCQjFNQUFRWDgyQWdCQjJNQUFRWXpFQUNnQ0FEWUNBRUdBeEFCQkFEWUNBQU5BSUFCQkEzUWlBa0hrd0FCcUlBSkIzTUFBYWlJRE5nSUFJQUpCNk1BQWFpQUROZ0lBSUFCQkFXb2lBRUVnUncwQUMwSEF3QUFnQmtGWWFpSUFRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlDYXlJRE5nSUFRY3pBQUNBQklBSnFJZ0kyQWdBZ0FpQURRUUZ5TmdJRUlBQWdBV3BCS0RZQ0JFSFF3QUJCbk1RQUtBSUFOZ0lBREFJTElBQXRBQXhCQ0hFTkFDQUJJQU5ORFFBZ0FpQURTdzBBSUFBZ0JDQUdhallDQkVITXdBQWdBMEY0SUFOclFRZHhRUUFnQTBFSWFrRUhjUnNpQUdvaUFUWUNBRUhBd0FCQndNQUFLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRZERBQUVHY3hBQW9BZ0EyQWdBTUFRc2dBVUhFd0FBb0FnQWlCRWtFUUVIRXdBQWdBVFlDQUNBQklRUUxJQUVnQm1vaEFrSDB3d0FoQUFKQUFrQUNRQUpBQWtBQ1FBTkFJQUlnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEI5TU1BSVFBRFFDQUFLQUlBSWdJZ0EwMEVRQ0FDSUFBb0FnUnFJZ1FnQTBzTkF3c2dBQ2dDQ0NFQURBQUFDd0FMSUFBZ0FUWUNBQ0FBSUFBb0FnUWdCbW8yQWdRZ0FVRjRJQUZyUVFkeFFRQWdBVUVJYWtFSGNSdHFJZ2tnQlVFRGNqWUNCQ0FDUVhnZ0FtdEJCM0ZCQUNBQ1FRaHFRUWR4RzJvaUFTQUpheUFGYXlFQUlBVWdDV29oQnlBQklBTkdCRUJCek1BQUlBYzJBZ0JCd01BQVFjREFBQ2dDQUNBQWFpSUFOZ0lBSUFjZ0FFRUJjallDQkF3REN5QUJRY2pBQUNnQ0FFWUVRRUhJd0FBZ0J6WUNBRUc4d0FCQnZNQUFLQUlBSUFCcUlnQTJBZ0FnQnlBQVFRRnlOZ0lFSUFBZ0Iyb2dBRFlDQUF3REN5QUJLQUlFSWdKQkEzRkJBVVlFUUNBQ1FYaHhJUW9DUUNBQ1FmOEJUUVJBSUFFb0FnZ2lBeUFDUVFOMklnUkJBM1JCM01BQWFrY2FJQU1nQVNnQ0RDSUNSZ1JBUWJUQUFFRzB3QUFvQWdCQmZpQUVkM0UyQWdBTUFnc2dBeUFDTmdJTUlBSWdBellDQ0F3QkN5QUJLQUlZSVFnQ1FDQUJJQUVvQWd3aUJrY0VRQ0FFSUFFb0FnZ2lBazBFUUNBQ0tBSU1HZ3NnQWlBR05nSU1JQVlnQWpZQ0NBd0JDd0pBSUFGQkZHb2lBeWdDQUNJRkRRQWdBVUVRYWlJREtBSUFJZ1VOQUVFQUlRWU1BUXNEUUNBRElRSWdCU0lHUVJScUlnTW9BZ0FpQlEwQUlBWkJFR29oQXlBR0tBSVFJZ1VOQUFzZ0FrRUFOZ0lBQ3lBSVJRMEFBa0FnQVNBQktBSWNJZ0pCQW5SQjVNSUFhaUlES0FJQVJnUkFJQU1nQmpZQ0FDQUdEUUZCdU1BQVFiakFBQ2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQUZHRzJvZ0JqWUNBQ0FHUlEwQkN5QUdJQWcyQWhnZ0FTZ0NFQ0lDQkVBZ0JpQUNOZ0lRSUFJZ0JqWUNHQXNnQVNnQ0ZDSUNSUTBBSUFZZ0FqWUNGQ0FDSUFZMkFoZ0xJQUVnQ21vaEFTQUFJQXBxSVFBTElBRWdBU2dDQkVGK2NUWUNCQ0FISUFCQkFYSTJBZ1FnQUNBSGFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVFRGRpSUJRUU4wUWR6QUFHb2hBQUovUWJUQUFDZ0NBQ0lDUVFFZ0FYUWlBWEZGQkVCQnRNQUFJQUVnQW5JMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0J6WUNDQ0FCSUFjMkFnd2dCeUFBTmdJTUlBY2dBVFlDQ0F3REN5QUhBbjlCQUNBQVFRaDJJZ0ZGRFFBYVFSOGdBRUgvLy84SFN3MEFHaUFCSUFGQmdQNC9ha0VRZGtFSWNTSUJkQ0lDSUFKQmdPQWZha0VRZGtFRWNTSUNkQ0lESUFOQmdJQVBha0VRZGtFQ2NTSURkRUVQZGlBQklBSnlJQU55YXlJQlFRRjBJQUFnQVVFVmFuWkJBWEZ5UVJ4cUN5SUJOZ0ljSUFkQ0FEY0NFQ0FCUVFKMFFlVENBR29oQWdKQVFiakFBQ2dDQUNJRFFRRWdBWFFpQkhGRkJFQkJ1TUFBSUFNZ0JISTJBZ0FnQWlBSE5nSUFEQUVMSUFCQkFFRVpJQUZCQVhacklBRkJIMFliZENFRElBSW9BZ0FoQVFOQUlBRWlBaWdDQkVGNGNTQUFSZzBESUFOQkhYWWhBU0FEUVFGMElRTWdBaUFCUVFSeGFpSUVLQUlRSWdFTkFBc2dCQ0FITmdJUUN5QUhJQUkyQWhnZ0J5QUhOZ0lNSUFjZ0J6WUNDQXdDQzBIQXdBQWdCa0ZZYWlJQVFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEd5SUNheUlITmdJQVFjekFBQ0FCSUFKcUlnSTJBZ0FnQWlBSFFRRnlOZ0lFSUFBZ0FXcEJLRFlDQkVIUXdBQkJuTVFBS0FJQU5nSUFJQU1nQkVFbklBUnJRUWR4UVFBZ0JFRlpha0VIY1J0cVFWRnFJZ0FnQUNBRFFSQnFTUnNpQWtFYk5nSUVJQUpCL01NQUtRSUFOd0lRSUFKQjlNTUFLUUlBTndJSVFmekRBQ0FDUVFocU5nSUFRZmpEQUNBR05nSUFRZlREQUNBQk5nSUFRWURFQUVFQU5nSUFJQUpCR0dvaEFBTkFJQUJCQnpZQ0JDQUFRUWhxSVFFZ0FFRUVhaUVBSUFRZ0FVc05BQXNnQWlBRFJnMERJQUlnQWlnQ0JFRitjVFlDQkNBRElBSWdBMnNpQkVFQmNqWUNCQ0FDSUFRMkFnQWdCRUgvQVUwRVFDQUVRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQVFMSUFOQ0FEY0NFQ0FEQW45QkFDQUVRUWgySWdCRkRRQWFRUjhnQkVILy8vOEhTdzBBR2lBQUlBQkJnUDQvYWtFUWRrRUljU0lBZENJQklBRkJnT0FmYWtFUWRrRUVjU0lCZENJQ0lBSkJnSUFQYWtFUWRrRUNjU0lDZEVFUGRpQUFJQUZ5SUFKeWF5SUFRUUYwSUFRZ0FFRVZhblpCQVhGeVFSeHFDeUlBTmdJY0lBQkJBblJCNU1JQWFpRUJBa0JCdU1BQUtBSUFJZ0pCQVNBQWRDSUdjVVVFUUVHNHdBQWdBaUFHY2pZQ0FDQUJJQU0yQWdBZ0F5QUJOZ0lZREFFTElBUkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQUVvQWdBaEFRTkFJQUVpQWlnQ0JFRjRjU0FFUmcwRUlBQkJIWFloQVNBQVFRRjBJUUFnQWlBQlFRUnhhaUlHS0FJUUlnRU5BQXNnQmlBRE5nSVFJQU1nQWpZQ0dBc2dBeUFETmdJTUlBTWdBellDQ0F3REN5QUNLQUlJSWdBZ0J6WUNEQ0FDSUFjMkFnZ2dCMEVBTmdJWUlBY2dBallDRENBSElBQTJBZ2dMSUFsQkNHb2hBQXdGQ3lBQ0tBSUlJZ0FnQXpZQ0RDQUNJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FqWUNEQ0FESUFBMkFnZ0xRY0RBQUNnQ0FDSUFJQVZORFFCQndNQUFJQUFnQldzaUFUWUNBRUhNd0FCQnpNQUFLQUlBSWdBZ0JXb2lBallDQUNBQ0lBRkJBWEkyQWdRZ0FDQUZRUU55TmdJRUlBQkJDR29oQUF3REMwR3d3QUJCTURZQ0FFRUFJUUFNQWdzQ1FDQUlSUTBBQWtBZ0JDZ0NIQ0lBUVFKMFFlVENBR29pQXlnQ0FDQUVSZ1JBSUFNZ0FUWUNBQ0FCRFFGQnVNQUFJQWRCZmlBQWQzRWlCellDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQVJHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQWcyQWhnZ0JDZ0NFQ0lBQkVBZ0FTQUFOZ0lRSUFBZ0FUWUNHQXNnQkNnQ0ZDSUFSUTBBSUFFZ0FEWUNGQ0FBSUFFMkFoZ0xBa0FnQWtFUFRRUkFJQVFnQWlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnTWdBa0VCY2pZQ0JDQUNJQU5xSUFJMkFnQWdBa0gvQVUwRVFDQUNRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQUVMSUFNQ2YwRUFJQUpCQ0hZaUFFVU5BQnBCSHlBQ1FmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnVWdCVUdBZ0E5cVFSQjJRUUp4SWdWMFFROTJJQUFnQVhJZ0JYSnJJZ0JCQVhRZ0FpQUFRUlZxZGtFQmNYSkJIR29MSWdBMkFod2dBMElBTndJUUlBQkJBblJCNU1JQWFpRUJBa0FDUUNBSFFRRWdBSFFpQlhGRkJFQkJ1TUFBSUFVZ0IzSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBRW9BZ0FoQlFOQUlBVWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCU0FBUVFGMElRQWdBU0FGUVFSeGFpSUdLQUlRSWdVTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUFsRkRRQUNRQ0FCS0FJY0lnQkJBblJCNU1JQWFpSUNLQUlBSUFGR0JFQWdBaUFFTmdJQUlBUU5BVUc0d0FBZ0NrRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0JVRURjallDQkNBQklBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQ0FSQUlBaEJBM1lpQlVFRGRFSGN3QUJxSVFCQnlNQUFLQUlBSVFJQ2YwRUJJQVYwSWdVZ0JuRkZCRUJCdE1BQUlBVWdCbkkyQWdBZ0FBd0JDeUFBS0FJSUN5RUZJQUFnQWpZQ0NDQUZJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0JUWUNDQXRCeU1BQUlBUTJBZ0JCdk1BQUlBTTJBZ0FMSUFGQkNHb2hBQXNnQzBFUWFpUUFJQUFMUkFFQmZ5QUFJQUFvQWhBZ0FXb2lBVFlDRUNBQUlBRkJCM0UyQWdoQmZ5RUNJQUVnQUNnQ0RFRURkRTBFZnlBQUlBQW9BZ0FnQVVFRGRtbzJBZ1JCQUFWQmZ3c0w1UWNCQ0g4Z0FDQUVRUUFnQm1zZ0FpQUNJQVpxUVFCSUd5SUNJQUlnQkVvYklnSnFJQUFnQWtFQVNoc2lDU0FGUVFBZ0Iyc2dBeUFESUFkcVFRQklHeUlBSUFBZ0JVb2JJZ0FnQkd4cUlBa2dBRUVBU2hzaEF5QUhRUUFnQUdzZ0FFRWZkWEVpQ1dzZ0FDQUhhaUlBSUFWcklneEJBQ0FBSUFWS0d5SVBheUVMSUFaQkFDQUNheUlPSUFKQkgzVnhJZzFySUFJZ0Jtb2lBQ0FFYTBFQUlBQWdCRW9pQlJzaUNtc2hBQUpBSUFKQkFFZ2dCWElpRUVVRVFDQUpCRUFEUUNBQklBTWdBQkFWSUFocUlRRWdDVUYvYWlJSkRRQUxDeUFMUlEwQkEwQWdBU0FESUFBUUZTQUlhaUVCSUFNZ0JHb2hBeUFMUVg5cUlnc05BQXNNQVFzQ1FDQUpSUTBBSUExRkJFQURRQ0FBSVFjZ0FTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQVNBSWFpRUJJQWxCZjJvaUNRMEFEQUlBQ3dBTElBRWdEbW9oQmdOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0JpRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQmlBSWFpRUdJQUVnQ0dvaEFTQUpRWDlxSWdrTkFBc0xJQXRGRFFBZ0RVVUVRQU5BSUFBaEJ5QUJJUUlnQXlFRklBQUVRQU5BSUFJZ0JTMEFBRG9BQUNBQ1FRRnFJUUlnQlVFQmFpRUZJQWRCZjJvaUJ3MEFDd3NnQ2dSQUlBSWdCVUYvYWkwQUFDQUtFQWNhQ3lBQklBaHFJUUVnQXlBRWFpRURJQXRCZjJvaUN3MEFEQUlBQ3dBTElBRWdEbW9oQ1FOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0NTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQ0NBSmFpRUpJQUVnQ0dvaEFTQURJQVJxSVFNZ0MwRi9haUlMRFFBTEN3SkFJQTlGRFFBZ0F5QUVheUVESUJCRkJFQURRQ0FCSUFNZ0FCQVZJQWhxSVFFZ0RFRi9haUlNRFFBTUFnQUxBQXNnRFVVRVFBTkFJQU1oQWlBQklRVWdBQ0VISUFBRVFBTkFJQVVnQWkwQUFEb0FBQ0FGUVFGcUlRVWdBa0VCYWlFQ0lBZEJmMm9pQncwQUN3c2dDZ1JBSUFVZ0FrRi9haTBBQUNBS0VBY2FDeUFCSUFocUlRRWdERUYvYWlJTURRQU1BZ0FMQUFzZ0FTQU9haUVKQTBBZ0FTQURMUUFBSUEwUUJ5RUJJQUFoQnlBSklRSWdBeUVGSUFBRVFBTkFJQUlnQlMwQUFEb0FBQ0FDUVFGcUlRSWdCVUVCYWlFRklBZEJmMm9pQncwQUN3c2dDZ1JBSUFJZ0JVRi9haTBBQUNBS0VBY2FDeUFJSUFscUlRa2dBU0FJYWlFQklBeEJmMm9pREEwQUN3c0w5QUlCQTM4Z0FVRURkRUh3Tm1vaUF5Z0NBQ0VGSUFNdEFBUWhBeUFCUVFOMFFiQTFhaUlCTFFBRUlRUUNRQ0FCS0FJQVFRUkdCRUFnQWlBRVFRRjBhaTRCQUNFQklBVkJCRVlFUUNBQklBSWdBMEVCZEdvdUFRQnFRUUZxUVFGMUR3c0NmeUFBS0FMTUFTSUNCRUFnQUNnQ0JDQUNLQUlFUmd3QkMwRUFDMFVOQVNBQklBQW9Bc3dCSUFOQkFYUnFMZ0VjYWtFQmFrRUJkUThMSUFWQkJFWUVRQ0FDSUFOQkFYUnFMZ0VBSVFFQ2Z5QUFLQUxJQVNJQ0JFQWdBQ2dDQkNBQ0tBSUVSZ3dCQzBFQUMwVU5BU0FCSUFBb0FzZ0JJQVJCQVhScUxnRWNha0VCYWtFQmRROExBbjhDZnlBQUtBTElBU0lCQkVBZ0FDZ0NCQ0FCS0FJRVJnd0JDMEVBQzBVRVFFRUFJUUpCQUF3QkMwRUJJUUlnQUNnQ3lBRWdCRUVCZEdvdUFSd0xJUUVDZnlBQUtBTE1BU0lFQkVBZ0FDZ0NCQ0FFS0FJRVJnd0JDMEVBQzBVTkFDQUFLQUxNQVNBRFFRRjBhaTRCSENFQUlBSkZCRUFnQUE4TElBQWdBV3BCQVdwQkFYVWhBUXNnQVF1SkJ3RUhmeUFESUFWcUlnMGdBUzRCQUNJTVFRSjFhaUVESUFRZ0Jtb2lEaUFCTGdFQ0lnOUJBblZxSVFRZ0FpZ0NDRUVFZENFSklBSW9BZ1JCQkhRaENpQUFJQVpCQkhScUlBVnFJUXNDUUNBTVFRTnhRUVIwSUE5QkEzRkJBblJ5UWRBN2FpZ0NBQ0lNUVE1TkJFQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnREVFQmF3NE9BUUlEQkFVR0J3Z0pDZ3NNRFE0QUN5QUNLQUlBSUFzZ0F5QUVJQW9nQ1NBSElBaEJFQkFNREE4TElBSW9BZ0FnQ3lBRElBUkJmbW9nQ2lBSklBY2dDRUVBRUNRTURnc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJRUVjTURRc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJUVFFUUpBd01DeUFDS0FJQUlBc2dBMEYrYWlBRUlBb2dDU0FISUFoQkFCQWpEQXNMSUFJb0FnQWdDeUFEUVg1cUlBUkJmbW9nQ2lBSklBY2dDRUVBRUJvTUNnc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRQVFJUXdKQ3lBQ0tBSUFJQXNnQTBGK2FpQUVRWDVxSUFvZ0NTQUhJQWhCQWhBYURBZ0xJQUlvQWdBZ0N5QURRWDVxSUFRZ0NpQUpJQWNnQ0JCR0RBY0xJQUlvQWdBZ0N5QURRWDVxSUFSQmZtb2dDaUFKSUFjZ0NFRUFFQ0lNQmdzZ0FpZ0NBQ0FMSUFOQmZtb2dCRUYrYWlBS0lBa2dCeUFJRUVVTUJRc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRRVFJZ3dFQ3lBQ0tBSUFJQXNnQTBGK2FpQUVJQW9nQ1NBSElBaEJBUkFqREFNTElBSW9BZ0FnQ3lBRFFYNXFJQVJCZm1vZ0NpQUpJQWNnQ0VFQkVCb01BZ3NnQWlnQ0FDQUxJQU5CZm1vZ0JFRithaUFLSUFrZ0J5QUlRUUVRSVF3QkN5QUNLQUlBSUFzZ0EwRithaUFFUVg1cUlBb2dDU0FISUFoQkF4QWFDeUFOUVFGMklBRXVBUUFpQ1VFRGRXb2hBeUFPUVFGMklBRXVBUUlpQVVFRGRXb2hCQ0FDS0FJQUlBSW9BZ1FpQ2lBQ0tBSUlJZ3RzUVFoMGFpRUNJQUFnQmtFQ2RFRjRjV29nQlVFQmRtcEJnQUpxSVFVZ0NFRUJkaUVHSUFkQkFYWWhCeUFCUVFkeElRZ2dDMEVEZENFQUlBcEJBM1FoQVFKQUlBbEJCM0VpQ1VVTkFDQUlSUTBBSUFJZ0JTQURJQVFnQVNBQUlBa2dDQ0FISUFZUVNBOExJQWtFUUNBQ0lBVWdBeUFFSUFFZ0FDQUpJQWNnQmhCTER3c2dDQVJBSUFJZ0JTQURJQVFnQVNBQUlBZ2dCeUFHRUVvUEN5QUNJQVVnQXlBRUlBRWdBQ0FISUFaQkNCQU1JQUlnQUNBQmJHb2dCVUZBYXlBRElBUWdBU0FBSUFjZ0JrRUlFQXdMeHdFQkJIOGdBQ2dDQkNFQ0FrQWdBQ2dDREVFRGRDQUFLQUlRYXlJRFFTQk9CRUFnQWlnQUFDSUJRUmgwSUFGQkNIUkJnSUQ4QjNGeUlBRkJDSFpCZ1A0RGNTQUJRUmgyY25JaEFTQUFLQUlJSWdCRkRRRWdBU0FBZENBQ0xRQUVRUWdnQUd0MmNnOExJQU5CQVVnRVFFRUFEd3NnQWkwQUFDQUFLQUlJSWdCQkdHb2lCSFFoQVNBQUlBTnFRWGhxSWdCQkFVZ05BQU5BSUFJdEFBRWdCRUY0YWlJRWRDQUJjaUVCSUFCQkNFb2hBeUFDUVFGcUlRSWdBRUY0YWlFQUlBTU5BQXNMSUFFTGpBUUJCMzhDUUNBQVFYOXFJZ2d0QUFBaUJTQUFMUUFBSWdacklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJRVR3MEFJQUJCZm1vdEFBQWlCQ0FGYXlJSElBZEJIM1VpQjJvZ0IzTWdBaWdDQ0NJSlR3MEFJQUF0QUFFaUJ5QUdheUlLSUFwQkgzVWlDbW9nQ25NZ0NVOE5BQ0FCUVFOTkJFQWdDQ0FGSUFFZ0FpZ0NBR3BCZjJvdEFBQWlDRUYvY3lJSklBaEJBV29pQ0NBR0lBVnJRUUowSUFkcklBUnFRUVJxUVFOMUlnVWdCU0FJU2hzZ0JTQUpTQnNpQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFGYTBHd0xtb3RBQUE2QUFBTUFRc2dDQ0FGSUFkcUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFBZ0JpQUhRUUYwYWlBRWFrRUNha0VDZGpvQUFBc0NRQ0FBSUFOcUlnQkJmMm9pQnkwQUFDSURJQUF0QUFBaUJXc2lCaUFHUVI5MUlnWnFJQVp6SUFJb0FnUlBEUUFnQUVGK2FpMEFBQ0lHSUFOcklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJSUlnaFBEUUFnQUMwQUFTSUVJQVZySWdrZ0NVRWZkU0lKYWlBSmN5QUlUdzBBSUFGQkEwMEVRQ0FISUFFZ0FpZ0NBR3BCZjJvdEFBQWlBVUYvY3lJQ0lBRkJBV29pQnlBRklBTnJRUUowSUFScklBWnFRUVJxUVFOMUlnRWdBU0FIU2hzZ0FTQUNTQnNpQVNBRGFrR3dMbW90QUFBNkFBQWdBQ0FGSUFGclFiQXVhaTBBQURvQUFBOExJQWNnQXlBRWFpQUdRUUYwYWtFQ2FrRUNkam9BQUNBQUlBVWdCRUVCZEdvZ0JtcEJBbXBCQW5ZNkFBQUxDMGNBQWtBZ0FVRUVUUVJBQWtBQ1FBSkFBa0FnQVVFQmF3NEVBUUlEQlFBTElBQW9Bc2dCRHdzZ0FDZ0N6QUVQQ3lBQUtBTFFBUThMSUFBb0F0UUJEd3RCQUNFQUN5QUFDNlVEQVF0L1FRQWdBMnNpQzBFQmRDRUVJQUVnQWlnQ0FHcEJmMm90QUFBaUFVRUJhaUVKSUFGQmYzTWhDZ0pBSUFBZ0Eyc2lCeTBBQUNJRklBQXRBQUFpQm1zaUFTQUJRUjkxSWdGcUlBRnpJQUlvQWdRaUFVOE5BQ0FBSUFScUxRQUFJZzBnQldzaUNDQUlRUjkxSWdocUlBaHpJQUlvQWdnaUNFOE5BQ0FBSUFOcUxRQUFJZzRnQm1zaURDQU1RUjkxSWd4cUlBeHpJQWhQRFFBZ0J5QUtJQWtnQmlBRmEwRUNkQ0FPYXlBTmFrRUVha0VEZFNJQklBRWdDVW9iSUFFZ0NrZ2JJZ0VnQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFCYTBHd0xtb3RBQUE2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJBV29pQlNBTGFpSUxMUUFBSWdZZ0FDMEFBU0lBYXlJSElBZEJIM1VpQjJvZ0IzTWdBVThOQUNBRUlBVnFMUUFBSWdFZ0Jtc2lCQ0FFUVI5MUlnUnFJQVJ6SUFJb0FnZ2lBazhOQUNBRElBVnFMUUFBSWdNZ0FHc2lCQ0FFUVI5MUlnUnFJQVJ6SUFKUERRQWdDeUFLSUFrZ0FDQUdhMEVDZENBRGF5QUJha0VFYWtFRGRTSUJJQUVnQ1VvYklBRWdDa2diSWdFZ0JtcEJzQzVxTFFBQU9nQUFJQVVnQUNBQmEwR3dMbW90QUFBNkFBQUxDMFFCQW44L0FDRUJBa0JCc01RQUtBSUFJZ0lnQUVFRGFrRjhjV29pQUNBQlFSQjBUUTBBSUFBUUFRMEFRYkRBQUVFd05nSUFRWDhQQzBHd3hBQWdBRFlDQUNBQ0N6UUJBWDhDUUNBQlFSQkxEUUFnQUNnQ0JDQUJRUUowYWlnQ0FDSUFSUTBBSUFBb0FoUkJBa2tOQUNBQUtBSUFJUUlMSUFJTGdnUUJBMzhnQWtHQUJFOEVRQ0FBSUFFZ0FoQUFHaUFBRHdzZ0FDQUNhaUVEQWtBZ0FDQUJjMEVEY1VVRVFBSkFJQUpCQVVnRVFDQUFJUUlNQVFzZ0FFRURjVVVFUUNBQUlRSU1BUXNnQUNFQ0EwQWdBaUFCTFFBQU9nQUFJQUZCQVdvaEFTQUNRUUZxSWdJZ0EwOE5BU0FDUVFOeERRQUxDd0pBSUFOQmZIRWlCRUhBQUVrTkFDQUNJQVJCUUdvaUJVc05BQU5BSUFJZ0FTZ0NBRFlDQUNBQ0lBRW9BZ1EyQWdRZ0FpQUJLQUlJTmdJSUlBSWdBU2dDRERZQ0RDQUNJQUVvQWhBMkFoQWdBaUFCS0FJVU5nSVVJQUlnQVNnQ0dEWUNHQ0FDSUFFb0FodzJBaHdnQWlBQktBSWdOZ0lnSUFJZ0FTZ0NKRFlDSkNBQ0lBRW9BaWcyQWlnZ0FpQUJLQUlzTmdJc0lBSWdBU2dDTURZQ01DQUNJQUVvQWpRMkFqUWdBaUFCS0FJNE5nSTRJQUlnQVNnQ1BEWUNQQ0FCUVVCcklRRWdBa0ZBYXlJQ0lBVk5EUUFMQ3lBQ0lBUlBEUUVEUUNBQ0lBRW9BZ0EyQWdBZ0FVRUVhaUVCSUFKQkJHb2lBaUFFU1EwQUN3d0JDeUFEUVFSSkJFQWdBQ0VDREFFTElBTkJmR29pQkNBQVNRUkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FpQUJMUUFCT2dBQklBSWdBUzBBQWpvQUFpQUNJQUV0QUFNNkFBTWdBVUVFYWlFQklBSkJCR29pQWlBRVRRMEFDd3NnQWlBRFNRUkFBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSWdBMGNOQUFzTElBQUx3UmdCSUg4akFFSFFBMnNpQmlRQUlBRW9BZ2doRkNBQklBRW9BZ1FpQ2lBQ2JDSWFJQU5xRUIwZ0FTZ0NBQ0VKSUFCQkFEWUNDQ0FBUWlnM0FoUWdBRUlBTndJTUlBQkJCallDQUNBRFFRUjBJUWNDUUFKQUFrQWdCRUYrYWlJRVFRVkxEUUFDUUNBRVFRRnJEZ1FCQVFFQkFBc01BUXNnQmtFQU5nSU1JQVlnRkRZQ0dDQUdJQW8yQWhRZ0JpQUZOZ0lRSUFVRVFDQUdRZEFBYWlBR1FReHFJQVpCRUdvZ0J5QUNRUVIwUVFCQkFFRVFRUkFRRGd3Q0N3c2dCa0hRQUdwQkFFR0FBeEFIR2lBSklCcEJDSFJxSUFkcUlRd2dCa0lBTndOSUlBWkJRR3RDQURjREFDQUdRZ0EzQXpnZ0JrSUFOd013SUFaQ0FEY0RLQ0FHUWdBM0F5QWdCa0lBTndNWUlBWkNBRGNERUVFQUlRa0NmMEVBSUFKRkRRQWFRUUFnQUVFQUlBcHJRZGdCYkdvb0FzUUJSUTBBR2lBR0lBd2dDa0VFZEdzaUJDMEFCU0FFTFFBRWFpQUVMUUFHYWlBRUxRQUhhaUlYSUFRdEFBTWdCQzBBQWlBRUxRQUJJQVF0QUFCcWFtb2lGbW9pQlNBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSWFtcHFJaEpySUFRdEFBOGdCQzBBRGlBRUxRQU5JQVF0QUF4cWFtb2lFMnNpQ0RZQ0ZDQUdJQVVnRW1vZ0Uyb2lDVFlDRUVFQkN5RUZBbjhDUUNBQ0lCUkJmMnBIQkVBZ0FDQUtRZGdCYkdvb0FzUUJEUUVMSUFVTUFRc2dCaUFNSUFwQkNIUnFJZ0l0QUFVZ0FpMEFCR29nQWkwQUJtb2dBaTBBQjJvaUhpQUNMUUFESUFJdEFBSWdBaTBBQVNBQ0xRQUFhbXBxSWg5cUlnUWdBaTBBQ3lBQ0xRQUtJQUl0QUFrZ0FpMEFDR3BxYWlJWWF5QUNMUUFQSUFJdEFBNGdBaTBBRFNBQ0xRQU1hbXBxSWhscklBaHFJZ2cyQWhRZ0JpQUVJQmhxSUFscUlCbHFJZ2syQWhCQkFTRVFJQVZCQVdvTElRZEJBQ0VFQW44Q1FDQURSUTBBSUFCQmJHb29BZ0JGRFFBZ0JpQU1RWDlxSWdJZ0NrRUdkQ0lPYWlJRUlBcEJCSFFpQzJvdEFBQWdCQzBBQUdvZ0JDQUtRUVYwSWc5cUxRQUFhaUFFSUFwQk1Hd2lEV290QUFCcUloc2dBaUFOYWkwQUFDQUNJQTlxTFFBQUlBSWdDMm90QUFBZ0FpMEFBR3BxYWlJY2FpSVJJQVFnRG1vaUFpQUxhaTBBQUNBQ0xRQUFhaUFDSUE5cUxRQUFhaUFDSUExcUxRQUFhaUlWYXlBQ0lBNXFJZ0lnQzJvdEFBQWdBaTBBQUdvZ0FpQVBhaTBBQUdvZ0FpQU5haTBBQUdvaUQyc2lCRFlDSUNBR0lCRWdGV29nQ1dvZ0Qyb2lDVFlDRUNBSFFRRnFJUXRCQVF3QkN5QUhJUXRCQUFzaEFnSkFBa0FDUUFKQUFrQUNRQ0FESUFwQmYycEhCRUFnQUNnQ25BTU5BUXRCQUNFT0lBSkJBRWNoRVNBSERRRU1BZ3NnQmlBRUlBeEJFR29pQkNBS1FRWjBJaDFxSWdBZ0NrRUVkQ0lOYWkwQUFDQUFMUUFBYWlBQUlBcEJCWFFpRG1vdEFBQnFJQUFnQ2tFd2JDSVJhaTBBQUdvaUlDQUVJQkZxTFFBQUlBUWdEbW90QUFBZ0JDQU5haTBBQUNBTUxRQVFhbXBxSWlGcUlpSWdBQ0FkYWlJQUlBMXFMUUFBSUFBdEFBQnFJQUFnRG1vdEFBQnFJQUFnRVdvdEFBQnFJZ3hySUFBZ0hXb2lBQ0FOYWkwQUFDQUFMUUFBYWlBQUlBNXFMUUFBYWlBQUlCRnFMUUFBYWlJTmEyb2lCRFlDSUNBR0lBd2dJbW9nQ1dvZ0RXb2lDVFlDRUNBQ1FRQkhJUkZCQVNFT0lBSkJBV29oQUNBTFFRRnFJUXNDUUNBSERRQWdBa1VOQUNBR0lCc2dIR29nRldvZ0Qyb2dJV3NnSUdzZ0RHc2dEV3RCQlhVaUNEWUNGQXdEQ3lBSFJRMENJQUFoQWdzZ0JpQUlJQWRCQTJwMUlnZzJBaFFMQWtBZ0VFVU5BQ0FGUlEwQUlBSU5BQ0FHSUJZZ0Yyb2dFbW9nRTJvZ0dXc2dHR3NnSG1zZ0gydEJCWFVpQkRZQ0lFRUJJUkJCQVNFTkRBTUxJQkJCQUVjaEVDQUZRUUJISVEwZ0FrVU5BZ3dCQ3lBUVFRQkhJUkFnQlVFQVJ5RU5JQUFoQWdzZ0JpQUVJQUpCQTJwMUlnUTJBaUFMSUFZQ2Z5QUxRWDlxSWdCQkFrMEVRQUpBQWtBQ1FDQUFRUUZyRGdJQkFnQUxJQWxCQkhZTUF3c2dDVUVGZGd3Q0N5QUpRUlZzUVFwMURBRUxJQWxCQm5ZTElnQTJBaEFDUUNBRUlBaHlSUVJBSUFZZ0FEWUNTQ0FHSUFBMkFrd2dCaUFBTmdKRUlBWWdBRFlDUUNBR0lBQTJBandnQmlBQU5nSTRJQVlnQURZQ05DQUdJQUEyQWpBZ0JpQUFOZ0lzSUFZZ0FEWUNLQ0FHSUFBMkFpUWdCaUFBTmdJZ0lBWWdBRFlDSENBR0lBQTJBaGdnQmlBQU5nSVVEQUVMSUFZZ0FDQUlhaUlGSUFSck5nSkFJQVlnQlNBRVFRRjFJZ0pyTmdJd0lBWWdBaUFGYWpZQ0lDQUdJQVFnQldvMkFoQWdCaUFBSUFocklnVWdCR3MyQWt3Z0JpQUZJQUpyTmdJOElBWWdBaUFGYWpZQ0xDQUdJQVFnQldvMkFod2dCaUFBSUFoQkFYVWlCMm9pQlNBRWF6WUNSQ0FHSUFVZ0FtczJBalFnQmlBQ0lBVnFOZ0lrSUFZZ0JDQUZhallDRkNBR0lBQWdCMnNpQUNBRWF6WUNTQ0FHSUFBZ0FtczJBamdnQmlBQUlBSnFOZ0lvSUFZZ0FDQUVhallDR0FzZ0JrSFFBR29oQ0NBR1FSQnFJUUJCQUNFRUEwQWdDQ0FBSUFSQkRIRnFLQUlBSWdKQi93RWdBa0gvQVVnYklnSkJBQ0FDUVFCS0d6b0FBQ0FBSUFCQkVHb2dCRUVCYWlJRVFUOXhHeUVBSUFoQkFXb2hDQ0FFUVlBQ1J3MEFDeUFCS0FJQUlBb2dGR3dpQUVFSWRHb2dHa0VHZEdvZ0EwRURkR29oQXlBS1FRUjBJUXdnQ2tFR2RDRWFJQUJCQm5RaEhVRUFJQXBCQTNRaUMyc2hJQ0FHUWRBQ2FpRWhJQVpCUUdzaElrRUFJUVVEUUNBR1FnQTNBMGdnSWtJQU53TUFJQVpDQURjRE9DQUdRZ0EzQXpBZ0JrSUFOd01vSUFaQ0FEY0RJQ0FHUWdBM0F4Z2dCa0lBTndNUVFRQWhDRUVBSVFSQkFDRUpJQTBFUUNBR0lBTWdJR29pQUMwQUF5QUFMUUFDYWlJWElBQXRBQUVnQUMwQUFHb2lGbW9pQWlBQUxRQUZJQUF0QUFScUloSnJJQUF0QUFjZ0FDMEFCbW9pRTJzaUNEWUNGQ0FHSUFJZ0Vtb2dFMm9pQkRZQ0VFRUJJUWtMSUJBRVFDQUdJQU1nR21vaUFDMEFBeUFBTFFBQ2FpSWVJQUF0QUFFZ0FDMEFBR29pSDJvaUFpQUFMUUFGSUFBdEFBUnFJaGhySUFBdEFBY2dBQzBBQm1vaUdXc2dDR29pQ0RZQ0ZDQUdJQUlnR0dvZ0JHb2dHV29pQkRZQ0VDQUpRUUZxSVFrTFFRQWhBQUovSUJGRkJFQWdDU0VIUVFBTUFRc2dCaUFEUVg5cUlnQWdER29pQWlBTGFpMEFBQ0FDTFFBQWFpSWJJQUFnQzJvdEFBQWdBQzBBQUdvaUhHb2lCeUFDSUF4cUlnQWdDMm90QUFBZ0FDMEFBR29pRldzZ0FDQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlnOXJJZ0EyQWlBZ0JpQUhJQlZxSUFScUlBOXFJZ1EyQWhBZ0NVRUJhaUVIUVFFTElRSUNRQ0FHQW44Q1FBSkFBa0FnRGtVRVFDQUpEUUVNQWdzZ0JpQUFJQU5CQ0dvaUNpQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlpTWdDaUFMYWkwQUFDQURMUUFJYWlJa2FpSWxJQUFnREdvaUFDQUxhaTBBQUNBQUxRQUFhaUlLYXlBQUlBeHFJZ0FnQzJvdEFBQWdBQzBBQUdvaUZHdHFJZ0EyQWlBZ0JpQUtJQ1ZxSUFScUlCUnFJZ1EyQWhBZ0FrRUJhaUVDSUFkQkFXb2hCeUFSUVFGeklBbEJBRWR5UlFSQUlBWWdHeUFjYWlBVmFpQVBhaUFrYXlBamF5QUtheUFVYTBFRWRTSUlOZ0lVREFNTElBbEZEUUlMSUFZZ0NDQUpRUUpxZFNJSU5nSVVDeUFXSUJkcUlCSnFJQk5xSUJscklCaHJJQjVySUI5clFRUjFJQkFnRFNBQ1JYRnhRUUZHRFFFYUlBSkZEUUlMSUFBZ0FrRUNhblVMSWdBMkFpQUxJQVlDZnlBSFFYOXFJZ0pCQWswRVFBSkFBa0FDUUNBQ1FRRnJEZ0lCQWdBTElBUkJBM1lNQXdzZ0JFRUVkZ3dDQ3lBRVFSVnNRUWwyREFFTElBUkJCWFlMSWdRMkFoQUNRQ0FBSUFoeVJRUkFJQVlnQkRZQ1NDQUdJQVEyQWt3Z0JpQUVOZ0pFSUFZZ0JEWUNRQ0FHSUFRMkFqd2dCaUFFTmdJNElBWWdCRFlDTkNBR0lBUTJBakFnQmlBRU5nSXNJQVlnQkRZQ0tDQUdJQVEyQWlRZ0JpQUVOZ0lnSUFZZ0JEWUNIQ0FHSUFRMkFoZ2dCaUFFTmdJVURBRUxJQVlnQkNBSWFpSUhJQUJyTmdKQUlBWWdCeUFBUVFGMUlnSnJOZ0l3SUFZZ0FpQUhhallDSUNBR0lBQWdCMm8yQWhBZ0JpQUVJQWhySWdjZ0FHczJBa3dnQmlBSElBSnJOZ0k4SUFZZ0FpQUhhallDTENBR0lBQWdCMm8yQWh3Z0JpQUVJQWhCQVhVaUNXb2lCeUFBYXpZQ1JDQUdJQWNnQW1zMkFqUWdCaUFDSUFkcU5nSWtJQVlnQUNBSGFqWUNGQ0FHSUFRZ0NXc2lCQ0FBYXpZQ1NDQUdJQVFnQW1zMkFqZ2dCaUFDSUFScU5nSW9JQVlnQUNBRWFqWUNHQXNnSVNBRlFRWjBhaUVJUVFBaEFDQUdRUkJxSVFRRFFDQUlJQVFnQUVFQmRFRU1jV29vQWdBaUFrSC9BU0FDUWY4QlNCc2lBa0VBSUFKQkFFb2JPZ0FBSUFRZ0JFRVFhaUFBUVFGcUlnQkJEM0ViSVFRZ0NFRUJhaUVJSUFCQndBQkhEUUFMSUFNZ0hXb2hBeUFGUVFGcUlnVkJBa2NOQUFzTElBRWdCa0hRQUdvUUd5QUdRZEFEYWlRQUN6WUFJQUlFUUNBQUlBRVFBZzhMUVFFaEFpQUJJQUJCQVJBRElnQTJBZ0FnQUVGL1J3Ui9JQUVnQUVFQmN6WUNBRUVBQlVFQkN3dk1Bd0VTZnlBRFFRRjBJUThnQTBGOWJDRVFRUUFnQTJzaUVVRUJkQ0VTSUFFZ0FpZ0NBR3BCZjJvdEFBQWlCMEVCYWlFVFFRQWdCMnNoQ2tFRUlRRURRQUpBSUFBZ0VXb2lGQzBBQUNJRklBQXRBQUFpQ0dzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdSUERRQWdBQ0FTYWlJTExRQUFJZ3dnQldzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdnaUJrOE5BQ0FBSUFOcUloVXRBQUFpRFNBSWF5SUVJQVJCSDNVaUJHb2dCSE1nQms4TkFDQUhJUVFnQUNBUWFpMEFBQ0lKSUFWcklnNGdEa0VmZFNJT2FpQU9jeUFHU1FSQUlBc2dEQ0FLSUFjZ0JTQUlha0VCYWtFQmRpQU1RUUYwYXlBSmFrRUJkU0lFSUFRZ0Iwb2JJQVFnQ2tnYmFqb0FBQ0FDS0FJSUlRWWdFeUVFQ3lBVUlBVUNmeUFBSUE5cUxRQUFJZ3NnQ0dzaUNTQUpRUjkxSWdscUlBbHpJQVpKQkVBZ0ZTQU5JQW9nQnlBRklBaHFRUUZxUVFGMklBMUJBWFJySUF0cVFRRjFJZ1lnQmlBSFNoc2dCaUFLU0J0cU9nQUFJQVJCQVdvaEJBdEJBQ0FFYXlJR0N5QUVJQWdnQld0QkFuUWdEV3NnREdwQkJHcEJBM1VpQlNBRklBUktHeUFGSUFaSUd5SUVha0d3TG1vdEFBQTZBQUFnQUNBSUlBUnJRYkF1YWkwQUFEb0FBQXNnQUVFQmFpRUFJQUZCZjJvaUFRMEFDd3Y3QmdFT2Z5QUNLQUlJSVFvZ0FpZ0NCQ0VQQWtBZ0FVRUVUd1JBSUE5QkFuWkJBbW9oRUVFRUlRSURRQUpBSUFCQmYyb2lCUzBBQUNJSElBQXRBQUFpQ0dzaUFTQUJRUjkxSWdGcUlBRnpJZzBnRDA4TkFDQUFRWDVxSWc0dEFBQWlBU0FIYXlJRUlBUkJIM1VpQkdvZ0JITWdDazhOQUNBQUxRQUJJZ2tnQ0dzaUJDQUVRUjkxSWdScUlBUnpJQXBQRFFBQ1FDQU5JQkJKQkVBZ0FDMEFBaUVMQW44Z0FFRjlhaUlOTFFBQUlnUWdCMnNpQmlBR1FSOTFJZ1pxSUFaeklBcEpCRUJCQXlFR0lBVWdDU0FISUFocUlBRnFJZ1ZCQVhScUlBUnFRUVJxUVFOMk9nQUFJQTRnQkNBRmFrRUNha0VDZGpvQUFDQUVRUU5zSVE0Z0JVRUVhaUVNSUFCQmZHb3RBQUFNQVFzZ0J5QUphaUVNUVFJaERrRUNJUVlnQlNFTklBRUxJUVFnRFNBTUlBNXFJQVJCQVhScUlBWjJPZ0FBSUFzZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFwUERRRWdBQ0FISUFscUlBaHFJZ1VnQzJwQkFtcEJBblk2QUFFZ0FDQUZJQXRCQTJ4cUlBQXRBQU5CQVhScVFRUnFRUU4yT2dBQ0lBQWdBU0FGUVFGMGFpQUxha0VFYWtFRGRqb0FBQXdDQ3lBRklBY2dDV29nQVVFQmRHcEJBbXBCQW5ZNkFBQUxJQUFnQVNBSWFpQUpRUUYwYWtFQ2FrRUNkam9BQUFzZ0FDQURhaUVBSUFKQmYyb2lBZzBBQ3d3QkN5QUJJQUlvQWdCcVFYOXFMUUFBSWdWQkFXb2hEVUVBSUFWcklRaEJCQ0VDQTBBQ1FDQUFRWDlxSWc0dEFBQWlCQ0FBTFFBQUlnZHJJZ0VnQVVFZmRTSUJhaUFCY3lBUFR3MEFJQUJCZm1vaURDMEFBQ0lKSUFScklnRWdBVUVmZFNJQmFpQUJjeUFLVHcwQUlBQXRBQUVpQ3lBSGF5SUJJQUZCSDNVaUFXb2dBWE1nQ2s4TkFDQUFMUUFDSVFZZ0JTRUJJQUJCZldvdEFBQWlFQ0FFYXlJUklCRkJIM1VpRVdvZ0VYTWdDa2tFUUNBTUlBa2dDQ0FGSUFRZ0IycEJBV3BCQVhZZ0NVRUJkR3NnRUdwQkFYVWlBU0FCSUFWS0d5QUJJQWhJRzJvNkFBQWdEU0VCQ3lBT0lBUUNmeUFHSUFkcklnd2dERUVmZFNJTWFpQU1jeUFLU1FSQUlBQWdDeUFJSUFVZ0JDQUhha0VCYWtFQmRpQUxRUUYwYXlBR2FrRUJkU0lHSUFZZ0JVb2JJQVlnQ0VnYmFqb0FBU0FCUVFGcUlRRUxRUUFnQVdzaUJnc2dBU0FKSUF0cklBY2dCR3RCQW5ScVFRUnFRUU4xSWdRZ0JDQUJTaHNnQkNBR1NCc2lBV3BCc0M1cUxRQUFPZ0FBSUFBZ0J5QUJhMEd3TG1vdEFBQTZBQUFMSUFBZ0Eyb2hBQ0FDUVg5cUlnSU5BQXNMQzlvSEFRMS9Jd0JCd0FOckloRWtBQ0FHUVFWcUlRa0NRQUpBSUFKQkFFZ05BQ0FEUVFCSURRQWdBaUFKYWlBRVN3MEFJQU1nQjJwQkJXb2dCVXNOQUNBRUlRa2dBeUVLREFFTElBQWdFU0FDSUFNZ0JDQUZJQWtnQjBFRmFpQUpFQXdnRVNFQVFRQWhBZ3NDUUNBSFJRMEFJQUFnQ1NBS2JDQUNhbW9oRTBFUUlBWnJJUlFDUUNBR1FRSjJJaElFUUNBSklBWnJJUlVnRXlBSklBaEJBWFpCQVhGQkFuSnNha0VGYWlFQ0lBY2hCQU5BSUFKQmYyb3RBQUFoQUNBQ1FYNXFMUUFBSVFNZ0FrRjlhaTBBQUNFRklBSkJmR290QUFBaEN5QUNRWHRxTFFBQUlRMGdFaUVQQTBBZ0FTQUNMUUFBSWdvZ0RTQUFJQXRxSWd4cklBTWdCV3BCRkd4cUlBeEJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQUFnQVNBQ0xRQUJJZ3dnQ3lBQUlBTnFRUlJzYWlBRklBcHFJZ3RySUF0QkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBRWdBU0FDTFFBQ0loQWdCU0FBSUFwcVFSUnNhaUFESUF4cUlnVnJJQVZCQW5ScmFrRVFha0VGZFVHd0xtb3RBQUE2QUFJZ0FTQUNMUUFESWc0Z0F5QUtJQXhxUVJSc2FpQUFJQkJxSWdOcklBTkJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQU1nQVVFRWFpRUJJQUpCQkdvaEFpQUFJUTBnQ2lFTElBd2hCU0FRSVFNZ0RpRUFJQTlCZjJvaUR3MEFDeUFCSUJScUlRRWdBaUFWYWlFQ0lBUkJmMm9pQkEwQUN3d0JDeUFIUVg5cUlCUnNJQVpySUFGcVFSQnFJUUVMSUFkQkFuWWlCRVVOQUVIQUFDQUdheUVRSUFsQkFYUWhDaUFKUVFKMElBWnJJUXRCQUNBSmF5SU1RUUYwSVJJZ0FTQUhRUVIwYXlFQ0lBa2dFMm9nQ0VFQmNXcEJBbW9pQUNBSlFRVnNhaUVCQTBBZ0JpSURCRUFEUUNBQ0lBQWdDbW90QUFBaUJTQUJJQXBxTFFBQUlBRWdDV290QUFBaURpQUJJQkpxTFFBQUlnZHFJZ2hySUFoQkFuUnJhaUFCTFFBQUlnMGdBU0FNYWkwQUFDSUlha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQUl0QURCcVFRRnFRUUYyT2dBd0lBSWdBQ0FKYWkwQUFDSVBJQTRnQnlBSWFrRVViR29nQlNBTmFpSU9heUFPUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFDQnFRUUZxUVFGMk9nQWdJQUlnQUMwQUFDSU9JQTBnQlNBSGFrRVViR29nQ0NBUGFpSU5heUFOUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFCQnFRUUZxUVFGMk9nQVFJQUlnQUNBTWFpMEFBQ0FJSUFVZ0QycEJGR3hxSUFjZ0Rtb2lCV3NnQlVFQ2RHdHFRUkJxUVFWMVFiQXVhaTBBQUNBQ0xRQUFha0VCYWtFQmRqb0FBQ0FBUVFGcUlRQWdBa0VCYWlFQ0lBRkJBV29oQVNBRFFYOXFJZ01OQUFzTElBSWdFR29oQWlBQklBdHFJUUVnQUNBTGFpRUFJQVJCZjJvaUJBMEFDd3NnRVVIQUEyb2tBQXUxQlFFRWZ5QUFLQUlVSVFNZ0FDZ0NFQ0VFSUFBb0FnUWhCU0FBS0FJTUlnSWdBU2tDQURjQ0FDQUNJQUVwQWdnM0FnZ2dBaUFGUVFSMElnQnFJZ0lnQVNrQ0VEY0NBQ0FDSUFFcEFoZzNBZ2dnQUNBQ2FpSUNJQUVwQWlBM0FnQWdBaUFCS1FJb053SUlJQUFnQW1vaUFpQUJLUUl3TndJQUlBSWdBU2tDT0RjQ0NDQUFJQUpxSWdJZ0FTa0NRRGNDQUNBQ0lBRXBBa2czQWdnZ0FDQUNhaUlDSUFFcEFsQTNBZ0FnQWlBQktRSllOd0lJSUFBZ0Ftb2lBaUFCS1FKZ053SUFJQUlnQVNrQ2FEY0NDQ0FBSUFKcUlnSWdBU2tDY0RjQ0FDQUNJQUVwQW5nM0FnZ2dBQ0FDYWlJQ0lBRXBBb0FCTndJQUlBSWdBU2tDaUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcEFCTndJQUlBSWdBU2tDbUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcUFCTndJQUlBSWdBU2tDcUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBckFCTndJQUlBSWdBU2tDdUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBc0FCTndJQUlBSWdBU2tDeUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdEFCTndJQUlBSWdBU2tDMkFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdUFCTndJQUlBSWdBU2tDNkFFM0FnZ2dBQ0FDYWlJQUlBRXBBdkFCTndJQUlBQWdBU2tDK0FFM0FnZ2dCQ0FCS1FLQUFqY0NBQ0FFSUFWQkEzUWlBR29pQkNBQktRS0lBamNDQUNBQUlBUnFJZ1FnQVNrQ2tBSTNBZ0FnQUNBRWFpSUVJQUVwQXBnQ053SUFJQUFnQkdvaUJDQUJLUUtnQWpjQ0FDQUFJQVJxSWdRZ0FTa0NxQUkzQWdBZ0FDQUVhaUlFSUFFcEFyQUNOd0lBSUFBZ0JHb2dBU2tDdUFJM0FnQWdBeUFCS1FMQUFqY0NBQ0FBSUFOcUlnTWdBU2tDeUFJM0FnQWdBQ0FEYWlJRElBRXBBdEFDTndJQUlBQWdBMm9pQXlBQktRTFlBamNDQUNBQUlBTnFJZ01nQVNrQzRBSTNBZ0FnQUNBRGFpSURJQUVwQXVnQ053SUFJQUFnQTJvaUF5QUJLUUx3QWpjQ0FDQUFJQU5xSUFFcEF2Z0NOd0lBQytnQ0FRVi9Ba0FnQUNBQkVBSWlBdzBBUVFFaEF5QUJJQUVvQWdCQkFXb2lBallDQUNBQ1FTQkxEUUFnQUVFRUVBTWlBa0YvUmcwQUlBRWdBallDQkNBQVFRUVFBeUlDUVg5R0RRQWdBU0FDTmdJSUlBRW9BZ0FFUUFOQUlBQWdBU0FGUVFKMGFpSUNJZ1JCREdvUUFpSUREUUpCQVNFRElBUW9BZ3dpQmtGL1JnMENJQVFnQmtFQmFpSUROZ0lNSUFRZ0F5QUJLQUlFUVFacWREWUNEQ0FBSUFKQmpBRnFFQUlpQXcwQ1FRRWhBeUFDS0FLTUFTSUVRWDlHRFFJZ0FpQUVRUUZxSWdRMkFvd0JJQUlnQkNBQktBSUlRUVJxZERZQ2pBRWdBRUVCRUFNaUJFRi9SZzBDSUFJZ0JFRUJSallDakFJZ0JVRUJhaUlGSUFFb0FnQkpEUUFMQ3lBQVFRVVFBeUlDUVg5R0RRQWdBU0FDUVFGcU5nS01BeUFBUVFVUUF5SUNRWDlHRFFBZ0FTQUNRUUZxTmdLUUF5QUFRUVVRQXlJQ1FYOUdEUUFnQVNBQ1FRRnFOZ0tVQXlBQVFRVVFBeUlBUVg5R0RRQWdBU0FBTmdLWUEwRUFJUU1MSUFNTFd3RURmeUFBSUFBb0FnQWlCQ0FCSUFBb0FnUWlBbkFpQTBFRWRHb2dBU0FEYXlJQlFRaDBhallDRENBQUlBUWdBaUFBS0FJSWJDSUNRUWgwYWlBQlFRWjBhaUFEUVFOMGFpSUJOZ0lRSUFBZ0FTQUNRUVowYWpZQ0ZBdFZBUUovSUFFZ0FrRUJhaUlESUFNZ0FVa2JJUU1nQUNBQ1FRSjBhaWdDQUNFRUEwQUNRQ0FDUVFGcUlnSWdBVThFUUNBRElRSU1BUXNnQUNBQ1FRSjBhaWdDQUNBRVJ3MEJDd3RCQUNBQ0lBRWdBa1liQ3ljQUlBQkJDQ0FBS0FJSUlnQnJFQU5CZjBZRVFBOExRUUFnQUd0QkFuUkJ6RDlxS0FJQUdndDZBUUovSXdCQklHc2lBaVFBSUFJZ0FDZ0NFRFlDRUNBQ0lBQXBBZ2czQXdnZ0FpQUFLUUlBTndNQUFrQWdBaUFDUVJ4cUVBSWlBQTBBSUFJZ0FrRWNhaEFDSWdBTkFDQUNJQUpCSEdvUUFpSUFEUUJCQVNFQUlBSW9BaHdpQTBIL0FVc05BQ0FCSUFNMkFnQkJBQ0VBQ3lBQ1FTQnFKQUFnQUF2bkJ3RVNmeU1BUVlBT2F5SU1KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQTBFQVNBMEFJQUlnQ1dvZ0JFc05BQ0FESUFkcVFRVnFJQVZMRFFBZ0F5RUtEQUVMSUFBZ0RFSEFDbW9nQWlBRElBUWdCU0FKSUFkQkJXb2dDUkFNSUF4QndBcHFJUUFnQ1NFRVFRQWhBZ3NDUUNBSFFRSjJJaFJGRFFBZ0NVVU5BQ0FFUVFGMElSVkJBQ0FFYXlJV1FRRjBJUm9nQkVFQ2RDQUdhMEY3YWlFWElBQWdCQ0FLYkNBQ2Ftb2dCR29pQUNBRVFRVnNhaUVDSUF3Z0NVRUNkQ0lRYWlFRElBbEJBM1FoRFVFQUlBbHJRUUowSVE0Z0NVRURiRUVDZENFUEEwQWdDU0VGQTBBZ0F5QU5haUFBSUJWcUxRQUFJaEVnQWlBVmFpMEFBQ0FDSUFScUxRQUFJZ3NnQWlBYWFpMEFBQ0lTYWlJS2F5QUtRUUowYTJvZ0FpMEFBQ0lZSUFJZ0Ztb3RBQUFpRTJwQkZHeHFOZ0lBSUFNZ0VHb2dBQ0FFYWkwQUFDSVpJQXNnRWlBVGFrRVViR29nRVNBWWFpSUtheUFLUVFKMGEybzJBZ0FnQXlBQUxRQUFJZ3NnR0NBUklCSnFRUlJzYWlBVElCbHFJZ3BySUFwQkFuUnJhallDQUNBRElBNXFJQUFnRm1vdEFBQWdFeUFSSUJscVFSUnNhaUFMSUJKcUlncHJJQXBCQW5ScmFqWUNBQ0FBUVFGcUlRQWdBMEVFYWlFRElBSkJBV29oQWlBRlFYOXFJZ1VOQUFzZ0FpQVhhaUVDSUFBZ0Yyb2hBQ0FESUE5cUlRTWdGRUYvYWlJVURRQUxDeUFIQkVCQkVDQUdheUVRSUFaQkFuWWhDaUFNSUFoQkFuUnFRUWhxSVFBZ0RFRVVhaUVDQTBBZ0NnUkFJQUpCYkdvb0FnQWhCQ0FDUVhCcUtBSUFJUThnQWtGMGFpZ0NBQ0VOSUFKQmVHb29BZ0FoQlNBQ1FYeHFLQUlBSVFNZ0NpRUpBMEFnQVNBQ0tBSUFJZzRnQkNBRElBOXFJZ1JySUFVZ0RXcEJGR3hxSUFSQkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQUlBQW9BZ0JCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlvQWdRaUN5QVBJQU1nQldwQkZHeHFJQTBnRG1vaUJHc2dCRUVDZEd0cVFZQUVha0VLZFVHd0xtb3RBQUFnQUNnQ0JFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FCSUFFZ0FpZ0NDQ0lJSUEwZ0F5QU9ha0VVYkdvZ0JTQUxhaUlFYXlBRVFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlJUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBSWdBU0FDS0FJTUlnWWdCU0FMSUE1cVFSUnNhaUFESUFocUlnUnJJQVJCQW5ScmFrR0FCR3BCQ25WQnNDNXFMUUFBSUFBb0FneEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQXlBQlFRUnFJUUVnQUVFUWFpRUFJQUpCRUdvaEFpQURJUVFnRGlFUElBc2hEU0FJSVFVZ0JpRURJQWxCZjJvaUNRMEFDd3NnQVNBUWFpRUJJQUJCRkdvaEFDQUNRUlJxSVFJZ0IwRi9haUlIRFFBTEN5QU1RWUFPYWlRQUM5RUhBUXgvSXdCQmdBNXJJZzhrQUNBR1FRVnFJUWtDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSmFpQUVTdzBBSUFkQkJXb2lEaUFEYWlBRlN3MEFJQVFoQ1NBRElRb01BUXNnQUNBUFFjQUthaUFDSUFNZ0JDQUZJQWtnQjBFRmFpSU9JQWtRRENBUFFjQUthaUVBUVFBaEFnc0NRQ0FPUlEwQUlBWkJBbllpRWtVTkFDQUpJQVpySVJNZ0FDQUpJQXBzSUFKcWFrRUZhaUVDSUE4aEFBTkFJQUpCZjJvdEFBQWhDU0FDUVg1cUxRQUFJUU1nQWtGOWFpMEFBQ0VGSUFKQmZHb3RBQUFoQ2lBQ1FYdHFMUUFBSVF3Z0VpRU5BMEFnQUNBQ0xRQUFJZ1FnRENBSklBcHFJZ3RySUFNZ0JXcEJGR3hxSUF0QkFuUnJhallDQUNBQUlBSXRBQUVpQ3lBRElBbHFRUlJzSUFwcUlBUWdCV29pQ21zZ0NrRUNkR3RxTmdJRUlBQWdBaTBBQWlJUUlBUWdDV3BCRkd3Z0JXb2dBeUFMYWlJRmF5QUZRUUowYTJvMkFnZ2dBQ0FDTFFBREloUWdCQ0FMYWtFVWJDQURhaUFKSUJCcUlnTnJJQU5CQW5ScmFqWUNEQ0FBUVJCcUlRQWdBa0VFYWlFQ0lBa2hEQ0FFSVFvZ0N5RUZJQkFoQXlBVUlRa2dEVUYvYWlJTkRRQUxJQUlnRTJvaEFpQU9RWDlxSWc0TkFBc0xJQWRCQW5ZaUJ3UkFRY0FBSUFacklSUWdEeUFHUVFKMElnUnFJZ2tnQmtFVWJHb2hBaUFKSUFoQkFtb2dCbXhCQW5ScUlRQWdCa0VEYkVFQ2RDRUZRUUFnQm1zaURrRURkQ0VUSUFaQkEzUWhDQU5BSUFZaEF5QUdCRUFEUUNBQklBZ2dDV29vQWdBaUNpQUNJQWhxS0FJQUlBSWdCR29vQWdBaUVTQUNJQk5xS0FJQUlndHFJZ3hySUF4QkFuUnJhaUFDS0FJQUlnMGdBaUFPUVFKMEloQnFLQUlBSWd4cVFSUnNha0dBQkdwQkNuVkJzQzVxTFFBQUlBQWdDR29vQWdCQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FNQ0FCSUFRZ0NXb29BZ0FpRWlBUklBc2dER3BCRkd4cUlBb2dEV29pRVdzZ0VVRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQWdBQ0FFYWlnQ0FFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FnSUFFZ0NTZ0NBQ0lSSUEwZ0NpQUxha0VVYkdvZ0RDQVNhaUlOYXlBTlFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFCQWdBU0FKSUJCcUtBSUFJQXdnQ2lBU2FrRVViR29nQ3lBUmFpSUtheUFLUVFKMGEycEJnQVJxUVFwMVFiQXVhaTBBQUNBQUlCQnFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBQWdBRUVFYWlFQUlBbEJCR29oQ1NBQlFRRnFJUUVnQWtFRWFpRUNJQU5CZjJvaUF3MEFDd3NnQVNBVWFpRUJJQUFnQldvaEFDQUNJQVZxSVFJZ0JTQUphaUVKSUFkQmYyb2lCdzBBQ3dzZ0QwR0FEbW9rQUF1MEJnRUpmeU1BUWNBRGF5SU5KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQXlBSGFpQUZTdzBBSUFOQkFFZ05BQ0FDSUFscUlBUkxEUUFnQkNFSklBTWhDZ3dCQ3lBQUlBMGdBaUFESUFRZ0JTQUpJQWNnQ1JBTUlBMGhBRUVBSVFJTElBY0VRRUVRSUFacklSQWdDU0FHYXlFUklBWkJBblloRHlBQUlBa2dDbXdnQW1wcVFRVnFJUWtEUUFKQUlBOUZEUUFnQ1VGL2FpMEFBQ0VDSUFsQmZtb3RBQUFoQmlBSlFYMXFMUUFBSVFNZ0NVRjhhaTBBQUNFRklBbEJlMm90QUFBaENpQVBJZ0FoQ3lBSUJFQURRQ0FCSUFZZ0NTMEFBQ0lFSUFvZ0FpQUZhaUlLYXlBRElBWnFRUlJzYWlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlnQ1MwQUFTSUxJQVVnQWlBR2FrRVViR29nQXlBRWFpSUZheUFGUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQVNBQklBUWdDUzBBQWlJTUlBTWdBaUFFYWtFVWJHb2dCaUFMYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBaUFCSUFzZ0NTMEFBeUlPSUFZZ0JDQUxha0VVYkdvZ0FpQU1haUlEYXlBRFFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUF5QUJRUVJxSVFFZ0NVRUVhaUVKSUFJaENpQUVJUVVnQ3lFRElBd2hCaUFPSVFJZ0FFRi9haUlBRFFBTUFnQUxBQXNEUUNBQklBTWdDUzBBQUNJQUlBb2dBaUFGYWlJRWF5QURJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBQ0FCSUFZZ0NTMEFBU0lFSUFVZ0FpQUdha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFTQUJJQUlnQ1MwQUFpSU1JQU1nQUNBQ2FrRVViR29nQkNBR2FpSURheUFEUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQWlBQklBQWdDUzBBQXlJT0lBWWdBQ0FFYWtFVWJHb2dBaUFNYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBeUFCUVFScUlRRWdDVUVFYWlFSklBSWhDaUFBSVFVZ0JDRURJQXdoQmlBT0lRSWdDMEYvYWlJTERRQUxDeUFCSUJCcUlRRWdDU0FSYWlFSklBZEJmMm9pQncwQUN3c2dEVUhBQTJva0FBdkdCQUVMZnlNQVFjQURheUlOSkFBQ1FBSkFJQUpCQUVnTkFDQURRUUJJRFFBZ0FpQUdhaUFFU3cwQUlBTWdCMnBCQldvZ0JVc05BQ0FESVFrTUFRc2dBQ0FOSUFJZ0F5QUVJQVVnQmlBSFFRVnFJQVlRRENBTklRQWdCaUVFUVFBaEFnc2dCMEVDZGlJUUJFQkJ3QUFnQm1zaEVpQUVRUUYwSVFVZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVRJQUFnQkNBSmJDQUNhbW9nQkdvaUFDQUVRUVZzYWlFQ0lBQWdCQ0FJUVFKcWJHb2hCd05BSUFZaEF5QUdCRUFEUUNBQklBQWdCV290QUFBaUNDQUNJQVZxTFFBQUlBSWdCR290QUFBaUNpQUNJQk5xTFFBQUlnbHFJZ3RySUF0QkFuUnJhaUFDTFFBQUlnd2dBaUFQYWkwQUFDSUxha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQVVnQjJvdEFBQnFRUUZxUVFGMk9nQXdJQUVnQUNBRWFpMEFBQ0lSSUFvZ0NTQUxha0VVYkdvZ0NDQU1haUlLYXlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQUlBUWdCMm90QUFCcVFRRnFRUUYyT2dBZ0lBRWdBQzBBQUNJS0lBd2dDQ0FKYWtFVWJHb2dDeUFSYWlJTWF5QU1RUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFJQWN0QUFCcVFRRnFRUUYyT2dBUUlBRWdBQ0FQYWkwQUFDQUxJQWdnRVdwQkZHeHFJQWtnQ21vaUNHc2dDRUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBQ0FISUE5cUxRQUFha0VCYWtFQmRqb0FBQ0FIUVFGcUlRY2dBRUVCYWlFQUlBRkJBV29oQVNBQ1FRRnFJUUlnQTBGL2FpSUREUUFMQ3lBQklCSnFJUUVnQnlBT2FpRUhJQUlnRG1vaEFpQUFJQTVxSVFBZ0VFRi9haUlRRFFBTEN5QU5RY0FEYWlRQUM0OEhBUXgvSUFFb0FnZ2hDeUFCS0FJRUlRWUNRQUpBQWtBZ0FrRUZTdzBBSUFKQkFXc09CQUFBQUFBQkN5QUFLQUs0R2cwQURBRUxJQUJCeEFscUlRUURRQ0FFSUFNUUZDRUhJQU5CRGtzTkFTQURRUUZxSVFNZ0IwVU5BQXNMQWtBQ1FBSkFBa0FnQUNnQ21Ba2lDQVJBSUFBb0Fyd0pJUXBCQUNFRFFRQWhCQU5BSUFvZ0EwSFlBV3hxS0FMRUFVVUVRRUVBSUFSQkFXb2lCQ0FFSUFaR0lnVWJJUVFnQlNBSmFpRUpJQU5CQVdvaUF5QUlTUTBCQ3dzZ0F5QUlSdzBCQ3dKQUFrQWdBa0YrYWlJQ1FRVkxEUUFDUUNBQ1FRRnJEZ1FCQVFFQkFBc2dCMFVOQVNBQUtBSzRHa1VOQVF3REN5QUhEUUlMSUFFb0FnQkJnQUVnQmlBTGJFR0FBMndRQnhvTUFnc2dBQ2dDdkFrZ0JpQUpiRUhZQVd4cUlRZ2dCQVJBSUFRaEF3TkFJQWdnQTBGL2FpSURRZGdCYkdvaUNpQUJJQWtnQXlBQ0lBY1FGaUFLUVFFMkFzUUJJQUFnQUNnQ3RBbEJBV28yQXJRSklBTU5BQXNMSUFSQkFXb2lBeUFHU1FSQUEwQWdDQ0FEUWRnQmJHb2lCQ2dDeEFGRkJFQWdCQ0FCSUFrZ0F5QUNJQWNRRmlBRVFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpDeUFEUVFGcUlnTWdCa2NOQUFzTEFrQWdDVVVOQUNBR1JRMEFRUUFoQlNBSlFYOXFJZ3dnQm13aERTQU1SUVJBQTBBZ0FDZ0N2QWtnRFVIWUFXeHFJQVZCMkFGc2FpSUVJQUZCQUNBRklBSWdCeEFXSUFSQkFUWUN4QUVnQUNBQUtBSzBDVUVCYWpZQ3RBa2dCVUVCYWlJRklBWkhEUUFNQWdBTEFBc2dDVUYrYWlFSVFRQWdCbXRCMkFGc0lRNERRQ0FBS0FLOENTQU5RZGdCYkdvZ0JVSFlBV3hxSWdNZ0FTQU1JQVVnQWlBSEVCWWdBMEVCTmdMRUFTQUFJQUFvQXJRSlFRRnFOZ0swQ1NBSUlRUURRQ0FESUE1cUlnTWdBU0FFSWdvZ0JTQUNJQWNRRmlBRFFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpJQVJCZjJvaEJDQUtEUUFMSUFWQkFXb2lCU0FHUncwQUN3c2dDVUVCYWlJRklBdFBEUUlnQmtVTkFnTkFJQUFvQXJ3SklBVWdCbXhCMkFGc2FpRUlRUUFoQXdOQUlBZ2dBMEhZQVd4cUlnUW9Bc1FCUlFSQUlBUWdBU0FGSUFNZ0FpQUhFQllnQkVFQk5nTEVBU0FBSUFBb0FyUUpRUUZxTmdLMENRc2dBMEVCYWlJRElBWkhEUUFMSUFWQkFXb2lCU0FMUncwQUN3d0NDeUFCS0FJQUlBY2dCaUFMYkVHQUEyd1FGUm9MSUFBZ0FDZ0NtQWtpQVRZQ3RBa2dBVVVOQUNBQUtBSzhDU0VBUVFBaEF3TkFJQUFnQTBIWUFXeHFRUUUyQWdnZ0EwRUJhaUlESUFGSERRQUxDd3MyQVFKL0lBQW9BaWdpQWdSQUEwQWdBQ2dDQkNBQlFRSjBhaUFBS0FJQUlBRkJLR3hxTmdJQUlBRkJBV29pQVNBQ1J3MEFDd3NMOXdRQ0RIOEJma0VISVFVakFFRWdheUlJSVF3RFFDQUZJQUZKQkVBZ0FFRUFJQVZyUVNoc2FpRUtJQVVoQmdOQUlBQWdCa0VvYkdvaUFpZ0NDQ0VKSUFJcEFnQWhEaUFJSUFJcEFndzNBeGdnQWlnQ0dDRU5JQUlvQWhRaEN5QU1JQUlvQWlRMkFoQWdDQ0FDS1FJY053TUlBa0FnQmlJRElBVkpEUUFDUUNBTFJRUkFBMEFnQ2lBRFFTaHNJZ0pxSWdRb0FoUU5BaUFOUlEwQ0lBUW9BaGdOQWlBQUlBSnFJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3lBTFFYOXFRUUZOQkVBRFFBSi9Ba0FnQ2lBRFFTaHNJZ0pxSWdRb0FoUWlCMFVOQUNBSFFYOXFRUUZMRFFBZ0JDZ0NDQ0lISUFsS0RRUWdBQ0FDYWlJRUlBY2dDVWdOQVJvZ0JDRUNEQVVMSUFBZ0Ftb0xJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3dOQUlBb2dBMEVvYkNJQ2FpSUVLQUlVSWdjRVFDQUhRWDlxUVFKSkRRSWdCQ2dDQ0NBSlRBMENDeUFBSUFKcUlnUWdBQ0FESUFWcklnTkJLR3hxSWdJcEFnQTNBZ0FnQkNBQ0tRSWdOd0lnSUFRZ0Fpa0NHRGNDR0NBRUlBSXBBaEEzQWhBZ0JDQUNLUUlJTndJSUlBTWdCVThOQUFzTUFRc2dBQ0FEUVNoc2FpRUNDeUFDSUE0M0FnQWdBQ0FEUVNoc2FpSURJQWsyQWdnZ0NDa0RHQ0VPSUFNZ0RUWUNHQ0FESUFzMkFoUWdBeUFPTndJTUlBTWdDQ2tEQ0RjQ0hDQURJQXdvQWhBMkFpUWdCa0VCYWlJR0lBRkhEUUFMQ3lBRlFRRjJJZ1VOQUFzTHJRVUJBWDhDUUNBQUtBSUFJZ0VvQWhSRkRRQWdBVUVBTmdJVUlBRW9BaGdOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ1BFVU5BQ0FCUVFBMkFqd2dBVUZBYXlnQ0FBMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUprUlEwQUlBRkJBRFlDWkNBQktBSm9EUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQW93QlJRMEFJQUZCQURZQ2pBRWdBU2dDa0FFTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0N0QUZGRFFBZ0FVRUFOZ0swQVNBQktBSzRBUTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMY0FVVU5BQ0FCUVFBMkF0d0JJQUVvQXVBQkRRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9Bb1FDUlEwQUlBRkJBRFlDaEFJZ0FTZ0NpQUlOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ3JBSkZEUUFnQVVFQU5nS3NBaUFCS0FLd0FnMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUxVQWtVTkFDQUJRUUEyQXRRQ0lBRW9BdGdDRFFBZ0FDQUFLQUlzUVg5cU5nSXNDd0pBSUFFb0F2d0NSUTBBSUFGQkFEWUMvQUlnQVNnQ2dBTU5BQ0FBSUFBb0FpeEJmMm8yQWl3TEFrQWdBU2dDcEFORkRRQWdBVUVBTmdLa0F5QUJLQUtvQXcwQUlBQWdBQ2dDTEVGL2FqWUNMQXNDUUNBQktBTE1BMFVOQUNBQlFRQTJBc3dESUFFb0F0QUREUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQXZRRFJRMEFJQUZCQURZQzlBTWdBU2dDK0FNTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0NuQVJGRFFBZ0FVRUFOZ0tjQkNBQktBS2dCQTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMRUJFVU5BQ0FCUVFBMkFzUUVJQUVvQXNnRURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9BdXdFUlEwQUlBRkJBRFlDN0FRZ0FTZ0M4QVFOQUNBQUlBQW9BaXhCZjJvMkFpd0xBMEFnQUJCZVJRMEFDeUFBUVFBMkFqQWdBRUwvL3dNM0FpUUwzUTRCQ1g4Z0FpZ0NBQ0FBS0FJSUlnSW9BZ0JHQkVBZ0FFRUFOZ0kwSUFBb0FqZ2lDMFVoRFFKQUlBRkZCRUFnQWlBRE5nSU1JQUpCQURZQ0ZDQUNJQTAyQWhnZ0FpQUVOZ0lRSUFJZ0F6WUNDQ0FMRFFFZ0FDQUFLQUlzUVFGcU5nSXNEQUVMSUFVRVFDQUFRZ0EzQWhBZ0FCQW9Ba0FnQVNnQ0FFVUVRQ0FBS0FJNFJRMEJDeUFBUWdBM0FoQUxJQUFvQWdnaUFrRURRUUlnQVNnQ0JDSUJHellDRkNBQVFRQkIvLzhESUFFYk5nSWtJQUlnRFRZQ0dDQUNRUUEyQWhBZ0FrSUFOd0lJSUFCQ2dZQ0FnQkEzQWlnTUFRc0NRQUpBQWtBZ0FTZ0NDQVJBUVFBaEN3TkFJQUVnQzBFVWJHb2lDQ2dDRENJQ1FRWkxEUUlDUUFKQUFrQUNRQUpBQWtBQ1FDQUNRUUZyRGdZQUFRSURCQVVKQ3lBQUtBSVlJZ2xGRFFnZ0F5QUlLQUlRYXlFTUlBQW9BZ0FoQ2tFQUlRZ0RRQUpBSUFvZ0NFRW9iR29pQWlnQ0ZFRi9ha0VCVFFSQUlBSW9BZ2dnREVZTkFRc2dDRUVCYWlJSUlBbEhEUUVNQ2dzTElBaEJBRWdOQ0NBQ1FRQTJBaFFnQUNBQUtBSW9RWDlxTmdJb0lBSW9BaGdOQlNBQUlBQW9BaXhCZjJvMkFpd2dDMEVCYWlFTERBWUxJQUFvQWhnaUNVVU5CeUFJS0FJVUlRd2dBQ2dDQUNFS1FRQWhDQU5BQWtBZ0NpQUlRU2hzYWlJQ0tBSVVRUU5HQkVBZ0FpZ0NDQ0FNUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdKQ3dzZ0NFRUFTQTBISUFKQkFEWUNGQ0FBSUFBb0FpaEJmMm8yQWlnZ0FpZ0NHQTBFSUFBZ0FDZ0NMRUYvYWpZQ0xDQUxRUUZxSVFzTUJRc2dBQ2dDSkNJQ1FmLy9BMFlOQmlBQ0lBZ29BaGdpREVrTkJpQUFLQUlZSWdsRkRRWWdDQ2dDRUNFT0lBQW9BZ0FoQ2tFQUlRSURRQUpBQWtBZ0NpQUNRU2hzYWlJSUtBSVVRUU5IRFFBZ0NDZ0NDQ0FNUncwQUlBaEJBRFlDRkNBQUlBQW9BaWhCZjJvMkFpZ2dDQ2dDR0EwQklBQWdBQ2dDTEVGL2FqWUNMQXdCQ3lBQ1FRRnFJZ0lnQ1VjTkFRc0xJQWxCQVNBSlFRRkxHeUVKSUFNZ0Rtc2hEa0VBSVFnRFFBSkFJQW9nQ0VFb2JHb2lBaWdDRkNJUFFYOXFRUUZOQkVBZ0FpZ0NDQ0FPUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdJQ3dzZ0NFRUFTQTBHSUE5QkFra05CaUFDUVFNMkFoUWdBaUFNTmdJSUlBdEJBV29oQ3d3RUN5QUFJQWdvQWh3aUNUWUNKQ0FBS0FJWUlneEZEUUlnQUNnQ0FDRUtRUUFoQWlBSlFmLy9BMFlFUUFOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDRUVBTmdJVUlBQWdBQ2dDS0VGL2FqWUNLQ0FJS0FJWURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQ1FRRnFJZ0lnREVjTkFBd0VBQXNBQ3dOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDQ2dDQ0NBSlRRMEFJQWhCQURZQ0ZDQUFJQUFvQWloQmYybzJBaWdnQ0NnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FrRUJhaUlDSUF4SERRQUxEQUlMSUFBUUtDQUFRUUUyQWpSQkFDRURJQXRCQVdvaEN3d0NDeUFBS0FJa0lnSkIvLzhEUmcwRElBSWdDQ2dDR0NJTVNRMERJQUFvQWhnaUNrVU5BeUFBS0FJQUlRaEJBQ0VDQWtBRFFBSkFJQWdnQWtFb2JHb2lDU2dDRkVFRFJ3MEFJQWtvQWdnZ0RFY05BQ0FKUVFBMkFoUWdBQ0FBS0FJb1FYOXFJZ2cyQWlnZ0NTZ0NHQTBDSUFBZ0FDZ0NMRUYvYWpZQ0xBd0NDeUFDUVFGcUlnSWdDa2NOQUFzZ0FDZ0NLQ0VJQ3lBSUlBcFBEUU1nQUNnQ0NDSUNRUU0yQWhRZ0FpQUVOZ0lRSUFJZ0REWUNDQ0FDSUFNMkFnd2dBaUFBS0FJNFJUWUNHRUVCSVJBZ0FDQUlRUUZxTmdJb0lBQWdBQ2dDTEVFQmFqWUNMQXNnQzBFQmFpRUxEQUFBQ3dBTFFRQWhBaUFBS0FJb0lna2dBQ2dDR0NJTFNRMEJJQWxGQkVCQkFDRUpEQUlMSUFBb0FnQWhERUYvSVFFRFFDQU1JQUpCS0d4cUlnb29BaFJCZjJwQkFVMEVRQ0FLS0FJSUlnb2dDQ0FCUVg5R0lBb2dDRWh5SWdvYklRZ2dBaUFCSUFvYklRRUxJQUpCQVdvaUFpQUpSdzBBQ3lBQlFRQklEUUVnRENBQlFTaHNhaUlCUVFBMkFoUWdBQ0FKUVg5cUlnazJBaWdnQVNnQ0dBMEJJQUFnQUNnQ0xFRi9hallDTEF3QkN5QVFEUUVnQUNnQ0dDRUxJQUFvQWlnaENRc2dDU0FMVHcwQklBQW9BZ2dpQVNBTk5nSVlJQUZCQWpZQ0ZDQUJJQVEyQWhBZ0FTQUROZ0lJSUFFZ0F6WUNEQ0FBSUFsQkFXbzJBaWdnQUNBQUtBSXNRUUZxTmdJc0N3c2dBQ2dDQ0NJQklBYzJBaUFnQVNBR05nSWNJQUVnQlRZQ0pBSkFJQUFvQWpoRkJFQWdBQ2dDTENJSklBQW9BaHdpQTAwTkFTQUFLQUlBSVFRRFFFSC8vLy8vQnlFRlFRQWhCa0VBSVFJRFFDQUVJQUpCS0d4cUlnRW9BaGdFUUNBQklBWWdBU2dDRUNJQklBVklJZ2NiSVFZZ0FTQUZJQWNiSVFVTElBSkJBV29pQWlBRFRRMEFDd0pBSUFaRkRRQWdBQ2dDRENBQUtBSVFJZ0pCQkhScUlnRWdCaWdDQURZQ0FDQUJJQVlvQWlRMkFnd2dBU0FHS0FJY05nSUVJQUVnQmlnQ0lEWUNDQ0FBSUFKQkFXbzJBaEFnQmtFQU5nSVlJQVlvQWhRTkFDQUFJQWxCZjJvaUNUWUNMQXNnQ1NBRFN3MEFDd3dCQ3lBQktBSUFJUUlnQUNnQ0RDQUFLQUlRSWdOQkJIUnFJZ0VnQlRZQ0RDQUJJQUkyQWdBZ0FTQUhOZ0lJSUFFZ0JqWUNCQ0FBSUFOQkFXbzJBaEFnQUNnQ0hDRURDeUFBS0FJQUlBTkJBV29RSndzTDFBc0NBbjhCZmlNQVFaQUJheUlFSkFBZ0JFRUFOZ0lNQWtBQ1FBSkFJQUFvQXBBYVJRMEFJQUFvQXBRYUlBRkhEUUFnQkNBQVFhUWFhaWtDQURjREdDQUFLUUtjR2lFR0lBUkJBRFlDR0NBRUlBWTNBeEFnQkVFQU5nSWdJQVFnQmo0Q0ZDQURJQUFvQXBnYU5nSUFEQUVMUVFNaEJTQUJJQUlnQkVFUWFpQURFR01OQVNBQUlBUXBBeEEzQXB3YUlBQkJyQnBxSUFRb0FpQTJBZ0FnQUVHa0dtb2dCQ2tER0RjQ0FDQURLQUlBSVFJZ0FDQUJOZ0tVR2lBQUlBSTJBcGdhQzBFQUlRVWdBRUVBTmdLUUdpQUVRUkJxSUFSQmlBRnFFRThFUUVFRElRVU1BUXNnQkNnQ2lBRkJmMnBCQzBzTkFDQUVRUkJxSUFSQmlBRnFJQUFnQkVFTWFoQXlJZ0VFUUVFRUlRVWdBVUh3L3dOR0RRRkJBeUVGREFFTEFrQWdCQ2dDREFSQUFrQWdBQ2dDb0FsRkRRQWdBQ2dDRUVVTkFFRURJUVVnQUNnQ3RCb05Bd0pBSUFBb0FxUUpSUVJBSUFCQnhBbHFJZ0lpQVNBQktBSUFJQUVvQWh4QktHeHFJZ0UyQWdnZ0FDQUJLQUlBTmdLNENpQUNFQ1lnQUNBQVFiZ0tha0VBRUNVTUFRc2dBQ0FBUWJnS2FpQUFRZHdLYWlnQ0FCQWxDeUFEUVFBMkFnQWdBRUVBTmdLY0NTQUFRUUUyQXBBYURBSUxJQUJCQURZQ25Ba2dBRUVBTmdLa0NRc2dCQ2dDaUFGQmYyb2lBVUVIU3cwQkFrQUNRQUpBSUFGQkFXc09Cd1FFQkFJRUFBRUNDeUFFUVJCcUlBUkJLR29RUXdSQUlBUW9BbEFRQkNBRVFRQTJBbEFnQkNnQ2ZCQUVJQVJCQURZQ2ZFRURJUVVNQkFzZ0FDQUVRU2hxRURjTUF3c2dCRUVRYWlBRVFTaHFFRXdFUUNBRUtBSThFQVFnQkVFQU5nSThJQVFvQWtBUUJDQUVRUUEyQWtBZ0JDZ0NSQkFFSUFSQkFEWUNSQ0FFS0FKVUVBUWdCRUVBTmdKVVFRTWhCUXdEQ3lBQUlBUkJLR29RTmd3Q0N5QUFLQUtjQ1EwQklBQkJBVFlDb0FrQ1FDQUFLQUtrQ1EwQUlBQkNBRGNDdEFrZ0JFRVFhaUFFUVNocUVDQWFJQUFvQWdnaEFTQUFJQVFvQWlnZ0JDZ0NpQUZCQlVZUU5TSUNCRUFnQUVLQWdvQ0FnQVEzQWdRZ0FFRUFOZ0swR2lBQVFnQTNBZ3hCQlVFRUlBSkIvLzhEUmhzaEJRd0RDeUFCSUFBb0FnaEdEUUFnQUNnQ0VDRUJJQVJCQVRZQ0NDQUFLQUlBSWdKQkgwMEVRQ0FBSUFKQkFuUnFLQUlVSVFVTElBTkJBRFlDQUNBQVFRRTJBcEFhQWtBQ1FBSkFJQVFvQW9nQlFRVkhEUUFnQkVFSWFpQUVRUkJxSUFFZ0FDZ0NEQkE0SUFRb0FnaHlEUUFnQlVVTkFDQUFRZndKYWlnQ0FBMEFJQVVvQWpRZ0FTZ0NORWNOQUNBRktBSTRJQUVvQWpoSERRQWdCU2dDV0NBQktBSllSZzBCQ3lBQVFZQUtha0VBTmdJQURBRUxJQUJCeEFscUVGa0xJQUFnQUNnQ0NEWUNBRUVDSVFVTUFnc2dBQ2dDdEJvRVFFRURJUVVNQWdzZ0JFRVFhaUFBUWJRU2FpSUNJQUFvQWhBZ0FDZ0NEQ0FFUVlnQmFoQStCRUJCQXlFRkRBSUxJQUFvQXFRSlJRUkFBa0FnQkNnQ2lBRkJCVVlOQUNBQVFjUUphaUFBUWNBU2FpZ0NBQ0FFS0FLTUFVRUFSeUFBS0FJUUtBSXdFRnBGRFFCQkF5RUZEQU1MSUFCQnhBbHFJZ0VnQVNnQ0FDQUJLQUljUVNoc2FpSUJOZ0lJSUFBZ0FTZ0NBRFlDdUFvTElBQkIyQXBxSUFKQjNBY1FGU0VCSUFCQkFUWUNwQWtnQUNBRUtRT0lBVGNDMEFvZ0FDZ0NsQWtnQUNnQ0RDQUFRWmdMYWlnQ0FDQUFLQUlRSWdJb0FqUWdBaWdDT0JBL0lBQkJ4QWxxSWdJUUppQUNJQUJCbkF0cUlBQkI1QXBxS0FJQUlBQkJoQXRxS0FJQUVGOEVRRUVESVFVTUFnc2dCRUVRYWlBQUlBQkJ1QXBxSUFFUVFRUkFJQUFnQUNnQzJBb1FRRUVESVFVTUFnc2dBQkF6UlEwQklBQkJBVFlDbkFrTElBQkJ1QXBxSWdFZ0FDZ0N2QWtRU1NBQUVEUWdBRUdFQ21vZ0FDZ0NFQ0FBUWRnS2FpQUFRZEFLYWhCTklRSUNRQ0FBS0FLa0NVVU5BQ0FBUWNRSmFpRURJQUJCMUFwcUtBSUFCRUFnQXlBQVFld01haUFCSUFCQjVBcHFLQUlBSUFJZ0FDZ0MwQXBCQlVZZ0FDZ0N1QWtnQUNnQ3RBa1FLUXdCQ3lBRFFRQWdBU0FBUWVRS2FpZ0NBQ0FDSUFBb0F0QUtRUVZHSUFBb0FyZ0pJQUFvQXJRSkVDa0xJQUJDQURjQ29BbEJBU0VGQ3lBRVFaQUJhaVFBSUFVTHFBd0JDMzhDUUNBQlFRUlBCRUJCQUNBRGF5SU5RUUYwSVFvQ1FDQUFJQU5ySWdVdEFBQWlCaUFBTFFBQUlnaHJJZ0VnQVVFZmRTSUJhaUFCY3lBQ0tBSUVJZ0ZQRFFBZ0FDQUthaTBBQUNJSElBWnJJZ1FnQkVFZmRTSUVhaUFFY3lBQ0tBSUlJZ3hQRFFBZ0FDQURhaTBBQUNJRUlBaHJJZ3NnQzBFZmRTSUxhaUFMY3lBTVR3MEFJQVVnQkNBR2FpQUhRUUYwYWtFQ2FrRUNkam9BQUNBQUlBZ2dCRUVCZEdvZ0IycEJBbXBCQW5ZNkFBQWdBaWdDQkNFQkN3SkFJQUJCQVdvaUJpQU5haUlNTFFBQUlnZ2dBQzBBQVNJSGF5SUVJQVJCSDNVaUJHb2dCSE1nQVU4TkFDQUdJQXBxTFFBQUlnUWdDR3NpQlNBRlFSOTFJZ1ZxSUFWeklBSW9BZ2dpQzA4TkFDQURJQVpxTFFBQUlnVWdCMnNpQ1NBSlFSOTFJZ2xxSUFseklBdFBEUUFnRENBRklBaHFJQVJCQVhScVFRSnFRUUoyT2dBQUlBWWdCeUFGUVFGMGFpQUVha0VDYWtFQ2Rqb0FBQ0FDS0FJRUlRRUxBa0FnQUVFQ2FpSUdJQTFxSWd3dEFBQWlDQ0FBTFFBQ0lnZHJJZ1FnQkVFZmRTSUVhaUFFY3lBQlR3MEFJQVlnQ21vdEFBQWlCQ0FJYXlJRklBVkJIM1VpQldvZ0JYTWdBaWdDQ0NJTFR3MEFJQU1nQm1vdEFBQWlCU0FIYXlJSklBbEJIM1VpQ1dvZ0NYTWdDMDhOQUNBTUlBVWdDR29nQkVFQmRHcEJBbXBCQW5ZNkFBQWdCaUFISUFWQkFYUnFJQVJxUVFKcVFRSjJPZ0FBSUFJb0FnUWhBUXNDUUNBQVFRTnFJZ1lnRFdvaURDMEFBQ0lJSUFBdEFBTWlCMnNpQkNBRVFSOTFJZ1JxSUFSeklBRlBEUUFnQmlBS2FpMEFBQ0lFSUFocklnVWdCVUVmZFNJRmFpQUZjeUFDS0FJSUlndFBEUUFnQXlBR2FpMEFBQ0lGSUFkcklna2dDVUVmZFNJSmFpQUpjeUFMVHcwQUlBd2dCU0FJYWlBRVFRRjBha0VDYWtFQ2Rqb0FBQ0FHSUFjZ0JVRUJkR29nQkdwQkFtcEJBblk2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJCR29pQmlBTmFpSU1MUUFBSWdnZ0FDMEFCQ0lIYXlJRUlBUkJIM1VpQkdvZ0JITWdBVThOQUNBR0lBcHFMUUFBSWdRZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFJb0FnZ2lDMDhOQUNBRElBWnFMUUFBSWdVZ0Iyc2lDU0FKUVI5MUlnbHFJQWx6SUF0UERRQWdEQ0FGSUFocUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFZZ0J5QUZRUUYwYWlBRWFrRUNha0VDZGpvQUFDQUNLQUlFSVFFTEFrQWdBRUVGYWlJR0lBMXFJZ3d0QUFBaUNDQUFMUUFGSWdkcklnUWdCRUVmZFNJRWFpQUVjeUFCVHcwQUlBWWdDbW90QUFBaUJDQUlheUlGSUFWQkgzVWlCV29nQlhNZ0FpZ0NDQ0lMVHcwQUlBTWdCbW90QUFBaUJTQUhheUlKSUFsQkgzVWlDV29nQ1hNZ0MwOE5BQ0FNSUFVZ0NHb2dCRUVCZEdwQkFtcEJBblk2QUFBZ0JpQUhJQVZCQVhScUlBUnFRUUpxUVFKMk9nQUFJQUlvQWdRaEFRc0NRQ0FBUVFacUlnWWdEV29pREMwQUFDSUlJQUF0QUFZaUIyc2lCQ0FFUVI5MUlnUnFJQVJ6SUFGUERRQWdCaUFLYWkwQUFDSUVJQWhySWdVZ0JVRWZkU0lGYWlBRmN5QUNLQUlJSWd0UERRQWdBeUFHYWkwQUFDSUZJQWRySWdrZ0NVRWZkU0lKYWlBSmN5QUxUdzBBSUF3Z0JTQUlhaUFFUVFGMGFrRUNha0VDZGpvQUFDQUdJQWNnQlVFQmRHb2dCR3BCQW1wQkFuWTZBQUFnQWlnQ0JDRUJDeUFOSUFCQkIyb2lEV29pQ0MwQUFDSUdJQUF0QUFjaUFHc2lCeUFIUVI5MUlnZHFJQWR6SUFGUERRRWdDaUFOYWkwQUFDSUJJQVpySWdvZ0NrRWZkU0lLYWlBS2N5QUNLQUlJSWdwUERRRWdBeUFOYWkwQUFDSUNJQUJySWdNZ0EwRWZkU0lEYWlBRGN5QUtUdzBCSUFnZ0FpQUdhaUFCUVFGMGFrRUNha0VDZGpvQUFDQU5JQUFnQWtFQmRHb2dBV3BCQW1wQkFuWTZBQUFQQzBFQUlBTnJJZ2RCQVhRaEJDQUJJQUlvQWdCcVFYOXFMUUFBSWdGQkFXb2hCaUFCUVg5eklRaEJDQ0VCQTBBQ1FDQUFJQWRxSWdVdEFBQWlDaUFBTFFBQUlnMXJJZ3dnREVFZmRTSU1haUFNY3lBQ0tBSUVUdzBBSUFBZ0JHb3RBQUFpRENBS2F5SUxJQXRCSDNVaUMyb2dDM01nQWlnQ0NDSUxUdzBBSUFBZ0Eyb3RBQUFpQ1NBTmF5SU9JQTVCSDNVaURtb2dEbk1nQzA4TkFDQUZJQW9nQ0NBR0lBMGdDbXRCQW5RZ0NXc2dER3BCQkdwQkEzVWlDaUFLSUFaS0d5QUtJQWhJR3lJS2FrR3dMbW90QUFBNkFBQWdBQ0FOSUFwclFiQXVhaTBBQURvQUFBc2dBRUVCYWlFQUlBRkJmMm9pQVEwQUN3c0w2Z2dCQW44Z0FVRUFRYmdIRUFjaEFrRUJJUUVDUUFKQUlBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBZ0FDUUNBRFFRRkhEUUFnQUVFSUVBTWlBMEYvUmcwQklBSWdBellDQkNBRFFmOEJSdzBBSUFCQkVCQURJZ05CZjBZTkFTQUNJQU0yQWdnZ0FFRVFFQU1pQTBGL1JnMEJJQUlnQXpZQ0RBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDRUNBRFFRRkdCRUFnQUVFQkVBTWlBMEYvUmcwQklBSWdBMEVCUmpZQ0ZBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDR0FKQUFrQWdBMEVCUmdSQUlBQkJBeEFESWdOQmYwWU5BeUFDSUFNMkFod2dBRUVCRUFNaUEwRi9SZzBESUFJZ0EwRUJSallDSUNBQVFRRVFBeUlEUVg5R0RRTWdBaUFEUVFGR05nSWtJQU5CQVVjTkFTQUFRUWdRQXlJRFFYOUdEUU1nQWlBRE5nSW9JQUJCQ0JBRElnTkJmMFlOQXlBQ0lBTTJBaXdnQUVFSUVBTWlBMEYvUncwQ0RBTUxJQUpCQlRZQ0hBc2dBa0tDZ0lDQUlEY0NLRUVDSVFNTElBSWdBellDTUNBQVFRRVFBeUlEUVg5R0RRQWdBaUFEUVFGR05nSTBBa0FnQTBFQlJ3MEFJQUFnQWtFNGFoQUNJZ0VOQVNBQ0tBSTRRUVZMRFFJZ0FDQUNRVHhxRUFJaUFRMEJJQUlvQWp4QkJVME5BQXdDQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDUUNBRFFRRkdCRUFnQUJBUElRRWdBRUVnRUFzaEF5QUJSUTBDSUFOQmYwWU5BaUFDSUFFMkFrUWdBQkFQSVFFZ0FFRWdFQXNoQXlBQlJRMENJQU5CZjBZTkFpQUNJQUUyQWtoQkFTRUJJQUJCQVJBRElnTkJmMFlOQVNBQ0lBTkJBVVkyQWt3TElBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBbEFDUUNBRFFRRkdCRUFnQUNBQ1FkUUFhaEFjSWdGRkRRRU1BZ3NnQWtFQk5nSlVJQUpDbUlDQWdJQUROd0xvQXlBQ1FwaUFnSUNBQXpjQzRBTWdBa0dCa0txSkFUWUM0QUVnQWtHQmtLcUpBVFlDWUF0QkFTRUJJQUJCQVJBRElnTkJmMFlOQUNBQ0lBTkJBVVkyQXZBREFrQWdBMEVCUmdSQUlBQWdBa0gwQTJvUUhDSUJSUTBCREFJTElBSkJBVFlDOUFNZ0FrS1lnSUNBZ0FNM0FvZ0hJQUpDbUlDQWdJQUROd0tBQnlBQ1FZRzR1UElBTmdLQUJTQUNRWUc0dVBJQU5nS0FCQXNDUUNBQ0tBSlFSUVJBSUFJb0F2QURSUTBCQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBCSUFJZ0EwRUJSallDa0FjTFFRRWhBU0FBUVFFUUF5SURRWDlHRFFBZ0FpQURRUUZHTmdLVUJ5QUFRUUVRQXlJRFFYOUdEUUFnQWlBRFFRRkdOZ0tZQndKQUlBTkJBVVlFUUNBQVFRRVFBeUlEUVg5R0RRSWdBaUFEUVFGR05nS2NCeUFBSUFKQm9BZHFFQUlpQVEwQ0lBSW9BcUFIUVJCTERRTWdBQ0FDUWFRSGFoQUNJZ0VOQWlBQ0tBS2tCMEVRU3cwRElBQWdBa0dvQjJvUUFpSUJEUUlnQWlnQ3FBZEJFRXNOQXlBQUlBSkJyQWRxRUFJaUFRMENRUUVoQVNBQ0tBS3NCMEVRU3cwQ0lBQWdBa0d3QjJvUUFpSUJEUUlnQUNBQ1FiUUhhaEFDSWdGRkRRRU1BZ3NnQWtFUU5nSzBCeUFDUXBDQWdJQ0FBamNDckFjZ0FrS0JnSUNBZ0FJM0FxUUhJQUpDZ1lDQWdDQTNBcHdIQzBFQUlRRUxJQUVQQzBFQkMwMEJBbjhqQUVFUWF5SURKQUJCQVNFRUFrQWdBQ0FEUVF4cUVBSU5BQ0FES0FJTUlnQkJMMHNOQUNBQlFkQS9RWURBQUNBQ0d5QUFhaTBBQURZQ0FFRUFJUVFMSUFOQkVHb2tBQ0FFQ3o0QkFuOENRQ0FBS0FJTVFRTjBJQUFvQWhCcklnRkZCRUFNQVF0QkFTRUNJQUZCQ0VzTkFFRUJJQUZCZjJwMElBQVFEMEVnSUFGcmRrY1BDeUFDQ3pJQkFuOENRRUdBZ0lEQUFDSUJJQUJ4RFFBRFFDQUNRUUZxSVFJZ0FVRUJkaUlCUlEwQklBQWdBWEZGRFFBTEN5QUNDNG9DQVFkL0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRUNRUUVoQXlBQlFRWlBCRUJCQUNFRElBSWdBVUdRUEdvdEFBQkJmMnAwSVFJTElBQWdBQ2dDQUNJQklBQW9BZ2dpQkdzaUJTQUFLQUlFSWdZZ0FDZ0NEQ0lIYXlJSWF5QUNiQ0FEZFRZQ0RDQUFJQVVnQ0dvZ0Ftd2dBM1UyQWdnZ0FDQUJJQVJxSWdFZ0JpQUhhaUlFYXlBQ2JDQURkVFlDQkNBQUlBRWdCR29nQW13Z0EzVTJBZ0FnQUNBQUtBSWNJZ0VnQUNnQ0ZDSUVhaUlGSUFBb0FoZ2lCaUFBS0FJUUlnZHFJZ2hxSUFKc0lBTjFOZ0lRSUFBZ0JDQUJheUlCSUFjZ0Jtc2lCR29nQW13Z0EzVTJBaGdnQUNBSUlBVnJJQUpzSUFOMU5nSVVJQUFnQkNBQmF5QUNiQ0FEZFRZQ0hBdlBDQUVVZnlBQUlBQW9BaXdpQWlBQUtBSU1JZ1pxSWdVZ0FDZ0NOQ0lFSUFBb0FpQWlFR29pQ21zaUVUWUNMQ0FBS0FJb0lRTWdBQ0FHSUFKcklnY2dFQ0FFYXlJRWF5SUdOZ0lvSUFBb0FpUWhBaUFBSUFRZ0Iyb2lCRFlDSkNBQUlBVWdDbW9pQlRZQ0lDQUFJQUFvQWh3aUNpQUFLQUlJSWdkcUlnZ2dBQ2dDTUNJTUlBQW9BaEFpQ1dvaUMyc2lFRFlDSENBQUtBSVlJUThnQUNBSElBcHJJZ2NnQ1NBTWF5SU1heUlLTmdJWUlBQW9BaFFoQ1NBQUlBY2dER29pQnpZQ0ZDQUFJQWdnQzJvaUNEWUNFQ0FBSUFrZ0FDZ0NBQ0lMYWlJU0lBOGdBQ2dDQkNJTmFpSU9heUlNTmdJTUlBQWdDeUFKYXlJSklBMGdEMnNpQzJzaUR6WUNDQ0FBSUFrZ0Myb2lDVFlDQkNBQUlBNGdFbW9pQ3pZQ0FDQUFJQUlnQUNnQ09DSU5haUlUSUFNZ0FDZ0NQQ0lPYWlJVWF5SVNOZ0k4SUFBZ0FpQU5heUlDSUFNZ0Rtc2lBMnNpRFRZQ09DQUFJQUlnQTJvaURqWUNOQ0FBSUJNZ0ZHb2lFellDTUNBQlFaQThhaTBBQUNFQ0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRURJQUZCREU4RVFDQUFJQU1nQWtGK2FuUWlBU0FGSUF0cUlnTWdDQ0FUYWlJQ2EydzJBakFnQUNBTElBVnJJZ1VnQ0NBVGF5SUlheUFCYkRZQ0lDQUFJQVVnQ0dvZ0FXdzJBaEFnQUNBQ0lBTnFJQUZzTmdJQUlBQWdCQ0FKYWlJRElBY2dEbW9pQW1zZ0FXdzJBalFnQUNBSklBUnJJZ1FnQnlBT2F5SUZheUFCYkRZQ0pDQUFJQVFnQldvZ0FXdzJBaFFnQUNBQ0lBTnFJQUZzTmdJRUlBQWdCaUFQYWlJRElBb2dEV29pQW1zZ0FXdzJBamdnQUNBUElBWnJJZ1lnQ2lBTmF5SUVheUFCYkRZQ0tDQUFJQVFnQm1vZ0FXdzJBaGdnQUNBQ0lBTnFJQUZzTmdJSUlBQWdEQ0FSYXlJRElCQWdFbXNpQW1zZ0FXdzJBaXdnQUNBQ0lBTnFJQUZzTmdJY0lBQWdFQ0FTYWlJRElBd2dFV29pQW1vZ0FXdzJBZ3dnQUNBQ0lBTnJJQUZzTmdJOER3c2dBRUVCUVFJZ0FVRjZha0VHU1JzaUFTQUZJQXRxSWhRZ0NDQVRhaUlWYXlBRGJHcEJBaUFDYXlJQ2RUWUNNQ0FBSUFzZ0JXc2lCU0FJSUJOcklnaHJJQU5zSUFGcUlBSjFOZ0lnSUFBZ0JTQUlhaUFEYkNBQmFpQUNkVFlDRUNBQUlCUWdGV29nQTJ3Z0FXb2dBblUyQWdBZ0FDQUVJQWxxSWdVZ0J5QU9haUlJYXlBRGJDQUJhaUFDZFRZQ05DQUFJQWtnQkdzaUJDQUhJQTVySWdkcklBTnNJQUZxSUFKMU5nSWtJQUFnQkNBSGFpQURiQ0FCYWlBQ2RUWUNGQ0FBSUFVZ0NHb2dBMndnQVdvZ0FuVTJBZ1FnQUNBR0lBOXFJZ1FnQ2lBTmFpSUZheUFEYkNBQmFpQUNkVFlDT0NBQUlBOGdCbXNpQmlBS0lBMXJJZ3BySUFOc0lBRnFJQUoxTmdJb0lBQWdCaUFLYWlBRGJDQUJhaUFDZFRZQ0dDQUFJQVFnQldvZ0Eyd2dBV29nQW5VMkFnZ2dBQ0FNSUJGcklnWWdFQ0FTYXlJRWF5QURiQ0FCYWlBQ2RUWUNMQ0FBSUFRZ0Jtb2dBMndnQVdvZ0FuVTJBaHdnQUNBUUlCSnFJZ1lnRENBUmFpSVJhaUFEYkNBQmFpQUNkVFlDRENBQUlCRWdCbXNnQTJ3Z0FXb2dBblUyQWp3THZRVUJCbjhqQUVFZ2F5SUZKQUFnQTBFQU5nSUFBa0FnQVNnQ0FDSUdRUkpMRFFCQkFTQUdkQ0lHUWNEZkgzRkZCRUFnQmtFaWNVVU5BU0FDUWJRS2FpZ0NBQVJBSUFOQkFUWUNBQ0FDUVFBMkFyUUtDeUFBSUFWQkhHb1FJQ0lFRFFGQjhQOERJUVFnQWlBRktBSWNRUUowYWlnQ2xBRWlDRVVOQVNBQ0lBZ29BZ1FpQmtFQ2RHb29BaFFpQjBVTkFRSkFJQUlvQWdnaUNVRWdSZzBBSUFZZ0NVWU5BQ0FCS0FJQVFRVkhEUUlMQWtBZ0FrR1lDbW9vQWdBaUJDQUJLQUlFSWdaR0RRQWdCRUVBSUFZYkRRQWdBMEVCTmdJQUN5QUJLQUlBSVFRQ1FBSkFJQUlvQXBRS1FRVkdCRUFnQkVFRlJ3MEJEQUlMSUFSQkJVY05BUXNnQTBFQk5nSUFDMEVCSVFRZ0FDQUhLQUlNSUFWQkdHb1FQUTBCSUFVb0FoZ2lCaUFDUVp3S2FpZ0NBRWNFUUNBQ0lBWTJBcHdLSUFOQkFUWUNBQXNnQVNnQ0FFRUZSZ1JBSUFBZ0J5Z0NEQ0FGUVJScUVEd05BZ0pBSUFJb0FwUUtRUVZIQkVBZ0JTZ0NGQ0VFREFFTElBSkJvQXBxS0FJQUlnUWdCU2dDRkNJR1JnMEFJQU5CQVRZQ0FDQUdJUVFMSUFKQm9BcHFJQVEyQWdBTEFrQWdCeWdDRUNJRVFRRkxEUUFnQkVFQmF3UkFRUUVoQkNBQUlBY2dBU2dDQUNBRlFRaHFFRHNOQXlBRktBSUlJZ1FnQWtHa0Ntb29BZ0JIQkVBZ0FpQUVOZ0trQ2lBRFFRRTJBZ0FMSUFnb0FnaEZEUUVnQUNBSElBRW9BZ0FnQlVFUWFoQTZJZ1FOQXlBRktBSVFJZ0FnQWtHb0Ntb29BZ0JHRFFFZ0FpQUFOZ0tvQ2lBRFFRRTJBZ0FNQVFzZ0J5Z0NHQTBBSUFBZ0J5QUJLQUlBSUFnb0FnZ2dCVUVJYWhBNUlnUU5BaUFGS0FJSUlnQWdBa0dzQ21vb0FnQkhCRUFnQWlBQU5nS3NDaUFEUVFFMkFnQUxJQWdvQWdoRkRRQWdCU2dDRENJQUlBSkJzQXBxS0FJQVJnMEFJQUlnQURZQ3NBb2dBMEVCTmdJQUN5QUNJQUVwQWdBM0FwUUtRUUFoQkF3QkN5QURRUUUyQWdBTElBVkJJR29rQUNBRUMzOEJBMzhDUUFKQUFrQWdBRUg4Q21vb0FnQUVRQ0FBS0FLWUNTSUREUUZCQVE4TFFRRWhBU0FBUWF3SmFpZ0NBQ0FBS0FLWUNVY05BUXdDQ3lBQUtBSzhDU0VCUVFBaEFBTkFJQUlnQVNBQVFkZ0JiR29vQXNRQlFRQkhhaUVDSUFCQkFXb2lBQ0FEUncwQUMwRUJJUUVnQWlBRFJnMEJDMEVBSVFFTElBRUxTZ0VEZnlBQVFnQTNBcWdKSUFBb0FwZ0pJZ0VFUUNBQUtBSzhDU0VDUVFBaEFBTkFJQUlnQUVIWUFXeHFJZ05CQURZQ3hBRWdBMEVBTmdJRUlBQkJBV29pQUNBQlJ3MEFDd3NMZ3dZQkRIOUJBU0VHQWtBZ0FDQUJRUUowYWlnQ2xBRWlCRVVOQUNBQUlBUW9BZ1FpQ1VFQ2RHb2lDa0VVYWlnQ0FDSURSUTBBQWtBZ0JDZ0NEQ0lGUVFKSkRRQWdBeWdDTkNJSElBTW9BamhzSVFnQ1FDQUVLQUlRSWdOQkFrc05BQUpBQWtBQ1FDQURRUUZyRGdJREFBRUxJQVZCZjJvaEN5QUVLQUljSVF3Z0JDZ0NHQ0VOUVFBaEF3d0JDeUFFS0FJVUlRZEJBQ0VEQTBBZ0J5QURRUUowYWlnQ0FDQUlUUVJBSUFVZ0EwRUJhaUlEUncwQkRBUUxDMEVCRHdzRFFDQU5JQU5CQW5RaUJXb29BZ0FpRGlBRklBeHFLQUlBSWdWTERRTWdCU0FJVHcwRElBNGdCM0FnQlNBSGNFMEVRQ0FEUVFGcUlnTWdDMFlOQXd3QkN3dEJBUThMSUFOQmZXcEJBazBFUUNBRUtBSWtJQWhORFFFTUFnc2dBMEVHUncwQUlBUW9BaWdnQ0VrTkFRc0NRQ0FBS0FJRUlnTkJnQUpHQkVBZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQW9BclFhQkVBZ0FFRUFOZ0swR2lBQUtBSzhDUkFFSUFCQkFEWUN2QWtnQUNnQ2xBa1FCQ0FBSUFBb0FwZ0pJZ0ZCMkFGc0lnUVFDaUlDTmdLOENTQUFJQUZCQW5RUUNpSUROZ0tVQ1VILy93TWhCaUFDUlEwQ0lBTkZEUUlnQWtFQUlBUVFCeUFBS0FJUUtBSTBJQUVRVGlBQUtBSVFJUUZCQVNFQ0FrQWdBQ2dDd0FrTkFDQUJLQUlRUVFKR0RRQUNRQ0FCS0FKUVJRMEFJQUVvQWxRaUJDZ0NtQWRGRFFBZ0JDZ0NzQWRGRFFFTFFRQWhBZ3NnQUVIRUNXb2dBU2dDT0NBQktBSTBiQ0FCS0FKWUlBRW9BaXdnQVNnQ0RDQUNFRndpQmtVTkFRd0NDeUFCSUFOR0RRQWdBQ2dDQ0NBSlJ3UkFJQUpGRFFJZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQWdCRFlDRENBQUlBRTJBZ1FMUVFBaEJnc2dCZ3UyQVFFRGZ3SkFJQUFnQVNnQ0FDSURRUUowYWlJQ0tBS1VBU0lFUlFSQUlBSkJ5QUFRQ2lJQU5nS1VBU0FBRFFFUEN3SkFJQU1nQUNnQ0JFY05BQ0FCS0FJRUlBQW9BZ2hHRFFBZ0FFR0JBallDQkFzZ0JDZ0NGQkFFSUFJb0FwUUJRUUEyQWhRZ0FpZ0NsQUVvQWhnUUJDQUNLQUtVQVVFQU5nSVlJQUlvQXBRQktBSWNFQVFnQWlnQ2xBRkJBRFlDSENBQ0tBS1VBU2dDTEJBRUlBSW9BcFFCUVFBMkFpd0xJQUlvQXBRQklBRkJ5QUFRRlJvTDFnRUJBMzhDUUNBQUlBRW9BZ2dpQTBFQ2RHb2lBaWdDRkNJRVJRUkFJQUpCM0FBUUNpSUFOZ0lVSUFBTkFROExJQUFvQWdnZ0EwWUVRQ0FCSUFBb0FoQVFRZ1JBSUFJb0FoUW9BaWdRQkNBQ0tBSVVRUUEyQWlnZ0FpZ0NGQ2dDVkJBRUlBSW9BaFJCQURZQ1ZDQUFRUUEyQWhBZ0FFR0JBallDQkNBQVFpRTNBZ2dNQWdzZ0FTZ0NLQkFFSUFGQkFEWUNLQ0FCS0FKVUVBUWdBVUVBTmdKVUR3c2dCQ2dDS0JBRUlBSW9BaFJCQURZQ0tDQUNLQUlVS0FKVUVBUWdBaWdDRkVFQU5nSlVDeUFDS0FJVUlBRkIzQUFRRlJvTDBnSUJBMzhqQUVFZ2F5SUVKQUFnQkNBQktBSVFOZ0lRSUFRZ0FTa0NDRGNEQ0NBRUlBRXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUJEUUFnQkNBRVFSeHFFQUlpQVEwQUlBUWdCRUVjYWhBQ0lnRU5BQ0FDS0FJTUlRWkJBQ0VCQTBBZ0FTSUZRUUZxSVFFZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQVF3QkN5QUVJQVJCSEdvUUFpSUJEUUFDUUNBQ0tBSVFJZ0VFZnlBQkJTQUNLQUlVSVFaQkFDRUJBMEFnQVNJRlFRRnFJUUVnQmlBRmRnMEFDeUFFSUFWQmYyb1FBMEYvUmdSQVFRRWhBUXdEQ3lBREtBSUlCRUFnQkNBRVFSaHFFQVVpQVEwREN5QUNLQUlRQzBFQlJ3MEFJQUlvQWhnTkFDQUVJQVJCR0dvUUJTSUJEUUVnQXlnQ0NFVU5BQ0FFSUFSQkdHb1FCU0lCRFFFTElBTW9Ba1FFUUNBRUlBUkJIR29RQWlJQkRRRUxJQUFnQkVFQkVBTWlBRFlDQUNBQVFYOUdJUUVMSUFSQklHb2tBQ0FCQzhZQkFRSi9Jd0JCSUdzaUJTUUFJQVVnQUNnQ0VEWUNFQ0FGSUFBcEFnZzNBd2dnQlNBQUtRSUFOd01BQWtBZ0JTQUZRUnhxRUFJaUFBMEFJQVVnQlVFY2FoQUNJZ0FOQUNBRklBVkJIR29RQWlJQURRQWdBU2dDRENFR1FRQWhBQU5BSUFBaUFVRUJhaUVBSUFZZ0FYWU5BQXNnQlNBQlFYOXFFQU5CZjBZRVFFRUJJUUFNQVFzZ0FrRUZSZ1JBSUFVZ0JVRWNhaEFDSWdBTkFRc2dCU0FFRUFVaUFBMEFJQU1FUUNBRklBUkJCR29RQlNJQURRRUxRUUFoQUFzZ0JVRWdhaVFBSUFBTDRRRUJBMzhqQUVFZ2F5SUVKQUFnQkNBQUtBSVFOZ0lRSUFRZ0FDa0NDRGNEQ0NBRUlBQXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUFEUUFnQkNBRVFSeHFFQUlpQUEwQUlBUWdCRUVjYWhBQ0lnQU5BQ0FCS0FJTUlRWkJBQ0VBQTBBZ0FDSUZRUUZxSVFBZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUNRUVZHQkVBZ0JDQUVRUnhxRUFJaUFBMEJDeUFCS0FJVUlRSkJBQ0VBQTBBZ0FDSUJRUUZxSVFBZ0FpQUJkZzBBQ3lBRUlBRkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUVJQU1RQlNFQUN5QUVRU0JxSkFBZ0FBdm1BUUVEZnlNQVFTQnJJZ1FrQUNBRUlBQW9BaEEyQWhBZ0JDQUFLUUlJTndNSUlBUWdBQ2tDQURjREFBSkFJQVFnQkVFY2FoQUNJZ0FOQUNBRUlBUkJIR29RQWlJQURRQWdCQ0FFUVJ4cUVBSWlBQTBBSUFFb0Fnd2hCa0VBSVFBRFFDQUFJZ1ZCQVdvaEFDQUdJQVYyRFFBTElBUWdCVUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQUpCQlVZRVFDQUVJQVJCSEdvUUFpSUFEUUVMSUFFb0FoUWhBa0VBSVFBRFFDQUFJZ0ZCQVdvaEFDQUNJQUYyRFFBTElBUWdBVUYvYWhBRElnQkJmMFlFUUVFQklRQU1BUXNnQXlBQU5nSUFRUUFoQUFzZ0JFRWdhaVFBSUFBTGtnRUJBbjhqQUVFZ2F5SURKQUFnQXlBQUtBSVFOZ0lRSUFNZ0FDa0NBRGNEQUNBRElBQXBBZ2czQXdnQ1FDQURJQU5CSEdvUUFpSUFEUUFnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BRUVBSVFBRFFDQUFJZ1JCQVdvaEFDQUJJQVIyRFFBTElBTWdCRUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQU1nQWhBQ0lRQUxJQU5CSUdva0FDQUFDNWNCQVFKL0l3QkJJR3NpQXlRQUlBTWdBQ2dDRURZQ0VDQURJQUFwQWdnM0F3Z2dBeUFBS1FJQU53TUFBa0FnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BQ0FESUFOQkhHb1FBaUlBRFFCQkFDRUFBMEFnQUNJRVFRRnFJUUFnQVNBRWRnMEFDeUFESUFSQmYyb1FBeUlBUVg5R0JFQkJBU0VBREFFTElBSWdBRFlDQUVFQUlRQUxJQU5CSUdva0FDQUFDNjhPQVFwL0l3QkJFR3NpQlNRQUlBRkJBRUhjQnhBSElRY2dBaWdDTkNFR0lBSW9BamdoQ0FKQUlBQWdCVUVFYWhBQ0lnRU5BQ0FISUFVb0FnUWlBVFlDQUNBQklBWWdDR3dpQzA4RVFFRUJJUUVNQVFzZ0FDQUZRUVJxRUFJaUFRMEFJQWNnQlNnQ0JDSUdOZ0lFSUFaQkIwc0VRRUVCSVFFTUFRdEJBU0VCQWtBQ1FDQUdRUUZyRGdjQ0FRSUNBQUlCQUFzZ0JDZ0NBRUVGUmdSQURBSUxJQUlvQWl3TkFBd0JDeUFBSUFWQkJHb1FBaUlCRFFBZ0J5QUZLQUlFSWdZMkFnaEJBU0VCSUFZZ0F5Z0NBRWNOQUNBQ0tBSU1JUWhCQUNFQkEwQWdBU0lHUVFGcUlRRWdDQ0FHZGcwQUMwRUJJUUVnQUNBR1FYOXFFQU1pQmtGL1JnMEFJQVpCQUNBRUtBSUFJZ2hCQlVZYkRRQWdCeUFHTmdJTUlBaEJCVVlFUUNBQUlBVkJCR29RQWlJQkRRRWdCeUFGS0FJRUlnWTJBaEJCQVNFQklBWkIvLzhEU3cwQkN3SkFJQUlvQWhBaUFRUi9JQUVGSUFJb0FoUWhDRUVBSVFFRFFDQUJJZ1pCQVdvaEFTQUlJQVoyRFFBTElBQWdCa0YvYWhBRElnRkJmMFlFUUVFQklRRU1Bd3NnQnlBQk5nSVVJQU1vQWdnRVFDQUFJQVVRQlNJQkRRTWdCeUFGS0FJQU5nSVlDeUFFS0FJQVFRVkdCRUJCQVNFQklBY29BaFFpQmlBQ0tBSVVRUUYyU3cwRElBWkJBQ0FIS0FJWUlnaEJIM1VnQ0hGclJ3MERDeUFDS0FJUUMwRUJSdzBBSUFJb0FoZ05BQ0FBSUFVUUJTSUJEUUVnQnlBRktBSUFOZ0ljSUFNb0FnZ0VRQ0FBSUFVUUJTSUJEUUlnQnlBRktBSUFOZ0lnQ3lBRUtBSUFRUVZIRFFCQkFTRUJJQWNvQWh3aUJpQUhLQUlnSUFZZ0FpZ0NJR3BxSWdnZ0JpQUlTQnNOQVFzZ0F5Z0NSQVJBSUFBZ0JVRUVhaEFDSWdFTkFTQUhJQVVvQWdRaUJqWUNKRUVCSVFFZ0JrSC9BRXNOQVFzQ1FDQUhLQUlFSWdGQkJVc05BQUpBSUFGQkFXc09CQUVCQVFFQUMwRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDS0FKQUlBWUVRQ0FBSUFWQkJHb1FBaUlCRFFOQkFTRUJJQVVvQWdRaUJrRVBTdzBESUFaQkFXb2hCZ3dCQ3lBREtBSXdJZ1pCRUVzTkFnc2dCeUFHTmdJc0lBY29BZ1FoQVFzQ1FDQUJRUVZMRFFBQ1FDQUJRUUZyRGdRQkFRRUJBQXNnQWlnQ0RDRUpJQWNvQWl3aENrRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDUkNBR1JRMEFRUUFoQVFOQUlBRWlCaUFLU3dSQVFRRWhBUXdEQ3lBQUlBVkJDR29RQWlJQkRRSWdCU2dDQ0NJQlFRTkxCRUJCQVNFQkRBTUxJQWNnQmtFTWJHb2lDQ0FCTmdKSUFrQWdBVUVCVFFSQUlBQWdCVUVNYWhBQ0lnRU5CQ0FGS0FJTUlnRWdDVThFUUVFQklRRU1CUXNnQ0NBQlFRRnFOZ0pNREFFTElBRkJBa2NOQUNBQUlBVkJER29RQWlJQkRRTWdDQ0FGS0FJTU5nSlFDeUFHUVFGcUlRRWdCU2dDQ0VFRFJ3MEFDMEVCSVFFZ0JrVU5BUXNDUUNBRUtBSUVSUTBBSUFRb0FnQWhCQ0FDS0FJc0lRbEJBU0VCSUFCQkFSQURJUUlnQkVFRlJnUkFJQUpCZjBZTkFpQUhJQUkyQXBRQ0lBQkJBUkFESWdKQmYwWU5BaUFISUFJMkFwZ0NJQWtOQVNBQ1JRMEJEQUlMSUFKQmYwWU5BU0FISUFJMkFwd0NJQUpGRFFBZ0NVRUJkRUVEYWlFT1FRQWhCa0VBSVFwQkFDRUVBMEFnQmlBT1JnUkFRUUVoQVF3REN5QUFJQVZCQ0dvUUFpSUJEUUlnQlNnQ0NDSUNRUVpMQkVCQkFTRUJEQU1MSUFjZ0JrRVViR29pQ0NBQ05nS2dBZ0ovSUFKQkFuSkJBMFlFUUNBQUlBVkJER29RQWlJQkRRUWdDQ0FGS0FJTVFRRnFOZ0trQWlBRktBSUlJUUlMSUFKQkFrWUxCRUFnQUNBRlFReHFFQUlpQVEwRElBZ2dCU2dDRERZQ3FBSWdCU2dDQ0NFQ0N3SkFJQUpCZldvaUFVRURTdzBBQWtBZ0FVRUJhdzRDQVFFQUN5QUFJQVZCREdvUUFpSUJEUU1nQ0NBRktBSU1OZ0tzQWlBRktBSUlJUUlMSUFKQkJFWUVRQ0FBSUFWQkRHb1FBaUlCRFFNZ0JTZ0NEQ0lCSUFsTEJFQkJBU0VCREFRTElBZ2dBVUYvYWtILy93TWdBUnMyQXJBQ0lBcEJBV29oQ2lBRktBSUlJUUlMSUFaQkFXb2hCaUFNSUFKQkJrWnFJUXdnQkNBQ1FRVkdhaUVFSUEwZ0FrRi9ha0VEU1dvaERTQUNEUUFMUVFFaEFTQUVJQXB5SUF4eVFRRkxEUUVnQkVVTkFDQU5EUUVMSUFBZ0JSQUZJZ0VOQUNBSElBVW9BZ0FpQVRZQ01DQUZJQUVnQXlnQ05Hb2lBallDQUVFQklRRWdBa0V6U3cwQUFrQWdBeWdDUEVVTkFDQUFJQVZCQkdvUUFpSUJEUUVnQnlBRktBSUVJZ0kyQWpSQkFTRUJJQUpCQWtzTkFTQUNRUUZHRFFBZ0FDQUZFQVVpQVEwQlFRRWhBU0FGS0FJQUlnSkJCbXBCREVzTkFTQUhJQUpCQVhRMkFqZ2dBQ0FGRUFVaUFRMEJRUUVoQVNBRktBSUFJZ0pCQm1wQkRFc05BU0FISUFKQkFYUTJBandMQWtBZ0F5Z0NERUVDU1EwQUlBTW9BaEJCZldwQkFrc05BRUVDUVFFZ0N5QUxJQU1vQWlRaUFXNGlBaUFCYkdzYklBSnFJUVJCQUNFQ0EwQWdCQ0FDSWdGQkFXb2lBbllOQUFzZ0JTQUFJQUlnQVNBRVFYOGdBWFJCZjNOeEd4QURJZ0EyQWdSQkFTRUJJQUJCZjBZTkFTQUhJQUEyQWtBZ0FDQUxJQU1vQWlRaUFHcEJmMm9nQUc1TERRRUxRUUFoQVFzZ0JVRVFhaVFBSUFFTHdRa0JEWDhnQXlBRWJDRUZJQUVvQWd3aUNVRUJSZ1JBSUFCQkFDQUZRUUowRUFjYUR3c0NRQUpBQWtBQ1FDQUJLQUlRSWdaQmZXcEJBazBFUUNBQktBSWtJQUpzSWdJZ0JTQUNJQVZKR3lFTElBWkJmbkZCQkVjTkFTQUZJQXRySUFzZ0FTZ0NJQnNoQndzQ1FBSkFBa0FnQmtFRlRRUkFJQVpCQVdzT0JRWUZCQU1DQVFzZ0JVVU5CaUFCS0FJc0lRSkJBQ0VCQTBBZ0FDQUJRUUowSWdOcUlBSWdBMm9vQWdBMkFnQWdBVUVCYWlJQklBVkhEUUFMREFZTEFrQWdDUVJBSUFFb0FoUWhBa0VBSVFZTUFRc2dCVVVOQmdOQURBQUFDd0FMQTBCQkFDRUVJQVlnQlU4TkJnTkFRUUFoQndKQUlBSWdCRUVDZEdvaUF5Z0NBQ0lCUlEwQUlBRWhCeUFGSUFaTkRRQkJBQ0VCUVFBZ0JTQUdheUlISUFjZ0JVc2JJUWdEUUNBQUlBRWdCbXBCQW5ScUlBUTJBZ0FnQVVFQmFpSUJJQU1vQWdBaUIwOE5BU0FCSUFoSERRQUxDeUFFUVFGcUlnUWdDVWxCQUNBR0lBZHFJZ1lnQlVrYkRRQUxJQVlnQlVrTkFBc01CUXNnQTBVTkJDQUVSUTBFUVFFZ0FTZ0NJQ0lKYXlFSVFRQWhCVUVBSVFJRFFFRUFJUUVnQlNFR0EwQWdBQ0FCSUFOc0lBSnFRUUowYWlBSklBZ2dCaUFIU1JzMkFnQWdCa0VCYWlFR0lBRkJBV29pQVNBRVJ3MEFDeUFFSUFWcUlRVWdBa0VCYWlJQ0lBTkhEUUFMREFRTElBVkZEUU5CQVNBQktBSWdJZ0pySVFOQkFDRUJBMEFnQUNBQlFRSjBhaUFDSUFNZ0FTQUhTUnMyQWdBZ0FVRUJhaUlCSUFWSERRQUxEQU1MSUFFb0FpQWhBaUFGQkVCQkFDRUJBMEFnQUNBQlFRSjBha0VCTmdJQUlBRkJBV29pQVNBRlJ3MEFDd3NnQzBVTkFpQURRWDlxSVE4Z0JFRi9haUVRSUFKQmYyb2hCa0VCSUFKQkFYUWlBV3NoQlNBQlFYOXFJUWtnQkNBQ2EwRUJkaUlLSVF3Z0F5QUNhMEVCZGlJTklRUWdDaUVJSUEwaEFVRUFJUWNEUUNBQUlBTWdDR3dnQVdwQkFuUnFJZzRvQWdBaUVVRUJSZ1JBSUE1QkFEWUNBQXNnRVVFQlJpRU9Ba0FDUUNBR1FYOUhEUUFnQVNBRVJ3MEFRUUFoQmlBSklRSWdCRUVCSUFSQkFVb2JRWDlxSWdFaEJBd0JDd0pBSUFaQkFVY05BQ0FCSUExSERRQkJBQ0VHSUFVaEFpQU5RUUZxSWdFZ0R5QUJJQTlJR3lJQklRME1BUXNDUUNBQ1FYOUhEUUFnQ0NBTVJ3MEFRUUFoQWlBRklRWWdERUVCSUF4QkFVb2JRWDlxSWdnaERBd0JDd0pBSUFKQkFVY05BQ0FJSUFwSERRQkJBQ0VDSUFraEJpQUtRUUZxSWdnZ0VDQUlJQkJJR3lJSUlRb01BUXNnQWlBSWFpRUlJQUVnQm1vaEFRc2dCeUFPYWlJSElBdEpEUUFMREFJTElBRW9BaHdoQnlBQktBSVlJUWdnQlFSQUlBbEJmMm9oQWtFQUlRRURRQ0FBSUFGQkFuUnFJQUkyQWdBZ0FVRUJhaUlCSUFWSERRQUxJQUpGRFFJTElBbEJmbW9oQVFOQUFrQWdDQ0FCSWdSQkFuUWlBV29vQWdBaUJpQURiaUlDSUFFZ0Iyb29BZ0FpQVNBRGJpSUZTdzBBSUFZZ0FpQURiR3NpQmlBQklBTWdCV3hySWdsTEJFQURRQ0FDUVFGcUlnSWdCVTBOQUF3Q0FBc0FDd05BSUFJZ0Eyd2hDaUFHSVFFRFFDQUFJQUVnQ21wQkFuUnFJQVEyQWdBZ0FVRUJhaUlCSUFsTkRRQUxJQUpCQVdvaUFpQUZUUTBBQ3dzZ0JFRi9haUVCSUFRTkFBc01BUXNnQlVVTkFFRUFJUUVEUUNBQUlBRkJBblJxSUFFZ0EyNGlBaUFKYkVFQmRpQUJJQUlnQTJ4cmFpQUpjRFlDQUNBQlFRRnFJZ0VnQlVjTkFBc0xDOFFCQVFWL0lBQW9BcWdKSVFRQ1FDQUFRYkFKYWlnQ0FDSUNSUTBBSUFKQmYyb2lBaUFCVFFSQUlBSWhBUXdCQ3lBQUtBSzhDU0VGQTBBQ1FDQUZJQUpCMkFGc2FpZ0NCQ0FFUncwQUlBTkJBV29pQXlBQUtBSVFLQUkwSWdaQkNpQUdRUXBMRzBrTkFDQUNJUUVNQWdzZ0FrRi9haUlDSUFGTERRQUxDd05BQWtBZ0FDZ0N2QWtnQVVIWUFXeHFJZ0lvQWdRZ0JFY05BQ0FDS0FMRUFTSURSUTBBSUFJZ0EwRi9hallDeEFFZ0FDZ0NsQWtnQUNnQ21Ba2dBUkFlSWdFTkFRc0xDNzBFQWd0L0FYNGpBRUhBQTJzaUJTUUFJQU1vQWdBaEJ5QUJLQUt3R2lFSUlBVkJBRFlDRENBQlFiQUpha0VBTmdJQUlBRWdBU2dDcUFsQkFXbzJBcWdKSUFVZ0F5Z0NNQ0FCS0FJTUtBSTBhallDQ0NBQlFjUUphaUVOSUFoQkRHb2hEZ0pBQTBBZ0FTZ0N2QWtoQkFKQUlBTW9BaVFOQUNBRUlBZEIyQUZzYWlnQ3hBRkZEUUJCQVNFRURBSUxJQU1wQWpRaER5QURLQUk4SVFzZ0FTZ0NxQWtoRENBRUlBZEIyQUZzSWdacUlnUWdBU2dDRENnQ09EWUNHQ0FFSUFzMkFoQWdCQ0FQTndJSUlBUWdERFlDQkFKQUlBTW9BZ1FpQkVFQ1JnMEFJQWtOQUNBRVFRZEdEUUFnQUNBRlFReHFFQUlpQkEwQ0lBVW9BZ3dpQkNBQktBS1lDU0FIYTBzRVFFRUJJUVFNQXdzZ0JFVUVRRUVBSVFrTUFRc2dEa0VBUWFRQkVBY2FJQWhCQURZQ0FFRUJJUWtMQWtBZ0JTZ0NEQ0lFQkVBZ0JTQUVRWDlxTmdJTURBRUxRUUFoQ1NBQUlBZ2dBU2dDdkFrZ0Jtb2dBeWdDQkNBREtBSXNFRkVpQkEwQ0N5QUJLQUs4Q1NBR2FpQUlJQUlnRFNBRlFRaHFJQWNnQVNnQ0RDZ0NRQ0FGUVJCcUVGQWlCQTBCSUFFb0Fyd0pJQVpxS0FMRUFTRUxJQUFRTGlFRUlBVW9BZ3doQmdKQUlBTW9BZ1JCZm1vaURFRUZTdzBBQWtBZ0RFRUJhdzRFQVFFQkFRQUxJQUVnQnpZQ3NBa0xJQVFnQm5JaEJrRUJJUVFnQVNnQ2xBa2dBU2dDbUFrZ0J4QWVJZ2RGUVFBZ0Joc05BU0FLSUF0QkFVWnFJUW9nQmcwQUN5QUJRYXdKYWlnQ0FDQUthaUlBSUFFb0FwZ0pTdzBBSUFFZ0FEWUNyQWxCQUNFRUN5QUZRY0FEYWlRQUlBUUw1Z0lCQjM5QkFTRUNBa0FnQUNnQ0FDQUJLQUlBUncwQUlBQW9BZ1FnQVNnQ0JFY05BQ0FBS0FJTUlBRW9BZ3hIRFFBZ0FDZ0NFQ0lESUFFb0FoQkhEUUFnQUNnQ0xDQUJLQUlzUncwQUlBQW9BakFnQVNnQ01FY05BQ0FBS0FJMElBRW9BalJIRFFBZ0FDZ0NPQ0FCS0FJNFJ3MEFJQUFvQWp3aUJTQUJLQUk4UncwQUlBQW9BbEFnQVNnQ1VFY05BQUpBSUFOQkFVc05BQ0FEUVFGclJRUkFJQUFvQWhnZ0FTZ0NHRWNOQWlBQUtBSWNJQUVvQWh4SERRSWdBQ2dDSUNBQktBSWdSdzBDSUFBb0FpUWlCQ0FCS0FJa1J3MENJQVJGRFFFZ0FTZ0NLQ0VHSUFBb0FpZ2hCMEVBSVFNRFFDQUhJQU5CQW5RaUNHb29BZ0FnQmlBSWFpZ0NBRWNOQXlBRUlBTkJBV29pQTBjTkFBc01BUXNnQUNnQ0ZDQUJLQUlVUncwQkN5QUZCRUFnQUNnQ1FDQUJLQUpBUncwQklBQW9Ba1FnQVNnQ1JFY05BU0FBS0FKSUlBRW9Ba2hIRFFFZ0FDZ0NUQ0FCS0FKTVJ3MEJDMEVBSVFJTElBSUwvd2tCQm44akFFRVFheUlFSkFBZ0FVRUFRZHdBRUFjaEF3SkFJQUJCQ0JBRElnRkJmMFlFUUVFQklRRU1BUXNnQXlBQk5nSUFJQUJCQVJBREdpQUFRUUVRQXhvZ0FFRUJFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUZFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUlFQU1pQVVGL1JnUkFRUUVoQVF3QkN5QURJQUUyQWdRZ0FDQURRUWhxRUFJaUFRMEFJQU1vQWdoQkgwc0VRRUVCSVFFTUFRc2dBQ0FFUVF4cUVBSWlBUTBBUVFFaEFTQUVLQUlNSWdKQkRFc05BQ0FEUVFFZ0FrRUVhblEyQWd3Z0FDQUVRUXhxRUFJaUFRMEFRUUVoQVNBRUtBSU1JZ0pCQWtzTkFDQURJQUkyQWhBQ1FDQUNRUUZMRFFBZ0FrRUJhd1JBSUFBZ0JFRU1haEFDSWdFTkFrRUJJUUVnQkNnQ0RDSUNRUXhMRFFJZ0EwRUJJQUpCQkdwME5nSVVEQUVMSUFCQkFSQURJZ0pCZjBZTkFTQURJQUpCQVVZMkFoZ2dBQ0FEUVJ4cUVBVWlBUTBCSUFBZ0EwRWdhaEFGSWdFTkFTQUFJQU5CSkdvUUFpSUJEUUZCQVNFQklBTW9BaVFpQWtIL0FVc05BU0FDQkVBZ0F5QUNRUUowRUFvaUFUWUNLQ0FCUlFSQVFmLy9BeUVCREFNTElBQWdBUkFGSWdFTkFrRUJJUUlEUUNBQ0lBTW9BaVJQRFFJZ0FrRUNkQ0VCSUFKQkFXb2hBaUFBSUFFZ0F5Z0NLR29RQlNJQlJRMEFDd3dDQ3lBRFFRQTJBaWdMSUFBZ0EwRXNhaEFDSWdFTkFFRUJJUUVnQXlnQ0xFRVFTdzBBSUFCQkFSQURJZ0pCZjBZTkFDQURJQUpCQVVZMkFqQWdBQ0FFUVF4cUVBSWlBUTBBSUFNZ0JDZ0NERUVCYWpZQ05DQUFJQVJCREdvUUFpSUJEUUJCQVNFQklBTWdCQ2dDREVFQmFqWUNPQ0FBUVFFUUEwRUJha0VDU1EwQUlBQkJBUkFEUVg5R0RRQWdBRUVCRUFNaUFrRi9SZzBBSUFNZ0FrRUJSaUlCTmdJOEFrQWdBVVVFUUNBREtBSTRJUVVnQXlnQ05DRUdEQUVMSUFBZ0EwRkFheEFDSWdFTkFTQUFJQU5CeEFCcUVBSWlBUTBCSUFBZ0EwSElBR29RQWlJQkRRRWdBQ0FEUWN3QWFoQUNJZ0VOQVVFQklRRWdBeWdDUUNBREtBSkVRWDl6SUFNb0FqUWlCa0VEZEdwS0RRRWdBeWdDU0NBREtBSk1RWDl6SUFNb0FqZ2lCVUVEZEdwS0RRRUxBa0FDUUFKQUFrQWdBeWdDQkVGMmFpSUhRU2xMRFFCQjR3QWhBVUdBcEFraEFnSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQjBFQmF3NHBBQUVCQ3dzTEN3c0xBUUlEQ3dzTEN3c0xDd01FQlFzTEN3c0xDd3NHQmdjTEN3c0xDd3NMQ0FrS0MwR01BeUVCUVlDTUZTRUNEQWtMUVl3RElRRkJnTmczSVFJTUNBdEJtQVloQVVHQXNPOEFJUUlNQnd0QjFBd2hBVUdBN0wwQklRSU1CZ3RCa0J3aEFVR0E4S1VESVFJTUJRdEJnQ2doQVVHQWdPQURJUUlNQkF0QmdNQUFJUUZCZ0lDQUJpRUNEQU1MUVlERUFDRUJRWUNBc0FZaEFnd0NDMEhBckFFaEFVR0F3SnNVSVFJTUFRdEJnS0FDSVFGQmdJRGdJU0VDQ3lBQklBVWdCbXdpQVU4TkFRc2dCRUgvLy8vL0J6WUNEQ0FES0FJc0lRSU1BUXNnQkNBQ0lBRkJnQU5zYmlJQlFSQWdBVUVRU1JzaUFUWUNEQ0FES0FJc0lnSWdBVTBOQVFzZ0JDQUNOZ0lNSUFJaEFRc2dBeUFCTmdKWVFRRWhBU0FBUVFFUUF5SUNRWDlHRFFBZ0F5QUNRUUZHTmdKUUFrQWdBa0VCUncwQUlBTkJ1QWNRQ2lJQk5nSlVJQUZGQkVCQi8vOERJUUVNQWdzZ0FDQUJFQ3dpQVEwQklBTW9BbFFpQWlnQ21BZEZEUUJCQVNFQklBSW9BckFISUFJb0FyUUhJZ0pMRFFFZ0FpQURLQUlzU1EwQklBSWdBeWdDV0VzTkFTQURJQUpCQVNBQ0d6WUNXQXNnQUJBZlFRQWhBUXNnQkVFUWFpUUFJQUVMalFRQkRuOGdBUUovQWtBZ0FDOEJJQ0lIRFFBZ0FDOEJIQTBBUVFBTUFRdEJBZ3MyQWlBZ0FRSi9Ba0FnQUM4QklpSUNEUUFnQUM4QkhnMEFRUUFNQVF0QkFnczJBaWdnQVFKL0FrQWdBQzhCS0NJRERRQWdBQzhCSkEwQVFRQU1BUXRCQWdzMkFqQWdBUUovQWtBZ0FDOEJLaUlJRFFBZ0FDOEJKZzBBUVFBTUFRdEJBZ3MyQWpnZ0FTQUhJQUF2QVN3aUNYSkJBRWRCQVhRMkFrQWdBU0FDSUFBdkFTNGlCSEpCQUVkQkFYUTJBa2dnQVNBRElBQXZBVFFpQlhKQkFFZEJBWFEyQWxBZ0FTQUlJQUF2QVRZaUNuSkJBRWRCQVhRMkFsZ2dBU0FBTHdFd0lnMGdDWEpCQUVkQkFYUTJBbUFnQVNBQUx3RXlJZ3NnQkhKQkFFZEJBWFEyQW1nZ0FTQUFMd0U0SWd3Z0JYSkJBRWRCQVhRMkFuQWdBU0FBTHdFNklnNGdDbkpCQUVkQkFYUTJBbmhCQWlFR0lBRWdBQzhCSGlJUEJIOUJBZ1VnQUM4QkhFRUFSMEVCZEFzMkFnd2dBU0FQSUFBdkFTUWlCbkpCQUVkQkFYUTJBaFFnQUM4QkppRUFJQUVnRENBT2NrRUFSMEVCZERZQ2ZDQUJJQXNnREhKQkFFZEJBWFEyQW5RZ0FTQUxJQTF5UVFCSFFRRjBOZ0pzSUFFZ0JTQUtja0VBUjBFQmREWUNYQ0FCSUFRZ0JYSkJBRWRCQVhRMkFsUWdBU0FFSUFseVFRQkhRUUYwTmdKTUlBRWdBeUFJY2tFQVIwRUJkRFlDUENBQklBSWdBM0pCQUVkQkFYUTJBalFnQVNBQ0lBZHlRUUJIUVFGME5nSXNJQUVnQUNBR2NrRUFSMEVCZERZQ0hBdk1CZ0VMZnlNQVFZQU9heUlPSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0NHb2dCRXNOQUNBSFFRVnFJZ29nQTJvZ0JVc05BQ0FFSVFnZ0F5RUpEQUVMSUFBZ0RrSEFDbW9nQWlBRElBUWdCU0FJSUFkQkJXb2lDaUFJRUF3Z0RrSEFDbW9oQUVFQUlRSUxBa0FnQ2tVTkFDQUdRUUoySWhCRkRRQWdDQ0FHYXlFUklBQWdDQ0FKYkNBQ2FtcEJCV29oQWlBT0lRQURRQ0FDUVg5cUxRQUFJUWdnQWtGK2FpMEFBQ0VESUFKQmZXb3RBQUFoQlNBQ1FYeHFMUUFBSVFRZ0FrRjdhaTBBQUNFTUlCQWhEUU5BSUFBZ0FpMEFBQ0lKSUF3Z0JDQUlhaUlMYXlBRElBVnFRUlJzYWlBTFFRSjBhMm8yQWdBZ0FDQUNMUUFCSWdzZ0F5QUlha0VVYkNBRWFpQUZJQWxxSWdScklBUkJBblJyYWpZQ0JDQUFJQUl0QUFJaUR5QUlJQWxxUVJSc0lBVnFJQU1nQzJvaUJHc2dCRUVDZEd0cU5nSUlJQUFnQWkwQUF5SVNJQWtnQzJwQkZHd2dBMm9nQ0NBUGFpSURheUFEUVFKMGEybzJBZ3dnQUVFUWFpRUFJQUpCQkdvaEFpQUlJUXdnQ1NFRUlBc2hCU0FQSVFNZ0VpRUlJQTFCZjJvaURRMEFDeUFDSUJGcUlRSWdDa0YvYWlJS0RRQUxDd0pBSUFkQkFuWWlCMFVOQUNBR1JRMEFRY0FBSUFacklROGdEaUFHUVFKMGFpSUlJQVpCRkd4cUlRSkJBQ0FHYXlJUVFRTjBJUklnQmtFRGRDRUpJQVpCQTJ4QkFuUWhDd05BSUFZaEJBTkFJQUVnQ0NBSmFpZ0NBQ0lBSUFJZ0NXb29BZ0FnQWlBR1FRSjBJZzFxS0FJQUlnb2dBaUFTYWlnQ0FDSURhaUlGYXlBRlFRSjBhMm9nQWlnQ0FDSU1JQUlnRUVFQ2RDSVJhaWdDQUNJRmFrRVViR3BCZ0FScVFRcDFRYkF1YWkwQUFEb0FNQ0FCSUFnZ0RXb29BZ0FpRFNBS0lBTWdCV3BCRkd4cUlBQWdER29pQ21zZ0NrRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQTZBQ0FnQVNBSUtBSUFJZ29nRENBQUlBTnFRUlJzYWlBRklBMXFJZ3hySUF4QkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQU9nQVFJQUVnQ0NBUmFpZ0NBQ0FGSUFBZ0RXcEJGR3hxSUFNZ0Ntb2lBR3NnQUVFQ2RHdHFRWUFFYWtFS2RVR3dMbW90QUFBNkFBQWdDRUVFYWlFSUlBRkJBV29oQVNBQ1FRUnFJUUlnQkVGL2FpSUVEUUFMSUFFZ0Qyb2hBU0FDSUF0cUlRSWdDQ0FMYWlFSUlBZEJmMm9pQncwQUN3c2dEa0dBRG1va0FBdmxBd0VKZnlNQVFjQURheUlLSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0F5QUhhaUFGU3cwQUlBTkJBRWdOQUNBQ0lBaHFJQVJMRFFBZ0JDRUlJQU1oQ1F3QkN5QUFJQW9nQWlBRElBUWdCU0FJSUFjZ0NCQU1JQW9oQUVFQUlRSUxBa0FnQjBVTkFDQUdRUUoySWcxRkRRQkJFQ0FHYXlFT0lBZ2dCbXNoRHlBQUlBZ2dDV3dnQW1wcVFRVnFJUUlEUUNBQ1FYOXFMUUFBSVFnZ0FrRithaTBBQUNFR0lBSkJmV290QUFBaEFDQUNRWHhxTFFBQUlRVWdBa0Y3YWkwQUFDRUpJQTBoQ3dOQUlBRWdBaTBBQUNJRElBa2dCU0FJYWlJRWF5QUFJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FBSUFFZ0FpMEFBU0lFSUFVZ0JpQUlha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQU9nQUJJQUVnQWkwQUFpSU1JQUFnQXlBSWFrRVViR29nQkNBR2FpSUFheUFBUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBT2dBQ0lBRWdBaTBBQXlJUUlBWWdBeUFFYWtFVWJHb2dDQ0FNYWlJQWF5QUFRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FESUFGQkJHb2hBU0FDUVFScUlRSWdDQ0VKSUFNaEJTQUVJUUFnRENFR0lCQWhDQ0FMUVg5cUlnc05BQXNnQVNBT2FpRUJJQUlnRDJvaEFpQUhRWDlxSWdjTkFBc0xJQXBCd0FOcUpBQUw5UU1CQzM4akFFSEFBMnNpQ3lRQUFrQUNRQ0FDUVFCSURRQWdBMEVBU0EwQUlBSWdCbW9nQkVzTkFDQURJQWRxUVFWcUlBVkxEUUFnQXlFSURBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFZZ0IwRUZhaUFHRUF3Z0N5RUFJQVloQkVFQUlRSUxBa0FnQjBFQ2RpSU1SUTBBSUFaRkRRQkJ3QUFnQm1zaEVTQUVRUUYwSVEwZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVNJQUFnQkNBSWJDQUNhbW9nQkdvaUJ5QUVRUVZzYWlFQ0EwQWdCaUVBQTBBZ0FTQUhJQTFxTFFBQUlnTWdBaUFOYWkwQUFDQUNJQVJxTFFBQUlna2dBaUFTYWkwQUFDSUZhaUlJYXlBSVFRSjBhMm9nQWkwQUFDSUtJQUlnRDJvdEFBQWlDR3BCRkd4cVFSQnFRUVYxUWJBdWFpMEFBRG9BTUNBQklBUWdCMm90QUFBaUVDQUpJQVVnQ0dwQkZHeHFJQU1nQ21vaUNXc2dDVUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBRG9BSUNBQklBY3RBQUFpQ1NBS0lBTWdCV3BCRkd4cUlBZ2dFR29pQ21zZ0NrRUNkR3RxUVJCcVFRVjFRYkF1YWkwQUFEb0FFQ0FCSUFjZ0Qyb3RBQUFnQ0NBRElCQnFRUlJzYWlBRklBbHFJZ05ySUFOQkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBQWdCMEVCYWlFSElBRkJBV29oQVNBQ1FRRnFJUUlnQUVGL2FpSUFEUUFMSUFFZ0VXb2hBU0FDSUE1cUlRSWdCeUFPYWlFSElBeEJmMm9pREEwQUN3c2dDMEhBQTJva0FBdXFCZ0VOZnlNQVFiQUJheUlSSkFBZ0NFRUJhaUVLQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0Ntb2dCRXNOQUNBRElBbHFRUUZxSUFWTERRQWdCU0VNSUFRaENpQURJUThNQVFzZ0FDQVJJQUlnQXlBRUlBVWdDaUFKUVFGcUlnd2dDaEFNSUFBZ0JDQUZiR29nRVNBS0lBeHNhaUFDSUFNZ0JDQUZJQW9nRENBS0VBd2dFU0VBUVFBaEFnc0NRQ0FKUVFGMklnVkZEUUFnQ0VFQmRpSUVSUTBBUVJBZ0NHc2hFMEVJSUFkcklRdEJDQ0FHYXlFTklBcEJBWFFpRGlBSWF5RVVJQUFnQW1vaUZpQUtJQTlzYWlFQ0lBRWhBQ0FGSVJVRFFDQUNJQTVxTFFBQUlBZHNJQXNnQWlBS2FpMEFBQ0lEYkdvaENDQURJQWRzSUFzZ0FpMEFBR3hxSVFrZ0JDRURBMEFnQWtFQmFpSVFJQTVxTFFBQUlSSWdBQ0FKSUExc0lBb2dFR290QUFBaUNTQUhiQ0FMSUFJdEFBRnNhaUlRSUFac2FrRWdha0VHZGpvQUFDQUFJQWdnRFd3Z0J5QVNiQ0FKSUF0c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ0NBQ0xRQUNJUWtnQWtFQ2FpSUNJQTVxTFFBQUlSSWdBQ0FOSUJCc0lBSWdDbW90QUFBaUVDQUhiQ0FKSUF0c2FpSUpJQVpzYWtFZ2FrRUdkam9BQVNBQUlBZ2dEV3dnQnlBU2JDQUxJQkJzYWlJSUlBWnNha0VnYWtFR2Rqb0FDU0FBUVFKcUlRQWdBMEYvYWlJRERRQUxJQUlnRkdvaEFpQUFJQk5xSVFBZ0ZVRi9haUlWRFFBTElBRkJRR3NoQUNBV0lBd2dEMm9nQ214cUlRSURRQ0FDSUE1cUxRQUFJQWRzSUFzZ0FpQUthaTBBQUNJQmJHb2hDQ0FCSUFkc0lBc2dBaTBBQUd4cUlRa2dCQ0VEQTBBZ0FrRUJhaUlCSUE1cUxRQUFJUXdnQUNBSklBMXNJQUVnQ21vdEFBQWlBU0FIYkNBTElBSXRBQUZzYWlJSklBWnNha0VnYWtFR2Rqb0FBQ0FBSUFnZ0RXd2dCeUFNYkNBQklBdHNhaUlCSUFac2FrRWdha0VHZGpvQUNDQUNMUUFDSVFnZ0FrRUNhaUlDSUE1cUxRQUFJUXdnQUNBSklBMXNJQUlnQ21vdEFBQWlEeUFIYkNBSUlBdHNhaUlKSUFac2FrRWdha0VHZGpvQUFTQUFJQUVnRFd3Z0J5QU1iQ0FMSUE5c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ1NBQVFRSnFJUUFnQTBGL2FpSUREUUFMSUFJZ0ZHb2hBaUFBSUJOcUlRQWdCVUYvYWlJRkRRQUxDeUFSUWJBQmFpUUFDLzlFQVVGL0l3QkJzQUZySWdNa0FDQUFLQUlJSWdRRVFDQUFLQUlFSWg5QkEzUWhGaUFFSUI5c0lnUkJCblFoT3lBRVFRaDBJVHdnSDBFR2RDRTlJQjlCTUd3aFBpQWZRUVYwSVNVZ0gwRlFiQ0VyUVFBZ0gwRUVkQ0lhYXlJb1FRSjBJVDhnS0VFQmRDRXNJQU5CR0dvaElpQURRUXh5SVNNRFFBSkFJQUVvQWdnaUNVRUJSZzBBQWtBQ1FBSkFBa0FnQVNnQ3lBRWlBa1VFUUVFQklRWU1BUXRCQlNFR0lBbEJBa2NOQUVFRlFRRWdBU2dDQkNJSklBSW9BZ1JHR3lFR0lBRW9Bc3dCSWdRTkFVRUFJUVFNQXdzZ0FTZ0N6QUVpQkVVRVFFRUFJUVFNQXdzZ0NVRUNSdzBCSUFFb0FnUWhDUXNnQ1NBRUtBSUVSdzBCQ3lBR1FRSnlJUVlMQW44Z0JrRUNjU0l0QkVBQ1FDQUJLQUlBUVFWTkJFQWdCQ2dDQUVFR1NRMEJDeUFEUVFRMkFrQWdBMEVFTmdKSUlBTkJCRFlDT0NBRFFRUTJBakJCQVF3Q0MwRUNJUTlCQWlFSkFrQWdBUzhCSEEwQUlBUXZBVEFOQUVFQklRa2dBU2dDZENBRUtBSjhSdzBBSUFFdUFZUUJJQVF1QWF3QmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBRUxnR3VBV3NpQ1NBSlFSOTFJZ2xxSUFselFRTkxJUWtMSUFNZ0NUWUNNQUpBSUFFdkFSNE5BQ0FFTHdFeURRQkJBU0VQSUFFb0FuUWdCQ2dDZkVjTkFDQUJMZ0dJQVNBRUxnR3dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmlnRWdCQzRCc2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWpoQkFpRUZRUUloQ2dKQUlBRXZBU1FOQUNBRUx3RTREUUJCQVNFS0lBRW9BbmdnQkNnQ2dBRkhEUUFnQVM0QmxBRWdCQzRCdkFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBWllCSUFRdUFiNEJheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSkFBa0FnQVM4QkpnMEFJQVF2QVRvTkFFRUJJUVVnQVNnQ2VDQUVLQUtBQVVjTkFDQUJMZ0dZQVNBRUxnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0Qm1nRWdCQzRCd2dGcklnUWdCRUVmZFNJRWFpQUVjMEVEU3lFRkN5QURJQVUyQWtnZ0NTQVBjaUFLY2lBRmNrRUFSd3dCQ3lBRFFRQTJBa0FnQTBFQU5nSklJQU5CQURZQ09DQURRUUEyQWpCQkFBc2hDUUpBQWtBQ1FBSkFJQVpCQkhFaUxnUkFBa0FnQVNnQ0FDSUdRUVZOQkVBZ0FpZ0NBRUVHU1EwQkN5QURRUVEyQW5RZ0EwRUVOZ0tVQVNBRFFRUTJBbFFnQTBFRU5nSTBRUUVoQ1F3Q0MwRUNJUTlCQWlFRUFrQWdBUzhCSEEwQUlBSXZBU1lOQUVFQklRUWdBU2dDZENBQ0tBSjRSdzBBSUFFdUFZUUJJQUl1QVpnQmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBQ0xnR2FBV3NpQkNBRVFSOTFJZ1JxSUFSelFRTkxJUVFMSUFNZ0JEWUNOQUpBSUFFdkFTQU5BQ0FDTHdFcURRQkJBU0VQSUFFb0FuUWdBaWdDZUVjTkFDQUJMZ0dNQVNBQ0xnR2dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmpnRWdBaTRCb2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWxSQkFpRUZRUUloQ2dKQUlBRXZBU3dOQUNBQ0x3RTJEUUJCQVNFS0lBRW9BbndnQWlnQ2dBRkhEUUFnQVM0QnBBRWdBaTRCdUFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBYVlCSUFJdUFib0JheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSjBBa0FnQVM4Qk1BMEFJQUl2QVRvTkFFRUJJUVVnQVNnQ2ZDQUNLQUtBQVVjTkFDQUJMZ0dzQVNBQ0xnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0QnJnRWdBaTRCd2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFRkN5QURJQVUyQXBRQklBbEZEUUpCQVNFSkRBTUxJQU5CQURZQ2RDQURRUUEyQXBRQklBTkJBRFlDVkNBRFFRQTJBalFnQVNnQ0FDRUdDeUFHUVFaSkRRRWdBMEVETmdLZ0FTQURRb09BZ0lBd053S2tBU0FEUVFNMkFwQUJJQU5CQXpZQ2NDQURRUU0yQXF3QklBTkNnNENBZ0RBM0E1Z0JJQU5DZzRDQWdEQTNBNGdCSUFOQ2c0Q0FnREEzQTRBQklBTkNnNENBZ0RBM0EzZ2dBMEtEZ0lDQU1EY0RhQ0FEUW9PQWdJQXdOd05nSUFOQ2c0Q0FnREEzQTFnZ0EwS0RnSUNBTURjQ1RDQURRUU0yQWtRZ0EwRUROZ0k4REFJTElBUWdEM0lnQ25JZ0JYSkJBRWNoQ1FzQ1FBSi9JQVpCQTAwRVFDQUdRUUowUVl3MWFpZ0NBQXdCQzBFRUMwRUJSZ1JBSUFFZ0EwRXdhaEJFSUFNb0Fxd0JJUWNnQXlnQ3BBRWhEaUFES0FLY0FTRVFJQU1vQW93QklSa2dBeWdDaEFFaEJpQURLQUo4SVJjZ0F5Z0NiQ0VJSUFNb0FtUWhCQ0FES0FKY0lSUWdBeWdDVENFTUlBTW9Ba1FoQWlBREtBSThJUkVnQXlnQ3FBRWhIQ0FES0FLZ0FTRW1JQU1vQXBnQklRMGdBeWdDa0FFaEhTQURLQUtJQVNFU0lBTW9Bb0FCSVJVZ0F5Z0NlQ0ViSUFNb0FuQWhFeUFES0FKb0lRb2dBeWdDWUNFUElBTW9BbGdoQlNBREtBSlFJU2NNQVFzZ0F3Si9Ba0FnQXdKL0FrQUNRQ0FCS0FJQVFYNXFJZ1JCQVUwRVFDQUVRUUZyQkVBZ0F3Si9Ba0FnQVM4QklDSUVEUUFnQVM4QkhBMEFRUUFNQVF0QkFnc2lKellDVUNBREFuOENRQ0FCTHdFaUlnY05BQ0FCTHdFZURRQkJBQXdCQzBFQ0N5SUZOZ0pZSUFNQ2Z3SkFJQUV2QVNnaUJnMEFJQUV2QVNRTkFFRUFEQUVMUVFJTElnODJBbUFnQXdKL0FrQWdBUzhCS2lJT0RRQWdBUzhCSmcwQVFRQU1BUXRCQWdzaUNqWUNhQ0FEQW44Q1FDQUJMd0V3SWg0TkFDQUJMd0VzRFFCQkFBd0JDMEVDQ3lJZE5nS1FBU0FEQW44Q1FDQUJMd0V5SWhBTkFDQUJMd0V1RFFCQkFBd0JDMEVDQ3lJTk5nS1lBU0FEQW44Q1FDQUJMd0U0SWdzTkFDQUJMd0UwRFFCQkFBd0JDMEVDQ3lJbU5nS2dBU0FEQW44Q1FDQUJMd0U2SWhnTkFDQUJMd0UyRFFCQkFBd0JDMEVDQ3lJY05nS29BVUVDSVJ0QkFpRVRBa0FnQkNBQkx3RXNJaGR5RFFCQkFTRVRJQUV1QWFRQklBRXVBWXdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQkxnR21BU0FCTGdHT0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdBU2dDZkNBQktBSjBSeUVUQ3lBRElCTTJBbkFDUUNBSElBRXZBUzRpSUhJTkFFRUJJUnNnQVM0QnFBRWdBUzRCa0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRXVBYW9CSUFFdUFaSUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FCS0FKOElBRW9BblJISVJzTElBTWdHellDZUVFQ0lSSkJBaUVWQWtBZ0JpQUJMd0UwSWhseURRQkJBU0VWSUFFdUFiUUJJQUV1QVp3QmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJMZ0cyQVNBQkxnR2VBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEZRc2dBeUFWTmdLQUFRSkFJQTRnQVM4Qk5pSWhjZzBBUVFFaEVpQUJMZ0c0QVNBQkxnR2dBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVM0QnVnRWdBUzRCb2dGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9Bb0FCSUFFb0FuaEhJUklMSUFNZ0VqWUNpQUVnQVM4QkhnMENJQUV2QVJ3RVFFRUNJUkVnQTBFQ05nSThJQUV2QVNRaUNBMEdRUUFoREVFQURBY0xRUUFoRVNBRFFRQTJBanhCQUNFTVFRQWdBUzhCSkNJSVJRMEdHZ3dGQ3lBREFuOENRQ0FCTHdFZ0lnSU5BQ0FCTHdFY0RRQkJBQXdCQzBFQ0N5SW5OZ0pRSUFNQ2Z3SkFJQUV2QVNJaUJnMEFJQUV2QVI0TkFFRUFEQUVMUVFJTElnVTJBbGdnQXdKL0FrQWdBUzhCS0NJT0RRQWdBUzhCSkEwQVFRQU1BUXRCQWdzaUR6WUNZQ0FEQW44Q1FDQUJMd0VxSWdnTkFDQUJMd0VtRFFCQkFBd0JDMEVDQ3lJS05nSm9JQU1nQWlBQkx3RXNJaGR5UVFCSFFRRjBJaE0yQW5BZ0F5QUdJQUV2QVM0aUMzSkJBRWRCQVhRaUd6WUNlQ0FESUE0Z0FTOEJOQ0llY2tFQVIwRUJkQ0lWTmdLQUFTQURJQWdnQVM4Qk5pSVpja0VBUjBFQmRDSVNOZ0tJQVNBRElBRXZBVEFpRUNBWGNrRUFSMEVCZENJZE5nS1FBU0FESUFFdkFUSWlJQ0FMY2tFQVIwRUJkQ0lOTmdLWUFTQURJQUV2QVRnaUlTQWVja0VBUjBFQmRDSW1OZ0tnQVNBRElBRXZBVG9pQnlBWmNrRUFSMEVCZENJY05nS29BU0FEQW44Q1FDQUJMd0VlSWlRTkFDQUJMd0VjRFFCQkFBd0JDMEVDQ3lJUk5nSThJQUV2QVNZRVFDQUJMd0VrSVJnTUF3c2dBUzhCSkNJWURRSkJBQ0VZUVFBTUF3c2dBUzRCaGdFaEZDQUJMZ0dPQVNFRVFRSWhCU0FEQW45QkFpQUJMd0VjSWhFZ0FTOEJJQ0l2Y2cwQUdrRUJJQUV1QVl3QklBRXVBWVFCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUJvZ0JDQVVheUlHSUFaQkgzVWlCbW9nQm5OQkEwc0xJaWMyQWxBZ0FTNEJpZ0VoQ0NBQkxnR1NBU0VHQWtBZ0FTOEJIaUl3SUFFdkFTSWlFSElOQUVFQklRVWdBUzRCa0FFZ0FTNEJpQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUFZZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6UVFOTElRVUxJQU1nQlRZQ1dDQUJMZ0dXQVNFTUlBRXVBWjRCSVFkQkFpRUtJQU1DZjBFQ0lBRXZBU1FpTVNBQkx3RW9JaGR5RFFBYVFRRWdBUzRCbkFFZ0FTNEJsQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBR2lBSElBeHJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3c2lEellDWUNBQkxnR2FBU0V5SUFFdUFhSUJJUXNDUUNBQkx3RW1Ja0FnQVM4QktpSXpjZzBBUVFFaENpQUJMZ0dnQVNBQkxnR1lBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQ3lBeWF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzaENnc2dBeUFLTmdKb0lBRXVBYVlCSVI1QkFpRWJRUUloRXdKQUlDOGdBUzhCTENJMGNnMEFRUUVoRXlBQkxnR2tBU0FCTGdHTUFXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdIaUFFYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQktBSjhJQUVvQW5SSElSTUxJQU1nRXpZQ2NDQUJMZ0dxQVNFT0FrQWdFQ0FCTHdFdUloaHlEUUJCQVNFYklBRXVBYWdCSUFFdUFaQUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FPSUFacklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9BbndnQVNnQ2RFY2hHd3NnQXlBYk5nSjRJQUV1QWJZQklSbEJBaUVTUVFJaEZRSkFJQmNnQVM4Qk5DSWdjZzBBUVFFaEZTQUJMZ0cwQVNBQkxnR2NBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnR1NBSGF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJLQUtBQVNBQktBSjRSeUVWQ3lBRElCVTJBb0FCSUFFdUFib0JJU0VDUUNBeklBRXZBVFlpTlhJTkFFRUJJUklnQVM0QnVBRWdBUzRCb0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlDRWdDMnNpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEVnc2dBeUFTTmdLSUFTQUJMZ0d1QVNFMlFRSWhEU0FEQW45QkFpQTBJQUV2QVRBaVFYSU5BQnBCQVNBQkxnR3NBU0FCTGdHa0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWFJRFlnSG1zaUFpQUNRUjkxSWdKcUlBSnpRUU5MQ3lJZE5nS1FBU0FCTGdHeUFTRWtBa0FnR0NBQkx3RXlJamR5RFFCQkFTRU5JQUV1QWJBQklBRXVBYWdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBa0lBNXJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN5RU5DeUFESUEwMkFwZ0JJQUV1QWI0QklTbEJBaUVjSUFNQ2YwRUNJQ0FnQVM4Qk9DSTRjZzBBR2tFQklBRXVBYndCSUFFdUFiUUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQm9nS1NBWmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTElpWTJBcUFCSUFFdUFjSUJJVGtDUUNBMUlBRXZBVG9pUW5JTkFFRUJJUndnQVM0QndBRWdBUzRCdUFGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlEa2dJV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxJUndMSUFNZ0hEWUNxQUZCQWlFQ0lBTUNmMEVDSUJFZ01ISU5BQnBCQVNBQkxnR0lBU0FCTGdHRUFXc2lFU0FSUVI5MUloRnFJQkZ6UVFOTERRQWFJQWdnRkdzaUZDQVVRUjkxSWhScUlCUnpRUU5MQ3lJUk5nSThBa0FnTUNBeGNnMEFRUUVoQWlBQkxnR1VBU0FCTGdHSUFXc2lGQ0FVUVI5MUloUnFJQlJ6UVFOTERRQWdEQ0FJYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBQktBSjRJQUVvQW5SSElRSUxJQU1nQWpZQ1JFRUNJUlFnQXdKL1FRSWdNU0JBY2cwQUdrRUJJQUV1QVpnQklBRXVBWlFCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUJvZ01pQU1heUlJSUFoQkgzVWlDR29nQ0hOQkEwc0xJZ3cyQWt3Q1FDQVFJQzl5RFFCQkFTRVVJQUV1QVpBQklBRXVBWXdCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBR0lBUnJJZ1FnQkVFZmRTSUVhaUFFYzBFRFN5RVVDeUFESUJRMkFseEJBaUVJUVFJaEJBSkFJQkFnRjNJTkFFRUJJUVFnQVM0Qm5BRWdBUzRCa0FGckloQWdFRUVmZFNJUWFpQVFjMEVEU3cwQUlBY2dCbXNpQmlBR1FSOTFJZ1pxSUFaelFRTkxEUUFnQVNnQ2VDQUJLQUowUnlFRUN5QURJQVEyQW1RQ1FDQVhJRE55RFFCQkFTRUlJQUV1QWFBQklBRXVBWndCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUNBTElBZHJJZ1lnQmtFZmRTSUdhaUFHYzBFRFN5RUlDeUFESUFnMkFteEJBaUVHSUFNQ2YwRUNJQmdnTkhJTkFCcEJBU0FCTGdHb0FTQUJMZ0drQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBYUlBNGdIbXNpQnlBSFFSOTFJZ2RxSUFkelFRTkxDeUlYTmdKOEFrQWdHQ0FnY2cwQVFRRWhCaUFCTGdHMEFTQUJMZ0dvQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBZ0dTQU9heUlISUFkQkgzVWlCMm9nQjNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQlFRSWhFQ0FEQW45QkFpQWdJRFZ5RFFBYVFRRWdBUzRCdUFFZ0FTNEJ0QUZySWdjZ0IwRWZkU0lIYWlBSGMwRURTdzBBR2lBaElCbHJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN3c2lHVFlDakFFQ1FDQTNJRUZ5RFFCQkFTRVFJQUV1QWJBQklBRXVBYXdCYXlJSElBZEJIM1VpQjJvZ0IzTkJBMHNOQUNBa0lEWnJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN5RVFDeUFESUJBMkFwd0JRUUloQjBFQ0lRNENRQ0EzSURoeURRQkJBU0VPSUFFdUFid0JJQUV1QWJBQmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQXBJQ1JySWdzZ0MwRWZkU0lMYWlBTGMwRURTdzBBSUFFb0FvQUJJQUVvQW54SElRNExJQU1nRGpZQ3BBRUNRQ0E0SUVKeURRQkJBU0VISUFFdUFjQUJJQUV1QWJ3QmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQTVJQ2xySWdjZ0IwRWZkU0lIYWlBSGMwRURTeUVIQ3lBRElBYzJBcXdCREFVTFFRSWhFU0FEUVFJMkFqd2dBUzhCSkNFSURBSUxRUUlMSWd3MkFreEJBaUVFSUFOQkFpQUlRUUJIUVFGMElBNGJJZ2cyQW13Z0EwRUNJQVpCQUVkQkFYUWdBaHNpRkRZQ1hDQURJQWNnSVhKQkFFZEJBWFFpQnpZQ3JBRWdBeUFRSUNCeVFRQkhRUUYwSWhBMkFwd0JJQU1nR1NBZWNrRUFSMEVCZENJWk5nS01BU0FESUFzZ0YzSkJBRWRCQVhRaUZ6WUNmRUVDSVFJQ1FDQVlJQ1J5RFFCQkFTRUNJQUV1QVpRQklBRXVBWWdCYXlJWUlCaEJIM1VpR0dvZ0dITkJBMHNOQUNBQkxnR1dBU0FCTGdHS0FXc2lHQ0FZUVI5MUloaHFJQmh6UVFOTERRQWdBU2dDZUNBQktBSjBSeUVDQ3lBRElBSTJBa1FDUUNBR0lBNXlEUUJCQVNFRUlBRXVBWndCSUFFdUFaQUJheUlHSUFaQkgzVWlCbW9nQm5OQkEwc05BQ0FCTGdHZUFTQUJMZ0dTQVdzaUJpQUdRUjkxSWdacUlBWnpRUU5MRFFBZ0FTZ0NlQ0FCS0FKMFJ5RUVDeUFESUFRMkFtUkJBaUVPUVFJaEJnSkFJQXNnSG5JTkFFRUJJUVlnQVM0QnRBRWdBUzRCcUFGcklnc2dDMEVmZFNJTGFpQUxjMEVEU3cwQUlBRXVBYllCSUFFdUFhb0JheUlMSUF0QkgzVWlDMm9nQzNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQkFrQWdJQ0FoY2cwQVFRRWhEaUFCTGdHOEFTQUJMZ0d3QVdzaUN5QUxRUjkxSWd0cUlBdHpRUU5MRFFBZ0FTNEJ2Z0VnQVM0QnNnRnJJZ3NnQzBFZmRTSUxhaUFMYzBFRFN3MEFJQUVvQW9BQklBRW9BbnhISVE0TElBTWdEallDcEFFTUFnc2dDQ0VNUVFJTElnSTJBa1FnQXlBQkx3RW1JQXhCLy84RGNYSkJBRWRCQVhRaUREWUNUQ0FEQW44Q1FDQUhSUVJBSUFRRVFFRUNJUlFnQTBFQ05nSmNJQVlOQWtFQURBTUxRUUFoRkNBRFFRQTJBbHhCQUNBR1JRMENHZ3dCQzBFQ0lSUWdBMEVDTmdKY0MwRUNDeUlFTmdKa0lBTkJBaUFPUVFCSFFRRjBJQVliSWdnMkFtd2dBd0ovQWtBZ0lFVUVRQ0FYQkVCQkFpRVhJQU5CQWpZQ2ZDQVpEUUpCQUF3REMwRUFJUmNnQTBFQU5nSjhRUUFnR1VVTkFob01BUXRCQWlFWElBTkJBallDZkF0QkFnc2lCallDaEFFZ0F5QUxJQmh5UVFCSFFRRjBJZ2MyQXF3QklBTWdDeUFRY2tFQVIwRUJkQ0lPTmdLa0FTQURRUUlnRUVFQVIwRUJkQ0FlR3lJUU5nS2NBU0FESUJrZ0lYSkJBRWRCQVhRaUdUWUNqQUVMSUFrZ0ozSWdCWElnRDNJZ0NuSWdFM0lnRzNJZ0ZYSWdFbklnSFhJZ0RYSWdKbklnSEhJZ0VYSWdBbklnREhJZ0ZISWdCSElnQ0hJZ0YzSWdCbklnR1hJZ0VISWdEbklnQjNKRkRRRUxJQUVvQWd3aENTQURJQUVvQWhBaUJTQUJLQUlVSWdScUlnWkJNeUFHUVROSUd5SUdRUUFnQmtFQVNodEIwQmRxTFFBQUlnWTJBaUFnQXlBRUlBbHFJZ0pCTXlBQ1FUTklHeUlDUVFBZ0FrRUFTaHNpQ0VHUUYyb3RBQUFpQWpZQ0hDQURJQWhCQTJ4QmtCaHFJZ2cyQWhnQ1FDQXRSUTBBSUFRZ0FTZ0N6QUVvQWhRaUIwY0VRQ0FESUFRZ0IycEJBV3BCQVhZaUJ5QUZhaUlOUVRNZ0RVRXpTQnNpRFVFQUlBMUJBRW9iUWRBWGFpMEFBRFlDQ0NBRElBY2dDV29pQjBFeklBZEJNMGdiSWdkQkFDQUhRUUJLR3lJSFFaQVhhaTBBQURZQ0JDQURJQWRCQTJ4QmtCaHFOZ0lBREFFTElBTWdCallDQ0NBRElBSTJBZ1FnQXlBSU5nSUFDd0pBSUM1RkRRQWdCQ0FCS0FMSUFTZ0NGQ0lIUndSQUlBTWdCQ0FIYWtFQmFrRUJkaUlFSUFWcUlnVkJNeUFGUVROSUd5SUZRUUFnQlVFQVNodEIwQmRxTFFBQU5nSVVJQU1nQkNBSmFpSUVRVE1nQkVFelNCc2lCRUVBSUFSQkFFb2JJZ1JCa0JkcUxRQUFOZ0lRSUFNZ0JFRURiRUdRR0dvMkFnd01BUXNnQXlBR05nSVVJQU1nQWpZQ0VDQURJQWcyQWd3TElBQW9BZ0FnSHlBNmJDSVVRUWgwYWlBcVFRUjBhaUVKUVFBaEFrRURJUVFnQTBFd2FpRUdBMEFnQmlnQ0JDSUZCRUFnQ1NBRklDTWdHaEFaQ3lBR0tBSU1JZ1VFUUNBSlFRUnFJQVVnSWlBYUVCa0xJQVlvQWhRaUJRUkFJQWxCQ0dvZ0JTQWlJQm9RR1FzZ0JpZ0NIQ0lGQkVBZ0NVRU1haUFGSUNJZ0doQVpDeUFFSVFnQ1FBSkFBa0FnQmlnQ0FDSUVJQVlvQWdnaUQwY05BQ0FFSUFZb0FoQkhEUUFnQkNBR0tBSVlSdzBBSUFSRkRRSWdBeUFDUVF4c2FpSUZLQUlJSVF3Z0JTZ0NCQ0ViSUFSQkJFa05BU0FiUVFKMlFRSnFJUkJCRUNFUElBa2hCQU5BQWtBZ0JDQW9haUlDTFFBQUlnb2dCQzBBQUNJT2F5SUZJQVZCSDNVaUJXb2dCWE1pQnlBYlR3MEFJQVFnTEdvaUVTMEFBQ0lGSUFwcklnMGdEVUVmZFNJTmFpQU5jeUFNVHcwQUlBUWdHbW9pSEMwQUFDSVNJQTVySWcwZ0RVRWZkU0lOYWlBTmN5QU1UdzBBQWtBZ0J5QVFTUVJBSUFRZ0pXb2lGeTBBQUNFVkFuOGdCQ0FyYWlJTkxRQUFJaE1nQ21zaUJ5QUhRUjkxSWdkcUlBZHpJQXhKQkVCQkF5RWRJQUlnRWlBS0lBNXFJQVZxSWdKQkFYUnFJQk5xUVFScVFRTjJPZ0FBSUJFZ0FpQVRha0VDYWtFQ2Rqb0FBQ0FDUVFScUlSRWdCQ0EvYWkwQUFDRUhJQk5CQTJ3TUFRc2dDaUFTYWlFUklBVWhCMEVDSVIwZ0FpRU5RUUlMSVFJZ0RTQUNJQkZxSUFkQkFYUnFJQjEyT2dBQUlCVWdEbXNpQWlBQ1FSOTFJZ0pxSUFKeklBeFBEUUVnQkNBRklBb2dFbW9nRG1vaUFrRUJkR29nRldwQkJHcEJBM1k2QUFBZ0hDQUNJQlZxUVFKcVFRSjJPZ0FBSUJjZ0FpQVZRUU5zYWlBRUlENXFMUUFBUVFGMGFrRUVha0VEZGpvQUFBd0NDeUFDSUFvZ0Vtb2dCVUVCZEdwQkFtcEJBblk2QUFBTElBUWdCU0FPYWlBU1FRRjBha0VDYWtFQ2Rqb0FBQXNnQkVFQmFpRUVJQTlCZjJvaUR3MEFDd3dDQ3dKL0lBUUVRQ0FKSUFRZ0F5QUNRUXhzYWlBYUVCZ2dCaWdDQ0NFUEN5QVBDd1JBSUFsQkJHb2dEeUFESUFKQkRHeHFJQm9RR0FzZ0JpZ0NFQ0lFQkVBZ0NVRUlhaUFFSUFNZ0FrRU1iR29nR2hBWUN5QUdLQUlZSWdSRkRRRWdDVUVNYWlBRUlBTWdBa0VNYkdvZ0doQVlEQUVMSUFRZ0JTZ0NBR3BCZjJvdEFBQWlBa0VCYWlFSFFRQWdBbXNoRGtFUUlROGdDU0VFQTBBQ1FDQUVJQ2hxSWhNdEFBQWlEU0FFTFFBQUlncHJJZ1VnQlVFZmRTSUZhaUFGY3lBYlR3MEFJQVFnTEdvaUVTMEFBQ0lTSUExcklnVWdCVUVmZFNJRmFpQUZjeUFNVHcwQUlBUWdHbW9pRUMwQUFDSVZJQXBySWdVZ0JVRWZkU0lGYWlBRmN5QU1UdzBBSUFJaEJTQUVJQ3RxTFFBQUlod2dEV3NpSFNBZFFSOTFJaDFxSUIxeklBeEpCRUFnRVNBU0lBNGdBaUFLSUExcVFRRnFRUUYySUJKQkFYUnJJQnhxUVFGMUlnVWdCU0FDU2hzZ0JTQU9TQnRxT2dBQUlBY2hCUXNnRXlBTkFuOGdCQ0FsYWkwQUFDSVRJQXBySWhFZ0VVRWZkU0lSYWlBUmN5QU1TUVJBSUJBZ0ZTQU9JQUlnQ2lBTmFrRUJha0VCZGlBVlFRRjBheUFUYWtFQmRTSVRJQk1nQWtvYklCTWdEa2diYWpvQUFDQUZRUUZxSVFVTFFRQWdCV3NpRXdzZ0JTQVNJQlZySUFvZ0RXdEJBblJxUVFScVFRTjFJaElnRWlBRlNoc2dFaUFUU0JzaUJXcEJzQzVxTFFBQU9nQUFJQVFnQ2lBRmEwR3dMbW90QUFBNkFBQUxJQVJCQVdvaEJDQVBRWDlxSWc4TkFBc0xJQWhCZjJvaEJDQUdRU0JxSVFZZ0NTQTlhaUVKUVFJaEFpQUlEUUFMSUFFb0Fnd2hCQ0FESUFFb0FoQWlCU0FCS0FJVUlnWWdBU2dDR0NJQ2FpSUpRVE1nQ1VFelNCc2lDVUVBSUFsQkFFb2JRUUowUWVBOWFpZ0NBQ0lKYWlJSVFUTWdDRUV6U0JzaUNFRUFJQWhCQUVvYlFkQVhhaTBBQUNJSU5nSWdJQU1nQkNBSmFpSUhRVE1nQjBFelNCc2lCMEVBSUFkQkFFb2JJZzFCa0JkcUxRQUFJZ2MyQWh3Z0F5QU5RUU5zUVpBWWFpSU5OZ0lZQWtBZ0xVVU5BQ0FHSUFFb0Fzd0JLQUlVSWd4SEJFQWdBeUFKSUFJZ0RHb2lERUV6SUF4Qk0wZ2JJZ3hCQUNBTVFRQktHMEVDZEVIZ1BXb29BZ0JxUVFGcVFRRjJJZ3dnQldvaUQwRXpJQTlCTTBnYklnOUJBQ0FQUVFCS0cwSFFGMm90QUFBMkFnZ2dBeUFFSUF4cUlneEJNeUFNUVROSUd5SU1RUUFnREVFQVNoc2lERUdRRjJvdEFBQTJBZ1FnQXlBTVFRTnNRWkFZYWpZQ0FBd0JDeUFESUFnMkFnZ2dBeUFITmdJRUlBTWdEVFlDQUFzQ1FDQXVSUTBBSUFZZ0FTZ0N5QUVvQWhRaURFY0VRQ0FESUFVZ0NTQUNJQXhxSWdaQk15QUdRVE5JR3lJR1FRQWdCa0VBU2h0QkFuUkI0RDFxS0FJQWFrRUJha0VCZGlJSmFpSUZRVE1nQlVFelNCc2lCVUVBSUFWQkFFb2JRZEFYYWkwQUFEWUNGQ0FESUFRZ0NXb2lCRUV6SUFSQk0wZ2JJZ1JCQUNBRVFRQktHeUlFUVpBWGFpMEFBRFlDRUNBRElBUkJBMnhCa0JocU5nSU1EQUVMSUFNZ0NEWUNGQ0FESUFjMkFoQWdBeUFOTmdJTUN5QUFLQUlBSUR4cUlCUkJCblJxSUNwQkEzUnFJZ2tnTzJvaEJFRUFJUW9nQTBFd2FpRUdRUUFoQWdOQUlBWW9BZ1FpQlFSQUlBa2dCU0FqSUJZUUVDQUVJQVlvQWdRZ0l5QVdFQkFMSUFZb0FpUWlCUVJBSUFrZ0dtb2dCU0FqSUJZUUVDQUVJQnBxSUFZb0FpUWdJeUFXRUJBTElBWW9BaFFpQlFSQUlBbEJCR29nQlNBaUlCWVFFQ0FFUVFScUlBWW9BaFFnSWlBV0VCQUxJQVlvQWpRaUJRUkFJQWtnR21wQkJHb2dCU0FpSUJZUUVDQUVJQnBxUVFScUlBWW9BalFnSWlBV0VCQUxJQUloQlFKQUFrQWdCaWdDQUNJQ0lBWW9BZ2dpRDBjTkFDQUNJQVlvQWhCSERRQWdBaUFHS0FJWVJ3MEFJQUpGRFFFZ0NTQUNJQU1nQ2tFTWJHb2lBaUFXRUNzZ0JDQUdLQUlBSUFJZ0ZoQXJEQUVMQW44Z0FnUkFJQWtnQWlBRElBcEJER3hxSWdJZ0ZoQVNJQVFnQmlnQ0FDQUNJQllRRWlBR0tBSUlJUThMSUE4TEJFQWdDVUVDYWlBUElBTWdDa0VNYkdvaUFpQVdFQklnQkVFQ2FpQUdLQUlJSUFJZ0ZoQVNDeUFHS0FJUUlnSUVRQ0FKUVFScUlBSWdBeUFLUVF4c2FpSUNJQllRRWlBRVFRUnFJQVlvQWhBZ0FpQVdFQklMSUFZb0FoZ2lBa1VOQUNBSlFRWnFJQUlnQXlBS1FReHNhaUlDSUJZUUVpQUVRUVpxSUFZb0FoZ2dBaUFXRUJJTElBUWdKV29oQkNBSklDVnFJUWtnQmtGQWF5RUdRUUVoQWtFQ0lRb2dCVVVOQUFzTFFRQWdLa0VCYWlJRUlBUWdIMFlpQkJzaEtpQUJRZGdCYWlFQklBUWdPbW9pT2lBQUtBSUlTUTBBQ3dzZ0EwR3dBV29rQUF1Q0JRRUtmeU1BUVpBQmF5SUxKQUFDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSGFpQUVTdzBBSUFNZ0NHcEJBV29nQlVzTkFDQUZJUXdnQXlFT0RBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFjZ0NFRUJhaUlNSUFjUURDQUFJQVFnQld4cUlBc2dCeUFNYkdvZ0FpQURJQVFnQlNBSElBd2dCeEFNSUFzaEFDQUhJUVJCQUNFQ0N3SkFJQWhCQVhZaUJVVU5BQ0FIUVFGMklnTkZEUUJCRUNBSGF5RVFRUWdnQm1zaENTQUVRUUYwSWcwZ0Iyc2hFU0FBSUFKcUloSWdCQ0FPYkdvaEJ5QUJJUUlnQlNFSUEwQWdBeUVBQTBBZ0J5QU5haTBBQUNFS0lBSWdDU0FITFFBQWJDQUVJQWRxTFFBQUlnOGdCbXhxUVFOMFFTQnFRUVoyT2dBQUlBSWdDU0FQYkNBR0lBcHNha0VEZEVFZ2FrRUdkam9BQ0NBSFFRRnFJZ29nRFdvdEFBQWhEeUFDSUFrZ0J5MEFBV3dnQkNBS2FpMEFBQ0lLSUFac2FrRURkRUVnYWtFR2Rqb0FBU0FDSUFrZ0Ntd2dCaUFQYkdwQkEzUkJJR3BCQm5ZNkFBa2dBa0VDYWlFQ0lBZEJBbW9oQnlBQVFYOXFJZ0FOQUFzZ0J5QVJhaUVISUFJZ0VHb2hBaUFJUVg5cUlnZ05BQXNnQVVGQWF5RUNJQklnRENBT2FpQUViR29oQndOQUlBTWhBQU5BSUFjZ0RXb3RBQUFoQVNBQ0lBa2dCeTBBQUd3Z0JDQUhhaTBBQUNJSUlBWnNha0VEZEVFZ2FrRUdkam9BQUNBQ0lBZ2dDV3dnQVNBR2JHcEJBM1JCSUdwQkJuWTZBQWdnQjBFQmFpSUJJQTFxTFFBQUlRZ2dBaUFKSUFjdEFBRnNJQUVnQkdvdEFBQWlBU0FHYkdwQkEzUkJJR3BCQm5ZNkFBRWdBaUFCSUFsc0lBWWdDR3hxUVFOMFFTQnFRUVoyT2dBSklBSkJBbW9oQWlBSFFRSnFJUWNnQUVGL2FpSUFEUUFMSUFjZ0VXb2hCeUFDSUJCcUlRSWdCVUYvYWlJRkRRQUxDeUFMUVpBQmFpUUFDLzBFQVF0L0l3QkJrQUZySWd3a0FDQUhRUUZxSVFrQ1FBSkFJQUpCQUVnTkFDQURJQWhxSUFWTERRQWdBMEVBU0EwQUlBSWdDV29nQkVzTkFDQUVJUWtnQXlFTERBRUxJQUFnRENBQ0lBTWdCQ0FGSUFrZ0NDQUpFQXdnQUNBRUlBVnNhaUFNSUFnZ0NXeHFJQUlnQXlBRUlBVWdDU0FJSUFrUURDQU1JUUFnQ0NFRlFRQWhBZ3NDUUNBSVFRRjJJZ2hGRFFBZ0IwRUJkaUlFUlEwQVFSQWdCMnNoRGtFSUlBWnJJUW9nQ1VFQmRDQUhheUVQSUFBZ0Ftb2lFU0FKSUF0c2FpRUNJQUVoQXlBSUlRQURRQ0FFSVFjRFFDQUNRUUZxSUFscUxRQUFJUkFnQWlBSmFpMEFBQ0VOSUFNZ0FpMEFBU0lTSUFac0lBb2dBaTBBQUd4cVFRTjBRU0JxUVFaMk9nQUFJQU1nQmlBUWJDQUtJQTFzYWtFRGRFRWdha0VHZGpvQUNDQUNMUUFDSVEwZ0FrRUNhaUlDSUFscUxRQUFJUk1nQXlBR0lBMXNJQW9nRW14cVFRTjBRU0JxUVFaMk9nQUJJQU1nQmlBVGJDQUtJQkJzYWtFRGRFRWdha0VHZGpvQUNTQURRUUpxSVFNZ0IwRi9haUlIRFFBTElBSWdEMm9oQWlBRElBNXFJUU1nQUVGL2FpSUFEUUFMSUFGQlFHc2hBeUFSSUFVZ0Myb2dDV3hxSVFJRFFDQUVJUWNEUUNBQ1FRRnFJQWxxTFFBQUlRQWdBaUFKYWkwQUFDRUJJQU1nQWkwQUFTSUZJQVpzSUFvZ0FpMEFBR3hxUVFOMFFTQnFRUVoyT2dBQUlBTWdBQ0FHYkNBQklBcHNha0VEZEVFZ2FrRUdkam9BQ0NBQ0xRQUNJUUVnQWtFQ2FpSUNJQWxxTFFBQUlRc2dBeUFCSUFac0lBVWdDbXhxUVFOMFFTQnFRUVoyT2dBQklBTWdCaUFMYkNBQUlBcHNha0VEZEVFZ2FrRUdkam9BQ1NBRFFRSnFJUU1nQjBGL2FpSUhEUUFMSUFJZ0Qyb2hBaUFESUE1cUlRTWdDRUYvYWlJSURRQUxDeUFNUVpBQmFpUUFDN2tIQVFWL0l3QkJFR3NpQkNRQUFrQWdBQ0FCUVFCQnlBQVFCeUlERUFJaUFRMEFRUUVoQVNBREtBSUFRZjhCU3cwQUlBQWdBMEVFYWhBQ0lnRU5BRUVCSVFFZ0F5Z0NCRUVmU3cwQUlBQkJBUkFERFFBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNDQ0FBSUFSQkRHb1FBaUlCRFFBZ0F5QUVLQUlNUVFGcUlnRTJBZ3dnQVVFSVN3UkFRUUVoQVF3QkN3SkFJQUZCQWtrTkFDQUFJQU5CRUdvUUFpSUJEUUVnQXlnQ0VDSUJRUVpMSWdJRVFFRUJJUUVNQWdzZ0FnMEFBa0FDUUFKQUFrQWdBVUVCYXc0R0JBRUNBZ0lEQUFzZ0F5QURLQUlNSWdGQkFuUVFDaUlDTmdJVUlBSkZCRUJCLy84RElRRU1CUXNnQVVVTkEwRUFJUUlEUUNBQUlBUkJER29RQWlJQkRRVWdBeWdDRkNBQ1FRSjBhaUFFS0FJTVFRRnFOZ0lBSUFKQkFXb2lBaUFES0FJTVNRMEFDd3dEQ3lBRElBTW9BZ3dpQWtFQ2RFRjhhaUlCRUFvaUJUWUNHQ0FESUFFUUNpSUdOZ0ljUWYvL0F5RUJJQVZGRFFNZ0JrVU5BeUFDUVFGR0RRSkJBQ0VDQTBBZ0FDQUVRUXhxRUFJaUFRMEVJQUpCQW5RaUJTQURLQUlZYWlBRUtBSU1OZ0lBSUFBZ0JFRU1haEFDSWdFTkJDQURLQUljSUFWcUlBUW9BZ3cyQWdBZ0FrRUJhaUlDSUFNb0FneEJmMnBKRFFBTERBSUxRUUVoQVNBQVFRRVFBeUlDUVg5R0RRSWdBeUFDUVFGR05nSWdJQUFnQkVFTWFoQUNJZ0VOQWlBRElBUW9BZ3hCQVdvMkFpUU1BUXNnQUNBRVFReHFFQUlpQVEwQklBTWdCQ2dDREVFQmFpSUJOZ0lvSUFNZ0FVRUNkQkFLSWdJMkFpd2dBa1VFUUVILy93TWhBUXdDQ3lBQlJRMEFJQU1vQWd4QkFuUkJyRHRxS0FJQUlRWkJBQ0VDQTBBZ0FDQUdFQU1oQlNBREtBSXNJQUpCQW5ScUlBVTJBZ0JCQVNFQklBVWdBeWdDREU4TkFpQUNRUUZxSWdJZ0F5Z0NLRWtOQUFzTElBQWdCRUVNYWhBQ0lnRU5BRUVCSVFFZ0JDZ0NEQ0lDUVI5TERRQWdBeUFDUVFGcU5nSXdJQUFnQkVFTWFoQUNJZ0VOQUVFQklRRWdCQ2dDREVFZlN3MEFJQUJCQVJBREJFQU1BUXNnQUVFQ0VBTkJBa3NFUUF3QkN5QUFJQVJCQ0dvUUJTSUJEUUFnQkNnQ0NFRWFhaUlCUVROTEJFQkJBU0VCREFFTElBTWdBVFlDTkNBQUlBUkJDR29RQlNJQkRRQWdCQ2dDQ0VFYWFrRXpTd1JBUVFFaEFRd0JDeUFBSUFSQkNHb1FCU0lCRFFCQkFTRUJJQVFvQWdnaUFrRU1ha0VZU3cwQUlBTWdBallDT0NBQVFRRVFBeUlDUVg5R0RRQWdBeUFDUVFGR05nSThJQUJCQVJBRElnSkJmMFlOQUNBRElBSkJBVVkyQWtBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNSQ0FBRUI5QkFDRUJDeUFFUVJCcUpBQWdBUXZxQlFFSmZ3SkFJQUlvQXB3Q1JRUkFEQUVMUVFFaEJnTkFBa0FDUUNBQ0lBVkJGR3hxS0FLZ0FpSUVRUVZMRFFBZ0JFRUJhdzRGQUFBQUFBTUJDeUFGUVFGcUlRVU1BUXNMSUFRaEJnc0Nmd0pBSUFFb0FoQWlCRUVCVFFSQUlBUkJBV3NFUUNBREtBSUFRUVZHQkVBZ0FFSUFOd0lBSUFJb0FoUWhCVUVBSVFRTUF3c2dBQ2dDQUNJRUlBSW9BaFFpQlUwTkFpQUVJQVZySUFFb0FoUWlCMEVCZGtrTkFpQUFLQUlFSUFkcURBTUxRUUFoQlFKL1FRQWdBeWdDQUVFRlJnMEFHaUFBS0FJTUlnY2dBQ2dDQ0NBQ0tBSU1UUTBBR2lBQktBSU1JQWRxQ3lFSFFRQWhCQUovSUFFb0FpUWlDQVJBSUFJb0Fnd2dCMm9oQlFzZ0JTQURLQUlFSWdwRklBVkJBRWR4YXlJSkN3UkFJQWxCZjJvaUF5QURJQWh1SWdzZ0NHeHJJUU1MSUFnRVFDQUJLQUlvSVF4QkFDRUZBMEFnRENBRlFRSjBhaWdDQUNBRWFpRUVJQVZCQVdvaUJTQUlSdzBBQ3dzQ1FDQUpSUVJBUVFBaEJBd0JDeUFFSUF0c0lRUWdBU2dDS0NFSVFRQWhCUU5BSUFnZ0JVRUNkR29vQWdBZ0JHb2hCQ0FGUVFGcUlnVWdBMDBOQUFzTElBcEZCRUFnQVNnQ0hDQUVhaUVFQ3lBR1JRUkFJQUlvQWlBaEF5QUJLQUlnSVFFZ0FpZ0NIQ0VHSUFBZ0J6WUNEQ0FBSUFJb0FndzJBZ2dnQmlBQklBTnFJZ0JCSDNVZ0FIRWdCR3BxRHdzZ0FFSUFOd0lJUVFBUEMwRUFJUVZCQUNFRUlBTW9BZ0JCQlVjRVFDQUFLQUlNSVFVZ0FDZ0NDQ0FDS0FJTUlnUkxCRUFnQVNnQ0RDQUZhaUVGQ3lBRUlBVnFRUUYwSUFNb0FnUkZheUVFQ3lBR1JRUkFJQUFnQlRZQ0RDQUFJQUlvQWd3MkFnZ2dCQThMSUFCQ0FEY0NDRUVBRHdzQ1FDQUZJQVJORFFBZ0JTQUVheUFCS0FJVUlnRkJBWFpORFFBZ0FDZ0NCQ0FCYXd3QkN5QUFLQUlFQ3lFRUlBTW9BZ1JGQkVBZ0JDQUZhaUFDS0FJWUlnQkJIM1VnQUhGcUR3c2dBQ0FFTmdJRUlBSW9BaGdoQVNBR0JFQWdBRUVBTmdJRUlBQkJBQ0FCYXlBQlFSOTFjVFlDQUVFQUR3c2dBQ0FGTmdJQUlBUWdCV29nQVVFZmRTQUJjV29MdkFFQkNIOGdBZ1JBSUFGQmYyb2hCMEVBSUFGclFkZ0JiQ0VJUVFFZ0FXdEIyQUZzSVFrZ0FVRi9jMEhZQVd3aENnTkFJQUFnQmtIWUFXeHFJZ01nQTBHb2ZtcEJBQ0FFR3pZQ3lBRWdBd0ovSUFWRkJFQWdBMEVBTmdMTUFVRUFEQUVMSUFNZ0F5QUlhallDekFFZ0F5QUpha0VBSUFRZ0Iwa2JDellDMEFFZ0F5QURJQXBxUVFBZ0JCdEJBQ0FGR3pZQzFBRkJBQ0FFUVFGcUlnTWdBU0FEUmlJREd5RUVJQU1nQldvaEJTQUdRUUZxSWdZZ0FrY05BQXNMQzNjQkFuOUJBU0VDQWtBZ0FFRUJFQU5CZjBZTkFDQUJJQUJCQWhBRE5nSUVJQUVnQUVFRkVBTWlBRFlDQUNBQVFYNXFRUU5KRFFBQ1FDQUFRUXhMRFFCQkFTQUFkQ0lEUWNBOGNVVUVRQ0FEUWFBRGNVVU5BU0FBUVFaR0RRSWdBU2dDQkEwQkRBSUxJQUVvQWdRTkFRdEJBQ0VDQ3lBQ0M1SVRBUVovSUFBZ0FTZ0NBQ0lOTmdJQUlBQWdBQ2dDeEFGQkFXbzJBc1FCSUFJZ0JSQWRBa0FDUUFKQUFrQUNRQ0FOUVI5R0JFQWdBRUVBTmdJVUlBQW9Bc1FCUVFGTERRRWdBRUVjYWlFSklBRkJ5QUpxSVFSQkZ5RUJJQWNoQUFOQUlBbEJFRHNCQUNBQUlBUW9BZ0E2QUFBZ0FDQUVLQUlFT2dBQklBQWdCQ2dDQ0RvQUFpQUFJQVFvQWd3NkFBTWdBQ0FFS0FJUU9nQUVJQUFnQkNnQ0ZEb0FCU0FBSUFRb0FoZzZBQVlnQUNBRUtBSWNPZ0FISUFBZ0JDZ0NJRG9BQ0NBQUlBUW9BaVE2QUFrZ0FDQUVLQUlvT2dBS0lBQWdCQ2dDTERvQUN5QUFJQVFvQWpBNkFBd2dBQ0FFS0FJME9nQU5JQUFnQkNnQ09Eb0FEaUFBSUFRb0FqdzZBQThnQVNJRFFYOXFJUUVnQ1VFQ2FpRUpJQUJCRUdvaEFDQUVRVUJySVFRZ0F3MEFDeUFDSUFjUUd3d0VDeUFBUVJ4cUlRa2dEUVJBSUFrZ0FTa0NrQUkzQWdBZ0NTQUJLUUcrQWpjQkxpQUpJQUVwQXJnQ053SW9JQWtnQVNrQ3NBSTNBaUFnQ1NBQktRS29BamNDR0NBSklBRXBBcUFDTndJUUlBa2dBU2tDbUFJM0FnZ2dCQ2dDQUNFS0FrQWdBU2dDQ0NJTFJRMEFJQVFnQ2lBTGFpSUtOZ0lBSUFRZ0NrRi9UQVIvSUFwQk5Hb0ZJQXBCTkVnTkFTQUtRVXhxQ3lJS05nSUFDeUFBSUFvMkFoUWdBVUhJRDJvaERDQUJRY2dDYWlFRUFrQUNRQ0FBS0FJQVFRWk5CRUFnQ1M4QkFFVU5BVUVCSVFnZ0JDQUtRUUFnRENnQ0FCQUdSUTBDREFnTElBQXZBVXdFUUNBQlFjZ09haUFLRURFTFFiQTBJUXBCRHlFSUEwQWdDQ0VMSUFRZ0FTQUtLQUlBUVFKMGFrSElEbW9vQWdBaUNEWUNBQUpBQWtBZ0NFVUVRQ0FKTHdFQVJRMEJDMEVCSVFnZ0JDQUFLQUlVUVFFZ0RDZ0NBQkFHUlEwQkRBb0xJQVJCLy8vL0J6WUNBQXNnQ2tFRWFpRUtJQXRCZjJvaENDQU1RUVJxSVF3Z0NVRUNhaUVKSUFSQlFHc2hCQ0FMRFFBTERBUUxJQVJCLy8vL0J6WUNBQXNnQVVHSUEyb2hCQUpBSUFBdkFSNEVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSE1EMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJ5QU5xSVFRQ1FDQUFMd0VnQkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCMEE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUVlnRWFpRUVBa0FnQUM4QklnUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFkUVBhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVSElCR29oQkFKQUlBQXZBU1FFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUhZRDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCaUFWcUlRUUNRQ0FBTHdFbUJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQjNBOXFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFjZ0ZhaUVFQWtBZ0FDOEJLQVJBUVFFaENDQUVJQUFvQWhSQkFDQUJRZUFQYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJQm1vaEJBSkFJQUF2QVNvRVFFRUJJUWdnQkNBQUtBSVVRUUFnQVVIa0Qyb29BZ0FRQmtVTkFRd0hDeUFFUWYvLy93YzJBZ0FMSUFGQnlBWnFJUVFDUUNBQUx3RXNCRUJCQVNFSUlBUWdBQ2dDRkVFQUlBRkI2QTlxS0FJQUVBWkZEUUVNQndzZ0JFSC8vLzhITmdJQUN5QUJRWWdIYWlFRUFrQWdBQzhCTGdSQVFRRWhDQ0FFSUFBb0FoUkJBQ0FCUWV3UGFpZ0NBQkFHUlEwQkRBY0xJQVJCLy8vL0J6WUNBQXNnQVVISUIyb2hCQUpBSUFBdkFUQUVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSHdEMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJpQWhxSVFRQ1FDQUFMd0V5QkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCOUE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUWNnSWFpRUVBa0FnQUM4Qk5BUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFmZ1BhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVR0lDV29oQkFKQUlBQXZBVFlFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUg4RDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCeUFscUlRUUNRQ0FBTHdFNEJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQmdCQnFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFZZ0thaUVFQWtBZ0FDOEJPZ1JBUVFFaENDQUVJQUFvQWhSQkFDQUJRWVFRYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJRUdvaERDQUJRY2dLYWlFRURBSUxJQWxDQURjQ0FDQUpRZ0EzQVM0Z0NVSUFOd0lvSUFsQ0FEY0NJQ0FKUWdBM0FoZ2dDVUlBTndJUUlBbENBRGNDQ0NBQUlBUW9BZ0EyQWhRTUFnc2dBRUtRZ01DQWdJS0FDRGNCSENBQVFwQ0F3SUNBZ29BSU53RkVJQUJDa0lEQWdJQ0NnQWczQVR3Z0FFS1FnTUNBZ0lLQUNEY0JOQ0FBUXBDQXdJQ0Fnb0FJTndFc0lBQkNrSURBZ0lDQ2dBZzNBU1JCQUE4TElBQW9BaGdnQUNnQ0ZHb2lDMEV6SUF0Qk0wZ2JJZ3RCQUNBTFFRQktHMEVDZEVIZ1BXb29BZ0FoQ1FKQUlBQXZBVTVGQkVBZ0FDOEJVRVVOQVFzZ0FVR0lEMm9nQ1JBd0N5QUVJQUZCaUE5cUtBSUFJZ3MyQWdBQ1FBSkFJQXRGQkVBZ0FDOEJQRVVOQVF0QkFTRUlJQVFnQ1VFQklBd29BZ0FRQmtVTkFRd0VDeUFFUWYvLy93YzJBZ0FMSUFRZ0FTZ0NqQThpQ3pZQ1FDQUVRVUJySVFvQ1FBSkFJQXRGQkVBZ0FDOEJQa1VOQVF0QkFTRUlJQW9nQ1VFQklBd29BZ1FRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NrQThpQ3pZQ2dBRWdCRUdBQVdvaENnSkFBa0FnQzBVRVFDQUFRVUJyTHdFQVJRMEJDMEVCSVFnZ0NpQUpRUUVnRENnQ0NCQUdSUTBCREFRTElBcEIvLy8vQnpZQ0FBc2dCQ0FCS0FLVUR5SUxOZ0xBQVNBRVFjQUJhaUVLQWtBQ1FDQUxSUVJBSUFBdkFVSkZEUUVMUVFFaENDQUtJQWxCQVNBTUtBSU1FQVpGRFFFTUJBc2dDa0gvLy84SE5nSUFDeUFFSUFFb0FwZ1BJZ3MyQW9BQ0lBUkJnQUpxSVFvQ1FBSkFJQXRGQkVBZ0FDOEJSRVVOQVF0QkFTRUlJQW9nQ1VFQklBd29BaEFRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NuQThpQ3pZQ3dBSWdCRUhBQW1vaENnSkFBa0FnQzBVRVFDQUFMd0ZHUlEwQkMwRUJJUWdnQ2lBSlFRRWdEQ2dDRkJBR1JRMEJEQVFMSUFwQi8vLy9CellDQUFzZ0JDQUJLQUtnRHlJTE5nS0FBeUFFUVlBRGFpRUtBa0FDUUNBTFJRUkFJQUF2QVVoRkRRRUxRUUVoQ0NBS0lBbEJBU0FNS0FJWUVBWkZEUUVNQkFzZ0NrSC8vLzhITmdJQUN5QUVJQUVvQXFRUElnczJBc0FESUFSQndBTnFJUVFDUUFKQUlBdEZCRUFnQUM4QlNrVU5BUXRCQVNFSUlBUWdDVUVCSUF3b0Fod1FCa1VOQVF3RUN5QUVRZi8vL3djMkFnQUxJQTFCQmtrTkFDQUFJQUVnQWlBRklBWWdCeEJXSWdoRkRRRU1BZ3NnQUNBQklBTWdCU0FDSUFjUVZ5SUlEUUVMUVFBaENBc2dDQXVXSFFFSGZ5TUFRUkJySWdja0FDQUJRUUJCcUJBUUJ5RUZJQUFnQjBFRWFoQUNJUUVnQnlnQ0JDRUlBa0FDUUFKQUlBTkJmbW9pQTBFRlN3MEFBa0FnQTBFQmF3NEVBUUVCQVFBTFFRRWhBeUFCRFFJZ0NFRUdhaUlHUVI5TkRRRU1BZ3RCQVNFRElBRU5BU0FJUVFGcUlnWkJIMHNOQVFzZ0JTQUdOZ0lBQWtBZ0JrRWZSZ1JBQTBBZ0FDZ0NDQVJBSUFCQkFSQURSUTBCREFRTEN5QUZRY2dDYWlFR0EwQWdCeUFBUVFnUUF5SUJOZ0lFSUFGQmYwWU5BeUFHSUFFMkFnQWdCa0VFYWlFR0lBbEJBV29pQ1VHQUEwY05BQXNNQVF0QkFpQUdRUVpISUFaQkJra2JJUW9DUUFKQUlBWkJCRWtOQUNBR1FRVkxEUUFnQUNBSFFReHFFQUlOQVNBSEtBSU1JZ0ZCQTBzTkFTQUZJQUUyQXJBQklBQWdCMEVNYWhBQ0RRRWdCeWdDRENJQlFRTkxEUUVnQlNBQk5nSzBBU0FBSUFkQkRHb1FBZzBCSUFjb0Fnd2lBVUVEU3cwQklBVWdBVFlDdUFFZ0FDQUhRUXhxRUFJTkFTQUhLQUlNSWdGQkEwc05BU0FGSUFFMkFyd0JBa0FnQkVFQ1NRMEFJQVpCQlVZTkFDQUFJQWRCREdvZ0JFRUNTeUlCRUJjTkFpQUhLQUlNSWdnZ0JFOE5BaUFGSUFnMkFzQUJJQUFnQjBFTWFpQUJFQmNOQWlBSEtBSU1JZ2dnQkU4TkFpQUZJQWcyQXNRQklBQWdCMEVNYWlBQkVCY05BaUFIS0FJTUlnZ2dCRThOQWlBRklBZzJBc2dCSUFBZ0IwRU1haUFCRUJjTkFpQUhLQUlNSWdFZ0JFOE5BaUFGSUFFMkFzd0JDeUFISUFVb0FyQUJJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93SFFBU0FBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dIU0FTQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVlnQVEwQUN5QUhJQVVvQXJRQklnRkJBazBFZnlBQlFRSjBRZkEwYWlnQ0FBVkJBd3MyQWd4QkFDRUdBMEFnQUNBSFFRaHFFQVVpQXcwQ0lBVWdCa0VDZEdvaUFTQUhLQUlJT3dIZ0FTQUFJQWRCQ0dvUUJTSUREUUlnQVNBSEtBSUlPd0hpQVNBSElBY29BZ3dpQVVGL2FqWUNEQ0FHUVFGcUlRWWdBUTBBQ3lBSElBVW9BcmdCSWdGQkFrMEVmeUFCUVFKMFFmQTBhaWdDQUFWQkF3czJBZ3hCQUNFR0EwQWdBQ0FIUVFocUVBVWlBdzBDSUFVZ0JrRUNkR29pQVNBSEtBSUlPd0h3QVNBQUlBZEJDR29RQlNJRERRSWdBU0FIS0FJSU93SHlBU0FISUFjb0Fnd2lBVUYvYWpZQ0RDQUdRUUZxSVFZZ0FRMEFDeUFISUFVb0Fyd0JJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93R0FBaUFBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dHQ0FpQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVpCQUNFRElBRU5BQXNNQVF0QkFDRURJQXBCQWtzTkFBSkFBbjhDUUFKQUFrQWdDa0VCYXc0Q0JBRUFDeUFIUVFBMkFnZ2dCU0FBRUE4aUFVRWZkallDRENBQlFRQk9EUUVnQVVFQmRDRUdRUUFNQWdzZ0JFRUNUd1JBUVFNaEFTQUdRUU5OQkVBZ0JrRUNkRUg4Tkdvb0FnQWhBUXNnQkVFQ1N5RUxRUUVoQXdOQUlBQWdCMEVNYWlBTEVCY05CU0FIS0FJTUlnZ2dCRThOQlNBRklBbEJBblJxSUFnMkFwQUJJQUVpQ0VGL2FpRUJJQWxCQVdvaENTQUlEUUFMQzBFRElRTWdCa0VEVFFSQUlBWkJBblJCL0RScUtBSUFJUU1MUVFBaEJnTkFJQU1oQVNBQUlBZEJDR29RQlNJRERRUWdCU0FHUVFKMGFpSUVJQWNvQWdnN0FhQUJJQUFnQjBFSWFoQUZJZ01OQkNBRUlBY29BZ2c3QWFJQklBRkJmMm9oQXlBR1FRRnFJUVlnQVEwQUMwRUFJUU1NQXdzZ0JTQUJRUngyTmdKTUlBRkJCSFFoQmtFQkN5RURJQVVnQmtFZmRqWUNFQ0FGSUFaQkFFZ0VmeUFHUVFGMEJTQUZJQVpCSEhZMkFsQWdBMEVCYWlFRElBWkJCSFFMSWdGQkgzWTJBaFFnQlNBQlFRQklCSDhnQVVFQmRBVWdCU0FCUVJ4Mk5nSlVJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0lZSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNXQ0FEUVFGcUlRTWdBVUVFZEFzaUFVRWZkallDSENBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBbHdnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWlBZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pnSUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJa0lBVWdBVUVBU0FSL0lBRkJBWFFGSUFVZ0FVRWNkallDWkNBRFFRRnFJUU1nQVVFRWRBc2lBVUVmZGpZQ0tDQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pvSUFOQkFXb2hBeUFCUVFSMEN5RUdBa0FnQUNBRFFRTnNRUWhxRUF0QmYwWU5BQ0FIUVFFMkFnZ2dCU0FBRUE4aUFVRWZkallDTEFKL0lBRkJBRWdFUUNBQlFRRjBJUVpCQUF3QkN5QUZJQUZCSEhZMkFtd2dBVUVFZENFR1FRRUxJUU1nQlNBR1FSOTJOZ0l3SUFVZ0JrRUFTQVIvSUFaQkFYUUZJQVVnQmtFY2RqWUNjQ0FEUVFGcUlRTWdCa0VFZEFzaUFVRWZkallDTkNBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBblFnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWpnZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0o0SUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJOElBVkJRR3NnQVVFQVNBUi9JQUZCQVhRRklBVWdBVUVjZGpZQ2ZDQURRUUZxSVFNZ0FVRUVkQXNpQVVFZmRqWUNBQ0FGSUFGQkFFZ0VmeUFCUVFGMEJTQUZJQUZCSEhZMkFvQUJJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0pFSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNoQUVnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWtnZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNpQUVnQTBFQmFpRURJQUZCQkhRTElRWWdBQ0FEUVFOc1FRaHFFQXRCZjBZTkFDQUhJQVkyQWd3Z0IwRUNOZ0lJREFFTElBY2dCallDREVFQklRTU1BUXRCQVNFRElBQWdCMEVNYWhBQ0RRQWdCeWdDRENJQlFRTkxEUUFnQlNBQk5nS01BVUVBSVFNTElBTU5BUUpBSUFwQkFVY0VRQ0FBSUFkQkJHb2dDa1VRTFNJRERRTWdCU0FIS0FJRUlnRTJBZ1FnQVVVTkFnd0JDeUFGSUFVb0FnQWlBVUY1YWlJRFFRSjBRWEJ4SWdSQlVHb2dCQ0FEUVF0TEcwRVBRUUFnQVVFU1N4dHlOZ0lFQzBFQklRTWdBQ0FIUVF4cUVBVU5BU0FIS0FJTUlnRkJHbXBCTTBzTkFTQUZJQUUyQWdnZ0JVR1FBbW9oQ0NBRktBSUVJUVFDUUFKQUlBVW9BZ0JCQjBrRVFFRUFJUWxCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FJSUFsQkFuUnFRYmdOYWlBQUlBZ2dDVUVHZEdwQk9Hb2dBaUFKSUFnUURVRVFFQWtpQTBFUWRqWUNBQ0FEUVE5eERRUWdDQ0FKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FJSUFsQkFYSWlCa0VDZEdwQnVBMXFJQUFnQ0NBR1FRWjBha0U0YWlBQ0lBWWdDQkFOUVJBUUNTSURRUkIyTmdJQUlBTkJEM0VOQkNBSUlBWkJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBZ2dDVUVDY2lJR1FRSjBha0c0RFdvZ0FDQUlJQVpCQm5ScVFUaHFJQUlnQmlBSUVBMUJFQkFKSWdOQkVIWTJBZ0FnQTBFUGNRMEVJQWdnQmtFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQ0NBSlFRTnlJZ1pCQW5ScVFiZ05haUFBSUFnZ0JrRUdkR3BCT0dvZ0FpQUdJQWdRRFVFUUVBa2lBMEVRZGpZQ0FDQURRUTl4RFFRZ0JTQUdRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc01BUXRCQUNFSklBQWdCVUhJRG1vZ0FrRUFJQWdRRFVFUUVBa2lBMEVQY1EwQklBVWdBMEVFZGtIL0FYRTdBY0FDSUFWQmtBSnFJUVpCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FHSUFsQkFuUnFRYmdOYWlBQUlBWWdDVUVHZEdwQlBHb2dBaUFKSUFnUURVRVBFQWtpQTBFUGRqWUNBQ0FEUVE5eERRTWdCaUFKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FHSUFsQkFYSWlDa0VDZEdwQnVBMXFJQUFnQmlBS1FRWjBha0U4YWlBQ0lBb2dDQkFOUVE4UUNTSURRUTkyTmdJQUlBTkJEM0VOQXlBR0lBcEJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBWWdDVUVDY2lJS1FRSjBha0c0RFdvZ0FDQUdJQXBCQm5ScVFUeHFJQUlnQ2lBSUVBMUJEeEFKSWdOQkQzWTJBZ0FnQTBFUGNRMERJQVlnQ2tFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQmlBSlFRTnlJZ3BCQW5ScVFiZ05haUFBSUFZZ0NrRUdkR3BCUEdvZ0FpQUtJQWdRRFVFUEVBa2lBMEVQZGpZQ0FDQURRUTl4RFFNZ0JTQUtRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc0xJQVJCQTNFRVFDQUFJQVZCaUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIQ0FpQUFJQVZCbUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIRUFndEJBQ0VESUFSQkFuRkZEUUFnQUNBRlFjd0thaUFDUVJBZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCaUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzQUlnQUNBRlFZd0xhaUFDUVJFZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCakJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzZ0lnQUNBRlFjd0xhaUFDUVJJZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCa0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0QUlnQUNBRlFZd01haUFDUVJNZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0Z0lnQUNBRlFjd01haUFDUVJRZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1QUlnQUNBRlFZd05haUFDUVJVZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbkJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1Z0lnQUNBRlFjd05haUFDUVJZZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCb0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2QUlnQUNBRlFZd09haUFDUVJjZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCcEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2Z0lMSUFBZ0FDZ0NDQ0FBS0FJRUlBQW9BZ0JyUVFOMGFqWUNFQ0FERFFFTFFRQWhBd3NnQjBFUWFpUUFJQU1McFJRQkRIOENmeUFBS0FMSUFTSUhCRUFnQUNnQ0JDQUhLQUlFUmd3QkMwRUFDeUVLQWtBZ0JrVU5BQ0FLUlEwQVFRQWdDa0VDSUFBb0FzZ0JLQUlBSWdkQkJrY2dCMEVHU1J0QkFrWWJJUW9MQW44Z0FDZ0N6QUVpQndSQUlBQW9BZ1FnQnlnQ0JFWU1BUXRCQUFzaEJ3SkFJQVpGRFFBZ0IwVU5BRUVBSUFkQkFpQUFLQUxNQVNnQ0FDSUhRUVpISUFkQkJra2JRUUpHR3lFSEN3Si9JQUFvQXRRQklna0VRQ0FBS0FJRUlBa29BZ1JHREFFTFFRQUxJUWtDUUNBR1JRMEFJQWxGRFFCQkFpQUFLQUxVQVNnQ0FDSUFRUVpISUFCQkJra2JRUUpISVFrTElBcEJBRWNnQjBFQVIzRWlEU0FKUVFCSGNTRU9JQVZCQWtzaEQwRVFJUXNEUUFKQUlBOUZCRUFDUUFKQUFrQWdCVUVCYXc0Q0FRSUFDeUFCQW44Z0RRUkFJQVF0QUFNZ0JDMEFBaUFFTFFBQklBUXRBQUFnQXkwQUJDQURMUUFESUFNdEFBRWdBeTBBQW1wcWFtcHFhbXBCQkdwQkEzWWhCaUFETFFBSUlBTXRBQWNnQXkwQUJTQURMUUFHYW1wcVFRSnFRUUoyREFFTElBY0VRQ0FETFFBRUlBTXRBQU1nQXkwQUFTQURMUUFDYW1wcVFRSnFRUUoySVFZZ0F5MEFDQ0FETFFBSElBTXRBQVVnQXkwQUJtcHFha0VDYWtFQ2Rnd0JDeUFLUlFSQVFZQUJJUVpCZ0FFTUFRc2dCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYWtFQ2FrRUNkaUlHQzBIL0FYRkJnWUtFQ0d3aUFEWUFIQ0FCSUFaQi93RnhRWUdDaEFoc0lnWTJBQmdnQVNBQU5nQVVJQUVnQmpZQUVDQUJJQUEyQUF3Z0FTQUdOZ0FJSUFFZ0FEWUFCQ0FCSUFZMkFBQUNmeUFLQkVBZ0JDMEFCeUFFTFFBR0lBUXRBQVVnQkMwQUJHcHFhaUlHUVFKcVFRSjJJZ0FnQjBVTkFSb2dBeTBBQ0NBRExRQUhJQU10QUFZZ0JpQURMUUFGYW1wcWFrRUVha0VEZGd3QkN5QUhSUVJBUVlBQklRQkJnQUVNQVFzZ0F5MEFCQ0FETFFBRElBTXRBQUVnQXkwQUFtcHFha0VDYWtFQ2RpRUFJQU10QUFnZ0F5MEFCeUFETFFBRklBTXRBQVpxYW1wQkFtcEJBbllMSVFZZ0FTQUFRZjhCY1VHQmdvUUliQ0lBTmdBZ0lBRWdCa0gvQVhGQmdZS0VDR3dpQmpZQVBDQUJJQUEyQURnZ0FTQUdOZ0EwSUFFZ0FEWUFNQ0FCSUFZMkFDd2dBU0FBTmdBb0lBRWdCallBSkF3REN5QUtSUVJBUVFFUEN5QUJJQVF0QUFBNkFBQWdBU0FFTFFBQU9nQUJJQUVnQkMwQUFEb0FBaUFCSUFRdEFBQTZBQU1nQVNBRUxRQUFPZ0FFSUFFZ0JDMEFBRG9BQlNBQklBUXRBQUE2QUFZZ0FTQUVMUUFBT2dBSElBRWdCQzBBQVRvQUNDQUJJQVF0QUFFNkFBa2dBU0FFTFFBQk9nQUtJQUVnQkMwQUFUb0FDeUFCSUFRdEFBRTZBQXdnQVNBRUxRQUJPZ0FOSUFFZ0JDMEFBVG9BRGlBQklBUXRBQUU2QUE4Z0FTQUVMUUFDT2dBUUlBRWdCQzBBQWpvQUVTQUJJQVF0QUFJNkFCSWdBU0FFTFFBQ09nQVRJQUVnQkMwQUFqb0FGQ0FCSUFRdEFBSTZBQlVnQVNBRUxRQUNPZ0FXSUFFZ0JDMEFBam9BRnlBQklBUXRBQU02QUJnZ0FTQUVMUUFET2dBWklBRWdCQzBBQXpvQUdpQUJJQVF0QUFNNkFCc2dBU0FFTFFBRE9nQWNJQUVnQkMwQUF6b0FIU0FCSUFRdEFBTTZBQjRnQVNBRUxRQURPZ0FmSUFFZ0JDMEFCRG9BSUNBQklBUXRBQVE2QUNFZ0FTQUVMUUFFT2dBaUlBRWdCQzBBQkRvQUl5QUJJQVF0QUFRNkFDUWdBU0FFTFFBRU9nQWxJQUVnQkMwQUJEb0FKaUFCSUFRdEFBUTZBQ2NnQVNBRUxRQUZPZ0FvSUFFZ0JDMEFCVG9BS1NBQklBUXRBQVU2QUNvZ0FTQUVMUUFGT2dBcklBRWdCQzBBQlRvQUxDQUJJQVF0QUFVNkFDMGdBU0FFTFFBRk9nQXVJQUVnQkMwQUJUb0FMeUFCSUFRdEFBWTZBREFnQVNBRUxRQUdPZ0F4SUFFZ0JDMEFCam9BTWlBQklBUXRBQVk2QURNZ0FTQUVMUUFHT2dBMElBRWdCQzBBQmpvQU5TQUJJQVF0QUFZNkFEWWdBU0FFTFFBR09nQTNJQUVnQkMwQUJ6b0FPQ0FCSUFRdEFBYzZBRGtnQVNBRUxRQUhPZ0E2SUFFZ0JDMEFCem9BT3lBQklBUXRBQWM2QUR3Z0FTQUVMUUFIT2dBOUlBRWdCQzBBQnpvQVBpQUJJQVF0QUFjNkFEOE1BZ3NnQjBVRVFFRUJEd3NnQVNBRExRQUJPZ0FBSUFFZ0F5MEFBVG9BQ0NBQklBTXRBQUU2QUJBZ0FTQURMUUFCT2dBWUlBRWdBeTBBQVRvQUlDQUJJQU10QUFFNkFDZ2dBU0FETFFBQk9nQXdJQUVnQXkwQUFUb0FPQ0FCSUFNdEFBSTZBQUVnQVNBRExRQUNPZ0FKSUFFZ0F5MEFBam9BRVNBQklBTXRBQUk2QUJrZ0FTQURMUUFDT2dBaElBRWdBeTBBQWpvQUtTQUJJQU10QUFJNkFERWdBU0FETFFBQ09nQTVJQUVnQXkwQUF6b0FBaUFCSUFNdEFBTTZBQW9nQVNBRExRQURPZ0FTSUFFZ0F5MEFBem9BR2lBQklBTXRBQU02QUNJZ0FTQURMUUFET2dBcUlBRWdBeTBBQXpvQU1pQUJJQU10QUFNNkFEb2dBU0FETFFBRU9nQURJQUVnQXkwQUJEb0FDeUFCSUFNdEFBUTZBQk1nQVNBRExRQUVPZ0FiSUFFZ0F5MEFCRG9BSXlBQklBTXRBQVE2QUNzZ0FTQURMUUFFT2dBeklBRWdBeTBBQkRvQU95QUJJQU10QUFVNkFBUWdBU0FETFFBRk9nQU1JQUVnQXkwQUJUb0FGQ0FCSUFNdEFBVTZBQndnQVNBRExRQUZPZ0FrSUFFZ0F5MEFCVG9BTENBQklBTXRBQVU2QURRZ0FTQURMUUFGT2dBOElBRWdBeTBBQmpvQUJTQUJJQU10QUFZNkFBMGdBU0FETFFBR09nQVZJQUVnQXkwQUJqb0FIU0FCSUFNdEFBWTZBQ1VnQVNBRExRQUdPZ0F0SUFFZ0F5MEFCam9BTlNBQklBTXRBQVk2QUQwZ0FTQURMUUFIT2dBR0lBRWdBeTBBQnpvQURpQUJJQU10QUFjNkFCWWdBU0FETFFBSE9nQWVJQUVnQXkwQUJ6b0FKaUFCSUFNdEFBYzZBQzRnQVNBRExRQUhPZ0EySUFFZ0F5MEFCem9BUGlBQklBTXRBQWc2QUFjZ0FTQURMUUFJT2dBUElBRWdBeTBBQ0RvQUZ5QUJJQU10QUFnNkFCOGdBU0FETFFBSU9nQW5JQUVnQXkwQUNEb0FMeUFCSUFNdEFBZzZBRGNnQVNBRExRQUlPZ0EvREFFTElBNUZCRUJCQVE4TElBTXRBQVVnQXkwQUEyc2dBeTBBQmlBRExRQUNhMEVCZEdvZ0F5MEFCeUFETFFBQmEwRURiR29nQXkwQUNDSUFJQU10QUFBaUNXdEJBblJxUVJGc1FSQnFRUVYxSWdaQmZXd2hFQ0FBSUFRdEFBY2lER3BCQkhRZ0JDMEFCQ0FFTFFBQ2F5QU1JQWxyUVFKMGFpQUVMUUFGSUFRdEFBRnJRUUYwYWlBRUxRQUdJQVF0QUFCclFRTnNha0VSYkVFUWFrRUZkU0lSUVgxc2FrRVFhaUVKUVFnaERDQUJJUUFEUUNBQUlBa2dFR29pQ0VFRmRVR3dMbW90QUFBNkFBQWdBQ0FHSUFocUlnaEJCWFZCc0M1cUxRQUFPZ0FCSUFBZ0JpQUlhaUlJUVFWMVFiQXVhaTBBQURvQUFpQUFJQVlnQ0dvaUNFRUZkVUd3TG1vdEFBQTZBQU1nQUNBR0lBaHFJZ2hCQlhWQnNDNXFMUUFBT2dBRUlBQWdCaUFJYWlJSVFRVjFRYkF1YWkwQUFEb0FCU0FBSUFZZ0NHb2lDRUVGZFVHd0xtb3RBQUE2QUFZZ0FDQUdJQWhxUVFWMVFiQXVhaTBBQURvQUJ5QUpJQkZxSVFrZ0FFRUlhaUVBSUF4QmYyb2lEQTBBQ3dzZ0FTQUNJQXNRQ0NBQklBSkJRR3NnQzBFQmNoQUlJQUVnQWtHQUFXb2dDMEVDY2hBSUlBRWdBa0hBQVdvZ0MwRURjaEFJSUFKQmdBSnFJUUlnQkVFSWFpRUVJQU5CQ1dvaEF5QUJRVUJySVFFZ0MwRUVhaUVMSUJKQkFXb2lFa0VDUncwQUMwRUFDNkVWQWhoL0FuNENmd05BQW44Z0FDSUlJQlpCQTNSQnNEVnFLUUlBSWg2bkVCRWlDU0lHQkVBZ0NDZ0NCQ0FHS0FJRVJnd0JDMEVBQ3lFTkFrQWdCVVVOQUNBTlJRMEFRUUFnRFVFQ0lBa29BZ0FpQmtFR1J5QUdRUVpKRzBFQ1Joc2hEUXNDZnlBSUlCWkJBM1JCOERacUtRSUFJaCtuRUJFaUJ5SUdCRUFnQ0NnQ0JDQUdLQUlFUmd3QkMwRUFDeUVQQWtBZ0JVVU5BQ0FQUlEwQVFRQWdEMEVDSUFjb0FnQWlCa0VHUnlBR1FRWkpHMEVDUmhzaER3dEJBaUVNSUExQkFFY2dEMEVBUjNFaUVrRUJSZ1JBUVFJaEJnSi9RUUlnQ1NnQ0FDSUxRUVpISUF0QkJra2JSUVJBSUFrZ0hrSWdpS2RCL3dGeGFpMEFVaUVHQ3lBR0N3Si9RUUlnQnlnQ0FDSUpRUVpISUFsQkJra2JSUVJBSUFjZ0gwSWdpS2RCL3dGeGFpMEFVaUVNQ3lBTUN5QUdJQXhKR3lFTUN5QUNJQlpCQW5RaUNXb2lCaWdDREVVRVFDQUdLQUpNSWdZZ0JpQU1UMm9oREFzZ0NDQVdhaUFNT2dCU0FuOGdDQ0FXUVFOMFFiQTRhaWdDQUJBUklnWWlCd1JBSUFnb0FnUWdCeWdDQkVZTUFRdEJBQXNoRGdKQUlBVkZEUUFnRGtVTkFFRUFJQTVCQWlBR0tBSUFJZ1pCQmtjZ0JrRUdTUnRCQWtZYklRNExBbjhnQUNBV1FRTjBRZkE1YWlnQ0FCQVJJZ2dpQmdSQUlBQW9BZ1FnQmlnQ0JFWU1BUXRCQUFzaEVRSkFJQVZGRFFBZ0VVVU5BRUVBSUJGQkFpQUlLQUlBSWdoQkJrY2dDRUVHU1J0QkFrWWJJUkVMSUFsQjhDbHFLQUlBSVJjZ0NVR3dLV29vQWdBaEdBSi9RWVVLSUJaMlFRRnhJaHdFUUNBWFFRTnFJUWNnQkNBWGFpSUlRUUpxSVFZZ0NFRUJhaUVMSUFRTUFRc2dGMEVFZENBWWFpSUlRUzlxSVFjZ0FTQUlhaUlJUVI5cUlRWWdDRUVQYWlFTElBaEJmMm9oQ0NBQkN5RUpJQWNnQ1dvdEFBQWhDaUFHTFFBQUlSQWdDeTBBQUNFVElBZ3RBQUFoRkFKQVFUTWdGblpCQVhFRVFDQURJQmhxSWdjdEFBZ2hHeUFITFFBSElSa2dCeTBBQmlFVklBY3RBQVVoR2lBSExRQUVJUVlnQnkwQUF5RUxJQWN0QUFJaENTQUhMUUFCSVFnTUFRc2dBU0FYUVg5cUloMUJCSFFnR0dwcUlnY3RBQUFoQ0NBSExRQUhJUnNnQnkwQUJpRVpJQWN0QUFVaEZTQUhMUUFFSVJvZ0J5MEFBeUVHSUFjdEFBSWhDeUFITFFBQklRa2dIQVJBSUFRZ0hXb2hCd3dCQ3lBSFFYOXFJUWNMQWtBZ0RFRUhUUVJBSUFjdEFBQWhCd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQWdERUVCYXc0SEFRSURCQVVHQndBTElBOUZCRUJCQVE4TElBaEIvd0Z4SUF0Qi93RnhRUkIwSUFaQkdIUnljaUFKUWY4QmNVRUlkSEloRlNBSUlnd2hEU0FKSWc0aEVpQUxJZzhoQ2lBR0loRWhCd3dJQ3lBTlJRUkFRUUVQQ3lBS1FZR0NoQWhzSVJVZ0VFR0Jnb1FJYkNJTlFSaDJJUWNnRFVFUWRpRUtJQTFCQ0hZaEVpQVRRWUdDaEFoc0lneEJHSFloRVNBTVFSQjJJUThnREVFSWRpRU9JQlJCZ1lLRUNHd2lDRUVZZGlFR0lBaEJFSFloQ3lBSVFRaDJJUWtNQndzQ2Z5QVRJQlJxSUFwcUlCQnFJQVpCL3dGeGFpQUxRZjhCY1dvZ0NVSC9BWEZxSUFoQi93Rnhha0VFYWtFRGRpQVNEUUFhSUJNZ0ZHb2dDbW9nRUdwQkFtcEJBbllnRFEwQUdrR0FBU0FQUlEwQUdpQUdRZjhCY1NBTFFmOEJjV29nQ1VIL0FYRnFJQWhCL3dGeGFrRUNha0VDZGdzaUNFR0Jnb1FJYkNFVklBZ2lDU0lMSWdZaURDSU9JZzhpRVNJTkloSWlDaUVIREFZTElBOUZCRUJCQVE4TElBWkIvd0Z4SWcxQkFtb2lFU0FWSUFZZ0RodEIvd0Z4SWdkcUlCb2dCaUFPRzBIL0FYRWlDa0VCZEdwQkFuWWlEeUFaSUFZZ0RodEIvd0Z4SWd3Z0d5QUdJQTRiUWY4QmNTSUdRUU5zYWtFV2RFR0FnSUFFYWtHQWdJQjRjWElnQ2lBTWFpQUhRUUYwYWtFQ2FpSVFRUVowUVlEK0EzRnlJQVlnQjJvZ0RFRUJkR3BCQW1vaUJrRU9kRUdBZ1B3SGNYSWhGU0FHUVFKMklRY2dDMEgvQVhFaUJrRUNhaUlMSUFoQi93RnhhaUFKUWY4QmNTSUpRUUYwYWtFQ2RpRUlJQWtnRVdvZ0JrRUJkR3BCQW5ZaUNTRU1JQW9nQzJvZ0RVRUJkR3BCQW5ZaUN5RU9JQXNoRFNBUElnWWhFaUFRUVFKMkloRWhDZ3dGQzBFQklCRkZJQkpCQVhOeURRWWFJQlFnRTBFQmRHb2dFR3BCQW1vaURrRUdkRUdBL2dOeElBb2dFMEVDYWlJUGFpQVFRUUYwYWtFQ2RuSWdDRUgvQVhFaUNrRUNhaUlNSUJScUlBZEJBWFJxUVFKMklnaEJHSFJ5SUE4Z0ZFRUJkR29nQjJvaUVFRU9kRUdBZ1B3SGNYSWhGU0FKUWY4QmNTSVJRUUpxSWdrZ0JrSC9BWEZxSUF0Qi93RnhJZ3RCQVhScVFRSjJJUVlnRGtFQ2RpRU5JQWtnQ2tFQmRHb2dCMnBCQW5ZaUNTRVBJQkZCQVhRZ0Myb2dER3BCQW5ZaUN5RVJJQkJCQW5ZaURDRVNJQWdpRGlFS0lBa2hCd3dFQzBFQklCRkZJQkpCQVhOeURRVWFJQWhCL3dGeElncEJBbW9pRGlBTFFmOEJjU0lJSUFsQi93RnhJZ3RCQVhScWFrRUNkaUlQUVJoMElCUWdFMEVCZEdvZ0VHcEJBbXBCQW5aeUlBNGdGR29nQjBFQmRHb2lDVUVHZEVHQS9nTnhjaUFMUVFKcUlnNGdDa0VCZEdvZ0Iyb2lEVUVPZEVHQWdQd0hjWEloRlNBSVFRRnFJaEFnQmtIL0FYRWlER3BCQVhZaEJpQU1JQTVxSUFoQkFYUnFRUUoySVJFZ0NVRUNkaUVNSUExQkFuWWhEaUFUSUJSQkFYUnFJQWRxUVFKcVFRSjJJUTBnQnlBS2FrRUJha0VCZGlJSUlSSWdDaUFMYWtFQmFrRUJkaUlKSVFvZ0N5QVFha0VCZGlJTElRY01Bd3RCQVNBUlJTQVNRUUZ6Y2cwRUdpQVRRUUpxSWc0Z0Ntb2dFRUVCZEdwQkJuUkJnUDREY1NBUUlCTnFRUUZxSWc5QkQzUkJnSUQ4QjNFZ0ZFRUNhaUlNSUJOQkFYUnFJQkJxUVFKMkloSkJHSFJ5SUFvZ0VHcEJBV3BCQVhaeWNpRVZJQWhCL3dGeElnZ2dDMEgvQVhGcUlBbEIvd0Z4SWdsQkFYUnFRUUpxUVFKMklRWWdDU0FJUVFGMGFpQUhha0VDYWtFQ2RpRUxJQTlCQVhZaERTQUlJQXhxSUFkQkFYUnFRUUoySWhFaENTQVVRUUZxSWdvZ0IycEJBWFlpQ0NFUElBb2dFMnBCQVhZaURDRUtJQTRnRkVFQmRHb2dCMnBCQW5ZaURpRUhEQUlMSUE5RkJFQkJBUThMSUJvZ0JpQU9HMEgvQVhFaUNpQVpJQVlnRGh0Qi93RnhhaUFWSUFZZ0RodEIvd0Z4SWdkQkFYUnFRUlowSUF0Qi93RnhJZ3RCQW1vaURDQUthaUFHUWY4QmNTSUdRUUYwYWlJUFFRWjBja0dBZ0lBRWFrR0Evb040Y1NBR1FRSnFJZzBnQ1VIL0FYRWlDV29nQzBFQmRHcEJBbllpRG5JZ0J5QU5haUFLUVFGMGFpSU5RUTUwUVlDQS9BZHhjaUVWSUFjZ0NtcEJBV3BCQVhZaEJ5QU5RUUoySVJFZ0NTQUlRZjhCY1NJTmFrRUJha0VCZGlFSUlBOUJBblloRHlBTUlBMXFJQWxCQVhScVFRSjJJUXdnQ1NBTGFrRUJha0VCZGlJSklRMGdCa0VCYWlJR0lBdHFRUUYySWdzaEVpQUdJQXBxUVFGMklnWWhDZ3dCQ3lBTlJRUkFRUUVQQ3lBS1FRaDBJQXB5SUFwQkVIUnlJQXBCR0hSeUlSVWdFRUVDYWlJSElCUnFJQk5CQVhScVFRSjJJUWtnRTBFQmFpSUdJQlJxUVFGMklRZ2dCaUFRYWtFQmRpSUxJUXdnQ2lBVGFpQVFRUUYwYWtFQ2FrRUNkaUlHSVE0Z0NpQVFha0VCYWtFQmRpSVBJUTBnQnlBS1FRTnNha0VDZGlJUklSSWdDaUVIQ3lBQklCZEJCSFFnR0dwcUloQWdGVFlDTUNBUUlBMUIvd0Z4SUJKQi93RnhRUWgwY2lBS1FmOEJjVUVRZEhJZ0IwRVlkSEkyQWlBZ0VDQU1RZjhCY1NBT1FmOEJjVUVJZEhJZ0QwSC9BWEZCRUhSeUlCRkJHSFJ5TmdJUUlCQWdDRUgvQVhFZ0NVSC9BWEZCQ0hSeUlBdEIvd0Z4UVJCMGNpQUdRUmgwY2pZQ0FDQUJJQUlnRmtFR2RHcEJ5QUpxSUJZUUNDQVdRUUZxSWhaQkVFY05BQXRCQUFzTHhSSUJFSDhDZnlBQUtBTElBU0lIQkVBZ0FDZ0NCQ0FIS0FJRVJnd0JDMEVBQ3lFSEFrQWdCVVVOQUNBSFJRMEFRUUFnQjBFQ0lBQW9Bc2dCS0FJQUlnZEJCa2NnQjBFR1NSdEJBa1liSVFjTEFuOGdBQ2dDekFFaUNBUkFJQUFvQWdRZ0NDZ0NCRVlNQVF0QkFBc2hDQUpBSUFWRkRRQWdDRVVOQUVFQUlBaEJBaUFBS0FMTUFTZ0NBQ0lJUVFaSElBaEJCa2tiUVFKR0d5RUlDd0ovSUFBb0F0UUJJZ2tFUUNBQUtBSUVJQWtvQWdSR0RBRUxRUUFMSVFrQ1FDQUZSUTBBSUFsRkRRQkJBaUFBS0FMVUFTZ0NBQ0lGUVFaSElBVkJCa2tiUVFKSElRa0xBa0FDUUNBQUtBSUFRUUZxUVFOeElnQkJBazBFUUFKQUFrQUNRQ0FBUVFGckRnSUJBZ0FMSUFoRkJFQkJBUThMUVFBaEJTQUJJUUFEUUNBQUlBTXRBQUU2QUFBZ0FDQURMUUFDT2dBQklBQWdBeTBBQXpvQUFpQUFJQU10QUFRNkFBTWdBQ0FETFFBRk9nQUVJQUFnQXkwQUJqb0FCU0FBSUFNdEFBYzZBQVlnQUNBRExRQUlPZ0FISUFBZ0F5MEFDVG9BQ0NBQUlBTXRBQW82QUFrZ0FDQURMUUFMT2dBS0lBQWdBeTBBRERvQUN5QUFJQU10QUEwNkFBd2dBQ0FETFFBT09nQU5JQUFnQXkwQUR6b0FEaUFBSUFNdEFCQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3REN5QUhSUVJBUVFFUEMwRUFJUVVnQVNFQUEwQWdBQ0FFSUFWcUlnTXRBQUE2QUFBZ0FDQURMUUFBT2dBQklBQWdBeTBBQURvQUFpQUFJQU10QUFBNkFBTWdBQ0FETFFBQU9nQUVJQUFnQXkwQUFEb0FCU0FBSUFNdEFBQTZBQVlnQUNBRExRQUFPZ0FISUFBZ0F5MEFBRG9BQ0NBQUlBTXRBQUE2QUFrZ0FDQURMUUFBT2dBS0lBQWdBeTBBQURvQUN5QUFJQU10QUFBNkFBd2dBQ0FETFFBQU9nQU5JQUFnQXkwQUFEb0FEaUFBSUFNdEFBQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3Q0N5QUJBbjhDUUNBSFJRMEFJQWhGRFFBZ0JDMEFEeUFETFFBUUlBUXRBQTRnQXkwQUR5QUVMUUFOSUFNdEFBNGdCQzBBRENBRExRQU5JQVF0QUFzZ0F5MEFEQ0FFTFFBS0lBTXRBQXNnQkMwQUNTQURMUUFLSUFRdEFBZ2dBeTBBQ1NBRUxRQUhJQU10QUFnZ0JDMEFCaUFETFFBSElBUXRBQVVnQXkwQUJpQUVMUUFFSUFNdEFBVWdCQzBBQXlBRExRQUVJQVF0QUFJZ0F5MEFBeUFFTFFBQklBTXRBQUlnQXkwQUFTQUVMUUFBYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFrRVFha0VGZGd3QkN5QUhCRUFnQkMwQUR5QUVMUUFPSUFRdEFBMGdCQzBBRENBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSUlBUXRBQWNnQkMwQUJpQUVMUUFGSUFRdEFBUWdCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYW1wcWFtcHFhbXBxYW1wcWFrRUlha0VFZGd3QkMwR0FBU0FJUlEwQUdpQURMUUFRSUFNdEFBOGdBeTBBRGlBRExRQU5JQU10QUF3Z0F5MEFDeUFETFFBS0lBTXRBQWtnQXkwQUNDQURMUUFISUFNdEFBWWdBeTBBQlNBRExRQUVJQU10QUFNZ0F5MEFBU0FETFFBQ2FtcHFhbXBxYW1wcWFtcHFhbXBxUVFocVFRUjJDMEdBQWhBSEdnd0JDMEVCSVFBZ0IwVU5BU0FJUlEwQklBbEZEUUVnQkMwQUNDQUVMUUFHYXlBRUxRQVBJZ0FnQXkwQUFDSUZhMEVEZEdvZ0JDMEFDU0FFTFFBRmEwRUJkR29nQkMwQUNpQUVMUUFFYTBFRGJHb2dCQzBBQ3lBRUxRQURhMEVDZEdvZ0JDMEFEQ0FFTFFBQ2EwRUZiR29nQkMwQURTQUVMUUFCYTBFR2JHb2dCQzBBRGlBRUxRQUFhMEVIYkdwQkJXeEJJR3BCQm5VaEJ5QURMUUFKSUFNdEFBZHJJQU10QUFvZ0F5MEFCbXRCQVhScUlBTXRBQXNnQXkwQUJXdEJBMnhxSUFNdEFBd2dBeTBBQkd0QkFuUnFJQU10QUEwZ0F5MEFBMnRCQld4cUlBTXRBQTRnQXkwQUFtdEJCbXhxSUFNdEFBOGdBeTBBQVd0QkIyeHFJQU10QUJBaUF5QUZhMEVEZEdwQkJXeEJJR3BCQm5VaUJFRURkQ0VJSUFSQkIyd2hDU0FFUVFac0lRb2dCRUVGYkNFTElBUkJBMndoRENBRVFYMXNJUTBnQkVGN2JDRU9JQVJCZW13aER5QUVRWGxzSVJCQkFDQUVRUUYwSWhGcklSSkJBQ0FFUVFKMEloTnJJUlFnQUNBRGFrRUVkRUVRYWlFVlFRQWhCUU5BSUFFZ0JVRUVkQ0lBYWlBVklBVkJlV29nQjJ4cUlnTWdFR3BCQlhVaUJrSC9BU0FHUWY4QlNCc2lCa0VBSUFaQkFFb2JPZ0FBSUFFZ0FFRUJjbW9nQXlBUGFrRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFKeWFpQURJQTVxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJBM0pxSUFNZ0ZHcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFRWNtb2dBeUFOYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUVZ5YWlBRElCSnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkJuSnFJQU1nQkd0QkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVIY21vZ0EwRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFoeWFpQURJQVJxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJDWEpxSUFNZ0VXcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFS2Ntb2dBeUFNYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUXR5YWlBRElCTnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkRISnFJQU1nQzJwQkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVOY21vZ0F5QUtha0VGZFNJR1FmOEJJQVpCL3dGSUd5SUdRUUFnQmtFQVNoczZBQUFnQVNBQVFRNXlhaUFESUFscVFRVjFJZ1pCL3dFZ0JrSC9BVWdiSWdaQkFDQUdRUUJLR3pvQUFDQUJJQUJCRDNKcUlBTWdDR3BCQlhVaUFFSC9BU0FBUWY4QlNCc2lBRUVBSUFCQkFFb2JPZ0FBSUFWQkFXb2lCVUVRUncwQUN3dEJBQ0VBSUFFZ0FrRUFFQWdnQVNBQ1FVQnJRUUVRQ0NBQklBSkJnQUZxUVFJUUNDQUJJQUpCd0FGcVFRTVFDQ0FCSUFKQmdBSnFRUVFRQ0NBQklBSkJ3QUpxUVFVUUNDQUJJQUpCZ0FOcVFRWVFDQ0FCSUFKQndBTnFRUWNRQ0NBQklBSkJnQVJxUVFnUUNDQUJJQUpCd0FScVFRa1FDQ0FCSUFKQmdBVnFRUW9RQ0NBQklBSkJ3QVZxUVFzUUNDQUJJQUpCZ0FacVFRd1FDQ0FCSUFKQndBWnFRUTBRQ0NBQklBSkJnQWRxUVE0UUNDQUJJQUpCd0FkcVFROFFDQXNnQUF1N0NBRUhmd0pBSUFORkRRQWdBQ2dDQUNBRElBQW9BZ1FpQlc0aUNDQUZiQ0lFUVFoMGFpQURJQVJySWdkQkJIUnFJUVlnQlVFRWRDRUVJQUFvQWdnaENTQUZJQU5MSWdwRkJFQWdBU0FHSUFSQkFYSnJJZ010QUFBNkFBQWdBU0FETFFBQk9nQUJJQUVnQXkwQUFqb0FBaUFCSUFNdEFBTTZBQU1nQVNBRExRQUVPZ0FFSUFFZ0F5MEFCVG9BQlNBQklBTXRBQVk2QUFZZ0FTQURMUUFIT2dBSElBRWdBeTBBQ0RvQUNDQUJJQU10QUFrNkFBa2dBU0FETFFBS09nQUtJQUVnQXkwQUN6b0FDeUFCSUFNdEFBdzZBQXdnQVNBRExRQU5PZ0FOSUFFZ0F5MEFEam9BRGlBQklBTXRBQTg2QUE4Z0FTQURMUUFRT2dBUUlBRWdBeTBBRVRvQUVTQUJJQU10QUJJNkFCSWdBU0FETFFBVE9nQVRJQUVnQXkwQUZEb0FGQ0FCUVJWcUlRRUxJQWNFUUNBQ0lBWkJmMm9pQXkwQUFEb0FBQ0FDSUFNZ0JHb2lBeTBBQURvQUFTQUNJQU1nQkdvaUF5MEFBRG9BQWlBQ0lBTWdCR29pQXkwQUFEb0FBeUFDSUFNZ0JHb2lBeTBBQURvQUJDQUNJQU1nQkdvaUF5MEFBRG9BQlNBQ0lBTWdCR29pQXkwQUFEb0FCaUFDSUFNZ0JHb2lBeTBBQURvQUJ5QUNJQU1nQkdvaUF5MEFBRG9BQ0NBQ0lBTWdCR29pQXkwQUFEb0FDU0FDSUFNZ0JHb2lBeTBBQURvQUNpQUNJQU1nQkdvaUF5MEFBRG9BQ3lBQ0lBTWdCR29pQXkwQUFEb0FEQ0FDSUFNZ0JHb2lBeTBBQURvQURTQUNJQU1nQkdvaUF5MEFBRG9BRGlBQ0lBTWdCR290QUFBNkFBOGdBa0VRYWlFQ0N5QUFLQUlBSUFVZ0NXd2lCRUVJZEdvZ0NDQUZRUU4wSWdCc1FRTjBhaUFIUVFOMGFpRUdJQUJCK1AvLy93ZHhJUUFnQ2tVRVFDQUJJQVlnQUVFQmNtc2lBeTBBQURvQUFDQUJJQU10QUFFNkFBRWdBU0FETFFBQ09nQUNJQUVnQXkwQUF6b0FBeUFCSUFNdEFBUTZBQVFnQVNBRExRQUZPZ0FGSUFFZ0F5MEFCam9BQmlBQklBTXRBQWM2QUFjZ0FTQURRUWhxSWdNdEFBQTZBQWdnQVNBRVFRWjBJQU5xSWdOQmVHb3RBQUE2QUFrZ0FTQURRWGxxTFFBQU9nQUtJQUVnQTBGNmFpMEFBRG9BQ3lBQklBTkJlMm90QUFBNkFBd2dBU0FEUVh4cUxRQUFPZ0FOSUFFZ0EwRjlhaTBBQURvQURpQUJJQU5CZm1vdEFBQTZBQThnQVNBRFFYOXFMUUFBT2dBUUlBRWdBeTBBQURvQUVRc2dCMFVOQUNBQ0lBWkJmMm9pQVMwQUFEb0FBQ0FDSUFBZ0FXb2lBUzBBQURvQUFTQUNJQUFnQVdvaUFTMEFBRG9BQWlBQ0lBQWdBV29pQVMwQUFEb0FBeUFDSUFBZ0FXb2lBUzBBQURvQUJDQUNJQUFnQVdvaUFTMEFBRG9BQlNBQ0lBQWdBV29pQVMwQUFEb0FCaUFDSUFBZ0FXb2lBUzBBQURvQUJ5QUNJQUFnQVdvZ0JDQUZhMEVHZEdvaUFTMEFBRG9BQ0NBQ0lBQWdBV29pQVMwQUFEb0FDU0FDSUFBZ0FXb2lBUzBBQURvQUNpQUNJQUFnQVdvaUFTMEFBRG9BQ3lBQ0lBQWdBV29pQVMwQUFEb0FEQ0FDSUFBZ0FXb2lBUzBBQURvQURTQUNJQUFnQVdvaUFTMEFBRG9BRGlBQ0lBQWdBV290QUFBNkFBOExDNjhCQVFGL0l3QkIwQUJySWdZa0FDQUNJQVpCSUdvZ0JpQURFRlVDUUFKQVFRSWdBQ2dDQUNJRFFRWkhJQU5CQmtrYlFRRkdCRUFnQUNBRklBRkJ5QUpxSUFaQklHb2dCaUFFRUZRaUEwVU5BUXdDQ3lBQUlBVWdBU0FHUVNCcUlBWWdCQkJUSWdNTkFRc2dBQ0FGUVlBQ2FpQUJRY2dLYWlBR1FUVnFJQVpCRUdvZ0FTZ0NqQUVnQkJCU0lnTU5BRUVBSVFNZ0FDZ0N4QUZCQVVzTkFDQUNJQVVRR3dzZ0JrSFFBR29rQUNBREM2TXFBU1IvSXdCQklHc2lFQ1FBSUJBZ0JDZ0NCQ0lJTmdJTUlCQWdCQ2dDQ0RZQ0VDQURJQWh1SWdaQkJIUWhGQ0FESUFZZ0NHeHJRUVIwSVJVQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFBb0FnQWlCa0VEVFFSQUFrQUNRQUpBSUFaQkFtc09BZ0VDQUFzZ0FTZ0NrQUVoRXlBQUtBSUVJUTVCZnlFUEFuOGdBQ2dDeUFFaUNVVUVRRUVBSVFoQmZ3d0JDMEVBSVFoQmZ5QUpLQUlFSUE1SERRQWFRUUVoRWtGL0lBa29BZ0JCQlVzTkFCb2dDU2dDbUFFaUNFRVFkaUVISUFrb0FtZ0xJUTBnQUNnQ3pBRWlDVVVOQ0NBSktBSUVJQTVIRFFoQkFTRVdJQWtvQWdCQkJVc05DQ0FKS0FLc0FTSVJRUkIySVFvZ0NTZ0NiQ0VQREFnTElBRW9BcEFCSVJNZ0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhDMEYvSVFjQ1FDQUFLQUxNQVNJR1JRMEFJQXNnQmlnQ0JFY0VRQXdCQzBFQklSSWdCaWdDQUVFRlN3MEFJQVlvQXF3QklnbEJFSFloQ2lBR0tBSnNJUWNMSUFjZ0UwWUVRQ0FLSVFjZ0NTRUdEQWNMUVg4aER3SkFBa0FDUUNBQUtBTElBU0lJUlFSQVFRQWhCd3dCQzBFQUlRY2dDQ2dDQkNBTFJnMEJDMEVBSVFZTUFRdEJBU0VYSUFnb0FnQkJCVXNFUUVFQUlRWU1BUXNnQ0NnQ21BRWlCa0VRZGlFSElBZ29BbWdoRHdzQ1FBSkFJQUFvQXRBQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVTBOQVF3R0N3SkFJQUFvQXRRQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVXNOQmlBSUtBSndJUllnQ0NnQ3dBRWhDQXdIQzBFQUlRaEJmeUVXSUJJTkJpQVhSUTBHREFjTElBZ29BbXdoRmlBSUtBS3NBU0VJREFVTElBRW9BcEFCSVE4Z0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhCa0YvSVFjQ1FDQUFLQUxJQVNJS1JRUkFRUUFoQ0F3QkMwRUFJUWdnQmlBS0tBSUVSd1JBREFFTFFRRWhFU0FLS0FJQVFRVkxEUUFnQ2lnQ21BRWlDVUVRZGlFSUlBb29BbWdoQndzZ0J5QVBSZzBCQW44Q2Z3SkFBa0FnQUNnQ3pBRWlCMFVOQUNBSEtBSUVJQVpIRFFBZ0J5Z0NBRUVGU3cwQklBY29BbkFoRVNBSEtBSzhBU0VLSUFjb0Ftd2hFaUFIS0FLc0FTSUdRUkIyREFNTEFrQWdBQ2dDMUFFaUIwVU5BQ0FIS0FJRUlBWkhEUUJCQUNFR1FYOGhFaUFIS0FJQVFRVkxCRUJCZnlFUlFRQU1Bd3NnQnlnQ2NDRVJJQWNvQXNBQkRBSUxJQkVOQkF0QmZ5RVJRWDhoRWtFQUlRWkJBQXNoQ2tFQUN5RUhJQThnRWtZaUN5QVBJQkZHYWtFQlJ3UkFJQWNnQ0NBSFFSQjBRUkIxSWdzZ0NFRVFkRUVRZFNJT1NpSUlHeUlISUE0Z0N5QU9JQXNnRGtnYklBZ2JJZ2dnQ2tFUWRTSUxJQWdnQzBvYklBZEJFSFJCRUhVZ0MwZ2JJUWNnQmlBSklBWkJFSFJCRUhVaUN5QUpRUkIwUVJCMUlnbEtJZ1liSWdoQi8vOERjU0FKSUFzZ0NTQUxJQWxJR3lBR0d5SUdJQXBCRUhSQkVIVWlDU0FHSUFsS0d5QUlRUkIwUVJCMUlBbElHeUVHREFNTElBc05BaUFLUVJCMklRY2dDaUVHREFJTFFRRWhHeUFBUVlRQmFpRWNBMEFDZnlBQklCMUJBblFpSG1vaUlDSWtLQUt3QVNJR1FRSk5CRUFnQmtFQ2RFR2NOV29vQWdBTUFRdEJCQXNoSWlBQUlCNXFJZ1lnSUNnQ3dBRTJBbVFnQmlBQ0lDQW9Bc0FCRUJRaUJqWUNkQ0FHUlEwSUlDSUVRQ0FjSUIxQkJIUWlIMm9pSlNFbUlCd2dIMEVNY21vaUowRUNhaUVvSUJ3Z0gwRUljbW9pS1NFUklCd2dIMEVFY21vaUZpRVRRUUFoQmdOQUlBRWdIMm9nQmtFQ2RHb2lDQzhCMGdFaER5QUlMd0hRQVNFT0lDQW9Bc0FCSVNGQmZ5RVhBbjhnQUNBZFFRZDBJQ1FvQXJBQklpTkJCWFJxSUFaQkEzUnFJaHBCc0JscUtBSUFFQkVpQ1VVRVFFRUFJUXhCQUNFSVFRQWhDa0YvREFFTFFRQWhERUVBSVFoQkFDRUtRWDhnQ1NnQ0JDQUFLQUlFUncwQUdrRUJJUXBCZnlBSktBSUFRUVZMRFFBYUlBa2dHa0cwR1dvdEFBQWlCMEVDZEdvb0FvUUJJZ2hCRUhZaERDQUpJQWRCL0FGeGFpZ0NaQXNoRFFKQUFrQUNRQ0FBSUJwQnNCMXFLQUlBRUJFaUdFVUVRRUVBSVFrTUFRdEJBQ0VKSUJnb0FnUWdBQ2dDQkVZTkFRdEJBQ0VTUVFBaEN3d0JDMEVCSVFzZ0dDZ0NBRUVGU3dSQVFRQWhFZ3dCQ3lBWUlCcEJ0QjFxTFFBQUlnZEJBblJxS0FLRUFTSVNRUkIySVFrZ0dDQUhRZndCY1dvb0FtUWhGd3NDUUFKQUFrQUNRQUpBSUFBZ0drR3dJV29vQWdBUUVTSVpSUTBBSUJrb0FnUWdBQ2dDQkVjTkFDQVpLQUlBUVFWTkRRRU1BZ3NDUUNBQUlCcEJzQ1ZxS0FJQUVCRWlHVVVOQUNBWktBSUVJQUFvQWdSSERRQWdHU2dDQUVFRlN3MENJQmtnR2tHMEpXb3RBQUFpQjBIOEFYRnFLQUprSVJnZ0dTQUhRUUowYWlnQ2hBRWhCd3dEQzBFQUlRZEJmeUVZSUFwRkRRSWdDdzBDREFNTElCa2dHa0cwSVdvdEFBQWlCMEg4QVhGcUtBSmtJUmdnR1NBSFFRSjBhaWdDaEFFaEJ3d0JDMEVBSVFkQmZ5RVlDeUFYSUNGR0lnb2dEU0FoUmlJTGFpQVlJQ0ZHYWtFQlJ3UkFJQWtnRENBSlFSQjBRUkIxSWdzZ0RFRVFkRUVRZFNJTVNpSUpHeUlLSUF3Z0N5QU1JQXNnREVnYklBa2JJZ2tnQjBFUWRTSUxJQWtnQzBvYklBcEJFSFJCRUhVZ0MwZ2JJUXdnRWlBSUlCSkJFSFJCRUhVaUNpQUlRUkIwUVJCMUlndEtJZ2diSWdsQi8vOERjU0FMSUFvZ0N5QUtJQXRJR3lBSUd5SUlJQWRCRUhSQkVIVWlCeUFJSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVJREFFTElBZ2dFaUFMR3lFSUlBd2dDU0FMR3lFTUlBc05BQ0FLRFFBZ0IwRVFkaUVNSUFjaENBc2dDQ0FPYWlJS1FSQjBRUkIxUVlCQWEwSC8vd0JMRFFvZ0RDQVBhaUlKUVJCMFFSQjFRWUFRYWtIL0gwc05DaUFqUVFOTkJFQUNmd0pBQWtBQ1FBSkFJQ05CQVdzT0F3RUNBd0FMSUNVZ0Nqc0JBQ0FtSUFrN0FRSWdGaUFLT3dFQUlCTWdDVHNCQWlBcElBbzdBUUFnRVNBSk93RUNJQ2NnQ2pzQkFDQW9EQU1MSUJ3Z0JrRUJkQ0FlYWtFQ2RDSUhhaUlJSUFrN0FRSWdDQ0FLT3dFQUlCd2dCMEVFY21vaUNDQUtPd0VBSUFoQkFtb01BZ3NnQUNBR0lCNXFRUUowYWlJSUlBbzdBWXdCSUFnZ0NUc0JoZ0VnQ0NBS093R0VBU0FJUVk0QmFnd0JDeUFBSUFZZ0htcEJBblJxSWdnZ0Nqc0JoQUVnQ0VHR0FXb0xJQWs3QVFBTElBWkJBV29pQmlBaVJ3MEFDd3NnSFVFQmFpSWRRUVJIRFFBTFFRQWhEQU5BSUJBZ0FDQU1RUUowSWdKcUtBSjBOZ0lJSUF4QkFVdEJBM1FoQ1NBTVFRTjBRUWh4SVFjQ1FDQUJJQUpxS0FLd0FTSUNRUUpOQkVBQ1FBSkFBa0FnQWtFQmF3NENBUUlBQ3lBRklBQWdERUVFZEdwQmhBRnFJQkJCQ0dvZ0ZTQVVJQWNnQ1VFSVFRZ1FEZ3dEQ3lBRklBQWdERUVFZEdvaUFrR0VBV29nRUVFSWFpQVZJQlFnQnlBSlFRaEJCQkFPSUFVZ0FrR01BV29nRUVFSWFpQVZJQlFnQnlBSlFRUnlRUWhCQkJBT0RBSUxJQVVnQUNBTVFRUjBhaUlDUVlRQmFpQVFRUWhxSUJVZ0ZDQUhJQWxCQkVFSUVBNGdCU0FDUVlnQmFpQVFRUWhxSUJVZ0ZDQUhRUVJ5SUFsQkJFRUlFQTRNQVFzZ0JTQUFJQXhCQkhScUlnaEJoQUZxSUJCQkNHb2dGU0FVSUFjZ0NVRUVRUVFRRGlBRklBaEJpQUZxSUJCQkNHb2dGU0FVSUFkQkJISWlCaUFKUVFSQkJCQU9JQVVnQ0VHTUFXb2dFRUVJYWlBVklCUWdCeUFKUVFSeUlnSkJCRUVFRUE0Z0JTQUlRWkFCYWlBUVFRaHFJQlVnRkNBR0lBSkJCRUVFRUE0TElBeEJBV29pREVFRVJ3MEFDd3dHQ3lBSUlRY2dDU0VHQzBFQklSc2dCaUFNYWlJSVFSQjBRUkIxUVlCQWEwSC8vd0JMRFFVZ0J5QU5haUlHUVJCMFFSQjFRWUFRYWtIL0gwc05CU0FDSUE4UUZDSUhSUTBGSUFBZ0Jqc0JzZ0VnQUNBSU93R3dBU0FBSUFjMkFuUWdBQ0FQTmdKa0lBQWdCellDZkNBQUlBODJBbXdnQUNBQUtBS3dBU0lHTmdLc0FTQUFJQVkyQXFnQklBQWdCallDcEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FCS0FLVUFTRU9JQUV2QWFZQklRd2dBUzhCcEFFaEN5QUFLQUlFSVFrQ1FBSkFJQUFvQXRBQklnZEZEUUFnQnlnQ0JDQUpSdzBBUVFFaEVTQUhLQUlBUVFWTEJFQkJmeUVJUVFBaEJ3d0NDeUFIS0FKc0lRZ2dCeWdDckFFaEJ3d0JDMEYvSVFoQkFDRUhJQUFvQXN3QklncEZCRUJCQUNFUkRBRUxJQWtnQ2lnQ0JFY0VRRUVBSVJFTUFRdEJBU0VSSUFvb0FnQkJCVXNOQUNBS0tBSnNJUWdnQ2lnQ3NBRWhCd3NDUUNBSUlBNUdSUVJBSUFaQkVIWWhDQUovQWtBQ1FDQUFLQUxNQVNJTlJRMEFJQTBvQWdRZ0NVY05BQ0FOS0FJQVFRVkxEUUVnRFNnQ3ZBRWlFVUVRZGlFS0lBMG9BbkFNQWdzZ0VVVU5Bd3RCQUNFUlFRQWhDa0YvQ3lFTklBNGdEMFlpQ1NBTklBNUdha0VCUndSQUlBb2dDQ0FLUVJCMFFSQjFJZzBnQ0VFUWRFRVFkVW9pQ0JzaUNTQUdRUkIxSWdvZ0RTQUtJQW9nRFVvYklBZ2JJZ2dnQjBFUWRTSUtJQWdnQ2tvYklBbEJFSFJCRUhVZ0NrZ2JJUWdnRVNBR0lCRkJFSFJCRUhVaUNpQUdRUkIwUVJCMUlnMUtJZ1liSWdsQi8vOERjU0FOSUFvZ0RTQU5JQXBLR3lBR0d5SUdJQWRCRUhSQkVIVWlCeUFHSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVHREFJTElBa05BU0FOSUE1R0JFQWdFVUgvL3dOeElBcEJFSFJ5SVFZZ0NpRUlEQUlMQ3lBSFFSQjJJUWdnQnlFR0N5QUdJQXRxSWdkQkVIUkJFSFZCZ0VCclFmLy9BRXNOQlNBSUlBeHFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MEZJQUlnRGhBVUlnSkZEUVVnQUNBR093SENBU0FBSUFjN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKNElBQWdEallDY0NBQUlBNDJBbWdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0tnQVNBQUlBWTJBcHdCSUFBZ0JqWUNtQUVnQUVHVUFXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVJUVJBUURpQVFJQUFvQW5nMkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFoQkFFRUlRUkFRRGd3RUMwRUFJUWhCZnlFV0N5QVBJQk5HSWdzZ0V5QVdSbXBCQVVjRVFDQUtJQWNnQ2tFUWRFRVFkU0lMSUFkQkVIUkJFSFVpRGtvaUJ4c2lDaUFPSUFzZ0RpQUxJQTVJR3lBSEd5SUhJQWhCRUhVaUN5QUhJQXRLR3lBS1FSQjBRUkIxSUF0SUd5RUhJQWtnQmlBSlFSQjBRUkIxSWdvZ0JrRVFkRUVRZFNJTFNpSUdHeUlKUWYvL0EzRWdDeUFLSUFzZ0NpQUxTQnNnQmhzaUJpQUlRUkIwUVJCMUlnZ2dCaUFJU2hzZ0NVRVFkRUVRZFNBSVNCc2hCZ3dCQ3lBTERRQWdDRUVRZGlFSElBZ2hCZ3RCQVNFYklBWWdER29pQ0VFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0RXb2lCa0VRZEVFUWRVR0FFR3BCL3g5TERRSWdBaUFURUJRaUIwVU5BaUFBSUFZN0FhSUJJQUFnQ0RzQm9BRWdBQ0FITmdKMElBQWdFellDWkNBQUlBYzJBbmdnQUNBVE5nSm9JQUFnQUNnQ29BRWlEellDbkFFZ0FDQVBOZ0tZQVNBQUlBODJBcFFCSUFBZ0R6WUNrQUVnQUNBUE5nS01BU0FBSUE4MkFvZ0JJQUFnRHpZQ2hBRWdBU2dDbEFFaERpQUJMd0dtQVNFTklBRXZBYVFCSVF3Q2Z3SkFBa0FDUUNBQUtBTElBU0lHQkVBZ0JpZ0NCQ0FBS0FJRVJnUkFJQVlvQWdCQkJVMEVRQ0FHS0FLNEFTSUxRUkIySVFjZ0JpZ0NjQ0FPUncwRUlBc2hDUXdEQzBGL0lSSkJBQ0VKUVFBaEIwRUFJUXRCQUNFS0lBNUJmMFlOQWd3RUMwRi9JUkpCQUNFSlFRQWhCMEVBSVF0QkFDRUtJQTVCZjBZTkFRd0RDMEYvSVJKQkFDRUpRUUFoQjBFQUlRdEJBQ0VLSUE1QmYwY05BZ3NnQ1VILy93TnhJQWRCRUhSeURBSUxJQVlvQW1naEVpQUdLQUtnQVNFS0lBY2hDUXNnRDBFUWRpRUlJQTRnRTBZaUJpQU9JQkpHYWtFQlJ3UkFJQWdnQ1NBSlFSQjBRUkIxSWdrZ0NFRVFkRUVRZFVnaUJ4c2lDQ0FKSUE5QkVIVWlCaUFKSUFZZ0NVZ2JJQWNiSWdZZ0NrRVFkU0lISUFZZ0Iwb2JJQWhCRUhSQkVIVWdCMGdiSVFjZ0R5QUxJQXRCRUhSQkVIVWlDeUFQUVJCMFFSQjFJZ2xJSWdZYklnaEIvLzhEY1NBTElBa2dDeUFKSUF0SUd5QUdHeUlHSUFwQkVIUkJFSFVpQ1NBR0lBbEtHeUFJUVJCMFFSQjFJQWxJR3d3QkN5QUlJQXBCRUhZZ0Joc2hCeUFQSUFvZ0Joc0xJQXhxSWdoQkVIUkJFSFZCZ0VCclFmLy9BRXNOQWlBSElBMXFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MENJQUlnRGhBVUlnSkZEUUlnQUNBR093SENBU0FBSUFnN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKOElBQWdEallDY0NBQUlBNDJBbXdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0t3QVNBQUlBWTJBcXdCSUFBZ0JqWUNxQUVnQUVHa0FXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVRUVFnUURpQVFJQUFvQW53MkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFCQkNFRVFRUWdRRGd3QkN3SkFJQVpGQkVBZ0VrVUVRRUVBSVFrTUFnc2dGa1VFUUVFQUlRa01BZ3NnQ0VILy93TnhJQWRCRUhSeUlBMXlSUVJBUVFBaENRd0NDMEVBSVFrZ0VVSC8vd054SUFwQkVIUnlJQTl5UlEwQkN5QUJMd0dpQVNFTElBRXZBYUFCSVFrQ1FBSkFBa0FDUUFKQUlBQW9BdEFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVME5BUXdDQ3dKQUlBQW9BdFFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVc05BaUFHS0FKd0lSY2dCaWdDd0FFaERBd0RDMEYvSVJjZ0VrVU5BaUFXRFFJTUF3c2dCaWdDYkNFWElBWW9BcXdCSVF3TUFRdEJmeUVYQ3lBUElCTkdJZ1lnRFNBVFJpSU5haUFUSUJkR2FrRUJSd1JBSUFvZ0J5QUtRUkIwUVJCMUlnb2dCMEVRZEVFUWRTSU5TaUlHR3lJSElBMGdDaUFOSUFvZ0RVZ2JJQVliSWdZZ0RFRVFkU0lLSUFZZ0Nrb2JJQWRCRUhSQkVIVWdDa2diSVFjZ0VTQUlJQkZCRUhSQkVIVWlDaUFJUVJCMFFSQjFJZzFLSWdZYklnaEIvLzhEY1NBTklBb2dEU0FLSUExSUd5QUdHeUlHSUF4QkVIUkJFSFVpQ2lBR0lBcEtHeUFJUVJCMFFSQjFJQXBJR3lFSURBRUxJQWdnRVNBTkd5RUlJQWNnQ2lBTkd5RUhJQTBOQUNBR0RRQWdERUVRZGlFSElBd2hDQXRCQVNFYklBZ2dDV29pREVFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0Myb2lDVUVRZEVFUWRVR0FFR3BCL3g5TERRSUxJQUlnRXhBVUlnSkZCRUJCQVNFYkRBSUxJQUFnQ1RzQndnRWdBQ0FNT3dIQUFTQUFJQUkyQW5RZ0FDQVROZ0prSUFBZ0FqWUNnQUVnQUNBQ05nSjhJQUFnQWpZQ2VDQUFJQk0yQW5BZ0FDQVROZ0pzSUFBZ0V6WUNhQ0FBSUFBb0FzQUJJZ1kyQXJ3QklBQWdCallDdUFFZ0FDQUdOZ0swQVNBQUlBWTJBckFCSUFBZ0JqWUNyQUVnQUNBR05nS29BU0FBSUFZMkFxUUJJQUFnQmpZQ29BRWdBQ0FHTmdLY0FTQUFJQVkyQXBnQklBQWdCallDbEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FRSUFJMkFnZ2dCU0FBUVlRQmFpQVFRUWhxSUJVZ0ZFRUFRUUJCRUVFUUVBNExRUUFoR3lBQUtBTEVBVUVCU3cwQUlBQW9BZ0FFUUNBRUlBTWdCU0FCUWNnQ2FoQllEQUVMSUFRZ0JSQWJDeUFRUVNCcUpBQWdHd3VUQ3dFUGZ5QUFLQUlBSWhFZ0FTQUJJQUFvQWdRaUNuQWlBV3NpQkVFSWRHb2dBVUVFZEdvaEJTQUtRUVIwSVFzZ0FDZ0NDQ0FLYkNJQVFRWjBJUVlnQVVFRGRDRUpJQUJCQ0hRaERDQUVRUVowSVJJZ0NrRUNkRUg4Ly8vL0EzRkJBblFoRUFOQUlBVWdEa0VDZENJQVFmQXBhaWdDQUNJQklBdHNhaUFBUWJBcGFpZ0NBQ0lBYWlFRUlBSWdBVUVFZEdvZ0FHb2hBQUpBSUFNZ0RrRUdkR29pQVNnQ0FDSUhRZi8vL3dkSEJFQWdBU2dDQkNFSUlBQXRBQUVoRFNBRUlBY2dBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BZ2doQnlBQUxRQUNJUThnQkNBSUlBMXFRYkF1YWkwQUFEb0FBU0FCS0FJTUlRZ2dBQzBBQXlFTklBUWdCeUFQYWtHd0xtb3RBQUE2QUFJZ0JDQUlJQTFxUWJBdWFpMEFBRG9BQXlBQktBSVVJUWNnQUMwQUVTRUlJQVFnQzJvaUJDQUJLQUlRSUFBdEFCQnFRYkF1YWkwQUFEb0FBQ0FCS0FJWUlRMGdBQzBBRWlFUElBUWdCeUFJYWtHd0xtb3RBQUE2QUFFZ0FTZ0NIQ0VISUFBdEFCTWhDQ0FFSUEwZ0QycEJzQzVxTFFBQU9nQUNJQVFnQnlBSWFrR3dMbW90QUFBNkFBTWdBU2dDSkNFSElBQXRBQ0VoQ0NBRUlBdHFJZ1FnQVNnQ0lDQUFMUUFnYWtHd0xtb3RBQUE2QUFBZ0FTZ0NLQ0VOSUFBdEFDSWhEeUFFSUFjZ0NHcEJzQzVxTFFBQU9nQUJJQUVvQWl3aEJ5QUFMUUFqSVFnZ0JDQU5JQTlxUWJBdWFpMEFBRG9BQWlBRUlBY2dDR3BCc0M1cUxRQUFPZ0FESUFFb0FqUWhCeUFBTFFBeElRZ2dCQ0FMYWlJRUlBRW9BakFnQUMwQU1HcEJzQzVxTFFBQU9nQUFJQUVvQWpnaERTQUFMUUF5SVE4Z0JDQUhJQWhxUWJBdWFpMEFBRG9BQVNBQktBSThJUUVnQUMwQU15RUFJQVFnRFNBUGFrR3dMbW90QUFBNkFBSWdCQ0FBSUFGcVFiQXVhaTBBQURvQUF3d0JDeUFBS0FJUUlRRWdCQ0FBS0FJQU5nSUFJQVFnRUdvaUJDQUJOZ0lBSUFBb0FqQWhBU0FFSUJCcUlnUWdBQ2dDSURZQ0FDQUVJQkJxSUFFMkFnQUxJQTVCQVdvaURrRVFSdzBBQ3lBTUlCRnFJQkpxSUFscUloQWdCbW9oRVNBS1FRTjBRZmovLy84SGNTSUxRUUoyUVFKMElRNUJFQ0VLQTBBZ0NrRUNkRUVNY1NJQVFmQXBhaWdDQUNJQklBdHNJQUJCc0NscUtBSUFJZ0JxSUJFZ0VDQUtRUk5MSWdVYmFpRUVJQUpCd0FKQmdBSWdCUnRxSUFGQkEzUWdBR3BxSVFBQ1FDQURJQXBCQm5ScUlnRW9BZ0FpQlVILy8vOEhSd1JBSUFFb0FnUWhCaUFBTFFBQklRa2dCQ0FGSUFBdEFBQnFRYkF1YWkwQUFEb0FBQ0FCS0FJSUlRVWdBQzBBQWlFTUlBUWdCaUFKYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VHSUFBdEFBTWhDU0FFSUFVZ0RHcEJzQzVxTFFBQU9nQUNJQVFnQmlBSmFrR3dMbW90QUFBNkFBTWdBU2dDRkNFRklBQXRBQWtoQmlBRUlBdHFJZ1FnQVNnQ0VDQUFMUUFJYWtHd0xtb3RBQUE2QUFBZ0FTZ0NHQ0VKSUFBdEFBb2hEQ0FFSUFVZ0JtcEJzQzVxTFFBQU9nQUJJQUVvQWh3aEJTQUFMUUFMSVFZZ0JDQUpJQXhxUWJBdWFpMEFBRG9BQWlBRUlBVWdCbXBCc0M1cUxRQUFPZ0FESUFFb0FpUWhCU0FBTFFBUklRWWdCQ0FMYWlJRUlBRW9BaUFnQUMwQUVHcEJzQzVxTFFBQU9nQUFJQUVvQWlnaENTQUFMUUFTSVF3Z0JDQUZJQVpxUWJBdWFpMEFBRG9BQVNBQktBSXNJUVVnQUMwQUV5RUdJQVFnQ1NBTWFrR3dMbW90QUFBNkFBSWdCQ0FGSUFacVFiQXVhaTBBQURvQUF5QUJLQUkwSVFVZ0FDMEFHU0VHSUFRZ0Myb2lCQ0FCS0FJd0lBQXRBQmhxUWJBdWFpMEFBRG9BQUNBQktBSTRJUWtnQUMwQUdpRU1JQVFnQlNBR2FrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQXRBQnNoQUNBRUlBa2dER3BCc0M1cUxRQUFPZ0FDSUFRZ0FDQUJha0d3TG1vdEFBQTZBQU1NQVFzZ0FDZ0NDQ0VCSUFRZ0FDZ0NBRFlDQUNBRUlBNXFJZ1FnQVRZQ0FDQUFLQUlZSVFFZ0JDQU9haUlFSUFBb0FoQTJBZ0FnQkNBT2FpQUJOZ0lBQ3lBS1FRRnFJZ3BCR0VjTkFBc0w1Z0VCQjM4Q1FDQUFLQUlBSWdWRkRRQWdBRUVCTmdJOElBQW9BamdOQUNBQUtBSWNJUVpCLy8vLy93Y2hBZ05BQTBBZ0JTQURRU2hzYWlJRUtBSVlCRUFnQkNBQklBUW9BaEFpQkNBQ1NDSUhHeUVCSUFRZ0FpQUhHeUVDQ3lBRFFRRnFJZ01nQmswTkFDQUJSUTBDSUFBb0Fnd2dBQ2dDRUNJRFFRUjBhaUlDSUFFb0FnQTJBZ0FnQWlBQktBSWtOZ0lNSUFJZ0FTZ0NIRFlDQkNBQ0lBRW9BaUEyQWdnZ0FDQURRUUZxTmdJUVFRQWhBeUFCUVFBMkFoZ2dBU2dDRkNFRVFRQWhBVUgvLy8vL0J5RUNJQVFOQUFzZ0FDQUFLQUlzUVg5cU5nSXNEQUFBQ3dBTEM5d0dBUXAvSUFCQ0FEY0NFQUpBQWtBQ1FDQURSUTBBQWtBQ1FDQUJJQUFvQWpBaUEwY0VRQ0FEUVFGcUlBQW9BaUFpQkhBaUNTQUJSZzBCSUFBb0FnQWdBQ2dDSEVFb2JHb29BZ0FoQ3dOQUFrQUNRQ0FBS0FJb0lnY0VRQ0FBS0FJQUlRaEJBQ0VEQTBBZ0NDQURRU2hzYWlJRktBSVVRWDlxUVFGTkJFQWdCU0FGS0FJTUlnVWdCRUVBSUFVZ0NVc2JhellDQ0FzZ0EwRUJhaUlESUFkSERRQUxJQWNnQUNnQ0dFa05Ba0YvSVFWQkFDRURRUUFoQkFOQUlBZ2dBMEVvYkdvaUJpZ0NGRUYvYWtFQlRRUkFJQVlvQWdnaUJpQUVJQVZCZjBZZ0JpQUVTSElpQmhzaEJDQURJQVVnQmhzaEJRc2dBMEVCYWlJRElBZEhEUUFMSUFWQkFFNE5BVUVCRHd0QkFDRUhJQUFvQWhnTkFVRUJEd3NnQ0NBRlFTaHNhaUlEUVFBMkFoUWdBQ0FIUVg5cUlnYzJBaWdnQXlnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FDZ0NMQ0lGSUFBb0Fod2lDRThFUUNBQUtBSTREUVlnQUNnQ0FDRU1BMEJCQUNFRVFmLy8vLzhISVFaQkFDRURBMEFnRENBRFFTaHNhaUlLS0FJWUJFQWdDaUFFSUFvb0FoQWlDaUFHU0NJTkd5RUVJQW9nQmlBTkd5RUdDeUFEUVFGcUlnTWdDRTBOQUFzQ1FDQUVSUTBBSUFBb0Fnd2dBQ2dDRUNJR1FRUjBhaUlESUFRb0FnQTJBZ0FnQXlBRUtBSWtOZ0lNSUFNZ0JDZ0NIRFlDQkNBRElBUW9BaUEyQWdnZ0FDQUdRUUZxTmdJUUlBUkJBRFlDR0NBRUtBSVVEUUFnQUNBRlFYOXFJZ1UyQWl3TElBVWdDRThOQUFzTElBQW9BZ0FpQkNBSVFTaHNhaUlESUFrMkFnd2dBMEtBZ0lDQUVEY0NFQ0FEUVFBMkFoZ2dBeUFKTmdJSUlBQWdCMEVCYWpZQ0tDQUFJQVZCQVdvMkFpd2dCQ0FJUVFGcUVDY2dDVUVCYWlBQUtBSWdJZ1J3SWdrZ0FVY05BQXNDUUNBQUtBSVFJZ2xGRFFBZ0FDZ0NBQ0lGSUFBb0Fod2lCRUVvYkdvaUNDZ0NBQ0VISUFBb0Fnd2hCa0VBSVFNRFFDQUhJQVlnQTBFRWRHb29BZ0JIQkVBZ0NTQURRUUZxSWdOSERRRU1BZ3NMSUFSRkRRQkJBQ0VEQTBBZ0N5QUZJQU5CS0d4cUlna29BZ0JIQkVBZ0JDQURRUUZxSWdOSERRRU1BZ3NMSUFrZ0J6WUNBQ0FJSUFzMkFnQUxJQUlOQlNBQUtBSXdJUU1NQWdzZ0FrRUFSdzhMSUFJTkF3c2dBU0FEUmcwQUlBQWdBU0FBS0FJZ0lnQnFRWDlxSUFCd05nSXdDMEVBRHdzRFFBd0FBQXNBQ3lBQUlBRTJBakJCQUF0MUFRTi9Ba0FnQUNnQ0FDSUJSUTBBSUFBb0FoeEJmMFlOQUFOQUlBRWdBa0VvYkNJRGFpZ0NCQkFFSUFBb0FnQWlBU0FEYWtFQU5nSUVJQUpCQVdvaUFpQUFLQUljUVFGcVNRMEFDd3NnQVJBRUlBQkJBRFlDQUNBQUtBSUVFQVFnQUVFQU5nSUVJQUFvQWd3UUJDQUFRUUEyQWd3TGd3RUJBMzhDUUNBQUtBSUFJZ1pGRFFBZ0FDZ0NIRUYvUmcwQUEwQWdCaUFIUVNoc0lnaHFLQUlFRUFRZ0FDZ0NBQ0lHSUFocVFRQTJBZ1FnQjBFQmFpSUhJQUFvQWh4QkFXcEpEUUFMQ3lBR0VBUWdBRUVBTmdJQUlBQW9BZ1FRQkNBQVFRQTJBZ1FnQUNnQ0RCQUVJQUJCQURZQ0RDQUFJQUVnQWlBRElBUWdCUkJkQzRBQ0FRSi9JQUFnQlRZQ09DQUFJQVEyQWlBZ0FFTC8vd00zQWlRZ0FFSUFOd0lzSUFBZ0EwRUJJQU5CQVVzYklnTTJBaGdnQUNBRElBSWdCUnNpQWpZQ0hDQUFRYWdGRUFvaUF6WUNBRUgvL3dNaEJBSkFJQU5GRFFCQkFDRUZJQU5CQUVHb0JSQUhJUVlnQWtGL1J3UkFJQUZCZ0FOc1FTOXlJUVZCQUNFREEwQWdCaUFEUVNoc2FpSUhJQVVRQ2lJQk5nSUVJQUZGRFFJZ0J5QUJRUUFnQVd0QkQzRnFOZ0lBSUFNZ0Fra2hBU0FEUVFGcUlRTWdBUTBBQ3lBQ1FRUjBRUkJxSVFVTElBQkJ4QUFRQ2lJQk5nSUVJQUFnQlJBS0lnSTJBZ3dnQWtVTkFDQUJSUTBBUVFBaEJDQUJRUUJCeEFBUUJ4b2dBRUlBTndJUUN5QUVDOU1CQVFkL1FRRWhBUUpBSUFBb0FqZ05BQ0FBS0FJY0lRVWdBQ2dDQUNFR1FmLy8vLzhISVFOQkFDRUJBMEFnQmlBQlFTaHNhaUlFS0FJWUJFQWdCQ0FDSUFRb0FoQWlCQ0FEU0NJSEd5RUNJQVFnQXlBSEd5RURDeUFCUVFGcUlnRWdCVTBOQUFzZ0FrVUVRRUVCRHdzZ0FDZ0NEQ0FBS0FJUUlnTkJCSFJxSWdFZ0FpZ0NBRFlDQUNBQklBSW9BaVEyQWd3Z0FTQUNLQUljTmdJRUlBRWdBaWdDSURZQ0NDQUFJQU5CQVdvMkFoQkJBQ0VCSUFKQkFEWUNHQ0FDS0FJVURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQkMvVUVBUWgvSUFBb0FpZ2lCQVJBSUFBb0FnQWhCd05BSUFjZ0JVRW9iR29pQmlnQ0ZFRi9ha0VCVFFSQUlBWWdCaWdDRENJSUlBSkxCSDhnQ0NBQUtBSWdhd1VnQ0FzMkFnZ0xJQVZCQVdvaUJTQUVSdzBBQ3d0QkFDRUVBa0FnQVNnQ0FFVU5BQ0FCS0FJRUlnVkJBa3NOQUVFQUlRY2dBaUVHQTBBQ1FBSkFBa0FnQlVFQ1J3UkFJQUVnQjBFTWJHb29BZ2doQkFKQUlBVkZCRUFnQmlBRWF5SUdRWDlLRFFFZ0FDZ0NJQ0FHYWlFR0RBRUxJQVFnQm1vaUJrRUFJQUFvQWlBaUJTQUdJQVZJRzJzaEJnc2dCaUVKSUFZZ0Frc0VRQ0FHSUFBb0FpQnJJUWtMSUFBb0FoZ2lDa1VFUUVFQkR3c2dBQ2dDQUNFSVFRQWhCUU5BSUFnZ0JVRW9iR29pQkNnQ0ZDSUxRWDlxUVFGTkJFQWdCQ2dDQ0NBSlJnMERDMEVCSVFRZ0JVRUJhaUlGSUFwSERRQUxEQVVMUVFFaEJDQUFLQUlZSWdsRkRRUWdBU0FIUVF4c2FpZ0NEQ0VLSUFBb0FnQWhDRUVBSVFVRFFDQUlJQVZCS0d4cUlnUW9BaFJCQTBZRVFDQUVLQUlJSUFwR0RRTUxRUUVoQkNBRlFRRnFJZ1VnQ1VjTkFBc01CQXNnQlVFQVNBUkFRUUVQQzBFQklRUWdDMEVCU3cwQkRBTUxRUUVoQkNBRlFRQklEUUlMSUFjZ0F5SUVTUVJBQTBBZ0FDZ0NCQ0lKSUFSQkFuUnFJQWtnQkVGL2FpSUVRUUowYWlnQ0FEWUNBQ0FFSUFkTERRQUxJQUFvQWdBaENBc2dBQ2dDQkNBSFFRSjBhaUFJSUFWQktHd2lDV28yQWdBZ0IwRUJhaUlISVFRZ0J5SUZJQU5OQkVBRFFDQUFLQUlFSWdnZ0JVRUNkR29vQWdBaUNpQUFLQUlBSUFscVJ3UkFJQWdnQkVFQ2RHb2dDallDQUNBRVFRRnFJUVFMSUFWQkFXb2lCU0FEVFEwQUN3dEJBQ0VFSUFFZ0IwRU1iR29vQWdRaUJVRURTUTBBQ3dzZ0JBc0hBRUhFR2hBS0M3Y0JBUUovSXdCQkVHc2lCaVFBSUFaQkFEWUNEQ0FBSUFFZ0FpQUdRUXhxRUNvaUIwRjljVVVFUUFOQUlBQWdBU0FHS0FJTUlnZHFJZ0VnQWlBSGF5SUNJQVpCREdvUUtpSUhRWDF4UlEwQUN3c2dCMEVCUmdSQUlBUWdBQ2dDRUNJQktBSTBRUVIwTmdJQUlBVWdBU2dDT0VFRWREWUNBQ0FESUFCQnhBbHFJZ0FvQWhRaUFTQUFLQUlRU1FSL0lBQWdBVUVCYWpZQ0ZDQUFLQUlNSUFGQkJIUnFCVUVBQ3lnQ0FEWUNBQXNnQmtFUWFpUUFJQWNMU1FFQmZ5QUFRUUJCeEJvUUJ5SUNRYlFLYWtFQk5nSUFJQUpDZ0lLQWdJQUVOd0lFSUFCQndCQVFDaUlDTmdLd0dpQUNSUVJBUVFFUEN5QUJCRUFnQUVFQk5nTEFDUXRCQUF1NkJBRUpmd0pBQWtBZ0FVRUVTUTBBSUFBdEFBQU5BQ0FBTFFBQkRRQWdBQzBBQWlJSFFRRkxEUUJCQXlFRUlBQkJBMm9oQlVFQ0lRaEJmU0VNQWtBRFFDQUZJUVlDZnlBSVFRRnFJQWRCL3dGeElnVkZEUUFhUVFBaEJ5QUZRUUZHUVFBZ0NFRUJTeHNOQWtFQUN5RUlJQVJCZjNNaERDQUdRUUZxSVFVZ0JpMEFBQ0VISUFSQkFXb2lCQ0FCUncwQUN5QURJQUUyQWdCQkFROExJQVFoQ2tFQUlRaEJBQ0VGQTBCQkFTQUlJQWNnQmkwQUFDSUxSV29pQ1VFQ1Joc2dDQ0FMUVFOR0d5RUlJQXBCQVdvaENnSkFJQXRCQVVjTkFDQUpRUUpKRFFBZ0FpQUtJQXhxSUFsQmYzTnFJZ0UyQWd4QkFDQUpRWDFxSWdZZ0JpQUpTeHNoQnd3REMwRUFJQWtnQ3hzaEIwRUJJQVVnQ1VFQ1N4c2dCU0FMR3lFRklBWkJBV29oQmlBQklBcEhEUUFMSUFJZ0FTQU1haUFIYXlJQk5nSU1EQUVMSUFJZ0FUWUNERUVCSVFoQkFDRUhDeUFDUVFBMkFoQWdBa0VBTmdJSUlBSWdBQ0FFYWlJQU5nSUVJQUlnQURZQ0FDQURJQVFnQjJvZ0FXbzJBZ0JCQVNFREFrQWdCUTBBUVFBaEF5QUlSUTBBSUFJQ2Z5QUNLQUlNSWdGRkJFQWdBQ0VFUVFBTUFRc2dBQ0VFUVFBaEJnTkFJQUZCZjJvaEFTQUVMUUFBSVFVQ2Z3SkFJQVpCQWtjTkFDQUZRUU5HQkVBZ0FVVUVRRUVCRHdzZ0JDMEFBVUVEU3dSQVFRRVBDMEVBSVFZZ0JFRUJhZ3dDQ3lBRlFRTlBEUUJCQVE4TElBQWdCVG9BQUVFQUlBWkJBV29nQlJzaEJpQUFRUUZxSVFBZ0JFRUJhZ3NoQkNBQkRRQUxJQUlvQWd3TElBQWdCR3RxTmdJTUN5QURDd3Z0TWhrQVFZWUlDOG9GWmlBbUVBWUlaUmhsR0VNUVF4QkRFRU1RUXhCREVFTVFReEFpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNBQUFBQUFBQUFBQWFrQktNQ29vQ2lCcE9HazRTU2hKS0NrZ0tTQUpHQWtZYURCb01HZ3dhREJJSUVnZ1NDQklJQ2dZS0Jnb0dDZ1lDQkFJRUFnUUNCQm5LR2NvWnlobktHY29aeWhuS0djb1J4aEhHRWNZUnhoSEdFY1lSeGhIR0c1Z1RsZ3VVQTVRYmxoT1VDNUlEa2dOUUExQVRVaE5TQzFBTFVBTk9BMDRiVkJ0VUUxQVRVQXRPQzA0RFRBTk1HdElhMGhyU0d0SWEwaHJTR3RJYTBoTE9FczRTemhMT0VzNFN6aExPRXM0S3pBck1Dc3dLekFyTUNzd0t6QXJNQXNvQ3lnTEtBc29DeWdMS0Fzb0N5Z0FBQUFBTDJndmFCQ0FVSUF3Z0JCNGNJQlFlREI0RUhCd2VGQndNSEFRYUc5d2IzQlBhRTlvTDJBdllBOWdEMkJ2YUc5b1QyQlBZQzlZTDFnUFdBOVlBQUFBQUFBQUFBQm1PRVlnSmlBR0VHWXdSaGdtR0FZSVpTaGxLQ1VRSlJCa0lHUWdaQ0JrSUdRWVpCaGtHR1FZUXhCREVFTVFReEJERUVNUVF4QkRFQUFBQUFBQUFBQUFhVWhKT0NrNENUQUlLQWdvU0RCSU1DZ3dLREFJSUFnZ1owQm5RR2RBWjBCSEtFY29SeWhIS0Njb0p5Z25LQ2NvQnhnSEdBY1lCeGdBQUFBQWJYaHRlRzZBVG9BdWdBNkFMbmdPZUU1NExuQk5jRTF3RFhBTmNHMXdiWEJOYUUxb0xXZ3RhQTFvRFdodGFHMW9UV0JOWUMxZ0xXQU5ZQTFnREZnTVdBeFlERmhNV0V4WVRGaE1XQ3hZTEZnc1dDeFlERkFNVUF4UURGQnNZR3hnYkdCc1lFeFFURkJNVUV4UUxGQXNVQ3hRTEZBTVNBeElERWdNU0d0WWExaHJXR3RZYTFocldHdFlhMWhMU0V0SVMwaExTRXRJUzBoTFNFdElLMGdyU0N0SUswZ3JTQ3RJSzBnclNBdEFDMEFMUUF0QUMwQUxRQXRBQzBCclVHdFFhMUJyVUd0UWExQnJVR3RRUzBCTFFFdEFTMEJMUUV0QVMwQkxRQ3RBSzBBclFDdEFLMEFyUUN0QUswQUxPQXM0Q3pnTE9BczRDemdMT0FzNEFFSGdEUXV1Q1FZWVJqZ21PQVlRWmtoR01DWXdCZ2dsS0NVb1JTaEZLQ1VnSlNCRklFVWdKUmdsR0dWQVpVQkZHRVVZSlJBbEVHUTRaRGhrT0dRNFpEQmtNR1F3WkRCa0tHUW9aQ2hrS0dRZ1pDQmtJR1FnWkJoa0dHUVlaQmhFRUVRUVJCQkVFQ1FJSkFna0NDUUlCQUFFQUFRQUJBQUFBQXFBYW9CS2dDcUFDbmhxZUVwNEtuZ0tjR3B3U25BcWNBcG9LV2dwYUFsZ0NXQkphRWxvS1dBcFlBbFlDVmhwYUdsb1NXQkpZQ2xZS1ZnSlVBbFFhR0JvWUdoZ2FHQklXRWhZU0ZoSVdDaFFLRkFvVUNoUUNFZ0lTQWhJQ0Vob1dHaFlhRmhvV0VoUVNGQklVRWhRS0Vnb1NDaElLRWdJUUFoQUNFQUlRQWM0QnpnSE9BYzRCemdIT0FjNEJ6Z0hNQWN3QnpBSE1BY3dCekFITUFjd1IwaEhTRWRJUjBoSFNFZElSMGhIU0Fjb0J5Z0hLQWNvQnlnSEtBY29CeWhuVUdkUVoxQm5VR2RRWjFCblVHZFFSMEJIUUVkQVIwQkhRRWRBUjBCSFFDZEFKMEFuUUNkQUowQW5RQ2RBSjBBSElBY2dCeUFISUFjZ0J5QUhJQWNnQmdnbUNBQUFCZ0FHRUNZUVJoQUFBQVlZSmhoR0dHWVlCaUFtSUVZZ1ppQUdLQ1lvUmlobUtBWXdKakJHTUdZd0JqZ21PRVk0WmpnR1FDWkFSa0JtUUFaSUpraEdTR1pJQmxBbVVFWlFabEFHV0NaWVJsaG1XQVpnSm1CR1lHWmdCbWdtYUVab1ptZ0djQ1p3Um5CbWNBWjRKbmhHZUdaNEJvQW1nRWFBWm9BQUFFTVFBZ0FDQUNFSUlRZ2hDQ0VJWnlCbklFZ2dLQ0JIR0VjWUp4Z25HQVlnQmlBR0lBWWdCaGdHR0FZWUJoZ0dFQVlRQmhBR0VHWVlaaGhtR0dZWUpoQW1FQ1lRSmhBR0NBWUlCZ2dHQ0FBQVpWVkVSRFEwSXlNakl4TVRFeE1CQVFFQkFRRUJBUUVCQVFFQkFRRUJBUG5wMmNqSXVMaW5wNmVubDVlWGw0YUdob2FHaG9hR2RuWjJkbloyZG5ibTFzYTJwYVdWbFlTRWhJUjBkSFIwWkdSa1pGUlVWRlJEUTBORFEwTkRRek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEV3TURBd01EQXdNRDFyYkZ4YVdsbFpXRWhJU0VWRlJVVkVSRVJFUUVCQVFFYzNOemMzTnpjM05qWTJOalkyTmpZek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEU4VzFwUVdVbEhSME5EUWtKSU9EZzROalkyTmpVMU5UVTBORFEwTVRFeE1UdFpXa3BJU0VKQ1FVRkFRRWMzTnpjMk5qWTJOVFUxTlRRME5EUXpNek16T21CaFVWaElTRWhKT1RrNU9UazVPVGMzTnpjM056YzNOalkyTmpZMk5qWTFOVFUxTlRVMU5UUTBORFEwTkRRME16TXpNek16TXpNeU1qSXlNakl5TWpsZ1lWRlhSMGRIU0RnNE9EZzRPRGcyTmpZMk5qWTJOalEwTkRRME5EUTBNek16TXpNek16TXlNakl5TWpJeU1qVWxKU1VsSlNVbEpTVWxKU1VsSlNVb1lHSlNVVUZCUVVjM056YzNOemMzTmpZMk5qWTJOall6TXpNek16TXpNelVsSlNVbEpTVWxKU1VsSlNVbEpTVWtKQ1FrSkNRa0pDUWtKQ1FrSkNRa0lXQm5WMUpDUWtKRk5UVTFOVFUxTlRZbUppWW1KaVltSmlZbUppWW1KaVlrSkNRa0pDUWtKQ1FrSkNRa0pDUWtJeU1qSXlNakl5TWpJeU1qSXlNakl5RlFWa1pDTWpJeU5TVWxKU1VsSlNVa0pDUWtKQ1FrSkNNakl5TWpJeU1qSUVGQ01qTXpOVFUwRkJRVUZCUVVGQkJCUkRReUlpSWlJeE1URXhNVEV4TVFNVE1qSWhJU0VoQWhJaElSRUJJaElCQVRJaUVnSkRNeUlpRWhJQ0FsTkRNeU1TRWdJQ0V5TkRNMk5UQWdJQVFhQVhDeVFFQkFVR0J3Z0pDZ3dORHhFVUZoa2NJQ1FvTFRJNFAwZFFXbVZ4ZjVDaXRzdmkvLzhBUWVBWEN5UUNBZ0lEQXdNREJBUUVCZ1lIQndnSUNRa0tDZ3NMREF3TkRRNE9EdzhRRUJFUkVoSUFRY1VZQzRRQkFRQUFBUUFBQVFBQUFRQUJBUUFCQVFFQkFRRUJBUUVCQVFFQkFRRUJBZ0VCQWdFQkFnRUJBZ0VDQXdFQ0F3SUNBd0lDQkFJREJBSURCQU1EQlFNRUJnTUVCZ1FGQndRRkNBUUdDUVVIQ2dZSUN3WUlEUWNLRGdnTEVBa01FZ29ORkFzUEZ3MFJHUUFBQUFBQUFBQUFCUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVIVUdRc1ZCUUFBQUFBQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUVIMEdRc1ZCUUFBQUFRQUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVHVUdnc0ZCUUFBQUFRQVFhUWFDNlVCQndBQUFBUUFBQUFDQUFBQUJBQUFBQUVBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUFRQUFBQVFBQUFBREFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFCQUFBQUJBQUFBQVFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBRUFBQUFFQUFBQUJBQUFBQVFBQUFBREFBQUFCQUFBQUFZQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FFSFVHd3NWRFFBQUFBQUFBQUFQQUFBQS93QUFBQUFBQUFEL0FFSDBHd3NWRFFBQUFBUUFBQUFJQUFBQS93QUFBQUFBQUFEL0FFR1VIQXUxQ3cwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBSkFBQUFCQUFBQUFzQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQWtBQUFBRUFBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUNRQUFBQVFBQUFBTUFBQUFCQUFBQUFzQUFBQUVBQUFBRGdBQUFBRUFBQUFLQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBb0FBQUFFQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ2dBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUtBQUFBQVFBQUFBc0FBQUFFQUFBQUFBQUFBQVFBQUFBQkFBQUFBUUFBQUE0QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEZ0FBQUFRQUFBQUVBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQUVBQUFBT0FBQUFBUUFBQUE4QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFRQUFBQTRBQUFBQkFBQUFEd0FBQUFRQUFBQUVBQUFBQkFBQUFBVUFBQUFFQUFBQUFnQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFDQUFBQUJBQUFBQWdBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUVBQUFBQWdBQUFBUUFBQUFEQUFBQUJBQUFBQWdBQUFBRUFBQUFDUUFBQUFRQUFBQUdBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFZQUFBQUVBQUFBREFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFCZ0FBQUFRQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUFCQUFBQUFjQUFBQUVBQUFBREFBQUFBUUFBQUFOQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFCQUFBQURnQUFBUDhBQUFBRUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBRUFBQUFMQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFCQUFBQURnQUFBQVFBQUFBQkFBQUEvd0FBQUFRQUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFJQUFBQUtBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFBUUFBQUE4QUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEd0FBQUFJQUFBQUtBQUFBQkFBQUFBVUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQVlBQUFEL0FBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFBRUFBQUFDUUFBQVA4QUFBQU1BQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQWdBQUFQOEFBQUFJQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQUhBQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFjQUFBRC9BQUFBQWdBQUFBUUFBQUFOQUFBQS93QUFBQWdBQUFBREFBQUFEd0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQU1BQUFBUEFBQUFBQUFBQUFVQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUF3QUFBQThBQUFBQkFBQUFDZ0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFEQUFBQUR3QUFBQUVBQUFBS0FBQUFBQUFBQUFVQUFBQUVBQUFBQUFBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFFQUFBQUFRQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ3dBQUFBRUFBQUFPQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QkIxQ2NMRlFjQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QkI5Q2NMRlFjQUFBQUVBQUFBQWdBQUFQOEFBQUFBQUFBQS93QkJsQ2dMMlFFSEFBQUFCQUFBQUFJQUFBQUFBQUFBRFFBQUFBUUFBQUFJQUFBQUJBQUFBQU1BQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBSkFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBTUFBQUFFQUFBQUJnQUFBQVFBQUFBSkFBQUFCQUFBQUF3QUFBQUFBQUFBQkFBQUFBQUFBQUFFQUFBQUNBQUFBQXdBQUFBSUFBQUFEQUFBQUFBQUFBQUVBQUFBQUFBQUFBUUFBQUFJQUFBQURBQUFBQWdBQUFBTUFFSDRLUXNGQkFBQUFBUUFRWWdxQ3lVRUFBQUFCQUFBQUFnQUFBQUlBQUFBREFBQUFBd0FBQUFJQUFBQUNBQUFBQXdBQUFBTUFFR3hMZ3ZJQmdFQ0F3UUZCZ2NJQ1FvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEhoOGdJU0lqSkNVbUp5Z3BLaXNzTFM0dk1ERXlNelExTmpjNE9UbzdQRDArUDBCQlFrTkVSVVpIU0VsS1MweE5UazlRVVZKVFZGVldWMWhaV2x0Y1hWNWZZR0ZpWTJSbFptZG9hV3ByYkcxdWIzQnhjbk4wZFhaM2VIbDZlM3g5Zm4rQWdZS0RoSVdHaDRpSmlvdU1qWTZQa0pHU2s1U1ZscGVZbVpxYm5KMmVuNkNob3FPa3BhYW5xS21xcTZ5dHJxK3dzYkt6dExXMnQ3aTV1cnU4dmI2L3dNSEN3OFRGeHNmSXljckx6TTNPejlEUjB0UFUxZGJYMk5uYTI5emQzdC9nNGVMajVPWG01K2pwNnV2czdlN3Y4UEh5OC9UMTl2ZjQrZnI3L1AzKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUVBQUFBRUFBQUFCUUFBQUFJQUFBQURBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQXdBQUFBTkFBQUFDZ0FBQUFzQUFBQU9BQUFBRHdBQUFBQUFBQUFCQUFBQUFRQkJoRFVMSVFFQUFBQUJBQUFBQVFBQUFBRUFBQUFDQUFBQUFnQUFBQUVBQUFBQ0FBQUFBZ0JCdERVTEJRVUFBQUFFQUVIRU5RdkpCZ2NBQUFBRUFBQUFBZ0FBQUFRQUFBQUJBQUFBQkFBQUFBUUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUFBQUFBQUEwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQUFRQUFBQU1BQUFBQkFBQUFBc0FBQUFFQUFBQURnQUFBQUFBQUFBUkFBQUFCQUFBQUJBQUFBQUFBQUFBRXdBQUFBUUFBQUFTQUFBQUFBQUFBQlVBQUFBRUFBQUFGQUFBQUFBQUFBQVhBQUFBQkFBQUFCWUFBQUFCQUFBQUNnQUFBQUVBQUFBTEFBQUFCQUFBQUFBQUFBQUVBQUFBQVFBQUFBRUFBQUFPQUFBQUFRQUFBQThBQUFBRUFBQUFCQUFBQUFRQUFBQUZBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBQVFBQUFBSUFBQUFCQUFBQUFrQUFBQUVBQUFBQmdBQUFBUUFBQUFIQUFBQUJBQUFBQXdBQUFBRUFBQUFEUUFBQUFFQUFBQVNBQUFBQVFBQUFCTUFBQUFFQUFBQUVBQUFBQVFBQUFBUkFBQUFBUUFBQUJZQUFBQUJBQUFBRndBQUFBUUFBQUFVQUFBQUJBQUFBQlVBQUFBQkFBQUFDd0FBQUFFQUFBQU9BQUFBQkFBQUFBRUFBQUQvQUFBQUJBQUFBQUVBQUFBUEFBQUFBZ0FBQUFvQUFBQUVBQUFBQlFBQUFQOEFBQUFBQUFBQUJBQUFBQU1BQUFBRUFBQUFCZ0FBQUFRQUFBQUpBQUFBL3dBQUFBd0FBQUFFQUFBQUJ3QUFBUDhBQUFBQ0FBQUFCQUFBQUEwQUFBRC9BQUFBQ0FBQUFBRUFBQUFUQUFBQUFnQUFBQklBQUFBRUFBQUFFUUFBQVA4QUFBQVFBQUFBQVFBQUFCY0FBQUFDQUFBQUZnQUFBQVFBQUFBVkFBQUEvd0FBQUJRQUFBQURBQUFBRHdBQUFBRUFBQUFLQUFBQUFBQUFBQVVBQUFBRUFBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBQUVBQUFBQWdBQUFBQUFBQUFOQUFBQUJBQUFBQWdBQUFBRUFBQUFBd0FBQUFRQUFBQUdBQUFBQkFBQUFBa0FBQUFFQUFBQURBQUFBQU1BQUFBVEFBQUFBUUFBQUJJQUFBQUFBQUFBRVFBQUFBUUFBQUFRQUFBQUF3QUFBQmNBQUFBQkFBQUFGZ0FBQUFBQUFBQVZBQUFBQkFBQUFCUUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQURBQUFBQXdBQUFBQUFBQUFCQUFBQUFnQUFBQU1BQUFBRUFBQUFCUUFBQUFZQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QVFaWThDeTRCQVFFQkFRRUNBZ0lDQWdJREF3TURBd01FQkFRRUJBUUZCUVVGQlFVR0JnWUdCZ1lIQndjSEJ3Y0lDQWdJQUVIUVBBdEZDZ0FBQUEwQUFBQVFBQUFBQ3dBQUFBNEFBQUFTQUFBQURRQUFBQkFBQUFBVUFBQUFEZ0FBQUJJQUFBQVhBQUFBRUFBQUFCUUFBQUFaQUFBQUVnQUFBQmNBQUFBZEFFR2hQUXN6QVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURBRUhrUFF2TUFnRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhRQUFBQjRBQUFBZkFBQUFJQUFBQUNBQUFBQWhBQUFBSWdBQUFDSUFBQUFqQUFBQUl3QUFBQ1FBQUFBa0FBQUFKUUFBQUNVQUFBQWxBQUFBSmdBQUFDWUFBQUFtQUFBQUp3QUFBQ2NBQUFBbkFBQUFKd0FBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFMeDhQQUJjYkhSNEhDdzBPSnlzdExoQURCUW9NRXhVYUhDTWxLaXdCQWdRSUVSSVVHQVlKRmhrZ0lTSWtLQ1lwQUJBQkFnUUlJQU1GQ2d3UEx3Y0xEUTRHQ1I4akpTb3NJU0lrS0NjckxTNFJFaFFZRXhVYUhCY2JIUjRXR1NZcEFMQXRCRzVoYldVQjZ3TmtBQVp0WlcxamNIa0JCbkpsYzJsNlpRSUNaaklEQW1ZekJBRm1CUUptTlFZQ1pqWUhBbVkzQ0FKbU9Ba0NaamtLQVdVTEEyWXhNUXdEWmpFeURRTm1NVE1PQTJZeE5BOERaakUxRUFObU1UWVJBMll4TnhJRFpqRTRFd05tTVRrVUEyWXlNQlVEWmpJeEZnTm1NaklYQTJZeU14Z0RaakkwR1FObU1qVWFBMll5TmhzRFpqSTNIQU5tTWpnZEEyWXlPUjREWmpNd0h3Tm1NekVnQTJZek1pRURaak16SWdObU16UWpBMll6TlNRRFpqTTJKUU5tTXpjbUEyWXpPQ2NEWmpNNUtBTm1OREFwQTJZME1Tb0RaalF5S3dObU5ETXNBMlkwTkMwRFpqUTFMZ05tTkRZdkEyWTBOekFEWmpRNE1RTm1ORGt5QTJZMU1ETURaalV4TkFObU5USTFBMlkxTXpZRFpqVTBOd05tTlRVNEEyWTFOamtEWmpVM09nTm1OVGc3QTJZMU9Ud0Raall3UFFObU5qRStBMlkyTWo4RFpqWXpRQU5tTmpSQkEyWTJOVUlEWmpZMlF3Tm1OamRFQTJZMk9FVURaalk1UmdObU56QkhBMlkzTVVnRFpqY3lTUU5tTnpOS0EyWTNORXNEWmpjMVRBTm1OelpOQTJZM04wNERaamM0VHdObU56bFFBMlk0TUZFRFpqZ3hVZ05tT0RKVEEyWTRNMVFEWmpnMFZRTm1PRFZXQTJZNE5sY0RaamczV0FObU9EaFpBMlk0T1ZvRFpqa3dXd05tT1RGY0EyWTVNbDBEWmprelhnTm1PVFJmQTJZNU5XQUJhV0VCWjJJQlpHTUVaakV3TVFLNktXUUFBd0FBQVFBQ0FBRUJBQUFDQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1EQ1FBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FRSUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNGQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1HR0FBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFV0Eyd3lNaGNEYkRJekJ3WUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVSUJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlFrUUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlFvTUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVMQXdBQ2NEQUJBbkF4QWdKc01nd1JBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRFFZQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05BVUNiRFVPRUFBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVQQlFBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEVBc0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQVJBZ0FDY0RBQkFuQXhFZzhBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkJNREFBSndNQUVDYkRFQ0Ftd3lGQU1BQW5Bd0FRSndNUUlDYkRJVkJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlJZbUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2NEUUZBbkExQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlJBRGJERTJFUU5zTVRjU0Eyd3hPQk1EYkRFNUZBTnNNakFWQTJ3eU1SWURiREl5RndOc01qTVlBMnd5TkJrRGJESTFHZ05zTWpZYkEyd3lOeHdEYkRJNEhRTnNNamtlQTJ3ek1COERiRE14SUFOc016SWhBMnd6TXlJRGJETTBJd05zTXpVa0Eyd3pOaVVEYkRNM0Z3TUFBbkF3QVFKd01RSUNjRElZRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFWkVnQUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0doWUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhHd1lBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVWNCd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlkQlFBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEhnVUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQjhCQUFKd01DQUVBQUp3TUFFQ2NERUNBbXd5QXdKc015RWJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVGQU5zTWpBVkEyd3lNUllEYkRJeUZ3TnNNak1ZQTJ3eU5Ca0RiREkxR2dOc01qWWlGUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0l4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE55UVVBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVKUThBQW5Bd0FRSndNUUlDY0RJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNZREFBSndNQUVDYkRFQ0Ftd3lKdzhBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNnQ0FBSndNQUVDYkRFcEVRQUNjREFCQW5BeEFnSndNZ01DY0RNRUFuQTBCUUp3TlFZQ2NEWUhBbkEzQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaW9IQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmlzUEFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUXNCQUFDY0RBQkFuQXhBZ0pzTWdNQ2JETXRCUUFDY0RBQkFuQXhBZ0p3TWdNQ2JETUVBbXcwTGdNQUFuQXdBUUpzTVFJQ2JESXZBd0FDY0RBQkFtd3hBZ0pzTWpBSkFBSndNQUVDY0RFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NE1SWUFBbkF3QVFKd01RSUNiRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhNZ29BQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NU13UUFBbkF3QVFKc01RSUNiRElEQW13ek5BUUFBbkF3QVFKc01RSUNiRElEQW13ek5ROEFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hORFlGQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRM0JRQUNjREFCQW5BeEFnSnNNZ01DYkRNRUFtdzBPQWNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyT1FjQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNiRFVHQW13Mk9nY0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJPd2NBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyUEFVQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05EMEZBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFErRHdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMFB4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE4wQUhBQUp3TUFFQ2NERUNBbXd5QXdKc013UUNiRFFGQW13MUJnSnNOa0VRQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVUlKQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0UXdnQUFuQXdBUUp3TVFJQ2JESURBbXd6QkFKc05BVUNiRFVHQW13MkJ3SnNOMFFRQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVVVUQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0p3TmdjQ2NEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9FWVJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFtdzRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyUnhNQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW5BMkJ3SndOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRTQmNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NjRGdKQW5BNUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkE4RGJERTFFQU5zTVRZUkEyd3hOeElEYkRFNEV3TnNNVGtVQTJ3eU1CVURiREl4RmdOc01qSkpRd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0ZRTnNNakVXQTJ3eU1oY0RiREl6R0FOc01qUVpBMnd5TlJvRGJESTJHd05zTWpjY0Eyd3lPQjBEYkRJNUhnTnNNekFmQTJ3ek1TQURiRE15SVFOc016TWlBMnd6TkNNRGJETTFKQU5zTXpZbEEyd3pOeVlEYkRNNEp3TnNNemtvQTJ3ME1Da0RiRFF4S2dOc05ESXJBMncwTXl3RGJEUTBMUU5zTkRVdUEydzBOaThEYkRRM01BTnNORGd4QTJ3ME9USURiRFV3TXdOc05URTBBMncxTWpVRGJEVXpOZ05zTlRRM0EydzFOVGdEYkRVMk9RTnNOVGM2QTJ3MU9Ec0RiRFU1UEFOc05qQTlBMncyTVQ0RGJEWXlQd05zTmpOQUEydzJORUVEYkRZMVFnTnNOalpLRXdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UaExGQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPVXdIQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmswTkFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1rNExBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFFGQW13MUJnSnNOZ2NDYkRjSUFtdzRDUUpzT1FvRGJERXdUd1FBQW5Bd0FRSndNUUlDYkRJREFtd3pVQTRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTlJEQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeFVoTUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0VXlBQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW13MkJ3SnNOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRFd05zTVRrVUEyd3lNQlVEYkRJeEZnTnNNaklYQTJ3eU14Z0RiREkwR1FOc01qVWFBMnd5TmhzRGJESTNIQU5zTWpnZEEyd3lPUjREYkRNd0h3TnNNekZVRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpGVkN3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1GWUhBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSnNObGNxQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9CTURiREU1RkFOc01qQVZBMnd5TVJZRGJESXlGd05zTWpNWUEyd3lOQmtEYkRJMUdnTnNNalliQTJ3eU54d0RiREk0SFFOc01qa2VBMnd6TUI4RGJETXhJQU5zTXpJaEEyd3pNeUlEYkRNMEl3TnNNelVrQTJ3ek5pVURiRE0zSmdOc016Z25BMnd6T1NnRGJEUXdLUU5zTkRGWUV3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0VnTnNNVGhaQ0FBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNXZzRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTmJCQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETmNDUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNiRFlIQW13M0NBSnNPRjBJQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEZGVDQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M1h3d0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVdBQVlRZ0FBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FtdzJCd0pzTjJJREFBSndNQUVDY0RFQ0Ftd3lZdzBBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5IixVPWE7Ri5oMjY0TW9kdWxlPW5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoVS5kZWNvZGUoTCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBZPUYscT1BPT4oSSxnLEIpPT57QS5IRUFQVTguY29weVdpdGhpbihJLGcsZytCKX07ZnVuY3Rpb24gSyhBLEkpe2NvbnN0IGc9QSVJO3JldHVybiBnPjA/QStJLWc6QX1jb25zdCBIPUE9Pkk9Pntjb25zdCBnPUEuSEVBUFU4Lmxlbmd0aCxCPTY1NTM2LFE9MjE0NzQ4MzY0ODtpZihJPlEpcmV0dXJuITE7Y29uc3QgQz0xNjc3NzIxNjtmb3IobGV0IEQ9MTtEPD00O0QqPTIpe2xldCBFPWcqKDErLjIvRCk7RT1NYXRoLm1pbihFLEkrMTAwNjYzMjk2KTtjb25zdCB3PU1hdGgubWluKFEsSyhNYXRoLm1heChDLEksRSksQikpO3RyeXtjb25zdHttZW1vcnk6b309QTtvLmdyb3cody1vLmJ1ZmZlci5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpO2NvbnN0e2J1ZmZlcjpOfT1vO3JldHVybiBBLkhFQVA4PW5ldyBJbnQ4QXJyYXkoTiksQS5IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoTiksQS5IRUFQMzI9bmV3IEludDMyQXJyYXkoTiksITB9Y2F0Y2h7fX1yZXR1cm4hMX0sUj02NTUzNixjPTUyNTE3OTIsZD04NzUyLHQ9MTY3NzcyMTY7Y2xhc3MgaXtjb25zdHJ1Y3Rvcigpe3RoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLHRoaXMucGljPW5ldyBVaW50OEFycmF5KDApO2NvbnN0IEk9bmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7aW5pdGlhbDp0L1IsbWF4aW11bToyMTQ3NDgzNjQ4L1J9KSxnPXttZW1vcnk6SSxIRUFQODpuZXcgSW50OEFycmF5KEkuYnVmZmVyKSxIRUFQVTg6bmV3IFVpbnQ4QXJyYXkoSS5idWZmZXIpLEhFQVAzMjpuZXcgSW50MzJBcnJheShJLmJ1ZmZlcil9O2cuSEVBUDMyW2Q+PjJdPWM7Y29uc3R7ZXhwb3J0czpCfT1uZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UoWS5oMjY0TW9kdWxlLHtoMjY0OnttZW1vcnk6SSxtZW1jcHk6cShnKSxyZXNpemU6SChnKX19KTt0aGlzLm1lbW9yeT1nLHRoaXMuYXNtPUIsdGhpcy5wU3RvcmFnZT1CLmgyNjRhbGxvYygpLHRoaXMucFdpZHRoPUIubWFsbG9jKDQpLHRoaXMucEhlaWdodD1CLm1hbGxvYyg0KSx0aGlzLnBQaWN0dXJlPUIubWFsbG9jKDQpLHRoaXMuZGVjQnVmZmVyPUIubWFsbG9jKDEwMjQqMTAyNCksQi5pbml0KHRoaXMucFN0b3JhZ2UsMCl9ZGVjb2RlKEkpe2NvbnN0e21lbW9yeTpnLGFzbTpCfT10aGlzO2cuSEVBUFU4LnNldChJLHRoaXMuZGVjQnVmZmVyKTtjb25zdCBRPUIuZGVjb2RlKHRoaXMucFN0b3JhZ2UsdGhpcy5kZWNCdWZmZXIsSS5ieXRlTGVuZ3RoLHRoaXMucFBpY3R1cmUsdGhpcy5wV2lkdGgsdGhpcy5wSGVpZ2h0KTtpZihRPT09aS5QSUNfUkRZKXtjb25zdCBDPXRoaXMud2lkdGg9Zy5IRUFQMzJbdGhpcy5wV2lkdGg+Pj4yXSxEPXRoaXMuaGVpZ2h0PWcuSEVBUDMyW3RoaXMucEhlaWdodD4+PjJdLEU9Zy5IRUFQMzJbdGhpcy5wUGljdHVyZT4+Ml0sdz1DKkQqMy8yO3RoaXMucGljPWcuSEVBUFU4LnN1YmFycmF5KEUsRSt3KX1yZXR1cm4gUX19dmFyIGI9eS5IMjY0RGVjb2Rlcj1pO2kuUkRZPTAsaS5QSUNfUkRZPTEsaS5IRFJTX1JEWT0yLGkuRVJST1I9MyxpLlBBUkFNX1NFVF9FUlJPUj00LGkuTUVNQUxMT0NfRVJST1I9NTtmdW5jdGlvbiB4KEEpe3JldHVybiBVaW50OEFycmF5LmZyb20oYXRvYihBKSxJPT5JLmNoYXJDb2RlQXQoMCkpfWNvbnN0IHM9c2VsZixrPW5ldyBiLG09Si5zZWNvbmQvNTthZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixBPT57Y29uc3R7dGltZXN0YW1wOkksZmxhZ3M6ZyxpbmRleDpCfT1BLmRhdGEsUT1EYXRlLm5vdygpLUk7aWYoUT5tJiZnIT09Myl7TShgRnJhbWUgaXMgJHtRfW1zIGxhdGUsIGRyb3BwaW5nYCxCKTtyZXR1cm59Y29uc3QgQz14KEEuZGF0YS5lbmNvZGVkRnJhbWUpLEQ9ay5kZWNvZGUoQyk7dHJ5e2lmKEQhPT0xKXtNKGBmYWlsZWQgdG8gZGVjb2RlIGZyYW1lLCBzdGF0dXM6ICR7bihEKX1gLEIsQyk7cmV0dXJufWNvbnN0e3BpYzpFLGhlaWdodDp3LHdpZHRoOm99PWs7aWYoRS5sZW5ndGg9PT0wfHx3PT09MHx8bz09PTApe00oImRlY29kZWQgZnJhbWUgaGFzIG5vIGRhdGEiLEIsQyk7cmV0dXJufWNvbnN0IE49bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KEUpO3MucG9zdE1lc3NhZ2Uoe3RpbWVzdGFtcDpBLmRhdGEudGltZXN0YW1wLHl1djpOLGhlaWdodDp3LHdpZHRoOm8saW5kZXg6Qn0pfWNhdGNoKEUpe00oRSxCKX19KTtmdW5jdGlvbiBNKEEsSSxnKXtzLnBvc3RNZXNzYWdlKHtlcnJvcjpgaDI2NCBkZWNvZGVyIHdvcmtlcjogJHtBfWAsaW5kZXg6SX0pfWZ1bmN0aW9uIG4oQSl7c3dpdGNoKEEpe2Nhc2UgMDpyZXR1cm4iUkRZIjtjYXNlIDE6cmV0dXJuIlBJQ19SRFkiO2Nhc2UgMjpyZXR1cm4iSERSU19SRFkiO2Nhc2UgMzpyZXR1cm4iRVJST1IiO2Nhc2UgNDpyZXR1cm4iUEFSQU1fU0VUX0VSUk9SIjtjYXNlIDU6cmV0dXJuIk1FTUFMTE9DX0VSUk9SIjtkZWZhdWx0OnJldHVybiBBLnRvU3RyaW5nKCl9fX0pfSkoKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9dWktc2RrLXJlYWx0aW1lLXBsYXllci1jb3JlLXdvcmtlci51bWQtNjhhNmUxNmEuanMubWFwCg==",blob$2=typeof window<"u"&&window.Blob&&new Blob([atob(encodedJs$2)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$2(){let s;try{if(s=blob$2&&(window.URL||window.webkitURL).createObjectURL(blob$2),!s)throw"";return new Worker(s)}catch{return new Worker("data:application/javascript;base64,"+encodedJs$2)}finally{s&&(window.URL||window.webkitURL).revokeObjectURL(s)}}const millisecond$3=1,second$3=1e3,minute$3=60*second$3,hour$3=60*minute$3,day$3=24*hour$3,week$3=7*day$3,month$3=30*day$3,year$3=365*day$3,duration$3={millisecond:millisecond$3,second:second$3,minute:minute$3,hour:hour$3,day:day$3,week:week$3,month:month$3,year:year$3};function filterDataByTime(s,o,et){const tt=o.getTime(),nt=et.getTime();return s.map(rt=>({...rt,points:rt.points.filter(([it])=>it>=tt&&itrt.length>0)}function filterDataByType(s,o){return s.filter(et=>et.type===o)}class StoreCache{constructor({capacity:o,timeout:et}={}){he(this,"entries",new Map),he(this,"metadata",new Map),he(this,"capacity"),he(this,"timeout"),this.capacity=o||1e4,this.timeout=et||duration$3.minute}get(o,et){const tt=this.keyToCacheKey(o),nt=this.entries.get(tt),rt=this.metadata.get(tt);return(nt===void 0||rt&&rt?.expiration.getTime()this.capacity&&this.deleteOldestEntry()}clear(){this.entries.clear(),[...this.metadata.values()].forEach(o=>o.generating=!1)}clearKey(o){this.metadata.delete(o),this.entries.delete(o)}keyToCacheKey(o){return JSON.stringify(o)}deleteOldestEntry(){if(this.metadata.size<1)return;const[o]=[...this.metadata.entries()].reduce(([et,tt],[nt,rt])=>rt.expiration.getTime(){et.then(rt=>{const it=this.metadata.get(tt);!(it!=null&&it.generating)||this.set(o,rt)})},0)}}function roundToNearestSecond(s){return new Date(Math.round(s.getTime()/1e3)*1e3)}class QueryStore{constructor(){he(this,"queryStoreCache",new StoreCache({capacity:1e4,timeout:20*duration$3.second})),he(this,"liveQueryStoreCache",new StoreCache({capacity:1e4,timeout:1*duration$3.second}))}moduleQuery(o,et,tt,nt,rt,it=!1){const ot={...o,names:[et],types:[tt],start:nt.toISOString(),end:rt.toISOString(),latestOnly:it},st=this.query(ot);return st===void 0||st==="too much data"?st:filterDataByType(st,tt)}query(o){const et=new Date(o.end)>addSeconds(new Date,-20),tt=startOfMinute(new Date(o.start)).toISOString(),nt=o.latestOnly?addSeconds(roundToNearestSecond(new Date(o.end)),5).toISOString():addMinutes(roundToNearestMinutes(new Date(o.end)),1).toISOString();let rt;return et?rt=this.liveQueryCache({...o,start:tt,end:nt}):rt=this.queryCache({...o,start:tt,end:nt}),!rt||rt==="too much data"||o.latestOnly?rt:filterDataByTime(rt,new Date(tt),new Date(nt))}queryCache(o){return this.queryStoreCache.get(o,async()=>{try{return await Fleet.queryTelemetry(o)}catch(et){throw et}})}liveQueryCache(o){return this.liveQueryStoreCache.get(o,async()=>{try{return await Fleet.queryTelemetry(o)}catch(et){throw et}})}}const debug=new URLSearchParams(window.location.search).get("debug")==="true";class BasicUniverseDataConnector{constructor(){he(this,"subscriberSources",new Map),he(this,"subscriberLoaders",new Map),he(this,"subscriberDistributorsLoaders",new Map),he(this,"mapRealtimeConnections",new Map),he(this,"lastQueriedHistoricTime"),he(this,"time"),he(this,"timeChangeListeners",[]),he(this,"queryStore",new QueryStore),this.time="live";const o=async()=>{if(Array.from(this.subscriberLoaders.keys()).length>0){const et=[],tt=this.generateTelemetryFilter(),nt=this.queryStore.query(tt);if(!nt||nt==="too much data")return;nt.forEach(ot=>{et.push(ot.deviceId)});const rt=Array.from(new Set(et)),it=[];rt.forEach(ot=>{const st=this.subscriberLoaders.get(ot);st&&st.forEach(at=>{it.push(at(nt))})}),(await Promise.all(it)).forEach(ot=>{if(ot.data){const st=this.subscriberDistributorsLoaders.get(ot.deviceId);if(st){const at=st.get(ot.sourceId);at&&at.forEach(lt=>{lt(ot.data)})}}})}setTimeout(()=>o(),0)};setTimeout(()=>o(),0)}setTime(o){o!=="live"&&(this.time=o),this.timeChangeListeners.forEach(et=>et(o))}getTime(){return this.time}getTimeMs(){return this.time==="live"?new Date().getTime():this.time.getTime()}generateTelemetryFilter(){const o=Array.from(this.subscriberSources.keys()),et=[];return o.forEach(tt=>{const nt=this.subscriberSources.get(tt);nt&&Array.from(nt?.values()).forEach(rt=>{rt.sourceType==="telemetry"&&et.push(rt.streamName)})}),{deviceIds:o,names:et,start:subDays(new Date,20).toISOString(),end:new Date().toISOString(),latestOnly:!0}}async sendRtcMessage(o,et){await this.createRealtimeConnection(o);const tt=this.mapRealtimeConnections.get(o);tt&&tt!=="loading"&&tt&&tt.sendRealtimeMessage(et,{channelLabel:"stream.reliable"})}async createRealtimeConnection(o,et=signaling_pb.SessionType.TELEOP){const tt=this.mapRealtimeConnections.get(o);if(tt===void 0){this.mapRealtimeConnections.set(o,"loading");const nt=o.startsWith("http");console.log("Creating {} realtime connection",nt?"peer":"cloud");let rt;nt?rt=new PeerDevice(o):rt=await Fleet.getDevice(o),await rt.startRealtimeConnection(et),debug&&rt.addRealtimeListener((it,ot)=>{console.log("received message from peer",it,ot)}),this.mapRealtimeConnections.set(o,rt)}else tt==="loading"&&await new Promise(nt=>{const rt=setInterval(()=>{const it=this.mapRealtimeConnections.get(o);it&&it!=="loading"&&(clearInterval(rt),nt())},100)})}addRemovableTelemetrySubscription(o,et,tt,nt){let rt=this.subscriberLoaders.get(o);rt||(rt=new Map,this.subscriberLoaders.set(o,rt)),rt.get(et.id)||rt.set(et.id,tt);let it=this.subscriberDistributorsLoaders.get(o);it||(it=new Map,this.subscriberDistributorsLoaders.set(o,it));const ot=it.get(et.id);ot?ot.push(nt):it.set(et.id,[nt]);let st=this.subscriberSources.get(o);return st||(st=new Map,this.subscriberSources.set(o,st)),st.set(et.id,et),()=>{const at=this.subscriberLoaders.get(o);at&&at.delete(et.id);const lt=this.subscriberDistributorsLoaders.get(o);if(lt){const dt=lt.get(et.id);if(dt){const ht=dt.indexOf(nt);ht>-1&&dt.splice(ht,1)}}const ut=this.subscriberSources.get(o);ut&&ut.delete(et.id)}}createH264Drawer(){return new H264BytestreamCanvasDrawer(()=>new WorkerWrapper$2,()=>{},()=>{})}async sendCommand(o,et,tt){const nt=this.mapRealtimeConnections.get(o);if(nt==="loading"||nt===void 0)throw new Error("Device is not ready or doesnt exist");await nt.sendCommand(et,tt)}async sendRealtimePose(o,et,tt){const nt=distExports.createRtcStreamMessage({entityId:o,streamName:et,streamType:"pose"},{pose:tt},"vision");await this.sendRtcMessage(o,nt)}async sendRealtimeBoolean(o,et,tt){const nt=distExports.createRtcStreamMessage({entityId:o,streamName:et,streamType:"boolean"},{boolean:tt});await this.sendRtcMessage(o,nt)}async sendRealtimeBitset(o,et,tt){const nt=distExports.createRtcStreamMessage({entityId:o,streamName:et,streamType:"bitset"},{bitset:{bits:tt.keys.map((rt,it)=>({key:rt,value:tt.values[it]}))}});await this.sendRtcMessage(o,nt)}async getUrdfs(o){const et=await(await Fleet.getDevice(o)).getConfiguration();return!et.urdfFiles||et.urdfFiles.length===0?[]:[await Fleet.getFileUrl(et.urdfFiles[0])]}async getTelemetryStreams(o){throw new Error("Not implemented")}async getTeleopRosStreams(o){throw new Error("Not implemented")}async getHardwareStreams(o){throw new Error("Not implemented")}addInteraction(o){throw new Error("Method not implemented.")}removeInteraction(o){throw new Error("Method not implemented.")}getInteractions(){throw new Error("Method not implemented.")}addInteractionsChangedListener(o){throw new Error("Method not implemented.")}addInteractionListener(o){throw new Error("Method not implemented.")}getRealtimeButtons(o){throw new Error("Method not implemented.")}async getLatestTransformTrees(o){throw new Error("Not implemented")}async getLatestLocations(){return[{streamName:"spotLocation",location:{latitude:45.4661989,longitude:-122.5782375}}]}async getDeviceContexts(){return[]}async getDeviceContextName(o){throw new Error("Not implemented")}async getTelemetryStreamType(o,et){throw new Error("Not implemented")}async getStatistics(){return{rtcDevices:[]}}subscribeDataSourceStateChange(o,et,tt){return()=>{}}async fetchImage(o){const et=new Image;return et.src=o,et.setAttribute("crossOrigin",""),await new Promise(tt=>{et.onload=tt}),et}}class LiveUniverseData extends BasicUniverseDataConnector{constructor(){super()}subscribeToPath(o,et,tt){throw new Error("Method not implemented.")}subscribeToImage(o,et,tt){throw new Error("Method not implemented.")}subcribeToVideo(o,et,tt){throw new Error("Method not implemented.")}subscribeToBitset(o,et,tt){if(et.sourceType==="realtime"){const nt=(rt,it)=>{if(it.payload.bitset){const ot=it.payload.bitset,st={keys:[],values:[]};ot.bits.forEach(at=>{st.keys.push(at.key),st.values.push(at.value)}),tt(st)}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}throw new Error("Telemetry bitset not implemented")}subscribeToOdometry(o,et,tt,nt){if(et.sourceType==="realtime"){const rt=(it,ot)=>{if(ot.payload.odometry){const st=ot.payload.odometry;tt({worldToLocal:st.worldToLocal,pose:{translation:{x:st.pose.translation.x,y:st.pose.translation.y,z:st.pose.translation.z},rotation:{x:st.pose.rotation.x,y:st.pose.rotation.y,z:st.pose.rotation.z,w:st.pose.rotation.w}},covariance:[]})}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,rt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,rt)}}if(et.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(o,et,async rt=>{let it,ot;for(let st=0;st{it.payload.pose&&tt(it.payload.pose)};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}throw new Error("unexpected")}subscribeToNumeric(o,et,tt){if(et.sourceType==="realtime"){const nt=async(rt,it)=>{it.payload.numeric&&tt([[Date.now(),it.payload.numeric.value]])};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}return()=>{}}subscribeToNumericSet(o,et,tt){if(et.sourceType==="telemetry"){let nt;const rt=setInterval(async()=>{nt||(nt=await Fleet.getDevice(o));const it=new Date,ot=new Date(it.getTime()-15*1e3),st=await nt.getTelemetry(et.streamName,ot,it);if(st.length>0){const at=st[0].points;tt(at)}},1e3);return()=>{clearInterval(rt)}}return()=>{}}async subscribeToRealtimeMessages(o,et,tt){await this.createRealtimeConnection(o,signaling_pb.SessionType.OBSERVE);const nt=this.mapRealtimeConnections.get(o);nt&&nt!=="loading"&&(nt.startListeningToRealtimeDataStream({name:et}),nt.addRealtimeListener((rt,it)=>{it.header.stream.streamName===et&&tt(rt,it)}))}async unsubscribeToRealtimeMessages(o,et,tt){const nt=this.mapRealtimeConnections.get(o);nt&&nt!=="loading"&&(nt.stopListeningToRealtimeDataStream({name:et}),nt.removeRealtimeListener(tt))}subscribeToJson(o,et,tt){if(et.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt,it;for(let ot=0;otot.json())),{deviceId:o,sourceId:et.id,data:it}},tt);if(et.sourceType==="realtime"){const nt=async(rt,it)=>{it.payload.jsonString&&tt(JSON.parse(it.payload.jsonString.value))};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}return()=>{}}subscribeToText(o,et,tt){return et.sourceType==="telemetry"?this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt,it;for(let ot=0;otot.text())),{deviceId:o,sourceId:et.id,data:it}},tt):()=>{}}subscribeToPointCloud(o,et,tt){const nt=new Worker(new URL("/assets/PcdLoaderWorker-eaac0b31.js",self.location),{name:"liveuniverseDataPCD"});if(et.sourceType==="telemetry"&&et.streamType!=="localization")return this.addRemovableTelemetrySubscription(o,et,async rt=>{let it,ot;for(let st=0;st{nt.postMessage({url:st}),nt.onmessage=lt=>{lt.data.url===st&&at(lt.data.pcd)}})}return{deviceId:o,sourceId:et.id,data:{worldToLocal:it?.worldToLocal,pcd:ot}}},tt);if(et.sourceType==="telemetry"&&et.streamType==="localization")return this.addRemovableTelemetrySubscription(o,et,async rt=>{let it,ot;for(let st=0;st{nt.postMessage({url:st}),nt.onmessage=lt=>{lt.data.url===st&&at(lt.data.pcd)}})}return{deviceId:o,sourceId:et.id,data:{worldToLocal:it&&it!=null&&it.pointClouds&&it!=null&&it.pointClouds[0]?it.pointClouds[0].worldToLocal:void 0,pcd:ot}}},tt);if(et.sourceType==="realtime"){const rt=async(it,ot)=>{var st;if(ot.payload.pointCloud){const at=Math.random(),lt=await new Promise(ut=>{nt.postMessage({id:at,pointCloud:defined$2(ot.payload.pointCloud).data}),nt.onmessage=dt=>{dt.data.id===at&&ut(dt.data.pcd)}});tt({worldToLocal:(st=ot.payload.pointCloud)==null?void 0:st.world_to_local,pcd:lt})}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,rt),()=>{nt.terminate(),this.unsubscribeToRealtimeMessages(o,et.rosTopicName,rt)}}return()=>{}}subscribeToGeometry(o,et,tt){throw new Error("type error in realtime sdk")}subscribeToJointState(o,et,tt){if(et.sourceType==="realtime"){const nt=(rt,it)=>{it.payload.jointState&&tt(it.payload.jointState)};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}return()=>{}}subscribeToGridMap(o,et,tt){if(et.sourceType==="realtime"){const nt=(rt,it)=>{if(it.payload.jsonString){const ot=JSON.parse(it.payload.jsonString.value);tt({width:ot.info.width,height:ot.info.height,worldToLocal:{translation:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0,w:1}},resolution:ot.info.resolution,origin:{translation:ot.info.origin.position,rotation:ot.info.origin.orientation},data:ot.data,alpha:ot.data.map(()=>255)})}};return this.subscribeToRealtimeMessages(o,et.rosTopicName,nt),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,nt)}}else if(et.sourceType==="telemetry"&&et.streamType==="localization")return this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt,it;for(let ot=0;ot{st.payload.h264VideoFrame&&(nt.receiveEncodedFrame(st.payload.h264VideoFrame),nt&&nt.canvas&&nt.canvas.width>0&&nt.canvas.height>0&&tt(nt.canvas))};return this.subscribeToRealtimeMessages(o,et.rosTopicName,it),()=>{this.unsubscribeToRealtimeMessages(o,et.rosTopicName,it)}}if(et.sourceType==="hardware"){const it=(ot,st)=>{st.payload.h264VideoFrame&&(nt.receiveEncodedFrame(st.payload.h264VideoFrame),nt&&nt.canvas&&nt.canvas.width>0&&nt.canvas.height>0&&tt(nt.canvas))};return this.subscribeToRealtimeMessages(o,et.rtcStreamName,it),()=>{this.unsubscribeToRealtimeMessages(o,et.rtcStreamName,it)}}return()=>{nt.stop()}}subscribeToTransformTree(o,et,tt){if(et.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(o,et,async nt=>{let rt;for(let it=0;it{if(ot==="too much data"||ot===void 0){tt(NoData);return}const st=this.getNearestPoint(ot),at=st[1],lt=st[0];if(lt!==rt){if(rt=lt,at.url){const ut=await fetch(at.url).then(dt=>dt.json());ut.path&<>=rt&&tt(ut.path);return}else if(at.path&<>=rt){tt(at.path);return}}});return()=>{nt.terminate(),it()}}onTimeChange(o){o==="live"?this.liveIntervalHandle=setInterval(()=>{this.findDataForTime(new Date)},300):(this.liveIntervalHandle&&clearInterval(this.liveIntervalHandle),this.findDataForTime(o))}findDataForTime(o){this.timeFinders.forEach(et=>{et(o)})}addFinder(o,et,tt,nt,rt){const it=ot=>{const st=rt?addYears(ot,-1):addSeconds(ot,-60),at=rt?addMilliseconds(ot,1):addSeconds(ot,5),lt=this.queryStore.moduleQuery({deviceIds:[et]},tt,nt,st,at,rt);if(lt===void 0){o(void 0);return}if(lt==="too much data"){o("too much data");return}if(lt.length===0){o(void 0);return}const ut=lt.reduce((dt,ht)=>dt.concat(ht.points),[]);if(!ut||ut.length===0){o(void 0);return}if(rt){const dt=ut[ut.length-1][0],ht=ut.filter(ct=>ct[0]>addSeconds(dt,-15).getTime());o(ht);return}o(ut)};return this.timeFinders.push(it),it}getNearestPoint(o,et=this.time){const tt=et==="live"?addMilliseconds(new Date,1):this.time;let nt=o[0][0],rt=o[0][1];return o.forEach(it=>{const ot=it[0],st=it[1];Math.abs(ot-tt.getTime())et!==o)}subscribeTelemetry(o,et,tt,nt){if(et.sourceType!=="telemetry")throw new Error("Invalid source type");const rt=this.addFinder(nt,o,et.streamName,tt,et.latestDataPoint||!1);return()=>{this.removeFinder(rt)}}subscribeToPointCloud(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const nt=new WorkerWrapper,rt=new WorkerWrapper$1;let it=()=>{},ot=()=>{};return et.streamType==="point cloud"?it=this.subscribeTelemetry(o,et,"point cloud",async st=>{if(st==="too much data"||st===void 0){tt(NoData);return}const at=this.getNearestPoint(st)[1];if(typeof at=="string")tt(JSON.parse(at));else{const{url:lt}=at;nt.postMessage({url:lt}),nt.onmessage=ut=>{ut.data.url===lt&&tt({worldToLocal:at.worldToLocal,pcd:ut.data.pcd})}}}):et.streamType==="localization"&&(ot=this.subscribeTelemetry(o,et,"localization",async st=>{if(st==="too much data"||st===void 0){tt(NoData);return}let at=this.getNearestPoint(st)[1];at.url&&(rt.postMessage({url:at.url}),rt.onmessage=lt=>{if(at=lt.data.response,at.pointClouds){const{url:ut,worldToLocal:dt}=at.pointClouds[0];nt.postMessage({url:ut}),nt.onmessage=ht=>{ht.data.url===ut&&tt({worldToLocal:dt,pcd:ht.data.pcd})}}})})),()=>{nt.terminate(),rt.terminate(),it(),ot()}}subscribeToOdometry(o,et,tt,nt=0){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const rt=new WorkerWrapper$1,it=this.subscribeTelemetry(o,et,"localization",async ot=>{if(ot==="too much data"||ot===void 0){tt(NoData);return}const st=this.getNearestPoint(ot);let at;if(st[1].url)try{at=(await(await fetch(st[1].url)).json()).odometry}catch(lt){throw console.error("Failed to fetch odometry data:",lt),lt}else at=st[1].odometry;if(nt){const lt=ot.filter(ut=>ut[0]<=st[0]&&ut[0]>=st[0]-nt*1e3).map(async ut=>{var dt,ht;if(ut[1].url)try{const ct=await(await fetch(ut[1].url)).json();return[ut[0],(dt=ct.odometry)==null?void 0:dt.pose]}catch(ct){throw console.error("Failed to fetch trail odometry data:",ct),ct}return[ut[0],(ht=ut[1].odometry)==null?void 0:ht.pose]});try{const ut=await Promise.all(lt);tt({worldToLocal:at.worldToLocal,pose:at.pose,trail:ut,covariance:[]});return}catch(ut){throw console.error("Failed to process trail data:",ut),ut}}tt({worldToLocal:at.worldToLocal,pose:at.pose,covariance:[]})});return()=>{rt.terminate(),it()}}subscribeToPose(o,et,tt){throw new Error("Method not implemented for telemetry universe connector.")}subscribeToGeometry(o,et,tt){if(et.sourceType==="telemetry"){const nt=new WorkerWrapper$1,rt=this.subscribeTelemetry(o,et,"json",async it=>{if(it==="too much data"||it===void 0){tt(NoData);return}let ot=this.getNearestPoint(it)[1];ot.startsWith("http")?(nt.postMessage({url:ot}),nt.onmessage=st=>{ot=JSON.stringify(st.data.response),tt(JSON.parse(ot))}):tt(JSON.parse(ot))});return()=>{nt.terminate(),rt()}}else throw new Error("Realtime geometry note supported")}subscribeToJointState(o,et,tt){return this.subscribeToJson(o,et,tt)}subscribeToGridMap(o,et,tt){const nt={};if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const rt=new WorkerWrapper$1,it=this.subscribeTelemetry(o,et,"localization",async ot=>{if(ot==="too much data"||ot===void 0){tt(NoData);return}const st=this.getNearestPoint(ot)[1];if(st.url){if(nt[st.url]){tt(nt[st.url]);return}rt.postMessage({url:st.url}),rt.onmessage=async at=>{const lt=at.data.response.map;if(lt){const ut={width:lt.width,height:lt.height,worldToLocal:lt.worldToLocal,resolution:lt.resolution,origin:lt.origin,url:lt.url};nt[st.url]=JSON.parse(JSON.stringify(ut)),tt(ut)}}}});return()=>{rt.terminate(),it()}}subscribeToVideo(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"video",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}const rt=this.getNearestPoint(nt)[1],{url:it}=rt,ot=this.videoCache.get(it,async()=>new Promise(st=>{const at=document.createElement("video");at.src=it,at.onload=()=>{}}));if(ot){const st=document.createElement("canvas");st.width=ot.videoWidth,st.height=ot.videoHeight;const at=st.getContext("2d");at&&at.drawImage(ot,0,0),tt(st)}})}subscribeToTransformTree(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"transform tree",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(this.getNearestPoint(nt)[1])})}subscribeToLocation(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const nt=this.subscribeToJson(o,et,tt),rt=this.subscribeTelemetry(o,et,"location",async it=>{if(it==="too much data"||it===void 0){tt(NoData);return}const ot=this.getNearestPoint(it)[1];tt(ot)});return()=>{nt(),rt()}}subscribeToJson(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"json",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}let rt=this.getNearestPoint(nt)[1];rt.startsWith("http")&&(rt=await(await fetch(rt)).text()),tt(JSON.parse(rt))})}subscribeToText(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"text",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(this.getNearestPoint(nt)[1])})}subscribeToNumeric(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"numeric",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(nt)})}subscribeToNumericSet(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"numeric set",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}tt(nt)})}subscribeToImage(o,et,tt){if(et.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(o,et,"image",async nt=>{if(nt==="too much data"||nt===void 0){tt(NoData);return}const rt=this.getNearestPoint(nt)[1].url,it=new Image;it.src=rt,it.onload=()=>{const ot=document.createElement("canvas");ot.width=it.width,ot.height=it.height;const st=ot.getContext("2d");st&&(st.drawImage(it,0,0),tt(ot))}})}}distExports.RtcClient;distExports.RtcClientV1;distExports.RtcSignalingClient;distExports.createRtcStreamMessage;const SidebarContent=styled.div` margin-top: 40px; width: 100%; `,ToggleButton=styled.div` @@ -5071,7 +5071,7 @@ overflow: hidden; } `,enableEditMode=window.location.search.includes("editFeature=true"),ZoomControls=s=>{const{zoomIn:o,zoomOut:et,recenter:tt,stopZoom:nt,toggleEditMode:rt}=s;return jsxs$2(Controls$1,{children:[jsxs$2(ControlGroup$1,{children:[jsx$2("button",{type:"button",onMouseDown:o,onMouseUp:nt,children:jsx$2(Icon,{name:"plus"})}),jsx$2("button",{type:"button",onMouseDown:et,onMouseUp:nt,children:jsx$2(Icon,{name:"minus"})})]}),jsx$2(ControlGroup$1,{onClick:tt,children:jsx$2("button",{type:"button",children:jsx$2(Icon,{name:"recenter"})})}),enableEditMode&&jsx$2(ControlGroup$1,{onClick:rt,children:jsx$2("button",{type:"button",children:jsx$2(Icon,{name:"edit",sx:s.isEditing?{stroke:FormantColors.primary}:{}})})})]})},ControlsContext=React$1.createContext({});function useControlsContext(){return React$1.useContext(ControlsContext)}function useControlsContextStates(){const[s,o]=React$1.useState([]),[et,tt]=React$1.useState({isWaypointPanelVisible:!1,isWaypointEditing:!1,selectedWaypoint:null,commandName:void 0,hasPath:!0,hasWaypointsPath:!0,hasPointCloud:!1,pointSize:1.4}),nt=React$1.useRef({waypoints:[]}),rt=React$1.useCallback(it=>tt(ot=>({...ot,...it})),[]);return{waypoints:s,setWaypoints:o,state:et,updateState:rt,store:nt.current}}const isOrthographic=s=>s&&s.isOrthographicCamera,compareBox3=(s,o)=>{const tt=Math.abs(s.min.x-o.min.x),nt=Math.abs(s.min.y-o.min.y),rt=Math.abs(s.max.x-s.min.x-(o.max.x-o.min.x)),it=Math.abs(s.max.y-s.min.y-(o.max.y-o.min.y));return tt<=.1&&nt<=.1&&rt<=.1&&it<=.1},TAU=Math.PI*2,getAbsoluteAngle=(s,o)=>{const et=s-o;return MathUtils.euclideanModulo(et+Math.PI,TAU)-Math.PI},context$1=reactExports.createContext(null);function Bounds({children:s,damping:o=6,fit:et,clip:tt,observe:nt,margin:rt=1.2,eps:it=.01,onFit:ot,debug:st=!1}){const at=reactExports.useRef(null),{camera:lt,invalidate:ut,size:dt,scene:ht,get:ct}=useThree(),pt=reactExports.useRef(null),ft=reactExports.useRef(ot);ft.current=ot;const[gt]=reactExports.useState(()=>({animating:!1,focus:new Vector3,camera:new Vector3,zoom:1})),[yt]=reactExports.useState(()=>({focus:new Vector3,camera:new Vector3,zoom:1})),[Ut]=reactExports.useState(()=>new Box3),Ft=reactExports.useRef(st?Ut:null);useHelper(Ft,Box3Helper,"cyan");const[mt,vt]=reactExports.useState(10),At=reactExports.useMemo(()=>{function Tt(){const Bt=Ut.getSize(new Vector3),xt=Ut.getCenter(new Vector3),Ct=Math.max(Bt.x,Bt.y,Bt.z),kt=isOrthographic(lt)?Ct*4:Ct*rt/(2*Math.tan(Math.PI*lt.fov/180)),Nt=isOrthographic(lt)?Ct*4:kt/lt.aspect,Ot=Math.max(kt,Nt);return{box:Ut,size:Bt,center:xt,distance:Ot}}return{getSize:Tt,refresh(){const Bt=Ut.clone();if(at.current&&at.current.children.length>0){const xt=at.current.children[0],Ct=xt.children.find(Ot=>Ot.userData.name?.startsWith("Maps"))||new Group,kt=xt.children.find(Ot=>Ot.userData.name?.startsWith("Device"))||new Group;Ct.updateWorldMatrix(!0,!0),kt.updateWorldMatrix(!0,!0);const Nt=new Box3;[...Ct.children,...kt.children].forEach(Ot=>{if(Ot.name!=="axis"&&Ot.visible&&!Ot.children.map(Dt=>Dt.name).includes("waypoints-plane")){const Dt=new Box3;Dt.setFromObject(Ot),Nt.union(Dt)}}),Nt.expandByVector(new Vector3(rt,rt,0)),Ut.copy(Nt)}return Ut.isEmpty()&&Ut.setFromCenterAndSize(new Vector3,new Vector3(1,1,0)),compareBox3(Ut,Bt)||At.clip().fit(),this},clip(){const Bt=Tt(),xt=ct().controls;return vt(Bt.distance),xt&&(xt.maxDistance=Bt.distance*2,xt.minDistance=.5),lt.far=Math.max(Bt.distance*100,100),lt.updateProjectionMatrix(),ut(),this},to({position:Bt,target:xt}){gt.camera.copy(lt.position);const{center:Ct}=Tt();return yt.camera.set(...Bt),xt?yt.focus.set(...xt):yt.focus.copy(Ct),o?gt.animating=!0:lt.position.set(...Bt),this},fit(Bt){const xt=ct().controls;if(xt){const Ct=new Box3;Ct.copy(Ut),Bt&&!Bt.isEmpty()&&Ct.copy(Bt);const kt=Ct.getCenter(new Vector3),{distance:Nt}=Tt();xt.moveTo?.(kt.x,kt.y,Nt,!0),xt.setTarget?.(kt.x,kt.y,0,!0),xt.rotate?.(getAbsoluteAngle(0,xt.azimuthAngle||0),-getAbsoluteAngle(-Math.PI,xt.polarAngle||0),!0),xt.fitToBox?.(Ct,!0,{cover:!1,paddingTop:.3,paddingBottom:.3,paddingLeft:.3,paddingRight:.3}).then(()=>{Bt||xt.saveState?.()})}return this}}},[Ut,lt,rt,o,ut]),Lt=()=>{const Tt=new Box3,Bt=new Box3;Tt.copy(Ut),At.refresh(),Bt.copy(Ut),compareBox3(Tt,Bt)||At.clip().fit()},Rt=(Tt,Bt=!1)=>{const Ct=at.current.getObjectByName(Tt),kt=new Box3;Ct&&(kt.expandByObject(Ct),Bt&&(pt.current=Ct?.id,kt.setFromCenterAndSize(kt.getCenter(new Vector3),new Vector3(10,10,0))),At.fit(kt))};useFrame(({controls:Tt})=>{if(pt.current){const xt=at.current.getObjectById(pt.current);if(xt&&Tt){const Ct=Tt,kt=xt.rotation.z;Ct.azimuthAngle=3*Math.PI/2+kt,Ct.moveTo?.(xt.position.x,xt.position.y,0,!0)}}});const St=reactExports.useRef(0);return reactExports.useLayoutEffect(()=>{(nt||St.current++===0)&&(ut(),setTimeout(()=>{Lt()},25))},[dt,tt,et,nt,lt,mt]),reactExports.useEffect(()=>(ht.addEventListener("updateBounds",()=>{At.refresh()}),ht.addEventListener("recenter",()=>{At.fit()}),ht.addEventListener("lookAtTargetId",Tt=>{Rt(Tt.message,Tt.isDevice)}),ht.addEventListener("stopTracking",()=>{pt.current&&(pt.current=null)}),()=>{ht.removeEventListener("updateBounds",At.refresh()),ht.removeEventListener("recenter",()=>{At.fit()}),ht.removeEventListener("stopTracking",()=>{pt.current&&(pt.current=null)}),ht.removeEventListener("lookAtTargetId",Tt=>{Rt(Tt.message)})}),[]),reactExports.useEffect(()=>{const Tt=setTimeout(()=>{Lt()},5e3);return()=>clearTimeout(Tt)},[At]),jsx$2(Fragment$2,{children:jsx$2("group",{ref:at,children:jsx$2(context$1.Provider,{value:At,children:s})})})}function useBounds(){return reactExports.useContext(context$1)}var es={},computeDestinationPoint$1={},getLatitude$1={},constants={};Object.defineProperty(constants,"__esModule",{value:!0});constants.areaConversion=constants.timeConversion=constants.distanceConversion=constants.altitudeKeys=constants.latitudeKeys=constants.longitudeKeys=constants.MAXLON=constants.MINLON=constants.MAXLAT=constants.MINLAT=constants.earthRadius=constants.sexagesimalPattern=void 0;var sexagesimalPattern=/^([0-9]{1,3})°\s*([0-9]{1,3}(?:\.(?:[0-9]{1,}))?)['′]\s*(([0-9]{1,3}(\.([0-9]{1,}))?)["″]\s*)?([NEOSW]?)$/;constants.sexagesimalPattern=sexagesimalPattern;var earthRadius=6378137;constants.earthRadius=earthRadius;var MINLAT=-90;constants.MINLAT=MINLAT;var MAXLAT=90;constants.MAXLAT=MAXLAT;var MINLON=-180;constants.MINLON=MINLON;var MAXLON=180;constants.MAXLON=MAXLON;var longitudeKeys=["lng","lon","longitude",0];constants.longitudeKeys=longitudeKeys;var latitudeKeys=["lat","latitude",1];constants.latitudeKeys=latitudeKeys;var altitudeKeys=["alt","altitude","elevation","elev",2];constants.altitudeKeys=altitudeKeys;var distanceConversion={m:1,km:.001,cm:100,mm:1e3,mi:1/1609.344,sm:1/1852.216,ft:100/30.48,in:100/2.54,yd:1/.9144};constants.distanceConversion=distanceConversion;var timeConversion={m:60,h:3600,d:86400};constants.timeConversion=timeConversion;var areaConversion={m2:1,km2:1e-6,ha:1e-4,a:.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};constants.areaConversion=areaConversion;areaConversion.sqm=areaConversion.m2;areaConversion.sqkm=areaConversion.km2;areaConversion.sqft=areaConversion.ft2;areaConversion.sqyd=areaConversion.yd2;areaConversion.sqin=areaConversion.in2;var getCoordinateKey$1={};Object.defineProperty(getCoordinateKey$1,"__esModule",{value:!0});getCoordinateKey$1.default=void 0;var getCoordinateKey=function s(o,et){return et.reduce(function(tt,nt){if(typeof o>"u"||o===null)throw new Error("'".concat(o,"' is no valid coordinate."));return Object.prototype.hasOwnProperty.call(o,nt)&&typeof nt<"u"&&typeof tt>"u"?(tt=nt,nt):tt},void 0)},_default$D=getCoordinateKey;getCoordinateKey$1.default=_default$D;var toDecimal$1={},isDecimal$1={};Object.defineProperty(isDecimal$1,"__esModule",{value:!0});isDecimal$1.default=void 0;var isDecimal=function s(o){var et=o.toString().trim();return isNaN(parseFloat(et))?!1:parseFloat(et)===Number(et)},_default$C=isDecimal;isDecimal$1.default=_default$C;var isSexagesimal$1={};Object.defineProperty(isSexagesimal$1,"__esModule",{value:!0});isSexagesimal$1.default=void 0;var _constants$e=constants,isSexagesimal=function s(o){return _constants$e.sexagesimalPattern.test(o.toString().trim())},_default$B=isSexagesimal;isSexagesimal$1.default=_default$B;var sexagesimalToDecimal$1={};Object.defineProperty(sexagesimalToDecimal$1,"__esModule",{value:!0});sexagesimalToDecimal$1.default=void 0;var _constants$d=constants,sexagesimalToDecimal=function s(o){var et=new RegExp(_constants$d.sexagesimalPattern).exec(o.toString().trim());if(typeof et>"u"||et===null)throw new Error("Given value is not in sexagesimal format");var tt=Number(et[2])/60||0,nt=Number(et[4])/3600||0,rt=parseFloat(et[1])+tt+nt;return["S","W"].includes(et[7])?-rt:rt},_default$A=sexagesimalToDecimal;sexagesimalToDecimal$1.default=_default$A;var isValidCoordinate$1={},getCoordinateKeys$1={};Object.defineProperty(getCoordinateKeys$1,"__esModule",{value:!0});getCoordinateKeys$1.default=void 0;var _constants$c=constants,_getCoordinateKey$2=_interopRequireDefault$q(getCoordinateKey$1);function _interopRequireDefault$q(s){return s&&s.__esModule?s:{default:s}}function ownKeys$1(s,o){var et=Object.keys(s);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(s);o&&(tt=tt.filter(function(nt){return Object.getOwnPropertyDescriptor(s,nt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread$1(s){for(var o=1;o1&&arguments[1]!==void 0?arguments[1]:{longitude:_constants$c.longitudeKeys,latitude:_constants$c.latitudeKeys,altitude:_constants$c.altitudeKeys},tt=(0,_getCoordinateKey$2.default)(o,et.longitude),nt=(0,_getCoordinateKey$2.default)(o,et.latitude),rt=(0,_getCoordinateKey$2.default)(o,et.altitude);return _objectSpread$1({latitude:nt,longitude:tt},rt?{altitude:rt}:{})},_default$z=getCoordinateKeys;getCoordinateKeys$1.default=_default$z;var isValidLatitude$1={};Object.defineProperty(isValidLatitude$1,"__esModule",{value:!0});isValidLatitude$1.default=void 0;var _isDecimal$2=_interopRequireDefault$p(isDecimal$1),_isSexagesimal$2=_interopRequireDefault$p(isSexagesimal$1),_sexagesimalToDecimal$2=_interopRequireDefault$p(sexagesimalToDecimal$1),_constants$b=constants;function _interopRequireDefault$p(s){return s&&s.__esModule?s:{default:s}}var isValidLatitude=function s(o){return(0,_isDecimal$2.default)(o)?!(parseFloat(o)>_constants$b.MAXLAT||o<_constants$b.MINLAT):(0,_isSexagesimal$2.default)(o)?s((0,_sexagesimalToDecimal$2.default)(o)):!1},_default$y=isValidLatitude;isValidLatitude$1.default=_default$y;var isValidLongitude$1={};Object.defineProperty(isValidLongitude$1,"__esModule",{value:!0});isValidLongitude$1.default=void 0;var _isDecimal$1=_interopRequireDefault$o(isDecimal$1),_isSexagesimal$1=_interopRequireDefault$o(isSexagesimal$1),_sexagesimalToDecimal$1=_interopRequireDefault$o(sexagesimalToDecimal$1),_constants$a=constants;function _interopRequireDefault$o(s){return s&&s.__esModule?s:{default:s}}var isValidLongitude=function s(o){return(0,_isDecimal$1.default)(o)?!(parseFloat(o)>_constants$a.MAXLON||o<_constants$a.MINLON):(0,_isSexagesimal$1.default)(o)?s((0,_sexagesimalToDecimal$1.default)(o)):!1},_default$x=isValidLongitude;isValidLongitude$1.default=_default$x;Object.defineProperty(isValidCoordinate$1,"__esModule",{value:!0});isValidCoordinate$1.default=void 0;var _getCoordinateKeys2=_interopRequireDefault$n(getCoordinateKeys$1),_isValidLatitude=_interopRequireDefault$n(isValidLatitude$1),_isValidLongitude=_interopRequireDefault$n(isValidLongitude$1);function _interopRequireDefault$n(s){return s&&s.__esModule?s:{default:s}}var isValidCoordinate=function s(o){var et=(0,_getCoordinateKeys2.default)(o),tt=et.latitude,nt=et.longitude;if(Array.isArray(o)&&o.length>=2)return(0,_isValidLongitude.default)(o[0])&&(0,_isValidLatitude.default)(o[1]);if(typeof tt>"u"||typeof nt>"u")return!1;var rt=o[nt],it=o[tt];return!(typeof it>"u"||typeof rt>"u"||(0,_isValidLatitude.default)(it)===!1||(0,_isValidLongitude.default)(rt)===!1)},_default$w=isValidCoordinate;isValidCoordinate$1.default=_default$w;Object.defineProperty(toDecimal$1,"__esModule",{value:!0});toDecimal$1.default=void 0;var _isDecimal=_interopRequireDefault$m(isDecimal$1),_isSexagesimal=_interopRequireDefault$m(isSexagesimal$1),_sexagesimalToDecimal=_interopRequireDefault$m(sexagesimalToDecimal$1),_isValidCoordinate=_interopRequireDefault$m(isValidCoordinate$1),_getCoordinateKeys=_interopRequireDefault$m(getCoordinateKeys$1);function _interopRequireDefault$m(s){return s&&s.__esModule?s:{default:s}}function ownKeys(s,o){var et=Object.keys(s);if(Object.getOwnPropertySymbols){var tt=Object.getOwnPropertySymbols(s);o&&(tt=tt.filter(function(nt){return Object.getOwnPropertyDescriptor(s,nt).enumerable})),et.push.apply(et,tt)}return et}function _objectSpread(s){for(var o=1;o"u"||tt===null)){var nt=o[tt];return et===!0?nt:(0,_toDecimal$1.default)(nt)}},_default$u=getLatitude;getLatitude$1.default=_default$u;var getLongitude$1={};Object.defineProperty(getLongitude$1,"__esModule",{value:!0});getLongitude$1.default=void 0;var _constants$8=constants,_getCoordinateKey=_interopRequireDefault$k(getCoordinateKey$1),_toDecimal=_interopRequireDefault$k(toDecimal$1);function _interopRequireDefault$k(s){return s&&s.__esModule?s:{default:s}}var getLongitude=function s(o,et){var tt=(0,_getCoordinateKey.default)(o,_constants$8.longitudeKeys);if(!(typeof tt>"u"||tt===null)){var nt=o[tt];return et===!0?nt:(0,_toDecimal.default)(nt)}},_default$t=getLongitude;getLongitude$1.default=_default$t;var toRad$1={};Object.defineProperty(toRad$1,"__esModule",{value:!0});toRad$1.default=void 0;var toRad=function s(o){return o*Math.PI/180},_default$s=toRad;toRad$1.default=_default$s;var toDeg$1={};Object.defineProperty(toDeg$1,"__esModule",{value:!0});toDeg$1.default=void 0;var toDeg=function s(o){return o*180/Math.PI},_default$r=toDeg;toDeg$1.default=_default$r;Object.defineProperty(computeDestinationPoint$1,"__esModule",{value:!0});computeDestinationPoint$1.default=void 0;var _getLatitude$9=_interopRequireDefault$j(getLatitude$1),_getLongitude$9=_interopRequireDefault$j(getLongitude$1),_toRad$7=_interopRequireDefault$j(toRad$1),_toDeg$4=_interopRequireDefault$j(toDeg$1),_constants$7=constants;function _interopRequireDefault$j(s){return s&&s.__esModule?s:{default:s}}var computeDestinationPoint=function s(o,et,tt){var nt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:6371e3,rt=(0,_getLatitude$9.default)(o),it=(0,_getLongitude$9.default)(o),ot=et/nt,st=(0,_toRad$7.default)(tt),at=(0,_toRad$7.default)(rt),lt=(0,_toRad$7.default)(it),ut=Math.asin(Math.sin(at)*Math.cos(ot)+Math.cos(at)*Math.sin(ot)*Math.cos(st)),dt=lt+Math.atan2(Math.sin(st)*Math.sin(ot)*Math.cos(at),Math.cos(ot)-Math.sin(at)*Math.sin(ut)),ht=(0,_toDeg$4.default)(dt);return(ht<_constants$7.MINLON||ht>_constants$7.MAXLON)&&(dt=(dt+3*Math.PI)%(2*Math.PI)-Math.PI,ht=(0,_toDeg$4.default)(dt)),{latitude:(0,_toDeg$4.default)(ut),longitude:ht}},_default$q=computeDestinationPoint;computeDestinationPoint$1.default=_default$q;var convertArea$1={};Object.defineProperty(convertArea$1,"__esModule",{value:!0});convertArea$1.default=void 0;var _constants$6=constants,convertArea=function s(o){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",tt=_constants$6.areaConversion[et];if(tt)return o*tt;throw new Error("Invalid unit used for area conversion.")},_default$p=convertArea;convertArea$1.default=_default$p;var convertDistance$1={};Object.defineProperty(convertDistance$1,"__esModule",{value:!0});convertDistance$1.default=void 0;var _constants$5=constants,convertDistance=function s(o){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",tt=_constants$5.distanceConversion[et];if(tt)return o*tt;throw new Error("Invalid unit used for distance conversion.")},_default$o=convertDistance;convertDistance$1.default=_default$o;var convertSpeed$1={};Object.defineProperty(convertSpeed$1,"__esModule",{value:!0});convertSpeed$1.default=void 0;var _constants$4=constants,convertSpeed=function s(o){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"kmh";switch(et){case"kmh":return o*_constants$4.timeConversion.h*_constants$4.distanceConversion.km;case"mph":return o*_constants$4.timeConversion.h*_constants$4.distanceConversion.mi;default:return o}},_default$n=convertSpeed;convertSpeed$1.default=_default$n;var decimalToSexagesimal={};Object.defineProperty(decimalToSexagesimal,"__esModule",{value:!0});decimalToSexagesimal.default=void 0;function _slicedToArray$1(s,o){return _arrayWithHoles$1(s)||_iterableToArrayLimit$1(s,o)||_unsupportedIterableToArray$1(s,o)||_nonIterableRest$1()}function _nonIterableRest$1(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$1(s,o){if(s){if(typeof s=="string")return _arrayLikeToArray$1(s,o);var et=Object.prototype.toString.call(s).slice(8,-1);if(et==="Object"&&s.constructor&&(et=s.constructor.name),et==="Map"||et==="Set")return Array.from(s);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray$1(s,o)}}function _arrayLikeToArray$1(s,o){(o==null||o>s.length)&&(o=s.length);for(var et=0,tt=new Array(o);et"u"||!(Symbol.iterator in Object(s)))){var et=[],tt=!0,nt=!1,rt=void 0;try{for(var it=s[Symbol.iterator](),ot;!(tt=(ot=it.next()).done)&&(et.push(ot.value),!(o&&et.length===o));tt=!0);}catch(st){nt=!0,rt=st}finally{try{!tt&&it.return!=null&&it.return()}finally{if(nt)throw rt}}return et}}function _arrayWithHoles$1(s){if(Array.isArray(s))return s}var imprecise=function s(o){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4,tt=Math.pow(10,et);return Math.round(o*tt)/tt},decimal2sexagesimalNext=function s(o){var et=o.toString().split("."),tt=_slicedToArray$1(et,2),nt=tt[0],rt=tt[1],it=Math.abs(Number(nt)),ot=+("0."+(rt||0))*60,st=ot.toString().split("."),at=Math.floor(ot),lt=imprecise(+("0."+(st[1]||0))*60).toString(),ut=lt.split("."),dt=_slicedToArray$1(ut,2),ht=dt[0],ct=dt[1],pt=ct===void 0?"0":ct;return it+"° "+at.toString().padStart(2,"0")+"' "+ht.padStart(2,"0")+"."+pt.padEnd(1,"0")+'"'},_default$m=decimal2sexagesimalNext;decimalToSexagesimal.default=_default$m;var findNearest$1={},orderByDistance$1={},getDistance$2={},robustAcos$1={};Object.defineProperty(robustAcos$1,"__esModule",{value:!0});robustAcos$1.default=void 0;var robustAcos=function s(o){return o>1?1:o<-1?-1:o},_default$l=robustAcos;robustAcos$1.default=_default$l;Object.defineProperty(getDistance$2,"__esModule",{value:!0});getDistance$2.default=void 0;var _getLatitude$8=_interopRequireDefault$i(getLatitude$1),_getLongitude$8=_interopRequireDefault$i(getLongitude$1),_toRad$6=_interopRequireDefault$i(toRad$1),_robustAcos$1=_interopRequireDefault$i(robustAcos$1),_constants$3=constants;function _interopRequireDefault$i(s){return s&&s.__esModule?s:{default:s}}var getDistance$1=function s(o,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;tt=typeof tt<"u"&&!isNaN(tt)?tt:1;var nt=(0,_getLatitude$8.default)(o),rt=(0,_getLongitude$8.default)(o),it=(0,_getLatitude$8.default)(et),ot=(0,_getLongitude$8.default)(et),st=Math.acos((0,_robustAcos$1.default)(Math.sin((0,_toRad$6.default)(it))*Math.sin((0,_toRad$6.default)(nt))+Math.cos((0,_toRad$6.default)(it))*Math.cos((0,_toRad$6.default)(nt))*Math.cos((0,_toRad$6.default)(rt)-(0,_toRad$6.default)(ot))))*_constants$3.earthRadius;return Math.round(st/tt)*tt},_default$k=getDistance$1;getDistance$2.default=_default$k;Object.defineProperty(orderByDistance$1,"__esModule",{value:!0});orderByDistance$1.default=void 0;var _getDistance$5=_interopRequireDefault$h(getDistance$2);function _interopRequireDefault$h(s){return s&&s.__esModule?s:{default:s}}var orderByDistance=function s(o,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_getDistance$5.default;return tt=typeof tt=="function"?tt:_getDistance$5.default,et.slice().sort(function(nt,rt){return tt(o,nt)-tt(o,rt)})},_default$j=orderByDistance;orderByDistance$1.default=_default$j;Object.defineProperty(findNearest$1,"__esModule",{value:!0});findNearest$1.default=void 0;var _orderByDistance=_interopRequireDefault$g(orderByDistance$1);function _interopRequireDefault$g(s){return s&&s.__esModule?s:{default:s}}var findNearest=function s(o,et){return(0,_orderByDistance.default)(o,et)[0]},_default$i=findNearest;findNearest$1.default=_default$i;var getAreaOfPolygon$1={};Object.defineProperty(getAreaOfPolygon$1,"__esModule",{value:!0});getAreaOfPolygon$1.default=void 0;var _toRad$5=_interopRequireDefault$f(toRad$1),_getLatitude$7=_interopRequireDefault$f(getLatitude$1),_getLongitude$7=_interopRequireDefault$f(getLongitude$1),_constants$2=constants;function _interopRequireDefault$f(s){return s&&s.__esModule?s:{default:s}}var getAreaOfPolygon=function s(o){var et=0;if(o.length>2){for(var tt,nt,rt,it=0;itut&&atdt&&(pt-=Math.PI*2)}else st=Math.max(st,ut),at=Math.min(at,lt),ct=ht,pt=dt;return[{latitude:(0,_toDeg$3.default)(st),longitude:(0,_toDeg$3.default)(ct)},{latitude:(0,_toDeg$3.default)(at),longitude:(0,_toDeg$3.default)(pt)}]},_default$f=getBoundsOfDistance;getBoundsOfDistance$1.default=_default$f;var getCenter$1={};Object.defineProperty(getCenter$1,"__esModule",{value:!0});getCenter$1.default=void 0;var _getLatitude$4=_interopRequireDefault$c(getLatitude$1),_getLongitude$4=_interopRequireDefault$c(getLongitude$1),_toRad$3=_interopRequireDefault$c(toRad$1),_toDeg$2=_interopRequireDefault$c(toDeg$1);function _interopRequireDefault$c(s){return s&&s.__esModule?s:{default:s}}var getCenter=function s(o){if(Array.isArray(o)===!1||o.length===0)return!1;var et=o.length,tt=o.reduce(function(ot,st){var at=(0,_toRad$3.default)((0,_getLatitude$4.default)(st)),lt=(0,_toRad$3.default)((0,_getLongitude$4.default)(st));return{X:ot.X+Math.cos(at)*Math.cos(lt),Y:ot.Y+Math.cos(at)*Math.sin(lt),Z:ot.Z+Math.sin(at)}},{X:0,Y:0,Z:0}),nt=tt.X/et,rt=tt.Y/et,it=tt.Z/et;return{longitude:(0,_toDeg$2.default)(Math.atan2(rt,nt)),latitude:(0,_toDeg$2.default)(Math.atan2(it,Math.sqrt(nt*nt+rt*rt)))}},_default$e=getCenter;getCenter$1.default=_default$e;var getCenterOfBounds$1={};Object.defineProperty(getCenterOfBounds$1,"__esModule",{value:!0});getCenterOfBounds$1.default=void 0;var _getBounds=_interopRequireDefault$b(getBounds$1);function _interopRequireDefault$b(s){return s&&s.__esModule?s:{default:s}}var getCenterOfBounds=function s(o){var et=(0,_getBounds.default)(o),tt=et.minLat+(et.maxLat-et.minLat)/2,nt=et.minLng+(et.maxLng-et.minLng)/2;return{latitude:parseFloat(tt.toFixed(6)),longitude:parseFloat(nt.toFixed(6))}},_default$d=getCenterOfBounds;getCenterOfBounds$1.default=_default$d;var getCompassDirection$1={},getRhumbLineBearing$1={};Object.defineProperty(getRhumbLineBearing$1,"__esModule",{value:!0});getRhumbLineBearing$1.default=void 0;var _getLatitude$3=_interopRequireDefault$a(getLatitude$1),_getLongitude$3=_interopRequireDefault$a(getLongitude$1),_toRad$2=_interopRequireDefault$a(toRad$1),_toDeg$1=_interopRequireDefault$a(toDeg$1);function _interopRequireDefault$a(s){return s&&s.__esModule?s:{default:s}}var getRhumbLineBearing=function s(o,et){var tt=(0,_toRad$2.default)((0,_getLongitude$3.default)(et))-(0,_toRad$2.default)((0,_getLongitude$3.default)(o)),nt=Math.log(Math.tan((0,_toRad$2.default)((0,_getLatitude$3.default)(et))/2+Math.PI/4)/Math.tan((0,_toRad$2.default)((0,_getLatitude$3.default)(o))/2+Math.PI/4));return Math.abs(tt)>Math.PI&&(tt>0?tt=(Math.PI*2-tt)*-1:tt=Math.PI*2+tt),((0,_toDeg$1.default)(Math.atan2(tt,nt))+360)%360},_default$c=getRhumbLineBearing;getRhumbLineBearing$1.default=_default$c;Object.defineProperty(getCompassDirection$1,"__esModule",{value:!0});getCompassDirection$1.default=void 0;var _getRhumbLineBearing=_interopRequireDefault$9(getRhumbLineBearing$1);function _interopRequireDefault$9(s){return s&&s.__esModule?s:{default:s}}var getCompassDirection=function s(o,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_getRhumbLineBearing.default,nt=typeof tt=="function"?tt(o,et):(0,_getRhumbLineBearing.default)(o,et);if(isNaN(nt))throw new Error("Could not calculate bearing for given points. Check your bearing function");switch(Math.round(nt/22.5)){case 1:return"NNE";case 2:return"NE";case 3:return"ENE";case 4:return"E";case 5:return"ESE";case 6:return"SE";case 7:return"SSE";case 8:return"S";case 9:return"SSW";case 10:return"SW";case 11:return"WSW";case 12:return"W";case 13:return"WNW";case 14:return"NW";case 15:return"NNW";default:return"N"}},_default$b=getCompassDirection;getCompassDirection$1.default=_default$b;var getDistanceFromLine$1={};Object.defineProperty(getDistanceFromLine$1,"__esModule",{value:!0});getDistanceFromLine$1.default=void 0;var _getDistance$4=_interopRequireDefault$8(getDistance$2),_robustAcos=_interopRequireDefault$8(robustAcos$1);function _interopRequireDefault$8(s){return s&&s.__esModule?s:{default:s}}var getDistanceFromLine=function s(o,et,tt){var nt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,rt=(0,_getDistance$4.default)(et,o,nt),it=(0,_getDistance$4.default)(o,tt,nt),ot=(0,_getDistance$4.default)(et,tt,nt),st=Math.acos((0,_robustAcos.default)((rt*rt+ot*ot-it*it)/(2*rt*ot))),at=Math.acos((0,_robustAcos.default)((it*it+ot*ot-rt*rt)/(2*it*ot)));return st>Math.PI/2?rt:at>Math.PI/2?it:Math.sin(st)*rt},_default$a=getDistanceFromLine;getDistanceFromLine$1.default=_default$a;var getGreatCircleBearing$1={};Object.defineProperty(getGreatCircleBearing$1,"__esModule",{value:!0});getGreatCircleBearing$1.default=void 0;var _getLatitude$2=_interopRequireDefault$7(getLatitude$1),_getLongitude$2=_interopRequireDefault$7(getLongitude$1),_toRad$1=_interopRequireDefault$7(toRad$1),_toDeg=_interopRequireDefault$7(toDeg$1);function _interopRequireDefault$7(s){return s&&s.__esModule?s:{default:s}}var getGreatCircleBearing=function s(o,et){var tt=(0,_getLatitude$2.default)(et),nt=(0,_getLongitude$2.default)(et),rt=(0,_getLatitude$2.default)(o),it=(0,_getLongitude$2.default)(o),ot=((0,_toDeg.default)(Math.atan2(Math.sin((0,_toRad$1.default)(nt)-(0,_toRad$1.default)(it))*Math.cos((0,_toRad$1.default)(tt)),Math.cos((0,_toRad$1.default)(rt))*Math.sin((0,_toRad$1.default)(tt))-Math.sin((0,_toRad$1.default)(rt))*Math.cos((0,_toRad$1.default)(tt))*Math.cos((0,_toRad$1.default)(nt)-(0,_toRad$1.default)(it))))+360)%360;return ot},_default$9=getGreatCircleBearing;getGreatCircleBearing$1.default=_default$9;var getPathLength$1={};Object.defineProperty(getPathLength$1,"__esModule",{value:!0});getPathLength$1.default=void 0;var _getDistance$3=_interopRequireDefault$6(getDistance$2);function _interopRequireDefault$6(s){return s&&s.__esModule?s:{default:s}}function _typeof(s){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof=function(et){return typeof et}:_typeof=function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof(s)}var getPathLength=function s(o){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:_getDistance$3.default;return o.reduce(function(tt,nt){return _typeof(tt)==="object"&&tt.last!==null&&(tt.distance+=et(nt,tt.last)),tt.last=nt,tt},{last:null,distance:0}).distance},_default$8=getPathLength;getPathLength$1.default=_default$8;var getPreciseDistance={};Object.defineProperty(getPreciseDistance,"__esModule",{value:!0});getPreciseDistance.default=void 0;var _getLatitude$1=_interopRequireDefault$5(getLatitude$1),_getLongitude$1=_interopRequireDefault$5(getLongitude$1),_toRad=_interopRequireDefault$5(toRad$1),_constants=constants;function _interopRequireDefault$5(s){return s&&s.__esModule?s:{default:s}}var getDistance=function s(o,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;tt=typeof tt<"u"&&!isNaN(tt)?tt:1;var nt=(0,_getLatitude$1.default)(o),rt=(0,_getLongitude$1.default)(o),it=(0,_getLatitude$1.default)(et),ot=(0,_getLongitude$1.default)(et),st=6356752314245e-6,at=1/298.257223563,lt=(0,_toRad.default)(ot-rt),ut,dt,ht,ct,pt,ft,gt=Math.atan((1-at)*Math.tan((0,_toRad.default)(parseFloat(nt)))),yt=Math.atan((1-at)*Math.tan((0,_toRad.default)(parseFloat(it)))),Ut=Math.sin(gt),Ft=Math.cos(gt),mt=Math.sin(yt),vt=Math.cos(yt),At=lt,Lt,Rt=100;do{var St=Math.sin(At),Tt=Math.cos(At);if(ft=Math.sqrt(vt*St*(vt*St)+(Ft*mt-Ut*vt*Tt)*(Ft*mt-Ut*vt*Tt)),ft===0)return 0;ut=Ut*mt+Ft*vt*Tt,dt=Math.atan2(ft,ut),ht=Ft*vt*St/ft,ct=1-ht*ht,pt=ut-2*Ut*mt/ct,isNaN(pt)&&(pt=0);var Bt=at/16*ct*(4+at*(4-3*ct));Lt=At,At=lt+(1-Bt)*at*ht*(dt+Bt*ft*(pt+Bt*ut*(-1+2*pt*pt)))}while(Math.abs(At-Lt)>1e-12&&--Rt>0);if(Rt===0)return NaN;var xt=ct*(_constants.earthRadius*_constants.earthRadius-st*st)/(st*st),Ct=1+xt/16384*(4096+xt*(-768+xt*(320-175*xt))),kt=xt/1024*(256+xt*(-128+xt*(74-47*xt))),Nt=kt*ft*(pt+kt/4*(ut*(-1+2*pt*pt)-kt/6*pt*(-3+4*ft*ft)*(-3+4*pt*pt))),Ot=st*Ct*(dt-Nt);return Math.round(Ot/tt)*tt},_default$7=getDistance;getPreciseDistance.default=_default$7;var getRoughCompassDirection$1={};Object.defineProperty(getRoughCompassDirection$1,"__esModule",{value:!0});getRoughCompassDirection$1.default=void 0;var getRoughCompassDirection=function s(o){if(/^(NNE|NE|NNW|N)$/.test(o))return"N";if(/^(ENE|E|ESE|SE)$/.test(o))return"E";if(/^(SSE|S|SSW|SW)$/.test(o))return"S";if(/^(WSW|W|WNW|NW)$/.test(o))return"W"},_default$6=getRoughCompassDirection;getRoughCompassDirection$1.default=_default$6;var getSpeed$1={};Object.defineProperty(getSpeed$1,"__esModule",{value:!0});getSpeed$1.default=void 0;var _getDistance$2=_interopRequireDefault$4(getDistance$2);function _interopRequireDefault$4(s){return s&&s.__esModule?s:{default:s}}var getSpeed=function s(o,et){var tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_getDistance$2.default,nt=tt(o,et),rt=Number(et.time)-Number(o.time),it=nt/rt*1e3;return it},_default$5=getSpeed;getSpeed$1.default=_default$5;var isPointInLine$1={};Object.defineProperty(isPointInLine$1,"__esModule",{value:!0});isPointInLine$1.default=void 0;var _getDistance$1=_interopRequireDefault$3(getDistance$2);function _interopRequireDefault$3(s){return s&&s.__esModule?s:{default:s}}var isPointInLine=function s(o,et,tt){return(0,_getDistance$1.default)(et,o)+(0,_getDistance$1.default)(o,tt)===(0,_getDistance$1.default)(et,tt)},_default$4=isPointInLine;isPointInLine$1.default=_default$4;var isPointInPolygon$1={};Object.defineProperty(isPointInPolygon$1,"__esModule",{value:!0});isPointInPolygon$1.default=void 0;var _getLatitude=_interopRequireDefault$2(getLatitude$1),_getLongitude=_interopRequireDefault$2(getLongitude$1);function _interopRequireDefault$2(s){return s&&s.__esModule?s:{default:s}}var isPointInPolygon=function s(o,et){for(var tt=!1,nt=et.length,rt=-1,it=nt-1;++rts.length)&&(o=s.length);for(var et=0,tt=new Array(o);et"u"||!(Symbol.iterator in Object(s)))){var et=[],tt=!0,nt=!1,rt=void 0;try{for(var it=s[Symbol.iterator](),ot;!(tt=(ot=it.next()).done)&&(et.push(ot.value),!(o&&et.length===o));tt=!0);}catch(st){nt=!0,rt=st}finally{try{!tt&&it.return!=null&&it.return()}finally{if(nt)throw rt}}return et}}function _arrayWithHoles(s){if(Array.isArray(s))return s}var wktToPolygon=function s(o){if(!o.startsWith("POLYGON"))throw new Error("Invalid wkt.");var et=o.slice(o.indexOf("(")+2,o.indexOf(")")).split(", "),tt=et.map(function(nt){var rt=nt.split(" "),it=_slicedToArray(rt,2),ot=it[0],st=it[1];return{longitude:parseFloat(ot),latitude:parseFloat(st)}});return tt},_default=wktToPolygon;wktToPolygon$1.default=_default;(function(s){Object.defineProperty(s,"__esModule",{value:!0});var o={computeDestinationPoint:!0,convertArea:!0,convertDistance:!0,convertSpeed:!0,decimalToSexagesimal:!0,findNearest:!0,getAreaOfPolygon:!0,getBounds:!0,getBoundsOfDistance:!0,getCenter:!0,getCenterOfBounds:!0,getCompassDirection:!0,getCoordinateKey:!0,getCoordinateKeys:!0,getDistance:!0,getDistanceFromLine:!0,getGreatCircleBearing:!0,getLatitude:!0,getLongitude:!0,getPathLength:!0,getPreciseDistance:!0,getRhumbLineBearing:!0,getRoughCompassDirection:!0,getSpeed:!0,isDecimal:!0,isPointInLine:!0,isPointInPolygon:!0,isPointNearLine:!0,isPointWithinRadius:!0,isSexagesimal:!0,isValidCoordinate:!0,isValidLatitude:!0,isValidLongitude:!0,orderByDistance:!0,sexagesimalToDecimal:!0,toDecimal:!0,toRad:!0,toDeg:!0,wktToPolygon:!0};Object.defineProperty(s,"computeDestinationPoint",{enumerable:!0,get:function(){return et.default}}),Object.defineProperty(s,"convertArea",{enumerable:!0,get:function(){return tt.default}}),Object.defineProperty(s,"convertDistance",{enumerable:!0,get:function(){return nt.default}}),Object.defineProperty(s,"convertSpeed",{enumerable:!0,get:function(){return rt.default}}),Object.defineProperty(s,"decimalToSexagesimal",{enumerable:!0,get:function(){return it.default}}),Object.defineProperty(s,"findNearest",{enumerable:!0,get:function(){return ot.default}}),Object.defineProperty(s,"getAreaOfPolygon",{enumerable:!0,get:function(){return st.default}}),Object.defineProperty(s,"getBounds",{enumerable:!0,get:function(){return at.default}}),Object.defineProperty(s,"getBoundsOfDistance",{enumerable:!0,get:function(){return lt.default}}),Object.defineProperty(s,"getCenter",{enumerable:!0,get:function(){return ut.default}}),Object.defineProperty(s,"getCenterOfBounds",{enumerable:!0,get:function(){return dt.default}}),Object.defineProperty(s,"getCompassDirection",{enumerable:!0,get:function(){return ht.default}}),Object.defineProperty(s,"getCoordinateKey",{enumerable:!0,get:function(){return ct.default}}),Object.defineProperty(s,"getCoordinateKeys",{enumerable:!0,get:function(){return pt.default}}),Object.defineProperty(s,"getDistance",{enumerable:!0,get:function(){return ft.default}}),Object.defineProperty(s,"getDistanceFromLine",{enumerable:!0,get:function(){return gt.default}}),Object.defineProperty(s,"getGreatCircleBearing",{enumerable:!0,get:function(){return yt.default}}),Object.defineProperty(s,"getLatitude",{enumerable:!0,get:function(){return Ut.default}}),Object.defineProperty(s,"getLongitude",{enumerable:!0,get:function(){return Ft.default}}),Object.defineProperty(s,"getPathLength",{enumerable:!0,get:function(){return mt.default}}),Object.defineProperty(s,"getPreciseDistance",{enumerable:!0,get:function(){return vt.default}}),Object.defineProperty(s,"getRhumbLineBearing",{enumerable:!0,get:function(){return At.default}}),Object.defineProperty(s,"getRoughCompassDirection",{enumerable:!0,get:function(){return Lt.default}}),Object.defineProperty(s,"getSpeed",{enumerable:!0,get:function(){return Rt.default}}),Object.defineProperty(s,"isDecimal",{enumerable:!0,get:function(){return St.default}}),Object.defineProperty(s,"isPointInLine",{enumerable:!0,get:function(){return Tt.default}}),Object.defineProperty(s,"isPointInPolygon",{enumerable:!0,get:function(){return Bt.default}}),Object.defineProperty(s,"isPointNearLine",{enumerable:!0,get:function(){return xt.default}}),Object.defineProperty(s,"isPointWithinRadius",{enumerable:!0,get:function(){return Ct.default}}),Object.defineProperty(s,"isSexagesimal",{enumerable:!0,get:function(){return kt.default}}),Object.defineProperty(s,"isValidCoordinate",{enumerable:!0,get:function(){return Nt.default}}),Object.defineProperty(s,"isValidLatitude",{enumerable:!0,get:function(){return Ot.default}}),Object.defineProperty(s,"isValidLongitude",{enumerable:!0,get:function(){return Wt.default}}),Object.defineProperty(s,"orderByDistance",{enumerable:!0,get:function(){return Dt.default}}),Object.defineProperty(s,"sexagesimalToDecimal",{enumerable:!0,get:function(){return Et.default}}),Object.defineProperty(s,"toDecimal",{enumerable:!0,get:function(){return Pt.default}}),Object.defineProperty(s,"toRad",{enumerable:!0,get:function(){return zt.default}}),Object.defineProperty(s,"toDeg",{enumerable:!0,get:function(){return en.default}}),Object.defineProperty(s,"wktToPolygon",{enumerable:!0,get:function(){return Kt.default}});var et=Zt(computeDestinationPoint$1),tt=Zt(convertArea$1),nt=Zt(convertDistance$1),rt=Zt(convertSpeed$1),it=Zt(decimalToSexagesimal),ot=Zt(findNearest$1),st=Zt(getAreaOfPolygon$1),at=Zt(getBounds$1),lt=Zt(getBoundsOfDistance$1),ut=Zt(getCenter$1),dt=Zt(getCenterOfBounds$1),ht=Zt(getCompassDirection$1),ct=Zt(getCoordinateKey$1),pt=Zt(getCoordinateKeys$1),ft=Zt(getDistance$2),gt=Zt(getDistanceFromLine$1),yt=Zt(getGreatCircleBearing$1),Ut=Zt(getLatitude$1),Ft=Zt(getLongitude$1),mt=Zt(getPathLength$1),vt=Zt(getPreciseDistance),At=Zt(getRhumbLineBearing$1),Lt=Zt(getRoughCompassDirection$1),Rt=Zt(getSpeed$1),St=Zt(isDecimal$1),Tt=Zt(isPointInLine$1),Bt=Zt(isPointInPolygon$1),xt=Zt(isPointNearLine$1),Ct=Zt(isPointWithinRadius$1),kt=Zt(isSexagesimal$1),Nt=Zt(isValidCoordinate$1),Ot=Zt(isValidLatitude$1),Wt=Zt(isValidLongitude$1),Dt=Zt(orderByDistance$1),Et=Zt(sexagesimalToDecimal$1),Pt=Zt(toDecimal$1),zt=Zt(toRad$1),en=Zt(toDeg$1),Kt=Zt(wktToPolygon$1),nn=constants;Object.keys(nn).forEach(function(jt){jt==="default"||jt==="__esModule"||Object.prototype.hasOwnProperty.call(o,jt)||Object.defineProperty(s,jt,{enumerable:!0,get:function(){return nn[jt]}})});function Zt(jt){return jt&&jt.__esModule?jt:{default:jt}}})(es);class EmptyUniverseData{subscribeToBitset(o,et,tt){throw new Error("Method not implemented.")}subscribeToPath(o,et,tt){throw new Error("Method not implemented.")}addInteraction(o){throw new Error("Method not implemented.")}removeInteraction(o){throw new Error("Method not implemented.")}clearWorkerPool(){throw new Error("Method not implemented.")}getInteractions(){throw new Error("Method not implemented.")}addInteractionsChangedListener(o){throw new Error("Method not implemented.")}addInteractionListener(o){throw new Error("Method not implemented.")}setTime(o){throw new Error("Method not implemented.")}getTime(){throw new Error("Method not implemented.")}getTimeMs(){throw new Error("Method not implemented.")}getLatestTransformTrees(o){throw new Error("Method not implemented.")}getLatestLocations(o){throw new Error("Method not implemented.")}getDeviceContexts(){throw new Error("Method not implemented.")}getDeviceContextName(o){throw new Error("Method not implemented.")}getTelemetryStreamType(o,et){throw new Error("Method not implemented.")}getTelemetryStreams(o){throw new Error("Method not implemented.")}getTeleopRosStreams(o){throw new Error("Method not implemented.")}getUrdfs(o){throw new Error("Method not implemented.")}getHardwareStreams(o){throw new Error("Method not implemented.")}subscribeToPointCloud(o,et,tt){throw new Error("Method not implemented.")}subscribeToOdometry(o,et,tt){throw new Error("Method not implemented.")}subscribeToPose(o,et,tt){throw new Error("Method not implemented.")}subscribeToGeometry(o,et,tt){throw new Error("Method not implemented.")}subscribeToJointState(o,et,tt){throw new Error("Method not implemented.")}subscribeToGridMap(o,et,tt){throw new Error("Method not implemented.")}subscribeToVideo(o,et,tt){throw new Error("Method not implemented.")}subscribeToTransformTree(o,et,tt){throw new Error("Method not implemented.")}subscribeToLocation(o,et,tt){throw new Error("Method not implemented.")}subscribeToJson(o,et,tt){throw new Error("Method not implemented.")}subscribeToText(o,et,tt){throw new Error("Method not implemented.")}subscribeToNumeric(o,et,tt){throw new Error("Method not implemented.")}subscribeToNumericSet(o,et,tt){throw new Error("Method not implemented.")}getStatistics(){throw new Error("Method not implemented.")}subscribeDataSourceStateChange(o,et,tt){throw new Error("Method not implemented.")}subscribeToImage(o,et,tt){throw new Error("Method not implemented.")}sendRealtimePose(o,et,tt){throw new Error("Method not implemented.")}sendRealtimeBoolean(o,et,tt){throw new Error("Method not implemented.")}sendRealtimeBitset(o,et,tt){throw new Error("Method not implemented.")}sendCommand(o,et,tt){throw new Error("Method not implemented.")}}const UniverseDataContext=React$1.createContext([new EmptyUniverseData,new EmptyUniverseData]);class PositioningBuilder{static fixed(o,et,tt){return{type:"cartesian",x:o,y:et,z:tt}}static odometry(o,et,tt,nt){return{type:"odometry",stream:o,rtcStream:et,useLatestDataPoint:tt,useWorldToLocalTransform:nt}}static gps(o,et){return{type:"gps",stream:o,relativeToLatitude:et.lat,relativeToLongitude:et.long}}static tranformTree(o,et){return{type:"transform tree",stream:o,end:et}}}const LayerContext=React$1.createContext(null);class DataSourceBuilder{static telemetry(o,et,tt){return{id:v4(),sourceType:"telemetry",streamName:o,streamType:et,latestDataPoint:tt}}static realtime(o,et){return{id:v4(),sourceType:"realtime",rosTopicName:o,rosTopicType:et}}static hardware(o){return{id:v4(),sourceType:"hardware",rtcStreamName:o}}}var md5$1={exports:{}};/** +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray(s,o){if(s){if(typeof s=="string")return _arrayLikeToArray(s,o);var et=Object.prototype.toString.call(s).slice(8,-1);if(et==="Object"&&s.constructor&&(et=s.constructor.name),et==="Map"||et==="Set")return Array.from(s);if(et==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(et))return _arrayLikeToArray(s,o)}}function _arrayLikeToArray(s,o){(o==null||o>s.length)&&(o=s.length);for(var et=0,tt=new Array(o);et"u"||!(Symbol.iterator in Object(s)))){var et=[],tt=!0,nt=!1,rt=void 0;try{for(var it=s[Symbol.iterator](),ot;!(tt=(ot=it.next()).done)&&(et.push(ot.value),!(o&&et.length===o));tt=!0);}catch(st){nt=!0,rt=st}finally{try{!tt&&it.return!=null&&it.return()}finally{if(nt)throw rt}}return et}}function _arrayWithHoles(s){if(Array.isArray(s))return s}var wktToPolygon=function s(o){if(!o.startsWith("POLYGON"))throw new Error("Invalid wkt.");var et=o.slice(o.indexOf("(")+2,o.indexOf(")")).split(", "),tt=et.map(function(nt){var rt=nt.split(" "),it=_slicedToArray(rt,2),ot=it[0],st=it[1];return{longitude:parseFloat(ot),latitude:parseFloat(st)}});return tt},_default=wktToPolygon;wktToPolygon$1.default=_default;(function(s){Object.defineProperty(s,"__esModule",{value:!0});var o={computeDestinationPoint:!0,convertArea:!0,convertDistance:!0,convertSpeed:!0,decimalToSexagesimal:!0,findNearest:!0,getAreaOfPolygon:!0,getBounds:!0,getBoundsOfDistance:!0,getCenter:!0,getCenterOfBounds:!0,getCompassDirection:!0,getCoordinateKey:!0,getCoordinateKeys:!0,getDistance:!0,getDistanceFromLine:!0,getGreatCircleBearing:!0,getLatitude:!0,getLongitude:!0,getPathLength:!0,getPreciseDistance:!0,getRhumbLineBearing:!0,getRoughCompassDirection:!0,getSpeed:!0,isDecimal:!0,isPointInLine:!0,isPointInPolygon:!0,isPointNearLine:!0,isPointWithinRadius:!0,isSexagesimal:!0,isValidCoordinate:!0,isValidLatitude:!0,isValidLongitude:!0,orderByDistance:!0,sexagesimalToDecimal:!0,toDecimal:!0,toRad:!0,toDeg:!0,wktToPolygon:!0};Object.defineProperty(s,"computeDestinationPoint",{enumerable:!0,get:function(){return et.default}}),Object.defineProperty(s,"convertArea",{enumerable:!0,get:function(){return tt.default}}),Object.defineProperty(s,"convertDistance",{enumerable:!0,get:function(){return nt.default}}),Object.defineProperty(s,"convertSpeed",{enumerable:!0,get:function(){return rt.default}}),Object.defineProperty(s,"decimalToSexagesimal",{enumerable:!0,get:function(){return it.default}}),Object.defineProperty(s,"findNearest",{enumerable:!0,get:function(){return ot.default}}),Object.defineProperty(s,"getAreaOfPolygon",{enumerable:!0,get:function(){return st.default}}),Object.defineProperty(s,"getBounds",{enumerable:!0,get:function(){return at.default}}),Object.defineProperty(s,"getBoundsOfDistance",{enumerable:!0,get:function(){return lt.default}}),Object.defineProperty(s,"getCenter",{enumerable:!0,get:function(){return ut.default}}),Object.defineProperty(s,"getCenterOfBounds",{enumerable:!0,get:function(){return dt.default}}),Object.defineProperty(s,"getCompassDirection",{enumerable:!0,get:function(){return ht.default}}),Object.defineProperty(s,"getCoordinateKey",{enumerable:!0,get:function(){return ct.default}}),Object.defineProperty(s,"getCoordinateKeys",{enumerable:!0,get:function(){return pt.default}}),Object.defineProperty(s,"getDistance",{enumerable:!0,get:function(){return ft.default}}),Object.defineProperty(s,"getDistanceFromLine",{enumerable:!0,get:function(){return gt.default}}),Object.defineProperty(s,"getGreatCircleBearing",{enumerable:!0,get:function(){return yt.default}}),Object.defineProperty(s,"getLatitude",{enumerable:!0,get:function(){return Ut.default}}),Object.defineProperty(s,"getLongitude",{enumerable:!0,get:function(){return Ft.default}}),Object.defineProperty(s,"getPathLength",{enumerable:!0,get:function(){return mt.default}}),Object.defineProperty(s,"getPreciseDistance",{enumerable:!0,get:function(){return vt.default}}),Object.defineProperty(s,"getRhumbLineBearing",{enumerable:!0,get:function(){return At.default}}),Object.defineProperty(s,"getRoughCompassDirection",{enumerable:!0,get:function(){return Lt.default}}),Object.defineProperty(s,"getSpeed",{enumerable:!0,get:function(){return Rt.default}}),Object.defineProperty(s,"isDecimal",{enumerable:!0,get:function(){return St.default}}),Object.defineProperty(s,"isPointInLine",{enumerable:!0,get:function(){return Tt.default}}),Object.defineProperty(s,"isPointInPolygon",{enumerable:!0,get:function(){return Bt.default}}),Object.defineProperty(s,"isPointNearLine",{enumerable:!0,get:function(){return xt.default}}),Object.defineProperty(s,"isPointWithinRadius",{enumerable:!0,get:function(){return Ct.default}}),Object.defineProperty(s,"isSexagesimal",{enumerable:!0,get:function(){return kt.default}}),Object.defineProperty(s,"isValidCoordinate",{enumerable:!0,get:function(){return Nt.default}}),Object.defineProperty(s,"isValidLatitude",{enumerable:!0,get:function(){return Ot.default}}),Object.defineProperty(s,"isValidLongitude",{enumerable:!0,get:function(){return Jt.default}}),Object.defineProperty(s,"orderByDistance",{enumerable:!0,get:function(){return Dt.default}}),Object.defineProperty(s,"sexagesimalToDecimal",{enumerable:!0,get:function(){return Et.default}}),Object.defineProperty(s,"toDecimal",{enumerable:!0,get:function(){return Pt.default}}),Object.defineProperty(s,"toRad",{enumerable:!0,get:function(){return zt.default}}),Object.defineProperty(s,"toDeg",{enumerable:!0,get:function(){return en.default}}),Object.defineProperty(s,"wktToPolygon",{enumerable:!0,get:function(){return Kt.default}});var et=Zt(computeDestinationPoint$1),tt=Zt(convertArea$1),nt=Zt(convertDistance$1),rt=Zt(convertSpeed$1),it=Zt(decimalToSexagesimal),ot=Zt(findNearest$1),st=Zt(getAreaOfPolygon$1),at=Zt(getBounds$1),lt=Zt(getBoundsOfDistance$1),ut=Zt(getCenter$1),dt=Zt(getCenterOfBounds$1),ht=Zt(getCompassDirection$1),ct=Zt(getCoordinateKey$1),pt=Zt(getCoordinateKeys$1),ft=Zt(getDistance$2),gt=Zt(getDistanceFromLine$1),yt=Zt(getGreatCircleBearing$1),Ut=Zt(getLatitude$1),Ft=Zt(getLongitude$1),mt=Zt(getPathLength$1),vt=Zt(getPreciseDistance),At=Zt(getRhumbLineBearing$1),Lt=Zt(getRoughCompassDirection$1),Rt=Zt(getSpeed$1),St=Zt(isDecimal$1),Tt=Zt(isPointInLine$1),Bt=Zt(isPointInPolygon$1),xt=Zt(isPointNearLine$1),Ct=Zt(isPointWithinRadius$1),kt=Zt(isSexagesimal$1),Nt=Zt(isValidCoordinate$1),Ot=Zt(isValidLatitude$1),Jt=Zt(isValidLongitude$1),Dt=Zt(orderByDistance$1),Et=Zt(sexagesimalToDecimal$1),Pt=Zt(toDecimal$1),zt=Zt(toRad$1),en=Zt(toDeg$1),Kt=Zt(wktToPolygon$1),nn=constants;Object.keys(nn).forEach(function(jt){jt==="default"||jt==="__esModule"||Object.prototype.hasOwnProperty.call(o,jt)||Object.defineProperty(s,jt,{enumerable:!0,get:function(){return nn[jt]}})});function Zt(jt){return jt&&jt.__esModule?jt:{default:jt}}})(es);class EmptyUniverseData{subscribeToBitset(o,et,tt){throw new Error("Method not implemented.")}subscribeToPath(o,et,tt){throw new Error("Method not implemented.")}addInteraction(o){throw new Error("Method not implemented.")}removeInteraction(o){throw new Error("Method not implemented.")}clearWorkerPool(){throw new Error("Method not implemented.")}getInteractions(){throw new Error("Method not implemented.")}addInteractionsChangedListener(o){throw new Error("Method not implemented.")}addInteractionListener(o){throw new Error("Method not implemented.")}setTime(o){throw new Error("Method not implemented.")}getTime(){throw new Error("Method not implemented.")}getTimeMs(){throw new Error("Method not implemented.")}getLatestTransformTrees(o){throw new Error("Method not implemented.")}getLatestLocations(o){throw new Error("Method not implemented.")}getDeviceContexts(){throw new Error("Method not implemented.")}getDeviceContextName(o){throw new Error("Method not implemented.")}getTelemetryStreamType(o,et){throw new Error("Method not implemented.")}getTelemetryStreams(o){throw new Error("Method not implemented.")}getTeleopRosStreams(o){throw new Error("Method not implemented.")}getUrdfs(o){throw new Error("Method not implemented.")}getHardwareStreams(o){throw new Error("Method not implemented.")}subscribeToPointCloud(o,et,tt){throw new Error("Method not implemented.")}subscribeToOdometry(o,et,tt){throw new Error("Method not implemented.")}subscribeToPose(o,et,tt){throw new Error("Method not implemented.")}subscribeToGeometry(o,et,tt){throw new Error("Method not implemented.")}subscribeToJointState(o,et,tt){throw new Error("Method not implemented.")}subscribeToGridMap(o,et,tt){throw new Error("Method not implemented.")}subscribeToVideo(o,et,tt){throw new Error("Method not implemented.")}subscribeToTransformTree(o,et,tt){throw new Error("Method not implemented.")}subscribeToLocation(o,et,tt){throw new Error("Method not implemented.")}subscribeToJson(o,et,tt){throw new Error("Method not implemented.")}subscribeToText(o,et,tt){throw new Error("Method not implemented.")}subscribeToNumeric(o,et,tt){throw new Error("Method not implemented.")}subscribeToNumericSet(o,et,tt){throw new Error("Method not implemented.")}getStatistics(){throw new Error("Method not implemented.")}subscribeDataSourceStateChange(o,et,tt){throw new Error("Method not implemented.")}subscribeToImage(o,et,tt){throw new Error("Method not implemented.")}sendRealtimePose(o,et,tt){throw new Error("Method not implemented.")}sendRealtimeBoolean(o,et,tt){throw new Error("Method not implemented.")}sendRealtimeBitset(o,et,tt){throw new Error("Method not implemented.")}sendCommand(o,et,tt){throw new Error("Method not implemented.")}}const UniverseDataContext=React$1.createContext([new EmptyUniverseData,new EmptyUniverseData]);class PositioningBuilder{static fixed(o,et,tt){return{type:"cartesian",x:o,y:et,z:tt}}static odometry(o,et,tt,nt){return{type:"odometry",stream:o,rtcStream:et,useLatestDataPoint:tt,useWorldToLocalTransform:nt}}static gps(o,et){return{type:"gps",stream:o,relativeToLatitude:et.lat,relativeToLongitude:et.long}}static tranformTree(o,et){return{type:"transform tree",stream:o,end:et}}}const LayerContext=React$1.createContext(null);class DataSourceBuilder{static telemetry(o,et,tt){return{id:v4(),sourceType:"telemetry",streamName:o,streamType:et,latestDataPoint:tt}}static realtime(o,et){return{id:v4(),sourceType:"realtime",rosTopicName:o,rosTopicType:et}}static hardware(o){return{id:v4(),sourceType:"hardware",rtcStreamName:o}}}var md5$1={exports:{}};/** * [js-md5]{@link https://github.com/emn178/js-md5} * * @namespace md5 @@ -5086,7 +5086,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho * @author Chen, Yi-Cyuan [emn178@gmail.com] * @copyright Chen, Yi-Cyuan 2014-2017 * @license MIT - */(function(module){(function(){var root=typeof window=="object"?window:{},NODE_JS=!root.JS_SHA1_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;NODE_JS&&(root=commonjsGlobal$2);var COMMON_JS=!root.JS_SHA1_NO_COMMON_JS&&!0&&module.exports,HEX_CHARS="0123456789abcdef".split(""),EXTRA=[-2147483648,8388608,32768,128],SHIFT=[24,16,8,0],OUTPUT_TYPES=["hex","array","digest","arrayBuffer"],blocks=[],createOutputMethod=function(s){return function(o){return new Sha1(!0).update(o)[s]()}},createMethod=function(){var s=createOutputMethod("hex");NODE_JS&&(s=nodeWrap(s)),s.create=function(){return new Sha1},s.update=function(tt){return s.create().update(tt)};for(var o=0;o>2]|=s[tt]<>2]|=et<>2]|=(192|et>>6)<>2]|=(128|et&63)<=57344?(it[nt>>2]|=(224|et>>12)<>2]|=(128|et>>6&63)<>2]|=(128|et&63)<>2]|=(240|et>>18)<>2]|=(128|et>>12&63)<>2]|=(128|et>>6&63)<>2]|=(128|et&63)<=64?(this.block=it[16],this.start=nt-64,this.hash(),this.hashed=!0):this.start=nt}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha1.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var s=this.blocks,o=this.lastByteIndex;s[16]=this.block,s[o>>2]|=EXTRA[o&3],this.block=s[16],o>=56&&(this.hashed||this.hash(),s[0]=this.block,s[16]=s[1]=s[2]=s[3]=s[4]=s[5]=s[6]=s[7]=s[8]=s[9]=s[10]=s[11]=s[12]=s[13]=s[14]=s[15]=0),s[14]=this.hBytes<<3|this.bytes>>>29,s[15]=this.bytes<<3,this.hash()}},Sha1.prototype.hash=function(){var s=this.h0,o=this.h1,et=this.h2,tt=this.h3,nt=this.h4,rt,it,ot,st=this.blocks;for(it=16;it<80;++it)ot=st[it-3]^st[it-8]^st[it-14]^st[it-16],st[it]=ot<<1|ot>>>31;for(it=0;it<20;it+=5)rt=o&et|~o&tt,ot=s<<5|s>>>27,nt=ot+rt+nt+1518500249+st[it]<<0,o=o<<30|o>>>2,rt=s&o|~s&et,ot=nt<<5|nt>>>27,tt=ot+rt+tt+1518500249+st[it+1]<<0,s=s<<30|s>>>2,rt=nt&s|~nt&o,ot=tt<<5|tt>>>27,et=ot+rt+et+1518500249+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt&nt|~tt&s,ot=et<<5|et>>>27,o=ot+rt+o+1518500249+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et&tt|~et&nt,ot=o<<5|o>>>27,s=ot+rt+s+1518500249+st[it+4]<<0,et=et<<30|et>>>2;for(;it<40;it+=5)rt=o^et^tt,ot=s<<5|s>>>27,nt=ot+rt+nt+1859775393+st[it]<<0,o=o<<30|o>>>2,rt=s^o^et,ot=nt<<5|nt>>>27,tt=ot+rt+tt+1859775393+st[it+1]<<0,s=s<<30|s>>>2,rt=nt^s^o,ot=tt<<5|tt>>>27,et=ot+rt+et+1859775393+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt^nt^s,ot=et<<5|et>>>27,o=ot+rt+o+1859775393+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et^tt^nt,ot=o<<5|o>>>27,s=ot+rt+s+1859775393+st[it+4]<<0,et=et<<30|et>>>2;for(;it<60;it+=5)rt=o&et|o&tt|et&tt,ot=s<<5|s>>>27,nt=ot+rt+nt-1894007588+st[it]<<0,o=o<<30|o>>>2,rt=s&o|s&et|o&et,ot=nt<<5|nt>>>27,tt=ot+rt+tt-1894007588+st[it+1]<<0,s=s<<30|s>>>2,rt=nt&s|nt&o|s&o,ot=tt<<5|tt>>>27,et=ot+rt+et-1894007588+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt&nt|tt&s|nt&s,ot=et<<5|et>>>27,o=ot+rt+o-1894007588+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et&tt|et&nt|tt&nt,ot=o<<5|o>>>27,s=ot+rt+s-1894007588+st[it+4]<<0,et=et<<30|et>>>2;for(;it<80;it+=5)rt=o^et^tt,ot=s<<5|s>>>27,nt=ot+rt+nt-899497514+st[it]<<0,o=o<<30|o>>>2,rt=s^o^et,ot=nt<<5|nt>>>27,tt=ot+rt+tt-899497514+st[it+1]<<0,s=s<<30|s>>>2,rt=nt^s^o,ot=tt<<5|tt>>>27,et=ot+rt+et-899497514+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt^nt^s,ot=et<<5|et>>>27,o=ot+rt+o-899497514+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et^tt^nt,ot=o<<5|o>>>27,s=ot+rt+s-899497514+st[it+4]<<0,et=et<<30|et>>>2;this.h0=this.h0+s<<0,this.h1=this.h1+o<<0,this.h2=this.h2+et<<0,this.h3=this.h3+tt<<0,this.h4=this.h4+nt<<0},Sha1.prototype.hex=function(){this.finalize();var s=this.h0,o=this.h1,et=this.h2,tt=this.h3,nt=this.h4;return HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15]+HEX_CHARS[et>>28&15]+HEX_CHARS[et>>24&15]+HEX_CHARS[et>>20&15]+HEX_CHARS[et>>16&15]+HEX_CHARS[et>>12&15]+HEX_CHARS[et>>8&15]+HEX_CHARS[et>>4&15]+HEX_CHARS[et&15]+HEX_CHARS[tt>>28&15]+HEX_CHARS[tt>>24&15]+HEX_CHARS[tt>>20&15]+HEX_CHARS[tt>>16&15]+HEX_CHARS[tt>>12&15]+HEX_CHARS[tt>>8&15]+HEX_CHARS[tt>>4&15]+HEX_CHARS[tt&15]+HEX_CHARS[nt>>28&15]+HEX_CHARS[nt>>24&15]+HEX_CHARS[nt>>20&15]+HEX_CHARS[nt>>16&15]+HEX_CHARS[nt>>12&15]+HEX_CHARS[nt>>8&15]+HEX_CHARS[nt>>4&15]+HEX_CHARS[nt&15]},Sha1.prototype.toString=Sha1.prototype.hex,Sha1.prototype.digest=function(){this.finalize();var s=this.h0,o=this.h1,et=this.h2,tt=this.h3,nt=this.h4;return[s>>24&255,s>>16&255,s>>8&255,s&255,o>>24&255,o>>16&255,o>>8&255,o&255,et>>24&255,et>>16&255,et>>8&255,et&255,tt>>24&255,tt>>16&255,tt>>8&255,tt&255,nt>>24&255,nt>>16&255,nt>>8&255,nt&255]},Sha1.prototype.array=Sha1.prototype.digest,Sha1.prototype.arrayBuffer=function(){this.finalize();var s=new ArrayBuffer(20),o=new DataView(s);return o.setUint32(0,this.h0),o.setUint32(4,this.h1),o.setUint32(8,this.h2),o.setUint32(12,this.h3),o.setUint32(16,this.h4),s};var exports=createMethod();COMMON_JS?module.exports=exports:root.sha1=exports})()})(sha1$1);var sha1Exports=sha1$1.exports,md5=md5Exports,sha1=sha1Exports,HEX_DIGITS="0123456789abcdef".split(""),UUID_LENGTH=36,UUID_REGEXP=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i,HEX_TO_BYTE_MAP=function(){for(var s={},o=0;o<256;o++){var et=o.toString(16);s[et.length===1?"0"+et:et]=o}return s}(),uint8ToHex=function(s){var o=s>>4,et=s-(o<<4);return HEX_DIGITS[o]+HEX_DIGITS[et]},uint8ArrayToHex=function(s){for(var o="",et=0;etnew Vector3(nt,rt,it),tt=({x:nt,y:rt,z:it,w:ot})=>new Quaternion(nt,rt,it,ot);return new Matrix4().multiply(new Matrix4().setPosition(et(s))).multiply(new Matrix4().makeRotationFromQuaternion(tt(o)))}class PathGeometry extends BufferGeometry{constructor(o,et,tt=200){super();const nt=tt*10,rt=4,it=nt+1,ot=rt+1,st=nt*rt*2,at=it*ot,lt=new Uint32Array(st*3),ut=new Float32Array(at*3);var dt=new CatmullRomCurve3(o);const ht=dt.getPoints(nt);let ct=0;for(var pt=0;pt(s.STATIC="Static",s.DYNAMIC="Dynamic",s))(PathType||{}),PROPERTY_TYPE=(s=>(s.FLOAT="Float",s.INTEGER="Integer",s.BOOLEAN="Boolean",s.STRING="String",s.ENUM="Enum",s.MEATADATA="Metadata",s))(PROPERTY_TYPE||{}),SENDING_STATUS=(s=>(s.NONE="not sent yet",s.WAITING="waiting",s.SUCCESS="sucess",s.FAIL="fail",s))(SENDING_STATUS||{});extend({PathGeometry});const Path=({points:s,color:o="#0000ff",pathOpacity:et=50,pathWidth:tt=.25,pathType:nt=PathType.STATIC,pathFlatten:rt=!1,renderOrder:it=0})=>{const ot=reactExports.useRef(null);reactExports.useEffect(()=>{if(!ot.current)return;const at=ot.current;at.matrixAutoUpdate=!1},[]);const st=rt?s.map(at=>at.setZ(0)):s;return jsx$2("group",{ref:ot,children:s.length>1&&jsx$2(Fragment$2,{children:nt===PathType.STATIC?jsxs$2("mesh",{renderOrder:it,children:[jsx$2("pathGeometry",{args:[st,tt,s.length]}),jsx$2("meshBasicMaterial",{transparent:!0,opacity:et/100,color:o,side:DoubleSide,depthWrite:!1})]}):jsx$2(Line,{points:st,lineWidth:18,color:o,worldUnits:!1,renderOrder:it})})})},millisecond$1=1,second$1=1e3,minute$1=60*second$1,hour$1=60*minute$1,day$1=24*hour$1,week$1=7*day$1,month$1=30*day$1,year$1=365*day$1,duration$1={millisecond:millisecond$1,second:second$1,minute:minute$1,hour:hour$1,day:day$1,week:week$1,month:month$1,year:year$1};function findPathToName(s,o,et){const tt=et||[];for(let nt=0;nt0){const it=findPathToName(rt,o,[...tt,nt]);if(it.length>0)return it}}return[]}function buildTransformList(s,o,et){const tt=et||[],nt=o.shift();if(nt===void 0)return tt;const rt=s[nt],it=defined$1(rt.transform).translation,{rotation:ot}=defined$1(rt.transform);return tt.push({pos:new Vector3(it.x,it.y,it.z),rotation:new Quaternion(ot.x,ot.y,ot.z,ot.w)}),rt.children?buildTransformList(rt.children,o,tt):tt}function DataVisualizationLayer(s){const[o,et]=reactExports.useState(),[tt,nt]=reactExports.useState(void 0),[rt,it]=reactExports.useContext(UniverseDataContext),{register:ot,layers:st,debug:at}=reactExports.useContext(UIDataContext),lt=reactExports.useContext(LayerContext);let ut;lt&&(ut=lt.deviceId);const{children:dt,positioning:ht,visible:ct,name:pt,id:ft,treePath:gt,type:yt,iconUrl:Ut,trailEnabled:Ft,trailFlatten:mt,trailOpacity:vt,trailSeconds:At=15,trailType:Lt,trailWidth:Rt}=s,[St,Tt]=reactExports.useState([]),Bt=reactExports.useRef(null),xt=reactExports.useRef(at?new Box3:null),Ct=reactExports.useRef("yellow");return useHelper(xt,Box3Helper,Ct.current),reactExports.useEffect(()=>{const kt=ft||getUuidByString(JSON.stringify({name:pt,type:yt,treePath:gt})),Nt=ot(pt||"Layer",kt,yt||LayerType.OTHER,Ut,gt,ct);nt(Nt)},[]),reactExports.useEffect(()=>{const kt=ht||PositioningBuilder.fixed(0,0,0);if(Bt.current){const Nt=Bt.current;if(o&&(o(),et(void 0)),kt.type==="cartesian"){const{x:Ot,y:Wt,z:Dt}=kt;Nt.position.set(Ot,Wt,Dt)}else if(kt.type==="gps"){const Ot=rt.subscribeToLocation(defined$1(ut,"gps positioning requires a device id"),DataSourceBuilder.telemetry(kt.stream,"location"),Wt=>{if(typeof Wt=="symbol")return;const Dt=Wt,Et={longitude:Dt.longitude,latitude:Dt.latitude},Pt={longitude:kt.relativeToLongitude,latitude:Dt.latitude};let zt=es.getDistance(Et,Pt,1e-6);const en={longitude:Dt.longitude,latitude:Dt.latitude},Kt={longitude:Dt.longitude,latitude:kt.relativeToLatitude};let nn=es.getDistance(en,Kt,1e-6);Dt.latitudeOt)}else if(kt.type==="odometry"){let Ot,Wt;if(kt.rtcStream)Ot=DataSourceBuilder.realtime(kt.rtcStream,"json"),Wt="rtc";else if(kt.stream)Ot=DataSourceBuilder.telemetry(kt.stream,void 0,kt.useLatestDataPoint||!1),Wt="telemetry";else throw new Error("invalid odometry positioning stream type");const Dt=(Wt==="rtc"?it:rt).subscribeToOdometry(defined$1(ut,"odometry positioning requires a device id"),Ot,Et=>{if(typeof Et=="symbol")return;const Pt=Et,zt=Pt.pose.translation,en=Pt.pose.rotation;if(Pt.trail&&Ft){const Kt=Pt.trail.map(nn=>[nn[0],new Vector3(nn[1].translation.x,nn[1].translation.y,nn[1].translation.z)]);Tt(Kt)}else if(Ft){const Kt=[rt.getTimeMs(),new Vector3(zt.x,zt.y,zt.z)];Tt(nn=>[...nn.filter(Zt=>rt.getTimeMs()-Zt[0]Dt)}else if(kt.type==="transform tree"){const Ot=rt.subscribeToTransformTree(defined$1(ut,"transform tree positioning requires a device id"),DataSourceBuilder.telemetry(kt.stream,"transform tree"),Wt=>{if(typeof Wt=="symbol")return;fetch(defined$1(Wt.url)).then(Et=>Et.json()).then(Et=>{const Pt=findPathToName([Et],defined$1(kt.end)),Kt=buildTransformList([Et],Pt).map(nn=>new Matrix4().compose(new Vector3(nn.pos.x,nn.pos.y,nn.pos.z),nn.rotation,new Vector3(1,1,1))).reduce((nn,Zt)=>nn.multiply(Zt),new Matrix4);Nt.matrix=Kt,Nt.matrixAutoUpdate=!1}).catch(Et=>{throw Et})});et(()=>Ot)}}return()=>{o&&(o(),et(void 0))}},[Bt,ht,tt]),useFrame(()=>{if(Bt.current&&at){const kt=xt.current,Nt=Bt.current;kt.setFromObject(Nt)}}),reactExports.useEffect(()=>{tt&&Bt.current&&nt({...tt,visible:Bt.current.visible})},[Bt.current?.visible]),jsxs$2(Fragment$2,{children:[jsx$2("group",{ref:Bt,visible:tt?tt.visible:!0,name:tt?tt.id:"",userData:{name:tt?.name},children:dt}),tt&&tt.visible&&jsx$2(Path,{points:St.map(kt=>kt[1]),color:FormantColors.blue,pathOpacity:vt,pathWidth:Rt,pathType:Lt,pathFlatten:mt,renderOrder:2})]})}const EmptyLayer=s=>{const{children:o,name:et,id:tt,treePath:nt,type:rt}=s;return jsx$2(DataVisualizationLayer,{...s,type:LayerType.CONTAINER,children:o})};function mergeGeometries(s,o=!1){const et=s[0].index!==null,tt=new Set(Object.keys(s[0].attributes)),nt=new Set(Object.keys(s[0].morphAttributes)),rt={},it={},ot=s[0].morphTargetsRelative,st=new BufferGeometry;let at=0;for(let lt=0;lt{let tt=this.geometry.get(et.ns);tt===void 0&&(tt=new Map,this.geometry.set(et.ns,tt));const{action:nt,type:rt}=et,it=nt===2,ot=nt===3;if(ot)this.geometry=new Map;else{et.id===void 0&&(et.id=0),reifyVector3(et.pose.position),reifyQuaternion(et.pose.orientation),reifyVector3(et.scale),reifyColor(et.color),et.points&&et.points.forEach(lt=>{reifyVector3(lt)});const at={0:"arrow",1:"cube",2:"sphere",3:"cylinder",4:"line_strip",5:"line_list",6:"cube_list",7:"sphere_list",8:"points",9:"text",10:"mesh_resource",11:"triangle_list"}[rt];if(at==="mesh_resource"){console.warn("Mesh resource markers are not supported");return}if(at&&!ot){const lt={id:`${et.ns}_${et.id}`,type:at,position:et.pose.position,rotation:et.pose.orientation,scale:et.scale,color:et.color,dirty:!0};et.points&&(lt.points=et.points),et.text&&(lt.text=et.text),et.colors&&(lt.colors=et.colors),tt.set(et.id,lt),it&&tt.delete(et.id)}}})}getAllGeometry(){const o=[];return this.geometry.forEach(et=>{et.forEach(tt=>{o.push(tt)})}),o}}const MINIMUM_TIME_DIFFERENCE=12*duration$1.hour;function InstancedGeometry({instances:s,allowTransparency:o}){const et=reactExports.useRef(null),tt=reactExports.useRef(new Box3),nt=s[0].type,rt=reactExports.useRef(new Map),it=reactExports.useMemo(()=>new Object3D,[]);return reactExports.useLayoutEffect(()=>{et.current&&(tt.current.setFromCenterAndSize(new Vector3(s[0].position.x,s[0].position.y,s[0].position.z),new Vector3(.1,.1,.1)),et.current&&(s.forEach((ot,st)=>{const{position:at,rotation:lt,scale:ut,color:dt}=ot,ht=getUuidByString(`${ot.id}-${at.x}${at.y}${at.z}${lt.x}${lt.y}${lt.z}${lt.w}${ut.x}${ut.y}${ut.z}`);let ct=rt.current.get(ht);ct||(it.position.set(at.x,at.y,at.z),it.quaternion.set(lt.x,lt.y,lt.z,lt.w),it.scale.set(ut.x,ut.y,ut.z),tt.current.expandByPoint(it.position),it.updateMatrix(),ct=it.matrix.clone(),rt.current.set(ht,it.matrix.clone())),et.current.setMatrixAt(st,ct),et.current.setColorAt(st,new Color$2(dt.r,dt.g,dt.b))}),et.current.up=new Vector3(0,0,1),et.current.instanceMatrix.needsUpdate=!0,et.current.instanceColor&&(et.current.instanceColor.needsUpdate=!0)))},[et,s]),o?jsxs$2("group",{children:[s&&nt==="sphere"?s.map(ot=>jsx$2(Sphere,{args:[.5,32,16],scale:[ot.scale.x,ot.scale.y,ot.scale.z],position:[ot.position.x,ot.position.y,ot.position.z],quaternion:[ot.rotation.x,ot.rotation.y,ot.rotation.z,ot.rotation.w],children:jsx$2("meshLambertMaterial",{attach:"material",color:[ot.color.r,ot.color.g,ot.color.b],opacity:ot.color.a,transparent:ot.color.a<1})},ot.id)):null,s&&nt==="cube"?s.map(ot=>jsx$2(Box,{args:[.9,.9,.9],scale:[ot.scale.x,ot.scale.y,ot.scale.z],position:[ot.position.x,ot.position.y,ot.position.z],quaternion:[ot.rotation.x,ot.rotation.y,ot.rotation.z,ot.rotation.w],children:jsx$2("meshLambertMaterial",{attach:"material",color:[ot.color.r,ot.color.g,ot.color.b],opacity:ot.color.a,transparent:ot.color.a<1})},ot.id)):null]}):jsxs$2(Fragment$2,{children:[jsxs$2("instancedMesh",{ref:et,args:[null,null,s.length],up:new Vector3(0,0,1),children:[nt==="sphere"?jsx$2("sphereGeometry",{attach:"geometry",args:[.5,32,16]}):null,nt==="cube"?jsx$2("boxGeometry",{attach:"geometry",args:[.9,.9,.9]}):null,jsx$2("meshLambertMaterial",{attach:"material"})]}),jsx$2("box3Helper",{args:[tt.current],visible:!1})]})}function InstancedGeometryFromList({instances:s}){if(!s.points)return null;const o=reactExports.useRef(null),et=reactExports.useRef(new Box3),tt=s.type,nt=reactExports.useRef(new Map),rt=reactExports.useMemo(()=>new Object3D,[]);return reactExports.useLayoutEffect(()=>{if(s.points!==void 0&&o.current){et.current.setFromCenterAndSize(new Vector3(s.position.x,s.position.y,s.position.z),new Vector3(.1,.1,.1));const it=s.points,ot=s.position,st=s.colors,at=s.scale;it.map((lt,ut)=>{const dt=getUuidByString(`${ut}-${lt.x}${lt.y}${lt.z}`);let ht=nt.current.get(dt);ht||(rt.position.set(ot.x+lt.x,ot.y+lt.y,ot.z+lt.z),rt.scale.set(at.x,at.y,at.z),rt.updateMatrix(),ht=rt.matrix.clone(),nt.current.set(dt,rt.matrix.clone())),et.current.expandByPoint(rt.position),o.current&&(o.current.up=new Vector3(0,0,1),o.current.setMatrixAt(ut,ht),st&&st[ut]?o.current.setColorAt(ut,new Color$2(st[ut].r,st[ut].g,st[ut].b)):o.current.setColorAt(ut,new Color$2(s.color.r,s.color.g,s.color.b)))}),o.current&&(o.current.instanceMatrix.needsUpdate=!0,o.current.instanceColor&&(o.current.instanceColor.needsUpdate=!0))}},[o,s]),jsxs$2(Fragment$2,{children:[jsxs$2("instancedMesh",{ref:o,args:[null,null,s.points.length],up:new Vector3(0,0,1),children:[tt==="sphere_list"?jsx$2("sphereGeometry",{attach:"geometry",args:[.5,32,16]}):null,tt==="cube_list"?jsx$2("boxGeometry",{attach:"geometry",args:[.9,.9,.9]}):null,jsx$2("meshLambertMaterial",{attach:"material"})]}),jsx$2("box3Helper",{args:[et.current],visible:!1})]})}function GeometryLayer(s){const{children:o,dataSource:et,allowTransparency:tt}=s,nt=reactExports.useRef(new GeometryWorld),rt=reactExports.useRef(!1),it=useBounds(),ot=reactExports.useRef(new Map),st=reactExports.useRef(new Object3D),[at,lt]=reactExports.useContext(UniverseDataContext),ut=reactExports.useRef(at.getTimeMs()),dt=reactExports.useContext(LayerContext),[ht,ct]=reactExports.useState([]),[pt,ft]=reactExports.useState([]),[gt,yt]=reactExports.useState([]),[Ut,Ft]=reactExports.useState([]),mt=Tt=>{Tt.forEach(Bt=>{const xt=ot.current.get(Bt);xt&&(st.current.remove(xt),ot.current.delete(Bt))})},vt=Tt=>{const Bt="Arial",Ct=Tt.text,kt=`30px ${Bt}`,Nt=document.createElement("canvas"),Ot=definedAndNotNull$1(Nt.getContext("2d"));Ot.font=kt;const Dt=Ot.measureText(Ct).width,Et=30;Nt.width=Dt,Nt.height=Et,Ot.fillStyle="#2d3855",Ot.fillRect(0,0,Dt,Et),Ot.font=kt,Ot.fillStyle="#bac4e2",Ot.fillText(Ct,0,30);const Pt=new Texture(Nt);return Pt.needsUpdate=!0,{spriteMaterial:new SpriteMaterial({map:Pt}),textHeight:Et,textWidth:Dt}},At=(Tt,Bt)=>{if(Tt.points.length<2)Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.scale.set(Tt.scale.x,Tt.scale.z,Tt.scale.y),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w);else{const xt=new Vector3(Tt.points[0].x,Tt.points[0].y,Tt.points[0].z),Ct=new Vector3(Tt.points[1].x,Tt.points[1].y,Tt.points[1].z),kt=new Vector3().subVectors(Ct,xt),Nt=kt.length(),Ot=kt.normalize();Bt.position.set(xt.x,xt.y,xt.z),Bt.scale.set(1,Nt,1),Bt.quaternion.setFromUnitVectors(new Vector3(0,1,0),Ot)}},Lt=Tt=>{if(Tt.type==="line_list"||Tt.type==="line_strip"){const Bt=new LineBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a,linewidth:1}),xt=new BufferGeometry().setFromPoints(Tt.points),Ct=Tt.type==="line_list"?new LineSegments(xt,Bt):new Line$1(xt,Bt);Tt.colors&&(Ct.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(kt=>[kt.r,kt.g,kt.b]).flat(),3)),Ct.material.vertexColors=!0),Ct.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Ct.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(Ct),ot.current.set(Tt.id,Ct)}else if(Tt.type==="text"){const{spriteMaterial:Bt,textHeight:xt,textWidth:Ct}=vt(Tt),kt=new Sprite(Bt),Nt=1;kt.scale.set(1/Nt,xt/Ct/Nt,1/Nt),kt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),st.current.add(kt),ot.current.set(Tt.id,kt)}else if(Tt.type==="arrow"){const Bt=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),xt=Tt.points.length<2?.01:Tt.scale.x,Ct=Tt.points.length<2?.05:Tt.scale.y,kt=Tt.points.length<2&&Tt.scale.z?.1:Tt.scale.z,Nt=new CylinderGeometry(xt,xt,.5,8,1,!1),Ot=new ConeGeometry(Ct,kt,8,1,!1);Ot.translate(0,.25,0);const Wt=mergeGeometries([Nt,Ot]),Dt=new Mesh(Wt,Bt);At(Tt,Dt),st.current.add(Dt),ot.current.set(Tt.id,Dt)}else if(Tt.type==="cylinder"){const Bt=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),xt=new CylinderGeometry(.1,.1,Tt.scale.z,8,1,!1),Ct=new Mesh(xt,Bt);Ct.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Ct.scale.set(Tt.scale.x,1,Tt.scale.y),Ct.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(Ct),ot.current.set(Tt.id,Ct)}else if(Tt.type==="points"){const Bt=Tt.points.map(Nt=>new Vector3(Nt.x,Nt.y,Nt.z)),xt=new PointsMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a,size:Tt.scale.x/10}),Ct=new BufferGeometry().setFromPoints(Bt),kt=new Points(Ct,xt);Tt.colors&&(kt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(Nt=>[Nt.r,Nt.g,Nt.b]).flat(),3)),kt.material.vertexColors=!0),kt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),kt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(kt),ot.current.set(Tt.id,kt)}else if(Tt.type==="triangle_list"){const Bt=Tt.points.map(Nt=>new Vector3(Nt.x,Nt.y,Nt.z)),xt=new MeshBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),Ct=new BufferGeometry().setFromPoints(Bt),kt=new Mesh(Ct,xt);Tt.colors&&(kt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(Nt=>[Nt.r,Nt.g,Nt.b,Nt.r,Nt.g,Nt.b,Nt.r,Nt.g,Nt.b]).flat(),3)),kt.material.vertexColors=!0),kt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),kt.scale.set(Tt.scale.x,Tt.scale.z,Tt.scale.y),kt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(kt),ot.current.set(Tt.id,kt)}},Rt=(Tt,Bt)=>{if(Tt.type==="line_list"||Tt.type==="line_strip")Bt.geometry.setFromPoints(Tt.points),Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new LineBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a});else if(Tt.type==="text"){const{spriteMaterial:xt}=vt(Tt);Bt.material=xt}else Tt.type==="arrow"&&Bt instanceof Mesh?(At(Tt,Bt),Bt.material=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a})):Tt.type==="cylinder"?(Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.scale.set(Tt.scale.x,Tt.scale.z,Tt.scale.y),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a})):Tt.type==="points"?(Bt.geometry.setFromPoints(Tt.points),Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new PointsMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a,size:Tt.scale.x/10}),Tt.colors&&(Bt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(xt=>[xt.r,xt.g,xt.b]).flat(),3)),Bt.material.vertexColors=!0)):Tt.type==="triangle_list"&&(Bt.geometry.setFromPoints(Tt.points),Bt.scale.set(Tt.scale.x,Tt.scale.y,Tt.scale.z),Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new MeshBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),Tt.colors&&(Bt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(xt=>[xt.r,xt.g,xt.b,xt.r,xt.g,xt.b,xt.r,xt.g,xt.b]).flat(),3)),Bt.material.vertexColors=!0))},St=Tt=>{Tt.forEach(Bt=>{if(Bt.dirty){const xt=ot.current.get(Bt.id);xt?Rt(Bt,xt):Lt(Bt),Bt.dirty=!1}})};return reactExports.useEffect(()=>{const Tt=at.subscribeToGeometry(definedAndNotNull$1(dt,"geometry layer requires device context").deviceId,et,Bt=>{if(typeof Bt=="symbol")return;rt.current||(rt.current=!0);const xt=Bt,Ct=at.getTimeMs();Math.abs(Ct-ut.current)>MINIMUM_TIME_DIFFERENCE&&(nt.current.deleteAll(),mt([...ot.current.keys()])),ut.current=Ct,nt.current.processMarkers(xt);const kt=nt.current.getAllGeometry(),Nt=kt.filter(Et=>Et.type==="cube"),Ot=kt.filter(Et=>Et.type==="cube_list"),Wt=kt.filter(Et=>Et.type==="sphere_list"),Dt=kt.filter(Et=>Et.type==="sphere");reactExports.startTransition(()=>{St(kt.filter(en=>en.type!=="cube"&&en.type!=="cube_list"&&en.type!=="sphere"&&en.type!=="sphere_list"));const Et=[...ot.current.keys()],Pt=new Set(kt.map(en=>en.id)),zt=Et.filter(en=>!Pt.has(en));mt(zt),ct(Nt),ft(Dt),yt(Ot),Ft(Wt)})});return()=>{Tt()}},[]),reactExports.useEffect(()=>{it.refresh()},[rt.current]),jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:[jsxs$2("group",{children:[jsx$2("primitive",{object:st.current}),ht.length>0?jsx$2(InstancedGeometry,{instances:ht,allowTransparency:tt}):null,pt.length>0?jsx$2(InstancedGeometry,{instances:pt,allowTransparency:tt}):null,gt.map(Tt=>jsx$2(InstancedGeometryFromList,{instances:Tt},Tt.id)),Ut.map(Tt=>jsx$2(InstancedGeometryFromList,{instances:Tt},Tt.id))]}),o]})}function Axis(){return jsxs$2(Fragment$2,{children:[jsx$2(Line,{points:[-1e3,0,0,1e3,0,0],color:FormantColors.red,opacity:.4,lineWidth:.8,transparent:!0,depthTest:!0,fog:!0}),jsx$2(Line,{points:[0,-1e3,0,0,1e3,0],color:FormantColors.green,opacity:.4,lineWidth:.8,depthTest:!0,fog:!0,transparent:!0}),jsx$2(Line,{points:[0,0,-1e3,0,0,1e3],color:FormantColors.blue,opacity:.4,lineWidth:.8,depthTest:!0,fog:!0,transparent:!0})]})}function roundRect(s,o,et,tt,nt,rt,it){s.fillStyle=it,s.beginPath(),s.moveTo(o+rt,et),s.lineTo(o+tt-rt,et),s.quadraticCurveTo(o+tt,et,o+tt,et+rt),s.lineTo(o+tt,et+nt-rt),s.quadraticCurveTo(o+tt,et+nt,o+tt-rt,et+nt),s.lineTo(o+rt,et+nt),s.quadraticCurveTo(o,et+nt,o,et+nt-rt),s.lineTo(o,et+rt),s.quadraticCurveTo(o,et,o+rt,et),s.closePath(),s.fill()}class Label extends Group{constructor(o,et=!0){super(),this.sizeAttenuate=et,this.currentText=o,this.update(),this.scale.set(.6,.6,.6)}sprite;texture;material;currentText;update(){this.sprite&&(this.dispose(),this.remove(this.sprite),this.sprite=void 0);const o="Inter",et=30,tt=this.currentText,nt=`${et}px ${o}`,rt=document.createElement("canvas"),it=definedAndNotNull$1(rt.getContext("2d"));it.font=nt;const st=it.measureText(tt).width,at=et*1.5,lt=20;rt.width=st+lt,rt.height=at+lt,it.globalAlpha=.5,roundRect(it,0,0,st+lt,at+lt,20,"#2B334D20"),it.globalAlpha=1,it.font=nt,it.fillStyle="#bac4e2",it.fillText(tt,0+10,et+10);const ut=new Texture(rt);this.texture=ut,ut.needsUpdate=!0;const dt=new SpriteMaterial({map:ut,depthTest:!1,sizeAttenuation:this.sizeAttenuate,transparent:!0});this.material=dt;const ht=new Sprite(dt),ct=(this.sizeAttenuate?.002:.001)*rt.width;ht.scale.set(ct,(at+lt)/(st+lt)*ct,ct),this.add(ht),this.sprite=ht,this.renderOrder=100}get text(){return this.currentText}set text(o){this.currentText!==o&&(this.currentText=o,this.update())}dispose(){this.texture&&(this.texture.dispose(),this.texture=void 0),this.material&&(this.material.dispose(),this.material=void 0)}}class AxisLabels extends Group{labelRadius=1;constructor(o){super();const et=new Label("x",!1);et.position.set(this.labelRadius,0,0),this.add(et);const tt=new Label("y",!1);if(tt.position.set(0,this.labelRadius,0),this.add(tt),!o){const nt=new Label("z",!1);nt.position.set(0,0,this.labelRadius),this.add(nt)}}}const range=(s,o)=>o<=s?[]:new Array(o-s).fill(0).map((et,tt)=>tt+s);function PolarGrid({majorCircleColor:s=new Color$2(3029076),minorCircleColor:o=new Color$2(3555424)}){const et=[];return range(-1,2).forEach((tt,nt)=>{range(nt===0?1:3,21).forEach(it=>{const ot=it===10,st=Math.pow(10,tt)*it;et.push(jsx$2(Line,{points:generatePoints(st,36),color:ot?o:s,lineWidth:ot?.7:.5,opacity:.5,dashed:!1,depthTest:!0},`line-${tt}-${it}`))})}),jsx$2("group",{renderOrder:1,children:et})}function generatePoints(s,o){return[...new EllipseCurve(0,0,s,s,0,2*Math.PI,!1,0).getPoints(o).map(nt=>new Vector3(nt.x,nt.y,0))]}function GroundLayer(s){const{children:o,flatAxis:et}=s,tt=reactExports.useMemo(()=>new AxisLabels(et||!1),[]),nt=reactExports.useMemo(()=>jsx$2(PolarGrid,{}),[]);return jsx$2("group",{name:"axis",renderOrder:1,children:jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:[jsx$2(Axis,{}),jsx$2("primitive",{object:tt}),nt,o]})})}async function loadTexture(s){const o=new Texture,tt=await(await fetch(s)).blob(),nt=new Image;return nt.src=URL.createObjectURL(tt),await new Promise((rt,it)=>{nt.onload=()=>{rt(!0)},nt.onerror=()=>{it(!1)}}),o.image=nt,URL.revokeObjectURL(nt.src),o.needsUpdate=!0,o}const getBoundingCoordinatesFromCenter=(s,o,et)=>{const tt={north:0,east:90,south:180,west:270},nt=6371e3,rt=et?[et[1]/(nt*Math.PI/180),et[0]/(nt*Math.PI/180*Math.cos(s[1]*Math.PI/180))]:[0,0],it=[s[0]+rt[1],s[1]+rt[0]],ot=es.computeDestinationPoint(it,o,tt.north,nt).latitude.toFixed(9),st=es.computeDestinationPoint(it,o,tt.south,nt).latitude.toFixed(9),at=es.computeDestinationPoint(it,o,tt.east,nt).longitude.toFixed(9),lt=es.computeDestinationPoint(it,o,tt.west,nt).longitude.toFixed(9);return{maxLatitude:ot,minLatitude:st,maxLongitude:at,minLongitude:lt}},getGridCoordinates=(s,o)=>{const et=Math.floor(s/o),tt=-(s/2)+o/2,nt=-(s/2)+o/2,rt=[];for(let it=0;it>2]|=s[tt]<>2]|=et<>2]|=(192|et>>6)<>2]|=(128|et&63)<=57344?(it[nt>>2]|=(224|et>>12)<>2]|=(128|et>>6&63)<>2]|=(128|et&63)<>2]|=(240|et>>18)<>2]|=(128|et>>12&63)<>2]|=(128|et>>6&63)<>2]|=(128|et&63)<=64?(this.block=it[16],this.start=nt-64,this.hash(),this.hashed=!0):this.start=nt}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha1.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var s=this.blocks,o=this.lastByteIndex;s[16]=this.block,s[o>>2]|=EXTRA[o&3],this.block=s[16],o>=56&&(this.hashed||this.hash(),s[0]=this.block,s[16]=s[1]=s[2]=s[3]=s[4]=s[5]=s[6]=s[7]=s[8]=s[9]=s[10]=s[11]=s[12]=s[13]=s[14]=s[15]=0),s[14]=this.hBytes<<3|this.bytes>>>29,s[15]=this.bytes<<3,this.hash()}},Sha1.prototype.hash=function(){var s=this.h0,o=this.h1,et=this.h2,tt=this.h3,nt=this.h4,rt,it,ot,st=this.blocks;for(it=16;it<80;++it)ot=st[it-3]^st[it-8]^st[it-14]^st[it-16],st[it]=ot<<1|ot>>>31;for(it=0;it<20;it+=5)rt=o&et|~o&tt,ot=s<<5|s>>>27,nt=ot+rt+nt+1518500249+st[it]<<0,o=o<<30|o>>>2,rt=s&o|~s&et,ot=nt<<5|nt>>>27,tt=ot+rt+tt+1518500249+st[it+1]<<0,s=s<<30|s>>>2,rt=nt&s|~nt&o,ot=tt<<5|tt>>>27,et=ot+rt+et+1518500249+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt&nt|~tt&s,ot=et<<5|et>>>27,o=ot+rt+o+1518500249+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et&tt|~et&nt,ot=o<<5|o>>>27,s=ot+rt+s+1518500249+st[it+4]<<0,et=et<<30|et>>>2;for(;it<40;it+=5)rt=o^et^tt,ot=s<<5|s>>>27,nt=ot+rt+nt+1859775393+st[it]<<0,o=o<<30|o>>>2,rt=s^o^et,ot=nt<<5|nt>>>27,tt=ot+rt+tt+1859775393+st[it+1]<<0,s=s<<30|s>>>2,rt=nt^s^o,ot=tt<<5|tt>>>27,et=ot+rt+et+1859775393+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt^nt^s,ot=et<<5|et>>>27,o=ot+rt+o+1859775393+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et^tt^nt,ot=o<<5|o>>>27,s=ot+rt+s+1859775393+st[it+4]<<0,et=et<<30|et>>>2;for(;it<60;it+=5)rt=o&et|o&tt|et&tt,ot=s<<5|s>>>27,nt=ot+rt+nt-1894007588+st[it]<<0,o=o<<30|o>>>2,rt=s&o|s&et|o&et,ot=nt<<5|nt>>>27,tt=ot+rt+tt-1894007588+st[it+1]<<0,s=s<<30|s>>>2,rt=nt&s|nt&o|s&o,ot=tt<<5|tt>>>27,et=ot+rt+et-1894007588+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt&nt|tt&s|nt&s,ot=et<<5|et>>>27,o=ot+rt+o-1894007588+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et&tt|et&nt|tt&nt,ot=o<<5|o>>>27,s=ot+rt+s-1894007588+st[it+4]<<0,et=et<<30|et>>>2;for(;it<80;it+=5)rt=o^et^tt,ot=s<<5|s>>>27,nt=ot+rt+nt-899497514+st[it]<<0,o=o<<30|o>>>2,rt=s^o^et,ot=nt<<5|nt>>>27,tt=ot+rt+tt-899497514+st[it+1]<<0,s=s<<30|s>>>2,rt=nt^s^o,ot=tt<<5|tt>>>27,et=ot+rt+et-899497514+st[it+2]<<0,nt=nt<<30|nt>>>2,rt=tt^nt^s,ot=et<<5|et>>>27,o=ot+rt+o-899497514+st[it+3]<<0,tt=tt<<30|tt>>>2,rt=et^tt^nt,ot=o<<5|o>>>27,s=ot+rt+s-899497514+st[it+4]<<0,et=et<<30|et>>>2;this.h0=this.h0+s<<0,this.h1=this.h1+o<<0,this.h2=this.h2+et<<0,this.h3=this.h3+tt<<0,this.h4=this.h4+nt<<0},Sha1.prototype.hex=function(){this.finalize();var s=this.h0,o=this.h1,et=this.h2,tt=this.h3,nt=this.h4;return HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15]+HEX_CHARS[et>>28&15]+HEX_CHARS[et>>24&15]+HEX_CHARS[et>>20&15]+HEX_CHARS[et>>16&15]+HEX_CHARS[et>>12&15]+HEX_CHARS[et>>8&15]+HEX_CHARS[et>>4&15]+HEX_CHARS[et&15]+HEX_CHARS[tt>>28&15]+HEX_CHARS[tt>>24&15]+HEX_CHARS[tt>>20&15]+HEX_CHARS[tt>>16&15]+HEX_CHARS[tt>>12&15]+HEX_CHARS[tt>>8&15]+HEX_CHARS[tt>>4&15]+HEX_CHARS[tt&15]+HEX_CHARS[nt>>28&15]+HEX_CHARS[nt>>24&15]+HEX_CHARS[nt>>20&15]+HEX_CHARS[nt>>16&15]+HEX_CHARS[nt>>12&15]+HEX_CHARS[nt>>8&15]+HEX_CHARS[nt>>4&15]+HEX_CHARS[nt&15]},Sha1.prototype.toString=Sha1.prototype.hex,Sha1.prototype.digest=function(){this.finalize();var s=this.h0,o=this.h1,et=this.h2,tt=this.h3,nt=this.h4;return[s>>24&255,s>>16&255,s>>8&255,s&255,o>>24&255,o>>16&255,o>>8&255,o&255,et>>24&255,et>>16&255,et>>8&255,et&255,tt>>24&255,tt>>16&255,tt>>8&255,tt&255,nt>>24&255,nt>>16&255,nt>>8&255,nt&255]},Sha1.prototype.array=Sha1.prototype.digest,Sha1.prototype.arrayBuffer=function(){this.finalize();var s=new ArrayBuffer(20),o=new DataView(s);return o.setUint32(0,this.h0),o.setUint32(4,this.h1),o.setUint32(8,this.h2),o.setUint32(12,this.h3),o.setUint32(16,this.h4),s};var exports=createMethod();COMMON_JS?module.exports=exports:root.sha1=exports})()})(sha1$1);var sha1Exports=sha1$1.exports,md5=md5Exports,sha1=sha1Exports,HEX_DIGITS="0123456789abcdef".split(""),UUID_LENGTH=36,UUID_REGEXP=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i,HEX_TO_BYTE_MAP=function(){for(var s={},o=0;o<256;o++){var et=o.toString(16);s[et.length===1?"0"+et:et]=o}return s}(),uint8ToHex=function(s){var o=s>>4,et=s-(o<<4);return HEX_DIGITS[o]+HEX_DIGITS[et]},uint8ArrayToHex=function(s){for(var o="",et=0;etnew Vector3(nt,rt,it),tt=({x:nt,y:rt,z:it,w:ot})=>new Quaternion(nt,rt,it,ot);return new Matrix4().multiply(new Matrix4().setPosition(et(s))).multiply(new Matrix4().makeRotationFromQuaternion(tt(o)))}class PathGeometry extends BufferGeometry{constructor(o,et,tt=200){super();const nt=tt*10,rt=4,it=nt+1,ot=rt+1,st=nt*rt*2,at=it*ot,lt=new Uint32Array(st*3),ut=new Float32Array(at*3);var dt=new CatmullRomCurve3(o);const ht=dt.getPoints(nt);let ct=0;for(var pt=0;pt(s.STATIC="Static",s.DYNAMIC="Dynamic",s))(PathType||{}),PROPERTY_TYPE=(s=>(s.FLOAT="Float",s.INTEGER="Integer",s.BOOLEAN="Boolean",s.STRING="String",s.ENUM="Enum",s.MEATADATA="Metadata",s))(PROPERTY_TYPE||{}),SENDING_STATUS=(s=>(s.NONE="not sent yet",s.WAITING="waiting",s.SUCCESS="sucess",s.FAIL="fail",s))(SENDING_STATUS||{});extend({PathGeometry});const Path=({points:s,color:o="#0000ff",pathOpacity:et=50,pathWidth:tt=.25,pathType:nt=PathType.STATIC,pathFlatten:rt=!1,renderOrder:it=0})=>{const ot=reactExports.useRef(null);reactExports.useEffect(()=>{if(!ot.current)return;const at=ot.current;at.matrixAutoUpdate=!1},[]);const st=rt?s.map(at=>at.setZ(0)):s;return jsx$2("group",{ref:ot,children:s.length>1&&jsx$2(Fragment$2,{children:nt===PathType.STATIC?jsxs$2("mesh",{renderOrder:it,children:[jsx$2("pathGeometry",{args:[st,tt,s.length]}),jsx$2("meshBasicMaterial",{transparent:!0,opacity:et/100,color:o,side:DoubleSide,depthWrite:!1})]}):jsx$2(Line,{points:st,lineWidth:18,color:o,worldUnits:!1,renderOrder:it})})})},millisecond$1=1,second$1=1e3,minute$1=60*second$1,hour$1=60*minute$1,day$1=24*hour$1,week$1=7*day$1,month$1=30*day$1,year$1=365*day$1,duration$1={millisecond:millisecond$1,second:second$1,minute:minute$1,hour:hour$1,day:day$1,week:week$1,month:month$1,year:year$1};function findPathToName(s,o,et){const tt=et||[];for(let nt=0;nt0){const it=findPathToName(rt,o,[...tt,nt]);if(it.length>0)return it}}return[]}function buildTransformList(s,o,et){const tt=et||[],nt=o.shift();if(nt===void 0)return tt;const rt=s[nt],it=defined$1(rt.transform).translation,{rotation:ot}=defined$1(rt.transform);return tt.push({pos:new Vector3(it.x,it.y,it.z),rotation:new Quaternion(ot.x,ot.y,ot.z,ot.w)}),rt.children?buildTransformList(rt.children,o,tt):tt}function DataVisualizationLayer(s){const[o,et]=reactExports.useState(),[tt,nt]=reactExports.useState(void 0),[rt,it]=reactExports.useContext(UniverseDataContext),{register:ot,layers:st,debug:at}=reactExports.useContext(UIDataContext),lt=reactExports.useContext(LayerContext);let ut;lt&&(ut=lt.deviceId);const{children:dt,positioning:ht,visible:ct,name:pt,id:ft,treePath:gt,type:yt,iconUrl:Ut,trailEnabled:Ft,trailFlatten:mt,trailOpacity:vt,trailSeconds:At=15,trailType:Lt,trailWidth:Rt}=s,[St,Tt]=reactExports.useState([]),Bt=reactExports.useRef(null),xt=reactExports.useRef(at?new Box3:null),Ct=reactExports.useRef("yellow");return useHelper(xt,Box3Helper,Ct.current),reactExports.useEffect(()=>{const kt=ft||getUuidByString(JSON.stringify({name:pt,type:yt,treePath:gt})),Nt=ot(pt||"Layer",kt,yt||LayerType.OTHER,Ut,gt,ct);nt(Nt)},[]),reactExports.useEffect(()=>{const kt=ht||PositioningBuilder.fixed(0,0,0);if(Bt.current){const Nt=Bt.current;if(o&&(o(),et(void 0)),kt.type==="cartesian"){const{x:Ot,y:Jt,z:Dt}=kt;Nt.position.set(Ot,Jt,Dt)}else if(kt.type==="gps"){const Ot=rt.subscribeToLocation(defined$1(ut,"gps positioning requires a device id"),DataSourceBuilder.telemetry(kt.stream,"location"),Jt=>{if(typeof Jt=="symbol")return;const Dt=Jt,Et={longitude:Dt.longitude,latitude:Dt.latitude},Pt={longitude:kt.relativeToLongitude,latitude:Dt.latitude};let zt=es.getDistance(Et,Pt,1e-6);const en={longitude:Dt.longitude,latitude:Dt.latitude},Kt={longitude:Dt.longitude,latitude:kt.relativeToLatitude};let nn=es.getDistance(en,Kt,1e-6);Dt.latitudeOt)}else if(kt.type==="odometry"){let Ot,Jt;if(kt.rtcStream)Ot=DataSourceBuilder.realtime(kt.rtcStream,"json"),Jt="rtc";else if(kt.stream)Ot=DataSourceBuilder.telemetry(kt.stream,void 0,kt.useLatestDataPoint||!1),Jt="telemetry";else throw new Error("invalid odometry positioning stream type");const Dt=(Jt==="rtc"?it:rt).subscribeToOdometry(defined$1(ut,"odometry positioning requires a device id"),Ot,Et=>{if(typeof Et=="symbol")return;const Pt=Et,zt=Pt.pose.translation,en=Pt.pose.rotation;if(Pt.trail&&Ft){const Kt=Pt.trail.map(nn=>[nn[0],new Vector3(nn[1].translation.x,nn[1].translation.y,nn[1].translation.z)]);Tt(Kt)}else if(Ft){const Kt=[rt.getTimeMs(),new Vector3(zt.x,zt.y,zt.z)];Tt(nn=>[...nn.filter(Zt=>rt.getTimeMs()-Zt[0]Dt)}else if(kt.type==="transform tree"){const Ot=rt.subscribeToTransformTree(defined$1(ut,"transform tree positioning requires a device id"),DataSourceBuilder.telemetry(kt.stream,"transform tree"),Jt=>{if(typeof Jt=="symbol")return;fetch(defined$1(Jt.url)).then(Et=>Et.json()).then(Et=>{const Pt=findPathToName([Et],defined$1(kt.end)),Kt=buildTransformList([Et],Pt).map(nn=>new Matrix4().compose(new Vector3(nn.pos.x,nn.pos.y,nn.pos.z),nn.rotation,new Vector3(1,1,1))).reduce((nn,Zt)=>nn.multiply(Zt),new Matrix4);Nt.matrix=Kt,Nt.matrixAutoUpdate=!1}).catch(Et=>{throw Et})});et(()=>Ot)}}return()=>{o&&(o(),et(void 0))}},[Bt,ht,tt]),useFrame(()=>{if(Bt.current&&at){const kt=xt.current,Nt=Bt.current;kt.setFromObject(Nt)}}),reactExports.useEffect(()=>{tt&&Bt.current&&nt({...tt,visible:Bt.current.visible})},[Bt.current?.visible]),jsxs$2(Fragment$2,{children:[jsx$2("group",{ref:Bt,visible:tt?tt.visible:!0,name:tt?tt.id:"",userData:{name:tt?.name},children:dt}),tt&&tt.visible&&jsx$2(Path,{points:St.map(kt=>kt[1]),color:FormantColors.blue,pathOpacity:vt,pathWidth:Rt,pathType:Lt,pathFlatten:mt,renderOrder:2})]})}const EmptyLayer=s=>{const{children:o,name:et,id:tt,treePath:nt,type:rt}=s;return jsx$2(DataVisualizationLayer,{...s,type:LayerType.CONTAINER,children:o})};function mergeGeometries(s,o=!1){const et=s[0].index!==null,tt=new Set(Object.keys(s[0].attributes)),nt=new Set(Object.keys(s[0].morphAttributes)),rt={},it={},ot=s[0].morphTargetsRelative,st=new BufferGeometry;let at=0;for(let lt=0;lt{let tt=this.geometry.get(et.ns);tt===void 0&&(tt=new Map,this.geometry.set(et.ns,tt));const{action:nt,type:rt}=et,it=nt===2,ot=nt===3;if(ot)this.geometry=new Map;else{et.id===void 0&&(et.id=0),reifyVector3(et.pose.position),reifyQuaternion(et.pose.orientation),reifyVector3(et.scale),reifyColor(et.color),et.points&&et.points.forEach(lt=>{reifyVector3(lt)});const at={0:"arrow",1:"cube",2:"sphere",3:"cylinder",4:"line_strip",5:"line_list",6:"cube_list",7:"sphere_list",8:"points",9:"text",10:"mesh_resource",11:"triangle_list"}[rt];if(at==="mesh_resource"){console.warn("Mesh resource markers are not supported");return}if(at&&!ot){const lt={id:`${et.ns}_${et.id}`,type:at,position:et.pose.position,rotation:et.pose.orientation,scale:et.scale,color:et.color,dirty:!0};et.points&&(lt.points=et.points),et.text&&(lt.text=et.text),et.colors&&(lt.colors=et.colors),tt.set(et.id,lt),it&&tt.delete(et.id)}}})}getAllGeometry(){const o=[];return this.geometry.forEach(et=>{et.forEach(tt=>{o.push(tt)})}),o}}const MINIMUM_TIME_DIFFERENCE=12*duration$1.hour;function InstancedGeometry({instances:s,allowTransparency:o}){const et=reactExports.useRef(null),tt=reactExports.useRef(new Box3),nt=s[0].type,rt=reactExports.useRef(new Map),it=reactExports.useMemo(()=>new Object3D,[]);return reactExports.useLayoutEffect(()=>{et.current&&(tt.current.setFromCenterAndSize(new Vector3(s[0].position.x,s[0].position.y,s[0].position.z),new Vector3(.1,.1,.1)),et.current&&(s.forEach((ot,st)=>{const{position:at,rotation:lt,scale:ut,color:dt}=ot,ht=getUuidByString(`${ot.id}-${at.x}${at.y}${at.z}${lt.x}${lt.y}${lt.z}${lt.w}${ut.x}${ut.y}${ut.z}`);let ct=rt.current.get(ht);ct||(it.position.set(at.x,at.y,at.z),it.quaternion.set(lt.x,lt.y,lt.z,lt.w),it.scale.set(ut.x,ut.y,ut.z),tt.current.expandByPoint(it.position),it.updateMatrix(),ct=it.matrix.clone(),rt.current.set(ht,it.matrix.clone())),et.current.setMatrixAt(st,ct),et.current.setColorAt(st,new Color$2(dt.r,dt.g,dt.b))}),et.current.up=new Vector3(0,0,1),et.current.instanceMatrix.needsUpdate=!0,et.current.instanceColor&&(et.current.instanceColor.needsUpdate=!0)))},[et,s]),o?jsxs$2("group",{children:[s&&nt==="sphere"?s.map(ot=>jsx$2(Sphere,{args:[.5,32,16],scale:[ot.scale.x,ot.scale.y,ot.scale.z],position:[ot.position.x,ot.position.y,ot.position.z],quaternion:[ot.rotation.x,ot.rotation.y,ot.rotation.z,ot.rotation.w],children:jsx$2("meshLambertMaterial",{attach:"material",color:[ot.color.r,ot.color.g,ot.color.b],opacity:ot.color.a,transparent:ot.color.a<1})},ot.id)):null,s&&nt==="cube"?s.map(ot=>jsx$2(Box,{args:[.9,.9,.9],scale:[ot.scale.x,ot.scale.y,ot.scale.z],position:[ot.position.x,ot.position.y,ot.position.z],quaternion:[ot.rotation.x,ot.rotation.y,ot.rotation.z,ot.rotation.w],children:jsx$2("meshLambertMaterial",{attach:"material",color:[ot.color.r,ot.color.g,ot.color.b],opacity:ot.color.a,transparent:ot.color.a<1})},ot.id)):null]}):jsxs$2(Fragment$2,{children:[jsxs$2("instancedMesh",{ref:et,args:[null,null,s.length],up:new Vector3(0,0,1),children:[nt==="sphere"?jsx$2("sphereGeometry",{attach:"geometry",args:[.5,32,16]}):null,nt==="cube"?jsx$2("boxGeometry",{attach:"geometry",args:[.9,.9,.9]}):null,jsx$2("meshLambertMaterial",{attach:"material"})]}),jsx$2("box3Helper",{args:[tt.current],visible:!1})]})}function InstancedGeometryFromList({instances:s}){if(!s.points)return null;const o=reactExports.useRef(null),et=reactExports.useRef(new Box3),tt=s.type,nt=reactExports.useRef(new Map),rt=reactExports.useMemo(()=>new Object3D,[]);return reactExports.useLayoutEffect(()=>{if(s.points!==void 0&&o.current){et.current.setFromCenterAndSize(new Vector3(s.position.x,s.position.y,s.position.z),new Vector3(.1,.1,.1));const it=s.points,ot=s.position,st=s.colors,at=s.scale;it.map((lt,ut)=>{const dt=getUuidByString(`${ut}-${lt.x}${lt.y}${lt.z}`);let ht=nt.current.get(dt);ht||(rt.position.set(ot.x+lt.x,ot.y+lt.y,ot.z+lt.z),rt.scale.set(at.x,at.y,at.z),rt.updateMatrix(),ht=rt.matrix.clone(),nt.current.set(dt,rt.matrix.clone())),et.current.expandByPoint(rt.position),o.current&&(o.current.up=new Vector3(0,0,1),o.current.setMatrixAt(ut,ht),st&&st[ut]?o.current.setColorAt(ut,new Color$2(st[ut].r,st[ut].g,st[ut].b)):o.current.setColorAt(ut,new Color$2(s.color.r,s.color.g,s.color.b)))}),o.current&&(o.current.instanceMatrix.needsUpdate=!0,o.current.instanceColor&&(o.current.instanceColor.needsUpdate=!0))}},[o,s]),jsxs$2(Fragment$2,{children:[jsxs$2("instancedMesh",{ref:o,args:[null,null,s.points.length],up:new Vector3(0,0,1),children:[tt==="sphere_list"?jsx$2("sphereGeometry",{attach:"geometry",args:[.5,32,16]}):null,tt==="cube_list"?jsx$2("boxGeometry",{attach:"geometry",args:[.9,.9,.9]}):null,jsx$2("meshLambertMaterial",{attach:"material"})]}),jsx$2("box3Helper",{args:[et.current],visible:!1})]})}function GeometryLayer(s){const{children:o,dataSource:et,allowTransparency:tt}=s,nt=reactExports.useRef(new GeometryWorld),rt=reactExports.useRef(!1),it=useBounds(),ot=reactExports.useRef(new Map),st=reactExports.useRef(new Object3D),[at,lt]=reactExports.useContext(UniverseDataContext),ut=reactExports.useRef(at.getTimeMs()),dt=reactExports.useContext(LayerContext),[ht,ct]=reactExports.useState([]),[pt,ft]=reactExports.useState([]),[gt,yt]=reactExports.useState([]),[Ut,Ft]=reactExports.useState([]),mt=Tt=>{Tt.forEach(Bt=>{const xt=ot.current.get(Bt);xt&&(st.current.remove(xt),ot.current.delete(Bt))})},vt=Tt=>{const Bt="Arial",Ct=Tt.text,kt=`30px ${Bt}`,Nt=document.createElement("canvas"),Ot=definedAndNotNull$1(Nt.getContext("2d"));Ot.font=kt;const Dt=Ot.measureText(Ct).width,Et=30;Nt.width=Dt,Nt.height=Et,Ot.fillStyle="#2d3855",Ot.fillRect(0,0,Dt,Et),Ot.font=kt,Ot.fillStyle="#bac4e2",Ot.fillText(Ct,0,30);const Pt=new Texture(Nt);return Pt.needsUpdate=!0,{spriteMaterial:new SpriteMaterial({map:Pt}),textHeight:Et,textWidth:Dt}},At=(Tt,Bt)=>{if(Tt.points.length<2)Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.scale.set(Tt.scale.x,Tt.scale.z,Tt.scale.y),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w);else{const xt=new Vector3(Tt.points[0].x,Tt.points[0].y,Tt.points[0].z),Ct=new Vector3(Tt.points[1].x,Tt.points[1].y,Tt.points[1].z),kt=new Vector3().subVectors(Ct,xt),Nt=kt.length(),Ot=kt.normalize();Bt.position.set(xt.x,xt.y,xt.z),Bt.scale.set(1,Nt,1),Bt.quaternion.setFromUnitVectors(new Vector3(0,1,0),Ot)}},Lt=Tt=>{if(Tt.type==="line_list"||Tt.type==="line_strip"){const Bt=new LineBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a,linewidth:1}),xt=new BufferGeometry().setFromPoints(Tt.points),Ct=Tt.type==="line_list"?new LineSegments(xt,Bt):new Line$1(xt,Bt);Tt.colors&&(Ct.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(kt=>[kt.r,kt.g,kt.b]).flat(),3)),Ct.material.vertexColors=!0),Ct.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Ct.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(Ct),ot.current.set(Tt.id,Ct)}else if(Tt.type==="text"){const{spriteMaterial:Bt,textHeight:xt,textWidth:Ct}=vt(Tt),kt=new Sprite(Bt),Nt=1;kt.scale.set(1/Nt,xt/Ct/Nt,1/Nt),kt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),st.current.add(kt),ot.current.set(Tt.id,kt)}else if(Tt.type==="arrow"){const Bt=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),xt=Tt.points.length<2?.01:Tt.scale.x,Ct=Tt.points.length<2?.05:Tt.scale.y,kt=Tt.points.length<2&&Tt.scale.z?.1:Tt.scale.z,Nt=new CylinderGeometry(xt,xt,.5,8,1,!1),Ot=new ConeGeometry(Ct,kt,8,1,!1);Ot.translate(0,.25,0);const Jt=mergeGeometries([Nt,Ot]),Dt=new Mesh(Jt,Bt);At(Tt,Dt),st.current.add(Dt),ot.current.set(Tt.id,Dt)}else if(Tt.type==="cylinder"){const Bt=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),xt=new CylinderGeometry(.1,.1,Tt.scale.z,8,1,!1),Ct=new Mesh(xt,Bt);Ct.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Ct.scale.set(Tt.scale.x,1,Tt.scale.y),Ct.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(Ct),ot.current.set(Tt.id,Ct)}else if(Tt.type==="points"){const Bt=Tt.points.map(Nt=>new Vector3(Nt.x,Nt.y,Nt.z)),xt=new PointsMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a,size:Tt.scale.x/10}),Ct=new BufferGeometry().setFromPoints(Bt),kt=new Points(Ct,xt);Tt.colors&&(kt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(Nt=>[Nt.r,Nt.g,Nt.b]).flat(),3)),kt.material.vertexColors=!0),kt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),kt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(kt),ot.current.set(Tt.id,kt)}else if(Tt.type==="triangle_list"){const Bt=Tt.points.map(Nt=>new Vector3(Nt.x,Nt.y,Nt.z)),xt=new MeshBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),Ct=new BufferGeometry().setFromPoints(Bt),kt=new Mesh(Ct,xt);Tt.colors&&(kt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(Nt=>[Nt.r,Nt.g,Nt.b,Nt.r,Nt.g,Nt.b,Nt.r,Nt.g,Nt.b]).flat(),3)),kt.material.vertexColors=!0),kt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),kt.scale.set(Tt.scale.x,Tt.scale.z,Tt.scale.y),kt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),st.current.add(kt),ot.current.set(Tt.id,kt)}},Rt=(Tt,Bt)=>{if(Tt.type==="line_list"||Tt.type==="line_strip")Bt.geometry.setFromPoints(Tt.points),Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new LineBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a});else if(Tt.type==="text"){const{spriteMaterial:xt}=vt(Tt);Bt.material=xt}else Tt.type==="arrow"&&Bt instanceof Mesh?(At(Tt,Bt),Bt.material=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a})):Tt.type==="cylinder"?(Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.scale.set(Tt.scale.x,Tt.scale.z,Tt.scale.y),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new MeshLambertMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a})):Tt.type==="points"?(Bt.geometry.setFromPoints(Tt.points),Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new PointsMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a,size:Tt.scale.x/10}),Tt.colors&&(Bt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(xt=>[xt.r,xt.g,xt.b]).flat(),3)),Bt.material.vertexColors=!0)):Tt.type==="triangle_list"&&(Bt.geometry.setFromPoints(Tt.points),Bt.scale.set(Tt.scale.x,Tt.scale.y,Tt.scale.z),Bt.position.set(Tt.position.x,Tt.position.y,Tt.position.z),Bt.quaternion.set(Tt.rotation.x,Tt.rotation.y,Tt.rotation.z,Tt.rotation.w),Bt.material=new MeshBasicMaterial({color:new Color$2(Tt.color.r,Tt.color.g,Tt.color.b),opacity:Tt.color.a}),Tt.colors&&(Bt.geometry.setAttribute("color",new Float32BufferAttribute(Tt.colors.map(xt=>[xt.r,xt.g,xt.b,xt.r,xt.g,xt.b,xt.r,xt.g,xt.b]).flat(),3)),Bt.material.vertexColors=!0))},St=Tt=>{Tt.forEach(Bt=>{if(Bt.dirty){const xt=ot.current.get(Bt.id);xt?Rt(Bt,xt):Lt(Bt),Bt.dirty=!1}})};return reactExports.useEffect(()=>{const Tt=at.subscribeToGeometry(definedAndNotNull$1(dt,"geometry layer requires device context").deviceId,et,Bt=>{if(typeof Bt=="symbol")return;rt.current||(rt.current=!0);const xt=Bt,Ct=at.getTimeMs();Math.abs(Ct-ut.current)>MINIMUM_TIME_DIFFERENCE&&(nt.current.deleteAll(),mt([...ot.current.keys()])),ut.current=Ct,nt.current.processMarkers(xt);const kt=nt.current.getAllGeometry(),Nt=kt.filter(Et=>Et.type==="cube"),Ot=kt.filter(Et=>Et.type==="cube_list"),Jt=kt.filter(Et=>Et.type==="sphere_list"),Dt=kt.filter(Et=>Et.type==="sphere");reactExports.startTransition(()=>{St(kt.filter(en=>en.type!=="cube"&&en.type!=="cube_list"&&en.type!=="sphere"&&en.type!=="sphere_list"));const Et=[...ot.current.keys()],Pt=new Set(kt.map(en=>en.id)),zt=Et.filter(en=>!Pt.has(en));mt(zt),ct(Nt),ft(Dt),yt(Ot),Ft(Jt)})});return()=>{Tt()}},[]),reactExports.useEffect(()=>{it.refresh()},[rt.current]),jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:[jsxs$2("group",{children:[jsx$2("primitive",{object:st.current}),ht.length>0?jsx$2(InstancedGeometry,{instances:ht,allowTransparency:tt}):null,pt.length>0?jsx$2(InstancedGeometry,{instances:pt,allowTransparency:tt}):null,gt.map(Tt=>jsx$2(InstancedGeometryFromList,{instances:Tt},Tt.id)),Ut.map(Tt=>jsx$2(InstancedGeometryFromList,{instances:Tt},Tt.id))]}),o]})}function Axis(){return jsxs$2(Fragment$2,{children:[jsx$2(Line,{points:[-1e3,0,0,1e3,0,0],color:FormantColors.red,opacity:.4,lineWidth:.8,transparent:!0,depthTest:!0,fog:!0}),jsx$2(Line,{points:[0,-1e3,0,0,1e3,0],color:FormantColors.green,opacity:.4,lineWidth:.8,depthTest:!0,fog:!0,transparent:!0}),jsx$2(Line,{points:[0,0,-1e3,0,0,1e3],color:FormantColors.blue,opacity:.4,lineWidth:.8,depthTest:!0,fog:!0,transparent:!0})]})}function roundRect(s,o,et,tt,nt,rt,it){s.fillStyle=it,s.beginPath(),s.moveTo(o+rt,et),s.lineTo(o+tt-rt,et),s.quadraticCurveTo(o+tt,et,o+tt,et+rt),s.lineTo(o+tt,et+nt-rt),s.quadraticCurveTo(o+tt,et+nt,o+tt-rt,et+nt),s.lineTo(o+rt,et+nt),s.quadraticCurveTo(o,et+nt,o,et+nt-rt),s.lineTo(o,et+rt),s.quadraticCurveTo(o,et,o+rt,et),s.closePath(),s.fill()}class Label extends Group{constructor(o,et=!0){super(),this.sizeAttenuate=et,this.currentText=o,this.update(),this.scale.set(.6,.6,.6)}sprite;texture;material;currentText;update(){this.sprite&&(this.dispose(),this.remove(this.sprite),this.sprite=void 0);const o="Inter",et=30,tt=this.currentText,nt=`${et}px ${o}`,rt=document.createElement("canvas"),it=definedAndNotNull$1(rt.getContext("2d"));it.font=nt;const st=it.measureText(tt).width,at=et*1.5,lt=20;rt.width=st+lt,rt.height=at+lt,it.globalAlpha=.5,roundRect(it,0,0,st+lt,at+lt,20,"#2B334D20"),it.globalAlpha=1,it.font=nt,it.fillStyle="#bac4e2",it.fillText(tt,0+10,et+10);const ut=new Texture(rt);this.texture=ut,ut.needsUpdate=!0;const dt=new SpriteMaterial({map:ut,depthTest:!1,sizeAttenuation:this.sizeAttenuate,transparent:!0});this.material=dt;const ht=new Sprite(dt),ct=(this.sizeAttenuate?.002:.001)*rt.width;ht.scale.set(ct,(at+lt)/(st+lt)*ct,ct),this.add(ht),this.sprite=ht,this.renderOrder=100}get text(){return this.currentText}set text(o){this.currentText!==o&&(this.currentText=o,this.update())}dispose(){this.texture&&(this.texture.dispose(),this.texture=void 0),this.material&&(this.material.dispose(),this.material=void 0)}}class AxisLabels extends Group{labelRadius=1;constructor(o){super();const et=new Label("x",!1);et.position.set(this.labelRadius,0,0),this.add(et);const tt=new Label("y",!1);if(tt.position.set(0,this.labelRadius,0),this.add(tt),!o){const nt=new Label("z",!1);nt.position.set(0,0,this.labelRadius),this.add(nt)}}}const range=(s,o)=>o<=s?[]:new Array(o-s).fill(0).map((et,tt)=>tt+s);function PolarGrid({majorCircleColor:s=new Color$2(3029076),minorCircleColor:o=new Color$2(3555424)}){const et=[];return range(-1,2).forEach((tt,nt)=>{range(nt===0?1:3,21).forEach(it=>{const ot=it===10,st=Math.pow(10,tt)*it;et.push(jsx$2(Line,{points:generatePoints(st,36),color:ot?o:s,lineWidth:ot?.7:.5,opacity:.5,dashed:!1,depthTest:!0},`line-${tt}-${it}`))})}),jsx$2("group",{renderOrder:1,children:et})}function generatePoints(s,o){return[...new EllipseCurve(0,0,s,s,0,2*Math.PI,!1,0).getPoints(o).map(nt=>new Vector3(nt.x,nt.y,0))]}function GroundLayer(s){const{children:o,flatAxis:et}=s,tt=reactExports.useMemo(()=>new AxisLabels(et||!1),[]),nt=reactExports.useMemo(()=>jsx$2(PolarGrid,{}),[]);return jsx$2("group",{name:"axis",renderOrder:1,children:jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:[jsx$2(Axis,{}),jsx$2("primitive",{object:tt}),nt,o]})})}async function loadTexture(s){const o=new Texture,tt=await(await fetch(s)).blob(),nt=new Image;return nt.src=URL.createObjectURL(tt),await new Promise((rt,it)=>{nt.onload=()=>{rt(!0)},nt.onerror=()=>{it(!1)}}),o.image=nt,URL.revokeObjectURL(nt.src),o.needsUpdate=!0,o}const getBoundingCoordinatesFromCenter=(s,o,et)=>{const tt={north:0,east:90,south:180,west:270},nt=6371e3,rt=et?[et[1]/(nt*Math.PI/180),et[0]/(nt*Math.PI/180*Math.cos(s[1]*Math.PI/180))]:[0,0],it=[s[0]+rt[1],s[1]+rt[0]],ot=es.computeDestinationPoint(it,o,tt.north,nt).latitude.toFixed(9),st=es.computeDestinationPoint(it,o,tt.south,nt).latitude.toFixed(9),at=es.computeDestinationPoint(it,o,tt.east,nt).longitude.toFixed(9),lt=es.computeDestinationPoint(it,o,tt.west,nt).longitude.toFixed(9);return{maxLatitude:ot,minLatitude:st,maxLongitude:at,minLongitude:lt}},getGridCoordinates=(s,o)=>{const et=Math.floor(s/o),tt=-(s/2)+o/2,nt=-(s/2)+o/2,rt=[];for(let it=0;it{(async()=>{if(lt===void 0)return;ft&&ft.refresh().clip().fit();const Bt=lt,xt={username:"mapbox",styleId:mapStyles[rt],width:1280,height:1280,bearing:0,accessToken:URL_SCOPED_TOKEN},Ct=100,kt=(Wt,Dt,Et)=>{const{username:Pt,styleId:zt,accessToken:en}=xt,{minLatitude:Kt,maxLatitude:nn,minLongitude:Zt,maxLongitude:jt}=getBoundingCoordinatesFromCenter(Bt,Et?Ct:et/2,Et?[Et[0],Et[1]]:void 0);return`https://api.mapbox.com/styles/v1/${Pt}/${zt}/static/[${Zt},${Kt},${jt},${nn}]/${Wt}x${Wt}${Dt?"@2x":""}?logo=false&access_token=${en}`},Nt=[160,320,640,1280],Ot=[];Promise.all(Nt.map(async(Wt,Dt)=>{const Et=await loadTexture(kt(Wt,Dt===Nt.length-1));Ot[Dt]=Et,Ut([...Ot])})),await Promise.all(ct.map(async(Wt,Dt)=>{const Et=await loadTexture(kt(1280,!0,Wt));return Et.colorSpace=SRGBColorSpace$1,Et.magFilter=NearestFilter,Et.minFilter=NearestFilter,dt.current[Dt].map=Et,dt.current[Dt].color=new Color$2("#FFFFFF"),dt.current[Dt].needsUpdate=!0,dt.current[Dt].depthWrite=!1,Et})).then(()=>{vt(!0)})})()},[lt]),reactExports.useEffect(()=>{(async()=>{let Bt;if(o){const kt=ot.subscribeToLocation(defined$1(at?.deviceId),o,Nt=>{if(typeof Nt=="symbol")return;const Ot=Nt;(lt===void 0||lt&<[0]!==Ot.longitude&<[1]!==Ot.latitude)&&ut(Wt=>Wt!==void 0&&Wt[0]===Ot.longitude&&Wt[1]===Ot.latitude?Wt:(vt(!1),[Ot.longitude,Ot.latitude]))});Lt(()=>kt)}else Bt=[Number(nt),Number(tt)],ut(Bt);const xt=getGridCoordinates(Math.ceil(et/200)*200,200);pt(xt),dt.current=xt.map((kt,Nt)=>new MeshBasicMaterial({map:null}));const Ct=new PlaneGeometry(200,200);ht.current=xt.map((kt,Nt)=>jsx$2("mesh",{position:kt,geometry:Ct,children:jsx$2("meshBasicMaterial",{ref:Ot=>dt.current[Nt]=Ot})},JSON.stringify(kt)))})()},[]),useFrame(({clock:Bt})=>{if(Ft.current&&!mt){const xt=Ft.current;xt.uniforms.time.value=Bt.elapsedTime}});const{layers:St}=reactExports.useContext(UIDataContext),Tt=St.find(Bt=>Bt.id===s.id);return Rt.current=Tt?.visible??!0,reactExports.useEffect(()=>{ft.refresh()},[Rt.current]),jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/map.svg",children:[jsx$2("group",{visible:mt,position:[0,0,-.015],children:ht.current}),jsxs$2("mesh",{ref:gt,visible:!mt,position:[0,0,-.015],children:[jsx$2("planeGeometry",{attach:"geometry",args:[et,et]}),yt.length>0?jsx$2("meshStandardMaterial",{map:yt[yt.length-1],depthWrite:!1}):jsx$2("colorShiftMaterial",{ref:Ft})]}),it]})}class MarkerMaterial extends ShaderMaterial{constructor(){super(),this.uniforms={uTime:{value:0}},this.vertexShader=` + `);extend({ColorShiftMaterial});function MapLayer(s){const{dataSource:o,size:et,latitude:tt,longitude:nt,mapType:rt}=s,{children:it}=s,[ot,st]=reactExports.useContext(UniverseDataContext),at=reactExports.useContext(LayerContext),[lt,ut]=reactExports.useState(void 0),dt=reactExports.useRef([]),ht=reactExports.useRef([]),[ct,pt]=reactExports.useState([]),ft=useBounds(),gt=reactExports.useRef(null),[yt,Ut]=reactExports.useState([]),Ft=reactExports.useRef(null),[mt,vt]=reactExports.useState(!1),[At,Lt]=reactExports.useState(null),Rt=reactExports.useRef(!0);reactExports.useEffect(()=>{(async()=>{if(lt===void 0)return;ft&&ft.refresh().clip().fit();const Bt=lt,xt={username:"mapbox",styleId:mapStyles[rt],width:1280,height:1280,bearing:0,accessToken:URL_SCOPED_TOKEN},Ct=100,kt=(Jt,Dt,Et)=>{const{username:Pt,styleId:zt,accessToken:en}=xt,{minLatitude:Kt,maxLatitude:nn,minLongitude:Zt,maxLongitude:jt}=getBoundingCoordinatesFromCenter(Bt,Et?Ct:et/2,Et?[Et[0],Et[1]]:void 0);return`https://api.mapbox.com/styles/v1/${Pt}/${zt}/static/[${Zt},${Kt},${jt},${nn}]/${Jt}x${Jt}${Dt?"@2x":""}?logo=false&access_token=${en}`},Nt=[160,320,640,1280],Ot=[];Promise.all(Nt.map(async(Jt,Dt)=>{const Et=await loadTexture(kt(Jt,Dt===Nt.length-1));Ot[Dt]=Et,Ut([...Ot])})),await Promise.all(ct.map(async(Jt,Dt)=>{const Et=await loadTexture(kt(1280,!0,Jt));return Et.colorSpace=SRGBColorSpace$1,Et.magFilter=NearestFilter,Et.minFilter=NearestFilter,dt.current[Dt].map=Et,dt.current[Dt].color=new Color$2("#FFFFFF"),dt.current[Dt].needsUpdate=!0,dt.current[Dt].depthWrite=!1,Et})).then(()=>{vt(!0)})})()},[lt]),reactExports.useEffect(()=>{(async()=>{let Bt;if(o){const kt=ot.subscribeToLocation(defined$1(at?.deviceId),o,Nt=>{if(typeof Nt=="symbol")return;const Ot=Nt;(lt===void 0||lt&<[0]!==Ot.longitude&<[1]!==Ot.latitude)&&ut(Jt=>Jt!==void 0&&Jt[0]===Ot.longitude&&Jt[1]===Ot.latitude?Jt:(vt(!1),[Ot.longitude,Ot.latitude]))});Lt(()=>kt)}else Bt=[Number(nt),Number(tt)],ut(Bt);const xt=getGridCoordinates(Math.ceil(et/200)*200,200);pt(xt),dt.current=xt.map((kt,Nt)=>new MeshBasicMaterial({map:null}));const Ct=new PlaneGeometry(200,200);ht.current=xt.map((kt,Nt)=>jsx$2("mesh",{position:kt,geometry:Ct,children:jsx$2("meshBasicMaterial",{ref:Ot=>dt.current[Nt]=Ot})},JSON.stringify(kt)))})()},[]),useFrame(({clock:Bt})=>{if(Ft.current&&!mt){const xt=Ft.current;xt.uniforms.time.value=Bt.elapsedTime}});const{layers:St}=reactExports.useContext(UIDataContext),Tt=St.find(Bt=>Bt.id===s.id);return Rt.current=Tt?.visible??!0,reactExports.useEffect(()=>{ft.refresh()},[Rt.current]),jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/map.svg",children:[jsx$2("group",{visible:mt,position:[0,0,-.015],children:ht.current}),jsxs$2("mesh",{ref:gt,visible:!mt,position:[0,0,-.015],children:[jsx$2("planeGeometry",{attach:"geometry",args:[et,et]}),yt.length>0?jsx$2("meshStandardMaterial",{map:yt[yt.length-1],depthWrite:!1}):jsx$2("colorShiftMaterial",{ref:Ft})]}),it]})}class MarkerMaterial extends ShaderMaterial{constructor(){super(),this.uniforms={uTime:{value:0}},this.vertexShader=` varying vec3 vNormal; varying vec2 vUv; @@ -5187,7 +5187,7 @@ void main() { vec3 color = mix(mappedColor, occupiedColor, smoothstep(0.0, 1.0, occupancy)); gl_FragColor = vec4(color, map.a); } -`,createGridMaterial=()=>new ShaderMaterial({blending:CustomBlending,depthTest:!0,depthWrite:!0,uniforms:{mapTexture:{value:new Texture}},vertexShader:vertexShader$1,fragmentShader:fragmentShader$1,side:DoubleSide}),createMesh=s=>{const o=new Mesh(new PlaneGeometry(1,1),s);return o.visible=!1,o.up=new Vector3(0,0,1),o},OccupancyGridLayer=s=>{const{dataSource:o}=s,[et,tt]=reactExports.useState(!1),[nt,rt]=reactExports.useState(void 0),[it,ot]=reactExports.useContext(UniverseDataContext),st=reactExports.useContext(LayerContext),at=useBounds(),lt=reactExports.useRef(createGridMaterial()).current,ut=reactExports.useRef(createMesh(lt)).current,dt=reactExports.useRef(ut),ht=reactExports.useRef(!0);reactExports.useEffect(()=>{nt&&new TextureLoader().load(nt,gt=>{gt.generateMipmaps=!1,gt.wrapS=ClampToEdgeWrapping,gt.wrapT=ClampToEdgeWrapping,gt.minFilter=LinearFilter,gt.magFilter=NearestFilter,lt.uniforms.mapTexture.value=gt,lt.needsUpdate=!0,ut.visible||(tt(!0),dt.current.visible=!0)})},[nt]),reactExports.useEffect(()=>{if(!st||!o)return;const{deviceId:ft}=st;o.streamType="localization";const gt=it.subscribeToGridMap(ft,o,yt=>{if(typeof yt=="symbol")return;const{origin:Ut,width:Ft,height:mt,resolution:vt,data:At,worldToLocal:Lt,alpha:Rt,url:St}=yt,Tt=dt.current;Tt.matrixAutoUpdate=!1;const Bt={translation:{x:Ut.translation.x+Ft*vt/2,y:Ut.translation.y+mt*vt/2,z:Ut.translation.z-.01},rotation:{x:Ut.rotation.x,y:Ut.rotation.y,z:Ut.rotation.z,w:Ut.rotation.w}},xt=transformMatrix(Bt).multiply(new Matrix4().makeScale(Ft*vt,mt*vt,1));if(Lt&&xt.multiply(transformMatrix(Lt)),Tt.matrix.copy(xt),Tt.updateMatrixWorld(!0),St){rt(St);return}if(!At)return;const Ct=Ft*mt,kt=new Uint8Array(4*Ct);for(let Wt=0;Wt{gt()}},[st,it]);const{layers:ct}=reactExports.useContext(UIDataContext),pt=ct.find(ft=>ft.id===s.id);return ht.current=pt?.visible??!0,reactExports.useEffect(()=>{at.refresh()},[ht.current,et]),jsx$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:et&&jsx$2(Fragment$2,{children:jsx$2("primitive",{object:dt.current,renderOrder:7})})})},PathLayer=s=>{const{dataSource:o,pathOpacity:et=50,pathWidth:tt=.25,pathType:nt=PathType.STATIC,flatten:rt=!1}=s;useControlsContext();const[it,ot]=reactExports.useContext(UniverseDataContext),st=reactExports.useContext(LayerContext),[at,lt]=reactExports.useState([]),ut=reactExports.useRef(null);return reactExports.useEffect(()=>{if(!st)return;const{deviceId:dt}=st;if(!o)return;o.streamType="localization";const ht=it.subscribeToPath(dt,o,ct=>{if(typeof ct=="symbol")return;const{poses:pt,worldToLocal:ft}=ct;if(lt(pt.map(yt=>new Vector3(yt.translation.x,yt.translation.y,yt.translation.z))),!ut.current)return;const gt=ut.current;gt.matrixAutoUpdate=!1,gt.matrix.copy(transformMatrix(ft))});return()=>{ht()}},[st,it,lt]),jsx$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:jsx$2(Path,{points:at,color:FormantColors.mithril,pathOpacity:et,pathWidth:tt,pathType:nt,pathFlatten:rt,renderOrder:0})})},Container=styled.div` +`,createGridMaterial=()=>new ShaderMaterial({blending:CustomBlending,depthTest:!0,depthWrite:!0,uniforms:{mapTexture:{value:new Texture}},vertexShader:vertexShader$1,fragmentShader:fragmentShader$1,side:DoubleSide}),createMesh=s=>{const o=new Mesh(new PlaneGeometry(1,1),s);return o.visible=!1,o.up=new Vector3(0,0,1),o},OccupancyGridLayer=s=>{const{dataSource:o}=s,[et,tt]=reactExports.useState(!1),[nt,rt]=reactExports.useState(void 0),[it,ot]=reactExports.useContext(UniverseDataContext),st=reactExports.useContext(LayerContext),at=useBounds(),lt=reactExports.useRef(createGridMaterial()).current,ut=reactExports.useRef(createMesh(lt)).current,dt=reactExports.useRef(ut),ht=reactExports.useRef(!0);reactExports.useEffect(()=>{nt&&new TextureLoader().load(nt,gt=>{gt.generateMipmaps=!1,gt.wrapS=ClampToEdgeWrapping,gt.wrapT=ClampToEdgeWrapping,gt.minFilter=LinearFilter,gt.magFilter=NearestFilter,lt.uniforms.mapTexture.value=gt,lt.needsUpdate=!0,ut.visible||(tt(!0),dt.current.visible=!0)})},[nt]),reactExports.useEffect(()=>{if(!st||!o)return;const{deviceId:ft}=st;o.streamType="localization";const gt=it.subscribeToGridMap(ft,o,yt=>{if(typeof yt=="symbol")return;const{origin:Ut,width:Ft,height:mt,resolution:vt,data:At,worldToLocal:Lt,alpha:Rt,url:St}=yt,Tt=dt.current;Tt.matrixAutoUpdate=!1;const Bt={translation:{x:Ut.translation.x+Ft*vt/2,y:Ut.translation.y+mt*vt/2,z:Ut.translation.z-.01},rotation:{x:Ut.rotation.x,y:Ut.rotation.y,z:Ut.rotation.z,w:Ut.rotation.w}},xt=transformMatrix(Bt).multiply(new Matrix4().makeScale(Ft*vt,mt*vt,1));if(Lt&&xt.multiply(transformMatrix(Lt)),Tt.matrix.copy(xt),Tt.updateMatrixWorld(!0),St){rt(St);return}if(!At)return;const Ct=Ft*mt,kt=new Uint8Array(4*Ct);for(let Jt=0;Jt{gt()}},[st,it]);const{layers:ct}=reactExports.useContext(UIDataContext),pt=ct.find(ft=>ft.id===s.id);return ht.current=pt?.visible??!0,reactExports.useEffect(()=>{at.refresh()},[ht.current,et]),jsx$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:et&&jsx$2(Fragment$2,{children:jsx$2("primitive",{object:dt.current,renderOrder:7})})})},PathLayer=s=>{const{dataSource:o,pathOpacity:et=50,pathWidth:tt=.25,pathType:nt=PathType.STATIC,flatten:rt=!1}=s;useControlsContext();const[it,ot]=reactExports.useContext(UniverseDataContext),st=reactExports.useContext(LayerContext),[at,lt]=reactExports.useState([]),ut=reactExports.useRef(null);return reactExports.useEffect(()=>{if(!st)return;const{deviceId:dt}=st;if(!o)return;o.streamType="localization";const ht=it.subscribeToPath(dt,o,ct=>{if(typeof ct=="symbol")return;const{poses:pt,worldToLocal:ft}=ct;if(lt(pt.map(yt=>new Vector3(yt.translation.x,yt.translation.y,yt.translation.z))),!ut.current)return;const gt=ut.current;gt.matrixAutoUpdate=!1,gt.matrix.copy(transformMatrix(ft))});return()=>{ht()}},[st,it,lt]),jsx$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:jsx$2(Path,{points:at,color:FormantColors.mithril,pathOpacity:et,pathWidth:tt,pathType:nt,pathFlatten:rt,renderOrder:0})})},Container=styled.div` position: absolute; top: 0px; left: 0px; @@ -5512,7 +5512,7 @@ void main() { cursor: pointer; pointer-events: all; } -`;function ToggleIcon({controlsStates:s,hasPathLayer:o}){const{state:{hasPointCloud:et,hasPath:tt,hasWaypointsPath:nt,isWaypointPanelVisible:rt},updateState:it}=s;return jsx$2(ToggleIconContainer,{hasPointCloud:et,children:rt?jsxs$2(Fragment$2,{children:[jsx$2("div",{onClick:()=>{it({hasWaypointsPath:!nt})},children:nt?jsx$2(WaypointsPathToggleIcon,{}):jsx$2(PathEyeIcon,{})}),o&&jsx$2("div",{onClick:()=>{it({hasPath:!tt})},children:tt?jsx$2(PathToggleIcon,{}):jsx$2(PathEyeIcon,{})})]}):jsx$2("div",{onClick:()=>{it({isWaypointPanelVisible:!rt,isWaypointEditing:!rt,hasPath:!0,hasWaypointsPath:!0})},children:jsx$2(WaypointToggleIcon,{})})})}const Modal=({content:s,subContent:o,buttons:et,handler1:tt,handler2:nt})=>jsxs$2(ModalContainer,{children:[jsxs$2("div",{children:[s[0]," ",jsx$2("b",{children:s[1]})," ?"]}),o&&jsx$2("p",{children:o}),jsxs$2("div",{children:[jsx$2(Button$1,{variant:"contained",onClick:()=>tt&&tt(),children:et[0]}),jsx$2(Button$1,{onClick:()=>nt&&nt(),children:et[1]})]})]}),millisecond=1,second=1e3,minute=60*second,hour=60*minute,day=24*hour,week=7*day,month=30*day,year=365*day,duration={millisecond,second,minute,hour,day,week,month,year};class ConnectionError extends Error{constructor(o,et,tt){super(`Connection failure: ${o.message}`),this.cause=o,this.url=et,this.retryable=tt}}const delay=s=>new Promise(o=>setTimeout(o,s||0));function isErrorType(s,o,et=()=>!0){return s instanceof o&&et(s)}function narrowError(s,o,et=()=>!0){if(isErrorType(s,o,et))return s;throw s}function isObject$1(s){return!!s&&(typeof s=="object"||typeof s=="function")}const blacklist=["password","secret","token","key","buffer"];function redact(s,o=new Set){return o.has(s)?"[ RECURSIVE ]":isObject$1(s)?(o.add(s),Object.keys(s).reduce((et,tt)=>(et[tt]=blacklist.some(nt=>tt.toLowerCase().includes(nt.toLowerCase()))?"[ REDACTED ]":redact(s[tt],o),et),{})):s}class ResponseError extends Error{constructor(o,et,tt,nt,rt={},it){super(`Unexpected response (${tt}) for ${o} ${et}: ${JSON.stringify(it?redact([...it.entries()].reduce((ot,[st,at])=>(ot[st]=at,ot),{})):{})} -- ${JSON.stringify(redact(nt))}`),this.method=o,this.url=et,this.statusCode=tt,this.body=nt,this.validationErrors=rt,this.headers=it}}class ResponseHeadersError extends Error{constructor(o,et){super(`Invalid headers (${JSON.stringify(o)}) for response: ${et.message}`),this.validationErrors=o,this.responseError=et}}var browserPonyfill={exports:{}};(function(s,o){var et=typeof self<"u"?self:commonjsGlobal$2,tt=function(){function rt(){this.fetch=!1,this.DOMException=et.DOMException}return rt.prototype=et,new rt}();(function(rt){(function(it){var ot={searchParams:"URLSearchParams"in rt,iterable:"Symbol"in rt&&"iterator"in Symbol,blob:"FileReader"in rt&&"Blob"in rt&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in rt,arrayBuffer:"ArrayBuffer"in rt};function st(Ct){return Ct&&DataView.prototype.isPrototypeOf(Ct)}if(ot.arrayBuffer)var at=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],lt=ArrayBuffer.isView||function(Ct){return Ct&&at.indexOf(Object.prototype.toString.call(Ct))>-1};function ut(Ct){if(typeof Ct!="string"&&(Ct=String(Ct)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(Ct))throw new TypeError("Invalid character in header field name");return Ct.toLowerCase()}function dt(Ct){return typeof Ct!="string"&&(Ct=String(Ct)),Ct}function ht(Ct){var kt={next:function(){var Nt=Ct.shift();return{done:Nt===void 0,value:Nt}}};return ot.iterable&&(kt[Symbol.iterator]=function(){return kt}),kt}function ct(Ct){this.map={},Ct instanceof ct?Ct.forEach(function(kt,Nt){this.append(Nt,kt)},this):Array.isArray(Ct)?Ct.forEach(function(kt){this.append(kt[0],kt[1])},this):Ct&&Object.getOwnPropertyNames(Ct).forEach(function(kt){this.append(kt,Ct[kt])},this)}ct.prototype.append=function(Ct,kt){Ct=ut(Ct),kt=dt(kt);var Nt=this.map[Ct];this.map[Ct]=Nt?Nt+", "+kt:kt},ct.prototype.delete=function(Ct){delete this.map[ut(Ct)]},ct.prototype.get=function(Ct){return Ct=ut(Ct),this.has(Ct)?this.map[Ct]:null},ct.prototype.has=function(Ct){return this.map.hasOwnProperty(ut(Ct))},ct.prototype.set=function(Ct,kt){this.map[ut(Ct)]=dt(kt)},ct.prototype.forEach=function(Ct,kt){for(var Nt in this.map)this.map.hasOwnProperty(Nt)&&Ct.call(kt,this.map[Nt],Nt,this)},ct.prototype.keys=function(){var Ct=[];return this.forEach(function(kt,Nt){Ct.push(Nt)}),ht(Ct)},ct.prototype.values=function(){var Ct=[];return this.forEach(function(kt){Ct.push(kt)}),ht(Ct)},ct.prototype.entries=function(){var Ct=[];return this.forEach(function(kt,Nt){Ct.push([Nt,kt])}),ht(Ct)},ot.iterable&&(ct.prototype[Symbol.iterator]=ct.prototype.entries);function pt(Ct){if(Ct.bodyUsed)return Promise.reject(new TypeError("Already read"));Ct.bodyUsed=!0}function ft(Ct){return new Promise(function(kt,Nt){Ct.onload=function(){kt(Ct.result)},Ct.onerror=function(){Nt(Ct.error)}})}function gt(Ct){var kt=new FileReader,Nt=ft(kt);return kt.readAsArrayBuffer(Ct),Nt}function yt(Ct){var kt=new FileReader,Nt=ft(kt);return kt.readAsText(Ct),Nt}function Ut(Ct){for(var kt=new Uint8Array(Ct),Nt=new Array(kt.length),Ot=0;Ot-1?kt:Ct}function Lt(Ct,kt){kt=kt||{};var Nt=kt.body;if(Ct instanceof Lt){if(Ct.bodyUsed)throw new TypeError("Already read");this.url=Ct.url,this.credentials=Ct.credentials,kt.headers||(this.headers=new ct(Ct.headers)),this.method=Ct.method,this.mode=Ct.mode,this.signal=Ct.signal,!Nt&&Ct._bodyInit!=null&&(Nt=Ct._bodyInit,Ct.bodyUsed=!0)}else this.url=String(Ct);if(this.credentials=kt.credentials||this.credentials||"same-origin",(kt.headers||!this.headers)&&(this.headers=new ct(kt.headers)),this.method=At(kt.method||this.method||"GET"),this.mode=kt.mode||this.mode||null,this.signal=kt.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Nt)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(Nt)}Lt.prototype.clone=function(){return new Lt(this,{body:this._bodyInit})};function Rt(Ct){var kt=new FormData;return Ct.trim().split("&").forEach(function(Nt){if(Nt){var Ot=Nt.split("="),Wt=Ot.shift().replace(/\+/g," "),Dt=Ot.join("=").replace(/\+/g," ");kt.append(decodeURIComponent(Wt),decodeURIComponent(Dt))}}),kt}function St(Ct){var kt=new ct,Nt=Ct.replace(/\r?\n[\t ]+/g," ");return Nt.split(/\r?\n/).forEach(function(Ot){var Wt=Ot.split(":"),Dt=Wt.shift().trim();if(Dt){var Et=Wt.join(":").trim();kt.append(Dt,Et)}}),kt}mt.call(Lt.prototype);function Tt(Ct,kt){kt||(kt={}),this.type="default",this.status=kt.status===void 0?200:kt.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in kt?kt.statusText:"OK",this.headers=new ct(kt.headers),this.url=kt.url||"",this._initBody(Ct)}mt.call(Tt.prototype),Tt.prototype.clone=function(){return new Tt(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new ct(this.headers),url:this.url})},Tt.error=function(){var Ct=new Tt(null,{status:0,statusText:""});return Ct.type="error",Ct};var Bt=[301,302,303,307,308];Tt.redirect=function(Ct,kt){if(Bt.indexOf(kt)===-1)throw new RangeError("Invalid status code");return new Tt(null,{status:kt,headers:{location:Ct}})},it.DOMException=rt.DOMException;try{new it.DOMException}catch{it.DOMException=function(kt,Nt){this.message=kt,this.name=Nt;var Ot=Error(kt);this.stack=Ot.stack},it.DOMException.prototype=Object.create(Error.prototype),it.DOMException.prototype.constructor=it.DOMException}function xt(Ct,kt){return new Promise(function(Nt,Ot){var Wt=new Lt(Ct,kt);if(Wt.signal&&Wt.signal.aborted)return Ot(new it.DOMException("Aborted","AbortError"));var Dt=new XMLHttpRequest;function Et(){Dt.abort()}Dt.onload=function(){var Pt={status:Dt.status,statusText:Dt.statusText,headers:St(Dt.getAllResponseHeaders()||"")};Pt.url="responseURL"in Dt?Dt.responseURL:Pt.headers.get("X-Request-URL");var zt="response"in Dt?Dt.response:Dt.responseText;Nt(new Tt(zt,Pt))},Dt.onerror=function(){Ot(new TypeError("Network request failed"))},Dt.ontimeout=function(){Ot(new TypeError("Network request failed"))},Dt.onabort=function(){Ot(new it.DOMException("Aborted","AbortError"))},Dt.open(Wt.method,Wt.url,!0),Wt.credentials==="include"?Dt.withCredentials=!0:Wt.credentials==="omit"&&(Dt.withCredentials=!1),"responseType"in Dt&&ot.blob&&(Dt.responseType="blob"),Wt.headers.forEach(function(Pt,zt){Dt.setRequestHeader(zt,Pt)}),Wt.signal&&(Wt.signal.addEventListener("abort",Et),Dt.onreadystatechange=function(){Dt.readyState===4&&Wt.signal.removeEventListener("abort",Et)}),Dt.send(typeof Wt._bodyInit>"u"?null:Wt._bodyInit)})}return xt.polyfill=!0,rt.fetch||(rt.fetch=xt,rt.Headers=ct,rt.Request=Lt,rt.Response=Tt),it.Headers=ct,it.Request=Lt,it.Response=Tt,it.fetch=xt,Object.defineProperty(it,"__esModule",{value:!0}),it})({})})(tt),tt.fetch.ponyfill=!0,delete tt.fetch.polyfill;var nt=tt;o=nt.fetch,o.default=nt.fetch,o.fetch=nt.fetch,o.Headers=nt.Headers,o.Request=nt.Request,o.Response=nt.Response,s.exports=o})(browserPonyfill,browserPonyfill.exports);var browserPonyfillExports=browserPonyfill.exports;const crossFetch=getDefaultExportFromCjs$1(browserPonyfillExports),idempotentMethods=new Set(["GET","HEAD","PUT","QUERY","DELETE","OPTIONS","TRACE"]);class BaseClient{constructor(o,et={}){if(this.endpoint=o,this.validateHeaders=tt=>et.validateHeaders?et.validateHeaders(tt):{},this.verbose=et.verbose!==!1,et.retries!==void 0&&!(et.retries>=0))throw new Error("retries must be positive or zero");if(this.configuredRetries=et.retries,et.timeoutMs!==void 0&&!(et.timeoutMs>0))throw new Error("timeoutMs must be positive");if(this.timeoutMs=et.timeoutMs,et.maxBackoffDelayMs!==void 0&&!(et.maxBackoffDelayMs>0))throw new Error("maxBackoffDelayMs must be positive");this.maxBackoffDelayMs=et.maxBackoffDelayMs||30*duration.second}static retries=8;static waitForConnectivity=async()=>{};static onResponseError=async()=>{};validateHeaders;verbose;configuredRetries;timeoutMs;maxBackoffDelayMs;getRetries(){return this.configuredRetries!==void 0?this.configuredRetries:this.getConstructor().retries}getHeaders(){return{}}async fetch(o,et={}){return(await this.fetchVerbose(o,et)).body}async fetchVerbose(o,et={}){let tt=100*duration.millisecond,nt=0;const rt=this.timeoutMs!==void 0?new Date().getTime()+this.timeoutMs:void 0,it=rt?()=>Math.max(rt-new Date().getTime(),0):void 0;for(;;)try{return await this.doFetch(o,et,it)}catch(ot){const st=narrowError(ot,ConnectionError);if(it?.()===0||nt===this.getRetries()||!st.retryable)throw st;nt++,tt=Math.min(...it?[it()]:[],tt*(2+(Math.random()-.5)*.1),this.maxBackoffDelayMs),await delay(tt),this.verbose&&console.warn(`Connection failure, retrying. Error: ${ot.cause.message}`,{url:ot.url,error:ot.cause,attempt:nt})}}async doFetch(o,et,tt){const{token:nt,json:rt,allowUnsafeRetries:it,...ot}=et,st=(ot.method||"GET").toUpperCase(),at=this.endpoint!==void 0?`${this.endpoint}${o?`/${o}`:""}`:o,lt=new AbortController;let ut;if(tt){const dt=tt();dt>0?ut=setTimeout(()=>{lt.abort()},dt):lt.abort()}try{let dt;await Promise.race([this.getConstructor().waitForConnectivity(),new Promise(Ut=>{dt=setTimeout(Ut,tt?Math.min(duration.minute,tt()):duration.minute)})]),dt&&clearTimeout(dt);const ht=await crossFetch(at,{...ot,headers:{...rt!==!1?{"Content-Type":"application/json"}:{},...this.getHeaders(),...ot.headers||{},...nt!==void 0?{Authorization:`Bearer ${nt}`}:{},"app-id":"formant/admin-api"},signal:lt.signal}),ct=ht.headers.get("content-type")||"",pt=ct&&ct.startsWith("application/json"),ft=pt?await ht.json():await ht.text(),gt=()=>new ResponseError(st,at,ht.status,ft,ft&&ft.validationErrors||{},ht.headers);if(!ht.ok)throw this.verbose&&console.warn("Response error",{method:st,url:at,statusCode:ht.status}),gt();const yt=this.validateHeaders(ht.headers);if(Object.keys(yt).length!==0)throw new ResponseHeadersError(yt,gt());if(ht.status===204)return{body:void 0,headers:ht.headers};if(rt&&!pt)throw new Error(`Response is not JSON: ${JSON.stringify(ft)}`);return{body:ft,headers:ht.headers}}catch(dt){const ht=it||idempotentMethods.has(st);if(dt.message==="Network request failed")throw new ConnectionError(dt,at,ht);if(dt.type==="system"&&["EAI_AGAIN","ECONNREFUSED","EHOSTUNREACH","ENOTFOUND"].find(gt=>gt===dt.code))throw new ConnectionError(dt,at,!0);if(dt.type==="system"&&["ETIMEDOUT","ECONNRESET","ESOCKETTIMEDOUT","EPIPE"].find(gt=>gt===dt.code))throw new ConnectionError(dt,at,ht);if(dt.name==="AbortError")throw new ConnectionError(dt,at,ht);const ct=narrowError(dt,ResponseError),{statusCode:pt}=ct;if(pt===408||pt===429||pt===502||pt===503||pt===504)throw this.verbose&&!ht&&console.warn("Potentially unsafe retry"),new ConnectionError(dt,at,!0);const ft=this.validateHeaders(ct.headers);throw Object.keys(ft).length!==0?new ResponseHeadersError(ft,ct):(await this.getConstructor().onResponseError(ct),dt)}finally{ut&&clearTimeout(ut)}}getConstructor(){return Object.getPrototypeOf(this).constructor}}class UploadPartClient extends BaseClient{constructor(){super(void 0,{retries:3,timeoutMs:10*duration.second})}async upload(o,et){const nt=(await this.fetchVerbose(o,{method:"PUT",body:et,json:!1})).headers.get("etag");if(!nt)throw new Error(`Invalid ETag from upload part response: ${nt}`);return nt}}const invalidHeadersValidation={"app-id":["app-id must match formant/*"]};class FormantBaseClient extends BaseClient{constructor(o,et={}){super(o,{validateHeaders:tt=>`${tt.get("app-id")}`.startsWith("formant/")?{}:invalidHeadersValidation,...et}),this.endpoint=o}static headers={};getHeaders(){return{...FormantBaseClient.headers}}}var shams=function s(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var o={},et=Symbol("test"),tt=Object(et);if(typeof et=="string"||Object.prototype.toString.call(et)!=="[object Symbol]"||Object.prototype.toString.call(tt)!=="[object Symbol]")return!1;var nt=42;o[et]=nt;for(et in o)return!1;if(typeof Object.keys=="function"&&Object.keys(o).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(o).length!==0)return!1;var rt=Object.getOwnPropertySymbols(o);if(rt.length!==1||rt[0]!==et||!Object.prototype.propertyIsEnumerable.call(o,et))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var it=Object.getOwnPropertyDescriptor(o,et);if(it.value!==nt||it.enumerable!==!0)return!1}return!0},origSymbol=typeof Symbol<"u"&&Symbol,hasSymbolSham=shams,hasSymbols$1=function s(){return typeof origSymbol!="function"||typeof Symbol!="function"||typeof origSymbol("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:hasSymbolSham()},test={foo:{}},$Object=Object,hasProto$1=function s(){return{__proto__:test}.foo===test.foo&&!({__proto__:null}instanceof $Object)},ERROR_MESSAGE="Function.prototype.bind called on incompatible ",toStr$1=Object.prototype.toString,max=Math.max,funcType="[object Function]",concatty=function s(o,et){for(var tt=[],nt=0;nt"u"||!getProto?undefined$1:getProto(Uint8Array),INTRINSICS={"%AggregateError%":typeof AggregateError>"u"?undefined$1:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?undefined$1:ArrayBuffer,"%ArrayIteratorPrototype%":hasSymbols&&getProto?getProto([][Symbol.iterator]()):undefined$1,"%AsyncFromSyncIteratorPrototype%":undefined$1,"%AsyncFunction%":needsEval,"%AsyncGenerator%":needsEval,"%AsyncGeneratorFunction%":needsEval,"%AsyncIteratorPrototype%":needsEval,"%Atomics%":typeof Atomics>"u"?undefined$1:Atomics,"%BigInt%":typeof BigInt>"u"?undefined$1:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?undefined$1:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?undefined$1:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?undefined$1:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?undefined$1:Float32Array,"%Float64Array%":typeof Float64Array>"u"?undefined$1:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?undefined$1:FinalizationRegistry,"%Function%":$Function,"%GeneratorFunction%":needsEval,"%Int8Array%":typeof Int8Array>"u"?undefined$1:Int8Array,"%Int16Array%":typeof Int16Array>"u"?undefined$1:Int16Array,"%Int32Array%":typeof Int32Array>"u"?undefined$1:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":hasSymbols&&getProto?getProto(getProto([][Symbol.iterator]())):undefined$1,"%JSON%":typeof JSON=="object"?JSON:undefined$1,"%Map%":typeof Map>"u"?undefined$1:Map,"%MapIteratorPrototype%":typeof Map>"u"||!hasSymbols||!getProto?undefined$1:getProto(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?undefined$1:Promise,"%Proxy%":typeof Proxy>"u"?undefined$1:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?undefined$1:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?undefined$1:Set,"%SetIteratorPrototype%":typeof Set>"u"||!hasSymbols||!getProto?undefined$1:getProto(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?undefined$1:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":hasSymbols&&getProto?getProto(""[Symbol.iterator]()):undefined$1,"%Symbol%":hasSymbols?Symbol:undefined$1,"%SyntaxError%":$SyntaxError$1,"%ThrowTypeError%":ThrowTypeError,"%TypedArray%":TypedArray,"%TypeError%":$TypeError$3,"%Uint8Array%":typeof Uint8Array>"u"?undefined$1:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?undefined$1:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?undefined$1:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?undefined$1:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?undefined$1:WeakMap,"%WeakRef%":typeof WeakRef>"u"?undefined$1:WeakRef,"%WeakSet%":typeof WeakSet>"u"?undefined$1:WeakSet};if(getProto)try{null.error}catch(s){var errorProto=getProto(getProto(s));INTRINSICS["%Error.prototype%"]=errorProto}var doEval=function s(o){var et;if(o==="%AsyncFunction%")et=getEvalledConstructor("async function () {}");else if(o==="%GeneratorFunction%")et=getEvalledConstructor("function* () {}");else if(o==="%AsyncGeneratorFunction%")et=getEvalledConstructor("async function* () {}");else if(o==="%AsyncGenerator%"){var tt=s("%AsyncGeneratorFunction%");tt&&(et=tt.prototype)}else if(o==="%AsyncIteratorPrototype%"){var nt=s("%AsyncGenerator%");nt&&getProto&&(et=getProto(nt.prototype))}return INTRINSICS[o]=et,et},LEGACY_ALIASES={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bind=functionBind,hasOwn$1=hasown,$concat$1=bind.call(Function.call,Array.prototype.concat),$spliceApply=bind.call(Function.apply,Array.prototype.splice),$replace$1=bind.call(Function.call,String.prototype.replace),$strSlice=bind.call(Function.call,String.prototype.slice),$exec=bind.call(Function.call,RegExp.prototype.exec),rePropName=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=function s(o){var et=$strSlice(o,0,1),tt=$strSlice(o,-1);if(et==="%"&&tt!=="%")throw new $SyntaxError$1("invalid intrinsic syntax, expected closing `%`");if(tt==="%"&&et!=="%")throw new $SyntaxError$1("invalid intrinsic syntax, expected opening `%`");var nt=[];return $replace$1(o,rePropName,function(rt,it,ot,st){nt[nt.length]=ot?$replace$1(st,reEscapeChar,"$1"):it||rt}),nt},getBaseIntrinsic=function s(o,et){var tt=o,nt;if(hasOwn$1(LEGACY_ALIASES,tt)&&(nt=LEGACY_ALIASES[tt],tt="%"+nt[0]+"%"),hasOwn$1(INTRINSICS,tt)){var rt=INTRINSICS[tt];if(rt===needsEval&&(rt=doEval(tt)),typeof rt>"u"&&!et)throw new $TypeError$3("intrinsic "+o+" exists, but is not available. Please file an issue!");return{alias:nt,name:tt,value:rt}}throw new $SyntaxError$1("intrinsic "+o+" does not exist!")},getIntrinsic=function s(o,et){if(typeof o!="string"||o.length===0)throw new $TypeError$3("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof et!="boolean")throw new $TypeError$3('"allowMissing" argument must be a boolean');if($exec(/^%?[^%]*%?$/,o)===null)throw new $SyntaxError$1("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var tt=stringToPath(o),nt=tt.length>0?tt[0]:"",rt=getBaseIntrinsic("%"+nt+"%",et),it=rt.name,ot=rt.value,st=!1,at=rt.alias;at&&(nt=at[0],$spliceApply(tt,$concat$1([0,1],at)));for(var lt=1,ut=!0;lt=tt.length){var pt=$gOPD$1(ot,dt);ut=!!pt,ut&&"get"in pt&&!("originalValue"in pt.get)?ot=pt.get:ot=ot[dt]}else ut=hasOwn$1(ot,dt),ot=ot[dt];ut&&!st&&(INTRINSICS[it]=ot)}}return ot},callBind$1={exports:{}},GetIntrinsic$5=getIntrinsic,$defineProperty$1=GetIntrinsic$5("%Object.defineProperty%",!0),hasPropertyDescriptors$1=function s(){if($defineProperty$1)try{return $defineProperty$1({},"a",{value:1}),!0}catch{return!1}return!1};hasPropertyDescriptors$1.hasArrayLengthDefineBug=function s(){if(!hasPropertyDescriptors$1())return null;try{return $defineProperty$1([],"length",{value:1}).length!==1}catch{return!0}};var hasPropertyDescriptors_1=hasPropertyDescriptors$1,GetIntrinsic$4=getIntrinsic,$gOPD=GetIntrinsic$4("%Object.getOwnPropertyDescriptor%",!0);if($gOPD)try{$gOPD([],"length")}catch{$gOPD=null}var gopd$1=$gOPD,hasPropertyDescriptors=hasPropertyDescriptors_1(),GetIntrinsic$3=getIntrinsic,$defineProperty=hasPropertyDescriptors&&GetIntrinsic$3("%Object.defineProperty%",!0);if($defineProperty)try{$defineProperty({},"a",{value:1})}catch{$defineProperty=!1}var $SyntaxError=GetIntrinsic$3("%SyntaxError%"),$TypeError$2=GetIntrinsic$3("%TypeError%"),gopd=gopd$1,defineDataProperty=function s(o,et,tt){if(!o||typeof o!="object"&&typeof o!="function")throw new $TypeError$2("`obj` must be an object or a function`");if(typeof et!="string"&&typeof et!="symbol")throw new $TypeError$2("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new $TypeError$2("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new $TypeError$2("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new $TypeError$2("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new $TypeError$2("`loose`, if provided, must be a boolean");var nt=arguments.length>3?arguments[3]:null,rt=arguments.length>4?arguments[4]:null,it=arguments.length>5?arguments[5]:null,ot=arguments.length>6?arguments[6]:!1,st=!!gopd&&gopd(o,et);if($defineProperty)$defineProperty(o,et,{configurable:it===null&&st?st.configurable:!it,enumerable:nt===null&&st?st.enumerable:!nt,value:tt,writable:rt===null&&st?st.writable:!rt});else if(ot||!nt&&!rt&&!it)o[et]=tt;else throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},GetIntrinsic$2=getIntrinsic,define=defineDataProperty,hasDescriptors=hasPropertyDescriptors_1(),gOPD=gopd$1,$TypeError$1=GetIntrinsic$2("%TypeError%"),$floor$1=GetIntrinsic$2("%Math.floor%"),setFunctionLength=function s(o,et){if(typeof o!="function")throw new $TypeError$1("`fn` is not a function");if(typeof et!="number"||et<0||et>4294967295||$floor$1(et)!==et)throw new $TypeError$1("`length` must be a positive 32-bit integer");var tt=arguments.length>2&&!!arguments[2],nt=!0,rt=!0;if("length"in o&&gOPD){var it=gOPD(o,"length");it&&!it.configurable&&(nt=!1),it&&!it.writable&&(rt=!1)}return(nt||rt||!tt)&&(hasDescriptors?define(o,"length",et,!0,!0):define(o,"length",et)),o};(function(s){var o=functionBind,et=getIntrinsic,tt=setFunctionLength,nt=et("%TypeError%"),rt=et("%Function.prototype.apply%"),it=et("%Function.prototype.call%"),ot=et("%Reflect.apply%",!0)||o.call(it,rt),st=et("%Object.defineProperty%",!0),at=et("%Math.max%");if(st)try{st({},"a",{value:1})}catch{st=null}s.exports=function(dt){if(typeof dt!="function")throw new nt("a function is required");var ht=ot(o,it,arguments);return tt(ht,1+at(0,dt.length-(arguments.length-1)),!0)};var lt=function(){return ot(o,rt,arguments)};st?st(s.exports,"apply",{value:lt}):s.exports.apply=lt})(callBind$1);var callBindExports=callBind$1.exports,GetIntrinsic$1=getIntrinsic,callBind=callBindExports,$indexOf=callBind(GetIntrinsic$1("String.prototype.indexOf")),callBound$1=function s(o,et){var tt=GetIntrinsic$1(o,!!et);return typeof tt=="function"&&$indexOf(o,".prototype.")>-1?callBind(tt):tt};const __viteBrowserExternal={},__viteBrowserExternal$1=Object.freeze(Object.defineProperty({__proto__:null,default:__viteBrowserExternal},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(__viteBrowserExternal$1);var hasMap=typeof Map=="function"&&Map.prototype,mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mapSize=hasMap&&mapSizeDescriptor&&typeof mapSizeDescriptor.get=="function"?mapSizeDescriptor.get:null,mapForEach=hasMap&&Map.prototype.forEach,hasSet=typeof Set=="function"&&Set.prototype,setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,setSize=hasSet&&setSizeDescriptor&&typeof setSizeDescriptor.get=="function"?setSizeDescriptor.get:null,setForEach=hasSet&&Set.prototype.forEach,hasWeakMap=typeof WeakMap=="function"&&WeakMap.prototype,weakMapHas=hasWeakMap?WeakMap.prototype.has:null,hasWeakSet=typeof WeakSet=="function"&&WeakSet.prototype,weakSetHas=hasWeakSet?WeakSet.prototype.has:null,hasWeakRef=typeof WeakRef=="function"&&WeakRef.prototype,weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null,booleanValueOf=Boolean.prototype.valueOf,objectToString$1=Object.prototype.toString,functionToString=Function.prototype.toString,$match=String.prototype.match,$slice=String.prototype.slice,$replace=String.prototype.replace,$toUpperCase=String.prototype.toUpperCase,$toLowerCase=String.prototype.toLowerCase,$test=RegExp.prototype.test,$concat=Array.prototype.concat,$join=Array.prototype.join,$arrSlice=Array.prototype.slice,$floor=Math.floor,bigIntValueOf=typeof BigInt=="function"?BigInt.prototype.valueOf:null,gOPS=Object.getOwnPropertySymbols,symToString=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,hasShammedSymbols=typeof Symbol=="function"&&typeof Symbol.iterator=="object",toStringTag=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===hasShammedSymbols||"symbol")?Symbol.toStringTag:null,isEnumerable=Object.prototype.propertyIsEnumerable,gPO=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(s){return s.__proto__}:null);function addNumericSeparator(s,o){if(s===1/0||s===-1/0||s!==s||s&&s>-1e3&&s<1e3||$test.call(/e/,o))return o;var et=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof s=="number"){var tt=s<0?-$floor(-s):$floor(s);if(tt!==s){var nt=String(tt),rt=$slice.call(o,nt.length+1);return $replace.call(nt,et,"$&_")+"."+$replace.call($replace.call(rt,/([0-9]{3})/g,"$&_"),/_$/,"")}}return $replace.call(o,et,"$&_")}var utilInspect=require$$0,inspectCustom=utilInspect.custom,inspectSymbol=isSymbol$1(inspectCustom)?inspectCustom:null,objectInspect=function s(o,et,tt,nt){var rt=et||{};if(has$3(rt,"quoteStyle")&&rt.quoteStyle!=="single"&&rt.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has$3(rt,"maxStringLength")&&(typeof rt.maxStringLength=="number"?rt.maxStringLength<0&&rt.maxStringLength!==1/0:rt.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var it=has$3(rt,"customInspect")?rt.customInspect:!0;if(typeof it!="boolean"&&it!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has$3(rt,"indent")&&rt.indent!==null&&rt.indent!==" "&&!(parseInt(rt.indent,10)===rt.indent&&rt.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(has$3(rt,"numericSeparator")&&typeof rt.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var ot=rt.numericSeparator;if(typeof o>"u")return"undefined";if(o===null)return"null";if(typeof o=="boolean")return o?"true":"false";if(typeof o=="string")return inspectString(o,rt);if(typeof o=="number"){if(o===0)return 1/0/o>0?"0":"-0";var st=String(o);return ot?addNumericSeparator(o,st):st}if(typeof o=="bigint"){var at=String(o)+"n";return ot?addNumericSeparator(o,at):at}var lt=typeof rt.depth>"u"?5:rt.depth;if(typeof tt>"u"&&(tt=0),tt>=lt&<>0&&typeof o=="object")return isArray$3(o)?"[Array]":"[Object]";var ut=getIndent(rt,tt);if(typeof nt>"u")nt=[];else if(indexOf(nt,o)>=0)return"[Circular]";function dt(xt,Ct,kt){if(Ct&&(nt=$arrSlice.call(nt),nt.push(Ct)),kt){var Nt={depth:rt.depth};return has$3(rt,"quoteStyle")&&(Nt.quoteStyle=rt.quoteStyle),s(xt,Nt,tt+1,nt)}return s(xt,rt,tt+1,nt)}if(typeof o=="function"&&!isRegExp$1(o)){var ht=nameOf(o),ct=arrObjKeys(o,dt);return"[Function"+(ht?": "+ht:" (anonymous)")+"]"+(ct.length>0?" { "+$join.call(ct,", ")+" }":"")}if(isSymbol$1(o)){var pt=hasShammedSymbols?$replace.call(String(o),/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(o);return typeof o=="object"&&!hasShammedSymbols?markBoxed(pt):pt}if(isElement(o)){for(var ft="<"+$toLowerCase.call(String(o.nodeName)),gt=o.attributes||[],yt=0;yt",ft}if(isArray$3(o)){if(o.length===0)return"[]";var Ut=arrObjKeys(o,dt);return ut&&!singleLineValues(Ut)?"["+indentedJoin(Ut,ut)+"]":"[ "+$join.call(Ut,", ")+" ]"}if(isError(o)){var Ft=arrObjKeys(o,dt);return!("cause"in Error.prototype)&&"cause"in o&&!isEnumerable.call(o,"cause")?"{ ["+String(o)+"] "+$join.call($concat.call("[cause]: "+dt(o.cause),Ft),", ")+" }":Ft.length===0?"["+String(o)+"]":"{ ["+String(o)+"] "+$join.call(Ft,", ")+" }"}if(typeof o=="object"&&it){if(inspectSymbol&&typeof o[inspectSymbol]=="function"&&utilInspect)return utilInspect(o,{depth:lt-tt});if(it!=="symbol"&&typeof o.inspect=="function")return o.inspect()}if(isMap(o)){var mt=[];return mapForEach&&mapForEach.call(o,function(xt,Ct){mt.push(dt(Ct,o,!0)+" => "+dt(xt,o))}),collectionOf("Map",mapSize.call(o),mt,ut)}if(isSet(o)){var vt=[];return setForEach&&setForEach.call(o,function(xt){vt.push(dt(xt,o))}),collectionOf("Set",setSize.call(o),vt,ut)}if(isWeakMap(o))return weakCollectionOf("WeakMap");if(isWeakSet(o))return weakCollectionOf("WeakSet");if(isWeakRef(o))return weakCollectionOf("WeakRef");if(isNumber(o))return markBoxed(dt(Number(o)));if(isBigInt(o))return markBoxed(dt(bigIntValueOf.call(o)));if(isBoolean(o))return markBoxed(booleanValueOf.call(o));if(isString(o))return markBoxed(dt(String(o)));if(typeof window<"u"&&o===window)return"{ [object Window] }";if(o===commonjsGlobal$2)return"{ [object globalThis] }";if(!isDate(o)&&!isRegExp$1(o)){var At=arrObjKeys(o,dt),Lt=gPO?gPO(o)===Object.prototype:o instanceof Object||o.constructor===Object,Rt=o instanceof Object?"":"null prototype",St=!Lt&&toStringTag&&Object(o)===o&&toStringTag in o?$slice.call(toStr(o),8,-1):Rt?"Object":"",Tt=Lt||typeof o.constructor!="function"?"":o.constructor.name?o.constructor.name+" ":"",Bt=Tt+(St||Rt?"["+$join.call($concat.call([],St||[],Rt||[]),": ")+"] ":"");return At.length===0?Bt+"{}":ut?Bt+"{"+indentedJoin(At,ut)+"}":Bt+"{ "+$join.call(At,", ")+" }"}return String(o)};function wrapQuotes(s,o,et){var tt=(et.quoteStyle||o)==="double"?'"':"'";return tt+s+tt}function quote(s){return $replace.call(String(s),/"/g,""")}function isArray$3(s){return toStr(s)==="[object Array]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isDate(s){return toStr(s)==="[object Date]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isRegExp$1(s){return toStr(s)==="[object RegExp]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isError(s){return toStr(s)==="[object Error]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isString(s){return toStr(s)==="[object String]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isNumber(s){return toStr(s)==="[object Number]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isBoolean(s){return toStr(s)==="[object Boolean]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isSymbol$1(s){if(hasShammedSymbols)return s&&typeof s=="object"&&s instanceof Symbol;if(typeof s=="symbol")return!0;if(!s||typeof s!="object"||!symToString)return!1;try{return symToString.call(s),!0}catch{}return!1}function isBigInt(s){if(!s||typeof s!="object"||!bigIntValueOf)return!1;try{return bigIntValueOf.call(s),!0}catch{}return!1}var hasOwn=Object.prototype.hasOwnProperty||function(s){return s in this};function has$3(s,o){return hasOwn.call(s,o)}function toStr(s){return objectToString$1.call(s)}function nameOf(s){if(s.name)return s.name;var o=$match.call(functionToString.call(s),/^function\s*([\w$]+)/);return o?o[1]:null}function indexOf(s,o){if(s.indexOf)return s.indexOf(o);for(var et=0,tt=s.length;eto.maxStringLength){var et=s.length-o.maxStringLength,tt="... "+et+" more character"+(et>1?"s":"");return inspectString($slice.call(s,0,o.maxStringLength),o)+tt}var nt=$replace.call($replace.call(s,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,lowbyte);return wrapQuotes(nt,"single",o)}function lowbyte(s){var o=s.charCodeAt(0),et={8:"b",9:"t",10:"n",12:"f",13:"r"}[o];return et?"\\"+et:"\\x"+(o<16?"0":"")+$toUpperCase.call(o.toString(16))}function markBoxed(s){return"Object("+s+")"}function weakCollectionOf(s){return s+" { ? }"}function collectionOf(s,o,et,tt){var nt=tt?indentedJoin(et,tt):$join.call(et,", ");return s+" ("+o+") {"+nt+"}"}function singleLineValues(s){for(var o=0;o{it({hasWaypointsPath:!nt})},children:nt?jsx$2(WaypointsPathToggleIcon,{}):jsx$2(PathEyeIcon,{})}),o&&jsx$2("div",{onClick:()=>{it({hasPath:!tt})},children:tt?jsx$2(PathToggleIcon,{}):jsx$2(PathEyeIcon,{})})]}):jsx$2("div",{onClick:()=>{it({isWaypointPanelVisible:!rt,isWaypointEditing:!rt,hasPath:!0,hasWaypointsPath:!0})},children:jsx$2(WaypointToggleIcon,{})})})}const Modal=({content:s,subContent:o,buttons:et,handler1:tt,handler2:nt})=>jsxs$2(ModalContainer,{children:[jsxs$2("div",{children:[s[0]," ",jsx$2("b",{children:s[1]})," ?"]}),o&&jsx$2("p",{children:o}),jsxs$2("div",{children:[jsx$2(Button$1,{variant:"contained",onClick:()=>tt&&tt(),children:et[0]}),jsx$2(Button$1,{onClick:()=>nt&&nt(),children:et[1]})]})]}),millisecond=1,second=1e3,minute=60*second,hour=60*minute,day=24*hour,week=7*day,month=30*day,year=365*day,duration={millisecond,second,minute,hour,day,week,month,year};class ConnectionError extends Error{constructor(o,et,tt){super(`Connection failure: ${o.message}`),this.cause=o,this.url=et,this.retryable=tt}}const delay=s=>new Promise(o=>setTimeout(o,s||0));function isErrorType(s,o,et=()=>!0){return s instanceof o&&et(s)}function narrowError(s,o,et=()=>!0){if(isErrorType(s,o,et))return s;throw s}function isObject$1(s){return!!s&&(typeof s=="object"||typeof s=="function")}const blacklist=["password","secret","token","key","buffer"];function redact(s,o=new Set){return o.has(s)?"[ RECURSIVE ]":isObject$1(s)?(o.add(s),Object.keys(s).reduce((et,tt)=>(et[tt]=blacklist.some(nt=>tt.toLowerCase().includes(nt.toLowerCase()))?"[ REDACTED ]":redact(s[tt],o),et),{})):s}class ResponseError extends Error{constructor(o,et,tt,nt,rt={},it){super(`Unexpected response (${tt}) for ${o} ${et}: ${JSON.stringify(it?redact([...it.entries()].reduce((ot,[st,at])=>(ot[st]=at,ot),{})):{})} -- ${JSON.stringify(redact(nt))}`),this.method=o,this.url=et,this.statusCode=tt,this.body=nt,this.validationErrors=rt,this.headers=it}}class ResponseHeadersError extends Error{constructor(o,et){super(`Invalid headers (${JSON.stringify(o)}) for response: ${et.message}`),this.validationErrors=o,this.responseError=et}}var browserPonyfill={exports:{}};(function(s,o){var et=typeof self<"u"?self:commonjsGlobal$2,tt=function(){function rt(){this.fetch=!1,this.DOMException=et.DOMException}return rt.prototype=et,new rt}();(function(rt){(function(it){var ot={searchParams:"URLSearchParams"in rt,iterable:"Symbol"in rt&&"iterator"in Symbol,blob:"FileReader"in rt&&"Blob"in rt&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in rt,arrayBuffer:"ArrayBuffer"in rt};function st(Ct){return Ct&&DataView.prototype.isPrototypeOf(Ct)}if(ot.arrayBuffer)var at=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],lt=ArrayBuffer.isView||function(Ct){return Ct&&at.indexOf(Object.prototype.toString.call(Ct))>-1};function ut(Ct){if(typeof Ct!="string"&&(Ct=String(Ct)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(Ct))throw new TypeError("Invalid character in header field name");return Ct.toLowerCase()}function dt(Ct){return typeof Ct!="string"&&(Ct=String(Ct)),Ct}function ht(Ct){var kt={next:function(){var Nt=Ct.shift();return{done:Nt===void 0,value:Nt}}};return ot.iterable&&(kt[Symbol.iterator]=function(){return kt}),kt}function ct(Ct){this.map={},Ct instanceof ct?Ct.forEach(function(kt,Nt){this.append(Nt,kt)},this):Array.isArray(Ct)?Ct.forEach(function(kt){this.append(kt[0],kt[1])},this):Ct&&Object.getOwnPropertyNames(Ct).forEach(function(kt){this.append(kt,Ct[kt])},this)}ct.prototype.append=function(Ct,kt){Ct=ut(Ct),kt=dt(kt);var Nt=this.map[Ct];this.map[Ct]=Nt?Nt+", "+kt:kt},ct.prototype.delete=function(Ct){delete this.map[ut(Ct)]},ct.prototype.get=function(Ct){return Ct=ut(Ct),this.has(Ct)?this.map[Ct]:null},ct.prototype.has=function(Ct){return this.map.hasOwnProperty(ut(Ct))},ct.prototype.set=function(Ct,kt){this.map[ut(Ct)]=dt(kt)},ct.prototype.forEach=function(Ct,kt){for(var Nt in this.map)this.map.hasOwnProperty(Nt)&&Ct.call(kt,this.map[Nt],Nt,this)},ct.prototype.keys=function(){var Ct=[];return this.forEach(function(kt,Nt){Ct.push(Nt)}),ht(Ct)},ct.prototype.values=function(){var Ct=[];return this.forEach(function(kt){Ct.push(kt)}),ht(Ct)},ct.prototype.entries=function(){var Ct=[];return this.forEach(function(kt,Nt){Ct.push([Nt,kt])}),ht(Ct)},ot.iterable&&(ct.prototype[Symbol.iterator]=ct.prototype.entries);function pt(Ct){if(Ct.bodyUsed)return Promise.reject(new TypeError("Already read"));Ct.bodyUsed=!0}function ft(Ct){return new Promise(function(kt,Nt){Ct.onload=function(){kt(Ct.result)},Ct.onerror=function(){Nt(Ct.error)}})}function gt(Ct){var kt=new FileReader,Nt=ft(kt);return kt.readAsArrayBuffer(Ct),Nt}function yt(Ct){var kt=new FileReader,Nt=ft(kt);return kt.readAsText(Ct),Nt}function Ut(Ct){for(var kt=new Uint8Array(Ct),Nt=new Array(kt.length),Ot=0;Ot-1?kt:Ct}function Lt(Ct,kt){kt=kt||{};var Nt=kt.body;if(Ct instanceof Lt){if(Ct.bodyUsed)throw new TypeError("Already read");this.url=Ct.url,this.credentials=Ct.credentials,kt.headers||(this.headers=new ct(Ct.headers)),this.method=Ct.method,this.mode=Ct.mode,this.signal=Ct.signal,!Nt&&Ct._bodyInit!=null&&(Nt=Ct._bodyInit,Ct.bodyUsed=!0)}else this.url=String(Ct);if(this.credentials=kt.credentials||this.credentials||"same-origin",(kt.headers||!this.headers)&&(this.headers=new ct(kt.headers)),this.method=At(kt.method||this.method||"GET"),this.mode=kt.mode||this.mode||null,this.signal=kt.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Nt)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(Nt)}Lt.prototype.clone=function(){return new Lt(this,{body:this._bodyInit})};function Rt(Ct){var kt=new FormData;return Ct.trim().split("&").forEach(function(Nt){if(Nt){var Ot=Nt.split("="),Jt=Ot.shift().replace(/\+/g," "),Dt=Ot.join("=").replace(/\+/g," ");kt.append(decodeURIComponent(Jt),decodeURIComponent(Dt))}}),kt}function St(Ct){var kt=new ct,Nt=Ct.replace(/\r?\n[\t ]+/g," ");return Nt.split(/\r?\n/).forEach(function(Ot){var Jt=Ot.split(":"),Dt=Jt.shift().trim();if(Dt){var Et=Jt.join(":").trim();kt.append(Dt,Et)}}),kt}mt.call(Lt.prototype);function Tt(Ct,kt){kt||(kt={}),this.type="default",this.status=kt.status===void 0?200:kt.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in kt?kt.statusText:"OK",this.headers=new ct(kt.headers),this.url=kt.url||"",this._initBody(Ct)}mt.call(Tt.prototype),Tt.prototype.clone=function(){return new Tt(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new ct(this.headers),url:this.url})},Tt.error=function(){var Ct=new Tt(null,{status:0,statusText:""});return Ct.type="error",Ct};var Bt=[301,302,303,307,308];Tt.redirect=function(Ct,kt){if(Bt.indexOf(kt)===-1)throw new RangeError("Invalid status code");return new Tt(null,{status:kt,headers:{location:Ct}})},it.DOMException=rt.DOMException;try{new it.DOMException}catch{it.DOMException=function(kt,Nt){this.message=kt,this.name=Nt;var Ot=Error(kt);this.stack=Ot.stack},it.DOMException.prototype=Object.create(Error.prototype),it.DOMException.prototype.constructor=it.DOMException}function xt(Ct,kt){return new Promise(function(Nt,Ot){var Jt=new Lt(Ct,kt);if(Jt.signal&&Jt.signal.aborted)return Ot(new it.DOMException("Aborted","AbortError"));var Dt=new XMLHttpRequest;function Et(){Dt.abort()}Dt.onload=function(){var Pt={status:Dt.status,statusText:Dt.statusText,headers:St(Dt.getAllResponseHeaders()||"")};Pt.url="responseURL"in Dt?Dt.responseURL:Pt.headers.get("X-Request-URL");var zt="response"in Dt?Dt.response:Dt.responseText;Nt(new Tt(zt,Pt))},Dt.onerror=function(){Ot(new TypeError("Network request failed"))},Dt.ontimeout=function(){Ot(new TypeError("Network request failed"))},Dt.onabort=function(){Ot(new it.DOMException("Aborted","AbortError"))},Dt.open(Jt.method,Jt.url,!0),Jt.credentials==="include"?Dt.withCredentials=!0:Jt.credentials==="omit"&&(Dt.withCredentials=!1),"responseType"in Dt&&ot.blob&&(Dt.responseType="blob"),Jt.headers.forEach(function(Pt,zt){Dt.setRequestHeader(zt,Pt)}),Jt.signal&&(Jt.signal.addEventListener("abort",Et),Dt.onreadystatechange=function(){Dt.readyState===4&&Jt.signal.removeEventListener("abort",Et)}),Dt.send(typeof Jt._bodyInit>"u"?null:Jt._bodyInit)})}return xt.polyfill=!0,rt.fetch||(rt.fetch=xt,rt.Headers=ct,rt.Request=Lt,rt.Response=Tt),it.Headers=ct,it.Request=Lt,it.Response=Tt,it.fetch=xt,Object.defineProperty(it,"__esModule",{value:!0}),it})({})})(tt),tt.fetch.ponyfill=!0,delete tt.fetch.polyfill;var nt=tt;o=nt.fetch,o.default=nt.fetch,o.fetch=nt.fetch,o.Headers=nt.Headers,o.Request=nt.Request,o.Response=nt.Response,s.exports=o})(browserPonyfill,browserPonyfill.exports);var browserPonyfillExports=browserPonyfill.exports;const crossFetch=getDefaultExportFromCjs$1(browserPonyfillExports),idempotentMethods=new Set(["GET","HEAD","PUT","QUERY","DELETE","OPTIONS","TRACE"]);class BaseClient{constructor(o,et={}){if(this.endpoint=o,this.validateHeaders=tt=>et.validateHeaders?et.validateHeaders(tt):{},this.verbose=et.verbose!==!1,et.retries!==void 0&&!(et.retries>=0))throw new Error("retries must be positive or zero");if(this.configuredRetries=et.retries,et.timeoutMs!==void 0&&!(et.timeoutMs>0))throw new Error("timeoutMs must be positive");if(this.timeoutMs=et.timeoutMs,et.maxBackoffDelayMs!==void 0&&!(et.maxBackoffDelayMs>0))throw new Error("maxBackoffDelayMs must be positive");this.maxBackoffDelayMs=et.maxBackoffDelayMs||30*duration.second}static retries=8;static waitForConnectivity=async()=>{};static onResponseError=async()=>{};validateHeaders;verbose;configuredRetries;timeoutMs;maxBackoffDelayMs;getRetries(){return this.configuredRetries!==void 0?this.configuredRetries:this.getConstructor().retries}getHeaders(){return{}}async fetch(o,et={}){return(await this.fetchVerbose(o,et)).body}async fetchVerbose(o,et={}){let tt=100*duration.millisecond,nt=0;const rt=this.timeoutMs!==void 0?new Date().getTime()+this.timeoutMs:void 0,it=rt?()=>Math.max(rt-new Date().getTime(),0):void 0;for(;;)try{return await this.doFetch(o,et,it)}catch(ot){const st=narrowError(ot,ConnectionError);if(it?.()===0||nt===this.getRetries()||!st.retryable)throw st;nt++,tt=Math.min(...it?[it()]:[],tt*(2+(Math.random()-.5)*.1),this.maxBackoffDelayMs),await delay(tt),this.verbose&&console.warn(`Connection failure, retrying. Error: ${ot.cause.message}`,{url:ot.url,error:ot.cause,attempt:nt})}}async doFetch(o,et,tt){const{token:nt,json:rt,allowUnsafeRetries:it,...ot}=et,st=(ot.method||"GET").toUpperCase(),at=this.endpoint!==void 0?`${this.endpoint}${o?`/${o}`:""}`:o,lt=new AbortController;let ut;if(tt){const dt=tt();dt>0?ut=setTimeout(()=>{lt.abort()},dt):lt.abort()}try{let dt;await Promise.race([this.getConstructor().waitForConnectivity(),new Promise(Ut=>{dt=setTimeout(Ut,tt?Math.min(duration.minute,tt()):duration.minute)})]),dt&&clearTimeout(dt);const ht=await crossFetch(at,{...ot,headers:{...rt!==!1?{"Content-Type":"application/json"}:{},...this.getHeaders(),...ot.headers||{},...nt!==void 0?{Authorization:`Bearer ${nt}`}:{},"app-id":"formant/admin-api"},signal:lt.signal}),ct=ht.headers.get("content-type")||"",pt=ct&&ct.startsWith("application/json"),ft=pt?await ht.json():await ht.text(),gt=()=>new ResponseError(st,at,ht.status,ft,ft&&ft.validationErrors||{},ht.headers);if(!ht.ok)throw this.verbose&&console.warn("Response error",{method:st,url:at,statusCode:ht.status}),gt();const yt=this.validateHeaders(ht.headers);if(Object.keys(yt).length!==0)throw new ResponseHeadersError(yt,gt());if(ht.status===204)return{body:void 0,headers:ht.headers};if(rt&&!pt)throw new Error(`Response is not JSON: ${JSON.stringify(ft)}`);return{body:ft,headers:ht.headers}}catch(dt){const ht=it||idempotentMethods.has(st);if(dt.message==="Network request failed")throw new ConnectionError(dt,at,ht);if(dt.type==="system"&&["EAI_AGAIN","ECONNREFUSED","EHOSTUNREACH","ENOTFOUND"].find(gt=>gt===dt.code))throw new ConnectionError(dt,at,!0);if(dt.type==="system"&&["ETIMEDOUT","ECONNRESET","ESOCKETTIMEDOUT","EPIPE"].find(gt=>gt===dt.code))throw new ConnectionError(dt,at,ht);if(dt.name==="AbortError")throw new ConnectionError(dt,at,ht);const ct=narrowError(dt,ResponseError),{statusCode:pt}=ct;if(pt===408||pt===429||pt===502||pt===503||pt===504)throw this.verbose&&!ht&&console.warn("Potentially unsafe retry"),new ConnectionError(dt,at,!0);const ft=this.validateHeaders(ct.headers);throw Object.keys(ft).length!==0?new ResponseHeadersError(ft,ct):(await this.getConstructor().onResponseError(ct),dt)}finally{ut&&clearTimeout(ut)}}getConstructor(){return Object.getPrototypeOf(this).constructor}}class UploadPartClient extends BaseClient{constructor(){super(void 0,{retries:3,timeoutMs:10*duration.second})}async upload(o,et){const nt=(await this.fetchVerbose(o,{method:"PUT",body:et,json:!1})).headers.get("etag");if(!nt)throw new Error(`Invalid ETag from upload part response: ${nt}`);return nt}}const invalidHeadersValidation={"app-id":["app-id must match formant/*"]};class FormantBaseClient extends BaseClient{constructor(o,et={}){super(o,{validateHeaders:tt=>`${tt.get("app-id")}`.startsWith("formant/")?{}:invalidHeadersValidation,...et}),this.endpoint=o}static headers={};getHeaders(){return{...FormantBaseClient.headers}}}var shams=function s(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var o={},et=Symbol("test"),tt=Object(et);if(typeof et=="string"||Object.prototype.toString.call(et)!=="[object Symbol]"||Object.prototype.toString.call(tt)!=="[object Symbol]")return!1;var nt=42;o[et]=nt;for(et in o)return!1;if(typeof Object.keys=="function"&&Object.keys(o).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(o).length!==0)return!1;var rt=Object.getOwnPropertySymbols(o);if(rt.length!==1||rt[0]!==et||!Object.prototype.propertyIsEnumerable.call(o,et))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var it=Object.getOwnPropertyDescriptor(o,et);if(it.value!==nt||it.enumerable!==!0)return!1}return!0},origSymbol=typeof Symbol<"u"&&Symbol,hasSymbolSham=shams,hasSymbols$1=function s(){return typeof origSymbol!="function"||typeof Symbol!="function"||typeof origSymbol("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:hasSymbolSham()},test={foo:{}},$Object=Object,hasProto$1=function s(){return{__proto__:test}.foo===test.foo&&!({__proto__:null}instanceof $Object)},ERROR_MESSAGE="Function.prototype.bind called on incompatible ",toStr$1=Object.prototype.toString,max=Math.max,funcType="[object Function]",concatty=function s(o,et){for(var tt=[],nt=0;nt"u"||!getProto?undefined$1:getProto(Uint8Array),INTRINSICS={"%AggregateError%":typeof AggregateError>"u"?undefined$1:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?undefined$1:ArrayBuffer,"%ArrayIteratorPrototype%":hasSymbols&&getProto?getProto([][Symbol.iterator]()):undefined$1,"%AsyncFromSyncIteratorPrototype%":undefined$1,"%AsyncFunction%":needsEval,"%AsyncGenerator%":needsEval,"%AsyncGeneratorFunction%":needsEval,"%AsyncIteratorPrototype%":needsEval,"%Atomics%":typeof Atomics>"u"?undefined$1:Atomics,"%BigInt%":typeof BigInt>"u"?undefined$1:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?undefined$1:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?undefined$1:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?undefined$1:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?undefined$1:Float32Array,"%Float64Array%":typeof Float64Array>"u"?undefined$1:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?undefined$1:FinalizationRegistry,"%Function%":$Function,"%GeneratorFunction%":needsEval,"%Int8Array%":typeof Int8Array>"u"?undefined$1:Int8Array,"%Int16Array%":typeof Int16Array>"u"?undefined$1:Int16Array,"%Int32Array%":typeof Int32Array>"u"?undefined$1:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":hasSymbols&&getProto?getProto(getProto([][Symbol.iterator]())):undefined$1,"%JSON%":typeof JSON=="object"?JSON:undefined$1,"%Map%":typeof Map>"u"?undefined$1:Map,"%MapIteratorPrototype%":typeof Map>"u"||!hasSymbols||!getProto?undefined$1:getProto(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?undefined$1:Promise,"%Proxy%":typeof Proxy>"u"?undefined$1:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?undefined$1:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?undefined$1:Set,"%SetIteratorPrototype%":typeof Set>"u"||!hasSymbols||!getProto?undefined$1:getProto(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?undefined$1:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":hasSymbols&&getProto?getProto(""[Symbol.iterator]()):undefined$1,"%Symbol%":hasSymbols?Symbol:undefined$1,"%SyntaxError%":$SyntaxError$1,"%ThrowTypeError%":ThrowTypeError,"%TypedArray%":TypedArray,"%TypeError%":$TypeError$3,"%Uint8Array%":typeof Uint8Array>"u"?undefined$1:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?undefined$1:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?undefined$1:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?undefined$1:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?undefined$1:WeakMap,"%WeakRef%":typeof WeakRef>"u"?undefined$1:WeakRef,"%WeakSet%":typeof WeakSet>"u"?undefined$1:WeakSet};if(getProto)try{null.error}catch(s){var errorProto=getProto(getProto(s));INTRINSICS["%Error.prototype%"]=errorProto}var doEval=function s(o){var et;if(o==="%AsyncFunction%")et=getEvalledConstructor("async function () {}");else if(o==="%GeneratorFunction%")et=getEvalledConstructor("function* () {}");else if(o==="%AsyncGeneratorFunction%")et=getEvalledConstructor("async function* () {}");else if(o==="%AsyncGenerator%"){var tt=s("%AsyncGeneratorFunction%");tt&&(et=tt.prototype)}else if(o==="%AsyncIteratorPrototype%"){var nt=s("%AsyncGenerator%");nt&&getProto&&(et=getProto(nt.prototype))}return INTRINSICS[o]=et,et},LEGACY_ALIASES={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bind=functionBind,hasOwn$1=hasown,$concat$1=bind.call(Function.call,Array.prototype.concat),$spliceApply=bind.call(Function.apply,Array.prototype.splice),$replace$1=bind.call(Function.call,String.prototype.replace),$strSlice=bind.call(Function.call,String.prototype.slice),$exec=bind.call(Function.call,RegExp.prototype.exec),rePropName=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=function s(o){var et=$strSlice(o,0,1),tt=$strSlice(o,-1);if(et==="%"&&tt!=="%")throw new $SyntaxError$1("invalid intrinsic syntax, expected closing `%`");if(tt==="%"&&et!=="%")throw new $SyntaxError$1("invalid intrinsic syntax, expected opening `%`");var nt=[];return $replace$1(o,rePropName,function(rt,it,ot,st){nt[nt.length]=ot?$replace$1(st,reEscapeChar,"$1"):it||rt}),nt},getBaseIntrinsic=function s(o,et){var tt=o,nt;if(hasOwn$1(LEGACY_ALIASES,tt)&&(nt=LEGACY_ALIASES[tt],tt="%"+nt[0]+"%"),hasOwn$1(INTRINSICS,tt)){var rt=INTRINSICS[tt];if(rt===needsEval&&(rt=doEval(tt)),typeof rt>"u"&&!et)throw new $TypeError$3("intrinsic "+o+" exists, but is not available. Please file an issue!");return{alias:nt,name:tt,value:rt}}throw new $SyntaxError$1("intrinsic "+o+" does not exist!")},getIntrinsic=function s(o,et){if(typeof o!="string"||o.length===0)throw new $TypeError$3("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof et!="boolean")throw new $TypeError$3('"allowMissing" argument must be a boolean');if($exec(/^%?[^%]*%?$/,o)===null)throw new $SyntaxError$1("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var tt=stringToPath(o),nt=tt.length>0?tt[0]:"",rt=getBaseIntrinsic("%"+nt+"%",et),it=rt.name,ot=rt.value,st=!1,at=rt.alias;at&&(nt=at[0],$spliceApply(tt,$concat$1([0,1],at)));for(var lt=1,ut=!0;lt=tt.length){var pt=$gOPD$1(ot,dt);ut=!!pt,ut&&"get"in pt&&!("originalValue"in pt.get)?ot=pt.get:ot=ot[dt]}else ut=hasOwn$1(ot,dt),ot=ot[dt];ut&&!st&&(INTRINSICS[it]=ot)}}return ot},callBind$1={exports:{}},GetIntrinsic$5=getIntrinsic,$defineProperty$1=GetIntrinsic$5("%Object.defineProperty%",!0),hasPropertyDescriptors$1=function s(){if($defineProperty$1)try{return $defineProperty$1({},"a",{value:1}),!0}catch{return!1}return!1};hasPropertyDescriptors$1.hasArrayLengthDefineBug=function s(){if(!hasPropertyDescriptors$1())return null;try{return $defineProperty$1([],"length",{value:1}).length!==1}catch{return!0}};var hasPropertyDescriptors_1=hasPropertyDescriptors$1,GetIntrinsic$4=getIntrinsic,$gOPD=GetIntrinsic$4("%Object.getOwnPropertyDescriptor%",!0);if($gOPD)try{$gOPD([],"length")}catch{$gOPD=null}var gopd$1=$gOPD,hasPropertyDescriptors=hasPropertyDescriptors_1(),GetIntrinsic$3=getIntrinsic,$defineProperty=hasPropertyDescriptors&&GetIntrinsic$3("%Object.defineProperty%",!0);if($defineProperty)try{$defineProperty({},"a",{value:1})}catch{$defineProperty=!1}var $SyntaxError=GetIntrinsic$3("%SyntaxError%"),$TypeError$2=GetIntrinsic$3("%TypeError%"),gopd=gopd$1,defineDataProperty=function s(o,et,tt){if(!o||typeof o!="object"&&typeof o!="function")throw new $TypeError$2("`obj` must be an object or a function`");if(typeof et!="string"&&typeof et!="symbol")throw new $TypeError$2("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new $TypeError$2("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new $TypeError$2("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new $TypeError$2("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new $TypeError$2("`loose`, if provided, must be a boolean");var nt=arguments.length>3?arguments[3]:null,rt=arguments.length>4?arguments[4]:null,it=arguments.length>5?arguments[5]:null,ot=arguments.length>6?arguments[6]:!1,st=!!gopd&&gopd(o,et);if($defineProperty)$defineProperty(o,et,{configurable:it===null&&st?st.configurable:!it,enumerable:nt===null&&st?st.enumerable:!nt,value:tt,writable:rt===null&&st?st.writable:!rt});else if(ot||!nt&&!rt&&!it)o[et]=tt;else throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},GetIntrinsic$2=getIntrinsic,define=defineDataProperty,hasDescriptors=hasPropertyDescriptors_1(),gOPD=gopd$1,$TypeError$1=GetIntrinsic$2("%TypeError%"),$floor$1=GetIntrinsic$2("%Math.floor%"),setFunctionLength=function s(o,et){if(typeof o!="function")throw new $TypeError$1("`fn` is not a function");if(typeof et!="number"||et<0||et>4294967295||$floor$1(et)!==et)throw new $TypeError$1("`length` must be a positive 32-bit integer");var tt=arguments.length>2&&!!arguments[2],nt=!0,rt=!0;if("length"in o&&gOPD){var it=gOPD(o,"length");it&&!it.configurable&&(nt=!1),it&&!it.writable&&(rt=!1)}return(nt||rt||!tt)&&(hasDescriptors?define(o,"length",et,!0,!0):define(o,"length",et)),o};(function(s){var o=functionBind,et=getIntrinsic,tt=setFunctionLength,nt=et("%TypeError%"),rt=et("%Function.prototype.apply%"),it=et("%Function.prototype.call%"),ot=et("%Reflect.apply%",!0)||o.call(it,rt),st=et("%Object.defineProperty%",!0),at=et("%Math.max%");if(st)try{st({},"a",{value:1})}catch{st=null}s.exports=function(dt){if(typeof dt!="function")throw new nt("a function is required");var ht=ot(o,it,arguments);return tt(ht,1+at(0,dt.length-(arguments.length-1)),!0)};var lt=function(){return ot(o,rt,arguments)};st?st(s.exports,"apply",{value:lt}):s.exports.apply=lt})(callBind$1);var callBindExports=callBind$1.exports,GetIntrinsic$1=getIntrinsic,callBind=callBindExports,$indexOf=callBind(GetIntrinsic$1("String.prototype.indexOf")),callBound$1=function s(o,et){var tt=GetIntrinsic$1(o,!!et);return typeof tt=="function"&&$indexOf(o,".prototype.")>-1?callBind(tt):tt};const __viteBrowserExternal={},__viteBrowserExternal$1=Object.freeze(Object.defineProperty({__proto__:null,default:__viteBrowserExternal},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(__viteBrowserExternal$1);var hasMap=typeof Map=="function"&&Map.prototype,mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mapSize=hasMap&&mapSizeDescriptor&&typeof mapSizeDescriptor.get=="function"?mapSizeDescriptor.get:null,mapForEach=hasMap&&Map.prototype.forEach,hasSet=typeof Set=="function"&&Set.prototype,setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,setSize=hasSet&&setSizeDescriptor&&typeof setSizeDescriptor.get=="function"?setSizeDescriptor.get:null,setForEach=hasSet&&Set.prototype.forEach,hasWeakMap=typeof WeakMap=="function"&&WeakMap.prototype,weakMapHas=hasWeakMap?WeakMap.prototype.has:null,hasWeakSet=typeof WeakSet=="function"&&WeakSet.prototype,weakSetHas=hasWeakSet?WeakSet.prototype.has:null,hasWeakRef=typeof WeakRef=="function"&&WeakRef.prototype,weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null,booleanValueOf=Boolean.prototype.valueOf,objectToString$1=Object.prototype.toString,functionToString=Function.prototype.toString,$match=String.prototype.match,$slice=String.prototype.slice,$replace=String.prototype.replace,$toUpperCase=String.prototype.toUpperCase,$toLowerCase=String.prototype.toLowerCase,$test=RegExp.prototype.test,$concat=Array.prototype.concat,$join=Array.prototype.join,$arrSlice=Array.prototype.slice,$floor=Math.floor,bigIntValueOf=typeof BigInt=="function"?BigInt.prototype.valueOf:null,gOPS=Object.getOwnPropertySymbols,symToString=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,hasShammedSymbols=typeof Symbol=="function"&&typeof Symbol.iterator=="object",toStringTag=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===hasShammedSymbols||"symbol")?Symbol.toStringTag:null,isEnumerable=Object.prototype.propertyIsEnumerable,gPO=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(s){return s.__proto__}:null);function addNumericSeparator(s,o){if(s===1/0||s===-1/0||s!==s||s&&s>-1e3&&s<1e3||$test.call(/e/,o))return o;var et=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof s=="number"){var tt=s<0?-$floor(-s):$floor(s);if(tt!==s){var nt=String(tt),rt=$slice.call(o,nt.length+1);return $replace.call(nt,et,"$&_")+"."+$replace.call($replace.call(rt,/([0-9]{3})/g,"$&_"),/_$/,"")}}return $replace.call(o,et,"$&_")}var utilInspect=require$$0,inspectCustom=utilInspect.custom,inspectSymbol=isSymbol$1(inspectCustom)?inspectCustom:null,objectInspect=function s(o,et,tt,nt){var rt=et||{};if(has$3(rt,"quoteStyle")&&rt.quoteStyle!=="single"&&rt.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has$3(rt,"maxStringLength")&&(typeof rt.maxStringLength=="number"?rt.maxStringLength<0&&rt.maxStringLength!==1/0:rt.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var it=has$3(rt,"customInspect")?rt.customInspect:!0;if(typeof it!="boolean"&&it!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has$3(rt,"indent")&&rt.indent!==null&&rt.indent!==" "&&!(parseInt(rt.indent,10)===rt.indent&&rt.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(has$3(rt,"numericSeparator")&&typeof rt.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var ot=rt.numericSeparator;if(typeof o>"u")return"undefined";if(o===null)return"null";if(typeof o=="boolean")return o?"true":"false";if(typeof o=="string")return inspectString(o,rt);if(typeof o=="number"){if(o===0)return 1/0/o>0?"0":"-0";var st=String(o);return ot?addNumericSeparator(o,st):st}if(typeof o=="bigint"){var at=String(o)+"n";return ot?addNumericSeparator(o,at):at}var lt=typeof rt.depth>"u"?5:rt.depth;if(typeof tt>"u"&&(tt=0),tt>=lt&<>0&&typeof o=="object")return isArray$3(o)?"[Array]":"[Object]";var ut=getIndent(rt,tt);if(typeof nt>"u")nt=[];else if(indexOf(nt,o)>=0)return"[Circular]";function dt(xt,Ct,kt){if(Ct&&(nt=$arrSlice.call(nt),nt.push(Ct)),kt){var Nt={depth:rt.depth};return has$3(rt,"quoteStyle")&&(Nt.quoteStyle=rt.quoteStyle),s(xt,Nt,tt+1,nt)}return s(xt,rt,tt+1,nt)}if(typeof o=="function"&&!isRegExp$1(o)){var ht=nameOf(o),ct=arrObjKeys(o,dt);return"[Function"+(ht?": "+ht:" (anonymous)")+"]"+(ct.length>0?" { "+$join.call(ct,", ")+" }":"")}if(isSymbol$1(o)){var pt=hasShammedSymbols?$replace.call(String(o),/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(o);return typeof o=="object"&&!hasShammedSymbols?markBoxed(pt):pt}if(isElement(o)){for(var ft="<"+$toLowerCase.call(String(o.nodeName)),gt=o.attributes||[],yt=0;yt",ft}if(isArray$3(o)){if(o.length===0)return"[]";var Ut=arrObjKeys(o,dt);return ut&&!singleLineValues(Ut)?"["+indentedJoin(Ut,ut)+"]":"[ "+$join.call(Ut,", ")+" ]"}if(isError(o)){var Ft=arrObjKeys(o,dt);return!("cause"in Error.prototype)&&"cause"in o&&!isEnumerable.call(o,"cause")?"{ ["+String(o)+"] "+$join.call($concat.call("[cause]: "+dt(o.cause),Ft),", ")+" }":Ft.length===0?"["+String(o)+"]":"{ ["+String(o)+"] "+$join.call(Ft,", ")+" }"}if(typeof o=="object"&&it){if(inspectSymbol&&typeof o[inspectSymbol]=="function"&&utilInspect)return utilInspect(o,{depth:lt-tt});if(it!=="symbol"&&typeof o.inspect=="function")return o.inspect()}if(isMap(o)){var mt=[];return mapForEach&&mapForEach.call(o,function(xt,Ct){mt.push(dt(Ct,o,!0)+" => "+dt(xt,o))}),collectionOf("Map",mapSize.call(o),mt,ut)}if(isSet(o)){var vt=[];return setForEach&&setForEach.call(o,function(xt){vt.push(dt(xt,o))}),collectionOf("Set",setSize.call(o),vt,ut)}if(isWeakMap(o))return weakCollectionOf("WeakMap");if(isWeakSet(o))return weakCollectionOf("WeakSet");if(isWeakRef(o))return weakCollectionOf("WeakRef");if(isNumber(o))return markBoxed(dt(Number(o)));if(isBigInt(o))return markBoxed(dt(bigIntValueOf.call(o)));if(isBoolean(o))return markBoxed(booleanValueOf.call(o));if(isString(o))return markBoxed(dt(String(o)));if(typeof window<"u"&&o===window)return"{ [object Window] }";if(o===commonjsGlobal$2)return"{ [object globalThis] }";if(!isDate(o)&&!isRegExp$1(o)){var At=arrObjKeys(o,dt),Lt=gPO?gPO(o)===Object.prototype:o instanceof Object||o.constructor===Object,Rt=o instanceof Object?"":"null prototype",St=!Lt&&toStringTag&&Object(o)===o&&toStringTag in o?$slice.call(toStr(o),8,-1):Rt?"Object":"",Tt=Lt||typeof o.constructor!="function"?"":o.constructor.name?o.constructor.name+" ":"",Bt=Tt+(St||Rt?"["+$join.call($concat.call([],St||[],Rt||[]),": ")+"] ":"");return At.length===0?Bt+"{}":ut?Bt+"{"+indentedJoin(At,ut)+"}":Bt+"{ "+$join.call(At,", ")+" }"}return String(o)};function wrapQuotes(s,o,et){var tt=(et.quoteStyle||o)==="double"?'"':"'";return tt+s+tt}function quote(s){return $replace.call(String(s),/"/g,""")}function isArray$3(s){return toStr(s)==="[object Array]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isDate(s){return toStr(s)==="[object Date]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isRegExp$1(s){return toStr(s)==="[object RegExp]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isError(s){return toStr(s)==="[object Error]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isString(s){return toStr(s)==="[object String]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isNumber(s){return toStr(s)==="[object Number]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isBoolean(s){return toStr(s)==="[object Boolean]"&&(!toStringTag||!(typeof s=="object"&&toStringTag in s))}function isSymbol$1(s){if(hasShammedSymbols)return s&&typeof s=="object"&&s instanceof Symbol;if(typeof s=="symbol")return!0;if(!s||typeof s!="object"||!symToString)return!1;try{return symToString.call(s),!0}catch{}return!1}function isBigInt(s){if(!s||typeof s!="object"||!bigIntValueOf)return!1;try{return bigIntValueOf.call(s),!0}catch{}return!1}var hasOwn=Object.prototype.hasOwnProperty||function(s){return s in this};function has$3(s,o){return hasOwn.call(s,o)}function toStr(s){return objectToString$1.call(s)}function nameOf(s){if(s.name)return s.name;var o=$match.call(functionToString.call(s),/^function\s*([\w$]+)/);return o?o[1]:null}function indexOf(s,o){if(s.indexOf)return s.indexOf(o);for(var et=0,tt=s.length;eto.maxStringLength){var et=s.length-o.maxStringLength,tt="... "+et+" more character"+(et>1?"s":"");return inspectString($slice.call(s,0,o.maxStringLength),o)+tt}var nt=$replace.call($replace.call(s,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,lowbyte);return wrapQuotes(nt,"single",o)}function lowbyte(s){var o=s.charCodeAt(0),et={8:"b",9:"t",10:"n",12:"f",13:"r"}[o];return et?"\\"+et:"\\x"+(o<16?"0":"")+$toUpperCase.call(o.toString(16))}function markBoxed(s){return"Object("+s+")"}function weakCollectionOf(s){return s+" { ? }"}function collectionOf(s,o,et,tt){var nt=tt?indentedJoin(et,tt):$join.call(et,", ");return s+" ("+o+") {"+nt+"}"}function singleLineValues(s){for(var o=0;o=0)return!1;return!0}function getIndent(s,o){var et;if(s.indent===" ")et=" ";else if(typeof s.indent=="number"&&s.indent>0)et=$join.call(Array(s.indent+1)," ");else return null;return{base:et,prev:$join.call(Array(o+1),et)}}function indentedJoin(s,o){if(s.length===0)return"";var et=` `+o.prev+o.base;return et+$join.call(s,","+et)+` `+o.prev}function arrObjKeys(s,o){var et=isArray$3(s),tt=[];if(et){tt.length=s.length;for(var nt=0;nt1;){var et=o.pop(),tt=et.obj[et.prop];if(isArray$2(tt)){for(var nt=[],rt=0;rt=48&&at<=57||at>=65&&at<=90||at>=97&&at<=122||rt===formats$2.RFC1738&&(at===40||at===41)){ot+=it.charAt(st);continue}if(at<128){ot=ot+hexTable[at];continue}if(at<2048){ot=ot+(hexTable[192|at>>6]+hexTable[128|at&63]);continue}if(at<55296||at>=57344){ot=ot+(hexTable[224|at>>12]+hexTable[128|at>>6&63]+hexTable[128|at&63]);continue}st+=1,at=65536+((at&1023)<<10|it.charCodeAt(st)&1023),ot+=hexTable[240|at>>18]+hexTable[128|at>>12&63]+hexTable[128|at>>6&63]+hexTable[128|at&63]}return ot},compact=function s(o){for(var et=[{obj:{o},prop:"o"}],tt=[],nt=0;nt"u"&&(Ut=0)}if(typeof st=="function"?gt=st(et,gt):gt instanceof Date?gt=ut(gt):tt==="comma"&&isArray$1(gt)&&(gt=utils$1.maybeMap(gt,function(Nt){return Nt instanceof Date?ut(Nt):Nt})),gt===null){if(rt)return ot&&!ct?ot(et,defaults$1.encoder,pt,"key",dt):et;gt=""}if(isNonNullishPrimitive(gt)||utils$1.isBuffer(gt)){if(ot){var vt=ct?et:ot(et,defaults$1.encoder,pt,"key",dt);return[ht(vt)+"="+ht(ot(gt,defaults$1.encoder,pt,"value",dt))]}return[ht(et)+"="+ht(String(gt))]}var At=[];if(typeof gt>"u")return At;var Lt;if(tt==="comma"&&isArray$1(gt))ct&&ot&&(gt=utils$1.maybeMap(gt,ot)),Lt=[{value:gt.length>0?gt.join(",")||null:void 0}];else if(isArray$1(st))Lt=st;else{var Rt=Object.keys(gt);Lt=at?Rt.sort(at):Rt}for(var St=nt&&isArray$1(gt)&>.length===1?et+"[]":et,Tt=0;Tt"u"?defaults$1.allowDots:!!o.allowDots,charset:et,charsetSentinel:typeof o.charsetSentinel=="boolean"?o.charsetSentinel:defaults$1.charsetSentinel,delimiter:typeof o.delimiter>"u"?defaults$1.delimiter:o.delimiter,encode:typeof o.encode=="boolean"?o.encode:defaults$1.encode,encoder:typeof o.encoder=="function"?o.encoder:defaults$1.encoder,encodeValuesOnly:typeof o.encodeValuesOnly=="boolean"?o.encodeValuesOnly:defaults$1.encodeValuesOnly,filter:rt,format:tt,formatter:nt,serializeDate:typeof o.serializeDate=="function"?o.serializeDate:defaults$1.serializeDate,skipNulls:typeof o.skipNulls=="boolean"?o.skipNulls:defaults$1.skipNulls,sort:typeof o.sort=="function"?o.sort:null,strictNullHandling:typeof o.strictNullHandling=="boolean"?o.strictNullHandling:defaults$1.strictNullHandling}},stringify_1=function(s,o){var et=s,tt=normalizeStringifyOptions(o),nt,rt;typeof tt.filter=="function"?(rt=tt.filter,et=rt("",et)):isArray$1(tt.filter)&&(rt=tt.filter,nt=rt);var it=[];if(typeof et!="object"||et===null)return"";var ot;o&&o.arrayFormat in arrayPrefixGenerators?ot=o.arrayFormat:o&&"indices"in o?ot=o.indices?"indices":"repeat":ot="indices";var st=arrayPrefixGenerators[ot];if(o&&"commaRoundTrip"in o&&typeof o.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var at=st==="comma"&&o&&o.commaRoundTrip;nt||(nt=Object.keys(et)),tt.sort&&nt.sort(tt.sort);for(var lt=getSideChannel(),ut=0;ut0?ct+ht:""},utils=utils$2,has=Object.prototype.hasOwnProperty,isArray=Array.isArray,defaults={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:utils.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},interpretNumericEntities=function(s){return s.replace(/&#(\d+);/g,function(o,et){return String.fromCharCode(parseInt(et,10))})},parseArrayValue=function(s,o){return s&&typeof s=="string"&&o.comma&&s.indexOf(",")>-1?s.split(","):s},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function s(o,et){var tt={__proto__:null},nt=et.ignoreQueryPrefix?o.replace(/^\?/,""):o,rt=et.parameterLimit===1/0?void 0:et.parameterLimit,it=nt.split(et.delimiter,rt),ot=-1,st,at=et.charset;if(et.charsetSentinel)for(st=0;st-1&&(ct=isArray(ct)?[ct]:ct),has.call(tt,ht)?tt[ht]=utils.combine(tt[ht],ct):tt[ht]=ct}return tt},parseObject=function(s,o,et,tt){for(var nt=tt?o:parseArrayValue(o,et),rt=s.length-1;rt>=0;--rt){var it,ot=s[rt];if(ot==="[]"&&et.parseArrays)it=[].concat(nt);else{it=et.plainObjects?Object.create(null):{};var st=ot.charAt(0)==="["&&ot.charAt(ot.length-1)==="]"?ot.slice(1,-1):ot,at=parseInt(st,10);!et.parseArrays&&st===""?it={0:nt}:!isNaN(at)&&ot!==st&&String(at)===st&&at>=0&&et.parseArrays&&at<=et.arrayLimit?(it=[],it[at]=nt):st!=="__proto__"&&(it[st]=nt)}nt=it}return nt},parseKeys=function s(o,et,tt,nt){if(o){var rt=tt.allowDots?o.replace(/\.([^.[]+)/g,"[$1]"):o,it=/(\[[^[\]]*])/,ot=/(\[[^[\]]*])/g,st=tt.depth>0&&it.exec(rt),at=st?rt.slice(0,st.index):rt,lt=[];if(at){if(!tt.plainObjects&&has.call(Object.prototype,at)&&!tt.allowPrototypes)return;lt.push(at)}for(var ut=0;tt.depth>0&&(st=ot.exec(rt))!==null&&ut"u"?defaults.charset:o.charset;return{allowDots:typeof o.allowDots>"u"?defaults.allowDots:!!o.allowDots,allowPrototypes:typeof o.allowPrototypes=="boolean"?o.allowPrototypes:defaults.allowPrototypes,allowSparse:typeof o.allowSparse=="boolean"?o.allowSparse:defaults.allowSparse,arrayLimit:typeof o.arrayLimit=="number"?o.arrayLimit:defaults.arrayLimit,charset:et,charsetSentinel:typeof o.charsetSentinel=="boolean"?o.charsetSentinel:defaults.charsetSentinel,comma:typeof o.comma=="boolean"?o.comma:defaults.comma,decoder:typeof o.decoder=="function"?o.decoder:defaults.decoder,delimiter:typeof o.delimiter=="string"||utils.isRegExp(o.delimiter)?o.delimiter:defaults.delimiter,depth:typeof o.depth=="number"||o.depth===!1?+o.depth:defaults.depth,ignoreQueryPrefix:o.ignoreQueryPrefix===!0,interpretNumericEntities:typeof o.interpretNumericEntities=="boolean"?o.interpretNumericEntities:defaults.interpretNumericEntities,parameterLimit:typeof o.parameterLimit=="number"?o.parameterLimit:defaults.parameterLimit,parseArrays:o.parseArrays!==!1,plainObjects:typeof o.plainObjects=="boolean"?o.plainObjects:defaults.plainObjects,strictNullHandling:typeof o.strictNullHandling=="boolean"?o.strictNullHandling:defaults.strictNullHandling}},parse$1=function(s,o){var et=normalizeParseOptions(o);if(s===""||s===null||typeof s>"u")return et.plainObjects?Object.create(null):{};for(var tt=typeof s=="string"?parseValues(s,et):s,nt=et.plainObjects?Object.create(null):{},rt=Object.keys(tt),it=0;itnt.statusCode===404)}}}class FileClient extends BaseModelClient{uploadPartClient=new UploadPartClient;constructor(o){super(o,"files")}async uploadFile(o,et){const tt={fileName:et.name,fileSize:et.size},{fileId:nt,partSize:rt,partUrls:it,uploadId:ot}=await this.fetch("files/begin-upload",{token:o,method:"POST",body:JSON.stringify(tt)}),st=[];for(let lt=0;lt{const et=window.location.href.includes("dev=true"),tt=new FileClient(`https://api${et?"-dev":""}.formant.io/v1/admin`),nt=new Blob([JSON.stringify(o)],{type:"application/json"}),rt=new File([nt],`waypoints-${v1()}.json`);return await tt.uploadFile(s,rt)},TextInput=reactExports.forwardRef(({label:s,onChange:o,onEnter:et,value:tt,min:nt,max:rt,type:it=PROPERTY_TYPE.STRING},ot)=>{const st=React$1.useRef(null);return jsxs$2(TextInputContainer,{ref:st,children:[jsx$2("label",{children:s}),jsx$2("input",{ref:ot,value:tt,placeholder:"Edit",onChange:at=>{const lt=st.current.childNodes[1];if(it===PROPERTY_TYPE.FLOAT){const ut=lt.value.replace(/[^0-9.-]/g,"");lt.value=(parseFloat(ut)>rt?rt:parseFloat(ut)rt?rt:parseInt(ut){at.key==="Enter"&&et&&et()},onBlur:()=>et&&et()})]})}),getTaregt=s=>s.current,DropdownInput=reactExports.forwardRef(({label:s,content:o,onChange:et},tt)=>jsxs$2(DropdownContainer,{children:[jsx$2("label",{children:s}),jsx$2("select",{ref:tt,onChange:nt=>{et&&et(nt)},children:o.map((nt,rt)=>jsx$2("option",{value:rt,children:nt},rt))})]})),BooleanToggle=reactExports.forwardRef(({label:s,value:o=!1,onChange:et},tt)=>{const[nt,rt]=React$1.useState(o);return tt.current=ot=>rt(ot),jsxs$2(BooleanToggleContainer,{children:[jsx$2("label",{children:s}),jsxs$2("div",{onClick:()=>{rt(ot=>!ot),et&&et(!nt)},children:[jsx$2("div",{children:nt?"On":"Off"}),jsx$2("div",{children:nt?jsx$2(BooleanToggleTrueIcon,{}):jsx$2(BooleanToggleFalseIcon,{})})]})]})}),PropertyPanel=({waypointProperties:s,controlsStates:o})=>{const{waypoints:et,state:{selectedWaypoint:tt,isWaypointEditing:nt},updateState:rt,store:it,setWaypoints:ot}=o,[st,at]=reactExports.useState(!1),lt=[];for(let gt=0;gt{const gt=[];return s.forEach((yt,Ut)=>{const{propertyType:Ft}=yt;if(Ft===PROPERTY_TYPE.STRING)gt.push(jsx$2(TextInput,{ref:lt[Ut],label:yt.propertyName,onChange:mt=>{tt!==null&&(it.waypoints[tt][yt.propertyName]=mt.target.value)}},Ut));else if(Ft===PROPERTY_TYPE.INTEGER||Ft===PROPERTY_TYPE.FLOAT)gt.push(jsx$2(TextInput,{ref:lt[Ut],label:yt.propertyName,min:yt.min,max:yt.max,type:Ft===PROPERTY_TYPE.INTEGER?Ft:PROPERTY_TYPE.FLOAT,onChange:mt=>{tt!==null&&(it.waypoints[tt][yt.propertyName]=mt.target.value)}},Ut));else if(Ft===PROPERTY_TYPE.BOOLEAN)gt.push(jsx$2(BooleanToggle,{ref:lt[Ut],label:yt.propertyName,onChange:mt=>{tt!==null&&(it.waypoints[tt][yt.propertyName]=mt)}},Ut));else if(Ft===PROPERTY_TYPE.ENUM&&yt.enumLists){const{enumLists:mt}=yt,vt=mt.map(At=>At.enumList);gt.push(jsx$2(DropdownInput,{ref:lt[Ut],label:yt.propertyName,content:vt,onChange:At=>{if(tt===null)return;const Lt=parseInt(At.target.value);it.waypoints[tt][yt.propertyName]=[Lt,vt[Lt]]}},Ut))}}),gt},pt=()=>{if(tt===null)return;ot(yt=>yt.filter((Ut,Ft)=>Ft!==tt));const{waypoints:gt}=it;it.waypoints=gt.filter((yt,Ut)=>Ut!==tt),tt>0?rt({selectedWaypoint:tt-1}):gt.length>1?rt({selectedWaypoint:gt.length-2}):rt({selectedWaypoint:null})},ft=gt=>{if(tt!==null){let yt=parseFloat(getTaregt(gt==="x"?dt:ht).value);yt=isNaN(yt)?0:yt;const Ut=[...et];gt==="x"?Ut[tt].translation.x=yt:Ut[tt].translation.y=yt,ot(Ut),it.waypoints[tt]}};return reactExports.useEffect(()=>{const gt=yt=>{yt.key==="Delete"&&at(!0)};return window.addEventListener("keydown",gt),()=>window.removeEventListener("keydown",gt)},[]),reactExports.useEffect(()=>{if(!nt||et.length===0)return;if(tt===null){ut.current.value="",dt.current.value="",ht.current.value="",s.length>0&&s.forEach(({propertyType:At},Lt)=>{At===PROPERTY_TYPE.STRING||At===PROPERTY_TYPE.INTEGER?lt[Lt].current.value="":lt[Lt].current.value="0"});return}const{pose:gt}=it.waypoints[tt],{x:yt,y:Ut,z:Ft,w:mt}=gt.rotation,vt=new Euler().setFromQuaternion(new Quaternion(yt,Ut,Ft,mt));ut.current.value=MathUtils.radToDeg(vt.z).toFixed(2),dt.current.value=gt.translation.x.toFixed(2),ht.current.value=gt.translation.y.toFixed(2),s.length>0&&s.forEach((At,Lt)=>{if(At.propertyType===PROPERTY_TYPE.STRING){const Rt=it.waypoints[tt][At.propertyName];lt[Lt].current.value=Rt||At.stringDefault||"",it.waypoints[tt][At.propertyName]=lt[Lt].current.value}else if(At.propertyType===PROPERTY_TYPE.INTEGER){const Rt=it.waypoints[tt][At.propertyName];lt[Lt].current.value=Rt||(At.integerDefault!==void 0?At.integerDefault:At.min>0?At.min:0),it.waypoints[tt][At.propertyName]=lt[Lt].current.value}else if(At.propertyType===PROPERTY_TYPE.FLOAT){const Rt=it.waypoints[tt][At.propertyName];lt[Lt].current.value=Rt||(At.floatDefault!==void 0?At.floatDefault:At.min>0?At.min:0),it.waypoints[tt][At.propertyName]=lt[Lt].current.value}else if(At.propertyType===PROPERTY_TYPE.BOOLEAN){const Rt=it.waypoints[tt][At.propertyName],St=Rt!==void 0?Rt:At.booleanDefault!==void 0?At.booleanDefault:!1;it.waypoints[tt][At.propertyName]=St,lt[Lt].current(Rt)}else if(At.propertyType===PROPERTY_TYPE.ENUM){const{enumDefault:Rt,enumLists:St}=At;if(!St)return;const Tt=it.waypoints[tt][At.propertyName],Bt=[0,St[0].enumList];Tt?(Bt[0]=Tt[0],Bt[1]=Tt[1]):Rt!==void 0&&(Bt[0]=St.map(xt=>xt.enumList).indexOf(Rt),Bt[1]=Rt,Bt[0]===-1&&(Bt[0]=0,Bt[1]=St[0].enumList)),it.waypoints[tt][At.propertyName]=Bt,lt[Lt].current.value=Bt[0].toString()}})},[tt,et]),jsxs$2(Fragment$2,{children:[jsx$2(PanelContainer,{children:et.length>0?jsxs$2(Fragment$2,{children:[jsx$2(Typography$1,{children:"HEADING"}),jsx$2(TextInput,{ref:ut,label:"Orientation",type:PROPERTY_TYPE.FLOAT,onEnter:()=>{if(tt===null)return;let gt=parseFloat(getTaregt(ut).value);gt=isNaN(gt)?0:gt;const yt=new Euler(0,0,MathUtils.degToRad(gt)),{x:Ut,y:Ft,z:mt,w:vt}=new Quaternion().setFromEuler(yt),At=[...et];At[tt].rotation={x:Ut,y:Ft,z:mt,w:vt},ot(At),it.waypoints[tt].pose.rotation={x:Ut,y:Ft,z:mt,w:vt}}}),jsx$2(Typography$1,{marginTop:"20px",children:"POSITION"}),jsx$2(TextInput,{ref:dt,label:"X-axis",type:PROPERTY_TYPE.FLOAT,onEnter:()=>ft("x")}),jsx$2(TextInput,{ref:ht,label:"Y-axis",type:PROPERTY_TYPE.FLOAT,onEnter:()=>ft("y")}),s.length>0&&jsx$2(Typography$1,{marginTop:"20px",children:"PROPERTIES"}),ct(),jsx$2(Button$1,{variant:"contained",onClick:()=>{et.length!==0&&at(!0)},children:"Delete"})]}):jsx$2("p",{className:"description",children:'"Click Shift + Left click on the scene to drop a pin"'})}),st&&jsx$2(Modal,{content:["Delete","waypoint"],buttons:["CANCEL","DELETE"],handler1:()=>at(!1),handler2:()=>{at(!1),pt()}})]})},LoadingBar=({isWaypointPanelVisible:s,sending:o,setSending:et})=>{const tt=React$1.useRef(),[nt,rt]=React$1.useState(!1);return reactExports.useEffect(()=>(o===SENDING_STATUS.SUCCESS?tt.current=window.setTimeout(()=>{rt(!1)},4e3):clearTimeout(tt.current),()=>{tt.current&&clearTimeout(tt.current)}),[o]),reactExports.useEffect(()=>{rt(o!==SENDING_STATUS.NONE)},[o]),reactExports.useEffect(()=>{!s&&rt(s)},[s]),jsx$2(Fragment$2,{children:nt&&jsxs$2(LoadingBarContainer,{sending:o,children:[jsx$2("div",{}),jsx$2("p",{children:o===SENDING_STATUS.WAITING?"Sending waypoints to device":o===SENDING_STATUS.SUCCESS?"SUCCESS":"FAIL"}),o===SENDING_STATUS.FAIL&&jsx$2("span",{onClick:it=>{rt(!1),et(SENDING_STATUS.NONE)},children:jsx$2(CLoseIcon,{})})]})})},devMode=!window.location.href.includes("module"),MissionPlanning=({controlsStates:s,config:o})=>{const{waypoints:et,state:{isWaypointPanelVisible:tt,commandName:nt},updateState:rt,store:it,setWaypoints:ot}=s,[st,at]=reactExports.useState(!1),[lt,ut]=reactExports.useState(SENDING_STATUS.NONE),dt=o.missionPlanning&&o.missionPlanning.length>0?o.missionPlanning[0].waypointProperties||[]:[],ht=o.visualizations.map(gt=>gt.visualizationType).includes("Path"),ct=async()=>{if(!nt)return;const{waypoints:gt}=it;if(ut(SENDING_STATUS.WAITING),rt({isWaypointEditing:!1}),devMode)setTimeout(()=>{const yt=Math.random()>.5;ut(yt?SENDING_STATUS.SUCCESS:SENDING_STATUS.FAIL),rt({isWaypointEditing:!yt,hasPath:yt})},2e3);else{const yt=await Fleet.getCurrentDevice(),Ut=await upload(Authentication.token,{waypoints:gt}),Ft=await(await yt.sendCommand(nt,Ut.toString())).json(),mt=window.setInterval(async()=>{const vt=await(await yt.getCommand(Ft.id)).json();vt.success===!0&&(clearInterval(mt),ut(SENDING_STATUS.SUCCESS),rt({isWaypointEditing:!1})),vt.success===!1&&(clearInterval(mt),ut(SENDING_STATUS.FAIL),rt({isWaypointEditing:!0}))},2e3)}},pt=lt===SENDING_STATUS.WAITING,ft=et.length===0||lt===SENDING_STATUS.WAITING;return jsxs$2(Container,{children:[jsx$2(LoadingBar,{sending:lt,setSending:ut,isWaypointPanelVisible:tt}),jsx$2(ToggleIcon,{controlsStates:s,hasPathLayer:ht}),tt&&jsx$2(Fragment$2,{children:lt!==SENDING_STATUS.SUCCESS?jsxs$2(Fragment$2,{children:[jsx$2(PropertyPanel,{waypointProperties:dt,controlsStates:s}),st&&jsx$2(Modal,{content:["Are you sure you want to cancel","planning"],subContent:"This action will delete all your progress and you will need to start over",buttons:["BACK","CANCEL"],handler1:()=>at(!1),handler2:()=>{at(!1),rt({isWaypointPanelVisible:!1,isWaypointEditing:!1,hasPath:!0}),ot([]),it.waypoints=[]}}),jsxs$2(ControlButtonGroup,{disableBtn1:pt,disableBtn2:ft,children:[jsx$2(Button$1,{variant:"contained",onClick:()=>at(!0),disabled:pt,children:"Cancel"}),jsx$2(Button$1,{variant:"contained",onClick:()=>{et.length!==0&<!==SENDING_STATUS.WAITING&&ct()},disabled:ft,children:"Send Path"})]})]}):jsxs$2(ControlButtonGroup,{large:!0,children:[jsx$2(Button$1,{variant:"contained",onClick:()=>{rt({isWaypointEditing:!0,isWaypointPanelVisible:!0,hasWaypointsPath:!0}),ut(SENDING_STATUS.NONE)},children:"Edit"}),jsx$2(Button$1,{variant:"contained",onClick:()=>{rt({isWaypointPanelVisible:!1,hasPath:!0}),ut(SENDING_STATUS.NONE),ot([]),it.waypoints=[]},children:"Complete Planning"})]})})]})},Controls=styled.div` @@ -5722,7 +5722,7 @@ void main() { void main() { gl_FragColor = vec4(vColor, 1) * texture2D(pointCloudTexture, gl_PointCoord); - }`,PointCloudLayer=s=>{const{dataSource:o,useColors:et}=s,[tt,nt]=reactExports.useContext(UniverseDataContext),rt=reactExports.useContext(LayerContext),{state:{pointSize:it},updateState:ot}=useControlsContext(),[st,at]=reactExports.useState(null),lt=useLoader(TextureLoader,"./point-circle.png"),ut=reactExports.useRef(new ShaderMaterial({blendEquation:MaxEquation,blending:CustomBlending,depthTest:!0,depthWrite:!1,vertexShader,fragmentShader,uniforms:{pointCloudTexture:{value:lt},pointScale:{value:1},radius:{value:1},intensityMin:{value:0},intensityMax:{value:0},formantColors:{value:et?0:1},density:{value:1}},transparent:!0,vertexColors:!0})),dt=reactExports.useRef(new Points(new BufferGeometry,ut.current));reactExports.useEffect(()=>{ut.current&&(ut.current.uniforms.pointScale.value=it)},[it]),reactExports.useEffect(()=>{if(!rt)return;const{deviceId:pt}=rt;ot({hasPointCloud:!0});const ft=dt.current;if(ft.up=new Vector3(0,0,1),ft.frustumCulled=!1,o){const gt=(o.sourceType==="realtime"?nt:tt).subscribeToPointCloud(pt,o,yt=>{typeof yt!="symbol"&&at(yt)});return()=>{gt()}}},[rt,tt,nt,o]);const ht=()=>{const pt=st?.pcd?.positions?.reduce((gt,yt)=>(gt=(gt<<5)-gt+yt,gt|0),0),ft=st?.pcd?.colors?.reduce((gt,yt)=>(gt=(gt<<5)-gt+yt,gt|0),0);return pt+ft},ct=pt=>{if(st&&dt.current.userData.hash!==pt){const{positions:ft,colors:gt}=defined$1(st.pcd),yt={translation:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0,w:1}},Ut=st.worldToLocal?st.worldToLocal:yt,Ft=dt.current,mt=Ft.geometry;if(Ft.userData={hash:pt},ft&&ft.length>0){mt.setAttribute("position",new BufferAttribute(new Float32Array(ft),3)),mt.setAttribute("color",new BufferAttribute(new Float32Array(gt),4));let vt=0,At=0;if(gt!==void 0&>.length>0)for(let Ct=0;Ct50?50:Rt,Tt=4/3*Math.PI*Math.pow(St,3),Bt=Math.pow(Lt/(Tt||1),.3333);Ft.matrixAutoUpdate=!1,Ft.matrix.copy(transformMatrix(Ut));const xt=Ft.material;xt.uniforms.intensityMin.value=vt,xt.uniforms.intensityMax.value=At,xt.uniforms.radius.value=Rt,xt.uniforms.density.value=Bt,xt.needsUpdate=!0}}};if(st){const pt=ht();ct(pt)}return jsx$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:jsx$2("primitive",{object:dt.current})})},context=reactExports.createContext(null),vec1=new Vector3,vec2=new Vector3,calculateOffset=(s,o,et,tt)=>{const nt=o.dot(o),rt=o.dot(s)-o.dot(et),it=o.dot(tt);return it===0?-rt/nt:(vec1.copy(tt).multiplyScalar(nt/it).sub(o),vec2.copy(tt).multiplyScalar(rt/it).add(et).sub(s),-vec1.dot(vec2)/vec1.dot(vec1))},upV=new Vector3(0,1,0),offsetMatrix$1=new Matrix4,AxisArrow=({direction:s,axis:o})=>{const{translation:et,translationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context),gt=useThree(Ot=>Ot.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(0),[vt,At]=reactExports.useState(!1),Lt=reactExports.useCallback(Ot=>{nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`,yt.current.style.display="block"),Ot.stopPropagation();const Wt=new Matrix4().extractRotation(Ut.current.matrixWorld),Dt=Ot.point.clone(),Et=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Pt=s.clone().applyMatrix4(Wt).normalize();Ft.current={clickPoint:Dt,dir:Pt},mt.current=et.current[o],ht({component:"Arrow",axis:o,origin:Et,directions:[Pt]}),gt&&(gt.enabled=!1),Ot.target.setPointerCapture(Ot.pointerId)},[nt,s,gt,ht,et,o]),Rt=reactExports.useCallback(Ot=>{if(Ot.stopPropagation(),vt||At(!0),Ft.current){const{clickPoint:Wt,dir:Dt}=Ft.current,[Et,Pt]=tt?.[o]||[void 0,void 0];let zt=calculateOffset(Wt,Dt,Ot.ray.origin,Ot.ray.direction);Et!==void 0&&(zt=Math.max(zt,Et-mt.current)),Pt!==void 0&&(zt=Math.min(zt,Pt-mt.current)),et.current[o]=mt.current+zt,nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`),offsetMatrix$1.makeTranslation(Dt.x*zt,Dt.y*zt,Dt.z*zt),ct(offsetMatrix$1)}},[nt,ct,vt,et,tt,o]),St=reactExports.useCallback(Ot=>{nt&&(yt.current.style.display="none"),Ot.stopPropagation(),Ft.current=null,pt(),gt&&(gt.enabled=!0),Ot.target.releasePointerCapture(Ot.pointerId)},[nt,gt,pt]),Tt=reactExports.useCallback(Ot=>{Ot.stopPropagation(),At(!1)},[]),{cylinderLength:Bt,coneWidth:xt,coneLength:Ct,matrixL:kt}=reactExports.useMemo(()=>{const Ot=at?st/ot*1.6:ot/20,Wt=at?.2:ot/5,Dt=at?1-Wt:ot-Wt,Et=new Quaternion().setFromUnitVectors(upV,s.clone().normalize()),Pt=new Matrix4().makeRotationFromQuaternion(Et);return{cylinderLength:Dt,coneWidth:Ot,coneLength:Wt,matrixL:Pt}},[s,ot,st,at]),Nt=vt?ut:lt[o];return jsx$2("group",{ref:Ut,children:jsxs$2("group",{matrix:kt,matrixAutoUpdate:!1,onPointerDown:Lt,onPointerMove:Rt,onPointerUp:St,onPointerOut:Tt,children:[nt&&jsx$2(Html,{position:[0,-Ct,0],children:jsx$2("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})}),jsx$2("mesh",{visible:!1,position:[0,(Bt+Ct)/2,0],userData:ft,children:jsx$2("cylinderGeometry",{args:[xt*1.4,xt*1.4,Bt+Ct,8,1]})}),jsx$2(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:[0,0,0,0,Bt,0],lineWidth:st,color:Nt,opacity:dt,polygonOffset:!0,renderOrder:1,polygonOffsetFactor:-10}),jsxs$2("mesh",{raycast:()=>null,position:[0,Bt+Ct/2,0],renderOrder:500,children:[jsx$2("coneGeometry",{args:[.15,Ct,24,1]}),jsx$2("meshBasicMaterial",{transparent:!0,depthTest:it,color:Nt,opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10})]})]})})},decomposeIntoBasis=(s,o,et)=>{const tt=Math.abs(s.x)>=Math.abs(s.y)&&Math.abs(s.x)>=Math.abs(s.z)?0:Math.abs(s.y)>=Math.abs(s.x)&&Math.abs(s.y)>=Math.abs(s.z)?1:2,nt=[0,1,2].sort((ct,pt)=>Math.abs(o.getComponent(pt))-Math.abs(o.getComponent(ct))),rt=tt===nt[0]?nt[1]:nt[0],it=s.getComponent(tt),ot=s.getComponent(rt),st=o.getComponent(tt),at=o.getComponent(rt),lt=et.getComponent(tt),dt=(et.getComponent(rt)-lt*(ot/it))/(at-st*(ot/it));return[(lt-dt*st)/it,dt]},ray$1=new Ray$1,intersection$1=new Vector3,offsetMatrix=new Matrix4,PlaneSlider=({dir1:s,dir2:o,axis:et})=>{const{translation:tt,translationLimits:nt,annotations:rt,annotationsClass:it,depthTest:ot,scale:st,lineWidth:at,fixed:lt,axisColors:ut,hoveredColor:dt,opacity:ht,onDragStart:ct,onDrag:pt,onDragEnd:ft,userData:gt}=reactExports.useContext(context),yt=useThree(Wt=>Wt.controls),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(null),vt=reactExports.useRef(0),At=reactExports.useRef(0),[Lt,Rt]=reactExports.useState(!1),St=reactExports.useCallback(Wt=>{rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`,Ut.current.style.display="block"),Wt.stopPropagation();const Dt=Wt.point.clone(),Et=new Vector3().setFromMatrixPosition(Ft.current.matrixWorld),Pt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,0).normalize(),zt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,1).normalize(),en=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,2).normalize(),Kt=new Plane().setFromNormalAndCoplanarPoint(en,Et);mt.current={clickPoint:Dt,e1:Pt,e2:zt,plane:Kt},vt.current=tt.current[(et+1)%3],At.current=tt.current[(et+2)%3],ct({component:"Slider",axis:et,origin:Et,directions:[Pt,zt,en]}),yt&&(yt.enabled=!1),Wt.target.setPointerCapture(Wt.pointerId)},[rt,yt,ct,et]),Tt=reactExports.useCallback(Wt=>{if(Wt.stopPropagation(),Lt||Rt(!0),mt.current){const{clickPoint:Dt,e1:Et,e2:Pt,plane:zt}=mt.current,[en,Kt]=nt?.[(et+1)%3]||[void 0,void 0],[nn,Zt]=nt?.[(et+2)%3]||[void 0,void 0];ray$1.copy(Wt.ray),ray$1.intersectPlane(zt,intersection$1),ray$1.direction.negate(),ray$1.intersectPlane(zt,intersection$1),intersection$1.sub(Dt);let[jt,Vt]=decomposeIntoBasis(Et,Pt,intersection$1);en!==void 0&&(jt=Math.max(jt,en-vt.current)),Kt!==void 0&&(jt=Math.min(jt,Kt-vt.current)),nn!==void 0&&(Vt=Math.max(Vt,nn-At.current)),Zt!==void 0&&(Vt=Math.min(Vt,Zt-At.current)),tt.current[(et+1)%3]=vt.current+jt,tt.current[(et+2)%3]=At.current+Vt,rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`),offsetMatrix.makeTranslation(jt*Et.x+Vt*Pt.x,jt*Et.y+Vt*Pt.y,jt*Et.z+Vt*Pt.z),pt(offsetMatrix)}},[rt,pt,Lt,tt,nt,et]),Bt=reactExports.useCallback(Wt=>{rt&&(Ut.current.style.display="none"),Wt.stopPropagation(),mt.current=null,ft(),yt&&(yt.enabled=!0),Wt.target.releasePointerCapture(Wt.pointerId)},[rt,yt,ft]),xt=reactExports.useCallback(Wt=>{Wt.stopPropagation(),Rt(!1)},[]),Ct=reactExports.useMemo(()=>{const Wt=s.clone().normalize(),Dt=o.clone().normalize();return new Matrix4().makeBasis(Wt,Dt,Wt.clone().cross(Dt))},[s,o]),kt=lt?1/7:st/7,Nt=lt?.225:st*.225,Ot=Lt?dt:"#BAC4E2";return reactExports.useMemo(()=>[new Vector3(0,0,0),new Vector3(0,Nt,0),new Vector3(Nt,Nt,0),new Vector3(Nt,0,0),new Vector3(0,0,0)],[Nt]),jsxs$2("group",{ref:Ft,matrix:Ct,matrixAutoUpdate:!1,children:[rt&&jsx$2(Html,{position:[0,0,0],children:jsx$2("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:it,ref:Ut})}),jsxs$2("group",{position:[kt*1.7,kt*1.7,0],children:[jsxs$2("mesh",{visible:!0,onPointerDown:St,onPointerMove:Tt,onPointerUp:Bt,onPointerOut:xt,scale:Nt,userData:gt,children:[jsx$2("planeGeometry",{}),jsx$2("meshBasicMaterial",{transparent:!0,depthTest:ot,color:Ot,polygonOffset:!0,polygonOffsetFactor:-10,side:DoubleSide})]}),jsxs$2("mesh",{scale:Nt,children:[jsx$2("boxGeometry",{args:[1,1,.3]}),jsx$2("meshBasicMaterial",{transparent:!0,depthTest:ot,color:Ot,polygonOffset:!0,polygonOffsetFactor:-10,side:DoubleSide})]})]})]})};var NAN=0/0,symbolTag="[object Symbol]",reTrim=/^\s+|\s+$/g,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt,objectProto=Object.prototype,objectToString=objectProto.toString;function baseClamp(s,o,et){return s===s&&(et!==void 0&&(s=s<=et?s:et),o!==void 0&&(s=s>=o?s:o)),s}function isObject(s){var o=typeof s;return!!s&&(o=="object"||o=="function")}function isObjectLike(s){return!!s&&typeof s=="object"}function isSymbol(s){return typeof s=="symbol"||isObjectLike(s)&&objectToString.call(s)==symbolTag}function toNumber(s){if(typeof s=="number")return s;if(isSymbol(s))return NAN;if(isObject(s)){var o=typeof s.valueOf=="function"?s.valueOf():s;s=isObject(o)?o+"":o}if(typeof s!="string")return s===0?s:+s;s=s.replace(reTrim,"");var et=reIsBinary.test(s);return et||reIsOctal.test(s)?freeParseInt(s.slice(2),et?2:8):reIsBadHex.test(s)?NAN:+s}function clamp(s,o,et){return et===void 0&&(et=o,o=void 0),et!==void 0&&(et=toNumber(et),et=et===et?et:0),o!==void 0&&(o=toNumber(o),o=o===o?o:0),baseClamp(toNumber(s),o,et)}var lodash_clamp=clamp;const clamp$1=getDefaultExportFromCjs$1(lodash_clamp),clickDir=new Vector3,intersectionDir=new Vector3,toDegrees=s=>s*180/Math.PI,toRadians=s=>s*Math.PI/180,calculateAngle=(s,o,et,tt,nt)=>{clickDir.copy(s).sub(et),intersectionDir.copy(o).sub(et);const rt=tt.dot(tt),it=nt.dot(nt),ot=clickDir.dot(tt)/rt,st=clickDir.dot(nt)/it,at=intersectionDir.dot(tt)/rt,lt=intersectionDir.dot(nt)/it,ut=Math.atan2(st,ot);return Math.atan2(lt,at)-ut},fmod=(s,o)=>{let et=Math.floor(s/o);return et=et<0?et+1:et,s-et*o},minimizeAngle=s=>{let o=fmod(s,2*Math.PI);return Math.abs(o)<1e-6?0:(o<0&&(o+=2*Math.PI),o)},rotMatrix=new Matrix4,posNew=new Vector3,ray=new Ray$1,intersection=new Vector3,AxisRotator=({dir1:s,dir2:o,axis:et})=>{const{rotationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context),gt=useThree(Nt=>Nt.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(0),mt=reactExports.useRef(0),vt=reactExports.useRef(null),[At,Lt]=reactExports.useState(!1),Rt=reactExports.useCallback(Nt=>{nt&&(yt.current.innerText=`${toDegrees(mt.current).toFixed(0)}º`,yt.current.style.display="block"),Nt.stopPropagation();const Ot=Nt.point.clone(),Wt=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Dt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,0).normalize(),Et=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,1).normalize(),Pt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,2).normalize(),zt=new Plane().setFromNormalAndCoplanarPoint(Pt,Wt);vt.current={clickPoint:Ot,origin:Wt,e1:Dt,e2:Et,normal:Pt,plane:zt},ht({component:"Rotator",axis:et,origin:Wt,directions:[Dt,Et,Pt]}),gt&&(gt.enabled=!1),Nt.target.setPointerCapture(Nt.pointerId)},[nt,gt,ht,et]),St=reactExports.useCallback(Nt=>{if(Nt.stopPropagation(),At||Lt(!0),vt.current){const{clickPoint:Ot,origin:Wt,e1:Dt,e2:Et,normal:Pt,plane:zt}=vt.current,[en,Kt]=tt?.[et]||[void 0,void 0];ray.copy(Nt.ray),ray.intersectPlane(zt,intersection),ray.direction.negate(),ray.intersectPlane(zt,intersection);let nn=calculateAngle(Ot,intersection,Wt,Dt,Et),Zt=toDegrees(nn);Nt.shiftKey&&(Zt=Math.round(Zt/10)*10,nn=toRadians(Zt)),en!==void 0&&Kt!==void 0&&Kt-en<2*Math.PI?(nn=minimizeAngle(nn),nn=nn>Math.PI?nn-2*Math.PI:nn,nn=clamp$1(nn,en-Ft.current,Kt-Ft.current),mt.current=Ft.current+nn):(mt.current=minimizeAngle(Ft.current+nn),mt.current=mt.current>Math.PI?mt.current-2*Math.PI:mt.current),nt&&(Zt=toDegrees(mt.current),yt.current.innerText=`${Zt.toFixed(0)}º`),rotMatrix.makeRotationAxis(Pt,nn),posNew.copy(Wt).applyMatrix4(rotMatrix).sub(Wt).negate(),rotMatrix.setPosition(posNew),ct(rotMatrix)}},[nt,ct,At,tt,et]),Tt=reactExports.useCallback(Nt=>{nt&&(yt.current.style.display="none"),Nt.stopPropagation(),Ft.current=mt.current,vt.current=null,pt(),gt&&(gt.enabled=!0),Nt.target.releasePointerCapture(Nt.pointerId)},[nt,gt,pt]),Bt=reactExports.useCallback(Nt=>{Nt.stopPropagation(),Lt(!1)},[]),xt=reactExports.useMemo(()=>{const Nt=s.clone().normalize(),Ot=o.clone().normalize();return new Matrix4().makeBasis(Nt,Ot,Nt.clone().cross(Ot))},[s,o]),Ct=at?.65:ot*.65,kt=reactExports.useMemo(()=>{const Ot=[];for(let Wt=0;Wt<=32;Wt++){const Dt=Wt*(Math.PI/2)/32;Ot.push(new Vector3(Math.cos(Dt)*Ct,Math.sin(Dt)*Ct,0))}return Ot},[Ct]);return jsxs$2("group",{ref:Ut,onPointerDown:Rt,onPointerMove:St,onPointerUp:Tt,onPointerOut:Bt,matrix:xt,matrixAutoUpdate:!1,children:[nt&&jsx$2(Html,{position:[Ct,Ct,0],children:jsx$2("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})}),jsx$2(Line,{points:kt,lineWidth:st*4,visible:!1,userData:ft}),jsx$2(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:kt,lineWidth:st,color:At?ut:lt[et],opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10})]})},tV0=new Vector3,tV1=new Vector3,tV2=new Vector3,getPoint2=(s,o,et)=>{const tt=et.width/2,nt=et.height/2;o.updateMatrixWorld(!1);const rt=s.project(o);return rt.x=rt.x*tt+tt,rt.y=-(rt.y*nt)+nt,rt},getPoint3=(s,o,et,tt=1)=>{const nt=tV0.set(s.x/et.width*2-1,-(s.y/et.height)*2+1,tt);return nt.unproject(o),nt},calculateScaleFactor=(s,o,et,tt)=>{const nt=getPoint2(tV2.copy(s),et,tt);let rt=0;for(let it=0;it<2;++it){const ot=tV1.copy(nt).setComponent(it,nt.getComponent(it)+o),st=getPoint3(ot,et,tt,ot.z);rt=Math.max(rt,s.distanceTo(st))}return rt},mL0=new Matrix4,mW0=new Matrix4,mP=new Matrix4,mPInv=new Matrix4,mW=new Matrix4,mL=new Matrix4,mL0Inv=new Matrix4,mdL=new Matrix4,bb=new Box3,bbObj=new Box3,vCenter=new Vector3,vSize=new Vector3,vAnchorOffset=new Vector3,vPosition=new Vector3,xDir=new Vector3(1,0,0),yDir=new Vector3(0,1,0),zDir=new Vector3(0,0,1),PivotControls=reactExports.forwardRef(({matrix:s,onDragStart:o,onDrag:et,onDragEnd:tt,autoTransform:nt=!0,anchor:rt,disableAxes:it=!1,disableSliders:ot=!1,disableRotations:st=!1,activeAxes:at=[!0,!0,!0],offset:lt=[0,0,0],rotation:ut=[0,0,0],scale:dt=1,lineWidth:ht=4,fixed:ct=!1,translationLimits:pt,rotationLimits:ft,depthTest:gt=!0,axisColors:yt=["#ff2060","#20df80","#2080ff"],hoveredColor:Ut="#ffff40",annotations:Ft=!1,annotationsClass:mt,opacity:vt=1,visible:At=!0,userData:Lt,children:Rt,...St},Tt)=>{const Bt=useThree(Et=>Et.invalidate),xt=reactExports.useRef(null),Ct=reactExports.useRef(null),kt=reactExports.useRef(null),Nt=reactExports.useRef(null),Ot=reactExports.useRef([0,0,0]);reactExports.useLayoutEffect(()=>{rt&&(Nt.current.updateWorldMatrix(!0,!0),mPInv.copy(Nt.current.matrixWorld).invert(),bb.makeEmpty(),Nt.current.traverse(Et=>{Et.geometry&&(Et.geometry.boundingBox||Et.geometry.computeBoundingBox(),mL.copy(Et.matrixWorld).premultiply(mPInv),bbObj.copy(Et.geometry.boundingBox),bbObj.applyMatrix4(mL),bb.union(bbObj))}),vCenter.copy(bb.max).add(bb.min).multiplyScalar(.5),vSize.copy(bb.max).sub(bb.min).multiplyScalar(.5),vAnchorOffset.copy(vSize).multiply(new Vector3(...rt)).add(vCenter),vPosition.set(...lt).add(vAnchorOffset),kt.current.position.copy(vPosition),Bt())});const Wt=reactExports.useMemo(()=>({onDragStart:Et=>{mL0.copy(Ct.current.matrix),mW0.copy(Ct.current.matrixWorld),o&&o(Et),Bt()},onDrag:Et=>{mP.copy(xt.current.matrixWorld),mPInv.copy(mP).invert(),mW.copy(mW0).premultiply(Et),mL.copy(mW).premultiply(mPInv),mL0Inv.copy(mL0).invert(),mdL.copy(mL).multiply(mL0Inv),nt&&Ct.current.matrix.copy(mL),et&&et(mL,mdL,mW,Et),Bt()},onDragEnd:()=>{tt&&tt(),Bt()},translation:Ot,translationLimits:pt,rotationLimits:ft,axisColors:yt,hoveredColor:Ut,opacity:vt,scale:dt,lineWidth:ht,fixed:ct,depthTest:gt,userData:Lt,annotations:Ft,annotationsClass:mt}),[o,et,tt,Ot,pt,ft,gt,dt,ht,ct,...yt,Ut,vt,Lt,nt,Ft,mt]),Dt=new Vector3;return useFrame(Et=>{if(ct){const Pt=calculateScaleFactor(kt.current.getWorldPosition(Dt),dt,Et.camera,Et.size);kt.current&&(kt.current?.scale.x!==Pt||kt.current?.scale.y!==Pt||kt.current?.scale.z!==Pt)&&(kt.current.scale.setScalar(Pt),Et.invalidate())}}),reactExports.useImperativeHandle(Tt,()=>Ct.current,[]),reactExports.useLayoutEffect(()=>{s&&s instanceof Matrix4&&(Ct.current.matrix=s)},[s]),jsx$2(context.Provider,{value:Wt,children:jsx$2("group",{ref:xt,children:jsxs$2("group",{ref:Ct,matrix:s,matrixAutoUpdate:!1,...St,children:[jsxs$2("group",{visible:At,ref:kt,position:lt,rotation:ut,children:[!it&&at[0]&&jsx$2(AxisArrow,{axis:0,direction:xDir}),!it&&at[1]&&jsx$2(AxisArrow,{axis:1,direction:yDir}),!it&&at[2]&&jsx$2(AxisArrow,{axis:2,direction:zDir}),!ot&&at[0]&&at[1]&&jsx$2(PlaneSlider,{axis:2,dir1:xDir,dir2:yDir}),!ot&&at[0]&&at[2]&&jsx$2(PlaneSlider,{axis:1,dir1:zDir,dir2:xDir}),!ot&&at[2]&&at[1]&&jsx$2(PlaneSlider,{axis:0,dir1:yDir,dir2:zDir}),!st&&at[0]&&at[1]&&jsx$2(AxisRotator,{axis:2,dir1:xDir,dir2:yDir}),!st&&at[0]&&at[2]&&jsx$2(AxisRotator,{axis:1,dir1:zDir,dir2:xDir}),!st&&at[2]&&at[1]&&jsx$2(AxisRotator,{axis:0,dir1:yDir,dir2:zDir})]}),jsx$2("group",{ref:Nt,children:Rt})]})})})});class CircleMaterial extends ShaderMaterial{constructor(o,et){super(),this.uniforms={color1:{value:new Color$2(o)},color2:{value:new Color$2(et)}},this.vertexShader=` + }`,PointCloudLayer=s=>{const{dataSource:o,useColors:et}=s,[tt,nt]=reactExports.useContext(UniverseDataContext),rt=reactExports.useContext(LayerContext),{state:{pointSize:it},updateState:ot}=useControlsContext(),[st,at]=reactExports.useState(null),lt=useLoader(TextureLoader,"./point-circle.png"),ut=reactExports.useRef(new ShaderMaterial({blendEquation:MaxEquation,blending:CustomBlending,depthTest:!0,depthWrite:!1,vertexShader,fragmentShader,uniforms:{pointCloudTexture:{value:lt},pointScale:{value:1},radius:{value:1},intensityMin:{value:0},intensityMax:{value:0},formantColors:{value:et?0:1},density:{value:1}},transparent:!0,vertexColors:!0})),dt=reactExports.useRef(new Points(new BufferGeometry,ut.current));reactExports.useEffect(()=>{ut.current&&(ut.current.uniforms.pointScale.value=it)},[it]),reactExports.useEffect(()=>{if(!rt)return;const{deviceId:pt}=rt;ot({hasPointCloud:!0});const ft=dt.current;if(ft.up=new Vector3(0,0,1),ft.frustumCulled=!1,o){const gt=(o.sourceType==="realtime"?nt:tt).subscribeToPointCloud(pt,o,yt=>{typeof yt!="symbol"&&at(yt)});return()=>{gt()}}},[rt,tt,nt,o]);const ht=()=>{const pt=st?.pcd?.positions?.reduce((gt,yt)=>(gt=(gt<<5)-gt+yt,gt|0),0),ft=st?.pcd?.colors?.reduce((gt,yt)=>(gt=(gt<<5)-gt+yt,gt|0),0);return pt+ft},ct=pt=>{if(st&&dt.current.userData.hash!==pt){const{positions:ft,colors:gt}=defined$1(st.pcd),yt={translation:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0,w:1}},Ut=st.worldToLocal?st.worldToLocal:yt,Ft=dt.current,mt=Ft.geometry;if(Ft.userData={hash:pt},ft&&ft.length>0){mt.setAttribute("position",new BufferAttribute(new Float32Array(ft),3)),mt.setAttribute("color",new BufferAttribute(new Float32Array(gt),4));let vt=0,At=0;if(gt!==void 0&>.length>0)for(let Ct=0;Ct50?50:Rt,Tt=4/3*Math.PI*Math.pow(St,3),Bt=Math.pow(Lt/(Tt||1),.3333);Ft.matrixAutoUpdate=!1,Ft.matrix.copy(transformMatrix(Ut));const xt=Ft.material;xt.uniforms.intensityMin.value=vt,xt.uniforms.intensityMax.value=At,xt.uniforms.radius.value=Rt,xt.uniforms.density.value=Bt,xt.needsUpdate=!0}}};if(st){const pt=ht();ct(pt)}return jsx$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:jsx$2("primitive",{object:dt.current})})},context=reactExports.createContext(null),vec1=new Vector3,vec2=new Vector3,calculateOffset=(s,o,et,tt)=>{const nt=o.dot(o),rt=o.dot(s)-o.dot(et),it=o.dot(tt);return it===0?-rt/nt:(vec1.copy(tt).multiplyScalar(nt/it).sub(o),vec2.copy(tt).multiplyScalar(rt/it).add(et).sub(s),-vec1.dot(vec2)/vec1.dot(vec1))},upV=new Vector3(0,1,0),offsetMatrix$1=new Matrix4,AxisArrow=({direction:s,axis:o})=>{const{translation:et,translationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context),gt=useThree(Ot=>Ot.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(0),[vt,At]=reactExports.useState(!1),Lt=reactExports.useCallback(Ot=>{nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`,yt.current.style.display="block"),Ot.stopPropagation();const Jt=new Matrix4().extractRotation(Ut.current.matrixWorld),Dt=Ot.point.clone(),Et=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Pt=s.clone().applyMatrix4(Jt).normalize();Ft.current={clickPoint:Dt,dir:Pt},mt.current=et.current[o],ht({component:"Arrow",axis:o,origin:Et,directions:[Pt]}),gt&&(gt.enabled=!1),Ot.target.setPointerCapture(Ot.pointerId)},[nt,s,gt,ht,et,o]),Rt=reactExports.useCallback(Ot=>{if(Ot.stopPropagation(),vt||At(!0),Ft.current){const{clickPoint:Jt,dir:Dt}=Ft.current,[Et,Pt]=tt?.[o]||[void 0,void 0];let zt=calculateOffset(Jt,Dt,Ot.ray.origin,Ot.ray.direction);Et!==void 0&&(zt=Math.max(zt,Et-mt.current)),Pt!==void 0&&(zt=Math.min(zt,Pt-mt.current)),et.current[o]=mt.current+zt,nt&&(yt.current.innerText=`${et.current[o].toFixed(2)}`),offsetMatrix$1.makeTranslation(Dt.x*zt,Dt.y*zt,Dt.z*zt),ct(offsetMatrix$1)}},[nt,ct,vt,et,tt,o]),St=reactExports.useCallback(Ot=>{nt&&(yt.current.style.display="none"),Ot.stopPropagation(),Ft.current=null,pt(),gt&&(gt.enabled=!0),Ot.target.releasePointerCapture(Ot.pointerId)},[nt,gt,pt]),Tt=reactExports.useCallback(Ot=>{Ot.stopPropagation(),At(!1)},[]),{cylinderLength:Bt,coneWidth:xt,coneLength:Ct,matrixL:kt}=reactExports.useMemo(()=>{const Ot=at?st/ot*1.6:ot/20,Jt=at?.2:ot/5,Dt=at?1-Jt:ot-Jt,Et=new Quaternion().setFromUnitVectors(upV,s.clone().normalize()),Pt=new Matrix4().makeRotationFromQuaternion(Et);return{cylinderLength:Dt,coneWidth:Ot,coneLength:Jt,matrixL:Pt}},[s,ot,st,at]),Nt=vt?ut:lt[o];return jsx$2("group",{ref:Ut,children:jsxs$2("group",{matrix:kt,matrixAutoUpdate:!1,onPointerDown:Lt,onPointerMove:Rt,onPointerUp:St,onPointerOut:Tt,children:[nt&&jsx$2(Html,{position:[0,-Ct,0],children:jsx$2("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})}),jsx$2("mesh",{visible:!1,position:[0,(Bt+Ct)/2,0],userData:ft,children:jsx$2("cylinderGeometry",{args:[xt*1.4,xt*1.4,Bt+Ct,8,1]})}),jsx$2(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:[0,0,0,0,Bt,0],lineWidth:st,color:Nt,opacity:dt,polygonOffset:!0,renderOrder:1,polygonOffsetFactor:-10}),jsxs$2("mesh",{raycast:()=>null,position:[0,Bt+Ct/2,0],renderOrder:500,children:[jsx$2("coneGeometry",{args:[.15,Ct,24,1]}),jsx$2("meshBasicMaterial",{transparent:!0,depthTest:it,color:Nt,opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10})]})]})})},decomposeIntoBasis=(s,o,et)=>{const tt=Math.abs(s.x)>=Math.abs(s.y)&&Math.abs(s.x)>=Math.abs(s.z)?0:Math.abs(s.y)>=Math.abs(s.x)&&Math.abs(s.y)>=Math.abs(s.z)?1:2,nt=[0,1,2].sort((ct,pt)=>Math.abs(o.getComponent(pt))-Math.abs(o.getComponent(ct))),rt=tt===nt[0]?nt[1]:nt[0],it=s.getComponent(tt),ot=s.getComponent(rt),st=o.getComponent(tt),at=o.getComponent(rt),lt=et.getComponent(tt),dt=(et.getComponent(rt)-lt*(ot/it))/(at-st*(ot/it));return[(lt-dt*st)/it,dt]},ray$1=new Ray$1,intersection$1=new Vector3,offsetMatrix=new Matrix4,PlaneSlider=({dir1:s,dir2:o,axis:et})=>{const{translation:tt,translationLimits:nt,annotations:rt,annotationsClass:it,depthTest:ot,scale:st,lineWidth:at,fixed:lt,axisColors:ut,hoveredColor:dt,opacity:ht,onDragStart:ct,onDrag:pt,onDragEnd:ft,userData:gt}=reactExports.useContext(context),yt=useThree(Jt=>Jt.controls),Ut=reactExports.useRef(null),Ft=reactExports.useRef(null),mt=reactExports.useRef(null),vt=reactExports.useRef(0),At=reactExports.useRef(0),[Lt,Rt]=reactExports.useState(!1),St=reactExports.useCallback(Jt=>{rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`,Ut.current.style.display="block"),Jt.stopPropagation();const Dt=Jt.point.clone(),Et=new Vector3().setFromMatrixPosition(Ft.current.matrixWorld),Pt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,0).normalize(),zt=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,1).normalize(),en=new Vector3().setFromMatrixColumn(Ft.current.matrixWorld,2).normalize(),Kt=new Plane().setFromNormalAndCoplanarPoint(en,Et);mt.current={clickPoint:Dt,e1:Pt,e2:zt,plane:Kt},vt.current=tt.current[(et+1)%3],At.current=tt.current[(et+2)%3],ct({component:"Slider",axis:et,origin:Et,directions:[Pt,zt,en]}),yt&&(yt.enabled=!1),Jt.target.setPointerCapture(Jt.pointerId)},[rt,yt,ct,et]),Tt=reactExports.useCallback(Jt=>{if(Jt.stopPropagation(),Lt||Rt(!0),mt.current){const{clickPoint:Dt,e1:Et,e2:Pt,plane:zt}=mt.current,[en,Kt]=nt?.[(et+1)%3]||[void 0,void 0],[nn,Zt]=nt?.[(et+2)%3]||[void 0,void 0];ray$1.copy(Jt.ray),ray$1.intersectPlane(zt,intersection$1),ray$1.direction.negate(),ray$1.intersectPlane(zt,intersection$1),intersection$1.sub(Dt);let[jt,Vt]=decomposeIntoBasis(Et,Pt,intersection$1);en!==void 0&&(jt=Math.max(jt,en-vt.current)),Kt!==void 0&&(jt=Math.min(jt,Kt-vt.current)),nn!==void 0&&(Vt=Math.max(Vt,nn-At.current)),Zt!==void 0&&(Vt=Math.min(Vt,Zt-At.current)),tt.current[(et+1)%3]=vt.current+jt,tt.current[(et+2)%3]=At.current+Vt,rt&&(Ut.current.innerText=`${tt.current[(et+1)%3].toFixed(2)}, ${tt.current[(et+2)%3].toFixed(2)}`),offsetMatrix.makeTranslation(jt*Et.x+Vt*Pt.x,jt*Et.y+Vt*Pt.y,jt*Et.z+Vt*Pt.z),pt(offsetMatrix)}},[rt,pt,Lt,tt,nt,et]),Bt=reactExports.useCallback(Jt=>{rt&&(Ut.current.style.display="none"),Jt.stopPropagation(),mt.current=null,ft(),yt&&(yt.enabled=!0),Jt.target.releasePointerCapture(Jt.pointerId)},[rt,yt,ft]),xt=reactExports.useCallback(Jt=>{Jt.stopPropagation(),Rt(!1)},[]),Ct=reactExports.useMemo(()=>{const Jt=s.clone().normalize(),Dt=o.clone().normalize();return new Matrix4().makeBasis(Jt,Dt,Jt.clone().cross(Dt))},[s,o]),kt=lt?1/7:st/7,Nt=lt?.225:st*.225,Ot=Lt?dt:"#BAC4E2";return reactExports.useMemo(()=>[new Vector3(0,0,0),new Vector3(0,Nt,0),new Vector3(Nt,Nt,0),new Vector3(Nt,0,0),new Vector3(0,0,0)],[Nt]),jsxs$2("group",{ref:Ft,matrix:Ct,matrixAutoUpdate:!1,children:[rt&&jsx$2(Html,{position:[0,0,0],children:jsx$2("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:it,ref:Ut})}),jsxs$2("group",{position:[kt*1.7,kt*1.7,0],children:[jsxs$2("mesh",{visible:!0,onPointerDown:St,onPointerMove:Tt,onPointerUp:Bt,onPointerOut:xt,scale:Nt,userData:gt,children:[jsx$2("planeGeometry",{}),jsx$2("meshBasicMaterial",{transparent:!0,depthTest:ot,color:Ot,polygonOffset:!0,polygonOffsetFactor:-10,side:DoubleSide})]}),jsxs$2("mesh",{scale:Nt,children:[jsx$2("boxGeometry",{args:[1,1,.3]}),jsx$2("meshBasicMaterial",{transparent:!0,depthTest:ot,color:Ot,polygonOffset:!0,polygonOffsetFactor:-10,side:DoubleSide})]})]})]})};var NAN=0/0,symbolTag="[object Symbol]",reTrim=/^\s+|\s+$/g,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt,objectProto=Object.prototype,objectToString=objectProto.toString;function baseClamp(s,o,et){return s===s&&(et!==void 0&&(s=s<=et?s:et),o!==void 0&&(s=s>=o?s:o)),s}function isObject(s){var o=typeof s;return!!s&&(o=="object"||o=="function")}function isObjectLike(s){return!!s&&typeof s=="object"}function isSymbol(s){return typeof s=="symbol"||isObjectLike(s)&&objectToString.call(s)==symbolTag}function toNumber(s){if(typeof s=="number")return s;if(isSymbol(s))return NAN;if(isObject(s)){var o=typeof s.valueOf=="function"?s.valueOf():s;s=isObject(o)?o+"":o}if(typeof s!="string")return s===0?s:+s;s=s.replace(reTrim,"");var et=reIsBinary.test(s);return et||reIsOctal.test(s)?freeParseInt(s.slice(2),et?2:8):reIsBadHex.test(s)?NAN:+s}function clamp(s,o,et){return et===void 0&&(et=o,o=void 0),et!==void 0&&(et=toNumber(et),et=et===et?et:0),o!==void 0&&(o=toNumber(o),o=o===o?o:0),baseClamp(toNumber(s),o,et)}var lodash_clamp=clamp;const clamp$1=getDefaultExportFromCjs$1(lodash_clamp),clickDir=new Vector3,intersectionDir=new Vector3,toDegrees=s=>s*180/Math.PI,toRadians=s=>s*Math.PI/180,calculateAngle=(s,o,et,tt,nt)=>{clickDir.copy(s).sub(et),intersectionDir.copy(o).sub(et);const rt=tt.dot(tt),it=nt.dot(nt),ot=clickDir.dot(tt)/rt,st=clickDir.dot(nt)/it,at=intersectionDir.dot(tt)/rt,lt=intersectionDir.dot(nt)/it,ut=Math.atan2(st,ot);return Math.atan2(lt,at)-ut},fmod=(s,o)=>{let et=Math.floor(s/o);return et=et<0?et+1:et,s-et*o},minimizeAngle=s=>{let o=fmod(s,2*Math.PI);return Math.abs(o)<1e-6?0:(o<0&&(o+=2*Math.PI),o)},rotMatrix=new Matrix4,posNew=new Vector3,ray=new Ray$1,intersection=new Vector3,AxisRotator=({dir1:s,dir2:o,axis:et})=>{const{rotationLimits:tt,annotations:nt,annotationsClass:rt,depthTest:it,scale:ot,lineWidth:st,fixed:at,axisColors:lt,hoveredColor:ut,opacity:dt,onDragStart:ht,onDrag:ct,onDragEnd:pt,userData:ft}=reactExports.useContext(context),gt=useThree(Nt=>Nt.controls),yt=reactExports.useRef(null),Ut=reactExports.useRef(null),Ft=reactExports.useRef(0),mt=reactExports.useRef(0),vt=reactExports.useRef(null),[At,Lt]=reactExports.useState(!1),Rt=reactExports.useCallback(Nt=>{nt&&(yt.current.innerText=`${toDegrees(mt.current).toFixed(0)}º`,yt.current.style.display="block"),Nt.stopPropagation();const Ot=Nt.point.clone(),Jt=new Vector3().setFromMatrixPosition(Ut.current.matrixWorld),Dt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,0).normalize(),Et=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,1).normalize(),Pt=new Vector3().setFromMatrixColumn(Ut.current.matrixWorld,2).normalize(),zt=new Plane().setFromNormalAndCoplanarPoint(Pt,Jt);vt.current={clickPoint:Ot,origin:Jt,e1:Dt,e2:Et,normal:Pt,plane:zt},ht({component:"Rotator",axis:et,origin:Jt,directions:[Dt,Et,Pt]}),gt&&(gt.enabled=!1),Nt.target.setPointerCapture(Nt.pointerId)},[nt,gt,ht,et]),St=reactExports.useCallback(Nt=>{if(Nt.stopPropagation(),At||Lt(!0),vt.current){const{clickPoint:Ot,origin:Jt,e1:Dt,e2:Et,normal:Pt,plane:zt}=vt.current,[en,Kt]=tt?.[et]||[void 0,void 0];ray.copy(Nt.ray),ray.intersectPlane(zt,intersection),ray.direction.negate(),ray.intersectPlane(zt,intersection);let nn=calculateAngle(Ot,intersection,Jt,Dt,Et),Zt=toDegrees(nn);Nt.shiftKey&&(Zt=Math.round(Zt/10)*10,nn=toRadians(Zt)),en!==void 0&&Kt!==void 0&&Kt-en<2*Math.PI?(nn=minimizeAngle(nn),nn=nn>Math.PI?nn-2*Math.PI:nn,nn=clamp$1(nn,en-Ft.current,Kt-Ft.current),mt.current=Ft.current+nn):(mt.current=minimizeAngle(Ft.current+nn),mt.current=mt.current>Math.PI?mt.current-2*Math.PI:mt.current),nt&&(Zt=toDegrees(mt.current),yt.current.innerText=`${Zt.toFixed(0)}º`),rotMatrix.makeRotationAxis(Pt,nn),posNew.copy(Jt).applyMatrix4(rotMatrix).sub(Jt).negate(),rotMatrix.setPosition(posNew),ct(rotMatrix)}},[nt,ct,At,tt,et]),Tt=reactExports.useCallback(Nt=>{nt&&(yt.current.style.display="none"),Nt.stopPropagation(),Ft.current=mt.current,vt.current=null,pt(),gt&&(gt.enabled=!0),Nt.target.releasePointerCapture(Nt.pointerId)},[nt,gt,pt]),Bt=reactExports.useCallback(Nt=>{Nt.stopPropagation(),Lt(!1)},[]),xt=reactExports.useMemo(()=>{const Nt=s.clone().normalize(),Ot=o.clone().normalize();return new Matrix4().makeBasis(Nt,Ot,Nt.clone().cross(Ot))},[s,o]),Ct=at?.65:ot*.65,kt=reactExports.useMemo(()=>{const Ot=[];for(let Jt=0;Jt<=32;Jt++){const Dt=Jt*(Math.PI/2)/32;Ot.push(new Vector3(Math.cos(Dt)*Ct,Math.sin(Dt)*Ct,0))}return Ot},[Ct]);return jsxs$2("group",{ref:Ut,onPointerDown:Rt,onPointerMove:St,onPointerUp:Tt,onPointerOut:Bt,matrix:xt,matrixAutoUpdate:!1,children:[nt&&jsx$2(Html,{position:[Ct,Ct,0],children:jsx$2("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:rt,ref:yt})}),jsx$2(Line,{points:kt,lineWidth:st*4,visible:!1,userData:ft}),jsx$2(Line,{transparent:!0,raycast:()=>null,depthTest:it,points:kt,lineWidth:st,color:At?ut:lt[et],opacity:dt,polygonOffset:!0,polygonOffsetFactor:-10})]})},tV0=new Vector3,tV1=new Vector3,tV2=new Vector3,getPoint2=(s,o,et)=>{const tt=et.width/2,nt=et.height/2;o.updateMatrixWorld(!1);const rt=s.project(o);return rt.x=rt.x*tt+tt,rt.y=-(rt.y*nt)+nt,rt},getPoint3=(s,o,et,tt=1)=>{const nt=tV0.set(s.x/et.width*2-1,-(s.y/et.height)*2+1,tt);return nt.unproject(o),nt},calculateScaleFactor=(s,o,et,tt)=>{const nt=getPoint2(tV2.copy(s),et,tt);let rt=0;for(let it=0;it<2;++it){const ot=tV1.copy(nt).setComponent(it,nt.getComponent(it)+o),st=getPoint3(ot,et,tt,ot.z);rt=Math.max(rt,s.distanceTo(st))}return rt},mL0=new Matrix4,mW0=new Matrix4,mP=new Matrix4,mPInv=new Matrix4,mW=new Matrix4,mL=new Matrix4,mL0Inv=new Matrix4,mdL=new Matrix4,bb=new Box3,bbObj=new Box3,vCenter=new Vector3,vSize=new Vector3,vAnchorOffset=new Vector3,vPosition=new Vector3,xDir=new Vector3(1,0,0),yDir=new Vector3(0,1,0),zDir=new Vector3(0,0,1),PivotControls=reactExports.forwardRef(({matrix:s,onDragStart:o,onDrag:et,onDragEnd:tt,autoTransform:nt=!0,anchor:rt,disableAxes:it=!1,disableSliders:ot=!1,disableRotations:st=!1,activeAxes:at=[!0,!0,!0],offset:lt=[0,0,0],rotation:ut=[0,0,0],scale:dt=1,lineWidth:ht=4,fixed:ct=!1,translationLimits:pt,rotationLimits:ft,depthTest:gt=!0,axisColors:yt=["#ff2060","#20df80","#2080ff"],hoveredColor:Ut="#ffff40",annotations:Ft=!1,annotationsClass:mt,opacity:vt=1,visible:At=!0,userData:Lt,children:Rt,...St},Tt)=>{const Bt=useThree(Et=>Et.invalidate),xt=reactExports.useRef(null),Ct=reactExports.useRef(null),kt=reactExports.useRef(null),Nt=reactExports.useRef(null),Ot=reactExports.useRef([0,0,0]);reactExports.useLayoutEffect(()=>{rt&&(Nt.current.updateWorldMatrix(!0,!0),mPInv.copy(Nt.current.matrixWorld).invert(),bb.makeEmpty(),Nt.current.traverse(Et=>{Et.geometry&&(Et.geometry.boundingBox||Et.geometry.computeBoundingBox(),mL.copy(Et.matrixWorld).premultiply(mPInv),bbObj.copy(Et.geometry.boundingBox),bbObj.applyMatrix4(mL),bb.union(bbObj))}),vCenter.copy(bb.max).add(bb.min).multiplyScalar(.5),vSize.copy(bb.max).sub(bb.min).multiplyScalar(.5),vAnchorOffset.copy(vSize).multiply(new Vector3(...rt)).add(vCenter),vPosition.set(...lt).add(vAnchorOffset),kt.current.position.copy(vPosition),Bt())});const Jt=reactExports.useMemo(()=>({onDragStart:Et=>{mL0.copy(Ct.current.matrix),mW0.copy(Ct.current.matrixWorld),o&&o(Et),Bt()},onDrag:Et=>{mP.copy(xt.current.matrixWorld),mPInv.copy(mP).invert(),mW.copy(mW0).premultiply(Et),mL.copy(mW).premultiply(mPInv),mL0Inv.copy(mL0).invert(),mdL.copy(mL).multiply(mL0Inv),nt&&Ct.current.matrix.copy(mL),et&&et(mL,mdL,mW,Et),Bt()},onDragEnd:()=>{tt&&tt(),Bt()},translation:Ot,translationLimits:pt,rotationLimits:ft,axisColors:yt,hoveredColor:Ut,opacity:vt,scale:dt,lineWidth:ht,fixed:ct,depthTest:gt,userData:Lt,annotations:Ft,annotationsClass:mt}),[o,et,tt,Ot,pt,ft,gt,dt,ht,ct,...yt,Ut,vt,Lt,nt,Ft,mt]),Dt=new Vector3;return useFrame(Et=>{if(ct){const Pt=calculateScaleFactor(kt.current.getWorldPosition(Dt),dt,Et.camera,Et.size);kt.current&&(kt.current?.scale.x!==Pt||kt.current?.scale.y!==Pt||kt.current?.scale.z!==Pt)&&(kt.current.scale.setScalar(Pt),Et.invalidate())}}),reactExports.useImperativeHandle(Tt,()=>Ct.current,[]),reactExports.useLayoutEffect(()=>{s&&s instanceof Matrix4&&(Ct.current.matrix=s)},[s]),jsx$2(context.Provider,{value:Jt,children:jsx$2("group",{ref:xt,children:jsxs$2("group",{ref:Ct,matrix:s,matrixAutoUpdate:!1,...St,children:[jsxs$2("group",{visible:At,ref:kt,position:lt,rotation:ut,children:[!it&&at[0]&&jsx$2(AxisArrow,{axis:0,direction:xDir}),!it&&at[1]&&jsx$2(AxisArrow,{axis:1,direction:yDir}),!it&&at[2]&&jsx$2(AxisArrow,{axis:2,direction:zDir}),!ot&&at[0]&&at[1]&&jsx$2(PlaneSlider,{axis:2,dir1:xDir,dir2:yDir}),!ot&&at[0]&&at[2]&&jsx$2(PlaneSlider,{axis:1,dir1:zDir,dir2:xDir}),!ot&&at[2]&&at[1]&&jsx$2(PlaneSlider,{axis:0,dir1:yDir,dir2:zDir}),!st&&at[0]&&at[1]&&jsx$2(AxisRotator,{axis:2,dir1:xDir,dir2:yDir}),!st&&at[0]&&at[2]&&jsx$2(AxisRotator,{axis:1,dir1:zDir,dir2:xDir}),!st&&at[2]&&at[1]&&jsx$2(AxisRotator,{axis:0,dir1:yDir,dir2:zDir})]}),jsx$2("group",{ref:Nt,children:Rt})]})})})});class CircleMaterial extends ShaderMaterial{constructor(o,et){super(),this.uniforms={color1:{value:new Color$2(o)},color2:{value:new Color$2(et)}},this.vertexShader=` varying vec3 vNormal; varying vec2 vUv; varying vec3 vPosition; @@ -5762,8 +5762,8 @@ Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/js JSZip uses the library pako released under the MIT license : https://github.com/nodeca/pako/blob/main/LICENSE -*/(function(s,o){(function(et){s.exports=et()})(function(){return function et(tt,nt,rt){function it(at,lt){if(!nt[at]){if(!tt[at]){var ut=typeof commonjsRequire=="function"&&commonjsRequire;if(!lt&&ut)return ut(at,!0);if(ot)return ot(at,!0);var dt=new Error("Cannot find module '"+at+"'");throw dt.code="MODULE_NOT_FOUND",dt}var ht=nt[at]={exports:{}};tt[at][0].call(ht.exports,function(ct){var pt=tt[at][1][ct];return it(pt||ct)},ht,ht.exports,et,tt,nt,rt)}return nt[at].exports}for(var ot=typeof commonjsRequire=="function"&&commonjsRequire,st=0;st>2,ht=(3&at)<<4|lt>>4,ct=1>6:64,pt=2>4,lt=(15&dt)<<4|(ht=ot.indexOf(st.charAt(pt++)))>>2,ut=(3&ht)<<6|(ct=ot.indexOf(st.charAt(pt++))),yt[ft++]=at,ht!==64&&(yt[ft++]=lt),ct!==64&&(yt[ft++]=ut);return yt}},{"./support":30,"./utils":32}],2:[function(et,tt,nt){var rt=et("./external"),it=et("./stream/DataWorker"),ot=et("./stream/Crc32Probe"),st=et("./stream/DataLengthProbe");function at(lt,ut,dt,ht,ct){this.compressedSize=lt,this.uncompressedSize=ut,this.crc32=dt,this.compression=ht,this.compressedContent=ct}at.prototype={getContentWorker:function(){var lt=new it(rt.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new st("data_length")),ut=this;return lt.on("end",function(){if(this.streamInfo.data_length!==ut.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),lt},getCompressedWorker:function(){return new it(rt.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},at.createWorkerFrom=function(lt,ut,dt){return lt.pipe(new ot).pipe(new st("uncompressedSize")).pipe(ut.compressWorker(dt)).pipe(new st("compressedSize")).withStreamInfo("compression",ut)},tt.exports=at},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(et,tt,nt){var rt=et("./stream/GenericWorker");nt.STORE={magic:"\0\0",compressWorker:function(){return new rt("STORE compression")},uncompressWorker:function(){return new rt("STORE decompression")}},nt.DEFLATE=et("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(et,tt,nt){var rt=et("./utils"),it=function(){for(var ot,st=[],at=0;at<256;at++){ot=at;for(var lt=0;lt<8;lt++)ot=1&ot?3988292384^ot>>>1:ot>>>1;st[at]=ot}return st}();tt.exports=function(ot,st){return ot!==void 0&&ot.length?rt.getTypeOf(ot)!=="string"?function(at,lt,ut,dt){var ht=it,ct=dt+ut;at^=-1;for(var pt=dt;pt>>8^ht[255&(at^lt[pt])];return-1^at}(0|st,ot,ot.length,0):function(at,lt,ut,dt){var ht=it,ct=dt+ut;at^=-1;for(var pt=dt;pt>>8^ht[255&(at^lt.charCodeAt(pt))];return-1^at}(0|st,ot,ot.length,0):0}},{"./utils":32}],5:[function(et,tt,nt){nt.base64=!1,nt.binary=!1,nt.dir=!1,nt.createFolders=!0,nt.date=null,nt.compression=null,nt.compressionOptions=null,nt.comment=null,nt.unixPermissions=null,nt.dosPermissions=null},{}],6:[function(et,tt,nt){var rt=null;rt=typeof Promise<"u"?Promise:et("lie"),tt.exports={Promise:rt}},{lie:37}],7:[function(et,tt,nt){var rt=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",it=et("pako"),ot=et("./utils"),st=et("./stream/GenericWorker"),at=rt?"uint8array":"array";function lt(ut,dt){st.call(this,"FlateWorker/"+ut),this._pako=null,this._pakoAction=ut,this._pakoOptions=dt,this.meta={}}nt.magic="\b\0",ot.inherits(lt,st),lt.prototype.processChunk=function(ut){this.meta=ut.meta,this._pako===null&&this._createPako(),this._pako.push(ot.transformTo(at,ut.data),!1)},lt.prototype.flush=function(){st.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},lt.prototype.cleanUp=function(){st.prototype.cleanUp.call(this),this._pako=null},lt.prototype._createPako=function(){this._pako=new it[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var ut=this;this._pako.onData=function(dt){ut.push({data:dt,meta:ut.meta})}},nt.compressWorker=function(ut){return new lt("Deflate",ut)},nt.uncompressWorker=function(){return new lt("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(et,tt,nt){function rt(ht,ct){var pt,ft="";for(pt=0;pt>>=8;return ft}function it(ht,ct,pt,ft,gt,yt){var Ut,Ft,mt=ht.file,vt=ht.compression,At=yt!==at.utf8encode,Lt=ot.transformTo("string",yt(mt.name)),Rt=ot.transformTo("string",at.utf8encode(mt.name)),St=mt.comment,Tt=ot.transformTo("string",yt(St)),Bt=ot.transformTo("string",at.utf8encode(St)),xt=Rt.length!==mt.name.length,Ct=Bt.length!==St.length,kt="",Nt="",Ot="",Wt=mt.dir,Dt=mt.date,Et={crc32:0,compressedSize:0,uncompressedSize:0};ct&&!pt||(Et.crc32=ht.crc32,Et.compressedSize=ht.compressedSize,Et.uncompressedSize=ht.uncompressedSize);var Pt=0;ct&&(Pt|=8),At||!xt&&!Ct||(Pt|=2048);var zt=0,en=0;Wt&&(zt|=16),gt==="UNIX"?(en=798,zt|=function(nn,Zt){var jt=nn;return nn||(jt=Zt?16893:33204),(65535&jt)<<16}(mt.unixPermissions,Wt)):(en=20,zt|=function(nn){return 63&(nn||0)}(mt.dosPermissions)),Ut=Dt.getUTCHours(),Ut<<=6,Ut|=Dt.getUTCMinutes(),Ut<<=5,Ut|=Dt.getUTCSeconds()/2,Ft=Dt.getUTCFullYear()-1980,Ft<<=4,Ft|=Dt.getUTCMonth()+1,Ft<<=5,Ft|=Dt.getUTCDate(),xt&&(Nt=rt(1,1)+rt(lt(Lt),4)+Rt,kt+="up"+rt(Nt.length,2)+Nt),Ct&&(Ot=rt(1,1)+rt(lt(Tt),4)+Bt,kt+="uc"+rt(Ot.length,2)+Ot);var Kt="";return Kt+=` -\0`,Kt+=rt(Pt,2),Kt+=vt.magic,Kt+=rt(Ut,2),Kt+=rt(Ft,2),Kt+=rt(Et.crc32,4),Kt+=rt(Et.compressedSize,4),Kt+=rt(Et.uncompressedSize,4),Kt+=rt(Lt.length,2),Kt+=rt(kt.length,2),{fileRecord:ut.LOCAL_FILE_HEADER+Kt+Lt+kt,dirRecord:ut.CENTRAL_FILE_HEADER+rt(en,2)+Kt+rt(Tt.length,2)+"\0\0\0\0"+rt(zt,4)+rt(ft,4)+Lt+kt+Tt}}var ot=et("../utils"),st=et("../stream/GenericWorker"),at=et("../utf8"),lt=et("../crc32"),ut=et("../signature");function dt(ht,ct,pt,ft){st.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=ct,this.zipPlatform=pt,this.encodeFileName=ft,this.streamFiles=ht,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}ot.inherits(dt,st),dt.prototype.push=function(ht){var ct=ht.meta.percent||0,pt=this.entriesCount,ft=this._sources.length;this.accumulate?this.contentBuffer.push(ht):(this.bytesWritten+=ht.data.length,st.prototype.push.call(this,{data:ht.data,meta:{currentFile:this.currentFile,percent:pt?(ct+100*(pt-ft-1))/pt:100}}))},dt.prototype.openedSource=function(ht){this.currentSourceOffset=this.bytesWritten,this.currentFile=ht.file.name;var ct=this.streamFiles&&!ht.file.dir;if(ct){var pt=it(ht,ct,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:pt.fileRecord,meta:{percent:0}})}else this.accumulate=!0},dt.prototype.closedSource=function(ht){this.accumulate=!1;var ct=this.streamFiles&&!ht.file.dir,pt=it(ht,ct,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(pt.dirRecord),ct)this.push({data:function(ft){return ut.DATA_DESCRIPTOR+rt(ft.crc32,4)+rt(ft.compressedSize,4)+rt(ft.uncompressedSize,4)}(ht),meta:{percent:100}});else for(this.push({data:pt.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},dt.prototype.flush=function(){for(var ht=this.bytesWritten,ct=0;ct=this.index;st--)at=(at<<8)+this.byteAt(st);return this.index+=ot,at},readString:function(ot){return rt.transformTo("string",this.readData(ot))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var ot=this.readInt(4);return new Date(Date.UTC(1980+(ot>>25&127),(ot>>21&15)-1,ot>>16&31,ot>>11&31,ot>>5&63,(31&ot)<<1))}},tt.exports=it},{"../utils":32}],19:[function(et,tt,nt){var rt=et("./Uint8ArrayReader");function it(ot){rt.call(this,ot)}et("../utils").inherits(it,rt),it.prototype.readData=function(ot){this.checkOffset(ot);var st=this.data.slice(this.zero+this.index,this.zero+this.index+ot);return this.index+=ot,st},tt.exports=it},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(et,tt,nt){var rt=et("./DataReader");function it(ot){rt.call(this,ot)}et("../utils").inherits(it,rt),it.prototype.byteAt=function(ot){return this.data.charCodeAt(this.zero+ot)},it.prototype.lastIndexOfSignature=function(ot){return this.data.lastIndexOf(ot)-this.zero},it.prototype.readAndCheckSignature=function(ot){return ot===this.readData(4)},it.prototype.readData=function(ot){this.checkOffset(ot);var st=this.data.slice(this.zero+this.index,this.zero+this.index+ot);return this.index+=ot,st},tt.exports=it},{"../utils":32,"./DataReader":18}],21:[function(et,tt,nt){var rt=et("./ArrayReader");function it(ot){rt.call(this,ot)}et("../utils").inherits(it,rt),it.prototype.readData=function(ot){if(this.checkOffset(ot),ot===0)return new Uint8Array(0);var st=this.data.subarray(this.zero+this.index,this.zero+this.index+ot);return this.index+=ot,st},tt.exports=it},{"../utils":32,"./ArrayReader":17}],22:[function(et,tt,nt){var rt=et("../utils"),it=et("../support"),ot=et("./ArrayReader"),st=et("./StringReader"),at=et("./NodeBufferReader"),lt=et("./Uint8ArrayReader");tt.exports=function(ut){var dt=rt.getTypeOf(ut);return rt.checkSupport(dt),dt!=="string"||it.uint8array?dt==="nodebuffer"?new at(ut):it.uint8array?new lt(rt.transformTo("uint8array",ut)):new ot(rt.transformTo("array",ut)):new st(ut)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(et,tt,nt){nt.LOCAL_FILE_HEADER="PK",nt.CENTRAL_FILE_HEADER="PK",nt.CENTRAL_DIRECTORY_END="PK",nt.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",nt.ZIP64_CENTRAL_DIRECTORY_END="PK",nt.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(et,tt,nt){var rt=et("./GenericWorker"),it=et("../utils");function ot(st){rt.call(this,"ConvertWorker to "+st),this.destType=st}it.inherits(ot,rt),ot.prototype.processChunk=function(st){this.push({data:it.transformTo(this.destType,st.data),meta:st.meta})},tt.exports=ot},{"../utils":32,"./GenericWorker":28}],25:[function(et,tt,nt){var rt=et("./GenericWorker"),it=et("../crc32");function ot(){rt.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}et("../utils").inherits(ot,rt),ot.prototype.processChunk=function(st){this.streamInfo.crc32=it(st.data,this.streamInfo.crc32||0),this.push(st)},tt.exports=ot},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(et,tt,nt){var rt=et("../utils"),it=et("./GenericWorker");function ot(st){it.call(this,"DataLengthProbe for "+st),this.propName=st,this.withStreamInfo(st,0)}rt.inherits(ot,it),ot.prototype.processChunk=function(st){if(st){var at=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=at+st.data.length}it.prototype.processChunk.call(this,st)},tt.exports=ot},{"../utils":32,"./GenericWorker":28}],27:[function(et,tt,nt){var rt=et("../utils"),it=et("./GenericWorker");function ot(st){it.call(this,"DataWorker");var at=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,st.then(function(lt){at.dataIsReady=!0,at.data=lt,at.max=lt&<.length||0,at.type=rt.getTypeOf(lt),at.isPaused||at._tickAndRepeat()},function(lt){at.error(lt)})}rt.inherits(ot,it),ot.prototype.cleanUp=function(){it.prototype.cleanUp.call(this),this.data=null},ot.prototype.resume=function(){return!!it.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,rt.delay(this._tickAndRepeat,[],this)),!0)},ot.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(rt.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},ot.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var st=null,at=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":st=this.data.substring(this.index,at);break;case"uint8array":st=this.data.subarray(this.index,at);break;case"array":case"nodebuffer":st=this.data.slice(this.index,at)}return this.index=at,this.push({data:st,meta:{percent:this.max?this.index/this.max*100:0}})},tt.exports=ot},{"../utils":32,"./GenericWorker":28}],28:[function(et,tt,nt){function rt(it){this.name=it||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}rt.prototype={push:function(it){this.emit("data",it)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(it){this.emit("error",it)}return!0},error:function(it){return!this.isFinished&&(this.isPaused?this.generatedError=it:(this.isFinished=!0,this.emit("error",it),this.previous&&this.previous.error(it),this.cleanUp()),!0)},on:function(it,ot){return this._listeners[it].push(ot),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(it,ot){if(this._listeners[it])for(var st=0;st "+it:it}},tt.exports=rt},{}],29:[function(et,tt,nt){var rt=et("../utils"),it=et("./ConvertWorker"),ot=et("./GenericWorker"),st=et("../base64"),at=et("../support"),lt=et("../external"),ut=null;if(at.nodestream)try{ut=et("../nodejs/NodejsStreamOutputAdapter")}catch{}function dt(ct,pt){return new lt.Promise(function(ft,gt){var yt=[],Ut=ct._internalType,Ft=ct._outputType,mt=ct._mimeType;ct.on("data",function(vt,At){yt.push(vt),pt&&pt(At)}).on("error",function(vt){yt=[],gt(vt)}).on("end",function(){try{var vt=function(At,Lt,Rt){switch(At){case"blob":return rt.newBlob(rt.transformTo("arraybuffer",Lt),Rt);case"base64":return st.encode(Lt);default:return rt.transformTo(At,Lt)}}(Ft,function(At,Lt){var Rt,St=0,Tt=null,Bt=0;for(Rt=0;Rt"u")nt.blob=!1;else{var rt=new ArrayBuffer(0);try{nt.blob=new Blob([rt],{type:"application/zip"}).size===0}catch{try{var it=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);it.append(rt),nt.blob=it.getBlob("application/zip").size===0}catch{nt.blob=!1}}}try{nt.nodestream=!!et("readable-stream").Readable}catch{nt.nodestream=!1}},{"readable-stream":16}],31:[function(et,tt,nt){for(var rt=et("./utils"),it=et("./support"),ot=et("./nodejsUtils"),st=et("./stream/GenericWorker"),at=new Array(256),lt=0;lt<256;lt++)at[lt]=252<=lt?6:248<=lt?5:240<=lt?4:224<=lt?3:192<=lt?2:1;at[254]=at[254]=1;function ut(){st.call(this,"utf-8 decode"),this.leftOver=null}function dt(){st.call(this,"utf-8 encode")}nt.utf8encode=function(ht){return it.nodebuffer?ot.newBufferFrom(ht,"utf-8"):function(ct){var pt,ft,gt,yt,Ut,Ft=ct.length,mt=0;for(yt=0;yt>>6:(ft<65536?pt[Ut++]=224|ft>>>12:(pt[Ut++]=240|ft>>>18,pt[Ut++]=128|ft>>>12&63),pt[Ut++]=128|ft>>>6&63),pt[Ut++]=128|63&ft);return pt}(ht)},nt.utf8decode=function(ht){return it.nodebuffer?rt.transformTo("nodebuffer",ht).toString("utf-8"):function(ct){var pt,ft,gt,yt,Ut=ct.length,Ft=new Array(2*Ut);for(pt=ft=0;pt>10&1023,Ft[ft++]=56320|1023>)}return Ft.length!==ft&&(Ft.subarray?Ft=Ft.subarray(0,ft):Ft.length=ft),rt.applyFromCharCode(Ft)}(ht=rt.transformTo(it.uint8array?"uint8array":"array",ht))},rt.inherits(ut,st),ut.prototype.processChunk=function(ht){var ct=rt.transformTo(it.uint8array?"uint8array":"array",ht.data);if(this.leftOver&&this.leftOver.length){if(it.uint8array){var pt=ct;(ct=new Uint8Array(pt.length+this.leftOver.length)).set(this.leftOver,0),ct.set(pt,this.leftOver.length)}else ct=this.leftOver.concat(ct);this.leftOver=null}var ft=function(yt,Ut){var Ft;for((Ut=Ut||yt.length)>yt.length&&(Ut=yt.length),Ft=Ut-1;0<=Ft&&(192&yt[Ft])==128;)Ft--;return Ft<0||Ft===0?Ut:Ft+at[yt[Ft]]>Ut?Ft:Ut}(ct),gt=ct;ft!==ct.length&&(it.uint8array?(gt=ct.subarray(0,ft),this.leftOver=ct.subarray(ft,ct.length)):(gt=ct.slice(0,ft),this.leftOver=ct.slice(ft,ct.length))),this.push({data:nt.utf8decode(gt),meta:ht.meta})},ut.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:nt.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},nt.Utf8DecodeWorker=ut,rt.inherits(dt,st),dt.prototype.processChunk=function(ht){this.push({data:nt.utf8encode(ht.data),meta:ht.meta})},nt.Utf8EncodeWorker=dt},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(et,tt,nt){var rt=et("./support"),it=et("./base64"),ot=et("./nodejsUtils"),st=et("./external");function at(pt){return pt}function lt(pt,ft){for(var gt=0;gt>8;this.dir=!!(16&this.externalFileAttributes),ht==0&&(this.dosPermissions=63&this.externalFileAttributes),ht==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var ht=rt(this.extraFields[1].value);this.uncompressedSize===it.MAX_VALUE_32BITS&&(this.uncompressedSize=ht.readInt(8)),this.compressedSize===it.MAX_VALUE_32BITS&&(this.compressedSize=ht.readInt(8)),this.localHeaderOffset===it.MAX_VALUE_32BITS&&(this.localHeaderOffset=ht.readInt(8)),this.diskNumberStart===it.MAX_VALUE_32BITS&&(this.diskNumberStart=ht.readInt(4))}},readExtraFields:function(ht){var ct,pt,ft,gt=ht.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});ht.index+4>>6:(ht<65536?dt[ft++]=224|ht>>>12:(dt[ft++]=240|ht>>>18,dt[ft++]=128|ht>>>12&63),dt[ft++]=128|ht>>>6&63),dt[ft++]=128|63&ht);return dt},nt.buf2binstring=function(ut){return lt(ut,ut.length)},nt.binstring2buf=function(ut){for(var dt=new rt.Buf8(ut.length),ht=0,ct=dt.length;ht>10&1023,yt[ct++]=56320|1023&pt)}return lt(yt,ct)},nt.utf8border=function(ut,dt){var ht;for((dt=dt||ut.length)>ut.length&&(dt=ut.length),ht=dt-1;0<=ht&&(192&ut[ht])==128;)ht--;return ht<0||ht===0?dt:ht+st[ut[ht]]>dt?ht:dt}},{"./common":41}],43:[function(et,tt,nt){tt.exports=function(rt,it,ot,st){for(var at=65535&rt|0,lt=rt>>>16&65535|0,ut=0;ot!==0;){for(ot-=ut=2e3>>1:it>>>1;ot[st]=it}return ot}();tt.exports=function(it,ot,st,at){var lt=rt,ut=at+st;it^=-1;for(var dt=at;dt>>8^lt[255&(it^ot[dt])];return-1^it}},{}],46:[function(et,tt,nt){var rt,it=et("../utils/common"),ot=et("./trees"),st=et("./adler32"),at=et("./crc32"),lt=et("./messages"),ut=0,dt=4,ht=0,ct=-2,pt=-1,ft=4,gt=2,yt=8,Ut=9,Ft=286,mt=30,vt=19,At=2*Ft+1,Lt=15,Rt=3,St=258,Tt=St+Rt+1,Bt=42,xt=113,Ct=1,kt=2,Nt=3,Ot=4;function Wt(Xt,dn){return Xt.msg=lt[dn],dn}function Dt(Xt){return(Xt<<1)-(4Xt.avail_out&&(_n=Xt.avail_out),_n!==0&&(it.arraySet(Xt.output,dn.pending_buf,dn.pending_out,_n,Xt.next_out),Xt.next_out+=_n,dn.pending_out+=_n,Xt.total_out+=_n,Xt.avail_out-=_n,dn.pending-=_n,dn.pending===0&&(dn.pending_out=0))}function zt(Xt,dn){ot._tr_flush_block(Xt,0<=Xt.block_start?Xt.block_start:-1,Xt.strstart-Xt.block_start,dn),Xt.block_start=Xt.strstart,Pt(Xt.strm)}function en(Xt,dn){Xt.pending_buf[Xt.pending++]=dn}function Kt(Xt,dn){Xt.pending_buf[Xt.pending++]=dn>>>8&255,Xt.pending_buf[Xt.pending++]=255&dn}function nn(Xt,dn){var _n,Fn,Un=Xt.max_chain_length,On=Xt.strstart,gn=Xt.prev_length,hn=Xt.nice_match,wn=Xt.strstart>Xt.w_size-Tt?Xt.strstart-(Xt.w_size-Tt):0,Zn=Xt.window,Pn=Xt.w_mask,$n=Xt.prev,Tr=Xt.strstart+St,Qr=Zn[On+gn-1],_r=Zn[On+gn];Xt.prev_length>=Xt.good_match&&(Un>>=2),hn>Xt.lookahead&&(hn=Xt.lookahead);do if(Zn[(_n=dn)+gn]===_r&&Zn[_n+gn-1]===Qr&&Zn[_n]===Zn[On]&&Zn[++_n]===Zn[On+1]){On+=2,_n++;do;while(Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Onwn&&--Un!=0);return gn<=Xt.lookahead?gn:Xt.lookahead}function Zt(Xt){var dn,_n,Fn,Un,On,gn,hn,wn,Zn,Pn,$n=Xt.w_size;do{if(Un=Xt.window_size-Xt.lookahead-Xt.strstart,Xt.strstart>=$n+($n-Tt)){for(it.arraySet(Xt.window,Xt.window,$n,$n,0),Xt.match_start-=$n,Xt.strstart-=$n,Xt.block_start-=$n,dn=_n=Xt.hash_size;Fn=Xt.head[--dn],Xt.head[dn]=$n<=Fn?Fn-$n:0,--_n;);for(dn=_n=$n;Fn=Xt.prev[--dn],Xt.prev[dn]=$n<=Fn?Fn-$n:0,--_n;);Un+=$n}if(Xt.strm.avail_in===0)break;if(gn=Xt.strm,hn=Xt.window,wn=Xt.strstart+Xt.lookahead,Zn=Un,Pn=void 0,Pn=gn.avail_in,Zn=Rt)for(On=Xt.strstart-Xt.insert,Xt.ins_h=Xt.window[On],Xt.ins_h=(Xt.ins_h<=Rt&&(Xt.ins_h=(Xt.ins_h<=Rt)if(Fn=ot._tr_tally(Xt,Xt.strstart-Xt.match_start,Xt.match_length-Rt),Xt.lookahead-=Xt.match_length,Xt.match_length<=Xt.max_lazy_match&&Xt.lookahead>=Rt){for(Xt.match_length--;Xt.strstart++,Xt.ins_h=(Xt.ins_h<=Rt&&(Xt.ins_h=(Xt.ins_h<=Rt&&Xt.match_length<=Xt.prev_length){for(Un=Xt.strstart+Xt.lookahead-Rt,Fn=ot._tr_tally(Xt,Xt.strstart-1-Xt.prev_match,Xt.prev_length-Rt),Xt.lookahead-=Xt.prev_length-1,Xt.prev_length-=2;++Xt.strstart<=Un&&(Xt.ins_h=(Xt.ins_h<Xt.pending_buf_size-5&&(_n=Xt.pending_buf_size-5);;){if(Xt.lookahead<=1){if(Zt(Xt),Xt.lookahead===0&&dn===ut)return Ct;if(Xt.lookahead===0)break}Xt.strstart+=Xt.lookahead,Xt.lookahead=0;var Fn=Xt.block_start+_n;if((Xt.strstart===0||Xt.strstart>=Fn)&&(Xt.lookahead=Xt.strstart-Fn,Xt.strstart=Fn,zt(Xt,!1),Xt.strm.avail_out===0)||Xt.strstart-Xt.block_start>=Xt.w_size-Tt&&(zt(Xt,!1),Xt.strm.avail_out===0))return Ct}return Xt.insert=0,dn===dt?(zt(Xt,!0),Xt.strm.avail_out===0?Nt:Ot):(Xt.strstart>Xt.block_start&&(zt(Xt,!1),Xt.strm.avail_out),Ct)}),new It(4,4,8,4,jt),new It(4,5,16,8,jt),new It(4,6,32,32,jt),new It(4,4,16,16,Vt),new It(8,16,32,32,Vt),new It(8,16,128,128,Vt),new It(8,32,128,256,Vt),new It(32,128,258,1024,Vt),new It(32,258,258,4096,Vt)],nt.deflateInit=function(Xt,dn){return on(Xt,dn,yt,15,8,0)},nt.deflateInit2=on,nt.deflateReset=qt,nt.deflateResetKeep=Ht,nt.deflateSetHeader=function(Xt,dn){return Xt&&Xt.state?Xt.state.wrap!==2?ct:(Xt.state.gzhead=dn,ht):ct},nt.deflate=function(Xt,dn){var _n,Fn,Un,On;if(!Xt||!Xt.state||5>8&255),en(Fn,Fn.gzhead.time>>16&255),en(Fn,Fn.gzhead.time>>24&255),en(Fn,Fn.level===9?2:2<=Fn.strategy||Fn.level<2?4:0),en(Fn,255&Fn.gzhead.os),Fn.gzhead.extra&&Fn.gzhead.extra.length&&(en(Fn,255&Fn.gzhead.extra.length),en(Fn,Fn.gzhead.extra.length>>8&255)),Fn.gzhead.hcrc&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending,0)),Fn.gzindex=0,Fn.status=69):(en(Fn,0),en(Fn,0),en(Fn,0),en(Fn,0),en(Fn,0),en(Fn,Fn.level===9?2:2<=Fn.strategy||Fn.level<2?4:0),en(Fn,3),Fn.status=xt);else{var gn=yt+(Fn.w_bits-8<<4)<<8;gn|=(2<=Fn.strategy||Fn.level<2?0:Fn.level<6?1:Fn.level===6?2:3)<<6,Fn.strstart!==0&&(gn|=32),gn+=31-gn%31,Fn.status=xt,Kt(Fn,gn),Fn.strstart!==0&&(Kt(Fn,Xt.adler>>>16),Kt(Fn,65535&Xt.adler)),Xt.adler=1}if(Fn.status===69)if(Fn.gzhead.extra){for(Un=Fn.pending;Fn.gzindex<(65535&Fn.gzhead.extra.length)&&(Fn.pending!==Fn.pending_buf_size||(Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Pt(Xt),Un=Fn.pending,Fn.pending!==Fn.pending_buf_size));)en(Fn,255&Fn.gzhead.extra[Fn.gzindex]),Fn.gzindex++;Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Fn.gzindex===Fn.gzhead.extra.length&&(Fn.gzindex=0,Fn.status=73)}else Fn.status=73;if(Fn.status===73)if(Fn.gzhead.name){Un=Fn.pending;do{if(Fn.pending===Fn.pending_buf_size&&(Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Pt(Xt),Un=Fn.pending,Fn.pending===Fn.pending_buf_size)){On=1;break}On=Fn.gzindexUn&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),On===0&&(Fn.gzindex=0,Fn.status=91)}else Fn.status=91;if(Fn.status===91)if(Fn.gzhead.comment){Un=Fn.pending;do{if(Fn.pending===Fn.pending_buf_size&&(Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Pt(Xt),Un=Fn.pending,Fn.pending===Fn.pending_buf_size)){On=1;break}On=Fn.gzindexUn&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),On===0&&(Fn.status=103)}else Fn.status=103;if(Fn.status===103&&(Fn.gzhead.hcrc?(Fn.pending+2>Fn.pending_buf_size&&Pt(Xt),Fn.pending+2<=Fn.pending_buf_size&&(en(Fn,255&Xt.adler),en(Fn,Xt.adler>>8&255),Xt.adler=0,Fn.status=xt)):Fn.status=xt),Fn.pending!==0){if(Pt(Xt),Xt.avail_out===0)return Fn.last_flush=-1,ht}else if(Xt.avail_in===0&&Dt(dn)<=Dt(_n)&&dn!==dt)return Wt(Xt,-5);if(Fn.status===666&&Xt.avail_in!==0)return Wt(Xt,-5);if(Xt.avail_in!==0||Fn.lookahead!==0||dn!==ut&&Fn.status!==666){var hn=Fn.strategy===2?function(wn,Zn){for(var Pn;;){if(wn.lookahead===0&&(Zt(wn),wn.lookahead===0)){if(Zn===ut)return Ct;break}if(wn.match_length=0,Pn=ot._tr_tally(wn,0,wn.window[wn.strstart]),wn.lookahead--,wn.strstart++,Pn&&(zt(wn,!1),wn.strm.avail_out===0))return Ct}return wn.insert=0,Zn===dt?(zt(wn,!0),wn.strm.avail_out===0?Nt:Ot):wn.last_lit&&(zt(wn,!1),wn.strm.avail_out===0)?Ct:kt}(Fn,dn):Fn.strategy===3?function(wn,Zn){for(var Pn,$n,Tr,Qr,_r=wn.window;;){if(wn.lookahead<=St){if(Zt(wn),wn.lookahead<=St&&Zn===ut)return Ct;if(wn.lookahead===0)break}if(wn.match_length=0,wn.lookahead>=Rt&&0wn.lookahead&&(wn.match_length=wn.lookahead)}if(wn.match_length>=Rt?(Pn=ot._tr_tally(wn,1,wn.match_length-Rt),wn.lookahead-=wn.match_length,wn.strstart+=wn.match_length,wn.match_length=0):(Pn=ot._tr_tally(wn,0,wn.window[wn.strstart]),wn.lookahead--,wn.strstart++),Pn&&(zt(wn,!1),wn.strm.avail_out===0))return Ct}return wn.insert=0,Zn===dt?(zt(wn,!0),wn.strm.avail_out===0?Nt:Ot):wn.last_lit&&(zt(wn,!1),wn.strm.avail_out===0)?Ct:kt}(Fn,dn):rt[Fn.level].func(Fn,dn);if(hn!==Nt&&hn!==Ot||(Fn.status=666),hn===Ct||hn===Nt)return Xt.avail_out===0&&(Fn.last_flush=-1),ht;if(hn===kt&&(dn===1?ot._tr_align(Fn):dn!==5&&(ot._tr_stored_block(Fn,0,0,!1),dn===3&&(Et(Fn.head),Fn.lookahead===0&&(Fn.strstart=0,Fn.block_start=0,Fn.insert=0))),Pt(Xt),Xt.avail_out===0))return Fn.last_flush=-1,ht}return dn!==dt?ht:Fn.wrap<=0?1:(Fn.wrap===2?(en(Fn,255&Xt.adler),en(Fn,Xt.adler>>8&255),en(Fn,Xt.adler>>16&255),en(Fn,Xt.adler>>24&255),en(Fn,255&Xt.total_in),en(Fn,Xt.total_in>>8&255),en(Fn,Xt.total_in>>16&255),en(Fn,Xt.total_in>>24&255)):(Kt(Fn,Xt.adler>>>16),Kt(Fn,65535&Xt.adler)),Pt(Xt),0=_n.w_size&&(On===0&&(Et(_n.head),_n.strstart=0,_n.block_start=0,_n.insert=0),Zn=new it.Buf8(_n.w_size),it.arraySet(Zn,dn,Pn-_n.w_size,_n.w_size,0),dn=Zn,Pn=_n.w_size),gn=Xt.avail_in,hn=Xt.next_in,wn=Xt.input,Xt.avail_in=Pn,Xt.next_in=0,Xt.input=dn,Zt(_n);_n.lookahead>=Rt;){for(Fn=_n.strstart,Un=_n.lookahead-(Rt-1);_n.ins_h=(_n.ins_h<<_n.hash_shift^_n.window[Fn+Rt-1])&_n.hash_mask,_n.prev[Fn&_n.w_mask]=_n.head[_n.ins_h],_n.head[_n.ins_h]=Fn,Fn++,--Un;);_n.strstart=Fn,_n.lookahead=Rt-1,Zt(_n)}return _n.strstart+=_n.lookahead,_n.block_start=_n.strstart,_n.insert=_n.lookahead,_n.lookahead=0,_n.match_length=_n.prev_length=Rt-1,_n.match_available=0,Xt.next_in=hn,Xt.input=wn,Xt.avail_in=gn,_n.wrap=On,ht},nt.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(et,tt,nt){tt.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(et,tt,nt){tt.exports=function(rt,it){var ot,st,at,lt,ut,dt,ht,ct,pt,ft,gt,yt,Ut,Ft,mt,vt,At,Lt,Rt,St,Tt,Bt,xt,Ct,kt;ot=rt.state,st=rt.next_in,Ct=rt.input,at=st+(rt.avail_in-5),lt=rt.next_out,kt=rt.output,ut=lt-(it-rt.avail_out),dt=lt+(rt.avail_out-257),ht=ot.dmax,ct=ot.wsize,pt=ot.whave,ft=ot.wnext,gt=ot.window,yt=ot.hold,Ut=ot.bits,Ft=ot.lencode,mt=ot.distcode,vt=(1<>>=Rt=Lt>>>24,Ut-=Rt,(Rt=Lt>>>16&255)===0)kt[lt++]=65535≪else{if(!(16&Rt)){if(!(64&Rt)){Lt=Ft[(65535&Lt)+(yt&(1<>>=Rt,Ut-=Rt),Ut<15&&(yt+=Ct[st++]<>>=Rt=Lt>>>24,Ut-=Rt,!(16&(Rt=Lt>>>16&255))){if(!(64&Rt)){Lt=mt[(65535&Lt)+(yt&(1<>>=Rt,Ut-=Rt,(Rt=lt-ut)>3,yt&=(1<<(Ut-=St<<3))-1,rt.next_in=st,rt.next_out=lt,rt.avail_in=st>>24&255)+(Bt>>>8&65280)+((65280&Bt)<<8)+((255&Bt)<<24)}function yt(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new rt.Buf16(320),this.work=new rt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Ut(Bt){var xt;return Bt&&Bt.state?(xt=Bt.state,Bt.total_in=Bt.total_out=xt.total=0,Bt.msg="",xt.wrap&&(Bt.adler=1&xt.wrap),xt.mode=ct,xt.last=0,xt.havedict=0,xt.dmax=32768,xt.head=null,xt.hold=0,xt.bits=0,xt.lencode=xt.lendyn=new rt.Buf32(pt),xt.distcode=xt.distdyn=new rt.Buf32(ft),xt.sane=1,xt.back=-1,dt):ht}function Ft(Bt){var xt;return Bt&&Bt.state?((xt=Bt.state).wsize=0,xt.whave=0,xt.wnext=0,Ut(Bt)):ht}function mt(Bt,xt){var Ct,kt;return Bt&&Bt.state?(kt=Bt.state,xt<0?(Ct=0,xt=-xt):(Ct=1+(xt>>4),xt<48&&(xt&=15)),xt&&(xt<8||15=Ot.wsize?(rt.arraySet(Ot.window,xt,Ct-Ot.wsize,Ot.wsize,0),Ot.wnext=0,Ot.whave=Ot.wsize):(kt<(Nt=Ot.wsize-Ot.wnext)&&(Nt=kt),rt.arraySet(Ot.window,xt,Ct-kt,Nt,Ot.wnext),(kt-=Nt)?(rt.arraySet(Ot.window,xt,Ct-kt,kt,0),Ot.wnext=kt,Ot.whave=Ot.wsize):(Ot.wnext+=Nt,Ot.wnext===Ot.wsize&&(Ot.wnext=0),Ot.whave>>8&255,Ct.check=ot(Ct.check,On,2,0),zt=Pt=0,Ct.mode=2;break}if(Ct.flags=0,Ct.head&&(Ct.head.done=!1),!(1&Ct.wrap)||(((255&Pt)<<8)+(Pt>>8))%31){Bt.msg="incorrect header check",Ct.mode=30;break}if((15&Pt)!=8){Bt.msg="unknown compression method",Ct.mode=30;break}if(zt-=4,Xt=8+(15&(Pt>>>=4)),Ct.wbits===0)Ct.wbits=Xt;else if(Xt>Ct.wbits){Bt.msg="invalid window size",Ct.mode=30;break}Ct.dmax=1<>8&1),512&Ct.flags&&(On[0]=255&Pt,On[1]=Pt>>>8&255,Ct.check=ot(Ct.check,On,2,0)),zt=Pt=0,Ct.mode=3;case 3:for(;zt<32;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>8&255,On[2]=Pt>>>16&255,On[3]=Pt>>>24&255,Ct.check=ot(Ct.check,On,4,0)),zt=Pt=0,Ct.mode=4;case 4:for(;zt<16;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>8),512&Ct.flags&&(On[0]=255&Pt,On[1]=Pt>>>8&255,Ct.check=ot(Ct.check,On,2,0)),zt=Pt=0,Ct.mode=5;case 5:if(1024&Ct.flags){for(;zt<16;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>8&255,Ct.check=ot(Ct.check,On,2,0)),zt=Pt=0}else Ct.head&&(Ct.head.extra=null);Ct.mode=6;case 6:if(1024&Ct.flags&&(Dt<(nn=Ct.length)&&(nn=Dt),nn&&(Ct.head&&(Xt=Ct.head.extra_len-Ct.length,Ct.head.extra||(Ct.head.extra=new Array(Ct.head.extra_len)),rt.arraySet(Ct.head.extra,kt,Ot,nn,Xt)),512&Ct.flags&&(Ct.check=ot(Ct.check,kt,nn,Ot)),Dt-=nn,Ot+=nn,Ct.length-=nn),Ct.length))break e;Ct.length=0,Ct.mode=7;case 7:if(2048&Ct.flags){if(Dt===0)break e;for(nn=0;Xt=kt[Ot+nn++],Ct.head&&Xt&&Ct.length<65536&&(Ct.head.name+=String.fromCharCode(Xt)),Xt&&nn>9&1,Ct.head.done=!0),Bt.adler=Ct.check=0,Ct.mode=12;break;case 10:for(;zt<32;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=7&zt,zt-=7&zt,Ct.mode=27;break}for(;zt<3;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=1)){case 0:Ct.mode=14;break;case 1:if(St(Ct),Ct.mode=20,xt!==6)break;Pt>>>=2,zt-=2;break e;case 2:Ct.mode=17;break;case 3:Bt.msg="invalid block type",Ct.mode=30}Pt>>>=2,zt-=2;break;case 14:for(Pt>>>=7&zt,zt-=7&zt;zt<32;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>16^65535)){Bt.msg="invalid stored block lengths",Ct.mode=30;break}if(Ct.length=65535&Pt,zt=Pt=0,Ct.mode=15,xt===6)break e;case 15:Ct.mode=16;case 16:if(nn=Ct.length){if(Dt>>=5,zt-=5,Ct.ndist=1+(31&Pt),Pt>>>=5,zt-=5,Ct.ncode=4+(15&Pt),Pt>>>=4,zt-=4,286>>=3,zt-=3}for(;Ct.have<19;)Ct.lens[gn[Ct.have++]]=0;if(Ct.lencode=Ct.lendyn,Ct.lenbits=7,_n={bits:Ct.lenbits},dn=at(0,Ct.lens,0,19,Ct.lencode,0,Ct.work,_n),Ct.lenbits=_n.bits,dn){Bt.msg="invalid code lengths set",Ct.mode=30;break}Ct.have=0,Ct.mode=19;case 19:for(;Ct.have>>16&255,$t=65535&Un,!((Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=Vt,zt-=Vt,Ct.lens[Ct.have++]=$t;else{if($t===16){for(Fn=Vt+2;zt>>=Vt,zt-=Vt,Ct.have===0){Bt.msg="invalid bit length repeat",Ct.mode=30;break}Xt=Ct.lens[Ct.have-1],nn=3+(3&Pt),Pt>>>=2,zt-=2}else if($t===17){for(Fn=Vt+3;zt>>=Vt)),Pt>>>=3,zt-=3}else{for(Fn=Vt+7;zt>>=Vt)),Pt>>>=7,zt-=7}if(Ct.have+nn>Ct.nlen+Ct.ndist){Bt.msg="invalid bit length repeat",Ct.mode=30;break}for(;nn--;)Ct.lens[Ct.have++]=Xt}}if(Ct.mode===30)break;if(Ct.lens[256]===0){Bt.msg="invalid code -- missing end-of-block",Ct.mode=30;break}if(Ct.lenbits=9,_n={bits:Ct.lenbits},dn=at(lt,Ct.lens,0,Ct.nlen,Ct.lencode,0,Ct.work,_n),Ct.lenbits=_n.bits,dn){Bt.msg="invalid literal/lengths set",Ct.mode=30;break}if(Ct.distbits=6,Ct.distcode=Ct.distdyn,_n={bits:Ct.distbits},dn=at(ut,Ct.lens,Ct.nlen,Ct.ndist,Ct.distcode,0,Ct.work,_n),Ct.distbits=_n.bits,dn){Bt.msg="invalid distances set",Ct.mode=30;break}if(Ct.mode=20,xt===6)break e;case 20:Ct.mode=21;case 21:if(6<=Dt&&258<=Et){Bt.next_out=Wt,Bt.avail_out=Et,Bt.next_in=Ot,Bt.avail_in=Dt,Ct.hold=Pt,Ct.bits=zt,st(Bt,Kt),Wt=Bt.next_out,Nt=Bt.output,Et=Bt.avail_out,Ot=Bt.next_in,kt=Bt.input,Dt=Bt.avail_in,Pt=Ct.hold,zt=Ct.bits,Ct.mode===12&&(Ct.back=-1);break}for(Ct.back=0;It=(Un=Ct.lencode[Pt&(1<>>16&255,$t=65535&Un,!((Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>Ht)])>>>16&255,$t=65535&Un,!(Ht+(Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=Ht,zt-=Ht,Ct.back+=Ht}if(Pt>>>=Vt,zt-=Vt,Ct.back+=Vt,Ct.length=$t,It===0){Ct.mode=26;break}if(32&It){Ct.back=-1,Ct.mode=12;break}if(64&It){Bt.msg="invalid literal/length code",Ct.mode=30;break}Ct.extra=15&It,Ct.mode=22;case 22:if(Ct.extra){for(Fn=Ct.extra;zt>>=Ct.extra,zt-=Ct.extra,Ct.back+=Ct.extra}Ct.was=Ct.length,Ct.mode=23;case 23:for(;It=(Un=Ct.distcode[Pt&(1<>>16&255,$t=65535&Un,!((Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>Ht)])>>>16&255,$t=65535&Un,!(Ht+(Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=Ht,zt-=Ht,Ct.back+=Ht}if(Pt>>>=Vt,zt-=Vt,Ct.back+=Vt,64&It){Bt.msg="invalid distance code",Ct.mode=30;break}Ct.offset=$t,Ct.extra=15&It,Ct.mode=24;case 24:if(Ct.extra){for(Fn=Ct.extra;zt>>=Ct.extra,zt-=Ct.extra,Ct.back+=Ct.extra}if(Ct.offset>Ct.dmax){Bt.msg="invalid distance too far back",Ct.mode=30;break}Ct.mode=25;case 25:if(Et===0)break e;if(nn=Kt-Et,Ct.offset>nn){if((nn=Ct.offset-nn)>Ct.whave&&Ct.sane){Bt.msg="invalid distance too far back",Ct.mode=30;break}Zt=nn>Ct.wnext?(nn-=Ct.wnext,Ct.wsize-nn):Ct.wnext-nn,nn>Ct.length&&(nn=Ct.length),jt=Ct.window}else jt=Nt,Zt=Wt-Ct.offset,nn=Ct.length;for(EtAt?(Rt=Zt[jt+ft[xt]],zt[en+ft[xt]]):(Rt=96,0),yt=1<>Wt)+(Ut-=yt)]=Lt<<24|Rt<<16|St|0,Ut!==0;);for(yt=1<>=1;if(yt!==0?(Pt&=yt-1,Pt+=yt):Pt=0,xt++,--Kt[Bt]==0){if(Bt===kt)break;Bt=ut[dt+ft[xt]]}if(Nt>>7)]}function en(Un,On){Un.pending_buf[Un.pending++]=255&On,Un.pending_buf[Un.pending++]=On>>>8&255}function Kt(Un,On,gn){Un.bi_valid>gt-gn?(Un.bi_buf|=On<>gt-Un.bi_valid,Un.bi_valid+=gn-gt):(Un.bi_buf|=On<>>=1,gn<<=1,0<--On;);return gn>>>1}function jt(Un,On,gn){var hn,wn,Zn=new Array(ft+1),Pn=0;for(hn=1;hn<=ft;hn++)Zn[hn]=Pn=Pn+gn[hn-1]<<1;for(wn=0;wn<=On;wn++){var $n=Un[2*wn+1];$n!==0&&(Un[2*wn]=Zt(Zn[$n]++,$n))}}function Vt(Un){var On;for(On=0;On>1;1<=gn;gn--)Ht(Un,Zn,gn);for(wn=Tr;gn=Un.heap[1],Un.heap[1]=Un.heap[Un.heap_len--],Ht(Un,Zn,1),hn=Un.heap[1],Un.heap[--Un.heap_max]=gn,Un.heap[--Un.heap_max]=hn,Zn[2*wn]=Zn[2*gn]+Zn[2*hn],Un.depth[wn]=(Un.depth[gn]>=Un.depth[hn]?Un.depth[gn]:Un.depth[hn])+1,Zn[2*gn+1]=Zn[2*hn+1]=wn,Un.heap[1]=wn++,Ht(Un,Zn,1),2<=Un.heap_len;);Un.heap[--Un.heap_max]=Un.heap[1],function(_r,Ir){var Wr,qr,Uo,eo,Yr,_o,ro=Ir.dyn_tree,Fo=Ir.max_code,kn=Ir.stat_desc.static_tree,un=Ir.stat_desc.has_stree,pn=Ir.stat_desc.extra_bits,Qn=Ir.stat_desc.extra_base,Wn=Ir.stat_desc.max_length,jn=0;for(eo=0;eo<=ft;eo++)_r.bl_count[eo]=0;for(ro[2*_r.heap[_r.heap_max]+1]=0,Wr=_r.heap_max+1;Wr>=7;wn>>=1)if(1&Qr&&$n.dyn_ltree[2*Tr]!==0)return it;if($n.dyn_ltree[18]!==0||$n.dyn_ltree[20]!==0||$n.dyn_ltree[26]!==0)return ot;for(Tr=32;Tr>>3,(Zn=Un.static_len+3+7>>>3)<=wn&&(wn=Zn)):wn=Zn=gn+5,gn+4<=wn&&On!==-1?Fn(Un,On,gn,hn):Un.strategy===4||Zn===wn?(Kt(Un,2+(hn?1:0),3),qt(Un,Tt,Bt)):(Kt(Un,4+(hn?1:0),3),function($n,Tr,Qr,_r){var Ir;for(Kt($n,Tr-257,5),Kt($n,Qr-1,5),Kt($n,_r-4,4),Ir=0;Ir<_r;Ir++)Kt($n,$n.bl_tree[2*St[Ir]+1],3);dn($n,$n.dyn_ltree,Tr-1),dn($n,$n.dyn_dtree,Qr-1)}(Un,Un.l_desc.max_code+1,Un.d_desc.max_code+1,Pn+1),qt(Un,Un.dyn_ltree,Un.dyn_dtree)),Vt(Un),hn&&It(Un)},nt._tr_tally=function(Un,On,gn){return Un.pending_buf[Un.d_buf+2*Un.last_lit]=On>>>8&255,Un.pending_buf[Un.d_buf+2*Un.last_lit+1]=255&On,Un.pending_buf[Un.l_buf+Un.last_lit]=255&gn,Un.last_lit++,On===0?Un.dyn_ltree[2*gn]++:(Un.matches++,On--,Un.dyn_ltree[2*(Ct[gn]+ut+1)]++,Un.dyn_dtree[2*zt(On)]++),Un.last_lit===Un.lit_bufsize-1},nt._tr_align=function(Un){Kt(Un,2,3),nn(Un,Ut,Tt),function(On){On.bi_valid===16?(en(On,On.bi_buf),On.bi_buf=0,On.bi_valid=0):8<=On.bi_valid&&(On.pending_buf[On.pending++]=255&On.bi_buf,On.bi_buf>>=8,On.bi_valid-=8)}(Un)}},{"../utils/common":41}],53:[function(et,tt,nt){tt.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(et,tt,nt){(function(rt){(function(it,ot){if(!it.setImmediate){var st,at,lt,ut,dt=1,ht={},ct=!1,pt=it.document,ft=Object.getPrototypeOf&&Object.getPrototypeOf(it);ft=ft&&ft.setTimeout?ft:it,st={}.toString.call(it.process)==="[object process]"?function(Ft){process.nextTick(function(){yt(Ft)})}:function(){if(it.postMessage&&!it.importScripts){var Ft=!0,mt=it.onmessage;return it.onmessage=function(){Ft=!1},it.postMessage("","*"),it.onmessage=mt,Ft}}()?(ut="setImmediate$"+Math.random()+"$",it.addEventListener?it.addEventListener("message",Ut,!1):it.attachEvent("onmessage",Ut),function(Ft){it.postMessage(ut+Ft,"*")}):it.MessageChannel?((lt=new MessageChannel).port1.onmessage=function(Ft){yt(Ft.data)},function(Ft){lt.port2.postMessage(Ft)}):pt&&"onreadystatechange"in pt.createElement("script")?(at=pt.documentElement,function(Ft){var mt=pt.createElement("script");mt.onreadystatechange=function(){yt(Ft),mt.onreadystatechange=null,at.removeChild(mt),mt=null},at.appendChild(mt)}):function(Ft){setTimeout(yt,0,Ft)},ft.setImmediate=function(Ft){typeof Ft!="function"&&(Ft=new Function(""+Ft));for(var mt=new Array(arguments.length-1),vt=0;vt"u"?rt===void 0?this:rt:self)}).call(this,typeof commonjsGlobal$2<"u"?commonjsGlobal$2:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(jszip_min);var jszip_minExports=jszip_min.exports;const JSZip=getDefaultExportFromCjs$1(jszip_minExports);class STLLoader extends Loader{constructor(o){super(o)}load(o,et,tt,nt){const rt=this,it=new FileLoader(this.manager);it.setPath(this.path),it.setResponseType("arraybuffer"),it.setRequestHeader(this.requestHeader),it.setWithCredentials(this.withCredentials),it.load(o,function(ot){try{et(rt.parse(ot))}catch(st){nt?nt(st):console.error(st),rt.manager.itemError(o)}},tt,nt)}parse(o){function et(at){const lt=new DataView(at),ut=32/8*3+32/8*3*3+16/8,dt=lt.getUint32(80,!0);if(80+32/8+dt*ut===lt.byteLength)return!0;const ct=[115,111,108,105,100];for(let pt=0;pt<5;pt++)if(tt(ct,lt,pt))return!1;return!0}function tt(at,lt,ut){for(let dt=0,ht=at.length;dt>5&31)/31,ct=(Nt>>10&31)/31)}for(let Nt=1;Nt<=3;Nt++){const Ot=Bt+Nt*12,Wt=Tt*3*3+(Nt-1)*3;Lt[Wt]=lt.getFloat32(Ot,!0),Lt[Wt+1]=lt.getFloat32(Ot+4,!0),Lt[Wt+2]=lt.getFloat32(Ot+8,!0),Rt[Wt]=xt,Rt[Wt+1]=Ct,Rt[Wt+2]=kt,pt&&(St.set(dt,ht,ct).convertSRGBToLinear(),ft[Wt]=St.r,ft[Wt+1]=St.g,ft[Wt+2]=St.b)}}return At.setAttribute("position",new BufferAttribute(Lt,3)),At.setAttribute("normal",new BufferAttribute(Rt,3)),pt&&(At.setAttribute("color",new BufferAttribute(ft,3)),At.hasColors=!0,At.alpha=Ft),At}function rt(at){const lt=new BufferGeometry,ut=/solid([\s\S]*?)endsolid/g,dt=/facet([\s\S]*?)endfacet/g,ht=/solid\s(.+)/;let ct=0;const pt=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,ft=new RegExp("vertex"+pt+pt+pt,"g"),gt=new RegExp("normal"+pt+pt+pt,"g"),yt=[],Ut=[],Ft=[],mt=new Vector3;let vt,At=0,Lt=0,Rt=0;for(;(vt=ut.exec(at))!==null;){Lt=Rt;const St=vt[0],Tt=(vt=ht.exec(St))!==null?vt[1]:"";for(Ft.push(Tt);(vt=dt.exec(St))!==null;){let Ct=0,kt=0;const Nt=vt[0];for(;(vt=gt.exec(Nt))!==null;)mt.x=parseFloat(vt[1]),mt.y=parseFloat(vt[2]),mt.z=parseFloat(vt[3]),kt++;for(;(vt=ft.exec(Nt))!==null;)yt.push(parseFloat(vt[1]),parseFloat(vt[2]),parseFloat(vt[3])),Ut.push(mt.x,mt.y,mt.z),Ct++,Rt++;kt!==1&&console.error("THREE.STLLoader: Something isn't right with the normal of face number "+ct),Ct!==3&&console.error("THREE.STLLoader: Something isn't right with the vertices of face number "+ct),ct++}const Bt=Lt,xt=Rt-Lt;lt.userData.groupNames=Ft,lt.addGroup(Bt,xt,At),At++}return lt.setAttribute("position",new Float32BufferAttribute(yt,3)),lt.setAttribute("normal",new Float32BufferAttribute(Ut,3)),lt}function it(at){return typeof at!="string"?new TextDecoder().decode(at):at}function ot(at){if(typeof at=="string"){const lt=new Uint8Array(at.length);for(let ut=0;ut256||Nt.colormap_size!==24||Nt.colormap_type!==1)throw new Error("THREE.TGALoader: Invalid type colormap data for indexed type.");break;case ht:case ct:case ft:case gt:if(Nt.colormap_type)throw new Error("THREE.TGALoader: Invalid type colormap data for colormap type.");break;case ut:throw new Error("THREE.TGALoader: No data.");default:throw new Error("THREE.TGALoader: Invalid type "+Nt.image_type)}if(Nt.width<=0||Nt.height<=0)throw new Error("THREE.TGALoader: Invalid image size.");if(Nt.pixel_size!==8&&Nt.pixel_size!==16&&Nt.pixel_size!==24&&Nt.pixel_size!==32)throw new Error("THREE.TGALoader: Invalid pixel size "+Nt.pixel_size)}function tt(Nt,Ot,Wt,Dt,Et){let Pt,zt;const en=Wt.pixel_size>>3,Kt=Wt.width*Wt.height*en;if(Ot&&(zt=Et.subarray(Dt,Dt+=Wt.colormap_length*(Wt.colormap_size>>3))),Nt){Pt=new Uint8Array(Kt);let nn,Zt,jt,Vt=0;const It=new Uint8Array(en);for(;Vt>7,Nt[(Zt+Vt*jt)*4+1]=(Kt&992)>>2,Nt[(Zt+Vt*jt)*4+2]=(Kt&31)<<3,Nt[(Zt+Vt*jt)*4+3]=Kt&32768?0:255;return Nt}function it(Nt,Ot,Wt,Dt,Et,Pt,zt,en){let Kt=0,nn,Zt;const jt=St.width;for(Zt=Ot;Zt!==Dt;Zt+=Wt)for(nn=Et;nn!==zt;nn+=Pt,Kt+=3)Nt[(nn+jt*Zt)*4+3]=255,Nt[(nn+jt*Zt)*4+2]=en[Kt+0],Nt[(nn+jt*Zt)*4+1]=en[Kt+1],Nt[(nn+jt*Zt)*4+0]=en[Kt+2];return Nt}function ot(Nt,Ot,Wt,Dt,Et,Pt,zt,en){let Kt=0,nn,Zt;const jt=St.width;for(Zt=Ot;Zt!==Dt;Zt+=Wt)for(nn=Et;nn!==zt;nn+=Pt,Kt+=4)Nt[(nn+jt*Zt)*4+2]=en[Kt+0],Nt[(nn+jt*Zt)*4+1]=en[Kt+1],Nt[(nn+jt*Zt)*4+0]=en[Kt+2],Nt[(nn+jt*Zt)*4+3]=en[Kt+3];return Nt}function st(Nt,Ot,Wt,Dt,Et,Pt,zt,en){let Kt,nn=0,Zt,jt;const Vt=St.width;for(jt=Ot;jt!==Dt;jt+=Wt)for(Zt=Et;Zt!==zt;Zt+=Pt,nn++)Kt=en[nn],Nt[(Zt+Vt*jt)*4+0]=Kt,Nt[(Zt+Vt*jt)*4+1]=Kt,Nt[(Zt+Vt*jt)*4+2]=Kt,Nt[(Zt+Vt*jt)*4+3]=255;return Nt}function at(Nt,Ot,Wt,Dt,Et,Pt,zt,en){let Kt=0,nn,Zt;const jt=St.width;for(Zt=Ot;Zt!==Dt;Zt+=Wt)for(nn=Et;nn!==zt;nn+=Pt,Kt+=2)Nt[(nn+jt*Zt)*4+0]=en[Kt+0],Nt[(nn+jt*Zt)*4+1]=en[Kt+0],Nt[(nn+jt*Zt)*4+2]=en[Kt+0],Nt[(nn+jt*Zt)*4+3]=en[Kt+1];return Nt}function lt(Nt,Ot,Wt,Dt,Et){let Pt,zt,en,Kt,nn,Zt;switch((St.flags&yt)>>Ut){default:case vt:Pt=0,en=1,nn=Ot,zt=0,Kt=1,Zt=Wt;break;case Ft:Pt=0,en=1,nn=Ot,zt=Wt-1,Kt=-1,Zt=-1;break;case At:Pt=Ot-1,en=-1,nn=-1,zt=0,Kt=1,Zt=Wt;break;case mt:Pt=Ot-1,en=-1,nn=-1,zt=Wt-1,Kt=-1,Zt=-1;break}if(xt)switch(St.pixel_size){case 8:st(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;case 16:at(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;default:throw new Error("THREE.TGALoader: Format not supported.")}else switch(St.pixel_size){case 8:nt(Nt,zt,Kt,Zt,Pt,en,nn,Dt,Et);break;case 16:rt(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;case 24:it(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;case 32:ot(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;default:throw new Error("THREE.TGALoader: Format not supported.")}return Nt}const ut=0,dt=1,ht=2,ct=3,pt=9,ft=10,gt=11,yt=48,Ut=4,Ft=0,mt=1,vt=2,At=3;if(o.length<19)throw new Error("THREE.TGALoader: Not enough data to contain header.");let Lt=0;const Rt=new Uint8Array(o),St={id_length:Rt[Lt++],colormap_type:Rt[Lt++],image_type:Rt[Lt++],colormap_index:Rt[Lt++]|Rt[Lt++]<<8,colormap_length:Rt[Lt++]|Rt[Lt++]<<8,colormap_size:Rt[Lt++],origin:[Rt[Lt++]|Rt[Lt++]<<8,Rt[Lt++]|Rt[Lt++]<<8],width:Rt[Lt++]|Rt[Lt++]<<8,height:Rt[Lt++]|Rt[Lt++]<<8,pixel_size:Rt[Lt++],flags:Rt[Lt++]};if(et(St),St.id_length+Lt>o.length)throw new Error("THREE.TGALoader: No data.");Lt+=St.id_length;let Tt=!1,Bt=!1,xt=!1;switch(St.image_type){case pt:Tt=!0,Bt=!0;break;case dt:Bt=!0;break;case ft:Tt=!0;break;case ht:break;case gt:Tt=!0,xt=!0;break;case ct:xt=!0;break}const Ct=new Uint8Array(St.width*St.height*4),kt=tt(Tt,Bt,St,Lt,Rt);return lt(Ct,St.width,St.height,kt.pixel_data,kt.palettes),{data:Ct,width:St.width,height:St.height,flipY:!0,generateMipmaps:!0,minFilter:LinearMipmapLinearFilter}}}class ColladaLoader extends Loader{load(o,et,tt,nt){const rt=this,it=rt.path===""?LoaderUtils.extractUrlBase(o):rt.path,ot=new FileLoader(rt.manager);ot.setPath(rt.path),ot.setRequestHeader(rt.requestHeader),ot.setWithCredentials(rt.withCredentials),ot.load(o,function(st){try{et(rt.parse(st,it))}catch(at){nt?nt(at):console.error(at),rt.manager.itemError(o)}},tt,nt)}parse(o,et){function tt(Tn,En){const Dn=[],Mn=Tn.childNodes;for(let Jn=0,Vr=Mn.length;Jn0&&En.push(new VectorKeyframeTrack(Mn+".position",Jn,Vr)),Cr.length>0&&En.push(new QuaternionKeyframeTrack(Mn+".quaternion",Jn,Cr)),an.length>0&&En.push(new VectorKeyframeTrack(Mn+".scale",Jn,an)),En}function Tt(Tn,En,Dn){let Mn,Jn=!0,Vr,Cr;for(Vr=0,Cr=Tn.length;Vr=0;){const Mn=Tn[En];if(Mn.value[Dn]!==null)return Mn;En--}return null}function Ct(Tn,En,Dn){for(;En>>0)+2);switch(Dn=Dn.toLowerCase(),Dn){case"tga":En=Sl;break;default:En=Zs}return En}function Qr(Tn){const En=Pn(Tn.url),Dn=En.profile.technique;let Mn;switch(Dn.type){case"phong":case"blinn":Mn=new MeshPhongMaterial;break;case"lambert":Mn=new MeshLambertMaterial;break;default:Mn=new MeshBasicMaterial;break}Mn.name=Tn.name||"";function Jn(bn,Vn=null){const zn=En.profile.samplers[bn.id];let Hn=null;if(zn!==void 0){const ir=En.profile.surfaces[zn.source];Hn=Vt(ir.init_from)}else console.warn("THREE.ColladaLoader: Undefined sampler. Access image directly (see #12530)."),Hn=Vt(bn.id);if(Hn!==null){const ir=Tr(Hn);if(ir!==void 0){const Yn=ir.load(Hn),or=bn.extra;if(or!==void 0&&or.technique!==void 0&&at(or.technique)===!1){const Mr=or.technique;Yn.wrapS=Mr.wrapU?RepeatWrapping:ClampToEdgeWrapping,Yn.wrapT=Mr.wrapV?RepeatWrapping:ClampToEdgeWrapping,Yn.offset.set(Mr.offsetU||0,Mr.offsetV||0),Yn.repeat.set(Mr.repeatU||1,Mr.repeatV||1)}else Yn.wrapS=RepeatWrapping,Yn.wrapT=RepeatWrapping;return Vn!==null&&(Yn.colorSpace=Vn),Yn}else return console.warn("THREE.ColladaLoader: Loader for texture %s not found.",Hn),null}else return console.warn("THREE.ColladaLoader: Couldn't create texture with ID:",bn.id),null}const Vr=Dn.parameters;for(const bn in Vr){const Vn=Vr[bn];switch(bn){case"diffuse":Vn.color&&Mn.color.fromArray(Vn.color),Vn.texture&&(Mn.map=Jn(Vn.texture,SRGBColorSpace$1));break;case"specular":Vn.color&&Mn.specular&&Mn.specular.fromArray(Vn.color),Vn.texture&&(Mn.specularMap=Jn(Vn.texture));break;case"bump":Vn.texture&&(Mn.normalMap=Jn(Vn.texture));break;case"ambient":Vn.texture&&(Mn.lightMap=Jn(Vn.texture,SRGBColorSpace$1));break;case"shininess":Vn.float&&Mn.shininess&&(Mn.shininess=Vn.float);break;case"emission":Vn.color&&Mn.emissive&&Mn.emissive.fromArray(Vn.color),Vn.texture&&(Mn.emissiveMap=Jn(Vn.texture,SRGBColorSpace$1));break}}Mn.color.convertSRGBToLinear(),Mn.specular&&Mn.specular.convertSRGBToLinear(),Mn.emissive&&Mn.emissive.convertSRGBToLinear();let Cr=Vr.transparent,an=Vr.transparency;if(an===void 0&&Cr&&(an={float:1}),Cr===void 0&&an&&(Cr={opaque:"A_ONE",data:{color:[1,1,1,1]}}),Cr&&an)if(Cr.data.texture)Mn.transparent=!0;else{const bn=Cr.data.color;switch(Cr.opaque){case"A_ONE":Mn.opacity=bn[3]*an.float;break;case"RGB_ZERO":Mn.opacity=1-bn[0]*an.float;break;case"A_ZERO":Mn.opacity=1-bn[3]*an.float;break;case"RGB_ONE":Mn.opacity=bn[0]*an.float;break;default:console.warn('THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.',Cr.opaque)}Mn.opacity<1&&(Mn.transparent=!0)}if(Dn.extra!==void 0&&Dn.extra.technique!==void 0){const bn=Dn.extra.technique;for(const Vn in bn){const zn=bn[Vn];switch(Vn){case"double_sided":Mn.side=zn===1?DoubleSide:FrontSide;break;case"bump":Mn.normalMap=Jn(zn.texture),Mn.normalScale=new Vector2(1,1);break}}}return Mn}function _r(Tn){return pt(vo.materials[Tn],Qr)}function Ir(Tn){const En={name:Tn.getAttribute("name")};for(let Dn=0,Mn=Tn.childNodes.length;Dn0?Cr+bn:Cr;En.inputs[Vn]={id:Vr,offset:an},En.stride=Math.max(En.stride,an+1),Cr==="TEXCOORD"&&(En.hasUV=!0);break;case"vcount":En.vcount=it(Jn.textContent);break;case"p":En.p=it(Jn.textContent);break}}return En}function Fr(Tn){const En={};for(let Dn=0;Dn0&&En0&&Hn.setAttribute("position",new Float32BufferAttribute(Jn.array,Jn.stride)),Vr.array.length>0&&Hn.setAttribute("normal",new Float32BufferAttribute(Vr.array,Vr.stride)),bn.array.length>0&&Hn.setAttribute("color",new Float32BufferAttribute(bn.array,bn.stride)),Cr.array.length>0&&Hn.setAttribute("uv",new Float32BufferAttribute(Cr.array,Cr.stride)),an.array.length>0&&Hn.setAttribute("uv1",new Float32BufferAttribute(an.array,an.stride)),Vn.array.length>0&&Hn.setAttribute("skinIndex",new Float32BufferAttribute(Vn.array,Vn.stride)),zn.array.length>0&&Hn.setAttribute("skinWeight",new Float32BufferAttribute(zn.array,zn.stride)),Mn.data=Hn,Mn.type=Tn[0].type,Mn.materialKeys=ir,Mn}function ar(Tn,En,Dn,Mn,Jn=!1){const Vr=Tn.p,Cr=Tn.stride,an=Tn.vcount;function bn(Hn){let ir=Vr[Hn+Dn]*zn;const Yn=ir+zn;for(;ir4)for(let Mr=1,Jr=or-2;Mr<=Jr;Mr++){const Hr=Hn+Cr*0,co=Hn+Cr*Mr,_i=Hn+Cr*(Mr+1);bn(Hr),bn(co),bn(_i)}Hn+=Cr*or}}else for(let Hn=0,ir=Vr.length;Hn=En.limits.max&&(En.static=!0),En.middlePosition=(En.limits.min+En.limits.max)/2,En}function gr(Tn){const En={sid:Tn.getAttribute("sid"),name:Tn.getAttribute("name")||"",attachments:[],transforms:[]};for(let Dn=0;DnYn.limits.max||Hn>2,ht=(3&at)<<4|lt>>4,ct=1>6:64,pt=2>4,lt=(15&dt)<<4|(ht=ot.indexOf(st.charAt(pt++)))>>2,ut=(3&ht)<<6|(ct=ot.indexOf(st.charAt(pt++))),yt[ft++]=at,ht!==64&&(yt[ft++]=lt),ct!==64&&(yt[ft++]=ut);return yt}},{"./support":30,"./utils":32}],2:[function(et,tt,nt){var rt=et("./external"),it=et("./stream/DataWorker"),ot=et("./stream/Crc32Probe"),st=et("./stream/DataLengthProbe");function at(lt,ut,dt,ht,ct){this.compressedSize=lt,this.uncompressedSize=ut,this.crc32=dt,this.compression=ht,this.compressedContent=ct}at.prototype={getContentWorker:function(){var lt=new it(rt.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new st("data_length")),ut=this;return lt.on("end",function(){if(this.streamInfo.data_length!==ut.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),lt},getCompressedWorker:function(){return new it(rt.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},at.createWorkerFrom=function(lt,ut,dt){return lt.pipe(new ot).pipe(new st("uncompressedSize")).pipe(ut.compressWorker(dt)).pipe(new st("compressedSize")).withStreamInfo("compression",ut)},tt.exports=at},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(et,tt,nt){var rt=et("./stream/GenericWorker");nt.STORE={magic:"\0\0",compressWorker:function(){return new rt("STORE compression")},uncompressWorker:function(){return new rt("STORE decompression")}},nt.DEFLATE=et("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(et,tt,nt){var rt=et("./utils"),it=function(){for(var ot,st=[],at=0;at<256;at++){ot=at;for(var lt=0;lt<8;lt++)ot=1&ot?3988292384^ot>>>1:ot>>>1;st[at]=ot}return st}();tt.exports=function(ot,st){return ot!==void 0&&ot.length?rt.getTypeOf(ot)!=="string"?function(at,lt,ut,dt){var ht=it,ct=dt+ut;at^=-1;for(var pt=dt;pt>>8^ht[255&(at^lt[pt])];return-1^at}(0|st,ot,ot.length,0):function(at,lt,ut,dt){var ht=it,ct=dt+ut;at^=-1;for(var pt=dt;pt>>8^ht[255&(at^lt.charCodeAt(pt))];return-1^at}(0|st,ot,ot.length,0):0}},{"./utils":32}],5:[function(et,tt,nt){nt.base64=!1,nt.binary=!1,nt.dir=!1,nt.createFolders=!0,nt.date=null,nt.compression=null,nt.compressionOptions=null,nt.comment=null,nt.unixPermissions=null,nt.dosPermissions=null},{}],6:[function(et,tt,nt){var rt=null;rt=typeof Promise<"u"?Promise:et("lie"),tt.exports={Promise:rt}},{lie:37}],7:[function(et,tt,nt){var rt=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",it=et("pako"),ot=et("./utils"),st=et("./stream/GenericWorker"),at=rt?"uint8array":"array";function lt(ut,dt){st.call(this,"FlateWorker/"+ut),this._pako=null,this._pakoAction=ut,this._pakoOptions=dt,this.meta={}}nt.magic="\b\0",ot.inherits(lt,st),lt.prototype.processChunk=function(ut){this.meta=ut.meta,this._pako===null&&this._createPako(),this._pako.push(ot.transformTo(at,ut.data),!1)},lt.prototype.flush=function(){st.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},lt.prototype.cleanUp=function(){st.prototype.cleanUp.call(this),this._pako=null},lt.prototype._createPako=function(){this._pako=new it[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var ut=this;this._pako.onData=function(dt){ut.push({data:dt,meta:ut.meta})}},nt.compressWorker=function(ut){return new lt("Deflate",ut)},nt.uncompressWorker=function(){return new lt("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(et,tt,nt){function rt(ht,ct){var pt,ft="";for(pt=0;pt>>=8;return ft}function it(ht,ct,pt,ft,gt,yt){var Ut,Ft,mt=ht.file,vt=ht.compression,At=yt!==at.utf8encode,Lt=ot.transformTo("string",yt(mt.name)),Rt=ot.transformTo("string",at.utf8encode(mt.name)),St=mt.comment,Tt=ot.transformTo("string",yt(St)),Bt=ot.transformTo("string",at.utf8encode(St)),xt=Rt.length!==mt.name.length,Ct=Bt.length!==St.length,kt="",Nt="",Ot="",Jt=mt.dir,Dt=mt.date,Et={crc32:0,compressedSize:0,uncompressedSize:0};ct&&!pt||(Et.crc32=ht.crc32,Et.compressedSize=ht.compressedSize,Et.uncompressedSize=ht.uncompressedSize);var Pt=0;ct&&(Pt|=8),At||!xt&&!Ct||(Pt|=2048);var zt=0,en=0;Jt&&(zt|=16),gt==="UNIX"?(en=798,zt|=function(nn,Zt){var jt=nn;return nn||(jt=Zt?16893:33204),(65535&jt)<<16}(mt.unixPermissions,Jt)):(en=20,zt|=function(nn){return 63&(nn||0)}(mt.dosPermissions)),Ut=Dt.getUTCHours(),Ut<<=6,Ut|=Dt.getUTCMinutes(),Ut<<=5,Ut|=Dt.getUTCSeconds()/2,Ft=Dt.getUTCFullYear()-1980,Ft<<=4,Ft|=Dt.getUTCMonth()+1,Ft<<=5,Ft|=Dt.getUTCDate(),xt&&(Nt=rt(1,1)+rt(lt(Lt),4)+Rt,kt+="up"+rt(Nt.length,2)+Nt),Ct&&(Ot=rt(1,1)+rt(lt(Tt),4)+Bt,kt+="uc"+rt(Ot.length,2)+Ot);var Kt="";return Kt+=` +\0`,Kt+=rt(Pt,2),Kt+=vt.magic,Kt+=rt(Ut,2),Kt+=rt(Ft,2),Kt+=rt(Et.crc32,4),Kt+=rt(Et.compressedSize,4),Kt+=rt(Et.uncompressedSize,4),Kt+=rt(Lt.length,2),Kt+=rt(kt.length,2),{fileRecord:ut.LOCAL_FILE_HEADER+Kt+Lt+kt,dirRecord:ut.CENTRAL_FILE_HEADER+rt(en,2)+Kt+rt(Tt.length,2)+"\0\0\0\0"+rt(zt,4)+rt(ft,4)+Lt+kt+Tt}}var ot=et("../utils"),st=et("../stream/GenericWorker"),at=et("../utf8"),lt=et("../crc32"),ut=et("../signature");function dt(ht,ct,pt,ft){st.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=ct,this.zipPlatform=pt,this.encodeFileName=ft,this.streamFiles=ht,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}ot.inherits(dt,st),dt.prototype.push=function(ht){var ct=ht.meta.percent||0,pt=this.entriesCount,ft=this._sources.length;this.accumulate?this.contentBuffer.push(ht):(this.bytesWritten+=ht.data.length,st.prototype.push.call(this,{data:ht.data,meta:{currentFile:this.currentFile,percent:pt?(ct+100*(pt-ft-1))/pt:100}}))},dt.prototype.openedSource=function(ht){this.currentSourceOffset=this.bytesWritten,this.currentFile=ht.file.name;var ct=this.streamFiles&&!ht.file.dir;if(ct){var pt=it(ht,ct,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:pt.fileRecord,meta:{percent:0}})}else this.accumulate=!0},dt.prototype.closedSource=function(ht){this.accumulate=!1;var ct=this.streamFiles&&!ht.file.dir,pt=it(ht,ct,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(pt.dirRecord),ct)this.push({data:function(ft){return ut.DATA_DESCRIPTOR+rt(ft.crc32,4)+rt(ft.compressedSize,4)+rt(ft.uncompressedSize,4)}(ht),meta:{percent:100}});else for(this.push({data:pt.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},dt.prototype.flush=function(){for(var ht=this.bytesWritten,ct=0;ct=this.index;st--)at=(at<<8)+this.byteAt(st);return this.index+=ot,at},readString:function(ot){return rt.transformTo("string",this.readData(ot))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var ot=this.readInt(4);return new Date(Date.UTC(1980+(ot>>25&127),(ot>>21&15)-1,ot>>16&31,ot>>11&31,ot>>5&63,(31&ot)<<1))}},tt.exports=it},{"../utils":32}],19:[function(et,tt,nt){var rt=et("./Uint8ArrayReader");function it(ot){rt.call(this,ot)}et("../utils").inherits(it,rt),it.prototype.readData=function(ot){this.checkOffset(ot);var st=this.data.slice(this.zero+this.index,this.zero+this.index+ot);return this.index+=ot,st},tt.exports=it},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(et,tt,nt){var rt=et("./DataReader");function it(ot){rt.call(this,ot)}et("../utils").inherits(it,rt),it.prototype.byteAt=function(ot){return this.data.charCodeAt(this.zero+ot)},it.prototype.lastIndexOfSignature=function(ot){return this.data.lastIndexOf(ot)-this.zero},it.prototype.readAndCheckSignature=function(ot){return ot===this.readData(4)},it.prototype.readData=function(ot){this.checkOffset(ot);var st=this.data.slice(this.zero+this.index,this.zero+this.index+ot);return this.index+=ot,st},tt.exports=it},{"../utils":32,"./DataReader":18}],21:[function(et,tt,nt){var rt=et("./ArrayReader");function it(ot){rt.call(this,ot)}et("../utils").inherits(it,rt),it.prototype.readData=function(ot){if(this.checkOffset(ot),ot===0)return new Uint8Array(0);var st=this.data.subarray(this.zero+this.index,this.zero+this.index+ot);return this.index+=ot,st},tt.exports=it},{"../utils":32,"./ArrayReader":17}],22:[function(et,tt,nt){var rt=et("../utils"),it=et("../support"),ot=et("./ArrayReader"),st=et("./StringReader"),at=et("./NodeBufferReader"),lt=et("./Uint8ArrayReader");tt.exports=function(ut){var dt=rt.getTypeOf(ut);return rt.checkSupport(dt),dt!=="string"||it.uint8array?dt==="nodebuffer"?new at(ut):it.uint8array?new lt(rt.transformTo("uint8array",ut)):new ot(rt.transformTo("array",ut)):new st(ut)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(et,tt,nt){nt.LOCAL_FILE_HEADER="PK",nt.CENTRAL_FILE_HEADER="PK",nt.CENTRAL_DIRECTORY_END="PK",nt.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",nt.ZIP64_CENTRAL_DIRECTORY_END="PK",nt.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(et,tt,nt){var rt=et("./GenericWorker"),it=et("../utils");function ot(st){rt.call(this,"ConvertWorker to "+st),this.destType=st}it.inherits(ot,rt),ot.prototype.processChunk=function(st){this.push({data:it.transformTo(this.destType,st.data),meta:st.meta})},tt.exports=ot},{"../utils":32,"./GenericWorker":28}],25:[function(et,tt,nt){var rt=et("./GenericWorker"),it=et("../crc32");function ot(){rt.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}et("../utils").inherits(ot,rt),ot.prototype.processChunk=function(st){this.streamInfo.crc32=it(st.data,this.streamInfo.crc32||0),this.push(st)},tt.exports=ot},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(et,tt,nt){var rt=et("../utils"),it=et("./GenericWorker");function ot(st){it.call(this,"DataLengthProbe for "+st),this.propName=st,this.withStreamInfo(st,0)}rt.inherits(ot,it),ot.prototype.processChunk=function(st){if(st){var at=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=at+st.data.length}it.prototype.processChunk.call(this,st)},tt.exports=ot},{"../utils":32,"./GenericWorker":28}],27:[function(et,tt,nt){var rt=et("../utils"),it=et("./GenericWorker");function ot(st){it.call(this,"DataWorker");var at=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,st.then(function(lt){at.dataIsReady=!0,at.data=lt,at.max=lt&<.length||0,at.type=rt.getTypeOf(lt),at.isPaused||at._tickAndRepeat()},function(lt){at.error(lt)})}rt.inherits(ot,it),ot.prototype.cleanUp=function(){it.prototype.cleanUp.call(this),this.data=null},ot.prototype.resume=function(){return!!it.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,rt.delay(this._tickAndRepeat,[],this)),!0)},ot.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(rt.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},ot.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var st=null,at=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":st=this.data.substring(this.index,at);break;case"uint8array":st=this.data.subarray(this.index,at);break;case"array":case"nodebuffer":st=this.data.slice(this.index,at)}return this.index=at,this.push({data:st,meta:{percent:this.max?this.index/this.max*100:0}})},tt.exports=ot},{"../utils":32,"./GenericWorker":28}],28:[function(et,tt,nt){function rt(it){this.name=it||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}rt.prototype={push:function(it){this.emit("data",it)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(it){this.emit("error",it)}return!0},error:function(it){return!this.isFinished&&(this.isPaused?this.generatedError=it:(this.isFinished=!0,this.emit("error",it),this.previous&&this.previous.error(it),this.cleanUp()),!0)},on:function(it,ot){return this._listeners[it].push(ot),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(it,ot){if(this._listeners[it])for(var st=0;st "+it:it}},tt.exports=rt},{}],29:[function(et,tt,nt){var rt=et("../utils"),it=et("./ConvertWorker"),ot=et("./GenericWorker"),st=et("../base64"),at=et("../support"),lt=et("../external"),ut=null;if(at.nodestream)try{ut=et("../nodejs/NodejsStreamOutputAdapter")}catch{}function dt(ct,pt){return new lt.Promise(function(ft,gt){var yt=[],Ut=ct._internalType,Ft=ct._outputType,mt=ct._mimeType;ct.on("data",function(vt,At){yt.push(vt),pt&&pt(At)}).on("error",function(vt){yt=[],gt(vt)}).on("end",function(){try{var vt=function(At,Lt,Rt){switch(At){case"blob":return rt.newBlob(rt.transformTo("arraybuffer",Lt),Rt);case"base64":return st.encode(Lt);default:return rt.transformTo(At,Lt)}}(Ft,function(At,Lt){var Rt,St=0,Tt=null,Bt=0;for(Rt=0;Rt"u")nt.blob=!1;else{var rt=new ArrayBuffer(0);try{nt.blob=new Blob([rt],{type:"application/zip"}).size===0}catch{try{var it=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);it.append(rt),nt.blob=it.getBlob("application/zip").size===0}catch{nt.blob=!1}}}try{nt.nodestream=!!et("readable-stream").Readable}catch{nt.nodestream=!1}},{"readable-stream":16}],31:[function(et,tt,nt){for(var rt=et("./utils"),it=et("./support"),ot=et("./nodejsUtils"),st=et("./stream/GenericWorker"),at=new Array(256),lt=0;lt<256;lt++)at[lt]=252<=lt?6:248<=lt?5:240<=lt?4:224<=lt?3:192<=lt?2:1;at[254]=at[254]=1;function ut(){st.call(this,"utf-8 decode"),this.leftOver=null}function dt(){st.call(this,"utf-8 encode")}nt.utf8encode=function(ht){return it.nodebuffer?ot.newBufferFrom(ht,"utf-8"):function(ct){var pt,ft,gt,yt,Ut,Ft=ct.length,mt=0;for(yt=0;yt>>6:(ft<65536?pt[Ut++]=224|ft>>>12:(pt[Ut++]=240|ft>>>18,pt[Ut++]=128|ft>>>12&63),pt[Ut++]=128|ft>>>6&63),pt[Ut++]=128|63&ft);return pt}(ht)},nt.utf8decode=function(ht){return it.nodebuffer?rt.transformTo("nodebuffer",ht).toString("utf-8"):function(ct){var pt,ft,gt,yt,Ut=ct.length,Ft=new Array(2*Ut);for(pt=ft=0;pt>10&1023,Ft[ft++]=56320|1023>)}return Ft.length!==ft&&(Ft.subarray?Ft=Ft.subarray(0,ft):Ft.length=ft),rt.applyFromCharCode(Ft)}(ht=rt.transformTo(it.uint8array?"uint8array":"array",ht))},rt.inherits(ut,st),ut.prototype.processChunk=function(ht){var ct=rt.transformTo(it.uint8array?"uint8array":"array",ht.data);if(this.leftOver&&this.leftOver.length){if(it.uint8array){var pt=ct;(ct=new Uint8Array(pt.length+this.leftOver.length)).set(this.leftOver,0),ct.set(pt,this.leftOver.length)}else ct=this.leftOver.concat(ct);this.leftOver=null}var ft=function(yt,Ut){var Ft;for((Ut=Ut||yt.length)>yt.length&&(Ut=yt.length),Ft=Ut-1;0<=Ft&&(192&yt[Ft])==128;)Ft--;return Ft<0||Ft===0?Ut:Ft+at[yt[Ft]]>Ut?Ft:Ut}(ct),gt=ct;ft!==ct.length&&(it.uint8array?(gt=ct.subarray(0,ft),this.leftOver=ct.subarray(ft,ct.length)):(gt=ct.slice(0,ft),this.leftOver=ct.slice(ft,ct.length))),this.push({data:nt.utf8decode(gt),meta:ht.meta})},ut.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:nt.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},nt.Utf8DecodeWorker=ut,rt.inherits(dt,st),dt.prototype.processChunk=function(ht){this.push({data:nt.utf8encode(ht.data),meta:ht.meta})},nt.Utf8EncodeWorker=dt},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(et,tt,nt){var rt=et("./support"),it=et("./base64"),ot=et("./nodejsUtils"),st=et("./external");function at(pt){return pt}function lt(pt,ft){for(var gt=0;gt>8;this.dir=!!(16&this.externalFileAttributes),ht==0&&(this.dosPermissions=63&this.externalFileAttributes),ht==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var ht=rt(this.extraFields[1].value);this.uncompressedSize===it.MAX_VALUE_32BITS&&(this.uncompressedSize=ht.readInt(8)),this.compressedSize===it.MAX_VALUE_32BITS&&(this.compressedSize=ht.readInt(8)),this.localHeaderOffset===it.MAX_VALUE_32BITS&&(this.localHeaderOffset=ht.readInt(8)),this.diskNumberStart===it.MAX_VALUE_32BITS&&(this.diskNumberStart=ht.readInt(4))}},readExtraFields:function(ht){var ct,pt,ft,gt=ht.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});ht.index+4>>6:(ht<65536?dt[ft++]=224|ht>>>12:(dt[ft++]=240|ht>>>18,dt[ft++]=128|ht>>>12&63),dt[ft++]=128|ht>>>6&63),dt[ft++]=128|63&ht);return dt},nt.buf2binstring=function(ut){return lt(ut,ut.length)},nt.binstring2buf=function(ut){for(var dt=new rt.Buf8(ut.length),ht=0,ct=dt.length;ht>10&1023,yt[ct++]=56320|1023&pt)}return lt(yt,ct)},nt.utf8border=function(ut,dt){var ht;for((dt=dt||ut.length)>ut.length&&(dt=ut.length),ht=dt-1;0<=ht&&(192&ut[ht])==128;)ht--;return ht<0||ht===0?dt:ht+st[ut[ht]]>dt?ht:dt}},{"./common":41}],43:[function(et,tt,nt){tt.exports=function(rt,it,ot,st){for(var at=65535&rt|0,lt=rt>>>16&65535|0,ut=0;ot!==0;){for(ot-=ut=2e3>>1:it>>>1;ot[st]=it}return ot}();tt.exports=function(it,ot,st,at){var lt=rt,ut=at+st;it^=-1;for(var dt=at;dt>>8^lt[255&(it^ot[dt])];return-1^it}},{}],46:[function(et,tt,nt){var rt,it=et("../utils/common"),ot=et("./trees"),st=et("./adler32"),at=et("./crc32"),lt=et("./messages"),ut=0,dt=4,ht=0,ct=-2,pt=-1,ft=4,gt=2,yt=8,Ut=9,Ft=286,mt=30,vt=19,At=2*Ft+1,Lt=15,Rt=3,St=258,Tt=St+Rt+1,Bt=42,xt=113,Ct=1,kt=2,Nt=3,Ot=4;function Jt(Xt,dn){return Xt.msg=lt[dn],dn}function Dt(Xt){return(Xt<<1)-(4Xt.avail_out&&(_n=Xt.avail_out),_n!==0&&(it.arraySet(Xt.output,dn.pending_buf,dn.pending_out,_n,Xt.next_out),Xt.next_out+=_n,dn.pending_out+=_n,Xt.total_out+=_n,Xt.avail_out-=_n,dn.pending-=_n,dn.pending===0&&(dn.pending_out=0))}function zt(Xt,dn){ot._tr_flush_block(Xt,0<=Xt.block_start?Xt.block_start:-1,Xt.strstart-Xt.block_start,dn),Xt.block_start=Xt.strstart,Pt(Xt.strm)}function en(Xt,dn){Xt.pending_buf[Xt.pending++]=dn}function Kt(Xt,dn){Xt.pending_buf[Xt.pending++]=dn>>>8&255,Xt.pending_buf[Xt.pending++]=255&dn}function nn(Xt,dn){var _n,Fn,Un=Xt.max_chain_length,On=Xt.strstart,gn=Xt.prev_length,hn=Xt.nice_match,wn=Xt.strstart>Xt.w_size-Tt?Xt.strstart-(Xt.w_size-Tt):0,Zn=Xt.window,Pn=Xt.w_mask,$n=Xt.prev,Tr=Xt.strstart+St,Qr=Zn[On+gn-1],_r=Zn[On+gn];Xt.prev_length>=Xt.good_match&&(Un>>=2),hn>Xt.lookahead&&(hn=Xt.lookahead);do if(Zn[(_n=dn)+gn]===_r&&Zn[_n+gn-1]===Qr&&Zn[_n]===Zn[On]&&Zn[++_n]===Zn[On+1]){On+=2,_n++;do;while(Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Zn[++On]===Zn[++_n]&&Onwn&&--Un!=0);return gn<=Xt.lookahead?gn:Xt.lookahead}function Zt(Xt){var dn,_n,Fn,Un,On,gn,hn,wn,Zn,Pn,$n=Xt.w_size;do{if(Un=Xt.window_size-Xt.lookahead-Xt.strstart,Xt.strstart>=$n+($n-Tt)){for(it.arraySet(Xt.window,Xt.window,$n,$n,0),Xt.match_start-=$n,Xt.strstart-=$n,Xt.block_start-=$n,dn=_n=Xt.hash_size;Fn=Xt.head[--dn],Xt.head[dn]=$n<=Fn?Fn-$n:0,--_n;);for(dn=_n=$n;Fn=Xt.prev[--dn],Xt.prev[dn]=$n<=Fn?Fn-$n:0,--_n;);Un+=$n}if(Xt.strm.avail_in===0)break;if(gn=Xt.strm,hn=Xt.window,wn=Xt.strstart+Xt.lookahead,Zn=Un,Pn=void 0,Pn=gn.avail_in,Zn=Rt)for(On=Xt.strstart-Xt.insert,Xt.ins_h=Xt.window[On],Xt.ins_h=(Xt.ins_h<=Rt&&(Xt.ins_h=(Xt.ins_h<=Rt)if(Fn=ot._tr_tally(Xt,Xt.strstart-Xt.match_start,Xt.match_length-Rt),Xt.lookahead-=Xt.match_length,Xt.match_length<=Xt.max_lazy_match&&Xt.lookahead>=Rt){for(Xt.match_length--;Xt.strstart++,Xt.ins_h=(Xt.ins_h<=Rt&&(Xt.ins_h=(Xt.ins_h<=Rt&&Xt.match_length<=Xt.prev_length){for(Un=Xt.strstart+Xt.lookahead-Rt,Fn=ot._tr_tally(Xt,Xt.strstart-1-Xt.prev_match,Xt.prev_length-Rt),Xt.lookahead-=Xt.prev_length-1,Xt.prev_length-=2;++Xt.strstart<=Un&&(Xt.ins_h=(Xt.ins_h<Xt.pending_buf_size-5&&(_n=Xt.pending_buf_size-5);;){if(Xt.lookahead<=1){if(Zt(Xt),Xt.lookahead===0&&dn===ut)return Ct;if(Xt.lookahead===0)break}Xt.strstart+=Xt.lookahead,Xt.lookahead=0;var Fn=Xt.block_start+_n;if((Xt.strstart===0||Xt.strstart>=Fn)&&(Xt.lookahead=Xt.strstart-Fn,Xt.strstart=Fn,zt(Xt,!1),Xt.strm.avail_out===0)||Xt.strstart-Xt.block_start>=Xt.w_size-Tt&&(zt(Xt,!1),Xt.strm.avail_out===0))return Ct}return Xt.insert=0,dn===dt?(zt(Xt,!0),Xt.strm.avail_out===0?Nt:Ot):(Xt.strstart>Xt.block_start&&(zt(Xt,!1),Xt.strm.avail_out),Ct)}),new It(4,4,8,4,jt),new It(4,5,16,8,jt),new It(4,6,32,32,jt),new It(4,4,16,16,Vt),new It(8,16,32,32,Vt),new It(8,16,128,128,Vt),new It(8,32,128,256,Vt),new It(32,128,258,1024,Vt),new It(32,258,258,4096,Vt)],nt.deflateInit=function(Xt,dn){return on(Xt,dn,yt,15,8,0)},nt.deflateInit2=on,nt.deflateReset=qt,nt.deflateResetKeep=Ht,nt.deflateSetHeader=function(Xt,dn){return Xt&&Xt.state?Xt.state.wrap!==2?ct:(Xt.state.gzhead=dn,ht):ct},nt.deflate=function(Xt,dn){var _n,Fn,Un,On;if(!Xt||!Xt.state||5>8&255),en(Fn,Fn.gzhead.time>>16&255),en(Fn,Fn.gzhead.time>>24&255),en(Fn,Fn.level===9?2:2<=Fn.strategy||Fn.level<2?4:0),en(Fn,255&Fn.gzhead.os),Fn.gzhead.extra&&Fn.gzhead.extra.length&&(en(Fn,255&Fn.gzhead.extra.length),en(Fn,Fn.gzhead.extra.length>>8&255)),Fn.gzhead.hcrc&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending,0)),Fn.gzindex=0,Fn.status=69):(en(Fn,0),en(Fn,0),en(Fn,0),en(Fn,0),en(Fn,0),en(Fn,Fn.level===9?2:2<=Fn.strategy||Fn.level<2?4:0),en(Fn,3),Fn.status=xt);else{var gn=yt+(Fn.w_bits-8<<4)<<8;gn|=(2<=Fn.strategy||Fn.level<2?0:Fn.level<6?1:Fn.level===6?2:3)<<6,Fn.strstart!==0&&(gn|=32),gn+=31-gn%31,Fn.status=xt,Kt(Fn,gn),Fn.strstart!==0&&(Kt(Fn,Xt.adler>>>16),Kt(Fn,65535&Xt.adler)),Xt.adler=1}if(Fn.status===69)if(Fn.gzhead.extra){for(Un=Fn.pending;Fn.gzindex<(65535&Fn.gzhead.extra.length)&&(Fn.pending!==Fn.pending_buf_size||(Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Pt(Xt),Un=Fn.pending,Fn.pending!==Fn.pending_buf_size));)en(Fn,255&Fn.gzhead.extra[Fn.gzindex]),Fn.gzindex++;Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Fn.gzindex===Fn.gzhead.extra.length&&(Fn.gzindex=0,Fn.status=73)}else Fn.status=73;if(Fn.status===73)if(Fn.gzhead.name){Un=Fn.pending;do{if(Fn.pending===Fn.pending_buf_size&&(Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Pt(Xt),Un=Fn.pending,Fn.pending===Fn.pending_buf_size)){On=1;break}On=Fn.gzindexUn&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),On===0&&(Fn.gzindex=0,Fn.status=91)}else Fn.status=91;if(Fn.status===91)if(Fn.gzhead.comment){Un=Fn.pending;do{if(Fn.pending===Fn.pending_buf_size&&(Fn.gzhead.hcrc&&Fn.pending>Un&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),Pt(Xt),Un=Fn.pending,Fn.pending===Fn.pending_buf_size)){On=1;break}On=Fn.gzindexUn&&(Xt.adler=at(Xt.adler,Fn.pending_buf,Fn.pending-Un,Un)),On===0&&(Fn.status=103)}else Fn.status=103;if(Fn.status===103&&(Fn.gzhead.hcrc?(Fn.pending+2>Fn.pending_buf_size&&Pt(Xt),Fn.pending+2<=Fn.pending_buf_size&&(en(Fn,255&Xt.adler),en(Fn,Xt.adler>>8&255),Xt.adler=0,Fn.status=xt)):Fn.status=xt),Fn.pending!==0){if(Pt(Xt),Xt.avail_out===0)return Fn.last_flush=-1,ht}else if(Xt.avail_in===0&&Dt(dn)<=Dt(_n)&&dn!==dt)return Jt(Xt,-5);if(Fn.status===666&&Xt.avail_in!==0)return Jt(Xt,-5);if(Xt.avail_in!==0||Fn.lookahead!==0||dn!==ut&&Fn.status!==666){var hn=Fn.strategy===2?function(wn,Zn){for(var Pn;;){if(wn.lookahead===0&&(Zt(wn),wn.lookahead===0)){if(Zn===ut)return Ct;break}if(wn.match_length=0,Pn=ot._tr_tally(wn,0,wn.window[wn.strstart]),wn.lookahead--,wn.strstart++,Pn&&(zt(wn,!1),wn.strm.avail_out===0))return Ct}return wn.insert=0,Zn===dt?(zt(wn,!0),wn.strm.avail_out===0?Nt:Ot):wn.last_lit&&(zt(wn,!1),wn.strm.avail_out===0)?Ct:kt}(Fn,dn):Fn.strategy===3?function(wn,Zn){for(var Pn,$n,Tr,Qr,_r=wn.window;;){if(wn.lookahead<=St){if(Zt(wn),wn.lookahead<=St&&Zn===ut)return Ct;if(wn.lookahead===0)break}if(wn.match_length=0,wn.lookahead>=Rt&&0wn.lookahead&&(wn.match_length=wn.lookahead)}if(wn.match_length>=Rt?(Pn=ot._tr_tally(wn,1,wn.match_length-Rt),wn.lookahead-=wn.match_length,wn.strstart+=wn.match_length,wn.match_length=0):(Pn=ot._tr_tally(wn,0,wn.window[wn.strstart]),wn.lookahead--,wn.strstart++),Pn&&(zt(wn,!1),wn.strm.avail_out===0))return Ct}return wn.insert=0,Zn===dt?(zt(wn,!0),wn.strm.avail_out===0?Nt:Ot):wn.last_lit&&(zt(wn,!1),wn.strm.avail_out===0)?Ct:kt}(Fn,dn):rt[Fn.level].func(Fn,dn);if(hn!==Nt&&hn!==Ot||(Fn.status=666),hn===Ct||hn===Nt)return Xt.avail_out===0&&(Fn.last_flush=-1),ht;if(hn===kt&&(dn===1?ot._tr_align(Fn):dn!==5&&(ot._tr_stored_block(Fn,0,0,!1),dn===3&&(Et(Fn.head),Fn.lookahead===0&&(Fn.strstart=0,Fn.block_start=0,Fn.insert=0))),Pt(Xt),Xt.avail_out===0))return Fn.last_flush=-1,ht}return dn!==dt?ht:Fn.wrap<=0?1:(Fn.wrap===2?(en(Fn,255&Xt.adler),en(Fn,Xt.adler>>8&255),en(Fn,Xt.adler>>16&255),en(Fn,Xt.adler>>24&255),en(Fn,255&Xt.total_in),en(Fn,Xt.total_in>>8&255),en(Fn,Xt.total_in>>16&255),en(Fn,Xt.total_in>>24&255)):(Kt(Fn,Xt.adler>>>16),Kt(Fn,65535&Xt.adler)),Pt(Xt),0=_n.w_size&&(On===0&&(Et(_n.head),_n.strstart=0,_n.block_start=0,_n.insert=0),Zn=new it.Buf8(_n.w_size),it.arraySet(Zn,dn,Pn-_n.w_size,_n.w_size,0),dn=Zn,Pn=_n.w_size),gn=Xt.avail_in,hn=Xt.next_in,wn=Xt.input,Xt.avail_in=Pn,Xt.next_in=0,Xt.input=dn,Zt(_n);_n.lookahead>=Rt;){for(Fn=_n.strstart,Un=_n.lookahead-(Rt-1);_n.ins_h=(_n.ins_h<<_n.hash_shift^_n.window[Fn+Rt-1])&_n.hash_mask,_n.prev[Fn&_n.w_mask]=_n.head[_n.ins_h],_n.head[_n.ins_h]=Fn,Fn++,--Un;);_n.strstart=Fn,_n.lookahead=Rt-1,Zt(_n)}return _n.strstart+=_n.lookahead,_n.block_start=_n.strstart,_n.insert=_n.lookahead,_n.lookahead=0,_n.match_length=_n.prev_length=Rt-1,_n.match_available=0,Xt.next_in=hn,Xt.input=wn,Xt.avail_in=gn,_n.wrap=On,ht},nt.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(et,tt,nt){tt.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(et,tt,nt){tt.exports=function(rt,it){var ot,st,at,lt,ut,dt,ht,ct,pt,ft,gt,yt,Ut,Ft,mt,vt,At,Lt,Rt,St,Tt,Bt,xt,Ct,kt;ot=rt.state,st=rt.next_in,Ct=rt.input,at=st+(rt.avail_in-5),lt=rt.next_out,kt=rt.output,ut=lt-(it-rt.avail_out),dt=lt+(rt.avail_out-257),ht=ot.dmax,ct=ot.wsize,pt=ot.whave,ft=ot.wnext,gt=ot.window,yt=ot.hold,Ut=ot.bits,Ft=ot.lencode,mt=ot.distcode,vt=(1<>>=Rt=Lt>>>24,Ut-=Rt,(Rt=Lt>>>16&255)===0)kt[lt++]=65535≪else{if(!(16&Rt)){if(!(64&Rt)){Lt=Ft[(65535&Lt)+(yt&(1<>>=Rt,Ut-=Rt),Ut<15&&(yt+=Ct[st++]<>>=Rt=Lt>>>24,Ut-=Rt,!(16&(Rt=Lt>>>16&255))){if(!(64&Rt)){Lt=mt[(65535&Lt)+(yt&(1<>>=Rt,Ut-=Rt,(Rt=lt-ut)>3,yt&=(1<<(Ut-=St<<3))-1,rt.next_in=st,rt.next_out=lt,rt.avail_in=st>>24&255)+(Bt>>>8&65280)+((65280&Bt)<<8)+((255&Bt)<<24)}function yt(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new rt.Buf16(320),this.work=new rt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Ut(Bt){var xt;return Bt&&Bt.state?(xt=Bt.state,Bt.total_in=Bt.total_out=xt.total=0,Bt.msg="",xt.wrap&&(Bt.adler=1&xt.wrap),xt.mode=ct,xt.last=0,xt.havedict=0,xt.dmax=32768,xt.head=null,xt.hold=0,xt.bits=0,xt.lencode=xt.lendyn=new rt.Buf32(pt),xt.distcode=xt.distdyn=new rt.Buf32(ft),xt.sane=1,xt.back=-1,dt):ht}function Ft(Bt){var xt;return Bt&&Bt.state?((xt=Bt.state).wsize=0,xt.whave=0,xt.wnext=0,Ut(Bt)):ht}function mt(Bt,xt){var Ct,kt;return Bt&&Bt.state?(kt=Bt.state,xt<0?(Ct=0,xt=-xt):(Ct=1+(xt>>4),xt<48&&(xt&=15)),xt&&(xt<8||15=Ot.wsize?(rt.arraySet(Ot.window,xt,Ct-Ot.wsize,Ot.wsize,0),Ot.wnext=0,Ot.whave=Ot.wsize):(kt<(Nt=Ot.wsize-Ot.wnext)&&(Nt=kt),rt.arraySet(Ot.window,xt,Ct-kt,Nt,Ot.wnext),(kt-=Nt)?(rt.arraySet(Ot.window,xt,Ct-kt,kt,0),Ot.wnext=kt,Ot.whave=Ot.wsize):(Ot.wnext+=Nt,Ot.wnext===Ot.wsize&&(Ot.wnext=0),Ot.whave>>8&255,Ct.check=ot(Ct.check,On,2,0),zt=Pt=0,Ct.mode=2;break}if(Ct.flags=0,Ct.head&&(Ct.head.done=!1),!(1&Ct.wrap)||(((255&Pt)<<8)+(Pt>>8))%31){Bt.msg="incorrect header check",Ct.mode=30;break}if((15&Pt)!=8){Bt.msg="unknown compression method",Ct.mode=30;break}if(zt-=4,Xt=8+(15&(Pt>>>=4)),Ct.wbits===0)Ct.wbits=Xt;else if(Xt>Ct.wbits){Bt.msg="invalid window size",Ct.mode=30;break}Ct.dmax=1<>8&1),512&Ct.flags&&(On[0]=255&Pt,On[1]=Pt>>>8&255,Ct.check=ot(Ct.check,On,2,0)),zt=Pt=0,Ct.mode=3;case 3:for(;zt<32;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>8&255,On[2]=Pt>>>16&255,On[3]=Pt>>>24&255,Ct.check=ot(Ct.check,On,4,0)),zt=Pt=0,Ct.mode=4;case 4:for(;zt<16;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>8),512&Ct.flags&&(On[0]=255&Pt,On[1]=Pt>>>8&255,Ct.check=ot(Ct.check,On,2,0)),zt=Pt=0,Ct.mode=5;case 5:if(1024&Ct.flags){for(;zt<16;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>8&255,Ct.check=ot(Ct.check,On,2,0)),zt=Pt=0}else Ct.head&&(Ct.head.extra=null);Ct.mode=6;case 6:if(1024&Ct.flags&&(Dt<(nn=Ct.length)&&(nn=Dt),nn&&(Ct.head&&(Xt=Ct.head.extra_len-Ct.length,Ct.head.extra||(Ct.head.extra=new Array(Ct.head.extra_len)),rt.arraySet(Ct.head.extra,kt,Ot,nn,Xt)),512&Ct.flags&&(Ct.check=ot(Ct.check,kt,nn,Ot)),Dt-=nn,Ot+=nn,Ct.length-=nn),Ct.length))break e;Ct.length=0,Ct.mode=7;case 7:if(2048&Ct.flags){if(Dt===0)break e;for(nn=0;Xt=kt[Ot+nn++],Ct.head&&Xt&&Ct.length<65536&&(Ct.head.name+=String.fromCharCode(Xt)),Xt&&nn>9&1,Ct.head.done=!0),Bt.adler=Ct.check=0,Ct.mode=12;break;case 10:for(;zt<32;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=7&zt,zt-=7&zt,Ct.mode=27;break}for(;zt<3;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=1)){case 0:Ct.mode=14;break;case 1:if(St(Ct),Ct.mode=20,xt!==6)break;Pt>>>=2,zt-=2;break e;case 2:Ct.mode=17;break;case 3:Bt.msg="invalid block type",Ct.mode=30}Pt>>>=2,zt-=2;break;case 14:for(Pt>>>=7&zt,zt-=7&zt;zt<32;){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>16^65535)){Bt.msg="invalid stored block lengths",Ct.mode=30;break}if(Ct.length=65535&Pt,zt=Pt=0,Ct.mode=15,xt===6)break e;case 15:Ct.mode=16;case 16:if(nn=Ct.length){if(Dt>>=5,zt-=5,Ct.ndist=1+(31&Pt),Pt>>>=5,zt-=5,Ct.ncode=4+(15&Pt),Pt>>>=4,zt-=4,286>>=3,zt-=3}for(;Ct.have<19;)Ct.lens[gn[Ct.have++]]=0;if(Ct.lencode=Ct.lendyn,Ct.lenbits=7,_n={bits:Ct.lenbits},dn=at(0,Ct.lens,0,19,Ct.lencode,0,Ct.work,_n),Ct.lenbits=_n.bits,dn){Bt.msg="invalid code lengths set",Ct.mode=30;break}Ct.have=0,Ct.mode=19;case 19:for(;Ct.have>>16&255,$t=65535&Un,!((Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=Vt,zt-=Vt,Ct.lens[Ct.have++]=$t;else{if($t===16){for(Fn=Vt+2;zt>>=Vt,zt-=Vt,Ct.have===0){Bt.msg="invalid bit length repeat",Ct.mode=30;break}Xt=Ct.lens[Ct.have-1],nn=3+(3&Pt),Pt>>>=2,zt-=2}else if($t===17){for(Fn=Vt+3;zt>>=Vt)),Pt>>>=3,zt-=3}else{for(Fn=Vt+7;zt>>=Vt)),Pt>>>=7,zt-=7}if(Ct.have+nn>Ct.nlen+Ct.ndist){Bt.msg="invalid bit length repeat",Ct.mode=30;break}for(;nn--;)Ct.lens[Ct.have++]=Xt}}if(Ct.mode===30)break;if(Ct.lens[256]===0){Bt.msg="invalid code -- missing end-of-block",Ct.mode=30;break}if(Ct.lenbits=9,_n={bits:Ct.lenbits},dn=at(lt,Ct.lens,0,Ct.nlen,Ct.lencode,0,Ct.work,_n),Ct.lenbits=_n.bits,dn){Bt.msg="invalid literal/lengths set",Ct.mode=30;break}if(Ct.distbits=6,Ct.distcode=Ct.distdyn,_n={bits:Ct.distbits},dn=at(ut,Ct.lens,Ct.nlen,Ct.ndist,Ct.distcode,0,Ct.work,_n),Ct.distbits=_n.bits,dn){Bt.msg="invalid distances set",Ct.mode=30;break}if(Ct.mode=20,xt===6)break e;case 20:Ct.mode=21;case 21:if(6<=Dt&&258<=Et){Bt.next_out=Jt,Bt.avail_out=Et,Bt.next_in=Ot,Bt.avail_in=Dt,Ct.hold=Pt,Ct.bits=zt,st(Bt,Kt),Jt=Bt.next_out,Nt=Bt.output,Et=Bt.avail_out,Ot=Bt.next_in,kt=Bt.input,Dt=Bt.avail_in,Pt=Ct.hold,zt=Ct.bits,Ct.mode===12&&(Ct.back=-1);break}for(Ct.back=0;It=(Un=Ct.lencode[Pt&(1<>>16&255,$t=65535&Un,!((Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>Ht)])>>>16&255,$t=65535&Un,!(Ht+(Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=Ht,zt-=Ht,Ct.back+=Ht}if(Pt>>>=Vt,zt-=Vt,Ct.back+=Vt,Ct.length=$t,It===0){Ct.mode=26;break}if(32&It){Ct.back=-1,Ct.mode=12;break}if(64&It){Bt.msg="invalid literal/length code",Ct.mode=30;break}Ct.extra=15&It,Ct.mode=22;case 22:if(Ct.extra){for(Fn=Ct.extra;zt>>=Ct.extra,zt-=Ct.extra,Ct.back+=Ct.extra}Ct.was=Ct.length,Ct.mode=23;case 23:for(;It=(Un=Ct.distcode[Pt&(1<>>16&255,$t=65535&Un,!((Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>Ht)])>>>16&255,$t=65535&Un,!(Ht+(Vt=Un>>>24)<=zt);){if(Dt===0)break e;Dt--,Pt+=kt[Ot++]<>>=Ht,zt-=Ht,Ct.back+=Ht}if(Pt>>>=Vt,zt-=Vt,Ct.back+=Vt,64&It){Bt.msg="invalid distance code",Ct.mode=30;break}Ct.offset=$t,Ct.extra=15&It,Ct.mode=24;case 24:if(Ct.extra){for(Fn=Ct.extra;zt>>=Ct.extra,zt-=Ct.extra,Ct.back+=Ct.extra}if(Ct.offset>Ct.dmax){Bt.msg="invalid distance too far back",Ct.mode=30;break}Ct.mode=25;case 25:if(Et===0)break e;if(nn=Kt-Et,Ct.offset>nn){if((nn=Ct.offset-nn)>Ct.whave&&Ct.sane){Bt.msg="invalid distance too far back",Ct.mode=30;break}Zt=nn>Ct.wnext?(nn-=Ct.wnext,Ct.wsize-nn):Ct.wnext-nn,nn>Ct.length&&(nn=Ct.length),jt=Ct.window}else jt=Nt,Zt=Jt-Ct.offset,nn=Ct.length;for(EtAt?(Rt=Zt[jt+ft[xt]],zt[en+ft[xt]]):(Rt=96,0),yt=1<>Jt)+(Ut-=yt)]=Lt<<24|Rt<<16|St|0,Ut!==0;);for(yt=1<>=1;if(yt!==0?(Pt&=yt-1,Pt+=yt):Pt=0,xt++,--Kt[Bt]==0){if(Bt===kt)break;Bt=ut[dt+ft[xt]]}if(Nt>>7)]}function en(Un,On){Un.pending_buf[Un.pending++]=255&On,Un.pending_buf[Un.pending++]=On>>>8&255}function Kt(Un,On,gn){Un.bi_valid>gt-gn?(Un.bi_buf|=On<>gt-Un.bi_valid,Un.bi_valid+=gn-gt):(Un.bi_buf|=On<>>=1,gn<<=1,0<--On;);return gn>>>1}function jt(Un,On,gn){var hn,wn,Zn=new Array(ft+1),Pn=0;for(hn=1;hn<=ft;hn++)Zn[hn]=Pn=Pn+gn[hn-1]<<1;for(wn=0;wn<=On;wn++){var $n=Un[2*wn+1];$n!==0&&(Un[2*wn]=Zt(Zn[$n]++,$n))}}function Vt(Un){var On;for(On=0;On>1;1<=gn;gn--)Ht(Un,Zn,gn);for(wn=Tr;gn=Un.heap[1],Un.heap[1]=Un.heap[Un.heap_len--],Ht(Un,Zn,1),hn=Un.heap[1],Un.heap[--Un.heap_max]=gn,Un.heap[--Un.heap_max]=hn,Zn[2*wn]=Zn[2*gn]+Zn[2*hn],Un.depth[wn]=(Un.depth[gn]>=Un.depth[hn]?Un.depth[gn]:Un.depth[hn])+1,Zn[2*gn+1]=Zn[2*hn+1]=wn,Un.heap[1]=wn++,Ht(Un,Zn,1),2<=Un.heap_len;);Un.heap[--Un.heap_max]=Un.heap[1],function(_r,Ir){var Jr,qr,Uo,eo,Yr,_o,ro=Ir.dyn_tree,Fo=Ir.max_code,kn=Ir.stat_desc.static_tree,un=Ir.stat_desc.has_stree,pn=Ir.stat_desc.extra_bits,Qn=Ir.stat_desc.extra_base,Jn=Ir.stat_desc.max_length,jn=0;for(eo=0;eo<=ft;eo++)_r.bl_count[eo]=0;for(ro[2*_r.heap[_r.heap_max]+1]=0,Jr=_r.heap_max+1;Jr>=7;wn>>=1)if(1&Qr&&$n.dyn_ltree[2*Tr]!==0)return it;if($n.dyn_ltree[18]!==0||$n.dyn_ltree[20]!==0||$n.dyn_ltree[26]!==0)return ot;for(Tr=32;Tr>>3,(Zn=Un.static_len+3+7>>>3)<=wn&&(wn=Zn)):wn=Zn=gn+5,gn+4<=wn&&On!==-1?Fn(Un,On,gn,hn):Un.strategy===4||Zn===wn?(Kt(Un,2+(hn?1:0),3),qt(Un,Tt,Bt)):(Kt(Un,4+(hn?1:0),3),function($n,Tr,Qr,_r){var Ir;for(Kt($n,Tr-257,5),Kt($n,Qr-1,5),Kt($n,_r-4,4),Ir=0;Ir<_r;Ir++)Kt($n,$n.bl_tree[2*St[Ir]+1],3);dn($n,$n.dyn_ltree,Tr-1),dn($n,$n.dyn_dtree,Qr-1)}(Un,Un.l_desc.max_code+1,Un.d_desc.max_code+1,Pn+1),qt(Un,Un.dyn_ltree,Un.dyn_dtree)),Vt(Un),hn&&It(Un)},nt._tr_tally=function(Un,On,gn){return Un.pending_buf[Un.d_buf+2*Un.last_lit]=On>>>8&255,Un.pending_buf[Un.d_buf+2*Un.last_lit+1]=255&On,Un.pending_buf[Un.l_buf+Un.last_lit]=255&gn,Un.last_lit++,On===0?Un.dyn_ltree[2*gn]++:(Un.matches++,On--,Un.dyn_ltree[2*(Ct[gn]+ut+1)]++,Un.dyn_dtree[2*zt(On)]++),Un.last_lit===Un.lit_bufsize-1},nt._tr_align=function(Un){Kt(Un,2,3),nn(Un,Ut,Tt),function(On){On.bi_valid===16?(en(On,On.bi_buf),On.bi_buf=0,On.bi_valid=0):8<=On.bi_valid&&(On.pending_buf[On.pending++]=255&On.bi_buf,On.bi_buf>>=8,On.bi_valid-=8)}(Un)}},{"../utils/common":41}],53:[function(et,tt,nt){tt.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(et,tt,nt){(function(rt){(function(it,ot){if(!it.setImmediate){var st,at,lt,ut,dt=1,ht={},ct=!1,pt=it.document,ft=Object.getPrototypeOf&&Object.getPrototypeOf(it);ft=ft&&ft.setTimeout?ft:it,st={}.toString.call(it.process)==="[object process]"?function(Ft){process.nextTick(function(){yt(Ft)})}:function(){if(it.postMessage&&!it.importScripts){var Ft=!0,mt=it.onmessage;return it.onmessage=function(){Ft=!1},it.postMessage("","*"),it.onmessage=mt,Ft}}()?(ut="setImmediate$"+Math.random()+"$",it.addEventListener?it.addEventListener("message",Ut,!1):it.attachEvent("onmessage",Ut),function(Ft){it.postMessage(ut+Ft,"*")}):it.MessageChannel?((lt=new MessageChannel).port1.onmessage=function(Ft){yt(Ft.data)},function(Ft){lt.port2.postMessage(Ft)}):pt&&"onreadystatechange"in pt.createElement("script")?(at=pt.documentElement,function(Ft){var mt=pt.createElement("script");mt.onreadystatechange=function(){yt(Ft),mt.onreadystatechange=null,at.removeChild(mt),mt=null},at.appendChild(mt)}):function(Ft){setTimeout(yt,0,Ft)},ft.setImmediate=function(Ft){typeof Ft!="function"&&(Ft=new Function(""+Ft));for(var mt=new Array(arguments.length-1),vt=0;vt"u"?rt===void 0?this:rt:self)}).call(this,typeof commonjsGlobal$2<"u"?commonjsGlobal$2:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(jszip_min);var jszip_minExports=jszip_min.exports;const JSZip=getDefaultExportFromCjs$1(jszip_minExports);class STLLoader extends Loader{constructor(o){super(o)}load(o,et,tt,nt){const rt=this,it=new FileLoader(this.manager);it.setPath(this.path),it.setResponseType("arraybuffer"),it.setRequestHeader(this.requestHeader),it.setWithCredentials(this.withCredentials),it.load(o,function(ot){try{et(rt.parse(ot))}catch(st){nt?nt(st):console.error(st),rt.manager.itemError(o)}},tt,nt)}parse(o){function et(at){const lt=new DataView(at),ut=32/8*3+32/8*3*3+16/8,dt=lt.getUint32(80,!0);if(80+32/8+dt*ut===lt.byteLength)return!0;const ct=[115,111,108,105,100];for(let pt=0;pt<5;pt++)if(tt(ct,lt,pt))return!1;return!0}function tt(at,lt,ut){for(let dt=0,ht=at.length;dt>5&31)/31,ct=(Nt>>10&31)/31)}for(let Nt=1;Nt<=3;Nt++){const Ot=Bt+Nt*12,Jt=Tt*3*3+(Nt-1)*3;Lt[Jt]=lt.getFloat32(Ot,!0),Lt[Jt+1]=lt.getFloat32(Ot+4,!0),Lt[Jt+2]=lt.getFloat32(Ot+8,!0),Rt[Jt]=xt,Rt[Jt+1]=Ct,Rt[Jt+2]=kt,pt&&(St.set(dt,ht,ct).convertSRGBToLinear(),ft[Jt]=St.r,ft[Jt+1]=St.g,ft[Jt+2]=St.b)}}return At.setAttribute("position",new BufferAttribute(Lt,3)),At.setAttribute("normal",new BufferAttribute(Rt,3)),pt&&(At.setAttribute("color",new BufferAttribute(ft,3)),At.hasColors=!0,At.alpha=Ft),At}function rt(at){const lt=new BufferGeometry,ut=/solid([\s\S]*?)endsolid/g,dt=/facet([\s\S]*?)endfacet/g,ht=/solid\s(.+)/;let ct=0;const pt=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,ft=new RegExp("vertex"+pt+pt+pt,"g"),gt=new RegExp("normal"+pt+pt+pt,"g"),yt=[],Ut=[],Ft=[],mt=new Vector3;let vt,At=0,Lt=0,Rt=0;for(;(vt=ut.exec(at))!==null;){Lt=Rt;const St=vt[0],Tt=(vt=ht.exec(St))!==null?vt[1]:"";for(Ft.push(Tt);(vt=dt.exec(St))!==null;){let Ct=0,kt=0;const Nt=vt[0];for(;(vt=gt.exec(Nt))!==null;)mt.x=parseFloat(vt[1]),mt.y=parseFloat(vt[2]),mt.z=parseFloat(vt[3]),kt++;for(;(vt=ft.exec(Nt))!==null;)yt.push(parseFloat(vt[1]),parseFloat(vt[2]),parseFloat(vt[3])),Ut.push(mt.x,mt.y,mt.z),Ct++,Rt++;kt!==1&&console.error("THREE.STLLoader: Something isn't right with the normal of face number "+ct),Ct!==3&&console.error("THREE.STLLoader: Something isn't right with the vertices of face number "+ct),ct++}const Bt=Lt,xt=Rt-Lt;lt.userData.groupNames=Ft,lt.addGroup(Bt,xt,At),At++}return lt.setAttribute("position",new Float32BufferAttribute(yt,3)),lt.setAttribute("normal",new Float32BufferAttribute(Ut,3)),lt}function it(at){return typeof at!="string"?new TextDecoder().decode(at):at}function ot(at){if(typeof at=="string"){const lt=new Uint8Array(at.length);for(let ut=0;ut256||Nt.colormap_size!==24||Nt.colormap_type!==1)throw new Error("THREE.TGALoader: Invalid type colormap data for indexed type.");break;case ht:case ct:case ft:case gt:if(Nt.colormap_type)throw new Error("THREE.TGALoader: Invalid type colormap data for colormap type.");break;case ut:throw new Error("THREE.TGALoader: No data.");default:throw new Error("THREE.TGALoader: Invalid type "+Nt.image_type)}if(Nt.width<=0||Nt.height<=0)throw new Error("THREE.TGALoader: Invalid image size.");if(Nt.pixel_size!==8&&Nt.pixel_size!==16&&Nt.pixel_size!==24&&Nt.pixel_size!==32)throw new Error("THREE.TGALoader: Invalid pixel size "+Nt.pixel_size)}function tt(Nt,Ot,Jt,Dt,Et){let Pt,zt;const en=Jt.pixel_size>>3,Kt=Jt.width*Jt.height*en;if(Ot&&(zt=Et.subarray(Dt,Dt+=Jt.colormap_length*(Jt.colormap_size>>3))),Nt){Pt=new Uint8Array(Kt);let nn,Zt,jt,Vt=0;const It=new Uint8Array(en);for(;Vt>7,Nt[(Zt+Vt*jt)*4+1]=(Kt&992)>>2,Nt[(Zt+Vt*jt)*4+2]=(Kt&31)<<3,Nt[(Zt+Vt*jt)*4+3]=Kt&32768?0:255;return Nt}function it(Nt,Ot,Jt,Dt,Et,Pt,zt,en){let Kt=0,nn,Zt;const jt=St.width;for(Zt=Ot;Zt!==Dt;Zt+=Jt)for(nn=Et;nn!==zt;nn+=Pt,Kt+=3)Nt[(nn+jt*Zt)*4+3]=255,Nt[(nn+jt*Zt)*4+2]=en[Kt+0],Nt[(nn+jt*Zt)*4+1]=en[Kt+1],Nt[(nn+jt*Zt)*4+0]=en[Kt+2];return Nt}function ot(Nt,Ot,Jt,Dt,Et,Pt,zt,en){let Kt=0,nn,Zt;const jt=St.width;for(Zt=Ot;Zt!==Dt;Zt+=Jt)for(nn=Et;nn!==zt;nn+=Pt,Kt+=4)Nt[(nn+jt*Zt)*4+2]=en[Kt+0],Nt[(nn+jt*Zt)*4+1]=en[Kt+1],Nt[(nn+jt*Zt)*4+0]=en[Kt+2],Nt[(nn+jt*Zt)*4+3]=en[Kt+3];return Nt}function st(Nt,Ot,Jt,Dt,Et,Pt,zt,en){let Kt,nn=0,Zt,jt;const Vt=St.width;for(jt=Ot;jt!==Dt;jt+=Jt)for(Zt=Et;Zt!==zt;Zt+=Pt,nn++)Kt=en[nn],Nt[(Zt+Vt*jt)*4+0]=Kt,Nt[(Zt+Vt*jt)*4+1]=Kt,Nt[(Zt+Vt*jt)*4+2]=Kt,Nt[(Zt+Vt*jt)*4+3]=255;return Nt}function at(Nt,Ot,Jt,Dt,Et,Pt,zt,en){let Kt=0,nn,Zt;const jt=St.width;for(Zt=Ot;Zt!==Dt;Zt+=Jt)for(nn=Et;nn!==zt;nn+=Pt,Kt+=2)Nt[(nn+jt*Zt)*4+0]=en[Kt+0],Nt[(nn+jt*Zt)*4+1]=en[Kt+0],Nt[(nn+jt*Zt)*4+2]=en[Kt+0],Nt[(nn+jt*Zt)*4+3]=en[Kt+1];return Nt}function lt(Nt,Ot,Jt,Dt,Et){let Pt,zt,en,Kt,nn,Zt;switch((St.flags&yt)>>Ut){default:case vt:Pt=0,en=1,nn=Ot,zt=0,Kt=1,Zt=Jt;break;case Ft:Pt=0,en=1,nn=Ot,zt=Jt-1,Kt=-1,Zt=-1;break;case At:Pt=Ot-1,en=-1,nn=-1,zt=0,Kt=1,Zt=Jt;break;case mt:Pt=Ot-1,en=-1,nn=-1,zt=Jt-1,Kt=-1,Zt=-1;break}if(xt)switch(St.pixel_size){case 8:st(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;case 16:at(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;default:throw new Error("THREE.TGALoader: Format not supported.")}else switch(St.pixel_size){case 8:nt(Nt,zt,Kt,Zt,Pt,en,nn,Dt,Et);break;case 16:rt(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;case 24:it(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;case 32:ot(Nt,zt,Kt,Zt,Pt,en,nn,Dt);break;default:throw new Error("THREE.TGALoader: Format not supported.")}return Nt}const ut=0,dt=1,ht=2,ct=3,pt=9,ft=10,gt=11,yt=48,Ut=4,Ft=0,mt=1,vt=2,At=3;if(o.length<19)throw new Error("THREE.TGALoader: Not enough data to contain header.");let Lt=0;const Rt=new Uint8Array(o),St={id_length:Rt[Lt++],colormap_type:Rt[Lt++],image_type:Rt[Lt++],colormap_index:Rt[Lt++]|Rt[Lt++]<<8,colormap_length:Rt[Lt++]|Rt[Lt++]<<8,colormap_size:Rt[Lt++],origin:[Rt[Lt++]|Rt[Lt++]<<8,Rt[Lt++]|Rt[Lt++]<<8],width:Rt[Lt++]|Rt[Lt++]<<8,height:Rt[Lt++]|Rt[Lt++]<<8,pixel_size:Rt[Lt++],flags:Rt[Lt++]};if(et(St),St.id_length+Lt>o.length)throw new Error("THREE.TGALoader: No data.");Lt+=St.id_length;let Tt=!1,Bt=!1,xt=!1;switch(St.image_type){case pt:Tt=!0,Bt=!0;break;case dt:Bt=!0;break;case ft:Tt=!0;break;case ht:break;case gt:Tt=!0,xt=!0;break;case ct:xt=!0;break}const Ct=new Uint8Array(St.width*St.height*4),kt=tt(Tt,Bt,St,Lt,Rt);return lt(Ct,St.width,St.height,kt.pixel_data,kt.palettes),{data:Ct,width:St.width,height:St.height,flipY:!0,generateMipmaps:!0,minFilter:LinearMipmapLinearFilter}}}class ColladaLoader extends Loader{load(o,et,tt,nt){const rt=this,it=rt.path===""?LoaderUtils.extractUrlBase(o):rt.path,ot=new FileLoader(rt.manager);ot.setPath(rt.path),ot.setRequestHeader(rt.requestHeader),ot.setWithCredentials(rt.withCredentials),ot.load(o,function(st){try{et(rt.parse(st,it))}catch(at){nt?nt(at):console.error(at),rt.manager.itemError(o)}},tt,nt)}parse(o,et){function tt(Tn,En){const Dn=[],Mn=Tn.childNodes;for(let Wn=0,Vr=Mn.length;Wn0&&En.push(new VectorKeyframeTrack(Mn+".position",Wn,Vr)),Cr.length>0&&En.push(new QuaternionKeyframeTrack(Mn+".quaternion",Wn,Cr)),an.length>0&&En.push(new VectorKeyframeTrack(Mn+".scale",Wn,an)),En}function Tt(Tn,En,Dn){let Mn,Wn=!0,Vr,Cr;for(Vr=0,Cr=Tn.length;Vr=0;){const Mn=Tn[En];if(Mn.value[Dn]!==null)return Mn;En--}return null}function Ct(Tn,En,Dn){for(;En>>0)+2);switch(Dn=Dn.toLowerCase(),Dn){case"tga":En=Sl;break;default:En=Zs}return En}function Qr(Tn){const En=Pn(Tn.url),Dn=En.profile.technique;let Mn;switch(Dn.type){case"phong":case"blinn":Mn=new MeshPhongMaterial;break;case"lambert":Mn=new MeshLambertMaterial;break;default:Mn=new MeshBasicMaterial;break}Mn.name=Tn.name||"";function Wn(bn,Vn=null){const zn=En.profile.samplers[bn.id];let Hn=null;if(zn!==void 0){const ir=En.profile.surfaces[zn.source];Hn=Vt(ir.init_from)}else console.warn("THREE.ColladaLoader: Undefined sampler. Access image directly (see #12530)."),Hn=Vt(bn.id);if(Hn!==null){const ir=Tr(Hn);if(ir!==void 0){const Yn=ir.load(Hn),or=bn.extra;if(or!==void 0&&or.technique!==void 0&&at(or.technique)===!1){const Mr=or.technique;Yn.wrapS=Mr.wrapU?RepeatWrapping:ClampToEdgeWrapping,Yn.wrapT=Mr.wrapV?RepeatWrapping:ClampToEdgeWrapping,Yn.offset.set(Mr.offsetU||0,Mr.offsetV||0),Yn.repeat.set(Mr.repeatU||1,Mr.repeatV||1)}else Yn.wrapS=RepeatWrapping,Yn.wrapT=RepeatWrapping;return Vn!==null&&(Yn.colorSpace=Vn),Yn}else return console.warn("THREE.ColladaLoader: Loader for texture %s not found.",Hn),null}else return console.warn("THREE.ColladaLoader: Couldn't create texture with ID:",bn.id),null}const Vr=Dn.parameters;for(const bn in Vr){const Vn=Vr[bn];switch(bn){case"diffuse":Vn.color&&Mn.color.fromArray(Vn.color),Vn.texture&&(Mn.map=Wn(Vn.texture,SRGBColorSpace$1));break;case"specular":Vn.color&&Mn.specular&&Mn.specular.fromArray(Vn.color),Vn.texture&&(Mn.specularMap=Wn(Vn.texture));break;case"bump":Vn.texture&&(Mn.normalMap=Wn(Vn.texture));break;case"ambient":Vn.texture&&(Mn.lightMap=Wn(Vn.texture,SRGBColorSpace$1));break;case"shininess":Vn.float&&Mn.shininess&&(Mn.shininess=Vn.float);break;case"emission":Vn.color&&Mn.emissive&&Mn.emissive.fromArray(Vn.color),Vn.texture&&(Mn.emissiveMap=Wn(Vn.texture,SRGBColorSpace$1));break}}Mn.color.convertSRGBToLinear(),Mn.specular&&Mn.specular.convertSRGBToLinear(),Mn.emissive&&Mn.emissive.convertSRGBToLinear();let Cr=Vr.transparent,an=Vr.transparency;if(an===void 0&&Cr&&(an={float:1}),Cr===void 0&&an&&(Cr={opaque:"A_ONE",data:{color:[1,1,1,1]}}),Cr&&an)if(Cr.data.texture)Mn.transparent=!0;else{const bn=Cr.data.color;switch(Cr.opaque){case"A_ONE":Mn.opacity=bn[3]*an.float;break;case"RGB_ZERO":Mn.opacity=1-bn[0]*an.float;break;case"A_ZERO":Mn.opacity=1-bn[3]*an.float;break;case"RGB_ONE":Mn.opacity=bn[0]*an.float;break;default:console.warn('THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.',Cr.opaque)}Mn.opacity<1&&(Mn.transparent=!0)}if(Dn.extra!==void 0&&Dn.extra.technique!==void 0){const bn=Dn.extra.technique;for(const Vn in bn){const zn=bn[Vn];switch(Vn){case"double_sided":Mn.side=zn===1?DoubleSide:FrontSide;break;case"bump":Mn.normalMap=Wn(zn.texture),Mn.normalScale=new Vector2(1,1);break}}}return Mn}function _r(Tn){return pt(vo.materials[Tn],Qr)}function Ir(Tn){const En={name:Tn.getAttribute("name")};for(let Dn=0,Mn=Tn.childNodes.length;Dn0?Cr+bn:Cr;En.inputs[Vn]={id:Vr,offset:an},En.stride=Math.max(En.stride,an+1),Cr==="TEXCOORD"&&(En.hasUV=!0);break;case"vcount":En.vcount=it(Wn.textContent);break;case"p":En.p=it(Wn.textContent);break}}return En}function Fr(Tn){const En={};for(let Dn=0;Dn0&&En0&&Hn.setAttribute("position",new Float32BufferAttribute(Wn.array,Wn.stride)),Vr.array.length>0&&Hn.setAttribute("normal",new Float32BufferAttribute(Vr.array,Vr.stride)),bn.array.length>0&&Hn.setAttribute("color",new Float32BufferAttribute(bn.array,bn.stride)),Cr.array.length>0&&Hn.setAttribute("uv",new Float32BufferAttribute(Cr.array,Cr.stride)),an.array.length>0&&Hn.setAttribute("uv1",new Float32BufferAttribute(an.array,an.stride)),Vn.array.length>0&&Hn.setAttribute("skinIndex",new Float32BufferAttribute(Vn.array,Vn.stride)),zn.array.length>0&&Hn.setAttribute("skinWeight",new Float32BufferAttribute(zn.array,zn.stride)),Mn.data=Hn,Mn.type=Tn[0].type,Mn.materialKeys=ir,Mn}function ar(Tn,En,Dn,Mn,Wn=!1){const Vr=Tn.p,Cr=Tn.stride,an=Tn.vcount;function bn(Hn){let ir=Vr[Hn+Dn]*zn;const Yn=ir+zn;for(;ir4)for(let Mr=1,Wr=or-2;Mr<=Wr;Mr++){const Hr=Hn+Cr*0,co=Hn+Cr*Mr,_i=Hn+Cr*(Mr+1);bn(Hr),bn(co),bn(_i)}Hn+=Cr*or}}else for(let Hn=0,ir=Vr.length;Hn=En.limits.max&&(En.static=!0),En.middlePosition=(En.limits.min+En.limits.max)/2,En}function gr(Tn){const En={sid:Tn.getAttribute("sid"),name:Tn.getAttribute("name")||"",attachments:[],transforms:[]};for(let Dn=0;DnYn.limits.max||HnparseFloat(tt)),(!this.origPosition||!this.origQuaternion)&&(this.origPosition=this.position.clone(),this.origQuaternion=this.quaternion.clone());let et=!1;switch(this.mimicJoints.forEach(tt=>{et=tt.updateFromMimickedJoint(...o)||et}),this.jointType){case"fixed":return et;case"continuous":case"revolute":{let tt=o[0];return tt==null||tt===this.jointValue[0]?et:(!this.ignoreLimits&&this.jointType==="revolute"&&(tt=Math.min(this.limit.upper,tt),tt=Math.max(this.limit.lower,tt)),this.quaternion.setFromAxisAngle(this.axis,tt).premultiply(this.origQuaternion),this.jointValue[0]!==tt?(this.jointValue[0]=tt,this.matrixWorldNeedsUpdate=!0,!0):et)}case"prismatic":{let tt=o[0];return tt==null||tt===this.jointValue[0]?et:(this.ignoreLimits||(tt=Math.min(this.limit.upper,tt),tt=Math.max(this.limit.lower,tt)),this.position.copy(this.origPosition),_tempAxis.copy(this.axis).applyEuler(this.rotation),this.position.addScaledVector(_tempAxis,tt),this.jointValue[0]!==tt?(this.jointValue[0]=tt,this.matrixWorldNeedsUpdate=!0,!0):et)}case"floating":case"planar":console.warn(`'${this.jointType}' joint not yet supported`)}return et}}class URDFMimicJoint extends URDFJoint{constructor(...o){super(...o),this.type="URDFMimicJoint",this.mimicJoint=null,this.offset=0,this.multiplier=1}updateFromMimickedJoint(...o){const et=o.map(tt=>tt*this.multiplier+this.offset);return super.setJointValue(...et)}copy(o,et){return super.copy(o,et),this.mimicJoint=o.mimicJoint,this.offset=o.offset,this.multiplier=o.multiplier,this}}class URDFRobot extends URDFLink{constructor(...o){super(...o),this.isURDFRobot=!0,this.urdfNode=null,this.urdfRobotNode=null,this.robotName=null,this.links=null,this.joints=null,this.colliders=null,this.visual=null,this.frames=null}copy(o,et){return super.copy(o,et),this.urdfRobotNode=o.urdfRobotNode,this.robotName=o.robotName,this.links={},this.joints={},this.colliders={},this.visual={},this.traverse(tt=>{tt.isURDFJoint&&tt.urdfName in o.joints&&(this.joints[tt.urdfName]=tt),tt.isURDFLink&&tt.urdfName in o.links&&(this.links[tt.urdfName]=tt),tt.isURDFCollider&&tt.urdfName in o.colliders&&(this.colliders[tt.urdfName]=tt),tt.isURDFVisual&&tt.urdfName in o.visual&&(this.visual[tt.urdfName]=tt)}),this.frames={...this.colliders,...this.visual,...this.links,...this.joints},this}getFrame(o){return this.frames[o]}setJointValue(o,...et){const tt=this.joints[o];return tt?tt.setJointValue(...et):!1}setJointValues(o){let et=!1;for(const tt in o){const nt=o[tt];Array.isArray(nt)?et=this.setJointValue(tt,...nt)||et:et=this.setJointValue(tt,nt)||et}return et}}const tempQuaternion=new Quaternion,tempEuler=new Euler;function processTuple(s){return s?s.trim().split(/\s+/g).map(o=>parseFloat(o)):[0,0,0]}function applyRotation(s,o,et=!1){et||s.rotation.set(0,0,0),tempEuler.set(o[0],o[1],o[2],"ZYX"),tempQuaternion.setFromEuler(tempEuler),tempQuaternion.multiply(s.quaternion),s.quaternion.copy(tempQuaternion)}class URDFLoader{constructor(o){this.manager=o||DefaultLoadingManager,this.loadMeshCb=this.defaultMeshLoader.bind(this),this.parseVisual=!0,this.parseCollision=!1,this.packages="",this.workingPath="",this.fetchOptions={}}loadAsync(o){return new Promise((et,tt)=>{this.load(o,et,null,tt)})}load(o,et,tt,nt){const rt=this.manager,it=LoaderUtils.extractUrlBase(o),ot=this.manager.resolveURL(o);rt.itemStart(ot),fetch(ot,this.fetchOptions).then(st=>{if(st.ok)return tt&&tt(null),st.text();throw new Error(`URDFLoader: Failed to load url '${ot}' with error code ${st.status} : ${st.statusText}.`)}).then(st=>{this.workingPath===""&&(this.workingPath=it);const at=this.parse(st);et(at),rt.itemEnd(ot)}).catch(st=>{nt?nt(st):console.error("URDFLoader: Error loading file.",st),rt.itemError(ot),rt.itemEnd(ot)})}parse(o){const et=this.packages,tt=this.loadMeshCb,nt=this.parseVisual,rt=this.parseCollision,it=this.workingPath,ot=this.manager,st={},at={},lt={};function ut(yt){if(!/^package:\/\//.test(yt))return it?it+yt:yt;const[Ut,Ft]=yt.replace(/^package:\/\//,"").split(/\/(.+)/);if(typeof et=="string")return et.endsWith(Ut)?et+"/"+Ft:et+"/"+Ut+"/"+Ft;if(et instanceof Function)return et(Ut)+"/"+Ft;if(typeof et=="object")return Ut in et?et[Ut]+"/"+Ft:(console.error(`URDFLoader : ${Ut} not found in provided package list.`),null)}function dt(yt){let Ut;yt instanceof Document?Ut=[...yt.children]:yt instanceof Element?Ut=[yt]:Ut=[...new DOMParser().parseFromString(yt,"text/xml").children];const Ft=Ut.filter(mt=>mt.nodeName==="robot").pop();return ht(Ft)}function ht(yt){const Ut=[...yt.children],Ft=Ut.filter(Tt=>Tt.nodeName.toLowerCase()==="link"),mt=Ut.filter(Tt=>Tt.nodeName.toLowerCase()==="joint"),vt=Ut.filter(Tt=>Tt.nodeName.toLowerCase()==="material"),At=new URDFRobot;At.robotName=yt.getAttribute("name"),At.urdfRobotNode=yt,vt.forEach(Tt=>{const Bt=Tt.getAttribute("name");lt[Bt]=ft(Tt)});const Lt={},Rt={};Ft.forEach(Tt=>{const Bt=Tt.getAttribute("name"),xt=yt.querySelector(`child[link="${Bt}"]`)===null;st[Bt]=pt(Tt,Lt,Rt,xt?At:null)}),mt.forEach(Tt=>{const Bt=Tt.getAttribute("name");at[Bt]=ct(Tt)}),At.joints=at,At.links=st,At.colliders=Rt,At.visual=Lt;const St=Object.values(at);return St.forEach(Tt=>{Tt instanceof URDFMimicJoint&&at[Tt.mimicJoint].mimicJoints.push(Tt)}),St.forEach(Tt=>{const Bt=new Set,xt=Ct=>{if(Bt.has(Ct))throw new Error("URDFLoader: Detected an infinite loop of mimic joints.");Bt.add(Ct),Ct.mimicJoints.forEach(kt=>{xt(kt)})};xt(Tt)}),At.frames={...Rt,...Lt,...st,...at},At}function ct(yt){const Ut=[...yt.children],Ft=yt.getAttribute("type");let mt;const vt=Ut.find(Bt=>Bt.nodeName.toLowerCase()==="mimic");vt?(mt=new URDFMimicJoint,mt.mimicJoint=vt.getAttribute("joint"),mt.multiplier=parseFloat(vt.getAttribute("multiplier")||1),mt.offset=parseFloat(vt.getAttribute("offset")||0)):mt=new URDFJoint,mt.urdfNode=yt,mt.name=yt.getAttribute("name"),mt.urdfName=mt.name,mt.jointType=Ft;let At=null,Lt=null,Rt=[0,0,0],St=[0,0,0];Ut.forEach(Bt=>{const xt=Bt.nodeName.toLowerCase();xt==="origin"?(Rt=processTuple(Bt.getAttribute("xyz")),St=processTuple(Bt.getAttribute("rpy"))):xt==="child"?Lt=st[Bt.getAttribute("link")]:xt==="parent"?At=st[Bt.getAttribute("link")]:xt==="limit"&&(mt.limit.lower=parseFloat(Bt.getAttribute("lower")||mt.limit.lower),mt.limit.upper=parseFloat(Bt.getAttribute("upper")||mt.limit.upper))}),At.add(mt),mt.add(Lt),applyRotation(mt,St),mt.position.set(Rt[0],Rt[1],Rt[2]);const Tt=Ut.filter(Bt=>Bt.nodeName.toLowerCase()==="axis")[0];if(Tt){const Bt=Tt.getAttribute("xyz").split(/\s+/g).map(xt=>parseFloat(xt));mt.axis=new Vector3(Bt[0],Bt[1],Bt[2]),mt.axis.normalize()}return mt}function pt(yt,Ut,Ft,mt=null){mt===null&&(mt=new URDFLink);const vt=[...yt.children];return mt.name=yt.getAttribute("name"),mt.urdfName=mt.name,mt.urdfNode=yt,nt&&vt.filter(Lt=>Lt.nodeName.toLowerCase()==="visual").forEach(Lt=>{const Rt=gt(Lt,lt);if(mt.add(Rt),Lt.hasAttribute("name")){const St=Lt.getAttribute("name");Rt.name=St,Rt.urdfName=St,Ut[St]=Rt}}),rt&&vt.filter(Lt=>Lt.nodeName.toLowerCase()==="collision").forEach(Lt=>{const Rt=gt(Lt);if(mt.add(Rt),Lt.hasAttribute("name")){const St=Lt.getAttribute("name");Rt.name=St,Rt.urdfName=St,Ft[St]=Rt}}),mt}function ft(yt){const Ut=[...yt.children],Ft=new MeshPhongMaterial;return Ft.name=yt.getAttribute("name")||"",Ut.forEach(mt=>{const vt=mt.nodeName.toLowerCase();if(vt==="color"){const At=mt.getAttribute("rgba").split(/\s/g).map(Lt=>parseFloat(Lt));Ft.color.setRGB(At[0],At[1],At[2]),Ft.opacity=At[3],Ft.transparent=At[3]<1,Ft.depthWrite=!Ft.transparent}else if(vt==="texture"){const At=mt.getAttribute("filename");if(At){const Lt=new TextureLoader(ot),Rt=ut(At);Ft.map=Lt.load(Rt),Ft.map.colorSpace=SRGBColorSpace$1}}}),Ft}function gt(yt,Ut={}){const Ft=yt.nodeName.toLowerCase()==="collision",mt=[...yt.children];let vt=null;const At=mt.filter(Rt=>Rt.nodeName.toLowerCase()==="material")[0];if(At){const Rt=At.getAttribute("name");Rt&&Rt in Ut?vt=Ut[Rt]:vt=ft(At)}else vt=new MeshPhongMaterial;const Lt=Ft?new URDFCollider:new URDFVisual;return Lt.urdfNode=yt,mt.forEach(Rt=>{const St=Rt.nodeName.toLowerCase();if(St==="geometry"){const Tt=Rt.children[0].nodeName.toLowerCase();if(Tt==="mesh"){const Bt=Rt.children[0].getAttribute("filename"),xt=ut(Bt);if(xt!==null){const Ct=Rt.children[0].getAttribute("scale");if(Ct){const kt=processTuple(Ct);Lt.scale.set(kt[0],kt[1],kt[2])}tt(xt,ot,(kt,Nt)=>{Nt?console.error("URDFLoader: Error loading mesh.",Nt):kt&&(kt instanceof Mesh&&(kt.material=vt),kt.position.set(0,0,0),kt.quaternion.identity(),Lt.add(kt))})}}else if(Tt==="box"){const Bt=new Mesh;Bt.geometry=new BoxGeometry(1,1,1),Bt.material=vt;const xt=processTuple(Rt.children[0].getAttribute("size"));Bt.scale.set(xt[0],xt[1],xt[2]),Lt.add(Bt)}else if(Tt==="sphere"){const Bt=new Mesh;Bt.geometry=new SphereGeometry(1,30,30),Bt.material=vt;const xt=parseFloat(Rt.children[0].getAttribute("radius"))||0;Bt.scale.set(xt,xt,xt),Lt.add(Bt)}else if(Tt==="cylinder"){const Bt=new Mesh;Bt.geometry=new CylinderGeometry(1,1,1,30),Bt.material=vt;const xt=parseFloat(Rt.children[0].getAttribute("radius"))||0,Ct=parseFloat(Rt.children[0].getAttribute("length"))||0;Bt.scale.set(xt,Ct,xt),Bt.rotation.set(Math.PI/2,0,0),Lt.add(Bt)}}else if(St==="origin"){const Tt=processTuple(Rt.getAttribute("xyz")),Bt=processTuple(Rt.getAttribute("rpy"));Lt.position.set(Tt[0],Tt[1],Tt[2]),Lt.rotation.set(0,0,0),applyRotation(Lt,Bt)}}),Lt}return dt(o)}defaultMeshLoader(o,et,tt){/\.stl$/i.test(o)?new STLLoader(et).load(o,rt=>{const it=new Mesh(rt,new MeshPhongMaterial);tt(it)}):/\.dae$/i.test(o)?new ColladaLoader(et).load(o,rt=>tt(rt.scene)):console.warn(`URDFLoader: Could not load model at ${o}. No loader available`)}}class Urdf extends Group{constructor(o,et,tt){super(),this.configuration=et,this.onLoaded=tt;const nt=new LoadingManager,rt=new URDFLoader(nt);this.configuration?.ghosted&&(this.color=new Color$2("lightgrey"),this.opacity=.25,this.transparent=!0),this.configuration?.endEffectorOnly&&(this.color=new Color$2("green"),this.opacity=.005,this.transparent=!0);const{opacity:it,transparent:ot}=this;let{color:st}=this;rt.loadMeshCb=(at,lt,ut)=>{new ColladaLoader(lt).load(at,ht=>{ht.scene.children=ht.scene.children.filter(ct=>!ct.type.endsWith("Light")),ht.scene.traverse(ct=>{if(ct instanceof Mesh){if(this.meshs.push(ct),ct.geometry.computeVertexNormals(),!this.configuration?.ghosted&&!this.configuration?.endEffectorOnly){let pt;Array.isArray(ct.material)?[pt]=ct.material:pt=ct.material,(pt instanceof MeshPhongMaterial||pt instanceof MeshStandardMaterial||pt instanceof MeshLambertMaterial||pt instanceof MeshBasicMaterial)&&(st=pt.color)}ct.material=new MeshPhongMaterial({color:st,opacity:it,transparent:ot})}}),ut(ht.scene)})},rt.load(o,this.onLoad)}robot;meshs=[];opacity=1;transparent=!1;color=new Color$2("white");static urdfMap={};static getUrdf(o,et,tt,nt){const rt=`${JSON.stringify(et)}.${o}`;return Urdf.urdfMap[rt]===void 0?tt?(Urdf.urdfMap[rt]=new Urdf(tt,et,nt),{urdf:Urdf.urdfMap[rt],loaded:!1}):{urdf:void 0,loaded:!1}:{urdf:Urdf.urdfMap[rt],loaded:!0}}onLoad=o=>{if(this.robot=o,this.configuration?.endEffectorOnly)if(this.configuration.endEffectorLink){const et=this.robot.links[this.configuration.endEffectorLink];this.add(et)}else console.warn("URDF configured for endEffectorOnly but endEffectorLink not provided");else this.add(this.robot);this.onLoaded?.()};setColor=o=>{const{opacity:et,transparent:tt}=this;this.meshs.forEach(nt=>{nt.material=new MeshPhongMaterial({opacity:et,transparent:tt,color:o})})};set worldToLocalTransform(o){o?this.matrix.copy(transformMatrix(o)):this.matrix.identity()}set jointState(o){const{robot:et}=this;if(!et)return;const{name:tt}=o;Object.keys(et.joints).forEach(nt=>{const rt=et.joints[nt],it=tt.indexOf(nt),ot=o.effort?.[it]??0,st=o.position?.[it]??0,at=o.velocity?.[it]??0;rt.setJointValue(st,ot,at)})}getLink=o=>o?this.robot?.links[o]:void 0}async function loadURDFIntoBlob(s){const o=await fetch(s).then(rt=>rt.arrayBuffer()),et=await JSZip.loadAsync(o);et.remove("__MACOSX"),et.remove(".DS_Store");const tt=Object.keys(et.files).find(rt=>rt.toLowerCase().endsWith("urdf")),nt=tt?.split("/")[0]+"/";if(tt){let rt=await et.files[tt].async("string");const it=Object.keys(et.files).filter(at=>at.endsWith("png")&&at!==tt),ot={};await Promise.all(it.map(async at=>{const lt=et.files[at],ut=await et.files[lt.name].async("arraybuffer");ot[at]=URL.createObjectURL(new Blob([ut],{type:"image/png"}))}));const st=Object.keys(et.files).filter(at=>!at.endsWith(".png")&&at!==tt&&!at.startsWith("__MACOSX")&&!at.endsWith(".DS_Store"));return await Promise.all(st.map(async at=>{const lt=et.files[at];if(!lt.dir){let ut=await et.files[lt.name].async("string");it.forEach(ht=>{const ct=ht.split("/"),pt=ct[ct.length-1];ut=ut.replace(new RegExp(pt,"g"),ot[ht].replace(`blob:${window.location.origin}/`,""))});const dt=URL.createObjectURL(new Blob([ut],{type:"text/plain"})).replace(`blob:${window.location.origin}/`,"");rt=rt.replace(new RegExp(`package://${at}`,"g"),dt),rt=rt.replace(new RegExp(at,"g"),dt),rt=rt.replace(new RegExp(at.replace(nt,""),"g"),dt)}})),URL.createObjectURL(new Blob([rt],{type:"text/plain"}))}return!1}function URDFLayer(s){const{children:o,jointStatesDataSource:et,realtimeJointStateDataSource:tt}=s,[nt,rt]=reactExports.useContext(UniverseDataContext),it=reactExports.useContext(LayerContext),[ot,st]=reactExports.useState(!1),[at,lt]=reactExports.useState(void 0);return reactExports.useEffect(()=>{if(!it)return;const{deviceId:ut}=it;let dt;return tt&&at?dt=rt.subscribeToJointState(ut,tt,ht=>{if(typeof ht=="symbol")return;const ct=ht;at&&(at.jointState=ct)}):et&&at&&(dt=nt.subscribeToJointState(ut,et,ht=>{if(typeof ht=="symbol")return;const ct=ht;at&&(at.jointState=ct)})),at||nt.getUrdfs(ut).then(ht=>{if(ht.length===0){console.warn("No URDFs found for device");return}loadURDFIntoBlob(ht[0]).then(ct=>{if(ct!==!1){const pt=new Urdf(ct,{ghosted:!1},()=>{st(!0)});lt(pt)}}).catch(ct=>{throw ct})}).catch(ht=>{throw ht}),()=>{dt&&dt()}},[it,nt,at]),jsxs$2(DataVisualizationLayer,{...s,type:LayerType.TRACKABLE,iconUrl:"icons/3d_object.svg",trailEnabled:s.trailEnabled,trailSeconds:s.trailSeconds,trailOpacity:s.trailOpacity,trailWidth:s.trailWidth,trailType:s.trailType,trailFlatten:s.trailFlatten,children:[at&&ot&&jsx$2("primitive",{object:at}),o]})}function ImageLayer(s){const{children:o,fileId:et,width:tt,height:nt}=s,[rt,it]=reactExports.useState(""),ot=useTexture(rt||"./transparent.png");return reactExports.useEffect(()=>{(async()=>{const st=await Fleet.getFileUrl(et);it(st)})()},[et]),jsx$2("group",{name:"axis",renderOrder:1,children:jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:[jsxs$2("mesh",{children:[jsx$2("planeGeometry",{args:[tt,nt]}),jsx$2("meshBasicMaterial",{map:ot,transparent:!0})]}),o]})})}function GLTFLayer(s){const{children:o,fileId:et,scale:tt}=s,[nt,rt]=reactExports.useState("./empty.glb"),{scene:it}=useGLTF(nt);return reactExports.useEffect(()=>{(async()=>{const ot=await Fleet.getFileUrl(et);rt(ot)})()},[et]),jsx$2("group",{name:"axis",renderOrder:1,children:jsxs$2(DataVisualizationLayer,{...s,iconUrl:"icons/3d_object.svg",children:[jsx$2("group",{scale:[tt,tt,tt],rotation:[Math.PI/2,0,0],children:jsx$2("primitive",{object:it})}),o]})})}const isValidURL=s=>/^(https?:\/\/)?[\w.-]+(?:\.[\w.-]+)+[/\S*]*$/.test(s),handleFetchJsonDatapoint=async s=>{if(s.length===0)return[];const o=s.length/1e3,et=[];for(let tt=0;ttfetch(ut[1])))).map(ut=>ut.status==="fulfilled"?ut.value:null).filter(ut=>ut!==null).map(ut=>ut?.json()),at=await Promise.all(st),lt=it.map((ut,dt)=>[ut[0],at[dt].pose.pose.position]);et.push(lt)}return et.flat()},queryAnalytics=async(s,o,et,tt)=>{const nt=` diff --git a/versions/stage/index.html b/versions/stage/index.html index cacbb5c..d044ec8 100644 --- a/versions/stage/index.html +++ b/versions/stage/index.html @@ -31,7 +31,7 @@ left: 50px !important; } - +
diff --git a/yarn.lock b/yarn.lock index f55eb8c..e8f9d4b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -507,10 +507,10 @@ "@formant/realtime-sdk" "^0.0.19" date-fns "^2.29.3" -"@formant/data-sdk@^1.60.0": - version "1.60.0" - resolved "https://registry.yarnpkg.com/@formant/data-sdk/-/data-sdk-1.60.0.tgz#21db7b07356fe79439776f7496df17a6521e57ca" - integrity sha512-KEMrbOIJ9mRq3+0t8QneSpQ6OctZltCSTx78fw7+al/UXp0EG4cLtHsfob2tOGmmRU49VBfI8OFDHHkYGA5JfQ== +"@formant/data-sdk@^1.61.0": + version "1.61.0" + resolved "https://registry.yarnpkg.com/@formant/data-sdk/-/data-sdk-1.61.0.tgz#2f4eb89319f15c1cac69879c31596ed4d74dd7ce" + integrity sha512-bug7HM9Yorc1fuhNwGFbmeS+wPly+Axmh8L1q6B0GGsVQQmTI0Xr/saHOBeoPdlCrqbtn2ycOAvqamrBQaR7Qw== dependencies: "@formant/ui-sdk-realtime-player-core" "^0.0.2" "@formant/ui-sdk-realtime-player-core-worker" "^0.0.4"